From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Dirk Nehring To: git-commits@fedoraproject.org Subject: [rpms/vdr] rawhide: Modernize the spec file Date: Tue, 08 Sep 2026 07:09:18 GMT Message-ID: <178885135864.1.4919988957240296946.rpms-vdr-293c61014a4d@fedoraproject.org> List-ID: X-Git-Repo: rpms/vdr X-Git-Branch: rawhide X-Git-Rev: 293c61014a4de5a7c9c978f5f146d83fa1269f1d ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvdmRyCiAgICAgICAgICAgIEJyYW5jaCA6IHJhd2hpZGUKICAgICAgICAgICAg Q29tbWl0IDogMjkzYzYxMDE0YTRkZTVhN2M5Yzk3OGY1ZjE0NmQ4M2ZhMTI2OWYxZAogICAgICAg ICAgICBBdXRob3IgOiBEaXJrIE5laHJpbmcgPGRuZWhyaW5nQGdteC5uZXQ+CiAgICAgICAgICAg IERhdGUgICA6IDIwMjYtMDgtMTVUMTY6MjU6MDUrMDI6MDAKICAgICAgICAgICAgU3RhdHMgIDog KzM1Ny8tMjU1MiBpbiAzMiBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0dHBzOi8vc3Jj LmZlZG9yYXByb2plY3Qub3JnL3JwbXMvdmRyL2MvMjkzYzYxMDE0YTRkZTVhN2M5Yzk3OGY1ZjE0 NmQ4M2ZhMTI2OWYxZD9icmFuY2g9cmF3aGlkZQoKICAgICAgICAgICAgTG9nOgogICAgICAgICAg ICBNb2Rlcm5pemUgdGhlIHNwZWMgZmlsZQoKUmVmYWN0b3IgdGhlIHNwZWMgYW5kIGRyb3AgdGhl IGFjY3VtdWxhdGVkIGNydWZ0OgoKLSBDb25zb2xpZGF0ZSB0aGUgcGF0Y2ggc2V0LiBUaGUgRmVk b3JhIGludGVncmF0aW9uIHBhdGNoLCBNYWluTWVudUhvb2tzCiAgYW5kIHRoZSBGU0YtYWRkcmVz cyBmaXggbm93IGhhdmUgdmVyc2lvbi1pbmRlcGVuZGVudCBmaWxlIG5hbWVzLCBzbyBhCiAgdmVy c2lvbiBidW1wIG5vIGxvbmdlciBtZWFucyByZW5hbWluZyBwYXRjaGVzLgotIFJlbW92ZSAxOCB1 bnJlZmVyZW5jZWQgZmlsZXM6IHBhdGNoZXMgZm9yIDEuNy54IHRocm91Z2ggMi43LnggdGhhdCBu bwogIFNvdXJjZS9QYXRjaCBsaW5lIGhhcyBwb2ludGVkIGF0IGZvciBzZXZlcmFsIHJlbGVhc2Vz LCBwbHVzIHRoZSBjb25mCiAgc25pcHBldHMgb2YgdGhlIHN1YnBhY2thZ2VzIGJlbG93LgotIFRo ZW1lcyBsaXZlIGluIC9ldGMvdmRyL3RoZW1lcywgc3RvY2sgVkRSJ3MgcGF0aCAodmRyLmM6CiAg U2V0VGhlbWVzRGlyZWN0b3J5KSwgbm93IHRoYXQgdGhlIHRoZW1lLWRpcmVjdG9yeSByZXdyaXRp bmcgcGF0Y2ggaXMKICBnb25lLgotIHZkci1kZXZlbCByZXF1aXJlcyB0aGUgYmFzZSBwYWNrYWdl LCBmdWxseSB2ZXJzaW9uZWQgYW5kIGFyY2gtc3BlY2lmaWMuCi0gVHJpbSB0aGUgc291cmNlcyBm aWxlIHRvIHRoZSBvbmUgdGFyYmFsbCB0aGUgYnVpbGQgYWN0dWFsbHkgdXNlcy4KCkFsc28gZHJv cHMgdGhlIGR2YmhkZGV2aWNlLCBkdmJzZGRldmljZSBhbmQgcmN1IHN1YnBhY2thZ2VzLCB3aG9z ZQpzb3VyY2VzIGFyZSB0aGlyZC1wYXJ0eSBhcmNoaXZlcyB1bnJlbGF0ZWQgdG8gdGhlIFZEUiB0 YXJiYWxsLiBUaGlzIHBhcnQKbmVlZHMgbWFpbnRhaW5lciBhZ3JlZW1lbnQgYW5kIE9ic29sZXRl cyBmb3IgYSBjbGVhbiB1cGdyYWRlIHBhdGggLQpoYXBweSB0byBzcGxpdCBpdCBpbnRvIGl0cyBv d24gY29tbWl0IGlmIHByZWZlcnJlZC4gSSB3aWxsIHByb3ZpZGUgYSBuZXcKdmRyLWR2YmhkZGV2 aWNlIHBhY2thZ2UuCgpWZXJpZmllZDogZmVkcGtnIC0tcmVsZWFzZSByYXdoaWRlIG1vY2tidWls ZCBwYXNzZXMsIHByb2R1Y2luZyB2ZHIsCnZkci1kZXZlbCwgdmRyLWRvY3MgYW5kIHZkci1za2lu Y3Vyc2VzLgoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCBl NWU5Yjg2Li4yM2ZjNmZmIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUK QEAgLTEsNyArMSwyIEBACi0vKi5negotLyouYnoyCi0vNjJlZmNjMGI0YTFmLnppcAotLzJlYTg1 NGFlOGM3YS56aXAKLS92ZHItZHZic2RkZXZpY2UtMi4yLjAudGd6Ci0vdmRyLXJjdS0yLjIuMC50 Z3oKLS8zNDczYTdiOTM5ZDcuemlwCistLyouZ3oKKy0vKi5iejIKCmRpZmYgLS1naXQgYS8wMy1N YWluTWVudUhvb2tzLXYxLjAuMS5wYXRjaCBiLzAzLU1haW5NZW51SG9va3MtdjEuMC4xLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzU3NzRlLi4wMDAwMDAwCi0tLSBhLzAz LU1haW5NZW51SG9va3MtdjEuMC4xLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTk4ICswLDAg QEAKLURlc2NyaXB0aW9uOiBUaGlzIHBhdGNoIGFsbG93cyBwbHVnaW5zIHRvIHJlcGxhY2UgdGhl IFZEUiBtYWlubWVudXMgIlNjaGVkdWxlIiwgIkNoYW5uZWxzIiwgIlRpbWVycyIgYW5kICJSZWNv cmRpbmdzIiBieSBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbi4KLUF1dGhvcjogRnJhbmsgU2No bWlybGVyIDx2ZHJkZXZAc2NobWlybGVyLmRlPgotCi0qIEhpc3RvcnkKLTIwMTAtMTAtMTU6IFZl cnNpb24gMS4wLjEKLS0gcmV0dXJuIGEgY09zZE9iamVjdCBpbnN0ZWFkIG9mIGl0cyBzdWJjbGFz cyBjT3NkTWVudSAodGhhbmtzIHRvCi0gIEpvZV9EQHZkcnBvcnRhbCkKLS0gdmVyc2lvbiBudW1i ZXIgZGVmaW5lcyBpbiBjb25maWcuaCBub3cgZm9sbG93IHRoZSB1c3VzYWwgY29udmVudGlvbnM6 Ci0gIE1BSU5NRU5VSE9PS1NWRVJTTlVNIGlzIG5vdyBhIG51bWJlciwgdGhlIG5ld2x5IGFkZGVk IGRlZmluZQotICBNQUlOTUVOVUhPT0tTVkVSU0lPTiBpcyBhIHN0cmluZyAoc3VnZ2VzdGVkIGJ5 IGduYXBoZXVzQHZkcnBvcnRhbCkKLS0gcGF0Y2ggaXMgbm93IGJhc2VkIG9uIFZEUiAxLjYuMAot LSB1cGRhdGVkIGRvY3VtZW50YXRpb24KLQotMjAwNy0wMi0yNjogVmVyc2lvbiAxLjAKLS0gSW5p dGlhbCByZXZpc2lvbi4KLQotKiBBdXRob3JzOgotVG9iaWFzIEdyaW1tICA8dmRyIGF0IGUtdG9i aSBkb3QgbmV0PgotTWFydGluIFByb2Nobm93ICA8bm9yZGxpY2h0IGF0IG1hcnRpbnMta2FidWZm IGRvdCBkZT4KLUZyYW5rIFNjaG1pcmxlciAgPHZkcmRldiBhdCBzY2htaXJsZXIgZG90IGRlPgot Q2hyaXN0aWFuIFdpZW5pbmdlciAgPGN3aWVuaW5nZXIgYXQgZ214IGRvdCBkZT4KLQotKiBEZXNj cmlwdGlvbjoKLVRoaXMgcGF0Y2ggYWxsb3dzIHBsdWdpbnMgdG8gcmVwbGFjZSB0aGUgVkRSIG1h aW5tZW51cyAiU2NoZWR1bGUiLAotIkNoYW5uZWxzIiwgIlRpbWVycyIgYW5kICJSZWNvcmRpbmdz IiBieSBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbi4KLQotVGhlIHBhdGNoIGlzIGJhc2VkIG9u IGEgc3VnZ2VzdGlvbiBvZiBDaHJpc3RpYW4gV2llbmluZ2VyIGJhY2sgaW4gMjAwNgotKGh0dHA6 Ly93d3cubGludXh0di5vcmcvcGlwZXJtYWlsL3Zkci8yMDA2LU1hcmNoLzAwODIzNC5odG1sKS4g SXQgaXMKLW1lYW50IHRvIGJlIGFuIGludGVyaW0gc29sdXRpb24gZm9yIFZEUiAxLjQgdW50aWwg KG1heWJlKSBWRFIgMS41Ci1pbnRyb2R1Y2VzIGFuIG9mZmljaWFsIEFQSSBmb3IgdGhpcyBwdXJw b3NlLgotCi0qIEluc3RhbGxhdGlvbgotQ2hhbmdlIGludG8gdGhlIFZEUiBzb3VyY2UgZGlyZWN0 b3J5LCB0aGVuIGlzc3VlCi0gIHBhdGNoIC1wMSA8IHBhdGgvdG8vTWFpbk1lbnVIb29rcy12MV8w XzEucGF0Y2gKLWFuZCByZWNvbXBpbGUuCi0KLSogTm90ZXMgZm9yIHBsdWdpbiBhdXRob3JzCi1U aGUgZm9sbG93aW5nIGNvZGUgc2FtcGxlIHNob3dzIHRoZSByZXF1aXJlZCBwbHVnaW4gY29kZSBm b3IgcmVwbGFjaW5nCi10aGUgb3JpZ2luYWwgU2NoZWR1bGUgbWVudToKLQotYm9vbCBjTXlQbHVn aW46OlNlcnZpY2UoY29uc3QgY2hhciAqSWQsIHZvaWQgKkRhdGEpCi17Ci0gIGNPc2RNZW51ICoq bWVudSA9IChjT3NkTWVudSoqKSBEYXRhOwotICBpZiAoTXlTZXR1cC5yZXBsYWNlU2NoZWR1bGUg JiYKLSAgICAgICAgICAgIHN0cmNtcChJZCwgIk1haW5NZW51SG9va3NQYXRjaC12MS4wOjpvc1Nj aGVkdWxlIikgPT0gMCkgewotICAgIGlmIChtZW51KQotICAgICAgKm1lbnUgPSAoY09zZE1lbnUq KSBNYWluTWVudUFjdGlvbigpOwotICAgIHJldHVybiB0cnVlOwotICB9Ci0gIHJldHVybiBmYWxz ZTsKLX0KLQotU2luY2UgcGF0Y2ggdmVyc2lvbiAxLjAuMSB0aGUgc2VydmljZSBjYWxsIG1heSBy ZXR1cm4gYSBjT3NkT2JqZWN0Ci1pbnN0ZWFkIG9mIGEgY09zZE1lbnUuIFVzZSAiI2lmZGVmIE1B SU5NRU5VSE9PS1NWRVJTSU9OIiB0byBkZXRlY3QKLXZlcnNpb24gMS4wLjEuCi0KLUEgcGx1Z2lu IGNhbiByZXBsYWNlIG1vcmUgdGhhbiBvbmUgbWVudSBhdCBhIHRpbWUuIFNpbXBseSByZXBsYWNl IHRoZQotY2FsbCB0byBNYWluTWVudUFjdGlvbigpIGluIHRoZSBzYW1wbGUgYWJvdmUgYnkgYXBw cm9wcmlhdGUgY29kZS4KLQotTm90ZSB0aGF0IGEgcGx1Z2luICpzaG91bGQqIG9mZmVyIGEgc2V0 dXAgb3B0aW9uIHdoaWNoIGFsbG93cyB0aGUgdXNlcgotdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhl IHJlcGxhY2VtZW50LiAiRGlzYWJsZWQiIHdvdWxkIGJlIGEgcmVhc29uYWJsZQotZGVmYXVsdCBz ZXR0aW5nLiBCeSB0ZXN0aW5nIGZvciBkZWZpbmUgTUFJTk1FTlVIT09LU1ZFUlNOVU0sIGEgcGx1 Z2luCi1jYW4gbGVhdmUgdGhlIHNldHVwIG9wdGlvbiBvdXQgYXQgY29tcGlsZXRpbWUuCi0KLUlu IGNhc2UgdGhlcmUgaXMgYW4gaW50ZXJuYWwgcHJvYmxlbSB3aGVuIHRyeWluZyB0byBvcGVuIHRo ZSByZXBsYWNlbWVudAotbWVudSwgaXQgaXMgc2FmZSB0byByZXR1cm4gdHJ1ZSBldmVuIHRob3Vn aCBEYXRhIGlzIE5VTEwuIEhvd2V2ZXIgYW4KLU9TRCBtZXNzYWdlIHNob3VsZCBpbmRpY2F0ZSB0 aGUgcHJvYmxlbSB0byB0aGUgdXNlci4KLQotRmVlbCBmcmVlIHRvIHNoaXAgdGhpcyBwYXRjaCBh bG9uZyB3aXRoIHlvdXIgcGx1Z2luLiBIb3dldmVyIGlmIHlvdQotdGhpbmsgeW91IG5lZWQgdG8g bW9kaWZ5IHRoZSBwYXRjaCwgd2UnZCBlbmNvdXJhZ2UgeW91IHRvIGNvbnRhY3QgdGhlCi1hdXRo b3JzIGZpcnN0IG9yIGF0IGxlYXN0IHVzZSBhIHNlcnZpY2UgaWQgd2hpY2ggZGlmZmVycyBpbiBt b3JlIHRoYW4KLWp1c3QgdGhlIHZlcnNpb24gbnVtYmVyLgotCi1JbmRleDogdmRyLXN0YWJsZS5s YXRlc3QtNzdiZmJjOS9jb25maWcuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHZkci1zdGFibGUubGF0ZXN0 LTc3YmZiYzkub3JpZy9jb25maWcuaAkyMDI2LTAxLTIyIDEyOjU4OjQyLjk5NTU1MTc0MiArMDEw MAotKysrIHZkci1zdGFibGUubGF0ZXN0LTc3YmZiYzkvY29uZmlnLmgJMjAyNi0wMS0yMiAxMjo1 ODo0My4wMDI4NjMxMDYgKzAxMDAKLUBAIC0zOCw2ICszOCwxMCBAQAotIC8vIGNvbXBhdGliaWxp dHkgYW5kIGNhbiBiZSB1c2VkIGluICNpZiBwcmVwcm9jZXNzb3Igc3RhdGVtZW50cyB0byBoYW5k bGUKLSAvLyB2ZXJzaW9uIGRlcGVuZGVudCBjb2RlLgotIAotKy8vIFRoZSBNYWluTWVudUhvb2sg UGF0Y2gncyB2ZXJzaW9uIG51bWJlcjoKLSsjZGVmaW5lIE1BSU5NRU5VSE9PS1NWRVJTSU9OICIx LjAuMSIKLSsjZGVmaW5lIE1BSU5NRU5VSE9PS1NWRVJTTlVNIDEwMDAxICAvLyBWZXJzaW9uICog MTAwMDAgKyBNYWpvciAqIDEwMCArIE1pbm9yCi0rCi0gI2RlZmluZSBNQVhQUklPUklUWSAgICAg ICA5OQotICNkZWZpbmUgTUlOUFJJT1JJVFkgICAgICAgKC1NQVhQUklPUklUWSkKLSAjZGVmaW5l IExJVkVQUklPUklUWSAgICAgIDAgICAgICAgICAgICAgICAgICAvLyBwcmlvcml0eSB1c2VkIHdo ZW4gc2VsZWN0aW5nIGEgZGV2aWNlIGZvciBsaXZlIHZpZXdpbmcKLUluZGV4OiB2ZHItc3RhYmxl LmxhdGVzdC03N2JmYmM5L21lbnUuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHZkci1zdGFibGUubGF0ZXN0 LTc3YmZiYzkub3JpZy9tZW51LmMJMjAyNi0wMS0yMiAxMjo1ODo0My4wMjE2NjIzMzYgKzAxMDAK LSsrKyB2ZHItc3RhYmxlLmxhdGVzdC03N2JmYmM5L21lbnUuYwkyMDI2LTAxLTIyIDEyOjU4OjQz LjAyNzA5MzE0NyArMDEwMAotQEAgLTQ2NzUsMTUgKzQ2NzUsMzEgQEAKLSAKLSAgIC8vIEluaXRp YWwgc3VibWVudXM6Ci0gCi0rICBjT3NkT2JqZWN0ICptZW51ID0gTlVMTDsKLSAgIHN3aXRjaCAo U3RhdGUpIHsKLS0gICAgY2FzZSBvc1NjaGVkdWxlOiAgIEFkZFN1Yk1lbnUobmV3IGNNZW51U2No ZWR1bGUpOyBicmVhazsKLS0gICAgY2FzZSBvc0NoYW5uZWxzOiAgIEFkZFN1Yk1lbnUobmV3IGNN ZW51Q2hhbm5lbHMpOyBicmVhazsKLS0gICAgY2FzZSBvc1RpbWVyczogICAgIEFkZFN1Yk1lbnUo bmV3IGNNZW51VGltZXJzKTsgYnJlYWs7Ci0tICAgIGNhc2Ugb3NSZWNvcmRpbmdzOiBBZGRTdWJN ZW51KG5ldyBjTWVudVJlY29yZGluZ3MoTlVMTCwgMCwgT3BlblN1Yk1lbnVzKSk7IGJyZWFrOwot LSAgICBjYXNlIG9zU2V0dXA6ICAgICAgQWRkU3ViTWVudShuZXcgY01lbnVTZXR1cCk7IGJyZWFr OwotLSAgICBjYXNlIG9zQ29tbWFuZHM6ICAgQWRkU3ViTWVudShuZXcgY01lbnVDb21tYW5kcyh0 cigiQnV0dG9uJENvbW1hbmRzIiksICZDb21tYW5kcykpOyBicmVhazsKLSsgICAgY2FzZSBvc1Nj aGVkdWxlOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2FsbEZpcnN0U2VydmljZSgi TWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zU2NoZWR1bGUiLCAmbWVudSkpCi0rICAgICAgICAg ICAgbWVudSA9IG5ldyBjTWVudVNjaGVkdWxlOwotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ug b3NDaGFubmVsczoKLSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxGaXJzdFNlcnZp Y2UoIk1haW5NZW51SG9va3NQYXRjaC12MS4wOjpvc0NoYW5uZWxzIiwgJm1lbnUpKQotKyAgICAg ICAgICAgIG1lbnUgPSBuZXcgY01lbnVDaGFubmVsczsKLSsgICAgICAgIGJyZWFrOwotKyAgICBj YXNlIG9zVGltZXJzOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2FsbEZpcnN0U2Vy dmljZSgiTWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zVGltZXJzIiwgJm1lbnUpKQotKyAgICAg ICAgICAgIG1lbnUgPSBuZXcgY01lbnVUaW1lcnM7Ci0rICAgICAgICBicmVhazsKLSsgICAgY2Fz ZSBvc1JlY29yZGluZ3M6Ci0rICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RT ZXJ2aWNlKCJNYWluTWVudUhvb2tzUGF0Y2gtdjEuMDo6b3NSZWNvcmRpbmdzIiwgJm1lbnUpKQot KyAgICAgICAgICAgIG1lbnUgPSBuZXcgY01lbnVSZWNvcmRpbmdzKE5VTEwsIDAsIE9wZW5TdWJN ZW51cyk7Ci0rICAgICAgICBicmVhazsKLSsgICAgY2FzZSBvc1NldHVwOiAgICAgIG1lbnUgPSBu ZXcgY01lbnVTZXR1cDsgYnJlYWs7Ci0rICAgIGNhc2Ugb3NDb21tYW5kczogICBtZW51ID0gbmV3 IGNNZW51Q29tbWFuZHModHIoIkJ1dHRvbiRDb21tYW5kcyIpLCAmQ29tbWFuZHMpOyBicmVhazsK LSAgICAgZGVmYXVsdDogYnJlYWs7Ci0gICAgIH0KLSsgIGlmIChtZW51KQotKyAgICAgaWYgKG1l bnUtPklzTWVudSgpKQotKyAgICAgICAgQWRkU3ViTWVudSgoY09zZE1lbnUgKikgbWVudSk7Ci0g fQotIAotIGNPc2RPYmplY3QgKmNNZW51TWFpbjo6UGx1Z2luT3NkT2JqZWN0KHZvaWQpCi1AQCAt NDgyMCwxNSArNDgzNiw0NiBAQAotICAgZU9TU3RhdGUgc3RhdGUgPSBjT3NkTWVudTo6UHJvY2Vz c0tleShLZXkpOwotICAgSGFkU3ViTWVudSB8PSBIYXNTdWJNZW51KCk7Ci0gCi0rICBjT3NkT2Jq ZWN0ICptZW51ID0gTlVMTDsKLSAgIHN3aXRjaCAoc3RhdGUpIHsKLS0gICAgY2FzZSBvc1NjaGVk dWxlOiAgIHJldHVybiBBZGRTdWJNZW51KG5ldyBjTWVudVNjaGVkdWxlKTsKLS0gICAgY2FzZSBv c0NoYW5uZWxzOiAgIHJldHVybiBBZGRTdWJNZW51KG5ldyBjTWVudUNoYW5uZWxzKTsKLS0gICAg Y2FzZSBvc1RpbWVyczogICAgIHJldHVybiBBZGRTdWJNZW51KG5ldyBjTWVudVRpbWVycyk7Ci0t ICAgIGNhc2Ugb3NSZWNvcmRpbmdzOiByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVSZWNvcmRp bmdzKTsKLS0gICAgY2FzZSBvc1JlY3NPcGVuOiAgIHJldHVybiBBZGRTdWJNZW51KG5ldyBjTWVu dVJlY29yZGluZ3MoTlVMTCwgMCwgdHJ1ZSkpOwotLSAgICBjYXNlIG9zUmVjc0RlbDogICAgcmV0 dXJuIEFkZFN1Yk1lbnUobmV3IGNNZW51UmVjb3JkaW5ncyhOVUxMLCAwLCB0cnVlLCBOVUxMLCB0 cnVlKSk7Ci0tICAgIGNhc2Ugb3NTZXR1cDogICAgICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01l bnVTZXR1cCk7Ci0tICAgIGNhc2Ugb3NDb21tYW5kczogICByZXR1cm4gQWRkU3ViTWVudShuZXcg Y01lbnVDb21tYW5kcyh0cigiQnV0dG9uJENvbW1hbmRzIiksICZDb21tYW5kcykpOwotKyAgICBj YXNlIG9zU2NoZWR1bGU6Ci0rICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RT ZXJ2aWNlKCJNYWluTWVudUhvb2tzUGF0Y2gtdjEuMDo6b3NTY2hlZHVsZSIsICZtZW51KSkKLSsg ICAgICAgICAgICBtZW51ID0gbmV3IGNNZW51U2NoZWR1bGU7Ci0rICAgICAgICBlbHNlCi0rICAg ICAgICAgICAgc3RhdGUgPSBvc0NvbnRpbnVlOwotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ug b3NDaGFubmVsczoKLSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxGaXJzdFNlcnZp Y2UoIk1haW5NZW51SG9va3NQYXRjaC12MS4wOjpvc0NoYW5uZWxzIiwgJm1lbnUpKQotKyAgICAg ICAgICAgIG1lbnUgPSBuZXcgY01lbnVDaGFubmVsczsKLSsgICAgICAgIGVsc2UKLSsgICAgICAg ICAgICBzdGF0ZSA9IG9zQ29udGludWU7Ci0rICAgICAgICBicmVhazsKLSsgICAgY2FzZSBvc1Rp bWVyczoKLSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxGaXJzdFNlcnZpY2UoIk1h aW5NZW51SG9va3NQYXRjaC12MS4wOjpvc1RpbWVycyIsICZtZW51KSkKLSsgICAgICAgICAgICBt ZW51ID0gbmV3IGNNZW51VGltZXJzOwotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHN0YXRl ID0gb3NDb250aW51ZTsKLSsgICAgICAgIGJyZWFrOwotKyAgICBjYXNlIG9zUmVjb3JkaW5nczoK LSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxGaXJzdFNlcnZpY2UoIk1haW5NZW51 SG9va3NQYXRjaC12MS4wOjpvc1JlY29yZGluZ3MiLCAmbWVudSkpCi0rICAgICAgICAgICAgbWVu dSA9IG5ldyBjTWVudVJlY29yZGluZ3M7Ci0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgc3Rh dGUgPSBvc0NvbnRpbnVlOwotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ugb3NSZWNzT3BlbjoK LSsJaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2FsbEZpcnN0U2VydmljZSgiTWFpbk1lbnVIb29rc1Bh dGNoLXYxLjA6Om9zUmVjc09wZW4iLCAmbWVudSkpCi0rICAgICAgICAgICAgbWVudSA9IG5ldyBj TWVudVJlY29yZGluZ3MoTlVMTCwgMCwgdHJ1ZSk7Ci0rCWVsc2UKLSsgICAgICAgICAgICBzdGF0 ZSA9IG9zQ29udGludWU7Ci0rCWJyZWFrOwotKyAgICBjYXNlIG9zUmVjc0RlbDoKLSsJaWYgKCFj UGx1Z2luTWFuYWdlcjo6Q2FsbEZpcnN0U2VydmljZSgiTWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6 Om9zUmVjc0RlbCIsICZtZW51KSkKLSsgICAgICAgICAgICBtZW51ID0gbmV3IGNNZW51UmVjb3Jk aW5ncyhOVUxMLCAwLCB0cnVlLCBOVUxMLCB0cnVlKTsKLSsJZWxzZQotKyAgICAgICAgICAgIHN0 YXRlID0gb3NDb250aW51ZTsKLSsJYnJlYWs7Ci0rICAgIGNhc2Ugb3NTZXR1cDogICAgICBtZW51 ID0gbmV3IGNNZW51U2V0dXA7IGJyZWFrOwotKyAgICBjYXNlIG9zQ29tbWFuZHM6ICAgbWVudSA9 IG5ldyBjTWVudUNvbW1hbmRzKHRyKCJCdXR0b24kQ29tbWFuZHMiKSwgJkNvbW1hbmRzKTsgYnJl YWs7Ci0gICAgIGNhc2Ugb3NTdG9wUmVjb3JkOiBpZiAoSW50ZXJmYWNlLT5Db25maXJtKHRyKCJT dG9wIHJlY29yZGluZz8iKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjT3Nk SXRlbSAqaXRlbSA9IEdldChDdXJyZW50KCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjUmVjb3JkQ29udHJvbHM6OlN0b3AoaXRlbS0+VGV4dCgpICsgc3RybGVuKHRyKFNUT1Bf UkVDT1JESU5HKSkpOwotQEAgLTQ5MTQsNiArNDk2MSwxMiBAQAotICAgICAgICAgICAgICAgIGRl ZmF1bHQ6ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICB9Ci0rICBpZiAobWVu dSkgewotKyAgICAgaWYgKG1lbnUtPklzTWVudSgpKQotKyAgICAgICAgcmV0dXJuIEFkZFN1Yk1l bnUoKGNPc2RNZW51ICopIG1lbnUpOwotKyAgICAgcGx1Z2luT3NkT2JqZWN0ID0gbWVudTsKLSsg ICAgIHJldHVybiBvc1BsdWdpbjsKLSsgIH0KLSAgIGJvb2wgRG9EaXNwbGF5ID0gVXBkYXRlKCk7 Ci0gICBpZiAoS2V5ICE9IGtOb25lKSB7Ci0gICAgICBpZiAoSTE4bkN1cnJlbnRMYW5ndWFnZSgp ICE9IG9zZExhbmd1YWdlKSB7CgpkaWZmIC0tZ2l0IGEvMTJfb3NkYmFzZS1tYXhpdGVtcy5wYXRj aCBiLzEyX29zZGJhc2UtbWF4aXRlbXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDc4YWI2NGEuLjAwMDAwMDAKLS0tIGEvMTJfb3NkYmFzZS1tYXhpdGVtcy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLURlc2NyaXB0aW9uOiBGaXhlcyBwcm9ibGVtcyB3 aXRoIHRleHQyc2tpbiBza2luIGVuaWdtYS4KLUF1dGhvcjogQW5kcmVhcyBCcnVnZ2VyIDxicm91 Z3M3OEBnbXgubmV0PgotT3JpZ2luOiBodHRwOi8vdmRycG9ydGFsLmRlL2JvYXJkL3RocmVhZC5w aHA/cG9zdGlkPTM0MzY2NSNwb3N0MzQzNjY1Ci0KLS0tLSBhL29zZGJhc2UuYwotKysrIGIvb3Nk YmFzZS5jCi1AQCAtMzQ1LDYgKzM0NSw3IEBACi0gCi0gdm9pZCBjT3NkTWVudTo6Q3Vyc29yVXAo dm9pZCkKLSB7Ci0rICBkaXNwbGF5TWVudUl0ZW1zID0gZGlzcGxheU1lbnUtPk1heEl0ZW1zKCk7 Ci0gICBpbnQgdG1wQ3VycmVudCA9IGN1cnJlbnQ7Ci0gICBpbnQgbGFzdE9uU2NyZWVuID0gZmly c3QgKyBkaXNwbGF5TWVudUl0ZW1zIC0gMTsKLSAgIGludCBsYXN0ID0gQ291bnQoKSAtIDE7Ci1A QCAtMzgzLDYgKzM4NCw3IEBACi0gCi0gdm9pZCBjT3NkTWVudTo6Q3Vyc29yRG93bih2b2lkKQot IHsKLSsgIGRpc3BsYXlNZW51SXRlbXMgPSBkaXNwbGF5TWVudS0+TWF4SXRlbXMoKTsKLSAgIGlu dCB0bXBDdXJyZW50ID0gY3VycmVudDsKLSAgIGludCBsYXN0T25TY3JlZW4gPSBmaXJzdCArIGRp c3BsYXlNZW51SXRlbXMgLSAxOwotICAgaW50IGxhc3QgPSBDb3VudCgpIC0gMTsKLUBAIC00MjMs NiArNDI1LDcgQEAKLSAKLSB2b2lkIGNPc2RNZW51OjpQYWdlVXAodm9pZCkKLSB7Ci0rICBkaXNw bGF5TWVudUl0ZW1zID0gZGlzcGxheU1lbnUtPk1heEl0ZW1zKCk7Ci0gICBpbnQgb2xkQ3VycmVu dCA9IGN1cnJlbnQ7Ci0gICBpbnQgb2xkRmlyc3QgPSBmaXJzdDsKLSAgIGN1cnJlbnQgLT0gZGlz cGxheU1lbnVJdGVtczsKLUBAIC00NTcsNiArNDYwLDcgQEAKLSAKLSB2b2lkIGNPc2RNZW51OjpQ YWdlRG93bih2b2lkKQotIHsKLSsgIGRpc3BsYXlNZW51SXRlbXMgPSBkaXNwbGF5TWVudS0+TWF4 SXRlbXMoKTsKLSAgIGludCBvbGRDdXJyZW50ID0gY3VycmVudDsKLSAgIGludCBvbGRGaXJzdCA9 IGZpcnN0OwotICAgY3VycmVudCArPSBkaXNwbGF5TWVudUl0ZW1zOwoKZGlmZiAtLWdpdCBhL01h aW5NZW51SG9va3MtdjFfMF80LmRpZmYudHh0IGIvTWFpbk1lbnVIb29rcy12MV8wXzQuZGlmZi50 eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyNGRmOTguLjAwMDAwMDAKLS0tIGEv TWFpbk1lbnVIb29rcy12MV8wXzQuZGlmZi50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOTEgKzAs MCBAQAotVGhpcyBpcyBhICJwYXRjaCIgZm9yIHRoZSBWaWRlbyBEaXNrIFJlY29yZGVyIChWRFIp LgotCi0qIEhpc3RvcnkKLTIwMjUtMDItMjY6IFZlcnNpb24gMS4wLjQKLVVwZGF0ZSBm77+9ciB2 ZHItMi43LjQgKErvv71yZyBSaWVjaGFyZHQpCi0KLTIwMTMtMTEtMDg6IFZlcnNpb24gMS4wLjMK LVVwZGF0ZSBm77+9ciB2ZHItMi4xLjIgKErvv71yZyBSaWVjaGFyZHQpCi0KLTIwMTItMDQtMDY6 IFZlcnNpb24gMS4wLjIKLS0gVXBkYXRlIGbvv71yIGFrdHVlbGxlIFZEUi1FbnR3aWNrbGVyLVZl cnNpb25lbiAoTWFudWVsIFJlaW1lcikKLQotMjAxMC0xMC0xNTogVmVyc2lvbiAxLjAuMQotLSBy ZXR1cm4gYSBjT3NkT2JqZWN0IGluc3RlYWQgb2YgaXRzIHN1YmNsYXNzIGNPc2RNZW51ICh0aGFu a3MgdG8KLSAgSm9lX0RAdmRycG9ydGFsKQotLSB2ZXJzaW9uIG51bWJlciBkZWZpbmVzIGluIGNv bmZpZy5oIG5vdyBmb2xsb3cgdGhlIHVzdXNhbCBjb252ZW50aW9uczoKLSAgTUFJTk1FTlVIT09L U1ZFUlNOVU0gaXMgbm93IGEgbnVtYmVyLCB0aGUgbmV3bHkgYWRkZWQgZGVmaW5lCi0gIE1BSU5N RU5VSE9PS1NWRVJTSU9OIGlzIGEgc3RyaW5nIChzdWdnZXN0ZWQgYnkgZ25hcGhldXNAdmRycG9y dGFsKQotLSBwYXRjaCBpcyBub3cgYmFzZWQgb24gVkRSIDEuNi4wCi0tIHVwZGF0ZWQgZG9jdW1l bnRhdGlvbgotCi0yMDA3LTAyLTI2OiBWZXJzaW9uIDEuMAotLSBJbml0aWFsIHJldmlzaW9uLgot Ci0qIEF1dGhvcnM6Ci1Ub2JpYXMgR3JpbW0gIDx2ZHIgYXQgZS10b2JpIGRvdCBuZXQ+Ci1NYXJ0 aW4gUHJvY2hub3cgIDxub3JkbGljaHQgYXQgbWFydGlucy1rYWJ1ZmYgZG90IGRlPgotRnJhbmsg U2NobWlybGVyICA8dmRyZGV2IGF0IHNjaG1pcmxlciBkb3QgZGU+Ci1DaHJpc3RpYW4gV2llbmlu Z2VyICA8Y3dpZW5pbmdlciBhdCBnbXggZG90IGRlPgotCi0qIERlc2NyaXB0aW9uOgotVGhpcyBw YXRjaCBhbGxvd3MgcGx1Z2lucyB0byByZXBsYWNlIHRoZSBWRFIgbWFpbm1lbnVzICJTY2hlZHVs ZSIsCi0iQ2hhbm5lbHMiLCAiVGltZXJzIiBhbmQgIlJlY29yZGluZ3MiIGJ5IGEgZGlmZmVyZW50 IGltcGxlbWVudGF0aW9uLgotCi1UaGUgcGF0Y2ggaXMgYmFzZWQgb24gYSBzdWdnZXN0aW9uIG9m IENocmlzdGlhbiBXaWVuaW5nZXIgYmFjayBpbiAyMDA2Ci0oaHR0cDovL3d3dy5saW51eHR2Lm9y Zy9waXBlcm1haWwvdmRyLzIwMDYtTWFyY2gvMDA4MjM0Lmh0bWwpLiBJdCBpcwotbWVhbnQgdG8g YmUgYW4gaW50ZXJpbSBzb2x1dGlvbiBmb3IgVkRSIDEuNCB1bnRpbCAobWF5YmUpIFZEUiAxLjUK LWludHJvZHVjZXMgYW4gb2ZmaWNpYWwgQVBJIGZvciB0aGlzIHB1cnBvc2UuCi0KLSogSW5zdGFs bGF0aW9uCi1DaGFuZ2UgaW50byB0aGUgVkRSIHNvdXJjZSBkaXJlY3RvcnksIHRoZW4gaXNzdWUK LSAgcGF0Y2ggLXAxIDwgcGF0aC90by9NYWluTWVudUhvb2tzLXYxXzBfMS5wYXRjaAotYW5kIHJl Y29tcGlsZS4KLQotKiBOb3RlcyBmb3IgcGx1Z2luIGF1dGhvcnMKLVRoZSBmb2xsb3dpbmcgY29k ZSBzYW1wbGUgc2hvd3MgdGhlIHJlcXVpcmVkIHBsdWdpbiBjb2RlIGZvciByZXBsYWNpbmcKLXRo ZSBvcmlnaW5hbCBTY2hlZHVsZSBtZW51OgotCi1ib29sIGNNeVBsdWdpbjo6U2VydmljZShjb25z dCBjaGFyICpJZCwgdm9pZCAqRGF0YSkKLXsKLSAgY09zZE1lbnUgKiptZW51ID0gKGNPc2RNZW51 KiopIERhdGE7Ci0gIGlmIChNeVNldHVwLnJlcGxhY2VTY2hlZHVsZSAmJgotICAgICAgICAgICAg c3RyY21wKElkLCAiTWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zU2NoZWR1bGUiKSA9PSAwKSB7 Ci0gICAgaWYgKG1lbnUpCi0gICAgICAqbWVudSA9IChjT3NkTWVudSopIE1haW5NZW51QWN0aW9u KCk7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLSAgcmV0dXJuIGZhbHNlOwotfQotCi1TaW5jZSBw YXRjaCB2ZXJzaW9uIDEuMC4xIHRoZSBzZXJ2aWNlIGNhbGwgbWF5IHJldHVybiBhIGNPc2RPYmpl Y3QKLWluc3RlYWQgb2YgYSBjT3NkTWVudS4gVXNlICIjaWZkZWYgTUFJTk1FTlVIT09LU1ZFUlNJ T04iIHRvIGRldGVjdAotdmVyc2lvbiAxLjAuMS4KLQotQSBwbHVnaW4gY2FuIHJlcGxhY2UgbW9y ZSB0aGFuIG9uZSBtZW51IGF0IGEgdGltZS4gU2ltcGx5IHJlcGxhY2UgdGhlCi1jYWxsIHRvIE1h aW5NZW51QWN0aW9uKCkgaW4gdGhlIHNhbXBsZSBhYm92ZSBieSBhcHByb3ByaWF0ZSBjb2RlLgot Ci1Ob3RlIHRoYXQgYSBwbHVnaW4gKnNob3VsZCogb2ZmZXIgYSBzZXR1cCBvcHRpb24gd2hpY2gg YWxsb3dzIHRoZSB1c2VyCi10byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgcmVwbGFjZW1lbnQuICJE aXNhYmxlZCIgd291bGQgYmUgYSByZWFzb25hYmxlCi1kZWZhdWx0IHNldHRpbmcuIEJ5IHRlc3Rp bmcgZm9yIGRlZmluZSBNQUlOTUVOVUhPT0tTVkVSU05VTSwgYSBwbHVnaW4KLWNhbiBsZWF2ZSB0 aGUgc2V0dXAgb3B0aW9uIG91dCBhdCBjb21waWxldGltZS4KLQotSW4gY2FzZSB0aGVyZSBpcyBh biBpbnRlcm5hbCBwcm9ibGVtIHdoZW4gdHJ5aW5nIHRvIG9wZW4gdGhlIHJlcGxhY2VtZW50Ci1t ZW51LCBpdCBpcyBzYWZlIHRvIHJldHVybiB0cnVlIGV2ZW4gdGhvdWdoIERhdGEgaXMgTlVMTC4g SG93ZXZlciBhbgotT1NEIG1lc3NhZ2Ugc2hvdWxkIGluZGljYXRlIHRoZSBwcm9ibGVtIHRvIHRo ZSB1c2VyLgotCi1GZWVsIGZyZWUgdG8gc2hpcCB0aGlzIHBhdGNoIGFsb25nIHdpdGggeW91ciBw bHVnaW4uIEhvd2V2ZXIgaWYgeW91Ci10aGluayB5b3UgbmVlZCB0byBtb2RpZnkgdGhlIHBhdGNo LCB3ZSdkIGVuY291cmFnZSB5b3UgdG8gY29udGFjdCB0aGUKLWF1dGhvcnMgZmlyc3Qgb3IgYXQg bGVhc3QgdXNlIGEgc2VydmljZSBpZCB3aGljaCBkaWZmZXJzIGluIG1vcmUgdGhhbgotanVzdCB0 aGUgdmVyc2lvbiBudW1iZXIuCi0KLQotZGlmZiAtTnJ1cCB2ZHItMi43LjQvY29uZmlnLmggdmRy LTIuNy40LXRlc3QvY29uZmlnLmgKLS0tLSB2ZHItMi43LjQvY29uZmlnLmgJMjAyNS0wMi0yNiAx MDozNTowMy4wMDAwMDAwMDAgKzAxMDAKLSsrKyB2ZHItMi43LjQtdGVzdC9jb25maWcuaAkyMDI1 LTAyLTI2IDE0OjQ2OjI4Ljc2ODgyMDk2NCArMDEwMAotQEAgLTM1LDYgKzM1LDEwIEBACi0gLy8g b25seSB3aGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRvIHRoZSBwbHVnaW4gQVBJLiBUaGlzIGFsbG93 cyBjb21waWxlZAotIC8vIHBsdWdpbnMgdG8gd29yayB3aXRoIG5ld2VyIHZlcnNpb25zIG9mIHRo ZSBjb3JlIFZEUiBhcyBsb25nIGFzIG5vCi0gLy8gaW50ZXJmYWNlcyBoYXZlIGNoYW5nZWQuIEFQ SVZFUlNOVU0gYmVnaW5zIHdpdGggIjMwMC4uIiBmb3IgYmFja3dhcmRzCi0rCi0rLy8gVGhlIE1h aW5NZW51SG9vayBQYXRjaCdzIHZlcnNpb24gbnVtYmVyOgotKyNkZWZpbmUgTUFJTk1FTlVIT09L U1ZFUlNJT04gIjEuMC4xIgotKyNkZWZpbmUgTUFJTk1FTlVIT09LU1ZFUlNOVU0gMTAwMDEgIC8v IFZlcnNpb24gKiAxMDAwMCArIE1ham9yICogMTAwICsgTWlub3IKLSAvLyBjb21wYXRpYmlsaXR5 IGFuZCBjYW4gYmUgdXNlZCBpbiAjaWYgcHJlcHJvY2Vzc29yIHN0YXRlbWVudHMgdG8gaGFuZGxl Ci0gLy8gdmVyc2lvbiBkZXBlbmRlbnQgY29kZS4KLSAKLWRpZmYgLU5ydXAgdmRyLTIuNy40L21l bnUuYyB2ZHItMi43LjQtdGVzdC9tZW51LmMKLS0tLSB2ZHItMi43LjQvbWVudS5jCTIwMjUtMDIt MjYgMTA6MzU6MDMuMDAwMDAwMDAwICswMTAwCi0rKysgdmRyLTIuNy40LXRlc3QvbWVudS5jCTIw MjUtMDItMjYgMTU6MjA6NDIuMjUyNTYzNTc0ICswMTAwCi1AQCAtNDQ5MywxNSArNDQ5MywzMSBA QCBjTWVudU1haW46OmNNZW51TWFpbihlT1NTdGF0ZSBTdGF0ZSwgYm9vCi0gCi0gICAvLyBJbml0 aWFsIHN1Ym1lbnVzOgotIAotKyAgY09zZE9iamVjdCAqbWVudSA9IE5VTEw7Ci0gICBzd2l0Y2gg KFN0YXRlKSB7Ci0tICAgIGNhc2Ugb3NTY2hlZHVsZTogICBBZGRTdWJNZW51KG5ldyBjTWVudVNj aGVkdWxlKTsgYnJlYWs7Ci0tICAgIGNhc2Ugb3NDaGFubmVsczogICBBZGRTdWJNZW51KG5ldyBj TWVudUNoYW5uZWxzKTsgYnJlYWs7Ci0tICAgIGNhc2Ugb3NUaW1lcnM6ICAgICBBZGRTdWJNZW51 KG5ldyBjTWVudVRpbWVycyk7IGJyZWFrOwotLSAgICBjYXNlIG9zUmVjb3JkaW5nczogQWRkU3Vi TWVudShuZXcgY01lbnVSZWNvcmRpbmdzKE5VTEwsIDAsIE9wZW5TdWJNZW51cykpOyBicmVhazsK LS0gICAgY2FzZSBvc1NldHVwOiAgICAgIEFkZFN1Yk1lbnUobmV3IGNNZW51U2V0dXApOyBicmVh azsKLS0gICAgY2FzZSBvc0NvbW1hbmRzOiAgIEFkZFN1Yk1lbnUobmV3IGNNZW51Q29tbWFuZHMo dHIoIkNvbW1hbmRzIiksICZDb21tYW5kcykpOyBicmVhazsKLSsgICAgY2FzZSBvc1NjaGVkdWxl OgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2FsbEZpcnN0U2VydmljZSgiTWFpbk1l bnVIb29rc1BhdGNoLXYxLjA6Om9zU2NoZWR1bGUiLCAmbWVudSkpCi0rICAgICAgICAgICAgbWVu dSA9IG5ldyBjTWVudVNjaGVkdWxlOwotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ugb3NDaGFu bmVsczoKLSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxGaXJzdFNlcnZpY2UoIk1h aW5NZW51SG9va3NQYXRjaC12MS4wOjpvc0NoYW5uZWxzIiwgJm1lbnUpKQotKyAgICAgICAgICAg IG1lbnUgPSBuZXcgY01lbnVDaGFubmVsczsKLSsgICAgICAgIGJyZWFrOwotKyAgICBjYXNlIG9z VGltZXJzOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2FsbEZpcnN0U2VydmljZSgi TWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zVGltZXJzIiwgJm1lbnUpKQotKyAgICAgICAgICAg IG1lbnUgPSBuZXcgY01lbnVUaW1lcnM7Ci0rICAgICAgICBicmVhazsKLSsgICAgY2FzZSBvc1Jl Y29yZGluZ3M6Ci0rICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNl KCJNYWluTWVudUhvb2tzUGF0Y2gtdjEuMDo6b3NSZWNvcmRpbmdzIiwgJm1lbnUpKQotKyAgICAg ICAgICAgIG1lbnUgPSBuZXcgY01lbnVSZWNvcmRpbmdzKE5VTEwsIDAsIE9wZW5TdWJNZW51cyk7 Ci0rICAgICAgICBicmVhazsKLSsgICAgY2FzZSBvc1NldHVwOiAgICAgIG1lbnUgPSBuZXcgY01l bnVTZXR1cDsgYnJlYWs7Ci0rICAgIGNhc2Ugb3NDb21tYW5kczogICBtZW51ID0gbmV3IGNNZW51 Q29tbWFuZHModHIoIkNvbW1hbmRzIiksICZDb21tYW5kcyk7IGJyZWFrOwotICAgICBkZWZhdWx0 OiBicmVhazsKLSAgICAgfQotKyAgaWYgKG1lbnUpCi0rICAgICBpZiAobWVudS0+SXNNZW51KCkp Ci0rICAgICAgICBBZGRTdWJNZW51KChjT3NkTWVudSAqKSBtZW51KTsKLSB9Ci0gCi0gY09zZE9i amVjdCAqY01lbnVNYWluOjpQbHVnaW5Pc2RPYmplY3Qodm9pZCkKLUBAIC00NjEzLDEzICs0NjI5 LDM0IEBAIGVPU1N0YXRlIGNNZW51TWFpbjo6UHJvY2Vzc0tleShlS2V5cyBLZXkKLSAgIGVPU1N0 YXRlIHN0YXRlID0gY09zZE1lbnU6OlByb2Nlc3NLZXkoS2V5KTsKLSAgIEhhZFN1Yk1lbnUgfD0g SGFzU3ViTWVudSgpOwotIAotKyAgY09zZE9iamVjdCAqbWVudSA9IE5VTEw7Ci0gICBzd2l0Y2gg KHN0YXRlKSB7Ci0tICAgIGNhc2Ugb3NTY2hlZHVsZTogICByZXR1cm4gQWRkU3ViTWVudShuZXcg Y01lbnVTY2hlZHVsZSk7Ci0tICAgIGNhc2Ugb3NDaGFubmVsczogICByZXR1cm4gQWRkU3ViTWVu dShuZXcgY01lbnVDaGFubmVscyk7Ci0tICAgIGNhc2Ugb3NUaW1lcnM6ICAgICByZXR1cm4gQWRk U3ViTWVudShuZXcgY01lbnVUaW1lcnMpOwotLSAgICBjYXNlIG9zUmVjb3JkaW5nczogcmV0dXJu IEFkZFN1Yk1lbnUobmV3IGNNZW51UmVjb3JkaW5ncyk7Ci0tICAgIGNhc2Ugb3NTZXR1cDogICAg ICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVTZXR1cCk7Ci0tICAgIGNhc2Ugb3NDb21tYW5k czogICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVDb21tYW5kcyh0cigiQ29tbWFuZHMiKSwg JkNvbW1hbmRzKSk7Ci0rICAgIGNhc2Ugb3NTY2hlZHVsZToKLSsgICAgICAgIGlmICghY1BsdWdp bk1hbmFnZXI6OkNhbGxGaXJzdFNlcnZpY2UoIk1haW5NZW51SG9va3NQYXRjaC12MS4wOjpvc1Nj aGVkdWxlIiwgJm1lbnUpKQotKyAgICAgICAgICAgIG1lbnUgPSBuZXcgY01lbnVTY2hlZHVsZTsK LSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBzdGF0ZSA9IG9zQ29udGludWU7Ci0rICAgICAg ICBicmVhazsKLSsgICAgY2FzZSBvc0NoYW5uZWxzOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFu YWdlcjo6Q2FsbEZpcnN0U2VydmljZSgiTWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zQ2hhbm5l bHMiLCAmbWVudSkpCi0rICAgICAgICAgICAgbWVudSA9IG5ldyBjTWVudUNoYW5uZWxzOwotKyAg ICAgICAgZWxzZQotKyAgICAgICAgICAgIHN0YXRlID0gb3NDb250aW51ZTsKLSsgICAgICAgIGJy ZWFrOwotKyAgICBjYXNlIG9zVGltZXJzOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6 Q2FsbEZpcnN0U2VydmljZSgiTWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zVGltZXJzIiwgJm1l bnUpKQotKyAgICAgICAgICAgIG1lbnUgPSBuZXcgY01lbnVUaW1lcnM7Ci0rICAgICAgICBlbHNl Ci0rICAgICAgICAgICAgc3RhdGUgPSBvc0NvbnRpbnVlOwotKyAgICAgICAgYnJlYWs7Ci0rICAg IGNhc2Ugb3NSZWNvcmRpbmdzOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2FsbEZp cnN0U2VydmljZSgiTWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zUmVjb3JkaW5ncyIsICZtZW51 KSkKLSsgICAgICAgICAgICBtZW51ID0gbmV3IGNNZW51UmVjb3JkaW5nczsKLSsgICAgICAgIGVs c2UKLSsgICAgICAgICAgICBzdGF0ZSA9IG9zQ29udGludWU7Ci0rICAgICAgICBicmVhazsKLSsg ICAgY2FzZSBvc1NldHVwOiAgICAgIG1lbnUgPSBuZXcgY01lbnVTZXR1cDsgYnJlYWs7Ci0rICAg IGNhc2Ugb3NDb21tYW5kczogICBtZW51ID0gbmV3IGNNZW51Q29tbWFuZHModHIoIkNvbW1hbmRz IiksICZDb21tYW5kcyk7IGJyZWFrOwotICAgICBjYXNlIG9zU3RvcFJlY29yZDogaWYgKEludGVy ZmFjZS0+Q29uZmlybSh0cigiU3RvcCByZWNvcmRpbmc/IikpKSB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoY09zZEl0ZW0gKml0ZW0gPSBHZXQoQ3VycmVudCgpKSkgewotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY1JlY29yZENvbnRyb2xzOjpTdG9wKGl0ZW0tPlRleHQo KSArIHN0cmxlbih0cihTVE9QX1JFQ09SRElORykpKTsKLUBAIC00NjcwLDYgKzQ3MDcsMTIgQEAg ZU9TU3RhdGUgY01lbnVNYWluOjpQcm9jZXNzS2V5KGVLZXlzIEtleQotICAgICAgICAgICAgICAg IGRlZmF1bHQ6ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICB9Ci0rICBpZiAo bWVudSkgewotKyAgICAgaWYgKG1lbnUtPklzTWVudSgpKQotKyAgICAgICAgcmV0dXJuIEFkZFN1 Yk1lbnUoKGNPc2RNZW51ICopIG1lbnUpOwotKyAgICAgcGx1Z2luT3NkT2JqZWN0ID0gbWVudTsK LSsgICAgIHJldHVybiBvc1BsdWdpbjsKLSsgICAgIH0KLSAgIGJvb2wgRG9EaXNwbGF5ID0gVXBk YXRlKCk7Ci0gICBpZiAoS2V5ICE9IGtOb25lKSB7Ci0gICAgICBpZiAoSTE4bkN1cnJlbnRMYW5n dWFnZSgpICE9IG9zZExhbmd1YWdlKSB7CgpkaWZmIC0tZ2l0IGEvZGVmaW5lX0FVRElPX0dFVF9Q VFMucGF0Y2ggYi9kZWZpbmVfQVVESU9fR0VUX1BUUy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNTE2MGNlYS4uMDAwMDAwMAotLS0gYS9kZWZpbmVfQVVESU9fR0VUX1BUUy5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLSB2ZHItMi40LjAvUExVR0lO Uy9zcmMvZHZiaGRkZXZpY2UvZHZiaGRmZmRldmljZS5oLm9yaWcJMjAxOC0xMC0xMCAxMTo1Njo0 OS4xODE0NDc0OTkgKzAyMDAKLSsrKyB2ZHItMi40LjAvUExVR0lOUy9zcmMvZHZiaGRkZXZpY2Uv ZHZiaGRmZmRldmljZS5oCTIwMTgtMTAtMTAgMTE6NTc6NDkuMjYzNzYwNjEwICswMjAwCi1AQCAt NCw2ICs0LDkgQEAKLSAgKiBTZWUgdGhlIFJFQURNRSBmaWxlIGZvciBjb3B5cmlnaHQgaW5mb3Jt YXRpb24gYW5kIGhvdyB0byByZWFjaCB0aGUgYXV0aG9yLgotICAqLwotIAotKyNpZm5kZWYgQVVE SU9fR0VUX1BUUwotKyNkZWZpbmUgQVVESU9fR0VUX1BUUyAgICAgICAgICAgICAgX0lPUignbycs IDE5LCBfX3U2NCkKLSsjZW5kaWYKLSAjaWZuZGVmIF9fRFZCSERGRkRFVklDRV9ICi0gI2RlZmlu ZSBfX0RWQkhERkZERVZJQ0VfSAotIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmlu ZGV4IDZkNTQ1YzUuLjMxNjgwZDYgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpA QCAtMSw3ICsxIEBACiBTSEE1MTIgKHZkci0yLjguMi50YXIuYnoyKSA9IGNlY2M5MGJiNmEyNWYx NGE1M2Y4MjIzOGJkMTY4MGUwZTM5MTliYzE5N2JlODFlNDA1ZTBmNjk4YjM0MjVmYjNmN2EyMWQ2 MDBlNzg5ZmRkMWRiMjcxMGJhZjYyNGJlZjQzMWI3YjZiYWJjYjcyMWVmNDE3NzMxMzYyNzVjYTll Ci1TSEE1MTIgKHZkci1yY3UtMi4yLjAudGd6KSA9IDU2YWJlYmNmZGUzNTExYzRkY2Y2ZjQxNDkx NWM3YWE3MGExNmI4ZTEzOGUyZDkzNjQwODA4MjhlZGM5YjBkYTA0NWFjYWFkYWFhNDA5NGQxMzE1 ZGRlZmRhZmE1Zjk2NmFlYmNmYWNmOTc5YzA2OGUwNzdmMWUzMmUyOTc3M2I3Ci1TSEE1MTIgKHZk ci1kdmJzZGRldmljZS0yLjIuMC50Z3opID0gYWMwYjk0YjhiMTkyMjA4YWQ3ZTczNmQ3YzRmMjdj Y2E2NTE3MTM0YjE3ZmM4NmE3OWNkZDE5NDUzMTc2ZDVmNjA3NjQxOGJmNjc5NDM1ODk5Y2Q5NTMw NTNmM2I1NDc3NjM0MmJjZGFiMjNhNjU5ZTgzMzFlOWYyZWQ0ZWUzNjQKLVNIQTUxMiAoMzQ3M2E3 YjkzOWQ3LnppcCkgPSBmYzQwNWFjODFjYzEzNzRkZTNhMmQ0NTdmNzY5NzJlNjA1Y2Y1MWMyMGM1 ZTg2ZjRmYjY4M2JiN2ZjNzhmZGU1MTY5MGU2NWY0NjM4NzBjNjg4MWE2NTMwODcyMmNjZWNkNjBk NGE4OTU3ZTNlMmQ0M2VjZmQ2NjVmMGU1YWE4ZgotU0hBNTEyICh2ZHJfMi4yLjAtNS5kZWJpYW4u dGFyLmJ6MikgPSA2YmE5MjRmZWU4NDY3M2JlMmEyNjUyYTI2YmNjZGU0ZGMwN2RkOWM3YmNjODcx ODY4ZjQ0YmRjMjc0ODEzNmE4YWMyNmZlYjAyNmM1YjVkZDliMzgzMWM2NDFlZjFlNzI5MDUyYzEx OTBhNDVjYzgwNWYzZmE1NjNjM2E1OTc5OAotU0hBNTEyICh2ZHJfMS40LjUtMi5kcy5kaWZmLmd6 KSA9IGRjODJjYTI0ZTgzMGE0ZmM0YmZlZDUxYjJkMTEyMzAxYjkwNThmMmQxZmVhOTM3NjFhNDJk Zjg3MTVkYmUzYmEwZTllODYyMTQ2NGM4YTZmZTJkZDNiZDYyZDMzZWZhZmY5MTExODJkMzQ4OWVm NzQxMDk2NjU0YjdhM2ViMzI2Ci1TSEE1MTIgKHZkci0yLjQuNi1lZGl0cmVjb3JkaW5nLnBhdGNo Lmd6KSA9IDA5MzVmZGJlNmI1NTdjOGIwMzM5NmZmMzEwMjFiMzU3NThhMDQwZjI5NzMxNWYzOWJk ZjYwNTk2MWE4YWQ3Nzg5Nzg4NGI1MjdlMjY1NWUzNmZmODI0MWUwNmNkMWIyNTkyYzNiZDBiZTA5 ZTc4NDM0MjYzZTQzZTg1MzY4ZTg2CgpkaWZmIC0tZ2l0IGEvdmRyLTEuNy4yMS1wbHVnaW4tbWlz c2luZy5wYXRjaCBiL3Zkci0xLjcuMjEtcGx1Z2luLW1pc3NpbmcucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAxMWEwZjEuLjAwMDAwMDAKLS0tIGEvdmRyLTEuNy4yMS1wbHVn aW4tbWlzc2luZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLWRpZmYgLXVw IHZkci0xLjcuMjEvcGx1Z2luLmN+IHZkci0xLjcuMjEvcGx1Z2luLmMKLS0tLSB2ZHItMS43LjIx L3BsdWdpbi5jfgkyMDEwLTAxLTA2IDEzOjM2OjQ2LjAwMDAwMDAwMCArMDIwMAotKysrIHZkci0x LjcuMjEvcGx1Z2luLmMJMjAxMS0xMC0xNyAyMToxODowNy40MzI0MTk5MTUgKzAzMDAKLUBAIC0z MTcsNiArMzE3LDEyIEBAIHZvaWQgY1BsdWdpbk1hbmFnZXI6OkFkZFBsdWdpbihjb25zdCBjaGEK LSAgIGNoYXIgKnAgPSBzdHJjaHIocywgJyAnKTsKLSAgIGlmIChwKQotICAgICAgKnAgPSAwOwot KyAgc3RydWN0IHN0YXQgc3Q7Ci0rICBpZiAoc3RhdCAoY1N0cmluZzo6c3ByaW50ZigiJXMvJXMl cyVzJXMiLCBkaXJlY3RvcnksIExJQlZEUl9QUkVGSVgsIHMsIFNPX0lORElDQVRPUiwgQVBJVkVS U0lPTiksICZzdCkgJiYgZXJybm8gPT0gRU5PRU5UKSB7Ci0rICAgICBlc3lzbG9nKCJXQVJOOiBt aXNzaW5nIHBsdWdpbiAnJXMnIiwgcyk7Ci0rICAgICBmcHJpbnRmKHN0ZGVyciwgInZkcjogbWlz c2luZyBwbHVnaW4gJyVzJ1xuIiwgcyk7Ci0rICAgICB9Ci0rICBlbHNlCi0gICBkbGxzLkFkZChu ZXcgY0RsbChjU3RyaW5nOjpzcHJpbnRmKCIlcy8lcyVzJXMlcyIsIGRpcmVjdG9yeSwgTElCVkRS X1BSRUZJWCwgcywgU09fSU5ESUNBVE9SLCBBUElWRVJTSU9OKSwgQXJncykpOwotICAgZnJlZShz KTsKLSB9Ci1AQCAtMzI1LDcgKzMzMSw3IEBAIGJvb2wgY1BsdWdpbk1hbmFnZXI6OkxvYWRQbHVn aW5zKGJvb2wgTG8KLSB7Ci0gICBmb3IgKGNEbGwgKmRsbCA9IGRsbHMuRmlyc3QoKTsgZGxsOyBk bGwgPSBkbGxzLk5leHQoZGxsKSkgewotICAgICAgIGlmICghZGxsLT5Mb2FkKExvZykpCi0tICAg ICAgICAgcmV0dXJuIGZhbHNlOwotKyAgICAgICAgIC8qcmV0dXJuIGZhbHNlKi87Ci0gICAgICAg fQotICAgcmV0dXJuIHRydWU7Ci0gfQoKZGlmZiAtLWdpdCBhL3Zkci0yLjQuMC1wYXRocy5wYXRj aCBiL3Zkci0yLjQuMC1wYXRocy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MWVmOTgyZC4uMDAwMDAwMAotLS0gYS92ZHItMi40LjAtcGF0aHMucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw2MiArMCwwIEBACi0tLS0gdmRyLTIuNC4wL25ld3BsdWdpbi5vcmlnCTIwMTgtMDQt MTUgMTc6NDI6MTkuNDY0MDExMDY1ICswMjAwCi0rKysgdmRyLTIuNC4wL25ld3BsdWdpbgkyMDE4 LTA0LTE1IDE3OjQyOjU2LjA3MTk3NTk4MiArMDIwMAotQEAgLTI0LDcgKzI0LDcgQEAKLSAkUExV R0lOX0RFU0NSSVBUSU9OID0gIkVudGVyIGRlc2NyaXB0aW9uIGZvciAnJFBMVUdJTl9OQU1FJyBw bHVnaW4iOwotICRQTFVHSU5fTUFJTkVOVFJZID0gJFBMVUdJTl9DTEFTUzsKLSAKLS0kUExVR0lO U19TUkMgPSAiUExVR0lOUy9zcmMiOwotKyRQTFVHSU5TX1NSQyA9ICIuIjsKLSAKLSAkUkVBRE1F ID0gcXEKLSB7VGhpcyBpcyBhICJwbHVnaW4iIGZvciB0aGUgVmlkZW8gRGlzayBSZWNvcmRlciAo VkRSKS4KLS0tLSB2ZHItMi40LjAvdmRyLjEub3JpZwkyMDE4LTA0LTE1IDE3OjQ0OjI5LjU5NDg4 ODU4NSArMDIwMAotKysrIHZkci0yLjQuMC92ZHIuMQkyMDE4LTA0LTE1IDE3OjQ4OjMyLjAxNTM0 MDYzMyArMDIwMAotQEAgLTU2LDcgKzU2LDcgQEAKLSAuVFAKLSAuQkkgXC1jXCAgZGlyICxcIFwt XC1jb25maWc9IGRpcgotIFJlYWQgY29uZmlnIGZpbGVzIGZyb20gZGlyZWN0b3J5IFxmSWRpclxm UgotLShkZWZhdWx0IGlzIHRvIHJlYWQgdGhlbSBmcm9tIHRoZSB2aWRlbyBkaXJlY3RvcnkpLgot KyhkZWZhdWx0IGlzIHRvIHJlYWQgdGhlbSBmcm9tIF9fQ09ORklHRElSX18pLgotIC5UUAotIC5C IFwtZCwgXC1cLWRhZW1vbgotIFJ1biBpbiBkYWVtb24gbW9kZSAoaW1wbGllcyBcLVwtbm9cLWti ZCkuCi1AQCAtMTM3LDcgKzEzNyw3IEBACi0gTE9HX1VTRVIsIGFkZCAnLm4nIHRvIExFVkVMLCBh cyBpbiAzLjcgKG49MC4uNykuCi0gLlRQCi0gLkJJIFwtTFwgIGRpciAsXCBcLVwtbGliPSBkaXIK LS1TZWFyY2ggZm9yIHBsdWdpbnMgaW4gZGlyZWN0b3J5IFxmSWRpclxmUiAoZGVmYXVsdCBpcyAu L1BMVUdJTlMvbGliKS4KLStTZWFyY2ggZm9yIHBsdWdpbnMgaW4gZGlyZWN0b3J5IFxmSWRpclxm UiAoZGVmYXVsdCBpcyBfX1BMVUdJTkRJUl9fKS4KLSBUaGVyZSBjYW4gYmUgc2V2ZXJhbCBcZkJc LUxcZlIgb3B0aW9ucyB3aXRoIGRpZmZlcmVudCBcZklkaXJcZlIgdmFsdWVzLgotIEVhY2ggb2Yg dGhlbSB3aWxsIGFwcGx5IHRvIHRoZSBcZkJcLVBcZlIgb3B0aW9ucyBmb2xsb3dpbmcgaXQuCi0g LlRQCi1AQCAtMjMxLDcgKzIzMSw3IEBACi0gLlRQCi0gLkJJIFwtdlwgIGRpciAsXCBcLVwtdmlk ZW89IGRpcgotIFVzZSBcZklkaXJcZlIgYXMgdmlkZW8gZGlyZWN0b3J5LgotLVRoZSBkZWZhdWx0 IGlzIFxmSS92aWRlb1xmUi4KLStUaGUgZGVmYXVsdCBpcyBcZklfX1ZJREVPRElSX19cZlIuCi0g LlRQCi0gLkIgXC1WLCBcLVwtdmVyc2lvbgotIFByaW50IHZlcnNpb24gaW5mb3JtYXRpb24gYW5k IGV4aXQuCi0tLS0gdmRyLTIuNC4wL3Zkci41Lm9yaWcJMjAxOC0wNC0xNSAxNzo1MTowMi4yMTMy ODIxNzkgKzAyMDAKLSsrKyB2ZHItMi40LjAvdmRyLjUJMjAxOC0wNC0xNSAxNzo1Mjo1MS43OTky Mzc5MjMgKzAyMDAKLUBAIC03MTQsNyArNzE0LDcgQEAKLSBFYWNoIGxpbmUgY29udGFpbnMgb25l IG9wdGlvbiBpbiB0aGUgZm9ybWF0ICJOYW1lID0gVmFsdWUiLgotIFNlZSB0aGUgTUFOVUFMIGZp bGUgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGF2YWlsYWJsZSBvcHRpb25zLgotIC5TUyBUSEVN RVMKLS1UaGUgZmlsZXMgXGZJdGhlbWVzLzxza2luPlwtPHRoZW1lPi50aGVtZVxmUiBpbiB0aGUg Y29uZmlnIGRpcmVjdG9yeSBjb250YWluIHRoZQotK1RoZSBmaWxlcyBcZklfX1ZBUkRJUl9fL3Ro ZW1lcy88c2tpbj5cLTx0aGVtZT4udGhlbWVcZlIgY29udGFpbiB0aGUKLSBjb2xvciB0aGVtZSBk ZWZpbml0aW9ucyBmb3IgdGhlIHZhcmlvdXMgc2tpbnMuIEluIHRoZSBhY3R1YWwgZmlsZSBuYW1l cyBcZkk8c2tpbj5cZlIKLSB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBuYW1lIGlmIHRoZSBza2lu IHRoaXMgdGhlbWUgYmVsb25ncyB0bywgYW5kIFxmSTx0aGVtZT5cZlIKLSB3aWxsIGJlIHRoZSBu YW1lIG9mIHRoaXMgdGhlbWUuCi0tLS0gdmRyLTIuNC4wL3Zkci5jLm9yaWcJMjAxOC0wNC0xNSAx Nzo1Mzo1MS4xMDcxOTc1MTkgKzAyMDAKLSsrKyB2ZHItMi40LjAvdmRyLmMJMjAxOC0wNC0xNSAx Nzo1NDo0NC41MTIxNTk5MTIgKzAyMDAKLUBAIC03NTAsNyArNzUwLDcgQEAKLSAgIGlmICghUmVz b3VyY2VEaXJlY3RvcnkpCi0gICAgICBSZXNvdXJjZURpcmVjdG9yeSA9IERFRkFVTFRSRVNESVI7 Ci0gICBjUGx1Z2luOjpTZXRSZXNvdXJjZURpcmVjdG9yeShSZXNvdXJjZURpcmVjdG9yeSk7Ci0t ICBjVGhlbWVzOjpTZXRUaGVtZXNEaXJlY3RvcnkoQWRkRGlyZWN0b3J5KENvbmZpZ0RpcmVjdG9y eSwgInRoZW1lcyIpKTsKLSsgIGNUaGVtZXM6OlNldFRoZW1lc0RpcmVjdG9yeSgiX19WQVJESVJf Xy90aGVtZXMiKTsKLSAKLSAgIC8vIENvbmZpZ3VyYXRpb24gZGF0YToKLSAKCmRpZmYgLS1naXQg YS92ZHItMi40LjYtQ2xlYXJPYnNvbGV0ZUNoYW5uZWxzMi5kaWZmIGIvdmRyLTIuNC42LUNsZWFy T2Jzb2xldGVDaGFubmVsczIuZGlmZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTI1 MWQ4Ny4uMDAwMDAwMAotLS0gYS92ZHItMi40LjYtQ2xlYXJPYnNvbGV0ZUNoYW5uZWxzMi5kaWZm CisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotZGlmZiAtTnVycCB2ZHItMi40LjYub3Jp Zy9jaGFubmVscy5jIHZkci0yLjQuNi9jaGFubmVscy5jCi0tLS0gdmRyLTIuNC42Lm9yaWcvY2hh bm5lbHMuYwkyMDIwLTA0LTExIDExOjIyOjA1LjAwMDAwMDAwMCArMDIwMAotKysrIHZkci0yLjQu Ni9jaGFubmVscy5jCTIwMjEtMDEtMDcgMTA6MDU6MDYuNTAzMzgzNzM4ICswMTAwCi1AQCAtMTE0 NSwzICsxMTQ1LDIzIEBAIGNTdHJpbmcgQ2hhbm5lbFN0cmluZyhjb25zdCBjQ2hhbm5lbCAqQ2gK LSAgICAgIHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICIlcyIsIHRyKCIqKiogSW52 YWxpZCBDaGFubmVsICoqKiIpKTsKLSAgIHJldHVybiBidWZmZXI7Ci0gfQotKwotKy8vIC0tLSBj Q2hhbm5lbCBjb250LiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKwotK2Jvb2wgY0NoYW5uZWw6OkNsZWFyT2Jzb2xldGVDaGFubmVsKHZv aWQpCi0rewotKyAgYm9vbCBDaGFubmVsc01vZGlmaWVkID0gZmFsc2U7Ci0rICBpZiAodGltZShO VUxMKSAtIFNlZW4oKSA8PSBDSEFOTkVMVElNRU9CU09MRVRFICYmIGVuZHN3aXRoKG5hbWUsIENI QU5ORUxNQVJLT0JTT0xFVEUpKSB7Ci0rICAgICBpbnQgbWxlbiA9IHN0cmxlbihDSEFOTkVMTUFS S09CU09MRVRFKTsKLSsgICAgIGludCBlID0gc3RybGVuKG5hbWUpIC0gbWxlbiAtIDE7Ci0rICAg ICBuYW1lW2VdID0gJ1wwJzsKLSsgICAgIGNTdHJpbmcgY2xybmFtZSA9IGNTdHJpbmc6OnNwcmlu dGYoIiVzIiwgbmFtZSk7Ci0rICAgICBuYW1lW2VdID0gJyAnOwotKwotKyAgICAgaW50IE9sZFNo b3dDaGFubmVsTmFtZXNXaXRoU291cmNlID0gU2V0dXAuU2hvd0NoYW5uZWxOYW1lc1dpdGhTb3Vy Y2U7Ci0rICAgICBTZXR1cC5TaG93Q2hhbm5lbE5hbWVzV2l0aFNvdXJjZSA9IDA7Ci0rICAgICBD aGFubmVsc01vZGlmaWVkIHw9IFNldE5hbWUoY2xybmFtZSwgc2hvcnROYW1lLCBwcm92aWRlciAr IG1sZW4gKyAxKTsKLSsgICAgIFNldHVwLlNob3dDaGFubmVsTmFtZXNXaXRoU291cmNlID0gT2xk U2hvd0NoYW5uZWxOYW1lc1dpdGhTb3VyY2U7Ci0rICAgICB9Ci0rICByZXR1cm4gQ2hhbm5lbHNN b2RpZmllZDsKLSt9Ci1kaWZmIC1OdXJwIHZkci0yLjQuNi5vcmlnL2NoYW5uZWxzLmggdmRyLTIu NC42L2NoYW5uZWxzLmgKLS0tLSB2ZHItMi40LjYub3JpZy9jaGFubmVscy5oCTIwMjAtMDYtMTAg MTY6MDA6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgdmRyLTIuNC42L2NoYW5uZWxzLmgJMjAyMS0w MS0wNiAyMjozNToyOC4yMjQxMTg0OTkgKzAxMDAKLUBAIC0yMDIsNiArMjAyLDcgQEAgcHVibGlj OgotICAgdm9pZCBTZXRSZWZDaGFubmVsKGNDaGFubmVsICpSZWZDaGFubmVsKTsKLSAgIGJvb2wg U2V0U3VidGl0bGluZ0Rlc2NyaXB0b3JzKHVjaGFyICpTdWJ0aXRsaW5nVHlwZXMsIHVpbnQxNl90 ICpDb21wb3NpdGlvblBhZ2VJZHMsIHVpbnQxNl90ICpBbmNpbGxhcnlQYWdlSWRzKTsKLSAgIHZv aWQgU2V0U2Vlbih2b2lkKTsKLSsgIGJvb2wgQ2xlYXJPYnNvbGV0ZUNoYW5uZWwodm9pZCk7Ci0g ICB2b2lkIERlbExpbmtDaGFubmVsKGNDaGFubmVsICpMaW5rQ2hhbm5lbCk7Ci0gICB9OwotIAot ZGlmZiAtTnVycCB2ZHItMi40LjYub3JpZy9wYXQuYyB2ZHItMi40LjYvcGF0LmMKLS0tLSB2ZHIt Mi40LjYub3JpZy9wYXQuYwkyMDIwLTEyLTE4IDE1OjUxOjU3LjAwMDAwMDAwMCArMDEwMAotKysr IHZkci0yLjQuNi9wYXQuYwkyMDIxLTAxLTA3IDEwOjM0OjAwLjk1Njc3ODEzOCArMDEwMAotQEAg LTQ4OSw2ICs0OTksNyBAQCB2b2lkIGNQYXRGaWx0ZXI6OlByb2Nlc3ModV9zaG9ydCBQaWQsIHVf Ci0gICAgICAgICBTd2l0Y2hUb05leHRQbXRQaWQoKTsKLSAgICAgIGNDaGFubmVsICpDaGFubmVs ID0gQ2hhbm5lbHMtPkdldEJ5U2VydmljZUlEKFNvdXJjZSgpLCBUcmFuc3BvbmRlcigpLCBwbXQu Z2V0U2VydmljZUlkKCkpOwotICAgICAgaWYgKENoYW5uZWwpIHsKLSsgICAgICAgIENoYW5uZWwt PlNldFNlZW4oKTsKLSAgICAgICAgIFNJOjpDYURlc2NyaXB0b3IgKmQ7Ci0gICAgICAgICBjQ2FE ZXNjcmlwdG9ycyAqQ2FEZXNjcmlwdG9ycyA9IG5ldyBjQ2FEZXNjcmlwdG9ycyhDaGFubmVsLT5T b3VyY2UoKSwgQ2hhbm5lbC0+VHJhbnNwb25kZXIoKSwgQ2hhbm5lbC0+U2lkKCksIFBpZCk7Ci0g ICAgICAgICAvLyBTY2FuIHRoZSBjb21tb24gbG9vcDoKLUBAIC03MTgsNiArNzI5LDggQEAgdm9p ZCBjUGF0RmlsdGVyOjpQcm9jZXNzKHVfc2hvcnQgUGlkLCB1XwotICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSsgICAgICAgIGlmIChTZXR1 cC5VcGRhdGVDaGFubmVscyA9PSAxIHx8IFNldHVwLlVwZGF0ZUNoYW5uZWxzID49IDMpCi0rICAg ICAgICAgICBDaGFubmVsc01vZGlmaWVkIHw9IENoYW5uZWwtPkNsZWFyT2Jzb2xldGVDaGFubmVs KCk7Ci0gICAgICAgICBpZiAoU2V0dXAuVXBkYXRlQ2hhbm5lbHMgPj0gMikgewotICAgICAgICAg ICAgQ2hhbm5lbHNNb2RpZmllZCB8PSBDaGFubmVsLT5TZXRQaWRzKFZwaWQsIFBwaWQsIFZ0eXBl LCBBcGlkcywgQXR5cGVzLCBBTGFuZ3MsIERwaWRzLCBEdHlwZXMsIERMYW5ncywgU3BpZHMsIFNM YW5ncywgVHBpZCk7Ci0gICAgICAgICAgICBDaGFubmVsc01vZGlmaWVkIHw9IENoYW5uZWwtPlNl dENhSWRzKENhRGVzY3JpcHRvcnMtPkNhSWRzKCkpOwoKZGlmZiAtLWdpdCBhL3Zkci0yLjcuMi10 aW1lcnMucGF0Y2ggYi92ZHItMi43LjItdGltZXJzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA1NjY2OWRhLi4wMDAwMDAwCi0tLSBhL3Zkci0yLjcuMi10aW1lcnMucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0tLS0gdGltZXJzLmMgICAgMjAyNC8wMy8w NiAxNDozNzoxNSAgICAgNS4yMAotKysrIHRpbWVycy5jICAgIDIwMjQvMTAvMTAgMDk6MjM6MzQK LUBAIC03MjYsMTAgKzcyNiwzOSBAQAotIGJvb2wgY1RpbWVyOjpFeHBpcmVkKHZvaWQpIGNvbnN0 Ci0gewotICAgaWYgKElzU2luZ2xlRXZlbnQoKSAmJiAhUmVjb3JkaW5nKCkpIHsKLSsgICAgIHRp bWVfdCBOb3cgPSB0aW1lKE5VTEwpOwotICAgICAgdGltZV90IEV4cGlyZVRpbWUgPSBTdG9wVGlt ZUV2ZW50KCk7Ci0tICAgICBpZiAoSGFzRmxhZ3ModGZWcHMpKQotKyAgICAgaWYgKEhhc0ZsYWdz KHRmVnBzKSkgewotICAgICAgICAgRXhwaXJlVGltZSArPSBFWFBJUkVMQVRFTkNZOwotLSAgICAg cmV0dXJuIEV4cGlyZVRpbWUgPD0gdGltZShOVUxMKTsKLSsgICAgICAgIGlmIChFeHBpcmVUaW1l IDw9IE5vdykgewotKyAgICAgICAgICAgTE9DS19TQ0hFRFVMRVNfUkVBRDsKLSsgICAgICAgICAg IGNvbnN0IGNTY2hlZHVsZSAqU2NoZWR1bGUgPSBldmVudCA/IGV2ZW50LT5TY2hlZHVsZSgpIDog TlVMTDsKLSsgICAgICAgICAgIGNvbnN0IGNFdmVudCAqRmlyc3RFdmVudCA9IGV2ZW50OwotKyAg ICAgICAgICAgaWYgKFNjaGVkdWxlKQotKyAgICAgICAgICAgICAgRmlyc3RFdmVudCA9IFNjaGVk dWxlLT5FdmVudHMoKS0+TmV4dChGaXJzdEV2ZW50KTsKLSsgICAgICAgICAgIGVsc2UgaWYgKChT Y2hlZHVsZSA9IFNjaGVkdWxlcy0+R2V0U2NoZWR1bGUoQ2hhbm5lbCgpKSkgIT0gTlVMTCkgewot KyAgICAgICAgICAgICAgRmlyc3RFdmVudCA9IFNjaGVkdWxlLT5FdmVudHMoKS0+Rmlyc3QoKTsK LSsgICAgICAgICAgICAgIGlmIChGaXJzdEV2ZW50KQotKyAgICAgICAgICAgICAgICAgZHN5c2xv ZygidGltZXIgJXMgaGFkIG5vIGV2ZW50LCBnb3QgJXMgZnJvbSBjaGFubmVsL3NjaGVkdWxlIiwg KlRvRGVzY3IoKSwgKkZpcnN0RXZlbnQtPlRvRGVzY3IoKSk7Ci0rICAgICAgICAgICAgICB9Ci0r ICAgICAgICAgICBpZiAoRmlyc3RFdmVudCkgewotKyAgICAgICAgICAgICAgaWYgKFNjaGVkdWxl KSB7Ci0rICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNFdmVudCAqZSA9IEZpcnN0RXZlbnQ7 IGU7IGUgPSBTY2hlZHVsZS0+RXZlbnRzKCktPk5leHQoZSkpIHsKLSsgICAgICAgICAgICAgICAg ICAgICBpZiAoZS0+VnBzKCkgPT0gc3RhcnRUaW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgRXhwaXJlVGltZSA9IGUtPkVuZFRpbWUoKSArIEVYUElSRUxBVEVOQ1k7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgZHN5c2xvZygidGltZXIgJXMgaXMgd2FpdGluZyBmb3IgbmV4dCBWUFMg ZXZlbnQgJXMiLCAqVG9EZXNjcigpLCAqZS0+VG9EZXNjcigpKTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKLSsgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAg ICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgfQotKyAgICAg ICAgICAgZWxzZSB7Ci0rICAgICAgICAgICAgICBkc3lzbG9nKCJ0aW1lciAlcyBoYXMgbm8gZXZl bnQsIHNldHRpbmcgZXhwaXJhdGlvbiB0byArMjRoIiwgKlRvRGVzY3IoKSk7Ci0rICAgICAgICAg ICAgICBFeHBpcmVUaW1lICs9IDM2MDAgKiAyNDsKLSsgICAgICAgICAgICAgIH0KLSsgICAgICAg ICAgIH0KLSsgICAgICAgIH0KLSsgICAgIHJldHVybiBFeHBpcmVUaW1lIDw9IE5vdzsKLSAgICAg IH0KLSAgIHJldHVybiBmYWxzZTsKLSB9CgpkaWZmIC0tZ2l0IGEvdmRyLTIuNy40LWZlZG9yYS1w a2djb25maWcucGF0Y2ggYi92ZHItMi43LjQtZmVkb3JhLXBrZ2NvbmZpZy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTE0ZWIwOC4uMDAwMDAwMAotLS0gYS92ZHItMi43LjQt ZmVkb3JhLXBrZ2NvbmZpZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS0t LSB2ZHItMi43LjQvTWFrZWZpbGUub3JpZwkyMDI1LTAyLTI2IDE0OjA3OjI0LjMyMzcxODk0MiAr MDEwMAotKysrIHZkci0yLjcuNC9NYWtlZmlsZQkyMDI1LTAyLTI2IDE0OjA4OjMzLjU4MzY4NzM3 NCArMDEwMAotQEAgLTE4Niw2ICsxODYsMTIgQEAKLSAJQGVjaG8gImNmbGFncz0kKENGTEFHUykg JChDREVGSU5FUykgJChDSU5DTFVERVMpICQoSERSRElSKSIgPj4gJEAKLSAJQGVjaG8gImN4eGZs YWdzPSQoQ1hYRkxBR1MpICQoQ0RFRklORVMpICQoQ0lOQ0xVREVTKSAkKEhEUkRJUikiID4+ICRA Ci0gCUBlY2hvICIiID4+ICRACi0rCUBlY2hvICJkYXRhZGlyPVwkJHtyZXNkaXJ9IiA+PiAkQAot KwlAZWNobyAicnVuZGlyPSQoUlVORElSKSIgPj4gJEAKLSsJQGVjaG8gInZhcmRpcj0kKFZBUkRJ UikiID4+ICRACi0rCUBlY2hvICJ1c2VyPSQoVkRSX1VTRVIpIiA+PiAkQAotKwlAZWNobyAiZ3Jv dXA9JChWRFJfR1JPVVApIiA+PiAkQAotKwlAZWNobyAiIiA+PiAkQAotIAlAZWNobyAiTmFtZTog VkRSIiA+PiAkQAotIAlAZWNobyAiRGVzY3JpcHRpb246IFZpZGVvIERpc2sgUmVjb3JkZXIiID4+ ICRACi0gCUBlY2hvICJVUkw6IGh0dHBzOi8vd3d3LnR2ZHIuZGUvIiA+PiAkQAoKZGlmZiAtLWdp dCBhL3Zkci0yLjcuOS1NYWluTWVudUhvb2tzLXYxXzBfNS5kaWZmIGIvdmRyLTIuNy45LU1haW5N ZW51SG9va3MtdjFfMF81LmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3NWMw ZmYuLjAwMDAwMDAKLS0tIGEvdmRyLTIuNy45LU1haW5NZW51SG9va3MtdjFfMF81LmRpZmYKKysr IC9kZXYvbnVsbApAQCAtMSwyMDggKzAsMCBAQAotVGhpcyBpcyBhICJwYXRjaCIgZm9yIHRoZSBW aWRlbyBEaXNrIFJlY29yZGVyIChWRFIpLgotCi0qIEhpc3RvcnkKLTIwMjYtMDItMDc6IFZlcnNp b24gMS4wLjUKLVVwZGF0ZSBmb3IgVkRSIDIuNy45IChTdGVmYW4gSG9mbWFubikKLQotMjAyNS0w Mi0yNjogVmVyc2lvbiAxLjAuNAotVXBkYXRlIGZvciBWRFIgMi43LjQgKErDtnJnIFJpZWNoYXJk dCkKLQotMjAxMy0xMS0wODogVmVyc2lvbiAxLjAuMwotVXBkYXRlIGZvciBWRFIgMi4xLjIgKErD tnJnIFJpZWNoYXJkdCkKLQotMjAxMi0wNC0wNjogVmVyc2lvbiAxLjAuMgotLSBVcGRhdGUgZm9y IHJlY2VudCBWRFIgZGV2ZWxvcGVyIHZlcnNpb25zIChNYW51ZWwgUmVpbWVyKQotCi0yMDEwLTEw LTE1OiBWZXJzaW9uIDEuMC4xCi0tIHJldHVybiBhIGNPc2RPYmplY3QgaW5zdGVhZCBvZiBpdHMg c3ViY2xhc3MgY09zZE1lbnUgKHRoYW5rcyB0bwotICBKb2VfREB2ZHJwb3J0YWwpCi0tIHZlcnNp b24gbnVtYmVyIGRlZmluZXMgaW4gJ2NvbmZpZy5oJyBub3cgZm9sbG93IHRoZSB1c3VhbCBjb252 ZW50aW9uczoKLSAgTUFJTk1FTlVIT09LU1ZFUlNOVU0gaXMgbm93IGEgbnVtYmVyLCB0aGUgbmV3 bHkgYWRkZWQgZGVmaW5lCi0gIE1BSU5NRU5VSE9PS1NWRVJTSU9OIGlzIGEgc3RyaW5nIChzdWdn ZXN0ZWQgYnkgZ25hcGhldXNAdmRycG9ydGFsKQotLSBwYXRjaCBpcyBub3cgYmFzZWQgb24gVkRS IDEuNi4wCi0tIHVwZGF0ZWQgZG9jdW1lbnRhdGlvbgotCi0yMDA3LTAyLTI2OiBWZXJzaW9uIDEu MAotLSBJbml0aWFsIHJldmlzaW9uLgotCi0qIEF1dGhvcnM6Ci1Ub2JpYXMgR3JpbW0gIDx2ZHIg YXQgZS10b2JpIGRvdCBuZXQ+Ci1NYXJ0aW4gUHJvY2hub3cgIDxub3JkbGljaHQgYXQgbWFydGlu cy1rYWJ1ZmYgZG90IGRlPgotRnJhbmsgU2NobWlybGVyICA8dmRyZGV2IGF0IHNjaG1pcmxlciBk b3QgZGU+Ci1DaHJpc3RpYW4gV2llbmluZ2VyICA8Y3dpZW5pbmdlciBhdCBnbXggZG90IGRlPgot Ci0qIERlc2NyaXB0aW9uOgotVGhpcyBwYXRjaCBhbGxvd3MgcGx1Z2lucyB0byByZXBsYWNlIHRo ZSBWRFIgbWFpbiBtZW51cyAiU2NoZWR1bGUiLAotIkNoYW5uZWxzIiwgIlRpbWVycyIgYW5kICJS ZWNvcmRpbmdzIiBieSBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbi4KLQotVGhlIHBhdGNoIGlz IGJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBvZiBDaHJpc3RpYW4gV2llbmluZ2VyIGJhY2sgaW4gMjAw NgotKGh0dHA6Ly93d3cubGludXh0di5vcmcvcGlwZXJtYWlsL3Zkci8yMDA2LU1hcmNoLzAwODIz NC5odG1sKS4gSXQgaXMKLW1lYW50IHRvIGJlIGFuIGludGVyaW0gc29sdXRpb24gZm9yIFZEUiAx LjQgdW50aWwgKG1heWJlKSBWRFIgMS41Ci1pbnRyb2R1Y2VzIGFuIG9mZmljaWFsIEFQSSBmb3Ig dGhpcyBwdXJwb3NlLgotCi0qIEluc3RhbGxhdGlvbgotQ2hhbmdlIGludG8gdGhlIFZEUiBzb3Vy Y2UgZGlyZWN0b3J5LCB0aGVuIGlzc3VlCi0gIHBhdGNoIC1wMSA8IHBhdGgvdG8vTWFpbk1lbnVI b29rcy12MV8wXzEucGF0Y2gKLWFuZCByZWNvbXBpbGUuCi0KLSogTm90ZXMgZm9yIHBsdWdpbiBh dXRob3JzCi1UaGUgZm9sbG93aW5nIGNvZGUgc2FtcGxlIHNob3dzIHRoZSByZXF1aXJlZCBwbHVn aW4gY29kZSBmb3IgcmVwbGFjaW5nCi10aGUgb3JpZ2luYWwgU2NoZWR1bGUgbWVudToKLQotYm9v bCBjTXlQbHVnaW46OlNlcnZpY2UoY29uc3QgY2hhciAqSWQsIHZvaWQgKkRhdGEpCi17Ci0gIGNP c2RNZW51ICoqbWVudSA9IChjT3NkTWVudSoqKSBEYXRhOwotICBpZiAoTXlTZXR1cC5yZXBsYWNl U2NoZWR1bGUgJiYKLSAgICAgICAgICAgIHN0cmNtcChJZCwgIk1haW5NZW51SG9va3NQYXRjaC12 MS4wOjpvc1NjaGVkdWxlIikgPT0gMCkgewotICAgIGlmIChtZW51KQotICAgICAgKm1lbnUgPSAo Y09zZE1lbnUqKSBNYWluTWVudUFjdGlvbigpOwotICAgIHJldHVybiB0cnVlOwotICB9Ci0gIHJl dHVybiBmYWxzZTsKLX0KLQotU2luY2UgcGF0Y2ggdmVyc2lvbiAxLjAuMSwgdGhlIHNlcnZpY2Ug Y2FsbCBtYXkgcmV0dXJuIGEgY09zZE9iamVjdAotaW5zdGVhZCBvZiBhICdjT3NkTWVudScuIFVz ZSAnI2lmZGVmIE1BSU5NRU5VSE9PS1NWRVJTSU9OJyB0byBkZXRlY3QKLXZlcnNpb24gMS4wLjEg b3IgbGF0ZXIuCi0KLUEgcGx1Z2luIGNhbiByZXBsYWNlIG1vcmUgdGhhbiBvbmUgbWVudSBhdCBh IHRpbWUuIFNpbXBseSByZXBsYWNlIHRoZQotY2FsbCB0byBNYWluTWVudUFjdGlvbigpIGluIHRo ZSBzYW1wbGUgYWJvdmUgYnkgYXBwcm9wcmlhdGUgY29kZS4KLQotTm90ZSB0aGF0IGEgcGx1Z2lu ICpzaG91bGQqIG9mZmVyIGEgc2V0dXAgb3B0aW9uIHdoaWNoIGFsbG93cyB0aGUgdXNlcgotdG8g ZW5hYmxlIG9yIGRpc2FibGUgdGhlIHJlcGxhY2VtZW50LiAiRGlzYWJsZWQiIHdvdWxkIGJlIGEg cmVhc29uYWJsZQotZGVmYXVsdCBzZXR0aW5nLiBCeSB0ZXN0aW5nIGZvciBhIHNwZWNpZmljICdN QUlOTUVOVUhPT0tTVkVSU05VTScsIGxpa2UKLScjaWYgTUFJTk1FTlVIT09LU1ZFUlNJT04gPj0g MTAwMDEnLCBwbHVnaW4gY2FuIGRlY2lkZSBhdCBjb21waWxlIHRpbWUgCi13aGljaCBmZWF0dXJl cyBhbmQgc2V0dXAgb3B0aW9ucyB0byBwcm92aWRlLgotCi1JbiBjYXNlIHRoZXJlIGlzIGFuIGlu dGVybmFsIHByb2JsZW0gd2hlbiB0cnlpbmcgdG8gb3BlbiB0aGUgcmVwbGFjZW1lbnQKLW1lbnUs IGl0IGlzIHNhZmUgdG8gcmV0dXJuICd0cnVlJyBldmVuIHRob3VnaCAnRGF0YScgaXMgTlVMTC4g SG93ZXZlciBhbgotT1NEIG1lc3NhZ2Ugc2hvdWxkIGluZGljYXRlIHRoZSBwcm9ibGVtIHRvIHRo ZSB1c2VyLgotCi1GZWVsIGZyZWUgdG8gc2hpcCB0aGlzIHBhdGNoIGFsb25nIHdpdGggeW91ciBw bHVnaW4uIEhvd2V2ZXIgaWYgeW91Ci10aGluayB5b3UgbmVlZCB0byBtb2RpZnkgdGhlIHBhdGNo LCB3ZSdkIGVuY291cmFnZSB5b3UgdG8gY29udGFjdCB0aGUKLWF1dGhvcnMgZmlyc3Qgb3IgYXQg bGVhc3QgdXNlIGEgc2VydmljZSBpZCB3aGljaCBkaWZmZXJzIGluIG1vcmUgdGhhbgotanVzdCB0 aGUgdmVyc2lvbiBudW1iZXIuCi0KLS0tLQotIGNvbmZpZy5oIHwgIDQgKysrKwotIG1lbnUuYyAg IHwgNzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvY29uZmlnLmggYi9jb25maWcuaAotaW5kZXggOTZmZDVkZDcuLmZk ZGNkYzIxIDEwMDY0NAotLS0tIGEvY29uZmlnLmgKLSsrKyBiL2NvbmZpZy5oCi1AQCAtMzUsNiAr MzUsMTAgQEAKLSAvLyBvbmx5IHdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdG8gdGhlIHBsdWdpbiBB UEkuIFRoaXMgYWxsb3dzIGNvbXBpbGVkCi0gLy8gcGx1Z2lucyB0byB3b3JrIHdpdGggbmV3ZXIg dmVyc2lvbnMgb2YgdGhlIGNvcmUgVkRSIGFzIGxvbmcgYXMgbm8KLSAvLyBpbnRlcmZhY2VzIGhh dmUgY2hhbmdlZC4gQVBJVkVSU05VTSBiZWdpbnMgd2l0aCAiMzAwLi4iIGZvciBiYWNrd2FyZHMK LSsKLSsvLyBUaGUgTWFpbk1lbnVIb29rIFBhdGNoJ3MgdmVyc2lvbiBudW1iZXI6Ci0rI2RlZmlu ZSBNQUlOTUVOVUhPT0tTVkVSU0lPTiAiMS4wLjUiCi0rI2RlZmluZSBNQUlOTUVOVUhPT0tTVkVS U05VTSAgMTAwMDUgIC8vIFZlcnNpb24gKiAxMDAwMCArIE1ham9yICogMTAwICsgTWlub3IKLSAv LyBjb21wYXRpYmlsaXR5IGFuZCBjYW4gYmUgdXNlZCBpbiAjaWYgcHJlcHJvY2Vzc29yIHN0YXRl bWVudHMgdG8gaGFuZGxlCi0gLy8gdmVyc2lvbiBkZXBlbmRlbnQgY29kZS4KLSAKLWRpZmYgLS1n aXQgYS9tZW51LmMgYi9tZW51LmMKLWluZGV4IDg3OThhM2YxLi41NzU1NWQzZSAxMDA2NDQKLS0t LSBhL21lbnUuYwotKysrIGIvbWVudS5jCi1AQCAtNDY3MSwxNSArNDY3MSwzMSBAQCBjTWVudU1h aW46OmNNZW51TWFpbihlT1NTdGF0ZSBTdGF0ZSwgYm9vbCBPcGVuU3ViTWVudXMpCi0gCi0gICAv LyBJbml0aWFsIHN1Ym1lbnVzOgotIAotKyAgY09zZE9iamVjdCAqbWVudSA9IE5VTEw7Ci0gICBz d2l0Y2ggKFN0YXRlKSB7Ci0tICAgIGNhc2Ugb3NTY2hlZHVsZTogICBBZGRTdWJNZW51KG5ldyBj TWVudVNjaGVkdWxlKTsgYnJlYWs7Ci0tICAgIGNhc2Ugb3NDaGFubmVsczogICBBZGRTdWJNZW51 KG5ldyBjTWVudUNoYW5uZWxzKTsgYnJlYWs7Ci0tICAgIGNhc2Ugb3NUaW1lcnM6ICAgICBBZGRT dWJNZW51KG5ldyBjTWVudVRpbWVycyk7IGJyZWFrOwotLSAgICBjYXNlIG9zUmVjb3JkaW5nczog QWRkU3ViTWVudShuZXcgY01lbnVSZWNvcmRpbmdzKE5VTEwsIDAsIE9wZW5TdWJNZW51cykpOyBi cmVhazsKLS0gICAgY2FzZSBvc1NldHVwOiAgICAgIEFkZFN1Yk1lbnUobmV3IGNNZW51U2V0dXAp OyBicmVhazsKLS0gICAgY2FzZSBvc0NvbW1hbmRzOiAgIEFkZFN1Yk1lbnUobmV3IGNNZW51Q29t bWFuZHModHIoIkJ1dHRvbiRDb21tYW5kcyIpLCAmQ29tbWFuZHMpKTsgYnJlYWs7Ci0rICAgIGNh c2Ugb3NTY2hlZHVsZToKLSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxGaXJzdFNl cnZpY2UoIk1haW5NZW51SG9va3NQYXRjaC12MS4wOjpvc1NjaGVkdWxlIiwgJm1lbnUpKQotKyAg ICAgICAgICAgIG1lbnUgPSBuZXcgY01lbnVTY2hlZHVsZTsKLSsgICAgICAgIGJyZWFrOwotKyAg ICBjYXNlIG9zQ2hhbm5lbHM6Ci0rICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmly c3RTZXJ2aWNlKCJNYWluTWVudUhvb2tzUGF0Y2gtdjEuMDo6b3NDaGFubmVscyIsICZtZW51KSkK LSsgICAgICAgICAgICBtZW51ID0gbmV3IGNNZW51Q2hhbm5lbHM7Ci0rICAgICAgICBicmVhazsK LSsgICAgY2FzZSBvc1RpbWVyczoKLSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxG aXJzdFNlcnZpY2UoIk1haW5NZW51SG9va3NQYXRjaC12MS4wOjpvc1RpbWVycyIsICZtZW51KSkK LSsgICAgICAgICAgICBtZW51ID0gbmV3IGNNZW51VGltZXJzOwotKyAgICAgICAgYnJlYWs7Ci0r ICAgIGNhc2Ugb3NSZWNvcmRpbmdzOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2Fs bEZpcnN0U2VydmljZSgiTWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zUmVjb3JkaW5ncyIsICZt ZW51KSkKLSsgICAgICAgICAgICBtZW51ID0gbmV3IGNNZW51UmVjb3JkaW5ncyhOVUxMLCAwLCBP cGVuU3ViTWVudXMpOwotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ugb3NTZXR1cDogICAgICBt ZW51ID0gbmV3IGNNZW51U2V0dXA7IGJyZWFrOwotKyAgICBjYXNlIG9zQ29tbWFuZHM6ICAgbWVu dSA9IG5ldyBjTWVudUNvbW1hbmRzKHRyKCJCdXR0b24kQ29tbWFuZHMiKSwgJkNvbW1hbmRzKTsg YnJlYWs7Ci0gICAgIGRlZmF1bHQ6IGJyZWFrOwotICAgICB9Ci0rICBpZiAobWVudSkKLSsgICAg IGlmIChtZW51LT5Jc01lbnUoKSkKLSsgICAgICAgIEFkZFN1Yk1lbnUoKGNPc2RNZW51ICopIG1l bnUpOwotIH0KLSAKLSBjT3NkT2JqZWN0ICpjTWVudU1haW46OlBsdWdpbk9zZE9iamVjdCh2b2lk KQotQEAgLTQ4MDgsMTUgKzQ4MjQsMzYgQEAgZU9TU3RhdGUgY01lbnVNYWluOjpQcm9jZXNzS2V5 KGVLZXlzIEtleSkKLSAgIGVPU1N0YXRlIHN0YXRlID0gY09zZE1lbnU6OlByb2Nlc3NLZXkoS2V5 KTsKLSAgIEhhZFN1Yk1lbnUgfD0gSGFzU3ViTWVudSgpOwotIAotKyAgY09zZE9iamVjdCAqbWVu dSA9IE5VTEw7Ci0gICBzd2l0Y2ggKHN0YXRlKSB7Ci0tICAgIGNhc2Ugb3NTY2hlZHVsZTogICBy ZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVTY2hlZHVsZSk7Ci0tICAgIGNhc2Ugb3NDaGFubmVs czogICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVDaGFubmVscyk7Ci0tICAgIGNhc2Ugb3NU aW1lcnM6ICAgICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVUaW1lcnMpOwotLSAgICBjYXNl IG9zUmVjb3JkaW5nczogcmV0dXJuIEFkZFN1Yk1lbnUobmV3IGNNZW51UmVjb3JkaW5ncyk7Ci0t ICAgIGNhc2Ugb3NSZWNzT3BlbjogICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVSZWNvcmRp bmdzKE5VTEwsIDAsIHRydWUpKTsKLS0gICAgY2FzZSBvc1JlY3NEZWw6ICAgIHJldHVybiBBZGRT dWJNZW51KG5ldyBjTWVudVJlY29yZGluZ3MoTlVMTCwgMCwgdHJ1ZSwgTlVMTCwgdHJ1ZSkpOwot LSAgICBjYXNlIG9zU2V0dXA6ICAgICAgcmV0dXJuIEFkZFN1Yk1lbnUobmV3IGNNZW51U2V0dXAp OwotLSAgICBjYXNlIG9zQ29tbWFuZHM6ICAgcmV0dXJuIEFkZFN1Yk1lbnUobmV3IGNNZW51Q29t bWFuZHModHIoIkJ1dHRvbiRDb21tYW5kcyIpLCAmQ29tbWFuZHMpKTsKLSsgICAgY2FzZSBvc1Nj aGVkdWxlOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2FsbEZpcnN0U2VydmljZSgi TWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zU2NoZWR1bGUiLCAmbWVudSkpCi0rICAgICAgICAg ICAgbWVudSA9IG5ldyBjTWVudVNjaGVkdWxlOwotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAg IHN0YXRlID0gb3NDb250aW51ZTsKLSsgICAgICAgIGJyZWFrOwotKyAgICBjYXNlIG9zQ2hhbm5l bHM6Ci0rICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNlKCJNYWlu TWVudUhvb2tzUGF0Y2gtdjEuMDo6b3NDaGFubmVscyIsICZtZW51KSkKLSsgICAgICAgICAgICBt ZW51ID0gbmV3IGNNZW51Q2hhbm5lbHM7Ci0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgc3Rh dGUgPSBvc0NvbnRpbnVlOwotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ugb3NUaW1lcnM6Ci0r ICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNlKCJNYWluTWVudUhv b2tzUGF0Y2gtdjEuMDo6b3NUaW1lcnMiLCAmbWVudSkpCi0rICAgICAgICAgICAgbWVudSA9IG5l dyBjTWVudVRpbWVyczsKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBzdGF0ZSA9IG9zQ29u dGludWU7Ci0rICAgICAgICBicmVhazsKLSsgICAgY2FzZSBvc1JlY29yZGluZ3M6Ci0rICAgICAg ICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNlKCJNYWluTWVudUhvb2tzUGF0 Y2gtdjEuMDo6b3NSZWNvcmRpbmdzIiwgJm1lbnUpKQotKyAgICAgICAgICAgIG1lbnUgPSBuZXcg Y01lbnVSZWNvcmRpbmdzOwotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHN0YXRlID0gb3ND b250aW51ZTsKLSsgICAgICAgIGJyZWFrOwotKyAgICBjYXNlIG9zUmVjc09wZW46ICAgbWVudSA9 IG5ldyBjTWVudVJlY29yZGluZ3MoTlVMTCwgMCwgdHJ1ZSk7IGJyZWFrOwotKyAgICBjYXNlIG9z UmVjc0RlbDogICAgbWVudSA9IG5ldyBjTWVudVJlY29yZGluZ3MoTlVMTCwgMCwgdHJ1ZSwgTlVM TCwgdHJ1ZSk7IGJyZWFrOwotKyAgICBjYXNlIG9zU2V0dXA6ICAgICAgbWVudSA9IG5ldyBjTWVu dVNldHVwOyBicmVhazsKLSsgICAgY2FzZSBvc0NvbW1hbmRzOiAgIG1lbnUgPSBuZXcgY01lbnVD b21tYW5kcyh0cigiQnV0dG9uJENvbW1hbmRzIiksICZDb21tYW5kcyk7IGJyZWFrOwotICAgICBj YXNlIG9zU3RvcFJlY29yZDogaWYgKEludGVyZmFjZS0+Q29uZmlybSh0cigiU3RvcCByZWNvcmRp bmc/IikpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY09zZEl0ZW0gKml0ZW0g PSBHZXQoQ3VycmVudCgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1JlY29y ZENvbnRyb2xzOjpTdG9wKGl0ZW0tPlRleHQoKSArIHN0cmxlbih0cihTVE9QX1JFQ09SRElORykp KTsKLUBAIC00ODY3LDYgKzQ5MDQsMTIgQEAgZU9TU3RhdGUgY01lbnVNYWluOjpQcm9jZXNzS2V5 KGVLZXlzIEtleSkKLSAgICAgICAgICAgICAgICBkZWZhdWx0OiAgICAgIGJyZWFrOwotICAgICAg ICAgICAgICAgIH0KLSAgICAgfQotKyAgaWYgKG1lbnUpIHsKLSsgICAgIGlmIChtZW51LT5Jc01l bnUoKSkKLSsgICAgICAgIHJldHVybiBBZGRTdWJNZW51KChjT3NkTWVudSAqKSBtZW51KTsKLSsg ICAgIHBsdWdpbk9zZE9iamVjdCA9IG1lbnU7Ci0rICAgICByZXR1cm4gb3NQbHVnaW47Ci0rICAg ICB9Ci0gICBib29sIERvRGlzcGxheSA9IFVwZGF0ZSgpOwotICAgaWYgKEtleSAhPSBrTm9uZSkg ewotICAgICAgaWYgKEkxOG5DdXJyZW50TGFuZ3VhZ2UoKSAhPSBvc2RMYW5ndWFnZSkgewotLS0g Ci0yLjQzLjAKLQoKZGlmZiAtLWdpdCBhL3Zkci0yLjcuOS1sYXN0LXJlcGxheWVkLXBlci1mb2xk ZXItMDUuZGlmZiBiL3Zkci0yLjcuOS1sYXN0LXJlcGxheWVkLXBlci1mb2xkZXItMDUuZGlmZgpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDgwOWNmOC4uMDAwMDAwMAotLS0gYS92ZHIt Mi43LjktbGFzdC1yZXBsYXllZC1wZXItZm9sZGVyLTA1LmRpZmYKKysrIC9kZXYvbnVsbApAQCAt MSwyNzUgKzAsMCBAQAotLS0tIGNvbmZpZy5oCTIwMjYvMDIvMDYgMDk6NTI6MjIJNS4zOQotKysr IGNvbmZpZy5oCTIwMjYvMDIvMDggMTM6NTQ6MjEKLUBAIC0yNyw4ICsyNyw4IEBACi0gCi0gLy8g VGhlIHBsdWdpbiBBUEkncyB2ZXJzaW9uIG51bWJlcjoKLSAKLS0jZGVmaW5lIEFQSVZFUlNJT04g ICAgICIxMSIKLS0jZGVmaW5lIEFQSVZFUlNOVU0gICAzMDAxMQotKyNkZWZpbmUgQVBJVkVSU0lP TiAgICAgIjEyIgotKyNkZWZpbmUgQVBJVkVSU05VTSAgIDMwMDEyCi0gCi0gLy8gV2hlbiBsb2Fk aW5nIHBsdWdpbnMsIFZEUiBzZWFyY2hlcyBmaWxlcyBieSB0aGVpciBBUElWRVJTSU9OLCB3aGlj aAotIC8vIGlzIGRpZmZlcmVudCBmcm9tIFZEUlZFUlNJT04uIEFQSVZFUlNJT04gaXMgYSBwbGFp biBudW1iZXIsIGluY3JlbWVudGVkCi0tLS0gbWVudS5jCTIwMjYvMDIvMDYgMjA6MzQ6MTMJNS40 NAotKysrIG1lbnUuYwkyMDI2LzAyLzA4IDIxOjEwOjUyCi1AQCAtMzE3MCw4ICszMTcwLDggQEAK LSAgICAgIGlmICghQ3VycmVudFJlY29yZGluZykgewotICAgICAgICAgaWYgKGRlbFJlY01lbnUp Ci0gICAgICAgICAgICBDdXJyZW50UmVjb3JkaW5nID0gKmRlbGV0ZWROYW1lOwotLSAgICAgICAg ZWxzZQotLSAgICAgICAgICAgQ3VycmVudFJlY29yZGluZyA9ICpmaWxlTmFtZSA/ICpmaWxlTmFt ZSA6IGNSZXBsYXlDb250cm9sOjpMYXN0UmVwbGF5ZWQoKTsKLSsgICAgICAgIGVsc2UgaWYgKCpm aWxlTmFtZSAmJiBzdHJzdHIoZmlsZU5hbWUsIERpcmVjdG9yeU5hbWUoKSkpCi0rICAgICAgICAg ICBDdXJyZW50UmVjb3JkaW5nID0gKmZpbGVOYW1lOwotICAgICAgICAgfQotICAgICAgaW50IGN1 cnJlbnQgPSBDdXJyZW50KCk7Ci0gICAgICBDbGVhcigpOwotQEAgLTMxNzksNiArMzE3OSw3IEBA Ci0gICAgICBSZWNvcmRpbmdzLT5Tb3J0KCk7Ci0gICAgICBjTWVudVJlY29yZGluZ0l0ZW0gKkN1 cnJlbnRJdGVtID0gTlVMTDsKLSAgICAgIGNNZW51UmVjb3JkaW5nSXRlbSAqTGFzdEl0ZW0gPSBO VUxMOwotKyAgICAgdGltZV90IExhc3RSZXBsYXlUaW1lID0gMDsKLSAgICAgIGZvciAoY29uc3Qg Y1JlY29yZGluZyAqUmVjb3JkaW5nID0gUmVjb3JkaW5ncy0+Rmlyc3QoKTsgUmVjb3JkaW5nOyBS ZWNvcmRpbmcgPSBSZWNvcmRpbmdzLT5OZXh0KFJlY29yZGluZykpIHsKLSAgICAgICAgICBpZiAo KCFmaWx0ZXIgfHwgZmlsdGVyLT5GaWx0ZXIoUmVjb3JkaW5nKSkgJiYgKCFiYXNlIHx8IChzdHJz dHIoUmVjb3JkaW5nLT5OYW1lKCksIGJhc2UpID09IFJlY29yZGluZy0+TmFtZSgpICYmIFJlY29y ZGluZy0+TmFtZSgpW3N0cmxlbihiYXNlKV0gPT0gRk9MREVSREVMSU1DSEFSKSkpIHsKLSAgICAg ICAgICAgICBjTWVudVJlY29yZGluZ0l0ZW0gKkl0ZW0gPSBuZXcgY01lbnVSZWNvcmRpbmdJdGVt KFJlY29yZGluZywgbGV2ZWwpOwotQEAgLTMyMDEsOCArMzIwMiwxNyBAQAotICAgICAgICAgICAg IGVsc2UKLSAgICAgICAgICAgICAgICBkZWxldGUgSXRlbTsKLSAgICAgICAgICAgICBpZiAoTGFz dEl0ZW0gfHwgTGFzdERpcikgewotLSAgICAgICAgICAgICAgIGlmIChDdXJyZW50UmVjb3JkaW5n ICYmIHN0cmNtcChDdXJyZW50UmVjb3JkaW5nLCBSZWNvcmRpbmctPkZpbGVOYW1lKCkpID09IDAp Ci0tICAgICAgICAgICAgICAgICAgQ3VycmVudEl0ZW0gPSBMYXN0RGlyID8gTGFzdERpciA6IExh c3RJdGVtOwotKyAgICAgICAgICAgICAgIGlmIChDdXJyZW50UmVjb3JkaW5nKSB7Ci0rICAgICAg ICAgICAgICAgICAgaWYgKHN0cmNtcChDdXJyZW50UmVjb3JkaW5nLCBSZWNvcmRpbmctPkZpbGVO YW1lKCkpID09IDApCi0rICAgICAgICAgICAgICAgICAgICAgQ3VycmVudEl0ZW0gPSBMYXN0RGly ID8gTGFzdERpciA6IExhc3RJdGVtOwotKyAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAg ICAgICBlbHNlIGlmICghZGVsUmVjTWVudSkgewotKyAgICAgICAgICAgICAgICAgIHRpbWVfdCB0 ID0gUmVjb3JkaW5nLT5HZXRMYXN0UmVwbGF5VGltZSgpOwotKyAgICAgICAgICAgICAgICAgIGlm ICh0ID4gTGFzdFJlcGxheVRpbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICBMYXN0UmVwbGF5 VGltZSA9IHQ7Ci0rICAgICAgICAgICAgICAgICAgICAgQ3VycmVudEl0ZW0gPSBMYXN0RGlyID8g TGFzdERpciA6IExhc3RJdGVtOwotKyAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIGlmIChMYXN0RGlyKQot ICAgICAgICAgICAgICAgIExhc3REaXItPkluY3JlbWVudENvdW50ZXIoUmVjb3JkaW5nLT5Jc05l dygpKTsKLUBAIC0zMjMyLDEzICszMjQyLDEzIEBACi0gCi0gY1N0cmluZyBjTWVudVJlY29yZGlu Z3M6OkRpcmVjdG9yeU5hbWUodm9pZCkKLSB7Ci0tICBjU3RyaW5nIGQoY1ZpZGVvRGlyZWN0b3J5 OjpOYW1lKCkpOwotICAgaWYgKGJhc2UpIHsKLSAgICAgIGNoYXIgKnMgPSBFeGNoYW5nZUNoYXJz KHN0cmR1cChiYXNlKSwgdHJ1ZSk7Ci0tICAgICBkID0gQWRkRGlyZWN0b3J5KGQsIHMpOwotKyAg ICAgY1N0cmluZyBkID0gY1N0cmluZzo6c3ByaW50ZigiJXMvJXMvIiwgY1ZpZGVvRGlyZWN0b3J5 OjpOYW1lKCksIHMpOwotICAgICAgZnJlZShzKTsKLSsgICAgIHJldHVybiBkOwotICAgICAgfQot LSAgcmV0dXJuIGQ7Ci0rICByZXR1cm4gY1ZpZGVvRGlyZWN0b3J5OjpOYW1lKCk7Ci0gfQotIAot IGJvb2wgY01lbnVSZWNvcmRpbmdzOjpPcGVuKGJvb2wgT3BlblN1Yk1lbnVzKQotQEAgLTMyOTEs OCArMzMwMSw3IEBACi0gICBjTWVudVJlY29yZGluZ0l0ZW0gKnJpID0gKGNNZW51UmVjb3JkaW5n SXRlbSAqKUdldChDdXJyZW50KCkpOwotICAgaWYgKHJpICYmICFyaS0+SXNEaXJlY3RvcnkoKSkg ewotICAgICAgY0RldmljZTo6UHJpbWFyeURldmljZSgpLT5TdG9wUmVwbGF5KCk7IC8vIG11c3Qg ZG8gdGhpcyBmaXJzdCB0byBiZSBhYmxlIHRvIHJld2luZCB0aGUgY3VycmVudGx5IHJlcGxheWVk IHJlY29yZGluZwotLSAgICAgY1Jlc3VtZUZpbGUgUmVzdW1lRmlsZShyaS0+UmVjb3JkaW5nKCkt PkZpbGVOYW1lKCksIHJpLT5SZWNvcmRpbmcoKS0+SXNQZXNSZWNvcmRpbmcoKSk7Ci0tICAgICBS ZXN1bWVGaWxlLkRlbGV0ZSgpOwotKyAgICAgcmktPlJlY29yZGluZygpLT5EZWxldGVSZXN1bWUo KTsKLSAgICAgIHJldHVybiBQbGF5KCk7Ci0gICAgICB9Ci0gICByZXR1cm4gb3NDb250aW51ZTsK LS0tLSByZWNvcmRpbmcuYwkyMDI2LzAyLzAzIDE1OjI1OjU0CTUuNTIKLSsrKyByZWNvcmRpbmcu YwkyMDI2LzAyLzA4IDEzOjU0OjIxCi1AQCAtMjM5LDggKzIzOSwxMiBAQAotIAotIC8vIC0tLSBj UmVzdW1lRmlsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIAotKyNkZWZpbmUgUkVTVU1FX05PVF9JTklUSUFMSVpFRCAoLTIpCi0r Ci0gY1Jlc3VtZUZpbGU6OmNSZXN1bWVGaWxlKGNvbnN0IGNoYXIgKkZpbGVOYW1lLCBib29sIElz UGVzUmVjb3JkaW5nKQotIHsKLSsgIGZpbGVUaW1lID0gMDsKLSsgIGluZGV4ID0gUkVTVU1FX05P VF9JTklUSUFMSVpFRDsKLSAgIGlzUGVzUmVjb3JkaW5nID0gSXNQZXNSZWNvcmRpbmc7Ci0gICBj b25zdCBjaGFyICpTdWZmaXggPSBpc1Blc1JlY29yZGluZyA/IFJFU1VNRUZJTEVTVUZGSVggIi52 ZHIiIDogUkVTVU1FRklMRVNVRkZJWDsKLSAgIGZpbGVOYW1lID0gTUFMTE9DKGNoYXIsIHN0cmxl bihGaWxlTmFtZSkgKyBzdHJsZW4oU3VmZml4KSArIDEpOwotQEAgLTI1NywxMiArMjYxLDI3IEBA Ci0gICBmcmVlKGZpbGVOYW1lKTsKLSB9Ci0gCi0rdGltZV90IGNSZXN1bWVGaWxlOjpGaWxlVGlt ZSh2b2lkKQotK3sKLSsgIGlmIChpbmRleCA9PSBSRVNVTUVfTk9UX0lOSVRJQUxJWkVEKSAvLyBj aGVja2luZyBpbmRleCBpcyBPSywgUmVhZCgpIHNldHMgaW5kZXggQU5EIGZpbGVUaW1lIQotKyAg ICAgUmVhZCgpOwotKyAgcmV0dXJuIGZpbGVUaW1lOwotK30KLSsKLStpbnQgY1Jlc3VtZUZpbGU6 OkluZGV4KHZvaWQpCi0rewotKyAgaWYgKGluZGV4ID09IFJFU1VNRV9OT1RfSU5JVElBTElaRUQp Ci0rICAgICBSZWFkKCk7Ci0rICByZXR1cm4gaW5kZXg7Ci0rfQotKwotIGludCBjUmVzdW1lRmls ZTo6UmVhZCh2b2lkKQotIHsKLSAgIGludCByZXN1bWUgPSAtMTsKLSAgIGlmIChmaWxlTmFtZSkg ewotICAgICAgc3RydWN0IHN0YXQgc3Q7Ci0gICAgICBpZiAoc3RhdChmaWxlTmFtZSwgJnN0KSA9 PSAwKSB7Ci0rICAgICAgICBmaWxlVGltZSA9IHN0LnN0X210aW1lOwotICAgICAgICAgaWYgKChz dC5zdF9tb2RlICYgU19JV1VTUikgPT0gMCkgLy8gbm8gd3JpdGUgYWNjZXNzLCBhc3N1bWUgbm8g cmVzdW1lCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICB9Ci1AQCAtMjk5LDYgKzMx OCw3IEBACi0gICAgICAgICAgICBMT0dfRVJST1JfU1RSKGZpbGVOYW1lKTsKLSAgICAgICAgIH0K LSAgICAgIH0KLSsgIGluZGV4ID0gcmVzdW1lOwotICAgcmV0dXJuIHJlc3VtZTsKLSB9Ci0gCi1A QCAtMzM1LDExICszNTUsMTggQEAKLSAgICAgICAgIFJlY29yZGluZ3MtPlJlc2V0UmVzdW1lKGZp bGVOYW1lKTsKLSAgICAgICAgIFN0YXRlS2V5LlJlbW92ZSgpOwotICAgICAgICAgfQotKyAgICAg ZmlsZVRpbWUgPSB0aW1lKE5VTEwpOwotKyAgICAgaW5kZXggPSBJbmRleDsKLSAgICAgIHJldHVy biB0cnVlOwotICAgICAgfQotICAgcmV0dXJuIGZhbHNlOwotIH0KLSAKLSt2b2lkIGNSZXN1bWVG aWxlOjpSZXNldCh2b2lkKQotK3sKLSsgIGluZGV4ID0gUkVTVU1FX05PVF9JTklUSUFMSVpFRDsK LSt9Ci0rCi0gdm9pZCBjUmVzdW1lRmlsZTo6RGVsZXRlKHZvaWQpCi0gewotICAgaWYgKGZpbGVO YW1lKSB7Ci1AQCAtNjgwLDggKzcwNyw2IEBACi0gCi0gLy8gLS0tIGNSZWNvcmRpbmcgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g Ci0tI2RlZmluZSBSRVNVTUVfTk9UX0lOSVRJQUxJWkVEICgtMikKLS0KLSBzdHJ1Y3QgdENoYXJF eGNoYW5nZSB7IGNoYXIgYTsgY2hhciBiOyB9OwotIHRDaGFyRXhjaGFuZ2UgQ2hhckV4Y2hhbmdl W10gPSB7Ci0gICB7IEZPTERFUkRFTElNQ0hBUiwgICcvJyB9LAotQEAgLTg3OCw3ICs5MDMsNyBA QAotIGNSZWNvcmRpbmc6OmNSZWNvcmRpbmcoY1RpbWVyICpUaW1lciwgY29uc3QgY0V2ZW50ICpF dmVudCkKLSB7Ci0gICBpZCA9IDA7Ci0tICByZXN1bWUgPSBSRVNVTUVfTk9UX0lOSVRJQUxJWkVE OwotKyAgcmVzdW1lID0gTlVMTDsKLSAgIHRpdGxlQnVmZmVyID0gTlVMTDsKLSAgIHNvcnRCdWZm ZXJOYW1lID0gc29ydEJ1ZmZlclRpbWUgPSBOVUxMOwotICAgZmlsZU5hbWUgPSBOVUxMOwotQEAg LTkzMSw3ICs5NTYsNyBAQAotIGNSZWNvcmRpbmc6OmNSZWNvcmRpbmcoY29uc3QgY2hhciAqRmls ZU5hbWUpCi0gewotICAgaWQgPSAwOwotLSAgcmVzdW1lID0gUkVTVU1FX05PVF9JTklUSUFMSVpF RDsKLSsgIHJlc3VtZSA9IE5VTEw7Ci0gICBmaWxlU2l6ZU1CID0gLTE7IC8vIHVua25vd24KLSAg IGNoYW5uZWwgPSAtMTsKLSAgIGluc3RhbmNlSWQgPSAtMTsKLUBAIC05NzEsNiArOTk2LDcgQEAK LSAgICAgICAgIH0KLSAgICAgIGVsc2UKLSAgICAgICAgIHJldHVybjsKLSsgICAgIHJlc3VtZSA9 IG5ldyBjUmVzdW1lRmlsZShmaWxlTmFtZSwgaXNQZXNSZWNvcmRpbmcpOwotICAgICAgR2V0UmVz dW1lKCk7Ci0gICAgICAvLyByZWFkIGFuIG9wdGlvbmFsIGluZm8gZmlsZToKLSAgICAgIGNTdHJp bmcgSW5mb0ZpbGVOYW1lID0gY1N0cmluZzo6c3ByaW50ZigiJXMlcyIsIGZpbGVOYW1lLCBpc1Bl c1JlY29yZGluZyA/IElORk9GSUxFU1VGRklYICIudmRyIiA6IElORk9GSUxFU1VGRklYKTsKLUBA IC0xMDU4LDYgKzEwODQsNyBAQAotICAgZnJlZShzb3J0QnVmZmVyVGltZSk7Ci0gICBmcmVlKGZp bGVOYW1lKTsKLSAgIGZyZWUobmFtZSk7Ci0rICBkZWxldGUgcmVzdW1lOwotICAgZGVsZXRlIGlu Zm87Ci0gfQotIAotQEAgLTExMjgsMTEgKzExNTUsMTIgQEAKLSAKLSBpbnQgY1JlY29yZGluZzo6 R2V0UmVzdW1lKHZvaWQpIGNvbnN0Ci0gewotLSAgaWYgKHJlc3VtZSA9PSBSRVNVTUVfTk9UX0lO SVRJQUxJWkVEKSB7Ci0tICAgICBjUmVzdW1lRmlsZSBSZXN1bWVGaWxlKEZpbGVOYW1lKCksIGlz UGVzUmVjb3JkaW5nKTsKLS0gICAgIHJlc3VtZSA9IFJlc3VtZUZpbGUuUmVhZCgpOwotLSAgICAg fQotLSAgcmV0dXJuIHJlc3VtZTsKLSsgIHJldHVybiByZXN1bWUgPyByZXN1bWUtPkluZGV4KCkg OiAtMTsKLSt9Ci0rCi0rdGltZV90IGNSZWNvcmRpbmc6OkdldExhc3RSZXBsYXlUaW1lKHZvaWQp IGNvbnN0Ci0rewotKyAgcmV0dXJuIHJlc3VtZSA/IHJlc3VtZS0+RmlsZVRpbWUoKSA6IDA7Ci0g fQotIAotIGJvb2wgY1JlY29yZGluZzo6UmV0ZW50aW9uRXhwaXJlZCh2b2lkKSBjb25zdAotQEAg LTE0NzksNyArMTUwNywxNCBAQAotIAotIHZvaWQgY1JlY29yZGluZzo6UmVzZXRSZXN1bWUodm9p ZCkgY29uc3QKLSB7Ci0tICByZXN1bWUgPSBSRVNVTUVfTk9UX0lOSVRJQUxJWkVEOwotKyAgaWYg KHJlc3VtZSkKLSsgICAgIHJlc3VtZS0+UmVzZXQoKTsKLSt9Ci0rCi0rdm9pZCBjUmVjb3JkaW5n OjpEZWxldGVSZXN1bWUodm9pZCkgY29uc3QKLSt7Ci0rICBpZiAocmVzdW1lKQotKyAgICAgcmVz dW1lLT5EZWxldGUoKTsKLSB9Ci0gCi0gaW50IGNSZWNvcmRpbmc6Ok51bUZyYW1lcyh2b2lkKSBj b25zdAotLS0tIHJlY29yZGluZy5oCTIwMjYvMDIvMDMgMTE6NDA6NTYJNS4yMQotKysrIHJlY29y ZGluZy5oCTIwMjYvMDIvMDggMTM6NTQ6MjEKLUBAIC01MiwxMiArNTIsMTcgQEAKLSBjbGFzcyBj UmVzdW1lRmlsZSB7Ci0gcHJpdmF0ZToKLSAgIGNoYXIgKmZpbGVOYW1lOwotKyAgdGltZV90IGZp bGVUaW1lOwotKyAgaW50IGluZGV4OwotICAgYm9vbCBpc1Blc1JlY29yZGluZzsKLSBwdWJsaWM6 Ci0gICBjUmVzdW1lRmlsZShjb25zdCBjaGFyICpGaWxlTmFtZSwgYm9vbCBJc1Blc1JlY29yZGlu Zyk7Ci0gICB+Y1Jlc3VtZUZpbGUoKTsKLSsgIHRpbWVfdCBGaWxlVGltZSh2b2lkKTsKLSsgIGlu dCBJbmRleCh2b2lkKTsKLSAgIGludCBSZWFkKHZvaWQpOwotICAgYm9vbCBTYXZlKGludCBJbmRl eCk7Ci0rICB2b2lkIFJlc2V0KHZvaWQpOwotICAgdm9pZCBEZWxldGUodm9pZCk7Ci0gICB9Owot IAotQEAgLTEyMiw3ICsxMjcsNyBAQAotICAgZnJpZW5kIGNsYXNzIGNSZWNvcmRpbmdzOwotIHBy aXZhdGU6Ci0gICBpbnQgaWQ7Ci0tICBtdXRhYmxlIGludCByZXN1bWU7Ci0rICBtdXRhYmxlIGNS ZXN1bWVGaWxlICpyZXN1bWU7Ci0gICBtdXRhYmxlIGNoYXIgKnRpdGxlQnVmZmVyOwotICAgbXV0 YWJsZSBjaGFyICpzb3J0QnVmZmVyTmFtZTsKLSAgIG11dGFibGUgY2hhciAqc29ydEJ1ZmZlclRp bWU7Ci1AQCAtMTc1LDYgKzE4MCw3IEBACi0gICBjb25zdCBjaGFyICpQcmVmaXhGaWxlTmFtZShj aGFyIFByZWZpeCk7Ci0gICBpbnQgSGllcmFyY2h5TGV2ZWxzKHZvaWQpIGNvbnN0OwotICAgdm9p ZCBSZXNldFJlc3VtZSh2b2lkKSBjb25zdDsKLSsgIHZvaWQgRGVsZXRlUmVzdW1lKHZvaWQpIGNv bnN0OwotICAgZG91YmxlIEZyYW1lc1BlclNlY29uZCh2b2lkKSBjb25zdCB7IHJldHVybiBpbmZv LT5GcmFtZXNQZXJTZWNvbmQoKTsgfQotICAgaW50IE51bUZyYW1lcyh2b2lkKSBjb25zdDsKLSAg ICAgICAgLy8vPCBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZnJhbWVzIGluIHRoaXMgcmVjb3JkaW5n LgotQEAgLTE5NCw2ICsyMDAsOSBAQAotICAgaW50IEdldFJlc3VtZSh2b2lkKSBjb25zdDsKLSAg ICAgICAgLy8vPCBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZnJhbWUgd2hlcmUgcmVwbGF5IG9m IHRoaXMgcmVjb3JkaW5nIHNoYWxsCi0gICAgICAgIC8vLzwgYmUgcmVzdW1lZCwgb3IgLTEgaW4g Y2FzZSBvZiBhbiBlcnJvci4KLSsgIHRpbWVfdCBHZXRMYXN0UmVwbGF5VGltZSh2b2lkKSBjb25z dDsKLSsgICAgICAgLy8vPCBSZXR1cm5zIHRoZSB0aW1lIHRoaXMgcmVjb3JkaW5nIHdhcyBsYXN0 IHJlcGxheWVkICh3aGljaCBpcyBhY3R1YWxseSB0aGUKLSsgICAgICAgLy8vPCB0aW1lc3RhbXAg b2YgdGhlIHJlc3VtZSBmaWxlKSwgb3IgMCBpZiBubyByZXN1bWUgZmlsZSBleGlzdHMuCi0gICBi b29sIElzTmV3KHZvaWQpIGNvbnN0IHsgcmV0dXJuIEdldFJlc3VtZSgpIDw9IDA7IH0KLSAgIGJv b2wgSXNFZGl0ZWQodm9pZCkgY29uc3Q7Ci0gICBib29sIElzUGVzUmVjb3JkaW5nKHZvaWQpIGNv bnN0IHsgcmV0dXJuIGlzUGVzUmVjb3JkaW5nOyB9CgpkaWZmIC0tZ2l0IGEvdmRyLTIuNy45LXJl bW92ZS1sZWZ0b3Zlci1wYXRoLmRpZmYgYi92ZHItMi43LjktcmVtb3ZlLWxlZnRvdmVyLXBhdGgu ZGlmZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTkwOWY3Yy4uMDAwMDAwMAotLS0g YS92ZHItMi43LjktcmVtb3ZlLWxlZnRvdmVyLXBhdGguZGlmZgorKysgL2Rldi9udWxsCkBAIC0x LDcyICswLDAgQEAKLS0tLSBtZW51LmgJMjAyNi8wMi8wMSAxNDozNjoxNAk1LjEwCi0rKysgbWVu dS5oCTIwMjYvMDIvMDYgMjA6MzQ6MTMJNS4xMQotQEAgLTIxNiw3ICsyMTYsNiBAQAotICAgaW50 IGhlbHBLZXlzOwotICAgYm9vbCBkZWxSZWNNZW51OwotICAgY29uc3QgY1JlY29yZGluZ0ZpbHRl ciAqZmlsdGVyOwotLSAgc3RhdGljIGNTdHJpbmcgcGF0aDsKLSAgIHN0YXRpYyBjU3RyaW5nIGZp bGVOYW1lOwotICAgc3RhdGljIGNTdHJpbmcgZGVsZXRlZE5hbWU7Ci0gICBzdGF0aWMgdGltZV90 IHRvZ2dsZURlbFJlYzsKLS0tLSBtZW51LmMJMjAyNi8wMi8wNSAxNTo1NTowNwk1LjQzCi0rKysg bWVudS5jCTIwMjYvMDIvMDYgMjA6MzQ6MTMJNS40NAotQEAgLTMwODgsNyArMzA4OCw2IEBACi0g Ci0gLy8gLS0tIGNNZW51UmVjb3JkaW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gCi0tY1N0cmluZyBjTWVudVJlY29yZGluZ3M6OnBh dGg7Ci0gY1N0cmluZyBjTWVudVJlY29yZGluZ3M6OmZpbGVOYW1lOwotIGNTdHJpbmcgY01lbnVS ZWNvcmRpbmdzOjpkZWxldGVkTmFtZTsKLSB0aW1lX3QgY01lbnVSZWNvcmRpbmdzOjp0b2dnbGVE ZWxSZWMgPSAwOwotQEAgLTMxMDksMTEgKzMxMDgsOSBAQAotICAgU2V0KCk7Ci0gICBpZiAoQ3Vy cmVudCgpIDwgMCkKLSAgICAgIFNldEN1cnJlbnQoRmlyc3QoKSk7Ci0tICBlbHNlIGlmIChPcGVu U3ViTWVudXMgJiYgKGNSZXBsYXlDb250cm9sOjpMYXN0UmVwbGF5ZWQoKSB8fCAqcGF0aCB8fCAo ZGVsUmVjTWVudSA/ICpkZWxldGVkTmFtZSA6ICpmaWxlTmFtZSkpKSB7Ci0tICAgICBpZiAoISpw YXRoIHx8IExldmVsIDwgc3RyY291bnRjaHIocGF0aCwgRk9MREVSREVMSU1DSEFSKSkgewotLSAg ICAgICAgaWYgKE9wZW4odHJ1ZSkpCi0tICAgICAgICAgICByZXR1cm47Ci0tICAgICAgICB9Ci0r ICBlbHNlIGlmIChPcGVuU3ViTWVudXMgJiYgKGNSZXBsYXlDb250cm9sOjpMYXN0UmVwbGF5ZWQo KSB8fCAoZGVsUmVjTWVudSA/ICpkZWxldGVkTmFtZSA6ICpmaWxlTmFtZSkpKSB7Ci0rICAgICBp ZiAoT3Blbih0cnVlKSkKLSsgICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgIFNldEhlbHBLZXlz KCk7Ci0gfQotQEAgLTMyMDQsMTEgKzMyMDEsNyBAQAotICAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICAgICBkZWxldGUgSXRlbTsKLSAgICAgICAgICAgICBpZiAoTGFzdEl0ZW0gfHwgTGFz dERpcikgewotLSAgICAgICAgICAgICAgIGlmICgqcGF0aCkgewotLSAgICAgICAgICAgICAgICAg IGlmIChzdHJjbXAocGF0aCwgUmVjb3JkaW5nLT5Gb2xkZXIoKSkgPT0gMCkKLS0gICAgICAgICAg ICAgICAgICAgICBDdXJyZW50SXRlbSA9IExhc3REaXIgPyBMYXN0RGlyIDogTGFzdEl0ZW07Ci0t ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgIGVsc2UgaWYgKEN1cnJlbnRSZWNv cmRpbmcgJiYgc3RyY21wKEN1cnJlbnRSZWNvcmRpbmcsIFJlY29yZGluZy0+RmlsZU5hbWUoKSkg PT0gMCkKLSsgICAgICAgICAgICAgICBpZiAoQ3VycmVudFJlY29yZGluZyAmJiBzdHJjbXAoQ3Vy cmVudFJlY29yZGluZywgUmVjb3JkaW5nLT5GaWxlTmFtZSgpKSA9PSAwKQotICAgICAgICAgICAg ICAgICAgIEN1cnJlbnRJdGVtID0gTGFzdERpciA/IExhc3REaXIgOiBMYXN0SXRlbTsKLSAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgaWYgKExhc3REaXIpCi1AQCAtMzI1MSw3ICszMjQ0 LDcgQEAKLSBib29sIGNNZW51UmVjb3JkaW5nczo6T3Blbihib29sIE9wZW5TdWJNZW51cykKLSB7 Ci0gICBjTWVudVJlY29yZGluZ0l0ZW0gKnJpID0gKGNNZW51UmVjb3JkaW5nSXRlbSAqKUdldChD dXJyZW50KCkpOwotLSAgaWYgKHJpICYmIHJpLT5Jc0RpcmVjdG9yeSgpICYmICghKnBhdGggfHwg c3RyY291bnRjaHIocGF0aCwgRk9MREVSREVMSU1DSEFSKSA+IDApKSB7Ci0rICBpZiAocmkgJiYg cmktPklzRGlyZWN0b3J5KCkpIHsKLSAgICAgIGNvbnN0IGNoYXIgKnQgPSByaS0+TmFtZSgpOwot ICAgICAgY1N0cmluZyBidWZmZXI7Ci0gICAgICBpZiAoYmFzZSkgewotQEAgLTM1NTQsMTQgKzM1 NDcsMTIgQEAKLSAgIGVsc2UgaWYgKHN0YXRlID09IG9zVXNlclJlY1JlbmFtZWQpIHsKLSAgICAg IC8vIGEgcmVjb3JkaW5nIHdhcyByZW5hbWVkICh3aXRoaW4gdGhlIHNhbWUgZm9sZGVyKSwgc28g bGV0J3MgcmVmcmVzaCB0aGUgbWVudQotICAgICAgQ2xvc2VTdWJNZW51KGZhbHNlKTsgLy8gdGhp cyBpcyB0aGUgY01lbnVSZWNvcmRpbmdFZGl0L2NNZW51UGF0aEVkaXQKLS0gICAgIHBhdGggPSBO VUxMOwotICAgICAgZmlsZU5hbWUgPSBOVUxMOwotICAgICAgc3RhdGUgPSBvc0NvbnRpbnVlOwot ICAgICAgfQotICAgZWxzZSBpZiAoc3RhdGUgPT0gb3NVc2VyUmVjTW92ZWQpIHsKLSAgICAgIC8v IGEgcmVjb3JkaW5nIHdhcyBtb3ZlZCB0byBhIGRpZmZlcmVudCBmb2xkZXIsIHNvIGxldCdzIGRl bGV0ZSB0aGUgb2xkIGl0ZW0KLSAgICAgIENsb3NlU3ViTWVudShmYWxzZSk7IC8vIHRoaXMgaXMg dGhlIGNNZW51UmVjb3JkaW5nRWRpdC9jTWVudVBhdGhFZGl0Ci0tICAgICBwYXRoID0gTlVMTDsK LSAgICAgIGZpbGVOYW1lID0gTlVMTDsKLSAgICAgIGNPc2RNZW51OjpEZWwoQ3VycmVudCgpKTsK LSAgICAgIFNldCgpOyAvLyB0aGUgcmVjb3JkaW5nIG1pZ2h0IGhhdmUgYmVlbiBtb3ZlZCBpbnRv IGEgbmV3IHN1YmZvbGRlciBvZiB0aGlzIGZvbGRlcgoKZGlmZiAtLWdpdCBhL3Zkci0yLjguMS1N YWluTWVudUhvb2tzLXYxXzBfNS5kaWZmIGIvdmRyLTIuOC4xLU1haW5NZW51SG9va3MtdjFfMF81 LmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3NWMwZmYuLjAwMDAwMDAKLS0t IGEvdmRyLTIuOC4xLU1haW5NZW51SG9va3MtdjFfMF81LmRpZmYKKysrIC9kZXYvbnVsbApAQCAt MSwyMDggKzAsMCBAQAotVGhpcyBpcyBhICJwYXRjaCIgZm9yIHRoZSBWaWRlbyBEaXNrIFJlY29y ZGVyIChWRFIpLgotCi0qIEhpc3RvcnkKLTIwMjYtMDItMDc6IFZlcnNpb24gMS4wLjUKLVVwZGF0 ZSBmb3IgVkRSIDIuNy45IChTdGVmYW4gSG9mbWFubikKLQotMjAyNS0wMi0yNjogVmVyc2lvbiAx LjAuNAotVXBkYXRlIGZvciBWRFIgMi43LjQgKErDtnJnIFJpZWNoYXJkdCkKLQotMjAxMy0xMS0w ODogVmVyc2lvbiAxLjAuMwotVXBkYXRlIGZvciBWRFIgMi4xLjIgKErDtnJnIFJpZWNoYXJkdCkK LQotMjAxMi0wNC0wNjogVmVyc2lvbiAxLjAuMgotLSBVcGRhdGUgZm9yIHJlY2VudCBWRFIgZGV2 ZWxvcGVyIHZlcnNpb25zIChNYW51ZWwgUmVpbWVyKQotCi0yMDEwLTEwLTE1OiBWZXJzaW9uIDEu MC4xCi0tIHJldHVybiBhIGNPc2RPYmplY3QgaW5zdGVhZCBvZiBpdHMgc3ViY2xhc3MgY09zZE1l bnUgKHRoYW5rcyB0bwotICBKb2VfREB2ZHJwb3J0YWwpCi0tIHZlcnNpb24gbnVtYmVyIGRlZmlu ZXMgaW4gJ2NvbmZpZy5oJyBub3cgZm9sbG93IHRoZSB1c3VhbCBjb252ZW50aW9uczoKLSAgTUFJ Tk1FTlVIT09LU1ZFUlNOVU0gaXMgbm93IGEgbnVtYmVyLCB0aGUgbmV3bHkgYWRkZWQgZGVmaW5l Ci0gIE1BSU5NRU5VSE9PS1NWRVJTSU9OIGlzIGEgc3RyaW5nIChzdWdnZXN0ZWQgYnkgZ25hcGhl dXNAdmRycG9ydGFsKQotLSBwYXRjaCBpcyBub3cgYmFzZWQgb24gVkRSIDEuNi4wCi0tIHVwZGF0 ZWQgZG9jdW1lbnRhdGlvbgotCi0yMDA3LTAyLTI2OiBWZXJzaW9uIDEuMAotLSBJbml0aWFsIHJl dmlzaW9uLgotCi0qIEF1dGhvcnM6Ci1Ub2JpYXMgR3JpbW0gIDx2ZHIgYXQgZS10b2JpIGRvdCBu ZXQ+Ci1NYXJ0aW4gUHJvY2hub3cgIDxub3JkbGljaHQgYXQgbWFydGlucy1rYWJ1ZmYgZG90IGRl PgotRnJhbmsgU2NobWlybGVyICA8dmRyZGV2IGF0IHNjaG1pcmxlciBkb3QgZGU+Ci1DaHJpc3Rp YW4gV2llbmluZ2VyICA8Y3dpZW5pbmdlciBhdCBnbXggZG90IGRlPgotCi0qIERlc2NyaXB0aW9u OgotVGhpcyBwYXRjaCBhbGxvd3MgcGx1Z2lucyB0byByZXBsYWNlIHRoZSBWRFIgbWFpbiBtZW51 cyAiU2NoZWR1bGUiLAotIkNoYW5uZWxzIiwgIlRpbWVycyIgYW5kICJSZWNvcmRpbmdzIiBieSBh IGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbi4KLQotVGhlIHBhdGNoIGlzIGJhc2VkIG9uIGEgc3Vn Z2VzdGlvbiBvZiBDaHJpc3RpYW4gV2llbmluZ2VyIGJhY2sgaW4gMjAwNgotKGh0dHA6Ly93d3cu bGludXh0di5vcmcvcGlwZXJtYWlsL3Zkci8yMDA2LU1hcmNoLzAwODIzNC5odG1sKS4gSXQgaXMK LW1lYW50IHRvIGJlIGFuIGludGVyaW0gc29sdXRpb24gZm9yIFZEUiAxLjQgdW50aWwgKG1heWJl KSBWRFIgMS41Ci1pbnRyb2R1Y2VzIGFuIG9mZmljaWFsIEFQSSBmb3IgdGhpcyBwdXJwb3NlLgot Ci0qIEluc3RhbGxhdGlvbgotQ2hhbmdlIGludG8gdGhlIFZEUiBzb3VyY2UgZGlyZWN0b3J5LCB0 aGVuIGlzc3VlCi0gIHBhdGNoIC1wMSA8IHBhdGgvdG8vTWFpbk1lbnVIb29rcy12MV8wXzEucGF0 Y2gKLWFuZCByZWNvbXBpbGUuCi0KLSogTm90ZXMgZm9yIHBsdWdpbiBhdXRob3JzCi1UaGUgZm9s bG93aW5nIGNvZGUgc2FtcGxlIHNob3dzIHRoZSByZXF1aXJlZCBwbHVnaW4gY29kZSBmb3IgcmVw bGFjaW5nCi10aGUgb3JpZ2luYWwgU2NoZWR1bGUgbWVudToKLQotYm9vbCBjTXlQbHVnaW46OlNl cnZpY2UoY29uc3QgY2hhciAqSWQsIHZvaWQgKkRhdGEpCi17Ci0gIGNPc2RNZW51ICoqbWVudSA9 IChjT3NkTWVudSoqKSBEYXRhOwotICBpZiAoTXlTZXR1cC5yZXBsYWNlU2NoZWR1bGUgJiYKLSAg ICAgICAgICAgIHN0cmNtcChJZCwgIk1haW5NZW51SG9va3NQYXRjaC12MS4wOjpvc1NjaGVkdWxl IikgPT0gMCkgewotICAgIGlmIChtZW51KQotICAgICAgKm1lbnUgPSAoY09zZE1lbnUqKSBNYWlu TWVudUFjdGlvbigpOwotICAgIHJldHVybiB0cnVlOwotICB9Ci0gIHJldHVybiBmYWxzZTsKLX0K LQotU2luY2UgcGF0Y2ggdmVyc2lvbiAxLjAuMSwgdGhlIHNlcnZpY2UgY2FsbCBtYXkgcmV0dXJu IGEgY09zZE9iamVjdAotaW5zdGVhZCBvZiBhICdjT3NkTWVudScuIFVzZSAnI2lmZGVmIE1BSU5N RU5VSE9PS1NWRVJTSU9OJyB0byBkZXRlY3QKLXZlcnNpb24gMS4wLjEgb3IgbGF0ZXIuCi0KLUEg cGx1Z2luIGNhbiByZXBsYWNlIG1vcmUgdGhhbiBvbmUgbWVudSBhdCBhIHRpbWUuIFNpbXBseSBy ZXBsYWNlIHRoZQotY2FsbCB0byBNYWluTWVudUFjdGlvbigpIGluIHRoZSBzYW1wbGUgYWJvdmUg YnkgYXBwcm9wcmlhdGUgY29kZS4KLQotTm90ZSB0aGF0IGEgcGx1Z2luICpzaG91bGQqIG9mZmVy IGEgc2V0dXAgb3B0aW9uIHdoaWNoIGFsbG93cyB0aGUgdXNlcgotdG8gZW5hYmxlIG9yIGRpc2Fi bGUgdGhlIHJlcGxhY2VtZW50LiAiRGlzYWJsZWQiIHdvdWxkIGJlIGEgcmVhc29uYWJsZQotZGVm YXVsdCBzZXR0aW5nLiBCeSB0ZXN0aW5nIGZvciBhIHNwZWNpZmljICdNQUlOTUVOVUhPT0tTVkVS U05VTScsIGxpa2UKLScjaWYgTUFJTk1FTlVIT09LU1ZFUlNJT04gPj0gMTAwMDEnLCBwbHVnaW4g Y2FuIGRlY2lkZSBhdCBjb21waWxlIHRpbWUgCi13aGljaCBmZWF0dXJlcyBhbmQgc2V0dXAgb3B0 aW9ucyB0byBwcm92aWRlLgotCi1JbiBjYXNlIHRoZXJlIGlzIGFuIGludGVybmFsIHByb2JsZW0g d2hlbiB0cnlpbmcgdG8gb3BlbiB0aGUgcmVwbGFjZW1lbnQKLW1lbnUsIGl0IGlzIHNhZmUgdG8g cmV0dXJuICd0cnVlJyBldmVuIHRob3VnaCAnRGF0YScgaXMgTlVMTC4gSG93ZXZlciBhbgotT1NE IG1lc3NhZ2Ugc2hvdWxkIGluZGljYXRlIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLgotCi1GZWVs IGZyZWUgdG8gc2hpcCB0aGlzIHBhdGNoIGFsb25nIHdpdGggeW91ciBwbHVnaW4uIEhvd2V2ZXIg aWYgeW91Ci10aGluayB5b3UgbmVlZCB0byBtb2RpZnkgdGhlIHBhdGNoLCB3ZSdkIGVuY291cmFn ZSB5b3UgdG8gY29udGFjdCB0aGUKLWF1dGhvcnMgZmlyc3Qgb3IgYXQgbGVhc3QgdXNlIGEgc2Vy dmljZSBpZCB3aGljaCBkaWZmZXJzIGluIG1vcmUgdGhhbgotanVzdCB0aGUgdmVyc2lvbiBudW1i ZXIuCi0KLS0tLQotIGNvbmZpZy5oIHwgIDQgKysrKwotIG1lbnUuYyAgIHwgNzEgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KLSAyIGZpbGVz IGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvY29uZmlnLmggYi9jb25maWcuaAotaW5kZXggOTZmZDVkZDcuLmZkZGNkYzIxIDEwMDY0NAot LS0tIGEvY29uZmlnLmgKLSsrKyBiL2NvbmZpZy5oCi1AQCAtMzUsNiArMzUsMTAgQEAKLSAvLyBv bmx5IHdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdG8gdGhlIHBsdWdpbiBBUEkuIFRoaXMgYWxsb3dz IGNvbXBpbGVkCi0gLy8gcGx1Z2lucyB0byB3b3JrIHdpdGggbmV3ZXIgdmVyc2lvbnMgb2YgdGhl IGNvcmUgVkRSIGFzIGxvbmcgYXMgbm8KLSAvLyBpbnRlcmZhY2VzIGhhdmUgY2hhbmdlZC4gQVBJ VkVSU05VTSBiZWdpbnMgd2l0aCAiMzAwLi4iIGZvciBiYWNrd2FyZHMKLSsKLSsvLyBUaGUgTWFp bk1lbnVIb29rIFBhdGNoJ3MgdmVyc2lvbiBudW1iZXI6Ci0rI2RlZmluZSBNQUlOTUVOVUhPT0tT VkVSU0lPTiAiMS4wLjUiCi0rI2RlZmluZSBNQUlOTUVOVUhPT0tTVkVSU05VTSAgMTAwMDUgIC8v IFZlcnNpb24gKiAxMDAwMCArIE1ham9yICogMTAwICsgTWlub3IKLSAvLyBjb21wYXRpYmlsaXR5 IGFuZCBjYW4gYmUgdXNlZCBpbiAjaWYgcHJlcHJvY2Vzc29yIHN0YXRlbWVudHMgdG8gaGFuZGxl Ci0gLy8gdmVyc2lvbiBkZXBlbmRlbnQgY29kZS4KLSAKLWRpZmYgLS1naXQgYS9tZW51LmMgYi9t ZW51LmMKLWluZGV4IDg3OThhM2YxLi41NzU1NWQzZSAxMDA2NDQKLS0tLSBhL21lbnUuYwotKysr IGIvbWVudS5jCi1AQCAtNDY3MSwxNSArNDY3MSwzMSBAQCBjTWVudU1haW46OmNNZW51TWFpbihl T1NTdGF0ZSBTdGF0ZSwgYm9vbCBPcGVuU3ViTWVudXMpCi0gCi0gICAvLyBJbml0aWFsIHN1Ym1l bnVzOgotIAotKyAgY09zZE9iamVjdCAqbWVudSA9IE5VTEw7Ci0gICBzd2l0Y2ggKFN0YXRlKSB7 Ci0tICAgIGNhc2Ugb3NTY2hlZHVsZTogICBBZGRTdWJNZW51KG5ldyBjTWVudVNjaGVkdWxlKTsg YnJlYWs7Ci0tICAgIGNhc2Ugb3NDaGFubmVsczogICBBZGRTdWJNZW51KG5ldyBjTWVudUNoYW5u ZWxzKTsgYnJlYWs7Ci0tICAgIGNhc2Ugb3NUaW1lcnM6ICAgICBBZGRTdWJNZW51KG5ldyBjTWVu dVRpbWVycyk7IGJyZWFrOwotLSAgICBjYXNlIG9zUmVjb3JkaW5nczogQWRkU3ViTWVudShuZXcg Y01lbnVSZWNvcmRpbmdzKE5VTEwsIDAsIE9wZW5TdWJNZW51cykpOyBicmVhazsKLS0gICAgY2Fz ZSBvc1NldHVwOiAgICAgIEFkZFN1Yk1lbnUobmV3IGNNZW51U2V0dXApOyBicmVhazsKLS0gICAg Y2FzZSBvc0NvbW1hbmRzOiAgIEFkZFN1Yk1lbnUobmV3IGNNZW51Q29tbWFuZHModHIoIkJ1dHRv biRDb21tYW5kcyIpLCAmQ29tbWFuZHMpKTsgYnJlYWs7Ci0rICAgIGNhc2Ugb3NTY2hlZHVsZToK LSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxGaXJzdFNlcnZpY2UoIk1haW5NZW51 SG9va3NQYXRjaC12MS4wOjpvc1NjaGVkdWxlIiwgJm1lbnUpKQotKyAgICAgICAgICAgIG1lbnUg PSBuZXcgY01lbnVTY2hlZHVsZTsKLSsgICAgICAgIGJyZWFrOwotKyAgICBjYXNlIG9zQ2hhbm5l bHM6Ci0rICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNlKCJNYWlu TWVudUhvb2tzUGF0Y2gtdjEuMDo6b3NDaGFubmVscyIsICZtZW51KSkKLSsgICAgICAgICAgICBt ZW51ID0gbmV3IGNNZW51Q2hhbm5lbHM7Ci0rICAgICAgICBicmVhazsKLSsgICAgY2FzZSBvc1Rp bWVyczoKLSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxGaXJzdFNlcnZpY2UoIk1h aW5NZW51SG9va3NQYXRjaC12MS4wOjpvc1RpbWVycyIsICZtZW51KSkKLSsgICAgICAgICAgICBt ZW51ID0gbmV3IGNNZW51VGltZXJzOwotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ugb3NSZWNv cmRpbmdzOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2FsbEZpcnN0U2VydmljZSgi TWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zUmVjb3JkaW5ncyIsICZtZW51KSkKLSsgICAgICAg ICAgICBtZW51ID0gbmV3IGNNZW51UmVjb3JkaW5ncyhOVUxMLCAwLCBPcGVuU3ViTWVudXMpOwot KyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ugb3NTZXR1cDogICAgICBtZW51ID0gbmV3IGNNZW51 U2V0dXA7IGJyZWFrOwotKyAgICBjYXNlIG9zQ29tbWFuZHM6ICAgbWVudSA9IG5ldyBjTWVudUNv bW1hbmRzKHRyKCJCdXR0b24kQ29tbWFuZHMiKSwgJkNvbW1hbmRzKTsgYnJlYWs7Ci0gICAgIGRl ZmF1bHQ6IGJyZWFrOwotICAgICB9Ci0rICBpZiAobWVudSkKLSsgICAgIGlmIChtZW51LT5Jc01l bnUoKSkKLSsgICAgICAgIEFkZFN1Yk1lbnUoKGNPc2RNZW51ICopIG1lbnUpOwotIH0KLSAKLSBj T3NkT2JqZWN0ICpjTWVudU1haW46OlBsdWdpbk9zZE9iamVjdCh2b2lkKQotQEAgLTQ4MDgsMTUg KzQ4MjQsMzYgQEAgZU9TU3RhdGUgY01lbnVNYWluOjpQcm9jZXNzS2V5KGVLZXlzIEtleSkKLSAg IGVPU1N0YXRlIHN0YXRlID0gY09zZE1lbnU6OlByb2Nlc3NLZXkoS2V5KTsKLSAgIEhhZFN1Yk1l bnUgfD0gSGFzU3ViTWVudSgpOwotIAotKyAgY09zZE9iamVjdCAqbWVudSA9IE5VTEw7Ci0gICBz d2l0Y2ggKHN0YXRlKSB7Ci0tICAgIGNhc2Ugb3NTY2hlZHVsZTogICByZXR1cm4gQWRkU3ViTWVu dShuZXcgY01lbnVTY2hlZHVsZSk7Ci0tICAgIGNhc2Ugb3NDaGFubmVsczogICByZXR1cm4gQWRk U3ViTWVudShuZXcgY01lbnVDaGFubmVscyk7Ci0tICAgIGNhc2Ugb3NUaW1lcnM6ICAgICByZXR1 cm4gQWRkU3ViTWVudShuZXcgY01lbnVUaW1lcnMpOwotLSAgICBjYXNlIG9zUmVjb3JkaW5nczog cmV0dXJuIEFkZFN1Yk1lbnUobmV3IGNNZW51UmVjb3JkaW5ncyk7Ci0tICAgIGNhc2Ugb3NSZWNz T3BlbjogICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVSZWNvcmRpbmdzKE5VTEwsIDAsIHRy dWUpKTsKLS0gICAgY2FzZSBvc1JlY3NEZWw6ICAgIHJldHVybiBBZGRTdWJNZW51KG5ldyBjTWVu dVJlY29yZGluZ3MoTlVMTCwgMCwgdHJ1ZSwgTlVMTCwgdHJ1ZSkpOwotLSAgICBjYXNlIG9zU2V0 dXA6ICAgICAgcmV0dXJuIEFkZFN1Yk1lbnUobmV3IGNNZW51U2V0dXApOwotLSAgICBjYXNlIG9z Q29tbWFuZHM6ICAgcmV0dXJuIEFkZFN1Yk1lbnUobmV3IGNNZW51Q29tbWFuZHModHIoIkJ1dHRv biRDb21tYW5kcyIpLCAmQ29tbWFuZHMpKTsKLSsgICAgY2FzZSBvc1NjaGVkdWxlOgotKyAgICAg ICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2FsbEZpcnN0U2VydmljZSgiTWFpbk1lbnVIb29rc1Bh dGNoLXYxLjA6Om9zU2NoZWR1bGUiLCAmbWVudSkpCi0rICAgICAgICAgICAgbWVudSA9IG5ldyBj TWVudVNjaGVkdWxlOwotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHN0YXRlID0gb3NDb250 aW51ZTsKLSsgICAgICAgIGJyZWFrOwotKyAgICBjYXNlIG9zQ2hhbm5lbHM6Ci0rICAgICAgICBp ZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNlKCJNYWluTWVudUhvb2tzUGF0Y2gt djEuMDo6b3NDaGFubmVscyIsICZtZW51KSkKLSsgICAgICAgICAgICBtZW51ID0gbmV3IGNNZW51 Q2hhbm5lbHM7Ci0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgc3RhdGUgPSBvc0NvbnRpbnVl OwotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ugb3NUaW1lcnM6Ci0rICAgICAgICBpZiAoIWNQ bHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNlKCJNYWluTWVudUhvb2tzUGF0Y2gtdjEuMDo6 b3NUaW1lcnMiLCAmbWVudSkpCi0rICAgICAgICAgICAgbWVudSA9IG5ldyBjTWVudVRpbWVyczsK LSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBzdGF0ZSA9IG9zQ29udGludWU7Ci0rICAgICAg ICBicmVhazsKLSsgICAgY2FzZSBvc1JlY29yZGluZ3M6Ci0rICAgICAgICBpZiAoIWNQbHVnaW5N YW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNlKCJNYWluTWVudUhvb2tzUGF0Y2gtdjEuMDo6b3NSZWNv cmRpbmdzIiwgJm1lbnUpKQotKyAgICAgICAgICAgIG1lbnUgPSBuZXcgY01lbnVSZWNvcmRpbmdz OwotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHN0YXRlID0gb3NDb250aW51ZTsKLSsgICAg ICAgIGJyZWFrOwotKyAgICBjYXNlIG9zUmVjc09wZW46ICAgbWVudSA9IG5ldyBjTWVudVJlY29y ZGluZ3MoTlVMTCwgMCwgdHJ1ZSk7IGJyZWFrOwotKyAgICBjYXNlIG9zUmVjc0RlbDogICAgbWVu dSA9IG5ldyBjTWVudVJlY29yZGluZ3MoTlVMTCwgMCwgdHJ1ZSwgTlVMTCwgdHJ1ZSk7IGJyZWFr OwotKyAgICBjYXNlIG9zU2V0dXA6ICAgICAgbWVudSA9IG5ldyBjTWVudVNldHVwOyBicmVhazsK LSsgICAgY2FzZSBvc0NvbW1hbmRzOiAgIG1lbnUgPSBuZXcgY01lbnVDb21tYW5kcyh0cigiQnV0 dG9uJENvbW1hbmRzIiksICZDb21tYW5kcyk7IGJyZWFrOwotICAgICBjYXNlIG9zU3RvcFJlY29y ZDogaWYgKEludGVyZmFjZS0+Q29uZmlybSh0cigiU3RvcCByZWNvcmRpbmc/IikpKSB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoY09zZEl0ZW0gKml0ZW0gPSBHZXQoQ3VycmVudCgp KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1JlY29yZENvbnRyb2xzOjpTdG9w KGl0ZW0tPlRleHQoKSArIHN0cmxlbih0cihTVE9QX1JFQ09SRElORykpKTsKLUBAIC00ODY3LDYg KzQ5MDQsMTIgQEAgZU9TU3RhdGUgY01lbnVNYWluOjpQcm9jZXNzS2V5KGVLZXlzIEtleSkKLSAg ICAgICAgICAgICAgICBkZWZhdWx0OiAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAg ICAgfQotKyAgaWYgKG1lbnUpIHsKLSsgICAgIGlmIChtZW51LT5Jc01lbnUoKSkKLSsgICAgICAg IHJldHVybiBBZGRTdWJNZW51KChjT3NkTWVudSAqKSBtZW51KTsKLSsgICAgIHBsdWdpbk9zZE9i amVjdCA9IG1lbnU7Ci0rICAgICByZXR1cm4gb3NQbHVnaW47Ci0rICAgICB9Ci0gICBib29sIERv RGlzcGxheSA9IFVwZGF0ZSgpOwotICAgaWYgKEtleSAhPSBrTm9uZSkgewotICAgICAgaWYgKEkx OG5DdXJyZW50TGFuZ3VhZ2UoKSAhPSBvc2RMYW5ndWFnZSkgewotLS0gCi0yLjQzLjAKLQoKZGlm ZiAtLWdpdCBhL3Zkci0yLjguMi1NYWluTWVudUhvb2tzLXYxXzBfNS5kaWZmIGIvdmRyLTIuOC4y LU1haW5NZW51SG9va3MtdjFfMF81LmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDQ3NWMwZmYuLjAwMDAwMDAKLS0tIGEvdmRyLTIuOC4yLU1haW5NZW51SG9va3MtdjFfMF81LmRp ZmYKKysrIC9kZXYvbnVsbApAQCAtMSwyMDggKzAsMCBAQAotVGhpcyBpcyBhICJwYXRjaCIgZm9y IHRoZSBWaWRlbyBEaXNrIFJlY29yZGVyIChWRFIpLgotCi0qIEhpc3RvcnkKLTIwMjYtMDItMDc6 IFZlcnNpb24gMS4wLjUKLVVwZGF0ZSBmb3IgVkRSIDIuNy45IChTdGVmYW4gSG9mbWFubikKLQot MjAyNS0wMi0yNjogVmVyc2lvbiAxLjAuNAotVXBkYXRlIGZvciBWRFIgMi43LjQgKErDtnJnIFJp ZWNoYXJkdCkKLQotMjAxMy0xMS0wODogVmVyc2lvbiAxLjAuMwotVXBkYXRlIGZvciBWRFIgMi4x LjIgKErDtnJnIFJpZWNoYXJkdCkKLQotMjAxMi0wNC0wNjogVmVyc2lvbiAxLjAuMgotLSBVcGRh dGUgZm9yIHJlY2VudCBWRFIgZGV2ZWxvcGVyIHZlcnNpb25zIChNYW51ZWwgUmVpbWVyKQotCi0y MDEwLTEwLTE1OiBWZXJzaW9uIDEuMC4xCi0tIHJldHVybiBhIGNPc2RPYmplY3QgaW5zdGVhZCBv ZiBpdHMgc3ViY2xhc3MgY09zZE1lbnUgKHRoYW5rcyB0bwotICBKb2VfREB2ZHJwb3J0YWwpCi0t IHZlcnNpb24gbnVtYmVyIGRlZmluZXMgaW4gJ2NvbmZpZy5oJyBub3cgZm9sbG93IHRoZSB1c3Vh bCBjb252ZW50aW9uczoKLSAgTUFJTk1FTlVIT09LU1ZFUlNOVU0gaXMgbm93IGEgbnVtYmVyLCB0 aGUgbmV3bHkgYWRkZWQgZGVmaW5lCi0gIE1BSU5NRU5VSE9PS1NWRVJTSU9OIGlzIGEgc3RyaW5n IChzdWdnZXN0ZWQgYnkgZ25hcGhldXNAdmRycG9ydGFsKQotLSBwYXRjaCBpcyBub3cgYmFzZWQg b24gVkRSIDEuNi4wCi0tIHVwZGF0ZWQgZG9jdW1lbnRhdGlvbgotCi0yMDA3LTAyLTI2OiBWZXJz aW9uIDEuMAotLSBJbml0aWFsIHJldmlzaW9uLgotCi0qIEF1dGhvcnM6Ci1Ub2JpYXMgR3JpbW0g IDx2ZHIgYXQgZS10b2JpIGRvdCBuZXQ+Ci1NYXJ0aW4gUHJvY2hub3cgIDxub3JkbGljaHQgYXQg bWFydGlucy1rYWJ1ZmYgZG90IGRlPgotRnJhbmsgU2NobWlybGVyICA8dmRyZGV2IGF0IHNjaG1p cmxlciBkb3QgZGU+Ci1DaHJpc3RpYW4gV2llbmluZ2VyICA8Y3dpZW5pbmdlciBhdCBnbXggZG90 IGRlPgotCi0qIERlc2NyaXB0aW9uOgotVGhpcyBwYXRjaCBhbGxvd3MgcGx1Z2lucyB0byByZXBs YWNlIHRoZSBWRFIgbWFpbiBtZW51cyAiU2NoZWR1bGUiLAotIkNoYW5uZWxzIiwgIlRpbWVycyIg YW5kICJSZWNvcmRpbmdzIiBieSBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbi4KLQotVGhlIHBh dGNoIGlzIGJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBvZiBDaHJpc3RpYW4gV2llbmluZ2VyIGJhY2sg aW4gMjAwNgotKGh0dHA6Ly93d3cubGludXh0di5vcmcvcGlwZXJtYWlsL3Zkci8yMDA2LU1hcmNo LzAwODIzNC5odG1sKS4gSXQgaXMKLW1lYW50IHRvIGJlIGFuIGludGVyaW0gc29sdXRpb24gZm9y IFZEUiAxLjQgdW50aWwgKG1heWJlKSBWRFIgMS41Ci1pbnRyb2R1Y2VzIGFuIG9mZmljaWFsIEFQ SSBmb3IgdGhpcyBwdXJwb3NlLgotCi0qIEluc3RhbGxhdGlvbgotQ2hhbmdlIGludG8gdGhlIFZE UiBzb3VyY2UgZGlyZWN0b3J5LCB0aGVuIGlzc3VlCi0gIHBhdGNoIC1wMSA8IHBhdGgvdG8vTWFp bk1lbnVIb29rcy12MV8wXzEucGF0Y2gKLWFuZCByZWNvbXBpbGUuCi0KLSogTm90ZXMgZm9yIHBs dWdpbiBhdXRob3JzCi1UaGUgZm9sbG93aW5nIGNvZGUgc2FtcGxlIHNob3dzIHRoZSByZXF1aXJl ZCBwbHVnaW4gY29kZSBmb3IgcmVwbGFjaW5nCi10aGUgb3JpZ2luYWwgU2NoZWR1bGUgbWVudToK LQotYm9vbCBjTXlQbHVnaW46OlNlcnZpY2UoY29uc3QgY2hhciAqSWQsIHZvaWQgKkRhdGEpCi17 Ci0gIGNPc2RNZW51ICoqbWVudSA9IChjT3NkTWVudSoqKSBEYXRhOwotICBpZiAoTXlTZXR1cC5y ZXBsYWNlU2NoZWR1bGUgJiYKLSAgICAgICAgICAgIHN0cmNtcChJZCwgIk1haW5NZW51SG9va3NQ YXRjaC12MS4wOjpvc1NjaGVkdWxlIikgPT0gMCkgewotICAgIGlmIChtZW51KQotICAgICAgKm1l bnUgPSAoY09zZE1lbnUqKSBNYWluTWVudUFjdGlvbigpOwotICAgIHJldHVybiB0cnVlOwotICB9 Ci0gIHJldHVybiBmYWxzZTsKLX0KLQotU2luY2UgcGF0Y2ggdmVyc2lvbiAxLjAuMSwgdGhlIHNl cnZpY2UgY2FsbCBtYXkgcmV0dXJuIGEgY09zZE9iamVjdAotaW5zdGVhZCBvZiBhICdjT3NkTWVu dScuIFVzZSAnI2lmZGVmIE1BSU5NRU5VSE9PS1NWRVJTSU9OJyB0byBkZXRlY3QKLXZlcnNpb24g MS4wLjEgb3IgbGF0ZXIuCi0KLUEgcGx1Z2luIGNhbiByZXBsYWNlIG1vcmUgdGhhbiBvbmUgbWVu dSBhdCBhIHRpbWUuIFNpbXBseSByZXBsYWNlIHRoZQotY2FsbCB0byBNYWluTWVudUFjdGlvbigp IGluIHRoZSBzYW1wbGUgYWJvdmUgYnkgYXBwcm9wcmlhdGUgY29kZS4KLQotTm90ZSB0aGF0IGEg cGx1Z2luICpzaG91bGQqIG9mZmVyIGEgc2V0dXAgb3B0aW9uIHdoaWNoIGFsbG93cyB0aGUgdXNl cgotdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIHJlcGxhY2VtZW50LiAiRGlzYWJsZWQiIHdvdWxk IGJlIGEgcmVhc29uYWJsZQotZGVmYXVsdCBzZXR0aW5nLiBCeSB0ZXN0aW5nIGZvciBhIHNwZWNp ZmljICdNQUlOTUVOVUhPT0tTVkVSU05VTScsIGxpa2UKLScjaWYgTUFJTk1FTlVIT09LU1ZFUlNJ T04gPj0gMTAwMDEnLCBwbHVnaW4gY2FuIGRlY2lkZSBhdCBjb21waWxlIHRpbWUgCi13aGljaCBm ZWF0dXJlcyBhbmQgc2V0dXAgb3B0aW9ucyB0byBwcm92aWRlLgotCi1JbiBjYXNlIHRoZXJlIGlz IGFuIGludGVybmFsIHByb2JsZW0gd2hlbiB0cnlpbmcgdG8gb3BlbiB0aGUgcmVwbGFjZW1lbnQK LW1lbnUsIGl0IGlzIHNhZmUgdG8gcmV0dXJuICd0cnVlJyBldmVuIHRob3VnaCAnRGF0YScgaXMg TlVMTC4gSG93ZXZlciBhbgotT1NEIG1lc3NhZ2Ugc2hvdWxkIGluZGljYXRlIHRoZSBwcm9ibGVt IHRvIHRoZSB1c2VyLgotCi1GZWVsIGZyZWUgdG8gc2hpcCB0aGlzIHBhdGNoIGFsb25nIHdpdGgg eW91ciBwbHVnaW4uIEhvd2V2ZXIgaWYgeW91Ci10aGluayB5b3UgbmVlZCB0byBtb2RpZnkgdGhl IHBhdGNoLCB3ZSdkIGVuY291cmFnZSB5b3UgdG8gY29udGFjdCB0aGUKLWF1dGhvcnMgZmlyc3Qg b3IgYXQgbGVhc3QgdXNlIGEgc2VydmljZSBpZCB3aGljaCBkaWZmZXJzIGluIG1vcmUgdGhhbgot anVzdCB0aGUgdmVyc2lvbiBudW1iZXIuCi0KLS0tLQotIGNvbmZpZy5oIHwgIDQgKysrKwotIG1l bnUuYyAgIHwgNzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDE0IGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlnLmggYi9jb25maWcuaAotaW5kZXggOTZmZDVk ZDcuLmZkZGNkYzIxIDEwMDY0NAotLS0tIGEvY29uZmlnLmgKLSsrKyBiL2NvbmZpZy5oCi1AQCAt MzUsNiArMzUsMTAgQEAKLSAvLyBvbmx5IHdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdG8gdGhlIHBs dWdpbiBBUEkuIFRoaXMgYWxsb3dzIGNvbXBpbGVkCi0gLy8gcGx1Z2lucyB0byB3b3JrIHdpdGgg bmV3ZXIgdmVyc2lvbnMgb2YgdGhlIGNvcmUgVkRSIGFzIGxvbmcgYXMgbm8KLSAvLyBpbnRlcmZh Y2VzIGhhdmUgY2hhbmdlZC4gQVBJVkVSU05VTSBiZWdpbnMgd2l0aCAiMzAwLi4iIGZvciBiYWNr d2FyZHMKLSsKLSsvLyBUaGUgTWFpbk1lbnVIb29rIFBhdGNoJ3MgdmVyc2lvbiBudW1iZXI6Ci0r I2RlZmluZSBNQUlOTUVOVUhPT0tTVkVSU0lPTiAiMS4wLjUiCi0rI2RlZmluZSBNQUlOTUVOVUhP T0tTVkVSU05VTSAgMTAwMDUgIC8vIFZlcnNpb24gKiAxMDAwMCArIE1ham9yICogMTAwICsgTWlu b3IKLSAvLyBjb21wYXRpYmlsaXR5IGFuZCBjYW4gYmUgdXNlZCBpbiAjaWYgcHJlcHJvY2Vzc29y IHN0YXRlbWVudHMgdG8gaGFuZGxlCi0gLy8gdmVyc2lvbiBkZXBlbmRlbnQgY29kZS4KLSAKLWRp ZmYgLS1naXQgYS9tZW51LmMgYi9tZW51LmMKLWluZGV4IDg3OThhM2YxLi41NzU1NWQzZSAxMDA2 NDQKLS0tLSBhL21lbnUuYwotKysrIGIvbWVudS5jCi1AQCAtNDY3MSwxNSArNDY3MSwzMSBAQCBj TWVudU1haW46OmNNZW51TWFpbihlT1NTdGF0ZSBTdGF0ZSwgYm9vbCBPcGVuU3ViTWVudXMpCi0g Ci0gICAvLyBJbml0aWFsIHN1Ym1lbnVzOgotIAotKyAgY09zZE9iamVjdCAqbWVudSA9IE5VTEw7 Ci0gICBzd2l0Y2ggKFN0YXRlKSB7Ci0tICAgIGNhc2Ugb3NTY2hlZHVsZTogICBBZGRTdWJNZW51 KG5ldyBjTWVudVNjaGVkdWxlKTsgYnJlYWs7Ci0tICAgIGNhc2Ugb3NDaGFubmVsczogICBBZGRT dWJNZW51KG5ldyBjTWVudUNoYW5uZWxzKTsgYnJlYWs7Ci0tICAgIGNhc2Ugb3NUaW1lcnM6ICAg ICBBZGRTdWJNZW51KG5ldyBjTWVudVRpbWVycyk7IGJyZWFrOwotLSAgICBjYXNlIG9zUmVjb3Jk aW5nczogQWRkU3ViTWVudShuZXcgY01lbnVSZWNvcmRpbmdzKE5VTEwsIDAsIE9wZW5TdWJNZW51 cykpOyBicmVhazsKLS0gICAgY2FzZSBvc1NldHVwOiAgICAgIEFkZFN1Yk1lbnUobmV3IGNNZW51 U2V0dXApOyBicmVhazsKLS0gICAgY2FzZSBvc0NvbW1hbmRzOiAgIEFkZFN1Yk1lbnUobmV3IGNN ZW51Q29tbWFuZHModHIoIkJ1dHRvbiRDb21tYW5kcyIpLCAmQ29tbWFuZHMpKTsgYnJlYWs7Ci0r ICAgIGNhc2Ugb3NTY2hlZHVsZToKLSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxG aXJzdFNlcnZpY2UoIk1haW5NZW51SG9va3NQYXRjaC12MS4wOjpvc1NjaGVkdWxlIiwgJm1lbnUp KQotKyAgICAgICAgICAgIG1lbnUgPSBuZXcgY01lbnVTY2hlZHVsZTsKLSsgICAgICAgIGJyZWFr OwotKyAgICBjYXNlIG9zQ2hhbm5lbHM6Ci0rICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpD YWxsRmlyc3RTZXJ2aWNlKCJNYWluTWVudUhvb2tzUGF0Y2gtdjEuMDo6b3NDaGFubmVscyIsICZt ZW51KSkKLSsgICAgICAgICAgICBtZW51ID0gbmV3IGNNZW51Q2hhbm5lbHM7Ci0rICAgICAgICBi cmVhazsKLSsgICAgY2FzZSBvc1RpbWVyczoKLSsgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6 OkNhbGxGaXJzdFNlcnZpY2UoIk1haW5NZW51SG9va3NQYXRjaC12MS4wOjpvc1RpbWVycyIsICZt ZW51KSkKLSsgICAgICAgICAgICBtZW51ID0gbmV3IGNNZW51VGltZXJzOwotKyAgICAgICAgYnJl YWs7Ci0rICAgIGNhc2Ugb3NSZWNvcmRpbmdzOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdl cjo6Q2FsbEZpcnN0U2VydmljZSgiTWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zUmVjb3JkaW5n cyIsICZtZW51KSkKLSsgICAgICAgICAgICBtZW51ID0gbmV3IGNNZW51UmVjb3JkaW5ncyhOVUxM LCAwLCBPcGVuU3ViTWVudXMpOwotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ugb3NTZXR1cDog ICAgICBtZW51ID0gbmV3IGNNZW51U2V0dXA7IGJyZWFrOwotKyAgICBjYXNlIG9zQ29tbWFuZHM6 ICAgbWVudSA9IG5ldyBjTWVudUNvbW1hbmRzKHRyKCJCdXR0b24kQ29tbWFuZHMiKSwgJkNvbW1h bmRzKTsgYnJlYWs7Ci0gICAgIGRlZmF1bHQ6IGJyZWFrOwotICAgICB9Ci0rICBpZiAobWVudSkK LSsgICAgIGlmIChtZW51LT5Jc01lbnUoKSkKLSsgICAgICAgIEFkZFN1Yk1lbnUoKGNPc2RNZW51 ICopIG1lbnUpOwotIH0KLSAKLSBjT3NkT2JqZWN0ICpjTWVudU1haW46OlBsdWdpbk9zZE9iamVj dCh2b2lkKQotQEAgLTQ4MDgsMTUgKzQ4MjQsMzYgQEAgZU9TU3RhdGUgY01lbnVNYWluOjpQcm9j ZXNzS2V5KGVLZXlzIEtleSkKLSAgIGVPU1N0YXRlIHN0YXRlID0gY09zZE1lbnU6OlByb2Nlc3NL ZXkoS2V5KTsKLSAgIEhhZFN1Yk1lbnUgfD0gSGFzU3ViTWVudSgpOwotIAotKyAgY09zZE9iamVj dCAqbWVudSA9IE5VTEw7Ci0gICBzd2l0Y2ggKHN0YXRlKSB7Ci0tICAgIGNhc2Ugb3NTY2hlZHVs ZTogICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVTY2hlZHVsZSk7Ci0tICAgIGNhc2Ugb3ND aGFubmVsczogICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVDaGFubmVscyk7Ci0tICAgIGNh c2Ugb3NUaW1lcnM6ICAgICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVUaW1lcnMpOwotLSAg ICBjYXNlIG9zUmVjb3JkaW5nczogcmV0dXJuIEFkZFN1Yk1lbnUobmV3IGNNZW51UmVjb3JkaW5n cyk7Ci0tICAgIGNhc2Ugb3NSZWNzT3BlbjogICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVS ZWNvcmRpbmdzKE5VTEwsIDAsIHRydWUpKTsKLS0gICAgY2FzZSBvc1JlY3NEZWw6ICAgIHJldHVy biBBZGRTdWJNZW51KG5ldyBjTWVudVJlY29yZGluZ3MoTlVMTCwgMCwgdHJ1ZSwgTlVMTCwgdHJ1 ZSkpOwotLSAgICBjYXNlIG9zU2V0dXA6ICAgICAgcmV0dXJuIEFkZFN1Yk1lbnUobmV3IGNNZW51 U2V0dXApOwotLSAgICBjYXNlIG9zQ29tbWFuZHM6ICAgcmV0dXJuIEFkZFN1Yk1lbnUobmV3IGNN ZW51Q29tbWFuZHModHIoIkJ1dHRvbiRDb21tYW5kcyIpLCAmQ29tbWFuZHMpKTsKLSsgICAgY2Fz ZSBvc1NjaGVkdWxlOgotKyAgICAgICAgaWYgKCFjUGx1Z2luTWFuYWdlcjo6Q2FsbEZpcnN0U2Vy dmljZSgiTWFpbk1lbnVIb29rc1BhdGNoLXYxLjA6Om9zU2NoZWR1bGUiLCAmbWVudSkpCi0rICAg ICAgICAgICAgbWVudSA9IG5ldyBjTWVudVNjaGVkdWxlOwotKyAgICAgICAgZWxzZQotKyAgICAg ICAgICAgIHN0YXRlID0gb3NDb250aW51ZTsKLSsgICAgICAgIGJyZWFrOwotKyAgICBjYXNlIG9z Q2hhbm5lbHM6Ci0rICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNl KCJNYWluTWVudUhvb2tzUGF0Y2gtdjEuMDo6b3NDaGFubmVscyIsICZtZW51KSkKLSsgICAgICAg ICAgICBtZW51ID0gbmV3IGNNZW51Q2hhbm5lbHM7Ci0rICAgICAgICBlbHNlCi0rICAgICAgICAg ICAgc3RhdGUgPSBvc0NvbnRpbnVlOwotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ugb3NUaW1l cnM6Ci0rICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNlKCJNYWlu TWVudUhvb2tzUGF0Y2gtdjEuMDo6b3NUaW1lcnMiLCAmbWVudSkpCi0rICAgICAgICAgICAgbWVu dSA9IG5ldyBjTWVudVRpbWVyczsKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBzdGF0ZSA9 IG9zQ29udGludWU7Ci0rICAgICAgICBicmVhazsKLSsgICAgY2FzZSBvc1JlY29yZGluZ3M6Ci0r ICAgICAgICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNlKCJNYWluTWVudUhv b2tzUGF0Y2gtdjEuMDo6b3NSZWNvcmRpbmdzIiwgJm1lbnUpKQotKyAgICAgICAgICAgIG1lbnUg PSBuZXcgY01lbnVSZWNvcmRpbmdzOwotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHN0YXRl ID0gb3NDb250aW51ZTsKLSsgICAgICAgIGJyZWFrOwotKyAgICBjYXNlIG9zUmVjc09wZW46ICAg bWVudSA9IG5ldyBjTWVudVJlY29yZGluZ3MoTlVMTCwgMCwgdHJ1ZSk7IGJyZWFrOwotKyAgICBj YXNlIG9zUmVjc0RlbDogICAgbWVudSA9IG5ldyBjTWVudVJlY29yZGluZ3MoTlVMTCwgMCwgdHJ1 ZSwgTlVMTCwgdHJ1ZSk7IGJyZWFrOwotKyAgICBjYXNlIG9zU2V0dXA6ICAgICAgbWVudSA9IG5l dyBjTWVudVNldHVwOyBicmVhazsKLSsgICAgY2FzZSBvc0NvbW1hbmRzOiAgIG1lbnUgPSBuZXcg Y01lbnVDb21tYW5kcyh0cigiQnV0dG9uJENvbW1hbmRzIiksICZDb21tYW5kcyk7IGJyZWFrOwot ICAgICBjYXNlIG9zU3RvcFJlY29yZDogaWYgKEludGVyZmFjZS0+Q29uZmlybSh0cigiU3RvcCBy ZWNvcmRpbmc/IikpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY09zZEl0ZW0g Kml0ZW0gPSBHZXQoQ3VycmVudCgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y1JlY29yZENvbnRyb2xzOjpTdG9wKGl0ZW0tPlRleHQoKSArIHN0cmxlbih0cihTVE9QX1JFQ09S RElORykpKTsKLUBAIC00ODY3LDYgKzQ5MDQsMTIgQEAgZU9TU3RhdGUgY01lbnVNYWluOjpQcm9j ZXNzS2V5KGVLZXlzIEtleSkKLSAgICAgICAgICAgICAgICBkZWZhdWx0OiAgICAgIGJyZWFrOwot ICAgICAgICAgICAgICAgIH0KLSAgICAgfQotKyAgaWYgKG1lbnUpIHsKLSsgICAgIGlmIChtZW51 LT5Jc01lbnUoKSkKLSsgICAgICAgIHJldHVybiBBZGRTdWJNZW51KChjT3NkTWVudSAqKSBtZW51 KTsKLSsgICAgIHBsdWdpbk9zZE9iamVjdCA9IG1lbnU7Ci0rICAgICByZXR1cm4gb3NQbHVnaW47 Ci0rICAgICB9Ci0gICBib29sIERvRGlzcGxheSA9IFVwZGF0ZSgpOwotICAgaWYgKEtleSAhPSBr Tm9uZSkgewotICAgICAgaWYgKEkxOG5DdXJyZW50TGFuZ3VhZ2UoKSAhPSBvc2RMYW5ndWFnZSkg ewotLS0gCi0yLjQzLjAKLQoKZGlmZiAtLWdpdCBhL3Zkci1DSEFOR0VTLnBhY2thZ2Uub2xkIGIv dmRyLUNIQU5HRVMucGFja2FnZS5vbGQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0 NGU5YjkuLjAwMDAwMDAKLS0tIGEvdmRyLUNIQU5HRVMucGFja2FnZS5vbGQKKysrIC9kZXYvbnVs bApAQCAtMSw1MjYgKzAsMCBAQAotKiBNb24gU2VwICA1IDIwMTEgVmlsbGUgU2t5dHTDpCA8dmls bGUuc2t5dHRhQGlraS5maT4gLSAxLjYuMC00MQotLSBCdWlsZCB3aXRoICRSUE1fTERfRkxBR1Ms IGFkZCB0aGVtIHRvIE1ha2UuY29uZmlnLgotLSBTaGlwIHZhcmlvdXMgbWFjcm9zIGluIC1kZXZl bCB0byBlYXNlIHBsdWdpbiBwYWNrYWdpbmcuCi0KLSogVGh1IEp1bCAgNyAyMDExIFZpbGxlIFNr eXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS42LjAtNDAKLS0gVHdlYWsgaW5pdCBzY3Jp cHQgdG8gYmVoYXZlIGJldHRlciB3aXRoIHN5c3RlbWQgYXQgc2h1dGRvd24uCi0KLSogRnJpIEZl YiAxOCAyMDExIFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS42LjAtMzkK LS0gRml4IHdyaXRpbmcgbmV4dCB3YWtldXAgdGltZSBmcm9tIHNodXRkb3duIHNjcmlwdC4KLQot KiBXZWQgRmViIDE2IDIwMTEgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAx LjYuMC0zOAotLSBEcm9wIGJ1aWxkIHRpbWUgc3VwcG9ydCBmb3IgbGlyYyA8IDAuOC42IGRlZmF1 bHQgc29ja2V0IGxvY2F0aW9uLgotLSBSZXN1cnJlY3QgY2hhbm5lbCtlcGcgcGF0Y2guCi0tIFVz ZSAle19pbml0ZGRpcn0gaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCAle19pbml0cmRkaXJ9Lgot LSBTZXQgUlRDIHdha2V1cCBmb3IgbmV4dCB0aW1lciBhbHNvIHdoZW4gc2h1dHRpbmcgZG93biBm cm9tIG91dHNpZGUgb2YgVkRSLgotLSBBZGQgdG1wZmlsZXMuZCBjb25maWcgb24gRi0xNSsgKCM2 NTY3MTcpLgotCi0qIFR1ZSBGZWIgIDggMjAxMSBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFA aWtpLmZpPiAtIDEuNi4wLTM3Ci0tIEJhY2twb3J0IFY0TDIgcGF0Y2ggZnJvbSBWRFIgMS43Lngg dG8gZml4IGJ1aWxkIHdpdGggcmVjZW50IGtlcm5lbCBoZWFkZXJzLgotCi0qIE1vbiBGZWIgMDcg MjAxMSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9q ZWN0Lm9yZz4gLSAxLjYuMC0zNgotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qu b3JnL3dpa2kvRmVkb3JhXzE1X01hc3NfUmVidWlsZAotCi0qIE1vbiBOb3YgMjIgMjAxMCBWaWxs ZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNi4wLTM1Ci0tIEFkZCB2ZHIgdXNl ciB0byB0aGUgYXVkaW8gZ3JvdXAgZm9yIGRpcmVjdCBzb3VuZCBkZXZpY2UgYWNjZXNzIHdpdGgg c29tZQotICBwbHVnaW4gY29uZmlndXJhdGlvbnMuCi0KLSogTW9uIE9jdCAxOCAyMDEwIFZpbGxl IFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS42LjAtMzQKLS0gQWRkIHZkciB1c2Vy IHRvIHRoZSBjZHJvbSAoZm9yIG9wdGljYWwgZHJpdmVzKSBhbmQgZGlhbG91dCAoZm9yIHNlcmlh bCBwb3J0Ci0gIHJlbW90ZSBjb250cm9scykgZ3JvdXBzLgotLSBEcm9wIG5vIGxvbmdlciBuZWVk ZWQgcGFtX2NvbnNvbGUgY29uZmlndXJhdGlvbi4KLS0gTWFrZSB2ZHItaTE4bi10by1nZXR0ZXh0 IG1vcmUgbGlrZWx5IHRvIHdvcmsgb3V0IG9mIHRoZSBib3guCi0tIFVwZGF0ZSBNYWluTWVudUhv b2tzIHBhdGNoIHRvIDEuMC4xLgotLSBVcGRhdGUgVkRSX1BMVUdJTl9PUkRFUiBpbiBzeXNjb25m aWcuCi0tIFZhcmlvdXMgbWlub3IgdmRyLnBjIGltcHJvdmVtZW50cy4KLQotKiBUaHUgSnVsICA4 IDIwMTAgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjYuMC0zMwotLSBJ bmNsdWRlIENPUFlJTkcgaW4gLWRvY3MuCi0KLSogVHVlIEFwciAyNyAyMDEwIFZpbGxlIFNreXR0 w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS42LjAtMzIKLS0gVXNlIHJ0Y3dha2UgdG8gc2V0 IHdha2V1cCB0aW1lLCBzaW1wbGlmeSBzaHV0ZG93bi4KLS0gRHJvcCBubyBsb25nZXIgbmVlZGVk IERWQiBoZWFkZXIgd29ya2Fyb3VuZCAoIzQ4MzY0NCkuCi0tIE1vdmUgcHJlLTEuNi4wIGNoYW5n ZWxvZyBlbnRyaWVzIHRvIENIQU5HRVMucGFja2FnZS5vbGQuCi0KLSogU3VuIE1hciAgNyAyMDEw IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS42LjAtMzEKLS0gRHJvcCBk YXRhIG1pZ3JhdGlvbiBmcm9tICVwb3N0ICh3YXMgZm9yIHVwZ3JhZGVzIGZyb20gPCAxLjYuMC0x NSkuCi0KLSogU3VuIEZlYiAyMSAyMDEwIFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2ku Zmk+IC0gMS42LjAtMzAKLS0gRG8gc3Vkb2VycyBjb25maWcgd2l0aCBzdWRvZXJzLmQgKHN1ZG8g Pj0gMS43LjJwMi0zKS4KLQotKiBTdW4gTm92IDIyIDIwMDkgVmlsbGUtUGVra2EgVmFpbmlvIDx2 cGl2YWluaSBBVCBjcy5oZWxzaW5raS5maT4gLSAxLjYuMC0yOQotLSBTZXQgTElSQ19ERVZJQ0Ug dG8gL3Zhci9ydW4vbGlyYy9saXJjZCBmb3IgbGlyYyAwLjguNiBhbmQgYWRkIHBhdGNoIHRvCi0g IGNoYW5nZSB0aGUgc2t5IHBsdWdpbiBhbmQgdmRyLjEgbWFuIHBhZ2UgYWNjb3JkaW5nbHkgKCM1 Mzg2MDQpLgotCi0qIFdlZCBPY3QgMjggMjAwOSBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFA aWtpLmZpPiAtIDEuNi4wLTI4Ci0tIFVwZGF0ZSBVUkxzIHRvIHBvaW50IHRvIHR2ZHIuZGUuCi0K LSogU3VuIEF1ZyAgOSAyMDA5IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0g MS42LjAtMjcKLS0gTWFrZSAtZG9jcyBub2FyY2ggYWxzbyB3aGVuIGJ1aWx0IG9uIEVMID4gNS4K LQotKiBTdW4gSnVsIDI2IDIwMDkgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4g LSAxLjYuMC0yNgotLSBQcm92aWRlIElTQSBxdWFsaWZpZWQgdmRyKGFiaSkuICBQbHVnaW5zIHNo b3VsZCBkZXBlbmQgb24gKHZlcnNpb25lZCkKLSAgdmRyKGFiaSklez9faXNhfSBpbnN0ZWFkIG9m IGp1c3QgdmRyKGFiaSkuCi0tIEJvcnJvdyBidWlsZCBwYXRjaCBmb3IgcmVjZW50IChicm9rZW4/ ICM0ODM2NDQpIERWQiBoZWFkZXJzIGZyb20gb3BlblNVU0UuCi0tIEFwcGx5IGVwZ3NlYXJjaCB0 aW1lciBpbnRlZ3JhdGlvbiBwYXRjaC4KLS0gVXNlICVnbG9iYWwgaW5zdGVhZCBvZiAlZGVmaW5l LgotCi0qIE1vbiBKdW4gMjIgMjAwOSBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZp PiAtIDEuNi4wLTI1Ci0tIE1ha2UgLWRvY3Mgbm9hcmNoIHdoZW4gYnVpbHQgb24gRmVkb3JhID4g OS4KLQotKiBNb24gSnVuIDE1IDIwMDkgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5m aT4gLSAxLjYuMC0yNAotLSBVcGRhdGUgaGxjdXR0ZXIgcGF0Y2ggdG8gMC4yLjIsIGRyb3Agbm8g bG9uZ2VyIG5lZWRlZCBnY2MgNC40IHdvcmthcm91bmQuCi0tIFJlc3VycmVjdCBGaW5uaXNoIHRy YW5zbGF0aW9uIGZvciBobGN1dHRlci4KLQotKiBUdWUgSnVuICA5IDIwMDkgVmlsbGUgU2t5dHTD pCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjYuMC0yMwotLSBBcHBseSBnY2MgNC40IGJ1aWxk IGZpeCBmcm9tIG9wZW5TVVNFIGFuZCB1cHN0cmVhbSwgaGxjdXR0ZXIgc3RpbGwgbmVlZHMgd29y ay4KLS0gRHJvcCBubyBsb25nZXIgbmVlZGVkIERWQiBoZWFkZXIgd29ya2Fyb3VuZC4KLQotKiBU dWUgTWF5IDI2IDIwMDkgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjYu MC0yMgotLSBRdWlldCB1c2VybW9kLCBhdm9pZCBwb3NzaWJsZSBleHRyYSAtdiBpbnNlcnRlZCB0 byAvZXRjL3N5c2NvbmZpZy92ZHIgb24KLSAgdXBncmFkZXMgZnJvbSBlYXJsaWVyIHJlbGVhc2Vz IHRoYXQgdXNlZCB0byBkZWZhdWx0IHRvIC9zcnYvdmRyIGZvciB2aWRlby4KLS0gQWRkIGp1bXBw bGF5IHBhdGNoIDEuMCBhbmQgYSBGaW5uaXNoIHRyYW5zbGF0aW9uIGZvciBpdC4KLS0gVXBkYXRl IGxpZW1pa3V1dGlvIHBhdGNoIHRvIDEuMjcuCi0KLSogU2F0IEFwciAxOCAyMDA5IFZpbGxlIFNr eXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS42LjAtMjEKLS0gVXNlIHZpZGVvZGlyIGZy b20gL2V0Yy9zeXNjb25maWcvdmRyIGlmIHNldCBpbiB2ZHItbW92ZXRvLnNoLgotCi0qIFR1ZSBB cHIgMTQgMjAwOSBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNi4wLTIw Ci0tIEFkZCB1Z2x5IHdvcmthcm91bmRzIHRvICJmaXgiIGJ1aWxkIHdpdGggZ2NjIDQuNCBhbmQg Y3VycmVudCBEVkIgaGVhZGVycy4KLS0gVXNlIHVzZXJhZGQgLU4gaW5zdGVhZCBvZiAtbiBpbiBz Y3JpcHRsZXRzICgjNDk1NzMxKS4KLS0gSW5jbHVkZSBSb2xmIEFocmVuYmVyZydzIHN5c19uaWNl IGFuZCBpb25pY2UgcGF0Y2hlcy4KLS0gVXBkYXRlIGxpZW1pa3V1dGlvIHBhdGNoIHRvIDEuMjUu Ci0KLSogU2F0IEZlYiAyOCAyMDA5IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+ IC0gMS42LjAtMTkKLS0gVXBkYXRlIGxpZW1pa3V1dGlvIHBhdGNoIHRvIDEuMjQgdG8gZml4IHNv bWUgaXNzdWVzIHdpdGggZ2NjIDQuNC4KLS0gQXBwbHkgUm9sZiBBaHJlbmJlcmcncyBwYXRjaCB0 byBpbmNsdWRlIGF1ZGlvIGFuZCBzdWJ0aXRsZXMgc2hvcnRjdXQKLSAgYnV0dG9ucyBpbiBEVkIg c2V0dXAgbWVudS4KLQotKiBXZWQgRmViIDI1IDIwMDkgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJp bmcgPHJlbC1lbmdAbGlzdHMuZmVkb3JhcHJvamVjdC5vcmc+IC0gMS42LjAtMTgKLS0gUmVidWls dCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8xMV9NYXNzX1JlYnVp bGQKLQotKiBTYXQgSmFuIDMxIDIwMDkgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5m aT4gLSAxLjYuMC0xNwotLSBEbyBub3QgY3JlYXRlIHRoZSB2aWRlbyBncm91cCwgcmVxdWlyZSB1 ZGV2ID49IDEzNi0xIHdoaWNoIGNyZWF0ZXMgaXQuCi0tIFJlcGxhY2UgdHR4dHN1YnMgcGF0Y2gg d2l0aCBvbmUgZnJvbSBuZXcgdHR4dHN1YnMgdXBzdHJlYW0uCi0tIFVwZGF0ZSB0byByZS1yZWxl YXNlZCBsaWVtaWt1dXRpbyAxLjIxIHBhdGNoLgotCi0qIE1vbiBEZWMgMjkgMjAwOCBWaWxsZS1Q ZWtrYSBWYWluaW8gPHZwaXZhaW5pIEFUIGNzLmhlbHNpbmtpLmZpPiAtIDEuNi4wLTE2Ci0tIERp c2FibGUga2VybmVsIERWQiBBUEkgY2hlY2sgdG8gZml4IGJ1aWxkLCB1cHN0cmVhbSBWRFIgMS42 LjAgZXhwZWN0cyBEVkIKLSAgQVBJIHYzIGJ1dCBjdXJyZW50IFJhd2hpZGUga2VybmVscyBoYXZl IHY1LgotCi0qIFN1biBOb3YgMjMgMjAwOCBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtp LmZpPiAtIDEuNi4wLTE1Ci0tIFJlb3JnYW5pemUgZGlyIHN0cnVjdHVyZSBmb3IgYmV0dGVyIEZl ZG9yYSBndWlkZWxpbmVzIGNvbXBsaWFuY2UgKCM0NDM3MDYpOgotICAvdmFyL2xpYi92ZHIvKiAt PiAvdmFyL2xpYi92ZHIvZGF0YSwgL3Nydi92aWRlbyAtPiAvdmFyL2xpYi92ZHIvdmlkZW8uCi0t IERyb3AgYXVkaW9kaXIgYW5kIG93bmVyc2hpcCBvZiAvc3J2L2F1ZGlvLCBleGFtcGxlcyBzdGls bCBwb2ludCB0byBpdC4KLQotKiBTYXQgTm92IDIyIDIwMDggVmlsbGUgU2t5dHTDpCA8dmlsbGUu c2t5dHRhQGlraS5maT4gLSAxLjYuMC04Ci0tIEZpeCBzZXR0aW5nIHdha2V1cCB0aW1lIHZpYSBy dGMwIHdoZW4gaGFyZHdhcmUgY2xvY2sgaXMgbG9jYWx0aW1lLgotLSBEcm9wIHJlbW90ZSBwbHVn aW4gZXhhbXBsZXMgZnJvbSB1ZGV2IHJ1bGVzLCB0aGV5J3JlIGluIHZkci1yZW1vdGUgbm93Lgot Ci0qIFR1ZSBPY3QgMjggMjAwOCBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAt IDEuNi4wLTcKLS0gRml4IHNldHRpbmcgd2FrZXVwIHRpbWUgdmlhIC9wcm9jL2FjcGkvYWxhcm0g d2hlbiBoYXJkd2FyZSBjbG9jayBpcyBVVEMuCi0KLSogVGh1IFNlcCAyNSAyMDA4IFZpbGxlIFNr eXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS42LjAtNgotLSBSRUFETUUucGFja2FnZSB1 cGRhdGVzLgotLSBTcGVjZmlsZSBtaWNyby1jbGVhbnVwcy4KLQotKiBTdW4gU2VwICA3IDIwMDgg VmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjYuMC01Ci0tIFdvcmsgYXJv dW5kIEZlZG9yYSBidWlsZHN5cyBub3QgY29waW5nIHdpdGggIiVwYXRjaCAtRiIgKGluZnJhc3Ry dWN0dXJlCi0gIHRpY2tldCAjODE3KS4KLQotKiBTdW4gU2VwICA3IDIwMDggVmlsbGUgU2t5dHTD pCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjYuMC00Ci0tIEFwcGx5IHVwc3RyZWFtIDEuNi4w LTIgbWFpbnRlbmFuY2UgcGF0Y2guCi0tIFVwZGF0ZSBzaHV0ZG93bi93YWtldXAgZnVuY3Rpb25h bGl0eSBmb3IgRi05KyBBQ1BJIHdha2V1cC4KLS0gSW5zdGFsbCBoYWx0LmxvY2FsIHNjcmlwdCAo dmRyLWhhbHQubG9jYWwuc2gpIGluc3RlYWQgb2YgZW1iZWRkaW5nIGl0Ci0gIGluIFJFQURNRS1w YWNrYWdlLiAgSXQgc3RpbGwgbmVlZHMgdG8gYmUgaW5zZXJ0ZWQgdG8gKG9yIGluc3RhbGxlZC9z eW1saW5rZWQKLSAgYXMpIC9zYmluL2hhbHQubG9jYWwuCi0tIENvbnZlcnQgcmVtYWluaW5nIGRv Y3MgdG8gVVRGLTguCi0tIFNldCBleHBlY3RlZCBmdXp6IGZhY3RvciB3aGVuIGFwcGx5aW5nIHBh dGNoZXMuCi0KLSogU2F0IE1heSAxMCAyMDA4IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBp a2kuZmk+IC0gMS42LjAtMwotLSBVcGRhdGUgbGllbWlrdXV0aW8gcGF0Y2ggdG8gMS4yMS4KLS0g Q2hhbmdlIHRpbWVyY21kIHBhdGNoIHRvIHRoZSBvbmUgc2hpcHBlZCB3aXRoIGVwZ3NlYXJjaCAw LjkuMjQuCi0tIEluY2x1ZGUgdmRyLWkxOG4tdG8tZ2V0dGV4dCBpbiAtZGV2ZWwuCi0tIE93biAo JWdob3N0KSB2aWRlb2Rpci8udXBkYXRlLgotCi0qIFN1biBBcHIgMTMgMjAwOCBWaWxsZSBTa3l0 dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNi4wLTIKLS0gQXBwbHkgdXBzdHJlYW0gMS42 LjAtMSBtYWludGVuYW5jZSBwYXRjaC4KLS0gVXBkYXRlIHRpbWVyIGluZm8gcGF0Y2ggdG8gMC41 IChmaXhlcyB0aGUgIsKxIiBzaWduKS4KLQotKiBNb24gQXByICA3IDIwMDggVmlsbGUgU2t5dHTD pCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjYuMC0xCi0tIEFwcGx5ICJ1bm9mZmljaWFsIiB0 aW1lcmNtZCBwYXRjaCBmcm9tIEhvb2NoVkRSLgotLSBBcHBseSBMdWNhIE9saXZldHRpJ3MgRFhS MyBzdWJ0aXRsZSBjb21wYXRpYmlsaXR5IHBhdGNoLgotLSBEZWNyZWFzZSBkZWZhdWx0IHdha2V1 cCBkZWxheSBiZWZvcmUgYSB0aW1lZCByZWNvcmRpbmcgdG8gMTAgbWludXRlcy4KLS0gRG9uJ3Qg cmVsb2FkIERWQiBkcml2ZXJzIGJ5IGRlZmF1bHQgb24gdW5leHBlY3RlZCBleGl0cyBpbiBydW52 ZHIuCi0tIFVzZSAia2lsbCAtSFVQIiBpbiBpbml0IHNjcmlwdCdzIHJlc3RhcnQgYWN0aW9uIG9u bHkgb24gYSBydW5uaW5nIHNlcnZpY2UuCi0tIFVwZGF0ZSBhbmQgYXBwbHkgdGltZXItaW5mbyBw YXRjaC4KLQotKiBTdW4gQXByICA2IDIwMDggVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlr aS5maT4gLSAxLjYuMC0wLjQKLS0gT2Jzb2xldGUgdmRyLXN1YnRpdGxlcy4KLQotKiBGcmkgQXBy ICA0IDIwMDggVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjYuMC0wLjMK LS0gVXBkYXRlIGxpZW1pa3V1dGlvIHBhdGNoIHRvIDEuMjAuCi0tIE1vdmUgdmFyaW91cyAocGFy dGlhbGx5KSB1cHN0cmVhbWFibGUgY2hhbmdlcyB0byBwYXRjaGVzIGluc3RlYWQgb2YKLSAgaW5s aW5pbmcgdGhlbSBpbiB0aGUgc3BlY2ZpbGUuCi0tIERyb3AgdW51c2VkIGxvZ2Rpci4KLS0gTW92 ZSBwcmUtMjAwOCBjaGFuZ2Vsb2cgZW50cmllcyB0byBDSEFOR0VTLnBhY2thZ2Uub2xkLgotCi0q IFNhdCBNYXIgMjkgMjAwOCBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEu Ni4wLTAuMgotLSBBZGQgLS13aXRoIGRvY3MgYnVpbGQgb3B0aW9uIGZvciBidWlsZGluZyBhIC1k b2NzIHN1YnBhY2thZ2UuCi0tIFJlZnJlc2ggbGllbWlrdXV0aW8gYW5kIHR0eHRzdWJzIHBhdGNo ZXMuCi0KLSogU3VuIE1hciAyMyAyMDA4IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2ku Zmk+IC0gMS42LjAtMC4xCi0tIDEuNi4wIGZpbmFsOyBzdGlsbCBxdWl0ZSBhIGJpdCB0byBkbyB3 aXRoIHRoZSBwYWNrYWdlLgotLSBBZGFwdCBzeW5jIGVhcmx5IGFuZCBlcGdzZWFyY2ggKHBhcnRp YWxseSkgcGF0Y2hlcy4KLS0gRml4IGRlcGVuZGVuY2llcyBvZiB0aGUgc2t5IHBsdWdpbi4KLS0g TW92ZSBidW5jaCBvZiBpbmxpbmUgc2VkJ2luZyB0byBzZXBhcmF0ZSBwYXRjaGVzLgotLSBVc2Ug a2lsbCAtSFVQIGluIGluaXQgc2NyaXB0J3MgcmVzdGFydCBhY3Rpb24uCi0tIERvbid0IGluY2x1 ZGUgYnVuZGxlZCBwbHVnaW4gc3lzY29uZmlnIHNuaXBwZXRzIGluIG1haW4gcGFja2FnZS4KLQot KiBUdWUgTWFyIDE4IDIwMDggVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAx LjUuMTgtMC4xCi0tIEZpcnN0IGN1dCBhdCBwYWNrYWdpbmcgMS41LjE4LgotLSBQbHVnaW4gbGlj ZW5zZXMgY2xhcmlmaWVkIHRvIGJlIEdQTHYyKy4KLQotKiBTdW4gTWFyIDE2IDIwMDggVmlsbGUg U2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjQuNy0xMQotLSBLaWxsIHJ1bnZkciBi ZWZvcmUgdmRyIGluIGluaXQgc2NyaXB0J3MgInN0b3AiIGFjdGlvbiBpbiBvcmRlciB0byBwcmV2 ZW50Ci0gIGl0IGZyb20gcmVzdGFydGluZyB2ZHIgaW4gY2FzZSBzb21ldGhpbmcgZ29lcyB3cm9u ZyB3aGVuIHNodXR0aW5nIGRvd24uCi0tIERpcmVjdCBkZWJ1ZyBtZXNzYWdlcyBmcm9tIHN5bmMg ZWFybHkgcGF0Y2ggdG8gdG8gc3lzbG9nIGluc3RlYWQgb2Ygc3RkZXJyLgotLSBNYWtlIHRpbWUg dG8gd2FrZSB1cCBiZWZvcmUgYSB0aW1lciBjb25maWd1cmFibGUuCi0tIEVuYWJsZSBzaHV0ZG93 biBzY3JpcHQgYnkgZGVmYXVsdC4KLQotKiBXZWQgRmViIDIwIDIwMDggVmlsbGUgU2t5dHTDpCA8 dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjQuNy0xMAotLSBSZWJ1aWxkLgotCi0qIFN1biBGZWIg MTcgMjAwOCBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNC43LTkKLS0g RG9uJ3QgcnVuICJyZXN0YXJ0IiBmb3IgaW5pdCBzY3JpcHQncyAicmVsb2FkIiBhY3Rpb24gcGVy IHRoZSBMU0Igc3BlYy4KLS0gcnVudmRyIGNsZWFudXBzLCBoYW5kbGUgUExVR0lOX0VOQUJMRUQg dmFsdWVzIGNhc2UgaW5zZW5zaXRpdmVseS4KLQotKiBUaHUgRmViIDE0IDIwMDggVmlsbGUgU2t5 dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjQuNy04Ci0tIFBhdGNoIHRvIGZpeCBidWls ZCB3aXRoIEdDQyA0LjMncyBjbGVhbmVkIHVwIEMrKyBoZWFkZXJzLgotCi0qIFNhdCBKYW4gMTIg MjAwOCBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNC43LTcKLS0gSW5j bHVkZSBVZG8gUmljaHRlcidzIGhhcmQgbGluayBjdXR0ZXIgcGF0Y2ggdjAuMi4wIChzZWUgUkVB RE1FLUhMQ1VUVEVSKS4KLS0gQWRkIHNvbWUgcGx1Z2lucyB0byB0aGUgZGVmYXVsdCBwbHVnaW4g b3JkZXIgbGlzdCBpbiBzeXNjb25maWcuCi0tIE1pbm9yIHJ1bnZkciBjbGVhbnVwcy4KLQotKiBX ZWQgT2N0IDE3IDIwMDcgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjQu Ny02Ci0tIEFkZCBwYXRjaCB0byBzdGFydCBwbGF5YmFjayBmcm9tIHJlY29yZGluZ3MgbWVudSB3 aXRoIHRoZSBwbGF5IGJ1dHRvbi4KLQotKiBGcmkgT2N0IDEyIDIwMDcgVmlsbGUgU2t5dHTDpCA8 dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjQuNy01Ci0tIEZpeCBpbml0IHNjcmlwdCBub3QgdG8g c3RhcnQgYSBuZXcgdmRyIGlmIGl0J3MgYWxyZWFkeSBydW5uaW5nICgjMjQ3MDg5KS4KLS0gVXBk YXRlIHN1YnRpdGxlcyt0dHh0c3VicyBwYXRjaCB0byBSb2xmJ3MgbGF0ZXN0IHJldmlzaW9uLgot Ci0qIE1vbiBBdWcgIDYgMjAwNyBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAt IDEuNC43LTQKLS0gTGljZW5zZTogR1BMKyBmb3Igc2tpbmN1cnNlcyBhbmQgc2t5IHBsdWdpbnMu Ci0KLSogV2VkIEF1ZyAgMSAyMDA3IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+ IC0gMS40LjctMwotLSBTeW5jIHVzZXIvZ3JvdXAgaGFuZGxpbmcgd2l0aCBjdXJyZW50IHBhY2th Z2luZyBndWlkZWxpbmUgZHJhZnQuCi0tIEluY2x1ZGUgdmRyLW1vdmV0by5zaCwgYSBzY3JpcHQg Zm9yIG9yZ2FuaXppbmcgcmVjb3JkaW5ncy4KLS0gUmVmcmVzaCBwYXRjaGVzLCBpbmNsdWRlIEdQ TCB2ZXJzaW9uIGluZm8gaW4gTGljZW5zZSB0YWcuCi0tIE1vdmUgcHJlLTIwMDcgJWNoYW5nZWxv ZyBlbnRyaWVzIHRvIENIQU5HRVMucGFja2FnZS5vbGQuCi0tIE1ha2Ugc3VyZSBhbGwgcGFja2Fn ZSBzY3JpcHRsZXRzIGV4aXQgd2l0aCB6ZXJvIHN0YXR1cy4KLS0gQWRkIExTQiBjb21tZW50IGJs b2NrIHRvIGluaXQgc2NyaXB0LgotCi0qIE1vbiBKdW4gMTEgMjAwNyBWaWxsZSBTa3l0dMOkIDx2 aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNC43LTIKLS0gQXBwbHkgUmVpbmhhcmQgTmnDn2wncyAi c3luYyBlYXJseSIgcGF0Y2ggZm9yIHNtb290aGVyIGNoYW5uZWwgY2hhbmdlcy4KLQotKiBTYXQg TWF5IDEyIDIwMDcgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjQuNy0x Ci0tIDEuNC43LgotCi0qIFR1ZSBNYXkgIDEgMjAwNyBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0 dGFAaWtpLmZpPiAtIDEuNC42LTMKLS0gVXBzdHJlYW0gMS40LjYtMSwgcmVmcmVzaCBvdGhlciBw YXRjaGVzLgotCi0qIE1vbiBBcHIgMjMgMjAwNyBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFA aWtpLmZpPiAtIDEuNC42LTIKLS0gUmVsb2NhdGUgdGhlbWVzIHRvIC92YXIvbGliL3Zkci90aGVt ZXMgKCMyMTYzNTUpLgotLSBUaWdodGVuIHVwIHNvbWUgZGlyZWN0b3J5IHBlcm1pc3Npb25zLgot Ci0qIFN1biBNYXIgIDQgMjAwNyBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAt IDEuNC42LTEKLS0gMS40LjYuCi0KLSogU2F0IEZlYiAyNCAyMDA3IFZpbGxlIFNreXR0w6QgPHZp bGxlLnNreXR0YUBpa2kuZmk+IC0gMS40LjUtNAotLSBVcHN0cmVhbSAxLjQuNS0yLgotCi0qIFN1 biBKYW4gMjggMjAwNyBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNC41 LTMKLS0gVXBzdHJlYW0gMS40LjUtMSwgcmVmcmVzaCBvdGhlciBwYXRjaGVzLgotLSBGaXggeGlu ZWxpYm91dHB1dCBwbHVnaW4gbmFtZSBpbiBzeXNjb25maWcncyBWRFJfUExVR0lOX09SREVSLgot LSBEZWxheSBhIGJpdCBpbiB0aGUgaW5pdCBzY3JpcHQncyBzdG9wIGZ1bmN0aW9uIGZvciBjbGVh biBzaHV0ZG93bi4KLS0gVXBkYXRlIENEREFfVFJBTlNQT1JUIHdvcmthcm91bmQgc3RhdHVzIGlu IGNvbW1hbmRzLmNvbmYgYWJjZGUgZXhhbXBsZS4KLS0gSW1wcm92ZSAvc2Jpbi9oYWx0LmxvY2Fs IGV4cGxhbmF0aW9uIGluIFJFQURNRS5wYWNrYWdlLgotLSBNaW5vciBzcGVjZmlsZSBjbGVhbnVw cy4KLQotKiBTdW4gSmFuICA3IDIwMDcgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5m aT4gLSAxLjQuNS0yCi0tIDEuNC41LCBEYXJyZW4gU2FsdCdzIDEuNC40LTEuZHMuCi0tIE1ha2Ug aXQgcG9zc2libGUgdG8gZGlzYWJsZSBpbnN0YWxsZWQgcGx1Z2lucyBpbiBwbHVnaW4gc3lzY29u ZmlnIHNuaXBwZXQuCi0tIEFkZCBzaHV0ZG93biBzY3JpcHQsIGRvY3VtZW50IEFDUEkgd2FrZXVw IHVzYWdlIGluIFJFQURNRS5wYWNrYWdlLgotLSBTaHV0IGRvd24gZWFybGllciBieSBkZWZhdWx0 IGZvciBiZXR0ZXIgZXhwZXJpZW5jZSB3aXRoIHRoZSAtcyBvcHRpb24uCi0tIEluY2x1ZGUgSU5T VEFMTCBpbiBkb2NzLCBpdCBjb250YWlucyB1c2VmdWwgcG9zdC1pbnN0YWxsIGluZm8uCi0tIElt cHJvdmUgcmVtb3RlIGNvbnRyb2wgZXhhbXBsZXMgaW4gdWRldiBydWxlcyBzbmlwcGV0LgotLSBI b25vciAkVE1QRElSIHdoZW4gcnVubmluZyB3aXRoIGNvcmUgZHVtcHMgZW5hYmxlZC4KLS0gQWRk IHJlYWQgb25seSByb290L3RlbXBvcmFyeSBzdGF0ZSBjb25maWcuCi0tIEFkZCB0dHh0c3VicyB0 byBkZWZhdWx0IHBsdWdpbiBvcmRlciBsaXN0LgotLSBJbmNsdWRlIGxvZyBkaXIgZm9yIHBsdWdp bnMuCi0KLSogU2F0IE5vdiAgNCAyMDA2IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2ku Zmk+IC0gMS40LjQtMQotLSAxLjQuNC4KLS0gQXBwbHkgZXBnc2VhcmNoIGFuZCB0aW1lciBpbmZv IHBhdGNoZXMuCi0tIE1hcmsgY29uc29sZS5wZXJtcyBzbmlwcGV0IG5vcmVwbGFjZSBhZ2Fpbi4K LQotKiBTdW4gT2N0IDE1IDIwMDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4g LSAxLjQuMy0zCi0tIEFwcGx5IHVwc3RyZWFtIDEuNC4zLTEgbWFpbnRlbmFuY2UgcGF0Y2guCi0t IFN5bmMgd2l0aCAxLjQuMy0xLmRzLCB1cGRhdGUgbGllbWlrdXV0aW8gcGF0Y2ggdG8gMS4xMy4K LS0gRHJvcCBubyBsb25nZXIgbmVlZGVkIFJFQURNRS5wbHVnaW5zLmQsIFJFQURNRS5wYWNrYWdl IGlzIGVub3VnaCAoIzE5MDM0MykuCi0KLSogRnJpIE9jdCAwNiAyMDA2IFRob3JzdGVuIExlZW1o dWlzIDxmZWRvcmEgW0FUXSBsZWVtaHVpcyBbRE9UXSBpbmZvPiAxLjQuMy0yCi0tIHJlYnVpbHQg Zm9yIHVud2luZCBpbmZvIGdlbmVyYXRpb24sIGJyb2tlbiBpbiBnY2MtNC4xLjEtMjEKLQotKiBT YXQgU2VwIDIzIDIwMDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjQu My0xCi0tIDEuNC4zLCAxLjQuMi0xLmRzLCBsaWVtaWt1dXRpbyAxLjEyLgotCi0qIFN1biBTZXAg IDMgMjAwNiBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNC4yLTIKLS0g MS40LjItMSwgbGllbWlrdXV0aW8gMS4xMC4KLQotKiBTdW4gQXVnIDI3IDIwMDYgVmlsbGUgU2t5 dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjQuMi0xCi0tIDEuNC4yLCBzeXNjYWxsIGFu ZCBtYWludGVuYW5jZSBwYXRjaGVzIGFwcGxpZWQgdXBzdHJlYW0uCi0KLSogTW9uIEF1ZyAyMSAy MDA2IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS40LjEtMTEKLS0gU2V0 IGRldmljZSBwZXJtaXNzaW9ucyBpbiBib3RoIGNvbnNvbGUucGVybXMgYW5kIHVkZXYgKCMyMDIx MzIpLgotLSBJbXBsZW1lbnQgcmVzdGFydCBhbmQgRFZCIG1vZHVsZSByZWxvYWQgZnVuY3Rpb25h bGl0eSByb3VnaGx5IGxpa2UKLSAgdXBzdHJlYW0gcnVudmRyIGRvZXMgaXQuCi0KLSogRnJpIEF1 ZyAxOCAyMDA2IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS40LjEtMTAK LS0gRml4IGJ1aWxkIHdpdGggcmVjZW50IGtlcm5lbCBoZWFkZXJzIHdoZXJlIF9zeXNjYWxsWCBh cmUgbm8gbG9uZ2VyIHZpc2libGUuCi0tIERyb3AgaWE2NCBwYXRjaCAoc3VwZXJzZWRlZCBieSB0 aGUgYWJvdmUpIGFuZCB0aGUgdGhyZWFkIHBvaXNvbiBwYXRjaC4KLQotKiBGcmkgQXVnIDExIDIw MDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjQuMS05Ci0tIFNldCBk ZXZpY2UgcGVybWlzc2lvbnMgdXNpbmcgY29uc29sZS5wZXJtcyBpbnN0ZWFkIG9mIHVkZXYgcnVs ZXMKLSAgdG8gd29yayBhcm91bmQgbmV3IHBhbSB0cnVtcGluZyB1ZGV2IGNvbmZpZyAoIzIwMjEz MikuCi0KLSogU3VuIEF1ZyAgNiAyMDA2IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2ku Zmk+IC0gMS40LjEtOAotLSBBcHBseSB1cHN0cmVhbSAxLjQuMS0zIG1haW50ZW5hbmNlIHBhdGNo LgotCi0qIFN1biBKdWwgMjMgMjAwNiBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZp PiAtIDEuNC4xLTcKLS0gQXBwbHkgdXBzdHJlYW0gMS40LjEtMiBtYWludGVuYW5jZSBwYXRjaC4K LS0gVXNlIFZGQVQgY29tcGF0aWJsZSByZWNvcmRpbmcgbmFtZXMgYnkgZGVmYXVsdC4KLQotKiBT dW4gSnVsIDE2IDIwMDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjQu MS02Ci0tIERvbid0IHVzZSAlYmNvbmRfd2l0aCB0byBhcHBlYXNlIGJ1aWxkc3lzLgotCi0qIFNh dCBKdWwgMTUgMjAwNiBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNC4x LTUKLS0gVXBkYXRlIGxpZW1pa3V1dGlvIHBhdGNoIHRvIDEuOC4KLS0gUGF0Y2ggZHVtcGFiaWxp dHkgdG8gd29yayB3aXRoIFBSX1NFVF9EVU1QQUJMRSBjaGFuZ2VzIGluIHJlY2VudCBrZXJuZWxz LAotICBhZGQgY29ycmVzcG9uZGluZyB3YXJuaW5nIHRvIHN5c2NvbmZpZyBzbmlwcGV0IGNvbW1l bnQuCi0KLSogU2F0IEp1bCAgMSAyMDA2IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2ku Zmk+IC0gMS40LjEtNAotLSBVcGRhdGUgbGllbWlrdXV0aW8gcGF0Y2ggdG8gMS43LgotLSBDb25k aXRpb25hbGx5IGJ1aWxkIHRoZSBza2luY3Vyc2VzIGFuZCBza3kgcGx1Z2luczsgZGlzYWJsZWQg YnkgZGVmYXVsdCwKLSAgcmVidWlsZCB3aXRoICItLXdpdGggcGx1Z2lucyIgdG8gZW5hYmxlLgot LSBNYWtlIHN5bWxpbmtzIHJlbGF0aXZlLgotCi0qIEZyaSBKdW4gMjMgMjAwNiBWaWxsZSBTa3l0 dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNC4xLTMKLS0gTW92ZSBoZWFkZXJzIHRvICV7 X2luY2x1ZGVkaXJ9LgotLSBBZGQgUkVBRE1FLnBhY2thZ2UgdG8gZG9jcywgZGVzY3JpYmluZyBz b21lIGFzcGVjdHMgb2YgdGhlIHBhY2thZ2UgKCMxMDYzKS4KLS0gQWRkIExJQkRJUiB0byBNYWtl LmNvbmZpZyB0byBlYXNlIGxvY2FsIHBsdWdpbiBidWlsZHMgKCMxMDYzKS4KLS0gVXBkYXRlIFZE Ul9QTFVHSU5fT1JERVIgaW4gc3lzY29uZmlnIHNuaXBwZXQsIGxvYWRpbmcgcG90ZW50aWFsIG91 dHB1dAotICBwbHVnaW5zIGJlZm9yZSBvdGhlcnMuICBTZWUgY29tbWVudGFyeSBpbiB0aGUgZmls ZSBmb3IgZGV0YWlscy4KLS0gQWRkIGV4YW1wbGUgaG93IHRvIGFmZmVjdCBPU0QgdGltZS9kYXRl IGZvcm1hdHMgdG8gc3lzY29uZmlnIHNuaXBwZXQuCi0KLSogU3VuIEp1biAxOCAyMDA2IFZpbGxl IFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS40LjEtMgotLSAxLjQuMS0xICsgMS40 LjEtMS5kcy4KLS0gRHJvcCBnbGliYy1rZXJuaGVhZGVycyBkZXBlbmRlbmN5IGZyb20gLWRldmVs IHRvby4KLS0gTWFrZSAtZGV2ZWwgbXVsdGlsaWIgZnJpZW5kbHksIGFkZCBwa2djb25maWcgZmls ZS4KLQotKiBTdW4gSnVuIDExIDIwMDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5m aT4gLSAxLjQuMS0xCi0tIDEuNC4xLCBsaWVtaWt1dXRpbyAxLjYuCi0KLSogTW9uIE1heSAyOSAy MDA2IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS40LjAtNQotLSBBZGRy ZXNzIHNvbWUgcmV2aWV3IG5vdGVzIGluICMxOTAzNDMgY29tbWVudCAyOgotLSBBZGQgZXhhbXBs ZSB1ZGV2IHJ1bGUgZm9yIHByZWRpY3RhYmxlIHJlbW90ZSBjb250cm9sIGRldmljZSBuYW1pbmcu Ci0tIERyb3AgZ2xpYmMta2VybmhlYWRlcnMgYnVpbGQgZGVwZW5kZW5jeS4KLS0gU3BlY2ZpbGUg Y2xlYW51cHMuCi0KLSogU3VuIE1heSAyOCAyMDA2IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0 YUBpa2kuZmk+IC0gMS40LjAtNAotLSBBcHBseSB1cHN0cmVhbSAxLjQuMC0yIG1haW50ZW5hbmNl IHBhdGNoLgotCi0qIFN1biBNYXkgMTQgMjAwNiBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFA aWtpLmZpPiAtIDEuNC4wLTMKLS0gQXBwbHkgdXBzdHJlYW0gMS40LjAtMSBtYWludGVuYW5jZSBw YXRjaC4KLS0gRHJvcCB1bm5lZWRlZCB2ZXJzaW9uIGNoZWNrIGZyb20gJWNoZWNrLgotCi0qIE1v biBNYXkgIDEgMjAwNiBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuNC4w LTIKLS0gU3luYyB3aXRoIDEuNC4wLTEuZHMuCi0KLSogU3VuIEFwciAzMCAyMDA2IFZpbGxlIFNr eXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS40LjAtMQotLSAxLjQuMCArIDEuMy40OC0x LmRzLCByZS1lbmFibGUgcmVsb2FkIHBhdGNoLgotCi0qIFN1biBBcHIgMjMgMjAwNiBWaWxsZSBT a3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuMy40OC0xCi0tIDEuMy40OCwgbm8gbmVl ZCB0byByZWJ1aWxkIHBsdWdpbnMsIHdvby1ob28hCi0KLSogTW9uIEFwciAxNyAyMDA2IFZpbGxl IFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS4zLjQ3LTEKLS0gMS4zLjQ3ICsgdGhl IHVzdWFsIHBhdGNod29yay4KLS0gVHJpbSBwcmUtUkxPICVjaGFuZ2Vsb2cgZW50cmllcy4KLS0g QWRkIHZkcihhYmkpIGFuZCB2ZHItZGV2ZWwoYXBpKSB2ZXJzaW9uZWQgUHJvdmlkZXMgZm9yIHBs dWdpbiB2ZXJzaW9uaW5nCi0gIGFuZCAtLXZlcnNpb24gYW5kIC0tYXBpdmVyc2lvbiB0byB2ZHIt Y29uZmlnLCBzZWUgSElTVE9SWS4KLS0gVXNlIHNlZCBpbnN0ZWFkIG9mIHBlcmwgZm9yIGVkaXRz IGR1cmluZyB0aGUgYnVpbGQuCi0tIFRlbXBvcmFyaWx5IGRpc2FibGUgcmVsb2FkL1NJR1VTUjEg cGF0Y2guCi0KLSogU3VuIEFwciAgOSAyMDA2IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBp a2kuZmk+IC0gMS4zLjQ2LTEKLS0gMS4zLjQ2ICsgdGhlIHVzdWFsIHBhdGNod29yay4KLQotKiBT dW4gTWFyIDI2IDIwMDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMu NDUtMQotLSAxLjMuNDUgKyAxLjMuNDQtMi5kcyArIFJvZmEncyBtdXRlIGZpeC4KLQotKiBUaHUg TWFyIDA5IDIwMDYgQW5kcmVhcyBCaWVyZmVydCA8YW5kcmVhcy5iaWVyZmVydFtBVF1sb3dsYXRl bmN5LmRlPgotLSBzd2l0Y2ggdG8gbmV3IHJlbGVhc2UgZmllbGQKLQotKiBTdW4gTWFyICA1IDIw MDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMuNDQtMC5sdm4uMgot LSBTeW5jIHdpdGggMS4zLjQ0LTEuZHMsIGFwcGx5IFJvbGYgQWhyZW5iZXJnJ3MgcmVhZGxpbmUg Zml4LgotCi0qIFdlZCBNYXIgIDEgMjAwNiBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtp LmZpPiAtIDEuMy40NC0wLmx2bi4xCi0tIDEuMy40NCwgaW5jbHVkZSBNYXJrbyBNw6RrZWzDpCdz IHN1c3BlbmQgcGF0Y2guCi0tIE1vdmUgcnVudmRyIHRvICV7X3NiaW5kaXJ9IGFuZCBtYWtlIGl0 IG9wdGlvbi1jb21wYXRpYmxlIHdpdGggdGhlCi0gIHVwc3RyZWFtIG9uZS4gIElmIFZEUl9JTklU IGlzIG5vbi1lbXB0eSBpbiB0aGUgZW52aXJvbm1lbnQsIGF1dG9tYXRpYwotICBjb21tYW5kIGxp bmUgYnVpbGRpbmcgaXMgZW5hYmxlZC4gIFRoZSBpbml0IHNjcmlwdCBzdGlsbCBkb2VzIHRoYXQu Ci0gIEFsc28gbWFrZXMgdGhlIGluaXQgc2NyaXB0IGFuZCBydW52ZHIgZWFzaWVyIHRvIGFkYXB0 IHRvIGFsdGVybmF0aXZlCi0gIGluaXQgc3lzdGVtcyBzdWNoIGFzIGluaXRuZyAoIzc4MSkuCi0K LSogVHVlIEZlYiAyOCAyMDA2IEFuZHJlYXMgQmllcmZlcnQgPGFuZHJlYXMuYmllcmZlcnRbQVRd bG93bGF0ZW5jeS5kZT4KLS0gYWRkIGRpc3QKLQotKiBUdWUgRmViIDIxIDIwMDYgVmlsbGUgU2t5 dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMuNDMtMC5sdm4uMgotLSBTeW5jIHdpdGgg MS4zLjQzLTEuZHMuCi0KLSogU3VuIEZlYiAxOSAyMDA2IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNr eXR0YUBpa2kuZmk+IC0gMS4zLjQzLTAubHZuLjEKLS0gMS4zLjQzICsgMS4zLjQyLTIuZHMgKyBS b2xmIEFocmVuYmVyZydzIGF1ZGlvdHJhY2tzIHBhdGNoLgotLSBEcm9wIFJlaW5oYXJkIE5pw59s J3MgZHZicGxheWVyIHBhdGNoIGF0IGxlYXN0IGZvciBub3cuCi0KLSogU3VuIEZlYiAgNSAyMDA2 IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS4zLjQyLTAubHZuLjEKLS0g MS4zLjQyOyBkdW1wYWJsZSwgbWVudS1pbi1yZXBsYXkgYW5kIGNvbnN0bmVzcyBwYXRjaGVzIGFw cGxpZWQgdXBzdHJlYW0uCi0tIE1ha2UgdWRldiBydWxlcyB3b3JrIGFzIGV4cGVjdGVkIHdpdGgg bGF0ZXIgdWRldiB2ZXJzaW9ucy4KLQotKiBTdW4gSmFuIDI5IDIwMDYgVmlsbGUgU2t5dHTDpCA8 dmlsbGUuc2t5dHRhQGlraS5maT4KLS0gMS4zLjQxOyBGaW5uaXNoLCBFUEcgbnVsbCB0aXRsZSBh bmQgTElSQyByZWNvbm5lY3QgcGF0Y2hlcwotICBhcHBsaWVkL29ic29sZXRlZCB1cHN0cmVhbS4K LS0gUmV2ZXJ0IGJhY2sgdG8gVWRvIFJpY2h0ZXIncyBtb3JlIGdlbmVyYWwgcHVycG9zZSAibWVu dSBpbiByZXBsYXkiIHBhdGNoLgotCi0qIFNhdCBKYW4gMjggMjAwNiBWaWxsZSBTa3l0dMOkIDx2 aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuMy40MC0wLmx2bi4zCi0tIFBhdGNoIExJUkMgc3VwcG9y dCB0byB0cnkgdG8gcmVjb25uZWN0IGlmIGxpcmNkIGNvbm5lY3Rpb24gaXMgbG9zdC4KLS0gVXBk YXRlIGxpZW1pa3V1dGlvIHBhdGNoIHRvIDEuMi4KLQotKiBNb24gSmFuIDIzIDIwMDYgVmlsbGUg U2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMuNDAtMC5sdm4uMgotLSBSZXBsYWNl IEVQRyBudWxsIHRpdGxlIGNyYXNoIGZpeCB3aXRoIHVwc3RyZWFtIG9uZS4KLQotKiBTdW4gSmFu IDIyIDIwMDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMuNDAtMC5s dm4uMQotLSAxLjMuNDAsIGtleSBtYWNybyBhbmQgU1ZEUlAgQ0xSRSBjcmFzaCBwYXRjaGVzIGFw cGxpZWQgdXBzdHJlYW0uCi0tIFJlcGxhY2UgbWVudSB0d2VhayBwYXRjaCB3aXRoIG9uZSBmcm9t IEx1Y2EgT2xpdmV0dGkuCi0KLSogV2VkIEphbiAxOCAyMDA2IFZpbGxlIFNreXR0w6QgPHZpbGxl LnNreXR0YUBpa2kuZmk+IC0gMS4zLjM5LTAubHZuLjMKLS0gRml4IHN5c2NvbmZpZyBzdHVwaWRp dHkgaW50cm9kdWNlZCBpbiAwLmx2bi4yLCBfb25seV8gREFFTU9OX0NPUkVGSUxFX0xJTUlUCi0g IHdhcyB0YWtlbiBpbnRvIGFjY291bnQgOlAKLQotKiBNb24gSmFuIDE2IDIwMDYgVmlsbGUgU2t5 dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMuMzktMC5sdm4uMgotLSBBcHBseSB1cHN0 cmVhbSBrZXkgbWFjcm8gYW5kIFNWRFJQIENMUkUgY3Jhc2ggcGF0Y2hlcy4KLS0gU291cmNlIHN5 c2NvbmZpZyBzbmlwcGV0IGFnYWluIGluIGluaXQgc2NyaXB0IChzbyB0aGF0IGVnLgotICBEQUVN T05fQ09SRUZJTEVfTElNSVQgZXRjIHdvcmtzIGFzIGV4cGVjdGVkKS4KLQotKiBTdW4gSmFuIDE1 IDIwMDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMuMzktMC5sdm4u MQotLSAxLjMuMzkgKyB0aGUgdXN1YWwgcGF0Y2ggc2h1ZmZsaW5nLCBrdWRvcyB0byBSb2xmIEFo cmVuYmVyZyBhbmQgVWRvCi0gIFJpY2h0ZXIuCi0KLSogV2VkIEphbiAxMSAyMDA2IFZpbGxlIFNr eXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS4zLjM4LTAubHZuLjQKLS0gQXBwbHkgdXBz dHJlYW0gbWVudSBmaXggcGF0Y2guCi0tIEFkZCBzb21lIGNvbW1lbnRzIHRvIHN5c2NvbmZpZyBm aWxlLgotCi0qIFR1ZSBKYW4gMTAgMjAwNiBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtp LmZpPiAtIDEuMy4zOC0wLmx2bi4zCi0tIFN5bmMgd2l0aCAxLjMuMzgtMi5kcy4KLQotKiBNb24g SmFuICA5IDIwMDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMuMzgt MC5sdm4uMgotLSBTeW5jIHdpdGggMS4zLjM4LTEuZHMuCi0tIFJlbW92ZSByZWZlcmVuY2VzIHRv IHRoZSByZW1vdmVkIGNhLmNvbmYgZnJvbSB0aGUgbWFucGFnZS4KLQotKiBTdW4gSmFuICA4IDIw MDYgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMuMzgtMC5sdm4uMQot LSAxLjMuMzgsIHN1L2NhcGFiaWxpdGllcyBzdHVmZiwgbG93IGRpc2sgc3BhY2UgY3Jhc2gsIENB Ti0yMDA1LTAwNzEsCi0gIGF1ZGlvIHBpZHMgYW5kIHRpbWVkIHJlY29yZGluZyBkZWxldGlvbiBw YXRjaGVzIGFwcGxpZWQgdXBzdHJlYW0uCi0tIFBhdGNoIHRvIGFsbG93IGNvcmUgZHVtcHMgYW5k IHN0YXJ0dXAgc2NyaXB0IHNpbXBsaWZpY2F0aW9ucyB3aXRoIHRoZQotICBuZXdseSBpbnRyb2R1 Y2VkIHNldFt1Z11pZCBmdW5jdGlvbmFsaXR5LgotLSBQYXRjaCB0byBmaXggZ2V0dGlkIHVzYWdl IChpbmNsdWRlcykuCi0tIGVuQUlPIHBhdGNoc2V0IHJlcGxhY2VkIGJ5IGxpZW1pa3V1dGlvIDEu MC4KLS0gVXBkYXRlZCBGaW5uaXNoIHRyYW5zbGF0aW9ucy4KLQotKiBXZWQgSmFuICA0IDIwMDYg VmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMuMzctMC5sdm4uMwotLSBG aXggc3ludGF4IGVycm9yIGluIHN5c2NvbmZpZyBmaWxlICgjNzE0LCBTY290dCBUc2FpKS4KLS0g Q2hhbmdlIGJ1aWx0LWluIGRlZmF1bHQgb2YgZXBnLmRhdGEgbG9jYXRpb24gdG8gJXtjYWNoZWRp cn0sIGRyb3AgaXQKLSAgZnJvbSB0aGUgc3lzY29uZmlnIGZpbGUgYW5kIHVwZGF0ZSBkb2NzLgot Ci0qIFNhdCBEZWMgMTAgMjAwNSBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAt IDEuMy4zNy0wLmx2bi4yCi0tIEFwcGx5ICJsb3cgZGlzayBzcGFjZSIgbWVzc2FnZSBjcmFzaCBm cm9tIEFuZHJlYXMgQnJhY2hvbGQuCi0tIEFwcGx5IHVwc3RyZWFtIGZpeCBmb3IgMm5kIGF1ZGlv IHBpZCBhbmQgbGl2ZSBERCBvbiBlbmNyeXB0ZWQgY2hhbm5lbHMuCi0tIEFkZCAoY29tbWVudGVk IG91dCkgc3lzY29uZmlnIGFuZCBjb25zb2xlLnBlcm1zLmQgc2FtcGxlcyBmb3Igc2V0dGluZyBh bmQKLSAgcmV0YWluaW5nIFZEUi1mcmllbmRseSBDRC9EVkQgZHJpdmUgcGVybWlzc2lvbnMuCi0t IFN5bmMgd2l0aCAxLjMuMzctMS5kcy4KLQotKiBNb24gTm92IDI4IDIwMDUgVmlsbGUgU2t5dHTD pCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAxLjMuMzctMC5sdm4uMQotLSAxLjMuMzcuCi0KLSog U2F0IE5vdiAxMiAyMDA1IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS4z LjM2LTAubHZuLjIKLS0gRGVmYXVsdCBjb25maWcgaW1wcm92ZW1lbnRzLgotLSBTeW5jIHdpdGgg MS4zLjM2LTEuZHMuCi0KLSogU3VuIE5vdiAgNiAyMDA1IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNr eXR0YUBpa2kuZmk+IC0gMS4zLjM2LTAubHZuLjEKLS0gMS4zLjM2LCByZWNvcmRpbmcgZW5kIGNy YXNoIGZpeCBhcHBsaWVkIHVwc3RyZWFtLgotLSBEb24ndCBsb2FkIExJUkMgdW5jb25kaXRpb25h bGx5LCBwYXNzIC0tbGlyYyBieSBkZWZhdWx0IGluIHN5c2NvbmZpZy92ZHIuCi0KLSogVHVlIE5v diAgMSAyMDA1IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS4zLjM1LTAu bHZuLjEKLS0gMS4zLjM1ICsgSm9hY2hpbSBXaWxrZSdzIHJlY29yZGluZyBlbmQgY3Jhc2ggZml4 OyBGaW5uaXNoLCBkYWVtb24gYW5kCi0gIGluZmxvb3AgcGF0Y2hlcyBhcHBsaWVkIHVwc3RyZWFt LgotCi0qIFN1biBPY3QgMTYgMjAwNSBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZp PiAtIDEuMy4zNC0wLmx2bi4yCi0tIFVwZGF0ZSBlbkFJTyBwYXRjaCB0byAyLjcuCi0tIEFwcGx5 IGRhZW1vbiBhbmQgbWVudSBpbmZpbml0ZSBsb29wIHBhdGNoZXMgZnJvbSBFbnJpY28gU2Nob2x6 LgotCi0qIEZyaSBPY3QgIDcgMjAwNSBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZp PiAtIDEuMy4zNC0wLmx2bi4xCi0tIDEuMy4zNCArIDEuMy4zNC0xLmRzICsgUm9sZiBBaHJlbmJl cmcncyBGaW5uaXNoIGkxOG4gZml4ZXMuCi0KLSogU3VuIFNlcCAyNSAyMDA1IFZpbGxlIFNreXR0 w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS4zLjMzLTAubHZuLjEKLS0gMS4zLjMzLgotLSBT eW5jIHdpdGggMS4zLjMyLTEuZHMuCi0tIEFwcGx5IGVuQUlPIHBhdGNoLgotCi0qIEZyaSBTZXAg MTYgMjAwNSBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuMy4zMi0wLmx2 bi4yCi0tIEZpeCBpbml0IHNjcmlwdCBvbiBtdWx0aWxpYiBhcmNocyAoIzU5NiwgSnVzc2kgTGVo dG9sYSkuCi0KLSogU3VuIFNlcCAxMSAyMDA1IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBp a2kuZmk+IC0gMS4zLjMyLTAubHZuLjEKLS0gMS4zLjMyLCBidW5jaCBvZiBwYXRjaGVzIGFwcGxp ZWQgdXBzdHJlYW0uCi0tIERyb3AgbWFpbiBwYWNrYWdlIGRlcGVuZGVuY3kgZnJvbSAtZGV2ZWwu Ci0KLSogU3VuIEF1ZyAyOCAyMDA1IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+ IC0gMS4zLjMxLTAubHZuLjEKLS0gMS4zLjMxICsgdXBzdHJlYW0gd2FybmluZ3MgZml4ICsgUmVp bmhhcmQgTmnDn2wncyBwYXRjaCBib21iLgotLSBTaGlwIHBsdWdpbiBjcmVhdG9yIHNjcmlwdCBp biAtZGV2ZWwuCi0KLSogTW9uIEF1ZyAyMiAyMDA1IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0 YUBpa2kuZmk+IC0gMS4zLjMwLTAubHZuLjIKLS0gRG9uJ3QgdXNlIHN0dWZmIGZyb20gdGhlIHN1 L2NhcGFiaWxpdGllcyBwYXRjaCBieSBkZWZhdWx0LCBpdCBjYXVzZXMKLSAgcHJvYmxlbXMgd2l0 aCBnZXR0aW5nIGNvcmUgZHVtcHMgaWYgcGx1Z2lucyBjcmFzaC4KLS0gU2ltcGxpZnkgdGhpbmdz IGJ5IHNwbGl0dGluZyBzdHVmZiBmcm9tIGluaXQgc2NyaXB0IHRvIHNlcGFyYXRlIGxhdW5jaGVy LgotLSBTeW5jIHdpdGggMS4zLjMwLTEuZHMsIGZpeCBhIHdhcm5pbmcgaW4gdGhlIHN2ZHJwIGdy YWIgcGF0Y2guCi0tIEFkZCBhdWRpbyBDRCByaXBwaW5nIGV4YW1wbGUgdG8gY29tbWFuZHMuY29u Zi4KLQotKiBTdW4gQXVnIDIxIDIwMDUgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5m aT4gLSAxLjMuMzAtMC5sdm4uMQotLSAxLjMuMzAsIFBQQy91bmFsaWduZWQgcGF0Y2ggbm8gbG9u Z2VyIG5lZWRlZC4KLS0gVHVuZSBkZWZhdWx0IHBsdWdpbiBsb2FkIG9yZGVyLCBhZGQgbXVnZ2xl LgotLSBNaW5vciBpbml0IHNjcmlwdCBpbXByb3ZlbWVudHMuCi0KLSogV2VkIEF1ZyAxNyAyMDA1 IFZpbGxlIFNreXR0w6QgPHZpbGxlLnNreXR0YUBpa2kuZmk+IC0gMS4zLjI5LTAubHZuLjIKLS0g U3luYyB3aXRoIERhcnJlbiBTYWx0J3MgMS4zLjI5LTEuZHMuCi0tIERyb3AgZHZicGxheWVyIHBh dGNoOyBubyBsb25nZXIgbmVlZGVkIGZvciByZWNlbnQgcmVjb3JkaW5ncy4KLS0gUGF0Y2gvaGFj ayAoZnJvbSByZWlzZXJmc3Byb2dzKSB0byBmaXggUFBDIGJ1aWxkIChhc20vdW5hbGlnbmVkLmgp LgotLSBTdGFydCB1cCBlYXJsaWVyL3NodXQgZG93biBsYXRlciBieSBkZWZhdWx0IGF0IGJvb3Qv c2h1dGRvd24uCi0tIEFkZCB2YXJkaXIgZm9yIHN0b3Jpbmcgbm9uLWNhY2hlLCBub24tdmlkZW8g ZGF0YTsgYW5kIGF1ZGlvZGlyIGZvcgotICBhdWRpbyBwbHVnaW5zLgotCi0qIE1vbiBBdWcgMTUg MjAwNSBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuMy4yOS0wLmx2bi4x Ci0tIDEuMy4yOSwgRmlubmlzaCBwYXRjaCBhcHBsaWVkIHVwc3RyZWFtLgotCi0qIFNhdCBBdWcg MTMgMjAwNSBWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiAtIDEuMy4yOC0xLmx2 bi4yCi0tIEFwcGx5IFJvbGYgQWhyZW5iZXJnJ3MgbmV3ZXN0IEZpbm5pc2ggcGF0Y2guCi0tIERy b3AgaGlzdG9yaWNhbCBjb25mbGljdCB3aXRoIGFuIG9sZCB2ZHItZHhyMyBzbmFwc2hvdC4KLQot KiBUaHUgQXVnIDExIDIwMDUgVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT4gLSAx LjMuMjgtMS5sdm4uMQotLSBUcnVuY2F0ZSBjb25maWcgZmlsZXMgaW4gbW9yZSBwb3J0YWJsZSBt YW5uZXIgZHVyaW5nIGJ1aWxkLgoKZGlmZiAtLWdpdCBhL3Zkci1SRUFETUUucGFja2FnZSBiL3Zk ci1SRUFETUUucGFja2FnZQppbmRleCA3ZmZhYWQ1Li41OTY1ZDY0IDEwMDY0NAotLS0gYS92ZHIt UkVBRE1FLnBhY2thZ2UKKysrIGIvdmRyLVJFQURNRS5wYWNrYWdlCkBAIC03LDggKzcsOCBAQCBJ bnN0YWxsYXRpb24gbGF5b3V0CiBBcyB1c3VhbCwgInJwbSAtcWwgdmRyIiBzaG91bGQgZ2l2ZSBh IGZhaXJseSBnb29kIHBpY3R1cmUgd2hlcmUgdGhpbmdzCiBhcmUgaW5zdGFsbGVkLiAgVGhlIGdv YWwgaW4gdGhpcyBwYWNrYWdlIGlzIHRvIG1ha2UgZmlsZSBsb2NhdGlvbnMgYmUKIG5hdHVyYWwg dG8gcGVvcGxlIHdobyBhcmUgdXNlZCB0byBwYWNrYWdlZCBzb2Z0d2FyZSwgd2hpY2ggY2F1c2Vz Ci1xdWl0ZSBhIGJpdCBvZiBkZXZpYXRpb24gZnJvbSB0aGUgdXBzdHJlYW0gbGF5b3V0IGFzIG9m IDEuNi54LiAgQWxzbywKLWFzIHVzdWFsLCAicnBtIC1xYyB2ZHIiIGxpc3RzIGNvbmZpZ3VyYXRp b24gZmlsZXMuCitxdWl0ZSBhIGJpdCBvZiBkZXZpYXRpb24gZnJvbSB0aGUgdXBzdHJlYW0gbGF5 b3V0LiAgQWxzbywgYXMgdXN1YWwsCisicnBtIC1xYyB2ZHIiIGxpc3RzIGNvbmZpZ3VyYXRpb24g ZmlsZXMuCiAKIENvbmZpZ3VyYXRpb24KIC0tLS0tLS0tLS0tLS0KQEAgLTE2LDExICsxNiwxMSBA QCBDb25maWd1cmF0aW9uCiBGaXJzdCwgcmVmZXIgdG8gIm1hbiA1IHZkciIgZm9yIGdlbmVyYWwg dXBzdHJlYW0gVkRSIGNvbmZpZ3VyYXRpb24KIHN0dWZmLiAgVGhlbiwgaGF2ZSBhIGxvb2sgYXQg L2V0Yy9zeXNjb25maWcvdmRyLiAgVGhlIGZpbGUgaXMgZmFpcmx5CiB3ZWxsIGRvY3VtZW50ZWQs IGFuZCBhbW9uZyBvdGhlciB0aGluZ3MsIGlzIHdoZXJlIG9uZSBzaG91bGQgc3BlY2lmeQotY29t bWFuZCBsaW5lIG9wdGlvbnMgdG8gVkRSIGl0c2VsZi4gIFRoZSBzdGFuZGFyZCAidmRyIiBpbml0 IHNjcmlwdAotaW52b2tlcyAvdXNyL3NiaW4vcnVudmRyLCB3aGljaCByZWFkcyAvZXRjL3N5c2Nv bmZpZy92ZHIuCitjb21tYW5kIGxpbmUgb3B0aW9ucyB0byBWRFIgaXRzZWxmLiAgVGhlIHZkci5z ZXJ2aWNlIHN5c3RlbWQgdW5pdAoraW52b2tlcyAvdXNyL2Jpbi9ydW52ZHIsIHdoaWNoIHJlYWRz IC9ldGMvc3lzY29uZmlnL3Zkci4KIAotVGhlIGluaXQgc2NyaXB0IGFuZCB0aGUgcnVubmVyIGxv YWQgcGVyLXBsdWdpbiBjb25maWd1cmF0aW9uIGZpbGVzCi1mcm9tIHRoZSAvZXRjL3N5c2NvbmZp Zy92ZHItcGx1Z2lucy5kIGRpcmVjdG9yeSBmb3IgZWFjaCBmb3VuZCBwbHVnaW4uCitydW52ZHIg bG9hZHMgcGVyLXBsdWdpbiBjb25maWd1cmF0aW9uIGZpbGVzIGZyb20gdGhlCisvZXRjL3N5c2Nv bmZpZy92ZHItcGx1Z2lucy5kIGRpcmVjdG9yeSBmb3IgZWFjaCBmb3VuZCBwbHVnaW4uCiBUaG9z ZSBmaWxlcyBhcmUgc291cmNlZCBzaGVsbCAoYmFzaCkgc2NyaXB0cywgbmFtZWQgbGlrZQogPHBs dWdpbm5hbWU+LmNvbmYgKHNvIGVnLiBmb3IgcGx1Z2luIGxpYnZkci1mb28uKiwKIC9ldGMvc3lz Y29uZmlnL3Zkci1wbHVnaW5zLmQvZm9vLmNvbmYgaXMgbG9hZGVkKS4gIENvbmZpZ3VyZSBjb21t YW5kCkBAIC0zMSw5ICszMSw3IEBAIFRoZSB2ZHIgdXNlciBzaG91bGQgaGF2ZSBhY2Nlc3MgdG8g dGhlIG1ham9yaXR5IG9mIG5lZWRlZCBoYXJkd2FyZQogZGV2aWNlcyBvdXQgb2YgdGhlIHBhY2th Z2UsIGVpdGhlciBkaXJlY3RseSBvciB0aHJvdWdoIHRoZSB2aWRlbwogZ3JvdXAuICBIb3dldmVy IHNvbWUgc2V0dXBzIG1heSBuZWVkIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBpbiBvcmRlcgog dG8gYWxsb3cgVkRSIG9yIHNvbWUgcGx1Z2lucyB0byB1c2UgZm9yIGV4YW1wbGUgY2VydGFpbiBy ZW1vdGUKLWNvbnRyb2xsZXJzIG9yIG9wdGljYWwgZHJpdmVzLiAgU2VlIHRoZSAvZXRjL3VkZXYv cnVsZXMuZC8qLXZkci5ydWxlcwotYW5kIC9ldGMvc2VjdXJpdHkvY29uc29sZS5wZXJtcy5kLyot dmRyLnBlcm1zIGZpbGVzIGZvciBzb21lIHVzdWFsCi1zdXNwZWN0cyBhbmQgZXhhbXBsZXMuCitj b250cm9sbGVycyBvciBvcHRpY2FsIGRyaXZlcy4KIAogQWRkaXRpb25hbCBwbHVnaW5zCiAtLS0t LS0tLS0tLS0tLS0tLS0KCmRpZmYgLS1naXQgYS92ZHItY2hlY2stc2V0dXAuc2ggYi92ZHItY2hl Y2stc2V0dXAuc2gKaW5kZXggOTNmMWJhMy4uZGI5ODJhNSAxMDA2NDQKLS0tIGEvdmRyLWNoZWNr LXNldHVwLnNoCisrKyBiL3Zkci1jaGVjay1zZXR1cC5zaApAQCAtMSw5ICsxLDEzIEBACiAjIS9i aW4vc2gKIAorIyBUaGUgcGFja2FnZWQgY2hhbm5lbHMuY29uZiBjb250YWlucyBvbmx5IHdoaXRl c3BhY2U7IFZEUiBpcyBub3QgdXNlZnVsCisjIGJlZm9yZSBhIHJlYWwgY2hhbm5lbCBsaXN0IGV4 aXN0cywgc28gcmVmdXNlIHRvIHN0YXJ0IChleGl0IDIgbWF0Y2hlcworIyBSZXN0YXJ0UHJldmVu dEV4aXRTdGF0dXMgaW4gdmRyLnNlcnZpY2UpIHVudGlsIG9uZSBoYXMgYmVlbiBjcmVhdGVkLgor CiBjZmc9L2V0Yy92ZHIvY2hhbm5lbHMuY29uZgotaWYgWyAhIC1zICRjZmcgXSA7IHRoZW4KLSAg ICBlY2hvICIkY2ZnIGlzIG5vdCB2YWxpZCwgdXNlIFwic2NhbmR2YiAtbyB2ZHJcIiBmcm9tIHRo ZSBkdmItYXBwcyBwYWNrYWdlIHRvIGNyZWF0ZSBvbmUuIiA+JjIKK2lmICEgZ3JlcCAtcSAnW15b OnNwYWNlOl1dJyAiJGNmZyIgMj4vZGV2L251bGwgOyB0aGVuCisgICAgZWNobyAiJGNmZyBpcyBl bXB0eSwgdXNlIFwic2NhbmR2YiAtbyB2ZHJcIiBmcm9tIHRoZSBkdmItYXBwcyBwYWNrYWdlIHRv IGNyZWF0ZSBvbmUuIiA+JjIKICAgICBleGl0IDIKIGVsc2UKLSAgICBjaG93biBWRFJfVVNFUjpW RFJfR1JPVVAgJGNmZyAmJiBjaG1vZCA2NDQgJGNmZworICAgIGNob3duIFZEUl9VU0VSOlZEUl9H Uk9VUCAiJGNmZyIgJiYgY2htb2QgNjQ0ICIkY2ZnIgogZmkKCmRpZmYgLS1naXQgYS92ZHItZHZi aGRkZXZpY2UuY29uZiBiL3Zkci1kdmJoZGRldmljZS5jb25mCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBiNDU5NGQ1Li4wMDAwMDAwCi0tLSBhL3Zkci1kdmJoZGRldmljZS5jb25mCisr KyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0jIENvbmZpZ3VyYXRpb24gc25pcHBldCBmb3Ig dmRyLWR2YmhkZGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gc2ggLSotCi0jCi0j IEFkZCBjb21tYW5kIGxpbmUgb3B0aW9ucyB0byBwYXNzIHRvIHRoZSBkdmJoZGRldmljZSBwbHVn aW4gdG8gUExVR0lOX09QVElPTlMuCi0KLVBMVUdJTl9PUFRJT05TPSIiCgpkaWZmIC0tZ2l0IGEv dmRyLWR2YnNkZGV2aWNlLmNvbmYgYi92ZHItZHZic2RkZXZpY2UuY29uZgpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMWZlNjEwMi4uMDAwMDAwMAotLS0gYS92ZHItZHZic2RkZXZpY2Uu Y29uZgorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotIyBDb25maWd1cmF0aW9uIHNuaXBw ZXQgZm9yIHZkci1kdmJzZGRldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIHNoIC0q LQotIwotIyBBZGQgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgZHZic2RkZXZp Y2UgcGx1Z2luIHRvIFBMVUdJTl9PUFRJT05TLgotCi1QTFVHSU5fT1BUSU9OUz0iIgoKZGlmZiAt LWdpdCBhL3Zkci1mZWRvcmEucGF0Y2ggYi92ZHItZmVkb3JhLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5NDAzYzcKLS0tIC9kZXYvbnVsbAorKysgYi92ZHItZmVk b3JhLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK3Zkci5wYyBtdXN0IGV4cG9ydCBkYXRhZGlyL3J1 bmRpci92YXJkaXIvdXNlci9ncm91cDogdGhlIHBhY2thZ2VkIFJQTQorbWFjcm9zIGFuZCBNYWtl LmNvbmZpZyByZXNvbHZlIHRoZW0gdmlhIHBrZy1jb25maWcsIGFuZCBhbiB1bnNldCB1c2VyCit3 b3VsZCBtYWtlIFZEUiBza2lwIGRyb3BwaW5nIHByaXZpbGVnZXMuIFRoZSBpbnN0YWxsZWQgdmRy LW5ld3BsdWdpbgorcnVucyBvdXRzaWRlIGEgVkRSIHNvdXJjZSB0cmVlLCBzbyBpdCBtdXN0IGNy ZWF0ZSBpdHMgc2tlbGV0b24gaW4gdGhlCitjdXJyZW50IGRpcmVjdG9yeS4KKworLS0tIGEvTWFr ZWZpbGUKKysrKyBiL01ha2VmaWxlCitAQCAtMTg2LDYgKzE4NiwxMiBAQAorIAlAZWNobyAiY2Zs YWdzPSQoQ0ZMQUdTKSAkKENERUZJTkVTKSAkKENJTkNMVURFUykgJChIRFJESVIpIiA+PiAkQAor IAlAZWNobyAiY3h4ZmxhZ3M9JChDWFhGTEFHUykgJChDREVGSU5FUykgJChDSU5DTFVERVMpICQo SERSRElSKSIgPj4gJEAKKyAJQGVjaG8gIiIgPj4gJEAKKysJQGVjaG8gImRhdGFkaXI9XCQke3Jl c2Rpcn0iID4+ICRACisrCUBlY2hvICJydW5kaXI9JChSVU5ESVIpIiA+PiAkQAorKwlAZWNobyAi dmFyZGlyPSQoVkFSRElSKSIgPj4gJEAKKysJQGVjaG8gInVzZXI9JChWRFJfVVNFUikiID4+ICRA CisrCUBlY2hvICJncm91cD0kKFZEUl9HUk9VUCkiID4+ICRACisrCUBlY2hvICIiID4+ICRACisg CUBlY2hvICJOYW1lOiBWRFIiID4+ICRACisgCUBlY2hvICJEZXNjcmlwdGlvbjogVmlkZW8gRGlz ayBSZWNvcmRlciIgPj4gJEAKKyAJQGVjaG8gIlVSTDogaHR0cHM6Ly93d3cudHZkci5kZS8iID4+ ICRACistLS0gYS9uZXdwbHVnaW4KKysrKyBiL25ld3BsdWdpbgorQEAgLTI0LDcgKzI0LDcgQEAK KyAkUExVR0lOX0RFU0NSSVBUSU9OID0gIkVudGVyIGRlc2NyaXB0aW9uIGZvciAnJFBMVUdJTl9O QU1FJyBwbHVnaW4iOworICRQTFVHSU5fTUFJTkVOVFJZID0gJFBMVUdJTl9DTEFTUzsKKyAKKy0k UExVR0lOU19TUkMgPSAiUExVR0lOUy9zcmMiOworKyRQTFVHSU5TX1NSQyA9ICIuIjsKKyAKKyAk UkVBRE1FID0gcXEKKyB7VGhpcyBpcyBhICJwbHVnaW4iIGZvciB0aGUgVmlkZW8gRGlzayBSZWNv cmRlciAoVkRSKS4KCmRpZmYgLS1naXQgYS92ZHItZnNmLWFkZHJlc3MucGF0Y2ggYi92ZHItZnNm LWFkZHJlc3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU2Y2Jj OQotLS0gL2Rldi9udWxsCisrKyBiL3Zkci1mc2YtYWRkcmVzcy5wYXRjaApAQCAtMCwwICsxLDQ3 IEBACitUaGUgRlNGIG5vIGxvbmdlciByZXNpZGVzIGF0IDUxIEZyYW5rbGluIFN0cmVldCwgYW5k IHBhY2thZ2luZyB0b29scworaGF2ZSBzdGFydGVkIHRvIHJlamVjdCBsaWNlbnNlIGZpbGVzIGNh cnJ5aW5nIGEgc3RhbGUgcG9zdGFsIGFkZHJlc3MuCitSZWZlciB0byA8aHR0cHM6Ly9mc2Yub3Jn Lz4gYW5kIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4gaW5zdGVhZCwKK2FzIHRoZSBG U0YgaXRzZWxmIGRvZXMgaW4gdGhlIEdQTHYzIHRleHQuIExpY2Vuc2UgdGVybXMgYXJlIHVuY2hh bmdlZC4KKworLS0tIGEvQ09QWUlORworKysrIGIvQ09QWUlORworQEAgLTIsNyArMiw3IEBACisg CQkgICAgICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKKyAKKyAgQ29weXJpZ2h0IChDKSAxOTg5LCAx OTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLSA1MSBGcmFua2xpbiBTdHJlZXQs IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKysgPGh0dHBzOi8vZnNm Lm9yZy8+CisgIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZl cmJhdGltIGNvcGllcworICBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBp dCBpcyBub3QgYWxsb3dlZC4KKyAKK0BAIC0zMDQsOCArMzA0LDcgQEAKKyAgICAgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAKKyAgICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0g ICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKKy0gICAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisrICAgIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorIAor IAorIEFsc28gYWRkIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVjdHJv bmljIGFuZCBwYXBlciBtYWlsLgorLS0tIGEvUExVR0lOUy9zcmMvc2tpbmN1cnNlcy9DT1BZSU5H CisrKysgYi9QTFVHSU5TL3NyYy9za2luY3Vyc2VzL0NPUFlJTkcKK0BAIC0yLDcgKzIsNyBAQAor IAkJICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCisgCisgIENvcHlyaWdodCAoQykgMTk4OSwg MTk5MSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy0gNTEgRnJhbmtsaW4gU3RyZWV0 LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisrIDxodHRwczovL2Zz Zi5vcmcvPgorICBFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2 ZXJiYXRpbSBjb3BpZXMKKyAgb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcg aXQgaXMgbm90IGFsbG93ZWQuCisgCitAQCAtMzA0LDggKzMwNCw3IEBACisgICAgIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgCisgICAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCist ICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv ZnR3YXJlCistICAgIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorKyAgICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAK KyAKKyBBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ry b25pYyBhbmQgcGFwZXIgbWFpbC4KCmRpZmYgLS1naXQgYS92ZHItbWFpbm1lbnVob29rcy5wYXRj aCBiL3Zkci1tYWlubWVudWhvb2tzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjhjNDBhY2EKLS0tIC9kZXYvbnVsbAorKysgYi92ZHItbWFpbm1lbnVob29rcy5wYXRj aApAQCAtMCwwICsxLDUyIEBACitlcGdzZWFyY2gncyAiUmVwbGFjZSBvcmlnaW5hbCBzY2hlZHVs ZSIgb3B0aW9uIG5lZWRzIHRoZSBzZXJ2aWNlIGNhbGwKKyJNYWluTWVudUhvb2tzUGF0Y2gtdjEu MDo6b3NTY2hlZHVsZSI7IHdpdGhvdXQgaXQgdGhlIG9wdGlvbiBzaWxlbnRseQorZG9lcyBub3Ro aW5nLiBPbmx5IHRoaXMgaG9vayBpcyB3aXJlZCB1cDogdGhlIG90aGVyIHRocmVlIGhvb2tzIG9m IHRoZQorb3JpZ2luYWwgTWFpbk1lbnVIb29rcy0xLjAuNSBwYXRjaCBoYXZlIG5vIGNvbnN1bWVy IGhlcmUsIGFuZCB0aGUKK01BSU5NRU5VSE9PS1NWRVJTTlVNIGRlZmluZXMgYXJlIG9taXR0ZWQg c28gbm8gcGx1Z2luIGNhbiBmZWF0dXJlLXRlc3QKK2l0c2VsZiBpbnRvIHVzaW5nIGhvb2tzIHRo YXQgYXJlIGFic2VudC4KKworLS0tIGEvbWVudS5jCisrKysgYi9tZW51LmMKK0BAIC00NzE4LDcg KzQ3MTgsMTggQEAKKyAgIC8vIEluaXRpYWwgc3VibWVudXM6CisgCisgICBzd2l0Y2ggKFN0YXRl KSB7CistICAgIGNhc2Ugb3NTY2hlZHVsZTogICBBZGRTdWJNZW51KG5ldyBjTWVudVNjaGVkdWxl KTsgYnJlYWs7CisrICAgIGNhc2Ugb3NTY2hlZHVsZTogICB7CisrICAgICAgICAgICAgICAgICAg ICAgICAgIGNPc2RPYmplY3QgKm1lbnUgPSBOVUxMOworKyAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoIWNQbHVnaW5NYW5hZ2VyOjpDYWxsRmlyc3RTZXJ2aWNlKCJNYWluTWVudUhvb2tzUGF0 Y2gtdjEuMDo6b3NTY2hlZHVsZSIsICZtZW51KSkKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWVudSA9IG5ldyBjTWVudVNjaGVkdWxlOworKyAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAobWVudSkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVudS0+SXNNZW51 KCkpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZFN1Yk1lbnUoKGNPc2RNZW51 ICopbWVudSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG1lbnU7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICBjYXNlIG9zQ2hhbm5lbHM6ICAgQWRkU3ViTWVudShuZXcgY01lbnVD aGFubmVscyk7IGJyZWFrOworICAgICBjYXNlIG9zVGltZXJzOiAgICAgQWRkU3ViTWVudShuZXcg Y01lbnVUaW1lcnMpOyBicmVhazsKKyAgICAgY2FzZSBvc1JlY29yZGluZ3M6IEFkZFN1Yk1lbnUo bmV3IGNNZW51UmVjb3JkaW5ncyhOVUxMLCAwLCBPcGVuU3ViTWVudXMpKTsgYnJlYWs7CitAQCAt NDg1NSw3ICs0ODY2LDIxIEBACisgICBIYWRTdWJNZW51IHw9IEhhc1N1Yk1lbnUoKTsKKyAKKyAg IHN3aXRjaCAoc3RhdGUpIHsKKy0gICAgY2FzZSBvc1NjaGVkdWxlOiAgIHJldHVybiBBZGRTdWJN ZW51KG5ldyBjTWVudVNjaGVkdWxlKTsKKysgICAgY2FzZSBvc1NjaGVkdWxlOiAgIHsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgY09zZE9iamVjdCAqbWVudSA9IE5VTEw7CisrICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICghY1BsdWdpbk1hbmFnZXI6OkNhbGxGaXJzdFNlcnZpY2UoIk1h aW5NZW51SG9va3NQYXRjaC12MS4wOjpvc1NjaGVkdWxlIiwgJm1lbnUpKQorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gQWRkU3ViTWVudShuZXcgY01lbnVTY2hlZHVsZSk7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZW51KSB7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChtZW51LT5Jc01lbnUoKSkKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIEFkZFN1Yk1lbnUoKGNPc2RNZW51ICopbWVudSk7CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVsc2UgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw bHVnaW5Pc2RPYmplY3QgPSBtZW51OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gb3NQbHVnaW47CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0 ZSA9IG9zQ29udGludWU7CisrICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgY2FzZSBvc0NoYW5uZWxzOiAgIHJldHVybiBBZGRTdWJN ZW51KG5ldyBjTWVudUNoYW5uZWxzKTsKKyAgICAgY2FzZSBvc1RpbWVyczogICAgIHJldHVybiBB ZGRTdWJNZW51KG5ldyBjTWVudVRpbWVycyk7CisgICAgIGNhc2Ugb3NSZWNvcmRpbmdzOiByZXR1 cm4gQWRkU3ViTWVudShuZXcgY01lbnVSZWNvcmRpbmdzKTsKCmRpZmYgLS1naXQgYS92ZHItcmN1 LmNvbmYgYi92ZHItcmN1LmNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxYTBh NTUuLjAwMDAwMDAKLS0tIGEvdmRyLXJjdS5jb25mCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCww IEBACi0jIENvbmZpZ3VyYXRpb24gc25pcHBldCBmb3IgdmRyLXJjdSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtKi0gc2ggLSotCi0jCi0jIEFkZCBjb21tYW5kIGxpbmUgb3B0aW9u cyB0byBwYXNzIHRvIHRoZSByY3UgcGx1Z2luIHRvIFBMVUdJTl9PUFRJT05TLgotCi1QTFVHSU5f T1BUSU9OUz0iIgoKZGlmZiAtLWdpdCBhL3Zkci1zaHV0ZG93bi5zaCBiL3Zkci1zaHV0ZG93bi5z aAppbmRleCBlNjI4YjIxLi5iNjQxYTI5IDEwMDY0NAotLS0gYS92ZHItc2h1dGRvd24uc2gKKysr IGIvdmRyLXNodXRkb3duLnNoCkBAIC0yLDYgKzIsMTYgQEAKIAogIyBUbyBlbmFibGUgdGhpcyBz Y3JpcHQsIHBhc3MgaXQgdG8gdmRyIHdpdGggdGhlIC1zIG9wdGlvbiwgZWcuCiAjICItcyB2ZHIt c2h1dGRvd24uc2giIChzYW5zIHF1b3RlcykgaW4gVkRSX09QVElPTlMgaW4gL2V0Yy9zeXNjb25m aWcvdmRyLgorIworIyBUaGUgY29tbWFuZHMgcnVuIHRocm91Z2ggc3VkbzsgdGhlIHJ1bGVzIHRo ZXkgbmVlZCBhcmUgcGFja2FnZWQgaW4KKyMgL2V0Yy9zdWRvZXJzLmQvdmRyLiAgVG8gaGliZXJu YXRlIGluc3RlYWQgb2YgcG93ZXJpbmcgb2ZmLCByZXBsYWNlIHRoZQorIyBsYXN0IGxpbmUgd2l0 aAorIworIyAgIHN1ZG8gL3Vzci9saWIvdmRyL2Jpbi92ZHItc2V0LXdha2V1cAorIyAgIGV4ZWMg c3VkbyAvdXNyL2Jpbi9zeXN0ZW1jdGwgaGliZXJuYXRlCisjCisjICh0aGUgc2VydmljZSBrZWVw cyBydW5uaW5nIHRocm91Z2ggaGliZXJuYXRpb24sIHNvIHRoZSB3YWtldXAgbXVzdCBiZQorIyBz ZXQgaGVyZSBpbnN0ZWFkIG9mIGJ5IHRoZSB1bml0J3MgRXhlY1N0b3AgaG9vaykuCiAKIGVjaG8g JHsxOi0wfSA+IC92YXIvcnVuL3Zkci9uZXh0LXRpbWVyCi1leGVjIHN1ZG8gL3NiaW4vc2h1dGRv d24gLVAgbm93CitleGVjIHN1ZG8gL3Vzci9iaW4vc3lzdGVtY3RsIHBvd2Vyb2ZmCgpkaWZmIC0t Z2l0IGEvdmRyLm1hY3JvcyBiL3Zkci5tYWNyb3MKaW5kZXggNjBiZjU1YS4uZjY5MWNlOSAxMDA2 NDQKLS0tIGEvdmRyLm1hY3JvcworKysgYi92ZHIubWFjcm9zCkBAIC0xNiw3ICsxNiw3IEBACiAl dmRyX3ZhcmRpciAgICAgJXZkcl9wY3ZhciB2YXJkaXIKICV2ZHJfdmlkZW9kaXIgICAldmRyX3Bj dmFyIHZpZGVvZGlyCiAKLSMgZGVwcmVjYXRlZCwgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKyMg Q29tcGF0aWJpbGl0eSBhbGlhc2VzLCBzdGlsbCByZWZlcmVuY2VkIGJ5IGV4aXN0aW5nIHBsdWdp biBzcGVjIGZpbGVzLgogJXZkcl9pbmNsdWRlZGlyICV7X2luY2x1ZGVkaXJ9CiAldmRyX2xvY2Fs ZWRpciAgJXt2ZHJfbG9jZGlyfQogJXZkcl9wbHVnaW5kaXIgICV7dmRyX2xpYmRpcn0KCmRpZmYg LS1naXQgYS92ZHIucnBtbGludHJjIGIvdmRyLnJwbWxpbnRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5lNDJjNGFhCi0tLSAvZGV2L251bGwKKysrIGIvdmRyLnJwbWxpbnRy YwpAQCAtMCwwICsxLDYgQEAKK2FkZEZpbHRlcihyInZkci4qOiBFOiBub24tcmVhZGFibGUgL2V0 Yy9zdWRvZXJzXC5kL3ZkciA0NDAiKQorYWRkRmlsdGVyKHIidmRyXGIuKjogVzogbm9uLXN0YW5k YXJkLXVpZCAuKiB2ZHIkIikKK2FkZEZpbHRlcihyInZkclxiLio6IFc6IGhpZGRlbi1maWxlLW9y LWRpciAvdmFyL2xpYi92ZHIvdmlkZW8vXC51cGRhdGUkIikKK2FkZEZpbHRlcihyInZkclxiLio6 IFc6IG5vLW1hbnVhbC1wYWdlLWZvci1iaW5hcnkgKGVwZzJodG1sfHJ1bnZkcnx2ZHItY29uZmln fHZkci1uZXdwbHVnaW4pJCIpCithZGRGaWx0ZXIociJ2ZHJcYi4qOiBXOiBpbnN0YWxsLWZpbGUt aW4tZG9jcyAuKi9JTlNUQUxMJCIpCithZGRGaWx0ZXIociJ2ZHItZGV2ZWxcYi4qOiBXOiBuby1k b2N1bWVudGF0aW9uJCIpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKZGlmZiAtLWdpdCBh L3Zkci5zZXJ2aWNlIGIvdmRyLnNlcnZpY2UKaW5kZXggNzRlMjIxYy4uYmE5MmI0MiAxMDA2NDQK LS0tIGEvdmRyLnNlcnZpY2UKKysrIGIvdmRyLnNlcnZpY2UKQEAgLTgsOSArOCwxNiBAQCBBZnRl cj1uZXR3b3JrLnRhcmdldAogCiBbU2VydmljZV0KIFR5cGU9bm90aWZ5Ci1FeGVjU3RhcnRQcmU9 L3Vzci9saWIvdmRyL2Jpbi92ZHItY2hlY2stc2V0dXAKK1VzZXI9dmRyCitHcm91cD12aWRlbwor IyAvcnVuL3ZkciBvbmx5IGNhcnJpZXMgdGhlIG5leHQtdGltZXIgaGFuZG9mZiBmcm9tIHZkci1z aHV0ZG93bi5zaCB0bworIyB2ZHItc2V0LXdha2V1cDsgc3lzdGVtZCBjcmVhdGVzIGl0IGF0IHN0 YXJ0IGFuZCByZW1vdmVzIGl0IGF0IHN0b3AuCitSdW50aW1lRGlyZWN0b3J5PXZkcgorIyAnKycg PSBydW5zIGFzIHJvb3Q6IGNob3ducyBjaGFubmVscy5jb25mCitFeGVjU3RhcnRQcmU9Ky91c3Iv bGliL3Zkci9iaW4vdmRyLWNoZWNrLXNldHVwCiBFeGVjU3RhcnQ9L3Vzci9zYmluL3J1bnZkcgot RXhlY1N0b3A9LS91c3IvbGliL3Zkci9iaW4vdmRyLXNldC13YWtldXAKKyMgJysnID0gcnVucyBh cyByb290OiBydGN3YWtlOyAnLScgPSBhIGZhaWx1cmUgZG9lcyBub3QgZmFpbCB0aGUgc3RvcCBq b2IKK0V4ZWNTdG9wPS0rL3Vzci9saWIvdmRyL2Jpbi92ZHItc2V0LXdha2V1cAogV2F0Y2hkb2dT ZWM9NjAKIFJlc3RhcnQ9b24tZmFpbHVyZQogUmVzdGFydFByZXZlbnRFeGl0U3RhdHVzPTIKCmRp ZmYgLS1naXQgYS92ZHIuc3BlYyBiL3Zkci5zcGVjCmluZGV4IDNhYmY4N2UuLjA3NzQ2ZmEgMTAw NjQ0Ci0tLSBhL3Zkci5zcGVjCisrKyBiL3Zkci5zcGVjCkBAIC0xLDE5ICsxLDMgQEAKLSMgVE9E TywgbWF5YmUgc29tZSBkYXk6Ci0jIC0gbGl2ZWJ1ZmZlciBwYXRjaCwgaHR0cDovL3d3dy52ZHIt cG9ydGFsLmRlL2JvYXJkL3RocmVhZC5waHA/dGhyZWFkaWQ9MzczMDkKLSMgLSBjaGFubmVsZmls dGVyIHBhdGNoLCBodHRwOi8vd3d3LnUzMi5kZS92ZHIuaHRtbCNwYXRjaGVzCi0jIC0gcGF1c2Ug cGF0Y2ggKGNhdXNlcyBPU0QgcGxhY2VtZW50IGlzc3VlcyBhdCBsZWFzdCB3aXRoIHVucmVidWls dCB0ZXh0MnNraW4pCi0jICAgaHR0cDovL3d3dy50b2xsZXJpLm5ldC92ZHIvdmRyL3Zkci0xLjYu MC0yLXBhdXNlLTAuMC4xLnBhdGNoCi0KLSMgLSBUaGUgZHZiaGRkZXZpY2UgcGx1Z2luIGlzIG5v IGxvbmdlciBwYXJ0IG9mIHRoZSBWRFIgc291cmNlIGFyY2hpdmUuCi0jICBZb3UgY2FuIGdldCB0 aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBwbHVnaW4gZnJvbSB0aGUgYXV0aG9yJ3MgcmVwb3Np dG9yeSBhdAotIyAgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3Bvd0FSbWFuL2R2YmhkZGV2aWNlLgot IyAtIFRoZSBkdmJzZGRldmljZSBhbmQgcmN1IHBsdWdpbnMgYXJlIG5vIGxvbmdlciBwYXJ0IG9m IHRoZSBWRFIgc291cmNlIGFyY2hpdmUuCi0jICBZb3UgY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNp b25zIG9mIHRoZXNlIHBsdWdpbnMgZnJvbSBmdHA6Ly9mdHAudHZkci5kZS92ZHIvUGx1Z2lucy4K LQotJXshP19wa2dkb2NkaXI6ICVnbG9iYWwgX3BrZ2RvY2RpciAle19kb2NkaXJ9LyV7bmFtZX0t JXt2ZXJzaW9ufX0KLSVnbG9iYWwgX2hhcmRlbmVkX2J1aWxkIDEKLSViY29uZF93aXRob3V0ICAg IGRvY3MKLQogJWdsb2JhbCB2YXJiYXNlICAgJXtfdmFyfS9saWIvdmRyCiAlZ2xvYmFsIHZpZGVv ZGlyICAle3ZhcmJhc2V9L3ZpZGVvCiAlZ2xvYmFsIHZhcmRpciAgICAle3ZhcmJhc2V9L2RhdGEK QEAgLTIzLDEzNyArNyw5OSBAQAogJWdsb2JhbCBydW5kaXIgICAgL3J1bi92ZHIKICVnbG9iYWwg dmRyX3VzZXIgIHZkcgogJWdsb2JhbCB2ZHJfZ3JvdXAgdmlkZW8KLSMgRnJvbSBBUElWRVJTSU9O IGluIGNvbmZpZy5oCi0lZ2xvYmFsIGFwaXZlciAgICAxMworCislYmNvbmRfd2l0aG91dCAgICBk b2NzCisKKyVnbG9iYWwgX19wcm92aWRlc19leGNsdWRlX2Zyb20gXiV7cGx1Z2luZGlyfS8uKlxc LnNvLiokCiAKIE5hbWU6ICAgICAgICAgICB2ZHIKIFZlcnNpb246ICAgICAgICAyLjguMgotUmVs ZWFzZTogICAgICAgIDIlez9kaXN0fQorUmVsZWFzZTogICAgICAgIDMlez9kaXN0fQogU3VtbWFy eTogICAgICAgIFZpZGVvIERpc2sgUmVjb3JkZXIKIAogTGljZW5zZTogICAgICAgIEdQTC0yLjAt b3ItbGF0ZXIKLVVSTDogICAgICAgICAgICBodHRwOi8vd3d3LnR2ZHIuZGUvCi0jIEdldCB2ZHIg c291cmNlIGZyb20gaHR0cDovL2dpdC50dmRyLmRlLz9wPXZkci5naXQ7YT1zbmFwc2hvdDtoPXJl ZnMvdGFncy8yLjguMjtzZj10YnoyCi0jIHdnZXQgLS1jb250ZW50LWRpc3Bvc2l0aW9uICJodHRw Oi8vZ2l0LnR2ZHIuZGUvP3A9dmRyLmdpdDthPXNuYXBzaG90O2g9cmVmcy90YWdzLzIuOC4yO3Nm PXRiejIiCi1Tb3VyY2UwOiAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LnRhci5iejIKK1VSTDog ICAgICAgICAgICBodHRwczovL3d3dy50dmRyLmRlLworU291cmNlMDogICAgICAgIGh0dHBzOi8v Z2l0LnR2ZHIuZGUvP3A9dmRyLmdpdDthPXNuYXBzaG90O2g9cmVmcy90YWdzLyV7dmVyc2lvbn07 c2Y9dGJ6MiMvJXtuYW1lfS0le3ZlcnNpb259LnRhci5iejIKKworIyBUaGUgcGx1Z2luIEFCSSB2 ZXJzaW9uLCBleHRyYWN0ZWQgZnJvbSBjb25maWcuaCBpbiB0aGUgdGFyYmFsbCBhdCBwYXJzZQor IyB0aW1lLiAgTXVzdCBzdGF5IGJlbG93IFNvdXJjZTA6IHRoZSAlJSgpIHNoZWxsIHJ1bnMgd2hl biAlJWdsb2JhbCBpcworIyBkZWZpbmVkLCBzbyAlJXtTOjB9IGhhcyB0byBleGlzdCBhbHJlYWR5 LiAgRmFsbGJhY2sgMCBmb3Igc3BlYy1vbmx5IHRvb2xzCisjIChycG1saW50KTsgJSVjaGVjayB2 ZXJpZmllcyB0aGUgcGFja2FnZWQgdmFsdWUgYWdhaW5zdCB2ZHIucGMuCislZ2xvYmFsIGFwaXZl ciAlKHY9JCh0YXIgLXhPZiAle1M6MH0gJXtuYW1lfS0le3ZlcnNpb259L2NvbmZpZy5oIDI+L2Rl di9udWxsIHwgc2VkIC1uZSAnL2RlZmluZSBBUElWRVJTSU9OL3MvXi4qIlxcKC4qXFwpIi4qJC9c XDEvcCcgfCBoZWFkIC1uMSk7IGVjaG8gJHt2Oi0wfSkKKwogU291cmNlMTogICAgICAgICV7bmFt ZX0uc2VydmljZQogU291cmNlMjogICAgICAgICV7bmFtZX0uc3lzY29uZmlnCiBTb3VyY2UzOiAg ICAgICAgJXtuYW1lfS5zdWRvZXJzCitTb3VyY2U0OiAgICAgICAgJXtuYW1lfS5tYWNyb3MKIFNv dXJjZTU6ICAgICAgICAle25hbWV9LXJlY2NtZHMuY29uZgogU291cmNlNjogICAgICAgICV7bmFt ZX0tY29tbWFuZHMuY29uZgotU291cmNlNzogICAgICAgICV7bmFtZX0tcnVudmRyLnNoCi1Tb3Vy Y2U4OiAgICAgICAgJXtuYW1lfS1kdmJzZGRldmljZS5jb25mCi1Tb3VyY2U5OiAgICAgICAgJXtu YW1lfS1jb25maWcuc2gKLVNvdXJjZTEwOiAgICAgICAle25hbWV9LVJFQURNRS5wYWNrYWdlCi1T b3VyY2UxMTogICAgICAgJXtuYW1lfS1za2luY3Vyc2VzLmNvbmYKLVNvdXJjZTEyOiAgICAgICAl e25hbWV9LWR2YmhkZGV2aWNlLmNvbmYKLVNvdXJjZTEzOiAgICAgICAle25hbWV9LXRpbWVyY21k cy5jb25mCi1Tb3VyY2UxNDogICAgICAgJXtuYW1lfS1zaHV0ZG93bi5zaAotU291cmNlMTU6ICAg ICAgICV7bmFtZX0tbW92ZXRvLnNoCi1Tb3VyY2UxNjogICAgICAgJXtuYW1lfS1DSEFOR0VTLnBh Y2thZ2Uub2xkCi1Tb3VyY2UxNzogICAgICAgJXtuYW1lfS5tYWNyb3MKLVNvdXJjZTE4OiAgICAg ICBodHRwOi8vY2RuLmRlYmlhbi5uZXQvZGViaWFuL3Bvb2wvbWFpbi92L3Zkci92ZHJfMi4yLjAt NS5kZWJpYW4udGFyLmJ6MgotU291cmNlMTk6ICAgICAgICV7bmFtZX0tY2hlY2stc2V0dXAuc2gK LVNvdXJjZTIwOiAgICAgICAle25hbWV9LXJjdS5jb25mCi1Tb3VyY2UyMTogICAgICAgJXtuYW1l fS1zZXQtd2FrZXVwLnNoCi1Tb3VyY2UzMDogICAgICAgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3Bv d0FSbWFuL2R2YmhkZGV2aWNlL2dldC8zNDczYTdiOTM5ZDcuemlwCi1Tb3VyY2UzMTogICAgICAg ZnRwOi8vZnRwLnR2ZHIuZGUvdmRyL1BsdWdpbnMvdmRyLWR2YnNkZGV2aWNlLTIuMi4wLnRnegot U291cmNlMzI6ICAgICAgIGZ0cDovL2Z0cC50dmRyLmRlL3Zkci9QbHVnaW5zL3Zkci1yY3UtMi4y LjAudGd6Ci0KLVBhdGNoMDogICAgICAgICBkZWZpbmVfQVVESU9fR0VUX1BUUy5wYXRjaAotUGF0 Y2gxOiAgICAgICAgIGh0dHA6Ly96YXAudGFydGFydXMub3JnL35kcy9kZWJpYW4vZGlzdHMvc3Rh YmxlL21haW4vc291cmNlL3Zkcl8xLjQuNS0yLmRzLmRpZmYuZ3oKLSMgRXh0cmFjdGVkIGZyb20g aHR0cDovL2NvcHBlcmhlYWQuaHRwYy1mb3J1bS5kZS9kb3dubG9hZHMvZXh0ZW5zaW9ucGF0Y2gv ZXh0cG5ndmRyMS43LjIxdjEuZGlmZi5negotUGF0Y2gzOiAgICAgICAgICV7bmFtZX0tMS43LjIx LXBsdWdpbi1taXNzaW5nLnBhdGNoCi1QYXRjaDQ6ICAgICAgICAgJXtuYW1lfS0yLjQuMC1wYXRo cy5wYXRjaAotIyBodHRwOi8vdmRycG9ydGFsLmRlL2JvYXJkL3RocmVhZC5waHA/cG9zdGlkPTM0 MzY2NSNwb3N0MzQzNjY1Ci1QYXRjaDU6ICAgICAgICAgMTJfb3NkYmFzZS1tYXhpdGVtcy5wYXRj aAotUGF0Y2g2OiAgICAgICAgICV7bmFtZX0tMi43LjQtZmVkb3JhLXBrZ2NvbmZpZy5wYXRjaAot IyBodHRwczovL3d3dy52ZHItcG9ydGFsLmRlL2ZpbGUtZG93bmxvYWQvNDA3NjAvCi1QYXRjaDEx Ogkle25hbWV9LSV7dmVyc2lvbn0tTWFpbk1lbnVIb29rcy12MV8wXzUuZGlmZgotIyBodHRwczov L3d3dy52ZHItcG9ydGFsLmRlL2luZGV4LnBocD9hdHRhY2htZW50LzQ0ODMxLXZkci0yLTQtNi1j bGVhcm9ic29sZXRlY2hhbm5lbHMtZGlmZgotUGF0Y2g5OTogICAgICAgICV7bmFtZX0tMi40LjYt Q2xlYXJPYnNvbGV0ZUNoYW5uZWxzMi5kaWZmCitTb3VyY2U3OiAgICAgICAgJXtuYW1lfS10aW1l cmNtZHMuY29uZgorU291cmNlODogICAgICAgICV7bmFtZX0tc2tpbmN1cnNlcy5jb25mCitTb3Vy Y2U5OiAgICAgICAgJXtuYW1lfS1SRUFETUUucGFja2FnZQorU291cmNlMTA6ICAgICAgICV7bmFt ZX0tcnVudmRyLnNoCitTb3VyY2UxMTogICAgICAgJXtuYW1lfS1jb25maWcuc2gKK1NvdXJjZTEy OiAgICAgICAle25hbWV9LXNodXRkb3duLnNoCitTb3VyY2UxMzogICAgICAgJXtuYW1lfS1tb3Zl dG8uc2gKK1NvdXJjZTE0OiAgICAgICAle25hbWV9LWNoZWNrLXNldHVwLnNoCitTb3VyY2UxNTog ICAgICAgJXtuYW1lfS1zZXQtd2FrZXVwLnNoCisKKyMgRmVkb3JhL0ZIUyBpbnRlZ3JhdGlvbjog ZXhwb3J0IGRhdGFkaXIvcnVuZGlyL3ZhcmRpci91c2VyL2dyb3VwIGZyb20gdmRyLnBjCitQYXRj aDogICAgICAgICAgJXtuYW1lfS1mZWRvcmEucGF0Y2gKKyMgTWFpbk1lbnVIb29rcywgcmVkdWNl ZCB0byB0aGUgb25seSBob29rIGFueSBzaGlwcGVkIHBsdWdpbiBpbXBsZW1lbnRzCisjIChlcGdz ZWFyY2gncyAiUmVwbGFjZSBvcmlnaW5hbCBzY2hlZHVsZSIpLgorUGF0Y2g6ICAgICAgICAgICV7 bmFtZX0tbWFpbm1lbnVob29rcy5wYXRjaAorIyBTZW50IHVwc3RyZWFtOiByZXBsYWNlIHRoZSBG U0YncyBzdGFsZSBwb3N0YWwgYWRkcmVzcyBpbiBDT1BZSU5HIHdpdGggdGhlCisjIGxpY2Vuc2Ug VVJMczsgcnBtbGludCByZWplY3RzIHRoZSBvbGQgYWRkcmVzcy4KK1BhdGNoOiAgICAgICAgICAl e25hbWV9LWZzZi1hZGRyZXNzLnBhdGNoCiAKLUJ1aWxkUmVxdWlyZXM6ICBtYWtlCi1CdWlsZFJl cXVpcmVzOiAgZ2NjCiBCdWlsZFJlcXVpcmVzOiAgZ2NjLWMrKwotQnVpbGRSZXF1aXJlczogIGxp YmpwZWctZGV2ZWwKLUJ1aWxkUmVxdWlyZXM6ICBsaWJjYXAtZGV2ZWwKLUJ1aWxkUmVxdWlyZXM6 ICBwa2djb25maWcKLUJ1aWxkUmVxdWlyZXM6ICBwZXJsKEZpbGU6OlNwZWMpCi1CdWlsZFJlcXVp cmVzOiAgZm9udGNvbmZpZy1kZXZlbAotQnVpbGRSZXF1aXJlczogIGZyZWV0eXBlLWRldmVsCitC dWlsZFJlcXVpcmVzOiAgbWFrZQogQnVpbGRSZXF1aXJlczogIGdldHRleHQKLSMgc3lzdGVtZCA+ PSAxODYgZm9yIHNjcmlwdGxldCBtYWNyb3MKLUJ1aWxkUmVxdWlyZXM6ICBzeXN0ZW1kID49IDE4 NgotQnVpbGRSZXF1aXJlczogIHN5c3RlbWQtZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICBsaWJjYXAt ZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICBsaWJqcGVnLWRldmVsCitCdWlsZFJlcXVpcmVzOiAgbmN1 cnNlcy1kZXZlbAorQnVpbGRSZXF1aXJlczogIHBrZ2NvbmZpZyhmb250Y29uZmlnKQorQnVpbGRS ZXF1aXJlczogIHBrZ2NvbmZpZyhmcmVldHlwZTIpCitCdWlsZFJlcXVpcmVzOiAgcGtnY29uZmln KGxpYnN5c3RlbWQpCitCdWlsZFJlcXVpcmVzOiAgc3VkbworQnVpbGRSZXF1aXJlczogIHN5c3Rl bWQtcnBtLW1hY3JvcwogJWlmICV7d2l0aCBkb2NzfQogQnVpbGRSZXF1aXJlczogIGRveHlnZW4K IEJ1aWxkUmVxdWlyZXM6ICBncmFwaHZpegogJWVuZGlmCi0jIHVkZXYgPj0gMTM2LTEgZm9yIHRo ZSBhdWRpbywgY2Ryb20sIGRpYWxvdXQsIGFuZCB2aWRlbyBncm91cHMKLVJlcXVpcmVzOiAgICAg ICB1ZGV2ID49IDEzNi0xCi0jIHN1ZG8gZm9yIHRoZSBzaHV0ZG93biBzY3JpcHQsID49IDEuNy4y cDItMyBmb3Igc3Vkb2Vycy5kIGZ1bmN0aW9uYWxpdHkKLVJlcXVpcmVzOiAgICAgICBzdWRvID49 IDEuNy4ycDItMwotIyB1dGlsLWxpbnV4ID49IDIuMTUgZm9yICJydGN3YWtlIC1tIG5vIiB0aW1l ciBkcml2ZW4gd2FrZXVwcwotUmVxdWlyZXM6ICAgICAgIHV0aWwtbGludXggPj0gMi4xNQorCisj IHN1ZG8gYXV0aG9yaXplcyB0aGUgc2h1dGRvd24gc2NyaXB0J3MgcHJpdmlsZWdlZCBjb21tYW5k cyAoc3Vkb2Vycy5kL3Zkcik7CisjIHV0aWwtbGludXggcHJvdmlkZXMgInJ0Y3dha2UgLW0gbm8i IGZvciB0aW1lci1kcml2ZW4gd2FrZXVwcworUmVxdWlyZXM6ICAgICAgIHN1ZG8KK1JlcXVpcmVz OiAgICAgICB1dGlsLWxpbnV4CiBSZXF1aXJlczogICAgICAgdmRyc3ltYm9sLWZvbnRzCi0jIHN5 c3RlbWQgPj0gMTg5IGZvciBSZXN0YXJ0UHJldmVudEV4aXRTdGF0dXM9Ci1SZXF1aXJlcyhwb3N0 LHByZXVuLHBvc3R1bik6IHN5c3RlbWQgPj0gMTg5Cislez9zeXN0ZW1kX3JlcXVpcmVzfQogUHJv dmlkZXM6ICAgICAgIHZkcihhYmkpJXs/X2lzYX0gPSAle2FwaXZlcn0KLU9ic29sZXRlczogICAg ICB2ZHItc3VidGl0bGVzIDw9IDAuNS4wCi1PYnNvbGV0ZXM6ICAgICAgdmRyLXNreSA8IDEuNy4x MQogCiAlZGVzY3JpcHRpb24KIFZEUiBpbXBsZW1lbnRzIGEgY29tcGxldGUgZGlnaXRhbCBzZXQt dG9wLWJveCBhbmQgdmlkZW8gcmVjb3JkZXIuCiBJdCBjYW4gd29yayB3aXRoIHNpZ25hbHMgcmVj ZWl2ZWQgZnJvbSBzYXRlbGxpdGVzIChEVkItUykgYXMgd2VsbCBhcwotY2FibGUgKERWQi1DKSBh bmQgdGVycmVzdHJpYWwgKERWQi1UKSBzaWduYWxzLiAgQXQgbGVhc3Qgb25lIERWQiBjYXJkCitj YWJsZSAoRFZCLUMpIGFuZCB0ZXJyZXN0cmlhbCAoRFZCLVQpIHNpZ25hbHMuIEF0IGxlYXN0IG9u ZSBEVkIgY2FyZAogaXMgcmVxdWlyZWQgdG8gcnVuIFZEUi4KIAogJXBhY2thZ2UgICAgICAgIGRl dmVsCiBTdW1tYXJ5OiAgICAgICAgRGV2ZWxvcG1lbnQgZmlsZXMgZm9yIFZEUgorUmVxdWlyZXM6 ICAgICAgICV7bmFtZX0lez9faXNhfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQogUmVxdWlyZXM6 ICAgICAgIGdldHRleHQtcnVudGltZQogUHJvdmlkZXM6ICAgICAgIHZkci1kZXZlbChhcGkpID0g JXthcGl2ZXJ9CiAKICVkZXNjcmlwdGlvbiAgICBkZXZlbAotJXtzdW1tYXJ5fS4KK0hlYWRlcnMs IHBrZy1jb25maWcgZmlsZSBhbmQgUlBNIG1hY3JvcyBuZWVkZWQgdG8gYnVpbGQgVkRSIHBsdWdp bnMuCiAKICVwYWNrYWdlICAgICAgICBkb2NzCiBTdW1tYXJ5OiAgICAgICAgRGV2ZWxvcGVyIGRv Y3VtZW50YXRpb24gZm9yIFZEUgogQnVpbGRBcmNoOiAgICAgIG5vYXJjaAogCiAlZGVzY3JpcHRp b24gICAgZG9jcwotJXtzdW1tYXJ5fS4KLQotJXBhY2thZ2UgICAgICAgIGR2YmhkZGV2aWNlCi1T dW1tYXJ5OiAgICAgICAgVkRSIG91dHB1dCBkZXZpY2UgcGx1Z2luIGZvciBUZWNobm9UcmVuZCBT Mi02NDAwIERWQiBjYXJkcwotUmVxdWlyZXM6ICAgICAgIHZkcihhYmkpJXs/X2lzYX0gPSAle2Fw aXZlcn0KLQotJWRlc2NyaXB0aW9uICAgIGR2YmhkZGV2aWNlCi1UaGUgZHZiaGRkZXZpY2UgcGx1 Z2luIGltcGxlbWVudHMgYSBWRFIgb3V0cHV0IGRldmljZSBmb3IgdGhlICJGdWxsCi1GZWF0dXJl ZCBUZWNobm9UcmVuZCBTMi02NDAwIiBEVkIgY2FyZHMuCi0KLSVwYWNrYWdlICAgICAgICBkdmJz ZGRldmljZQotU3VtbWFyeTogICAgICAgIFZEUiBvdXRwdXQgZGV2aWNlIHBsdWdpbiBmb3IgZnVs bCBmZWF0dXJlZCBTRCBEVkIgY2FyZHMKLVJlcXVpcmVzOiAgICAgICB2ZHIoYWJpKSV7P19pc2F9 ID0gJXthcGl2ZXJ9Ci0jIFRvIGdldCB0aGlzIHN1YnBhY2thZ2UgcHVsbGVkIGluIG9uIHVwZ3Jh ZGVzCi1PYnNvbGV0ZXM6ICAgICAgdmRyIDwgMS43LjExCi0KLSVkZXNjcmlwdGlvbiAgICBkdmJz ZGRldmljZQotVGhlIGR2YnNkZGV2aWNlIHBsdWdpbiBpbXBsZW1lbnRzIHRoZSBvdXRwdXQgZGV2 aWNlIGZvciB0aGUgIkZ1bGwKLUZlYXR1cmVkIiBEVkIgY2FyZHMgYmFzZWQgb24gdGhlIFRlY2hu b1RyZW5kL0Z1aml0c3UtU2llbWVucyBkZXNpZ24uCi0KLSVwYWNrYWdlICAgICAgICByY3UKLVN1 bW1hcnk6ICAgICAgICBWRFIgcmVtb3RlIGNvbnRyb2wgdW5pdCBwbHVnaW4KLVJlcXVpcmVzOiAg ICAgICB2ZHIoYWJpKSV7P19pc2F9ID0gJXthcGl2ZXJ9Ci0jIFRvIGdldCB0aGlzIHN1YnBhY2th Z2UgcHVsbGVkIGluIG9uIHVwZ3JhZGVzCi1PYnNvbGV0ZXM6ICAgICAgdmRyIDwgMS43LjI1Ci0K LSVkZXNjcmlwdGlvbiAgICByY3UKLVRoZSByY3UgcGx1Z2luIGltcGxlbWVudHMgYSByZW1vdGUg Y29udHJvbCB1bml0IGZvciBWRFIuCitEZXZlbG9wZXIgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIFZE UiBjb3JlLCBnZW5lcmF0ZWQgZnJvbSBpdHMgc291cmNlcy4KIAogJXBhY2thZ2UgICAgICAgIHNr aW5jdXJzZXMKIFN1bW1hcnk6ICAgICAgICBTaGVsbCB3aW5kb3cgc2tpbiBwbHVnaW4gZm9yIFZE UgotQnVpbGRSZXF1aXJlczogIG5jdXJzZXMtZGV2ZWwKIFJlcXVpcmVzOiAgICAgICB2ZHIoYWJp KSV7P19pc2F9ID0gJXthcGl2ZXJ9CiAKICVkZXNjcmlwdGlvbiAgICBza2luY3Vyc2VzCkBAIC0x NjIsNjcgKzEwOCwyNSBAQCB3aW5kb3csIHVzaW5nIG9ubHkgcGxhaW4gdGV4dCBvdXRwdXQuCiAK IAogJXByZXAKLSVzZXR1cCAtcSAtYSAxOAotIyBkdmJoZGRldmljZQotdW56aXAgLW8gJXtTT1VS Q0UzMH0gLWQgJFJQTV9CVUlMRF9ESVIvdmRyLSV7dmVyc2lvbn0vUExVR0lOUy9zcmMKLW12ICRS UE1fQlVJTERfRElSL3Zkci0le3ZlcnNpb259L1BMVUdJTlMvc3JjL3Bvd0FSbWFuLWR2YmhkZGV2 aWNlLTM0NzNhN2I5MzlkNyAkUlBNX0JVSUxEX0RJUi92ZHItJXt2ZXJzaW9ufS9QTFVHSU5TL3Ny Yy9kdmJoZGRldmljZQotY2QgUExVR0lOUy9zcmMKLSVwYXRjaCAwIC1wMwotY2QgLi4vLi4KLSMg ZHZic2RkZXZpY2UKLXRhciAteHpmICV7U09VUkNFMzF9IC1DICRSUE1fQlVJTERfRElSL3Zkci0l e3ZlcnNpb259L1BMVUdJTlMvc3JjCi1tdiAkUlBNX0JVSUxEX0RJUi92ZHItJXt2ZXJzaW9ufS9Q TFVHSU5TL3NyYy9kdmJzZGRldmljZS0yLjIuMCAkUlBNX0JVSUxEX0RJUi92ZHItJXt2ZXJzaW9u fS9QTFVHSU5TL3NyYy9kdmJzZGRldmljZQotIyByY3UKLXRhciAteHpmICV7U09VUkNFMzJ9IC1D ICRSUE1fQlVJTERfRElSL3Zkci0le3ZlcnNpb259L1BMVUdJTlMvc3JjCi1tdiAkUlBNX0JVSUxE X0RJUi92ZHItJXt2ZXJzaW9ufS9QTFVHSU5TL3NyYy9yY3UtMi4yLjAgJFJQTV9CVUlMRF9ESVIv dmRyLSV7dmVyc2lvbn0vUExVR0lOUy9zcmMvcmN1Ci0KLSVwYXRjaCAxIC1wMQotIyBzb3J0X29w dGlvbnMgd291bGQgYmUgbmljZSwgYnV0IGl0IGNvbmZsaWN0cyB3aXRoIGNoYW5uZWwrZXBnIHdo aWNoIGlzIG5pY2VyCi0jcGF0Y2ggLUYgMCAtaSBkZWJpYW4vcGF0Y2hlcy8wMl9zb3J0X29wdGlv bnMuZHBhdGNoCi0jIFRPRE86IGRvZXMgbm90IGFwcGx5IHNpbmNlIDEuNy4yNAotI3BhdGNoIC1G IDAgLWkgZGViaWFuL3BhdGNoZXMvMDZfcmVjb3JkaW5nX3NjYW5fc3BlZWR1cC5kcGF0Y2gKLXBh dGNoIC1GIDIgLWkgZGViaWFuL3BhdGNoZXMvMDdfYmxvY2tpZnlfZGVmaW5lLmRwYXRjaAotJXBh dGNoIDMgLXAxCi1zZWQgXAotICAgIC1lICdzfF9fQ0FDSEVESVJfX3wle2NhY2hlZGlyfXwnICAg XAotICAgIC1lICdzfF9fQ09ORklHRElSX198JXtjb25maWdkaXJ9fCcgXAotICAgIC1lICdzfF9f UExVR0lORElSX198JXtwbHVnaW5kaXJ9fCcgXAotICAgIC1lICdzfF9fVkFSRElSX198JXt2YXJk aXJ9fCcgICAgICAgXAotICAgIC1lICdzfF9fVklERU9ESVJfX3wle3ZpZGVvZGlyfXwnICAgXAot ICAgICV7UEFUQ0g0fSB8ICV7X19wYXRjaH0gLXAxCi0lcGF0Y2ggNSAtcDEKLSVwYXRjaCA2IC1w MQotJXBhdGNoIDExIC1wMQotJXBhdGNoIDk5IC1wMQotCi0jIFBhdGNoIEFQSVZFUlNJT04gVE8g Mi40LjggdG8gbWF0Y2ggVkRSVkVSU0lPTgotIyBzZWQgLWkgJ3MvMlwuNFwuMy8yLjQuOC8nIGNv bmZpZy5oCi0jIHNlZCAtaSAncy8yMDQwNi8yMDQwNy8nIGNvbmZpZy5oCi0KLWZvciBmIGluIENP TlRSSUJVVE9SUyBISVNUT1JZIFVQREFURS0xLjQuMCBcCi0gICAgUExVR0lOUy9zcmMvZHZiaGRk ZXZpY2UvSElTVE9SWTsgZG8KKyVhdXRvc2V0dXAgLXAxCisKK2ZvciBmIGluIENPTlRSSUJVVE9S UyBISVNUT1JZIDsgZG8KICAgICBpY29udiAtZiBpc28tODg1OS0xIC10IHV0Zi04IC1vICRmLnV0 ZjggJGYgJiYgbXYgJGYudXRmOCAkZgogZG9uZQogCiBjcCAtcCAle1NPVVJDRTV9IHJlY2NtZHMu Y29uZgotY3AgLXAgJXtTT1VSQ0UxM30gdGltZXJjbWRzLmNvbmYKIGNwIC1wICV7U09VUkNFNn0g Y29tbWFuZHMuY29uZgotIyBVbmZvcnR1bmF0ZWx5IHRoZXNlIGNhbid0IGhhdmUgY29tbWVudHMg aW4gdGhlbSwgc28gc2hpcCAnZW0gZW1wdHkuCi1jYXQgL2Rldi9udWxsID4gY2hhbm5lbHMuY29u ZgotY2F0IC9kZXYvbnVsbCA+IHJlbW90ZS5jb25mCi1jYXQgL2Rldi9udWxsID4gc2V0dXAuY29u ZgotY2F0IC9kZXYvbnVsbCA+IHRpbWVycy5jb25mCi0KLWluc3RhbGwgLXBtIDY0NCAle1NPVVJD RTEwfSBSRUFETUUucGFja2FnZQotaW5zdGFsbCAtcG0gNjQ0ICV7U09VUkNFMTZ9IENIQU5HRVMu cGFja2FnZS5vbGQKLQotIyBXb3VsZCBsaWtlIHRvIGRvICJmaWxlcyB7Y2hhbm5lbHMsc2V0dXAs dGltZXJzfS5jb25mIiBmcm9tIGNvbmZpZyBkaXIKLSMgb25seSwgYnV0IHJlbmFtZSgpIGluIGNT YWZlRmlsZSBiYXJrcyAiZGV2aWNlIG9yIHJlc291cmNlIGJ1c3kiLCBjZi4KLSMgaHR0cDovL2xp c3RzLnN1c2UuY29tL2FyY2hpdmUvc3VzZS1wcm9ncmFtbWluZy1lLzIwMDMtTWFyLzAwNTEuaHRt bAotY2F0IDw8IEVPRiA+ICV7bmFtZX0ucnd0YWIKLWRpcnMgICAgJXtjYWNoZWRpcn0KLWZpbGVz ICAgJXtjb25maWdkaXJ9Ci1maWxlcyAgICV7dmFyZGlyfQorY3AgLXAgJXtTT1VSQ0U3fSB0aW1l cmNtZHMuY29uZgoraW5zdGFsbCAtcG0gNjQ0ICV7U09VUkNFOX0gUkVBRE1FLnBhY2thZ2UKKwor cHJpbnRmICdcbicgPiBjaGFubmVscy5jb25mCitwcmludGYgJ1xuJyA+IHJlbW90ZS5jb25mCitw cmludGYgJ1xuJyA+IHNldHVwLmNvbmYKK3ByaW50ZiAnXG4nID4gdGltZXJzLmNvbmYKKworY2F0 IDw8IEVPRiA+ICV7bmFtZX0uc3lzdXNlcnMKK3UgJXt2ZHJfdXNlcn0gLTole3Zkcl9ncm91cH0g J1ZpZGVvIERpc2sgUmVjb3JkZXInICV7dmFyZGlyfSAtCittICV7dmRyX3VzZXJ9IGF1ZGlvCiBF T0YKIAogIyBEaXNhYmxlIHNvbWUgZ3JhcGhzIHRoYXQgZW5kIHVwIHRvbyBiaWcgdG8gYmUgdXNl ZnVsLgpAQCAtMjMwLDEzICsxMzQsNiBAQCBmb3IgZyBpbiBDT0xMQUJPUkFUSU9OIElOQ0xVREUg SU5DTFVERURfQlkgOyBkbwogICAgIHNlZCAtaSAtZSAncy9eXChccyonJGcnX0dSQVBIXHMqPVxz KlwpLiovXDFOTy8nIERveHlmaWxlCiBkb25lCiAKLSMgQ3JlYXRlIGEgc3lzdXNlcnMuZCBjb25m aWcgZmlsZQotY2F0ID52ZHIuc3lzdXNlcnMuY29uZiA8PEVPRgotdSB2ZHIgLTole3Zkcl9ncm91 cH0gJ1ZpZGVvIERpc2sgUmVjb3JkZXInICV7dmFyZGlyfSAtCi1tIHZkciBhdWRpbwotbSB2ZHIg Y2Ryb20KLW0gdmRyIGRpYWxvdXQKLUVPRgogCiAlYnVpbGQKIGNhdCA8PCBFT0YgPiBNYWtlLmNv bmZpZwpAQCAtMjQ1LDcgKzE0Miw3IEBAIENYWCAgICAgICAgICA9ICV7X19jeHh9CiAKIENGTEFH UyAgICAgICA9IFwkKHNoZWxsIHBrZy1jb25maWcgdmRyIC0tdmFyaWFibGU9Y2ZsYWdzKQogQ1hY RkxBR1MgICAgID0gXCQoc2hlbGwgcGtnLWNvbmZpZyB2ZHIgLS12YXJpYWJsZT1jeHhmbGFncykK LUxERkxBR1MgICAgICA9ICRSUE1fTERfRkxBR1MKK0xERkxBR1MgICAgICA9ICV7YnVpbGRfbGRm bGFnc30KIAogUFJFRklYICAgICAgID0gJXtfcHJlZml4fQogTUFORElSICAgICAgID0gXCQoc2hl bGwgcGtnLWNvbmZpZyB2ZHIgLS12YXJpYWJsZT1tYW5kaXIpCkBAIC0yNjEsMTQgKzE1OCwxMyBA QCBJTkNESVIgICAgICAgPSAle19pbmNsdWRlZGlyfQogTElCRElSICAgICAgID0gXCQoUExVR0lO TElCRElSKQogCiBQTEdDRkcgICAgICAgPSBcJChMSUJESVIpL3BsdWdpbnMubWsKLUxJUkNfREVW SUNFICA9ICV7X2xvY2Fsc3RhdGVkaXJ9L3J1bi9saXJjL2xpcmNkCi0jIE5ldyBCdWcgMTg3MzAy NyBMSVJDX0RFVklDRSAgPSAvcnVuL2xpcmMvbGlyY2QKK0xJUkNfREVWSUNFICA9IC9ydW4vbGly Yy9saXJjZAogVkRSX1VTRVIgICAgID0gXCQoc2hlbGwgcGtnLWNvbmZpZyB2ZHIgLS12YXJpYWJs ZT11c2VyKQogU0ROT1RJRlkgICAgID0gMQogRU9GCiAKIGNhdCA8PCBFT0YgPiBwbHVnaW5zLm1r Ci1MREZMQUdTID0gJFJQTV9MRF9GTEFHUworTERGTEFHUyA9ICV7YnVpbGRfbGRmbGFnc30KIEVP RgogCiBjcCBwbHVnaW5zLm1rIGJ1bmRsZWQtcGx1Z2lucy5tawpAQCAtMjc3LDIyICsxNzMsMjAg QEAgQ0ZMQUdTICs9IC1JJFBXRC9pbmNsdWRlCiBDWFhGTEFHUyArPSAtSSRQV0QvaW5jbHVkZQog RU9GCiAKLWNmbGFncz0iJHtSUE1fT1BUX0ZMQUdTLy1PMi8tTzN9IC1mUElDIiAjIHNlZSBISVNU T1JZIGZvciAxLjcuMTcgZm9yIC1PMworY2ZsYWdzPSIle2J1aWxkX2NmbGFnc30gLWZQSUMiCiAK IG1ha2UgdmRyLnBjIEJJTkRJUj0le19iaW5kaXJ9IE1BTkRJUj0le19tYW5kaXJ9IENPTkZESVI9 JXtjb25maWdkaXJ9IFwKICAgICBWSURFT0RJUj0le3ZpZGVvZGlyfSBDQUNIRURJUj0le2NhY2hl ZGlyfSBSRVNESVI9JXtfZGF0YWRpcn0vdmRyIFwKICAgICBMSUJESVI9JXtwbHVnaW5kaXJ9IExP Q0RJUj0le19kYXRhZGlyfS9sb2NhbGUgUlVORElSPSV7cnVuZGlyfSBcCiAgICAgVkFSRElSPSV7 dmFyZGlyfSBWRFJfVVNFUj0le3Zkcl91c2VyfSBWRFJfR1JPVVA9JXt2ZHJfZ3JvdXB9IFwKLSAg ICBMREZMQUdTPSIkUlBNX0xEX0ZMQUdTIiBDRkxBR1M9IiRjZmxhZ3MiIFwKKyAgICBMREZMQUdT PSIle2J1aWxkX2xkZmxhZ3N9IiBDRkxBR1M9IiRjZmxhZ3MiIFwKICAgICBDWFhGTEFHUz0iJGNm bGFncyAtV2Vycm9yPW92ZXJsb2FkZWQtdmlydHVhbCAtV25vLXBhcmVudGhlc2VzIgogCiBQS0df Q09ORklHX1BBVEg9IiRQV0Q6JFBLR19DT05GSUdfUEFUSCIgXAogJW1ha2VfYnVpbGQgdmRyIGlu Y2x1ZGUtZGlyIGkxOG4KIAotZm9yIHBsdWdpbiBpbiBkdmJoZGRldmljZSBkdmJzZGRldmljZSBy Y3Ugc2tpbmN1cnNlcyA7IGRvCi0gICAgJW1ha2VfYnVpbGQgLUMgUExVR0lOUy9zcmMvJHBsdWdp biBWRFJESVI9JFBXRCBcCi0gICAgICAgIFBMR0NGRz0kUFdEL2J1bmRsZWQtcGx1Z2lucy5tayBh bGwKLWRvbmUKKyVtYWtlX2J1aWxkIC1DIFBMVUdJTlMvc3JjL3NraW5jdXJzZXMgVkRSRElSPSRQ V0QgXAorICAgIFBMR0NGRz0kUFdEL2J1bmRsZWQtcGx1Z2lucy5tayBhbGwKIAogJWlmICV7d2l0 aCBkb2NzfQogJW1ha2VfYnVpbGQgc3JjZG9jCkBAIC0zMDEsMTU0ICsxOTUsMTIyIEBAIGRvbmUK IAogJWluc3RhbGwKICMgTm90IHVzaW5nIHRoZSBpbnN0YWxsLXBjIHRhcmdldCB0byBwcmVzZXJ2 ZSBvdXIgYWxyZWFkeSBnb29kIHZkci5wYwotaW5zdGFsbCAtRHBtIDY0NCB2ZHIucGMgJFJQTV9C VUlMRF9ST09UJXtfbGliZGlyfS9wa2djb25maWcvdmRyLnBjCitpbnN0YWxsIC1EcG0gNjQ0IHZk ci5wYyAle2J1aWxkcm9vdH0le19saWJkaXJ9L3BrZ2NvbmZpZy92ZHIucGMKIAotUEtHX0NPTkZJ R19QQVRIPSIkUlBNX0JVSUxEX1JPT1Qle19saWJkaXJ9L3BrZ2NvbmZpZzokUEtHX0NPTkZJR19Q QVRIIiBcCitQS0dfQ09ORklHX1BBVEg9IiV7YnVpbGRyb290fSV7X2xpYmRpcn0vcGtnY29uZmln OiRQS0dfQ09ORklHX1BBVEgiIFwKIG1ha2UgaW5zdGFsbC1iaW4gaW5zdGFsbC1kaXJzIGluc3Rh bGwtY29uZiBpbnN0YWxsLWRvYyBpbnN0YWxsLWkxOG4gXAotICAgIGluc3RhbGwtaW5jbHVkZXMg REVTVERJUj0kUlBNX0JVSUxEX1JPT1QKLQotaW5zdGFsbCAtcG0gNzU1IGVwZzJodG1sICRSUE1f QlVJTERfUk9PVCV7X2JpbmRpcn0KLWluc3RhbGwgLWRtIDc1NSAkUlBNX0JVSUxEX1JPT1Qle19z YmluZGlyfQotI212ICRSUE1fQlVJTERfUk9PVCV7X2JpbmRpcn0vdmRyICRSUE1fQlVJTERfUk9P VCV7X3NiaW5kaXJ9CisgICAgaW5zdGFsbC1pbmNsdWRlcyBERVNURElSPSV7YnVpbGRyb290fQog Ci0jIEF2b2lkIG12IGVycm9yIGJ5IGNoZWNraW5nIGlmIHNvdXJjZSBhbmQgZGVzdGluYXRpb24g YXJlIHRoZSBzYW1lCi1pZiBbICIkUlBNX0JVSUxEX1JPT1Qle19iaW5kaXJ9L3ZkciIgIT0gIiRS UE1fQlVJTERfUk9PVCV7X3NiaW5kaXJ9L3ZkciIgXTsgdGhlbgotICAgIG12ICRSUE1fQlVJTERf Uk9PVCV7X2JpbmRpcn0vdmRyICRSUE1fQlVJTERfUk9PVCV7X3NiaW5kaXJ9Ci1maQoraW5zdGFs bCAtcG0gNzU1IGVwZzJodG1sICV7YnVpbGRyb290fSV7X2JpbmRpcn0KIAotaW5zdGFsbCAtZG0g NzU1ICRSUE1fQlVJTERfUk9PVCV7Y29uZmlnZGlyfS9wbHVnaW5zCitpbnN0YWxsIC1kbSA3NTUg JXtidWlsZHJvb3R9JXtjb25maWdkaXJ9L3BsdWdpbnMKK2luc3RhbGwgLWRtIDc1NSAle2J1aWxk cm9vdH0le19zeXNjb25mZGlyfS9zeXNjb25maWcvdmRyLXBsdWdpbnMuZAoraW5zdGFsbCAtZG0g NzU1ICV7YnVpbGRyb290fSV7dmFyZGlyfQoraW5zdGFsbCAtZG0gNzU1ICV7YnVpbGRyb290fSV7 Y29uZmlnZGlyfS90aGVtZXMKK2luc3RhbGwgLWRtIDc1NSAle2J1aWxkcm9vdH0le19kYXRhZGly fS92ZHIve2xvZ29zLHBsdWdpbnN9CitpbnN0YWxsIC1kbSA3NTUgJXtidWlsZHJvb3R9JXtwbHVn aW5kaXJ9L2JpbgogCi1pbnN0YWxsIC1kbSA3NTUgJFJQTV9CVUlMRF9ST09UJXtfc3lzY29uZmRp cn0vc3lzY29uZmlnL3Zkci1wbHVnaW5zLmQKK3RvdWNoICV7YnVpbGRyb290fSV7Y29uZmlnZGly fS90aGVtZXMve2NsYXNzaWMsc3R0bmd9LWRlZmF1bHQudGhlbWUKK3RvdWNoICV7YnVpbGRyb290 fSV7dmlkZW9kaXJ9Ly51cGRhdGUKK3RvdWNoICV7YnVpbGRyb290fSV7Y2FjaGVkaXJ9L2VwZy5k YXRhCiAKLWluc3RhbGwgLWRtIDc1NSAkUlBNX0JVSUxEX1JPT1Qle3ZhcmRpcn0vdGhlbWVzCi10 b3VjaCAkUlBNX0JVSUxEX1JPT1Qle3ZhcmRpcn0vdGhlbWVzL3tjbGFzc2ljLHN0dG5nfS1kZWZh dWx0LnRoZW1lCi0KLWluc3RhbGwgLXBtIDc1NSAle1NPVVJDRTd9ICRSUE1fQlVJTERfUk9PVCV7 X3NiaW5kaXJ9L3J1bnZkcgoraW5zdGFsbCAtcG0gNzU1ICV7U09VUkNFMTB9ICV7YnVpbGRyb290 fSV7X2JpbmRpcn0vcnVudmRyCiBzZWQgLWkgXAotICAgIC1lICdzfC91c3Ivc2Jpbi98JXtfc2Jp bmRpcn0vfCcgICAgICAgICAgICAgICAgICAgIFwKKyAgICAtZSAnc3wvdXNyL3NiaW4vfCV7X2Jp bmRpcn0vfCcgICAgICAgICAgICAgICAgICAgICBcCiAgICAgLWUgJ3N8L2V0Yy9zeXNjb25maWcv fCV7X3N5c2NvbmZkaXJ9L3N5c2NvbmZpZy98ZycgXAogICAgIC1lICdzfC91c3IvbGliL3Zkclxi fCV7cGx1Z2luZGlyfXwnICAgICAgICAgICAgICAgIFwKICAgICAtZSAnc3xWRFJfUExVR0lOX1ZF UlNJT058JXthcGl2ZXJ9fCcgICAgICAgICAgICAgICBcCi0gICAgJFJQTV9CVUlMRF9ST09UJXtf c2JpbmRpcn0vcnVudmRyCisgICAgJXtidWlsZHJvb3R9JXtfYmluZGlyfS9ydW52ZHIKIAotaW5z dGFsbCAtRG0gNjQ0ICV7U09VUkNFMn0gJFJQTV9CVUlMRF9ST09UJXtfc3lzY29uZmRpcn0vc3lz Y29uZmlnL3ZkcgoraW5zdGFsbCAtRHBtIDY0NCAle1NPVVJDRTJ9ICV7YnVpbGRyb290fSV7X3N5 c2NvbmZkaXJ9L3N5c2NvbmZpZy92ZHIKIHNlZCAtaSBcCiAgICAgLWUgJ3N8L3Vzci9saWIvdmRy L3wle3BsdWdpbmRpcn0vfCcgXAotICAgICRSUE1fQlVJTERfUk9PVCV7X3N5c2NvbmZkaXJ9L3N5 c2NvbmZpZy92ZHIKLQotdG91Y2ggJFJQTV9CVUlMRF9ST09UJXt2aWRlb2Rpcn0vLnVwZGF0ZQor ICAgICV7YnVpbGRyb290fSV7X3N5c2NvbmZkaXJ9L3N5c2NvbmZpZy92ZHIKIAotaW5zdGFsbCAt ZG0gNzU1ICRSUE1fQlVJTERfUk9PVCV7cGx1Z2luZGlyfS9iaW4KLQotaW5zdGFsbCAtbSA3NTUg JXtTT1VSQ0UxNH0gJFJQTV9CVUlMRF9ST09UJXtwbHVnaW5kaXJ9L2Jpbi8le25hbWV9LXNodXRk b3duLnNoCitpbnN0YWxsIC1wbSA3NTUgJXtTT1VSQ0UxMn0gJXtidWlsZHJvb3R9JXtwbHVnaW5k aXJ9L2Jpbi8le25hbWV9LXNodXRkb3duLnNoCiBzZWQgLWkgXAogICAgIC1lICdzfC9ldGMvc3lz Y29uZmlnL3wle19zeXNjb25mZGlyfS9zeXNjb25maWcvfCcgXAogICAgIC1lICdzfC92YXIvcnVu L3Zkci98JXtydW5kaXJ9L3wnICAgICAgICAgICAgICAgICAgXAotICAgICRSUE1fQlVJTERfUk9P VCV7cGx1Z2luZGlyfS9iaW4vJXtuYW1lfS1zaHV0ZG93bi5zaAorICAgIC1lICdzfC91c3IvbGli L3Zkci98JXtwbHVnaW5kaXJ9L3wnICAgICAgICAgICAgICAgXAorICAgICV7YnVpbGRyb290fSV7 cGx1Z2luZGlyfS9iaW4vJXtuYW1lfS1zaHV0ZG93bi5zaAogCi1pbnN0YWxsIC1tIDc1NSAle1NP VVJDRTE1fSAkUlBNX0JVSUxEX1JPT1Qle3BsdWdpbmRpcn0vYmluLyV7bmFtZX0tbW92ZXRvLnNo CitpbnN0YWxsIC1wbSA3NTUgJXtTT1VSQ0UxM30gJXtidWlsZHJvb3R9JXtwbHVnaW5kaXJ9L2Jp bi8le25hbWV9LW1vdmV0by5zaAogc2VkIC1pIFwKICAgICAtZSAnc3wvdmFyL2xpYi92ZHIvdmlk ZW98JXt2aWRlb2Rpcn18JyBcCiAgICAgLWUgJ3N8L2V0Yy92ZHIvfCV7Y29uZmlnZGlyfS98JyAg ICAgICAgXAotICAgICRSUE1fQlVJTERfUk9PVCV7cGx1Z2luZGlyfS9iaW4vJXtuYW1lfS1tb3Zl dG8uc2gKKyAgICAle2J1aWxkcm9vdH0le3BsdWdpbmRpcn0vYmluLyV7bmFtZX0tbW92ZXRvLnNo CiAKLWluc3RhbGwgLW0gNzU1ICV7U09VUkNFMTl9ICRSUE1fQlVJTERfUk9PVCV7cGx1Z2luZGly fS9iaW4vJXtuYW1lfS1jaGVjay1zZXR1cAoraW5zdGFsbCAtcG0gNzU1ICV7U09VUkNFMTR9ICV7 YnVpbGRyb290fSV7cGx1Z2luZGlyfS9iaW4vJXtuYW1lfS1jaGVjay1zZXR1cAogc2VkIC1pIFwK ICAgICAtZSAnc3wvZXRjL3Zkci98JXtjb25maWdkaXJ9L3wnIFwKICAgICAtZSAnc3xWRFJfVVNF Unwle3Zkcl91c2VyfXwnICAgIFwKICAgICAtZSAnc3xWRFJfR1JPVVB8JXt2ZHJfZ3JvdXB9fCcg IFwKLSAgICAkUlBNX0JVSUxEX1JPT1Qle3BsdWdpbmRpcn0vYmluLyV7bmFtZX0tY2hlY2stc2V0 dXAKKyAgICAle2J1aWxkcm9vdH0le3BsdWdpbmRpcn0vYmluLyV7bmFtZX0tY2hlY2stc2V0dXAK IAotaW5zdGFsbCAtbSA3NTUgJXtTT1VSQ0UyMX0gJFJQTV9CVUlMRF9ST09UJXtwbHVnaW5kaXJ9 L2Jpbi8le25hbWV9LXNldC13YWtldXAKK2luc3RhbGwgLXBtIDc1NSAle1NPVVJDRTE1fSAle2J1 aWxkcm9vdH0le3BsdWdpbmRpcn0vYmluLyV7bmFtZX0tc2V0LXdha2V1cAogc2VkIC1pIFwKLSAg ICAtZSAnc3wvdXNyL3NiaW4vfCV7X3NiaW5kaXJ9L3wnICBcCisgICAgLWUgJ3N8L3Vzci9zYmlu L3wle19iaW5kaXJ9L3wnICAgXAogICAgIC1lICdzfC92YXIvcnVuL3Zkci98JXtydW5kaXJ9L3wn IFwKLSAgICAkUlBNX0JVSUxEX1JPT1Qle3BsdWdpbmRpcn0vYmluLyV7bmFtZX0tc2V0LXdha2V1 cAorICAgICV7YnVpbGRyb290fSV7cGx1Z2luZGlyfS9iaW4vJXtuYW1lfS1zZXQtd2FrZXVwCiAK LWluc3RhbGwgLURtIDY0NCAle1NPVVJDRTF9ICRSUE1fQlVJTERfUk9PVCV7X3VuaXRkaXJ9LyV7 bmFtZX0uc2VydmljZQoraW5zdGFsbCAtRHBtIDY0NCAle1NPVVJDRTF9ICV7YnVpbGRyb290fSV7 X3VuaXRkaXJ9LyV7bmFtZX0uc2VydmljZQogc2VkIC1pIFwKICAgICAtZSAnc3wvdXNyL2xpYi92 ZHIvfCV7cGx1Z2luZGlyfS98JyAgICAgICAgXAotICAgIC1lICdzfC91c3Ivc2Jpbi98JXtfc2Jp bmRpcn0vfCcgICAgICAgICAgICBcCisgICAgLWUgJ3N8L3Vzci9zYmluL3wle19iaW5kaXJ9L3wn ICAgICAgICAgICAgIFwKICAgICAtZSAnc3wvdXNyL3NoYXJlL2RvYy92ZHIvfCV7X3BrZ2RvY2Rp cn0vfCcgXAotICAgICRSUE1fQlVJTERfUk9PVCV7X3VuaXRkaXJ9LyV7bmFtZX0uc2VydmljZQot Ci1pbnN0YWxsIC1EcG0gNDQwICV7U09VUkNFM30gJFJQTV9CVUlMRF9ST09UJXtfc3lzY29uZmRp cn0vc3Vkb2Vycy5kL3ZkcgotCi10b3VjaCAkUlBNX0JVSUxEX1JPT1Qle2NhY2hlZGlyfS9lcGcu ZGF0YQotaW5zdGFsbCAtZG0gNzU1ICRSUE1fQlVJTERfUk9PVCV7X2RhdGFkaXJ9L3Zkci97bG9n b3MscGx1Z2luc30KLWluc3RhbGwgLWRtIDc1NSAkUlBNX0JVSUxEX1JPT1Qle3J1bmRpcn0KLXRv dWNoICRSUE1fQlVJTERfUk9PVCV7cnVuZGlyfS9uZXh0LXRpbWVyCi1pbnN0YWxsIC1kbSA3NTUg JFJQTV9CVUlMRF9ST09UJXt2YXJkaXJ9CisgICAgJXtidWlsZHJvb3R9JXtfdW5pdGRpcn0vJXtu YW1lfS5zZXJ2aWNlCiAKLWluc3RhbGwgLURwbSA2NDQgJXtuYW1lfS5yd3RhYiAkUlBNX0JVSUxE X1JPT1Qle19zeXNjb25mZGlyfS9yd3RhYi5kLyV7bmFtZX0KK2luc3RhbGwgLURwbSA0NDAgJXtT T1VSQ0UzfSAle2J1aWxkcm9vdH0le19zeXNjb25mZGlyfS9zdWRvZXJzLmQvdmRyCitzZWQgLWkg XAorICAgIC1lICdzfC91c3IvbGliL3Zkci98JXtwbHVnaW5kaXJ9L3wnIFwKKyAgICAle2J1aWxk cm9vdH0le19zeXNjb25mZGlyfS9zdWRvZXJzLmQvdmRyCitpbnN0YWxsIC1EcG0gNjQ0ICV7bmFt ZX0uc3lzdXNlcnMgJXtidWlsZHJvb3R9JXtfc3lzdXNlcnNkaXJ9LyV7bmFtZX0uY29uZgogCi1p bnN0YWxsIC1kbSA3NTUgJFJQTV9CVUlMRF9ST09UJXtfcGtnZG9jZGlyfQotaW5zdGFsbCAtcG0g NjQ0IENIQU5HRVMucGFja2FnZS5vbGQgQ09OVFJJQlVUT1JTIFwKLSAgICBISVNUT1JZKiBJTlNU QUxMIE1BTlVBTCBQTFVHSU5TLmh0bWwgUkVBRE1FKiBVUERBVEUtPy4/LjAgXAotICAgICRSUE1f QlVJTERfUk9PVCV7X3BrZ2RvY2Rpcn0KK2luc3RhbGwgLWRtIDc1NSAle2J1aWxkcm9vdH0le19w a2dkb2NkaXJ9CitpbnN0YWxsIC1wbSA2NDQgQ09OVFJJQlVUT1JTIEhJU1RPUlkqIElOU1RBTEwg TUFOVUFMIFBMVUdJTlMuaHRtbCBcCisgICAgUkVBRE1FKiAle2J1aWxkcm9vdH0le19wa2dkb2Nk aXJ9CiAlaWYgJXt3aXRoIGRvY3N9Ci1jcCAtcFIgc3JjZG9jL2h0bWwgJFJQTV9CVUlMRF9ST09U JXtfcGtnZG9jZGlyfQorY3AgLXBSIHNyY2RvYy9odG1sICV7YnVpbGRyb290fSV7X3BrZ2RvY2Rp cn0KICVlbmRpZgogCiAjIGRldmVsCiAKLWFiczJyZWwoKSB7IHBlcmwgLU1GaWxlOjpTcGVjIC1l ICdwcmludCBGaWxlOjpTcGVjLT5hYnMycmVsKEBBUkdWKScgIiRAIiA7IH0KLQotaW5zdGFsbCAt cG0gNzU1ICV7U09VUkNFOX0gJFJQTV9CVUlMRF9ST09UJXtfYmluZGlyfS92ZHItY29uZmlnCi1p bnN0YWxsIC1wbSA3NTUgbmV3cGx1Z2luICRSUE1fQlVJTERfUk9PVCV7X2JpbmRpcn0vdmRyLW5l d3BsdWdpbgotaW5zdGFsbCAtcG0gNjQ0IE1ha2Uue2NvbmZpZyxnbG9iYWx9IHBsdWdpbnMubWsg JFJQTV9CVUlMRF9ST09UJXtfbGliZGlyfS92ZHIKLWxuIC1zICQoYWJzMnJlbCAle19pbmNsdWRl ZGlyfS92ZHIvY29uZmlnLmggJXtfbGliZGlyfS92ZHIpIFwKLSAgICAkUlBNX0JVSUxEX1JPT1Ql e19saWJkaXJ9L3ZkcgotbWFjcm9kaXI9JXtfc3lzY29uZmRpcn0vcnBtCi1bIC1kICV7X3JwbWNv bmZpZ2Rpcn0vbWFjcm9zLmQgXSAmJiBtYWNyb2Rpcj0le19ycG1jb25maWdkaXJ9L21hY3Jvcy5k Ci1pbnN0YWxsIC1EcG0gNjQ0ICV7U09VUkNFMTd9ICRSUE1fQlVJTERfUk9PVCRtYWNyb2Rpci9t YWNyb3MudmRyCi1lY2hvICRtYWNyb2Rpci9tYWNyb3MudmRyID4gJXtuYW1lfS1kZXZlbC5maWxl cwotCi0jIGkxOG4KLQotJWZpbmRfbGFuZyAle25hbWV9Ci1zZWQgLWkgLWUgJzFpJSVkZWZhdHRy KC0scm9vdCxyb290LC0pJyAle25hbWV9LmxhbmcKLQotaW5zdGFsbCAtZG0gNzU1ICRSUE1fQlVJ TERfUk9PVCV7X3ByZWZpeH0vbGliL3RtcGZpbGVzLmQKLWVjaG8gImQgJXtydW5kaXJ9IDA3NTUg JXt2ZHJfdXNlcn0gcm9vdCAtIiBcCi0gICAgPiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2xp Yi90bXBmaWxlcy5kLyV7bmFtZX0uY29uZgotZWNobyAiJXtfcHJlZml4fS9saWIvdG1wZmlsZXMu ZC8le25hbWV9LmNvbmYiIFwKLSAgICA+PiAle25hbWV9LmxhbmcKLQoraW5zdGFsbCAtcG0gNzU1 ICV7U09VUkNFMTF9ICV7YnVpbGRyb290fSV7X2JpbmRpcn0vdmRyLWNvbmZpZworaW5zdGFsbCAt cG0gNzU1IG5ld3BsdWdpbiAle2J1aWxkcm9vdH0le19iaW5kaXJ9L3Zkci1uZXdwbHVnaW4KK2lu c3RhbGwgLXBtIDY0NCBNYWtlLntjb25maWcsZ2xvYmFsfSBwbHVnaW5zLm1rICV7YnVpbGRyb290 fSV7cGx1Z2luZGlyfQorbG4gLXNyICV7YnVpbGRyb290fSV7X2luY2x1ZGVkaXJ9L3Zkci9jb25m aWcuaCAle2J1aWxkcm9vdH0le3BsdWdpbmRpcn0KK2luc3RhbGwgLURwbSA2NDQgJXtTT1VSQ0U0 fSAle2J1aWxkcm9vdH0le19ycG1tYWNyb2Rpcn0vbWFjcm9zLnZkcgogCiAjIHBsdWdpbnMKIAot JW1ha2VfaW5zdGFsbCAtQyBQTFVHSU5TL3NyYy9kdmJoZGRldmljZQotaW5zdGFsbCAtcG0gNjQ0 ICV7U09VUkNFMTJ9IFwKLSAgICAkUlBNX0JVSUxEX1JPT1Qle19zeXNjb25mZGlyfS9zeXNjb25m aWcvdmRyLXBsdWdpbnMuZC9kdmJoZGRldmljZS5jb25mCi0lZmluZF9sYW5nICV7bmFtZX0tZHZi aGRkZXZpY2UKLQotJW1ha2VfaW5zdGFsbCAtQyBQTFVHSU5TL3NyYy9kdmJzZGRldmljZQorJW1h a2VfaW5zdGFsbCAtQyBQTFVHSU5TL3NyYy9za2luY3Vyc2VzCiBpbnN0YWxsIC1wbSA2NDQgJXtT T1VSQ0U4fSBcCi0gICAgJFJQTV9CVUlMRF9ST09UJXtfc3lzY29uZmRpcn0vc3lzY29uZmlnL3Zk ci1wbHVnaW5zLmQvZHZic2RkZXZpY2UuY29uZgotCi0lbWFrZV9pbnN0YWxsIC1DIFBMVUdJTlMv c3JjL3JjdQotaW5zdGFsbCAtcG0gNjQ0ICV7U09VUkNFMjB9IFwKLSAgICAkUlBNX0JVSUxEX1JP T1Qle19zeXNjb25mZGlyfS9zeXNjb25maWcvdmRyLXBsdWdpbnMuZC9yY3UuY29uZgorICAgICV7 YnVpbGRyb290fSV7X3N5c2NvbmZkaXJ9L3N5c2NvbmZpZy92ZHItcGx1Z2lucy5kL3NraW5jdXJz ZXMuY29uZgogCi0lbWFrZV9pbnN0YWxsIC1DIFBMVUdJTlMvc3JjL3NraW5jdXJzZXMKLWluc3Rh bGwgLXBtIDY0NCAle1NPVVJDRTExfSBcCi0gICAgJFJQTV9CVUlMRF9ST09UJXtfc3lzY29uZmRp cn0vc3lzY29uZmlnL3Zkci1wbHVnaW5zLmQvc2tpbmN1cnNlcy5jb25mCislZmluZF9sYW5nICV7 bmFtZX0KICVmaW5kX2xhbmcgJXtuYW1lfS1za2luY3Vyc2VzCiAKLWluc3RhbGwgLW0wNjQ0IC1E IHZkci5zeXN1c2Vycy5jb25mICV7YnVpbGRyb290fSV7X3N5c3VzZXJzZGlyfS92ZHIuY29uZgot CiAKICVjaGVjawotZXhwb3J0IFBLR19DT05GSUdfUEFUSD0kUlBNX0JVSUxEX1JPT1Qle19saWJk aXJ9L3BrZ2NvbmZpZwotaWYgWyAiJChwa2ctY29uZmlnIHZkciAtLXZhcmlhYmxlPWFwaXZlcnNp b24pIiAhPSAiJXthcGl2ZXJ9IiBdIDsgdGhlbgotICAgIGVjaG8gIkVSUk9SOiBBUEkgdmVyc2lv biBtaXNtYXRjaCBpbiB2ZHIucGMgLyBwYWNrYWdlIC8gY29uZmlnLmgiIDsgZXhpdCAxCi1maQor ZXhwb3J0IFBLR19DT05GSUdfUEFUSD0le2J1aWxkcm9vdH0le19saWJkaXJ9L3BrZ2NvbmZpZwor dGVzdCAiJChwa2ctY29uZmlnIHZkciAtLXZhcmlhYmxlPWFwaXZlcnNpb24pIiA9ICIle2FwaXZl cn0iCit0ZXN0ICIkKHBrZy1jb25maWcgdmRyIC0tbW9kdmVyc2lvbikiID0gIiV7dmVyc2lvbn0i CisjIFRoZSBGZWRvcmEgcGF0Y2ggbXVzdCBoYXZlIHRha2VuIGVmZmVjdAordGVzdCAiJChwa2ct Y29uZmlnIHZkciAtLXZhcmlhYmxlPXVzZXIpIiA9ICIle3Zkcl91c2VyfSIKK3Rlc3QgIiQocGtn LWNvbmZpZyB2ZHIgLS12YXJpYWJsZT12YXJkaXIpIiA9ICIle3ZhcmRpcn0iCisjIFRoZSBNYWlu TWVudUhvb2tzIHBhdGNoIG11c3QgaGF2ZSB0YWtlbiBlZmZlY3QKK2dyZXAgLXEgJ01haW5NZW51 SG9va3NQYXRjaC12MS4wOjpvc1NjaGVkdWxlJyB2ZHIKKyMgVGhlIEZTRiBhZGRyZXNzIHBhdGNo IG11c3QgaGF2ZSB0YWtlbiBlZmZlY3QgKHJwbWxpbnQgcmVqZWN0cyB0aGUgb2xkIGFkZHJlc3Mp CishIGdyZXAgLXFyICdGcmFua2xpbicgQ09QWUlORyBQTFVHSU5TL3NyYy9za2luY3Vyc2VzL0NP UFlJTkcKKyMgdmRyIHJlc29sdmVzIFZEUlBsdWdpbkNyZWF0b3IgYWZ0ZXIgZGxvcGVuOyBhIHBs dWdpbiB3aXRob3V0IHRoYXQgZXhwb3J0CisjIGlzIGJyb2tlbiBldmVuIGlmIGl0IGxpbmtzIGNs ZWFubHkKK25tIC1EIC0tZGVmaW5lZC1vbmx5ICV7YnVpbGRyb290fSV7cGx1Z2luZGlyfS9saWJ2 ZHItc2tpbmN1cnNlcy5zby4le2FwaXZlcn0gfCBncmVwIC1xICcgVkRSUGx1Z2luQ3JlYXRvciQn CisjIFRoZSBzdWRvZXJzIGRyb3AtaW4gbXVzdCBwYXJzZQordmlzdWRvIC1jZiAle2J1aWxkcm9v dH0le19zeXNjb25mZGlyfS9zdWRvZXJzLmQvdmRyCiAKIAogJXBvc3QKICVzeXN0ZW1kX3Bvc3Qg JXtuYW1lfS5zZXJ2aWNlCi1zeXN0ZW1jdGwgZGFlbW9uLXJlbG9hZAogCiAlcHJldW4KICVzeXN0 ZW1kX3ByZXVuICV7bmFtZX0uc2VydmljZQpAQCAtNDU2LDIxICszMTgsMjIgQEAgc3lzdGVtY3Rs IGRhZW1vbi1yZWxvYWQKICVwb3N0dW4KICVzeXN0ZW1kX3Bvc3R1bl93aXRoX3Jlc3RhcnQgJXtu YW1lfS5zZXJ2aWNlCiAKKwogJWZpbGVzIC1mICV7bmFtZX0ubGFuZworJWxpY2Vuc2UgQ09QWUlO RwogJXtfcGtnZG9jZGlyfQotJWV4Y2x1ZGUgJXtfcGtnZG9jZGlyfS9QTFVHSU5TLmh0bWwKICVp ZiAle3dpdGggZG9jc30KICVleGNsdWRlICV7X3BrZ2RvY2Rpcn0vaHRtbC8KICVlbmRpZgotJWNv bmZpZyhub3JlcGxhY2UpICV7X3N5c2NvbmZkaXJ9L3N1ZG9lcnMuZC92ZHIKICVjb25maWcobm9y ZXBsYWNlKSAle19zeXNjb25mZGlyfS9zeXNjb25maWcvdmRyCi0lY29uZmlnKG5vcmVwbGFjZSkg JXtfc3lzY29uZmRpcn0vcnd0YWIuZC8le25hbWV9CiAlY29uZmlnICVkaXIgJXtfc3lzY29uZmRp cn0vc3lzY29uZmlnL3Zkci1wbHVnaW5zLmQvCiAle19iaW5kaXJ9L2VwZzJodG1sCisle19iaW5k aXJ9L3J1bnZkcgogJXtfYmluZGlyfS9zdmRycHNlbmQKLSV7X3NiaW5kaXJ9L3J1bnZkcgotJXtf c2JpbmRpcn0vdmRyCisle19iaW5kaXJ9L3ZkcgogJXtfdW5pdGRpcn0vJXtuYW1lfS5zZXJ2aWNl Cisle19zeXN1c2Vyc2Rpcn0vJXtuYW1lfS5jb25mCislY29uZmlnKG5vcmVwbGFjZSkgJWF0dHIo MDQ0MCxyb290LHJvb3QpICV7X3N5c2NvbmZkaXJ9L3N1ZG9lcnMuZC92ZHIKICVkaXIgJXtwbHVn aW5kaXJ9LwogJWRpciAle3BsdWdpbmRpcn0vYmluLwogJXtwbHVnaW5kaXJ9L2Jpbi8le25hbWV9 LWNoZWNrLXNldHVwCkBAIC00ODIsNzQgKzM0NSw1MCBAQCBzeXN0ZW1jdGwgZGFlbW9uLXJlbG9h ZAogJXtfbWFuZGlyfS9tYW4xL3Zkci4xKgogJXtfbWFuZGlyfS9tYW41L3Zkci41KgogJWRpciAl e3ZhcmJhc2V9LwotJWRlZmF0dHIoLSwle3Zkcl91c2VyfSwle3Zkcl9ncm91cH0sLSkKLSMgVE9E TzogdGlnaHRlbiBvd25lcnNoaXBzIHRvIHJvb3Q6cm9vdCBmb3Igc29tZSBmaWxlcyBpbiAlJXtj b25maWdkaXJ9Ci0lY29uZmlnKG5vcmVwbGFjZSkgJXtjb25maWdkaXJ9LyouY29uZgotJWRpciAl e3ZpZGVvZGlyfS8KLSVnaG9zdCAle3ZpZGVvZGlyfS8udXBkYXRlCi0lZ2hvc3QgJXt2YXJkaXJ9 L3RoZW1lcy8qLnRoZW1lCi0lZ2hvc3QgJXtjYWNoZWRpcn0vZXBnLmRhdGEKLSVkZWZhdHRyKC0s JXt2ZHJfdXNlcn0scm9vdCwtKQotJWRpciAle2NvbmZpZ2Rpcn0vCi0lZGlyICV7Y29uZmlnZGly fS9wbHVnaW5zLwotJWRpciAle3J1bmRpcn0vCi0lZ2hvc3QgJXtydW5kaXJ9L25leHQtdGltZXIK LSVkaXIgJXt2YXJkaXJ9LwotJWRpciAle3ZhcmRpcn0vdGhlbWVzLwotJWRpciAle2NhY2hlZGly fS8KLSV7X3N5c3VzZXJzZGlyfS92ZHIuY29uZgotCi0lZmlsZXMgZGV2ZWwgLWYgJXtuYW1lfS1k ZXZlbC5maWxlcwotJXshP193aXRoX2RvY3M6JWRpciAle19wa2dkb2NkaXJ9fQorJWF0dHIoLSwl e3Zkcl91c2VyfSwle3Zkcl9ncm91cH0pICVjb25maWcobm9yZXBsYWNlKSAle2NvbmZpZ2Rpcn0v Ki5jb25mCislZGlyICVhdHRyKC0sJXt2ZHJfdXNlcn0sJXt2ZHJfZ3JvdXB9KSAle3ZpZGVvZGly fS8KKyVnaG9zdCAlYXR0cigtLCV7dmRyX3VzZXJ9LCV7dmRyX2dyb3VwfSkgJXt2aWRlb2Rpcn0v LnVwZGF0ZQorJWdob3N0ICVhdHRyKC0sJXt2ZHJfdXNlcn0sJXt2ZHJfZ3JvdXB9KSAle2NvbmZp Z2Rpcn0vdGhlbWVzLyoudGhlbWUKKyVnaG9zdCAlYXR0cigtLCV7dmRyX3VzZXJ9LCV7dmRyX2dy b3VwfSkgJXtjYWNoZWRpcn0vZXBnLmRhdGEKKyVkaXIgJWF0dHIoLSwle3Zkcl91c2VyfSxyb290 KSAle2NvbmZpZ2Rpcn0vCislZGlyICVhdHRyKC0sJXt2ZHJfdXNlcn0scm9vdCkgJXtjb25maWdk aXJ9L3BsdWdpbnMvCislZGlyICVhdHRyKC0sJXt2ZHJfdXNlcn0scm9vdCkgJXt2YXJkaXJ9Lwor JWRpciAlYXR0cigtLCV7dmRyX3VzZXJ9LHJvb3QpICV7Y29uZmlnZGlyfS90aGVtZXMvCislZGly ICVhdHRyKC0sJXt2ZHJfdXNlcn0scm9vdCkgJXtjYWNoZWRpcn0vCisKKyVmaWxlcyBkZXZlbAog JWxpY2Vuc2UgQ09QWUlORwotJWlmICEgJXt3aXRoIGRvY3N9Ci0le19wa2dkb2NkaXJ9L1BMVUdJ TlMuaHRtbAotJWVuZGlmCiAle19iaW5kaXJ9L3Zkci1jb25maWcKICV7X2JpbmRpcn0vdmRyLW5l d3BsdWdpbgogJXtfaW5jbHVkZWRpcn0vbGlic2kvCiAle19pbmNsdWRlZGlyfS92ZHIvCiAle19s aWJkaXJ9L3BrZ2NvbmZpZy92ZHIucGMKLSVkaXIgJXtfbGliZGlyfS92ZHIvCi0le19saWJkaXJ9 L3Zkci9NYWtlLmNvbmZpZwotJXtfbGliZGlyfS92ZHIvTWFrZS5nbG9iYWwKLSV7X2xpYmRpcn0v dmRyL2NvbmZpZy5oCi0le19saWJkaXJ9L3Zkci9wbHVnaW5zLm1rCisle19ycG1tYWNyb2Rpcn0v bWFjcm9zLnZkcgorJXtwbHVnaW5kaXJ9L01ha2UuY29uZmlnCisle3BsdWdpbmRpcn0vTWFrZS5n bG9iYWwKKyV7cGx1Z2luZGlyfS9jb25maWcuaAorJXtwbHVnaW5kaXJ9L3BsdWdpbnMubWsKIAog JWlmICV7d2l0aCBkb2NzfQogJWZpbGVzIGRvY3MKLSVkaXIgJXtfcGtnZG9jZGlyfQogJWxpY2Vu c2UgQ09QWUlORwotJXtfcGtnZG9jZGlyfS9QTFVHSU5TLmh0bWwKICV7X3BrZ2RvY2Rpcn0vaHRt bC8KICVlbmRpZgogCi0lZmlsZXMgZHZiaGRkZXZpY2UgLWYgJXtuYW1lfS1kdmJoZGRldmljZS5s YW5nCi0lbGljZW5zZSBQTFVHSU5TL3NyYy9kdmJoZGRldmljZS9DT1BZSU5HCi0lZG9jIFBMVUdJ TlMvc3JjL2R2YmhkZGV2aWNlL3tISVNUT1JZLFJFQURNRX0KLSVjb25maWcobm9yZXBsYWNlKSAl e19zeXNjb25mZGlyfS9zeXNjb25maWcvdmRyLXBsdWdpbnMuZC9kdmJoZGRldmljZS5jb25mCi0l e3BsdWdpbmRpcn0vbGlidmRyLWR2YmhkZGV2aWNlLnNvLiV7YXBpdmVyfQotCi0lZmlsZXMgZHZi c2RkZXZpY2UKLSVsaWNlbnNlIFBMVUdJTlMvc3JjL2R2YnNkZGV2aWNlL0NPUFlJTkcKLSVkb2Mg UExVR0lOUy9zcmMvZHZic2RkZXZpY2Uve0hJU1RPUlksUkVBRE1FfQotJWNvbmZpZyhub3JlcGxh Y2UpICV7X3N5c2NvbmZkaXJ9L3N5c2NvbmZpZy92ZHItcGx1Z2lucy5kL2R2YnNkZGV2aWNlLmNv bmYKLSV7cGx1Z2luZGlyfS9saWJ2ZHItZHZic2RkZXZpY2Uuc28uJXthcGl2ZXJ9Ci0KLSVmaWxl cyByY3UKLSVsaWNlbnNlIFBMVUdJTlMvc3JjL3JjdS9DT1BZSU5HCi0lZG9jIFBMVUdJTlMvc3Jj L3JjdS97SElTVE9SWSxSRUFETUV9Ci0lY29uZmlnKG5vcmVwbGFjZSkgJXtfc3lzY29uZmRpcn0v c3lzY29uZmlnL3Zkci1wbHVnaW5zLmQvcmN1LmNvbmYKLSV7cGx1Z2luZGlyfS9saWJ2ZHItcmN1 LnNvLiV7YXBpdmVyfQotCiAlZmlsZXMgc2tpbmN1cnNlcyAtZiAle25hbWV9LXNraW5jdXJzZXMu bGFuZwogJWxpY2Vuc2UgUExVR0lOUy9zcmMvc2tpbmN1cnNlcy9DT1BZSU5HCi0lZG9jIFBMVUdJ TlMvc3JjL3NraW5jdXJzZXMve0hJU1RPUlksUkVBRE1FfQorJWRvYyBQTFVHSU5TL3NyYy9za2lu Y3Vyc2VzL0hJU1RPUlkgUExVR0lOUy9zcmMvc2tpbmN1cnNlcy9SRUFETUUKICVjb25maWcobm9y ZXBsYWNlKSAle19zeXNjb25mZGlyfS9zeXNjb25maWcvdmRyLXBsdWdpbnMuZC9za2luY3Vyc2Vz LmNvbmYKICV7cGx1Z2luZGlyfS9saWJ2ZHItc2tpbmN1cnNlcy5zby4le2FwaXZlcn0KIAogCiAl Y2hhbmdlbG9nCisqIFRodSBBdWcgMTMgMjAyNiBEaXJrIE5laHJpbmcgIDxkbmVocmluZ0BnbXgu bmV0PiAtIDIuOC4yLTMKKy0gUmVmYWN0b3IgdGhlIHNwZWMgZmlsZQorLSBUaGVtZXMgbGl2ZSBp biAvZXRjL3Zkci90aGVtZXM6IHN0b2NrIFZEUidzIHBhdGgsIG5vdyB0aGF0IHRoZSBvbGQKKyAg dGhlbWUtZGlyZWN0b3J5IHJld3JpdGluZyBwYXRjaCBpcyBnb25lCistIHZkci1kZXZlbCBub3cg cmVxdWlyZXMgdGhlIGJhc2UgcGFja2FnZSAoZnVsbHkgdmVyc2lvbmVkLCBhcmNoLXNwZWNpZmlj KQorCiAqIEZyaSBKdWwgMTcgMjAyNiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5n QGZlZG9yYXByb2plY3Qub3JnPiAtIDIuOC4yLTIKIC0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRv cmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80NV9NYXNzX1JlYnVpbGQKIApAQCAtNjc4LDcgKzUx Nyw3IEBAIHN5c3RlbWN0bCBkYWVtb24tcmVsb2FkCiAKICogVGh1IE9jdCAyMSAyMDIxIE1hcnRp biBHYW5zc2VyIDxtYXJ0aW5rZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjQuNy01CiAtIERlbGV0 ZSBtaXNzaW5nIGtlcm5lbCBoZWFkZXIgZmlsZXMgI1NvdXJjZTMzIGJlY2F1c2UgdGhleSBhcmUK LSAgYXZhaWxhYmxlIGFnYWluIGluIGtlcm5lbC1oZWFkZXJzLTUuMTQuMC0zMDAgcGFja2FnZSAK KyAgYXZhaWxhYmxlIGFnYWluIGluIGtlcm5lbC1oZWFkZXJzLTUuMTQuMC0zMDAgcGFja2FnZQog CiAqIFR1ZSBBdWcgMDMgMjAyMSBNYXJ0aW4gR2Fuc3NlciA8bWFydGlua2dAZmVkb3JhcHJvamVj dC5vcmc+IC0gMi40LjctNAogLSBBZGQgbWlzc2luZyBrZXJuZWwtaGVhZGVyIGZpbGVzIGF1ZGlv Lmggb3NkLmggYW5kIHZpZGVvLmggdmlhICNTb3VyY2UzMwoKZGlmZiAtLWdpdCBhL3Zkci5zdWRv ZXJzIGIvdmRyLnN1ZG9lcnMKaW5kZXggM2MxNzk3Ny4uNTNiMmI5OCAxMDA2NDQKLS0tIGEvdmRy LnN1ZG9lcnMKKysrIGIvdmRyLnN1ZG9lcnMKQEAgLTEsNCArMSw1IEBACi0jIEFsbG93IHZkciB0 byBzaHV0IGRvd24gdGhlIHN5c3RlbSwgc2VlIHZkci1zaHV0ZG93bi5zaC4KLQotRGVmYXVsdHM6 dmRyICAgICFyZXF1aXJldHR5Ci12ZHIgICAgICAgICAgICAgQUxMID0gKHJvb3QpIE5PUEFTU1dE OiAvc2Jpbi9zaHV0ZG93bgorIyBQcml2aWxlZ2VkIGNvbW1hbmRzIGZvciBWRFIncyB0aW1lci1k cml2ZW4gc2h1dGRvd24uICB2ZHItc2h1dGRvd24uc2gKKyMgcG93ZXJzIHRoZSBtYWNoaW5lIG9m ZiwgYW5kIGEgaGliZXJuYXRpbmcgc2V0dXAgbXVzdCBhbHNvIHNldCB0aGUgUlRDCisjIHdha2V1 cCBpdHNlbGY6IHRoZSBzZXJ2aWNlIGtlZXBzIHJ1bm5pbmcgdGhyb3VnaCBoaWJlcm5hdGlvbiwg c28gdGhlCisjIHVuaXQncyBFeGVjU3RvcCBob29rIGRvZXMgbm90IGZpcmUgaW4gdGhhdCBjYXNl LgordmRyIEFMTCA9IChyb290KSBOT1BBU1NXRDogL3Vzci9iaW4vc3lzdGVtY3RsIHBvd2Vyb2Zm LCAvdXNyL2Jpbi9zeXN0ZW1jdGwgaGliZXJuYXRlLCAvdXNyL2xpYi92ZHIvYmluL3Zkci1zZXQt d2FrZXVwCgpkaWZmIC0tZ2l0IGEvdmRyLnN5c2NvbmZpZyBiL3Zkci5zeXNjb25maWcKaW5kZXgg MDM1MjQwNS4uNjI4YmU2YyAxMDA2NDQKLS0tIGEvdmRyLnN5c2NvbmZpZworKysgYi92ZHIuc3lz Y29uZmlnCkBAIC0xLDQ5ICsxLDI0IEBACiAjIFN5c3RlbSBjb25maWd1cmF0aW9uIGZvciBWRFIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gc2ggLSotCiAKLSMgVGhl ICJtYXN0ZXIiIG9wdGlvbnMuICBTb21lIGV4YW1wbGVzIG9mIG9wdGlvbnMgeW91IG1heSB3YW50 IHRvIHNldAotIyBoZXJlIGFyZSAtciwgLXQsIGFuZCAtLXJjdS4gIFNlZSB0aGUgdmRyKDEpIG1h biBwYWdlIGZvciBtb3JlIGluZm8uCisjIFRoZSAibWFzdGVyIiBvcHRpb25zLiAgU2VlIHRoZSB2 ZHIoMSkgbWFuIHBhZ2UgZm9yIHRoZSBhdmFpbGFibGUgb25lcy4KICMKLSMgVGhlIGRlZmF1bHQg c2h1dGRvd24gc2NyaXB0ICgvdXNyL2xpYiovdmRyL2Jpbi92ZHItc2h1dGRvd24uc2gpIG5lZWRz Ci0jIHN1ZG8oOCkgY29uZmlndXJhdGlvbiB0byB3b3JrIGFzIGV4cGVjdGVkLCBzZWUgdGhlIHNj cmlwdCBzb3VyY2UgZm9yCi0jIGRldGFpbHMuCisjIFRoZSBkZWZhdWx0IHNodXRkb3duIHNjcmlw dCAoL3Vzci9saWIqL3Zkci9iaW4vdmRyLXNodXRkb3duLnNoKSBwb3dlcnMKKyMgb2ZmIHRocm91 Z2ggc3VkbzsgdGhlIHJ1bGVzIGl0IG5lZWRzIGFyZSBwYWNrYWdlZCBpbiAvZXRjL3N1ZG9lcnMu ZC92ZHIuCiAjCiBWRFJfT1BUSU9OUz0oLS1saXJjIC0tdmZhdCAtLXNodXRkb3duPXZkci1zaHV0 ZG93bi5zaCkKIAogIyBWRFJfUExVR0lOX09SREVSIGlzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qg b2YgcGx1Z2lucyB0aGF0IHNob3VsZCBiZQotIyBsb2FkZWQgaW4gYSBzcGVjaWZpYyBvcmRlci4g IFRoaXMgYWZmZWN0cyBlZy4gdGhlIG9yZGVyIHRoZSBwbHVnaW5zJwotIyBtZW51IGVudHJpZXMg YXJlIGRpc3BsYXllZCBPU0QgbWVudXMgYnkgZGVmYXVsdC4gIFRoZSBwbHVnaW5zIGluIHRoaXMK LSMgbGlzdCBkb24ndCBuZWVkIHRvIGJlIGluc3RhbGxlZCwgYnV0IGlmIHRoZXkgYXJlLCB0aGV5 IHdpbGwgYmUgbG9hZGVkCi0jIGJlZm9yZSBvdGhlciBwb3NzaWJseSBpbnN0YWxsZWQgcGx1Z2lu cy4gIE5vdGUgdGhhdCBpdCBpcyByZWNvbW1lbmRlZAotIyB0byBsb2FkIG91dHB1dCBwbHVnaW5z IGJlZm9yZSBvdGhlcnMgc28gdGhhdCBhbGwgbmVjZXNzYXJ5IGZlYXR1cmVzIGFyZQotIyBwcmVz ZW50IHdoZW4gbmVlZGVkIGJ5IG90aGVyIHBsdWdpbnMgYXQgc3RhcnR1cC9zaHV0ZG93bi4KKyMg bG9hZGVkIGluIGEgc3BlY2lmaWMgb3JkZXIuICBUaGUgcGx1Z2lucyBpbiB0aGlzIGxpc3QgZG9u J3QgbmVlZCB0byBiZQorIyBpbnN0YWxsZWQsIGJ1dCBpZiB0aGV5IGFyZSwgdGhleSB3aWxsIGJl IGxvYWRlZCBiZWZvcmUgb3RoZXIgaW5zdGFsbGVkCisjIHBsdWdpbnMuICBPdXRwdXQgZGV2aWNl IHBsdWdpbnMgc2hvdWxkIGJlIGxvYWRlZCBmaXJzdCBzbyB0aGF0IGFsbAorIyB0aGVpciBmZWF0 dXJlcyBhcmUgYXZhaWxhYmxlIHRvIG90aGVyIHBsdWdpbnMgYXQgc3RhcnR1cC9zaHV0ZG93bi4K ICMKIFZEUl9QTFVHSU5fT1JERVI9IgotbWNsaQotZXh0cmVjbWVudW5nCi1keHIzCi1zb2Z0ZGV2 aWNlCit2YWFwaXZpZGVvCitzb2Z0aGRjdXZpZAogc29mdGhkZGV2aWNlCi1zdHJlYW1kZXYtY2xp ZW50Ci14aW5lCiB4aW5lbGlib3V0cHV0Ci1kdmJoZGRldmljZQotZHZic2RkZXZpY2UKLXR2b25z Y3JlZW4KLW9zZHRlbGV0ZXh0Ci10dHh0c3Vicwotb3NkcGlwCi1mZW1vbgotcmVjc3RhdHVzCi1t YXJrYWQKLXN1ZG9rdQotd2VhdGhlcgotd2VhdGhlcm5nCi1kdmQKLWV4dGVybmFscGxheWVyCi1t cGxheWVyCi1tcDMKLW11Z2dsZQotYnVybgorc3RyZWFtZGV2LWNsaWVudAogIgogCiAjIEkxOE4g c2V0dGluZ3MuCkBAIC01NCw3ICsyOSw3IEBAIGJ1cm4KIAogIyBQQVRIIHdoZXJlIHRvIGZpbmQg dGhlIGludGVybmFsbHkgdXNlZCBleGVjdXRhYmxlcy4KICMKLVBBVEg9Ii91c3IvbGliNjQvdmRy L2JpbjokUEFUSCIKK1BBVEg9Ii91c3IvbGliL3Zkci9iaW46JFBBVEgiCiAKICMgSG93IG1hbnkg bWludXRlcyBiZWZvcmUgYSByZWNvcmRpbmcgc2hvdWxkIHRoZSBWRFIgYm94IHdha2UgdXA/CiAj IFNvbWUgQ0kvQ0FNIGNvbWJpbmF0aW9ucyBjYW4gdGFrZSBxdWl0ZSBhIGxvbmcgdGltZSB0byBp bml0aWFsaXplLCBzbwo=