ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CmluZGV4IDRjYzY3MTEuLjljNjc5NTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKKysrIGIvcnVudGltZS9kb2MvY2hhbmdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAorKmNoYW5nZS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWF5IDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNDI5LDggKzE0MjksOSBAQAogImMiCWF1dG9tYXRpYyBmb3JtYXR0aW5nIGZvciBjb21tZW50cywgYnV0IG5vdCB0ZXh0IChnb29kIGZvciBDIGNvZGUpCiAidGMiCWF1dG9tYXRpYyBmb3JtYXR0aW5nIGZvciB0ZXh0IGFuZCBjb21tZW50cwogCi1Ob3RlIHRoYXQgd2hlbiAndGV4dHdpZHRoJyBpcyAwLCBWaW0gZG9lcyBubyBmb3JtYXR0aW5nIGFueXdheSAoYnV0IGRvZXMKLWluc2VydCBjb21tZW50IGxlYWRlcnMgYWNjb3JkaW5nIHRvIHRoZSAnY29tbWVudHMnIG9wdGlvbikuCitOb3RlIHRoYXQgd2hlbiAndGV4dHdpZHRoJyBpcyAwLCBWaW0gZG9lcyBubyBhdXRvbWF0aWMgZm9ybWF0dGluZyBhbnl3YXkgKGJ1dAorZG9lcyBpbnNlcnQgY29tbWVudCBsZWFkZXJzIGFjY29yZGluZyB0byB0aGUgJ2NvbW1lbnRzJyBvcHRpb24pLiAgQW4gZXhjZXB0aW9uCitpcyB3aGVuIHRoZSAnYScgZmxhZyBpcyBwcmVzZW50LiB8YXV0by1mb3JtYXR8CiAKIE5vdGUgdGhhdCB3aGVuICdwYXN0ZScgaXMgb24sIFZpbSBkb2VzIG5vIGZvcm1hdHRpbmcgYXQgYWxsLgogCkBAIC0xNDg1LDYgKzE0ODYsOSBAQAogCiAtIEFkZCB0aGUgJ2MnIGZsYWcgdG8gb25seSBhdXRvLWZvcm1hdCBjb21tZW50cy4gIFVzZWZ1bCBpbiBzb3VyY2UgY29kZS4KIAorLSBTZXQgJ3RleHR3aWR0aCcgdG8gdGhlIGRlc2lyZWQgd2lkdGguICBJZiBpdCBpcyB6ZXJvIHRoZW4gNzkgaXMgdXNlZCwgb3IgdGhlCisgIHdpZHRoIG9mIHRoZSBzY3JlZW4gaWYgdGhpcyBpcyBzbWFsbGVyLgorCiBBbmQgYSBmZXcgd2FybmluZ3M6CiAKIC0gV2hlbiBwYXJ0IG9mIHRoZSB0ZXh0IGlzIG5vdCBwcm9wZXJseSBzZXBhcmF0ZWQgaW4gcGFyYWdyYXBocywgbWFraW5nCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ldmFsLnR4dCBiL3J1bnRpbWUvZG9jL2V2YWwudHh0CmluZGV4IDM2OTZjOGEuLjk3OTQwODkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2V2YWwudHh0CisrKyBiL3J1bnRpbWUvZG9jL2V2YWwudHh0CkBAIC0xLDQgKzEsNCBAQAotKmV2YWwudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWF5IDA0CisqZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBNYXkgMDUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIzNDYsMTIgKzIzNDYsMTMgQEAKIAkJCWV4aXN0cygiIyNDb2xvclNjaGVtZSIpCiA8CQlUaGVyZSBtdXN0IGJlIG5vIHNwYWNlIGJldHdlZW4gdGhlIHN5bWJvbCAoJi8kLyovIykgYW5kIHRoZQogCQluYW1lLgotCQlUcmFpbGluZyBjaGFyYWN0ZXJzIHRoYXQgY2FuJ3QgYmUgcGFydCBvZiB0aGUgbmFtZSBhcmUgb2Z0ZW4KLQkJaWdub3JlZCwgYnV0IGRvbid0IGRlcGVuZCBvbiBpdCwgaXQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIQotCQlFeGFtcGxlOiA+Ci0JCQlleGlzdHMoIipzdHJmdGltZSgpIikKLTwJCVRoaXMgY3VycmVudGx5IHdvcmtzLCBidXQgaXQgc2hvdWxkIHJlYWxseSBiZTogPgotCQkJZXhpc3RzKCIqc3RyZnRpbWUiKQorCQlUaGVyZSBtdXN0IGJlIG5vIGV4dHJhIGNoYXJhY3RlcnMgYWZ0ZXIgdGhlIG5hbWUsIGFsdGhvdWdoIGluCisJCWEgZmV3IGNhc2VzIHRoaXMgaXMgaWdub3JlZC4gIFRoYXQgbWF5IGJlY29tZSBtb3JlIHN0cmljdCBpbgorCQl0aGUgZnV0dXJlLCB0aHVzIGRvbid0IGNvdW50IG9uIGl0IQorCQlXb3JraW5nIGV4YW1wbGU6ID4KKwkJCWV4aXN0cygiOm1ha2UiKQorPAkJTk9UIHdvcmtpbmcgZXhhbXBsZTogPgorCQkJZXhpc3RzKCI6bWFrZSBpbnN0YWxsIikKIAogPAkJTm90ZSB0aGF0IHRoZSBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLCBub3QgdGhlIG5hbWUgb2YgdGhlCiAJCXZhcmlhYmxlIGl0c2VsZi4gIEZvciBleGFtcGxlOiA+CkBAIC0yNjc4LDIxICsyNjc5LDI1IEBACiAJCQk6ZWNobyAidG9kbyBteXZhciA9ICIgLiBnZXRidWZ2YXIoInRvZG8iLCAibXl2YXIiKQogPAogZ2V0Y2hhcihbZXhwcl0pCQkJCQkJKmdldGNoYXIoKSoKLQkJR2V0IGEgc2luZ2xlIGNoYXJhY3RlciBmcm9tIHRoZSB1c2VyLiAgSWYgaXQgaXMgYW4gOC1iaXQKLQkJY2hhcmFjdGVyLCB0aGUgcmVzdWx0IGlzIGEgbnVtYmVyLiAgT3RoZXJ3aXNlIGEgU3RyaW5nIGlzCi0JCXJldHVybmVkIHdpdGggdGhlIGVuY29kZWQgY2hhcmFjdGVyLiAgRm9yIGEgc3BlY2lhbCBrZXkgaXQncyBhCi0JCXNlcXVlbmNlIG9mIGJ5dGVzIHN0YXJ0aW5nIHdpdGggMHg4MCAoZGVjaW1hbDogMTI4KS4KKwkJR2V0IGEgc2luZ2xlIGNoYXJhY3RlciBmcm9tIHRoZSB1c2VyIG9yIGlucHV0IHN0cmVhbS4KIAkJSWYgW2V4cHJdIGlzIG9taXR0ZWQsIHdhaXQgdW50aWwgYSBjaGFyYWN0ZXIgaXMgYXZhaWxhYmxlLgogCQlJZiBbZXhwcl0gaXMgMCwgb25seSBnZXQgYSBjaGFyYWN0ZXIgd2hlbiBvbmUgaXMgYXZhaWxhYmxlLgorCQkJUmV0dXJuIHplcm8gb3RoZXJ3aXNlLgogCQlJZiBbZXhwcl0gaXMgMSwgb25seSBjaGVjayBpZiBhIGNoYXJhY3RlciBpcyBhdmFpbGFibGUsIGl0IGlzCi0JCQkJbm90IGNvbnN1bWVkLiAgSWYgb25lIGlzIGF2YWlsYWJsZSBhIG5vbi16ZXJvCi0JCQkJbnVtYmVyIGlzIHJldHVybmVkLiAgRm9yIGEgb25lLWJ5dGUgY2hhcmFjdGVyCi0JCQkJaXQgaXMgdGhlIGNoYXJhY3RlciBpdHNlbGYuCi0JCUlmIGEgbm9ybWFsIGNoYXJhY3RlciBhdmFpbGFibGUsIGl0IGlzIHJldHVybmVkIGFzIGEgTnVtYmVyLgotCQlVc2UgbnIyY2hhcigpIHRvIGNvbnZlcnQgaXQgdG8gYSBTdHJpbmcuCi0JCVRoZSByZXR1cm5lZCB2YWx1ZSBpcyB6ZXJvIGlmIG5vIGNoYXJhY3RlciBpcyBhdmFpbGFibGUuCi0JCVRoZSByZXR1cm5lZCB2YWx1ZSBpcyBhIHN0cmluZyBvZiBjaGFyYWN0ZXJzIGZvciBzcGVjaWFsIGtleXMKLQkJYW5kIHdoZW4gYSBtb2RpZmllciAoc2hpZnQsIGNvbnRyb2wsIGFsdCkgd2FzIHVzZWQuCisJCQlub3QgY29uc3VtZWQuICBSZXR1cm4gemVybyBpZiBubyBjaGFyYWN0ZXIgYXZhaWxhYmxlLgorCisJCVdpdGhvdXQge2V4cHJ9IGFuZCB3aGVuIHtleHByfSBpcyAwIGEgd2hvbGUgY2hhcmFjdGVyIG9yCisJCXNwZWNpYWwga2V5IGlzIHJldHVybmVkLiAgSWYgaXQgaXMgYW4gOC1iaXQgY2hhcmFjdGVyLCB0aGUKKwkJcmVzdWx0IGlzIGEgbnVtYmVyLiAgVXNlIG5yMmNoYXIoKSB0byBjb252ZXJ0IGl0IHRvIGEgU3RyaW5nLgorCQlPdGhlcndpc2UgYSBTdHJpbmcgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZW5jb2RlZCBjaGFyYWN0ZXIuCisJCUZvciBhIHNwZWNpYWwga2V5IGl0J3MgYSBzZXF1ZW5jZSBvZiBieXRlcyBzdGFydGluZyB3aXRoIDB4ODAKKwkJKGRlY2ltYWw6IDEyOCkuICBUaGUgcmV0dXJuZWQgdmFsdWUgaXMgYWxzbyBhIFN0cmluZyB3aGVuIGEKKwkJbW9kaWZpZXIgKHNoaWZ0LCBjb250cm9sLCBhbHQpIHdhcyB1c2VkIHRoYXQgaXMgbm90IGluY2x1ZGVkCisJCWluIHRoZSBjaGFyYWN0ZXIuCisKKwkJV2hlbiB7ZXhwcn0gaXMgMSBvbmx5IHRoZSBmaXJzdCBieXRlIGlzIHJldHVybmVkLiAgRm9yIGEKKwkJb25lLWJ5dGUgY2hhcmFjdGVyIGl0IGlzIHRoZSBjaGFyYWN0ZXIgaXRzZWxmLgorCiAJCVRoZXJlIGlzIG5vIHByb21wdCwgeW91IHdpbGwgc29tZWhvdyBoYXZlIHRvIG1ha2UgY2xlYXIgdG8gdGhlCiAJCXVzZXIgdGhhdCBhIGNoYXJhY3RlciBoYXMgdG8gYmUgdHlwZWQuCiAJCVRoZXJlIGlzIG5vIG1hcHBpbmcgZm9yIHRoZSBjaGFyYWN0ZXIuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9oZWxwLnR4dCBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CmluZGV4IDc4ODE0M2EuLjc5YWU1YjkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2hlbHAudHh0CisrKyBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CkBAIC0xLDQgKzEsNCBAQAotKmhlbHAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1heSAwNAorKmhlbHAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1heSAwNQogCiAJCQlWSU0gLSBtYWluIGhlbHAgZmlsZQogCQkJCQkJCQkJIGsKQEAgLTIwMiw2ICsyMDIsMTIgQEAKIHx0ZXN0LnR4dHwJVGVzdGluZyB0aGUgaOlscCBj9m1t5W5kIG70dwogfHR5cGVjb3JyLnR4dHwJUGx1Z2luIGZvciBjb3JyZWN0aW5nIHR5cGluZyBtaXN0YWtlcwogfGhlbHBwLnR4dHwJRHVtbXkgbGluZSB0byBhdm9pZCBhbiBlcnJvciBtZXNzYWdlCit8Y2VjdXRpbC50eHR8CURyQ2hpcCdzIFV0aWxpdGllcwkJCQlKdW4gMTEsIDIwMDQKK3xleGFtcGxlLnR4dHwJRXhhbXBsZSBmb3IgYSBsb2NhbGx5IGFkZGVkIGhlbHAgZmlsZQorfG1hdGNoaXQudHh0fCAgIEV4dGVuZGVkICIlIiBtYXRjaGluZworfHRlc3QudHh0fAlUZXN0aW5nIHRoZSBo6WxwIGP2bW3lbmQgbvR3Cit8dHlwZWNvcnIudHh0fAlQbHVnaW4gZm9yIGNvcnJlY3RpbmcgdHlwaW5nIG1pc3Rha2VzCit8aGVscHAudHh0fAlEdW1teSBsaW5lIHRvIGF2b2lkIGFuIGVycm9yIG1lc3NhZ2UKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqYmFycyoJCUJhcnMgZXhhbXBsZQpAQCAtMjEwLDcgKzIxNiw3IEBACiBDVFJMLVQsIENUUkwtTywgZzxSaWdodE1vdXNlPiwgb3IgPEMtUmlnaHRNb3VzZT4gdG8gZ28gYmFjayB0byB3aGVyZSB5b3Ugd2VyZS4KIAogTm90ZSB0aGF0IHRhZ3MgYXJlIHdpdGhpbiB8IGNoYXJhY3RlcnMsIGJ1dCB3aGVuIGhpZ2hsaWdodGluZyBpcyBlbmFibGVkIHRoZXNlCi1hcmUgaGlkZGVuLiAgVGhhdCBtYWtlcyBpdCBlYXNpZXIgdG8gcmVhZCB0aGUgY29tbWFuZC4KK2FyZSBoaWRkZW4uICBUaGF0IG1ha2VzIGl0IGVhc2llciB0byByZWFkIGEgY29tbWFuZC4KIAogQW55d2F5LCB5b3UgY2FuIHVzZSBDVFJMLV0gb24gYW55IHdvcmQsIGFsc28gd2hlbiBpdCBpcyBub3Qgd2l0aGluIHwsIGFuZCBWaW0KIHdpbGwgdHJ5IHRvIGZpbmQgaGVscCBmb3IgaXQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0IGIvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAppbmRleCA0OGQ0NTUwLi45N2U5NjRlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBNYXkgMDMKKyppbnNlcnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1heSAwNQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTAyMCw4ICsxMDIwLDkgQEAKIAlpbmZvCQltb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpdGVtLCBjYW4gYmUgZGlzcGxheWVkIGluIGEKIAkJCXByZXZpZXcgd2luZG93CiAJa2luZAkJc2luZ2xlIGxldHRlciBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIGNvbXBsZXRpb24KLQlpY2FzZQkJd2hlbiBub24temVybyBjYXNlIGlzIHRvIGJlIGlnbm9yZWQ7IHdoZW4gb21pdHRlZAotCQkJdGhlICdpZ25vcmVjYXNlJyBvcHRpb24gaXMgdXNlZAorCWljYXNlCQl3aGVuIG5vbi16ZXJvIGNhc2UgaXMgdG8gYmUgaWdub3JlZCB3aGVuIGNvbXBhcmluZworCQkJaXRlbXMgdG8gYmUgZXF1YWw7IHdoZW4gb21pdHRlZCB6ZXJvIGlzIHVzZWQsIHRodXMKKwkJCWl0ZW1zIHRoYXQgb25seSBkaWZmZXIgaW4gY2FzZSBhcmUgYWRkZWQKIAlkdXAJCXdoZW4gbm9uLXplcm8gdGhpcyBtYXRjaCB3aWxsIGJlIGFkZGVkIGV2ZW4gd2hlbiBhbgogCQkJaXRlbSB3aXRoIHRoZSBzYW1lIHdvcmQgaXMgYWxyZWFkeSBwcmVzZW50LgogCg==