ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2F1dG9jbWQudHh0IGIvcnVudGltZS9kb2MvYXV0b2NtZC50eHQKaW5kZXggZTJjYTY3YS4uMzkwYWZhZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvYXV0b2NtZC50eHQKKysrIGIvcnVudGltZS9kb2MvYXV0b2NtZC50eHQKQEAgLTEsNCArMSw0IEBACi0qYXV0b2NtZC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgT2N0IDEwCisqYXV0b2NtZC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTm92IDIxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC04MTIsNiArODEyLDEwIEBACiAJCQlhdXRvY29tbWFuZHMgZm9yIHRoYXQgZ3JvdXAuICBOb3RlOiBpZiB5b3UgdXNlIGFuCiAJCQl1bmRlZmluZWQgZ3JvdXAgbmFtZSwgVmltIGdpdmVzIHlvdSBhbiBlcnJvciBtZXNzYWdlLgogCisJCQlBZnRlciBhcHBseWluZyB0aGUgYXV0b2NvbW1hbmRzIHRoZSBtb2RlbGluZXMgYXJlCisJCQlwcm9jZXNzZWQsIHNvIHRoYXQgdGhlaXIgb3ZlcnJ1bGUgdGhlIHNldHRpbmdzIGZyb20KKwkJCWF1dG9jb21tYW5kcywgbGlrZSB3aGF0IGhhcHBlbnMgd2hlbiBlZGl0aW5nIGEgZmlsZS4KKwogCQkJCQkJKjpkb2F1dG9hKiAqOmRvYXV0b2FsbCoKIDpkb2F1dG9hW2xsXSBbZ3JvdXBdIHtldmVudH0gW2ZuYW1lXQogCQkJTGlrZSAiOmRvYXV0b2NtZCIsIGJ1dCBhcHBseSB0aGUgYXV0b2NvbW1hbmRzIHRvIGVhY2gKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NtZGxpbmUudHh0IGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKaW5kZXggMWVhNTEyZS4uZWMzNTRlYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvY21kbGluZS50eHQKKysrIGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKQEAgLTEsNCArMSw0IEBACi0qY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgU2VwIDE3CisqY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTm92IDIxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC01NjIsNyArNTYyLDcgQEAKIAkJCSJuYW1lIgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLTQuIEV4IGNvbW1hbmQtbGluZSByYW5nZXMJKmNtZGxpbmUtcmFuZ2VzKiAqW3JhbmdlXSogKkUxNiogKkU0OTMqCis0LiBFeCBjb21tYW5kLWxpbmUgcmFuZ2VzCSpjbWRsaW5lLXJhbmdlcyogKltyYW5nZV0qICpFMTYqCiAKIFNvbWUgRXggY29tbWFuZHMgYWNjZXB0IGEgbGluZSByYW5nZSBpbiBmcm9udCBvZiB0aGVtLiAgVGhpcyBpcyBub3RlZCBhcwogW3JhbmdlXS4gIEl0IGNvbnNpc3RzIG9mIG9uZSBvciBtb3JlIGxpbmUgc3BlY2lmaWVycywgc2VwYXJhdGVkIHdpdGggJywnIG9yCkBAIC02NDgsMTEgKzY0OCwxNSBAQAogY2xvc2VkIGZvbGQuICBTZWUgfGZvbGQtYmVoYXZpb3J8LgogCiAKLVJldmVyc2UgUmFuZ2UKK1JldmVyc2UgUmFuZ2UJCQkJCQkqRTQ5MyoKIAogQSByYW5nZSBzaG91bGQgaGF2ZSB0aGUgbG93ZXIgbGluZSBudW1iZXIgZmlyc3QuICBJZiB0aGlzIGlzIG5vdCB0aGUgY2FzZSwgVmltCi13aWxsIGFzayB5b3UgaWYgaXQgc2hvdWxkIHN3YXAgdGhlIGxpbmUgbnVtYmVycy4gIFRoaXMgaXMgbm90IGRvbmUgd2l0aGluIHRoZQotZ2xvYmFsIGNvbW1hbmQgIjpnIi4KK3dpbGwgYXNrIHlvdSBpZiBpdCBzaG91bGQgc3dhcCB0aGUgbGluZSBudW1iZXJzLiAKKwlCYWNrd2FyZHMgcmFuZ2UgZ2l2ZW4sIE9LIHRvIHN3YXAgfgorVGhpcyBpcyBub3QgZG9uZSB3aXRoaW4gdGhlIGdsb2JhbCBjb21tYW5kICI6ZyIuCisKK1lvdSBjYW4gdXNlICI6c2lsZW50IiBiZWZvcmUgYSBjb21tYW5kIHRvIGF2b2lkIHRoZSBxdWVzdGlvbiwgdGhlIHJhbmdlIHdpbGwKK2Fsd2F5cyBiZSBzd2FwcGVkIHRoZW4uCiAKIAogQ291bnQgYW5kIFJhbmdlCQkJCQkJKk46KgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZXZhbC50eHQgYi9ydW50aW1lL2RvYy9ldmFsLnR4dAppbmRleCBjYjdlZDZlLi5hZGNmNDUxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ldmFsLnR4dAorKysgYi9ydW50aW1lL2RvYy9ldmFsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpldmFsLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBPY3QgMTIKKypldmFsLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBOb3YgMjAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTUwNTAsNiArNTA1MCw5IEBACiAKIAk6bGV0IGwgPSBmb28jYmFyI2x2YXIKIAorSG93ZXZlciwgd2hlbiB0aGUgYXV0b2xvYWQgc2NyaXB0IHdhcyBhbHJlYWR5IGxvYWRlZCBpdCB3b24ndCBiZSBsb2FkZWQgYWdhaW4KK2ZvciBhbiB1bmtub3duIHZhcmlhYmxlLgorCiBXaGVuIGFzc2lnbmluZyBhIHZhbHVlIHRvIHN1Y2ggYSB2YXJpYWJsZSBub3RoaW5nIHNwZWNpYWwgaGFwcGVucy4gIFRoaXMgY2FuCiBiZSB1c2VkIHRvIHBhc3Mgc2V0dGluZ3MgdG8gdGhlIGF1dG9sb2FkIHNjcmlwdCBiZWZvcmUgaXQncyBsb2FkZWQ6ID4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfcGVybC50eHQgYi9ydW50aW1lL2RvYy9pZl9wZXJsLnR4dAppbmRleCBlZjA3NjNkLi42ZTBhM2U0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9wZXJsLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9wZXJsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9wZXJsLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKyppZl9wZXJsLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBPY3QgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgU3ZlbiBWZXJkb29sYWVnZQpAQCAtOSw2ICs5LDcgQEAKIDEuIEVkaXRpbmcgUGVybCBmaWxlcwkJCXxwZXJsLWVkaXRpbmd8CiAyLiBDb21waWxpbmcgVklNIHdpdGggUGVybCBpbnRlcmZhY2UJfHBlcmwtY29tcGlsaW5nfAogMy4gVXNpbmcgdGhlIFBlcmwgaW50ZXJmYWNlCQl8cGVybC11c2luZ3wKKzQuIER5bmFtaWMgbG9hZGluZwkJCXxwZXJsLWR5bmFtaWN8CiAKIHtWaSBkb2VzIG5vdCBoYXZlIGFueSBvZiB0aGVzZSBjb21tYW5kc30KIApAQCAtMjU5LDQgKzI2MCwyMiBAQAogICAgIGVuZGlmCiBOb3RlIHRoYXQgIkVPRiIgbXVzdCBiZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuCiAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorNC4gRHluYW1pYyBsb2FkaW5nCQkJCQkqcGVybC1keW5hbWljKgorCitPbiBNUy1XaW5kb3dzIHRoZSBQZXJsIGxpYnJhcnkgY2FuIGJlIGxvYWRlZCBkeW5hbWljYWxseS4gIFRoZSB8OnZlcnNpb258CitvdXRwdXQgdGhlbiBpbmNsdWRlcyB8K3BlcmwvZHlufC4KKworVGhpcyBtZWFucyB0aGF0IFZpbSB3aWxsIHNlYXJjaCBmb3IgdGhlIFBlcmwgRExMIGZpbGUgb25seSB3aGVuIG5lZWRlZC4gIFdoZW4KK3lvdSBkb24ndCB1c2UgdGhlIFBlcmwgaW50ZXJmYWNlIHlvdSBkb24ndCBuZWVkIGl0LCB0aHVzIHlvdSBjYW4gdXNlIFZpbQord2l0aG91dCB0aGlzIERMTCBmaWxlLgorCitUbyB1c2UgdGhlIFBlcmwgaW50ZXJmYWNlIHRoZSBQZXJsIERMTCBtdXN0IGJlIGluIHlvdXIgc2VhcmNoIHBhdGguICBJbiBhCitjb25zb2xlIHdpbmRvdyB0eXBlICJwYXRoIiB0byBzZWUgd2hhdCBkaXJlY3RvcmllcyBhcmUgdXNlZC4KKworVGhlIG5hbWUgb2YgdGhlIERMTCBtdXN0IG1hdGNoIHRoZSBQZXJsIHZlcnNpb24gVmltIHdhcyBjb21waWxlZCB3aXRoLgorQ3VycmVudGx5IHRoZSBuYW1lIGlzICJwZXJsNTguZGxsIi4gIFRoYXQgaXMgZm9yIFBlcmwgNS44LiAgVG8ga25vdyBmb3IKK3N1cmUgZWRpdCAiZ3ZpbS5leGUiIGFuZCBzZWFyY2ggZm9yICJwZXJsXGQqLmRsbFxjIi4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfcHl0aC50eHQgYi9ydW50aW1lL2RvYy9pZl9weXRoLnR4dAppbmRleCAxYTJhMzNkLi4zY2VlZmY4IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9weXRoLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9weXRoLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9weXRoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKyppZl9weXRoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBPY3QgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgUGF1bCBNb29yZQpAQCAtMTEsNiArMTEsNyBAQAogMy4gQnVmZmVyIG9iamVjdHMJCXxweXRob24tYnVmZmVyfAogNC4gUmFuZ2Ugb2JqZWN0cwkJfHB5dGhvbi1yYW5nZXwKIDUuIFdpbmRvdyBvYmplY3RzCQl8cHl0aG9uLXdpbmRvd3wKKzYuIER5bmFtaWMgbG9hZGluZwkJfHB5dGhvbi1keW5hbWljfAogCiB7VmkgZG9lcyBub3QgaGF2ZSBhbnkgb2YgdGhlc2UgY29tbWFuZHN9CiAKQEAgLTMwMCw0ICszMDEsMjEgQEAKIFRoZSB3aWR0aCBhdHRyaWJ1dGUgaXMgd3JpdGFibGUgb25seSBpZiB0aGUgc2NyZWVuIGlzIHNwbGl0IHZlcnRpY2FsbHkuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorNi4gRHluYW1pYyBsb2FkaW5nCQkJCQkqcHl0aG9uLWR5bmFtaWMqCisKK09uIE1TLVdpbmRvd3MgdGhlIFB5dGhvbiBsaWJyYXJ5IGNhbiBiZSBsb2FkZWQgZHluYW1pY2FsbHkuICBUaGUgfDp2ZXJzaW9ufAorb3V0cHV0IHRoZW4gaW5jbHVkZXMgfCtweXRob24vZHlufC4KKworVGhpcyBtZWFucyB0aGF0IFZpbSB3aWxsIHNlYXJjaCBmb3IgdGhlIFB5dGhvbiBETEwgZmlsZSBvbmx5IHdoZW4gbmVlZGVkLgorV2hlbiB5b3UgZG9uJ3QgdXNlIHRoZSBQeXRob24gaW50ZXJmYWNlIHlvdSBkb24ndCBuZWVkIGl0LCB0aHVzIHlvdSBjYW4gdXNlCitWaW0gd2l0aG91dCB0aGlzIERMTCBmaWxlLgorCitUbyB1c2UgdGhlIFB5dGhvbiBpbnRlcmZhY2UgdGhlIFB5dGhvbiBETEwgbXVzdCBiZSBpbiB5b3VyIHNlYXJjaCBwYXRoLiAgSW4gYQorY29uc29sZSB3aW5kb3cgdHlwZSAicGF0aCIgdG8gc2VlIHdoYXQgZGlyZWN0b3JpZXMgYXJlIHVzZWQuCisKK1RoZSBuYW1lIG9mIHRoZSBETEwgbXVzdCBtYXRjaCB0aGUgUHl0aG9uIHZlcnNpb24gVmltIHdhcyBjb21waWxlZCB3aXRoLgorQ3VycmVudGx5IHRoZSBuYW1lIGlzICJweXRob24yNC5kbGwiLiAgVGhhdCBpcyBmb3IgUHl0aG9uIDIuNC4gIFRvIGtub3cgZm9yCitzdXJlIGVkaXQgImd2aW0uZXhlIiBhbmQgc2VhcmNoIGZvciAicHl0aG9uXGQqLmRsbFxjIi4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfcnVieS50eHQgYi9ydW50aW1lL2RvYy9pZl9ydWJ5LnR4dAppbmRleCAxZWZiNmNlLi5hNzBkMzJhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9ydWJ5LnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9ydWJ5LnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9ydWJ5LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMzEKKyppZl9ydWJ5LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBPY3QgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgU2h1Z28gTWFlZGEKQEAgLTExLDYgKzExLDcgQEAKIDMuIFZJTTo6QnVmZmVyIG9iamVjdHMJCXxydWJ5LWJ1ZmZlcnwKIDQuIFZJTTo6V2luZG93IG9iamVjdHMJCXxydWJ5LXdpbmRvd3wKIDUuIEdsb2JhbCB2YXJpYWJsZXMJCXxydWJ5LWdsb2JhbHN8Cis2LiBEeW5hbWljIGxvYWRpbmcJCXxydWJ5LWR5bmFtaWN8CiAKIHtWaSBkb2VzIG5vdCBoYXZlIGFueSBvZiB0aGVzZSBjb21tYW5kc30KIAkJCSpFMjY2KiAqRTI2NyogKkUyNjgqICpFMjY5KiAqRTI3MCogKkUyNzEqICpFMjcyKiAqRTI3MyoKQEAgLTE2Niw3ICsxNjcsNyBAQAogCQlTZXRzIHRoZSBjdXJzb3IgcG9zaXRpb24gdG8ge3Jvd30gYW5kIHtjb2x9LgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLTQuIEdsb2JhbCB2YXJpYWJsZXMJCQkJCSpydWJ5LWdsb2JhbHMqCis1LiBHbG9iYWwgdmFyaWFibGVzCQkJCQkqcnVieS1nbG9iYWxzKgogCiBUaGVyZSBhcmUgdHdvIGdsb2JhbCB2YXJpYWJsZXMuCiAKQEAgLTE3NCw0ICsxNzUsMjEgQEAKICRjdXJidWYJCVRoZSBjdXJyZW50IGJ1ZmZlciBvYmplY3QuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorNi4gRHluYW1pYyBsb2FkaW5nCQkJCQkqcnVieS1keW5hbWljKgorCitPbiBNUy1XaW5kb3dzIHRoZSBSdWJ5IGxpYnJhcnkgY2FuIGJlIGxvYWRlZCBkeW5hbWljYWxseS4gIFRoZSB8OnZlcnNpb258CitvdXRwdXQgdGhlbiBpbmNsdWRlcyB8K3J1YnkvZHlufC4KKworVGhpcyBtZWFucyB0aGF0IFZpbSB3aWxsIHNlYXJjaCBmb3IgdGhlIFJ1YnkgRExMIGZpbGUgb25seSB3aGVuIG5lZWRlZC4gIFdoZW4KK3lvdSBkb24ndCB1c2UgdGhlIFJ1YnkgaW50ZXJmYWNlIHlvdSBkb24ndCBuZWVkIGl0LCB0aHVzIHlvdSBjYW4gdXNlIFZpbQord2l0aG91dCB0aGlzIERMTCBmaWxlLgorCitUbyB1c2UgdGhlIFJ1YnkgaW50ZXJmYWNlIHRoZSBSdWJ5IERMTCBtdXN0IGJlIGluIHlvdXIgc2VhcmNoIHBhdGguICBJbiBhCitjb25zb2xlIHdpbmRvdyB0eXBlICJwYXRoIiB0byBzZWUgd2hhdCBkaXJlY3RvcmllcyBhcmUgdXNlZC4KKworVGhlIG5hbWUgb2YgdGhlIERMTCBtdXN0IG1hdGNoIHRoZSBSdWJ5IHZlcnNpb24gVmltIHdhcyBjb21waWxlZCB3aXRoLgorQ3VycmVudGx5IHRoZSBuYW1lIGlzICJydWJ5MTguZGxsIi4gIFRoYXQgaXMgZm9yIFJ1YnkgMS44LiAgVG8ga25vdyBmb3Igc3VyZQorZWRpdCAiZ3ZpbS5leGUiIGFuZCBzZWFyY2ggZm9yICJydWJ5XGQqLmRsbFxjIi4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfdGNsLnR4dCBiL3J1bnRpbWUvZG9jL2lmX3RjbC50eHQKaW5kZXggMTE5NWVkNS4uNzljNDNmNSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfdGNsLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl90Y2wudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX3RjbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmlmX3RjbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE9jdCAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBJbmdvIFdpbGtlbgpAQCAtMTQsNiArMTQsNyBAQAogNi4gTWlzY2VsbGFuZW91czsgT3V0cHV0IGZyb20gVGNsCXx0Y2wtbWlzY3wgfHRjbC1vdXRwdXR8CiA3LiBLbm93biBidWdzICYgcHJvYmxlbXMJCXx0Y2wtYnVnc3wKIDguIEV4YW1wbGVzCQkJCXx0Y2wtZXhhbXBsZXN8Cis5LiBEeW5hbWljIGxvYWRpbmcJCQl8dGNsLWR5bmFtaWN8CiAKIHtWaSBkb2VzIG5vdCBoYXZlIGFueSBvZiB0aGVzZSBjb21tYW5kc30gKkUyODAqICpFMjgxKgogCkBAIC01MDksNCArNTEwLDIxIEBACiAJZW5kaWYKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis5LiBEeW5hbWljIGxvYWRpbmcJCQkJCSp0Y2wtZHluYW1pYyoKKworT24gTVMtV2luZG93cyB0aGUgVGNsIGxpYnJhcnkgY2FuIGJlIGxvYWRlZCBkeW5hbWljYWxseS4gIFRoZSB8OnZlcnNpb258CitvdXRwdXQgdGhlbiBpbmNsdWRlcyB8K3RjbC9keW58LgorCitUaGlzIG1lYW5zIHRoYXQgVmltIHdpbGwgc2VhcmNoIGZvciB0aGUgVGNsIERMTCBmaWxlIG9ubHkgd2hlbiBuZWVkZWQuICBXaGVuCit5b3UgZG9uJ3QgdXNlIHRoZSBUY2wgaW50ZXJmYWNlIHlvdSBkb24ndCBuZWVkIGl0LCB0aHVzIHlvdSBjYW4gdXNlIFZpbQord2l0aG91dCB0aGlzIERMTCBmaWxlLgorCitUbyB1c2UgdGhlIFRjbCBpbnRlcmZhY2UgdGhlIFRjbCBETEwgbXVzdCBiZSBpbiB5b3VyIHNlYXJjaCBwYXRoLiAgSW4gYQorY29uc29sZSB3aW5kb3cgdHlwZSAicGF0aCIgdG8gc2VlIHdoYXQgZGlyZWN0b3JpZXMgYXJlIHVzZWQuCisKK1RoZSBuYW1lIG9mIHRoZSBETEwgbXVzdCBtYXRjaCB0aGUgVGNsIHZlcnNpb24gVmltIHdhcyBjb21waWxlZCB3aXRoLgorQ3VycmVudGx5IHRoZSBuYW1lIGlzICJ0Y2w4My5kbGwiLiAgVGhhdCBpcyBmb3IgVGNsIDguMy4gIFRvIGtub3cgZm9yIHN1cmUKK2VkaXQgImd2aW0uZXhlIiBhbmQgc2VhcmNoIGZvciAidGNsXGQqLmRsbFxjIi4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dCBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKaW5kZXggNGI2ZDBlYi4uOWQ4ZTRlNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAorKysgYi9ydW50aW1lL2RvYy9pbnNlcnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE9jdCAwMgorKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE5vdiAyMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtOTc1LDYgKzk3NSw3IEBACiAKIEZpbGV0eXBlLXNwZWNpZmljIHJlbWFya3MgZm9yIG9tbmkgY29tcGxldGlvbgkgICAgKmNvbXBsLW9tbmktZmlsZXR5cGVzKgogCisKIEMJCQkJCQkJKmZ0LWMtb21uaSoKIAogQ29tcGxldGlvbiBvZiBDIGNvZGUgcmVxdWlyZXMgYSB0YWdzIGZpbGUuICBZb3Ugc2hvdWxkIHVzZSBFeHViZXJhbnQgY3RhZ3MsCkBAIC0xMDA3LDcgKzEwMDgsMTQgQEAKIGFyZSBpbmNsdWRlZC4KIAogCitDU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpmdC1jc3Mtb21uaSoKKworQ29tcGxldGUgcHJvcGVydGllcyBhbmQgdGhlaXIgYXBwcm9wcmlhdGUgdmFsdWVzIGFjY29yZGluZyB0byBDU1MgMi4xCitzcGVjaWZpY2F0aW9uLiAKKworCiAoWClIVE1MICAgICAgICAgICAgICAgICAgICAgICAgICAJCQkqZnQtaHRtbC1vbW5pKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCQkJKmZ0LXhodG1sLW9tbmkqCiAKIENUUkwtWCBDVFJMLU8gcHJvdmlkZXMgY29tcGxldGlvbiBvZiB2YXJpb3VzIGVsZW1lbnRzIG9mIChYKUhUTUwgZmlsZXMuCiBJdCBpcyBkZXNpZ25lZCB0byBzdXBwb3J0IHdyaXRpbmcgb2YgWEhUTUwgMS4wIFN0cmljdCBmaWxlcyBidXQgd2lsbApAQCAtMTAxOSwyMyArMTAyNywxMjQgQEAKICAgYSB0YWcpCiAtIHdoZW4gYXR0cmlidXRlIGhhcyBsaW1pdGVkIG51bWJlciBvZiBwb3NzaWJsZSB2YWx1ZXMgaGVscCB0byBjb21wbGV0ZQogICB0aGVtCistIGNvbXBsZXRlIG5hbWVzIG9mIGVudGl0aWVzCiAtIGNvbXBsZXRlIHZhbHVlcyBvZiAiY2xhc3MiIGFuZCAiaWQiIGF0dHJpYnV0ZXMgd2l0aCBkYXRhIG9idGFpbmVkIGZyb20KICAgc3R5bGUgdGFnIGFuZCBpbmNsdWRlZCBDU1MgZmlsZXMKIC0gd2hlbiBjb21wbGV0aW5nICJzdHlsZSIgYXR0cmlidXRlIG9yIHdvcmtpbmcgaW5zaWRlIG9mICJzdHlsZSIgdGFnCiAgIHN3aXRjaCB0byB8ZnQtY3NzLW9tbml8IGNvbXBsZXRpb24KIC0gd2hlbiB1c2VkIGFmdGVyICI8LyIgQ1RSTC1YIENUUkwtTyB3aWxsIGNsb3NlIHRoZSBsYXN0IG9wZW5lZCB0YWcKIAotRmlsZSBodG1sY29tcGxldGUudmltIHByb3ZpZGVzIHRocm91Z2ggfGF1dG9sb2FkfCBtZWNoYW5pc20KK05vdGU6IFdoZW4gdXNlZCBmaXJzdCB0aW1lIGNvbXBsZXRpb24gbWVudSB3aWxsIGJlIHNob3duIHdpdGggbGl0dGxlIGRlbGF5CistIHRoaXMgaXMgdGltZSBuZWVkZWQgZm9yIGxvYWRpbmcgb2YgZGF0YSBmaWxlLgorCisKK1hNTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmZ0LXhtbC1vbW5pKgorCitWaW0gNyBwcm92aWRlcyBtZWNoYW5pc20gdG8gY29udGV4dCBhd2FyZSBjb21wbGV0aW9uIG9mIFhNTCBmaWxlcy4gSXQgZGVwZW5kcworb24gc3BlY2lhbCB8eG1sLWRhdGEtZmlsZXwgYW5kIHR3byBjb21tYW5kczogfDpYTUxuc3wgYW5kIHw6WE1MZW50fC4gRmVhdHVyZXMKK2FyZToKKworLSBhZnRlciAiPCIgY29tcGxldGUgdGFnIG5hbWUgZGVwZW5kaW5nIG9uIGNvbnRleHQgKG5vIGRpdiBzdWdnZXN0CisgIGluc2lkZSBvZiBhbiBhIHRhZykKKy0gaW5zaWRlIG9mIHRhZyBjb21wbGV0ZSBwcm9wZXIgYXR0cmlidXRlcyAobm8gd2lkdGggYXR0cmlidXRlIGZvciBhbgorICBhIHRhZykKKy0gd2hlbiBhdHRyaWJ1dGUgaGFzIGxpbWl0ZWQgbnVtYmVyIG9mIHBvc3NpYmxlIHZhbHVlcyBoZWxwIHRvIGNvbXBsZXRlCisgIHRoZW0KKy0gY29tcGxldGUgbmFtZXMgb2YgZW50aXRpZXMgKGRlZmluZWQgaW4gfHhtbC1kYXRhLWZpbGV8IGFuZCBpbiBjdXJyZW50IGZpbGUKKyAgd2l0aCAiPCFFTlRJVFkiIGRlY2xhcmF0aW9ucworLSB3aGVuIHVzZWQgYWZ0ZXIgIjwvIiBDVFJMLVggQ1RSTC1PIHdpbGwgY2xvc2UgdGhlIGxhc3Qgb3BlbmVkIHRhZworCitGb3JtYXQgb2YgWE1MIGRhdGEgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICp4bWwtb21uaS1kYXRhZmlsZSoKKworVmltIGRpc3RyaWJ1dGlvbiBwcm92aWRlcyB0d28gZGF0YSBmaWxlcyBhcyBleGFtcGxlcyAoeGh0bWwxMHMudmltLCB4c2wudmltKQorCitYTUwgZGF0YSBmaWxlcyBhcmUgc3RvcmVkIGluICJhdXRvbG9hZC94bWwiIGRpcmVjdG9yeSBpbiAncnVudGltZXBhdGgnLiBUaGV5CitoYXZlIG1lYW5pbmdmdWwgbmFtZSB3aGljaCB3aWxsIGJlIHVzZWQgaW4gY29tbWFuZHMuIEl0IHNob3VsZCBiZSB1bmlxdWUgbmFtZQord2hpY2ggd2lsbCBub3QgY3JlYXRlIGNvbmZsaWN0cyBpbiBmdXR1cmUuIEZvciBleGFtcGxlIG5hbWUgeGh0bWwxMHMudmltIG1lYW5zCitpdCBpcyBkYXRhIGZpbGUgZm9yIFhIVE1MIDEuMCBTdHJpY3QuCisKK0ZpbGUgY29udGFpbnMgb25lIHZhcmlhYmxlIHdpdGggZml4ZWQgbmFtZTogZzp4bWxkYXRhX3hodG1sMTBzIC4gSXQgaXMKK2NvbXBvdW5kIGZyb20gdHdvIHBhcnRzOiAKKworMS4gImc6eG1sZGF0YV8iICBnZW5lcmFsIHByZWZpeCAKKzIuICJ4aHRtbDEwcyIgICAgbmFtZSBvZiBmaWxlIGFuZCBuYW1lIG9mIGRlc2NyaWJlZCBYTUwgZGlhbGVjdAorCitQYXJ0IHR3byBtdXN0IGJlIGV4YWN0bHkgdGhlIHNhbWUgYXMgbmFtZSBvZiBmaWxlLgorCitWYXJpYWJsZSBpcyBkYXRhIHN0cnVjdHVyZSBpbiBmb3JtIG9mIHxEaWN0aW9uYXJ5fC4gS2V5cyBhcmUgdGFnIG5hbWVzIGFuZAordmFsdWVzIGFyZSB0d28gZWxlbWVudCB8TGlzdHwuIEZpcnN0IGVsZW1lbnQgb2YgTGlzdCBpcyBhbHNvIExpc3Qgd2l0aAorbmFtZXMgb2YgcG9zc2libGUgY2hpbGRyZW4sIHNlY29uZCBlbGVtZW50IGlzIHxEaWN0aW9uYXJ5fCB3aXRoIG5hbWVzIG9mCithdHRyaWJ1dGVzIGFzIGtleXMgYW5kIHBvc3NpYmxlIHZhbHVlcyBvZiBhdHRyaWJ1dGVzIGFzIHZhbHVlcy4gRXhhbXBsZTogPgorCisgICAgbGV0IGc6eG1sZGF0YV9jcmlwcGxlZGh0bWwgPSB7CisgICAgXCAiaHRtbCI6IAorICAgIFwgWyBbImJvZHkiLCAiaGVhZCJdLCB7ImlkIjogW10sICJ4bWxucyI6IFsiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCJdLCAKKyAgICBcICJsYW5nIjogW10sICJ4bWw6bGFuZyI6IFtdLCAiZGlyIjogWyJsdHIiLCAicnRsIl19XSwgCisgICAgXCAic2NyaXB0IjogCisgICAgXCBbIFtdLCB7ImlkIjogW10sICJjaGFyc2V0IjogW10sICJ0eXBlIjogWyJ0ZXh0L2phdmFzY3JpcHQiXSwgInNyYyI6IFtdLCAKKyAgICBcICJkZWZlciI6IFsiQk9PTCJdLCAieG1sOnNwYWNlIjogWyJwcmVzZXJ2ZSJdfV0sCisgICAgXCAibWV0YSI6IAorICAgIFwgWyBbXSwgeyJpZCI6IFtdLCAiaHR0cC1lcXVpdiI6IFtdLCAibmFtZSI6IFtdLCAiY29udGVudCI6IFtdLCAic2NoZW1lIjogCisgICAgXCBbXSwgImxhbmciOiBbXSwgInhtbDpsYW5nIjogW10sICJkaXIiOiBbImx0ciIsICJydGwiXX1dCisgICAgXCAidmlteG1sZW50aXRpZXMiOiBbImFtcCIsICJsdCIsICJndCIsICJhcG9zIiwgInF1b3QiXX0KKworVGhpcyBleGFtcGxlIHNob3VsZCBiZSBwdXQgaW4gImF1dG9sb2FkL3htbC9jcmlwcGxlZGh0bWwudmltIiBmaWxlLgorCitJbiBleGFtcGxlIGFyZSB2aXNpYmxlIHR3byBzcGVjaWFsIGVsZW1lbnRzOgorCisxLiAidmlteG1sZW50aXRpZXMiIC0gc3BlY2lhbCBrZXkgd2l0aCBMaXN0IGNvbnRhaW5pbmcgZW50aXRpZXMgb2YgdGhpcyBYTUwKKyAgIGRpYWxlY3QuCisyLiAiQk9PTCIgLSB2YWx1ZSBvZiBhdHRyaWJ1dGUga2V5IHNob3dpbmcgaWYgYXR0cmlidXRlIHNob3VsZCBiZSBpbnNlcnRlZAorICAgYmFyZSAoImRlZmVyIiB2cy4gJ2RlZmVyPSInKS4gSXQgY2FuIGJlIHRoZSBvbmx5IGVsZW1lbnQgb2YgTGlzdCBvZgorICAgYXR0cmlidXRlIHZhbHVlcy4KKworTm90ZTogVGFnIG5hbWVzIGluIGRhdGEgZmlsZSBNVVNUIG5vdCBjb250YWluIG5hbWVzcGFjZSBkZXNjcmlwdGlvbi4gQ2hlY2sKK3hzbC52aW0gZm9yIGV4YW1wbGUuCisKK0NvbW1hbmRzCisKKzpYTUxucyB7bmFtZX0gW3tuYW1lc3BhY2V9XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqOlhNTG5zKgorCitWaW0gaGFzIHRvIGtub3cgd2hpY2ggZGF0YSBmaWxlIHNob3VsZCBiZSB1c2VkIGFuZCB3aXRoIHdoaWNoIG5hbWVzcGFjZS4gRm9yCitsb2FkaW5nIG9mIGRhdGEgZmlsZSBhbmQgY29ubmVjdGluZyBkYXRhIHdpdGggcHJvcGUgbmFtZXNwYWNlIHVzZSB8OlhNTG5zfAorY29tbWFuZC4gRmlyc3QgKG9ibGlnYXRvcnkpIGFyZ3VtZW50IGlzIG5hbWUgb2YgZGF0YSAoeGh0bWwxMHMsIHhzbCkuIFNlY29uZAorYXJndW1lbnQgaXMgY29kZSBvZiBuYW1lc3BhY2UgKGgsIHhzbCkuIFdoZW4gdXNlZCB3aXRob3V0IHNlY29uZCBhcmd1bWVudAorZGlhbGVjdCB3aWxsIGJlIHVzZWQgYXMgZGVmYXVsdCAtIHdpdGhvdXQgbmFtZXNwYWNlIGRlY2xhcmF0aW9uLiBGb3IgZXhhbXBsZQordG8gdXNlIFhNTCBjb21wbGV0aW9uIGluIC54c2wgZmlsZXM6ID4KKworCTpYTUxucyB4aHRtbDEwcworCTpYTUxucyB4c2wgeHNsCisKKworOlhNTGVudCB7bmFtZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICo6WE1MZW50KgorCitCeSBkZWZhdWx0IGVudGl0aWVzIHdpbGwgYmUgY29tcGxldGVkIGZyb20gZGF0YSBmaWxlIG9mIGRlZmF1bHQKK25hbWVzcGFjZS4gWE1MZW50IGNvbW1hbmQgc2hvdWxkIGJlIHVzZWQgaW4gY2FzZSB3aGVuIHRoZXJlIGlzIG5vCitkZWZhdWx0IG5hbWVzcGFjZTogPgorCisgICAgICAgIDpYTUxlbnQgeGh0bWwxMHMKKworVXNhZ2UKKworV2hpbGUgdXNlZCBpbiBzaXR1YXRpb24gKGFmdGVyIGRlY2xhcmF0aW9ucyBmcm9tIHByZXZpb3VzIHBhcnQsIHwgaXMKK2N1cnNvciBwb3NpdGlvbik6ID4KKworICAgICAgICA8fAorCitXaWxsIGNvbXBsZXRlIHRvIGFwcHJvcHJpYXRlIFhIVE1MIHRhZywgYW5kIGluIHRoaXMgc2l0dWF0aW9uOiA+CisKKyAgICAgICAgPHhzbDp8CisKK1dpbGwgY29tcGxldGUgdG8gYXBwcm9wcmlhdGUgWFNMIHRhZy4KKworRmlsZSB4bWxjb21wbGV0ZS52aW0gcHJvdmlkZXMgdGhyb3VnaCB8YXV0b2xvYWR8IG1lY2hhbmlzbQogR2V0TGFzdE9wZW5UYWcgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgaW4gWE1MIGZpbGVzIHRvIGdldCBuYW1lIG9mCiBsYXN0IG9wZW4gdGFnIHdpdGggKGI6dW5hcnlUYWdzU3RhY2sgaGFzIHRvIGJlIGRlZmluZWQpOiA+CiAKLSAgICAgICAgOmVjaG8gaHRtbGNvbXBsZXRlI0dldExhc3RPcGVuVGFnKCJiOnVuYXJ5VGFnc1N0YWNrIikKKyAgICAgICAgOmVjaG8geG1sY29tcGxldGUjR2V0TGFzdE9wZW5UYWcoImI6dW5hcnlUYWdzU3RhY2siKQogCiAKLUNTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmZ0LWNzcy1vbW5pKgogCi1Db21wbGV0ZSBwcm9wZXJ0aWVzIGFuZCB0aGVpciBhcHByb3ByaWF0ZSB2YWx1ZXMgYWNjb3JkaW5nIHRvIENTUyAyLjEKLXNwZWNpZmljYXRpb24uIAogCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbWFwLnR4dCBiL3J1bnRpbWUvZG9jL21hcC50eHQKaW5kZXggNjE4Yzc2Ny4uYTVmNmQwYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWFwLnR4dAorKysgYi9ydW50aW1lL2RvYy9tYXAudHh0CkBAIC0xLDQgKzEsNCBAQAotKm1hcC50eHQqICAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAyMgorKm1hcC50eHQqICAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE9jdCAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtOTY2LDggKzk2NiwxMCBAQAogCS1jb21wbGV0ZT1jdXN0b20se2Z1bmN9IGN1c3RvbSBjb21wbGV0aW9uLCBkZWZpbmVkIHZpYSB7ZnVuY30KIAktY29tcGxldGU9Y3VzdG9tbGlzdCx7ZnVuY30gY3VzdG9tIGNvbXBsZXRpb24sIGRlZmluZWQgdmlhIHtmdW5jfQogCi1DdXN0b20gY29tcGxldGlvbgkJCSAgICAqOmNvbW1hbmQtY29tcGxldGlvbi1jdXN0b20qCi0JCQkJCQkJKkU0NjcqICpFNDY4KgorCitDdXN0b20gY29tcGxldGlvbgkJCSo6Y29tbWFuZC1jb21wbGV0aW9uLWN1c3RvbSoKKwkJCQkJKjpjb21tYW5kLWNvbXBsZXRpb24tY3VzdG9tbGlzdCoKKwkJCQkJKkU0NjcqICpFNDY4KgogSXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIGN1c3RvbWl6ZWQgY29tcGxldGlvbiBzY2hlbWVzIHZpYSB0aGUgImN1c3RvbSx7ZnVuY30iCiBvciB0aGUgImN1c3RvbWxpc3Qse2Z1bmN9IiBjb21wbGV0aW9uIGFyZ3VtZW50LiAgVGhlIHtmdW5jfSBwYXJ0IHNob3VsZCBiZSBhCiBmdW5jdGlvbiB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvdG90eXBlID4KQEAgLTk4MSwxMyArOTgzLDEzIEBACiBjYW5kaWRhdGVzIG9uZSBwZXIgbGluZSBpbiBhIG5ld2xpbmUgc2VwYXJhdGVkIHN0cmluZy4KIAogRm9yIHRoZSAiY3VzdG9tbGlzdCIgYXJndW1lbnQsIHRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIHRoZSBjb21wbGV0aW9uCi1jYW5kaWRhdGVzIGFzIGEgVmltIExpc3QuIE5vbi1zdHJpbmcgaXRlbXMgaW4gdGhlIGxpc3QgYXJlIGlnbm9yZWQuCitjYW5kaWRhdGVzIGFzIGEgVmltIExpc3QuICBOb24tc3RyaW5nIGl0ZW1zIGluIHRoZSBsaXN0IGFyZSBpZ25vcmVkLgogCiBUaGUgZnVuY3Rpb24gYXJndW1lbnRzIGFyZToKIAlBcmdMZWFkCQl0aGUgbGVhZGluZyBwb3J0aW9uIG9mIHRoZSBhcmd1bWVudCBjdXJyZW50bHkgYmVpbmcKIAkJCWNvbXBsZXRlZCBvbgogCUNtZExpbmUJCXRoZSBlbnRpcmUgY29tbWFuZCBsaW5lCi0JQ3Vyc29yUG9zCXRoZSBjdXJzb3IgcG9zaXRpb24gaW4gaXQKKwlDdXJzb3JQb3MJdGhlIGN1cnNvciBwb3NpdGlvbiBpbiBpdCAoYnl0ZSBpbmRleCkKIFRoZSBmdW5jdGlvbiBtYXkgdXNlIHRoZXNlIGZvciBkZXRlcm1pbmluZyBjb250ZXh0LiAgRm9yIHRoZSAiY3VzdG9tIgogYXJndW1lbnQsIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gZmlsdGVyIGNhbmRpZGF0ZXMgYWdhaW5zdCB0aGUgKGltcGxpY2l0CiBwYXR0ZXJuIGluKSBBcmdMZWFkLiAgVmltIHdpbGwgZG8gZmlsdGVyIHRoZSBjYW5kaWRhdGVzIHdpdGggaXRzIHJlZ2V4cCBlbmdpbmUKQEAgLTEwMDksNiArMTAxMSw3IEBACiAgICAgOiAgICByZXR1cm4gc3BsaXQoZ2xvYnBhdGgoJnBhdGgsIGE6QXJnTGVhZCksICJcbiIpCiAgICAgOmVuZGZ1bgogPAorCiBSYW5nZSBoYW5kbGluZwkJCQkJCSpFMTc3KiAqRTE3OCoKIAogQnkgZGVmYXVsdCwgdXNlci1kZWZpbmVkIGNvbW1hbmRzIGRvIG5vdCBhY2NlcHQgYSBsaW5lIG51bWJlciByYW5nZS4gIEhvd2V2ZXIsCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tYnl0ZS50eHQgYi9ydW50aW1lL2RvYy9tYnl0ZS50eHQKaW5kZXggN2Y2YTk3Mi4uZWFkOTFhYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWJ5dGUudHh0CisrKyBiL3J1bnRpbWUvZG9jL21ieXRlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptYnl0ZS50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBKdWwgMDkKKyptYnl0ZS50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBPY3QgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhciBldCBhbC4KQEAgLTQ4NCw2ICs0ODQsMTIgQEAKIAlyZXF1ZXN0IGEgdmVyeSBsYXJnZSBidWZmZXIsIG1vcmUgdGhhbiBWaW0gaXMgd2lsbGluZyB0byBwcm92aWRlKS4KIAlUcnkgZ2V0dGluZyBhbm90aGVyIGljb252KCkgaW1wbGVtZW50YXRpb24uCiAKKwkJCQkJCQkqaWNvbnYtZHluYW1pYyoKK09uIE1TLVdpbmRvd3MgVmltIGNhbiBiZSBjb21waWxlZCB3aXRoIHRoZSB8K2ljb252L2R5bnwgZmVhdHVyZS4gIFRoaXMgbWVhbnMKK1ZpbSB3aWxsIHNlYXJjaCBmb3IgdGhlICJpY29udi5kbGwiIGFuZCAibGliaWNvbnYuZGxsIiBsaWJyYXJpZXMuICBXaGVuCituZWl0aGVyIG9mIHRoZW0gY2FuIGJlIGZvdW5kIFZpbSB3aWxsIHN0aWxsIHdvcmsgYnV0IHNvbWUgY29udmVyc2lvbnMgd29uJ3QgYmUKK3Bvc3NpYmxlLgorCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDQuIFVzaW5nIGEgdGVybWluYWwJCQkJCSptYnl0ZS10ZXJtaW5hbCoKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCBmY2JkNDQ1Li4wNjMxZDQ1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgT2N0IDA1Cisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE5vdiAyMwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC03NiwxMCArNzYsOCBAQAogCQkJY29tbWEgc2VwYXJhdGVkIGxpc3QsIGEgY29tbWEgaXMgYWRkZWQsIHVubGVzcyB0aGUKIAkJCXZhbHVlIHdhcyBlbXB0eS4KIAkJCUlmIHRoZSBvcHRpb24gaXMgYSBsaXN0IG9mIGZsYWdzLCBzdXBlcmZsdW91cyBmbGFncwotCQkJYXJlIHJlbW92ZWQuICBPdGhlcndpc2UgdGhlcmUgaXMgbm8gY2hlY2sgZm9yIGRvdWJsZWQKLQkJCXZhbHVlcy4gIFlvdSBjYW4gYXZvaWQgdGhpcyBieSByZW1vdmluZyBhIHZhbHVlIGZpcnN0LgotCQkJRXhhbXBsZTogPgotCQkJCTpzZXQgZ3Vpb3B0aW9ucy09VCBndWlvcHRpb25zKz1UCisJCQlhcmUgcmVtb3ZlZC4gIFdoZW4gYWRkaW5nIGEgZmxhZyB0aGF0IHdhcyBhbHJlYWR5CisJCQlwcmVzZW50IHRoZSBvcHRpb24gdmFsdWUgZG9lc24ndCBjaGFuZ2UuCiA8CQkJQWxzbyBzZWUgfDpzZXQtYXJnc3wgYWJvdmUuCiAJCQl7bm90IGluIFZpfQogCkBAIC05ODgsNiArOTg2LDkgQEAKIAlXYXRjaCBvdXQgZm9yIHNwZWNpYWwgY2hhcmFjdGVycywgc2VlIHxvcHRpb24tYmFja3NsYXNofC4KIAlXaGVuICRUTVBESVIsICRUTVAgb3IgJFRFTVAgaXMgbm90IGRlZmluZWQsIGl0IGlzIG5vdCB1c2VkIGZvciB0aGUKIAlkZWZhdWx0IHZhbHVlLiAgIi90bXAvKiIgaXMgb25seSB1c2VkIGZvciBVbml4LgorCU5vdGUgdGhhdCB0aGUgZGVmYXVsdCBhbHNvIG1ha2VzIHN1cmUgdGhhdCAiY3JvbnRhYiAtZSIgd29ya3MgKHdoZW4gYQorCWJhY2t1cCB3b3VsZCBiZSBtYWRlIGJ5IHJlbmFtaW5nIHRoZSBvcmlnaW5hbCBmaWxlIGNyb250YWIgd29uJ3Qgc2VlCisJdGhlIG5ld2x5IGNyZWF0ZWQgZmlsZSkuICBBbHNvIHNlZSAnYmFja3VwY29weScgYW5kIHxjcm9udGFifC4KIAogCQkJCQkJKidiYWxsb29uZGVsYXknKiAqJ2JkbGF5JyoKICdiYWxsb29uZGVsYXknICdiZGxheScJbnVtYmVyCShkZWZhdWx0OiA2MDApCkBAIC0yOTI3LDEwICsyOTI4LDExIEBACiAJVGhlIG5hbWUgb2YgYW4gZXh0ZXJuYWwgcHJvZ3JhbSB0aGF0IHdpbGwgYmUgdXNlZCB0byBmb3JtYXQgdGhlIGxpbmVzCiAJc2VsZWN0ZWQgd2l0aCB0aGUgImdxIiBjb21tYW5kLiAgVGhlIHByb2dyYW0gbXVzdCB0YWtlIHRoZSBpbnB1dCBvbgogCXN0ZGluIGFuZCBwcm9kdWNlIHRoZSBvdXRwdXQgb24gc3Rkb3V0LiAgVGhlIFVuaXggcHJvZ3JhbSAiZm10IiBpcwotCXN1Y2ggYSBwcm9ncmFtLiAgSWYgdGhpcyBvcHRpb24gaXMgYW4gZW1wdHkgc3RyaW5nLCB0aGUgaW50ZXJuYWwKLQlmb3JtYXQgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIHxDLWluZGVudGluZ3wuICBFbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlCi0JZXhwYW5kZWQgfDpzZXRfZW52fC4gIFNlZSB8b3B0aW9uLWJhY2tzbGFzaHwgYWJvdXQgaW5jbHVkaW5nIHNwYWNlcwotCWFuZCBiYWNrc2xhc2hlcy4KKwlzdWNoIGEgcHJvZ3JhbS4KKwlJZiB0aGlzIG9wdGlvbiBpcyBhbiBlbXB0eSBzdHJpbmcsIHRoZSBpbnRlcm5hbCBmb3JtYXQgZnVuY3Rpb24gd2lsbAorCWJlIHVzZWQgfEMtaW5kZW50aW5nfC4KKwlFbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIGV4cGFuZGVkIHw6c2V0X2VudnwuICBTZWUgfG9wdGlvbi1iYWNrc2xhc2h8CisJYWJvdXQgaW5jbHVkaW5nIHNwYWNlcyBhbmQgYmFja3NsYXNoZXMuCiAJVGhpcyBvcHRpb24gY2Fubm90IGJlIHNldCBmcm9tIGEgfG1vZGVsaW5lfCBvciBpbiB0aGUgfHNhbmRib3h8LCBmb3IKIAlzZWN1cml0eSByZWFzb25zLgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9uZXRydy50eHQgYi9ydW50aW1lL2RvYy9waV9uZXRydy50eHQKaW5kZXggNWJjZTUyYy4uODUwZGNjYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfbmV0cncudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dApAQCAtMSw4ICsxLDggQEAKLSpwaV9uZXRydy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IE9jdCAwMywgMjAwNQorKnBpX25ldHJ3LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogQXVnIDMxLCAyMDA1CisKIAogCQlWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4KIAotCiAqZGF2KiAgICAgICAgICAgKmh0dHAqICAgICAgICAgICpuZXR3b3JrKiAgICAgICAqcmNwKiAgICAgICAgICAgKnNjcCoKICpmZXRjaCogICAgICAgICAqbmV0cncqICAgICAgICAgKk5yZWFkKiAgICAgICAgICpyc3luYyogICAgICAgICAqc2Z0cCoKICpmdHAqICAgICAgICAgICAqbmV0cncudmltKiAgICAgKk53cml0ZSogICAgICAgICpuZXRydy1maWxlKgpAQCAtMjUsNyArMjUsNyBAQAogNC4gIFRyYW5zcGFyZW50IEZpbGUgVHJhbnNmZXIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LXRyYW5zcGFyZW50fAogNS4gIEV4IENvbW1hbmRzLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LWV4fAogNi4gIFZhcmlhYmxlcyBhbmQgT3B0aW9ucy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LXZhcnwKLTcuICBEaXJlY3RvcnkgQnJvd3NpbmcuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1icm93c2V8IHt7ezEKKzcuICBEaXJlY3RvcnkgQnJvd3Nlci4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1icm93c2V8IHt7ezEKICAgICAgIE1hcHMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1tYXBzfAogICAgICAgRXhwbG9yaW5nLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LWV4cGxvcmUtY21kc3wKICAgICAgIFF1aWNrIFJlZmVyZW5jZSBDb21tYW5kcyBUYWJsZS4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1icm93c2UtY21kc3wKQEAgLTE5NCw4ICsxOTQsOCBAQAogMi4gTmV0d29yay1PcmllbnRlZCBGaWxlIFRyYW5zZmVyCQkJCSpuZXRydy14ZmVyKgogCiBOZXR3b3JrLW9yaWVudGVkIGZpbGUgdHJhbnNmZXIgdW5kZXIgVmltIGlzIGltcGxlbWVudGVkIGJ5IGEgVmltTC1iYXNlZCBzY3JpcHQKLSg8bmV0cncudmltPikgdXNpbmcgcGx1Z2luIHRlY2huaXF1ZXMuICBJdCBjdXJyZW50bHkgc3VwcG9ydHMgYm90aCByZWFkaW5nIGFuZAotd3JpdGluZyBhY3Jvc3MgbmV0d29ya3MgdXNpbmcgcmNwLCBzY3AsIGZ0cCBvciBmdHArPC5uZXRyYz4sIHNjcCwgZmV0Y2gsCisoPG5ldHJ3LnZpbT4pIHVzaW5nIHBsdWdpbiB0ZWNobmlxdWVzLiAgSXQgY3VycmVudGx5IHN1cHBvcnRzIGJvdGggcmVhZGluZworYW5kIHdyaXRpbmcgYWNyb3NzIG5ldHdvcmtzIHVzaW5nIHJjcCwgc2NwLCBmdHAgb3IgZnRwKzwubmV0cmM+LCBzY3AsIGZldGNoLAogZGF2L2NhZGF2ZXIsIHJzeW5jLCBvciBzZnRwLgogCiBodHRwIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQgcmVhZC1vbmx5IHZpYSB1c2Ugb2Ygd2dldCBvciBmZXRjaC4KQEAgLTIwNiwyMyArMjA2LDI0IEBACiAKIAlleC4gdmltIGZ0cDovL2hvc3RuYW1lL3BhdGgvdG8vZmlsZQogPAotVGhlIGNoYXJhY3RlcnMgcHJlY2VkaW5nIHRoZSBjb2xvbiBzcGVjaWZ5IHRoZSBwcm90b2NvbCB0byB1c2U7IGluIHRoZQotZXhhbXBsZSwgaXRzIGZ0cC4gIFRoZSA8bmV0cncudmltPiBzY3JpcHQgdGhlbiBmb3JtdWxhdGVzIGEgY29tbWFuZCBvciBhCi1zZXJpZXMgb2YgY29tbWFuZHMgKHR5cGljYWxseSBmdHApIHdoaWNoIGl0IGlzc3VlcyB0byBhbiBleHRlcm5hbCBwcm9ncmFtCi0oZnRwLCBzY3AsIGV0Yykgd2hpY2ggZG9lcyB0aGUgYWN0dWFsIGZpbGUgdHJhbnNmZXIvcHJvdG9jb2wuICBGaWxlcyBhcmUgcmVhZAotZnJvbS93cml0dGVuIHRvIGEgdGVtcG9yYXJ5IGZpbGUgKHVuZGVyIFVuaXgvTGludXgsIC90bXAvLi4uKSB3aGljaCB0aGUKLTxuZXRydy52aW0+IHNjcmlwdCB3aWxsIGNsZWFuIHVwLgorVGhlIGNoYXJhY3RlcnMgcHJlY2VkaW5nIHRoZSBjb2xvbiBzcGVjaWZ5IHRoZSBwcm90b2NvbCB0byB1c2U7CitpbiB0aGUgZXhhbXBsZSwgaXRzIGZ0cC4gIFRoZSA8bmV0cncudmltPiBzY3JpcHQgdGhlbiBmb3JtdWxhdGVzCithIGNvbW1hbmQgb3IgYSBzZXJpZXMgb2YgY29tbWFuZHMgKHR5cGljYWxseSBmdHApIHdoaWNoIGl0IGlzc3VlcwordG8gYW4gZXh0ZXJuYWwgcHJvZ3JhbSAoZnRwLCBzY3AsIGV0Yykgd2hpY2ggZG9lcyB0aGUgYWN0dWFsIGZpbGUKK3RyYW5zZmVyL3Byb3RvY29sLiAgRmlsZXMgYXJlIHJlYWQgZnJvbS93cml0dGVuIHRvIGEgdGVtcG9yYXJ5IGZpbGUKKyh1bmRlciBVbml4L0xpbnV4LCAvdG1wLy4uLikgd2hpY2ggdGhlIDxuZXRydy52aW0+IHNjcmlwdCB3aWxsCitjbGVhbiB1cC4KIAotT25lIG1heSBtb2RpZnkgYW55IHByb3RvY29sJ3MgaW1wbGVtZW50aW5nIGV4dGVybmFsIGFwcGxpY2F0aW9uIGJ5IHNldHRpbmcgYQotdmFyaWFibGUgKGV4LiBzY3AgdXNlcyB0aGUgdmFyaWFibGUgZzpuZXRyd19zY3BfY21kLCB3aGljaCBpcyBkZWZhdWx0ZWQgdG8KLSJzY3AgLXEiKS4KK09uZSBtYXkgbW9kaWZ5IGFueSBwcm90b2NvbCdzIGltcGxlbWVudGluZyBleHRlcm5hbCBhcHBsaWNhdGlvbgorYnkgc2V0dGluZyBhIHZhcmlhYmxlIChleC4gc2NwIHVzZXMgdGhlIHZhcmlhYmxlIGc6bmV0cndfc2NwX2NtZCwKK3doaWNoIGlzIGRlZmF1bHRlZCB0byAic2NwIC1xIikuCiAKIEZ0cCwgYW4gb2xkIHByb3RvY29sLCBzZWVtcyB0byBiZSBibGVzc2VkIGJ5IG51bWVyb3VzIGltcGxlbWVudGF0aW9ucy4KLVVuZm9ydHVuYXRlbHksIHNvbWUgaW1wbGVtZW50YXRpb25zIGFyZSBub2lzeSAoaWUuLCBhZGQganVuayB0byB0aGUgZW5kIG9mIHRoZQotZmlsZSkuICBUaHVzLCBjb25jZXJuZWQgdXNlcnMgbWF5IGRlY2lkZSB0byB3cml0ZSBhIE5ldFJlYWRGaXh1cCgpIGZ1bmN0aW9uCi10aGF0IHdpbGwgY2xlYW4gdXAgYWZ0ZXIgcmVhZGluZyB3aXRoIHRoZWlyIGZ0cC4gIFNvbWUgVW5peCBzeXN0ZW1zIChpZS4sCi1GcmVlQlNEKSBwcm92aWRlIGEgdXRpbGl0eSBjYWxsZWQgImZldGNoIiB3aGljaCB1c2VzIHRoZSBmdHAgcHJvdG9jb2wgYnV0IGlzCi1ub3Qgbm9pc3kgYW5kIG1vcmUgY29udmVuaWVudCwgYWN0dWFsbHksIGZvciA8bmV0cncudmltPiB0byB1c2UuCitVbmZvcnR1bmF0ZWx5LCBzb21lIGltcGxlbWVudGF0aW9ucyBhcmUgbm9pc3kgKGllLiwgYWRkIGp1bmsgdG8gdGhlIGVuZAorb2YgdGhlIGZpbGUpLiAgVGh1cywgY29uY2VybmVkIHVzZXJzIG1heSBkZWNpZGUgdG8gd3JpdGUgYSBOZXRSZWFkRml4dXAoKQorZnVuY3Rpb24gdGhhdCB3aWxsIGNsZWFuIHVwIGFmdGVyIHJlYWRpbmcgd2l0aCB0aGVpciBmdHAuICBTb21lIFVuaXggc3lzdGVtcworKGllLiwgRnJlZUJTRCkgcHJvdmlkZSBhIHV0aWxpdHkgY2FsbGVkICJmZXRjaCIgd2hpY2ggdXNlcyB0aGUgZnRwIHByb3RvY29sCitidXQgaXMgbm90IG5vaXN5IGFuZCBtb3JlIGNvbnZlbmllbnQsIGFjdHVhbGx5LCBmb3IgPG5ldHJ3LnZpbT4gdG8gdXNlLgogQ29uc2VxdWVudGx5LCBpZiAiZmV0Y2giIGlzIGV4ZWN1dGFibGUsIGl0IHdpbGwgYmUgdXNlZCB0byBkbyByZWFkcyBmb3IKIGZ0cDovLy4uLiAoYW5kIGh0dHA6Ly8uLi4pIC4gIFNlZSB8bmV0cnctdmFyfCBmb3IgbW9yZSBhYm91dCB0aGlzLgogCkBAIC0zMzEsOSArMzMyLDggQEAKIGEgYnVpbHQtaW4gVmltIGZ1bmN0aW9uLiAgU2VlIHxuZXRydy11aWRwYXNzfCBmb3IgaG93IHRvIGNoYW5nZSB0aGUgcGFzc3dvcmQKIGFmdGVyIG9uZSBoYXMgc2V0IGl0LgogCi1VbmZvcnR1bmF0ZWx5IHRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IGZvciBuZXRydyB0byBmZWVkIGEgcGFzc3dvcmQgdG8KLXNjcC4gIFRodXMgZXZlcnkgdHJhbnNmZXIgdmlhIHNjcCB3aWxsIHJlcXVpcmUgcmUtZW50cnkgb2YgdGhlIHBhc3N3b3JkLgotSG93ZXZlciwgfG5ldHJ3LWxpc3RoYWNrfCBjYW4gaGVscCB3aXRoIHRoaXMgcHJvYmxlbS4KK1VuZm9ydHVuYXRlbHkgdGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgZm9yIG5ldHJ3IHRvIGZlZWQgYSBwYXNzd29yZAordG8gc2NwLiAgVGh1cyBldmVyeSB0cmFuc2ZlciB2aWEgc2NwIHdpbGwgcmVxdWlyZSByZS1lbnRyeSBvZiB0aGUgcGFzc3dvcmQuCiAKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0zNDEsMjggKzM0MSwyMSBAQAogCiBOZXR3b3JrLW9yaWVudGVkIGZpbGUgdHJhbnNmZXJzIGFyZSBhdmFpbGFibGUgYnkgZGVmYXVsdCB3aGVuZXZlcgogfCdub2NvbXBhdGlibGUnfCBtb2RlIGlzIGVuYWJsZWQuICBUaGUgPG5ldHJ3LnZpbT4gZmlsZSByZXNpZGVzIGluIHlvdXIKLXN5c3RlbSdzIHZpbS1wbHVnaW4gZGlyZWN0b3J5IGFuZCBpcyBzb3VyY2VkIGF1dG9tYXRpY2FsbHkgd2hlbmV2ZXIgeW91IGJyaW5nCi11cCB2aW0uICBJIHN1Z2dlc3QgdGhhdCwgYXQgYSBtaW5pbXVtLCB5b3UgaGF2ZSBhdCBsZWFzdCB0aGUgZm9sbG93aW5nIGluIHlvdXIKLTwudmltcmM+IGN1c3RvbWl6YXRpb24gZmlsZTogPgotCXNldCBub2NwCi0JaWYgdmVyc2lvbiA+PSA2MDAKLQkgIGZpbGV0eXBlIHBsdWdpbiBpbmRlbnQgb24KLQllbmRpZgotPAorc3lzdGVtJ3MgdmltLXBsdWdpbiBkaXJlY3RvcnkgYW5kIGlzIHNvdXJjZWQgYXV0b21hdGljYWxseSB3aGVuZXZlciB5b3UKK2JyaW5nIHVwIHZpbS4KKwogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDQuIFRyYW5zcGFyZW50IEZpbGUgVHJhbnNmZXIJCQkJKm5ldHJ3LXRyYW5zcGFyZW50KgogCiBUcmFuc3BhcmVudCBmaWxlIHRyYW5zZmVycyBvY2N1ciB3aGVuZXZlciBhIHJlZ3VsYXIgZmlsZSByZWFkIG9yIHdyaXRlCiAoaW52b2tlZCB2aWEgYW4gfDphdXRvY21kfCBmb3IgfEJ1ZlJlYWRDbWR8IG9yIHxCdWZXcml0ZUNtZHwgZXZlbnRzKSBpcyBtYWRlLgotVGh1cyBvbmUgbWF5IHVzZSBmaWxlcyBhY3Jvc3MgbmV0d29ya3MganVzdCBhcyBzaW1wbHkgYXMgaWYgdGhleSB3ZXJlIGxvY2FsLiA+CitUaHVzIG9uZSBtYXkgdXNlIGZpbGVzIGFjcm9zcyBuZXR3b3JrcyBhcyBpZiB0aGV5IHdlcmUgbG9jYWwuID4KIAogCXZpbSBmdHA6Ly9bdXNlckBdbWFjaGluZS9wYXRoCiAJLi4uCiAJOndxCiAKLVNlZSB8bmV0cnctYWN0aXZhdGV8IGZvciBtb3JlIG9uIGhvdyB0byBlbmNvdXJhZ2UgeW91ciB2aW0gdG8gdXNlIHBsdWdpbnMKLXN1Y2ggYXMgbmV0cncuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogNS4gRXggQ29tbWFuZHMJCQkJCQkqbmV0cnctZXgqCkBAIC0zNzYsNyArMzY5LDggQEAKIDpbcmFuZ2VdTncge25ldGZpbGV9IFt7bmV0ZmlsZX1dLi4uCiAJCVdyaXRlIHRoZSBzcGVjaWZpZWQgbGluZXMgdG8gdGhlIHtuZXRmaWxlfS4KIAotOk5yZWFkCQlSZWFkIHRoZSBzcGVjaWZpZWQgbGluZXMgaW50byB0aGUgY3VycmVudAorOk5yZWFkCisJCVJlYWQgdGhlIHNwZWNpZmllZCBsaW5lcyBpbnRvIHRoZSBjdXJyZW50CiAJCWJ1ZmZlciBmcm9tIHRoZSBmaWxlIHNwZWNpZmllZCBpbgogCQliOm5ldHJ3X2xhc3RmaWxlLgogCkBAIC00MDcsMTEgKzQwMSwxMCBAQAogCiBUaGUgc2NyaXB0IDxuZXRydy52aW0+IHVzZXMgc2V2ZXJhbCB2YXJpYWJsZXMgd2hpY2ggY2FuIGFmZmVjdCA8bmV0cncudmltPidzCiBiZWhhdmlvci4gIFRoZXNlIHZhcmlhYmxlcyB0eXBpY2FsbHkgbWF5IGJlIHNldCBpbiB0aGUgdXNlcidzIDwudmltcmM+IGZpbGU6Ci0oYWxzbyBzZWUgfG5ldHJ3LXNldHRpbmdzfCkgPgotCi0gICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgICAgICAgICBOZXRydyBPcHRpb25zCi0gICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tCis+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIAlOZXRydyBPcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0KIAlPcHRpb24JCQlNZWFuaW5nCiAJLS0tLS0tLS0tLS0tLS0JCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA8CkBAIC00ODgsMTIgKzQ4MSwxMiBAQAogICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDwKIAkJCQkJCQkJKm5ldHJ3LWZ0cCoKLVRoZSBmaXJzdCB0d28gb3B0aW9ucyBib3RoIGhlbHAgd2l0aCBjZXJ0YWluIGZ0cCdzIHRoYXQgZ2l2ZSB0cm91YmxlCi1vdGhlcndpc2UuICBJbiBvcmRlciB0byBiZXN0IHVuZGVyc3RhbmQgaG93IHRvIHVzZSB0aGVzZSBvcHRpb25zIGlmIGZ0cCBpcwotZ2l2aW5nIHlvdSB0cm91YmxlcywgYSBiaXQgb2YgZGlzY3Vzc2lvbiBmb2xsb3dzIG9uIGhvdyBuZXRydyBkb2VzIGZ0cCByZWFkcy4KK1RoZSBmaXJzdCB0d28gb3B0aW9ucyBib3RoIGhlbHAgd2l0aCBjZXJ0YWluIGZ0cCdzIHRoYXQgZ2l2ZSB0cm91YmxlIG90aGVyd2lzZS4KK0luIG9yZGVyIHRvIGJlc3QgdW5kZXJzdGFuZCBob3cgdG8gdXNlIHRoZXNlIG9wdGlvbnMgaWYgZnRwIGlzIGdpdmluZyB5b3UKK3Ryb3VibGVzLCBhIGJpdCBvZiBkaXNjdXNzaW9uIGZvbGxvd3Mgb24gaG93IG5ldHJ3IGRvZXMgZnRwIHJlYWRzLgogCi1UaGUgZzpuZXRyd18uLi5fY21kIHZhcmlhYmxlcyBzcGVjaWZ5IHRoZSBleHRlcm5hbCBwcm9ncmFtIHRvIHVzZSBoYW5kbGUgdGhlCi1hc3NvY2lhdGVkIHByb3RvY29sIChyY3AsIGZ0cCwgZXRjKSwgcGx1cyBhbnkgb3B0aW9ucy4KK1RoZSBnOm5ldHJ3Xy4uLl9jbWQgdmFyaWFibGVzIHNwZWNpZnkgdGhlIGV4dGVybmFsIHByb2dyYW0gdG8gdXNlIGhhbmRsZQordGhlIGFzc29jaWF0ZWQgcHJvdG9jb2wgKHJjcCwgZnRwLCBldGMpLCBwbHVzIGFueSBvcHRpb25zLgogCiBUaGUgZzpuZXRyd19saXN0X2NtZCdzIEhPU1ROQU1FIGVudHJ5IHdpbGwgYmUgY2hhbmdlZCB2aWEgc3Vic3RpdHV0aW9uIHdpdGgKIHdoYXRldmVyIHRoZSBjdXJyZW50IHJlcXVlc3QgaXMgZm9yIGEgaG9zdG5hbWUuCkBAIC01MjYsOCArNTE5LDggQEAKIFRoZSB0ZW1wb3JhcnkgZmlsZSBpcyB0aGVuIHJlYWQgaW50byB0aGUgbWFpbiBlZGl0aW5nIHNlc3Npb24gd2luZG93IHRoYXQKIHJlcXVlc3RlZCBpdCBhbmQgdGhlIHRlbXBvcmFyeSBmaWxlIGRlbGV0ZWQuCiAKLUlmIHlvdXIgZnRwIGRvZXNuJ3QgYWNjZXB0IHRoZSAidXNlciIgY29tbWFuZCBhbmQgaW1tZWRpYXRlbHkganVzdCBkZW1hbmRzIGEKLXVzZXJpZCwgdGhlbiB0cnkgcHV0dGluZyAibGV0IG5ldHJ3X2Z0cD0xIiBpbiB5b3VyIDwudmltcmM+LgorSWYgeW91ciBmdHAgZG9lc24ndCBhY2NlcHQgdGhlICJ1c2VyIiBjb21tYW5kIGFuZCBpbW1lZGlhdGVseSBqdXN0IGRlbWFuZHMKK2EgdXNlcmlkLCB0aGVuIHRyeSBwdXR0aW5nICJsZXQgbmV0cndfZnRwPTEiIGluIHlvdXIgPC52aW1yYz4uCiAKIAkJCQkJCQkJKm5ldHJ3LWNhZGF2ZXIqCiBUbyBoYW5kbGUgdGhlIFNTTCBjZXJ0aWZpY2F0ZSBkaWFsb2cgZm9yIHVudHJ1c3RlZCBzZXJ2ZXJzLCBvbmUgbWF5IHB1bGwKQEAgLTU1NCwxMiArNTQ3LDEyIEBACiAgICAgICBlbmRpZgogICAgIGVuZGZ1bmN0aW9uCiA+Ci1UaGUgTmV0UmVhZEZpeHVwKCkgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgaWYgaXQgZXhpc3RzIGFuZCB0aHVzIGFsbG93cyB5b3UgdG8KLWN1c3RvbWl6ZSB5b3VyIHJlYWRpbmcgcHJvY2Vzcy4gIEFzIGEgZnVydGhlciBleGFtcGxlLCA8bmV0cncudmltPiBjb250YWlucwotanVzdCBzdWNoIGEgZnVuY3Rpb24gdG8gaGFuZGxlIFdpbmRvd3MgOTUgZnRwLiAgRm9yIHdoYXRldmVyIHJlYXNvbiwgV2luZG93cwotOTUncyBmdHAgZHVtcHMgZm91ciBibGFuayBsaW5lcyBhdCB0aGUgZW5kIG9mIGEgdHJhbnNmZXIsIGFuZCBzbyBpdCBpcwotZGVzaXJhYmxlIHRvIGF1dG9tYXRlIHRoZWlyIHJlbW92YWwuICBIZXJlJ3Mgc29tZSBjb2RlIHRha2VuIGZyb20gPG5ldHJ3LnZpbT4KLWl0c2VsZjoKK1RoZSBOZXRSZWFkRml4dXAoKSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBpZiBpdCBleGlzdHMgYW5kIHRodXMgYWxsb3dzCit5b3UgdG8gY3VzdG9taXplIHlvdXIgcmVhZGluZyBwcm9jZXNzLiAgQXMgYSBmdXJ0aGVyIGV4YW1wbGUsIDxuZXRydy52aW0+Citjb250YWlucyBqdXN0IHN1Y2ggYSBmdW5jdGlvbiB0byBoYW5kbGUgV2luZG93cyA5NSBmdHAuICBGb3Igd2hhdGV2ZXIKK3JlYXNvbiwgV2luZG93cyA5NSdzIGZ0cCBkdW1wcyBmb3VyIGJsYW5rIGxpbmVzIGF0IHRoZSBlbmQgb2YgYSB0cmFuc2ZlciwKK2FuZCBzbyBpdCBpcyBkZXNpcmFibGUgdG8gYXV0b21hdGUgdGhlaXIgcmVtb3ZhbC4gIEhlcmUncyBzb21lIGNvZGUgdGFrZW4KK2Zyb20gPG5ldHJ3LnZpbT4gaXRzZWxmOgogPgogICAgIGlmIGhhcygid2luOTUiKSAmJiBnOm5ldHJ3X3dpbjk1ZnRwCiAgICAgIGZ1biEgTmV0UmVhZEZpeHVwKG1ldGhvZCwgbGluZTEsIGxpbmUyKQpAQCAtNTcyLDcgKzU2NSw3IEBACiA+CiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotNy4gRGlyZWN0b3J5IEJyb3dzaW5nCSpuZXRydy1icm93c2UqICpuZXRydy1kaXIqICpuZXRydy1saXN0KiAqbmV0cnctaGVscCoKKzcuIERpcmVjdG9yeSBCcm93c2VyCSpuZXRydy1icm93c2UqICpuZXRydy1kaXIqICpuZXRydy1saXN0KiAqbmV0cnctaGVscCoKIAogTUFQUyAgIAkJCQkJCQkJKm5ldHJ3LW1hcHMqCiAgICAgID8uLi4uLi4uLi4uLi4uLi4uSGVscC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1oZWxwfApAQCAtNjYzLDEzICs2NTYsMTIgQEAKIAkJCQkgOiBjb25uZWN0IHRvIGFkZHJlc3MgWzAtOWEtZkEtRjpdKgogCQkJCSA6IE5vIHJvdXRlIHRvIGhvc3QkJwogCi0gICpnOm5ldHJ3X2Z0cF9saXN0X2NtZCoJb3B0aW9ucyBmb3IgcGFzc2luZyBhbG9uZyB0byBmdHAgZm9yIGRpcmVjdG9yeQotCQkJCWxpc3RpbmcuICBEZWZhdWx0czoKLQkJCQkgdW5peCBvciBnOm5ldHJ3X2N5Z3dpbiBzZXQ6IDogImxzIC1sRiIKLQkJCQkgb3RoZXJ3aXNlICAgICAgICAgICAgICAgICAgICAgImRpciIKLQotICAqZzpuZXRyd19oaWRlKgkJCWlmIHRydWUsIHRoZSBoaWRpbmcgbGlzdCBpcyB1c2VkCi0JCQkJIGRlZmF1bHQ6ID0wCisgICpnOm5ldHJ3X3NzaF9icm93c2VfcmVqZWN0Kglzc2ggY2FuIHNvbWV0aW1lcyBwcm9kdWNlIHVud2FudGVkIGxpbmVzLAorCQkJCW1lc3NhZ2VzLCBiYW5uZXJzLCBhbmQgd2hhdG5vdCB0aGF0IG9uZSBkb2Vzbid0CisJCQkJd2FudCBtYXNxdWVyYWRpbmcgYXMgImRpcmVjdG9yaWVzIiBhbmQgImZpbGVzIi4KKwkJCQlVc2UgdGhpcyBwYXR0ZXJuIHRvIHJlbW92ZSBzdWNoIGVtYmVkZGVkCisJCQkJbWVzc2FnZXMuICBCeSBkZWZhdWx0IGl0cyB2YWx1ZSBpczoKKyAJCQkJCSAnXnRvdGFsXHNcK1xkXCskJwogCiAgICpnOm5ldHJ3X2tlZXBkaXIqCQk9MSAoZGVmYXVsdCkga2VlcCBjdXJyZW50IGRpcmVjdG9yeSBpbW11bmUgZnJvbQogCQkJCSAgIHRoZSBicm93c2luZyBkaXJlY3RvcnkuCkBAIC02ODQsMTEgKzY3NiwxNiBAQAogCiAgICpnOm5ldHJ3X2xvbmdsaXN0KgkJaWYgPTEsIHRoZW4gbG9uZyBsaXN0aW5nIHdpbGwgYmUgZGVmYXVsdAogCisgICpnOm5ldHJ3X2Z0cF9saXN0X2NtZCoJb3B0aW9ucyBmb3IgcGFzc2luZyBhbG9uZyB0byBmdHAgZm9yIGRpcmVjdG9yeQorCQkJCWxpc3RpbmcuICBEZWZhdWx0czoKKwkJCQkgdW5peCBvciBnOm5ldHJ3X2N5Z3dpbiBzZXQ6IDogImxzIC1sRiIKKwkJCQkgb3RoZXJ3aXNlICAgICAgICAgICAgICAgICAgICAgImRpciIKKwogICAqZzpuZXRyd19saXN0X2hpZGUqCQljb21tYSBzZXBhcmF0ZWQgcGF0dGVybiBsaXN0IGZvciBoaWRpbmcgZmlsZXMKIAkJCQkgZGVmYXVsdDogIiIKIAogICAqZzpuZXRyd19sb2NhbF9ta2RpcioJCWNvbW1hbmQgZm9yIG1ha2luZyBhIGxvY2FsIGRpcmVjdG9yeQotCQkJCSBkZWZhdWx0OiAibWtkaXIiCisJCQkJIGRlZmF1bHQ6ICJzc2ggSE9TVE5BTUUgbWtkaXIiCiAKICAgKmc6bmV0cndfbG9jYWxfcm1kaXIqCQlyZW1vdmUgZGlyZWN0b3J5IGNvbW1hbmQgKHJtZGlyKQogCQkJCSBkZWZhdWx0OiAicm1kaXIiCkBAIC03MTIsNiArNzA5LDkgQEAKICAgKmc6bmV0cndfcm1mX2NtZCoJCSBjb21tYW5kIGZvciByZW1vdmluZyBzb2Z0bGlua3MKIAkJCQkgZGVmYXVsdDogInNzaCBIT1NUTkFNRSBybSAtZiIKIAorICAqZzpuZXRyd19oaWRlKgkJCWlmIHRydWUsIHRoZSBoaWRpbmcgbGlzdCBpcyB1c2VkCisJCQkJIGRlZmF1bHQ6ID0wCisKICAgKmc6bmV0cndfc29ydF9ieSoJCXNvcnQgYnkgIm5hbWUiLCAidGltZSIsIG9yICJzaXplIgogCQkJCSBkZWZhdWx0OiAibmFtZSIKIApAQCAtNzIzLDE4ICs3MjMsNiBAQAogCQkJCSBkZWZhdWx0OiAnW1wvXSQsKixcLmJhayQsXC5vJCxcLmgkLAogCQkJCSAgICAgICAgICAgXC5pbmZvJCxcLnN3cCQsXC5vYmokJwogCi0gICpnOm5ldHJ3X3NzaF9jbWQqCQlPbmUgbWF5IHNwZWNpZnkgYW4gZXhlY3V0YWJsZSBjb21tYW5kCi0gIAkJCQl0byB1c2UgaW5zdGVhZCBvZiBzc2ggZm9yIHJlbW90ZSBhY3Rpb25zCi0JCQkJc3VjaCBhcyBsaXN0aW5nLCBmaWxlIHJlbW92YWwsIGV0Yy4KLQkJCQkgZGVmYXVsdDogc3NoCi0KLSAgKmc6bmV0cndfc3NoX2Jyb3dzZV9yZWplY3QqCXNzaCBjYW4gc29tZXRpbWVzIHByb2R1Y2UgdW53YW50ZWQgbGluZXMsCi0JCQkJbWVzc2FnZXMsIGJhbm5lcnMsIGFuZCB3aGF0bm90IHRoYXQgb25lIGRvZXNuJ3QKLQkJCQl3YW50IG1hc3F1ZXJhZGluZyBhcyAiZGlyZWN0b3JpZXMiIGFuZCAiZmlsZXMiLgotCQkJCVVzZSB0aGlzIHBhdHRlcm4gdG8gcmVtb3ZlIHN1Y2ggZW1iZWRkZWQKLQkJCQltZXNzYWdlcy4gIEJ5IGRlZmF1bHQgaXRzIHZhbHVlIGlzOgotIAkJCQkJICdedG90YWxcc1wrXGRcKyQnCi0KICAgKmc6bmV0cndfdGltZWZtdCoJCXNwZWNpZnkgZm9ybWF0IHN0cmluZyB0byBzdHJmdGltZSgpICglYykKIAkJCQkgZGVmYXVsdDogIiVjIgogCkBAIC03NDQsNyArNzMyLDcgQEAKIElOVFJPRFVDVElPTiBUTyBESVJFQ1RPUlkgQlJPV1NJTkcJCQkqbmV0cnctYnJvd3NlLWludHJvKgogCiBOZXRydyBzdXBwb3J0cyB0aGUgYnJvd3Npbmcgb2YgZGlyZWN0b3JpZXMgb24gdGhlIGxvY2FsIHN5c3RlbSBhbmQgb24gcmVtb3RlCi1ob3N0cywgaW5jbHVkaW5nIGxpc3RpbmcgZmlsZXMgYW5kIGRpcmVjdG9yaWVzLCBlbnRlcmluZyBkaXJlY3RvcmllcywgZWRpdGluZworaG9zdHMsIGluY2x1ZGluZyBnZW5lcmF0aW5nIGxpc3RpbmcgZGlyZWN0b3JpZXMsIGVudGVyaW5nIGRpcmVjdG9yaWVzLCBlZGl0aW5nCiBmaWxlcyB0aGVyZWluLCBkZWxldGluZyBmaWxlcy9kaXJlY3RvcmllcywgbWFraW5nIG5ldyBkaXJlY3RvcmllcywgYW5kIG1vdmluZwogKHJlbmFtaW5nKSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMuICBUaGUgTmV0cncgYnJvd3NlciBnZW5lcmFsbHkgaW1wbGVtZW50cyB0aGUKIHByZXZpb3VzIGV4cGxvcmVyIG1hcHMgYW5kIGNvbW1hbmRzIGZvciByZW1vdGUgZGlyZWN0b3JpZXMsIGFsdGhvdWdoIGRldGFpbHMKQEAgLTc1NSwxNSArNzQzLDEzIEBACiBpbiBpdHMgcmVtb3RlIGJyb3dzaW5nLiAgQW55IG90aGVyIHByb3RvY29sIHdpbGwgYmUgdXNlZCBmb3IgZmlsZSB0cmFuc2ZlcnMsCiBidXQgb3RoZXJ3aXNlIHRoZSBzc2ggcHJvdG9jb2wgd2lsbCBiZSB1c2VkIHRvIGRvIHJlbW90ZSBkaXJlY3RvcnkgYnJvd3NpbmcuCiAKLVRvIHVzZSBOZXRydydzIHJlbW90ZSBkaXJlY3RvcnkgYnJvd3Nlciwgc2ltcGx5IGF0dGVtcHQgdG8gcmVhZCBhICJmaWxlIiB3aXRoIGEKK1RvIGVudGVyIHRoZSBuZXRydyBkaXJlY3RvcnkgYnJvd3Nlciwgc2ltcGx5IGF0dGVtcHQgdG8gcmVhZCBhICJmaWxlIiB3aXRoIGEKIHRyYWlsaW5nIHNsYXNoIGFuZCBpdCB3aWxsIGJlIGludGVycHJldGVkIGFzIGEgcmVxdWVzdCB0byBsaXN0IGEgZGlyZWN0b3J5OgogCiAJdmltIFtwcm90b2NvbF06Ly9bdXNlckBdaG9zdG5hbWUvcGF0aC8KIAotRm9yIGxvY2FsIGRpcmVjdG9yaWVzLCB0aGUgdHJhaWxpbmcgc2xhc2ggaXMgbm90IHJlcXVpcmVkLgotCi1JZiB5b3UnZCBsaWtlIHRvIGF2b2lkIGVudGVyaW5nIHRoZSBwYXNzd29yZCBpbiBmb3IgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5ncwotd2l0aCBzc2ggb3Igc2NwLCBzZWUgfG5ldHJ3LWxpc3RoYWNrfC4KK0lmIHlvdSdkIGxpa2UgdG8gYXZvaWQgZW50ZXJpbmcgdGhlIHBhc3N3b3JkIGluIGZvciBkaXJlY3RvcnkgbGlzdGluZ3MsIHNjcCwKK3NzaCBpbnRlcmFjdGlvbiwgZXRjLCBzZWUgfG5ldHJ3LWxpc3RoYWNrfC4KIAogCQkJCSpuZXRydy1leHBsb3JlKiAgKm5ldHJ3LXBleHBsb3JlKgogCQkJCSpuZXRydy1oZXhwbG9yZSogKm5ldHJ3LXNleHBsb3JlKgpAQCAtNzk3LDggKzc4Myw3IEBACiBtYXkgZXhwbGljaXRseSBwcm92aWRlIGEgZGlyZWN0b3J5IChwYXRoKSB0byB1c2UuCiAKIChGb2xsb3dpbmcgbmVlZHMgdjcuMCBvciBsYXRlcikJCQkqbmV0cnctc3RhcnN0YXIqCi1XaGVuIEV4cGxvcmUsIFNleHBsb3JlLCBIZXhwbG9yZSwgb3IgVmV4cGxvcmUgYXJlIHVzZWQgd2l0aCBhICoqLAotc3VjaCBhczoKK1doZW4gRXhwbG9yZSwgU2V4cGxvcmUsIEhleHBsb3JlLCBvciBWZXhwbG9yZSBhcmUgdXNlZCBsaWtlCiA+CiAJOkV4cGxvcmUgKiovZmlsZW5hbWVfcGF0dGVybgogPApAQCAtODEyLDggKzc5Nyw3IEBACiBtYXRjaGluZyBmaWxlLiAgT25lIG1heSB0aGVuIHByb2NlZWQgdG8gdGhlIG5leHQgKG9yIHByZXZpb3VzKSBtYXRjaGluZyBmaWxlcycKIGRpcmVjdG9yaWVzIGJ5IHVzaW5nIE5leHBsb3JlIG9yIFBleHBsb3JlLCByZXNwZWN0aXZlbHkuICBJZiB5b3VyIGNvbnNvbGUgb3IKIGd1aSBwcm9kdWNlcyByZWNvZ25pemFibGUgc2hpZnQtdXAgb3Igc2hpZnQtZG93biBzZXF1ZW5jZXMsIHRoZW4geW91J2xsIGxpa2VseQotZmluZCB1c2luZyBzaGlmdC1kb3duYXJyb3cgYW5kIHNoaWZ0LXVwYXJyb3cgY29udmVuaWVudC4gIFRoZXkncmUgbWFwcGVkIGJ5Ci1uZXRydzoKK2ZpbmQgdGhlIGZvbGxvd2luZyBtYXBwaW5ncyBjb252ZW5pZW50OgogCiAJPHMtZG93bj4gID09IE5leHBsb3JlLCBhbmQKIAk8cy11cD4gICAgPT0gUGV4cGxvcmUuCkBAIC04MzgsMTIgKzgyMiwxMSBAQAogCiBHT0lORyBVUAkJCQkJCSpuZXRydy0tKgogCi1UbyBnbyB1cCBhIGRpcmVjdG9yeSwgcHJlc3MgIi0iIG9yIHByZXNzIHRoZSA8Y3I+IHdoZW4gYXRvcCB0aGUgLi4vIGRpcmVjdG9yeQorVG8gZ28gdXAgYSBkaXJlY3RvcnksIHByZXNzIC0gb3IgaGlzIHRoZSA8Y3I+IHdoZW4gYXRvcCB0aGUgLi4vIGRpcmVjdG9yeQogZW50cnkgaW4gdGhlIGxpc3RpbmcuCiAKLU5ldHJ3IHdpbGwgdXNlIHRoZSBjb21tYW5kIGluIHxnOm5ldHJ3X2xpc3RfY21kfCB0byBwZXJmb3JtIHRoZSBkaXJlY3RvcnkKLWxpc3Rpbmcgb3BlcmF0aW9uIGFmdGVyIGNoYW5naW5nIEhPU1ROQU1FIHRvIHRoZSBob3N0IHNwZWNpZmllZCBieSB0aGUKLXVzZXItcHJvdmlkZWQgdXJsLiAgQnkgZGVmYXVsdCBuZXRydyBwcm92aWRlcyB0aGUgY29tbWFuZCBhczoKK05ldHJ3IHdpbGwgbW9kaWZ5IHRoZSBjb21tYW5kIGluIHxnOm5ldHJ3X2xpc3RfY21kfCB0byBwZXJmb3JtIHRoZSBkaXJlY3RvcnkKK2xpc3Rpbmcgb3BlcmF0aW9uLiAgQnkgZGVmYXVsdCB0aGUgY29tbWFuZCBpczoKIAogCXNzaCBIT1NUTkFNRSBscyAtRkxhCiAKQEAgLTg1OCwxMyArODQxLDcgQEAKIEJyb3dzaW5nIGlzIHNpbXBsZTogbW92ZSB0aGUgY3Vyc29yIG9udG8gYSBmaWxlIG9yIGRpcmVjdG9yeSBvZiBpbnRlcmVzdC4KIEhpdHRpbmcgdGhlIDxjcj4gKHRoZSByZXR1cm4ga2V5KSB3aWxsIHNlbGVjdCB0aGUgZmlsZSBvciBkaXJlY3RvcnkuCiBEaXJlY3RvcmllcyB3aWxsIHRoZW1zZWx2ZXMgYmUgbGlzdGVkLCBhbmQgZmlsZXMgd2lsbCBiZSBvcGVuZWQgdXNpbmcgdGhlCi1wcm90b2NvbCBnaXZlbiBpbiB0aGUgb3JpZ2luYWwgcmVhZCByZXF1ZXN0LiAgCi0KLSAgQ0FWRUFUOiBUaGVyZSBhcmUgdGhyZWUgZm9ybXMgb2YgbGlzdGluZyAoc2VlIHxuZXRydy1pfCkuICBOZXRydyBhc3N1bWVzCi0gIHRoYXQgdHdvIG9yIG1vcmUgc3BhY2VzIGRlbGltaXQgZmlsZW5hbWVzIGFuZCBkaXJlY3RvcnkgbmFtZXMgZm9yIHRoZSBsb25nCi0gIGFuZCB3aWRlIGxpc3RpbmcgZm9ybWF0cy4gIFRodXMsIGlmIHlvdXIgZmlsZW5hbWUgb3IgZGlyZWN0b3J5IG5hbWUgaGFzIHR3bwotICBvciBtb3JlIHNwYWNlcyBlbWJlZGRlZCBpbiBpdCwgb3IgYW55IHRyYWlsaW5nIHNwYWNlcywgdGhlbiB5b3UnbGwgbmVlZCB0bwotICB1c2UgdGhlICJ0aGluIiBmb3JtYXQgdG8gc2VsZWN0IGl0LgorcHJvdG9jb2wgZ2l2ZW4gaW4gdGhlIG9yaWdpbmFsIHJlYWQgcmVxdWVzdC4KIAogCiBPQlRBSU5JTkcgQSBGSUxFCQkJCQkJKm5ldHJ3LU8qCkBAIC04NzIsMjEgKzg0OSw3IEBACiBXaGVuIGJyb3dzaW5nIGEgcmVtb3RlIGRpcmVjdG9yeSwgb25lIG1heSBvYnRhaW4gYSBmaWxlIHVuZGVyIHRoZSBjdXJzb3IgKGllLgogZ2V0IGEgY29weSBvbiB5b3VyIGxvY2FsIG1hY2hpbmUsIGJ1dCBub3QgZWRpdCBpdCkgYnkgcHJlc3NpbmcgdGhlIE8ga2V5LgogT25seSBmdHAgYW5kIHNjcCBhcmUgc3VwcG9ydGVkIGZvciB0aGlzIG9wZXJhdGlvbiAoYnV0IHNpbmNlIHRoZXNlIHR3byBhcmUKLWF2YWlsYWJsZSBmb3IgYnJvd3NpbmcsIHRoYXQgc2hvdWxkbid0IGJlIGEgcHJvYmxlbSkuICBUaGUgc3RhdHVzIGJhcgotd2lsbCB0aGVuIHNob3csIG9uIGl0cyByaWdodCBoYW5kIHNpZGUsIGEgbWVzc2FnZSBsaWtlICJPYnRhaW5pbmcgZmlsZW5hbWUiLgotVGhlIHN0YXR1c2xpbmUgd2lsbCBiZSByZXN0b3JlZCBhZnRlciB0aGUgdHJhbnNmZXIgaXMgY29tcGxldGUuCi0KLU5ldHJ3IGNhbiBhbHNvICJvYnRhaW4iIGEgZmlsZSB1c2luZyB0aGUgbG9jYWwgYnJvd3Nlci4gIE5ldHJ3J3MgZGlzcGxheQotb2YgYSBkaXJlY3RvcnkgaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIFZpbSdzICJjdXJyZW50IGRpcmVjdG9yeSIsCi11bmxlc3MgfGc6bmV0cndfa2VlcGRpcnwgaXMgc2V0IHRvIDAgaW4gdGhlIHVzZXIncyA8LnZpbXJjPi4gIE9uZSBtYXkgc2VsZWN0Ci1hIGZpbGUgdXNpbmcgdGhlIGxvY2FsIGJyb3dzZXIgKGJ5IHB1dHRpbmcgdGhlIGN1cnNvciBvbiBpdCkgYW5kIHByZXNzaW5nCi0iTyIgd2lsbCB0aGVuICJvYnRhaW4iIHRoZSBmaWxlOyBpZS4gY29weSBpdCB0byBWaW0ncyBjdXJyZW50IGRpcmVjdG9yeS4KLQotUmVsYXRlZCB0b3BpY3M6Ci0gKiBUbyBzZWUgd2hhdCB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXMsIHVzZSB8OnB3ZHwKLSAqIFRvIG1ha2UgdGhlIGN1cnJlbnRseSBicm93c2VkIGRpcmVjdG9yeSB0aGUgY3VycmVudCBkaXJlY3RvcnksIHNlZSB8bmV0cnctY3wKLSAqIFRvIGF1dG9tYXRpY2FsbHkgbWFrZSB0aGUgY3VycmVudGx5IGJyb3dzZWQgZGlyZWN0b3J5IHRoZSBjdXJyZW50Ci0gICBkaXJlY3RvcnksIHNlZSB8ZzpuZXRyd19rZWVwZGlyfC4KK2F2YWlsYWJsZSBmb3IgYnJvd3NpbmcsIHRoYXQgc2hvdWxkbid0IGJlIGEgcHJvYmxlbSkuCiAKIAogVEhJTiwgTE9ORywgQU5EIFdJREUgTElTVElOR1MJCQkJCSpuZXRydy1pKgpAQCAtODk2LDI3ICs4NTksMjEgQEAKIFRoZSBzaG9ydCBsaXN0aW5nIGZvcm1hdCBnaXZlcyBqdXN0IHRoZSBmaWxlcycgYW5kIGRpcmVjdG9yaWVzJyBuYW1lcy4KIAogVGhlIGxvbmcgbGlzdGluZyBpcyBlaXRoZXIgYmFzZWQgb24gdGhlICJscyIgY29tbWFuZCB2aWEgc3NoIGZvciByZW1vdGUKLWRpcmVjdG9yaWVzIG9yIGRpc3BsYXlzIHRoZSBmaWxlbmFtZSwgZmlsZSBzaXplIChpbiBieXRlcyksIGFuZCB0aGUgdGltZSBhbmQKLWRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24gZm9yIGxvY2FsIGRpcmVjdG9yaWVzLiAgV2l0aCB0aGUgbG9uZyBsaXN0aW5nCi1mb3JtYXQsIG5ldHJ3IGlzIG5vdCBhYmxlIHRvIHJlY29nbml6ZSBmaWxlbmFtZXMgd2hpY2ggaGF2ZSB0cmFpbGluZyBzcGFjZXMuCi1Vc2UgdGhlIHRoaW4gbGlzdGluZyBmb3JtYXQgZm9yIHN1Y2ggZmlsZXMuCitkaXJlY3RvcmllcyBvciBkaXNwbGF5cyB0aGUgZmlsZW5hbWUsIGZpbGUgc2l6ZSAoaW4gYnl0ZXMpLCBhbmQgdGhlCit0aW1lIGFuZCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uIGZvciBsb2NhbCBkaXJlY3Rvcmllcy4KIAotVGhlIHdpZGUgbGlzdGluZyBmb3JtYXQgaGFzIGEgbXVsdGktY29sdW1uIGRpc3BsYXkgb2YgdGhlIHZhcmlvdXMgZmlsZXMgaW4gdGhlCi1uZXRydyBjdXJyZW50IGRpcmVjdG9yeSwgcmF0aGVyIGxpa2UgdGhlIFVuaXggImxzIiBwcmVzZW50cy4gIEluIHRoaXMgbW9kZSB0aGUKLSJiIiBhbmQgIkIiIG1hcHMgYXJlIG5vdCBhdmFpbGFibGU7IGluc3RlYWQsIHVzZSBOYiAofG5ldHJ3LU5ifCkgYW5kIE5CCi0ofG5ldHJ3LU5CfCkuICBUaGUgd2lkZSBsaXN0aW5nIGZvcm1hdCB1c2VzIHR3byBvciBtb3JlIGNvbnRpZ3VvdXMgc3BhY2VzIHRvCi1kZWxpbmVhdGUgZmlsZW5hbWVzOyB3aGVuIHVzaW5nIHRoYXQgZm9ybWF0LCBuZXRydyB3b24ndCBiZSBhYmxlIHRvIHJlY29nbml6ZQotb3IgdXNlIGZpbGVuYW1lcyB3aGljaCBoYXZlIHR3byBvciBtb3JlIGNvbnRpZ3VvdXMgc3BhY2VzIGVtYmVkZGVkIGluIHRoZSBuYW1lCi1vciBhbnkgdHJhaWxpbmcgc3BhY2VzLiAgVGhlIHRoaW4gbGlzdGluZyBmb3JtYXQgd2lsbCwgaG93ZXZlciwgd29yayB3aXRoIHN1Y2gKLWZpbGVzLgorVGhlIHdpZGUgbGlzdGluZyBmb3JtYXQgaGFzIGEgbXVsdGktY29sdW1uIGRpc3BsYXkgb2YgdGhlIHZhcmlvdXMKK2ZpbGVzIGluIHRoZSBuZXRydyBjdXJyZW50IGRpcmVjdG9yeSwgcmF0aGVyIGxpa2UgdGhlIFVuaXggImxzIiBwcmVzZW50cy4KK0luIHRoaXMgbW9kZSB0aGUgImIiIGFuZCAiQiIgbWFwcyBhcmUgbm90IGF2YWlsYWJsZTsgaW5zdGVhZCwgdXNlCitOYiAofG5ldHJ3LU5ifCkgYW5kIE5CICh8bmV0cnctTkJ8KS4KIAogCiBNQUtJTkcgQSBORVcgRElSRUNUT1JZCQkJCQkJKm5ldHJ3LWQqCiAKLVdpdGggdGhlICJkIiBtYXAgb25lIG1heSBtYWtlIGEgbmV3IGRpcmVjdG9yeSBlaXRoZXIgcmVtb3RlbHkgKHdoaWNoIGRlcGVuZHMKLW9uIHRoZSBnbG9iYWwgdmFyaWFibGUgZzpuZXRyd19ta2Rpcl9jbWQpIG9yIGxvY2FsbHkgKHdoaWNoIGRlcGVuZHMgb24gdGhlCi1nbG9iYWwgdmFyaWFibGUgZzpuZXRyd19sb2NhbF9ta2RpcikuICBOZXRydyB3aWxsIGlzc3VlIGEgcmVxdWVzdCBmb3IgdGhlIG5ldwotZGlyZWN0b3J5J3MgbmFtZS4gIEEgYmFyZSA8Q1I+IGF0IHRoYXQgcG9pbnQgd2lsbCBhYm9ydCB0aGUgbWFraW5nIG9mIHRoZQorV2l0aCB0aGUgImQiIG1hcCBvbmUgbWF5IG1ha2UgYSBuZXcgZGlyZWN0b3J5IGVpdGhlciByZW1vdGVseSAod2hpY2gKK2RlcGVuZHMgb24gdGhlIGdsb2JhbCB2YXJpYWJsZSBnOm5ldHJ3X21rZGlyX2NtZCkgb3IgbG9jYWxseSAod2hpY2ggZGVwZW5kcyBvbgordGhlIGdsb2JhbCB2YXJpYWJsZSBnOm5ldHJ3X2xvY2FsX21rZGlyKS4gIE5ldHJ3IHdpbGwgaXNzdWUgYSByZXF1ZXN0IGZvciB0aGUKK25ldyBkaXJlY3RvcnkncyBuYW1lLiAgQSBiYXJlIDxDUj4gYXQgdGhhdCBwb2ludCB3aWxsIGFib3J0IHRoZSBtYWtpbmcgb2YgdGhlCiBkaXJlY3RvcnkuICBBdHRlbXB0cyB0byBtYWtlIGEgbG9jYWwgZGlyZWN0b3J5IHRoYXQgYWxyZWFkeSBleGlzdHMgKGFzIGVpdGhlcgogYSBmaWxlIG9yIGEgZGlyZWN0b3J5KSB3aWxsIGJlIGRldGVjdGVkLCByZXBvcnRlZCBvbiwgYW5kIGlnbm9yZWQuCiAKQEAgLTkyNCwxMiArODgxLDEyIEBACiBERUxFVElORyBGSUxFUyBPUiBESVJFQ1RPUklFUwkJCSpuZXRydy1kZWxldGUqICpuZXRydy1EKgogCiBEZWxldGluZy9yZW1vdmluZyBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgaW52b2x2ZXMgbW92aW5nIHRoZSBjdXJzb3IgdG8gdGhlCi1maWxlL2RpcmVjdG9yeSB0byBiZSBkZWxldGVkIGFuZCBwcmVzc2luZyAiRCIuICBEaXJlY3RvcmllcyBtdXN0IGJlIGVtcHR5Ci1maXJzdCBiZWZvcmUgdGhleSBjYW4gYmUgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQuICBJZiB0aGUgZGlyZWN0b3J5IGlzIGEgc29mdGxpbmsKLXRvIGEgZGlyZWN0b3J5LCB0aGVuIG5ldHJ3IHdpbGwgbWFrZSB0d28gcmVxdWVzdHMgdG8gcmVtb3ZlIHRoZSBkaXJlY3RvcnkKLWJlZm9yZSBzdWNjZWVkaW5nLiAgTmV0cncgd2lsbCBhc2sgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUgZG9pbmcgdGhlCi1yZW1vdmFsKHMpLiAgWW91IG1heSBzZWxlY3QgYSByYW5nZSBvZiBsaW5lcyB3aXRoIHRoZSAiViIgY29tbWFuZCAodmlzdWFsCi1zZWxlY3Rpb24pLCBhbmQgdGhlbiBwcmVzc2luZyAiRCIuCitmaWxlL2RpcmVjdG9yeSB0byBiZSBkZWxldGVkIGFuZCBwcmVzc2luZyAiRCIuICBEaXJlY3RvcmllcyBtdXN0IGJlIGVtcHR5IGZpcnN0CitiZWZvcmUgdGhleSBjYW4gYmUgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQuICBJZiB0aGUgZGlyZWN0b3J5IGlzIGEgc29mdGxpbmsgdG8gYQorZGlyZWN0b3J5LCB0aGVuIG5ldHJ3IHdpbGwgbWFrZSB0d28gcmVxdWVzdHMgdG8gcmVtb3ZlIHRoZSBkaXJlY3RvcnkgYmVmb3JlCitzdWNjZWVkaW5nLiAgTmV0cncgd2lsbCBhc2sgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUgZG9pbmcgdGhlIHJlbW92YWwocykuCitZb3UgbWF5IHNlbGVjdCBhIHJhbmdlIG9mIGxpbmVzIHdpdGggdGhlICJWIiBjb21tYW5kICh2aXN1YWwgc2VsZWN0aW9uKSwKK2FuZCB0aGVuIHByZXNzaW5nICJEIi4KIAogVGhlIGc6bmV0cndfcm1fY21kLCBnOm5ldHJ3X3JtZl9jbWQsIGFuZCBnOm5ldHJ3X3JtZGlyX2NtZCB2YXJpYWJsZXMgYXJlIHVzZWQKIHRvIGNvbnRyb2wgdGhlIGF0dGVtcHRzIHRvIHJlbW92ZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMuICBUaGUgZzpuZXRyd19ybV9jbWQKQEAgLTk2NiwxNyArOTIzLDE3IEBACiAKIEhJRElORyBGSUxFUyBPUiBESVJFQ1RPUklFUwkJCQkqbmV0cnctYSoKIAotTmV0cncncyBicm93c2luZyBmYWNpbGl0eSBhbGxvd3Mgb25lIHRvIHVzZSB0aGUgaGlkaW5nIGxpc3QgaW4gb25lIG9mIHRocmVlCi13YXlzOiBpZ25vcmUgaXQsIGhpZGUgZmlsZXMgd2hpY2ggbWF0Y2gsIGFuZCBzaG93IG9ubHkgdGhvc2UgZmlsZXMgd2hpY2gKLW1hdGNoLiAgVGhlICJhIiBtYXAgYWxsb3dzIHRoZSB1c2VyIHRvIGN5Y2xlIGFib3V0IHRoZXNlIHRocmVlIHdheXMuCitOZXRydydzIGJyb3dzaW5nIGZhY2lsaXR5IGFsbG93cyBvbmUgdG8gdXNlIHRoZSBoaWRpbmcgbGlzdCBpbiBvbmUgb2YKK3RocmVlIHdheXM6IGlnbm9yZSBpdCwgaGlkZSBmaWxlcyB3aGljaCBtYXRjaCwgYW5kIHNob3cgb25seSB0aG9zZSBmaWxlcword2hpY2ggbWF0Y2guICBUaGUgImEiIG1hcCBhbGxvd3MgdGhlIHVzZXIgdG8gY3ljbGUgYWJvdXQgdGhlc2UgdGhyZWUgd2F5cy4KIAotVGhlIGc6bmV0cndfbGlzdF9oaWRlIHZhcmlhYmxlIGhvbGRzIGEgY29tbWEgZGVsaW1pdGVkIGxpc3Qgb2YgcGF0dGVybnMgKGV4LgotXC5vYmopIHdoaWNoIHNwZWNpZnkgdGhlIGhpZGluZyBsaXN0LiAoYWxzbyBzZWUgfG5ldHJ3LWh8KSAgVG8gc2V0IHRoZSBoaWRpbmcKLWxpc3QsIHVzZSB0aGUgPGMtaD4gbWFwLiAgQXMgYW4gZXhhbXBsZSwgdG8gaGlkZSBmaWxlcyB3aGljaCBiZWdpbiB3aXRoIGEgIi4iLAotb25lIG1heSB1c2UgdGhlIDxjLWg+IG1hcCB0byBzZXQgdGhlIGhpZGluZyBsaXN0IHRvICdeXC4uKicgKG9yIG9uZSBtYXkgcHV0Ci1sZXQgZzpuZXRyd19saXN0X2hpZGU9ICdeXC4uKicgaW4gb25lJ3MgPC52aW1yYz4pLiAgT25lIG1heSB0aGVuIHVzZSB0aGUgImEiCi1rZXkgdG8gc2hvdyBhbGwgZmlsZXMsIGhpZGUgbWF0Y2hpbmcgZmlsZXMsIG9yIHRvIHNob3cgb25seSB0aGUgbWF0Y2hpbmcKLWZpbGVzLgorVGhlIGc6bmV0cndfbGlzdF9oaWRlIHZhcmlhYmxlIGhvbGRzIGEgY29tbWEgZGVsaW1pdGVkIGxpc3Qgb2YgcGF0dGVybnMKKyhleC4gXC5vYmopIHdoaWNoIHNwZWNpZnkgdGhlIGhpZGluZyBsaXN0LiAoYWxzbyBzZWUgfG5ldHJ3LWh8KSAgVG8KK3NldCB0aGUgaGlkaW5nIGxpc3QsIHVzZSB0aGUgPGMtaD4gbWFwLiAgQXMgYW4gZXhhbXBsZSwgdG8gaGlkZSBmaWxlcword2hpY2ggYmVnaW4gd2l0aCBhICIuIiwgb25lIG1heSB1c2UgdGhlIDxjLWg+IG1hcCB0byBzZXQgdGhlIGhpZGluZworbGlzdCB0byAnXlwuLionIChvciBvbmUgbWF5IHB1dCAgbGV0IGc6bmV0cndfbGlzdF9oaWRlPSAnXlwuLionIGluCitvbmUncyA8LnZpbXJjPikuICBPbmUgbWF5IHRoZW4gdXNlIHRoZSAiYSIga2V5IHRvIHNob3cgYWxsIGZpbGVzLAoraGlkZSBtYXRjaGluZyBmaWxlcywgb3IgdG8gc2hvdyBvbmx5IHRoZSBtYXRjaGluZyBmaWxlcy4KIAogCiBFRElUIEZJTEUgT1IgRElSRUNUT1JZIEhJRElORyBMSVNUCQkqbmV0cnctaCogKm5ldHJ3LWVkaXRoaWRlKgpAQCAtOTg0LDggKzk0MSw3IEBACiBUaGUgIjxjdHJsLWg+IiBtYXAgYnJpbmdzIHVwIGEgcmVxdWVzdG9yIGFsbG93aW5nIHRoZSB1c2VyIHRvIGNoYW5nZSB0aGUKIGZpbGUvZGlyZWN0b3J5IGhpZGluZyBsaXN0LiAgVGhlIGhpZGluZyBsaXN0IGNvbnNpc3RzIG9mIG9uZSBvciBtb3JlIHBhdHRlcm5zCiBkZWxpbWl0ZWQgYnkgY29tbWFzLiAgRmlsZXMgYW5kL29yIGRpcmVjdG9yaWVzIHNhdGlzZnlpbmcgdGhlc2UgcGF0dGVybnMgd2lsbAotZWl0aGVyIGJlIGhpZGRlbiAoaWUuIG5vdCBzaG93bikgb3IgYmUgdGhlIG9ubHkgb25lcyBkaXNwbGF5ZWQgKHNlZQotfG5ldHJ3LWF8KS4KK2VpdGhlciBiZSBoaWRkZW4gKGllLiBub3Qgc2hvd24pIG9yIGJlIHRoZSBvbmx5IG9uZXMgZGlzcGxheWVkIChzZWUgfG5ldHJ3LWF8KS4KIAogCiBCUk9XU0lORyBXSVRIIEEgSE9SSVpPTlRBTExZIFNQTElUIFdJTkRPVwkJKm5ldHJ3LW8qICpuZXRydy1ob3JpeioKQEAgLTk5NCw5ICs5NTAsOSBAQAogYWxsb3dzIG9uZSB0byBvcGVuIGEgbmV3IHdpbmRvdyB0byBob2xkIHRoZSBuZXcgZGlyZWN0b3J5IGxpc3Rpbmcgb3IgZmlsZS4gIEEKIGhvcml6b250YWwgc3BsaXQgaXMgdXNlZC4gIChmb3IgdmVydGljYWwgc3BsaXR0aW5nLCBzZWUgfG5ldHJ3LXZ8KQogCi1Ob3JtYWxseSwgdGhlIG8ga2V5IHNwbGl0cyB0aGUgd2luZG93IGhvcml6b250YWxseSB3aXRoIHRoZSBuZXcgd2luZG93IGFuZAotY3Vyc29yIGF0IHRoZSB0b3AuICBUbyBjaGFuZ2UgdG8gc3BsaXR0aW5nIHRoZSB3aW5kb3cgaG9yaXpvbnRhbGx5IHdpdGggdGhlCi1uZXcgd2luZG93IGFuZCBjdXJzb3IgYXQgdGhlIGJvdHRvbSwgaGF2ZQorTm9ybWFsbHksIHRoZSBvIGtleSBzcGxpdHMgdGhlIHdpbmRvdyBob3Jpem9udGFsbHkgd2l0aCB0aGUgbmV3IHdpbmRvdworYW5kIGN1cnNvciBhdCB0aGUgdG9wLiAgVG8gY2hhbmdlIHRvIHNwbGl0dGluZyB0aGUgd2luZG93IGhvcml6b250YWxseQord2l0aCB0aGUgbmV3IHdpbmRvdyBhbmQgY3Vyc29yIGF0IHRoZSBib3R0b20sIGhhdmUKIAogCWxldCBnOm5ldHJ3X2FsdG8gPSAxCiAKQEAgLTEwMDUsMzAgKzk2MSwzMCBAQAogCiBQUkVWSUVXIFdJTkRPVwkJCQkJKm5ldHJ3LXAqICpuZXRydy1wcmV2aWV3KgogCi1PbmUgbWF5IHVzZSBhIHByZXZpZXcgd2luZG93IChjdXJyZW50bHkgb25seSBmb3IgbG9jYWwgYnJvd3NpbmcpIGJ5IHVzaW5nIHRoZQotInAiIGtleSB3aGVuIHRoZSBjdXJzb3IgaXMgYXRvcCB0aGUgZGVzaXJlZCBmaWxlbmFtZSB0byBiZSBwcmV2aWV3ZWQuCitPbmUgbWF5IHVzZSBhIHByZXZpZXcgd2luZG93IChjdXJyZW50bHkgb25seSBmb3IgbG9jYWwgYnJvd3NpbmcpIGJ5IHVzaW5nCit0aGUgInAiIGtleSB3aGVuIHRoZSBjdXJzb3IgaXMgYXRvcCB0aGUgZGVzaXJlZCBmaWxlbmFtZSB0byBiZSBwcmV2aWV3ZWQuCiAKIAogU0VMRUNUSU5HIFNPUlRJTkcgU1RZTEUJCQkJKm5ldHJ3LXMqICpuZXRydy1zb3J0KgogCi1PbmUgbWF5IHNlbGVjdCB0aGUgc29ydGluZyBzdHlsZSBieSBuYW1lLCB0aW1lLCBvciAoZmlsZSkgc2l6ZS4gIFRoZSAicyIgbWFwCi1hbGxvd3Mgb25lIHRvIGNpcmN1bGF0ZSBhbW9uZ3N0IHRoZSB0aHJlZSBjaG9pY2VzOyB0aGUgZGlyZWN0b3J5IGxpc3Rpbmcgd2lsbAotYXV0b21hdGljYWxseSBiZSByZWZyZXNoZWQgdG8gcmVmbGVjdCB0aGUgc2VsZWN0ZWQgc3R5bGUuCitPbmUgbWF5IHNlbGVjdCB0aGUgc29ydGluZyBzdHlsZSBieSBuYW1lLCB0aW1lLCBvciAoZmlsZSkgc2l6ZS4gIFRoZQorInMiIG1hcCBhbGxvd3Mgb25lIHRvIGNpcmN1bGF0ZSBhbW9uZ3N0IHRoZSB0aHJlZSBjaG9pY2VzOyB0aGUgZGlyZWN0b3J5CitsaXN0aW5nIHdpbGwgYXV0b21hdGljYWxseSBiZSByZWZyZXNoZWQgdG8gcmVmbGVjdCB0aGUgc2VsZWN0ZWQgc3R5bGUuCiAKIAogRURJVElORyBUSEUgU09SVElORyBTRVFVRU5DRQkJKm5ldHJ3LVMqICpuZXRydy1zb3J0c2VxdWVuY2UqCiAKLVdoZW4gIlNvcnRlZCBieSIgaXMgbmFtZSwgb25lIG1heSBzcGVjaWZ5IHByaW9yaXR5IHZpYSB0aGUgc29ydGluZyBzZXF1ZW5jZQotKGc6bmV0cndfc29ydF9zZXF1ZW5jZSkuICBUaGUgc29ydGluZyBzZXF1ZW5jZSB0eXBpY2FsbHkgcHJpb3JpdGl6ZXMgdGhlCi1uYW1lLWxpc3RpbmcgYnkgc3VmZml4LCBhbHRob3VnaCBhbnkgcGF0dGVybiB3aWxsIGRvLiAgUGF0dGVybnMgYXJlIGRlbGltaXRlZAotYnkgY29tbWFzLiAgVGhlIGRlZmF1bHQgc29ydGluZyBzZXF1ZW5jZSBpczoKK1doZW4gIlNvcnRlZCBieSIgaXMgbmFtZSwgb25lIG1heSBzcGVjaWZ5IHByaW9yaXR5IHZpYSB0aGUgc29ydGluZworc2VxdWVuY2UgKGc6bmV0cndfc29ydF9zZXF1ZW5jZSkuICBUaGUgc29ydGluZyBzZXF1ZW5jZSB0eXBpY2FsbHkKK3ByaW9yaXRpemVzIHRoZSBuYW1lLWxpc3RpbmcgYnkgc3VmZml4LCBhbHRob3VnaCBhbnkgcGF0dGVybiB3aWxsIGRvLgorUGF0dGVybnMgYXJlIGRlbGltaXRlZCBieSBjb21tYXMuICBUaGUgZGVmYXVsdCBzb3J0aW5nIHNlcXVlbmNlIGlzOgogPgogCVtcL10kLCosXC5iYWskLFwubyQsXC5oJCxcLmluZm8kLFwuc3dwJCxcLm9iaiQKIDwKLVRoZSBsb25lICogaXMgd2hlcmUgYWxsIGZpbGVuYW1lcyBub3QgY292ZXJlZCBieSBvbmUgb2YgdGhlIG90aGVyIHBhdHRlcm5zCi13aWxsIGVuZCB1cC4gIE9uZSBtYXkgY2hhbmdlIHRoZSBzb3J0aW5nIHNlcXVlbmNlIGJ5IG1vZGlmeWluZyB0aGUKLWc6bmV0cndfc29ydF9zZXF1ZW5jZSB2YXJpYWJsZSAoZWl0aGVyIG1hbnVhbGx5IG9yIGluIHlvdXIgPC52aW1yYz4pIG9yIGJ5Ci11c2luZyB0aGUgIlMiIG1hcC4KK1RoZSBsb25lICogaXMgd2hlcmUgYWxsIGZpbGVuYW1lcyBub3QgY292ZXJlZCBieSBvbmUgb2YgdGhlIG90aGVyCitwYXR0ZXJucyB3aWxsIGVuZCB1cC4gIE9uZSBtYXkgY2hhbmdlIHRoZSBzb3J0aW5nIHNlcXVlbmNlIGJ5IG1vZGlmeWluZwordGhlIGc6bmV0cndfc29ydF9zZXF1ZW5jZSB2YXJpYWJsZSAoZWl0aGVyIG1hbnVhbGx5IG9yIGluIHlvdXIgPC52aW1yYz4pCitvciBieSB1c2luZyB0aGUgIlMiIG1hcC4KIAogCiBSRVZFUlNJTkcgU09SVElORyBPUkRFUgkJCSpuZXRydy1yKiAqbmV0cnctcmV2ZXJzZSoKQEAgLTEwNTUsMTMgKzEwMTEsMTMgQEAKIAogQlJPV1NJTkcgV0lUSCBBIFZFUlRJQ0FMTFkgU1BMSVQgV0lORE9XCQkJCSpuZXRydy12KgogCi1Ob3JtYWxseSBvbmUgZW50ZXJzIGEgZmlsZSBvciBkaXJlY3RvcnkgdXNpbmcgdGhlIDxjcj4uICBIb3dldmVyLCB0aGUgInYiIG1hcAotYWxsb3dzIG9uZSB0byBvcGVuIGEgbmV3IHdpbmRvdyB0byBob2xkIHRoZSBuZXcgZGlyZWN0b3J5IGxpc3Rpbmcgb3IgZmlsZS4gIEEKLXZlcnRpY2FsIHNwbGl0IGlzIHVzZWQuICAoZm9yIGhvcml6b250YWwgc3BsaXR0aW5nLCBzZWUgfG5ldHJ3LW98KQorTm9ybWFsbHkgb25lIGVudGVycyBhIGZpbGUgb3IgZGlyZWN0b3J5IHVzaW5nIHRoZSA8Y3I+LiAgSG93ZXZlciwgdGhlICJ2IgorbWFwIGFsbG93cyBvbmUgdG8gb3BlbiBhIG5ldyB3aW5kb3cgdG8gaG9sZCB0aGUgbmV3IGRpcmVjdG9yeSBsaXN0aW5nIG9yCitmaWxlLiAgQSB2ZXJ0aWNhbCBzcGxpdCBpcyB1c2VkLiAgKGZvciBob3Jpem9udGFsIHNwbGl0dGluZywgc2VlIHxuZXRydy1vfCkKIAotTm9ybWFsbHksIHRoZSB2IGtleSBzcGxpdHMgdGhlIHdpbmRvdyB2ZXJ0aWNhbGx5IHdpdGggdGhlIG5ldyB3aW5kb3cgYW5kCi1jdXJzb3IgYXQgdGhlIGxlZnQuICBUbyBjaGFuZ2UgdG8gc3BsaXR0aW5nIHRoZSB3aW5kb3cgdmVydGljYWxseSB3aXRoIHRoZSBuZXcKLXdpbmRvdyBhbmQgY3Vyc29yIGF0IHRoZSByaWdodCwgaGF2ZQorTm9ybWFsbHksIHRoZSB2IGtleSBzcGxpdHMgdGhlIHdpbmRvdyB2ZXJ0aWNhbGx5IHdpdGggdGhlIG5ldyB3aW5kb3cKK2FuZCBjdXJzb3IgYXQgdGhlIGxlZnQuICBUbyBjaGFuZ2UgdG8gc3BsaXR0aW5nIHRoZSB3aW5kb3cgdmVydGljYWxseQord2l0aCB0aGUgbmV3IHdpbmRvdyBhbmQgY3Vyc29yIGF0IHRoZSByaWdodCwgaGF2ZQogCiAJbGV0IGc6bmV0cndfYWx0diA9IDEKIApAQCAtMTA3NywyNCArMTAzMywyNCBAQAogICAqIGZvciBXaW5kb3dzIDMyIG9yIDY0LCB0aGUgdXJsIGFuZCBGaWxlUHJvdG9jb2xIYW5kbGVyIGRsbHMgYXJlIHVzZWQuICAKICAgKiBmb3IgS0RFICh3aXRoIGtmbWNsaWVudCk6IGtmbWNsaWVudCBpcyB1c2VkLgogICAqIGZvciBHbm9tZSAod2l0aCBnbm9tZS1vcGVuKTogZ25vbWUtb3BlbiBpcyB1c2VkLgotICAqIG90aGVyd2lzZSB0aGUgbmV0cndGaWxlSGFuZGxlciBwbHVnaW4gaXMgdXNlZC4KKyAgKiBvdGhlcndpc2UgdGhlIE5ldHJ3RmlsZUhhbmRsZXIgcGx1Z2luIGlzIHVzZWQuCiAKIFRoZSBmaWxlJ3Mgc3VmZml4IGlzIHVzZWQgYnkgdGhlc2UgdmFyaW91cyBhcHByb2FjaGVzIHRvIGRldGVybWluZSBhbgotYXBwcm9wcmlhdGUgYXBwbGljYXRpb24gdG8gdXNlIHRvICJoYW5kbGUiIHRoZXNlIGZpbGVzLiAgU3VjaCB0aGluZ3MgYXMKLU9wZW5PZmZpY2UgKCouc2Z4KSwgdmlzdWFsaXphdGlvbiAoKi5qcGcsICouZ2lmLCBldGMpLCBhbmQgUG9zdFNjcmlwdCAoKi5wcywKLSouZXBzKSBjYW4gYmUgaGFuZGxlZC4KK2FwcHJvcHJpYXRlIGFwcGxpY2F0aW9uIHRvIHVzZSB0byAiaGFuZGxlIiB0aGVzZSBmaWxlcy4gIFN1Y2ggdGhpbmdzCithcyBPcGVuT2ZmaWNlICgqLnNmeCksIHZpc3VhbGl6YXRpb24gKCouanBnLCAqLmdpZiwgZXRjKSwgYW5kIFBvc3RTY3JpcHQKKygqLnBzLCAqLmVwcykgY2FuIGJlIGhhbmRsZWQuCiAKLVRoZSBuZXRyd0ZpbGVIYW5kbGVyIGFwcGxpZXMgYSB1c2VyLWRlZmluZWQgZnVuY3Rpb24gdG8gYSBmaWxlLCBiYXNlZCBvbiBpdHMKK1RoZSBOZXRyd0ZpbGVIYW5kbGVyIGFwcGxpZXMgYSB1c2VyLWRlZmluZWQgZnVuY3Rpb24gdG8gYSBmaWxlLCBiYXNlZCBvbiBpdHMKIGV4dGVuc2lvbi4gIE9mIGNvdXJzZSwgdGhlIGhhbmRsZXIgZnVuY3Rpb24gbXVzdCBleGlzdCBmb3IgaXQgdG8gYmUgY2FsbGVkIQogPgogIEV4LiBteXBnbS5odG1sICAgeCAtPgotICAgICAgICAgICAgICAgICAgbmV0cndGaWxlSGFuZGxlcl9odG1sKCJzY3A6Ly91c2VyQGhvc3Qvc29tZS9wYXRoL215cGdtLmh0bWwiKQorICAgICAgICAgICAgICAgICAgTmV0cndGaWxlSGFuZGxlcl9odG1sKCJzY3A6Ly91c2VyQGhvc3Qvc29tZS9wYXRoL215cGdtLmh0bWwiKQogPAotU2VlIHRoZSA8cGx1Z2luL25ldHJ3RmlsZUhhbmRsZXJzLnZpbT4gZm9yIGFuIGV4YW1wbGUgb2YgaG93IHRvIGhhbmRsZSBhbiBodG1sCitTZWUgdGhlIDxwbHVnaW4vTmV0cndGaWxlSGFuZGxlcnMudmltPiBmb3IgYW4gZXhhbXBsZSBvZiBob3cgdG8gaGFuZGxlIGFuIGh0bWwKIGZpbGUgd2l0aCBtb3ppbGxhLgogCi1PbmUgbWF5IHdyaXRlIGN1c3RvbSBuZXRyd0ZpbGVIYW5kbGVyczsgcGxlYXNlIGxvb2sgYXQgdGhlCi1wbHVnaW4vbmV0cndGaWxlSGFuZGxlcnMudmltIHNjcmlwdCBmb3IgZXhhbXBsZXMuICBJZiBpdHMgbGlrZWx5IHRvIGJlCitPbmUgbWF5IHdyaXRlIGN1c3RvbSBOZXRyd0ZpbGVIYW5kbGVyczsgcGxlYXNlIGxvb2sgYXQgdGhlCitwbHVnaW4vTmV0cndGaWxlSGFuZGxlcnMudmltIHNjcmlwdCBmb3IgZXhhbXBsZXMuICBJZiBpdHMgbGlrZWx5IHRvIGJlCiBnZW5lcmFsbHkgdXNlZnVsLCBwbGVhc2UgZmVlbCBmcmVlIHRvIGZvcndhcmQgYSBjb3B5IHRvIG1lIGZvciBmdXR1cmUKIGluY2x1c2lvbiBpbiB0aGUgZGlzdHJpYnV0aW9uLgogCkBAIC0xMTA3LDggKzEwNjMsOCBAQAogY3VycmVudGx5IGJyb3dzZWQgZGlyZWN0b3J5IGJlIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KIAogV2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5nIGZvciBnOm5ldHJ3X2tlZXBkaXIsIGluIG9yZGVyIHRvIG1ha2UgdGhlIHR3bwotZGlyZWN0b3JpZXMgdGhlIHNhbWUsIHVzZSB0aGUgImMiIG1hcCAoanVzdCB0eXBlIGMpLiAgVGhhdCBtYXAgd2lsbCBzZXQgdGhlCi1jdXJyZW50IGRpcmVjdG9yeSB0byB0aGUgY3VycmVudCBicm93c2luZyBkaXJlY3RvcnkuCitkaXJlY3RvcmllcyB0aGUgc2FtZSwgdXNlIHRoZSAiYyIgbWFwIChqdXN0IHR5cGUgYykuICBUaGF0IG1hcCB3aWxsIHNldAordGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRvIHRoZSBjdXJyZW50IGJyb3dzaW5nIGRpcmVjdG9yeS4KIAogCiBCT09LTUFSS0lORyBBIERJUkVDVE9SWQkJKm5ldHJ3LWIqICpuZXRydy1ib29rbWFyayogKm5ldHJ3LWJvb2ttYXJrcyoKQEAgLTExMzEsOCArMTA4Nyw4IEBACiAKIAl7Y250fUIKIAotQW55IGNvdW50IG1heSBiZSB1c2VkIHRvIHJlZmVyZW5jZSBhbnkgb2YgdGhlIGJvb2ttYXJrcy4gIFNlZSB8bmV0cnctYnwgb24KLWhvdyB0byBib29rbWFyayBhIGRpcmVjdG9yeSBhbmQgfG5ldHJ3LXF8IG9uIGhvdyB0byBsaXN0IGJvb2ttYXJrcy4KK0FueSBjb3VudCBtYXkgYmUgdXNlZCB0byByZWZlcmVuY2UgYW55IG9mIHRoZSBib29rbWFya3MuICBTZWUgfG5ldHJ3LWJ8Citmb3IgaG93IHRvIGJvb2ttYXJrIGEgZGlyZWN0b3J5IGFuZCB8bmV0cnctcXwgZm9yIGhvdyB0byBsaXN0IHRoZW0uCiAKIFdoZW4gd2lkZSBsaXN0aW5nIGlzIGluIHVzZSAoc2VlIHxuZXRydy1pfCksIHRoZW4gdGhlIEIgbWFwIGlzIG5vdCBhdmFpbGFibGU7CiBpbnN0ZWFkLCB1c2Uge2NudH1OQi4KQEAgLTExNjIsOSArMTExOCw5IEBACiBXaXRoIHRoZSBOZXRyd1NldHRpbmdzLnZpbSBwbHVnaW4sID4KIAk6TmV0cndTZXR0aW5ncwogd2lsbCBicmluZyB1cCBhIHdpbmRvdyB3aXRoIHRoZSBtYW55IHZhcmlhYmxlcyB0aGF0IG5ldHJ3IHVzZXMgZm9yIGl0cwotc2V0dGluZ3MuICBZb3UgbWF5IGNoYW5nZSBhbnkgb2YgdGhlaXIgdmFsdWVzOyB3aGVuIHlvdSBzYXZlIHRoZSBmaWxlLCB0aGUKLXNldHRpbmdzIHRoZXJlaW4gd2lsbCBiZSB1c2VkLiAgT25lIG1heSBhbHNvIHByZXNzICI/IiBvbiBhbnkgb2YgdGhlIGxpbmVzIGZvcgotaGVscCBvbiB3aGF0IGVhY2ggb2YgdGhlIHZhcmlhYmxlcyBkby4KK3NldHRpbmdzLiAgWW91IG1heSBjaGFuZ2UgYW55IG9mIHRoZWlyIHZhbHVlczsgd2hlbiB5b3Ugc2F2ZSB0aGUgZmlsZSwKK3RoZSBzZXR0aW5ncyB0aGVyZWluIHdpbGwgYmUgdXNlZC4gIE9uZSBtYXkgYWxzbyBwcmVzcyAiPyIgb24gYW55IG9mCit0aGUgbGluZXMgZm9yIGhlbHAgb24gd2hhdCBlYWNoIG9mIHRoZSB2YXJpYWJsZXMgZG8uCiAKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xMjg0LDMzICsxMjQwLDYgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogMTAuIEhpc3RvcnkJCQkJCQkqbmV0cnctaGlzdG9yeSoKIAotCXY3MzogKiBidWdmaXggLS0gc2NwOi8vaG9zdC9wYXRoL2ZpbGUgd2FzIGdldHRpbmcgbmFtZWQgaW5jb3JyZWN0bHkKLQkgICAgICogbmV0cncgZGV0ZWN0cyB1c2Ugb2YgZWFybGllci10aGFuLTcuMCB2ZXJzaW9uIG9mIHZpbSBhbmQgaXNzdWVzCi0JICAgICAgIGEgcGVydGluZW50IGVycm9yIG1lc3NhZ2UuCi0JICAgICAqIG5ldHJ3U2V0dGluZ3MudmltIGlzIG5vdyB1c2VzIGF1dG9sb2FkaW5nLiAgT25seQotCSAgICAgICA8bmV0cndQbHVnaW4udmltPiBpcyBuZWVkZWQgYXMgYSBwdXJlIHBsdWdpbgotCSAgICAgICAoaWUuIGFsd2F5cyBsb2FkZWQpLgotCXY3MjogKiBidWdmaXggLS0gZm9ybWVybHksIG9uZSBjb3VsZCBwcmV2ZW50IHRoZSBsb2FkaW5nIG9mIG5ldHJ3Ci0JICAgICAgIGJ5ICJsZXQgZzpsb2FkZWRfbmV0cnc9MSI7IHdoZW4gYXV0b2xvYWRpbmcgYmVjYW1lIHN1cHBvcnRlZCwKLQkgICAgICAgdGhpcyBmZWF0dXJlIHdhcyBsb3N0LiAgSXQgaXMgbm93IHJlc3RvcmVkLgotCXY3MTogKiBidWdmaXggLS0gbWFkZSBzb21lICJzZXQgbm9tb2RpZmlhYmxlInMgaW50byBzZXRsb2NhbCB2YXJpYW50cwotCSAgICAgICAoYWxsb3dzIDplIHNvbWVuZXdmaWxlICB0byBiZSBtb2RpZmlhYmxlIGFzIHVzdWFsKQotCSAgICAgKiBOZXRyd1NldHRpbmdzIGNhbGxzIGEgbmV0cncgZnVuY3Rpb24sIHRoZXJlYnkgYXNzdXJpbmcgdGhhdAotCSAgICAgICBuZXRydyBoYXMgbG9hZGVkLiAgSG93ZXZlciwgaWYgbmV0cncgZG9lcyBub3QgbG9hZCBmb3Igd2hhdGV2ZXIKLQkgICAgICAgcmVhc29uLCB0aGVuIE5ldHJ3U2V0dGluZ3Mgd2lsbCBub3cgaXNzdWUgYSB3YXJuaW5nIG1lc3NhZ2UuCi0JICAgICAqIEZvciB3aGF0IHJlYXNvbiBJIGRvbid0IHJlY2FsbCwgd2hlbiB3Z2V0IGFuZCBmZXRjaCBhcmUgYm90aAotCSAgICAgICBub3QgcHJlc2VudCwgYW5kIGFuIGF0dGVtcHQgdG8gcmVhZCBhIGh0dHA6Ly8uLi4gdXJsIGlzIG1hZGUsCi0JICAgICAgIG5ldHJ3IGV4aXRlZC4gIEl0IG5vdyBvbmx5IHJldHVybnMuCi0JICAgICAqIFdoZW4gY2g9MSwgb24gdGhlIHNlY29uZCBhbmQgc3Vic2VxdWVudCB1c2VzIG9mIGJyb3dzaW5nIE5ldHJ3Ci0JICAgICAgIHdvdWxkIGlzc3VlIGEgYmxhbmsgbGluZSB0byBjbGVhciB0aGUgZWNobydkIG1lc3NhZ2VzLiAgVGhpcwotCSAgICAgICBjYXVzZWQgYW4gYW5ub3lpbmcgIkhpdC1FbnRlciIgcHJvbXB0OyBub3cgYSBibGFuayBsaW5lIG1lc3NhZ2UKLQkgICAgICAgaXMgZWNobydkIG9ubHkgaWYgJmNoPjEuCi0JdjcwOiAqIHdoZW4gdXNpbmcgfG5ldHJ3LU98LCB0aGUgIk9idGFpbmluZyBmaWxlbmFtZSIgbWVzc2FnZSBpcyBub3cKLQkgICAgICAgc2hvd24gdXNpbmcgfGhsLVVzZXI5fC4gIElmIFVzZXI5IGhhcyBub3QgYmVlbiBkZWZpbmVkLCBuZXRydwotCSAgICAgICB3aWxsIGRlZmluZSBpdC4KLQl2Njk6ICogQnVnZml4OiB3aW45NS85OCBtYWNoaW5lcyB3ZXJlIGV4cGVyaWVuY2luZyBhCi0JICAgICAgICJFMTIxOiBVbmRlZmluZWQgdmFyaWFibGU6IGc6bmV0cndfd2luOTVmdHAiIG1lc3NhZ2UKLQl2Njg6ICogZG91YmxlLWNsaWNrLWxlZnRtb3VzZSBzZWxlY3RzIHdvcmQgdW5kZXIgbW91c2UKIAl2Njc6ICogUGFzc3dvcmRzIHdoaWNoIGNvbnRhaW4gYmxhbmtzIHdpbGwgbm93IGJlIHN1cnJvdW5kZWQgYnkKIAkgICAgICAgZG91YmxlLXF1b3RlcyBhdXRvbWF0aWNhbGx5IChZb25nd2VpKQogCXY2NjogKiBOZXRydyBub3cgc2VlbXMgdG8gd29yayB3aXRoIGEgZmV3IG1vcmUgV2luZG93cyBzaXR1YXRpb25zCkBAIC0xNDI2LDcgKzEzNTUsNyBAQAogCSAgICAgKiBzcGVjaWFsIGZpbGUgdmlld2luZyB3aXRoOgogCSAgICAgICAod2luZG93cykgcnVuZGxsMzIgdXJsLmRsbCAoZ25vbWUpICAgZ25vbWUtb3BlbiAoa2RlKQogCSAgICAgICBrZm1jbGllbnQgSWYgbm9uZSBvZiB0aGVzZSBhcmUgb24gdGhlIGV4ZWN1dGFibGUgcGF0aCwgdGhlbgotCSAgICAgICBuZXRyd0ZpbGVIYW5kbGVycy52aW0gaXMgdXNlZC4KKwkgICAgICAgTmV0cndGaWxlSGFuZGxlcnMudmltIGlzIHVzZWQuCiAJICAgICAqIGRpcmVjdG9yeSBib29rbWFya2luZyBkdXJpbmcgYm90aCBsb2NhbCBhbmQgcmVtb3RlIGJyb3dzaW5nCiAJICAgICAgIGltcGxlbWVudGVkCiAJICAgICAqIG9uZSBtYXkgdmlldyBhbGwsIHVzZSB0aGUgaGlkaW5nIGxpc3QgdG8gc3VwcHJlc3MsIG9yIHVzZSB0aGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IDM1ZjAwYzMuLjJmYjk3YmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtMTA2Miw2ICsxMDYyLDcgQEAKICtnZXR0ZXh0CXZhcmlvdXMudHh0CS8qK2dldHRleHQqCiAraGFuZ3VsX2lucHV0CXZhcmlvdXMudHh0CS8qK2hhbmd1bF9pbnB1dCoKICtpY29udgl2YXJpb3VzLnR4dAkvKitpY29udioKKytpY29udi9keW4JdmFyaW91cy50eHQJLyoraWNvbnZcL2R5bioKICtpbnNlcnRfZXhwYW5kCXZhcmlvdXMudHh0CS8qK2luc2VydF9leHBhbmQqCiAranVtcGxpc3QJdmFyaW91cy50eHQJLyoranVtcGxpc3QqCiAra2V5bWFwCXZhcmlvdXMudHh0CS8qK2tleW1hcCoKQEAgLTEwOTAsMTMgKzEwOTEsMTYgQEAKICtvc2ZpbGV0eXBlCXZhcmlvdXMudHh0CS8qK29zZmlsZXR5cGUqCiArcGF0aF9leHRyYQl2YXJpb3VzLnR4dAkvKitwYXRoX2V4dHJhKgogK3BlcmwJdmFyaW91cy50eHQJLyorcGVybCoKKytwZXJsL2R5bgl2YXJpb3VzLnR4dAkvKitwZXJsXC9keW4qCiArcG9zdHNjcmlwdAl2YXJpb3VzLnR4dAkvKitwb3N0c2NyaXB0KgogK3ByaW50ZXIJdmFyaW91cy50eHQJLyorcHJpbnRlcioKICtwcm9maWxlCXZhcmlvdXMudHh0CS8qK3Byb2ZpbGUqCiArcHl0aG9uCXZhcmlvdXMudHh0CS8qK3B5dGhvbioKKytweXRob24vZHluCXZhcmlvdXMudHh0CS8qK3B5dGhvblwvZHluKgogK3F1aWNrZml4CXZhcmlvdXMudHh0CS8qK3F1aWNrZml4KgogK3JpZ2h0bGVmdAl2YXJpb3VzLnR4dAkvKityaWdodGxlZnQqCiArcnVieQl2YXJpb3VzLnR4dAkvKitydWJ5KgorK3J1YnkvZHluCXZhcmlvdXMudHh0CS8qK3J1YnlcL2R5bioKICtzY3JvbGxiaW5kCXZhcmlvdXMudHh0CS8qK3Njcm9sbGJpbmQqCiArc2lnbnMJdmFyaW91cy50eHQJLyorc2lnbnMqCiArc21hcnRpbmRlbnQJdmFyaW91cy50eHQJLyorc21hcnRpbmRlbnQqCkBAIC0xMTA5LDYgKzExMTMsNyBAQAogK3RhZ19iaW5hcnkJdmFyaW91cy50eHQJLyordGFnX2JpbmFyeSoKICt0YWdfb2xkX3N0YXRpYwl2YXJpb3VzLnR4dAkvKit0YWdfb2xkX3N0YXRpYyoKICt0Y2wJdmFyaW91cy50eHQJLyordGNsKgorK3RjbC9keW4JdmFyaW91cy50eHQJLyordGNsXC9keW4qCiArdGVybWluZm8JdmFyaW91cy50eHQJLyordGVybWluZm8qCiArdGVybXJlc3BvbnNlCXZhcmlvdXMudHh0CS8qK3Rlcm1yZXNwb25zZSoKICt0ZXh0b2JqZWN0cwl2YXJpb3VzLnR4dAkvKit0ZXh0b2JqZWN0cyoKQEAgLTE2NjMsNiArMTY2OCw4IEBACiA6VE9odG1sCXN5bnRheC50eHQJLyo6VE9odG1sKgogOlZleHBsb3JlCXBpX25ldHJ3LnR4dAkvKjpWZXhwbG9yZSoKIDpYCWVkaXRpbmcudHh0CS8qOlgqCis6WE1MZW50CWluc2VydC50eHQJLyo6WE1MZW50KgorOlhNTG5zCWluc2VydC50eHQJLyo6WE1MbnMqCiA6XGJhcgljbWRsaW5lLnR4dAkvKjpcXGJhcioKIDpfIQljbWRsaW5lLnR4dAkvKjpfISoKIDpfIwljbWRsaW5lLnR4dAkvKjpfIyoKQEAgLTE4MzksNiArMTg0Niw3IEBACiA6Y29tbWFuZAltYXAudHh0CS8qOmNvbW1hbmQqCiA6Y29tbWFuZC1jb21wbGV0aW9uCW1hcC50eHQJLyo6Y29tbWFuZC1jb21wbGV0aW9uKgogOmNvbW1hbmQtY29tcGxldGlvbi1jdXN0b20JbWFwLnR4dAkvKjpjb21tYW5kLWNvbXBsZXRpb24tY3VzdG9tKgorOmNvbW1hbmQtY29tcGxldGlvbi1jdXN0b21saXN0CW1hcC50eHQJLyo6Y29tbWFuZC1jb21wbGV0aW9uLWN1c3RvbWxpc3QqCiA6Y29tbWFuZC12ZXJib3NlCW1hcC50eHQJLyo6Y29tbWFuZC12ZXJib3NlKgogOmNvbW1lbnQJZXZhbC50eHQJLyo6Y29tbWVudCoKIDpjb21wCXF1aWNrZml4LnR4dAkvKjpjb21wKgpAQCAtNTAwNyw2ICs1MDE1LDcgQEAKIGZ0LWtzaC1zeW50YXgJc3ludGF4LnR4dAkvKmZ0LWtzaC1zeW50YXgqCiBmdC1sYWNlLXN5bnRheAlzeW50YXgudHh0CS8qZnQtbGFjZS1zeW50YXgqCiBmdC1sZXgtc3ludGF4CXN5bnRheC50eHQJLypmdC1sZXgtc3ludGF4KgorZnQtbGlzcC1zeW50YXgJc3ludGF4LnR4dAkvKmZ0LWxpc3Atc3ludGF4KgogZnQtbGl0ZS1zeW50YXgJc3ludGF4LnR4dAkvKmZ0LWxpdGUtc3ludGF4KgogZnQtbHBjLXN5bnRheAlzeW50YXgudHh0CS8qZnQtbHBjLXN5bnRheCoKIGZ0LWx1YS1zeW50YXgJc3ludGF4LnR4dAkvKmZ0LWx1YS1zeW50YXgqCkBAIC01MDU5LDYgKzUwNjgsOCBAQAogZnQtdmltLWluZGVudAlpbmRlbnQudHh0CS8qZnQtdmltLWluZGVudCoKIGZ0LXZpbS1zeW50YXgJc3ludGF4LnR4dAkvKmZ0LXZpbS1zeW50YXgqCiBmdC14Zjg2Y29uZi1zeW50YXgJc3ludGF4LnR4dAkvKmZ0LXhmODZjb25mLXN5bnRheCoKK2Z0LXhodG1sLW9tbmkJaW5zZXJ0LnR4dAkvKmZ0LXhodG1sLW9tbmkqCitmdC14bWwtb21uaQlpbnNlcnQudHh0CS8qZnQteG1sLW9tbmkqCiBmdC14bWwtc3ludGF4CXN5bnRheC50eHQJLypmdC14bWwtc3ludGF4KgogZnQteHBtLXN5bnRheAlzeW50YXgudHh0CS8qZnQteHBtLXN5bnRheCoKIGZ0ZGV0ZWN0CWZpbGV0eXBlLnR4dAkvKmZ0ZGV0ZWN0KgpAQCAtNTMwMiw2ICs1MzEzLDcgQEAKIGhlYnJldy50eHQJaGVicmV3LnR4dAkvKmhlYnJldy50eHQqCiBoZWxwCXZhcmlvdXMudHh0CS8qaGVscCoKIGhlbHAtY29udGV4dAloZWxwLnR4dAkvKmhlbHAtY29udGV4dCoKK2hlbHAtdGFncwl0YWdzCTEKIGhlbHAtdHJhbnNsYXRlZAl2YXJpb3VzLnR4dAkvKmhlbHAtdHJhbnNsYXRlZCoKIGhlbHAteHRlcm0td2luZG93CXZhcmlvdXMudHh0CS8qaGVscC14dGVybS13aW5kb3cqCiBoZWxwLnR4dAloZWxwLnR4dAkvKmhlbHAudHh0KgpAQCAtNTUxMyw2ICs1NTI1LDcgQEAKIGljb25pc2UJc3RhcnRpbmcudHh0CS8qaWNvbmlzZSoKIGljb25pemUJc3RhcnRpbmcudHh0CS8qaWNvbml6ZSoKIGljb252KCkJZXZhbC50eHQJLyppY29udigpKgoraWNvbnYtZHluYW1pYwltYnl0ZS50eHQJLyppY29udi1keW5hbWljKgogaWRlbnQtc2VhcmNoCXRpcHMudHh0CS8qaWRlbnQtc2VhcmNoKgogaWZfY3Njb3AudHh0CWlmX2NzY29wLnR4dAkvKmlmX2NzY29wLnR4dCoKIGlmX216c2NoLnR4dAlpZl9tenNjaC50eHQJLyppZl9tenNjaC50eHQqCkBAIC01NjU4LDYgKzU2NzEsNyBAQAogbGluZXdpc2UJbW90aW9uLnR4dAkvKmxpbmV3aXNlKgogbGluZXdpc2UtcmVnaXN0ZXIJY2hhbmdlLnR4dAkvKmxpbmV3aXNlLXJlZ2lzdGVyKgogbGluZXdpc2UtdmlzdWFsCXZpc3VhbC50eHQJLypsaW5ld2lzZS12aXN1YWwqCitsaXNwLnZpbQlzeW50YXgudHh0CS8qbGlzcC52aW0qCiBsaXNwaW5kZW50KCkJZXZhbC50eHQJLypsaXNwaW5kZW50KCkqCiBsaXN0LWlkZW50aXR5CWV2YWwudHh0CS8qbGlzdC1pZGVudGl0eSoKIGxpc3QtaW5kZXgJZXZhbC50eHQJLypsaXN0LWluZGV4KgpAQCAtNjExMSw2ICs2MTI1LDcgQEAKIHBlcmwtU2V0T3B0aW9uCWlmX3BlcmwudHh0CS8qcGVybC1TZXRPcHRpb24qCiBwZXJsLVdpbmRvd3MJaWZfcGVybC50eHQJLypwZXJsLVdpbmRvd3MqCiBwZXJsLWNvbXBpbGluZwlpZl9wZXJsLnR4dAkvKnBlcmwtY29tcGlsaW5nKgorcGVybC1keW5hbWljCWlmX3BlcmwudHh0CS8qcGVybC1keW5hbWljKgogcGVybC1lZGl0aW5nCWlmX3BlcmwudHh0CS8qcGVybC1lZGl0aW5nKgogcGVybC1vdmVydmlldwlpZl9wZXJsLnR4dAkvKnBlcmwtb3ZlcnZpZXcqCiBwZXJsLXBhdHRlcm5zCXBhdHRlcm4udHh0CS8qcGVybC1wYXR0ZXJucyoKQEAgLTYxNzQsNiArNjE4OSw3IEBACiBweXRob24tY29tbWFuZAlpZl9weXRoLnR4dAkvKnB5dGhvbi1jb21tYW5kKgogcHl0aG9uLWNvbW1hbmRzCWlmX3B5dGgudHh0CS8qcHl0aG9uLWNvbW1hbmRzKgogcHl0aG9uLWN1cnJlbnQJaWZfcHl0aC50eHQJLypweXRob24tY3VycmVudCoKK3B5dGhvbi1keW5hbWljCWlmX3B5dGgudHh0CS8qcHl0aG9uLWR5bmFtaWMqCiBweXRob24tZXJyb3IJaWZfcHl0aC50eHQJLypweXRob24tZXJyb3IqCiBweXRob24tZXZhbAlpZl9weXRoLnR4dAkvKnB5dGhvbi1ldmFsKgogcHl0aG9uLWV4YW1wbGVzCWlmX3B5dGgudHh0CS8qcHl0aG9uLWV4YW1wbGVzKgpAQCAtNjMxMCw2ICs2MzI2LDcgQEAKIHJ1YnktYnVmZmVyCWlmX3J1YnkudHh0CS8qcnVieS1idWZmZXIqCiBydWJ5LWNvbW1hbmQJaWZfcnVieS50eHQJLypydWJ5LWNvbW1hbmQqCiBydWJ5LWNvbW1hbmRzCWlmX3J1YnkudHh0CS8qcnVieS1jb21tYW5kcyoKK3J1YnktZHluYW1pYwlpZl9ydWJ5LnR4dAkvKnJ1YnktZHluYW1pYyoKIHJ1YnktZXZhbHVhdGUJaWZfcnVieS50eHQJLypydWJ5LWV2YWx1YXRlKgogcnVieS1nbG9iYWxzCWlmX3J1YnkudHh0CS8qcnVieS1nbG9iYWxzKgogcnVieS1tZXNzYWdlCWlmX3J1YnkudHh0CS8qcnVieS1tZXNzYWdlKgpAQCAtNjc3NCw2ICs2NzkxLDcgQEAKIHRjbC1idWdzCWlmX3RjbC50eHQJLyp0Y2wtYnVncyoKIHRjbC1jb21tYW5kCWlmX3RjbC50eHQJLyp0Y2wtY29tbWFuZCoKIHRjbC1jb21tYW5kcwlpZl90Y2wudHh0CS8qdGNsLWNvbW1hbmRzKgordGNsLWR5bmFtaWMJaWZfdGNsLnR4dAkvKnRjbC1keW5hbWljKgogdGNsLWV4LWNvbW1hbmRzCWlmX3RjbC50eHQJLyp0Y2wtZXgtY29tbWFuZHMqCiB0Y2wtZXhhbXBsZXMJaWZfdGNsLnR4dAkvKnRjbC1leGFtcGxlcyoKIHRjbC1leHByCWlmX3RjbC50eHQJLyp0Y2wtZXhwcioKQEAgLTcyNjYsNiArNzI4NCw3IEBACiB4aW0taW5wdXQtc3R5bGUJbWJ5dGUudHh0CS8qeGltLWlucHV0LXN0eWxlKgogeGl0ZXJtCXN5bnRheC50eHQJLyp4aXRlcm0qCiB4bWwtZm9sZGluZwlzeW50YXgudHh0CS8qeG1sLWZvbGRpbmcqCit4bWwtb21uaS1kYXRhZmlsZQlpbnNlcnQudHh0CS8qeG1sLW9tbmktZGF0YWZpbGUqCiB4bWwudmltCXN5bnRheC50eHQJLyp4bWwudmltKgogeHBtLnZpbQlzeW50YXgudHh0CS8qeHBtLnZpbSoKIHh0ZXJtLTgtYml0CXRlcm0udHh0CS8qeHRlcm0tOC1iaXQqCkBAIC03MzM3LDEzICs3MzU2LDYgQEAKIHpnCXNwZWxsLnR4dAkvKnpnKgogemgJc2Nyb2xsLnR4dAkvKnpoKgogemkJZm9sZC50eHQJLyp6aSoKLXppcAl6aXAudHh0CS8qemlwKgotemlwLWNvbnRlbnRzCXppcC50eHQJLyp6aXAtY29udGVudHMqCi16aXAtY29weXJpZ2h0CXppcC50eHQJLyp6aXAtY29weXJpZ2h0KgotemlwLWhpc3RvcnkJemlwLnR4dAkvKnppcC1oaXN0b3J5KgotemlwLW1hbnVhbAl6aXAudHh0CS8qemlwLW1hbnVhbCoKLXppcC11c2FnZQl6aXAudHh0CS8qemlwLXVzYWdlKgotemlwLnR4dAl6aXAudHh0CS8qemlwLnR4dCoKIHpqCWZvbGQudHh0CS8qemoqCiB6awlmb2xkLnR4dAkvKnprKgogemwJc2Nyb2xsLnR4dAkvKnpsKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFnc3JjaC50eHQgYi9ydW50aW1lL2RvYy90YWdzcmNoLnR4dAppbmRleCBmYmVjYWEyLi41MjJlYjJhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWdzcmNoLnR4dAorKysgYi9ydW50aW1lL2RvYy90YWdzcmNoLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0YWdzcmNoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBKdWwgMTIKKyp0YWdzcmNoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBPY3QgMTUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQ0MCw3ICs0NDAsNyBAQAogd2lsbCBiZSBzZWFyY2hlZCBmb3IgdGhlIHRhZy4KIAogVGhpcyBjYW4gYmUgc3dpdGNoZWQgb2ZmIGJ5IGluY2x1ZGluZyB0aGUgJ2QnIGZsYWcgaW4gJ2Nwb3B0aW9ucycsIHRvIG1ha2UKLWl0IFZpIGNvbXBhdGlibGUuICAiLi90YWdzIiB3aWxsIHRoYW4gYmUgdGhlIHRhZ3MgZmlsZSBpbiB0aGUgY3VycmVudAoraXQgVmkgY29tcGF0aWJsZS4gICIuL3RhZ3MiIHdpbGwgdGhlbiBiZSB0aGUgdGFncyBmaWxlIGluIHRoZSBjdXJyZW50CiBkaXJlY3RvcnksIGluc3RlYWQgb2YgdGhlIHRhZ3MgZmlsZSBpbiB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBjdXJyZW50IGZpbGUKIGlzLgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YXIudHh0IGIvcnVudGltZS9kb2MvdGFyLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDMxNDBkCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvdGFyLnR4dApAQCAtMCwwICsxLDM3IEBACisqdGFyLnR4dCoJVGFyIEZpbGUgSW50ZXJmYWNlCQkJCU5vdiAwMywgMjAwNQorCitBdXRob3I6ICBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4gIDxOZHJPY2hpcEBTY2FtcGJlbGxQZmFtaWx5LkFiaXpNPgorCSAgKHJlbW92ZSBOT1NQQU0gZnJvbSBDYW1wYmVsbCdzIGVtYWlsIGZpcnN0KQorQ29weXJpZ2h0OiBUaGUgR1BMIChnbnUgcHVibGljIGxpY2Vuc2UpIGFwcGxpZXMgdG8JKnRhci1jb3B5cmlnaHQqCisJICAgdGFyUGx1Z2luLnZpbSwgYW5kIHRhci50eHQuCisJICAgTm8gd2FycmFudHksIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFVzZSBBdC1Zb3VyLU93bi1SaXNrLgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzEuIENvbnRlbnRzCQkJCQkqdGFyKiAqdGFyLWNvbnRlbnRzKgorICAgMS4gQ29udGVudHMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnx0YXItY29udGVudHN8CisgICAyLiBVc2FnZS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufHRhci11c2FnZXwKKyAgIDMuIEhpc3RvcnkuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi58dGFyLWhpc3Rvcnl8CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorMi4gVXNhZ2UJCQkJCSp0YXItdXNhZ2UqICp0YXItbWFudWFsKgorCisgICBXaGVuIG9uZSBlZGl0cyBhICoudGFyIGZpbGUsIHRoaXMgcGx1Z2luIHdpbGwgaGFuZGxlIGRpc3BsYXlpbmcgYQorICAgY29udGVudHMgcGFnZS4gIFNlbGVjdCBhIGZpbGUgdG8gZWRpdCBieSBtb3ZpbmcgdGhlIGN1cnNvciBhdG9wCisgICB0aGUgZGVzaXJlZCBmaWxlLCB0aGVuIGhpdCB0aGUgPHJldHVybj4ga2V5LiAgQWZ0ZXIgZWRpdGluZywgb25lIG1heQorICAgYWxzbyB3cml0ZSB0byB0aGUgZmlsZS4gIEN1cnJlbnRseSwgb25lIG1heSBub3QgbWFrZSBhIG5ldyBmaWxlIGluCisgICB0YXIgYXJjaGl2ZXMgdmlhIHRoZSBwbHVnaW4uCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorMy4gSGlzdG9yeQkJCQkJCSp0YXItaGlzdG9yeSoKKyAgIHYzIFNlcCAxNiwgMjAwNSAgICAgICAqIGhhbmRsZXMgd3JpdGluZyBmaWxlcyBpbiBhbiBhcmNoaXZlIGJhY2sgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNoaXZlCisgICAgICBPY3QgMTgsIDIwMDUgICAgICAgKiA8YW1hdGNoPiB1c2VkIGluc3RlYWQgb2YgPGFmaWxlPiBpbiBhdXRvY21kcworICAgICAgT2N0IDE4LCAyMDA1ICAgICAgICogaGFuZGxlcyB3cml0aW5nIHRvIGNvbXByZXNzZWQgYXJjaGl2ZXMKKyAgICAgIE5vdiAwMywgMjAwNSAgICAgICAqIGhhbmRsZXMgd3JpdGluZyB0YXJmaWxlcyBhY3Jvc3MgYSBuZXR3b3JrIHVzaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRydyNOZXRXcml0ZSgpCisgICB2MiAgICAgICAgICAgICAgICAgICAgKiBjb252ZXJ0ZWQgdG8gdXNlIFZpbTcncyBuZXcgYXV0b2xvYWQgZmVhdHVyZSBieQorICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJhbSBNb29sZW5hYXIKKyAgIHYxIChvcmlnaW5hbCByZWxlYXNlKSAqIE1pY2hhZWwgVG9yZW4gKHNlZSBodHRwOi8vbWljaGFlbC50b3Jlbi5uZXQvY29kZS8pCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQordmltOnR3PTc4OnRzPTg6ZnQ9aGVscApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdG9kby50eHQgYi9ydW50aW1lL2RvYy90b2RvLnR4dAppbmRleCBlODU2YTU2Li4xNDA5N2E5IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90b2RvLnR4dAorKysgYi9ydW50aW1lL2RvYy90b2RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBPY3QgMTIKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBOb3YgMjMKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsMTggKzMwLDY2IEBACiAJCQkJCQkJKmtub3duLWJ1Z3MqCiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBLbm93biBidWdzIGFuZCBjdXJyZW50IHdvcmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorVXNpbmcgY2hvd24oKSBpcyB1bnNhZmUuIChKaW5wZW5nIFdlaSkKKyAgICBleF9jbWRzLmM6IHZpbWluZm8gdGVtcGZpbGU6IHVzZSBtY2hfb3BlbihPX0VYQ0wpIGFuZCBmZG9wZW4oKQorICAgIGZpbGVpby5jOiB1c2UgZmNob3duKCkgaW5zdGVhZCBvZiBjaG93bigpCisgICAgdmltLmg6IGRlZmluZSBPX05PRk9MTE9XIGlmIG5lZWRlZC4gIE5vdCBpbiBWaW0gNi40PworCitHbyBvdmVyIGFsbCBjaGFuZ2VzIGJldHdlZW4gNi4zIGFuZCA2LjQgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBpbmNsdWRlZCBpbiA3LgorCisnc3RhdHVzbGluZScgaXMgZHJhd24gb3ZlciB0aGUgT21uaSBtZW51LgorCitDeWd3aW4gYW5kIE1hYyBPUy9YIG1heSBwcmVzZXJ2ZSBjYXNlIGZvciBmaWxlIG5hbWVzIGJ1dCBpZ25vcmUgY2FzZQorZGlmZmVyZW5jZXMuICBVc2UgQW1pZ2EgY29kZT8KKworIm1ha2UgdW5peGFsbCI6IHJlbW92ZSBzcGxpdCBpbiBmbG9wcHktc2l6ZSBhcmNoaXZlcy4KKworVG8gc3VwcG9ydCBtYXBwaW5nIDxGND4gdG8gYmUgdXNlZCBhcyA8RjQ+e21vdGlvbn06IEFkZCBvcGVyYXRvciB0aGF0CitleGVjdXRlcyBhIHVzZXIgZGVmaW5lZCBmdW5jdGlvbi4gJ1sgYW5kICddIG1hcmtzIGFyZSBhdCBzdGFydCBhbmQgZW5kIG9mCit0ZXh0LiAgIjptYXAgPEY0PiA6c2V0IG9wZnVuYz1NeU9wPENSPmd5Ii4KKworUGF0Y2ggZnJvbSBZYXN1aGlybyBNYXRzdW1vdG86ICI6ZSArK2VuYz14eHgiIGtlZXBzIGVuY29kaW5nIGZvciBjb252ZXJzaW9uCitlcnJvcnMgYW5kIGlsbGVnYWwgYnl0ZXMuICBIb3cgYWJvdXQgcmVwbGFjaW5nIGJ5dGVzIHdpdGggJz8nIG9yIG5vdD8KKwogY2NvbXBsZXRlOgogLSBXaGVuIGFuIG9wdGlvbiBpcyBzZXQ6IEluIGNvbXBsZXRpb24gbW9kZSBhbmQgdGhlIHVzZXIgdHlwZXMgKGlkZW50aWZpZXIpCiAgIGNoYXJhY3RlcnMsIGFkdmFuY2UgdG8gdGhlIGZpcnN0IG1hdGNoIGluc3RlYWQgb2YgcmVtb3ZpbmcgdGhlIHBvcHVwIG1lbnUuCiAgIElmIHRoZXJlIGlzIG5vIG1hdGNoIHJlbW92ZSB0aGUgc2VsZWN0aW9uLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKKy0gQ29tcGxldGUgdGhlIGxvbmdlc3QgY29tbW9uIG1hdGNoIGluc3RlYWQgb2YgdGhlIGZpcnN0IG1hdGNoPworLSAhX1RBR19GSUxFX0ZPUk1BVCBhbmQgaXQncyBpbGsgYXJlIGxpc3RlZCBpbiB0aGUgZ2xvYmFsIGNvbXBsZXRpb25zCiAtIFdoZW4gY29tcGxldGluZyBzb21ldGhpbmcgdGhhdCBpcyBhIHN0cnVjdHVyZSwgYWRkIHRoZSAiLiIgb3IgIi0+Ii4KIC0gV2hlbiBhIHR5cGVkZWYgb3Igc3RydWN0IGlzIGxvY2FsIHRvIGEgZmlsZSBvbmx5IHVzZSBpdCBpbiB0aGF0IGZpbGU/CistIFdpbmRvdyByZXNpemUgd2hlbiBwb3VwIGlzIGRpc3BsYXllZAorLSBwYWdlLXVwIC8gcGFnZS1kb3duCiAKIHNwZWxsaW5nOgogLSBXaGVuIGEgcmVjb2duaXplZCB3b3JkIGVuZHMgaW4gYSAuIGRvbid0IGhhdmUgJ3NwZWxsY2FwY2hlY2siIG1hdGNoIGl0LgotLSBVc2UgS0VFUENBU0UgaW5zdGVhZCBvZiAiS0VQIi4gIGFwcGxpZXMgdG8gYWZmaXhlcyB0b28uCistIFVzZSBLRUVQQ0FTRSBpbnN0ZWFkIG9mICJLRVAiLiAgSXQgYXBwbGllcyB0byB0aGUgd29yZCBpbmNsdWRpbmcgYWZmaXhlcworICBIdW5zcGVsbCBhbHNvIHVzZXMgaXQuCistIEh1bnNwZWxsIGhhcyBOT1NVR0dFU1QgZmxhZyAodXNlIGZvciBvYnNjZW5lIHdvcmRzPykKKy0gQ2hlY2sgb3V0IEh1bnNwZWxsIDEuMS4yLgogLSBMb29rIGludG8gaHVuZ2FyaWFuIGRpY3Rpb25hcnk6CiAgIGh0dHA6Ly9tYWd5YXJpc3BlbGwuc291cmNlZm9yZ2UubmV0L3JjMy1iZXRhMi56aXAKKy0gU3VwcG9ydCBicmVha3BvaW50IGNoYXJhY3RlciC3IDB4YjcgYW5kIGlnbm9yZSBpdD8KKy0gRHV0Y2ggd29yZCBsaXN0IHNob3VsZCBiZSBhdmFpbGFibGUgaGVyZTogaHR0cDovL3d3dy53b29yZGVubGlqc3Qub3JnLworOCAgIEFsdGVybmF0ZSBEdXRjaCB3b3JkIGxpc3QgYXQgd3d3Lm5lZGVybGFuZHNld29vcmRlbi5ubCAodXNlIHNjcmlwdCB0bworICAgIG9idGFpbikuICBCdXQgbmV3IE15c3BlbGwgd29yZGxpc3Qgd2lsbCBjb21lIChIYWdlbikKKy0gRmluZGluZyBzdWdnZXN0aW9ucyB3aXRoIHNvdW5kIGZvbGRpbmcgaXMgc2xvdy4gIFNvbWVob3cgc3RvcmUgdGhlCisgIHNvdW5kLWZvbGRlZCB3b3JkcyBhbmQgbGluayB0byB0aGUgd29yZHMgaXQgY29tZXMgZnJvbT8KKworV2hlbiBlZGl0aW5nIGEgZmlsZSAiYSIgdGhhdCBpcyBhIHN5bWJvbGljIGxpbmsgdG8gImIiLCB3aGlsZSBhbm90aGVyIFZpbSBpcworZWRpdGluZyAiYiIsIHRoZXJlIGlzIG5vIHdhcm5pbmcuICBGb2xsb3cgc3ltbGluayB0byBtYWtlIHN3YXAgZmlsZSBuYW1lPworUGF0Y2ggZnJvbSBTdGVmYW5vIFphY2NoaXJvbGkuCisKK0luIGRpZmYgbW9kZSBkZWxldGluZyBsaW5lcyBpcyB2ZXJ5IHNsb3cuICBFLmcuLCB3aGVuIGRpZmZpbmcgdHdvIC5wbyBmaWxlcworYW5kIHRoZW4gc291cmNpbmcgcG8vY2xlYXVwLnZpbS4KKworNyAgIEFkZCBwbHVnaW5zIGZvciBmb3JtYXR0aW5nLiAgU2hvdWxkIGJlIGFibGUgdG8gbWFrZSBhIGNob2ljZSBkZXBlbmRpbmcgb24KKyAgICB0aGUgbGFuZ3VhZ2Ugb2YgYSBmaWxlIChFbmdsaXNoL0tvcmVhbi9KYXBhbmVzZS9ldGMuKS4KKyAgICBTZXR0aW5nIHRoZSAnbGFuZ2Zvcm1hdCcgb3B0aW9uIHRvICJjaGluZXNlIiB3b3VsZCBsb2FkIHRoZQorICAgICJmb3JtYXQvY2hpbmVzZS52aW0iIHBsdWdpbi4KK0Vkd2FyZCBMLiBGb3ggZXhwbGFpbnMgaG93IGl0IHNob3VsZCBiZSBkb25lIGZvciBtb3N0IEFzaWFuIGxhbmd1YWdlcy4gKDIwMDUKK05vdiAyNCkKIAogTWFjIHVuaWNvZGUgcGF0Y2ggKERhIFdvb24gSnVuZyk6CiAtIHNlbGVjdGluZyBwcm9wb3J0aW9uYWwgZm9udCBicmVha3MgZGlzcGxheQpAQCAtNTIsMTAgKzEwMCwxNSBAQAogLSBXaXRoICdub3Bhc3RlJyBwYXN0aW5nIGlzIHdyb25nLCB3aXRoICdwYXN0ZScgQ29tbWFuZC1WIGRvZXNuJ3Qgd29yay4KICAgKEFsYW4gU2NobWl0dCkKIAorUGF0Y2ggdG8gYWRkIGEgZmV3IGZsYWdzIHRvIHNlYXJjaCgpLiAoQmVuamkgRmlzaGVyLCBOb3YgMjIpCisKIFdpbjMyOiBVc2UgdGhlIGZyZWUgZG93bmxvYWRhYmxlIGNvbXBpbGVyIDcuMS4gIEZpZ3VyZSBvdXQgaG93IHRvIGRvIGRlYnVnZ2luZwogKHdpdGggQWdpZGU/KSBhbmQgZGVzY3JpYmUgaXQuIChHZW9yZ2UgUmVpbGx5KQogVHJ5IG91dCB1c2luZyB0aGUgZnJlZSBNUyBjb21waWxlciBhbmQgZGVidWdnZXIsIHVzaW5nIE1ha2VfbXZjLm1hay4KIAorV2luMzI6IENoZWNrIHRoYXQgaW5zdGFsbGVyIHB1dHMgbWVudSBpdGVtcyBpbiAiYWxsIHVzZXJzIiBkaXIgd2hlbiBwb3NzaWJsZSwKK25vdCBhZG1pbmlzdHJhdG9yIGRpci4KKwogQXV0b2xvYWQ6CiAtIEFkZCBhIFZpbSBzY3JpcHQgaW4gJFZJTVJVTlRJTUUvdG9vbHMgdGhhdCB0YWtlcyBhIGZpbGUgd2l0aCBhIGxpc3Qgb2YKICAgc2NyaXB0IG5hbWVzIGFuZCBhIGhlbHAgZmlsZSBhbmQgcHJvZHVjZXMgYSBzY3JpcHQgdGhhdCBjYW4gYmUgc291cmNlZCB0bwpAQCAtNjcsNyArMTIwLDggQEAKICAgICBoZWxwZmlsZSBkb2MvbXlzY3JpcHQudHh0CiAgIEZvciB0aGUgImhlbHBmaWxlIiBpdGVtICI6aGVscHRhZ3MiIGlzIHJ1bi4KIAotQWRkICI6c21hcCIsIFNlbGVjdCBtb2RlIG1hcHBpbmc/CitBZGQgIjpzbWFwIiwgU2VsZWN0IG1vZGUgbWFwcGluZz8gIE90aGVyd2lzZTogIjpzdW5tYXAiLCBzbyB0aGF0IFZpc3VhbCBtb2RlCittYXBwaW5ncyBmb3Igbm9ybWFsIGtleXMgY2FuIGJlIHJlbW92ZWQgZnJvbSBTZWxlY3QgbW9kZS4KIAogQXdhaXRpbmcgcmVzcG9uc2U6CiAtICAgV2luMzI6IHRlYXJvZmYgbWVudSB3aW5kb3cgc2hvdWxkIGhhdmUgYSBzY3JvbGxiYXIgd2hlbiBpdCdzIHRhbGxlciB0aGFuCkBAIC04OCw2ICsxNDIsMTAgQEAKICAgICBtYWtlIGl0IHdvcmsgZm9yIGFsbCBjb21wbGV0aW9uIG1ldGhvZHMuCiAKICAgICBVSToKKyAgICAtIENvbXBsZXRlIGxvbmdlc3QgY29tbW9uIHN0cmluZyBmaXJzdCwgbGlrZSAnd2lsZG1vZGUnICJsb25nZXN0OmZ1bGwiLgorICAgIC0gQWRkIGFuICJhdXRvIiBtb2RlOiBhZnRlciB0eXBpbmcgYSBjaGFyYWN0ZXIgKG9yIHN0cmluZykgY29tcGxldGlvbiBpcworICAgICAgZG9uZSBmb3IgdGhlIGxvbmdlc3QgY29tbW9uIHN0cmluZy4gIHBsdWdpbiBkZWZpbmVzIHRoZSBwb3NzaWJsZQorICAgICAgY2hhcmFjdGVycy9zdHJpbmdzLiAoTWFydGluIFN0dWJlbnNjaHJvdHQpCiAgICAgLSBHVUkgaW1wbGVtZW50YXRpb24gb2YgdGhlIHBvcHVwIG1lbnUuCiAgICAgLSBXaGVuIHVzaW5nIHRhZ3MsIHNob3cgbWF0Y2ggaW4gcHJldmlldyB3aW5kb3cgKGZ1bmN0aW9uIHByb3RvdHlwZSwKICAgICAgIHN0cnVjdCBtZW1iZXIsIGV0Yy4pLgpAQCAtMTkxLDkgKzI0OSw5IEBACiAgICAgRm9yIEdUSyBOZWlsIEJpcmQgaGFzIGEgcGF0Y2ggdG8gdXNlIFZpbSBsaWtlIGEgd2lkZ2V0LgogLSAgIEFkZCBDT0xVTU4gTlVNQkVSUyB0byAiOiIgY29tbWFuZHMgIjpsaW5lMSxsaW5lMltjb2wxLGNvbDJdY21kIi4gIEJsb2NrCiAgICAgY2FuIGJlIHNlbGVjdGVkIHdpdGggQ1RSTC1WLiAgQWxsb3cgJyQnIChlbmQgb2YgbGluZSkgZm9yIGNvbDIuCi0tICAgQWRkIERFQlVHR0VSIElOVEVSRkFDRS4gIEltcGxlbWVudGF0aW9uIGZvciBnZGIgYnkgWGF2aWVyIGRlIEdheWUsCi0gICAgYXNzaXN0ZWQgYnkgTWlrb2xhaiBNYWNob3dza2kuICBTaG91bGQgd29yayBsaWtlIGFuIElERS4gIFRyeSB0byBrZWVwIGl0Ci0gICAgZ2VuZXJpYy4gIEFsc28gZm91bmQgaGVyZTogaHR0cDovL3NrYXdpbmEuZXUub3JnL21pa29sYWovdmltZ2RiCistICAgQWRkIERFQlVHR0VSIElOVEVSRkFDRS4gIEltcGxlbWVudGF0aW9uIGZvciBnZGIgYnkgWGF2aWVyIGRlIEdheWUuCisgICAgU2hvdWxkIHdvcmsgbGlrZSBhbiBJREUuICBUcnkgdG8ga2VlcCBpdCBnZW5lcmljLiAgTm93IGZvdW5kIGhlcmU6CisgICAgaHR0cDovL2NsZXduLnNmLm5ldC4KICAgICBBbmQgdGhlIGlkZXZpbSBwbHVnaW4vc2NyaXB0LgogICAgIFRvIGJlIGFibGUgdG8gc3RhcnQgdGhlIGRlYnVnZ2VyIGZyb20gaW5zaWRlIFZpbTogRm9yIEdVSSBydW4gYSBwcm9ncmFtCiAgICAgd2l0aCBhIG5ldGJlYW5zIGNvbm5lY3Rpb247IGZvciBjb25zb2xlOiBzdGFydCBhIHByb2dyYW0gdGhhdCBzcGxpdHMgdGhlCkBAIC0yMDcsNiArMjY1LDcgQEAKICAgICBpbXBsZW1lbnQgcGFydCBpbiBKYXZhIGFuZCB0aGVuIGNvbm5lY3QgdG8gVmltLiAgU29tZSBoaW50cyBmcm9tIEFsZXhhbmRydQogICAgIFJvbWFuLCAyMDA0IERlYyAxNS4gIFNob3VsZCB0aGVuIGFsc28gd29yayB3aXRoIE9yYWNsZSBKZGV2ZWxvcGVyLCBzZWUgSlNSCiAgICAgMTk4IHN0YW5kYXJkIGh0dHA6Ly93d3cuamNwLm9yZy9lbi9qc3IvZGV0YWlsP2lkPTE5OC4KKyAgICBFY2xpbSBkb2VzIGl0OiBodHRwOi8vZWNsaW0uc291cmNlZm9yZ2UubmV0LyAgKEVyaWMgVmFuIERld29lc3RpbmUpCiAtICAgU1RJQ0tZIENVUlNPUjogQWRkIGEgd2F5IG9mIHNjcm9sbGluZyB0aGF0IGxlYXZlcyB0aGUgY3Vyc29yIHdoZXJlIGl0IGlzLgogICAgIEVzcGVjaWFsbHkgd2hlbiB1c2luZyB0aGUgc2Nyb2xsYmFyLiAgVHlwaW5nIGEgY3Vyc29yLW1vdmVtZW50IGNvbW1hbmQKICAgICBzY3JvbGxzIGJhY2sgdG8gd2hlcmUgdGhlIGN1cnNvciBpcy4KQEAgLTM1Myw3ICs0MTIsOSBAQAogCUhvdyBkb2VzIHRoaXMgd29yaz8gIE1pc3NpbmcgY29tbWVudHMuCiAJZ2V0dGV4dCgpCVRyYW5zbGF0ZSBhIG1lc3NhZ2UuICAoUGF0Y2ggZnJvbSBZYXN1aGlybyBNYXRzdW1vdG8pCiAJCQlVcGRhdGUgMjAwNCBTZXAgMTAKLQkJCU1vcmUgZG9jcy4gIFNlYXJjaCBpbiAncnVudGltZXBhdGgnPworCQkJQW5vdGhlciBwYXRjaCBmcm9tIEVkd2FyZCBMLiBGb3ggKDIwMDUgTm92IDI0KQorCQkJU2VhcmNoIGluICdydW50aW1lcGF0aCc/CisJCQlNb3JlIGRvY3MgYWJvdXQgaG93IHRvIHVzZSB0aGlzLgogCQkJSG93IHRvIGdldCB0aGUgbWVzc2FnZXMgaW50byB0aGUgLnBvIGZpbGVzPwogICAgIC0tLSBkaWQgbm90IHJlc3BvbmQgKHlldCkgLS0KICAgICAtCVBhdGNoIGZvciAnYnJlYWtpbmRlbnQnIG9wdGlvbjogcmVwZWF0IGluZGVudCBmb3Igd3JhcHBlZCBsaW5lLiAoVmFjbGF2CkBAIC0zOTUsNyArNDU2LDcgQEAKICAgICA3ICAgV2hlbiAncmlnaHRsZWZ0JyBpcyBzZXQsIHRoZSBzZWFyY2ggcGF0dGVybiBzaG91bGQgYmUgZGlzcGxheWVkIHJpZ2h0CiAJdG8gbGVmdCBhcyB3ZWxsPyAgU2VlIHBhdGNoIG9mIERlYyAyNi4gKE5hZGltIFNoYWlrbGkpCiAgICAgOCAgIExvY2sgYWxsIHVzZWQgbWVtb3J5IHNvIHRoYXQgaXQgZG9lc24ndCBnZXQgc3dhcHBlZCB0byBkaXNrICh1bmNyeXB0ZWQpLgotCVBhdGNoIGJ5IEphc29uIEhvbHQsIDIwMDMgTWF5IDIzLgorCVBhdGNoIGJ5IEphc29uIEhvbHQsIDIwMDMgTWF5IDIzLiAgVXNlcyBtbG9jay4KICAgICA3ICAgU3VwcG9ydCBhIHN0cm9uZ2VyIGVuY3J5cHRpb24uICBKYXNvbiBIb2x0IGltcGxlbWVudGVkIEFFUyAoTWF5IDYgMjAwMykuCiAgICAgNyAgIEFkZCAhIHJlZ2lzdGVyLCBmb3Igc2hlbGwgY29tbWFuZHMuIChwYXRjaCBmcm9tIEdyZW5pZSkKICAgICA4ICAgSW4gdGhlIGd6aXAgcGx1Z2luLCBhbHNvIHJlY29nbml6ZSAqLmd6Lm9yaWcsICouZ3ouYmFrLCBldGMuICBMaWtlIGl0J3MKQEAgLTc5MSw3ICs4NTIsMTYgQEAKIDggICBPUy8yOiBBZGQgRXh0ZW5kZWQgQXR0cmlidXRlcyBzdXBwb3J0IGFuZCBkZWZpbmUgSEFWRV9BQ0wuCiA4ICAgT1MvMjogV2hlbiBlZGl0aW5nIGEgZmlsZSBuYW1lICJmb28udHh0IiB0aGF0IGlzIGFjdHVhbGx5IGNhbGxlZCBGT08udHh0LAogICAgIHdyaXRpbmcgdXNlcyAiZm9vLnR4dCIuICBTaG91bGQgb2J0YWluIHRoZSByZWFsIGZpbGUgbmFtZS4KLTggICBTaG91bGQgJFVTRVJQUk9GSUxFIGJlIHByZWZlcnJlZCBhYm92ZSAkSE9NRURSSVZFLyRIT01FUEFUSD8KKzggICBTaG91bGQgJFVTRVJQUk9GSUxFIGJlIHByZWZlcnJlZCBhYm92ZSAkSE9NRURSSVZFLyRIT01FUEFUSD8gIE5vLCBidXQgaXQncworICAgIGEgZ29vZCBmYWxsYmFjaywgdGh1cyB1c2U6CisJICAgICRIT01FCisJICAgICRIT01FRFJJVkUkSE9NRVBBVEgKKwkgICAgU0hHZXRTcGVjaWFsRm9sZGVyUGF0aChOVUxMLCBscHpzUGF0aCwgQ1NJRExfQVBQREFUQSwgRkFMU0UpOworCSAgICAkVVNFUlBST0ZJTEUKKwkgICAgU0hHZXRTcGVjaWFsRm9sZGVyUGF0aChOVUxMLCBscHpzUGF0aCwgQ1NJRExfQ09NTU9OX0FQUERBVEEsIEZBTFNFKTsKKwkgICAgJEFMTFVTRVJTUFJPRklMRQorCSAgICAkU1lTVEVNRFJJVkVcCisJICAgIEM6XAogOCAgIFdpbjMyIGNvbnNvbGU6IDxNLVVwPiBhbmQgPE0tRG93bj4gZG9uJ3Qgd29yay4gKEdlZGRlcykgIFdlIGRvbid0IGhhdmUKICAgICBzcGVjaWFsIGtleXMgZm9yIHRoZXNlLiAgU2hvdWxkIHVzZSBtb2RpZmllciArIGtleS4KIDggICBXaW4zMiBjb25zb2xlOiBjYXBzLWxvY2sgbWFrZXMgbm9uLWFscGhhIGtleXMgd29yayBsaWtlIHdpdGggc2hpZnQuCkBAIC0xMzgyLDIyICsxNDUyLDE5IEBACiA4ICAgTWFrZSAiZW4tcmFyZSIgc3BlbGwgZmlsZT8gIEFzayBDaGFybGVzIENhbXBiZWxsLgogOCAgIFRoZSBFbmdsaXNoIGRpY3Rpb25hcmllcyBmb3IgZGlmZmVyZW50IHJlZ2lvbnMgYXJlIG5vdCBjb25zaXN0ZW50IGluIHRoZWlyCiAgICAgdXNlIG9mIHdvcmRzIHdpdGggYSBkYXNoLgotOCAgIEFsdGVybmF0ZSBEdXRjaCB3b3JkIGxpc3QgYXQgd3d3Lm5lZGVybGFuZHNld29vcmRlbi5ubCAodXNlIHNjcmlwdCB0bwotICAgIG9idGFpbikuICBCdXQgbmV3IE15c3BlbGwgd29yZGxpc3Qgd2lsbCBjb21lIChIYWdlbikKIDcgICBJbnNlcnQgbW9kZSBjb21wbGV0aW9uIG1lY2hhbmlzbSB0aGF0IHVzZXMgdGhlIHNwZWxsIHdvcmQgbGlzdHMuCiA4ICAgQWRkIGhsIGdyb3VwcyB0byAnc3BlbGxsYW5nJz8KIAk6c2V0IHNwZWxsbGFuZz1lbl91cyxlbi1yYXJlL1NwZWxsUmFyZSxlbi1tYXRoL1NwZWxsTWF0aAogICAgIE1vcmUgY29tcGxpY2F0ZWQ6IFJlZ2lvbnMgd2l0aCBkaWZmZXJlbnQgbGFuZ3VhZ2VzPyAgRS5nLiwgY29tbWVudHMKICAgICBpbiBFbmdsaXNoLCBzdHJpbmdzIGluIEdlcm1hbiAocG8gZmlsZSkuCi04ICAgSW1wbGVtZW50IGNvbXBvdW5kIHdvcmRzIHdoZW4gaXQgd29ya3MgZm9yIE15c3BlbGwuICBDdXJyZW50IGlkZWEgaGFzIHRoZQotICAgIHByb2JsZW0gdGhhdCAiZm9vL1giIGFsd2F5cyBhbGxvd3MgImZvb2ZvbyIsIHRoZXJlIGlzIG5vIHdheSB0byBzcGVjaWZ5IGEKLSAgICB3b3JkIGNhbiBvbmx5IGJlIGF0IHRoZSBzdGFydCBvciBlbmQsIG9yIHRoYXQgb25seSBjZXJ0YWluIHdvcmRzIGNvbWJpbmUuCiAKIAogRGlmZiBtb2RlOgogOCAgIFVzZSBkaWZmIG1vZGUgdG8gc2hvdyB0aGUgY2hhbmdlcyBtYWRlIGluIGEgYnVmZmVyIChjb21wYXJlZCB0byB0aGUgZmlsZSkuCiAgICAgVXNlIGFuIHVubmFtZWQgYnVmZmVyLCBsaWtlIGRvaW5nOgogCW5ldyB8IHNldCBidD1ub2ZpbGUgfCByICMgfCAwZF8gfCBkaWZmdGhpcyB8IHdpbmNtZCBwIHwgZGlmZnRoaXMKKyAgICBBbHNvIHNob3cgZGlmZmVyZW5jZSB3aXRoIHRoZSBmaWxlIHdoZW4gZWRpdGluZyBzdGFydGVkPyAgU2hvdWxkIHNob3cgd2hhdAorICAgIGNhbiBiZSB1bmRvbmUuIChUb20gUG9wb3ZpY2gpCiA3ICAgQWRkIGN1cnNvci1iaW5kaW5nOiB3aGVuIG1vdmluZyB0aGUgY3Vyc29yIGluIG9uZSBkaWZmJ2VkIGJ1ZmZlciwgYWxzbwogICAgIG1vdmUgaXQgaW4gb3RoZXIgZGlmZidlZCBidWZmZXJzLCBzbyB0aGF0IENUUkwtVyBjb21tYW5kcyBnbyB0byB0aGUgc2FtZQogICAgIGxvY2F0aW9uLgpAQCAtMTU3NSw2ICsxNjQyLDExIEBACiAgICAgcmUtaW5zZXJ0IHRoZSBbXSBpZiBwb3NzaWJsZS4KIDggICBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBjb2xvciBvZiB0ZXh0IGZvciBWaXN1YWwgaGlnaGxpZ2h0IGdyb3VwIChsaWtlIGZvcgogICAgIHRoZSBDdXJzb3IpLgorOCAgIEl0IHdvdWxkIGJlIHVzZWZ1bCB0byBtYWtlIHRoZSBoaWdobGlnaHQgZ3JvdXAgbmFtZSBhbiBleHByZXNzaW9uLiAgVGhlbgorICAgIHdoZW4gdGhlcmUgaXMgYSBtYXRjaCwgdGhlIGV4cHJlc3Npb24gd291bGQgYmUgZXZhbHVhdGVkIHRvIGZpbmQgb3V0IHdoYXQKKyAgICBoaWdobGlnaHQgZ3JvdXAgdG8gdXNlLiAgQ291bGQgYmUgdXNlZCB0byBjaGVjayBpZiB0aGUgc2hlbGwgdXNlZCBpbiBhCisgICAgcGFzc3dvcmQgZmlsZSBhcHBlYXJzIGluIC9ldGMvc2hlbGxzLiAoTmlrb2xhaSBXZWlidWxsKQorCXN5biBtYXRjaCA9czpjaGVja1NoZWxsKHY6bWF0Y2gpIGNvbnRhaW5lZCAncGF0dGVybicKIDggICBNYWtlIGl0IHBvc3NpYmxlIHRvIG9ubHkgaGlnaGxpZ2h0IGEgc3ViLWV4cHJlc3Npb24gb2YgYSBtYXRjaC4gIExpa2UKICAgICB1c2luZyAiXDEiIGluIGEgIjpzIiBjb21tYW5kLgogOCAgIFN1cHBvcnQgZm9yIGRlbGV0aW5nIHN5bnRheCBpdGVtczoKQEAgLTMwMjAsOCArMzA5Miw2IEBACiA3ICAgVGhlcmUgaXMgJ3RpdGxlb2xkJywgd2h5IGlzIHRoZXJlIG5vICdpY29ub2xkJz8gKENoYXplbGFzKQogNyAgIE1ha2UgJ3Njcm9sbG9mZicgYSBnbG9iYWwtbG9jYWwgb3B0aW9uLCBzbyB0aGF0IGl0IGNhbiBiZSBkaWZmZXJlbnQgaW4gdGhlCiAgICAgcXVpY2tmaXggd2luZG93LCBmb3IgZXhhbXBsZS4gKEdhcnkgSG9sbG93YXkpCi03ICAgQWRkIHBsdWdpbnMgZm9yIGZvcm1hdHRpbmcuICBTaG91bGQgYmUgYWJsZSB0byBtYWtlIGEgY2hvaWNlIGRlcGVuZGluZyBvbgotICAgIHRoZSBsYW5ndWFnZSBvZiBhIGZpbGUgKEVuZ2xpc2gvS29yZWFuL0phcGFuZXNlL2V0Yy4pLgogCiAKIEV4dGVybmFsIGNvbW1hbmRzOgpAQCAtMzM0OSw3ICszNDE5LDggQEAKIDcgICBBZGQgYSB3YXkgdG8gZGVmaW5lIGFuIGl0ZW0gbGlzdCB3aXRoIGEgcGF0dGVybiBpbiAnZm9ybWF0b3B0aW9ucycuICBUaGUKICAgICAnbicgZmxhZyBkb2Vzbid0IHdvcmsgZm9yICI2LjMiIG9yICI2YS4iLgogOCAgIEFkZCAnZm9ybWF0ZXhwcicgb3B0aW9uOiBVc2VkIGZvciBmb3JtYXR0aW5nIG9wZXJhdG9yICJncSIgaW5zdGVhZCBvZiB0aGUKLSAgICBidWlsdGluIGZvcm1hdHRpbmcgb3IgJ2Zvcm1hdHByZycuCisgICAgYnVpbHRpbiBmb3JtYXR0aW5nIG9yICdmb3JtYXRwcmcnLiAgT3IgdXNlIGEgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggIj0iCisgICAgaW4gJ2Zvcm1hdHByZyc6ICI9TXlGb3JtYXQoKSIuCiA4ICAgQWxsb3cgdXNpbmcgYSB0cmFpbGluZyBzcGFjZSB0byBzaWduYWwgYSBwYXJhZ3JhcGggdGhhdCBjb250aW51ZXMgb24gdGhlCiAgICAgbmV4dCBsaW5lIChNSU1FIHRleHQvcGxhaW47IGZvcm1hdD1mbG93ZWQsIFJGQyAyNjQ2KS4gIENhbiBiZSB1c2VkIGZvcgogICAgIGNvbnRpbnVvdXMgZm9ybWF0dGluZy4gIENvdWxkIHVzZSAnYXV0b2Zvcm1hdCcgb3B0aW9uLCB3aGljaCBzcGVjaWZpZXMgYQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdWdhbmRhLnR4dCBiL3J1bnRpbWUvZG9jL3VnYW5kYS50eHQKaW5kZXggNzUxYzBiNC4uZDEyNmY4YiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdWdhbmRhLnR4dAorKysgYi9ydW50aW1lL2RvYy91Z2FuZGEudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVnYW5kYS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAxMgorKnVnYW5kYS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE9jdCAxNQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjExLDkgKzIxMSwyNiBAQAogQ2hlY2sgdGhlIElDQ0Ygd2ViIHNpdGUgZm9yIHRoZSBsYXRlc3QgaW5mb3JtYXRpb24hICBTZWUgfGljY2Z8IGZvciB0aGUgVVJMLgogCiAKLVVTQSBhbmQgQ2FuYWRhOiBDb250YWN0IEtpYmFhbGUgQ2hpbGRyZW4ncyBGdW5kIChLQ0YpIGluIFN1cnJleSwgQ2FuYWRhLiAgVGhleQorVVNBOgkJVGhlIG1ldGhvZHMgbWVudGlvbmVkIGJlbG93IGNhbiBiZSB1c2VkLiAgQWx0ZXJuYXRpdmVseSwgeW91CisJCWNhbiBzZW5kIGEgY2hlY2sgdG8gdGhlIE5laGVtaWFoIEdyb3VwIE91dHJlYWNoIFNvY2lldHkKKwkJKE5HT1MpLiAgVGhpcyB3aWxsIHJlZHVjZSBiYW5raW5nIGNvc3RzIGFuZCB5b3UgY2FuIGdldCBhbiBJUlMKKwkJdGF4IHJlY2VpcHQuICBUaGUgTkdPUyBmb3J3YXJkcyB0aGUgZnVuZHMgZGlyZWN0bHkgdG8gdGhlCisJCUtpYmFhbGUgcHJvamVjdCBpbiBVZ2FuZGEuICBDaGVja3MgbXVzdCBiZSBtYWRlIHBheWFibGUgdG8KKwkJTkdPUyBidXQgcGxlYXNlIG5vdGUgb24gdGhlIGNoZWNrICJkb25hdGlvbiBLaWJhYWxlIi4gIE1haWwKKwkJY2hlY2tzIHRvOgorCQkJTkdPUworCQkJUC5PLiBCb3ggNTA4NjIKKwkJCUluZGlhbmFwb2xpcywgSU4gNDUyNTAKKwkJUXVlc3Rpb25zIHJlZ2FyZGluZyB0aGUgTmVoZW1pYWggR3JvdXAgT3V0cmVhY2ggU29jaWV0eSAoTkdPUykKKwkJc2hvdWxkIGJlIGRpcmVjdGVkIHRvOiBSb3NzIGRlTWVyY2hhbnQsIEV4ZWN1dGl2ZSBEaXJlY3RvciAtCisJCXIuZGVtZXJjaGFudCBBVCBzYmNnbG9iYWwgRE9UIG5ldC4KKwkJRm9yIHNwb25zb3JpbmcgYSBjaGlsZCBjb250YWN0IEtDRiBpbiBDYW5hZGEgKHNlZSBiZWxvdykgYW5kCisJCXNlbmQgdGhlIGNoZWNrIHRvIE5HT1MgaW4gSW5kaWFuYXBvbGlzLgorCitDYW5hZGE6CQlDb250YWN0IEtpYmFhbGUgQ2hpbGRyZW4ncyBGdW5kIChLQ0YpIGluIFN1cnJleSwgQ2FuYWRhLiAgVGhleQogCQl0YWtlIGNhcmUgb2YgdGhlIENhbmFkaWFuIHNwb25zb3JzIGZvciB0aGUgY2hpbGRyZW4gaW4KLQkJS2liYWFsZS4gIFlvdSBjYW4gc2VuZCB0aGVtIGEgb25lIHRpbWUgZG9uYXRpb24gZGlyZWN0bHkuCisJCUtpYmFhbGUuICBLQ0YgZm9yd2FyZHMgMTAwJSBvZiB0aGUgbW9uZXkgdG8gdGhlIHByb2plY3QgaW4KKwkJVWdhbmRhLiAgWW91IGNhbiBzZW5kIHRoZW0gYSBvbmUgdGltZSBkb25hdGlvbiBkaXJlY3RseS4KIAkJUGxlYXNlIHNlbmQgbWUgYSBub3RlIHNvIHRoYXQgSSBrbm93IHdoYXQgaGFzIGJlZW4gZG9uYXRlZAogCQliZWNhdXNlIG9mIFZpbS4gIEFzayBLQ0YgZm9yIGluZm9ybWF0aW9uIGFib3V0IHNwb25zb3JzaGlwLgogCQkJS2liYWFsZSBDaGlsZHJlbidzIEZ1bmQgYy9vIFBhY2lmaWMgQWNhZGVteQpAQCAtMjIzLDEyICsyNDAsMTAgQEAKIAkJCVBob25lOiA2MDQtNTgxLTUzNTMKIAkJSWYgeW91IG1ha2UgYSBkb25hdGlvbiB0byBLaWJhYWxlIENoaWxkcmVuJ3MgRnVuZCAoS0NGKSB5b3UKIAkJd2lsbCByZWNlaXZlIGEgdGF4IHJlY2VpcHQgd2hpY2ggY2FuIGJlIHN1Ym1pdHRlZCB3aXRoIHlvdXIKLQkJdGF4IHJldHVybiAodW5kZXIgdGhlIEZyZWUgVHJhZGUgQWdyZWVtZW50IHRheCByZWNlaXB0cyBpc3N1ZWQKLQkJYnkgYW4gb3JnYW5pemF0aW9uIHJlZ2lzdGVyZWQgaW4gQ2FuYWRhIGFyZSBmdWxseSBhY2NlcHRlZCBieQotCQl0aGUgSVJTIGluIHRoZSBVU0EsIHdpdGggYSBmZXcgY29uZGl0aW9ucykuCisJCXRheCByZXR1cm4uCiAKIEhvbGxhbmQ6CVRyYW5zZmVyIHRvIHRoZSBhY2NvdW50IG9mICJTdGljaHRpbmcgSUNDRiBIb2xsYW5kIiBpbiBWZW5sby4KLQkJVGhpcyB3aWxsIGFsbG93IGZvciB0YXggZGVkdWN0aW9uIChpZiB5b3UgbGl2ZSBpbiBIb2xsYW5kKSEKKwkJVGhpcyB3aWxsIGFsbG93IGZvciB0YXggZGVkdWN0aW9uIGlmIHlvdSBsaXZlIGluIEhvbGxhbmQuCiAJCQlQb3N0YmFuaywgbnIuIDQ1NDg3NzQKIAogR2VybWFueToJSXQgaXMgcG9zc2libGUgdG8gbWFrZSBkb25hdGlvbnMgdGhhdCBhbGxvdyBmb3IgYSB0YXggcmV0dXJuLgpAQCAtMjUyLDcgKzI2Nyw3IEBACiAJCSAgICBodHRwczovL3d3dy5wYXlwYWwuY29tL2FmZmlsL3BhbD1CcmFtJTQwaWNjZi1ob2xsYW5kLm9yZwogCQlUaGUgZS1tYWlsIGFkZHJlc3MgZm9yIHNlbmRpbmcgdGhlIG1vbmV5IHRvIGlzOgogCQkgICAgQnJhbUBpY2NmLWhvbGxhbmQub3JnCi0JCUZvciBhbW91bnRzIGFib3ZlIDQwMCBFdXJvICgkNTAwKSBzZW5kaW5nIGEgY2hlcXVlIGlzCisJCUZvciBhbW91bnRzIGFib3ZlIDQwMCBFdXJvICgkNTAwKSBzZW5kaW5nIGEgY2hlY2sgaXMKIAkJcHJlZmVycmVkLgogCiBPdGhlcnM6CQlUcmFuc2ZlciB0byBvbmUgb2YgdGhlc2UgYWNjb3VudHMgaWYgcG9zc2libGU6CkBAIC0yNjQsMTEgKzI3OSwxMSBAQAogCQkgICAgUmFib2JhbmsgVmVubG8sIGFjY291bnQgMzc2NS4wNS4xMTcKIAkJCQlTd2lmdCBjb2RlOiBSQUJPIE5MIDJVCiAJCQl1bmRlciB0aGUgbmFtZSAiQnJhbSBNb29sZW5hYXIiLCBWZW5sbwotCQlPdGhlcndpc2UsIHNlbmQgYSBjaGVxdWUgaW4gZXVybyBvciBVUyBkb2xsYXJzIHRvIHRoZSBhZGRyZXNzCisJCU90aGVyd2lzZSwgc2VuZCBhIGNoZWNrIGluIGV1cm8gb3IgVVMgZG9sbGFycyB0byB0aGUgYWRkcmVzcwogCQliZWxvdy4gIE1pbmltYWwgYW1vdW50OiAkNzAgKG15IGJhbmsgZG9lcyBub3QgYWNjZXB0IHNtYWxsZXIKLQkJYW1vdW50cyBmb3IgZm9yZWlnbiBjaGVxdWVzLCBzb3JyeSkKKwkJYW1vdW50cyBmb3IgZm9yZWlnbiBjaGVjaywgc29ycnkpCiAKLUFkZHJlc3MgdG8gc2VuZCBjaGVxdWVzIHRvOgorQWRkcmVzcyB0byBzZW5kIGNoZWNrcyB0bzoKIAkJCXN0aWNodGluZyBJQ0NGIEhvbGxhbmQKIAkJCUJyYW0gTW9vbGVuYWFyCiAJCQlDbGVtYXRpc3N0cmFhdCAzMApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmFyaW91cy50eHQgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAppbmRleCAzZjA3NWQ4Li5iNDE3MmNjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAorKysgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2YXJpb3VzLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMjcKKyp2YXJpb3VzLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBPY3QgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTI5NSw3ICsyOTUsOCBAQAogICAgKitHVUlfTW90aWYqCQlVbml4IG9ubHk6IE1vdGlmIHxHVUl8CiAgICAqK0dVSV9QaG90b24qCVFOWCBvbmx5OiAgUGhvdG9uIHxHVUl8CiBtICAqK2hhbmd1bF9pbnB1dCoJSGFuZ3VsIGlucHV0IHN1cHBvcnQgfGhhbmd1bHwKLSAgICoraWNvbnYqCQlDb21waWxlZCB3aXRoIHRoZSB8aWNvbnYoKXwgZnVuY3Rpb24sIG1heSBoYXZlIHwvZHlufAorICAgKitpY29udioJCUNvbXBpbGVkIHdpdGggdGhlIHxpY29udigpfCBmdW5jdGlvbgorICAgKitpY29udi9keW4qCQlMaWtld2lzZSB8aWNvbnYtZHluYW1pY3wgfC9keW58CiBOICAqK2luc2VydF9leHBhbmQqCXxpbnNlcnRfZXhwYW5kfCBJbnNlcnQgbW9kZSBjb21wbGV0aW9uCiBOICAqK2p1bXBsaXN0KgkJfGp1bXBsaXN0fAogQiAgKitrZXltYXAqCQl8J2tleW1hcCd8CkBAIC0zMjUsMTQgKzMyNiwxNyBAQAogICAgKitvc2ZpbGV0eXBlKglTdXBwb3J0IGZvciB0aGUgJ29zZmlsZXR5cGUnIG9wdGlvbiBhbmQgZmlsZXR5cGUKIAkJCWNoZWNraW5nIGluIGF1dG9tYXRpYyBjb21tYW5kcy4gIHxhdXRvY21kLW9zZmlsZXR5cGVzfAogTiAgKitwYXRoX2V4dHJhKglVcC9kb3dud2FyZHMgc2VhcmNoIGluICdwYXRoJyBhbmQgJ3RhZ3MnCi1tICAqK3BlcmwqCQlQZXJsIGludGVyZmFjZSB8cGVybHwsIG1heSBoYXZlIHwvZHlufAorbSAgKitwZXJsKgkJUGVybCBpbnRlcmZhY2UgfHBlcmx8CittICAqK3BlcmwvZHluKgkJUGVybCBpbnRlcmZhY2UgfHBlcmwtZHluYW1pY3wgfC9keW58CiAgICAqK3Bvc3RzY3JpcHQqCXw6aGFyZGNvcHl8IHdyaXRlcyBhIFBvc3RTY3JpcHQgZmlsZQogTiAgKitwcmludGVyKgkJfDpoYXJkY29weXwgY29tbWFuZAogSCAgKitwcm9maWxlKgkJfDpwcm9maWxlfCBjb21tYW5kCi1tICAqK3B5dGhvbioJCVB5dGhvbiBpbnRlcmZhY2UgfHB5dGhvbnwsIG1heSBoYXZlIHwvZHlufAorbSAgKitweXRob24qCQlQeXRob24gaW50ZXJmYWNlIHxweXRob258CittICAqK3B5dGhvbi9keW4qCVB5dGhvbiBpbnRlcmZhY2UgfHB5dGhvbi1keW5hbWljfCB8L2R5bnwKIE4gICorcXVpY2tmaXgqCQl8Om1ha2V8IGFuZCB8cXVpY2tmaXh8IGNvbW1hbmRzCiBCICAqK3JpZ2h0bGVmdCoJCVJpZ2h0IHRvIGxlZnQgdHlwaW5nIHwncmlnaHRsZWZ0J3wKLW0gICorcnVieSoJCVJ1YnkgaW50ZXJmYWNlIHxydWJ5fCwgbWF5IGhhdmUgfC9keW58CittICAqK3J1YnkqCQlSdWJ5IGludGVyZmFjZSB8cnVieXwKK20gICorcnVieS9keW4qCQlSdWJ5IGludGVyZmFjZSB8cnVieS1keW5hbWljfCB8L2R5bnwKIE4gICorc2Nyb2xsYmluZCoJfCdzY3JvbGxiaW5kJ3wKIEIgICorc2lnbnMqCQl8OnNpZ258CiBOICAqK3NtYXJ0aW5kZW50Kgl8J3NtYXJ0aW5kZW50J3wKQEAgLTM0NSw3ICszNDksOCBAQAogTiAgKit0YWdfYmluYXJ5KgliaW5hcnkgc2VhcmNoaW5nIGluIHRhZ3MgZmlsZSB8dGFnLWJpbmFyeS1zZWFyY2h8CiBOICAqK3RhZ19vbGRfc3RhdGljKglvbGQgbWV0aG9kIGZvciBzdGF0aWMgdGFncyB8dGFnLW9sZC1zdGF0aWN8CiBtICAqK3RhZ19hbnlfd2hpdGUqCWFueSB3aGl0ZSBzcGFjZSBhbGxvd2VkIGluIHRhZ3MgZmlsZSB8dGFnLWFueS13aGl0ZXwKLW0gICordGNsKgkJVGNsIGludGVyZmFjZSB8dGNsfCwgbWF5IGhhdmUgfC9keW58CittICAqK3RjbCoJCVRjbCBpbnRlcmZhY2UgfHRjbHwKK20gICordGNsL2R5bioJCVRjbCBpbnRlcmZhY2UgfHRjbC1keW5hbWljfCB8L2R5bnwKICAgICordGVybWluZm8qCQl1c2VzIHx0ZXJtaW5mb3wgaW5zdGVhZCBvZiB0ZXJtY2FwCiBOICAqK3Rlcm1yZXNwb25zZSoJc3VwcG9ydCBmb3IgfHRfUlZ8IGFuZCB8djp0ZXJtcmVzcG9uc2V8CiBOICAqK3RleHRvYmplY3RzKgl8dGV4dC1vYmplY3RzfCBzZWxlY3Rpb24KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZlcnNpb242LnR4dCBiL3J1bnRpbWUvZG9jL3ZlcnNpb242LnR4dAppbmRleCAzZjE3ZWJiLi43NDkwYTQ1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92ZXJzaW9uNi50eHQKKysrIGIvcnVudGltZS9kb2MvdmVyc2lvbjYudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZlcnNpb242LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE9jdCAwOQorKnZlcnNpb242LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE9jdCAxNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTM4NjMsMTYgKzEzODYzLDM2IEBACiBDaGFuZ2VkCQkJCQkJCSpjaGFuZ2VkLTYuNCoKIC0tLS0tLS0KIAotTm90aGluZyByZWxldmFudC4KK1JlbW92ZWQgcnVudGltZS90b29scy90Y2x0YWdzLCBFeHViZXJhbnQgY3RhZ3MgZG9lcyBpdCBiZXR0ZXIuCiAKIAogQWRkZWQJCQkJCQkJKmFkZGVkLTYuNCoKIC0tLS0tCiAKLU5ldHJjIHN5bnRheCBmaWxlLiAoTmlrb2xhaSBXZWlidWxsKQotU3Vkb2VycyBzeW50YXggZmlsZS4gKE5pa29sYWkgV2VpYnVsbCkKLVNNVFByYyBzeW50YXggZmlsZS4gKEtvcm5lbCBLaWVsY3pld3NraSkKLUVzdGVyZWwgc3ludGF4IGZpbGUuIChNYXVyaXppbyBUcmFuY2hlcm8pCitBbHNhY29uZiBzeW50YXggZmlsZSAoTmlrb2xhaSBXZWlidWxsKQorRXJ1Ynkgc3ludGF4LCBpbmRlbnQsIGNvbXBpbGVyIGFuZCBmdHBsdWdpbiBmaWxlIChEb3VnIEtlYXJucykKK0VzdGVyZWwgc3ludGF4IGZpbGUgKE1hdXJpemlvIFRyYW5jaGVybykKK01hdGhlbWF0aWNhIGluZGVudCBmaWxlIChTdGV2ZSBMYXlsYW5kKQorTmV0cmMgc3ludGF4IGZpbGUgKE5pa29sYWkgV2VpYnVsbCkKK1BIUCBjb21waWxlciBmaWxlIChEb3VnIEtlYXJucykKK1Bhc2NhbCBpbmRlbnQgZmlsZSAoTmVpbCBDYXJ0ZXIpCitQcmVzY3JpYmUgc3ludGF4IGZpbGUgKEtsYXVzIE11dGgpCitSdWJ5dW5pdCBjb21waWxlciBmaWxlIChEb3VnIEtlYXJucykKK1NNVFByYyBzeW50YXggZmlsZSAoS29ybmVsIEtpZWxjemV3c2tpKQorU3Vkb2VycyBzeW50YXggZmlsZSAoTmlrb2xhaSBXZWlidWxsKQorVFBQIHN5bnRheCBmaWxlIChHZXJmcmllZCBGdWNocykKK1ZIREwgZnRwbHVnaW4gZmlsZSAoUi4gU2hhbmthcikKK1Zlcmlsb2ctQU1TIHN5bnRheCBmaWxlIChTLiBNeWxlcyBQcmF0aGVyKQorCitCdWxnYXJpYW4ga2V5bWFwIChBbGJlcnRvIE1hcmRlZ2FuKQorQ2FuYWRpYW4ga2V5bWFwIChFcmljIEpvYW5pcykKKworSHVuZ2FyaWFuIG1lbnUgdHJhbnNsYXRpb25zIGluIFVURi04IChLYW50cmEgR2VyZ2VseSkKK1VrcmFpbmlhbiBtZW51IHRyYW5zbGF0aW9ucyAoQm9oZGFuIFZsYXN5dWspCisKK0lyaXNoIG1lc3NhZ2UgdHJhbnNsYXRpb25zIChLZXZpbiBQYXRyaWNrIFNjYW5uZWxsKQorCitDb25maWd1cmUgYWxzbyBjaGVja3MgZm9yIHRjbHNoOC40LgogCiAKIEZpeGVkCQkJCQkJCSpmaXhlZC02LjQqCkBAIC0xMzg4OCw2ICsxMzkwOCwxMCBAQAogR2NjIHdvdWxkIHdhcm4gImRlcmVmZXJlbmNpbmcgdHlwZS1wdW5uZWQgcG9pbnRlciB3aWxsIGJyZWFrIHN0cmljdCAtYWxpYXNpbmcKIHJ1bGVzIi4gIEF2b2lkIHVzaW5nIHR5cGVjYXN0cyBmb3IgdmFyaWFibGUgcG9pbnRlcnMuCiAKK0djYyAzLnggaW50ZXJwcmV0cyB0aGUgLU1NIGFyZ3VtZW50IGRpZmZlcmVudGx5LiAgQ2hhbmdlICItSSAvcGF0aCIgdG8KKyItaXN5c3RlbSAvcGF0aCIgZm9yICJtYWtlIGRlcGVuZCIuCisKKwogUGF0Y2ggNi4zLjAwMQogUHJvYmxlbTogICAgIjpicm93c2Ugc3BsaXQiIGdpdmVzIHRoZSBmaWxlIHNlbGVjdGlvbiBkaWFsb2cgdHdpY2UuIChHb3Jkb24KIAkgICAgQmF6ZWxleSkgIFNhbWUgcHJvYmxlbSBmb3IgIjpicm93c2UgZGlmZnBhdGNoIi4KQEAgLTE0MDU2LDcgKzE0MDgwLDcgQEAKIAogUGF0Y2ggNi4zLjAyNgogUHJvYmxlbTogICAgV2hlbiB+Ly52aW0vYWZ0ZXIvc3ludGF4L3N5bmNvbG9yLnZpbSBjb250YWlucyBhIGNvbW1hbmQgdGhhdAotCSAgICByZWxvYWRzIHRoZSBjb2xvcnMgYW4gZW5sZXNzIGxvb3AgYW5kL29yIGEgY3Jhc2ggbWF5IG9jY3VyLgorCSAgICByZWxvYWRzIHRoZSBjb2xvcnMgYW4gZW5kbGVzcyBsb29wIGFuZC9vciBhIGNyYXNoIG1heSBvY2N1ci4KIFNvbHV0aW9uOiAgIE9ubHkgZnJlZSB0aGUgb2xkIHZhbHVlIG9mIGFuIG9wdGlvbiB3aGVuIGl0IHdhcyBvcmlnaW5hbGx5CiAJICAgIGFsbG9jYXRlZC4gIExpbWl0IHJlY3Vyc2l2ZW5lc3Mgb2YgaW5pdF9oaWdobGlnaHQoKSB0byA1IGxldmVscy4KIEZpbGVzOgkgICAgc3JjL29wdGlvbi5jLCBzcmMvc3ludGF4LmMKQEAgLTE0NDcxLDUgKzE0NDk1LDM2IEBACiBTb2x1dGlvbjogICBMaW1pdCB0aGUgdmFsdWVzIHRvIDEwMDAwIGFuZCAxMDAwLgogRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKIAorUGF0Y2ggNi40YS4wMDEKK1Byb2JsZW06ICAgIFRoZSBVbml4IE1ha2VmaWxlIGNvbnRhaW5lZCB0b28gbWFueSBkZXBlbmRlbmNpZXMgYW5kIGEgZmV3CisJICAgIHVuY29tbWVudGVkIGxpbmVzLgorU29sdXRpb246ICAgUnVuICJtYWtlIGRlcGVuZCIgd2l0aCBtYW51YWwgY2hhbmdlcyB0byBhdm9pZCBhIGdjYworCSAgICBpbmNvbXBhdGliaWxpdHkuICBDb21tZW50IGEgZmV3IGxpbmVzLgorRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKKworUGF0Y2ggNi40Yi4wMDEKK1Byb2JsZW06ICAgIFZpbSByZXBvcnRzICJWaW0gNi40YSIgaW4gdGhlICI6dmVyc2lvbiIgb3V0cHV0LgorU29sdXRpb246ICAgQ2hhbmdlICJhIiB0byAiYiIuIChUb255IE1lY2hlbHluY2spCitGaWxlczoJICAgIHNyYy92ZXJzaW9uLmgKKworUGF0Y2ggNi40Yi4wMDIKK1Byb2JsZW06ICAgIEluIEluc2VydCBtb2RlLCBwYXN0aW5nIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIGVuZCBvZgorCSAgICB0aGUgbGluZSBsZWF2ZXMgdGhlIGN1cnNvciBqdXN0IGJlZm9yZSB0aGF0IGNoYXJhY3Rlci4KK1NvbHV0aW9uOiAgIE1ha2Ugc3VyZSAiZ1AiIGxlYXZlcyB0aGUgY3Vyc29yIGluIHRoZSByaWdodCBwbGFjZSB3aGVuCisJICAgICd2aXJ0dWFsZWRpdCcgaXMgc2V0LgorRmlsZXM6CSAgICBzcmMvb3BzLmMKKworUGF0Y2ggNi40Yi4wMDMgKGFmdGVyIDYuNGIuMDAyKQorUHJvYmxlbTogICAgVGhlIHByb2JsZW0gc3RpbGwgZXhpc3RzIHdoZW4gJ2VuY29kaW5nJyBpcyBzZXQgdG8gImNwOTM2Ii4KK1NvbHV0aW9uOiAgIEZpeCB0aGUgcHJvYmxlbSBpbiBnZXR2dmNvbCgpLCBjb21wdXRlIHRoZSBjb2xhZGQgZmllbGQgY29ycmVjdGx5LgorRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvb3BzLmMKKworUGF0Y2ggNi40Yi4wMDQKK1Byb2JsZW06ICAgIFNlbGVjdGluZyBhIHt9IGJsb2NrIHdpdGggInZpQiIgaW5jbHVkZXMgdGhlICd9JyB3aGVuIHRoZXJlIGlzIGFuCisJICAgIGVtcHR5IGxpbmUgYmVmb3JlIGl0LgorU29sdXRpb246ICAgRG9uJ3QgYWR2YW5jZSB0aGUgY3Vyc29yIHRvIGluY2x1ZGUgYSBsaW5lIGJyZWFrIHdoZW4gaXQncyBhbHJlYWR5CisJICAgIGF0IHRoZSBsaW5lIGJyZWFrLgorRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKKwogCiAgdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0IGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CmluZGV4IGE3ZjEyMDEuLjY1ZWNiYzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAorKysgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgT2N0IDExCisqdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTm92IDIzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC00MjksNyArNDI5LDcgQEAKIAkJCUxha3NobWFuYW4pLgogCiAKLU5ldyBmdW5jdGlvbnM6IH4KK05ldyBhbmQgZXh0ZW5kZWQgZnVuY3Rpb25zOiB+CiAKIHxhZGQoKXwJCQlhcHBlbmQgYW4gaXRlbSB0byBhIExpc3QKIHxhcHBlbmQoKXwJCWFwcGVuZCBMaXN0IG9mIGxpbmVzIHRvIHRoZSBidWZmZXIKQEAgLTU3MCw3ICs1NzAsNyBAQAogQWxzbyBmaXhlcyB0aGUgcHJvYmxlbSB0aGF0IHNldHRpbmcgJ2NsaXBib2FyZCcgdG8gInVubmFtZWQiIGJyZWFrcyB1c2luZwogInl5cCIuCiAKLU1hYzogR1VJIGZvbnQgc2VsZWN0b3IuIChQZXRlciAiUmFpbiBEb2ciIEN1Y2thKQorTWFjOiBHVUkgZm9udCBzZWxlY3Rvci4gKFBldGVyIEN1Y2thKQogCiBNYWM6IHN1cHBvcnQgZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4gKERhIFdvb24gSnVuZykKIApAQCAtNjE5LDYgKzYxOSw5IEBACiAKIE1vdmUgdGhlIGhlbHAgZm9yIHByaW50aW5nIHRvIGEgc2VwYXJhdGUgaGVscCBmaWxlLiAgSXQncyBxdWl0ZSBhIGxvdCBub3cuCiAKK1doZW4gIjpzaWxlbnQiIGlzIHVzZWQgYW5kIGEgYmFja3dhcmRzIHJhbmdlIGlzIGdpdmVuIGZvciBhbiBFeCBjb21tYW5kIHRoZQorcmFuZ2UgaXMgc3dhcHBlZCBhdXRvbWF0aWNhbGx5IGluc3RlYWQgb2YgYXNraW5nIGlmIHRoYXQgaXMgT0suCisKIFRoZSBwYXR0ZXJuIG1hdGNoaW5nIGNvZGUgd2FzIGNoYW5nZWQgZnJvbSBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0byBhbgogaXRlcmF0aXZlIG1lY2hhbmlzbS4gIFRoaXMgYXZvaWRzIG91dC1vZi1zdGFjayBlcnJvcnMuICBTdGF0ZSBpcyBzdG9yZWQgaW4KIGFsbG9jYXRlZCBtZW1vcnksIHJ1bm5pbmcgb3V0IG9mIG1lbW9yeSBjYW4gYWx3YXlzIGJlIGRldGVjdGVkLiAgQWxsb3dzCkBAIC02MzYsNyArNjM5LDcgQEAKIEFkZGVkICJuYnNwIiBpbiAnbGlzdGNoYXJzJy4gKERhdmlkIEJsYW5jaGV0KQogCiBBZGRlZCB0aGUgImFjd3JpdGUiIHZhbHVlIGZvciB0aGUgJ2J1ZnR5cGUnIG9wdGlvbi4gIFRoaXMgaXMgZm9yIGEgYnVmZmVyIHRoYXQKLWRvZXNuIG5vdCBoYXZlIGEgbmFtZSB0aGF0IHJlZmVycyB0byBhIGZpbGUgYW5kIGlzIHdyaXR0ZW4gd2l0aCBCdWZXcml0ZUNtZAorZG9lcyBub3QgaGF2ZSBhIG5hbWUgdGhhdCByZWZlcnMgdG8gYSBmaWxlIGFuZCBpcyB3cml0dGVuIHdpdGggQnVmV3JpdGVDbWQKIGF1dG9jb21tYW5kcy4KIAogRm9yIGxpc3AgaW5kZW50aW5nIGFuZCBtYXRjaGluZyBwYXJlbnRoZXNpczogKFNlcmdleSBLaG9yZXYpCkBAIC04MTYsNyArODE5LDcgQEAKIHNvcnRlZDogdXNlciBjb21tYW5kcywgdmFyaWFibGVzLCBzeW50YXggbmFtZXMsIGV0Yy4KIAogV2hlbiBubyBsb2NhbGUgaXMgc2V0LCB0aHVzIHVzaW5nIHRoZSAiQyIgbG9jYWxlLCBWaW0gd2lsbCB3b3JrIHdpdGggbGF0aW4xCi1jaGFyYWN0ZXJzLCB1c2luZyBpdCdzIG93biBpc3VwcGVyKCkvdG91cHBlcigpL2V0Yy4gZnVuY3Rpb25zLgorY2hhcmFjdGVycywgdXNpbmcgaXRzIG93biBpc3VwcGVyKCkvdG91cHBlcigpL2V0Yy4gZnVuY3Rpb25zLgogCiBXaGVuIHVzaW5nIGFuIHJ4dnQgdGVybWluYWwgZW11bGF0b3IgZ3Vlc3MgdGhlIHZhbHVlIG9mICdiYWNrZ3JvdW5kJyB1c2luZyB0aGUKIENPTE9SRkdCRyBlbnZpcm9ubWVudCB2YXJpYWJsZS4gKENpYXJhbiBNY0NyZWVzaCkKQEAgLTEzOTUsNCArMTM5OCwxMyBAQAogQ29sdW1ucy4gIEZpeGVkIGJhZCBlZmZlY3RzIHdoZW4gcnVubmluZyBvdXQgb2YgbWVtb3J5IChjb21tYW5kIGxpbmUgd291bGQgYmUKIHJldmVyc2VkLCAiOnFhISIgcmVzdWx0ZWQgaW4gIjohYXEiKS4KIAorTW90aWY6ICJndmltIC1pY29uaWMiIG9wZW5lZCB0aGUgd2luZG93IGFueXdheS4gIChEYXZpZCBIYXJyaXNvbikKKworVGhlcmUgaXMgYSB0aW55IGNoYW5jZSB0aGF0IGEgc3ltbGluayBnZXRzIGNyZWF0ZWQgYmV0d2VlbiBjaGVja2luZyBmb3IgYW4KK2V4aXN0aW5nIGZpbGUgYW5kIGNyZWF0aW5nIGEgZmlsZS4gIFVzZSB0aGUgT19OT0ZPTExPVyBmb3Igb3BlbigpIGlmIGl0J3MKK2F2YWlsYWJsZS4KKworSW4gYW4gZW1wdHkgbGluZSAiaXg8Q1RSTC1PPjAiIG1vdmVkIHRoZSBjdXJzb3IgdG8gYWZ0ZXIgdGhlIGxpbmUgaW5zdGVhZCBvZgorc3RpY2tpbmcgdG8gdGhlIGZpcnN0IGNvbHVtbi4KKwogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ppcC50eHQgYi9ydW50aW1lL2RvYy96aXAudHh0CmluZGV4IGFhOTU0NjAuLjNjYTM2ODMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ppcC50eHQKKysrIGIvcnVudGltZS9kb2MvemlwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp6aXAudHh0KglaaXAgRmlsZSBJbnRlcmZhY2UJCQkJU2VwIDE2LCAyMDA1CisqemlwLnR4dCoJWmlwIEZpbGUgSW50ZXJmYWNlCQkJCU5vdiAwMywgMjAwNQogCiBBdXRob3I6ICBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4gIDxOZHJPY2hpcEBTY2FtcGJlbGxQZmFtaWx5LkFiaXpNPgogCSAgKHJlbW92ZSBOT1NQQU0gZnJvbSBDYW1wYmVsbCdzIGVtYWlsIGZpcnN0KQpAQCAtMjAsMTIgKzIwLDIxIEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDIuIFVzYWdlCQkJCQkqemlwLXVzYWdlKiAqemlwLW1hbnVhbCoKIAorICAgV2hlbiBvbmUgZWRpdHMgYSAqLnppcCBmaWxlLCB0aGlzIHBsdWdpbiB3aWxsIGhhbmRsZSBkaXNwbGF5aW5nIGEKKyAgIGNvbnRlbnRzIHBhZ2UuICBTZWxlY3QgYSBmaWxlIHRvIGVkaXQgYnkgbW92aW5nIHRoZSBjdXJzb3IgYXRvcAorICAgdGhlIGRlc2lyZWQgZmlsZSwgdGhlbiBoaXQgdGhlIDxyZXR1cm4+IGtleS4gIEFmdGVyIGVkaXRpbmcsIG9uZSBtYXkKKyAgIGFsc28gd3JpdGUgdG8gdGhlIGZpbGUuICBDdXJyZW50bHksIG9uZSBtYXkgbm90IG1ha2UgYSBuZXcgZmlsZSBpbgorICAgemlwIGFyY2hpdmVzIHZpYSB0aGUgcGx1Z2luLgorCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDMuIEhpc3RvcnkJCQkJCSp6aXAtaGlzdG9yeSoKKyAgIHYzIE9jdCAxOCwgMjAwNSAqIDxhbWF0Y2g+IHVzZWQgaW5zdGVhZCBvZiA8YWZpbGU+IGluIGF1dG9jbWRzCiAgICB2MiBTZXAgMTYsIDIwMDUgKiBzaWxlbmNlZCBzb21lIGNvbW1hbmRzIChhdm9pZGluZyBoaXQtZW50ZXIgcHJvbXB0KQogICAgICAgICAgICAgICAgICAgICogYmVnYW4gdGVzdGluZyB1bmRlciBXaW5kb3dzOyB3b3JrcyB0aHVzIGZhcgogCQkgICAqIGZpbGV0eXBlIGRldGVjdGlvbiBmaXhlZAotICAgdjEgU2VwIDE1LCAyMDA1ICogSW5pdGlhbCByZWxlYXNlLCBoYWQgYnJvd3NpbiwgcmVhZGluZywgYW5kIHdyaXRpbmcKKyAgICAgIE5vdiAwMywgMjAwNSAqIGhhbmRsZXMgd3JpdGluZyB6aXBmaWxlcyBhY3Jvc3MgYSBuZXR3b3JrIHVzaW5nCisgICAgICAgICAgICAgICAgICAgICBuZXRydyNOZXRXcml0ZSgpCisgICB2MSBTZXAgMTUsIDIwMDUgKiBJbml0aWFsIHJlbGVhc2UsIGhhZCBicm93c2luZywgcmVhZGluZywgYW5kIHdyaXRpbmcKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwCg==