ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggZmUwMmQzNS4uODA5NWVmNyAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsNSArMSw1IEBACiAKLUxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorTGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogCiBUaGlzIGlzIGEgcHVibGljIHJlbGVhc2Ugb2YgbGlicG5nLCBpbnRlbmRlZCBmb3IgdXNlIGluIHByb2R1Y3Rpb24gY29kZXMuCiAKQEAgLTUwLDYgKzUwLDggQEAKICAgQWRkZWQgcG5nX3NldF9pbnZhbGlkLCBwbmdfcGVybWl0X21uZ19mZWF0dXJlcywgYW5kIHBuZ19tbXhfc3VwcG9ydGVkIHRvCiAgICAgd2luY2UgYW5kIG1zdmMgcHJvamVjdCBtb2R1bGUgZGVmaW5pdGlvbiBmaWxlcy4KICAgRml4ZWQgYnVnIHdpdGggcHJvZ3Jlc3NpdmUgcmVhZGluZyBvZiBuYXJyb3cgaW50ZXJsYWNlZCBpbWFnZXMgaW4gcG5ncHJlYWQuYworICBEbyBub3QgdHlwZWRlZiBwbmdfRklMRV9pbyBpbiBwbmdjb25mLmggd2hlbiBQTkdfTk9fU1RESU8gaXMgZGVmaW5lZC4KKyAgVXBkYXRlZCBtYWtlZmlsZS5zZ2kgdG8gbWFrZSBzaGFyZWQgbGlicmFyeS4KIAogU2VuZCBjb21tZW50cy9jb3JyZWN0aW9ucy9jb21tZW5kYXRpb25zIHRvCiBwbmctaW1wbGVtZW50QGNjcmMud3VzdGwuZWR1IG9yIHRvIHJhbmRlZ0BhbHVtLnJwaS5lZHUKZGlmZiAtLWdpdCBhL0NIQU5HRVMgYi9DSEFOR0VTCmluZGV4IDhiNDI2YWQuLjE3Y2ZkYTQgMTAwNjQ0Ci0tLSBhL0NIQU5HRVMKKysrIGIvQ0hBTkdFUwpAQCAtODU2LDExICs4NTYsMTIgQEAKICAgQ2hhbmdlIHBuZ19jaHVua193YXJuaW5nIHRvIHBuZ193YXJuaW5nIGluIHBuZ19jaGVja19rZXl3b3JkKCkuCiAgIEluY3JlYXNlZCB0aGUgZmlyc3QgcGFydCBvZiBtc2cgYnVmZmVyIGZyb20gMTYgdG8gMTggaW4gcG5nX2NodW5rX2Vycm9yKCkuCiB2ZXJzaW9uIDEuMC45YmV0YTUgW0RlY2VtYmVyIDE1LCAyMDAwXQotICBBZGRlZCBzdXBwb3J0IGZvciBmaWx0ZXIgbWV0aG9kIDY0IChmb3IgUE5HIGRhdGFzdHJlYW1zIGVtYmVkZGVkIGluIE1ORykKKyAgQWRkZWQgc3VwcG9ydCBmb3IgZmlsdGVyIG1ldGhvZCA2NCAoZm9yIFBORyBkYXRhc3RyZWFtcyBlbWJlZGRlZCBpbiBNTkcpLgogdmVyc2lvbiAxLjAuOWJldGE2IFtEZWNlbWJlciAxOCwgMjAwMF0KICAgUmV2aXNlZCBwbmdfc2V0X2ZpbHRlcigpIHRvIGFjY2VwdCBmaWx0ZXIgbWV0aG9kIDY0IHdoZW4gYXBwcm9wcmlhdGUuCiAgIEFkZGVkIG5ldyBQTkdfSEFWRV9QTkdfU0lHTkFUVVJFIGJpdCB0byBwbmdfcHRyLT5tb2RlIGFuZCB1c2UgaXQgdG8KICAgICBoZWxwIHByZXZlbnQgYXBwbGljYXRpb25zIGZyb20gdXNpbmcgTU5HIGZlYXR1cmVzIGluIFBORyBkYXRhc3RyZWFtcy4KKyAgQWRkZWQgcG5nX3Blcm1pdF9tbmdfZmVhdHVyZXMoKSBmdW5jdGlvbi4KICAgUmV2aXNlZCBsaWJwbmcuMy9saWJwbmcudHh0LiAgQ2hhbmdlZCAiZmlsdGVyIHR5cGUiIHRvICJmaWx0ZXIgbWV0aG9kIi4KIHZlcnNpb24gMS4wLjlyYzEgW0RlY2VtYmVyIDIzLCAyMDAwXQogICBSZXZpc2VkIHRlc3QgZm9yIFBOR19IQVZFX1BOR19TSUdOQVRVUkUgaW4gcG5ncnV0aWwuYwpAQCAtODc5LDYgKzg4MCwxNCBAQAogICAgIHdpbmNlIGFuZCBtc3ZjIHByb2plY3QgbW9kdWxlIGRlZmluaXRpb24gZmlsZXMuCiAgIE1pbm9yIHJldmlzaW9uIG9mIG1ha2VmaWxlLmN5Z3dpbi4KICAgRml4ZWQgYnVnIHdpdGggcHJvZ3Jlc3NpdmUgcmVhZGluZyBvZiBuYXJyb3cgaW50ZXJsYWNlZCBpbWFnZXMgaW4gcG5ncHJlYWQuYwordmVyc2lvbiAxLjAuOWJldGExMCBbSmFudWFyeSAxNiwgMjAwMV0KKyAgRG8gbm90IHR5cGVkZWYgcG5nX0ZJTEVfcCBpbiBwbmdjb25mLmggd2hlbiBQTkdfTk9fU1RESU8gaXMgZGVmaW5lZC4KKyAgRml4ZWQgInBuZ19tbXhfc3VwcG9ydGVkIiB0eXBvIGluIHByb2plY3QgZGVmaW5pdGlvbiBmaWxlcy4KK3ZlcnNpb24gMS4wLjlyYzIgW0phbnVhcnkgMjIsIDIwMDFdCisgIFVwZGF0ZWQgbWFrZWZpbGUuc2dpIHRvIG1ha2Ugc2hhcmVkIGxpYnJhcnkuCisgIFJlbW92ZWQgcG5nX21teF9zdXBwb3J0KCkgZnVuY3Rpb24gYW5kIGRpc2FibGVkIFBOR19NTkdfRkVBVFVSRVNfU1VQUE9SVEVECisgICAgYnkgZGVmYXVsdCwgZm9yIHRoZSBiZW5lZml0IG9mIERMTCBmb3J3YXJkIGNvbXBhdGliaWxpdHkuICBUaGVzZSB3aWxsCisgICAgYmUgcmUtZW5hYmxlZCBpbiB2ZXJzaW9uIDEuMi4wLgogCiBTZW5kIGNvbW1lbnRzL2NvcnJlY3Rpb25zL2NvbW1lbmRhdGlvbnMgdG8KIHBuZy1pbXBsZW1lbnRAY2NyYy53dXN0bC5lZHUgb3IgdG8gcmFuZGVnQGFsdW0ucnBpLmVkdQpkaWZmIC0tZ2l0IGEvSU5TVEFMTCBiL0lOU1RBTEwKaW5kZXggYjUwNzFkZC4uNjJiMzZmYiAxMDA2NDQKLS0tIGEvSU5TVEFMTAorKysgYi9JTlNUQUxMCkBAIC0xLDUgKzEsNSBAQAogCi1JbnN0YWxsaW5nIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCitJbnN0YWxsaW5nIGxpYnBuZyB2ZXJzaW9uIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogCiBCZWZvcmUgaW5zdGFsbGluZyBsaWJwbmcsIHlvdSBtdXN0IGZpcnN0IGluc3RhbGwgemxpYi4gIHpsaWIKIGNhbiB1c3VhbGx5IGJlIGZvdW5kIHdoZXJldmVyIHlvdSBnb3QgbGlicG5nLiAgemxpYiBjYW4gYmUKQEAgLTEwLDcgKzEwLDcgQEAKIHZlcnNpb24gb2YgemxpYiB0aGF0J3MgaW5zdGFsbGVkLgogCiBZb3UgY2FuIHJlbmFtZSB0aGUgZGlyZWN0b3JpZXMgdGhhdCB5b3UgZG93bmxvYWRlZCAodGhleQotbWlnaHQgYmUgY2FsbGVkICJsaWJwbmctMS4wLjliZXRhOSIgb3IgImxwbmcxMDkiIGFuZCAiemxpYi0xLjEuMyIKK21pZ2h0IGJlIGNhbGxlZCAibGlicG5nLTEuMC45cmMyIiBvciAibHBuZzEwOSIgYW5kICJ6bGliLTEuMS4zIgogb3IgInpsaWIxMTMiKSBzbyB0aGF0IHlvdSBoYXZlIGRpcmVjdG9yaWVzIGNhbGxlZCAiemxpYiIgYW5kICJsaWJwbmciLgogCiBZb3VyIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgc2hvdWxkIGxvb2sgbGlrZSB0aGlzOgpAQCAtNTksOCArNTksOCBAQAogaW5jbHVkZQogCiAgbWFrZWZpbGUuc3RkICAgICAgPT4gIEdlbmVyaWMgVU5JWCBtYWtlZmlsZSAoY2MsIGNyZWF0ZXMgc3RhdGljIGxpYnBuZy5hKQotIG1ha2VmaWxlLmxpbnV4ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGE5KQotIG1ha2VmaWxlLmdjbW14ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGE5LAorIG1ha2VmaWxlLmxpbnV4ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOXJjMikKKyBtYWtlZmlsZS5nY21teCAgICA9PiAgTGludXgvRUxGIG1ha2VmaWxlIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4wLjlyYzIsCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXMgYXNzZW1ibGVyIGNvZGUgdHVuZWQgZm9yIEludGVsIE1NWCBwbGF0Zm9ybSkKICBtYWtlZmlsZS5nY2MgICAgICA9PiAgR2VuZXJpYyBtYWtlZmlsZSAoZ2NjLCBjcmVhdGVzIHN0YXRpYyBsaWJwbmcuYSkKICBtYWtlZmlsZS5rbnIgICAgICA9PiAgQXJjaGFpYyBVTklYIE1ha2VmaWxlIHRoYXQgY29udmVydHMgZmlsZXMgd2l0aApAQCAtNzUsOSArNzUsOSBAQAogIGxpYnBuZy5pY2MgICAgICAgID0+ICBQcm9qZWN0IGZpbGUgZm9yIElCTSBWaXN1YWxBZ2UvQysrIHZlcnNpb24gNC4wIG9yIGxhdGVyCiAgbWFrZWZpbGUubWFjb3N4ICAgPT4gIE1BQ09TIFggTWFrZWZpbGUKICBtYWtlZmlsZS5zZ2kgICAgICA9PiAgU2lsaWNvbiBHcmFwaGljcyBJUklYIG1ha2VmaWxlIChjYywgY3JlYXRlcyBzdGF0aWMgbGliKQotIG1ha2VmaWxlLnNnZ2NjICAgID0+ICBTaWxpY29uIEdyYXBoaWNzIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4wLjliZXRhOSkKKyBtYWtlZmlsZS5zZ2djYyAgICA9PiAgU2lsaWNvbiBHcmFwaGljcyAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45cmMyKQogIG1ha2VmaWxlLnN1bm9zICAgID0+ICBTdW4gbWFrZWZpbGUKLSBtYWtlZmlsZS5zb2xhcmlzICA9PiAgU29sYXJpcyAyLlggbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGE5KQorIG1ha2VmaWxlLnNvbGFyaXMgID0+ICBTb2xhcmlzIDIuWCBtYWtlZmlsZSAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45cmMyKQogIG1ha2VmaWxlLnNjbyAgICAgID0+ICBGb3IgU0NPIE9TcjUgIEVMRiBhbmQgVW5peHdhcmUgNyB3aXRoIE5hdGl2ZSBjYwogIG1ha2VmaWxlLm1pcHMgICAgID0+ICBNSVBTIG1ha2VmaWxlCiAgbWFrZWZpbGUuYWNvcm4gICAgPT4gIEFjb3JuIG1ha2VmaWxlCmRpZmYgLS1naXQgYS9MSUNFTlNFIGIvTElDRU5TRQppbmRleCBmZTkwMzM2Li5hOTk1MGIyIDEwMDY0NAotLS0gYS9MSUNFTlNFCisrKyBiL0xJQ0VOU0UKQEAgLTgsNyArOCw3IEBACiBJZiB5b3UgbW9kaWZ5IGxpYnBuZyB5b3UgbWF5IGluc2VydCBhZGRpdGlvbmFsIG5vdGljZXMgaW1tZWRpYXRlbHkgZm9sbG93aW5nCiB0aGlzIHNlbnRlbmNlLgogCi1saWJwbmcgdmVyc2lvbnMgMS4wLjcsIEp1bHkgMSwgMjAwMCwgdGhyb3VnaCAxLjAuOWJldGE5LCBKYW51YXJ5IDE1LCAyMDAxLCBhcmUKK2xpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoIDEuMC45cmMyLCBKYW51YXJ5IDIyLCAyMDAxLCBhcmUKIENvcHlyaWdodCAoYykgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KIGFuZCBhcmUgZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzYW1lIGRpc2NsYWltZXIgYW5kIGxpY2Vuc2UgYXMgbGlicG5nLTEuMC42CiB3aXRoIHRoZSBmb2xsb3dpbmcgaW5kaXZpZHVhbHMgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgQ29udHJpYnV0aW5nIEF1dGhvcnMKQEAgLTk5LDQgKzk5LDQgQEAKIAogR2xlbm4gUmFuZGVycy1QZWhyc29uCiByYW5kZWdAYWx1bS5ycGkuZWR1Ci1KYW51YXJ5IDE1LCAyMDAxCitKYW51YXJ5IDIyLCAyMDAxCmRpZmYgLS1naXQgYS9SRUFETUUgYi9SRUFETUUKaW5kZXggYWRiOGNjZC4uZDQzNzFiMiAxMDA2NDQKLS0tIGEvUkVBRE1FCisrKyBiL1JFQURNRQpAQCAtMSw0ICsxLDQgQEAKLVJFQURNRSBmb3IgbGlicG5nIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxIChzaGFyZWQgbGlicmFyeSAyLjEpCitSRUFETUUgZm9yIGxpYnBuZyAxLjAuOXJjMiAtIEphbnVhcnkgMjIsIDIwMDEgKHNoYXJlZCBsaWJyYXJ5IDIuMSkKIFNlZSB0aGUgbm90ZSBhYm91dCB2ZXJzaW9uIG51bWJlcnMgbmVhciB0aGUgdG9wIG9mIHBuZy5oCiAKIFNlZSBJTlNUQUxMIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGluc3RhbGwgbGlicG5nLgpAQCAtMTgyLDkgKzE4Miw5IEBACiAgICAgICAgZGVzY3JpcC5tbXMgICAgICA9PiAgVk1TIG1ha2VmaWxlIGZvciBNTVMgb3IgTU1LCiAgICAgICAgbWFrZWZpbGUuc3RkICAgICA9PiAgR2VuZXJpYyBVTklYIG1ha2VmaWxlIChjYywgY3JlYXRlcyBzdGF0aWMgbGlicG5nLmEpCiAgICAgICAgbWFrZWZpbGUubGludXggICA9PiAgTGludXgvRUxGIG1ha2VmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGE5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4wLjlyYzIpCiAgICAgICAgbWFrZWZpbGUuZ2NtbXggICA9PiAgTGludXgvRUxGIG1ha2VmaWxlIChnY2MsIGNyZWF0ZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJwbmcuc28uMi4xLjAuOWJldGE5LCB1c2VzIGFzc2VtYmxlciBjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicG5nLnNvLjIuMS4wLjlyYzIsIHVzZXMgYXNzZW1ibGVyIGNvZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dW5lZCBmb3IgSW50ZWwgTU1YIHBsYXRmb3JtKQogICAgICAgIG1ha2VmaWxlLmdjYyAgICAgPT4gIEdlbmVyaWMgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBzdGF0aWMgbGlicG5nLmEpCiAgICAgICAgbWFrZWZpbGUua25yICAgICA9PiAgQXJjaGFpYyBVTklYIE1ha2VmaWxlIHRoYXQgY29udmVydHMgZmlsZXMgd2l0aApAQCAtMTk5LDEwICsxOTksMTAgQEAKICAgICAgICBsaWJwbmcuaWNjICAgICAgID0+ICBQcm9qZWN0IGZpbGUsIElCTSBWaXN1YWxBZ2UvQysrIDQuMCBvciBsYXRlcgogICAgICAgIG1ha2VmaWxlLm1hY29zeCAgPT4gIE1BQ09TIFggTWFrZWZpbGUKICAgICAgICBtYWtlZmlsZS5zZ2kgICAgID0+ICBTaWxpY29uIEdyYXBoaWNzIElSSVggKGNjLCBjcmVhdGVzIHN0YXRpYyBsaWIpCi0gICAgICAgbWFrZWZpbGUuc2dnY2MgICA9PiAgU2lsaWNvbiBHcmFwaGljcyAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45YmV0YTkpCisgICAgICAgbWFrZWZpbGUuc2dnY2MgICA9PiAgU2lsaWNvbiBHcmFwaGljcyAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45cmMyKQogICAgICAgIG1ha2VmaWxlLnN1bm9zICAgPT4gIFN1biBtYWtlZmlsZQogICAgICAgIG1ha2VmaWxlLnNvbGFyaXMgPT4gIFNvbGFyaXMgMi5YIG1ha2VmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGE5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4wLjlyYzIpCiAgICAgICAgbWFrZWZpbGUuc2NvICAgICA9PiAgRm9yIFNDTyBPU3I1ICBFTEYgYW5kIFVuaXh3YXJlIDcgd2l0aCBOYXRpdmUgY2MKICAgICAgICBtYWtlZmlsZS5taXBzICAgID0+ICBNSVBTIG1ha2VmaWxlCiAgICAgICAgbWFrZWZpbGUuYWNvcm4gICA9PiAgQWNvcm4gbWFrZWZpbGUKZGlmZiAtLWdpdCBhL1kyS0lORk8gYi9ZMktJTkZPCmluZGV4IDhlNTZlZmEuLjdjMDU4ZjYgMTAwNjQ0Ci0tLSBhL1kyS0lORk8KKysrIGIvWTJLSU5GTwpAQCAtMSwxMyArMSwxMyBAQAogICAgWTJLIGNvbXBsaWFuY2UgaW4gbGlicG5nOgogICAgPT09PT09PT09PT09PT09PT09PT09PT09PQogCi0gICAgICBKYW51YXJ5IDE1LCAyMDAxCisgICAgICBKYW51YXJ5IDIyLCAyMDAxCiAKICAgICAgIFNpbmNlIHRoZSBQTkcgRGV2ZWxvcG1lbnQgZ3JvdXAgaXMgYW4gYWQtaG9jIGJvZHksIHdlIGNhbid0IG1ha2UKICAgICAgIGFuIG9mZmljaWFsIGRlY2xhcmF0aW9uLgogCiAgICAgICBUaGlzIGlzIHlvdXIgdW5vZmZpY2lhbCBhc3N1cmFuY2UgdGhhdCBsaWJwbmcgZnJvbSB2ZXJzaW9uIDAuNzEgYW5kCi0gICAgICB1cHdhcmQgdGhyb3VnaCAxLjAuOWJldGE5IGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgorICAgICAgdXB3YXJkIHRocm91Z2ggMS4wLjlyYzIgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCiAgICAgICB2ZXJzaW9ucyB3ZXJlIGFsc28gWTJLIGNvbXBsaWFudC4KIAogICAgICAgTGlicG5nIG9ubHkgaGFzIHRocmVlIHllYXIgZmllbGRzLiAgT25lIGlzIGEgMi1ieXRlIHVuc2lnbmVkIGludGVnZXIKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCA2MTViMTRjLi43NzUyYTg3IDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xLDUgKzEsNSBAQAogZWNobyAiCi0gIFRoZXJlIGlzIG5vIFwiY29uZmlndXJlXCIgc2NyaXB0IGZvciBMaWJwbmctMS4wLjliZXRhOS4gIEluc3RlYWQsIHBsZWFzZQorICBUaGVyZSBpcyBubyBcImNvbmZpZ3VyZVwiIHNjcmlwdCBmb3IgTGlicG5nLTEuMC45cmMyLiAgSW5zdGVhZCwgcGxlYXNlCiAgIGNvcHkgdGhlIGFwcHJvcHJpYXRlIG1ha2VmaWxlIGZvciB5b3VyIHN5c3RlbSBmcm9tIHRoZSBcInNjcmlwdHNcIgogICBkaXJlY3RvcnkuICBSZWFkIHRoZSBJTlNUQUxMIGZpbGUgZm9yIG1vcmUgZGV0YWlscy4KICIKZGlmZiAtLWdpdCBhL2xpYnBuZy4zIGIvbGlicG5nLjMKaW5kZXggZTNhZDA0YS4uNzY5ZDM3OSAxMDA2NDQKLS0tIGEvbGlicG5nLjMKKysrIGIvbGlicG5nLjMKQEAgLTEsNiArMSw2IEBACi0uVEggTElCUE5HIDMgIkphbnVhcnkgMTUsIDIwMDEiCisuVEggTElCUE5HIDMgIkphbnVhcnkgMjIsIDIwMDEiCiAuU0ggTkFNRQotbGlicG5nIFwtIFBvcnRhYmxlIE5ldHdvcmsgR3JhcGhpY3MgKFBORykgUmVmZXJlbmNlIExpYnJhcnkgMS4wLjliZXRhOQorbGlicG5nIFwtIFBvcnRhYmxlIE5ldHdvcmsgR3JhcGhpY3MgKFBORykgUmVmZXJlbmNlIExpYnJhcnkgMS4wLjlyYzIKIC5TSCBTWU5PUFNJUwogXGZJXGZCCiAKQEAgLTc1OSw3ICs3NTksNyBAQAogLlNIIExJQlBORy5UWFQKIGxpYnBuZy50eHQgLSBBIGRlc2NyaXB0aW9uIG9uIGhvdyB0byB1c2UgYW5kIG1vZGlmeSBsaWJwbmcKIAotIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCisgbGlicG5nIHZlcnNpb24gMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxCiAgVXBkYXRlZCBhbmQgZGlzdHJpYnV0ZWQgYnkgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgPHJhbmRlZ0BhbHVtLnJwaS5lZHU+CiAgQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgpAQCAtMzQ0MSwxMyArMzQ0MSwxMyBAQAogCiAuU0ggVklJSS4gWTJLIENvbXBsaWFuY2UgaW4gbGlicG5nCiAKLUphbnVhcnkgMTUsIDIwMDEKK0phbnVhcnkgMjIsIDIwMDEKIAogU2luY2UgdGhlIFBORyBEZXZlbG9wbWVudCBncm91cCBpcyBhbiBhZC1ob2MgYm9keSwgd2UgY2FuJ3QgbWFrZQogYW4gb2ZmaWNpYWwgZGVjbGFyYXRpb24uCiAKIFRoaXMgaXMgeW91ciB1bm9mZmljaWFsIGFzc3VyYW5jZSB0aGF0IGxpYnBuZyBmcm9tIHZlcnNpb24gMC43MSBhbmQKLXVwd2FyZCB0aHJvdWdoIDEuMC45YmV0YTkgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCit1cHdhcmQgdGhyb3VnaCAxLjAuOXJjMiBhcmUgWTJLIGNvbXBsaWFudC4gIEl0IGlzIG15IGJlbGllZiB0aGF0IGVhcmxpZXIKIHZlcnNpb25zIHdlcmUgYWxzbyBZMksgY29tcGxpYW50LgogCiBMaWJwbmcgb25seSBoYXMgdGhyZWUgeWVhciBmaWVsZHMuICBPbmUgaXMgYSAyLWJ5dGUgdW5zaWduZWQgaW50ZWdlciB0aGF0CkBAIC0zNTg4LDcgKzM1ODgsNyBAQAogCiBUaGFua3MgdG8gRnJhbmsgSi4gVC4gV29qY2lrIGZvciBoZWxwaW5nIHdpdGggdGhlIGRvY3VtZW50YXRpb24uCiAKLUxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxOgorTGlicG5nIHZlcnNpb24gMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxOgogSW5pdGlhbGx5IGNyZWF0ZWQgaW4gMTk5NSBieSBHdXkgRXJpYyBTY2hhbG5hdCwgdGhlbiBvZiBHcm91cCA0MiwgSW5jLgogQ3VycmVudGx5IG1haW50YWluZWQgYnkgR2xlbm4gUmFuZGVycy1QZWhyc29uIChyYW5kZWdAYWx1bS5ycGkuZWR1KS4KIApAQCAtMzYwNSw3ICszNjA1LDcgQEAKIElmIHlvdSBtb2RpZnkgbGlicG5nIHlvdSBtYXkgaW5zZXJ0IGFkZGl0aW9uYWwgbm90aWNlcyBpbW1lZGlhdGVseSBmb2xsb3dpbmcKIHRoaXMgc2VudGVuY2UuCiAKLWxpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoICAxLjAuOWJldGE5LCBKYW51YXJ5IDE1LCAyMDAxLCBhcmUKK2xpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoICAxLjAuOXJjMiwgSmFudWFyeSAyMiwgMjAwMSwgYXJlCiBDb3B5cmlnaHQgKGMpIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uLCBhbmQgYXJlCiBkaXN0cmlidXRlZCBhY2NvcmRpbmcgdG8gdGhlIHNhbWUgZGlzY2xhaW1lciBhbmQgbGljZW5zZSBhcyBsaWJwbmctMS4wLjYKIHdpdGggdGhlIGZvbGxvd2luZyBpbmRpdmlkdWFscyBhZGRlZCB0byB0aGUgbGlzdCBvZiBDb250cmlidXRpbmcgQXV0aG9ycwpAQCAtMzY5Niw3ICszNjk2LDcgQEAKIAogR2xlbm4gUmFuZGVycy1QZWhyc29uCiByYW5kZWdAYWx1bS5ycGkuZWR1Ci1KYW51YXJ5IDE1LCAyMDAxCitKYW51YXJ5IDIyLCAyMDAxCiAKIC5cIiBlbmQgb2YgbWFuIHBhZ2UKIApkaWZmIC0tZ2l0IGEvbGlicG5nLnR4dCBiL2xpYnBuZy50eHQKaW5kZXggNzM1NDIxYS4uMGU1MTJkOCAxMDA2NDQKLS0tIGEvbGlicG5nLnR4dAorKysgYi9saWJwbmcudHh0CkBAIC0xLDYgKzEsNiBAQAogbGlicG5nLnR4dCAtIEEgZGVzY3JpcHRpb24gb24gaG93IHRvIHVzZSBhbmQgbW9kaWZ5IGxpYnBuZwogCi0gbGlicG5nIHZlcnNpb24gMS4wLjliZXRhOSAtIEphbnVhcnkgMTUsIDIwMDEKKyBsaWJwbmcgdmVyc2lvbiAxLjAuOXJjMiAtIEphbnVhcnkgMjIsIDIwMDEKICBVcGRhdGVkIGFuZCBkaXN0cmlidXRlZCBieSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICA8cmFuZGVnQGFsdW0ucnBpLmVkdT4KICBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCkBAIC0yNjgyLDEzICsyNjgyLDEzIEBACiAKIFZJSUkuIFkySyBDb21wbGlhbmNlIGluIGxpYnBuZwogCi1KYW51YXJ5IDE1LCAyMDAxCitKYW51YXJ5IDIyLCAyMDAxCiAKIFNpbmNlIHRoZSBQTkcgRGV2ZWxvcG1lbnQgZ3JvdXAgaXMgYW4gYWQtaG9jIGJvZHksIHdlIGNhbid0IG1ha2UKIGFuIG9mZmljaWFsIGRlY2xhcmF0aW9uLgogCiBUaGlzIGlzIHlvdXIgdW5vZmZpY2lhbCBhc3N1cmFuY2UgdGhhdCBsaWJwbmcgZnJvbSB2ZXJzaW9uIDAuNzEgYW5kCi11cHdhcmQgdGhyb3VnaCAxLjAuOWJldGE5IGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgordXB3YXJkIHRocm91Z2ggMS4wLjlyYzIgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCiB2ZXJzaW9ucyB3ZXJlIGFsc28gWTJLIGNvbXBsaWFudC4KIAogTGlicG5nIG9ubHkgaGFzIHRocmVlIHllYXIgZmllbGRzLiAgT25lIGlzIGEgMi1ieXRlIHVuc2lnbmVkIGludGVnZXIgdGhhdApkaWZmIC0tZ2l0IGEvbGlicG5ncGYuMyBiL2xpYnBuZ3BmLjMKaW5kZXggMjQ1MWRmMC4uYWFlMmQ3OSAxMDA2NDQKLS0tIGEvbGlicG5ncGYuMworKysgYi9saWJwbmdwZi4zCkBAIC0xLDYgKzEsNiBAQAotLlRIIExJQlBOR1BGIDMgIkphbnVhcnkgMTUsIDIwMDEiCisuVEggTElCUE5HUEYgMyAiSmFudWFyeSAyMiwgMjAwMSIKIC5TSCBOQU1FCi1saWJwbmcgXC0gUG9ydGFibGUgTmV0d29yayBHcmFwaGljcyAoUE5HKSBSZWZlcmVuY2UgTGlicmFyeSAxLjAuOWJldGE5CitsaWJwbmcgXC0gUG9ydGFibGUgTmV0d29yayBHcmFwaGljcyAoUE5HKSBSZWZlcmVuY2UgTGlicmFyeSAxLjAuOXJjMgogKHByaXZhdGUgZnVuY3Rpb25zKQogLlNIIFNZTk9QU0lTCiBcZkIjaW5jbHVkZSA8cG5nLmg+XGZQCmRpZmYgLS1naXQgYS9wbmcuNSBiL3BuZy41CmluZGV4IDk2MTdiN2MuLjUxZTYxM2IgMTAwNjQ0Ci0tLSBhL3BuZy41CisrKyBiL3BuZy41CkBAIC0xLDQgKzEsNCBAQAotLlRIIFBORyA1ICJKYW51YXJ5IDE1LCAyMDAxIgorLlRIIFBORyA1ICJKYW51YXJ5IDIyLCAyMDAxIgogLlNIIE5BTUUKIHBuZyBcLSBQb3J0YWJsZSBOZXR3b3JrIEdyYXBoaWNzIChQTkcpIGZvcm1hdAogLlNIIERFU0NSSVBUSU9OCmRpZmYgLS1naXQgYS9wbmcuYyBiL3BuZy5jCmluZGV4IDI2OTE1M2IuLmVkMjk1YmUgMTAwNjQ0Ci0tLSBhL3BuZy5jCisrKyBiL3BuZy5jCkBAIC0xLDggKzEsOCBAQAogCiAvKiBwbmcuYyAtIGxvY2F0aW9uIGZvciBnZW5lcmFsIHB1cnBvc2UgbGlicG5nIGZ1bmN0aW9ucwogICoKLSAqIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBsaWJwbmcgdmVyc2lvbiAxLjAuOXJjMiAtIEphbnVhcnkgMjIsIDIwMDEKKyAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCiAgKiAoVmVyc2lvbiAwLjg4IENvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy4pCiAgKgpAQCAtMTMsMTQgKzEzLDE0IEBACiAjaW5jbHVkZSAicG5nLmgiCiAKIC8qIEdlbmVyYXRlIGEgY29tcGlsZXIgZXJyb3IgaWYgdGhlcmUgaXMgYW4gb2xkIHBuZy5oIGluIHRoZSBzZWFyY2ggcGF0aC4gKi8KLXR5cGVkZWYgdmVyc2lvbl8xXzBfOWJldGE5IFlvdXJfcG5nX2hfaXNfbm90X3ZlcnNpb25fMV8wXzliZXRhOTsKK3R5cGVkZWYgdmVyc2lvbl8xXzBfOXJjMiBZb3VyX3BuZ19oX2lzX25vdF92ZXJzaW9uXzFfMF85cmMyOwogCiAvKiBWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBDIGZpbGVzLiAgVGhpcyBoYWQgYmV0dGVyIG1hdGNoIHRoZSB2ZXJzaW9uCiAgKiBzdHJpbmcgZGVmaW5lZCBpbiBwbmcuaC4gICovCiAKICNpZmRlZiBQTkdfVVNFX0dMT0JBTF9BUlJBWVMKIC8qIHBuZ19saWJwbmdfdmVyIHdhcyBjaGFuZ2VkIHRvIGEgZnVuY3Rpb24gaW4gdmVyc2lvbiAxLjAuNWMgKi8KLWNvbnN0IGNoYXIgcG5nX2xpYnBuZ192ZXJbMThdID0gIjEuMC45YmV0YTkiOworY29uc3QgY2hhciBwbmdfbGlicG5nX3ZlclsxOF0gPSAiMS4wLjlyYzIiOwogCiAvKiBwbmdfc2lnIHdhcyBjaGFuZ2VkIHRvIGEgZnVuY3Rpb24gaW4gdmVyc2lvbiAxLjAuNWMgKi8KIC8qIFBsYWNlIHRvIGhvbGQgdGhlIHNpZ25hdHVyZSBzdHJpbmcgZm9yIGEgUE5HIGZpbGUuICovCkBAIC02MjYsNyArNjI2LDcgQEAKIHBuZ19nZXRfY29weXJpZ2h0KHBuZ19zdHJ1Y3RwIHBuZ19wdHIpCiB7CiAgICBpZiAocG5nX3B0ciAhPSBOVUxMIHx8IHBuZ19wdHIgPT0gTlVMTCkgIC8qIHNpbGVuY2UgY29tcGlsZXIgd2FybmluZyAqLwotICAgcmV0dXJuICgocG5nX2NoYXJwKSAiXG4gbGlicG5nIHZlcnNpb24gMS4wLjliZXRhOSAtIEphbnVhcnkgMTUsIDIwMDFcblwKKyAgIHJldHVybiAoKHBuZ19jaGFycCkgIlxuIGxpYnBuZyB2ZXJzaW9uIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMVxuXAogICAgQ29weXJpZ2h0IChjKSAxOTk4LTIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uXG5cCiAgICBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXJcblwKICAgIENvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy5cbiIpOwpAQCAtNjQ0LDggKzY0NCw4IEBACiB7CiAgICAvKiBWZXJzaW9uIG9mICouYyBmaWxlcyB1c2VkIHdoZW4gYnVpbGRpbmcgbGlicG5nICovCiAgICBpZihwbmdfcHRyICE9IE5VTEwpIC8qIHNpbGVuY2UgY29tcGlsZXIgd2FybmluZyBhYm91dCB1bnVzZWQgcG5nX3B0ciAqLwotICAgICAgcmV0dXJuKChwbmdfY2hhcnApICIxLjAuOWJldGE5Iik7Ci0gICByZXR1cm4oKHBuZ19jaGFycCkgIjEuMC45YmV0YTkiKTsKKyAgICAgIHJldHVybigocG5nX2NoYXJwKSAiMS4wLjlyYzIiKTsKKyAgIHJldHVybigocG5nX2NoYXJwKSAiMS4wLjlyYzIiKTsKIH0KIAogcG5nX2NoYXJwIFBOR0FQSQpAQCAtNjk5LDYgKzY5OSw3IEBACiB9CiAKIAorI2lmIDAgLyogZGVsYXkgdGhpcyB1bnRpbCB2ZXJzaW9uIDEuMi4wICovCiAvKiB0aGlzIGZ1bmN0aW9uIHdhcyBhZGRlZCB0byBsaWJwbmcgMS4wLjkgKHBvcnRpbmcgYWlkIHRvIGxpYnBuZy0xLjIuMCkgKi8KICNpZm5kZWYgUE5HX0FTU0VNQkxFUl9DT0RFX1NVUFBPUlRFRAogaW50IFBOR0FQSQpAQCAtNzA3LDMgKzcwOCw0IEBACiAgICAgcmV0dXJuIC0xOwogfQogI2VuZGlmCisjZW5kaWYgLyogMCAqLwpkaWZmIC0tZ2l0IGEvcG5nLmggYi9wbmcuaAppbmRleCBkZDZjNzI1Li4xZGJmZDRkIDEwMDY0NAotLS0gYS9wbmcuaAorKysgYi9wbmcuaApAQCAtMSwxNSArMSwxNSBAQAogCiAvKiBwbmcuaCAtIGhlYWRlciBmaWxlIGZvciBQTkcgcmVmZXJlbmNlIGxpYnJhcnkKICAqCi0gKiBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQotICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgorICogbGlicG5nIHZlcnNpb24gMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQogICoKICAqIEF1dGhvcnMgYW5kIG1haW50YWluZXJzOgogICogIGxpYnBuZyB2ZXJzaW9ucyAwLjcxLCBNYXkgMTk5NSwgdGhyb3VnaCAwLjg4LCBKYW51YXJ5IDE5OTY6IEd1eSBTY2hhbG5hdAogICogIGxpYnBuZyB2ZXJzaW9ucyAwLjg5YywgSnVuZSAxOTk2LCB0aHJvdWdoIDAuOTYsIE1heSAxOTk3OiBBbmRyZWFzIERpbGdlcgotICogIGxpYnBuZyB2ZXJzaW9ucyAwLjk3LCBKYW51YXJ5IDE5OTgsIHRocm91Z2ggMS4wLjliZXRhOSAtIEphbnVhcnkgMTUsIDIwMDE6IEdsZW5uCisgKiAgbGlicG5nIHZlcnNpb25zIDAuOTcsIEphbnVhcnkgMTk5OCwgdGhyb3VnaCAxLjAuOXJjMiAtIEphbnVhcnkgMjIsIDIwMDE6IEdsZW5uCiAgKiAgU2VlIGFsc28gIkNvbnRyaWJ1dGluZyBBdXRob3JzIiwgYmVsb3cuCiAgKgogICogTm90ZSBhYm91dCBsaWJwbmcgdmVyc2lvbiBudW1iZXJzOgpAQCAtNTIsMjAgKzUyLDIyIEBACiAgKiAgICAxLjAuNmggICAgICAgICAgICAgICAgICAgICAgICAxMDAwNyAgMTAuNmggKHRlc3RpbmcgeHkueiBzby1udW1iZXJpbmcpCiAgKiAgICAxLjAuNmkgICAgICAgICAgICAgICAgICAgICAgICAxMDAwNyAgMTAuNmkKICAqICAgIDEuMC42aiAgICAgICAgICAgICAgICAgICAgICAgIDEwMDA3ICAyLjEuMC42aiAoaW5jb21wYXRpYmxlIHdpdGggMS4wLjApCi0gKiAgICAxLjAuN2JldGExMS0xOCAgICAgICAgICAgICAgICAxMDAwNyAgMi4xLjAuN2JldGExMS0xOCAoYmluYXJ5IGNvbXBhdGlibGUpCi0gKiAgICAxLjAuN3JjMS0yICAgICAgICAgICAgICAgICAgICAxMDAwNyAgMi4xLjAuN3JjMS0yIChiaW5hcnkgY29tcGF0aWJsZSkKLSAqICAgIDEuMC43ICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDA3ICAoc3RpbGwgY29tcGF0aWJsZSkKLSAqICAgIDEuMC44YmV0YTEtNCAgICAgICAgICAgICAgICAgIDEwMDA4ICAyLjEuMC44YmV0YTEtNAotICogICAgMS4wLjhyYzEgICAgICAgICAgICAgICAgICAgICAgMTAwMDggIDIuMS4wLjhyYzEKLSAqICAgIDEuMC44ICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDA4ICAyLjEuMC44Ci0gKiAgICAxLjAuOWJldGExLTYgICAgICAgICAgICAgICAgICAxMDAwOSAgMi4xLjAuOWJldGExLTYKLSAqICAgIDEuMC45cmMxICAgICAgICAgICAgICAgICAgICAgIDEwMDA5ICAyLjEuMC45cmMxCi0gKiAgICAxLjAuOWJldGE3LTkgICAgICAgICAgICAgICAgICAxMDAwOSAgMi4xLjAuOWJldGE3LTkKKyAqICAgIDEuMC43YmV0YTExLTE0ICAgICAgICBETExOVU0gIDEwMDA3ICAyLjEuMC43YmV0YTExLTE0IChiaW5hcnkgY29tcGF0aWJsZSkKKyAqICAgIDEuMC43YmV0YTE1LTE4ICAgICAgICAgICAxICAgIDEwMDA3ICAyLjEuMC43YmV0YTE1LTE4IChiaW5hcnkgY29tcGF0aWJsZSkKKyAqICAgIDEuMC43cmMxLTIgICAgICAgICAgICAgICAxICAgIDEwMDA3ICAyLjEuMC43cmMxLTIgKGJpbmFyeSBjb21wYXRpYmxlKQorICogICAgMS4wLjcgICAgICAgICAgICAgICAgICAgIDEgICAgMTAwMDcgIChzdGlsbCBjb21wYXRpYmxlKQorICogICAgMS4wLjhiZXRhMS00ICAgICAgICAgICAgIDEgICAgMTAwMDggIDIuMS4wLjhiZXRhMS00CisgKiAgICAxLjAuOHJjMSAgICAgICAgICAgICAgICAgMSAgICAxMDAwOCAgMi4xLjAuOHJjMQorICogICAgMS4wLjggICAgICAgICAgICAgICAgICAgIDEgICAgMTAwMDggIDIuMS4wLjgKKyAqICAgIDEuMC45YmV0YTEtNiAgICAgICAgICAgICAxICAgIDEwMDA5ICAyLjEuMC45YmV0YTEtNgorICogICAgMS4wLjlyYzEgICAgICAgICAgICAgICAgIDEgICAgMTAwMDkgIDIuMS4wLjlyYzEKKyAqICAgIDEuMC45YmV0YTctMTAgICAgICAgICAgICAxICAgIDEwMDA5ICAyLjEuMC45YmV0YTctMTAKKyAqICAgIDEuMC45cmMyICAgICAgICAgICAgICAgICAxICAgIDEwMDA5ICAyLjEuMC45cmMyCiAgKgogICogICAgSGVuY2Vmb3J0aCB0aGUgc291cmNlIHZlcnNpb24gd2lsbCBtYXRjaCB0aGUgc2hhcmVkLWxpYnJhcnkgbWFqb3IKICAqICAgIGFuZCBtaW5vciBudW1iZXJzOyB0aGUgc2hhcmVkLWxpYnJhcnkgbWFqb3IgdmVyc2lvbiBudW1iZXIgd2lsbCBiZQogICogICAgdXNlZCBmb3IgY2hhbmdlcyBpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBhcyBpdCBpcyBpbnRlbmRlZC4gIFRoZQotICogICAgUE5HX1BOR0xJQl9WRVIgbWFjcm8sIHdoaWNoIGlzIG5vdCB1c2VkIHdpdGhpbiBsaWJwbmcgYnV0IGlzIGF2YWlsYWJsZQorICogICAgUE5HX0xJQlBOR19WRVIgbWFjcm8sIHdoaWNoIGlzIG5vdCB1c2VkIHdpdGhpbiBsaWJwbmcgYnV0IGlzIGF2YWlsYWJsZQogICogICAgZm9yIGFwcGxpY2F0aW9ucywgaXMgYW4gdW5zaWduZWQgaW50ZWdlciBvZiB0aGUgZm9ybSB4eXl6eiBjb3JyZXNwb25kaW5nCiAgKiAgICB0byB0aGUgc291cmNlIHZlcnNpb24geC55LnogKGxlYWRpbmcgemVyb3MgaW4geSBhbmQgeikuICBCZXRhIHZlcnNpb25zCiAgKiAgICB3ZXJlIGdpdmVuIHRoZSBwcmV2aW91cyBwdWJsaWMgcmVsZWFzZSBudW1iZXIgcGx1cyBhIGxldHRlciwgdW50aWwKQEAgLTc2LDYgKzc4LDkgQEAKICAqICAgIHRvIHRoZSBpbmZvX3B0ciBvciBwbmdfcHRyIG1lbWJlcnMgdGhyb3VnaCBwbmcuaCwgYW5kIHRoZSBjb21waWxlZAogICogICAgYXBwbGljYXRpb24gaXMgbG9hZGVkIHdpdGggYSBkaWZmZXJlbnQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeS4KICAqCisgKiAgICBETExOVU0gd2lsbCBjaGFuZ2UgZWFjaCB0aW1lIHRoZXJlIGFyZSBmb3J3YXJkIG9yIGJhY2t3YXJkIGNoYW5nZXMKKyAqICAgIGluIGJpbmFyeSBjb21wYXRpYmlsaXR5IChlLmcuLCB3aGVuIGEgbmV3IGZlYXR1cmUgaXMgYWRkZWQpLgorICoKICAqIFNlZSBsaWJwbmcudHh0IG9yIGxpYnBuZy4zIGZvciBtb3JlIGluZm9ybWF0aW9uLiAgVGhlIFBORyBzcGVjaWZpY2F0aW9uCiAgKiBpcyBhdmFpbGFibGUgYXMgUkZDIDIwODMgPGZ0cDovL2Z0cC51dS5uZXQvZ3JhcGhpY3MvcG5nL2RvY3VtZW50cy8+CiAgKiBhbmQgYXMgYSBXM0MgUmVjb21tZW5kYXRpb24gPGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy5wbmcuaHRtbD4KQEAgLTg3LDcgKzkyLDcgQEAKICAqIElmIHlvdSBtb2RpZnkgbGlicG5nIHlvdSBtYXkgaW5zZXJ0IGFkZGl0aW9uYWwgbm90aWNlcyBpbW1lZGlhdGVseSBmb2xsb3dpbmcKICAqIHRoaXMgc2VudGVuY2UuCiAgKgotICogbGlicG5nIHZlcnNpb25zIDEuMC43LCBKdWx5IDEsIDIwMDAsIHRocm91Z2ggIDEuMC45YmV0YTksIEphbnVhcnkgMTUsIDIwMDEsIGFyZQorICogbGlicG5nIHZlcnNpb25zIDEuMC43LCBKdWx5IDEsIDIwMDAsIHRocm91Z2ggIDEuMC45cmMyLCBKYW51YXJ5IDIyLCAyMDAxLCBhcmUKICAqIENvcHlyaWdodCAoYykgMjAwMCwgMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24sIGFuZCBhcmUKICAqIGRpc3RyaWJ1dGVkIGFjY29yZGluZyB0byB0aGUgc2FtZSBkaXNjbGFpbWVyIGFuZCBsaWNlbnNlIGFzIGxpYnBuZy0xLjAuNgogICogd2l0aCB0aGUgZm9sbG93aW5nIGluZGl2aWR1YWxzIGFkZGVkIHRvIHRoZSBsaXN0IG9mIENvbnRyaWJ1dGluZyBBdXRob3JzCkBAIC0xOTIsMTMgKzE5NywxMyBAQAogICogWTJLIGNvbXBsaWFuY2UgaW4gbGlicG5nOgogICogPT09PT09PT09PT09PT09PT09PT09PT09PQogICoKLSAqICAgIEphbnVhcnkgMTUsIDIwMDEKKyAqICAgIEphbnVhcnkgMjIsIDIwMDEKICAqCiAgKiAgICBTaW5jZSB0aGUgUE5HIERldmVsb3BtZW50IGdyb3VwIGlzIGFuIGFkLWhvYyBib2R5LCB3ZSBjYW4ndCBtYWtlCiAgKiAgICBhbiBvZmZpY2lhbCBkZWNsYXJhdGlvbi4KICAqCiAgKiAgICBUaGlzIGlzIHlvdXIgdW5vZmZpY2lhbCBhc3N1cmFuY2UgdGhhdCBsaWJwbmcgZnJvbSB2ZXJzaW9uIDAuNzEgYW5kCi0gKiAgICB1cHdhcmQgdGhyb3VnaCAxLjAuOWJldGE5IGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgorICogICAgdXB3YXJkIHRocm91Z2ggMS4wLjlyYzIgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCiAgKiAgICB2ZXJzaW9ucyB3ZXJlIGFsc28gWTJLIGNvbXBsaWFudC4KICAqCiAgKiAgICBMaWJwbmcgb25seSBoYXMgdGhyZWUgeWVhciBmaWVsZHMuICBPbmUgaXMgYSAyLWJ5dGUgdW5zaWduZWQgaW50ZWdlcgpAQCAtMjU0LDkgKzI1OSwxMCBAQAogICovCiAKIC8qIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIHBuZy5oIC0gdGhpcyBzaG91bGQgbWF0Y2ggdGhlIHZlcnNpb24gaW4gcG5nLmMgKi8KLSNkZWZpbmUgUE5HX0xJQlBOR19WRVJfU1RSSU5HICIxLjAuOWJldGE5IgorI2RlZmluZSBQTkdfTElCUE5HX1ZFUl9TVFJJTkcgIjEuMC45cmMyIgogCiAjZGVmaW5lIFBOR19MSUJQTkdfVkVSX1NPTlVNICAgMgorI2RlZmluZSBQTkdfTElCUE5HX1ZFUl9ETExOVU0gICVETExOVU0lCiAKIC8qIFRoZXNlIHNob3VsZCBtYXRjaCB0aGUgZmlyc3QgMyBjb21wb25lbnRzIG9mIFBOR19MSUJQTkdfVkVSX1NUUklORzogKi8KICNkZWZpbmUgUE5HX0xJQlBOR19WRVJfTUFKT1IgICAxCkBAIC0yNjUsNyArMjcxLDcgQEAKIC8qIFRoaXMgc2hvdWxkIG1hdGNoIHRoZSBudW1lcmljIHBhcnQgb2YgdGhlIGZpbmFsIGNvbXBvbmVudCBvZgogICogUE5HX0xJQlBOR19WRVJfU1RSSU5HLCBvbWl0dGluZyBhbnkgbGVhZGluZyB6ZXJvOiAqLwogCi0jZGVmaW5lIFBOR19MSUJQTkdfVkVSX0JVSUxEICA5CisjZGVmaW5lIFBOR19MSUJQTkdfVkVSX0JVSUxEICAyCiAKICNkZWZpbmUgUE5HX0xJQlBOR19CVUlMRF9BTFBIQSAgICAxCiAjZGVmaW5lIFBOR19MSUJQTkdfQlVJTERfQkVUQSAgICAgMgpAQCAtMjczLDcgKzI3OSw3IEBACiAjZGVmaW5lIFBOR19MSUJQTkdfQlVJTERfU1RBQkxFICAgNAogI2RlZmluZSBQTkdfTElCUE5HX0JVSUxEX1RZUEVNQVNLIDcKICNkZWZpbmUgUE5HX0xJQlBOR19CVUlMRF9QQVRDSCAgICA4IC8qIENhbiBiZSBPUidlZCB3aXRoIFNUQUJMRSBvbmx5ICovCi0jZGVmaW5lIFBOR19MSUJQTkdfQlVJTERfVFlQRSAyCisjZGVmaW5lIFBOR19MSUJQTkdfQlVJTERfVFlQRSAzCiAKIC8qIENhcmVmdWwgaGVyZS4gIEF0IG9uZSB0aW1lLCBHdXkgd2FudGVkIHRvIHVzZSAwODIsIGJ1dCB0aGF0IHdvdWxkIGJlIG9jdGFsLgogICogV2UgbXVzdCBub3QgaW5jbHVkZSBsZWFkaW5nIHplcm9zLgpAQCAtMTE3Miw5ICsxMTc4LDkgQEAKIAogCiAvKiBUaGlzIHByZXZlbnRzIGEgY29tcGlsZXIgZXJyb3IgaW4gcG5nX2dldF9jb3B5cmlnaHQoKSBpbiBwbmcuYyBpZiBwbmcuYwotYW5kIHBuZy5oIGFyZSBib3RoIGF0ICogdmVyc2lvbiAxLjAuOWJldGE5CithbmQgcG5nLmggYXJlIGJvdGggYXQgKiB2ZXJzaW9uIDEuMC45cmMyCiAgKi8KLXR5cGVkZWYgcG5nX3N0cnVjdHAgdmVyc2lvbl8xXzBfOWJldGE5OwordHlwZWRlZiBwbmdfc3RydWN0cCB2ZXJzaW9uXzFfMF85cmMyOwogCiB0eXBlZGVmIHBuZ19zdHJ1Y3QgRkFSICogRkFSICogcG5nX3N0cnVjdHBwOwogCkBAIC0yMjE0LDEzICsyMjIwLDE1IEBACiAgICBwbmdfcHRyLCBwbmdfdWludF8zMiBtbmdfZmVhdHVyZXNfcGVybWl0dGVkKSk7CiAjZW5kaWYKIAorI2lmIDAgLyogZGVsYXkgdGhlc2UgdW50aWwgdmVyc2lvbiAxLjIuMCAqLwogLyogcG5nLmMsIHBuZ2djY3JkLmMsIG9yIHBuZ3ZjcmQuYyAqLwogZXh0ZXJuIFBOR19FWFBPUlQoaW50LHBuZ19tbXhfc3VwcG9ydCkgUE5HQVJHKCh2b2lkKSk7CisjZW5kaWYKIAogLyogTWFpbnRhaW5lcjogUHV0IG5ldyBwdWJsaWMgcHJvdG90eXBlcyBoZXJlIF4sIGluIGxpYnBuZy4zLCBhbmQgcHJvamVjdCBkZWZzICovCiAKICNkZWZpbmUgUE5HX0hFQURFUl9WRVJTSU9OX1NUUklORyBcCi0gICAiIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxIChoZWFkZXIpXG4iCisgICAiIGxpYnBuZyB2ZXJzaW9uIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMSAoaGVhZGVyKVxuIgogCiAjaWZkZWYgUE5HX1JFQURfQ09NUE9TSVRFX05PRElWX1NVUFBPUlRFRAogLyogV2l0aCB0aGVzZSByb3V0aW5lcyB3ZSBhdm9pZCBhbiBpbnRlZ2VyIGRpdmlkZSwgd2hpY2ggd2lsbCBiZSBzbG93ZXIgb24KZGlmZiAtLWdpdCBhL3BuZ2FzbXJkLmggYi9wbmdhc21yZC5oCmluZGV4IGZhOWJlOTguLjAzMGU3MWQgMTAwNjQ0Ci0tLSBhL3BuZ2FzbXJkLmgKKysrIGIvcG5nYXNtcmQuaApAQCAtMSw2ICsxLDYgQEAKIC8qIHBuZ2FzbXJkLmggLSBhc3NlbWJsZXIgdmVyc2lvbiBvZiB1dGlsaXRpZXMgdG8gcmVhZCBhIFBORyBmaWxlCiAgKgotICogbGlicG5nIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCisgKiBsaWJwbmcgMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqCmRpZmYgLS1naXQgYS9wbmdjb25mLmggYi9wbmdjb25mLmgKaW5kZXggNGVjNjc1Zi4uZTA5OTU0MyAxMDA2NDQKLS0tIGEvcG5nY29uZi5oCisrKyBiL3BuZ2NvbmYuaApAQCAtMSw4ICsxLDggQEAKIC8qIHBuZ2NvbmYuaCAtIG1hY2hpbmUgY29uZmlndXJhYmxlIGZpbGUgZm9yIGxpYnBuZwogICoKLSAqIGxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorICogbGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQogICovCkBAIC00OTMsMTEgKzQ5MywxMyBAQAogIyAgZW5kaWYKICNlbmRpZgogCi0vKiBEaXNhYmxlIGlmIHlvdSBkb24ndCBuZWVkIHRvIHN1cHBvcnQgUE5HcyB0aGF0IGFyZSBlbWJlZGRlZCBpbiBNTkcKKy8qIEVuYWJsZSBpZiB5b3UgbmVlZCB0byBzdXBwb3J0IFBOR3MgdGhhdCBhcmUgZW1iZWRkZWQgaW4gTU5HCiAgICBkYXRhc3RyZWFtcyAqLworLyoKICNpZm5kZWYgUE5HX05PX01OR19GRUFUVVJFUwogIyAgZGVmaW5lIFBOR19NTkdfRkVBVFVSRVNfU1VQUE9SVEVECiAjZW5kaWYKKyovCiAKIC8qIERlcHJlY2F0ZWQsIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHZlcnNpb24gMi4wLjAgKi8KICNpZm5kZWYgUE5HX05PX1JFQURfRU1QVFlfUExURQpAQCAtOTg0LDExICs5ODYsMTUgQEAKIHR5cGVkZWYgUE5HX0NPTlNUIGNoYXIgIEZBUiAqIHBuZ19jb25zdF9jaGFycDsKIHR5cGVkZWYgY2hhciAgICAgICAgICAgIEZBUiAqIHBuZ19jaGFycDsKIHR5cGVkZWYgcG5nX2ZpeGVkX3BvaW50IEZBUiAqIHBuZ19maXhlZF9wb2ludF9wOworCisjaWZuZGVmIFBOR19OT19TVERJTwogI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKIHR5cGVkZWYgSEFORExFICAgICAgICAgICAgICAgIHBuZ19GSUxFX3A7CiAjZWxzZQogdHlwZWRlZiBGSUxFICAgICAgICAgICAgICAgICogcG5nX0ZJTEVfcDsKICNlbmRpZgorI2VuZGlmCisKICNpZmRlZiBQTkdfRkxPQVRJTkdfUE9JTlRfU1VQUE9SVEVECiB0eXBlZGVmIGRvdWJsZSAgICAgICAgICBGQVIgKiBwbmdfZG91YmxlcDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvcG5nZXJyb3IuYyBiL3BuZ2Vycm9yLmMKaW5kZXggMDNhMGY4My4uYTA5N2ZiNiAxMDA2NDQKLS0tIGEvcG5nZXJyb3IuYworKysgYi9wbmdlcnJvci5jCkBAIC0xLDkgKzEsOSBAQAogCiAvKiBwbmdlcnJvci5jIC0gc3R1YiBmdW5jdGlvbnMgZm9yIGkvbyBhbmQgbWVtb3J5IGFsbG9jYXRpb24KICAqCi0gKiBsaWJwbmcgMS4wLjliZXRhOSAtIEphbnVhcnkgMTUsIDIwMDEKKyAqIGxpYnBuZyAxLjAuOXJjMiAtIEphbnVhcnkgMjIsIDIwMDEKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAotICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgorICogQ29weXJpZ2h0IChjKSAxOTk4LTIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKICAqIChWZXJzaW9uIDAuODggQ29weXJpZ2h0IChjKSAxOTk1LCAxOTk2IEd1eSBFcmljIFNjaGFsbmF0LCBHcm91cCA0MiwgSW5jLikKICAqCmRpZmYgLS1naXQgYS9wbmdnY2NyZC5jIGIvcG5nZ2NjcmQuYwppbmRleCA5ZGNmODM2Li4yOTZiNTc2IDEwMDY0NAotLS0gYS9wbmdnY2NyZC5jCisrKyBiL3BuZ2djY3JkLmMKQEAgLTYsOSArNiw5IEBACiAgKiAgICAgYW5kIGh0dHA6Ly93d3cuaW50ZWwuY29tL2RyZy9wZW50aXVtSUkvYXBwbm90ZXMvOTIzLzkyMy5odG0KICAqICAgICBmb3IgSW50ZWwncyBwZXJmb3JtYW5jZSBhbmFseXNpcyBvZiB0aGUgTU1YIHZzLiBub24tTU1YIGNvZGUuCiAgKgotICogbGlicG5nIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCisgKiBsaWJwbmcgMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKLSAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KKyAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogQ29weXJpZ2h0IChjKSAxOTk4LCBJbnRlbCBDb3Jwb3JhdGlvbgogICoKICAqIEJhc2VkIG9uIE1TVkMgY29kZSBjb250cmlidXRlZCBieSBOaXJhdiBDaGhhdHJhcGF0aSwgSW50ZWwgQ29ycC4sIDE5OTguCkBAIC00OTY1LDkgKzQ5NjUsNiBAQAogLy8gICAgICAgICAgICAgIGVhY2ggaW5saW5lZCBpbnN0YW5jZSwgZS5nLiwgYnkgYXBwZW5kaW5nIF8xLCBfMiwgZXRjLj8KIC8vICAgICAgICAgICAgICBtYXliZSBpZiBkb24ndCB1c2UgbGVhZGluZyAiLiIgaW4gbGFiZWwgbmFtZT8gKG5vcGUuLi5zaWdoKV0KIAotLy8gR1JSIFRPIERPOiAgbWFrZSBzdXJlIFBOR0FQSSBkb2Vzbid0IGRvL3JlcXVpcmUgYW55dGhpbmcgc2NyZXd5IGhlcmUKLS8vICAgICAgICAgICAgIFtsb29rcyBPSyBmb3IgZXZlcnlib2R5IGV4Y2VwdCBwb3NzaWJseSBDeWd3aW4gKF9fY2RlY2wpXQotCiBpbnQgUE5HQVBJCiBwbmdfbW14X3N1cHBvcnQodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3BuZ2dldC5jIGIvcG5nZ2V0LmMKaW5kZXggZGJiMTBmOC4uYjAzNzcyNiAxMDA2NDQKLS0tIGEvcG5nZ2V0LmMKKysrIGIvcG5nZ2V0LmMKQEAgLTEsOSArMSw5IEBACiAKIC8qIHBuZ2dldC5jIC0gcmV0cmlldmFsIG9mIHZhbHVlcyBmcm9tIGluZm8gc3RydWN0CiAgKgotICogbGlicG5nIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCisgKiBsaWJwbmcgMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKLSAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KKyAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCiAgKiAoVmVyc2lvbiAwLjg4IENvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy4pCiAgKi8KZGlmZiAtLWdpdCBhL3BuZ21lbS5jIGIvcG5nbWVtLmMKaW5kZXggOTY0NDNiNS4uYjFkMTgzNiAxMDA2NDQKLS0tIGEvcG5nbWVtLmMKKysrIGIvcG5nbWVtLmMKQEAgLTEsOSArMSw5IEBACiAKIC8qIHBuZ21lbS5jIC0gc3R1YiBmdW5jdGlvbnMgZm9yIG1lbW9yeSBhbGxvY2F0aW9uCiAgKgotICogbGlicG5nIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCisgKiBsaWJwbmcgMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKLSAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KKyAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCiAgKiAoVmVyc2lvbiAwLjg4IENvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy4pCiAgKgpkaWZmIC0tZ2l0IGEvcG5ncHJlYWQuYyBiL3BuZ3ByZWFkLmMKaW5kZXggZDFlOGI3NS4uNjliMTE1ZiAxMDA2NDQKLS0tIGEvcG5ncHJlYWQuYworKysgYi9wbmdwcmVhZC5jCkBAIC0xLDkgKzEsOSBAQAogCiAvKiBwbmdwcmVhZC5jIC0gcmVhZCBhIHBuZyBmaWxlIGluIHB1c2ggbW9kZQogICoKLSAqIGxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorICogbGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQogICovCkBAIC03ODYsOSArNzg2LDkgQEAKICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA4ICYmIHBuZ19wdHItPnBhc3MgPT0gMDsgaSsrKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcG5nX3B1c2hfaGF2ZV9yb3cocG5nX3B0ciwgcG5nX3B0ci0+cm93X2J1ZiArIDEpOwotICAgICAgICAgICAgICAgcG5nX3JlYWRfcHVzaF9maW5pc2hfcm93KHBuZ19wdHIpOworICAgICAgICAgICAgICAgcG5nX3JlYWRfcHVzaF9maW5pc2hfcm93KHBuZ19wdHIpOyAvKiB1cGRhdGVzIHBuZ19wdHItPnBhc3MgKi8KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChwbmdfcHRyLT5wYXNzID09IDIpCisgICAgICAgICAgICBpZiAocG5nX3B0ci0+cGFzcyA9PSAyKSAvKiBwYXNzIDEgbWlnaHQgYmUgZW1wdHkgKi8KICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA0ICYmIHBuZ19wdHItPnBhc3MgPT0gMjsgaSsrKQogICAgICAgICAgICAgICAgewpAQCAtODA2LDcgKzgwNiw3IEBACiAgICAgICAgICAgICAgICBwbmdfcHVzaF9oYXZlX3JvdyhwbmdfcHRyLCBwbmdfcHRyLT5yb3dfYnVmICsgMSk7CiAgICAgICAgICAgICAgICBwbmdfcmVhZF9wdXNoX2ZpbmlzaF9yb3cocG5nX3B0cik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocG5nX3B0ci0+cGFzcyA9PSAyKQorICAgICAgICAgICAgaWYgKHBuZ19wdHItPnBhc3MgPT0gMikgLyogc2tpcCB0b3AgNCBnZW5lcmF0ZWQgcm93cyAqLwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDQgJiYgcG5nX3B0ci0+cGFzcyA9PSAyOyBpKyspCiAgICAgICAgICAgICAgICB7CkBAIC04MjksNyArODI5LDcgQEAKICAgICAgICAgICAgICAgIHBuZ19wdXNoX2hhdmVfcm93KHBuZ19wdHIsIE5VTEwpOwogICAgICAgICAgICAgICAgcG5nX3JlYWRfcHVzaF9maW5pc2hfcm93KHBuZ19wdHIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHBuZ19wdHItPnBhc3MgPT0gNCkKKyAgICAgICAgICAgIGlmIChwbmdfcHRyLT5wYXNzID09IDQpIC8qIHBhc3MgMyBtaWdodCBiZSBlbXB0eSAqLwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDIgJiYgcG5nX3B0ci0+cGFzcyA9PSA0OyBpKyspCiAgICAgICAgICAgICAgICB7CkBAIC04NDcsNyArODQ3LDcgQEAKICAgICAgICAgICAgICAgIHBuZ19wdXNoX2hhdmVfcm93KHBuZ19wdHIsIHBuZ19wdHItPnJvd19idWYgKyAxKTsKICAgICAgICAgICAgICAgIHBuZ19yZWFkX3B1c2hfZmluaXNoX3JvdyhwbmdfcHRyKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChwbmdfcHRyLT5wYXNzID09IDQpCisgICAgICAgICAgICBpZiAocG5nX3B0ci0+cGFzcyA9PSA0KSAvKiBza2lwIHRvcCB0d28gZ2VuZXJhdGVkIHJvd3MgKi8KICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAyICYmIHBuZ19wdHItPnBhc3MgPT0gNDsgaSsrKQogICAgICAgICAgICAgICAgewpAQCAtODcwLDcgKzg3MCw3IEBACiAgICAgICAgICAgICAgICBwbmdfcHVzaF9oYXZlX3JvdyhwbmdfcHRyLCBOVUxMKTsKICAgICAgICAgICAgICAgIHBuZ19yZWFkX3B1c2hfZmluaXNoX3JvdyhwbmdfcHRyKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChwbmdfcHRyLT5wYXNzID09IDYpCisgICAgICAgICAgICBpZiAocG5nX3B0ci0+cGFzcyA9PSA2KSAvKiBwYXNzIDUgbWlnaHQgYmUgZW1wdHkgKi8KICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHBuZ19wdXNoX2hhdmVfcm93KHBuZ19wdHIsIE5VTEwpOwogICAgICAgICAgICAgICAgcG5nX3JlYWRfcHVzaF9maW5pc2hfcm93KHBuZ19wdHIpOwpAQCAtODg1LDcgKzg4NSw3IEBACiAgICAgICAgICAgICAgICBwbmdfcHVzaF9oYXZlX3JvdyhwbmdfcHRyLCBwbmdfcHRyLT5yb3dfYnVmICsgMSk7CiAgICAgICAgICAgICAgICBwbmdfcmVhZF9wdXNoX2ZpbmlzaF9yb3cocG5nX3B0cik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocG5nX3B0ci0+cGFzcyA9PSA2KQorICAgICAgICAgICAgaWYgKHBuZ19wdHItPnBhc3MgPT0gNikgLyogc2tpcCB0b3AgZ2VuZXJhdGVkIHJvdyAqLwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcG5nX3B1c2hfaGF2ZV9yb3cocG5nX3B0ciwgTlVMTCk7CiAgICAgICAgICAgICAgICBwbmdfcmVhZF9wdXNoX2ZpbmlzaF9yb3cocG5nX3B0cik7CmRpZmYgLS1naXQgYS9wbmdyZWFkLmMgYi9wbmdyZWFkLmMKaW5kZXggNzcxYjY3Yy4uZGUxOWM5MiAxMDA2NDQKLS0tIGEvcG5ncmVhZC5jCisrKyBiL3BuZ3JlYWQuYwpAQCAtMSw5ICsxLDkgQEAKIAogLyogcG5ncmVhZC5jIC0gcmVhZCBhIFBORyBmaWxlCiAgKgotICogbGlicG5nIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCisgKiBsaWJwbmcgMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKLSAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KKyAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCiAgKiAoVmVyc2lvbiAwLjg4IENvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy4pCiAgKgpAQCAtNzE1LDcgKzcxNSw3IEBACiAgKiBub3QgY2FsbGVkIHBuZ19zZXRfaW50ZXJsYWNlX2hhbmRsaW5nKCksIHRoZSBkaXNwbGF5X3JvdyBidWZmZXIgd2lsbAogICogYmUgaWdub3JlZCwgc28gcGFzcyBOVUxMIHRvIGl0LgogICoKLSAqIFsqXSBwbmdfaGFuZGxlX2FscGhhKCkgZG9lcyBub3QgZXhpc3QgeWV0LCBhcyBvZiBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGE5CisgKiBbKl0gcG5nX2hhbmRsZV9hbHBoYSgpIGRvZXMgbm90IGV4aXN0IHlldCwgYXMgb2YgbGlicG5nIHZlcnNpb24gMS4wLjlyYzIKICAqLwogCiB2b2lkIFBOR0FQSQpAQCAtNzY0LDcgKzc2NCw3IEBACiAgKiBvbmx5IGNhbGwgdGhpcyBmdW5jdGlvbiBvbmNlLiAgSWYgeW91IGRlc2lyZSB0byBoYXZlIGFuIGltYWdlIGZvcgogICogZWFjaCBwYXNzIG9mIGEgaW50ZXJsYWNlZCBpbWFnZSwgdXNlIHBuZ19yZWFkX3Jvd3MoKSBpbnN0ZWFkLgogICoKLSAqIFsqXSBwbmdfaGFuZGxlX2FscGhhKCkgZG9lcyBub3QgZXhpc3QgeWV0LCBhcyBvZiBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGE5CisgKiBbKl0gcG5nX2hhbmRsZV9hbHBoYSgpIGRvZXMgbm90IGV4aXN0IHlldCwgYXMgb2YgbGlicG5nIHZlcnNpb24gMS4wLjlyYzIKICAqLwogdm9pZCBQTkdBUEkKIHBuZ19yZWFkX2ltYWdlKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19ieXRlcHAgaW1hZ2UpCmRpZmYgLS1naXQgYS9wbmdyaW8uYyBiL3BuZ3Jpby5jCmluZGV4IGNmNzI5YmEuLjNlYTIzYWYgMTAwNjQ0Ci0tLSBhL3BuZ3Jpby5jCisrKyBiL3BuZ3Jpby5jCkBAIC0xLDkgKzEsOSBAQAogCiAvKiBwbmdyaW8uYyAtIGZ1bmN0aW9ucyBmb3IgZGF0YSBpbnB1dAogICoKLSAqIGxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorICogbGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQogICoKZGlmZiAtLWdpdCBhL3BuZ3J0cmFuLmMgYi9wbmdydHJhbi5jCmluZGV4IDZjNTZjMWQuLjhlNWJiMTQgMTAwNjQ0Ci0tLSBhL3BuZ3J0cmFuLmMKKysrIGIvcG5ncnRyYW4uYwpAQCAtMSw5ICsxLDkgQEAKIAogLyogcG5ncnRyYW4uYyAtIHRyYW5zZm9ybXMgdGhlIGRhdGEgaW4gYSByb3cgZm9yIFBORyByZWFkZXJzCiAgKgotICogbGlicG5nIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCisgKiBsaWJwbmcgMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKLSAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KKyAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCiAgKiAoVmVyc2lvbiAwLjg4IENvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy4pCiAgKgpkaWZmIC0tZ2l0IGEvcG5ncnV0aWwuYyBiL3BuZ3J1dGlsLmMKaW5kZXggN2Q4YWRlZS4uZmJhMTIzNyAxMDA2NDQKLS0tIGEvcG5ncnV0aWwuYworKysgYi9wbmdydXRpbC5jCkBAIC0xLDkgKzEsOSBAQAogCiAvKiBwbmdydXRpbC5jIC0gdXRpbGl0aWVzIHRvIHJlYWQgYSBQTkcgZmlsZQogICoKLSAqIGxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorICogbGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQogICoKZGlmZiAtLWdpdCBhL3BuZ3NldC5jIGIvcG5nc2V0LmMKaW5kZXggZjlhYWQxYS4uNGQxMjJjMyAxMDA2NDQKLS0tIGEvcG5nc2V0LmMKKysrIGIvcG5nc2V0LmMKQEAgLTEsOSArMSw5IEBACiAKIC8qIHBuZ3NldC5jIC0gc3RvcmFnZSBvZiBpbWFnZSBpbmZvcm1hdGlvbiBpbnRvIGluZm8gc3RydWN0CiAgKgotICogbGlicG5nIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCisgKiBsaWJwbmcgMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKLSAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KKyAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCiAgKiAoVmVyc2lvbiAwLjg4IENvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy4pCiAgKgpkaWZmIC0tZ2l0IGEvcG5ndGVzdC5jIGIvcG5ndGVzdC5jCmluZGV4IGE5ZTE2NGQuLmY3ZTRkMjEgMTAwNjQ0Ci0tLSBhL3BuZ3Rlc3QuYworKysgYi9wbmd0ZXN0LmMKQEAgLTEsOSArMSw5IEBACiAKIC8qIHBuZ3Rlc3QuYyAtIGEgc2ltcGxlIHRlc3QgcHJvZ3JhbSB0byB0ZXN0IGxpYnBuZwogICoKLSAqIGxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorICogbGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQogICoKQEAgLTUwLDYgKzUwLDE0IEBACiAjICBkZWZpbmUgRkNMT1NFKGZpbGUpIGZjbG9zZShmaWxlKQogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKFBOR19OT19TVERJTykKKyNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCit0eXBlZGVmIEhBTkRMRSAgICAgICAgICAgICAgICBwbmdfRklMRV9wOworI2Vsc2UKK3R5cGVkZWYgRklMRSAgICAgICAgICAgICAgICAqIHBuZ19GSUxFX3A7CisjZW5kaWYKKyNlbmRpZgorCiAvKiBNYWtlcyBwbmd0ZXN0IHZlcmJvc2Ugc28gd2UgY2FuIGZpbmQgcHJvYmxlbXMgKG5lZWRzIHRvIGJlIGJlZm9yZSBwbmcuaCkgKi8KICNpZm5kZWYgUE5HX0RFQlVHCiAjZGVmaW5lIFBOR19ERUJVRyAwCkBAIC0yNTcsNiArMjY1LDcgQEAKICAgIG5vdCByZWFkaW5nIGZyb20gYSBzdGFuZGFyZCBDIHN0cmVhbSwgeW91IHNob3VsZCBjcmVhdGUgYSByZXBsYWNlbWVudAogICAgcmVhZF9kYXRhIGZ1bmN0aW9uIGFuZCB1c2UgaXQgYXQgcnVuIHRpbWUgd2l0aCBwbmdfc2V0X3JlYWRfZm4oKSwgcmF0aGVyCiAgICB0aGFuIGNoYW5naW5nIHRoZSBsaWJyYXJ5LiAqLworCiAjaWZuZGVmIFVTRV9GQVJfS0VZV09SRAogc3RhdGljIHZvaWQKIHBuZ3Rlc3RfcmVhZF9kYXRhKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19ieXRlcCBkYXRhLCBwbmdfc2l6ZV90IGxlbmd0aCkKQEAgLTE0NDksNCArMTQ1OCw0IEBACiB9CiAKIC8qIEdlbmVyYXRlIGEgY29tcGlsZXIgZXJyb3IgaWYgdGhlcmUgaXMgYW4gb2xkIHBuZy5oIGluIHRoZSBzZWFyY2ggcGF0aC4gKi8KLXR5cGVkZWYgdmVyc2lvbl8xXzBfOWJldGE5IHlvdXJfcG5nX2hfaXNfbm90X3ZlcnNpb25fMV8wXzliZXRhOTsKK3R5cGVkZWYgdmVyc2lvbl8xXzBfOXJjMiB5b3VyX3BuZ19oX2lzX25vdF92ZXJzaW9uXzFfMF85cmMyOwpkaWZmIC0tZ2l0IGEvcG5ndHJhbnMuYyBiL3BuZ3RyYW5zLmMKaW5kZXggNDA1ZTEzMS4uOTJlNWUyZSAxMDA2NDQKLS0tIGEvcG5ndHJhbnMuYworKysgYi9wbmd0cmFucy5jCkBAIC0xLDkgKzEsOSBAQAogCiAvKiBwbmd0cmFucy5jIC0gdHJhbnNmb3JtcyB0aGUgZGF0YSBpbiBhIHJvdyAodXNlZCBieSBib3RoIHJlYWRlcnMgYW5kIHdyaXRlcnMpCiAgKgotICogbGlicG5nIDEuMC45YmV0YTkgLSBKYW51YXJ5IDE1LCAyMDAxCisgKiBsaWJwbmcgMS4wLjlyYzIgLSBKYW51YXJ5IDIyLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKLSAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KKyAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCiAgKiAoVmVyc2lvbiAwLjg4IENvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy4pCiAgKi8KZGlmZiAtLWdpdCBhL3BuZ3ZjcmQuYyBiL3BuZ3ZjcmQuYwppbmRleCA1MDI3ZDkwLi43MDgwNTBkIDEwMDY0NAotLS0gYS9wbmd2Y3JkLmMKKysrIGIvcG5ndmNyZC5jCkBAIC0yLDkgKzIsOSBAQAogICoKICAqIEZvciBJbnRlbCB4ODYgQ1BVIGFuZCBNaWNyb3NvZnQgVmlzdWFsIEMrKyBjb21waWxlcgogICoKLSAqIGxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorICogbGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIENvcHlyaWdodCAoYykgMTk5OCwgSW50ZWwgQ29ycG9yYXRpb24KICAqCiAgKiBDb250cmlidXRlZCBieSBOaXJhdiBDaGhhdHJhcGF0aSwgSW50ZWwgQ29ycG9yYXRpb24sIDE5OTgKZGlmZiAtLWdpdCBhL3BuZ3dpby5jIGIvcG5nd2lvLmMKaW5kZXggMGMxODIzNi4uMGQ4ZWEzMCAxMDA2NDQKLS0tIGEvcG5nd2lvLmMKKysrIGIvcG5nd2lvLmMKQEAgLTEsOSArMSw5IEBACiAKIC8qIHBuZ3dpby5jIC0gZnVuY3Rpb25zIGZvciBkYXRhIG91dHB1dAogICoKLSAqIGxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorICogbGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQogICoKZGlmZiAtLWdpdCBhL3BuZ3dyaXRlLmMgYi9wbmd3cml0ZS5jCmluZGV4IGI1ZDQ1N2YuLjcyM2ZkMDcgMTAwNjQ0Ci0tLSBhL3BuZ3dyaXRlLmMKKysrIGIvcG5nd3JpdGUuYwpAQCAtMSw5ICsxLDkgQEAKIAogLyogcG5nd3JpdGUuYyAtIGdlbmVyYWwgcm91dGluZXMgdG8gd3JpdGUgYSBQTkcgZmlsZQogICoKLSAqIGxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorICogbGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQogICovCmRpZmYgLS1naXQgYS9wbmd3dHJhbi5jIGIvcG5nd3RyYW4uYwppbmRleCBmM2FkNjM0Li44Zjc2NjdjIDEwMDY0NAotLS0gYS9wbmd3dHJhbi5jCisrKyBiL3BuZ3d0cmFuLmMKQEAgLTEsOSArMSw5IEBACiAKIC8qIHBuZ3d0cmFuLmMgLSB0cmFuc2Zvcm1zIHRoZSBkYXRhIGluIGEgcm93IGZvciBQTkcgd3JpdGVycwogICoKLSAqIGxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorICogbGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQogICovCmRpZmYgLS1naXQgYS9wbmd3dXRpbC5jIGIvcG5nd3V0aWwuYwppbmRleCA4MGFmNTZlLi44MGMzNWVlIDEwMDY0NAotLS0gYS9wbmd3dXRpbC5jCisrKyBiL3BuZ3d1dGlsLmMKQEAgLTEsOSArMSw5IEBACiAKIC8qIHBuZ3d1dGlsLmMgLSB1dGlsaXRpZXMgdG8gd3JpdGUgYSBQTkcgZmlsZQogICoKLSAqIGxpYnBuZyAxLjAuOWJldGE5IC0gSmFudWFyeSAxNSwgMjAwMQorICogbGlicG5nIDEuMC45cmMyIC0gSmFudWFyeSAyMiwgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCisgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQogICovCmRpZmYgLS1naXQgYS9wcm9qZWN0cy9tc3ZjL1JFQURNRS50eHQgYi9wcm9qZWN0cy9tc3ZjL1JFQURNRS50eHQKaW5kZXggOTMwOTRiMy4uMDEzYjI0MiAxMDA2NDQKLS0tIGEvcHJvamVjdHMvbXN2Yy9SRUFETUUudHh0CisrKyBiL3Byb2plY3RzL21zdmMvUkVBRE1FLnR4dApAQCAtMSw1ICsxLDUgQEAKIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIEJ1aWxkIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDYuMDAgZm9yCi1saWJwbmcgMS4wLjliZXRhOSAoSmFudWFyeSAxNSwgMjAwMSkgYW5kIHpsaWIKK2xpYnBuZyAxLjAuOXJjMiAoSmFudWFyeSAyMiwgMjAwMSkgYW5kIHpsaWIKIAogQ29weXJpZ2h0IChDKSAyMDAwIFNpbW9uLVBpZXJyZSBDYWRpZXV4CiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKQEAgLTI1LDkgKzI1LDkgQEAKIGxpYnBuZyBhbmQgemxpYiBsaWJyYXJpZXM6CiAKICAgIGxpYnBuZzEuZGxsICAgICAgICAgIChkZWZhdWx0IHZlcnNpb24sIGN1cnJlbnRseSBDIGNvZGUgb25seSkKLSAgIGxpYnBuZzFhLmRsbCAgICAgICAgIChDICsgQXNzZW1ibGVyIHZlcnNpb24pCi0gICBsaWJwbmcxYi5kbGwgICAgICAgICAoQyArIEFzc2VtYmxlciBkZWJ1ZyB2ZXJzaW9uKQotICAgbGlicG5nMWQuZGxsICAgICAgICAgKEMgY29kZSBkZWJ1ZyB2ZXJzaW9uKQorICAgbGlicG5nMS5kbGwgICAgICAgICAoQyArIEFzc2VtYmxlciB2ZXJzaW9uKQorICAgbGlicG5nMS5kbGwgICAgICAgICAoQyArIEFzc2VtYmxlciBkZWJ1ZyB2ZXJzaW9uKQorICAgbGlicG5nMS5kbGwgICAgICAgICAoQyBjb2RlIGRlYnVnIHZlcnNpb24pCiAgICBsaWJwbmcxW2MsZS1tXS5kbGwgICAocmVzZXJ2ZWQgZm9yIG9mZmljaWFsIHZlcnNpb25zKSAKICAgIGxpYnBuZzFbbi16XS5kbGwgICAgIChhdmFpbGFibGUgZm9yIHByaXZhdGUgdmVyc2lvbnMpCiAgICB6bGliLmRsbCAgICAgICAgICAgICAoZGVmYXVsdCB2ZXJzaW9uLCBjdXJyZW50bHkgQyBjb2RlIG9ubHkpCmRpZmYgLS1naXQgYS9wcm9qZWN0cy9tc3ZjL3BuZzMybXMuZGVmIGIvcHJvamVjdHMvbXN2Yy9wbmczMm1zLmRlZgppbmRleCA4ZTUxYjI2Li42Mzg1NjFiIDEwMDY0NAotLS0gYS9wcm9qZWN0cy9tc3ZjL3BuZzMybXMuZGVmCisrKyBiL3Byb2plY3RzL21zdmMvcG5nMzJtcy5kZWYKQEAgLTYsNyArNiw3IEBACiBERVNDUklQVElPTiAiUE5HIGltYWdlIGNvbXByZXNzaW9uIGxpYnJhcnkgZm9yIFdpbmRvd3MiCiAKIEVYUE9SVFMKLTtWZXJzaW9uIDEuMC45YmV0YTkKKztWZXJzaW9uIDEuMC45cmMyCiAgIHBuZ19idWlsZF9ncmF5c2NhbGVfcGFsZXR0ZSAgQDEKICAgcG5nX2NoZWNrX3NpZyAgICAgICAgQDIKICAgcG5nX2NodW5rX2Vycm9yICAgICAgQDMKQEAgLTE3Niw4ICsxNzYsMTEgQEAKICAgcG5nX3dyaXRlX2luaXRfMiAgICBAMTY3CiAgIHBuZ19hY2Nlc3NfdmVyc2lvbl9udW1iZXIgIEAxNjgKIDsgIHBuZ19zaWdfYnl0ZXMgICAgQDE2OQotICBwbmdfbGlicG5nX3ZlciAgICBAMTcwCis7ICBwbmdfbGlicG5nX3ZlciAgICBAMTcwCiAgIHBuZ19pbml0X2lvICAgIEAxNzEKICAgcG5nX2NvbnZlcnRfdG9fcmZjMTEyMyAgICAgQDE3MgogICBwbmdfc2V0X2ludmFsaWQgIEAxNzMKLSAgcG5nX21teF9zdXBwb3J0ZWQgIEAxNzQKKztUbyBiZSBhZGRlZCBhdCB2ZXJzaW9uIDEuMi4wCis7IHBuZ19wZXJtaXRfbW5nX2ZlYXR1cmVzICBAMTc0Cis7VG8gYmUgYWRkZWQgYXQgdmVyc2lvbiAxLjIuMAorOyBwbmdfbW14X3N1cHBvcnQgIEAxNzUKZGlmZiAtLWdpdCBhL3Byb2plY3RzL3dpbmNlL1JFQURNRUUuV0NFIGIvcHJvamVjdHMvd2luY2UvUkVBRE1FRS5XQ0UKaW5kZXggYjZmNDkyMi4uYjIxZDcxZiAxMDA2NDQKLS0tIGEvcHJvamVjdHMvd2luY2UvUkVBRE1FRS5XQ0UKKysrIGIvcHJvamVjdHMvd2luY2UvUkVBRE1FRS5XQ0UKQEAgLTgsOSArOCw5IEBACiAKIEludHJvZHVjdGlvbgogPT09PT09PT09PT09Ci1UaGlzIGlzIGxpYnBuZyAxLjAuOWJldGE5IHBvcnRlZCB0byBXaW5kb3dzQ0UgMi4wIGFuZCAyLjExLgotbGlicG5nIDEuMC45YmV0YTkgaXMgYSBQTkcgcmVmZXJlbmNlIGxpYnJhcnkuCi1TZWUgUkVBRE1FLCBhIGRvY3VtZW50IG9mIG9yaWdpbmFsIGxpYnBuZyAxLjAuOWJldGE5LgorVGhpcyBpcyBsaWJwbmcgMS4wLjlyYzIgcG9ydGVkIHRvIFdpbmRvd3NDRSAyLjAgYW5kIDIuMTEuCitsaWJwbmcgMS4wLjlyYzIgaXMgYSBQTkcgcmVmZXJlbmNlIGxpYnJhcnkuCitTZWUgUkVBRE1FLCBhIGRvY3VtZW50IG9mIG9yaWdpbmFsIGxpYnBuZyAxLjAuOXJjMi4KIAogemxpYiBmb3IgV2luZG93c0NFCiA9PT09PT09PT09PT09PT09PT0KQEAgLTIzLDcgKzIzLDcgQEAKIHdhcnJhbnR5LiAgSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAKLVNlZSBSRUFETUUgYW5kIExJQ0VOU0UsIGRvY3VtZW50cyBvZiBvcmlnaW5hbCBsaWJwbmcgMS4wLjliZXRhOSwgZm9yIGNvbmRpdGlvbnMKK1NlZSBSRUFETUUgYW5kIExJQ0VOU0UsIGRvY3VtZW50cyBvZiBvcmlnaW5hbCBsaWJwbmcgMS4wLjlyYzIsIGZvciBjb25kaXRpb25zCiBvZiB1c2UgYW5kIGRpc3RyaWJ1dGlvbi4KIAogRmlsZXMKZGlmZiAtLWdpdCBhL3Byb2plY3RzL3dpbmNlL1JFQURNRUouV0NFIGIvcHJvamVjdHMvd2luY2UvUkVBRE1FSi5XQ0UKaW5kZXggYTI1YzdhZS4uYTRlMTI5ZCAxMDA2NDQKLS0tIGEvcHJvamVjdHMvd2luY2UvUkVBRE1FSi5XQ0UKKysrIGIvcHJvamVjdHMvd2luY2UvUkVBRE1FSi5XQ0UKQEAgLTI0LDcgKzI0LDcgQEAKIILJgsiCwYK9gqKCqYLIgumU7YpRgsmCwoKigsSC4IFBjeyO0oFBlHqVeo7SgUGCu4LMkbyXmJdwjtKIyIpPgsyQbJWogUEKIJJjkcyCyZDTlEOC8ILGgumLYJaxgs2CyIKiguCCzILGgrWC3IK3gUIKIAotgruCzJG8gUGCsYLMg1yDdINng0WDRoNBgsyXmJdwj/CMj4LJgsKCooLEgs2BQYy0lMWCxYKggukgbGlicG5nIDEuMC45YmV0YTmCyQorgruCzJG8gUGCsYLMg1yDdINng0WDRoNBgsyXmJdwj/CMj4LJgsKCooLEgs2BQYy0lMWCxYKggukgbGlicG5nIDEuMC45cmMygskKII+Ai5KCt4LpguCCzILGgrWC3IK3gUKP2oK1gq2CzYFBlXSRroLMIFJFQURNRSxMSUNFTlNFIILwgqiTx4Ldgq2CvoKzgqKBQgogCiCO+5hek+CXZQpkaWZmIC0tZ2l0IGEvcHJvamVjdHMvd2luY2UvcG5nMzJjZS5kZWYgYi9wcm9qZWN0cy93aW5jZS9wbmczMmNlLmRlZgppbmRleCAwNGRkMjY0Li43M2E1NDYwIDEwMDY0NAotLS0gYS9wcm9qZWN0cy93aW5jZS9wbmczMmNlLmRlZgorKysgYi9wcm9qZWN0cy93aW5jZS9wbmczMmNlLmRlZgpAQCAtNSw3ICs1LDcgQEAKIExJQlJBUlkgbHBuZ2NlCiAKIEVYUE9SVFMKLTtWZXJzaW9uIDEuMC45YmV0YTkKKztWZXJzaW9uIDEuMC45cmMyCiAgIHBuZ19idWlsZF9ncmF5c2NhbGVfcGFsZXR0ZSAgQDEKICAgcG5nX2NoZWNrX3NpZyAgICAgICAgQDIKICAgcG5nX2NodW5rX2Vycm9yICAgICAgQDMKQEAgLTE3OSw0ICsxNzksNyBAQAogICBwbmdfaW5pdF9pbyAgICBAMTcxCiAgIHBuZ19jb252ZXJ0X3RvX3JmYzExMjMgICAgIEAxNzIKICAgcG5nX3NldF9pbnZhbGlkICBAMTczCi0gIHBuZ19tbXhfc3VwcG9ydGVkICBAMTc0Cis7VG8gYmUgYWRkZWQgYXQgdmVyc2lvbiAxLjIuMAorOyBwbmdfcGVybWl0X21uZ19mZWF0dXJlcyAgQDE3NAorO1RvIGJlIGFkZGVkIGF0IHZlcnNpb24gMS4yLjAKKzsgcG5nX21teF9zdXBwb3J0ICBAMTc1CmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLmFpeCBiL3NjcmlwdHMvbWFrZWZpbGUuYWl4CmluZGV4IDRlOTJjMjcuLjg0NThjZjcgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuYWl4CisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuYWl4CkBAIC0xOCw3ICsxOCw3IEBACiAjIHJlYWQgbGlicG5nLnR4dCBvciBwbmcuaCB0byBzZWUgd2h5IFBOR01BSiBpcyAyLiAgWW91IHNob3VsZCBub3QKICMgaGF2ZSB0byBjaGFuZ2UgaXQuCiBQTkdNQUogPSAyCi1QTkdNSU4gPSAxLjAuOWJldGE5CitQTkdNSU4gPSAxLjAuOXJjMgogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiBwcmVmaXg9L3Vzci9sb2NhbApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5iZW9zIGIvc2NyaXB0cy9tYWtlZmlsZS5iZW9zCmluZGV4IDcxMGZhYjMuLmFlMzZlZmQgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuYmVvcworKysgYi9zY3JpcHRzL21ha2VmaWxlLmJlb3MKQEAgLTEwLDYgKzEwLDEyIEBACiBaTElCTElCPS91c3IvbG9jYWwvbGliCiBaTElCSU5DPS91c3IvbG9jYWwvaW5jbHVkZQogCisjIHJlYWQgbGlicG5nLnR4dCBvciBwbmcuaCB0byBzZWUgd2h5IFBOR01BSiBpcyAyLiAgWW91IHNob3VsZCBub3QKKyMgaGF2ZSB0byBjaGFuZ2UgaXQuCitQTkdNQUogPSAyCitQTkdNSU4gPSAxLjAuOXJjMgorUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQorCiBBTElHTj0KICMgRm9yIGkzODY6CiAjIEFMSUdOPS1tYWxpZ24tbG9vcHM9MiAtbWFsaWduLWZ1bmN0aW9ucz0yCkBAIC0yOCwxMiArMzQsNiBAQAogUkFOTElCPXJhbmxpYgogI1JBTkxJQj1lY2hvCiAKLSMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAotIyBoYXZlIHRvIGNoYW5nZSBpdC4KLVBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC45YmV0YTkKLVBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKLQogIyB3aGVyZSBtYWtlIGluc3RhbGwgcHV0cyBsaWJwbmcuYSwgbGlicG5nLnNvKiwgYW5kIHBuZy5oCiBwcmVmaXg9L3Vzci9sb2NhbAogSU5DUEFUSD0kKHByZWZpeCkvaW5jbHVkZQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5jeWd3aW4gYi9zY3JpcHRzL21ha2VmaWxlLmN5Z3dpbgppbmRleCA5MTQ0MDdhLi40NzY4MzVmIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmN5Z3dpbgorKysgYi9zY3JpcHRzL21ha2VmaWxlLmN5Z3dpbgpAQCAtMzgsMTEgKzM4LDEzIEBACiAjIHJlYWQgbGlicG5nLnR4dCBvciBwbmcuaCB0byBzZWUgd2h5IFBOR01BSiBpcyAyLiAgWW91IHNob3VsZCBub3QKICMgaGF2ZSB0byBjaGFuZ2UgaXQuCiBQTkdNQUogPSAyCi1QTkdNSU4gPSAxLjAuOWJldGE5CisjUE5HRExMID0gJERMTE5VTSUgIyBtc3ZjCitQTkdETEwgPSAyICAgICAgICAgIyBjeWd3aW4gMS4wLjlyYzIKK1BOR01JTiA9IDEuMC45cmMyCiBQTkdNSU5fQkFTRSA9IDEuMC45CiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKLVNIQVJFRExJQj1jeWdwbmckKFBOR01BSikuZGxsCitTSEFSRURMSUI9Y3lncG5nJChQTkdETEwpLmRsbAogU1RBVExJQj1saWJwbmcuYQogSU1QTElCPWxpYnBuZy5kbGwuYQogU0hBUkVEREVGPWxpYnBuZy5kZWYKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuZGVjIGIvc2NyaXB0cy9tYWtlZmlsZS5kZWMKaW5kZXggMzdmNjFjOS4uZTcwYjdhMiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5kZWMKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5kZWMKQEAgLTE3LDcgKzE3LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC45YmV0YTkKK1BOR01JTiA9IDEuMC45cmMyCiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKIENDPWNjCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLmdjbW14IGIvc2NyaXB0cy9tYWtlZmlsZS5nY21teAppbmRleCA5NzM5MDJlLi5iYjE2MWJhIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmdjbW14CisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuZ2NtbXgKQEAgLTUxLDcgKzUxLDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC45YmV0YTkKK1BOR01JTiA9IDEuMC45cmMyCiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKIElOQ1BBVEg9JChwcmVmaXgpL2luY2x1ZGUKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuaHB1eCBiL3NjcmlwdHMvbWFrZWZpbGUuaHB1eAppbmRleCA0YzdkMDBjLi5kZmMzYzg1IDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmhwdXgKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5ocHV4CkBAIC0xOCw3ICsxOCw3IEBACiAjIHJlYWQgbGlicG5nLnR4dCBvciBwbmcuaCB0byBzZWUgd2h5IFBOR01BSiBpcyAyLiAgWW91IHNob3VsZCBub3QKICMgaGF2ZSB0byBjaGFuZ2UgaXQuCiBQTkdNQUogPSAyCi1QTkdNSU4gPSAxLjAuOWJldGE5CitQTkdNSU4gPSAxLjAuOXJjMgogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiAjIHdoZXJlIG1ha2UgaW5zdGFsbCBwdXRzIGxpYnBuZy5hIGFuZCBwbmcuaApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5saW51eCBiL3NjcmlwdHMvbWFrZWZpbGUubGludXgKaW5kZXggZDM2Nzg4Yy4uMzRlN2I0ZSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5saW51eAorKysgYi9zY3JpcHRzL21ha2VmaWxlLmxpbnV4CkBAIC0zNCw3ICszNCw3IEBACiAjIHJlYWQgbGlicG5nLnR4dCBvciBwbmcuaCB0byBzZWUgd2h5IFBOR01BSiBpcyAyLiAgWW91IHNob3VsZCBub3QKICMgaGF2ZSB0byBjaGFuZ2UgaXQuCiBQTkdNQUogPSAyCi1QTkdNSU4gPSAxLjAuOWJldGE5CitQTkdNSU4gPSAxLjAuOXJjMgogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiBJTkNQQVRIPSQocHJlZml4KS9pbmNsdWRlCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLnNjbyBiL3NjcmlwdHMvbWFrZWZpbGUuc2NvCmluZGV4IDlhYzQ5YWYuLjhjZTAxMTUgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuc2NvCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuc2NvCkBAIC0yNSw3ICsyNSw3IEBACiAjIHJlYWQgbGlicG5nLnR4dCBvciBwbmcuaCB0byBzZWUgd2h5IFBOR01BSiBpcyAyLiAgWW91IHNob3VsZCBub3QKICMgaGF2ZSB0byBjaGFuZ2UgaXQuCiBQTkdNQUogPSAyCi1QTkdNSU4gPSAxLjAuOWJldGE5CitQTkdNSU4gPSAxLjAuOXJjMgogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiBJTkNQQVRIPSQocHJlZml4KS9pbmNsdWRlCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLnNnZ2NjIGIvc2NyaXB0cy9tYWtlZmlsZS5zZ2djYwppbmRleCA5ZjAzNDY5Li4xMDIxYjZjIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLnNnZ2NjCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuc2dnY2MKQEAgLTE5LDggKzE5LDggQEAKIExERkxBR1M9LUwuIC1MJChaTElCTElCKSAtbHBuZyAtbHogLWxtCiBMRFNIQVJFRD1nY2MgLXNoYXJlZAogCi1WRVI9MS4wLjliZXRhOQotTElCUz1saWJwbmcuc28uMS4wLjliZXRhOQorVkVSPTEuMC45cmMyCitMSUJTPWxpYnBuZy5zby4xLjAuOXJjMgogU0hBUkVETElCPWxpYnBuZy5zbwogbGliZGlyPSQocHJlZml4KS9saWIzMgogCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLnNnaSBiL3NjcmlwdHMvbWFrZWZpbGUuc2dpCmluZGV4IDAxMGY1ZjcuLjQ1ODNhNjAgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuc2dpCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuc2dpCkBAIC0xLDQgKzEsNSBAQAotIyBtYWtlZmlsZSBmb3IgbGlicG5nCisjIG1ha2VmaWxlIGZvciBsaWJwbmcgKC5hIGFuZCAuc28pLCBTR0kgSVJJWCB3aXRoICdjYycKKyMgQ29weXJpZ2h0IChDKSAyMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogIyBDb3B5cmlnaHQgKEMpIDE5OTUgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuCiAjIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogCkBAIC02LDYgKzcsOSBAQAogcHJlZml4PS91c3IvbG9jYWwKIAogIyBXaGVyZSB0aGUgemxpYiBsaWJyYXJ5IGFuZCBpbmNsdWRlIGZpbGVzIGFyZSBsb2NhdGVkCisjIFlvdSBjYW4gYWRkIHRoZSAtbjMyIG9wdGlvbjsgdGhlbiB6bGliIG11c3QgYWxzbyBiZSBjb21waWxlZCB3aXRoIC1uMzIKKyNaTElCTElCPS91c3IvbG9jYWwvbGliMzIKKyNaTElCSU5DPS91c3IvbG9jYWwvaW5jbHVkZQogI1pMSUJMSUI9L3Vzci9sb2NhbC9saWIKICNaTElCSU5DPS91c3IvbG9jYWwvaW5jbHVkZQogWkxJQkxJQj0uLi96bGliCkBAIC0xNSw4ICsxOSwxNiBAQAogCiBXQVJOTU9SRT0tZnVsbHdhcm4KICMgWW91IGNhbiBhZGQgdGhlIC1uMzIgb3B0aW9uOyB0aGVuIHpsaWIgbXVzdCBhbHNvIGJlIGNvbXBpbGVkIHdpdGggLW4zMgotQ0ZMQUdTPS1JJChaTElCSU5DKSAtTyAkKFdBUk5NT1JFKSAjIC1nIC1EUE5HX0RFQlVHPTUKKyMgTm90ZTogLUtQSUMgaXMgdGhlIGRlZmF1bHQgYW55aG93CitDRkxBR1M9LUkkKFpMSUJJTkMpIC1PICQoV0FSTk1PUkUpIC1LUElDICMgLWcgLURQTkdfREVCVUc9NQogTERGTEFHUz0tTC4gLUwkKFpMSUJMSUIpIC1scG5nIC1seiAtbG0KK0xEU0hBUkVEPWNjIC1zaGFyZWQKKworVkVSPTEuMC45cmMyCitTT05VTT0yCitTSEFSRURMSUI9bGlicG5nLnNvCitsaWJkaXI9JChwcmVmaXgpCisjbGliZGlyPSQocHJlZml4KS9saWIzMgogCiBSQU5MSUI9ZWNobwogI1JBTkxJQj1yYW5saWIKQEAgLTI1LDEyICszNywyMCBAQAogCXBuZ3JlYWQubyBwbmdyaW8ubyBwbmd3aW8ubyBwbmd3cml0ZS5vIHBuZ3J0cmFuLm8gXAogCXBuZ3d0cmFuLm8gcG5nbWVtLm8gcG5nZXJyb3IubyBwbmdwcmVhZC5vCiAKLWFsbDogbGlicG5nLmEgcG5ndGVzdAorYWxsOiBsaWJwbmcuYSBwbmd0ZXN0IHNoYXJlZAorCitzaGFyZWQ6ICQoU0hBUkVETElCKS4kKFNPTlVNKS4kKFZFUikKIAogbGlicG5nLmE6ICQoT0JKUykKIAlhciByYyAkQCAgJChPQkpTKQogCSQoUkFOTElCKSAkQAogCiskKFNIQVJFRExJQikuJChTT05VTSkuJChWRVIpOiAkKE9CSlMpCisJJChMRFNIQVJFRCkgLW8gJEAgJChPQkpTKQorCXJtIC1mICQoU0hBUkVETElCKSAkKFNIQVJFRExJQikuPworCWxuIC1zICRAICQoU0hBUkVETElCKQorCWxuIC1zICRAICQoU0hBUkVETElCKS4kKFNPTlVNKQorCiBwbmd0ZXN0OiBwbmd0ZXN0Lm8gbGlicG5nLmEKIAkkKENDKSAtbyBwbmd0ZXN0ICQoQ0ZMQUdTKSBwbmd0ZXN0Lm8gJChMREZMQUdTKQogCkBAIC00Nyw4ICs2NywxNiBAQAogCWNwIGxpYnBuZy5hICQocHJlZml4KS9saWIKIAljaG1vZCA2NDQgJChwcmVmaXgpL2xpYi9saWJwbmcuYQogCitpbnN0YWxsLXNoYXJlZDogJChTSEFSRURMSUIpLiQoU09OVU0pLiQoVkVSKQorCWNwICQoU0hBUkVETElCKS4kKFNPTlVNKS4kKFZFUikgJChsaWJkaXIpOyAKKwljaG1vZCA3NTUgJChTSEFSRURMSUIpLiQoU09OVU0pLiQoVkVSKQorCWNkICQobGliZGlyKTsKKwlybSAtZiAkKFNIQVJFRExJQikgJChTSEFSRURMSUIpLiQoU09OVU0pOworCWxuIC1zICQoU0hBUkVETElCKS4kKFNPTlVNKS4kKFZFUikgJChTSEFSRURMSUIpLiQoU09OVU0pOworCWxuIC1zICQoU0hBUkVETElCKS4kKFNPTlVNKSAkKFNIQVJFRExJQik7CisKIGNsZWFuOgotCXJtIC1mICoubyBsaWJwbmcuYSBwbmd0ZXN0IHBuZ291dC5wbmcKKwlybSAtZiAqLm8gbGlicG5nLmEgcG5ndGVzdCBwbmdvdXQucG5nICQoU0hBUkVETElCKS4qIAogCiBET0NTID0gQU5OT1VOQ0UgQ0hBTkdFUyBJTlNUQUxMIEtOT1dOQlVHIExJQ0VOU0UgUkVBRE1FIFRPRE8gWTJLSU5GTwogd3JpdGVsb2NrOgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5zb2xhcmlzIGIvc2NyaXB0cy9tYWtlZmlsZS5zb2xhcmlzCmluZGV4IDI4MzllZjguLmZjZjgxNDkgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuc29sYXJpcworKysgYi9zY3JpcHRzL21ha2VmaWxlLnNvbGFyaXMKQEAgLTMxLDcgKzMxLDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC45YmV0YTkKK1BOR01JTiA9IDEuMC45cmMyCiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKIElOQ1BBVEg9JChwcmVmaXgpL2luY2x1ZGUKZGlmZiAtLWdpdCBhL3NjcmlwdHMvcG5nZGVmLnBhcyBiL3NjcmlwdHMvcG5nZGVmLnBhcwppbmRleCBmYzU2ZTI5Li44NGIwYzRkIDEwMDY0NAotLS0gYS9zY3JpcHRzL3BuZ2RlZi5wYXMKKysrIGIvc2NyaXB0cy9wbmdkZWYucGFzCkBAIC01LDcgKzUsNyBAQAogaW50ZXJmYWNlCiAKIGNvbnN0Ci0gIFBOR19MSUJQTkdfVkVSX1NUUklORyA9ICcxLjAuOWJldGE5JzsKKyAgUE5HX0xJQlBOR19WRVJfU1RSSU5HID0gJzEuMC45cmMyJzsKICAgUE5HX0xJQlBOR19WRVIgICAgICAgID0gIDEwMDA5OwogCiB0eXBlCg==