ZGlmZiAtLWdpdCBhL2FjbG9jYWwubTQgYi9hY2xvY2FsLm00CmluZGV4IGFkZTRmYWYuLjlhNTVmYjQgMTAwNjQ0Ci0tLSBhL2FjbG9jYWwubTQKKysrIGIvYWNsb2NhbC5tNApAQCAtMTAsNiArMTAsODIgQEAKIGRubCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCiBkbmwgUEFSVElDVUxBUiBQVVJQT1NFLgogCisjc2VyaWFsIDEyCisKK2RubCBCeSBkZWZhdWx0LCBtYW55IGhvc3RzIHdvbid0IGxldCBwcm9ncmFtcyBhY2Nlc3MgbGFyZ2UgZmlsZXM7Citkbmwgb25lIG11c3QgdXNlIHNwZWNpYWwgY29tcGlsZXIgb3B0aW9ucyB0byBnZXQgbGFyZ2UtZmlsZSBhY2Nlc3MgdG8gd29yay4KK2RubCBGb3IgbW9yZSBkZXRhaWxzIGFib3V0IHRoaXMgYnJhaW4gZGFtYWdlIHBsZWFzZSBzZWU6CitkbmwgaHR0cDovL3d3dy5zYXMuY29tL3N0YW5kYXJkcy9sYXJnZS5maWxlL3hfb3Blbi4yME1hcjk2Lmh0bWwKKworZG5sIFdyaXR0ZW4gYnkgUGF1bCBFZ2dlcnQgPGVnZ2VydEB0d2luc3VuLmNvbT4uCisKK2RubCBJbnRlcm5hbCBzdWJyb3V0aW5lIG9mIEFDX1NZU19MQVJHRUZJTEUuCitkbmwgQUNfU1lTX0xBUkdFRklMRV9URVNUX0lOQ0xVREVTCitBQ19ERUZVTihBQ19TWVNfTEFSR0VGSUxFX1RFU1RfSU5DTFVERVMsCisgIFtbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorICAgIGludCBhWyhvZmZfdCkgOTIyMzM3MjAzNjg1NDc3NTgwNyA9PSA5MjIzMzcyMDM2ODU0Nzc1ODA3ID8gMSA6IC0xXTsKKyAgXV0pCisKK2RubCBJbnRlcm5hbCBzdWJyb3V0aW5lIG9mIEFDX1NZU19MQVJHRUZJTEUuCitkbmwgQUNfU1lTX0xBUkdFRklMRV9NQUNST19WQUxVRShDLU1BQ1JPLCBWQUxVRSwgQ0FDSEUtVkFSLCBDT01NRU5ULCBJTkNMVURFUywgRlVOQ1RJT04tQk9EWSkKK0FDX0RFRlVOKEFDX1NZU19MQVJHRUZJTEVfTUFDUk9fVkFMVUUsCisgIFtBQ19DQUNIRV9DSEVDSyhbZm9yICQxIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXNdLCAkMywKKyAgICAgWyQzPW5vCisgICAgICBBQ19UUllfQ09NUElMRShBQ19TWVNfTEFSR0VGSUxFX1RFU1RfSU5DTFVERVMKKyQ1CisgICAgICAgICwKKwlbJDZdLCAKKwksCisJW0FDX1RSWV9DT01QSUxFKFsjZGVmaW5lICQxICQyXQorQUNfU1lTX0xBUkdFRklMRV9URVNUX0lOQ0xVREVTCiskNQorCSAgICwKKwkgICBbJDZdLAorCSAgIFskMz0kMl0pXSldKQorICAgaWYgdGVzdCAiWyRdJDMiICE9IG5vOyB0aGVuCisgICAgIEFDX0RFRklORV9VTlFVT1RFRChbJDFdLCBbJF0kMywgWyQ0XSkKKyAgIGZpXSkKKworQUNfREVGVU4oQUNfU1lTX0xBUkdFRklMRSwKKyAgW0FDX0FSR19FTkFCTEUobGFyZ2VmaWxlLAorICAgICBbICAtLWRpc2FibGUtbGFyZ2VmaWxlICAgICBvbWl0IHN1cHBvcnQgZm9yIGxhcmdlIGZpbGVzXSkKKyAgIGlmIHRlc3QgIiRlbmFibGVfbGFyZ2VmaWxlIiAhPSBubzsgdGhlbgorCisgICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3Igc3BlY2lhbCBDIGNvbXBpbGVyIG9wdGlvbnMgbmVlZGVkIGZvciBsYXJnZSBmaWxlc10sCisgICAgICAgYWNfY3Zfc3lzX2xhcmdlZmlsZV9DQywKKyAgICAgICBbYWNfY3Zfc3lzX2xhcmdlZmlsZV9DQz1ubworICAgICAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKwkgICMgSVJJWCA2LjIgYW5kIGxhdGVyIGRvIG5vdCBzdXBwb3J0IGxhcmdlIGZpbGVzIGJ5IGRlZmF1bHQsCisJICAjIHNvIHVzZSB0aGUgQyBjb21waWxlcidzIC1uMzIgb3B0aW9uIGlmIHRoYXQgaGVscHMuCisJICBBQ19UUllfQ09NUElMRShBQ19TWVNfTEFSR0VGSUxFX1RFU1RfSU5DTFVERVMsICwgLAorCSAgICBbYWNfc2F2ZV9DQz0iJENDIgorCSAgICAgQ0M9IiRDQyAtbjMyIgorCSAgICAgQUNfVFJZX0NPTVBJTEUoQUNfU1lTX0xBUkdFRklMRV9URVNUX0lOQ0xVREVTLCAsCisJICAgICAgIGFjX2N2X3N5c19sYXJnZWZpbGVfQ0M9JyAtbjMyJykKKwkgICAgIENDPSIkYWNfc2F2ZV9DQyJdKQorICAgICAgICBmaV0pCisgICAgIGlmIHRlc3QgIiRhY19jdl9zeXNfbGFyZ2VmaWxlX0NDIiAhPSBubzsgdGhlbgorICAgICAgIENDPSIkQ0MkYWNfY3Zfc3lzX2xhcmdlZmlsZV9DQyIKKyAgICAgZmkKKworICAgICBBQ19TWVNfTEFSR0VGSUxFX01BQ1JPX1ZBTFVFKF9GSUxFX09GRlNFVF9CSVRTLCA2NCwKKyAgICAgICBhY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cywKKyAgICAgICBbTnVtYmVyIG9mIGJpdHMgaW4gYSBmaWxlIG9mZnNldCwgb24gaG9zdHMgd2hlcmUgdGhpcyBpcyBzZXR0YWJsZS5dKQorICAgICBBQ19TWVNfTEFSR0VGSUxFX01BQ1JPX1ZBTFVFKF9MQVJHRUZJTEVfU09VUkNFLCAxLAorICAgICAgIGFjX2N2X3N5c19sYXJnZWZpbGVfc291cmNlLAorICAgICAgIFtEZWZpbmUgdG8gbWFrZSBmdGVsbG8gdmlzaWJsZSBvbiBzb21lIGhvc3RzIChlLmcuIEhQLVVYIDEwLjIwKS5dLAorICAgICAgIFsjaW5jbHVkZSA8c3RkaW8uaD5dLCBbcmV0dXJuICFmdGVsbG87XSkKKyAgICAgQUNfU1lTX0xBUkdFRklMRV9NQUNST19WQUxVRShfTEFSR0VfRklMRVMsIDEsCisgICAgICAgYWNfY3Zfc3lzX2xhcmdlX2ZpbGVzLAorICAgICAgIFtEZWZpbmUgZm9yIGxhcmdlIGZpbGVzLCBvbiBBSVgtc3R5bGUgaG9zdHMuXSkKK2RubAlsZnRwIGRvZXMgbm90IG5lZWQgZnRlbGxvLCBhbmQgX1hPUEVOX1NPVVJDRT01MDAgbWFrZXMgcmVzb2x2LmggZmFpbC4KK2RubCAgICAgQUNfU1lTX0xBUkdFRklMRV9NQUNST19WQUxVRShfWE9QRU5fU09VUkNFLCA1MDAsCitkbmwgICAgICAgYWNfY3Zfc3lzX3hvcGVuX3NvdXJjZSwKK2RubCAgICAgICBbRGVmaW5lIHRvIG1ha2UgZnRlbGxvIHZpc2libGUgb24gc29tZSBob3N0cyAoZS5nLiBnbGliYyAyLjEuMykuXSwKK2RubCAgICAgICBbI2luY2x1ZGUgPHN0ZGlvLmg+XSwgW3JldHVybiAhZnRlbGxvO10pCisgICBmaQorICBdKQorCiAjIExpa2UgQUNfQ09ORklHX0hFQURFUiwgYnV0IGF1dG9tYXRpY2FsbHkgY3JlYXRlIHN0YW1wIGZpbGUuCiAKIEFDX0RFRlVOKEFNX0NPTkZJR19IRUFERVIsCmRpZmYgLS1naXQgYS9jb25maWcuaC5pbiBiL2NvbmZpZy5oLmluCmluZGV4IDgyNDYzMGIuLjIzMThmOTcgMTAwNjQ0Ci0tLSBhL2NvbmZpZy5oLmluCisrKyBiL2NvbmZpZy5oLmluCkBAIC00Myw2ICs0MywxMiBAQAogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBnZXRob3N0YnluYW1lX3IoKSBmdW5jdGlvbiB3aXRoIDYgYXJndW1lbnRzICovCiAjdW5kZWYgSEFWRV9HRVRIT1NUQllOQU1FX1JfNgogCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGluZXRfbnRvYV9yIGZ1bmN0aW9uIGRlY2xhcmVkLiAqLworI3VuZGVmIEhBVkVfSU5FVF9OVE9BX1JfREVDTAorCisvKiBEZWZpbmUgaWYgeW91IG5lZWQgdGhlIF9SRUVOVFJBTlQgZGVmaW5lIGZvciBzb21lIGZ1bmN0aW9ucyAqLworI3VuZGVmIE5FRURfUkVFTlRSQU5UCisKIC8qIFRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gYSBsb25nIGRvdWJsZS4gICovCiAjdW5kZWYgU0laRU9GX0xPTkdfRE9VQkxFCiAKQEAgLTE2Myw2ICsxNjksOSBAQAogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8bmV0ZGIuaD4gaGVhZGVyIGZpbGUuICAqLwogI3VuZGVmIEhBVkVfTkVUREJfSAogCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lmX2V0aGVyLmg+IGhlYWRlciBmaWxlLiAgKi8KKyN1bmRlZiBIQVZFX05FVElORVRfSUZfRVRIRVJfSAorCiAvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luLmg+IGhlYWRlciBmaWxlLiAgKi8KICN1bmRlZiBIQVZFX05FVElORVRfSU5fSAogCkBAIC0yNjUsNiArMjc0LDE1IEBACiAvKiBWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlICovCiAjdW5kZWYgVkVSU0lPTgogCisvKiBOdW1iZXIgb2YgYml0cyBpbiBhIGZpbGUgb2Zmc2V0LCBvbiBob3N0cyB3aGVyZSB0aGlzIGlzIHNldHRhYmxlLiAqLworI3VuZGVmIF9GSUxFX09GRlNFVF9CSVRTCisKKy8qIERlZmluZSB0byBtYWtlIGZ0ZWxsbyB2aXNpYmxlIG9uIHNvbWUgaG9zdHMgKGUuZy4gSFAtVVggMTAuMjApLiAqLworI3VuZGVmIF9MQVJHRUZJTEVfU09VUkNFCisKKy8qIERlZmluZSBmb3IgbGFyZ2UgZmlsZXMsIG9uIEFJWC1zdHlsZSBob3N0cy4gKi8KKyN1bmRlZiBfTEFSR0VfRklMRVMKKwogLyogU2V0IHRvIGV4cGxpY2l0bHkgc3BlY2lmeSB3ZSBkb24ndCB3YW50IHRvIHVzZSB0aHJlYWQtc2FmZSBmdW5jdGlvbnMgKi8KICN1bmRlZiBESVNBQkxFRF9USFJFQURTQUZFCiAKZGlmZiAtLWdpdCBhL2RvY3MvUkVTT1VSQ0VTIGIvZG9jcy9SRVNPVVJDRVMKaW5kZXggYTQ2OTFhMS4uNTRjZGYzMiAxMDA2NDQKLS0tIGEvZG9jcy9SRVNPVVJDRVMKKysrIGIvZG9jcy9SRVNPVVJDRVMKQEAgLTY4LDcgKzY4LDcgQEAKIAogQ29tcGlsZXJzCiAtLS0tLS0tLS0KLSAgTWluZ1czMiAtIGh0dHA6Ly93d3cueHJheWxpdGgud2lzYy5lZHUvfmtoYW4vc29mdHdhcmUvZ251LXdpbjMyL2luZGV4Lmh0bWwKKyAgTWluZ1czMiAtIGh0dHA6Ly93d3cubWluZ3cub3JnCiAKICAgZ2NjICAgICAtIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9nY2MvZ2NjLmh0bWwKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jdXJsL2N1cmwuaCBiL2luY2x1ZGUvY3VybC9jdXJsLmgKaW5kZXggYWQ0OTk5ZS4uMzE2NjUyNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jdXJsL2N1cmwuaAorKysgYi9pbmNsdWRlL2N1cmwvY3VybC5oCkBAIC00MjIsOCArNDIyLDggQEAKIGNoYXIgKmN1cmxfdmVyc2lvbih2b2lkKTsKIAogLyogVGhpcyBpcyB0aGUgdmVyc2lvbiBudW1iZXIgKi8KLSNkZWZpbmUgTElCQ1VSTF9WRVJTSU9OICI3LjEuMSIKLSNkZWZpbmUgTElCQ1VSTF9WRVJTSU9OX05VTSAweDA3MDEwMQorI2RlZmluZSBMSUJDVVJMX1ZFUlNJT04gIjcuMiIKKyNkZWZpbmUgTElCQ1VSTF9WRVJTSU9OX05VTSAweDA3MDIwMAogCiAvKiBsaW5rZWQtbGlzdCBzdHJ1Y3R1cmUgZm9yIHRoZSBDVVJMT1BUX1FVT1RFIG9wdGlvbiAqLwogc3RydWN0IGN1cmxfc2xpc3QgewpkaWZmIC0tZ2l0IGEvcmVjb25mIGIvcmVjb25mCmluZGV4IDhkMjlhMDcuLmZiNDhhYTMgMTAwNzU1Ci0tLSBhL3JlY29uZgorKysgYi9yZWNvbmYKQEAgLTksOCArOSw3IEBACiAJZWNobyAiJEAiIDsgZXhpdAogfQogCi1hY2xvY2FsICAgIHx8IGRpZSAiYWhoaGhoIgotYXV0b2hlYWRlciB8fCBkaWUgImFoaGhoaCIKLWF1dG9tYWtlICAgfHwgZGllICJhaGhoaGgiCi1hdXRvY29uZiAgIHx8IGRpZSAiYWhoaGhoIgotCithY2xvY2FsIC1JIC4JfHwgZGllICJhaGhoaGgiCithdXRvaGVhZGVyCXx8IGRpZSAiYWhoaGhoIgorYXV0b21ha2UJfHwgZGllICJhaGhoaGgiCithdXRvY29uZgl8fCBkaWUgImFoaGhoaCIKZGlmZiAtLWdpdCBhL3NyYy9odWdlaGVscC5jIGIvc3JjL2h1Z2VoZWxwLmMKaW5kZXggNGEwZmNhYi4uYzBjZWViZiAxMDA2NDQKLS0tIGEvc3JjL2h1Z2VoZWxwLmMKKysrIGIvc3JjL2h1Z2VoZWxwLmMKQEAgLTExMCwxNiArMTEwLDMyIEBACiAiICAgICAtZC8tLWRhdGEgPGRhdGE+XG4iCiAiICAgICAgICAgIChIVFRQKSAgU2VuZHMgIHRoZSAgc3BlY2lmaWVkIGRhdGEgaW4gYSBQT1NUIHJlcXVlc3QgdG9cbiIKICIgICAgICAgICAgdGhlIEhUVFAgc2VydmVyLiBOb3RlIHRoYXQgdGhlIGRhdGEgaXMgc2VudCBleGFjdGx5ICBhc1xuIgotIiAgICAgICAgICBzcGVjaWZpZWQgIHdpdGggIG5vICBleHRyYSAgcHJvY2Vzc2luZy4gICBUaGUgIGRhdGEgIGlzXG4iCi0iICAgICAgICAgIGV4cGVjdGVkIHRvIGJlIFwidXJsLWVuY29kZWRcIi4gVGhpcyB3aWxsIGNhdXNlICBjdXJsICB0b1xuIgotIiAgICAgICAgICBwYXNzICB0aGUgIGRhdGEgIHRvICB0aGUgIHNlcnZlciB1c2luZyB0aGUgY29udGVudC10eXBlXG4iCi0iICAgICAgICAgIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZC4gQ29tcGFyZSB0byAtRi5cbiIKKyIgICAgICAgICAgc3BlY2lmaWVkICB3aXRoICBubyBleHRyYSBwcm9jZXNzaW5nICh3aXRoIGFsbCBuZXdsaW5lc1xuIgorIiAgICAgICAgICBjdXQgb2ZmKS4gIFRoZSBkYXRhIGlzIGV4cGVjdGVkICB0byAgYmUgIFwidXJsLWVuY29kZWRcIi5cbiIKKyIgICAgICAgICAgVGhpcyAgd2lsbCAgY2F1c2UgIGN1cmwgIHRvIHBhc3MgdGhlIGRhdGEgdG8gdGhlIHNlcnZlclxuIgorIiAgICAgICAgICB1c2luZyAgdGhlICBjb250ZW50LXR5cGUgIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW6tXG4iCisiICAgICAgICAgIGNvZGVkLiBDb21wYXJlIHRvIC1GLlxuIgogIlxuIgotIiAgICAgICAgICBJZiB5b3Ugc3RhcnQgdGhlIGRhdGEgIHdpdGggIHRoZSAgbGV0dGVyICBALCAgdGhlICByZXN0XG4iCi0iICAgICAgICAgIHNob3VsZCAgYmUgIGEgIGZpbGUgbmFtZSB0byByZWFkIHRoZSBkYXRhIGZyb20sIG9yIC0gaWZcbiIKLSIgICAgICAgICAgeW91IHdhbnQgY3VybCB0byByZWFkIHRoZSBkYXRhIGZyb20gIHN0ZGluLiAgIFRoZSAgY29urVxuIgorIiAgICAgICAgICBJZiAgeW91ICBzdGFydCAgdGhlICBkYXRhICB3aXRoICB0aGUgbGV0dGVyIEAsIHRoZSByZXN0XG4iCisiICAgICAgICAgIHNob3VsZCBiZSBhIGZpbGUgbmFtZSB0byByZWFkIHRoZSBkYXRhIGZyb20sICBvciAgLSAgaWZcbiIKKyIgICAgICAgICAgeW91ICB3YW50ICBjdXJsICB0byByZWFkIHRoZSBkYXRhIGZyb20gc3RkaW4uICBUaGUgY29urVxuIgogIiAgICAgICAgICB0ZW50cyBvZiB0aGUgZmlsZSBtdXN0IGFscmVhZHkgYmUgdXJsLWVuY29kZWQuXG4iCiAiXG4iCisiICAgICAgICAgIFRvIHBvc3QgZGF0YSBwdXJlbHkgYmluYXJ5LCB5b3Ugc2hvdWxkIGluc3RlYWQgdXNlICB0aGVcbiIKKyIgICAgICAgICAgLS1kYXRhLWJpbmFyeSBvcHRpb24uXG4iCisiXG4iCisiICAgICAgICAgIC1kLy0tZGF0YSBpcyB0aGUgc2FtZSBhcyAtLWRhdGEtYXNjaWkuXG4iCisiXG4iCisiICAgICAtLWRhdGEtYXNjaWkgPGRhdGE+XG4iCisiICAgICAgICAgIChIVFRQKSBUaGlzIGlzIGFuIGFsaWFzIGZvciB0aGUgLWQvLS1kYXRhIG9wdGlvbi5cbiIKKyJcbiIKKyIgICAgIC0tZGF0YS1iaW5hcnkgPGRhdGE+XG4iCisiICAgICAgICAgIChIVFRQKSAgVGhpcyAgcG9zdHMgZGF0YSBpbiBhIHNpbWlsYXIgbWFubmVyIGFzIC0tZGF0YS1cbiIKKyIgICAgICAgICAgYXNjaWkgZG9lcywgYWx0aG91Z2ggd2hlbiB1c2luZyB0aGlzIG9wdGlvbiB0aGUgIGVudGlyZVxuIgorIiAgICAgICAgICBjb250ZXh0ICBvZiAgdGhlIHBvc3RlZCBkYXRhIGlzIGtlcHQgYXMtaXMuIElmIHlvdSB3YW50XG4iCisiICAgICAgICAgIHRvIHBvc3QgYSBiaW5hcnkgZmlsZSB3aXRob3V0IHRoZSAgc3RyaXAtbmV3bGluZXMgIGZlYa1cbiIKKyIgICAgICAgICAgdHVyZSBvZiB0aGUgLS1kYXRhLWFzY2lpIG9wdGlvbiwgdGhpcyBpcyBmb3IgeW91LlxuIgorIlxuIgogIiAgICAgLUQvLS1kdW1wLWhlYWRlciA8ZmlsZT5cbiIKICIgICAgICAgICAgKEhUVFAvRlRQKSAgV3JpdGUgIHRoZSBIVFRQIGhlYWRlcnMgdG8gdGhpcyBmaWxlLiBXcml0ZVxuIgogIiAgICAgICAgICB0aGUgRlRQIGZpbGUgaW5mbyB0byB0aGlzIGZpbGUgaWYgLUkvLS1oZWFkIGlzIHVzZWQuXG4iCkBAIC0xOTgsNyArMjE0LDYgQEAKICIgICAgICAgICAgKEhUVFApIEluY2x1ZGUgdGhlIEhUVFAtaGVhZGVyIGluIHRoZSBvdXRwdXQuIFRoZSBIVFRQLVxuIgogIiAgICAgICAgICBoZWFkZXIgIGluY2x1ZGVzICB0aGluZ3MgIGxpa2Ugc2VydmVyLW5hbWUsIGRhdGUgb2YgdGhlXG4iCiAiICAgICAgICAgIGRvY3VtZW50LCBIVFRQLXZlcnNpb24gYW5kIG1vcmUuLi5cbiIKLSJcbiIKICIgICAgIC1JLy0taGVhZFxuIgogIiAgICAgICAgICAoSFRUUC9GVFApIEZldGNoICB0aGUgIEhUVFAtaGVhZGVyICBvbmx5ISAgSFRUUC1zZXJ2ZXJzXG4iCiAiICAgICAgICAgIGZlYXR1cmUgdGhlIGNvbW1hbmQgSEVBRCB3aGljaCB0aGlzIHVzZXMgdG8gZ2V0IG5vdGhpbmdcbiIKQEAgLTIxMSwxMCArMjI2LDEzIEBACiAiICAgICAgICAgIGFyZ3VtZW50cyAgY2FuIGJlIHdyaXR0ZW4gd2hpY2ggdGhlbiB3aWxsIGJlIHVzZWQgYXMgaWZcbiIKICIgICAgICAgICAgdGhleSB3ZXJlIHdyaXR0ZW4gb24gdGhlIGFjdHVhbCBjb21tYW5kICBsaW5lLiAgSWYgIHRoZVxuIgogIiAgICAgICAgICBmaXJzdCAgY29sdW1uICBvZiBhIGNvbmZpZyBsaW5lIGlzIGEgJyMnIGNoYXJhY3RlciwgdGhlXG4iCispOworIHB1dHMoCiAiICAgICAgICAgIHJlc3Qgb2YgdGhlIGxpbmUgd2lsbCBiZSB0cmVhdGVkIGFzIGEgY29tbWVudC5cbiIKICJcbiIKICIgICAgICAgICAgU3BlY2lmeSB0aGUgZmlsZW5hbWUgYXMgJy0nIHRvIG1ha2UgY3VybCByZWFkIHRoZSAgZmlsZVxuIgogIiAgICAgICAgICBmcm9tIHN0ZGluLlxuIgorIlxuIgogIiAgICAgLWwvLS1saXN0LW9ubHlcbiIKICIgICAgICAgICAgKEZUUCkgV2hlbiBsaXN0aW5nIGFuIEZUUCBkaXJlY3RvcnksIHRoaXMgc3dpdGNoIGZvcmNlc1xuIgogIiAgICAgICAgICBhIG5hbWUtb25seSB2aWV3LiAgRXNwZWNpYWxseSB1c2VmdWwgIGlmICB5b3UgIHdhbnQgIHRvXG4iCkBAIC0yMjYsOCArMjQ0LDYgQEAKICIgICAgICAgICAgKEhUVFAvSFRUUFMpICBJZiAgdGhlIHNlcnZlciByZXBvcnRzIHRoYXQgdGhlIHJlcXVlc3RlZFxuIgogIiAgICAgICAgICBwYWdlIGhhcyAgYSAgZGlmZmVyZW50ICBsb2NhdGlvbiAgKGluZGljYXRlZCAgd2l0aCAgdGhlXG4iCiAiICAgICAgICAgIGhlYWRlciAgbGluZSBMb2NhdGlvbjopIHRoaXMgZmxhZyB3aWxsIGxldCBjdXJsIGF0dGVtcHRcbiIKLSk7Ci0gcHV0cygKICIgICAgICAgICAgdG8gcmVhdHRlbXB0IHRoZSBnZXQgb24gdGhlIG5ldyBwbGFjZS4gSWYgdXNlZCB0b2dldGhlclxuIgogIiAgICAgICAgICB3aXRoIC1pIG9yIC1JLCBoZWFkZXJzIGZyb20gYWxsIHJlcXVlc3RlZCBwYWdlcyB3aWxsIGJlXG4iCiAiICAgICAgICAgIHNob3duLiBJZiB0aGlzIGZsYWcgaXMgdXNlZCB3aGVuIG1ha2luZyAgYSAgSFRUUCAgUE9TVCxcbiIKQEAgLTMwNCw3ICszMjAsNiBAQAogIlxuIgogIiAgICAgICAgICAtICAgICAgICAgICAoYW55ICBzaW5nbGUtbGV0dGVyIHN0cmluZykgdG8gbWFrZSBpdCBwaWNrXG4iCiAiICAgICAgICAgICAgICAgICAgICAgIHRoZSBtYWNoaW5lJ3MgZGVmYXVsdFxuIgotIlxuIgogIiAgICAgLXEgICBJZiB1c2VkIGFzIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb24gdGhlIGNvbW1hbmQgbGluZSwgdGhlXG4iCiAiICAgICAgICAgICRIT01FLy5jdXJscmMgIGZpbGUgd2lsbCBub3QgYmUgcmVhZCBhbmQgdXNlZCBhcyBhIGNvbq1cbiIKICIgICAgICAgICAgZmlnIGZpbGUuXG4iCkBAIC0zMjAsNiArMzM1LDcgQEAKICIgICAgICAgICAgdG8gIGJlIHJ1biBiZWZvcmUgYW5kIGFmdGVyIHRoZSB0cmFuc2Zlci4gSWYgdGhlIHNlcnZlclxuIgogIiAgICAgICAgICByZXR1cm5zIGZhaWx1cmUgZm9yIG9uZSBvZiAgdGhlICBjb21tYW5kcywgIHRoZSAgZW50aXJlXG4iCiAiICAgICAgICAgIG9wZXJhdGlvbiB3aWxsIGJlIGFib3J0ZWQuXG4iCisiXG4iCiAiICAgICAtci8tLXJhbmdlIDxyYW5nZT5cbiIKICIgICAgICAgICAgKEhUVFAvRlRQKSAgUmV0cmlldmUgIGEgYnl0ZSByYW5nZSAoaS5lIGEgcGFydGlhbCBkb2N1rVxuIgogIiAgICAgICAgICBtZW50KSBmcm9tIGEgSFRUUC8xLjEgb3IgIEZUUCAgc2VydmVyLiAgUmFuZ2VzICBjYW4gIGJlXG4iCkBAIC0zNTYsNyArMzcyLDYgQEAKICIgICAgIC1zLy0tc2lsZW50XG4iCiAiICAgICAgICAgIFNpbGVudCBtb2RlLiBEb24ndCBzaG93IHByb2dyZXNzIG1ldGVyICBvciAgZXJyb3IgIG1lc61cbiIKICIgICAgICAgICAgc2FnZXMuICBNYWtlcyBDdXJsIG11dGUuXG4iCi0iXG4iCiAiICAgICAtUy8tLXNob3ctZXJyb3JcbiIKICIgICAgICAgICAgV2hlbiAgdXNlZCAgd2l0aCAtcyBpdCBtYWtlcyBjdXJsIHNob3cgZXJyb3IgbWVzc2FnZSBpZlxuIgogIiAgICAgICAgICBpdCBmYWlscy5cbiIKQEAgLTQwOCw5ICs0MjMsOSBAQAogIiAgICAgICAgICBwYXJ0aWN1bGFyICBmaWxlIHlvdSBzcGVjaWZ5IGl0IFwiQGZpbGVuYW1lXCIgYW5kIHRvIHRlbGxcbiIKICIgICAgICAgICAgY3VybCB0byByZWFkIHRoZSBmb3JtYXQgZnJvbSBzdGRpbiB5b3Ugd3JpdGUgXCJALVwiLlxuIgogIlxuIgotIiAgICAgICAgICBUaGUgdmFyaWFibGVzIHByZXNlbnQgaW4gdGhlIG91dHB1dCBmb3JtYXQgd2lsbCBiZSBzdWKtXG4iCi0iICAgICAgICAgIHN0aXR1dGVkICBieSB0aGUgdmFsdWUgb3IgdGV4dCB0aGF0IGN1cmwgdGhpbmtzIGZpdCwgYXNcbiIKLSIgICAgICAgICAgZGVzY3JpYmVkICBiZWxvdy4gIEFsbCAgdmFyaWFibGVzICBhcmUgIHNwZWNpZmllZCAgbGlrZVxuIgorIiAgICAgICAgICBUaGUgdmFyaWFibGVzIHByZXNlbnQgaW4gIHRoZSAgb3V0cHV0ICBmb3JtYXQgIHdpbGwgIGJlXG4iCisiICAgICAgICAgIHN1YnN0aXR1dGVkICBieSB0aGUgdmFsdWUgb3IgdGV4dCB0aGF0IGN1cmwgdGhpbmtzIGZpdCxcbiIKKyIgICAgICAgICAgYXMgZGVzY3JpYmVkIGJlbG93LiBBbGwgdmFyaWFibGVzICBhcmUgIHNwZWNpZmllZCAgbGlrZVxuIgogIiAgICAgICAgICAle3ZhcmlhYmxlX25hbWV9ICBhbmQgIHRvICBvdXRwdXQgIGEgIG5vcm1hbCAlIHlvdSBqdXN0XG4iCiAiICAgICAgICAgIHdyaXRlIHRoZW0gbGlrZSAlJS4gWW91IGNhbiBvdXRwdXQgYSBuZXdsaW5lICBieSAgdXNpbmdcbiIKICIgICAgICAgICAgXFxuLCBhIGNhcnJpZ2UgcmV0dXJuIHdpdGggXFxyIGFuZCBhIHRhYiBzcGFjZSB3aXRoIFxcdC5cbiIKQEAgLTQyNCw2ICs0MzksNyBAQAogIiAgICAgICAgICB1cmxfZWZmZWN0aXZlICBUaGUgIFVSTCAgdGhhdCB3YXMgZmV0Y2hlZCBsYXN0LiBUaGlzIGlzXG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgIG1vc3RseSBtZWFuaW5nZnVsIGlmIHlvdSd2ZSB0b2xkIGN1cmwgdG9cbiIKICIgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93IGxvY2F0aW9uOiBoZWFkZXJzLlxuIgorIlxuIgogIiAgICAgICAgICBodHRwX2NvZGUgICAgICBUaGUgbnVtZXJpY2FsIGNvZGUgdGhhdCB3YXMgZm91bmQgaW4gdGhlXG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgcmV0cmlldmVkIEhUVFAoUykgcGFnZS5cbiIKICJcbiIKQEAgLTQ0Nyw2ICs0NjMsOCBAQAogIiAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2ZlciAgY29tbWFuZHMgYW5kIG5lZ290aWF0aW9ucyB0aGF0XG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBzcGVjaWZpYyB0byAgdGhlICBwYXJ0aWN1bGFyICBwcm90b61cbiIKICIgICAgICAgICAgICAgICAgICAgICAgICAgY29sKHMpIGludm9sdmVkLlxuIgorKTsKKyBwdXRzKAogIlxuIgogIiAgICAgICAgICBzaXplX2Rvd25sb2FkICBUaGUgIHRvdGFsICBhbW91bnQgIG9mICBieXRlcyAgdGhhdCB3ZXJlXG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkZWQuXG4iCkBAIC00NTksMTUgKzQ3NywxMiBAQAogIlxuIgogIiAgICAgICAgICBzcGVlZF91cGxvYWQgICBUaGUgYXZlcmFnZSB1cGxvYWQgc3BlZWQgdGhhdCBjdXJsICBtZWGtXG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgIHN1cmVkIGZvciB0aGUgY29tcGxldGUgZG93bmxvYWQuXG4iCi0iXG4iCiAiICAgICAteC8tLXByb3h5IDxwcm94eWhvc3RbOnBvcnRdPlxuIgogIiAgICAgICAgICBVc2UgIHNwZWNpZmllZCAgcHJveHkuIElmIHRoZSBwb3J0IG51bWJlciBpcyBub3Qgc3BlY2mtXG4iCiAiICAgICAgICAgIGZpZWQsIGl0IGlzIGFzc3VtZWQgYXQgcG9ydCAxMDgwLlxuIgogIlxuIgogIiAgICAgLVgvLS1yZXF1ZXN0IDxjb21tYW5kPlxuIgogIiAgICAgICAgICAoSFRUUCkgU3BlY2lmaWVzIGEgY3VzdG9tIHJlcXVlc3QgdG8gdXNlIHdoZW4gIGNvbW11bmmtXG4iCi0pOwotIHB1dHMoCiAiICAgICAgICAgIGNhdGluZyAgd2l0aCAgdGhlICBIVFRQICBzZXJ2ZXIuICBUaGUgc3BlY2lmaWVkIHJlcXVlc3RcbiIKICIgICAgICAgICAgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIHN0YW5kYXJkIEdFVC4gUmVhZCB0aGUgSFRUUFxuIgogIiAgICAgICAgICAxLjEgc3BlY2lmaWNhdGlvbiBmb3IgZGV0YWlscyBhbmQgZXhwbGFuYXRpb25zLlxuIgpAQCAtNTI5LDYgKzU0NCw3IEBACiAiRU5WSVJPTk1FTlRcbiIKICIgICAgIEhUVFBfUFJPWFkgW3Byb3RvY29sOi8vXTxob3N0Pls6cG9ydF1cbiIKICIgICAgICAgICAgU2V0cyBwcm94eSBzZXJ2ZXIgdG8gdXNlIGZvciBIVFRQLlxuIgorIlxuIgogIiAgICAgSFRUUFNfUFJPWFkgW3Byb3RvY29sOi8vXTxob3N0Pls6cG9ydF1cbiIKICIgICAgICAgICAgU2V0cyBwcm94eSBzZXJ2ZXIgdG8gdXNlIGZvciBIVFRQUy5cbiIKICJcbiIKQEAgLTU2NCw3ICs1ODAsNiBAQAogIlxuIgogIiAgICAgNCAgICBVUkwgIHVzZXIgbWFsZm9ybWF0dGVkLiBUaGUgdXNlci1wYXJ0IG9mIHRoZSBVUkwgc3ludGF4XG4iCiAiICAgICAgICAgIHdhcyBub3QgY29ycmVjdC5cbiIKLSJcbiIKICIgICAgIDUgICAgQ291bGRuJ3QgcmVzb2x2ZSBwcm94eS4gVGhlIGdpdmVuIHByb3h5IGhvc3QgY291bGQgIG5vdFxuIgogIiAgICAgICAgICBiZSByZXNvbHZlZC5cbiIKICJcbiIKQEAgLTU4MCw2ICs1OTUsNyBAQAogIlxuIgogIiAgICAgMTAgICBGVFAgIHVzZXIvcGFzc3dvcmQgIGluY29ycmVjdC4gIEVpdGhlciBvbmUgb3IgYm90aCB3ZXJlXG4iCiAiICAgICAgICAgIG5vdCBhY2NlcHRlZCBieSB0aGUgc2VydmVyLlxuIgorIlxuIgogIiAgICAgMTEgICBGVFAgd2VpcmQgUEFTUyByZXBseS4gQ3VybCAgY291bGRuJ3QgIHBhcnNlICB0aGUgIHJlcGx5XG4iCiAiICAgICAgICAgIHNlbnQgdG8gdGhlIFBBU1MgcmVxdWVzdC5cbiIKICJcbiIKQEAgLTYxNiw3ICs2MzIsNiBAQAogIlxuIgogIiAgICAgMjMgICBXcml0ZSBlcnJvci4gIEN1cmwgIGNvdWxkbid0ICB3cml0ZSAgZGF0YSAgdG8gIGEgIGxvY2FsXG4iCiAiICAgICAgICAgIGZpbGVzeXN0ZW0gb3Igc2ltaWxhci5cbiIKLSJcbiIKICIgICAgIDI0ICAgTWFsZm9ybWF0IHVzZXIuIFVzZXIgbmFtZSBiYWRseSBzcGVjaWZpZWQuXG4iCiAiXG4iCiAiICAgICAyNSAgIEZUUCAgY291bGRuJ3QgIFNUT1IgIGZpbGUuICBUaGUgIHNlcnZlciBkZW5pZWQgdGhlIFNUT1JcbiIKQEAgLTYzMSw2ICs2NDYsNyBAQAogIlxuIgogIiAgICAgMjkgICBGVFAgIGNvdWxkbid0IHNldCBBU0NJSS4gVGhlIHNlcnZlciByZXR1cm5lZCBhbiB1bmtub3duXG4iCiAiICAgICAgICAgIHJlcGx5LlxuIgorIlxuIgogIiAgICAgMzAgICBGVFAgUE9SVCBmYWlsZWQuIFRoZSBQT1JUIGNvbW1hbmQgZmFpbGVkLlxuIgogIlxuIgogIiAgICAgMzEgICBGVFAgY291bGRuJ3QgdXNlIFJFU1QuIFRoZSBSRVNUIGNvbW1hbmQgZmFpbGVkLlxuIgpAQCAtNjY3LDcgKzY4Myw2IEBACiAiQlVHU1xuIgogIiAgICAgSWYgeW91IGRvIGZpbmQgYW55IChvciBoYXZlIG90aGVyIHN1Z2dlc3Rpb25zKSwgbWFpbCAgRGFuaWVsXG4iCiAiICAgICBTdGVuYmVyZyA8RGFuaWVsLlN0ZW5iZXJnQGhheHguc2U+LlxuIgotIlxuIgogIkFVVEhPUlMgLyBDT05UUklCVVRPUlNcbiIKICIgICAgICAtIERhbmllbCBTdGVuYmVyZyA8RGFuaWVsLlN0ZW5iZXJnQGhheHguc2U+XG4iCiAiICAgICAgLSBSYWZhZWwgU2FndWxhIDxzYWd1bGFAaW5mLnVmcmdzLmJyPlxuIgpAQCAtNzE3LDcgKzczMiw3IEBACiAiICAgICAgLSBLcmlzdGlhbiBL9mhudG9wcCA8a3Jpc0Brb2VobnRvcHAuZGU+XG4iCiAiICAgICAgLSBGcmVkIE5veiA8Rk5vekBzaWFjLmNvbT5cbiIKICIgICAgICAtIENhb2xhbiBNY05hbWFyYSA8Y2FvbGFuQGNzbi51bC5pZT5cbiIKLSJcbiIKKyIgICAgICAtIEFsYmVydCBDaGluLUEtWW91bmcgPGNoaW5hQHRoZXdyaXR0ZW53b3JkLmNvbT5cbiIKICJXV1dcbiIKICIgICAgIGh0dHA6Ly9jdXJsLmhheHguc2VcbiIKICJcbiIKQEAgLTc0Nyw2ICs3NjIsOCBAQAogIiAgR2V0IGEgZ29waGVyIGRvY3VtZW50IGZyb20gZnVuZXQncyBnb3BoZXIgc2VydmVyOlxuIgogIlxuIgogIiAgICAgICAgY3VybCBnb3BoZXI6Ly9nb3BoZXIuZnVuZXQuZmlcbiIKKyk7CisgcHV0cygKICJcbiIKICIgIEdldCBhIHdlYiBwYWdlIGZyb20gYSBzZXJ2ZXIgdXNpbmcgcG9ydCA4MDAwOlxuIgogIlxuIgpAQCAtNzc5LDggKzc5Niw2IEBACiAiICAgVG8gZnRwIGZpbGVzIHVzaW5nIG5hbWUrcGFzc3dkLCBpbmNsdWRlIHRoZW0gaW4gdGhlIFVSTCBsaWtlOlxuIgogIlxuIgogIiAgICAgICAgY3VybCBmdHA6Ly9uYW1lOnBhc3N3ZEBtYWNoaW5lLmRvbWFpbjpwb3J0L2Z1bGwvcGF0aC90by9maWxlXG4iCi0pOwotIHB1dHMoCiAiXG4iCiAiICAgb3Igc3BlY2lmeSB0aGVtIHdpdGggdGhlIC11IGZsYWcgbGlrZVxuIgogIlxuIgpAQCAtMTA0Myw2ICsxMDU4LDggQEAKICIgIGhlYWRlcnMgdGhhdCBsb29rcyBsaWtlICdTZXQtQ29va2llOiA8ZGF0YT4nIHdoZXJlIHRoZSBkYXRhIHBhcnQgdGhlblxuIgogIiAgdHlwaWNhbGx5IGNvbnRhaW5zIGEgc2V0IG9mIE5BTUU9VkFMVUUgcGFpcnMgKHNlcGFyYXRlZCBieSBzZW1pY29sb25zICc7J1xuIgogIiAgbGlrZSBcIk5BTUUxPVZBTFVFMTsgTkFNRTI9VkFMVUUyO1wiKS4gVGhlIHNlcnZlciBjYW4gYWxzbyBzcGVjaWZ5IGZvciB3aGF0XG4iCispOworIHB1dHMoCiAiICBwYXRoIHRoZSBcImNvb2tpZVwiIHNob3VsZCBiZSB1c2VkIGZvciAoYnkgc3BlY2lmeWluZyBcInBhdGg9dmFsdWVcIiksIHdoZW4gdGhlXG4iCiAiICBjb29raWUgc2hvdWxkIGV4cGlyZSAoXCJleHBpcmU9REFURVwiKSwgZm9yIHdoYXQgZG9tYWluIHRvIHVzZSBpdFxuIgogIiAgKFwiZG9tYWluPU5BTUVcIikgYW5kIGlmIGl0IHNob3VsZCBiZSB1c2VkIG9uIHNlY3VyZSBjb25uZWN0aW9ucyBvbmx5XG4iCkBAIC0xMDYxLDggKzEwNzgsNiBAQAogIiAgQ3VybCBhbHNvIGhhcyB0aGUgYWJpbGl0eSB0byB1c2UgcHJldmlvdXNseSByZWNlaXZlZCBjb29raWVzIGluIGZvbGxvd2luZ1xuIgogIiAgc2Vzc2lvbnMuIElmIHlvdSBnZXQgY29va2llcyBmcm9tIGEgc2VydmVyIGFuZCBzdG9yZSB0aGVtIGluIGEgZmlsZSBpbiBhXG4iCiAiICBtYW5uZXIgc2ltaWxhciB0bzpcbiIKLSk7Ci0gcHV0cygKICJcbiIKICIgICAgICAgIGN1cmwgLS1kdW1wLWhlYWRlciBoZWFkZXJzIHd3dy5leGFtcGxlLmNvbVxuIgogIlxuIgpAQCAtMTMxMyw2ICsxMzI4LDggQEAKICJUSU1FIENPTkRJVElPTlNcbiIKICJcbiIKICIgSFRUUCBhbGxvd3MgYSBjbGllbnQgdG8gc3BlY2lmeSBhIHRpbWUgY29uZGl0aW9uIGZvciB0aGUgZG9jdW1lbnQgaXRcbiIKKyk7CisgcHV0cygKICIgcmVxdWVzdHMuIEl0IGlzIElmLU1vZGlmaWVkLVNpbmNlIG9yIElmLVVubW9kaWZpZWQtU2luY2UuIEN1cmwgYWxsb3cgeW91IHRvXG4iCiAiIHNwZWNpZnkgdGhlbSB3aXRoIHRoZSAtei8tLXRpbWUtY29uZCBmbGFnLlxuIgogIlxuIgpAQCAtMTMzMiw4ICsxMzQ5LDYgQEAKICIgICAgICAgIGN1cmwgLXogeWVzdGVyZGF5IGh0dHA6Ly9yZW1vdGUuc2VydmVyLmNvbS9yZW1vdGUuaHRtbFxuIgogIlxuIgogIiBDdXJsIHdpbGwgdGhlbiBhY2NlcHQgYSB3aWRlIHJhbmdlIG9mIGRhdGUgZm9ybWF0cy4gWW91IGFsd2F5cyBtYWtlIHRoZSBkYXRlXG4iCi0pOwotIHB1dHMoCiAiIGNoZWNrIHRoZSBvdGhlciB3YXkgYXJvdW5kIGJ5IHByZXBlbmRpbmcgaXQgd2l0aCBhIGRhc2ggJy0nLlxuIgogIlxuIgogIkRJQ1RcbiIKZGlmZiAtLWdpdCBhL3NyYy92ZXJzaW9uLmggYi9zcmMvdmVyc2lvbi5oCmluZGV4IGMzZWEwMTkuLjMyNWE5M2UgMTAwNjQ0Ci0tLSBhL3NyYy92ZXJzaW9uLmgKKysrIGIvc3JjL3ZlcnNpb24uaApAQCAtMSwzICsxLDMgQEAKICNkZWZpbmUgQ1VSTF9OQU1FICJjdXJsIgotI2RlZmluZSBDVVJMX1ZFUlNJT04gIjcuMSIKKyNkZWZpbmUgQ1VSTF9WRVJTSU9OICI3LjIiCiAjZGVmaW5lIENVUkxfSUQgQ1VSTF9OQU1FICIgIiBDVVJMX1ZFUlNJT04gIiAoIiBPUyAiKSAiCg==