ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggMGI3NTdmMy4uYjg1NDM2MiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgQXVnIDMwCisqZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgU2VwIDEzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC05MzAsNyArOTMwLDcgQEAKIHN5bklEYXR0cigge3N5bklEfSwge3doYXR9IFssIHttb2RlfV0pCiAJCQkJU3RyaW5nCWF0dHJpYnV0ZSB7d2hhdH0gb2Ygc3ludGF4IElEIHtzeW5JRH0KIHN5bklEdHJhbnMoIHtzeW5JRH0pCQlOdW1iZXIJdHJhbnNsYXRlZCBzeW50YXggSUQgb2Yge3N5bklEfQotc3lzdGVtKCB7ZXhwcn0pCQkJU3RyaW5nCW91dHB1dCBvZiBzaGVsbCBjb21tYW5kIHtleHByfQorc3lzdGVtKCB7ZXhwcn0gWywge2lucHV0fV0pCVN0cmluZwlvdXRwdXQgb2Ygc2hlbGwgY29tbWFuZC9maWx0ZXIge2V4cHJ9CiB0ZW1wbmFtZSgpCQkJU3RyaW5nCW5hbWUgZm9yIGEgdGVtcG9yYXJ5IGZpbGUKIHRvbG93ZXIoIHtleHByfSkJCVN0cmluZwl0aGUgU3RyaW5nIHtleHByfSBzd2l0Y2hlZCB0byBsb3dlcmNhc2UKIHRvdXBwZXIoIHtleHByfSkJCVN0cmluZwl0aGUgU3RyaW5nIHtleHByfSBzd2l0Y2hlZCB0byB1cHBlcmNhc2UKQEAgLTExMTEsNyArMTExMSw3IEBACiAJCWZlYXR1cmUsIC0xIGlzIHJldHVybmVkLgogCiAJCQkJCQkJKmNvbCgpKgotY29sKHtleHByfSkJVGhlIHJlc3VsdCBpcyBhIE51bWJlciwgd2hpY2ggaXMgdGhlIGNvbHVtbiBvZiB0aGUgZmlsZQorY29sKHtleHByfSkJVGhlIHJlc3VsdCBpcyBhIE51bWJlciwgd2hpY2ggaXMgdGhlIGJ5dGUgaW5kZXggb2YgdGhlIGNvbHVtbgogCQlwb3NpdGlvbiBnaXZlbiB3aXRoIHtleHByfS4gIFRoZSBhY2NlcHRlZCBwb3NpdGlvbnMgYXJlOgogCQkgICAgLgkgICAgdGhlIGN1cnNvciBwb3NpdGlvbgogCQkgICAgJAkgICAgdGhlIGVuZCBvZiB0aGUgY3Vyc29yIGxpbmUgKHRoZSByZXN1bHQgaXMgdGhlCkBAIC0yNjUzLDEwICsyNjUzLDE1IEBACiAJCWhpZ2hsaWdodCB0aGUgY2hhcmFjdGVyLiAgSGlnaGxpZ2h0IGxpbmtzIGdpdmVuIHdpdGgKIAkJIjpoaWdobGlnaHQgbGluayIgYXJlIGZvbGxvd2VkLgogCi0JCQkJCQkJKnN5c3RlbSgpKgotc3lzdGVtKHtleHByfSkJR2V0IHRoZSBvdXRwdXQgb2YgdGhlIHNoZWxsIGNvbW1hbmQge2V4cHJ9LiAgTm90ZTogbmV3bGluZXMKLQkJaW4ge2V4cHJ9IG1heSBjYXVzZSB0aGUgY29tbWFuZCB0byBmYWlsLiAgVGhlIGNoYXJhY3RlcnMgaW4KLQkJJ3NoZWxscXVvdGUnIGFuZCAnc2hlbGx4cXVvdGUnIG1heSBhbHNvIGNhdXNlIHRyb3VibGUuCitzeXN0ZW0oe2V4cHJ9IFssIHtpbnB1dH1dKQkJCQkqc3lzdGVtKCkqICpFNjc3KgorCQlHZXQgdGhlIG91dHB1dCBvZiB0aGUgc2hlbGwgY29tbWFuZCB7ZXhwcn0uCisJCVdoZW4ge2lucHV0fSBpcyBnaXZlbiwgdGhpcyBzdHJpbmcgaXMgd3JpdHRlbiB0byBhIGZpbGUgYW5kCisJCXBhc3NlZCBhcyBzdGRpbiB0byB0aGUgY29tbWFuZC4gIFRoZSBzdHJpbmcgaXMgd3JpdHRlbiBhcy1pcywKKwkJeW91IG5lZWQgdG8gdGFrZSBjYXJlIG9mIHVzaW5nIHRoZSBjb3JyZWN0IGxpbmUgc2VwYXJhdG9ycworCQl5b3Vyc2VsZi4KKwkJTm90ZTogbmV3bGluZXMgaW4ge2V4cHJ9IG1heSBjYXVzZSB0aGUgY29tbWFuZCB0byBmYWlsLiAgVGhlCisJCWNoYXJhY3RlcnMgaW4gJ3NoZWxscXVvdGUnIGFuZCAnc2hlbGx4cXVvdGUnIG1heSBhbHNvIGNhdXNlCisJCXRyb3VibGUuCiAJCVRoaXMgaXMgbm90IHRvIGJlIHVzZWQgZm9yIGludGVyYWN0aXZlIGNvbW1hbmRzLgogCQlUaGUgcmVzdWx0IGlzIGEgU3RyaW5nLiAgRXhhbXBsZTogPgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbmRleC50eHQgYi9ydW50aW1lL2RvYy9pbmRleC50eHQKaW5kZXggMjIyNGZhYy4uNjI1NzRkNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5kZXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luZGV4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSppbmRleC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBKdWwgMTEKKyppbmRleC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBTZXAgMDcKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTExMDMsNiArMTEwMyw3IEBACiB8OmN1bm1lbnV8CTpjdW5tZVtudV0JcmVtb3ZlIG1lbnUgZm9yIENvbW1hbmQtbGluZSBtb2RlCiB8OmN3aW5kb3d8CTpjd1tpbmRvd10Jb3BlbiBvciBjbG9zZSBxdWlja2ZpeCB3aW5kb3cKIHw6ZGVsZXRlfAk6ZFtlbGV0ZV0JZGVsZXRlIGxpbmVzCit8OmRlbG1hcmtzfAk6ZGVsbVthcmtzXQlkZWxldGUgbWFya3MKIHw6ZGVidWd8CTpkZWJbdWddCXJ1biBhIGNvbW1hbmQgaW4gZGVidWdnaW5nIG1vZGUKIHw6ZGVidWdncmVlZHl8CTpkZWJ1Z2dbcmVlZHldCXJlYWQgZGVidWcgbW9kZSBjb21tYW5kcyBmcm9tIG5vcm1hbCBpbnB1dAogfDpkZWxjb21tYW5kfAk6ZGVsY1tvbW1hbmRdCWRlbGV0ZSB1c2VyLWRlZmluZWQgY29tbWFuZApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbW90aW9uLnR4dCBiL3J1bnRpbWUvZG9jL21vdGlvbi50eHQKaW5kZXggNGRmMzU0My4uOWQxNDllMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbW90aW9uLnR4dAorKysgYi9ydW50aW1lL2RvYy9tb3Rpb24udHh0CkBAIC0xLDQgKzEsNCBAQAotKm1vdGlvbi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IEp1bCAyNQorKm1vdGlvbi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IFNlcCAwNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNzMyLDYgKzczMiwyNCBAQAogCQkJCTptYXJrcyBhQgogPAkJCXRvIGxpc3QgbWFya3MgJ2EnIGFuZCAnQicuICB7bm90IGluIFZpfQogCisJCQkJCQkJKjpkZWxtKiAqOmRlbG1hcmtzKgorOmRlbG1bYXJrc10ge21hcmtzfSAJRGVsZXRlIHRoZSBzcGVjaWZpZWQgbWFya3MuICBNYXJrcyB0aGF0IGNhbiBiZSBkZWxldGVkCisJCQlpbmNsdWRlIEEtWiBhbmQgMC05LiAgWW91IGNhbm5vdCBkZWxldGUgdGhlICcgbWFyay4KKwkJCVRoZXkgY2FuIGJlIHNwZWNpZmllZCBieSBnaXZpbmcgdGhlIGxpc3Qgb2YgbWFyaworCQkJbmFtZXMsIG9yIHdpdGggYSByYW5nZSwgc2VwYXJhdGVkIHdpdGggYSBkYXNoLiAgU3BhY2VzCisJCQlhcmUgaWdub3JlZC4gIEV4YW1wbGVzOiA+CisJCQkgICA6ZGVsbWFya3MgYQkgICAgICBkZWxldGVzIG1hcmsgYQorCQkJICAgOmRlbG1hcmtzIGEgYiAxICAgIGRlbGV0ZXMgbWFya3MgYSwgYiBhbmQgMQorCQkJICAgOmRlbG1hcmtzIEFhICAgICAgIGRlbGV0ZXMgbWFya3MgQSBhbmQgYQorCQkJICAgOmRlbG1hcmtzIHAteiAgICAgIGRlbGV0ZXMgbWFya3MgaW4gdGhlIHJhbmdlIHAgdG8gegorCQkJICAgOmRlbG1hcmtzIF4uW10gICAgIGRlbGV0ZXMgbWFya3MgXiAuIFsgXQorCQkJICAgOmRlbG1hcmtzIFwiCSAgICAgIGRlbGV0ZXMgbWFyayAiCis8CQkJe25vdCBpbiBWaX0KKworOmRlbG1bYXJrc10hCQlEZWxldGUgYWxsIG1hcmtzIGZvciB0aGUgY3VycmVudCBidWZmZXIsIGJ1dCBub3QgbWFya3MKKwkJCUEtWiBvciAwLTkuCisJCQl7bm90IGluIFZpfQorCiBBIG1hcmsgaXMgbm90IHZpc2libGUgaW4gYW55IHdheS4gIEl0IGlzIGp1c3QgYSBwb3NpdGlvbiBpbiB0aGUgZmlsZSB0aGF0IGlzCiByZW1lbWJlcmVkLiAgRG8gbm90IGNvbmZ1c2UgbWFya3Mgd2l0aCBuYW1lZCByZWdpc3RlcnMsIHRoZXkgYXJlIHRvdGFsbHkKIHVucmVsYXRlZC4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0IGIvcnVudGltZS9kb2MvcGF0dGVybi50eHQKaW5kZXggMDRlZWY3Zi4uOWYyMTVkNyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGF0dGVybi50eHQKKysrIGIvcnVudGltZS9kb2MvcGF0dGVybi50eHQKQEAgLTEsNCArMSw0IEBACi0qcGF0dGVybi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgSnVsIDI0CisqcGF0dGVybi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgU2VwIDA3CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC00MzEsNyArNDMxLDcgQEAKIAl4CXgJYSBjaGFyYWN0ZXIgd2l0aCBubyBzcGVjaWFsIG1lYW5pbmcgbWF0Y2hlcyBpdHNlbGYKIAogfC9bXXwJW10JXFtdCWFueSBjaGFyYWN0ZXIgc3BlY2lmaWVkIGluc2lkZSB0aGUgW10KLXwvXCVbXXwgXCVbXQlcJVtdCWEgbGlzdCBvZiBvcHRpb25hbGx5IG1hdGNoZWQgYXRvbXMKK3wvXCVbXXwgXCVbXQlcJVtdCWEgc2VxdWVuY2Ugb2Ygb3B0aW9uYWxseSBtYXRjaGVkIGF0b21zCiAKIHwvXGN8CVxjCVxjCWlnbm9yZSBjYXNlCiB8L1xDfAlcQwlcQwltYXRjaCBjYXNlCkBAIC00NDIsNiArNDQyLDEyIEBACiB8L1xafAlcWglcWglpZ25vcmUgZGlmZmVyZW5jZXMgaW4gVW5pY29kZSAiY29tYmluaW5nIGNoYXJhY3RlcnMiLgogCQkJVXNlZnVsIHdoZW4gc2VhcmNoaW5nIHZvd2VsZWQgSGVicmV3IG9yIEFyYWJpYyB0ZXh0LgogCit8L1wlZHwJXCVkCVwlZAltYXRjaCBzcGVjaWZpZWQgZGVjaW1hbCBjaGFyYWN0ZXIgKGVnIFwlZDEyMworfC9cJXh8CVwleAlcJXgJbWF0Y2ggc3BlY2lmaWVkIGhleCBjaGFyYWN0ZXIgKGVnIFwleDJhKQorfC9cJW98CVwlbwlcJW8JbWF0Y2ggc3BlY2lmaWVkIG9jdGFsIGNoYXJhY3RlciAoZWcgXCVvMDQwKQorfC9cJXV8CVwldQlcJXUJbWF0Y2ggc3BlY2lmaWVkIG11bHRpYnl0ZSBjaGFyYWN0ZXIgKGVnIFwldTIwYWMpCit8L1wlVXwJXCVVCVwlVQltYXRjaCBzcGVjaWZpZWQgbGFyZ2UgbXVsdGlieXRlIGNoYXJhY3RlciAoZWcKKwkJCVwlVTEyMzQ1Njc4KQogCiBFeGFtcGxlCQkJbWF0Y2hlcyB+CiBcPFxJXGkqCQlvcgpAQCAtOTg4LDYgKzk5NCwxMSBAQAogCQlcdAk8VGFiPgogCQlccgk8Q1I+CShOT1QgZW5kLW9mLWxpbmUhKQogCQlcYgk8QlM+CisJCVxkMTIzCWRlY2ltYWwgbnVtYmVyIG9mIGNoYXJhY3RlcgorCQlcbzQwCW9jdGFsIG51bWJlciBvZiBjaGFyYWN0ZXIgdXAgdG8gMDM3NworCQlceDIwCWhleGFkZWNpbWFsIG51bWJlciBvZiBjaGFyYWN0ZXIgdXAgdG8gMHhmZgorCQlcdTIwQUMJaGV4LiBudW1iZXIgb2YgbXVsdGlieXRlIGNoYXJhY3RlciB1cCB0byAweGZmZmYKKwkJXFUxMjM0CWhleC4gbnVtYmVyIG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXIgdXAgdG8gMHhmZmZmZmZmZgogCSAgTk9URTogVGhlIG90aGVyIGJhY2tzbGFzaCBjb2RlcyBtZW50aW9uZWQgYWJvdmUgZG8gbm90IHdvcmsgaW5zaWRlCiAJICBbXSEKIAktIE1hdGNoaW5nIHdpdGggYSBjb2xsZWN0aW9uIGNhbiBiZSBzbG93LCBiZWNhdXNlIGVhY2ggY2hhcmFjdGVyIGluCkBAIC05OTYsNyArMTAwNyw3IEBACiAJICBtdWNoIGZhc3RlciB0aGFuICJbMC05XSIgYW5kIG1hdGNoZXMgdGhlIHNhbWUgY2hhcmFjdGVycy4KIAogCQkJCQkJKi9cJVtdKiAqRTY5KiAqRTcwKiAqRTM2OSoKLVwlW10JQSBsaXN0IG9mIG9wdGlvbmFsbHkgbWF0Y2hlZCBhdG9tcy4gIFRoaXMgYWx3YXlzIG1hdGNoZXMuCitcJVtdCUEgc2VxdWVuY2Ugb2Ygb3B0aW9uYWxseSBtYXRjaGVkIGF0b21zLiAgVGhpcyBhbHdheXMgbWF0Y2hlcy4KIAlJdCBtYXRjaGVzIGFzIG11Y2ggb2YgdGhlIGxpc3Qgb2YgYXRvbXMgaXQgY29udGFpbnMgYXMgcG9zc2libGUuICBUaHVzCiAJaXQgc3RvcHMgYXQgdGhlIGZpcnN0IGF0b20gdGhhdCBkb2Vzbid0IG1hdGNoLiAgRm9yIGV4YW1wbGU6ID4KIAkJL3JcJVtlYWRdCkBAIC0xMDExLDYgKzEwMjIsMTcgQEAKIDwJTWF0Y2hlcyB0aGUgd29yZHMgInIiLCAicmUiLCAicm8iLCAicmVhIiwgInJvYSIsICJyZWFkIiBhbmQgInJvYWQiLgogCXtub3QgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUgK3N5bnRheCBmZWF0dXJlfQogCisJCQkJKi9cJWQqICovXCV4KiAqL1wlbyogKi9cJXUqICovXCVVLyogKkU2NzgqCisKK1wlZDEyMwlNYXRjaGVzIHRoZSBjaGFyYWN0ZXIgc3BlY2lmaWVkIHdpdGggYSBkZWNpbWFsIG51bWJlci4gIE11c3QgYmUKKwlmb2xsb3dlZCBieSBhIG5vbi1kaWdpdC4KK1wlbzQwCU1hdGNoZXMgdGhlIGNoYXJhY3RlciBzcGVjaWZpZWQgd2l0aCBhbiBvY3RhbCBudW1iZXIgdXAgdG8gMDM3Ny4KKwlOdW1iZXJzIGJlbG93IDA0MCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgbm9uLW9jdGFsIGRpZ2l0IG9yIGEgbm9uLWRpZ2l0LgorXCV4MmEJTWF0Y2hlcyB0aGUgY2hhcmFjdGVyIHNwZWNpZmllZCB3aXRoIHVwIHRvIHR3byBoZXhhZGVjaW1hbCBjaGFyYWN0ZXJzLgorXCV1MjBBQwlNYXRjaGVzIHRoZSBjaGFyYWN0ZXIgc3BlY2lmaWVkIHdpdGggdXAgdG8gZm91ciBoZXhhZGVjaW1hbAorCWNoYXJhY3RlcnMuCitcJVUxMjM0YWJjZAlNYXRjaGVzIHRoZSBjaGFyYWN0ZXIgc3BlY2lmaWVkIHdpdGggdXAgdG8gZWlnaHQgaGV4YWRlY2ltYWwKKwljaGFyYWN0ZXJzLgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDcuIElnbm9yaW5nIGNhc2UgaW4gYSBwYXR0ZXJuCQkJCQkqL2lnbm9yZWNhc2UqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9uZXRydy50eHQgYi9ydW50aW1lL2RvYy9waV9uZXRydy50eHQKaW5kZXggMDY4ZDQyYi4uOTkxYzlhNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfbmV0cncudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9uZXRydy50eHQgIEZvciBWaW0gdmVyc2lvbiA2LjIuICBMYXN0IGNoYW5nZTogSnVsIDMwLCAyMDA0CisqcGlfbmV0cncudHh0ICBGb3IgVmltIHZlcnNpb24gNi4yLiAgTGFzdCBjaGFuZ2U6IFNlcCAxMCwgMjAwNAogCiAKIAkJVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCkBAIC0xNyw5ICsxNywxMCBAQAogNS4gIEV4IENvbW1hbmRzLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctZXh8CiA2LiAgVmFyaWFibGVzIGFuZCBPcHRpb25zLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy12YXJ8CiA3LiAgRGlyZWN0b3J5IEJyb3dzZXIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1icm93c2V8Ci04LiAgRGVidWdnaW5nLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1kZWJ1Z3wKLTkuICBIaXN0b3J5Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LWhpc3Rvcnl8Ci0xMC4gQ3JlZGl0cy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1jcmVkaXRzfAorOC4gIFByb2JsZW1zIGFuZCBGaXhlcy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctcHJvYmxlbXN8Cis5LiAgRGVidWdnaW5nLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1kZWJ1Z3wKKzEwLiBIaXN0b3J5Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LWhpc3Rvcnl8CisxMS4gQ3JlZGl0cy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1jcmVkaXRzfAogCiBUaGUgZnVuY3Rpb25hbGl0eSBtZW50aW9uZWQgaGVyZSBpcyBkb25lIHZpYSB1c2luZyB8c3RhbmRhcmQtcGx1Z2lufAogdGVjaG5pcXVlcy4gIFRoaXMgcGx1Z2luIGlzIG9ubHkgYXZhaWxhYmxlIGlmCkBAIC0xMTQsMTcgKzExNSwyMiBAQAogCQkJICA9MCB1c2UgZGVmYXVsdCBmdHAJCSAgICAgICAodWlkIHBhc3N3b3JkKQogCQkJICA9MSB1c2UgYWx0ZXJuYXRlIGZ0cCBtZXRob2QJICAodXNlciB1aWQgcGFzc3dvcmQpCiAJZzpuZXRyd19mdHBtb2RlICAgPSJiaW5hcnkiCQkJCSAgICAoZGVmYXVsdCkKLQkJCSAgPSJhc2NpaSIJCQkgICAgIChvciB5b3VyIGNob2ljZSkKKwkJCSAgPSJhc2NpaSIKIAlnOm5ldHJ3X3VpZAkgIChmdHApIHVzZXItaWQsICAgICAgcmV0YWluZWQgb24gYSBwZXItc2Vzc2lvbiBiYXNpcwogCWc6bmV0cndfcGFzc3dkCSAgKGZ0cCkgcGFzc3dvcmQsICAgICByZXRhaW5lZCBvbiBhIHBlci1zZXNzaW9uIGJhc2lzCi0JZzpuZXRyd193aW45NWZ0cCAgPTAgdXNlIHVuaXgtc3R5bGUgZnRwIGV2ZW4gaWYgd2luOTUvd2luOTgvd2luTUUKLQkJCSAgPTEgdXNlIGRlZmF1bHQgbWV0aG9kIHRvIGRvIGZ0cAorCWc6bmV0cndfd2luOTVmdHAgID0xIGlmIHVzaW5nIFdpbjk1LCB3aWxsIHJlbW92ZSBmb3VyIHRyYWlsaW5nIGJsYW5rCisJICAgICAgICAgICAgICAgICAgICAgbGluZXMgdGhhdCBvL3MncyBmdHAgInByb3ZpZGVzIiBvbiB0cmFuc2ZlcnMKKwkJCSAgPTAgZm9yY2Ugbm9ybWFsIGZ0cCBiZWhhdmlvciAobm8gdHJhaWxpbmcgbGluZQorCQkJICAgICByZW1vdmFsKQogCWc6bmV0cndfY3lnd2luCSAgPTEgYXNzdW1lIHNjcCB1bmRlciB3aW5kb3dzIGlzIGZyb20gY3lnd2luCisJICAgICAgICAgICAgICAgICAgICAgQWxzbyBwZXJtaXRzIG5ldHdvcmsgYnJvd3NpbmcgdG8gdXNlCisJCQkgICAgIGxzIHdpdGggdGltZSBhbmQgc2l6ZSBzb3J0aW5nCiAJCQkJCQkJIChkZWZhdWx0IGlmIHdpbmRvd3MpCi0JCQkgID0wIGFzc3VtZSBzY3AgdW5kZXIgd2luZG93cyBhY2NlcHRzCi0JCQkgICAgd2luZG93cy1zdHlsZSBwYXRocwkJIChkZWZhdWx0IG90aGVyd2lzZSkKLQlnOm5ldHJ3X3VzZV9udF9yY3A9MCBkb24ndCB1c2UgdGhlIHJjcCBvZiBXaW5OVCwgV2luMjAwMCBhbmQgV2luWFAgKGRlZmF1bHQpCi0JCQkgID0xIHVzZSB0aGUgcmNwIG9mIFdpbk5ULC4uLiBpbiBiaW5hcnkgbW9kZQorCQkJICA9MCBhc3N1bWUgV2luZG93cycgc2NwIGFjY2VwdHMgd2luZG93cy1zdHlsZSBwYXRocworCQkJICAgICBOZXR3b3JrIGJyb3dzaW5nIHVzZXMgZGlyIGluc3RlYWQgb2YgbHMKKwkJCSAgVGhpcyBvcHRpb24gaXMgaWdub3JlZCBpZiB5b3UncmUgdXNpbmcgdW5peAorCWc6bmV0cndfdXNlX250X3JjcD0wIGRvbid0IHVzZSB0aGUgcmNwIG9mIFdpbk5ULCBXaW4yMDAwIGFuZCBXaW5YUAorCQkJICA9MSB1c2UgV2luTlQncyByY3AgaW4gYmluYXJ5IG1vZGUgICAgICAgICAoZGVmYXVsdCkKIAogICAgIFBBVEhTCQkJCQkJCSpuZXRydy1wYXRoKgogCkBAIC0xNjcsNyArMTczLDcgQEAKIGNsZWFuIHVwLgogCiBPbmUgbWF5IG1vZGlmeSBhbnkgcHJvdG9jb2wncyBpbXBsZW1lbnRpbmcgZXh0ZXJuYWwgYXBwbGljYXRpb24KLWJ5IHNldHRpbmJnIGEgdmFyaWFibGUgKGV4LiBzY3AgdXNlcyB0aGUgdmFyaWFibGUgZzpuZXRyd19zY3BfY21kLAorYnkgc2V0dGluZyBhIHZhcmlhYmxlIChleC4gc2NwIHVzZXMgdGhlIHZhcmlhYmxlIGc6bmV0cndfc2NwX2NtZCwKIHdoaWNoIGlzIGRlZmF1bHRlZCB0byAic2NwIC1xIikuCiAKIEZ0cCwgYW4gb2xkIHByb3RvY29sLCBzZWVtcyB0byBiZSBibGVzc2VkIGJ5IG51bWVyb3VzIGltcGxlbWVudGF0aW9ucy4KQEAgLTUyOSw2ICs1MzUsNyBAQAogICAgICBpLi4uLi4uLi4uLkxvbmcgTGlzdGluZy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctaXwKICAgICAgPGMtbD4uLi4uLi5SZWZyZXNoaW5nIHRoZSBMaXN0aW5nLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LWN0cmwtbHwKICAgICAgby4uLi4uLi4uLi5Ccm93c2luZyB3aXRoIGEgSG9yaXpvbnRhbCBTcGxpdC4uLi4uLi4ufG5ldHJ3LW98CisgICAgIHAuLi4uLi4uLi4uUHJldmlldyBXaW5kb3cuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1wfAogICAgICBxLi4uLi4uLi4uLkxpc3RpbmcgQm9va21hcmtzLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctcXwKICAgICAgci4uLi4uLi4uLi5SZXZlcnNpbmcgU29ydGluZyBPcmRlci4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LXJ8CiAgICAgIFIuLi4uLi4uLi4uUmVuYW1pbmcgRmlsZXMgb3IgRGlyZWN0b3JpZXMuLi4uLi4uLi4uLnxuZXRydy1SfApAQCAtNTQyLDE0ICs1NDksMTYgQEAKICAgICAgICAgLS0tLS0tLQktLS0tLS0tLS0tLQogCUNvbW1hbmQJRXhwbGFuYXRpb24KICAgICAgICAgLS0tLS0tLQktLS0tLS0tLS0tLQotCSAgID8JQ2F1c2VzIE5ldHJ3IHRvIGlzc3VlIGhlbHAKKzwgICAgICAgICAgPwlDYXVzZXMgTmV0cncgdG8gaXNzdWUgaGVscAogCSA8Y3I+CU5ldHJ3IHdpbGwgZW50ZXIgdGhlIGRpcmVjdG9yeSBvciByZWFkIHRoZSBmaWxlCiAJIDxkZWw+CU5ldHJ3IHdpbGwgYXR0ZW1wdCB0byByZW1vdmUgdGhlIGZpbGUvZGlyZWN0b3J5CiAJICAgZAlNYWtlIGEgZGlyZWN0b3J5CiAJICAgRAlOZXRydyB3aWxsIGF0dGVtcHQgdG8gcmVtb3ZlIHRoZSBmaWxlKHMpL2RpcmVjdG9yeShpZXMpCiAJICAgUglOZXRydyB3aWxsIGF0dGVtcHQgdG8gcmVuYW1lIHRoZSBmaWxlKHMpL2RpcmVjdG9yeShpZXMpCiAJICAgLQlNYWtlcyBOZXRydyBnbyB1cCBvbmUgZGlyZWN0b3J5Ci0JICAgYQlTaG93IGFsbCBvZiBhIGRpcmVjdG9yeSAodGVtcG9yYXJpbHkgaWdub3JlIGc6bmV0cndfbGlzdF9oaWRlKQorCSAgIGEJVG9nZ2xlcyBiZXR3ZWVuIG5vcm1hbCBkaXNwbGF5LAorCSAgICAJaGlkaW5nIChzdXBwcmVzcyBkaXNwbGF5IG9mIGZpbGVzIG1hdGNoaW5nIGc6bmV0cndfbGlzdF9oaWRlKQorCSAgICAJc2hvd2luZyAoZGlzcGxheSBvbmx5IGZpbGVzIHdoaWNoIG1hdGNoIGc6bmV0cndfbGlzdF9oaWRlKQogCSAgIGMJTWFrZSBjdXJyZW50IGJyb3dzaW5nIGRpcmVjdG9yeSB0aGUgY3VycmVudCBkaXJlY3RvcnkKIAkgPGMtaD4JRWRpdCBmaWxlIGhpZGluZyBsaXN0CiAJICAgaQlUb2dnbGVzIGJldHdlZW4gbG9uZyBhbmQgc2hvcnQgbGlzdGluZwpAQCAtNTYxLDEyICs1NzAsMTggQEAKIAkgICB2CUVudGVyIHRoZSBmaWxlL2RpcmVjdG9yeSB1bmRlciB0aGUgY3Vyc29yIGluIGEgbmV3IGJyb3dzZXIKIAkgICAJd2luZG93LiAgQSB2ZXJ0aWNhbCBzcGxpdCBpcyB1c2VkLgogCSAgIHgJQXBwbHkgYSBmdW5jdGlvbiB0byBhIGZpbGUuCi08CisKIE5FVFJXIEJST1dTRVIgVkFSSUFCTEVTCQkJCQkqbmV0cnctYnJvd3NlLXZhcioKID4KIAktLS0JCQkJLS0tLS0tLS0tLS0KIAlWYXIJCQkJRXhwbGFuYXRpb24KIAktLS0JCQkJLS0tLS0tLS0tLS0KKzwJZzpuZXRyd19hbHRvCQkJY2hhbmdlIGZyb20gYWJvdmUgc3BsaXR0aW5nIHRvCisJCQkJCWJlbG93IHNwbGl0dGluZyBieSBzZXR0aW5nIHRoaXMKKwkJCQkJdmFyaWFibGUgKHNlZSB8bmV0cnctb3wpCisJZzpuZXRyd19hbHR2CQkJY2hhbmdlIGZyb20gbGVmdCBzcGxpdHRpbmcgdG8KKwkJCQkJcmlnaHQgc3BsaXR0aW5nIGJ5IHNldHRpbmcgdGhpcworCQkJCQl2YXJpYWJsZSAoc2VlIHxuZXRydy12fCkKIAlnOm5ldHJ3X2Z0cF9icm93c2VfcmVqZWN0CWZ0cCBjYW4gcHJvZHVjZSBhIG51bWJlciBvZiBlcnJvcnMKIAkJCQkJYW5kIHdhcm5pbmdzIHRoYXQgY2FuIHNob3cgdXAgYXMKIAkJCQkJImRpcmVjdG9yaWVzIiBhbmQgImZpbGVzIiBpbiB0aGUKQEAgLTU3Niw2ICs1OTEsMTAgQEAKIAkJCQkJYnJvd3NpbmcgZGlyZWN0b3J5LiAgVGhlIGJyb3dzaW5nCiAJCQkJCWRpcmVjdG9yeSBpcyBjb250YWluZWQgaW4gYjpuZXRyd19jdXJkaXIKIAlnOm5ldHJ3X2xpc3RfY21kCQljb21tYW5kIGZvciBsaXN0aW5nIHJlbW90ZSBkaXJlY3RvcmllcworCWc6bmV0cndfZnRwX2xpc3RfY21kCQlvcHRpb25zIGZvciBwYXNzaW5nIGFsb25nIHRvIGZ0cCBmb3IKKwkJCQkJZGlyZWN0b3J5IGxpc3RpbmcuICBEZWZhdWx0czoKKwkJCQkJIHVuaXggb3IgZzpuZXRyd19jeWd3aW4gc2V0OiA6ICJscyAtbEYiCisJCQkJCSBvdGhlcndpc2UgICAgICAgICAgICAgICAgICAgICAiZGlyIgogCWc6bmV0cndfbGlzdF9oaWRlCQljb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwYXR0ZXJucyBmb3IKIAkJCQkJaGlkaW5nIGZpbGVzCiAJZzpuZXRyd19sb2NhbF9ta2RpcgkJY29tbWFuZCBmb3IgbWFraW5nIGEgbG9jYWwgZGlyZWN0b3J5CkBAIC01OTMsNyArNjEyLDcgQEAKIAkJCQkJY29tbWEtc2VwYXJhdGVkIHBhdHRlcm4gc2VxdWVuY2UKIAlnOm5ldHJ3X3RpbWVmbXQJCQlzcGVjaWZ5IGZvcm1hdCBzdHJpbmcgdG8gc3RyZnRpbWUoKSAoJWMpCiAJZzpuZXRyd193aW5zaXplCQkJc3BlY2lmeSBpbml0aWFsIHNpemUgb2YgbmV3IG8vdiB3aW5kb3dzCi08CisKIElOVFJPRFVDVElPTiBUTyBESVJFQ1RPUlkgQlJPV1NJTkcKIAogTmV0cncgc3VwcG9ydHMgdGhlIGJyb3dzaW5nIG9mIGRpcmVjdG9yaWVzIG9uIHRoZSBsb2NhbCBzeXN0ZW0gYW5kIG9uIHJlbW90ZQpAQCAtNzExLDEwICs3MzAsMTAgQEAKIAogSElESU5HIEZJTEVTIE9SIERJUkVDVE9SSUVTCQkqZzpuZXRydy1hKiAqZzpuZXRyd19saXN0X2hpZGUqCiAKLVRoZSAiYSIgbWFwIHRvZ2dsZXMgdGhlIG5ldHJ3IHZpbSBmaWxlIGJyb3dzZXIgKGJvdGggcmVtb3RlIGFuZCBsb2NhbCkgYmV0d2VlbgotZGlzcGxheWluZyBoaWRkZW4gZmlsZXMgKHNob3ctYWxsKSB2ZXJzdXMgaGlkaW5nIGZpbGVzLiAgRm9yIGZpbGVzIHRvIGJlCi1oaWRkZW4sIHRoZSBnOm5ldHJ3X2xpc3RfaGlkZSB2YXJpYWJsZSBtdXN0IGhvbGQgYSBjb21tYSBkZWxpbWl0ZWQgbGlzdCBvZgotcGF0dGVybnMgKGV4LiBcLm9iaikgdG8gYmUgaGlkZGVuIGZyb20gbm9ybWFsIGxpc3RpbmcuICAoc2VlIHxuZXRydy1ofCkKK05ldHJ3J3MgYnJvd3NpbmcgZmFjaWxpdHkgYWxsb3dzIG9uZSB0byB1c2UgdGhlIGhpZGluZyBsaXN0IGluIG9uZSBvZgordGhyZWUgd2F5czogaWdub3JlIGl0LCBoaWRlIGZpbGVzIHdoaWNoIG1hdGNoLCBhbmQgc2hvdyBvbmx5IHRob3NlIGZpbGVzCit3aGljaCBtYXRjaC4gIFRoZSBnOm5ldHJ3X2xpc3RfaGlkZSB2YXJpYWJsZSBob2xkcyBhIGNvbW1hIGRlbGltaXRlZCBsaXN0CitvZiBwYXR0ZXJucyAoZXguIFwub2JqKSB3aGljaCBzcGVjaWZ5IHRoZSBoaWRpbmcgbGlzdC4gKGFsc28gc2VlIHxuZXRydy1ofCkKIAogCiBFRElUIEZJTEUgT1IgRElSRUNUT1JZIEhJRElORyBMSVNUCQkJCSpuZXRydy1oKgpAQCAtNzI5LDcgKzc0OCwyMCBAQAogCiBOb3JtYWxseSBvbmUgZW50ZXJzIGEgZmlsZSBvciBkaXJlY3RvcnkgdXNpbmcgdGhlIDxjcj4uICBIb3dldmVyLCB0aGUgIm8iIG1hcAogYWxsb3dzIG9uZSB0byBvcGVuIGEgbmV3IHdpbmRvdyB0byBob2xkIHRoZSBuZXcgZGlyZWN0b3J5IGxpc3Rpbmcgb3IgZmlsZS4gIEEKLWhvcml6b250YWwgc3BsaXQgaXMgdXNlZC4gIChhbHNvIHNlZSB8bmV0cnctdnwpCitob3Jpem9udGFsIHNwbGl0IGlzIHVzZWQuICAoZm9yIHZlcnRpY2FsIHNwbGl0dGluZywgc2VlIHxuZXRydy12fCkKKworTm9ybWFsbHksIHRoZSBvIGtleSBzcGxpdHMgdGhlIHdpbmRvdyBob3Jpem9udGFsbHkgd2l0aCB0aGUgbmV3IHdpbmRvdworYW5kIGN1cnNvciBhdCB0aGUgdG9wLiAgVG8gY2hhbmdlIHRvIHNwbGl0dGluZyB0aGUgd2luZG93IGhvcml6b250YWxseQord2l0aCB0aGUgbmV3IHdpbmRvdyBhbmQgY3Vyc29yIGF0IHRoZSBib3R0b20sIGhhdmUKKworCWxldCBnOm5ldHJ3X2FsdG8gPSAxCisKK2luIHlvdXIgPC52aW1yYz4uCisKK1BSRVZJRVcgV0lORE9XCisKK09uZSBtYXkgdXNlIGEgcHJldmlldyB3aW5kb3cgKGN1cnJlbnRseSBvbmx5IGZvciBsb2NhbCBicm93c2luZykgYnkgdXNpbmcKK3RoZSAicCIga2V5IHdoZW4gdGhlIGN1cnNvciBpcyBhdG9wIHRoZSBkZXNpcmVkIGZpbGVuYW1lIHRvIGJlIHByZXZpZXdlZC4KIAogCiBTRUxFQ1RJTkcgU09SVElORyBTVFlMRQkJCQkJCSpuZXRydy1zKgpAQCAtNzY0LDcgKzc5NiwxNSBAQAogCiBOb3JtYWxseSBvbmUgZW50ZXJzIGEgZmlsZSBvciBkaXJlY3RvcnkgdXNpbmcgdGhlIDxjcj4uICBIb3dldmVyLCB0aGUgInYiCiBtYXAgYWxsb3dzIG9uZSB0byBvcGVuIGEgbmV3IHdpbmRvdyB0byBob2xkIHRoZSBuZXcgZGlyZWN0b3J5IGxpc3Rpbmcgb3IKLWZpbGUuICBBIHZlcnRpY2FsIHNwbGl0IGlzIHVzZWQuICAoYWxzbyBzZWUgfG5ldHJ3LW98KQorZmlsZS4gIEEgdmVydGljYWwgc3BsaXQgaXMgdXNlZC4gIChmb3IgaG9yaXpvbnRhbCBzcGxpdHRpbmcsIHNlZSB8bmV0cnctb3wpCisKK05vcm1hbGx5LCB0aGUgdiBrZXkgc3BsaXRzIHRoZSB3aW5kb3cgdmVydGljYWxseSB3aXRoIHRoZSBuZXcgd2luZG93CithbmQgY3Vyc29yIGF0IHRoZSBsZWZ0LiAgVG8gY2hhbmdlIHRvIHNwbGl0dGluZyB0aGUgd2luZG93IHZlcnRpY2FsbHkKK3dpdGggdGhlIG5ldyB3aW5kb3cgYW5kIGN1cnNvciBhdCB0aGUgcmlnaHQsIGhhdmUKKworCWxldCBnOm5ldHJ3X2FsdHYgPSAxCisKK2luIHlvdXIgPC52aW1yYz4uCiAKIAogQ1VTVE9NSVpJTkcgQlJPV1NJTkcgV0lUSCBBIFVTRVIgRlVOQ1RJT04JCQkqbmV0cncteCoKQEAgLTgzMSw3ICs4NzEsNjYgQEAKIAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLTguIERlYnVnZ2luZwkJCQkJCSpuZXRydy1kZWJ1ZyoKKzguIFByb2JsZW1zIGFuZCBGaXhlcwkJCQkJCSpuZXRydy1wcm9ibGVtcyoKKworCShUaGlzIHNlY3Rpb24gaXMgbGlrZWx5IHRvIGdyb3cgYXMgSSBnZXQgZmVlZGJhY2spCisJKGFsc28gc2VlIHxuZXRydy1kZWJ1Z3wpCisKKwlQMS4gSSB1c2Ugd2luZG93cyA5NSwgYW5kIG15IGZ0cCBkdW1wcyBmb3VyIGJsYW5rIGxpbmVzIGF0IHRoZQorCSAgICBlbmQgb2YgZXZlcnkgcmVhZC4KKworCQlTZWUgfG5ldHJ3LWZpeHVwfCwgYW5kIHB1dCB0aGUgZm9sbG93aW5nIGludG8geW91cgorCQk8LnZpbXJjPiBmaWxlOgorCisJCQlsZXQgZzpuZXRyd193aW45NWZ0cD0gMQorCQkKKwkJCisKKwlQMi4gSSB1c2Ugd2luZG93cywgYW5kIG15IG5ldHdvcmsgYnJvd3Npbmcgd2l0aCBmdHAgZG9lc24ndCBzb3J0IGJ5CisJICAgIHRpbWUgb3Igc2l6ZQorCisJCVdpbmRvd3MnIGZ0cCBoYXMgYSBtaW5pbWFsIHN1cHBvcnQgZm9yIGxzIChpZS4gaXQgZG9lc24ndAorCQlhY2NlcHQgc29ydGluZyBvcHRpb25zKS4gIEl0IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLUYgd2hpY2gKKwkJZ2l2ZXMgYW4gZXhwbGFuYXRvcnkgY2hhcmFjdGVyIChBQkMvIGZvciAiQUJDIGlzIGEgZGlyZWN0b3J5IikuCisJCU5ldHJ3IHVzZXMgZGlyIHRvIGdldCBpdHMgc2hvcnQgYW5kIGxvbmcgbGlzdGluZ3MuICBJZiB5b3UKKwkJdGhpbmsgeW91ciBmdHAgZG9lcyBzdXBwb3J0IGEgZnVsbC11cCBscywgcHV0IHRoZSBmb2xsb3dpbmcKKwkJaW50byB5b3VyIDwudmltcmM+OgorCisJCQlsZXQgZzpuZXRyd19mdHBfbGlzdF9jbWQ9ICJscyAtbEYiCisKKwkJQWx0ZXJuYXRpdmVseSwgaWYgeW91IGhhdmUgY3lnd2luIG9uIHlvdXIgV2luZG93cyBib3gsIHB1dAorCQlpbnRvIHlvdXIgPC52aW1yYz46CisKKwkJCWxldCBnOm5ldHJ3X2N5Z3dpbj0gMQorCisJUDMuIEkgdHJpZWQgcmNwOi8vdXNlckBob3N0LyAob3IgcHJvdG9jb2wgb3RoZXIgdGhhbiBmdHApIGFuZCBuZXRydworCSAgICB1c2VkIHNzaCEgIFRoYXQgd2Fzbid0IHdoYXQgSSBhc2tlZCBmb3IuLi4KKworCQlOZXRydyBoYXMgdHdvIG1ldGhvZHMgZm9yIGJyb3dzaW5nIHJlbW90ZSBkaXJlY3Rvcmllczogc3NoCisJCWFuZCBmdHAuICBVbmxlc3MgeW91IHNwZWNpZnkgZnRwIHNwZWNpZmljYWxseSwgc3NoIGlzIHVzZWQuCisJCVdoZW4gaXQgY29tZXMgdGltZSB0byBkbyBkb3dubG9hZCBhIGZpbGUgKG5vdCBqdXN0IGEgZGlyZWN0b3J5CisJCWxpc3RpbmcpLCBuZXRydyB3aWxsIHVzZSB0aGUgZ2l2ZW4gcHJvdG9jb2wgdG8gZG8gc28uCisKKwlQNC4gSSB3b3VsZCBsaWtlIGxvbmcgbGlzdGluZ3MgdG8gYmUgdGhlIGRlZmF1bHQuCisKKwkJbGV0IGc6bmV0cndfbG9uZ2xpc3Q9MQorCisJUDUuIE15IHRpbWVzIGNvbWUgdXAgb2RkbHkgaW4gbG9jYWwgYnJvd3NpbmcKKworCQlEb2VzIHlvdXIgc3lzdGVtJ3Mgc3RyZnRpbWUoKSBhY2NlcHQgdGhlICIlYyIgdG8geWllbGQgZGF0ZXMKKwkJc3VjaCBhcyAiU3VuIEFwciAyNyAxMTo0OToyMyAxOTk3Ij8gIElmIG5vdCwgZG8gYSAibWFuIHN0cmZ0aW1lIgorCQlhbmQgZmluZCBvdXQgd2hhdCBvcHRpb24gc2hvdWxkIGJlIHVzZWQuICBUaGVuIHB1dCBpdCBpbnRvCisJCXlvdXIgPC52aW1yYz46CisJCQlsZXQgZzpuZXRyd190aW1lZm10PSAiJVgiICAod2hlcmUgWCBpcyB0aGUgb3B0aW9uKQorCisJUDYuIEkgZG9uJ3Qgd2FudCBteSBjdXJyZW50IGRpcmVjdG9yeSBjaGFuZ2luZyBqdXN0IGJlY2F1c2UgSSdtCisJICAgIGJyb3dzaW5nIHNvbWV3aGVyZS4KKworCSAgICAJbGV0IGc6bmV0cndfa2VlcGRpcj0gMQorCQorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzkuIERlYnVnZ2luZwkJCQkJCSpuZXRydy1kZWJ1ZyoKIAogVGhlIDxuZXRydy52aW0+IHNjcmlwdCBpcyB0eXBpY2FsbHkgYXZhaWxhYmxlIGFzOgogCkBAIC04NzgsOCArOTc3LDM3IEBACiAJCWRyY2hpcE5PU1BBTSBhdCBjYW1wYmVsbGZhbWlseS5iaXogLSBOT1NQQU0KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci05LiBIaXN0b3J5CQkJCQkJKm5ldHJ3LWhpc3RvcnkqCisxMC4gSGlzdG9yeQkJCQkJCSpuZXRydy1oaXN0b3J5KgogCisJdjQ4OiAqIE9uZSBtYXkgdXNlIGZ0cCB0byBkbyByZW1vdGUgaG9zdCBmaWxlIGJyb3dzaW5nCisJICAgICAqICh3aW5kb3dzIGFuZCAhY3lnd2luKSByZW1vdGUgYnJvd3Npbmcgd2l0aCBmdHAgY2FuIG5vdyB1c2UKKwkgICAgICAgdGhlICJkaXIiIGNvbW1hbmQgaW50ZXJuYWxseSB0byBwcm92aWRlIGxpc3RpbmdzCisJICAgICAqIGc6bmV0cndfa2VlcGRpciBub3cgYWxsb3dzIG9uZSB0byBrZWVwIHRoZSBpbml0aWFsIGN1cnJlbnQKKwkgICAgICAgZGlyZWN0b3J5IGFzIHRoZSBjdXJyZW50IGRpcmVjdG9yeSAobm9ybWFsbHkgdGhlIGxvY2FsCisJICAgICAgIGZpbGUgYnJvd3NlciBtYWtlcyB0aGUgY3VycmVudGx5IHZpZXdlZCBkaXJlY3RvcnkgdGhlCisJICAgICAgIGN1cnJlbnQgZGlyZWN0b3J5KQorCSAgICAgKiBnOm5ldHJ3X2FsdG8gYW5kIGc6bmV0cndfYWx0diBub3cgc3VwcG9ydCBhbHRlcm5hdGUgcGxhY2VtZW50CisJICAgICAgIG9mIHdpbmRvd3Mgc3RhcnRlZCB3aXRoIG8gb3IgdgorCSAgICAgKiBOcmVhZCA/IGFuZCBOd3JpdGUgPyAgbm93IHVzZXMgZWNob21zZyAoaW5zdGVhZCBvZiBlY2hvKSBzbworCSAgICAgICA6bWVzc2FnZXMgY2FuIHJlcGVhdCBzaG93aW5nIHRoZSBoZWxwCisJICAgICAqIGJ1Z2ZpeDogYXZvaWRzIHByb2JsZW1zIHdpdGggcGFydGlhbCBtYXRjaGVzIG9mIGRpcmVjdG9yeSBuYW1lcworCSAgICAgICB0byBwcmlvciBidWZmZXJzIHdpdGggbG9uZ2VyIG5hbWVzCisJICAgICAqIG9uZSBjYW4gc3VwcHJlc3MgZXJyb3IgbWVzc2FnZXMgd2l0aCBnOm5ldHJ3X3F1aWV0CisJICAgICAqIGN0cmwtaCB1c2VkIGluc3RlYWQgb2YgPExlYWRlcj5oIGZvciBlZGl0aW5nIGhpZGluZyBsaXN0CisJICAgICAqIG9uZSBtYXkgZWRpdCB0aGUgc29ydGluZyBzZXF1ZW5jZSB3aXRoIHRoZSBTIG1hcAorCSAgICAgKiBub3cgYWxsb3dzIGNvbmZpcm1hdGlvbiBvZiBkZWxldGlvbiB3aXRoIFt5KGVzKSBuKG8pIGEobGwpIHEodWl0KV0KKwkgICAgICogdGhlICJ4IiBtYXAgbm93IGhhbmRsZXMgc3BlY2lhbCBmaWxlIHZpZXdpbmcgd2l0aDoKKwkgICAgICAgKHdpbmRvd3MpIHJ1bmRsbDMyIHVybC5kbGwKKwkgICAgICAgKGdub21lKSAgIGdub21lLW9wZW4KKwkgICAgICAgKGtkZSkgICAgIGtmbWNsaWVudAorCSAgICAgICBJZiBub25lIG9mIHRoZXNlIGFyZSBvbiB0aGUgZXhlY3V0YWJsZSBwYXRoLCB0aGVuCisJICAgICAgIE5ldHJ3RmlsZUhhbmRsZXJzLnZpbSBpcyB1c2VkLgorCSAgICAgKiBkaXJlY3RvcnkgYm9va21hcmtpbmcgZHVyaW5nIGJvdGggbG9jYWwgYW5kIHJlbW90ZSBicm93c2luZworCSAgICAgICBpbXBsZW1lbnRlZAorCSAgICAgKiBvbmUgbWF5IHZpZXcgYWxsLCB1c2UgdGhlIGhpZGluZyBsaXN0IHRvIHN1cHByZXNzLCBvciB1c2UgdGhlCisJICAgICAgIGhpZGluZyBsaXN0IHRvIHNob3ctb25seSByZW1vdGUgYW5kIGxvY2FsIGZpbGUvZGlyZWN0b3J5IGxpc3RpbmdzCisJICAgICAqIGltcHJvdmVkIHVudXN1YWwgZmlsZSBhbmQgZGlyZWN0b3J5IG5hbWUgaGFuZGxpbmcKKwkgICAgICogcHJldmlldyB3aW5kb3cgc3VwcG9ydAogCXY0NzogKiBub3cgaGFuZGxlcyBsb2NhbCBkaXJlY3RvcnkgYnJvd3NpbmcuCiAJdjQ2OiAqIG5vdyBoYW5kbGVzIHJlbW90ZSBkaXJlY3RvcnkgYnJvd3NpbmcKIAkgICAgICogZzpuZXRyd19zaWxlbnQgKGlmIDEpIHdpbGwgY2F1c2UgYWxsIHRyYW5zZmVycyB0byBiZSBzaWxlbnQnZApAQCAtOTEyLDcgKzEwNDAsNyBAQAogCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotMTAuIENyZWRpdHMJCQkJCQkqbmV0cnctY3JlZGl0cyoKKzExLiBDcmVkaXRzCQkJCQkJKm5ldHJ3LWNyZWRpdHMqCiAKIAlWaW0gZWRpdG9yCWJ5IEJyYW0gTW9vbGVuYWFyIChUaGFua3MsIEJyYW0hKQogCWRhdgkJc3VwcG9ydCBieSBDIENhbXBiZWxsCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zeW50YXgudHh0IGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dAppbmRleCAyOGRlNzlhLi4xNTI3MjhmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zeW50YXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKQEAgLTEsNCArMSw0IEBACi0qc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgU2VwIDAxCisqc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgU2VwIDEzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQwMTQsNiArNDAxNCwxMSBAQAogCSAgaGlnaGxpZ2h0IGNvbW1lbnQgY3Rlcm1mZz1ncmVlbiBndWlmZz1ncmVlbgogCWVuZGlmCiAKKwkJCQkJCQkJKkU2NzkqCitEbyBtYWtlIHN1cmUgdGhpcyBzeW5jb2xvci52aW0gc2NyaXB0IGRvZXMgbm90IHVzZSBhICJzeW50YXggb24iLCBzZXQgdGhlCisnYmFja2dyb3VuZCcgb3B0aW9uIG9yIHVzZXMgYSAiY29sb3JzY2hlbWUiIGNvbW1hbmQsIGJlY2F1c2UgaXQgcmVzdWx0cyBpbiBhbgorZW5kbGVzcyBsb29wLgorCiBOb3RlIHRoYXQgd2hlbiBhIGNvbG9yIHNjaGVtZSBpcyB1c2VkLCB0aGVyZSBtaWdodCBiZSBzb21lIGNvbmZ1c2lvbiB3aGV0aGVyCiB5b3VyIGRlZmluZWQgY29sb3JzIGFyZSB0byBiZSB1c2VkIG9yIHRoZSBjb2xvcnMgZnJvbSB0aGUgc2NoZW1lLiAgVGhpcwogZGVwZW5kcyBvbiB0aGUgY29sb3Igc2NoZW1lIGZpbGUuICBTZWUgfDpjb2xvcnNjaGVtZXwuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YWdzIGIvcnVudGltZS9kb2MvdGFncwppbmRleCBlNjM1MjY1Li45OGFhN2FhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWdzCisrKyBiL3J1bnRpbWUvZG9jL3RhZ3MKQEAgLTEyMTgsMTEgKzEyMTgsMTYgQEAKIC9cJT5jCXBhdHRlcm4udHh0CS8qXC9cXCU+YyoKIC9cJT5sCXBhdHRlcm4udHh0CS8qXC9cXCU+bCoKIC9cJT52CXBhdHRlcm4udHh0CS8qXC9cXCU+dioKKy9cJVUvCXBhdHRlcm4udHh0CS8qXC9cXCVVXC8qCiAvXCVbXQlwYXR0ZXJuLnR4dAkvKlwvXFwlW10qCiAvXCVeCXBhdHRlcm4udHh0CS8qXC9cXCVeKgogL1wlYwlwYXR0ZXJuLnR4dAkvKlwvXFwlYyoKKy9cJWQJcGF0dGVybi50eHQJLypcL1xcJWQqCiAvXCVsCXBhdHRlcm4udHh0CS8qXC9cXCVsKgorL1wlbwlwYXR0ZXJuLnR4dAkvKlwvXFwlbyoKKy9cJXUJcGF0dGVybi50eHQJLypcL1xcJXUqCiAvXCV2CXBhdHRlcm4udHh0CS8qXC9cXCV2KgorL1wleAlwYXR0ZXJuLnR4dAkvKlwvXFwleCoKIC9cJglwYXR0ZXJuLnR4dAkvKlwvXFwmKgogL1woCXBhdHRlcm4udHh0CS8qXC9cXCgqCiAvXChcKQlwYXR0ZXJuLnR4dAkvKlwvXFwoXFwpKgpAQCAtMTgxMSw2ICsxODE2LDggQEAKIDpkZWxldGUJY2hhbmdlLnR4dAkvKjpkZWxldGUqCiA6ZGVsZglldmFsLnR4dAkvKjpkZWxmKgogOmRlbGZ1bmN0aW9uCWV2YWwudHh0CS8qOmRlbGZ1bmN0aW9uKgorOmRlbG0JbW90aW9uLnR4dAkvKjpkZWxtKgorOmRlbG1hcmtzCW1vdGlvbi50eHQJLyo6ZGVsbWFya3MqCiA6ZGkJY2hhbmdlLnR4dAkvKjpkaSoKIDpkaWZmZwlkaWZmLnR4dAkvKjpkaWZmZyoKIDpkaWZmZ2V0CWRpZmYudHh0CS8qOmRpZmZnZXQqCkBAIC0zNTMzLDYgKzM1NDAsOCBAQAogRTY3NAlwcmludC50eHQJLypFNjc0KgogRTY3NQlwcmludC50eHQJLypFNjc1KgogRTY3NglvcHRpb25zLnR4dAkvKkU2NzYqCitFNjc3CWV2YWwudHh0CS8qRTY3NyoKK0U2NzgJcGF0dGVybi50eHQJLypFNjc4KgogRTY4CXBhdHRlcm4udHh0CS8qRTY4KgogRTY5CXBhdHRlcm4udHh0CS8qRTY5KgogRTcwCXBhdHRlcm4udHh0CS8qRTcwKgpAQCAtNTQ3Niw2ICs1NDg1LDcgQEAKIG5ldHJ3LW9wdGlvbnMJcGlfbmV0cncudHh0CS8qbmV0cnctb3B0aW9ucyoKIG5ldHJ3LXBhc3N3ZAlwaV9uZXRydy50eHQJLypuZXRydy1wYXNzd2QqCiBuZXRydy1wYXRoCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXBhdGgqCituZXRydy1wcm9ibGVtcwlwaV9uZXRydy50eHQJLypuZXRydy1wcm9ibGVtcyoKIG5ldHJ3LXByb3RvY29sCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXByb3RvY29sKgogbmV0cnctcQlwaV9uZXRydy50eHQJLypuZXRydy1xKgogbmV0cnctcglwaV9uZXRydy50eHQJLypuZXRydy1yKgpAQCAtNjU1NCw2ICs2NTY0LDcgQEAKIHZpbS1hcmd1bWVudHMJc3RhcnRpbmcudHh0CS8qdmltLWFyZ3VtZW50cyoKIHZpbS1kZWZhdWx0LWVkaXRvcglndWlfdzMyLnR4dAkvKnZpbS1kZWZhdWx0LWVkaXRvcioKIHZpbS1kZXYJaW50cm8udHh0CS8qdmltLWRldioKK3ZpbS1pbmRlbnQJaW5kZW50LnR4dAkvKnZpbS1pbmRlbnQqCiB2aW0ta3BhcnQJZ3VpX3gxMS50eHQJLyp2aW0ta3BhcnQqCiB2aW0tbWFjCWludHJvLnR4dAkvKnZpbS1tYWMqCiB2aW0tbW9kZXMJaW50cm8udHh0CS8qdmltLW1vZGVzKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdG9kby50eHQgYi9ydW50aW1lL2RvYy90b2RvLnR4dAppbmRleCA0NGZmODExLi5kNGQwY2RhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90b2RvLnR4dAorKysgYi9ydW50aW1lL2RvYy90b2RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBTZXAgMDYKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBTZXAgMTMKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsMzQgKzMwLDQwIEBACiAJCQkJCQkJKmtub3duLWJ1Z3MqCiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBLbm93biBidWdzIGFuZCBjdXJyZW50IHdvcmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorRW5kbGVzcyBsb29wIHdoZW4gInN5bnRheCByZXNldCIgaW4gfi8udmltL2FmdGVyL3N5bnRheC9zeW5jb2xvci52aW0uCitDcmFzaCB3aGVuIHVzaW5nICI6c2V0IGJhY2tncm91bmQ9ZGFyayIuICBTb2x2ZWQhCitMaW1pdCBpbml0X2hpZ2hsaWdodCgpIHRvIGZpdmUgcmVjdXJzaXZlIGNhbGxzPworICAgIHBhdGNoIGZvciBWaW0gNi4zIGZvciBmcmVlX29sZHZhbCBhbmQgaW5pdF9oaWdobGlnaHQoKT8KKworQ3Jhc2ggd2l0aCBsb25nIGxpbmUuIChXYWx0ZXIgQnJpc2NvZSwgU2VwIDEzKQorCitBZGQgZml4IGZvciBhcHBlbmRpbmcgQk9NIHRvIDYuMz8gIFJlcG9ydGVkIGJ5IEFsZXggSmFrdXNoZXYuCisKK1dpbjMyIGNvbnNvbGUgZG9lc24ndCBjb21waWxlLiAgRG9lcyBHZXRDb21tYW5kTGluZVcoKSB3b3JrIGZvciBub24tR1VJPworKERhdmUgUm9iZXJ0cykgIElmIHllcywgdGhlbiBtb3ZlIHRoZSBmdW5jdGlvbnMgdG8gYW5vdGhlciBmaWxlLgorbGluayB3aXRoIGtlcm5lbDMyLmxpYj8KKwogQWJvcnRpbmcgYXQgdGhlIEFUVEVOVElPTiBwcm9tcHQgY2F1c2VzIHRyb3VibGU6CiAgICAgYnVmZmVyIHJlbWFpbnMgYWN0aXZlLCBud2luZG93cyBpc24ndCBjbG9zZWQgKGZpeGVkIGluIGJ1ZmZlci5jKQogICAgIGFsdGVybmF0ZSBidWZmZXIgZ2V0cyAicmVhZCBlcnJvciIgZmxhZy4KICAgICAiOnNidWYiIGFuZCAiOmJhbGwiIGxlYXZlIGFuIGVtcHR5IHdpbmRvdyBiZWhpbmQuCiBDaGFuZ2UgaW4gaGFuZGxlX3N3YXBfZXhpc3RzKCkgYWxzbyBpbiA2LjM/CitBZGQgZW50ZXJfY2xlYW51cCgpIGFuZCBsZWF2ZV9jbGVhbnVwKCkgYWxzbyBpbiA2LjM/CisgICAgYnVmZmVyLmMKKyAgICBleF9ldmFsLmMKKyAgICBwcm90by9leF9ldmFsLnBybworICAgIHN0cnVjdHMuaAorICAgIHZpbS5oCiAKIFdpbjMyOiBXaGVuIHRoZSBwYXRoIHRvIGEgZmlsZSBoYXMgUnVzc2lhbiBjaGFyYWN0ZXJzLCAiOmNkICU6cDpoIiBkb2Vzbid0CiB3b3JrLiAoVmFsZXJ5IEtvbmRha29mZikKIFNvbHZlZCBpbiBvc19tc3dpbi5jLiAgQWRkIHRvIDYuMz8KIAorVmFsZW5jaWE6IGV4ZWN1dGFibGUoInh4ZC5leGUiKSByZXR1cm5zIHRydWUgd2hpbGUgIiF4eGQiIGRvZXNuJ3Qgd29yay4KKwogRm9yIHZlcnNpb24gNy4wOgorCiAtICAgSW5jbHVkZSBtYW55IFBBVENIRVM6Ci0gICAgOCAgIEFkZCBmdW5jdGlvbnM6Ci0Jc2V0YnVmbGluZSgpCQlzZXQgbGluZSBpbiBhbnkgYnVmZmVyIChwYXRjaCBmcm9tIFllZ2FwcGFuCi0JCQkJTGFrc2htYW5hbiwgMjAwMyBKYW4gMjEpCi0JZmlsdGVyKCkJCVBhdGNoIGZyb20gWWVnYXBwYW4gTGFrc2htYW5hbiwgMjAwNCBKdWwgMTEKLSAgICA4ICAgTWFrZSBpdCBwb3NzaWJsZSB0byBkZWxldGUgbWFya3MuICBDaGFybGVzIENhbXBiZWxsIGhhcyBhIHBhdGNoIHRoYXQKLQlkb2VzIHRoaXMgd2l0aCB0aGUgbWFya2NsZWFyKCkgZnVuY3Rpb24gKDIwMDQgSmFuIDkpLgotCUFuZCB0aGUgIjpkZWxtYXJrIiBjb21tYW5kICgyMDA0IEZlYiA5KQotCWh0dHA6Ly9teXNpdGUudmVyaXpvbi5uZXQvYXN0cm9uYXV0L3ZpbS9pbmRleC5odG1sI1BhdGNoCi0Jfi90bXAvcHRjaC5kZWxtYXJrLmJ6MgotCX4vdG1wL3B0Y2gubWFya2NsZWFyCi0JSW1wbGVtZW50IHNldG1hcmsobWFya25hbWUsIGxudW0gWywgY29sIFssIGZpbGVuYW1lXV0pIGluc3RlYWQ/Ci0JV2hlbiAibG51bSIgaXMgemVybyBkZWxldGUgdGhlIG1hcmsuCi0JV2hlbiAiZmlsZW5hbWUiIGhhcyBubyB3aWxkY2FyZHMgYW5kIHRoZXJlIGlzIG5vIG1hdGNoaW5nIGJ1ZmZlciwgYWRkCi0JdGhlIGJ1ZmZlciAodW5saXN0ZWQpLgotICAgIFBhdGNoIGZvciBceG5uIChDaWFyYW4gTWNDcmVlc2gpICAyMDA0IEp1bCAxMAotCWh0dHA6Ly9kZXYuZ2VudG9vLm9yZy9+Y2lhcmFubS9wYXRjaGVzL3ZpbS92aW0tNy4wMGEtcmVnZXhwLW51bWJlcmVkLWNoYXJhY3RlcnMtcjUucGF0Y2gKICAgICA3ICAgQWRkICd0YWdsaXN0ZmlsZXMnIG9wdGlvbiwgc2hvdyBmaWxlIG5hbWUgYW5kIHR5cGUgd2hlbiBsaXN0aW5nIG1hdGNoaW5nCiAJdGFncyBuYW1lIHdpdGggQ1RSTC1EIGNvbXBsZXRpb24uICBQYXRjaCBmcm9tIFllZ2FwcGFuIExha3NobWFuYW4uCiAJMjAwNCBKdWwgMTEKQEAgLTk0LDkgKzEwMCw5IEBACiAgICAgNyAgIENvbXBsZXRpb24gb2YgbmV0d29yayBzaGFyZXMsIHBhdGNoIGJ5IFlhc3VoaXJvIE1hdHN1bW90by4KIAlVcGRhdGUgMjAwNCBTZXAgNi4KIAlIb3cgZG9lcyB0aGlzIHdvcms/ICBNaXNzaW5nIGNvbW1lbnRzLgotICAgIGdldHRleHQoKQkJVHJhbnNsYXRlIGEgbWVzc2FnZS4gIChQYXRjaCBmcm9tIFlhc3VoaXJvIE1hdHN1bW90bykKLQkJCVVwZGF0ZSAyMDA0IFNlcCA1Ci0JCQlNaXNzaW5nIGRvY3MuICBTZWFyY2ggaW4gJ3J1bnRpbWVwYXRoJz8KKwlnZXR0ZXh0KCkJVHJhbnNsYXRlIGEgbWVzc2FnZS4gIChQYXRjaCBmcm9tIFlhc3VoaXJvIE1hdHN1bW90bykKKwkJCVVwZGF0ZSAyMDA0IFNlcCAxMAorCQkJTW9yZSBkb2NzLiAgU2VhcmNoIGluICdydW50aW1lcGF0aCc/CiAJCQlIb3cgdG8gZ2V0IHRoZSBtZXNzYWdlcyBpbnRvIHRoZSAucG8gZmlsZXM/CiAgICAgLS0tIGRpZCBub3QgcmVzcG9uZCAoeWV0KSAtLQogICAgIDcgICBNYWtlICI1ZGQiIG9uIGxhc3QtYnV0LW9uZS1saW5lIG5vdCBkZWxldGUgYW55dGhpbmcgKFZpIGNvbXBhdGlibGUpLgpAQCAtMTk4LDYgKzIwNCw3IEBACiAJaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvc2NyaXB0LnBocD9zY3JpcHRfaWQ9NzQ3CiAJaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9pbnNlbnZpbQogCWh0dHA6Ly9jZWRldC5zb3VyY2Vmb3JnZS5uZXQvaW50ZWxsaXNlbnNlLnNodG1sIChmb3IgRW1hY3MpCisJSXZhbiBWaWxsYW51ZXZhIGhhcyBzb21ldGhpbmcgZm9yIEphdmEuCiAtICAgUEVSU0lTVEVOVCBVTkRPOiBzdG9yZSB1bmRvIGluIGEgZmlsZS4KICAgICBTdXBwb3J0IG11bHRpcGxlIHRocmVhZHMuICBTaG93IHRoZSBsaXN0IG9mIGNoYW5nZXMgaW4gYSB3aW5kb3cgdG8gYmUgYWJsZQogICAgIHRvIHNlbGVjdCBhIHZlcnNpb24uCkBAIC0yNjIsNyArMjY5LDI3IEBACiAyMDA0KS4gIFNob3VsZCBhbHNvIHdvcmsgZm9yICdmaWxldHlwZScuCiAKIFBhdGNoIGZvciAnYnJlYWtpbmRlbnQnIG9wdGlvbjogcmVwZWF0IGluZGVudCBmb3Igd3JhcHBlZCBsaW5lLiAoVmFjbGF2Ci1TbWlsYXVlciwgMjAwNCBTZXAgNSkKK1NtaWxhdWVyLCAyMDA0IFNlcCAxMykKKworV2luMzI6IEluICdmaWxlZW5jb2RpbmdzJyBhbGxvdyB1c2luZyAiYWNwIiBmb3IgdGhlIGFjdGl2ZSBjb2RlcGFnZS4gIFVzZWZ1bAordmFsdWU6ICJ1Y3MtYm9tLHV0Zi04LGFjcCxsYXRpbjEiCisKK0ZvciBtYW5pcHVsYXRpbmcgYnVmZmVycyB3aXRob3V0IG9wZW5pbmcgYSBuZXcgd2luZG93LCBzdXBwb3J0IFZpcnR1YWwKK3dpbmRvd3MuICBFeGFtcGxlOgorICAgIDp2aXJ0d2luIGxldCBsID0gR2V0QnVmTGluZSg0LCAxMCkKKyAgICA6ZnVuIEdldEJ1ZkxpbmUoYnVmbnIsIGxudW0pCisgICAgOiAgZXhlICJidWZmZXIgIiAuIGE6YnVmbnIKKyAgICA6ICByZXR1cm4gZ2V0bGluZShsbnVtKQorICAgIDplbmRmdW4KK1RoZSBnZXRsaW5lKCkgYW5kIHNldGxpbmUoKSBmdW5jdGlvbnMgY291bGQgd29yayBmb3Igb3RoZXIgYnVmZmVycywgdXNpbmcgYQorVmlydHVhbCB3aW5kb3cuCitBIFZpcnR1YWwgd2luZG93IG9ubHkgZXhpc3RzIGZvciBvbmUgY29tbWFuZC4gIFRoZXJlIGNhbiBiZSBzZXZlcmFsIChmb3IKK25lc3RlZCBjb21tYW5kcykuICBUaGUgd2luZG93IHdvcmtzIGFzIGlmIGl0IGNvbWVzIGFmdGVyIHRoZSBsYXN0IHdpbmRvdywgc2l6ZQoraXMgdGhlIFZpbSB3aW5kb3cgc2l6ZSwgYnV0IGl0J3MgbmV2ZXIgZGlzcGxheWVkLgorCitXaW4zMjogSW4gdGhlIGdlbmVyYXRlZCBiYXRjaCBmaWxlcywgdXNlICRWSU1SVU5USU1FIGlmIGl0J3Mgc2V0LiAgRXhhbXBsZXMgYnkKK01hdGhpYXMgTWljaGFlbGlzICgyMDA0IFNlcCA2KQorQWxzbyBwbGFjZSB2aW10dXRvci5iYXQgaW4gJXdpbmRpciU/CiAKIAogVmkgaW5jb21wYXRpYmlsaXR5OgpAQCAtODU0LDYgKzg4MSw3IEBACiAgICAgICBkaXRoZXJpbmcgdG8gbWFrZSBncmV5IHRleHQ/CiAgICAgLSBBZGQgYSBmbGFnIGluICdwcmludG9wdGlvbnMnIHRvIGFkZCBhbiBlbXB0eSBwYWdlIHRvIG1ha2UgdGhlIHRvdGFsCiAgICAgICBudW1iZXIgZXZlbi4gICJhZGRlbXB0eSI/IChNaWtlIFdpbGxpYW1zKQorICAgIC0gUmVzcGVjdCAnbGluZWJyZWFrJy4gIFBlcmhhcHMgYWxzbyAnc2hvd2JyZWFrJz8KICAgICAtIFNob3VsZCBpbnRlcnByZXRlZCBDVFJMLUwgYXMgYSBwYWdlIGJyZWFrLgogICAgIC0gR3JleSBsaW5lIG51bWJlcnMgYXJlIG5vdCBhbHdheXMgcmVhZGFibGUuICBBZGQgZmllbGQgaW4gJ3ByaW50b3B0aW9ucycuCiAgICAgICBEZWZhdWx0IHRvIGJsYWNrIHdoZW4gbm8gc3ludGF4IGhpZ2hsaWdodGluZy4KQEAgLTE0NTcsNiArMTQ4NSwxMyBAQAogICAgIFBhY2thZ2VzIGFyZSBsb2FkZWQgYXV0b21hdGljYWxseSB3aGVuIGZpcnN0IHVzZWQsIGZyb20KICAgICAkVklNUlVOVElNRS9wYWNrYWdlcyAob3IgdXNlIGEgc2VhcmNoIHBhdGgpLgogNyAgIE1ha2UgZ2xvYnBhdGgoKSBhbHNvIHdvcmsgd2l0aCAiKioiIGFuZCB1cHdhcmRzIHNlYXJjaC4gKEJyaWFuIE1lZGxleSkKKzcgICBBZGQgdGhlIG1hcmtjbGVhcigpIGZ1bmN0aW9uIHRvIGRlbGV0ZSBhIG1hcmsgaW4gYW5vdGhlciBidWZmZXIuICBDaGFybGVzCisgICAgQ2FtcGJlbGwgKDIwMDQgSmFuIDkpCisgICAgaHR0cDovL215c2l0ZS52ZXJpem9uLm5ldC9hc3Ryb25hdXQvdmltL2luZGV4Lmh0bWwjUGF0Y2gKKyAgICBJbXBsZW1lbnQgc2V0bWFyayhtYXJrbmFtZSwgbG51bSBbLCBjb2wgWywgZmlsZW5hbWVdXSkgaW5zdGVhZD8KKyAgICBXaGVuICJsbnVtIiBpcyB6ZXJvIGRlbGV0ZSB0aGUgbWFyay4KKyAgICBXaGVuICJmaWxlbmFtZSIgaGFzIG5vIHdpbGRjYXJkcyBhbmQgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgYnVmZmVyLCBhZGQKKyAgICB0aGUgYnVmZmVyICh1bmxpc3RlZCkuCiA3ICAgUHJlLXBhcnNlIG9yIGNvbXBpbGUgVmltIHNjcmlwdHMgaW50byBhIGJ5dGVjb2RlLgogICAgIDEuIFB1dCB0aGUgYnl0ZWNvZGUgd2l0aCB0aGUgb3JpZ2luYWwgc2NyaXB0LCB3aXRoIGFuICI6aWYKICAgICAgICBoYXMoJ2J5dGVjb2RlJykiIGFyb3VuZCBpdCwgc28gdGhhdCBpdCdzIG9ubHkgdXNlZCB3aXRoIGEgVmltIHRoYXQKQEAgLTI1NTYsOCArMjU5MSw4IEBACiAgICAgVGhpcyBvbmUgaXMgYWxzbyB2ZXJ5IHNsb3cgb24gIi8qIHNvbWUgY29tbWVudCAqLyI6ICJeXC9cKlwoLipbXi9dXCkqJCIuCiA3ICAgUmVjb2duaXplICJbYS16XSIsICJbMC05XSIsIGV0Yy4gYW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBmYXN0ZXIgIlxsIiBhbmQKICAgICAiXGQiLgotNyAgIEFkZCBhIHdheSB0byBzcGVjaWZ5IGNoYXJhY3RlcnMgYXMgaGV4LCBvY3RhbCBvciA8Qy1NPiBmb3JtLiAgQ291bGQgYmUKLSAgICBcJTFheCwgXCUyMDBvIGFuZCBcJTxDLU0+LiAgQWxzbyBcJTEyMzR1IGZvciBtdWx0aS1ieXRlIGNoYXJzLgorNyAgIEFkZCBhIHdheSB0byBzcGVjaWZ5IGNoYXJhY3RlcnMgaW4gPEMtTT4gb3IgPEtleT4gZm9ybS4gIENvdWxkIGJlCisgICAgXCU8Qy1NPi4KIDggICBGbGFncyB0aGF0IGFwcGx5IHRvIHRoZSB3aG9sZSBwYXR0ZXJuLgogICAgIFRoaXMgd29ya3MgZm9yIGFsbCBwbGFjZXMgd2hlcmUgYSByZWdleHAgaXMgdXNlZC4KICAgICBBZGQgIlxxIiB0byBub3Qgc3RvcmUgdGhpcyBwYXR0ZXJuIGFzIHRoZSBsYXN0IHNlYXJjaCBwYXR0ZXJuPwpAQCAtMjYxMiwxMSArMjY0Nyw2IEBACiAgICAgYmVmb3JlIHNhdmluZyBmaWxlczogIlNhdmUgbW9kaWZpZWQgYnVmZmVyICIvcGF0aC9maWxlIj8gKFllcy9IaWRlL05vCiAgICAgU2F2ZS1hbGwvaGlkZS1BbGwvUXVpdCkgIi4KIC0gICAiOnMvcGF0L2Zvby8zIjogZmluZCAzcmQgbWF0Y2ggb2YgInBhdCIsIGxpa2Ugc2VkLiAoVGhvbWFzIEtvZWhsZXIpCi0tICAgU3BlY2lhbCBjaGFyYWN0ZXJzIGluIHBhdHRlcm5zOgotICAgIEluc2lkZSBbXToKLSAgICBcMDEyICBvY3RhbCBjaGFyYWN0ZXIKLSAgICBcMHgxYSBoZXggY2hhcmFjdGVyCi0gICAgXDA8QlM+IFwwPEVzYz46IHNwZWNpYWwgY2hhcmFjdGVyCiA3ICAgV2hlbiBzZWFyY2hpbmcgd2l0aCAnbicgZ2l2ZSBtZXNzYWdlIHdoZW4gZ2V0dGluZyBiYWNrIHdoZXJlIHRoZSBzZWFyY2gKICAgICBmaXJzdCBzdGFydGVkLiBSZW1lbWJlciBzdGFydCBvZiBzZWFyY2ggaW4gJy8gbWFyay4KIDcgICBBZGQgb3B0aW9uIHRoYXQgc2Nyb2xscyBzY3JlZW4gdG8gcHV0IGN1cnNvciBpbiBtaWRkbGUgb2Ygc2NyZWVuIGFmdGVyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDEudHh0IGIvcnVudGltZS9kb2MvdXNyXzAxLnR4dAppbmRleCAzOWE2MDNhLi5lYWZmYjE5IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDEudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wMS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzAxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgTWF5IDAxCisqdXNyXzAxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgU2VwIDA5CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCkBAIC0xMDQsMTEgKzEwNCwxMyBAQAogZmlyc3QgVmltIGNvbW1hbmRzLiAgVGhpcyBpcyBhIDMwIG1pbnV0ZSB0dXRvcmlhbCB0aGF0IHRlYWNoZXMgdGhlIG1vc3QgYmFzaWMKIFZpbSBmdW5jdGlvbmFsaXR5IGhhbmRzLW9uLgogCi1PbiBVbml4IGFuZCBNUy1XaW5kb3dzLCBpZiBWaW0gaGFzIGJlZW4gcHJvcGVybHkgaW5zdGFsbGVkLCB5b3UgY2FuIHN0YXJ0IGl0Ci1mcm9tIHRoZSBzaGVsbDoKK09uIFVuaXgsIGlmIFZpbSBoYXMgYmVlbiBwcm9wZXJseSBpbnN0YWxsZWQsIHlvdSBjYW4gc3RhcnQgaXQgZnJvbSB0aGUgc2hlbGw6CiA+CiAJdmltdHV0b3IKIAorT24gTVMtV2luZG93cyB5b3UgY2FuIGZpbmQgaXQgaW4gdGhlIFByb2dyYW0vVmltIG1lbnUuICBPciBleGVjdXRlCit2aW10dXRvci5iYXQgaW4gdGhlICRWSU1SVU5USU1FIGRpcmVjdG9yeS4KKwogVGhpcyB3aWxsIG1ha2UgYSBjb3B5IG9mIHRoZSB0dXRvciBmaWxlLCBzbyB0aGF0IHlvdSBjYW4gZWRpdCBpdCB3aXRob3V0CiB0aGUgcmlzayBvZiBkYW1hZ2luZyB0aGUgb3JpZ2luYWwuCiAgICBUaGVyZSBhcmUgYSBmZXcgdHJhbnNsYXRlZCB2ZXJzaW9ucyBvZiB0aGUgdHV0b3IuICBUbyBmaW5kIG91dCBpZiB5b3VycyBpcwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0IGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CmluZGV4IDQyZjY2MjguLjAxNzA1ZmYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAorKysgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgU2VwIDA2CisqdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgU2VwIDEzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMjIsNiArMTIyLDggQEAKIAogfDprZWVwYWx0fAkJRG8gbm90IGNoYW5nZSB0aGUgYWx0ZXJuYXRlIGZpbGUuCiAKK3w6ZGVsbWFya3N8CQlEZWxldGUgbWFya3MuCisKIAogTmV3IGZ1bmN0aW9uczogfgogCkBAIC0xMzUsNiArMTM3LDggQEAKIHJlcGVhdChleHByLCBjb3VudCkJfHJlcGVhdCgpfCAJUmVwZWF0ICJleHByIiAiY291bnQiIHRpbWVzLgogCQkJCQkoQ2hyaXN0b3BoZSBQb3VjZXQpCiB0cihleHByLCBmcm9tLCB0bykJfHRyKCl8CQlUcmFuc2xhdGUgY2hhcmFjdGVycy4gKFJvbiBBYXJvbikKK3N5c3RlbShjbWQsIGlucHV0KQl8c3lzdGVtKCl8CUZpbHRlcnMge2lucHV0fSB0aHJvdWdoIGEgc2hlbGwKKwkJCQkJY29tbWFuZC4KIAogCiBOZXcgYXV0b2NvbW1hbmQgZXZlbnRzOiB+CkBAIC0xNDYsNiArMTUwLDIwIEBACiB8Q29sb3JTY2hlbWV8CQlhZnRlciBsb2FkaW5nIGEgY29sb3Igc2NoZW1lCiAKIAorTmV3IGl0ZW1zIGluIHNlYXJjaCBwYXR0ZXJuczogfgorfC9cJWR8IFwlZDEyMwkJc2VhcmNoIGZvciBjaGFyYWN0ZXIgd2l0aCBkZWNpbWFsIG51bWJlcgorfC9cXXwgIFtcZDEyM10JCWlkZW0sIGluIGEgY29sbGV0aW9uCit8L1wlb3wgXCVvMTAzCQlzZWFyY2ggZm9yIGNoYXJhY3RlciB3aXRoIG9jdGFsIG51bWJlcgorfC9cXXwgIFtcbzFvM10JCWlkZW0sIGluIGEgY29sbGV0aW9uCit8L1wleHwgXCV4MWEJCXNlYXJjaCBmb3IgY2hhcmFjdGVyIHdpdGggMiBwb3MuIGhleCBudW1iZXIKK3wvXF18ICBbXHgxYV0JCWlkZW0sIGluIGEgY29sbGV0aW9uCit8L1wldXwgXCV1MTJhYgkJc2VhcmNoIGZvciBjaGFyYWN0ZXIgd2l0aCA0IHBvcy4gaGV4IG51bWJlcgorfC9cXXwgIFtcdTEyYWJdCQlpZGVtLCBpbiBhIGNvbGxldGlvbgorfC9cJVV8IFwlVTEyMzRhYmNkCXNlYXJjaCBmb3IgY2hhcmFjdGVyIHdpdGggOCBwb3MuIGhleCBudW1iZXIKK3wvXF18ICBbXFUxMjM0YWJjZF0JaWRlbSwgaW4gYSBjb2xsZXRpb24KKwkJCSAgICAoVGhlIGFib3ZlIHBhcnRseSBieSBDaWFyYW4gTWNDcmVlc2gpCisKKwogTmV3IFN5bnRheC9JbmRlbnQvRlRwbHVnaW4gZmlsZXM6IH4KIAogTXVQQUQgc291cmNlIHN5bnRheCwgaW5kZW50IGFuZCBmdHBsdWdpbi4gKERhdmUgU2lsdmlhKQpAQCAtMzQ4LDQgKzM2NiwxMSBAQAogY29tbWFuZCBsaW5lIHdpdGggbm9uLUFTQ0lJIGNoYXJhY3RlcnMgYXJlIG5vdCB1c2VkIGNvcnJlY3RseS4gIFJlY29kZSB0aGUKIGZpbGUgbmFtZXMgd2hlbiAnZW5jb2RpbmcnIGlzIHNldCwgdXNpbmcgdGhlIFVuaWNvZGUgY29tbWFuZCBsaW5lLgogCitXaW4zMiBjb25zb2xlOiBXaGVuIHRoZSBkZWZhdWx0IGZvciAnZW5jb2RpbmcnIGVuZHMgdXAgdG8gYmUgImxhdGluMSIsIHRoZQorZGVmYXVsdCB2YWx1ZSBvZiAnaXNwcmludCcgd2FzIHdyb25nLgorCitXaGVuIGFuIGVycm9yIG1lc3NhZ2UgaXMgZ2l2ZW4gd2hpbGUgd2FpdGluZyBmb3IgYSBjaGFyYWN0ZXIgKGUuZy4sIHdoZW4gYW4KK3h0ZXJtIHJlcG9ydHMgdGhlIG51bWJlciBvZiBjb2xvcnMpLCB0aGUgaGl0LWVudGVyIHByb21wdCBvdmVyd3JvdGUgdGhlIGxhc3QKK2xpbmUuICBEb24ndCByZXNldCBtc2dfZGlkb3V0IGluIG5vcm1hbF9jbWQoKSBmb3IgS19JR05PUkUuCisKICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2ZpbGV0eXBlLnZpbSBiL3J1bnRpbWUvZmlsZXR5cGUudmltCmluZGV4IGVkODU2ZGEuLjVmZDEyYWEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZmlsZXR5cGUudmltCisrKyBiL3J1bnRpbWUvZmlsZXR5cGUudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3VwcG9ydCBmaWxlIHRvIGRldGVjdCBmaWxlIHR5cGVzCiAiCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDA0IEF1ZyAzMAorIiBMYXN0IENoYW5nZToJMjAwNCBTZXAgMTEKIAogIiBMaXN0ZW4gdmVyeSBjYXJlZnVsbHksIEkgd2lsbCBzYXkgdGhpcyBvbmx5IG9uY2UKIGlmIGV4aXN0cygiZGlkX2xvYWRfZmlsZXR5cGVzIikKQEAgLTEwMCw2ICsxMDAsOSBAQAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouYW0KIAlcIGlmIGV4cGFuZCgiPGFmaWxlPiIpICF+PyAnTWFrZWZpbGUuYW1cPicgfCBzZXRmIGVsZiB8IGVuZGlmCiAKKyIgQUxTQSBjb25maWd1cmF0aW9uCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgfi8uYXNvdW5kcmMsL3Vzci9zaGFyZS9hbHNhL2Fsc2EuY29uZiwvZXRjL2Fzb3VuZC5jb25mCXNldGYgYWxzYWNvbmYKKwogIiBBcmMgTWFjcm8gTGFuZ3VhZ2UKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmFtbAkJCXNldGYgYW1sCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vdmltLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vdmltLnZpbQppbmRleCA4NWU3NGYzLi5mY2U4MzBlIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL3ZpbS52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi92aW0udmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luCiAiIExhbmd1YWdlOglWaW0KICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDQgRmViIDIwCisiIExhc3QgQ2hhbmdlOgkyMDA0IFNlcCAxMwogCiAiIE9ubHkgZG8gdGhpcyB3aGVuIG5vdCBkb25lIHlldCBmb3IgdGhpcyBidWZmZXIKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKQpAQCAtMzMsMTAgKzMzLDEwIEBACiBzZXRsb2NhbCBjb21tZW50c3RyaW5nPVwiJXMKIAogIiBNb3ZlIGFyb3VuZCBmdW5jdGlvbnMuCi1ub3JlbWFwIDxzaWxlbnQ+PGJ1ZmZlcj4gW1sgOmNhbGwgc2VhcmNoKCdeXHMqZnVcJVtuY3Rpb25dXD4nLCAiYlciKTxDUj4KLW5vcmVtYXAgPHNpbGVudD48YnVmZmVyPiBdXSA6Y2FsbCBzZWFyY2goJ15ccypmdVwlW25jdGlvbl1cPicsICJXIik8Q1I+Ci1ub3JlbWFwIDxzaWxlbnQ+PGJ1ZmZlcj4gW10gOmNhbGwgc2VhcmNoKCdeXHMqZW5kZipcJVt1bmN0aW9uXVw+JywgImJXIik8Q1I+Ci1ub3JlbWFwIDxzaWxlbnQ+PGJ1ZmZlcj4gXVsgOmNhbGwgc2VhcmNoKCdeXHMqZW5kZipcJVt1bmN0aW9uXVw+JywgIlciKTxDUj4KK25vcmVtYXAgPHNpbGVudD48YnVmZmVyPiBbWyBtJzpjYWxsIHNlYXJjaCgnXlxzKmZ1XCVbbmN0aW9uXVw+JywgImJXIik8Q1I+Citub3JlbWFwIDxzaWxlbnQ+PGJ1ZmZlcj4gXV0gbSc6Y2FsbCBzZWFyY2goJ15ccypmdVwlW25jdGlvbl1cPicsICJXIik8Q1I+Citub3JlbWFwIDxzaWxlbnQ+PGJ1ZmZlcj4gW10gbSc6Y2FsbCBzZWFyY2goJ15ccyplbmRmKlwlW3VuY3Rpb25dXD4nLCAiYlciKTxDUj4KK25vcmVtYXAgPHNpbGVudD48YnVmZmVyPiBdWyBtJzpjYWxsIHNlYXJjaCgnXlxzKmVuZGYqXCVbdW5jdGlvbl1cPicsICJXIik8Q1I+CiAKICIgTW92ZSBhcm91bmQgY29tbWVudHMKIG5vcmVtYXAgPHNpbGVudD48YnVmZmVyPiBdIiA6Y2FsbCBzZWFyY2goJ15cKFxzKiIuKlxuXClcQDwhXChccyoiXCknLCAiVyIpPENSPgpkaWZmIC0tZ2l0IGEvcnVudGltZS9tYWtlbWVudS52aW0gYi9ydW50aW1lL21ha2VtZW51LnZpbQppbmRleCBlNTRiMzI3Li5iZGY5OTkyIDEwMDY0NAotLS0gYS9ydW50aW1lL21ha2VtZW51LnZpbQorKysgYi9ydW50aW1lL21ha2VtZW51LnZpbQpAQCAtMSw2ICsxLDYgQEAKICIgU2NyaXB0IHRvIGRlZmluZSB0aGUgc3ludGF4IG1lbnUgaW4gc3lubWVudS52aW0KICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDQgQXVnIDMwCisiIExhc3QgQ2hhbmdlOgkyMDA0IFNlcCAxMQogCiAiIFRoaXMgaXMgdXNlZCBieSAibWFrZSBtZW51IiBpbiB0aGUgc3JjIGRpcmVjdG9yeS4KIGVkaXQgPHNmaWxlPjpwOmgvc3lubWVudS52aW0KQEAgLTU2LDYgKzU2LDcgQEAKIFN5bk1lbnUgQUIuQWNlREJcIG1vZGVsOmFjZWRiCiBTeW5NZW51IEFCLkFkYTphZGEKIFN5bk1lbnUgQUIuQWZMZXg6YWZsZXgKK1N5bk1lbnUgQUIuQUxTQVwgY29uZmlnOmFsc2Fjb25mCiBTeW5NZW51IEFCLkFsdGVyYVwgQUhETDphaGRsCiBTeW5NZW51IEFCLkFtaWdhXCBET1M6YW1pZ2EKIFN5bk1lbnUgQUIuQU1QTDphbXBsCmRpZmYgLS1naXQgYS9ydW50aW1lL3BsdWdpbi9OZXRyd0ZpbGVIYW5kbGVycy52aW0gYi9ydW50aW1lL3BsdWdpbi9OZXRyd0ZpbGVIYW5kbGVycy52aW0KaW5kZXggN2RhNjQ3OS4uNmVkZWI1MSAxMDA2NDQKLS0tIGEvcnVudGltZS9wbHVnaW4vTmV0cndGaWxlSGFuZGxlcnMudmltCisrKyBiL3J1bnRpbWUvcGx1Z2luL05ldHJ3RmlsZUhhbmRsZXJzLnZpbQpAQCAtMSwxNSArMSwxNSBAQAogIiBOZXRyd0ZpbGVIYW5kbGVyczogY29udGFpbnMgdmFyaW91cyBleHRlbnNpb24tYmFzZWQgZmlsZSBoYW5kbGVycyBmb3IKICIgICAgICAgICAgICAgICAgICAgIG5ldHJ3J3MgYnJvd3NlcnMnIHggY29tbWFuZCAoImVYZWN1dGUgbGF1bmNoZXIiKQogIiBBdXRob3I6CUNoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgotIiBEYXRlOgkJQXVnIDI3LCAyMDA0Ci0iIFZlcnNpb246CTIKKyIgRGF0ZToJCUF1ZyAzMSwgMjAwNAorIiBWZXJzaW9uOgkzYQlOT1QgUkVMRUFTRUQKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgUHJldmVudCBSZWxvYWRpbmc6IHt7ezEKIGlmIGV4aXN0cygiZzpsb2FkZWRfbmV0cndmaWxlaGFuZGxlcnMiKSB8fCAmY3AKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfbmV0cndmaWxlaGFuZGxlcnM9ICJ2MiIKK2xldCBnOmxvYWRlZF9uZXRyd2ZpbGVoYW5kbGVycz0gInYzYSIKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgTmV0cndGaWxlSGFuZGxlcl9odG1sOiBoYW5kbGVzIGh0bWwgd2hlbiB0aGUgdXNlciBoaXRzICJ4IiB3aGVuIHRoZSB7e3sxCkBAIC0yNDUsNiArMjQ1LDcgQEAKICAgZWxzZWlmIGV4ZWN1dGFibGUoImdzd2luMzIiKQogICAgZXhlICJzaWxlbnQhICFnc3dpbjMyIFwiIi5hOnBzLiciJwogICAgcmVkcmF3IQorICBlbHNlCiAiICAgY2FsbCBEcmV0KCJOZXRyd0ZpbGVIYW5kbGVyX3BzIDAiKQogICAgcmV0dXJuIDAKICAgZW5kaWYKQEAgLTI1NCw0ICsyNTUsNTkgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBOZXRyd0ZpbGVIYW5kbGVyX2VwczogaGFuZGxlcyBlbmNhcHN1bGF0ZWQgUG9zdFNjcmlwdCBmaWxlcyB7e3sxCitmdW4hIE5ldHJ3RmlsZUhhbmRsZXJfZXBzKGVwcykKKyIgIGNhbGwgRGZ1bmMoIk5ldHJ3RmlsZUhhbmRsZXJfcHMoKSIpCisgIGlmIGV4ZWN1dGFibGUoImdzIikKKyAgIGV4ZSAic2lsZW50ISAhZ3MgIi5hOmVwcworICAgcmVkcmF3IQorICBlbHNlaWYgZXhlY3V0YWJsZSgiZ2hvc3RzY3JpcHQiKQorICAgZXhlICJzaWxlbnQhICFnaG9zdHNjcmlwdCAiLmE6ZXBzCisgICByZWRyYXchCisgIGVsc2VpZiBleGVjdXRhYmxlKCJnaG9zdHNjcmlwdCIpCisgICBleGUgInNpbGVudCEgIWdob3N0c2NyaXB0ICIuYTplcHMKKyAgIHJlZHJhdyEKKyAgZWxzZWlmIGV4ZWN1dGFibGUoImdzd2luMzIiKQorICAgZXhlICJzaWxlbnQhICFnc3dpbjMyIFwiIi5hOmVwcy4nIicKKyAgIHJlZHJhdyEKKyAgZWxzZQorIiAgIGNhbGwgRHJldCgiTmV0cndGaWxlSGFuZGxlcl9wcyAwIikKKyAgIHJldHVybiAwCisgIGVuZGlmCitlbmRmdW4KKworIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgTmV0cndGaWxlSGFuZGxlcl9maWc6IGhhbmRsZXMgeGZpZyBmaWxlcyB7e3sxCitmdW4hIE5ldHJ3RmlsZUhhbmRsZXJfZmlnKGZpZykKKyIgIGNhbGwgRGZ1bmMoIk5ldHJ3RmlsZUhhbmRsZXJfZmlnKCkiKQorICBpZiBleGVjdXRhYmxlKCJ4ZmlnIikKKyAgIGV4ZSAic2lsZW50ISAheGZpZyAiLmE6ZmlnCisgICByZWRyYXchCisgIGVsc2UKKyIgICBjYWxsIERyZXQoIk5ldHJ3RmlsZUhhbmRsZXJfZmlnIDAiKQorICAgcmV0dXJuIDAKKyAgZW5kaWYKKworIiAgY2FsbCBEcmV0KCJOZXRyd0ZpbGVIYW5kbGVyX2ZpZyAxIikKKyAgcmV0dXJuIDEKK2VuZGZ1bgorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBOZXRyd0ZpbGVIYW5kbGVyX29iajogaGFuZGxlcyB0Z2lmJ3Mgb2JqIGZpbGVzIHt7ezEKK2Z1biEgTmV0cndGaWxlSGFuZGxlcl9vYmoob2JqKQorIiAgY2FsbCBEZnVuYygiTmV0cndGaWxlSGFuZGxlcl9vYmooKSIpCisgIGlmIGhhcygidW5peCIpICYmIGV4ZWN1dGFibGUoInRnaWYiKQorICAgZXhlICJzaWxlbnQhICF0Z2lmICIuYTpvYmoKKyAgIHJlZHJhdyEKKyAgZWxzZQorIiAgIGNhbGwgRHJldCgiTmV0cndGaWxlSGFuZGxlcl9vYmogMCIpCisgICByZXR1cm4gMAorICBlbmRpZgorCisiICBjYWxsIERyZXQoIk5ldHJ3RmlsZUhhbmRsZXJfb2JqIDEiKQorICByZXR1cm4gMQorZW5kZnVuCisKKworIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgIHZpbTogdHM9NCBmZG09bWFya2VyCmRpZmYgLS1naXQgYS9ydW50aW1lL3BsdWdpbi9uZXRydy52aW0gYi9ydW50aW1lL3BsdWdpbi9uZXRydy52aW0KaW5kZXggODRjZGE5My4uOWY1ZGM5ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9wbHVnaW4vbmV0cncudmltCisrKyBiL3J1bnRpbWUvcGx1Z2luL25ldHJ3LnZpbQpAQCAtMSwyMCArMSwyMCBAQAogIiBuZXRydy52aW06IEhhbmRsZXMgZmlsZSB0cmFuc2ZlciBhbmQgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5nIGFjcm9zcyBhIG5ldHdvcmsKLSIgTGFzdCBDaGFuZ2U6CUF1ZyAyNywgMjAwNAorIiBMYXN0IENoYW5nZToJU2VwIDEwLCAyMDA0CiAiIE1haW50YWluZXI6CUNoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiBQaEQgICA8ZHJjaGlwTk9TUEFNIGF0IGNhbXBiZWxsZmFtaWx5LmJpej4KLSIgVmVyc2lvbjoJNDcKKyIgVmVyc2lvbjoJNDgKICIgTGljZW5zZToJVmltIExpY2Vuc2UgIChzZWUgdmltJ3MgOmhlbHAgbGljZW5zZSkKICIKLSIgIEJ1dCBiZSBkb2VycyBvZiB0aGUgd29yZCwgYW5kIG5vdCBvbmx5IGhlYXJlcnMsIGRlbHVkaW5nIHlvdXIgb3duIHNlbHZlcworIiAgQnV0IGJlIGRvZXJzIG9mIHRoZSBXb3JkLCBhbmQgbm90IG9ubHkgaGVhcmVycywgZGVsdWRpbmcgeW91ciBvd24gc2VsdmVzCiAiICAoSmFtZXMgMToyMiBSU1YpCiAiID0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQogIiBHZXRMYXRlc3RWaW1TY3JpcHRzOiAxMDc1IDEgOkF1dG9JbnN0YWxsOiBuZXRydy52aW0KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgUHJldmVudCBSZWxvYWRpbmc6IHt7ezEKLWlmIGV4aXN0cygibG9hZGVkX25ldHJ3IikgfHwgJmNwCitpZiBleGlzdHMoImc6bG9hZGVkX25ldHJ3IikgfHwgJmNwCiAgIGZpbmlzaAogZW5kaWYKLWxldCBsb2FkZWRfbmV0cncgICAgPSAidjQ3IgorbGV0IGc6bG9hZGVkX25ldHJ3ICA9ICJ2NDgiCiBsZXQgczpzYXZlX2NwbyAgICAgID0gJmNwbwogbGV0IGxvYWRlZF9leHBsb3JlciA9IDEKIHNldCBjcG8mdmltCkBAIC00Myw2ICs0MywxMyBAQAogICBsZXQgZzpuZXRyd19saXN0X2NtZD0gIiIKICBlbmRpZgogZW5kaWYKK2lmICFleGlzdHMoImc6bmV0cndfZnRwX2xpc3RfY21kIikKKyBpZiBoYXMoInVuaXgiKSB8fCBleGlzdHMoImc6bmV0cndfY3lnd2luIikKKyAgbGV0IGc6bmV0cndfZnRwX2xpc3RfY21kPSAibHMgLWxGIgorIGVsc2UKKyAgbGV0IGc6bmV0cndfZnRwX2xpc3RfY21kPSAiZGlyIgorIGVuZGlmCitlbmRpZgogaWYgIWV4aXN0cygiZzpuZXRyd19ybV9jbWQiKQogIGxldCBnOm5ldHJ3X3JtX2NtZCAgICA9ICJzc2ggSE9TVE5BTUUgcm0iCiBlbmRpZgpAQCAtMTExLDIyICsxMTgsMjggQEAKICBsZXQgZzpuZXRyd19mdHBfYnJvd3NlX3JlamVjdD0nXnRvdGFsXHNcK1xkXCskXHxeVHJ5aW5nXHNcK1xkXCsuKiRcfF5LRVJCRVJPU19WXGQgcmVqZWN0ZWRcfF5TZWN1cml0eSBleHRlbnNpb25zIG5vdCcKIGVuZGlmCiBpZiAhZXhpc3RzKCJnOm5ldHJ3X2tlZXBkaXIiKQotIGxldCBnOm5ldHJ3X2tlZXBkaXI9IDAKKyBsZXQgZzpuZXRyd19rZWVwZGlyPSAxCiBlbmRpZgogaWYgIWV4aXN0cygiczpuZXRyd19jZF9lc2NhcGUiKQogIGlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQogICBsZXQgczpuZXRyd19jZF9lc2NhcGU9IiMlICIKICBlbHNlCi0gIGxldCBzOm5ldHJ3X2NkX2VzY2FwZT0iKiQlJ1wiID9gIgorICBsZXQgczpuZXRyd19jZF9lc2NhcGU9IltdIyokJSdcIiA/YCEmKCk7PD5cXCIKICBlbmRpZgogZW5kaWYKIGlmICFleGlzdHMoInM6bmV0cndfZ2xvYl9lc2NhcGUiKQogIGlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQogICBsZXQgczpuZXRyd19nbG9iX2VzY2FwZT0gIiIKICBlbHNlCi0gIGxldCBzOm5ldHJ3X2dsb2JfZXNjYXBlPSAnW10qP2B7ficKKyAgbGV0IHM6bmV0cndfZ2xvYl9lc2NhcGU9ICdbXSo/YHt+JCcKICBlbmRpZgogZW5kaWYKK2lmICFleGlzdHMoImc6bmV0cndfYWx0byIpCisgbGV0IGc6bmV0cndfYWx0bz0gMAorZW5kaWYKK2lmICFleGlzdHMoImc6bmV0cndfYWx0diIpCisgbGV0IGc6bmV0cndfYWx0dj0gMAorZW5kaWYKIAogIiBCdWZFbnRlciBldmVudCBpZ25vcmVkIGJ5IGRlY2hvIHdoZW4gZm9sbG93aW5nIHZhcmlhYmxlIGlzIHRydWUKICIgIEhhcyBhIHNpZGUgZWZmZWN0IHRoYXQgZG9hdSBCdWZSZWFkUG9zdCBkb2Vzbid0IHdvcmssIHNvCkBAIC0yODYsMTggKzI5OSwxOCBAQAogIAogICAgIGlmIG1hdGNoKGNob2ljZSwiPyIpID09IDAKICAgICAgIiBnaXZlIGhlbHAKLSAgICAgZWNobyAnTmV0UmVhZCBVc2FnZTonCi0gICAgIGVjaG8gJzpOcmVhZCBtYWNoaW5lOnBhdGggICAgICAgICAgICAgICAgICAgICAgICAgdXNlcyByY3AnCi0gICAgIGVjaG8gJzpOcmVhZCAibWFjaGluZSBwYXRoIiAgICAgICAgICAgICAgICAgICAgICAgdXNlcyBmdHAgICB3aXRoIDwubmV0cmM+JwotICAgICBlY2hvICc6TnJlYWQgIm1hY2hpbmUgaWQgcGFzc3dvcmQgcGF0aCIgICAgICAgICAgIHVzZXMgZnRwJwotICAgICBlY2hvICc6TnJlYWQgZGF2Oi8vbWFjaGluZVs6cG9ydF0vcGF0aCAgICAgICAgICAgIHVzZXMgY2FkYXZlcicKLSAgICAgZWNobyAnOk5yZWFkIGZldGNoOi8vbWFjaGluZS9wYXRoICAgICAgICAgICAgICAgICB1c2VzIGZldGNoJwotICAgICBlY2hvICc6TnJlYWQgZnRwOi8vW3VzZXJAXW1hY2hpbmVbOnBvcnRdL3BhdGggICAgIHVzZXMgZnRwICAgYXV0b2RldGVjdHMgPC5uZXRyYz4nCi0gICAgIGVjaG8gJzpOcmVhZCBodHRwOi8vW3VzZXJAXW1hY2hpbmUvcGF0aCAgICAgICAgICAgdXNlcyBodHRwICB3Z2V0JwotICAgICBlY2hvICc6TnJlYWQgcmNwOi8vW3VzZXJAXW1hY2hpbmUvcGF0aCAgICAgICAgICAgIHVzZXMgcmNwJwotICAgICBlY2hvICc6TnJlYWQgcnN5bmM6Ly9tYWNoaW5lWzpwb3J0XS9wYXRoICAgICAgICAgIHVzZXMgcnN5bmMnCi0gICAgIGVjaG8gJzpOcmVhZCBzY3A6Ly9bdXNlckBdbWFjaGluZVtbOiNdcG9ydF0vcGF0aCAgdXNlcyBzY3AnCi0gICAgIGVjaG8gJzpOcmVhZCBzZnRwOi8vW3VzZXJAXW1hY2hpbmVbWzojXXBvcnRdL3BhdGggdXNlcyBzZnRwJworICAgICBlY2hvbXNnICdOZXRSZWFkIFVzYWdlOicKKyAgICAgZWNob21zZyAnOk5yZWFkIG1hY2hpbmU6cGF0aCAgICAgICAgICAgICAgICAgICAgICAgICB1c2VzIHJjcCcKKyAgICAgZWNob21zZyAnOk5yZWFkICJtYWNoaW5lIHBhdGgiICAgICAgICAgICAgICAgICAgICAgICB1c2VzIGZ0cCAgIHdpdGggPC5uZXRyYz4nCisgICAgIGVjaG9tc2cgJzpOcmVhZCAibWFjaGluZSBpZCBwYXNzd29yZCBwYXRoIiAgICAgICAgICAgdXNlcyBmdHAnCisgICAgIGVjaG9tc2cgJzpOcmVhZCBkYXY6Ly9tYWNoaW5lWzpwb3J0XS9wYXRoICAgICAgICAgICAgdXNlcyBjYWRhdmVyJworICAgICBlY2hvbXNnICc6TnJlYWQgZmV0Y2g6Ly9tYWNoaW5lL3BhdGggICAgICAgICAgICAgICAgIHVzZXMgZmV0Y2gnCisgICAgIGVjaG9tc2cgJzpOcmVhZCBmdHA6Ly9bdXNlckBdbWFjaGluZVs6cG9ydF0vcGF0aCAgICAgdXNlcyBmdHAgICBhdXRvZGV0ZWN0cyA8Lm5ldHJjPicKKyAgICAgZWNob21zZyAnOk5yZWFkIGh0dHA6Ly9bdXNlckBdbWFjaGluZS9wYXRoICAgICAgICAgICB1c2VzIGh0dHAgIHdnZXQnCisgICAgIGVjaG9tc2cgJzpOcmVhZCByY3A6Ly9bdXNlckBdbWFjaGluZS9wYXRoICAgICAgICAgICAgdXNlcyByY3AnCisgICAgIGVjaG9tc2cgJzpOcmVhZCByc3luYzovL21hY2hpbmVbOnBvcnRdL3BhdGggICAgICAgICAgdXNlcyByc3luYycKKyAgICAgZWNob21zZyAnOk5yZWFkIHNjcDovL1t1c2VyQF1tYWNoaW5lW1s6I11wb3J0XS9wYXRoICB1c2VzIHNjcCcKKyAgICAgZWNob21zZyAnOk5yZWFkIHNmdHA6Ly9bdXNlckBdbWFjaGluZVtbOiNdcG9ydF0vcGF0aCB1c2VzIHNmdHAnCiAgICAgIGJyZWFrCiAKICAgICBlbHNlaWYgbWF0Y2goY2hvaWNlLCJeXCIiKSAhPSAtMQpAQCAtMzE1LDcgKzMyOCw5IEBACiAgICAgICAgbGV0IHdob2xlY2hvaWNlID0gd2hvbGVjaG9pY2UgLiAiICIgLiBjaG9pY2UKICAgICAgICBsZXQgaWNob2ljZSAgICAgPSBpY2hvaWNlICsgMQogICAgICAgIGlmIGljaG9pY2UgPiBhOjAKLSAgICAgICAgZWNob2VyciAiVW5iYWxhbmNlZCBzdHJpbmcgaW4gZmlsZW5hbWUgJyIuIHdob2xlY2hvaWNlIC4iJyIKKyAgICAgICAJaWYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCisgICAgICAgICBlY2hvZXJyICJVbmJhbGFuY2VkIHN0cmluZyBpbiBmaWxlbmFtZSAnIi4gd2hvbGVjaG9pY2UgLiInIgorCWVuZGlmCiAiICAgICAgICBjYWxsIERyZXQoIk5ldFJlYWQiKQogICAgICAgICByZXR1cm4KICAgICAgICBlbmRpZgpAQCAtMzk3LDExICs0MTIsMTAgQEAKICAgICAgIGV4ZSBnOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLmc6bmV0cndfbWFjaGluZQogICAgICBlbmRpZgogICAgICAiIElmIHRoZSByZXN1bHQgb2YgdGhlIGZ0cCBvcGVyYXRpb24gaXNuJ3QgYmxhbmssIHNob3cgYW4gZXJyb3IgbWVzc2FnZSAodG54IHRvIERvdWcgQ2xhYXIpCi0gICAgIGlmIGdldGxpbmUoMSkgIX4gIl4kIgorICAgICBpZiBnZXRsaW5lKDEpICF+ICJeJCIgJiYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCiAgICAgICBsZXQgZGVidWdrZWVwPSAmZGVidWcKICAgICAgIHNldCBkZWJ1Zz1tc2cKICAgICAgIGVjaG9lcnIgZ2V0bGluZSgxKQotICAgICAgZXhlICJlY2hvbXNnICciLmdldGxpbmUoMSkuIiciCiAgICAgICBsZXQgJmRlYnVnPSBkZWJ1Z2tlZXAKICAgICAgZW5kaWYKICAgICAgYmQhCkBAIC00NDUsNyArNDU5LDkgQEAKICAgICAiIElmIHRoZSByZXN1bHQgb2YgdGhlIGZ0cCBvcGVyYXRpb24gaXNuJ3QgYmxhbmssIHNob3cgYW4gZXJyb3IgbWVzc2FnZSAodG54IHRvIERvdWcgQ2xhYXIpCiAgICAgaWYgZ2V0bGluZSgxKSAhfiAiXiQiCiAiICAgICBjYWxsIERlY2hvKCJlcnJvcjwiLmdldGxpbmUoMSkuIj4iKQotICAgICBlY2hvZXJyIGdldGxpbmUoMSkKKyAgICAgaWYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCisgICAgICBlY2hvZXJyIGdldGxpbmUoMSkKKyAgICAgZW5kaWYKICAgICBlbmRpZgogICAgIGJkIQogICAgIGxldCByZXN1bHQJCT0gczpOZXRHZXRGaWxlKHJlYWRjbWQsIHRtcGZpbGUsIGI6bmV0cndfbWV0aG9kKQpAQCAtNDc1LDcgKzQ5MSw5IEBACiAgICBlbHNlaWYgICAgIGI6bmV0cndfbWV0aG9kICA9PSA1CSIgcmVhZCB3aXRoIGh0dHAgKHdnZXQpCiAiICAgIGNhbGwgRGVjaG8oInJlYWQgdmlhIGh0dHAgKG1ldGhvZCAjNSkiKQogICAgIGlmIGc6bmV0cndfaHR0cF9jbWQgPT0gIiIKLSAgICAgZWNob2VyciAibmVpdGhlciB3Z2V0IG5vciBmZXRjaCBjb21tYW5kIGlzIGF2YWlsYWJsZSIKKyAgICAgaWYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCisgICAgICBlY2hvZXJyICJuZWl0aGVyIHdnZXQgbm9yIGZldGNoIGNvbW1hbmQgaXMgYXZhaWxhYmxlIgorICAgICBlbmRpZgogICAgICBleGl0CiAgICAgZW5kaWYKICAKQEAgLTU1MCw3ICs1NjgsOSBAQAogICAgIiAgICBmZXRjaDovL1t1c2VyQF1ob3N0WzpodHRwXS9wYXRoCiAgICBlbHNlaWYgICAgIGI6bmV0cndfbWV0aG9kICA9PSA4CSIgcmVhZCB3aXRoIGZldGNoCiAgICAgaWYgZzpuZXRyd19mZXRjaF9jbWQgPT0gIiIKLSAgICAgZWNob2VyciAiZmV0Y2ggY29tbWFuZCBub3QgYXZhaWxhYmxlIgorICAgICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKKyAgICAgIGVjaG9lcnIgImZldGNoIGNvbW1hbmQgbm90IGF2YWlsYWJsZSIKKyAgICAgZW5kaWYKICAgICAgZXhpdAogICAgIGVuZGlmCiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X29wdGlvbiIpICYmIGc6bmV0cndfb3B0aW9uID09ICI6aHR0cCIKQEAgLTc0OSwxNyArNzY5LDE3IEBACiAgCiAgICAgIiBSZWNvbnN0cnVjdCBDaG9pY2UgaWYgY2hvaWNlIHN0YXJ0cyB3aXRoICciJwogICAgIGlmIG1hdGNoKGNob2ljZSwiPyIpID09IDAKLSAgICAgZWNobyAnTmV0V3JpdGUgVXNhZ2U6IicKLSAgICAgZWNobyAnOk53cml0ZSBtYWNoaW5lOnBhdGggICAgICAgICAgICAgICAgICAgICAgICB1c2VzIHJjcCcKLSAgICAgZWNobyAnOk53cml0ZSAibWFjaGluZSBwYXRoIiAgICAgICAgICAgICAgICAgICAgICB1c2VzIGZ0cCB3aXRoIDwubmV0cmM+JwotICAgICBlY2hvICc6TndyaXRlICJtYWNoaW5lIGlkIHBhc3N3b3JkIHBhdGgiICAgICAgICAgIHVzZXMgZnRwJwotICAgICBlY2hvICc6TndyaXRlIGRhdjovL1t1c2VyQF1tYWNoaW5lL3BhdGggICAgICAgICAgIHVzZXMgY2FkYXZlcicKLSAgICAgZWNobyAnOk53cml0ZSBmZXRjaDovL1t1c2VyQF1tYWNoaW5lL3BhdGggICAgICAgICB1c2VzIGZldGNoJwotICAgICBlY2hvICc6TndyaXRlIGZ0cDovL21hY2hpbmVbI3BvcnRdL3BhdGggICAgICAgICAgIHVzZXMgZnRwICAoYXV0b2RldGVjdHMgPC5uZXRyYz4pJwotICAgICBlY2hvICc6TndyaXRlIHJjcDovL21hY2hpbmUvcGF0aCAgICAgICAgICAgICAgICAgIHVzZXMgcmNwJwotICAgICBlY2hvICc6TndyaXRlIHJzeW5jOi8vW3VzZXJAXW1hY2hpbmUvcGF0aCAgICAgICAgIHVzZXMgcnN5bmMnCi0gICAgIGVjaG8gJzpOd3JpdGUgc2NwOi8vW3VzZXJAXW1hY2hpbmVbWzojXXBvcnRdL3BhdGggdXNlcyBzY3AnCi0gICAgIGVjaG8gJzpOd3JpdGUgc2Z0cDovL1t1c2VyQF1tYWNoaW5lL3BhdGggICAgICAgICAgdXNlcyBzZnRwJworICAgICBlY2hvbXNnICdOZXRXcml0ZSBVc2FnZToiJworICAgICBlY2hvbXNnICc6TndyaXRlIG1hY2hpbmU6cGF0aCAgICAgICAgICAgICAgICAgICAgICAgIHVzZXMgcmNwJworICAgICBlY2hvbXNnICc6TndyaXRlICJtYWNoaW5lIHBhdGgiICAgICAgICAgICAgICAgICAgICAgIHVzZXMgZnRwIHdpdGggPC5uZXRyYz4nCisgICAgIGVjaG9tc2cgJzpOd3JpdGUgIm1hY2hpbmUgaWQgcGFzc3dvcmQgcGF0aCIgICAgICAgICAgdXNlcyBmdHAnCisgICAgIGVjaG9tc2cgJzpOd3JpdGUgZGF2Oi8vW3VzZXJAXW1hY2hpbmUvcGF0aCAgICAgICAgICAgdXNlcyBjYWRhdmVyJworICAgICBlY2hvbXNnICc6TndyaXRlIGZldGNoOi8vW3VzZXJAXW1hY2hpbmUvcGF0aCAgICAgICAgIHVzZXMgZmV0Y2gnCisgICAgIGVjaG9tc2cgJzpOd3JpdGUgZnRwOi8vbWFjaGluZVsjcG9ydF0vcGF0aCAgICAgICAgICAgdXNlcyBmdHAgIChhdXRvZGV0ZWN0cyA8Lm5ldHJjPiknCisgICAgIGVjaG9tc2cgJzpOd3JpdGUgcmNwOi8vbWFjaGluZS9wYXRoICAgICAgICAgICAgICAgICAgdXNlcyByY3AnCisgICAgIGVjaG9tc2cgJzpOd3JpdGUgcnN5bmM6Ly9bdXNlckBdbWFjaGluZS9wYXRoICAgICAgICAgdXNlcyByc3luYycKKyAgICAgZWNob21zZyAnOk53cml0ZSBzY3A6Ly9bdXNlckBdbWFjaGluZVtbOiNdcG9ydF0vcGF0aCB1c2VzIHNjcCcKKyAgICAgZWNob21zZyAnOk53cml0ZSBzZnRwOi8vW3VzZXJAXW1hY2hpbmUvcGF0aCAgICAgICAgICB1c2VzIHNmdHAnCiAgICAgIGJyZWFrCiAgCiAgICAgZWxzZWlmIG1hdGNoKGNob2ljZSwiXlwiIikgIT0gLTEKQEAgLTc3NSw3ICs3OTUsOSBAQAogICAgICAgIGxldCB3aG9sZWNob2ljZT0gd2hvbGVjaG9pY2UgLiAiICIgLiBjaG9pY2UKICAgICAgICBsZXQgaWNob2ljZSAgICA9IGljaG9pY2UgKyAxCiAgICAgICAgaWYgY2hvaWNlID4gYTowCi0gICAgICAgIGVjaG9lcnIgIlVuYmFsYW5jZWQgc3RyaW5nIGluIGZpbGVuYW1lICciLiB3aG9sZWNob2ljZSAuIiciCisgICAgICAgCWlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQorICAgICAgICAgZWNob2VyciAiVW5iYWxhbmNlZCBzdHJpbmcgaW4gZmlsZW5hbWUgJyIuIHdob2xlY2hvaWNlIC4iJyIKKwllbmRpZgogIiAgICAgICAgY2FsbCBEcmV0KCJOZXRXcml0ZSIpCiAgICAgICAgIHJldHVybgogICAgICAgIGVuZGlmCkBAIC04NDMsNyArODY1LDkgQEAKICAgICBlbmRpZgogICAgICIgSWYgdGhlIHJlc3VsdCBvZiB0aGUgZnRwIG9wZXJhdGlvbiBpc24ndCBibGFuaywgc2hvdyBhbiBlcnJvciBtZXNzYWdlICh0bnggdG8gRG91ZyBDbGFhcikKICAgICBpZiBnZXRsaW5lKDEpICF+ICJeJCIKLSAgICAgZWNob2VyciBnZXRsaW5lKDEpCisgICAgIGlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQorICAgICAgZWNob2VyciBnZXRsaW5lKDEpCisgICAgIGVuZGlmCiAgICAgIGxldCBtb2Q9MQogICAgIGVuZGlmCiAgICAgYmQhCkBAIC04ODAsNyArOTA0LDkgQEAKICAgICBleGUgZzpuZXRyd19zaWxlbnR4ZmVyLiIlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgLW4iCiAgICAgIiBJZiB0aGUgcmVzdWx0IG9mIHRoZSBmdHAgb3BlcmF0aW9uIGlzbid0IGJsYW5rLCBzaG93IGFuIGVycm9yIG1lc3NhZ2UgKHRueCB0byBEb3VnIENsYWFyKQogICAgIGlmIGdldGxpbmUoMSkgIX4gIl4kIgotICAgICBlY2hvZXJyIGdldGxpbmUoMSkKKyAgICAgaWYgICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQorICAgICAgZWNob2VyciBnZXRsaW5lKDEpCisgICAgIGVuZGlmCiAgICAgIGxldCBtb2Q9MQogICAgIGVuZGlmCiAgICAgYmQhCkBAIC05MDYsNyArOTMyLDkgQEAKICAgICIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgogICAgIiBodHRwOiBOZXRXcml0ZSBNZXRob2QgIzUKICAgIGVsc2VpZiAgICAgYjpuZXRyd19tZXRob2QgPT0gNQotICAgIGVjaG9lcnIgIioqKndhcm5pbmcqKiogY3VycmVudGx5IDxuZXRydy52aW0+IGRvZXMgbm90IHN1cHBvcnQgd3JpdGluZyB1c2luZyBodHRwOiIKKyAgICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKKyAgICAgZWNob2VyciAiKioqd2FybmluZyoqKiBjdXJyZW50bHkgPG5ldHJ3LnZpbT4gZG9lcyBub3Qgc3VwcG9ydCB3cml0aW5nIHVzaW5nIGh0dHA6IgorICAgIGVuZGlmCiAgCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KICAgICIgZGF2OiBOZXRXcml0ZSBNZXRob2QgIzYKQEAgLTk5NywxMiArMTAyNSwxOCBAQAogIiAgY2FsbCBEZnVuYygiTmV0QnJvd3NlKGRpcm5hbWU8Ii5hOmRpcm5hbWUuIj4pIGxvbmdsaXN0PSIuZzpuZXRyd19sb25nbGlzdCkKIAogICAiIHNhbml0eSBjaGVjawotICBpZiBleGlzdHMoImI6bmV0cndfbWV0aG9kIikgJiYgKGI6bmV0cndfbWV0aG9kID1+ICdbMjNdJyAmJiAhZXhlY3V0YWJsZSgiZnRwIikpCi0gICBlY2hvZXJyICIqKipuZXRydyoqKiB0aGlzIHN5c3RlbSBkb2Vzbid0IHN1cHBvcnQgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5nIHZpYSBmdHAiCi0iICAgY2FsbCBEcmV0KCJOZXRCcm93c2UiKQotICAgcmV0dXJuCisgIGlmIGV4aXN0cygiYjpuZXRyd19tZXRob2QiKSAmJiBiOm5ldHJ3X21ldGhvZCA9fiAnWzIzXScKKyAgIGlmICFleGVjdXRhYmxlKCJmdHAiKQorICAgIGlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQorICAgICBlY2hvZXJyICIqKipuZXRydyoqKiB0aGlzIHN5c3RlbSBkb2Vzbid0IHN1cHBvcnQgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5nIHZpYSBmdHAiCisgICAgZW5kaWYKKyIgICAgY2FsbCBEcmV0KCJOZXRCcm93c2UiKQorICAgIHJldHVybgorICAgZW5kaWYKICAgZWxzZWlmICFleGlzdHMoImc6bmV0cndfbGlzdF9jbWQiKSB8fCBnOm5ldHJ3X2xpc3RfY21kID09ICcnCi0gICBlY2hvZXJyICIqKipuZXRydyoqKiB0aGlzIHN5c3RlbSBkb2Vzbid0IHN1cHBvcnQgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5nIHZpYSBzc2giCisgICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKKyAgICBlY2hvZXJyICIqKipuZXRydyoqKiB0aGlzIHN5c3RlbSBkb2Vzbid0IHN1cHBvcnQgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5nIHZpYSBzc2giCisgICBlbmRpZgogIiAgIGNhbGwgRHJldCgiTmV0QnJvd3NlIikKICAgIHJldHVybgogICBlbmRpZgpAQCAtMTAxNCw3ICsxMDQ4LDkgQEAKICAgbGV0IGRpcnBhdCAgPSAnXlwoXHdcey19XCk6Ly9cKFx3XCtAXClcPVwoW14vXVwrXCkvXCguKlwpJCcKICIgIGNhbGwgRGVjaG8oImRpcnBhdDwiLmRpcnBhdC4iPiIpCiAgIGlmIGE6ZGlybmFtZSAhfiBkaXJwYXQKLSAgIGVjaG9lcnIgIk5ldEJyb3dzZTogSSBkb24ndCB1bmRlcnN0YW5kIHlvdXIgZGlybmFtZTwiLmE6ZGlybmFtZS4iPiIKKyAgIGlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQorICAgIGVjaG9lcnIgIk5ldEJyb3dzZTogSSBkb24ndCB1bmRlcnN0YW5kIHlvdXIgZGlybmFtZTwiLmE6ZGlybmFtZS4iPiIKKyAgIGVuZGlmCiAiICAgY2FsbCBEcmV0KCJOZXRCcm93c2UgOiBiYWRseSBmb3JtYXR0ZWQgZGlybmFtZTwiLmE6ZGlybmFtZS4iPiIpCiAgICByZXR1cm4KICAgZW5kaWYKQEAgLTEwMzEsNyArMTA2Nyw3IEBACiAiICBjYWxsIERlY2hvKCJzZXQgdXAgZm5hbWUgIDwiLmZuYW1lICAuIj4iKQogCiAgIGlmIG1ldGhvZCA9PSAiZnRwIgotICAgbGV0IGxpc3RjbWQgPSAiLWxGIgorICAgbGV0IGxpc3RjbWQgPSBnOm5ldHJ3X2Z0cF9saXN0X2NtZAogICBlbHNlCiAgICBsZXQgbGlzdGNtZCA9IHN1YnN0aXR1dGUoZzpuZXRyd19saXN0X2NtZCwnXDxIT1NUTkFNRVw+Jyx1c2VyLm1hY2hpbmUsJycpCiAgIGVuZGlmCkBAIC0xMDQxLDE0ICsxMDc3LDE4IEBACiAgIGVuZGlmCiAKICAgIiBvcHRpb25hbGx5IHNvcnQgYnkgdGltZSAoLXQpIG9yIGJ5IHNpemUgKC1TKQotICBpZiBnOm5ldHJ3X3NvcnRfYnkgPX4gIl50IgotICAgbGV0IGxpc3RjbWQ9IGxpc3RjbWQuInQiCi0gIGVsc2VpZiBnOm5ldHJ3X3NvcnRfYnkgPX4gIl5zIgotICAgbGV0IGxpc3RjbWQ9IGxpc3RjbWQuIlMiCi0gIGVuZGlmCi0gICIgb3B0aW9uYWxseSBzb3J0IGluIHJldmVyc2UKLSAgaWYgZzpuZXRyd19zb3J0X2RpcmVjdGlvbiA9fiAiXnIiCi0gICBsZXQgbGlzdGNtZD0gbGlzdGNtZC4iciIKKyAgaWYgbGlzdGNtZCA9PSAiZGlyIiAmJiBnOm5ldHJ3X3NvcnRfYnkgPX4gIl5bdHNdIgorICAgZWNob2VyciAiKioqd2FybmluZyoqKiB3aW5kb3dzJyBmdHAgZG9lc24ndCBzdXBwb3J0IHRpbWUvc2l6ZSBzb3J0cyAoZ2V0IGN5Z3dpbiwgc2V0IGc6bmV0cndfY3lnd2luKSIKKyAgZWxzZQorICAgaWYgZzpuZXRyd19zb3J0X2J5ID1+ICJedCIKKyAgICBsZXQgbGlzdGNtZD0gbGlzdGNtZC4idCIKKyAgIGVsc2VpZiBnOm5ldHJ3X3NvcnRfYnkgPX4gIl5zIgorICAgIGxldCBsaXN0Y21kPSBsaXN0Y21kLiJTIgorICAgZW5kaWYKKyAgICIgb3B0aW9uYWxseSBzb3J0IGluIHJldmVyc2UKKyAgIGlmIGc6bmV0cndfc29ydF9kaXJlY3Rpb24gPX4gIl5yIiAmJiBsaXN0Y21kID09ICJkaXIiCisgICAgbGV0IGxpc3RjbWQ9IGxpc3RjbWQuInIiCisgICBlbmRpZgogICBlbmRpZgogCiAiICBjYWxsIERlY2hvKCJzZXQgdXAgbGlzdGNtZDwiLmxpc3RjbWQuIj4iKQpAQCAtMTA3MSw2ICsxMTExLDcgQEAKIAogICAgIiByZW1vdGUtcmVhZCB0aGUgcmVxdWVzdGVkIGZpbGUgaW50byBjdXJyZW50IGJ1ZmZlcgogICAgZW5ldyEKKyIgICBjYWxsIERlY2hvKCJleGUgZmlsZSAubWV0aG9kLiI6Ly8iLnVzZXIubWFjaGluZS4iLyIuZXNjYXBlKHBhdGgsczpuZXRyd19jZF9lc2NhcGUpKQogICAgZXhlICJmaWxlICIubWV0aG9kLiI6Ly8iLnVzZXIubWFjaGluZS4iLyIuZXNjYXBlKHBhdGgsczpuZXRyd19jZF9lc2NhcGUpCiAgICBleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQcmUgIi5mbmFtZQogICAgc2lsZW50IGNhbGwgczpOZXRSZWFkKG1ldGhvZC4iOi8vIi51c2VyLm1hY2hpbmUuIi8iLnBhdGgpCkBAIC0xMDg3LDkgKzExMjgsOSBAQAogIiAgY2FsbCBEZWNobygiUGVyZm9ybSBkaXJlY3RvcnkgbGlzdGluZy4uLiIpCiAgICIgc2V0IHVwIG5ldyBidWZmZXIgYW5kIG1hcAogICBsZXQgYnVmbmFtZSAgID0gbWV0aG9kLic6Ly8nLnVzZXIubWFjaGluZS4nLycucGF0aAotICBsZXQgYnVmbmFtZW5yID0gYnVmZXhpc3RzKGJ1Zm5hbWUpCisgIGxldCBidWZuYW1lbnIgPSBidWZucihidWZuYW1lLickJykKICIgIGNhbGwgRGVjaG8oImJ1Zm5hbWU8Ii5idWZuYW1lLiI+IGJ1Zm5hbWVucj0iLmJ1Zm5hbWVucikKLSAgaWYgYnVmbmFtZW5yICE9IDAKKyAgaWYgYnVmbmFtZW5yICE9IC0xCiAgICAiIGJ1ZmZlciBhbHJlYWR5IGV4aXN0cywgc3dpdGNoIHRvIGl0IQogIiAgIGNhbGwgRGVjaG8oImJ1ZmZlciBhbHJlYWR5IGV4aXN0cywgc3dpdGNoaW5nIHRvIGl0IikKICAgIGV4ZSAiYiAiLmJ1Zm5hbWVucgpAQCAtMTEwNCw2ICsxMTQ1LDcgQEAKIAogICAiIHJlbmFtZSBmaWxlIHRvIHJlZmxlY3Qgd2hlcmUgaXRzIGZyb20KICAgc2V0bG9jYWwgdHM9MzIgYnQ9bm9maWxlIGJoPXdpcGUgbm9ibAorIiAgY2FsbCBEZWNobygiZXhlIGZpbGUgIi5lc2NhcGUoYnVmbmFtZSxzOm5ldHJ3X2NkX2VzY2FwZSkpCiAgIGV4ZSAnZmlsZSAnLmVzY2FwZShidWZuYW1lLHM6bmV0cndfY2RfZXNjYXBlKQogIiAgY2FsbCBEZWNobygicmVuYW1pbmcgZmlsZSB0byBidWZuYW1lPCIuYnVmbmFtZS4iPiIpCiAgIHNldGxvY2FsIGJ0PW5vd3JpdGUgYmg9aGlkZSBub2JsCkBAIC0xMTEzLDE3ICsxMTU1LDE3IEBACiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxjcj4JOmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRCcm93c2UoPFNJRD5OZXRCcm93c2VDaGdEaXIoZXhwYW5kKCIlIiksPFNJRD5OZXRHZXRXb3JkKCkpKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPGMtbD4JOmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRCcm93c2UoPFNJRD5OZXRCcm93c2VDaGdEaXIoZXhwYW5kKCIlIiksJy4vJykpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiAtCQk6ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPk5ldEJyb3dzZSg8U0lEPk5ldEJyb3dzZUNoZ0RpcihleHBhbmQoIiUiKSwnLi4vJykpPGNyPgotICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBhCQk6bGV0IGc6bmV0cndfaGlkZT0hZzpuZXRyd19oaWRlPGJhcj5leGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TmV0QnJvd3NlKDxTSUQ+TmV0QnJvd3NlQ2hnRGlyKGV4cGFuZCgiJSIpLCcuLycpKTxjcj4KKyAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gYQkJOmxldCBnOm5ldHJ3X2hpZGU9KGc6bmV0cndfaGlkZSsxKSUzPGJhcj5leGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TmV0QnJvd3NlKDxTSUQ+TmV0QnJvd3NlQ2hnRGlyKGV4cGFuZCgiJSIpLCcuLycpKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gYgkJOjxjLXU+Y2FsbCA8U0lEPk5ldEJvb2ttYXJrRGlyKDAsZXhwYW5kKCIlIikpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBCCQk6PGMtdT5jYWxsIDxTSUQ+TmV0Qm9va21hcmtEaXIoMSxleHBhbmQoIiUiKSk8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxjLWg+CTpjYWxsIDxTSUQ+TmV0SGlkZUVkaXQoMCk8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGkJCTpjYWxsIDxTSUQ+TmV0TG9uZ0xpc3QoMCk8Y3I+Ci0gIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG8JCTpleGUgZzpuZXRyd193aW5zaXplLiJ3aW5jbWQgcyI8YmFyPmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRCcm93c2UoPFNJRD5OZXRCcm93c2VDaGdEaXIoZXhwYW5kKCIlIiksPFNJRD5OZXRHZXRXb3JkKCkpKTxjcj4KKyAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbwkJOmV4ZSAoZzpuZXRyd19hbHRvPyAiYmVsICIgOiAiYWJvICIpLmc6bmV0cndfd2luc2l6ZS4id2luY21kIHMiPGJhcj5leGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TmV0QnJvd3NlKDxTSUQ+TmV0QnJvd3NlQ2hnRGlyKGV4cGFuZCgiJSIpLDxTSUQ+TmV0R2V0V29yZCgpKSk8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHEJCTo8Yy11PmNhbGwgPFNJRD5OZXRCb29rbWFya0RpcigyLGV4cGFuZCgiJSIpKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcgkJOmxldCBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uPSAoZzpuZXRyd19zb3J0X2RpcmVjdGlvbiA9fiAnbicpPyAncicgOiAnbic8YmFyPmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRCcm93c2UoPFNJRD5OZXRCcm93c2VDaGdEaXIoZXhwYW5kKCIlIiksJy4vJykpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBzCQk6Y2FsbCA8U0lEPk5ldFNhdmVXb3JkUG9zbigpPGJhcj5sZXQgZzpuZXRyd19zb3J0X2J5PSAoZzpuZXRyd19zb3J0X2J5ID1+ICduJyk/ICd0aW1lJyA6IChnOm5ldHJ3X3NvcnRfYnkgPX4gJ3QnKT8gJ3NpemUnIDogJ25hbWUnPGJhcj5leGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TmV0QnJvd3NlKDxTSUQ+TmV0QnJvd3NlQ2hnRGlyKGV4cGFuZCgiJSIpLCcuLycpKTxiYXI+Y2FsbCA8U0lEPk5ldFJlc3RvcmVXb3JkUG9zbigpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBTCQk6Y2FsbCA8U0lEPk5ldFNvcnRTZXF1ZW5jZSgwKTxjcj4KLSAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gdgkJOmV4ZSBnOm5ldHJ3X3dpbnNpemUuIndpbmNtZCB2IjxiYXI+ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPk5ldEJyb3dzZSg8U0lEPk5ldEJyb3dzZUNoZ0RpcihleHBhbmQoIiUiKSw8U0lEPk5ldEdldFdvcmQoKSkpPGNyPgorICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB2CQk6ZXhlIChnOm5ldHJ3X2FsdHY/ICJyaWdodGIgIiA6ICJsZWZ0YSAiKS5nOm5ldHJ3X3dpbnNpemUuIndpbmNtZCB2IjxiYXI+ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPk5ldEJyb3dzZSg8U0lEPk5ldEJyb3dzZUNoZ0RpcihleHBhbmQoIiUiKSw8U0lEPk5ldEdldFdvcmQoKSkpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB4CQk6ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPk5ldEJyb3dzZVgoPFNJRD5OZXRCcm93c2VDaGdEaXIoZXhwYW5kKCIlIiksPFNJRD5OZXRHZXRXb3JkKCkpLDEpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8Mi1sZWZ0bW91c2U+IDpleGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TmV0QnJvd3NlKDxTSUQ+TmV0QnJvd3NlQ2hnRGlyKGV4cGFuZCgiJSIpLDxTSUQ+TmV0R2V0V29yZCgpKSk8Y3I+CiAgIGV4ZSAnbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPGRlbD4JOmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRCcm93c2VSbSgiJy51c2VyLm1hY2hpbmUuJyIsIicucGF0aC4nIik8Y3I+JwpAQCAtMTE1Nyw3ICsxMTk5LDExIEBACiAgICBrZWVwanVtcHMgcHV0ID0nXCIgICBTb3J0ZWQgYnkgJy5zb3J0YnkKICAgZW5kaWYKICAgaWYgZzpuZXRyd19saXN0X2hpZGUgIT0gIiIgJiYgZzpuZXRyd19oaWRlCi0gICBrZWVwanVtcHMgcHV0ID0nXCIgICBIaWRpbmc6ICcuZzpuZXRyd19saXN0X2hpZGUKKyAgIGlmIGc6bmV0cndfaGlkZSA9PSAxCisgICAga2VlcGp1bXBzIHB1dCA9J1wiICAgSGlkaW5nOiAnLmc6bmV0cndfbGlzdF9oaWRlCisgICBlbHNlCisgICAga2VlcGp1bXBzIHB1dCA9J1wiICAgU2hvd2luZzogJy5nOm5ldHJ3X2xpc3RfaGlkZQorICAgZW5kaWYKICAgIGxldCBzOm5ldHJ3X2Jhbm5lcmNudD0gczpuZXRyd19iYW5uZXJjbnQgKyAxCiAgIGVuZGlmCiAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFF1aWNrIEhlbHA6ICAgID86aGVscCAgLTpnbyB1cCBkaXIgIEQ6ZGVsZXRlICBSOnJlbmFtZSAgczpzb3J0LWJ5ICB4OmV4ZWMnCkBAIC0xMTY3LDI2ICsxMjEzLDQyIEBACiAgICIgVXNlIGZ0cCBpZiB0aGF0IHdhcyB0aGUgZmlsZS10cmFuc2ZlciBtZXRob2Qgc2VsZWN0ZWQsIG90aGVyd2lzZSB1c2Ugc3NoCiAgICIgTm90ZSB0aGF0IG5vdCBhbGwgZnRwIHNlcnZlcnMgaG9ub3IgdGhlIG9wdGlvbnMgZm9yIGxzCiAgIGlmIG1ldGhvZCA9PSAiZnRwIgotICAgY2FsbCBOZXRCcm93c2VGdHBDbWQocGF0aCwibHMgIi5saXN0Y21kKQorICAgIiB1c2UgZnRwIHRvIGdldCByZW1vdGUgZmlsZSBsaXN0aW5nCisiICAgY2FsbCBEZWNobygidXNlIGZ0cCB0byBnZXQgcmVtb3RlIGZpbGUgbGlzdGluZyIpCisgICBjYWxsIE5ldEJyb3dzZUZ0cENtZChwYXRoLGxpc3RjbWQpCisKICAgIGtlZXBqdW1wcyAxZAogCiAgICBpZiAhZzpuZXRyd19sb25nbGlzdAotIiAgICBjYWxsIERlY2hvKCJnZW5lcmF0ZSBzaG9ydCBsaXN0aW5nIikKICAgICAiIHNob3J0ZW4gdGhlIGxpc3RpbmcKKyIgICAgY2FsbCBEZWNobygiZ2VuZXJhdGUgc2hvcnQgbGlzdGluZyIpCiAgICAgZXhlICJrZWVwanVtcHMgIi5zOm5ldHJ3X2Jhbm5lcmNudAogICAgICIgY2xlYW51cAogICAgIHdoaWxlIGdldGxpbmUoIi4iKSA9fiBnOm5ldHJ3X2Z0cF9icm93c2VfcmVqZWN0CiAgICAgIGtlZXBqdW1wcyBkCiAgICAgZW5kd2hpbGUKLSAgICBrZWVwanVtcHMgcHV0PScuLi8nCi0gICAga2VlcGp1bXBzIHB1dD0nLi8nCisKKyAgICAiIGlmIHRoZXJlJ3Mgbm8gLi4vIGxpc3RlZCwgdGhlbiBwdXQgLi8gYW5kIC4uLyBpbgorICAgIGxldCBsaW5lMT0gbGluZSgiLiIpCisgICAga2VlcGp1bXBzIDEKKyAgICBzaWxlbnQga2VlcGp1bXBzIGNhbGwgc2VhcmNoKCdeXC5cLlwvXCUoXHNcfCRcKScsJ1cnKQorICAgIGxldCBsaW5lMj0gbGluZSgiLiIpCisgICAgaWYgbGluZTIgPT0gMAorICAgICBrZWVwanVtcHMgcHV0PScuLi8nCisgICAgIGtlZXBqdW1wcyBwdXQ9Jy4vJworICAgIGVuZGlmCisgICAgZXhlICJrZWVwanVtcHMgIi5saW5lMQorICAgIGtlZXBqdW1wcyBub3JtISAwCisKKyAgICAiIG1vcmUgY2xlYW51cAogICAgIGV4ZSAna2VlcGp1bXBzIHNpbGVudCAnLnM6bmV0cndfYmFubmVyY250LicsJHMvXlwoXCUoXFNcK1xzXCtcKVx7N31cU1wrXClcc1wrXChcUy4qXCkkL1wyL2UnCiAgICAgZXhlICJrZWVwanVtcHMgc2lsZW50ICIuczpuZXRyd19iYW5uZXJjbnQuJywkZy8gLT4gL3MjIC0+IC4qLyQjLyMnCiAgICAgZXhlICJrZWVwanVtcHMgc2lsZW50ICIuczpuZXRyd19iYW5uZXJjbnQuJywkZy8gLT4gL3MjIC0+IC4qJCMvIycKICAgIGVuZGlmCiAKICAgZWxzZQotIiAgIGNhbGwgRGVjaG8oInVzZSBzc2giKQorICAgIiB1c2Ugc3NoIHRvIGdldCByZW1vdGUgZmlsZSBsaXN0aW5nCisiICAgY2FsbCBEZWNobygidXNlIHNzaCB0byBnZXQgcmVtb3RlIGZpbGUgbGlzdGluZyIpCiAgICBsZXQgc2hxPSAmc2hxPyAmc2hxIDogKCAmc3hxPyAmc3hxIDogIiciKQogIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgciEgIi5saXN0Y21kLiIgIi5zaHEuZXNjYXBlKHBhdGgsczpuZXRyd19jZF9lc2NhcGUpLnNocSkKICAgIGV4ZSAic2lsZW50IHIhICIubGlzdGNtZC4iICIuc2hxLmVzY2FwZShwYXRoLHM6bmV0cndfY2RfZXNjYXBlKS5zaHEKQEAgLTEyMTAsOCArMTI3MiwxNyBAQAogICAgICB3aGlsZSBnZXRsaW5lKCIuIikgPX4gJ150b3RhbFxzXCtcZFwrJCcgfHwgZ2V0bGluZSgiLiIpID1+ICdUcnlpbmdcc1wrXGRcKy4qJCcKICAgICAgIGtlZXBqdW1wcyBkCiAgICAgIGVuZHdoaWxlCi0gICAgIGV4ZSAna2VlcGp1bXBzICcuczpuZXRyd19iYW5uZXJjbnQuInB1dD0nLi8nIgotICAgICBleGUgJ2tlZXBqdW1wcyAnLnM6bmV0cndfYmFubmVyY250LiJwdXQ9Jy4uLyciCisgICAgICIgaWYgdGhlcmUncyBubyAuLi8gbGlzdGVkLCB0aGVuIHB1dCAuLyBhbmQgLi4vIGluCisgICAgIGxldCBsaW5lMT0gbGluZSgiLiIpCisgICAgIGtlZXBqdW1wcyAxCisgICAgIHNpbGVudCBrZWVwanVtcHMgY2FsbCBzZWFyY2goJ15cLlwuXC9cJShcc1x8JFwpJywnVycpCisgICAgIGxldCBsaW5lMj0gbGluZSgiLiIpCisgICAgIGlmIGxpbmUyID09IDAKKyAgICAgIGV4ZSAna2VlcGp1bXBzICcuczpuZXRyd19iYW5uZXJjbnQuInB1dD0nLi8nIgorICAgICAgZXhlICdrZWVwanVtcHMgJy5zOm5ldHJ3X2Jhbm5lcmNudC4icHV0PScuLi8nIgorICAgICBlbmRpZgorICAgIGV4ZSAia2VlcGp1bXBzICIubGluZTEKKyAgICBrZWVwanVtcHMgbm9ybSEgMAogICAgIGVuZGlmCiAKICAgICBleGUgJ2tlZXBqdW1wcyBzaWxlbnQgJy5zOm5ldHJ3X2Jhbm5lcmNudC4nLCRzLyAtPiAuKiQvL2UnCkBAIC0xMjI5LDYgKzEzMDAsNyBAQAogICAgIGV4ZSAia2VlcGp1bXBzIHNpbGVudCAiLnM6bmV0cndfYmFubmVyY250LicsJHMvXHRbLWRzdHJ3eF1cKy9cdC9lJwogICAgZW5kaWYKICAgZW5kaWYKKyAgZXhlICJrZWVwanVtcHMgIi5zOm5ldHJ3X2Jhbm5lcmNudAogICBzZXRsb2NhbCBub21vZAogICBzZXRsb2NhbCBub21hCiAKQEAgLTEyNjYsNiArMTMzOCw3IEBACiAgICBlbHNlCiAgICAgIiBzdHJpcCBvZmYgYSBkaXJlY3RvcnkgbmFtZSBmcm9tIGRpcm5hbWUKICAgICBsZXQgZGlybmFtZT0gc3Vic3RpdHV0ZShkaXJuYW1lLCdeXCguKi9cKVteL11cKy8nLCdcMScsJycpCisgIGV4ZSAic2lsZW50ISBrZWVwanVtcHMgIi5jdXJsaW5lLiIsJGQiCiAgICBlbmRpZgogIiAgIGNhbGwgRGVjaG8oImdvIHVwIG9uZSBkaXI6IGRpcm5hbWU8Ii5kaXJuYW1lLiI+IHRyYWlsZXI8Ii50cmFpbGVyLiI+IikKIApAQCAtMTI4Myw5ICsxMzU2LDEzIEBACiAiICBOZXRHZXRXb3JkOiBpdCBnZXRzIHRoZSBkaXJlY3RvcnkgbmFtZWQgdW5kZXIgdGhlIGN1cnNvcgogZnVuISA8U0lEPk5ldEdldFdvcmQoKQogIiAgY2FsbCBEZnVuYygiTmV0R2V0V29yZCgpIGxpbmUjIi5saW5lKCIuIikpCi0gIGxldCBkaXJuYW1lPSBnZXRsaW5lKCIuIikKLSAgaWYgZGlybmFtZSA9fiAnXHQnCi0gICBsZXQgZGlybmFtZT0gc3Vic3RpdHV0ZShkaXJuYW1lLCdcdC4qJCcsJycsJ2UnKQorICBpZiBsaW5lKCIuIikgPCBzOm5ldHJ3X2Jhbm5lcmNudAorICAgbGV0IGRpcm5hbWU9ICIuLyIKKyAgZWxzZQorICAgbGV0IGRpcm5hbWU9IGdldGxpbmUoIi4iKQorICAgaWYgZGlybmFtZSA9fiAnXHQnCisgICAgbGV0IGRpcm5hbWU9IHN1YnN0aXR1dGUoZGlybmFtZSwnXHQuKiQnLCcnLCdlJykKKyAgIGVuZGlmCiAgIGVuZGlmCiAiICBjYWxsIERyZXQoIk5ldEdldFdvcmQgPCIuZGlybmFtZS4iPiIpCiAgIHJldHVybiBkaXJuYW1lCkBAIC0xMjk5LDYgKzEzNzYsNyBAQAogCiAgICIgcHJlcGFyYXRpb24gZm9yIHJlbW92aW5nIG11bHRpcGxlIGZpbGVzL2RpcmVjdG9yaWVzCiAgIGxldCBjdHI9IGE6Zmlyc3RsaW5lCisgIGxldCBhbGw9IDAKIAogICAiIHJlbW92ZSBtdWx0aXBsZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMKICAgd2hpbGUgY3RyIDw9IGE6bGFzdGxpbmUKQEAgLTEzMTAsMTEgKzEzODgsMTkgQEAKIAogICAgaWYgcm1maWxlICF+ICdeIicgJiYgKHJtZmlsZSA9fiAnQCQnIHx8IHJtZmlsZSAhfiAnLyQnKQogICAgICIgYXR0ZW1wdCB0byByZW1vdmUgZmlsZQotICAgIGNhbGwgaW5wdXRzYXZlKCkKLSAgICBsZXQgb2s9IGlucHV0KCJDb25maXJtIGRlbGV0aW9uIG9mIGZpbGU8Ii5ybWZpbGUuIj4gIiwieSIpCi0gICAgY2FsbCBpbnB1dHJlc3RvcmUoKQorICAgIGlmICFhbGwKKyAgICAgZWNob2hsIFN0YXRlbWVudAorICAgICBjYWxsIGlucHV0c2F2ZSgpCisgICAgIGxldCBvaz0gaW5wdXQoIkNvbmZpcm0gZGVsZXRpb24gb2YgZmlsZTwiLnJtZmlsZS4iPiAiLCJbe3koZXMpfSxuKG8pLGEobGwpLHEodWl0KV0gIikKKyAgICAgY2FsbCBpbnB1dHJlc3RvcmUoKQorICAgICBlY2hvaGwgTk9ORQorICAgICBsZXQgb2s9IHN1YnN0aXR1dGUob2ssJ1xbe3koZXMpfSxuKG8pLGEobGwpLHEodWl0KV1ccyonLCcnLCdlJykKKyAgICAgaWYgb2sgPX4gJ2FcJVtsbF0nCisgICAgICBsZXQgYWxsPSAxCisgICAgIGVuZGlmCisgICAgZW5kaWYKIAotICAgIGlmIG9rID09ICJ5IgorICAgIGlmIGFsbCB8fCBvayA9fiAneVwlW2VzXScgfHwgb2sgPT0gIiIKICAgICAgaWYgZXhpc3RzKCJzOm5ldHJ3X21ldGhvZCIpICYmIChzOm5ldHJ3X21ldGhvZCA9PSAyIHx8IHM6bmV0cndfbWV0aG9kID09IDMpCiAgICAgICBzaWxlbnQhIGtlZXBqdW1wcyAuLCRkCiAgICAgICBjYWxsIE5ldEJyb3dzZUZ0cENtZChhOnBhdGgsImRlbGV0ZSAiLnJtZmlsZSkKQEAgLTEzMjQsMTUgKzE0MTAsMjMgQEAKICAgICAgIGxldCByZXQ9IHN5c3RlbShuZXRyd19ybV9jbWQpCiAiICAgICAgY2FsbCBEZWNobygicmV0dXJuZWQ9Ii5yZXQuIiBlcnJjb2RlPSIudjpzaGVsbF9lcnJvcikKICAgICAgZW5kaWYKKyAgICBlbHNlaWYgb2sgPX4gJ3FcJVt1aXRdJworICAgICBicmVhawogICAgIGVuZGlmCiAgIAogICAgZWxzZQogICAgICIgYXR0ZW1wdCB0byByZW1vdmUgZGlyZWN0b3J5Ci0gICAgY2FsbCBpbnB1dHNhdmUoKQotICAgIGxldCBvaz0gaW5wdXQoIkNvbmZpcm0gZGVsZXRpb24gb2YgZGlyZWN0b3J5PCIucm1maWxlLiI+ICIsInkiKQotICAgIGNhbGwgaW5wdXRyZXN0b3JlKCkKKyAgICBpZiAhYWxsCisgICAgIGNhbGwgaW5wdXRzYXZlKCkKKyAgICAgbGV0IG9rPSBpbnB1dCgiQ29uZmlybSBkZWxldGlvbiBvZiBkaXJlY3Rvcnk8Ii5ybWZpbGUuIj4gIiwiW3t5KGVzKX0sbihvKSxhKGxsKSxxKHVpdCldICIpCisgICAgIGNhbGwgaW5wdXRyZXN0b3JlKCkKKyAgICAgbGV0IG9rPSBzdWJzdGl0dXRlKG9rLCdcW3t5KGVzKX0sbihvKSxhKGxsKSxxKHVpdCldXHMqJywnJywnZScpCisgICAgIGlmIG9rID1+ICdhXCVbbGxdJworICAgICAgbGV0IGFsbD0gMQorICAgICBlbmRpZgorICAgIGVuZGlmCiAKLSAgICBpZiBvayA9PSAieSIKKyAgICBpZiBhbGwgfHwgb2sgPX4gJ3lcJVtlc10nIHx8IG9rID09ICIiCiAgICAgIGlmIGV4aXN0cygiczpuZXRyd19tZXRob2QiKSAmJiAoczpuZXRyd19tZXRob2QgPT0gMiB8fCBzOm5ldHJ3X21ldGhvZCA9PSAzKQogICAgICAgY2FsbCBOZXRCcm93c2VGdHBDbWQoYTpwYXRoLCJybWRpciAiLnJtZmlsZSkKICAgICAgZWxzZQpAQCAtMTM0OCwxMSArMTQ0MiwxNCBAQAogICAgICAgIGxldCByZXQ9IHN5c3RlbShuZXRyd19ybWZfY21kKQogIiAgICAgICBjYWxsIERlY2hvKCJyZXR1cm5lZD0iLnJldC4iIGVycmNvZGU9Ii52OnNoZWxsX2Vycm9yKQogICAgICAKLSAgICAgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKKyAgICAgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAgJiYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCiAgICAgICAgIGVjaG9lcnIgInVuYWJsZSB0byByZW1vdmUgZGlyZWN0b3J5PCIucm1maWxlLiI+IC0tIGlzIGl0IGVtcHR5PyIKICAgICAgICBlbmRpZgogICAgICAgZW5kaWYKICAgICAgZW5kaWYKKworICAgIGVsc2VpZiBvayA9fiAncVwlW3VpdF0nCisgICAgIGJyZWFrCiAgICAgZW5kaWYKICAgIGVuZGlmCiAKQEAgLTE0MTQsNDMgKzE1MTEsNzIgQEAKIGZ1biEgPFNJRD5OZXRCcm93c2VYKGZuYW1lLHJlbW90ZSkKICIgIGNhbGwgRGZ1bmMoIk5ldEJyb3dzZVgoIi5hOmZuYW1lLiIgcmVtb3RlPSIuYTpyZW1vdGUuIikiKQogCisgICIgc2V0IHVwIHRoZSBmaWxlbmFtZQorICAiIChsb3dlciBjYXNlIHRoZSBleHRlbnNpb24sIG1ha2UgYSBsb2NhbCBjb3B5IG9mIGEgcmVtb3RlIGZpbGUpCiAgIGxldCBleHRlbj0gc3Vic3RpdHV0ZShhOmZuYW1lLCcuKlwuXCguXHstfVwpJywnXDEnLCdlJykKICAgaWYgaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpCiAgICBsZXQgZXh0ZW49IHN1YnN0aXR1dGUoZXh0ZW4sJ14uKiQnLCdcTCZcRScsJycpCiAgIGVuZGlmCisgIGxldCBmbmFtZT0gZXNjYXBlKGE6Zm5hbWUsIiUjIikKKyIgIGNhbGwgRGVjaG8oImZuYW1lPCIuZm5hbWUuIj4gYWZ0ZXIgZXNjYXBlKCkiKQorCisgIGlmIGE6cmVtb3RlID09IDEKKyAgICIgY3JlYXRlIGEgbG9jYWwgY29weQorICAgbGV0IGZuYW1lPSB0ZW1wbmFtZSgpLiIuIi5leHRlbgorIiAgIGNhbGwgRGVjaG8oImNyZWF0ZSBhIGxvY2FsIGNvcHkgb2YgPCIuYTpmbmFtZS4iPiBhcyA8Ii5mbmFtZS4iPiIpCisgICBleGUgImtlZXBqdW1wcyBzaWxlbnQgYm90IDFuZXcgIi5hOmZuYW1lCisgICBsZXQgZWlrZWVwPSAmZWkKKyAgIHNldCBlaT1hbGwgYmg9ZGVsZXRlCisgICBleGUgInchICIuZm5hbWUKKyAgIGxldCAmZWk9IGVpa2VlcAorICAgcQorICBlbmRpZgogIiAgY2FsbCBEZWNobygiZXh0ZW48Ii5leHRlbi4iPiAiLiJOZXRyd0ZpbGVIYW5kbGVyXyIuZXh0ZW4uIigpOmV4aXN0cz0iLmV4aXN0cygiKk5ldHJ3RmlsZUhhbmRsZXJfIi5leHRlbikpCi0gIGlmIGV4dGVuICE9ICIiICYmIGV4aXN0cygiKk5ldHJ3RmlsZUhhbmRsZXJfIi5leHRlbikKIAotICAgbGV0IGZuYW1lPSBhOmZuYW1lCi0gICBpZiBhOnJlbW90ZSA9PSAxCi0gICAgIiBjcmVhdGUgYSBsb2NhbCBjb3B5Ci0gICAgbGV0IGZuYW1lPSB0ZW1wbmFtZSgpLiIuIi5leHRlbgotIiAgICBjYWxsIERlY2hvKCJjcmVhdGUgYSBsb2NhbCBjb3B5IG9mIDwiLmE6Zm5hbWUuIj4gYXMgPCIuZm5hbWUuIj4iKQotICAgIGV4ZSAia2VlcGp1bXBzIHNpbGVudCBib3QgMW5ldyAiLmE6Zm5hbWUKLSAgICBsZXQgZWlrZWVwPSAmZWkKLSAgICBzZXQgZWk9YWxsIGJoPWRlbGV0ZQotICAgIGV4ZSAidyEgIi5mbmFtZQotICAgIGxldCAmZWk9IGVpa2VlcAotICAgIHEKLSAgIGVuZGlmCisgICIgc2V0IHVwIHJlZGlyZWN0aW9uCisgIGlmICZzcnIgPX4gIiVzIgorICAgbGV0IHJlZGlyPSBzdWJzdGl0dXRlKCZzcnIsIiVzIiwiL2Rldi9udWxsIi4iIikKKyAgZWxzZQorICAgbGV0IHJlZGlyPSAmc3JyIC4gIi9kZXYvbnVsbCIKKyAgZW5kaWYKKyIgIGNhbGwgRGVjaG8oInJlZGlyOiIucmVkaXIuIjoiKQogCisgICIgZXhlY3V0ZSB0aGUgZmlsZSBoYW5kbGVyCisgIGlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjY0IikKKyIgICBjYWxsIERlY2hvKCdleGUgc2lsZW50ICFzdGFydCBydW5kbGwzMiB1cmwuZGxsLEZpbGVQcm90b2NvbEhhbmRsZXIgIicuZXNjYXBlKGZuYW1lLCAnJSMnKS4nIicpCisgICBleGUgJ3NpbGVudCAhc3RhcnQgcnVuZGxsMzIgdXJsLmRsbCxGaWxlUHJvdG9jb2xIYW5kbGVyICInLmVzY2FwZShmbmFtZSwgJyUjJykuJyInCisgICBsZXQgcmV0PSB2OnNoZWxsX2Vycm9yCisKKyAgZWxzZWlmIGhhcygidW5peCIpICYmIGV4ZWN1dGFibGUoImtmbWNsaWVudCIpCisiICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCAha2ZtY2xpZW50IGV4ZWMgJyIuZXNjYXBlKGZuYW1lLCclIycpLiInICIucmVkaXIpCisgICBleGUgInNpbGVudCAha2ZtY2xpZW50IGV4ZWMgJyIuZXNjYXBlKGZuYW1lLCclIycpLiInICIucmVkaXIKKyAgIGxldCByZXQ9IHY6c2hlbGxfZXJyb3IKKworICBlbHNlaWYgaGFzKCJ1bml4IikgJiYgZXhlY3V0YWJsZSgiZ25vbWUtb3BlbiIpCisiICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCAhZ25vbWUtb3BlbiAnIi5lc2NhcGUoZm5hbWUsJyUjJykuIicgIi5yZWRpcikKKyAgIGV4ZSAic2lsZW50ICFnbm9tZS1vcGVuICciLmVzY2FwZShmbmFtZSwnJSMnKS4iJyIucmVkaXIKKyAgIGxldCByZXQ9IHY6c2hlbGxfZXJyb3IKKworICBlbHNlaWYgZXh0ZW4gIT0gIiIgJiYgZXhpc3RzKCIqTmV0cndGaWxlSGFuZGxlcl8iLmV4dGVuKQorIiAgIGNhbGwgRGVjaG8oImxldCByZXQ9IE5ldHJ3RmlsZUhhbmRsZXJfIi5leHRlbi4nKCInLmZuYW1lLiciKScpCiAgICBleGUgImxldCByZXQ9IE5ldHJ3RmlsZUhhbmRsZXJfIi5leHRlbi4nKCInLmZuYW1lLiciKScKLSAgICByZWRyYXchCisgIGVuZGlmCisgIHJlZHJhdyEKIAotICAgIiBjbGVhbnVwOiByZW1vdmUgdGVtcG9yYXJ5IGZpbGUsCi0gICAiICAgICAgICAgIGRlbGV0ZSBjdXJyZW50IGJ1ZmZlciBpZiBzdWNjZXNzIHdpdGggaGFuZGxlciwKLSAgICIgICAgICAgICAgcmV0dXJuIHRvIHByaW9yIGJ1ZmZlciAoZGlyZWN0b3J5IGxpc3RpbmcpCi0gICBpZiBhOnJlbW90ZSA9PSAxICYmIGZuYW1lICE9IGE6Zm5hbWUKLSIgICAgY2FsbCBEZWNobygiZGVsZXRpbmcgdGVtcG9yYXJ5IGZpbGU8Ii5mbmFtZS4iPiIpCi0gICAgY2FsbCBkZWxldGUoZm5hbWUpCi0gICBlbmRpZgotICAgaWYgcmV0ICE9IDAKLSAgICBsZXQgZWlrZWVwPSAmZWkKLSAgICBzZXQgZWk9YWxsIGJoPWRlbGV0ZSBidD1ub2ZpbGUKLSAgICBleGUgIm5vcm0hIFw8Yy1vPiIKLSAgICBsZXQgJmVpPSBlaWtlZXAKLSAgICByZWRyYXchCi0gICBlbmRpZgorICAiIGNsZWFudXA6IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZSwKKyAgIiAgICAgICAgICBkZWxldGUgY3VycmVudCBidWZmZXIgaWYgc3VjY2VzcyB3aXRoIGhhbmRsZXIsCisgICIgICAgICAgICAgcmV0dXJuIHRvIHByaW9yIGJ1ZmZlciAoZGlyZWN0b3J5IGxpc3RpbmcpCisgIGlmIGE6cmVtb3RlID09IDEgJiYgZm5hbWUgIT0gYTpmbmFtZQorIiAgIGNhbGwgRGVjaG8oImRlbGV0aW5nIHRlbXBvcmFyeSBmaWxlPCIuZm5hbWUuIj4iKQorICAgY2FsbCBkZWxldGUoZm5hbWUpCisgIGVuZGlmCisKKyAgaWYgYTpyZW1vdGUgPT0gMQorICAgbGV0IGVpa2VlcD0gJmVpCisgICBzZXQgZWk9YWxsIGJoPWRlbGV0ZSBidD1ub2ZpbGUKKyAgIGV4ZSAibm9ybSEgXDxjLW8+IgorICAgbGV0ICZlaT0gZWlrZWVwCisgICByZWRyYXchCiAgIGVuZGlmCiAKICIgIGNhbGwgRHJldCgiTmV0QnJvd3NlWCIpCkBAIC0xNDgyLDYgKzE2MDgsOCBAQAogICAgZW5kaWYKICAgIGV4ZSAicHV0ID0nIi5hOmNtZC4iJyIKIAorCisiICAgIHJlZHJhdyF8Y2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQYXVzaW5nLi4uIil8Y2FsbCBpbnB1dHJlc3RvcmUoKSAiRGVjaG8KICAgIGlmIGV4aXN0cygiZzpuZXRyd19wb3J0IikgJiYgZzpuZXRyd19wb3J0ICE9ICIiCiAiICAgIGNhbGwgRGVjaG8oImV4ZSAiLmc6bmV0cndfc2lsZW50eGZlci5jdXJsaW5lLiIsJCEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lLiIgIi5nOm5ldHJ3X3BvcnQpCiAgICAgZXhlIGc6bmV0cndfc2lsZW50eGZlci5jdXJsaW5lLiIsJCEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lLiIgIi5nOm5ldHJ3X3BvcnQKQEAgLTE1MjQsNiArMTY1MiwxOSBAQAogICAgIGVjaG8gIioqKndhcm5pbmcqKiogdW5hYmxlIHRvIGNvbXBseSB3aXRoIHlvdXIgcmVxdWVzdDwiIC4gY2hvaWNlIC4gIj4iCiAgIGVuZGlmCiAKKyAgIiBjbGVhbnVwIGZvciBXaW5kb3dzCisgIGlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQorICAga2VlcGp1bXBzIHNpbGVudCEgJXMvXHIkLy8KKyAgZW5kaWYKKyAgaWYgYTpjbWQgPT0gImRpciIKKyAgICIgaW5mZXIgZGlyZWN0b3J5L2xpbmsgYmFzZWQgb24gdGhlIGZpbGUgcGVybWlzc2lvbiBzdHJpbmcKKyAgIGtlZXBqdW1wcyBzaWxlbnQgZy9kXCUoWy1yXVstd11bLXhdXClcezN9L3NAJEAvQAorICAga2VlcGp1bXBzIHNpbGVudCBnL2xcJShbLXJdWy13XVsteF1cKVx7M30vcy8kL0AvCisgICBpZiAhZzpuZXRyd19sb25nbGlzdAorICAgIGV4ZSAia2VlcGp1bXBzIHNpbGVudCAiLmN1cmxpbmUuJywkcy9eXCUoXFNcK1xzXCtcKVx7OH0vLycKKyAgIGVuZGlmCisgIGVuZGlmCisKICAgIiByZXN0b3JlIHNldHRpbmdzCiAgIGxldCAmZmY9IGZma2VlcAogIiAgY2FsbCBEcmV0KCJOZXRCcm93c2VGdHBDbWQiKQpAQCAtMTU0NCw4ICsxNjg1LDE0IEBACiAgICAgbGV0IGhpZGUgICAgID0gbGlzdGhpZGUKICAgICBsZXQgbGlzdGhpZGU9ICIiCiAgICBlbmRpZgorCisgICAiIFBydW5lIHRoZSBsaXN0IGJ5IGhpZGluZyBhbnkgZmlsZXMgd2hpY2ggbWF0Y2gKICIgICBjYWxsIERlY2hvKCJwcnVuaW5nIDwiLmhpZGUuIj4gbGlzdGhpZGU8Ii5saXN0aGlkZS4iPiIpCi0gICBleGUgJ2tlZXBqdW1wcyBzaWxlbnQgJy5zOm5ldHJ3X2Jhbm5lcmNudC4nLCRnficuaGlkZS4nfmQnCisgICBpZiBnOm5ldHJ3X2hpZGUgPT0gMQorICAgIGV4ZSAna2VlcGp1bXBzIHNpbGVudCAnLnM6bmV0cndfYmFubmVyY250LicsJGd+Jy5oaWRlLid+ZCcKKyAgIGVsc2VpZiBnOm5ldHJ3X2hpZGUgPT0gMgorICAgIGV4ZSAna2VlcGp1bXBzIHNpbGVudCAnLnM6bmV0cndfYmFubmVyY250LicsJHZ+Jy5oaWRlLid+ZCcKKyAgIGVuZGlmCiAgIGVuZHdoaWxlCiAKICIgIGNhbGwgRHJldCgiTmV0cndMaXN0SGlkZSIpCkBAIC0xNjYyLDEyICsxODA5LDE2IEBACiAgICBsZXQgZnVsbG5ld2Rpcj0gYjpuZXRyd19jdXJkaXIuJy8nLm5ld2Rpcm5hbWUKICIgICBjYWxsIERlY2hvKCJmdWxsbmV3ZGlyPCIuZnVsbG5ld2Rpci4iPiIpCiAgICBpZiBpc2RpcmVjdG9yeShmdWxsbmV3ZGlyKQotICAgIGVjaG9lcnIgIioqKndhcm5pbmcqKiogPCIubmV3ZGlybmFtZS4iPiBpcyBhbHJlYWR5IGEgZGlyZWN0b3J5ISIKKyAgICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKKyAgICAgZWNob2VyciAiKioqd2FybmluZyoqKiA8Ii5uZXdkaXJuYW1lLiI+IGlzIGFscmVhZHkgYSBkaXJlY3RvcnkhIgorICAgIGVuZGlmCiAiICAgIGNhbGwgRHJldCgiTmV0TWFrZURpciA6IGRpcmVjdG9yeTwiLm5ld2Rpcm5hbWUuIj4gZXhpc3RzIHByZXZpb3VzbHkiKQogICAgIHJldHVybgogICAgZW5kaWYKICAgIGlmIGZpbGVyZWFkYWJsZShmdWxsbmV3ZGlyKQotICAgIGVjaG9lcnIgIioqKndhcm5pbmcqKiogPCIubmV3ZGlybmFtZS4iPiBpcyBhbHJlYWR5IGEgZmlsZSEiCisgICAgaWYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCisgICAgIGVjaG9lcnIgIioqKndhcm5pbmcqKiogPCIubmV3ZGlybmFtZS4iPiBpcyBhbHJlYWR5IGEgZmlsZSEiCisgICAgZW5kaWYKICIgICAgY2FsbCBEcmV0KCJOZXRNYWtlRGlyIDogZmlsZTwiLm5ld2Rpcm5hbWUuIj4gZXhpc3RzIHByZXZpb3VzbHkiKQogICAgIHJldHVybgogICAgZW5kaWYKQEAgLTE2ODcsNyArMTgzOCw3IEBACiAgICAgY2FsbCBzOkxvY2FsQnJvd3NlKHM6TG9jYWxCcm93c2VDaGdEaXIoYjpuZXRyd19jdXJkaXIsJy4vJykpCiAgICAgZXhlICJub3JtISAiLmhsaW5lLiJHMHpcPENSPiIKICAgICBleGUgbGluZW51bQotICAgZWxzZQorICAgZWxzZWlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgIGVjaG9lcnIgIioqKndhcm5pbmcqKiogdW5hYmxlIHRvIG1ha2UgZGlyZWN0b3J5PCIubmV3ZGlybmFtZS4iPiIKICAgIGVuZGlmCiAgICByZWRyYXchCkBAIC0xNzA2LDcgKzE4NTcsNyBAQAogICAgIGNhbGwgczpOZXRCcm93c2UoczpOZXRCcm93c2VDaGdEaXIoZXhwYW5kKCIlIiksJy4vJykpCiAgICAgZXhlICJub3JtISAiLmhsaW5lLiJHMHpcPENSPiIKICAgICBleGUgbGluZW51bQotICAgZWxzZQorICAgZWxzZWlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgIGVjaG9lcnIgIioqKndhcm5pbmcqKiogdW5hYmxlIHRvIG1ha2UgZGlyZWN0b3J5PCIubmV3ZGlybmFtZS4iPiIKICAgIGVuZGlmCiAgICByZWRyYXchCkBAIC0xNzc1LDcgKzE5MjYsOSBAQAogIiAgY2FsbCBEcmVkaXIoImxzISIpCiAKICAgaWYgdjp2ZXJzaW9uIDwgNjAzCi0gICBlY2hvZXJyICJ2aW0gdmVyc2lvbjwiLnY6dmVyc2lvbi4iPiB0b28gb2xkIGZvciBicm93c2luZyB3aXRoIG5ldHJ3IgorICAgaWYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCisgICAgZWNob2VyciAidmltIHZlcnNpb248Ii52OnZlcnNpb24uIj4gdG9vIG9sZCBmb3IgYnJvd3Npbmcgd2l0aCBuZXRydyIKKyAgIGVuZGlmCiAiICAgY2FsbCBEcmV0KCJMb2NhbEJyb3dzZSA6IHZpbSB2ZXJzaW9uPCIudjp2ZXJzaW9uLiI+IHRvbyBvbGQiKQogICAgcmV0dXJuCiAgIGVuZGlmCkBAIC0xNzk2LDE0ICsxOTQ5LDEzIEBACiAgICIgcmVtb3ZlIHRoZSB0cmFpbGluZyAiLyIKICAgbGV0IGRpcm5hbWVucz0gc3Vic3RpdHV0ZShkaXJuYW1lLCcvJCcsJycsJ2UnKQogICBsZXQgZGlybmFtZW5yPSBidWZucihkaXJuYW1lbnMuJyQnKQotIiAgY2FsbCBEZWNobygiZGlybmFtZW5yPSBidWZucigiLmRpcm5hbWVucy4iKT0iLmRpcm5hbWVucikKKyIgIGNhbGwgRGVjaG8oImRpcm5hbWVucj0gYnVmbnIoIi5kaXJuYW1lbnMuIik9Ii5kaXJuYW1lbnIuIiBidWZuYW1lKCIuZGlybmFtZW5yLiIpPSIuYnVmbmFtZShkaXJuYW1lbnIpKQogCiAgIGlmIGRpcm5hbWVuciAhPSAwICYmIGJ1Zm5hbWUoZGlybmFtZW5yKSAhPSBkaXJuYW1lbnMKICAgICIgdHJ5IGtlZXBpbmcgdGhlIHRyYWlsaW5nIHNsYXNoCiAgICBsZXQgZGlybmFtZW5yID0gYnVmbnIoZGlybmFtZS4nJCcpCi0iICAgY2FsbCBEZWNobygicmV0cnk6IGRpcm5hbWVucj0gYnVmbnIoIi5kaXJuYW1lLiIpPSIuZGlybmFtZW5yKQorIiAgIGNhbGwgRGVjaG8oImRpcm5hbWVucj0gYnVmbnIoIi5kaXJuYW1lLiIpPSIuZGlybmFtZW5yLiIgYnVmbmFtZSgiLmRpcm5hbWVuci4iKT0iLmJ1Zm5hbWUoZGlybmFtZW5yKS4iIChyZXRyeSB3aXRoIC8pIikKICAgZW5kaWYKLSIgIGNhbGwgRGVjaG8oImJ1Zm5yKGRpcm5hbWU8Ii5kaXJuYW1lLiI+KT0iLmRpcm5hbWVucikKIAogICBpZiBkaXJuYW1lbnIgIT0gLTEKICAgICIgYnVmZmVyIGFscmVhZHkgZXhpc3RzIChoaWRkZW4pLCBzbyBzd2l0Y2ggdG8gaXQhCkBAIC0xODEyLDEyICsxOTY0LDE0IEBACiAgICBleGUgImIgIi5kaXJuYW1lbnIKICAgIGV4ZSAnc2lsZW50ISBjZCAnLmVzY2FwZShzdWJzdGl0dXRlKGE6ZGlybmFtZSwnXFwnLCcvJywnZ2UnKSxzOm5ldHJ3X2NkX2VzY2FwZSkKICIgICBjYWxsIERlY2hvKCJjaGFuZ2VkIGRpcmVjdG9yeSB0bzwiLmRpcm5hbWUuIj4iKQotICAgaWYgYTpkaXJuYW1lICE9ICIuIiAmJiBsaW5lKCIkIikgPj0gNQotIiAgICBjYWxsIERyZXQoIkxvY2FsQnJvd3NlIDogYnVmZmVyIGFscmVhZHkgZXhpc3RzIHdpdGggaW5mbywgIyIuZGlybmFtZW5yKQotICAgIGlmIGc6bmV0cndfa2VlcGRpciB8IGV4ZSAna2VlcGp1bXBzIGNkICcubmV0cndfb3JpZ2RpciB8IGVuZGlmCi0gICAgcmV0dXJuCisgICBpZiBhOmRpcm5hbWUgIT0gIi4iICYmIGxpbmUoIiQiKSA+PSA1ICYmIGV4aXN0cygiYjpuZXRyd19jdXJkaXIiKQorICAgIGlmIGI6bmV0cndfY3VyZGlyID09IGRpcm5hbWUKKyIgICAgIGNhbGwgRHJldCgiTG9jYWxCcm93c2UgOiBidWZmZXIgYWxyZWFkeSBleGlzdHMgd2l0aCBpbmZvLCAjIi5kaXJuYW1lbnIpCisgICAgIGlmIGc6bmV0cndfa2VlcGRpciB8IGV4ZSAna2VlcGp1bXBzIGNkICcubmV0cndfb3JpZ2RpciB8IGVuZGlmCisgICAgIHJldHVybgorICAgIGVuZGlmCiAgICBlbmRpZgotIiAgIGNhbGwgRGVjaG8oImJ1ZmZlciBhbHJlYWR5IGV4aXN0cywgYnV0IG5lZWRzIGxpc3RpbmcgKGJ1ZiMiLmRpcm5hbWVuci4iKSIpCisiICAgY2FsbCBEZWNobygiYnVmZmVyIGFscmVhZHkgZXhpc3RzLCBidXQgbmVlZHMgcmUtbGlzdGluZyAoYnVmIyIuZGlybmFtZW5yLiIpIikKICAgIHNldGxvY2FsIG1hCiAgICBrZWVwanVtcHMgJWQKICAgIGlmIGV4cGFuZCgiJTpwIikgIT0gZGlybmFtZQpAQCAtMTgzOSwxOSArMTk5MywyMCBAQAogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8Y3I+CTpleGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TG9jYWxCcm93c2UoPFNJRD5Mb2NhbEJyb3dzZUNoZ0RpcihiOm5ldHJ3X2N1cmRpciw8U0lEPk5ldEdldFdvcmQoKSkpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8Yy1sPgk6ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPkxvY2FsQnJvd3NlKDxTSUQ+TG9jYWxCcm93c2VDaGdEaXIoYjpuZXRyd19jdXJkaXIsJy4vJykpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiAtCQk6ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPkxvY2FsQnJvd3NlKDxTSUQ+TG9jYWxCcm93c2VDaGdEaXIoYjpuZXRyd19jdXJkaXIsJy4uLycpKTxjcj4KLSAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gYQkJOmxldCBnOm5ldHJ3X2hpZGU9IWc6bmV0cndfaGlkZTxiYXI+ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPkxvY2FsQnJvd3NlKDxTSUQ+TG9jYWxCcm93c2VDaGdEaXIoYjpuZXRyd19jdXJkaXIsJy4vJykpPGNyPgorICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBhCQk6bGV0IGc6bmV0cndfaGlkZT0oZzpuZXRyd19oaWRlKzEpJTM8YmFyPmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5Mb2NhbEJyb3dzZSg8U0lEPkxvY2FsQnJvd3NlQ2hnRGlyKGI6bmV0cndfY3VyZGlyLCcuLycpKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gYgkJOjxjLXU+Y2FsbCA8U0lEPk5ldEJvb2ttYXJrRGlyKDAsYjpuZXRyd19jdXJkaXIpPGNyPgogICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBCCQk6PGMtdT5jYWxsIDxTSUQ+TmV0Qm9va21hcmtEaXIoMSxiOm5ldHJ3X2N1cmRpcik8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGMJCTpleGUgImNkICIuYjpuZXRyd19jdXJkaXI8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGQJCTpjYWxsIDxTSUQ+TmV0TWFrZURpcigiIik8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxjLWg+CTpjYWxsIDxTSUQ+TmV0SGlkZUVkaXQoMSk8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGkJCTpjYWxsIDxTSUQ+TmV0TG9uZ0xpc3QoMSk8Y3I+Ci0gIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG8JCTpleGUgZzpuZXRyd193aW5zaXplLiJ3aW5jbWQgcyI8YmFyPmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5Mb2NhbEJyb3dzZSg8U0lEPkxvY2FsQnJvd3NlQ2hnRGlyKGI6bmV0cndfY3VyZGlyLDxTSUQ+TmV0R2V0V29yZCgpKSk8Y3I+CisgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG8JCTpleGUgKGc6bmV0cndfYWx0bz8gImJlbCAiIDogImFibyAiKS5nOm5ldHJ3X3dpbnNpemUuIndpbmNtZCBzIjxiYXI+ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPkxvY2FsQnJvd3NlKDxTSUQ+TG9jYWxCcm93c2VDaGdEaXIoYjpuZXRyd19jdXJkaXIsPFNJRD5OZXRHZXRXb3JkKCkpKTxjcj4KKyAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcAkJOmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5Mb2NhbFByZXZpZXcoPFNJRD5Mb2NhbEJyb3dzZUNoZ0RpcihiOm5ldHJ3X2N1cmRpciw8U0lEPk5ldEdldFdvcmQoKSwxKSk8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHEJCTo8Yy11PmNhbGwgPFNJRD5OZXRCb29rbWFya0RpcigyLGI6bmV0cndfY3VyZGlyKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcgkJOmxldCBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uPSAoZzpuZXRyd19zb3J0X2RpcmVjdGlvbiA9fiAnbicpPyAncicgOiAnbic8YmFyPmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5Mb2NhbEJyb3dzZSg8U0lEPkxvY2FsQnJvd3NlQ2hnRGlyKGI6bmV0cndfY3VyZGlyLCcuLycpKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcwkJOmNhbGwgPFNJRD5OZXRTYXZlV29yZFBvc24oKTxiYXI+bGV0IGc6bmV0cndfc29ydF9ieT0gKGc6bmV0cndfc29ydF9ieSA9fiAnbicpPyAndGltZScgOiAoZzpuZXRyd19zb3J0X2J5ID1+ICd0Jyk/ICdzaXplJyA6ICduYW1lJzxiYXI+ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPkxvY2FsQnJvd3NlKDxTSUQ+TG9jYWxCcm93c2VDaGdEaXIoYjpuZXRyd19jdXJkaXIsJy4vJykpPGJhcj5jYWxsIDxTSUQ+TmV0UmVzdG9yZVdvcmRQb3NuKCk8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFMJCTpjYWxsIDxTSUQ+TmV0U29ydFNlcXVlbmNlKDEpPGNyPgotICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB2CQk6ZXhlIGc6bmV0cndfd2luc2l6ZS4id2luY21kIHYiPGJhcj5leGUgIm5vcm0hIDAiPGJhcj5jYWxsIDxTSUQ+TG9jYWxCcm93c2UoPFNJRD5Mb2NhbEJyb3dzZUNoZ0RpcihiOm5ldHJ3X2N1cmRpciw8U0lEPk5ldEdldFdvcmQoKSkpPGNyPgorICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB2CQk6ZXhlIChnOm5ldHJ3X2FsdHY/ICJyaWdodGIgIiA6ICJsZWZ0YSAiKS5nOm5ldHJ3X3dpbnNpemUuIndpbmNtZCB2IjxiYXI+ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPkxvY2FsQnJvd3NlKDxTSUQ+TG9jYWxCcm93c2VDaGdEaXIoYjpuZXRyd19jdXJkaXIsPFNJRD5OZXRHZXRXb3JkKCkpKTxjcj4KICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4geAkJOmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRCcm93c2VYKDxTSUQ+TG9jYWxCcm93c2VDaGdEaXIoYjpuZXRyd19jdXJkaXIsPFNJRD5OZXRHZXRXb3JkKCksMCksMCk8Y3I+CiAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDwyLWxlZnRtb3VzZT4gOmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5Mb2NhbEJyb3dzZSg8U0lEPkxvY2FsQnJvd3NlQ2hnRGlyKGI6bmV0cndfY3VyZGlyLDxTSUQ+TmV0R2V0V29yZCgpKSk8Y3I+CiAgIGV4ZSAnbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPGRlbD4JOmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5Mb2NhbEJyb3dzZVJtKCInLmI6bmV0cndfY3VyZGlyLiciKTxjcj4nCkBAIC0xODg4LDcgKzIwNDMsMTEgQEAKICAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFNvcnRlZCBieSAnLnNvcnRieQogICBlbmRpZgogICBpZiBnOm5ldHJ3X2xpc3RfaGlkZSAhPSAiIiAmJiBnOm5ldHJ3X2hpZGUKLSAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIEhpZGluZzogJy5nOm5ldHJ3X2xpc3RfaGlkZQorICAgaWYgZzpuZXRyd19oaWRlID09IDEKKyAgICBrZWVwanVtcHMgcHV0ID0nXCIgICBIaWRpbmc6ICcuZzpuZXRyd19saXN0X2hpZGUKKyAgIGVsc2UKKyAgICBrZWVwanVtcHMgcHV0ID0nXCIgICBTaG93aW5nOiAnLmc6bmV0cndfbGlzdF9oaWRlCisgICBlbmRpZgogICAgbGV0IHM6bmV0cndfYmFubmVyY250PSBzOm5ldHJ3X2Jhbm5lcmNudCArIDEKICAgZW5kaWYKICAga2VlcGp1bXBzIHB1dCA9J1wiICAgUXVpY2sgSGVscDogICAgPzpoZWxwICAtOmdvIHVwIGRpciAgRDpkZWxldGUgIFI6cmVuYW1lICBzOnNvcnQtYnkgIHg6ZXhlYycKQEAgLTE5MjUsMTMgKzIwODQsMzUgQEAKIGZ1biEgTG9jYWxCcm93c2VMaXN0KGRpcm5hbWUpCiAiICBjYWxsIERmdW5jKCJMb2NhbEJyb3dzZUxpc3QoZGlybmFtZTwiLmE6ZGlybmFtZS4iPikiKQogCisgICIgZ2V0IHRoZSBsaXN0IG9mIGZpbGVzIGNvbnRhaW5lZCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkKICAgbGV0IGRpcm5hbWUgICAgPSBlc2NhcGUoYTpkaXJuYW1lLHM6bmV0cndfZ2xvYl9lc2NhcGUpCiAgIGxldCBkaXJuYW1lbGVuID0gc3RybGVuKGE6ZGlybmFtZSkKICAgbGV0IGZpbGVsaXN0ICAgPSBnbG9iKGRpcm5hbWUuIioiKQorIiAgY2FsbCBEZWNobygiZ2xvYihkaXJuYW1lPCIuZGlybmFtZS4iPiwqKT0iLmZpbGVsaXN0KQogICBpZiBmaWxlbGlzdCAhPSAiIgogICAgbGV0IGZpbGVsaXN0PSBmaWxlbGlzdC4iXG4iCiAgIGVuZGlmCiAgIGxldCBmaWxlbGlzdD0gZmlsZWxpc3QuZ2xvYihkaXJuYW1lLiIuKiIpCisiICBjYWxsIERlY2hvKCJnbG9iKGRpcm5hbWU8Ii5kaXJuYW1lLiI+LC4qKT0iLmdsb2IoZGlybmFtZS4iLioiKSkKKworICAiIGlmIHRoZSBkaXJlY3RvcnkgbmFtZSBpbmNsdWRlcyBhICIkIiwgYW5kIHBvc3NpYmx5IG90aGVyIGNoYXJhY3RlcnMsCisgICIgdGhlIGdsb2IoKSBkb2Vzbid0IGluY2x1ZGUgIi4iIGFuZCAiLi4iIGVudHJpZXMuCisgIGlmIGZpbGVsaXN0ICF+ICdbXFwvXVwuW1xcL11cPVwoXG5cfCRcKScKKyIgICBjYWxsIERlY2hvKCJmb3JjaWJseSB0YWNraW5nIG9uIC4iKQorICAgaWYgZmlsZWxpc3QgPT0gIiIKKyAgICBsZXQgZmlsZWxpc3Q9IGRpcm5hbWUuIi4iCisgICBlbHNlCisgICAgbGV0IGZpbGVsaXN0PSBmaWxlbGlzdC4iXG4iLmE6ZGlybmFtZS4iLiIKKyAgIGVuZGlmCisiICBjYWxsIERlY2hvKCJmaWxlbGlzdDwiLmZpbGVsaXN0LiI+IikKKyAgZW5kaWYKKyAgaWYgZmlsZWxpc3QgIX4gJ1tcXC9dXC5cLltcXC9dXD1cKFxuXHwkXCknCisiICAgY2FsbCBEZWNobygiZm9yY2libHkgdGFja2luZyBvbiAuLiIpCisgICBsZXQgZmlsZWxpc3Q9IGZpbGVsaXN0LiJcbiIuYTpkaXJuYW1lLiIuLiIKKyIgIGNhbGwgRGVjaG8oImZpbGVsaXN0PCIuZmlsZWxpc3QuIj4iKQorICBlbmRpZgorICBsZXQgZmlsZWxpc3Q9IHN1YnN0aXR1dGUoZmlsZWxpc3QsJ1xuXHsyLH0nLCdcbicsJ2dlJykKKwogIiAgY2FsbCBEZWNobygiZGlybmFtZTwiLmRpcm5hbWUuIj4iKQogIiAgY2FsbCBEZWNobygiZGlybmFtZWxlbjwiLmRpcm5hbWVsZW4uIj4iKQogIiAgY2FsbCBEZWNobygiZmlsZWxpc3Q8Ii5maWxlbGlzdC4iPiIpCkBAIC0xOTQ4LDYgKzIxMjksOSBAQAogICAgaWYgaXNkaXJlY3RvcnkoZmlsZSkKICAgICBsZXQgcGZpbGU9IGZpbGUuIi8iCiAgICBlbmRpZgorICAgaWYgcGZpbGUgPX4gJy8vJCcKKyAgICBsZXQgcGZpbGU9IHN1YnN0aXR1dGUocGZpbGUsJy8vJCcsJy8nLCdlJykKKyAgIGVuZGlmCiAgICBsZXQgcGZpbGU9IHN0cnBhcnQocGZpbGUsZGlybmFtZWxlbikKICAgIGlmIGc6bmV0cndfbG9uZ2xpc3QKICAgICBsZXQgc3ogICA9IGdldGZzaXplKGZpbGUpCkBAIC0yMDQwLDYgKzIyMjQsNyBAQAogICBsZXQgcmV0ICAgICAgICAgICA9IDAKICAgbGV0IG5ldHJ3X29yaWdkaXIgPSBzOk5ldEdldGN3ZCgxKQogICBleGUgJ2NkICcuYjpuZXRyd19jdXJkaXIKKyAgbGV0IGFsbD0gMAogCiAgICIgcmVtb3ZlIG11bHRpcGxlIGZpbGVzIGFuZCBkaXJlY3RvcmllcwogICB3aGlsZSBjdHIgPD0gYTpsYXN0bGluZQpAQCAtMjA2MiwyMiArMjI0Nyw0MCBAQAogCiAgICBpZiBybWZpbGUgIX4gJ14iJyAmJiAocm1maWxlID1+ICdAJCcgfHwgcm1maWxlICF+ICcvJCcpCiAgICAgIiBhdHRlbXB0IHRvIHJlbW92ZSBmaWxlCi0gICAgY2FsbCBpbnB1dHNhdmUoKQotICAgIGxldCBvaz0gaW5wdXQoIkNvbmZpcm0gZGVsZXRpb24gb2YgZmlsZTwiLnJtZmlsZS4iPiAiLCJ5IikKLSAgICBjYWxsIGlucHV0cmVzdG9yZSgpCi0gICAgaWYgb2sgPT0gInkiCisgICAgaWYgIWFsbAorICAgICBlY2hvaGwgU3RhdGVtZW50CisgICAgIGNhbGwgaW5wdXRzYXZlKCkKKyAgICAgbGV0IG9rPSBpbnB1dCgiQ29uZmlybSBkZWxldGlvbiBvZiBmaWxlPCIucm1maWxlLiI+ICIsIlt7eShlcyl9LG4obyksYShsbCkscSh1aXQpXSAiKQorICAgICBjYWxsIGlucHV0cmVzdG9yZSgpCisgICAgIGVjaG9obCBOT05FCisgICAgIGxldCBvaz0gc3Vic3RpdHV0ZShvaywnXFt7eShlcyl9LG4obyksYShsbCkscSh1aXQpXVxzKicsJycsJ2UnKQorICAgICBpZiBvayA9fiAnYVwlW2xsXScKKyAgICAgIGxldCBhbGw9IDEKKyAgICAgZW5kaWYKKyAgICBlbmRpZgorCisgICAgaWYgYWxsIHx8IG9rID1+ICd5XCVbZXNdJyB8fCBvayA9PSAiIgogICAgICBsZXQgcmV0PSBkZWxldGUocm1maWxlKQogIiAgICAgY2FsbCBEZWNobygiZXJyY29kZT0iLnY6c2hlbGxfZXJyb3IuIiByZXQ9Ii5yZXQpCisgICAgZWxzZWlmIG9rID1+ICdxXCVbdWl0XScKKyAgICAgYnJlYWsKICAgICBlbmRpZgogICAKICAgIGVsc2UKICAgICAiIGF0dGVtcHQgdG8gcmVtb3ZlIGRpcmVjdG9yeQotICAgIGNhbGwgaW5wdXRzYXZlKCkKLSAgICBsZXQgb2s9IGlucHV0KCJDb25maXJtIGRlbGV0aW9uIG9mIGRpcmVjdG9yeTwiLnJtZmlsZS4iPiAiLCJ5IikKLSAgICBjYWxsIGlucHV0cmVzdG9yZSgpCisgICAgaWYgIWFsbAorICAgICBlY2hvaGwgU3RhdGVtZW50CisgICAgIGNhbGwgaW5wdXRzYXZlKCkKKyAgICAgbGV0IG9rPSBpbnB1dCgiQ29uZmlybSBkZWxldGlvbiBvZiBkaXJlY3Rvcnk8Ii5ybWZpbGUuIj4gIiwiW3t5KGVzKX0sbihvKSxhKGxsKSxxKHVpdCldICIpCisgICAgIGNhbGwgaW5wdXRyZXN0b3JlKCkKKyAgICAgbGV0IG9rPSBzdWJzdGl0dXRlKG9rLCdcW3t5KGVzKX0sbihvKSxhKGxsKSxxKHVpdCldXHMqJywnJywnZScpCisgICAgIGlmIG9rID1+ICdhXCVbbGxdJworICAgICAgbGV0IGFsbD0gMQorICAgICBlbmRpZgorICAgIGVuZGlmCiAgICAgbGV0IHJtZmlsZT0gc3Vic3RpdHV0ZShybWZpbGUsJy8kJywnJywnZScpCiAKLSAgICBpZiBvayA9PSAieSIKKyAgICBpZiBhbGwgfHwgb2sgPX4gJ3lcJVtlc10nIHx8IG9rID09ICIiCiAiICAgICBjYWxsIERlY2hvKCIxc3QgYXR0ZW1wdDogc3lzdGVtKCIuZzpuZXRyd19sb2NhbF9ybWRpci4nICInLnJtZmlsZS4nIiknKQogICAgICBjYWxsIHN5c3RlbShnOm5ldHJ3X2xvY2FsX3JtZGlyLicgIicucm1maWxlLiciJykKICIgICAgIGNhbGwgRGVjaG8oInY6c2hlbGxfZXJyb3I9Ii52OnNoZWxsX2Vycm9yKQpAQCAtMjA5MSwxNCArMjI5NCwxNyBAQAogICAgICAgIGlmIGhhcygidW5peCIpCiAiICAgICAgICBjYWxsIERlY2hvKCIzcmQgYXR0ZW1wdCB0byByZW1vdmUgZGlyZWN0b3J5PCIucm1maWxlLiI+IikKIAljYWxsIHN5c3RlbSgicm0gIi5ybWZpbGUpCi0gICAgICAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAorICAgICAgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAgJiYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpCiAgICAgICAgICBlY2hvZXJyICJ1bmFibGUgdG8gcmVtb3ZlIGRpcmVjdG9yeTwiLnJtZmlsZS4iPiAtLSBpcyBpdCBlbXB0eT8iCiAJZW5kaWYKLSAgICAgICBlbHNlCisgICAgICAgZWxzZWlmICFleGlzdCgiZzpuZXRyd19xdWlldCIpcwogICAgICAgICBlY2hvZXJyICJ1bmFibGUgdG8gcmVtb3ZlIGRpcmVjdG9yeTwiLnJtZmlsZS4iPiAtLSBpcyBpdCBlbXB0eT8iCiAgICAgICAgZW5kaWYKICAgICAgIGVuZGlmCiAgICAgIGVuZGlmCisKKyAgICBlbHNlaWYgb2sgPX4gJ3FcJVt1aXRdJworICAgICBicmVhawogICAgIGVuZGlmCiAgICBlbmRpZgogCkBAIC0yMTYxLDcgKzIzNjcsMjMgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBOZXRHZXRjd2Q6IGdldCB0aGUgY3VycmVudCBkaXJlY3RvcnkuCisiIExvY2FsUHJldmlldzoge3t7MgorZnVuISA8U0lEPkxvY2FsUHJldmlldyhwYXRoKSByYW5nZQorIiAgY2FsbCBEZnVuYygiTG9jYWxQcmV2aWV3KHBhdGg8Ii5hOnBhdGguIj4pIikKKyAgaWYgaGFzKCJxdWlja2ZpeCIpCisgICBpZiAhaXNkaXJlY3RvcnkoYTpwYXRoKQorICAgIGV4ZSAicGVkaXQgIi5hOnBhdGgKKyAgIGVsc2VpZiAhZXhpc3QoImc6bmV0cndfcXVpZXQiKXMKKyAgICBlY2hvZXJyICJzb3JyeSwgY2Fubm90IHByZXZpZXcgYSBkaXJlY3Rvcnkgc3VjaCBhcyA8Ii5hOnBhdGguIj4iCisgICBlbmRpZgorICBlbHNlaWYgIWV4aXN0KCJnOm5ldHJ3X3F1aWV0IilzCisgICBlY2hvZXJyICJzb3JyeSwgdG8gcHJldmlldyB5b3VyIHZpbSBuZWVkcyB0aGUgcXVpY2tmaXggZmVhdHVyZSBjb21waWxlZCBpbiIKKyAgZW5kaWYKKyIgIGNhbGwgRHJldCgiTG9jYWxQcmV2aWV3IikKK2VuZGZ1bgorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBOZXRHZXRjd2Q6IGdldCB0aGUgY3VycmVudCBkaXJlY3RvcnkuIHt7ezIKICIgICBDaGFuZ2UgYmFja3NsYXNoZXMgdG8gZm9yd2FyZCBzbGFzaGVzLCBpZiBhbnkuCiAiICAgSWYgZG9lc2MgaXMgdHJ1ZSwgZXNjYXBlIGNlcnRhaW4gdHJvdWJsZXNvbWUgY2hhcmFjdGVycwogZnVuISA8U0lEPk5ldEdldGN3ZChkb2VzYykKQEAgLTIzNTQsNyArMjU3Niw5IEBACiAgICBlbmRpZgogIAogICBlbHNlCi0gICBlY2hvZXJyICIqKiplcnJvcioqKiBjYW5ub3QgZGV0ZXJtaW5lIG1ldGhvZCIKKyAgIGlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQorICAgIGVjaG9lcnIgIioqKmVycm9yKioqIGNhbm5vdCBkZXRlcm1pbmUgbWV0aG9kIgorICAgZW5kaWYKICAgIGxldCBiOm5ldHJ3X21ldGhvZCAgPSAtMQogICBlbmRpZgogIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvYWxzYWNvbmYudmltIGIvcnVudGltZS9zeW50YXgvYWxzYWNvbmYudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZDAzNjAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3N5bnRheC9hbHNhY29uZi52aW0KQEAgLTAsMCArMSw3MiBAQAorIiBWaW0gc3ludGF4IGZpbGUKKyIgTGFuZ3VhZ2U6CSAgICBBTFNBIGNvbmZpZ3VyYXRpb24gZmlsZQorIiBNYWludGFpbmVyOgkgICAgTmlrb2xhaSBXZWlidWxsIDxzb3VyY2VAcGNwcG9wcGVyLm9yZz4KKyIgVVJMOgkJICAgIGh0dHA6Ly93d3cucGNwcG9wcGVyLm9yZy8KKyIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNC0wOS0xMAorIiBhcmNoLXRhZzoJICAgIDNlMDZmZTUzLTI4ZDUtNDRhMS04NzFkLTI3OWYyMmU3YWVkNAorCitpZiB2ZXJzaW9uIDwgNjAwCisgIHN5bnRheCBjbGVhcgorZWxzZWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCisgIGZpbmlzaAorZW5kaWYKKworIiB0b2RvCitzeW4ga2V5d29yZCBhbHNvY29uZlRvZG8gICAgICBjb250YWluZWQgRklYTUUgVE9ETyBYWFggTk9URQorCisiIGNvbW1lbnRzCitzeW4gcmVnaW9uICBhbHNhY29uZkNvbW1lbnQgICBtYXRjaGdyb3VwPWFsc2Fjb25mQ29tbWVudCBzdGFydD0iIyIgZW5kPSIkIgorCQkJICAgICAgXCBjb250YWlucz1hbHNhY29uZlRvZG8KKworIiBzcGVjaWFsIGNoYXJhY3RlcnMKK3N5biBtYXRjaCAgIGFsc2Fjb25mU3BlY2lhbENoYXIJY29udGFpbmVkICJcXFtudHZicmZdIgorc3luIG1hdGNoICAgYWxzYWNvbmZTcGVjaWFsQ2hhcgljb250YWluZWQgIlxcXG9cKyIKKworIiBzdHJpbmdzCitzeW4gcmVnaW9uICBhbHNhY29uZlN0cmluZyAgICBtYXRjaGdyb3VwPWFsc2Fjb25mU3RyaW5nIHN0YXJ0PSsiKyBza2lwPStcXCQrCisJCQkgICAgICBcIGVuZD0rIisgZW5kPSskKyBjb250YWlucz1hbHNhY29uZlNwZWNpYWxDaGFyCisKKyIgcHJlcHJvY2Vzc29yIHNwZWNpYWwKK3N5biBtYXRjaCAgIGFsc2Fjb25mU3BlY2lhbCAgIGNvbnRhaW5lZCAiY29uZmRpcjoiCisKKyIgcHJlcHJvY2Vzc29yCitzeW4gcmVnaW9uICBhbHNhY29uZlByZVByb2MgICBtYXRjaGdyb3VwPWFsc2Fjb25mUHJlUHJvYyBzdGFydD0iPCIgZW5kPSI+IgorCQkJICAgICAgXCBjb250YWlucz1hbHNhY29uZlNwZWNpYWwKKworIiBtb2Rlcworc3luIG1hdGNoICAgYWxzYWNvbmZNb2RlICAgICAgIlsrPyEtXSIKKworIiBrZXl3b3Jkcworc3luIGtleXdvcmQgYWxzYWNvbmZLZXl3b3JkICAgY2FyZCBkZWZhdWx0IGRldmljZSBlcnJvcnMgZmlsZXMgZnVuYyBzdHJpbmdzCitzeW4ga2V5d29yZCBhbHNhY29uZktleXdvcmQgICBzdWJkZXZpY2UgdHlwZSB2YXJzCisKKyIgdmFyaWFibGVzCitzeW4gbWF0Y2ggICBhbHNhY29uZlZhcmlhYmxlcyAiQFwoaG9va3NcfGZ1bmNcfGFyZ3NcKSIKKworIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgorIiBGb3IgdmVyc2lvbiA1LjcgYW5kIGVhcmxpZXI6IG9ubHkgd2hlbiBub3QgZG9uZSBhbHJlYWR5CisiIEZvciB2ZXJzaW9uIDUuOCBhbmQgbGF0ZXI6IG9ubHkgd2hlbiBhbiBpdGVtIGRvZXNuJ3QgaGF2ZSBoaWdobGlnaHRpbmcgeWV0CitpZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzKCJkaWRfYWxzYWNvbmZfc3luX2luaXRzIikKKyAgaWYgdmVyc2lvbiA8IDUwOAorICAgIGxldCBkaWRfZGlyY29sb3JzX3N5bl9pbml0cyA9IDEKKyAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBsaW5rIDxhcmdzPgorICBlbHNlCisgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CisgIGVuZGlmCisKKyAgSGlMaW5rIGFsc29jb25mVG9kbwkgICAgICBUb2RvCisgIEhpTGluayBhbHNhY29uZkNvbW1lbnQgICAgICBDb21tZW50CisgIEhpTGluayBhbHNhY29uZlNwZWNpYWxDaGFyICBTcGVjaWFsQ2hhcgorICBIaUxpbmsgYWxzYWNvbmZTdHJpbmcJICAgICAgU3RyaW5nCisgIEhpTGluayBhbHNhY29uZlNwZWNpYWwgICAgICBTcGVjaWFsCisgIEhpTGluayBhbHNhY29uZlByZVByb2MgICAgICBQcmVQcm9jCisgIEhpTGluayBhbHNhY29uZk1vZGUJICAgICAgU3BlY2lhbAorICBIaUxpbmsgYWxzYWNvbmZLZXl3b3JkICAgICAgS2V5d29yZAorICBIaUxpbmsgYWxzYWNvbmZWYXJpYWJsZXMgICAgSWRlbnRpZmllcgorCisgIGRlbGNvbW1hbmQgSGlMaW5rCitlbmRpZgorCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJhbHNhY29uZiIKKworIiB2aW06IHNldCBzdHM9MiBzdz0yOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbmV0cndsaXN0LnZpbSBiL3J1bnRpbWUvc3ludGF4L25ldHJ3bGlzdC52aW0KaW5kZXggYWU2OGM5MS4uYTlkYjliMyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbmV0cndsaXN0LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9uZXRyd2xpc3QudmltCkBAIC0xLDcgKzEsNyBAQAogIiBMYW5ndWFnZSAgIDogTmV0cncgUmVtb3RlLURpcmVjdG9yeSBMaXN0aW5nIFN5bnRheAogIiBNYWludGFpbmVyIDogQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCi0iIExhc3QgY2hhbmdlOiBBdWcgMjAsIDIwMDQKLSIgVmVyc2lvbiAgICA6IDQKKyIgTGFzdCBjaGFuZ2U6IFNlcCAwOCwgMjAwNAorIiBWZXJzaW9uICAgIDogNQogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogIiBTeW50YXggQ2xlYXJpbmc6IHt7ezEKQEAgLTE4LDcgKzE4LDcgQEAKIHN5biBtYXRjaCAgbmV0cndDbGFzc2lmeQkJCSJbKj18QC9dXCUoXHRcfCRcKSIKIHN5biBtYXRjaCAgbmV0cndTeW1MaW5rCQkJCSJeLipAXCUoXHRcfCRcKSIJY29udGFpbnM9bmV0cndDbGFzc2lmeQogc3luIG1hdGNoICBuZXRyd0NvbW1lbnQJCQkJJyIuKlwlKFx0XHwkXCknCQljb250YWlucz1ATmV0cndHcm91cAotc3luIG1hdGNoICBuZXRyd0hpZGUJCQkJJ14iXHMqSGlkaW5nOicJCXNraXB3aGl0ZSBuZXh0Z3JvdXA9bmV0cndIaWRlUGF0CitzeW4gbWF0Y2ggIG5ldHJ3SGlkZQkJCQknXiJccypcKEhpZFx8U2hvd1wpaW5nOicgc2tpcHdoaXRlIG5leHRncm91cD1uZXRyd0hpZGVQYXQKIHN5biBtYXRjaCAgbmV0cndTbGFzaAljb250YWluZWQJCSIvIgogc3luIG1hdGNoICBuZXRyd0hpZGVQYXQJY29udGFpbmVkCQkiW14sXVwrIgkJc2tpcHdoaXRlIG5leHRncm91cD1uZXRyd0hpZGVTZXAKIHN5biBtYXRjaCAgbmV0cndIaWRlU2VwCWNvbnRhaW5lZCB0cmFuc3BhcmVudAkiLCIJCQlza2lwd2hpdGUgbmV4dGdyb3VwPW5ldHJ3SGlkZVBhdApkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5wbCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwKaW5kZXggZWNjYjgxYi4uODQ3ODI3ZiAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5wbAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLnBsCkBAIC0xLDUgKzEsNSBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotPSAgICBXIGkgdCBhIGogICB3ICAgdCB1IHQgbyByIGkgYSBsIHUgICBWIEkgTSAtIGEgICAgICAtICAgIFdlcnNqYSAgMS41LiAgICAgPQorPSAgICBXIGkgdCBhIGogICB3ICAgdCB1IHQgbyByIGkgYSBsIHUgICBWIEkgTSAtIGEgICAgICAtICAgIFdlcnNqYSAgMS43LiAgICAgPQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAgICAgIFZpbSB0byBwb3Tqv255IGVkeXRvciwga3TzcnkgcG9zaWFkYSB3aWVsZSBwb2xlY2XxLCB6Ynl0IGR1v28gYnkKQEAgLTgsMTAgKzgsMTIgQEAKICAgICAgdb95d2HmIFZpbS1hIGpha28gZWR5dG9yYSBvZ/NsbmVnbyBwcnplem5hY3plbmlhLgogCiAgICAgIEN6YXMgcG90cnplYm55IG5hIHVrb/FjemVuaWUgdHV0b3JpYWxhIHRvIDI1IGRvIDMwIG1pbnV0IGkgemFsZb95Ci0gICAgIG9kIHRlZ28gamFrIHdpZWxlIGN6YXN1IHNw6mR6aXN6IG5hIGVrc3BlcnltZW50b3dhbml1LiAgUG9sZWNlbmlhCi0gICAgIHd5a29ueXdhbmUgdyBjemFzaWUgbGVrY2ppIHptb2R5ZmlrdWqxIHRla3N0LiBacvNiIHdjemW2bmllaiBrb3Bp6gotICAgICB0ZWdvIHBsaWt1IGRvIOZ3aWN6ZfEgKGpltmxpIHphY3qxs2W2IGtvbWVuZLEgInZpbXR1dG9yIiB0byBqdb8KLSAgICAgcHJhY3VqZXN6IG5hIGtvcGlpKS4KKyAgICAgb2QgdGVnbyBqYWsgd2llbGUgY3phc3Ugc3DqZHppc3ogbmEgZWtzcGVyeW1lbnRvd2FuaXUuICAKKwkgCisJIFVXQUdBOgorCSBQb2xlY2VuaWEgd3lrb255d2FuZSB3IGN6YXNpZSBsZWtjamkgem1vZHlmaWt1arEgdGVrc3QuIFpy82IKKwkgd2N6ZbZuaWVqIGtvcGnqIHRlZ28gcGxpa3UgZG8g5ndpY3pl8SAoamW2bGkgemFjerGzZbYga29tZW5ksQorCSAidmltdHV0b3IiIHRvIGp1vyBwcmFjdWplc3ogbmEga29waWkpLgogCiAgICAgIFdhv25lIGplc3QsIGJ5tiBwYW1p6nRhsywgv2UgcHJ6ZXdvZG5payB0ZW4gem9zdGGzIHphcHJvamVrdG93YW55IGRvCiAgICAgIG5hdWtpIHBvcHJ6ZXog5ndpY3plbmlhLiBUbyBvem5hY3phLCC/ZSBtdXNpc3ogd3lrb255d2HmIHBvbGVjZW5pYQpAQCAtMjIsNyArMjQsNyBAQAogICAgICB0YWsgZLN1Z28gZG9w82tpIExla2NqYSAxLjEuIG5pZSB3eXBls25pIGNhs2tvd2ljaWUgZWtyYW51LgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICAgICAgTGVrY2phIDEuMS46IFBPUlVTWkFOSUUgU0nKIEtVUlNPUkVNCisJCSAgTGVrY2phIDEuMS46IFBPUlVTWkFOSUUgU0nKIEtVUlNPUkVNCiAKICAgICAgICAqKiBCeSB3eWtvbmHmIHJ1Y2gga3Vyc29yZW0sIHdjabZuaWogaCwgaiwgaywgbCBqYWsgcG9rYXphbm8uICoqCiAKQEAgLTM0LDcgKzM2LDcgQEAKICAgMS4gUG9ydXN6YWoga3Vyc29yZW0gZG9w82tpIG5pZSBi6mR6aWVzeiBwZXdpZW4sIL9lIHBhbWnqdGFzeiBwb2xlY2VuaWEuCiAKICAgMi4gVHJ6eW1haiAgaiAgdGFrIGSzdWdvIGG/IGLqZHppZSBzaeogcG93dGFyemGzLgotLS0tPiBUZXJheiB3aWVzeiBqYWsgZG9qtuYgZG8gbmFzdOpwbmVqIGxla2NqaS4KKyAgICAgVGVyYXogd2llc3ogamFrIGRvarbmIGRvIG5hc3TqcG5laiBsZWtjamkuCiAKICAgMy4gVb95d2FqsWMgc3RyemGza2kgdyBk87MgcHJ6ZWpkvCBkbyBuYXN06nBuZWogbGVrY2ppLgogCkBAIC00MywzNSArNDUsMzUgQEAKIAogVXdhZ2E6IEtsYXdpc3plIGt1cnNvcmEgdGFrv2UgcG93aW5ueSBkemlhs2HmLCBhbGUgdb95d2FqsWMgIGhqa2wgIGLqZHppZXN6CiAgICAgICAgdyBzdGFuaWUgcG9ydXN6YeYgc2nqIG8gd2llbGUgc3p5YmNpZWogamFrIHNp6iB0eWxrbyBwcnp5end5Y3phaXN6LgorCSAgIE5hcHJhd2TqIQogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJIExla2NqYSAxLjIuOiBXQ0hPRFpFTklFIEkgV1lDSE9EWkVOSUUgWiBWSU0tYQorCQkgICAgTGVrY2phIDEuMi46IFdZQ0hPRFpFTklFIFogVklNLWEKIAogICEhIFVXQUdBOiBQcnplZCB3eWtvbmFuaWVtIGpha2llZ29rb2x3aWVrIHBvbGVjZW5pYSBwcnplY3p5dGFqIGNhs7EgbGVrY2rqLiEhCiAKICAgMS4gV2Nptm5paiA8RVNDPiAoYWJ5IHVwZXduaeYgc2nqLCC/ZSBqZXN0ZbYgdyB0cnliaWUgTm9ybWFsKS4KICAgMi4gV3Bpc3o6CQkJOnEhPEVOVEVSPi4KLQotLS0tPiBUbyBzcG93b2R1amUgd3lqtmNpZSB6IGVkeXRvcmEgQkVaIHphcGFtaep0eXdhbmlhIHptaWFuIGpha2llCisgICAgIFRvIHNwb3dvZHVqZSB3eWq2Y2llIHogZWR5dG9yYSBQT1JaVUNBSqFDIHdzemVsa2llIHptaWFueSBqYWtpZQogICAgICB6ZLG/ebNltiB6cm9iaeYuIEpltmxpIGNoY2VzeiB6YXBhbWnqdGHmIHptaWFueSBpIHd5arbmCiAgICAgIHdwaXN6OgkJCTp3cTxFTlRFUj4KIAogICAzLiBLaWVkeSB3aWR6aXN6IHpuYWsgemFjaOp0eSBwb3ezb2tpIHdwaXN6IGtvbWVuZOosIL9lYnkgd3LzY2nmCi0gICAgIGRvIHR1dG9yaWFsYS4KLSAgICAgUG93aW5pZW5pZbYgd3Bpc2HmOgl2aW10dXRvcjxFTlRFUj4KLSAgICAgTm9ybWFsbmllIHW/ebNiebY6CQl2aW0gdHV0b3I8RU5URVI+Ci0KLS0tLT4gJ3ZpbScgb3puYWN6YSBlZHl0b3IgdmltLCAndHV0b3InIGplc3QgcGxpa2VtLCBrdPNyeSBjaGNpYbNiebYKLSAgICAgZWR5dG93YeYuCisgICAgIGRvIHR1dG9yaWFsYS4gQ3p5bGk6CXZpbXR1dG9yPEVOVEVSPgogCiAgIDQuIEpltmxpIGNoY2VzeiB6YXBhbWnqdGHmIHBvbGVjZW5pYSwgd3lrb25haiBrcm9raSAxLiBkbyAzLiBhYnkKLSAgICAgd3lqtuYgaSB3cvNjaeYgZG8gZWR5dG9yYS4gUG90ZW0gcHJ6ZW5pZbYgc2nqIGRvIExla2NqaSAxLjMuCisgICAgIHd5arbmIGkgd3LzY2nmIGRvIGVkeXRvcmEuCisKK1VXQUdBOiA6cSE8RU5URVI+IHBvcnp1Y2Egd3N6ZWxraWUgem1pYW55IGpha2llIHpyb2Jps2W2LiBXIG5hc3TqcG55Y2gKK2xla2NqYWNoIGRvd2llc3ogc2nqIGphayBqZSB6YXBhbWnqdHl3YeYuCisKKyAgNS4gUHJ6ZW5pZbYga3Vyc29yIGRvIGxla2NqaSAxLjMuCisKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgICBMZWtjamEgMS4zLjogRURZQ0pBIFRFS1NUVSAtIEtBU09XQU5JRQorCQkgTGVrY2phIDEuMy46IEVEWUNKQSBURUtTVFUgLSBLQVNPV0FOSUUKIAotCi0JKiogVyB0cnliaWUgTm9ybWFsIHdjabZuaWogeCBhYnkgdXN1brHmIHpuYWsgcG9kIGt1cnNvcmVtLiAqKgorCSAgICAqKiBXY2m2bmlqICB4ICBhYnkgdXN1brHmIHpuYWsgcG9kIGt1cnNvcmVtLiAqKgogCiAgIDEuIFByemVuaWW2IGt1cnNvciBkbyBsaW5paSBwb25pv2VqIG96bmFjem9uZWogLS0tPi4KIApAQCAtOTAsMTEgKzkyLDEyIEBACiAKIAogCisKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCSAgICAgICBMZWtjamEgMS40LjogRURZQ0pBIFRFS1NUVSAtIElOU0VSVCAod3Byb3dhZHphbmllKQorCSAgIExla2NqYSAxLjQuOiBFRFlDSkEgVEVLU1RVIC0gSU5TRVJUICh3cHJvd2FkemFuaWUpCiAKIAotCSAgICAgICoqIFcgdHJ5YmllIE5vcm1hbCB3Y2m2bmlqICBpICBhYnkgd3N0YXdp5iB0ZWtzdC4gKioKKwkJICAqKiBXY2m2bmlqICBpICBhYnkgd3N0YXdp5iB0ZWtzdC4gKioKIAogICAxLiBQcnplbmlltiBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIHBvbmm/ZWogb3puYWN6b25laiAtLS0+LgogCkBAIC0xMTQsMzMgKzExNyw3OSBAQAogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCSAgIExla2NqYSAxLjUuOiBFRFlDSkEgVEVLU1RVIC0gQVBQRU5ESU5HIChkb2Rhd2FuaWUpCisKKworCQkgICAqKiBXY2m2bmlqICBBICBieSBkb2Rh5iB0ZWtzdC4gKioKKworICAxLiBQcnplbmlltiBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIHBvbmm/ZWogb3puYWN6b25laiAtLS0+LgorICAgICBOaWUgbWEgem5hY3plbmlhLCBrdPNyeSB0byBi6mR6aWUgem5hay4KKworICAyLiBXY2m2bmlqICBBICBpIHdwaXN6IG9kcG93aWVkbmllIGRvZGF0a2kuCisKKyAgMy4gS2llZHkgdGVrc3Qgem9zdGGzIGRvZGFueSwgd2Nptm5paiA8RVNDPiBpIHdy8+YgZG8gdHJ5YnUgTm9ybWFsbmVnby4KKworICA0LiBQcnplbmlltiBrdXJzb3IgZG8gZHJ1Z2llaiBsaW5paSBvem5hY3pvbmVqIC0tLT4gaSBwb3d083J6IGtyb2tpIDIgaSAzCisgICAgIGFieSBwb3ByYXdp5iB6ZGFuaWUuCisKKy0tLT4gQnJha3VqZSB0dSB0cm8KKyAgICAgQnJha3VqZSB0dSB0cm9jaOogdGVrc3R1LgorLS0tPiBUdSB0Zb8gdHJvY2jqIGJyYQorICAgICBUdSB0Zb8gdHJvY2jqIGJyYWt1amUuCisKKyAgNS4gS2llZHkganW/IHV0cndhbGmzZbYg5ndpY3plbmllIHByemVqZLwgZG8gbGVrY2ppIDEuNi4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgIExla2NqYSAxLjYuOiBFRFlDSkEgUExJS1UKKworCisJCSAgKiogVb95aiAgOndxICBhYnkgemFwaXNh5iBwbGlrIGkgd3lqtuYuICoqCisKKyAgICEhIFVXQUdBOiB6YW5pbSB3eWtvbmFzeiBqYWtpZWtvbHdpZWsgcG9sZWNlbmlhIHByemVjenlhaiBjYbOxIGxla2Nq6iAhIQorCisgIDEuIFpha2/xY3ogdHV0b3JpYWwgdGFrIGphayB3IGxla2NqaSAxLjIuOiAgOnEhCisKKyAgMi4gVyBwb3ezb2NlIHd5ZGFqIHBvbGVjZW5pZTogIHZpbSB0dXRvcjxFTlRFUj4KKyAgICAgInZpbSIgamVzdCBwb2xlY2VuaWVtIHVydWNoYW1pYWqxY3ltIGVkeXRvciBWaW1tLiAndHV0b3InIHRvIG5hendhIHBsaWt1CisgICAgIGpha2kgY2hjZXN6IGVkeXRvd2HmLiBVv3lqIHBsaWt1IGpha2kgbW+/ZSB6b3N0YeYgem1pZW5pb255LgorCisgIDMuIERvZGFqIGkgdXN18SB0ZWtzdCB0YWsgamFrIHNp6iBuYXVjenmzZbYgdyBwb3ByemVkbmljaCBsZWtjamFjaC4KKworICA0LiBaYXBpc3ogcGxpayB6ZSB6bWlhbmFtaSB3IG9wdbbmIFZpbWE6ICA6d3E8RU5URVI+CisKKyAgNS4gVXJ1Y2hvbSBwb25vd25pZSB2aW10dXRvciBpIHByemVqZLwgZG8gcG9kc3Vtb3dhbmlhIGxla2NqaS4KKworICA2LiBQbyBwcnplY3p5dGFuaXUgd3N6eXN0a2ljaCBrcm9r83cgaSB6cm96dW1pZW5pdSBpY2g6IHd5a29uYWogamUuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgICAgIExFS0NKQSAxLiBQT0RTVU1PV0FOSUUKIAogICAxLiBQb3J1c3phc3oga3Vyc29yZW0gdb95d2FqsWMgInN0cnphs2VrIiBpIGtsYXdpc3p5ICBoamtsIC4KICAgICAgICBoICh3IGxld28pCSBqICh3IGTzsykJIGsgKGRvIGfzcnkpCQlsICh3IHByYXdvKQogCi0gIDIuIEJ5IHdlarbmIGRvIFZpbS1hIChvZCB6bmFrdSB6YWNo6nR5KSB3cGlzejoKKyAgMi4gQnkgd2VqtuYgZG8gVmltLWEgKHogcG93s29raSkgd3Bpc3o6CiAJCQkgICAgdmltIE5BWldBX1BMSUtVPEVOVEVSPgogCiAgIDMuIEJ5IHd5arbmIHogVmltLWEgd3Bpc3o6CiAJCQkgICAgPEVTQz4gOnEhPEVOVEVSPiAgYnkgdXN1brFjIHdzenlzdGtpZSB6bWlhbnkuCiAJICAgICBMVUI6CSAgICA8RVNDPiA6d3E8RU5URVI+ICBieSB6bWlhbnkgemFjaG93YeYuCiAKLSAgNC4gQnkgdXN1brHmIHpuYWsgcG9kIGt1cnNvcmVtIHcgdHJ5YmllIE5vcm1hbDogIHgKKyAgNC4gQnkgdXN1brHmIHpuYWsgcG9kIGt1cnNvcmVtIHdjabZuaWo6ICB4CiAKLSAgNS4gQnkgd3N0YXdp5iB0ZWtzdCBwcnplZCBrdXJzb3JlbSB3IHRyeWJpZSBOb3JtYWw6Ci0JCQkgICAgaQkgIHR5cGUgaW4gdGV4dAkgICAgICA8RVNDPgorICA1LiBCeSB3c3Rhd2nmIHRla3N0IHByemVkIGt1cnNvcmVtIGx1YiBkb2Rh5joKKwlpICAgICAgICAgd3Bpc3ogdGVrc3QgICAgICA8RVNDPiB3c3Rhd2kgcHJ6ZWQga3Vyc29yZW0KKwlBICAgICAgICAgd3Bpc3ogdGVrc3QgICAgICA8RVNDPiBkb2RhIG5hIGtv8WN1IGxpbmlpCiAKIFVXQUdBOiBXY2m2bmnqY2llIDxFU0M+IHByemVuaWVzaWUgQ2nqIHogcG93cm90ZW0gZG8gdHJ5YnUgTm9ybWFsCiBsdWIgb2R3b7NhIG5pZWNoY2lhbmUgbHViIGN66rZjaW93byB3cHJvd2Fkem9uZSBwb2xlY2VuaWEuCiAKIFRlcmF6IG1vv2VteSBrb250eW51b3dh5iBpIHByemVqtuYgZG8gTGVrY2ppIDIuCi0KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkgIExla2NqYSAyLjEuOiBQT0xFQ0VOSUUgREVMRVRFICh1c3V3YW5pZSkKIAogCi0JICAgICAgICoqIFdwaXN6ICBkdyAgYnkgdXN1brFjIHRla3N0IGRvIGtv8WNhIHd5cmF6dS4gKioKKwkJICAgICAgKiogV3Bpc3ogIGR3ICBieSB1c3VusWMgd3lyYXouICoqCiAKICAgMS4gV2Nptm5paiAgPEVTQz4gIGJ5IHVwZXduaeYgc2nqLCC/ZSBqZXN0ZbYgdyB0cnliaWUgTm9ybWFsLgogCkBAIC0xNTAsOSArMTk5LDkgQEAKIAogICA0LiBXcGlzeiAgIGR3ICAgYnkgdXN1brFjIHd5cmF6LgogCi0gIFVXQUdBOiBMaXRlcnkgIGR3ICBi6mSxIHNp6iBwb2phd2lh5iBuYSBkb2xlIGVrcmFudSB3IG1pYXLqCi0JIHdwaXN5d2FuaWEuICBKZbZsaSB3cGlzYbNltiBjb7YgvGxlIHdjabZuaWogPEVTQz4gaSB6YWN6bmlqIG9kCi0JIHBvY3qxdGt1LgorICBVV0FHQTogTGl0ZXJhICBkICBwb2phd2kgc2nqIG5hIGRvbGUgZWtyYW51LiBWaW0gY3pla2EgbmEgd3Bpc2FuaWUgIHcgLiAKKwkgSmW2bGkgem9iYWN6eXN6IGlubnkgem5hayB3cGlzYbNltiBjb7YgvGxlLCB3Y2m2bmlqIDxFU0M+IGkgemFjem5pagorCSBvZCBwb2N6sXRrdS4KIAogLS0tPiBKZXN0IHR1IHBhcuogcGFwaWVyIHd5cmF683csIGt083JlIGthbWll8SBuaWUgbmFsZb+xIGRvIG5vv3ljZSB0ZWdvIHpkYW5pYS4KIApAQCAtMTgzLDUzICsyMzIsOTkgQEAKIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICAgICBMZWtjamEgMi4zLjogTyBQT0xFQ0VOSUFDSCBJIE9CSUVLVEFDSAorCQkgICAgIExla2NqYSAyLjMuOiBPIE9QRVJBVE9SQUNIIEkgUlVDSEFDSAogCiAKLSAgRm9ybWF0IGRsYSBwb2xlY2VuaWEgdXN1d2FqsWNlZ28gIGQgIGplc3QgdGFraToKKyAgV2llbGUgcG9sZWNl8SB6bWllbmlharFjeWNoIHRla3N0IHOxIHqzb79vbmUgeiBvcGVyYXRvcmEgaSBydWNodS4KKyAgRm9ybWF0IGRsYSBwb2xlY2VuaWEgdXN1d2FqsWNlZ28geiBvcGVyYXRvcmVtICBkICBqZXN0IHRha2k6CiAKLQkgICAgW2xpY3piYV0gIGQgIG9iaWVrdCAgICAgIExVQiAgICAgIGQgIFtsaWN6YmFdICBvYmlla3QKKwkgICAgZCAgcnVjaAogCiAgIEdkemllOgotICAgbGljemJhIC0gaWxlIHJhenkgcG9sZWNlbmllIG1hIGJ55iB3eWtvbmFuZSAob3Bjam9uYWxuZSwgZG9tebZsbmE9MSkuCi0gICBkICAgICAgLSBwb2xlY2VuaWUgdXN1d2FqsWNlLgotICAgb2JpZWt0IC0gbmEgY3p5bSBwb2xlY2VuaWUgYupkemllIHd5a29ueXdhbmUgKGxpc3RhIHBvbmm/ZWopLgorICAgZCAgICAgIC0gb3BlcmF0b3IgdXN1d2FuaWEuCisgICBydWNoICAgLSBuYSBjenltIHBvbGVjZW5pZSBi6mR6aWUgd3lrb255d2FuZSAobGlzdGEgcG9uab9laikuCiAKLSAgS3LzdGthIGxpc3RhIG9iaWVrdPN3OgotICAgIHcgLSBvZCBrdXJzb3JhIGRvIGtv8WNhIHd5cmF6dSB3s7FjemFqsWMgc3BhY2rqLgotICAgIGUgLSBvZCBrdXJzb3JhIGRvIGtv8WNhIHd5cmF6dSBOSUUgd7OxY3pharFjIHNwYWNqaS4KLSAgICAkIC0gb2Qga3Vyc29yYSBkbyBrb/FjYSBsaW5paS4KKyAgS3LzdGthIGxpc3RhIHJ1Y2jzdzoKKyAgICB3IC0gZG8gcG9jerF0a3UgbmFzdOpwbmVnbyB3eXJhenUgV1mjoUNaQUqhQyBwaWVyd3N6eSB6bmFrLgorICAgIGUgLSBkbyBrb/FjYSBiaWW/sWNlZ28gd3lyYXp1LCBXo6FDWkFKoUMgb3N0YXRuaSB6bmFrLgorICAgICQgLSBkbyBrb/FjYSBsaW5paSwgV6OhQ1pBSqFDIG9zdGF0bmkgem5hay4KIAotVVdBR0E6IERsYSBjaWVrYXdza2ljaCwgd3liaWVyYW5pZSBvYmlla3R1IHcgdHJ5YmllIE5vcm1hbCBiZXogcG9sZWNhbmlhCi0gICAgICAgcG9sZWNlbmlhIHByemVuaWVzaWUga3Vyc29yIHRhayBqYWsgb3Bpc2FubyB3IGxptmNpZSBvYmlla3Tzdy4KK1cgdGVuIHNwb3PzYiB3cGlzYW5pZSAgZGUgIHVzdW5pZSB6bmFraSBvZCBrdXJzb3JhIGRvIGtv8WNhIHd5cmF6dS4KKworVVdBR0E6IFdwaXNhbmllIHR5bGtvIHJ1Y2h1IHcgdHJ5YmllIE5vcm1hbCBiZXogb3BlcmF0b3JhIHByemVuaWVzaWUga3Vyc29yCisgICAgICAgdGFrIGphayB0byBva3Jltmxvbm8uCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgTGVrY2phIDIuNC46IFWvWUNJRSBNTk+vTklLQSBETEEgUlVDSFUKKworCisgICAqKiBXcGlzYW5pZSBsaWN6YnkgcHJ6ZWQgcnVjaGVtIHBvd3RhcnphIHJ1Y2ggb2Rwb3dpZWRuabEgaWxvtuYgcmF6eS4gKioKKworICAxLiBQcnplbmlltiBrdXJzb3IgbmEgcG9jerF0ZWsgbGluaWkgcG9uab9laiB6YXpuYWN6b25laiAtLS0+LgorCisgIDIuIFdwaXN6ICAydyAgYWJ5IHByemVuaWW25iBrdXJzb3IgbyBkd2Egd3lyYXp5IGRvIHByem9kdS4KKworICAzLiBXcGlzeiAgM2UgIGFieSBwcnplbmlltuYga3Vyc29yIGRvIGtv8WNhIHRyemVjaWVnbyB3eXJhenUgdyBwcnrzZC4KKworICA0LiBXcGlzeiAgMCAgKHplcm8pIGFieSBwcnplbmlltuYga3Vyc29yIGRvIHBvY3qxdGt1IGxpbmlpLgorCisgIDUuIFBvd3Tzcnoga3Jva2kgMi4gaSAzLiB6IGlubnltaSBsaWN6YmFtaS4KKworCisgLS0tPiBUbyBqZXN0IHp3eWuzeSB3aWVyc3ogeiB3eXJhemFtaSBwbyBrdPNyeWNoIG1vv2VzeiBzaeogcG9ydXN6YeYuCisKKyAgNi4gUHJ6ZWpkvCBkbyBsZWtjamkgMi41LgogCiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgIExla2NqYSAyLjQuOiBXWUqhVEVLIERPICdQT0xFQ0VOSUUtT0JJRUtUJworCQlMZWtjamEgMi41LjogVa9ZQ0lFIE1OT69OSUtBIEJZIFdJykNFSiBVU1VOocYKIAogCi0JCSAgICAqKiBXcGlzeiAgZGQgICBieSB1c3VusWMgY2GzsSBsaW5p6i4gKioKKyAgICAqKiBXcGlzYW5pZSBsaWN6YnkgeiBvcGVyYXRvcmVtIHBvd3RhcnphIGdvIG9kcG93aWVkbmmxIGlsb7bmIHJhenkuICoqCiAKLSAgWiBwb3dvZHUgY3rqc3RvtmNpIHVzdXdhbmlhIGNhs3ljaCBsaW5paSwgcHJvamVrdGFuY2kgVmltLWEgemRlY3lkb3dhbGksIL9lCi0gIGLqZHppZSCzYXR3aWVqIHdwaXNh5iBkd2EgcmF6eSBwb2QgcnqxZCBkIGFieSB1c3VuseYgbGluaeouCisgIFcgd3m/ZWogd3Nwb21uaWFuZWoga29tYmluYWNqaSBvcGVyYXRvcmEgdXN1d2FuaWEgaSBydWNodSBwb2RhaiBtbm+/bmlrCisgIHByemVkIHJ1Y2hlbSBieSB3aepjZWogdXN1brHmOgorCWQgIGxpY3piYSAgcnVjaAorCisgIDEuIFByemVuaWW2IGt1cnNvciBkbyBwaWVyd3N6ZWdvIHd5cmF6dSBLQVBJVEFMSUtBTUkgdyBsaW5paSB6YXpuYWN6b25laiAtLS0+LgorCisgIDIuIFdwaXN6ICAyZHcgIGFieSB1c3VuseYgZHdhIHd5cmF6eSBLQVBJVEFMSUtBTUkuCisKKyAgMy4gUG93dGFyemFqIGtyb2tpIDEuIGkgMi4geiBpbm55bWkgbW5vv25pa2FtaSBhYnkgdXN1brHmIGtvbGVqbmUgd3lyYXp5CisgICAgIEtBUElUQUxJS0FNSSBqZWRueW0gcG9sZWNlbmllbQorCistLS0+IHRhIEFTRCBXRSBsaW5pYSBRV0UgQVNERiBaWENWIEZHIHd5cmF683cgem9zdGGzYSBFUlQgRkdIIENGIG9jenlzemN6b25hLgorCitVV0FHQTogIE1ub79uaWsgcG9taepkenkgb3BlcmF0b3JlbSAgZCAgaSBydWNoZW0gZHppYbNhIHBvZG9ibmllIGRvIHJ1Y2h1IGJlegorICAgICAgICBvcGVyYXRvcmEuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIExla2NqYSAyLjYuOiBPUEVST1dBTklFIE5BIExJTklBQ0gKKworCisJCSAgICoqIFdwaXN6ICBkZCAgYWJ5IHVzdW6x5iBjYbOxIGxpbmnqLiAqKgorCisgIFogcG93b2R1IGN66nN0b7ZjaSB1c3V3YW5pYSBjYbN5Y2ggbGluaWksIHByb2pla3RhbmNpIFZJIHpkZWN5ZG93YWxpLCC/ZQorICBi6mR6aWUgs2F0d2llaiB3cGlzYeYgZHdhIHJhenkgIGQgIGFieSB1c3VuseYgbGluaeouCiAKICAgMS4gUHJ6ZW5pZbYga3Vyc29yIGRvIHpkYW5pYSBwb25pv2VqLgogICAyLiBXcGlzeiAgZGQgIGFieSB1c3VusWMgd2llcnN6LgogICAzLiBUZXJheiBwcnplbmlltiBzaeogZG8gY3p3YXJ0ZWdvIHdpZXJzemEuCi0gIDQuIFdwaXN6ICAyZGQgIChwYW1p6nRhaiAgbGljemJhLXBvbGVjZW5pZS1vYmlla3QpIGFieSB1c3VusWMgZHdpYSB3aWVyc3plLgorICA0LiBXcGlzeiAgMmRkICBhYnkgdXN1brFjIGR3aWEgd2llcnN6ZS4KIAotICAgICAgMSkgIFLzv2Ugc7EgY3plcndvbmUsCi0gICAgICAyKSAgQrNvdG8gamVzdCBmYWpuZSwKLSAgICAgIDMpICBGaW+za2kgc7EgbmllYmllc2tpZSwKLSAgICAgIDQpICBNYW0gc2Ftb2No82QsCi0gICAgICA1KSAgWmVnYXIgcG9kYWplIGN6YXMsCi0gICAgICA2KSAgQ3VraWVyIGplc3Qgc7NvZGtpLAotICAgICAgNykgIEkgdHkgdGW/LgorLS0tPiAgMSkgIFLzv2Ugc7EgY3plcndvbmUsCistLS0+ICAyKSAgQrNvdG8gamVzdCBmYWpuZSwKKy0tLT4gIDMpICBGaW+za2kgc7EgbmllYmllc2tpZSwKKy0tLT4gIDQpICBNYW0gc2Ftb2No82QsCistLS0+ICA1KSAgWmVnYXIgcG9kYWplIGN6YXMsCistLS0+ICA2KSAgQ3VraWVyIGplc3Qgc7NvZGtpLAorLS0tPiAgNykgIEkgdHkgdGW/LgogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICAgICBMZWtjamEgMi41LjogUE9MRUNFTklFIFVORE8gKGNvZm5paikKKwkJICAgICAgTGVrY2phIDIuNy46IFBPTEVDRU5JRSBVTkRPIChjb2ZuaWopCiAKIAogCSAgKiogV2Nptm5paiAgdSAgYWJ5IGNvZm6x5iBza3V0a2kgb3N0YXRuaWVnbyBwb2xlY2VuaWEuCkBAIC0yNTQsNjIgKzM0OSw2MiBAQAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgICAgIExFS0NKQSAyLiBQT0RTVU1PV0FOSUUKIAotICAxLiBCeSB1c3VuseYgem5ha2kgb2Qga3Vyc29yYSBkbyBrb/FjYSB3eXJhenUgd3Bpc3o6ICAgZHcKIAorICAxLiBCeSB1c3VuseYgem5ha2kgb2Qga3Vyc29yYSBkbyBuYXN06nBuZWdvIHd5cmF6dSB3cGlzejogICBkdwogICAyLiBCeSB1c3VuseYgem5ha2kgb2Qga3Vyc29yYSBkbyBrb/FjYSBsaW5paSB3cGlzejogICAgZCQKLQogICAzLiBCeSB1c3VuseYgY2GzsSBsaW5p6jogICAgZGQKLQotICA0LiBGb3JtYXQgcG9sZWNlbmlhIHcgdHJ5YmllIE5vcm1hbDoKLQotICAgIFtsaWN6YmFdICBwb2xlY2VuaWUgIG9iaWVrdCAgICAgIExVQiAgICAgIHBvbGVjZW5pZSAgW2xpY3piYV0gIG9iaWVrdAotCi0gIEdkemllOgotICAgbGljemJhICAgIC0gaWxlIHJhenkgcG9sZWNlbmllIG1hIGJ55iB3eWtvbmFuZQotICAgcG9sZWNlbmllIC0gdG8gY28gdHJ6ZWJhIHpyb2Jp5iAobnAuICBkICBkbGEgdXN1d2FuaWEpCi0gICBvYmlla3QgICAgLSBuYSBjenltIHBvbGVjZW5pZSBi6mR6aWUgd3lrb255d2FuZSwgdGFraWUgamFrICB3ICAod3lyYXopLAorICA0LiBCeSBwb3d083J6eeYgcnVjaCBwb3ByemVkvCBnbyBsaWN6YrE6ICAgIDJ3CisgIDUuIEZvcm1hdCBwb2xlY2VuaWEgem1pYW55IHRvOgorICAgICAgICAgICAgICAgIG9wZXJhdG9yICBbbGljemJhXSAgcnVjaAorICBnZHppZToKKyAgIG9wZXJhdG9yICAtIHRvIGNvIHRyemViYSB6cm9iaeYgKG5wLiAgZCAgZGxhIHVzdXdhbmlhKQorICAgW2xpY3piYV0gIC0gb3Bjam9uYWxuZSwgaWxlIHJhenkgcG93dPNyennmIHJ1Y2gKKyAgIHJ1Y2ggICAgICAtIHByemVub3NpIG5hZCB0ZWtzdGVtIGRvIG9wZXJvd2FuaWEsIHRha2ltIGphayAgdyAod3lyYXopLCAKIAkgICAgICAgJCAgKGRvIGtv8WNhIGxpbmlpKSwgZXRjLgogCi0gIDUuIEJ5IGNvZm6x5iBwb3ByemVkbmllIHBvbGVjZW5pZSwgd3Bpc3o6CSAgdSAobWGzZSB1KQorICA2LiBCeSBwcnplarbmIGRvIHBvY3qxdGt1IGxpbmlpIHW/eWogemVyYTogIDAKKyAgNy4gQnkgY29mbrHmIHBvcHJ6ZWRuaWUgcG9sZWNlbmllLCB3cGlzejoJICB1IChtYbNlIHUpCiAgICAgIEJ5IGNvZm6x5iB3c3p5c3RraWUgem1pYW55IHcgbGluaWkgd3Bpc3o6CSAgVSAod2llbGtpZSBVKQogICAgICBCeSBjb2ZuseYgY29mbmnqY2lhIHdwaXN6OgkJCSAgQ1RSTC1SCiAKKworCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJCSBMZWtjamEgMy4xLjogUE9MRUNFTklFIFBVVCAod3N0YXcpCiAKIAotCSAgKiogV3Bpc3ogIHAgIGJ5IHdzdGF3aeYgb3N0YXRuaWUgdXN1bmnqY2lhIHBvIGt1cnNvcnplLiAqKgorCSAgKiogV3Bpc3ogIHAgIGJ5IHdzdGF3aeYgb3N0YXRuaWUgdXN1bmnqY2lhIHphIGt1cnNvcmVtLiAqKgogCi0gIDEuIFByemVuaWW2IGt1cnNvciBkbyBwaWVyd3N6ZWogbGluaWkgdyB6ZXN0YXdpZSBwb25pv2VqLgorICAxLiBQcnplbmlltiBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIC0tLT4gcG9uab9lai4KIAotICAyLiBXcGlzeiAgZGQgIGFieSB1c3VuseYgbGluaeogaSBwcnplY2hvd2HmIGqxIHcgYnVmb3J6ZSBWaW0tYS4KKyAgMi4gV3Bpc3ogIGRkICBhYnkgdXN1brHmIGxpbmnqIGkgcHJ6ZWNob3dh5iBqsSB3IHJlamVzdHJ6ZSBWaW0tYS4KIAotICAzLiBQcnplbmlltiBrdXJzb3IgZG8gbGluaWkgUE9XWa9FSiB0ZWogZ2R6aWUgdXN1bmnqdGEgbGluaWEgcG93aW5uYQorICAzLiBQcnplbmlltiBrdXJzb3IgZG8gbGluaWkgYyksIFBPV1mvRUogdGVqIGdkemllIHVzdW5p6nRhIGxpbmlhIHBvd2lubmEKICAgICAgc2nqIHpuYWpkb3dh5i4KIAotICA0LiBXIHRyeWJpZSBOb3JtYWwsIHdjabZuaWogIHAgIGJ5IHdzdGF3aeYgbGluaeouCisgIDQuIFdjabZuaWogIHAgIGJ5IHdzdGF3aeYgbGluaeogcG9uab9laiBrdXJzb3JhLgogCiAgIDUuIFBvd3RhaiBrcm9raSAyLiBkbyA0LiBhvyB6bmFqZLEgc2nqIHcgb2Rwb3dpZWRuaW0gcG9yerFka3UuCiAKLSAgICAgZCkgSmFrIGR3YSBhbmlvs2tpLgotICAgICBiKSBOYSBkb2xlIGZpb7NraSwKLSAgICAgYykgQSBteSBzaeoga29jaGFteSwKLSAgICAgYSkgTmEgZ/NyemUgcvO/ZSwKKy0tLT4gZCkgSmFrIGR3YSBhbmlvs2tpLgorLS0tPiBiKSBOYSBkb2xlIGZpb7NraSwKKy0tLT4gYykgQSBteSBzaeoga29jaGFteSwKKy0tLT4gYSkgTmEgZ/NyemUgcvO/ZSwKIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJICAgIExla2NqYSAzLjIuOiBQT0xFQ0VOSUUgUkVQTEFDRSAoemFzdLFwKQogCiAKLSAgICAgICAqKiBXcGlzeiAgciAgYSBuYXN06nBuaWUgem5hayBieSB6YXN0sXBp5iB6bmFrIHBvZCBrdXJzb3JlbS4gKioKKwkgICAqKiBXcGlzeiAgcnggIGFieSB6YXN0sXBp5iB6bmFrIHBvZCBrdXJzb3JlbSBuYSAgeCAuICoqCiAKICAgMS4gUHJ6ZW5pZbYga3Vyc29yIGRvIHBpZXJ3c3plaiBsaW5paSBwb25pv2VqIG96bmFjem9uZWogLS0tPgogCiAgIDIuIFVzdGF3IGt1cnNvciBuYSBwaWVyd3N6eW0gYrPqZHppZS4KIAotICAzLiBXcGlzeiAgciAgYSBwb3RlbSB6bmFrIGpha2kgcG93aW5pZW4gemFzdLFwaeYgYrPqZG55LgorICAzLiBXcGlzeiAgciAgYSBwb3RlbSB6bmFrIGpha2kgcG93aW5pZW4gZ28gemFzdLFwaeYuCiAKLSAgNC4gUG93dGFyemFqIGtyb2tpIDIuIGkgMy4gZG9w82tpIHBpZXJ3c3phIGxpbmlhIG5pZSBi6mR6aWUgcG9wcmF3bmEuCisgIDQuIFBvd3RhcnphaiBrcm9raSAyLiBpIDMuIGRvcPNraSBwaWVyd3N6YSBsaW5pYSBuaWUgYupkemllIHRha2EgamFrIGRydWdhLgogCiAtLS0+ICBLamVkeSB0ZW4gd2llcnN6IGJpsyB3c3Tza2l3YW55IGt0b7Ygd2Npem6xsyBwZXLqIHqzeWNoIGtsYXdpcnp5IQogLS0tPiAgS2llZHkgdGVuIHdpZXJzeiBiebMgd3N0dWtpd2FueSBrdG+2IHdjaXNusbMgcGFy6iB6s3ljaCBrbGF3aXN6eSEKQEAgLTMyMSwxOCArNDE2LDE3IEBACiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgICAgTGVrY2phIDMuMy46IFBPTEVDRU5JRSBDSEFOR0UgKHptaWXxKQorCQkgICAgIExla2NqYSAzLjMuOiBPUEVSQVRPUiBDSEFOR0UgKHptaWXxKQogCi0gICAgICoqIEJ5IHptaWVuaeYgY2GzZSBzs293byBsdWIgamVnbyBjeuq25iB3cGlzeiAgY3cgIChjaGFuZ2Ugd29yZCkuICoqCisJCSAqKiBCeSB6bWllbmnmIGRvIGtv8WNhIHd5cmF6dSB3cGlzeiAgY2UgLiAqKgogCiAgIDEuIFByemVuaWW2IGt1cnNvciBkbyBwaWVyd3N6ZWogbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4uCiAKICAgMi4gVW1pZbbmIGt1cnNvciBuYSAgdSAgdyBsdW5vcy4KIAotICAzLiBXcGlzeiAgY3cgIGkgcG9wcmF3IHd5cmF6ICh3IHR5bSB3eXBhZGt1IHdzdGF3ICdpbmlhJykuCisgIDMuIFdwaXN6ICBjZSAgaSBwb3ByYXcgd3lyYXogKHcgdHltIHd5cGFka3Ugd3N0YXcgIGluaWEgKS4KIAotICA0LiBXY2m2bmlqIDxFU0M+IGkgcHJ6ZWpkvCBkbyBuYXN06nBuZWdvIGKz6mR1IChwaWVyd3N6eSB6bmFrLCBrdPNyeSBtYQotICAgICB1bGVjIHptaWFuaWUpLgorICA0LiBXY2m2bmlqIDxFU0M+IGkgcHJ6ZWpkvCBkbyBuYXN06nBuZWogcGxhbm93YW5laiB6bWlhbnkuCiAKICAgNS4gUG93dGFyemFqIGtyb2tpIDMuIGkgNC4gZG9w82tpIHBpZXJ3c3plIHpkYW5pZSBuaWUgYupkemllIHRha2llIHNhbWUKICAgICAgamFrIGRydWdpZS4KQEAgLTM0MCwyMCArNDM0LDIxIEBACiAtLS0+IFRhIGx1bm9zIG1hIHBpcmUgc7Pzdywga3TzcmUgdL9pbmEgemJuaWMgdb9pZmFqb25jIHBjbWF6dSB6bWll8S4KIC0tLT4gVGEgbGluaWEgbWEgcGFy6iBzs/N3LCBrdPNyZSB0cnplYmEgem1pZW5p5iB1v3l3YWqxYyBwb2xlY2VuaWEgem1pZfEuCiAKLSAgWmF1d2G/LCC/ZSAgY3cgIG5pZSB0eWxrbyB6YW1pZW5pYSB3eXJheiwgYWxlIHRha79lIHptaWVuaWEgdHJ5YiBuYQorICBaYXV3Yb8sIL9lICBjZSAgbmllIHR5bGtvIHphbWllbmlhIHd5cmF6LCBhbGUgdGFrv2Ugem1pZW5pYSB0cnliIG5hCiAgIEluc2VydCAod3Byb3dhZHphbmllKS4KIAorCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJICAgICAgTGVrY2phIDMuNC46IFdJykNFSiBaTUlBTiBVr1lXQUqhQyBjCiAKIAotICAgICAgICoqIFBvbGVjZW5pZSBjaGFuZ2Ugdb95d2EgdGFraWNoIHNhbXljaCBvYmlla3TzdyBqYWsgZGVsZXRlLiAqKgorCSoqIFBvbGVjZW5pZSBjaGFuZ2Ugdb95d2EgdGFraWNoIHNhbXljaCBydWNo83cgamFrIGRlbGV0ZS4gKioKIAotICAxLiBQb2xlY2VuaWUgY2hhbmdlIGR6aWGzYSB0YWsgc2FtbyBqYWsgZGVsZXRlLiBGb3JtYXQgd3lnbLFkYSB0YWs6CisgIDEuIE9wZXJhdG9yIGNoYW5nZSBkemlhs2EgdGFrIHNhbW8gamFrIGRlbGV0ZS4gRm9ybWF0IHd5Z2yxZGEgdGFrOgogCi0JICAgIFtsaWN6YmFdICBjICBvYmlla3QgICAgICBMVUIgICAgICBjICBbbGljemJhXSAgb2JpZWt0CisJICAgIGMgICBbbGljemJhXSAgIHJ1Y2gKIAotICAyLiBPYmlla3R5IHOxIHRha79lIHRha2llIHNhbWUsIG5wLjogIHcgICh3eXJheiksICAkICAoa29uaWVjIGxpbmlpKSwgZXRjLgorICAyLiBSdWNoeSBzsSB0YWu/ZSB0YWtpZSBzYW1lLCBucC46ICB3ICAod3lyYXopLCAgJCAgKGtvbmllYyBsaW5paSksIGV0Yy4KIAogICAzLiBQcnplbmlltiBzaeogZG8gcGllcndzemVqIGxpbmlpIHBvbmm/ZWogb3puYWN6b25laiAtLS0+CiAKQEAgLTM2NCw3ICs0NTksNyBAQAogLS0tPiBLb25pZWMgdGVnbyB3aWVyc3phIG11c2kgYnnmIHBvcHJhd2lvbnkgYWJ5IHd5Z2yxZGFsIHRhayBqYWsgZHJ1Z2kuCiAtLS0+IEtvbmllYyB0ZWdvIHdpZXJzemEgbXVzaSBieeYgcG9wcmF3aW9ueSB1v3l3YWqxYyBwb2xlY2VuaWEgIGMkIC4KIAotCitVV0FHQTogIE1vv2VzeiB1v3l3YeYgPEJTPiBhYnkgcG9wcmF3aWHmIGKz6mR5IHcgY3phc2llIHBpc2FuaWEuCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJICAgICBMRUtDSkEgMy4gUE9EU1VNT1dBTklFCkBAIC0zNzcsNDEgKzQ3Miw0MSBAQAogICAyLiBCeSB6YW1pZW5p5iB6bmFrIHBvZCBrdXJzb3JlbSB3Y2m2bmlqICByICBhIHBvdGVtIHpuYWssIGt083J5IG1hIHphc3SxcGnmCiAgICAgIG9yeWdpbmFsbnkuCiAKLSAgMy4gUG9sZWNlbmllIGNoYW5nZSBwb3p3YWxhIENpIG5hIHphc3SxcGllbmllIHd5c3pjemVn82xuaW9uZWdvIG9iaWVrdHUKLSAgICAgb2Qga3Vyc29yYSBkbyBrb/FjYSBvYmlla3R1LiBOcC4gd3Bpc3ogIGN3ICBhYnkgemFtaWVuaeYgdGVrc3Qgb2QKLSAgICAga3Vyc29yYSBkbyBrb/FjYSB3eXJhenUsICBjJCAgYWJ5IHptaWVuaeYgdGVrc3QgZG8ga2/xY2EgbGluaWkuCisgIDMuIE9wZXJhdG9yIGNoYW5nZSBwb3p3YWxhIENpIG5hIHphc3SxcGllbmllIG9kIGt1cnNvcmEgZG8gbWllanNjYSBnZHppZQorICAgICB6YWJyYbNieSBjaeogcnVjaC4gTnAuIHdwaXN6ICBjZSAgYWJ5IHphbWllbmnmIHRla3N0IG9kIGt1cnNvcmEgZG8ga2/xY2EKKyAgICAgd3lyYXp1LCAgYyQgIGFieSB6bWllbmnmIHRla3N0IGRvIGtv8WNhIGxpbmlpLgogCiAgIDQuIEZvcm1hdCBkbyBwb2xlY2VuaWEgY2hhbmdlICh6bWll8Sk6CiAKLQkgICAgW2xpY3piYV0gIGMgIG9iaWVrdCAgICAgIExVQiAgICAgIGMgIFtsaWN6YmFdICBvYmlla3QKKwljICAgW2xpY3piYV0gICBvYmlla3QKIAogICAgICBUZXJheiBwcnplamS8IGRvIG5hc3TqcG5laiBsZWtjamkuCiAKIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICAgTGVrY2phIDQuMS46IExPS0FMSVpBQ0pBIE9SQVogU1RBVFVTIFBMSUtVCisJICAgICAgIExla2NqYSA0LjEuOiBQT6NPr0VOSUUgS1VSU09SQSBPUkFaIFNUQVRVUyBQTElLVQogCiAgICAgICAgKiogTmFjabZuaWogQ1RSTC1HIGFieSB6b2JhY3p55iBzd29qZSBwb7Nvv2VuaWUgdyBwbGlrdSBpIHN0YXR1cwotCSAgcGxpa3UuIE5hY2m2bmlqIFNISUZULUcgYWJ5IHByemVqtuYgZG8gbGluaWkgdyBwbGlrdS4gKioKKwkgIHBsaWt1LiBOYWNptm5paiAgRyAgYWJ5IHByemVqtuYgZG8gbGluaWkgdyBwbGlrdS4gKioKIAogICBVV0FHQTogUHJ6ZWN6eXRhaiBjYbOxIGxla2Nq6iB6YW5pbSB3eWtvbmFzeiBqYWtpZbYgcG9sZWNlbmlhISEhCiAKLSAgMS4gUHJ6eXRyenltYWoga2xhd2lzeiBDVFJMIGkgd2Nptm5paiAgZyAuIE5hIGRvbGUgc3Ryb255IHBvamF3aSBzaeogcGFzZWsKLSAgICAgc3RhdHVzdSB6IG5henexIHBsaWt1IGkgbnVtZXJlbSBsaW5paSwgdyBrdPNyZWogamVzdGW2LiBaYXBhbWnqdGFqIG51bWVyCi0gICAgIGxpbmlpIGRsYSBwb3RyemViIGtyb2t1IDMuCisgIDEuIFByenl0cnp5bWFqIGtsYXdpc3ogQ1RSTCBpIHdjabZuaWogIGcgLiBVv3l3YW15IG5vdGFjamkgQ1RSTC1HLiAKKyAgICAgTmEgZG9sZSBzdHJvbnkgcG9qYXdpIHNp6iBwYXNlayBzdGF0dXN1IHogbmF6d7EgcGxpa3UgaSBwb3p5Y2qxIHcgcGxpa3UuCisgICAgIFphcGFtaep0YWogbnVtZXIgbGluaWkgZGxhIHBvdHJ6ZWIga3Jva3UgMy4KIAotICAyLiBXY2m2bmlqIFNISUZULUcgYWJ5IHByemVqtuYgbmEga29uaWVjIHBsaWt1LgorVVdBR0E6IE1vv2VzeiB0Zb8gem9iYWN6eeYgcG96eWNq6iBrdXJzb3JhIHcgcHJhd3ltLCBkb2xueW0gcm9ndSBla3JhbnUuCisgICAgICAgRHppZWplIHNp6iB0YWsga2llZHkgdXN0YXdpb25hIGplc3Qgb3BjamEgJ3J1bGVyJyAod3lqYbZuaW9uZSB3IGxla2NqaSA2LikuCiAKLSAgMy4gV3Bpc3ogbnVtZXIgbGluaWksIHcga3TzcmVqIGJ5s2W2IGEgcG90ZW0gU0hJRlQtRy4gIFRvIHByemVuaWVzaWUgQ2nqCi0gICAgIHogcG93cm90ZW0gZG8gbGluaWksIHcga3TzcmVqIGJ5s2W2IGtpZWR5IHdjaXNusbNltiBDVFJMLUcgKGtpZWR5Ci0gICAgIHdwaXN1amVzeiBudW1lcnkgTklFIHBvamF3aWFqsSBzaeogb25lIG5hIGVrcmFuaWUpLgorICAyLiBXY2m2bmlqIEcgYWJ5IHByemVqtuYgbmEga29uaWVjIHBsaWt1LgorICAgICBXY2m2bmlqICBnZyAgYWJ5IHByemVqtuYgZG8gcG9jerF0a3UgcGxpa3UuCisKKyAgMy4gV3Bpc3ogbnVtZXIgbGluaWksIHcga3TzcmVqIGJ5s2W2IGEgcG90ZW0gIEcgLiBUbyBwcnplbmllc2llIGNp6gorICAgICB6IHBvd3JvdGVtIGRvIGxpbmlpLCB3IGt083JlaiBiebNltiBraWVkeSB3Y2lzbrGzZbYgQ1RSTC1HLgogCiAgIDQuIEpltmxpIGN6dWplc3ogc2nqIHd5c3RhcmN6YWqxY28gcGV3bmllLCB3eWtvbmFqIGtyb2tpIDEtMy4KIAotCi0KLQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgTGVrY2phIDQuMi46IFBPTEVDRU5JRSBTWlVLQUoKIApAQCAtNDI0LDE2ICs1MTksMTYgQEAKICAgMi4gVGVyYXogd3Bpc3ogIGKzb25kPEVOVEVSPiAuICBUbyBqZXN0IHOzb3dvLCBrdPNyZWdvIGNoY2VzeiBzenVrYeYuCiAKICAgMy4gQnkgc3p1a2HmIHRlaiBzYW1laiBmcmF6eSBwb25vd25pZSwgcG8gcHJvc3R1IHdjabZuaWogIG4gLgotICAgICBBYnkgc3p1a2HmIHRlaiBmcmF6eSB3IHByemVjaXdueW0sIGtpZXJ1bmt1IHdjabZuaWogU0hJRlQtTi4KKyAgICAgQWJ5IHN6dWth5iB0ZWogZnJhenkgdyBwcnplY2l3bnltLCBraWVydW5rdSB3Y2m2bmlqICBOIC4KIAogICA0LiBKZbZsaSBjaGNlc3ogc3p1a2HmIGZyYXp5IGRvIHR5s3UsIHW/eWogcG9sZWNlbmlhICA/ICB6YW1pYXN0ICAvIC4KIAotLS0tPiBLaWVkeSBwb2xlY2VuaWUgJ3N6dWthaicgb3NpsWduaWUga29uaWVjIHBsaWt1LCBwcnplc3p1a2l3YW5pZQotICAgICB6YWN6bmllIHNp6iBvZCBwb2N6sXRrdSBwbGlrdS4KKyAgNS4gQWJ5IHdy82Np5iBnZHppZSBiebNltiB3Y2m2bmlqICBDVFJMLU8uIFBvd3RhcnphaiBieSB3cvNjaeYgZGFsZWouIENUUkwtSQorICAgICBpZHppZSBkbyBwcnpvZHUuCiAKLSAgJ2Kzb25kJyB0byBuaWUgamVzdCBtZXRvZGEgYnkgcHJ6ZWxpdGVyb3dh5iBis7FkOyAnYrNvbmQnIHRvIGKzsWQuCi0KLQorVVdBR0E6ICAnYrNvbmQnIHRvIG5pZSBqZXN0IG1ldG9kYSBieSBwcnplbGl0ZXJvd2HmIGKzsWQ7ICdis29uZCcgdG8gYrOxZC4KK1VXQUdBOiAgS2llZHkgc3p1a2FuaWUgb3NpsWduaWUga29uaWVjIHBsaWt1IGLqZHppZSBrb250eW51b3dhs28gb2QgcG9jerF0a3UKK28gaWxlIG9wY2phICd3cmFwc2NhbicgbmllIHpvc3Rhs2EgcHJ6ZXN0YXdpb25hLgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJTGVrY2phIDQuMy46IFcgUE9TWlVLSVdBTklVIFBBUlVKoUNZQ0ggTkFXSUFT01cKQEAgLTQ0OSw2ICs1NDQsOCBAQAogCiAgIDQuIFdjabZuaWogICUgIGFieSBwcnplbmlltuYga3Vyc29yIHogcG93cm90ZW0gZG8gcGFydWqxY2VnbyBuYXdpYXN1LgogCisgIDUuIFByemVuaWW2IGt1cnNvciBkbyBpbm5lZ28gKCwpLFssXSx7IGx1YiB9IGkgem9iYWN6IGNvIHJvYmkgICUgLgorCiAtLS0+IFRvICggamVzdCBsaW5pYSB0ZXN0b3dhIHogKCwgWywgXSBpIHssIH0gLiApKQogCiBVV0FHQTogVGEgZnVua2NqYSBqZXN0IGJhcmR6byB1v3l0ZWN6bmEgdyBkZWJ1Z2dvd2FuaXUgcHJvZ3JhbXUKQEAgLTQ1NiwxMCArNTUzLDggQEAKIAogCiAKLQotCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICBMZWtjamEgNC40LjogSU5OQSBNRVRPREEgUE9QUkFXSUFOSUEgQqPKRNNXCisJCSAgTGVrY2phIDQuNC46IFBPTEVDRU5JRSBTVUJTVElUVVRFICh6YW1pYW5hKQogCiAKIAkgKiogV3Bpc3ogIDpzL3N0YXJ5L25vd3kvZyAgYWJ5IHphbWllbmnmICdzdGFyeScgbmEgJ25vd3knLiAqKgpAQCAtNDY5LDMwICs1NjQsMzIgQEAKICAgMi4gV3Bpc3ogIDpzL2N6YWFzL2N6YXM8RU5URVI+IC4gIFphdXdhvywgv2UgdG8gcG9sZWNlbmllIHptaWVuaWEKICAgICAgdHlsa28gcGllcndzemUgd3lzdLFwaWVuaWUgJ2N6YWFzJyB3IGxpbmlpLgogCi0gIDMuIFRlcmF6IHdwaXN6ICA6cy9jemFhcy9jemFzL2cgIG96bmFjemEgemFtaWFu6iAoc3Vic3R5dHVjauopCi0gICAgIGdsb2JhbG5pZSB3IGNhs2VqIGxpbmlpLiAgWm1pZW5pYSB3c3p5c3RraWUgd3lzdLFwaWVuaWEgdyBsaW5paS4KKyAgMy4gVGVyYXogd3Bpc3ogIDpzL2N6YWFzL2N6YXMvZyAgLiBEb2RhbmUgIGcgIG96bmFjemEgemFtaWFu6iAoc3Vic3R5dHVjauopCisgICAgIGdsb2JhbG5pZSB3IGNhs2VqIGxpbmlpLiAgWm1pZW5pYSB3c3p5c3RraWUgd3lzdLFwaWVuaWEgJ2N6YWFzJyB3IGxpbmlpLgogCiAtLS0+IE5hamxlcHN6eSBjemFhcyBuYSB6b2JhY3plbmllIG5harNhZG5pZWpzenljaCBrd2lhdPN3IHRvIGN6YWFzIHdpb3NueS4KIAogICA0LiBBYnkgem1pZW5p5iB3c3p5c3RraWUgd3lzdLFwaWVuaWEgs2HxY3VjaGEgem5ha/N3IHBvbWnqZHp5IGR3b21hIGxpbmlhbWksCi0gICAgIHdwaXN6OiA6Iywjcy9zdGFyZS9ub3dlL2cgZ2R6aWUgIywjIHOxIG51bWVyYW1pIGR382NoIGxpbmlpLgotICAgICBXcGlzeiAgOiVzL3N0YXJlL25vd2UvZyAgIGJ5IHptaWVuaeYgd3N6eXN0a2llIHd5c3SxcGllbmlhIHcgY2GzeW0gcGxpa3UuCi0KLQotCisgICAgIHdwaXN6OiA6Iywjcy9zdGFyZS9ub3dlL2cgZ2R6aWUgIywjIHOxIG51bWVyYW1pIGxpbmlpIG9ncmFuaWN6YWqxY3ljaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbiBnZHppZSBtYSBuYXN0sXBp5iB6YW1pYW5hLgorICAgICB3cGlzeiAgOiVzL3N0YXJlL25vd2UvZyAgIGJ5IHptaWVuaeYgd3N6eXN0a2llIHd5c3SxcGllbmlhIHcgY2GzeW0gcGxpa3UuCisgICAgIHdwaXN6ICA6JXMvc3RhcmUvbm93ZS9nYyAgYnkgem1pZW5p5iB3c3p5c3RraWUgd3lzdLFwaWVuaWEgdyBjYbN5bQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsaWt1LCBwcm9zerFjIG8gcG90d2llcmR6ZW5pZSB6YSBrYb9keW0gcmF6ZW0KIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgICAgIExFS0NKQSA0LiBQT0RTVU1PV0FOSUUKIAotCi0gIDEuIENUUkwtRyAgcG9rYb9lIFR3b2qxIHBvenljauogdyBwbGlrdSBpIHN0YXR1cyBwbGlrdS4gIFNISUZULUcgcHJ6ZW5vc2kKLSAgICAgQ2nqIGRvIGtv8WNhIHBsaWt1LiAgU0hJRlQtRyBwb3ByemVkem9ueSBsaWN6YrEgcHJ6ZW5vc2kgQ2nqIGRvIGxpbmlpCi0gICAgIG8gdHltIG51bWVyemUuCisgIDEuIENUUkwtRyAgIHBva2G/ZSBUd29qsSBwb3p5Y2rqIHcgcGxpa3UgaSBzdGF0dXMgcGxpa3UuICBTSElGVC1HIHByemVub3NpCisJICAgICAgY2nqIGRvIGtv8WNhIHBsaWt1LgorICAgICBHICAgICAgICBwcnplbm9zaSBkbyBrb/FjYSBwbGlrdS4KKyAgICAgbGljemJhIEcgcHJ6ZW5vc2kgZG8gbGluaWkgW2xpY3piYV0uCisgICAgIGdnICAgICAgIHByemVub3NpIGRvIHBpZXJ3c3plaiBsaW5paS4KIAogICAyLiBXcGlzYW5pZSAgLyAgYSBuYXN06nBuaWUgs2HxY3VjaGEgem5ha/N3IHN6dWthILNh8WN1Y2hhIERPIFBSWk9EVS4KICAgICAgV3Bpc2FuaWUgID8gIGEgbmFzdOpwbmllILNh8WN1Y2hhIHpuYWvzdyBzenVrYSCzYfFjdWNoYSBETyBUWaNVLgogICAgICBQbyB3eXN6dWtpd2FuaXUgd2Nptm5paiAgbiAgYnkgem5hbGW85iBuYXN06nBuZSB3eXN0sXBpZW5pZSBzenVrYW5lagotICAgICBmcmF6eSB0eW0gc2FteW0ga2llcnVua3UgbHViIFNoaWZ0LU4gYnkgc3p1a2HmIHcga2llcnVua3UgcHJ6ZWNpd255bS4KKyAgICAgZnJhenkgdHltIHNhbXltIGtpZXJ1bmt1IGx1YiAgTiAgYnkgc3p1a2HmIHcga2llcnVua3UgcHJ6ZWNpd255bS4KKyAgICAgQ1RSTC1PIHByemVub3NpIGRvIHN0YXJzenljaCBwb3p5Y2ppLCBDVFJMLUkgZG8gbm93c3p5Y2guCiAKICAgMy4gV3Bpc2FuaWUgICUgIGdkeSBrdXJzb3Igem5hamR1amUgc2nqIG5hICgsKSxbLF0seywgbHViIH0gbG9rYWxpenVqZQogICAgICBwYXJ1arFjeSB6bmFrLgpAQCAtNTAyLDggKzU5OSw2IEBACiAgICAgIEJ5IHphbWllbmnmIGZyYXp5IHBvbWnqZHp5IGR3b21hIGxpbmlhbWkgIyB3cGlzeiAgICAgIDojLCNzL3N0YXJ5L25vd3kvZwogICAgICBCeSB6YW1pZW5p5iB3c3p5c3RraWUgd3lzdLFwaWVuaWEgdyBwbGlrdSB3cGlzeiAgICAgICA6JXMvc3Rhcnkvbm93eS9nCiAgICAgIEJ5IFZpbSBwcm9zabMgQ2nqIG8gcG90d2llcmR6aWVuaWUgZG9kYWogJ2MnCSAgIDolcy9zdGFyeS9ub3d5L2djCi0KLQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCSBMZWtjamEgNS4xLjogSkFLIFdZS09OQcYgUE9MRUNFTklBIFpFV07KVFJaTkUKIApAQCAtNTIwLDkgKzYxNSw5IEBACiAgICAgIHBva2G/ZSBzcGlzIHBsaWvzdyB3IFR3b2ltIGthdGFsb2d1LCB0YWsgamFrYnm2IGJ5syBwcnp5IHpuYWt1IHphY2jqdHkKICAgICAgcG93s29raS4gTW+/ZXN6IHRlvyB1v3nmICA6IWRpciAgamW2bGkgIGxzICBuaWUgZHppYbNhLgogCi0tLS0+IFV3YWdhOiAgVyB0ZW4gc3Bvc/NiIG1vv25hIHd5a29uYeYgd3N6eXN0a2llIHBvbGVjZW5pYSBwb3ezb2tpLgotLS0tPiBVd2FnYTogIFdzenlzdGtpZSBwb2xlY2VuaWEgIDogIG11c3qxIGJ55iB6YWtv8WN6b25lIDxFTlRFUj4uCi0KK1V3YWdhOiAgVyB0ZW4gc3Bvc/NiIG1vv25hIHd5a29uYeYgd3N6eXN0a2llIHBvbGVjZW5pYSBwb3ezb2tpLgorVXdhZ2E6ICBXc3p5c3RraWUgcG9sZWNlbmlhICA6ICBtdXN6sSBieeYgemFrb/Fjem9uZSA8RU5URVI+LgorICAgICAgICBPZCB0ZWdvIG1vbWVudHUgbmllIHphd3N6ZSBi6mR6aWVteSBvIHR5bSB3c3BvbWluYeYuCiAKIAogCkBAIC01MzEsNyArNjI2LDcgQEAKIAkJICAgIExla2NqYSA1LjIuOiBXScpDRUogTyBaQVBJU1lXQU5JVSBQTElL01cKIAogCi0JICAgICoqIEJ5IHphY2hvd2HmIHptaWFueSB3IHBsaWt1IHdwaXN6IDp3IE5BWldBX1BMSUtVIC4gKioKKwkgICAqKiBCeSB6YWNob3dh5iB6bWlhbnkgdyB0ZWu2Y2kgd3Bpc3ogOncgTkFaV0FfUExJS1UgLiAqKgogCiAgIDEuIFdwaXN6ICA6IWRpciAgbHViICA6IWxzICBieSB6b2JhY3p55iBzcGlzIHBsaWvzdyB3IGthdGFsb2d1LgogICAgICBKdb8gd2llc3osIL9lIG11c2lzeiB3Y2lzbrHmIDxFTlRFUj4gcG8gdHltLgpAQCAtNTQxLDM3ICs2MzYsMzcgQEAKICAgMy4gVGVyYXogd3Bpc3o6ICAgOncgVEVTVCAgIChnZHppZSBURVNUIGplc3QgbmF6d7EgcGxpa3UgamFrsSB3eWJyYbNlti4pCiAKICAgNC4gVG8gcG9sZWNlbmllIHphcGFtaep0YSBjYbN5IHBsaWsgKFZpbSBUdXRvcikgcG9kIG5henexIFRFU1QuCi0gICAgIEJ5IHRvIHNwcmF3ZHpp5iB3cGlzeiAgOiFkaXIgLCC/ZWJ5IHpub3d1IHpvYmFjennmIGxpc3TqIHBsaWvzdy4KKyAgICAgQnkgdG8gc3ByYXdkemnmIHdwaXN6ICA6IWRpciAgbHViICA6IWxzICwgv2VieSB6bm93dSB6b2JhY3p55iBsaXN06iBwbGlr83cuCiAKLS0tLT4gWmF1d2G/LCC/ZSBnZHliebYgdGVyYXogd3lzemVksyB6IFZpbS1hLCBhIG5hc3TqcG5pZSB3c3plZLMgcG9ub3duaWUKLSAgICAga29tZW5ksSAgdmltIFRFU1QgLCBwbGlrIGJ5s2J5IGRva7NhZG6xIGtvcGmxIHR1dG9yaWFsYSBraWVkeSBnbwotICAgICB6YXBpc3l3YbNlti4KK1V3YWdhOiBaYXV3Yb8sIL9lIGdkeWJ5tiB0ZXJheiB3eXN6ZWSzIHogVmltLWEsIGEgbmFzdOpwbmllIHdzemVksyBwb25vd25pZQorICAgICAgIGtvbWVuZLEgIHZpbSBURVNUICwgcGxpayBiebNieSBkb2uzYWRusSBrb3BpsSB0dXRvcmlhbGEga2llZHkgZ28KKyAgICAgICB6YXBpc3l3YbNlti4KIAogICA1LiBUZXJheiB1c3XxIHBsaWsgd3Bpc3VqsWM6CQkgICA6IXJtIFRFU1QKIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJTGVrY2phIDUuMy46IFNFTEVLVFlXTkUgUE9MRUNFTklFIFdSSVRFICh6YXBpc3opCisJCSAgICBMZWtjamEgNS4zLjogV1lCUkFOSUUgVEVLU1RVIERPIFpBUElTVQogCiAKLQkgICAgKiogQnkgemFjaG93YeYgY3rqtuYgcGxpa3Ugd3Bpc3ogIDojLCMgdyBOQVpXQV9QTElLVSAqKgorCSAgKiogQnkgemFjaG93YeYgY3rqtuYgcGxpa3Ugd3Bpc3ogIHYgcnVjaCA6dyBOQVpXQV9QTElLVSAqKgogCi0gIDEuIEplc3pjemUgcmF6IHdwaXN6ICA6IWRpciAgbHViICA6IWxzICBieSB1enlza2HmIGxpc3TqIHBsaWvzdwotICAgICB3IGthdGFsb2d1IGkgd3liaWVyeiBvZHBvd2llZG5psSBuYXp36iB0YWuxIGphayBURVNULgorICAxLiBQcnplbmlltiBrdXJzb3IgZG8gdGVnbyB3aWVyc3phLgogCi0gIDIuIFByemVuaWW2IGt1cnNvciBuYSBn83JlIHRlaiBzdHJvbnkgaSB3Y2m2bmlqIENUUkwtRyBieSB1enlza2HmCi0gICAgIG51bWVyIGxpbmlpLiBaQVBBTUnKVEFKIFTKIExJQ1pCyiEKKyAgMi4gV2Nptm5paiAgdiAgaSBwcnplbmlltiBrdXJzb3IgZG8gcHVua3R1IDUuIFphdXdhvywgv2UgdGVrc3Qgem9zdGGzCisgICAgIHBvZLZ3aWV0bG9ueS4KIAotICAzLiBUZXJheiBwcnplbmlltiBzaeogbmEgZPOzIHN0cm9ueSBpIHdwaXN6ICBDVFJMLUcgem5vd3UuICBaQVBBTUnKVEFKCi0gICAgIE5VTUVSIFRBS69FIFRFSiBMSU5JSSEKKyAgMy4gV2Nptm5paiB6bmFrICA6IC4gTmEgZG9sZSBla3JhbnUgcG9qYXdpIHNp6iAgOic8LCc+IC4KIAotICA0LiBCeSB6YWNob3dh5iBKRURZTklFIGN66rbmIHBsaWt1IHdwaXN6ICA6IywjIHcgVEVTVCAgIGdkemllICAjLCMgdG8KLSAgICAgZHdpZSBsaWN6YnkgamFraWUgemFwYW1p6nRhs2W2IChn83JhLCBk87MgZWtyYW51KSwgYSBURVNUIHRvIG5hendhCi0gICAgIFR3b2plZ28gcGxpa3UuCisgIDQuIFdwaXN6ICB3IFRFU1QgLCBnZHppZSBURVNUIHRvIG5hendhIHBsaWt1LCBrdPNyeSBqZXN6Y3plIG5pZSBpc3RuaWVqZS4KKyAgICAgVXBld25paiBzaeosIL9lIHdpZHppc3ogIDonPCwnPncgVEVTVCB6YW5pbSB3Y2m2bmllc3ogRW50ZXIuCiAKLSAgNS4gUG9ub3duaWUgc3ByYXdkvCBjenkgdGVuIHBsaWsgdGFtIGplc3QgKCA6IWRpciApLCBhbGUgTklFIHVzdXdhaiBnby4KKyAgNS4gVmltIHphcGlzemUgd3licmFuZSBsaW5pZSBkbyBwbGlrdSBURVNULiBVv3lqICA6IWRpciAgbHViICA6IWxzICwgv2VieSB0bworICAgICB6b2JhY3p55i4gSmVzemN6ZSBnbyBuaWUgdXN1d2FqISBVv3lqZW15IGdvIHcgbmFzdOpwbmVqIGxla2NqaS4KIAotCitVV0FHQTogV2Nptm5p6mNpZSAgdiAgemFjenluYSB0cnliIFdpenVhbG55LiBNb79lc3ogcG9ydXN6YeYga3Vyc29yZW0gYnkKKyAgICAgICB6bWllbmnmIHJvem1pYXJ5IHphem5hY3plbmlhLiBNb79lc3ogdGW/IHW/eeYgb3BlcmF0b3JhIGJ5IHpyb2Jp5iBjb7YKKyAgICAgICB6IHRla3N0ZW0uIE5hIHByenlrs2FkICBkICB1c3V3YSB0ZWtzdC4KIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCSAgIExla2NqYSA1LjQuOiBXU1RBV0lBTklFIEkgo6FDWkVOSUUgUExJS9NXCkBAIC01NzksMjIgKzY3NCwyMiBAQAogCiAJICAgICoqIEJ5IHdzdGF3aeYgemF3YXJ0b7bmIHBsaWt1IHdwaXN6ICAgOnIgTkFaV0FfUExJS1UgKioKIAotICAxLiBXcGlzeiAgOiFkaXIgIGJ5IHNp6iB1cGV3bmnmLCB6ZSBUd/NqIHBsaWsgVEVTVCB6b3N0YbMgcG9wcmF3bmllCi0gICAgIHphcGFtaep0YW55LgorICAxLiBVbWlltuYga3Vyc29yIHR1vyBwb3d5v2VqIHRlaiBsaW5paS4KIAotICAyLiBVbWlltuYga3Vyc29yIG5hIGfzcnplIHN0cm9ueS4KLQotVVdBR0E6IFBvIHd5a29uYW5pdSBrcm9rdSAzLiBwb25vd25pZSB6b2JhY3p5c3ogTGVrY2rqIDUuMy4gUG90ZW0gcHJ6ZWpkvAorVVdBR0E6IFBvIHd5a29uYW5pdSBrcm9rdSAyLiB6b2JhY3p5c3ogdGVrc3QgeiBMZWtjamkgNS4zLiBQb3RlbSBwcnplamS8CiAgICAgICAgZG8gRE+jVSBieSB6b2JhY3p55iBwb25vd25pZSB06iBsZWtjauouCiAKLSAgMy4gVGVyYXogd2N6eXRhaiBwbGlrIFRFU1Qgdb95d2FqsWMgcG9sZWNlbmlhICA6ciBURVNUICwgZ2R6aWUgVEVTVAorICAyLiBUZXJheiB3Y3p5dGFqIHBsaWsgVEVTVCB1v3l3YWqxYyBwb2xlY2VuaWEgIDpyIFRFU1QgLCBnZHppZSBURVNUCiAgICAgIGplc3QgbmF6d7EgcGxpa3UuCisgICAgIFdjenl0YW55IHBsaWsgamVzdCB1bWllc3pjem9ueSBwb25pv2VqIGxpbmlpIHoga3Vyc29yZW0uCiAKLVVXQUdBOiBQbGlrLCBrdPNyeSB3Y3p5dHVqZXN6IGplc3Qgd3N0YXdpYW55IHRhbSBnZHppZSBiebMga3Vyc29yLgotCi0gIDQuIEJ5IHNwcmF3ZHpp5iBjenkgcGxpayB6b3N0YbMgd2N6eXRhbnkgY29mbmlqIGt1cnNvciBpIHpvYmFjeiwgv2UKKyAgMy4gQnkgc3ByYXdkemnmIGN6eSBwbGlrIHpvc3RhsyB3Y3p5dGFueSBjb2ZuaWoga3Vyc29yIGkgem9iYWN6LCC/ZQogICAgICB0ZXJheiBzsSBkd2llIGtvcGllIExla2NqaSA1LjMuLCBvcnlnaW5hsyBpIGtvcGlhIHogcGxpa3UuCiAKK1VXQUdBOiBNb79lc3ogdGW/IHdjenl0YeYgd3lqtmNpZSB6ZXdu6nRyem5lZ28gcG9sZWNlbmlhLiBOYSBwcnp5a7NhZAorICAgICAgIDpyICFscyAgd2N6eXR1amUgd3lqtmNpZSBwb2xlY2VuaWEgbHMgaSB1bWllc3pjemEgamUgcG9kIGt1cnNvcmVtLgorCisKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgICAgIExFS0NKQSA1LiBQT0RTVU1PV0FOSUUKQEAgLTYxMCwxMiArNzA1LDEyIEBACiAKICAgMi4gIDp3IE5BWldBX1BMSUtVICB6YXBpc3VqZSBvYmVjbnkgcGxpayBWaW0tYSBuYSBkeXNrIHogbmF6d7EgTkFaV0FfUExJS1UuCiAKLSAgMy4gIDojLCN3IE5BWldBX1BMSUtVICB6YXBpc3VqZSBsaW5pZSBvZCAjIGRvICMgdyBwbGlrdSBOQVpXQV9QTElLVS4KKyAgMy4gIHYgcnVjaCA6dyBOQVpXQV9QTElLVSAgemFwaXN1amUgV2l6dWFsbmllIHd5YnJhbmUgbGluaWUgZG8gTkFaV0FfUExJS1UuCiAKICAgNC4gIDpyIE5BWldBX1BMSUtVICB3Y3p5dHVqZSB6IGR5c2t1IHBsaWsgTkFaV0FfUExJS1UgaSB3c3Rhd2lhIGdvIGRvCi0gICAgICBiaWW/sWNlZ28gcGxpa3UgcG8ga3Vyc29yemUuCisgICAgICBiaWW/sWNlZ28gcGxpa3UgcG9uab9laiBrdXJzb3JhLgogCi0KKyAgNS4gIDpyICFkaXIgIHdjenl0dWplIHd5arZjaWUgcG9sZWNlbmlhIGRpciBpIHVtaWVzemN6YSBqZSBwb25pv2VqIGt1cnNvcmEuCiAKIAogCkBAIC02MzEsMTYgKzcyNiwxNiBAQAogICAyLiBXcGlzeiAgbyAgKG1hs2UpIGJ5IG90d29yennmIGxpbmnqIFBPTkmvRUoga3Vyc29yYSBpIHByemVuaWW25iBzaeoKICAgICAgZG8gdHJ5YnUgSW5zZXJ0ICh3cHJvd2FkemFuaWUpLgogCi0gIDMuIFRlcmF6IHByemVwaXN6IGxpbmnqIG96bmFjem9usSAtLS0+IGkgd2Nptm5paiA8RVNDPiBieSB3eWq25gotICAgICB6IHRyeWJ1IEluc2VydCAod3Byb3dhZHphbmllKS4KKyAgMy4gV3Bpc3ogdHJvY2jqIHRla3N0dSBpIHdjabZuaWogPEVTQz4gYnkgd3lqtuYgeiB0cnlidSBJbnNlcnQgKHdwcm93YWR6YW5pZSkuCiAKLS0tLT4gUG8gd2Nptm5p6mNpdSAgbyAga3Vyc29yIHpuYWpkemllIHNp6iB3IG90d2FydGVqIGxpbmlpIHcgdHJ5YmllCi0gICAgIEluc2VydCAod3Byb3dhZHphbmllKS4KKy0tLT4gUG8gd2Nptm5p6mNpdSAgbyAga3Vyc29yIHpuYWpkemllIHNp6iB3IG90d2FydGVqIGxpbmlpIHcgdHJ5YmllIEluc2VydC4KIAogICA0LiBCeSBvdHdvcnp55iBsaW5p6iBQT1dZr0VKIGt1cnNvcmEgd2Nptm5paiB3aWVsa2llICBPICB6YW1pYXN0IG1hs2VnbwogICAgICBvIC4gV3lwcvNidWogdG8gbmEgbGluaWkgcG9uab9lai4KIAotIE90d/NyeiBsaW5p6iBwb3d5v2VqIHdjaXNrYWqxYyBTSElGVC1PIGdkeSBrdXJzb3IgYupkemllIG5hIHRlaiBsaW5paS4KKy0tLT4gT3R383J6IGxpbmnqIHBvd3m/ZWogd2Npc2tharFjIFNISUZULU8gZ2R5IGt1cnNvciBi6mR6aWUgbmEgdGVqIGxpbmlpLgorCisKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCSAgICAgTGVrY2phIDYuMi46IFBPTEVDRU5JRSBBUFBFTkQgKGRvZGFqKQpAQCAtNjQ4LDEzNyArNzQzLDIwMyBAQAogCiAJCSAgKiogV3Bpc3ogIGEgIGJ5IGRvZGHmIHRla3N0IFpBIGt1cnNvcmVtLiAqKgogCi0gIDEuIFByemVuaWW2IGt1cnNvciBkbyBrb/FjYSBwaWVyd3N6ZWogbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4KLSAgICAgWnLzYiB0byB3Y2lza2FqsWMgICQgIHcgdHJ5YmllIE5vcm1hbC4KKyAgMS4gUHJ6ZW5pZbYga3Vyc29yIGRvIHBvY3qxdGt1IHBpZXJ3c3plaiBsaW5paSBwb25pv2VqIG96bmFjem9uZWogLS0tPgogCi0gIDIuIFdwaXN6ICBhICAobWGzZSkgYWJ5IGRvZGHmIHRla3N0IFpBIHpuYWtpZW0gcG9kIGt1cnNvcmVtLgotICAgICBXaWVsa2llIEEgZG9kYWplIHRla3N0IG5hIGtv8WN1IGxpbmlpLgorICAyLiBXY2lza2FqICBlICBkb3Dza2kga3Vyc29yIG5pZSBi6mR6aWUgbmEga2/xY3UgbGkgLgogCi1Vd2FnYTogVG8gb3N6Y3rqZHphIHdwaXNhbmlhOiBvc3RhdG5pIHpuYWsgKCAkICksICBpICwgdGVrc3QgZG8gZG9kYW5pYSwKLSAgICAgICA8RVNDPiwgc3RyemGza2EgdyBwcmF3byBpIG9zdGF0ZWN6bmllICB4ICwgdHlsa28gcG8gdG8gYnkgZG9kYeYKLSAgICAgICB0ZWtzdCBuYSBrb/FjdSBsaW5paS4KKyAgMy4gV3Bpc3ogIGEgIChtYbNlKSBhYnkgZG9kYeYgdGVrc3QgWkEgem5ha2llbSBwb2Qga3Vyc29yZW0uCiAKLSAgMy4gVGVyYXogZG9rb/FjeiBwaWVyd3N6sSBsaW5p6i4gWmF1d2G/IHRha79lLCC/ZSAgYXBwZW5kICAoZG9kYWopCi0gICAgIGR6aWGzYSB0YWsgc2FtbyBqYWsgdHJ5YiBJbnNlcnQgKHdwcm93YWR6YW5pZSkgeiB3eWqxdGtpZW0gdGVnbyBnZHppZQotICAgICB0ZWtzdCBqZXN0IHdzdGF3aWFueS4KKyAgNC4gRG9rb/FjeiB3eXJheiB0YWsgamFrIHcgbGluaWkgcG9uab9lai4gV2Nptm5paiA8RVNDPiBhYnkgb3B1tmNp5iB0cnliCisgICAgIEluc2VydC4KIAotLS0tPiBUYSBsaW5pYSBwb3p3b2xpIENpIOZ3aWN6eeYKKyAgNS4gVb95aiAgZSAgYnkgcHJ6ZWq25iBkbyBrb2xlam5lZ28gbmllZG9rb/Fjem9uZWdvIHd5cmF6ZSBpIHBvd3RhcnphaiBrcm9raQorICAgICAzLiBpIDQuCisKKy0tLT4gVGEgbGkgcG96IENpIOZ3aSBkb2RhdyB0ZWtzIGRvIGtv8SBsaW4KIC0tLT4gVGEgbGluaWEgcG96d29saSBDaSDmd2ljennmIGRvZGF3YW5pZSB0ZWtzdHUgZG8ga2/xY2EgbGluaWkuCiAKK1V3YWdhOiAgYSAsICBpICBhbmQgIEEgIHByb3dhZHqxIGRvIHRyeWJ1IEluc2VydCwgamVkeW6xIHLzv25pY7EgamVzdCBtaWVqc2NlCisgICAgICAgZ2R6aWUgbm93ZSB6bmFraSBi6mSxIGRvZGF3YW5lLgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCSAgIExla2NqYSA2LjMuOiBJTk5BIFdFUlNKQSBSRVBMQUNFICh6YW1pYW5hKQogCiAKIAkgICAqKiBXcGlzeiB3aWVsa2llICBSICBieSB6YW1pZW5p5iB3aepjZWogbmm/IGplZGVuIHpuYWsuICoqCiAKLSAgMS4gUHJ6ZW5pZbYga3Vyc29yIGRvIHBpZXJ3c3plaiBsaW5paSBwb25pv2VqIG96bmFjem9uZWogLS0tPi4KKyAgMS4gUHJ6ZW5pZbYga3Vyc29yIGRvIHBpZXJ3c3plaiBsaW5paSBwb25pv2VqIG96bmFjem9uZWogLS0tPi4gUHJ6ZW5pZbYKKyAgICAga3Vyc29yIGRvIHBpZXJ3c3plZ28gIHh4eCAuCiAKLSAgMi4gVW1pZbbmIGt1cnNvciBuYSBwb2N6sXRrdSBwaWVyd3N6ZWdvIHd5cmF6dSwga3TzcnkgcvN6bmkgc2nqIG9kCi0gICAgIGRydWdpZWogbGluaWkgb3puYWN6b25laiAtLS0+ICh3eXJheiAnb3N0YXRuaScpLgorICAyLiBXY2m2bmlqICBSICBpIHdwaXN6IG51bWVyIHBvbmm/ZWogdyBkcnVnaWVqIGxpbmlpLCB0YWssIL9lIHphc3SxcGkgb24KKyAgICAgeHh4LgogCi0gIDMuIFRlcmF6IHdwaXN6ICBSICBpIHphbWll8SByZXN6dOogdGVrc3R1IHcgcGllcndzemVqIGxpbmlpIHByemV6Ci0gICAgIG5hZHBpc2FuaWUgbmFkIHN0YXJ5bSB0ZWtzdGVtIHRhayBhYnkgcGllcndzemEgbGluaWEgYnJ6bWlhs2EgdGFrIHNhbW8KLSAgICAgamFrIGRydWdhLgorICAzLiBXY2m2bmlqIDxFU0M+IGJ5IG9wdbZjaeYgdHJ5YiBSZXBsYWNlLiBaYXV3Yb8sIL9lIHJlc3p0YSBsaW5paSBwb3pvc3RhamUKKyAgICAgbmllem1pZW5pb25hLgogCi0tLS0+IFRvIG1ha2UgdGhlIGZpcnN0IGxpbmUgdGhlIHNhbWUgYXMgdGhlIGxhc3Qgb24gdGhpcyBwYWdlIHVzZSB0aGUga2V5cy4KLS0tLT4gVG8gbWFrZSB0aGUgZmlyc3QgbGluZSB0aGUgc2FtZSBhcyB0aGUgc2Vjb25kLCB0eXBlIFIgYW5kIHRoZSBuZXcgdGV4dC4KKyAgNS4gUG93dGFyemFqIGtyb2tpIGJ5IHd5bWllbmnmIHdzenlzdGtpZSB4eHguCiAKLSAgNC4gWmF1d2G/LCC/ZSBraWVkeSB3Y2m2bmllc3ogPEVTQz4gYWJ5IHd5arbmIG5pZXptaWVuaW9ueSB0ZWtzdAotICAgICBwb3pvc3RhamUuCistLS0+IERvZGFuaWUgMTIzIGRvIHh4eCBkYWplIHh4eC4KKy0tLT4gRG9kYW5pZSAxMjMgZG8gNDU2IGRhamUgNTc5LgogCi0KK1VXQUdBOiBUcnliIFJlcGxhY2UgamVzdCBqYWsgdHJ5YiBJbnNlcnQsIGFsZSBrYb9keSB6bmFrIHVzdXdhIGlzdG5pZWqxY3kKKyAgICAgICB6bmFrLgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJCSBMZWtjamEgNi40LjogVVNUQVdJQU5JRSBPUENKSQorCQkgIExla2NqYSA2LjQuOiBLT1BJT1dBTklFIEkgV0tMRUpBTklFIFRFS1NUVQorCisKKyAgICAgICAqKiB1v3lqIG9wZXJhdG9yYSAgeSAgYWJ5IHNrb3Bpb3dh5iB0ZWtzdCBpICBwICBhYnkgZ28gd2tsZWnmICoqCisKKyAgMS4gUHJ6ZWpkvCBkbyBsaW5paSBvem5hY3pvbmVqIC0tLT4gaSB1bWlltmMga3Vyc29yIHphICJhKSIuCisKKyAgMi4gV2VqZLwgdyB0cnliIFZpc3VhbCAgdiAgaSBwcnplbmlltiBrdXJzb3IgbmEgcG9jerF0ZWsgInBpZXJ3c3p5Ii4KKworICAzLiBXY2m2bmlqICB5ICBhYnkgeWFua293YeYgKGtvcGlvd2HmKSBwb2S2d2lldGxvbnkgdGVrc3QuCisKKyAgNC4gUHJ6ZW5pZbYga3Vyc29yIGRvIGtv8WNhIG5hc3TqcG5laiBsaW5paTogIGokCisKKyAgNS4gV2Nptm5paiAgcCAgYWJ5IHdwYWtvd2HmIChwYXN0ZSkgdGVrc3QuICBEb2RhajogIGEgZHJ1Z2k8RVNDPiAuCisKKyAgNi4gVb95aiB0cnlidSBWaXN1YWwgYWJ5IHd5YnJh5iAiIGVsZW1lbnQuIiwgeWFua3VqIGdvICB5ICwgcHJ6ZWpkvCBkbyBrb/FjYQorICAgICBuYXN06nBuZWogbGluaWkgIGokIGkgdXBha3VqIHRhbSB0ZWtzdCB6ICBwIC4KKworLS0tPiAgYSkgdG8gamVzdCBwaWVyd3N6eSBlbGVtZW50LgorICAgICAgYikKK1V3YWdhOiBtb79lc3ogdb955iAgeSAgamFrbyBvcGVyYXRvcmE7ICB5dyAga29waXVqZSBqZWRlbiB3eXJhei4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgTGVrY2phIDYuNS46IFVTVEFXSUFOSUUgT1BDSkkKIAogCiAqKiBVc3Rhd2lhbmllIG9wY2ppIHRhayBieSBzenVrYWogbHViIHN1YnN0eXR1Y2phIGlnbm9yb3dhs3kgd2llbGtvtuYgbGl0ZXIgKioKIAotICAxLiBTenVrYWogJ2lnbm9yZScgd3Bpc3VqsWMgKHcgdHJ5YmllIE5vcm1hbCk6Ci0gICAgIC9pZ25vcmUKKyAgMS4gU3p1a2FqICdpZ25vcmUnIHdwaXN1arFjOiAgICAvaWdub3JlPEVOVEVSPgogICAgICBQb3d083J6IHN6dWthbmllIGtpbGthIHJhenkgbmFjaXNrYWqxYyBrbGF3aXN6ICBuIC4KIAogICAyLiBVc3RhdyBvcGNq6iAnaWMnIChJZ25vcmUgY2FzZSAtLSBpZ25vcnVqIHdpZWxrb7bmIGxpdGVyKSBwb3ByemV6CiAgICAgIHdwaXNhbmllOgkJOnNldCBpYwogCi0gIDMuIFRlcmF6IHN6dWthaiAnaWdub3JlJyBwb25vd25pZSB3Y2lza3VqsWM6IG4KLSAgICAgUG93dPNyeiBzenVrYW5pZSBraWxrYSByYXp5IG5hY2lza2FqsWMga2xhd2lzeiAgbiAuCisgIDMuIFRlcmF6IHN6dWthaiAnaWdub3JlJyBwb25vd25pZSB3Y2lza3VqsWM6ICBuCisgICAgIFphdXdhvywgv2UgSWdub3JlIGkgSUdOT1JFIHRha79lIHOxIHRlcmF6IHpuYWxlemlvbmUuCiAKLSAgNC4gVXN0YXcgb3BjamUgJ2hsc2VhcmNoJyBpICdpbmNzZWFyY2gnOgotICAgICA6c2V0IGhscyBpcworICA0LiBVc3RhdyBvcGNqZSAnaGxzZWFyY2gnIGkgJ2luY3NlYXJjaCc6ICAgIDpzZXQgaGxzIGlzCiAKICAgNS4gVGVyYXogd3Byb3dhZLwgcG9sZWNlbmllIHN6dWthaiBwb25vd25pZSBpIHpvYmFjeiBjbyBzaeogemRhcnp5OgotICAgICAvaWdub3JlCisgICAgIC9pZ25vcmU8RU5URVI+CiAKKyAgNi4gQWJ5IHd5s7FjennmIGlnbm9yb3dhbmllIHdpZWxrb7ZjaSBsaXRlcjogIDpzZXQgbm9pYwogCitVd2FnYTogQWJ5IHVzdW6x5iBwb2S2d2lldGxhbmllIGRvcGFzb3dh8SB3cGlzejogICA6bm9obHNlYXJjaAorVXdhZ2E6IEFieSBpZ25vcm93YeYgd2llbGtvtuYgbGl0ZXIgZGxhIGplZG5lZ28gd3lzenVraXdhbmlhOiAvaWdub3JlXGM8RU5URVI+CiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJCSAgICAgTEVLQ0pBIDYuIFBPRFNVTU9XQU5JRQogCiAKLSAgMS4gV3Bpc2FuaWUgIG8gIG90d2llcmEgbGluaeogUE9OSa9FSiBrdXJzb3JhIGkgdW1pZXN6Y3phIGt1cnNvcgotICAgICB3IG90d2FydGVqIGxpbmlpIHcgdHJ5YmllIEluc2VydCAod3Byb3dhZHphbmllKS4KLSAgICAgV3Bpc2FuaWUgd2llbGtpZWdvICBPICBvdHdpZXJhIGxpbmnqIFBPV1mvRUogbGluaWksIHcga3TzcmVqCi0gICAgIHpuYWpkdWplIHNp6iBrdXJzb3IuCi0KKyAgMS4gV3Bpc2FuaWUgIG8gIG90d2llcmEgbGluaeogUE9OSa9FSiBrdXJzb3JhLgorICAgICBXcGlzYW5pZSB3aWVsa2llZ28gIE8gIG90d2llcmEgbGluaeogUE9XWa9FSiBrdXJzb3JhLgogICAyLiBXcGlzeiAgYSAgYnkgd3N0YXdp5iB0ZWtzdCBaQSB6bmFraWVtIG5hLCBrdPNyeW0gamVzdCBrdXJzb3IuCi0gICAgIFdwaXNhbmllIHdpZWxraWVnbyAgQSAgYXV0b21hdHljem5pZSBkb2RhamUgdGVrc3QgbmEga2/xY3UgbGluaWkuCi0KLSAgMy4gV3Bpc2FuaWUgd2llbGtpZWdvICBSICB3cHJvd2FkemEgdyB0cnliIFJlcGxhY2UgKHphbWlhbmEpIGRvcPNraQorICAgICBXcGlzYW5pZSB3aWVsa2llZ28gIEEgIGRvZGFqZSB0ZWtzdCBuYSBrb/FjdSBsaW5paS4KKyAgMy4gUG9sZWNlbmllICBlICBwcnplbm9zaSBkbyBrb/FjYSB3eXJhenUuCisgIDQuIE9wZXJhdG8gIHkgIHlhbmt1amUgKGtvcGl1amUpIHRla3N0LCAgcCAgcGFrdWplICh3a2xlamEsIHBhc3RlKSBnby4KKyAgNS4gV3Bpc2FuaWUgd2llbGtpZWdvICBSICB3cHJvd2FkemEgdyB0cnliIFJlcGxhY2UgKHphbWlhbmEpIGRvcPNraQogICAgICBuaWUgem9zdGFuaWUgd2Nptm5p6nR5IDxFU0M+LgotCi0gIDQuIFdwaXNhbmllICI6c2V0IHh4eCIgdXN0YXdpYSBvcGNq6iAieHh4Ii4KLQotCisgIDYuIFdwaXNhbmllICI6c2V0IHh4eCIgdXN0YXdpYSBvcGNq6iAieHh4Ii4gTmlldGvzcmUgb3BjamU6CisJJ2ljJyAnaWdub3JlY2FzZScJaWdub3J1aiB3aWVsa2+25iB6bmFr83cKKwknaXMnICdpbmNzZWFyY2gnCXBva2G/IGN66rZjaW93ZSBkb3Bhc293YW5pYQorCSdobHMnICdobHNlYXJjaCcJcG9ktndpZXRsIHdzenlzdGtpZSBkb3Bhc293YW5pYQorICAgICBNb79lc3ogdb955iB6YXLzd25vIGSzdWdpZWogamFrIGkga3LzdGtpZWogZm9ybXkuCisgIDcuIERvZGFqICJubyIgYWJ5IHd5s7FjennmIG9wY2rqOiAgIDpzZXQgbm9pYwogCiAKIAogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICAgICAgTEVLQ0pBIDcuIFBPTEVDRU5JQSBQT01PQ1kgT04tTElORQotCisJCQlMRUtDSkEgNy4xLiBKQUsgVVpZU0tBxiBQT01PQyAKIAogCQkgICAgICAqKiBVv3ljaWUgc3lzdGVtdSBwb21vY3kgb24tbGluZSAqKgogCiAgIFZpbSBwb3NpYWRhIGJhcmR6byBkb2JyeSBzeXN0ZW0gcG9tb2N5IG9uLWxpbmUuIEJ5IHphY3qx5iBzcHLzYnVqIGplZG5lagogICB6IHRyemVjaCBtb79saXdvtmNpOgotCiAJLSB3Y2m2bmlqIGtsYXdpc3ogPEhFTFA+IChqZbZsaSB0YWtvd3kgcG9zaWFkYXN6KQogCS0gd2Nptm5paiBrbGF3aXN6IDxGMT4gKGpltmxpIHRha293eSBwb3NpYWRhc3opCiAJLSB3cGlzeiAgIDpoZWxwPEVOVEVSPgogCi0gIFdwaXN6ICAgOnE8RU5URVI+ICAgYnkgemFta26xYyBva25vIHBvbW9jeS4KKyAgUHJ6ZWN6eXRhaiB0ZWtzdCB3IG9rbmllIHBvbW9jeSAgYWJ5IGRvd2llZHppZeYgc2nqIGphayBkemlhs2EgcG9tb2MuCisgIHdwaXN6IENUUkwtVyBDVFJMLVcgICAgYWJ5IHByemVza29jennmIHogamVkbmVnbyBva25hIGRvIGlubmVnbworICB3cGlzeiA6cTxFTlRFUj4gICAgICAgIGFieSB6YW1rbrHmIG9rbm8gcG9tb2N5LgogCiAgIE1vv2VzeiB0Zb8gem5hbGW85iBwb21vYyBuYSBrYb9keSB0ZW1hdCBwb2RharFjIGFyZ3VtZW50IHBvbGVjZW5pYSAiOmhlbHAiLgogICBTcHLzYnVqIHR5Y2ggKG5pZSB6YXBvbW5paiB3Y2lzbrHmIDxFTlRFUj4pOgogCiAgIDpoZWxwIHcKLSAgOmhlbHAgY188VAorICA6aGVscCBjX0NUUkwtRAogICA6aGVscCBpbnNlcnQtaW5kZXgKICAgOmhlbHAgdXNlci1tYW51YWwKLQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgICAgTEVLQ0pBIDguIFRXT1JaRU5JRSBTS1JZUFRVIFNUQVJUT1dFR08KKwkJICAgTEVLQ0pBIDcuMi4gVFdPUlpFTklFIFNLUllQVFUgU1RBUlRPV0VHTwogCi0JCQkqKiBXs7FjemFuaWUgbW+/bGl3b7ZjaSBWaW0tYSAqKgorCQkJICoqIFezsWN6IG1vv2xpd2+2Y2kgVmltLWEgKioKIAogICBWaW0gbWEgbyB3aWVsZSB3aepjZWogbW+/bGl3b7ZjaSBuab8gVmksIGFsZSB3aeprc3pvtuYgeiBuaWNoIGplc3QgZG9tebZsbmllCiAgIHd5s7Fjem9uYS4gSmW2bGkgY2hjZXN6IHezsWN6eeYgdGUgbW+/bGl3b7ZjaSBuYSBzdGFyY2llIG11c2lzeiB1dHdvcnp55gogICBwbGlrICJ2aW1yYyIuCiAKICAgMS4gUG9jerF0ZWsgZWR5Y2ppIHBsaWt1ICJ2aW1yYyIgemFsZb95IG9kIFR3b2plZ28gc3lzdGVtdToKLSAgICAgOmVkaXQgfi8udmltcmMJICAgICBkbGEgVW5peGEKKyAgICAgOmVkaXQgfi8udmltcmMJICAgICBkbGEgVW5pa3NhCiAgICAgIDplZGl0ICRWSU0vX3ZpbXJjICAgICAgIGRsYSBNUy1XaW5kb3dzCi0KICAgMi4gVGVyYXogd2N6eXRhaiBwcnp5a7NhZG93eSBwbGlrICJ2aW1yYyI6CiAgICAgIDpyZWFkICRWSU1SVU5USU1FL3ZpbXJjX2V4YW1wbGUudmltCi0KICAgMy4gWmFwaXN6IHBsaWs6Ci0gICAgIDp3cml0ZQorICAgICA6dwogCiAgIE5hc3TqcG55bSByYXplbSBnZHkgemFjem5pZXN6IHByYWPqIHcgVmltaWUgYupkemllIG9uIHW/eXdh5iBwb2S2d2lldGxhbmlhCiAgIHNrs2FkbmkuIE1vv2VzeiBkb2Rh5iB3c3p5c3RraWUgc3dvamUgdWx1YmlvbmUgdXN0YXdpZW5pYSBkbyB0ZWdvIHBsaWt1CiAgICJ2aW1yYyIuCisgIEFieSB1enlza2HmIHdp6mNlaiBpbmZvcm1hY2ppIHdwaXN6ICAgICA6aGVscCB2aW1yYy1pbnRybworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgTGVrY2phIDcuMy46IFVaVVBFo05JQU5JRQorCisKKwkgICAgICAqKiBVenVwZbNuaWFuaWUgbGluaWkgcG9sZWNl8SB6IENUUkwtRCBpIDxUQUI+ICoqCisKKyAgMS4gVXBld25paiBzaeosIL9lIFZpbSBuaWUgamVzdCB3IHRyeWJpZSBrb21wYXR5Ymlsbm+2Y2k6ICAgOnNldCBub2NwCisKKyAgMi4gWmVya25paiBqYWtpZSBwbGlraSBzsSB3IGJpZb+xY20ga2F0YWxvZ3U6ICAgOiFscyAgIGx1YiAgIDohZGlyCisKKyAgMy4gV3Bpc3ogcG9jerF0ZWsgcG9sZWNlbmlhOiAgIDplCisKKyAgNC4gV2Nptm5paiAgQ1RSTC1EICBpIFZpbSBwb2thv2UgbGlzdOogcG9sZWNl8SBqYWtpZSB6YWN6eW5harEgc2nqIG5hICJlIi4KKworICA1LiBXY2m2bmlqICA8VEFCPiAgaSBWaW0gdXp1cGWzbmkgcG9sZWNlbmllIGRvICI6ZWRpdCIuCisKKyAgNi4gRG9kYWogc3BhY2rqIGkgemFjem5paiB3cGlzeXdh5iBuYXp36iBpc3RuaWVqsWNlZ28gcGxpa3U6ICAgOmVkaXQgRklMCisKKyAgNy4gV2Nptm5paiA8VEFCPi4gVmltIHV6dXBls25pIG5henfqIChqZbZsaSBqZXN0IG5pZXBvd3RhcnphbG5hKS4KKworVVdBR0E6IFV6dXBls25pYW5pZSBkemlhs2EgZGxhIHdpZWx1IHBvbGVjZfEuIFNwcvNidWogd2Npc26x5iBDVFJMLUQgaSA8VEFCPi4KKyAgICAgICBVv3l0ZWN6bmUgenezYXN6Y3phIHByenkgIDpoZWxwIC4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgIExla2NqYSA3LiBQT0RTVU1PV0FOSUUKKworCisgIDEuIFdwaXN6ICA6aGVscCAgbHViIHdjabZuaWogPEYxPiBsdWIgPEhlbHA+IGFieSBvdHdvcnp55iBva25vIHBvbW9jeS4KKworICAyLiBXcGlzeiAgOmhlbHAgY21kICBhYnkgdXp5c2th5iBwb21vYyBvICBjbWQgLgorCisgIDMuIFdwaXN6ICBDVFJMLVcgQ1RSTC1XICBhYnkgcHJ6ZXNrb2N6eeYgZG8gaW5uZWdvIG9rbmEuCisKKyAgNC4gV3Bpc3ogIDpxICBhYnkgemFta26x5iBva25vIHBvbW9jeS4KKworICA1LiBVdHfzcnogcGxpayBzdGFydG93eSB2aW1yYyBhYnkgemFjaG93YeYgd3licmFuZSB1c3Rhd2llbmlhLgorCisgIDYuIFBvIHBvbGVjZW5pdSAgOiAsIHdjabZuaWogQ1RSTC1EIGFieSB6b2JhY3p55iBtb79saXdlIHV6dXBls25pZW5pYS4KKyAgICAgV2Nptm5paiA8VEFCPiBhYnkgdb955iBqZWRuZWdvIHogbmljaC4KKworCisKKworCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCkBAIC04MjYsNSArOTg3LDUgQEAKICAgUHJ6ZXSzdW1hY3pvbmUgcHJ6ZXogTWlrb7NhamEgTWFjaG93c2tpZWdvLAogICBTaWVycGll8SAyMDAxLAogICByZXYuIE1hcnplYyAyMDAyCisgIDJuZCByZXYuIFdyemVzaWXxIDIwMDQKICAgV3N6ZWxraWUgdXdhZ2kgcHJvc3rqIGtpZXJvd2HmIG5hOiBtaWttYWNoQHdwLnBsCi0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwuY3AxMjUwIGIvcnVudGltZS90dXRvci90dXRvci5wbC5jcDEyNTAKaW5kZXggZGM0MmM5Yy4uY2MyYTZjYyAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5wbC5jcDEyNTAKKysrIGIvcnVudGltZS90dXRvci90dXRvci5wbC5jcDEyNTAKQEAgLTEsNSArMSw1IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci09ICAgIFcgaSB0IGEgagkgdyAgIHQgdSB0IG8gciBpIGEgbCB1CSBWIEkgTSAtIGEJLSAgICBXZXJzamEgIDEuNS4gICAgID0KKz0gICAgVyBpIHQgYSBqICAgdyAgIHQgdSB0IG8gciBpIGEgbCB1ICAgViBJIE0gLSBhICAgICAgLSAgICBXZXJzamEgIDEuNy4gICAgID0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogICAgICBWaW0gdG8gcG906r9ueSBlZHl0b3IsIGt083J5IHBvc2lhZGEgd2llbGUgcG9sZWNl8SwgemJ5dCBkdb9vIGJ5CkBAIC04LDIxICs4LDIzIEBACiAgICAgIHW/eXdh5iBWaW0tYSBqYWtvIGVkeXRvcmEgb2fzbG5lZ28gcHJ6ZXpuYWN6ZW5pYS4KIAogICAgICBDemFzIHBvdHJ6ZWJueSBuYSB1a2/xY3plbmllIHR1dG9yaWFsYSB0byAyNSBkbyAzMCBtaW51dCBpIHphbGW/eQotICAgICBvZCB0ZWdvIGphayB3aWVsZSBjemFzdSBzcOpkemlzeiBuYSBla3NwZXJ5bWVudG93YW5pdS4gIFBvbGVjZW5pYQotICAgICB3eWtvbnl3YW5lIHcgY3phc2llIGxla2NqaSB6bW9keWZpa3VquSB0ZWtzdC4gWnLzYiB3Y3plnG5pZWoga29waeoKLSAgICAgdGVnbyBwbGlrdSBkbyDmd2ljemXxIChqZZxsaSB6YWN6ubNlnCBrb21lbmS5ICJ2aW10dXRvciIgdG8ganW/Ci0gICAgIHByYWN1amVzeiBuYSBrb3BpaSkuCisgICAgIG9kIHRlZ28gamFrIHdpZWxlIGN6YXN1IHNw6mR6aXN6IG5hIGVrc3BlcnltZW50b3dhbml1LiAgCisJIAorCSBVV0FHQToKKwkgUG9sZWNlbmlhIHd5a29ueXdhbmUgdyBjemFzaWUgbGVrY2ppIHptb2R5ZmlrdWq5IHRla3N0LiBacvNiCisJIHdjemWcbmllaiBrb3Bp6iB0ZWdvIHBsaWt1IGRvIOZ3aWN6ZfEgKGplnGxpIHphY3q5s2WcIGtvbWVuZLkKKwkgInZpbXR1dG9yIiB0byBqdb8gcHJhY3VqZXN6IG5hIGtvcGlpKS4KIAogICAgICBXYb9uZSBqZXN0LCBieZwgcGFtaep0YbMsIL9lIHByemV3b2RuaWsgdGVuIHpvc3RhsyB6YXByb2pla3Rvd2FueSBkbwogICAgICBuYXVraSBwb3ByemV6IOZ3aWN6ZW5pYS4gVG8gb3puYWN6YSwgv2UgbXVzaXN6IHd5a29ueXdh5iBwb2xlY2VuaWEKICAgICAgYnkgbmF1Y3p55iBzaeogaWNoIHByYXdpZLNvd28uIEplnGxpIGLqZHppZXN6IGplZHluaWUgY3p5dGGzIHRla3N0CiAgICAgIHN6eWJrbyB6YXBvbW5pc3ogd2llbGUgcG9sZWNl8SEKIAotICAgICBUZXJheiB1cGV3bmlqIHNp6iwgv2UgbmllIG1hc3ogd2NpnG5p6nRlZ28gQ2Fwc0xvY2thIGkgd2Npc2thaglqCisgICAgIFRlcmF6IHVwZXduaWogc2nqLCC/ZSBuaWUgbWFzeiB3Y2mcbmnqdGVnbyBDYXBzTG9ja2EgaSB3Y2lza2FqICBqCiAgICAgIHRhayBks3VnbyBkb3Dza2kgTGVrY2phIDEuMS4gbmllIHd5cGWzbmkgY2Gza293aWNpZSBla3JhbnUuCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICAgICBMZWtjamEgMS4xLjogUE9SVVNaQU5JRSBTScogS1VSU09SRU0KKwkJICBMZWtjamEgMS4xLjogUE9SVVNaQU5JRSBTScogS1VSU09SRU0KIAogICAgICAgICoqIEJ5IHd5a29uYeYgcnVjaCBrdXJzb3JlbSwgd2NpnG5paiBoLCBqLCBrLCBsIGphayBwb2themFuby4gKioKIApAQCAtMzQsNyArMzYsNyBAQAogICAxLiBQb3J1c3phaiBrdXJzb3JlbSBkb3Dza2kgbmllIGLqZHppZXN6IHBld2llbiwgv2UgcGFtaep0YXN6IHBvbGVjZW5pYS4KIAogICAyLiBUcnp5bWFqICBqICB0YWsgZLN1Z28gYb8gYupkemllIHNp6iBwb3d0YXJ6YbMuCi0tLS0+IFRlcmF6IHdpZXN6IGphayBkb2qc5iBkbyBuYXN06nBuZWogbGVrY2ppLgorICAgICBUZXJheiB3aWVzeiBqYWsgZG9qnOYgZG8gbmFzdOpwbmVqIGxla2NqaS4KIAogICAzLiBVv3l3YWq5YyBzdHJ6YbNraSB3IGTzsyBwcnplamSfIGRvIG5hc3TqcG5laiBsZWtjamkuCiAKQEAgLTQzLDM1ICs0NSwzNSBAQAogCiBVd2FnYTogS2xhd2lzemUga3Vyc29yYSB0YWu/ZSBwb3dpbm55IGR6aWGzYeYsIGFsZSB1v3l3YWq5YyAgaGprbCAgYupkemllc3oKICAgICAgICB3IHN0YW5pZSBwb3J1c3ph5iBzaeogbyB3aWVsZSBzenliY2llaiBqYWsgc2nqIHR5bGtvIHByenl6d3ljemFpc3ouCisJICAgTmFwcmF3ZOohCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgTGVrY2phIDEuMi46IFdDSE9EWkVOSUUgSSBXWUNIT0RaRU5JRSBaIFZJTS1hCisJCSAgICBMZWtjamEgMS4yLjogV1lDSE9EWkVOSUUgWiBWSU0tYQogCiAgISEgVVdBR0E6IFByemVkIHd5a29uYW5pZW0gamFraWVnb2tvbHdpZWsgcG9sZWNlbmlhIHByemVjenl0YWogY2GzuSBsZWtjauouISEKIAogICAxLiBXY2mcbmlqIDxFU0M+IChhYnkgdXBld25p5iBzaeosIL9lIGplc3RlnCB3IHRyeWJpZSBOb3JtYWwpLgogICAyLiBXcGlzejoJCQk6cSE8RU5URVI+LgotCi0tLS0+IFRvIHNwb3dvZHVqZSB3eWqcY2llIHogZWR5dG9yYSBCRVogemFwYW1p6nR5d2FuaWEgem1pYW4gamFraWUKKyAgICAgVG8gc3Bvd29kdWplIHd5apxjaWUgeiBlZHl0b3JhIFBPUlpVQ0FKpUMgd3N6ZWxraWUgem1pYW55IGpha2llCiAgICAgIHpkub95s2WcIHpyb2Jp5i4gSmWcbGkgY2hjZXN6IHphcGFtaep0YeYgem1pYW55IGkgd3lqnOYKICAgICAgd3Bpc3o6CQkJOndxPEVOVEVSPgogCiAgIDMuIEtpZWR5IHdpZHppc3ogem5hayB6YWNo6nR5IHBvd7Nva2kgd3Bpc3oga29tZW5k6iwgv2VieSB3cvNjaeYKLSAgICAgZG8gdHV0b3JpYWxhLgotICAgICBQb3dpbmllbmllnCB3cGlzYeY6CSAgIHZpbXR1dG9yPEVOVEVSPgotICAgICBOb3JtYWxuaWUgdb95s2J5nDoJICAgdmltIHR1dG9yPEVOVEVSPgotCi0tLS0+ICd2aW0nIG96bmFjemEgZWR5dG9yIHZpbSwgJ3R1dG9yJyBqZXN0IHBsaWtlbSwga3TzcnkgY2hjaWGzYnmcCi0gICAgIGVkeXRvd2HmLgorICAgICBkbyB0dXRvcmlhbGEuIEN6eWxpOgl2aW10dXRvcjxFTlRFUj4KIAogICA0LiBKZZxsaSBjaGNlc3ogemFwYW1p6nRh5iBwb2xlY2VuaWEsIHd5a29uYWoga3Jva2kgMS4gZG8gMy4gYWJ5Ci0gICAgIHd5apzmIGkgd3LzY2nmIGRvIGVkeXRvcmEuIFBvdGVtIHByemVuaWWcIHNp6iBkbyBMZWtjamkgMS4zLgorICAgICB3eWqc5iBpIHdy82Np5iBkbyBlZHl0b3JhLgorCitVV0FHQTogOnEhPEVOVEVSPiBwb3J6dWNhIHdzemVsa2llIHptaWFueSBqYWtpZSB6cm9iabNlnC4gVyBuYXN06nBueWNoCitsZWtjamFjaCBkb3dpZXN6IHNp6iBqYWsgamUgemFwYW1p6nR5d2HmLgorCisgIDUuIFByemVuaWWcIGt1cnNvciBkbyBsZWtjamkgMS4zLgorCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICAgIExla2NqYSAxLjMuOiBFRFlDSkEgVEVLU1RVIC0gS0FTT1dBTklFCisJCSBMZWtjamEgMS4zLjogRURZQ0pBIFRFS1NUVSAtIEtBU09XQU5JRQogCi0KLQkqKiBXIHRyeWJpZSBOb3JtYWwgd2NpnG5paiB4IGFieSB1c3VuueYgem5hayBwb2Qga3Vyc29yZW0uICoqCisJICAgICoqIFdjaZxuaWogIHggIGFieSB1c3VuueYgem5hayBwb2Qga3Vyc29yZW0uICoqCiAKICAgMS4gUHJ6ZW5pZZwga3Vyc29yIGRvIGxpbmlpIHBvbmm/ZWogb3puYWN6b25laiAtLS0+LgogCkBAIC05MCwxMSArOTIsMTIgQEAKIAogCiAKKwogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JICAgICAgIExla2NqYSAxLjQuOiBFRFlDSkEgVEVLU1RVIC0gSU5TRVJUICh3cHJvd2FkemFuaWUpCisJICAgTGVrY2phIDEuNC46IEVEWUNKQSBURUtTVFUgLSBJTlNFUlQgKHdwcm93YWR6YW5pZSkKIAogCi0JICAgICoqIFcgdHJ5YmllIE5vcm1hbCB3Y2mcbmlqICBpICBhYnkgd3N0YXdp5iB0ZWtzdC4gKioKKwkJICAqKiBXY2mcbmlqICBpICBhYnkgd3N0YXdp5iB0ZWtzdC4gKioKIAogICAxLiBQcnplbmllnCBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIHBvbmm/ZWogb3puYWN6b25laiAtLS0+LgogCkBAIC0xMTQsMzUgKzExNyw4MSBAQAogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCSAgIExla2NqYSAxLjUuOiBFRFlDSkEgVEVLU1RVIC0gQVBQRU5ESU5HIChkb2Rhd2FuaWUpCisKKworCQkgICAqKiBXY2mcbmlqICBBICBieSBkb2Rh5iB0ZWtzdC4gKioKKworICAxLiBQcnplbmllnCBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIHBvbmm/ZWogb3puYWN6b25laiAtLS0+LgorICAgICBOaWUgbWEgem5hY3plbmlhLCBrdPNyeSB0byBi6mR6aWUgem5hay4KKworICAyLiBXY2mcbmlqICBBICBpIHdwaXN6IG9kcG93aWVkbmllIGRvZGF0a2kuCisKKyAgMy4gS2llZHkgdGVrc3Qgem9zdGGzIGRvZGFueSwgd2NpnG5paiA8RVNDPiBpIHdy8+YgZG8gdHJ5YnUgTm9ybWFsbmVnby4KKworICA0LiBQcnplbmllnCBrdXJzb3IgZG8gZHJ1Z2llaiBsaW5paSBvem5hY3pvbmVqIC0tLT4gaSBwb3d083J6IGtyb2tpIDIgaSAzCisgICAgIGFieSBwb3ByYXdp5iB6ZGFuaWUuCisKKy0tLT4gQnJha3VqZSB0dSB0cm8KKyAgICAgQnJha3VqZSB0dSB0cm9jaOogdGVrc3R1LgorLS0tPiBUdSB0Zb8gdHJvY2jqIGJyYQorICAgICBUdSB0Zb8gdHJvY2jqIGJyYWt1amUuCisKKyAgNS4gS2llZHkganW/IHV0cndhbGmzZZwg5ndpY3plbmllIHByemVqZJ8gZG8gbGVrY2ppIDEuNi4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgIExla2NqYSAxLjYuOiBFRFlDSkEgUExJS1UKKworCisJCSAgKiogVb95aiAgOndxICBhYnkgemFwaXNh5iBwbGlrIGkgd3lqnOYuICoqCisKKyAgICEhIFVXQUdBOiB6YW5pbSB3eWtvbmFzeiBqYWtpZWtvbHdpZWsgcG9sZWNlbmlhIHByemVjenlhaiBjYbO5IGxla2Nq6iAhIQorCisgIDEuIFpha2/xY3ogdHV0b3JpYWwgdGFrIGphayB3IGxla2NqaSAxLjIuOiAgOnEhCisKKyAgMi4gVyBwb3ezb2NlIHd5ZGFqIHBvbGVjZW5pZTogIHZpbSB0dXRvcjxFTlRFUj4KKyAgICAgInZpbSIgamVzdCBwb2xlY2VuaWVtIHVydWNoYW1pYWq5Y3ltIGVkeXRvciBWaW1tLiAndHV0b3InIHRvIG5hendhIHBsaWt1CisgICAgIGpha2kgY2hjZXN6IGVkeXRvd2HmLiBVv3lqIHBsaWt1IGpha2kgbW+/ZSB6b3N0YeYgem1pZW5pb255LgorCisgIDMuIERvZGFqIGkgdXN18SB0ZWtzdCB0YWsgamFrIHNp6iBuYXVjenmzZZwgdyBwb3ByemVkbmljaCBsZWtjamFjaC4KKworICA0LiBaYXBpc3ogcGxpayB6ZSB6bWlhbmFtaSB3IG9wdZzmIFZpbWE6ICA6d3E8RU5URVI+CisKKyAgNS4gVXJ1Y2hvbSBwb25vd25pZSB2aW10dXRvciBpIHByemVqZJ8gZG8gcG9kc3Vtb3dhbmlhIGxla2NqaS4KKworICA2LiBQbyBwcnplY3p5dGFuaXUgd3N6eXN0a2ljaCBrcm9r83cgaSB6cm96dW1pZW5pdSBpY2g6IHd5a29uYWogamUuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgICAgIExFS0NKQSAxLiBQT0RTVU1PV0FOSUUKIAotICAxLiBQb3J1c3phc3oga3Vyc29yZW0gdb95d2FquWMgInN0cnphs2VrIiBpIGtsYXdpc3p5CWhqa2wgLgorICAxLiBQb3J1c3phc3oga3Vyc29yZW0gdb95d2FquWMgInN0cnphs2VrIiBpIGtsYXdpc3p5ICBoamtsIC4KICAgICAgICBoICh3IGxld28pCSBqICh3IGTzsykJIGsgKGRvIGfzcnkpCQlsICh3IHByYXdvKQogCi0gIDIuIEJ5IHdlapzmIGRvIFZpbS1hIChvZCB6bmFrdSB6YWNo6nR5KSB3cGlzejoKKyAgMi4gQnkgd2VqnOYgZG8gVmltLWEgKHogcG93s29raSkgd3Bpc3o6CiAJCQkgICAgdmltIE5BWldBX1BMSUtVPEVOVEVSPgogCiAgIDMuIEJ5IHd5apzmIHogVmltLWEgd3Bpc3o6CiAJCQkgICAgPEVTQz4gOnEhPEVOVEVSPiAgYnkgdXN1brljIHdzenlzdGtpZSB6bWlhbnkuCiAJICAgICBMVUI6CSAgICA8RVNDPiA6d3E8RU5URVI+ICBieSB6bWlhbnkgemFjaG93YeYuCiAKLSAgNC4gQnkgdXN1brnmIHpuYWsgcG9kIGt1cnNvcmVtIHcgdHJ5YmllIE5vcm1hbDogIHgKKyAgNC4gQnkgdXN1brnmIHpuYWsgcG9kIGt1cnNvcmVtIHdjaZxuaWo6ICB4CiAKLSAgNS4gQnkgd3N0YXdp5iB0ZWtzdCBwcnplZCBrdXJzb3JlbSB3IHRyeWJpZSBOb3JtYWw6Ci0JCQkgICAgaQkgIHR5cGUgaW4gdGV4dAkgICAgICA8RVNDPgorICA1LiBCeSB3c3Rhd2nmIHRla3N0IHByemVkIGt1cnNvcmVtIGx1YiBkb2Rh5joKKwlpICAgICAgICAgd3Bpc3ogdGVrc3QgICAgICA8RVNDPiB3c3Rhd2kgcHJ6ZWQga3Vyc29yZW0KKwlBICAgICAgICAgd3Bpc3ogdGVrc3QgICAgICA8RVNDPiBkb2RhIG5hIGtv8WN1IGxpbmlpCiAKIFVXQUdBOiBXY2mcbmnqY2llIDxFU0M+IHByemVuaWVzaWUgQ2nqIHogcG93cm90ZW0gZG8gdHJ5YnUgTm9ybWFsCiBsdWIgb2R3b7NhIG5pZWNoY2lhbmUgbHViIGN66pxjaW93byB3cHJvd2Fkem9uZSBwb2xlY2VuaWEuCiAKIFRlcmF6IG1vv2VteSBrb250eW51b3dh5iBpIHByemVqnOYgZG8gTGVrY2ppIDIuCi0KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICAgTGVrY2phIDIuMS46IFBPTEVDRU5JRSBERUxFVEUgKHVzdXdhbmllKQorCQkgIExla2NqYSAyLjEuOiBQT0xFQ0VOSUUgREVMRVRFICh1c3V3YW5pZSkKIAogCi0JICAgICAgICoqIFdwaXN6ICBkdyAgYnkgdXN1brljIHRla3N0IGRvIGtv8WNhIHd5cmF6dS4gKioKKwkJICAgICAgKiogV3Bpc3ogIGR3ICBieSB1c3VuuWMgd3lyYXouICoqCiAKLSAgMS4gV2NpnG5paiAgPEVTQz4JYnkgdXBld25p5iBzaeosIL9lIGplc3RlnCB3IHRyeWJpZSBOb3JtYWwuCisgIDEuIFdjaZxuaWogIDxFU0M+ICBieSB1cGV3bmnmIHNp6iwgv2UgamVzdGWcIHcgdHJ5YmllIE5vcm1hbC4KIAogICAyLiBQcnplbmllnCBrdXJzb3IgZG8gbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4uCiAKQEAgLTE1MCw5ICsxOTksOSBAQAogCiAgIDQuIFdwaXN6ICAgZHcgICBieSB1c3VuuWMgd3lyYXouCiAKLSAgVVdBR0E6IExpdGVyeSAgZHcgIGLqZLkgc2nqIHBvamF3aWHmIG5hIGRvbGUgZWtyYW51IHcgbWlhcuoKLQkgd3Bpc3l3YW5pYS4gIEplnGxpIHdwaXNhs2WcIGNvnCCfbGUgd2NpnG5paiA8RVNDPiBpIHphY3puaWogb2QKLQkgcG9jerl0a3UuCisgIFVXQUdBOiBMaXRlcmEgIGQgIHBvamF3aSBzaeogbmEgZG9sZSBla3JhbnUuIFZpbSBjemVrYSBuYSB3cGlzYW5pZSAgdyAuIAorCSBKZZxsaSB6b2JhY3p5c3ogaW5ueSB6bmFrIHdwaXNhs2WcIGNvnCCfbGUsIHdjaZxuaWogPEVTQz4gaSB6YWN6bmlqCisJIG9kIHBvY3q5dGt1LgogCiAtLS0+IEplc3QgdHUgcGFy6iBwYXBpZXIgd3lyYXrzdywga3TzcmUga2FtaWXxIG5pZSBuYWxlv7kgZG8gbm+/eWNlIHRlZ28gemRhbmlhLgogCkBAIC0xNjMsMTUgKzIxMiwxNSBAQAogCQkgICAgTGVrY2phIDIuMi46IFdJykNFSiBQT0xFQ0XRIFVTVVdBSqVDWUNICiAKIAotCSAgICAgICAqKiBXcGlzeiAgZCQgIGFieSB1c3VuueYgdGVrc3QgZG8ga2/xY2EgbGluaWkuICoqCisJICAgICAgKiogV3Bpc3oJZCQgIGFieSB1c3VuueYgdGVrc3QgZG8ga2/xY2EgbGluaWkuICoqCiAKLSAgMS4gV2NpnG5paiAgPEVTQz4JYWJ5IHNp6iB1cGV3bmnmLCC/ZSBqZXN0ZZwgdyB0cnliaWUgTm9ybWFsLgorICAxLiBXY2mcbmlqICA8RVNDPiAgYWJ5IHNp6iB1cGV3bmnmLCC/ZSBqZXN0ZZwgdyB0cnliaWUgTm9ybWFsLgogCiAgIDIuIFByemVuaWWcIGt1cnNvciBkbyBsaW5paSBwb25pv2VqIG96bmFjem9uZWogLS0tPi4KIAogICAzLiBQcnplbmllnCBrdXJzb3IgZG8ga2/xY2EgcG9wcmF3bmVnbyB6ZGFuaWEgKFBPIHBpZXJ3c3plaiAgLiApLgogCi0gIDQuIFdwaXN6ICBkJAlhYnkgdXN1brnmIHJlc3p06iBsaW5paS4KKyAgNC4gV3Bpc3ogIGQkICBhYnkgdXN1brnmIHJlc3p06iBsaW5paS4KIAogLS0tPiBLdG+cIHdwaXNhsyBrb25pZWMgdGVnbyB6ZGFuaWEgZHd1a3JvdG5pZS4gemRhbmlhIGR3dWtyb3RuaWUuCiAKQEAgLTE4Myw1MyArMjMyLDk5IEBACiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgICAgTGVrY2phIDIuMy46IE8gUE9MRUNFTklBQ0ggSSBPQklFS1RBQ0gKKwkJICAgICBMZWtjamEgMi4zLjogTyBPUEVSQVRPUkFDSCBJIFJVQ0hBQ0gKIAogCi0gIEZvcm1hdCBkbGEgcG9sZWNlbmlhIHVzdXdharljZWdvICBkICBqZXN0IHRha2k6CisgIFdpZWxlIHBvbGVjZfEgem1pZW5pYWq5Y3ljaCB0ZWtzdCBzuSB6s2+/b25lIHogb3BlcmF0b3JhIGkgcnVjaHUuCisgIEZvcm1hdCBkbGEgcG9sZWNlbmlhIHVzdXdharljZWdvIHogb3BlcmF0b3JlbSAgZCAgamVzdCB0YWtpOgogCi0JICAgIFtsaWN6YmFdICBkICBvYmlla3QgICAgICBMVUIgICAgICBkICBbbGljemJhXSAgb2JpZWt0CisJICAgIGQgIHJ1Y2gKIAogICBHZHppZToKLSAgIGxpY3piYSAtIGlsZSByYXp5IHBvbGVjZW5pZSBtYSBieeYgd3lrb25hbmUgKG9wY2pvbmFsbmUsIGRvbXmcbG5hPTEpLgotICAgZAkgIC0gcG9sZWNlbmllIHVzdXdharljZS4KLSAgIG9iaWVrdCAtIG5hIGN6eW0gcG9sZWNlbmllIGLqZHppZSB3eWtvbnl3YW5lIChsaXN0YSBwb25pv2VqKS4KKyAgIGQgICAgICAtIG9wZXJhdG9yIHVzdXdhbmlhLgorICAgcnVjaCAgIC0gbmEgY3p5bSBwb2xlY2VuaWUgYupkemllIHd5a29ueXdhbmUgKGxpc3RhIHBvbmm/ZWopLgogCi0gIEty83RrYSBsaXN0YSBvYmlla3TzdzoKLSAgICB3IC0gb2Qga3Vyc29yYSBkbyBrb/FjYSB3eXJhenUgd7O5Y3pharljIHNwYWNq6i4KLSAgICBlIC0gb2Qga3Vyc29yYSBkbyBrb/FjYSB3eXJhenUgTklFIHezuWN6YWq5YyBzcGFjamkuCi0gICAgJCAtIG9kIGt1cnNvcmEgZG8ga2/xY2EgbGluaWkuCisgIEty83RrYSBsaXN0YSBydWNo83c6CisgICAgdyAtIGRvIHBvY3q5dGt1IG5hc3TqcG5lZ28gd3lyYXp1IFdZo6VDWkFKpUMgcGllcndzenkgem5hay4KKyAgICBlIC0gZG8ga2/xY2EgYmllv7ljZWdvIHd5cmF6dSwgV6OlQ1pBSqVDIG9zdGF0bmkgem5hay4KKyAgICAkIC0gZG8ga2/xY2EgbGluaWksIFejpUNaQUqlQyBvc3RhdG5pIHpuYWsuCiAKLVVXQUdBOiBEbGEgY2lla2F3c2tpY2gsIHd5YmllcmFuaWUgb2JpZWt0dSB3IHRyeWJpZSBOb3JtYWwgYmV6IHBvbGVjYW5pYQotICAgICAgIHBvbGVjZW5pYSBwcnplbmllc2llIGt1cnNvciB0YWsgamFrIG9waXNhbm8gdyBsaZxjaWUgb2JpZWt083cuCitXIHRlbiBzcG9z82Igd3Bpc2FuaWUgIGRlICB1c3VuaWUgem5ha2kgb2Qga3Vyc29yYSBkbyBrb/FjYSB3eXJhenUuCisKK1VXQUdBOiBXcGlzYW5pZSB0eWxrbyBydWNodSB3IHRyeWJpZSBOb3JtYWwgYmV6IG9wZXJhdG9yYSBwcnplbmllc2llIGt1cnNvcgorICAgICAgIHRhayBqYWsgdG8gb2tyZZxsb25vLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgIExla2NqYSAyLjQuOiBVr1lDSUUgTU5Pr05JS0EgRExBIFJVQ0hVCisKKworICAgKiogV3Bpc2FuaWUgbGljemJ5IHByemVkIHJ1Y2hlbSBwb3d0YXJ6YSBydWNoIG9kcG93aWVkbmm5IGlsb5zmIHJhenkuICoqCisKKyAgMS4gUHJ6ZW5pZZwga3Vyc29yIG5hIHBvY3q5dGVrIGxpbmlpIHBvbmm/ZWogemF6bmFjem9uZWogLS0tPi4KKworICAyLiBXcGlzeiAgMncgIGFieSBwcnplbmllnOYga3Vyc29yIG8gZHdhIHd5cmF6eSBkbyBwcnpvZHUuCisKKyAgMy4gV3Bpc3ogIDNlICBhYnkgcHJ6ZW5pZZzmIGt1cnNvciBkbyBrb/FjYSB0cnplY2llZ28gd3lyYXp1IHcgcHJ682QuCisKKyAgNC4gV3Bpc3ogIDAgICh6ZXJvKSBhYnkgcHJ6ZW5pZZzmIGt1cnNvciBkbyBwb2N6uXRrdSBsaW5paS4KKworICA1LiBQb3d083J6IGtyb2tpIDIuIGkgMy4geiBpbm55bWkgbGljemJhbWkuCisKKworIC0tLT4gVG8gamVzdCB6d3lrs3kgd2llcnN6IHogd3lyYXphbWkgcG8ga3TzcnljaCBtb79lc3ogc2nqIHBvcnVzemHmLgorCisgIDYuIFByemVqZJ8gZG8gbGVrY2ppIDIuNS4KIAogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICBMZWtjamEgMi40LjogV1lKpVRFSyBETyAnUE9MRUNFTklFLU9CSUVLVCcKKwkJTGVrY2phIDIuNS46IFWvWUNJRSBNTk+vTklLQSBCWSBXScpDRUogVVNVTqXGCiAKIAotCQkgICAgKiogV3Bpc3ogIGRkICAgYnkgdXN1brljIGNhs7kgbGluaeouICoqCisgICAgKiogV3Bpc2FuaWUgbGljemJ5IHogb3BlcmF0b3JlbSBwb3d0YXJ6YSBnbyBvZHBvd2llZG5puSBpbG+c5iByYXp5LiAqKgogCi0gIFogcG93b2R1IGN66nN0b5xjaSB1c3V3YW5pYSBjYbN5Y2ggbGluaWksIHByb2pla3RhbmNpIFZpbS1hIHpkZWN5ZG93YWxpLCC/ZQotICBi6mR6aWUgs2F0d2llaiB3cGlzYeYgZHdhIHJhenkgcG9kIHJ6uWQgZCBhYnkgdXN1brnmIGxpbmnqLgorICBXIHd5v2VqIHdzcG9tbmlhbmVqIGtvbWJpbmFjamkgb3BlcmF0b3JhIHVzdXdhbmlhIGkgcnVjaHUgcG9kYWogbW5vv25paworICBwcnplZCBydWNoZW0gYnkgd2nqY2VqIHVzdW655joKKwlkICBsaWN6YmEgIHJ1Y2gKKworICAxLiBQcnplbmllnCBrdXJzb3IgZG8gcGllcndzemVnbyB3eXJhenUgS0FQSVRBTElLQU1JIHcgbGluaWkgemF6bmFjem9uZWogLS0tPi4KKworICAyLiBXcGlzeiAgMmR3ICBhYnkgdXN1brnmIGR3YSB3eXJhenkgS0FQSVRBTElLQU1JLgorCisgIDMuIFBvd3RhcnphaiBrcm9raSAxLiBpIDIuIHogaW5ueW1pIG1ub79uaWthbWkgYWJ5IHVzdW655iBrb2xlam5lIHd5cmF6eQorICAgICBLQVBJVEFMSUtBTUkgamVkbnltIHBvbGVjZW5pZW0KKworLS0tPiB0YSBBU0QgV0UgbGluaWEgUVdFIEFTREYgWlhDViBGRyB3eXJhevN3IHpvc3Rhs2EgRVJUIEZHSCBDRiBvY3p5c3pjem9uYS4KKworVVdBR0E6ICBNbm+/bmlrIHBvbWnqZHp5IG9wZXJhdG9yZW0gIGQgIGkgcnVjaGVtIGR6aWGzYSBwb2RvYm5pZSBkbyBydWNodSBiZXoKKyAgICAgICAgb3BlcmF0b3JhLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICBMZWtjamEgMi42LjogT1BFUk9XQU5JRSBOQSBMSU5JQUNICisKKworCQkgICAqKiBXcGlzeiAgZGQgIGFieSB1c3VuueYgY2GzuSBsaW5p6i4gKioKKworICBaIHBvd29kdSBjeupzdG+cY2kgdXN1d2FuaWEgY2GzeWNoIGxpbmlpLCBwcm9qZWt0YW5jaSBWSSB6ZGVjeWRvd2FsaSwgv2UKKyAgYupkemllILNhdHdpZWogd3Bpc2HmIGR3YSByYXp5ICBkICBhYnkgdXN1brnmIGxpbmnqLgogCiAgIDEuIFByemVuaWWcIGt1cnNvciBkbyB6ZGFuaWEgcG9uab9lai4KLSAgMi4gV3Bpc3ogIGRkCWFieSB1c3VuuWMgd2llcnN6LgorICAyLiBXcGlzeiAgZGQgIGFieSB1c3VuuWMgd2llcnN6LgogICAzLiBUZXJheiBwcnplbmllnCBzaeogZG8gY3p3YXJ0ZWdvIHdpZXJzemEuCi0gIDQuIFdwaXN6ICAyZGQgIChwYW1p6nRhaiAgbGljemJhLXBvbGVjZW5pZS1vYmlla3QpIGFieSB1c3VuuWMgZHdpYSB3aWVyc3plLgorICA0LiBXcGlzeiAgMmRkICBhYnkgdXN1brljIGR3aWEgd2llcnN6ZS4KIAotICAgICAgMSkgIFLzv2Ugc7kgY3plcndvbmUsCi0gICAgICAyKSAgQrNvdG8gamVzdCBmYWpuZSwKLSAgICAgIDMpICBGaW+za2kgc7kgbmllYmllc2tpZSwKLSAgICAgIDQpICBNYW0gc2Ftb2No82QsCi0gICAgICA1KSAgWmVnYXIgcG9kYWplIGN6YXMsCi0gICAgICA2KSAgQ3VraWVyIGplc3Qgc7NvZGtpLAotICAgICAgNykgIEkgdHkgdGW/LgorLS0tPiAgMSkgIFLzv2Ugc7kgY3plcndvbmUsCistLS0+ICAyKSAgQrNvdG8gamVzdCBmYWpuZSwKKy0tLT4gIDMpICBGaW+za2kgc7kgbmllYmllc2tpZSwKKy0tLT4gIDQpICBNYW0gc2Ftb2No82QsCistLS0+ICA1KSAgWmVnYXIgcG9kYWplIGN6YXMsCistLS0+ICA2KSAgQ3VraWVyIGplc3Qgc7NvZGtpLAorLS0tPiAgNykgIEkgdHkgdGW/LgogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICAgICBMZWtjamEgMi41LjogUE9MRUNFTklFIFVORE8gKGNvZm5paikKKwkJICAgICAgTGVrY2phIDIuNy46IFBPTEVDRU5JRSBVTkRPIChjb2ZuaWopCiAKIAogCSAgKiogV2NpnG5paiAgdSAgYWJ5IGNvZm655iBza3V0a2kgb3N0YXRuaWVnbyBwb2xlY2VuaWEuCkBAIC0yNDEsNyArMzM2LDcgQEAKICAgMy4gVGVyYXogd2NpnG5paiAgdSAgYWJ5IGNvZm655iBza3V0a2kgb3N0YXRuaWVnbyBwb2xlY2VuaWEuCiAgIDQuIFR5bSByYXplbSBwb3ByYXcgd3N6eXN0a2llIGKz6mR5IHcgbGluaWkgdb95d2FquWMgcG9sZWNlbmlhICB4IC4KICAgNS4gVGVyYXogd2NpnG5paiB3aWVsa2llIFUgYWJ5IHByenl3cvNjaeYgbGluaeogZG8gb3J5Z2luYWxuZWdvIHN0YW51LgotICA2LiBUZXJheiB3Y2mcbmlqICB1ICBraWxrYSByYXp5IGJ5IGNvZm655glVICBpIHBvcHJ6ZWRuaWUgcG9sZWNlbmlhLgorICA2LiBUZXJheiB3Y2mcbmlqICB1ICBraWxrYSByYXp5IGJ5IGNvZm655iAgVSAgaSBwb3ByemVkbmllIHBvbGVjZW5pYS4KICAgNy4gVGVyYXogd3BzeiBDVFJMLVIgKHRyenltYWogcvN3bm9jemWcbmllIHdjaZxuaep0ZSBrbGF3aXN6ZSBDVFJMIGkgUikKICAgICAga2lsa2EgcmF6eSwgYnkgY29mbrnmIGNvZm5p6mNpYS4KIApAQCAtMjU0LDYyICszNDksNjIgQEAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJICAgICBMRUtDSkEgMi4gUE9EU1VNT1dBTklFCiAKLSAgMS4gQnkgdXN1brnmIHpuYWtpIG9kIGt1cnNvcmEgZG8ga2/xY2Egd3lyYXp1IHdwaXN6OgkgZHcKIAotICAyLiBCeSB1c3VuueYgem5ha2kgb2Qga3Vyc29yYSBkbyBrb/FjYSBsaW5paSB3cGlzejoJIGQkCi0KKyAgMS4gQnkgdXN1brnmIHpuYWtpIG9kIGt1cnNvcmEgZG8gbmFzdOpwbmVnbyB3eXJhenUgd3Bpc3o6ICAgZHcKKyAgMi4gQnkgdXN1brnmIHpuYWtpIG9kIGt1cnNvcmEgZG8ga2/xY2EgbGluaWkgd3Bpc3o6ICAgIGQkCiAgIDMuIEJ5IHVzdW655iBjYbO5IGxpbmnqOiAgICBkZAotCi0gIDQuIEZvcm1hdCBwb2xlY2VuaWEgdyB0cnliaWUgTm9ybWFsOgotCi0gICAgW2xpY3piYV0gIHBvbGVjZW5pZSAgb2JpZWt0ICAgICAgTFVCICAgICAgcG9sZWNlbmllICBbbGljemJhXSAgb2JpZWt0Ci0KLSAgR2R6aWU6Ci0gICBsaWN6YmEgICAgLSBpbGUgcmF6eSBwb2xlY2VuaWUgbWEgYnnmIHd5a29uYW5lCi0gICBwb2xlY2VuaWUgLSB0byBjbyB0cnplYmEgenJvYmnmIChucC4gIGQgIGRsYSB1c3V3YW5pYSkKLSAgIG9iaWVrdCAgICAtIG5hIGN6eW0gcG9sZWNlbmllIGLqZHppZSB3eWtvbnl3YW5lLCB0YWtpZSBqYWsgIHcgICh3eXJheiksCisgIDQuIEJ5IHBvd3Tzcnp55iBydWNoIHBvcHJ6ZWSfIGdvIGxpY3piuTogICAgMncKKyAgNS4gRm9ybWF0IHBvbGVjZW5pYSB6bWlhbnkgdG86CisgICAgICAgICAgICAgICAgb3BlcmF0b3IgIFtsaWN6YmFdICBydWNoCisgIGdkemllOgorICAgb3BlcmF0b3IgIC0gdG8gY28gdHJ6ZWJhIHpyb2Jp5iAobnAuICBkICBkbGEgdXN1d2FuaWEpCisgICBbbGljemJhXSAgLSBvcGNqb25hbG5lLCBpbGUgcmF6eSBwb3d083J6eeYgcnVjaAorICAgcnVjaCAgICAgIC0gcHJ6ZW5vc2kgbmFkIHRla3N0ZW0gZG8gb3Blcm93YW5pYSwgdGFraW0gamFrICB3ICh3eXJheiksIAogCSAgICAgICAkICAoZG8ga2/xY2EgbGluaWkpLCBldGMuCiAKLSAgNS4gQnkgY29mbrnmIHBvcHJ6ZWRuaWUgcG9sZWNlbmllLCB3cGlzejoJICB1IChtYbNlIHUpCisgIDYuIEJ5IHByemVqnOYgZG8gcG9jerl0a3UgbGluaWkgdb95aiB6ZXJhOiAgMAorICA3LiBCeSBjb2ZuueYgcG9wcnplZG5pZSBwb2xlY2VuaWUsIHdwaXN6OgkgIHUgKG1hs2UgdSkKICAgICAgQnkgY29mbrnmIHdzenlzdGtpZSB6bWlhbnkgdyBsaW5paSB3cGlzejoJICBVICh3aWVsa2llIFUpCiAgICAgIEJ5IGNvZm655iBjb2ZuaepjaWEgd3Bpc3o6CQkJICBDVFJMLVIKIAorCisKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICAgICAgTGVrY2phIDMuMS46IFBPTEVDRU5JRSBQVVQgKHdzdGF3KQorCQkJIExla2NqYSAzLjEuOiBQT0xFQ0VOSUUgUFVUICh3c3RhdykKIAogCi0JICAqKiBXcGlzeiAgcCAgYnkgd3N0YXdp5iBvc3RhdG5pZSB1c3VuaepjaWEgcG8ga3Vyc29yemUuICoqCisJICAqKiBXcGlzeiAgcCAgYnkgd3N0YXdp5iBvc3RhdG5pZSB1c3VuaepjaWEgemEga3Vyc29yZW0uICoqCiAKLSAgMS4gUHJ6ZW5pZZwga3Vyc29yIGRvIHBpZXJ3c3plaiBsaW5paSB3IHplc3Rhd2llIHBvbmm/ZWouCisgIDEuIFByemVuaWWcIGt1cnNvciBkbyBwaWVyd3N6ZWogbGluaWkgLS0tPiBwb25pv2VqLgogCi0gIDIuIFdwaXN6ICBkZAlhYnkgdXN1brnmIGxpbmnqIGkgcHJ6ZWNob3dh5iBquSB3IGJ1Zm9yemUgVmltLWEuCisgIDIuIFdwaXN6ICBkZCAgYWJ5IHVzdW655iBsaW5p6iBpIHByemVjaG93YeYgarkgdyByZWplc3RyemUgVmltLWEuCiAKLSAgMy4gUHJ6ZW5pZZwga3Vyc29yIGRvIGxpbmlpIFBPV1mvRUogdGVqIGdkemllIHVzdW5p6nRhIGxpbmlhIHBvd2lubmEKKyAgMy4gUHJ6ZW5pZZwga3Vyc29yIGRvIGxpbmlpIGMpLCBQT1dZr0VKIHRlaiBnZHppZSB1c3Vuaep0YSBsaW5pYSBwb3dpbm5hCiAgICAgIHNp6iB6bmFqZG93YeYuCiAKLSAgNC4gVyB0cnliaWUgTm9ybWFsLCB3Y2mcbmlqICBwICBieSB3c3Rhd2nmIGxpbmnqLgorICA0LiBXY2mcbmlqICBwICBieSB3c3Rhd2nmIGxpbmnqIHBvbmm/ZWoga3Vyc29yYS4KIAogICA1LiBQb3d0YWoga3Jva2kgMi4gZG8gNC4gYb8gem5hamS5IHNp6iB3IG9kcG93aWVkbmltIHBvcnq5ZGt1LgogCi0gICAgIGQpIEphayBkd2EgYW5pb7NraS4KLSAgICAgYikgTmEgZG9sZSBmaW+za2ksCi0gICAgIGMpIEEgbXkgc2nqIGtvY2hhbXksCi0gICAgIGEpIE5hIGfzcnplIHLzv2UsCistLS0+IGQpIEphayBkd2EgYW5pb7NraS4KKy0tLT4gYikgTmEgZG9sZSBmaW+za2ksCistLS0+IGMpIEEgbXkgc2nqIGtvY2hhbXksCistLS0+IGEpIE5hIGfzcnplIHLzv2UsCiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCSAgICBMZWtjamEgMy4yLjogUE9MRUNFTklFIFJFUExBQ0UgKHphc3S5cCkKIAogCi0gICAgICAgKiogV3Bpc3ogIHIgIGEgbmFzdOpwbmllIHpuYWsgYnkgemFzdLlwaeYgem5hayBwb2Qga3Vyc29yZW0uICoqCisJICAgKiogV3Bpc3ogIHJ4ICBhYnkgemFzdLlwaeYgem5hayBwb2Qga3Vyc29yZW0gbmEgIHggLiAqKgogCiAgIDEuIFByemVuaWWcIGt1cnNvciBkbyBwaWVyd3N6ZWogbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4KIAogICAyLiBVc3RhdyBrdXJzb3IgbmEgcGllcndzenltIGKz6mR6aWUuCiAKLSAgMy4gV3Bpc3ogIHIgIGEgcG90ZW0gem5hayBqYWtpIHBvd2luaWVuIHphc3S5cGnmIGKz6mRueS4KKyAgMy4gV3Bpc3ogIHIgIGEgcG90ZW0gem5hayBqYWtpIHBvd2luaWVuIGdvIHphc3S5cGnmLgogCi0gIDQuIFBvd3RhcnphaiBrcm9raSAyLiBpIDMuIGRvcPNraSBwaWVyd3N6YSBsaW5pYSBuaWUgYupkemllIHBvcHJhd25hLgorICA0LiBQb3d0YXJ6YWoga3Jva2kgMi4gaSAzLiBkb3Dza2kgcGllcndzemEgbGluaWEgbmllIGLqZHppZSB0YWthIGphayBkcnVnYS4KIAogLS0tPiAgS2plZHkgdGVuIHdpZXJzeiBiabMgd3N082tpd2FueSBrdG+cIHdjaXpuubMgcGVy6iB6s3ljaCBrbGF3aXJ6eSEKIC0tLT4gIEtpZWR5IHRlbiB3aWVyc3ogYnmzIHdzdHVraXdhbnkga3RvnCB3Y2lzbrmzIHBhcuogerN5Y2gga2xhd2lzenkhCkBAIC0zMjEsMTggKzQxNiwxNyBAQAogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICAgIExla2NqYSAzLjMuOiBQT0xFQ0VOSUUgQ0hBTkdFICh6bWll8SkKKwkJICAgICBMZWtjamEgMy4zLjogT1BFUkFUT1IgQ0hBTkdFICh6bWll8SkKIAotICAgICAqKiBCeSB6bWllbmnmIGNhs2Ugc7Nvd28gbHViIGplZ28gY3rqnOYgd3Bpc3ogIGN3ICAoY2hhbmdlIHdvcmQpLiAqKgorCQkgKiogQnkgem1pZW5p5iBkbyBrb/FjYSB3eXJhenUgd3Bpc3ogIGNlIC4gKioKIAogICAxLiBQcnplbmllnCBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIHBvbmm/ZWogb3puYWN6b25laiAtLS0+LgogCiAgIDIuIFVtaWWc5iBrdXJzb3IgbmEgIHUgIHcgbHVub3MuCiAKLSAgMy4gV3Bpc3ogIGN3CWkgcG9wcmF3IHd5cmF6ICh3IHR5bSB3eXBhZGt1IHdzdGF3ICdpbmlhJykuCisgIDMuIFdwaXN6ICBjZSAgaSBwb3ByYXcgd3lyYXogKHcgdHltIHd5cGFka3Ugd3N0YXcgIGluaWEgKS4KIAotICA0LiBXY2mcbmlqIDxFU0M+IGkgcHJ6ZWpknyBkbyBuYXN06nBuZWdvIGKz6mR1IChwaWVyd3N6eSB6bmFrLCBrdPNyeSBtYQotICAgICB1bGVjIHptaWFuaWUpLgorICA0LiBXY2mcbmlqIDxFU0M+IGkgcHJ6ZWpknyBkbyBuYXN06nBuZWogcGxhbm93YW5laiB6bWlhbnkuCiAKICAgNS4gUG93dGFyemFqIGtyb2tpIDMuIGkgNC4gZG9w82tpIHBpZXJ3c3plIHpkYW5pZSBuaWUgYupkemllIHRha2llIHNhbWUKICAgICAgamFrIGRydWdpZS4KQEAgLTM0MCwyMCArNDM0LDIxIEBACiAtLS0+IFRhIGx1bm9zIG1hIHBpcmUgc7Pzdywga3TzcmUgdL9pbmEgemJuaWMgdb9pZmFqb25jIHBjbWF6dSB6bWll8S4KIC0tLT4gVGEgbGluaWEgbWEgcGFy6iBzs/N3LCBrdPNyZSB0cnplYmEgem1pZW5p5iB1v3l3YWq5YyBwb2xlY2VuaWEgem1pZfEuCiAKLSAgWmF1d2G/LCC/ZSAgY3cgIG5pZSB0eWxrbyB6YW1pZW5pYSB3eXJheiwgYWxlIHRha79lIHptaWVuaWEgdHJ5YiBuYQorICBaYXV3Yb8sIL9lICBjZSAgbmllIHR5bGtvIHphbWllbmlhIHd5cmF6LCBhbGUgdGFrv2Ugem1pZW5pYSB0cnliIG5hCiAgIEluc2VydCAod3Byb3dhZHphbmllKS4KIAorCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJICAgICAgTGVrY2phIDMuNC46IFdJykNFSiBaTUlBTiBVr1lXQUqlQyBjCiAKIAotICAgICAgICoqIFBvbGVjZW5pZSBjaGFuZ2Ugdb95d2EgdGFraWNoIHNhbXljaCBvYmlla3TzdyBqYWsgZGVsZXRlLiAqKgorCSoqIFBvbGVjZW5pZSBjaGFuZ2Ugdb95d2EgdGFraWNoIHNhbXljaCBydWNo83cgamFrIGRlbGV0ZS4gKioKIAotICAxLiBQb2xlY2VuaWUgY2hhbmdlIGR6aWGzYSB0YWsgc2FtbyBqYWsgZGVsZXRlLiBGb3JtYXQgd3lnbLlkYSB0YWs6CisgIDEuIE9wZXJhdG9yIGNoYW5nZSBkemlhs2EgdGFrIHNhbW8gamFrIGRlbGV0ZS4gRm9ybWF0IHd5Z2y5ZGEgdGFrOgogCi0JICAgIFtsaWN6YmFdICBjICBvYmlla3QgICAgICBMVUIgICAgICBjICBbbGljemJhXSAgb2JpZWt0CisJICAgIGMgICBbbGljemJhXSAgIHJ1Y2gKIAotICAyLiBPYmlla3R5IHO5IHRha79lIHRha2llIHNhbWUsIG5wLjoJdyAgKHd5cmF6KSwgICQJKGtvbmllYyBsaW5paSksIGV0Yy4KKyAgMi4gUnVjaHkgc7kgdGFrv2UgdGFraWUgc2FtZSwgbnAuOiAgdyAgKHd5cmF6KSwgICQgIChrb25pZWMgbGluaWkpLCBldGMuCiAKICAgMy4gUHJ6ZW5pZZwgc2nqIGRvIHBpZXJ3c3plaiBsaW5paSBwb25pv2VqIG96bmFjem9uZWogLS0tPgogCkBAIC0zNjQsNyArNDU5LDcgQEAKIC0tLT4gS29uaWVjIHRlZ28gd2llcnN6YSBtdXNpIGJ55iBwb3ByYXdpb255IGFieSB3eWdsuWRhbCB0YWsgamFrIGRydWdpLgogLS0tPiBLb25pZWMgdGVnbyB3aWVyc3phIG11c2kgYnnmIHBvcHJhd2lvbnkgdb95d2FquWMgcG9sZWNlbmlhICBjJCAuCiAKLQorVVdBR0E6ICBNb79lc3ogdb95d2HmIDxCUz4gYWJ5IHBvcHJhd2lh5iBis+pkeSB3IGN6YXNpZSBwaXNhbmlhLgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJCSAgICAgTEVLQ0pBIDMuIFBPRFNVTU9XQU5JRQpAQCAtMzc3LDY5ICs0NzIsNjkgQEAKICAgMi4gQnkgemFtaWVuaeYgem5hayBwb2Qga3Vyc29yZW0gd2NpnG5paiAgciAgYSBwb3RlbSB6bmFrLCBrdPNyeSBtYSB6YXN0uXBp5gogICAgICBvcnlnaW5hbG55LgogCi0gIDMuIFBvbGVjZW5pZSBjaGFuZ2UgcG96d2FsYSBDaSBuYSB6YXN0uXBpZW5pZSB3eXN6Y3plZ/NsbmlvbmVnbyBvYmlla3R1Ci0gICAgIG9kIGt1cnNvcmEgZG8ga2/xY2Egb2JpZWt0dS4gTnAuIHdwaXN6ICBjdyAgYWJ5IHphbWllbmnmIHRla3N0IG9kCi0gICAgIGt1cnNvcmEgZG8ga2/xY2Egd3lyYXp1LCAgYyQgIGFieSB6bWllbmnmIHRla3N0IGRvIGtv8WNhIGxpbmlpLgorICAzLiBPcGVyYXRvciBjaGFuZ2UgcG96d2FsYSBDaSBuYSB6YXN0uXBpZW5pZSBvZCBrdXJzb3JhIGRvIG1pZWpzY2EgZ2R6aWUKKyAgICAgemFicmGzYnkgY2nqIHJ1Y2guIE5wLiB3cGlzeiAgY2UgIGFieSB6YW1pZW5p5iB0ZWtzdCBvZCBrdXJzb3JhIGRvIGtv8WNhCisgICAgIHd5cmF6dSwgIGMkICBhYnkgem1pZW5p5iB0ZWtzdCBkbyBrb/FjYSBsaW5paS4KIAogICA0LiBGb3JtYXQgZG8gcG9sZWNlbmlhIGNoYW5nZSAoem1pZfEpOgogCi0JICAgIFtsaWN6YmFdICBjICBvYmlla3QgICAgICBMVUIgICAgICBjICBbbGljemJhXSAgb2JpZWt0CisJYyAgIFtsaWN6YmFdICAgb2JpZWt0CiAKICAgICAgVGVyYXogcHJ6ZWpknyBkbyBuYXN06nBuZWogbGVrY2ppLgogCiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgIExla2NqYSA0LjEuOiBMT0tBTElaQUNKQSBPUkFaIFNUQVRVUyBQTElLVQorCSAgICAgICBMZWtjamEgNC4xLjogUE+jT69FTklFIEtVUlNPUkEgT1JBWiBTVEFUVVMgUExJS1UKIAogICAgICAgICoqIE5hY2mcbmlqIENUUkwtRyBhYnkgem9iYWN6eeYgc3dvamUgcG+zb79lbmllIHcgcGxpa3UgaSBzdGF0dXMKLQkgIHBsaWt1LiBOYWNpnG5paiBTSElGVC1HIGFieSBwcnplapzmIGRvIGxpbmlpIHcgcGxpa3UuICoqCisJICBwbGlrdS4gTmFjaZxuaWogIEcgIGFieSBwcnplapzmIGRvIGxpbmlpIHcgcGxpa3UuICoqCiAKICAgVVdBR0E6IFByemVjenl0YWogY2GzuSBsZWtjauogemFuaW0gd3lrb25hc3ogamFraWWcIHBvbGVjZW5pYSEhIQogCi0gIDEuIFByenl0cnp5bWFqIGtsYXdpc3ogQ1RSTCBpIHdjaZxuaWogIGcgLiBOYSBkb2xlIHN0cm9ueSBwb2phd2kgc2nqIHBhc2VrCi0gICAgIHN0YXR1c3UgeiBuYXp3uSBwbGlrdSBpIG51bWVyZW0gbGluaWksIHcga3TzcmVqIGplc3RlnC4gWmFwYW1p6nRhaiBudW1lcgotICAgICBsaW5paSBkbGEgcG90cnplYiBrcm9rdSAzLgorICAxLiBQcnp5dHJ6eW1haiBrbGF3aXN6IENUUkwgaSB3Y2mcbmlqICBnIC4gVb95d2FteSBub3RhY2ppIENUUkwtRy4gCisgICAgIE5hIGRvbGUgc3Ryb255IHBvamF3aSBzaeogcGFzZWsgc3RhdHVzdSB6IG5hene5IHBsaWt1IGkgcG96eWNquSB3IHBsaWt1LgorICAgICBaYXBhbWnqdGFqIG51bWVyIGxpbmlpIGRsYSBwb3RyemViIGtyb2t1IDMuCiAKLSAgMi4gV2NpnG5paiBTSElGVC1HIGFieSBwcnplapzmIG5hIGtvbmllYyBwbGlrdS4KK1VXQUdBOiBNb79lc3ogdGW/IHpvYmFjennmIHBvenljauoga3Vyc29yYSB3IHByYXd5bSwgZG9sbnltIHJvZ3UgZWtyYW51LgorICAgICAgIER6aWVqZSBzaeogdGFrIGtpZWR5IHVzdGF3aW9uYSBqZXN0IG9wY2phICdydWxlcicgKHd5amGcbmlvbmUgdyBsZWtjamkgNi4pLgogCi0gIDMuIFdwaXN6IG51bWVyIGxpbmlpLCB3IGt083JlaiBiebNlnCBhIHBvdGVtIFNISUZULUcuICBUbyBwcnplbmllc2llIENp6gotICAgICB6IHBvd3JvdGVtIGRvIGxpbmlpLCB3IGt083JlaiBiebNlnCBraWVkeSB3Y2lzbrmzZZwgQ1RSTC1HIChraWVkeQotICAgICB3cGlzdWplc3ogbnVtZXJ5IE5JRSBwb2phd2lharkgc2nqIG9uZSBuYSBla3JhbmllKS4KKyAgMi4gV2NpnG5paiBHIGFieSBwcnplapzmIG5hIGtvbmllYyBwbGlrdS4KKyAgICAgV2NpnG5paiAgZ2cgIGFieSBwcnplapzmIGRvIHBvY3q5dGt1IHBsaWt1LgorCisgIDMuIFdwaXN6IG51bWVyIGxpbmlpLCB3IGt083JlaiBiebNlnCBhIHBvdGVtICBHIC4gVG8gcHJ6ZW5pZXNpZSBjaeoKKyAgICAgeiBwb3dyb3RlbSBkbyBsaW5paSwgdyBrdPNyZWogYnmzZZwga2llZHkgd2Npc265s2WcIENUUkwtRy4KIAogICA0LiBKZZxsaSBjenVqZXN6IHNp6iB3eXN0YXJjemFquWNvIHBld25pZSwgd3lrb25haiBrcm9raSAxLTMuCiAKLQotCi0KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJIExla2NqYSA0LjIuOiBQT0xFQ0VOSUUgU1pVS0FKCiAKIAotCSAgICAqKiBXcGlzeiAgLyAgYSBuYXN06nBuaWUgd3lyYb9lbmllIGFieSBqZSB6bmFsZZ/mLiAqKgorCSAgICAgKiogV3Bpc3ogIC8gIGEgbmFzdOpwbmllIHd5cmG/ZW5pZSBhYnkgamUgem5hbGWf5i4gKioKIAogICAxLiBXIHRyeWJpZSBOb3JtYWwgd3Bpc3ogIC8gLiBaYXV3Yb8sIL9lIHpuYWsgdGVuLCBvcmF6IGt1cnNvciBwb2phd2m5Ci0gICAgIHNp6iBuYSBkb2xlIGVrcmFudSB0YWsgc2FtbyBqYWsgcG9sZWNlbmllCTogLgorICAgICBzaeogbmEgZG9sZSBla3JhbnUgdGFrIHNhbW8gamFrIHBvbGVjZW5pZSAgOiAuCiAKICAgMi4gVGVyYXogd3Bpc3ogIGKzb25kPEVOVEVSPiAuICBUbyBqZXN0IHOzb3dvLCBrdPNyZWdvIGNoY2VzeiBzenVrYeYuCiAKICAgMy4gQnkgc3p1a2HmIHRlaiBzYW1laiBmcmF6eSBwb25vd25pZSwgcG8gcHJvc3R1IHdjaZxuaWogIG4gLgotICAgICBBYnkgc3p1a2HmIHRlaiBmcmF6eSB3IHByemVjaXdueW0sIGtpZXJ1bmt1IHdjaZxuaWogU0hJRlQtTi4KKyAgICAgQWJ5IHN6dWth5iB0ZWogZnJhenkgdyBwcnplY2l3bnltLCBraWVydW5rdSB3Y2mcbmlqICBOIC4KIAogICA0LiBKZZxsaSBjaGNlc3ogc3p1a2HmIGZyYXp5IGRvIHR5s3UsIHW/eWogcG9sZWNlbmlhICA/ICB6YW1pYXN0ICAvIC4KIAotLS0tPiBLaWVkeSBwb2xlY2VuaWUgJ3N6dWthaicgb3NpuWduaWUga29uaWVjIHBsaWt1LCBwcnplc3p1a2l3YW5pZQotICAgICB6YWN6bmllIHNp6iBvZCBwb2N6uXRrdSBwbGlrdS4KKyAgNS4gQWJ5IHdy82Np5iBnZHppZSBiebNlnCB3Y2mcbmlqICBDVFJMLU8uIFBvd3RhcnphaiBieSB3cvNjaeYgZGFsZWouIENUUkwtSQorICAgICBpZHppZSBkbyBwcnpvZHUuCiAKLSAgJ2Kzb25kJyB0byBuaWUgamVzdCBtZXRvZGEgYnkgcHJ6ZWxpdGVyb3dh5iBis7lkOyAnYrNvbmQnIHRvIGKzuWQuCi0KLQorVVdBR0E6ICAnYrNvbmQnIHRvIG5pZSBqZXN0IG1ldG9kYSBieSBwcnplbGl0ZXJvd2HmIGKzuWQ7ICdis29uZCcgdG8gYrO5ZC4KK1VXQUdBOiAgS2llZHkgc3p1a2FuaWUgb3NpuWduaWUga29uaWVjIHBsaWt1IGLqZHppZSBrb250eW51b3dhs28gb2QgcG9jerl0a3UKK28gaWxlIG9wY2phICd3cmFwc2NhbicgbmllIHpvc3Rhs2EgcHJ6ZXN0YXdpb25hLgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJTGVrY2phIDQuMy46IFcgUE9TWlVLSVdBTklVIFBBUlVKpUNZQ0ggTkFXSUFT01cKIAogCi0JICAgICAgKiogV3Bpc3oJJSAgYnkgem5hbGWf5iBwYXN1arljeSApLF0sIGx1YiB9IC4gKioKKwkJKiogV3Bpc3ogICUgIGJ5IHpuYWxln+YgcGFzdWq5Y3kgKSxdLCBsdWIgfSAuICoqCiAKICAgMS4gVW1pZZzmIGt1cnNvciBuYSBrdPNyeW2cIHogKCwgWywgbHViIHsgdyBsaW5paSBwb25pv2VqIG96bmFjem9uZWogLS0tPi4KIApAQCAtNDQ5LDYgKzU0NCw4IEBACiAKICAgNC4gV2NpnG5paiAgJSAgYWJ5IHByemVuaWWc5iBrdXJzb3IgeiBwb3dyb3RlbSBkbyBwYXJ1arljZWdvIG5hd2lhc3UuCiAKKyAgNS4gUHJ6ZW5pZZwga3Vyc29yIGRvIGlubmVnbyAoLCksWyxdLHsgbHViIH0gaSB6b2JhY3ogY28gcm9iaSAgJSAuCisKIC0tLT4gVG8gKCBqZXN0IGxpbmlhIHRlc3Rvd2EgeiAoLCBbLCBdIGkgeywgfSAuICkpCiAKIFVXQUdBOiBUYSBmdW5rY2phIGplc3QgYmFyZHpvIHW/eXRlY3puYSB3IGRlYnVnZ293YW5pdSBwcm9ncmFtdQpAQCAtNDU2LDEwICs1NTMsOCBAQAogCiAKIAotCi0KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgIExla2NqYSA0LjQuOiBJTk5BIE1FVE9EQSBQT1BSQVdJQU5JQSBCo8pE01cKKwkJICBMZWtjamEgNC40LjogUE9MRUNFTklFIFNVQlNUSVRVVEUgKHphbWlhbmEpCiAKIAogCSAqKiBXcGlzeiAgOnMvc3Rhcnkvbm93eS9nICBhYnkgemFtaWVuaeYgJ3N0YXJ5JyBuYSAnbm93eScuICoqCkBAIC00NjksNDEgKzU2NCw0MSBAQAogICAyLiBXcGlzeiAgOnMvY3phYXMvY3phczxFTlRFUj4gLiAgWmF1d2G/LCC/ZSB0byBwb2xlY2VuaWUgem1pZW5pYQogICAgICB0eWxrbyBwaWVyd3N6ZSB3eXN0uXBpZW5pZSAnY3phYXMnIHcgbGluaWkuCiAKLSAgMy4gVGVyYXogd3Bpc3ogIDpzL2N6YWFzL2N6YXMvZyAgb3puYWN6YSB6YW1pYW7qIChzdWJzdHl0dWNq6ikKLSAgICAgZ2xvYmFsbmllIHcgY2GzZWogbGluaWkuICBabWllbmlhIHdzenlzdGtpZSB3eXN0uXBpZW5pYSB3IGxpbmlpLgorICAzLiBUZXJheiB3cGlzeiAgOnMvY3phYXMvY3phcy9nICAuIERvZGFuZSAgZyAgb3puYWN6YSB6YW1pYW7qIChzdWJzdHl0dWNq6ikKKyAgICAgZ2xvYmFsbmllIHcgY2GzZWogbGluaWkuICBabWllbmlhIHdzenlzdGtpZSB3eXN0uXBpZW5pYSAnY3phYXMnIHcgbGluaWkuCiAKIC0tLT4gTmFqbGVwc3p5IGN6YWFzIG5hIHpvYmFjemVuaWUgbmFqs2FkbmllanN6eWNoIGt3aWF083cgdG8gY3phYXMgd2lvc255LgogCiAgIDQuIEFieSB6bWllbmnmIHdzenlzdGtpZSB3eXN0uXBpZW5pYSCzYfFjdWNoYSB6bmFr83cgcG9taepkenkgZHdvbWEgbGluaWFtaSwKLSAgICAgd3Bpc3o6IDojLCNzL3N0YXJlL25vd2UvZyBnZHppZSAjLCMgc7kgbnVtZXJhbWkgZHfzY2ggbGluaWkuCi0gICAgIFdwaXN6ICA6JXMvc3RhcmUvbm93ZS9nICAgYnkgem1pZW5p5iB3c3p5c3RraWUgd3lzdLlwaWVuaWEgdyBjYbN5bSBwbGlrdS4KLQotCi0KKyAgICAgd3Bpc3o6IDojLCNzL3N0YXJlL25vd2UvZyBnZHppZSAjLCMgc7kgbnVtZXJhbWkgbGluaWkgb2dyYW5pY3pharljeWNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uIGdkemllIG1hIG5hc3S5cGnmIHphbWlhbmEuCisgICAgIHdwaXN6ICA6JXMvc3RhcmUvbm93ZS9nICAgYnkgem1pZW5p5iB3c3p5c3RraWUgd3lzdLlwaWVuaWEgdyBjYbN5bSBwbGlrdS4KKyAgICAgd3Bpc3ogIDolcy9zdGFyZS9ub3dlL2djICBieSB6bWllbmnmIHdzenlzdGtpZSB3eXN0uXBpZW5pYSB3IGNhs3ltCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxpa3UsIHByb3N6uWMgbyBwb3R3aWVyZHplbmllIHphIGthv2R5bSByYXplbQogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJCSAgICAgTEVLQ0pBIDQuIFBPRFNVTU9XQU5JRQogCi0KLSAgMS4gQ1RSTC1HICBwb2thv2UgVHdvarkgcG96eWNq6iB3IHBsaWt1IGkgc3RhdHVzIHBsaWt1LiAgU0hJRlQtRyBwcnplbm9zaQotICAgICBDaeogZG8ga2/xY2EgcGxpa3UuICBTSElGVC1HIHBvcHJ6ZWR6b255IGxpY3piuSBwcnplbm9zaSBDaeogZG8gbGluaWkKLSAgICAgbyB0eW0gbnVtZXJ6ZS4KKyAgMS4gQ1RSTC1HICAgcG9rYb9lIFR3b2q5IHBvenljauogdyBwbGlrdSBpIHN0YXR1cyBwbGlrdS4gIFNISUZULUcgcHJ6ZW5vc2kKKwkgICAgICBjaeogZG8ga2/xY2EgcGxpa3UuCisgICAgIEcgICAgICAgIHByemVub3NpIGRvIGtv8WNhIHBsaWt1LgorICAgICBsaWN6YmEgRyBwcnplbm9zaSBkbyBsaW5paSBbbGljemJhXS4KKyAgICAgZ2cgICAgICAgcHJ6ZW5vc2kgZG8gcGllcndzemVqIGxpbmlpLgogCiAgIDIuIFdwaXNhbmllICAvICBhIG5hc3TqcG5pZSCzYfFjdWNoYSB6bmFr83cgc3p1a2Egs2HxY3VjaGEgRE8gUFJaT0RVLgogICAgICBXcGlzYW5pZSAgPyAgYSBuYXN06nBuaWUgs2HxY3VjaGEgem5ha/N3IHN6dWthILNh8WN1Y2hhIERPIFRZo1UuCiAgICAgIFBvIHd5c3p1a2l3YW5pdSB3Y2mcbmlqICBuICBieSB6bmFsZZ/mIG5hc3TqcG5lIHd5c3S5cGllbmllIHN6dWthbmVqCi0gICAgIGZyYXp5IHR5bSBzYW15bSBraWVydW5rdSBsdWIgU2hpZnQtTiBieSBzenVrYeYgdyBraWVydW5rdSBwcnplY2l3bnltLgorICAgICBmcmF6eSB0eW0gc2FteW0ga2llcnVua3UgbHViICBOICBieSBzenVrYeYgdyBraWVydW5rdSBwcnplY2l3bnltLgorICAgICBDVFJMLU8gcHJ6ZW5vc2kgZG8gc3RhcnN6eWNoIHBvenljamksIENUUkwtSSBkbyBub3dzenljaC4KIAogICAzLiBXcGlzYW5pZSAgJSAgZ2R5IGt1cnNvciB6bmFqZHVqZSBzaeogbmEgKCwpLFssXSx7LCBsdWIgfSBsb2thbGl6dWplCiAgICAgIHBhcnVquWN5IHpuYWsuCiAKLSAgNC4gQnkgemFtaWVuaeYgcGllcndzenkgc3RhcnkgbmEgbm93eSB3IGxpbmlpIHdwaXN6CSAgIDpzL3N0YXJ5L25vd3kKLSAgICAgQnkgemFtaWVuaeYgd3N6eXN0a2llIHN0YXJ5IG5hIG5vd3kgdyBsaW5paSB3cGlzegkgICA6cy9zdGFyeS9ub3d5L2cKLSAgICAgQnkgemFtaWVuaeYgZnJhenkgcG9taepkenkgZHdvbWEgbGluaWFtaSAjIHdwaXN6CSAgIDojLCNzL3N0YXJ5L25vd3kvZwotICAgICBCeSB6YW1pZW5p5iB3c3p5c3RraWUgd3lzdLlwaWVuaWEgdyBwbGlrdSB3cGlzegkgICA6JXMvc3Rhcnkvbm93eS9nCisgIDQuIEJ5IHphbWllbmnmIHBpZXJ3c3p5IHN0YXJ5IG5hIG5vd3kgdyBsaW5paSB3cGlzeiAgICAgIDpzL3N0YXJ5L25vd3kKKyAgICAgQnkgemFtaWVuaeYgd3N6eXN0a2llIHN0YXJ5IG5hIG5vd3kgdyBsaW5paSB3cGlzeiAgICAgOnMvc3Rhcnkvbm93eS9nCisgICAgIEJ5IHphbWllbmnmIGZyYXp5IHBvbWnqZHp5IGR3b21hIGxpbmlhbWkgIyB3cGlzeiAgICAgIDojLCNzL3N0YXJ5L25vd3kvZworICAgICBCeSB6YW1pZW5p5iB3c3p5c3RraWUgd3lzdLlwaWVuaWEgdyBwbGlrdSB3cGlzeiAgICAgICA6JXMvc3Rhcnkvbm93eS9nCiAgICAgIEJ5IFZpbSBwcm9zabMgQ2nqIG8gcG90d2llcmR6aWVuaWUgZG9kYWogJ2MnCSAgIDolcy9zdGFyeS9ub3d5L2djCi0KLQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCSBMZWtjamEgNS4xLjogSkFLIFdZS09OQcYgUE9MRUNFTklBIFpFV07KVFJaTkUKIApAQCAtNTE4LDExICs2MTMsMTEgQEAKIAogICAzLiBKYWtvIHByenlrs2FkIHdwaXN6ICBscyAgemEgICEgIGEgbmFzdOpwbmllIHdjaZxuaWogPEVOVEVSPi4gVG8gcG9sZWNlbmllCiAgICAgIHBva2G/ZSBzcGlzIHBsaWvzdyB3IFR3b2ltIGthdGFsb2d1LCB0YWsgamFrYnmcIGJ5syBwcnp5IHpuYWt1IHphY2jqdHkKLSAgICAgcG93s29raS4gTW+/ZXN6IHRlvyB1v3nmICA6IWRpciAgamWcbGkJbHMgIG5pZSBkemlhs2EuCisgICAgIHBvd7Nva2kuIE1vv2VzeiB0Zb8gdb955iAgOiFkaXIgIGplnGxpICBscyAgbmllIGR6aWGzYS4KIAotLS0tPiBVd2FnYTogIFcgdGVuIHNwb3PzYiBtb79uYSB3eWtvbmHmIHdzenlzdGtpZSBwb2xlY2VuaWEgcG93s29raS4KLS0tLT4gVXdhZ2E6ICBXc3p5c3RraWUgcG9sZWNlbmlhICA6ICBtdXN6uSBieeYgemFrb/Fjem9uZSA8RU5URVI+LgotCitVd2FnYTogIFcgdGVuIHNwb3PzYiBtb79uYSB3eWtvbmHmIHdzenlzdGtpZSBwb2xlY2VuaWEgcG93s29raS4KK1V3YWdhOiAgV3N6eXN0a2llIHBvbGVjZW5pYSAgOiAgbXVzerkgYnnmIHpha2/xY3pvbmUgPEVOVEVSPi4KKyAgICAgICAgT2QgdGVnbyBtb21lbnR1IG5pZSB6YXdzemUgYupkemllbXkgbyB0eW0gd3Nwb21pbmHmLgogCiAKIApAQCAtNTMxLDkgKzYyNiw5IEBACiAJCSAgICBMZWtjamEgNS4yLjogV0nKQ0VKIE8gWkFQSVNZV0FOSVUgUExJS9NXCiAKIAotCSAgICAqKiBCeSB6YWNob3dh5iB6bWlhbnkgdyBwbGlrdSB3cGlzeiA6dyBOQVpXQV9QTElLVSAuICoqCisJICAgKiogQnkgemFjaG93YeYgem1pYW55IHcgdGVrnGNpIHdwaXN6IDp3IE5BWldBX1BMSUtVIC4gKioKIAotICAxLiBXcGlzeiAgOiFkaXIgIGx1Ygk6IWxzICBieSB6b2JhY3p55iBzcGlzIHBsaWvzdyB3IGthdGFsb2d1LgorICAxLiBXcGlzeiAgOiFkaXIgIGx1YiAgOiFscyAgYnkgem9iYWN6eeYgc3BpcyBwbGlr83cgdyBrYXRhbG9ndS4KICAgICAgSnW/IHdpZXN6LCC/ZSBtdXNpc3ogd2Npc2655iA8RU5URVI+IHBvIHR5bS4KIAogICAyLiBXeWJpZXJ6IG5henfqIHBsaWt1IGpha2EgamVzemN6ZSBuaWUgaXN0bmllamUsIG5wLiBURVNULgpAQCAtNTQxLDYzICs2MzYsNjMgQEAKICAgMy4gVGVyYXogd3Bpc3o6ICAgOncgVEVTVCAgIChnZHppZSBURVNUIGplc3QgbmF6d7kgcGxpa3UgamFruSB3eWJyYbNlnC4pCiAKICAgNC4gVG8gcG9sZWNlbmllIHphcGFtaep0YSBjYbN5IHBsaWsgKFZpbSBUdXRvcikgcG9kIG5hene5IFRFU1QuCi0gICAgIEJ5IHRvIHNwcmF3ZHpp5iB3cGlzeiAgOiFkaXIgLCC/ZWJ5IHpub3d1IHpvYmFjennmIGxpc3TqIHBsaWvzdy4KKyAgICAgQnkgdG8gc3ByYXdkemnmIHdwaXN6ICA6IWRpciAgbHViICA6IWxzICwgv2VieSB6bm93dSB6b2JhY3p55iBsaXN06iBwbGlr83cuCiAKLS0tLT4gWmF1d2G/LCC/ZSBnZHlieZwgdGVyYXogd3lzemVksyB6IFZpbS1hLCBhIG5hc3TqcG5pZSB3c3plZLMgcG9ub3duaWUKLSAgICAga29tZW5kuSAgdmltIFRFU1QgLCBwbGlrIGJ5s2J5IGRva7NhZG65IGtvcGm5IHR1dG9yaWFsYSBraWVkeSBnbwotICAgICB6YXBpc3l3YbNlnC4KK1V3YWdhOiBaYXV3Yb8sIL9lIGdkeWJ5nCB0ZXJheiB3eXN6ZWSzIHogVmltLWEsIGEgbmFzdOpwbmllIHdzemVksyBwb25vd25pZQorICAgICAgIGtvbWVuZLkgIHZpbSBURVNUICwgcGxpayBiebNieSBkb2uzYWRuuSBrb3BpuSB0dXRvcmlhbGEga2llZHkgZ28KKyAgICAgICB6YXBpc3l3YbNlnC4KIAogICA1LiBUZXJheiB1c3XxIHBsaWsgd3Bpc3VquWM6CQkgICA6IXJtIFRFU1QKIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJTGVrY2phIDUuMy46IFNFTEVLVFlXTkUgUE9MRUNFTklFIFdSSVRFICh6YXBpc3opCisJCSAgICBMZWtjamEgNS4zLjogV1lCUkFOSUUgVEVLU1RVIERPIFpBUElTVQogCiAKLQkgICAqKiBCeSB6YWNob3dh5iBjeuqc5iBwbGlrdSB3cGlzegk6IywjIHcgTkFaV0FfUExJS1UgKioKKwkgICoqIEJ5IHphY2hvd2HmIGN66pzmIHBsaWt1IHdwaXN6ICB2IHJ1Y2ggOncgTkFaV0FfUExJS1UgKioKIAotICAxLiBKZXN6Y3plIHJheiB3cGlzegk6IWRpciAgbHViICA6IWxzICBieSB1enlza2HmIGxpc3TqIHBsaWvzdwotICAgICB3IGthdGFsb2d1IGkgd3liaWVyeiBvZHBvd2llZG5puSBuYXp36iB0YWu5IGphayBURVNULgorICAxLiBQcnplbmllnCBrdXJzb3IgZG8gdGVnbyB3aWVyc3phLgogCi0gIDIuIFByemVuaWWcIGt1cnNvciBuYSBn83JlIHRlaiBzdHJvbnkgaSB3Y2mcbmlqIENUUkwtRyBieSB1enlza2HmCi0gICAgIG51bWVyIGxpbmlpLiBaQVBBTUnKVEFKIFTKIExJQ1pCyiEKKyAgMi4gV2NpnG5paiAgdiAgaSBwcnplbmllnCBrdXJzb3IgZG8gcHVua3R1IDUuIFphdXdhvywgv2UgdGVrc3Qgem9zdGGzCisgICAgIHBvZJx3aWV0bG9ueS4KIAotICAzLiBUZXJheiBwcnplbmllnCBzaeogbmEgZPOzIHN0cm9ueSBpIHdwaXN6ICBDVFJMLUcgem5vd3UuICBaQVBBTUnKVEFKCi0gICAgIE5VTUVSIFRBS69FIFRFSiBMSU5JSSEKKyAgMy4gV2NpnG5paiB6bmFrICA6IC4gTmEgZG9sZSBla3JhbnUgcG9qYXdpIHNp6iAgOic8LCc+IC4KIAotICA0LiBCeSB6YWNob3dh5iBKRURZTklFIGN66pzmIHBsaWt1IHdwaXN6ICA6IywjIHcgVEVTVCAgIGdkemllICAjLCMgdG8KLSAgICAgZHdpZSBsaWN6YnkgamFraWUgemFwYW1p6nRhs2WcIChn83JhLCBk87MgZWtyYW51KSwgYSBURVNUIHRvIG5hendhCi0gICAgIFR3b2plZ28gcGxpa3UuCisgIDQuIFdwaXN6ICB3IFRFU1QgLCBnZHppZSBURVNUIHRvIG5hendhIHBsaWt1LCBrdPNyeSBqZXN6Y3plIG5pZSBpc3RuaWVqZS4KKyAgICAgVXBld25paiBzaeosIL9lIHdpZHppc3ogIDonPCwnPncgVEVTVCB6YW5pbSB3Y2mcbmllc3ogRW50ZXIuCiAKLSAgNS4gUG9ub3duaWUgc3ByYXdknyBjenkgdGVuIHBsaWsgdGFtIGplc3QgKCA6IWRpciApLCBhbGUgTklFIHVzdXdhaiBnby4KKyAgNS4gVmltIHphcGlzemUgd3licmFuZSBsaW5pZSBkbyBwbGlrdSBURVNULiBVv3lqICA6IWRpciAgbHViICA6IWxzICwgv2VieSB0bworICAgICB6b2JhY3p55i4gSmVzemN6ZSBnbyBuaWUgdXN1d2FqISBVv3lqZW15IGdvIHcgbmFzdOpwbmVqIGxla2NqaS4KIAotCitVV0FHQTogV2NpnG5p6mNpZSAgdiAgemFjenluYSB0cnliIFdpenVhbG55LiBNb79lc3ogcG9ydXN6YeYga3Vyc29yZW0gYnkKKyAgICAgICB6bWllbmnmIHJvem1pYXJ5IHphem5hY3plbmlhLiBNb79lc3ogdGW/IHW/eeYgb3BlcmF0b3JhIGJ5IHpyb2Jp5iBjb5wKKyAgICAgICB6IHRla3N0ZW0uIE5hIHByenlrs2FkICBkICB1c3V3YSB0ZWtzdC4KIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCSAgIExla2NqYSA1LjQuOiBXU1RBV0lBTklFIEkgo6VDWkVOSUUgUExJS9NXCiAKIAotCSAgICoqIEJ5IHdzdGF3aeYgemF3YXJ0b5zmIHBsaWt1IHdwaXN6ICAgOnIgTkFaV0FfUExJS1UgKioKKwkgICAgKiogQnkgd3N0YXdp5iB6YXdhcnRvnOYgcGxpa3Ugd3Bpc3ogICA6ciBOQVpXQV9QTElLVSAqKgogCi0gIDEuIFdwaXN6ICA6IWRpciAgYnkgc2nqIHVwZXduaeYsIHplIFR382ogcGxpayBURVNUIHpvc3RhsyBwb3ByYXduaWUKLSAgICAgemFwYW1p6nRhbnkuCisgIDEuIFVtaWWc5iBrdXJzb3IgdHW/IHBvd3m/ZWogdGVqIGxpbmlpLgogCi0gIDIuIFVtaWWc5iBrdXJzb3IgbmEgZ/NyemUgc3Ryb255LgotCi1VV0FHQTogUG8gd3lrb25hbml1IGtyb2t1IDMuIHBvbm93bmllIHpvYmFjenlzeiBMZWtjauogNS4zLiBQb3RlbSBwcnplamSfCitVV0FHQTogUG8gd3lrb25hbml1IGtyb2t1IDIuIHpvYmFjenlzeiB0ZWtzdCB6IExla2NqaSA1LjMuIFBvdGVtIHByemVqZJ8KICAgICAgICBkbyBET6NVIGJ5IHpvYmFjennmIHBvbm93bmllIHTqIGxla2Nq6i4KIAotICAzLiBUZXJheiB3Y3p5dGFqIHBsaWsgVEVTVCB1v3l3YWq5YyBwb2xlY2VuaWEgIDpyIFRFU1QgLCBnZHppZSBURVNUCisgIDIuIFRlcmF6IHdjenl0YWogcGxpayBURVNUIHW/eXdharljIHBvbGVjZW5pYSAgOnIgVEVTVCAsIGdkemllIFRFU1QKICAgICAgamVzdCBuYXp3uSBwbGlrdS4KKyAgICAgV2N6eXRhbnkgcGxpayBqZXN0IHVtaWVzemN6b255IHBvbmm/ZWogbGluaWkgeiBrdXJzb3JlbS4KIAotVVdBR0E6IFBsaWssIGt083J5IHdjenl0dWplc3ogamVzdCB3c3Rhd2lhbnkgdGFtIGdkemllIGJ5syBrdXJzb3IuCi0KLSAgNC4gQnkgc3ByYXdkemnmIGN6eSBwbGlrIHpvc3RhsyB3Y3p5dGFueSBjb2ZuaWoga3Vyc29yIGkgem9iYWN6LCC/ZQorICAzLiBCeSBzcHJhd2R6aeYgY3p5IHBsaWsgem9zdGGzIHdjenl0YW55IGNvZm5paiBrdXJzb3IgaSB6b2JhY3osIL9lCiAgICAgIHRlcmF6IHO5IGR3aWUga29waWUgTGVrY2ppIDUuMy4sIG9yeWdpbmGzIGkga29waWEgeiBwbGlrdS4KIAorVVdBR0E6IE1vv2VzeiB0Zb8gd2N6eXRh5iB3eWqcY2llIHpld27qdHJ6bmVnbyBwb2xlY2VuaWEuIE5hIHByenlrs2FkCisgICAgICAgOnIgIWxzICB3Y3p5dHVqZSB3eWqcY2llIHBvbGVjZW5pYSBscyBpIHVtaWVzemN6YSBqZSBwb2Qga3Vyc29yZW0uCisKKwogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJCSAgICAgICBMRUtDSkEgNS4gUE9EU1VNT1dBTklFCisJCQkgICAgIExFS0NKQSA1LiBQT0RTVU1PV0FOSUUKIAogCiAgIDEuICA6IXBvbGVjZW5pZSB3eWtvbnVqZSBwb2xlY2VuaWUgemV3bup0cnpuZS4KQEAgLTYxMCwxMiArNzA1LDEyIEBACiAKICAgMi4gIDp3IE5BWldBX1BMSUtVICB6YXBpc3VqZSBvYmVjbnkgcGxpayBWaW0tYSBuYSBkeXNrIHogbmF6d7kgTkFaV0FfUExJS1UuCiAKLSAgMy4gIDojLCN3IE5BWldBX1BMSUtVICB6YXBpc3VqZSBsaW5pZSBvZCAjIGRvICMgdyBwbGlrdSBOQVpXQV9QTElLVS4KKyAgMy4gIHYgcnVjaCA6dyBOQVpXQV9QTElLVSAgemFwaXN1amUgV2l6dWFsbmllIHd5YnJhbmUgbGluaWUgZG8gTkFaV0FfUExJS1UuCiAKICAgNC4gIDpyIE5BWldBX1BMSUtVICB3Y3p5dHVqZSB6IGR5c2t1IHBsaWsgTkFaV0FfUExJS1UgaSB3c3Rhd2lhIGdvIGRvCi0gICAgICBiaWW/uWNlZ28gcGxpa3UgcG8ga3Vyc29yemUuCisgICAgICBiaWW/uWNlZ28gcGxpa3UgcG9uab9laiBrdXJzb3JhLgogCi0KKyAgNS4gIDpyICFkaXIgIHdjenl0dWplIHd5apxjaWUgcG9sZWNlbmlhIGRpciBpIHVtaWVzemN6YSBqZSBwb25pv2VqIGt1cnNvcmEuCiAKIAogCkBAIC02MjMsNyArNzE4LDcgQEAKIAkJICAgICAgTGVrY2phIDYuMS46IFBPTEVDRU5JRSBPUEVOIChvdHfzcnopCiAKIAotICAgICAgKiogV3Bpc3oJbyAgYnkgb3R3b3J6eeYgbGluaeogcG9uab9laiBrdXJzb3JhIGkgcHJ6ZW5pZZzmIHNp6iBkbworICAgICAgKiogV3Bpc3ogIG8gIGJ5IG90d29yennmIGxpbmnqIHBvbmm/ZWoga3Vyc29yYSBpIHByemVuaWWc5iBzaeogZG8KIAkgdHJ5YnUgSW5zZXJ0ICh3cHJvd2FkemFuaWUpLiAqKgogCiAgIDEuIFByemVuaWWcIGt1cnNvciBkbyBsaW5paSBwb25pv2VqIG96bmFjem9uZWogLS0tPi4KQEAgLTYzMSwxNiArNzI2LDE2IEBACiAgIDIuIFdwaXN6ICBvICAobWGzZSkgYnkgb3R3b3J6eeYgbGluaeogUE9OSa9FSiBrdXJzb3JhIGkgcHJ6ZW5pZZzmIHNp6gogICAgICBkbyB0cnlidSBJbnNlcnQgKHdwcm93YWR6YW5pZSkuCiAKLSAgMy4gVGVyYXogcHJ6ZXBpc3ogbGluaeogb3puYWN6b265IC0tLT4gaSB3Y2mcbmlqIDxFU0M+IGJ5IHd5apzmCi0gICAgIHogdHJ5YnUgSW5zZXJ0ICh3cHJvd2FkemFuaWUpLgorICAzLiBXcGlzeiB0cm9jaOogdGVrc3R1IGkgd2NpnG5paiA8RVNDPiBieSB3eWqc5iB6IHRyeWJ1IEluc2VydCAod3Byb3dhZHphbmllKS4KIAotLS0tPiBQbyB3Y2mcbmnqY2l1ICBvICBrdXJzb3Igem5hamR6aWUgc2nqIHcgb3R3YXJ0ZWogbGluaWkgdyB0cnliaWUKLSAgICAgSW5zZXJ0ICh3cHJvd2FkemFuaWUpLgorLS0tPiBQbyB3Y2mcbmnqY2l1ICBvICBrdXJzb3Igem5hamR6aWUgc2nqIHcgb3R3YXJ0ZWogbGluaWkgdyB0cnliaWUgSW5zZXJ0LgogCiAgIDQuIEJ5IG90d29yennmIGxpbmnqIFBPV1mvRUoga3Vyc29yYSB3Y2mcbmlqIHdpZWxraWUgIE8gIHphbWlhc3QgbWGzZWdvCiAgICAgIG8gLiBXeXBy82J1aiB0byBuYSBsaW5paSBwb25pv2VqLgogCi0gT3R383J6IGxpbmnqIHBvd3m/ZWogd2Npc2tharljIFNISUZULU8gZ2R5IGt1cnNvciBi6mR6aWUgbmEgdGVqIGxpbmlpLgorLS0tPiBPdHfzcnogbGluaeogcG93eb9laiB3Y2lza2FquWMgU0hJRlQtTyBnZHkga3Vyc29yIGLqZHppZSBuYSB0ZWogbGluaWkuCisKKwogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJICAgICBMZWtjamEgNi4yLjogUE9MRUNFTklFIEFQUEVORCAoZG9kYWopCkBAIC02NDgsMTM3ICs3NDMsMjAzIEBACiAKIAkJICAqKiBXcGlzeiAgYSAgYnkgZG9kYeYgdGVrc3QgWkEga3Vyc29yZW0uICoqCiAKLSAgMS4gUHJ6ZW5pZZwga3Vyc29yIGRvIGtv8WNhIHBpZXJ3c3plaiBsaW5paSBwb25pv2VqIG96bmFjem9uZWogLS0tPgotICAgICBacvNiIHRvIHdjaXNrYWq5YwkkICB3IHRyeWJpZSBOb3JtYWwuCisgIDEuIFByemVuaWWcIGt1cnNvciBkbyBwb2N6uXRrdSBwaWVyd3N6ZWogbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4KIAotICAyLiBXcGlzeiAgYSAgKG1hs2UpIGFieSBkb2Rh5iB0ZWtzdCBaQSB6bmFraWVtIHBvZCBrdXJzb3JlbS4KLSAgICAgV2llbGtpZSBBIGRvZGFqZSB0ZWtzdCBuYSBrb/FjdSBsaW5paS4KKyAgMi4gV2Npc2thaiAgZSAgZG9w82tpIGt1cnNvciBuaWUgYupkemllIG5hIGtv8WN1IGxpIC4KIAotVXdhZ2E6IFRvIG9zemN66mR6YSB3cGlzYW5pYTogb3N0YXRuaSB6bmFrICggJCApLCAgaSAsIHRla3N0IGRvIGRvZGFuaWEsCi0gICAgICAgPEVTQz4sIHN0cnphs2thIHcgcHJhd28gaSBvc3RhdGVjem5pZSAgeCAsIHR5bGtvIHBvIHRvIGJ5IGRvZGHmCi0gICAgICAgdGVrc3QgbmEga2/xY3UgbGluaWkuCisgIDMuIFdwaXN6ICBhICAobWGzZSkgYWJ5IGRvZGHmIHRla3N0IFpBIHpuYWtpZW0gcG9kIGt1cnNvcmVtLgogCi0gIDMuIFRlcmF6IGRva2/xY3ogcGllcndzerkgbGluaeouIFphdXdhvyB0YWu/ZSwgv2UgIGFwcGVuZCAgKGRvZGFqKQotICAgICBkemlhs2EgdGFrIHNhbW8gamFrIHRyeWIgSW5zZXJ0ICh3cHJvd2FkemFuaWUpIHogd3lquXRraWVtIHRlZ28gZ2R6aWUKLSAgICAgdGVrc3QgamVzdCB3c3Rhd2lhbnkuCisgIDQuIERva2/xY3ogd3lyYXogdGFrIGphayB3IGxpbmlpIHBvbmm/ZWouIFdjaZxuaWogPEVTQz4gYWJ5IG9wdZxjaeYgdHJ5YgorICAgICBJbnNlcnQuCiAKLS0tLT4gVGEgbGluaWEgcG96d29saSBDaSDmd2ljennmCisgIDUuIFW/eWogIGUgIGJ5IHByemVqnOYgZG8ga29sZWpuZWdvIG5pZWRva2/xY3pvbmVnbyB3eXJhemUgaSBwb3d0YXJ6YWoga3Jva2kKKyAgICAgMy4gaSA0LgorCistLS0+IFRhIGxpIHBveiBDaSDmd2kgZG9kYXcgdGVrcyBkbyBrb/EgbGluCiAtLS0+IFRhIGxpbmlhIHBvendvbGkgQ2kg5ndpY3p55iBkb2Rhd2FuaWUgdGVrc3R1IGRvIGtv8WNhIGxpbmlpLgogCitVd2FnYTogIGEgLCAgaSAgYW5kICBBICBwcm93YWR6uSBkbyB0cnlidSBJbnNlcnQsIGplZHluuSBy879uaWO5IGplc3QgbWllanNjZQorICAgICAgIGdkemllIG5vd2Ugem5ha2kgYupkuSBkb2Rhd2FuZS4KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkgICBMZWtjamEgNi4zLjogSU5OQSBXRVJTSkEgUkVQTEFDRSAoemFtaWFuYSkKIAogCi0JICAgKiogV3Bpc3ogd2llbGtpZSAgUglieSB6YW1pZW5p5iB3aepjZWogbmm/IGplZGVuIHpuYWsuICoqCisJICAgKiogV3Bpc3ogd2llbGtpZSAgUiAgYnkgemFtaWVuaeYgd2nqY2VqIG5pvyBqZWRlbiB6bmFrLiAqKgogCi0gIDEuIFByemVuaWWcIGt1cnNvciBkbyBwaWVyd3N6ZWogbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4uCisgIDEuIFByemVuaWWcIGt1cnNvciBkbyBwaWVyd3N6ZWogbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4uIFByemVuaWWcCisgICAgIGt1cnNvciBkbyBwaWVyd3N6ZWdvICB4eHggLgogCi0gIDIuIFVtaWWc5iBrdXJzb3IgbmEgcG9jerl0a3UgcGllcndzemVnbyB3eXJhenUsIGt083J5IHLzem5pIHNp6iBvZAotICAgICBkcnVnaWVqIGxpbmlpIG96bmFjem9uZWogLS0tPiAod3lyYXogJ29zdGF0bmknKS4KKyAgMi4gV2NpnG5paiAgUiAgaSB3cGlzeiBudW1lciBwb25pv2VqIHcgZHJ1Z2llaiBsaW5paSwgdGFrLCC/ZSB6YXN0uXBpIG9uCisgICAgIHh4eC4KIAotICAzLiBUZXJheiB3cGlzeiAgUiAgaSB6YW1pZfEgcmVzenTqIHRla3N0dSB3IHBpZXJ3c3plaiBsaW5paSBwcnplegotICAgICBuYWRwaXNhbmllIG5hZCBzdGFyeW0gdGVrc3RlbSB0YWsgYWJ5IHBpZXJ3c3phIGxpbmlhIGJyem1pYbNhIHRhayBzYW1vCi0gICAgIGphayBkcnVnYS4KKyAgMy4gV2NpnG5paiA8RVNDPiBieSBvcHWcY2nmIHRyeWIgUmVwbGFjZS4gWmF1d2G/LCC/ZSByZXN6dGEgbGluaWkgcG96b3N0YWplCisgICAgIG5pZXptaWVuaW9uYS4KIAotLS0tPiBUbyBtYWtlIHRoZSBmaXJzdCBsaW5lIHRoZSBzYW1lIGFzIHRoZSBsYXN0IG9uIHRoaXMgcGFnZSB1c2UgdGhlIGtleXMuCi0tLS0+IFRvIG1ha2UgdGhlIGZpcnN0IGxpbmUgdGhlIHNhbWUgYXMgdGhlIHNlY29uZCwgdHlwZSBSIGFuZCB0aGUgbmV3IHRleHQuCisgIDUuIFBvd3RhcnphaiBrcm9raSBieSB3eW1pZW5p5iB3c3p5c3RraWUgeHh4LgogCi0gIDQuIFphdXdhvywgv2Uga2llZHkgd2NpnG5pZXN6IDxFU0M+IGFieSB3eWqc5iBuaWV6bWllbmlvbnkgdGVrc3QKLSAgICAgcG96b3N0YWplLgorLS0tPiBEb2RhbmllIDEyMyBkbyB4eHggZGFqZSB4eHguCistLS0+IERvZGFuaWUgMTIzIGRvIDQ1NiBkYWplIDU3OS4KIAotCitVV0FHQTogVHJ5YiBSZXBsYWNlIGplc3QgamFrIHRyeWIgSW5zZXJ0LCBhbGUga2G/ZHkgem5hayB1c3V3YSBpc3RuaWVquWN5CisgICAgICAgem5hay4KIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCQkgTGVrY2phIDYuNC46IFVTVEFXSUFOSUUgT1BDSkkKKwkJICBMZWtjamEgNi40LjogS09QSU9XQU5JRSBJIFdLTEVKQU5JRSBURUtTVFUKKworCisgICAgICAgKiogdb95aiBvcGVyYXRvcmEgIHkgIGFieSBza29waW93YeYgdGVrc3QgaSAgcCAgYWJ5IGdvIHdrbGVp5iAqKgorCisgIDEuIFByemVqZJ8gZG8gbGluaWkgb3puYWN6b25laiAtLS0+IGkgdW1pZZxjIGt1cnNvciB6YSAiYSkiLgorCisgIDIuIFdlamSfIHcgdHJ5YiBWaXN1YWwgIHYgIGkgcHJ6ZW5pZZwga3Vyc29yIG5hIHBvY3q5dGVrICJwaWVyd3N6eSIuCisKKyAgMy4gV2NpnG5paiAgeSAgYWJ5IHlhbmtvd2HmIChrb3Bpb3dh5ikgcG9knHdpZXRsb255IHRla3N0LgorCisgIDQuIFByemVuaWWcIGt1cnNvciBkbyBrb/FjYSBuYXN06nBuZWogbGluaWk6ICBqJAorCisgIDUuIFdjaZxuaWogIHAgIGFieSB3cGFrb3dh5iAocGFzdGUpIHRla3N0LiAgRG9kYWo6ICBhIGRydWdpPEVTQz4gLgorCisgIDYuIFW/eWogdHJ5YnUgVmlzdWFsIGFieSB3eWJyYeYgIiBlbGVtZW50LiIsIHlhbmt1aiBnbyAgeSAsIHByemVqZJ8gZG8ga2/xY2EKKyAgICAgbmFzdOpwbmVqIGxpbmlpICBqJCBpIHVwYWt1aiB0YW0gdGVrc3QgeiAgcCAuCisKKy0tLT4gIGEpIHRvIGplc3QgcGllcndzenkgZWxlbWVudC4KKyAgICAgIGIpCitVd2FnYTogbW+/ZXN6IHW/eeYgIHkgIGpha28gb3BlcmF0b3JhOyAgeXcgIGtvcGl1amUgamVkZW4gd3lyYXouCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJIExla2NqYSA2LjUuOiBVU1RBV0lBTklFIE9QQ0pJCiAKIAogKiogVXN0YXdpYW5pZSBvcGNqaSB0YWsgYnkgc3p1a2FqIGx1YiBzdWJzdHl0dWNqYSBpZ25vcm93YbN5IHdpZWxrb5zmIGxpdGVyICoqCiAKLSAgMS4gU3p1a2FqICdpZ25vcmUnIHdwaXN1arljICh3IHRyeWJpZSBOb3JtYWwpOgotICAgICAvaWdub3JlCisgIDEuIFN6dWthaiAnaWdub3JlJyB3cGlzdWq5YzogICAgL2lnbm9yZTxFTlRFUj4KICAgICAgUG93dPNyeiBzenVrYW5pZSBraWxrYSByYXp5IG5hY2lza2FquWMga2xhd2lzeiAgbiAuCiAKICAgMi4gVXN0YXcgb3BjauogJ2ljJyAoSWdub3JlIGNhc2UgLS0gaWdub3J1aiB3aWVsa2+c5iBsaXRlcikgcG9wcnplegogICAgICB3cGlzYW5pZToJCTpzZXQgaWMKIAotICAzLiBUZXJheiBzenVrYWogJ2lnbm9yZScgcG9ub3duaWUgd2Npc2t1arljOiBuCi0gICAgIFBvd3Tzcnogc3p1a2FuaWUga2lsa2EgcmF6eSBuYWNpc2tharljIGtsYXdpc3ogIG4gLgorICAzLiBUZXJheiBzenVrYWogJ2lnbm9yZScgcG9ub3duaWUgd2Npc2t1arljOiAgbgorICAgICBaYXV3Yb8sIL9lIElnbm9yZSBpIElHTk9SRSB0YWu/ZSBzuSB0ZXJheiB6bmFsZXppb25lLgogCi0gIDQuIFVzdGF3IG9wY2plICdobHNlYXJjaCcgaSAnaW5jc2VhcmNoJzoKLSAgICAgOnNldCBobHMgaXMKKyAgNC4gVXN0YXcgb3BjamUgJ2hsc2VhcmNoJyBpICdpbmNzZWFyY2gnOiAgICA6c2V0IGhscyBpcwogCiAgIDUuIFRlcmF6IHdwcm93YWSfIHBvbGVjZW5pZSBzenVrYWogcG9ub3duaWUgaSB6b2JhY3ogY28gc2nqIHpkYXJ6eToKLSAgICAgL2lnbm9yZQorICAgICAvaWdub3JlPEVOVEVSPgogCisgIDYuIEFieSB3ebO5Y3p55iBpZ25vcm93YW5pZSB3aWVsa2+cY2kgbGl0ZXI6ICA6c2V0IG5vaWMKIAorVXdhZ2E6IEFieSB1c3VuueYgcG9knHdpZXRsYW5pZSBkb3Bhc293YfEgd3Bpc3o6ICAgOm5vaGxzZWFyY2gKK1V3YWdhOiBBYnkgaWdub3Jvd2HmIHdpZWxrb5zmIGxpdGVyIGRsYSBqZWRuZWdvIHd5c3p1a2l3YW5pYTogL2lnbm9yZVxjPEVOVEVSPgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgICAgIExFS0NKQSA2LiBQT0RTVU1PV0FOSUUKIAogCi0gIDEuIFdwaXNhbmllICBvICBvdHdpZXJhIGxpbmnqIFBPTkmvRUoga3Vyc29yYSBpIHVtaWVzemN6YSBrdXJzb3IKLSAgICAgdyBvdHdhcnRlaiBsaW5paSB3IHRyeWJpZSBJbnNlcnQgKHdwcm93YWR6YW5pZSkuCi0gICAgIFdwaXNhbmllIHdpZWxraWVnbyAgTyAgb3R3aWVyYSBsaW5p6iBQT1dZr0VKIGxpbmlpLCB3IGt083JlagotICAgICB6bmFqZHVqZSBzaeoga3Vyc29yLgotCisgIDEuIFdwaXNhbmllICBvICBvdHdpZXJhIGxpbmnqIFBPTkmvRUoga3Vyc29yYS4KKyAgICAgV3Bpc2FuaWUgd2llbGtpZWdvICBPICBvdHdpZXJhIGxpbmnqIFBPV1mvRUoga3Vyc29yYS4KICAgMi4gV3Bpc3ogIGEgIGJ5IHdzdGF3aeYgdGVrc3QgWkEgem5ha2llbSBuYSwga3TzcnltIGplc3Qga3Vyc29yLgotICAgICBXcGlzYW5pZSB3aWVsa2llZ28gIEEgIGF1dG9tYXR5Y3puaWUgZG9kYWplIHRla3N0IG5hIGtv8WN1IGxpbmlpLgotCi0gIDMuIFdwaXNhbmllIHdpZWxraWVnbyAgUiAgd3Byb3dhZHphIHcgdHJ5YiBSZXBsYWNlICh6YW1pYW5hKSBkb3Dza2kKKyAgICAgV3Bpc2FuaWUgd2llbGtpZWdvICBBICBkb2RhamUgdGVrc3QgbmEga2/xY3UgbGluaWkuCisgIDMuIFBvbGVjZW5pZSAgZSAgcHJ6ZW5vc2kgZG8ga2/xY2Egd3lyYXp1LgorICA0LiBPcGVyYXRvICB5ICB5YW5rdWplIChrb3BpdWplKSB0ZWtzdCwgIHAgIHBha3VqZSAod2tsZWphLCBwYXN0ZSkgZ28uCisgIDUuIFdwaXNhbmllIHdpZWxraWVnbyAgUiAgd3Byb3dhZHphIHcgdHJ5YiBSZXBsYWNlICh6YW1pYW5hKSBkb3Dza2kKICAgICAgbmllIHpvc3RhbmllIHdjaZxuaep0eSA8RVNDPi4KLQotICA0LiBXcGlzYW5pZSAiOnNldCB4eHgiIHVzdGF3aWEgb3BjauogInh4eCIuCi0KLQorICA2LiBXcGlzYW5pZSAiOnNldCB4eHgiIHVzdGF3aWEgb3BjauogInh4eCIuIE5pZXRr83JlIG9wY2plOgorCSdpYycgJ2lnbm9yZWNhc2UnCWlnbm9ydWogd2llbGtvnOYgem5ha/N3CisJJ2lzJyAnaW5jc2VhcmNoJwlwb2thvyBjeuqcY2lvd2UgZG9wYXNvd2FuaWEKKwknaGxzJyAnaGxzZWFyY2gnCXBvZJx3aWV0bCB3c3p5c3RraWUgZG9wYXNvd2FuaWEKKyAgICAgTW+/ZXN6IHW/eeYgemFy83dubyBks3VnaWVqIGphayBpIGty83RraWVqIGZvcm15LgorICA3LiBEb2RhaiAibm8iIGFieSB3ebO5Y3p55iBvcGNq6jogICA6c2V0IG5vaWMKIAogCiAKIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICAgICAgIExFS0NKQSA3LiBQT0xFQ0VOSUEgUE9NT0NZIE9OLUxJTkUKLQorCQkJTEVLQ0pBIDcuMS4gSkFLIFVaWVNLQcYgUE9NT0MgCiAKIAkJICAgICAgKiogVb95Y2llIHN5c3RlbXUgcG9tb2N5IG9uLWxpbmUgKioKIAogICBWaW0gcG9zaWFkYSBiYXJkem8gZG9icnkgc3lzdGVtIHBvbW9jeSBvbi1saW5lLiBCeSB6YWN6ueYgc3By82J1aiBqZWRuZWoKICAgeiB0cnplY2ggbW+/bGl3b5xjaToKLQogCS0gd2NpnG5paiBrbGF3aXN6IDxIRUxQPiAoamWcbGkgdGFrb3d5IHBvc2lhZGFzeikKIAktIHdjaZxuaWoga2xhd2lzeiA8RjE+IChqZZxsaSB0YWtvd3kgcG9zaWFkYXN6KQogCS0gd3Bpc3ogICA6aGVscDxFTlRFUj4KIAotICBXcGlzeiAgIDpxPEVOVEVSPiAgIGJ5IHphbWtuuWMgb2tubyBwb21vY3kuCisgIFByemVjenl0YWogdGVrc3QgdyBva25pZSBwb21vY3kgIGFieSBkb3dpZWR6aWXmIHNp6iBqYWsgZHppYbNhIHBvbW9jLgorICB3cGlzeiBDVFJMLVcgQ1RSTC1XICAgIGFieSBwcnplc2tvY3p55iB6IGplZG5lZ28gb2tuYSBkbyBpbm5lZ28KKyAgd3Bpc3ogOnE8RU5URVI+ICAgICAgICBhYnkgemFta2655iBva25vIHBvbW9jeS4KIAogICBNb79lc3ogdGW/IHpuYWxln+YgcG9tb2MgbmEga2G/ZHkgdGVtYXQgcG9kYWq5YyBhcmd1bWVudCBwb2xlY2VuaWEgIjpoZWxwIi4KICAgU3By82J1aiB0eWNoIChuaWUgemFwb21uaWogd2Npc2655iA8RU5URVI+KToKIAogICA6aGVscCB3Ci0gIDpoZWxwIGNfPFQKKyAgOmhlbHAgY19DVFJMLUQKICAgOmhlbHAgaW5zZXJ0LWluZGV4CiAgIDpoZWxwIHVzZXItbWFudWFsCi0KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICAgIExFS0NKQSA4LiBUV09SWkVOSUUgU0tSWVBUVSBTVEFSVE9XRUdPCisJCSAgIExFS0NKQSA3LjIuIFRXT1JaRU5JRSBTS1JZUFRVIFNUQVJUT1dFR08KIAotCQkgICAgICAqKiBXs7ljemFuaWUgbW+/bGl3b5xjaSBWaW0tYSAqKgorCQkJICoqIFezuWN6IG1vv2xpd2+cY2kgVmltLWEgKioKIAogICBWaW0gbWEgbyB3aWVsZSB3aepjZWogbW+/bGl3b5xjaSBuab8gVmksIGFsZSB3aeprc3pvnOYgeiBuaWNoIGplc3QgZG9teZxsbmllCiAgIHd5s7ljem9uYS4gSmWcbGkgY2hjZXN6IHezuWN6eeYgdGUgbW+/bGl3b5xjaSBuYSBzdGFyY2llIG11c2lzeiB1dHdvcnp55gogICBwbGlrICJ2aW1yYyIuCiAKICAgMS4gUG9jerl0ZWsgZWR5Y2ppIHBsaWt1ICJ2aW1yYyIgemFsZb95IG9kIFR3b2plZ28gc3lzdGVtdToKLSAgICAgOmVkaXQgfi8udmltcmMJICAgICBkbGEgVW5peGEKLSAgICAgOmVkaXQgJFZJTS9fdmltcmMJICAgICBkbGEgTVMtV2luZG93cwotCisgICAgIDplZGl0IH4vLnZpbXJjCSAgICAgZGxhIFVuaWtzYQorICAgICA6ZWRpdCAkVklNL192aW1yYyAgICAgICBkbGEgTVMtV2luZG93cwogICAyLiBUZXJheiB3Y3p5dGFqIHByenlrs2Fkb3d5IHBsaWsgInZpbXJjIjoKICAgICAgOnJlYWQgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KLQogICAzLiBaYXBpc3ogcGxpazoKLSAgICAgOndyaXRlCisgICAgIDp3CiAKICAgTmFzdOpwbnltIHJhemVtIGdkeSB6YWN6bmllc3ogcHJhY+ogdyBWaW1pZSBi6mR6aWUgb24gdb95d2HmIHBvZJx3aWV0bGFuaWEKICAgc2uzYWRuaS4gTW+/ZXN6IGRvZGHmIHdzenlzdGtpZSBzd29qZSB1bHViaW9uZSB1c3Rhd2llbmlhIGRvIHRlZ28gcGxpa3UKICAgInZpbXJjIi4KKyAgQWJ5IHV6eXNrYeYgd2nqY2VqIGluZm9ybWFjamkgd3Bpc3ogICAgIDpoZWxwIHZpbXJjLWludHJvCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICBMZWtjamEgNy4zLjogVVpVUEWjTklBTklFCisKKworCSAgICAgICoqIFV6dXBls25pYW5pZSBsaW5paSBwb2xlY2XxIHogQ1RSTC1EIGkgPFRBQj4gKioKKworICAxLiBVcGV3bmlqIHNp6iwgv2UgVmltIG5pZSBqZXN0IHcgdHJ5YmllIGtvbXBhdHliaWxub5xjaTogICA6c2V0IG5vY3AKKworICAyLiBaZXJrbmlqIGpha2llIHBsaWtpIHO5IHcgYmllv7ljbSBrYXRhbG9ndTogICA6IWxzICAgbHViICAgOiFkaXIKKworICAzLiBXcGlzeiBwb2N6uXRlayBwb2xlY2VuaWE6ICAgOmUKKworICA0LiBXY2mcbmlqICBDVFJMLUQgIGkgVmltIHBva2G/ZSBsaXN06iBwb2xlY2XxIGpha2llIHphY3p5bmFquSBzaeogbmEgImUiLgorCisgIDUuIFdjaZxuaWogIDxUQUI+ICBpIFZpbSB1enVwZbNuaSBwb2xlY2VuaWUgZG8gIjplZGl0Ii4KKworICA2LiBEb2RhaiBzcGFjauogaSB6YWN6bmlqIHdwaXN5d2HmIG5henfqIGlzdG5pZWq5Y2VnbyBwbGlrdTogICA6ZWRpdCBGSUwKKworICA3LiBXY2mcbmlqIDxUQUI+LiBWaW0gdXp1cGWzbmkgbmF6d+ogKGplnGxpIGplc3QgbmllcG93dGFyemFsbmEpLgorCitVV0FHQTogVXp1cGWzbmlhbmllIGR6aWGzYSBkbGEgd2llbHUgcG9sZWNl8S4gU3By82J1aiB3Y2lzbrnmIENUUkwtRCBpIDxUQUI+LgorICAgICAgIFW/eXRlY3puZSB6d7Nhc3pjemEgcHJ6eSAgOmhlbHAgLgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgTGVrY2phIDcuIFBPRFNVTU9XQU5JRQorCisKKyAgMS4gV3Bpc3ogIDpoZWxwICBsdWIgd2NpnG5paiA8RjE+IGx1YiA8SGVscD4gYWJ5IG90d29yennmIG9rbm8gcG9tb2N5LgorCisgIDIuIFdwaXN6ICA6aGVscCBjbWQgIGFieSB1enlza2HmIHBvbW9jIG8gIGNtZCAuCisKKyAgMy4gV3Bpc3ogIENUUkwtVyBDVFJMLVcgIGFieSBwcnplc2tvY3p55iBkbyBpbm5lZ28gb2tuYS4KKworICA0LiBXcGlzeiAgOnEgIGFieSB6YW1rbrnmIG9rbm8gcG9tb2N5LgorCisgIDUuIFV0d/NyeiBwbGlrIHN0YXJ0b3d5IHZpbXJjIGFieSB6YWNob3dh5iB3eWJyYW5lIHVzdGF3aWVuaWEuCisKKyAgNi4gUG8gcG9sZWNlbml1ICA6ICwgd2NpnG5paiBDVFJMLUQgYWJ5IHpvYmFjennmIG1vv2xpd2UgdXp1cGWzbmllbmlhLgorICAgICBXY2mcbmlqIDxUQUI+IGFieSB1v3nmIGplZG5lZ28geiBuaWNoLgorCisKKworCisKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAKQEAgLTgyNiw1ICs5ODcsNSBAQAogICBQcnpldLN1bWFjem9uZSBwcnpleiBNaWtvs2FqYSBNYWNob3dza2llZ28sCiAgIFNpZXJwaWXxIDIwMDEsCiAgIHJldi4gTWFyemVjIDIwMDIKKyAgMm5kIHJldi4gV3J6ZXNpZfEgMjAwNAogICBXc3plbGtpZSB1d2FnaSBwcm9zeuoga2llcm93YeYgbmE6IG1pa21hY2hAd3AucGwKLQpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5wbC51dGYtOCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwudXRmLTgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY2ODA1ZQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwudXRmLTgKQEAgLTAsMCArMSw5OTEgQEAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKz0gICAgVyBpIHQgYSBqICAgdyAgIHQgdSB0IG8gciBpIGEgbCB1ICAgViBJIE0gLSBhICAgICAgLSAgICBXZXJzamEgIDEuNy4gICAgID0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICBWaW0gdG8gcG90xJnFvG55IGVkeXRvciwga3TDs3J5IHBvc2lhZGEgd2llbGUgcG9sZWNlxYQsIHpieXQgZHXFvG8gYnkKKyAgICAgd3lqYcWbbmnEhyBqZSB3c3p5c3RraWUgdyB0eW0gdHV0b3JpYWx1LiBUZW4gcHJ6ZXdvZG5payBtYSBuYXVjennEhworICAgICBDacSZIHBvc8WCdWdpd2HEhyBzacSZIHd5c3RhcmN6YWrEhWNvIHdpZWxvbWEga29tZW5kYW1pIGJ5xZsgbcOzZ8WCIMWCYXR3bworICAgICB1xbx5d2HEhyBWaW0tYSBqYWtvIGVkeXRvcmEgb2fDs2xuZWdvIHByemV6bmFjemVuaWEuCisKKyAgICAgQ3phcyBwb3RyemVibnkgbmEgdWtvxYRjemVuaWUgdHV0b3JpYWxhIHRvIDI1IGRvIDMwIG1pbnV0IGkgemFsZcW8eQorICAgICBvZCB0ZWdvIGphayB3aWVsZSBjemFzdSBzcMSZZHppc3ogbmEgZWtzcGVyeW1lbnRvd2FuaXUuICAKKwkgCisJIFVXQUdBOgorCSBQb2xlY2VuaWEgd3lrb255d2FuZSB3IGN6YXNpZSBsZWtjamkgem1vZHlmaWt1asSFIHRla3N0LiBacsOzYgorCSB3Y3plxZtuaWVqIGtvcGnEmSB0ZWdvIHBsaWt1IGRvIMSHd2ljemXFhCAoamXFm2xpIHphY3rEhcWCZcWbIGtvbWVuZMSFCisJICJ2aW10dXRvciIgdG8ganXFvCBwcmFjdWplc3ogbmEga29waWkpLgorCisgICAgIFdhxbxuZSBqZXN0LCBiecWbIHBhbWnEmXRhxYIsIMW8ZSBwcnpld29kbmlrIHRlbiB6b3N0YcWCIHphcHJvamVrdG93YW55IGRvCisgICAgIG5hdWtpIHBvcHJ6ZXogxId3aWN6ZW5pYS4gVG8gb3puYWN6YSwgxbxlIG11c2lzeiB3eWtvbnl3YcSHIHBvbGVjZW5pYQorICAgICBieSBuYXVjennEhyBzacSZIGljaCBwcmF3aWTFgm93by4gSmXFm2xpIGLEmWR6aWVzeiBqZWR5bmllIGN6eXRhxYIgdGVrc3QKKyAgICAgc3p5YmtvIHphcG9tbmlzeiB3aWVsZSBwb2xlY2XFhCEKKworICAgICBUZXJheiB1cGV3bmlqIHNpxJksIMW8ZSBuaWUgbWFzeiB3Y2nFm25pxJl0ZWdvIENhcHNMb2NrYSBpIHdjaXNrYWogIGoKKyAgICAgdGFrIGTFgnVnbyBkb3DDs2tpIExla2NqYSAxLjEuIG5pZSB3eXBlxYJuaSBjYcWCa293aWNpZSBla3JhbnUuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgIExla2NqYSAxLjEuOiBQT1JVU1pBTklFIFNJxJggS1VSU09SRU0KKworICAgICAgICoqIEJ5IHd5a29uYcSHIHJ1Y2gga3Vyc29yZW0sIHdjacWbbmlqIGgsIGosIGssIGwgamFrIHBva2F6YW5vLiAqKgorCisJICAgICAgIF4KKwkgICAgICAgawkJICAgICAgV3NrYXrDs3drYTogIGggamVzdCBwbyBsZXdlagorCSAgPCBoCSAgbCA+CQkJCSAgbCBqZXN0IHBvIHByYXdlagorCSAgICAgICBqCQkJCSAgaiB3eWdsxIVkYSBqYWsgc3RyemHFgmthIHcgZMOzxYIKKwkgICAgICAgdgorICAxLiBQb3J1c3phaiBrdXJzb3JlbSBkb3DDs2tpIG5pZSBixJlkemllc3ogcGV3aWVuLCDFvGUgcGFtacSZdGFzeiBwb2xlY2VuaWEuCisKKyAgMi4gVHJ6eW1haiAgaiAgdGFrIGTFgnVnbyBhxbwgYsSZZHppZSBzacSZIHBvd3RhcnphxYIuCisgICAgIFRlcmF6IHdpZXN6IGphayBkb2rFm8SHIGRvIG5hc3TEmXBuZWogbGVrY2ppLgorCisgIDMuIFXFvHl3YWrEhWMgc3RyemHFgmtpIHcgZMOzxYIgcHJ6ZWpkxbogZG8gbmFzdMSZcG5laiBsZWtjamkuCisKK1V3YWdhOiBKZcWbbGkgbmllIGplc3RlxZsgcGV3aWVuIGN6ZWdvxZsgY28gd3Bpc2HFgmXFmywgd2NpxZtuaWogPEVTQz4gYnkgd3LDs2NpxIcgZG8KKyAgICAgICB0cnlidSBOb3JtYWwuIFd0ZWR5IHBvd3TDs3J6IHBvbGVjZW5pZS4KKworVXdhZ2E6IEtsYXdpc3plIGt1cnNvcmEgdGFrxbxlIHBvd2lubnkgZHppYcWCYcSHLCBhbGUgdcW8eXdhasSFYyAgaGprbCAgYsSZZHppZXN6CisgICAgICAgdyBzdGFuaWUgcG9ydXN6YcSHIHNpxJkgbyB3aWVsZSBzenliY2llaiBqYWsgc2nEmSB0eWxrbyBwcnp5end5Y3phaXN6LgorCSAgIE5hcHJhd2TEmSEKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICBMZWtjamEgMS4yLjogV1lDSE9EWkVOSUUgWiBWSU0tYQorCisgISEgVVdBR0E6IFByemVkIHd5a29uYW5pZW0gamFraWVnb2tvbHdpZWsgcG9sZWNlbmlhIHByemVjenl0YWogY2HFgsSFIGxla2NqxJkuISEKKworICAxLiBXY2nFm25paiA8RVNDPiAoYWJ5IHVwZXduacSHIHNpxJksIMW8ZSBqZXN0ZcWbIHcgdHJ5YmllIE5vcm1hbCkuCisgIDIuIFdwaXN6OgkJCTpxITxFTlRFUj4uCisgICAgIFRvIHNwb3dvZHVqZSB3eWrFm2NpZSB6IGVkeXRvcmEgUE9SWlVDQUrEhEMgd3N6ZWxraWUgem1pYW55IGpha2llCisgICAgIHpkxIXFvHnFgmXFmyB6cm9iacSHLiBKZcWbbGkgY2hjZXN6IHphcGFtacSZdGHEhyB6bWlhbnkgaSB3eWrFm8SHCisgICAgIHdwaXN6OgkJCTp3cTxFTlRFUj4KKworICAzLiBLaWVkeSB3aWR6aXN6IHpuYWsgemFjaMSZdHkgcG93xYJva2kgd3Bpc3oga29tZW5kxJksIMW8ZWJ5IHdyw7NjacSHCisgICAgIGRvIHR1dG9yaWFsYS4gQ3p5bGk6CXZpbXR1dG9yPEVOVEVSPgorCisgIDQuIEplxZtsaSBjaGNlc3ogemFwYW1pxJl0YcSHIHBvbGVjZW5pYSwgd3lrb25haiBrcm9raSAxLiBkbyAzLiBhYnkKKyAgICAgd3lqxZvEhyBpIHdyw7NjacSHIGRvIGVkeXRvcmEuCisKK1VXQUdBOiA6cSE8RU5URVI+IHBvcnp1Y2Egd3N6ZWxraWUgem1pYW55IGpha2llIHpyb2JpxYJlxZsuIFcgbmFzdMSZcG55Y2gKK2xla2NqYWNoIGRvd2llc3ogc2nEmSBqYWsgamUgemFwYW1pxJl0eXdhxIcuCisKKyAgNS4gUHJ6ZW5pZcWbIGt1cnNvciBkbyBsZWtjamkgMS4zLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgTGVrY2phIDEuMy46IEVEWUNKQSBURUtTVFUgLSBLQVNPV0FOSUUKKworCSAgICAqKiBXY2nFm25paiAgeCAgYWJ5IHVzdW7EhcSHIHpuYWsgcG9kIGt1cnNvcmVtLiAqKgorCisgIDEuIFByemVuaWXFmyBrdXJzb3IgZG8gbGluaWkgcG9uacW8ZWogb3puYWN6b25laiAtLS0+LgorCisgIDIuIEJ5IHBvcHJhd2nEhyBixYLEmWR5LCBuYXByb3dhZMW6IGt1cnNvciBuYSB6bmFrIGRvIHVzdW5pxJljaWEuCisKKyAgMy4gV2NpxZtuaWogIHggIGFieSB1c3VuxIXEhyBuaWVjaGNpYW55IHpuYWsuCisKKyAgNC4gUG93dGFyemFqIGtyb2tpIDIuIGRvIDQuIGRvcMOza2kgemRhbmllIG5pZSBqZXN0IHBvcHJhd25lLgorCistLS0+IEtrcm93YSBwcnJ6ZXNrb2N6ecWCYSBwcnJ6ZXoga3NpacSZxbx5Y2MuCisKKyAgNS4gVGVyYXoga2llZHkgemRhbmllIGplc3QgcG9wcmF3aW9uZSBwcnplamTFuiBkbyBMZWtjamkgMS40LgorCitVV0FHQTogVWN6IHNpxJkgcHJ6ZXogxId3aWN6ZW5pZSwgbmllIHdrdXdhbmllLgorCisKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCSAgIExla2NqYSAxLjQuOiBFRFlDSkEgVEVLU1RVIC0gSU5TRVJUICh3cHJvd2FkemFuaWUpCisKKworCQkgICoqIFdjacWbbmlqICBpICBhYnkgd3N0YXdpxIcgdGVrc3QuICoqCisKKyAgMS4gUHJ6ZW5pZcWbIGt1cnNvciBkbyBwaWVyd3N6ZWogbGluaWkgcG9uacW8ZWogb3puYWN6b25laiAtLS0+LgorCisgIDIuIEFieSBwb3ByYXdpxIcgcGllcndzenkgd2llcnN6LCB1c3RhdyBrdXJzb3IgbmEgcGllcndzenltIHpuYWt1IFBPIHR5bQorICAgICBnZHppZSB0ZWtzdCBtYSBiecSHIHdzdGF3aW9ueS4KKworICAzLiBXY2nFm25paiAgaSAgYSBuYXN0xJlwbmllIHdwaXN6IGtvbmllY3puZSBwb3ByYXdraS4KKworICA0LiBQbyBwb3ByYXdpZW5pdSBixYLEmWR1IHdjacWbbmlqIDxFU0M+IGJ5IHdyw7NjacSHIGRvIHRyeWJ1IE5vcm1hbC4KKyAgICAgUG93dGFyemFqIGtyb2tpIDIuIGRvIDQuIGFieSBwb3ByYXdpxIcgY2HFgmUgemRhbmllLgorCistLS0+IFcgdGVqIGJya2plIHRyb2NoxJkgLgorLS0tPiBXIHRlaiBsaW5paSBicmFrdWplIHRyb2NoxJkgdGVrc3R1LgorCisgIDUuIEtpZWR5IGN6dWplc3ogc2nEmSBzd29ib2RuaWUgd3N0YXdpYWrEhWMgdGVrc3QgcHJ6ZWpkxbogZG8KKyAgICAgcG9kc3Vtb3dhbmlhIHBvbmnFvGVqLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCSAgIExla2NqYSAxLjUuOiBFRFlDSkEgVEVLU1RVIC0gQVBQRU5ESU5HIChkb2Rhd2FuaWUpCisKKworCQkgICAqKiBXY2nFm25paiAgQSAgYnkgZG9kYcSHIHRla3N0LiAqKgorCisgIDEuIFByemVuaWXFmyBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIHBvbmnFvGVqIG96bmFjem9uZWogLS0tPi4KKyAgICAgTmllIG1hIHpuYWN6ZW5pYSwga3TDs3J5IHRvIGLEmWR6aWUgem5hay4KKworICAyLiBXY2nFm25paiAgQSAgaSB3cGlzeiBvZHBvd2llZG5pZSBkb2RhdGtpLgorCisgIDMuIEtpZWR5IHRla3N0IHpvc3RhxYIgZG9kYW55LCB3Y2nFm25paiA8RVNDPiBpIHdyw7PEhyBkbyB0cnlidSBOb3JtYWxuZWdvLgorCisgIDQuIFByemVuaWXFmyBrdXJzb3IgZG8gZHJ1Z2llaiBsaW5paSBvem5hY3pvbmVqIC0tLT4gaSBwb3d0w7NyeiBrcm9raSAyIGkgMworICAgICBhYnkgcG9wcmF3acSHIHpkYW5pZS4KKworLS0tPiBCcmFrdWplIHR1IHRybworICAgICBCcmFrdWplIHR1IHRyb2NoxJkgdGVrc3R1LgorLS0tPiBUdSB0ZcW8IHRyb2NoxJkgYnJhCisgICAgIFR1IHRlxbwgdHJvY2jEmSBicmFrdWplLgorCisgIDUuIEtpZWR5IGp1xbwgdXRyd2FsacWCZcWbIMSHd2ljemVuaWUgcHJ6ZWpkxbogZG8gbGVrY2ppIDEuNi4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgIExla2NqYSAxLjYuOiBFRFlDSkEgUExJS1UKKworCisJCSAgKiogVcW8eWogIDp3cSAgYWJ5IHphcGlzYcSHIHBsaWsgaSB3eWrFm8SHLiAqKgorCisgICAhISBVV0FHQTogemFuaW0gd3lrb25hc3ogamFraWVrb2x3aWVrIHBvbGVjZW5pYSBwcnplY3p5YWogY2HFgsSFIGxla2NqxJkgISEKKworICAxLiBaYWtvxYRjeiB0dXRvcmlhbCB0YWsgamFrIHcgbGVrY2ppIDEuMi46ICA6cSEKKworICAyLiBXIHBvd8WCb2NlIHd5ZGFqIHBvbGVjZW5pZTogIHZpbSB0dXRvcjxFTlRFUj4KKyAgICAgInZpbSIgamVzdCBwb2xlY2VuaWVtIHVydWNoYW1pYWrEhWN5bSBlZHl0b3IgVmltbS4gJ3R1dG9yJyB0byBuYXp3YSBwbGlrdQorICAgICBqYWtpIGNoY2VzeiBlZHl0b3dhxIcuIFXFvHlqIHBsaWt1IGpha2kgbW/FvGUgem9zdGHEhyB6bWllbmlvbnkuCisKKyAgMy4gRG9kYWogaSB1c3XFhCB0ZWtzdCB0YWsgamFrIHNpxJkgbmF1Y3p5xYJlxZsgdyBwb3ByemVkbmljaCBsZWtjamFjaC4KKworICA0LiBaYXBpc3ogcGxpayB6ZSB6bWlhbmFtaSB3IG9wdcWbxIcgVmltYTogIDp3cTxFTlRFUj4KKworICA1LiBVcnVjaG9tIHBvbm93bmllIHZpbXR1dG9yIGkgcHJ6ZWpkxbogZG8gcG9kc3Vtb3dhbmlhIGxla2NqaS4KKworICA2LiBQbyBwcnplY3p5dGFuaXUgd3N6eXN0a2ljaCBrcm9rw7N3IGkgenJvenVtaWVuaXUgaWNoOiB3eWtvbmFqIGplLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICBMRUtDSkEgMS4gUE9EU1VNT1dBTklFCisKKyAgMS4gUG9ydXN6YXN6IGt1cnNvcmVtIHXFvHl3YWrEhWMgInN0cnphxYJlayIgaSBrbGF3aXN6eSAgaGprbCAuCisgICAgICAgaCAodyBsZXdvKQkgaiAodyBkw7PFgikJIGsgKGRvIGfDs3J5KQkJbCAodyBwcmF3bykKKworICAyLiBCeSB3ZWrFm8SHIGRvIFZpbS1hICh6IHBvd8WCb2tpKSB3cGlzejoKKwkJCSAgICB2aW0gTkFaV0FfUExJS1U8RU5URVI+CisKKyAgMy4gQnkgd3lqxZvEhyB6IFZpbS1hIHdwaXN6OgorCQkJICAgIDxFU0M+IDpxITxFTlRFUj4gIGJ5IHVzdW7EhWMgd3N6eXN0a2llIHptaWFueS4KKwkgICAgIExVQjoJICAgIDxFU0M+IDp3cTxFTlRFUj4gIGJ5IHptaWFueSB6YWNob3dhxIcuCisKKyAgNC4gQnkgdXN1bsSFxIcgem5hayBwb2Qga3Vyc29yZW0gd2NpxZtuaWo6ICB4CisKKyAgNS4gQnkgd3N0YXdpxIcgdGVrc3QgcHJ6ZWQga3Vyc29yZW0gbHViIGRvZGHEhzoKKwlpICAgICAgICAgd3Bpc3ogdGVrc3QgICAgICA8RVNDPiB3c3Rhd2kgcHJ6ZWQga3Vyc29yZW0KKwlBICAgICAgICAgd3Bpc3ogdGVrc3QgICAgICA8RVNDPiBkb2RhIG5hIGtvxYRjdSBsaW5paQorCitVV0FHQTogV2NpxZtuacSZY2llIDxFU0M+IHByemVuaWVzaWUgQ2nEmSB6IHBvd3JvdGVtIGRvIHRyeWJ1IE5vcm1hbAorbHViIG9kd2/FgmEgbmllY2hjaWFuZSBsdWIgY3rEmcWbY2lvd28gd3Byb3dhZHpvbmUgcG9sZWNlbmlhLgorCitUZXJheiBtb8W8ZW15IGtvbnR5bnVvd2HEhyBpIHByemVqxZvEhyBkbyBMZWtjamkgMi4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgIExla2NqYSAyLjEuOiBQT0xFQ0VOSUUgREVMRVRFICh1c3V3YW5pZSkKKworCisJCSAgICAgICoqIFdwaXN6ICBkdyAgYnkgdXN1bsSFYyB3eXJhei4gKioKKworICAxLiBXY2nFm25paiAgPEVTQz4gIGJ5IHVwZXduacSHIHNpxJksIMW8ZSBqZXN0ZcWbIHcgdHJ5YmllIE5vcm1hbC4KKworICAyLiBQcnplbmllxZsga3Vyc29yIGRvIGxpbmlpIHBvbmnFvGVqIG96bmFjem9uZWogLS0tPi4KKworICAzLiBQcnplc3XFhCBrdXJzb3IgbmEgcG9jesSFdGVrIHd5cmF6dSwga3TDs3JlIGNoY2VzeiB1c3VuxIXEhy4KKworICA0LiBXcGlzeiAgIGR3ICAgYnkgdXN1bsSFYyB3eXJhei4KKworICBVV0FHQTogTGl0ZXJhICBkICBwb2phd2kgc2nEmSBuYSBkb2xlIGVrcmFudS4gVmltIGN6ZWthIG5hIHdwaXNhbmllICB3IC4gCisJIEplxZtsaSB6b2JhY3p5c3ogaW5ueSB6bmFrIHdwaXNhxYJlxZsgY2/FmyDFumxlLCB3Y2nFm25paiA8RVNDPiBpIHphY3puaWoKKwkgb2QgcG9jesSFdGt1LgorCistLS0+IEplc3QgdHUgcGFyxJkgcGFwaWVyIHd5cmF6w7N3LCBrdMOzcmUga2FtaWXFhCBuaWUgbmFsZcW8xIUgZG8gbm/FvHljZSB0ZWdvIHpkYW5pYS4KKworICA1LiBQb3d0YXJ6YWoga3Jva2kgMy4gaSA0LiBkb3DDs2tpIHpkYW5pZSBuaWUgYsSZZHppZSBwb3ByYXduZSwgcG90ZW0KKyAgcHJ6ZWpkxbogZG8gTGVrY2ppIDIuMi4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICBMZWtjamEgMi4yLjogV0nEmENFSiBQT0xFQ0XFgyBVU1VXQUrEhENZQ0gKKworCisJICAgICAgKiogV3Bpc3oJZCQgIGFieSB1c3VuxIXEhyB0ZWtzdCBkbyBrb8WEY2EgbGluaWkuICoqCisKKyAgMS4gV2NpxZtuaWogIDxFU0M+ICBhYnkgc2nEmSB1cGV3bmnEhywgxbxlIGplc3RlxZsgdyB0cnliaWUgTm9ybWFsLgorCisgIDIuIFByemVuaWXFmyBrdXJzb3IgZG8gbGluaWkgcG9uacW8ZWogb3puYWN6b25laiAtLS0+LgorCisgIDMuIFByemVuaWXFmyBrdXJzb3IgZG8ga2/FhGNhIHBvcHJhd25lZ28gemRhbmlhIChQTyBwaWVyd3N6ZWogIC4gKS4KKworICA0LiBXcGlzeiAgZCQgIGFieSB1c3VuxIXEhyByZXN6dMSZIGxpbmlpLgorCistLS0+IEt0b8WbIHdwaXNhxYIga29uaWVjIHRlZ28gemRhbmlhIGR3dWtyb3RuaWUuIHpkYW5pYSBkd3Vrcm90bmllLgorCisKKyAgNS4gUHJ6ZWpkxbogZG8gTGVrY2ppIDIuMy4gYnkgenJvenVtaWXEhyBjbyBzacSZIHN0YcWCby4KKworCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICBMZWtjamEgMi4zLjogTyBPUEVSQVRPUkFDSCBJIFJVQ0hBQ0gKKworCisgIFdpZWxlIHBvbGVjZcWEIHptaWVuaWFqxIVjeWNoIHRla3N0IHPEhSB6xYJvxbxvbmUgeiBvcGVyYXRvcmEgaSBydWNodS4KKyAgRm9ybWF0IGRsYSBwb2xlY2VuaWEgdXN1d2FqxIVjZWdvIHogb3BlcmF0b3JlbSAgZCAgamVzdCB0YWtpOgorCisJICAgIGQgIHJ1Y2gKKworICBHZHppZToKKyAgIGQgICAgICAtIG9wZXJhdG9yIHVzdXdhbmlhLgorICAgcnVjaCAgIC0gbmEgY3p5bSBwb2xlY2VuaWUgYsSZZHppZSB3eWtvbnl3YW5lIChsaXN0YSBwb25pxbxlaikuCisKKyAgS3LDs3RrYSBsaXN0YSBydWNow7N3OgorICAgIHcgLSBkbyBwb2N6xIV0a3UgbmFzdMSZcG5lZ28gd3lyYXp1IFdZxYHEhENaQUrEhEMgcGllcndzenkgem5hay4KKyAgICBlIC0gZG8ga2/FhGNhIGJpZcW8xIVjZWdvIHd5cmF6dSwgV8WBxIRDWkFKxIRDIG9zdGF0bmkgem5hay4KKyAgICAkIC0gZG8ga2/FhGNhIGxpbmlpLCBXxYHEhENaQUrEhEMgb3N0YXRuaSB6bmFrLgorCitXIHRlbiBzcG9zw7NiIHdwaXNhbmllICBkZSAgdXN1bmllIHpuYWtpIG9kIGt1cnNvcmEgZG8ga2/FhGNhIHd5cmF6dS4KKworVVdBR0E6IFdwaXNhbmllIHR5bGtvIHJ1Y2h1IHcgdHJ5YmllIE5vcm1hbCBiZXogb3BlcmF0b3JhIHByemVuaWVzaWUga3Vyc29yCisgICAgICAgdGFrIGphayB0byBva3JlxZtsb25vLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgIExla2NqYSAyLjQuOiBVxbtZQ0lFIE1OT8W7TklLQSBETEEgUlVDSFUKKworCisgICAqKiBXcGlzYW5pZSBsaWN6YnkgcHJ6ZWQgcnVjaGVtIHBvd3RhcnphIHJ1Y2ggb2Rwb3dpZWRuacSFIGlsb8WbxIcgcmF6eS4gKioKKworICAxLiBQcnplbmllxZsga3Vyc29yIG5hIHBvY3rEhXRlayBsaW5paSBwb25pxbxlaiB6YXpuYWN6b25laiAtLS0+LgorCisgIDIuIFdwaXN6ICAydyAgYWJ5IHByemVuaWXFm8SHIGt1cnNvciBvIGR3YSB3eXJhenkgZG8gcHJ6b2R1LgorCisgIDMuIFdwaXN6ICAzZSAgYWJ5IHByemVuaWXFm8SHIGt1cnNvciBkbyBrb8WEY2EgdHJ6ZWNpZWdvIHd5cmF6dSB3IHByesOzZC4KKworICA0LiBXcGlzeiAgMCAgKHplcm8pIGFieSBwcnplbmllxZvEhyBrdXJzb3IgZG8gcG9jesSFdGt1IGxpbmlpLgorCisgIDUuIFBvd3TDs3J6IGtyb2tpIDIuIGkgMy4geiBpbm55bWkgbGljemJhbWkuCisKKworIC0tLT4gVG8gamVzdCB6d3lrxYJ5IHdpZXJzeiB6IHd5cmF6YW1pIHBvIGt0w7NyeWNoIG1vxbxlc3ogc2nEmSBwb3J1c3phxIcuCisKKyAgNi4gUHJ6ZWpkxbogZG8gbGVrY2ppIDIuNS4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQlMZWtjamEgMi41LjogVcW7WUNJRSBNTk/Fu05JS0EgQlkgV0nEmENFSiBVU1VOxITEhgorCisKKyAgICAqKiBXcGlzYW5pZSBsaWN6YnkgeiBvcGVyYXRvcmVtIHBvd3RhcnphIGdvIG9kcG93aWVkbmnEhSBpbG/Fm8SHIHJhenkuICoqCisKKyAgVyB3ecW8ZWogd3Nwb21uaWFuZWoga29tYmluYWNqaSBvcGVyYXRvcmEgdXN1d2FuaWEgaSBydWNodSBwb2RhaiBtbm/FvG5paworICBwcnplZCBydWNoZW0gYnkgd2nEmWNlaiB1c3VuxIXEhzoKKwlkICBsaWN6YmEgIHJ1Y2gKKworICAxLiBQcnplbmllxZsga3Vyc29yIGRvIHBpZXJ3c3plZ28gd3lyYXp1IEtBUElUQUxJS0FNSSB3IGxpbmlpIHphem5hY3pvbmVqIC0tLT4uCisKKyAgMi4gV3Bpc3ogIDJkdyAgYWJ5IHVzdW7EhcSHIGR3YSB3eXJhenkgS0FQSVRBTElLQU1JLgorCisgIDMuIFBvd3RhcnphaiBrcm9raSAxLiBpIDIuIHogaW5ueW1pIG1ub8W8bmlrYW1pIGFieSB1c3VuxIXEhyBrb2xlam5lIHd5cmF6eQorICAgICBLQVBJVEFMSUtBTUkgamVkbnltIHBvbGVjZW5pZW0KKworLS0tPiB0YSBBU0QgV0UgbGluaWEgUVdFIEFTREYgWlhDViBGRyB3eXJhesOzdyB6b3N0YcWCYSBFUlQgRkdIIENGIG9jenlzemN6b25hLgorCitVV0FHQTogIE1ub8W8bmlrIHBvbWnEmWR6eSBvcGVyYXRvcmVtICBkICBpIHJ1Y2hlbSBkemlhxYJhIHBvZG9ibmllIGRvIHJ1Y2h1IGJlegorICAgICAgICBvcGVyYXRvcmEuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIExla2NqYSAyLjYuOiBPUEVST1dBTklFIE5BIExJTklBQ0gKKworCisJCSAgICoqIFdwaXN6ICBkZCAgYWJ5IHVzdW7EhcSHIGNhxYLEhSBsaW5pxJkuICoqCisKKyAgWiBwb3dvZHUgY3rEmXN0b8WbY2kgdXN1d2FuaWEgY2HFgnljaCBsaW5paSwgcHJvamVrdGFuY2kgVkkgemRlY3lkb3dhbGksIMW8ZQorICBixJlkemllIMWCYXR3aWVqIHdwaXNhxIcgZHdhIHJhenkgIGQgIGFieSB1c3VuxIXEhyBsaW5pxJkuCisKKyAgMS4gUHJ6ZW5pZcWbIGt1cnNvciBkbyB6ZGFuaWEgcG9uacW8ZWouCisgIDIuIFdwaXN6ICBkZCAgYWJ5IHVzdW7EhWMgd2llcnN6LgorICAzLiBUZXJheiBwcnplbmllxZsgc2nEmSBkbyBjendhcnRlZ28gd2llcnN6YS4KKyAgNC4gV3Bpc3ogIDJkZCAgYWJ5IHVzdW7EhWMgZHdpYSB3aWVyc3plLgorCistLS0+ICAxKSAgUsOzxbxlIHPEhSBjemVyd29uZSwKKy0tLT4gIDIpICBCxYJvdG8gamVzdCBmYWpuZSwKKy0tLT4gIDMpICBGaW/FgmtpIHPEhSBuaWViaWVza2llLAorLS0tPiAgNCkgIE1hbSBzYW1vY2jDs2QsCistLS0+ICA1KSAgWmVnYXIgcG9kYWplIGN6YXMsCistLS0+ICA2KSAgQ3VraWVyIGplc3Qgc8WCb2RraSwKKy0tLT4gIDcpICBJIHR5IHRlxbwuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIExla2NqYSAyLjcuOiBQT0xFQ0VOSUUgVU5ETyAoY29mbmlqKQorCisKKwkgICoqIFdjacWbbmlqICB1ICBhYnkgY29mbsSFxIcgc2t1dGtpIG9zdGF0bmllZ28gcG9sZWNlbmlhLgorCQkgVSB6YcWbLCBieSBjb2ZuxIXEhyBza3V0a2kgZGxhIGNhxYJlaiBsaW5paS4gKioKKworICAxLiBQcnplbmllxZsga3Vyc29yIGRvIHpkYW5pYSBwb25pxbxlaiBvem5hY3pvbmVnbyAtLS0+IGkgdW1pZcWbxIcgZ28gbmEKKyAgICAgcGllcndzenltIGLFgsSZZHppZS4KKyAgMi4gV3Bpc3ogIHggIGFieSB1c3VuxIXEhyBwaWVyd3N6eSBuaWVjaGNpYW55IHpuYWsuCisgIDMuIFRlcmF6IHdjacWbbmlqICB1ICBhYnkgY29mbsSFxIcgc2t1dGtpIG9zdGF0bmllZ28gcG9sZWNlbmlhLgorICA0LiBUeW0gcmF6ZW0gcG9wcmF3IHdzenlzdGtpZSBixYLEmWR5IHcgbGluaWkgdcW8eXdhasSFYyBwb2xlY2VuaWEgIHggLgorICA1LiBUZXJheiB3Y2nFm25paiB3aWVsa2llIFUgYWJ5IHByenl3csOzY2nEhyBsaW5pxJkgZG8gb3J5Z2luYWxuZWdvIHN0YW51LgorICA2LiBUZXJheiB3Y2nFm25paiAgdSAga2lsa2EgcmF6eSBieSBjb2ZuxIXEhyAgVSAgaSBwb3ByemVkbmllIHBvbGVjZW5pYS4KKyAgNy4gVGVyYXogd3BzeiBDVFJMLVIgKHRyenltYWogcsOzd25vY3plxZtuaWUgd2NpxZtuacSZdGUga2xhd2lzemUgQ1RSTCBpIFIpCisgICAgIGtpbGthIHJhenksIGJ5IGNvZm7EhcSHIGNvZm5pxJljaWEuCisKKy0tLT4gUG9vcHJhdyBibMSZZHl5eSB3IHRlZWogbGluaWlpIGkgemFhbWlpZcWEIGplIHBycnpleiBjb29mbmlqLgorCisgIDguIFRvIHPEhSBiYXJkem8gcG/FvHl0ZWN6bmUgcG9sZWNlbmlhLgorCisgICAgIFByemVqZMW6IHRlcmF6IGRvIHBvZHN1bW93YW5pYSBMZWtjamkgMi4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgIExFS0NKQSAyLiBQT0RTVU1PV0FOSUUKKworCisgIDEuIEJ5IHVzdW7EhcSHIHpuYWtpIG9kIGt1cnNvcmEgZG8gbmFzdMSZcG5lZ28gd3lyYXp1IHdwaXN6OiAgIGR3CisgIDIuIEJ5IHVzdW7EhcSHIHpuYWtpIG9kIGt1cnNvcmEgZG8ga2/FhGNhIGxpbmlpIHdwaXN6OiAgICBkJAorICAzLiBCeSB1c3VuxIXEhyBjYcWCxIUgbGluacSZOiAgICBkZAorICA0LiBCeSBwb3d0w7NyennEhyBydWNoIHBvcHJ6ZWTFuiBnbyBsaWN6YsSFOiAgICAydworICA1LiBGb3JtYXQgcG9sZWNlbmlhIHptaWFueSB0bzoKKyAgICAgICAgICAgICAgICBvcGVyYXRvciAgW2xpY3piYV0gIHJ1Y2gKKyAgZ2R6aWU6CisgICBvcGVyYXRvciAgLSB0byBjbyB0cnplYmEgenJvYmnEhyAobnAuICBkICBkbGEgdXN1d2FuaWEpCisgICBbbGljemJhXSAgLSBvcGNqb25hbG5lLCBpbGUgcmF6eSBwb3d0w7NyennEhyBydWNoCisgICBydWNoICAgICAgLSBwcnplbm9zaSBuYWQgdGVrc3RlbSBkbyBvcGVyb3dhbmlhLCB0YWtpbSBqYWsgIHcgKHd5cmF6KSwgCisJICAgICAgICQgIChkbyBrb8WEY2EgbGluaWkpLCBldGMuCisKKyAgNi4gQnkgcHJ6ZWrFm8SHIGRvIHBvY3rEhXRrdSBsaW5paSB1xbx5aiB6ZXJhOiAgMAorICA3LiBCeSBjb2ZuxIXEhyBwb3ByemVkbmllIHBvbGVjZW5pZSwgd3Bpc3o6CSAgdSAobWHFgmUgdSkKKyAgICAgQnkgY29mbsSFxIcgd3N6eXN0a2llIHptaWFueSB3IGxpbmlpIHdwaXN6OgkgIFUgKHdpZWxraWUgVSkKKyAgICAgQnkgY29mbsSFxIcgY29mbmnEmWNpYSB3cGlzejoJCQkgIENUUkwtUgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgTGVrY2phIDMuMS46IFBPTEVDRU5JRSBQVVQgKHdzdGF3KQorCisKKwkgICoqIFdwaXN6ICBwICBieSB3c3Rhd2nEhyBvc3RhdG5pZSB1c3VuacSZY2lhIHphIGt1cnNvcmVtLiAqKgorCisgIDEuIFByemVuaWXFmyBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIC0tLT4gcG9uacW8ZWouCisKKyAgMi4gV3Bpc3ogIGRkICBhYnkgdXN1bsSFxIcgbGluacSZIGkgcHJ6ZWNob3dhxIcgasSFIHcgcmVqZXN0cnplIFZpbS1hLgorCisgIDMuIFByemVuaWXFmyBrdXJzb3IgZG8gbGluaWkgYyksIFBPV1nFu0VKIHRlaiBnZHppZSB1c3VuacSZdGEgbGluaWEgcG93aW5uYQorICAgICBzacSZIHpuYWpkb3dhxIcuCisKKyAgNC4gV2NpxZtuaWogIHAgIGJ5IHdzdGF3acSHIGxpbmnEmSBwb25pxbxlaiBrdXJzb3JhLgorCisgIDUuIFBvd3RhaiBrcm9raSAyLiBkbyA0LiBhxbwgem5hamTEhSBzacSZIHcgb2Rwb3dpZWRuaW0gcG9yesSFZGt1LgorCistLS0+IGQpIEphayBkd2EgYW5pb8WCa2kuCistLS0+IGIpIE5hIGRvbGUgZmlvxYJraSwKKy0tLT4gYykgQSBteSBzacSZIGtvY2hhbXksCistLS0+IGEpIE5hIGfDs3J6ZSByw7PFvGUsCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICBMZWtjamEgMy4yLjogUE9MRUNFTklFIFJFUExBQ0UgKHphc3TEhXApCisKKworCSAgICoqIFdwaXN6ICByeCAgYWJ5IHphc3TEhXBpxIcgem5hayBwb2Qga3Vyc29yZW0gbmEgIHggLiAqKgorCisgIDEuIFByemVuaWXFmyBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIHBvbmnFvGVqIG96bmFjem9uZWogLS0tPgorCisgIDIuIFVzdGF3IGt1cnNvciBuYSBwaWVyd3N6eW0gYsWCxJlkemllLgorCisgIDMuIFdwaXN6ICByICBhIHBvdGVtIHpuYWsgamFraSBwb3dpbmllbiBnbyB6YXN0xIVwacSHLgorCisgIDQuIFBvd3RhcnphaiBrcm9raSAyLiBpIDMuIGRvcMOza2kgcGllcndzemEgbGluaWEgbmllIGLEmWR6aWUgdGFrYSBqYWsgZHJ1Z2EuCisKKy0tLT4gIEtqZWR5IHRlbiB3aWVyc3ogYmnFgiB3c3TDs2tpd2FueSBrdG/FmyB3Y2l6bsSFxYIgcGVyxJkgesWCeWNoIGtsYXdpcnp5IQorLS0tPiAgS2llZHkgdGVuIHdpZXJzeiBiecWCIHdzdHVraXdhbnkga3RvxZsgd2Npc27EhcWCIHBhcsSZIHrFgnljaCBrbGF3aXN6eSEKKworICA1LiBUZXJheiBjemFzIG5hIExla2NqxJkgMy4zLgorCisKK1VXQUdBOiBQYW1pxJl0YWogYnkgdWN6ecSHIHNpxJkgxId3aWN6xIVjLCBhIG5pZSBwYW1pxJljaW93by4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICBMZWtjamEgMy4zLjogT1BFUkFUT1IgQ0hBTkdFICh6bWllxYQpCisKKwkJICoqIEJ5IHptaWVuacSHIGRvIGtvxYRjYSB3eXJhenUgd3Bpc3ogIGNlIC4gKioKKworICAxLiBQcnplbmllxZsga3Vyc29yIGRvIHBpZXJ3c3plaiBsaW5paSBwb25pxbxlaiBvem5hY3pvbmVqIC0tLT4uCisKKyAgMi4gVW1pZcWbxIcga3Vyc29yIG5hICB1ICB3IGx1bm9zLgorCisgIDMuIFdwaXN6ICBjZSAgaSBwb3ByYXcgd3lyYXogKHcgdHltIHd5cGFka3Ugd3N0YXcgIGluaWEgKS4KKworICA0LiBXY2nFm25paiA8RVNDPiBpIHByemVqZMW6IGRvIG5hc3TEmXBuZWogcGxhbm93YW5laiB6bWlhbnkuCisKKyAgNS4gUG93dGFyemFqIGtyb2tpIDMuIGkgNC4gZG9ww7NraSBwaWVyd3N6ZSB6ZGFuaWUgbmllIGLEmWR6aWUgdGFraWUgc2FtZQorICAgICBqYWsgZHJ1Z2llLgorCistLS0+IFRhIGx1bm9zIG1hIHBpcmUgc8WCw7N3LCBrdMOzcmUgdMW8aW5hIHpibmljIHXFvGlmYWpvbmMgcGNtYXp1IHptaWXFhC4KKy0tLT4gVGEgbGluaWEgbWEgcGFyxJkgc8WCw7N3LCBrdMOzcmUgdHJ6ZWJhIHptaWVuacSHIHXFvHl3YWrEhWMgcG9sZWNlbmlhIHptaWXFhC4KKworICBaYXV3YcW8LCDFvGUgIGNlICBuaWUgdHlsa28gemFtaWVuaWEgd3lyYXosIGFsZSB0YWvFvGUgem1pZW5pYSB0cnliIG5hCisgIEluc2VydCAod3Byb3dhZHphbmllKS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAgTGVrY2phIDMuNC46IFdJxJhDRUogWk1JQU4gVcW7WVdBSsSEQyBjCisKKworCSoqIFBvbGVjZW5pZSBjaGFuZ2UgdcW8eXdhIHRha2ljaCBzYW15Y2ggcnVjaMOzdyBqYWsgZGVsZXRlLiAqKgorCisgIDEuIE9wZXJhdG9yIGNoYW5nZSBkemlhxYJhIHRhayBzYW1vIGphayBkZWxldGUuIEZvcm1hdCB3eWdsxIVkYSB0YWs6CisKKwkgICAgYyAgIFtsaWN6YmFdICAgcnVjaAorCisgIDIuIFJ1Y2h5IHPEhSB0YWvFvGUgdGFraWUgc2FtZSwgbnAuOiAgdyAgKHd5cmF6KSwgICQgIChrb25pZWMgbGluaWkpLCBldGMuCisKKyAgMy4gUHJ6ZW5pZcWbIHNpxJkgZG8gcGllcndzemVqIGxpbmlpIHBvbmnFvGVqIG96bmFjem9uZWogLS0tPgorCisgIDQuIFVzdGF3IGt1cnNvciBuYSBwaWVyd3N6eW0gYsWCxJlkemllLgorCisgIDUuIFdwaXN6ICBjJCAsIHBvcHJhdyBrb25pZWMgd2llcnN6YSBpIHdjacWbbmlqIDxFU0M+LgorCistLS0+IEtvbmllYyB0ZWdvIHdpZXJzemEgbXVzaSBiecSHIHBvcHJhd2lvbnkgYWJ5IHd5Z2zEhWRhbCB0YWsgamFrIGRydWdpLgorLS0tPiBLb25pZWMgdGVnbyB3aWVyc3phIG11c2kgYnnEhyBwb3ByYXdpb255IHXFvHl3YWrEhWMgcG9sZWNlbmlhICBjJCAuCisKK1VXQUdBOiAgTW/FvGVzeiB1xbx5d2HEhyA8QlM+IGFieSBwb3ByYXdpYcSHIGLFgsSZZHkgdyBjemFzaWUgcGlzYW5pYS4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgIExFS0NKQSAzLiBQT0RTVU1PV0FOSUUKKworCisgIDEuIEFieSB3c3Rhd2nEhyB0ZWtzdCwga3TDs3J5IHpvc3RhxYIgd2N6ZcWbbmllaiB1c3VuacSZdHkgd2NpxZtuaWogIHAgLiBUbworICAgICBwb2xlY2VuaWUgd3N0YXdpYSBza2Fzb3dhbnkgdGVrc3QgUE8ga3Vyc29yemUgKGplxZtsaSBjYcWCYSBsaW5pYQorICAgICB6b3N0YcWCYSB1c3VuacSZdGEsIHpvc3RhbmllIG9uYSB1bWllc3pjem9uYSB3IGxpbmlpIHBvbmnFvGVqIGt1cnNvcmEpLgorCisgIDIuIEJ5IHphbWllbmnEhyB6bmFrIHBvZCBrdXJzb3JlbSB3Y2nFm25paiAgciAgYSBwb3RlbSB6bmFrLCBrdMOzcnkgbWEgemFzdMSFcGnEhworICAgICBvcnlnaW5hbG55LgorCisgIDMuIE9wZXJhdG9yIGNoYW5nZSBwb3p3YWxhIENpIG5hIHphc3TEhXBpZW5pZSBvZCBrdXJzb3JhIGRvIG1pZWpzY2EgZ2R6aWUKKyAgICAgemFicmHFgmJ5IGNpxJkgcnVjaC4gTnAuIHdwaXN6ICBjZSAgYWJ5IHphbWllbmnEhyB0ZWtzdCBvZCBrdXJzb3JhIGRvIGtvxYRjYQorICAgICB3eXJhenUsICBjJCAgYWJ5IHptaWVuacSHIHRla3N0IGRvIGtvxYRjYSBsaW5paS4KKworICA0LiBGb3JtYXQgZG8gcG9sZWNlbmlhIGNoYW5nZSAoem1pZcWEKToKKworCWMgICBbbGljemJhXSAgIG9iaWVrdAorCisgICAgIFRlcmF6IHByemVqZMW6IGRvIG5hc3TEmXBuZWogbGVrY2ppLgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJICAgICAgIExla2NqYSA0LjEuOiBQT8WBT8W7RU5JRSBLVVJTT1JBIE9SQVogU1RBVFVTIFBMSUtVCisKKyAgICAgICAqKiBOYWNpxZtuaWogQ1RSTC1HIGFieSB6b2JhY3p5xIcgc3dvamUgcG/Fgm/FvGVuaWUgdyBwbGlrdSBpIHN0YXR1cworCSAgcGxpa3UuIE5hY2nFm25paiAgRyAgYWJ5IHByemVqxZvEhyBkbyBsaW5paSB3IHBsaWt1LiAqKgorCisgIFVXQUdBOiBQcnplY3p5dGFqIGNhxYLEhSBsZWtjasSZIHphbmltIHd5a29uYXN6IGpha2llxZsgcG9sZWNlbmlhISEhCisKKyAgMS4gUHJ6eXRyenltYWoga2xhd2lzeiBDVFJMIGkgd2NpxZtuaWogIGcgLiBVxbx5d2FteSBub3RhY2ppIENUUkwtRy4gCisgICAgIE5hIGRvbGUgc3Ryb255IHBvamF3aSBzacSZIHBhc2VrIHN0YXR1c3UgeiBuYXp3xIUgcGxpa3UgaSBwb3p5Y2rEhSB3IHBsaWt1LgorICAgICBaYXBhbWnEmXRhaiBudW1lciBsaW5paSBkbGEgcG90cnplYiBrcm9rdSAzLgorCitVV0FHQTogTW/FvGVzeiB0ZcW8IHpvYmFjennEhyBwb3p5Y2rEmSBrdXJzb3JhIHcgcHJhd3ltLCBkb2xueW0gcm9ndSBla3JhbnUuCisgICAgICAgRHppZWplIHNpxJkgdGFrIGtpZWR5IHVzdGF3aW9uYSBqZXN0IG9wY2phICdydWxlcicgKHd5amHFm25pb25lIHcgbGVrY2ppIDYuKS4KKworICAyLiBXY2nFm25paiBHIGFieSBwcnplasWbxIcgbmEga29uaWVjIHBsaWt1LgorICAgICBXY2nFm25paiAgZ2cgIGFieSBwcnplasWbxIcgZG8gcG9jesSFdGt1IHBsaWt1LgorCisgIDMuIFdwaXN6IG51bWVyIGxpbmlpLCB3IGt0w7NyZWogYnnFgmXFmyBhIHBvdGVtICBHIC4gVG8gcHJ6ZW5pZXNpZSBjacSZCisgICAgIHogcG93cm90ZW0gZG8gbGluaWksIHcga3TDs3JlaiBiecWCZcWbIGtpZWR5IHdjaXNuxIXFgmXFmyBDVFJMLUcuCisKKyAgNC4gSmXFm2xpIGN6dWplc3ogc2nEmSB3eXN0YXJjemFqxIVjbyBwZXduaWUsIHd5a29uYWoga3Jva2kgMS0zLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSBMZWtjamEgNC4yLjogUE9MRUNFTklFIFNaVUtBSgorCisKKwkgICAgICoqIFdwaXN6ICAvICBhIG5hc3TEmXBuaWUgd3lyYcW8ZW5pZSBhYnkgamUgem5hbGXFusSHLiAqKgorCisgIDEuIFcgdHJ5YmllIE5vcm1hbCB3cGlzeiAgLyAuIFphdXdhxbwsIMW8ZSB6bmFrIHRlbiwgb3JheiBrdXJzb3IgcG9qYXdpxIUKKyAgICAgc2nEmSBuYSBkb2xlIGVrcmFudSB0YWsgc2FtbyBqYWsgcG9sZWNlbmllICA6IC4KKworICAyLiBUZXJheiB3cGlzeiAgYsWCb25kPEVOVEVSPiAuICBUbyBqZXN0IHPFgm93bywga3TDs3JlZ28gY2hjZXN6IHN6dWthxIcuCisKKyAgMy4gQnkgc3p1a2HEhyB0ZWogc2FtZWogZnJhenkgcG9ub3duaWUsIHBvIHByb3N0dSB3Y2nFm25paiAgbiAuCisgICAgIEFieSBzenVrYcSHIHRlaiBmcmF6eSB3IHByemVjaXdueW0sIGtpZXJ1bmt1IHdjacWbbmlqICBOIC4KKworICA0LiBKZcWbbGkgY2hjZXN6IHN6dWthxIcgZnJhenkgZG8gdHnFgnUsIHXFvHlqIHBvbGVjZW5pYSAgPyAgemFtaWFzdCAgLyAuCisKKyAgNS4gQWJ5IHdyw7NjacSHIGdkemllIGJ5xYJlxZsgd2NpxZtuaWogIENUUkwtTy4gUG93dGFyemFqIGJ5IHdyw7NjacSHIGRhbGVqLiBDVFJMLUkKKyAgICAgaWR6aWUgZG8gcHJ6b2R1LgorCitVV0FHQTogICdixYJvbmQnIHRvIG5pZSBqZXN0IG1ldG9kYSBieSBwcnplbGl0ZXJvd2HEhyBixYLEhWQ7ICdixYJvbmQnIHRvIGLFgsSFZC4KK1VXQUdBOiAgS2llZHkgc3p1a2FuaWUgb3NpxIVnbmllIGtvbmllYyBwbGlrdSBixJlkemllIGtvbnR5bnVvd2HFgm8gb2QgcG9jesSFdGt1CitvIGlsZSBvcGNqYSAnd3JhcHNjYW4nIG5pZSB6b3N0YcWCYSBwcnplc3Rhd2lvbmEuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQlMZWtjamEgNC4zLjogVyBQT1NaVUtJV0FOSVUgUEFSVUrEhENZQ0ggTkFXSUFTw5NXCisKKworCQkqKiBXcGlzeiAgJSAgYnkgem5hbGXFusSHIHBhc3VqxIVjeSApLF0sIGx1YiB9IC4gKioKKworICAxLiBVbWllxZvEhyBrdXJzb3IgbmEga3TDs3J5bcWbIHogKCwgWywgbHViIHsgdyBsaW5paSBwb25pxbxlaiBvem5hY3pvbmVqIC0tLT4uCisKKyAgMi4gVGVyYXogd3Bpc3ogem5hayAgJSAuCisKKyAgMy4gS3Vyc29yIHBvd2luaWVuIHNpxJkgem5hbGXFusSHIG5hIHBhcnVqxIVjeW0gbmF3aWFzaWUuCisKKyAgNC4gV2NpxZtuaWogICUgIGFieSBwcnplbmllxZvEhyBrdXJzb3IgeiBwb3dyb3RlbSBkbyBwYXJ1asSFY2VnbyBuYXdpYXN1LgorCisgIDUuIFByemVuaWXFmyBrdXJzb3IgZG8gaW5uZWdvICgsKSxbLF0seyBsdWIgfSBpIHpvYmFjeiBjbyByb2JpICAlIC4KKworLS0tPiBUbyAoIGplc3QgbGluaWEgdGVzdG93YSB6ICgsIFssIF0gaSB7LCB9IC4gKSkKKworVVdBR0E6IFRhIGZ1bmtjamEgamVzdCBiYXJkem8gdcW8eXRlY3puYSB3IGRlYnVnZ293YW5pdSBwcm9ncmFtdQorICAgICAgIHogbmllc3Bhcm93YW55bWkgbmF3aWFzYW1pIQorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgTGVrY2phIDQuNC46IFBPTEVDRU5JRSBTVUJTVElUVVRFICh6YW1pYW5hKQorCisKKwkgKiogV3Bpc3ogIDpzL3N0YXJ5L25vd3kvZyAgYWJ5IHphbWllbmnEhyAnc3RhcnknIG5hICdub3d5Jy4gKioKKworICAxLiBQcnplbmllxZsga3Vyc29yIGRvIGxpbmlpIHBvbmnFvGVqIG96bmFjem9uZWogLS0tPi4KKworICAyLiBXcGlzeiAgOnMvY3phYXMvY3phczxFTlRFUj4gLiAgWmF1d2HFvCwgxbxlIHRvIHBvbGVjZW5pZSB6bWllbmlhCisgICAgIHR5bGtvIHBpZXJ3c3plIHd5c3TEhXBpZW5pZSAnY3phYXMnIHcgbGluaWkuCisKKyAgMy4gVGVyYXogd3Bpc3ogIDpzL2N6YWFzL2N6YXMvZyAgLiBEb2RhbmUgIGcgIG96bmFjemEgemFtaWFuxJkgKHN1YnN0eXR1Y2rEmSkKKyAgICAgZ2xvYmFsbmllIHcgY2HFgmVqIGxpbmlpLiAgWm1pZW5pYSB3c3p5c3RraWUgd3lzdMSFcGllbmlhICdjemFhcycgdyBsaW5paS4KKworLS0tPiBOYWpsZXBzenkgY3phYXMgbmEgem9iYWN6ZW5pZSBuYWrFgmFkbmllanN6eWNoIGt3aWF0w7N3IHRvIGN6YWFzIHdpb3NueS4KKworICA0LiBBYnkgem1pZW5pxIcgd3N6eXN0a2llIHd5c3TEhXBpZW5pYSDFgmHFhGN1Y2hhIHpuYWvDs3cgcG9tacSZZHp5IGR3b21hIGxpbmlhbWksCisgICAgIHdwaXN6OiA6Iywjcy9zdGFyZS9ub3dlL2cgZ2R6aWUgIywjIHPEhSBudW1lcmFtaSBsaW5paSBvZ3JhbmljemFqxIVjeWNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uIGdkemllIG1hIG5hc3TEhXBpxIcgemFtaWFuYS4KKyAgICAgd3Bpc3ogIDolcy9zdGFyZS9ub3dlL2cgICBieSB6bWllbmnEhyB3c3p5c3RraWUgd3lzdMSFcGllbmlhIHcgY2HFgnltIHBsaWt1LgorICAgICB3cGlzeiAgOiVzL3N0YXJlL25vd2UvZ2MgIGJ5IHptaWVuacSHIHdzenlzdGtpZSB3eXN0xIVwaWVuaWEgdyBjYcWCeW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGlrdSwgcHJvc3rEhWMgbyBwb3R3aWVyZHplbmllIHphIGthxbxkeW0gcmF6ZW0KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgIExFS0NKQSA0LiBQT0RTVU1PV0FOSUUKKworICAxLiBDVFJMLUcgICBwb2thxbxlIFR3b2rEhSBwb3p5Y2rEmSB3IHBsaWt1IGkgc3RhdHVzIHBsaWt1LiAgU0hJRlQtRyBwcnplbm9zaQorCSAgICAgIGNpxJkgZG8ga2/FhGNhIHBsaWt1LgorICAgICBHICAgICAgICBwcnplbm9zaSBkbyBrb8WEY2EgcGxpa3UuCisgICAgIGxpY3piYSBHIHByemVub3NpIGRvIGxpbmlpIFtsaWN6YmFdLgorICAgICBnZyAgICAgICBwcnplbm9zaSBkbyBwaWVyd3N6ZWogbGluaWkuCisKKyAgMi4gV3Bpc2FuaWUgIC8gIGEgbmFzdMSZcG5pZSDFgmHFhGN1Y2hhIHpuYWvDs3cgc3p1a2EgxYJhxYRjdWNoYSBETyBQUlpPRFUuCisgICAgIFdwaXNhbmllICA/ICBhIG5hc3TEmXBuaWUgxYJhxYRjdWNoYSB6bmFrw7N3IHN6dWthIMWCYcWEY3VjaGEgRE8gVFnFgVUuCisgICAgIFBvIHd5c3p1a2l3YW5pdSB3Y2nFm25paiAgbiAgYnkgem5hbGXFusSHIG5hc3TEmXBuZSB3eXN0xIVwaWVuaWUgc3p1a2FuZWoKKyAgICAgZnJhenkgdHltIHNhbXltIGtpZXJ1bmt1IGx1YiAgTiAgYnkgc3p1a2HEhyB3IGtpZXJ1bmt1IHByemVjaXdueW0uCisgICAgIENUUkwtTyBwcnplbm9zaSBkbyBzdGFyc3p5Y2ggcG96eWNqaSwgQ1RSTC1JIGRvIG5vd3N6eWNoLgorCisgIDMuIFdwaXNhbmllICAlICBnZHkga3Vyc29yIHpuYWpkdWplIHNpxJkgbmEgKCwpLFssXSx7LCBsdWIgfSBsb2thbGl6dWplCisgICAgIHBhcnVqxIVjeSB6bmFrLgorCisgIDQuIEJ5IHphbWllbmnEhyBwaWVyd3N6eSBzdGFyeSBuYSBub3d5IHcgbGluaWkgd3Bpc3ogICAgICA6cy9zdGFyeS9ub3d5CisgICAgIEJ5IHphbWllbmnEhyB3c3p5c3RraWUgc3RhcnkgbmEgbm93eSB3IGxpbmlpIHdwaXN6ICAgICA6cy9zdGFyeS9ub3d5L2cKKyAgICAgQnkgemFtaWVuacSHIGZyYXp5IHBvbWnEmWR6eSBkd29tYSBsaW5pYW1pICMgd3Bpc3ogICAgICA6Iywjcy9zdGFyeS9ub3d5L2cKKyAgICAgQnkgemFtaWVuacSHIHdzenlzdGtpZSB3eXN0xIVwaWVuaWEgdyBwbGlrdSB3cGlzeiAgICAgICA6JXMvc3Rhcnkvbm93eS9nCisgICAgIEJ5IFZpbSBwcm9zacWCIENpxJkgbyBwb3R3aWVyZHppZW5pZSBkb2RhaiAnYycJICAgOiVzL3N0YXJ5L25vd3kvZ2MKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgTGVrY2phIDUuMS46IEpBSyBXWUtPTkHEhiBQT0xFQ0VOSUEgWkVXTsSYVFJaTkUKKworCisJKiogV3Bpc3ogIDohICBhIG5hc3TEmXBuaWUgemV3bsSZdHJ6bmUgcG9sZWNlbmllIGJ5IGplIHd5a29uYcSHLiAqKgorCisgIDEuIFdwaXN6IHpuYWpvbWUgcG9sZWNlbmllICA6ICBieSB1c3Rhd2nEhyBrdXJzb3IgbmEgZG9sZSBla3JhbnUuIFRvIHBvendhbGEKKyAgICAgbmEgd3Byb3dhZHplbmllIHBvbGVjZW5pYS4KKworICAyLiBUZXJheiB3c3RhdyAgISAgKHd5a3J6eWtuaWspLiBUbyB1bW/FvGxpd2kgQ2kgd3lrb25hbmllIGRvd29sbmVnbworICAgICB6ZXduxJl0cnpuZWdvIHBvbGVjZW5pYSBwb3fFgm9raS4KKworICAzLiBKYWtvIHByenlrxYJhZCB3cGlzeiAgbHMgIHphICAhICBhIG5hc3TEmXBuaWUgd2NpxZtuaWogPEVOVEVSPi4gVG8gcG9sZWNlbmllCisgICAgIHBva2HFvGUgc3BpcyBwbGlrw7N3IHcgVHdvaW0ga2F0YWxvZ3UsIHRhayBqYWtiecWbIGJ5xYIgcHJ6eSB6bmFrdSB6YWNoxJl0eQorICAgICBwb3fFgm9raS4gTW/FvGVzeiB0ZcW8IHXFvHnEhyAgOiFkaXIgIGplxZtsaSAgbHMgIG5pZSBkemlhxYJhLgorCitVd2FnYTogIFcgdGVuIHNwb3PDs2IgbW/FvG5hIHd5a29uYcSHIHdzenlzdGtpZSBwb2xlY2VuaWEgcG93xYJva2kuCitVd2FnYTogIFdzenlzdGtpZSBwb2xlY2VuaWEgIDogIG11c3rEhSBiecSHIHpha2/FhGN6b25lIDxFTlRFUj4uCisgICAgICAgIE9kIHRlZ28gbW9tZW50dSBuaWUgemF3c3plIGLEmWR6aWVteSBvIHR5bSB3c3BvbWluYcSHLgorCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgIExla2NqYSA1LjIuOiBXScSYQ0VKIE8gWkFQSVNZV0FOSVUgUExJS8OTVworCisKKwkgICAqKiBCeSB6YWNob3dhxIcgem1pYW55IHcgdGVrxZtjaSB3cGlzeiA6dyBOQVpXQV9QTElLVSAuICoqCisKKyAgMS4gV3Bpc3ogIDohZGlyICBsdWIgIDohbHMgIGJ5IHpvYmFjennEhyBzcGlzIHBsaWvDs3cgdyBrYXRhbG9ndS4KKyAgICAgSnXFvCB3aWVzeiwgxbxlIG11c2lzeiB3Y2lzbsSFxIcgPEVOVEVSPiBwbyB0eW0uCisKKyAgMi4gV3liaWVyeiBuYXp3xJkgcGxpa3UgamFrYSBqZXN6Y3plIG5pZSBpc3RuaWVqZSwgbnAuIFRFU1QuCisKKyAgMy4gVGVyYXogd3Bpc3o6ICAgOncgVEVTVCAgIChnZHppZSBURVNUIGplc3QgbmF6d8SFIHBsaWt1IGpha8SFIHd5YnJhxYJlxZsuKQorCisgIDQuIFRvIHBvbGVjZW5pZSB6YXBhbWnEmXRhIGNhxYJ5IHBsaWsgKFZpbSBUdXRvcikgcG9kIG5henfEhSBURVNULgorICAgICBCeSB0byBzcHJhd2R6acSHIHdwaXN6ICA6IWRpciAgbHViICA6IWxzICwgxbxlYnkgem5vd3Ugem9iYWN6ecSHIGxpc3TEmSBwbGlrw7N3LgorCitVd2FnYTogWmF1d2HFvCwgxbxlIGdkeWJ5xZsgdGVyYXogd3lzemVkxYIgeiBWaW0tYSwgYSBuYXN0xJlwbmllIHdzemVkxYIgcG9ub3duaWUKKyAgICAgICBrb21lbmTEhSAgdmltIFRFU1QgLCBwbGlrIGJ5xYJieSBkb2vFgmFkbsSFIGtvcGnEhSB0dXRvcmlhbGEga2llZHkgZ28KKyAgICAgICB6YXBpc3l3YcWCZcWbLgorCisgIDUuIFRlcmF6IHVzdcWEIHBsaWsgd3Bpc3VqxIVjOgkJICAgOiFybSBURVNUCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICBMZWtjamEgNS4zLjogV1lCUkFOSUUgVEVLU1RVIERPIFpBUElTVQorCisKKwkgICoqIEJ5IHphY2hvd2HEhyBjesSZxZvEhyBwbGlrdSB3cGlzeiAgdiBydWNoIDp3IE5BWldBX1BMSUtVICoqCisKKyAgMS4gUHJ6ZW5pZcWbIGt1cnNvciBkbyB0ZWdvIHdpZXJzemEuCisKKyAgMi4gV2NpxZtuaWogIHYgIGkgcHJ6ZW5pZcWbIGt1cnNvciBkbyBwdW5rdHUgNS4gWmF1d2HFvCwgxbxlIHRla3N0IHpvc3RhxYIKKyAgICAgcG9kxZt3aWV0bG9ueS4KKworICAzLiBXY2nFm25paiB6bmFrICA6IC4gTmEgZG9sZSBla3JhbnUgcG9qYXdpIHNpxJkgIDonPCwnPiAuCisKKyAgNC4gV3Bpc3ogIHcgVEVTVCAsIGdkemllIFRFU1QgdG8gbmF6d2EgcGxpa3UsIGt0w7NyeSBqZXN6Y3plIG5pZSBpc3RuaWVqZS4KKyAgICAgVXBld25paiBzacSZLCDFvGUgd2lkemlzeiAgOic8LCc+dyBURVNUIHphbmltIHdjacWbbmllc3ogRW50ZXIuCisKKyAgNS4gVmltIHphcGlzemUgd3licmFuZSBsaW5pZSBkbyBwbGlrdSBURVNULiBVxbx5aiAgOiFkaXIgIGx1YiAgOiFscyAsIMW8ZWJ5IHRvCisgICAgIHpvYmFjennEhy4gSmVzemN6ZSBnbyBuaWUgdXN1d2FqISBVxbx5amVteSBnbyB3IG5hc3TEmXBuZWogbGVrY2ppLgorCitVV0FHQTogV2NpxZtuacSZY2llICB2ICB6YWN6eW5hIHRyeWIgV2l6dWFsbnkuIE1vxbxlc3ogcG9ydXN6YcSHIGt1cnNvcmVtIGJ5CisgICAgICAgem1pZW5pxIcgcm96bWlhcnkgemF6bmFjemVuaWEuIE1vxbxlc3ogdGXFvCB1xbx5xIcgb3BlcmF0b3JhIGJ5IHpyb2JpxIcgY2/FmworICAgICAgIHogdGVrc3RlbS4gTmEgcHJ6eWvFgmFkICBkICB1c3V3YSB0ZWtzdC4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgIExla2NqYSA1LjQuOiBXU1RBV0lBTklFIEkgxYHEhENaRU5JRSBQTElLw5NXCisKKworCSAgICAqKiBCeSB3c3Rhd2nEhyB6YXdhcnRvxZvEhyBwbGlrdSB3cGlzeiAgIDpyIE5BWldBX1BMSUtVICoqCisKKyAgMS4gVW1pZcWbxIcga3Vyc29yIHR1xbwgcG93ecW8ZWogdGVqIGxpbmlpLgorCitVV0FHQTogUG8gd3lrb25hbml1IGtyb2t1IDIuIHpvYmFjenlzeiB0ZWtzdCB6IExla2NqaSA1LjMuIFBvdGVtIHByemVqZMW6CisgICAgICAgZG8gRE/FgVUgYnkgem9iYWN6ecSHIHBvbm93bmllIHTEmSBsZWtjasSZLgorCisgIDIuIFRlcmF6IHdjenl0YWogcGxpayBURVNUIHXFvHl3YWrEhWMgcG9sZWNlbmlhICA6ciBURVNUICwgZ2R6aWUgVEVTVAorICAgICBqZXN0IG5henfEhSBwbGlrdS4KKyAgICAgV2N6eXRhbnkgcGxpayBqZXN0IHVtaWVzemN6b255IHBvbmnFvGVqIGxpbmlpIHoga3Vyc29yZW0uCisKKyAgMy4gQnkgc3ByYXdkemnEhyBjenkgcGxpayB6b3N0YcWCIHdjenl0YW55IGNvZm5paiBrdXJzb3IgaSB6b2JhY3osIMW8ZQorICAgICB0ZXJheiBzxIUgZHdpZSBrb3BpZSBMZWtjamkgNS4zLiwgb3J5Z2luYcWCIGkga29waWEgeiBwbGlrdS4KKworVVdBR0E6IE1vxbxlc3ogdGXFvCB3Y3p5dGHEhyB3eWrFm2NpZSB6ZXduxJl0cnpuZWdvIHBvbGVjZW5pYS4gTmEgcHJ6eWvFgmFkCisgICAgICAgOnIgIWxzICB3Y3p5dHVqZSB3eWrFm2NpZSBwb2xlY2VuaWEgbHMgaSB1bWllc3pjemEgamUgcG9kIGt1cnNvcmVtLgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgIExFS0NKQSA1LiBQT0RTVU1PV0FOSUUKKworCisgIDEuICA6IXBvbGVjZW5pZSB3eWtvbnVqZSBwb2xlY2VuaWUgemV3bsSZdHJ6bmUuCisKKyAgICAgIFXFvHl0ZWN6bnltaSBwcnp5a8WCYWRhbWkgc8SFOgorCisJICA6IWRpciAgLSAgcG9rYXp1amUgc3BpcyBwbGlrw7N3IHcga2F0YWxvZ3UuCisKKwkgIDohcm0gTkFaV0FfUExJS1UgIC0gIHVzdXdhIHBsaWsgTkFaV0FfUExJS1UuCisKKyAgMi4gIDp3IE5BWldBX1BMSUtVICB6YXBpc3VqZSBvYmVjbnkgcGxpayBWaW0tYSBuYSBkeXNrIHogbmF6d8SFIE5BWldBX1BMSUtVLgorCisgIDMuICB2IHJ1Y2ggOncgTkFaV0FfUExJS1UgIHphcGlzdWplIFdpenVhbG5pZSB3eWJyYW5lIGxpbmllIGRvIE5BWldBX1BMSUtVLgorCisgIDQuICA6ciBOQVpXQV9QTElLVSAgd2N6eXR1amUgeiBkeXNrdSBwbGlrIE5BWldBX1BMSUtVIGkgd3N0YXdpYSBnbyBkbworICAgICAgYmllxbzEhWNlZ28gcGxpa3UgcG9uacW8ZWoga3Vyc29yYS4KKworICA1LiAgOnIgIWRpciAgd2N6eXR1amUgd3lqxZtjaWUgcG9sZWNlbmlhIGRpciBpIHVtaWVzemN6YSBqZSBwb25pxbxlaiBrdXJzb3JhLgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIExla2NqYSA2LjEuOiBQT0xFQ0VOSUUgT1BFTiAob3R3w7NyeikKKworCisgICAgICAqKiBXcGlzeiAgbyAgYnkgb3R3b3J6ecSHIGxpbmnEmSBwb25pxbxlaiBrdXJzb3JhIGkgcHJ6ZW5pZcWbxIcgc2nEmSBkbworCSB0cnlidSBJbnNlcnQgKHdwcm93YWR6YW5pZSkuICoqCisKKyAgMS4gUHJ6ZW5pZcWbIGt1cnNvciBkbyBsaW5paSBwb25pxbxlaiBvem5hY3pvbmVqIC0tLT4uCisKKyAgMi4gV3Bpc3ogIG8gIChtYcWCZSkgYnkgb3R3b3J6ecSHIGxpbmnEmSBQT05JxbtFSiBrdXJzb3JhIGkgcHJ6ZW5pZcWbxIcgc2nEmQorICAgICBkbyB0cnlidSBJbnNlcnQgKHdwcm93YWR6YW5pZSkuCisKKyAgMy4gV3Bpc3ogdHJvY2jEmSB0ZWtzdHUgaSB3Y2nFm25paiA8RVNDPiBieSB3eWrFm8SHIHogdHJ5YnUgSW5zZXJ0ICh3cHJvd2FkemFuaWUpLgorCistLS0+IFBvIHdjacWbbmnEmWNpdSAgbyAga3Vyc29yIHpuYWpkemllIHNpxJkgdyBvdHdhcnRlaiBsaW5paSB3IHRyeWJpZSBJbnNlcnQuCisKKyAgNC4gQnkgb3R3b3J6ecSHIGxpbmnEmSBQT1dZxbtFSiBrdXJzb3JhIHdjacWbbmlqIHdpZWxraWUgIE8gIHphbWlhc3QgbWHFgmVnbworICAgICBvIC4gV3lwcsOzYnVqIHRvIG5hIGxpbmlpIHBvbmnFvGVqLgorCistLS0+IE90d8OzcnogbGluacSZIHBvd3nFvGVqIHdjaXNrYWrEhWMgU0hJRlQtTyBnZHkga3Vyc29yIGLEmWR6aWUgbmEgdGVqIGxpbmlpLgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgTGVrY2phIDYuMi46IFBPTEVDRU5JRSBBUFBFTkQgKGRvZGFqKQorCisKKwkJICAqKiBXcGlzeiAgYSAgYnkgZG9kYcSHIHRla3N0IFpBIGt1cnNvcmVtLiAqKgorCisgIDEuIFByemVuaWXFmyBrdXJzb3IgZG8gcG9jesSFdGt1IHBpZXJ3c3plaiBsaW5paSBwb25pxbxlaiBvem5hY3pvbmVqIC0tLT4KKworICAyLiBXY2lza2FqICBlICBkb3DDs2tpIGt1cnNvciBuaWUgYsSZZHppZSBuYSBrb8WEY3UgbGkgLgorCisgIDMuIFdwaXN6ICBhICAobWHFgmUpIGFieSBkb2RhxIcgdGVrc3QgWkEgem5ha2llbSBwb2Qga3Vyc29yZW0uCisKKyAgNC4gRG9rb8WEY3ogd3lyYXogdGFrIGphayB3IGxpbmlpIHBvbmnFvGVqLiBXY2nFm25paiA8RVNDPiBhYnkgb3B1xZtjacSHIHRyeWIKKyAgICAgSW5zZXJ0LgorCisgIDUuIFXFvHlqICBlICBieSBwcnplasWbxIcgZG8ga29sZWpuZWdvIG5pZWRva2/FhGN6b25lZ28gd3lyYXplIGkgcG93dGFyemFqIGtyb2tpCisgICAgIDMuIGkgNC4KKworLS0tPiBUYSBsaSBwb3ogQ2kgxId3aSBkb2RhdyB0ZWtzIGRvIGtvxYQgbGluCistLS0+IFRhIGxpbmlhIHBvendvbGkgQ2kgxId3aWN6ecSHIGRvZGF3YW5pZSB0ZWtzdHUgZG8ga2/FhGNhIGxpbmlpLgorCitVd2FnYTogIGEgLCAgaSAgYW5kICBBICBwcm93YWR6xIUgZG8gdHJ5YnUgSW5zZXJ0LCBqZWR5bsSFIHLDs8W8bmljxIUgamVzdCBtaWVqc2NlCisgICAgICAgZ2R6aWUgbm93ZSB6bmFraSBixJlkxIUgZG9kYXdhbmUuCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgTGVrY2phIDYuMy46IElOTkEgV0VSU0pBIFJFUExBQ0UgKHphbWlhbmEpCisKKworCSAgICoqIFdwaXN6IHdpZWxraWUgIFIgIGJ5IHphbWllbmnEhyB3acSZY2VqIG5pxbwgamVkZW4gem5hay4gKioKKworICAxLiBQcnplbmllxZsga3Vyc29yIGRvIHBpZXJ3c3plaiBsaW5paSBwb25pxbxlaiBvem5hY3pvbmVqIC0tLT4uIFByemVuaWXFmworICAgICBrdXJzb3IgZG8gcGllcndzemVnbyAgeHh4IC4KKworICAyLiBXY2nFm25paiAgUiAgaSB3cGlzeiBudW1lciBwb25pxbxlaiB3IGRydWdpZWogbGluaWksIHRhaywgxbxlIHphc3TEhXBpIG9uCisgICAgIHh4eC4KKworICAzLiBXY2nFm25paiA8RVNDPiBieSBvcHXFm2NpxIcgdHJ5YiBSZXBsYWNlLiBaYXV3YcW8LCDFvGUgcmVzenRhIGxpbmlpIHBvem9zdGFqZQorICAgICBuaWV6bWllbmlvbmEuCisKKyAgNS4gUG93dGFyemFqIGtyb2tpIGJ5IHd5bWllbmnEhyB3c3p5c3RraWUgeHh4LgorCistLS0+IERvZGFuaWUgMTIzIGRvIHh4eCBkYWplIHh4eC4KKy0tLT4gRG9kYW5pZSAxMjMgZG8gNDU2IGRhamUgNTc5LgorCitVV0FHQTogVHJ5YiBSZXBsYWNlIGplc3QgamFrIHRyeWIgSW5zZXJ0LCBhbGUga2HFvGR5IHpuYWsgdXN1d2EgaXN0bmllasSFY3kKKyAgICAgICB6bmFrLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICBMZWtjamEgNi40LjogS09QSU9XQU5JRSBJIFdLTEVKQU5JRSBURUtTVFUKKworCisgICAgICAgKiogdcW8eWogb3BlcmF0b3JhICB5ICBhYnkgc2tvcGlvd2HEhyB0ZWtzdCBpICBwICBhYnkgZ28gd2tsZWnEhyAqKgorCisgIDEuIFByemVqZMW6IGRvIGxpbmlpIG96bmFjem9uZWogLS0tPiBpIHVtaWXFm2Mga3Vyc29yIHphICJhKSIuCisKKyAgMi4gV2VqZMW6IHcgdHJ5YiBWaXN1YWwgIHYgIGkgcHJ6ZW5pZcWbIGt1cnNvciBuYSBwb2N6xIV0ZWsgInBpZXJ3c3p5Ii4KKworICAzLiBXY2nFm25paiAgeSAgYWJ5IHlhbmtvd2HEhyAoa29waW93YcSHKSBwb2TFm3dpZXRsb255IHRla3N0LgorCisgIDQuIFByemVuaWXFmyBrdXJzb3IgZG8ga2/FhGNhIG5hc3TEmXBuZWogbGluaWk6ICBqJAorCisgIDUuIFdjacWbbmlqICBwICBhYnkgd3Bha293YcSHIChwYXN0ZSkgdGVrc3QuICBEb2RhajogIGEgZHJ1Z2k8RVNDPiAuCisKKyAgNi4gVcW8eWogdHJ5YnUgVmlzdWFsIGFieSB3eWJyYcSHICIgZWxlbWVudC4iLCB5YW5rdWogZ28gIHkgLCBwcnplamTFuiBkbyBrb8WEY2EKKyAgICAgbmFzdMSZcG5laiBsaW5paSAgaiQgaSB1cGFrdWogdGFtIHRla3N0IHogIHAgLgorCistLS0+ICBhKSB0byBqZXN0IHBpZXJ3c3p5IGVsZW1lbnQuCisgICAgICBiKQorVXdhZ2E6IG1vxbxlc3ogdcW8ecSHICB5ICBqYWtvIG9wZXJhdG9yYTsgIHl3ICBrb3BpdWplIGplZGVuIHd5cmF6LgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSBMZWtjamEgNi41LjogVVNUQVdJQU5JRSBPUENKSQorCisKKyoqIFVzdGF3aWFuaWUgb3BjamkgdGFrIGJ5IHN6dWthaiBsdWIgc3Vic3R5dHVjamEgaWdub3Jvd2HFgnkgd2llbGtvxZvEhyBsaXRlciAqKgorCisgIDEuIFN6dWthaiAnaWdub3JlJyB3cGlzdWrEhWM6ICAgIC9pZ25vcmU8RU5URVI+CisgICAgIFBvd3TDs3J6IHN6dWthbmllIGtpbGthIHJhenkgbmFjaXNrYWrEhWMga2xhd2lzeiAgbiAuCisKKyAgMi4gVXN0YXcgb3BjasSZICdpYycgKElnbm9yZSBjYXNlIC0tIGlnbm9ydWogd2llbGtvxZvEhyBsaXRlcikgcG9wcnplegorICAgICB3cGlzYW5pZToJCTpzZXQgaWMKKworICAzLiBUZXJheiBzenVrYWogJ2lnbm9yZScgcG9ub3duaWUgd2Npc2t1asSFYzogIG4KKyAgICAgWmF1d2HFvCwgxbxlIElnbm9yZSBpIElHTk9SRSB0YWvFvGUgc8SFIHRlcmF6IHpuYWxlemlvbmUuCisKKyAgNC4gVXN0YXcgb3BjamUgJ2hsc2VhcmNoJyBpICdpbmNzZWFyY2gnOiAgICA6c2V0IGhscyBpcworCisgIDUuIFRlcmF6IHdwcm93YWTFuiBwb2xlY2VuaWUgc3p1a2FqIHBvbm93bmllIGkgem9iYWN6IGNvIHNpxJkgemRhcnp5OgorICAgICAvaWdub3JlPEVOVEVSPgorCisgIDYuIEFieSB3ecWCxIVjennEhyBpZ25vcm93YW5pZSB3aWVsa2/Fm2NpIGxpdGVyOiAgOnNldCBub2ljCisKK1V3YWdhOiBBYnkgdXN1bsSFxIcgcG9kxZt3aWV0bGFuaWUgZG9wYXNvd2HFhCB3cGlzejogICA6bm9obHNlYXJjaAorVXdhZ2E6IEFieSBpZ25vcm93YcSHIHdpZWxrb8WbxIcgbGl0ZXIgZGxhIGplZG5lZ28gd3lzenVraXdhbmlhOiAvaWdub3JlXGM8RU5URVI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgTEVLQ0pBIDYuIFBPRFNVTU9XQU5JRQorCisKKyAgMS4gV3Bpc2FuaWUgIG8gIG90d2llcmEgbGluacSZIFBPTknFu0VKIGt1cnNvcmEuCisgICAgIFdwaXNhbmllIHdpZWxraWVnbyAgTyAgb3R3aWVyYSBsaW5pxJkgUE9XWcW7RUoga3Vyc29yYS4KKyAgMi4gV3Bpc3ogIGEgIGJ5IHdzdGF3acSHIHRla3N0IFpBIHpuYWtpZW0gbmEsIGt0w7NyeW0gamVzdCBrdXJzb3IuCisgICAgIFdwaXNhbmllIHdpZWxraWVnbyAgQSAgZG9kYWplIHRla3N0IG5hIGtvxYRjdSBsaW5paS4KKyAgMy4gUG9sZWNlbmllICBlICBwcnplbm9zaSBkbyBrb8WEY2Egd3lyYXp1LgorICA0LiBPcGVyYXRvICB5ICB5YW5rdWplIChrb3BpdWplKSB0ZWtzdCwgIHAgIHBha3VqZSAod2tsZWphLCBwYXN0ZSkgZ28uCisgIDUuIFdwaXNhbmllIHdpZWxraWVnbyAgUiAgd3Byb3dhZHphIHcgdHJ5YiBSZXBsYWNlICh6YW1pYW5hKSBkb3DDs2tpCisgICAgIG5pZSB6b3N0YW5pZSB3Y2nFm25pxJl0eSA8RVNDPi4KKyAgNi4gV3Bpc2FuaWUgIjpzZXQgeHh4IiB1c3Rhd2lhIG9wY2rEmSAieHh4Ii4gTmlldGvDs3JlIG9wY2plOgorCSdpYycgJ2lnbm9yZWNhc2UnCWlnbm9ydWogd2llbGtvxZvEhyB6bmFrw7N3CisJJ2lzJyAnaW5jc2VhcmNoJwlwb2thxbwgY3rEmcWbY2lvd2UgZG9wYXNvd2FuaWEKKwknaGxzJyAnaGxzZWFyY2gnCXBvZMWbd2lldGwgd3N6eXN0a2llIGRvcGFzb3dhbmlhCisgICAgIE1vxbxlc3ogdcW8ecSHIHphcsOzd25vIGTFgnVnaWVqIGphayBpIGtyw7N0a2llaiBmb3JteS4KKyAgNy4gRG9kYWogIm5vIiBhYnkgd3nFgsSFY3p5xIcgb3BjasSZOiAgIDpzZXQgbm9pYworCisKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJTEVLQ0pBIDcuMS4gSkFLIFVaWVNLQcSGIFBPTU9DIAorCisJCSAgICAgICoqIFXFvHljaWUgc3lzdGVtdSBwb21vY3kgb24tbGluZSAqKgorCisgIFZpbSBwb3NpYWRhIGJhcmR6byBkb2JyeSBzeXN0ZW0gcG9tb2N5IG9uLWxpbmUuIEJ5IHphY3rEhcSHIHNwcsOzYnVqIGplZG5lagorICB6IHRyemVjaCBtb8W8bGl3b8WbY2k6CisJLSB3Y2nFm25paiBrbGF3aXN6IDxIRUxQPiAoamXFm2xpIHRha293eSBwb3NpYWRhc3opCisJLSB3Y2nFm25paiBrbGF3aXN6IDxGMT4gKGplxZtsaSB0YWtvd3kgcG9zaWFkYXN6KQorCS0gd3Bpc3ogICA6aGVscDxFTlRFUj4KKworICBQcnplY3p5dGFqIHRla3N0IHcgb2tuaWUgcG9tb2N5ICBhYnkgZG93aWVkemllxIcgc2nEmSBqYWsgZHppYcWCYSBwb21vYy4KKyAgd3Bpc3ogQ1RSTC1XIENUUkwtVyAgICBhYnkgcHJ6ZXNrb2N6ecSHIHogamVkbmVnbyBva25hIGRvIGlubmVnbworICB3cGlzeiA6cTxFTlRFUj4gICAgICAgIGFieSB6YW1rbsSFxIcgb2tubyBwb21vY3kuCisKKyAgTW/FvGVzeiB0ZcW8IHpuYWxlxbrEhyBwb21vYyBuYSBrYcW8ZHkgdGVtYXQgcG9kYWrEhWMgYXJndW1lbnQgcG9sZWNlbmlhICI6aGVscCIuCisgIFNwcsOzYnVqIHR5Y2ggKG5pZSB6YXBvbW5paiB3Y2lzbsSFxIcgPEVOVEVSPik6CisKKyAgOmhlbHAgdworICA6aGVscCBjX0NUUkwtRAorICA6aGVscCBpbnNlcnQtaW5kZXgKKyAgOmhlbHAgdXNlci1tYW51YWwKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICBMRUtDSkEgNy4yLiBUV09SWkVOSUUgU0tSWVBUVSBTVEFSVE9XRUdPCisKKwkJCSAqKiBXxYLEhWN6IG1vxbxsaXdvxZtjaSBWaW0tYSAqKgorCisgIFZpbSBtYSBvIHdpZWxlIHdpxJljZWogbW/FvGxpd2/Fm2NpIG5pxbwgVmksIGFsZSB3acSZa3N6b8WbxIcgeiBuaWNoIGplc3QgZG9tecWbbG5pZQorICB3ecWCxIVjem9uYS4gSmXFm2xpIGNoY2VzeiB3xYLEhWN6ecSHIHRlIG1vxbxsaXdvxZtjaSBuYSBzdGFyY2llIG11c2lzeiB1dHdvcnp5xIcKKyAgcGxpayAidmltcmMiLgorCisgIDEuIFBvY3rEhXRlayBlZHljamkgcGxpa3UgInZpbXJjIiB6YWxlxbx5IG9kIFR3b2plZ28gc3lzdGVtdToKKyAgICAgOmVkaXQgfi8udmltcmMJICAgICBkbGEgVW5pa3NhCisgICAgIDplZGl0ICRWSU0vX3ZpbXJjICAgICAgIGRsYSBNUy1XaW5kb3dzCisgIDIuIFRlcmF6IHdjenl0YWogcHJ6eWvFgmFkb3d5IHBsaWsgInZpbXJjIjoKKyAgICAgOnJlYWQgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KKyAgMy4gWmFwaXN6IHBsaWs6CisgICAgIDp3CisKKyAgTmFzdMSZcG55bSByYXplbSBnZHkgemFjem5pZXN6IHByYWPEmSB3IFZpbWllIGLEmWR6aWUgb24gdcW8eXdhxIcgcG9kxZt3aWV0bGFuaWEKKyAgc2vFgmFkbmkuIE1vxbxlc3ogZG9kYcSHIHdzenlzdGtpZSBzd29qZSB1bHViaW9uZSB1c3Rhd2llbmlhIGRvIHRlZ28gcGxpa3UKKyAgInZpbXJjIi4KKyAgQWJ5IHV6eXNrYcSHIHdpxJljZWogaW5mb3JtYWNqaSB3cGlzeiAgICAgOmhlbHAgdmltcmMtaW50cm8KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgIExla2NqYSA3LjMuOiBVWlVQRcWBTklBTklFCisKKworCSAgICAgICoqIFV6dXBlxYJuaWFuaWUgbGluaWkgcG9sZWNlxYQgeiBDVFJMLUQgaSA8VEFCPiAqKgorCisgIDEuIFVwZXduaWogc2nEmSwgxbxlIFZpbSBuaWUgamVzdCB3IHRyeWJpZSBrb21wYXR5Ymlsbm/Fm2NpOiAgIDpzZXQgbm9jcAorCisgIDIuIFplcmtuaWogamFraWUgcGxpa2kgc8SFIHcgYmllxbzEhWNtIGthdGFsb2d1OiAgIDohbHMgICBsdWIgICA6IWRpcgorCisgIDMuIFdwaXN6IHBvY3rEhXRlayBwb2xlY2VuaWE6ICAgOmUKKworICA0LiBXY2nFm25paiAgQ1RSTC1EICBpIFZpbSBwb2thxbxlIGxpc3TEmSBwb2xlY2XFhCBqYWtpZSB6YWN6eW5hasSFIHNpxJkgbmEgImUiLgorCisgIDUuIFdjacWbbmlqICA8VEFCPiAgaSBWaW0gdXp1cGXFgm5pIHBvbGVjZW5pZSBkbyAiOmVkaXQiLgorCisgIDYuIERvZGFqIHNwYWNqxJkgaSB6YWN6bmlqIHdwaXN5d2HEhyBuYXp3xJkgaXN0bmllasSFY2VnbyBwbGlrdTogICA6ZWRpdCBGSUwKKworICA3LiBXY2nFm25paiA8VEFCPi4gVmltIHV6dXBlxYJuaSBuYXp3xJkgKGplxZtsaSBqZXN0IG5pZXBvd3RhcnphbG5hKS4KKworVVdBR0E6IFV6dXBlxYJuaWFuaWUgZHppYcWCYSBkbGEgd2llbHUgcG9sZWNlxYQuIFNwcsOzYnVqIHdjaXNuxIXEhyBDVFJMLUQgaSA8VEFCPi4KKyAgICAgICBVxbx5dGVjem5lIHp3xYJhc3pjemEgcHJ6eSAgOmhlbHAgLgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgTGVrY2phIDcuIFBPRFNVTU9XQU5JRQorCisKKyAgMS4gV3Bpc3ogIDpoZWxwICBsdWIgd2NpxZtuaWogPEYxPiBsdWIgPEhlbHA+IGFieSBvdHdvcnp5xIcgb2tubyBwb21vY3kuCisKKyAgMi4gV3Bpc3ogIDpoZWxwIGNtZCAgYWJ5IHV6eXNrYcSHIHBvbW9jIG8gIGNtZCAuCisKKyAgMy4gV3Bpc3ogIENUUkwtVyBDVFJMLVcgIGFieSBwcnplc2tvY3p5xIcgZG8gaW5uZWdvIG9rbmEuCisKKyAgNC4gV3Bpc3ogIDpxICBhYnkgemFta27EhcSHIG9rbm8gcG9tb2N5LgorCisgIDUuIFV0d8OzcnogcGxpayBzdGFydG93eSB2aW1yYyBhYnkgemFjaG93YcSHIHd5YnJhbmUgdXN0YXdpZW5pYS4KKworICA2LiBQbyBwb2xlY2VuaXUgIDogLCB3Y2nFm25paiBDVFJMLUQgYWJ5IHpvYmFjennEhyBtb8W8bGl3ZSB1enVwZcWCbmllbmlhLgorICAgICBXY2nFm25paiA8VEFCPiBhYnkgdcW8ecSHIGplZG5lZ28geiBuaWNoLgorCisKKworCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyAgVHV0YWogc2nEmSBrb8WEY3p5IHR1dG9yaWFsIFZpbS1hLiBab3N0YcWCIG9uIHBvbXnFm2xhbnkgdGFrIGFieSBkYcSHIGtyw7N0a2kKKyAgcHJ6ZWdsxIVkIGplZ28gbW/FvGxpd2/Fm2NpLCB3eXN0YXJjemFqxIVjeSBiecWbIG3Ds2fFgiBnbyB1xbx5d2HEhy4gSmVzdCBvbgorICBkYWxla2kgb2Qga29tcGxldG5vxZtjaSBwb25pZXdhxbwgVmltIG1hIG8gd2llbGUsIHdpZWxlIHdpxJljZWogcG9sZWNlxYQuCisKKyAgRGxhIGRhbHN6ZWogbmF1a2kgcmVrb21lbmR1amVteSBrc2nEhcW8a8SZOgorCVZpbSAtIFZpIEltcHJvdmVkIC0gYXV0b3IgU3RldmUgT3VhbGxpbmUKKwlXeWRhd2NhOiBOZXcgUmlkZXJzCisgIFBpZXJ3c3phIGtzacSFemthIGNhxYJrb3dpY2llIHBvxZt3acSZY29uYSBWaW0tb3dpLiBVxbx5dGVjem5hIHp3xYJhc3pjemEgZGxhCisgIHBvY3rEhXRrdWrEhWN5Y2guIFphd2llcmEgd2llbGUgcHJ6eWvFgmFkw7N3IGkgaWx1c3RyYWNqaS4KKyAgWm9iYWN6IGh0dHA6Ly9pY2NmLWhvbGxhbmQub3JnLi9jbGljazUuaHRtbAorCisgIFRhIGtzacSFxbxrYSBqZXN0IHN0YXJzemEgaSBiYXJkemllaiBvIFZpIG5pxbwgbyBWaW0taWUsIGFsZSB0YWvFvGUgd2FydGEKKyAgcG9sZWNlbmlhOgorCUxlYXJuaW5nIHRoZSBWaSBFZGl0b3IgLSBhdXRvciBMaW5kYSBMYW1iCisJV3lkYXdjYTogTydSZWlsbHkgJiBBc3NvY2lhdGVzIEluYy4KKyAgVG8gZG9icmEga3NpxIXFvGthIGJ5IGRvd2llZHppZcSHIHNpxJkgbmllbWFsIHdzenlzdGtpZWdvIGNvIGNoY2lhxYJiecWbIHpyb2JpxIcKKyAgeiBWaS4gU3rDs3N0YSBlZHljamEgemF3aWVyYSB0ZcW8IGluZm9ybWFjamUgbyBWaW0taWUuCisKKyAgUG8gcG9sc2t1IHd5ZGFubzoKKwlFZHl0b3IgdmkuIExla3N5a29uIGtpZXN6b25rb3d5IC0gYXV0b3IgQXJub2xkIFJvYmJpbnMKKwlXeWRhd2NhOiBIZWxpb24gMjAwMSAoTydSZWlsbHkpLgorCUlTQk46IDgzLTcxOTctNDcyLTgKKwlodHRwOi8vaGVsaW9uLnBsL2tzaWF6a2kvdmlsZWsuaHRtCisgIEplc3QgdG8ga3NpxIXFvGVjemthIHphd2llcmFqxIVjYSBzcGlzIHBvbGVjZcWEIHZpIGkgamVnbyBuYWp3YcW8bmllanN6eWNoCisgIGtsb27Ds3cgKG1pxJlkenkgaW5ueW1pIFZpbS1hKS4KKworCUVkeXRvciB2aSAtIGF1dG9yenkgTGluZGEgTGFtYiBpIEFybm9sZCBSb2JiaW5zCisJV3lkYXdjYTogSGVsaW9uIDIwMDEgKE8nUmVpbGx5KSAtIHdnIDYgYW5nLiB3eWRhbmlhCisJSVNCTjogODMtNzE5Ny01MzktMgorCWh0dHA6Ly9oZWxpb24ucGwva3NpYXpraS92aWVkeXQuaHRtCisgIFJvenN6ZXJ6b25hIHdlcnNqYSBMZWFybmluZyB0aGUgVmkgRWRpdG9yIHcgcG9sc2tpbSB0xYJ1bWFjemVuaXUuCisKKyAgVGVuIHR1dG9yaWFsIHpvc3RhxYIgbmFwaXNhbnkgcHJ6ZXogTWljaGFlbGEgQy4gUGllcmNlJ2EgaSBSb2JlcnRhIEsuIFdhcmUnYSwKKyAgQ29sb3JhZG8gU2Nob29sIG9mIE1pbmVzIGtvcnp5c3RhasSFYyB6IHBvbW9jeSBDaGFybGVzYSBTbWl0aGEsCisgIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuCisgIEUtbWFpbDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1LgorCisgIFptb2R5Zmlrb3dhbmUgZGxhIFZpbS1hIHByemV6IEJyYW1hIE1vb2xlbmFhcmEuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgIFByemV0xYJ1bWFjem9uZSBwcnpleiBNaWtvxYJhamEgTWFjaG93c2tpZWdvLAorICBTaWVycGllxYQgMjAwMSwKKyAgcmV2LiBNYXJ6ZWMgMjAwMgorICAybmQgcmV2LiBXcnplc2llxYQgMjAwNAorICBXc3plbGtpZSB1d2FnaSBwcm9zesSZIGtpZXJvd2HEhyBuYTogbWlrbWFjaEB3cC5wbApkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci52aW0gYi9ydW50aW1lL3R1dG9yL3R1dG9yLnZpbQppbmRleCAwZWRiZjYxLi43NTRmM2MwIDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLnZpbQorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLnZpbQpAQCAtMSw2ICsxLDYgQEAKICIgVmltIHR1dG9yIHN1cHBvcnQgZmlsZQogIiBBdXRob3I6IEVkdWFyZG8gRi4gQW1hdHJpYSA8ZWZlcm5hMUBwbGF0ZWEucG50aWMubWVjLmVzPgotIiBMYXN0IENoYW5nZToJMjAwNCBKdW4gMDMKKyIgTGFzdCBDaGFuZ2U6CTIwMDQgU2VwIDA2CiAKICIgVGhpcyBzbWFsbCBzb3VyY2UgZmlsZSBpcyB1c2VkIGZvciBkZXRlY3RpbmcgaWYgYSB0cmFuc2xhdGlvbiBvZiB0aGUKICIgdHV0b3IgZmlsZSBleGlzdCwgaS5lLiwgYSB0dXRvci54eCBmaWxlLCB3aGVyZSB4eCBpcyB0aGUgbGFuZ3VhZ2UuCkBAIC03MCw4ICs3MCwxMiBAQAogZW5kaWYKIAogIiBUaGUgUG9saXNoIHR1dG9yIGlzIGF2YWlsYWJsZSBpbiB0d28gZW5jb2RpbmdzLCBndWVzcyB3aGljaCBvbmUgdG8gdXNlLgotaWYgczpleHQgPX4/ICdcLnBsJyAmJiAmZW5jID1+IDEyNTAKLSAgbGV0IHM6ZXh0ID0gIi5wbC5jcDEyNTAiCitpZiBzOmV4dCA9fj8gJ1wucGwnCisgIGlmICZlbmMgPX4gMTI1MAorICAgIGxldCBzOmV4dCA9ICIucGwuY3AxMjUwIgorICBlbHNlaWYgJmVuYyA9fiAidXRmLTgkIgorICAgIGxldCBzOmV4dCA9ICIucGwudXRmLTgiCisgIGVuZGlmCiBlbmRpZgogCiAiIFRoZSBHcmVlayB0dXRvciBpcyBhdmFpbGFibGUgaW4gdHdvIGVuY29kaW5ncywgZ3Vlc3Mgd2hpY2ggb25lIHRvIHVzZQo=