ZGlmZiAtLWdpdCBhL3NyYy9JTlNUQUxMIGIvc3JjL0lOU1RBTEwKaW5kZXggMjI2OWU0MS4uMjEwZDc3MyAxMDA2NDQKLS0tIGEvc3JjL0lOU1RBTEwKKysrIGIvc3JjL0lOU1RBTEwKQEAgLTE0LDYgKzE0LDcgQEAKIFNlZSBJTlNUQUxMbWFjLnR4dCAgICAgICAgICAgICAgZm9yIE1hY2ludG9zaAogU2VlIElOU1RBTExwYy50eHQgICAgICAgICAgICAgICBmb3IgUEMgKE1TLURPUywgV2luZG93cyA5NS85OC9OVC9YUCkKIFNlZSBJTlNUQUxMdm1zLnR4dCAgICAgICAgICAgICAgZm9yIFZNUworU2VlIElOU1RBTEx4LnR4dAkJZm9yIGNyb3NzLWNvbXBpbGluZyBvbiBVbml4CiBTZWUgLi4vcnVudGltZS9kb2Mvb3NfMzkwLnR4dCAgIGZvciBPUy8zOTAgVW5peAogU2VlIC4uL3J1bnRpbWUvZG9jL29zX2Jlb3MudHh0ICBmb3IgQmVCb3gKIApkaWZmIC0tZ2l0IGEvc3JjL2VkaXQuYyBiL3NyYy9lZGl0LmMKaW5kZXggZmIxN2VlYy4uZTA0YzcyMCAxMDA2NDQKLS0tIGEvc3JjL2VkaXQuYworKysgYi9zcmMvZWRpdC5jCkBAIC05MzAwLDcgKzkzMDAsNyBAQAogCSAgICBpID0gY3Vyc29yLT5jb2wgLSBmcG9zLmNvbDsKIAkgICAgaWYgKGkgPiAwKQogCSAgICB7Ci0JCW1jaF9tZW1tb3ZlKHB0ciwgcHRyICsgaSwgU1RSTEVOKHB0ciArIGkpICsgMSk7CisJCVNUUk1PVkUocHRyLCBwdHIgKyBpKTsKIAkJLyogY29ycmVjdCByZXBsYWNlIHN0YWNrLiAqLwogCQlpZiAoKFN0YXRlICYgUkVQTEFDRV9GTEFHKQogI2lmZGVmIEZFQVRfVlJFUExBQ0UKZGlmZiAtLWdpdCBhL3NyYy9vcHMuYyBiL3NyYy9vcHMuYwppbmRleCBiYTc3NGI4Li5kNzlkNzVkIDEwMDY0NAotLS0gYS9zcmMvb3BzLmMKKysrIGIvc3JjL29wcy5jCkBAIC01MTYsNyArNTE2LDcgQEAKIAljb3B5X3NwYWNlcyhuZXdwICsgYmQudGV4dGNvbCArIGksIChzaXplX3Qpaik7CiAKIAkvKiB0aGUgZW5kICovCi0JbWNoX21lbW1vdmUobmV3cCArIFNUUkxFTihuZXdwKSwgbWlkcCwgKHNpemVfdClTVFJMRU4obWlkcCkgKyAxKTsKKwlTVFJNT1ZFKG5ld3AgKyBTVFJMRU4obmV3cCksIG1pZHApOwogICAgIH0KICAgICAvKiByZXBsYWNlIHRoZSBsaW5lICovCiAgICAgbWxfcmVwbGFjZShjdXJ3aW4tPndfY3Vyc29yLmxudW0sIG5ld3AsIEZBTFNFKTsKQEAgLTYxNiw3ICs2MTYsNyBAQAogCiAJaWYgKHNwYWNlcyA+IDApCiAJICAgIG9mZnNldCArPSBjb3VudDsKLQltY2hfbWVtbW92ZShuZXdwICsgb2Zmc2V0LCBvbGRwLCAoc2l6ZV90KShTVFJMRU4ob2xkcCkgKyAxKSk7CisJU1RSTU9WRShuZXdwICsgb2Zmc2V0LCBvbGRwKTsKIAogCW1sX3JlcGxhY2UobG51bSwgbmV3cCwgRkFMU0UpOwogCkBAIC0xNzU5LDggKzE3NTksNyBAQAogCQkJCSAgICAgKHNpemVfdCkoYmQuc3RhcnRzcGFjZXMgKyBiZC5lbmRzcGFjZXMpKTsKIAkgICAgLyogY29weSB0aGUgcGFydCBhZnRlciB0aGUgZGVsZXRlZCBwYXJ0ICovCiAJICAgIG9sZHAgKz0gYmQudGV4dGNvbCArIGJkLnRleHRsZW47Ci0JICAgIG1jaF9tZW1tb3ZlKG5ld3AgKyBiZC50ZXh0Y29sICsgYmQuc3RhcnRzcGFjZXMgKyBiZC5lbmRzcGFjZXMsCi0JCQkJCQkgICAgICBvbGRwLCBTVFJMRU4ob2xkcCkgKyAxKTsKKwkgICAgU1RSTU9WRShuZXdwICsgYmQudGV4dGNvbCArIGJkLnN0YXJ0c3BhY2VzICsgYmQuZW5kc3BhY2VzLCBvbGRwKTsKIAkgICAgLyogcmVwbGFjZSB0aGUgbGluZSAqLwogCSAgICBtbF9yZXBsYWNlKGxudW0sIG5ld3AsIEZBTFNFKTsKIAl9CkBAIC0yMDgxLDcgKzIwODAsNyBAQAogCQkvKiBpbnNlcnQgcG9zdC1zcGFjZXMgKi8KIAkJY29weV9zcGFjZXMobmV3cCArIFNUUkxFTihuZXdwKSwgKHNpemVfdCliZC5lbmRzcGFjZXMpOwogCQkvKiBjb3B5IHRoZSBwYXJ0IGFmdGVyIHRoZSBjaGFuZ2VkIHBhcnQgKi8KLQkJbWNoX21lbW1vdmUobmV3cCArIFNUUkxFTihuZXdwKSwgb2xkcCwgU1RSTEVOKG9sZHApICsgMSk7CisJCVNUUk1PVkUobmV3cCArIFNUUkxFTihuZXdwKSwgb2xkcCk7CiAJICAgIH0KIAkgICAgLyogcmVwbGFjZSB0aGUgbGluZSAqLwogCSAgICBtbF9yZXBsYWNlKGN1cndpbi0+d19jdXJzb3IubG51bSwgbmV3cCwgRkFMU0UpOwpAQCAtMjY5Niw3ICsyNjk1LDcgQEAKIAkJCW1jaF9tZW1tb3ZlKG5ld3AgKyBvZmZzZXQsIGluc190ZXh0LCAoc2l6ZV90KWluc19sZW4pOwogCQkJb2Zmc2V0ICs9IGluc19sZW47CiAJCQlvbGRwICs9IGJkLnRleHRjb2w7Ci0JCQltY2hfbWVtbW92ZShuZXdwICsgb2Zmc2V0LCBvbGRwLCBTVFJMRU4ob2xkcCkgKyAxKTsKKwkJCVNUUk1PVkUobmV3cCArIG9mZnNldCwgb2xkcCk7CiAJCQltbF9yZXBsYWNlKGxpbmVuciwgbmV3cCwgRkFMU0UpOwogCQkgICAgfQogCQl9CkBAIC0zNjYyLDcgKzM2NjEsNyBAQAogCQkgICAgbWNoX21lbW1vdmUocHRyLCB5X2FycmF5WzBdLCAoc2l6ZV90KXlhbmtsZW4pOwogCQkgICAgcHRyICs9IHlhbmtsZW47CiAJCX0KLQkJbWNoX21lbW1vdmUocHRyLCBvbGRwICsgY29sLCBTVFJMRU4ob2xkcCArIGNvbCkgKyAxKTsKKwkJU1RSTU9WRShwdHIsIG9sZHAgKyBjb2wpOwogCQltbF9yZXBsYWNlKGxudW0sIG5ld3AsIEZBTFNFKTsKIAkJLyogUHV0IGN1cnNvciBvbiBsYXN0IHB1dHRlZCBjaGFyLiAqLwogCQljdXJ3aW4tPndfY3Vyc29yLmNvbCArPSAoY29sbnJfVCkodG90bGVuIC0gMSk7CmRpZmYgLS1naXQgYS9zcmMvb3B0aW9uLmMgYi9zcmMvb3B0aW9uLmMKaW5kZXggODg1YzU0Ny4uODU0M2I0OCAxMDA2NDQKLS0tIGEvc3JjL29wdGlvbi5jCisrKyBiL3NyYy9vcHRpb24uYwpAQCAtMjg0Niw3ICsyODQ2LDYgQEAKICNpZmRlZiBGRUFUX1NDUk9MTEJJTkQKIHN0YXRpYyBjaGFyICoocF9zY2JvcHRfdmFsdWVzW10pID0geyJ2ZXIiLCAiaG9yIiwgImp1bXAiLCBOVUxMfTsKICNlbmRpZgotc3RhdGljIGNoYXIgKihwX3N3Yl92YWx1ZXNbXSkgPSB7InVzZW9wZW4iLCAidXNldGFiIiwgInNwbGl0IiwgTlVMTH07CiBzdGF0aWMgY2hhciAqKHBfZGVidWdfdmFsdWVzW10pID0geyJtc2ciLCAidGhyb3ciLCAiYmVlcCIsIE5VTEx9OwogI2lmZGVmIEZFQVRfVkVSVFNQTElUCiBzdGF0aWMgY2hhciAqKHBfZWFkX3ZhbHVlc1tdKSA9IHsiYm90aCIsICJ2ZXIiLCAiaG9yIiwgTlVMTH07CkBAIC0zMjc2LDIwICszMjc1LDggQEAKICAgICB9CiAjIGVsc2UKICMgIGlmZGVmIE1BQ09TX0NPTlZFUlQKLSAgICBpZiAobWNoX2dldGVudigoY2hhcl91ICopIkxBTkciKSA9PSBOVUxMKQotICAgIHsKLQljaGFyCWJ1ZlsyMF07Ci0JaWYgKExvY2FsZVJlZkdldFBhcnRTdHJpbmcoTlVMTCwKLQkJICAgIGtMb2NhbGVMYW5ndWFnZU1hc2sgfCBrTG9jYWxlTGFuZ3VhZ2VWYXJpYW50TWFzayB8Ci0JCSAgICBrTG9jYWxlUmVnaW9uTWFzayB8IGtMb2NhbGVSZWdpb25WYXJpYW50TWFzaywKLQkJICAgIHNpemVvZiBidWYsIGJ1ZikgPT0gbm9FcnIgJiYgKmJ1ZikKLQl7Ci0JICAgIHZpbV9zZXRlbnYoKGNoYXJfdSAqKSJMQU5HIiwgKGNoYXJfdSAqKWJ1Zik7Ci0jICAgaWZkZWYgSEFWRV9MT0NBTEVfSAotCSAgICBzZXRsb2NhbGUoTENfQUxMLCAiIik7Ci0jICAgZW5kaWYKLQl9Ci0gICAgfQorICAgIC8qIE1vdmVkIHRvIG9zX21hY19jb252LmMgdG8gYXZvaWQgZGVwZW5kZW5jeSBwcm9ibGVtcy4gKi8KKyAgICBtYWNfbGFuZ19pbml0KCk7CiAjICBlbmRpZgogIyBlbmRpZgogCkBAIC00NTk5LDggKzQ1ODYsNyBAQAogCQkJCWVsc2UKIAkJCQl7CiAJCQkJICAgIGkgPSAoaW50KVNUUkxFTihuZXd2YWwpOwotCQkJCSAgICBtY2hfbWVtbW92ZShuZXd2YWwgKyBpICsgY29tbWEsIG9yaWd2YWwsCi0JCQkJCQkJICBTVFJMRU4ob3JpZ3ZhbCkgKyAxKTsKKwkJCQkgICAgU1RSTU9WRShuZXd2YWwgKyBpICsgY29tbWEsIG9yaWd2YWwpOwogCQkJCX0KIAkJCQlpZiAoY29tbWEpCiAJCQkJICAgIG5ld3ZhbFtpXSA9ICcsJzsKQEAgLTQ2MjksOCArNDYxNSw3IEBACiAJCQkJCSAgICArK2k7CiAJCQkJCX0KIAkJCQkgICAgfQotCQkJCSAgICBtY2hfbWVtbW92ZShuZXd2YWwgKyAocyAtIG9yaWd2YWwpLCBzICsgaSwKLQkJCQkJCQkgICBTVFJMRU4ocyArIGkpICsgMSk7CisJCQkJICAgIFNUUk1PVkUobmV3dmFsICsgKHMgLSBvcmlndmFsKSwgcyArIGkpOwogCQkJCX0KIAkJCSAgICB9CiAKQEAgLTQ2NDEsNyArNDYyNiw3IEBACiAJCQkJICAgIGlmICgoIShmbGFncyAmIFBfQ09NTUEpIHx8ICpzICE9ICcsJykKIAkJCQkJICAgICYmIHZpbV9zdHJjaHIocyArIDEsICpzKSAhPSBOVUxMKQogCQkJCSAgICB7Ci0JCQkJCW1jaF9tZW1tb3ZlKHMsIHMgKyAxLCBTVFJMRU4ocykpOworCQkJCQlTVFJNT1ZFKHMsIHMgKyAxKTsKIAkJCQkJLS1zOwogCQkJCSAgICB9CiAJCQkgICAgfQpAQCAtNjIzMCw3ICs2MjE1LDcgQEAKICAgICAvKiAnc3dpdGNoYnVmJyAqLwogICAgIGVsc2UgaWYgKHZhcnAgPT0gJnBfc3diKQogICAgIHsKLQlpZiAoY2hlY2tfb3B0X3N0cmluZ3MocF9zd2IsIHBfc3diX3ZhbHVlcywgVFJVRSkgIT0gT0spCisJaWYgKG9wdF9zdHJpbmdzX2ZsYWdzKHBfc3diLCBwX3N3Yl92YWx1ZXMsICZzd2JfZmxhZ3MsIFRSVUUpICE9IE9LKQogCSAgICBlcnJtc2cgPSBlX2ludmFyZzsKICAgICB9CiAKQEAgLTcxODMsNyArNzE2OCw3IEBACiAJfQogCS8qIHJlbW92ZSAncycgZnJvbSBwX3NobSAqLwogCWVsc2UgaWYgKCFwX3RlcnNlICYmIHAgIT0gTlVMTCkKLQkgICAgbWNoX21lbW1vdmUocCwgcCArIDEsIFNUUkxFTihwKSk7CisJICAgIFNUUk1PVkUocCwgcCArIDEpOwogICAgIH0KIAogICAgIC8qIHdoZW4gJ3Bhc3RlJyBpcyBzZXQgb3IgcmVzZXQgYWxzbyBjaGFuZ2Ugb3RoZXIgb3B0aW9ucyAqLwpAQCAtODE3Nyw3ICs4MTYyLDggQEAKIAl7CiAjaWZkZWYgRkVBVF9DUllQVAogCSAgICAvKiBuZXZlciByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBjcnlwdCBrZXkgKi8KLQkgICAgaWYgKChjaGFyX3UgKiopdmFycCA9PSAmY3VyYnVmLT5iX3Bfa2V5KQorCSAgICBpZiAoKGNoYXJfdSAqKil2YXJwID09ICZjdXJidWYtPmJfcF9rZXkKKwkJCQkJCSYmICoqKGNoYXJfdSAqKikodmFycCkgIT0gTlVMKQogCQkqc3RyaW5ndmFsID0gdmltX3N0cnNhdmUoKGNoYXJfdSAqKSIqKioqKiIpOwogCSAgICBlbHNlCiAjZW5kaWYKQEAgLTEwMDMyLDcgKzEwMDE4LDcgQEAKIAkJJiYgKG9wdGlvbnNbZXhwYW5kX29wdGlvbl9pZHhdLmZsYWdzICYgUF9FWFBBTkQpCiAJCSYmIHZpbV9pc2ZpbGVjKHZhclsyXSkKIAkJJiYgKHZhclsyXSAhPSAnXFwnIHx8ICh2YXIgPT0gYnVmICYmIHZhcls0XSAhPSAnXFwnKSkpCi0JICAgIG1jaF9tZW1tb3ZlKHZhciwgdmFyICsgMSwgU1RSTEVOKHZhcikpOworCSAgICBTVFJNT1ZFKHZhciwgdmFyICsgMSk7CiAjZW5kaWYKIAogICAgICpmaWxlWzBdID0gYnVmOwpkaWZmIC0tZ2l0IGEvc3JjL29wdGlvbi5oIGIvc3JjL29wdGlvbi5oCmluZGV4IDM4MThiY2QuLjAwMzc0ZDcgMTAwNjQ0Ci0tLSBhL3NyYy9vcHRpb24uaAorKysgYi9zcmMvb3B0aW9uLmgKQEAgLTc0Miw2ICs3NDIsMTQgQEAKIEVYVEVSTiBjaGFyX3UJKnBfc3U7CQkvKiAnc3VmZml4ZXMnICovCiBFWFRFUk4gY2hhcl91CSpwX3N3czsJCS8qICdzd2Fwc3luYycgKi8KIEVYVEVSTiBjaGFyX3UJKnBfc3diOwkJLyogJ3N3aXRjaGJ1ZicgKi8KK0VYVEVSTiB1bnNpZ25lZAlzd2JfZmxhZ3M7CisjaWZkZWYgSU5fT1BUSU9OX0MKK3N0YXRpYyBjaGFyICoocF9zd2JfdmFsdWVzW10pID0geyJ1c2VvcGVuIiwgInVzZXRhYiIsICJzcGxpdCIsICJuZXd0YWIiLCBOVUxMfTsKKyNlbmRpZgorI2RlZmluZSBTV0JfVVNFT1BFTgkJMHgwMDEKKyNkZWZpbmUgU1dCX1VTRVRBQgkJMHgwMDIKKyNkZWZpbmUgU1dCX1NQTElUCQkweDAwNAorI2RlZmluZSBTV0JfTkVXVEFCCQkweDAwOAogRVhURVJOIGludAlwX3RiczsJCS8qICd0YWdic2VhcmNoJyAqLwogRVhURVJOIGxvbmcJcF90bDsJCS8qICd0YWdsZW5ndGgnICovCiBFWFRFUk4gaW50CXBfdHI7CQkvKiAndGFncmVsYXRpdmUnICovCmRpZmYgLS1naXQgYS9zcmMvcG8vamEuc2ppcy5wbyBiL3NyYy9wby9qYS5zamlzLnBvCmluZGV4IDk2YzIwMzcuLjliOWVhMjMgMTAwNjQ0Ci0tLSBhL3NyYy9wby9qYS5zamlzLnBvCisrKyBiL3NyYy9wby9qYS5zamlzLnBvCkBAIC0zLDE2ICszLDE3IEBACiAjIERvICI6aGVscCB1Z2FuZGEiICBpbiBWaW0gdG8gcmVhZCBjb3B5aW5nIGFuZCB1c2FnZSBjb25kaXRpb25zLgogIyBEbyAiOmhlbHAgY3JlZGl0cyIgaW4gVmltIHRvIHNlZSBhIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZC4KICMKLSMgTVVSQU9LQSBUYXJvIDxrb3JvbkB0a2EuYXR0Lm5lLmpwPiwgMjAwMS02LgotIyBMYXN0IENoYW5nZTogMTgtQXByLTIwMDYuCisjIE1VUkFPS0EgVGFybyA8a29yb24ua2Fvcml5YUBnbWFpbC5jb20+LCAyMDAxLTguCisjIExhc3QgQ2hhbmdlOiAzMS1NYXktMjAwOC4KICMKIG1zZ2lkICIiCiBtc2dzdHIgIiIKLSJQcm9qZWN0LUlkLVZlcnNpb246IFZpbSA3LjBcbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwNi0wNC0xOCAxMTowMCswOTAwXG4iCi0iUE8tUmV2aXNpb24tRGF0ZTogMjAwNi0wNC0xOCAxMTozMCswOTAwXG4iCi0iTGFzdC1UcmFuc2xhdG9yOiBNVVJBT0tBIFRhcm8gPGtvcm9uQHRrYS5hdHQubmUuanA+XG4iCi0iTGFuZ3VhZ2UtVGVhbTogTVVSQU9LQSBUYXJvIDxrb3JvbkB0a2EuYXR0Lm5lLmpwPlxuIgorIlByb2plY3QtSWQtVmVyc2lvbjogVmltIDcuMVxuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwOC0wNS0zMSAyMjowMCswOTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAwOC0wNS0zMSAyMjozMCswOTAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBNVVJBT0tBIFRhcm8gPGtvcm9uLmthb3JpeWFAZ21haWwuY29tPlxuIgorIkxhbmd1YWdlLVRlYW06IE1VUkFPS0EgVGFybyA8a29yb24ua2Fvcml5YUBnbWFpbC5jb20+XG4iCiAiTUlNRS1WZXJzaW9uOiAxLjBcbiIKICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Y3A5MzJcbiIKICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4LWJpdFxuIgpAQCAtMTE0LDEyICsxMTUsMTUgQEAKIG1zZ2lkICJbcmVhZG9ubHldIgogbXNnc3RyICJbk8eNnpDql3BdIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIjEgbGluZSAtLSVkJSUtLSIKIG1zZ3N0ciAiMSCNcyAtLSVkJSUtLSIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICIlbGQgbGluZXMgLS0lZCUlLS0iCiBtc2dzdHIgIiVsZCCNcyAtLSVkJSUtLSIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJsaW5lICVsZCBvZiAlbGQgLS0lZCUlLS0gY29sICIKIG1zZ3N0ciAijXMgJWxkICiRU5HMICVsZCkgLS0lZCUlLS0gY29sICIKIApAQCAtMTQ1LDYgKzE0OSw3IEBACiBtc2dpZCAiVG9wIgogbXNnc3RyICKQ5pOqIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKICIjIEJ1ZmZlciBsaXN0OlxuIgpAQCAtMTg5LDYgKzE5NCw5IEBACiBtc2dpZCAiRTk5OiBDdXJyZW50IGJ1ZmZlciBpcyBub3QgaW4gZGlmZiBtb2RlIgogbXNnc3RyICJFOTk6IIy7jd2CzINvg2KDdINAgs2Nt5Wqg4KBW4NogsWCzYKgguiC3IK5gvEiCiAKK21zZ2lkICJFNzkzOiBObyBvdGhlciBidWZmZXIgaW4gZGlmZiBtb2RlIGlzIG1vZGlmaWFibGUiCittc2dzdHIgIkU3OTM6II23laqDgoFbg2iCxYKggumRvILMg2+DYoN0g0CCzZXPjViJwpRcXILFgrciCisKIG1zZ2lkICJFMTAwOiBObyBvdGhlciBidWZmZXIgaW4gZGlmZiBtb2RlIgogbXNnc3RyICJFMTAwOiCNt5Wqg4KBW4NogsWCoILpkbyCzINvg2KDdINAgs2CoILogtyCuYLxIgogCkBAIC0yMTYsNiArMjI0LDkgQEAKIG1zZ2lkICJFMTA1OiBVc2luZyA6bG9hZGtleW1hcCBub3QgaW4gYSBzb3VyY2VkIGZpbGUiCiBtc2dzdHIgIkUxMDU6IDpzb3VyY2UggsWO5o2egt6DdINAg0ODi4jIik+CxYLNIDpsb2Fka2V5bWFwIILwjmeCpoLcgrmC8SIKIAorbXNnaWQgIkU3OTE6IEVtcHR5IGtleW1hcCBlbnRyeSIKK21zZ3N0ciAiRTc5MTogi/OCzINMgVuDfYNig3aDR4OTg2eDiiIKKwogbXNnaWQgIiBLZXl3b3JkIGNvbXBsZXRpb24gKF5OXlApIgogbXNnc3RyICIgg0yBW4OPgVuDaJXiiq4gKF5OXlApIgogCkBAIC0yODIsNiArMjkzLDcgQEAKIG1zZ2lkICJTY2FubmluZzogJXMiCiBtc2dzdHIgIoNYg0yDg4OTkoY6ICVzIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIlNjYW5uaW5nIHRhZ3MuIgogbXNnc3RyICKDXoNPgvCDWINMg4ODk5KGLiIKIApAQCAtMzM4LDcgKzM1MCw3IEBACiBtc2dzdHIgIkU3MTM6II6rj5GMXoLJi/OCzINMgVuC8I5ngqSCsYLGgs2CxYKrgtyCuYLxIgogCiBtc2dpZCAiRTcxNDogTGlzdCByZXF1aXJlZCIKLW1zZ3N0ciAiRTQ3MTogg4qDWINnjF6CqpVLl3aCxYK3IgorbXNnc3RyICJFNzE0OiCDioNYg2eMXoKqlUuXdoLFgrciCiAKIG1zZ2lkICJFNzE1OiBEaWN0aW9uYXJ5IHJlcXVpcmVkIgogbXNnc3RyICJFNzE1OiCOq4+RjF6CqpVLl3aCxYK3IgpAQCAtNjEzLDYgKzYyNSwxMCBAQAogbXNnc3RyICJFNzA2OiCVz5CUgsyMXoKqiOqSdoK1gtyCuYLxOiAlcyIKIAogIywgYy1mb3JtYXQKK21zZ2lkICJFNzk1OiBDYW5ub3QgZGVsZXRlIHZhcmlhYmxlICVzIgorbXNnc3RyICJFNzk1OiCVz5CUICVzIILwje2PnILFgquC3IK5gvEiCisKKyMsIGMtZm9ybWF0CiBtc2dpZCAiRTc0MTogVmFsdWUgaXMgbG9ja2VkOiAlcyIKIG1zZ3N0ciAiRTc0MTogkmyCqoONg2KDToKzguqCxIKigtyCtzogJXMiCiAKQEAgLTY3OCw2ICs2OTQsNyBAQAogbXNnaWQgIkUxMzM6IDpyZXR1cm4gbm90IGluc2lkZSBhIGZ1bmN0aW9uIgogbXNnc3RyICJFMTMzOiCK1pCUik+CySA6cmV0dXJuIIKqgqCC6ILcgrWCvSIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCiAiIyBnbG9iYWwgdmFyaWFibGVzOlxuIgpAQCAtNzQ0LDYgKzc2MSw3IEBACiBtc2dpZCAiIEZBSUxFRCIKIG1zZ3N0ciAiII64lHMiCiAKKyMuIGF2b2lkIGEgd2FpdF9yZXR1cm4gZm9yIHRoaXMgbWVzc2FnZSwgaXQncyBhbm5veWluZwogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTM3OiBWaW1pbmZvIGZpbGUgaXMgbm90IHdyaXRhYmxlOiAlcyIKIG1zZ3N0ciAiRTEzNzogdmltaW5mb4N0g0CDQ4OLgqqPkY2egt2CxYKrgtyCuYLxOiAlcyIKQEAgLTc2MSw2ICs3NzksNyBAQAogbXNnaWQgIiMgVGhpcyB2aW1pbmZvIGZpbGUgd2FzIGdlbmVyYXRlZCBieSBWaW0gJXMuXG4iCiBtc2dzdHIgIiMggrGCzCB2aW1pbmZvIIN0g0CDQ4OLgs0gVmltICVzIILJguaCwYLEkLaQrIKzguqC3IK1gr0uXG4iCiAKKyMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiMgWW91IG1heSBlZGl0IGl0IGlmIHlvdSdyZSBjYXJlZnVsIVxuIgogIlxuIgpAQCAtNzY4LDYgKzc4Nyw3IEBACiAiIyCVz41YgreC6Y3bgsmCzY9cXJWqko2I04K1gsSCrYK+grOCoiFcbiIKICJcbiIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICIjIFZhbHVlIG9mICdlbmNvZGluZycgd2hlbiB0aGlzIGZpbGUgd2FzIHdyaXR0ZW5cbiIKIG1zZ3N0ciAiIyCCsYLMg3SDQINDg4uCqo+RgqmC6oK9jp6CzCAnZW5jb2RpbmcnIILMkmxcbiIKIApAQCAtODEwLDYgKzgzMCwyMCBAQAogIlwiJXNcIiCCyYLNICdyZWFkb25seScgg0mDdoNWg4eDk4KqkN2S6IKzguqCxIKigtyCty5cbiIKICKP44+RgquLrZCngvCCtYLcgreCqT8iCiAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgcGVybWlzc2lvbnMgb2YgXCIlc1wiIGFyZSByZWFkLW9ubHkuXG4iCisiSXQgbWF5IHN0aWxsIGJlIHBvc3NpYmxlIHRvIHdyaXRlIGl0LlxuIgorIkRvIHlvdSB3aXNoIHRvIHRyeT8iCittc2dzdHIgIiIKKyKDdINAg0ODiyBcIiVzXCIggsyDcIFbg36DYoNWg4eDk4Kqk8eNnpDql3CCxYK3LlxuIgorIoK7guqCxYLgi7CC54Ktj5GCq42egt6CsYLGgs2JwpRcXILFgrcuXG4iCisijHCRsYK1gtyCt4KpPyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNTA1OiBcIiVzXCIgaXMgcmVhZC1vbmx5IChhZGQgISB0byBvdmVycmlkZSkiCittc2dzdHIgIkU1MDU6IFwiJXNcIiCCzZPHjZ6Q6pdwgsWCtyAoi62Qp4+RjZ6CyYLNICEggvCSx4nBKSIKKwogbXNnaWQgIkVkaXQgRmlsZSIKIG1zZ3N0ciAig3SDQINDg4uC8JXSj1ciCiAKQEAgLTg2NCw2ICs4OTgsNyBAQAogbXNnaWQgIlBhdHRlcm4gZm91bmQgaW4gZXZlcnkgbGluZTogJXMiCiBtc2dzdHIgIoNwg16BW4OTgqqRU4LEgsyNc4LFgt2CwoKpguiC3IK1gr06ICVzIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKICIjIExhc3QgU3Vic3RpdHV0ZSBTdHJpbmc6XG4iCkBAIC0xMjA3LDEwICsxMjQyLDEwIEBACiBtc2dpZCAiQXBwZW5kIEZpbGUiCiBtc2dzdHIgIpLHicGDdINAg0ODiyIKIAotbXNnaWQgIkU3NDc6IENhbm5vdCBjaGFuZ2UgZGlyZWN0b3J5LCBidWZmZXIgaXMgbW9kaWZlZCAoYWRkICEgdG8gb3ZlcnJpZGUpIgorbXNnaWQgIkU3NDc6IENhbm5vdCBjaGFuZ2UgZGlyZWN0b3J5LCBidWZmZXIgaXMgbW9kaWZpZWQgKGFkZCAhIHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiIgotIkU3NDc6IINvg2KDdINAgqqPQ5CzgrOC6oLEgqKC6YLMgsUsIINmg0KDjINOg2eDioLwlc+NWILFgquC3IK5gvEgKCEgIgotIoLwkseJwYLFj+OPkSkiCisiRTc0Nzogg2+DYoN0g0CCqo9DkLOCs4LqgsSCooLpgsyCxSwgg2aDQoOMg06DZ4OKgvCVz41YgsWCq4LcgrmC8SAoISCC8JLHicGCxSIKKyKP44+RKSIKIAogbXNnaWQgIkUxODY6IE5vIHByZXZpb3VzIGRpcmVjdG9yeSIKIG1zZ3N0ciAiRTE4NjogkU+CzINmg0KDjINOg2eDioLNgqCC6ILcgrmC8SIKQEAgLTE0NDYsNiArMTQ4MSw5IEBACiBtc2dpZCAiaXMgbm90IGEgZmlsZSIKIG1zZ3N0ciAiIILNg3SDQINDg4uCxYLNgqCC6ILcgrmC8SIKIAorbXNnaWQgImlzIGEgZGV2aWNlIChkaXNhYmxlZCB3aXRoICdvcGVuZGV2aWNlJyBvcHRpb24pIgorbXNnc3RyICIggs2DZoNvg0ODWILFgrcgKCdvcGVuZGV2aWNlJyCDSYN2g1aDh4OTgsWJ8ZTwgsWCq4LcgrcpIgorCiBtc2dpZCAiW05ldyBGaWxlXSIKIG1zZ3N0ciAiW5BWg3SDQINDg4tdIgogCkBAIC0xNDgzLDYgKzE1MjEsOSBAQAogbXNnaWQgIltzb2NrZXRdIgogbXNnc3RyICJbg1xcg1CDYoNnXSIKIAorbXNnaWQgIltjaGFyYWN0ZXIgc3BlY2lhbF0iCittc2dzdHIgIluDTIODg4mDToNegUWDZoNvg0ODWF0iCisKIG1zZ2lkICJbUk9dIgogbXNnc3RyICJbk8eQ6l0iCiAKQEAgLTE1NDMsNiArMTU4NCw5IEBACiBtc2dpZCAiaXMgbm90IGEgZmlsZSBvciB3cml0YWJsZSBkZXZpY2UiCiBtc2dzdHIgIoLNg3SDQINDg4uCxYLgj5GNnoLdicKUXFyDZoNvg0ODWILFguCCoILogtyCuYLxIgogCittc2dpZCAid3JpdGluZyB0byBkZXZpY2UgZGlzYWJsZWQgd2l0aCAnb3BlbmRldmljZScgb3B0aW9uIgorbXNnc3RyICInb3BlbmRldmljZScgg0mDdoNWg4eDk4LJguaC6INmg2+DQ4NYgtaCzI+RgquNnoLdgs2CxYKrgtyCuYLxIgorCiBtc2dpZCAiaXMgcmVhZC1vbmx5IChhZGQgISB0byBvdmVycmlkZSkiCiBtc2dzdHIgIoLNk8eNnpDql3CCxYK3ICiLrZCnj5GNnoLJgs0gISCC8JLHicEpIgogCkBAIC0yMTUxLDYgKzIxOTUsNyBAQAogbXNnaWQgIk5vIHRleHQgdG8gYmUgcHJpbnRlZCIKIG1zZ3N0ciAiiPON/IK3gumDZYNMg1iDZ4KqgqCC6ILcgrmC8SIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJQcmludGluZyBwYWdlICVkICglZCUlKSIKIG1zZ3N0ciAiiPON/JKGOiCDeYFbg1cgJWQgKCVkJSUpIgogCkBAIC0yMjkwLDE1ICsyMzM1LDE1IEBACiBtc2dpZCAiY3NfY3JlYXRlX2Nvbm5lY3Rpb24gZXhlYyBmYWlsZWQiCiBtc2dzdHIgImNzX2NyZWF0ZV9jb25uZWN0aW9uIILMjsCNc4LJjriUc4K1gtyCtYK9IgogCi1tc2dpZCAiRTYyMzogQ291bGQgbm90IHNwYXduIGNzY29wZSBwcm9jZXNzIgotbXNnc3RyICJFNjIzOiBjc2NvcGWDdoONg1qDWILwi06TroLFgquC3IK5gvGCxYK1gr0iCi0KIG1zZ2lkICJjc19jcmVhdGVfY29ubmVjdGlvbjogZmRvcGVuIGZvciB0b19mcCBmYWlsZWQiCiBtc2dzdHIgImNzX2NyZWF0ZV9jb25uZWN0aW9uOiB0b19mcCCCzCBmZG9wZW4ggsmOuJRzgrWC3IK1gr0iCiAKIG1zZ2lkICJjc19jcmVhdGVfY29ubmVjdGlvbjogZmRvcGVuIGZvciBmcl9mcCBmYWlsZWQiCiBtc2dzdHIgImNzX2NyZWF0ZV9jb25uZWN0aW9uOiBmcl9mcCCCzCBmZG9wZW4ggsmOuJRzgrWC3IK1gr0iCiAKK21zZ2lkICJFNjIzOiBDb3VsZCBub3Qgc3Bhd24gY3Njb3BlIHByb2Nlc3MiCittc2dzdHIgIkU2MjM6IGNzY29wZYN2g42DWoNYgvCLTpOugsWCq4LcgrmC8YLFgrWCvSIKKwogbXNnaWQgIkU1Njc6IG5vIGNzY29wZSBjb25uZWN0aW9ucyIKIG1zZ3N0ciAiRTU2NzogY3Njb3BlkNqRsYLJjriUc4K1gtyCtYK9IgogCkBAIC0yMzczLDggKzI0MTgsOCBAQAogIj8/PzogU29ycnksIHRoaXMgY29tbWFuZCBpcyBkaXNhYmxlZCwgdGhlIE16U2NoZW1lIGxpYnJhcnkgY291bGQgbm90IGJlICIKICJsb2FkZWQuIgogbXNnc3RyICIiCi0iPz8/OiCCsYLMg1KDfYOTg2iCzZazjPiCxYK3LCCCsoLfgvGCyIKzgqI6IE16U2NoZW1lICIKLSKDiYNDg3WDiYOKgvCDjYFbg2iCxYKrgtyCuYLxgsWCtYK9LiIKKyI/Pz86IIKxgsyDUoN9g5ODaILNlrOM+ILFgrcsIIKygt+C8YLIgrOCojogTXpTY2hlbWUgg4mDQ4N1g4mDioLwg42BW4NogsWCq4LcIgorIoK5gvGCxYK1gr0uIgogCiBtc2dpZCAiaW52YWxpZCBleHByZXNzaW9uIgogbXNnc3RyICKWs4z4gsiOroLFgrciCkBAIC0yNDI3LDI1ICsyNDcyLDEyIEBACiBtc2dpZCAibm90IGFsbG93ZWQgaW4gdGhlIFZpbSBzYW5kYm94IgogbXNnc3RyICKDVIOTg2iDe4Nig06DWILFgs2LloKzguqC3IK5gvEiCiAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRTM3MDogQ291bGQgbm90IGxvYWQgbGlicmFyeSAlcyIKLW1zZ3N0ciAiRTM3MDogg4mDQ4N1g4mDiiAlcyCC8IONgVuDaILFgquC3IK5gvGCxYK1gr0iCi0KLW1zZ2lkICJTb3JyeSwgdGhpcyBjb21tYW5kIGlzIGRpc2FibGVkOiB0aGUgUGVybCBsaWJyYXJ5IGNvdWxkIG5vdCBiZSBsb2FkZWQuIgotbXNnc3RyICIiCi0igrGCzINSg32Dk4Nogs2Ws4z4gsWCtywggrKC34LxgsiCs4KiOiBQZXJsg4mDQ4N1g4mDioLwg42BW4NogsWCq4LcgrmC8YLFgrWCvS4iCi0KLW1zZ2lkICJFMjk5OiBQZXJsIGV2YWx1YXRpb24gZm9yYmlkZGVuIGluIHNhbmRib3ggd2l0aG91dCB0aGUgU2FmZSBtb2R1bGUiCi1tc2dzdHIgIiIKLSJFMjk5OiCDVIOTg2iDe4Nig06DWILFgs0gU2FmZSAiCi0ig4KDV4OFgVuDi4LwjmeXcIK1gsiColBlcmyDWINOg4qDdoNngs2L1oK2gueC6oLEgqKC3IK3IgotCiBtc2dpZCAiIgogIkUyNjM6IFNvcnJ5LCB0aGlzIGNvbW1hbmQgaXMgZGlzYWJsZWQsIHRoZSBQeXRob24gbGlicmFyeSBjb3VsZCBub3QgYmUgIgogImxvYWRlZC4iCiBtc2dzdHIgIiIKLSJFMjYzOiCCsYLMg1KDfYOTg2iCzZazjPiCxYK3LIKygt+C8YLIgrOCojogIgotIlB5dGhvboOJg0ODdYOJg4qC8IONgVuDaILFgquC3IK5gvGCxYK1gr0uIgorIkUyNjM6IIKxgsyDUoN9g5ODaILNlrOM+ILFgrcsgrKC34LxgsiCs4KiOiBQeXRob26DiYNDg3WDiYOKgvCDjYFbg2iCxYKrgtyCuYLxIgorIoLFgrWCvS4iCiAKICMgQWRkZWQgYXQgMDctRmViLTIwMDQuCiBtc2dpZCAiRTY1OTogQ2Fubm90IGludm9rZSBQeXRob24gcmVjdXJzaXZlbHkiCkBAIC0yNTEyLDExICsyNTQ0LDExIEBACiBtc2dpZCAiIgogIkUyNjY6IFNvcnJ5LCB0aGlzIGNvbW1hbmQgaXMgZGlzYWJsZWQsIHRoZSBSdWJ5IGxpYnJhcnkgY291bGQgbm90IGJlIGxvYWRlZC4iCiBtc2dzdHIgIiIKLSJFMjY2OiCCsYLMg1KDfYOTg2iCzZazjPiCxYK3LIKygt+C8YLIgrOCojogIgotIlJ1YnmDiYNDg3WDiYOKgvCDjYFbg2iCxYKrgtyCuYLxgsWCtYK9LiIKKyJFMjY2OiCCsYLMg1KDfYOTg2iCzZazjPiCxYK3LIKygt+C8YLIgrOCojogUnVieYOJg0ODdYOJg4qC8IONgVuDaILFgquC3IK5gvGCxSIKKyKCtYK9LiIKIAogbXNnaWQgIkUyNjc6IHVuZXhwZWN0ZWQgcmV0dXJuIgotbXNnc3RyICJFMjY1OiCXXFyK+oK5gsogcmV0dXJuIILFgrciCittc2dzdHIgIkUyNjc6IJdcXIr6grmCyiByZXR1cm4ggsWCtyIKIAogbXNnaWQgIkUyNjg6IHVuZXhwZWN0ZWQgbmV4dCIKIG1zZ3N0ciAiRTI2ODogl1xcivqCuYLKIG5leHQggsWCtyIKQEAgLTI1OTUsOCArMjYyNyw4IEBACiAiQ2Fubm90IGNvbm5lY3QgdG8gU05pRkYrLiBDaGVjayBlbnZpcm9ubWVudCAoc25pZmZlbWFjcyBtdXN0IGJlIGZvdW5kIGluICIKICIkUEFUSCkuXG4iCiBtc2dzdHIgIiIKLSJTTmlGRiuCyZDakbGCxYKrgtyCuYLxLiCKwourgvCDYINGg2KDToK1gsSCrYK+grOCoihzbmlmZmVtYWNzIIKqICRQQVRIICIKLSKCyYLIgq+C6oLOgsiC6ILcgrmC8SkuXG4iCisiU05pRkYrgsmQ2pGxgsWCq4LcgrmC8S4gisKLq4Lwg2CDRoNig06CtYLEgq2CvoKzgqIoc25pZmZlbWFjcyCCqiAkUEFUSCCCyYLIgq8iCisiguqCzoLIguiC3IK5gvEpLlxuIgogCiBtc2dpZCAiRTI3NDogU25pZmY6IEVycm9yIGR1cmluZyByZWFkLiBEaXNjb25uZWN0ZWQiCiBtc2dzdHIgIkUyNzQ6IFNuaWZmOiCTx42ekoaCyYNHg4mBW4KqlK2QtoK1gtyCtYK9LiCQ2JJmgrWC3IK1gr0iCkBAIC0yNjYwLDggKzI2OTIsOCBAQAogCiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBidWZmZXIvd2luZG93IGNvbW1hbmQ6IG9iamVjdCBpcyBiZWluZyBkZWxldGVkIgogbXNnc3RyICIiCi0ig2+DYoN0g0Avg0WDQoOTg2iDRY3skKyDUoN9g5ODaILwjeyQrILFgquC3IK5gvE6ICIKLSKDSYN1g1eDRoNOg2eCqo/Bi46Cs4LqgsSCooLcgrWCvSIKKyKDb4Nig3SDQC+DRYNCg5ODaINFjeyQrINSg32Dk4NogvCN7JCsgsWCq4LcgrmC8Togg0mDdYNXg0aDToNngqqPwYuOgrOC6oLEgqKC3CIKKyKCtYK9IgogCiBtc2dpZCAiIgogImNhbm5vdCByZWdpc3RlciBjYWxsYmFjayBjb21tYW5kOiBidWZmZXIvd2luZG93IGlzIGFscmVhZHkgYmVpbmcgZGVsZXRlZCIKQEAgLTI2NzAsMjcgKzI3MDIsMjcgQEAKIAogIy4gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiAgRmFtb3VzIGxhc3Qgd29yZD8KIG1zZ2lkICIiCi0iRTI4MDogVENMIEZBVEFMIEVSUk9SOiByZWZsaXN0IGNvcnJ1cHQhPyBQbGVhc2UgcmVwb3J0IHRoaXMgdG8gIgotInZpbS1kZXZAdmltLm9yZyIKKyJFMjgwOiBUQ0wgRkFUQUwgRVJST1I6IHJlZmxpc3QgY29ycnVwdCE/IFBsZWFzZSByZXBvcnQgdGhpcyB0byB2aW0tZGV2QHZpbS4iCisib3JnIgogbXNnc3RyICIiCiAiRTI4MDogVENMIJJ2lr2TSYNHg4mBWzogcmVmbGlzdCCJmJD1IT8gdmltLWRldkB2aW0ub3JnIILJlfGNkIK1gsSCrYK+grOCoiIKIAogbXNnaWQgImNhbm5vdCByZWdpc3RlciBjYWxsYmFjayBjb21tYW5kOiBidWZmZXIvd2luZG93IHJlZmVyZW5jZSBub3QgZm91bmQiCiBtc2dzdHIgIiIKLSKDUoFbg4uDb4Nig06DUoN9g5ODaILwk2+YXoLFgquC3IK5gvE6ICIKLSKDb4Nig3SDQC+DRYNCg5ODaINFgsyOUY/GgqqC3YLCgqmC6ILcgrmC8SIKKyKDUoFbg4uDb4Nig06DUoN9g5ODaILwk2+YXoLFgquC3IK5gvE6IINvg2KDdINAL4NFg0KDk4Nog0WCzI5Rj8aCqoLdgsKCqYLogtyCuSIKKyKC8SIKIAogbXNnaWQgIiIKICJFNTcxOiBTb3JyeSwgdGhpcyBjb21tYW5kIGlzIGRpc2FibGVkOiB0aGUgVGNsIGxpYnJhcnkgY291bGQgbm90IGJlIGxvYWRlZC4iCiBtc2dzdHIgIiIKLSJFNTcxOiCCsYLMg1KDfYOTg2iCzZazjPiCxYK3LIKygt+C8YLIgrOCojogIgotIlRjbIOJg0ODdYOJg4qC8IONgVuDaILFgquC3IK5gvGCxYK1gr0uIgorIkU1NzE6IIKxgsyDUoN9g5ODaILNlrOM+ILFgrcsgrKC34LxgsiCs4KiOiBUY2yDiYNDg3WDiYOKgvCDjYFbg2iCxYKrgtyCuYLxgsUiCisigrWCvS4iCiAKIG1zZ2lkICIiCiAiRTI4MTogVENMIEVSUk9SOiBleGl0IGNvZGUgaXMgbm90IGludCE/IFBsZWFzZSByZXBvcnQgdGhpcyB0byB2aW0tZGV2QHZpbS5vcmciCiBtc2dzdHIgIiIKLSJFMjgxOiBUQ0wgg0eDiYFbOiCPSZe5g1KBW4NogqqQrpCUkmyCxYLNgqCC6ILcgrmC8SE/IHZpbS1kZXZAdmltLm9yZyAiCi0igsmV8Y2QgrWCxIKtgr6Cs4KiIgorIkUyODE6IFRDTCCDR4OJgVs6II9Jl7mDUoFbg2iCqpCukJSSbILFgs2CoILogtyCuYLxIT8gdmltLWRldkB2aW0ub3JnIILJlfGNkIK1IgorIoLEgq2CvoKzgqIiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTU3MjogZXhpdCBjb2RlICVkIgpAQCAtMjgwMSw4ICsyODMzLDEyIEBACiAiXG4iCiAiICAgguCCtYKtgs06IgogCi1tc2dpZCAid2hlcmUgY2FzZSBpcyBpZ25vcmVkIHByZXBlbmQgLyB0byBtYWtlIGZsYWcgdXBwZXIgY2FzZSIKLW1zZ3N0ciAikeWVto6aj6yVto6ags2Ws46LgrOC6oLcgrcgLyCDdIOJg0+CzZHllbaOmoLJgrWCxIKtgr6Cs4KiIgorbXNnaWQgIiIKKyJcbiIKKyJXaGVyZSBjYXNlIGlzIGlnbm9yZWQgcHJlcGVuZCAvIHRvIG1ha2UgZmxhZyB1cHBlciBjYXNlIgorbXNnc3RyICIiCisiXG4iCisikeWPrJW2jpqCqpazjouCs4LqgumP6o2Hgs2R5ZW2jpqCyYK3gumCvYLfgskgLyCC8JFPknWCtYLEgq2CvoKzgqIiCiAKIG1zZ2lkICIiCiAiXG4iCkBAIC0yODcwLDggKzI5MDYsOCBAQAogbXNnaWQgIi1OXHRcdFx0Tm90IGZ1bGx5IFZpIGNvbXBhdGlibGU6ICdub2NvbXBhdGlibGUnIgogbXNnc3RyICItTlx0XHRcdFZplPGM3Yq3g4KBW4NoOiAnbm9jb21wYXRpYmxlIgogCi1tc2dpZCAiLVZbTl1cdFx0VmVyYm9zZSBsZXZlbCIKLW1zZ3N0ciAiLVZbTl1cdFx0VmVyYm9zZSCDjIN4g4siCittc2dpZCAiLVZbTl1bZm5hbWVdXHRcdEJlIHZlcmJvc2UgW2xldmVsIE5dIFtsb2cgbWVzc2FnZXMgdG8gZm5hbWVdIgorbXNnc3RyICItVltOXVtmbmFtZV1cdFx0g42DT49vl82Q3ZLoIFuDjIN4g4sgTl0gW4ONg0+DdINAg0ODi5a8IGZuYW1lXSIKIAogbXNnaWQgIi1EXHRcdFx0RGVidWdnaW5nIG1vZGUiCiBtc2dzdHIgIi1EXHRcdFx0g2aDb4Nig0+DgoFbg2giCkBAIC0yOTcxLDggKzMwMDcsMTEgQEAKICItLXJlbW90ZS13YWl0LXNpbGVudCA8ZmlsZXM+ICBTYW1lLCBkb24ndCBjb21wbGFpbiBpZiB0aGVyZSBpcyBubyBzZXJ2ZXIiCiBtc2dzdHIgIi0tcmVtb3RlLXdhaXQtc2lsZW50IDxmaWxlcz4gIJOvj+MsIINUgVuDb4KqlrOCrYLEguCMeI2QlbaC8I9vl82CtYLIgqIiCiAKLW1zZ2lkICItLXJlbW90ZS10YWIgPGZpbGVzPiAgQXMgLS1yZW1vdGUgYnV0IG9wZW4gdGFiIHBhZ2UgZm9yIGVhY2ggZmlsZSIKLW1zZ3N0ciAiLS1yZW1vdGUtdGFiIDxmaWxlcz4gIC0tcmVtb3RlgsWDdINAg0ODizGCwoLJgsKCqzGCwoLMg16DdYN5gVuDV4LwikqCrSIKK21zZ2lkICIiCisiLS1yZW1vdGUtdGFiWy13YWl0XVstc2lsZW50XSA8ZmlsZXM+ICBBcyAtLXJlbW90ZSBidXQgdXNlIHRhYiBwYWdlIHBlciBmaWxlIgorbXNnc3RyICIiCisiLS1yZW1vdGUtdGFiWy13YWl0XVstc2lsZW50XSA8ZmlsZXM+ICAtLXJlbW90ZYLFg3SDQINDg4sxgsKCyYLCgqsxgsKCzINeg3UiCisig3mBW4NXgvCKSoKtIgogCiBtc2dpZCAiLS1yZW1vdGUtc2VuZCA8a2V5cz5cdFNlbmQgPGtleXM+IHRvIGEgVmltIHNlcnZlciBhbmQgZXhpdCIKIG1zZ3N0ciAiLS1yZW1vdGUtc2VuZCA8a2V5cz5cdFZpbYNUgVuDb4LJIDxrZXlzPiCC8JGXkE2CtYLEj0mXuYK3gukiCkBAIC0zMDk3LDYgKzMxMzYsOSBAQAogbXNnaWQgIi1QIDxwYXJlbnQgdGl0bGU+XHRPcGVuIFZpbSBpbnNpZGUgcGFyZW50IGFwcGxpY2F0aW9uIgogbXNnc3RyICItUCA8kGWCzINeg0ODZ4OLPlx0VmltgvCQZYNBg3aDioNQgVuDVoOHg5OCzJKGgsWLTpOugreC6SIKIAorbXNnaWQgIi0td2luZG93aWQgPEhXTkQ+XHRPcGVuIFZpbSBpbnNpZGUgYW5vdGhlciB3aW4zMiB3aWRnZXQiCittc2dzdHIgIi0td2luZG93aWQgPEhXTkQ+XHSI2YLIgulXaW4zMiB3aWRnZXSCzJPglZSCyVZpbYLwikqCrSIKKwogbXNnaWQgIk5vIGRpc3BsYXkiCiBtc2dzdHIgIoNmg0KDWIN2g4yDQ4KqjKmCwoKpguiC3IK5gvEiCiAKQEAgLTMxNDksNiArMzE5MSw3IEBACiAiXG4iCiAilc+NWCAgII1zICAgIJfxICCDZYNMg1iDZyIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCiAiIyBGaWxlIG1hcmtzOlxuIgpAQCAtMzE1Nyw2ICszMjAwLDcgQEAKICIjIIN0g0CDQ4OLg32BW4NOOlxuIgogCiAjLiBXcml0ZSB0aGUganVtcGxpc3Qgd2l0aCAtJworIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCiAiIyBKdW1wbGlzdCAobmV3ZXN0IGZpcnN0KTpcbiIKQEAgLTMxNjQsNiArMzIwOCw3IEBACiAiXG4iCiAiIyCDV4ODg5ODdoOKg1iDZyAokFaCtYKiguCCzIKqkOYpOlxuIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKICIjIEhpc3Rvcnkgb2YgbWFya3Mgd2l0aGluIGZpbGVzIChuZXdlc3QgdG8gb2xkZXN0KTpcbiIKQEAgLTMyODksNiArMzMzNCw5IEBACiAiLFxuIgogIoLggrWCrYLNg3SDQINDg4uCqpG5j52CtYLEgqKC3IK3LiIKIAorbXNnaWQgIiBoYXMgYmVlbiBkYW1hZ2VkIChwYWdlIHNpemUgaXMgc21hbGxlciB0aGFuIG1pbmltdW0gdmFsdWUpLlxuIgorbXNnc3RyICIggs2RuY+dgrWCxIKigtyCtyAog3mBW4NXg1SDQ4NZgqqNxY+skmyC8Im6ifGCwYLEgqKC3IK3KS5cbiIKKwogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2luZyBzd2FwIGZpbGUgXCIlc1wiIgogbXNnc3RyICKDWIOPg2KDdoN0g0CDQ4OLIFwiJXNcIiCC8I5nl3CShiIKQEAgLTM2MjksNiArMzY3NywxMCBAQAogbXNnaWQgIkUzMjk6IE5vIG1lbnUgXCIlc1wiIgogbXNnc3RyICJFMzI5OiBcIiVzXCIggsaCooKkg4GDaoOFgVuCzYKgguiC3IK5gvEiCiAKKyMuIE9ubHkgYSBtbmVtb25pYyBvciBhY2NlbGVyYXRvciBpcyBub3QgdmFsaWQuCittc2dpZCAiRTc5MjogRW1wdHkgbWVudSBuYW1lIgorbXNnc3RyICJFNzkyOiCDgYNqg4WBW5a8gqqL84LFgrciCisKIG1zZ2lkICJFMzMwOiBNZW51IHBhdGggbXVzdCBub3QgbGVhZCB0byBhIHN1Yi1tZW51IgogbXNnc3RyICJFMzMwOiCDgYNqg4WBW4Nwg1iCzYNUg3WDgYNqg4WBW4LwkLaCtoLpgteCq4LFgs2CoILogtyCuYLxIgogCkBAIC0zNjgwLDcgKzM3MzIsNyBAQAogbXNnc3RyICJFMzU0OiCWs4z4gsiDjINXg1iDXpa8OiAnJXMnIgogCiBtc2dpZCAiTWVzc2FnZXMgbWFpbnRhaW5lcjogQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4iCi1tc2dzdHIgIpP6lnuM6oOBg2KDWoFbg1eWfJbzL4rEj0M6IJG6iaogkb6YWSA8a29yb25AdGthLmF0dC5uZS5qcD4iCittc2dzdHIgIpP6lnuM6oOBg2KDWoFbg1eWfJbzL4rEj0M6IJG6iaogkb6YWSA8a29yb24ua2Fvcml5YUBnbWFpbC5jb20+IgogCiBtc2dpZCAiSW50ZXJydXB0OiAiCiBtc2dzdHIgIoqEjZ6C3TogIgpAQCAtMzc3Niw2ICszODI4LDcgQEAKIG1zZ2lkICJWaW06IEZpbmlzaGVkLlxuIgogbXNnc3RyICJWaW06II9Jl7mCtYLcgrWCvS5cbiIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJFUlJPUjogIgogbXNnc3RyICKDR4OJgVs6ICIKIApAQCAtMzgzOSw4ICszODkyLDggQEAKICJFMzQzOiBJbnZhbGlkIHBhdGg6ICcqKltudW1iZXJdJyBtdXN0IGJlIGF0IHRoZSBlbmQgb2YgdGhlIHBhdGggb3IgYmUgIgogImZvbGxvd2VkIGJ5ICclcycuIgogbXNnc3RyICIiCi0iRTM0MzoglrOM+ILIg3CDWILFgrc6ICcqKluQlJJsXScggs1wYXRogsyNxYzjgqkgJyVzJyAiCi0igqqRsYKigsSCyIKigsaCooKvgtyCuYLxLiIKKyJFMzQzOiCWs4z4gsiDcINYgsWCtzogJyoqW5CUkmxdJyCCzXBhdGiCzI3FjOOCqSAnJXMnIIKqkbGCooLEgsiCooLGgqKCr4LcgrkiCisigvEuIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzNDQ6IENhbid0IGZpbmQgZGlyZWN0b3J5IFwiJXNcIiBpbiBjZHBhdGgiCkBAIC0zOTg0LDYgKzQwMzcsNyBAQAogbXNnaWQgIklsbGVnYWwgcmVnaXN0ZXIgbmFtZSIKIG1zZ3N0ciAilXOQs4LIg4yDV4NYg16WvCIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCiAiIyBSZWdpc3RlcnM6XG4iCkBAIC00MTQwLDYgKzQxOTQsMTMgQEAKIG1zZ2lkICJFMzU1OiBVbmtub3duIG9wdGlvbjogJXMiCiBtc2dzdHIgIkUzNTU6IJaikm2CzINJg3aDVoOHg5OCxYK3OiAlcyIKIAorIy4gVGhlcmUncyBhbm90aGVyIGNoYXJhY3RlciBhZnRlciB6ZXJvcyBvciB0aGUgc3RyaW5nCisjLiAqIGlzIGVtcHR5LiAgSW4gYm90aCBjYXNlcywgd2UgYXJlIHRyeWluZyB0byBzZXQgYQorIy4gKiBudW0gb3B0aW9uIHVzaW5nIGEgc3RyaW5nLgorIywgYy1mb3JtYXQKK21zZ2lkICJFNTIxOiBOdW1iZXIgcmVxdWlyZWQ6ICYlcyA9ICclcyciCittc2dzdHIgIkU1MjE6IJCUjpqCqpVLl3aCxYK3OiAmJXMgPSAnJXMnIgorCiBtc2dpZCAiIgogIlxuIgogIi0tLSBUZXJtaW5hbCBjb2RlcyAtLS0iCkBAIC00MjcwLDYgKzQzMzEsNyBAQAogbXNnaWQgIlZpbTogQ2F1Z2h0IGRlYWRseSBzaWduYWwgJXNcbiIKIG1zZ3N0ciAiVmltOiCSdpa9k0mDVoNPg2mDiyAlcyCC8Iyfkm2CtYLcgrWCvVxuIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIlZpbTogQ2F1Z2h0IGRlYWRseSBzaWduYWxcbiIKIG1zZ3N0ciAiVmltOiCSdpa9k0mDVoNPg2mDi4LwjJ+SbYK1gtyCtYK9XG4iCiAKQEAgLTQyOTIsNiArNDM1NCwyMCBAQAogCiBtc2dpZCAiIgogIlxuIgorIkNvdWxkIG5vdCBnZXQgc2VjdXJpdHkgY29udGV4dCBmb3IgIgorbXNnc3RyICIiCisiXG4iCisig1qDTIOFg4qDZYNCg1KDk4Nlg0yDWINngvCO5pO+gsWCq4LcgrmC8SAiCisKK21zZ2lkICIiCisiXG4iCisiQ291bGQgbm90IHNldCBzZWN1cml0eSBjb250ZXh0IGZvciAiCittc2dzdHIgIiIKKyJcbiIKKyKDWoNMg4WDioNlg0KDUoOTg2WDTINYg2eC8JDdkuiCxYKrgtyCuYLxICIKKworbXNnaWQgIiIKKyJcbiIKICJDYW5ub3QgZXhlY3V0ZSBzaGVsbCAiCiBtc2dzdHIgIiIKICJcbiIKQEAgLTQzOTksMjEgKzQ0NzUsMjYgQEAKIG1zZ2lkICJWaW0gV2FybmluZyIKIG1zZ3N0ciAiVmltgsyMeI2QIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzI6IFRvbyBtYW55ICUlJWMgaW4gZm9ybWF0IHN0cmluZyIKIG1zZ3N0ciAiRTM3Mjogg3SDSIFbg32DYoNnlbaOmpfxgskgJSUlYyCCqpG9id+CrILcgrciCiAKKyMsIGMtZm9ybWF0CiBtc2dpZCAiRTM3MzogVW5leHBlY3RlZCAlJSVjIGluIGZvcm1hdCBzdHJpbmciCiBtc2dzdHIgIkUzNzM6IIN0g0iBW4N9g2KDZ5W2jpqX8YLJl1xcivqCuYLKICUlJWMggqqCoILogtyCtYK9IgogCiBtc2dpZCAiRTM3NDogTWlzc2luZyBdIGluIGZvcm1hdCBzdHJpbmciCiBtc2dzdHIgIkUzNzQ6IIN0g0iBW4N9g2KDZ5W2jpqX8YLJIF0ggqqCoILogtyCuYLxIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzU6IFVuc3VwcG9ydGVkICUlJWMgaW4gZm9ybWF0IHN0cmluZyIKIG1zZ3N0ciAiRTM3NTogg3SDSIFbg32DYoNnlbaOmpfxgsWCzSAlJSVjIILNg1SDfIFbg2eCs4LqgtyCuYLxIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzY6IEludmFsaWQgJSUlYyBpbiBmb3JtYXQgc3RyaW5nIHByZWZpeCIKIG1zZ3N0ciAiRTM3Njogg3SDSIFbg32DYoNnlbaOmpfxgsyRT5J1gsmWs4z4gsggJSUlYyCCqoKgguiC3IK3IgogCisjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzc6IEludmFsaWQgJSUlYyBpbiBmb3JtYXQgc3RyaW5nIgogbXNnc3RyICJFMzc3OiCDdINIgVuDfYNig2eVto6al/GCyZazjPiCyCAlJSVjIIKqgqCC6ILcgrciCiAKQEAgLTQ0NTksNiArNDU0MCwxMCBAQAogbXNnaWQgIkU3Nzc6IFN0cmluZyBvciBMaXN0IGV4cGVjdGVkIgogbXNnc3RyICJFNzc3OiCVto6al/GCqYOKg1iDZ4KqlUuXdoLFgrciCiAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTM2OTogaW52YWxpZCBpdGVtIGluICVzJSVbXSIKK21zZ3N0ciAiRTM2OToglrOM+ILIjYCW2oLFgrc6ICVzJSVbXSIKKwogbXNnaWQgIkUzMzk6IFBhdHRlcm4gdG9vIGxvbmciCiBtc2dzdHIgIkUzMzk6IINwg16BW4OTgqqSt4nfgqyC3IK3IgogCkBAIC00NDcyLDYgKzQ1NTcsNyBAQAogbXNnaWQgIkU1MjogVW5tYXRjaGVkIFxceigiCiBtc2dzdHIgIkU1MjogXFx6KCCCqpLeguiNh4LBgsSCooLcgrmC8SIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJFNTM6IFVubWF0Y2hlZCAlcyUlKCIKIG1zZ3N0ciAiRTUzOiAlcyUlKCCCqpLeguiNh4LBgsSCooLcgrmC8SIKIApAQCAtNDUyNCwxNyArNDYxMCwyMSBAQAogbXNnc3RyICJFNjg6IFxceiCCzIzjgsmVc5CzgsiVto6agqqCoILogtyCtYK9IgogCiAjCisjLCBjLWZvcm1hdAogbXNnaWQgIkU2OTogTWlzc2luZyBdIGFmdGVyICVzJSVbIgogbXNnc3RyICJFNjk6ICVzJSVbIILMjOOCySBdIIKqgqCC6ILcgrmC8SIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJFNzA6IEVtcHR5ICVzJSVbXSIKIG1zZ3N0ciAiRTcwOiAlcyUlW10ggqqL84LFgrciCiAKICMKKyMsIGMtZm9ybWF0CiBtc2dpZCAiRTY3ODogSW52YWxpZCBjaGFyYWN0ZXIgYWZ0ZXIgJXMlJVtkeG91VV0iCiBtc2dzdHIgIkU2Nzg6ICVzJSVbZHhvdVVdIILMjOOCyZVzkLOCyJW2jpqCqoKgguiC3IK1gr0iCiAKICMKKyMsIGMtZm9ybWF0CiBtc2dpZCAiRTcxOiBJbnZhbGlkIGNoYXJhY3RlciBhZnRlciAlcyUlIgogbXNnc3RyICJFNzE6ICVzJSUggsyM44LJlXOQs4LIlbaOmoKqgqCC6ILcgrWCvSIKIApAQCAtNDc1MiwxNiArNDg0MiwxNiBAQAogIkRlZmluaW5nIENPTVBPVU5ERk9SQklERkxBRyBhZnRlciBQRlggaXRlbSBtYXkgZ2l2ZSB3cm9uZyByZXN1bHRzIGluICVzIGxpbmUgIgogIiVkIgogbXNnc3RyICIiCi0iJXMggswgJWQgjXOW2oLMIFBGWCCNgJbagsyM44LMIENPTVBPVU5ERk9SQklERkxBRyAiCi0igsyS6Itggs2M64LBgr2Mi4nKgvCQtoK2gumCsYLGgqqCoILogtyCtyIKKyIlcyCCzCAlZCCNc5bagswgUEZYII2AltqCzIzjgswgQ09NUE9VTkRGT1JCSURGTEFHIILMkuiLYILNjOuCwYK9jIuJyoLwkLaCtoLpIgorIoKxgsaCqoKgguiC3IK3IgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJEZWZpbmluZyBDT01QT1VORFBFUk1JVEZMQUcgYWZ0ZXIgUEZYIGl0ZW0gbWF5IGdpdmUgd3JvbmcgcmVzdWx0cyBpbiAlcyBsaW5lICIKICIlZCIKIG1zZ3N0ciAiIgotIiVzIILMICVkII1zltqCzCBQRlggjYCW2oLMjOOCzCBDT01QT1VORFBFUk1JVEZMQUcgIgotIoLMkuiLYILNjOuCwYK9jIuJyoLwkLaCtoLpgrGCxoKqgqCC6ILcgrciCisiJXMggswgJWQgjXOW2oLMIFBGWCCNgJbagsyM44LMIENPTVBPVU5EUEVSTUlURkxBRyCCzJLoi2CCzYzrgsGCvYyLicqC8JC2graC6SIKKyKCsYLGgqqCoILogtyCtyIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJXcm9uZyBDT01QT1VORFdPUkRNQVggdmFsdWUgaW4gJXMgbGluZSAlZDogJXMiCkBAIC00OTIwLDYgKzUwMTAsNyBAQAogbXNnaWQgIklnbm9yZWQgJWQgd29yZHMgd2l0aCBub24tQVNDSUkgY2hhcmFjdGVycyIKIG1zZ3N0ciAilPFBU0NJSZW2jpqC8Ircgt4gJWQgjMKCzJJQjOqC8JazjouCtYLcgrWCvSIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJDb21wcmVzc2VkICVkIG9mICVkIG5vZGVzOyAlZCAoJWQlJSkgcmVtYWluaW5nIgogbXNnc3RyICKDbYFbg2ggJWQgjMIokVMgJWQgjMKShikggvCIs49rgrWC3IK1gr07II5jguggJWQgKCVkJSUpIgogCkBAIC00OTkxLDYgKzUwODIsNyBAQAogbXNnaWQgIlNvcnJ5LCBvbmx5ICVsZCBzdWdnZXN0aW9ucyIKIG1zZ3N0ciAijmOUT4LFgreCqiwgj0OQs4zzleKCzSAlbGQgjMKCtYKpgqCC6ILcgrmC8SIKIAorIy4gZm9yIHdoZW4gJ2NtZGhlaWdodCcgPiAxCiAjLiBhdm9pZCBtb3JlIHByb21wdAogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGFuZ2UgXCIlLipzXCIgdG86IgpAQCAtNTM5Niw2ICs1NDg4LDkgQEAKIG1zZ2lkICIlbGQgc2Vjb25kcyBhZ28iCiBtc2dzdHIgIiVsZCCVYoxvid+CtYLEgqKC3IK3IgogCittc2dpZCAiRTc5MDogdW5kb2pvaW4gaXMgbm90IGFsbG93ZWQgYWZ0ZXIgdW5kbyIKK21zZ3N0ciAiRTc5MDogdW5kbyCCzJK8jOOCySB1bmRvam9pbiCCzYLFgquC3IK5gvEiCisKIG1zZ2lkICJFNDM5OiB1bmRvIGxpc3QgY29ycnVwdCIKIG1zZ3N0ciAiRTQzOTogg0GDk4Nog0SDioNYg2eCqonzguqCxIKigtyCtyIKIApAQCAtNTQxMiw2ICs1NTA3LDEzIEBACiAKIG1zZ2lkICIiCiAiXG4iCisiTVMtV2luZG93cyA2NCBiaXQgR1VJIHZlcnNpb24iCittc2dzdHIgIiIKKyJcbiIKKyJNUy1XaW5kb3dzIDY0IINyg2KDZyBHVUkglMUiCisKK21zZ2lkICIiCisiXG4iCiAiTVMtV2luZG93cyAzMiBiaXQgR1VJIHZlcnNpb24iCiBtc2dzdHIgIiIKICJcbiIKQEAgLTU3MjcsNiArNTgyOSwxOSBAQAogbXNnaWQgIkU0NDc6IENhbid0IGZpbmQgZmlsZSBcIiVzXCIgaW4gcGF0aCIKIG1zZ3N0ciAiRTQ0NzogcGF0aILJgs0gXCIlc1wiIILGgqKCpIN0g0CDQ4OLgqqCoILogtyCuYLxIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIkUzNzA6IENvdWxkIG5vdCBsb2FkIGxpYnJhcnkgJXMiCittc2dzdHIgIkUzNzA6IIOJg0ODdYOJg4ogJXMggvCDjYFbg2iCxYKrgtyCuYLxgsWCtYK9IgorCittc2dpZCAiU29ycnksIHRoaXMgY29tbWFuZCBpcyBkaXNhYmxlZDogdGhlIFBlcmwgbGlicmFyeSBjb3VsZCBub3QgYmUgbG9hZGVkLiIKK21zZ3N0ciAiIgorIoKxgsyDUoN9g5ODaILNlrOM+ILFgrcsIIKygt+C8YLIgrOCojogUGVybIOJg0ODdYOJg4qC8IONgVuDaILFgquC3IK5gvGCxYK1gr0uIgorCittc2dpZCAiRTI5OTogUGVybCBldmFsdWF0aW9uIGZvcmJpZGRlbiBpbiBzYW5kYm94IHdpdGhvdXQgdGhlIFNhZmUgbW9kdWxlIgorbXNnc3RyICIiCisiRTI5OTogg1SDk4Nog3uDYoNOg1iCxYLNIFNhZmUgg4KDV4OFgVuDi4LwjmeXcIK1gsiColBlcmyDWINOg4qDdoNngs2L1oK2gueC6iIKKyKCxIKigtyCtyIKKwogbXNnaWQgIkVkaXQgd2l0aCAmbXVsdGlwbGUgVmltcyIKIG1zZ3N0ciAilaGQlILMVmltgsWV0o9XgreC6SAoJk0pIgogCkBAIC01NzM5LDYgKzU4NTQsNyBAQAogbXNnaWQgIkVkaXQgd2l0aCAmVmltIgogbXNnc3RyICJWaW2CxZXSj1eCt4LpICgmVikiCiAKKyMuIE5vdyBjb25jYXRlbmF0ZQogbXNnaWQgIkVkaXQgd2l0aCBleGlzdGluZyBWaW0gLSAiCiBtc2dzdHIgIor5kbaCzFZpbYLFldKPV4K3gukgLSAiCiAKQEAgLTU5OTQsOCArNjExMCw4IEBACiBtc2dzdHIgIkU0Njogk8eO5pDql3CVz5CUIFwiJXNcIiCCyYLNkmyC8JDdkuiCxYKrgtyCuYLxIgogCiAjLCBjLWZvcm1hdAotbXNnaWQgIkU0NjogQ2Fubm90IHNldCB2YXJpYWJsZSBpbiB0aGUgc2FuZGJveDogXCIlc1wiIgotbXNnc3RyICJFNDY6IINUg5ODaIN7g2KDToNYgsWCzZXPkJQgXCIlc1wiIILJkmyC8JDdkuiCxYKrgtyCuYLxIgorbXNnaWQgIkU3OTQ6IENhbm5vdCBzZXQgdmFyaWFibGUgaW4gdGhlIHNhbmRib3g6IFwiJXNcIiIKK21zZ3N0ciAiRTc5NDogg1SDk4Nog3uDYoNOg1iCxYLNlc+QlCBcIiVzXCIggsmSbILwkN2S6ILFgquC3IK5gvEiCiAKIG1zZ2lkICJFNDc6IEVycm9yIHdoaWxlIHJlYWRpbmcgZXJyb3JmaWxlIgogbXNnc3RyICJFNDc6IINHg4mBW4N0g0CDQ4OLgsyTx42ekoaCyYNHg4mBW4KqlK2QtoK1gtyCtYK9IgpAQCAtNjA3OSw3ICs2MTk1LDYgQEAKIG1zZ2lkICJFNzQ5OiBlbXB0eSBidWZmZXIiCiBtc2dzdHIgIkU3NDk6IINvg2KDdINAgqqL84LFgrciCiAKLSMKIG1zZ2lkICJFNjgyOiBJbnZhbGlkIHNlYXJjaCBwYXR0ZXJuIG9yIGRlbGltaXRlciIKIG1zZ3N0ciAiRTY4MjogjJ+N9YNwg16BW4OTgqmL5pDYguiLTI2GgqqVc5CzgsWCtyIKIApkaWZmIC0tZ2l0IGEvc3JjL3BvL25vLnBvIGIvc3JjL3BvL25vLnBvCmluZGV4IDk4NTNlYjUuLmQwMWRjOTMgMTAwNjQ0Ci0tLSBhL3NyYy9wby9uby5wbworKysgYi9zcmMvcG8vbm8ucG8KQEAgLTEyNDksNyArMTI0OSw3IEBACiBtc2dpZCAiQXBwZW5kIEZpbGUiCiBtc2dzdHIgIkxlZ2cgdGlsIGZpbCIKIAotbXNnaWQgIkU3NDc6IENhbm5vdCBjaGFuZ2UgZGlyZWN0b3J5LCBidWZmZXIgaXMgbW9kaWZlZCAoYWRkICEgdG8gb3ZlcnJpZGUpIgorbXNnaWQgIkU3NDc6IENhbm5vdCBjaGFuZ2UgZGlyZWN0b3J5LCBidWZmZXIgaXMgbW9kaWZpZWQgKGFkZCAhIHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiIgogIkU3NDc6IEthbiBpa2tlIHNraWZ0ZSBrYXRhbG9nLCBidWZmZXJlbiBlciBmb3JhbmRyZXQgKGxlZ2cgdGlsICEgZm9yIOUgIgogIm92ZXJzdHlyZSkiCkBAIC0xNDkyLDggKzE0OTIsOCBAQAogbXNnaWQgImlzIG5vdCBhIGZpbGUiCiBtc2dzdHIgImVyIGlra2UgZW4gZmlsIgogCi1tc2dpZCAiaXMgYSBkZXZpY2UgKGRpc2FibGVkIHdpdGggJ29wZW5kZXZpY2UnIG9wdGlvbiIKLW1zZ3N0ciAiZXIgZW4gZW5oZXQgKGZyYWtvYmxldCBtZWQgJ29wZW5kZXZpY2UnLXZhbGciCittc2dpZCAiaXMgYSBkZXZpY2UgKGRpc2FibGVkIHdpdGggJ29wZW5kZXZpY2UnIG9wdGlvbikiCittc2dzdHIgImVyIGVuIGVuaGV0IChmcmFrb2JsZXQgbWVkICdvcGVuZGV2aWNlJy12YWxnKSIKIAogbXNnaWQgIltOZXcgRmlsZV0iCiBtc2dzdHIgIltOeSBmaWxdIgpAQCAtNDc0Miw3ICs0NzQyLDcgQEAKIG1zZ3N0ciAiRTc1OTogRm9ybWF0ZXJpbmdzZmVpbCBpIHN0YXZlZmlsIgogCiBtc2dpZCAiRTc1ODogVHJ1bmNhdGVkIHNwZWxsIGZpbGUiCi1tc2dzdHIgIkUyMzc6IFZhbGcgYXYgc2tyaXZlciBmZWlsZXQiCittc2dzdHIgIkU3NTg6IFZhbGcgYXYgc2tyaXZlciBmZWlsZXQiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJhaWxpbmcgdGV4dCBpbiAlcyBsaW5lICVkOiAlcyIKQEAgLTUwMzQsNyArNTAzNCw3IEBACiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTc2NTogJ3NwZWxsZmlsZScgZG9lcyBub3QgaGF2ZSAlbGQgZW50cmllcyIKLW1zZ3N0ciAiRTc2NDogJ3NwZWxsZmlsZScgaGFyIGlra2UgJWxkIHBvc3RlciIKK21zZ3N0ciAiRTc2NTogJ3NwZWxsZmlsZScgaGFyIGlra2UgJWxkIHBvc3RlciIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJXb3JkIHJlbW92ZWQgZnJvbSAlcyIKQEAgLTYxNjgsNyArNjE2OCw3IEBACiBtc2dzdHIgIkU3NDk6IFRvbSBidWZmZXIiCiAKIG1zZ2lkICJFNjgyOiBJbnZhbGlkIHNlYXJjaCBwYXR0ZXJuIG9yIGRlbGltaXRlciIKLW1zZ3N0ciAiRTY4MzogVWd5bGRpZyBz+Gtlc3RyZW5nIGVsbGVyIHNraWxsZXRlZ24iCittc2dzdHIgIkU2ODI6IFVneWxkaWcgc/hrZXN0cmVuZyBlbGxlciBza2lsbGV0ZWduIgogCiBtc2dpZCAiRTEzOTogRmlsZSBpcyBsb2FkZWQgaW4gYW5vdGhlciBidWZmZXIiCiBtc2dzdHIgIkUxMzk6IEZpbGVuIGVyIGxhc3RldCBpIGVuIGFubmVuIGJ1ZmZlciIKZGlmZiAtLWdpdCBhL3NyYy9wby96aF9DTi5jcDkzNi5wbyBiL3NyYy9wby96aF9DTi5jcDkzNi5wbwppbmRleCA1OTE4MzlmLi45NmIyNTI3IDEwMDY0NAotLS0gYS9zcmMvcG8vemhfQ04uY3A5MzYucG8KKysrIGIvc3JjL3BvL3poX0NOLmNwOTM2LnBvCkBAIC0xMjA3LDcgKzEyMDcsNyBAQAogbXNnaWQgIkFwcGVuZCBGaWxlIgogbXNnc3RyICLXt7zTzsS8/iIKIAotbXNnaWQgIkU3NDc6IENhbm5vdCBjaGFuZ2UgZGlyZWN0b3J5LCBidWZmZXIgaXMgbW9kaWZlZCAoYWRkICEgdG8gb3ZlcnJpZGUpIgorbXNnaWQgIkU3NDc6IENhbm5vdCBjaGFuZ2UgZGlyZWN0b3J5LCBidWZmZXIgaXMgbW9kaWZpZWQgKGFkZCAhIHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiRTc0NzogsrvE3LjEseTEv8K8o6y7urPlx/jS0dDeuMQgKMfrvNMgISDHv9bG1rTQ0CkiCiAKIG1zZ2lkICJFMTg2OiBObyBwcmV2aW91cyBkaXJlY3RvcnkiCmRpZmYgLS1naXQgYS9zcmMvcG9wdXBtbnUuYyBiL3NyYy9wb3B1cG1udS5jCmluZGV4IDFkNzQ3YTYuLmZjYzdkODUgMTAwNjQ0Ci0tLSBhL3NyYy9wb3B1cG1udS5jCisrKyBiL3NyYy9wb3B1cG1udS5jCkBAIC01Niw3ICs1Niw3IEBACiAgICAgaW50CQlpOwogICAgIGludAkJdG9wX2NsZWFyOwogICAgIGludAkJcm93OwotICAgIGludAkJaGVpZ2h0OworICAgIGludAkJY29udGV4dF9saW5lczsKICAgICBpbnQJCWNvbDsKICAgICBpbnQJCWFib3ZlX3JvdyA9IGNtZGxpbmVfcm93OwogICAgIGludAkJcmVkb19jb3VudCA9IDA7CkBAIC03Myw4ICs3Myw3IEBACiAgICAgdmFsaWRhdGVfY3Vyc29yX2NvbCgpOwogICAgIHB1bV9hcnJheSA9IE5VTEw7CiAKLSAgICByb3cgPSBjdXJ3aW4tPndfY2xpbmVfcm93ICsgV19XSU5ST1coY3Vyd2luKTsKLSAgICBoZWlnaHQgPSBjdXJ3aW4tPndfY2xpbmVfaGVpZ2h0OworICAgIHJvdyA9IGN1cndpbi0+d193cm93ICsgV19XSU5ST1coY3Vyd2luKTsKIAogICAgIGlmIChmaXJzdHdpbi0+d19wX3B2dykKIAl0b3BfY2xlYXIgPSBmaXJzdHdpbi0+d19oZWlnaHQ7CkBAIC05OSwxOSArOTgsMjYgQEAKIAogICAgIC8qIFB1dCB0aGUgcHVtIGJlbG93ICJyb3ciIGlmIHBvc3NpYmxlLiAgSWYgdGhlcmUgYXJlIGZldyBsaW5lcyBkZWNpZGUgb24KICAgICAgKiB3aGVyZSB0aGVyZSBpcyBtb3JlIHJvb20uICovCi0gICAgaWYgKHJvdyA+PSBhYm92ZV9yb3cgLSBwdW1faGVpZ2h0Ci0JCQkgICAgICAmJiByb3cgPiAoYWJvdmVfcm93IC0gdG9wX2NsZWFyIC0gaGVpZ2h0KSAvIDIpCisgICAgaWYgKHJvdyAgKyAyID49IGFib3ZlX3JvdyAtIHB1bV9oZWlnaHQKKwkJCQkJICYmIHJvdyA+IChhYm92ZV9yb3cgLSB0b3BfY2xlYXIpIC8gMikKICAgICB7CiAJLyogcHVtIGFib3ZlICJyb3ciICovCi0JaWYgKHJvdyA+PSBzaXplKQorCisJLyogTGVhdmUgdHdvIGxpbmVzIG9mIGNvbnRleHQgaWYgcG9zc2libGUgKi8KKwlpZiAoY3Vyd2luLT53X3dyb3cgLSBjdXJ3aW4tPndfY2xpbmVfcm93ID49IDIpCisJICAgIGNvbnRleHRfbGluZXMgPSAyOworCWVsc2UKKwkgICAgY29udGV4dF9saW5lcyA9IGN1cndpbi0+d193cm93IC0gY3Vyd2luLT53X2NsaW5lX3JvdzsKKworCWlmIChyb3cgPj0gc2l6ZSArIGNvbnRleHRfbGluZXMpCiAJewotCSAgICBwdW1fcm93ID0gcm93IC0gc2l6ZTsKKwkgICAgcHVtX3JvdyA9IHJvdyAtIHNpemUgLSBjb250ZXh0X2xpbmVzOwogCSAgICBwdW1faGVpZ2h0ID0gc2l6ZTsKIAl9CiAJZWxzZQogCXsKIAkgICAgcHVtX3JvdyA9IDA7Ci0JICAgIHB1bV9oZWlnaHQgPSByb3c7CisJICAgIHB1bV9oZWlnaHQgPSByb3cgLSBjb250ZXh0X2xpbmVzOwogCX0KIAlpZiAocF9waCA+IDAgJiYgcHVtX2hlaWdodCA+IHBfcGgpCiAJewpAQCAtMTIyLDcgKzEyOCwxNSBAQAogICAgIGVsc2UKICAgICB7CiAJLyogcHVtIGJlbG93ICJyb3ciICovCi0JcHVtX3JvdyA9IHJvdyArIGhlaWdodDsKKworCS8qIExlYXZlIHR3byBsaW5lcyBvZiBjb250ZXh0IGlmIHBvc3NpYmxlICovCisJaWYgKGN1cndpbi0+d19jbGluZV9yb3cgKyBjdXJ3aW4tPndfY2xpbmVfaGVpZ2h0IC0gY3Vyd2luLT53X3dyb3cgPj0gMykKKwkgICAgY29udGV4dF9saW5lcyA9IDM7CisJZWxzZQorCSAgICBjb250ZXh0X2xpbmVzID0gY3Vyd2luLT53X2NsaW5lX3JvdworCQkJCSsgY3Vyd2luLT53X2NsaW5lX2hlaWdodCAtIGN1cndpbi0+d193cm93OworCisJcHVtX3JvdyA9IHJvdyArIGNvbnRleHRfbGluZXM7CiAJaWYgKHNpemUgPiBhYm92ZV9yb3cgLSBwdW1fcm93KQogCSAgICBwdW1faGVpZ2h0ID0gYWJvdmVfcm93IC0gcHVtX3JvdzsKIAllbHNlCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vb3NfdW5peC5wcm8gYi9zcmMvcHJvdG8vb3NfdW5peC5wcm8KaW5kZXggNzM1NTY1YS4uMzYxOTNiYiAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL29zX3VuaXgucHJvCisrKyBiL3NyYy9wcm90by9vc191bml4LnBybwpAQCAtMTksNiArMTksNyBAQAogdm9pZCBtY2hfc2V0dGl0bGUgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmljb24pKTsKIHZvaWQgbWNoX3Jlc3RvcmVfdGl0bGUgX19BUkdTKChpbnQgd2hpY2gpKTsKIGludCB2aW1faXNfeHRlcm0gX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKK2ludCB1c2VfeHRlcm1fbGlrZV9tb3VzZSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwogaW50IHVzZV94dGVybV9tb3VzZSBfX0FSR1MoKHZvaWQpKTsKIGludCB2aW1faXNfaXJpcyBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwogaW50IHZpbV9pc192dDMwMCBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL3N0cnVjdHMuaCBiL3NyYy9zdHJ1Y3RzLmgKaW5kZXggZDZhOGY3Mi4uMzFjM2RmYyAxMDA2NDQKLS0tIGEvc3JjL3N0cnVjdHMuaAorKysgYi9zcmMvc3RydWN0cy5oCkBAIC0xMDA1LDYgKzEwMDUsNyBAQAogI2Vsc2UKIHR5cGVkZWYgaW50CXZhcm51bWJlcl9UOwogI2VuZGlmCit0eXBlZGVmIGRvdWJsZQlmbG9hdF9UOwogCiB0eXBlZGVmIHN0cnVjdCBsaXN0dmFyX1MgbGlzdF9UOwogdHlwZWRlZiBzdHJ1Y3QgZGljdHZhcl9TIGRpY3RfVDsKQEAgLTEwMTksNiArMTAyMCw5IEBACiAgICAgdW5pb24KICAgICB7CiAJdmFybnVtYmVyX1QJdl9udW1iZXI7CS8qIG51bWJlciB2YWx1ZSAqLworI2lmZGVmIEZFQVRfRkxPQVQKKwlmbG9hdF9UCQl2X2Zsb2F0OwkvKiBmbG9hdGluZyBudW1iZXIgdmFsdWUgKi8KKyNlbmRpZgogCWNoYXJfdQkJKnZfc3RyaW5nOwkvKiBzdHJpbmcgdmFsdWUgKGNhbiBiZSBOVUxMISkgKi8KIAlsaXN0X1QJCSp2X2xpc3Q7CS8qIGxpc3QgdmFsdWUgKGNhbiBiZSBOVUxMISkgKi8KIAlkaWN0X1QJCSp2X2RpY3Q7CS8qIGRpY3QgdmFsdWUgKGNhbiBiZSBOVUxMISkgKi8KQEAgLTEwMzIsNiArMTAzNiw3IEBACiAjZGVmaW5lIFZBUl9GVU5DICAgIDMJLyogInZfc3RyaW5nIiBpcyBmdW5jdGlvbiBuYW1lICovCiAjZGVmaW5lIFZBUl9MSVNUICAgIDQJLyogInZfbGlzdCIgaXMgdXNlZCAqLwogI2RlZmluZSBWQVJfRElDVCAgICA1CS8qICJ2X2RpY3QiIGlzIHVzZWQgKi8KKyNkZWZpbmUgVkFSX0ZMT0FUICAgNgkvKiAidl9mbG9hdCIgaXMgdXNlZCAqLwogCiAvKiBWYWx1ZXMgZm9yICJ2X2xvY2siLiAqLwogI2RlZmluZSBWQVJfTE9DS0VEICAxCS8qIGxvY2tlZCB3aXRoIGxvY2soKSwgY2FuIHVzZSB1bmxvY2soKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL3ZpbS5yYyBiL3NyYy92aW0ucmMKaW5kZXggYWZmZGI5YS4uZTllY2Q2NCAxMDA2NDQKLS0tIGEvc3JjL3ZpbS5yYworKysgYi9zcmMvdmltLnJjCkBAIC01Miw3ICs1Miw3IEBACiAvLyBUeXBlIExpYnJhcnkKIC8vCiAjaWZkZWYgRkVBVF9PTEUKLSAxIFRZUEVMSUIgIlZJTS5UTEIiCisgMSBUWVBFTElCICJ2aW0udGxiIgogI2VuZGlmCiAKIC8vCkBAIC05MSw3ICs5MSw3IEBACiAJVkFMVUUgIkZpbGVEZXNjcmlwdGlvbiIsCSJWaSBJbXByb3ZlZCAtIEEgVGV4dCBFZGl0b3JcMCIKIAlWQUxVRSAiRmlsZVZlcnNpb24iLAkJVklNX1ZFUlNJT05fTUFKT1JfU1RSICIsICIgVklNX1ZFUlNJT05fTUlOT1JfU1RSICIsICIgVklNX1ZFUlNJT05fQlVJTERfU1RSICIsICIgVklNX1ZFUlNJT05fUEFUQ0hMRVZFTF9TVFIgICJcMCIKIAlWQUxVRSAiSW50ZXJuYWxOYW1lIiwJCSJWSU1cMCIKLQlWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLAkJIkNvcHlyaWdodCBcMjUxIDE5OTYtMjAwNVwwIgorCVZBTFVFICJMZWdhbENvcHlyaWdodCIsCQkiQ29weXJpZ2h0IFwyNTEgMTk5Ni0yMDA4XDAiCiAJVkFMVUUgIkxlZ2FsVHJhZGVtYXJrcyIsCSJWaW1cMCIKIAlWQUxVRSAiT3JpZ2luYWxGaWxlbmFtZSIsCSJWSU0uRVhFXDAiCiAJVkFMVUUgIlByb2R1Y3ROYW1lIiwJCSJWaW1cMCIK