ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvbmV0cncudmltIGIvcnVudGltZS9hdXRvbG9hZC9uZXRydy52aW0KaW5kZXggYWMxZDI2OC4uZTA4MDg3OSAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC9uZXRydy52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9uZXRydy52aW0KQEAgLTkxOCw4ICs5MTgsOCBAQAogICAgICAgTmV0cndLZWVwaiBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywidXNpbmcgTmV4cGxvcmUgb3IgPHMtZG93bj4gaW1wcm9wZXJseTsgc2VlIGhlbHAgZm9yIG5ldHJ3LXN0YXJzdGFyIiw0MCkKICAgICAgIGlmIGhhcygiY2xpcGJvYXJkIikKICIgICAgICAgY2FsbCBEZWNobygiKG5ldHJ3I0V4cGxvcmUpIHJlc3RvcmUgQCogYW5kIEArIiwnficuZXhwYW5kKCI8c2xudW0+IikpCi0gICAgICAgc2lsISBsZXQgQCogPSBrZWVwcmVnc3RhcgotICAgICAgIHNpbCEgbGV0IEArID0ga2VlcHJlZ3BsdXMKKyAgICAgICBpZiBAKiAhPSBrZWVwcmVnc3RhciB8IHNpbCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIgfCBlbmRpZgorICAgICAgIGlmIEArICE9IGtlZXByZWdwbHVzIHwgc2lsISBsZXQgQCsgPSBrZWVwcmVncGx1cyB8IGVuZGlmCiAgICAgICBlbmRpZgogICAgICAgc2lsISBsZXQgQC8gPSBrZWVwcmVnc2xhc2gKICIgICAgICBjYWxsIERyZXQoIm5ldHJ3I0V4cGxvcmUiKQpAQCAtOTQ0LDggKzk0NCw4IEBACiAgICAgICBOZXRyd0tlZXBqIGNhbGwgbmV0cncjRXJyb3JNc2coczpXQVJOSU5HLCJ1c2luZyBQZXhwbG9yZSBvciA8cy11cD4gaW1wcm9wZXJseTsgc2VlIGhlbHAgZm9yIG5ldHJ3LXN0YXJzdGFyIiw0MSkKICAgICAgIGlmIGhhcygiY2xpcGJvYXJkIikKICIgICAgICAgY2FsbCBEZWNobygiKG5ldHJ3I0V4cGxvcmUpIHJlc3RvcmUgQCogYW5kIEArIiwnficuZXhwYW5kKCI8c2xudW0+IikpCi0gICAgICAgc2lsISBsZXQgQCogPSBrZWVwcmVnc3RhcgotICAgICAgIHNpbCEgbGV0IEArID0ga2VlcHJlZ3BsdXMKKyAgICAgICBpZiBAKiAhPSBrZWVwcmVnc3RhciB8IHNpbCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIgfCBlbmRpZgorICAgICAgIGlmIEArICE9IGtlZXByZWdwbHVzIHwgc2lsISBsZXQgQCsgPSBrZWVwcmVncGx1cyB8IGVuZGlmCiAgICAgICBlbmRpZgogICAgICAgc2lsISBsZXQgQC8gPSBrZWVwcmVnc2xhc2gKICIgICAgICBjYWxsIERyZXQoIm5ldHJ3I0V4cGxvcmUiKQpAQCAtMTAwMCw4ICsxMDAwLDggQEAKICAgICAgICBpZiAmaGxzIHwgbGV0IGtlZXByZWdzbGFzaD0gczpFeHBsb3JlUGF0SGxzKHBhdHRlcm4pIHwgZW5kaWYKICAgICAgICBpZiBoYXMoImNsaXBib2FyZCIpCiAiICAgICAgICBjYWxsIERlY2hvKCIobmV0cncjRXhwbG9yZSkgcmVzdG9yZSBAKiBhbmQgQCsiLCd+Jy5leHBhbmQoIjxzbG51bT4iKSkKLQlzaWwhIGxldCBAKiA9IGtlZXByZWdzdGFyCi0Jc2lsISBsZXQgQCsgPSBrZWVwcmVncGx1cworICAgICAgICBpZiBAKiAhPSBrZWVwcmVnc3RhciB8IHNpbCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIgfCBlbmRpZgorICAgICAgICBpZiBAKyAhPSBrZWVwcmVncGx1cyB8IHNpbCEgbGV0IEArID0ga2VlcHJlZ3BsdXMgfCBlbmRpZgogICAgICAgIGVuZGlmCiAgICAgICAgc2lsISBsZXQgQC8gPSBrZWVwcmVnc2xhc2gKICIgICAgICAgY2FsbCBEcmV0KCJuZXRydyNFeHBsb3JlIDogbm8gZmlsZXMgbWF0Y2hlZCBwYXR0ZXJuIikKQEAgLTEwMzcsOCArMTAzNyw4IEBACiAgICAgICBrZWVwYWx0IE5ldHJ3S2VlcGogY2FsbCBuZXRydyNFcnJvck1zZyhzOldBUk5JTkcsIm5vIGZpbGVzIG1hdGNoZWQiLDQyKQogICAgICAgaWYgaGFzKCJjbGlwYm9hcmQiKQogIiAgICAgICBjYWxsIERlY2hvKCIobmV0cncjRXhwbG9yZSkgcmVzdG9yZSBAKiBhbmQgQCsiLCd+Jy5leHBhbmQoIjxzbG51bT4iKSkKLSAgICAgICBzaWwhIGxldCBAKiA9IGtlZXByZWdzdGFyCi0gICAgICAgc2lsISBsZXQgQCsgPSBrZWVwcmVncGx1cworICAgICAgICBpZiBAKiAhPSBrZWVwcmVnc3RhciB8IHNpbCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIgfCBlbmRpZgorICAgICAgICBpZiBAKyAhPSBrZWVwcmVncGx1cyB8IHNpbCEgbGV0IEArID0ga2VlcHJlZ3BsdXMgfCBlbmRpZgogICAgICAgZW5kaWYKICAgICAgIHNpbCEgbGV0IEAvID0ga2VlcHJlZ3NsYXNoCiAiICAgICAgY2FsbCBEcmV0KCJuZXRydyNFeHBsb3JlIDogbm8gZmlsZXMgbWF0Y2hlZCIpCkBAIC0xMDg2LDggKzEwODYsOCBAQAogICAgIGVuZGlmCiAgICAgaWYgaGFzKCJjbGlwYm9hcmQiKQogIiAgICAgY2FsbCBEZWNobygiKG5ldHJ3I0V4cGxvcmUpIHJlc3RvcmUgQCogYW5kIEArIiwnficuZXhwYW5kKCI8c2xudW0+IikpCi0gICAgIHNpbCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIKLSAgICAgc2lsISBsZXQgQCsgPSBrZWVwcmVncGx1cworICAgICAgaWYgQCogIT0ga2VlcHJlZ3N0YXIgfCBzaWwhIGxldCBAKiA9IGtlZXByZWdzdGFyIHwgZW5kaWYKKyAgICAgIGlmIEArICE9IGtlZXByZWdwbHVzIHwgc2lsISBsZXQgQCsgPSBrZWVwcmVncGx1cyB8IGVuZGlmCiAgICAgZW5kaWYKICAgICBzaWwhIGxldCBALyA9IGtlZXByZWdzbGFzaAogIiAgICBjYWxsIERyZXQoIm5ldHJ3I0V4cGxvcmUgOiBtaXNzaW5nICtwYXRoX2V4dHJhIikKQEAgLTExNjAsOCArMTE2MCw4IEBACiAgIGxldCBzOm5ldHJ3X2V2ZW50cz0gMgogICBpZiBoYXMoImNsaXBib2FyZCIpCiAiICAgY2FsbCBEZWNobygiKG5ldHJ3I0V4cGxvcmUpIHJlc3RvcmUgQCogYW5kIEArIiwnficuZXhwYW5kKCI8c2xudW0+IikpCi0gICBzaWwhIGxldCBAKiA9IGtlZXByZWdzdGFyCi0gICBzaWwhIGxldCBAKyA9IGtlZXByZWdwbHVzCisgICBpZiBAKiAhPSBrZWVwcmVnc3RhciB8IHNpbCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIgfCBlbmRpZgorICAgaWYgQCsgIT0ga2VlcHJlZ3BsdXMgfCBzaWwhIGxldCBAKyA9IGtlZXByZWdwbHVzIHwgZW5kaWYKICAgZW5kaWYKICAgc2lsISBsZXQgQC8gPSBrZWVwcmVnc2xhc2gKICIgIGNhbGwgRHJldCgibmV0cncjRXhwbG9yZSA6IEAvPCIuQC8uIj4iKQpAQCAtOTYwMiw4ICs5NjAyLDggQEAKICAgIGVuZHdoaWxlCiAgICBpZiBoYXMoImNsaXBib2FyZCIpCiAiICAgIGNhbGwgRGVjaG8oIihzOk5ldHJ3V2lkZUxpc3RpbmcpIHJlc3RvcmUgQCogYW5kIEArIiwnficuZXhwYW5kKCI8c2xudW0+IikpCi0gICAgc2lsISBsZXQgQCo9IGtlZXByZWdzdGFyCi0gICAgc2lsISBsZXQgQCs9IGtlZXByZWdwbHVzCisgICAgaWYgQCogIT0ga2VlcHJlZ3N0YXIgfCBzaWwhIGxldCBAKiA9IGtlZXByZWdzdGFyIHwgZW5kaWYKKyAgICBpZiBAKyAhPSBrZWVwcmVncGx1cyB8IHNpbCEgbGV0IEArID0ga2VlcHJlZ3BsdXMgfCBlbmRpZgogICAgZW5kaWYKICAgIGV4ZSAic2lsISBOZXRyd0tlZXBqICIudzpuZXRyd19iYW5uZXJjbnQuJywkcy9cc1wrJC8vZScKICAgIE5ldHJ3S2VlcGogY2FsbCBoaXN0ZGVsKCIvIiwtMSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NtZGxpbmUudHh0IGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKaW5kZXggYWIwZTY4Mi4uY2UxNGM1OSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvY21kbGluZS50eHQKKysrIGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKQEAgLTEsNCArMSw0IEBACi0qY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE5IFNlcCAyNworKmNtZGxpbmUudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxOSBOb3YgMjYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0IGIvcnVudGltZS9kb2MvZGV2ZWxvcC50eHQKaW5kZXggNTllNDRkYy4uNmNlZDUxNSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZGV2ZWxvcC50eHQKKysrIGIvcnVudGltZS9kb2MvZGV2ZWxvcC50eHQKQEAgLTEsNCArMSw0IEBACi0qZGV2ZWxvcC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE5IEF1ZyAwNQorKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxOSBOb3YgMjIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTE5NSwxMCArMTk1LDE0IEBACiAKIENvbW1lbnRzIH4KIAotVHJhZGl0aW9uYWxseSBWaW0gdXNlcyAvKiBjb21tZW50cyAqLy4gIFdlIGludGVuZCB0byBrZWVwIGl0IHRoYXQgd2F5LAotZXNwZWNpYWxseSBmb3IgZmlsZSBhbmQgZnVuY3Rpb24gaGVhZGVycy4gIEZvciBuZXcgY29kZSBvciBsaW5lcyBvZiBjb2RlIHRoYXQKLWNoYW5nZSwgaXQgaXMgYWxsb3dlZCB0byB1c2UgLy8gY29tbWVudHMuICBFc3BlY2lhbGx5IHdoZW4gaXQgY29tZXMgYWZ0ZXIKLWNvZGU6CitUcmFkaXRpb25hbGx5IFZpbSB1c2VzIC8qIGNvbW1lbnRzICovLiAgV2UgaW50ZW5kIHRvIGtlZXAgaXQgdGhhdCB3YXkKK2ZvciBmaWxlIGFuZCBmdW5jdGlvbiBoZWFkZXJzIGFuZCBsYXJnZXIgYmxvY2tzIG9mIGNvZGUsIEUuZy46CisJLyoKKwkgKiBUaGUgImZvbyIgYXJndW1lbnQgZG9lcyBzb21ldGhpbmcgdXNlZnVsLgorCSAqIFJldHVybiBPSyBvciBGQUlMLgorCSAqLworRm9yIG5ldyBjb2RlIG9yIGxpbmVzIG9mIGNvZGUgdGhhdCBjaGFuZ2UsIGl0IGlzIHByZWZlcnJlZCB0byB1c2UgLy8gY29tbWVudHMuCitFc3BlY2lhbGx5IHdoZW4gaXQgY29tZXMgYWZ0ZXIgY29kZToKIAlpbnQgc29tZV92YXI7ICAvLyBzaW5nbGUgbGluZSBjb21tZW50IHVzZWZ1bCBoZXJlCiAKIEVudW1zIH4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggNTkzNjQzNy4uYjU0NjBmZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqCUZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxOSBOb3YgMjQKKypldmFsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE5IE5vdiAyNQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC03NjQyLDE2ICs3NjQyLDE3IEBACiAKIHJhbmQoW3tleHByfV0pCQkJCQkJKnJhbmQoKSoKIAkJUmV0dXJuIGEgcHNldWRvLXJhbmRvbSBOdW1iZXIgZ2VuZXJhdGVkIHdpdGggYW4geG9yc2hpZnQKLQkJYWxnb3JpdGhtIHVzaW5nIHNlZWQge2V4cHJ9LiAge2V4cHJ9IGNhbiBiZSBpbml0aWFsaXplZCBieQotCQl8c3JhbmQoKXwgYW5kIHdpbGwgYmUgdXBkYXRlZCBieSByYW5kKCkuCi0JCUlmIHtleHByfSBpcyBvbWl0dGVkLCBhbiBpbnRlcm5hbCBzZWVkIHZhbHVlIGlzIHVzZWQgYW5kCi0JCXVwZGF0ZWQuCisJCWFsZ29yaXRobSB1c2luZyBzZWVkIHtleHByfS4gIFRoZSByZXR1cm5lZCBudW1iZXIgaXMgMzIgYml0cywKKwkJYWxzbyBvbiA2NCBiaXRzIHN5c3RlbXMsIGZvciBjb25zaXN0ZW5jeS4KKwkJe2V4cHJ9IGNhbiBiZSBpbml0aWFsaXplZCBieSB8c3JhbmQoKXwgYW5kIHdpbGwgYmUgdXBkYXRlZCBieQorCQlyYW5kKCkuICBJZiB7ZXhwcn0gaXMgb21pdHRlZCwgYW4gaW50ZXJuYWwgc2VlZCB2YWx1ZSBpcyB1c2VkCisJCWFuZCB1cGRhdGVkLgogCiAJCUV4YW1wbGVzOiA+CiAJCQk6ZWNobyByYW5kKCkKIAkJCTpsZXQgc2VlZCA9IHNyYW5kKCkKIAkJCTplY2hvIHJhbmQoc2VlZCkKLQkJCTplY2hvIHJhbmQoc2VlZCkKKwkJCTplY2hvIHJhbmQoc2VlZCkgJSAxNiAgIiByYW5kb20gbnVtYmVyIDAgLSAxNQogPAogCQkJCQkJCSpyZWFkZGlyKCkqCiByZWFkZGlyKHtkaXJlY3Rvcnl9IFssIHtleHByfV0pCkBAIC05MTQ5LDcgKzkxNTAsOCBAQAogc3JhbmQoW3tleHByfV0pCQkJCQkJKnNyYW5kKCkqCiAJCUluaXRpYWxpemUgc2VlZCB1c2VkIGJ5IHxyYW5kKCl8OgogCQktIElmIHtleHByfSBpcyBub3QgZ2l2ZW4sIHNlZWQgdmFsdWVzIGFyZSBpbml0aWFsaXplZCBieQotCQkgIHRpbWUoTlVMTCkgYS5rLmEuIGVwb2NoIHRpbWUuCisJCSAgdGltZShOVUxMKSBhLmsuYS4gZXBvY2ggdGltZS4gIFRoaXMgb25seSBoYXMgc2Vjb25kCisJCSAgYWNjdXJhY3kuCiAJCS0gSWYge2V4cHJ9IGlzIGdpdmVuLCByZXR1cm4gc2VlZCB2YWx1ZXMgd2hpY2ggeCBlbGVtZW50IGlzCiAJCSAge2V4cHJ9LiAgVGhpcyBpcyB1c2VmdWwgZm9yIHRlc3Rpbmcgb3Igd2hlbiBhIHByZWRpY3RhYmxlCiAJCSAgc2VxdWVuY2UgaXMgZXhwZWN0ZWQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IGIzZDc1NzkuLmY0ZmMyNDkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTkgTm92IDEwCisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxOSBOb3YgMjYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTE5NSw3ICsxMTk1LDcgQEAKIAkJICAgIChtb3N0bHkgdXNlZCBpbiB8Tm9ybWFsLW1vZGV8IG9yIHxDbWRsaW5lLW1vZGV8KS4KIAllc2MJICAgIGhpdHRpbmcgPEVzYz4gaW4gfE5vcm1hbC1tb2RlfC4KIAlleAkgICAgSW4gfFZpc3VhbC1tb2RlfCwgaGl0dGluZyB8UXwgcmVzdWx0cyBpbiBhbiBlcnJvci4KLQloYW5ndWwJICAgIEVycm9yIG9jY3VycmVkIHdoZW4gdXNpbmcgaGFuZ3VsIGlucHV0LgorCWhhbmd1bAkgICAgSWdub3JlZC4KIAlpbnNlcnRtb2RlICBQcmVzc2luZyA8RXNjPiBpbiAnaW5zZXJ0bW9kZScuCiAJbGFuZwkgICAgQ2FsbGluZyB0aGUgYmVlcCBtb2R1bGUgZm9yIEx1YS9NenNjaGVtZS9UQ0wuCiAJbWVzcwkgICAgTm8gb3V0cHV0IGF2YWlsYWJsZSBmb3IgfGc8fC4KQEAgLTE5MjAsNyArMTkyMCw3IEBACiAJCSAgICB7b25seSB3b3JrcyB3aGVuIGNvbXBpbGVkIHdpdGggdGhlIHwrdGV4dHByb3B8IGZlYXR1cmV9CiAKIAkgICBwb3B1cGhpZGRlbgotCSAgIAkgICAgSnVzdCBsaWtlICJwb3B1cCIgYnV0IGluaXRpYWxseSBoaWRlIHRoZSBwb3B1cC4gIFVzZSBhCisJCSAgICBKdXN0IGxpa2UgInBvcHVwIiBidXQgaW5pdGlhbGx5IGhpZGUgdGhlIHBvcHVwLiAgVXNlIGEKIAkJICAgIHxDb21wbGV0ZUNoYW5nZWR8IGF1dG9jb21tYW5kIHRvIGZldGNoIHRoZSBpbmZvIGFuZCBjYWxsCiAJCSAgICB8cG9wdXBfc2hvdygpfCBvbmNlIHRoZSBwb3B1cCBoYXMgYmVlbiBmaWxsZWQuCiAJCSAgICBTZWUgdGhlIGV4YW1wbGUgYXQgfGNvbXBsZXRlLXBvcHVwaGlkZGVufC4KQEAgLTY1NzQsMTIgKzY1NzQsMTEgQEAKIAlvZiB0aGlzIG9wdGlvbikuCiAJVGhlIGRlZmF1bHQgaXMgIj4iLiAgRm9yIFVuaXgsIGlmIHRoZSAnc2hlbGwnIG9wdGlvbiBpcyAiY3NoIiBvcgogCSJ0Y3NoIiBkdXJpbmcgaW5pdGlhbGl6YXRpb25zLCB0aGUgZGVmYXVsdCBiZWNvbWVzICI+JiIuICBJZiB0aGUKLQknc2hlbGwnIG9wdGlvbiBpcyAic2giLCAia3NoIiwgIm1rc2giLCAicGRrc2giLCAienNoIiwKLQkienNoLWJldGEiLCJiYXNoIiBvciAiZmlzaCIsIHRoZSBkZWZhdWx0IGJlY29tZXMgIj4lcyAyPiYxIi4gIFRoaXMKLQltZWFucyB0aGF0IHN0ZGVyciBpcyBhbHNvIGluY2x1ZGVkLiAgRm9yIFdpbjMyLCB0aGUgVW5peCBjaGVja3MgYXJlCi0JZG9uZSBhbmQgYWRkaXRpb25hbGx5ICJjbWQiIGlzIGNoZWNrZWQgZm9yLCB3aGljaCBtYWtlcyB0aGUgZGVmYXVsdAotCSI+JXMgMj4mMSIuICBBbHNvLCB0aGUgc2FtZSBuYW1lcyB3aXRoICIuZXhlIiBhcHBlbmRlZCBhcmUgY2hlY2tlZAotCWZvci4KKwknc2hlbGwnIG9wdGlvbiBpcyAic2giLCAia3NoIiwgIm1rc2giLCAicGRrc2giLCAienNoIiwgInpzaC1iZXRhIiwKKwkiYmFzaCIgb3IgImZpc2giLCB0aGUgZGVmYXVsdCBiZWNvbWVzICI+JXMgMj4mMSIuICBUaGlzIG1lYW5zIHRoYXQKKwlzdGRlcnIgaXMgYWxzbyBpbmNsdWRlZC4gIEZvciBXaW4zMiwgdGhlIFVuaXggY2hlY2tzIGFyZSBkb25lIGFuZAorCWFkZGl0aW9uYWxseSAiY21kIiBpcyBjaGVja2VkIGZvciwgd2hpY2ggbWFrZXMgdGhlIGRlZmF1bHQgIj4lcyAyPiYxIi4KKwlBbHNvLCB0aGUgc2FtZSBuYW1lcyB3aXRoICIuZXhlIiBhcHBlbmRlZCBhcmUgY2hlY2tlZCBmb3IuCiAJVGhlIGluaXRpYWxpemF0aW9uIG9mIHRoaXMgb3B0aW9uIGlzIGRvbmUgYWZ0ZXIgcmVhZGluZyB0aGUgIi52aW1yYyIKIAlhbmQgdGhlIG90aGVyIGluaXRpYWxpemF0aW9ucywgc28gdGhhdCB3aGVuIHRoZSAnc2hlbGwnIG9wdGlvbiBpcyBzZXQKIAl0aGVyZSwgdGhlICdzaGVsbHJlZGlyJyBvcHRpb24gY2hhbmdlcyBhdXRvbWF0aWNhbGx5IHVubGVzcyBpdCB3YXMKQEAgLTcyNTUsNyArNzI1NCw3IEBACiAJeyBORiAgRXZhbHVhdGUgZXhwcmVzc2lvbiBiZXR3ZWVuICcleycgYW5kICd9JyBhbmQgc3Vic3RpdHV0ZSByZXN1bHQuCiAJICAgICAgTm90ZSB0aGF0IHRoZXJlIGlzIG5vICclJyBiZWZvcmUgdGhlIGNsb3NpbmcgJ30nLiAgVGhlCiAJICAgICAgZXhwcmVzc2lvbiBjYW5ub3QgY29udGFpbiBhICd9JyBjaGFyYWN0ZXIsIGNhbGwgYSBmdW5jdGlvbiB0bwotCSAgICAgIHdvcmsgYXJvdW5kIHRoYXQuCisJICAgICAgd29yayBhcm91bmQgdGhhdC4gIFNlZSB8c3RsLSV7fCBiZWxvdy4KIAkoIC0gICBTdGFydCBvZiBpdGVtIGdyb3VwLiAgQ2FuIGJlIHVzZWQgZm9yIHNldHRpbmcgdGhlIHdpZHRoIGFuZAogCSAgICAgIGFsaWdubWVudCBvZiBhIHNlY3Rpb24uICBNdXN0IGJlIGZvbGxvd2VkIGJ5ICUpIHNvbWV3aGVyZS4KIAkpIC0gICBFbmQgb2YgaXRlbSBncm91cC4gIE5vIHdpZHRoIGZpZWxkcyBhbGxvd2VkLgpAQCAtNzI4OSwxMyArNzI4OCwxMyBAQAogCQk6c2V0IHN0YXR1c2xpbmU9Li4uJShcIFslTSVSJUhdJSkuLi4KIDwJQmV3YXJlIHRoYXQgYW4gZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgZWFjaCBhbmQgZXZlcnkgdGltZSB0aGUgc3RhdHVzCiAJbGluZSBpcyBkaXNwbGF5ZWQuCi0JCQkJCSpnOmFjdHVhbF9jdXJidWYqICpnOmFjdHVhbF9jdXJ3aW4qCi0JVGhlIGN1cnJlbnQgYnVmZmVyIGFuZCBjdXJyZW50IHdpbmRvdyB3aWxsIGJlIHNldCB0ZW1wb3JhcmlseSB0byB0aGF0Ci0Jb2YgdGhlIHdpbmRvdyAoYW5kIGJ1ZmZlcikgd2hvc2Ugc3RhdHVzbGluZSBpcyBjdXJyZW50bHkgYmVpbmcgZHJhd24uCi0JVGhlIGV4cHJlc3Npb24gd2lsbCBldmFsdWF0ZSBpbiB0aGlzIGNvbnRleHQuICBUaGUgdmFyaWFibGUKLQkiZzphY3R1YWxfY3VyYnVmIiBpcyBzZXQgdG8gdGhlIGBidWZucigpYCBudW1iZXIgb2YgdGhlIHJlYWwgY3VycmVudAotCWJ1ZmZlciBhbmQgImc6YWN0dWFsX2N1cndpbiIgdG8gdGhlIHx3aW5kb3ctSUR8IG9mIHRoZSByZWFsIGN1cnJlbnQKLQl3aW5kb3cuICBUaGVzZSB2YWx1ZXMgYXJlIHN0cmluZ3MuCisJCQkJKnN0bC0leyogKmc6YWN0dWFsX2N1cmJ1ZiogKmc6YWN0dWFsX2N1cndpbioKKwlXaGlsZSBldmFsdWF0aW9uZyAle30gdGhlIGN1cnJlbnQgYnVmZmVyIGFuZCBjdXJyZW50IHdpbmRvdyB3aWxsIGJlCisJc2V0IHRlbXBvcmFyaWx5IHRvIHRoYXQgb2YgdGhlIHdpbmRvdyAoYW5kIGJ1ZmZlcikgd2hvc2Ugc3RhdHVzbGluZSBpcworCWN1cnJlbnRseSBiZWluZyBkcmF3bi4gIFRoZSBleHByZXNzaW9uIHdpbGwgZXZhbHVhdGUgaW4gdGhpcyBjb250ZXh0LgorCVRoZSB2YXJpYWJsZSAiZzphY3R1YWxfY3VyYnVmIiBpcyBzZXQgdG8gdGhlIGBidWZucigpYCBudW1iZXIgb2YgdGhlCisJcmVhbCBjdXJyZW50IGJ1ZmZlciBhbmQgImc6YWN0dWFsX2N1cndpbiIgdG8gdGhlIHx3aW5kb3ctSUR8IG9mIHRoZQorCXJlYWwgY3VycmVudCB3aW5kb3cuICBUaGVzZSB2YWx1ZXMgYXJlIHN0cmluZ3MuCiAKIAlUaGUgJ3N0YXR1c2xpbmUnIG9wdGlvbiB3aWxsIGJlIGV2YWx1YXRlZCBpbiB0aGUgfHNhbmRib3h8IGlmIHNldCBmcm9tCiAJYSBtb2RlbGluZSwgc2VlIHxzYW5kYm94LW9wdGlvbnwuCkBAIC04OTUxLDYgKzg5NTAsOCBAQAogCWZhaWwgKGFuZCBtYWtlIHN1cmUgbm90IHRvIGV4aXQgVmltIHVudGlsIHRoZSB3cml0ZSB3YXMgc3VjY2Vzc2Z1bCkuCiAJU2VlIHxiYWNrdXAtdGFibGV8IGZvciBhbm90aGVyIGV4cGxhbmF0aW9uLgogCVdoZW4gdGhlICdiYWNrdXBza2lwJyBwYXR0ZXJuIG1hdGNoZXMsIGEgYmFja3VwIGlzIG5vdCBtYWRlIGFueXdheS4KKwlEZXBlbmRpbmcgb24gJ2JhY2t1cGNvcHknIHRoZSBiYWNrdXAgaXMgYSBuZXcgZmlsZSBvciB0aGUgb3JpZ2luYWwKKwlmaWxlIHJlbmFtZWQgKGFuZCBhIG5ldyBmaWxlIGlzIHdyaXR0ZW4pLgogCU5PVEU6IFRoaXMgb3B0aW9uIGlzIHNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuICdjb21wYXRpYmxlJyBpcwogCXNldC4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc2lnbi50eHQgYi9ydW50aW1lL2RvYy9zaWduLnR4dAppbmRleCAwOTM1MTllLi45NzJiNDNjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zaWduLnR4dAorKysgYi9ydW50aW1lL2RvYy9zaWduLnR4dApAQCAtMzczLDcgKzM3Myw3IEBACiAKIAkJVGhlIG9uZSBhcmd1bWVudCB7bGlzdH0gY2FuIGJlIHVzZWQgdG8gZGVmaW5lIGEgbGlzdCBvZiBzaWducy4KIAkJRWFjaCBsaXN0IGl0ZW0gaXMgYSBkaWN0aW9uYXJ5IHdpdGggdGhlIGFib3ZlIGl0ZW1zIGluIHtkaWN0fQotCQlhbmQgYSAnbmFtZScgaXRlbSBmb3IgdGhlIHNpZ24gbmFtZS4KKwkJYW5kIGEgIm5hbWUiIGl0ZW0gZm9yIHRoZSBzaWduIG5hbWUuCiAKIAkJUmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIC0xIG9uIGZhaWx1cmUuICBXaGVuIHRoZSBvbmUgYXJndW1lbnQKIAkJe2xpc3R9IGlzIHVzZWQsIHRoZW4gcmV0dXJucyBhIExpc3Qgb2YgdmFsdWVzIG9uZSBmb3IgZWFjaApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3ludGF4LnR4dCBiL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKaW5kZXggMmQxODI2My4uM2VjNGFjZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3ludGF4LnR4dAorKysgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxOSBOb3YgMTQKKypzeW50YXgudHh0KglGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTkgTm92IDIwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTI3NzEsMTAgKzI3NzEsMTAgQEAKIFRvIGFzc2lnbiBtdWx0aXBsZSBjb2RlIGJsb2NrIHR5cGVzIHRvIGEgc2luZ2xlIHN5bnRheCwgZGVmaW5lCiBgcnN0X3N5bnRheF9jb2RlX2xpc3RgIGFzIGEgbWFwcGluZzogPgogCWxldCByc3Rfc3ludGF4X2NvZGVfbGlzdCA9IHsKLQkJXCAnY3BwJyA9IFsnY3BwJywgJ2MrKyddLAotICAgICAgICAgICAgICAgIFwgJ2Jhc2gnID0gWydiYXNoJywgJ3NoJ10sCisJCVwgJ2NwcCc6IFsnY3BwJywgJ2MrKyddLAorCQlcICdiYXNoJzogWydiYXNoJywgJ3NoJ10sCiAJCS4uLgotCX0KKwlcIH0KIAogVG8gdXNlIGNvbG9yIGhpZ2hsaWdodGluZyBmb3IgZW1waGFzaXMgdGV4dDogPgogCWxldCByc3RfdXNlX2VtcGhhc2lzX2NvbG9ycyA9IDEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IDNiYmRjMDYuLjE1YzM3ZmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtNTU1Nyw2ICs1NTU3LDggQEAKIGNfQ1RSTC1SX0NUUkwtUAljbWRsaW5lLnR4dAkvKmNfQ1RSTC1SX0NUUkwtUCoKIGNfQ1RSTC1SX0NUUkwtUgljbWRsaW5lLnR4dAkvKmNfQ1RSTC1SX0NUUkwtUioKIGNfQ1RSTC1SX0NUUkwtVwljbWRsaW5lLnR4dAkvKmNfQ1RSTC1SX0NUUkwtVyoKK2NfQ1RSTC1TSElGVC1RCWNtZGxpbmUudHh0CS8qY19DVFJMLVNISUZULVEqCitjX0NUUkwtU0hJRlQtVgljbWRsaW5lLnR4dAkvKmNfQ1RSTC1TSElGVC1WKgogY19DVFJMLVQJY21kbGluZS50eHQJLypjX0NUUkwtVCoKIGNfQ1RSTC1VCWNtZGxpbmUudHh0CS8qY19DVFJMLVUqCiBjX0NUUkwtVgljbWRsaW5lLnR4dAkvKmNfQ1RSTC1WKgpAQCAtNzI1Myw2ICs3MjU1LDcgQEAKIGlfQ1RSTC1SX0NUUkwtTwlpbnNlcnQudHh0CS8qaV9DVFJMLVJfQ1RSTC1PKgogaV9DVFJMLVJfQ1RSTC1QCWluc2VydC50eHQJLyppX0NUUkwtUl9DVFJMLVAqCiBpX0NUUkwtUl9DVFJMLVIJaW5zZXJ0LnR4dAkvKmlfQ1RSTC1SX0NUUkwtUioKK2lfQ1RSTC1TSElGVC1WCWluc2VydC50eHQJLyppX0NUUkwtU0hJRlQtVioKIGlfQ1RSTC1UCWluc2VydC50eHQJLyppX0NUUkwtVCoKIGlfQ1RSTC1VCWluc2VydC50eHQJLyppX0NUUkwtVSoKIGlfQ1RSTC1WCWluc2VydC50eHQJLyppX0NUUkwtVioKQEAgLTczODIsNiArNzM4NSw3IEBACiBpbnRlcm5hbC12YXJpYWJsZXMJZXZhbC50eHQJLyppbnRlcm5hbC12YXJpYWJsZXMqCiBpbnRlcm5hbC13b3JkbGlzdAlzcGVsbC50eHQJLyppbnRlcm5hbC13b3JkbGlzdCoKIGludGVybmV0CWludHJvLnR4dAkvKmludGVybmV0KgoraW50ZXJydXB0KCkJZXZhbC50eHQJLyppbnRlcnJ1cHQoKSoKIGludHJvCWludHJvLnR4dAkvKmludHJvKgogaW50cm8udHh0CWludHJvLnR4dAkvKmludHJvLnR4dCoKIGludmVyc2UJc3ludGF4LnR4dAkvKmludmVyc2UqCkBAIC04NTE3LDYgKzg1MjEsNyBAQAogcXVvdGV+CWNoYW5nZS50eHQJLypxdW90ZX4qCiByCWNoYW5nZS50eHQJLypyKgogci52aW0Jc3ludGF4LnR4dAkvKnIudmltKgorcmFuZCgpCWV2YWwudHh0CS8qcmFuZCgpKgogcmFuZ2UoKQlldmFsLnR4dAkvKnJhbmdlKCkqCiByYXctdGVybWluYWwtbW9kZQl0ZXJtLnR4dAkvKnJhdy10ZXJtaW5hbC1tb2RlKgogcmNwCXBpX25ldHJ3LnR4dAkvKnJjcCoKQEAgLTg5MzgsNiArODk0Myw3IEBACiBzcWxzZXJ2ZXIJZnRfc3FsLnR4dAkvKnNxbHNlcnZlcioKIHNxbHNldHR5cGUJZnRfc3FsLnR4dAkvKnNxbHNldHR5cGUqCiBzcXJ0KCkJZXZhbC50eHQJLypzcXJ0KCkqCitzcmFuZCgpCWV2YWwudHh0CS8qc3JhbmQoKSoKIHNzY2FuZglldmFsLnR4dAkvKnNzY2FuZioKIHN0YW5kYXJkLXBsdWdpbgl1c3JfMDUudHh0CS8qc3RhbmRhcmQtcGx1Z2luKgogc3RhbmRhcmQtcGx1Z2luLWxpc3QJaGVscC50eHQJLypzdGFuZGFyZC1wbHVnaW4tbGlzdCoKQEAgLTg5NTcsNiArODk2Myw3IEBACiBzdGF0aWMtdGFnCXRhZ3NyY2gudHh0CS8qc3RhdGljLXRhZyoKIHN0YXR1cy1saW5lCXdpbmRvd3MudHh0CS8qc3RhdHVzLWxpbmUqCiBzdGF0dXNtc2ctdmFyaWFibGUJZXZhbC50eHQJLypzdGF0dXNtc2ctdmFyaWFibGUqCitzdGwtJXsJb3B0aW9ucy50eHQJLypzdGwtJXsqCiBzdHIyZmxvYXQoKQlldmFsLnR4dAkvKnN0cjJmbG9hdCgpKgogc3RyMmxpc3QoKQlldmFsLnR4dAkvKnN0cjJsaXN0KCkqCiBzdHIybnIoKQlldmFsLnR4dAkvKnN0cjJucigpKgpAQCAtODk3Nyw2ICs4OTg0LDcgQEAKIHN0cmxlbigpCWV2YWwudHh0CS8qc3RybGVuKCkqCiBzdHJwYXJ0KCkJZXZhbC50eHQJLypzdHJwYXJ0KCkqCiBzdHJwYnJrKCkJZXZhbC50eHQJLypzdHJwYnJrKCkqCitzdHJwdGltZSgpCWV2YWwudHh0CS8qc3RycHRpbWUoKSoKIHN0cnJjaHIoKQlldmFsLnR4dAkvKnN0cnJjaHIoKSoKIHN0cnJpZHgoKQlldmFsLnR4dAkvKnN0cnJpZHgoKSoKIHN0cnNwbigpCWV2YWwudHh0CS8qc3Ryc3BuKCkqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90ZXJtaW5hbC50eHQgYi9ydW50aW1lL2RvYy90ZXJtaW5hbC50eHQKaW5kZXggZDgzMDM1Yy4uNGRjZjJiZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGVybWluYWwudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Rlcm1pbmFsLnR4dApAQCAtMTA0NiwxMiArMTA0NiwxMiBAQAogCiBUaGUgdGVzdCB3aWxsIHRoZW4gZmFpbCwgZ2l2aW5nIHlvdSB0aGUgY29tbWFuZCB0byBjb21wYXJlIHRoZSByZWZlcmVuY2UgZHVtcAogYW5kIHRoZSBmYWlsZWQgZHVtcCwgZS5nLjogPgotCWNhbGwgdGVybV9kdW1wZGlmZigiVGVzdF9mdW5jLmR1bXAuZmFpbGVkIiwgImR1bXBzL1Rlc3RfZnVuYy5kdW1wIikKKwljYWxsIHRlcm1fZHVtcGRpZmYoImZhaWxlZC9UZXN0X2Z1bmMuZHVtcCIsICJkdW1wcy9UZXN0X2Z1bmMuZHVtcCIpCiAKIFVzZSB0aGlzIGNvbW1hbmQgaW4gVmltLCB3aXRoIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBzZXQgdG8gc3JjL3Rlc3RkaXIuCiBPbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggdGhlIHRlc3QsIG1vdmUgdGhlIGZhaWxlZCBkdW1wIGluIHBsYWNlIG9mIHRoZQogcmVmZXJlbmNlOiA+Ci0JOiFtdiBUZXN0X2Z1bmMuZHVtcC5mYWlsZWQgZHVtcHMvVGVzdF9mdW5jLmR1bXAKKwk6IW12IGZhaWxlZC9UZXN0X2Z1bmMuZHVtcCBkdW1wcy9UZXN0X2Z1bmMuZHVtcAogCiAKIENyZWF0aW5nIGEgc2NyZWVuIGR1bXAgfgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdG9kby50eHQgYi9ydW50aW1lL2RvYy90b2RvLnR4dAppbmRleCAzM2U2MDhkLi40ZWZjZjEzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90b2RvLnR4dAorKysgYi9ydW50aW1lL2RvYy90b2RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTkgTm92IDE5CisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE5IE5vdiAyNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zOCwxMCArMzgsNyBAQAogCQkJCQkJCSprbm93bi1idWdzKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0gS25vd24gYnVncyBhbmQgY3VycmVudCB3b3JrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVBhdGNoIDIzMTQgZm9yIHZpJyBjYXVzZXMgYSBuZXcgcHJvYmxlbS4gICM1MjQ3Ci0KLVBhdGNoIGZyb20gTmFtc2ggdG8gYWxsb3cgYnVpbGRpbmcgd2l0aCBib3RoIFhJTSBhbmQgaGFuZ3VsaW4uICgyMDE5IEF1ZyAyOSkKLQorRm9yIHJhbmQoKSB1c2UgaHR0cDovL3BybmcuZGkudW5pbWkuaXQveG9zaGlybzEyOHN0YXJzdGFyLmMgPwogCiBQb3B1cCB3aW5kb3dzOgogLSBVc2UgcG9wdXAgKG9yIHBvcHVwIG1lbnUpIGZvciBjb21tYW5kIGxpbmUgY29tcGxldGlvbgpAQCAtNDksNyArNDYsNyBAQAogLSBNYWtlIHJlZHJhd2luZyBtb3JlIGVmZmljaWVudCBhbmQgYXZvaWQgZmxpY2tlcjoKICAgICAtIHB1dCBwb3B1cCBtZW51IGFsc28gaW4gcG9wdXBfbWFzaz8KIC0gQW55IG90aGVyIGNvbW1hbmRzIHRvIGRpc2FibGUgaW4gYSBwb3B1cCB3aW5kb3c/Ci0gIFVzZSBFUlJPUl9JRl9QT1BVUF9XSU5ET1cgZm9yIG1vcmUgY29tbWFuZHMuCisgIFVzZSBFUlJPUl9JRl9QT1BVUF9XSU5ET1cgZm9yIHRoZXNlLgogLSBGaWd1cmUgb3V0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBiZXR0ZXIuCiAgICAgaWYgd3JhcHBpbmcgc3BsaXRzIGEgZG91YmxlLXdpZGUgY2hhcmFjdGVyCiAgICAgaWYgd3JhcHBpbmcgaW5zZXJ0cyBpbmRlbnQKQEAgLTYyLDggKzU5LDYgQEAKIC0gU2VlIHJlbWFya3MgYXQgdG9wIG9mIHNyYy90ZXh0cHJvcC5jCiAKICdpbmNzZWFyY2gnIHdpdGggOnM6IAotLSBHZXQgRTIwIHdoZW4gdXNpbmcgY29tbWFuZCBoaXN0b3J5IHRvIGdldCAiJzwsJz5zL2EvYiIgYW5kIG5vIFZpc3VhbCBhcmVhCi0gIHdhcyBzZXQuIChpc3N1ZSAjMzgzNykKIC0gOnMvZm9vICB1c2luZyBDVFJMLUcgbW92ZXMgdG8gYW5vdGhlciBsaW5lLCBzaG91bGQgbm90IGhhcHBlbiwgb3IgdXNlIHRoZQogICBjb3JyZWN0IGxpbmUgKGl0IHVzZXMgdGhlIGxhc3QgYnV0IG9uZSBsaW5lKSAoTGlmZXBpbGxhciwgQXVnIDE4LCAjMzM0NSkKIC0gOnNAcGF0L3Rlcm5AIGRvZXNuJ3QgaW5jbHVkZSAiLyIgaW4gdGhlIHBhdHRlcm4uIChUYWthaGlybyBZb3NoaWhhcmEsICMzNjM3KQpAQCAtMTM3LDIwICsxMzIsMTQgQEAKIFBhdGNoIHRvIHByb3Blcmx5IGJyZWFrIENKSyBsaW5lczogQW50b24gS29jaGtvdiwgIzM4NzUKIEZsYWcgaW4gJ2Zvcm1hdG9wdGlvbnMnIGlzIG5vdCB1c2VkIGluIHRoZSB0ZXN0cy4KIAotUmVtb3ZlIGNoZWNrIGZvciBjbWRfc2lsZW50IHdoZW4gY2FsbGluZyBzZWFyY2hfc3RhdCgpPyAoR2FyeSBKb2huc29uKQotCiB1bmRvIHJlc3VsdCB3cm9uZzogTWFzYXRvIE5pc2hpaGF0YSwgIzQ3OTgKIAogVW5kbyBwdXRzIGN1cnNvciBpbiB3cm9uZyBsaW5lIGFmdGVyICJjRzxFc2M+IiB1bmRvLgogCiBTb3VuZDogc3VwcG9ydCBvbiBNYWM/ICBPciBkb2VzIGxpYmNhbmJlcnJhIHdvcmsgdGhlcmU/CiAKLVBhdGNoIHRvIHVzZXIgbWFudWFsOiAjNTA5OC4gIENvbW1lbnRzIGJ5IERDIFNsYWdlbDoKLS0gc2VtaWNvbG9uIHVzZSBzaG91bGQgYmUgT0suCi0tIEtlZXAgY2FwaXRhbCBhZnRlciBjb2xvbi4KLQotUGF0Y2ggdG8gZml4IHNlc3Npb24gZmlsZSB3aGVuIHVzaW5nIG11bHRpcGxlIHRhYnMuIChKYXNvbiBGcmFua2xpbiwgMjAxOSBNYXkKLTIwKQorUGF0Y2ggdG8gZml4IHNlc3Npb24gZmlsZSB3aGVuIHVzaW5nIG11bHRpcGxlIHRhYiBwYWdlcy4gKEphc29uIEZyYW5rbGluLCAyMDE5CitNYXkgMjApCiBBbHNvIHB1dCA6YXJnYWRkIGNvbW1hbmRzIGF0IHRoZSBzdGFydCBmb3IgYWxsIGJ1ZmZlcnMsIHNvIHRoYXQgdGhlaXIgb3JkZXIKIHJlbWFpbnMgZXF1YWw/ICBUaGVuICVhcmdkZWwgdG8gY2xlYW4gaXQgdXAuICBEbyB0cnkgdGhpcyB3aXRoICdoaWRkZW4nIHNldC4KIEFsc28gIzQ5OTQ6IHdpbmRvdy1sb2NhbCBvcHRpb25zIG5vdCBhbHdheXMgcmVzdG9yZWQsIHJlbGF0ZWQgdG8gdXNpbmcgOmJhZGQuCkBAIC0xOTgsMTUgKzE4Nyw5IEBACiBNb2RlbGVzcyBzZWxlY3Rpb24gZG9lc24ndCB3b3JrIGluIGd2aW0uICgjNDc4MykKIENhdXNlZCBieSBwYXRjaCA4LjEuMTUzNC4KIAotUGF0Y2ggdG8gYWRkIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLiAoSG9uZyBYdSwgMjAxMCBOb3YgOCwgdXBkYXRlIE5vdiAxMCkKLUFsdGVybmF0aXZlIGZyb20gQ2hyaXN0aWFuIEJyYWJhbmR0LiAoMjAxMCBTZXAgMTkpCi1OZXcgb25lIGZyb20gWWFzdWhpcm8gTWF0c3Vtb3RvLCAjMTI3Ny4KLQogVmlzdWFsIGhpZ2hsaWdodCBub3QgcmVtb3ZlZCB3aGVuICdkaXBzbGF5JyBpcyAibGFzdGxpbmUiIGFuZCBsaW5lIGRvZXNuJ3QKIGZpdC4gKEtldmluIExhd2xlciwgIzQ0NTcpCiAKLVBhdGNoIHRvIGFkZCBpbnRlcnJ1cHQoKS4gKFlhc3VoaXJvIE1hdHN1bW90bywgIzI4MzQpCi0KIFBhdGNoIHRvIGFkZCBwZXItdGFicGFnZSBhbmQgcGVyLXdpbmRvdyBwcmV2aW91cyBkaXJlY3Rvcnk6ICJsY2QgLSIgYW5kICJ0Y2QKIC0iLiAoWWVnYXBwYW4gTGFrc2htYW5hbiwgIzQzNjIpCiAKQEAgLTIzOSw3ICsyMjIsNyBAQAogQ2FuIGJlIHVzZWQgdG8gdXBkYXRlIGhpZ2hsaWdodGluZy4gIzMxMjcgICM1MTgxCiAKIFBhdGNoIGZvciBUZW1wbGF0ZSBzdHJpbmc6ICM0NDkxLiAgTmV3IHB1bGw6ICM0NjM0Ci1IYXZlIGFub3RoZXIgbG9vayBhdCB0aGUgaW1wbGVtZW50YXRpb246IElzIHRoZSBjb2RlIHdvcnRoIGl0PworSW1wbGVtZW50YXRpb24gaXMgdG9vIGluZWZmaWNpZW50LCBhdm9pZCB1c2luZyBsYW1iZGEuCiAKIEluY29ycmVjdCBmb3JtYXR0aW5nIHdpdGggYXV0b2luZGVudC4gKFNlYmFzdGlhbiBHbmlhemRvd3NraSwgIzQ5MDkpCiAKQEAgLTU1OSw5ICs1NDIsNiBAQAogCiBBZGp1c3Qgd2luZG93cyBpbnN0YWxsZXIgZXhwbGFuYXRpb24gb2YgYmVoYXZpb3IuIChzY29vdGVyZ3Jpc2VuLCAjMzMxMCkKIAotU2V0IGc6YWN0dWFsX2N1cmJ1ZiB3aGVuIGV2YWx1YXRpbmcgJ3N0YXR1c2xpbmUnLCBub3QganVzdCB3aXRoIGFuIGV4cHJlc3Npb24uCi0oRGFuaWVsIEhhaGxlciwgMjAxOCBBdWcgOCwgIzMyOTkpCi0KIFVwZGF0ZSBmb3IgeGltLWlucHV0LXN0eWxlIGhlbHAgKFRvbnkgTWVjaGVseW5jaywgMjAxOSBKYW4gMTApLgogRmVlZGJhY2sgZnJvbSBzb21lb25lIHdobyB1c2VzIHRoaXM/CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wMS50eHQgYi9ydW50aW1lL2RvYy91c3JfMDEudHh0CmluZGV4IGY3YWJkOWMuLjQ5YmY0ZjUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wMS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzAxLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDEudHh0KglGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTcgSnVsIDE1CisqdXNyXzAxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE5IE5vdiAyMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtNDEsMTEgKzQxLDExIEBACiAJUHJlc3MgIENUUkwtTyAgdG8ganVtcCBiYWNrIChyZXBlYXQgdG8gZ28gZnVydGhlciBiYWNrKS4KIAogTWFueSBsaW5rcyBhcmUgaW4gdmVydGljYWwgYmFycywgbGlrZSB0aGlzOiB8YmFyc3wuICBUaGUgYmFycyB0aGVtc2VsdmVzIG1heQotYmUgaGlkZGVuIG9yIGludmlzaWJsZSwgc2VlIGJlbG93LiAgQW4gb3B0aW9uIG5hbWUsIGxpa2UgJ251bWJlcicsIGEgY29tbWFuZAorYmUgaGlkZGVuIG9yIGludmlzaWJsZTsgc2VlIGJlbG93LiAgQW4gb3B0aW9uIG5hbWUsIGxpa2UgJ251bWJlcicsIGEgY29tbWFuZAogaW4gZG91YmxlIHF1b3RlcyBsaWtlICI6d3JpdGUiIGFuZCBhbnkgb3RoZXIgd29yZCBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgbGluay4KIFRyeSBpdCBvdXQ6IE1vdmUgdGhlIGN1cnNvciB0byAgQ1RSTC1dICBhbmQgcHJlc3MgQ1RSTC1dIG9uIGl0LgogCi1PdGhlciBzdWJqZWN0cyBjYW4gYmUgZm91bmQgd2l0aCB0aGUgIjpoZWxwIiBjb21tYW5kLCBzZWUgfGhlbHAudHh0fC4KK090aGVyIHN1YmplY3RzIGNhbiBiZSBmb3VuZCB3aXRoIHRoZSAiOmhlbHAiIGNvbW1hbmQ7IHNlZSB8aGVscC50eHR8LgogCiBUaGUgYmFycyBhbmQgc3RhcnMgYXJlIHVzdWFsbHkgaGlkZGVuIHdpdGggdGhlIHxjb25jZWFsfCBmZWF0dXJlLiAgVGhleSBhbHNvCiB1c2UgfGhsLUlnbm9yZXwsIHVzaW5nIHRoZSBzYW1lIGNvbG9yIGZvciB0aGUgdGV4dCBhcyB0aGUgYmFja2dyb3VuZC4gIFlvdSBjYW4KQEAgLTEwMSwxNCArMTAxLDE0IEBACiAJYWx0ZXJuYXRpdmUgY2FsbGVkICJldmltIiAoZWFzeSBWaW0pLiAgVGhpcyBpcyBzdGlsbCBWaW0sIGJ1dCB1c2VkIGluCiAJYSB3YXkgdGhhdCByZXNlbWJsZXMgYSBjbGljay1hbmQtdHlwZSBlZGl0b3IgbGlrZSBOb3RlcGFkLiAgSXQgYWx3YXlzCiAJc3RheXMgaW4gSW5zZXJ0IG1vZGUsIHRodXMgaXQgZmVlbHMgdmVyeSBkaWZmZXJlbnQuICBJdCBpcyBub3QKLQlleHBsYWluZWQgaW4gdGhlIHVzZXIgbWFudWFsLCBzaW5jZSBpdCBzaG91bGQgYmUgbW9zdGx5IHNlbGYKLQlleHBsYW5hdG9yeS4gIFNlZSB8ZXZpbS1rZXlzfCBmb3IgZGV0YWlscy4KKwlleHBsYWluZWQgaW4gdGhlIHVzZXIgbWFudWFsLCBzaW5jZSBpdCBzaG91bGQgYmUgbW9zdGx5CisJc2VsZi1leHBsYW5hdG9yeS4gIFNlZSB8ZXZpbS1rZXlzfCBmb3IgZGV0YWlscy4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqMDEuMyoJVXNpbmcgdGhlIFZpbSB0dXRvcgkJCQkqdHV0b3IqICp2aW10dXRvcioKIAogSW5zdGVhZCBvZiByZWFkaW5nIHRoZSB0ZXh0IChib3JpbmchKSB5b3UgY2FuIHVzZSB0aGUgdmltdHV0b3IgdG8gbGVhcm4geW91cgotZmlyc3QgVmltIGNvbW1hbmRzLiAgVGhpcyBpcyBhIDMwIG1pbnV0ZSB0dXRvcmlhbCB0aGF0IHRlYWNoZXMgdGhlIG1vc3QgYmFzaWMKK2ZpcnN0IFZpbSBjb21tYW5kcy4gIFRoaXMgaXMgYSAzMC1taW51dGUgdHV0b3JpYWwgdGhhdCB0ZWFjaGVzIHRoZSBtb3N0IGJhc2ljCiBWaW0gZnVuY3Rpb25hbGl0eSBoYW5kcy1vbi4KIAogT24gVW5peCwgaWYgVmltIGhhcyBiZWVuIHByb3Blcmx5IGluc3RhbGxlZCwgeW91IGNhbiBzdGFydCBpdCBmcm9tIHRoZSBzaGVsbDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wMi50eHQgYi9ydW50aW1lL2RvYy91c3JfMDIudHh0CmluZGV4IGI5ZTk2OGUuLjhkM2RkZWUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wMi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzAyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDIudHh0KglGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTcgTWFyIDE0CisqdXNyXzAyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE5IE5vdiAyMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtMjU1LDExICsyNTUsMTEgQEAKIAogCWcgaW50ZWxsaWdlbnQgdHVydGxlIH4KIAotVGhlIG5leHQgdSBjb21tYW5kIHJlc3RvcmVzIHRoZSBuZXh0LXRvLWxhc3QgY2hhcmFjdGVyIGRlbGV0ZWQ6CitUaGUgbmV4dCAidSIgY29tbWFuZCByZXN0b3JlcyB0aGUgbmV4dC10by1sYXN0IGNoYXJhY3RlciBkZWxldGVkOgogCiAJbmcgaW50ZWxsaWdlbnQgdHVydGxlIH4KIAotVGhlIG5leHQgdSBjb21tYW5kIGdpdmVzIHlvdSB0aGUgdSwgYW5kIHNvIG9uOgorVGhlIG5leHQgInUiIGNvbW1hbmQgZ2l2ZXMgeW91IHRoZSB1LCBhbmQgc28gb246CiAKIAl1bmcgaW50ZWxsaWdlbnQgdHVydGxlIH4KIAlvdW5nIGludGVsbGlnZW50IHR1cnRsZSB+CkBAIC0zNzUsNyArMzc1LDcgQEAKIAlVbmxpa2UgbWFueSBvdGhlciBlZGl0b3JzLCBWaW0gZG9lcyBub3QgYXV0b21hdGljYWxseSBtYWtlIGEgYmFja3VwCiAJZmlsZS4gIElmIHlvdSB0eXBlICJaWiIsIHlvdXIgY2hhbmdlcyBhcmUgY29tbWl0dGVkIGFuZCB0aGVyZSdzIG5vCiAJdHVybmluZyBiYWNrLiAgWW91IGNhbiBjb25maWd1cmUgdGhlIFZpbSBlZGl0b3IgdG8gcHJvZHVjZSBiYWNrdXAKLQlmaWxlcywgc2VlIHwwNy40fC4KKwlmaWxlczsgc2VlIHwwNy40fC4KIAogCiBESVNDQVJESU5HIENIQU5HRVMKQEAgLTM5OCw3ICszOTgsNyBAQAogCUUzNzogTm8gd3JpdGUgc2luY2UgbGFzdCBjaGFuZ2UgKHVzZSAhIHRvIG92ZXJyaWRlKSB+CiAKIEJ5IHNwZWNpZnlpbmcgdGhlIG92ZXJyaWRlLCB5b3UgYXJlIGluIGVmZmVjdCB0ZWxsaW5nIFZpbSwgIkkga25vdyB0aGF0IHdoYXQKLUknbSBkb2luZyBsb29rcyBzdHVwaWQsIGJ1dCBJJ20gYSBiaWcgYm95IGFuZCByZWFsbHkgd2FudCB0byBkbyB0aGlzLiIKK0knbSBkb2luZyBsb29rcyBzdHVwaWQsIGJ1dCBJIHJlYWxseSB3YW50IHRvIGRvIHRoaXMuIgogCiBJZiB5b3Ugd2FudCB0byBjb250aW51ZSBlZGl0aW5nIHdpdGggVmltOiBUaGUgIjplISIgY29tbWFuZCByZWxvYWRzIHRoZQogb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgZmlsZS4KQEAgLTU1MSw3ICs1NTEsNyBAQAogICAgY29tbWFuZCBhcmd1bWVudCAlOiA+CiAgICAJOmhlbHAgY18lCiAKLTgpIEV4LWNvbW1hbmRzIGFsd2F5cyBzdGFydCB3aXRoICI6Iiwgc28gdG8gZ28gdG8gdGhlIDpzIGNvbW1hbmQgaGVscDogPgorOCkgRXgtY29tbWFuZHMgYWx3YXlzIHN0YXJ0IHdpdGggIjoiLCBzbyB0byBnbyB0byB0aGUgIjpzIiBjb21tYW5kIGhlbHA6ID4KIAk6aGVscCA6cwogCiA5KSBDb21tYW5kcyBzcGVjaWZpY2FsbHkgZm9yIGRlYnVnZ2luZyBzdGFydCB3aXRoICI+Ii4gIFRvIGdvIHRvIHRoZSBoZWxwCkBAIC01NjEsMjIgKzU2MSwyMyBAQAogMTApIEtleSBjb21iaW5hdGlvbnMuICBUaGV5IHVzdWFsbHkgc3RhcnQgd2l0aCBhIHNpbmdsZSBsZXR0ZXIgaW5kaWNhdGluZwogICAgIHRoZSBtb2RlIGZvciB3aGljaCB0aGV5IGNhbiBiZSB1c2VkLiAgRS5nLjogPgogICAgCTpoZWxwIGlfQ1RSTC1YCi08ICAgIHRha2VzIHlvdSB0byB0aGUgZmFtaWx5IG9mIEN0cmwtWCBjb21tYW5kcyBmb3IgaW5zZXJ0IG1vZGUgd2hpY2ggY2FuIGJlCi0gICAgdXNlZCB0byBhdXRvIGNvbXBsZXRlIGRpZmZlcmVudCB0aGluZ3MuICBOb3RlLCB0aGF0IGNlcnRhaW4ga2V5cyB3aWxsCis8ICAgIHRha2VzIHlvdSB0byB0aGUgZmFtaWx5IG9mIENUUkwtWCBjb21tYW5kcyBmb3IgaW5zZXJ0IG1vZGUgd2hpY2ggY2FuIGJlCisgICAgdXNlZCB0byBhdXRvLWNvbXBsZXRlIGRpZmZlcmVudCB0aGluZ3MuICBOb3RlLCB0aGF0IGNlcnRhaW4ga2V5cyB3aWxsCiAgICAgYWx3YXlzIGJlIHdyaXR0ZW4gdGhlIHNhbWUsIGUuZy4gQ29udHJvbCB3aWxsIGFsd2F5cyBiZSBDVFJMLgogICAgIEZvciBub3JtYWwgbW9kZSBjb21tYW5kcyB0aGVyZSBpcyBubyBwcmVmaXggYW5kIHRoZSB0b3BpYyBpcyBhdmFpbGFibGUgYXQKICAgICA6aCBDVFJMLTxMZXR0ZXI+LiBFLmcuICA+CiAgICAJOmhlbHAgQ1RSTC1XCiA8ICAgIEluIGNvbnRyYXN0ID4KIAk6aGVscCBjX0NUUkwtUgotPCAgICB3aWxsIGRlc2NyaWJlIHdoYXQgdGhlIEN0cmwtUiBkb2VzIHdoZW4gZW50ZXJpbmcgY29tbWFuZHMgaW4gdGhlIENvbW1hbmQKKzwgICAgd2lsbCBkZXNjcmliZSB3aGF0IHRoZSBDVFJMLVIgZG9lcyB3aGVuIGVudGVyaW5nIGNvbW1hbmRzIGluIHRoZSBDb21tYW5kCiAgICAgbGluZSBhbmQgPgotICAgCTpoZWxwIHZfQ3RybC1BCisgICAJOmhlbHAgdl9DVFJMLUEKIDwgICAgdGFsa3MgYWJvdXQgaW5jcmVtZW50aW5nIG51bWJlcnMgaW4gdmlzdWFsIG1vZGUgYW5kID4KIAk6aGVscCBnX0NUUkwtQQotPCAgICB0YWxrcyBhYm91dCB0aGUgZzxDLUE+IGNvbW1hbmQgKGUuZy4geW91IGhhdmUgdG8gcHJlc3MgImciIHRoZW4gPEN0cmwtQT4pLgotICAgIEhlcmUgdGhlICJnIiBzdGFuZCBmb3IgdGhlIG5vcm1hbCBjb21tYW5kICJnIiB3aGljaCBhbHdheXMgZXhwZWN0cyBhIHNlY29uZAotICAgIGtleSBiZWZvcmUgZG9pbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIGNvbW1hbmRzIHN0YXJ0aW5nIHdpdGggInoiCis8ICAgIHRhbGtzIGFib3V0IHRoZSAiZzxDLUE+IiBjb21tYW5kIChlLmcuIHlvdSBoYXZlIHRvIHByZXNzICJnIiB0aGVuCisgICAgPENUUkwtQT4pLiAgSGVyZSB0aGUgImciIHN0YW5kIGZvciB0aGUgbm9ybWFsIGNvbW1hbmQgImciIHdoaWNoIGFsd2F5cworICAgIGV4cGVjdHMgYSBzZWNvbmQga2V5IGJlZm9yZSBkb2luZyBzb21ldGhpbmcgc2ltaWxhciB0byB0aGUgY29tbWFuZHMKKyAgICBzdGFydGluZyB3aXRoICJ6IgogCiAxMSkgUmVnZXhwIGl0ZW1zIGFsd2F5cyBzdGFydCB3aXRoIC8uICBTbyB0byBnZXQgaGVscCBmb3IgdGhlICJcKyIgcXVhbnRpZmllcgogICAgIGluIFZpbSByZWdleGVzOiA+CkBAIC02NDcsMTUgKzY0OCwxNiBAQAogPCAgICBBbHNvIGlmIHlvdSB3YW50IHRvIGFjY2VzcyBhIGNlcnRhaW4gY2hhcHRlciBpbiB0aGUgaGVscCwgdGhlIGNoYXB0ZXIKICAgICBudW1iZXIgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGxpa2UgdGhpczogPgogICAgIAk6aGVscCAxMC4xCi08ICAgIGdvZXMgdG8gY2hhcHRlciAxMC4xIGluIHx1c3JfMTAudHh0fCBhbmQgdGFsa3MgYWJvdXQgcmVjb3JkaW5nIG1hY3Jvcy4KKzwgICAgd2hpY2ggZ29lcyB0byBjaGFwdGVyIDEwLjEgaW4gfHVzcl8xMC50eHR8IGFuZCB0YWxrcyBhYm91dCByZWNvcmRpbmcKKyAgICBtYWNyb3MuCiAKIDE5KSBIaWdobGlnaHRpbmcgZ3JvdXBzLiAgQWx3YXlzIHN0YXJ0IHdpdGggaGwtZ3JvdXBuYW1lLiAgRS5nLiA+CiAgICAgCTpoZWxwIGhsLVdhcm5pbmdNc2cKIDwgICAgdGFsa3MgYWJvdXQgdGhlIFdhcm5pbmdNc2cgaGlnaGxpZ2h0aW5nIGdyb3VwLgogCi0yMCkgU3ludGF4IGhpZ2hsaWdodGluZyBpcyBuYW1lc3BhY2VkIHRvIDpzeW4tdG9waWMgZS5nLiA+CisyMCkgU3ludGF4IGhpZ2hsaWdodGluZyBpcyBuYW1lc3BhY2VkIHRvIDpzeW4tdG9waWMuICBFLmcuID4KIAk6aGVscCA6c3luLWNvbmNlYWwKLTwgICAgdGFsa3MgYWJvdXQgdGhlIGNvbmNlYWwgYXJndW1lbnQgZm9yIHRoZSA6c3luIGNvbW1hbmQuCis8ICAgIHRhbGtzIGFib3V0IHRoZSBjb25jZWFsIGFyZ3VtZW50IGZvciB0aGUgIjpzeW4iIGNvbW1hbmQuCiAKIDIxKSBRdWlja2ZpeCBjb21tYW5kcyB1c3VhbGx5IHN0YXJ0IHdpdGggOmMgd2hpbGUgbG9jYXRpb24gbGlzdCBjb21tYW5kcwogICAgIHVzdWFsbHkgc3RhcnQgd2l0aCA6bApAQCAtNjg4LDcgKzY5MCw3IEBACiA8ICAgIHRha2VzIHlvdSBleGFjdGx5IHRvIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgc3dhcCBlcnJvciBtZXNzYWdlIGFuZCA+CiAJOmhlbHAgVzEwCiA8ICAgIHRhbGtzIGFib3V0IHRoZSB3YXJuaW5nICJDaGFuZ2luZyBhIHJlYWRvbmx5IGZpbGUiLgotICAgIFNvbWV0aW1lcyBob3dldmVyLCB0aG9zZSBlcnJvciBjb2RlcyBhcmUgbm90IGRlc2NyaWJlZCwgYnV0IHJhdGhlciBhcmUKKyAgICBTb21ldGltZXMsIGhvd2V2ZXIsIHRob3NlIGVycm9yIGNvZGVzIGFyZSBub3QgZGVzY3JpYmVkLCBidXQgcmF0aGVyIGFyZQogICAgIGxpc3RlZCBhdCB0aGUgVmltIGNvbW1hbmQgdGhhdCB1c3VhbGx5IGNhdXNlcyB0aGlzLiAgU286ID4KICAgICAJOmhlbHAgRTEyOAogPCAgICB0YWtlcyB5b3UgdG8gdGhlIHw6ZnVuY3Rpb258IGNvbW1hbmQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wMy50eHQgYi9ydW50aW1lL2RvYy91c3JfMDMudHh0CmluZGV4IDVjMjA0ZjAuLjQ4ZjcxYmYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wMy50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzAzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDMudHh0KglGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTcgSnVsIDIxCisqdXNyXzAzLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE5IE5vdiAyMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtODEsOCArODEsOCBAQAogYW4gPEVuZD4ga2V5IGl0IHdpbGwgZG8gdGhlIHNhbWUgdGhpbmcuCiAKIFRoZSAiXiIgY29tbWFuZCBtb3ZlcyB0byB0aGUgZmlyc3Qgbm9uLWJsYW5rIGNoYXJhY3RlciBvZiB0aGUgbGluZS4gIFRoZSAiMCIKLWNvbW1hbmQgKHplcm8pIG1vdmVzIHRvIHRoZSB2ZXJ5IGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgbGluZS4gIFRoZSA8SG9tZT4ga2V5Ci1kb2VzIHRoZSBzYW1lIHRoaW5nLiAgSW4gYSBwaWN0dXJlOgorY29tbWFuZCAoemVybykgbW92ZXMgdG8gdGhlIHZlcnkgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBsaW5lLCBhbmQgdGhlIDxIb21lPgora2V5IGRvZXMgdGhlIHNhbWUgdGhpbmcuICBJbiBhIHBpY3R1cmU6CiAKIAkJICBeCiAJICAgICA8LS0tLS0tLS0tLS0tCkBAIC0yMjEsNyArMjIxLDggQEAKIAkJTCAtLT4JfCB0ZXh0IHNhbXBsZSB0ZXh0CSAgICB8CiAJCQkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCi1IaW50czogIkgiIHN0YW5kcyBmb3IgSG9tZSwgIk0iIGZvciBNaWRkbGUgYW5kICJMIiBmb3IgTGFzdC4KK0hpbnRzOiAiSCIgc3RhbmRzIGZvciBIb21lLCAiTSIgZm9yIE1pZGRsZSBhbmQgIkwiIGZvciBMYXN0LiAgQWx0ZXJuYXRpdmVseSwKKyJIIiBmb3IgaGlnaCwgIk0iIGZvciBNaWRkbGUgYW5kICJMIiBmb3IgbG93LgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICowMy42KglUZWxsaW5nIHdoZXJlIHlvdSBhcmUKQEAgLTI5OCwyMiArMjk5LDIyIEBACiBUaGluayBvZiBDVFJMLUUgdG8gZ2l2ZSB5b3Ugb25lIGxpbmUgRXh0cmEuICAoSWYgeW91IHVzZSBNUy1XaW5kb3dzIGNvbXBhdGlibGUKIGtleSBtYXBwaW5ncyBDVFJMLVkgd2lsbCByZWRvIGEgY2hhbmdlIGluc3RlYWQgb2Ygc2Nyb2xsLikKIAotVG8gc2Nyb2xsIGZvcndhcmQgYnkgYSB3aG9sZSBzY3JlZW4gKGV4Y2VwdCBmb3IgdHdvIGxpbmVzKSB1c2UgQ1RSTC1GLiAgVGhlCi1vdGhlciB3YXkgaXMgYmFja3dhcmQsIENUUkwtQiBpcyB0aGUgY29tbWFuZCB0byB1c2UuICBGb3J0dW5hdGVseSBDVFJMLUYgaXMKLUZvcndhcmQgYW5kIENUUkwtQiBpcyBCYWNrd2FyZCwgdGhhdCdzIGVhc3kgdG8gcmVtZW1iZXIuCitUbyBzY3JvbGwgZm9yd2FyZCBieSBhIHdob2xlIHNjcmVlbiAoZXhjZXB0IGZvciB0d28gbGluZXMpIHVzZSBDVFJMLUYuICBUbworc2Nyb2xsIGJhY2t3YXJkcywgdXNlIENUUkwtQi4gIFRoZXNlIHNob3VsZCBiZSBlYXN5IHRvIHJlbWVtYmVyOiBGIGZvcgorRm9yd2FyZHMgYW5kIEIgZm9yIEJhY2t3YXJkcy4KIAogQSBjb21tb24gaXNzdWUgaXMgdGhhdCBhZnRlciBtb3ZpbmcgZG93biBtYW55IGxpbmVzIHdpdGggImoiIHlvdXIgY3Vyc29yIGlzIGF0CiB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uICBZb3Ugd291bGQgbGlrZSB0byBzZWUgdGhlIGNvbnRleHQgb2YgdGhlIGxpbmUgd2l0aAogdGhlIGN1cnNvci4gIFRoYXQncyBkb25lIHdpdGggdGhlICJ6eiIgY29tbWFuZC4KIAogCSstLS0tLS0tLS0tLS0tLS0tLS0rCQkgKy0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8IHNvbWUgdGV4dAkgICB8CQkgfCBzb21lIHRleHQJICAgIHwKLQl8IHNvbWUgdGV4dAkgICB8CQkgfCBzb21lIHRleHQJICAgIHwKLQl8IHNvbWUgdGV4dAkgICB8CQkgfCBzb21lIHRleHQJICAgIHwKLQl8IHNvbWUgdGV4dAkgICB8ICAgenogIC0tPgkgfCBsaW5lIHdpdGggY3Vyc29yIHwKLQl8IHNvbWUgdGV4dAkgICB8CQkgfCBzb21lIHRleHQJICAgIHwKLQl8IHNvbWUgdGV4dAkgICB8CQkgfCBzb21lIHRleHQJICAgIHwKLQl8IGxpbmUgd2l0aCBjdXJzb3IgfAkJIHwgc29tZSB0ZXh0CSAgICB8CisJfCBlYXJsaWVyIHRleHQJICAgfAkJIHwgZWFybGllciB0ZXh0CSAgICB8CisJfCBlYXJsaWVyIHRleHQJICAgfAkJIHwgZWFybGllciB0ZXh0CSAgICB8CisJfCBlYXJsaWVyIHRleHQJICAgfAkJIHwgZWFybGllciB0ZXh0CSAgICB8CisJfCBlYXJsaWVyIHRleHQJICAgfCAgIHp6ICAtLT4JIHwgbGluZSB3aXRoIGN1cnNvciB8CisJfCBlYXJsaWVyIHRleHQJICAgfAkJIHwgbGF0ZXIgdGV4dAkgICAgfAorCXwgZWFybGllciB0ZXh0CSAgIHwJCSB8IGxhdGVyIHRleHQJICAgIHwKKwl8IGxpbmUgd2l0aCBjdXJzb3IgfAkJIHwgbGF0ZXIgdGV4dAkgICAgfAogCSstLS0tLS0tLS0tLS0tLS0tLS0rCQkgKy0tLS0tLS0tLS0tLS0tLS0tLSsKIAogVGhlICJ6dCIgY29tbWFuZCBwdXRzIHRoZSBjdXJzb3IgbGluZSBhdCB0aGUgdG9wLCAiemIiIGF0IHRoZSBib3R0b20uICBUaGVyZQpAQCAtMzUzLDcgKzM1NCw3IEBACiAKIFRoZSAiTiIgY29tbWFuZCByZXBlYXRzIHRoZSBsYXN0IHNlYXJjaCB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLiAgVGh1cyB1c2luZwogIk4iIGFmdGVyIGEgIi8iIGNvbW1hbmQgc2VhcmNoZXMgYmFja3dhcmRzLCB1c2luZyAiTiIgYWZ0ZXIgIj8iIHNlYXJjaGVzCi1mb3J3YXJkLgorZm9yd2FyZHMuCiAKIAogSUdOT1JJTkcgQ0FTRQpAQCAtNDYyLDggKzQ2Myw4IEBACiAJOnNldCBub3dyYXBzY2FuCiAKIFRoaXMgc3RvcHMgdGhlIHNlYXJjaCBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlLiAgT3IsIHdoZW4geW91IGFyZSBzZWFyY2hpbmcKLWJhY2t3YXJkcywgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmaWxlLiAgVGhlICd3cmFwc2Nhbicgb3B0aW9uIGlzIG9uIGJ5IGRlZmF1bHQsCi10aHVzIHNlYXJjaGluZyB3cmFwcyBhcm91bmQgdGhlIGVuZCBvZiB0aGUgZmlsZS4KK2JhY2t3YXJkcywgaXQgc3RvcHMgdGhlIHNlYXJjaCBhdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUuICBUaGUgJ3dyYXBzY2FuJworb3B0aW9uIGlzIG9uIGJ5IGRlZmF1bHQsIHRodXMgc2VhcmNoaW5nIHdyYXBzIGFyb3VuZCB0aGUgZW5kIG9mIHRoZSBmaWxlLgogCiAKIElOVEVSTUVaWk8KQEAgLTQ4NSw3ICs0ODYsOCBAQAogCUdvOnNldCBobHNlYXJjaDxFc2M+CiAKICJHIiBtb3ZlcyB0byB0aGUgZW5kIG9mIHRoZSBmaWxlLiAgIm8iIHN0YXJ0cyBhIG5ldyBsaW5lLCB3aGVyZSB5b3UgdHlwZSB0aGUKLSI6c2V0IiBjb21tYW5kLiAgWW91IGVuZCBpbnNlcnQgbW9kZSB3aXRoIDxFc2M+LiAgVGhlbiB3cml0ZSB0aGUgZmlsZTogPgorIjpzZXQiIGNvbW1hbmQuICBZb3UgZW5kIGluc2VydCBtb2RlIHdpdGggPEVzYz4uICBUaGVuIHdyaXRlIGFuZCBjbG9zZSB0aGUKK2ZpbGU6ID4KIAogCVpaCiAKQEAgLTQ5OSw4ICs1MDEsOCBAQAogc2VhcmNoIHBhdHRlcm4uICBVbmZvcnR1bmF0ZWx5LCB0aGlzIHBvd2VyIGNvbWVzIGF0IGEgcHJpY2UsIGJlY2F1c2UgcmVndWxhcgogZXhwcmVzc2lvbnMgYXJlIGEgYml0IHRyaWNreSB0byBzcGVjaWZ5LgogICAgSW4gdGhpcyBzZWN0aW9uIHdlIG1lbnRpb24gb25seSBhIGZldyBlc3NlbnRpYWwgb25lcy4gIE1vcmUgYWJvdXQgc2VhcmNoCi1wYXR0ZXJucyBhbmQgY29tbWFuZHMgaW4gY2hhcHRlciAyNyB8dXNyXzI3LnR4dHwuICBZb3UgY2FuIGZpbmQgdGhlIGZ1bGwKLWV4cGxhbmF0aW9uIGhlcmU6IHxwYXR0ZXJufC4KK3BhdHRlcm5zIGFuZCBjb21tYW5kcyBjYW4gYmUgZm91bmQgaW4gY2hhcHRlciAyNyB8dXNyXzI3LnR4dHwuICBZb3UgY2FuIGZpbmQKK3RoZSBmdWxsIGV4cGxhbmF0aW9uIGhlcmU6IHxwYXR0ZXJufC4KIAogCiBCRUdJTk5JTkcgQU5EIEVORCBPRiBBIExJTkUKQEAgLTUyNiw5ICs1MjgsOSBAQAogCXRoZSBzb2xkZXIgaG9sZGluZyBvbmUgb2YgdGhlIGNoaXBzIG1lbHRlZCBhbmQgdGhlIH4KIAl4eHgKIAotWW91IGNhbiB0cnkgc2VhcmNoaW5nIHdpdGggIi9edGhlJCIsIGl0IHdpbGwgb25seSBtYXRjaCBhIHNpbmdsZSBsaW5lCi1jb25zaXN0aW5nIG9mICJ0aGUiLiAgV2hpdGUgc3BhY2UgZG9lcyBtYXR0ZXIgaGVyZSwgdGh1cyBpZiBhIGxpbmUgY29udGFpbnMgYQotc3BhY2UgYWZ0ZXIgdGhlIHdvcmQsIGxpa2UgInRoZSAiLCB0aGUgcGF0dGVybiB3aWxsIG5vdCBtYXRjaC4KK1lvdSBjYW4gdHJ5IHNlYXJjaGluZyB3aXRoICIvXnRoZSQiOyBpdCB3aWxsIG9ubHkgbWF0Y2ggYSBzaW5nbGUgbGluZQorY29uc2lzdGluZyBlbnRpcmVseSBvZiAidGhlIi4gIFdoaXRlIHNwYWNlIGRvZXMgbWF0dGVyIGhlcmUsIHRodXMgaWYgYSBsaW5lCitjb250YWlucyBhIHNwYWNlIGFmdGVyIHRoZSB3b3JkLCBsaWtlICJ0aGUgIiwgdGhlIHBhdHRlcm4gd2lsbCBub3QgbWF0Y2guCiAKIAogTUFUQ0hJTkcgQU5ZIFNJTkdMRSBDSEFSQUNURVIKQEAgLTU2MywyMCArNTY1LDIwIEBACiAKIFRoaXMgYCBpcyBhIGJhY2t0aWNrIG9yIG9wZW4gc2luZ2xlLXF1b3RlIGNoYXJhY3Rlci4KICAgIElmIHlvdSB1c2UgdGhlIHNhbWUgY29tbWFuZCBhIHNlY29uZCB0aW1lIHlvdSB3aWxsIGp1bXAgYmFjayBhZ2Fpbi4gIFRoYXQncwotYmVjYXVzZSB0aGUgYCBjb21tYW5kIGlzIGEganVtcCBpdHNlbGYsIGFuZCB0aGUgcG9zaXRpb24gZnJvbSBiZWZvcmUgdGhpcyBqdW1wCi1pcyByZW1lbWJlcmVkLgorYmVjYXVzZSB0aGUgImAiIGNvbW1hbmQgaXMgYSBqdW1wIGl0c2VsZiwgYW5kIHRoZSBwb3NpdGlvbiBmcm9tIGJlZm9yZSB0aGlzCitqdW1wIGlzIHJlbWVtYmVyZWQuCiAKIEdlbmVyYWxseSwgZXZlcnkgdGltZSB5b3UgZG8gYSBjb21tYW5kIHRoYXQgY2FuIG1vdmUgdGhlIGN1cnNvciBmdXJ0aGVyIHRoYW4KIHdpdGhpbiB0aGUgc2FtZSBsaW5lLCB0aGlzIGlzIGNhbGxlZCBhIGp1bXAuICBUaGlzIGluY2x1ZGVzIHRoZSBzZWFyY2gKIGNvbW1hbmRzICIvIiBhbmQgIm4iIChpdCBkb2Vzbid0IG1hdHRlciBob3cgZmFyIGF3YXkgdGhlIG1hdGNoIGlzKS4gIEJ1dCBub3QKIHRoZSBjaGFyYWN0ZXIgc2VhcmNoZXMgd2l0aCAiZngiIGFuZCAidHgiIG9yIHRoZSB3b3JkIG1vdmVtZW50cyAidyIgYW5kICJlIi4KLSAgIEFsc28sICJqIiBhbmQgImsiIGFyZSBub3QgY29uc2lkZXJlZCB0byBiZSBhIGp1bXAuICBFdmVuIHdoZW4geW91IHVzZSBhCisgICBBbHNvLCAiaiIgYW5kICJrIiBhcmUgbm90IGNvbnNpZGVyZWQgdG8gYmUgYSBqdW1wLCBldmVuIHdoZW4geW91IHVzZSBhCiBjb3VudCB0byBtYWtlIHRoZW0gbW92ZSB0aGUgY3Vyc29yIHF1aXRlIGEgbG9uZyB3YXkgYXdheS4KIAotVGhlIGBgIGNvbW1hbmQganVtcHMgYmFjayBhbmQgZm9ydGgsIGJldHdlZW4gdHdvIHBvaW50cy4gIFRoZSBDVFJMLU8gY29tbWFuZAorVGhlICJgYCIgY29tbWFuZCBqdW1wcyBiYWNrIGFuZCBmb3J0aCwgYmV0d2VlbiB0d28gcG9pbnRzLiAgVGhlIENUUkwtTyBjb21tYW5kCiBqdW1wcyB0byBvbGRlciBwb3NpdGlvbnMgKEhpbnQ6IE8gZm9yIG9sZGVyKS4gIENUUkwtSSB0aGVuIGp1bXBzIGJhY2sgdG8gbmV3ZXIKLXBvc2l0aW9ucyAoSGludDogSSBpcyBqdXN0IG5leHQgdG8gTyBvbiB0aGUga2V5Ym9hcmQpLiAgQ29uc2lkZXIgdGhpcyBzZXF1ZW5jZQotb2YgY29tbWFuZHM6ID4KK3Bvc2l0aW9ucyAoSGludDogZm9yIG1hbnkgY29tbW9uIGtleWJvYXJkIGxheW91dHMsIEkgaXMganVzdCBuZXh0IHRvIE8pLgorQ29uc2lkZXIgdGhpcyBzZXF1ZW5jZSBvZiBjb21tYW5kczogPgogCiAJMzNHCiAJL15UaGUKQEAgLTYxNCw5ICs2MTYsOSBAQAogPgogCWBhCiAKLVRoZSBjb21tYW5kICdtYXJrIChzaW5nbGUgcXVvdGF0aW9uIG1hcmssIG9yIGFwb3N0cm9waGUpIG1vdmVzIHlvdSB0byB0aGUKLWJlZ2lubmluZyBvZiB0aGUgbGluZSBjb250YWluaW5nIHRoZSBtYXJrLiAgVGhpcyBkaWZmZXJzIGZyb20gdGhlIGBtYXJrCi1jb21tYW5kLCB3aGljaCBtb3ZlcyB5b3UgdG8gbWFya2VkIGNvbHVtbi4KK1RoZSBjb21tYW5kICInbWFyayIgKHNpbmdsZSBxdW90YXRpb24gbWFyaywgb3IgYXBvc3Ryb3BoZSkgbW92ZXMgeW91IHRvIHRoZQorYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIG1hcmsuICBUaGlzIGRpZmZlcnMgZnJvbSB0aGUgImBtYXJrIgorY29tbWFuZCwgd2hpY2ggYWxzbyBtb3ZlcyB5b3UgdG8gdGhlIG1hcmtlZCBjb2x1bW4uCiAKIFRoZSBtYXJrcyBjYW4gYmUgdmVyeSB1c2VmdWwgd2hlbiB3b3JraW5nIG9uIHR3byByZWxhdGVkIHBhcnRzIGluIGEgZmlsZS4KIFN1cHBvc2UgeW91IGhhdmUgc29tZSB0ZXh0IG5lYXIgdGhlIHN0YXJ0IG9mIHRoZSBmaWxlIHlvdSBuZWVkIHRvIGxvb2sgYXQsCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDQudHh0IGIvcnVudGltZS9kb2MvdXNyXzA0LnR4dAppbmRleCAyMzZmMTkwLi5mM2UyODdjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wNC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzA0LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE0IEF1ZyAyOQorKnVzcl8wNC50eHQqCUZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxOSBOb3YgMjEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTMzLDcgKzMzLDcgQEAKIG1vdmUgd29yZCBjb21tYW5kLiAgSW4gZmFjdCwgdGhlICJkIiBjb21tYW5kIG1heSBiZSBmb2xsb3dlZCBieSBhbnkgbW90aW9uCiBjb21tYW5kLCBhbmQgaXQgZGVsZXRlcyBmcm9tIHRoZSBjdXJyZW50IGxvY2F0aW9uIHRvIHRoZSBwbGFjZSB3aGVyZSB0aGUKIGN1cnNvciB3aW5kcyB1cC4KLSAgIFRoZSAiNHciIGNvbW1hbmQsIGZvciBleGFtcGxlLCBtb3ZlcyB0aGUgY3Vyc29yIG92ZXIgZm91ciB3b3Jkcy4gIFRoZSBkNHcKKyAgIFRoZSAiNHciIGNvbW1hbmQsIGZvciBleGFtcGxlLCBtb3ZlcyB0aGUgY3Vyc29yIG92ZXIgZm91ciB3b3Jkcy4gIFRoZSAiZDR3IgogY29tbWFuZCBkZWxldGVzIGZvdXIgd29yZHMuCiAKIAlUbyBlcnIgaXMgaHVtYW4uIFRvIHJlYWxseSBmb3VsIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuIH4KQEAgLTkxLDE0ICs5MSwxNCBAQAogCWJlCWluc2VydCB0aGlzIHRleHQKIAk8RXNjPgliYWNrIHRvIE5vcm1hbCBtb2RlCiAKLUlmIHlvdSBoYXZlIHBhaWQgYXR0ZW50aW9uLCB5b3Ugd2lsbCBoYXZlIG5vdGljZWQgc29tZXRoaW5nIHN0cmFuZ2U6IFRoZSBzcGFjZQotYmVmb3JlICJodW1hbiIgaXNuJ3QgZGVsZXRlZC4gIFRoZXJlIGlzIGEgc2F5aW5nIHRoYXQgZm9yIGV2ZXJ5IHByb2JsZW0gdGhlcmUKLWlzIGFuIGFuc3dlciB0aGF0IGlzIHNpbXBsZSwgY2xlYXIsIGFuZCB3cm9uZy4gIFRoYXQgaXMgdGhlIGNhc2Ugd2l0aCB0aGUKLWV4YW1wbGUgdXNlZCBoZXJlIGZvciB0aGUgImN3IiBjb21tYW5kLiAgVGhlIGMgb3BlcmF0b3Igd29ya3MganVzdCBsaWtlIHRoZQotZCBvcGVyYXRvciwgd2l0aCBvbmUgZXhjZXB0aW9uOiAiY3ciLiAgSXQgYWN0dWFsbHkgd29ya3MgbGlrZSAiY2UiLCBjaGFuZ2UgdG8KLWVuZCBvZiB3b3JkLiAgVGh1cyB0aGUgc3BhY2UgYWZ0ZXIgdGhlIHdvcmQgaXNuJ3QgaW5jbHVkZWQuICBUaGlzIGlzIGFuCi1leGNlcHRpb24gdGhhdCBkYXRlcyBiYWNrIHRvIHRoZSBvbGQgVmkuICBTaW5jZSBtYW55IHBlb3BsZSBhcmUgdXNlZCB0byBpdAotbm93LCB0aGUgaW5jb25zaXN0ZW5jeSBoYXMgcmVtYWluZWQgaW4gVmltLgorWW91IHdpbGwgaGF2ZSBub3RpY2VkIHNvbWV0aGluZyBzdHJhbmdlOiBUaGUgc3BhY2UgYmVmb3JlICJodW1hbiIgaXNuJ3QKK2RlbGV0ZWQuICBUaGVyZSBpcyBhIHNheWluZyB0aGF0IGZvciBldmVyeSBwcm9ibGVtIHRoZXJlIGlzIGFuIGFuc3dlciB0aGF0IGlzCitzaW1wbGUsIGNsZWFyLCBhbmQgd3JvbmcuICBUaGF0IGlzIHRoZSBjYXNlIHdpdGggdGhlIGV4YW1wbGUgdXNlZCBoZXJlIGZvciB0aGUKKyJjdyIgY29tbWFuZC4gIFRoZSBjIG9wZXJhdG9yIHdvcmtzIGp1c3QgbGlrZSB0aGUgZCBvcGVyYXRvciwgd2l0aCBvbmUKK2V4Y2VwdGlvbjogImN3Ii4gIEl0IGFjdHVhbGx5IHdvcmtzIGxpa2UgImNlIiwgY2hhbmdlIHRvIGVuZCBvZiB3b3JkLiAgVGh1cwordGhlIHNwYWNlIGFmdGVyIHRoZSB3b3JkIGlzbid0IGluY2x1ZGVkLiAgVGhpcyBpcyBhbiBleGNlcHRpb24gdGhhdCBkYXRlcyBiYWNrCit0byB0aGUgb2xkIFZpLiAgU2luY2UgbWFueSBwZW9wbGUgYXJlIHVzZWQgdG8gaXQgbm93LCB0aGUgaW5jb25zaXN0ZW5jeSBoYXMKK3JlbWFpbmVkIGluIFZpbS4KIAogCiBNT1JFIENIQU5HRVMKQEAgLTExNCw3ICsxMTQsNyBAQAogU0hPUlRDVVRTCiAKIFNvbWUgb3BlcmF0b3ItbW90aW9uIGNvbW1hbmRzIGFyZSB1c2VkIHNvIG9mdGVuIHRoYXQgdGhleSBoYXZlIGJlZW4gZ2l2ZW4gYQotc2luZ2xlIGxldHRlciBjb21tYW5kOgorc2luZ2xlLWxldHRlciBjb21tYW5kOgogCiAJeCAgc3RhbmRzIGZvciAgZGwgIChkZWxldGUgY2hhcmFjdGVyIHVuZGVyIHRoZSBjdXJzb3IpCiAJWCAgc3RhbmRzIGZvciAgZGggIChkZWxldGUgY2hhcmFjdGVyIGxlZnQgb2YgdGhlIGN1cnNvcikKQEAgLTEzOCw2ICsxMzgsNyBAQAogVGhlICJyIiBjb21tYW5kIGlzIG5vdCBhbiBvcGVyYXRvci4gIEl0IHdhaXRzIGZvciB5b3UgdG8gdHlwZSBhIGNoYXJhY3RlciwgYW5kCiB3aWxsIHJlcGxhY2UgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yIHdpdGggaXQuICBZb3UgY291bGQgZG8gdGhlIHNhbWUKIHdpdGggImNsIiBvciB3aXRoIHRoZSAicyIgY29tbWFuZCwgYnV0IHdpdGggInIiIHlvdSBkb24ndCBoYXZlIHRvIHByZXNzIDxFc2M+Cit0byBnZXQgYmFjayBvdXQgb2YgaW5zZXJ0IG1vZGUuCiAKIAl0aGVyZSBpcyBzb21lcmhpbmcgZ3JvbmcgaGVyZSB+CiAJclQJICAgICBydCAgICBydwpAQCAtMTY0LDcgKzE2NSw3IEBACiByZXBlYXRzIHRoZSBsYXN0IGNoYW5nZS4gIEZvciBpbnN0YW5jZSwgc3VwcG9zZSB5b3UgYXJlIGVkaXRpbmcgYW4gSFRNTCBmaWxlCiBhbmQgd2FudCB0byBkZWxldGUgYWxsIHRoZSA8Qj4gdGFncy4gIFlvdSBwb3NpdGlvbiB0aGUgY3Vyc29yIG9uIHRoZSBmaXJzdCA8CiBhbmQgZGVsZXRlIHRoZSA8Qj4gd2l0aCB0aGUgY29tbWFuZCAiZGY+Ii4gIFlvdSB0aGVuIGdvIHRvIHRoZSA8IG9mIHRoZSBuZXh0Ci08L0I+IGFuZCBraWxsIGl0IHVzaW5nIHRoZSAiLiIgY29tbWFuZC4gIFRoZSAiLiIgY29tbWFuZCBleGVjdXRlcyB0aGUgbGFzdAorPC9CPiBhbmQgZGVsZXRlIGl0IHVzaW5nIHRoZSAiLiIgY29tbWFuZC4gIFRoZSAiLiIgY29tbWFuZCBleGVjdXRlcyB0aGUgbGFzdAogY2hhbmdlIGNvbW1hbmQgKGluIHRoaXMgY2FzZSwgImRmPiIpLiAgVG8gZGVsZXRlIGFub3RoZXIgdGFnLCBwb3NpdGlvbiB0aGUKIGN1cnNvciBvbiB0aGUgPCBhbmQgdXNlIHRoZSAiLiIgY29tbWFuZC4KIApAQCAtMTc2LDggKzE3Nyw4IEBACiAJZjwgICBmaW5kIG5leHQgPAkJICAgICAgIC0tLS0tLS0tLS0tLS0+CiAJLiAgICByZXBlYXQgZGY+CQkJCQkgICAgLS0+CiAKLVRoZSAiLiIgY29tbWFuZCB3b3JrcyBmb3IgYWxsIGNoYW5nZXMgeW91IG1ha2UsIGV4Y2VwdCBmb3IgdGhlICJ1IiAodW5kbyksCi1DVFJMLVIgKHJlZG8pIGFuZCBjb21tYW5kcyB0aGF0IHN0YXJ0IHdpdGggYSBjb2xvbiAoOikuCitUaGUgIi4iIGNvbW1hbmQgd29ya3MgZm9yIGFsbCBjaGFuZ2VzIHlvdSBtYWtlLCBleGNlcHQgZm9yICJ1IiAodW5kbyksIENUUkwtUgorKHJlZG8pIGFuZCBjb21tYW5kcyB0aGF0IHN0YXJ0IHdpdGggYSBjb2xvbiAoOikuCiAKIEFub3RoZXIgZXhhbXBsZTogWW91IHdhbnQgdG8gY2hhbmdlIHRoZSB3b3JkICJmb3VyIiB0byAiZml2ZSIuICBJdCBhcHBlYXJzCiBzZXZlcmFsIHRpbWVzIGluIHlvdXIgdGV4dC4gIFlvdSBjYW4gZG8gdGhpcyBxdWlja2x5IHdpdGggdGhpcyBzZXF1ZW5jZSBvZgpAQCAtMjAxLDcgKzIwMiw4IEBACiBZb3Ugc3RhcnQgVmlzdWFsIG1vZGUgYnkgcHJlc3NpbmcgInYiLiAgWW91IG1vdmUgdGhlIGN1cnNvciBvdmVyIHRoZSB0ZXh0IHlvdQogd2FudCB0byB3b3JrIG9uLiAgV2hpbGUgeW91IGRvIHRoaXMsIHRoZSB0ZXh0IGlzIGhpZ2hsaWdodGVkLiAgRmluYWxseSB0eXBlCiB0aGUgb3BlcmF0b3IgY29tbWFuZC4KLSAgIEZvciBleGFtcGxlLCB0byBkZWxldGUgZnJvbSBoYWxmd2F5IG9uZSB3b3JkIHRvIGhhbGZ3YXkgYW5vdGhlciB3b3JkOgorICAgRm9yIGV4YW1wbGUsIHRvIGRlbGV0ZSBmcm9tIHRoZSBtaWRkbGUgb2Ygb25lIHdvcmQgdG8gdGhlIG1pZGRsZSBvZiBhbm90aGVyCit3b3JkOgogCiAJCVRoaXMgaXMgYW4gZXhhbWluYXRpb24gc2FtcGxlIG9mIHZpc3VhbCBtb2RlIH4KIAkJCSAgICAgICAtLS0tLS0tLS0tPgpAQCAtMjY5LDggKzI3MSw4IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICowNC41KglNb3ZpbmcgdGV4dAogCi1XaGVuIHlvdSBkZWxldGUgc29tZXRoaW5nIHdpdGggdGhlICJkIiwgIngiLCBvciBhbm90aGVyIGNvbW1hbmQsIHRoZSB0ZXh0IGlzCi1zYXZlZC4gIFlvdSBjYW4gcGFzdGUgaXQgYmFjayBieSB1c2luZyB0aGUgcCBjb21tYW5kLiAgKFRoZSBWaW0gbmFtZSBmb3IKK1doZW4geW91IGRlbGV0ZSBzb21ldGhpbmcgd2l0aCAiZCIsICJ4Iiwgb3IgYW5vdGhlciBjb21tYW5kLCB0aGUgdGV4dCBpcworc2F2ZWQuICBZb3UgY2FuIHBhc3RlIGl0IGJhY2sgYnkgdXNpbmcgdGhlICJwIiBjb21tYW5kLiAgKFRoZSBWaW0gbmFtZSBmb3IKIHRoaXMgaXMgcHV0KS4KICAgIFRha2UgYSBsb29rIGF0IGhvdyB0aGlzIHdvcmtzLiAgRmlyc3QgeW91IHdpbGwgZGVsZXRlIGFuIGVudGlyZSBsaW5lLCBieQogcHV0dGluZyB0aGUgY3Vyc29yIG9uIHRoZSBsaW5lIHlvdSB3YW50IHRvIGRlbGV0ZSBhbmQgdHlwaW5nICJkZCIuICBOb3cgeW91CkBAIC0zNjIsMTEgKzM2NCwxMSBAQAogCiBJZiB5b3UgYXJlIHVzaW5nIHRoZSBHVUkgdmVyc2lvbiBvZiBWaW0gKGd2aW0pLCB5b3UgY2FuIGZpbmQgdGhlICJDb3B5IiBpdGVtCiBpbiB0aGUgIkVkaXQiIG1lbnUuICBGaXJzdCBzZWxlY3Qgc29tZSB0ZXh0IHdpdGggVmlzdWFsIG1vZGUsIHRoZW4gdXNlIHRoZQotRWRpdC9Db3B5IG1lbnUuICBUaGUgc2VsZWN0ZWQgdGV4dCBpcyBub3cgY29waWVkIHRvIHRoZSBjbGlwYm9hcmQuICBZb3UgY2FuCi1wYXN0ZSB0aGUgdGV4dCBpbiBvdGhlciBwcm9ncmFtcy4gIEluIFZpbSBpdHNlbGYgdG9vLgorRWRpdC9Db3B5IG1lbnUgaXRlbS4gIFRoZSBzZWxlY3RlZCB0ZXh0IGlzIG5vdyBjb3BpZWQgdG8gdGhlIGNsaXBib2FyZC4gIFlvdQorY2FuIHBhc3RlIHRoZSB0ZXh0IGluIG90aGVyIHByb2dyYW1zLiAgSW4gVmltIGl0c2VsZiB0b28uCiAKIElmIHlvdSBoYXZlIGNvcGllZCB0ZXh0IHRvIHRoZSBjbGlwYm9hcmQgaW4gYW5vdGhlciBhcHBsaWNhdGlvbiwgeW91IGNhbiBwYXN0ZQotaXQgaW4gVmltIHdpdGggdGhlIEVkaXQvUGFzdGUgbWVudS4gIFRoaXMgd29ya3MgaW4gTm9ybWFsIG1vZGUgYW5kIEluc2VydAoraXQgaW4gVmltIHdpdGggdGhlIEVkaXQvUGFzdGUgbWVudSBpdGVtLiAgVGhpcyB3b3JrcyBpbiBOb3JtYWwgbW9kZSBhbmQgSW5zZXJ0CiBtb2RlLiAgSW4gVmlzdWFsIG1vZGUgdGhlIHNlbGVjdGVkIHRleHQgaXMgcmVwbGFjZWQgd2l0aCB0aGUgcGFzdGVkIHRleHQuCiAKIFRoZSAiQ3V0IiBtZW51IGl0ZW0gZGVsZXRlcyB0aGUgdGV4dCBiZWZvcmUgaXQncyBwdXQgb24gdGhlIGNsaXBib2FyZC4gIFRoZQpAQCAtMzg1LDcgKzM4Nyw3IEBACiAJIipwCiAKIFRoaXMgb25seSB3b3JrcyBvbiB2ZXJzaW9ucyBvZiBWaW0gdGhhdCBpbmNsdWRlIGNsaXBib2FyZCBzdXBwb3J0LiAgTW9yZSBhYm91dAotdGhlIGNsaXBib2FyZCBpbiBzZWN0aW9uIHwwOS4zfCBhbmQgaGVyZTogfGNsaXBib2FyZHwuCit0aGUgY2xpcGJvYXJkIGNhbiBiZSBmb3VuZCBpbiBzZWN0aW9uIHwwOS4zfCBhbmQgaGVyZTogfGNsaXBib2FyZHwuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKjA0LjgqCVRleHQgb2JqZWN0cwpAQCAtNDAxLDggKzQwMyw4IEBACiAKIFRoZSAiZCIgb2YgImRhdyIgaXMgdGhlIGRlbGV0ZSBvcGVyYXRvci4gICJhdyIgaXMgYSB0ZXh0IG9iamVjdC4gIEhpbnQ6ICJhdyIKIHN0YW5kcyBmb3IgIkEgV29yZCIuICBUaHVzICJkYXciIGlzICJEZWxldGUgQSBXb3JkIi4gIFRvIGJlIHByZWNpc2UsIHRoZSB3aGl0ZQotc3BhY2UgYWZ0ZXIgdGhlIHdvcmQgaXMgYWxzbyBkZWxldGVkICh0aGUgd2hpdGUgc3BhY2UgYmVmb3JlIHRoZSB3b3JkIGF0IHRoZQotZW5kIG9mIHRoZSBsaW5lKS4KK3NwYWNlIGFmdGVyIHRoZSB3b3JkIGlzIGFsc28gZGVsZXRlZCAob3IgdGhlIHdoaXRlIHNwYWNlIGJlZm9yZSB0aGUgd29yZCBpZiBhdAordGhlIGVuZCBvZiB0aGUgbGluZSkuCiAKIFVzaW5nIHRleHQgb2JqZWN0cyBpcyB0aGUgdGhpcmQgd2F5IHRvIG1ha2UgY2hhbmdlcyBpbiBWaW0uICBXZSBhbHJlYWR5IGhhZAogb3BlcmF0b3ItbW90aW9uIGFuZCBWaXN1YWwgbW9kZS4gIE5vdyB3ZSBhZGQgb3BlcmF0b3ItdGV4dCBvYmplY3QuCkBAIC00MjksMTEgKzQzMSwxMSBAQAogCXNvbWUgdGV4dC4gfgogCiAiY2lzIiBjb25zaXN0cyBvZiB0aGUgImMiIChjaGFuZ2UpIG9wZXJhdG9yIGFuZCB0aGUgImlzIiB0ZXh0IG9iamVjdC4gIFRoaXMKLXN0YW5kcyBmb3IgIklubmVyIFNlbnRlbmNlIi4gIFRoZXJlIGlzIGFsc28gdGhlICJhcyIgKGEgc2VudGVuY2UpIG9iamVjdC4gIFRoZQotZGlmZmVyZW5jZSBpcyB0aGF0ICJhcyIgaW5jbHVkZXMgdGhlIHdoaXRlIHNwYWNlIGFmdGVyIHRoZSBzZW50ZW5jZSBhbmQgImlzIgotZG9lc24ndC4gIElmIHlvdSB3b3VsZCBkZWxldGUgYSBzZW50ZW5jZSwgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSB3aGl0ZSBzcGFjZQotYXQgdGhlIHNhbWUgdGltZSwgdGh1cyB1c2UgImRhcyIuICBJZiB5b3Ugd2FudCB0byB0eXBlIG5ldyB0ZXh0IHRoZSB3aGl0ZQotc3BhY2UgY2FuIHJlbWFpbiwgdGh1cyB5b3UgdXNlICJjaXMiLgorc3RhbmRzIGZvciAiSW5uZXIgU2VudGVuY2UiLiAgVGhlcmUgaXMgYWxzbyB0aGUgImFzIiAoIkEgU2VudGVuY2UiKSBvYmplY3QuCitUaGUgZGlmZmVyZW5jZSBpcyB0aGF0ICJhcyIgaW5jbHVkZXMgdGhlIHdoaXRlIHNwYWNlIGFmdGVyIHRoZSBzZW50ZW5jZSBhbmQKKyJpcyIgZG9lc24ndC4gIElmIHlvdSB3b3VsZCBkZWxldGUgYSBzZW50ZW5jZSwgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSB3aGl0ZQorc3BhY2UgYXQgdGhlIHNhbWUgdGltZSwgdGh1cyB1c2UgImRhcyIuICBJZiB5b3Ugd2FudCB0byB0eXBlIG5ldyB0ZXh0IHRoZQord2hpdGUgc3BhY2UgY2FuIHJlbWFpbiwgdGh1cyB5b3UgdXNlICJjaXMiLgogCiBZb3UgY2FuIGFsc28gdXNlIHRleHQgb2JqZWN0cyBpbiBWaXN1YWwgbW9kZS4gIEl0IHdpbGwgaW5jbHVkZSB0aGUgdGV4dCBvYmplY3QKIGluIHRoZSBWaXN1YWwgc2VsZWN0aW9uLiAgVmlzdWFsIG1vZGUgY29udGludWVzLCB0aHVzIHlvdSBjYW4gZG8gdGhpcyBzZXZlcmFsCkBAIC00NzAsMTMgKzQ3MiwxMyBAQAogKjA0LjEwKglDb25jbHVzaW9uCiAKIFRoZSBvcGVyYXRvcnMsIG1vdmVtZW50IGNvbW1hbmRzIGFuZCB0ZXh0IG9iamVjdHMgZ2l2ZSB5b3UgdGhlIHBvc3NpYmlsaXR5IHRvCi1tYWtlIGxvdHMgb2YgY29tYmluYXRpb25zLiAgTm93IHRoYXQgeW91IGtub3cgaG93IGl0IHdvcmtzLCB5b3UgY2FuIHVzZSBOCittYWtlIGxvdHMgb2YgY29tYmluYXRpb25zLiAgTm93IHRoYXQgeW91IGtub3cgaG93IHRoZXkgd29yaywgeW91IGNhbiB1c2UgTgogb3BlcmF0b3JzIHdpdGggTSBtb3ZlbWVudCBjb21tYW5kcyB0byBtYWtlIE4gKiBNIGNvbW1hbmRzIQogCi1Zb3UgY2FuIGZpbmQgYSBsaXN0IG9mIG9wZXJhdG9ycyBoZXJlOiB8b3BlcmF0b3J8CitZb3UgY2FuIGZpbmQgYSBsaXN0IG9mIG9wZXJhdG9ycyBoZXJlOiB8b3BlcmF0b3J8LgogCiBGb3IgZXhhbXBsZSwgdGhlcmUgYXJlIG1hbnkgb3RoZXIgd2F5cyB0byBkZWxldGUgcGllY2VzIG9mIHRleHQuICBIZXJlIGFyZSBhCi1mZXcgb2Z0ZW4gdXNlZCBvbmVzOgorZmV3IGNvbW1vbiBvbmVzOgogCiB4CWRlbGV0ZSBjaGFyYWN0ZXIgdW5kZXIgdGhlIGN1cnNvciAoc2hvcnQgZm9yICJkbCIpCiBYCWRlbGV0ZSBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBjdXJzb3IgKHNob3J0IGZvciAiZGgiKQpAQCAtNDkyLDE0ICs0OTQsMTQgQEAKIHlhbmsgdGhlIHRleHQuICBBbmQgc28gZm9ydGguCiAKIAotVGhlcmUgYXJlIGEgZmV3IG9mdGVuIHVzZWQgY29tbWFuZHMgdG8gbWFrZSBjaGFuZ2VzIHRoYXQgZGlkbid0IGZpdCBzb21ld2hlcmUKK1RoZXJlIGFyZSBhIGZldyBjb21tb24gY29tbWFuZHMgdG8gbWFrZSBjaGFuZ2VzIHRoYXQgZGlkbid0IGZpdCBzb21ld2hlcmUKIGVsc2U6CiAKLQl+CWNoYW5nZSBjYXNlIG9mIHRoZSBjaGFyYWN0ZXIgdW5kZXIgdGhlIGN1cnNvciwgYW5kIG1vdmUgdGhlCisJfglDaGFuZ2UgY2FzZSBvZiB0aGUgY2hhcmFjdGVyIHVuZGVyIHRoZSBjdXJzb3IsIGFuZCBtb3ZlIHRoZQogCQljdXJzb3IgdG8gdGhlIG5leHQgY2hhcmFjdGVyLiAgVGhpcyBpcyBub3QgYW4gb3BlcmF0b3IgKHVubGVzcwogCQkndGlsZGVvcCcgaXMgc2V0KSwgdGh1cyB5b3UgY2FuJ3QgdXNlIGl0IHdpdGggYSBtb3Rpb24KLQkJY29tbWFuZC4gIEl0IGRvZXMgd29yayBpbiBWaXN1YWwgbW9kZSBhbmQgY2hhbmdlcyBjYXNlIGZvcgotCQlhbGwgdGhlIHNlbGVjdGVkIHRleHQgdGhlbi4KKwkJY29tbWFuZC4gIEl0IGRvZXMgd29yayBpbiBWaXN1YWwgbW9kZSwgd2hlcmUgaXQgY2hhbmdlcyBjYXNlCisJCWZvciBhbGwgdGhlIHNlbGVjdGVkIHRleHQuCiAKIAlJCVN0YXJ0IEluc2VydCBtb2RlIGFmdGVyIG1vdmluZyB0aGUgY3Vyc29yIHRvIHRoZSBmaXJzdAogCQlub24tYmxhbmsgaW4gdGhlIGxpbmUuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMTAudHh0IGIvcnVudGltZS9kb2MvdXNyXzEwLnR4dAppbmRleCBkNTUxZDExLi4xMDM0MGZkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMTAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8xMC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzEwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDA2IE5vdiAwNQorKnVzcl8xMC50eHQqCUZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxOSBOb3YgMjIKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTM3MCw3ICszNzAsOCBAQAogd2FzIHNwZWNpZmllZCBpbiB0aGlzIGV4YW1wbGUuICBUaGlzIGlzIGRpZmZlcmVudCBmcm9tICI6c3Vic3RpdHV0ZSIsIHdoaWNoCiB3b3JrcyBvbiBvbmUgbGluZSB3aXRob3V0IGEgcmFuZ2UuCiAgICBUaGUgY29tbWFuZCBpc24ndCBwZXJmZWN0LCBzaW5jZSBpdCBhbHNvIG1hdGNoZXMgbGluZXMgd2hlcmUgIi8vIiBhcHBlYXJzCi1oYWxmd2F5IGEgbGluZSwgYW5kIHRoZSBzdWJzdGl0dXRpb24gd2lsbCBhbHNvIHRha2UgcGxhY2UgYmVmb3JlIHRoZSAiLy8iLgoraGFsZndheSB0aHJvdWdoIGEgbGluZSwgYW5kIHRoZSBzdWJzdGl0dXRpb24gd2lsbCBhbHNvIHRha2UgcGxhY2UgYmVmb3JlIHRoZQorIi8vIi4KIAogSnVzdCBsaWtlIHdpdGggIjpzdWJzdGl0dXRlIiwgYW55IHBhdHRlcm4gY2FuIGJlIHVzZWQuICBXaGVuIHlvdSBsZWFybiBtb3JlCiBjb21wbGljYXRlZCBwYXR0ZXJucyBsYXRlciwgeW91IGNhbiB1c2UgdGhlbSBoZXJlLgpAQCAtNjM0LDggKzYzNSw4IEBACiAJOnNldCB0ZXh0d2lkdGgKIAogTm93IGxpbmVzIHdpbGwgYmUgYnJva2VuIHRvIHRha2Ugb25seSB1cCB0byA3MiBjaGFyYWN0ZXJzLiAgQnV0IHdoZW4geW91Ci1pbnNlcnQgdGV4dCBoYWxmd2F5IGEgbGluZSwgb3Igd2hlbiB5b3UgZGVsZXRlIGEgZmV3IHdvcmRzLCB0aGUgbGluZXMgd2lsbCBnZXQKLXRvbyBsb25nIG9yIHRvbyBzaG9ydC4gIFZpbSBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgcmVmb3JtYXQgdGhlIHRleHQuCitpbnNlcnQgdGV4dCBoYWxmd2F5IHRocm91Z2ggYSBsaW5lLCBvciB3aGVuIHlvdSBkZWxldGUgYSBmZXcgd29yZHMsIHRoZSBsaW5lcword2lsbCBnZXQgdG9vIGxvbmcgb3IgdG9vIHNob3J0LiAgVmltIGRvZXNuJ3QgYXV0b21hdGljYWxseSByZWZvcm1hdCB0aGUgdGV4dC4KICAgIFRvIHRlbGwgVmltIHRvIGZvcm1hdCB0aGUgY3VycmVudCBwYXJhZ3JhcGg6ID4KIAogCWdxYXAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQgYi9ydW50aW1lL2RvYy91c3JfNDEudHh0CmluZGV4IDc5ZTNhMDguLjAwMjRjZTcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzQxLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfNDEudHh0KglGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTkgTm92IDE3CisqdXNyXzQxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE5IE5vdiAyMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9rZXltYXAvb2xkdHVya2ljLXllbmlzZWlfdXRmLTgudmltIGIvcnVudGltZS9rZXltYXAvb2xkdHVya2ljLXllbmlzZWlfdXRmLTgudmltCmluZGV4IGY5MzlmMGEuLjA5NzIyZTcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUva2V5bWFwL29sZHR1cmtpYy15ZW5pc2VpX3V0Zi04LnZpbQorKysgYi9ydW50aW1lL2tleW1hcC9vbGR0dXJraWMteWVuaXNlaV91dGYtOC52aW0KQEAgLTUsNyArNSw3IEBACiAiIFVURi04KSBzaG91bGQgd29yay4KIHNjcmlwdGVuY29kaW5nIHV0Zi04CiAKLWxldCBiOmtleW1hcF9uYW1lID0gIm90byIKK2xldCBiOmtleW1hcF9uYW1lID0gIm90eSIKIGhpZ2hsaWdodCBsQ3Vyc29yIGd1aWJnPXJlZCBndWlmZz1OT05FCiAKICIgbWFwIEY4IHRvIHRvZ2dsZSBrZXltYXAgKEN0cmwtXiBub3QgcHJlc2VudCBvbiBrZXlib2FyZCkKQEAgLTIyLDcgKzIyLDEwIEBACiAwNAnwkLCECTEwQzA0CU9MRCBUVVJLSUMgTEVUVEVSIFlFTklTRUkgSQogRQnwkLCFCTEwQzA1CU9MRCBUVVJLSUMgTEVUVEVSIFlFTklTRUkgRQogMDUJ8JCwhQkxMEMwNQlPTEQgVFVSS0lDIExFVFRFUiBZRU5JU0VJIEUKLU9FCfCQsIgJMTBDMDgJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBPRQorT08J8JCwhgkxMEMwNglPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gTworVQnwkLCGCTEwQzA2CU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBPCiswNgnwkLCGCTEwQzA2CU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBPCitFCfCQsIgJMTBDMDgJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBPRQogVUUJ8JCwiAkxMEMwOAlPTEQgVFVSS0lDIExFVFRFUiBZRU5JU0VJIE9FCiAwOAnwkLCICTEwQzA4CU9MRCBUVVJLSUMgTEVUVEVSIFlFTklTRUkgT0UKIGFiCfCQsIoJMTBDMEEJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBBQgpAQCAtNDIsNiArNDUsMTAgQEAKIGFkCfCQsJIJMTBDMTIJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBBRAogZDEJ8JCwkgkxMEMxMglPTEQgVFVSS0lDIExFVFRFUiBZRU5JU0VJIEFECiAxMgnwkLCSCTEwQzEyCU9MRCBUVVJLSUMgTEVUVEVSIFlFTklTRUkgQUQKK2FlZAnwkLCTCTEwQzEzCU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBBRUQKK2VkCfCQsJMJMTBDMTMJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEFFRAorZDIJ8JCwkwkxMEMxMwlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gQUVECisxMwnwkLCTCTEwQzEzCU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBBRUQKIGV6CfCQsJUJMTBDMTUJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBFWgogegnwkLCVCTEwQzE1CU9MRCBUVVJLSUMgTEVUVEVSIFlFTklTRUkgRVoKIDE1CfCQsJUJMTBDMTUJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBFWgpAQCAtNjUsNiArNzIsMTkgQEAKIGwJ8JCwnwkxMEMxRglPTEQgVFVSS0lDIExFVFRFUiBZRU5JU0VJIEFMCiBsMQnwkLCfCTEwQzFGCU9MRCBUVVJLSUMgTEVUVEVSIFlFTklTRUkgQUwKIDFmCfCQsJ8JMTBDMUYJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBBTAorYWVsCfCQsKAJMTBDMjAJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEFFTAorZWwJ8JCwoAkxMEMyMAlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gQUVMCitsMgnwkLCgCTEwQzIwCU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBBRUwKKzIwCfCQsKAJMTBDMjAJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEFFTAorZWx0CfCQsKEJMTBDMjEJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEVMVAorbHQJ8JCwoQkxMEMyMQlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gRUxUCisyMQnwkLChCTEwQzIxCU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBFTFQKK2VtCfCQsKIJMTBDMjIJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEVNCittCfCQsKIJMTBDMjIJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEVNCisyMgnwkLCiCTEwQzIyCU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBFTQorYW4J8JCwowkxMEMyMwlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gQU4KK24xCfCQsKMJMTBDMjMJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEFOCisyMwnwkLCjCTEwQzIzCU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBBTgogYWVuCfCQsKUJMTBDMjUJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBBRU4KIGVuCfCQsKUJMTBDMjUJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBBRU4KIG4yCfCQsKUJMTBDMjUJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBBRU4KQEAgLTg0LDYgKzEwNCwxNCBAQAogYWVuZwnwkLCuCTEwQzJFCU9MRCBUVVJLSUMgTEVUVEVSIFlFTklTRUkgQUVORwogZW5nCfCQsK4JMTBDMkUJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBBRU5HCiAyZQnwkLCuCTEwQzJFCU9MRCBUVVJLSUMgTEVUVEVSIFlFTklTRUkgQUVORworZXAJ8JCwrwkxMEMyRglPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gRVAKK3AJ8JCwrwkxMEMyRglPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gRVAKKzJmCfCQsK8JMTBDMkYJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEVQCitvcAnwkLCwCTEwQzMwCU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBPUAordXAJ8JCwsAkxMEMzMAlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gT1AKKzMwCfCQsLAJMTBDMzAJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIE9QCitpYwnwkLCxCTEwQzMxCU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBJQworMzEJ8JCwsQkxMEMzMQlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gSUMKIGVjCfCQsLMJMTBDMzMJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBFQwogYwnwkLCzCTEwQzMzCU9MRCBUVVJLSUMgTEVUVEVSIFlFTklTRUkgRUMKIDMzCfCQsLMJMTBDMzMJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBFQwpAQCAtMTAwLDYgKzEyOCwxNyBAQAogcgnwkLC7CTEwQzNCCU9MRCBUVVJLSUMgTEVUVEVSIFlFTklTRUkgQVIKIHIxCfCQsLsJMTBDM0IJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBBUgogM2IJ8JCwuwkxMEMzQglPTEQgVFVSS0lDIExFVFRFUiBZRU5JU0VJIEFSCithZXIJ8JCwvAkxMEMzQwlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gQUVSCitlcgnwkLC8CTEwQzNDCU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBBRVIKK3IyCfCQsLwJMTBDM0MJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEFFUgorM2MJ8JCwvAkxMEMzQwlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gQUVSCithcwnwkLC9CTEwQzNECU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBBUworczEJ8JCwvQkxMEMzRAlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gQVMKKzNkCfCQsL0JMTBDM0QJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEFTCithZXMJ8JCwvgkxMEMzRQlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gQUVTCitlcwnwkLC+CTEwQzNFCU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBBRVMKK3MyCfCQsL4JMTBDM0UJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIEFFUworM2UJ8JCwvgkxMEMzRQlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gQUVTCiBhc2gJ8JCxgAkxMEM0MAlPTEQgVFVSS0lDIExFVFRFUiBZRU5JU0VJIEFTSAogc2gxCfCQsYAJMTBDNDAJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBBU0gKIDQwCfCQsYAJMTBDNDAJT0xEIFRVUktJQyBMRVRURVIgWUVOSVNFSSBBU0gKQEAgLTExMywzICsxNTIsOCBAQAogZXQJ8JCxhgkxMEM0NglPTEQgVFVSS0lDIExFVFRFUiBZRU5JU0VJIEFFVAogdDIJ8JCxhgkxMEM0NglPTEQgVFVSS0lDIExFVFRFUiBZRU5JU0VJIEFFVAogNDYJ8JCxhgkxMEM0NglPTEQgVFVSS0lDIExFVFRFUiBZRU5JU0VJIEFFVAorb3QJ8JCxhwkxMEM0NwlPTEQgVFVSS0lDIExFVFRFUiBPUktIT04gT1QKK3V0CfCQsYcJMTBDNDcJT0xEIFRVUktJQyBMRVRURVIgT1JLSE9OIE9UCis0NwnwkLGHCTEwQzQ3CU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBPVAorYmFzaAnwkLGICTEwQzQ4CU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBCQVNICis0OAnwkLGICTEwQzQ4CU9MRCBUVVJLSUMgTEVUVEVSIE9SS0hPTiBCQVNICmRpZmYgLS1naXQgYS9ydW50aW1lL2xhbmcvbWVudV90ci5jcDEyNTQudmltIGIvcnVudGltZS9sYW5nL21lbnVfdHIuY3AxMjU0LnZpbQppbmRleCAyYzUxNThkLi41YzIwNjdlIDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV90ci5jcDEyNTQudmltCisrKyBiL3J1bnRpbWUvbGFuZy9tZW51X3RyLmNwMTI1NC52aW0KQEAgLTEsMyArMSwzIEBACiAiIE1lbnUgVHJhbnNsYXRpb25zOglUdXJraXNoCiAKLXNvdXJjZSA8c2ZpbGU+OnA6aC9tZW51X3RyX3RyLmlzb184ODU5LTkudmltCitzb3VyY2UgPHNmaWxlPjpwOmgvbWVudV90cl90ci5jcDEyNTQudmltClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9sYW5nL21lbnVfdHIuaXNvXzg4NTktOS52aW0gYi9ydW50aW1lL2xhbmcvbWVudV90ci5pc29fODg1OS05LnZpbQppbmRleCAyYzUxNThkLi44NzEyZTZhIDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV90ci5pc29fODg1OS05LnZpbQorKysgYi9ydW50aW1lL2xhbmcvbWVudV90ci5pc29fODg1OS05LnZpbQpAQCAtMSwzICsxLDMgQEAKICIgTWVudSBUcmFuc2xhdGlvbnM6CVR1cmtpc2gKIAotc291cmNlIDxzZmlsZT46cDpoL21lbnVfdHJfdHIuaXNvXzg4NTktOS52aW0KK3NvdXJjZSA8c2ZpbGU+OnA6aC9tZW51X3RyX3RyLmlzb184ODU5LTkudmltClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9sYW5nL21lbnVfdHJfdHIuY3AxMjU0LnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X3RyX3RyLmNwMTI1NC52aW0KaW5kZXggMmM1MTU4ZC4uNjg3ZTJhYyAxMDA2NDQKLS0tIGEvcnVudGltZS9sYW5nL21lbnVfdHJfdHIuY3AxMjU0LnZpbQorKysgYi9ydW50aW1lL2xhbmcvbWVudV90cl90ci5jcDEyNTQudmltCkBAIC0xLDMgKzEsMzA4IEBACiAiIE1lbnUgVHJhbnNsYXRpb25zOglUdXJraXNoCisiIE1haW50YWluZXI6CQlFbWlyIFNBUkkgPGJpdGlnY2hpQG1lLmNvbT4KIAotc291cmNlIDxzZmlsZT46cDpoL21lbnVfdHJfdHIuaXNvXzg4NTktOS52aW0KK2lmIGV4aXN0cygiZGlkX21lbnVfdHJhbnMiKQorICAgZmluaXNoCitlbmRpZgorCitsZXQgZGlkX21lbnVfdHJhbnMgPSAxCitsZXQgczprZWVwY3BvPSAmY3BvCitzZXQgY3BvJnZpbQorc2NyaXB0ZW5jb2RpbmcgY3AxMjU0CisKKyIgVG9wCittZW51dHJhbnMgJkZpbGUJCSZEb3N5YQorbWVudXRyYW5zICZFZGl0CQlE/CZ6ZW4KK21lbnV0cmFucyAmVG9vbHMJJkFyYedsYXIKK21lbnV0cmFucyAmU3ludGF4CSZT9npkaXppbQorbWVudXRyYW5zICZCdWZmZXJzCUEmcmFiZWxsZWtsZXIKK21lbnV0cmFucyAmV2luZG93CSZQZW5jZXJlCittZW51dHJhbnMgJkhlbHAJCSZZYXJk/W0KKworIiBIZWxwIG1lbnUKK21lbnV0cmFucyAmT3ZlcnZpZXc8VGFiPjxGMT4JJkdlbmVsXCBCYWv9/jxUYWI+PEYxPgorbWVudXRyYW5zICZVc2VyXCBNYW51YWwJCSZLdWxsYW79bVwgS/1sYXZ1enUKK21lbnV0cmFucyAmSG93LVRvXCBMaW5rcwkmTmFz/WxcIFlhcP1s/XI/CittZW51dHJhbnMgJkZpbmRcLlwuXC4JCSZCdWxcLlwuXC4KKyItLS0tLS0tLS0tLS0tLS0tLS0tLQorbWVudXRyYW5zICZDcmVkaXRzCQkmVGX+ZWtr/HJsZXIKK21lbnV0cmFucyBDbyZweWluZwkJJkRh8P10/W0KK21lbnV0cmFucyAmU3BvbnNvci9SZWdpc3RlcgkmU3BvbnNvcmx1ay9LYXn9dAorbWVudXRyYW5zIE8mcnBoYW5zCQkmWWV0aW1sZXIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLQorbWVudXRyYW5zICZWZXJzaW9uCVP8cvxtXCAmQmlsZ2lzaQorbWVudXRyYW5zICZBYm91dAkmSGFra/1uZGEKKworIiBGaWxlIG1lbnUKK21lbnV0cmFucyAmT3BlblwuXC5cLjxUYWI+OmUJCSZB51wuXC5cLjxUYWI+OmUKK21lbnV0cmFucyBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwCSZZZW5pXCBC9mz8bWRlXCBB51wuXC5cLjxUYWI+OnNwCittZW51dHJhbnMgT3BlblwgVGFiXC5cLlwuPFRhYj46dGFibmV3CVMmZWttZVwgQedcLlwuXC48VGFiPjp0YWJuZXcKK21lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkJWWVuaVwgJlNla21lPFRhYj46ZW5ldworbWVudXRyYW5zICZDbG9zZTxUYWI+OmNsb3NlCQlLYSZwYXQ8VGFiPjpjbG9zZQorIi0tLS0tLS0tLS0tLS0tLS0tLS0tCittZW51dHJhbnMgJlNhdmU8VGFiPjp3CQkJS2F5ZGUmdDxUYWI+OncKK21lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYJJkZhcmts/SBLYXlkZXRcLlwuXC48VGFiPjpzYXYKKyItLS0tLS0tLS0tLS0tLS0tLS0tLQorbWVudXRyYW5zIFNwbGl0XCAmRGlmZlwgV2l0aFwuXC5cLglLYSZy/v1sYf50/XJcLlwuXC4KK21lbnV0cmFucyBTcGxpdFwgUGF0Y2hlZFwgJkJ5XC5cLlwuCVlhJm1hbGFyXCBEYWhpbFwgS2Fy/v1sYf50/XJcLlwuXC4KKyItLS0tLS0tLS0tLS0tLS0tLS0tLQorbWVudXRyYW5zICZQcmludAkJWWEmemT9cgorbWVudXRyYW5zIFNhJnZlLUV4aXQ8VGFiPjp3cWEJS2F5ZGV0XCAmdmUgx/1rPFRhYj46d3FhCittZW51dHJhbnMgRSZ4aXQ8VGFiPjpxYQkJx/0mazxUYWI+OnFhCisKKyIgRWRpdCBtZW51CittZW51dHJhbnMgJlVuZG88VGFiPnUJCSZHZXJpXCBBbDxUYWI+dQorbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJJllpbmVsZTxUYWI+XlIKK21lbnV0cmFucyBSZXAmZWF0PFRhYj5cLglTb25cIEtvbXV0dVwgWSZpbmVsZTxUYWI+XC4KKyItLS0tLS0tLS0tLS0tLS0tLS0tLQorbWVudXRyYW5zIEN1JnQ8VGFiPiIreAkJJktlczxUYWI+Iit4CittZW51dHJhbnMgJkNvcHk8VGFiPiIreQkJSyZvcHlhbGE8VGFiPiIreQorbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAlZYSZw/f50/XI8VGFiPiIrZ1AKK21lbnV0cmFucyBQdXRcICZCZWZvcmU8VGFiPltwCdYmbvxuZSBLb3k8VGFiPltwCittZW51dHJhbnMgUHV0XCAmQWZ0ZXI8VGFiPl1wCUEmcmthc/1uYSBLb3k8VGFiPl1wCittZW51dHJhbnMgJkRlbGV0ZTxUYWI+eAkJU2kmbDxUYWI+eAorbWVudXRyYW5zICZTZWxlY3RcIEFsbDxUYWI+Z2dWRwlU/CZt/G78XCBTZec8VGFiPmdnVkcKKyItLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBBdGhlbmEgR1VJIG9ubHkKK21lbnV0cmFucyAmRmluZDxUYWI+LwkJCSZCdWw8VGFiPi8KK21lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlPFRhYj46JXMJQnVsXCAmdmVcIERl8Gn+dGlyPFRhYj46JXMKKyIgRW5kIEF0aGVuYSBHVUkgb25seQorbWVudXRyYW5zICZGaW5kXC5cLlwuPFRhYj4vCQkmQnVsXC5cLlwuPFRhYj4vCittZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLglCdWxcIHZlXCAmRGXwaf50aXJcLlwuXC4KK21lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuPFRhYj46JXMJQnVsXCB2ZVwgJkRl8Gn+dGlyXC5cLlwuPFRhYj46JXMKK21lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuPFRhYj46cwlCdWxcIHZlXCAmRGXwaf50aXJcLlwuXC48VGFiPjpzCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0KK21lbnV0cmFucyBTZXR0aW5nc1wgJldpbmRvdwkmQXlhcmxhclwgUGVuY2VyZXNpCittZW51dHJhbnMgU3RhcnR1cFwgJlNldHRpbmdzCUJh/mxhbiZn/edcIEF5YXJsYXL9CittZW51dHJhbnMgJkdsb2JhbFwgU2V0dGluZ3MJR2UmbmVsXCBBeWFybGFyCittZW51dHJhbnMgRiZpbGVcIFNldHRpbmdzCSZEb3N5YVwgQXlhcmxhcv0KK21lbnV0cmFucyBDJm9sb3JcIFNjaGVtZQkmUmVua1wgRPx6ZW5pCittZW51dHJhbnMgJktleW1hcAkJRPzwbWVcICZF/mxlbQorbWVudXRyYW5zIFNlbGVjdFwgRm8mbnRcLlwuXC4JWWEmev10aXBpIFNl51wuXC5cLgorCisiPj4+LS0tLS0tLS0tLS0tLS0tLS0gRWRpdC9HbG9iYWwgc2V0dGluZ3MKK21lbnV0cmFucyBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEJCURpemdpXCAmVnVyZ3VsYW1hc/1u/VwgQecvS2FwYXQ8VGFiPjpzZXRcIGhscyEKK21lbnV0cmFucyBUb2dnbGVcICZJZ25vcmluZ1wgQ2FzZTxUYWI+OnNldFwgaWMhCQkgCULcWdxLL2v85/xrXCBIYXJmXCAmRHV5YXJs/VwgQecvS2FwYXQ8VGFiPjpzZXRcIGljIQorbWVudXRyYW5zIFRvZ2dsZVwgJlNob3dpbmdcIE1hdGNoZWRcIFBhaXJzPFRhYj46c2V0XCBzbSEJRf4mbGX+ZW5cIN1raWxpbGVyaVwgQecvS2FwYXQ8VGFiPjpzZXRcIHNtIQorbWVudXRyYW5zICZDb250ZXh0XCBMaW5lcwkJCQkJ3SZtbGXnbGVcIE95bmF5YW5cIFNhdP1ybGFyCittZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQJCQkJCSZTYW5hbFwgRPx6ZW5sZW1lCittZW51dHJhbnMgVG9nZ2xlXCBJbnNlcnRcICZNb2RlPFRhYj46c2V0XCBpbSEJCQlFa2xlbWVcICZLaXBpbmlcIEHnL0thcGF0PFRhYj46c2V0XCBpbSEKK21lbnV0cmFucyBUb2dnbGVcIFZpXCBDJm9tcGF0aWJpbGl0eTxUYWI+OnNldFwgY3AhCQkmVmlcIFV5dW1sdVwgS2lwaVwgQecvS2FwYXQ8VGFiPjpzZXRcIGNwIQorbWVudXRyYW5zIFNlYXJjaFwgJlBhdGhcLlwuXC4JCQkJCSZBcmFtYVwgWW9sdVwuXC5cLgorbWVudXRyYW5zIFRhJmdcIEZpbGVzXC5cLlwuCQkJCQkmRXRpa2V0XCBEb3N5YWxhcv1cLlwuXC4KKyIKK21lbnV0cmFucyBUb2dnbGVcICZUb29sYmFyCQkmQXJh51wgx3VidfB1bnVcIEHnL0thcGF0CittZW51dHJhbnMgVG9nZ2xlXCAmQm90dG9tXCBTY3JvbGxiYXIJQSZsdFwgS2F5ZP1ybWFcIMd1YnXwdW51XCBB5y9LYXBhdAorbWVudXRyYW5zIFRvZ2dsZVwgJkxlZnRcIFNjcm9sbGJhcgkmU29sXCBLYXlk/XJtYVwgx3VidfB1bnVcIEHnL0thcGF0CittZW51dHJhbnMgVG9nZ2xlXCAmUmlnaHRcIFNjcm9sbGJhcglTJmHwXCBLYXlk/XJtYVwgx3VidfB1bnVcIEHnL0thcGF0CisKKyI+Pj4tPj4+LS0tLS0tLS0tLS0tLSBFZGl0L0dsb2JhbCBzZXR0aW5ncy9WaXJ0dWFsIGVkaXQKK21lbnV0cmFucyBOZXZlcgkJCUthcGFs/QorbWVudXRyYW5zIEJsb2NrXCBTZWxlY3Rpb24JQmxva1wgU2XnaW1pCittZW51dHJhbnMgSW5zZXJ0XCBNb2RlCQlFa2xlbWVcIEtpcGkKK21lbnV0cmFucyBCbG9ja1wgYW5kXCBJbnNlcnQJQmxva1wgU2XnaW1pbmRlXCB2ZVwgRWtsZW1lXCBLaXBpbmRlCittZW51dHJhbnMgQWx3YXlzCQkJCUhlclwgWmFtYW5cIEHn/WsKKyI+Pj4tLS0tLS0tLS0tLS0tLS0tLSBFZGl0L0ZpbGUgc2V0dGluZ3MKK21lbnV0cmFucyBUb2dnbGVcIExpbmVcICZOdW1iZXJpbmc8VGFiPjpzZXRcIG51IQkJJlNhdP1yXCBOdW1hcmFsYW5k/XJtYXn9XCBB5y9LYXBhdDxUYWI+OnNldFwgbnUhCittZW51dHJhbnMgVG9nZ2xlXCBSZWxhdGkmdmVcIExpbmVcIE51bWJlcmluZzxUYWI+OnNldFwgcm51IQkmR/ZyZWNlbGlcIFNhdP1yXCBOdW1hcmFsYW5k/XJtYXn9XCBB5y9LYXBhdDxUYWI+OnNldFwgbnJ1IQorbWVudXRyYW5zIFRvZ2dsZVwgJkxpc3RcIE1vZGU8VGFiPjpzZXRcIGxpc3QhCQkJR/YmcvxubWV5ZW5cIEthcmFrdGVybGVyaVwgQecvS2FwYXQ8VGFiPjpzZXRcIGxpc3QhCittZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmV3JhcHBpbmc8VGFiPjpzZXRcIHdyYXAhCQlTYSZ0/XJcIEtheWT9cm1hef1cIEHnL0thcGF0PFRhYj46c2V0XCB3cmFwIQorbWVudXRyYW5zIFRvZ2dsZVwgVyZyYXBwaW5nXCBhdFwgV29yZDxUYWI+OnNldFwgbGJyIQkJU/YmemP8a1wgS2F5ZP1ybWF5/VwgQecvS2FwYXQ8VGFiPjpzZXRcIGxiciEKK21lbnV0cmFucyBUb2dnbGVcIFRhYlwgJkV4cGFuZGluZy10YWI8VGFiPjpzZXRcIGV0IQkJUyZla21lbGVyaVwgQm/+bHVrbGFyYVwgRPZu/P50/HJtZXlpXCBB5y9LYXBhdDxUYWI+OnNldFwgZXQhCittZW51dHJhbnMgVG9nZ2xlXCAmQXV0b1wgSW5kZW50aW5nPFRhYj46c2V0XCBhaSEJCSZPdG9tYXRpa1wgR2lyaW50aWxlbWV5aVwgQecvS2FwYXQ8VGFiPjpzZXRcIGFpIQorbWVudXRyYW5zIFRvZ2dsZVwgJkMtU3R5bGVcIEluZGVudGluZzxUYWI+OnNldFwgY2luIQkJJkNcIFRhcnr9XCBHaXJpbnRpbGVtZXlpXCBB5y9LYXBhdDxUYWI+OnNldFwgY2luIQorIj4+Pi0tLQorbWVudXRyYW5zICZTaGlmdHdpZHRoCQkmR2lyaW50aVwgRPx6ZXlpCittZW51dHJhbnMgU29mdFwgJlRhYnN0b3AJJlNla21lXCBHZW5p/mxp8GkKK21lbnV0cmFucyBUZSZ4dFwgV2lkdGhcLlwuXC4JJk1ldGluXCBHZW5p/mxp8GlcLlwuXC4KK21lbnV0cmFucyAmRmlsZVwgRm9ybWF0XC5cLlwuCSZEb3N5YVwgQmnnaW1pXC5cLlwuCisKKyIgVG9vbHMgbWVudQorbWVudXRyYW5zICZKdW1wXCB0b1wgVGhpc1wgVGFnPFRhYj5nXl0J3iZ1XCBFdGlrZXRlXCBBdGxhPFRhYj5nXl0KK21lbnV0cmFucyBKdW1wXCAmQmFjazxUYWI+XlQJCSZHZXJpXCBE9m48VGFiPl5UCittZW51dHJhbnMgQnVpbGRcICZUYWdzXCBGaWxlCQkmRXRpa2V0XCBEb3N5YXP9XCBPbHX+dHVyCisiLS0tLS0tLS0tLS0tLS0tLS0tLQorbWVudXRyYW5zICZGb2xkaW5nCSZL/Xb9cm1hbGFyCittZW51dHJhbnMgJlNwZWxsaW5nCSZZYXr9bVwgRGVuZXRpbWkKK21lbnV0cmFucyAmRGlmZgkJJkF5cv1tbGFyXCAoZGlmZikKKyItLS0tLS0tLS0tLS0tLS0tLS0tCittZW51dHJhbnMgJk1ha2U8VGFiPjptYWtlCQkJJkRlcmxlPFRhYj46bWFrZQorbWVudXRyYW5zICZMaXN0XCBFcnJvcnM8VGFiPjpjbAkJCSZIYXRhbGFy/VwgTGlzdGVsZTxUYWI+OmNsCittZW51dHJhbnMgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whCQndJmxldGlsZXJpXCBMaXN0ZWxlPFRhYj46Y2whCittZW51dHJhbnMgJk5leHRcIEVycm9yPFRhYj46Y24JCQlCaXJcICZTb25yYWtpXCBIYXRhPFRhYj46Y24KK21lbnV0cmFucyAmUHJldmlvdXNcIEVycm9yPFRhYj46Y3AJCUJpclwg1iZuY2VraVwgSGF0YTxUYWI+OmNwCittZW51dHJhbnMgJk9sZGVyXCBMaXN0PFRhYj46Y29sZAkJRGFoYVwgJkVza2lcIEhhdGFsYXI8VGFiPjpjb2xkCittZW51dHJhbnMgTiZld2VyXCBMaXN0PFRhYj46Y25ldwkJRGFoYVwgJlllbmlcIEhhdGFsYXI8VGFiPjpjbmV3CittZW51dHJhbnMgRXJyb3JcICZXaW5kb3cJCQlIYXRhbGFyXCAmUGVuY2VyZXNpCittZW51dHJhbnMgU2UmdFwgQ29tcGlsZXIJCQlEZSZybGV5aWNpXCBTZecKK21lbnV0cmFucyBTaG93XCBDb21waWxlclwgU2UmdHRpbmdzXCBpblwgTWVudQlEZXJsZXlpY2lcIEF5YXJsYXL9bv1cIE1lbvxkZVwgJkf2c3RlciAKKyItLS0tLS0tLS0tLS0tLS0tLS0tCittZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAkJSEVYJ2VcIET2Jm78/nT8cjxUYWI+OiUheHhkCittZW51dHJhbnMgQ29udmUmcnRcIEJhY2s8VGFiPjolIXh4ZFwgLXIJCUhFWCcmdGVuXCBE9m78/nT8cjxUYWI+OiUheHhkXCAtcgorIj4+Pi0tLS0tLS0tLS0tLS0tLS0gVG9vbHMvU3BlbGxpbmcKK21lbnV0cmFucyAmU3BlbGxcIENoZWNrXCBPbgkJCVlhev1tXCBEZW5ldGltaW5pXCAmQecKK21lbnV0cmFucyBTcGVsbFwgQ2hlY2tcICZPZmYJCQlZYXr9bVwgRGVuZXRpbWluaVwgJkthcGF0CittZW51dHJhbnMgVG9cICZOZXh0XCBFcnJvcjxUYWI+XXMJCUJpclwgJlNvbnJha2lcIEhhdGE8VGFiPl1zCittZW51dHJhbnMgVG9cICZQcmV2aW91c1wgRXJyb3I8VGFiPltzCQlCaXJcINYmbmNla2lcIEhhdGE8VGFiPltzCittZW51dHJhbnMgU3VnZ2VzdFwgJkNvcnJlY3Rpb25zPFRhYj56PQkJRPwmemVsdG1lXCDWbmVyPFRhYj56PQorbWVudXRyYW5zICZSZXBlYXRcIENvcnJlY3Rpb248VGFiPjpzcGVsbHJlcGFsbAlE/HplbHRtZXlpXCAmWWluZWxlPFRhYj5zcGVsbHJlcGFsbAorIi0tLS0tLS0tLS0tLS0tLS0tLS0KK21lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuIglEaWxpXCAiZW4iXCB5YXAKK21lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuX2F1IglEaWxpXCAiZW5fYXUiXCB5YXAKK21lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuX2NhIglEaWxpXCAiZW5fY2EiXCB5YXAKK21lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuX2diIglEaWxpXCAiZW5fZ2IiXCB5YXAKK21lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuX256IglEaWxpXCAiZW5fbnoiXCB5YXAKK21lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuX3VzIglEaWxpXCAiZW5fdXMiXCB5YXAKK21lbnV0cmFucyAmRmluZFwgTW9yZVwgTGFuZ3VhZ2VzCSZCYf5rYVwgRGlsbGVyXCBCdWwKK2xldCBnOm1lbnV0cmFuc19zZXRfbGFuZ190byA9CQknRGlsIFn8a2xlJworCisiIFRoZSBTcGVsbGluZyBwb3B1cCBtZW51CitsZXQgZzptZW51dHJhbnNfc3BlbGxfY2hhbmdlX0FSR190byA9CQknRPx6ZWx0aWxlY2VrOlwgIiVzIlwgLT4nCitsZXQgZzptZW51dHJhbnNfc3BlbGxfYWRkX0FSR190b193b3JkX2xpc3QgPQknIiVzIlwgc/Z6Y/zw/G78XCBz9nps/PBlXCBla2xlJworbGV0IGc6bWVudXRyYW5zX3NwZWxsX2lnbm9yZV9BUkcgPQkJJyIlcyJcIHP2emP88Pxu/FwgeW9rc2F5JworIj4+Pi0tLS0tLS0tLS0tLS0tLS0gRm9sZHMKK21lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIEZvbGRzPFRhYj56aQkJJkv9dv1ybWFsYXL9XCBB5y9LYXBhdDxUYWI+emkKK21lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkJ3SZtbGVjaW5cIE9sZHXwdVwgU2F0/XL9XCBH9nL8bnT8bGU8VGFiPnp2CittZW51dHJhbnMgVmllJndcIEN1cnNvclwgTGluZVwgT25seTxUYWI+ek16eAlZYSZsbv16Y2FcIN1tbGVjaW5cIE9sZHXwdVwgU2F0/XL9XCBH9nL8bnT8bGU8VGFiPnpNengKK21lbnV0cmFucyBDJmxvc2VcIE1vcmVcIEZvbGRzPFRhYj56bQkJJkRhaGFcIEZhemxhXCBL/Xb9cm1hXCBLYXBhdDxUYWI+em0KK21lbnV0cmFucyAmQ2xvc2VcIEFsbFwgRm9sZHM8VGFiPnpNCQlC/HT8blwgS/0mdv1ybWFsYXL9XCBLYXBhdDxUYWI+ek0KK21lbnV0cmFucyAmT3BlblwgQWxsXCBGb2xkczxUYWI+elIJCUL8JnT8blwgS/12/XJtYWxhcv1cIEHnPFRhYj56UgorbWVudXRyYW5zIE8mcGVuXCBNb3JlXCBGb2xkczxUYWI+enIJCUQmYWhhXCBGYXpsYVwgS/12/XJtYVwgQec8VGFiPnpyCittZW51dHJhbnMgRm9sZFwgTWV0JmhvZAkJCQlL/Xb9JnJtYVwgWfZudGVtaQorbWVudXRyYW5zIENyZWF0ZVwgJkZvbGQ8VGFiPnpmCQkJS/12/XJtYVwgJk9sdf50dXI8VGFiPnpmCittZW51dHJhbnMgJkRlbGV0ZVwgRm9sZDxUYWI+emQJCQlL/Xb9cm1hXCAmU2lsPFRhYj56ZAorbWVudXRyYW5zIERlbGV0ZVwgJkFsbFwgRm9sZHM8VGFiPnpECQlU/CZtXCBL/Xb9cm1hbGFy/VwgU2lsPFRhYj56RAorbWVudXRyYW5zIEZvbGRcIGNvbCZ1bW5cIFdpZHRoCQkJS/12/XJtYVwgU/x0dW51XCAmR2Vuaf5safBpCisiPj4+LT4+Pi0tLS0tLS0tLS0tIFRvb2xzL0ZvbGRzL0ZvbGQgTWV0aG9kCittZW51dHJhbnMgTSZhbnVhbAkmRWxcIN1sZQorbWVudXRyYW5zIEkmbmRlbnQJJkdpcmludGkKK21lbnV0cmFucyBFJnhwcmVzc2lvbgndJmZhZGUKK21lbnV0cmFucyBTJnludGF4CSZT9npkaXppbQorbWVudXRyYW5zIE1hJnJrZXIJ3SZtbGV5aWNpCisiPj4+LS0tLS0tLS0tLS0tLS0tIFRvb2xzL0RpZmYKK21lbnV0cmFucyAmVXBkYXRlCSZH/G5jZWxsZQorbWVudXRyYW5zICZHZXRcIEJsb2NrCUJsb/B1XCAmQWwKK21lbnV0cmFucyAmUHV0XCBCbG9jawlCbG/wdVwgJktveQorIj4+Pi0tLS0tLS0tLS0tLS0tLSBUb29scy9EaWZmL0Vycm9yIHdpbmRvdworbWVudXRyYW5zICZVcGRhdGU8VGFiPjpjd2luCSZH/G5jZWxsZTxUYWI+OmN3aW4KK21lbnV0cmFucyAmQ2xvc2U8VGFiPjpjY2xvc2UJJkthcGF0PFRhYj46Y2Nsb3NlCittZW51dHJhbnMgJk9wZW48VGFiPjpjb3BlbgkmQec8VGFiPjpjb3BlbgorCisiIFN5bnRheCBtZW51CittZW51dHJhbnMgJlNob3dcIEZpbGVcIFR5cGVzXCBpblwgTWVudQlEb3N5YVwgVPxybGVyaW5pXCBNZW78ZGVcICZH9nN0ZXIKK21lbnV0cmFucyBTZXRcICcmc3ludGF4J1wgb25seQkJWWFsbv16Y2FcICdzeW50YXgnXCAmQXlhcmxhCittZW51dHJhbnMgU2V0XCAnJmZpbGV0eXBlJ1wgdG9vCQknZmlsZXR5cGUnXCDd52luXCAmZGVcIEF5YXJsYQorbWVudXRyYW5zICZPZmYJCQkJJkthcGF0CittZW51dHJhbnMgJk1hbnVhbAkJCSZFbFwg3WxlCittZW51dHJhbnMgQSZ1dG9tYXRpYwkJCSZPdG9tYXRpaworbWVudXRyYW5zIE9uL09mZlwgZm9yXCAmVGhpc1wgRmlsZQkmQnVcIERvc3lhXCDd52luXCBB5y9LYXBhdAorbWVudXRyYW5zIENvJmxvclwgVGVzdAkJCSZSZW5rXCBUZXN0aQorbWVudXRyYW5zICZIaWdobGlnaHRcIFRlc3QJCSZWdXJndWxhbWFcIFRlc3RpCittZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIVE1MCQkmSFRNTCd5ZVwgRPZu/P50/HIKKworIiBCdWZmZXJzIG1lbnUKK21lbnV0cmFucyAmUmVmcmVzaFwgbWVudQkmTWVu/Hn8XCBH/G5jZWxsZQorbWVudXRyYW5zIERlbGV0ZQkJJlNpbAorbWVudXRyYW5zICZBbHRlcm5hdGUJCdYmdGVraQorbWVudXRyYW5zICZOZXh0CQkJU28mbnJha2kKK21lbnV0cmFucyAmUHJldmlvdXMJCdZuJmNla2kKK21lbnV0cmFucyBbTm9cIEZpbGVdCQlbRG9zeWFcIFlva10KKworIiBXaW5kb3cgbWVudQorbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJCVllbmlcICZQZW5jZXJlPFRhYj5eV24KK21lbnV0cmFucyBTJnBsaXQ8VGFiPl5XcwkJUGVuY2VyZXlpXCAmQvZsPFRhYj5eV3MKK21lbnV0cmFucyBTcCZsaXRcIFRvXCAjPFRhYj5eV15eCVBlbmNlcmV5aVwgQmH+a2Fz/W5hXCBC9iZsPFRhYj5eV15eCittZW51dHJhbnMgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YJUGVuY2VyZXlpXCAmRGlrZXlcIE9sYXJha1wgQvZsPFRhYj5eV3YKK21lbnV0cmFucyBTcGxpdFwgRmlsZVwgRSZ4cGxvcmVyCVllbmlcIEL2bPwmbWRlXCBEb3N5YVwgR2V6Z2luaW5pXCBB5worIgorbWVudXRyYW5zICZDbG9zZTxUYWI+XldjCQlQZW4mY2VyZXlpXCBLYXBhdDxUYWI+XldjCittZW51dHJhbnMgQ2xvc2VcICZPdGhlcihzKTxUYWI+XldvCURp8GVyXCBQZW5jZXJlbGUmcmlcIEthcGF0PFRhYj5eV28KKyIKK21lbnV0cmFucyBNb3ZlXCAmVG8JCSZUYf79CittZW51dHJhbnMgUm90YXRlXCAmVXA8VGFiPl5XUgkmWXVrYXL9XCBUYf79PFRhYj5eV1IKK21lbnV0cmFucyBSb3RhdGVcICZEb3duPFRhYj5eV3IJJkH+YfD9XCBUYf79PFRhYj5eV3IKKyIKK21lbnV0cmFucyAmRXF1YWxcIFNpemU8VGFiPl5XPQkmRf5pdFwgQm95dXQ8VGFiPl5XPQorbWVudXRyYW5zICZNYXhcIEhlaWdodDxUYWI+XldfCUUmblwgQvx5/GtcIFn8a3Nla2xpazxUYWI+XldfCittZW51dHJhbnMgTSZpblwgSGVpZ2h0PFRhYj5eVzFfCUVuXCBL/Of8a1wgWfxrc2VrbCZpazxUYWI+XlcxXworbWVudXRyYW5zIE1heFwgJldpZHRoPFRhYj5eV1x8CUVuXCBC/Hn8a1wgR2VuJmn+bGlrPFRhYj5eV1x8CittZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8CUVuXCBL/Of8a1wgR2Vuaf5saSZrPFRhYj5eVzFcfAorCisiPj4+LS0tLS0tLS0tLS0tLS0tLS0gV2luZG93L01vdmUgVG8KK21lbnV0cmFucyAmVG9wPFRhYj5eV0sJCSZZdWthcv08VGFiPl5XSworbWVudXRyYW5zICZCb3R0b208VGFiPl5XSgkmQf5h8P08VGFiPl5XSgorbWVudXRyYW5zICZMZWZ0XCBTaWRlPFRhYj5eV0gJU28mbGE8VGFiPl5XSAorbWVudXRyYW5zICZSaWdodFwgU2lkZTxUYWI+XldMCSZTYfBhPFRhYj5eV0wKKworIiBUaGUgcG9wdXAgbWVudQorbWVudXRyYW5zICZVbmRvCQkJJkdlcmlcIEFsCittZW51dHJhbnMgQ3UmdAkJCSZLZXMKK21lbnV0cmFucyAmQ29weQkJCUsmb3B5YWxhCittZW51dHJhbnMgJlBhc3RlCQkmWWFw/f50/XIKK21lbnV0cmFucyAmRGVsZXRlCQkmU2lsCittZW51dHJhbnMgU2VsZWN0XCBCbG9ja3dpc2UJJkJsb2tcIEJp52ltaW5kZVwgU2XnCittZW51dHJhbnMgU2VsZWN0XCAmV29yZAkJU/YmemP8a1wgU2XnCittZW51dHJhbnMgU2VsZWN0XCAmU2VudGVuY2UJJlT8bWNlXCBTZecKK21lbnV0cmFucyBTZWxlY3RcIFBhJnJhZ3JhcGgJJlBhcmFncmFmXCBTZecKK21lbnV0cmFucyBTZWxlY3RcICZMaW5lCQlTJmF0/XJcIFNl5worbWVudXRyYW5zIFNlbGVjdFwgJkJsb2NrCUJsJm9rXCBTZecKK21lbnV0cmFucyBTZWxlY3RcICZBbGwJCVT8bfwmbvxcIFNl5worCisiIFRoZSBHVUkgdG9vbGJhcgoraWYgaGFzKCJ0b29sYmFyIikKKwlpZiBleGlzdHMoIipEb190b29sYmFyX3RtZW51IikKKwkJZGVsZnVuIERvX3Rvb2xiYXJfdG1lbnUKKwllbmRpZgorCisJZnVuIERvX3Rvb2xiYXJfdG1lbnUoKQorCQl0bWVudSBUb29sQmFyLk9wZW4JRG9zeWEgQecKKwkJdG1lbnUgVG9vbEJhci5TYXZlCURvc3lhIEtheWRldAorCQl0bWVudSBUb29sQmFyLlNhdmVBbGwJVPxtIERvc3lhbGFy/SBLYXlkZXQKKwkJdG1lbnUgVG9vbEJhci5QcmludAlZYXpk/XIKKwkJdG1lbnUgVG9vbEJhci5VbmRvCUdlcmkgQWwKKwkJdG1lbnUgVG9vbEJhci5SZWRvCVlpbmVsZQorCQl0bWVudSBUb29sQmFyLkN1dAlLZXMKKwkJdG1lbnUgVG9vbEJhci5Db3B5CUtvcHlhbGEKKwkJdG1lbnUgVG9vbEJhci5QYXN0ZQlZYXD9/nT9cgorCQl0bWVudSBUb29sQmFyLkZpbmQJQnVsLi4uCisJCXRtZW51IFRvb2xCYXIuRmluZE5leHQJU29ucmFraW5pIEJ1bAorCQl0bWVudSBUb29sQmFyLkZpbmRQcmV2CdZuY2VraW5pIEJ1bAorCQl0bWVudSBUb29sQmFyLlJlcGxhY2UJQnVsIHZlIERl8Gn+dGlyLi4uCisJCWlmIDAJIiBkaXNhYmxlZDsgVGhlc2UgYXJlIGluIHRoZSBXaW5kb3dzIG1lbnUKKwkJCXRtZW51IFRvb2xCYXIuTmV3CVllbmkgUGVuY2VyZQorCQkJdG1lbnUgVG9vbEJhci5XaW5TcGxpdAlQZW5jZXJleWkgQvZsCisJCQl0bWVudSBUb29sQmFyLldpbk1heAlFbiBC/Hn8ayBQZW5jZXJlIFn8a3Nla2xp8GkKKwkJCXRtZW51IFRvb2xCYXIuV2luTWluCUVuIEv85/xrIFBlbmNlcmUgWfxrc2VrbGnwaQorCQkJdG1lbnUgVG9vbEJhci5XaW5DbG9zZQlQZW5jZXJleWkgS2FwYXQKKwkJZW5kaWYKKwkJdG1lbnUgVG9vbEJhci5Mb2FkU2VzbglPdHVydW0gWfxrbGUKKwkJdG1lbnUgVG9vbEJhci5TYXZlU2VzbglPdHVydW0gS2F5ZGV0CisJCXRtZW51IFRvb2xCYXIuUnVuU2NyaXB0CUJldGlrIMdhbP3+dP1yCisJCXRtZW51IFRvb2xCYXIuTWFrZQlEZXJsZQorCQl0bWVudSBUb29sQmFyLlNoZWxsCUthYnVrCisJCXRtZW51IFRvb2xCYXIuUnVuQ3RhZ3MJRXRpa2V0IERvc3lhc/0gT2x1/nR1cgorCQl0bWVudSBUb29sQmFyLlRhZ0p1bXAJRXRpa2V0ZSBBdGxhCisJCXRtZW51IFRvb2xCYXIuSGVscAlZYXJk/W0KKwkJdG1lbnUgVG9vbEJhci5GaW5kSGVscAlZYXJk/W0gQnVsCisJZW5kZnVuCitlbmRpZgorCisiIERpYWxvZyB0ZXh0cworIiBGaW5kIGluIGhlbHAgZGlhbG9nCitsZXQgZzptZW51dHJhbnNfaGVscF9kaWFsb2cgPSAiWWFyZP1tIGnnaW4ga29tdXQgdmV5YSBz9npj/GsgZ2lyaW46XG5cbkVrbGVtZSBLaXBpIGtvbXV0bGFy/W79IGFyYW1hayBp52luIGlfIGVrbGV5aW4gKPZybmXwaW4gaV9DVFJMLVgpXG5Ob3JtYWwgS2lwIGtvbXV0bGFy/W79IGFyYW1hayBp52luIF9jIGVrbGV5aW4gKPZybmXwaW4gY188RGVsPilcblNl52VuZWtsZXIgaGFra/1uZGEgeWFyZP1tIGFsbWFrIGnnaW4gJyBla2xleWluICj2cm5l8GluICdzaGlmdHdpZHRoJykiCisKKyIgU2VhcmggcGF0aCBkaWFsb2cKK2xldCBnOm1lbnV0cmFuc19wYXRoX2RpYWxvZyA9ICJEb3N5YSBhcmFtYXP9IGnnaW4geW9sIGJlbGlydGluLlxuRGl6aW4gYWRsYXL9IHZpcmf8bGxlcmxlIGF5cv1s/XIuIgorCisiIFRhZyBmaWxlcyBkaWFsb2cKK2xldCBnOm1lbnV0cmFuc190YWdzX2RpYWxvZyA9ICJFdGlrZXQgZG9zeWFz/SBhZGxhcv0gYmVsaXJ0aW4gKHZpcmf8bGxlIGF5/XJhcmFrKS5cbiIKKworIiBUZXh0IHdpZHRoIGRpYWxvZworbGV0IGc6bWVudXRyYW5zX3RleHR3aWR0aF9kaWFsb2cgPSAiQmnnaW1sZW5kaXJtZSBp52luIG1ldGluIGdlbmn+bGnwaW5pIGJlbGlydGluLlxuQmnnaW1sZW5kaXJtZSBpcHRhbGkgaedpbiAwIGdpcmluLiIKKworIiBGaWxlIGZvcm1hdCBkaWFsb2cKK2xldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2RpYWxvZyA9ICJEb3N5YSBiaedpbWkgc2XnaW4iCitsZXQgZzptZW51dHJhbnNfZmlsZWZvcm1hdF9jaG9pY2VzID0gIiZVbml4XG4mRG9zXG4mTWFjXG7dJnB0YWwiCitsZXQgbWVudXRyYW5zX25vX2ZpbGUgPSAiW0Rvc3lhIFlva10iCitsZXQgJmNwbyA9IHM6a2VlcGNwbwordW5sZXQgczprZWVwY3BvCmRpZmYgLS1naXQgYS9ydW50aW1lL2xhbmcvbWVudV90cl90ci5pc29fODg1OS05LnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X3RyX3RyLmlzb184ODU5LTkudmltCmluZGV4IDlmNTkyNTguLjNlMDFjMGMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbGFuZy9tZW51X3RyX3RyLmlzb184ODU5LTkudmltCisrKyBiL3J1bnRpbWUvbGFuZy9tZW51X3RyX3RyLmlzb184ODU5LTkudmltCkBAIC0xLDMzMSArMSwzMDggQEAKICIgTWVudSBUcmFuc2xhdGlvbnM6CVR1cmtpc2gKLSIgTWFpbnRhaW5lcjoJCQlFbWlyIFNBUkkgPGJpdGlnY2hpQG1lLmNvbT4KKyIgTWFpbnRhaW5lcjoJCUVtaXIgU0FSSSA8Yml0aWdjaGlAbWUuY29tPgogCiBpZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKICAgIGZpbmlzaAogZW5kaWYKKwogbGV0IGRpZF9tZW51X3RyYW5zID0gMQogbGV0IHM6a2VlcGNwbz0gJmNwbwogc2V0IGNwbyZ2aW0KLQogc2NyaXB0ZW5jb2RpbmcgaXNvLTg4NTktOQogCiAiIFRvcAotbWVudXRyYW5zICZGaWxlCQkJCSZEb3N5YQotbWVudXRyYW5zICZFZGl0CQkJCUTDg8K8JnplbgotbWVudXRyYW5zICZUb29scwkJCSZBcmHDg8KnbGFyCi1tZW51dHJhbnMgJlN5bnRheAkJCSZTw4PCtnpkaXppbQotbWVudXRyYW5zICZCdWZmZXJzCQkJQSZyYWJlbGxla2xlcgotbWVudXRyYW5zICZXaW5kb3cJCQkmUGVuY2VyZQotbWVudXRyYW5zICZIZWxwCQkJCSZZYXJkw4TCsW0KLQorbWVudXRyYW5zICZGaWxlCQkmRG9zeWEKK21lbnV0cmFucyAmRWRpdAkJRPwmemVuCittZW51dHJhbnMgJlRvb2xzCSZBcmHnbGFyCittZW51dHJhbnMgJlN5bnRheAkmU/Z6ZGl6aW0KK21lbnV0cmFucyAmQnVmZmVycwlBJnJhYmVsbGVrbGVyCittZW51dHJhbnMgJldpbmRvdwkmUGVuY2VyZQorbWVudXRyYW5zICZIZWxwCQkmWWFyZP1tCiAKICIgSGVscCBtZW51Ci1tZW51dHJhbnMgJk92ZXJ2aWV3PFRhYj48RjE+CSZHZW5lbFwgQmFrw4TCscOFwp88VGFiPjxGMT4KLW1lbnV0cmFucyAmVXNlclwgTWFudWFsCQkJJkt1bGxhbsOEwrFtXCBLw4TCsWxhdnV6dQotbWVudXRyYW5zICZIb3ctVG9cIExpbmtzCQkmTmFzw4TCsWxcIFlhcMOEwrFsw4TCsXI/Ci1tZW51dHJhbnMgJkZpbmRcLlwuXC4JCQkmQnVsXC5cLlwuCittZW51dHJhbnMgJk92ZXJ2aWV3PFRhYj48RjE+CSZHZW5lbFwgQmFr/f48VGFiPjxGMT4KK21lbnV0cmFucyAmVXNlclwgTWFudWFsCQkmS3VsbGFu/W1cIEv9bGF2dXp1CittZW51dHJhbnMgJkhvdy1Ub1wgTGlua3MJJk5hc/1sXCBZYXD9bP1yPworbWVudXRyYW5zICZGaW5kXC5cLlwuCQkmQnVsXC5cLlwuCiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0KLW1lbnV0cmFucyAmQ3JlZGl0cwkJCSAgICAmVGXDhcKfZWtrw4PCvHJsZXIKLW1lbnV0cmFucyBDbyZweWluZwkJCSAgICAmRGHDhMKfw4TCsXTDhMKxbQotbWVudXRyYW5zICZTcG9uc29yL1JlZ2lzdGVyCQkmU3BvbnNvcmx1ay9LYXnDhMKxdAotbWVudXRyYW5zIE8mcnBoYW5zCQkJICAgICZZZXRpbWxlcgorbWVudXRyYW5zICZDcmVkaXRzCQkmVGX+ZWtr/HJsZXIKK21lbnV0cmFucyBDbyZweWluZwkJJkRh8P10/W0KK21lbnV0cmFucyAmU3BvbnNvci9SZWdpc3RlcgkmU3BvbnNvcmx1ay9LYXn9dAorbWVudXRyYW5zIE8mcnBoYW5zCQkmWWV0aW1sZXIKICItLS0tLS0tLS0tLS0tLS0tLS0tLQotbWVudXRyYW5zICZWZXJzaW9uCQkJICAgIFPDg8K8csODwrxtXCAmQmlsZ2lzaQotbWVudXRyYW5zICZBYm91dAkJCSAgICAmSGFra8OEwrFuZGEKLQorbWVudXRyYW5zICZWZXJzaW9uCVP8cvxtXCAmQmlsZ2lzaQorbWVudXRyYW5zICZBYm91dAkmSGFra/1uZGEKIAogIiBGaWxlIG1lbnUKLW1lbnV0cmFucyAmT3BlblwuXC5cLjxUYWI+OmUJCSAgICAmQcODwqdcLlwuXC48VGFiPjplCi1tZW51dHJhbnMgU3AmbGl0LU9wZW5cLlwuXC48VGFiPjpzcAkgICAgJlllbmlcIELDg8K2bMODwrxtZGVcIEHDg8KnXC5cLlwuPFRhYj46c3AKLW1lbnV0cmFucyBPcGVuXCBUYWJcLlwuXC48VGFiPjp0YWJuZXcJUyZla21lXCBBw4PCp1wuXC5cLjxUYWI+OnRhYm5ldwotbWVudXRyYW5zICZOZXc8VGFiPjplbmV3CQkgICAgICAgIFllbmlcICZTZWttZTxUYWI+OmVuZXcKLW1lbnV0cmFucyAmQ2xvc2U8VGFiPjpjbG9zZQkJICAgICAgICBLYSZwYXQ8VGFiPjpjbG9zZQorbWVudXRyYW5zICZPcGVuXC5cLlwuPFRhYj46ZQkJJkHnXC5cLlwuPFRhYj46ZQorbWVudXRyYW5zIFNwJmxpdC1PcGVuXC5cLlwuPFRhYj46c3AJJlllbmlcIEL2bPxtZGVcIEHnXC5cLlwuPFRhYj46c3AKK21lbnV0cmFucyBPcGVuXCBUYWJcLlwuXC48VGFiPjp0YWJuZXcJUyZla21lXCBB51wuXC5cLjxUYWI+OnRhYm5ldworbWVudXRyYW5zICZOZXc8VGFiPjplbmV3CQlZZW5pXCAmU2VrbWU8VGFiPjplbmV3CittZW51dHJhbnMgJkNsb3NlPFRhYj46Y2xvc2UJCUthJnBhdDxUYWI+OmNsb3NlCiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0KLW1lbnV0cmFucyAmU2F2ZTxUYWI+OncJCQkgICAgICAgIEthJnlkZXQ8VGFiPjp3Ci1tZW51dHJhbnMgU2F2ZVwgJkFzXC5cLlwuPFRhYj46c2F2CSAgICAmRmFya2zDhMKxIEtheWRldFwuXC5cLjxUYWI+OnNhdgorbWVudXRyYW5zICZTYXZlPFRhYj46dwkJCUtheWRlJnQ8VGFiPjp3CittZW51dHJhbnMgU2F2ZVwgJkFzXC5cLlwuPFRhYj46c2F2CSZGYXJrbP0gS2F5ZGV0XC5cLlwuPFRhYj46c2F2CiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0KLW1lbnV0cmFucyBTcGxpdFwgJkRpZmZcIFdpdGhcLlwuXC4JICAgIEthJnLDhcKfw4TCsWxhw4XCn3TDhMKxclwuXC5cLgotbWVudXRyYW5zIFNwbGl0XCBQYXRjaGVkXCAmQnlcLlwuXC4JICAgIFlhJm1hbGFyXCBEYWhpbFwgS2Fyw4XCn8OEwrFsYcOFwp90w4TCsXJcLlwuXC4KK21lbnV0cmFucyBTcGxpdFwgJkRpZmZcIFdpdGhcLlwuXC4JS2Emcv79bGH+dP1yXC5cLlwuCittZW51dHJhbnMgU3BsaXRcIFBhdGNoZWRcICZCeVwuXC5cLglZYSZtYWxhclwgRGFoaWxcIEthcv79bGH+dP1yXC5cLlwuCiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0KLW1lbnV0cmFucyAmUHJpbnQJCQkgICAgICAgICAgICBZYSZ6ZMOEwrFyCi1tZW51dHJhbnMgU2EmdmUtRXhpdDxUYWI+OndxYQkJICAgIEtheWRldFwgJnZlIMODwofDhMKxazxUYWI+OndxYQotbWVudXRyYW5zIEUmeGl0PFRhYj46cWEJCQkgICAgICAgIMODwofDhMKxJms8VGFiPjpxYQotCittZW51dHJhbnMgJlByaW50CQlZYSZ6ZP1yCittZW51dHJhbnMgU2EmdmUtRXhpdDxUYWI+OndxYQlLYXlkZXRcICZ2ZSDH/Ws8VGFiPjp3cWEKK21lbnV0cmFucyBFJnhpdDxUYWI+OnFhCQnH/SZrPFRhYj46cWEKIAogIiBFZGl0IG1lbnUKLW1lbnV0cmFucyAmVW5kbzxUYWI+dQkJCSZHZXJpXCBBbDxUYWI+dQotbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJCSZZaW5lbGU8VGFiPl5SCi1tZW51dHJhbnMgUmVwJmVhdDxUYWI+XC4JCVNvblwgS29tdXR1XCBZJmluZWxlPFRhYj5cLgorbWVudXRyYW5zICZVbmRvPFRhYj51CQkmR2VyaVwgQWw8VGFiPnUKK21lbnV0cmFucyAmUmVkbzxUYWI+XlIJCSZZaW5lbGU8VGFiPl5SCittZW51dHJhbnMgUmVwJmVhdDxUYWI+XC4JU29uXCBLb211dHVcIFkmaW5lbGU8VGFiPlwuCiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0KLW1lbnV0cmFucyBDdSZ0PFRhYj4iK3gJCQkmS2VzPFRhYj4iK3gKLW1lbnV0cmFucyAmQ29weTxUYWI+Iit5CQkJSyZvcHlhbGE8VGFiPiIreQotbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAkJWWEmcMOEwrHDhcKfdMOEwrFyPFRhYj4iK2dQCi1tZW51dHJhbnMgUHV0XCAmQmVmb3JlPFRhYj5bcAnDg8KWJm7Dg8K8bmUgS295PFRhYj5bcAotbWVudXRyYW5zIFB1dFwgJkFmdGVyPFRhYj5dcAlBJnJrYXPDhMKxbmEgS295PFRhYj5dcAotbWVudXRyYW5zICZEZWxldGU8VGFiPngJCQlTaSZsPFRhYj54Ci1tZW51dHJhbnMgJlNlbGVjdFwgQWxsPFRhYj5nZ1ZHCVTDg8K8Jm3Dg8K8bsODwrxcIFNlw4PCpzxUYWI+Z2dWRworbWVudXRyYW5zIEN1JnQ8VGFiPiIreAkJJktlczxUYWI+Iit4CittZW51dHJhbnMgJkNvcHk8VGFiPiIreQkJSyZvcHlhbGE8VGFiPiIreQorbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAlZYSZw/f50/XI8VGFiPiIrZ1AKK21lbnV0cmFucyBQdXRcICZCZWZvcmU8VGFiPltwCdYmbvxuZSBLb3k8VGFiPltwCittZW51dHJhbnMgUHV0XCAmQWZ0ZXI8VGFiPl1wCUEmcmthc/1uYSBLb3k8VGFiPl1wCittZW51dHJhbnMgJkRlbGV0ZTxUYWI+eAkJU2kmbDxUYWI+eAorbWVudXRyYW5zICZTZWxlY3RcIEFsbDxUYWI+Z2dWRwlU/CZt/G78XCBTZec8VGFiPmdnVkcKICItLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBBdGhlbmEgR1VJIG9ubHkKLW1lbnV0cmFucyAmRmluZDxUYWI+LwkJCSAgICAgICAgICAgICZCdWw8VGFiPi8KLW1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlPFRhYj46JXMJICAgIEJ1bFwgJnZlXCBEZcOEwp9pw4XCn3RpcjxUYWI+OiVzCittZW51dHJhbnMgJkZpbmQ8VGFiPi8JCQkmQnVsPFRhYj4vCittZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZTxUYWI+OiVzCUJ1bFwgJnZlXCBEZfBp/nRpcjxUYWI+OiVzCiAiIEVuZCBBdGhlbmEgR1VJIG9ubHkKLW1lbnV0cmFucyAmRmluZFwuXC5cLjxUYWI+LwkJICAgICAgICAgICAgJkJ1bFwuXC5cLjxUYWI+LwotbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC4JICAgICAgICBCdWxcIHZlXCAmRGXDhMKfacOFwp90aXJcLlwuXC4KLW1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuPFRhYj46JXMJQnVsXCB2ZVwgJkRlw4TCn2nDhcKfdGlyXC5cLlwuPFRhYj46JXMKLW1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuPFRhYj46cwlCdWxcIHZlXCAmRGXDhMKfacOFwp90aXJcLlwuXC48VGFiPjpzCittZW51dHJhbnMgJkZpbmRcLlwuXC48VGFiPi8JCSZCdWxcLlwuXC48VGFiPi8KK21lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuCUJ1bFwgdmVcICZEZfBp/nRpclwuXC5cLgorbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC48VGFiPjolcwlCdWxcIHZlXCAmRGXwaf50aXJcLlwuXC48VGFiPjolcworbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC48VGFiPjpzCUJ1bFwgdmVcICZEZfBp/nRpclwuXC5cLjxUYWI+OnMKICItLS0tLS0tLS0tLS0tLS0tLS0tLQotbWVudXRyYW5zIFNldHRpbmdzXCAmV2luZG93CQkmQXlhcmxhclwgUGVuY2VyZXNpCi1tZW51dHJhbnMgU3RhcnR1cFwgJlNldHRpbmdzCUJhw4XCn2xhbiZnw4TCscODwqdcIEF5YXJsYXLDhMKxCi1tZW51dHJhbnMgJkdsb2JhbFwgU2V0dGluZ3MJCUdlJm5lbFwgQXlhcmxhcgotbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkJJkRvc3lhXCBBeWFybGFyw4TCsQotbWVudXRyYW5zIEMmb2xvclwgU2NoZW1lCQkmUmVua1wgRMODwrx6ZW5pCi1tZW51dHJhbnMgJktleW1hcAkJCSAgICBEw4PCvMOEwp9tZVwgJkXDhcKfbGVtCi1tZW51dHJhbnMgU2VsZWN0XCBGbyZudFwuXC5cLglZYSZ6w4TCsXRpcGkgU2XDg8KnXC5cLlwuCittZW51dHJhbnMgU2V0dGluZ3NcICZXaW5kb3cJJkF5YXJsYXJcIFBlbmNlcmVzaQorbWVudXRyYW5zIFN0YXJ0dXBcICZTZXR0aW5ncwlCYf5sYW4mZ/3nXCBBeWFybGFy/QorbWVudXRyYW5zICZHbG9iYWxcIFNldHRpbmdzCUdlJm5lbFwgQXlhcmxhcgorbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkmRG9zeWFcIEF5YXJsYXL9CittZW51dHJhbnMgQyZvbG9yXCBTY2hlbWUJJlJlbmtcIET8emVuaQorbWVudXRyYW5zICZLZXltYXAJCUT88G1lXCAmRf5sZW0KK21lbnV0cmFucyBTZWxlY3RcIEZvJm50XC5cLlwuCVlhJnr9dGlwaSBTZedcLlwuXC4KKwogIj4+Pi0tLS0tLS0tLS0tLS0tLS0tIEVkaXQvR2xvYmFsIHNldHRpbmdzCi1tZW51dHJhbnMgVG9nZ2xlXCBQYXR0ZXJuXCAmSGlnaGxpZ2h0PFRhYj46c2V0XCBobHMhICAgICAgICBEaXpnaVwgJlZ1cmd1bGFtYXPDhMKxbsOEwrFcIEHDg8KnL0thcGF0PFRhYj46c2V0XCBobHMhCi1tZW51dHJhbnMgVG9nZ2xlXCAmSWdub3JpbmdcIENhc2U8VGFiPjpzZXRcIGljIQkJICAgICAgICBCw4PCnFnDg8KcSy9rw4PCvMODwqfDg8K8a1wgSGFyZlwgJkR1eWFyc8OEwrF6XCBBw4PCpy9LYXBhdDxUYWI+OnNldFwgaWMhCi1tZW51dHJhbnMgVG9nZ2xlXCAmU2hvd2luZ1wgTWF0Y2hlZFwgUGFpcnM8VGFiPjpzZXRcIHNtIQlFw4XCnyZsZcOFwp9lblwgw4TCsGtpbGlsZXJpXCBBw4PCpy9LYXBhdDxUYWI+OnNldFwgc20hCi1tZW51dHJhbnMgJkNvbnRleHRcIExpbmVzCQkJCSAgICAgICAgICAgICAgICAgICAgw4TCsCZtbGXDg8KnbGVcIE95bmF5YW5cIFNhdMOEwrFybGFyCi1tZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQJCQkJICAgICAgICAgICAgICAgICAgICAmU2FuYWxcIETDg8K8emVubGVtZQotbWVudXRyYW5zIFRvZ2dsZVwgSW5zZXJ0XCAmTW9kZTxUYWI+OnNldFwgaW0hCQkgICAgICAgIEVrbGVtZVwgJktpcGluaVwgQcODwqcvS2FwYXQ8VGFiPjpzZXRcIGltIQotbWVudXRyYW5zIFRvZ2dsZVwgVmlcIEMmb21wYXRpYmlsaXR5PFRhYj46c2V0XCBjcCEJCSAgICAmVmlcIFV5dW1sdVwgS2lwaVwgQcODwqcvS2FwYXQ8VGFiPjpzZXRcIGNwIQotbWVudXRyYW5zIFNlYXJjaFwgJlBhdGhcLlwuXC4JCQkJICAgICAgICAgICAgICAgICZBcmFtYVwgWW9sdVwuXC5cLgotbWVudXRyYW5zIFRhJmdcIEZpbGVzXC5cLlwuCQkJCSAgICAgICAgICAgICAgICAgICAgJkV0aWtldFwgRG9zeWFsYXLDhMKxXC5cLlwuCittZW51dHJhbnMgVG9nZ2xlXCBQYXR0ZXJuXCAmSGlnaGxpZ2h0PFRhYj46c2V0XCBobHMhCQlEaXpnaVwgJlZ1cmd1bGFtYXP9bv1cIEHnL0thcGF0PFRhYj46c2V0XCBobHMhCittZW51dHJhbnMgVG9nZ2xlXCAmSWdub3JpbmdcIENhc2U8VGFiPjpzZXRcIGljIQkJIAlC3FncSy9r/Of8a1wgSGFyZlwgJkR1eWFybP1cIEHnL0thcGF0PFRhYj46c2V0XCBpYyEKK21lbnV0cmFucyBUb2dnbGVcICZTaG93aW5nXCBNYXRjaGVkXCBQYWlyczxUYWI+OnNldFwgc20hCUX+Jmxl/mVuXCDda2lsaWxlcmlcIEHnL0thcGF0PFRhYj46c2V0XCBzbSEKK21lbnV0cmFucyAmQ29udGV4dFwgTGluZXMJCQkJCd0mbWxl52xlXCBPeW5heWFuXCBTYXT9cmxhcgorbWVudXRyYW5zICZWaXJ0dWFsXCBFZGl0CQkJCQkmU2FuYWxcIET8emVubGVtZQorbWVudXRyYW5zIFRvZ2dsZVwgSW5zZXJ0XCAmTW9kZTxUYWI+OnNldFwgaW0hCQkJRWtsZW1lXCAmS2lwaW5pXCBB5y9LYXBhdDxUYWI+OnNldFwgaW0hCittZW51dHJhbnMgVG9nZ2xlXCBWaVwgQyZvbXBhdGliaWxpdHk8VGFiPjpzZXRcIGNwIQkJJlZpXCBVeXVtbHVcIEtpcGlcIEHnL0thcGF0PFRhYj46c2V0XCBjcCEKK21lbnV0cmFucyBTZWFyY2hcICZQYXRoXC5cLlwuCQkJCQkmQXJhbWFcIFlvbHVcLlwuXC4KK21lbnV0cmFucyBUYSZnXCBGaWxlc1wuXC5cLgkJCQkJJkV0aWtldFwgRG9zeWFsYXL9XC5cLlwuCiAiCi1tZW51dHJhbnMgVG9nZ2xlXCAmVG9vbGJhcgkJCQkgICAgJkFyYcODwqdcIMODwod1YnXDhMKfdW51XCBBw4PCpy9LYXBhdAotbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyCQlBJmx0XCBLYXlkw4TCsXJtYVwgw4PCh3VidcOEwp91bnVcIEHDg8KnL0thcGF0Ci1tZW51dHJhbnMgVG9nZ2xlXCAmTGVmdFwgU2Nyb2xsYmFyCQkJJlNvbFwgS2F5ZMOEwrFybWFcIMODwod1YnXDhMKfdW51XCBBw4PCpy9LYXBhdAotbWVudXRyYW5zIFRvZ2dsZVwgJlJpZ2h0XCBTY3JvbGxiYXIJCSAgICBTJmHDhMKfXCBLYXlkw4TCsXJtYVwgw4PCh3VidcOEwp91bnVcIEHDg8KnL0thcGF0ICAJCittZW51dHJhbnMgVG9nZ2xlXCAmVG9vbGJhcgkJJkFyYedcIMd1YnXwdW51XCBB5y9LYXBhdAorbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyCUEmbHRcIEtheWT9cm1hXCDHdWJ18HVudVwgQecvS2FwYXQKK21lbnV0cmFucyBUb2dnbGVcICZMZWZ0XCBTY3JvbGxiYXIJJlNvbFwgS2F5ZP1ybWFcIMd1YnXwdW51XCBB5y9LYXBhdAorbWVudXRyYW5zIFRvZ2dsZVwgJlJpZ2h0XCBTY3JvbGxiYXIJUyZh8FwgS2F5ZP1ybWFcIMd1YnXwdW51XCBB5y9LYXBhdAorCiAiPj4+LT4+Pi0tLS0tLS0tLS0tLS0gRWRpdC9HbG9iYWwgc2V0dGluZ3MvVmlydHVhbCBlZGl0Ci1tZW51dHJhbnMgTmV2ZXIJCQkJCUthcGFsw4TCsQotbWVudXRyYW5zIEJsb2NrXCBTZWxlY3Rpb24JCUJsb2tcIFNlw4PCp2ltaQotbWVudXRyYW5zIEluc2VydFwgTW9kZQkJCUVrbGVtZVwgS2lwaQotbWVudXRyYW5zIEJsb2NrXCBhbmRcIEluc2VydAlCbG9rXCBTZcODwqdpbWluZGVcIHZlXCBFa2xlbWVcIEtpcGluZGUKLW1lbnV0cmFucyBBbHdheXMJCQkJSGVyXCBaYW1hblwgQcODwqfDhMKxaworbWVudXRyYW5zIE5ldmVyCQkJS2FwYWz9CittZW51dHJhbnMgQmxvY2tcIFNlbGVjdGlvbglCbG9rXCBTZedpbWkKK21lbnV0cmFucyBJbnNlcnRcIE1vZGUJCUVrbGVtZVwgS2lwaQorbWVudXRyYW5zIEJsb2NrXCBhbmRcIEluc2VydAlCbG9rXCBTZedpbWluZGVcIHZlXCBFa2xlbWVcIEtpcGluZGUKK21lbnV0cmFucyBBbHdheXMJCQkJSGVyXCBaYW1hblwgQef9awogIj4+Pi0tLS0tLS0tLS0tLS0tLS0tIEVkaXQvRmlsZSBzZXR0aW5ncwotbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJk51bWJlcmluZzxUYWI+OnNldFwgbnUhCSAgICAgICAgJlNhdMOEwrFyXCBOdW1hcmFsYW5kw4TCsXJtYXnDhMKxXCBBw4PCpy9LYXBhdDxUYWI+OnNldFwgbnUhCi1tZW51dHJhbnMgVG9nZ2xlXCBSZWxhdGkmdmVcIExpbmVcIE51bWJlcmluZzxUYWI+OnNldFwgcm51IQkmR8ODwrZyZWNlbGlcIFNhdMOEwrFyXCBOdW1hcmFsYW5kw4TCsXJtYXnDhMKxXCBBw4PCpy9LYXBhdDxUYWI+OnNldFwgbnJ1IQotbWVudXRyYW5zIFRvZ2dsZVwgJkxpc3RcIE1vZGU8VGFiPjpzZXRcIGxpc3QhCQkgICAgICAgIEfDg8K2JnLDg8K8bm1leWVuXCBLYXJha3RlcmxlcmlcIEHDg8KnL0thcGF0PFRhYj46c2V0XCBsaXN0IQotbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJldyYXBwaW5nPFRhYj46c2V0XCB3cmFwIQkgICAgICAgIFNhJnTDhMKxclwgS2F5ZMOEwrFybWF5w4TCsVwgQcODwqcvS2FwYXQ8VGFiPjpzZXRcIHdyYXAhCi1tZW51dHJhbnMgVG9nZ2xlXCBXJnJhcHBpbmdcIGF0XCBXb3JkPFRhYj46c2V0XCBsYnIhCSAgICBTw4PCtiZ6Y8ODwrxrXCBLYXlkw4TCsXJtYXnDhMKxXCBBw4PCpy9LYXBhdDxUYWI+OnNldFwgbGJyIQotbWVudXRyYW5zIFRvZ2dsZVwgVGFiXCAmRXhwYW5kaW5nLXRhYjxUYWI+OnNldFwgZXQhCSAgICAgICAgUyZla21lbGVyaVwgQm/DhcKfbHVrbGFyYVwgRMODwrZuw4PCvMOFwp90w4PCvHJtZXlpXCBBw4PCpy9LYXBhdDxUYWI+OnNldFwgZXQhCi1tZW51dHJhbnMgVG9nZ2xlXCAmQXV0b1wgSW5kZW50aW5nPFRhYj46c2V0XCBhaSEJICAgICAgICAmT3RvbWF0aWtcIEdpcmludGlsZW1leWlcIEHDg8KnL0thcGF0PFRhYj46c2V0XCBhaSEKLW1lbnV0cmFucyBUb2dnbGVcICZDLVN0eWxlXCBJbmRlbnRpbmc8VGFiPjpzZXRcIGNpbiEJICAgICZDXCBUYXJ6w4TCsVwgR2lyaW50aWxlbWV5aVwgQcODwqcvS2FwYXQ8VGFiPjpzZXRcIGNpbiEKK21lbnV0cmFucyBUb2dnbGVcIExpbmVcICZOdW1iZXJpbmc8VGFiPjpzZXRcIG51IQkJJlNhdP1yXCBOdW1hcmFsYW5k/XJtYXn9XCBB5y9LYXBhdDxUYWI+OnNldFwgbnUhCittZW51dHJhbnMgVG9nZ2xlXCBSZWxhdGkmdmVcIExpbmVcIE51bWJlcmluZzxUYWI+OnNldFwgcm51IQkmR/ZyZWNlbGlcIFNhdP1yXCBOdW1hcmFsYW5k/XJtYXn9XCBB5y9LYXBhdDxUYWI+OnNldFwgbnJ1IQorbWVudXRyYW5zIFRvZ2dsZVwgJkxpc3RcIE1vZGU8VGFiPjpzZXRcIGxpc3QhCQkJR/YmcvxubWV5ZW5cIEthcmFrdGVybGVyaVwgQecvS2FwYXQ8VGFiPjpzZXRcIGxpc3QhCittZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmV3JhcHBpbmc8VGFiPjpzZXRcIHdyYXAhCQlTYSZ0/XJcIEtheWT9cm1hef1cIEHnL0thcGF0PFRhYj46c2V0XCB3cmFwIQorbWVudXRyYW5zIFRvZ2dsZVwgVyZyYXBwaW5nXCBhdFwgV29yZDxUYWI+OnNldFwgbGJyIQkJU/YmemP8a1wgS2F5ZP1ybWF5/VwgQecvS2FwYXQ8VGFiPjpzZXRcIGxiciEKK21lbnV0cmFucyBUb2dnbGVcIFRhYlwgJkV4cGFuZGluZy10YWI8VGFiPjpzZXRcIGV0IQkJUyZla21lbGVyaVwgQm/+bHVrbGFyYVwgRPZu/P50/HJtZXlpXCBB5y9LYXBhdDxUYWI+OnNldFwgZXQhCittZW51dHJhbnMgVG9nZ2xlXCAmQXV0b1wgSW5kZW50aW5nPFRhYj46c2V0XCBhaSEJCSZPdG9tYXRpa1wgR2lyaW50aWxlbWV5aVwgQecvS2FwYXQ8VGFiPjpzZXRcIGFpIQorbWVudXRyYW5zIFRvZ2dsZVwgJkMtU3R5bGVcIEluZGVudGluZzxUYWI+OnNldFwgY2luIQkJJkNcIFRhcnr9XCBHaXJpbnRpbGVtZXlpXCBB5y9LYXBhdDxUYWI+OnNldFwgY2luIQogIj4+Pi0tLQotbWVudXRyYW5zICZTaGlmdHdpZHRoCQkJJkdpcmludGlcIETDg8K8emV5aQotbWVudXRyYW5zIFNvZnRcICZUYWJzdG9wCQkmU2VrbWVcIEdlbmnDhcKfbGnDhMKfaQotbWVudXRyYW5zIFRlJnh0XCBXaWR0aFwuXC5cLgkmTWV0aW5cIEdlbmnDhcKfbGnDhMKfaVwuXC5cLgotbWVudXRyYW5zICZGaWxlXCBGb3JtYXRcLlwuXC4JJkRvc3lhXCBCacODwqdpbWlcLlwuXC4KLSIKLSIKLSIKK21lbnV0cmFucyAmU2hpZnR3aWR0aAkJJkdpcmludGlcIET8emV5aQorbWVudXRyYW5zIFNvZnRcICZUYWJzdG9wCSZTZWttZVwgR2Vuaf5safBpCittZW51dHJhbnMgVGUmeHRcIFdpZHRoXC5cLlwuCSZNZXRpblwgR2Vuaf5safBpXC5cLlwuCittZW51dHJhbnMgJkZpbGVcIEZvcm1hdFwuXC5cLgkmRG9zeWFcIEJp52ltaVwuXC5cLgorCiAiIFRvb2xzIG1lbnUKLW1lbnV0cmFucyAmSnVtcFwgdG9cIFRoaXNcIFRhZzxUYWI+Z15dCQnDhcKeJnVcIEV0aWtldGVcIEF0bGE8VGFiPmdeXQotbWVudXRyYW5zIEp1bXBcICZCYWNrPFRhYj5eVAkJCQkmR2VyaVwgRMODwrZuPFRhYj5eVAotbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkJCQkmRXRpa2V0XCBEb3N5YXPDhMKxXCBPbHXDhcKfdHVyCittZW51dHJhbnMgJkp1bXBcIHRvXCBUaGlzXCBUYWc8VGFiPmdeXQneJnVcIEV0aWtldGVcIEF0bGE8VGFiPmdeXQorbWVudXRyYW5zIEp1bXBcICZCYWNrPFRhYj5eVAkJJkdlcmlcIET2bjxUYWI+XlQKK21lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJCSZFdGlrZXRcIERvc3lhc/1cIE9sdf50dXIKICItLS0tLS0tLS0tLS0tLS0tLS0tCi1tZW51dHJhbnMgJkZvbGRpbmcJCQkJCSZLw4TCsXbDhMKxcm1hbGFyCi1tZW51dHJhbnMgJlNwZWxsaW5nCQkJCQkmWWF6w4TCsW1cIERlbmV0aW1pCi1tZW51dHJhbnMgJkRpZmYJCQkJCQkmQXlyw4TCsW1sYXJcIChkaWZmKQorbWVudXRyYW5zICZGb2xkaW5nCSZL/Xb9cm1hbGFyCittZW51dHJhbnMgJlNwZWxsaW5nCSZZYXr9bVwgRGVuZXRpbWkKK21lbnV0cmFucyAmRGlmZgkJJkF5cv1tbGFyXCAoZGlmZikKICItLS0tLS0tLS0tLS0tLS0tLS0tCi1tZW51dHJhbnMgJk1ha2U8VGFiPjptYWtlCQkJCQkJJkRlcmxlPFRhYj46bWFrZQotbWVudXRyYW5zICZMaXN0XCBFcnJvcnM8VGFiPjpjbAkJCQkJJkhhdGFsYXLDhMKxXCBMaXN0ZWxlPFRhYj46Y2wKLW1lbnV0cmFucyBMJmlzdFwgTWVzc2FnZXM8VGFiPjpjbCEJCQkJw4TCsCZsZXRpbGVyaVwgTGlzdGVsZTxUYWI+OmNsIQotbWVudXRyYW5zICZOZXh0XCBFcnJvcjxUYWI+OmNuCQkJCQlCaXJcICZTb25yYWtpXCBIYXRhPFRhYj46Y24KLW1lbnV0cmFucyAmUHJldmlvdXNcIEVycm9yPFRhYj46Y3AJCQkJQmlyXCDDg8KWJm5jZWtpXCBIYXRhPFRhYj46Y3AKLW1lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkCQkJCURhaGFcICZFc2tpXCBIYXRhbGFyPFRhYj46Y29sZAotbWVudXRyYW5zIE4mZXdlclwgTGlzdDxUYWI+OmNuZXcJCQkJRGFoYVwgJlllbmlcIEhhdGFsYXI8VGFiPjpjbmV3Ci1tZW51dHJhbnMgRXJyb3JcICZXaW5kb3cJCQkJCQlIYXRhbGFyXCAmUGVuY2VyZXNpCi1tZW51dHJhbnMgU2UmdFwgQ29tcGlsZXIJCQkJCQlEZSZybGV5aWNpXCBTZcODwqcKLW1lbnV0cmFucyBTaG93XCBDb21waWxlclwgU2UmdHRpbmdzXCBpblwgTWVudQlEZXJsZXlpY2lcIEF5YXJsYXLDhMKxbsOEwrFcIE1lbsODwrxkZVwgJkfDg8K2c3RlciAKK21lbnV0cmFucyAmTWFrZTxUYWI+Om1ha2UJCQkmRGVybGU8VGFiPjptYWtlCittZW51dHJhbnMgJkxpc3RcIEVycm9yczxUYWI+OmNsCQkJJkhhdGFsYXL9XCBMaXN0ZWxlPFRhYj46Y2wKK21lbnV0cmFucyBMJmlzdFwgTWVzc2FnZXM8VGFiPjpjbCEJCd0mbGV0aWxlcmlcIExpc3RlbGU8VGFiPjpjbCEKK21lbnV0cmFucyAmTmV4dFwgRXJyb3I8VGFiPjpjbgkJCUJpclwgJlNvbnJha2lcIEhhdGE8VGFiPjpjbgorbWVudXRyYW5zICZQcmV2aW91c1wgRXJyb3I8VGFiPjpjcAkJQmlyXCDWJm5jZWtpXCBIYXRhPFRhYj46Y3AKK21lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkCQlEYWhhXCAmRXNraVwgSGF0YWxhcjxUYWI+OmNvbGQKK21lbnV0cmFucyBOJmV3ZXJcIExpc3Q8VGFiPjpjbmV3CQlEYWhhXCAmWWVuaVwgSGF0YWxhcjxUYWI+OmNuZXcKK21lbnV0cmFucyBFcnJvclwgJldpbmRvdwkJCUhhdGFsYXJcICZQZW5jZXJlc2kKK21lbnV0cmFucyBTZSZ0XCBDb21waWxlcgkJCURlJnJsZXlpY2lcIFNl5worbWVudXRyYW5zIFNob3dcIENvbXBpbGVyXCBTZSZ0dGluZ3NcIGluXCBNZW51CURlcmxleWljaVwgQXlhcmxhcv1u/VwgTWVu/GRlXCAmR/ZzdGVyIAogIi0tLS0tLS0tLS0tLS0tLS0tLS0KLW1lbnV0cmFucyAmQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCQkJSEVYJ2VcIETDg8K2Jm7Dg8K8w4XCn3TDg8K8cjxUYWI+OiUheHhkCi1tZW51dHJhbnMgQ29udmUmcnRcIEJhY2s8VGFiPjolIXh4ZFwgLXIJCQlIRVgnJnRlblwgRMODwrZuw4PCvMOFwp90w4PCvHI8VGFiPjolIXh4ZFwgLXIKK21lbnV0cmFucyAmQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCQlIRVgnZVwgRPYmbvz+dPxyPFRhYj46JSF4eGQKK21lbnV0cmFucyBDb252ZSZydFwgQmFjazxUYWI+OiUheHhkXCAtcgkJSEVYJyZ0ZW5cIET2bvz+dPxyPFRhYj46JSF4eGRcIC1yCiAiPj4+LS0tLS0tLS0tLS0tLS0tLSBUb29scy9TcGVsbGluZwotbWVudXRyYW5zICZTcGVsbFwgQ2hlY2tcIE9uCQkJCQkJWWF6w4TCsW1cIERlbmV0aW1pbmlcICZBw4PCpwotbWVudXRyYW5zIFNwZWxsXCBDaGVja1wgJk9mZgkJCQkJWWF6w4TCsW1cIERlbmV0aW1pbmlcICZLYXBhdAotbWVudXRyYW5zIFRvXCAmTmV4dFwgRXJyb3I8VGFiPl1zCQkJCUJpclwgJlNvbnJha2lcIEhhdGE8VGFiPl1zCi1tZW51dHJhbnMgVG9cICZQcmV2aW91c1wgRXJyb3I8VGFiPltzCQkJQmlyXCDDg8KWJm5jZWtpXCBIYXRhPFRhYj5bcwotbWVudXRyYW5zIFN1Z2dlc3RcICZDb3JyZWN0aW9uczxUYWI+ej0JCQlEw4PCvCZ6ZWx0bWVcIMODwpZuZXI8VGFiPno9Ci1tZW51dHJhbnMgJlJlcGVhdFwgQ29ycmVjdGlvbjxUYWI+OnNwZWxscmVwYWxsCUTDg8K8emVsdG1leWlcICZZaW5lbGU8VGFiPnNwZWxscmVwYWxsCittZW51dHJhbnMgJlNwZWxsXCBDaGVja1wgT24JCQlZYXr9bVwgRGVuZXRpbWluaVwgJkHnCittZW51dHJhbnMgU3BlbGxcIENoZWNrXCAmT2ZmCQkJWWF6/W1cIERlbmV0aW1pbmlcICZLYXBhdAorbWVudXRyYW5zIFRvXCAmTmV4dFwgRXJyb3I8VGFiPl1zCQlCaXJcICZTb25yYWtpXCBIYXRhPFRhYj5dcworbWVudXRyYW5zIFRvXCAmUHJldmlvdXNcIEVycm9yPFRhYj5bcwkJQmlyXCDWJm5jZWtpXCBIYXRhPFRhYj5bcworbWVudXRyYW5zIFN1Z2dlc3RcICZDb3JyZWN0aW9uczxUYWI+ej0JCUT8JnplbHRtZVwg1m5lcjxUYWI+ej0KK21lbnV0cmFucyAmUmVwZWF0XCBDb3JyZWN0aW9uPFRhYj46c3BlbGxyZXBhbGwJRPx6ZWx0bWV5aVwgJllpbmVsZTxUYWI+c3BlbGxyZXBhbGwKICItLS0tLS0tLS0tLS0tLS0tLS0tCi1tZW51dHJhbnMgU2V0XCBMYW5ndWFnZVwgdG9cICJlbiIJCURpbGlcICJlbiJcIHlhcAorbWVudXRyYW5zIFNldFwgTGFuZ3VhZ2VcIHRvXCAiZW4iCURpbGlcICJlbiJcIHlhcAogbWVudXRyYW5zIFNldFwgTGFuZ3VhZ2VcIHRvXCAiZW5fYXUiCURpbGlcICJlbl9hdSJcIHlhcAogbWVudXRyYW5zIFNldFwgTGFuZ3VhZ2VcIHRvXCAiZW5fY2EiCURpbGlcICJlbl9jYSJcIHlhcAogbWVudXRyYW5zIFNldFwgTGFuZ3VhZ2VcIHRvXCAiZW5fZ2IiCURpbGlcICJlbl9nYiJcIHlhcAogbWVudXRyYW5zIFNldFwgTGFuZ3VhZ2VcIHRvXCAiZW5fbnoiCURpbGlcICJlbl9ueiJcIHlhcAogbWVudXRyYW5zIFNldFwgTGFuZ3VhZ2VcIHRvXCAiZW5fdXMiCURpbGlcICJlbl91cyJcIHlhcAotbWVudXRyYW5zICZGaW5kXCBNb3JlXCBMYW5ndWFnZXMJCSZCYcOFwp9rYVwgRGlsbGVyXCBCdWwKLWxldCBnOm1lbnV0cmFuc19zZXRfbGFuZ190byA9CQkJJ0RpbCBZw4PCvGtsZScKLSIKLSIKLSIgVGhlIFNwZWxsaW5nIHBvcHVwIG1lbnUKLSIKLSIKLWxldCBnOm1lbnV0cmFuc19zcGVsbF9jaGFuZ2VfQVJHX3RvID0JCQknRMODwrx6ZWx0aWxlY2VrOlwgIiVzIlwgLT4nCi1sZXQgZzptZW51dHJhbnNfc3BlbGxfYWRkX0FSR190b193b3JkX2xpc3QgPQknIiVzIlwgc8ODwrZ6Y8ODwrzDhMKfw4PCvG7Dg8K8XCBzw4PCtnpsw4PCvMOEwp9lXCBla2xlJwotbGV0IGc6bWVudXRyYW5zX3NwZWxsX2lnbm9yZV9BUkcgPQkJCQknIiVzIlwgc8ODwrZ6Y8ODwrzDhMKfw4PCvG7Dg8K8XCB5b2tzYXknCi0iPj4+LS0tLS0tLS0tLS0tLS0tLSBGb2xkcwotbWVudXRyYW5zICZFbmFibGUvRGlzYWJsZVwgRm9sZHM8VGFiPnppCQkJJkvDhMKxdsOEwrFybWFsYXLDhMKxXCBBw4PCpy9LYXBhdDxUYWI+emkKLW1lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkJCcOEwrAmbWxlY2luXCBPbGR1w4TCn3VcIFNhdMOEwrFyw4TCsVwgR8ODwrZyw4PCvG50w4PCvGxlPFRhYj56dgotbWVudXRyYW5zIFZpZSZ3XCBDdXJzb3JcIExpbmVcIE9ubHk8VGFiPnpNengJWWEmbG7DhMKxemNhXCDDhMKwbWxlY2luXCBPbGR1w4TCn3VcIFNhdMOEwrFyw4TCsVwgR8ODwrZyw4PCvG50w4PCvGxlPFRhYj56TXp4Ci1tZW51dHJhbnMgQyZsb3NlXCBNb3JlXCBGb2xkczxUYWI+em0JCQkmRGFoYVwgRmF6bGFcIEvDhMKxdsOEwrFybWFcIEthcGF0PFRhYj56bQotbWVudXRyYW5zICZDbG9zZVwgQWxsXCBGb2xkczxUYWI+ek0JCQkJQsODwrx0w4PCvG5cIEvDhMKxJnbDhMKxcm1hbGFyw4TCsVwgS2FwYXQ8VGFiPnpNCi1tZW51dHJhbnMgJk9wZW5cIEFsbFwgRm9sZHM8VGFiPnpSCQkJCULDg8K8JnTDg8K8blwgS8OEwrF2w4TCsXJtYWxhcsOEwrFcIEHDg8KnPFRhYj56UgotbWVudXRyYW5zIE8mcGVuXCBNb3JlXCBGb2xkczxUYWI+enIJCQkJRCZhaGFcIEZhemxhXCBLw4TCsXbDhMKxcm1hXCBBw4PCpzxUYWI+enIKLW1lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkJCQkJCUvDhMKxdsOEwrEmcm1hXCBZw4PCtm50ZW1pCi1tZW51dHJhbnMgQ3JlYXRlXCAmRm9sZDxUYWI+emYJCQkJCUvDhMKxdsOEwrFybWFcICZPbHXDhcKfdHVyPFRhYj56ZgotbWVudXRyYW5zICZEZWxldGVcIEZvbGQ8VGFiPnpkCQkJCQlLw4TCsXbDhMKxcm1hXCAmU2lsPFRhYj56ZAotbWVudXRyYW5zIERlbGV0ZVwgJkFsbFwgRm9sZHM8VGFiPnpECQkJVMODwrwmbVwgS8OEwrF2w4TCsXJtYWxhcsOEwrFcIFNpbDxUYWI+ekQKLW1lbnV0cmFucyBGb2xkXCBjb2wmdW1uXCBXaWR0aAkJCQkJS8OEwrF2w4TCsXJtYVwgU8ODwrx0dW51XCAmR2VuacOFwp9sacOEwp9pCi0iPj4+LT4+Pi0tLS0tLS0tLS0tIFRvb2xzL0ZvbGRzL0ZvbGQgTWV0aG9kCi1tZW51dHJhbnMgTSZhbnVhbAkJJkVsXCDDhMKwbGUKLW1lbnV0cmFucyBJJm5kZW50CQkmR2lyaW50aQotbWVudXRyYW5zIEUmeHByZXNzaW9uCcOEwrAmZmFkZQotbWVudXRyYW5zIFMmeW50YXgJCSZTw4PCtnpkaXppbQotbWVudXRyYW5zIE1hJnJrZXIJCcOEwrAmbWxleWljaQotIj4+Pi0tLS0tLS0tLS0tLS0tLSBUb29scy9EaWZmCi1tZW51dHJhbnMgJlVwZGF0ZQkJJkfDg8K8bmNlbGxlCi1tZW51dHJhbnMgJkdldFwgQmxvY2sJQmxvw4TCn3VcICZBbAotbWVudXRyYW5zICZQdXRcIEJsb2NrCUJsb8OEwp91XCAmS295Ci0iPj4+LS0tLS0tLS0tLS0tLS0tIFRvb2xzL0RpZmYvRXJyb3Igd2luZG93Ci1tZW51dHJhbnMgJlVwZGF0ZTxUYWI+OmN3aW4JCSZHw4PCvG5jZWxsZTxUYWI+OmN3aW4KLW1lbnV0cmFucyAmQ2xvc2U8VGFiPjpjY2xvc2UJJkthcGF0PFRhYj46Y2Nsb3NlCi1tZW51dHJhbnMgJk9wZW48VGFiPjpjb3BlbgkJJkHDg8KnPFRhYj46Y29wZW4KLSIKLSIKLSIgU3ludGF4IG1lbnUKLSIKLW1lbnV0cmFucyAmU2hvd1wgRmlsZVwgVHlwZXNcIGluXCBNZW51CQlEb3N5YVwgVMODwrxybGVyaW5pXCBNZW7Dg8K8ZGVcICZHw4PCtnN0ZXIKLW1lbnV0cmFucyBTZXRcICcmc3ludGF4J1wgb25seQkJCQlZYWxuw4TCsXpjYVwgJ3N5bnRheCdcICZBeWFybGEKLW1lbnV0cmFucyBTZXRcICcmZmlsZXR5cGUnXCB0b28JCQkJJ2ZpbGV0eXBlJ1wgw4TCsMODwqdpblwgJmRlXCBBeWFybGEKLW1lbnV0cmFucyAmT2ZmCQkJCQkJCQkmS2FwYXQKLW1lbnV0cmFucyAmTWFudWFsCQkJCQkJCSZFbFwgw4TCsGxlCi1tZW51dHJhbnMgQSZ1dG9tYXRpYwkJCQkJCSZPdG9tYXRpawotbWVudXRyYW5zIE9uL09mZlwgZm9yXCAmVGhpc1wgRmlsZQkJCSZCdVwgRG9zeWFcIMOEwrDDg8KnaW5cIEHDg8KnL0thcGF0Ci1tZW51dHJhbnMgQ28mbG9yXCBUZXN0CQkJCQkJJlJlbmtcIFRlc3RpCi1tZW51dHJhbnMgJkhpZ2hsaWdodFwgVGVzdAkJCQkJJlZ1cmd1bGFtYVwgVGVzdGkKLW1lbnV0cmFucyAmQ29udmVydFwgdG9cIEhUTUwJCQkJJkhUTUwneWVcIETDg8K2bsODwrzDhcKfdMODwrxyCi0iCi0iCi0iIEJ1ZmZlcnMgbWVudQotIgotbWVudXRyYW5zICZSZWZyZXNoXCBtZW51CSZNZW7Dg8K8ecODwrxcIEfDg8K8bmNlbGxlCi1tZW51dHJhbnMgRGVsZXRlCQkJJlNpbAotbWVudXRyYW5zICZBbHRlcm5hdGUJCcODwpYmdGVraQotbWVudXRyYW5zICZOZXh0CQkJCVNvJm5yYWtpCi1tZW51dHJhbnMgJlByZXZpb3VzCQkJw4PClm4mY2VraQotbWVudXRyYW5zIFtOb1wgRmlsZV0JCVtEb3N5YVwgWW9rXQotIgotIgotIiBXaW5kb3cgbWVudQotIgotbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJCQkJWWVuaVwgJlBlbmNlcmU8VGFiPl5XbgotbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCQkJCVBlbmNlcmV5aVwgJkLDg8K2bDxUYWI+XldzCi1tZW51dHJhbnMgU3AmbGl0XCBUb1wgIzxUYWI+XldeXgkJUGVuY2VyZXlpXCBCYcOFwp9rYXPDhMKxbmFcIELDg8K2Jmw8VGFiPl5XXl4KLW1lbnV0cmFucyBTcGxpdFwgJlZlcnRpY2FsbHk8VGFiPl5XdglQZW5jZXJleWlcICZEaWtleVwgT2xhcmFrXCBCw4PCtmw8VGFiPl5XdgotbWVudXRyYW5zIFNwbGl0XCBGaWxlXCBFJnhwbG9yZXIJCVllbmlcIELDg8K2bMODwrwmbWRlXCBEb3N5YVwgR2V6Z2luaW5pXCBBw4PCpwotIgotbWVudXRyYW5zICZDbG9zZTxUYWI+XldjCQkJCVBlbiZjZXJleWlcIEthcGF0PFRhYj5eV2MKLW1lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28JCURpw4TCn2VyXCBQZW5jZXJlbGUmcmlcIEthcGF0PFRhYj5eV28KLSIKLW1lbnV0cmFucyBNb3ZlXCAmVG8JCQkJCQkmVGHDhcKfw4TCsQotbWVudXRyYW5zIFJvdGF0ZVwgJlVwPFRhYj5eV1IJCQkmWXVrYXLDhMKxXCBUYcOFwp/DhMKxPFRhYj5eV1IKLW1lbnV0cmFucyBSb3RhdGVcICZEb3duPFRhYj5eV3IJCQkmQcOFwp9hw4TCn8OEwrFcIFRhw4XCn8OEwrE8VGFiPl5XcgotIgotbWVudXRyYW5zICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CQkJJkXDhcKfaXRcIEJveXV0PFRhYj5eVz0KLW1lbnV0cmFucyAmTWF4XCBIZWlnaHQ8VGFiPl5XXwkJCUUmblwgQsODwrx5w4PCvGtcIFnDg8K8a3Nla2xpazxUYWI+XldfCi1tZW51dHJhbnMgTSZpblwgSGVpZ2h0PFRhYj5eVzFfCQkJRW5cIEvDg8K8w4PCp8ODwrxrXCBZw4PCvGtzZWtsJmlrPFRhYj5eVzFfCi1tZW51dHJhbnMgTWF4XCAmV2lkdGg8VGFiPl5XXHwJCQlFblwgQsODwrx5w4PCvGtcIEdlbiZpw4XCn2xpazxUYWI+XldcfAotbWVudXRyYW5zIE1pblwgV2lkdCZoPFRhYj5eVzFcfAkJCUVuXCBLw4PCvMODwqfDg8K8a1wgR2VuacOFwp8mbGlrPFRhYj5eVzFcfAotIj4+Pi0tLS0tLS0tLS0tLS0tLS0tIFdpbmRvdy9Nb3ZlIFRvCi1tZW51dHJhbnMgJlRvcDxUYWI+XldLCQkJCQkmWXVrYXLDhMKxPFRhYj5eV0sKLW1lbnV0cmFucyAmQm90dG9tPFRhYj5eV0oJCQkJJkHDhcKfYcOEwp/DhMKxPFRhYj5eV0oKLW1lbnV0cmFucyAmTGVmdFwgU2lkZTxUYWI+XldICQkJU28mbGE8VGFiPl5XSAotbWVudXRyYW5zICZSaWdodFwgU2lkZTxUYWI+XldMCQkJJlNhw4TCn2E8VGFiPl5XTAotIgotIgotIiBUaGUgcG9wdXAgbWVudQotIgotIgotbWVudXRyYW5zICZVbmRvCQkJCQkmR2VyaVwgQWwKLW1lbnV0cmFucyBDdSZ0CQkJCQkmS2VzCi1tZW51dHJhbnMgJkNvcHkJCQkJCUsmb3B5YWxhCi1tZW51dHJhbnMgJlBhc3RlCQkJCSZZYXDDhMKxw4XCn3TDhMKxcgotbWVudXRyYW5zICZEZWxldGUJCQkJJlNpbAotbWVudXRyYW5zIFNlbGVjdFwgQmxvY2t3aXNlCQkmQmxva1wgQmnDg8KnaW1pbmRlXCBTZcODwqcKLW1lbnV0cmFucyBTZWxlY3RcICZXb3JkCQkJU8ODwrYmemPDg8K8a1wgU2XDg8KnCi1tZW51dHJhbnMgU2VsZWN0XCAmU2VudGVuY2UJCSZUw4PCvG1jZVwgU2XDg8KnCi1tZW51dHJhbnMgU2VsZWN0XCBQYSZyYWdyYXBoCSZQYXJhZ3JhZlwgU2XDg8KnCi1tZW51dHJhbnMgU2VsZWN0XCAmTGluZQkJCVMmYXTDhMKxclwgU2XDg8KnCi1tZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sJCUJsJm9rXCBTZcODwqcKLW1lbnV0cmFucyBTZWxlY3RcICZBbGwJCQlUw4PCvG3Dg8K8Jm7Dg8K8XCBTZcODwqcKLSIKLSIgVGhlIEdVSSB0b29sYmFyCi0iCi1pZiBoYXMoInRvb2xiYXIiKQotICBpZiBleGlzdHMoIipEb190b29sYmFyX3RtZW51IikKLSAgICBkZWxmdW4gRG9fdG9vbGJhcl90bWVudQotICBlbmRpZgotICBmdW4gRG9fdG9vbGJhcl90bWVudSgpCi0gICAgdG1lbnUgVG9vbEJhci5PcGVuCQkJRG9zeWEgQcODwqcKLSAgICB0bWVudSBUb29sQmFyLlNhdmUJCQlEb3N5YSBLYXlkZXQKLSAgICB0bWVudSBUb29sQmFyLlNhdmVBbGwJCVTDg8K8bSBEb3N5YWxhcsOEwrEgS2F5ZGV0Ci0gICAgdG1lbnUgVG9vbEJhci5QcmludAkJCVlhemTDhMKxcgotICAgIHRtZW51IFRvb2xCYXIuVW5kbwkJCUdlcmkgQWwKLSAgICB0bWVudSBUb29sQmFyLlJlZG8JCQlZaW5lbGUKLSAgICB0bWVudSBUb29sQmFyLkN1dAkJCUtlcwotICAgIHRtZW51IFRvb2xCYXIuQ29weQkJCUtvcHlhbGEKLSAgICB0bWVudSBUb29sQmFyLlBhc3RlCQkJWWFww4TCscOFwp90w4TCsXIKLQl0bWVudSBUb29sQmFyLkZpbmQJCQlCdWwuLi4KLSAgICB0bWVudSBUb29sQmFyLkZpbmROZXh0CQlTb25yYWtpbmkgQnVsCi0gICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldgkJw4PClm5jZWtpbmkgQnVsCi0gICAgdG1lbnUgVG9vbEJhci5SZXBsYWNlCQlCdWwgdmUgRGXDhMKfacOFwp90aXIuLi4KLSAgICBpZiAwCSIgZGlzYWJsZWQ7IFRoZXNlIGFyZSBpbiB0aGUgV2luZG93cyBtZW51Ci0gICAgICB0bWVudSBUb29sQmFyLk5ldwkJCVllbmkgUGVuY2VyZQotICAgICAgdG1lbnUgVG9vbEJhci5XaW5TcGxpdAlQZW5jZXJleWkgQsODwrZsCi0gICAgICB0bWVudSBUb29sQmFyLldpbk1heAkJRW4gQsODwrx5w4PCvGsgUGVuY2VyZSBZw4PCvGtzZWtsacOEwp9pCi0gICAgICB0bWVudSBUb29sQmFyLldpbk1pbgkJRW4gS8ODwrzDg8Knw4PCvGsgUGVuY2VyZSBZw4PCvGtzZWtsacOEwp9pCi0gICAgICB0bWVudSBUb29sQmFyLldpbkNsb3NlCVBlbmNlcmV5aSBLYXBhdAotICAgIGVuZGlmCi0gICAgdG1lbnUgVG9vbEJhci5Mb2FkU2VzbgkJT3R1cnVtIFnDg8K8a2xlCi0gICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbgkJT3R1cnVtIEtheWRldAotICAgIHRtZW51IFRvb2xCYXIuUnVuU2NyaXB0CQlCZXRpayDDg8KHYWzDhMKxw4XCn3TDhMKxcgotICAgIHRtZW51IFRvb2xCYXIuTWFrZQkJCURlcmxlCi0gICAgdG1lbnUgVG9vbEJhci5TaGVsbAkJCUthYnVrCi0gICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncwkJRXRpa2V0IERvc3lhc8OEwrEgT2x1w4XCn3R1cgotICAgIHRtZW51IFRvb2xCYXIuVGFnSnVtcAkJRXRpa2V0ZSBBdGxhCi0gICAgdG1lbnUgVG9vbEJhci5IZWxwCQkJWWFyZMOEwrFtCi0gICAgdG1lbnUgVG9vbEJhci5GaW5kSGVscAkJWWFyZMOEwrFtIEJ1bAotICBlbmRmdW4KLWVuZGlmCi0iCi0iCi0iIERpYWxvZyB0ZXh0cwotIgotIiBGaW5kIGluIGhlbHAgZGlhbG9nCi0iCi1sZXQgZzptZW51dHJhbnNfaGVscF9kaWFsb2cgPSAiWWFyZMOEwrFtIGnDg8KnaW4ga29tdXQgdmV5YSBzw4PCtnpjw4PCvGsgZ2lyaW46XG5cbkVrbGVtZSBLaXBpIGtvbXV0bGFyw4TCsW7DhMKxIGFyYW1hayBpw4PCp2luIGlfIGVrbGV5aW4gKMODwrZybmXDhMKfaW4gaV9DVFJMLVgpXG5Ob3JtYWwgS2lwIGtvbXV0bGFyw4TCsW7DhMKxIGFyYW1hayBpw4PCp2luIF9jIGVrbGV5aW4gKMODwrZybmXDhMKfaW4gw5HCgV88RGVsPilcblNlw4PCp2VuZWtsZXIgaGFra8OEwrFuZGEgeWFyZMOEwrFtIGFsbWFrIGnDg8KnaW4gJyBla2xleWluICjDg8K2cm5lw4TCn2luICdzaGlmdHdpZHRoJykiCi0iCi0iIFNlYXJoIHBhdGggZGlhbG9nCi0iCi1sZXQgZzptZW51dHJhbnNfcGF0aF9kaWFsb2cgPSAiRG9zeWEgYXJhbWFzw4TCsSBpw4PCp2luIHlvbCBiZWxpcnRpbi5cbkRpemluIGFkbGFyw4TCsSB2aXJnw4PCvGxsZXJsZSBheXLDhMKxbMOEwrFyLiIKLSIKLSIgVGFnIGZpbGVzIGRpYWxvZwotIgotbGV0IGc6bWVudXRyYW5zX3RhZ3NfZGlhbG9nID0gIkV0aWtldCBkb3N5YXPDhMKxIGFkbGFyw4TCsSBiZWxpcnRpbiAodmlyZ8ODwrxsbGUgYXnDhMKxcmFyYWspLlxuIgotIgotIiBUZXh0IHdpZHRoIGRpYWxvZwotIgotbGV0IGc6bWVudXRyYW5zX3RleHR3aWR0aF9kaWFsb2cgPSAiQmnDg8KnaW1sZW5kaXJtZSBpw4PCp2luIG1ldGluIGdlbmnDhcKfbGnDhMKfaW5pIGJlbGlydGluLlxuQmnDg8KnaW1sZW5kaXJtZSBpcHRhbGkgacODwqdpbiAwIGdpcmluLiIKLSIKLSIgRmlsZSBmb3JtYXQgZGlhbG9nCi0iCi1sZXQgZzptZW51dHJhbnNfZmlsZWZvcm1hdF9kaWFsb2cgPSAiRG9zeWEgYmnDg8KnaW1pIHNlw4PCp2luIgotbGV0IGc6bWVudXRyYW5zX2ZpbGVmb3JtYXRfY2hvaWNlcyA9ICImVW5peFxuJkRvc1xuJk1hY1xuw4TCsCZwdGFsIgotIgotbGV0IG1lbnV0cmFuc19ub19maWxlID0gIltEb3N5YSBZb2tdIgorbWVudXRyYW5zICZGaW5kXCBNb3JlXCBMYW5ndWFnZXMJJkJh/mthXCBEaWxsZXJcIEJ1bAorbGV0IGc6bWVudXRyYW5zX3NldF9sYW5nX3RvID0JCSdEaWwgWfxrbGUnCiAKKyIgVGhlIFNwZWxsaW5nIHBvcHVwIG1lbnUKK2xldCBnOm1lbnV0cmFuc19zcGVsbF9jaGFuZ2VfQVJHX3RvID0JCSdE/HplbHRpbGVjZWs6XCAiJXMiXCAtPicKK2xldCBnOm1lbnV0cmFuc19zcGVsbF9hZGRfQVJHX3RvX3dvcmRfbGlzdCA9CSciJXMiXCBz9npj/PD8bvxcIHP2emz88GVcIGVrbGUnCitsZXQgZzptZW51dHJhbnNfc3BlbGxfaWdub3JlX0FSRyA9CQknIiVzIlwgc/Z6Y/zw/G78XCB5b2tzYXknCisiPj4+LS0tLS0tLS0tLS0tLS0tLSBGb2xkcworbWVudXRyYW5zICZFbmFibGUvRGlzYWJsZVwgRm9sZHM8VGFiPnppCQkmS/12/XJtYWxhcv1cIEHnL0thcGF0PFRhYj56aQorbWVudXRyYW5zICZWaWV3XCBDdXJzb3JcIExpbmU8VGFiPnp2CQndJm1sZWNpblwgT2xkdfB1XCBTYXT9cv1cIEf2cvxudPxsZTxUYWI+enYKK21lbnV0cmFucyBWaWUmd1wgQ3Vyc29yXCBMaW5lXCBPbmx5PFRhYj56TXp4CVlhJmxu/XpjYVwg3W1sZWNpblwgT2xkdfB1XCBTYXT9cv1cIEf2cvxudPxsZTxUYWI+ek16eAorbWVudXRyYW5zIEMmbG9zZVwgTW9yZVwgRm9sZHM8VGFiPnptCQkmRGFoYVwgRmF6bGFcIEv9dv1ybWFcIEthcGF0PFRhYj56bQorbWVudXRyYW5zICZDbG9zZVwgQWxsXCBGb2xkczxUYWI+ek0JCUL8dPxuXCBL/SZ2/XJtYWxhcv1cIEthcGF0PFRhYj56TQorbWVudXRyYW5zICZPcGVuXCBBbGxcIEZvbGRzPFRhYj56UgkJQvwmdPxuXCBL/Xb9cm1hbGFy/VwgQec8VGFiPnpSCittZW51dHJhbnMgTyZwZW5cIE1vcmVcIEZvbGRzPFRhYj56cgkJRCZhaGFcIEZhemxhXCBL/Xb9cm1hXCBB5zxUYWI+enIKK21lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkJCUv9dv0mcm1hXCBZ9m50ZW1pCittZW51dHJhbnMgQ3JlYXRlXCAmRm9sZDxUYWI+emYJCQlL/Xb9cm1hXCAmT2x1/nR1cjxUYWI+emYKK21lbnV0cmFucyAmRGVsZXRlXCBGb2xkPFRhYj56ZAkJCUv9dv1ybWFcICZTaWw8VGFiPnpkCittZW51dHJhbnMgRGVsZXRlXCAmQWxsXCBGb2xkczxUYWI+ekQJCVT8Jm1cIEv9dv1ybWFsYXL9XCBTaWw8VGFiPnpECittZW51dHJhbnMgRm9sZFwgY29sJnVtblwgV2lkdGgJCQlL/Xb9cm1hXCBT/HR1bnVcICZHZW5p/mxp8GkKKyI+Pj4tPj4+LS0tLS0tLS0tLS0gVG9vbHMvRm9sZHMvRm9sZCBNZXRob2QKK21lbnV0cmFucyBNJmFudWFsCSZFbFwg3WxlCittZW51dHJhbnMgSSZuZGVudAkmR2lyaW50aQorbWVudXRyYW5zIEUmeHByZXNzaW9uCd0mZmFkZQorbWVudXRyYW5zIFMmeW50YXgJJlP2emRpemltCittZW51dHJhbnMgTWEmcmtlcgndJm1sZXlpY2kKKyI+Pj4tLS0tLS0tLS0tLS0tLS0gVG9vbHMvRGlmZgorbWVudXRyYW5zICZVcGRhdGUJJkf8bmNlbGxlCittZW51dHJhbnMgJkdldFwgQmxvY2sJQmxv8HVcICZBbAorbWVudXRyYW5zICZQdXRcIEJsb2NrCUJsb/B1XCAmS295CisiPj4+LS0tLS0tLS0tLS0tLS0tIFRvb2xzL0RpZmYvRXJyb3Igd2luZG93CittZW51dHJhbnMgJlVwZGF0ZTxUYWI+OmN3aW4JJkf8bmNlbGxlPFRhYj46Y3dpbgorbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZQkmS2FwYXQ8VGFiPjpjY2xvc2UKK21lbnV0cmFucyAmT3BlbjxUYWI+OmNvcGVuCSZB5zxUYWI+OmNvcGVuCisKKyIgU3ludGF4IG1lbnUKK21lbnV0cmFucyAmU2hvd1wgRmlsZVwgVHlwZXNcIGluXCBNZW51CURvc3lhXCBU/HJsZXJpbmlcIE1lbvxkZVwgJkf2c3RlcgorbWVudXRyYW5zIFNldFwgJyZzeW50YXgnXCBvbmx5CQlZYWxu/XpjYVwgJ3N5bnRheCdcICZBeWFybGEKK21lbnV0cmFucyBTZXRcICcmZmlsZXR5cGUnXCB0b28JCSdmaWxldHlwZSdcIN3naW5cICZkZVwgQXlhcmxhCittZW51dHJhbnMgJk9mZgkJCQkmS2FwYXQKK21lbnV0cmFucyAmTWFudWFsCQkJJkVsXCDdbGUKK21lbnV0cmFucyBBJnV0b21hdGljCQkJJk90b21hdGlrCittZW51dHJhbnMgT24vT2ZmXCBmb3JcICZUaGlzXCBGaWxlCSZCdVwgRG9zeWFcIN3naW5cIEHnL0thcGF0CittZW51dHJhbnMgQ28mbG9yXCBUZXN0CQkJJlJlbmtcIFRlc3RpCittZW51dHJhbnMgJkhpZ2hsaWdodFwgVGVzdAkJJlZ1cmd1bGFtYVwgVGVzdGkKK21lbnV0cmFucyAmQ29udmVydFwgdG9cIEhUTUwJCSZIVE1MJ3llXCBE9m78/nT8cgorCisiIEJ1ZmZlcnMgbWVudQorbWVudXRyYW5zICZSZWZyZXNoXCBtZW51CSZNZW78efxcIEf8bmNlbGxlCittZW51dHJhbnMgRGVsZXRlCQkmU2lsCittZW51dHJhbnMgJkFsdGVybmF0ZQkJ1iZ0ZWtpCittZW51dHJhbnMgJk5leHQJCQlTbyZucmFraQorbWVudXRyYW5zICZQcmV2aW91cwkJ1m4mY2VraQorbWVudXRyYW5zIFtOb1wgRmlsZV0JCVtEb3N5YVwgWW9rXQorCisiIFdpbmRvdyBtZW51CittZW51dHJhbnMgJk5ldzxUYWI+XlduCQkJWWVuaVwgJlBlbmNlcmU8VGFiPl5XbgorbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCQlQZW5jZXJleWlcICZC9mw8VGFiPl5XcworbWVudXRyYW5zIFNwJmxpdFwgVG9cICM8VGFiPl5XXl4JUGVuY2VyZXlpXCBCYf5rYXP9bmFcIEL2Jmw8VGFiPl5XXl4KK21lbnV0cmFucyBTcGxpdFwgJlZlcnRpY2FsbHk8VGFiPl5XdglQZW5jZXJleWlcICZEaWtleVwgT2xhcmFrXCBC9mw8VGFiPl5XdgorbWVudXRyYW5zIFNwbGl0XCBGaWxlXCBFJnhwbG9yZXIJWWVuaVwgQvZs/CZtZGVcIERvc3lhXCBHZXpnaW5pbmlcIEHnCisiCittZW51dHJhbnMgJkNsb3NlPFRhYj5eV2MJCVBlbiZjZXJleWlcIEthcGF0PFRhYj5eV2MKK21lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28JRGnwZXJcIFBlbmNlcmVsZSZyaVwgS2FwYXQ8VGFiPl5XbworIgorbWVudXRyYW5zIE1vdmVcICZUbwkJJlRh/v0KK21lbnV0cmFucyBSb3RhdGVcICZVcDxUYWI+XldSCSZZdWthcv1cIFRh/v08VGFiPl5XUgorbWVudXRyYW5zIFJvdGF0ZVwgJkRvd248VGFiPl5XcgkmQf5h8P1cIFRh/v08VGFiPl5XcgorIgorbWVudXRyYW5zICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CSZF/ml0XCBCb3l1dDxUYWI+Xlc9CittZW51dHJhbnMgJk1heFwgSGVpZ2h0PFRhYj5eV18JRSZuXCBC/Hn8a1wgWfxrc2VrbGlrPFRhYj5eV18KK21lbnV0cmFucyBNJmluXCBIZWlnaHQ8VGFiPl5XMV8JRW5cIEv85/xrXCBZ/GtzZWtsJmlrPFRhYj5eVzFfCittZW51dHJhbnMgTWF4XCAmV2lkdGg8VGFiPl5XXHwJRW5cIEL8efxrXCBHZW4maf5saWs8VGFiPl5XXHwKK21lbnV0cmFucyBNaW5cIFdpZHQmaDxUYWI+XlcxXHwJRW5cIEv85/xrXCBHZW5p/mxpJms8VGFiPl5XMVx8CisKKyI+Pj4tLS0tLS0tLS0tLS0tLS0tLSBXaW5kb3cvTW92ZSBUbworbWVudXRyYW5zICZUb3A8VGFiPl5XSwkJJll1a2Fy/TxUYWI+XldLCittZW51dHJhbnMgJkJvdHRvbTxUYWI+XldKCSZB/mHw/TxUYWI+XldKCittZW51dHJhbnMgJkxlZnRcIFNpZGU8VGFiPl5XSAlTbyZsYTxUYWI+XldICittZW51dHJhbnMgJlJpZ2h0XCBTaWRlPFRhYj5eV0wJJlNh8GE8VGFiPl5XTAorCisiIFRoZSBwb3B1cCBtZW51CittZW51dHJhbnMgJlVuZG8JCQkmR2VyaVwgQWwKK21lbnV0cmFucyBDdSZ0CQkJJktlcworbWVudXRyYW5zICZDb3B5CQkJSyZvcHlhbGEKK21lbnV0cmFucyAmUGFzdGUJCSZZYXD9/nT9cgorbWVudXRyYW5zICZEZWxldGUJCSZTaWwKK21lbnV0cmFucyBTZWxlY3RcIEJsb2Nrd2lzZQkmQmxva1wgQmnnaW1pbmRlXCBTZecKK21lbnV0cmFucyBTZWxlY3RcICZXb3JkCQlT9iZ6Y/xrXCBTZecKK21lbnV0cmFucyBTZWxlY3RcICZTZW50ZW5jZQkmVPxtY2VcIFNl5worbWVudXRyYW5zIFNlbGVjdFwgUGEmcmFncmFwaAkmUGFyYWdyYWZcIFNl5worbWVudXRyYW5zIFNlbGVjdFwgJkxpbmUJCVMmYXT9clwgU2XnCittZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sJQmwmb2tcIFNl5worbWVudXRyYW5zIFNlbGVjdFwgJkFsbAkJVPxt/CZu/FwgU2XnCisKKyIgVGhlIEdVSSB0b29sYmFyCitpZiBoYXMoInRvb2xiYXIiKQorCWlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQorCQlkZWxmdW4gRG9fdG9vbGJhcl90bWVudQorCWVuZGlmCisKKwlmdW4gRG9fdG9vbGJhcl90bWVudSgpCisJCXRtZW51IFRvb2xCYXIuT3BlbglEb3N5YSBB5worCQl0bWVudSBUb29sQmFyLlNhdmUJRG9zeWEgS2F5ZGV0CisJCXRtZW51IFRvb2xCYXIuU2F2ZUFsbAlU/G0gRG9zeWFsYXL9IEtheWRldAorCQl0bWVudSBUb29sQmFyLlByaW50CVlhemT9cgorCQl0bWVudSBUb29sQmFyLlVuZG8JR2VyaSBBbAorCQl0bWVudSBUb29sQmFyLlJlZG8JWWluZWxlCisJCXRtZW51IFRvb2xCYXIuQ3V0CUtlcworCQl0bWVudSBUb29sQmFyLkNvcHkJS29weWFsYQorCQl0bWVudSBUb29sQmFyLlBhc3RlCVlhcP3+dP1yCisJCXRtZW51IFRvb2xCYXIuRmluZAlCdWwuLi4KKwkJdG1lbnUgVG9vbEJhci5GaW5kTmV4dAlTb25yYWtpbmkgQnVsCisJCXRtZW51IFRvb2xCYXIuRmluZFByZXYJ1m5jZWtpbmkgQnVsCisJCXRtZW51IFRvb2xCYXIuUmVwbGFjZQlCdWwgdmUgRGXwaf50aXIuLi4KKwkJaWYgMAkiIGRpc2FibGVkOyBUaGVzZSBhcmUgaW4gdGhlIFdpbmRvd3MgbWVudQorCQkJdG1lbnUgVG9vbEJhci5OZXcJWWVuaSBQZW5jZXJlCisJCQl0bWVudSBUb29sQmFyLldpblNwbGl0CVBlbmNlcmV5aSBC9mwKKwkJCXRtZW51IFRvb2xCYXIuV2luTWF4CUVuIEL8efxrIFBlbmNlcmUgWfxrc2VrbGnwaQorCQkJdG1lbnUgVG9vbEJhci5XaW5NaW4JRW4gS/zn/GsgUGVuY2VyZSBZ/GtzZWtsafBpCisJCQl0bWVudSBUb29sQmFyLldpbkNsb3NlCVBlbmNlcmV5aSBLYXBhdAorCQllbmRpZgorCQl0bWVudSBUb29sQmFyLkxvYWRTZXNuCU90dXJ1bSBZ/GtsZQorCQl0bWVudSBUb29sQmFyLlNhdmVTZXNuCU90dXJ1bSBLYXlkZXQKKwkJdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQJQmV0aWsgx2Fs/f50/XIKKwkJdG1lbnUgVG9vbEJhci5NYWtlCURlcmxlCisJCXRtZW51IFRvb2xCYXIuU2hlbGwJS2FidWsKKwkJdG1lbnUgVG9vbEJhci5SdW5DdGFncwlFdGlrZXQgRG9zeWFz/SBPbHX+dHVyCisJCXRtZW51IFRvb2xCYXIuVGFnSnVtcAlFdGlrZXRlIEF0bGEKKwkJdG1lbnUgVG9vbEJhci5IZWxwCVlhcmT9bQorCQl0bWVudSBUb29sQmFyLkZpbmRIZWxwCVlhcmT9bSBCdWwKKwllbmRmdW4KK2VuZGlmCisKKyIgRGlhbG9nIHRleHRzCisiIEZpbmQgaW4gaGVscCBkaWFsb2cKK2xldCBnOm1lbnV0cmFuc19oZWxwX2RpYWxvZyA9ICJZYXJk/W0gaedpbiBrb211dCB2ZXlhIHP2emP8ayBnaXJpbjpcblxuRWtsZW1lIEtpcGkga29tdXRsYXL9bv0gYXJhbWFrIGnnaW4gaV8gZWtsZXlpbiAo9nJuZfBpbiBpX0NUUkwtWClcbk5vcm1hbCBLaXAga29tdXRsYXL9bv0gYXJhbWFrIGnnaW4gX2MgZWtsZXlpbiAo9nJuZfBpbiBjXzxEZWw+KVxuU2XnZW5la2xlciBoYWtr/W5kYSB5YXJk/W0gYWxtYWsgaedpbiAnIGVrbGV5aW4gKPZybmXwaW4gJ3NoaWZ0d2lkdGgnKSIKKworIiBTZWFyaCBwYXRoIGRpYWxvZworbGV0IGc6bWVudXRyYW5zX3BhdGhfZGlhbG9nID0gIkRvc3lhIGFyYW1hc/0gaedpbiB5b2wgYmVsaXJ0aW4uXG5EaXppbiBhZGxhcv0gdmlyZ/xsbGVybGUgYXly/Wz9ci4iCisKKyIgVGFnIGZpbGVzIGRpYWxvZworbGV0IGc6bWVudXRyYW5zX3RhZ3NfZGlhbG9nID0gIkV0aWtldCBkb3N5YXP9IGFkbGFy/SBiZWxpcnRpbiAodmlyZ/xsbGUgYXn9cmFyYWspLlxuIgorCisiIFRleHQgd2lkdGggZGlhbG9nCitsZXQgZzptZW51dHJhbnNfdGV4dHdpZHRoX2RpYWxvZyA9ICJCaedpbWxlbmRpcm1lIGnnaW4gbWV0aW4gZ2Vuaf5safBpbmkgYmVsaXJ0aW4uXG5CaedpbWxlbmRpcm1lIGlwdGFsaSBp52luIDAgZ2lyaW4uIgorCisiIEZpbGUgZm9ybWF0IGRpYWxvZworbGV0IGc6bWVudXRyYW5zX2ZpbGVmb3JtYXRfZGlhbG9nID0gIkRvc3lhIGJp52ltaSBzZedpbiIKK2xldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2Nob2ljZXMgPSAiJlVuaXhcbiZEb3NcbiZNYWNcbt0mcHRhbCIKK2xldCBtZW51dHJhbnNfbm9fZmlsZSA9ICJbRG9zeWEgWW9rXSIKIGxldCAmY3BvID0gczprZWVwY3BvCiB1bmxldCBzOmtlZXBjcG8KZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X3RyX3RyLnV0Zi04LnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X3RyX3RyLnV0Zi04LnZpbQppbmRleCA1NmM0YzhiLi5hODI4YWNmIDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV90cl90ci51dGYtOC52aW0KKysrIGIvcnVudGltZS9sYW5nL21lbnVfdHJfdHIudXRmLTgudmltCkBAIC0xLDMzMSArMSwzMDggQEAKICIgTWVudSBUcmFuc2xhdGlvbnM6CVR1cmtpc2gKLSIgTWFpbnRhaW5lcjoJCQlFbWlyIFNBUkkgPGJpdGlnY2hpQG1lLmNvbT4KKyIgTWFpbnRhaW5lcjoJCUVtaXIgU0FSSSA8Yml0aWdjaGlAbWUuY29tPgogCiBpZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKICAgIGZpbmlzaAogZW5kaWYKKwogbGV0IGRpZF9tZW51X3RyYW5zID0gMQogbGV0IHM6a2VlcGNwbz0gJmNwbwogc2V0IGNwbyZ2aW0KLQogc2NyaXB0ZW5jb2RpbmcgdXRmLTgKIAogIiBUb3AKLW1lbnV0cmFucyAmRmlsZQkJCQkmRG9zeWEKLW1lbnV0cmFucyAmRWRpdAkJCQlEw7wmemVuCi1tZW51dHJhbnMgJlRvb2xzCQkJJkFyYcOnbGFyCi1tZW51dHJhbnMgJlN5bnRheAkJCSZTw7Z6ZGl6aW0KLW1lbnV0cmFucyAmQnVmZmVycwkJCUEmcmFiZWxsZWtsZXIKLW1lbnV0cmFucyAmV2luZG93CQkJJlBlbmNlcmUKLW1lbnV0cmFucyAmSGVscAkJCQkmWWFyZMSxbQotCittZW51dHJhbnMgJkZpbGUJCSZEb3N5YQorbWVudXRyYW5zICZFZGl0CQlEw7wmemVuCittZW51dHJhbnMgJlRvb2xzCSZBcmHDp2xhcgorbWVudXRyYW5zICZTeW50YXgJJlPDtnpkaXppbQorbWVudXRyYW5zICZCdWZmZXJzCUEmcmFiZWxsZWtsZXIKK21lbnV0cmFucyAmV2luZG93CSZQZW5jZXJlCittZW51dHJhbnMgJkhlbHAJCSZZYXJkxLFtCiAKICIgSGVscCBtZW51CiBtZW51dHJhbnMgJk92ZXJ2aWV3PFRhYj48RjE+CSZHZW5lbFwgQmFrxLHFnzxUYWI+PEYxPgotbWVudXRyYW5zICZVc2VyXCBNYW51YWwJCQkmS3VsbGFuxLFtXCBLxLFsYXZ1enUKLW1lbnV0cmFucyAmSG93LVRvXCBMaW5rcwkJJk5hc8SxbFwgWWFwxLFsxLFyPwotbWVudXRyYW5zICZGaW5kXC5cLlwuCQkJJkJ1bFwuXC5cLgorbWVudXRyYW5zICZVc2VyXCBNYW51YWwJCSZLdWxsYW7EsW1cIEvEsWxhdnV6dQorbWVudXRyYW5zICZIb3ctVG9cIExpbmtzCSZOYXPEsWxcIFlhcMSxbMSxcj8KK21lbnV0cmFucyAmRmluZFwuXC5cLgkJJkJ1bFwuXC5cLgogIi0tLS0tLS0tLS0tLS0tLS0tLS0tCi1tZW51dHJhbnMgJkNyZWRpdHMJCQkgICAgJlRlxZ9la2vDvHJsZXIKLW1lbnV0cmFucyBDbyZweWluZwkJCSAgICAmRGHEn8SxdMSxbQotbWVudXRyYW5zICZTcG9uc29yL1JlZ2lzdGVyCQkmU3BvbnNvcmx1ay9LYXnEsXQKLW1lbnV0cmFucyBPJnJwaGFucwkJCSAgICAmWWV0aW1sZXIKK21lbnV0cmFucyAmQ3JlZGl0cwkJJlRlxZ9la2vDvHJsZXIKK21lbnV0cmFucyBDbyZweWluZwkJJkRhxJ/EsXTEsW0KK21lbnV0cmFucyAmU3BvbnNvci9SZWdpc3RlcgkmU3BvbnNvcmx1ay9LYXnEsXQKK21lbnV0cmFucyBPJnJwaGFucwkJJllldGltbGVyCiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0KLW1lbnV0cmFucyAmVmVyc2lvbgkJCSAgICBTw7xyw7xtXCAmQmlsZ2lzaQotbWVudXRyYW5zICZBYm91dAkJCSAgICAmSGFra8SxbmRhCi0KK21lbnV0cmFucyAmVmVyc2lvbglTw7xyw7xtXCAmQmlsZ2lzaQorbWVudXRyYW5zICZBYm91dAkmSGFra8SxbmRhCiAKICIgRmlsZSBtZW51Ci1tZW51dHJhbnMgJk9wZW5cLlwuXC48VGFiPjplCQkgICAgJkHDp1wuXC5cLjxUYWI+OmUKLW1lbnV0cmFucyBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwCSAgICAmWWVuaVwgQsO2bMO8bWRlXCBBw6dcLlwuXC48VGFiPjpzcAorbWVudXRyYW5zICZPcGVuXC5cLlwuPFRhYj46ZQkJJkHDp1wuXC5cLjxUYWI+OmUKK21lbnV0cmFucyBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwCSZZZW5pXCBCw7Zsw7xtZGVcIEHDp1wuXC5cLjxUYWI+OnNwCiBtZW51dHJhbnMgT3BlblwgVGFiXC5cLlwuPFRhYj46dGFibmV3CVMmZWttZVwgQcOnXC5cLlwuPFRhYj46dGFibmV3Ci1tZW51dHJhbnMgJk5ldzxUYWI+OmVuZXcJCSAgICAgICAgWWVuaVwgJlNla21lPFRhYj46ZW5ldwotbWVudXRyYW5zICZDbG9zZTxUYWI+OmNsb3NlCQkgICAgICAgIEthJnBhdDxUYWI+OmNsb3NlCittZW51dHJhbnMgJk5ldzxUYWI+OmVuZXcJCVllbmlcICZTZWttZTxUYWI+OmVuZXcKK21lbnV0cmFucyAmQ2xvc2U8VGFiPjpjbG9zZQkJS2EmcGF0PFRhYj46Y2xvc2UKICItLS0tLS0tLS0tLS0tLS0tLS0tLQotbWVudXRyYW5zICZTYXZlPFRhYj46dwkJCSAgICAgICAgS2F5ZGUmdDxUYWI+OncKLW1lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYJICAgICZGYXJrbMSxIEtheWRldFwuXC5cLjxUYWI+OnNhdgorbWVudXRyYW5zICZTYXZlPFRhYj46dwkJCUtheWRlJnQ8VGFiPjp3CittZW51dHJhbnMgU2F2ZVwgJkFzXC5cLlwuPFRhYj46c2F2CSZGYXJrbMSxIEtheWRldFwuXC5cLjxUYWI+OnNhdgogIi0tLS0tLS0tLS0tLS0tLS0tLS0tCi1tZW51dHJhbnMgU3BsaXRcICZEaWZmXCBXaXRoXC5cLlwuCSAgICBLYSZyxZ/EsWxhxZ90xLFyXC5cLlwuCi1tZW51dHJhbnMgU3BsaXRcIFBhdGNoZWRcICZCeVwuXC5cLgkgICAgWWEmbWFsYXJcIERhaGlsXCBLYXLFn8SxbGHFn3TEsXJcLlwuXC4KK21lbnV0cmFucyBTcGxpdFwgJkRpZmZcIFdpdGhcLlwuXC4JS2EmcsWfxLFsYcWfdMSxclwuXC5cLgorbWVudXRyYW5zIFNwbGl0XCBQYXRjaGVkXCAmQnlcLlwuXC4JWWEmbWFsYXJcIERhaGlsXCBLYXLFn8SxbGHFn3TEsXJcLlwuXC4KICItLS0tLS0tLS0tLS0tLS0tLS0tLQotbWVudXRyYW5zICZQcmludAkJCSAgICAgICAgICAgIFlhJnpkxLFyCi1tZW51dHJhbnMgU2EmdmUtRXhpdDxUYWI+OndxYQkJICAgIEtheWRldFwgJnZlIMOHxLFrPFRhYj46d3FhCi1tZW51dHJhbnMgRSZ4aXQ8VGFiPjpxYQkJCSAgICAgICAgw4fEsSZrPFRhYj46cWEKLQorbWVudXRyYW5zICZQcmludAkJWWEmemTEsXIKK21lbnV0cmFucyBTYSZ2ZS1FeGl0PFRhYj46d3FhCUtheWRldFwgJnZlIMOHxLFrPFRhYj46d3FhCittZW51dHJhbnMgRSZ4aXQ8VGFiPjpxYQkJw4fEsSZrPFRhYj46cWEKIAogIiBFZGl0IG1lbnUKLW1lbnV0cmFucyAmVW5kbzxUYWI+dQkJCSZHZXJpXCBBbDxUYWI+dQotbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJCSZZaW5lbGU8VGFiPl5SCi1tZW51dHJhbnMgUmVwJmVhdDxUYWI+XC4JCVNvblwgS29tdXR1XCBZJmluZWxlPFRhYj5cLgorbWVudXRyYW5zICZVbmRvPFRhYj51CQkmR2VyaVwgQWw8VGFiPnUKK21lbnV0cmFucyAmUmVkbzxUYWI+XlIJCSZZaW5lbGU8VGFiPl5SCittZW51dHJhbnMgUmVwJmVhdDxUYWI+XC4JU29uXCBLb211dHVcIFkmaW5lbGU8VGFiPlwuCiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0KLW1lbnV0cmFucyBDdSZ0PFRhYj4iK3gJCQkmS2VzPFRhYj4iK3gKLW1lbnV0cmFucyAmQ29weTxUYWI+Iit5CQkJSyZvcHlhbGE8VGFiPiIreQotbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAkJWWEmcMSxxZ90xLFyPFRhYj4iK2dQCittZW51dHJhbnMgQ3UmdDxUYWI+Iit4CQkmS2VzPFRhYj4iK3gKK21lbnV0cmFucyAmQ29weTxUYWI+Iit5CQlLJm9weWFsYTxUYWI+Iit5CittZW51dHJhbnMgJlBhc3RlPFRhYj4iK2dQCVlhJnDEscWfdMSxcjxUYWI+IitnUAogbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJw5YmbsO8bmUgS295PFRhYj5bcAogbWVudXRyYW5zIFB1dFwgJkFmdGVyPFRhYj5dcAlBJnJrYXPEsW5hIEtveTxUYWI+XXAKLW1lbnV0cmFucyAmRGVsZXRlPFRhYj54CQkJU2kmbDxUYWI+eAorbWVudXRyYW5zICZEZWxldGU8VGFiPngJCVNpJmw8VGFiPngKIG1lbnV0cmFucyAmU2VsZWN0XCBBbGw8VGFiPmdnVkcJVMO8Jm3DvG7DvFwgU2XDpzxUYWI+Z2dWRwogIi0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIEF0aGVuYSBHVUkgb25seQotbWVudXRyYW5zICZGaW5kPFRhYj4vCQkJICAgICAgICAgICAgJkJ1bDxUYWI+LwotbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2U8VGFiPjolcwkgICAgQnVsXCAmdmVcIERlxJ9pxZ90aXI8VGFiPjolcworbWVudXRyYW5zICZGaW5kPFRhYj4vCQkJJkJ1bDxUYWI+LworbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2U8VGFiPjolcwlCdWxcICZ2ZVwgRGXEn2nFn3RpcjxUYWI+OiVzCiAiIEVuZCBBdGhlbmEgR1VJIG9ubHkKLW1lbnV0cmFucyAmRmluZFwuXC5cLjxUYWI+LwkJICAgICAgICAgICAgJkJ1bFwuXC5cLjxUYWI+LwotbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC4JICAgICAgICBCdWxcIHZlXCAmRGXEn2nFn3RpclwuXC5cLgorbWVudXRyYW5zICZGaW5kXC5cLlwuPFRhYj4vCQkmQnVsXC5cLlwuPFRhYj4vCittZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLglCdWxcIHZlXCAmRGXEn2nFn3RpclwuXC5cLgogbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC48VGFiPjolcwlCdWxcIHZlXCAmRGXEn2nFn3RpclwuXC5cLjxUYWI+OiVzCiBtZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLjxUYWI+OnMJQnVsXCB2ZVwgJkRlxJ9pxZ90aXJcLlwuXC48VGFiPjpzCiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0KLW1lbnV0cmFucyBTZXR0aW5nc1wgJldpbmRvdwkJJkF5YXJsYXJcIFBlbmNlcmVzaQorbWVudXRyYW5zIFNldHRpbmdzXCAmV2luZG93CSZBeWFybGFyXCBQZW5jZXJlc2kKIG1lbnV0cmFucyBTdGFydHVwXCAmU2V0dGluZ3MJQmHFn2xhbiZnxLHDp1wgQXlhcmxhcsSxCi1tZW51dHJhbnMgJkdsb2JhbFwgU2V0dGluZ3MJCUdlJm5lbFwgQXlhcmxhcgotbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkJJkRvc3lhXCBBeWFybGFyxLEKLW1lbnV0cmFucyBDJm9sb3JcIFNjaGVtZQkJJlJlbmtcIETDvHplbmkKLW1lbnV0cmFucyAmS2V5bWFwCQkJICAgIETDvMSfbWVcICZFxZ9sZW0KK21lbnV0cmFucyAmR2xvYmFsXCBTZXR0aW5ncwlHZSZuZWxcIEF5YXJsYXIKK21lbnV0cmFucyBGJmlsZVwgU2V0dGluZ3MJJkRvc3lhXCBBeWFybGFyxLEKK21lbnV0cmFucyBDJm9sb3JcIFNjaGVtZQkmUmVua1wgRMO8emVuaQorbWVudXRyYW5zICZLZXltYXAJCUTDvMSfbWVcICZFxZ9sZW0KIG1lbnV0cmFucyBTZWxlY3RcIEZvJm50XC5cLlwuCVlhJnrEsXRpcGkgU2XDp1wuXC5cLgorCiAiPj4+LS0tLS0tLS0tLS0tLS0tLS0gRWRpdC9HbG9iYWwgc2V0dGluZ3MKLW1lbnV0cmFucyBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEgICAgICAgIERpemdpXCAmVnVyZ3VsYW1hc8SxbsSxXCBBw6cvS2FwYXQ8VGFiPjpzZXRcIGhscyEKLW1lbnV0cmFucyBUb2dnbGVcICZJZ25vcmluZ1wgQ2FzZTxUYWI+OnNldFwgaWMhCQkgICAgICAgIELDnFnDnEsva8O8w6fDvGtcIEhhcmZcICZEdXlhcmzEsVwgQcOnL0thcGF0PFRhYj46c2V0XCBpYyEKK21lbnV0cmFucyBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEJCURpemdpXCAmVnVyZ3VsYW1hc8SxbsSxXCBBw6cvS2FwYXQ8VGFiPjpzZXRcIGhscyEKK21lbnV0cmFucyBUb2dnbGVcICZJZ25vcmluZ1wgQ2FzZTxUYWI+OnNldFwgaWMhCQkgCULDnFnDnEsva8O8w6fDvGtcIEhhcmZcICZEdXlhcmzEsVwgQcOnL0thcGF0PFRhYj46c2V0XCBpYyEKIG1lbnV0cmFucyBUb2dnbGVcICZTaG93aW5nXCBNYXRjaGVkXCBQYWlyczxUYWI+OnNldFwgc20hCUXFnyZsZcWfZW5cIMSwa2lsaWxlcmlcIEHDpy9LYXBhdDxUYWI+OnNldFwgc20hCi1tZW51dHJhbnMgJkNvbnRleHRcIExpbmVzCQkJCSAgICAgICAgICAgICAgICAgICAgxLAmbWxlw6dsZVwgT3luYXlhblwgU2F0xLFybGFyCi1tZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQJCQkJICAgICAgICAgICAgICAgICAgICAmU2FuYWxcIETDvHplbmxlbWUKLW1lbnV0cmFucyBUb2dnbGVcIEluc2VydFwgJk1vZGU8VGFiPjpzZXRcIGltIQkJICAgICAgICBFa2xlbWVcICZLaXBpbmlcIEHDpy9LYXBhdDxUYWI+OnNldFwgaW0hCi1tZW51dHJhbnMgVG9nZ2xlXCBWaVwgQyZvbXBhdGliaWxpdHk8VGFiPjpzZXRcIGNwIQkJICAgICZWaVwgVXl1bWx1XCBLaXBpXCBBw6cvS2FwYXQ8VGFiPjpzZXRcIGNwIQotbWVudXRyYW5zIFNlYXJjaFwgJlBhdGhcLlwuXC4JCQkJICAgICAgICAgICAgICAgICZBcmFtYVwgWW9sdVwuXC5cLgotbWVudXRyYW5zIFRhJmdcIEZpbGVzXC5cLlwuCQkJCSAgICAgICAgICAgICAgICAgICAgJkV0aWtldFwgRG9zeWFsYXLEsVwuXC5cLgorbWVudXRyYW5zICZDb250ZXh0XCBMaW5lcwkJCQkJxLAmbWxlw6dsZVwgT3luYXlhblwgU2F0xLFybGFyCittZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQJCQkJCSZTYW5hbFwgRMO8emVubGVtZQorbWVudXRyYW5zIFRvZ2dsZVwgSW5zZXJ0XCAmTW9kZTxUYWI+OnNldFwgaW0hCQkJRWtsZW1lXCAmS2lwaW5pXCBBw6cvS2FwYXQ8VGFiPjpzZXRcIGltIQorbWVudXRyYW5zIFRvZ2dsZVwgVmlcIEMmb21wYXRpYmlsaXR5PFRhYj46c2V0XCBjcCEJCSZWaVwgVXl1bWx1XCBLaXBpXCBBw6cvS2FwYXQ8VGFiPjpzZXRcIGNwIQorbWVudXRyYW5zIFNlYXJjaFwgJlBhdGhcLlwuXC4JCQkJCSZBcmFtYVwgWW9sdVwuXC5cLgorbWVudXRyYW5zIFRhJmdcIEZpbGVzXC5cLlwuCQkJCQkmRXRpa2V0XCBEb3N5YWxhcsSxXC5cLlwuCiAiCi1tZW51dHJhbnMgVG9nZ2xlXCAmVG9vbGJhcgkJCQkgICAgJkFyYcOnXCDDh3VidcSfdW51XCBBw6cvS2FwYXQKLW1lbnV0cmFucyBUb2dnbGVcICZCb3R0b21cIFNjcm9sbGJhcgkJQSZsdFwgS2F5ZMSxcm1hXCDDh3VidcSfdW51XCBBw6cvS2FwYXQKLW1lbnV0cmFucyBUb2dnbGVcICZMZWZ0XCBTY3JvbGxiYXIJCQkmU29sXCBLYXlkxLFybWFcIMOHdWJ1xJ91bnVcIEHDpy9LYXBhdAotbWVudXRyYW5zIFRvZ2dsZVwgJlJpZ2h0XCBTY3JvbGxiYXIJCSAgICBTJmHEn1wgS2F5ZMSxcm1hXCDDh3VidcSfdW51XCBBw6cvS2FwYXQgIAkKK21lbnV0cmFucyBUb2dnbGVcICZUb29sYmFyCQkmQXJhw6dcIMOHdWJ1xJ91bnVcIEHDpy9LYXBhdAorbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyCUEmbHRcIEtheWTEsXJtYVwgw4d1YnXEn3VudVwgQcOnL0thcGF0CittZW51dHJhbnMgVG9nZ2xlXCAmTGVmdFwgU2Nyb2xsYmFyCSZTb2xcIEtheWTEsXJtYVwgw4d1YnXEn3VudVwgQcOnL0thcGF0CittZW51dHJhbnMgVG9nZ2xlXCAmUmlnaHRcIFNjcm9sbGJhcglTJmHEn1wgS2F5ZMSxcm1hXCDDh3VidcSfdW51XCBBw6cvS2FwYXQKKwogIj4+Pi0+Pj4tLS0tLS0tLS0tLS0tIEVkaXQvR2xvYmFsIHNldHRpbmdzL1ZpcnR1YWwgZWRpdAotbWVudXRyYW5zIE5ldmVyCQkJCQlLYXBhbMSxCi1tZW51dHJhbnMgQmxvY2tcIFNlbGVjdGlvbgkJQmxva1wgU2XDp2ltaQotbWVudXRyYW5zIEluc2VydFwgTW9kZQkJCUVrbGVtZVwgS2lwaQorbWVudXRyYW5zIE5ldmVyCQkJS2FwYWzEsQorbWVudXRyYW5zIEJsb2NrXCBTZWxlY3Rpb24JQmxva1wgU2XDp2ltaQorbWVudXRyYW5zIEluc2VydFwgTW9kZQkJRWtsZW1lXCBLaXBpCiBtZW51dHJhbnMgQmxvY2tcIGFuZFwgSW5zZXJ0CUJsb2tcIFNlw6dpbWluZGVcIHZlXCBFa2xlbWVcIEtpcGluZGUKIG1lbnV0cmFucyBBbHdheXMJCQkJSGVyXCBaYW1hblwgQcOnxLFrCiAiPj4+LS0tLS0tLS0tLS0tLS0tLS0gRWRpdC9GaWxlIHNldHRpbmdzCi1tZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmTnVtYmVyaW5nPFRhYj46c2V0XCBudSEJICAgICAgICAmU2F0xLFyXCBOdW1hcmFsYW5kxLFybWF5xLFcIEHDpy9LYXBhdDxUYWI+OnNldFwgbnUhCittZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmTnVtYmVyaW5nPFRhYj46c2V0XCBudSEJCSZTYXTEsXJcIE51bWFyYWxhbmTEsXJtYXnEsVwgQcOnL0thcGF0PFRhYj46c2V0XCBudSEKIG1lbnV0cmFucyBUb2dnbGVcIFJlbGF0aSZ2ZVwgTGluZVwgTnVtYmVyaW5nPFRhYj46c2V0XCBybnUhCSZHw7ZyZWNlbGlcIFNhdMSxclwgTnVtYXJhbGFuZMSxcm1hecSxXCBBw6cvS2FwYXQ8VGFiPjpzZXRcIG5ydSEKLW1lbnV0cmFucyBUb2dnbGVcICZMaXN0XCBNb2RlPFRhYj46c2V0XCBsaXN0IQkJICAgICAgICBHw7YmcsO8bm1leWVuXCBLYXJha3RlcmxlcmlcIEHDpy9LYXBhdDxUYWI+OnNldFwgbGlzdCEKLW1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZXcmFwcGluZzxUYWI+OnNldFwgd3JhcCEJICAgICAgICBTYSZ0xLFyXCBLYXlkxLFybWF5xLFcIEHDpy9LYXBhdDxUYWI+OnNldFwgd3JhcCEKLW1lbnV0cmFucyBUb2dnbGVcIFcmcmFwcGluZ1wgYXRcIFdvcmQ8VGFiPjpzZXRcIGxiciEJICAgIFPDtiZ6Y8O8a1wgS2F5ZMSxcm1hecSxXCBBw6cvS2FwYXQ8VGFiPjpzZXRcIGxiciEKLW1lbnV0cmFucyBUb2dnbGVcIFRhYlwgJkV4cGFuZGluZy10YWI8VGFiPjpzZXRcIGV0IQkgICAgICAgIFMmZWttZWxlcmlcIEJvxZ9sdWtsYXJhXCBEw7Zuw7zFn3TDvHJtZXlpXCBBw6cvS2FwYXQ8VGFiPjpzZXRcIGV0IQotbWVudXRyYW5zIFRvZ2dsZVwgJkF1dG9cIEluZGVudGluZzxUYWI+OnNldFwgYWkhCSAgICAgICAgJk90b21hdGlrXCBHaXJpbnRpbGVtZXlpXCBBw6cvS2FwYXQ8VGFiPjpzZXRcIGFpIQotbWVudXRyYW5zIFRvZ2dsZVwgJkMtU3R5bGVcIEluZGVudGluZzxUYWI+OnNldFwgY2luIQkgICAgJkNcIFRhcnrEsVwgR2lyaW50aWxlbWV5aVwgQcOnL0thcGF0PFRhYj46c2V0XCBjaW4hCittZW51dHJhbnMgVG9nZ2xlXCAmTGlzdFwgTW9kZTxUYWI+OnNldFwgbGlzdCEJCQlHw7YmcsO8bm1leWVuXCBLYXJha3RlcmxlcmlcIEHDpy9LYXBhdDxUYWI+OnNldFwgbGlzdCEKK21lbnV0cmFucyBUb2dnbGVcIExpbmVcICZXcmFwcGluZzxUYWI+OnNldFwgd3JhcCEJCVNhJnTEsXJcIEtheWTEsXJtYXnEsVwgQcOnL0thcGF0PFRhYj46c2V0XCB3cmFwIQorbWVudXRyYW5zIFRvZ2dsZVwgVyZyYXBwaW5nXCBhdFwgV29yZDxUYWI+OnNldFwgbGJyIQkJU8O2Jnpjw7xrXCBLYXlkxLFybWF5xLFcIEHDpy9LYXBhdDxUYWI+OnNldFwgbGJyIQorbWVudXRyYW5zIFRvZ2dsZVwgVGFiXCAmRXhwYW5kaW5nLXRhYjxUYWI+OnNldFwgZXQhCQlTJmVrbWVsZXJpXCBCb8WfbHVrbGFyYVwgRMO2bsO8xZ90w7xybWV5aVwgQcOnL0thcGF0PFRhYj46c2V0XCBldCEKK21lbnV0cmFucyBUb2dnbGVcICZBdXRvXCBJbmRlbnRpbmc8VGFiPjpzZXRcIGFpIQkJJk90b21hdGlrXCBHaXJpbnRpbGVtZXlpXCBBw6cvS2FwYXQ8VGFiPjpzZXRcIGFpIQorbWVudXRyYW5zIFRvZ2dsZVwgJkMtU3R5bGVcIEluZGVudGluZzxUYWI+OnNldFwgY2luIQkJJkNcIFRhcnrEsVwgR2lyaW50aWxlbWV5aVwgQcOnL0thcGF0PFRhYj46c2V0XCBjaW4hCiAiPj4+LS0tCi1tZW51dHJhbnMgJlNoaWZ0d2lkdGgJCQkmR2lyaW50aVwgRMO8emV5aQotbWVudXRyYW5zIFNvZnRcICZUYWJzdG9wCQkmU2VrbWVcIEdlbmnFn2xpxJ9pCittZW51dHJhbnMgJlNoaWZ0d2lkdGgJCSZHaXJpbnRpXCBEw7x6ZXlpCittZW51dHJhbnMgU29mdFwgJlRhYnN0b3AJJlNla21lXCBHZW5pxZ9sacSfaQogbWVudXRyYW5zIFRlJnh0XCBXaWR0aFwuXC5cLgkmTWV0aW5cIEdlbmnFn2xpxJ9pXC5cLlwuCiBtZW51dHJhbnMgJkZpbGVcIEZvcm1hdFwuXC5cLgkmRG9zeWFcIEJpw6dpbWlcLlwuXC4KLSIKLSIKLSIKKwogIiBUb29scyBtZW51Ci1tZW51dHJhbnMgJkp1bXBcIHRvXCBUaGlzXCBUYWc8VGFiPmdeXQkJxZ4mdVwgRXRpa2V0ZVwgQXRsYTxUYWI+Z15dCi1tZW51dHJhbnMgSnVtcFwgJkJhY2s8VGFiPl5UCQkJCSZHZXJpXCBEw7ZuPFRhYj5eVAotbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkJCQkmRXRpa2V0XCBEb3N5YXPEsVwgT2x1xZ90dXIKK21lbnV0cmFucyAmSnVtcFwgdG9cIFRoaXNcIFRhZzxUYWI+Z15dCcWeJnVcIEV0aWtldGVcIEF0bGE8VGFiPmdeXQorbWVudXRyYW5zIEp1bXBcICZCYWNrPFRhYj5eVAkJJkdlcmlcIETDtm48VGFiPl5UCittZW51dHJhbnMgQnVpbGRcICZUYWdzXCBGaWxlCQkmRXRpa2V0XCBEb3N5YXPEsVwgT2x1xZ90dXIKICItLS0tLS0tLS0tLS0tLS0tLS0tCi1tZW51dHJhbnMgJkZvbGRpbmcJCQkJCSZLxLF2xLFybWFsYXIKLW1lbnV0cmFucyAmU3BlbGxpbmcJCQkJCSZZYXrEsW1cIERlbmV0aW1pCi1tZW51dHJhbnMgJkRpZmYJCQkJCQkmQXlyxLFtbGFyXCAoZGlmZikKK21lbnV0cmFucyAmRm9sZGluZwkmS8SxdsSxcm1hbGFyCittZW51dHJhbnMgJlNwZWxsaW5nCSZZYXrEsW1cIERlbmV0aW1pCittZW51dHJhbnMgJkRpZmYJCSZBeXLEsW1sYXJcIChkaWZmKQogIi0tLS0tLS0tLS0tLS0tLS0tLS0KLW1lbnV0cmFucyAmTWFrZTxUYWI+Om1ha2UJCQkJCQkmRGVybGU8VGFiPjptYWtlCi1tZW51dHJhbnMgJkxpc3RcIEVycm9yczxUYWI+OmNsCQkJCQkmSGF0YWxhcsSxXCBMaXN0ZWxlPFRhYj46Y2wKLW1lbnV0cmFucyBMJmlzdFwgTWVzc2FnZXM8VGFiPjpjbCEJCQkJxLAmbGV0aWxlcmlcIExpc3RlbGU8VGFiPjpjbCEKLW1lbnV0cmFucyAmTmV4dFwgRXJyb3I8VGFiPjpjbgkJCQkJQmlyXCAmU29ucmFraVwgSGF0YTxUYWI+OmNuCi1tZW51dHJhbnMgJlByZXZpb3VzXCBFcnJvcjxUYWI+OmNwCQkJCUJpclwgw5YmbmNla2lcIEhhdGE8VGFiPjpjcAotbWVudXRyYW5zICZPbGRlclwgTGlzdDxUYWI+OmNvbGQJCQkJRGFoYVwgJkVza2lcIEhhdGFsYXI8VGFiPjpjb2xkCi1tZW51dHJhbnMgTiZld2VyXCBMaXN0PFRhYj46Y25ldwkJCQlEYWhhXCAmWWVuaVwgSGF0YWxhcjxUYWI+OmNuZXcKLW1lbnV0cmFucyBFcnJvclwgJldpbmRvdwkJCQkJCUhhdGFsYXJcICZQZW5jZXJlc2kKLW1lbnV0cmFucyBTZSZ0XCBDb21waWxlcgkJCQkJCURlJnJsZXlpY2lcIFNlw6cKK21lbnV0cmFucyAmTWFrZTxUYWI+Om1ha2UJCQkmRGVybGU8VGFiPjptYWtlCittZW51dHJhbnMgJkxpc3RcIEVycm9yczxUYWI+OmNsCQkJJkhhdGFsYXLEsVwgTGlzdGVsZTxUYWI+OmNsCittZW51dHJhbnMgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whCQnEsCZsZXRpbGVyaVwgTGlzdGVsZTxUYWI+OmNsIQorbWVudXRyYW5zICZOZXh0XCBFcnJvcjxUYWI+OmNuCQkJQmlyXCAmU29ucmFraVwgSGF0YTxUYWI+OmNuCittZW51dHJhbnMgJlByZXZpb3VzXCBFcnJvcjxUYWI+OmNwCQlCaXJcIMOWJm5jZWtpXCBIYXRhPFRhYj46Y3AKK21lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkCQlEYWhhXCAmRXNraVwgSGF0YWxhcjxUYWI+OmNvbGQKK21lbnV0cmFucyBOJmV3ZXJcIExpc3Q8VGFiPjpjbmV3CQlEYWhhXCAmWWVuaVwgSGF0YWxhcjxUYWI+OmNuZXcKK21lbnV0cmFucyBFcnJvclwgJldpbmRvdwkJCUhhdGFsYXJcICZQZW5jZXJlc2kKK21lbnV0cmFucyBTZSZ0XCBDb21waWxlcgkJCURlJnJsZXlpY2lcIFNlw6cKIG1lbnV0cmFucyBTaG93XCBDb21waWxlclwgU2UmdHRpbmdzXCBpblwgTWVudQlEZXJsZXlpY2lcIEF5YXJsYXLEsW7EsVwgTWVuw7xkZVwgJkfDtnN0ZXIgCiAiLS0tLS0tLS0tLS0tLS0tLS0tLQotbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSEVYPFRhYj46JSF4eGQJCQlIRVgnZVwgRMO2Jm7DvMWfdMO8cjxUYWI+OiUheHhkCi1tZW51dHJhbnMgQ29udmUmcnRcIEJhY2s8VGFiPjolIXh4ZFwgLXIJCQlIRVgnJnRlblwgRMO2bsO8xZ90w7xyPFRhYj46JSF4eGRcIC1yCittZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAkJSEVYJ2VcIETDtiZuw7zFn3TDvHI8VGFiPjolIXh4ZAorbWVudXRyYW5zIENvbnZlJnJ0XCBCYWNrPFRhYj46JSF4eGRcIC1yCQlIRVgnJnRlblwgRMO2bsO8xZ90w7xyPFRhYj46JSF4eGRcIC1yCiAiPj4+LS0tLS0tLS0tLS0tLS0tLSBUb29scy9TcGVsbGluZwotbWVudXRyYW5zICZTcGVsbFwgQ2hlY2tcIE9uCQkJCQkJWWF6xLFtXCBEZW5ldGltaW5pXCAmQcOnCi1tZW51dHJhbnMgU3BlbGxcIENoZWNrXCAmT2ZmCQkJCQlZYXrEsW1cIERlbmV0aW1pbmlcICZLYXBhdAotbWVudXRyYW5zIFRvXCAmTmV4dFwgRXJyb3I8VGFiPl1zCQkJCUJpclwgJlNvbnJha2lcIEhhdGE8VGFiPl1zCi1tZW51dHJhbnMgVG9cICZQcmV2aW91c1wgRXJyb3I8VGFiPltzCQkJQmlyXCDDliZuY2VraVwgSGF0YTxUYWI+W3MKLW1lbnV0cmFucyBTdWdnZXN0XCAmQ29ycmVjdGlvbnM8VGFiPno9CQkJRMO8JnplbHRtZVwgw5ZuZXI8VGFiPno9CittZW51dHJhbnMgJlNwZWxsXCBDaGVja1wgT24JCQlZYXrEsW1cIERlbmV0aW1pbmlcICZBw6cKK21lbnV0cmFucyBTcGVsbFwgQ2hlY2tcICZPZmYJCQlZYXrEsW1cIERlbmV0aW1pbmlcICZLYXBhdAorbWVudXRyYW5zIFRvXCAmTmV4dFwgRXJyb3I8VGFiPl1zCQlCaXJcICZTb25yYWtpXCBIYXRhPFRhYj5dcworbWVudXRyYW5zIFRvXCAmUHJldmlvdXNcIEVycm9yPFRhYj5bcwkJQmlyXCDDliZuY2VraVwgSGF0YTxUYWI+W3MKK21lbnV0cmFucyBTdWdnZXN0XCAmQ29ycmVjdGlvbnM8VGFiPno9CQlEw7wmemVsdG1lXCDDlm5lcjxUYWI+ej0KIG1lbnV0cmFucyAmUmVwZWF0XCBDb3JyZWN0aW9uPFRhYj46c3BlbGxyZXBhbGwJRMO8emVsdG1leWlcICZZaW5lbGU8VGFiPnNwZWxscmVwYWxsCiAiLS0tLS0tLS0tLS0tLS0tLS0tLQotbWVudXRyYW5zIFNldFwgTGFuZ3VhZ2VcIHRvXCAiZW4iCQlEaWxpXCAiZW4iXCB5YXAKK21lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuIglEaWxpXCAiZW4iXCB5YXAKIG1lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuX2F1IglEaWxpXCAiZW5fYXUiXCB5YXAKIG1lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuX2NhIglEaWxpXCAiZW5fY2EiXCB5YXAKIG1lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuX2diIglEaWxpXCAiZW5fZ2IiXCB5YXAKIG1lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuX256IglEaWxpXCAiZW5fbnoiXCB5YXAKIG1lbnV0cmFucyBTZXRcIExhbmd1YWdlXCB0b1wgImVuX3VzIglEaWxpXCAiZW5fdXMiXCB5YXAKLW1lbnV0cmFucyAmRmluZFwgTW9yZVwgTGFuZ3VhZ2VzCQkmQmHFn2thXCBEaWxsZXJcIEJ1bAotbGV0IGc6bWVudXRyYW5zX3NldF9sYW5nX3RvID0JCQknRGlsIFnDvGtsZScKLSIKLSIKK21lbnV0cmFucyAmRmluZFwgTW9yZVwgTGFuZ3VhZ2VzCSZCYcWfa2FcIERpbGxlclwgQnVsCitsZXQgZzptZW51dHJhbnNfc2V0X2xhbmdfdG8gPQkJJ0RpbCBZw7xrbGUnCisKICIgVGhlIFNwZWxsaW5nIHBvcHVwIG1lbnUKLSIKLSIKLWxldCBnOm1lbnV0cmFuc19zcGVsbF9jaGFuZ2VfQVJHX3RvID0JCQknRMO8emVsdGlsZWNlazpcICIlcyJcIC0+JworbGV0IGc6bWVudXRyYW5zX3NwZWxsX2NoYW5nZV9BUkdfdG8gPQkJJ0TDvHplbHRpbGVjZWs6XCAiJXMiXCAtPicKIGxldCBnOm1lbnV0cmFuc19zcGVsbF9hZGRfQVJHX3RvX3dvcmRfbGlzdCA9CSciJXMiXCBzw7Z6Y8O8xJ/DvG7DvFwgc8O2emzDvMSfZVwgZWtsZScKLWxldCBnOm1lbnV0cmFuc19zcGVsbF9pZ25vcmVfQVJHID0JCQkJJyIlcyJcIHPDtnpjw7zEn8O8bsO8XCB5b2tzYXknCitsZXQgZzptZW51dHJhbnNfc3BlbGxfaWdub3JlX0FSRyA9CQknIiVzIlwgc8O2emPDvMSfw7xuw7xcIHlva3NheScKICI+Pj4tLS0tLS0tLS0tLS0tLS0tIEZvbGRzCi1tZW51dHJhbnMgJkVuYWJsZS9EaXNhYmxlXCBGb2xkczxUYWI+emkJCQkmS8SxdsSxcm1hbGFyxLFcIEHDpy9LYXBhdDxUYWI+emkKLW1lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkJCcSwJm1sZWNpblwgT2xkdcSfdVwgU2F0xLFyxLFcIEfDtnLDvG50w7xsZTxUYWI+enYKK21lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIEZvbGRzPFRhYj56aQkJJkvEsXbEsXJtYWxhcsSxXCBBw6cvS2FwYXQ8VGFiPnppCittZW51dHJhbnMgJlZpZXdcIEN1cnNvclwgTGluZTxUYWI+enYJCcSwJm1sZWNpblwgT2xkdcSfdVwgU2F0xLFyxLFcIEfDtnLDvG50w7xsZTxUYWI+enYKIG1lbnV0cmFucyBWaWUmd1wgQ3Vyc29yXCBMaW5lXCBPbmx5PFRhYj56TXp4CVlhJmxuxLF6Y2FcIMSwbWxlY2luXCBPbGR1xJ91XCBTYXTEsXLEsVwgR8O2csO8bnTDvGxlPFRhYj56TXp4Ci1tZW51dHJhbnMgQyZsb3NlXCBNb3JlXCBGb2xkczxUYWI+em0JCQkmRGFoYVwgRmF6bGFcIEvEsXbEsXJtYVwgS2FwYXQ8VGFiPnptCi1tZW51dHJhbnMgJkNsb3NlXCBBbGxcIEZvbGRzPFRhYj56TQkJCQlCw7x0w7xuXCBLxLEmdsSxcm1hbGFyxLFcIEthcGF0PFRhYj56TQotbWVudXRyYW5zICZPcGVuXCBBbGxcIEZvbGRzPFRhYj56UgkJCQlCw7wmdMO8blwgS8SxdsSxcm1hbGFyxLFcIEHDpzxUYWI+elIKLW1lbnV0cmFucyBPJnBlblwgTW9yZVwgRm9sZHM8VGFiPnpyCQkJCUQmYWhhXCBGYXpsYVwgS8SxdsSxcm1hXCBBw6c8VGFiPnpyCi1tZW51dHJhbnMgRm9sZFwgTWV0JmhvZAkJCQkJCQlLxLF2xLEmcm1hXCBZw7ZudGVtaQotbWVudXRyYW5zIENyZWF0ZVwgJkZvbGQ8VGFiPnpmCQkJCQlLxLF2xLFybWFcICZPbHXFn3R1cjxUYWI+emYKLW1lbnV0cmFucyAmRGVsZXRlXCBGb2xkPFRhYj56ZAkJCQkJS8SxdsSxcm1hXCAmU2lsPFRhYj56ZAotbWVudXRyYW5zIERlbGV0ZVwgJkFsbFwgRm9sZHM8VGFiPnpECQkJVMO8Jm1cIEvEsXbEsXJtYWxhcsSxXCBTaWw8VGFiPnpECi1tZW51dHJhbnMgRm9sZFwgY29sJnVtblwgV2lkdGgJCQkJCUvEsXbEsXJtYVwgU8O8dHVudVwgJkdlbmnFn2xpxJ9pCittZW51dHJhbnMgQyZsb3NlXCBNb3JlXCBGb2xkczxUYWI+em0JCSZEYWhhXCBGYXpsYVwgS8SxdsSxcm1hXCBLYXBhdDxUYWI+em0KK21lbnV0cmFucyAmQ2xvc2VcIEFsbFwgRm9sZHM8VGFiPnpNCQlCw7x0w7xuXCBLxLEmdsSxcm1hbGFyxLFcIEthcGF0PFRhYj56TQorbWVudXRyYW5zICZPcGVuXCBBbGxcIEZvbGRzPFRhYj56UgkJQsO8JnTDvG5cIEvEsXbEsXJtYWxhcsSxXCBBw6c8VGFiPnpSCittZW51dHJhbnMgTyZwZW5cIE1vcmVcIEZvbGRzPFRhYj56cgkJRCZhaGFcIEZhemxhXCBLxLF2xLFybWFcIEHDpzxUYWI+enIKK21lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkJCUvEsXbEsSZybWFcIFnDtm50ZW1pCittZW51dHJhbnMgQ3JlYXRlXCAmRm9sZDxUYWI+emYJCQlLxLF2xLFybWFcICZPbHXFn3R1cjxUYWI+emYKK21lbnV0cmFucyAmRGVsZXRlXCBGb2xkPFRhYj56ZAkJCUvEsXbEsXJtYVwgJlNpbDxUYWI+emQKK21lbnV0cmFucyBEZWxldGVcICZBbGxcIEZvbGRzPFRhYj56RAkJVMO8Jm1cIEvEsXbEsXJtYWxhcsSxXCBTaWw8VGFiPnpECittZW51dHJhbnMgRm9sZFwgY29sJnVtblwgV2lkdGgJCQlLxLF2xLFybWFcIFPDvHR1bnVcICZHZW5pxZ9sacSfaQogIj4+Pi0+Pj4tLS0tLS0tLS0tLSBUb29scy9Gb2xkcy9Gb2xkIE1ldGhvZAotbWVudXRyYW5zIE0mYW51YWwJCSZFbFwgxLBsZQotbWVudXRyYW5zIEkmbmRlbnQJCSZHaXJpbnRpCittZW51dHJhbnMgTSZhbnVhbAkmRWxcIMSwbGUKK21lbnV0cmFucyBJJm5kZW50CSZHaXJpbnRpCiBtZW51dHJhbnMgRSZ4cHJlc3Npb24JxLAmZmFkZQotbWVudXRyYW5zIFMmeW50YXgJCSZTw7Z6ZGl6aW0KLW1lbnV0cmFucyBNYSZya2VyCQnEsCZtbGV5aWNpCittZW51dHJhbnMgUyZ5bnRheAkmU8O2emRpemltCittZW51dHJhbnMgTWEmcmtlcgnEsCZtbGV5aWNpCiAiPj4+LS0tLS0tLS0tLS0tLS0tIFRvb2xzL0RpZmYKLW1lbnV0cmFucyAmVXBkYXRlCQkmR8O8bmNlbGxlCittZW51dHJhbnMgJlVwZGF0ZQkmR8O8bmNlbGxlCiBtZW51dHJhbnMgJkdldFwgQmxvY2sJQmxvxJ91XCAmQWwKIG1lbnV0cmFucyAmUHV0XCBCbG9jawlCbG/En3VcICZLb3kKICI+Pj4tLS0tLS0tLS0tLS0tLS0gVG9vbHMvRGlmZi9FcnJvciB3aW5kb3cKLW1lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbgkJJkfDvG5jZWxsZTxUYWI+OmN3aW4KK21lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbgkmR8O8bmNlbGxlPFRhYj46Y3dpbgogbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZQkmS2FwYXQ8VGFiPjpjY2xvc2UKLW1lbnV0cmFucyAmT3BlbjxUYWI+OmNvcGVuCQkmQcOnPFRhYj46Y29wZW4KLSIKLSIKK21lbnV0cmFucyAmT3BlbjxUYWI+OmNvcGVuCSZBw6c8VGFiPjpjb3BlbgorCiAiIFN5bnRheCBtZW51Ci0iCi1tZW51dHJhbnMgJlNob3dcIEZpbGVcIFR5cGVzXCBpblwgTWVudQkJRG9zeWFcIFTDvHJsZXJpbmlcIE1lbsO8ZGVcICZHw7ZzdGVyCi1tZW51dHJhbnMgU2V0XCAnJnN5bnRheCdcIG9ubHkJCQkJWWFsbsSxemNhXCAnc3ludGF4J1wgJkF5YXJsYQotbWVudXRyYW5zIFNldFwgJyZmaWxldHlwZSdcIHRvbwkJCQknZmlsZXR5cGUnXCDEsMOnaW5cICZkZVwgQXlhcmxhCi1tZW51dHJhbnMgJk9mZgkJCQkJCQkJJkthcGF0Ci1tZW51dHJhbnMgJk1hbnVhbAkJCQkJCQkmRWxcIMSwbGUKLW1lbnV0cmFucyBBJnV0b21hdGljCQkJCQkJJk90b21hdGlrCi1tZW51dHJhbnMgT24vT2ZmXCBmb3JcICZUaGlzXCBGaWxlCQkJJkJ1XCBEb3N5YVwgxLDDp2luXCBBw6cvS2FwYXQKLW1lbnV0cmFucyBDbyZsb3JcIFRlc3QJCQkJCQkmUmVua1wgVGVzdGkKLW1lbnV0cmFucyAmSGlnaGxpZ2h0XCBUZXN0CQkJCQkmVnVyZ3VsYW1hXCBUZXN0aQotbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSFRNTAkJCQkmSFRNTCd5ZVwgRMO2bsO8xZ90w7xyCi0iCi0iCittZW51dHJhbnMgJlNob3dcIEZpbGVcIFR5cGVzXCBpblwgTWVudQlEb3N5YVwgVMO8cmxlcmluaVwgTWVuw7xkZVwgJkfDtnN0ZXIKK21lbnV0cmFucyBTZXRcICcmc3ludGF4J1wgb25seQkJWWFsbsSxemNhXCAnc3ludGF4J1wgJkF5YXJsYQorbWVudXRyYW5zIFNldFwgJyZmaWxldHlwZSdcIHRvbwkJJ2ZpbGV0eXBlJ1wgxLDDp2luXCAmZGVcIEF5YXJsYQorbWVudXRyYW5zICZPZmYJCQkJJkthcGF0CittZW51dHJhbnMgJk1hbnVhbAkJCSZFbFwgxLBsZQorbWVudXRyYW5zIEEmdXRvbWF0aWMJCQkmT3RvbWF0aWsKK21lbnV0cmFucyBPbi9PZmZcIGZvclwgJlRoaXNcIEZpbGUJJkJ1XCBEb3N5YVwgxLDDp2luXCBBw6cvS2FwYXQKK21lbnV0cmFucyBDbyZsb3JcIFRlc3QJCQkmUmVua1wgVGVzdGkKK21lbnV0cmFucyAmSGlnaGxpZ2h0XCBUZXN0CQkmVnVyZ3VsYW1hXCBUZXN0aQorbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSFRNTAkJJkhUTUwneWVcIETDtm7DvMWfdMO8cgorCiAiIEJ1ZmZlcnMgbWVudQotIgogbWVudXRyYW5zICZSZWZyZXNoXCBtZW51CSZNZW7DvHnDvFwgR8O8bmNlbGxlCi1tZW51dHJhbnMgRGVsZXRlCQkJJlNpbAorbWVudXRyYW5zIERlbGV0ZQkJJlNpbAogbWVudXRyYW5zICZBbHRlcm5hdGUJCcOWJnRla2kKLW1lbnV0cmFucyAmTmV4dAkJCQlTbyZucmFraQotbWVudXRyYW5zICZQcmV2aW91cwkJCcOWbiZjZWtpCittZW51dHJhbnMgJk5leHQJCQlTbyZucmFraQorbWVudXRyYW5zICZQcmV2aW91cwkJw5ZuJmNla2kKIG1lbnV0cmFucyBbTm9cIEZpbGVdCQlbRG9zeWFcIFlva10KLSIKLSIKKwogIiBXaW5kb3cgbWVudQotIgotbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJCQkJWWVuaVwgJlBlbmNlcmU8VGFiPl5XbgotbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCQkJCVBlbmNlcmV5aVwgJkLDtmw8VGFiPl5XcwotbWVudXRyYW5zIFNwJmxpdFwgVG9cICM8VGFiPl5XXl4JCVBlbmNlcmV5aVwgQmHFn2thc8SxbmFcIELDtiZsPFRhYj5eV15eCittZW51dHJhbnMgJk5ldzxUYWI+XlduCQkJWWVuaVwgJlBlbmNlcmU8VGFiPl5XbgorbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCQlQZW5jZXJleWlcICZCw7ZsPFRhYj5eV3MKK21lbnV0cmFucyBTcCZsaXRcIFRvXCAjPFRhYj5eV15eCVBlbmNlcmV5aVwgQmHFn2thc8SxbmFcIELDtiZsPFRhYj5eV15eCiBtZW51dHJhbnMgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YJUGVuY2VyZXlpXCAmRGlrZXlcIE9sYXJha1wgQsO2bDxUYWI+Xld2Ci1tZW51dHJhbnMgU3BsaXRcIEZpbGVcIEUmeHBsb3JlcgkJWWVuaVwgQsO2bMO8Jm1kZVwgRG9zeWFcIEdlemdpbmluaVwgQcOnCittZW51dHJhbnMgU3BsaXRcIEZpbGVcIEUmeHBsb3JlcglZZW5pXCBCw7Zsw7wmbWRlXCBEb3N5YVwgR2V6Z2luaW5pXCBBw6cKICIKLW1lbnV0cmFucyAmQ2xvc2U8VGFiPl5XYwkJCQlQZW4mY2VyZXlpXCBLYXBhdDxUYWI+XldjCi1tZW51dHJhbnMgQ2xvc2VcICZPdGhlcihzKTxUYWI+XldvCQlEacSfZXJcIFBlbmNlcmVsZSZyaVwgS2FwYXQ8VGFiPl5XbworbWVudXRyYW5zICZDbG9zZTxUYWI+XldjCQlQZW4mY2VyZXlpXCBLYXBhdDxUYWI+XldjCittZW51dHJhbnMgQ2xvc2VcICZPdGhlcihzKTxUYWI+XldvCURpxJ9lclwgUGVuY2VyZWxlJnJpXCBLYXBhdDxUYWI+XldvCiAiCi1tZW51dHJhbnMgTW92ZVwgJlRvCQkJCQkJJlRhxZ/EsQotbWVudXRyYW5zIFJvdGF0ZVwgJlVwPFRhYj5eV1IJCQkmWXVrYXLEsVwgVGHFn8SxPFRhYj5eV1IKLW1lbnV0cmFucyBSb3RhdGVcICZEb3duPFRhYj5eV3IJCQkmQcWfYcSfxLFcIFRhxZ/EsTxUYWI+XldyCittZW51dHJhbnMgTW92ZVwgJlRvCQkmVGHFn8SxCittZW51dHJhbnMgUm90YXRlXCAmVXA8VGFiPl5XUgkmWXVrYXLEsVwgVGHFn8SxPFRhYj5eV1IKK21lbnV0cmFucyBSb3RhdGVcICZEb3duPFRhYj5eV3IJJkHFn2HEn8SxXCBUYcWfxLE8VGFiPl5XcgogIgotbWVudXRyYW5zICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CQkJJkXFn2l0XCBCb3l1dDxUYWI+Xlc9Ci1tZW51dHJhbnMgJk1heFwgSGVpZ2h0PFRhYj5eV18JCQlFJm5cIELDvHnDvGtcIFnDvGtzZWtsaWs8VGFiPl5XXwotbWVudXRyYW5zIE0maW5cIEhlaWdodDxUYWI+XlcxXwkJCUVuXCBLw7zDp8O8a1wgWcO8a3Nla2wmaWs8VGFiPl5XMV8KLW1lbnV0cmFucyBNYXhcICZXaWR0aDxUYWI+XldcfAkJCUVuXCBCw7x5w7xrXCBHZW4macWfbGlrPFRhYj5eV1x8Ci1tZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8CQkJRW5cIEvDvMOnw7xrXCBHZW5pxZ9saSZrPFRhYj5eVzFcfAorbWVudXRyYW5zICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CSZFxZ9pdFwgQm95dXQ8VGFiPl5XPQorbWVudXRyYW5zICZNYXhcIEhlaWdodDxUYWI+XldfCUUmblwgQsO8ecO8a1wgWcO8a3Nla2xpazxUYWI+XldfCittZW51dHJhbnMgTSZpblwgSGVpZ2h0PFRhYj5eVzFfCUVuXCBLw7zDp8O8a1wgWcO8a3Nla2wmaWs8VGFiPl5XMV8KK21lbnV0cmFucyBNYXhcICZXaWR0aDxUYWI+XldcfAlFblwgQsO8ecO8a1wgR2VuJmnFn2xpazxUYWI+XldcfAorbWVudXRyYW5zIE1pblwgV2lkdCZoPFRhYj5eVzFcfAlFblwgS8O8w6fDvGtcIEdlbmnFn2xpJms8VGFiPl5XMVx8CisKICI+Pj4tLS0tLS0tLS0tLS0tLS0tLSBXaW5kb3cvTW92ZSBUbwotbWVudXRyYW5zICZUb3A8VGFiPl5XSwkJCQkJJll1a2FyxLE8VGFiPl5XSwotbWVudXRyYW5zICZCb3R0b208VGFiPl5XSgkJCQkmQcWfYcSfxLE8VGFiPl5XSgotbWVudXRyYW5zICZMZWZ0XCBTaWRlPFRhYj5eV0gJCQlTbyZsYTxUYWI+XldICi1tZW51dHJhbnMgJlJpZ2h0XCBTaWRlPFRhYj5eV0wJCQkmU2HEn2E8VGFiPl5XTAotIgotIgorbWVudXRyYW5zICZUb3A8VGFiPl5XSwkJJll1a2FyxLE8VGFiPl5XSworbWVudXRyYW5zICZCb3R0b208VGFiPl5XSgkmQcWfYcSfxLE8VGFiPl5XSgorbWVudXRyYW5zICZMZWZ0XCBTaWRlPFRhYj5eV0gJU28mbGE8VGFiPl5XSAorbWVudXRyYW5zICZSaWdodFwgU2lkZTxUYWI+XldMCSZTYcSfYTxUYWI+XldMCisKICIgVGhlIHBvcHVwIG1lbnUKLSIKLSIKLW1lbnV0cmFucyAmVW5kbwkJCQkJJkdlcmlcIEFsCi1tZW51dHJhbnMgQ3UmdAkJCQkJJktlcwotbWVudXRyYW5zICZDb3B5CQkJCQlLJm9weWFsYQotbWVudXRyYW5zICZQYXN0ZQkJCQkmWWFwxLHFn3TEsXIKLW1lbnV0cmFucyAmRGVsZXRlCQkJCSZTaWwKLW1lbnV0cmFucyBTZWxlY3RcIEJsb2Nrd2lzZQkJJkJsb2tcIEJpw6dpbWluZGVcIFNlw6cKLW1lbnV0cmFucyBTZWxlY3RcICZXb3JkCQkJU8O2Jnpjw7xrXCBTZcOnCi1tZW51dHJhbnMgU2VsZWN0XCAmU2VudGVuY2UJCSZUw7xtY2VcIFNlw6cKK21lbnV0cmFucyAmVW5kbwkJCSZHZXJpXCBBbAorbWVudXRyYW5zIEN1JnQJCQkmS2VzCittZW51dHJhbnMgJkNvcHkJCQlLJm9weWFsYQorbWVudXRyYW5zICZQYXN0ZQkJJllhcMSxxZ90xLFyCittZW51dHJhbnMgJkRlbGV0ZQkJJlNpbAorbWVudXRyYW5zIFNlbGVjdFwgQmxvY2t3aXNlCSZCbG9rXCBCacOnaW1pbmRlXCBTZcOnCittZW51dHJhbnMgU2VsZWN0XCAmV29yZAkJU8O2Jnpjw7xrXCBTZcOnCittZW51dHJhbnMgU2VsZWN0XCAmU2VudGVuY2UJJlTDvG1jZVwgU2XDpwogbWVudXRyYW5zIFNlbGVjdFwgUGEmcmFncmFwaAkmUGFyYWdyYWZcIFNlw6cKLW1lbnV0cmFucyBTZWxlY3RcICZMaW5lCQkJUyZhdMSxclwgU2XDpwotbWVudXRyYW5zIFNlbGVjdFwgJkJsb2NrCQlCbCZva1wgU2XDpwotbWVudXRyYW5zIFNlbGVjdFwgJkFsbAkJCVTDvG3DvCZuw7xcIFNlw6cKLSIKK21lbnV0cmFucyBTZWxlY3RcICZMaW5lCQlTJmF0xLFyXCBTZcOnCittZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sJQmwmb2tcIFNlw6cKK21lbnV0cmFucyBTZWxlY3RcICZBbGwJCVTDvG3DvCZuw7xcIFNlw6cKKwogIiBUaGUgR1VJIHRvb2xiYXIKLSIKIGlmIGhhcygidG9vbGJhciIpCi0gIGlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQotICAgIGRlbGZ1biBEb190b29sYmFyX3RtZW51Ci0gIGVuZGlmCi0gIGZ1biBEb190b29sYmFyX3RtZW51KCkKLSAgICB0bWVudSBUb29sQmFyLk9wZW4JCQlEb3N5YSBBw6cKLSAgICB0bWVudSBUb29sQmFyLlNhdmUJCQlEb3N5YSBLYXlkZXQKLSAgICB0bWVudSBUb29sQmFyLlNhdmVBbGwJCVTDvG0gRG9zeWFsYXLEsSBLYXlkZXQKLSAgICB0bWVudSBUb29sQmFyLlByaW50CQkJWWF6ZMSxcgotICAgIHRtZW51IFRvb2xCYXIuVW5kbwkJCUdlcmkgQWwKLSAgICB0bWVudSBUb29sQmFyLlJlZG8JCQlZaW5lbGUKLSAgICB0bWVudSBUb29sQmFyLkN1dAkJCUtlcwotICAgIHRtZW51IFRvb2xCYXIuQ29weQkJCUtvcHlhbGEKLSAgICB0bWVudSBUb29sQmFyLlBhc3RlCQkJWWFwxLHFn3TEsXIKLQl0bWVudSBUb29sQmFyLkZpbmQJCQlCdWwuLi4KLSAgICB0bWVudSBUb29sQmFyLkZpbmROZXh0CQlTb25yYWtpbmkgQnVsCi0gICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldgkJw5ZuY2VraW5pIEJ1bAotICAgIHRtZW51IFRvb2xCYXIuUmVwbGFjZQkJQnVsIHZlIERlxJ9pxZ90aXIuLi4KLSAgICBpZiAwCSIgZGlzYWJsZWQ7IFRoZXNlIGFyZSBpbiB0aGUgV2luZG93cyBtZW51Ci0gICAgICB0bWVudSBUb29sQmFyLk5ldwkJCVllbmkgUGVuY2VyZQotICAgICAgdG1lbnUgVG9vbEJhci5XaW5TcGxpdAlQZW5jZXJleWkgQsO2bAotICAgICAgdG1lbnUgVG9vbEJhci5XaW5NYXgJCUVuIELDvHnDvGsgUGVuY2VyZSBZw7xrc2VrbGnEn2kKLSAgICAgIHRtZW51IFRvb2xCYXIuV2luTWluCQlFbiBLw7zDp8O8ayBQZW5jZXJlIFnDvGtzZWtsacSfaQotICAgICAgdG1lbnUgVG9vbEJhci5XaW5DbG9zZQlQZW5jZXJleWkgS2FwYXQKLSAgICBlbmRpZgotICAgIHRtZW51IFRvb2xCYXIuTG9hZFNlc24JCU90dXJ1bSBZw7xrbGUKLSAgICB0bWVudSBUb29sQmFyLlNhdmVTZXNuCQlPdHVydW0gS2F5ZGV0Ci0gICAgdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQJCUJldGlrIMOHYWzEscWfdMSxcgotICAgIHRtZW51IFRvb2xCYXIuTWFrZQkJCURlcmxlCi0gICAgdG1lbnUgVG9vbEJhci5TaGVsbAkJCUthYnVrCi0gICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncwkJRXRpa2V0IERvc3lhc8SxIE9sdcWfdHVyCi0gICAgdG1lbnUgVG9vbEJhci5UYWdKdW1wCQlFdGlrZXRlIEF0bGEKLSAgICB0bWVudSBUb29sQmFyLkhlbHAJCQlZYXJkxLFtCi0gICAgdG1lbnUgVG9vbEJhci5GaW5kSGVscAkJWWFyZMSxbSBCdWwKLSAgZW5kZnVuCisJaWYgZXhpc3RzKCIqRG9fdG9vbGJhcl90bWVudSIpCisJCWRlbGZ1biBEb190b29sYmFyX3RtZW51CisJZW5kaWYKKworCWZ1biBEb190b29sYmFyX3RtZW51KCkKKwkJdG1lbnUgVG9vbEJhci5PcGVuCURvc3lhIEHDpworCQl0bWVudSBUb29sQmFyLlNhdmUJRG9zeWEgS2F5ZGV0CisJCXRtZW51IFRvb2xCYXIuU2F2ZUFsbAlUw7xtIERvc3lhbGFyxLEgS2F5ZGV0CisJCXRtZW51IFRvb2xCYXIuUHJpbnQJWWF6ZMSxcgorCQl0bWVudSBUb29sQmFyLlVuZG8JR2VyaSBBbAorCQl0bWVudSBUb29sQmFyLlJlZG8JWWluZWxlCisJCXRtZW51IFRvb2xCYXIuQ3V0CUtlcworCQl0bWVudSBUb29sQmFyLkNvcHkJS29weWFsYQorCQl0bWVudSBUb29sQmFyLlBhc3RlCVlhcMSxxZ90xLFyCisJCXRtZW51IFRvb2xCYXIuRmluZAlCdWwuLi4KKwkJdG1lbnUgVG9vbEJhci5GaW5kTmV4dAlTb25yYWtpbmkgQnVsCisJCXRtZW51IFRvb2xCYXIuRmluZFByZXYJw5ZuY2VraW5pIEJ1bAorCQl0bWVudSBUb29sQmFyLlJlcGxhY2UJQnVsIHZlIERlxJ9pxZ90aXIuLi4KKwkJaWYgMAkiIGRpc2FibGVkOyBUaGVzZSBhcmUgaW4gdGhlIFdpbmRvd3MgbWVudQorCQkJdG1lbnUgVG9vbEJhci5OZXcJWWVuaSBQZW5jZXJlCisJCQl0bWVudSBUb29sQmFyLldpblNwbGl0CVBlbmNlcmV5aSBCw7ZsCisJCQl0bWVudSBUb29sQmFyLldpbk1heAlFbiBCw7x5w7xrIFBlbmNlcmUgWcO8a3Nla2xpxJ9pCisJCQl0bWVudSBUb29sQmFyLldpbk1pbglFbiBLw7zDp8O8ayBQZW5jZXJlIFnDvGtzZWtsacSfaQorCQkJdG1lbnUgVG9vbEJhci5XaW5DbG9zZQlQZW5jZXJleWkgS2FwYXQKKwkJZW5kaWYKKwkJdG1lbnUgVG9vbEJhci5Mb2FkU2VzbglPdHVydW0gWcO8a2xlCisJCXRtZW51IFRvb2xCYXIuU2F2ZVNlc24JT3R1cnVtIEtheWRldAorCQl0bWVudSBUb29sQmFyLlJ1blNjcmlwdAlCZXRpayDDh2FsxLHFn3TEsXIKKwkJdG1lbnUgVG9vbEJhci5NYWtlCURlcmxlCisJCXRtZW51IFRvb2xCYXIuU2hlbGwJS2FidWsKKwkJdG1lbnUgVG9vbEJhci5SdW5DdGFncwlFdGlrZXQgRG9zeWFzxLEgT2x1xZ90dXIKKwkJdG1lbnUgVG9vbEJhci5UYWdKdW1wCUV0aWtldGUgQXRsYQorCQl0bWVudSBUb29sQmFyLkhlbHAJWWFyZMSxbQorCQl0bWVudSBUb29sQmFyLkZpbmRIZWxwCVlhcmTEsW0gQnVsCisJZW5kZnVuCiBlbmRpZgotIgotIgorCiAiIERpYWxvZyB0ZXh0cwotIgogIiBGaW5kIGluIGhlbHAgZGlhbG9nCi0iCi1sZXQgZzptZW51dHJhbnNfaGVscF9kaWFsb2cgPSAiWWFyZMSxbSBpw6dpbiBrb211dCB2ZXlhIHPDtnpjw7xrIGdpcmluOlxuXG5Fa2xlbWUgS2lwaSBrb211dGxhcsSxbsSxIGFyYW1hayBpw6dpbiBpXyBla2xleWluICjDtnJuZcSfaW4gaV9DVFJMLVgpXG5Ob3JtYWwgS2lwIGtvbXV0bGFyxLFuxLEgYXJhbWFrIGnDp2luIF9jIGVrbGV5aW4gKMO2cm5lxJ9pbiDRgV88RGVsPilcblNlw6dlbmVrbGVyIGhha2vEsW5kYSB5YXJkxLFtIGFsbWFrIGnDp2luICcgZWtsZXlpbiAow7ZybmXEn2luICdzaGlmdHdpZHRoJykiCi0iCitsZXQgZzptZW51dHJhbnNfaGVscF9kaWFsb2cgPSAiWWFyZMSxbSBpw6dpbiBrb211dCB2ZXlhIHPDtnpjw7xrIGdpcmluOlxuXG5Fa2xlbWUgS2lwaSBrb211dGxhcsSxbsSxIGFyYW1hayBpw6dpbiBpXyBla2xleWluICjDtnJuZcSfaW4gaV9DVFJMLVgpXG5Ob3JtYWwgS2lwIGtvbXV0bGFyxLFuxLEgYXJhbWFrIGnDp2luIF9jIGVrbGV5aW4gKMO2cm5lxJ9pbiBjXzxEZWw+KVxuU2XDp2VuZWtsZXIgaGFra8SxbmRhIHlhcmTEsW0gYWxtYWsgacOnaW4gJyBla2xleWluICjDtnJuZcSfaW4gJ3NoaWZ0d2lkdGgnKSIKKwogIiBTZWFyaCBwYXRoIGRpYWxvZwotIgogbGV0IGc6bWVudXRyYW5zX3BhdGhfZGlhbG9nID0gIkRvc3lhIGFyYW1hc8SxIGnDp2luIHlvbCBiZWxpcnRpbi5cbkRpemluIGFkbGFyxLEgdmlyZ8O8bGxlcmxlIGF5csSxbMSxci4iCi0iCisKICIgVGFnIGZpbGVzIGRpYWxvZwotIgogbGV0IGc6bWVudXRyYW5zX3RhZ3NfZGlhbG9nID0gIkV0aWtldCBkb3N5YXPEsSBhZGxhcsSxIGJlbGlydGluICh2aXJnw7xsbGUgYXnEsXJhcmFrKS5cbiIKLSIKKwogIiBUZXh0IHdpZHRoIGRpYWxvZwotIgogbGV0IGc6bWVudXRyYW5zX3RleHR3aWR0aF9kaWFsb2cgPSAiQmnDp2ltbGVuZGlybWUgacOnaW4gbWV0aW4gZ2VuacWfbGnEn2luaSBiZWxpcnRpbi5cbkJpw6dpbWxlbmRpcm1lIGlwdGFsaSBpw6dpbiAwIGdpcmluLiIKLSIKKwogIiBGaWxlIGZvcm1hdCBkaWFsb2cKLSIKIGxldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2RpYWxvZyA9ICJEb3N5YSBiacOnaW1pIHNlw6dpbiIKIGxldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2Nob2ljZXMgPSAiJlVuaXhcbiZEb3NcbiZNYWNcbsSwJnB0YWwiCi0iCiBsZXQgbWVudXRyYW5zX25vX2ZpbGUgPSAiW0Rvc3lhIFlva10iCi0KIGxldCAmY3BvID0gczprZWVwY3BvCi11bmxldCBzOmtlZXBjcG8KK3VubGV0IHM6a2VlcGNwbwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4LzJodG1sLnZpbSBiL3J1bnRpbWUvc3ludGF4LzJodG1sLnZpbQppbmRleCA0YTJkMWQzLi4xZTg1YmM1IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC8yaHRtbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvMmh0bWwudmltCkBAIC0xLDYgKzEsNiBAQAogIiBWaW0gc3ludGF4IHN1cHBvcnQgZmlsZQogIiBNYWludGFpbmVyOiBCZW4gRnJpdHogPGZyaXR6b3BocmVuaWNAZ21haWwuY29tPgotIiBMYXN0IENoYW5nZTogMjAxOCBOb3YgMTEKKyIgTGFzdCBDaGFuZ2U6IDIwMTkgTm92IDEzCiAiCiAiIEFkZGl0aW9uYWwgY29udHJpYnV0b3JzOgogIgpAQCAtMjAsOCArMjAsMTMgQEAKICIgdGhpcyBmaWxlIHVzZXMgbGluZSBjb250aW51YXRpb25zCiBsZXQgczpjcG9fc2F2ID0gJmNwbwogbGV0IHM6bHMgID0gJmxzCitsZXQgczplaV9zYXYgPSAmZXZlbnRpZ25vcmUKIHNldCBjcG8mdmltCiAKKyIgSFRNTCBmaWxldHlwZSBjYW4gdGFrZSBhIHdoaWxlIHRvIGxvYWQvaGlnaGxpZ2h0IGlmIHRoZSBkZXN0aW5hdGlvbiBmaWxlCisiIGFscmVhZHkgZXhpc3RzLgorc2V0IGV2ZW50aWdub3JlKz1GaWxlVHlwZQorCiBsZXQgczplbmQ9bGluZSgnJCcpCiAKICIgRm9udApAQCAtMzcsNiArNDIsMTQgQEAKIAogbGV0IHM6c2V0dGluZ3MgPSB0b2h0bWwjR2V0VXNlclNldHRpbmdzKCkKIAoraWYgczpzZXR0aW5ncy51c2VfeGh0bWwKKyAgbGV0IHM6aHRtbDUgPSAwCitlbHNlaWYgczpzZXR0aW5ncy51c2VfY3NzICYmICFzOnNldHRpbmdzLm5vX3ByZQorICBsZXQgczpodG1sNSA9IDEKK2Vsc2UKKyAgbGV0IHM6aHRtbDUgPSAwCitlbmRpZgorCiBpZiAhZXhpc3RzKCdzOkZPTERFRF9JRCcpCiAgIGxldCBzOkZPTERFRF9JRCAgPSBobElEKCJGb2xkZWQiKSAgICAgfCBsb2NrdmFyIHM6Rk9MREVEX0lECiAgIGxldCBzOkZPTERfQ19JRCAgPSBobElEKCJGb2xkQ29sdW1uIikgfCBsb2NrdmFyIHM6Rk9MRF9DX0lECkBAIC02OSw5ICs4MiwxMCBAQAogICBlbmRpZgogZW5kaWYKIAotIiBXaGVuIG5vdCBpbiBndWkgd2UgY2FuIG9ubHkgZ3Vlc3MgdGhlIGNvbG9ycy4KLSIgVE9ETyAtIGlzIHRoaXMgdHJ1ZSBhbnltb3JlPwotaWYgaGFzKCJndWlfcnVubmluZyIpCisiIFdoZW4gZ3VpIGNvbG9ycyBhcmUgbm90IHN1cHBvcnRlZCwgd2UgY2FuIG9ubHkgZ3Vlc3MgdGhlIGNvbG9ycy4KKyIgVE9ETyAtIGlzIHRoaXMgdHJ1ZSBhbnltb3JlPyBJcyB0aGVyZSBhIHdheSB0byBhc2sgdGhlIHRlcm1pbmFsIHdoYXQgY29sb3JzCisiIGVhY2ggbnVtYmVyIG1lYW5zIG9yIHJlYWQgdGhlbSBmcm9tIHNvbWUgZmlsZT8KK2lmICZ0ZXJtZ3VpY29sb3JzIHx8IGhhcygiZ3VpX3J1bm5pbmciKQogICBsZXQgczp3aGF0dGVybSA9ICJndWkiCiBlbHNlCiAgIGxldCBzOndoYXR0ZXJtID0gImN0ZXJtIgpAQCAtMzUyLDYgKzM2NiwxMiBAQAogCSAgXCBdCiAgIGVsc2UKIAorICAgICIgTmV3IG1ldGhvZDogdXNlIGdlbmVyYXRlZCBjb250ZW50IGluIHRoZSBDU1MuIFRoZSBvbmx5IHRoaW5nIG5lZWRlZCBoZXJlCisgICAgIiBpcyBhIHNwYW4gd2l0aCBubyBjb250ZW50LCB3aXRoIGFuIGF0dHJpYnV0ZSBob2xkaW5nIHRoZSBkZXNpcmVkIHRleHQuCisgICAgIgorICAgICIgT2xkIG1ldGhvZDogdXNlIGFuIDxpbnB1dD4gZWxlbWVudCB3aGVuIHRleHQgaXMgdW5zZWN0YWJsZS4gVGhpcyBpcyBzdGlsbAorICAgICIgdXNlZCBpbiBjb25kaXRpb25hbCBjb21tZW50cyBmb3IgSW50ZXJuZXQgRXhwbG9yZXIsIHdoZXJlIHRoZSBuZXcgbWV0aG9kCisgICAgIiBkb2Vzbid0IHdvcmsuCiAgICAgIgogICAgICIgV3JhcCB0aGUgPGlucHV0PiBpbiBhIDxzcGFuPiB0byBhbGxvdyBmaXhpbmcgdGhlIHN0dXBpZCBidWcgaW4gc29tZSBmb250cwogICAgICIgd2hpY2ggY2F1c2UgYnJvd3NlcnMgdG8gZGlzcGxheSBhIDFweCBnYXAgYmV0d2VlbiBsaW5lcyB3aGVuIHRoZXNlCkBAIC0zNjksMTYgKzM4OSwyNiBAQAogICAgICIgdG8gdXNlIHN0cmNoYXJzKCksIGJlY2F1c2UgSFRNTCBzcGVjaWZpZXMgdGhhdCB0aGUgbWF4bGVuZ3RoIHBhcmFtZXRlcgogICAgICIgdXNlcyB0aGUgbnVtYmVyIG9mIHVuaXF1ZSBjb2RlcG9pbnRzIGZvciBpdHMgbGltaXQuCiAgICAgbGV0IHdyYXBwZXJmdW5jX2xpbmVzICs9IFsKLQkgIFwgJyAgICBpZiBhOm1ha2VfdW5zZWxlY3RhYmxlJywKLQkgIFwgJyAgICAgIHJldHVybiAiPHNwYW4gIi5hOmV4dHJhX2F0dHJzLiJjbGFzcz1cIiIgLiBsOnN0eWxlX25hbWUgLicuZGlmZnN0eWxlLiciXCI+Jy4KLQkgIFwgICAgICAgICAgICAgICAgJzxpbnB1dCcuczp1bnNlbElucHV0VHlwZS4nIGNsYXNzPVwiIiAuIGw6c3R5bGVfbmFtZSAuJy5kaWZmc3R5bGUuJyJcIicuCi0JICBcICAgICAgICAgICAgICAgICAnIHZhbHVlPVwiIi5zdWJzdGl0dXRlKGE6dW5mb3JtYXR0ZWQsJydcc1wrJCcnLCIiLCIiKS4iXCInLgotCSAgXCAgICAgICAgICAgICAgICAgJyBvbnNlbGVjdD0nJ3RoaXMuYmx1cigpOyByZXR1cm4gZmFsc2U7JycnLgotCSAgXCAgICAgICAgICAgICAgICAgJyBvbm1vdXNlZG93bj0nJ3RoaXMuYmx1cigpOyByZXR1cm4gZmFsc2U7JycnLgotCSAgXCAgICAgICAgICAgICAgICAgJyBvbmNsaWNrPScndGhpcy5ibHVyKCk7IHJldHVybiBmYWxzZTsnJycuCi0JICBcICAgICAgICAgICAgICAgICAnIHJlYWRvbmx5PScncmVhZG9ubHknJycuCi0JICBcICAgICAgICAgICAgICAgICAnIHNpemU9XCIiLnN0cndpZHRoKGE6dW5mb3JtYXR0ZWQpLiJcIicuCi0JICBcICAgICAgICAgICAgICAgICAoczpzZXR0aW5ncy51c2VfeGh0bWwgPyAnLycgOiAnJykuJz48L3NwYW4+IicsCisJICBcICAgJyAgICBpZiBhOm1ha2VfdW5zZWxlY3RhYmxlJywKKwkgIFwgICAnICAgICAgcmV0dXJuICI8c3BhbiAiLmE6ZXh0cmFfYXR0cnMuImNsYXNzPVwiIiAuIGw6c3R5bGVfbmFtZSAuJy5kaWZmc3R5bGUuJyJcIicKKwkgIFwgXQorICAgIGlmIHM6c2V0dGluZ3MudXNlX2lucHV0X2Zvcl9wYyAhPSMgJ2FsbCcKKyAgICAgIGxldCB3cmFwcGVyZnVuY19saW5lc1stMV0gLj0gJyAiIC4gImRhdGEtIiAuIGw6c3R5bGVfbmFtZSAuICItY29udGVudD1cIiIuYTp0ZXh0LiJcIicKKyAgICBlbmRpZgorICAgIGxldCB3cmFwcGVyZnVuY19saW5lc1stMV0gLj0gJz4nCisgICAgaWYgczpzZXR0aW5ncy51c2VfaW5wdXRfZm9yX3BjICE9IyAnbm9uZScKKyAgICAgIGxldCB3cmFwcGVyZnVuY19saW5lc1stMV0gLj0KKwkgICAgXCAgICAgICAgICAgICAgICAnPGlucHV0Jy5zOnVuc2VsSW5wdXRUeXBlLicgY2xhc3M9XCIiIC4gbDpzdHlsZV9uYW1lIC4nLmRpZmZzdHlsZS4nIlwiJy4KKwkgICAgXCAgICAgICAgICAgICAgICAgJyB2YWx1ZT1cIiIuc3Vic3RpdHV0ZShhOnVuZm9ybWF0dGVkLCcnXHNcKyQnJywiIiwiIikuIlwiJy4KKwkgICAgXCAgICAgICAgICAgICAgICAgJyBvbnNlbGVjdD0nJ3RoaXMuYmx1cigpOyByZXR1cm4gZmFsc2U7JycnLgorCSAgICBcICAgICAgICAgICAgICAgICAnIG9ubW91c2Vkb3duPScndGhpcy5ibHVyKCk7IHJldHVybiBmYWxzZTsnJycuCisJICAgIFwgICAgICAgICAgICAgICAgICcgb25jbGljaz0nJ3RoaXMuYmx1cigpOyByZXR1cm4gZmFsc2U7JycnLgorCSAgICBcICAgICAgICAgICAgICAgICAnIHJlYWRvbmx5PScncmVhZG9ubHknJycuCisJICAgIFwgICAgICAgICAgICAgICAgICcgc2l6ZT1cIiIuc3Ryd2lkdGgoYTp1bmZvcm1hdHRlZCkuIlwiJy4KKwkgICAgXCAgICAgICAgICAgICAgICAgKHM6c2V0dGluZ3MudXNlX3hodG1sID8gJy8nIDogJycpLic+JworICAgIGVuZGlmCisgICAgbGV0IHdyYXBwZXJmdW5jX2xpbmVzWy0xXSAuPSAnPC9zcGFuPiInCisgICAgbGV0IHdyYXBwZXJmdW5jX2xpbmVzICs9IFsKIAkgIFwgJyAgICBlbHNlJywKIAkgIFwgJyAgICAgIHJldHVybiAiPHNwYW4gIi5hOmV4dHJhX2F0dHJzLiJjbGFzcz1cIiIgLiBsOnN0eWxlX25hbWUgLicuIGRpZmZzdHlsZSAuJyJcIj4iLmE6dGV4dC4iPC9zcGFuPiInCiAJICBcIF0KQEAgLTUwMSwyNyArNTMxLDYzIEBACiAgIGVuZGZ1bgogZW5kaWYKIGlmIHM6c2V0dGluZ3MucHJldmVudF9jb3B5ID1+IyAnZicKLSAgIiBOb3RlIHRoZSA8aW5wdXQ+IGVsZW1lbnRzIGZvciBmaWxsIHNwYWNlcyB3aWxsIGhhdmUgYSBzaW5nbGUgc3BhY2UgZm9yCi0gICIgY29udGVudCwgdG8gYWxsb3cgYWN0aXZlIGN1cnNvciBDU1Mgc2VsZWN0aW9uIHRvIHdvcmsuCi0gICIKLSAgIiBXcmFwIHRoZSB3aG9sZSB0aGluZyBpbiBhIHNwYW4gZm9yIHRoZSAxcHggcGFkZGluZyB3b3JrYXJvdW5kIGZvciBnYXBzLgotICBmdW5jdGlvbiEgczpGb2xkQ29sdW1uX2J1aWxkKGNoYXIsIGxlbiwgbnVtZmlsbCwgY2hhcjIsIGNsYXNzLCBjbGljaykKLSAgICBsZXQgbDppbnB1dF9vcGVuID0gIjxpbnB1dCByZWFkb25seT0ncmVhZG9ubHknIi5zOnVuc2VsSW5wdXRUeXBlLgotCSAgXCAiIG9uc2VsZWN0PSd0aGlzLmJsdXIoKTsgcmV0dXJuIGZhbHNlOyciLgotCSAgXCAiIG9ubW91c2Vkb3duPSd0aGlzLmJsdXIoKTsgIi5hOmNsaWNrLiIgcmV0dXJuIGZhbHNlOyciLgotCSAgXCAiIG9uY2xpY2s9J3JldHVybiBmYWxzZTsnIHNpemU9JyIuCi0JICBcIHN0cmluZyhhOmxlbiArIChlbXB0eShhOmNoYXIyKSA/IDAgOiAxKSArIGE6bnVtZmlsbCkgLgotCSAgXCAiJyAiCi0gICAgbGV0IGw6Y29tbW9uX2F0dHJzID0gImNsYXNzPSdGb2xkQ29sdW1uJyB2YWx1ZT0nIgotICAgIGxldCBsOmlucHV0X2Nsb3NlID0gKHM6c2V0dGluZ3MudXNlX3hodG1sID8gIicgLz4iIDogIic+IikKLSAgICByZXR1cm4gIjxzcGFuIGNsYXNzPSciLmE6Y2xhc3MuIic+Ii4KLQkgIFwgbDppbnB1dF9vcGVuLmw6Y29tbW9uX2F0dHJzLnJlcGVhdChhOmNoYXIsIGE6bGVuKS4KLQkgIFwgKCFlbXB0eShhOmNoYXIyKSA/IGE6Y2hhcjIgOiAiIikuCi0JICBcIGw6aW5wdXRfY2xvc2UgLiAiPC9zcGFuPiIKLSAgZW5kZnVuCi0gIGZ1bmN0aW9uISBzOkZvbGRDb2x1bW5fZmlsbCgpCi0gICAgcmV0dXJuIHM6Rm9sZENvbHVtbl9idWlsZCgnJywgczpmb2xkY29sdW1uLCAwLCAnJywgJ0ZvbGRDb2x1bW4nLCAnJykKLSAgZW5kZnVuCisgIGlmIHM6c2V0dGluZ3MudXNlX2lucHV0X2Zvcl9wYyA9PSMgJ25vbmUnCisgICAgIiBTaW1wbHkgc3BhY2UtcGFkIHRvIHRoZSBkZXNpcmVkIHdpZHRoIGluc2lkZSB0aGUgZ2VuZXJhdGVkIGNvbnRlbnQgKG5vdGUKKyAgICAiIHRoYXQgdGhlIEZvbGRDb2x1bW4gZGVmaW5pdGlvbiBpbmNsdWRlcyBhIHdoaXRlc3BhY2U6cHJlIHJ1bGUpCisgICAgZnVuY3Rpb24hIHM6Rm9sZENvbHVtbl9idWlsZChjaGFyLCBsZW4sIG51bWZpbGwsIGNoYXIyLCBjbGFzcywgY2xpY2spCisgICAgICByZXR1cm4gIjxhIGhyZWY9JyMnIGNsYXNzPSciLmE6Y2xhc3MuIicgb25jbGljaz0nIi5hOmNsaWNrLiInIGRhdGEtRm9sZENvbHVtbi1jb250ZW50PSciLgorCSAgICBcIHJlcGVhdChhOmNoYXIsIGE6bGVuKS5hOmNoYXIyLnJlcGVhdCgnICcsIGE6bnVtZmlsbCkuCisJICAgIFwgIic+PC9hPiIKKyAgICBlbmRmdW4KKyAgICBmdW5jdGlvbiEgczpGb2xkQ29sdW1uX2ZpbGwoKQorICAgICAgcmV0dXJuIHM6SHRtbEZvcm1hdChyZXBlYXQoJyAnLCBzOmZvbGRjb2x1bW4pLCBzOkZPTERfQ19JRCwgMCwgIiIsIDEpCisgICAgZW5kZnVuCisgIGVsc2UKKyAgICAiIE5vdGUgdGhlIDxpbnB1dD4gZWxlbWVudHMgZm9yIGZpbGwgc3BhY2VzIHdpbGwgaGF2ZSBhIHNpbmdsZSBzcGFjZSBmb3IKKyAgICAiIGNvbnRlbnQsIHRvIGFsbG93IGFjdGl2ZSBjdXJzb3IgQ1NTIHNlbGVjdGlvbiB0byB3b3JrLgorICAgICIKKyAgICAiIFdyYXAgdGhlIHdob2xlIHRoaW5nIGluIGEgc3BhbiBmb3IgdGhlIDFweCBwYWRkaW5nIHdvcmthcm91bmQgZm9yIGdhcHMuCisgICAgIgorICAgICIgQnVpbGQgdGhlIGZ1bmN0aW9uIGxpbmUgYnkgbGluZSBjb250YWluaW5nIG9ubHkgd2hhdCBpcyBuZWVkZWQgZm9yIHRoZQorICAgICIgb3B0aW9ucyBpbiB1c2UgZm9yIG1heGltdW0gY29kZSBzaGFyaW5nIHdpdGggbWluaW1hbCBicmFuY2ggbG9naWMgZm9yCisgICAgIiBncmVhdGVyIHNwZWVkLgorICAgICIKKyAgICAiIE5vdGUsICdleGVjJyBjb21tYW5kcyBkbyBub3QgcmVjb2duaXplIGxpbmUgY29udGludWF0aW9ucywgc28gbXVzdAorICAgICIgY29uY2F0ZW5hdGUgbGluZXMgcmF0aGVyIHRoYW4gY29udGludWUgdGhlbS4KKyAgICBsZXQgYnVpbGRfZnVuX2xpbmVzID0gWworCSAgXCAnZnVuY3Rpb24hIHM6Rm9sZENvbHVtbl9idWlsZChjaGFyLCBsZW4sIG51bWZpbGwsIGNoYXIyLCBjbGFzcywgY2xpY2spJywKKwkgIFwgJyAgbGV0IGw6aW5wdXRfb3BlbiA9ICI8aW5wdXQgcmVhZG9ubHk9JydyZWFkb25seScnIi5zOnVuc2VsSW5wdXRUeXBlLicuCisJICBcICcgICAgICAgICAgIiBvbnNlbGVjdD0nJ3RoaXMuYmx1cigpOyByZXR1cm4gZmFsc2U7JyciLicuCisJICBcICcgICAgICAgICAgIiBvbm1vdXNlZG93bj0nJ3RoaXMuYmx1cigpOyAiLmE6Y2xpY2suIiByZXR1cm4gZmFsc2U7JyciLicuCisJICBcICcgICAgICAgICAgIiBvbmNsaWNrPScncmV0dXJuIGZhbHNlOycnIHNpemU9JyciLicuCisJICBcICcgICAgICAgICAgc3RyaW5nKGE6bGVuICsgKGVtcHR5KGE6Y2hhcjIpID8gMCA6IDEpICsgYTpudW1maWxsKSAuJy4KKwkgIFwgJyAgICAgICAgICAiJycgIicsCisJICBcICcgIGxldCBsOmNvbW1vbl9hdHRycyA9ICJjbGFzcz0nJ0ZvbGRDb2x1bW4nJyB2YWx1ZT0nJyInLAorCSAgXCAnICBsZXQgbDppbnB1dF9jbG9zZSA9IChzOnNldHRpbmdzLnVzZV94aHRtbCA/ICInJyAvPiIgOiAiJyc+IiknCisJICBcIF0KKyAgICBpZiBzOnNldHRpbmdzLnVzZV9pbnB1dF9mb3JfcGMgPT0jICdmYWxsYmFjaycKKyAgICAgIGxldCBidWlsZF9mdW5fbGluZXMgKz0gWworCSAgICBcICcgIGxldCBsOmdlbl9jb250ZW50X2xpbmsgPScuCisJICAgIFwgJyAgICAgICAgICAiPGEgaHJlZj0nJyMnJyBjbGFzcz0nJ0ZvbGRDb2x1bW4nJyBvbmNsaWNrPScnIi5hOmNsaWNrLiInJyBkYXRhLUZvbGRDb2x1bW4tY29udGVudD0nJyIuJy4KKwkgICAgXCAnICAgICAgICAgIHJlcGVhdChhOmNoYXIsIGE6bGVuKS5hOmNoYXIyLnJlcGVhdCgnJyAnJywgYTpudW1maWxsKS4nLgorCSAgICBcICcgICAgICAgICAgIicnPjwvYT4iJworCSAgICBcIF0KKyAgICBlbmRpZgorICAgIGxldCBidWlsZF9mdW5fbGluZXMgKz0gWworCSAgXCAnICByZXR1cm4gIjxzcGFuIGNsYXNzPScnIi5hOmNsYXNzLiInJz4iLicuCisJICBcICcgICAgICAgICAgbDppbnB1dF9vcGVuLmw6Y29tbW9uX2F0dHJzLnJlcGVhdChhOmNoYXIsIGE6bGVuKS4oYTpjaGFyMikuJy4KKwkgIFwgJyAgICAgICAgICBsOmlucHV0X2Nsb3NlLicuCisJICBcIChzOnNldHRpbmdzLnVzZV9pbnB1dF9mb3JfcGMgPT0jICdmYWxsYmFjaycgPyAnbDpnZW5fY29udGVudF9saW5rLicgOiAiIikuCisJICBcICcgICAgICAgICAgIjwvc3Bhbj4iJywKKwkgIFwgJ2VuZGZ1bicKKwkgIFwgXQorICAgICIgY3JlYXRlIHRoZSBmdW5jdGlvbiB3ZSBidWlsdCBsaW5lIGJ5IGxpbmUgYWJvdmUKKyAgICBleGVjIGpvaW4oYnVpbGRfZnVuX2xpbmVzLCAiXG4iKQorCisgICAgZnVuY3Rpb24hIHM6Rm9sZENvbHVtbl9maWxsKCkKKyAgICAgIHJldHVybiBzOkZvbGRDb2x1bW5fYnVpbGQoJyAnLCBzOmZvbGRjb2x1bW4sIDAsICcnLCAnRm9sZENvbHVtbicsICcnKQorICAgIGVuZGZ1bgorICBlbmRpZgogZWxzZQogICAiIEZvciBub3JtYWwgZm9sZCBjb2x1bW5zLCBzaW1wbHkgc3BhY2UtcGFkIHRvIHRoZSBkZXNpcmVkIHdpZHRoIChub3RlIHRoYXQKICAgIiB0aGUgRm9sZENvbHVtbiBkZWZpbml0aW9uIGluY2x1ZGVzIGEgd2hpdGVzcGFjZTpwcmUgcnVsZSkKQEAgLTc1NSw3ICs4MjEsMTEgQEAKICIgaW5jbHVkZSBlbmNvZGluZyBhcyBjbG9zZSB0byB0aGUgdG9wIGFzIHBvc3NpYmxlLCBidXQgb25seSBpZiBub3QgYWxyZWFkeQogIiBjb250YWluZWQgaW4gWE1MIGluZm9ybWF0aW9uICh0byBhdm9pZCBoYWdnbGluZyBvdmVyIGNvbnRlbnQgdHlwZSkKIGlmIHM6c2V0dGluZ3MuZW5jb2RpbmcgIT0gIiIgJiYgIXM6c2V0dGluZ3MudXNlX3hodG1sCi0gIGNhbGwgYWRkKHM6bGluZXMsICI8bWV0YSBodHRwLWVxdWl2PVwiY29udGVudC10eXBlXCIgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD0iIC4gczpzZXR0aW5ncy5lbmNvZGluZyAuICciJyAuIHM6dGFnX2Nsb3NlKQorICBpZiBzOmh0bWw1CisgICAgY2FsbCBhZGQoczpsaW5lcywgJzxtZXRhIGNoYXJzZXQ9IicgLiBzOnNldHRpbmdzLmVuY29kaW5nIC4gJyInIC4gczp0YWdfY2xvc2UpCisgIGVsc2UKKyAgICBjYWxsIGFkZChzOmxpbmVzLCAiPG1ldGEgaHR0cC1lcXVpdj1cImNvbnRlbnQtdHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9IiAuIHM6c2V0dGluZ3MuZW5jb2RpbmcgLiAnIicgLiBzOnRhZ19jbG9zZSkKKyAgZW5kaWYKIGVuZGlmCiBjYWxsIGV4dGVuZChzOmxpbmVzLCBbCiAgICAgICBcICgiPHRpdGxlPiIuZXhwYW5kKCIlOnA6fiIpLiI8L3RpdGxlPiIpLApAQCAtNzY2LDYgKzgzNiw3IEBACiBjYWxsIGFkZChzOmxpbmVzLCAnPG1ldGEgbmFtZT0ic2V0dGluZ3MiIGNvbnRlbnQ9IicuCiAgICAgICBcIGpvaW4oZmlsdGVyKGtleXMoczpzZXR0aW5ncyksJ3M6c2V0dGluZ3Nbdjp2YWxdJyksJywnKS4KICAgICAgIFwgJyxwcmV2ZW50X2NvcHk9Jy5zOnNldHRpbmdzLnByZXZlbnRfY29weS4KKyAgICAgIFwgJyx1c2VfaW5wdXRfZm9yX3BjPScuczpzZXR0aW5ncy51c2VfaW5wdXRfZm9yX3BjLgogICAgICAgXCAnIicuczp0YWdfY2xvc2UpCiBjYWxsIGFkZChzOmxpbmVzLCAnPG1ldGEgbmFtZT0iY29sb3JzY2hlbWUiIGNvbnRlbnQ9IicuCiAgICAgICBcIChleGlzdHMoJ2c6Y29sb3JzX25hbWUnKQpAQCAtNzczLDE5ICs4NDQsMjEgQEAKICAgICAgIFwgOiAnbm9uZScpLiAnIicuczp0YWdfY2xvc2UpCiAKIGlmIHM6c2V0dGluZ3MudXNlX2NzcworICBjYWxsIGV4dGVuZChzOmxpbmVzLCBbCisJXCAiPHN0eWxlIiAuIChzOmh0bWw1ID8gIiIgOiAiIHR5cGU9XCJ0ZXh0L2Nzc1wiIikgLiAiPiIsCisJXCBzOnNldHRpbmdzLnVzZV94aHRtbCA/ICIiIDogIjwhLS0iXSkKKyAgbGV0IHM6aWVvbmx5ID0gW10KICAgaWYgczpzZXR0aW5ncy5keW5hbWljX2ZvbGRzCiAgICAgaWYgczpzZXR0aW5ncy5ob3Zlcl91bmZvbGQKICAgICAgICIgaWYgd2UgYXJlIGRvaW5nIGhvdmVyX3VuZm9sZCwgdXNlIGNzcyAyIHdpdGggY3NzIDEgZmFsbGJhY2sgZm9yIElFNgogICAgICAgY2FsbCBleHRlbmQoczpsaW5lcywgWwotCSAgICBcICI8c3R5bGUgdHlwZT1cInRleHQvY3NzXCI+IiwKLQkgICAgXCBzOnNldHRpbmdzLnVzZV94aHRtbCA/ICIiIDogIjwhLS0iLAogCSAgICBcICIuRm9sZENvbHVtbiB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgd2hpdGUtc3BhY2U6IHByZTsgfSIsCiAJICAgIFwgIiIsCiAJICAgIFwgImJvZHkgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfSIsICIiLAotCSAgICBcICIub3Blbi1mb2xkICAgPiAuRm9sZGVkIHsgZGlzcGxheTogbm9uZTsgIH0iLAotCSAgICBcICIub3Blbi1mb2xkICAgPiAuZnVsbHRleHQgeyBkaXNwbGF5OiBpbmxpbmU7IH0iLAotCSAgICBcICIuY2xvc2VkLWZvbGQgPiAuZnVsbHRleHQgeyBkaXNwbGF5OiBub25lOyAgfSIsCi0JICAgIFwgIi5jbG9zZWQtZm9sZCA+IC5Gb2xkZWQgeyBkaXNwbGF5OiBpbmxpbmU7IH0iLAorCSAgICBcICIub3Blbi1mb2xkICAgPiBzcGFuLkZvbGRlZCB7IGRpc3BsYXk6IG5vbmU7ICB9IiwKKwkgICAgXCAiLm9wZW4tZm9sZCAgID4gLmZ1bGx0ZXh0ICAgeyBkaXNwbGF5OiBpbmxpbmU7IH0iLAorCSAgICBcICIuY2xvc2VkLWZvbGQgPiAuZnVsbHRleHQgICB7IGRpc3BsYXk6IG5vbmU7ICB9IiwKKwkgICAgXCAiLmNsb3NlZC1mb2xkID4gc3Bhbi5Gb2xkZWQgeyBkaXNwbGF5OiBpbmxpbmU7IH0iLAogCSAgICBcICIiLAogCSAgICBcICIub3Blbi1mb2xkICAgPiAudG9nZ2xlLW9wZW4gICB7IGRpc3BsYXk6IG5vbmU7ICAgfSIsCiAJICAgIFwgIi5vcGVuLWZvbGQgICA+IC50b2dnbGUtY2xvc2VkIHsgZGlzcGxheTogaW5saW5lOyB9IiwKQEAgLTc5NCw2NSArODY3LDYwIEBACiAJICAgIFwgIiIsICIiLAogCSAgICBcICcvKiBvcGVuaW5nIGEgZm9sZCB3aGlsZSBob3ZlcmluZyB3b24nJ3QgYmUgc3VwcG9ydGVkIGJ5IElFNiBhbmQgb3RoZXInLAogCSAgICBcICJzaW1pbGFyIGJyb3dzZXJzLCBidXQgaXQgc2hvdWxkIGZhaWwgZ3JhY2VmdWxseS4gKi8iLAotCSAgICBcICIuY2xvc2VkLWZvbGQ6aG92ZXIgPiAuZnVsbHRleHQgeyBkaXNwbGF5OiBpbmxpbmU7IH0iLAorCSAgICBcICIuY2xvc2VkLWZvbGQ6aG92ZXIgPiAuZnVsbHRleHQgICAgICB7IGRpc3BsYXk6IGlubGluZTsgfSIsCiAJICAgIFwgIi5jbG9zZWQtZm9sZDpob3ZlciA+IC50b2dnbGUtZmlsbGVyIHsgZGlzcGxheTogbm9uZTsgfSIsCi0JICAgIFwgIi5jbG9zZWQtZm9sZDpob3ZlciA+IC5Gb2xkZWQgeyBkaXNwbGF5OiBub25lOyB9IiwKLQkgICAgXCBzOnNldHRpbmdzLnVzZV94aHRtbCA/ICIiIDogJy0tPicsCi0JICAgIFwgJzwvc3R5bGU+J10pCi0gICAgICAiIFRPRE86IElFNyBkb2Vzbid0ICphY3R1YWxseSogc3VwcG9ydCBYSFRNTCwgbWF5YmUgd2Ugc2hvdWxkIHJlbW92ZSB0aGlzLgotICAgICAgIiBCdXQgaWYgaXQncyBzZXJ2ZWQgdXAgYXMgdGFnIHNvdXAsIG1heWJlIHRoZSBmb2xsb3dpbmcgd2lsbCB3b3JrLCBzbwotICAgICAgIiBsZWF2ZSBpdCBpbiBmb3Igbm93LgotICAgICAgY2FsbCBleHRlbmQoczpsaW5lcywgWworCSAgICBcICIuY2xvc2VkLWZvbGQ6aG92ZXIgPiAuRm9sZGVkICAgICAgICB7IGRpc3BsYXk6IG5vbmU7IH0iXSkKKyAgICAgICIgVE9ETzogSUU2IGlzIFJFQUxMWSBvbGQgYW5kIEkgY2FuJ3QgZXZlbiB0ZXN0IGl0IGFueW1vcmUuIE1heWJlIHdlCisgICAgICAiIHNob3VsZCByZW1vdmUgdGhpcz8gTGVhdmUgaXQgaW4gZm9yIG5vdywgaXQgd2FzIHdvcmtpbmcgYXQgb25lIHBvaW50LAorICAgICAgIiBhbmQgZG9lc24ndCBhZmZlY3QgYW55IG1vZGVybiBicm93c2Vycy4gRXZlbiBuZXdlciBJRSB2ZXJzaW9ucyBzaG91bGQKKyAgICAgICIgc3VwcG9ydCB0aGUgYWJvdmUgY29kZSBhbmQgaWdub3JlIHRoZSBmb2xsb3dpbmcuCisgICAgICBsZXQgczppZW9ubHkgPSBbCiAJICAgIFwgIjwhLS1baWYgbHQgSUUgN10+PHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiPiIsCi0JICAgIFwgIi5vcGVuLWZvbGQgICAuRm9sZGVkICAgICAgeyBkaXNwbGF5OiBub25lOyB9IiwKIAkgICAgXCAiLm9wZW4tZm9sZCAgIC5mdWxsdGV4dCAgICAgIHsgZGlzcGxheTogaW5saW5lOyB9IiwKKwkgICAgXCAiLm9wZW4tZm9sZCAgIHNwYW4uRm9sZGVkICAgIHsgZGlzcGxheTogbm9uZTsgfSIsCiAJICAgIFwgIi5vcGVuLWZvbGQgICAudG9nZ2xlLW9wZW4gICB7IGRpc3BsYXk6IG5vbmU7IH0iLAotCSAgICBcICIuY2xvc2VkLWZvbGQgLnRvZ2dsZS1jbG9zZWQgeyBkaXNwbGF5OiBpbmxpbmU7IH0iLAorCSAgICBcICIub3Blbi1mb2xkICAgLnRvZ2dsZS1jbG9zZWQgeyBkaXNwbGF5OiBpbmxpbmU7IH0iLAogCSAgICBcICIiLAogCSAgICBcICIuY2xvc2VkLWZvbGQgLmZ1bGx0ZXh0ICAgICAgeyBkaXNwbGF5OiBub25lOyB9IiwKLQkgICAgXCAiLmNsb3NlZC1mb2xkIC5Gb2xkZWQgICAgICB7IGRpc3BsYXk6IGlubGluZTsgfSIsCisJICAgIFwgIi5jbG9zZWQtZm9sZCBzcGFuLkZvbGRlZCAgICB7IGRpc3BsYXk6IGlubGluZTsgfSIsCiAJICAgIFwgIi5jbG9zZWQtZm9sZCAudG9nZ2xlLW9wZW4gICB7IGRpc3BsYXk6IGlubGluZTsgfSIsCiAJICAgIFwgIi5jbG9zZWQtZm9sZCAudG9nZ2xlLWNsb3NlZCB7IGRpc3BsYXk6IG5vbmU7IH0iLAogCSAgICBcICI8L3N0eWxlPiIsCiAJICAgIFwgIjwhW2VuZGlmXS0tPiIsCi0JICAgIFxdKQorCSAgICBcXQogICAgIGVsc2UKICAgICAgICIgaWYgd2UgYXJlbid0IGRvaW5nIGhvdmVyX3VuZm9sZCwgdXNlIENTUyAxIG9ubHkKICAgICAgIGNhbGwgZXh0ZW5kKHM6bGluZXMsIFsKLQkgICAgXCAiPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiPiIsCi0JICAgIFwgczpzZXR0aW5ncy51c2VfeGh0bWwgPyAiIiA6IjwhLS0iLAogCSAgICBcICIuRm9sZENvbHVtbiB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgd2hpdGUtc3BhY2U6IHByZTsgfSIsCi0JICAgIFwgIi5vcGVuLWZvbGQgICAuRm9sZGVkICAgICAgeyBkaXNwbGF5OiBub25lOyB9IiwKIAkgICAgXCAiLm9wZW4tZm9sZCAgIC5mdWxsdGV4dCAgICAgIHsgZGlzcGxheTogaW5saW5lOyB9IiwKKwkgICAgXCAiLm9wZW4tZm9sZCAgIHNwYW4uRm9sZGVkICAgIHsgZGlzcGxheTogbm9uZTsgfSIsCiAJICAgIFwgIi5vcGVuLWZvbGQgICAudG9nZ2xlLW9wZW4gICB7IGRpc3BsYXk6IG5vbmU7IH0iLAotCSAgICBcICIuY2xvc2VkLWZvbGQgLnRvZ2dsZS1jbG9zZWQgeyBkaXNwbGF5OiBpbmxpbmU7IH0iLAorCSAgICBcICIub3Blbi1mb2xkICAgLnRvZ2dsZS1jbG9zZWQgeyBkaXNwbGF5OiBpbmxpbmU7IH0iLAogCSAgICBcICIiLAogCSAgICBcICIuY2xvc2VkLWZvbGQgLmZ1bGx0ZXh0ICAgICAgeyBkaXNwbGF5OiBub25lOyB9IiwKLQkgICAgXCAiLmNsb3NlZC1mb2xkIC5Gb2xkZWQgICAgICB7IGRpc3BsYXk6IGlubGluZTsgfSIsCisJICAgIFwgIi5jbG9zZWQtZm9sZCBzcGFuLkZvbGRlZCAgICB7IGRpc3BsYXk6IGlubGluZTsgfSIsCiAJICAgIFwgIi5jbG9zZWQtZm9sZCAudG9nZ2xlLW9wZW4gICB7IGRpc3BsYXk6IGlubGluZTsgfSIsCiAJICAgIFwgIi5jbG9zZWQtZm9sZCAudG9nZ2xlLWNsb3NlZCB7IGRpc3BsYXk6IG5vbmU7IH0iLAotCSAgICBcIHM6c2V0dGluZ3MudXNlX3hodG1sID8gIiIgOiAnLS0+JywKLQkgICAgXCAnPC9zdHlsZT4nCiAJICAgIFxdKQogICAgIGVuZGlmCi0gIGVsc2UKLSAgICAiIGlmIHdlIGFyZW4ndCBkb2luZyBhbnkgZHluYW1pYyBmb2xkaW5nLCBubyBuZWVkIGZvciBhbnkgc3BlY2lhbCBydWxlcwotICAgIGNhbGwgZXh0ZW5kKHM6bGluZXMsIFsKLQkgIFwgIjxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIj4iLAotCSAgXCBzOnNldHRpbmdzLnVzZV94aHRtbCA/ICIiIDogIjwhLS0iLAorICBlbmRpZgorICAiIGVsc2Ugd2UgYXJlbid0IGRvaW5nIGFueSBkeW5hbWljIGZvbGRpbmcsIG5vIG5lZWQgZm9yIGFueSBzcGVjaWFsIHJ1bGVzCisKKyAgY2FsbCBleHRlbmQoczpsaW5lcywgWwogCSAgXCBzOnNldHRpbmdzLnVzZV94aHRtbCA/ICIiIDogJy0tPicsCiAJICBcICI8L3N0eWxlPiIsCiAJICBcXSkKLSAgZW5kaWYKKyAgY2FsbCBleHRlbmQoczpsaW5lcywgczppZW9ubHkpCisgIHVubGV0IHM6aWVvbmx5CiBlbmRpZgogCi1sZXQgczp1c2VzX3NjcmlwdCA9IHM6c2V0dGluZ3MuZHluYW1pY19mb2xkcyB8fCBzOnNldHRpbmdzLmxpbmVfaWRzIHx8ICFlbXB0eShzOnNldHRpbmdzLnByZXZlbnRfY29weSkKK2xldCBzOnVzZXNfc2NyaXB0ID0gczpzZXR0aW5ncy5keW5hbWljX2ZvbGRzIHx8IHM6c2V0dGluZ3MubGluZV9pZHMKIAogIiBpbnNlcnQgc2NyaXB0IHRhZyBpZiBuZWVkZWQKIGlmIHM6dXNlc19zY3JpcHQKICAgY2FsbCBleHRlbmQoczpsaW5lcywgWwogICAgICAgICBcICIiLAotICAgICAgICBcICI8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IiwKKyAgICAgICAgXCAiPHNjcmlwdCIgLiAoczpodG1sNSA/ICIiIDogIiB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIikgLiAiPiIsCiAgICAgICAgIFwgczpzZXR0aW5ncy51c2VfeGh0bWwgPyAnLy88IVtDREFUQVsnIDogIjwhLS0iXSkKIGVuZGlmCiAKQEAgLTkyNCw2NSArOTkyLDYgQEAKIAlcIF0pCiBlbmRpZgogCi0iIFNtYWxsIHRleHQgY29sdW1ucyBsaWtlIHRoZSBmb2xkY29sdW1uIGFuZCBsaW5lIG51bWJlciBjb2x1bW4gbmVlZCBhIHdlaXJkCi0iIGhhY2sgdG8gd29yayBhcm91bmQgV2Via2l0J3MgYW5kIChpbiB2ZXJzaW9ucyBwcmlvciB0byA5KSBJRSdzIGxhY2sgb2Ygc3VwcG9ydAotIiBmb3IgdGhlICdjaCcgdW5pdCB3aXRob3V0IG1lc3NpbmcgdXAgT3BlcmEsIHdoaWNoIGFsc28gZG9lc24ndCBzdXBwb3J0IGl0IGJ1dAotIiB3b3JrcyBhbnl3YXkuCi0iCi0iIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2l0aG91dCB0aGUgJ2NoJyB1bml0LCBpdCBpcyBub3QgcG9zc2libGUgdG8gc3BlY2lmeSBhCi0iIHNpemUgb2YgYW4gPGlucHV0PiBpbiB0ZXJtcyBvZiBjaGFyYWN0ZXIgd2lkdGhzLiBPbmx5IE9wZXJhIHNlZW1zIHRvIGRvIHRoZQotIiAic2Vuc2libGUiIHRoaW5nIGFuZCBtYWtlIHRoZSA8aW5wdXQ+IHNpemVkIHRvIGZpdCBleGFjdGx5IGFzIG1hbnkgY2hhcmFjdGVycwotIiBhcyBzcGVjaWZpZWQgYnkgaXRzICJzaXplIiBhdHRyaWJ1dGUsIGJ1dCB0aGUgc3BlYyBhY3R1YWxseSBzYXlzICJhdCBsZWFzdAotIiB3aWRlIGVub3VnaCB0byBmaXQgJ3NpemUnIGNoYXJhY3RlcnMiLCBzbyB0aGUgb3RoZXIgYnJvd3NlcnMgYXJlIHRlY2huaWNhbGx5Ci0iIGNvcnJlY3QgYXMgd2VsbC4KLSIKLSIgQW55d2F5LCB0aGlzIGxlYWRzIHRvIHR3byBkaWZmY3VsdGllczoKLSIgICAxLiBUaGUgZm9sZGNvbHVtbiBpcyBtYWRlIHVwIG9mIG11bHRpcGxlIGVsZW1lbnRzIHNpZGUtYnktc2lkZSB3aXRoCi0iICAgICAgZGlmZmVyZW50IHNpemVzLCBlYWNoIG9mIHdoaWNoIGhhcyB0aGVpciBvd24gZXh0cmEgcGFkZGluZyBhZGRlZC4gVGh1cywgYQotIiAgICAgIGNvbHVtbiBtYWRlIHVwIG9mIG9uZSBpdGVtIG9mIHNpemUgMSBhbmQgYW5vdGhlciBvZiBzaXplIDIgd291bGQgbm90Ci0iICAgICAgbmVjZXNzYXJpbHkgYmUgZXF1YWwgaW4gc2l6ZSB0byBhbm90aGVyIGxpbmUncyBmb2xkY29sdW1uIHdpdGggYSBzaW5nbGUKLSIgICAgICBpdGVtIG9mIHNpemUgMy4KLSIgICAyLiBUaGUgZXh0cmEgcGFkZGluZyBhZGRlZCB0byB0aGUgPGlucHV0PiBlbGVtZW50cyBhZGRzIHVwIHRvIG1ha2UgdGhlCi0iICAgICAgZm9sZGNvbHVtbiBhbmQgbGluZSBudW1iZXIgY29sdW1uIHRvbyB3aWRlLCBlc3BlY2lhbGx5IGluIFdlYmtpdAotIiAgICAgIGJyb3dzZXJzLgotIgotIiBTbywgdGhlIGZ1bGwgd29ya2Fyb3VuZCBpczoKLSIgICAxLiBEZWZpbmUgYSBkZWZhdWx0IHNpemUgaW4gZW0sIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUKLSIgICAgICBpbnB1dCBlbGVtZW50LCBpbiBjYXNlIGphdmFzY3JpcHQgaXMgZGlzYWJsZWQgYW5kIHRoZSBicm93c2VyIGRvZXMgbm90Ci0iICAgICAgc3VwcG9ydCB0aGUgJ2NoJyB1bml0LiBVbmZvcnR1bmF0ZWx5IHRoaXMgbWFrZXMgT3BlcmEgbm8gbG9uZ2VyIHdvcmsKLSIgICAgICBwcm9wZXJseSB3aXRob3V0IGphdmFzY3JpcHQuIDFlbSBwZXIgY2hhcmFjdGVyIGlzIG11Y2ggdG9vIHdpZGUgYnV0IGl0Ci0iICAgICAgbG9va3MgYmV0dGVyIGluIHdlYmtpdCBicm93c2VycyB0aGFuIHVuYWxpZ25lZCBjb2x1bW5zLgotIiAgIDIuIEluc2VydCB0aGUgZm9sbG93aW5nIGphdmFzY3JpcHQgdG8gcnVuIGF0IHBhZ2UgbG9hZCwgd2hpY2ggY2hlY2tzIGZvciB0aGUKLSIgICAgICB3aWR0aCBvZiBhIHNpbmdsZSBjaGFyYWN0ZXIgKGluIGFuIGV4dHJhbmVvdXMgcGFnZSBlbGVtZW50IGluc2VydGVkCi0iICAgICAgYmVmb3JlIHRoZSBwYWdlIHRpdGxlLCBhbmQgc2V0IHRvIGhpZGRlbikgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSB3aWR0aCBvZgotIiAgICAgIGFub3RoZXIgZXh0cmEgPGlucHV0PiBlbGVtZW50IHdpdGggb25seSBvbmUgY2hhcmFjdGVyLiBJZiB0aGUgd2lkdGgKLSIgICAgICBtYXRjaGVzLCB0aGUgc2NyaXB0IGRvZXMgbm90aGluZyBtb3JlLCBidXQgaWYgbm90LCBpdCB3aWxsIGZpZ3VyZSBvdXQgdGhlCi0iICAgICAgZnJhY3Rpb24gb2YgYW4gZW0gdW5pdCB3aGljaCB3b3VsZCBjb3JyZXNwb25kIHdpdGggYSBjaCB1bml0IGlmIHRoZXJlCi0iICAgICAgd2VyZSBvbmUsIGFuZCBzZXQgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCAoPHByZT4gb3IgPGRpdj4pIHRvIGEgY2xhc3Mgd2l0aAotIiAgICAgIHByZS1kZWZpbmVkIHJ1bGVzIHdoaWNoIGlzIGNsb3Nlc3QgdG8gdGhhdCBmcmFjdGlvbiBvZiBhbiBlbS4gUnVsZXMgYXJlCi0iICAgICAgZGVmaW5lZCBmcm9tIDAuMDUgZW0gdG8gMWVtIHBlciBjaC4KLWlmICFlbXB0eShzOnNldHRpbmdzLnByZXZlbnRfY29weSkKLSAgY2FsbCBleHRlbmQoczpsaW5lcywgWwotCVwgJycsCi0JXCAnLyogc2ltdWxhdGUgYSAiY2giIHVuaXQgYnkgYXNraW5nIHRoZSBicm93c2VyIGhvdyBiaWcgYSB6ZXJvIGNoYXJhY3RlciBpcyAqLycsCi0JXCAnZnVuY3Rpb24gRml4Q2hhcldpZHRoKCkgeycsCi0JXCAnICAvKiBnZXQgdGhlIGhpZGRlbiBlbGVtZW50IHdoaWNoIGdpdmVzIHRoZSB3aWR0aCBvZiBhIHNpbmdsZSBjaGFyYWN0ZXIgKi8nLAotCVwgJyAgdmFyIGdvb2RXaWR0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmVDaGFyV2lkdGgiKS5jbGllbnRXaWR0aDsnLAotCVwgJyAgLyogZ2V0IGFsbCBpbnB1dCBlbGVtZW50cywgd2UnJ2xsIGZpbHRlciBvbiBjbGFzcyBsYXRlciAqLycsCi0JXCAnICB2YXIgaW5wdXRUYWdzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0Iik7JywKLQlcICcgIHZhciByYXRpbyA9IDU7JywKLQlcICcgIHZhciBpbnB1dFdpZHRoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9uZUlucHV0V2lkdGgiKS5jbGllbnRXaWR0aDsnLAotCVwgJyAgdmFyIGVtV2lkdGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25lRW1XaWR0aCIpLmNsaWVudFdpZHRoOycsCi0JXCAnICBpZiAoaW5wdXRXaWR0aCA+IGdvb2RXaWR0aCkgeycsCi0JXCAnICAgIHdoaWxlIChyYXRpbyA8IDEwMCpnb29kV2lkdGgvZW1XaWR0aCAmJiByYXRpbyA8IDEwMCkgeycsCi0JXCAnICAgICAgcmF0aW8gKz0gNTsnLAotCVwgJyAgICB9JywKLQlcICcgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZpbUNvZGVFbGVtZW50Jy5zOnNldHRpbmdzLmlkX3N1ZmZpeC4nIikuY2xhc3NOYW1lID0gImVtIityYXRpbzsnLAotCVwgJyAgfScsCi0JXCAnfScKLQlcIF0pCi1lbmRpZgotCiAiIGluc2VydCBzY3JpcHQgY2xvc2luZyB0YWcgaWYgbmVlZGVkCiBpZiBzOnVzZXNfc2NyaXB0CiAgIGNhbGwgZXh0ZW5kKHM6bGluZXMsIFsKQEAgLTk5MiwxOCArMTAwMSw5IEBACiAgICAgICAgIFwgXSkKIGVuZGlmCiAKLWNhbGwgZXh0ZW5kKHM6bGluZXMsIFsiPC9oZWFkPiJdKQotaWYgIWVtcHR5KHM6c2V0dGluZ3MucHJldmVudF9jb3B5KQotICBjYWxsIGV4dGVuZChzOmxpbmVzLAotCVwgWyI8Ym9keSBvbmxvYWQ9J0ZpeENoYXJXaWR0aCgpOyIuKHM6c2V0dGluZ3MubGluZV9pZHMgPyAiIEp1bXBUb0xpbmUoKTsiIDogIiIpLiInPiIsCi0JXCAiPCEtLSBoaWRkZW4gZGl2cyB1c2VkIGJ5IGphdmFzY3JpcHQgdG8gZ2V0IHRoZSB3aWR0aCBvZiBhIGNoYXIgLS0+IiwKLQlcICI8ZGl2IGlkPSdvbmVDaGFyV2lkdGgnPjA8L2Rpdj4iLAotCVwgIjxkaXYgaWQ9J29uZUlucHV0V2lkdGgnPjxpbnB1dCBzaXplPScxJyB2YWx1ZT0nMCciLnM6dGFnX2Nsb3NlLiI8L2Rpdj4iLAotCVwgIjxkaXYgaWQ9J29uZUVtV2lkdGgnIHN0eWxlPSd3aWR0aDogMWVtOyc+PC9kaXY+IgotCVwgXSkKLWVsc2UKLSAgY2FsbCBleHRlbmQoczpsaW5lcywgWyI8Ym9keSIuKHM6c2V0dGluZ3MubGluZV9pZHMgPyAiIG9ubG9hZD0nSnVtcFRvTGluZSgpOyciIDogIiIpLiI+Il0pCi1lbmRpZgorY2FsbCBleHRlbmQoczpsaW5lcywgWyI8L2hlYWQ+IiwKKyAgICAgIFwgIjxib2R5Ii4oczpzZXR0aW5ncy5saW5lX2lkcyA/ICIgb25sb2FkPSdKdW1wVG9MaW5lKCk7JyIgOiAiIikuIj4iXSkKKwogaWYgczpzZXR0aW5ncy5ub19wcmUKICAgIiBpZiB3ZSdyZSBub3QgdXNpbmcgQ1NTIHdlIHVzZSBhIGZvbnQgdGFnIHdoaWNoIGNhbid0IGhhdmUgYSBkaXYgaW5zaWRlCiAgIGlmIHM6c2V0dGluZ3MudXNlX2NzcwpAQCAtMTAzNSwxNCArMTAzNSw2OCBAQAogICBsZXQgczpwcm9ncmVzc2Jhcj17fQogCiAgICIgUHJvZ2Vzc2JhciBzcGVjaWZpYyBmdW5jdGlvbnMKKworICBmdW5jISBzOlNldFByb2diYXJDb2xvcigpCisgICAgaWYgaGxJRCgiVE9odG1sUHJvZ3Jlc3MiKSAhPSAwCisgICAgICBoaSEgbGluayBUT2h0bWxQcm9ncmVzc19hdXRvIFRPaHRtbFByb2dyZXNzCisgICAgZWxzZWlmIGhsSUQoIlRPaHRtbFByb2dyZXNzX2F1dG8iKT09MCB8fAorICAgICAgIFwgIWV4aXN0cygiczpsYXN0X2NvbG9yc19uYW1lIikgfHwgIWV4aXN0cygiZzpjb2xvcnNfbmFtZSIpIHx8CisgICAgICAgXCBnOmNvbG9yc19uYW1lICE9IHM6bGFzdF9jb2xvcnNfbmFtZQorICAgICAgbGV0IHM6bGFzdF9jb2xvcnNfbmFtZSA9IGV4aXN0cygiZzpjb2xvcnNfbmFtZSIpID8gZzpjb2xvcnNfbmFtZSA6ICJub25lIgorCisgICAgICBsZXQgbDpkaWZmYXRyID0gc3luSURhdHRyKGhsSUQoIkRpZmZEZWxldGUiKSwgInJldmVyc2UiLCBzOndoYXR0ZXJtKSA/ICJmZyMiIDogImJnIyIKKyAgICAgIGxldCBsOnN0bGF0ciA9IHN5bklEYXR0cihobElEKCJTdGF0dXNMaW5lIiksICJyZXZlcnNlIiwgczp3aGF0dGVybSkgPyAiZmcjIiA6ICJiZyMiCisKKyAgICAgIGxldCBsOnByb2diYXJfY29sb3IgPSBzeW5JRGF0dHIoaGxJRCgiRGlmZkRlbGV0ZSIpLCBsOmRpZmZhdHIsIHM6d2hhdHRlcm0pCisgICAgICBsZXQgbDpzdGxfY29sb3IgPSBzeW5JRGF0dHIoaGxJRCgiU3RhdHVzTGluZSIpLCBsOnN0bGF0ciwgczp3aGF0dGVybSkKKworICAgICAgaWYgIiIgPT0gbDpwcm9nYmFyX2NvbG9yCisJbGV0IGw6cHJvZ2Jhcl9jb2xvciA9IHN5bklEYXR0cihobElEKCJEaWZmRGVsZXRlIiksICJyZXZlcnNlIiwgczp3aGF0dGVybSkgPyBzOmZnYyA6IHM6YmdjCisgICAgICBlbmRpZgorICAgICAgaWYgIiIgPT0gbDpzdGxfY29sb3IKKwlsZXQgbDpzdGxfY29sb3IgPSBzeW5JRGF0dHIoaGxJRCgiU3RhdHVzTGluZSIpLCAicmV2ZXJzZSIsIHM6d2hhdHRlcm0pID8gczpmZ2MgOiBzOmJnYworICAgICAgZW5kaWYKKworICAgICAgaWYgbDpwcm9nYmFyX2NvbG9yID09IGw6c3RsX2NvbG9yCisJaWYgczp3aGF0dGVybSA9PSAnY3Rlcm0nCisJICBpZiBsOnByb2diYXJfY29sb3IgPj0gKCZ0X0NvLzIpCisJICAgIGxldCBsOnByb2diYXJfY29sb3ItPTEKKwkgIGVsc2UKKwkgICAgbGV0IGw6cHJvZ2Jhcl9jb2xvcis9MQorCSAgZW5kaWYKKwllbHNlCisJICBsZXQgbDpyZ2IgPSBtYXAobWF0Y2hsaXN0KGw6cHJvZ2Jhcl9jb2xvciwgJyNcenNceFx4XHplXChceFx4XClcKFx4XHhcKScpWzoyXSwgJ3N0cjJucih2OnZhbCwgMTYpJykKKwkgIGxldCBsOmF2ZyA9IChsOnJnYlswXSArIGw6cmdiWzFdICsgbDpyZ2JbMl0pLzMKKwkgIGlmIGw6YXZnID49IDEyOAorCSAgICBsZXQgbDphdmdfbmV3ID0gbDphdmcKKwkgICAgd2hpbGUgbDphdmcgLSBsOmF2Z19uZXcgPCAweDE1CisJICAgICAgbGV0IGw6cmdiID0gbWFwKGw6cmdiLCAndjp2YWwgKiAzIC8gNCcpCisJICAgICAgbGV0IGw6YXZnX25ldyA9IChsOnJnYlswXSArIGw6cmdiWzFdICsgbDpyZ2JbMl0pLzMKKwkgICAgZW5kd2hpbGUKKwkgIGVsc2UKKwkgICAgbGV0IGw6YXZnX25ldyA9IGw6YXZnCisJICAgIHdoaWxlIGw6YXZnX25ldyAtIGw6YXZnIDwgMHgxNQorCSAgICAgIGxldCBsOnJnYiA9IG1hcChsOnJnYiwgJ21pbihbbWF4KFt2OnZhbCwgNF0pICogNSAvIDQsIDI1NV0pJykKKwkgICAgICBsZXQgbDphdmdfbmV3ID0gKGw6cmdiWzBdICsgbDpyZ2JbMV0gKyBsOnJnYlsyXSkvMworCSAgICBlbmR3aGlsZQorCSAgZW5kaWYKKwkgIGxldCBsOnByb2diYXJfY29sb3IgPSBwcmludGYoIiMlMDJ4JTAyeCUwMngiLCBsOnJnYlswXSwgbDpyZ2JbMV0sIGw6cmdiWzJdKQorCWVuZGlmCisJZWNob21zZyAiZGlmZiBkZXRlY3RlZCBwcm9nYmFyIGNvbG9yIHNldCB0byIgbDpwcm9nYmFyX2NvbG9yCisgICAgICBlbmRpZgorICAgICAgZXhlICJoaSBUT2h0bWxQcm9ncmVzc19hdXRvIiBzOndoYXR0ZXJtLiJiZz0iLmw6cHJvZ2Jhcl9jb2xvcgorICAgIGVuZGlmCisgIGVuZGZ1bgorCiAgIGZ1bmMhIHM6UHJvZ3Jlc3NCYXIodGl0bGUsIG1heF92YWx1ZSwgd2lubnIpCiAgICAgbGV0IHBnYj1jb3B5KHM6cHJvZ3Jlc3NiYXIpCiAgICAgbGV0IHBnYi50aXRsZSA9IGE6dGl0bGUuJyAnCiAgICAgbGV0IHBnYi5tYXhfdmFsdWUgPSBhOm1heF92YWx1ZQogICAgIGxldCBwZ2Iud2lubnIgPSBhOndpbm5yCiAgICAgbGV0IHBnYi5jdXJfdmFsdWUgPSAwCisKICAgICBsZXQgcGdiLml0ZW1zID0geyAndGl0bGUnICAgOiB7ICdjb2xvcicgOiAnU3RhdHVzbGluZScgfSwKLQkgIFwnYmFyJyAgICAgOiB7ICdjb2xvcicgOiAnU3RhdHVzbGluZScgLCAnZmlsbGNvbG9yJyA6ICdEaWZmRGVsZXRlJyAsICdiZycgOiAnU3RhdHVzbGluZScgfSAsCisJICBcJ2JhcicgICAgIDogeyAnY29sb3InIDogJ1N0YXR1c2xpbmUnICwgJ2ZpbGxjb2xvcicgOiAnVE9odG1sUHJvZ3Jlc3NfYXV0bycgLCAnYmcnIDogJ1N0YXR1c2xpbmUnIH0gLAogCSAgXCdjb3VudGVyJyA6IHsgJ2NvbG9yJyA6ICdTdGF0dXNsaW5lJyB9IH0KICAgICBsZXQgcGdiLmxhc3RfdmFsdWUgPSAwCiAgICAgbGV0IHBnYi5uZWVkc19yZWRyYXcgPSAwCkBAIC0xMTM0LDYgKzExODgsOCBAQAogICAgICIgdG8gcHJvY2VzcyBmb2xkcyB3ZSBtYWtlIHR3byBwYXNzZXMgdGhyb3VnaCBlYWNoIGxpbmUKICAgICBsZXQgczpwZ2IgPSBzOlByb2dyZXNzQmFyKCJQcm9jZXNzaW5nIGZvbGRzOiIsIGxpbmUoJyQnKSoyLCBzOm9yZ3dpbikKICAgZW5kaWYKKworICBjYWxsIHM6U2V0UHJvZ2JhckNvbG9yKCkKIGVuZGlmCiAKICIgRmlyc3QgZG8gc29tZSBwcmVwcm9jZXNzaW5nIGZvciBkeW5hbWljIGZvbGRpbmcuIERvIHRoaXMgZm9yIHRoZSBlbnRpcmUgZmlsZQpAQCAtMTU3NywyOCArMTYzMyw0NCBAQAogCSAgbGV0IHM6dGFiaWR4ID0gMAogCSAgbGV0IHM6dGFid2lkdGggPSAwCiAJICB3aGlsZSBzOmlkeCA+PSAwCi0JICAgIHdoaWxlIHM6c3RhcnRjb2wrczppZHggPiBzOnRhYndpZHRoICsgczp0YWJsaXN0W3M6dGFiaWR4XSAKLQkgICAgICBsZXQgczp0YWJ3aWR0aCArPSBzOnRhYmxpc3Rbczp0YWJpZHhdCi0JICAgICAgaWYgczp0YWJpZHggPCBsZW4oczp0YWJsaXN0KS0xCi0JCWxldCBzOnRhYmlkeCA9IHM6dGFiaWR4KzEKLQkgICAgICBlbmRpZgotCSAgICBlbmR3aGlsZQotCSAgICBpZiBoYXMoIm11bHRpX2J5dGVfZW5jb2RpbmciKQotCSAgICAgIGlmIHM6c3RhcnRjb2wgKyBzOmlkeCA9PSAxCi0JCWxldCBzOmkgPSBzOnRhYmxpc3Rbczp0YWJpZHhdCi0JICAgICAgZWxzZQotCQlpZiBzOmlkeCA9PSAwCi0JCSAgbGV0IHM6cHJldmMgPSBtYXRjaHN0cihzOmxpbmUsICcuXCUnIC4gKHM6c3RhcnRjb2wgKyBzOmlkeCArIHM6b2Zmc2V0KSAuICdjJykKLQkJZWxzZQotCQkgIGxldCBzOnByZXZjID0gbWF0Y2hzdHIoczpleHBhbmRlZHRhYiwgJy5cJScgLiAoczppZHggKyAxKSAuICdjJykKLQkJZW5kaWYKLQkJbGV0IHM6dmNvbCA9IHZpcnRjb2woW3M6bG51bSwgczpzdGFydGNvbCArIHM6aWR4ICsgczpvZmZzZXQgLSBsZW4oczpwcmV2YyldKQotCQlsZXQgczppID0gczp0YWJsaXN0W3M6dGFiaWR4XSAtIChzOnZjb2wgLSBzOnRhYndpZHRoKQotCSAgICAgIGVuZGlmCi0JICAgICAgbGV0IHM6b2Zmc2V0IC09IHM6aSAtIDEKKwkgICAgaWYgczpzdGFydGNvbCArIHM6aWR4ID09IDEKKwkgICAgICBsZXQgczppID0gczp0YWJsaXN0WzBdCiAJICAgIGVsc2UKLQkgICAgICBsZXQgczppID0gczp0YWJsaXN0W3M6dGFiaWR4XSAtICgoczppZHggKyBzOnN0YXJ0Y29sIC0gMSkgLSBzOnRhYndpZHRoKQorCSAgICAgICIgR2V0IHRoZSBjaGFyYWN0ZXIsIHdoaWNoIGNvdWxkIGJlIG11bHRpcGxlIGJ5dGVzLCB3aGljaCBmYWxscworCSAgICAgICIgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBmb3VuZCB0YWIuIEV4dHJhY3QgaXQgYnkgbWF0Y2hpbmcgYQorCSAgICAgICIgY2hhcmFjdGVyIGp1c3QgcHJpb3IgdG8gdGhlIGNvbHVtbiB3aGVyZSB0aGUgdGFiIG1hdGNoZXMuCisJICAgICAgIiBXZSdsbCB1c2UgdGhpcyB0byBnZXQgdGhlIGJ5dGUgaW5kZXggb2YgdGhlIGNoYXJhY3RlcgorCSAgICAgICIgaW1tZWRpYXRlbHkgcHJlY2VkaW5nIHRoZSB0YWIsIHNvIHdlIGNhbiB0aGVuIGxvb2sgdXAgdGhlCisJICAgICAgIiB2aXJ0dWFsIGNvbHVtbiB0aGF0IGNoYXJhY3RlciBhcHBlYXJzIGluLCB0byBkZXRlcm1pbmUgaG93CisJICAgICAgIiBtdWNoIG9mIHRoZSBjdXJyZW50IHRhYnN0b3AgaGFzIGJlZW4gdXNlZCB1cC4KKwkgICAgICBpZiBzOmlkeCA9PSAwCisJCSIgaWYgdGhlIGZvdW5kIHRhYiBpcyB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nCisJCSIgcHJvY2Vzc2VkLCB3ZSBuZWVkIHRvIGdldCB0aGUgY2hhcmFjdGVyIHByaW9yIHRvIHRoZSB0ZXh0LAorCQkiIGdpdmVuIGJ5IHN0YXJ0Y29sLgorCQlsZXQgczpwcmV2YyA9IG1hdGNoc3RyKHM6bGluZSwgJy5cJScgLiAoczpzdGFydGNvbCArIHM6b2Zmc2V0KSAuICdjJykKKwkgICAgICBlbHNlCisJCSIgT3RoZXJ3aXNlLCB0aGUgYnl0ZSBpbmRleCBvZiB0aGUgdGFiIGludG8gczpleHBhbmRlZHRhYiBpcworCQkiIGdpdmVuIGJ5IHM6aWR4LgorCQlsZXQgczpwcmV2YyA9IG1hdGNoc3RyKHM6ZXhwYW5kZWR0YWIsICcuXCUnIC4gKHM6aWR4ICsgMSkgLiAnYycpCisJICAgICAgZW5kaWYKKwkgICAgICBsZXQgczp2Y29sID0gdmlydGNvbChbczpsbnVtLCBzOnN0YXJ0Y29sICsgczppZHggKyBzOm9mZnNldCAtIGxlbihzOnByZXZjKV0pCisKKwkgICAgICAiIGZpbmQgdGhlIHRhYnN0b3AgaW50ZXJ2YWwgdG8gdXNlIGZvciB0aGUgdGFiIHdlIGp1c3QgZm91bmQuIEtlZXAKKwkgICAgICAiIGFkZGluZyB0YWJzdG9wcyAod2hpY2ggY291bGQgYmUgdmFyaWFibGUpIHVudGlsIHdlIHdvdWxkIGV4Y2VlZAorCSAgICAgICIgdGhlIHZpcnR1YWwgc2NyZWVuIHBvc2l0aW9uIG9mIHRoZSBzdGFydCBvZiB0aGUgZm91bmQgdGFiLgorCSAgICAgIHdoaWxlIHM6dmNvbCA+PSBzOnRhYndpZHRoICsgczp0YWJsaXN0W3M6dGFiaWR4XQorCQlsZXQgczp0YWJ3aWR0aCArPSBzOnRhYmxpc3Rbczp0YWJpZHhdCisJCWlmIHM6dGFiaWR4IDwgbGVuKHM6dGFibGlzdCktMQorCQkgIGxldCBzOnRhYmlkeCA9IHM6dGFiaWR4KzEKKwkJZW5kaWYKKwkgICAgICBlbmR3aGlsZQorCSAgICAgIGxldCBzOmkgPSBzOnRhYmxpc3Rbczp0YWJpZHhdIC0gKHM6dmNvbCAtIHM6dGFid2lkdGgpCiAJICAgIGVuZGlmCisJICAgICIgdXBkYXRlIG9mZnNldCB0byBrZWVwIHRoZSBpbmRleCB3aXRoaW4gdGhlIGxpbmUgY29ycmVzcG9uZGluZyB0bworCSAgICAiIGFjdHVhbCB0YWIgY2hhcmFjdGVycyBpbnN0ZWFkIG9mIHJlcGxhY2VkIHNwYWNlczsgczppZHggcmVmbGVjdHMKKwkgICAgIiByZXBsYWNlZCBzcGFjZXMgaW4gczpleHBhbmRlZHRhYiwgczpvZmZzZXQgY2FuY2VscyBvdXQgYWxsIGJ1dAorCSAgICAiIHRoZSB0YWIgY2hhcmFjdGVyIGl0c2VsZi4KKwkgICAgbGV0IHM6b2Zmc2V0IC09IHM6aSAtIDEKIAkgICAgbGV0IHM6ZXhwYW5kZWR0YWIgPSBzdWJzdGl0dXRlKHM6ZXhwYW5kZWR0YWIsICdcdCcsIHJlcGVhdCgnICcsIHM6aSksICcnKQogCSAgICBsZXQgczppZHggPSBzdHJpZHgoczpleHBhbmRlZHRhYiwgIlx0IikKIAkgIGVuZHdoaWxlCkBAIC0xNjc0LDEyICsxNzQ2LDEwIEBACiAKICIgTm93LCB3aGVuIHdlIGZpbmFsbHkga25vdyB3aGljaCwgd2UgZGVmaW5lIHRoZSBjb2xvcnMgYW5kIHN0eWxlcwogaWYgczpzZXR0aW5ncy51c2VfY3NzCi0gIDE7LzxzdHlsZSB0eXBlPSJ0ZXh0LysxCisgIDE7LzxzdHlsZVw+LysxCiBlbmRpZgogCiAiIE5vcm1hbC9nbG9iYWwgYXR0cmlidXRlcwotIiBGb3IgTmV0c2NhcGUgNCwgc2V0IDxib2R5PiBhdHRyaWJ1dGVzIHRvbywgdGhvdWdoLCBzdHJpY3RseSBzcGVha2luZywgaXQncwotIiBpbmNvcnJlY3QuCiBpZiBzOnNldHRpbmdzLnVzZV9jc3MKICAgaWYgczpzZXR0aW5ncy5ub19wcmUKICAgICBjYWxsIGFwcGVuZCgnLicsICJib2R5IHsgY29sb3I6ICIgLiBzOmZnYyAuICI7IGJhY2tncm91bmQtY29sb3I6ICIgLiBzOmJnYyAuICI7IGZvbnQtZmFtaWx5OiAiLiBzOmh0bWxmb250IC4iOyB9IikKQEAgLTE3MDIsNjEgKzE3NzIsMTExIEBACiAgICIgaWYgd2UgdXNlIGFueSBpbnB1dCBlbGVtZW50cyBmb3IgdW5zZWxlY3RhYmxlIGNvbnRlbnQsIG1ha2Ugc3VyZSB0aGV5IGxvb2sKICAgIiBsaWtlIG5vcm1hbCB0ZXh0CiAgIGlmICFlbXB0eShzOnNldHRpbmdzLnByZXZlbnRfY29weSkKLSAgICBjYWxsIGFwcGVuZCgnLicsICdpbnB1dCB7IGJvcmRlcjogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBmb250LWZhbWlseTogJy5zOmh0bWxmb250Lic7IH0nKQotICAgICsKLSAgICAiIGNoIHVuaXRzIGZvciBicm93c2VycyB3aGljaCBzdXBwb3J0IHRoZW0sIGVtIHVuaXRzIGZvciBhIHNvbWV3aGF0Ci0gICAgIiByZWFzb25hYmxlIGZhbGxiYWNrLiBBbHNvIG1ha2Ugc3VyZSB0aGUgc3BlY2lhbCBlbGVtZW50cyBmb3Igc2l6ZQotICAgICIgY2FsY3VsYXRpb25zIGFyZW4ndCBzZWVuLgotICAgIGNhbGwgYXBwZW5kKCcuJywgWwotCSAgXCAiaW5wdXRbc2l6ZT0nMSddIHsgd2lkdGg6IDFlbTsgd2lkdGg6IDFjaDsgfSIsCi0JICBcICJpbnB1dFtzaXplPScyJ10geyB3aWR0aDogMmVtOyB3aWR0aDogMmNoOyB9IiwKLQkgIFwgImlucHV0W3NpemU9JzMnXSB7IHdpZHRoOiAzZW07IHdpZHRoOiAzY2g7IH0iLAotCSAgXCAiaW5wdXRbc2l6ZT0nNCddIHsgd2lkdGg6IDRlbTsgd2lkdGg6IDRjaDsgfSIsCi0JICBcICJpbnB1dFtzaXplPSc1J10geyB3aWR0aDogNWVtOyB3aWR0aDogNWNoOyB9IiwKLQkgIFwgImlucHV0W3NpemU9JzYnXSB7IHdpZHRoOiA2ZW07IHdpZHRoOiA2Y2g7IH0iLAotCSAgXCAiaW5wdXRbc2l6ZT0nNyddIHsgd2lkdGg6IDdlbTsgd2lkdGg6IDdjaDsgfSIsCi0JICBcICJpbnB1dFtzaXplPSc4J10geyB3aWR0aDogOGVtOyB3aWR0aDogOGNoOyB9IiwKLQkgIFwgImlucHV0W3NpemU9JzknXSB7IHdpZHRoOiA5ZW07IHdpZHRoOiA5Y2g7IH0iLAotCSAgXCAiaW5wdXRbc2l6ZT0nMTAnXSB7IHdpZHRoOiAxMGVtOyB3aWR0aDogMTBjaDsgfSIsCi0JICBcICJpbnB1dFtzaXplPScxMSddIHsgd2lkdGg6IDExZW07IHdpZHRoOiAxMWNoOyB9IiwKLQkgIFwgImlucHV0W3NpemU9JzEyJ10geyB3aWR0aDogMTJlbTsgd2lkdGg6IDEyY2g7IH0iLAotCSAgXCAiaW5wdXRbc2l6ZT0nMTMnXSB7IHdpZHRoOiAxM2VtOyB3aWR0aDogMTNjaDsgfSIsCi0JICBcICJpbnB1dFtzaXplPScxNCddIHsgd2lkdGg6IDE0ZW07IHdpZHRoOiAxNGNoOyB9IiwKLQkgIFwgImlucHV0W3NpemU9JzE1J10geyB3aWR0aDogMTVlbTsgd2lkdGg6IDE1Y2g7IH0iLAotCSAgXCAiaW5wdXRbc2l6ZT0nMTYnXSB7IHdpZHRoOiAxNmVtOyB3aWR0aDogMTZjaDsgfSIsCi0JICBcICJpbnB1dFtzaXplPScxNyddIHsgd2lkdGg6IDE3ZW07IHdpZHRoOiAxN2NoOyB9IiwKLQkgIFwgImlucHV0W3NpemU9JzE4J10geyB3aWR0aDogMThlbTsgd2lkdGg6IDE4Y2g7IH0iLAotCSAgXCAiaW5wdXRbc2l6ZT0nMTknXSB7IHdpZHRoOiAxOWVtOyB3aWR0aDogMTljaDsgfSIsCi0JICBcICJpbnB1dFtzaXplPScyMCddIHsgd2lkdGg6IDIwZW07IHdpZHRoOiAyMGNoOyB9IiwKLQkgIFwgIiNvbmVDaGFyV2lkdGgsICNvbmVFbVdpZHRoLCAjb25lSW5wdXRXaWR0aCB7IHBhZGRpbmc6IDA7IG1hcmdpbjogMDsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtOTk5OTk5cHg7IHZpc2liaWxpdHk6IGhpZGRlbjsgfSIKLQkgIFwgXSkKLSAgICArMjEKLSAgICBmb3IgdyBpbiByYW5nZSg1LCAxMDAsIDUpCi0gICAgICBsZXQgYmFzZSA9IDAuMDEgKiB3Ci0gICAgICBjYWxsIGFwcGVuZCgnLicsIGpvaW4obWFwKHJhbmdlKDEsMjApLCAiJy5lbScudy4nIGlucHV0W3NpemU9JycnLnY6dmFsLicnJ10geyB3aWR0aDogJy5zdHJpbmcodjp2YWwqYmFzZSkuJ2VtOyB9JyIpKSkKKyAgICBpZiBzOnNldHRpbmdzLnVzZV9pbnB1dF9mb3JfcGMgIT0jICJub25lIgorICAgICAgY2FsbCBhcHBlbmQoJy4nLCAnaW5wdXQgeyBib3JkZXI6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgZm9udC1mYW1pbHk6ICcuczpodG1sZm9udC4nOyB9JykKICAgICAgICsKLSAgICBlbmRmb3IKLSAgICBpZiBzOnNldHRpbmdzLnByZXZlbnRfY29weSA9fiMgJ2YnCi0gICAgIiBNYWtlIHRoZSBjdXJzb3Igc2hvdyBhY3RpdmUgZm9sZCBjb2x1bW5zIGFzIGFjdGl2ZSBhcmVhcywgYW5kIGVtcHR5IGZvbGQKLSAgICAiIGNvbHVtbnMgYXMgbm90IGludGVyYWN0aXZlLgotICAgICAgY2FsbCBhcHBlbmQoJy4nLCBbJ2lucHV0LkZvbGRDb2x1bW4geyBjdXJzb3I6IHBvaW50ZXI7IH0nLAotCSAgICBcICdpbnB1dC5Gb2xkQ29sdW1uW3ZhbHVlPSIiXSB7IGN1cnNvcjogZGVmYXVsdDsgfScKLQkgICAgXCBdKQotICAgICAgKzIKKyAgICAgICIgY2ggdW5pdHMgZm9yIGJyb3dzZXJzIHdoaWNoIHN1cHBvcnQgdGhlbSwgZW0gdW5pdHMgZm9yIGEgc29tZXdoYXQKKyAgICAgICIgcmVhc29uYWJsZSBmYWxsYmFjay4KKyAgICAgIGZvciB3IGluIHJhbmdlKDEsIDIwLCAxKQorCWNhbGwgYXBwZW5kKCcuJywgWworCSAgICAgIFwgImlucHV0W3NpemU9JyIudy4iJ10geyB3aWR0aDogIi53LiJlbTsgd2lkdGg6ICIudy4iY2g7IH0iCisJICAgICAgXCBdKQorCSsKKyAgICAgIGVuZGZvcgogICAgIGVuZGlmCi0gICAgIiBtYWtlIGxpbmUgbnVtYmVyIGNvbHVtbiBzaG93IGFzIG5vbi1pbnRlcmFjdGl2ZSBpZiBub3Qgc2VsZWN0YWJsZQotICAgIGlmIHM6c2V0dGluZ3MucHJldmVudF9jb3B5ID1+IyAnbicKLSAgICAgIGNhbGwgYXBwZW5kKCcuJywgJ2lucHV0LkxpbmVOciB7IGN1cnNvcjogZGVmYXVsdDsgfScpCi0gICAgICArCisKKyAgICBpZiBzOnNldHRpbmdzLnVzZV9pbnB1dF9mb3JfcGMgIT0jICdhbGwnCisgICAgICBsZXQgczp1bnNlbGVjdGFibGVfc3R5bGVzID0gW10KKyAgICAgIGlmIHM6c2V0dGluZ3MucHJldmVudF9jb3B5ID1+IyAnZicKKwljYWxsIGFkZChzOnVuc2VsZWN0YWJsZV9zdHlsZXMsICdGb2xkQ29sdW1uJykKKyAgICAgIGVuZGlmCisgICAgICBpZiBzOnNldHRpbmdzLnByZXZlbnRfY29weSA9fiMgJ24nCisJY2FsbCBhZGQoczp1bnNlbGVjdGFibGVfc3R5bGVzLCAnTGluZU5yJykKKyAgICAgIGVuZGlmCisgICAgICBpZiBzOnNldHRpbmdzLnByZXZlbnRfY29weSA9fiMgJ3QnICYmICFzOnNldHRpbmdzLmlnbm9yZV9mb2xkaW5nCisJY2FsbCBhZGQoczp1bnNlbGVjdGFibGVfc3R5bGVzLCAnRm9sZGVkJykKKyAgICAgIGVuZGlmCisgICAgICBpZiBzOnNldHRpbmdzLnByZXZlbnRfY29weSA9fiMgJ2QnCisJY2FsbCBhZGQoczp1bnNlbGVjdGFibGVfc3R5bGVzLCAnRGlmZkRlbGV0ZScpCisgICAgICBlbmRpZgorICAgICAgaWYgczpzZXR0aW5ncy51c2VfaW5wdXRfZm9yX3BjICE9IyAnbm9uZScKKwljYWxsIGFwcGVuZCgnLicsIFsKKwkgICAgICBcICcvKiBOb3RlOiBJRSBkb2VzIG5vdCBzdXBwb3J0IEBzdXBwb3J0cyBjb25kaXRpb25hbHMsIGJ1dCBhbHNvIGRvZXMgbm90IGZ1bGx5IHN1cHBvcnQnLAorCSAgICAgIFwgJyAgICJjb250ZW50OiIgd2l0aCBjdXN0b20gY29udGVudCwgc28gd2UgKndhbnQqIHRoZSBjaGVjayB0byBmYWlsICovJywKKwkgICAgICBcICdAc3VwcG9ydHMgKCBjb250ZW50OiBhdHRyKGRhdGEtY3VzdG9tLWNvbnRlbnQpICkgeycKKwkgICAgICBcIF0pCisJKzMKKyAgICAgIGVuZGlmCisgICAgICAiIFRoZSBsaW5lIG51bWJlciBjb2x1bW4gaW5zaWRlIHRoZSBmb2xkdGV4dCBpcyBzdHlsZWQganVzdCBsaWtlIHRoZSBmb2xkCisgICAgICAiIHRleHQgaW4gVmltLCBidXQgaXQgc2hvdWxkIHVzZSB0aGUgcHJldmVudF9jb3B5IHNldHRpbmdzIG9mIGxpbmUgbnVtYmVyCisgICAgICAiIHJhdGhlciB0aGFuIGZvbGQgdGV4dC4gQXBwbHkgdGhlIHByZXZlbnRfY29weSBzdHlsZXMgdG8gZm9sZHRleHQKKyAgICAgICIgc3BlY2lmaWNhbGx5IGZvciBsaW5lIG51bWJlcnMsIHdoaWNoIGFsd2F5cyBjb21lIGFmdGVyIHRoZSBmb2xkIGNvbHVtbiwKKyAgICAgICIgb3IgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS4KKyAgICAgIGlmIHM6c2V0dGluZ3MucHJldmVudF9jb3B5ID1+IyAnbicgJiYgIXM6c2V0dGluZ3MuaWdub3JlX2ZvbGRpbmcKKwljYWxsIGFwcGVuZCgnLicsIFsKKwkgICAgICBcICcgIC5Gb2xkQ29sdW1uICsgLkZvbGRlZCwgLkZvbGRlZDpmaXJzdC1jaGlsZCB7IHVzZXItc2VsZWN0OiBub25lOyB9JywKKwkgICAgICBcICcgIC5Gb2xkQ29sdW1uICsgW2RhdGEtRm9sZGVkLWNvbnRlbnRdOjpiZWZvcmUsIFtkYXRhLUZvbGRlZC1jb250ZW50XTpmaXJzdC1jaGlsZDo6YmVmb3JlIHsgY29udGVudDogYXR0cihkYXRhLUZvbGRlZC1jb250ZW50KTsgfScsCisJICAgICAgXCAnICAuRm9sZENvbHVtbiArIFtkYXRhLUZvbGRlZC1jb250ZW50XTo6YmVmb3JlLCBbZGF0YS1Gb2xkZWQtY29udGVudF06Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7IHBhZGRpbmctYm90dG9tOiAxcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogbWF0Y2ggdGhlIDEtcHggcGFkZGluZyBvZiBzdGFuZGFyZCBpdGVtcyB3aXRoIGJhY2tncm91bmQgKi8gfScsCisJICAgICAgXCAnICAuRm9sZENvbHVtbiArIHNwYW5bZGF0YS1Gb2xkZWQtY29udGVudF06OmJlZm9yZSwgW2RhdGEtRm9sZGVkLWNvbnRlbnRdOmZpcnN0LWNoaWxkOjpiZWZvcmUgeyBjdXJzb3I6IGRlZmF1bHQ7IH0nLAorCSAgICAgIFwgXSkKKwkrNAorICAgICAgZW5kaWYKKyAgICAgIGZvciBzOnN0eWxlX25hbWUgaW4gczp1bnNlbGVjdGFibGVfc3R5bGVzCisJY2FsbCBhcHBlbmQoJy4nLCBbCisJICAgICAgXCAnICAuJy5zOnN0eWxlX25hbWUuJyB7IHVzZXItc2VsZWN0OiBub25lOyB9JywKKwkgICAgICBcICcgIFtkYXRhLScuczpzdHlsZV9uYW1lLictY29udGVudF06OmJlZm9yZSB7IGNvbnRlbnQ6IGF0dHIoZGF0YS0nLnM6c3R5bGVfbmFtZS4nLWNvbnRlbnQpOyB9JywKKwkgICAgICBcICcgIFtkYXRhLScuczpzdHlsZV9uYW1lLictY29udGVudF06OmJlZm9yZSB7IHBhZGRpbmctYm90dG9tOiAxcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogbWF0Y2ggdGhlIDEtcHggcGFkZGluZyBvZiBzdGFuZGFyZCBpdGVtcyB3aXRoIGJhY2tncm91bmQgKi8gfScsCisJICAgICAgXCAnICBzcGFuW2RhdGEtJy5zOnN0eWxlX25hbWUuJy1jb250ZW50XTo6YmVmb3JlIHsgY3Vyc29yOiBkZWZhdWx0OyB9JywKKwkgICAgICBcIF0pCisJKzQKKyAgICAgIGVuZGZvcgorICAgICAgaWYgczpzZXR0aW5ncy51c2VfaW5wdXRfZm9yX3BjICE9IyAnbm9uZScKKwljYWxsIGFwcGVuZCgnLicsIFsKKwkgICAgICBcICcgIGlucHV0IHsgZGlzcGxheTogbm9uZTsgfScsCisJICAgICAgXCAnfScKKwkgICAgICBcIF0pCisJKzIKKyAgICAgIGVuZGlmCisgICAgICB1bmxldCBzOnVuc2VsZWN0YWJsZV9zdHlsZXMKICAgICBlbmRpZgotICAgICIgbWFrZSBmb2xkIHRleHQgYW5kIGxpbmUgbnVtYmVyIGNvbHVtbiB3aXRoaW4gZm9sZCB0ZXh0IHNob3cgYXMKLSAgICAiIG5vbi1pbnRlcmFjdGl2ZSBpZiBub3Qgc2VsZWN0YWJsZQotICAgIGlmIChzOnNldHRpbmdzLnByZXZlbnRfY29weSA9fiMgJ24nIHx8IHM6c2V0dGluZ3MucHJldmVudF9jb3B5ID1+IyAndCcpICYmICFzOnNldHRpbmdzLmlnbm9yZV9mb2xkaW5nCi0gICAgICBjYWxsIGFwcGVuZCgnLicsICdpbnB1dC5Gb2xkZWQgeyBjdXJzb3I6IGRlZmF1bHQ7IH0nKQotICAgICAgKworCisgICAgIiBGaXggbW91c2UgY3Vyc29yIHNoYXBlIGZvciB0aGUgZmFsbGJhY2sgPGlucHV0PiBtZXRob2Qgb2YgdW5jb3B5YWJsZSB0ZXh0CisgICAgaWYgczpzZXR0aW5ncy51c2VfaW5wdXRfZm9yX3BjICE9IyAnbm9uZScKKyAgICAgIGlmIHM6c2V0dGluZ3MucHJldmVudF9jb3B5ID1+IyAnZicKKwkiIE1ha2UgdGhlIGN1cnNvciBzaG93IGFjdGl2ZSBmb2xkIGNvbHVtbnMgYXMgYWN0aXZlIGFyZWFzLCBhbmQgZW1wdHkgZm9sZAorCSIgY29sdW1ucyBhcyBub3QgaW50ZXJhY3RpdmUuCisJY2FsbCBhcHBlbmQoJy4nLCBbJ2lucHV0LkZvbGRDb2x1bW4geyBjdXJzb3I6IHBvaW50ZXI7IH0nLAorCSAgICAgIFwgJ2lucHV0LkZvbGRDb2x1bW5bdmFsdWU9IicucmVwZWF0KCcgJywgczpmb2xkY29sdW1uKS4nIl0geyBjdXJzb3I6IGRlZmF1bHQ7IH0nCisJICAgICAgXCBdKQorCSsyCisJaWYgczpzZXR0aW5ncy51c2VfaW5wdXRfZm9yX3BjICE9IyAnYWxsJworCSAgY2FsbCBhcHBlbmQoJy4nLCBbCisJCVwgJ2FbZGF0YS1Gb2xkQ29sdW1uLWNvbnRlbnQ9IicucmVwZWF0KCcgJywgczpmb2xkY29sdW1uKS4nIl0geyBjdXJzb3I6IGRlZmF1bHQ7IH0nCisJCVwgXSkKKwkgICsxCisJZW5kCisgICAgICBlbmRpZgorICAgICAgIiBtYWtlIGxpbmUgbnVtYmVyIGNvbHVtbiBzaG93IGFzIG5vbi1pbnRlcmFjdGl2ZSBpZiBub3Qgc2VsZWN0YWJsZQorICAgICAgaWYgczpzZXR0aW5ncy5wcmV2ZW50X2NvcHkgPX4jICduJworCWNhbGwgYXBwZW5kKCcuJywgJ2lucHV0LkxpbmVOciB7IGN1cnNvcjogZGVmYXVsdDsgfScpCisJKworICAgICAgZW5kaWYKKyAgICAgICIgbWFrZSBmb2xkIHRleHQgYW5kIGxpbmUgbnVtYmVyIGNvbHVtbiB3aXRoaW4gZm9sZCB0ZXh0IHNob3cgYXMKKyAgICAgICIgbm9uLWludGVyYWN0aXZlIGlmIG5vdCBzZWxlY3RhYmxlCisgICAgICBpZiAoczpzZXR0aW5ncy5wcmV2ZW50X2NvcHkgPX4jICduJyB8fCBzOnNldHRpbmdzLnByZXZlbnRfY29weSA9fiMgJ3QnKSAmJiAhczpzZXR0aW5ncy5pZ25vcmVfZm9sZGluZworCWNhbGwgYXBwZW5kKCcuJywgJ2lucHV0LkZvbGRlZCB7IGN1cnNvcjogZGVmYXVsdDsgfScpCisJKworICAgICAgZW5kaWYKKyAgICAgICIgbWFrZSBkaWZmIGZpbGxlciBzaG93IGFzIG5vbi1pbnRlcmFjdGl2ZSBpZiBub3Qgc2VsZWN0YWJsZQorICAgICAgaWYgczpzZXR0aW5ncy5wcmV2ZW50X2NvcHkgPX4jICdkJworCWNhbGwgYXBwZW5kKCcuJywgJ2lucHV0LkRpZmZEZWxldGUgeyBjdXJzb3I6IGRlZmF1bHQ7IH0nKQorCSsKKyAgICAgIGVuZGlmCiAgICAgZW5kaWYKICAgZW5kaWYKIGVsc2UKKyAgIiBGb3IgTmV0c2NhcGUgNCwgc2V0IDxib2R5PiBhdHRyaWJ1dGVzIHRvbywgdGhvdWdoLCBzdHJpY3RseSBzcGVha2luZywgaXQncworICAiIGluY29ycmVjdC4KICAgZXhlY3V0ZSAnJXM6PGJvZHlcKFtePl0qXCk6PGJvZHkgYmdjb2xvcj0iJyAuIHM6YmdjIC4gJyIgdGV4dD0iJyAuIHM6ZmdjIC4gJyJcMT5ccjxmb250IGZhY2U9IicuIHM6aHRtbGZvbnQgLiciJwogZW5kaWYKIApAQCAtMTc3OSw4ICsxODk5LDggQEAKICIgVGhlIERURAogaWYgczpzZXR0aW5ncy51c2VfeGh0bWwKICAgZXhlICJub3JtYWwhIGdnJGFcbjwhRE9DVFlQRSBodG1sIFBVQkxJQyBcIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOXCIgXCJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkXCI+IgotZWxzZWlmIHM6c2V0dGluZ3MudXNlX2NzcyAmJiAhczpzZXR0aW5ncy5ub19wcmUKLSAgZXhlICJub3JtYWwhIGdnMGk8IURPQ1RZUEUgSFRNTCBQVUJMSUMgXCItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOXCIgXCJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkXCI+XG4iCitlbHNlaWYgczpodG1sNQorICBleGUgIm5vcm1hbCEgZ2cwaTwhRE9DVFlQRSBodG1sPlxuIgogZWxzZQogICBleGUgIm5vcm1hbCEgZ2cwaTwhRE9DVFlQRSBIVE1MIFBVQkxJQyBcIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOXCIgXCJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGRcIj5cbiIKIGVuZGlmCkBAIC0xODIzLDYgKzE5NDMsNyBAQAogbGV0ICZsOndpbmZpeGhlaWdodCA9IHM6b2xkX3dpbmZpeGhlaWdodAogCiBsZXQgJmxzPXM6bHMKK2xldCAmZXZlbnRpZ25vcmU9czplaV9zYXYKIAogIiBTYXZlIGEgbGl0dGxlIGJpdCBvZiBtZW1vcnkgKHdvcnRoIGRvaW5nPykKIHVubGV0IHM6aHRtbGZvbnQgczp3aGl0ZXNwYWNlCkBAIC0xODMxLDcgKzE5NTIsNyBAQAogdW5sZXQhIHM6b2xkX2lzcHJpbnQKIHVubGV0IHM6d2hhdHRlcm0gczpzdHlsZWxpc3QgczpkaWZmc3R5bGVsaXN0IHM6bG51bSBzOmVuZCBzOm1hcmdpbiBzOmZnYyBzOmJnYyBzOm9sZF93aW5maXhoZWlnaHQKIHVubGV0ISBzOmNvbCBzOmlkIHM6YXR0ciBzOmxlbiBzOmxpbmUgczpuZXcgczpleHBhbmRlZHRhYiBzOmNvbmNlYWxpbmZvIHM6ZGlmZl9tb2RlCi11bmxldCEgczpvcmd3aW4gczpuZXd3aW4gczpvcmdidWZuciBzOmlkeCBzOmkgczpvZmZzZXQgczpscyBzOm9yaWd3aW5fc3RsCit1bmxldCEgczpvcmd3aW4gczpuZXd3aW4gczpvcmdidWZuciBzOmlkeCBzOmkgczpvZmZzZXQgczpscyBzOmVpX3NhdiBzOm9yaWd3aW5fc3RsCiB1bmxldCEgczpuZXd3aW5fc3RsIHM6Y3VycmVudF9zeW50YXgKIGlmICF2OnByb2ZpbGluZwogICBkZWxmdW5jIHM6SHRtbENvbG9yCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9mb3J0cmFuLnZpbSBiL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltCmluZGV4IDRjMjZlNzguLjU2MjM4MjMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltCkBAIC0xLDE3ICsxLDE3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJRm9ydHJhbiAyMDA4IChhbmQgb2xkZXI6IEZvcnRyYW4gMjAwMywgOTUsIDkwLCBhbmQgNzcpCi0iIFZlcnNpb246CTEwMAotIiBMYXN0IENoYW5nZToJMjAxNiBPY3QuIDI5CisiIFZlcnNpb246CTEwMQorIiBMYXN0IENoYW5nZToJMjAxOSBOb3YuIDI2CiAiIE1haW50YWluZXI6CUFqaXQgSi4gVGhha2thciA8YWppdEB1bmIuY2E+OyA8aHR0cDovL3d3dzIudW5iLmNhL35haml0Lz4KICIgVXNhZ2U6CUZvciBpbnN0cnVjdGlvbnMsIGRvIDpoZWxwIGZvcnRyYW4tc3ludGF4IGZyb20gVmltCiAiIENyZWRpdHM6Ci0iICBWZXJzaW9uIDAuMSAoQXByaWwgMjAwMCkgZm9yIEZvcnRyYW4gOTUgd2FzIGJhc2VkIG9uIHRoZSBGb3J0cmFuIDc3IHN5bnRheCBmaWxlIGJ5Ci0iICBNYXJpbyBFdXNlYmlvIGFuZCBQcmViZW4gR3VsZGJlcmcuIFNpbmNlIHRoZW4sIHVzZWZ1bCBzdWdnZXN0aW9ucyBhbmQgY29udHJpYnV0aW9ucwotIiAgaGF2ZSBiZWVuIG1hZGUsIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIsIGJ5OgorIiAgVmVyc2lvbiAwLjEgZm9yIEZvcnRyYW4gOTUgd2FzIGNyZWF0ZWQgKEFwcmlsIDIwMDApIGJ5IEFqaXQgVGhha2thciBmcm9tIHRoZQorIiAgRm9ydHJhbiA3NyBzeW50YXggZmlsZSBieSBNYXJpbyBFdXNlYmlvIGFuZCBQcmViZW4gR3VsZGJlcmcuCisiICBTaW5jZSB0aGVuLCB1c2VmdWwgc3VnZ2VzdGlvbnMgYW5kIGNvbnRyaWJ1dGlvbnMgaGF2ZSBiZWVuIG1hZGUsIGluIG9yZGVyLCBieToKICIgIEFuZHJlaiBQYW5qa292LCBCcmFtIE1vb2xlbmFhciwgVGhvbWFzIE9sc2VuLCBNaWNoYWVsIFN0ZXJuYmVyZywgQ2hyaXN0aWFuIFJlaWxlLAogIiAgV2FsdGVyIERpZXVkb25u6SwgQWxleGFuZGVyIFdhZ25lciwgUm9tYW4gQmVydGxlLCBDaGFybGVzIFJlbmRsZW1hbiwKICIgIEFuZHJldyBHcmlmZml0aHMsIEpvZSBLcmFobiwgSGVuZHJpayBNZXJ4LCBNYXR0IFRob21wc29uLCBKYW4gSGVybWFubiwKLSIgIFN0ZWZhbm8gWmFnaGksIFZpc2hudSBWLiBLcmlzaG5hbiBhbmQgSnVkaWNh62wgR3Jhc3NldAorIiAgU3RlZmFubyBaYWdoaSwgVmlzaG51IFYuIEtyaXNobmFuLCBKdWRpY2HrbCBHcmFzc2V0LCBhbmQgVGFrdW1hIFlvc2hpZGEKIAogaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKICAgZmluaXNoCkBAIC05Miw5ICs5Miw5IEBACiAgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZQkiXlxzKlx6c1xhXHcqXHplXHMqOiIKIGVuZGlmCiBpZiBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKLSAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqZG9cc1wrXClcQDw9XGFcdyoiCi0gIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmlmXHNcK1wpXEA8PVxhXHcqIgotICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUgIlwoXDxlbmRccypzZWxlY3Rcc1wrXClcQDw9XGFcdyoiCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmRvXHNcK1wpXEAxMTw9XGFcdyoiCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmlmXHNcK1wpXEAxMTw9XGFcdyoiCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKnNlbGVjdFxzXCtcKVxAMTU8PVxhXHcqIgogZW5kaWYKIAogc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFw+IgpAQCAtMTg1LDggKzE4NSw4IEBACiBpZiBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKICAgIiBOdW1iZXJzIGFzIHRhcmdldHMKICAgc3luIG1hdGNoIGZvcnRyYW5UYXJnZXQJZGlzcGxheQkiXChcPGlmXHMqKC5cKylccypcKVxAPD1cKFxkXCtccyosXHMqXClcezJ9XGRcK1w+IgotICBzeW4gbWF0Y2ggZm9ydHJhblRhcmdldAlkaXNwbGF5CSJcKFw8ZG9cc1wrXClcQDw9XGRcK1w+IgotICBzeW4gbWF0Y2ggZm9ydHJhblRhcmdldAlkaXNwbGF5CSJcKFw8Z29ccyp0b1xzKihcPVwpXEA8PVwoXGRcK1xzKixccypcKSpcZFwrXD4iCisgIHN5biBtYXRjaCBmb3J0cmFuVGFyZ2V0CWRpc3BsYXkJIlwoXDxkb1xzXCtcKVxAPDExPVxkXCtcPiIKKyAgc3luIG1hdGNoIGZvcnRyYW5UYXJnZXQJZGlzcGxheQkiXChcPGdvXHMqdG9ccyooXD1cKVxAPDExPVwoXGRcK1xzKixccypcKSpcZFwrXD4iCiBlbmRpZgogCiBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZVIJZXh0ZXJuYWwKQEAgLTI3NCw3ICsyNzQsNyBAQAogc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkJIlw8cHVyZVw+Igogc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkJIlw8aW1wdXJlXD4iCiBpZiBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKLSAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqZm9yYWxsXHNcK1wpXEA8PVxhXHcqXD4iCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmZvcmFsbFxzXCtcKVxAPDE1PVxhXHcqXD4iCiBlbmRpZgogCiBpZiBiOmZvcnRyYW5fZGlhbGVjdCA9PSAiZjA4IgpAQCAtMzc1LDcgKzM3NSw4IEBACiBzeW4gbWF0Y2gJY1ByZVByb2MJCSJeXHMqI1xzKlwoZWxpZlx8aWZcKVw+LioiCiBzeW4gbWF0Y2gJY1ByZVByb2MJCSJeXHMqI1xzKlwoaWZuZGVmXHx1bmRlZlwpXD4uKiIKIHN5biBtYXRjaAljUHJlQ29uZGl0CQkiXlxzKiNccypcKGVsc2VcfGVuZGlmXClcPi4qIgotc3luIHJlZ2lvbgljSW5jbHVkZWQJY29udGFpbmVkIHN0YXJ0PSsiW14oXSsgc2tpcD0rXFxcXFx8XFwiKyBlbmQ9KyIrIGNvbnRhaW5zPWZvcnRyYW5MZWZ0TWFyZ2luLGZvcnRyYW5Db250aW51ZU1hcmssZm9ydHJhblNlcmlhbE51bWJlcgorc3luIHJlZ2lvbgljSW5jbHVkZWQJY29udGFpbmVkIHN0YXJ0PSsiW14oIl0rIHNraXA9K1xcXFxcfFxcIisgZW5kPSsiKyBjb250YWlucz1mb3J0cmFuTGVmdE1hcmdpbixmb3J0cmFuQ29udGludWVNYXJrLGZvcnRyYW5TZXJpYWxOdW1iZXIKKyJzeW4gcmVnaW9uCWNJbmNsdWRlZAkgICAgICAgIGNvbnRhaW5lZCBzdGFydD0rIlteKCJdKyBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisKIHN5biBtYXRjaAljSW5jbHVkZWQJCWNvbnRhaW5lZCAiPFtePl0qPiIKIHN5biBtYXRjaAljSW5jbHVkZQkJIl5ccyojXHMqaW5jbHVkZVw+XHMqWyI8XSIgY29udGFpbnM9Y0luY2x1ZGVkCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2hlbHAudmltIGIvcnVudGltZS9zeW50YXgvaGVscC52aW0KaW5kZXggNjczYTU0Zi4uYThkNDVhNCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvaGVscC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvaGVscC52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJVmltIGhlbHAgZmlsZQogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciAoQnJhbUB2aW0ub3JnKQotIiBMYXN0IENoYW5nZToJMjAxOSBNYXkgMTIKKyIgTGFzdCBDaGFuZ2U6CTIwMTkgTm92IDI2CiAKICIgUXVpdCB3aGVuIGEgKGN1c3RvbSkgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCiBpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQpAQCAtOTAsNiArOTAsNyBAQAogc3luIG1hdGNoIGhlbHBOb3JtYWwJCSJcW1wocmVhZG9ubHlcfGZpZm9cfHNvY2tldFx8Y29udmVydGVkXHxjcnlwdGVkXCldIgogCiBzeW4gbWF0Y2ggaGVscFNwZWNpYWwJCSJDVFJMLS4iCitzeW4gbWF0Y2ggaGVscFNwZWNpYWwJCSJDVFJMLVNISUZULS4iCiBzeW4gbWF0Y2ggaGVscFNwZWNpYWwJCSJDVFJMLUJyZWFrIgogc3luIG1hdGNoIGhlbHBTcGVjaWFsCQkiQ1RSTC1QYWdlVXAiCiBzeW4gbWF0Y2ggaGVscFNwZWNpYWwJCSJDVFJMLVBhZ2VEb3duIgo=