ZGlmZiAtLWdpdCBhL0ZpbGVsaXN0IGIvRmlsZWxpc3QKaW5kZXggYTgzMmE5Yy4uMjFhZjk2MSAxMDA2NDQKLS0tIGEvRmlsZWxpc3QKKysrIGIvRmlsZWxpc3QKQEAgLTY1OCw2ICs2NTgsOCBAQAogCQlydW50aW1lL2RvYy8qLWZyLlVURi04LjEgXAogCQlydW50aW1lL2RvYy8qLWl0LjEgXAogCQlydW50aW1lL2RvYy8qLWl0LlVURi04LjEgXAorCQlydW50aW1lL2RvYy8qLXBsLjEgXAorCQlydW50aW1lL2RvYy8qLXBsLlVURi04LjEgXAogCQlydW50aW1lL2RvYy8qLXJ1LjEgXAogCQlydW50aW1lL2RvYy8qLXJ1LlVURi04LjEgXAogCQlydW50aW1lL2xhbmcvUkVBRE1FLnR4dCBcCmRpZmYgLS1naXQgYS9ydW50aW1lL2NvbG9ycy9rb2VobGVyLnZpbSBiL3J1bnRpbWUvY29sb3JzL2tvZWhsZXIudmltCmluZGV4IDFhODgwMDEuLmNjMGExNzIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvY29sb3JzL2tvZWhsZXIudmltCisrKyBiL3J1bnRpbWUvY29sb3JzL2tvZWhsZXIudmltCkBAIC0yLDcgKzIsNyBAQAogIiB2aW06IHR3PTAgdHM9NCBzdz00CiAiIFZpbSBjb2xvciBmaWxlCiAiIE1haW50YWluZXI6CVJvbiBBYXJvbiA8cm9uQHJvbndhcmUub3JnPgotIiBMYXN0IENoYW5nZToJMjAwMyBNYXkgMDIKKyIgTGFzdCBDaGFuZ2U6CTIwMDYgTWFyIDI2CiAKIGhpIGNsZWFyCiBzZXQgYmFja2dyb3VuZD1kYXJrCkBAIC0zNyw2ICszNywxMiBAQAogaGkgVHlwZQkJCSAgdGVybT11bmRlcmxpbmUgIGN0ZXJtPWJvbGQgY3Rlcm1mZz1saWdodGdyZWVuICBndWk9Ym9sZCAgZ3VpZmc9IzYwZmY2MAogaGkgRXJyb3IJCSAgdGVybT1yZXZlcnNlCWN0ZXJtZmc9ZGFya2N5YW4gIGN0ZXJtYmc9YmxhY2sgIGd1aWZnPVJlZAlndWliZz1CbGFjawogaGkgVG9kbwkJCSAgdGVybT1zdGFuZG91dCAgY3Rlcm1mZz1ibGFjawljdGVybWJnPWRhcmtjeWFuICBndWlmZz1CbHVlICBndWliZz1ZZWxsb3cKK2hpIEN1cnNvckxpbmUJICB0ZXJtPXVuZGVybGluZSAgZ3VpYmc9IzU1NTU1NQoraGkgQ3Vyc29yQ29sdW1uCSAgdGVybT11bmRlcmxpbmUgIGd1aWJnPSM1NTU1NTUKK2hpIE1hdGNoUGFyZW4JICB0ZXJtPXJldmVyc2UgIGd1aWJnPUJsdWUKK2hpIFRhYkxpbmUJCSAgdGVybT1ib2xkLHJldmVyc2UgIGN0ZXJtPWJvbGQgY3Rlcm1mZz1saWdodGJsdWUgY3Rlcm1iZz13aGl0ZSBndWk9Ym9sZCBndWlmZz1ibHVlIGd1aWJnPXdoaXRlCitoaSBUYWJMaW5lRmlsbAkgIHRlcm09Ym9sZCxyZXZlcnNlICBjdGVybT1ib2xkIGN0ZXJtZmc9bGlnaHRibHVlIGN0ZXJtYmc9d2hpdGUgZ3VpPWJvbGQgZ3VpZmc9Ymx1ZSBndWliZz13aGl0ZQoraGkgVGFiTGluZVNlbAkgIHRlcm09cmV2ZXJzZQljdGVybWZnPXdoaXRlIGN0ZXJtYmc9bGlnaHRibHVlIGd1aWZnPXdoaXRlIGd1aWJnPWJsdWUKIGhpIGxpbmsgSW5jU2VhcmNoCQlWaXN1YWwKIGhpIGxpbmsgU3RyaW5nCQkJQ29uc3RhbnQKIGhpIGxpbmsgQ2hhcmFjdGVyCQlDb25zdGFudApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZXZhbC50eHQgYi9ydW50aW1lL2RvYy9ldmFsLnR4dAppbmRleCBiY2RiOTQ4Li42Mzk1YjVjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ldmFsLnR4dAorKysgYi9ydW50aW1lL2RvYy9ldmFsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpldmFsLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyNQorKmV2YWwudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDI2CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0yNDcxLDYgKzI0NzEsNyBAQAogCQlJZiB7cGF0aH0gaXMgb21pdHRlZCBvciBlbXB0eSB0aGVuICdwYXRoJyBpcyB1c2VkLgogCQlJZiB0aGUgb3B0aW9uYWwge2NvdW50fSBpcyBnaXZlbiwgZmluZCB7Y291bnR9J3Mgb2NjdXJyZW5jZSBvZgogCQl7bmFtZX0gaW4ge3BhdGh9IGluc3RlYWQgb2YgdGhlIGZpcnN0IG9uZS4KKwkJV2hlbiB7Y291bnR9IGlzIG5lZ2F0aXZlIHJldHVybiBhbGwgdGhlIG1hdGNoZXMgaW4gYSB8TGlzdHwuCiAJCVRoaXMgaXMgcXVpdGUgc2ltaWxhciB0byB0aGUgZXgtY29tbWFuZCB8OmZpbmR8LgogCQl7b25seSBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRoIHRoZSArZmlsZV9pbl9wYXRoIGZlYXR1cmV9CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2aW0tcGwuMSBiL3J1bnRpbWUvZG9jL2V2aW0tcGwuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODRiNWJjCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvZXZpbS1wbC4xCkBAIC0wLDAgKzEsNTMgQEAKKy5USCBFVklNIDEgIjIwMDIgTHV0IDE2IgorLlNIIE5BWldBCitldmltIFwtILNhdHd5IFZpbSwgZWR5dHVqIHBsaWsgdyBWaW1pZSB6IHVzdGF3aWVuaWFtaSBkbGEgZWR5Y2ppIGJlegordHJ5YvN3CisuU0ggU1lOT1BTSVMKKy5icgorLkIgZXZpbQorW29wY2plXSBbcGxpayAuLi5dCisuYnIKKy5CIGV2aWV3CisuU0ggT1BJUworLkIgZVZpbQordXJ1Y2hhbWlhCisuQiBWaW1hCitpIHVzdGF3aWEgb3BjamUgdGFrIGJ5IHphY2hvd3l3YbMgc2nqIGphayBlZHl0b3IgYmV6IHRyeWLzdy4KK1RvIGplc3QgY2GzeSBjemFzIFZpbSBhbGUgdb95d2FueSBqYWtvIGVkeXRvciB3c2thvy1pLWtsaWtuaWouCitaYWNob3dhbmllIHcgc3RsdSBOb3RlcGFkYSBkbGEgTVMtV2luZG93cy4KKy5CIGVWaW0KK2LqZHppZSB6YXdzemUgdXJ1Y2hvbWlvbnkgdyBHVUkgYnkgd7OxY3p55iBtZW51IGkgcGFzZWsgbmFyeupkemkuCisuUFAKK1ByemV6bmFjem9ueSB0eWxrbyBkbGEgbHVkemksIGt083J6eSBuYXByYXdk6iBuaWUgcG90cmFmabEgcHJhY293YeYKK3ogVmltZW0gdyBub3JtYWxueSBzcG9z82IuIEVkeWNqYSBi6mR6aWUgbyB3aWVsZSBtbmllaiBlZmVrdHl3bmEuCisuUFAKKy5CIGV2aWV3Citkemlhs2EgdGFrIHNhbW8sIGFsZSB6YWN6eW5hIHcgdHJ5YmllIHR5bGtvIGRvIG9kY3p5dHUuIER6aWGzYSB0YWsKK3NhbW8gamFrIGV2aW0gXC1SLgorLlBQCitab2JhY3ogdmltKDEpIGJ5IHBvem5h5iB3aepjZWogc3pjemVn87PzdyBvIFZpbWllLCBvcGNqYWNoLCBpdGQuCisuUFAKK09wY2phICdpbnNlcnRtb2RlJyBqZXN0IHVzdGF3aW9uYSBieSBtb79uYSBiebNvIG9kIHJhenUgd3Bpc3l3YeYKK3Rla3N0LgorLmJyCitNYXBvd2FuaWEgc7EgdXN0YXdpb25lIHRhayBieSBLb3Bpb3dhbmllIGkgV2tsZWphbmllIGR6aWGzYbNvCit6IGtsYXdpc3phbWkgTVMtV2luZG93cy4gQ1RSTC1YIHd5Y2luYSB0ZWtzdCwgQ1RSTC1DIGtvcGl1amUKK2EgQ1RSTC1WIHdrbGVqYS4gVb95aiBDVFJMLVEgYnkgdXp5c2th5iBvcnlnaW5hbG5lIHpuYWN6ZW5pZQorQ1RSTC1WLgorLlNIIE9QQ0pFCitab2JhY3ogdmltKDEpLgorLlNIIFBMSUtJCisuVFAgMTUKKy91c3IvbG9jYWwvbGliL3ZpbS9ldmltLnZpbQorU2tyeXB0IHVydWNoYW1pYW5pYSBkbGEgZVZpbWEuCisuU0ggWk5BTlkgSkFLTworWm5hbnkgamFrbyAiVmltIGRsYSBmcmFqZXLzdyIuCitKZbZsaSB1v3l3YXN6IGV2aW1hIG9jemVrdWplIHNp6iwgv2Ugd3lqbWllc3ogY2h1c3RlY3pr6iBkbyBub3NhLAorenJvYmlzeiB36nrqsyB3IGthv2R5bSByb2d1IGkgYupkemllc3ogdG8gbm9zabMgbmEgZ7Nvd2llLgorLlNIIFpPQkFDWiBUQUuvRQordmltKDEpCisuU0ggQVVUT1IKK1dp6mtzem+25iAKKy5CIFZpbWEKK3pvc3Rhs2EgbmFwaXNhbmEgcHJ6ZXogQnJhbWEgTW9vbGVuYWFyYSB6IGR1v7EgcG9tb2OxIGlubnljaCBvc/NiLgorWm9iYWN6IG1lbnUgSGVscC9DcmVkaXRzLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZXZpbS1wbC5VVEYtOC4xIGIvcnVudGltZS9kb2MvZXZpbS1wbC5VVEYtOC4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhOTQwYzAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2RvYy9ldmltLXBsLlVURi04LjEKQEAgLTAsMCArMSw1MyBAQAorLlRIIEVWSU0gMSAiMjAwMiBMdXQgMTYiCisuU0ggTkFaV0EKK2V2aW0gXC0gxYJhdHd5IFZpbSwgZWR5dHVqIHBsaWsgdyBWaW1pZSB6IHVzdGF3aWVuaWFtaSBkbGEgZWR5Y2ppIGJlegordHJ5YsOzdworLlNIIFNZTk9QU0lTCisuYnIKKy5CIGV2aW0KK1tvcGNqZV0gW3BsaWsgLi4uXQorLmJyCisuQiBldmlldworLlNIIE9QSVMKKy5CIGVWaW0KK3VydWNoYW1pYQorLkIgVmltYQoraSB1c3Rhd2lhIG9wY2plIHRhayBieSB6YWNob3d5d2HFgiBzacSZIGphayBlZHl0b3IgYmV6IHRyeWLDs3cuCitUbyBqZXN0IGNhxYJ5IGN6YXMgVmltIGFsZSB1xbx5d2FueSBqYWtvIGVkeXRvciB3c2thxbwtaS1rbGlrbmlqLgorWmFjaG93YW5pZSB3IHN0bHUgTm90ZXBhZGEgZGxhIE1TLVdpbmRvd3MuCisuQiBlVmltCitixJlkemllIHphd3N6ZSB1cnVjaG9taW9ueSB3IEdVSSBieSB3xYLEhWN6ecSHIG1lbnUgaSBwYXNlayBuYXJ6xJlkemkuCisuUFAKK1ByemV6bmFjem9ueSB0eWxrbyBkbGEgbHVkemksIGt0w7NyenkgbmFwcmF3ZMSZIG5pZSBwb3RyYWZpxIUgcHJhY293YcSHCit6IFZpbWVtIHcgbm9ybWFsbnkgc3Bvc8OzYi4gRWR5Y2phIGLEmWR6aWUgbyB3aWVsZSBtbmllaiBlZmVrdHl3bmEuCisuUFAKKy5CIGV2aWV3CitkemlhxYJhIHRhayBzYW1vLCBhbGUgemFjenluYSB3IHRyeWJpZSB0eWxrbyBkbyBvZGN6eXR1LiBEemlhxYJhIHRhaworc2FtbyBqYWsgZXZpbSBcLVIuCisuUFAKK1pvYmFjeiB2aW0oMSkgYnkgcG96bmHEhyB3acSZY2VqIHN6Y3plZ8OzxYLDs3cgbyBWaW1pZSwgb3BjamFjaCwgaXRkLgorLlBQCitPcGNqYSAnaW5zZXJ0bW9kZScgamVzdCB1c3Rhd2lvbmEgYnkgbW/FvG5hIGJ5xYJvIG9kIHJhenUgd3Bpc3l3YcSHCit0ZWtzdC4KKy5icgorTWFwb3dhbmlhIHPEhSB1c3Rhd2lvbmUgdGFrIGJ5IEtvcGlvd2FuaWUgaSBXa2xlamFuaWUgZHppYcWCYcWCbworeiBrbGF3aXN6YW1pIE1TLVdpbmRvd3MuIENUUkwtWCB3eWNpbmEgdGVrc3QsIENUUkwtQyBrb3BpdWplCithIENUUkwtViB3a2xlamEuIFXFvHlqIENUUkwtUSBieSB1enlza2HEhyBvcnlnaW5hbG5lIHpuYWN6ZW5pZQorQ1RSTC1WLgorLlNIIE9QQ0pFCitab2JhY3ogdmltKDEpLgorLlNIIFBMSUtJCisuVFAgMTUKKy91c3IvbG9jYWwvbGliL3ZpbS9ldmltLnZpbQorU2tyeXB0IHVydWNoYW1pYW5pYSBkbGEgZVZpbWEuCisuU0ggWk5BTlkgSkFLTworWm5hbnkgamFrbyAiVmltIGRsYSBmcmFqZXLDs3ciLgorSmXFm2xpIHXFvHl3YXN6IGV2aW1hIG9jemVrdWplIHNpxJksIMW8ZSB3eWptaWVzeiBjaHVzdGVjemvEmSBkbyBub3NhLAorenJvYmlzeiB3xJl6xJnFgiB3IGthxbxkeW0gcm9ndSBpIGLEmWR6aWVzeiB0byBub3NpxYIgbmEgZ8WCb3dpZS4KKy5TSCBaT0JBQ1ogVEFLxbtFCit2aW0oMSkKKy5TSCBBVVRPUgorV2nEmWtzem/Fm8SHIAorLkIgVmltYQorem9zdGHFgmEgbmFwaXNhbmEgcHJ6ZXogQnJhbWEgTW9vbGVuYWFyYSB6IGR1xbzEhSBwb21vY8SFIGlubnljaCBvc8OzYi4KK1pvYmFjeiBtZW51IEhlbHAvQ3JlZGl0cy4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX3J1YnkudHh0IGIvcnVudGltZS9kb2MvaWZfcnVieS50eHQKaW5kZXggY2ViMzI4Mi4uZWFjZTdlOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfcnVieS50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfcnVieS50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfcnVieS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDYKKyppZl9ydWJ5LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBTaHVnbyBNYWVkYQpAQCAtNzgsMjMgKzc4LDI2IEBACiBSdWJ5IGNvZGUgZ2V0cyBhbGwgb2YgaXRzIGFjY2VzcyB0byB2aW0gdmlhIHRoZSAiVklNIiBtb2R1bGUuCiAKIE92ZXJ2aWV3ID4KLQlwcmludCAiSGVsbG8iCQkJIyBkaXNwbGF5cyBhIG1lc3NhZ2UKLQlWSU0uY29tbWFuZChjbWQpCQkjIGV4ZWN1dGUgYW4gZXggY29tbWFuZAotCW51bSA9IFZJTTo6V2luZG93LmNvdW50CQkjIGdldHMgdGhlIG51bWJlciBvZiB3aW5kb3dzCi0JdyA9IFZJTTo6V2luZG93W25dCQkjIGdldHMgd2luZG93ICJuIgotCWN3ID0gVklNOjpXaW5kb3cuY3VycmVudAkjIGdldHMgdGhlIGN1cnJlbnQgd2luZG93Ci0JbnVtID0gVklNOjpCdWZmZXIuY291bnQJCSMgZ2V0cyB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMKLQliID0gVklNOjpCdWZmZXJbbl0JCSMgZ2V0cyBidWZmZXIgIm4iCi0JY2IgPSBWSU06OkJ1ZmZlci5jdXJyZW50CSMgZ2V0cyB0aGUgY3VycmVudCBidWZmZXIKLQl3LmhlaWdodCA9IGxpbmVzCQkjIHNldHMgdGhlIHdpbmRvdyBoZWlnaHQKLQl3LmN1cnNvciA9IFtyb3csIGNvbF0JCSMgc2V0cyB0aGUgd2luZG93IGN1cnNvciBwb3NpdGlvbgotCXBvcyA9IHcuY3Vyc29yCQkJIyBnZXRzIGFuIGFycmF5IFtyb3csIGNvbF0KLQluYW1lID0gYi5uYW1lCQkJIyBnZXRzIHRoZSBidWZmZXIgZmlsZSBuYW1lCi0JbGluZSA9IGJbbl0JCQkjIGdldHMgYSBsaW5lIGZyb20gdGhlIGJ1ZmZlcgotCW51bSA9IGIuY291bnQJCQkjIGdldHMgdGhlIG51bWJlciBvZiBsaW5lcwotCWJbbl0gPSBzdHIJCQkjIHNldHMgYSBsaW5lIGluIHRoZSBidWZmZXIKLQliLmRlbGV0ZShuKQkJCSMgZGVsZXRlcyBhIGxpbmUKLQliLmFwcGVuZChuLCBzdHIpCQkjIGFwcGVuZHMgYSBsaW5lIGFmdGVyIG4KKwlwcmludCAiSGVsbG8iCQkJICAgICAgIyBkaXNwbGF5cyBhIG1lc3NhZ2UKKwlWSU0uY29tbWFuZChjbWQpCQkgICAgICAjIGV4ZWN1dGUgYW4gZXggY29tbWFuZAorCW51bSA9IFZJTTo6V2luZG93LmNvdW50CQkgICAgICAjIGdldHMgdGhlIG51bWJlciBvZiB3aW5kb3dzCisJdyA9IFZJTTo6V2luZG93W25dCQkgICAgICAjIGdldHMgd2luZG93ICJuIgorCWN3ID0gVklNOjpXaW5kb3cuY3VycmVudAkgICAgICAjIGdldHMgdGhlIGN1cnJlbnQgd2luZG93CisJbnVtID0gVklNOjpCdWZmZXIuY291bnQJCSAgICAgICMgZ2V0cyB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMKKwliID0gVklNOjpCdWZmZXJbbl0JCSAgICAgICMgZ2V0cyBidWZmZXIgIm4iCisJY2IgPSBWSU06OkJ1ZmZlci5jdXJyZW50CSAgICAgICMgZ2V0cyB0aGUgY3VycmVudCBidWZmZXIKKwl3LmhlaWdodCA9IGxpbmVzCQkgICAgICAjIHNldHMgdGhlIHdpbmRvdyBoZWlnaHQKKwl3LmN1cnNvciA9IFtyb3csIGNvbF0JCSAgICAgICMgc2V0cyB0aGUgd2luZG93IGN1cnNvciBwb3NpdGlvbgorCXBvcyA9IHcuY3Vyc29yCQkJICAgICAgIyBnZXRzIGFuIGFycmF5IFtyb3csIGNvbF0KKwluYW1lID0gYi5uYW1lCQkJICAgICAgIyBnZXRzIHRoZSBidWZmZXIgZmlsZSBuYW1lCisJbGluZSA9IGJbbl0JCQkgICAgICAjIGdldHMgYSBsaW5lIGZyb20gdGhlIGJ1ZmZlcgorCW51bSA9IGIuY291bnQJCQkgICAgICAjIGdldHMgdGhlIG51bWJlciBvZiBsaW5lcworCWJbbl0gPSBzdHIJCQkgICAgICAjIHNldHMgYSBsaW5lIGluIHRoZSBidWZmZXIKKwliLmRlbGV0ZShuKQkJCSAgICAgICMgZGVsZXRlcyBhIGxpbmUKKwliLmFwcGVuZChuLCBzdHIpCQkgICAgICAjIGFwcGVuZHMgYSBsaW5lIGFmdGVyIG4KKwlsaW5lID0gVklNOjpCdWZmZXIuY3VycmVudC5saW5lICAgICAgICMgZ2V0cyB0aGUgY3VycmVudCBsaW5lCisJbnVtID0gVklNOjpCdWZmZXIuY3VycmVudC5saW5lX251bWJlciAjIGdldHMgdGhlIGN1cnJlbnQgbGluZSBudW1iZXIKKwlWSU06OkJ1ZmZlci5jdXJyZW50LmxpbmUgPSAidGVzdCIgICAgICMgc2V0cyB0aGUgY3VycmVudCBsaW5lIG51bWJlcgogPAogCiBNb2R1bGUgRnVuY3Rpb25zOgpAQCAtMTQ0LDYgKzE0NywxMSBAQAogZGVsZXRlKHtufSkJRGVsZXRlcyBhIGxpbmUgZnJvbSB0aGUgYnVmZmVyLiB7bn0gaXMgdGhlIGxpbmUgbnVtYmVyLgogYXBwZW5kKHtufSwge3N0cn0pCiAJCUFwcGVuZHMgYSBsaW5lIGFmdGVyIHRoZSBsaW5lIHtufS4KK2xpbmUgICAgICAgICAgICBSZXR1cm5zIHRoZSBjdXJyZW50IGxpbmUgb2YgdGhlIGJ1ZmZlciBpZiB0aGUgYnVmZmVyIGlzCisJCWFjdGl2ZS4KK2xpbmUgPSB7c3RyfSAgICBTZXRzIHRoZSBjdXJyZW50IGxpbmUgb2YgdGhlIGJ1ZmZlciBpZiB0aGUgYnVmZmVyIGlzIGFjdGl2ZS4KK2xpbmVfbnVtYmVyICAgICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIGN1cnJlbnQgbGluZSBpZiB0aGUgYnVmZmVyIGlzCisJCWFjdGl2ZS4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA0LiBWSU06OldpbmRvdyBvYmplY3RzCQkJCQkqcnVieS13aW5kb3cqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IDFiYjZmZjEuLmVjOWRkYjYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyNQorKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC03OCw3ICs3OCw3IEBACiAJCQlJZiB0aGUgb3B0aW9uIGlzIGEgbGlzdCBvZiBmbGFncywgc3VwZXJmbHVvdXMgZmxhZ3MKIAkJCWFyZSByZW1vdmVkLiAgV2hlbiBhZGRpbmcgYSBmbGFnIHRoYXQgd2FzIGFscmVhZHkKIAkJCXByZXNlbnQgdGhlIG9wdGlvbiB2YWx1ZSBkb2Vzbid0IGNoYW5nZS4KLTwJCQlBbHNvIHNlZSB8OnNldC1hcmdzfCBhYm92ZS4KKwkJCUFsc28gc2VlIHw6c2V0LWFyZ3N8IGFib3ZlLgogCQkJe25vdCBpbiBWaX0KIAogOnNlW3RdIHtvcHRpb259Xj17dmFsdWV9CQkJCSo6c2V0Xj0qCkBAIC0yNjksNyArMjY5LDEzIEBACiAJCQlzaG93biAoYnV0IHRoYXQgbWlnaHQgY2hhbmdlIGluIHRoZSBmdXR1cmUpLgogCQkJe25vdCBpbiBWaX0KIAotOnNldGxbb2NhbF0ge29wdGlvbn08CVNldCB0aGUgbG9jYWwgdmFsdWUgb2Yge29wdGlvbn0gdG8gaXRzIGdsb2JhbCB2YWx1ZS4KKzpzZXRsW29jYWxdIHtvcHRpb259PAlTZXQgdGhlIGxvY2FsIHZhbHVlIG9mIHtvcHRpb259IHRvIGl0cyBnbG9iYWwgdmFsdWUgYnkKKwkJCWNvcHlpbmcgdGhlIHZhbHVlLgorCQkJe25vdCBpbiBWaX0KKworOnNlW3RdIHtvcHRpb259PAlTZXQgdGhlIGxvY2FsIHZhbHVlIG9mIHtvcHRpb259IHRvIGl0cyBnbG9iYWwgdmFsdWUgYnkKKwkJCW1ha2luZyBpdCBlbXB0eS4gIE9ubHkgbWFrZXMgc2Vuc2UgZm9yIHxnbG9iYWwtbG9jYWx8CisJCQlvcHRpb25zLgogCQkJe25vdCBpbiBWaX0KIAogCQkJCQkJCSo6c2V0ZyogKjpzZXRnbG9iYWwqCkBAIC0zMTYsNyArMzIyLDExIEBACiAJOnNldGxvY2FsIGF1dG9yZWFkPAogTm90ZSB0aGF0IGZvciBub24tYm9vbGVhbiBvcHRpb25zIHVzaW5nICI8IiBjb3BpZXMgdGhlIGdsb2JhbCB2YWx1ZSB0byB0aGUKIGxvY2FsIHZhbHVlLCBpdCBkb2Vzbid0IHN3aXRjaCBiYWNrIHRvIHVzaW5nIHRoZSBnbG9iYWwgdmFsdWUgKHRoYXQgbWF0dGVycwotd2hlbiBjaGFuZ2luZyB0aGUgZ2xvYmFsIHZhbHVlIGxhdGVyKS4KK3doZW4gdGhlIGdsb2JhbCB2YWx1ZSBjaGFuZ2VzIGxhdGVyKS4gIFlvdSBjYW4gYWxzbyB1c2U6ID4KKwk6c2V0IHBhdGg8CitUaGlzIHdpbGwgbWFrZSB0aGUgbG9jYWwgdmFsdWUgb2YgJ3BhdGgnIGVtcHR5LCBzbyB0aGF0IHRoZSBnbG9iYWwgdmFsdWUgaXMKK3VzZWQuICBUaHVzIGl0IGRvZXMgdGhlIHNhbWUgYXM6ID4KKwk6c2V0bG9jYWwgcGF0aD0KIE5vdGU6IEluIHRoZSBmdXR1cmUgbW9yZSBnbG9iYWwgb3B0aW9ucyBjYW4gYmUgbWFkZSBnbG9iYWwtbG9jYWwuICBVc2luZwogIjpzZXRsb2NhbCIgb24gYSBnbG9iYWwgb3B0aW9uIG1pZ2h0IHdvcmsgZGlmZmVyZW50bHkgdGhlbi4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3BlbGwudHh0IGIvcnVudGltZS9kb2Mvc3BlbGwudHh0CmluZGV4IGY3ODJkYmMuLjVjN2I1YmIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3NwZWxsLnR4dAorKysgYi9ydW50aW1lL2RvYy9zcGVsbC50eHQKQEAgLTEsNCArMSw0IEBACi0qc3BlbGwudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAxMAorKnNwZWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtOTc1LDcgKzk3NSw3IEBACiBGb3IgUEZYIHRoZSBmaWVsZHMgYXJlIGV4YWN0bHkgdGhlIHNhbWUuCiAKIFRoZSBiYXNpYyBmb3JtYXQgZm9yIHRoZSBmb2xsb3dpbmcgbGluZXMgaXM6Ci0JU0ZYIHtmbGFnfSB7c3RyaXB9IHthZGR9IHtjb25kaXRpb259CisJU0ZYIHtmbGFnfSB7c3RyaXB9IHthZGR9IHtjb25kaXRpb259IHtleHRyYX0KIAoge2ZsYWd9CQlNdXN0IGJlIHRoZSBzYW1lIGFzIHRoZSB7ZmxhZ30gdXNlZCBpbiB0aGUgZmlyc3QgbGluZS4KIApAQCAtOTg3LDYgKzk4Nyw4IEBACiAJCVdoZW4ge3N0cmlwfSBpcyAwICh6ZXJvKSB0aGVuIG5vdGhpbmcgaXMgc3RyaXBwZWQuCiAKIHthZGR9CQlDaGFyYWN0ZXJzIGFkZGVkIHRvIHRoZSBiYXNpYyB3b3JkLCBhZnRlciByZW1vdmluZyB7c3RyaXB9LgorCQlPcHRpb25hbGx5IHRoZXJlIGlzIGEgJy8nIGZvbGxvd2VkIGJ5IGZsYWdzLiAgVGhlIGZsYWdzIGFwcGx5CisJCXRvIHRoZSB3b3JkIHBsdXMgYWZmaXguICBTZWUgfHNwZWxsLWFmZml4LWZsYWdzfAogCiB7Y29uZGl0aW9ufQlBIHNpbXBsaXN0aWMgcGF0dGVybi4gIE9ubHkgd2hlbiB0aGlzIG1hdGNoZXMgd2l0aCBhIGJhc2ljCiAJCXdvcmQgd2lsbCB0aGUgc3VmZml4IGJlIHVzZWQgZm9yIHRoYXQgd29yZC4gIFRoaXMgaXMgbm9ybWFsbHkKQEAgLTEwMDIsNiArMTAwNCwxMyBAQAogCQkgIGNvbXBsZW1lbnQgb2YgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXJzLiBbXmFiY10gbWF0Y2hlcyBhbnkKIAkJICBjaGFyYWN0ZXIgYnV0IGEsIGIgYW5kIGMuCiAKK3tleHRyYX0JCU9wdGlvbmFsIGV4dHJhIHRleHQ6CisJCSAgICByYXJlCQl3b3JkICsgYWZmaXggaXMgcmFyZQorCQkgICAgbm9jb21wCQlubyBjb21wb3VuZGluZyBmb3Igd29yZCArIGFmZml4CisJCSAgICAjIGNvbW1lbnQJCUNvbW1lbnQgaXMgaWdub3JlZAorCQkgICAgLQkJCUh1bnNwZWxsIHVzZXMgdGhpcywgaWdub3JlZAorCQkicmFyZSIgYW5kICJub2NvbXAiIGFyZSBkZXByZWNhdGVkLgorCiBGb3IgUEZYIHRoZSBmaWVsZHMgYXJlIHRoZSBzYW1lLCBidXQgdGhlIHtzdHJpcH0sIHthZGR9IGFuZCB7Y29uZGl0aW9ufSBhcHBseQogdG8gdGhlIHN0YXJ0IG9mIHRoZSB3b3JkLgogCkBAIC0xMjI4LDcgKzEyMzcsNyBAQAogCUluIHRoZSAuYWZmIGZpbGU6CiAJICAgIENPTVBPVU5EUlVMRSBzZGUgfgogCSAgICBORUVEQUZGSVggeCB+Ci0JICAgIENPTVBPVU5ETUFYIDMgfgorCSAgICBDT01QT1VORFdPUkRNQVggMyB+CiAJICAgIENPTVBPVU5ETUlOIDEgfgogCUluIHRoZSAuZGljIGZpbGU6CiAJICAgIHN0YXJ0L3MgfgpAQCAtMTI1MiwxMCArMTI2MSwxMCBAQAogdGhlIGNvbXBvdW5kIGZsYWcgZnJvbSBzaG9ydCB3b3JkcyBpbnN0ZWFkLCB0aGlzIGZlYXR1cmUgaXMgcHJlc2VudCBmb3IKIGNvbXBhdGliaWxpdHkgd2l0aCBNeXNwZWxsLgogCi0JCQkJCQkJKnNwZWxsLUNPTVBPVU5ETUFYKgorCQkJCQkJCSpzcGVsbC1DT01QT1VORFdPUkRNQVgqCiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygd29yZHMgdGhhdCBjYW4gYmUgY29uY2F0ZW5hdGVkIGludG8gYSBjb21wb3VuZCB3b3JkIGlzCi1zcGVjaWZpZWQgd2l0aCBDT01QT1VORE1BWC4gIEV4YW1wbGU6Ci0JQ09NUE9VTkRNQVggMyB+CitzcGVjaWZpZWQgd2l0aCBDT01QT1VORFdPUkRNQVguICBFeGFtcGxlOgorCUNPTVBPVU5EV09SRE1BWCAzIH4KIAogV2hlbiBvbWl0dGVkIHRoZXJlIGlzIG5vIG1heGltdW0uICBJdCBhcHBsaWVzIHRvIGFsbCBjb21wb3VuZCB3b3Jkcy4KIApAQCAtMTI3MCwxNCArMTI3OSwxMyBAQAogVGhpcyBoYXMgbm8gZWZmZWN0IGlmIHRoZXJlIGlzIG5vIFNZTExBQkxFIGl0ZW0uICBXaXRob3V0IENPTVBPVU5EU1lMTUFYIHRoZXJlCiBpcyBubyBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHN5bGxhYmxlcy4KIAotSWYgYm90aCBDT01QT1VORE1BWCBhbmQgQ09NUE9VTkRTWUxNQVggYXJlIGRlZmluZWQsIGEgY29tcG91bmQgd29yZCBpcworSWYgYm90aCBDT01QT1VORFdPUkRNQVggYW5kIENPTVBPVU5EU1lMTUFYIGFyZSBkZWZpbmVkLCBhIGNvbXBvdW5kIHdvcmQgaXMKIGFjY2VwdGVkIGlmIGl0IGZpdHMgb25lIG9mIHRoZSBjcml0ZXJpYSwgdGh1cyBpcyBlaXRoZXIgbWFkZSBmcm9tIHVwIHRvCi1DT01QT1VORE1BWCB3b3JkcyBvciBjb250YWlucyB1cCB0byBDT01QT1VORFNZTE1BWCBzeWxsYWJsZXMuCitDT01QT1VORFdPUkRNQVggd29yZHMgb3IgY29udGFpbnMgdXAgdG8gQ09NUE9VTkRTWUxNQVggc3lsbGFibGVzLgogCiAJCQkJCQkgICAgKnNwZWxsLUNPTVBPVU5ERk9SQklERkxBRyoKIFRoZSBDT01QT1VOREZPUkJJREZMQUcgc3BlY2lmaWVzIGEgZmxhZyB0aGF0IGNhbiBiZSB1c2VkIG9uIGFuIGFmZml4LiAgSXQKIG1lYW5zIHRoYXQgdGhlIHdvcmQgcGx1cyBhZmZpeCBjYW5ub3QgYmUgdXNlZCBpbiBhIGNvbXBvdW5kIHdvcmQuCi1OT1QgSU1QTEVNRU5URUQgWUVULgogCiAJCQkJCQkgICAgKnNwZWxsLUNPTVBPVU5EUEVSTUlURkxBRyoKIFRoZSBDT01QT1VORFBFUk1JVEZMQUcgc3BlY2lmaWVzIGEgZmxhZyB0aGF0IGNhbiBiZSB1c2VkIG9uIGFuIGFmZml4LiAgSXQKQEAgLTEyODUsNiArMTI5MywxMyBAQAogd2hlcmUgdGhlIGFmZml4IGVuZHMgdXAgaGFsZndheSB0aGUgd29yZC4KIE5PVCBJTVBMRU1FTlRFRCBZRVQuCiAKKwkJCQkJCSAgICAqc3BlbGwtQ09NUE9VTkRST09UKgorVGhlIENPTVBPVU5EUk9PVCBmbGFnIGlzIHVzZWQgZm9yIHdvcmRzIGluIHRoZSBkaWN0aW9uYXJ5IHRoYXQgYXJlIGFscmVhZHkgYQorY29tcG91bmQuICBUaGlzIG1lYW5zIGl0IGNvdW50cyBmb3IgdHdvIHdvcmRzIHdoZW4gY2hlY2tpbmcgdGhlIGNvbXBvdW5kaW5nCitydWxlcy4gIENhbiBhbHNvIGJlIHVzZWQgZm9yIGFuIGFmZml4IHRvIGNvdW50IHRoZSBhZmZpeCBhcyBhIGNvbXBvdW5kaW5nCit3b3JkLgorTk9UIElNUExFTUVOVEVEIFlFVC4KKwogCQkJCQkJCSpzcGVsbC1TWUxMQUJMRSoKIFRoZSBTWUxMQUJMRSBpdGVtIGRlZmluZXMgY2hhcmFjdGVycyBvciBjaGFyYWN0ZXIgc2VxdWVuY2VzIHRoYXQgYXJlIHVzZWQgdG8KIGNvdW50IHRoZSBudW1iZXIgb2Ygc3lsbGFibGVzIGluIGEgd29yZC4gIEV4YW1wbGU6CkBAIC0xNDg3LDYgKzE1MDIsOSBAQAogICAgICAgICAgICAgICAgIFJlbW92ZSB0aGUgZmlyc3QgbGluZSB3aXRoIHRoZSBjb3VudCBhbmQgcmVuYW1lIHRoZSBvdGhlcgogICAgICAgICAgICAgICAgIGl0ZW1zIHRvIENPTVBPVU5EUlVMRSB8c3BlbGwtQ09NUE9VTkRSVUxFfAogCitDT01QT1VOREZJUlNUCShIdW5zcGVsbCkJCQkJKnNwZWxsLUNPTVBPVU5ERklSU1QqCisJCVVzZSBDT01QT1VORFJVTEUgaW5zdGVhZC4gfHNwZWxsLUNPTVBPVU5EUlVMRXwKKwogQ09NUE9VTkRCRUdJTgkoSHVuc3BlbGwpCQkJCSpzcGVsbC1DT01QT1VOREJFR0lOKgogCQlVc2UgQ09NUE9VTkRSVUxFIGluc3RlYWQuIHxzcGVsbC1DT01QT1VORFJVTEV8CiAKQEAgLTE0OTYsMTcgKzE1MTQsMTAgQEAKIENPTVBPVU5ETUlERExFCShIdW5zcGVsbCkJCQkJKnNwZWxsLUNPTVBPVU5ETUlERExFKgogCQlVc2UgQ09NUE9VTkRSVUxFIGluc3RlYWQuIHxzcGVsbC1DT01QT1VORFJVTEV8CiAKLUNPTVBPVU5EUk9PVAkoSHVuc3BlbGwpCQkJCSpzcGVsbC1DT01QT1VORFJPT1QqCi0JCUZsYWcgZm9yIHdvcmRzIGluIHRoZSBkaWN0aW9uYXJ5IHRoYXQgYXJlIGFscmVhZHkgYSBjb21wb3VuZC4KLQkJVmltIGRvZXNuJ3QgdXNlIGl0LgotCiBDT01QT1VORFNZTExBQkxFICAoSHVuc3BlbGwpCQkJKnNwZWxsLUNPTVBPVU5EU1lMTEFCTEUqCiAJCVVzZSBTWUxMQUJMRSBhbmQgQ09NUE9VTkRTWUxNQVggaW5zdGVhZC4gfHNwZWxsLVNZTExBQkxFfAogCQl8c3BlbGwtQ09NUE9VTkRTWUxNQVh8CiAKLUNPTVBPVU5EV09SRE1BWAkoSHVuc3BlbGwpCQkJCSpzcGVsbC1DT01QT1VORFdPUkRNQVgqCi0JCVVzZSBDT01QT1VORE1BWCBpbnN0ZWFkLiB8c3BlbGwtQ09NUE9VTkRNQVh8Ci0KIEZPUkJJRERFTldPUkQJKEh1bnNwZWxsKQkJCQkqc3BlbGwtRk9SQklEREVOV09SRCoKIAkJVXNlIEJBRCBpbnN0ZWFkLiB8c3BlbGwtQkFEfAogCkBAIC0xNTE3LDcgKzE1MjgsNyBAQAogCQltdXN0IGJlIHNwZWNpZmllZCBzZXBhcmF0ZWx5LgogCiBMRU1NQV9QUkVTRU5UCShIdW5zcGVsbCkJCQkJKnNwZWxsLUxFTU1BX1BSRVNFTlQqCi0JCU9ubHkgbmVlZGVkIGZvciBtcHJwaG9sb2dpY2FsIGFuYWx5c2lzLgorCQlPbmx5IG5lZWRlZCBmb3IgbW9ycGhvbG9naWNhbCBhbmFseXNpcy4KIAogTUFYTkdSQU1TVUdTCShIdW5zcGVsbCkJCQkJKnNwZWxsLU1BWE5HUkFNU1VHUyoKIAkJTm90IHN1cHBvcnRlZC4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IDY2MjlkYWIuLjAzZGQxY2QgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtNjgxMyw5ICs2ODEzLDkgQEAKIHNwZWxsLUNPTVBPVU5ECXNwZWxsLnR4dAkvKnNwZWxsLUNPTVBPVU5EKgogc3BlbGwtQ09NUE9VTkRCRUdJTglzcGVsbC50eHQJLypzcGVsbC1DT01QT1VOREJFR0lOKgogc3BlbGwtQ09NUE9VTkRFTkQJc3BlbGwudHh0CS8qc3BlbGwtQ09NUE9VTkRFTkQqCitzcGVsbC1DT01QT1VOREZJUlNUCXNwZWxsLnR4dAkvKnNwZWxsLUNPTVBPVU5ERklSU1QqCiBzcGVsbC1DT01QT1VOREZMQUcJc3BlbGwudHh0CS8qc3BlbGwtQ09NUE9VTkRGTEFHKgogc3BlbGwtQ09NUE9VTkRGT1JCSURGTEFHCXNwZWxsLnR4dAkvKnNwZWxsLUNPTVBPVU5ERk9SQklERkxBRyoKLXNwZWxsLUNPTVBPVU5ETUFYCXNwZWxsLnR4dAkvKnNwZWxsLUNPTVBPVU5ETUFYKgogc3BlbGwtQ09NUE9VTkRNSURETEUJc3BlbGwudHh0CS8qc3BlbGwtQ09NUE9VTkRNSURETEUqCiBzcGVsbC1DT01QT1VORE1JTglzcGVsbC50eHQJLypzcGVsbC1DT01QT1VORE1JTioKIHNwZWxsLUNPTVBPVU5EUEVSTUlURkxBRwlzcGVsbC50eHQJLypzcGVsbC1DT01QT1VORFBFUk1JVEZMQUcqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IDc3M2RlOWQuLjJiZDUwOTEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDI1CisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsNiArMzAsMTggQEAKIAkJCQkJCQkqa25vd24tYnVncyoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtub3duIGJ1Z3MgYW5kIGN1cnJlbnQgd29yayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitJbiBjb21wbGV0aW9uIHVzaW5nICBFbnRlciB0byBhY2NlcHQgdGhlIGN1cnJlbnQgbWF0Y2ggY2F1c2VzIHRyb3VibGUuCitMZWF2ZSBpdCBvdXQ/ICBUeXBpbmcgYSBzcGFjZSBhbHJlYWR5IHdvcmtzCisKK05ldyBIdW5nYXJpYW4gZGljdGlvbmFyeS4gKExhY2kgTmVtZXRoKQorICAgIHRlc3QgQ09NUE9VTkRGT1JCSURGTEFHCisgICAgaW1wbGVtZW50IHVzZSBvZiBDT01QT1VORFBFUk1JVEZMQUcKKyAgICBpbXBsZW1lbnQgdXNlIG9mIENIRUNLQ09NUE9VTkQqIGZsYWdzLCA8Y29tcG9wdGlvbnM+CisgICAgaW1wbGVtZW50IHVzaW5nIENIRUNLQ09NUE9VTkRQQVRURVJOOiBtYXRjaCB3b3JkcyB3aXRoIHNsX2NvbXBwYXRbXS4KKworTWFjOiBXaGVuIHN0YXJ0ZWQgZnJvbSBmaW5kZXIgcGF0aCBpc24ndCBzZXQgYW5kIGN1cmRpciBpcyAvLgorQmVuamkgRmlzaGVyIHN1Z2dlc3RzIHVzaW5nIHN5c3RlbSgpICgyMDA2IE1hciAyNikKKwogQWRkIG1vcmUgdGVzdHMgZm9yIGFsbCBuZXcgZnVuY3Rpb25hbGl0eSBpbiBWaW0gNy4gIEVzcGVjaWFsbHkgbmV3IGZ1bmN0aW9ucy4KIAogV2luMzI6IERlc2NyaWJlIGhvdyB0byBkbyBkZWJ1Z2dpbmcuIChHZW9yZ2UgUmVpbGx5KQpAQCAtMTEyMSw5ICsxMTMzLDggQEAKICAgICBzdXBwb3J0IGJvdGgpLgogLSAgIFN1cHBvcnQgYnJlYWtwb2ludCBjaGFyYWN0ZXIgPyAweGI3IGFuZCBpZ25vcmUgaXQ/ICBNYWtlcyBpdCBwb3NzaWJsZSB0bwogICAgIHVzZSBzYW1lIHdvcmRsaXN0IGZvciBoeXBoZW5hdGlvbi4KLS0gICBDb21wb3VuZCB3b3JkIGlzIGFjY2VwdGVkIGlmIG5yIG9mIHdvcmRzIGlzIDw9IENPTVBPVU5ETUFYIE9SIG5yIG9mCistICAgQ29tcG91bmQgd29yZCBpcyBhY2NlcHRlZCBpZiBuciBvZiB3b3JkcyBpcyA8PSBDT01QT1VORFdPUkRNQVggT1IgbnIgb2YKICAgICBzeWxsYWJsZXMgPD0gQ09NUE9VTkRTWUxNQVguICBTcGVjaWZ5IHVzaW5nIEFORCBpbiB0aGUgYWZmaXggZmlsZT8KLS0gICBDT01QT1VORE1BWCAtPiBDT01QT1VORFdPUkRNQVg/CiAtICAgTkVFRENPTVBPVU5EIGFsc28gdXNlZCBmb3IgYWZmaXg/ICBPciBpcyB0aGlzIGNhbGxlZCBPTkxZSU5DT01QT1VORCBub3c/CiAgICAgT3IgaXMgT05MWUlOQ09NUE9VTkQgb25seSBmb3IgaW5zaWRlIGEgY29tcG91bmQsIG5vdCBhdCBzdGFydCBvciBlbmQ/CiAtICAgRG8gd2UgbmVlZCBhIGZsYWcgZm9yIHRoZSBydWxlIHRoYXQgd2hlbiBjb21wb3VuZGluZyBpcyBkb25lIHRoZSBmb2xsb3dpbmcKQEAgLTExMzMsNyArMTE0NCw3IEBACiAgICAgLSBMb3RzIG9mIGNvZGUgZGVwZW5kcyBvbiBMQU5HLCB0aGF0IGlzbid0IHJpZ2h0LiAgRW5hYmxlIGVhY2ggbWVjaGFuaXNtCiAgICAgICBpbiB0aGUgYWZmaXggZmlsZSBzZXBhcmF0ZWx5LgogICAgIC0gRXhhbXBsZSB3aXRoIGNvbXBvdW5kaW5nIGRhc2ggaXMgYmFkLCBnZXRzIGluIHRoZSB3YXkgb2Ygc2V0dGluZwotICAgICAgQ09NUE9VTkRNSU4gYW5kIENPTVBPVU5ETUFYIHRvIGEgcmVhc29uYWJsZSB2YWx1ZS4KKyAgICAgIENPTVBPVU5ETUlOIGFuZCBDT01QT1VORFdPUkRNQVggdG8gYSByZWFzb25hYmxlIHZhbHVlLgogICAgIC0gUFNFVURPUk9PVCA9PSBORUVEQUZGSVgKICAgICAtIENPTVBPVU5EUk9PVCAtPiBDT01QT1VOREVEPyAgRm9yIGEgd29yZCB0aGF0IGFscmVhZHkgaXMgYSBjb21wb3VuZCB3b3JkCiAJICAgIE9yIHVzZSBDT01QT1VOREVEMiwgQ09NUE9VTkRFRDMsIGV0Yy4KQEAgLTExNDgsNyArMTE1OSw3IEBACiAgICAgV2UgbWlnaHQgbm90IG5lZWQgdGhpcyBhdCBhbGwsIHlvdSBjYW4gdXNlIHRoZSBORUVEQUZGSVggZmxhZyBhbmQgdGhlCiAgICAgYWZmaXggd2hpY2ggaXMgcmVxdWlyZWQuCiAtICAgV2hlbiBhIHN1ZmZpeCBoYXMgbW9yZSB0aGFuIG9uZSBzeWxsYWJsZSwgaXQgbWF5IGNvdW50IGFzIGEgd29yZCBmb3IKLSAgICBDT01QT1VORE1BWC4KKyAgICBDT01QT1VORFdPUkRNQVguCiAtICAgQWRkIGZsYWdzIHRvIGNvdW50IGV4dHJhIHN5bGxhYmxlcyBpbiBhIHdvcmQuICBTWUxMQUJMRUFERDEgU1lMTEFCTEVBREQyLAogICAgIGV0Yy4/ICBPciBtYWtlIGl0IHBvc3NpYmxlIHRvIHNwZWNpZnkgdGhlIHN5bGxhYmxlIGNvdW50IG9mIGEgd29yZAogICAgIGRpcmVjdGx5LCBlLmcuLCBhZnRlciBhbm90aGVyIHNsYXNoOiAvYWJjLzMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dCBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAppbmRleCA0NGJmMmMxLi40M2U0ODkwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKKysrIGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDI1CisqdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTM1Niw2ICszNTYsNyBAQAogRnJlbmNoICAtIHRyYW5zbGF0ZWQgYnkgRGF2aWQgQmxhbmNoZXQKIEl0YWxpYW4gLSB0cmFuc2xhdGVkIGJ5IEFudG9uaW8gQ29sb21ibwogUnVzc2lhbiAtIHRyYW5zbGF0ZWQgYnkgVmFzc2lseSBSYWdvc2luCitQb2xpc2ggIC0gdHJhbnNsYXRlZCBieSBNaWtvbGFqIE1hY2hvd3NraQogCiBUaGUgVW5peCBNYWtlZmlsZSBpbnN0YWxscyB0aGUgSXRhbGlhbiBtYW51YWwgcGFnZXMgaW4gLi4uL21hbi9pdC9tYW4xLywKIC4uLi9tYW4vaXQuSVNPODg1OS0xL21hbjEvIGFuZCAuLi4vbWFuL2l0LlVURi04L21hbjEvLiAgVGhlcmUgYXBwZWFycyB0byBiZSBubwpAQCAtODk5LDYgKzkwMCw3IEBACiBMaXNwIGluZGVudCBmaWxlLiAoU2VyZ2V5IEtob3JldikKIGxvZ2luYWNjZXNzIGFuZCBsb2dpbmRlZnMgc3ludGF4IGFuZCBmdHBsdWdpbiBmaWxlLiAoTmlrb2xhaSBXZWlidWxsKQogbTQgZnRwbHVnaW4gZmlsZS4gKE5pa29sYWkgV2VpYnVsbCkKK21haWxhbGlhc2VzIHN5bnRheCBmaWxlLiAoTmlrb2xhaSBXZWlidWxsKQogbWFpbGNhcCBmdHBsdWdpbiBmaWxlLiAoTmlrb2xhaSBXZWlidWxsKQogbWFuY29uZiBzeW50YXggYW5kIGZ0cGx1Z2luIGZpbGUuIChOaWtvbGFpIFdlaWJ1bGwpCiBtYXRsYWIgZnRwbHVnaW4gZmlsZS4gKEpha2UgV2Fzc2VybWFuKQpAQCAtMjE4Nyw0ICsyMTg5LDE5IEBACiBUbyBtYWtlIHRoZSAxNiBiaXQgRE9TIHZlcnNpb24gY29tcGlsZSBleGNsdWRlIG5vdCB1c2VkIGhpZ2hsaWdodAogaW5pdGlhbGl6YXRpb25zIGFuZCBidWlsZCBhIHRpbnkgaW5zdGVhZCBvZiBzbWFsbCB2ZXJzaW9uLgogCitmaW5kZGlyKCkgYW5kIGZpbmRmaWxlKCkgYWNjZXB0IGEgbmVnYXRpdmUgY291bmQgYW5kIHJldHVybiBhIExpc3QgdGhlbi4KKworVGhlIFB5dGhvbiBpbmRlbnQgZmlsZSBjb250YWluZWQgYSBmZXcgZGVidWdnaW5nIHN0YXRlbWVudHMsIHJlbW92ZWQuCisKK0V4cGFuZGluZyB7fSBmb3IgYSBmdW5jdGlvbiBuYW1lLCByZXN1bHRpbmcgaW4gYSBuYW1lIHN0YXJ0aW5nIHdpdGggInM6IiB3YXMKK25vdCBoYW5kbGVkIGNvcnJlY3RseS4KKworU3BlbGxpbmc6IHJlbmFtZWQgQ09NUE9VTkRNQVggdG8gQ09NUE9VTkRXT1JETUFYLiAgQWRkZWQgc2V2ZXJhbCBpdGVtcyB0byBiZQorYWJsZSB0byBoYW5kbGUgdGhlIG5ldyBIdW5nYXJpYW4gZGljdGlvbmFyeS4KKworTWFjOiBEZWZhdWx0IHRvIGJ1aWxkaW5nIGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybSBvbmx5LCB0aGF0IGlzIG11Y2ggZmFzdGVyCit0aGFuIGJ1aWxkaW5nIGEgdW5pdmVyc2FsIGJpbmFyeS4gIEFsc28sIHVzaW5nIFBlcmwvUHl0aG9uL2V0Yy4gb25seSB3b3JrcyBmb3IKK3RoZSBjdXJyZW50IHBsYXRmb3JtLgorCisKICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aW0tcGwuMSBiL3J1bnRpbWUvZG9jL3ZpbS1wbC4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1ZGQ3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2RvYy92aW0tcGwuMQpAQCAtMCwwICsxLDU1NSBAQAorLlRIIFZJTSAxICIyMDAyIEx1dCAyMiIKKy5TSCBOQU1FCit2aW0gXC0gVmkgcm96YnVkb3dhbnksIGVkeXRvciB0ZWtzdHUgZGxhIHByb2dyYW1pc3R5CisuU0ggU1lOT1BTSVMKKy5icgorLkIgdmltCitbb3BjamVdIFtwbGlrIC4uXQorLmJyCisuQiB2aW0KK1tvcGNqZV0gXC0KKy5icgorLkIgdmltCitbb3BjamVdIFwtdCB6bmFjem5paworLmJyCisuQiB2aW0KK1tvcGNqZV0gXC1xIFtwbGlrIGKz6mR1XQorLlBQCisuYnIKKy5CIGV4CisuYnIKKy5CIHZpZXcKKy5icgorLkIgZ3ZpbQorLkIgZ3ZpZXcKKy5CIGV2aW0KKy5CIGV2aWV3CisuYnIKKy5CIHJ2aW0KKy5CIHJ2aWV3CisuQiByZ3ZpbQorLkIgcmd2aWV3CisuU0ggT1BJUworLkIgVmltCitqZXN0IGVkeXRvcmVtIHRla3N0dSBrb21wYXR5YmlsbnltIHogVmkuIE1vv2UgYnnmCit1v3l3YW55IGRvIGVkeWNqaSB3c3plbGtpZWdvIHJvZHphanUgcGxpa/N3IHRla3N0b3d5Y2guCitVv3l0ZWN6bnkgenezYXN6Y3phIHByenkgZWR5Y2ppIHByb2dyYW3zdy4KKy5QUAorUG9zaWFkYSB3aWVsZSB1c3ByYXduaWXxIHcgcG9y83duYW5pdSB6IFZpOiB3aWVsbyBwb3ppb21vd2UgY29mYW5pZSB6bWlhbiwKK3dpZWxlIG9raWVuIGkgYnVmb3LzdywgcG9ktndpZXRsYW5pZSBza7NhZG5pLCBlZHljamEgbGluaWkgcG9sZWNl8SwKK3V6dXBls25pYW5pZSBuYXp3IHBsaWvzdywgcG9tb2Mgb24tbGluZSwgd2l6dWFsbmEgc2VsZWtjamEsIGl0ZC4KK1pvYmFjeiAiOmhlbHAgdmlfZGlmZi50eHQiIGRsYSBwb2RzdW1vd2FuaWEgcvO/bmnmIHBvbWnqZHp5CisuQiBWaW1lbQoraSBWaS4KKy5QUAorVyBjemFzaWUga29yenlzdGFuaWEgegorLkIgVmltYQorbW+/bmEgdXp5c2th5iBvYnN6ZXJusSBwb21vYyB6IHN5c3RlbXUgcG9tb2N5IG9uLWxpbmUgZHpp6mtpIHBvbGVjZW5pdSAiOmhlbHAiLgorWm9iYWN6IHJvemR6aWGzIFBPTU9DIE9OLUxJTkUgcG9uab9lai4KKy5QUAorTmFqY3rqtmNpZWoKKy5CIFZpbQoramVzdCB1cnVjaGFtaWFueSBkbyBlZHljamkgcG9qZWR5bmN6ZWdvIHBsaWt1IHBvbGVjZW5pZW0KKy5QUAorCXZpbSBwbGlrCisuUFAKK0JhcmR6aWVqIG9n82xuaWUKKy5CIFZpbQoramVzdCB1cnVjaGFtaWFueSBwb3ByemV6OgorLlBQCisJdmltIFtvcGNqZV0gW2xpc3RhIHBsaWvzd10KKy5QUAorSmW2bGkgYnJhayBsaXN0eSBwbGlr83cgZWR5dG9yIHJvenBvY3puaWUgeiBwdXN0eW0gYnVmb3JlbS4gVyBpbm55bQord3lwYWRrdSBpc3RuaWVqZSBkb2uzYWRuaWUgamVkbmEgeiBjenRlcmVjaCBtb79saXdvtmNpIGJ5IHd5YnJh5iBqZWRlbgorbHViIHdp6mNlaiBwbGlr83cgZG8gZWR5Y2ppLgorLlRQIDEyCitwbGlrIC4uCitMaXN0YSBuYXp3IHBsaWvzdy4KK1BpZXJ3c3phIG5hendhIGLqZHppZSBuYXp3sSBiaWW/sWNlZ28gcGxpa3UsIGt083J5IHpvc3RhbmllIHdjenl0YW55CitkbyBidWZvcmEuIEt1cnNvciB6b3N0YW5pZSB1bWllc3pjem9ueSB3IHBpZXJ3c3p5bSB3aWVyc3p1LiBEbwora29sZWpueWNoIHBsaWvzdyBtb79uYSBwcnplarbmIGR6aepraSBwb2xlY2VuaXUgIjpuZXh0Ii4gQnkgb3R3b3J6eeYKK3BsaWssIGt083JlZ28gbmF6d2EgemFjenluYSBzaeogb2QgbXm2bG5pa2EgbmFsZb95IGxpc3TqIHBsaWvzdworcG9wcnplZHpp5iAiXC1cLSIuCisuVFAKK1wtCitQbGlrIGRvIGVkeWNqaSBqZXN0IHdjenl0YW55IHplIHN0YW5kYXJkb3dlZ28gd2VqtmNpYS4gUG9sZWNlbmlhIHOxCitvZGN6eXR5d2FuZSB6ZSBzdGFuZGFyZG93ZWdvIHd5arZjaWEgYrPqZPN3LCBrdPNyeW0gcG93aW5pZW4gYnnmCit0ZXJtaW5hbCAodHR5KS4KKy5UUAorXC10IHt6bmFjem5pa30KK1BsaWsgZG8gZWR5Y2ppIGkgcG9jerF0a293YSBwb3p5Y2phIGt1cnNvcmEgemFsZb95IG9kICJ6bmFjem5pa2EiLAorcm9kemFqdSBldHlraWV0eSBnb3RvLgore3puYWN6bmlrYX0gc3p1a2Egc2nqIHcgcGxpa3UgdGFncywgendpsXphbnkgeiBuaW0gcGxpayBzdGFqZSBzaeoKK3BsaWtpZW0gYmllv7FjeW0gaSB3eWtvbnVqZSBzaeogcG93abF6YW5lIHBvbGVjZW5pZS4KK1phend5Y3phaiB1v3l3YSBzaeogdGVnbyBzcG9zb2J1IGRsYSBwcm9ncmFt83cgdyBDLCB3IGt083J5Y2ggd3lwYWRrdQore3puYWN6bmlrfSBwb3dpbmllbiBieeYgbmF6d7EgZnVua2NqaS4KK1cgZWZla2NpZSBwbGlrIHphd2llcmFqsWN5IG9rcmW2bG9usSBmdW5rY2rqIHN0YWplIHNp6iBwbGlraWVtCitiaWW/sWN5bSBhIGt1cnNvciBqZXN0IHVtaWVzemN6b255IG5hIHBvY3qxdGt1IGZ1bmtjamkuCitab2JhY3ogIjpoZWxwIHRhZy1jb21tYW5kcyIuCisuVFAKK1wtcSBbcGxpa19is+pk83ddCitaYWN6bmlqIHcgdHJ5YmllIHF1aWNrRml4LgorUGxpayBbcGxpa19is+pk83ddIHpvc3RhamUgemludGVycHJldG93YW55IGkgcG9rYb9lIHNp6iBwaWVyd3N6eSBis7FkLgorSmW2bGkgYnJhayBvcGNqaSBbcGxpa19is+pk83ddIG5hendhIHBsaWt1IHpvc3RhbmllIHBvYnJhbmEgeiBvcGNqaQorJ2Vycm9yZmlsZScgKGRvbXm2bG5pZSAiQXp0ZWNDLkVyciIgZGxhIEFtaWdpLCAiZXJycm9zLmVyciIgZGxhIGlubnljaAorc3lzdGVt83cuCitEbyBrb2xlam55Y2ggYrPqZPN3IG1vv25hIHByemVza29jennmIGR6aepraSBwb2xlY2VuaXUgIjpjbiIuCitab2JhY3ogIjpoZWxwIHF1aWNrZml4Ii4KKy5QUAorVyB6YWxlv25vtmNpIG9kIHd5d2+zYW5pYQorLkIgVmltCit6YWNob3d1amUgc2nqIGluYWN6ZWogKHByb2dyYW0gbW+/ZSBieeYgY2GzeSBjemFzIHR5bSBzYW15bQorcGxpa2llbSkuCisuVFAgMTAKK3ZpbQorIk5vcm1hbG55IiBzcG9z82IsIHdzenlzdGtvIGplc3QgZG9tebZsbmUuCisuVFAKK2V4CitaYWN6bmlqIHcgdHJ5YmllIEV4LgorUHJ6ZWpkvCBkbyB0cnlidSBOb3JtYWxuZWdvIHBvbGVjZW5pZW0gIjp2aSIuCitNb79uYSB0YWu/ZSB1cnVjaG9taeYgcG9wcnpleiBhcmd1bWVudCAiXC1lIi4KKy5UUAordmlldworWmFjem5paiB3IHRyeWJpZSB0eWxrbyBkbyBvZGN6eXR1LiBXIHRlbiBzcG9z82IgYupkemllc3ogY2hyb25pb255CitwcnplZCB6YXBpc3l3YW5pZW0gcGxpa3UuIE1vv25hIHRha79lIHVydWNob21p5iBwb3ByemV6IGFyZ3VtZW50CisiXC1SIi4KKy5UUAorZ3ZpbSBndmlldworV2Vyc2phIEdVSS4KK1VydWNoYW1pYSBub3dlIG9rbm8uCitNb79uYSB0YWu/ZSB1cnVjaG9taeYgcG9wcnpleiBhcmd1bWVudCAiXC1nIi4KKy5UUAorZXZpbSBldmlldworV2Vyc2phIEdVSSB3ILNhdHd5bSB0cnliaWUuCitVcnVjaGFtaWEgbm93ZSBva25vLgorTW+/bmEgdGFrv2UgdXJ1Y2hvbWnmIHBvcHJ6ZXogYXJndW1lbnQgIlwteSIuCisuVFAKK3J2aW0gcnZpZXcgcmd2aW0gcmd2aWV3CitQb2RvYm5pZSBqYWsgcG93eb9laiwgYWxlIHogb2dyYW5pY3plbmlhbWkuIE5pZSBi6mR6aWUgbW+/bmEgdXJ1Y2hvbWnmCitwb2xlY2XxIHBvd7Nva2kgbHViIHphd2llc2nmCisuQiBWaW1hLgorTW+/bmEgdGFrv2UgdXJ1Y2hvbWnmIHBvcHJ6ZXogYXJndW1lbnQgIlwtWiIuCisuU0ggT1BDSkUKK09wY2plIG1vv25hIHBvZGHmIHcgZG93b2xuZWoga29sZWpub7ZjaSwgcHJ6ZWQgbHViIHBvIG5hendhY2ggcGxpa/N3LgorT3BjamUgYmV6IGFyZ3VtZW5083cgbW+/bmEgs7FjennmIHBvIHBvamVkeW5jenltIG15tmxuaWt1LgorLlRQIDEyCisrW251bV0KK1cgcGllcndzenltIHBsaWt1IGt1cnNvciB6b3N0YW5pZSB1bWllc3pjem9ueSB3IHdpZXJzenUgIm51bSIuCitKZbZsaSBicmFrICJudW0iIGt1cnNvciB6b3N0YW5pZSB1bWllc3pjem9ueSB3IG9zdGF0bmltIHdpZXJzenUuCisuVFAKKysve3d683J9CitXIHBpZXJ3c3p5bSBwbGlrdSBrdXJzb3Igem9zdGFuaWUgdW1pZXN6Y3pvbnkgbmEgcGllcndzenltIHd5c3SxcGllbml1Cit7d3rzcn0uCitab2JhY3ogIjpoZWxwIHNlYXJjaC1wYXR0ZXJuIiBieSBkb3dpZWR6aWXmIHNp6iBqYWtpZSBzsSBtb79saXdvtmNpCit3em9y83cgd3lzenVraXdhbmlhLgorLlRQCisre3BvbGVjZW5pZX0KKy5UUAorXC1jIHtwb2xlY2VuaWV9Cit7cG9sZWNlbmllfSB6b3N0YW5pZSB3eWtvbmFuZSBwbyB0eW0gamFrIHdjenl0YSBzaeogcGllcndzenkgcGxpay4KK3twb2xlY2VuaWV9IGplc3QgaW50ZXJwcmV0b3dhbmUgamFrbyBwb2xlY2VuaWUgRXguCitKZbZsaSB7cG9sZWNlbml9IHphd2llcmEgYmlhs2Ugem5ha2kgbXVzaSBieeYgdW1pZXN6Y3pvbmUgdyBwb2R382pueWNoCitjdWR6eXOzb3dhY2ggKHphbGW/eSB0byBvZCB1v3l3YW5laiBwb3ezb2tpKS4KK1Byenlrs2FkOiBWaW0gIitzZXQgc2kiIG1haW4uYworLmJyCitVd2FnYTogTW+/bmEgdb955iBkbyAxMCBwb2xlY2XxICIrIiBsdWIgIlwtYyIuCisuVFAKK1wtUyB7cGxpa30KK3twbGlrfSB6b3N0YW5pZSB6aW50ZXJwcmV0b3dhbnkgcG8gd2N6eXRhbml1IHBpZXJ3c3plZ28gcGxpa3UuCitKZXN0IHLzd25vd2G/bmUgXC1jICJzb3VyY2Uge3BsaWt9Ii4KK3twbGlrfSBuaWUgbW+/ZSB6YWN6eW5h5iBzaeogJ1wtJy4KK0pltmxpIG5pZSBwb2Rhbm8ge3BsaWt9IHpvc3RhbmllIHW/eXR5ICJTZXNzaW9uLnZpbSIgKGR6aWGzYSB0eWxrbword3RlZHkgamW2bGkgXC1TIGplc3Qgb3N0YXRuaW0gYXJndW1lbnRlbSkuCisuVFAKK1wtXC1jbWQge3BvbGVjZW5pZX0KK1BvZG9ibmUgZG8gIlwtYyIsIGFsZSBwb2xlY2VuaWUgamVzdCB3eWtvbnl3YW5lIHR1vyBwcnplZAoraW50ZXJwcmV0YWNqsSBqYWtpZWdva29sd2llayBwbGlrdSB2aW1yYy4KK01vv25hIHW/eeYgZG8gMTAgdGFraWNoIHBvbGVjZfEsIG5pZXphbGW/bmkgb2QgcG9sZWNl8SBvZCAiXC1jIgorLlRQCitcLUEKK0pltmxpCisuQiBWaW0KK3pvc3RhsyBza29tcGlsb3dhbnkgemUgd3NwYXJjaWVtIGRsYSBq6np5a/N3IGFyYWJza2ljaCAoZWR5Y2phIG9kCitwcmF3ZWogZG8gbGV3ZWogaSBhcmFic2thIG1hcGEga2xhd2lhdHVyeSkgdGEgb3BjamEgdXJ1Y2hhbWlhCisuQiBWaW1hCit3IHRyeWJpZSBhcmFic2tpbSwgbnAuIHVzdGF3aWEgc2nqIG9wY2phICdhcmFiaWMnLiBXIGlubnltIHd5cGFka3UKK3BvamF3aSBzaeoga29tdW5pa2F0IGKz6mR1IGkKKy5CIFZpbQoremFrb/FjenkgZHppYbNhbmllLgorLlRQCitcLWIKK1RyeWIgYmluYXJueS4KK1VzdGF3aSBzaeoga2lsa2Egb3BjamksIGt083JlIHVtb79saXdpsSBlZHljauogcGxpa/N3IGJpbmFybnljaCBsdWIKK3d5a29ueXdhbG55Y2guCisuVFAKK1wtQworS29tcGF0eWJpbG55LiBVc3Rhd2lhIG9wY2rqICdjb21wYXRpYmxlJy4KK1cgdGVuIHNwb3PzYiAKKy5CIFZpbQorYupkemllIHphY2hvd3l3YbMgc2nqIGphayBWaSwgbmF3ZXQgamW2bGkgaXN0bmllamUgcGxpayAudmltcmMuCisuVFAKK1wtZAorVXJ1Y2hvbSB3IHRyeWJpZSBkaWZmLgorUG93aW5ubyBieeYgZHdhIGx1YiB0cnp5IG5hend5IHBsaWvzdyBqYWtvIGFyZ3VtZW50eS4KKy5CIFZpbQorb3R3b3J6eSB3c3p5c3RraWUgdGUgcGxpa2kgaSBwb2thv2UgcvO/bmljZSBtaepkenkgbmltaS4KK0R6aWGzYSBqYWsgdmltZGlmZigxKS4KKy5UUAorXC1kIHt1cnqxZHplbmllfQorT3R383J6IHt1cnqxZHplbmllfSBieSB1v3l3YeYgamFrbyB0ZXJtaW5hbC4KK1R5bGtvIG5hIEFtaWR6ZS4KK1Byenlrs2FkOgorIlwtZCBjb246MjAvMzAvNjAwLzE1MCIuCisuVFAKK1wtRAorRGVidWdvd2FuaWUuIFByemVqZLwgZG8gdHJ5YnUgZGVidWdvd2FuaWUgd3lrb251arFjIHBpZXJ3c3plIHBvbGVjZW5pZQoremUgc2tyeXB0dS4KKy5UUAorXC1lCitVcnVjaG9tCisuQiBWaW1hCit3IHRyeWJpZSBFeCwgZHppYbNhIHRhayBzYW1vIGpha2J5IHd5d2+zYW5vIHByb2dyYW0gamFrbyAiZXgiLgorLlRQCitcLUUKK1VydWNob20KKy5CIFZpbWEKK3cgdWxlcHN6b255bSB0cnliaWUgRXgsIGR6aWGzYSB0YWsgc2FtbyBqYWtieSB3eXdvs2FubyBwcm9ncmFtIGpha28KKyJleGltIi4KKy5UUAorXC1mCitQaWVyc3p5IHBsYW4uIERsYSB3ZXJzamkgR1VJLgorLkIgVmltCituaWUgbmllIG9kZHppZWxpIHNp6iBvZCBwb3ezb2tpIHcgamFraWVqIHpvc3RhsyB1cnVjaG9taW9ueS4gTmEgQW1pZHplCisuQiBWaW0KK25pZSBqZXN0IHVydWNob21pb255IHBvbm93bmllIGJ5IG90d29yennmIG5vd2Ugb2tuby4KK09wY2phIHBvd2lubmEgYnnmIHW/eXRhIGtpZWR5CisuQiBWaW0KK2plc3Qgd3l3b7N5d2FueSBwcnpleiBwcm9ncmFtLCBrdPNyeSBtYSB6YWN6ZWth5iBuYSBrb25pZWMgc2VzamkgKG5wLgorbWFpbCkuCitOYSBBbWlkemUgcG9sZWNlbmlhICI6c2giIGkgIjohIiBuaWUgYupksSBkemlhs2HmLgorLlRQCitcLVwtbm9mb3JrCitQaWVyd3N6eSBwbGFuLiBEbGEgd2Vyc2ppIEdVSS4KKy5CIFZpbQorbmllIG9kZHppZWxpIHNp6iBvZCBwb3ezb2tpIHcgamFraWVqIHpvc3RhsyB1cnVjaG9taW9ueS4KKy5UUAorXC1GCitKZbZsaSBWaW0gem9zdGGzIHNrb21waWxvd2FueSB6ZSB3c3BhcmNpZW0gRktNQVAgZGxhIGVkeWNqaSB0ZWtzdPN3IG9kCitwcmF3ZWogZG8gbGV3ZWogaSBtYXBvd2FuaWEga2xhd2lhdHVyeSBGYXJzaSwgdGEgb3BjamEgdXJ1Y2hvbWkKKy5CIFZpbWEKK3cgdHJ5YmllIEZhcnNpLCBucC4gem9zdGF3abEgdXN0YXdpb25lIG9wY2plICdma21hcCcgaSAncmlnaHRsZWZ0Jy4KK1cgaW5ueW0gd3lwYWRrdSBwb2phd2kgc2nqIGtvbXVuaWthdCBis+pkdSBpCisuQiBWaW0KK3pha2/xY3p5IGR6aWGzYW5pZS4KKy5UUAorXC1nCitKZbZsaQorLkIgVmltCit6b3N0YbMgc2tvbXBpbG93YW55IHplIHdzcGFyY2llbSBkbGEgR1VJIHRhIG9wY2phIHVydWNob21pIEdVSS4KK1cgaW5ueW0gd3lwYWRrdSBwb2phd2kgc2nqIGtvbXVuaWthdCBis+pkdSBpCisuQiBWaW0KK3pha2/xY3p5IGR6aWGzYW5pZS4KKy5UUAorXC1oCitXebZ3aWV0bGkga3LzdGuxIHBvbW9jIG8gYXJndW1lbnRhY2ggbGluaWkgcG9sZWNl8SBpIG9wY2phY2guIFBvdGVtCisuQiBWaW0KK3pha2/xY3p5IGR6aWGzYW5pZS4KKy5UUAorXC1ICitKZbZsaQorLkIgVmltCit6b3N0YbMgc2tvbXBpbG93YW55IHplIHdzcGFyY2llbSBSSUdIVExFRlQgZGxhIGVkeWNqaSBvZCBwcmF3ZWogZG8KK2xld2VqIG9yYXogbWEgbWFwb3dhbmllIGtsYXdpYXR1cnkgZGxhIGhlYnJhanNraWVnbywgdGEgb3BjamEgdXJ1Y2hvbWkKKy5CIFZpbWEKK3cgdHJ5YmllIGhlYnJhanNraW0sIG5wLiB1c3Rhd2kgb3BjamUgJ2hrbWFwJyBpICdyaWdodGxlZnQnLgorVyBpbm55bSB3eXBhZGt1IHBvamF3aSBzaeoga29tdW5pa2F0IGKz6mR1IGkKKy5CIFZpbQoremFrb/FjenkgZHppYbNhbmllLgorLlRQCitcLWkge3ZpbWluZm99CitLaWVkeQorLkIgVmltCit1v3l3YSBwbGlrdSB2aW1pbmZvIHRhIG9wY2phIHdza2G/ZSBqYWtpZWdvIHBsaWt1IHW/eeYgemFtaWFzdAorZG9tebZsbmVnbyAifi8udmltaW5mbyIuCitNb79uYSB0Zb8gb21pbrHmIHW/eWNpZSBwbGlrdSAudmltaW5mbyBwcnpleiBwb2RhbmllIG5hend5ICJOT05FIi4KKy5UUAorXC1MCitUbyBzYW1vIGNvIFwtci4KKy5UUAorXC1sCitUcnliIExpc3AuCitVc3Rhd2lhIG9wY2plICdsaXNwJyBpICdzaG93bWF0Y2gnLgorLlRQCitcLW0KK1ptaWFuYSBwbGlrdSBqZXN0IG5pZW1vv2xpd2EuCitQcnplc3Rhd2lhIG9wY2rqICd3cml0ZScuCitNb79uYSBjYbN5IGN6YXMgem1pZW5p5iB6YXdhcnRvtuYgYnVmb3JhLCBhbGUgemFwaXNhbmllIHBsaWt1IG5pZSBqZXN0Cittb79saXdhLgorLlRQCitcLU0KK09wY2plICdtb2RpZmlhYmxlJyBpICd3cml0ZScgem9zdGFusSB3ebOxY3pvbmUsIHRhayB3aepjIHptaWFueQordyBwbGlrdSBvcmF6IGljaCB6YXBpc2FuaWUgbmllIHOxIG1vv2xpd2UuIE1vv25hIHdhcnRvtuYgdHljaCBvcGNqaQorem1pZW5p5i4KKy5UUAorXC1OCitUcnliIG5pZWtvbXBhdGlieWxueS4gUHJ6ZXN0YXdpYSBvcGNq6iAnY29tcGF0aWJsZScuIER6aepraSB0ZW11CisuQiBWaW0KK2LqZHppZSB6YWNob3d5d2GzIHNp6iBvZHJvYmlu6iBsZXBpZWosIGFsZSBtbmllaiB6Z29kem5pZSB6IFZpIG5hd2V0CitqZbZsaSBuaWUgaXN0bmllamUgcGxpayAudmltcmMuCisuVFAKK1wtbgorTmllIHBvd3N0YW5pZSBwbGlrIHd5bWlhbnkuIE9kenlza2FuaWUgcGxpa3UgcG8gd3lwYWRrdSBuaWUgYupkemllCittb79saXdlLgorV3lnb2RuZSBqZbZsaSBpbnN0bmllamUgcG90cnplYmEgZWR5Y2ppIG5hIGJhcmR6byB3b2xueW0gbWVkaXVtIChucC4KK2R5c2tpZXRjZSkuIFRlbiBjZWwgbW+/bmEgb3NpsWduseYgdGFrv2UgcHJ6ZXogIjpzZXQgdWM9MCIuIE1vv25hCitvZHdy82Np5iBwcnpleiAiOnNldCB1Yz0yMDAiLgorLlRQCitcLW5iCitVcnVjaG9tIGpha28gc2Vyd2VyIGVkeXRvcmEgZGxhIE5ldEJlYW5zLiBab2JhY3ogZG9rdW1lbnRhY2rqIGJ5Citkb3dpZWR6aWXmIHNp6iB3aepjZWouCisuVFAKK1wtb1tOXQorT3R383J6IE4gb2tpZW4gdyBzdG9zaWUuCitLaWVkeSBicmFrIE4sIG90d/NyeiBqZWRubyBva25vIGRsYSBrYb9kZWdvIHBsaWt1LgorLlRQCitcLU9bTl0KK090d/NyeiBOIG9raWVuIG9ib2sgc2llYmllLgorS2llZHkgYnJhayBOLCBvdHfzcnogamVkbm8gb2tubyBkbGEga2G/ZGVnbyBwbGlrdS4KKy5UUAorXC1wW05dCitPdHfzcnogTiBrYXJ0LgorS2llZHkgYnJhayBOLCBvdHfzcnogamVkbrEga2FydOogZGxhIGthv2RlZ28gcGxpa3UuCisuVFAKK1wtUgorVHJ5YiB0eWxrbyBkbyBvZGN6eXR1LgorWm9zdGFuaWUgdXN0YXdpb25hIG9wY2phICdyZWFkb25seScuCitDYbN5IGN6YXMgbW+/bmEgem1pZW5pYeYgYnVmb3IsIGFsZSBi6mR6aWUgaXN0bmlhs2EgYmxva2FkYSBwcnplZCBwcnp5cGFka293eW0KK3phcGlzYW5pZW0gcGxpa3UuCitKZbZsaSBjaGNlc3ogemFwaXNh5iBwbGlrIGRvZGFqIHd5a3J6eWtuaWsgZG8gcG9sZWNlbmlhIEV4LCBucC4gIjp3ISIuCitPcGNqYSBcLVIgaW1wbGlrdWplIG9wY2rqIFwtbiAoem9iYWN6IHBvbmm/ZWopLgorT3BjamEgJ3JlYWRvbmx5JyBtb79lIHpvc3Rh5iBwcnplc3Rhd2lvbmEgcG9wcnpleiAiOnNldCBub3JvIi4KK1pvYmFjeiAiOmhlbHAgJ3JlYWRvbmx5JyIuCisuVFAKK1wtcgorV3lwaXN6IGxpc3TqIHBsaWvzdyB3eW1pYW55IHJhemVtIHogaW5mb3JtYWNqYW1pIG8gbmljaC4KKy5UUAorXC1yIHtwbGlrfQorVHJ5YiBvZHp5c2tpd2FuaWEgZGFueWNoLgorUGxpayB3eW1pYW55IHpvc3RhbmllIHd5a29yenlzdGFueSBkbyBvZHp5c2thbmlhIGd3YbN0b3duaWUgcHJ6ZXJ3YW5laiBzZXNqaS4KK1BsaWsgd3ltaWFueSB0byBwbGlrIHogdGFrsSBzYW2xIG5henexIGNvIHBsaWsgb3J5Z2luYWxueSB6IGRvZGFueW0gIi5zd3AiLgorWm9iYWN6ICI6aGVscCByZWNvdmVyeSIuCisuVFAKK1wtcworVHJ5YiBjaWNoeS4gUm96cG9jeup0eSB0eWxrbyBraWVkeSB1cnVjaG9taW9ueSBqYWtvICJFeCIgbHViIG9wY2phCisiXC1lIiB6b3N0YbNhIHBvZGFuYSBwcnplZCBvcGNqsSAiXC1zIi4KKy5UUAorXC1zIHtza3J5cHR9Citab3N0YW5pZSB3Y3p5dGFueSBwbGlrIHtza3J5cHR9LgorWm5ha2kgdyBwbGlrdSB6b3N0YW6xIHppbnRlcnByZXRvd2FuZSBqYWtieSBiebN5IHdwaXN5d2FuZS4KK1RvIHNhbW8gbW+/bmEgb3NpsWduseYgcG9wcnpleiBwb2xlY2VuaWUgIjpzb3VyY2UhIHtza3J5cHR9Ii4KK0pltmxpIG9zabFnbmnqdG8ga29uaWVjIHBsaWt1IHphbmltIGVkeXRvciB6YWtv8WN6ebMgZHppYbNhbmllLCBkYWxzemUKK3puYWtpIG9kY3p5dHl3YW5lIHOxIHoga2xhd2lhdHVyeS4KKy5UUAorXC1UIHt0ZXJtaW5hbH0KK1ByemVrYXp1amUKKy5CIFZpbW93aQorbmF6d+ogdGVybWluYWx1IGpha2llZ28gdb95d2Fzei4KK1d5bWFnYW5lIHR5bGtvIHd0ZWR5IGpltmxpIG5pZSBkemlhs2EgYXV0b21hdHljem5pZS4KK1Bvd2luaWVuIGJ55iB0byB0ZXJtaW5hbCB6bmFueQorLkIgVmltb3dpCisoYnVpbHRpbikgbHViIHpkZWZpbmlvd2FueSB3IHBsaWthY2ggdGVybWNhcCBsdWIgdGVybWluZm8uCisuVFAKK1wtdSB7dmltcmN9CitVv3lqIHBvbGVjZfEgeiBwbGlrdSB7dmltcmN9IHcgY3phc2llIHVydWNoYW1pYW5pYS4KK1dzenlzdGtpZSBpbm5lIG1vv2xpd2UgcGxpa2kgdXJ1Y2hhbWlhbmlhIHpvc3RhbrEgcG9taW5p6nRlLgorVb95d2FqIGRvIGVkeXRvd2FuaWEgcGxpa/N3IHNwZWNqYWxueWNoLgorTW+/bmEgcG9taW6x5iB0YWu/ZSB3c3p5c3RraWUgbW+/bGl3ZSBwbGlraSB1cnVjaGFtaWFuaWEgcG9wcnplegorcG9kYW5pZSBuYXp3eSAiTk9ORSIuCitab2JhY3ogIjpoZWxwIGluaXRpYWxpemF0aW9uIiBieSBwb3puYeYgd2nqY2VqIHN6Y3plZ/Oz83cuCisuVFAKK1wtVSB7Z3ZpbXJjfQorVb95aiBwb2xlY2XxIHogcGxpa3Uge2d2aW1yY30gdyBjemFzaWUgdXJ1Y2hhbWlhbmlhIEdVSS4KK1dzenlzdGtpZSBpbm5lIG1vv2xpd2UgcGxpa2kgdXJ1Y2hhbWlhbmlhIEdVSSB6b3N0YW6xIHBvbWluaep0ZS4KK01vv25hIHBvbWluseYgdGFrv2Ugd3N6eXN0a2llIG1vv2xpd2UgcGxpa2kgdXJ1Y2hhbWlhbmlhIEdVSSBwb3ByemV6Citwb2RhbmllIG5hend5ICJOT05FIi4KK1pvYmFjeiAiOmhlbHAgZ3VpLWluaXQiIGJ5IHBvem5h5iB3aepjZWogc3pjemVn87Pzdy4KKy5UUAorXC1WW05dCitUcnliIGdhZGF0bGl3eS4gV3lwaXN6IHdpYWRvbW+2Y2kgbyB0eW0gamFraSBwbGlraSBzsSB3Y3p5dHl3YW5lCitpIG8gaW5mb3JtYWNqYWNoIHBvYmllcmFueWNoIGkgZG9kYXdhbnljaCBkbyBwbGlrdSB2aW1pbmZvLiBPcGNqb25hbG55Cithcmd1bWVudCBOIGplc3Qgd2FydG+2Y2mxICd2ZXJib3NlJy4gRG9tebZsbmllIDEwLgorLlRQCitcLXYKK1VydWNob20KKy5CIFZpbWEKK3cgdHJ5YmllIFZpLCB0YWsgamFrYnkgcHJvZ3JhbSBiebMgbmF6d2FueSAidmkiLiBNYSB6bmFjemVuaWUKK3R5bGtvIHd0ZWR5IGpltmxpIHByb2dyYW0gbmF6d2FueSBqZXN0ICJleCIuCisuVFAKK1wtdyB7cGxpa30KK1dzenlzdGtpZSB3Y2m2bmnqY2lhIGtsYXdpc3p5LCBhvyBkbyB6YWtv8WN6ZW5pYSBkemlhs2FuaWEgcHJvZ3JhbXUsCitzsSB6YXBpc3l3YW5lIHcge3BsaWt9IC4KK1W/eXRlY3puZSBqZbZsaSBjaGNlIHNp6iBzdHdvcnp55iBza3J5cHQgZG8gdb95Y2lhIHogInZpbSBcLXMiIGx1YgorIjpzb3VyY2UhIi4KK0pltmxpIHtwbGlrfSBpc3RuaWVqZSwgem5ha2kgc7EgZG9waXN5d2FuZS4KKy5UUAorXC1XIHtwbGlrfQorUG9kb2JuaWUgZG8gXC13LCBhbGUgaXN0bmllarFjeSBwbGlrIGplc3QgbmFkcGlzeXdhbnkuCisuVFAKK1wteAorVb95aiBzenlmcm93YW5pYSBwb2RjemFzIHphcGlzeXdhbmlhIHBsaWvzdy4gWm9zdGFuaWVzeiBwb3Byb3N6b255CitvIHBvZGFuaWUga2x1Y3phLgorLlRQCitcLVgKK05pZSCzsWN6IHogc2Vyd2VyZW0gWC4gU2tyYWNhIGN6YXMgdXJ1Y2hhbWlhbmlhIHcgdGVybWluYWx1LCBhbGUgdHl0dbMKK29rbmEgaSBzY2hvd2VrIG5pZSBi6mSxIHd5a29yenlzdHl3YW5lLgorLlRQCitcLXkKK1VydWNob20KKy5CIFZpbWEKK3cgs2F0d3ltIHRyeWJpZSwgdGFrIGpha2J5IHByb2dyYW0gem9zdGGzIHd5d2+zYW55ICJldmltIiBsdWIgImV2aWV3Ii4KKy5CIFZpbQorYupkemllIHphY2hvd3l3YbMgc2nqIGJhcmR6aWVqIGphayBlZHl0b3Iga2xpa25pai1pLXdwaXN6LgorLlRQCitcLVoKK1RyeWIgb2dyYW5pY3pvbnkuIFphY2hvd3VqZSBzaeogamFrYnkgbmF6d2EgcHJvZ3JhbXUgemFjenluYbNhIHNp6iBvZAorInIiLgorLlRQCitcLVwtCitPem5hY3phIGtvbmllYyBvcGNqaS4KK0FyZ3VtZW50eSBwbyB0ZWogb3BjamkgYupksSB0cmFrdG93YW5lIGphayBuYXp3eSBwbGlr83cuIFW/eXdhIHNp6iBkbworb3R3aWVyYW5pYSBwbGlr83csIGt083J5Y2ggbmF6d3kgemFjenluYWqxIHNp6iBvZCAnXC0nLgorLlRQCitcLVwtZWNob1wtd2lkCitXebOxY3puaWUgR1RLIEdVSTogd3lwaXN6IElEIG9rbmEgbmEgc3RhbmRhcmRvd2Ugd3lqtmNpZS4KKy5UUAorXC1cLWhlbHAKK1d5tndpZXRsIGluZm9ybWFjauogbyBwb21vY3kgaSB6YWtv8WN6eSwgdG8gc2FtbyBjbyJcLWgiLgorLlRQCitcLVwtbGl0ZXJhbAorUG90cmFrdHVqIG5hend5IHBsaWvzdyBkb3Ozb3duaWUgaSBuaWUgcm96d2mxenVqIGt3YW50eWZpa2F0b3Lzdy4gTmllCittYSB6bmFjemVuaWEgbmEgVW5pa3NhY2ggZ2R6aWUgcG93s29rYSByb3p3abF6dWplIGt3YW50eWZpa2F0b3LzdworLlRQCitcLVwtbm9wbHVnaW4KK1BvbWnxILNhZG93YW5pZSB3dHljemVrLiBJbXBsaWtvd2FuZSBwcnp5IFwtdSBOT05FLgorLlRQCitcLVwtcmVtb3RlCitQb7OxY3ogc2nqIHogc2Vyd2VyZW0gVmltYSBpIGVkeXR1aiB3IG5pbSByZXN6dOogYXJndW1lbnTzdy4gSmW2bGkgbmllCit6bmFsZXppb25vIHNlcndlcmEgem9zdGFuaWUgemezb3N6b255IGKzsWQgYSBwbGlraSBi6mSxIG90d2FydGUKK3cgYmllv7FjeW0gVmltaWUuCisuVFAKK1wtXC1yZW1vdGVcLWV4cHIge3d5cmG/ZW5pZX0KK1Bvs7FjeiB6IHNlcndlcmVtIFZpbWEsIHJvendpsb8gdyBuaW0ge3d5cmG/ZW5pZX0gaSB3eXBpc3ogcm96d2mxemFuaWUKK25hIHN0YW5kYXJkb3dlIHd5arZjaWUuCisuVFAKK1wtXC1yZW1vdGVcLXNlbmQge2tsYXdpc3plfQorUG+zsWN6IHogc2Vyd2VyZW0gVmltYSBpIHd5tmxpaiBkbyBuaWVnbyB7a2xhd2lzemV9LgorLlRQCitcLVwtcmVtb3RlXC1zaWxlbnQKK1RhayBzYW1vIGphayBcLXJlbW90ZSwgYWxlIGJleiBvc3RyemW/ZW5pYSBraWVkeSBuaWUgem5hbGV6aW9ubworc2Vyd2VyYS4KKy5UUAorXC1cLXJlbW90ZVwtd2FpdAorVGFrIHNhbW8gamFrIFwtcmVtb3RlLCBhbGUgVmltIG5pZSB6YWtv8WN6eSBkb3Dza2kgcGxpa2kgbmllIHpvc3RhbrEKK290d2FydGUuCisuVFAKK1wtXC1yZW1vdGVcLXdhaXRcLXNpbGVudAorVGFrIHNhbW8gamFrIFwtXC1yZW1vdGVcLXdhaXQsIGFsZSBiZXogb3N0cnplv2VuaWUga2llZHkgbmllCit6bmFsZXppb25vIHNlcndlcmEuCisuVFAKK1wtXC1zZXJ2ZXJsaXN0CitXeXBpc3ogbmF6d3kgd3N6eXN0a2ljaCBzZXJ3ZXLzdyBWaW1hIGpha2llIG1vv25hIHpuYWxlvOYuCisuVFAKK1wtXC1zZXJ2ZXJuYW1lIHtuYXp3YX0KK1W/eWoge25hendhfSBqYWtvIG5hend5IHNlcndlcmEuIFd5a29yenlzdGFuZSBkbGEgYmllv7FjZWdvIFZpbWEgbyBpbGUKK25pZSBwb7OxY3pvbmUgeiBhcmd1bWVudGVtIFwtXC1yZW1vdGUsIHd0ZWR5IGplc3QgdG8gbmF6d2Egc2Vyd2VyYSBkbworcG+zsWN6ZW5pYS4KKy5UUAorXC1cLXNvY2tldGlkIHtpZH0KK1d5s7Fjem5pZSBHVEsgR1VJOiBVv3lqIG1lY2hhbml6bXUgR3RrUGx1ZyBieSB1cnVjaG9taeYgZ3ZpbWEgdyBpbm55bQorb2tuaWUuCisuVFAKK1wtXC12ZXJzaW9uCitXeXBpc3ogaW5mb3JtYWNq6iBvIHdlcnNqaSBpIHpha2/xY3ouCisuU0ggUE9NT0MgT04tTElORQorQnkgcm96cG9jerHmIHdwaXN6ICI6aGVscCIgdworLkIgVmltaWUKK1dwaXN6ICI6aGVscCB0ZW1hdCIgYnkgdXp5c2th5iBwb21vYyBuYSBva3JltmxvbnkgdGVtYXQuCitQcnp5a7NhZDogIjpoZWxwIFpaIiBieSB1enlza2HmIHBvbW9jIG5hIHRlbWF0IHBvbGVjZW5pYSAiWloiLgorVb95aiA8VGFiPiBpIENUUkxcLUQgYWJ5IHV6dXBls25p5iB0ZW1hdHkgKCI6aGVscAorY21kbGluZVwtY29tcGxldGlvbiIpLiBXIHBsaWthY2ggcG9tb2N5IGlzdG5pZWqxIHpuYWN6bmlraSBieSB1s2F0d2nmCitza2FrYW5pZSB6IGplZG5lZ28gbWllanNjYSBkbyBpbm5lZ28gKHJvZHphaiBsaW5r83cgaGlwZXJ0ZWtzdG93eWNoLAorem9iYWN6ICI6aGVscCIpLgorTW+/bmEgdyB0ZW4gc3Bvc/NiIHpvYmFjennmIGNhs7EgZG9rdW1lbnRhY2rqLCBucC4gIjpoZWxwIHN5bnRheC50eHQiLgorLlNIIFBMSUtJCisuVFAgMTUKKy91c3IvbG9jYWwvbGliL3ZpbS9kb2MvKi50eHQKK0Rva3VtZW50YWNqYQorLkIgVmltYQorVb95aiAiOmhlbHAgZG9jXC1maWxlXC1saXN0IiBhYnkgdXp5c2th5iBwZbNusSBsaXN06i4KKy5UUAorL3Vzci9sb2NhbC9saWIvdmltL3N5bnRheC9zeW50YXgudmltCitHbG9iYWxuZSB1cnVjaGFtaWFuaWUgcG9ktndpZXRsYW5pYSBza7NhZG5pLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vc3ludGF4LyoudmltCitQbGlraSBza7NhZG5pIGRsYSBy879ueWNoIGrqenlr83cuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS92aW1yYworR2xvYmFsbnkgcGxpayB1cnVjaGFtaWFuaWEKKy5CIFZpbWEKKy5UUAorfi8udmltcmMKK09zb2Jpc3RlIHBhcmFtZXRyeSB1cnVjaGFtaWFuaWEKKy5CIFZpbWEKKy5UUAorL3Vzci9sb2NhbC9saWIvdmltL2d2aW1yYworR2xvYmFsbmUgdXJ1Y2hhbWlhbmllIGd2aW1hLgorLlRQCit+Ly5ndmltcmMKK09zb2Jpc3RlIHBhcmFtZXRyeSB1cnVjaGFtaWFuaWEgZ3ZpbWEuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9vcHR3aW4udmltCitTa3J5cHQgdb95d2FueSB3IHBvbGVjZW5pdSAiOm9wdGlvbnMiLCBkb2JyeSBzcG9z82IgZG8gcHJ6ZWdssWRhbmlhCitpIHVzdGF3aWFuaWEgb3BjamkuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9tZW51LnZpbQorR2xvYmFsbmUgdXJ1Y2hhbWlhbmllIG1lbnUgZ3ZpbWEuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9idWdyZXBvcnQudmltCitTa3J5cHQgc7N1v7FjeSBkbyB0d29yemVuaWEgcmFwb3J083cgbyBis+pkYWNoLiBab2JhY3ogIjpoZWxwIGJ1Z3MiLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vZmlsZXR5cGUudmltCitTa3J5cHQgZG8gd3lrcnl3YW5pYSB0eXB1IHBsaWt1IHdlZLN1ZyBqZWdvIG5hend5LiBab2JhY3ogIjpoZWxwICdmaWxldHlwZSciLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vc2NyaXB0cy52aW0KK1NrcnlwdCBkbyB3eWtyeXdhbmlhIHR5cHUgcGxpa3Ugd2Vks3VnIGplZ28gemF3YXJ0b7ZjaS4gWm9iYWN6ICI6aGVscCAnZmlsZXR5cGUnIi4KKy5UUAorL3Vzci9sb2NhbC9saWIvdmltLyoucHMKK1BsaWt1IHW/eXdhbmUgZG8gZHJ1a293YW5pYSBQb3N0U2NyaXB0dS4KKy5QUAorTmFqtndpZb9zemUgd2lhZG9tb7ZjaSBuYSBzdHJvbmllCisuQiBWaW1hOgorLmJyCis8VVJMOmh0dHA6Ly93d3cudmltLm9yZy8+CisuU0ggWk9CQUNaIFRBS69FCit2aW10dXRvcigxKQorLlNIIEFVVE9SCisuQiBWaW0KK3pvc3RhsyBuYXBpc2FueSBwcnpleiBCcmFtYSBNb29sZW5hYXJhIHogZHW/sSBwb21vY7EgaW5ueWNoIG9z82IuCitab2JhY3ogIjpoZWxwIGNyZWRpdHMiIHcKKy5CIFZpbWllLgorLmJyCisuQiBWaW0KK2JhenVqZSBuYSBTdGV2aWVtLCBuYWQga3TzcnltIHByYWNvd2FsaTogVGltIFRob21wc29uLCBUb255IEFuZHJld3MKK2kgRy5SLiAoRnJlZCkgV2FsdGVyLgorTWGzbyBqdb8gem9zdGGzbyB6IG9yeWdpbmFsbmVnbyBrb2R1LgorLlNIIEKjykRZCitQcmF3ZG9wb2RvYm5lLgorWm9iYWN6ICI6aGVscCB0b2RvIiBieSBwb3puYeYgbGlzdOogem5hbnljaCBwcm9ibGVt83cuCisuUFAKK1BhbWnqdGFqIL9lIHBld25hIGlsb7bmIHByb2JsZW3zdywga3TzcmUgbW9nsSBieeYgdXpuYXdhbmUgcHJ6ZXoKK25pZWt083J5Y2ggbHVkemkgemEgYrPqZHkgc7EgdyByemVjenl3aXN0b7ZjaSBzcG93b2Rvd2FuZSB3aWVybm+2Y2mxCit3IG9kdHdhcnphbml1IHphY2hvd2FuaWEgVmkuCitKZbZsaSBzsWR6aXN6LCC/ZSBpbm5lIHJ6ZWN6eSBzsSBis+pkYW1pICJwb25pZXdhvyBWaSByb2JpIHRvCitpbmFjemVqIiwgcG93aW5pZW5ltiBwcnp5anJ6ZeYgc2nqIGJsab9laiBwbGlrb3dpIHZpX2RpZmYudHh0IChsdWIKK3dwaXNh5iAiOmhlbHAgdmlfZGlmZi50eHQiIHcgVmltaWUpLgorU3ByYXdkvCB0YWu/ZSBvcGlzIG9wY2ppICdjb21wYXRpYmxlJyBpICdjcG9wdGlvbnMnLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltLXBsLlVURi04LjEgYi9ydW50aW1lL2RvYy92aW0tcGwuVVRGLTguMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjE5YTUyCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvdmltLXBsLlVURi04LjEKQEAgLTAsMCArMSw1NTUgQEAKKy5USCBWSU0gMSAiMjAwMiBMdXQgMjIiCisuU0ggTkFNRQordmltIFwtIFZpIHJvemJ1ZG93YW55LCBlZHl0b3IgdGVrc3R1IGRsYSBwcm9ncmFtaXN0eQorLlNIIFNZTk9QU0lTCisuYnIKKy5CIHZpbQorW29wY2plXSBbcGxpayAuLl0KKy5icgorLkIgdmltCitbb3BjamVdIFwtCisuYnIKKy5CIHZpbQorW29wY2plXSBcLXQgem5hY3puaWsKKy5icgorLkIgdmltCitbb3BjamVdIFwtcSBbcGxpayBixYLEmWR1XQorLlBQCisuYnIKKy5CIGV4CisuYnIKKy5CIHZpZXcKKy5icgorLkIgZ3ZpbQorLkIgZ3ZpZXcKKy5CIGV2aW0KKy5CIGV2aWV3CisuYnIKKy5CIHJ2aW0KKy5CIHJ2aWV3CisuQiByZ3ZpbQorLkIgcmd2aWV3CisuU0ggT1BJUworLkIgVmltCitqZXN0IGVkeXRvcmVtIHRla3N0dSBrb21wYXR5YmlsbnltIHogVmkuIE1vxbxlIGJ5xIcKK3XFvHl3YW55IGRvIGVkeWNqaSB3c3plbGtpZWdvIHJvZHphanUgcGxpa8OzdyB0ZWtzdG93eWNoLgorVcW8eXRlY3pueSB6d8WCYXN6Y3phIHByenkgZWR5Y2ppIHByb2dyYW3Ds3cuCisuUFAKK1Bvc2lhZGEgd2llbGUgdXNwcmF3bmllxYQgdyBwb3LDs3duYW5pdSB6IFZpOiB3aWVsbyBwb3ppb21vd2UgY29mYW5pZSB6bWlhbiwKK3dpZWxlIG9raWVuIGkgYnVmb3LDs3csIHBvZMWbd2lldGxhbmllIHNrxYJhZG5pLCBlZHljamEgbGluaWkgcG9sZWNlxYQsCit1enVwZcWCbmlhbmllIG5hencgcGxpa8OzdywgcG9tb2Mgb24tbGluZSwgd2l6dWFsbmEgc2VsZWtjamEsIGl0ZC4KK1pvYmFjeiAiOmhlbHAgdmlfZGlmZi50eHQiIGRsYSBwb2RzdW1vd2FuaWEgcsOzxbxuacSHIHBvbWnEmWR6eQorLkIgVmltZW0KK2kgVmkuCisuUFAKK1cgY3phc2llIGtvcnp5c3RhbmlhIHoKKy5CIFZpbWEKK21vxbxuYSB1enlza2HEhyBvYnN6ZXJuxIUgcG9tb2MgeiBzeXN0ZW11IHBvbW9jeSBvbi1saW5lIGR6acSZa2kgcG9sZWNlbml1ICI6aGVscCIuCitab2JhY3ogcm96ZHppYcWCIFBPTU9DIE9OLUxJTkUgcG9uacW8ZWouCisuUFAKK05hamN6xJnFm2NpZWoKKy5CIFZpbQoramVzdCB1cnVjaGFtaWFueSBkbyBlZHljamkgcG9qZWR5bmN6ZWdvIHBsaWt1IHBvbGVjZW5pZW0KKy5QUAorCXZpbSBwbGlrCisuUFAKK0JhcmR6aWVqIG9nw7NsbmllCisuQiBWaW0KK2plc3QgdXJ1Y2hhbWlhbnkgcG9wcnplejoKKy5QUAorCXZpbSBbb3BjamVdIFtsaXN0YSBwbGlrw7N3XQorLlBQCitKZcWbbGkgYnJhayBsaXN0eSBwbGlrw7N3IGVkeXRvciByb3pwb2N6bmllIHogcHVzdHltIGJ1Zm9yZW0uIFcgaW5ueW0KK3d5cGFka3UgaXN0bmllamUgZG9rxYJhZG5pZSBqZWRuYSB6IGN6dGVyZWNoIG1vxbxsaXdvxZtjaSBieSB3eWJyYcSHIGplZGVuCitsdWIgd2nEmWNlaiBwbGlrw7N3IGRvIGVkeWNqaS4KKy5UUCAxMgorcGxpayAuLgorTGlzdGEgbmF6dyBwbGlrw7N3LgorUGllcndzemEgbmF6d2EgYsSZZHppZSBuYXp3xIUgYmllxbzEhWNlZ28gcGxpa3UsIGt0w7NyeSB6b3N0YW5pZSB3Y3p5dGFueQorZG8gYnVmb3JhLiBLdXJzb3Igem9zdGFuaWUgdW1pZXN6Y3pvbnkgdyBwaWVyd3N6eW0gd2llcnN6dS4gRG8KK2tvbGVqbnljaCBwbGlrw7N3IG1vxbxuYSBwcnplasWbxIcgZHppxJlraSBwb2xlY2VuaXUgIjpuZXh0Ii4gQnkgb3R3b3J6ecSHCitwbGlrLCBrdMOzcmVnbyBuYXp3YSB6YWN6eW5hIHNpxJkgb2QgbXnFm2xuaWthIG5hbGXFvHkgbGlzdMSZIHBsaWvDs3cKK3BvcHJ6ZWR6acSHICJcLVwtIi4KKy5UUAorXC0KK1BsaWsgZG8gZWR5Y2ppIGplc3Qgd2N6eXRhbnkgemUgc3RhbmRhcmRvd2VnbyB3ZWrFm2NpYS4gUG9sZWNlbmlhIHPEhQorb2Rjenl0eXdhbmUgemUgc3RhbmRhcmRvd2VnbyB3eWrFm2NpYSBixYLEmWTDs3csIGt0w7NyeW0gcG93aW5pZW4gYnnEhwordGVybWluYWwgKHR0eSkuCisuVFAKK1wtdCB7em5hY3puaWt9CitQbGlrIGRvIGVkeWNqaSBpIHBvY3rEhXRrb3dhIHBvenljamEga3Vyc29yYSB6YWxlxbx5IG9kICJ6bmFjem5pa2EiLAorcm9kemFqdSBldHlraWV0eSBnb3RvLgore3puYWN6bmlrYX0gc3p1a2Egc2nEmSB3IHBsaWt1IHRhZ3MsIHp3acSFemFueSB6IG5pbSBwbGlrIHN0YWplIHNpxJkKK3BsaWtpZW0gYmllxbzEhWN5bSBpIHd5a29udWplIHNpxJkgcG93acSFemFuZSBwb2xlY2VuaWUuCitaYXp3eWN6YWogdcW8eXdhIHNpxJkgdGVnbyBzcG9zb2J1IGRsYSBwcm9ncmFtw7N3IHcgQywgdyBrdMOzcnljaCB3eXBhZGt1Cit7em5hY3puaWt9IHBvd2luaWVuIGJ5xIcgbmF6d8SFIGZ1bmtjamkuCitXIGVmZWtjaWUgcGxpayB6YXdpZXJhasSFY3kgb2tyZcWbbG9uxIUgZnVua2NqxJkgc3RhamUgc2nEmSBwbGlraWVtCitiaWXFvMSFY3ltIGEga3Vyc29yIGplc3QgdW1pZXN6Y3pvbnkgbmEgcG9jesSFdGt1IGZ1bmtjamkuCitab2JhY3ogIjpoZWxwIHRhZy1jb21tYW5kcyIuCisuVFAKK1wtcSBbcGxpa19ixYLEmWTDs3ddCitaYWN6bmlqIHcgdHJ5YmllIHF1aWNrRml4LgorUGxpayBbcGxpa19ixYLEmWTDs3ddIHpvc3RhamUgemludGVycHJldG93YW55IGkgcG9rYcW8ZSBzacSZIHBpZXJ3c3p5IGLFgsSFZC4KK0plxZtsaSBicmFrIG9wY2ppIFtwbGlrX2LFgsSZZMOzd10gbmF6d2EgcGxpa3Ugem9zdGFuaWUgcG9icmFuYSB6IG9wY2ppCisnZXJyb3JmaWxlJyAoZG9tecWbbG5pZSAiQXp0ZWNDLkVyciIgZGxhIEFtaWdpLCAiZXJycm9zLmVyciIgZGxhIGlubnljaAorc3lzdGVtw7N3LgorRG8ga29sZWpueWNoIGLFgsSZZMOzdyBtb8W8bmEgcHJ6ZXNrb2N6ecSHIGR6acSZa2kgcG9sZWNlbml1ICI6Y24iLgorWm9iYWN6ICI6aGVscCBxdWlja2ZpeCIuCisuUFAKK1cgemFsZcW8bm/Fm2NpIG9kIHd5d2/FgmFuaWEKKy5CIFZpbQoremFjaG93dWplIHNpxJkgaW5hY3plaiAocHJvZ3JhbSBtb8W8ZSBiecSHIGNhxYJ5IGN6YXMgdHltIHNhbXltCitwbGlraWVtKS4KKy5UUCAxMAordmltCisiTm9ybWFsbnkiIHNwb3PDs2IsIHdzenlzdGtvIGplc3QgZG9tecWbbG5lLgorLlRQCitleAorWmFjem5paiB3IHRyeWJpZSBFeC4KK1ByemVqZMW6IGRvIHRyeWJ1IE5vcm1hbG5lZ28gcG9sZWNlbmllbSAiOnZpIi4KK01vxbxuYSB0YWvFvGUgdXJ1Y2hvbWnEhyBwb3ByemV6IGFyZ3VtZW50ICJcLWUiLgorLlRQCit2aWV3CitaYWN6bmlqIHcgdHJ5YmllIHR5bGtvIGRvIG9kY3p5dHUuIFcgdGVuIHNwb3PDs2IgYsSZZHppZXN6IGNocm9uaW9ueQorcHJ6ZWQgemFwaXN5d2FuaWVtIHBsaWt1LiBNb8W8bmEgdGFrxbxlIHVydWNob21pxIcgcG9wcnpleiBhcmd1bWVudAorIlwtUiIuCisuVFAKK2d2aW0gZ3ZpZXcKK1dlcnNqYSBHVUkuCitVcnVjaGFtaWEgbm93ZSBva25vLgorTW/FvG5hIHRha8W8ZSB1cnVjaG9tacSHIHBvcHJ6ZXogYXJndW1lbnQgIlwtZyIuCisuVFAKK2V2aW0gZXZpZXcKK1dlcnNqYSBHVUkgdyDFgmF0d3ltIHRyeWJpZS4KK1VydWNoYW1pYSBub3dlIG9rbm8uCitNb8W8bmEgdGFrxbxlIHVydWNob21pxIcgcG9wcnpleiBhcmd1bWVudCAiXC15Ii4KKy5UUAorcnZpbSBydmlldyByZ3ZpbSByZ3ZpZXcKK1BvZG9ibmllIGphayBwb3d5xbxlaiwgYWxlIHogb2dyYW5pY3plbmlhbWkuIE5pZSBixJlkemllIG1vxbxuYSB1cnVjaG9tacSHCitwb2xlY2XFhCBwb3fFgm9raSBsdWIgemF3aWVzacSHCisuQiBWaW1hLgorTW/FvG5hIHRha8W8ZSB1cnVjaG9tacSHIHBvcHJ6ZXogYXJndW1lbnQgIlwtWiIuCisuU0ggT1BDSkUKK09wY2plIG1vxbxuYSBwb2RhxIcgdyBkb3dvbG5laiBrb2xlam5vxZtjaSwgcHJ6ZWQgbHViIHBvIG5hendhY2ggcGxpa8Ozdy4KK09wY2plIGJleiBhcmd1bWVudMOzdyBtb8W8bmEgxYLEhWN6ecSHIHBvIHBvamVkeW5jenltIG15xZtsbmlrdS4KKy5UUCAxMgorK1tudW1dCitXIHBpZXJ3c3p5bSBwbGlrdSBrdXJzb3Igem9zdGFuaWUgdW1pZXN6Y3pvbnkgdyB3aWVyc3p1ICJudW0iLgorSmXFm2xpIGJyYWsgIm51bSIga3Vyc29yIHpvc3RhbmllIHVtaWVzemN6b255IHcgb3N0YXRuaW0gd2llcnN6dS4KKy5UUAorKy97d3rDs3J9CitXIHBpZXJ3c3p5bSBwbGlrdSBrdXJzb3Igem9zdGFuaWUgdW1pZXN6Y3pvbnkgbmEgcGllcndzenltIHd5c3TEhXBpZW5pdQore3d6w7NyfS4KK1pvYmFjeiAiOmhlbHAgc2VhcmNoLXBhdHRlcm4iIGJ5IGRvd2llZHppZcSHIHNpxJkgamFraWUgc8SFIG1vxbxsaXdvxZtjaQord3pvcsOzdyB3eXN6dWtpd2FuaWEuCisuVFAKKyt7cG9sZWNlbmllfQorLlRQCitcLWMge3BvbGVjZW5pZX0KK3twb2xlY2VuaWV9IHpvc3RhbmllIHd5a29uYW5lIHBvIHR5bSBqYWsgd2N6eXRhIHNpxJkgcGllcndzenkgcGxpay4KK3twb2xlY2VuaWV9IGplc3QgaW50ZXJwcmV0b3dhbmUgamFrbyBwb2xlY2VuaWUgRXguCitKZcWbbGkge3BvbGVjZW5pfSB6YXdpZXJhIGJpYcWCZSB6bmFraSBtdXNpIGJ5xIcgdW1pZXN6Y3pvbmUgdyBwb2R3w7NqbnljaAorY3VkenlzxYJvd2FjaCAoemFsZcW8eSB0byBvZCB1xbx5d2FuZWogcG93xYJva2kpLgorUHJ6eWvFgmFkOiBWaW0gIitzZXQgc2kiIG1haW4uYworLmJyCitVd2FnYTogTW/FvG5hIHXFvHnEhyBkbyAxMCBwb2xlY2XFhCAiKyIgbHViICJcLWMiLgorLlRQCitcLVMge3BsaWt9Cit7cGxpa30gem9zdGFuaWUgemludGVycHJldG93YW55IHBvIHdjenl0YW5pdSBwaWVyd3N6ZWdvIHBsaWt1LgorSmVzdCByw7N3bm93YcW8bmUgXC1jICJzb3VyY2Uge3BsaWt9Ii4KK3twbGlrfSBuaWUgbW/FvGUgemFjenluYcSHIHNpxJkgJ1wtJy4KK0plxZtsaSBuaWUgcG9kYW5vIHtwbGlrfSB6b3N0YW5pZSB1xbx5dHkgIlNlc3Npb24udmltIiAoZHppYcWCYSB0eWxrbword3RlZHkgamXFm2xpIFwtUyBqZXN0IG9zdGF0bmltIGFyZ3VtZW50ZW0pLgorLlRQCitcLVwtY21kIHtwb2xlY2VuaWV9CitQb2RvYm5lIGRvICJcLWMiLCBhbGUgcG9sZWNlbmllIGplc3Qgd3lrb255d2FuZSB0dcW8IHByemVkCitpbnRlcnByZXRhY2rEhSBqYWtpZWdva29sd2llayBwbGlrdSB2aW1yYy4KK01vxbxuYSB1xbx5xIcgZG8gMTAgdGFraWNoIHBvbGVjZcWELCBuaWV6YWxlxbxuaSBvZCBwb2xlY2XFhCBvZCAiXC1jIgorLlRQCitcLUEKK0plxZtsaQorLkIgVmltCit6b3N0YcWCIHNrb21waWxvd2FueSB6ZSB3c3BhcmNpZW0gZGxhIGrEmXp5a8OzdyBhcmFic2tpY2ggKGVkeWNqYSBvZAorcHJhd2VqIGRvIGxld2VqIGkgYXJhYnNrYSBtYXBhIGtsYXdpYXR1cnkpIHRhIG9wY2phIHVydWNoYW1pYQorLkIgVmltYQordyB0cnliaWUgYXJhYnNraW0sIG5wLiB1c3Rhd2lhIHNpxJkgb3BjamEgJ2FyYWJpYycuIFcgaW5ueW0gd3lwYWRrdQorcG9qYXdpIHNpxJkga29tdW5pa2F0IGLFgsSZZHUgaQorLkIgVmltCit6YWtvxYRjenkgZHppYcWCYW5pZS4KKy5UUAorXC1iCitUcnliIGJpbmFybnkuCitVc3Rhd2kgc2nEmSBraWxrYSBvcGNqaSwga3TDs3JlIHVtb8W8bGl3acSFIGVkeWNqxJkgcGxpa8OzdyBiaW5hcm55Y2ggbHViCit3eWtvbnl3YWxueWNoLgorLlRQCitcLUMKK0tvbXBhdHliaWxueS4gVXN0YXdpYSBvcGNqxJkgJ2NvbXBhdGlibGUnLgorVyB0ZW4gc3Bvc8OzYiAKKy5CIFZpbQorYsSZZHppZSB6YWNob3d5d2HFgiBzacSZIGphayBWaSwgbmF3ZXQgamXFm2xpIGlzdG5pZWplIHBsaWsgLnZpbXJjLgorLlRQCitcLWQKK1VydWNob20gdyB0cnliaWUgZGlmZi4KK1Bvd2lubm8gYnnEhyBkd2EgbHViIHRyenkgbmF6d3kgcGxpa8OzdyBqYWtvIGFyZ3VtZW50eS4KKy5CIFZpbQorb3R3b3J6eSB3c3p5c3RraWUgdGUgcGxpa2kgaSBwb2thxbxlIHLDs8W8bmljZSBtacSZZHp5IG5pbWkuCitEemlhxYJhIGphayB2aW1kaWZmKDEpLgorLlRQCitcLWQge3VyesSFZHplbmllfQorT3R3w7NyeiB7dXJ6xIVkemVuaWV9IGJ5IHXFvHl3YcSHIGpha28gdGVybWluYWwuCitUeWxrbyBuYSBBbWlkemUuCitQcnp5a8WCYWQ6CisiXC1kIGNvbjoyMC8zMC82MDAvMTUwIi4KKy5UUAorXC1ECitEZWJ1Z293YW5pZS4gUHJ6ZWpkxbogZG8gdHJ5YnUgZGVidWdvd2FuaWUgd3lrb251asSFYyBwaWVyd3N6ZSBwb2xlY2VuaWUKK3plIHNrcnlwdHUuCisuVFAKK1wtZQorVXJ1Y2hvbQorLkIgVmltYQordyB0cnliaWUgRXgsIGR6aWHFgmEgdGFrIHNhbW8gamFrYnkgd3l3b8WCYW5vIHByb2dyYW0gamFrbyAiZXgiLgorLlRQCitcLUUKK1VydWNob20KKy5CIFZpbWEKK3cgdWxlcHN6b255bSB0cnliaWUgRXgsIGR6aWHFgmEgdGFrIHNhbW8gamFrYnkgd3l3b8WCYW5vIHByb2dyYW0gamFrbworImV4aW0iLgorLlRQCitcLWYKK1BpZXJzenkgcGxhbi4gRGxhIHdlcnNqaSBHVUkuCisuQiBWaW0KK25pZSBuaWUgb2RkemllbGkgc2nEmSBvZCBwb3fFgm9raSB3IGpha2llaiB6b3N0YcWCIHVydWNob21pb255LiBOYSBBbWlkemUKKy5CIFZpbQorbmllIGplc3QgdXJ1Y2hvbWlvbnkgcG9ub3duaWUgYnkgb3R3b3J6ecSHIG5vd2Ugb2tuby4KK09wY2phIHBvd2lubmEgYnnEhyB1xbx5dGEga2llZHkKKy5CIFZpbQoramVzdCB3eXdvxYJ5d2FueSBwcnpleiBwcm9ncmFtLCBrdMOzcnkgbWEgemFjemVrYcSHIG5hIGtvbmllYyBzZXNqaSAobnAuCittYWlsKS4KK05hIEFtaWR6ZSBwb2xlY2VuaWEgIjpzaCIgaSAiOiEiIG5pZSBixJlkxIUgZHppYcWCYcSHLgorLlRQCitcLVwtbm9mb3JrCitQaWVyd3N6eSBwbGFuLiBEbGEgd2Vyc2ppIEdVSS4KKy5CIFZpbQorbmllIG9kZHppZWxpIHNpxJkgb2QgcG93xYJva2kgdyBqYWtpZWogem9zdGHFgiB1cnVjaG9taW9ueS4KKy5UUAorXC1GCitKZcWbbGkgVmltIHpvc3RhxYIgc2tvbXBpbG93YW55IHplIHdzcGFyY2llbSBGS01BUCBkbGEgZWR5Y2ppIHRla3N0w7N3IG9kCitwcmF3ZWogZG8gbGV3ZWogaSBtYXBvd2FuaWEga2xhd2lhdHVyeSBGYXJzaSwgdGEgb3BjamEgdXJ1Y2hvbWkKKy5CIFZpbWEKK3cgdHJ5YmllIEZhcnNpLCBucC4gem9zdGF3acSFIHVzdGF3aW9uZSBvcGNqZSAnZmttYXAnIGkgJ3JpZ2h0bGVmdCcuCitXIGlubnltIHd5cGFka3UgcG9qYXdpIHNpxJkga29tdW5pa2F0IGLFgsSZZHUgaQorLkIgVmltCit6YWtvxYRjenkgZHppYcWCYW5pZS4KKy5UUAorXC1nCitKZcWbbGkKKy5CIFZpbQorem9zdGHFgiBza29tcGlsb3dhbnkgemUgd3NwYXJjaWVtIGRsYSBHVUkgdGEgb3BjamEgdXJ1Y2hvbWkgR1VJLgorVyBpbm55bSB3eXBhZGt1IHBvamF3aSBzacSZIGtvbXVuaWthdCBixYLEmWR1IGkKKy5CIFZpbQoremFrb8WEY3p5IGR6aWHFgmFuaWUuCisuVFAKK1wtaAorV3nFm3dpZXRsaSBrcsOzdGvEhSBwb21vYyBvIGFyZ3VtZW50YWNoIGxpbmlpIHBvbGVjZcWEIGkgb3BjamFjaC4gUG90ZW0KKy5CIFZpbQoremFrb8WEY3p5IGR6aWHFgmFuaWUuCisuVFAKK1wtSAorSmXFm2xpCisuQiBWaW0KK3pvc3RhxYIgc2tvbXBpbG93YW55IHplIHdzcGFyY2llbSBSSUdIVExFRlQgZGxhIGVkeWNqaSBvZCBwcmF3ZWogZG8KK2xld2VqIG9yYXogbWEgbWFwb3dhbmllIGtsYXdpYXR1cnkgZGxhIGhlYnJhanNraWVnbywgdGEgb3BjamEgdXJ1Y2hvbWkKKy5CIFZpbWEKK3cgdHJ5YmllIGhlYnJhanNraW0sIG5wLiB1c3Rhd2kgb3BjamUgJ2hrbWFwJyBpICdyaWdodGxlZnQnLgorVyBpbm55bSB3eXBhZGt1IHBvamF3aSBzacSZIGtvbXVuaWthdCBixYLEmWR1IGkKKy5CIFZpbQoremFrb8WEY3p5IGR6aWHFgmFuaWUuCisuVFAKK1wtaSB7dmltaW5mb30KK0tpZWR5CisuQiBWaW0KK3XFvHl3YSBwbGlrdSB2aW1pbmZvIHRhIG9wY2phIHdza2HFvGUgamFraWVnbyBwbGlrdSB1xbx5xIcgemFtaWFzdAorZG9tecWbbG5lZ28gIn4vLnZpbWluZm8iLgorTW/FvG5hIHRlxbwgb21pbsSFxIcgdcW8eWNpZSBwbGlrdSAudmltaW5mbyBwcnpleiBwb2RhbmllIG5hend5ICJOT05FIi4KKy5UUAorXC1MCitUbyBzYW1vIGNvIFwtci4KKy5UUAorXC1sCitUcnliIExpc3AuCitVc3Rhd2lhIG9wY2plICdsaXNwJyBpICdzaG93bWF0Y2gnLgorLlRQCitcLW0KK1ptaWFuYSBwbGlrdSBqZXN0IG5pZW1vxbxsaXdhLgorUHJ6ZXN0YXdpYSBvcGNqxJkgJ3dyaXRlJy4KK01vxbxuYSBjYcWCeSBjemFzIHptaWVuacSHIHphd2FydG/Fm8SHIGJ1Zm9yYSwgYWxlIHphcGlzYW5pZSBwbGlrdSBuaWUgamVzdAorbW/FvGxpd2EuCisuVFAKK1wtTQorT3BjamUgJ21vZGlmaWFibGUnIGkgJ3dyaXRlJyB6b3N0YW7EhSB3ecWCxIVjem9uZSwgdGFrIHdpxJljIHptaWFueQordyBwbGlrdSBvcmF6IGljaCB6YXBpc2FuaWUgbmllIHPEhSBtb8W8bGl3ZS4gTW/FvG5hIHdhcnRvxZvEhyB0eWNoIG9wY2ppCit6bWllbmnEhy4KKy5UUAorXC1OCitUcnliIG5pZWtvbXBhdGlieWxueS4gUHJ6ZXN0YXdpYSBvcGNqxJkgJ2NvbXBhdGlibGUnLiBEemnEmWtpIHRlbXUKKy5CIFZpbQorYsSZZHppZSB6YWNob3d5d2HFgiBzacSZIG9kcm9iaW7EmSBsZXBpZWosIGFsZSBtbmllaiB6Z29kem5pZSB6IFZpIG5hd2V0CitqZcWbbGkgbmllIGlzdG5pZWplIHBsaWsgLnZpbXJjLgorLlRQCitcLW4KK05pZSBwb3dzdGFuaWUgcGxpayB3eW1pYW55LiBPZHp5c2thbmllIHBsaWt1IHBvIHd5cGFka3UgbmllIGLEmWR6aWUKK21vxbxsaXdlLgorV3lnb2RuZSBqZcWbbGkgaW5zdG5pZWplIHBvdHJ6ZWJhIGVkeWNqaSBuYSBiYXJkem8gd29sbnltIG1lZGl1bSAobnAuCitkeXNraWV0Y2UpLiBUZW4gY2VsIG1vxbxuYSBvc2nEhWduxIXEhyB0YWvFvGUgcHJ6ZXogIjpzZXQgdWM9MCIuIE1vxbxuYQorb2R3csOzY2nEhyBwcnpleiAiOnNldCB1Yz0yMDAiLgorLlRQCitcLW5iCitVcnVjaG9tIGpha28gc2Vyd2VyIGVkeXRvcmEgZGxhIE5ldEJlYW5zLiBab2JhY3ogZG9rdW1lbnRhY2rEmSBieQorZG93aWVkemllxIcgc2nEmSB3acSZY2VqLgorLlRQCitcLW9bTl0KK090d8OzcnogTiBva2llbiB3IHN0b3NpZS4KK0tpZWR5IGJyYWsgTiwgb3R3w7NyeiBqZWRubyBva25vIGRsYSBrYcW8ZGVnbyBwbGlrdS4KKy5UUAorXC1PW05dCitPdHfDs3J6IE4gb2tpZW4gb2JvayBzaWViaWUuCitLaWVkeSBicmFrIE4sIG90d8OzcnogamVkbm8gb2tubyBkbGEga2HFvGRlZ28gcGxpa3UuCisuVFAKK1wtcFtOXQorT3R3w7NyeiBOIGthcnQuCitLaWVkeSBicmFrIE4sIG90d8OzcnogamVkbsSFIGthcnTEmSBkbGEga2HFvGRlZ28gcGxpa3UuCisuVFAKK1wtUgorVHJ5YiB0eWxrbyBkbyBvZGN6eXR1LgorWm9zdGFuaWUgdXN0YXdpb25hIG9wY2phICdyZWFkb25seScuCitDYcWCeSBjemFzIG1vxbxuYSB6bWllbmlhxIcgYnVmb3IsIGFsZSBixJlkemllIGlzdG5pYcWCYSBibG9rYWRhIHByemVkIHByenlwYWRrb3d5bQoremFwaXNhbmllbSBwbGlrdS4KK0plxZtsaSBjaGNlc3ogemFwaXNhxIcgcGxpayBkb2RhaiB3eWtyenlrbmlrIGRvIHBvbGVjZW5pYSBFeCwgbnAuICI6dyEiLgorT3BjamEgXC1SIGltcGxpa3VqZSBvcGNqxJkgXC1uICh6b2JhY3ogcG9uacW8ZWopLgorT3BjamEgJ3JlYWRvbmx5JyBtb8W8ZSB6b3N0YcSHIHByemVzdGF3aW9uYSBwb3ByemV6ICI6c2V0IG5vcm8iLgorWm9iYWN6ICI6aGVscCAncmVhZG9ubHknIi4KKy5UUAorXC1yCitXeXBpc3ogbGlzdMSZIHBsaWvDs3cgd3ltaWFueSByYXplbSB6IGluZm9ybWFjamFtaSBvIG5pY2guCisuVFAKK1wtciB7cGxpa30KK1RyeWIgb2R6eXNraXdhbmlhIGRhbnljaC4KK1BsaWsgd3ltaWFueSB6b3N0YW5pZSB3eWtvcnp5c3RhbnkgZG8gb2R6eXNrYW5pYSBnd2HFgnRvd25pZSBwcnplcndhbmVqIHNlc2ppLgorUGxpayB3eW1pYW55IHRvIHBsaWsgeiB0YWvEhSBzYW3EhSBuYXp3xIUgY28gcGxpayBvcnlnaW5hbG55IHogZG9kYW55bSAiLnN3cCIuCitab2JhY3ogIjpoZWxwIHJlY292ZXJ5Ii4KKy5UUAorXC1zCitUcnliIGNpY2h5LiBSb3pwb2N6xJl0eSB0eWxrbyBraWVkeSB1cnVjaG9taW9ueSBqYWtvICJFeCIgbHViIG9wY2phCisiXC1lIiB6b3N0YcWCYSBwb2RhbmEgcHJ6ZWQgb3BjasSFICJcLXMiLgorLlRQCitcLXMge3NrcnlwdH0KK1pvc3RhbmllIHdjenl0YW55IHBsaWsge3NrcnlwdH0uCitabmFraSB3IHBsaWt1IHpvc3RhbsSFIHppbnRlcnByZXRvd2FuZSBqYWtieSBiecWCeSB3cGlzeXdhbmUuCitUbyBzYW1vIG1vxbxuYSBvc2nEhWduxIXEhyBwb3ByemV6IHBvbGVjZW5pZSAiOnNvdXJjZSEge3NrcnlwdH0iLgorSmXFm2xpIG9zacSFZ25pxJl0byBrb25pZWMgcGxpa3UgemFuaW0gZWR5dG9yIHpha2/FhGN6ecWCIGR6aWHFgmFuaWUsIGRhbHN6ZQorem5ha2kgb2Rjenl0eXdhbmUgc8SFIHoga2xhd2lhdHVyeS4KKy5UUAorXC1UIHt0ZXJtaW5hbH0KK1ByemVrYXp1amUKKy5CIFZpbW93aQorbmF6d8SZIHRlcm1pbmFsdSBqYWtpZWdvIHXFvHl3YXN6LgorV3ltYWdhbmUgdHlsa28gd3RlZHkgamXFm2xpIG5pZSBkemlhxYJhIGF1dG9tYXR5Y3puaWUuCitQb3dpbmllbiBiecSHIHRvIHRlcm1pbmFsIHpuYW55CisuQiBWaW1vd2kKKyhidWlsdGluKSBsdWIgemRlZmluaW93YW55IHcgcGxpa2FjaCB0ZXJtY2FwIGx1YiB0ZXJtaW5mby4KKy5UUAorXC11IHt2aW1yY30KK1XFvHlqIHBvbGVjZcWEIHogcGxpa3Uge3ZpbXJjfSB3IGN6YXNpZSB1cnVjaGFtaWFuaWEuCitXc3p5c3RraWUgaW5uZSBtb8W8bGl3ZSBwbGlraSB1cnVjaGFtaWFuaWEgem9zdGFuxIUgcG9taW5pxJl0ZS4KK1XFvHl3YWogZG8gZWR5dG93YW5pYSBwbGlrw7N3IHNwZWNqYWxueWNoLgorTW/FvG5hIHBvbWluxIXEhyB0YWvFvGUgd3N6eXN0a2llIG1vxbxsaXdlIHBsaWtpIHVydWNoYW1pYW5pYSBwb3ByemV6Citwb2RhbmllIG5hend5ICJOT05FIi4KK1pvYmFjeiAiOmhlbHAgaW5pdGlhbGl6YXRpb24iIGJ5IHBvem5hxIcgd2nEmWNlaiBzemN6ZWfDs8WCw7N3LgorLlRQCitcLVUge2d2aW1yY30KK1XFvHlqIHBvbGVjZcWEIHogcGxpa3Uge2d2aW1yY30gdyBjemFzaWUgdXJ1Y2hhbWlhbmlhIEdVSS4KK1dzenlzdGtpZSBpbm5lIG1vxbxsaXdlIHBsaWtpIHVydWNoYW1pYW5pYSBHVUkgem9zdGFuxIUgcG9taW5pxJl0ZS4KK01vxbxuYSBwb21pbsSFxIcgdGFrxbxlIHdzenlzdGtpZSBtb8W8bGl3ZSBwbGlraSB1cnVjaGFtaWFuaWEgR1VJIHBvcHJ6ZXoKK3BvZGFuaWUgbmF6d3kgIk5PTkUiLgorWm9iYWN6ICI6aGVscCBndWktaW5pdCIgYnkgcG96bmHEhyB3acSZY2VqIHN6Y3plZ8OzxYLDs3cuCisuVFAKK1wtVltOXQorVHJ5YiBnYWRhdGxpd3kuIFd5cGlzeiB3aWFkb21vxZtjaSBvIHR5bSBqYWtpIHBsaWtpIHPEhSB3Y3p5dHl3YW5lCitpIG8gaW5mb3JtYWNqYWNoIHBvYmllcmFueWNoIGkgZG9kYXdhbnljaCBkbyBwbGlrdSB2aW1pbmZvLiBPcGNqb25hbG55Cithcmd1bWVudCBOIGplc3Qgd2FydG/Fm2NpxIUgJ3ZlcmJvc2UnLiBEb215xZtsbmllIDEwLgorLlRQCitcLXYKK1VydWNob20KKy5CIFZpbWEKK3cgdHJ5YmllIFZpLCB0YWsgamFrYnkgcHJvZ3JhbSBiecWCIG5hendhbnkgInZpIi4gTWEgem5hY3plbmllCit0eWxrbyB3dGVkeSBqZcWbbGkgcHJvZ3JhbSBuYXp3YW55IGplc3QgImV4Ii4KKy5UUAorXC13IHtwbGlrfQorV3N6eXN0a2llIHdjacWbbmnEmWNpYSBrbGF3aXN6eSwgYcW8IGRvIHpha2/FhGN6ZW5pYSBkemlhxYJhbmlhIHByb2dyYW11LAorc8SFIHphcGlzeXdhbmUgdyB7cGxpa30gLgorVcW8eXRlY3puZSBqZcWbbGkgY2hjZSBzacSZIHN0d29yennEhyBza3J5cHQgZG8gdcW8eWNpYSB6ICJ2aW0gXC1zIiBsdWIKKyI6c291cmNlISIuCitKZcWbbGkge3BsaWt9IGlzdG5pZWplLCB6bmFraSBzxIUgZG9waXN5d2FuZS4KKy5UUAorXC1XIHtwbGlrfQorUG9kb2JuaWUgZG8gXC13LCBhbGUgaXN0bmllasSFY3kgcGxpayBqZXN0IG5hZHBpc3l3YW55LgorLlRQCitcLXgKK1XFvHlqIHN6eWZyb3dhbmlhIHBvZGN6YXMgemFwaXN5d2FuaWEgcGxpa8Ozdy4gWm9zdGFuaWVzeiBwb3Byb3N6b255CitvIHBvZGFuaWUga2x1Y3phLgorLlRQCitcLVgKK05pZSDFgsSFY3ogeiBzZXJ3ZXJlbSBYLiBTa3JhY2EgY3phcyB1cnVjaGFtaWFuaWEgdyB0ZXJtaW5hbHUsIGFsZSB0eXR1xYIKK29rbmEgaSBzY2hvd2VrIG5pZSBixJlkxIUgd3lrb3J6eXN0eXdhbmUuCisuVFAKK1wteQorVXJ1Y2hvbQorLkIgVmltYQordyDFgmF0d3ltIHRyeWJpZSwgdGFrIGpha2J5IHByb2dyYW0gem9zdGHFgiB3eXdvxYJhbnkgImV2aW0iIGx1YiAiZXZpZXciLgorLkIgVmltCitixJlkemllIHphY2hvd3l3YcWCIHNpxJkgYmFyZHppZWogamFrIGVkeXRvciBrbGlrbmlqLWktd3Bpc3ouCisuVFAKK1wtWgorVHJ5YiBvZ3Jhbmljem9ueS4gWmFjaG93dWplIHNpxJkgamFrYnkgbmF6d2EgcHJvZ3JhbXUgemFjenluYcWCYSBzacSZIG9kCisiciIuCisuVFAKK1wtXC0KK096bmFjemEga29uaWVjIG9wY2ppLgorQXJndW1lbnR5IHBvIHRlaiBvcGNqaSBixJlkxIUgdHJha3Rvd2FuZSBqYWsgbmF6d3kgcGxpa8Ozdy4gVcW8eXdhIHNpxJkgZG8KK290d2llcmFuaWEgcGxpa8Ozdywga3TDs3J5Y2ggbmF6d3kgemFjenluYWrEhSBzacSZIG9kICdcLScuCisuVFAKK1wtXC1lY2hvXC13aWQKK1d5xYLEhWN6bmllIEdUSyBHVUk6IHd5cGlzeiBJRCBva25hIG5hIHN0YW5kYXJkb3dlIHd5asWbY2llLgorLlRQCitcLVwtaGVscAorV3nFm3dpZXRsIGluZm9ybWFjasSZIG8gcG9tb2N5IGkgemFrb8WEY3p5LCB0byBzYW1vIGNvIlwtaCIuCisuVFAKK1wtXC1saXRlcmFsCitQb3RyYWt0dWogbmF6d3kgcGxpa8OzdyBkb3PFgm93bmllIGkgbmllIHJvendpxIV6dWoga3dhbnR5ZmlrYXRvcsOzdy4gTmllCittYSB6bmFjemVuaWEgbmEgVW5pa3NhY2ggZ2R6aWUgcG93xYJva2Egcm96d2nEhXp1amUga3dhbnR5ZmlrYXRvcsOzdworLlRQCitcLVwtbm9wbHVnaW4KK1BvbWnFhCDFgmFkb3dhbmllIHd0eWN6ZWsuIEltcGxpa293YW5lIHByenkgXC11IE5PTkUuCisuVFAKK1wtXC1yZW1vdGUKK1BvxYLEhWN6IHNpxJkgeiBzZXJ3ZXJlbSBWaW1hIGkgZWR5dHVqIHcgbmltIHJlc3p0xJkgYXJndW1lbnTDs3cuIEplxZtsaSBuaWUKK3puYWxlemlvbm8gc2Vyd2VyYSB6b3N0YW5pZSB6Z8WCb3N6b255IGLFgsSFZCBhIHBsaWtpIGLEmWTEhSBvdHdhcnRlCit3IGJpZcW8xIVjeW0gVmltaWUuCisuVFAKK1wtXC1yZW1vdGVcLWV4cHIge3d5cmHFvGVuaWV9CitQb8WCxIVjeiB6IHNlcndlcmVtIFZpbWEsIHJvendpxIXFvCB3IG5pbSB7d3lyYcW8ZW5pZX0gaSB3eXBpc3ogcm96d2nEhXphbmllCituYSBzdGFuZGFyZG93ZSB3eWrFm2NpZS4KKy5UUAorXC1cLXJlbW90ZVwtc2VuZCB7a2xhd2lzemV9CitQb8WCxIVjeiB6IHNlcndlcmVtIFZpbWEgaSB3ecWbbGlqIGRvIG5pZWdvIHtrbGF3aXN6ZX0uCisuVFAKK1wtXC1yZW1vdGVcLXNpbGVudAorVGFrIHNhbW8gamFrIFwtcmVtb3RlLCBhbGUgYmV6IG9zdHJ6ZcW8ZW5pYSBraWVkeSBuaWUgem5hbGV6aW9ubworc2Vyd2VyYS4KKy5UUAorXC1cLXJlbW90ZVwtd2FpdAorVGFrIHNhbW8gamFrIFwtcmVtb3RlLCBhbGUgVmltIG5pZSB6YWtvxYRjenkgZG9ww7NraSBwbGlraSBuaWUgem9zdGFuxIUKK290d2FydGUuCisuVFAKK1wtXC1yZW1vdGVcLXdhaXRcLXNpbGVudAorVGFrIHNhbW8gamFrIFwtXC1yZW1vdGVcLXdhaXQsIGFsZSBiZXogb3N0cnplxbxlbmllIGtpZWR5IG5pZQorem5hbGV6aW9ubyBzZXJ3ZXJhLgorLlRQCitcLVwtc2VydmVybGlzdAorV3lwaXN6IG5hend5IHdzenlzdGtpY2ggc2Vyd2Vyw7N3IFZpbWEgamFraWUgbW/FvG5hIHpuYWxlxbrEhy4KKy5UUAorXC1cLXNlcnZlcm5hbWUge25hendhfQorVcW8eWoge25hendhfSBqYWtvIG5hend5IHNlcndlcmEuIFd5a29yenlzdGFuZSBkbGEgYmllxbzEhWNlZ28gVmltYSBvIGlsZQorbmllIHBvxYLEhWN6b25lIHogYXJndW1lbnRlbSBcLVwtcmVtb3RlLCB3dGVkeSBqZXN0IHRvIG5hendhIHNlcndlcmEgZG8KK3BvxYLEhWN6ZW5pYS4KKy5UUAorXC1cLXNvY2tldGlkIHtpZH0KK1d5xYLEhWN6bmllIEdUSyBHVUk6IFXFvHlqIG1lY2hhbml6bXUgR3RrUGx1ZyBieSB1cnVjaG9tacSHIGd2aW1hIHcgaW5ueW0KK29rbmllLgorLlRQCitcLVwtdmVyc2lvbgorV3lwaXN6IGluZm9ybWFjasSZIG8gd2Vyc2ppIGkgemFrb8WEY3ouCisuU0ggUE9NT0MgT04tTElORQorQnkgcm96cG9jesSFxIcgd3Bpc3ogIjpoZWxwIiB3CisuQiBWaW1pZQorV3Bpc3ogIjpoZWxwIHRlbWF0IiBieSB1enlza2HEhyBwb21vYyBuYSBva3JlxZtsb255IHRlbWF0LgorUHJ6eWvFgmFkOiAiOmhlbHAgWloiIGJ5IHV6eXNrYcSHIHBvbW9jIG5hIHRlbWF0IHBvbGVjZW5pYSAiWloiLgorVcW8eWogPFRhYj4gaSBDVFJMXC1EIGFieSB1enVwZcWCbmnEhyB0ZW1hdHkgKCI6aGVscAorY21kbGluZVwtY29tcGxldGlvbiIpLiBXIHBsaWthY2ggcG9tb2N5IGlzdG5pZWrEhSB6bmFjem5pa2kgYnkgdcWCYXR3acSHCitza2FrYW5pZSB6IGplZG5lZ28gbWllanNjYSBkbyBpbm5lZ28gKHJvZHphaiBsaW5rw7N3IGhpcGVydGVrc3Rvd3ljaCwKK3pvYmFjeiAiOmhlbHAiKS4KK01vxbxuYSB3IHRlbiBzcG9zw7NiIHpvYmFjennEhyBjYcWCxIUgZG9rdW1lbnRhY2rEmSwgbnAuICI6aGVscCBzeW50YXgudHh0Ii4KKy5TSCBQTElLSQorLlRQIDE1CisvdXNyL2xvY2FsL2xpYi92aW0vZG9jLyoudHh0CitEb2t1bWVudGFjamEKKy5CIFZpbWEKK1XFvHlqICI6aGVscCBkb2NcLWZpbGVcLWxpc3QiIGFieSB1enlza2HEhyBwZcWCbsSFIGxpc3TEmS4KKy5UUAorL3Vzci9sb2NhbC9saWIvdmltL3N5bnRheC9zeW50YXgudmltCitHbG9iYWxuZSB1cnVjaGFtaWFuaWUgcG9kxZt3aWV0bGFuaWEgc2vFgmFkbmkuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9zeW50YXgvKi52aW0KK1BsaWtpIHNrxYJhZG5pIGRsYSByw7PFvG55Y2ggasSZenlrw7N3LgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vdmltcmMKK0dsb2JhbG55IHBsaWsgdXJ1Y2hhbWlhbmlhCisuQiBWaW1hCisuVFAKK34vLnZpbXJjCitPc29iaXN0ZSBwYXJhbWV0cnkgdXJ1Y2hhbWlhbmlhCisuQiBWaW1hCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9ndmltcmMKK0dsb2JhbG5lIHVydWNoYW1pYW5pZSBndmltYS4KKy5UUAorfi8uZ3ZpbXJjCitPc29iaXN0ZSBwYXJhbWV0cnkgdXJ1Y2hhbWlhbmlhIGd2aW1hLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vb3B0d2luLnZpbQorU2tyeXB0IHXFvHl3YW55IHcgcG9sZWNlbml1ICI6b3B0aW9ucyIsIGRvYnJ5IHNwb3PDs2IgZG8gcHJ6ZWdsxIVkYW5pYQoraSB1c3Rhd2lhbmlhIG9wY2ppLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vbWVudS52aW0KK0dsb2JhbG5lIHVydWNoYW1pYW5pZSBtZW51IGd2aW1hLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vYnVncmVwb3J0LnZpbQorU2tyeXB0IHPFgnXFvMSFY3kgZG8gdHdvcnplbmlhIHJhcG9ydMOzdyBvIGLFgsSZZGFjaC4gWm9iYWN6ICI6aGVscCBidWdzIi4KKy5UUAorL3Vzci9sb2NhbC9saWIvdmltL2ZpbGV0eXBlLnZpbQorU2tyeXB0IGRvIHd5a3J5d2FuaWEgdHlwdSBwbGlrdSB3ZWTFgnVnIGplZ28gbmF6d3kuIFpvYmFjeiAiOmhlbHAgJ2ZpbGV0eXBlJyIuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9zY3JpcHRzLnZpbQorU2tyeXB0IGRvIHd5a3J5d2FuaWEgdHlwdSBwbGlrdSB3ZWTFgnVnIGplZ28gemF3YXJ0b8WbY2kuIFpvYmFjeiAiOmhlbHAgJ2ZpbGV0eXBlJyIuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS8qLnBzCitQbGlrdSB1xbx5d2FuZSBkbyBkcnVrb3dhbmlhIFBvc3RTY3JpcHR1LgorLlBQCitOYWrFm3dpZcW8c3plIHdpYWRvbW/Fm2NpIG5hIHN0cm9uaWUKKy5CIFZpbWE6CisuYnIKKzxVUkw6aHR0cDovL3d3dy52aW0ub3JnLz4KKy5TSCBaT0JBQ1ogVEFLxbtFCit2aW10dXRvcigxKQorLlNIIEFVVE9SCisuQiBWaW0KK3pvc3RhxYIgbmFwaXNhbnkgcHJ6ZXogQnJhbWEgTW9vbGVuYWFyYSB6IGR1xbzEhSBwb21vY8SFIGlubnljaCBvc8OzYi4KK1pvYmFjeiAiOmhlbHAgY3JlZGl0cyIgdworLkIgVmltaWUuCisuYnIKKy5CIFZpbQorYmF6dWplIG5hIFN0ZXZpZW0sIG5hZCBrdMOzcnltIHByYWNvd2FsaTogVGltIFRob21wc29uLCBUb255IEFuZHJld3MKK2kgRy5SLiAoRnJlZCkgV2FsdGVyLgorTWHFgm8ganXFvCB6b3N0YcWCbyB6IG9yeWdpbmFsbmVnbyBrb2R1LgorLlNIIELFgcSYRFkKK1ByYXdkb3BvZG9ibmUuCitab2JhY3ogIjpoZWxwIHRvZG8iIGJ5IHBvem5hxIcgbGlzdMSZIHpuYW55Y2ggcHJvYmxlbcOzdy4KKy5QUAorUGFtacSZdGFqIMW8ZSBwZXduYSBpbG/Fm8SHIHByb2JsZW3Ds3csIGt0w7NyZSBtb2fEhSBiecSHIHV6bmF3YW5lIHByemV6CituaWVrdMOzcnljaCBsdWR6aSB6YSBixYLEmWR5IHPEhSB3IHJ6ZWN6eXdpc3RvxZtjaSBzcG93b2Rvd2FuZSB3aWVybm/Fm2NpxIUKK3cgb2R0d2FyemFuaXUgemFjaG93YW5pYSBWaS4KK0plxZtsaSBzxIVkemlzeiwgxbxlIGlubmUgcnplY3p5IHPEhSBixYLEmWRhbWkgInBvbmlld2HFvCBWaSByb2JpIHRvCitpbmFjemVqIiwgcG93aW5pZW5lxZsgcHJ6eWpyemXEhyBzacSZIGJsacW8ZWogcGxpa293aSB2aV9kaWZmLnR4dCAobHViCit3cGlzYcSHICI6aGVscCB2aV9kaWZmLnR4dCIgdyBWaW1pZSkuCitTcHJhd2TFuiB0YWvFvGUgb3BpcyBvcGNqaSAnY29tcGF0aWJsZScgaSAnY3BvcHRpb25zJy4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbWRpZmYtcGwuMSBiL3J1bnRpbWUvZG9jL3ZpbWRpZmYtcGwuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzNkZTNmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvdmltZGlmZi1wbC4xCkBAIC0wLDAgKzEsNDYgQEAKKy5USCBWSU1ESUZGIDEgIjIwMDEgTWFyIDMwIgorLlNIIE5BWldBCit2aW1kaWZmIFwtIGVkeXR1aiBkd2llIGx1YiB0cnp5IHdlcnNqZSBwbGlrdSB3IFZpbWllIGkgem9iYWN6IHLzv25pY2UKKy5TSCBTWU5PUFNJUworLmJyCisuQiB2aW1kaWZmCitbb3BjamVdIHBsaWsxIHBsaWsyIFtwbGlrM10KKy5QUAorLkIgZ3ZpbWRpZmYKKy5TSCBPUElTCisuQiBWaW1kaWZmCit1cnVjaG9taQorLkIgVmltYQoreiBkd29tYSAobHViIHRyemVtYSBwbGlrYW1pKSwga2G/ZHkgeiBuaWNoIHdlIHezYXNueW0gb2tuaWUuCitS879uaWNlIG1p6mR6eSBwbGlrYW1pIHpvc3RhbrEgcG9ktndpZXRsb25lLgorSmVzdCB0byBkb2JyeSBzcG9z82IgYnkgcHJ6ZWFuYWxpem93YeYgcvO/bmljZSBpIHByemVuaWW25iB6bWlhbnkgeiBqZWRuZWoKK3dlcnNqaSBwbGlrdSBkbyBpbm5lai4KKy5QUAorWm9iYWN6IHZpbSgxKSBieSBwb3puYeYgd2nqY2VqIHN6Y3plZ/Oz83cgbyBzYW15bSBWaW1pZS4KKy5QUAorS2llZHkgdXJ1Y2hvbWlvbnkgamFrbworLkIgZ3ZpbWRpZmYKK3pvc3RhbmllIHVydWNob21pb25lIEdVSSAoamW2bGkgZG9zdOpwbmUpLgorLlBQCitXIGthv2R5bSBva25pZSB6b3N0YW5pZSB1c3Rhd2lvbmEgb3BjamEgJ2RpZmYnLCBrdPNyYSBzcG93b2R1amUKK3BvZLZ3aWV0bGVuaWUgcvO/bmljLgorLmJyCitPcGNqZSAnd3JhcCcgaSAnc2Nyb2xsYmluZCcgem9zdGFusSB1c3Rhd2lvbmUgYnkgdGVrc3QgZG9icnplIHNp6gorcHJ6ZWdssWRhs28uCisuYnIKK09wY2phICdmb2xkbWV0aG9kJyB6b3N0YW5pZSB1c3Rhd2lvbmEgbmEgImRpZmYiLCBkemnqa2kgdGVtdQorbmllem1pZW5pb25lIGxpbmllIHpvc3RhbrEgendpbmnqdGUuICdmb2xkY29sdW1uJyBi6mR6aWUgcvN3bmUgMiBhYnkKK7NhdHdvIHd5c3p1a2l3YeYsIG90d2llcmHmIGkgemFteWth5iB6d2luaepjaWEuCisuU0ggT1BDSkUKK1Bpb25vd3kgcG9kemlhsyBqZXN0IHW/eXR5IGRvIHd5cvN3bmFuaWEgbGluaWksIHRhayBqYWtieSB1v3l0bworb3BjamkgIlwtTyIuIEFieSB1enlza2HmIHBvemlvbXkgcG9kemlhsyB1v3lqIG9wY2ppICJcLW8iLgorLlBQCitBYnkgcG96bmHmIGlubmUgb3BjamUgem9iYWN6IHZpbSgxKS4KKy5TSCBaT0JBQ1ogVEFLr0UKK3ZpbSgxKQorLlNIIEFVVE9SCitXaeprc3pvtuYKKy5CIFZpbWEKK3pvc3Rhs2EgbmFwaXNhbmEgcHJ6ZXogQnJhbWEgTW9vbGVuYWFyYSBwcnp5IHBvbW9jeSB3aWVsdSBpbm55Y2ggb3PzYi4KK1pvYmFjeiAiOmhlbHAgY3JlZGl0cyB3CisuQiBWaW1pZS4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbWRpZmYtcGwuVVRGLTguMSBiL3J1bnRpbWUvZG9jL3ZpbWRpZmYtcGwuVVRGLTguMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDkxODZlCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvdmltZGlmZi1wbC5VVEYtOC4xCkBAIC0wLDAgKzEsNDYgQEAKKy5USCBWSU1ESUZGIDEgIjIwMDEgTWFyIDMwIgorLlNIIE5BWldBCit2aW1kaWZmIFwtIGVkeXR1aiBkd2llIGx1YiB0cnp5IHdlcnNqZSBwbGlrdSB3IFZpbWllIGkgem9iYWN6IHLDs8W8bmljZQorLlNIIFNZTk9QU0lTCisuYnIKKy5CIHZpbWRpZmYKK1tvcGNqZV0gcGxpazEgcGxpazIgW3BsaWszXQorLlBQCisuQiBndmltZGlmZgorLlNIIE9QSVMKKy5CIFZpbWRpZmYKK3VydWNob21pCisuQiBWaW1hCit6IGR3b21hIChsdWIgdHJ6ZW1hIHBsaWthbWkpLCBrYcW8ZHkgeiBuaWNoIHdlIHfFgmFzbnltIG9rbmllLgorUsOzxbxuaWNlIG1pxJlkenkgcGxpa2FtaSB6b3N0YW7EhSBwb2TFm3dpZXRsb25lLgorSmVzdCB0byBkb2JyeSBzcG9zw7NiIGJ5IHByemVhbmFsaXpvd2HEhyByw7PFvG5pY2UgaSBwcnplbmllxZvEhyB6bWlhbnkgeiBqZWRuZWoKK3dlcnNqaSBwbGlrdSBkbyBpbm5lai4KKy5QUAorWm9iYWN6IHZpbSgxKSBieSBwb3puYcSHIHdpxJljZWogc3pjemVnw7PFgsOzdyBvIHNhbXltIFZpbWllLgorLlBQCitLaWVkeSB1cnVjaG9taW9ueSBqYWtvCisuQiBndmltZGlmZgorem9zdGFuaWUgdXJ1Y2hvbWlvbmUgR1VJIChqZcWbbGkgZG9zdMSZcG5lKS4KKy5QUAorVyBrYcW8ZHltIG9rbmllIHpvc3RhbmllIHVzdGF3aW9uYSBvcGNqYSAnZGlmZicsIGt0w7NyYSBzcG93b2R1amUKK3BvZMWbd2lldGxlbmllIHLDs8W8bmljLgorLmJyCitPcGNqZSAnd3JhcCcgaSAnc2Nyb2xsYmluZCcgem9zdGFuxIUgdXN0YXdpb25lIGJ5IHRla3N0IGRvYnJ6ZSBzacSZCitwcnplZ2zEhWRhxYJvLgorLmJyCitPcGNqYSAnZm9sZG1ldGhvZCcgem9zdGFuaWUgdXN0YXdpb25hIG5hICJkaWZmIiwgZHppxJlraSB0ZW11CituaWV6bWllbmlvbmUgbGluaWUgem9zdGFuxIUgendpbmnEmXRlLiAnZm9sZGNvbHVtbicgYsSZZHppZSByw7N3bmUgMiBhYnkKK8WCYXR3byB3eXN6dWtpd2HEhywgb3R3aWVyYcSHIGkgemFteWthxIcgendpbmnEmWNpYS4KKy5TSCBPUENKRQorUGlvbm93eSBwb2R6aWHFgiBqZXN0IHXFvHl0eSBkbyB3eXLDs3duYW5pYSBsaW5paSwgdGFrIGpha2J5IHXFvHl0bworb3BjamkgIlwtTyIuIEFieSB1enlza2HEhyBwb3ppb215IHBvZHppYcWCIHXFvHlqIG9wY2ppICJcLW8iLgorLlBQCitBYnkgcG96bmHEhyBpbm5lIG9wY2plIHpvYmFjeiB2aW0oMSkuCisuU0ggWk9CQUNaIFRBS8W7RQordmltKDEpCisuU0ggQVVUT1IKK1dpxJlrc3pvxZvEhworLkIgVmltYQorem9zdGHFgmEgbmFwaXNhbmEgcHJ6ZXogQnJhbWEgTW9vbGVuYWFyYSBwcnp5IHBvbW9jeSB3aWVsdSBpbm55Y2ggb3PDs2IuCitab2JhY3ogIjpoZWxwIGNyZWRpdHMgdworLkIgVmltaWUuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aW10dXRvci1wbC4xIGIvcnVudGltZS9kb2MvdmltdHV0b3ItcGwuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2FjNTBmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvdmltdHV0b3ItcGwuMQpAQCAtMCwwICsxLDQ4IEBACisuVEggVklNVFVUT1IgMSAiMjAwMSBLd2kgMiIKKy5TSCBOQVpXQQordmltdHV0b3IgXC0gbmF1Y3p5Y2llbCBWaW1hCisuU0ggU1lOT1BTSVMKKy5icgorLkIgdmltdHV0b3IgW2rqenlrXQorLlNIIE9QSVMKKy5CIFZpbXR1dG9yCit1cnVjaGFtaWEgbmF1Y3p5Y2llCisuQiBWaW1hLgorTmFqcGllcncga29waXVqZSB3s2G2Y2l3eSBwbGlrLCBkemnqa2kgdGVtdSBtb79uYSBnbyB6bWllbmlh5iBiZXogb2JhdwordXRyYXR5IHRyZbZjaS4KKy5QUAorLkIgVmltdHV0b3IKK3ByenlkYSBzaeogbHVkemlvbSwga3Tzcnp5IGNoY7Egc2nqIG5hdWN6eeYgcGllcndzenljaCBwb2xlY2XxCisuQiBWaW1hCisuUFAKK09wY2pvbmFsbnkgYXJndW1lbnQgW2rqenlrXSBqZXN0IGR3dSBsaXRlcm93eW0ga29kZW0gaup6eWthLCB0YWsgamFrCisiaXQiIGx1YiAiZXMiLgorSmW2bGkgYnJhayBhcmd1bWVudHUgW2rqenlrXSB6b3N0YW5pZSB1v3l0eSBq6np5ayBiaWW/sWNlagorbG9rYWxpemFjamkuCitKZbZsaSBuYXVjenljaWVsIHcgdHltIGrqenlrdSBqZXN0IGRvc3TqcG55LCB6b3N0YW5pZSB1v3l0eSBcLSB3IGlubnltCit3eXBhZGt1IHpvc3RhbmllIHd5a29yenlzdGFuYSB3ZXJzamEgYW5naWVsc2thLgorLlBQCisuQiBWaW0KK2plc3QgdXJ1Y2hhbWlhbnkgemF3c3plIHcgdHJ5YmllIGtvbXBhdHliaWxub7ZjaSB6IFZpCisuU0ggUExJS0kKKy5UUCAxNQorL3Vzci9sb2NhbC9saWIvdmltL3R1dG9yL3R1dG9yWy5sYW5ndWFndWVdCitUZWtzdG93ZSBwbGlraQorLkIgVmltdHV0b3JhLgorLlRQIDE1CisvdXNyL2xvY2FsL2xpYi92aW0vdHV0b3IvdHV0b3IudmltCitTa3J5cHQgVmltYSB1v3l3YW55IGRvIGtvcGlvd2FuaWEgcGxpa3UKKy5CIFZpbXR1dG9yYS4KKy5TSCBBVVRPUgorLkIgVmltdHV0b3IKK3pvc3RhsyBwb2N6sXRrb3dvIG5hcGlzYW55IGRsYSBWaW0gcHJ6ZXogTWljaGFlbGEgQy4gUGllcmNlJ2EKK2kgUm9iZXJ0YSBLLiBXYXJlJ2EgeiBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMgemFpbnNwaXJvd2FuaSBwcnplegorQ2hhcmxlc2EgU21pdGhhIHogQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eS4KK0UtbWFpbDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1CisuYnIKK1ptb2R5Zmlrb3dhbnkgbmEgcG90cnplYnkKKy5CIFZpbWEKK3ByemV6IEJyYW1hIE1vb2xlbmFhcmEuCitOYXp3aXNrYSB0s3VtYWN6eSB3IHBsaWthY2guCisuU0ggWk9CQUNaIFRBS69FCit2aW0oMSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbXR1dG9yLXBsLlVURi04LjEgYi9ydW50aW1lL2RvYy92aW10dXRvci1wbC5VVEYtOC4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4ZWUxYmUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2RvYy92aW10dXRvci1wbC5VVEYtOC4xCkBAIC0wLDAgKzEsNDggQEAKKy5USCBWSU1UVVRPUiAxICIyMDAxIEt3aSAyIgorLlNIIE5BWldBCit2aW10dXRvciBcLSBuYXVjenljaWVsIFZpbWEKKy5TSCBTWU5PUFNJUworLmJyCisuQiB2aW10dXRvciBbasSZenlrXQorLlNIIE9QSVMKKy5CIFZpbXR1dG9yCit1cnVjaGFtaWEgbmF1Y3p5Y2llCisuQiBWaW1hLgorTmFqcGllcncga29waXVqZSB3xYJhxZtjaXd5IHBsaWssIGR6acSZa2kgdGVtdSBtb8W8bmEgZ28gem1pZW5pYcSHIGJleiBvYmF3Cit1dHJhdHkgdHJlxZtjaS4KKy5QUAorLkIgVmltdHV0b3IKK3ByenlkYSBzacSZIGx1ZHppb20sIGt0w7NyenkgY2hjxIUgc2nEmSBuYXVjennEhyBwaWVyd3N6eWNoIHBvbGVjZcWECisuQiBWaW1hCisuUFAKK09wY2pvbmFsbnkgYXJndW1lbnQgW2rEmXp5a10gamVzdCBkd3UgbGl0ZXJvd3ltIGtvZGVtIGrEmXp5a2EsIHRhayBqYWsKKyJpdCIgbHViICJlcyIuCitKZcWbbGkgYnJhayBhcmd1bWVudHUgW2rEmXp5a10gem9zdGFuaWUgdcW8eXR5IGrEmXp5ayBiaWXFvMSFY2VqCitsb2thbGl6YWNqaS4KK0plxZtsaSBuYXVjenljaWVsIHcgdHltIGrEmXp5a3UgamVzdCBkb3N0xJlwbnksIHpvc3RhbmllIHXFvHl0eSBcLSB3IGlubnltCit3eXBhZGt1IHpvc3RhbmllIHd5a29yenlzdGFuYSB3ZXJzamEgYW5naWVsc2thLgorLlBQCisuQiBWaW0KK2plc3QgdXJ1Y2hhbWlhbnkgemF3c3plIHcgdHJ5YmllIGtvbXBhdHliaWxub8WbY2kgeiBWaQorLlNIIFBMSUtJCisuVFAgMTUKKy91c3IvbG9jYWwvbGliL3ZpbS90dXRvci90dXRvclsubGFuZ3VhZ3VlXQorVGVrc3Rvd2UgcGxpa2kKKy5CIFZpbXR1dG9yYS4KKy5UUCAxNQorL3Vzci9sb2NhbC9saWIvdmltL3R1dG9yL3R1dG9yLnZpbQorU2tyeXB0IFZpbWEgdcW8eXdhbnkgZG8ga29waW93YW5pYSBwbGlrdQorLkIgVmltdHV0b3JhLgorLlNIIEFVVE9SCisuQiBWaW10dXRvcgorem9zdGHFgiBwb2N6xIV0a293byBuYXBpc2FueSBkbGEgVmltIHByemV6IE1pY2hhZWxhIEMuIFBpZXJjZSdhCitpIFJvYmVydGEgSy4gV2FyZSdhIHogQ29sb3JhZG8gU2Nob29sIG9mIE1pbmVzIHphaW5zcGlyb3dhbmkgcHJ6ZXoKK0NoYXJsZXNhIFNtaXRoYSB6IENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuCitFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdQorLmJyCitabW9keWZpa293YW55IG5hIHBvdHJ6ZWJ5CisuQiBWaW1hCitwcnpleiBCcmFtYSBNb29sZW5hYXJhLgorTmF6d2lza2EgdMWCdW1hY3p5IHcgcGxpa2FjaC4KKy5TSCBaT0JBQ1ogVEFLxbtFCit2aW0oMSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3h4ZC1wbC4xIGIvcnVudGltZS9kb2MveHhkLXBsLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIyMTUxZAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZG9jL3h4ZC1wbC4xCkBAIC0wLDAgKzEsMzg5IEBACisuVEggWFhEIDEgIlNpZXJwaWXxIDE5OTYiICJTdHJvbmEgcG9kcupjem5pa2EgZGxhIHh4ZCIKKy5cIgorLlwiIDIxc3QgTWF5IDE5OTYKKy5cIiBNYW4gcGFnZSBhdXRob3I6CisuXCIgICAgVG9ueSBOdWdlbnQgPHRvbnlAc2N0bnVnZW4ucHBwLmd1LmVkdS5hdT4gPFQuTnVnZW50QHNjdC5ndS5lZHUuYXU+CisuXCIgICAgQ2hhbmdlcyBieSBCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgorLlNIIE5BWldBCisuSSB4eGQKK1wtIHpyenV0IHBsaWt1IGRvIGhleCBsdWIgb2R3cm90bmllCisuU0ggU1lOT1BTSVMKKy5CIHh4ZAorXC1oW2VscF0KKy5icgorLkIgeHhkCitbb3BjamVdIFtwbGlrX3dlIFtwbGlrX3d5XV0KKy5icgorLkIgeHhkCitcLXJbZXZlcnRdIFtvcGNqZV0gW3BsaWtfd2UgW3BsaWtfd3ldXQorLlNIIE9QSVMKKy5JIHh4ZAordHdvcnp5IHpyenV0IGhla3Nvd3kgcG9kYW5lZ28gcGxpa3UgbmEgc3RhbmRhcmRvd2Ugd3lqtmNpZS4KK01vv2UgdGFrv2UgcHJ6ZXR3b3J6eeYgenJ6dXQgaGVrc293eSB6IHBvd3JvdGVtIGRvIG9yeWdpbmFsbmVqLAorYmluYXJuZWogZm9ybXkuCitQb2RvYm5pZSBqYWsKKy5CUiB1dWVuY29kZSAoMSkKK2kKKy5CUiB1dWRlY29kZSAoMSkKK3BvendhbGEgbmEgcHJ6ZWthemFuaWUgZGFueWNoIGJpbmFybnljaCB3IGJlenBpZWN6bmVqIHcgcG9jemNpZSBmb3JtaWUKK0FTQ0lJLCBhbGUgbWEgemFsZXR5IGRla29kb3dhbmlhIG5hIHN0YW5kYXJkb3dlIHd5arZjaWUuCitQb25hZHRvIG1vv25hIGdvIHW/eeYgZG8gcHJ6ZXByb3dhZHplbmlhILNhdGFuaWEgcGxpa/N3IGJpbmFybnljaC4KKy5TSCBPUENKRQorSmW2bGkgbmllIHBvZGFubworLkkgcGxpa193ZQoreHhkIGN6eXRhIHplIHN0YW5kYXJkb3dlZ28gd2VqtmNpZS4KK0pltmxpIG9rcmW2bG9ubworLkkgcGxpa193eQoramFrbyB6bmFrCisuUkIgXGAgXC0gJword3RlZHkgZGFuZSB3ZWq2Y2lvd2UgY3p5dGFuZSBzsSB6ZSBzdGFuZGFyZG93ZWdvIHdlarZjaWEuCitKZbZsaSBuaWUgcG9kYW5vCisuSSBwbGlrX3d5CisobHViIHBvZGFubyBqYWtvCisuUkIgXGAgXC0gJworKSwgd3luaWtpIHOxIHd5c3mzYW5lIG5hIHN0YW5kYXJkb3dlIHd5arZjaWUuCisuUFAKK1BhbWnqdGFqLCC/ZSB1v3l0eSB6b3N0YbMgImxlbml3eSIgcGFyc2VyLCBrdPNyeSBuaWUgc3ByYXdkemEgd2nqY2VqCituab8gcGllcndzemVqIGxpdGVyeSBvcGNqaSAobyBpbGUgdGEgbmllIHpvc3Rhs2Egb2JkYXJ6b25hCitwYXJhbWV0cmVtKS4gU3BhY2plIG1p6mR6eSBqZWRubyBsaXRlcm93eW1pIG9wY2phbWkgaSBpY2ggcGFyYW1ldHJhbWkKK3OxIG9wY2pvbmFsbmUuIFBhcmFtZXRyeSBvcGNqaSBtb2exIGJ55iBva3JltmxvbmUgdyBub3RhY2ppIGR6aWVzaep0bmVqLAoraGVrc2FkZWN5bWFsZWogbHViIG9rdGFsbmVqLgorU3SxZAorLkJSIFwtYzggLAorLkJSICJcLWMgOCIgLAorLkIgXC1jIDAxMAoraQorLkIgXC1jb2xzIDgKK3OxIHNvYmllIHLzd25vd2G/bmUuCisuUFAKKy5UUAorLklSIFwtYSAiIHwgIiBcLWF1dG9za2lwCitwcnpls7FjemEgYXV0b3NraXA6IHBvamVkeW5jemEgJyonIHphc3TqcHVqZSBsaW5pZSBudWwuIERvbXm2bG5pZQord3mzsWN6b25lLgorLlRQCisuSVIgXC1iICIgfCAiIFwtYml0cworUHJ6ZbOxY3phIGRvIHpyenV0dSBiaXRvd2VnbyAoY3lmciBiaW5hcm55Y2gpIHphbWlhc3QgaGVrc293ZWdvLgorT3BjamEgdGEgemFwaXN1amUgb2t0ZXR5IGFqa28gb3NpZW0gY3lmciAxIGx1YiAwIHphbWlhcyBub3JtYWxuZWdvCit6cnp1dHUgaGVrc293ZWdvLiBLYb9kYSBsaW5pYSBqZXN0IHBvcHJ6ZWR6b25hIHByemV6CitoZWtzYWRlY3ltYWxueSBudW1lciBsaW5paSBhIHphIG5pbSBqZWdvIHJlcHJlemVudGFjamEgdyBhc2NpaSAobHViCitlYmNkaWMpLiBPcGNqZSBsaW5paSBwb2xlY2XxIFwtciwgXC1wLCBcLWkgbmllIGR6aWGzYWqxIHcgdHltCit0cnliaWUuCisuVFAKKy5JUiAiXC1jIGNvbHMgIiB8ICIgXC1jb2xzIGNvbHMiCitmb3JtYXR1amUgbGljemLqCisuUkkgPCBjb2xzID4KK29rdGV083cgbmEgd2llcnN6LiBEb215tmxuaWUgMTYgKFwtaTogMTIsIFwtcHM6IDMwLCBcLWI6IDYpLiBNYWtzLgorMjU2LgorLlRQCisuSVIgXC1FICIgfCAiXC1FQkNESUMKK3ptaWVuaWEga29kb3dhbmllIHpuYWvzdyB3IHByYXdlaiBrb2x1bW5pZSB6IEFTQ0lJIG5hIEVCQ0RJQy4KK05pZSB6bWllbmlhIHByZXplbnRhY2ppIGhla3NhZGVjeW1hbGVqLiBPcGNqYSBuaWUgZHppYbNhIHcgcG+zsWN6ZW5pdQoreiBcLXIsIFwtcCBsdWIgXC1pLgorLlRQCisuSVIgIlwtZyBiYWp083cgIiB8ICIgXC1ncm91cHNpemUgYmFqdPN3Igorb2RkemllbGEgd3lqtmNpZSBrYb9keWNoCisuUkkgPCBiYWp083cgPgorYmFqdPN3IChkd2EgaGVrc293ZSB6bmFraSBsdWIgb3NpZW0gY3lmciBiaW5hcm55Y2gga2G/ZGUpIHByemV6IGJpYbN5Cit6bmFrLgorT2tyZbZsCisuSSBcLWcgMAorYnkgd3mzsWN6eeYgZ3J1cG93YW5pZS4KKy5SSSA8IEJhanTzdyAiPiBkb215tmxuaWUgamVzdCAiIDIKK3cgdHJ5YmllIG5vcm1hbG55bSBpIFxmSTFcZlAgdyB0cnliaWUgYml083cuCitHcnVwb3dhbmllIG5pZSBkemlhs2EgdyB0cnliaWUgcG9zdHNjcmlwdHUgbHViIHezsWN6YW5pYS4KKy5UUAorLklSIFwtaCAiIHwgIiBcLWhlbHAKK3d5cGlzdWplIHBvZHN1bW93YW5pZSBkb3N06nBueWNoIHBvbGVjZfEgaSBrb/FjenkgZHppYbNhbmllLiBOaWUKK3pvc3RhamUgcHJ6ZXByb3dhZHpvbnkgv2FkZW4genJ6dXQuCisuVFAKKy5JUiBcLWkgIiB8ICIgXC1pbmNsdWRlCit3eWq2Y2llIHcgc3R5bHUgd7OxY3phbmlhIHBsaWt1IHcgQy4gWm9zdGFqZSB6YXBpc2FuYSBrb21wbGV0bmEKK3N0YXR5Y3puYSB0YWJsaWNhIGRlZmluaWNqaSAobmF6d2FuYSB3ZWSzdWcgcGxpa3Ugd2VqtmNpYSksIG8gaWxlIHh4ZAorbmllIGN6eXRhIHplIHN0YW5kYXJkb3dlZ28gd2VqtmNpYS4KKy5UUAorLklSICJcLWwgbGVuICIgfCAiXC1sZW4gbGVuIgoremFrb/FjeiBwbyB3eXBpc2FuaXUKKy5SSSA8IGxlbj4KK29rdGV083cuCisuVFAKKy5JUiBcLXAgIiB8ICIgXC1wcyAiIHwgIiBcLXBvc3RzY3JpcHQgIiB8ICIgXC1wbGFpbgord3lqtmNpZSB3IHBvc3RjcmlwdG93eW0gY2mxZ7N5bSBzdHlsdSB6cnp1dHUgaGVrc293ZWdvLiBabmFueSB0YWu/ZQoramFrbyB6d3lrs3kgenJ6dXQgaGVrc293eS4KKy5UUAorLklSIFwtciAiIHwgIiBcLXJldmVydAorb2R3cvPmIG9wZXJhY2rqOiBwcnpla29ud2VydHVqIChsdWIgemGzYXRhaikgenJ6dXQgaGVrc293eSB3IGJpbmFya+ouCitKZbZsaSBuaWUgemFwaXN1amUgbmEgc3RhbmRhcmRvd2Ugd3lqtmNpZSwgeHhkIHphcGlzemUgcGxpayB3eWq2Y2lvd3kKK2JleiBvYmNpbmFuaWEgZ28uIFW/eWoga29tYmluYWNqaQorLkkgXC1yIFwtcAorYnkgb2Rjenl0YeYgend5a7N5IHpyenV0IGhla3NhZGVjeW1hbG55IGJleiBudW1lcvN3IGxpbmlpCitpIG9rcmW2bG9uZWdvIHVrs2FkdSBrb2x1bW4uIERvZGF0a293ZSBiaWGzZSB6bmFraSBpILNhbWFuaWUgd2llcnN6eQorc7EgZG96d29sb25lIHdzeupkemllLgorLlRQCisuSSBcLXNlZWsgb2Zmc2V0CitLaWVkeSB1v3l0eSBwbworLklSIFwtciA6CitvZHdyYWNhIHoKKy5SSSA8IG9mZnNldCA+Citkb2RhbnltIGRvIHBvenljamkgdyBwbGlrdSBvZG5hbGV6aW9ueW0gdyB6cnp1Y2llIGhla3Nvd3ltLgorLlRQCisuSSBcLXMgWytdW1wtXXNlZWsKK3phY3p5bmEgbmEKKy5SSSA8IHNlZWsgPgorYmFqdPN3IGFicy4gKGx1YiB3emcuKSBvZmZzZWNpZSBwbGlrdSB3ZWq2Y2lvd2Vnby4KK1xmSSsgZlJ3c2thenVqZSwgv2Ugc2VlayBqZXN0IHd6Z2zqZG5lIGRvIGJpZb+xY2VqIHBvenljamkgcGxpa3UgKGJlegorem5hY3plbmlhIGpltmxpIG5pZSB3Y3p5dHVqZSB6ZSBzdGFuZGFyZG93ZWdvIHdlarZjaWEpLiBcZklcLSBcZlJ3c2thenVqZQorv2Ugc2VlayBwb3dpbm5vIGJ55iBvIHR5bGUgem5ha/N3IG9kIGtv8WNhIHdlarZjaWEgKGx1YiBqZbZsaQorcG+zsWN6b25lIHogXGZJK1xmUjogcHJ6ZXpoZCBiaWW/sWOxIHBvenljarEgcGxpa3UgbmEgc3RhbmRhcmRvd3ltCit3ZWq2Y2l1KS4KK0JleiBvcGNqaSBcLXMgeHhkIHphY3p5bmEgb2QgYmllv7FjZWogcG96eWNqaSB3IHBsaWt1LgorLlRQCisuSSBcLXUKK3W/eWogd2llbGtpY2ggbGl0ZXIgdyB6bmFrYWNoIGhla3Nvd3ljaC4gRG9tebZsbmllIHOxIG1hs2Ugem5ha2kuCisuVFAKKy5JUiBcLXYgIiB8ICIgXC12ZXJzaW9uCitwb2thenVqZSB3ZXJzauogcHJvZ3JhbXUuCisuU0ggT1NUUlpFr0VOSUEKKy5QUAorLkkgeHhkIFwtcgorcG90cmFmaSBva3Jltmxp5iBudW1lcnkgbGluaWkuIEpltmxpIHBsaWsgd3lqtmNpYSBqZXN0IG1vv2xpd3kgZG8KK3ByemVzenVrYW5pYSB3dGVkeSBudW1lcnkgbGluaWkgbmEgcG9jerF0a3Ugd2llcnN6YSB6cnp1dHUgaGVrc293ZWdvCittb2exIGJ55iBuaWUgcG8ga29sZWksIG1vv2UgYnJha293YeYgd2llcnN6eSBsdWIgbmFrs2FkYeYgc2nqIG5hCitzaWViaWUuIFcgdGFraWNoIHd5cGFka2FjaCB4eGQgdb95amUgbHNlZWsoMikgYnkgem5hbGW85iBuYXN06nBusQorcG96eWNq6i4gSmW2bGkgcGxpayB3eWq2Y2lvd3kgbmllIGplc3QgbW+/bGl3eSBkbyBwcnplc3p1a2FuaWEgbW+/bGl3ZQorc7EgdHlsa28gcHJ6ZXJ3eSwga3TzcmUgem9zdGFusSB3eXBls25pb25lIGJhanRhbWkgbnVsbC4KKy5QUAorLkkgeHhkIFwtcgorbmlnZHkgbmllIHBvZGFqZSBis+pk83cgYW5hbGl6eS4gpm1pZWNpIHOxIGlnbm9yb3dhbmUuCisuUFAKK1cgY3phc2llIGVkeWNqaSB6cnp1dPN3IGhla3Nvd3ljaCwgcHJvc3rqIHphdXdhv3nmIL9lCisuSSB4eGQgXC1yCitwb21pamEgd3N6eXN0a28gdyBsaW5paSB3ZWq2Y2lhIHBvIG9kY3p5dGFuaXUgd3lzdGFyY3pharFjZWogaWxvtmNpCitrb2x1bW4gZGFueWNoIGhla3NhZGVjeW1hbG55Y2ggKHpvYmFjeiBvcGNq6iBcLWMpLiBPem5hY3phIHRvIHRha79lLAorv2Ugem1pYW55IHcgZHJ1a293YW55Y2gga29sdW1uYWNoIGFzY2lpIChsdWIgZWJjZGljKSBzsSB6YXdzemUKK2lnbm9yb3dhbmUuIE9kd3LzY2VuaWUgend5a7NlZ28gKGx1YiBwb3N0c2NyaXB0b3dlZ28pIHN0eWx1IHpyenV0dQorcG9wcnpleiB4eGQgXC1yIFwtcCBuaWUgemFsZb95IG9kIGtvbGVqbm+2Y2kga29sdW1uLiBUdXRhaiBjb2tvbHdpZWoKK2NvIHd5Z2yxZGEgamFrIHBhcmEgY3lmciBoZWtzIGplc3QgaW50ZXJwcmV0b3dhbmUuCisuUFAKK1phdXdhvyBy879uaWPqIG1p6mR6eQorLmJyCitcZkklIHh4ZCBcLWkgcGxpa1xmUgorLmJyCitpCisuYnIKK1xmSSUgeHhkIFwtaSA8IHBsaWtcZlIKKy5QUAorLkkgeHhkIFwtcyBcK3NlZWsKK21vv2UgYnnmIHLzv25lIG9kCisuSVIgInh4ZCBcLXMgc2VlayIgLAorcG9uaWV3Yb8gbHNlZWsoMikgamVzdCB1v3l0eSBkbyAicHJ6ZXdpbmnqY2llIiB3ZWq2Y2lhLiAnKycgcm9iaQorcvO/bmlj6iBqZbZsaSC8cvNks2VtIHdlarZjaWEgamVzdCBzdGFuZGFyZG93ZSB3ZWq2Y2llIGkgamW2bGkgcG96eWNqYQordyBwbGlrdSB6ZSBzdGFuZGFyZG93ZWdvIHdlarZjaWEgbmllIGplc3QgcG9jerF0a2llbSBwbGlrdSB3IGNod2lsaQordXJ1Y2hvbWllbmlhIHh4ZC4gTmFzdOpwdWqxY2UgcHJ6eWuzYWR5IG1vZ7Egd3lqYbZuaeYgKGx1YiBiYXJkemllagorem15bGnmISkuLi4KKy5QUAorUHJ6ZXdp8SBzdGFuZGFyZG93ZSB3ZWq2Y2llIHByemVkIHByemVjenl0YW5pZW07IHBvdHJ6ZWJuZSBwb25pZXdhvworYGNhdCcganW/IG9kY3p5dGGzIGRvIGtv8WNhIHN0YW5kYXJkb3dlZ28gd2VqtmNpYS4KKy5icgorXGZJJSBzaCBcLWMgJ2NhdCA+IHp3eWuzYV9rb3BpYTsgeHhkIFwtcyAwID4gaGV4X2tvcGlhJyA8IHBsaWsKKy5QUAorWnJ6dXQgaGVrc293eSBvZCBwb3p5Y2ppIHBsaWt1IDB4NDgwICg9MTAyNCsxMjgpIHcgcHJ682QuCitabmFrIGArJyBvem5hY3phICJ3emds6mRueSB3b2JlYyBiaWW/sWNlaiBwb3p5Y2ppIiwgc3SxZCBgMTI4JyBkb2RhamUKK2RvIDFrIGdkemllIHpha2/xY3p5syBkZC4KKy5icgorXGZJJSBzaCBcLWMgJ2RkIG9mPXBsYWluX3NuaXBwZXQgYnM9MWsgY291bnQ9MTsgeHhkIFwtcyArMTI4ID4gaGV4X3NuaXBwZXQnIDwgZmlsZQorLlBQCitacnp1dCBoZWtzb3d5IG9kIHBvenljamkgcGxpa3UgMHgxMDAgKCA9IDEwMjRcLTc2OCkgZGFsZWouCisuYnIKK1xmSSUgc2ggXC1jICdkZCBvZj1wbGFpbl9zbmlwcGV0IGJzPTFrIGNvdW50PTE7IHh4ZCBcLXMgKy03NjggPiBoZXhfc25pcHBldCcgPCBmaWxlCisuUFAKK0pha2tvbHdpZWssIGplc3QgdG8gcnphZGthIHN5dHVhY2phIGkgdb95Y2llIGArJyBqZXN0IHJ6YWRrbworcG90cnplYm5lLgorQXV0b3Igd29saSBtb25pdG9yb3dh5iBkemlhs2FuaWUgeHhkIHByenkgcG9tb2N5IHN0cmFjZSgxKSBsdWIgdHJ1c3MoMSkga2llZHkgXC1zIGplc3Qgdb95dGUuCisuU0ggUFJaWUujQURZCisuUFAKKy5icgorV3lwaXN6IHdzenlzdGtvIHogd3lqsXRraWVtIHBpZXJ3c3p5Y2ggdHJ6ZWNoIGxpbmlpIChoZWtzb3dlIDB4MzAgYmFqdPN3KQorLkIgcGxpa3UKK1wuCisuYnIKK1xmSSUgeHhkIFwtcyAweDMwIHBsaWsKKy5QUAorLmJyCitXeXBpc3ogdHJ6eSBsaW5pZSAoaGVrc293ZSAweDMwIGJhanTzdykgeiBrb/FjYQorLkIgcGxpa3UKK1wuCisuYnIKK1xmSSUgeHhkIFwtcyBcLTB4MzAgcGxpaworLlBQCisuYnIKK1d5cGlzeiAxMjAgYmFqdPN3IGpha28gY2mxZ7N5IHpyenV0IGhla3Nvd3kgeiA0MCBva3RldGFtaSBuYSBsaW5p6i4KKy5icgorXGZJJSB4eGQgXC1sIDEyMCBcLXBzIFwtYyAyMCB4eGQuMVxmUgorLmJyCisyZTU0NDgyMDU4NTg0NDIwMzEyMDIyNDE3NTY3NzU3Mzc0MjAzMTM5CisuYnIKKzM5MzYyMjIwMjI0ZDYxNmU3NTYxNmMyMDcwNjE2NzY1MjA2NjZmNzIKKy5icgorMjA3ODc4NjQyMjBhMmU1YzIyMGEyZTVjMjIyMDMyMzE3Mzc0MjA0ZAorLmJyCis2MTc5MjAzMTM5MzkzNjBhMmU1YzIyMjA0ZDYxNmUyMDcwNjE2NzY1CisuYnIKKzIwNjE3NTc0Njg2ZjcyM2EwYTJlNWMyMjIwMjAyMDIwNTQ2ZjZlNzkKKy5icgorMjA0ZTc1Njc2NTZlNzQyMDNjNzQ2ZjZlNzk0MDczNjM3NDZlNzU2NworLmJyCisKKy5icgorWnJ6dXQgaGVrc293eSB6IHBpZXJ3c3p5bWkgMTIwIGJhanRhbWkgdGVqIHN0cm9ueSBwb2Ry6mN6bmlrYSB6IDEyCitva3RldGFtaSBuYSBsaW5p6i4KKy5icgorXGZJJSB4eGQgXC1sIDEyMCBcLWMgMTIgeHhkLjFcZlIKKy5icgorMDAwMDAwMDogMmU1NCA0ODIwIDU4NTggNDQyMCAzMTIwIDIyNDEgIC5USCBYWEQgMSAiQQorLmJyCiswMDAwMDBjOiA3NTY3IDc1NzMgNzQyMCAzMTM5IDM5MzYgMjIyMCAgdWd1c3QgMTk5NiIgCisuYnIKKzAwMDAwMTg6IDIyNGQgNjE2ZSA3NTYxIDZjMjAgNzA2MSA2NzY1ICAiTWFudWFsIHBhZ2UKKy5icgorMDAwMDAyNDogMjA2NiA2ZjcyIDIwNzggNzg2NCAyMjBhIDJlNWMgICBmb3IgeHhkIi4uXFwKKy5icgorMDAwMDAzMDogMjIwYSAyZTVjIDIyMjAgMzIzMSA3Mzc0IDIwNGQgICIuLlxcIiAyMXN0IE0KKy5icgorMDAwMDAzYzogNjE3OSAyMDMxIDM5MzkgMzYwYSAyZTVjIDIyMjAgIGF5IDE5OTYuLlxcIiAKKy5icgorMDAwMDA0ODogNGQ2MSA2ZTIwIDcwNjEgNjc2NSAyMDYxIDc1NzQgIE1hbiBwYWdlIGF1dAorLmJyCiswMDAwMDU0OiA2ODZmIDcyM2EgMGEyZSA1YzIyIDIwMjAgMjAyMCAgaG9yOi4uXFwiICAgIAorLmJyCiswMDAwMDYwOiA1NDZmIDZlNzkgMjA0ZSA3NTY3IDY1NmUgNzQyMCAgVG9ueSBOdWdlbnQgCisuYnIKKzAwMDAwNmM6IDNjNzQgNmY2ZSA3OTQwIDczNjMgNzQ2ZSA3NTY3ICA8dG9ueUBzY3RudWcKKy5QUAorLmJyCitQb2thvyB0eWxrbyBkYXTqIHogcGxpa3UgeHhkLjEKKy5icgorXGZJJSB4eGQgXC1zIDB4MzYgXC1sIDEzIFwtYyAxMyB4eGQuMVxmUgorLmJyCiswMDAwMDM2OiAzMjMxIDczNzQgMjA0ZCA2MTc5IDIwMzEgMzkzOSAzNiAgMjFzdCBNYXkgMTk5NgorLlBQCisuYnIKK0tvcGl1agorLkIgcGxpa193ZQorZG8KKy5CIHBsaWtfd3kKK2kgcG9wcnplZLwgMTAwIGJhanRhbWkgbyB3YXJ0b7ZjaSAweDAwLgorLmJyCitcZkklIHh4ZCBwbGlrX3dlIHwgeHhkIFwtciBcLXMgMTAwIFw+IHBsaWtfd3lcZlIKKy5icgorCisuYnIKK1BvZG1pZfEgZGF06iB3IHBsaWt1IHh4ZC4xCisuYnIKK1xmSSUgZWNobyAnMDAwMDAzNzogMzU3NCA2OCcgfCB4eGQgXC1yIFwtIHh4ZC4xXGZSCisuYnIKK1xmSSUgeHhkIFwtcyAweDM2IFwtbCAxMyBcLWMgMTMgeHhkLjFcZlIKKy5icgorMDAwMDAzNjogMzIzNSA3NDY4IDIwNGQgNjE3OSAyMDMxIDM5MzkgMzYgIDI1dGggTWF5IDE5OTYKKy5QUAorLmJyCitVdHfzcnogcGxpayBvIDY1NTM3IGJhanRhY2gsIHdzenlzdGtpY2ggcvN3bnljaCAweDAwLAoreiB3eWqxdGtpZW0gb3N0YXRuaWVnbywga3TzcnkgbWEgYnnmICdBJyAoaGV4IDB4NDEpLgorLmJyCitcZkklIGVjaG8gJzAxMDAwMDogNDEnIHwgeHhkIFwtciBcPiBwbGlrXGZSCisuUFAKKy5icgorWnJ6dXQgaGVrc293eSB0ZWdvIHBsaWt1IHogYXV0b3NraXBlbS4KKy5icgorXGZJJSB4eGQgXC1hIFwtYyAxMiBwbGlrXGZSCisuYnIKKzAwMDAwMDA6IDAwMDAgMDAwMCAwMDAwIDAwMDAgMDAwMCAwMDAwICAuLi4uLi4uLi4uLi4KKy5icgorKgorLmJyCiswMDBmZmZjOiAwMDAwIDAwMDAgNDAgICAgICAgICAgICAgICAgICAgLi4uLkEKKy5QUAorVXR383J6IGplZG5vIGJhanRvd3kgcGxpayB6YXdpZXJharFjeSBwb2plZG5jerEgbGl0ZXLqICdBJy4KK0xpY3piYSBwbyAnXC1yIFwtcycgZG9kYWplIG51bWVyeSBsaW5paSB6bmFsZXppb25lIHcgcGxpa3U7Cit3IGVmZWtjaWUgcG9wcnplZHpharFjZSBiYWp0eSBzsSB1a3J5dGUuCisuYnIKK1xmSSUgZWNobyAnMDEwMDAwOiA0MScgfCB4eGQgXC1yIFwtcyBcLTB4MTAwMDAgXD4gcGxpa1xmUgorLlBQCitVv3lqIHh4ZCBqYWtvIGZpbHRyYSB3ZXdusXRyeiBlZHl0b3JhIHRha2llZ28gamFrCisuQiB2aW0oMSkKK2FieSB1enlza2HmIHpyenV0IGhla3Nvd3kgemFrcmVzdSBtaepkenkgbWFya2VyYW1pIGBhJyBpIGB6Jy4KKy5icgorXGZJOidhLCd6IXh4ZFxmUgorLlBQCitVv3lqIHh4ZCBqYWtvIGZpbHRyYSB3ZXdusXRyeiBlZHl0b3JhIHRha2llZ28gamFrCisuQiB2aW0oMSkKK2J5IG9kenlza2HmIGJpbmFybnkgenJ6dXQgaGVrc293eSB6YWtyZXN1IHBvbWnqZHp5IG1hcmtlcmFtaSBgYScKK2kgYHonLgorLmJyCitcZkk6J2EsJ3oheHhkIFwtclxmUgorLlBQCitVv3lqIHh4ZCBqYWtvIGZpbHRyYSB3ZXdusXRyeiBlZHl0b3JhIHRha2llZ28gamFrCisuQiB2aW0oMSkKK2J5IG9kenlza2HmIGplZG6xIGxpbmnqIHpyenV0dSBoZWtzb3dlZ28uIFByemVqZLwgeiBrdXJzb3JlbSBuYSBsaW5p6goraSB3cGlzejoKKy5icgorXGZJISF4eGQgXC1yXGZSCisuUFAKK09kY3p5dGFqIHBvamVkbnljemUgem5ha2kgeiBwb3J0dSBzemVyZWdvd2VnbworLmJyCitcZkklIHh4ZCBcLWMxIDwgL2Rldi90ZXJtL2IgJlxmUgorLmJyCitcZkklIHN0dHkgPCAvZGV2L3Rlcm0vYiBcLWVjaG8gXC1vcG9zdCBcLWlzaWcgXC1pY2Fub24gbWluIDFcZlIKKy5icgorXGZJJSBlY2hvIFwtbiBmb28gPiAvZGV2L3Rlcm0vYlxmUgorLlBQCisuU0ggIlpXUkFDQU5FIFdBUlRPpkNJIgorWndyYWNhbmUgc7EgbmFzdOpwdWqxY2Ugd2FydG+2Y2kgYrPqZPN3OgorLlRQCiswCituaWUgem5hbGV6aW9ubyBis+pk83cuCisuVFAKK1wtMQorb3BlcmFjamEgbmllIGplc3Qgd3NwaWVyYW5hICgKKy5JIHh4ZCBcLXIgXC1pCitjYbN5IGN6YXMgbmllbW+/bGl3YSkuCisuVFAKKzEKK2KzsWQgdyBjemFzaWUgYW5hbGl6b3dhbmlhIG9wY2ppLgorLlRQCisyCitwcm9ibGVteSB6IHBsaWtpZW0gd2VqtmNpb3d5bS4KKy5UUAorMworcHJvYmxlbXkgeiBwbGlraWVtIHd5arZjaW93eW0uCisuVFAKKzQsNQorv7FkYW5hIHBvenljamEgamVzdCBuaWVvc2mxZ2FsbmEuCisuU0ggIlpPQkFDWiBUQUuvRSIKK3V1ZW5jb2RlKDEpLCB1dWRlY29kZSgxKSwgcGF0Y2goMSkKKy5icgorLlNIIE9TVFJaRa9FTklBCitEeml3YWN6bm+25iBuYXJ66mR6aSBkb3Lzd251amUgZHppd2Fjem5vtmNpIG3zemd1IHR383JjeS4KK1W/eXdhaiB3ebOxY3puaWUgbmEgd7Nhc26xIG9kcG93aWVkemlhbG5vtuYuIEtvcGl1aiBwbGlraS4gQW5hbGl6dWoKK2plLiBTdGHxIHNp6iBjemFyb2R6aWVqZW0uCisuYnIKKy5TSCBXRVJTSkEKK1N0cm9uYSBwb2Ry6mN6bmlrYSBvcGlzdWplIHh4ZCB3IHdlcnNqaSAxLjcKKy5TSCBBVVRPUgorLmJyCisoYykgMTk5MC0xOTk3IGJ5IEp1ZXJnZW4gV2VpZ2VydAorLmJyCis8am53ZWlnZXJAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisuTFAKK0tvcGl1aiBkbyB3b2xpIGkgcG9kYWogbW9qZSBkYW5lLAorLmJyCit6YXJhYmlhaiBwaWVuabFkemUgaSBkemllbCBzaeogemUgbW6xLAorLmJyCit0cmHmIHBpZW5psWR6ZSBpIG5pZSBtaWVqIGRvIG1uaWUgcHJldGVuc2ppLgorLlBQCitTdHJvbmEgcG9kcupjem5pa2EgemFwb2N6sXRrb3dhbmEgcHJ6ZXogVG9ueSdlZ28gTnVnZW50YQorLmJyCis8dG9ueUBzY3RudWdlbi5wcHAuZ3UuZWR1LmF1PiA8VC5OdWdlbnRAc2N0Lmd1LmVkdS5hdT4KKy5icgorTWGzZSB6bWlhbnk6IEJyYW0gTW9vbGVuYWFyLgorUmVkYWtjamE6IEp1ZXJnZW4gV2VpZ2VydC4KKy5QUApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MveHhkLXBsLlVURi04LjEgYi9ydW50aW1lL2RvYy94eGQtcGwuVVRGLTguMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjRkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MveHhkLXBsLlVURi04LjEKQEAgLTAsMCArMSwzODkgQEAKKy5USCBYWEQgMSAiU2llcnBpZcWEIDE5OTYiICJTdHJvbmEgcG9kcsSZY3puaWthIGRsYSB4eGQiCisuXCIKKy5cIiAyMXN0IE1heSAxOTk2CisuXCIgTWFuIHBhZ2UgYXV0aG9yOgorLlwiICAgIFRvbnkgTnVnZW50IDx0b255QHNjdG51Z2VuLnBwcC5ndS5lZHUuYXU+IDxULk51Z2VudEBzY3QuZ3UuZWR1LmF1PgorLlwiICAgIENoYW5nZXMgYnkgQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KKy5TSCBOQVpXQQorLkkgeHhkCitcLSB6cnp1dCBwbGlrdSBkbyBoZXggbHViIG9kd3JvdG5pZQorLlNIIFNZTk9QU0lTCisuQiB4eGQKK1wtaFtlbHBdCisuYnIKKy5CIHh4ZAorW29wY2plXSBbcGxpa193ZSBbcGxpa193eV1dCisuYnIKKy5CIHh4ZAorXC1yW2V2ZXJ0XSBbb3BjamVdIFtwbGlrX3dlIFtwbGlrX3d5XV0KKy5TSCBPUElTCisuSSB4eGQKK3R3b3J6eSB6cnp1dCBoZWtzb3d5IHBvZGFuZWdvIHBsaWt1IG5hIHN0YW5kYXJkb3dlIHd5asWbY2llLgorTW/FvGUgdGFrxbxlIHByemV0d29yennEhyB6cnp1dCBoZWtzb3d5IHogcG93cm90ZW0gZG8gb3J5Z2luYWxuZWosCitiaW5hcm5laiBmb3JteS4KK1BvZG9ibmllIGphaworLkJSIHV1ZW5jb2RlICgxKQoraQorLkJSIHV1ZGVjb2RlICgxKQorcG96d2FsYSBuYSBwcnpla2F6YW5pZSBkYW55Y2ggYmluYXJueWNoIHcgYmV6cGllY3puZWogdyBwb2N6Y2llIGZvcm1pZQorQVNDSUksIGFsZSBtYSB6YWxldHkgZGVrb2Rvd2FuaWEgbmEgc3RhbmRhcmRvd2Ugd3lqxZtjaWUuCitQb25hZHRvIG1vxbxuYSBnbyB1xbx5xIcgZG8gcHJ6ZXByb3dhZHplbmlhIMWCYXRhbmlhIHBsaWvDs3cgYmluYXJueWNoLgorLlNIIE9QQ0pFCitKZcWbbGkgbmllIHBvZGFubworLkkgcGxpa193ZQoreHhkIGN6eXRhIHplIHN0YW5kYXJkb3dlZ28gd2VqxZtjaWUuCitKZcWbbGkgb2tyZcWbbG9ubworLkkgcGxpa193eQoramFrbyB6bmFrCisuUkIgXGAgXC0gJword3RlZHkgZGFuZSB3ZWrFm2Npb3dlIGN6eXRhbmUgc8SFIHplIHN0YW5kYXJkb3dlZ28gd2VqxZtjaWEuCitKZcWbbGkgbmllIHBvZGFubworLkkgcGxpa193eQorKGx1YiBwb2Rhbm8gamFrbworLlJCIFxgIFwtICcKKyksIHd5bmlraSBzxIUgd3lzecWCYW5lIG5hIHN0YW5kYXJkb3dlIHd5asWbY2llLgorLlBQCitQYW1pxJl0YWosIMW8ZSB1xbx5dHkgem9zdGHFgiAibGVuaXd5IiBwYXJzZXIsIGt0w7NyeSBuaWUgc3ByYXdkemEgd2nEmWNlagorbmnFvCBwaWVyd3N6ZWogbGl0ZXJ5IG9wY2ppIChvIGlsZSB0YSBuaWUgem9zdGHFgmEgb2JkYXJ6b25hCitwYXJhbWV0cmVtKS4gU3BhY2plIG1pxJlkenkgamVkbm8gbGl0ZXJvd3ltaSBvcGNqYW1pIGkgaWNoIHBhcmFtZXRyYW1pCitzxIUgb3Bjam9uYWxuZS4gUGFyYW1ldHJ5IG9wY2ppIG1vZ8SFIGJ5xIcgb2tyZcWbbG9uZSB3IG5vdGFjamkgZHppZXNpxJl0bmVqLAoraGVrc2FkZWN5bWFsZWogbHViIG9rdGFsbmVqLgorU3TEhWQKKy5CUiBcLWM4ICwKKy5CUiAiXC1jIDgiICwKKy5CIFwtYyAwMTAKK2kKKy5CIFwtY29scyA4CitzxIUgc29iaWUgcsOzd25vd2HFvG5lLgorLlBQCisuVFAKKy5JUiBcLWEgIiB8ICIgXC1hdXRvc2tpcAorcHJ6ZcWCxIVjemEgYXV0b3NraXA6IHBvamVkeW5jemEgJyonIHphc3TEmXB1amUgbGluaWUgbnVsLiBEb215xZtsbmllCit3ecWCxIVjem9uZS4KKy5UUAorLklSIFwtYiAiIHwgIiBcLWJpdHMKK1ByemXFgsSFY3phIGRvIHpyenV0dSBiaXRvd2VnbyAoY3lmciBiaW5hcm55Y2gpIHphbWlhc3QgaGVrc293ZWdvLgorT3BjamEgdGEgemFwaXN1amUgb2t0ZXR5IGFqa28gb3NpZW0gY3lmciAxIGx1YiAwIHphbWlhcyBub3JtYWxuZWdvCit6cnp1dHUgaGVrc293ZWdvLiBLYcW8ZGEgbGluaWEgamVzdCBwb3ByemVkem9uYSBwcnplegoraGVrc2FkZWN5bWFsbnkgbnVtZXIgbGluaWkgYSB6YSBuaW0gamVnbyByZXByZXplbnRhY2phIHcgYXNjaWkgKGx1YgorZWJjZGljKS4gT3BjamUgbGluaWkgcG9sZWNlxYQgXC1yLCBcLXAsIFwtaSBuaWUgZHppYcWCYWrEhSB3IHR5bQordHJ5YmllLgorLlRQCisuSVIgIlwtYyBjb2xzICIgfCAiIFwtY29scyBjb2xzIgorZm9ybWF0dWplIGxpY3pixJkKKy5SSSA8IGNvbHMgPgorb2t0ZXTDs3cgbmEgd2llcnN6LiBEb215xZtsbmllIDE2IChcLWk6IDEyLCBcLXBzOiAzMCwgXC1iOiA2KS4gTWFrcy4KKzI1Ni4KKy5UUAorLklSIFwtRSAiIHwgIlwtRUJDRElDCit6bWllbmlhIGtvZG93YW5pZSB6bmFrw7N3IHcgcHJhd2VqIGtvbHVtbmllIHogQVNDSUkgbmEgRUJDRElDLgorTmllIHptaWVuaWEgcHJlemVudGFjamkgaGVrc2FkZWN5bWFsZWouIE9wY2phIG5pZSBkemlhxYJhIHcgcG/FgsSFY3plbml1Cit6IFwtciwgXC1wIGx1YiBcLWkuCisuVFAKKy5JUiAiXC1nIGJhanTDs3cgIiB8ICIgXC1ncm91cHNpemUgYmFqdMOzdyIKK29kZHppZWxhIHd5asWbY2llIGthxbxkeWNoCisuUkkgPCBiYWp0w7N3ID4KK2JhanTDs3cgKGR3YSBoZWtzb3dlIHpuYWtpIGx1YiBvc2llbSBjeWZyIGJpbmFybnljaCBrYcW8ZGUpIHByemV6IGJpYcWCeQorem5hay4KK09rcmXFm2wKKy5JIFwtZyAwCitieSB3ecWCxIVjennEhyBncnVwb3dhbmllLgorLlJJIDwgQmFqdMOzdyAiPiBkb215xZtsbmllIGplc3QgIiAyCit3IHRyeWJpZSBub3JtYWxueW0gaSBcZkkxXGZQIHcgdHJ5YmllIGJpdMOzdy4KK0dydXBvd2FuaWUgbmllIGR6aWHFgmEgdyB0cnliaWUgcG9zdHNjcmlwdHUgbHViIHfFgsSFY3phbmlhLgorLlRQCisuSVIgXC1oICIgfCAiIFwtaGVscAord3lwaXN1amUgcG9kc3Vtb3dhbmllIGRvc3TEmXBueWNoIHBvbGVjZcWEIGkga2/FhGN6eSBkemlhxYJhbmllLiBOaWUKK3pvc3RhamUgcHJ6ZXByb3dhZHpvbnkgxbxhZGVuIHpyenV0LgorLlRQCisuSVIgXC1pICIgfCAiIFwtaW5jbHVkZQord3lqxZtjaWUgdyBzdHlsdSB3xYLEhWN6YW5pYSBwbGlrdSB3IEMuIFpvc3RhamUgemFwaXNhbmEga29tcGxldG5hCitzdGF0eWN6bmEgdGFibGljYSBkZWZpbmljamkgKG5hendhbmEgd2VkxYJ1ZyBwbGlrdSB3ZWrFm2NpYSksIG8gaWxlIHh4ZAorbmllIGN6eXRhIHplIHN0YW5kYXJkb3dlZ28gd2VqxZtjaWEuCisuVFAKKy5JUiAiXC1sIGxlbiAiIHwgIlwtbGVuIGxlbiIKK3pha2/FhGN6IHBvIHd5cGlzYW5pdQorLlJJIDwgbGVuPgorb2t0ZXTDs3cuCisuVFAKKy5JUiBcLXAgIiB8ICIgXC1wcyAiIHwgIiBcLXBvc3RzY3JpcHQgIiB8ICIgXC1wbGFpbgord3lqxZtjaWUgdyBwb3N0Y3JpcHRvd3ltIGNpxIVnxYJ5bSBzdHlsdSB6cnp1dHUgaGVrc293ZWdvLiBabmFueSB0YWvFvGUKK2pha28gend5a8WCeSB6cnp1dCBoZWtzb3d5LgorLlRQCisuSVIgXC1yICIgfCAiIFwtcmV2ZXJ0CitvZHdyw7PEhyBvcGVyYWNqxJk6IHByemVrb253ZXJ0dWogKGx1YiB6YcWCYXRhaikgenJ6dXQgaGVrc293eSB3IGJpbmFya8SZLgorSmXFm2xpIG5pZSB6YXBpc3VqZSBuYSBzdGFuZGFyZG93ZSB3eWrFm2NpZSwgeHhkIHphcGlzemUgcGxpayB3eWrFm2Npb3d5CitiZXogb2JjaW5hbmlhIGdvLiBVxbx5aiBrb21iaW5hY2ppCisuSSBcLXIgXC1wCitieSBvZGN6eXRhxIcgend5a8WCeSB6cnp1dCBoZWtzYWRlY3ltYWxueSBiZXogbnVtZXLDs3cgbGluaWkKK2kgb2tyZcWbbG9uZWdvIHVrxYJhZHUga29sdW1uLiBEb2RhdGtvd2UgYmlhxYJlIHpuYWtpIGkgxYJhbWFuaWUgd2llcnN6eQorc8SFIGRvendvbG9uZSB3c3rEmWR6aWUuCisuVFAKKy5JIFwtc2VlayBvZmZzZXQKK0tpZWR5IHXFvHl0eSBwbworLklSIFwtciA6CitvZHdyYWNhIHoKKy5SSSA8IG9mZnNldCA+Citkb2RhbnltIGRvIHBvenljamkgdyBwbGlrdSBvZG5hbGV6aW9ueW0gdyB6cnp1Y2llIGhla3Nvd3ltLgorLlRQCisuSSBcLXMgWytdW1wtXXNlZWsKK3phY3p5bmEgbmEKKy5SSSA8IHNlZWsgPgorYmFqdMOzdyBhYnMuIChsdWIgd3pnLikgb2Zmc2VjaWUgcGxpa3Ugd2VqxZtjaW93ZWdvLgorXGZJKyBmUndza2F6dWplLCDFvGUgc2VlayBqZXN0IHd6Z2zEmWRuZSBkbyBiaWXFvMSFY2VqIHBvenljamkgcGxpa3UgKGJlegorem5hY3plbmlhIGplxZtsaSBuaWUgd2N6eXR1amUgemUgc3RhbmRhcmRvd2VnbyB3ZWrFm2NpYSkuIFxmSVwtIFxmUndza2F6dWplCivFvGUgc2VlayBwb3dpbm5vIGJ5xIcgbyB0eWxlIHpuYWvDs3cgb2Qga2/FhGNhIHdlasWbY2lhIChsdWIgamXFm2xpCitwb8WCxIVjem9uZSB6IFxmSStcZlI6IHByemV6aGQgYmllxbzEhWPEhSBwb3p5Y2rEhSBwbGlrdSBuYSBzdGFuZGFyZG93eW0KK3dlasWbY2l1KS4KK0JleiBvcGNqaSBcLXMgeHhkIHphY3p5bmEgb2QgYmllxbzEhWNlaiBwb3p5Y2ppIHcgcGxpa3UuCisuVFAKKy5JIFwtdQordcW8eWogd2llbGtpY2ggbGl0ZXIgdyB6bmFrYWNoIGhla3Nvd3ljaC4gRG9tecWbbG5pZSBzxIUgbWHFgmUgem5ha2kuCisuVFAKKy5JUiBcLXYgIiB8ICIgXC12ZXJzaW9uCitwb2thenVqZSB3ZXJzasSZIHByb2dyYW11LgorLlNIIE9TVFJaRcW7RU5JQQorLlBQCisuSSB4eGQgXC1yCitwb3RyYWZpIG9rcmXFm2xpxIcgbnVtZXJ5IGxpbmlpLiBKZcWbbGkgcGxpayB3eWrFm2NpYSBqZXN0IG1vxbxsaXd5IGRvCitwcnplc3p1a2FuaWEgd3RlZHkgbnVtZXJ5IGxpbmlpIG5hIHBvY3rEhXRrdSB3aWVyc3phIHpyenV0dSBoZWtzb3dlZ28KK21vZ8SFIGJ5xIcgbmllIHBvIGtvbGVpLCBtb8W8ZSBicmFrb3dhxIcgd2llcnN6eSBsdWIgbmFrxYJhZGHEhyBzacSZIG5hCitzaWViaWUuIFcgdGFraWNoIHd5cGFka2FjaCB4eGQgdcW8eWplIGxzZWVrKDIpIGJ5IHpuYWxlxbrEhyBuYXN0xJlwbsSFCitwb3p5Y2rEmS4gSmXFm2xpIHBsaWsgd3lqxZtjaW93eSBuaWUgamVzdCBtb8W8bGl3eSBkbyBwcnplc3p1a2FuaWEgbW/FvGxpd2UKK3PEhSB0eWxrbyBwcnplcnd5LCBrdMOzcmUgem9zdGFuxIUgd3lwZcWCbmlvbmUgYmFqdGFtaSBudWxsLgorLlBQCisuSSB4eGQgXC1yCituaWdkeSBuaWUgcG9kYWplIGLFgsSZZMOzdyBhbmFsaXp5LiDFmm1pZWNpIHPEhSBpZ25vcm93YW5lLgorLlBQCitXIGN6YXNpZSBlZHljamkgenJ6dXTDs3cgaGVrc293eWNoLCBwcm9zesSZIHphdXdhxbx5xIcgxbxlCisuSSB4eGQgXC1yCitwb21pamEgd3N6eXN0a28gdyBsaW5paSB3ZWrFm2NpYSBwbyBvZGN6eXRhbml1IHd5c3RhcmN6YWrEhWNlaiBpbG/Fm2NpCitrb2x1bW4gZGFueWNoIGhla3NhZGVjeW1hbG55Y2ggKHpvYmFjeiBvcGNqxJkgXC1jKS4gT3puYWN6YSB0byB0YWvFvGUsCivFvGUgem1pYW55IHcgZHJ1a293YW55Y2gga29sdW1uYWNoIGFzY2lpIChsdWIgZWJjZGljKSBzxIUgemF3c3plCitpZ25vcm93YW5lLiBPZHdyw7NjZW5pZSB6d3lrxYJlZ28gKGx1YiBwb3N0c2NyaXB0b3dlZ28pIHN0eWx1IHpyenV0dQorcG9wcnpleiB4eGQgXC1yIFwtcCBuaWUgemFsZcW8eSBvZCBrb2xlam5vxZtjaSBrb2x1bW4uIFR1dGFqIGNva29sd2llagorY28gd3lnbMSFZGEgamFrIHBhcmEgY3lmciBoZWtzIGplc3QgaW50ZXJwcmV0b3dhbmUuCisuUFAKK1phdXdhxbwgcsOzxbxuaWPEmSBtacSZZHp5CisuYnIKK1xmSSUgeHhkIFwtaSBwbGlrXGZSCisuYnIKK2kKKy5icgorXGZJJSB4eGQgXC1pIDwgcGxpa1xmUgorLlBQCisuSSB4eGQgXC1zIFwrc2VlaworbW/FvGUgYnnEhyByw7PFvG5lIG9kCisuSVIgInh4ZCBcLXMgc2VlayIgLAorcG9uaWV3YcW8IGxzZWVrKDIpIGplc3QgdcW8eXR5IGRvICJwcnpld2luacSZY2llIiB3ZWrFm2NpYS4gJysnIHJvYmkKK3LDs8W8bmljxJkgamXFm2xpIMW6csOzZMWCZW0gd2VqxZtjaWEgamVzdCBzdGFuZGFyZG93ZSB3ZWrFm2NpZSBpIGplxZtsaSBwb3p5Y2phCit3IHBsaWt1IHplIHN0YW5kYXJkb3dlZ28gd2VqxZtjaWEgbmllIGplc3QgcG9jesSFdGtpZW0gcGxpa3UgdyBjaHdpbGkKK3VydWNob21pZW5pYSB4eGQuIE5hc3TEmXB1asSFY2UgcHJ6eWvFgmFkeSBtb2fEhSB3eWphxZtuacSHIChsdWIgYmFyZHppZWoKK3pteWxpxIchKS4uLgorLlBQCitQcnpld2nFhCBzdGFuZGFyZG93ZSB3ZWrFm2NpZSBwcnplZCBwcnplY3p5dGFuaWVtOyBwb3RyemVibmUgcG9uaWV3YcW8CitgY2F0JyBqdcW8IG9kY3p5dGHFgiBkbyBrb8WEY2Egc3RhbmRhcmRvd2VnbyB3ZWrFm2NpYS4KKy5icgorXGZJJSBzaCBcLWMgJ2NhdCA+IHp3eWvFgmFfa29waWE7IHh4ZCBcLXMgMCA+IGhleF9rb3BpYScgPCBwbGlrCisuUFAKK1pyenV0IGhla3Nvd3kgb2QgcG96eWNqaSBwbGlrdSAweDQ4MCAoPTEwMjQrMTI4KSB3IHByesOzZC4KK1puYWsgYCsnIG96bmFjemEgInd6Z2zEmWRueSB3b2JlYyBiaWXFvMSFY2VqIHBvenljamkiLCBzdMSFZCBgMTI4JyBkb2RhamUKK2RvIDFrIGdkemllIHpha2/FhGN6ecWCIGRkLgorLmJyCitcZkklIHNoIFwtYyAnZGQgb2Y9cGxhaW5fc25pcHBldCBicz0xayBjb3VudD0xOyB4eGQgXC1zICsxMjggPiBoZXhfc25pcHBldCcgPCBmaWxlCisuUFAKK1pyenV0IGhla3Nvd3kgb2QgcG96eWNqaSBwbGlrdSAweDEwMCAoID0gMTAyNFwtNzY4KSBkYWxlai4KKy5icgorXGZJJSBzaCBcLWMgJ2RkIG9mPXBsYWluX3NuaXBwZXQgYnM9MWsgY291bnQ9MTsgeHhkIFwtcyArLTc2OCA+IGhleF9zbmlwcGV0JyA8IGZpbGUKKy5QUAorSmFra29sd2llaywgamVzdCB0byByemFka2Egc3l0dWFjamEgaSB1xbx5Y2llIGArJyBqZXN0IHJ6YWRrbworcG90cnplYm5lLgorQXV0b3Igd29saSBtb25pdG9yb3dhxIcgZHppYcWCYW5pZSB4eGQgcHJ6eSBwb21vY3kgc3RyYWNlKDEpIGx1YiB0cnVzcygxKSBraWVkeSBcLXMgamVzdCB1xbx5dGUuCisuU0ggUFJaWUvFgUFEWQorLlBQCisuYnIKK1d5cGlzeiB3c3p5c3RrbyB6IHd5asSFdGtpZW0gcGllcndzenljaCB0cnplY2ggbGluaWkgKGhla3Nvd2UgMHgzMCBiYWp0w7N3KQorLkIgcGxpa3UKK1wuCisuYnIKK1xmSSUgeHhkIFwtcyAweDMwIHBsaWsKKy5QUAorLmJyCitXeXBpc3ogdHJ6eSBsaW5pZSAoaGVrc293ZSAweDMwIGJhanTDs3cpIHoga2/FhGNhCisuQiBwbGlrdQorXC4KKy5icgorXGZJJSB4eGQgXC1zIFwtMHgzMCBwbGlrCisuUFAKKy5icgorV3lwaXN6IDEyMCBiYWp0w7N3IGpha28gY2nEhWfFgnkgenJ6dXQgaGVrc293eSB6IDQwIG9rdGV0YW1pIG5hIGxpbmnEmS4KKy5icgorXGZJJSB4eGQgXC1sIDEyMCBcLXBzIFwtYyAyMCB4eGQuMVxmUgorLmJyCisyZTU0NDgyMDU4NTg0NDIwMzEyMDIyNDE3NTY3NzU3Mzc0MjAzMTM5CisuYnIKKzM5MzYyMjIwMjI0ZDYxNmU3NTYxNmMyMDcwNjE2NzY1MjA2NjZmNzIKKy5icgorMjA3ODc4NjQyMjBhMmU1YzIyMGEyZTVjMjIyMDMyMzE3Mzc0MjA0ZAorLmJyCis2MTc5MjAzMTM5MzkzNjBhMmU1YzIyMjA0ZDYxNmUyMDcwNjE2NzY1CisuYnIKKzIwNjE3NTc0Njg2ZjcyM2EwYTJlNWMyMjIwMjAyMDIwNTQ2ZjZlNzkKKy5icgorMjA0ZTc1Njc2NTZlNzQyMDNjNzQ2ZjZlNzk0MDczNjM3NDZlNzU2NworLmJyCisKKy5icgorWnJ6dXQgaGVrc293eSB6IHBpZXJ3c3p5bWkgMTIwIGJhanRhbWkgdGVqIHN0cm9ueSBwb2RyxJljem5pa2EgeiAxMgorb2t0ZXRhbWkgbmEgbGluacSZLgorLmJyCitcZkklIHh4ZCBcLWwgMTIwIFwtYyAxMiB4eGQuMVxmUgorLmJyCiswMDAwMDAwOiAyZTU0IDQ4MjAgNTg1OCA0NDIwIDMxMjAgMjI0MSAgLlRIIFhYRCAxICJBCisuYnIKKzAwMDAwMGM6IDc1NjcgNzU3MyA3NDIwIDMxMzkgMzkzNiAyMjIwICB1Z3VzdCAxOTk2IiAKKy5icgorMDAwMDAxODogMjI0ZCA2MTZlIDc1NjEgNmMyMCA3MDYxIDY3NjUgICJNYW51YWwgcGFnZQorLmJyCiswMDAwMDI0OiAyMDY2IDZmNzIgMjA3OCA3ODY0IDIyMGEgMmU1YyAgIGZvciB4eGQiLi5cXAorLmJyCiswMDAwMDMwOiAyMjBhIDJlNWMgMjIyMCAzMjMxIDczNzQgMjA0ZCAgIi4uXFwiIDIxc3QgTQorLmJyCiswMDAwMDNjOiA2MTc5IDIwMzEgMzkzOSAzNjBhIDJlNWMgMjIyMCAgYXkgMTk5Ni4uXFwiIAorLmJyCiswMDAwMDQ4OiA0ZDYxIDZlMjAgNzA2MSA2NzY1IDIwNjEgNzU3NCAgTWFuIHBhZ2UgYXV0CisuYnIKKzAwMDAwNTQ6IDY4NmYgNzIzYSAwYTJlIDVjMjIgMjAyMCAyMDIwICBob3I6Li5cXCIgICAgCisuYnIKKzAwMDAwNjA6IDU0NmYgNmU3OSAyMDRlIDc1NjcgNjU2ZSA3NDIwICBUb255IE51Z2VudCAKKy5icgorMDAwMDA2YzogM2M3NCA2ZjZlIDc5NDAgNzM2MyA3NDZlIDc1NjcgIDx0b255QHNjdG51ZworLlBQCisuYnIKK1Bva2HFvCB0eWxrbyBkYXTEmSB6IHBsaWt1IHh4ZC4xCisuYnIKK1xmSSUgeHhkIFwtcyAweDM2IFwtbCAxMyBcLWMgMTMgeHhkLjFcZlIKKy5icgorMDAwMDAzNjogMzIzMSA3Mzc0IDIwNGQgNjE3OSAyMDMxIDM5MzkgMzYgIDIxc3QgTWF5IDE5OTYKKy5QUAorLmJyCitLb3BpdWoKKy5CIHBsaWtfd2UKK2RvCisuQiBwbGlrX3d5CitpIHBvcHJ6ZWTFuiAxMDAgYmFqdGFtaSBvIHdhcnRvxZtjaSAweDAwLgorLmJyCitcZkklIHh4ZCBwbGlrX3dlIHwgeHhkIFwtciBcLXMgMTAwIFw+IHBsaWtfd3lcZlIKKy5icgorCisuYnIKK1BvZG1pZcWEIGRhdMSZIHcgcGxpa3UgeHhkLjEKKy5icgorXGZJJSBlY2hvICcwMDAwMDM3OiAzNTc0IDY4JyB8IHh4ZCBcLXIgXC0geHhkLjFcZlIKKy5icgorXGZJJSB4eGQgXC1zIDB4MzYgXC1sIDEzIFwtYyAxMyB4eGQuMVxmUgorLmJyCiswMDAwMDM2OiAzMjM1IDc0NjggMjA0ZCA2MTc5IDIwMzEgMzkzOSAzNiAgMjV0aCBNYXkgMTk5NgorLlBQCisuYnIKK1V0d8OzcnogcGxpayBvIDY1NTM3IGJhanRhY2gsIHdzenlzdGtpY2ggcsOzd255Y2ggMHgwMCwKK3ogd3lqxIV0a2llbSBvc3RhdG5pZWdvLCBrdMOzcnkgbWEgYnnEhyAnQScgKGhleCAweDQxKS4KKy5icgorXGZJJSBlY2hvICcwMTAwMDA6IDQxJyB8IHh4ZCBcLXIgXD4gcGxpa1xmUgorLlBQCisuYnIKK1pyenV0IGhla3Nvd3kgdGVnbyBwbGlrdSB6IGF1dG9za2lwZW0uCisuYnIKK1xmSSUgeHhkIFwtYSBcLWMgMTIgcGxpa1xmUgorLmJyCiswMDAwMDAwOiAwMDAwIDAwMDAgMDAwMCAwMDAwIDAwMDAgMDAwMCAgLi4uLi4uLi4uLi4uCisuYnIKKyoKKy5icgorMDAwZmZmYzogMDAwMCAwMDAwIDQwICAgICAgICAgICAgICAgICAgIC4uLi5BCisuUFAKK1V0d8OzcnogamVkbm8gYmFqdG93eSBwbGlrIHphd2llcmFqxIVjeSBwb2plZG5jesSFIGxpdGVyxJkgJ0EnLgorTGljemJhIHBvICdcLXIgXC1zJyBkb2RhamUgbnVtZXJ5IGxpbmlpIHpuYWxlemlvbmUgdyBwbGlrdTsKK3cgZWZla2NpZSBwb3ByemVkemFqxIVjZSBiYWp0eSBzxIUgdWtyeXRlLgorLmJyCitcZkklIGVjaG8gJzAxMDAwMDogNDEnIHwgeHhkIFwtciBcLXMgXC0weDEwMDAwIFw+IHBsaWtcZlIKKy5QUAorVcW8eWogeHhkIGpha28gZmlsdHJhIHdld27EhXRyeiBlZHl0b3JhIHRha2llZ28gamFrCisuQiB2aW0oMSkKK2FieSB1enlza2HEhyB6cnp1dCBoZWtzb3d5IHpha3Jlc3UgbWnEmWR6eSBtYXJrZXJhbWkgYGEnIGkgYHonLgorLmJyCitcZkk6J2EsJ3oheHhkXGZSCisuUFAKK1XFvHlqIHh4ZCBqYWtvIGZpbHRyYSB3ZXduxIV0cnogZWR5dG9yYSB0YWtpZWdvIGphaworLkIgdmltKDEpCitieSBvZHp5c2thxIcgYmluYXJueSB6cnp1dCBoZWtzb3d5IHpha3Jlc3UgcG9tacSZZHp5IG1hcmtlcmFtaSBgYScKK2kgYHonLgorLmJyCitcZkk6J2EsJ3oheHhkIFwtclxmUgorLlBQCitVxbx5aiB4eGQgamFrbyBmaWx0cmEgd2V3bsSFdHJ6IGVkeXRvcmEgdGFraWVnbyBqYWsKKy5CIHZpbSgxKQorYnkgb2R6eXNrYcSHIGplZG7EhSBsaW5pxJkgenJ6dXR1IGhla3Nvd2Vnby4gUHJ6ZWpkxbogeiBrdXJzb3JlbSBuYSBsaW5pxJkKK2kgd3Bpc3o6CisuYnIKK1xmSSEheHhkIFwtclxmUgorLlBQCitPZGN6eXRhaiBwb2plZG55Y3plIHpuYWtpIHogcG9ydHUgc3plcmVnb3dlZ28KKy5icgorXGZJJSB4eGQgXC1jMSA8IC9kZXYvdGVybS9iICZcZlIKKy5icgorXGZJJSBzdHR5IDwgL2Rldi90ZXJtL2IgXC1lY2hvIFwtb3Bvc3QgXC1pc2lnIFwtaWNhbm9uIG1pbiAxXGZSCisuYnIKK1xmSSUgZWNobyBcLW4gZm9vID4gL2Rldi90ZXJtL2JcZlIKKy5QUAorLlNIICJaV1JBQ0FORSBXQVJUT8WaQ0kiCitad3JhY2FuZSBzxIUgbmFzdMSZcHVqxIVjZSB3YXJ0b8WbY2kgYsWCxJlkw7N3OgorLlRQCiswCituaWUgem5hbGV6aW9ubyBixYLEmWTDs3cuCisuVFAKK1wtMQorb3BlcmFjamEgbmllIGplc3Qgd3NwaWVyYW5hICgKKy5JIHh4ZCBcLXIgXC1pCitjYcWCeSBjemFzIG5pZW1vxbxsaXdhKS4KKy5UUAorMQorYsWCxIVkIHcgY3phc2llIGFuYWxpem93YW5pYSBvcGNqaS4KKy5UUAorMgorcHJvYmxlbXkgeiBwbGlraWVtIHdlasWbY2lvd3ltLgorLlRQCiszCitwcm9ibGVteSB6IHBsaWtpZW0gd3lqxZtjaW93eW0uCisuVFAKKzQsNQorxbzEhWRhbmEgcG96eWNqYSBqZXN0IG5pZW9zacSFZ2FsbmEuCisuU0ggIlpPQkFDWiBUQUvFu0UiCit1dWVuY29kZSgxKSwgdXVkZWNvZGUoMSksIHBhdGNoKDEpCisuYnIKKy5TSCBPU1RSWkXFu0VOSUEKK0R6aXdhY3pub8WbxIcgbmFyesSZZHppIGRvcsOzd251amUgZHppd2Fjem5vxZtjaSBtw7N6Z3UgdHfDs3JjeS4KK1XFvHl3YWogd3nFgsSFY3puaWUgbmEgd8WCYXNuxIUgb2Rwb3dpZWR6aWFsbm/Fm8SHLiBLb3BpdWogcGxpa2kuIEFuYWxpenVqCitqZS4gU3RhxYQgc2nEmSBjemFyb2R6aWVqZW0uCisuYnIKKy5TSCBXRVJTSkEKK1N0cm9uYSBwb2RyxJljem5pa2Egb3Bpc3VqZSB4eGQgdyB3ZXJzamkgMS43CisuU0ggQVVUT1IKKy5icgorKGMpIDE5OTAtMTk5NyBieSBKdWVyZ2VuIFdlaWdlcnQKKy5icgorPGpud2VpZ2VyQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorLkxQCitLb3BpdWogZG8gd29saSBpIHBvZGFqIG1vamUgZGFuZSwKKy5icgoremFyYWJpYWogcGllbmnEhWR6ZSBpIGR6aWVsIHNpxJkgemUgbW7EhSwKKy5icgordHJhxIcgcGllbmnEhWR6ZSBpIG5pZSBtaWVqIGRvIG1uaWUgcHJldGVuc2ppLgorLlBQCitTdHJvbmEgcG9kcsSZY3puaWthIHphcG9jesSFdGtvd2FuYSBwcnpleiBUb255J2VnbyBOdWdlbnRhCisuYnIKKzx0b255QHNjdG51Z2VuLnBwcC5ndS5lZHUuYXU+IDxULk51Z2VudEBzY3QuZ3UuZWR1LmF1PgorLmJyCitNYcWCZSB6bWlhbnk6IEJyYW0gTW9vbGVuYWFyLgorUmVkYWtjamE6IEp1ZXJnZW4gV2VpZ2VydC4KKy5QUApkaWZmIC0tZ2l0IGEvcnVudGltZS9maWxldHlwZS52aW0gYi9ydW50aW1lL2ZpbGV0eXBlLnZpbQppbmRleCA5YTRiOGNmLi4yM2IxNjkwIDEwMDY0NAotLS0gYS9ydW50aW1lL2ZpbGV0eXBlLnZpbQorKysgYi9ydW50aW1lL2ZpbGV0eXBlLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN1cHBvcnQgZmlsZSB0byBkZXRlY3QgZmlsZSB0eXBlcwogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNiBNYXIgMjUKKyIgTGFzdCBDaGFuZ2U6CTIwMDYgTWFyIDI2CiAKICIgTGlzdGVuIHZlcnkgY2FyZWZ1bGx5LCBJIHdpbGwgc2F5IHRoaXMgb25seSBvbmNlCiBpZiBleGlzdHMoImRpZF9sb2FkX2ZpbGV0eXBlcyIpCkBAIC0xOTUsNyArMTk1LDcgQEAKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmF0bCwqLmFzCQlzZXRmIGF0bGFzCiAKICIgQXV0b21ha2UKLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCBbbU1dYWtlZmlsZS5hbQkJc2V0ZiBhdXRvbWFrZQorYXUgQnVmTmV3RmlsZSxCdWZSZWFkIFttTV1ha2VmaWxlLmFtLEdOVW1ha2VmaWxlLmFtCXNldGYgYXV0b21ha2UKIAogIiBBdXRvdGVzdCAuYXQgZmlsZXMgYXJlIGFjdHVhbGx5IG00CiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5hdAkJCXNldGYgbTQKQEAgLTM0MCw5ICszNDAsMjAgQEAKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmNvbgkJCXNldGYgY3Rlcm0KIAogIiBDaGFuZ2Vsb2cKLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCBjaGFuZ2Vsb2cuRGViaWFuLGNoYW5nZWxvZy5kY2ggc2V0ZiBkZWJjaGFuZ2Vsb2cKLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCBbY0NdaGFuZ2VbbExdb2cJCWlmIGdldGxpbmUoMSkgPX4gJzsgdXJnZW5jeT0nCi0JXHwgc2V0ZiBkZWJjaGFuZ2Vsb2cgfCBlbHNlIHwgc2V0ZiBjaGFuZ2Vsb2cgfCBlbmRpZgorYXUgQnVmTmV3RmlsZSxCdWZSZWFkIGNoYW5nZWxvZy5EZWJpYW4sY2hhbmdlbG9nLmRjaCxORVdTLkRlYmlhbixORVdTLmRjaAorCQkJCQlcCXNldGYgZGViY2hhbmdlbG9nCisKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCBbY0NdaGFuZ2VbbExdb2cKKwlcICBpZiBnZXRsaW5lKDEpID1+ICc7IHVyZ2VuY3k9JworCVx8ICAgc2V0ZiBkZWJjaGFuZ2Vsb2cKKwlcfCBlbHNlCisJXHwgICBzZXRmIGNoYW5nZWxvZworCVx8IGVuZGlmCisKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCBORVdTCisJXCAgaWYgZ2V0bGluZSgxKSA9fiAnOyB1cmdlbmN5PScKKwlcfCAgIHNldGYgZGViY2hhbmdlbG9nCisJXHwgZW5kaWYKIAogIiBDSElMTAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouLmNoCQkJc2V0ZiBjaGlsbApAQCAtNDE3LDcgKzQyOCwxNCBAQAogCVwgZW5kaWYKIAogIiBDb2JvbAotYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouY2JsLCouY29iLCouY3B5LCoubGliCXNldGYgY29ib2wKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmNibCwqLmNvYiwqLmxpYglzZXRmIGNvYm9sCisiICAgY29ib2wgb3Igem9wZSBmb3JtIGNvbnRyb2xsZXIgcHl0aG9uIHNjcmlwdD8gKGhldXJpc3RpYykKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmNweQorCVwgaWYgZ2V0bGluZSgxKSA9fiAnXiMjJyB8CisJXCAgIHNldGYgcHl0aG9uIHwKKwlcIGVsc2UgfAorCVwgICBzZXRmIGNvYm9sIHwKKwlcIGVuZGlmCiAKICIgQ29sZCBGdXNpb24KIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmNmbSwqLmNmaSwqLmNmYwkJc2V0ZiBjZgpAQCAtODQzLDYgKzg2MSw5IEBACiAiIE1haWwgKGZvciBFbG0sIHRybiwgbXV0dCwgcm4sIHNscm4pCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgc25kLlxkXCssLmxldHRlciwubGV0dGVyLlxkXCssLmZvbGxvd3VwLC5hcnRpY2xlLC5hcnRpY2xlLlxkXCsscGljby5cZFwrLG11dHR7bmcsfS0qLVx3XCssbXV0dFx3XHs2XH0sYWVcZFwrLnR4dCwvdG1wL1NMUk5bMC05QS1aLl1cKywqLmVtbCBzZXRmIG1haWwKIAorIiBNYWlsIGFsaWFzZXMKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAvZXRjL21haWwvYWxpYXNlcywvZXRjL2FsaWFzZXMJc2V0ZiBtYWlsYWxpYXNlcworCiAiIE1haWxjYXAgY29uZmlndXJhdGlvbiBmaWxlCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgLm1haWxjYXAsbWFpbGNhcAkJc2V0ZiBtYWlsY2FwCiAKQEAgLTEzODQsNyArMTQwNSw3IEBACiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5zYQkJCXNldGYgc2F0aGVyCiAKICIgU2NpbGFiCi1hdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5zY2kJCQlzZXRmIHNjaWxhYgorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouc2NpLCouc2NlCQlzZXRmIHNjaWxhYgogCiAiIFNETAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouc2RsLCoucHIJCXNldGYgc2RsCkBAIC0xOTMwLDYgKzE5NTEsMTMgQEAKICIgWWFtbAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoueWFtbCwqLnltbAkJc2V0ZiB5YW1sCiAKKyIgWm9wZQorIiAgIGR0bWwgKHpvcGUgZHluYW1pYyB0ZW1wbGF0ZSBtYXJrdXAgbGFuZ3VhZ2UpLCBwdCAoem9wZSBwYWdlIHRlbXBsYXRlKSwKKyIgICBjcHQgKHpvcGUgZm9ybSBjb250cm9sbGVyIHBhZ2UgdGVtcGxhdGUpCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5kdG1sLCoucHQsKi5jcHQJCWNhbGwgPFNJRD5GVENoZWNrX2h0bWwoKQorIiAgIHpzcWwgKHpvcGUgc3FsIG1ldGhvZCkKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnpzcWwJCQljYWxsIHM6U1FMKCkKKwogIiBaODAgYXNzZW1ibGVyIGFzejgwCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi56OGEJCQlzZXRmIHo4YQogCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9jb25maWcudmltIGIvcnVudGltZS9pbmRlbnQvY29uZmlnLnZpbQppbmRleCBjYjIwMjNkLi5jNmM1NGIyIDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9jb25maWcudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2NvbmZpZy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBpbmRlbnQgZmlsZQogIiBMYW5ndWFnZTogICAgICAgICBBdXRvY29uZiBjb25maWd1cmUue2FjLGlufSBmaWxlCiAiIE1haW50YWluZXI6ICAgICAgIE5pa29sYWkgV2VpYnVsbCA8bmlrb2xhaSt3b3JrLnZpbUBiaXR3aS5zZT4KLSIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNS0wNi0zMAorIiBMYXRlc3QgUmV2aXNpb246ICAyMDA2LTAyLTExCiAiIFRPRE86ICAgICAgICAgICAgIGhvdyBhYm91dCBuZXN0ZWQgWygpXSdzIGluIG9uZSBsaW5lCiAiICAgICAgICAgICAgICAgICAgIHdoYXQncyB3cm9uZyB3aXRoICdcXFxAISc/CiAKQEAgLTYzLDcgKzYzLDcgQEAKIAogICAiIGlmIHByZXZpb3VzIGxpbmUgaGFkIGFuIHVubWF0Y2hlZCBjbG9zaW5nIHBhcmFudGhlc2VzLAogICAiIGluZGVudCB0byB0aGUgbWF0Y2hpbmcgb3BlbmluZyBwYXJhbnRoZXNlcwotICBpZiBsaW5lID1+ICdbXihdKlxcXEA8ISkkJworICBpZiBsaW5lID1+ICdbXihdXCtcXFxAPCEpJCcKICAgICBjYWxsIHNlYXJjaCgnKScsICdiVycpCiAgICAgbGV0IGxudW0gPSBzZWFyY2hwYWlyKCdcXFxAPCEoJywgJycsICcpJywgJ2JXbicpCiAgICAgbGV0IGluZCA9IGluZGVudChsbnVtKQpAQCAtNzEsNyArNzEsNyBAQAogCiAgICIgaWYgcHJldmlvdXMgbGluZSBoYWQgYW4gdW5tYXRjaGVkIGNsb3NpbmcgYnJhY2tldCwKICAgIiBpbmRlbnQgdG8gdGhlIG1hdGNoaW5nIG9wZW5pbmcgYnJhY2tldAotICBpZiBsaW5lID1+ICdbXltdKl0kJworICBpZiBsaW5lID1+ICdbXltdXCtdJCcKICAgICBjYWxsIHNlYXJjaCgnXScsICdiVycpCiAgICAgbGV0IGxudW0gPSBzZWFyY2hwYWlyKCdcWycsICcnLCAnXScsICdiV24nKQogICAgIGxldCBpbmQgPSBpbmRlbnQobG51bSkKQEAgLTc5LDUgKzc5LDMgQEAKIAogICByZXR1cm4gaW5kCiBlbmRmdW5jdGlvbgotCi0iIHZpbTogc2V0IHN0cz0yIHN3PTI6CmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9weXRob24udmltIGIvcnVudGltZS9pbmRlbnQvcHl0aG9uLnZpbQppbmRleCAzOGVmMWQyLi4zYjU2MGE4IDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9weXRob24udmltCisrKyBiL3J1bnRpbWUvaW5kZW50L3B5dGhvbi52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOgkJUHl0aG9uCiAiIE1haW50YWluZXI6CQlCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgogIiBPcmlnaW5hbCBBdXRob3I6CURhdmlkIEJ1c3RvcyA8YnVzdG9zQGNhbHRlY2guZWR1PgotIiBMYXN0IENoYW5nZToJCTIwMDUgRmViIDI0CisiIExhc3QgQ2hhbmdlOgkJMjAwNiBNYXIgMjYKIAogIiBPbmx5IGxvYWQgdGhpcyBpbmRlbnQgZmlsZSB3aGVuIG5vIG90aGVyIHdhcyBsb2FkZWQuCiBpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCkBAIC0xMTcsMTAgKzExNyw3IEBACiAJICBsZXQgbWluID0gY29sICsgMQogCWVuZGlmCiAgICAgICBlbmR3aGlsZQotICAgICAgZWNob21zZyBtaW4KICAgICAgIGxldCBwbGluZSA9IHN0cnBhcnQocGxpbmUsIDAsIG1pbiAtIDEpCi0gICAgICBlY2hvbXNnIHBsaW5lICAKLSAgICAgIHNsZWVwIDEKICAgICBlbmRpZgogICBlbHNlCiAgICAgbGV0IGNvbCA9IDAKQEAgLTE1MywxMCArMTUwLDggQEAKICAgaWYgZ2V0bGluZShhOmxudW0pID1+ICdeXHMqXChleGNlcHRcfGZpbmFsbHlcKVw+JwogICAgIGxldCBsbnVtID0gYTpsbnVtIC0gMQogICAgIHdoaWxlIGxudW0gPj0gMQotICAgICAgZWNob21zZyAnZ290IGhlcmUnCiAgICAgICBpZiBnZXRsaW5lKGxudW0pID1+ICdeXHMqXCh0cnlcfGV4Y2VwdFwpXD4nCiAJbGV0IGluZCA9IGluZGVudChsbnVtKQotCWVjaG9tc2cgJ2dvdCBoZXJlLCBpbmRlbnQgaXMgJyAuIGluZAogCWlmIGluZCA+PSBpbmRlbnQoYTpsbnVtKQogCSAgcmV0dXJuIC0xCSIgaW5kZW50IGlzIGFscmVhZHkgbGVzcyB0aGFuIHRoaXMKIAllbmRpZgpAQCAtMTY0LDcgKzE1OSw2IEBACiAgICAgICBlbmRpZgogICAgICAgbGV0IGxudW0gPSBsbnVtIC0gMQogICAgIGVuZHdoaWxlCi0gICAgZWNob21zZyAnZ290IHRvIHRoZSBlbmQnCiAgICAgcmV0dXJuIC0xCQkiIG5vIG1hdGNoaW5nICJ0cnkiIQogICBlbmRpZgogCmRpZmYgLS1naXQgYS9ydW50aW1lL21ha2VtZW51LnZpbSBiL3J1bnRpbWUvbWFrZW1lbnUudmltCmluZGV4IDNjYjk5MGUuLjgwODM0MjIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbWFrZW1lbnUudmltCisrKyBiL3J1bnRpbWUvbWFrZW1lbnUudmltCkBAIC0xLDYgKzEsNiBAQAogIiBTY3JpcHQgdG8gZGVmaW5lIHRoZSBzeW50YXggbWVudSBpbiBzeW5tZW51LnZpbQogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNiBNYXIgMjUKKyIgTGFzdCBDaGFuZ2U6CTIwMDYgTWFyIDI2CiAKICIgVGhpcyBpcyB1c2VkIGJ5ICJtYWtlIG1lbnUiIGluIHRoZSBzcmMgZGlyZWN0b3J5LgogZWRpdCA8c2ZpbGU+OnA6aC9zeW5tZW51LnZpbQpAQCAtMjY3LDYgKzI2Nyw3IEBACiBTeW5NZW51IEwtTWEuTTQ6bTQKIFN5bk1lbnUgTC1NYS5NYUdpY1wgUG9pbnQ6bWdwCiBTeW5NZW51IEwtTWEuTWFpbDptYWlsCitTeW5NZW51IEwtTWEuTWFpbFwgYWxpYXNlczptYWlsYWxpYXNlcwogU3luTWVudSBMLU1hLk1haWxjYXA6bWFpbGNhcAogU3luTWVudSBMLU1hLk1ha2VmaWxlOm1ha2UKIFN5bk1lbnUgTC1NYS5NYWtlSW5kZXg6aXN0CmRpZmYgLS1naXQgYS9ydW50aW1lL3NjcmlwdHMudmltIGIvcnVudGltZS9zY3JpcHRzLnZpbQppbmRleCAxZjgyYWJkLi45Mzg4NDgxIDEwMDY0NAotLS0gYS9ydW50aW1lL3NjcmlwdHMudmltCisrKyBiL3J1bnRpbWUvc2NyaXB0cy52aW0KQEAgLTE4NCwxMCArMTg0LDEyIEBACiAgICAgIiAtICIqKiogIiBpbiBmaXJzdCBsaW5lIGFuZCAiLS0tICIgaW4gc2Vjb25kIGxpbmUgKGNvbnRleHQgZGlmZikuCiAgICAgIiAtICIjIEl0IHdhcyBnZW5lcmF0ZWQgYnkgbWFrZXBhdGNoICIgaW4gdGhlIHNlY29uZCBsaW5lIChtYWtlcGF0Y2ggZGlmZikuCiAgICAgIiAtICJJbmRleDogPGZpbGVuYW1lPiIgaW4gdGhlIGZpcnN0IGxpbmUgKENWUyBmaWxlKQorICAgICIgLSAiPT09ICIsIGxpbmUgb2YgIj0iLCAiLS0tIiwgIisrKyAiIChTVksgZGlmZikKICAgZWxzZWlmIHM6bGluZTEgPX4gJ15cKGRpZmZcPlx8T25seSBpbiBcfFxkXCtcKCxcZFwrXClcPVtjZGFdXGRcK1w+XHwjIEl0IHdhcyBnZW5lcmF0ZWQgYnkgbWFrZXBhdGNoIFx8SW5kZXg6XHNcK1xmXCtcclw9JFx8PT09PT0gXGZcKyBcZFwrXC5cZFwrIHZzIGVkaXRlZFx8PT09PSAvL1xmXCsjXGRcK1wpJwogCVwgfHwgKHM6bGluZTEgPX4gJ14tLS0gJyAmJiBzOmxpbmUyID1+ICdeKysrICcpCiAJXCB8fCAoczpsaW5lMSA9fiAnXlwqIGxvb2tpbmcgZm9yICcgJiYgczpsaW5lMiA9fiAnXlwqIGNvbXBhcmluZyB0byAnKQogCVwgfHwgKHM6bGluZTEgPX4gJ15cKlwqXCogJyAmJiBzOmxpbmUyID1+ICdeLS0tICcpCisJXCB8fCAoczpsaW5lMSA9fiAnXj09PSAnICYmIHM6bGluZTIgPX4gJ149XHs2Nlx9JyAmJiBzOmxpbmUzID1+ICdeLS0tICcgJiYgczpsaW5lNCA9fiAnXisrKycpCiAgICAgc2V0IGZ0PWRpZmYKIAogICAgICIgUG9zdFNjcmlwdCBGaWxlcyAobXVzdCBoYXZlICUhUFMgYXMgdGhlIGZpcnN0IGxpbmUsIGxpa2UgYTJwcyBvdXRwdXQpCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2h1L2h1X0hVLmRpZmYgYi9ydW50aW1lL3NwZWxsL2h1L2h1X0hVLmRpZmYKaW5kZXggMmI5YTZkZC4uYzk3N2UxOCAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9odS9odV9IVS5kaWZmCisrKyBiL3J1bnRpbWUvc3BlbGwvaHUvaHVfSFUuZGlmZgpAQCAtMSw5NCArMSwxMzUgQEAKLSoqKiBodV9IVS5vcmlnLmFmZglUdWUgQXVnIDE2IDE4OjIxOjEwIDIwMDUKLS0tLSBodV9IVS5hZmYJRnJpIEF1ZyAxOSAyMToyODo0NSAyMDA1CisqKiogaHVfSFUub3JpZy5hZmYJU3VuIE1hciAyNiAxNTowNToxMyAyMDA2CistLS0gaHVfSFUuYWZmCVN1biBNYXIgMjYgMjE6MTc6MDggMjAwNgogKioqKioqKioqKioqKioqCi0qKiogNTcsNjIgKioqKgotICAKLSEgTkFNRSBNYWd5YXIgSXNwZWxsIGhlbHllc+1y4XNpIHN683ThcgorKioqIDU3LDU5ICoqKioKKyAgTkFNRSBNYWd5YXIgSXNwZWxsIGhlbHllc+1y4XNpIHN683ThcgogISBMQU5HIGh1X0hVCi0hIEhPTUUgaHR0cDovL21hZ3lhcmlzcGVsbC5zb3VyY2Vmb3JnZS5uZXQKLSEgVkVSU0lPTiBNYWd5YXIgMC45OS40LjIKLSAgU0VUIElTTzg4NTktMgotLS0tIDU3LDYyIC0tLS0KLSAgCi0hICNOQU1FIE1hZ3lhciBJc3BlbGwgaGVseWVz7XLhc2kgc3rzdOFyCisgIEhPTUUgaHR0cDovL21hZ3lhcmlzcGVsbC5zb3VyY2Vmb3JnZS5uZXQKKy0tLSA1Nyw1OSAtLS0tCisgIE5BTUUgTWFneWFyIElzcGVsbCBoZWx5ZXPtcuFzaSBzevN04XIKICEgI0xBTkcgaHVfSFUKLSEgI0hPTUUgaHR0cDovL21hZ3lhcmlzcGVsbC5zb3VyY2Vmb3JnZS5uZXQKLSEgI1ZFUlNJT04gTWFneWFyIDAuOTkuNC4yCi0gIFNFVCBJU084ODU5LTIKKyAgSE9NRSBodHRwOi8vbWFneWFyaXNwZWxsLnNvdXJjZWZvcmdlLm5ldAogKioqKioqKioqKioqKioqCi0qKiogNjQsNzcgKioqKgotICBDT01QT1VORE1JTiAyCi0hIENPTVBPVU5ERkxBRyBZCi0hIENPTVBPVU5EV09SRCAyIHkKKyoqKiA2Miw2MyAqKioqCistLS0gNjIsNjggLS0tLQorICBUUlkg7fP6zdPadGFlc2x64W5vcmhna2npZG159XB29mJ1Y2Zq/Pt4d3FUQUVTTFrBTk9SSEdLSclETVnVUFbWQlVDRkrc21hXUS0uCisrIAorKyAjIFRoZXJlIGFyZSBzb29vbyBtYW55IGFmZml4ZXMuICBQb3N0cG9uZSB0aGUgcHJlZml4ZXMgdG8ga2VlcCB0aGUgdGltZSBuZWVkZWQKKysgIyBmb3IgZ2VuZXJhdGluZyB0aGUgLnNwbCB3aXRoaW4gcmVhc29uYWJsZSBsaW1pdHMuCisrIFBGWFBPU1RQT05FCisrIAorICBDT01QT1VORE1JTiAxCisqKioqKioqKioqKioqKioKKyoqKiA2Niw2OSAqKioqCisgIENPTVBPVU5EUEVSTUlURkxBRyBACiAhIENPTVBPVU5EU1lMTEFCTEUgNiBh4WXpae1v8/b1dfr8+wogISBTWUxMQUJMRU5VTSBrbG1jCi0hIENPTVBPVU5ERklSU1QgdgotISBDT01QT1VORExBU1QgeAotISBGT1JCSURERU5XT1JEIHcKLSEgT05MWVJPT1QgdQotISBBQ0NFTlQg4ent8/b1+vz7IGFlaW9vb3V1dQotISBDSEVDS05VTQotISBXT1JEQ0hBUlMgLS6nJbAwMTIzNDU2Nzg5Ci0hIEhVX0tPVE9IQU5HWk8gWgogICAKLS0tLSA2NCwxMTYgLS0tLQotICBDT01QT1VORE1JTiAyCi0hICNDT01QT1VORFdPUkQgMiB5Ci0hIENPTVBPVU5ETUFYIDIKLSEgIyBJIGRvbid0IHVuZGVyc3RhbmQgd2hhdCB0aGUgInkiIGlzIGZvcjsgaWYgaXQncyB0byBkaXNhYmxlIGNvbXBvdW5kaW5nIHNpbXBseQotISAjIHJlbW92ZSB0aGUgY29tcG91bmQgZmxhZyBmcm9tIHRoZSB3b3JkLgotISAKKy0tLSA3MSw4MSAtLS0tCisgIENPTVBPVU5EUEVSTUlURkxBRyBACishICMKKyEgIyBTdHJhbmdlIHRoYXQgZXZlcnkgdm93ZWwgaXMgY291bnRlZCBhcyBhIHN5bGxhYmxlLCB0aGF0J3MgaG93IHRoZSBodW5zcGVsbAorISAjIGNvZGUgd29ya3MuCiAhICNDT01QT1VORFNZTExBQkxFIDYgYeFl6Wntb/P29XX6/PsKICEgQ09NUE9VTkRTWUxNQVggNgogISBTWUxMQUJMRSBhL+EvZS/pL2kv7S9vL/Mv9i/1L3Uv+i/8L/sKLSEgIyBTdHJhbmdlIHRoYXQgZXZlcnkgdm93ZWwgaXMgY291bnRlZCBhcyBhIHN5bGxhYmxlLCB0aGF0J3MgaG93IHRoZSBodW5zcGVsbAotISAjIGNvZGUgd29ya3MuCiAhIAorISAjIHRoZSBlZmZlY3Qgb2YgU1lMTEFCTEVOVU0gaXMgbm90IGRvY3VtZW50ZWQKICEgI1NZTExBQkxFTlVNIGtsbWMKLSEgIyBEb24ndCB1bmRlcnN0YW5kIHdoYXQgdGhpcyBpcyBmb3IKLSEgCi0hICNDT01QT1VOREZMQUcgWQorICAKKyoqKioqKioqKioqKioqKgorKioqIDc0LDg4ICoqKioKKyAgCishICMgb2Jzb2xvdGVkCishIENPTVBPVU5ERklSU1QgdgorISBDT01QT1VORExBU1QgeAorISBPTkxZUk9PVCB1CisgICNDT01QT1VORFdPUkQgMiB5CishIEhVX0tPVE9IQU5HWk8gPworICAKKyAgIyBuZXcgKD4gSHVuc3BlbGwtMS4wLVJDMikKKyEgQ09NUE9VTkRCRUdJTiB2CishIENPTVBPVU5ERU5EIHgKKyEgUFNFVURPUk9PVCB1CisgICMgMi4gcGFyYW1ldGVyIG9ubHkgZm9yIGJhY2sgY29tcGF0aWJpbGl0eToKKyEgQ09NUE9VTkRXT1JETUFYIDIgeQorICBDT01QT1VORFJPT1QgeQorLS0tIDg2LDExMCAtLS0tCisgIAorISAjIG9ic29sZXRlCiAhICNDT01QT1VOREZJUlNUIHYKICEgI0NPTVBPVU5ETEFTVCB4Ci0hIENPTVBPVU5ERkxBR1MgWSsKLSEgQ09NUE9VTkRGTEFHUyB2WSp4Ci0hIENPTVBPVU5ERkxBR1MgWSt4Ci0hIENPTVBPVU5ERkxBR1MgdlkrCi0hIAotISAjRk9SQklEREVOV09SRCB3Ci0hICMgIEkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IEZPUkJJRERFTldPUkQgaXMgbmVlZGVkIGZvciwgdXNpbmcgTkVFREFGRklYCi0hICMgIChPTkxZUk9PVCkgc2hvdWxkIGJlIHN1ZmZpY2llbnQuCi0hIAogISAjT05MWVJPT1QgdQorISAKKyAgI0NPTVBPVU5EV09SRCAyIHkKKyEgCishICMgVW5kb2N1bWVudGVkIGFuZCA/IGlzIGFscmVhZHkgdXNlZCBmb3IgS0VFUENBU0UKKyEgI0hVX0tPVE9IQU5HWk8gPworICAKKyAgIyBuZXcgKD4gSHVuc3BlbGwtMS4wLVJDMikKKyEgI0NPTVBPVU5EQkVHSU4gdgorISAjQ09NUE9VTkRFTkQgeAorISBDT01QT1VORFJVTEUgdngKKyEgCishICMgUFNFVURPUk9PVCB3YXMgcmVuYW1lZCB0byBORUVEQUZGSVgKKyEgI1BTRVVET1JPT1QgdQogISBORUVEQUZGSVggdQogISAKLSEgI0FDQ0VOVCDh6e3z9vX6/PsgYWVpb29vdXV1CisgICMgMi4gcGFyYW1ldGVyIG9ubHkgZm9yIGJhY2sgY29tcGF0aWJpbGl0eToKKyEgIyBXaGF0IGlzIHRoZSBleHRyYSAieSIgZm9yPworISAjQ09NUE9VTkRXT1JETUFYIDIgeQorISBDT01QT1VORFdPUkRNQVggMgorICBDT01QT1VORFJPT1QgeQorKioqKioqKioqKioqKioqCisqKiogOTMsOTQgKioqKgorLS0tIDExNSwxMTcgLS0tLQorICBDSEVDS0NPTVBPVU5EQ0FTRQorKyAKKyAgQ0hFQ0tDT01QT1VORFBBVFRFUk4gNworKioqKioqKioqKioqKioqCisqKiogMTAyLDExMSAqKioqCisgIAorISBGT1JCSURERU5XT1JEIHcKKyEgV09SRENIQVJTIC0uwqclwrAwMTIzNDU2Nzg54oCTCishIAorICAKKyEgTk9UX0dFTkVSQVRFICYKKyEgR0VORVJBVEUgKAorICAKKyEgTEVNTUFfUFJFU0VOVCApCisgIAorLS0tIDEyNSwxNTEgLS0tLQorICAKKyEgI0ZPUkJJRERFTldPUkQgdworISBCQUQgdworICAKKyEgI1dPUkRDSEFSUyAtLsKnJcKwMDEyMzQ1Njc4OeKAkworICAKKyEgIyBMaXN0IHRoZSB3b3JkIGNoYXJhY3RlcnMgZm9yIElTTy04ODU5LTIuCishIEZPTCCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/y2nJbAKKyEgTE9XILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//LaclsAorISBVUFAgoaKjpaaoqaqrrK6vsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e3/8tpyWwCishIE1JRFdPUkQgLgorISAKKyEgIyBUaGVzZSBhcmUgbm90IGRvY3VtZW50ZWQgYW5kIG5vdCBpbiB0aGUgc291cmNlIGNvZGUgZWl0aGVyCishICNOT1RfR0VORVJBVEUgJgorISAjR0VORVJBVEUgKAorISAKKyEgIyBPbmx5IGZvciBtb3JwaG9sb2dpY2FsIGFuYWx5c2lzCishICNMRU1NQV9QUkVTRU5UICkKKyEgCishICMgVGhpcyB3b3JrcyBiZXR0ZXIgdGhhbiBSRVAgaXRlbXMKICEgTUFQIDUKICEgTUFQIGHh5AogISBNQVAgZekKICEgTUFQIGntCiAhIE1BUCBv8/b1CiAhIE1BUCB1+vz7Ci0hIAotISAjQ0hFQ0tOVU0KLSEgIyBWaW0gYWx3YXlzIGhhbmRsZXMgbnVtYmVycyBpbiB0aGUgc2FtZSB3YXkuCi0hIAotISAjV09SRENIQVJTIC0upyWwMDEyMzQ1Njc4OQotISBGT0wgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8tpyWwCi0hIExPVyCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/y2nJbAKLSEgVVBQIKGio6WmqKmqq6yur7Gys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//LaclsAotISBNSURXT1JEIC4KLSEgCi0hICNIVV9LT1RPSEFOR1pPIFoKLSEgCi0hICMgVGhlcmUgYXJlIHNvb29vIG1hbnkgYWZmaXhlcy4gIFBvc3Rwb25lIHRoZSBwcmVmaXhlcyB0byBrZWVwIHRoZSB0aW1lIG5lZWRlZAotISAjIGZvciBnZW5lcmF0aW5nIHRoZSAuc3BsIHdpdGhpbiByZWFzb25hYmxlIGxpbWl0cy4KLSEgUEZYUE9TVFBPTkUKICAgCiAqKioqKioqKioqKioqKioKLSoqKiA4MSw5NiAqKioqCisqKiogMTE1LDEzMCAqKioqCiAgIAotISBSRVAgODkKKyEgUkVQIDkyCiAhIFJFUCDtIGkKICEgUkVQIGkg7QogISBSRVAg8yBvCkBAIC0xMDMsODggKzE0NCwxNjggQEAKICAgUkVQIGx5IGoKIC0gUkVQIGEg5CAjIEhhbmRlbC0+SORuZGVsCiAgIFJFUCBTIKkgIyBTa29kYS0+qWtvZGEKLS0tLSAxMjAsMTI0IC0tLS0KKy0tLSAxNTUsMTU5IC0tLS0KICAgCi0hIFJFUCA3OAorISBSRVAgODEKICAgUkVQIGogbHkKICAgUkVQIGx5IGoKICAgUkVQIFMgqSAjIFNrb2RhLT6pa29kYQogKioqKioqKioqKioqKioqCi0qKiogMTczLDI0MSAqKioqCisqKiogMjE0LDI1MSAqKioqCiAgIAotLSAjIGNoYXJhY3RlciBjb252ZXJzaW9uIHRhYmxlCi0tICMgKEhUTUwgbGF0aW4tMSBlbnRpdGllcyAtPiBsYXRpbi0yKQotLSAjIG5vdCBpbXBsZW1lbnRlZCB5ZXQKLS0gCi0tIENIUiBIVE1MIDM1Ci0tIENIUiBIVE1MICZjdXJyZW47IKQKLS0gQ0hSIEhUTUwgJmRlZzsgsAotLSBDSFIgSFRNTCAmYWN1dGU7ILQKLS0gQ0hSIEhUTUwgJmNlZGlsOyC4Ci0tIENIUiBIVE1MICZBYWN1dGU7IMEKLS0gQ0hSIEhUTUwgJkFjaXJjOyDCCi0tIENIUiBIVE1MICZBdW1sOyDECi0tIENIUiBIVE1MICZDY2VkaWw7IMcKLS0gQ0hSIEhUTUwgJkVhY3V0ZTsgyQotLSBDSFIgSFRNTCAmRXVtbDsgywotLSBDSFIgSFRNTCAmSWFjdXRlOyDNCi0tIENIUiBIVE1MICZJY2lyYzsgzgotLSBDSFIgSFRNTCAmT2FjdXRlOyDTCi0tIENIUiBIVE1MICZPY2lyYzsg1AotLSBDSFIgSFRNTCAmT3VtbDsg1gotLSBDSFIgSFRNTCAmdGltZXM7INcKLS0gQ0hSIEhUTUwgJlVhY3V0ZTsg2gotLSBDSFIgSFRNTCAmVXVtbDsg3AotLSBDSFIgSFRNTCAmWWFjdXRlOyDdCi0tIENIUiBIVE1MICZzemxpZzsg3wotLSBDSFIgSFRNTCAmYWFjdXRlOyDhCi0tIENIUiBIVE1MICZhY2lyYzsg4gotLSBDSFIgSFRNTCAmYXVtbDsg5AotLSBDSFIgSFRNTCAmY2NlZGlsOyDnCi0tIENIUiBIVE1MICZlYWN1dGU7IOkKLS0gQ0hSIEhUTUwgJmV1bWw7IOsKLS0gQ0hSIEhUTUwgJmlhY3V0ZTsg7QotLSBDSFIgSFRNTCAmaWNpcmM7IO4KLS0gQ0hSIEhUTUwgJm9hY3V0ZTsg8wotLSBDSFIgSFRNTCAmb2NpcmM7IPQKLS0gQ0hSIEhUTUwgJm91bWw7IPYKLS0gQ0hSIEhUTUwgJmRpdmlkZTsg9wotLSBDSFIgSFRNTCAmdWFjdXRlOyD6Ci0tIENIUiBIVE1MICZ1dW1sOyD8Ci0tIENIUiBIVE1MICZ5YWN1dGU7IP0KLS0gCi0tICMgY2hhcmFjdGVyIGNvbnZlcnNpb24gdGFibGUKLS0gIyAoUHLzc3rpa3ktY29kZSAtPiBsYXRpbi0yKQotLSAjIG5vdCBpbXBsZW1lbnRlZCB5ZXQKLS0gCi0tIENIUiAxMjMgMjAKLS0gQ0hSIDEyMyBhMSDhCi0tIENIUiAxMjMgZTEg6QotLSBDSFIgMTIzIGUyIOsKLS0gQ0hSIDEyMyBpMSDtCi0tIENIUiAxMjMgbzEg8wotLSBDSFIgMTIzIG8yIPYKLS0gQ0hSIDEyMyBvMyD1Ci0tIENIUiAxMjMgdTEg+gotLSBDSFIgMTIzIHUyIPwKLS0gQ0hSIDEyMyB1MyD7Ci0tIENIUiAxMjMgQTEgwQotLSBDSFIgMTIzIEUxIMkKLS0gQ0hSIDEyMyBFMiDLCi0tIENIUiAxMjMgSTEgzQotLSBDSFIgMTIzIE8xINMKLS0gQ0hSIDEyMyBPMiDWCi0tIENIUiAxMjMgTzMg1QotLSBDSFIgMTIzIFUxINoKLS0gQ0hSIDEyMyBVMiDcCi0tIENIUiAxMjMgVTMg2wotLSAKLSAgU0ZYIHogWSA2Ci0tLS0gMjAxLDIwMiAtLS0tCishIENIUiBIVE1MIDM1CishIENIUiBIVE1MICZjdXJyZW47IKQKKyEgQ0hSIEhUTUwgJmRlZzsgsAorISBDSFIgSFRNTCAmYWN1dGU7ILQKKyEgQ0hSIEhUTUwgJmNlZGlsOyC4CishIENIUiBIVE1MICZBYWN1dGU7IMEKKyEgQ0hSIEhUTUwgJkFjaXJjOyDCCishIENIUiBIVE1MICZBdW1sOyDECishIENIUiBIVE1MICZDY2VkaWw7IMcKKyEgQ0hSIEhUTUwgJkVhY3V0ZTsgyQorISBDSFIgSFRNTCAmRXVtbDsgyworISBDSFIgSFRNTCAmSWFjdXRlOyDNCishIENIUiBIVE1MICZJY2lyYzsgzgorISBDSFIgSFRNTCAmT2FjdXRlOyDTCishIENIUiBIVE1MICZPY2lyYzsg1AorISBDSFIgSFRNTCAmT3VtbDsg1gorISBDSFIgSFRNTCAmdGltZXM7INcKKyEgQ0hSIEhUTUwgJlVhY3V0ZTsg2gorISBDSFIgSFRNTCAmVXVtbDsg3AorISBDSFIgSFRNTCAmWWFjdXRlOyDdCishIENIUiBIVE1MICZzemxpZzsg3worISBDSFIgSFRNTCAmYWFjdXRlOyDhCishIENIUiBIVE1MICZhY2lyYzsg4gorISBDSFIgSFRNTCAmYXVtbDsg5AorISBDSFIgSFRNTCAmY2NlZGlsOyDnCishIENIUiBIVE1MICZlYWN1dGU7IOkKKyEgQ0hSIEhUTUwgJmV1bWw7IOsKKyEgQ0hSIEhUTUwgJmlhY3V0ZTsg7QorISBDSFIgSFRNTCAmaWNpcmM7IO4KKyEgQ0hSIEhUTUwgJm9hY3V0ZTsg8worISBDSFIgSFRNTCAmb2NpcmM7IPQKKyEgQ0hSIEhUTUwgJm91bWw7IPYKKyEgQ0hSIEhUTUwgJmRpdmlkZTsg9worISBDSFIgSFRNTCAmdWFjdXRlOyD6CishIENIUiBIVE1MICZ1dW1sOyD8CishIENIUiBIVE1MICZ5YWN1dGU7IP0KKyAgCistLS0gMjQzLDI4MCAtLS0tCisgIAorISAjQ0hSIEhUTUwgMzUKKyEgI0NIUiBIVE1MICZjdXJyZW47IKQKKyEgI0NIUiBIVE1MICZkZWc7ILAKKyEgI0NIUiBIVE1MICZhY3V0ZTsgtAorISAjQ0hSIEhUTUwgJmNlZGlsOyC4CishICNDSFIgSFRNTCAmQWFjdXRlOyDBCishICNDSFIgSFRNTCAmQWNpcmM7IMIKKyEgI0NIUiBIVE1MICZBdW1sOyDECishICNDSFIgSFRNTCAmQ2NlZGlsOyDHCishICNDSFIgSFRNTCAmRWFjdXRlOyDJCishICNDSFIgSFRNTCAmRXVtbDsgyworISAjQ0hSIEhUTUwgJklhY3V0ZTsgzQorISAjQ0hSIEhUTUwgJkljaXJjOyDOCishICNDSFIgSFRNTCAmT2FjdXRlOyDTCishICNDSFIgSFRNTCAmT2NpcmM7INQKKyEgI0NIUiBIVE1MICZPdW1sOyDWCishICNDSFIgSFRNTCAmdGltZXM7INcKKyEgI0NIUiBIVE1MICZVYWN1dGU7INoKKyEgI0NIUiBIVE1MICZVdW1sOyDcCishICNDSFIgSFRNTCAmWWFjdXRlOyDdCishICNDSFIgSFRNTCAmc3psaWc7IN8KKyEgI0NIUiBIVE1MICZhYWN1dGU7IOEKKyEgI0NIUiBIVE1MICZhY2lyYzsg4gorISAjQ0hSIEhUTUwgJmF1bWw7IOQKKyEgI0NIUiBIVE1MICZjY2VkaWw7IOcKKyEgI0NIUiBIVE1MICZlYWN1dGU7IOkKKyEgI0NIUiBIVE1MICZldW1sOyDrCishICNDSFIgSFRNTCAmaWFjdXRlOyDtCishICNDSFIgSFRNTCAmaWNpcmM7IO4KKyEgI0NIUiBIVE1MICZvYWN1dGU7IPMKKyEgI0NIUiBIVE1MICZvY2lyYzsg9AorISAjQ0hSIEhUTUwgJm91bWw7IPYKKyEgI0NIUiBIVE1MICZkaXZpZGU7IPcKKyEgI0NIUiBIVE1MICZ1YWN1dGU7IPoKKyEgI0NIUiBIVE1MICZ1dW1sOyD8CishICNDSFIgSFRNTCAmeWFjdXRlOyD9CisgIAogKioqKioqKioqKioqKioqCi0qKiogMTc2NzgsMTc2ODEgKioqKgotICBQRlggRCAgIDAgICAgbGVnICAgICAgICAgIC4KKyoqKiAyNTUsMjc3ICoqKioKKyAgCishIENIUiAxMjMgMjAKKyEgQ0hSIDEyMyBhMSDhCishIENIUiAxMjMgZTEg6QorISBDSFIgMTIzIGUyIOsKKyEgQ0hSIDEyMyBpMSDtCishIENIUiAxMjMgbzEg8worISBDSFIgMTIzIG8yIPYKKyEgQ0hSIDEyMyBvMyD1CishIENIUiAxMjMgdTEg+gorISBDSFIgMTIzIHUyIPwKKyEgQ0hSIDEyMyB1MyD7CishIENIUiAxMjMgQTEgwQorISBDSFIgMTIzIEUxIMkKKyEgQ0hSIDEyMyBFMiDLCishIENIUiAxMjMgSTEgzQorISBDSFIgMTIzIE8xINMKKyEgQ0hSIDEyMyBPMiDWCishIENIUiAxMjMgTzMg1QorISBDSFIgMTIzIFUxINoKKyEgQ0hSIDEyMyBVMiDcCishIENIUiAxMjMgVTMg2worICAKKy0tLSAyODQsMzA2IC0tLS0KKyAgCishICNDSFIgMTIzIDIwCishICNDSFIgMTIzIGExIOEKKyEgI0NIUiAxMjMgZTEg6QorISAjQ0hSIDEyMyBlMiDrCishICNDSFIgMTIzIGkxIO0KKyEgI0NIUiAxMjMgbzEg8worISAjQ0hSIDEyMyBvMiD2CishICNDSFIgMTIzIG8zIPUKKyEgI0NIUiAxMjMgdTEg+gorISAjQ0hSIDEyMyB1MiD8CishICNDSFIgMTIzIHUzIPsKKyEgI0NIUiAxMjMgQTEgwQorISAjQ0hSIDEyMyBFMSDJCishICNDSFIgMTIzIEUyIMsKKyEgI0NIUiAxMjMgSTEgzQorISAjQ0hSIDEyMyBPMSDTCishICNDSFIgMTIzIE8yINYKKyEgI0NIUiAxMjMgTzMg1QorISAjQ0hSIDEyMyBVMSDaCishICNDSFIgMTIzIFUyINwKKyEgI0NIUiAxMjMgVTMg2worICAKKyoqKiBodV9IVS5vcmlnLmRpYwlTdW4gTWFyIDI2IDE1OjA1OjEzIDIwMDYKKy0tLSBodV9IVS5kaWMJU3VuIE1hciAyNiAyMDoxMjoxMyAyMDA2CisqKioqKioqKioqKioqKioKKyoqKiA5NDU5Nyw5NDYwMCAqKioqCisgIDAKKy0gLi4uCistIC4KKyAgLfZ0CistLS0gOTQ1OTcsOTQ1OTggLS0tLQorKioqKioqKioqKioqKioqCisqKiogOTQ2MTYsOTQ2MjIgKioqKgorICAtL0FCQ1VWV0tMTVFSCistICwKKy0gKworLSApCistICgKKy0gJworICAmYXJpbmc7bmdzdHL2bS9XzK9q2E3d1O3os8XlVHRZY7i9bAorLS0tIDk0NjE0LDk0NjE1IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDk0NjM0LDk0NjQyICoqKioKKyAgJS0vS1XS1m1RU3NpKQorLSAlCistICQKKy0gIgorLSAhISEKKy0gISEKKy0gIQorLSAvCiAtIAotLSAgICAxCi0tIAotLS0tIDE3NjM5IC0tLS0KKy0tLSA5NDYyNyAtLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2h1L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9odS9tYWluLmFhcAppbmRleCAzODkwYjFlLi5hYjVjZGI4IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2h1L21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvaHUvbWFpbi5hYXAKQEAgLTIxLDIzICsyMSwzMCBAQAogJFNQRUxMRElSL2h1LmNwMTI1MC5zcGwgOiAkRklMRVMKICAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9Y3AxMjUwIiAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2h1IGh1X0hVIiAtYyBxCiAKLS4uL1JFQURNRV9odS50eHQ6IFJFQURNRV9odV9IVS50eHQKLSAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisuLi9SRUFETUVfaHUudHh0OiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgaHVfSFUuYWZmIC1jICIxLC8jIC0tLS93ISAkdGFyZ2V0IiAtYyBxCiAKICMKLSMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjIEZldGNoIHRoZSB6aXAgZmlsZSBmcm9tIFNvdXJjZUZvcmdlLiAgVmVyc2lvbiBzcGVjaWZpYyBuYW1lLi4uCiAjCi1PT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCi06YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBodV9IVS56aXAKK09PRElSID0gaHR0cDovL2h1bnNwZWxsLnNvdXJjZWZvcmdlLm5ldAoremlwbmFtZSA9IGh1X0hVMi56aXAKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9ICR6aXBuYW1lCiAKICMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KICMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCiAjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LCBzaW5jZSB0aGUgZmlsZSBuYW1lIGluY2x1ZGVzIHRoZSBkYXRlLgogaHVfSFUuYWZmIGh1X0hVLmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCi0gICAgICAgIDpmZXRjaCBodV9IVS56aXAKLSAgICAgICAgOnN5cyAkVU5aSVAgaHVfSFUuemlwCi0gICAgICAgIDpkZWxldGUgaHVfSFUuemlwCisgICAgICAgIDpmZXRjaCAkemlwbmFtZQorICAgICAgICA6c3lzICRVTlpJUCAkemlwbmFtZQorICAgICAgICA6ZGVsZXRlICR6aXBuYW1lCisKKyAgICAgICAgIyBVbmZvcnR1bmF0ZWx5IHRoZSB2ZXJzaW9uIG51bWJlciBpcyBpbiB0aGUgZmlsZSBuYW1lLi4uCisgICAgICAgIDptb3ZlIGh1X0hVMi5kaWMgaHVfSFUuZGljCisgICAgICAgIDptb3ZlIGh1X0hVMi5hZmYgaHVfSFUuYWZmCisgICAgICAgIDpkZWxldGUgaHVfSFUyLmhpc3RvcnkKKwogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdodV9IVS5vcmlnLmFmZicpOgogICAgICAgICAgICAgOmNvcHkgaHVfSFUuYWZmIGh1X0hVLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2h1X0hVLm9yaWcuZGljJyk6CkBAIC01NSwyNyArNjIsNSBAQAogICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGh1X0hVLm9yaWcuZGljIGh1X0hVLmRpYyA+Pmh1X0hVLmRpZmYKIAogCi0jIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQotIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCi0KLWNoZWNrOgotICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKLSAgICAgICAgOmZldGNoIGh1X0hVLnppcAotICAgICAgICA6bWtkaXIgdG1wCi0gICAgICAgIDpjZCB0bXAKLSAgICAgICAgQHRyeToKLSAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vaHVfSFUuemlwCi0gICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9odV9IVS5vcmlnLmFmZiBodV9IVS5hZmYgPmQKLSAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6Ci0gICAgICAgICAgICAgICAgOmNvcHkgaHVfSFUuYWZmIC4uL2h1X0hVLm5ldy5hZmYKLSAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2h1X0hVLm9yaWcuZGljIGh1X0hVLmRpYyA+ZAotICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKLSAgICAgICAgICAgICAgICA6Y29weSBodV9IVS5kaWMgLi4vaHVfSFUubmV3LmRpYwotICAgICAgICBAZmluYWxseToKLSAgICAgICAgICAgIDpjZCAuLgotICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCi0gICAgICAgICAgICA6ZGVsZXRlIGh1X0hVLnppcAotCiAKICMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bm1lbnUudmltIGIvcnVudGltZS9zeW5tZW51LnZpbQppbmRleCAwNWZmMTE4Li43Mzg2NDI2IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bm1lbnUudmltCisrKyBiL3J1bnRpbWUvc3lubWVudS52aW0KQEAgLTI0MiwxNSArMjQyLDE2IEBACiBhbiA1MC42MC4zNTAgJlN5bnRheC5MLU1hLk00IDpjYWwgU2V0U3luKCJtNCIpPENSPgogYW4gNTAuNjAuMzYwICZTeW50YXguTC1NYS5NYUdpY1wgUG9pbnQgOmNhbCBTZXRTeW4oIm1ncCIpPENSPgogYW4gNTAuNjAuMzcwICZTeW50YXguTC1NYS5NYWlsIDpjYWwgU2V0U3luKCJtYWlsIik8Q1I+Ci1hbiA1MC42MC4zODAgJlN5bnRheC5MLU1hLk1haWxjYXAgOmNhbCBTZXRTeW4oIm1haWxjYXAiKTxDUj4KLWFuIDUwLjYwLjM5MCAmU3ludGF4LkwtTWEuTWFrZWZpbGUgOmNhbCBTZXRTeW4oIm1ha2UiKTxDUj4KLWFuIDUwLjYwLjQwMCAmU3ludGF4LkwtTWEuTWFrZUluZGV4IDpjYWwgU2V0U3luKCJpc3QiKTxDUj4KLWFuIDUwLjYwLjQxMCAmU3ludGF4LkwtTWEuTWFuXCBwYWdlIDpjYWwgU2V0U3luKCJtYW4iKTxDUj4KLWFuIDUwLjYwLjQyMCAmU3ludGF4LkwtTWEuTWFuXC5jb25mIDpjYWwgU2V0U3luKCJtYW5jb25mIik8Q1I+Ci1hbiA1MC42MC40MzAgJlN5bnRheC5MLU1hLk1hcGxlXCBWIDpjYWwgU2V0U3luKCJtYXBsZSIpPENSPgotYW4gNTAuNjAuNDQwICZTeW50YXguTC1NYS5NYXNvbiA6Y2FsIFNldFN5bigibWFzb24iKTxDUj4KLWFuIDUwLjYwLjQ1MCAmU3ludGF4LkwtTWEuTWF0aGVtYXRpY2EgOmNhbCBTZXRTeW4oIm1tYSIpPENSPgotYW4gNTAuNjAuNDYwICZTeW50YXguTC1NYS5NYXRsYWIgOmNhbCBTZXRTeW4oIm1hdGxhYiIpPENSPgorYW4gNTAuNjAuMzgwICZTeW50YXguTC1NYS5NYWlsXCBhbGlhc2VzIDpjYWwgU2V0U3luKCJtYWlsYWxpYXNlcyIpPENSPgorYW4gNTAuNjAuMzkwICZTeW50YXguTC1NYS5NYWlsY2FwIDpjYWwgU2V0U3luKCJtYWlsY2FwIik8Q1I+CithbiA1MC42MC40MDAgJlN5bnRheC5MLU1hLk1ha2VmaWxlIDpjYWwgU2V0U3luKCJtYWtlIik8Q1I+CithbiA1MC42MC40MTAgJlN5bnRheC5MLU1hLk1ha2VJbmRleCA6Y2FsIFNldFN5bigiaXN0Iik8Q1I+CithbiA1MC42MC40MjAgJlN5bnRheC5MLU1hLk1hblwgcGFnZSA6Y2FsIFNldFN5bigibWFuIik8Q1I+CithbiA1MC42MC40MzAgJlN5bnRheC5MLU1hLk1hblwuY29uZiA6Y2FsIFNldFN5bigibWFuY29uZiIpPENSPgorYW4gNTAuNjAuNDQwICZTeW50YXguTC1NYS5NYXBsZVwgViA6Y2FsIFNldFN5bigibWFwbGUiKTxDUj4KK2FuIDUwLjYwLjQ1MCAmU3ludGF4LkwtTWEuTWFzb24gOmNhbCBTZXRTeW4oIm1hc29uIik8Q1I+CithbiA1MC42MC40NjAgJlN5bnRheC5MLU1hLk1hdGhlbWF0aWNhIDpjYWwgU2V0U3luKCJtbWEiKTxDUj4KK2FuIDUwLjYwLjQ3MCAmU3ludGF4LkwtTWEuTWF0bGFiIDpjYWwgU2V0U3luKCJtYXRsYWIiKTxDUj4KIGFuIDUwLjcwLjEwMCAmU3ludGF4Lk1lLU5PLk1FTFwgKGZvclwgTWF5YSkgOmNhbCBTZXRTeW4oIm1lbCIpPENSPgogYW4gNTAuNzAuMTEwICZTeW50YXguTWUtTk8uTWV0YWZvbnQgOmNhbCBTZXRTeW4oIm1mIik8Q1I+CiBhbiA1MC43MC4xMjAgJlN5bnRheC5NZS1OTy5NZXRhUG9zdCA6Y2FsIFNldFN5bigibXAiKTxDUj4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2ZldGNobWFpbC52aW0gYi9ydW50aW1lL3N5bnRheC9mZXRjaG1haWwudmltCmluZGV4IDE5OGEzMTQuLjY3MTU5OGMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2ZldGNobWFpbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZmV0Y2htYWlsLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOiAgICAgICAgIGZldGNobWFpbCgxKSBSQyBGaWxlCiAiIE1haW50YWluZXI6ICAgICAgIE5pa29sYWkgV2VpYnVsbCA8bmlrb2xhaSt3b3JrLnZpbUBiaXR3aS5zZT4KLSIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNS0wNi0yNworIiBMYXRlc3QgUmV2aXNpb246ICAyMDA2LTAxLTI1CiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaApAQCAtMzMsNiArMzMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGludGVyZmFjZSBtb25pdG9yIHBsdWdpbiBwbHVnb3V0IGRucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNoZWNrYWxpYXMgdWlkbCBpbnRlcnZhbCBuZXRzZWMgcHJpbmNpcGFsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgZXNtdHBuYW1lIGVzbXRwcGFzc3dvcmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBzc2xjZXJ0Y2sgc3NsY2VydHBhdGggc3NsZmluZ2VycHJpbnQKIHN5biBtYXRjaCAgIGZldGNobWFpbFNlcnZlck9wdHMgY29udGFpbmVkICdcPG5vXF9zXCtcKGVudmVsb3BlXHxkbnNcfGNoZWNrYWxpYXNcfHVpZGxcKScKIAogc3luIGtleXdvcmQgZmV0Y2htYWlsVXNlck9wdHMgICBjb250YWluZWQgdXNlcltuYW1lXSBpcyB0byBwYXNzW3dvcmRdIHNzbApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbWFpbGFsaWFzZXMudmltIGIvcnVudGltZS9zeW50YXgvbWFpbGFsaWFzZXMudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlODVhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3N5bnRheC9tYWlsYWxpYXNlcy52aW0KQEAgLTAsMCArMSw3MSBAQAorIiBWaW0gc3ludGF4IGZpbGUKKyIgTGFuZ3VhZ2U6ICAgICAgICAgYWxpYXNlcyg1KSBsb2NhbCBhbGlhcyBkYXRhYmFzZSBmaWxlCisiIE1haW50YWluZXI6ICAgICAgIE5pa29sYWkgV2VpYnVsbCA8bmlrb2xhaUBiaXR3aS5zZT4KKyIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNi0wMS0xNAorCitpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQorICBmaW5pc2gKK2VuZGlmCisKK2xldCBzOmNwb19zYXZlID0gJmNwbworc2V0IGNwbyZ2aW0KKworc3luIGtleXdvcmQgbWFpbGFsaWFzZXNUb2RvICAgICAgICAgY29udGFpbmVkIFRPRE8gRklYTUUgWFhYIE5PVEUKKworc3luIHJlZ2lvbiAgbWFpbGFsaWFzZXNDb21tZW50ICAgICAgZGlzcGxheSBvbmVsaW5lIHN0YXJ0PSdeXHMqIycgZW5kPSckJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWlucz1tYWlsYWxpYXNlc1RvZG8sQFNwZWxsCisKK3N5biBtYXRjaCAgIG1haWxhbGlhc2VzQmVnaW4gICAgICAgIGRpc3BsYXkgJ14nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1tYWlsYWxpYXNlc05hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG1haWxhbGlhc2VzQ29tbWVudAorCitzeW4gbWF0Y2ggICBtYWlsYWxpYXNlc05hbWUgICAgICAgICBjb250YWluZWQgJ1swLTlBLVphLXpfLV1cKycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPW1haWxhbGlhc2VzQ29sb24KKworc3luIHJlZ2lvbiAgbWFpbGFsaWFzZXNOYW1lICAgICAgICAgY29udGFpbmVkIG9uZWxpbmUgc3RhcnQ9KyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXA9K1xcXFxcfFxcIisgZW5kPSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9bWFpbGFsaWFzZXNDb2xvbgorCitzeW4gbWF0Y2ggICBtYWlsYWxpYXNlc0NvbG9uICAgICAgICBjb250YWluZWQgJzonCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1AbWFpbGFsaWFzZXNWYWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBjbHVzdGVyIG1haWxhbGlhc2VzVmFsdWUgICAgICAgIGNvbnRhaW5zPW1haWxhbGlhc2VzVmFsdWVBZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBtYWlsYWxpYXNlc1ZhbHVlRmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbWFpbGFsaWFzZXNWYWx1ZUNvbW1hbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG1haWxhbGlhc2VzVmFsdWVJbmNsdWRlCisKK3N5biBtYXRjaCAgIG1haWxhbGlhc2VzVmFsdWVBZGRyZXNzIGNvbnRhaW5lZCAnW14gXHQvfCxdXCsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1tYWlsYWxpYXNlc1ZhbHVlU2VwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIG1hdGNoICAgbWFpbGFsaWFzZXNWYWx1ZUZpbGUgICAgY29udGFpbmVkICcvW14sXSonCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1tYWlsYWxpYXNlc1ZhbHVlU2VwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIG1hdGNoICAgbWFpbGFsaWFzZXNWYWx1ZUNvbW1hbmQgY29udGFpbmVkICd8W14sXSonCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1tYWlsYWxpYXNlc1ZhbHVlU2VwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIG1hdGNoICAgbWFpbGFsaWFzZXNWYWx1ZUluY2x1ZGUgY29udGFpbmVkICc6aW5jbHVkZTpbXixdKicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPW1haWxhbGlhc2VzVmFsdWVTZXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBtYWlsYWxpYXNlc1ZhbHVlU2VwICAgICBjb250YWluZWQgJywnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1AbWFpbGFsaWFzZXNWYWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK2hpIGRlZiBsaW5rIG1haWxhbGlhc2VzVG9kbyAgICAgICAgIFRvZG8KK2hpIGRlZiBsaW5rIG1haWxhbGlhc2VzQ29tbWVudCAgICAgIENvbW1lbnQKK2hpIGRlZiBsaW5rIG1haWxhbGlhc2VzTmFtZSAgICAgICAgIElkZW50aWZpZXIKK2hpIGRlZiBsaW5rIG1haWxhbGlhc2VzQ29sb24gICAgICAgIERlbGltaXRlcgoraGkgZGVmIGxpbmsgbWFpbGFsaWFzZXNWYWx1ZUFkZHJlc3MgU3RyaW5nCitoaSBkZWYgbGluayBtYWlsYWxpYXNlc1ZhbHVlRmlsZSAgICBTdHJpbmcKK2hpIGRlZiBsaW5rIG1haWxhbGlhc2VzVmFsdWVDb21tYW5kIFN0cmluZworaGkgZGVmIGxpbmsgbWFpbGFsaWFzZXNWYWx1ZUluY2x1ZGUgUHJlUHJvYworaGkgZGVmIGxpbmsgbWFpbGFsaWFzZXNWYWx1ZVNlcCAgICAgRGVsaW1pdGVyCisKK2xldCBiOmN1cnJlbnRfc3ludGF4ID0gIm1haWxhbGlhc2VzIgorCitsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKK3VubGV0IHM6Y3BvX3NhdmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3JzdC52aW0gYi9ydW50aW1lL3N5bnRheC9yc3QudmltCmluZGV4IDIzMzY3ODMuLjcwZWM0N2UgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3JzdC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvcnN0LnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOiAgICAgICAgIHJlU3RydWN0dXJlZFRleHQgZG9jdW1lbnRhdGlvbiBmb3JtYXQKICIgTWFpbnRhaW5lcjogICAgICAgTmlrb2xhaSBXZWlidWxsIDxuaWtvbGFpK3dvcmsudmltQGJpdHdpLnNlPgotIiBMYXRlc3QgUmV2aXNpb246ICAyMDA1LTA3LTA0CisiIExhdGVzdCBSZXZpc2lvbjogIDIwMDYtMDMtMjYKIAogaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKICAgZmluaXNoCkBAIC0zMiwxMSArMzIsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbnM9cnN0VGFibGVMaW5lcyxAcnN0Q3J1ZnQKIHN5biBtYXRjaCAgICAgICByc3RUYWJsZUxpbmVzICAgICAgIGNvbnRhaW5lZCAnXlxzKlt8Kz0tXVwrJCcKIHN5biByZWdpb24gICAgICByc3RTaW1wbGVUYWJsZSAgICAgIHRyYW5zcGFyZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHN0YXJ0PSdeXG5ccypcJSg9XCtcc1wrXClcJSg9XCtccypcKVwrJCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc3RhcnQ9J15cblwlKFxzKlwpXEA+XCUoXCUoPVwrXClcQD5cJShcc1wrXClcQD5cKVwlKFwlKFwlKD1cK1wpXEA+XCUoXHMqXClcQD5cKVwrXClcQD4kJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBlbmQ9J14kJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWlucz1yc3RTaW1wbGVUYWJsZUxpbmVzLEByc3RDcnVmdAogc3luIG1hdGNoICAgICAgIHJzdFNpbXBsZVRhYmxlTGluZXMgY29udGFpbmVkIGRpc3BsYXkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgJ15ccypcJSg9XCtcc1wrXClcJSg9XCtccypcKVwrJCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgJ15cJShccypcKVxAPlwlKFwlKD1cK1wpXEA+XCUoXHNcK1wpXEA+XClcJShcJShcJSg9XCtcKVxAPlwlKFxzKlwpXEA+XClcK1wpXEA+JCcKIAogc3luIHJlZ2lvbiAgICAgIHJzdEZvb3Rub3RlICAgICAgICAgbWF0Y2hncm91cD1yc3REaXJlY3RpdmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc3RhcnQ9J15cLlwuIFxbXCUoWyMqXVx8WzAtOV1cK1x8I1thLXowLTlfLi1dXCtcKVxdXHMnCkBAIC02OSw3ICs2OSw3IEBACiAKIHN5biBtYXRjaCAgICAgICByc3RJbnRlcm5hbFRhcmdldCAgICdfYFxTXCUoW15gXSpcU1wpXD1gJwogCi1zeW4gbWF0Y2ggICAgICAgcnN0TGlzdEl0ZW0gICAgICAgICAnXjpcJShcd1wrXHMqXClcKzonCitzeW4gbWF0Y2ggICAgICAgcnN0TGlzdEl0ZW0gICAgICAgICAnXjpcd1wrXCUoXHNcK1x3XCtcKSo6Jwogc3luIG1hdGNoICAgICAgIHJzdExpc3RJdGVtICAgICAgICAgJ15ccypbLSorXVxzXCsnCiAKIHN5biBzeW5jIG1pbmxpbmVzPTUwCmRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUgYi9zcmMvTWFrZWZpbGUKaW5kZXggMDI3NDIxNC4uNWFjNGNlZSAxMDA2NDQKLS0tIGEvc3JjL01ha2VmaWxlCisrKyBiL3NyYy9NYWtlZmlsZQpAQCAtMzU0LDEwICszNTQsMTQgQEAKICMgREFSV0lOIC0gZGV0ZWN0aW5nIE1hYyBPUyBYCiAjIFVuY29tbWVudCB0aGlzIGxpbmUgd2hlbiB5b3Ugd2FudCB0byBjb21waWxlIGEgVW5peCB2ZXJzaW9uIG9mIFZpbSBvbgogIyBEYXJ3aW4uICBOb25lIG9mIHRoZSBNYWMgc3BlY2lmaWMgb3B0aW9ucyBvciBmaWxlcyB3aWxsIGJlIHVzZWQuCi0jIFlvdSBjYW4gYWxzbyBjaGFuZ2UgdGhlIGFyY2hpdGVjdHVyZSBzdXBwb3J0ZWQsIGRlZmF1bHQgaXMgdG8gdGVzdCBmb3IgYm90aC4KICNDT05GX09QVF9EQVJXSU4gPSAtLWRpc2FibGUtZGFyd2luCisKKyMgU2VsZWN0IHRoZSBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLiAgRGVmYXVsdCBpcyB0byBidWlsZCBmb3IgdGhlIGN1cnJlbnQKKyMgcGxhdGZvcm0uICBVc2UgImJvdGgiIGZvciBhIHVuaXZlcnNhbCBiaW5hcnkuICBUaGF0IHByb2JhYmx5IGRvZXNuJ3Qgd29yaworIyB3aGVuIGluY2x1ZGluZyBQZXJsLCBQeXRob24sIGV0Yy4KICNDT05GX09QVF9EQVJXSU4gPSAtLXdpdGgtbWFjLWFyY2g9aTM4NgogI0NPTkZfT1BUX0RBUldJTiA9IC0td2l0aC1tYWMtYXJjaD1wcGMKKyNDT05GX09QVF9EQVJXSU4gPSAtLXdpdGgtbWFjLWFyY2g9Ym90aAogCiAjIFBFUkwKICMgVW5jb21tZW50IHRoaXMgd2hlbiB5b3Ugd2FudCB0byBpbmNsdWRlIHRoZSBQZXJsIGludGVyZmFjZS4KQEAgLTEzMTgsNiArMTMyMiw4IEBACiBERVNUX01BTl9JVCA9ICQoREVTVF9NQU5fVE9QKS9pdCQoTUFOMURJUikKIERFU1RfTUFOX0lUX0kgPSAkKERFU1RfTUFOX1RPUCkvaXQuSVNPODg1OS0xJChNQU4xRElSKQogREVTVF9NQU5fSVRfVSA9ICQoREVTVF9NQU5fVE9QKS9pdC5VVEYtOCQoTUFOMURJUikKK0RFU1RfTUFOX1BMID0gJChERVNUX01BTl9UT1ApL3BsLklTTzg4NTktMiQoTUFOMURJUikKK0RFU1RfTUFOX1BMX1UgPSAkKERFU1RfTUFOX1RPUCkvcGwuVVRGLTgkKE1BTjFESVIpCiBERVNUX01BTl9SVSA9ICQoREVTVF9NQU5fVE9QKS9ydS5LT0k4LVIkKE1BTjFESVIpCiBERVNUX01BTl9SVV9VID0gJChERVNUX01BTl9UT1ApL3J1LlVURi04JChNQU4xRElSKQogCkBAIC0xODk3LDYgKzE5MDMsOCBAQAogCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggeHhkICQoREVTVF9NQU5fSVQpICItaXQiICQoSU5TVEFMTE1BTkFSR1MpCiAJLSQoU0hFTEwpIC4vaW5zdGFsbG1hbi5zaCB4eGQgJChERVNUX01BTl9JVF9JKSAiLWl0IiAkKElOU1RBTExNQU5BUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggeHhkICQoREVTVF9NQU5fSVRfVSkgIi1pdC5VVEYtOCIgJChJTlNUQUxMTUFOQVJHUykKKwktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHh4ZCAkKERFU1RfTUFOX1BMKSAiLXBsIiAkKElOU1RBTExNQU5BUkdTKQorCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggeHhkICQoREVTVF9NQU5fUExfVSkgIi1wbC5VVEYtOCIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHh4ZCAkKERFU1RfTUFOX1JVKSAiLXJ1IiAkKElOU1RBTExNQU5BUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggeHhkICQoREVTVF9NQU5fUlVfVSkgIi1ydS5VVEYtOCIgJChJTlNUQUxMTUFOQVJHUykKIApAQCAtMTkwOCw2ICsxOTE2LDggQEAKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIGluc3RhbGwgJChERVNUX01BTl9JVCkgIi1pdCIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIGluc3RhbGwgJChERVNUX01BTl9JVF9JKSAiLWl0IiAkKElOU1RBTExNQU5BUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggaW5zdGFsbCAkKERFU1RfTUFOX0lUX1UpICItaXQuVVRGLTgiICQoSU5TVEFMTE1BTkFSR1MpCisJLSQoU0hFTEwpIC4vaW5zdGFsbG1hbi5zaCBpbnN0YWxsICQoREVTVF9NQU5fUEwpICItcGwiICQoSU5TVEFMTE1BTkFSR1MpCisJLSQoU0hFTEwpIC4vaW5zdGFsbG1hbi5zaCBpbnN0YWxsICQoREVTVF9NQU5fUExfVSkgIi1wbC5VVEYtOCIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIGluc3RhbGwgJChERVNUX01BTl9SVSkgIi1ydSIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIGluc3RhbGwgJChERVNUX01BTl9SVV9VKSAiLXJ1LlVURi04IiAkKElOU1RBTExNQU5BUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtbC5zaCBpbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKQEAgLTE5MjMsNiArMTkzMywxMCBAQAogCS0kKFNIRUxMKSAuL2luc3RhbGxtbC5zaCBpbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKIAkJJChERVNUX01BTl9JVF9VKSAkKElOU1RBTExNTEFSR1MpCiAJLSQoU0hFTEwpIC4vaW5zdGFsbG1sLnNoIGluc3RhbGwgIiQoR1VJX01BTl9UQVJHRVRTKSIgXAorCQkkKERFU1RfTUFOX1BMKSAkKElOU1RBTExNTEFSR1MpCisJLSQoU0hFTEwpIC4vaW5zdGFsbG1sLnNoIGluc3RhbGwgIiQoR1VJX01BTl9UQVJHRVRTKSIgXAorCQkkKERFU1RfTUFOX1BMX1UpICQoSU5TVEFMTE1MQVJHUykKKwktJChTSEVMTCkgLi9pbnN0YWxsbWwuc2ggaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCiAJCSQoREVTVF9NQU5fUlUpICQoSU5TVEFMTE1MQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWwuc2ggaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCiAJCSQoREVTVF9NQU5fUlVfVSkgJChJTlNUQUxMTUxBUkdTKQpAQCAtMjA2MSw2ICsyMDc1LDggQEAKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHVuaW5zdGFsbCAkKERFU1RfTUFOX0lUKSAiIiAkKElOU1RBTExNQU5BUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggdW5pbnN0YWxsICQoREVTVF9NQU5fSVRfSSkgIiIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHVuaW5zdGFsbCAkKERFU1RfTUFOX0lUX1UpICIiICQoSU5TVEFMTE1BTkFSR1MpCisJLSQoU0hFTEwpIC4vaW5zdGFsbG1hbi5zaCB1bmluc3RhbGwgJChERVNUX01BTl9QTCkgIiIgJChJTlNUQUxMTUFOQVJHUykKKwktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHVuaW5zdGFsbCAkKERFU1RfTUFOX1BMX1UpICIiICQoSU5TVEFMTE1BTkFSR1MpCiAJLSQoU0hFTEwpIC4vaW5zdGFsbG1hbi5zaCB1bmluc3RhbGwgJChERVNUX01BTl9SVSkgIiIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHVuaW5zdGFsbCAkKERFU1RfTUFOX1JVX1UpICIiICQoSU5TVEFMTE1BTkFSR1MpCiAJLSQoU0hFTEwpIC4vaW5zdGFsbG1sLnNoIHVuaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCkBAIC0yMDc4LDEyICsyMDk0LDE3IEBACiAJLSQoU0hFTEwpIC4vaW5zdGFsbG1sLnNoIHVuaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCiAJCSQoREVTVF9NQU5fSVRfVSkgJChJTlNUQUxMTUxBUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtbC5zaCB1bmluc3RhbGwgIiQoR1VJX01BTl9UQVJHRVRTKSIgXAorCQkkKERFU1RfTUFOX1BMKSAkKElOU1RBTExNTEFSR1MpCisJLSQoU0hFTEwpIC4vaW5zdGFsbG1sLnNoIHVuaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCisJCSQoREVTVF9NQU5fUExfVSkgJChJTlNUQUxMTUxBUkdTKQorCS0kKFNIRUxMKSAuL2luc3RhbGxtbC5zaCB1bmluc3RhbGwgIiQoR1VJX01BTl9UQVJHRVRTKSIgXAogCQkkKERFU1RfTUFOX1JVKSAkKElOU1RBTExNTEFSR1MpCiAJLSQoU0hFTEwpIC4vaW5zdGFsbG1sLnNoIHVuaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCiAJCSQoREVTVF9NQU5fUlVfVSkgJChJTlNUQUxMTUxBUkdTKQogCS1ybSAtZiAkKERFU1RfTUFOKS94eGQuMQogCS1ybSAtZiAkKERFU1RfTUFOX0ZSKS94eGQuMSAkKERFU1RfTUFOX0ZSX0kpL3h4ZC4xICQoREVTVF9NQU5fRlJfVSkveHhkLjEKIAktcm0gLWYgJChERVNUX01BTl9JVCkveHhkLjEgJChERVNUX01BTl9JVF9JKS94eGQuMSAkKERFU1RfTUFOX0lUX1UpL3h4ZC4xCisJLXJtIC1mICQoREVTVF9NQU5fUEwpL3h4ZC4xICQoREVTVF9NQU5fUExfVSkveHhkLjEKIAktcm0gLWYgJChERVNUX01BTl9SVSkveHhkLjEgJChERVNUX01BTl9SVV9VKS94eGQuMQogCS1ybSAtZiAkKERFU1RfSEVMUCkvKi50eHQgJChERVNUX0hFTFApL3RhZ3MgJChERVNUX0hFTFApLyoucGwKIAktcm0gLWYgJChERVNUX0hFTFApLyouPz94ICQoREVTVF9IRUxQKS90YWdzLT8/CmRpZmYgLS1naXQgYS9zcmMvYXV0by9jb25maWd1cmUgYi9zcmMvYXV0by9jb25maWd1cmUKaW5kZXggMjJmNzI0ZS4uZjExNzhmOCAxMDA3NTUKLS0tIGEvc3JjL2F1dG8vY29uZmlndXJlCisrKyBiL3NyYy9hdXRvL2NvbmZpZ3VyZQpAQCAtODc2LDcgKzg3Niw3IEBACiBPcHRpb25hbCBQYWNrYWdlczoKICAgLS13aXRoLVBBQ0tBR0VbPUFSR10gICAgdXNlIFBBQ0tBR0UgW0FSRz15ZXNdCiAgIC0td2l0aG91dC1QQUNLQUdFICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdpdGgtUEFDS0FHRT1ubykKLSAgLS13aXRoLW1hYy1hcmNoPUFSQ0ggICAgaW50ZWwsIHBwYyBvciBib3RoCisgIC0td2l0aC1tYWMtYXJjaD1BUkNIICAgIGN1cnJlbnQsIGludGVsLCBwcGMgb3IgYm90aAogICAtLXdpdGgtdmltLW5hbWU9TkFNRSAgICB3aGF0IHRvIGNhbGwgdGhlIFZpbSBleGVjdXRhYmxlCiAgIC0td2l0aC1leC1uYW1lPU5BTUUgICAgIHdoYXQgdG8gY2FsbCB0aGUgRXggZXhlY3V0YWJsZQogICAtLXdpdGgtdmlldy1uYW1lPU5BTUUgICB3aGF0IHRvIGNhbGwgdGhlIFZpZXcgZXhlY3V0YWJsZQpAQCAtMjg3NCw3ICsyODc0LDcgQEAKICAgTUFDQVJDSD0iJHdpdGh2YWwiOyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUFDQVJDSCIgPiY1CiBlY2hvICIke0VDSE9fVH0kTUFDQVJDSCIgPiY2CiBlbHNlCi0gIE1BQ0FSQ0g9ImJvdGgiOyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBkZWZhdWx0aW5nIHRvICRNQUNBUkNIIiA+JjUKKyAgTUFDQVJDSD0iY3VycmVudCI7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGRlZmF1bHRpbmcgdG8gJE1BQ0FSQ0giID4mNQogZWNobyAiJHtFQ0hPX1R9ZGVmYXVsdGluZyB0byAkTUFDQVJDSCIgPiY2CiBmaTsKIApkaWZmIC0tZ2l0IGEvc3JjL2J1ZmZlci5jIGIvc3JjL2J1ZmZlci5jCmluZGV4IDM3MjM4NjMuLjQzOWI1ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9idWZmZXIuYworKysgYi9zcmMvYnVmZmVyLmMKQEAgLTM3MDcsNyArMzcwNyw3IEBACiAJICAgIGl0ZW1pc2ZsYWcgPSBUUlVFOwogCSAgICBpZiAod3AtPndfYnVmZmVyLT5iX2hlbHApCiAJCXN0ciA9IChjaGFyX3UgKikoKG9wdCA9PSBTVExfSEVMUEZMQUdfQUxUKSA/ICIsSExQIgotCQkJCQkJCSAgICAgICA6IF8oIltoZWxwXSIpKTsKKwkJCQkJCQkgICAgICAgOiBfKCJbSGVscF0iKSk7CiAJICAgIGJyZWFrOwogCiAjaWZkZWYgRkVBVF9BVVRPQ01ECkBAIC00OTc1LDcgKzQ5NzUsNyBAQAogCWlmICh3aW4gIT0gTlVMTCAmJiB3aW4tPndfbGxpc3RfcmVmICE9IE5VTEwpCiAJICAgIHJldHVybiBfKCJbTG9jYXRpb24gTGlzdF0iKTsKIAllbHNlCi0JICAgIHJldHVybiBfKCJbRXJyb3IgTGlzdF0iKTsKKwkgICAgcmV0dXJuIF8oIltRdWlja2ZpeCBMaXN0XSIpOwogICAgIH0KICNlbmRpZgogI2lmZGVmIEZFQVRfUVVJQ0tGSVgKZGlmZiAtLWdpdCBhL3NyYy9jb25maWd1cmUuaW4gYi9zcmMvY29uZmlndXJlLmluCmluZGV4IGY3NjQ4YTguLjI1NjhmYzMgMTAwNjQ0Ci0tLSBhL3NyYy9jb25maWd1cmUuaW4KKysrIGIvc3JjL2NvbmZpZ3VyZS5pbgpAQCAtMTAzLDkgKzEwMyw5IEBACiAgIGZpCiAKICAgQUNfTVNHX0NIRUNLSU5HKC0td2l0aC1tYWMtYXJjaCBhcmd1bWVudCkKLSAgQUNfQVJHX1dJVEgobWFjLWFyY2gsIFsgIC0td2l0aC1tYWMtYXJjaD1BUkNIICAgIGludGVsLCBwcGMgb3IgYm90aF0sCisgIEFDX0FSR19XSVRIKG1hYy1hcmNoLCBbICAtLXdpdGgtbWFjLWFyY2g9QVJDSCAgICBjdXJyZW50LCBpbnRlbCwgcHBjIG9yIGJvdGhdLAogCU1BQ0FSQ0g9IiR3aXRodmFsIjsgQUNfTVNHX1JFU1VMVCgkTUFDQVJDSCksCi0JTUFDQVJDSD0iYm90aCI7IEFDX01TR19SRVNVTFQoZGVmYXVsdGluZyB0byAkTUFDQVJDSCkpCisJTUFDQVJDSD0iY3VycmVudCI7IEFDX01TR19SRVNVTFQoZGVmYXVsdGluZyB0byAkTUFDQVJDSCkpCiAKICAgaWYgdGVzdCAieCRNQUNBUkNIIiA9ICJ4Ym90aCI7IHRoZW4KICAgICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIDEwLjQgdW5pdmVyc2FsIFNESykKZGlmZiAtLWdpdCBhL3NyYy9ldmFsLmMgYi9zcmMvZXZhbC5jCmluZGV4IGU4MDQwN2UuLjYzYWJjYmEgMTAwNjQ0Ci0tLSBhL3NyYy9ldmFsLmMKKysrIGIvc3JjL2V2YWwuYwpAQCAtODk2NCw0MiArODk2NCw1NCBAQAogICAgIGNoYXJfdQlwYXRoYnVmW05VTUJVRkxFTl07CiAgICAgaW50CQljb3VudCA9IDE7CiAgICAgaW50CQlmaXJzdCA9IFRSVUU7CisgICAgaW50CQllcnJvciA9IEZBTFNFOworI2VuZGlmCiAKKyAgICByZXR0di0+dnZhbC52X3N0cmluZyA9IE5VTEw7CisgICAgcmV0dHYtPnZfdHlwZSA9IFZBUl9TVFJJTkc7CisKKyNpZmRlZiBGRUFUX1NFQVJDSFBBVEgKICAgICBmbmFtZSA9IGdldF90dl9zdHJpbmcoJmFyZ3ZhcnNbMF0pOwogCiAgICAgaWYgKGFyZ3ZhcnNbMV0udl90eXBlICE9IFZBUl9VTktOT1dOKQogICAgIHsKIAlwID0gZ2V0X3R2X3N0cmluZ19idWZfY2hrKCZhcmd2YXJzWzFdLCBwYXRoYnVmKTsKIAlpZiAocCA9PSBOVUxMKQotCSAgICBjb3VudCA9IC0xOwkgICAgLyogZXJyb3IgKi8KKwkgICAgZXJyb3IgPSBUUlVFOwogCWVsc2UKIAl7CiAJICAgIGlmICgqcCAhPSBOVUwpCiAJCXBhdGggPSBwOwogCiAJICAgIGlmIChhcmd2YXJzWzJdLnZfdHlwZSAhPSBWQVJfVU5LTk9XTikKLQkJY291bnQgPSBnZXRfdHZfbnVtYmVyX2NoaygmYXJndmFyc1syXSwgTlVMTCk7IC8qIC0xOiBlcnJvciAqLworCQljb3VudCA9IGdldF90dl9udW1iZXJfY2hrKCZhcmd2YXJzWzJdLCAmZXJyb3IpOwogCX0KICAgICB9CiAKLSAgICBpZiAoKmZuYW1lICE9IE5VTCAmJiBjb3VudCA+PSAwKQorICAgIGlmIChjb3VudCA8IDAgJiYgcmV0dHZfbGlzdF9hbGxvYyhyZXR0dikgPT0gRkFJTCkKKwllcnJvciA9IFRSVUU7CisKKyAgICBpZiAoKmZuYW1lICE9IE5VTCAmJiAhZXJyb3IpCiAgICAgewogCWRvCiAJewotCSAgICB2aW1fZnJlZShmcmVzdWx0KTsKKwkgICAgaWYgKHJldHR2LT52X3R5cGUgPT0gVkFSX1NUUklORykKKwkJdmltX2ZyZWUoZnJlc3VsdCk7CiAJICAgIGZyZXN1bHQgPSBmaW5kX2ZpbGVfaW5fcGF0aF9vcHRpb24oZmlyc3QgPyBmbmFtZSA6IE5VTEwsCiAJCQkJCSAgICAgICBmaXJzdCA/IChpbnQpU1RSTEVOKGZuYW1lKSA6IDAsCiAJCQkJCTAsIGZpcnN0LCBwYXRoLCBkaXIsIE5VTEwsCiAJCQkJCWRpciA/IChjaGFyX3UgKikiIiA6IGN1cmJ1Zi0+Yl9wX3N1YSk7CiAJICAgIGZpcnN0ID0gRkFMU0U7Ci0JfSB3aGlsZSAoLS1jb3VudCA+IDAgJiYgZnJlc3VsdCAhPSBOVUxMKTsKKworCSAgICBpZiAoZnJlc3VsdCAhPSBOVUxMICYmIHJldHR2LT52X3R5cGUgPT0gVkFSX0xJU1QpCisJCWxpc3RfYXBwZW5kX3N0cmluZyhyZXR0di0+dnZhbC52X2xpc3QsIGZyZXN1bHQsIC0xKTsKKworCX0gd2hpbGUgKChyZXR0di0+dl90eXBlID09IFZBUl9MSVNUIHx8IC0tY291bnQgPiAwKSAmJiBmcmVzdWx0ICE9IE5VTEwpOwogICAgIH0KIAotICAgIHJldHR2LT52dmFsLnZfc3RyaW5nID0gZnJlc3VsdDsKLSNlbHNlCi0gICAgcmV0dHYtPnZ2YWwudl9zdHJpbmcgPSBOVUxMOworICAgIGlmIChyZXR0di0+dl90eXBlID09IFZBUl9TVFJJTkcpCisJcmV0dHYtPnZ2YWwudl9zdHJpbmcgPSBmcmVzdWx0OwogI2VuZGlmCi0gICAgcmV0dHYtPnZfdHlwZSA9IFZBUl9TVFJJTkc7CiB9CiAKIHN0YXRpYyB2b2lkIGZpbHRlcl9tYXAgX19BUkdTKCh0eXB2YWxfVCAqYXJndmFycywgdHlwdmFsX1QgKnJldHR2LCBpbnQgbWFwKSk7CkBAIC0xODY3Myw4ICsxODY4NSw5IEBACiAgICAgZWxzZSBpZiAobGVhZCA+IDApCiAgICAgewogCWxlYWQgPSAzOwotCWlmIChldmFsX2ZuYW1lX3NpZCgqcHApKQkvKiBJZiBpdCdzICI8U0lEPiIgKi8KKwlpZiAoZXZhbF9mbmFtZV9zaWQobHYubGxfZXhwX25hbWUgIT0gTlVMTCA/IGx2LmxsX2V4cF9uYW1lIDogKnBwKSkKIAl7CisJICAgIC8qIEl0J3MgInM6IiBvciAiPFNJRD4iICovCiAJICAgIGlmIChjdXJyZW50X1NJRCA8PSAwKQogCSAgICB7CiAJCUVNU0coXyhlX3VzaW5nc2lkKSk7CmRpZmYgLS1naXQgYS9zcmMvbWFpbi5hYXAgYi9zcmMvbWFpbi5hYXAKaW5kZXggZmE3OTE3Yi4uYTRkZTYzMSAxMDA2NDQKLS0tIGEvc3JjL21haW4uYWFwCisrKyBiL3NyYy9tYWluLmFhcApAQCAtNjU4LDYgKzY1OCw4IEBACiBERVNUX01BTl9JVCA9ICQoREVTVF9NQU5fVE9QKS9pdCQoTUFOMURJUikKIERFU1RfTUFOX0lUX0kgPSAkKERFU1RfTUFOX1RPUCkvaXQuSVNPODg1OS0xJChNQU4xRElSKQogREVTVF9NQU5fSVRfVSA9ICQoREVTVF9NQU5fVE9QKS9pdC5VVEYtOCQoTUFOMURJUikKK0RFU1RfTUFOX1BMID0gJChERVNUX01BTl9UT1ApL3BsLklTTzg4NTktMiQoTUFOMURJUikKK0RFU1RfTUFOX1BMX1UgPSAkKERFU1RfTUFOX1RPUCkvcGwuVVRGLTgkKE1BTjFESVIpCiBERVNUX01BTl9SVSA9ICQoREVTVF9NQU5fVE9QKS9ydS5LT0k4LVIkKE1BTjFESVIpCiBERVNUX01BTl9SVV9VID0gJChERVNUX01BTl9UT1ApL3J1LlVURi04JChNQU4xRElSKQogCkBAIC02NjcsNyArNjY5LDkgQEAKICAgICAgICAgICAgICAgICAkREVTVF9DT01QICRERVNUX0tNQVAgJERFU1RfTUFDUk8gJERFU1RfVE9PTFMgJERFU1RfVFVUT1IKICAgICAgICAgICAgICAgICAkREVTVF9TQ1JJUFQgJERFU1RfUFJJTlQgJERFU1RfTUFOICRERVNUX1NQRUxMCiAgICAgICAgICAgICAgICAgJERFU1RfTUFOX0ZSICRERVNUX01BTl9GUl9JICRERVNUX01BTl9GUl9VICRERVNUX01BTl9JVAotICAgICAgICAgICAgICAgICRERVNUX01BTl9JVF9JICRERVNUX01BTl9JVF9VICRERVNUX01BTl9SVSAkREVTVF9NQU5fUlVfVQorICAgICAgICAgICAgICAgICRERVNUX01BTl9JVF9JICRERVNUX01BTl9JVF9VCisgICAgICAgICAgICAgICAgJERFU1RfTUFOX1BMICRERVNUX01BTl9QTF9VCisgICAgICAgICAgICAgICAgJERFU1RfTUFOX1JVICRERVNUX01BTl9SVV9VCiAKICMKICMgSSBOIFMgVCBBIEwgTApAQCAtODkzLDYgKzg5Nyw4IEBACiAJOnN5cyAuL2luc3RhbGxtYW4uc2ggeHhkICQoREVTVF9NQU5fSVQpICItaXQiICQoSU5TVEFMTE1BTkFSR1MpCiAJOnN5cyAuL2luc3RhbGxtYW4uc2ggeHhkICQoREVTVF9NQU5fSVRfSSkgIi1pdCIgJChJTlNUQUxMTUFOQVJHUykKIAk6c3lzIC4vaW5zdGFsbG1hbi5zaCB4eGQgJChERVNUX01BTl9JVF9VKSAiLWl0LlVURi04IiAkKElOU1RBTExNQU5BUkdTKQorCTpzeXMgLi9pbnN0YWxsbWFuLnNoIHh4ZCAkKERFU1RfTUFOX1BMKSAiLXBsIiAkKElOU1RBTExNQU5BUkdTKQorCTpzeXMgLi9pbnN0YWxsbWFuLnNoIHh4ZCAkKERFU1RfTUFOX1BMX1UpICItcGwuVVRGLTgiICQoSU5TVEFMTE1BTkFSR1MpCiAJOnN5cyAuL2luc3RhbGxtYW4uc2ggeHhkICQoREVTVF9NQU5fUlUpICItcnUiICQoSU5TVEFMTE1BTkFSR1MpCiAJOnN5cyAuL2luc3RhbGxtYW4uc2ggeHhkICQoREVTVF9NQU5fUlVfVSkgIi1ydS5VVEYtOCIgJChJTlNUQUxMTUFOQVJHUykKIApAQCAtOTA0LDYgKzkxMCw4IEBACiAJOnN5cyAuL2luc3RhbGxtYW4uc2ggaW5zdGFsbCAkKERFU1RfTUFOX0lUKSAiLWl0IiAkKElOU1RBTExNQU5BUkdTKQogCTpzeXMgLi9pbnN0YWxsbWFuLnNoIGluc3RhbGwgJChERVNUX01BTl9JVF9JKSAiLWl0IiAkKElOU1RBTExNQU5BUkdTKQogCTpzeXMgLi9pbnN0YWxsbWFuLnNoIGluc3RhbGwgJChERVNUX01BTl9JVF9VKSAiLWl0LlVURi04IiAkKElOU1RBTExNQU5BUkdTKQorCTpzeXMgLi9pbnN0YWxsbWFuLnNoIGluc3RhbGwgJChERVNUX01BTl9QTCkgIi1wbCIgJChJTlNUQUxMTUFOQVJHUykKKwk6c3lzIC4vaW5zdGFsbG1hbi5zaCBpbnN0YWxsICQoREVTVF9NQU5fUExfVSkgIi1wbC5VVEYtOCIgJChJTlNUQUxMTUFOQVJHUykKIAk6c3lzIC4vaW5zdGFsbG1hbi5zaCBpbnN0YWxsICQoREVTVF9NQU5fUlUpICItcnUiICQoSU5TVEFMTE1BTkFSR1MpCiAJOnN5cyAuL2luc3RhbGxtYW4uc2ggaW5zdGFsbCAkKERFU1RfTUFOX1JVX1UpICItcnUuVVRGLTgiICQoSU5TVEFMTE1BTkFSR1MpCiAJOnN5cyAuL2luc3RhbGxtbC5zaCBpbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKQEAgLTkxOSw2ICs5MjcsMTAgQEAKICAgICAgICAgOnN5cyAuL2luc3RhbGxtbC5zaCBpbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKIAkJJChERVNUX01BTl9JVF9VKSAkKElOU1RBTExNTEFSR1MpCiAgICAgICAgIDpzeXMgLi9pbnN0YWxsbWwuc2ggaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCisJCSQoREVTVF9NQU5fUEwpICQoSU5TVEFMTE1MQVJHUykKKyAgICAgICAgOnN5cyAuL2luc3RhbGxtbC5zaCBpbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKKwkJJChERVNUX01BTl9QTF9VKSAkKElOU1RBTExNTEFSR1MpCisgICAgICAgIDpzeXMgLi9pbnN0YWxsbWwuc2ggaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCiAJCSQoREVTVF9NQU5fUlUpICQoSU5TVEFMTE1MQVJHUykKICAgICAgICAgOnN5cyAuL2luc3RhbGxtbC5zaCBpbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKIAkJJChERVNUX01BTl9SVV9VKSAkKElOU1RBTExNTEFSR1MpCkBAIC0xMDQ5LDYgKzEwNjEsOCBAQAogICAgIDpzeXMgLi9pbnN0YWxsbWFuLnNoIHVuaW5zdGFsbCAkKERFU1RfTUFOX0lUKSAiIiAkKElOU1RBTExNQU5BUkdTKQogICAgIDpzeXMgLi9pbnN0YWxsbWFuLnNoIHVuaW5zdGFsbCAkKERFU1RfTUFOX0lUX0kpICIiICQoSU5TVEFMTE1BTkFSR1MpCiAgICAgOnN5cyAuL2luc3RhbGxtYW4uc2ggdW5pbnN0YWxsICQoREVTVF9NQU5fSVRfVSkgIiIgJChJTlNUQUxMTUFOQVJHUykKKyAgICA6c3lzIC4vaW5zdGFsbG1hbi5zaCB1bmluc3RhbGwgJChERVNUX01BTl9QTCkgIiIgJChJTlNUQUxMTUFOQVJHUykKKyAgICA6c3lzIC4vaW5zdGFsbG1hbi5zaCB1bmluc3RhbGwgJChERVNUX01BTl9QTF9VKSAiIiAkKElOU1RBTExNQU5BUkdTKQogICAgIDpzeXMgLi9pbnN0YWxsbWFuLnNoIHVuaW5zdGFsbCAkKERFU1RfTUFOX1JVKSAiIiAkKElOU1RBTExNQU5BUkdTKQogICAgIDpzeXMgLi9pbnN0YWxsbWFuLnNoIHVuaW5zdGFsbCAkKERFU1RfTUFOX1JVX1UpICIiICQoSU5TVEFMTE1BTkFSR1MpCiAgICAgOnN5cyAuL2luc3RhbGxtbC5zaCB1bmluc3RhbGwgIiQoR1VJX01BTl9UQVJHRVRTKSIgXApAQCAtMTA2NiwxMiArMTA4MCwxNyBAQAogICAgIDpzeXMgLi9pbnN0YWxsbWwuc2ggdW5pbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKICAgICAgICAgICAgICQoREVTVF9NQU5fSVRfVSkgJChJTlNUQUxMTUxBUkdTKQogICAgIDpzeXMgLi9pbnN0YWxsbWwuc2ggdW5pbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKKyAgICAgICAgICAgICQoREVTVF9NQU5fUEwpICQoSU5TVEFMTE1MQVJHUykKKyAgICA6c3lzIC4vaW5zdGFsbG1sLnNoIHVuaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCisgICAgICAgICAgICAkKERFU1RfTUFOX1BMX1UpICQoSU5TVEFMTE1MQVJHUykKKyAgICA6c3lzIC4vaW5zdGFsbG1sLnNoIHVuaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCiAgICAgICAgICAgICAkKERFU1RfTUFOX1JVKSAkKElOU1RBTExNTEFSR1MpCiAgICAgOnN5cyAuL2luc3RhbGxtbC5zaCB1bmluc3RhbGwgIiQoR1VJX01BTl9UQVJHRVRTKSIgXAogICAgICAgICAgICAgJChERVNUX01BTl9SVV9VKSAkKElOU1RBTExNTEFSR1MpCiAgICAgOmRlbCB7Zm9yY2V9ICRERVNUX01BTi94eGQuMQogICAgIDpkZWwge2ZvcmNlfSAkKERFU1RfTUFOX0ZSKS94eGQuMSAkKERFU1RfTUFOX0ZSX0kpL3h4ZC4xICQoREVTVF9NQU5fRlJfVSkveHhkLjEKICAgICA6ZGVsIHtmb3JjZX0gJChERVNUX01BTl9JVCkveHhkLjEgJChERVNUX01BTl9JVF9JKS94eGQuMSAkKERFU1RfTUFOX0lUX1UpL3h4ZC4xCisgICAgOmRlbCB7Zm9yY2V9ICQoREVTVF9NQU5fUEwpL3h4ZC4xICQoREVTVF9NQU5fUExfVSkveHhkLjEKICAgICA6ZGVsIHtmb3JjZX0gJChERVNUX01BTl9SVSkveHhkLjEgJChERVNUX01BTl9SVV9VKS94eGQuMQogCiAgICAgOmRlbCB7Zm9yY2V9ICRERVNUX0hFTFAvKi50eHQgJERFU1RfSEVMUC90YWdzICRERVNUX0hFTFAvKi5wbApkaWZmIC0tZ2l0IGEvc3JjL3NjcmVlbi5jIGIvc3JjL3NjcmVlbi5jCmluZGV4IDBlOGI4NjcuLjYwZmZlOTkgMTAwNjQ0Ci0tLSBhL3NyYy9zY3JlZW4uYworKysgYi9zcmMvc2NyZWVuLmMKQEAgLTU1MjgsNyArNTUyOCw3IEBACiAJICAgICoocCArIGxlbisrKSA9ICcgJzsKIAlpZiAod3AtPndfYnVmZmVyLT5iX2hlbHApCiAJewotCSAgICBTVFJDUFkocCArIGxlbiwgXygiW2hlbHBdIikpOworCSAgICBTVFJDUFkocCArIGxlbiwgXygiW0hlbHBdIikpOwogCSAgICBsZW4gKz0gKGludClTVFJMRU4ocCArIGxlbik7CiAJfQogI2lmZGVmIEZFQVRfUVVJQ0tGSVgKZGlmZiAtLWdpdCBhL3NyYy9zcGVsbC5jIGIvc3JjL3NwZWxsLmMKaW5kZXggNGE2NWFlZS4uYzJiZjU4ZCAxMDA2NDQKLS0tIGEvc3JjL3NwZWxsLmMKKysrIGIvc3JjL3NwZWxsLmMKQEAgLTE4NSwxNCArMTg1LDIxIEBACiAgKiA8bWFwc3RyPgkgTiBieXRlcyAgICBTdHJpbmcgd2l0aCBzZXF1ZW5jZXMgb2Ygc2ltaWxhciBjaGFyYWN0ZXJzLAogICoJCQkgICAgc2VwYXJhdGVkIGJ5IHNsYXNoZXMuCiAgKgotICogc2VjdGlvbklEID09IFNOX0NPTVBPVU5EOiA8Y29tcG1heD4gPGNvbXBtaW5sZW4+IDxjb21wc3lsbWF4PiA8Y29tcGZsYWdzPgorICogc2VjdGlvbklEID09IFNOX0NPTVBPVU5EOiA8Y29tcG1heD4gPGNvbXBtaW5sZW4+IDxjb21wc3lsbWF4PiA8Y29tcG9wdGlvbnM+CisgKgkJCQk8Y29tcHBhdGNvdW50PiA8Y29tcHBhdHRlcm4+IC4uLiA8Y29tcGZsYWdzPgogICogPGNvbXBtYXg+ICAgICAxIGJ5dGUJICAgIE1heGltdW0gbnIgb2Ygd29yZHMgaW4gY29tcG91bmQgd29yZC4KICAqIDxjb21wbWlubGVuPiAgMSBieXRlCSAgICBNaW5pbWFsIHdvcmQgbGVuZ3RoIGZvciBjb21wb3VuZGluZy4KICAqIDxjb21wc3lsbWF4PiAgMSBieXRlCSAgICBNYXhpbXVtIG5yIG9mIHN5bGxhYmxlcyBpbiBjb21wb3VuZCB3b3JkLgorICogPGNvbXBvcHRpb25zPiAyIGJ5dGVzICAgIENPTVBfIGZsYWdzLgorICogPGNvbXBwYXRjb3VudD4gMiBieXRlcyAgIG51bWJlciBvZiA8Y29tcHBhdHRlcm4+IGZvbGxvd2luZwogICogPGNvbXBmbGFncz4gICBOIGJ5dGVzICAgIEZsYWdzIGZyb20gQ09NUE9VTkRSVUxFIGl0ZW1zLCBzZXBhcmF0ZWQgYnkKICAqCQkJICAgIHNsYXNoZXMuCiAgKgotICogc2VjdGlvbklEID09IFNOX05PQlJFQUs6IChlbXB0eSwgaXRzIHByZXNlbmNlIGlzIGVub3VnaCkKKyAqIDxjb21wcGF0dGVybj46IDxjb21wcGF0bGVuPiA8Y29tcHBhdHRleHQ+CisgKiA8Y29tcHBhdGxlbj4JIDEgYnl0ZQkgICAgbGVuZ3RoIG9mIDxjb21wcGF0dGV4dD4KKyAqIDxjb21wcGF0dGV4dD4gTiBieXRlcyAgICBlbmQgb3IgYmVnaW4gY2hhcnMgZnJvbSBDSEVDS0NPTVBPVU5EUEFUVEVSTgorICoKKyAqIHNlY3Rpb25JRCA9PSBTTl9OT0JSRUFLOiAoZW1wdHksIGl0cyBwcmVzZW5jZSBpcyB3aGF0IG1hdHRlcnMpCiAgKgogICogc2VjdGlvbklEID09IFNOX1NZTExBQkxFOiA8c3lsbGFibGU+CiAgKiA8c3lsbGFibGU+ICAgIE4gYnl0ZXMgICAgU3RyaW5nIGZyb20gU1lMTEFCTEUgaXRlbS4KQEAgLTI0OCw2ICsyNTUsNyBAQAogICoJCQkgICAgV0ZfSEFTX0FGRiA+PiA4ICAgd29yZCBpbmNsdWRlcyBhZmZpeAogICoJCQkgICAgV0ZfTkVFRENPTVAgPj4gOCAgd29yZCBvbmx5IHZhbGlkIGluIGNvbXBvdW5kCiAgKgkJCSAgICBXRl9OT1NVR0dFU1QgPj4gOCAgd29yZCBub3QgdXNlZCBmb3Igc3VnZ2VzdGlvbnMKKyAqCQkJICAgIFdGX0NPTVBST09UID4+IDggIHdvcmQgYWxyZWFkeSBhIGNvbXBvdW5kCiAgKgogICogPHBmbGFncz4JMSBieXRlCSAgICBiaXRtYXNrIG9mOgogICoJCQkgICAgV0ZQX1JBUkUJcmFyZSBwcmVmaXgKQEAgLTMzNiw2ICszNDQsNyBAQAogI2RlZmluZSBXRl9IQVNfQUZGICAweDAxMDAJLyogd29yZCBpbmNsdWRlcyBhZmZpeCAqLwogI2RlZmluZSBXRl9ORUVEQ09NUCAweDAyMDAJLyogd29yZCBvbmx5IHZhbGlkIGluIGNvbXBvdW5kICovCiAjZGVmaW5lIFdGX05PU1VHR0VTVCAweDA0MDAJLyogd29yZCBub3QgdG8gYmUgc3VnZ2VzdGVkICovCisjZGVmaW5lIFdGX0NPTVBST09UIDB4MDgwMAkvKiBhbHJlYWR5IGNvbXBvdW5kZWQgd29yZCwgQ09NUE9VTkRST09UICovCiAKIC8qIG9ubHkgdXNlZCBmb3Igc3VfYmFkZmxhZ3MgKi8KICNkZWZpbmUgV0ZfTUlYQ0FQICAgMHgyMAkvKiBtaXggb2YgdXBwZXIgYW5kIGxvd2VyIGNhc2U6IG1hY2FST05JICovCkBAIC0zNTYsNiArMzY1LDEyIEBACiAjZGVmaW5lIFdGX1BGWF9VUCAgIChXRlBfVVAgPDwgMjQpCS8qIGluIHNsX3BpZHhzOiBmbGFnIGZvciB0by11cHBlcgogCQkJCQkgKiBwb3N0cG9uZWQgcHJlZml4ICovCiAKKy8qIGZsYWdzIGZvciA8Y29tcG9wdGlvbnM+ICovCisjZGVmaW5lIENPTVBfQ0hFQ0tEVVAJCTEJLyogQ0hFQ0tDT01QT1VORERVUCAqLworI2RlZmluZSBDT01QX0NIRUNLUkVQCQkyCS8qIENIRUNLQ09NUE9VTkRSRVAgKi8KKyNkZWZpbmUgQ09NUF9DSEVDS0NBU0UJCTQJLyogQ0hFQ0tDT01QT1VORENBU0UgKi8KKyNkZWZpbmUgQ09NUF9DSEVDS1RSSVBMRQk4CS8qIENIRUNLQ09NUE9VTkRUUklQTEUgKi8KKwogLyogU3BlY2lhbCBieXRlIHZhbHVlcyBmb3IgPGJ5dGU+LiAgU29tZSBhcmUgb25seSB1c2VkIGluIHRoZSB0cmVlIGZvcgogICogcG9zdHBvbmVkIHByZWZpeGVzLCBzb21lIG9ubHkgaW4gdGhlIG90aGVyIHRyZWVzLiAgVGhpcyBpcyBhIGJpdCBtZXNzeS4uLiAqLwogI2RlZmluZSBCWV9OT0ZMQUdTCTAJLyogZW5kIG9mIHdvcmQgd2l0aG91dCBmbGFncyBvciByZWdpb247IGZvcgpAQCAtNDQzLDkgKzQ1OCwxMSBAQAogCiAgICAgaGFzaHRhYl9UCXNsX3dvcmRjb3VudDsJLyogaGFzaHRhYmxlIHdpdGggd29yZCBjb3VudCwgd29yZGNvdW50X1QgKi8KIAotICAgIGludAkJc2xfY29tcG1heDsJLyogQ09NUE9VTkRNQVggKGRlZmF1bHQ6IE1BWFdMRU4pICovCisgICAgaW50CQlzbF9jb21wbWF4OwkvKiBDT01QT1VORFdPUkRNQVggKGRlZmF1bHQ6IE1BWFdMRU4pICovCiAgICAgaW50CQlzbF9jb21wbWlubGVuOwkvKiBDT01QT1VORE1JTiAoZGVmYXVsdDogMCkgKi8KICAgICBpbnQJCXNsX2NvbXBzeWxtYXg7CS8qIENPTVBPVU5EU1lMTUFYIChkZWZhdWx0OiBNQVhXTEVOKSAqLworICAgIGludAkJc2xfY29tcG9wdGlvbnM7CS8qIENPTVBfKiBmbGFncyAqLworICAgIGdhcnJheV9UCXNsX2NvbXBwYXQ7CS8qIENIRUNLQ09NUE9VTkRQQVRURVJOIGl0ZW1zICovCiAgICAgcmVncHJvZ19UCSpzbF9jb21wcHJvZzsJLyogQ09NUE9VTkRSVUxFIHR1cm5lZCBpbnRvIGEgcmVnZXhwIHByb2dybQogCQkJCSAqIChOVUxMIHdoZW4gbm8gY29tcG91bmRpbmcpICovCiAgICAgY2hhcl91CSpzbF9jb21wc3RhcnRmbGFnczsgLyogZmxhZ3MgZm9yIGZpcnN0IGNvbXBvdW5kIHdvcmQgKi8KQEAgLTY5Myw2ICs3MTAsNyBAQAogICAgIGludAkJbWlfY29tcG9mZjsJCS8qIHN0YXJ0IG9mIGZvbGxvd2luZyB3b3JkIG9mZnNldCAqLwogICAgIGNoYXJfdQltaV9jb21wZmxhZ3NbTUFYV0xFTl07CS8qIGZsYWdzIGZvciBjb21wb3VuZCB3b3JkcyB1c2VkICovCiAgICAgaW50CQltaV9jb21wbGVuOwkJLyogbnIgb2YgY29tcG91bmQgd29yZHMgdXNlZCAqLworICAgIGludAkJbWlfY29tcGV4dHJhOwkJLyogbnIgb2YgQ09NUE9VTkRST09UIHdvcmRzICovCiAKICAgICAvKiBvdGhlcnMgKi8KICAgICBpbnQJCW1pX3Jlc3VsdDsJCS8qIHJlc3VsdCBzbyBmYXI6IFNQX0JBRCwgU1BfT0ssIGV0Yy4gKi8KQEAgLTE0NzUsOSArMTQ5MywxMCBAQAogCQkJY29udGludWU7CiAjZW5kaWYKIAotCQkvKiBMaW1pdCB0aGUgbnVtYmVyIG9mIGNvbXBvdW5kIHdvcmRzIHRvIENPTVBPVU5ETUFYIGlmIG5vCisJCS8qIExpbWl0IHRoZSBudW1iZXIgb2YgY29tcG91bmQgd29yZHMgdG8gQ09NUE9VTkRXT1JETUFYIGlmIG5vCiAJCSAqIG1heGltdW0gZm9yIHN5bGxhYmxlcyBpcyBzcGVjaWZpZWQuICovCi0JCWlmICghd29yZF9lbmRzICYmIG1pcC0+bWlfY29tcGxlbiArIDIgPiBzbGFuZy0+c2xfY29tcG1heAorCQlpZiAoIXdvcmRfZW5kcyAmJiBtaXAtPm1pX2NvbXBsZW4gKyBtaXAtPm1pX2NvbXBleHRyYSArIDIKKwkJCQkJCQkgICA+IHNsYW5nLT5zbF9jb21wbWF4CiAJCQkJCSAgICYmIHNsYW5nLT5zbF9jb21wc3lsbWF4ID09IE1BWFdMRU4pCiAJCSAgICBjb250aW51ZTsKIApAQCAtMTU4OSw2ICsxNjA4LDggQEAKICNlbmRpZgogCQljID0gbWlwLT5taV9jb21wb2ZmOwogCQkrK21pcC0+bWlfY29tcGxlbjsKKwkJaWYgKGZsYWdzICYgV0ZfQ09NUFJPT1QpCisJCSAgICArK21pcC0+bWlfY29tcGV4dHJhOwogCiAJCS8qIEZvciBOT0JSRUFLIHdlIG5lZWQgdG8gdHJ5IGFsbCBOT0JSRUFLIGxhbmd1YWdlcywgYXQgbGVhc3QKIAkJICogdG8gZmluZCB0aGUgIi5hZGQiIGZpbGUocykuICovCkBAIC0xNjI1LDYgKzE2NDYsOCBAQAogCQkJYnJlYWs7CiAJCX0KIAkJLS1taXAtPm1pX2NvbXBsZW47CisJCWlmIChmbGFncyAmIFdGX0NPTVBST09UKQorCQkgICAgLS1taXAtPm1pX2NvbXBleHRyYTsKIAkJbWlwLT5taV9scCA9IHNhdmVfbHA7CiAKIAkJaWYgKHNsYW5nLT5zbF9ub2JyZWFrKQpAQCAtMTcyNiw3ICsxNzQ5LDcgQEAKIAogICAgIC8qIENvdW50IHRoZSBudW1iZXIgb2Ygc3lsbGFibGVzLiAgVGhpcyBtYXkgYmUgc2xvdywgZG8gaXQgbGFzdC4gIElmIHRoZXJlCiAgICAgICogYXJlIHRvbyBtYW55IHN5bGxhYmxlcyBBTkQgdGhlIG51bWJlciBvZiBjb21wb3VuZCB3b3JkcyBpcyBhYm92ZQotICAgICAqIENPTVBPVU5ETUFYIHRoZW4gY29tcG91bmRpbmcgaXMgbm90IGFsbG93ZWQuICovCisgICAgICogQ09NUE9VTkRXT1JETUFYIHRoZW4gY29tcG91bmRpbmcgaXMgbm90IGFsbG93ZWQuICovCiAgICAgaWYgKHNsYW5nLT5zbF9jb21wc3lsbWF4IDwgTUFYV0xFTgogCQkgICAgICAgJiYgY291bnRfc3lsbGFibGVzKHNsYW5nLCB3b3JkKSA+IHNsYW5nLT5zbF9jb21wc3lsbWF4KQogCXJldHVybiAoaW50KVNUUkxFTihmbGFncykgPCBzbGFuZy0+c2xfY29tcG1heDsKQEAgLTI0NjUsNiArMjQ4OCw4IEBACiAgICAgbHAtPnNsX3N5bGxhYmxlID0gTlVMTDsKICAgICBnYV9jbGVhcigmbHAtPnNsX3N5bF9pdGVtcyk7CiAKKyAgICBnYV9jbGVhcl9zdHJpbmdzKCZscC0+c2xfY29tcHBhdCk7CisKICAgICBoYXNoX2NsZWFyX2FsbCgmbHAtPnNsX3dvcmRjb3VudCwgV0NfS0VZX09GRik7CiAgICAgaGFzaF9pbml0KCZscC0+c2xfd29yZGNvdW50KTsKIApAQCAtMzM3MSw3ICszMzk2LDcgQEAKIAogLyoKICAqIFJlYWQgdGhlIGNvbXBvdW5kIHNlY3Rpb24gZnJvbSB0aGUgLnNwbCBmaWxlOgotICoJPGNvbXBtYXg+IDxjb21wbWlubGVuPiA8Y29tcHN5bG1heD4gPGNvbXBmbGFncz4KKyAqCTxjb21wbWF4PiA8Y29tcG1pbmxlbj4gPGNvbXBzeWxtYXg+IDxjb21wb3B0aW9ucz4gPGNvbXBmbGFncz4KICAqIFJldHVybnMgU1BfKkVSUk9SIGZsYWdzLgogICovCiAgICAgc3RhdGljIGludApAQCAtMzM4Nyw2ICszNDEyLDggQEAKICAgICBjaGFyX3UJKnBwOwogICAgIGNoYXJfdQkqY3A7CiAgICAgY2hhcl91CSphcDsKKyAgICBpbnQJCWNudDsKKyAgICBnYXJyYXlfVAkqZ2FwOwogCiAgICAgaWYgKHRvZG8gPCAyKQogCXJldHVybiBTUF9GT1JNRVJST1I7CS8qIG5lZWQgYXQgbGVhc3QgdHdvIGJ5dGVzICovCkBAIC0zNDA5LDYgKzM0MzYsMzIgQEAKIAljID0gTUFYV0xFTjsKICAgICBzbGFuZy0+c2xfY29tcHN5bG1heCA9IGM7CiAKKyAgICBjID0gZ2V0YyhmZCk7CQkJCQkvKiA8Y29tcG9wdGlvbnM+ICovCisgICAgaWYgKGMgIT0gMCkKKwl1bmdldGMoYywgZmQpOwkgICAgLyogYmUgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBWaW0gNy4wYiAqLworICAgIGVsc2UKKyAgICB7CisJLS10b2RvOworCWMgPSBnZXRjKGZkKTsJICAgIC8qIG9ubHkgdXNlIHRoZSBsb3dlciBieXRlIGZvciBub3cgKi8KKwktLXRvZG87CisJc2xhbmctPnNsX2NvbXBvcHRpb25zID0gYzsKKworCWdhcCA9ICZzbGFuZy0+c2xfY29tcHBhdDsKKwljID0gZ2V0MmMoZmQpOwkJCQkJLyogPGNvbXBwYXRjb3VudD4gKi8KKwl0b2RvIC09IDI7CisJZ2FfaW5pdDIoZ2FwLCBzaXplb2YoY2hhcl91ICopLCBjKTsKKwlpZiAoZ2FfZ3JvdyhnYXAsIGMpID09IE9LKQorCSAgICB3aGlsZSAoLS1jID49IDApCisJICAgIHsKKwkJKChjaGFyX3UgKiopKGdhcC0+Z2FfZGF0YSkpW2dhcC0+Z2FfbGVuKytdID0KKwkJCQkJCSByZWFkX2NudF9zdHJpbmcoZmQsIDEsICZjbnQpOworCQkJCQkgICAgLyogPGNvbXBwYXRsZW4+IDxjb21wcGF0dGV4dD4gKi8KKwkJaWYgKGNudCA8IDApCisJCSAgICByZXR1cm4gY250OworCQl0b2RvIC09IGNudCArIDI7CisJICAgIH0KKyAgICB9CisKICAgICAvKiBUdXJuIHRoZSBDT01QT1VORFJVTEUgaXRlbXMgaW50byBhIHJlZ2V4cCBwYXR0ZXJuOgogICAgICAqICJhW2JjXS9hKmIrIiAtPiAiXlwoYVtiY11cfGEqYlwrXCkkIi4KICAgICAgKiBJbnNlcnRpbmcgYmFja3NsYXNoZXMgbWF5IGRvdWJsZSB0aGUgbGVuZ3RoLCAiXlwoXCkkPE51bD4iIGlzIDcgYnl0ZXMuCkBAIC00NTg4LDggKzQ2NDEsMTIgQEAKICAgICB1bnNpZ25lZAlhZl9iYWQ7CQkvKiBCQUQgSUQgZm9yIGJhbm5lZCB3b3JkICovCiAgICAgdW5zaWduZWQJYWZfbmVlZGFmZml4OwkvKiBORUVEQUZGSVggSUQgKi8KICAgICB1bnNpZ25lZAlhZl9uZWVkY29tcDsJLyogTkVFRENPTVBPVU5EIElEICovCisgICAgdW5zaWduZWQJYWZfY29tcHJvb3Q7CS8qIENPTVBPVU5EUk9PVCBJRCAqLworICAgIHVuc2lnbmVkCWFmX2NvbXBmb3JiaWQ7CS8qIENPTVBPVU5ERk9SQklERkxBRyBJRCAqLworICAgIHVuc2lnbmVkCWFmX2NvbXBwZXJtaXQ7CS8qIENPTVBPVU5EUEVSTUlURkxBRyBJRCAqLwogICAgIHVuc2lnbmVkCWFmX25vc3VnZ2VzdDsJLyogTk9TVUdHRVNUIElEICovCi0gICAgaW50CQlhZl9wZnhwb3N0cG9uZTsJLyogcG9zdHBvbmUgcHJlZml4ZXMgd2l0aG91dCBjaG9wIHN0cmluZyAqLworICAgIGludAkJYWZfcGZ4cG9zdHBvbmU7CS8qIHBvc3Rwb25lIHByZWZpeGVzIHdpdGhvdXQgY2hvcCBzdHJpbmcgYW5kCisJCQkJICAgd2l0aG91dCBmbGFncyAqLwogICAgIGhhc2h0YWJfVAlhZl9wcmVmOwkvKiBoYXNodGFibGUgZm9yIHByZWZpeGVzLCBhZmZoZWFkZXJfVCAqLwogICAgIGhhc2h0YWJfVAlhZl9zdWZmOwkvKiBoYXNodGFibGUgZm9yIHN1ZmZpeGVzLCBhZmZoZWFkZXJfVCAqLwogICAgIGhhc2h0YWJfVAlhZl9jb21wOwkvKiBoYXNodGFibGUgZm9yIGNvbXBvdW5kIGZsYWdzLCBjb21waXRlbV9UICovCkBAIC00NjA3LDkgKzQ2NjQsOSBAQAogICAgIGFmZmVudHJ5X1QJKmFlX25leHQ7CS8qIG5leHQgYWZmaXggd2l0aCBzYW1lIG5hbWUvbnVtYmVyICovCiAgICAgY2hhcl91CSphZV9jaG9wOwkvKiB0ZXh0IHRvIGNob3Agb2ZmIGJhc2ljIHdvcmQgKGNhbiBiZSBOVUxMKSAqLwogICAgIGNoYXJfdQkqYWVfYWRkOwkvKiB0ZXh0IHRvIGFkZCB0byBiYXNpYyB3b3JkIChjYW4gYmUgTlVMTCkgKi8KKyAgICBjaGFyX3UJKmFlX2ZsYWdzOwkvKiBmbGFncyBvbiB0aGUgYWZmaXggKGNhbiBiZSBOVUxMKSAqLwogICAgIGNoYXJfdQkqYWVfY29uZDsJLyogY29uZGl0aW9uIChOVUxMIGZvciAiLiIpICovCiAgICAgcmVncHJvZ19UCSphZV9wcm9nOwkvKiByZWdleHAgcHJvZ3JhbSBmb3IgYWVfY29uZCBvciBOVUxMICovCi0gICAgY2hhcl91CWFlX3JhcmU7CS8qIHJhcmUgYWZmaXggKi8KICAgICBjaGFyX3UJYWVfbm9jb21wOwkvKiB3b3JkIHdpdGggYWZmaXggbm90IGNvbXBvdW5kYWJsZSAqLwogfTsKIApAQCAtNDc1Nyw2ICs0ODE0LDkgQEAKICAgICBpbnQJCXNpX2NvbXBtYXg7CS8qIG1heCBuciBvZiB3b3JkcyBmb3IgY29tcG91bmRpbmcgKi8KICAgICBpbnQJCXNpX2NvbXBtaW5sZW47CS8qIG1pbmltYWwgbGVuZ3RoIGZvciBjb21wb3VuZGluZyAqLwogICAgIGludAkJc2lfY29tcHN5bG1heDsJLyogbWF4IG5yIG9mIHN5bGxhYmxlcyBmb3IgY29tcG91bmRpbmcgKi8KKyAgICBpbnQJCXNpX2NvbXBvcHRpb25zOwkvKiBDT01QXyBmbGFncyAqLworICAgIGdhcnJheV9UCXNpX2NvbXBwYXQ7CS8qIENIRUNLQ09NUE9VTkRQQVRURVJOIGl0ZW1zLCBlYWNoIHN0b3JlZCBhcworCQkJCSAgIGEgc3RyaW5nICovCiAgICAgY2hhcl91CSpzaV9jb21wZmxhZ3M7CS8qIGZsYWdzIHVzZWQgZm9yIGNvbXBvdW5kaW5nICovCiAgICAgY2hhcl91CXNpX25vYnJlYWs7CS8qIE5PQlJFQUsgKi8KICAgICBjaGFyX3UJKnNpX3N5bGxhYmxlOwkvKiBzeWxsYWJsZSBzdHJpbmcgKi8KQEAgLTQ5NjAsNyArNTAyMCw4IEBACiAgICAgaW50CQlsOwogICAgIGludAkJY29tcG1pbmxlbiA9IDA7CQkvKiBDT01QT1VORE1JTiB2YWx1ZSAqLwogICAgIGludAkJY29tcHN5bG1heCA9IDA7CQkvKiBDT01QT1VORFNZTE1BWCB2YWx1ZSAqLwotICAgIGludAkJY29tcG1heCA9IDA7CQkvKiBDT01QT1VORE1BWCB2YWx1ZSAqLworICAgIGludAkJY29tcG9wdGlvbnMgPSAwOwkvKiBDT01QXyBmbGFncyAqLworICAgIGludAkJY29tcG1heCA9IDA7CQkvKiBDT01QT1VORFdPUkRNQVggdmFsdWUgKi8KICAgICBjaGFyX3UJKmNvbXBmbGFncyA9IE5VTEw7CS8qIENPTVBPVU5ERkxBRyBhbmQgQ09NUE9VTkRSVUxFCiAJCQkJCSAgIGNvbmNhdGVuYXRlZCAqLwogICAgIGNoYXJfdQkqbWlkd29yZCA9IE5VTEw7CS8qIE1JRFdPUkQgdmFsdWUgKi8KQEAgLTUwOTYsNiArNTE1Nyw3IEBACiAJCQl8fCBhZmYtPmFmX2JhZCAhPSAwCiAJCQl8fCBhZmYtPmFmX25lZWRhZmZpeCAhPSAwCiAJCQl8fCBhZmYtPmFmX25lZWRjb21wICE9IDAKKwkJCXx8IGFmZi0+YWZfY29tcHJvb3QgIT0gMAogCQkJfHwgYWZmLT5hZl9ub3N1Z2dlc3QgIT0gMAogCQkJfHwgY29tcGZsYWdzICE9IE5VTEwKIAkJCXx8IGFmZi0+YWZfc3VmZi5odF91c2VkID4gMApAQCAtNTE3MSw2ICs1MjMzLDI0IEBACiAJCWFmZi0+YWZfbmVlZGNvbXAgPSBhZmZpdGVtMmZsYWcoYWZmLT5hZl9mbGFndHlwZSwgaXRlbXNbMV0sCiAJCQkJCQkJCSBmbmFtZSwgbG51bSk7CiAJICAgIH0KKwkgICAgZWxzZSBpZiAoU1RSQ01QKGl0ZW1zWzBdLCAiQ09NUE9VTkRST09UIikgPT0gMCAmJiBpdGVtY250ID09IDIKKwkJCQkJCSAgICAgJiYgYWZmLT5hZl9jb21wcm9vdCA9PSAwKQorCSAgICB7CisJCWFmZi0+YWZfY29tcHJvb3QgPSBhZmZpdGVtMmZsYWcoYWZmLT5hZl9mbGFndHlwZSwgaXRlbXNbMV0sCisJCQkJCQkJCSBmbmFtZSwgbG51bSk7CisJICAgIH0KKwkgICAgZWxzZSBpZiAoU1RSQ01QKGl0ZW1zWzBdLCAiQ09NUE9VTkRGT1JCSURGTEFHIikgPT0gMAorCQkJCSAgICYmIGl0ZW1jbnQgPT0gMiAmJiBhZmYtPmFmX2NvbXBmb3JiaWQgPT0gMCkKKwkgICAgeworCQlhZmYtPmFmX2NvbXBmb3JiaWQgPSBhZmZpdGVtMmZsYWcoYWZmLT5hZl9mbGFndHlwZSwgaXRlbXNbMV0sCisJCQkJCQkJCSBmbmFtZSwgbG51bSk7CisJICAgIH0KKwkgICAgZWxzZSBpZiAoU1RSQ01QKGl0ZW1zWzBdLCAiQ09NUE9VTkRQRVJNSVRGTEFHIikgPT0gMAorCQkJCSAgICYmIGl0ZW1jbnQgPT0gMiAmJiBhZmYtPmFmX2NvbXBwZXJtaXQgPT0gMCkKKwkgICAgeworCQlhZmYtPmFmX2NvbXBwZXJtaXQgPSBhZmZpdGVtMmZsYWcoYWZmLT5hZl9mbGFndHlwZSwgaXRlbXNbMV0sCisJCQkJCQkJCSBmbmFtZSwgbG51bSk7CisJICAgIH0KIAkgICAgZWxzZSBpZiAoU1RSQ01QKGl0ZW1zWzBdLCAiQ09NUE9VTkRGTEFHIikgPT0gMCAmJiBpdGVtY250ID09IDIKIAkJCQkJCQkgJiYgY29tcGZsYWdzID09IE5VTEwpCiAJICAgIHsKQEAgLTUyMDMsMTIgKzUyODMsMTIgQEAKIAkJICAgIGNvbXBmbGFncyA9IHA7CiAJCX0KIAkgICAgfQotCSAgICBlbHNlIGlmIChTVFJDTVAoaXRlbXNbMF0sICJDT01QT1VORE1BWCIpID09IDAgJiYgaXRlbWNudCA9PSAyCisJICAgIGVsc2UgaWYgKFNUUkNNUChpdGVtc1swXSwgIkNPTVBPVU5EV09SRE1BWCIpID09IDAgJiYgaXRlbWNudCA9PSAyCiAJCQkJCQkJICAgICAgJiYgY29tcG1heCA9PSAwKQogCSAgICB7CiAJCWNvbXBtYXggPSBhdG9pKChjaGFyICopaXRlbXNbMV0pOwogCQlpZiAoY29tcG1heCA9PSAwKQotCQkgICAgc21zZygoY2hhcl91ICopXygiV3JvbmcgQ09NUE9VTkRNQVggdmFsdWUgaW4gJXMgbGluZSAlZDogJXMiKSwKKwkJICAgIHNtc2coKGNoYXJfdSAqKV8oIldyb25nIENPTVBPVU5EV09SRE1BWCB2YWx1ZSBpbiAlcyBsaW5lICVkOiAlcyIpLAogCQkJCQkJICAgICAgIGZuYW1lLCBsbnVtLCBpdGVtc1sxXSk7CiAJICAgIH0KIAkgICAgZWxzZSBpZiAoU1RSQ01QKGl0ZW1zWzBdLCAiQ09NUE9VTkRNSU4iKSA9PSAwICYmIGl0ZW1jbnQgPT0gMgpAQCAtNTIyNyw2ICs1MzA3LDUwIEBACiAJCSAgICBzbXNnKChjaGFyX3UgKilfKCJXcm9uZyBDT01QT1VORFNZTE1BWCB2YWx1ZSBpbiAlcyBsaW5lICVkOiAlcyIpLAogCQkJCQkJICAgICAgIGZuYW1lLCBsbnVtLCBpdGVtc1sxXSk7CiAJICAgIH0KKwkgICAgZWxzZSBpZiAoU1RSQ01QKGl0ZW1zWzBdLCAiQ0hFQ0tDT01QT1VORERVUCIpID09IDAgJiYgaXRlbWNudCA9PSAxKQorCSAgICB7CisJCWNvbXBvcHRpb25zIHw9IENPTVBfQ0hFQ0tEVVA7CisJICAgIH0KKwkgICAgZWxzZSBpZiAoU1RSQ01QKGl0ZW1zWzBdLCAiQ0hFQ0tDT01QT1VORFJFUCIpID09IDAgJiYgaXRlbWNudCA9PSAxKQorCSAgICB7CisJCWNvbXBvcHRpb25zIHw9IENPTVBfQ0hFQ0tSRVA7CisJICAgIH0KKwkgICAgZWxzZSBpZiAoU1RSQ01QKGl0ZW1zWzBdLCAiQ0hFQ0tDT01QT1VORENBU0UiKSA9PSAwICYmIGl0ZW1jbnQgPT0gMSkKKwkgICAgeworCQljb21wb3B0aW9ucyB8PSBDT01QX0NIRUNLQ0FTRTsKKwkgICAgfQorCSAgICBlbHNlIGlmIChTVFJDTVAoaXRlbXNbMF0sICJDSEVDS0NPTVBPVU5EVFJJUExFIikgPT0gMAorCQkJCQkJCSAgICAgICYmIGl0ZW1jbnQgPT0gMSkKKwkgICAgeworCQljb21wb3B0aW9ucyB8PSBDT01QX0NIRUNLVFJJUExFOworCSAgICB9CisJICAgIGVsc2UgaWYgKFNUUkNNUChpdGVtc1swXSwgIkNIRUNLQ09NUE9VTkRQQVRURVJOIikgPT0gMAorCQkJCQkJCSAgICAgICYmIGl0ZW1jbnQgPT0gMikKKwkgICAgeworCQlpZiAoYXRvaSgoY2hhciAqKWl0ZW1zWzFdKSA9PSAwKQorCQkgICAgc21zZygoY2hhcl91ICopXygiV3JvbmcgQ0hFQ0tDT01QT1VORFBBVFRFUk4gdmFsdWUgaW4gJXMgbGluZSAlZDogJXMiKSwKKwkJCQkJCSAgICAgICBmbmFtZSwgbG51bSwgaXRlbXNbMV0pOworCSAgICB9CisJICAgIGVsc2UgaWYgKFNUUkNNUChpdGVtc1swXSwgIkNIRUNLQ09NUE9VTkRQQVRURVJOIikgPT0gMAorCQkJCQkJCSAgICAgICYmIGl0ZW1jbnQgPT0gMykKKwkgICAgeworCQlnYXJyYXlfVCAgICAqZ2FwID0gJnNwaW4tPnNpX2NvbXBwYXQ7CisJCWludAkgICAgaTsKKworCQkvKiBPbmx5IGFkZCB0aGUgY291cGxlIGlmIGl0IGlzbid0IGFscmVhZHkgdGhlcmUuICovCisJCWZvciAoaSA9IDA7IGkgPCBnYXAtPmdhX2xlbiAtIDE7IGkgKz0gMikKKwkJICAgIGlmIChTVFJDTVAoKChjaGFyX3UgKiopKGdhcC0+Z2FfZGF0YSkpW2ldLCBpdGVtc1sxXSkgPT0gMAorCQkJICAgICYmIFNUUkNNUCgoKGNoYXJfdSAqKikoZ2FwLT5nYV9kYXRhKSlbaSArIDFdLAorCQkJCQkJCSAgICAgICBpdGVtc1syXSkgPT0gMCkKKwkJCWJyZWFrOworCQlpZiAoaSA+PSBnYXAtPmdhX2xlbiAmJiBnYV9ncm93KGdhcCwgMikgPT0gT0spCisJCXsKKwkJICAgICgoY2hhcl91ICoqKShnYXAtPmdhX2RhdGEpKVtnYXAtPmdhX2xlbisrXQorCQkJCQkgICAgICAgPSBnZXRyb29tX3NhdmUoc3BpbiwgaXRlbXNbMV0pOworCQkgICAgKChjaGFyX3UgKiopKGdhcC0+Z2FfZGF0YSkpW2dhcC0+Z2FfbGVuKytdCisJCQkJCSAgICAgICA9IGdldHJvb21fc2F2ZShzcGluLCBpdGVtc1syXSk7CisJCX0KKwkgICAgfQogCSAgICBlbHNlIGlmIChTVFJDTVAoaXRlbXNbMF0sICJTWUxMQUJMRSIpID09IDAgJiYgaXRlbWNudCA9PSAyCiAJCQkJCQkJICAmJiBzeWxsYWJsZSA9PSBOVUxMKQogCSAgICB7CkBAIC01MjkzLDcgKzU0MTcsOCBAQAogCQkJICAgIHx8IGN1cl9hZmYtPmFoX2ZsYWcgPT0gYWZmLT5hZl9rZWVwY2FzZQogCQkJICAgIHx8IGN1cl9hZmYtPmFoX2ZsYWcgPT0gYWZmLT5hZl9uZWVkYWZmaXgKIAkJCSAgICB8fCBjdXJfYWZmLT5haF9mbGFnID09IGFmZi0+YWZfbm9zdWdnZXN0Ci0JCQkgICAgfHwgY3VyX2FmZi0+YWhfZmxhZyA9PSBhZmYtPmFmX25lZWRjb21wKQorCQkJICAgIHx8IGN1cl9hZmYtPmFoX2ZsYWcgPT0gYWZmLT5hZl9uZWVkY29tcAorCQkJICAgIHx8IGN1cl9hZmYtPmFoX2ZsYWcgPT0gYWZmLT5hZl9jb21wcm9vdCkKIAkJCXNtc2coKGNoYXJfdSAqKV8oIkFmZml4IGFsc28gdXNlZCBmb3IgQkFEL1JBUkUvS0VFUENBU0UvTkVFREFGRklYL05FRURDT01QT1VORC9OT1NVR0dFU1QgaW4gJXMgbGluZSAlZDogJXMiKSwKIAkJCQkJCSAgICAgICBmbmFtZSwgbG51bSwgaXRlbXNbMV0pOwogCQkgICAgU1RSQ1BZKGN1cl9hZmYtPmFoX2tleSwgaXRlbXNbMV0pOwpAQCAtNTMxNSw4ICs1NDQwLDcgQEAKIAkJLyogTXlzcGVsbCBhbGxvd3MgZXh0cmEgdGV4dCBhZnRlciB0aGUgaXRlbSwgYnV0IHRoYXQgbWlnaHQKIAkJICogbWVhbiBtaXN0YWtlcyBnbyB1bm5vdGljZWQuICBSZXF1aXJlIGEgY29tbWVudC1zdGFydGVyLiAqLwogCQlpZiAoaXRlbWNudCA+IGxhc3RpICYmICppdGVtc1tsYXN0aV0gIT0gJyMnKQotCQkgICAgc21zZygoY2hhcl91ICopXygiVHJhaWxpbmcgdGV4dCBpbiAlcyBsaW5lICVkOiAlcyIpLAotCQkJCQkJICAgICAgIGZuYW1lLCBsbnVtLCBpdGVtc1s0XSk7CisJCSAgICBzbXNnKChjaGFyX3UgKilfKGVfYWZmdHJhaWxpbmcpLCBmbmFtZSwgbG51bSwgaXRlbXNbbGFzdGldKTsKIAogCQlpZiAoU1RSQ01QKGl0ZW1zWzJdLCAiWSIpICE9IDAgJiYgU1RSQ01QKGl0ZW1zWzJdLCAiTiIpICE9IDApCiAJCSAgICBzbXNnKChjaGFyX3UgKilfKCJFeHBlY3RlZCBZIG9yIE4gaW4gJXMgbGluZSAlZDogJXMiKSwKQEAgLTUzNTAsMzEgKzU0NzQsMTYgQEAKIAkJICAgICYmIGl0ZW1jbnQgPj0gNSkKIAkgICAgewogCQlhZmZlbnRyeV9UCSphZmZfZW50cnk7Ci0JCWludAkJcmFyZSA9IEZBTFNFOwogCQlpbnQJCW5vY29tcCA9IEZBTFNFOwogCQlpbnQJCXVwcGVyID0gRkFMU0U7CiAJCWludAkJbGFzdGkgPSA1OwogCi0JCS8qIENoZWNrIGZvciAicmFyZSIgYW5kICJub2NvbXAiIGFmdGVyIHRoZSBvdGhlciBpbmZvLiAqLwotCQl3aGlsZSAoaXRlbWNudCA+IGxhc3RpKQotCQl7Ci0JCSAgICBpZiAoIXJhcmUgJiYgU1RSSUNNUChpdGVtc1tsYXN0aV0sICJyYXJlIikgPT0gMCkKLQkJICAgIHsKLQkJCXJhcmUgPSBUUlVFOwotCQkJKytsYXN0aTsKLQkJICAgIH0KLQkJICAgIGVsc2UgaWYgKCFub2NvbXAgJiYgU1RSSUNNUChpdGVtc1tsYXN0aV0sICJub2NvbXAiKSA9PSAwKQotCQkgICAgewotCQkJbm9jb21wID0gVFJVRTsKLQkJCSsrbGFzdGk7Ci0JCSAgICB9Ci0JCSAgICBlbHNlCi0JCQlicmVhazsKLQkJfQotCiAJCS8qIE15c3BlbGwgYWxsb3dzIGV4dHJhIHRleHQgYWZ0ZXIgdGhlIGl0ZW0sIGJ1dCB0aGF0IG1pZ2h0Ci0JCSAqIG1lYW4gbWlzdGFrZXMgZ28gdW5ub3RpY2VkLiAgUmVxdWlyZSBhIGNvbW1lbnQtc3RhcnRlci4gKi8KLQkJaWYgKGl0ZW1jbnQgPiBsYXN0aSAmJiAqaXRlbXNbbGFzdGldICE9ICcjJykKKwkJICogbWVhbiBtaXN0YWtlcyBnbyB1bm5vdGljZWQuICBSZXF1aXJlIGEgY29tbWVudC1zdGFydGVyLgorCQkgKiBIdW5zcGVsbCB1c2VzIGEgIi0iIGl0ZW0uICovCisJCWlmIChpdGVtY250ID4gbGFzdGkgJiYgKml0ZW1zW2xhc3RpXSAhPSAnIycKKwkJCSYmIChTVFJDTVAoaXRlbXNbbGFzdGldLCAiLSIpICE9IDAKKwkJCQkJCSAgICAgfHwgaXRlbWNudCAhPSBsYXN0aSArIDEpKQogCQkgICAgc21zZygoY2hhcl91ICopXyhlX2FmZnRyYWlsaW5nKSwgZm5hbWUsIGxudW0sIGl0ZW1zW2xhc3RpXSk7CiAKIAkJLyogTmV3IGl0ZW0gZm9yIGFuIGFmZml4IGxldHRlci4gKi8KQEAgLTUzODMsMTQgKzU0OTIsMjAgQEAKIAkJCQkJCSAgICBzaXplb2YoYWZmZW50cnlfVCksIFRSVUUpOwogCQlpZiAoYWZmX2VudHJ5ID09IE5VTEwpCiAJCSAgICBicmVhazsKLQkJYWZmX2VudHJ5LT5hZV9yYXJlID0gcmFyZTsKIAkJYWZmX2VudHJ5LT5hZV9ub2NvbXAgPSBub2NvbXA7CiAKIAkJaWYgKFNUUkNNUChpdGVtc1syXSwgIjAiKSAhPSAwKQogCQkgICAgYWZmX2VudHJ5LT5hZV9jaG9wID0gZ2V0cm9vbV9zYXZlKHNwaW4sIGl0ZW1zWzJdKTsKIAkJaWYgKFNUUkNNUChpdGVtc1szXSwgIjAiKSAhPSAwKQorCQl7CiAJCSAgICBhZmZfZW50cnktPmFlX2FkZCA9IGdldHJvb21fc2F2ZShzcGluLCBpdGVtc1szXSk7CiAKKwkJICAgIC8qIFJlY29nbml6ZSBmbGFncyBvbiB0aGUgYWZmaXg6IGFiY2QvMTIzNCAqLworCQkgICAgYWZmX2VudHJ5LT5hZV9mbGFncyA9IHZpbV9zdHJjaHIoYWZmX2VudHJ5LT5hZV9hZGQsICcvJyk7CisJCSAgICBpZiAoYWZmX2VudHJ5LT5hZV9mbGFncyAhPSBOVUxMKQorCQkJKmFmZl9lbnRyeS0+YWVfZmxhZ3MrKyA9IE5VTDsKKwkJfQorCiAJCS8qIERvbid0IHVzZSBhbiBhZmZpeCBlbnRyeSB3aXRoIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIHdoZW4KIAkJICogInNwaW4tPnNpX2FzY2lpIiBpcyBUUlVFLiAqLwogCQlpZiAoIXNwaW4tPnNpX2FzY2lpIHx8ICEoaGFzX25vbl9hc2NpaShhZmZfZW50cnktPmFlX2Nob3ApCkBAIC01NDE2LDggKzU1MzEsMTAgQEAKIAkJICAgIH0KIAogCQkgICAgLyogRm9yIHBvc3Rwb25lZCBwcmVmaXhlcyB3ZSBuZWVkIGFuIGVudHJ5IGluIHNpX3ByZWZjb25kCi0JCSAgICAgKiBmb3IgdGhlIGNvbmRpdGlvbi4gIFVzZSBhbiBleGlzdGluZyBvbmUgaWYgcG9zc2libGUuICovCi0JCSAgICBpZiAoKml0ZW1zWzBdID09ICdQJyAmJiBhZmYtPmFmX3BmeHBvc3Rwb25lKQorCQkgICAgICogZm9yIHRoZSBjb25kaXRpb24uICBVc2UgYW4gZXhpc3Rpbmcgb25lIGlmIHBvc3NpYmxlLgorCQkgICAgICogQ2FuJ3QgYmUgZG9uZSBmb3IgYW4gYWZmaXggd2l0aCBmbGFncy4gKi8KKwkJICAgIGlmICgqaXRlbXNbMF0gPT0gJ1AnICYmIGFmZi0+YWZfcGZ4cG9zdHBvbmUKKwkJCQkJICAgICAgICYmIGFmZl9lbnRyeS0+YWVfZmxhZ3MgPT0gTlVMTCkKIAkJICAgIHsKIAkJCS8qIFdoZW4gdGhlIGNob3Agc3RyaW5nIGlzIG9uZSBsb3dlci1jYXNlIGxldHRlciBhbmQKIAkJCSAqIHRoZSBhZGQgc3RyaW5nIGVuZHMgaW4gdGhlIHVwcGVyLWNhc2UgbGV0dGVyIHdlIHNldApAQCAtNTQ4MCw3ICs1NTk3LDggQEAKIAkJCSAgICB9CiAJCQl9CiAKLQkJCWlmIChhZmZfZW50cnktPmFlX2Nob3AgPT0gTlVMTCkKKwkJCWlmIChhZmZfZW50cnktPmFlX2Nob3AgPT0gTlVMTAorCQkJCQkgICAgICAgJiYgYWZmX2VudHJ5LT5hZV9mbGFncyA9PSBOVUxMKQogCQkJewogCQkJICAgIGludAkJaWR4OwogCQkJICAgIGNoYXJfdQkqKnBwOwpAQCAtNTUwNywxNiArNTYyNSwxOSBAQAogCQkJCQkJCSAgYWZmX2VudHJ5LT5hZV9jb25kKTsKIAkJCSAgICB9CiAKKwkJCSAgICBpZiAoYWZmX2VudHJ5LT5hZV9mbGFncyAhPSBOVUxMKQorCQkJCXNtc2coKGNoYXJfdSAqKV8oIkFmZml4IGZsYWdzIGlnbm9yZWQgd2hlbiBQRlhQT1NUUE9ORSB1c2VkIGluICVzIGxpbmUgJWQ6ICVzIiksCisJCQkJCQkgICAgICAgZm5hbWUsIGxudW0sIGl0ZW1zWzRdKTsKKwogCQkJICAgIC8qIEFkZCB0aGUgcHJlZml4IHRvIHRoZSBwcmVmaXggdHJlZS4gKi8KIAkJCSAgICBpZiAoYWZmX2VudHJ5LT5hZV9hZGQgPT0gTlVMTCkKIAkJCQlwID0gKGNoYXJfdSAqKSIiOwogCQkJICAgIGVsc2UKIAkJCQlwID0gYWZmX2VudHJ5LT5hZV9hZGQ7CisKIAkJCSAgICAvKiBQRlhfRkxBR1MgaXMgYSBuZWdhdGl2ZSBudW1iZXIsIHNvIHRoYXQKIAkJCSAgICAgKiB0cmVlX2FkZF93b3JkKCkga25vd3MgdGhpcyBpcyB0aGUgcHJlZml4IHRyZWUuICovCiAJCQkgICAgbiA9IFBGWF9GTEFHUzsKLQkJCSAgICBpZiAocmFyZSkKLQkJCQluIHw9IFdGUF9SQVJFOwogCQkJICAgIGlmICghY3VyX2FmZi0+YWhfY29tYmluZSkKIAkJCQluIHw9IFdGUF9OQzsKIAkJCSAgICBpZiAodXBwZXIpCkBAIC01NzA5LDcgKzU4MzAsNyBAQAogICAgIC8qIFVzZSBjb21wb3VuZCBzcGVjaWZpY2F0aW9ucyBvZiB0aGUgLmFmZiBmaWxlIGZvciB0aGUgc3BlbGwgaW5mby4gKi8KICAgICBpZiAoY29tcG1heCAhPSAwKQogICAgIHsKLQlhZmZfY2hlY2tfbnVtYmVyKHNwaW4tPnNpX2NvbXBtYXgsIGNvbXBtYXgsICJDT01QT1VORE1BWCIpOworCWFmZl9jaGVja19udW1iZXIoc3Bpbi0+c2lfY29tcG1heCwgY29tcG1heCwgIkNPTVBPVU5EV09SRE1BWCIpOwogCXNwaW4tPnNpX2NvbXBtYXggPSBjb21wbWF4OwogICAgIH0KIApAQCAtNTcyNyw2ICs1ODQ4LDEyIEBACiAJc3Bpbi0+c2lfY29tcHN5bG1heCA9IGNvbXBzeWxtYXg7CiAgICAgfQogCisgICAgaWYgKGNvbXBvcHRpb25zICE9IDApCisgICAgeworCWFmZl9jaGVja19udW1iZXIoc3Bpbi0+c2lfY29tcG9wdGlvbnMsIGNvbXBvcHRpb25zLCAiQ09NUE9VTkQgb3B0aW9ucyIpOworCXNwaW4tPnNpX2NvbXBvcHRpb25zIHw9IGNvbXBvcHRpb25zOworICAgIH0KKwogICAgIGlmIChjb21wZmxhZ3MgIT0gTlVMTCkKIAlwcm9jZXNzX2NvbXBmbGFncyhzcGluLCBhZmYsIGNvbXBmbGFncyk7CiAKQEAgLTYzMjcsNiArNjQ1NCw5IEBACiAJICAgIGlmIChhZmZpbGUtPmFmX25lZWRjb21wICE9IDAgJiYgZmxhZ19pbl9hZmZsaXN0KAogCQkJICAgYWZmaWxlLT5hZl9mbGFndHlwZSwgYWZmbGlzdCwgYWZmaWxlLT5hZl9uZWVkY29tcCkpCiAJCWZsYWdzIHw9IFdGX05FRURDT01QOworCSAgICBpZiAoYWZmaWxlLT5hZl9jb21wcm9vdCAhPSAwICYmIGZsYWdfaW5fYWZmbGlzdCgKKwkJCSAgIGFmZmlsZS0+YWZfZmxhZ3R5cGUsIGFmZmxpc3QsIGFmZmlsZS0+YWZfY29tcHJvb3QpKQorCQlmbGFncyB8PSBXRl9DT01QUk9PVDsKIAkgICAgaWYgKGFmZmlsZS0+YWZfbm9zdWdnZXN0ICE9IDAgJiYgZmxhZ19pbl9hZmZsaXN0KAogCQkJICAgYWZmaWxlLT5hZl9mbGFndHlwZSwgYWZmbGlzdCwgYWZmaWxlLT5hZl9ub3N1Z2dlc3QpKQogCQlmbGFncyB8PSBXRl9OT1NVR0dFU1Q7CkBAIC02NTEyLDExICs2NjQyLDEyIEBACiAJCSAgICAgKiBBbm90aGVyIHJlcXVpcmVtZW50IGZyb20gTXlzcGVsbCBpcyB0aGF0IHRoZSBjaG9wCiAJCSAgICAgKiBzdHJpbmcgaXMgc2hvcnRlciB0aGFuIHRoZSB3b3JkIGl0c2VsZi4KIAkJICAgICAqIEZvciBwcmVmaXhlcywgd2hlbiAiUEZYUE9TVFBPTkUiIHdhcyB1c2VkLCBvbmx5IGRvCi0JCSAgICAgKiBwcmVmaXhlcyB3aXRoIGEgY2hvcCBzdHJpbmcuICovCisJCSAgICAgKiBwcmVmaXhlcyB3aXRoIGEgY2hvcCBzdHJpbmcgYW5kL29yIGZsYWdzLiAqLwogCQkgICAgcmVnbWF0Y2gucmVncHJvZyA9IGFlLT5hZV9wcm9nOwogCQkgICAgcmVnbWF0Y2gucm1faWMgPSBGQUxTRTsKIAkJICAgIGlmICgoeGh0ICE9IE5VTEwgfHwgIWFmZmlsZS0+YWZfcGZ4cG9zdHBvbmUKLQkJCQl8fCBhZS0+YWVfY2hvcCAhPSBOVUxMKQorCQkJCXx8IGFlLT5hZV9jaG9wICE9IE5VTEwKKwkJCQl8fCBhZS0+YWVfZmxhZ3MgIT0gTlVMTCkKIAkJCSAgICAmJiAoYWUtPmFlX2Nob3AgPT0gTlVMTAogCQkJCXx8IFNUUkxFTihhZS0+YWVfY2hvcCkgPCB3b3JkbGVuKQogCQkJICAgICYmIChhZS0+YWVfcHJvZyA9PSBOVUxMCkBAIC02NTY1LDE1ICs2Njk2LDI0IEBACiAJCQl9CiAKIAkJCS8qIE9iZXkgdGhlICJyYXJlIiBmbGFnIG9mIHRoZSBhZmZpeC4gKi8KLQkJCWlmIChhZS0+YWVfcmFyZSkKKwkJCWlmIChhZmZpbGUtPmFmX3JhcmUgIT0gMAorCQkJCSYmIGFlLT5hZV9mbGFncyAhPSBOVUxMCisJCQkJJiYgZmxhZ19pbl9hZmZsaXN0KAorCQkJCSAgICBhZmZpbGUtPmFmX2ZsYWd0eXBlLCBhZS0+YWVfZmxhZ3MsCisJCQkJCQkJICAgICBhZmZpbGUtPmFmX3JhcmUpKQogCQkJICAgIHVzZV9mbGFncyA9IGZsYWdzIHwgV0ZfUkFSRTsKIAkJCWVsc2UKIAkJCSAgICB1c2VfZmxhZ3MgPSBmbGFnczsKIAotCQkJLyogT2JleSB0aGUgIm5vY29tcCIgZmxhZyBvZiB0aGUgYWZmaXg6IGRvbid0IHVzZSB0aGUKLQkJCSAqIGNvbXBvdW5kIGZsYWdzLiAqLworCQkJLyogT2JleSBhICJDT01QT1VOREZPUkJJRCIgZmxhZyBvZiB0aGUgYWZmaXg6IGRvbid0CisJCQkgKiB1c2UgdGhlIGNvbXBvdW5kIGZsYWdzLiAqLwogCQkJdXNlX3BmeGxpc3QgPSBwZnhsaXN0OwotCQkJaWYgKGFlLT5hZV9ub2NvbXAgJiYgcGZ4bGlzdCAhPSBOVUxMKQorCQkJaWYgKHBmeGxpc3QgIT0gTlVMTAorCQkJCSYmIGFmZmlsZS0+YWZfY29tcGZvcmJpZCAhPSAwCisJCQkJJiYgYWUtPmFlX2ZsYWdzICE9IE5VTEwKKwkJCQkmJiBmbGFnX2luX2FmZmxpc3QoCisJCQkJICAgIGFmZmlsZS0+YWZfZmxhZ3R5cGUsIGFlLT5hZV9mbGFncywKKwkJCQkJCSAgICAgICBhZmZpbGUtPmFmX2NvbXBmb3JiaWQpKQogCQkJewogCQkJICAgIHZpbV9zdHJuY3B5KHBmeF9wZnhsaXN0LCBwZnhsaXN0LCBwZnhsZW4pOwogCQkJICAgIHVzZV9wZnhsaXN0ID0gcGZ4X3BmeGxpc3Q7CkBAIC03ODAzLDEyICs3OTQzLDI2IEBACiAJcHV0YygwLCBmZCk7CQkJCQkvKiA8c2VjdGlvbmZsYWdzPiAqLwogCiAJbCA9IFNUUkxFTihzcGluLT5zaV9jb21wZmxhZ3MpOwotCXB1dF9ieXRlcyhmZCwgKGxvbmdfdSkobCArIDMpLCA0KTsJCS8qIDxzZWN0aW9ubGVuPiAqLworCWZvciAoaSA9IDA7IGkgPCBzcGluLT5zaV9jb21wcGF0LmdhX2xlbjsgKytpKQorCSAgICBsICs9IFNUUkxFTigoKGNoYXJfdSAqKikoc3Bpbi0+c2lfY29tcHBhdC5nYV9kYXRhKSlbaV0pICsgMTsKKwlwdXRfYnl0ZXMoZmQsIChsb25nX3UpKGwgKyA3KSwgNCk7CQkvKiA8c2VjdGlvbmxlbj4gKi8KKwogCXB1dGMoc3Bpbi0+c2lfY29tcG1heCwgZmQpOwkJCS8qIDxjb21wbWF4PiAqLwogCXB1dGMoc3Bpbi0+c2lfY29tcG1pbmxlbiwgZmQpOwkJCS8qIDxjb21wbWlubGVuPiAqLwogCXB1dGMoc3Bpbi0+c2lfY29tcHN5bG1heCwgZmQpOwkJCS8qIDxjb21wc3lsbWF4PiAqLworCXB1dGMoMCwgZmQpOwkJLyogZm9yIFZpbSA3LjBiIGNvbXBhdGliaWxpdHkgKi8KKwlwdXRjKHNwaW4tPnNpX2NvbXBvcHRpb25zLCBmZCk7CQkJLyogPGNvbXBvcHRpb25zPiAqLworCXB1dF9ieXRlcyhmZCwgKGxvbmdfdSlzcGluLT5zaV9jb21wcGF0LmdhX2xlbiwgMik7CisJCQkJCQkJLyogPGNvbXBwYXRjb3VudD4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgc3Bpbi0+c2lfY29tcHBhdC5nYV9sZW47ICsraSkKKwl7CisJICAgIHAgPSAoKGNoYXJfdSAqKikoc3Bpbi0+c2lfY29tcHBhdC5nYV9kYXRhKSlbaV07CisJICAgIHB1dGMoU1RSTEVOKHApLCBmZCk7CQkJLyogPGNvbXBwYXRsZW4+ICovCisJICAgIGZ3cml0ZShwLCAoc2l6ZV90KVNUUkxFTihwKSwgKHNpemVfdCkxLCBmZCk7LyogPGNvbXBwYXR0ZXh0PiAqLworCX0KIAkJCQkJCQkvKiA8Y29tcGZsYWdzPiAqLwotCWZ3cml0ZShzcGluLT5zaV9jb21wZmxhZ3MsIChzaXplX3QpbCwgKHNpemVfdCkxLCBmZCk7CisJZndyaXRlKHNwaW4tPnNpX2NvbXBmbGFncywgKHNpemVfdClTVFJMRU4oc3Bpbi0+c2lfY29tcGZsYWdzKSwKKwkJCQkJCQkgICAgICAgKHNpemVfdCkxLCBmZCk7CiAgICAgfQogCiAgICAgLyogU05fTk9CUkVBSzogTk9CUkVBSyBmbGFnICovCkBAIC04NjExLDYgKzg3NjUsNyBAQAogICAgIGdhX2luaXQyKCZzcGluLnNpX3JlcHNhbCwgKGludClzaXplb2YoZnJvbXRvX1QpLCAyMCk7CiAgICAgZ2FfaW5pdDIoJnNwaW4uc2lfc2FsLCAoaW50KXNpemVvZihmcm9tdG9fVCksIDIwKTsKICAgICBnYV9pbml0Migmc3Bpbi5zaV9tYXAsIChpbnQpc2l6ZW9mKGNoYXJfdSksIDEwMCk7CisgICAgZ2FfaW5pdDIoJnNwaW4uc2lfY29tcHBhdCwgKGludClzaXplb2YoY2hhcl91ICopLCAyMCk7CiAgICAgZ2FfaW5pdDIoJnNwaW4uc2lfcHJlZmNvbmQsIChpbnQpc2l6ZW9mKGNoYXJfdSAqKSwgNTApOwogICAgIGhhc2hfaW5pdCgmc3Bpbi5zaV9jb21tb253b3Jkcyk7CiAgICAgc3Bpbi5zaV9uZXdjb21wSUQgPSAxMjc7CS8qIHN0YXJ0IGNvbXBvdW5kIElEIGF0IGZpcnN0IG1heGltdW0gKi8KQEAgLTg4MDQsNiArODk1OSw3IEBACiAJZ2FfY2xlYXIoJnNwaW4uc2lfcmVwc2FsKTsKIAlnYV9jbGVhcigmc3Bpbi5zaV9zYWwpOwogCWdhX2NsZWFyKCZzcGluLnNpX21hcCk7CisJZ2FfY2xlYXIoJnNwaW4uc2lfY29tcHBhdCk7CiAJZ2FfY2xlYXIoJnNwaW4uc2lfcHJlZmNvbmQpOwogCWhhc2hfY2xlYXJfYWxsKCZzcGluLnNpX2NvbW1vbndvcmRzLCAwKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3N5bnRheC5jIGIvc3JjL3N5bnRheC5jCmluZGV4IDc3NzZjMDkuLmY2NmY2MzkgMTAwNjQ0Ci0tLSBhL3NyYy9zeW50YXguYworKysgYi9zcmMvc3ludGF4LmMKQEAgLTYwNjYsMjAzICs2MDY2LDIwOCBAQAogICogVGhlICNpZmRlZnMgYXJlIG5lZWRlZCB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiBzdGF0aWMgZGF0YS4gIEhlbHBzIHRvIG1ha2UKICAqIHRoZSAxNiBiaXQgRE9TIChtdXNldW0pIHZlcnNpb24gY29tcGlsZS4KICAqLworI2lmZGVmIEZFQVRfR1VJCisjIGRlZmluZSBDRU5UKGEsIGIpIGIKKyNlbHNlCisjIGRlZmluZSBDRU5UKGEsIGIpIGEKKyNlbmRpZgogc3RhdGljIGNoYXIgKihoaWdobGlnaHRfaW5pdF9ib3RoW10pID0KICAgICB7Ci0JIkVycm9yTXNnIHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1EYXJrUmVkIGN0ZXJtZmc9V2hpdGUiLAotCSJJbmNTZWFyY2ggdGVybT1yZXZlcnNlIGN0ZXJtPXJldmVyc2UiLAotCSJNb2RlTXNnIHRlcm09Ym9sZCBjdGVybT1ib2xkIiwKLQkiTm9uVGV4dCB0ZXJtPWJvbGQgY3Rlcm1mZz1CbHVlIiwKLQkiU3RhdHVzTGluZSB0ZXJtPXJldmVyc2UsYm9sZCBjdGVybT1yZXZlcnNlLGJvbGQiLAotCSJTdGF0dXNMaW5lTkMgdGVybT1yZXZlcnNlIGN0ZXJtPXJldmVyc2UiLAorCUNFTlQoIkVycm9yTXNnIHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1EYXJrUmVkIGN0ZXJtZmc9V2hpdGUiLAorCSAgICAgIkVycm9yTXNnIHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1EYXJrUmVkIGN0ZXJtZmc9V2hpdGUgZ3VpYmc9UmVkIGd1aWZnPVdoaXRlIiksCisJQ0VOVCgiSW5jU2VhcmNoIHRlcm09cmV2ZXJzZSBjdGVybT1yZXZlcnNlIiwKKwkgICAgICJJbmNTZWFyY2ggdGVybT1yZXZlcnNlIGN0ZXJtPXJldmVyc2UgZ3VpPXJldmVyc2UiKSwKKwlDRU5UKCJNb2RlTXNnIHRlcm09Ym9sZCBjdGVybT1ib2xkIiwKKwkgICAgICJNb2RlTXNnIHRlcm09Ym9sZCBjdGVybT1ib2xkIGd1aT1ib2xkIiksCisJQ0VOVCgiTm9uVGV4dCB0ZXJtPWJvbGQgY3Rlcm1mZz1CbHVlIiwKKwkgICAgICJOb25UZXh0IHRlcm09Ym9sZCBjdGVybWZnPUJsdWUgZ3VpPWJvbGQgZ3VpZmc9Qmx1ZSIpLAorCUNFTlQoIlN0YXR1c0xpbmUgdGVybT1yZXZlcnNlLGJvbGQgY3Rlcm09cmV2ZXJzZSxib2xkIiwKKwkgICAgICJTdGF0dXNMaW5lIHRlcm09cmV2ZXJzZSxib2xkIGN0ZXJtPXJldmVyc2UsYm9sZCBndWk9cmV2ZXJzZSxib2xkIiksCisJQ0VOVCgiU3RhdHVzTGluZU5DIHRlcm09cmV2ZXJzZSBjdGVybT1yZXZlcnNlIiwKKwkgICAgICJTdGF0dXNMaW5lTkMgdGVybT1yZXZlcnNlIGN0ZXJtPXJldmVyc2UgZ3VpPXJldmVyc2UiKSwKICNpZmRlZiBGRUFUX1ZFUlRTUExJVAotCSJWZXJ0U3BsaXQgdGVybT1yZXZlcnNlIGN0ZXJtPXJldmVyc2UiLAorCUNFTlQoIlZlcnRTcGxpdCB0ZXJtPXJldmVyc2UgY3Rlcm09cmV2ZXJzZSIsCisJICAgICAiVmVydFNwbGl0IHRlcm09cmV2ZXJzZSBjdGVybT1yZXZlcnNlIGd1aT1yZXZlcnNlIiksCiAjZW5kaWYKICNpZmRlZiBGRUFUX0NMSVBCT0FSRAotCSJWaXN1YWxOT1MgdGVybT11bmRlcmxpbmUsYm9sZCBjdGVybT11bmRlcmxpbmUsYm9sZCIsCisJQ0VOVCgiVmlzdWFsTk9TIHRlcm09dW5kZXJsaW5lLGJvbGQgY3Rlcm09dW5kZXJsaW5lLGJvbGQiLAorCSAgICAgIlZpc3VhbE5PUyB0ZXJtPXVuZGVybGluZSxib2xkIGN0ZXJtPXVuZGVybGluZSxib2xkIGd1aT11bmRlcmxpbmUsYm9sZCIpLAogI2VuZGlmCiAjaWZkZWYgRkVBVF9ESUZGCi0JIkRpZmZUZXh0IHRlcm09cmV2ZXJzZSBjdGVybT1ib2xkIGN0ZXJtYmc9UmVkIiwKKwlDRU5UKCJEaWZmVGV4dCB0ZXJtPXJldmVyc2UgY3Rlcm09Ym9sZCBjdGVybWJnPVJlZCIsCisJICAgICAiRGlmZlRleHQgdGVybT1yZXZlcnNlIGN0ZXJtPWJvbGQgY3Rlcm1iZz1SZWQgZ3VpPWJvbGQgZ3VpYmc9UmVkIiksCiAjZW5kaWYKICNpZmRlZiBGRUFUX0lOU19FWFBBTkQKLQkiUG1lbnVUaHVtYiBjdGVybT1yZXZlcnNlIiwKLQkiUG1lbnVTYmFyIGN0ZXJtYmc9R3JleSIsCisJQ0VOVCgiUG1lbnVUaHVtYiBjdGVybT1yZXZlcnNlIiwKKwkgICAgICJQbWVudVRodW1iIGN0ZXJtPXJldmVyc2UgZ3VpPXJldmVyc2UiKSwKKwlDRU5UKCJQbWVudVNiYXIgY3Rlcm1iZz1HcmV5IiwKKwkgICAgICJQbWVudVNiYXIgY3Rlcm1iZz1HcmV5IGd1aWJnPUdyZXkiKSwKICNlbmRpZgogI2lmZGVmIEZFQVRfV0lORE9XUwotCSJUYWJMaW5lU2VsIHRlcm09Ym9sZCBjdGVybT1ib2xkIiwKLQkiVGFiTGluZUZpbGwgdGVybT1yZXZlcnNlIGN0ZXJtPXJldmVyc2UiLAorCUNFTlQoIlRhYkxpbmVTZWwgdGVybT1ib2xkIGN0ZXJtPWJvbGQiLAorCSAgICAgIlRhYkxpbmVTZWwgdGVybT1ib2xkIGN0ZXJtPWJvbGQgZ3VpPWJvbGQiKSwKKwlDRU5UKCJUYWJMaW5lRmlsbCB0ZXJtPXJldmVyc2UgY3Rlcm09cmV2ZXJzZSIsCisJICAgICAiVGFiTGluZUZpbGwgdGVybT1yZXZlcnNlIGN0ZXJtPXJldmVyc2UgZ3VpPXJldmVyc2UiKSwKICNlbmRpZgogI2lmZGVmIEZFQVRfQVVUT0NNRAotCSJNYXRjaFBhcmVuIHRlcm09cmV2ZXJzZSBjdGVybWJnPUN5YW4iLAorCUNFTlQoIk1hdGNoUGFyZW4gdGVybT1yZXZlcnNlIGN0ZXJtYmc9Q3lhbiIsCisJICAgICAiTWF0Y2hQYXJlbiB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1DeWFuIGd1aWJnPUN5YW4iKSwKICNlbmRpZgogI2lmZGVmIEZFQVRfR1VJCi0JIkVycm9yTXNnIGd1aWJnPVJlZCBndWlmZz1XaGl0ZSIsCi0JIkluY1NlYXJjaCBndWk9cmV2ZXJzZSIsCi0JIk1vZGVNc2cgZ3VpPWJvbGQiLAotCSJOb25UZXh0IGd1aT1ib2xkIGd1aWZnPUJsdWUiLAotCSJTdGF0dXNMaW5lIGd1aT1yZXZlcnNlLGJvbGQiLAotCSJTdGF0dXNMaW5lTkMgZ3VpPXJldmVyc2UiLAotCSJWZXJ0U3BsaXQgZ3VpPXJldmVyc2UiLAotCSJWaXN1YWxOT1MgZ3VpPXVuZGVybGluZSxib2xkIiwKLQkiRGlmZlRleHQgZ3VpPWJvbGQgZ3VpYmc9UmVkIiwKLQkiUG1lbnVUaHVtYiBndWk9cmV2ZXJzZSIsCi0JIlBtZW51U2JhciBndWliZz1HcmV5IiwKLQkiVGFiTGluZVNlbCBndWk9Ym9sZCIsCi0JIlRhYkxpbmVGaWxsIGd1aT1yZXZlcnNlIiwKLQkiTWF0Y2hQYXJlbiBndWliZz1DeWFuIiwKIAkiQ3Vyc29yIGd1aWJnPWZnIGd1aWZnPWJnIiwKLQkibEN1cnNvciBndWliZz1mZyBndWlmZz1iZyIsCS8qIHNob3VsZCBiZSBkaWZmZXJlbnQsIGJ1dCB3aGF0PyAqLworCSJsQ3Vyc29yIGd1aWJnPWZnIGd1aWZnPWJnIiwgLyogc2hvdWxkIGJlIGRpZmZlcmVudCwgYnV0IHdoYXQ/ICovCiAjZW5kaWYKIAlOVUxMCiAgICAgfTsKIAogc3RhdGljIGNoYXIgKihoaWdobGlnaHRfaW5pdF9saWdodFtdKSA9CiAgICAgewotCSJEaXJlY3RvcnkgdGVybT1ib2xkIGN0ZXJtZmc9RGFya0JsdWUiLAotCSJMaW5lTnIgdGVybT11bmRlcmxpbmUgY3Rlcm1mZz1Ccm93biIsCi0JIk1vcmVNc2cgdGVybT1ib2xkIGN0ZXJtZmc9RGFya0dyZWVuIiwKLQkiUXVlc3Rpb24gdGVybT1zdGFuZG91dCBjdGVybWZnPURhcmtHcmVlbiIsCi0JIlNlYXJjaCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1ZZWxsb3cgY3Rlcm1mZz1OT05FIiwKKwlDRU5UKCJEaXJlY3RvcnkgdGVybT1ib2xkIGN0ZXJtZmc9RGFya0JsdWUiLAorCSAgICAgIkRpcmVjdG9yeSB0ZXJtPWJvbGQgY3Rlcm1mZz1EYXJrQmx1ZSBndWlmZz1CbHVlIiksCisJQ0VOVCgiTGluZU5yIHRlcm09dW5kZXJsaW5lIGN0ZXJtZmc9QnJvd24iLAorCSAgICAgIkxpbmVOciB0ZXJtPXVuZGVybGluZSBjdGVybWZnPUJyb3duIGd1aWZnPUJyb3duIiksCisJQ0VOVCgiTW9yZU1zZyB0ZXJtPWJvbGQgY3Rlcm1mZz1EYXJrR3JlZW4iLAorCSAgICAgIk1vcmVNc2cgdGVybT1ib2xkIGN0ZXJtZmc9RGFya0dyZWVuIGd1aT1ib2xkIGd1aWZnPVNlYUdyZWVuIiksCisJQ0VOVCgiUXVlc3Rpb24gdGVybT1zdGFuZG91dCBjdGVybWZnPURhcmtHcmVlbiIsCisJICAgICAiUXVlc3Rpb24gdGVybT1zdGFuZG91dCBjdGVybWZnPURhcmtHcmVlbiBndWk9Ym9sZCBndWlmZz1TZWFHcmVlbiIpLAorCUNFTlQoIlNlYXJjaCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1ZZWxsb3cgY3Rlcm1mZz1OT05FIiwKKwkgICAgICJTZWFyY2ggdGVybT1yZXZlcnNlIGN0ZXJtYmc9WWVsbG93IGN0ZXJtZmc9Tk9ORSBndWliZz1ZZWxsb3cgZ3VpZmc9Tk9ORSIpLAogI2lmZGVmIEZFQVRfU1BFTEwKLQkiU3BlbGxCYWQgdGVybT1yZXZlcnNlIGN0ZXJtYmc9TGlnaHRSZWQiLAotCSJTcGVsbENhcCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1MaWdodEJsdWUiLAotCSJTcGVsbFJhcmUgdGVybT1yZXZlcnNlIGN0ZXJtYmc9TGlnaHRNYWdlbnRhIiwKLQkiU3BlbGxMb2NhbCB0ZXJtPXVuZGVybGluZSBjdGVybWJnPUN5YW4iLAorCUNFTlQoIlNwZWxsQmFkIHRlcm09cmV2ZXJzZSBjdGVybWJnPUxpZ2h0UmVkIiwKKwkgICAgICJTcGVsbEJhZCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1MaWdodFJlZCBndWlzcD1SZWQgZ3VpPXVuZGVyY3VybCIpLAorCUNFTlQoIlNwZWxsQ2FwIHRlcm09cmV2ZXJzZSBjdGVybWJnPUxpZ2h0Qmx1ZSIsCisJICAgICAiU3BlbGxDYXAgdGVybT1yZXZlcnNlIGN0ZXJtYmc9TGlnaHRCbHVlIGd1aXNwPUJsdWUgZ3VpPXVuZGVyY3VybCIpLAorCUNFTlQoIlNwZWxsUmFyZSB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1MaWdodE1hZ2VudGEiLAorCSAgICAgIlNwZWxsUmFyZSB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1MaWdodE1hZ2VudGEgZ3Vpc3A9TWFnZW50YSBndWk9dW5kZXJjdXJsIiksCisJQ0VOVCgiU3BlbGxMb2NhbCB0ZXJtPXVuZGVybGluZSBjdGVybWJnPUN5YW4iLAorCSAgICAgIlNwZWxsTG9jYWwgdGVybT11bmRlcmxpbmUgY3Rlcm1iZz1DeWFuIGd1aXNwPURhcmtDeWFuIGd1aT11bmRlcmN1cmwiKSwKICNlbmRpZgogI2lmZGVmIEZFQVRfSU5TX0VYUEFORAotCSJQbWVudSBjdGVybWJnPUxpZ2h0TWFnZW50YSIsCi0JIlBtZW51U2VsIGN0ZXJtYmc9TGlnaHRHcmV5IiwKKwlDRU5UKCJQbWVudSBjdGVybWJnPUxpZ2h0TWFnZW50YSIsCisJICAgICAiUG1lbnUgY3Rlcm1iZz1MaWdodE1hZ2VudGEgZ3VpYmc9TGlnaHRNYWdlbnRhIiksCisJQ0VOVCgiUG1lbnVTZWwgY3Rlcm1iZz1MaWdodEdyZXkiLAorCSAgICAgIlBtZW51U2VsIGN0ZXJtYmc9TGlnaHRHcmV5IGd1aWJnPUdyZXkiKSwKICNlbmRpZgotCSJTcGVjaWFsS2V5IHRlcm09Ym9sZCBjdGVybWZnPURhcmtCbHVlIiwKLQkiVGl0bGUgdGVybT1ib2xkIGN0ZXJtZmc9RGFya01hZ2VudGEiLAotCSJXYXJuaW5nTXNnIHRlcm09c3RhbmRvdXQgY3Rlcm1mZz1EYXJrUmVkIiwKKwlDRU5UKCJTcGVjaWFsS2V5IHRlcm09Ym9sZCBjdGVybWZnPURhcmtCbHVlIiwKKwkgICAgICJTcGVjaWFsS2V5IHRlcm09Ym9sZCBjdGVybWZnPURhcmtCbHVlIGd1aWZnPUJsdWUiKSwKKwlDRU5UKCJUaXRsZSB0ZXJtPWJvbGQgY3Rlcm1mZz1EYXJrTWFnZW50YSIsCisJICAgICAiVGl0bGUgdGVybT1ib2xkIGN0ZXJtZmc9RGFya01hZ2VudGEgZ3VpPWJvbGQgZ3VpZmc9TWFnZW50YSIpLAorCUNFTlQoIldhcm5pbmdNc2cgdGVybT1zdGFuZG91dCBjdGVybWZnPURhcmtSZWQiLAorCSAgICAgIldhcm5pbmdNc2cgdGVybT1zdGFuZG91dCBjdGVybWZnPURhcmtSZWQgZ3VpZmc9UmVkIiksCiAjaWZkZWYgRkVBVF9XSUxETUVOVQotCSJXaWxkTWVudSB0ZXJtPXN0YW5kb3V0IGN0ZXJtYmc9WWVsbG93IGN0ZXJtZmc9QmxhY2siLAorCUNFTlQoIldpbGRNZW51IHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1ZZWxsb3cgY3Rlcm1mZz1CbGFjayIsCisJICAgICAiV2lsZE1lbnUgdGVybT1zdGFuZG91dCBjdGVybWJnPVllbGxvdyBjdGVybWZnPUJsYWNrIGd1aWJnPVllbGxvdyBndWlmZz1CbGFjayIpLAogI2VuZGlmCiAjaWZkZWYgRkVBVF9GT0xESU5HCi0JIkZvbGRlZCB0ZXJtPXN0YW5kb3V0IGN0ZXJtYmc9R3JleSBjdGVybWZnPURhcmtCbHVlIiwKLQkiRm9sZENvbHVtbiB0ZXJtPXN0YW5kb3V0IGN0ZXJtYmc9R3JleSBjdGVybWZnPURhcmtCbHVlIiwKKwlDRU5UKCJGb2xkZWQgdGVybT1zdGFuZG91dCBjdGVybWJnPUdyZXkgY3Rlcm1mZz1EYXJrQmx1ZSIsCisJICAgICAiRm9sZGVkIHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1HcmV5IGN0ZXJtZmc9RGFya0JsdWUgZ3VpYmc9TGlnaHRHcmV5IGd1aWZnPURhcmtCbHVlIiksCisJQ0VOVCgiRm9sZENvbHVtbiB0ZXJtPXN0YW5kb3V0IGN0ZXJtYmc9R3JleSBjdGVybWZnPURhcmtCbHVlIiwKKwkgICAgICJGb2xkQ29sdW1uIHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1HcmV5IGN0ZXJtZmc9RGFya0JsdWUgZ3VpYmc9R3JleSBndWlmZz1EYXJrQmx1ZSIpLAogI2VuZGlmCiAjaWZkZWYgRkVBVF9TSUdOUwotCSJTaWduQ29sdW1uIHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1HcmV5IGN0ZXJtZmc9RGFya0JsdWUiLAorCUNFTlQoIlNpZ25Db2x1bW4gdGVybT1zdGFuZG91dCBjdGVybWJnPUdyZXkgY3Rlcm1mZz1EYXJrQmx1ZSIsCisJICAgICAiU2lnbkNvbHVtbiB0ZXJtPXN0YW5kb3V0IGN0ZXJtYmc9R3JleSBjdGVybWZnPURhcmtCbHVlIGd1aWJnPUdyZXkgZ3VpZmc9RGFya0JsdWUiKSwKICNlbmRpZgogI2lmZGVmIEZFQVRfVklTVUFMCi0JIlZpc3VhbCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1NYWdlbnRhIiwKKwlDRU5UKCJWaXN1YWwgdGVybT1yZXZlcnNlIGN0ZXJtYmc9TWFnZW50YSIsCisJICAgICAiVmlzdWFsIHRlcm09cmV2ZXJzZSBjdGVybWJnPU1hZ2VudGEgZ3VpYmc9TGlnaHRHcmV5IiksCiAjZW5kaWYKICNpZmRlZiBGRUFUX0RJRkYKLQkiRGlmZkFkZCB0ZXJtPWJvbGQgY3Rlcm1iZz1MaWdodEJsdWUiLAotCSJEaWZmQ2hhbmdlIHRlcm09Ym9sZCBjdGVybWJnPUxpZ2h0TWFnZW50YSIsCi0JIkRpZmZEZWxldGUgdGVybT1ib2xkIGN0ZXJtZmc9Qmx1ZSBjdGVybWJnPUxpZ2h0Q3lhbiIsCisJQ0VOVCgiRGlmZkFkZCB0ZXJtPWJvbGQgY3Rlcm1iZz1MaWdodEJsdWUiLAorCSAgICAgIkRpZmZBZGQgdGVybT1ib2xkIGN0ZXJtYmc9TGlnaHRCbHVlIGd1aWJnPUxpZ2h0Qmx1ZSIpLAorCUNFTlQoIkRpZmZDaGFuZ2UgdGVybT1ib2xkIGN0ZXJtYmc9TGlnaHRNYWdlbnRhIiwKKwkgICAgICJEaWZmQ2hhbmdlIHRlcm09Ym9sZCBjdGVybWJnPUxpZ2h0TWFnZW50YSBndWliZz1MaWdodE1hZ2VudGEiKSwKKwlDRU5UKCJEaWZmRGVsZXRlIHRlcm09Ym9sZCBjdGVybWZnPUJsdWUgY3Rlcm1iZz1MaWdodEN5YW4iLAorCSAgICAgIkRpZmZEZWxldGUgdGVybT1ib2xkIGN0ZXJtZmc9Qmx1ZSBjdGVybWJnPUxpZ2h0Q3lhbiBndWk9Ym9sZCBndWlmZz1CbHVlIGd1aWJnPUxpZ2h0Q3lhbiIpLAogI2VuZGlmCiAjaWZkZWYgRkVBVF9XSU5ET1dTCi0JIlRhYkxpbmUgdGVybT11bmRlcmxpbmUgY3Rlcm09dW5kZXJsaW5lIGN0ZXJtZmc9YmxhY2sgY3Rlcm1iZz1MaWdodEdyZXkiLAorCUNFTlQoIlRhYkxpbmUgdGVybT11bmRlcmxpbmUgY3Rlcm09dW5kZXJsaW5lIGN0ZXJtZmc9YmxhY2sgY3Rlcm1iZz1MaWdodEdyZXkiLAorCSAgICAgIlRhYkxpbmUgdGVybT11bmRlcmxpbmUgY3Rlcm09dW5kZXJsaW5lIGN0ZXJtZmc9YmxhY2sgY3Rlcm1iZz1MaWdodEdyZXkgZ3VpPXVuZGVybGluZSBndWliZz1MaWdodEdyZXkiKSwKICNlbmRpZgogI2lmZGVmIEZFQVRfU1lOX0hMCi0JIkN1cnNvckNvbHVtbiB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1MaWdodEdyZXkiLAotCSJDdXJzb3JMaW5lIHRlcm09dW5kZXJsaW5lIGN0ZXJtPXVuZGVybGluZSIsCisJQ0VOVCgiQ3Vyc29yQ29sdW1uIHRlcm09cmV2ZXJzZSBjdGVybWJnPUxpZ2h0R3JleSIsCisJICAgICAiQ3Vyc29yQ29sdW1uIHRlcm09cmV2ZXJzZSBjdGVybWJnPUxpZ2h0R3JleSBndWliZz1MaWdodEdyZXkiKSwKKwlDRU5UKCJDdXJzb3JMaW5lIHRlcm09dW5kZXJsaW5lIGN0ZXJtPXVuZGVybGluZSIsCisJICAgICAiQ3Vyc29yTGluZSB0ZXJtPXVuZGVybGluZSBjdGVybT11bmRlcmxpbmUgZ3VpYmc9TGlnaHRHcmV5IiksCiAjZW5kaWYKICNpZmRlZiBGRUFUX0dVSQotCSJEaXJlY3RvcnkgZ3VpZmc9Qmx1ZSIsCi0JIkxpbmVOciBndWlmZz1Ccm93biIsCi0JIk1vcmVNc2cgZ3VpPWJvbGQgZ3VpZmc9U2VhR3JlZW4iLAogCSJOb3JtYWwgZ3VpPU5PTkUiLAotCSJRdWVzdGlvbiBndWk9Ym9sZCBndWlmZz1TZWFHcmVlbiIsCi0JIlNlYXJjaCBndWliZz1ZZWxsb3cgZ3VpZmc9Tk9ORSIsCi0JIlNwZWxsQmFkIGd1aXNwPVJlZCBndWk9dW5kZXJjdXJsIiwKLQkiU3BlbGxDYXAgZ3Vpc3A9Qmx1ZSBndWk9dW5kZXJjdXJsIiwKLQkiU3BlbGxSYXJlIGd1aXNwPU1hZ2VudGEgZ3VpPXVuZGVyY3VybCIsCi0JIlNwZWxsTG9jYWwgZ3Vpc3A9RGFya0N5YW4gZ3VpPXVuZGVyY3VybCIsCi0JIlBtZW51IGd1aWJnPUxpZ2h0TWFnZW50YSIsCi0JIlBtZW51U2VsIGd1aWJnPUdyZXkiLAotCSJTcGVjaWFsS2V5IGd1aWZnPUJsdWUiLAotCSJUaXRsZSBndWk9Ym9sZCBndWlmZz1NYWdlbnRhIiwKLQkiV2FybmluZ01zZyBndWlmZz1SZWQiLAotCSJXaWxkTWVudSBndWliZz1ZZWxsb3cgZ3VpZmc9QmxhY2siLAotCSJGb2xkZWQgZ3VpYmc9TGlnaHRHcmV5IGd1aWZnPURhcmtCbHVlIiwKLQkiRm9sZENvbHVtbiBndWliZz1HcmV5IGd1aWZnPURhcmtCbHVlIiwKLQkiU2lnbkNvbHVtbiBndWliZz1HcmV5IGd1aWZnPURhcmtCbHVlIiwKLQkiVmlzdWFsIGd1aWJnPUxpZ2h0R3JleSIsCi0JIkRpZmZBZGQgZ3VpYmc9TGlnaHRCbHVlIiwKLQkiRGlmZkNoYW5nZSBndWliZz1MaWdodE1hZ2VudGEiLAotCSJEaWZmRGVsZXRlIGd1aT1ib2xkIGd1aWZnPUJsdWUgZ3VpYmc9TGlnaHRDeWFuIiwKLQkiVGFiTGluZSBndWk9dW5kZXJsaW5lIGd1aWJnPUxpZ2h0R3JleSIsCi0JIkN1cnNvckNvbHVtbiBndWliZz1MaWdodEdyZXkiLAotCSJDdXJzb3JMaW5lIGd1aWJnPUxpZ2h0R3JleSIsCiAjZW5kaWYKIAlOVUxMCiAgICAgfTsKIAogc3RhdGljIGNoYXIgKihoaWdobGlnaHRfaW5pdF9kYXJrW10pID0KICAgICB7Ci0JIkRpcmVjdG9yeSB0ZXJtPWJvbGQgY3Rlcm1mZz1MaWdodEN5YW4iLAotCSJMaW5lTnIgdGVybT11bmRlcmxpbmUgY3Rlcm1mZz1ZZWxsb3ciLAotCSJNb3JlTXNnIHRlcm09Ym9sZCBjdGVybWZnPUxpZ2h0R3JlZW4iLAotCSJRdWVzdGlvbiB0ZXJtPXN0YW5kb3V0IGN0ZXJtZmc9TGlnaHRHcmVlbiIsCi0JIlNlYXJjaCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1ZZWxsb3cgY3Rlcm1mZz1CbGFjayIsCi0JIlNwZWNpYWxLZXkgdGVybT1ib2xkIGN0ZXJtZmc9TGlnaHRCbHVlIiwKKwlDRU5UKCJEaXJlY3RvcnkgdGVybT1ib2xkIGN0ZXJtZmc9TGlnaHRDeWFuIiwKKwkgICAgICJEaXJlY3RvcnkgdGVybT1ib2xkIGN0ZXJtZmc9TGlnaHRDeWFuIGd1aWZnPUN5YW4iKSwKKwlDRU5UKCJMaW5lTnIgdGVybT11bmRlcmxpbmUgY3Rlcm1mZz1ZZWxsb3ciLAorCSAgICAgIkxpbmVOciB0ZXJtPXVuZGVybGluZSBjdGVybWZnPVllbGxvdyBndWlmZz1ZZWxsb3ciKSwKKwlDRU5UKCJNb3JlTXNnIHRlcm09Ym9sZCBjdGVybWZnPUxpZ2h0R3JlZW4iLAorCSAgICAgIk1vcmVNc2cgdGVybT1ib2xkIGN0ZXJtZmc9TGlnaHRHcmVlbiBndWk9Ym9sZCBndWlmZz1TZWFHcmVlbiIpLAorCUNFTlQoIlF1ZXN0aW9uIHRlcm09c3RhbmRvdXQgY3Rlcm1mZz1MaWdodEdyZWVuIiwKKwkgICAgICJRdWVzdGlvbiB0ZXJtPXN0YW5kb3V0IGN0ZXJtZmc9TGlnaHRHcmVlbiBndWk9Ym9sZCBndWlmZz1HcmVlbiIpLAorCUNFTlQoIlNlYXJjaCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1ZZWxsb3cgY3Rlcm1mZz1CbGFjayIsCisJICAgICAiU2VhcmNoIHRlcm09cmV2ZXJzZSBjdGVybWJnPVllbGxvdyBjdGVybWZnPUJsYWNrIGd1aWJnPVllbGxvdyBndWlmZz1CbGFjayIpLAorCUNFTlQoIlNwZWNpYWxLZXkgdGVybT1ib2xkIGN0ZXJtZmc9TGlnaHRCbHVlIiwKKwkgICAgICJTcGVjaWFsS2V5IHRlcm09Ym9sZCBjdGVybWZnPUxpZ2h0Qmx1ZSBndWlmZz1DeWFuIiksCiAjaWZkZWYgRkVBVF9TUEVMTAotCSJTcGVsbEJhZCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1SZWQiLAotCSJTcGVsbENhcCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1CbHVlIiwKLQkiU3BlbGxSYXJlIHRlcm09cmV2ZXJzZSBjdGVybWJnPU1hZ2VudGEiLAotCSJTcGVsbExvY2FsIHRlcm09dW5kZXJsaW5lIGN0ZXJtYmc9Q3lhbiIsCisJQ0VOVCgiU3BlbGxCYWQgdGVybT1yZXZlcnNlIGN0ZXJtYmc9UmVkIiwKKwkgICAgICJTcGVsbEJhZCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1SZWQgZ3Vpc3A9UmVkIGd1aT11bmRlcmN1cmwiKSwKKwlDRU5UKCJTcGVsbENhcCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1CbHVlIiwKKwkgICAgICJTcGVsbENhcCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1CbHVlIGd1aXNwPUJsdWUgZ3VpPXVuZGVyY3VybCIpLAorCUNFTlQoIlNwZWxsUmFyZSB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1NYWdlbnRhIiwKKwkgICAgICJTcGVsbFJhcmUgdGVybT1yZXZlcnNlIGN0ZXJtYmc9TWFnZW50YSBndWlzcD1NYWdlbnRhIGd1aT11bmRlcmN1cmwiKSwKKwlDRU5UKCJTcGVsbExvY2FsIHRlcm09dW5kZXJsaW5lIGN0ZXJtYmc9Q3lhbiIsCisJICAgICAiU3BlbGxMb2NhbCB0ZXJtPXVuZGVybGluZSBjdGVybWJnPUN5YW4gZ3Vpc3A9Q3lhbiBndWk9dW5kZXJjdXJsIiksCiAjZW5kaWYKICNpZmRlZiBGRUFUX0lOU19FWFBBTkQKLQkiUG1lbnUgY3Rlcm1iZz1NYWdlbnRhIiwKLQkiUG1lbnVTZWwgY3Rlcm1iZz1EYXJrR3JleSIsCisJQ0VOVCgiUG1lbnUgY3Rlcm1iZz1NYWdlbnRhIiwKKwkgICAgICJQbWVudSBjdGVybWJnPU1hZ2VudGEgZ3VpYmc9TWFnZW50YSIpLAorCUNFTlQoIlBtZW51U2VsIGN0ZXJtYmc9RGFya0dyZXkiLAorCSAgICAgIlBtZW51U2VsIGN0ZXJtYmc9RGFya0dyZXkgZ3VpYmc9RGFya0dyZXkiKSwKICNlbmRpZgotCSJUaXRsZSB0ZXJtPWJvbGQgY3Rlcm1mZz1MaWdodE1hZ2VudGEiLAotCSJXYXJuaW5nTXNnIHRlcm09c3RhbmRvdXQgY3Rlcm1mZz1MaWdodFJlZCIsCisJQ0VOVCgiVGl0bGUgdGVybT1ib2xkIGN0ZXJtZmc9TGlnaHRNYWdlbnRhIiwKKwkgICAgICJUaXRsZSB0ZXJtPWJvbGQgY3Rlcm1mZz1MaWdodE1hZ2VudGEgZ3VpPWJvbGQgZ3VpZmc9TWFnZW50YSIpLAorCUNFTlQoIldhcm5pbmdNc2cgdGVybT1zdGFuZG91dCBjdGVybWZnPUxpZ2h0UmVkIiwKKwkgICAgICJXYXJuaW5nTXNnIHRlcm09c3RhbmRvdXQgY3Rlcm1mZz1MaWdodFJlZCBndWlmZz1SZWQiKSwKICNpZmRlZiBGRUFUX1dJTERNRU5VCi0JIldpbGRNZW51IHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1ZZWxsb3cgY3Rlcm1mZz1CbGFjayIsCisJQ0VOVCgiV2lsZE1lbnUgdGVybT1zdGFuZG91dCBjdGVybWJnPVllbGxvdyBjdGVybWZnPUJsYWNrIiwKKwkgICAgICJXaWxkTWVudSB0ZXJtPXN0YW5kb3V0IGN0ZXJtYmc9WWVsbG93IGN0ZXJtZmc9QmxhY2sgZ3VpYmc9WWVsbG93IGd1aWZnPUJsYWNrIiksCiAjZW5kaWYKICNpZmRlZiBGRUFUX0ZPTERJTkcKLQkiRm9sZGVkIHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1EYXJrR3JleSBjdGVybWZnPUN5YW4iLAotCSJGb2xkQ29sdW1uIHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1EYXJrR3JleSBjdGVybWZnPUN5YW4iLAorCUNFTlQoIkZvbGRlZCB0ZXJtPXN0YW5kb3V0IGN0ZXJtYmc9RGFya0dyZXkgY3Rlcm1mZz1DeWFuIiwKKwkgICAgICJGb2xkZWQgdGVybT1zdGFuZG91dCBjdGVybWJnPURhcmtHcmV5IGN0ZXJtZmc9Q3lhbiBndWliZz1EYXJrR3JleSBndWlmZz1DeWFuIiksCisJQ0VOVCgiRm9sZENvbHVtbiB0ZXJtPXN0YW5kb3V0IGN0ZXJtYmc9RGFya0dyZXkgY3Rlcm1mZz1DeWFuIiwKKwkgICAgICJGb2xkQ29sdW1uIHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1EYXJrR3JleSBjdGVybWZnPUN5YW4gZ3VpYmc9R3JleSBndWlmZz1DeWFuIiksCiAjZW5kaWYKICNpZmRlZiBGRUFUX1NJR05TCi0JIlNpZ25Db2x1bW4gdGVybT1zdGFuZG91dCBjdGVybWJnPURhcmtHcmV5IGN0ZXJtZmc9Q3lhbiIsCisJQ0VOVCgiU2lnbkNvbHVtbiB0ZXJtPXN0YW5kb3V0IGN0ZXJtYmc9RGFya0dyZXkgY3Rlcm1mZz1DeWFuIiwKKwkgICAgICJTaWduQ29sdW1uIHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1EYXJrR3JleSBjdGVybWZnPUN5YW4gZ3VpYmc9R3JleSBndWlmZz1DeWFuIiksCiAjZW5kaWYKICNpZmRlZiBGRUFUX1ZJU1VBTAotCSJWaXN1YWwgdGVybT1yZXZlcnNlIGN0ZXJtYmc9TWFnZW50YSIsCisJQ0VOVCgiVmlzdWFsIHRlcm09cmV2ZXJzZSBjdGVybWJnPU1hZ2VudGEiLAorCSAgICAgIlZpc3VhbCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1NYWdlbnRhIGd1aWJnPURhcmtHcmV5IiksCiAjZW5kaWYKICNpZmRlZiBGRUFUX0RJRkYKLQkiRGlmZkFkZCB0ZXJtPWJvbGQgY3Rlcm1iZz1EYXJrQmx1ZSIsCi0JIkRpZmZDaGFuZ2UgdGVybT1ib2xkIGN0ZXJtYmc9RGFya01hZ2VudGEiLAotCSJEaWZmRGVsZXRlIHRlcm09Ym9sZCBjdGVybWZnPUJsdWUgY3Rlcm1iZz1EYXJrQ3lhbiIsCisJQ0VOVCgiRGlmZkFkZCB0ZXJtPWJvbGQgY3Rlcm1iZz1EYXJrQmx1ZSIsCisJICAgICAiRGlmZkFkZCB0ZXJtPWJvbGQgY3Rlcm1iZz1EYXJrQmx1ZSBndWliZz1EYXJrQmx1ZSIpLAorCUNFTlQoIkRpZmZDaGFuZ2UgdGVybT1ib2xkIGN0ZXJtYmc9RGFya01hZ2VudGEiLAorCSAgICAgIkRpZmZDaGFuZ2UgdGVybT1ib2xkIGN0ZXJtYmc9RGFya01hZ2VudGEgZ3VpYmc9RGFya01hZ2VudGEiKSwKKwlDRU5UKCJEaWZmRGVsZXRlIHRlcm09Ym9sZCBjdGVybWZnPUJsdWUgY3Rlcm1iZz1EYXJrQ3lhbiIsCisJICAgICAiRGlmZkRlbGV0ZSB0ZXJtPWJvbGQgY3Rlcm1mZz1CbHVlIGN0ZXJtYmc9RGFya0N5YW4gZ3VpPWJvbGQgZ3VpZmc9Qmx1ZSBndWliZz1EYXJrQ3lhbiIpLAogI2VuZGlmCiAjaWZkZWYgRkVBVF9XSU5ET1dTCi0JIlRhYkxpbmUgdGVybT11bmRlcmxpbmUgY3Rlcm09dW5kZXJsaW5lIGN0ZXJtZmc9d2hpdGUgY3Rlcm1iZz1EYXJrR3JleSIsCisJQ0VOVCgiVGFiTGluZSB0ZXJtPXVuZGVybGluZSBjdGVybT11bmRlcmxpbmUgY3Rlcm1mZz13aGl0ZSBjdGVybWJnPURhcmtHcmV5IiwKKwkgICAgICJUYWJMaW5lIHRlcm09dW5kZXJsaW5lIGN0ZXJtPXVuZGVybGluZSBjdGVybWZnPXdoaXRlIGN0ZXJtYmc9RGFya0dyZXkgZ3VpPXVuZGVybGluZSBndWliZz1EYXJrR3JleSIpLAogI2VuZGlmCiAjaWZkZWYgRkVBVF9TWU5fSEwKLQkiQ3Vyc29yQ29sdW1uIHRlcm09cmV2ZXJzZSBjdGVybWJnPURhcmtHcmV5IiwKLQkiQ3Vyc29yTGluZSB0ZXJtPXVuZGVybGluZSBjdGVybT11bmRlcmxpbmUiLAorCUNFTlQoIkN1cnNvckNvbHVtbiB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1EYXJrR3JleSIsCisJICAgICAiQ3Vyc29yQ29sdW1uIHRlcm09cmV2ZXJzZSBjdGVybWJnPURhcmtHcmV5IGd1aWJnPURhcmtHcmV5IiksCisJQ0VOVCgiQ3Vyc29yTGluZSB0ZXJtPXVuZGVybGluZSBjdGVybT11bmRlcmxpbmUiLAorCSAgICAgIkN1cnNvckxpbmUgdGVybT11bmRlcmxpbmUgY3Rlcm09dW5kZXJsaW5lIGd1aWJnPURhcmtHcmV5IiksCiAjZW5kaWYKICNpZmRlZiBGRUFUX0dVSQotCSJEaXJlY3RvcnkgZ3VpZmc9Q3lhbiIsCi0JIkxpbmVOciBndWlmZz1ZZWxsb3ciLAotCSJNb3JlTXNnIGd1aT1ib2xkIGd1aWZnPVNlYUdyZWVuIiwKIAkiTm9ybWFsIGd1aT1OT05FIiwKLQkiUXVlc3Rpb24gZ3VpPWJvbGQgZ3VpZmc9R3JlZW4iLAotCSJTZWFyY2ggZ3VpYmc9WWVsbG93IGd1aWZnPUJsYWNrIiwKLQkiU3BlY2lhbEtleSBndWlmZz1DeWFuIiwKLQkiU3BlbGxCYWQgZ3Vpc3A9UmVkIGd1aT11bmRlcmN1cmwiLAotCSJTcGVsbENhcCBndWlzcD1CbHVlIGd1aT11bmRlcmN1cmwiLAotCSJTcGVsbFJhcmUgZ3Vpc3A9TWFnZW50YSBndWk9dW5kZXJjdXJsIiwKLQkiU3BlbGxMb2NhbCBndWlzcD1DeWFuIGd1aT11bmRlcmN1cmwiLAotCSJQbWVudSBndWliZz1NYWdlbnRhIiwKLQkiUG1lbnVTZWwgZ3VpYmc9RGFya0dyZXkiLAotCSJUaXRsZSBndWk9Ym9sZCBndWlmZz1NYWdlbnRhIiwKLQkiV2FybmluZ01zZyBndWlmZz1SZWQiLAotCSJXaWxkTWVudSBndWliZz1ZZWxsb3cgZ3VpZmc9QmxhY2siLAotCSJGb2xkZWQgZ3VpYmc9RGFya0dyZXkgZ3VpZmc9Q3lhbiIsCi0JIkZvbGRDb2x1bW4gZ3VpYmc9R3JleSBndWlmZz1DeWFuIiwKLQkiU2lnbkNvbHVtbiBndWliZz1HcmV5IGd1aWZnPUN5YW4iLAotCSJWaXN1YWwgZ3VpYmc9RGFya0dyZXkiLAotCSJEaWZmQWRkIGd1aWJnPURhcmtCbHVlIiwKLQkiRGlmZkNoYW5nZSBndWliZz1EYXJrTWFnZW50YSIsCi0JIkRpZmZEZWxldGUgZ3VpPWJvbGQgZ3VpZmc9Qmx1ZSBndWliZz1EYXJrQ3lhbiIsCi0JIlRhYkxpbmUgZ3VpPXVuZGVybGluZSBndWliZz1EYXJrR3JleSIsCi0JIkN1cnNvckNvbHVtbiBndWliZz1EYXJrR3JleSIsCi0JIkN1cnNvckxpbmUgZ3VpYmc9RGFya0dyZXkiLAogI2VuZGlmCiAJTlVMTAogICAgIH07CmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0NTguaW4gYi9zcmMvdGVzdGRpci90ZXN0NTguaW4KaW5kZXggN2RiNmE5ZS4uMGNkODRlZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdDU4LmluCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3Q1OC5pbgpAQCAtNDIwLDcgKzQyMCw4IEBACiBDT01QT1VORFJVTEUgc20qZQogQ09NUE9VTkRSVUxFIHNtKwogQ09NUE9VTkRNSU4gMwotQ09NUE9VTkRNQVggMworQ09NUE9VTkRXT1JETUFYIDMKK0NPTVBPVU5ERk9SQklERkxBRyB0CiAKIENPTVBPVU5EU1lMTUFYIDUKIFNZTExBQkxFIGHhZelp7W/z9vV1+vz7eS9hYS9hdS9lYS9lZS9laS9pZS9vYS9vZS9vby9vdS91dS91aQpAQCAtNDQ3LDcgKzQ0OCw3IEBACiAKIFNGWCBhIFkgMgogU0ZYIGEgMCBzIC4KLVNGWCBhIDAgaXplIC4gbm9jb21wCitTRlggYSAwIGl6ZS90IC4KIAogUEZYIHAgTiAxCiBQRlggcCAwIHByZSAuCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0NTkuaW4gYi9zcmMvdGVzdGRpci90ZXN0NTkuaW4KaW5kZXggZDhlMGE5Ny4uY2Y5Y2I0OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdDU5LmluCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3Q1OS5pbgpAQCAtNDI0LDcgKzQyNCw4IEBACiBDT01QT1VORFJVTEUgc20qZQogQ09NUE9VTkRSVUxFIHNtKwogQ09NUE9VTkRNSU4gMwotQ09NUE9VTkRNQVggMworQ09NUE9VTkRXT1JETUFYIDMKK0NPTVBPVU5ERk9SQklERkxBRyB0CiAKIENPTVBPVU5EU1lMTUFYIDUKIFNZTExBQkxFIGHhZelp7W/z9vV1+vz7eS9hYS9hdS9lYS9lZS9laS9pZS9vYS9vZS9vby9vdS91dS91aQpAQCAtNDUxLDcgKzQ1Miw3IEBACiAKIFNGWCBhIFkgMgogU0ZYIGEgMCBzIC4KLVNGWCBhIDAgaXplIC4gbm9jb21wCitTRlggYSAwIGl6ZS90IC4KIAogUEZYIHAgTiAxCiBQRlggcCAwIHByZSAuCmRpZmYgLS1naXQgYS9zcmMvdmVyc2lvbi5oIGIvc3JjL3ZlcnNpb24uaAppbmRleCBkOGNkZTY3Li45NjVlZTgzIDEwMDY0NAotLS0gYS9zcmMvdmVyc2lvbi5oCisrKyBiL3NyYy92ZXJzaW9uLmgKQEAgLTM2LDUgKzM2LDUgQEAKICNkZWZpbmUgVklNX1ZFUlNJT05fTk9ET1QJInZpbTcwYiIKICNkZWZpbmUgVklNX1ZFUlNJT05fU0hPUlQJIjcuMGIiCiAjZGVmaW5lIFZJTV9WRVJTSU9OX01FRElVTQkiNy4wYiBCRVRBIgotI2RlZmluZSBWSU1fVkVSU0lPTl9MT05HCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBiIEJFVEEgKDIwMDYgTWFyIDI1KSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBiIEJFVEEgKDIwMDYgTWFyIDI1LCBjb21waWxlZCAiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkcJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGIgQkVUQSAoMjAwNiBNYXIgMjYpIgorI2RlZmluZSBWSU1fVkVSU0lPTl9MT05HX0RBVEUJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGIgQkVUQSAoMjAwNiBNYXIgMjYsIGNvbXBpbGVkICIKZGlmZiAtLWdpdCBhL3NyYy94eGQveHhkLmMgYi9zcmMveHhkL3h4ZC5jCmluZGV4IDJiM2VlOWMuLmY1N2Q3ODYgMTAwNjQ0Ci0tLSBhL3NyYy94eGQveHhkLmMKKysrIGIvc3JjL3h4ZC94eGQuYwpAQCAtMjc1LDYgKzI3NSw5IEBACiAgICAgICBpZiAoYyA9PSAnXHInKQkvKiBEb3plIHN0eWxlIGlucHV0IGZpbGU/ICovCiAJY29udGludWU7CiAKKyAgICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcbicgfHwgYyA9PSAnXHQnKSAgLyogYWxsb3cgbXVsdGlwbGUgc3BhY2VzICovCisgICAgICAgIGNvbnRpbnVlOworCiAgICAgICBuMyA9IG4yOwogICAgICAgbjIgPSBuMTsKIApAQCAtMzM0LDcgKzMzNyw3IEBACiAJICBuMSA9IC0xOwogCSAgaWYgKCgrK3AgPj0gY29scykgJiYgIWhleHR5cGUpCiAJICAgIHsKLQkgICAgICAvKiBza2lwIHJlc3Qgb2YgbGluZSBhcyBnYXJiYWdhICovCisJICAgICAgLyogc2tpcCByZXN0IG9mIGxpbmUgYXMgZ2FyYmFnZSAqLwogCSAgICAgIHdhbnRfb2ZmID0gMDsKIAkgICAgICB3aGlsZSAoKGMgPSBnZXRjKGZwaSkpICE9ICdcbicgJiYgYyAhPSBFT0YpCiAJCTsK