ZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL0NSRURJVFMudHh0IGIvTGliL2lkbGVsaWIvQ1JFRElUUy50eHQKaW5kZXggZTgzOGMwMy4uMzA1NjFhOSAxMDA2NDQKLS0tIGEvTGliL2lkbGVsaWIvQ1JFRElUUy50eHQKKysrIGIvTGliL2lkbGVsaWIvQ1JFRElUUy50eHQKQEAgLTI0LDggKzI0LDggQEAKIGludGVncmF0aW9uLCBkZWJ1Z2dlciBpbnRlZ3JhdGlvbiBhbmQgcGVyc2lzdGVudCBicmVha3BvaW50cykuCiAKIFNjb3R0IERhdmlkIERhbmllbHMsIFRhbCBFaW5hdCwgSGVybmFuIEZvZmZhbmksIENocmlzdG9zIEdlb3JnaW91LAotTWFydGluIHYuIEz2d2lzLCBKYXNvbiBPcmVuZG9yZmYsIEpvc2ggUm9iYiwgTmlnZWwgUm93ZSwgQnJ1Y2UgU2hlcndvb2QsCi1hbmQgSmVmZiBTaHV0ZSBoYXZlIHN1Ym1pdHRlZCB1c2VmdWwgcGF0Y2hlcy4gIFRoYW5rcywgZ3V5cyEKK0ppbSBKZXdldHQsIE1hcnRpbiB2LiBM9ndpcywgSmFzb24gT3JlbmRvcmZmLCBKb3NoIFJvYmIsIE5pZ2VsIFJvd2UsCitCcnVjZSBTaGVyd29vZCwgYW5kIEplZmYgU2h1dGUgaGF2ZSBzdWJtaXR0ZWQgdXNlZnVsIHBhdGNoZXMuICBUaGFua3MsIGd1eXMhCiAKIEZvciBhZGRpdGlvbmFsIGRldGFpbHMgcmVmZXIgdG8gTkVXUy50eHQgYW5kIENoYW5nZWxvZy4KIApkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvTkVXUy50eHQgYi9MaWIvaWRsZWxpYi9ORVdTLnR4dAppbmRleCA5MGI1N2U2Li5kZmRiMGNiIDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9ORVdTLnR4dAorKysgYi9MaWIvaWRsZWxpYi9ORVdTLnR4dApAQCAtMyw3ICszLDExIEBACiAKICpSZWxlYXNlIGRhdGU6IDE3LUFVRy0yMDA2KgogCi0tIFRoZSAnd2l0aCcgc3RhdGVtZW50IGlzIG5vdyBhIENvZGUgQ29udGV4dCBibG9jayBvcGVuZXIKKy0gSURMRSBob25vcnMgbmV3IHF1aXQoKSBhbmQgZXhpdCgpIGNvbW1hbmRzIGZyb20gc2l0ZS5weSBRdWl0dGVyKCkgb2JqZWN0LgorICBQYXRjaCAxNTQwODkyLCBKaW0gSmV3ZXR0CisKKy0gVGhlICd3aXRoJyBzdGF0ZW1lbnQgaXMgbm93IGEgQ29kZSBDb250ZXh0IGJsb2NrIG9wZW5lci4KKyAgUGF0Y2ggMTU0MDg1MSwgSmltIEpld2V0dAogCiAtIFJldHJpZXZhbCBvZiBwcmV2aW91cyBzaGVsbCBjb21tYW5kIHdhcyBub3QgYWx3YXlzIHByZXNlcnZpbmcgaW5kZW50YXRpb24KICAgKHNpbmNlIDEuMmExKSBQYXRjaCAxNTI4NDY4IFRhbCBFaW5hdC4KZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL1B5U2hlbGwucHkgYi9MaWIvaWRsZWxpYi9QeVNoZWxsLnB5CmluZGV4IDEyYTQ1YTQuLjU3OTA0ODMgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL1B5U2hlbGwucHkKKysrIGIvTGliL2lkbGVsaWIvUHlTaGVsbC5weQpAQCAtNDc4LDkgKzQ3OCw2IEBACiAgICAgICAgIGltcG9ydCBzeXMgYXMgX3N5cwogICAgICAgICBfc3lzLnBhdGggPSAlcgogICAgICAgICBkZWwgX3N5cwotICAgICAgICBfbXNnID0gJ1VzZSBGaWxlL0V4aXQgb3IgeW91ciBlbmQtb2YtZmlsZSBrZXkgdG8gcXVpdCBJRExFJwotICAgICAgICBfX2J1aWx0aW5zX18ucXVpdCA9IF9fYnVpbHRpbnNfXy5leGl0ID0gX21zZwotICAgICAgICBkZWwgX21zZwogICAgICAgICBcbiIiIiAlIChzeXMucGF0aCwpKQogCiAgICAgYWN0aXZlX3NlcSA9IE5vbmUKQEAgLTUxNCw3ICs1MTEsMTAgQEAKICAgICAgICAgICAgICAgICBwcmludCA+PnN5cy5fX3N0ZGVycl9fLCBlcnJtc2csIHdoYXQKICAgICAgICAgICAgICAgICBwcmludCA+PmNvbnNvbGUsIGVycm1zZywgd2hhdAogICAgICAgICAgICAgIyB3ZSByZWNlaXZlZCBhIHJlc3BvbnNlIHRvIHRoZSBjdXJyZW50bHkgYWN0aXZlIHNlcSBudW1iZXI6Ci0gICAgICAgICAgICBzZWxmLnRrY29uc29sZS5lbmRleGVjdXRpbmcoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYudGtjb25zb2xlLmVuZGV4ZWN1dGluZygpCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6ICAjIHNoZWxsIG1heSBoYXZlIGNsb3NlZAorICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgIyBSZXNjaGVkdWxlIG15c2VsZgogICAgICAgICBpZiBub3Qgc2VsZi50a2NvbnNvbGUuY2xvc2luZzoKICAgICAgICAgICAgIHNlbGYudGtjb25zb2xlLnRleHQuYWZ0ZXIoc2VsZi50a2NvbnNvbGUucG9sbGludGVydmFsLApAQCAtNzMwLDcgKzczMCwxMCBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLnRrY29uc29sZS5lbmRleGVjdXRpbmcoKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgaWYgbm90IHVzZV9zdWJwcm9jZXNzOgotICAgICAgICAgICAgICAgIHNlbGYudGtjb25zb2xlLmVuZGV4ZWN1dGluZygpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzZWxmLnRrY29uc29sZS5lbmRleGVjdXRpbmcoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjogICMgc2hlbGwgbWF5IGhhdmUgY2xvc2VkCisgICAgICAgICAgICAgICAgICAgIHBhc3MKIAogICAgIGRlZiB3cml0ZShzZWxmLCBzKToKICAgICAgICAgIk92ZXJyaWRlIGJhc2UgY2xhc3MgbWV0aG9kIgpAQCAtODA0LDkgKzgwNyw2IEBACiAgICAgICAgICMKICAgICAgICAgT3V0cHV0V2luZG93Ll9faW5pdF9fKHNlbGYsIGZsaXN0LCBOb25lLCBOb25lKQogICAgICAgICAjCi0gICAgICAgIGltcG9ydCBfX2J1aWx0aW5fXwotICAgICAgICBfX2J1aWx0aW5fXy5xdWl0ID0gX19idWlsdGluX18uZXhpdCA9ICJUbyBleGl0LCB0eXBlIEN0cmwtRC4iCi0gICAgICAgICMKICMjICAgICAgICBzZWxmLmNvbmZpZyh1c2V0YWJzPTEsIGluZGVudHdpZHRoPTgsIGNvbnRleHRfdXNlX3BzMT0xKQogICAgICAgICBzZWxmLnVzZXRhYnMgPSBUcnVlCiAgICAgICAgICMgaW5kZW50d2lkdGggbXVzdCBiZSA4IHdoZW4gdXNpbmcgdGFicy4gIFNlZSBub3RlIGluIEVkaXRvcldpbmRvdzoKZGlmZiAtLWdpdCBhL0xpYi9zaXRlLnB5IGIvTGliL3NpdGUucHkKaW5kZXggZTJhZDNiOS4uMTEzZjIyMSAxMDA2NDQKLS0tIGEvTGliL3NpdGUucHkKKysrIGIvTGliL3NpdGUucHkKQEAgLTI0Miw2ICsyNDIsMTIgQEAKICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICAgICAgcmV0dXJuICdVc2UgJXMoKSBvciAlcyB0byBleGl0JyAlIChzZWxmLm5hbWUsIGVvZikKICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGNvZGU9Tm9uZSk6CisgICAgICAgICAgICAjIFNoZWxscyBsaWtlIElETEUgY2F0Y2ggdGhlIFN5c3RlbUV4aXQsIGJ1dCBsaXN0ZW4gd2hlbiB0aGVpcgorICAgICAgICAgICAgIyBzdGRpbiB3cmFwcGVyIGlzIGNsb3NlZC4KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzeXMuc3RkaW4uY2xvc2UoKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIHJhaXNlIFN5c3RlbUV4aXQoY29kZSkKICAgICBfX2J1aWx0aW5fXy5xdWl0ID0gUXVpdHRlcigncXVpdCcpCiAgICAgX19idWlsdGluX18uZXhpdCA9IFF1aXR0ZXIoJ2V4aXQnKQpkaWZmIC0tZ2l0IGEvTWlzYy9ORVdTIGIvTWlzYy9ORVdTCmluZGV4IGUzMDhiN2QuLjYyMTI0NTkgMTAwNjQ0Ci0tLSBhL01pc2MvTkVXUworKysgYi9NaXNjL05FV1MKQEAgLTY0LDYgKzY0LDkgQEAKIExpYnJhcnkKIC0tLS0tLS0KIAorLSBQYXRjaCAjMTU0MDg5Mjogc2l0ZS5weSBRdWl0dGVyKCkgY2xhc3MgYXR0ZW1wdHMgdG8gY2xvc2Ugc3lzLnN0ZGluCisgIGJlZm9yZSByYWlzaW5nIFN5c3RlbUV4aXQsIGFsbG93aW5nIElETEUgdG8gaG9ub3IgcXVpdCgpIGFuZCBleGl0KCkuCisKIC0gQnVnICMxMjI0NjIxOiBtYWtlIHRhYm5hbm55IHJlY29nbml6ZSBJbmRlbnRhdGlvbkVycm9ycyByYWlzZWQgYnkgdG9rZW5pemUuCiAKIC0gUGF0Y2ggIzE1MzYwNzE6IHRyYWNlLnB5IHNob3VsZCBub3cgZmluZCB0aGUgZnVsbCBtb2R1bGUgbmFtZSBvZiBhCg==