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: Kate Hsuan To: git-commits@fedoraproject.org Subject: [rpms/libfprint] f43: Update to the upstream version 1.94.100 (rhbz#2506519) Date: Tue, 11 Aug 2026 04:30:02 GMT Message-ID: <178642260213.1.15370290441090343375.rpms-libfprint-7b457eea05c9@fedoraproject.org> List-ID: X-Git-Repo: rpms/libfprint X-Git-Branch: f43 X-Git-Rev: 7b457eea05c9d5c73a6ed3bd3325eac52374c2f9 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvbGliZnByaW50CiAgICAgICAgICAgIEJyYW5jaCA6IGY0MwogICAgICAgICAg ICBDb21taXQgOiA3YjQ1N2VlYTA1YzlkNWM3M2E2ZWQzYmQzMzI1ZWFjNTIzNzRjMmY5CiAgICAg ICAgICAgIEF1dGhvciA6IEthdGUgSHN1YW4gPGhwYUByZWRoYXQuY29tPgogICAgICAgICAgICBE YXRlICAgOiAyMDI2LTA4LTExVDExOjQ1OjAxKzA4OjAwCiAgICAgICAgICAgIFN0YXRzICA6ICsz Ly00MDg0IGluIDExIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVk b3JhcHJvamVjdC5vcmcvcnBtcy9saWJmcHJpbnQvYy83YjQ1N2VlYTA1YzlkNWM3M2E2ZWQzYmQz MzI1ZWFjNTIzNzRjMmY5P2JyYW5jaD1mNDMKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAg VXBkYXRlIHRvIHRoZSB1cHN0cmVhbSB2ZXJzaW9uIDEuOTQuMTAwIChyaGJ6IzI1MDY1MTkpCgpV cGRhdGUgdG8gdGhlIHVwc3RyZWFtIHZlcnNpb24gMS45NC4xMDAuCgotLS0KZGlmZiAtLWdpdCBh Ly5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGRjNDdmYzQuLjU4NDhiNmEgMTAwNjQ0Ci0t LSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMjcsMyArMjcsNCBAQCBsaWJmcHJp bnQtMC4zLjAudGFyLmJ6MgogL2xpYmZwcmludC12MS45NC44LnRhci5negogL2xpYmZwcmludC12 MS45NC45LnRhci5negogL2xpYmZwcmludC12MS45NC4xMC50YXIuZ3oKKy9saWJmcHJpbnQtdjEu OTQuMTAwLnRhci5negoKZGlmZiAtLWdpdCBhLzAwMDEtZG9jLUluY2x1ZGUtQmluYXJ5LWJ1ZmZl ci1JLU8tc2VjdGlvbi1mb3ItdGhlLWJ5dGUtci5wYXRjaCBiLzAwMDEtZG9jLUluY2x1ZGUtQmlu YXJ5LWJ1ZmZlci1JLU8tc2VjdGlvbi1mb3ItdGhlLWJ5dGUtci5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMGRmMDU2NS4uMDAwMDAwMAotLS0gYS8wMDAxLWRvYy1JbmNsdWRl LUJpbmFyeS1idWZmZXItSS1PLXNlY3Rpb24tZm9yLXRoZS1ieXRlLXIucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxNjIgKzAsMCBAQAotRnJvbSA5YzE0MDAzNmU5YzRkMTczYTE5YjhlM2Q2MTg3 NTI2ZDY4ZmJkOTdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01h cmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1E YXRlOiBTYXQsIDIxIEZlYiAyMDI2IDA1OjQwOjU2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMS82 XSBkb2M6IEluY2x1ZGUgQmluYXJ5IGJ1ZmZlciBJL08gc2VjdGlvbiBmb3IgdGhlIGJ5dGUKLSBy ZWFkZXIvd3JpdGVyCi0KLS0tLQotIGRvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQgfCAxMjAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSBkb2MvbGliZnByaW50LWRvY3Mu eG1sICAgICAgIHwgICA2ICsrCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMjYgaW5zZXJ0aW9ucygrKQot Ci1kaWZmIC0tZ2l0IGEvZG9jL2xpYmZwcmludC0yLXNlY3Rpb25zLnR4dCBiL2RvYy9saWJmcHJp bnQtMi1zZWN0aW9ucy50eHQKLWluZGV4IDBmYjBjZmEuLjlmMzgwNGYgMTAwNjQ0Ci0tLS0gYS9k b2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0Ci0rKysgYi9kb2MvbGliZnByaW50LTItc2VjdGlv bnMudHh0Ci1AQCAtMTM0LDYgKzEzNCwxMjYgQEAgZnBpX2xpbmVfYXNtYmxfY3R4Ci0gZnBpX2Fz c2VtYmxlX2xpbmVzCi0gPC9TRUNUSU9OPgotIAotKzxTRUNUSU9OPgotKzxGSUxFPmZwaS1ieXRl LXJlYWRlcjwvRklMRT4KLSs8VElUTEU+RnBpQnl0ZVJlYWRlcjwvVElUTEU+Ci0rRnBpQnl0ZVJl YWRlcgotK2ZwaV9ieXRlX3JlYWRlcl9uZXcKLStmcGlfYnl0ZV9yZWFkZXJfZnJlZQotK2ZwaV9i eXRlX3JlYWRlcl9pbml0Ci0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfc3ViX3JlYWRlcgotK2ZwaV9i eXRlX3JlYWRlcl9nZXRfc3ViX3JlYWRlcgotK2ZwaV9ieXRlX3JlYWRlcl9zZXRfcG9zCi0rZnBp X2J5dGVfcmVhZGVyX2dldF9wb3MKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFpbmluZwotK2Zw aV9ieXRlX3JlYWRlcl9nZXRfc2l6ZQotK2ZwaV9ieXRlX3JlYWRlcl9za2lwCi0rZnBpX2J5dGVf cmVhZGVyX2dldF91aW50OAotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfaW50OAotK2ZwaV9ieXRlX3Jl YWRlcl9wZWVrX3VpbnQ4Ci0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfaW50OAotK2ZwaV9ieXRlX3Jl YWRlcl9nZXRfdWludDE2X2xlCi0rZnBpX2J5dGVfcmVhZGVyX2dldF9pbnQxNl9sZQotK2ZwaV9i eXRlX3JlYWRlcl9wZWVrX3VpbnQxNl9sZQotK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2ludDE2X2xl Ci0rZnBpX2J5dGVfcmVhZGVyX2dldF91aW50MTZfYmUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X2lu dDE2X2JlCi0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfdWludDE2X2JlCi0rZnBpX2J5dGVfcmVhZGVy X3BlZWtfaW50MTZfYmUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQyNF9sZQotK2ZwaV9ieXRl X3JlYWRlcl9nZXRfaW50MjRfbGUKLStmcGlfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfbGUKLStm cGlfYnl0ZV9yZWFkZXJfcGVla19pbnQyNF9sZQotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfdWludDI0 X2JlCi0rZnBpX2J5dGVfcmVhZGVyX2dldF9pbnQyNF9iZQotK2ZwaV9ieXRlX3JlYWRlcl9wZWVr X3VpbnQyNF9iZQotK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2JlCi0rZnBpX2J5dGVfcmVh ZGVyX2dldF91aW50MzJfbGUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X2ludDMyX2xlCi0rZnBpX2J5 dGVfcmVhZGVyX3BlZWtfdWludDMyX2xlCi0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfaW50MzJfbGUK LStmcGlfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQzMl9iZQotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfaW50 MzJfYmUKLStmcGlfYnl0ZV9yZWFkZXJfcGVla191aW50MzJfYmUKLStmcGlfYnl0ZV9yZWFkZXJf cGVla19pbnQzMl9iZQotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfdWludDY0X2xlCi0rZnBpX2J5dGVf cmVhZGVyX2dldF9pbnQ2NF9sZQotK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX3VpbnQ2NF9sZQotK2Zw aV9ieXRlX3JlYWRlcl9wZWVrX2ludDY0X2xlCi0rZnBpX2J5dGVfcmVhZGVyX2dldF91aW50NjRf YmUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X2ludDY0X2JlCi0rZnBpX2J5dGVfcmVhZGVyX3BlZWtf dWludDY0X2JlCi0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfaW50NjRfYmUKLStmcGlfYnl0ZV9yZWFk ZXJfZ2V0X2Zsb2F0MzJfbGUKLStmcGlfYnl0ZV9yZWFkZXJfcGVla19mbG9hdDMyX2xlCi0rZnBp X2J5dGVfcmVhZGVyX2dldF9mbG9hdDMyX2JlCi0rZnBpX2J5dGVfcmVhZGVyX3BlZWtfZmxvYXQz Ml9iZQotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfZmxvYXQ2NF9sZQotK2ZwaV9ieXRlX3JlYWRlcl9w ZWVrX2Zsb2F0NjRfbGUKLStmcGlfYnl0ZV9yZWFkZXJfZ2V0X2Zsb2F0NjRfYmUKLStmcGlfYnl0 ZV9yZWFkZXJfcGVla19mbG9hdDY0X2JlCi0rZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhCi0rZnBp X2J5dGVfcmVhZGVyX3BlZWtfZGF0YQotK2ZwaV9ieXRlX3JlYWRlcl9kdXBfZGF0YQotK2ZwaV9i eXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzIKLStmcGlfYnl0ZV9yZWFkZXJfbWFza2VkX3Nj YW5fdWludDMyX3BlZWsKLStmcGlfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmcKLStmcGlfYnl0ZV9y ZWFkZXJfc2tpcF9zdHJpbmdfdXRmOAotK2ZwaV9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGYx NgotK2ZwaV9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGYzMgotK2ZwaV9ieXRlX3JlYWRlcl9w ZWVrX3N0cmluZwotK2ZwaV9ieXRlX3JlYWRlcl9wZWVrX3N0cmluZ191dGY4Ci0rZnBpX2J5dGVf cmVhZGVyX2dldF9zdHJpbmdfdXRmOAotK2ZwaV9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjgK LStmcGlfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191dGYxNgotK2ZwaV9ieXRlX3JlYWRlcl9kdXBf c3RyaW5nX3V0ZjMyCi0rPC9TRUNUSU9OPgotKwotKzxTRUNUSU9OPgotKzxGSUxFPmZwaS1ieXRl LXdyaXRlcjwvRklMRT4KLSs8VElUTEU+RnBpQnl0ZVdyaXRlcjwvVElUTEU+Ci0rRnBpQnl0ZVdy aXRlcgotK2ZwaV9ieXRlX3dyaXRlcl9uZXcKLStmcGlfYnl0ZV93cml0ZXJfbmV3X3dpdGhfc2l6 ZQotK2ZwaV9ieXRlX3dyaXRlcl9uZXdfd2l0aF9kYXRhCi0rZnBpX2J5dGVfd3JpdGVyX2luaXQK LStmcGlfYnl0ZV93cml0ZXJfaW5pdF93aXRoX3NpemUKLStmcGlfYnl0ZV93cml0ZXJfaW5pdF93 aXRoX2RhdGEKLStmcGlfYnl0ZV93cml0ZXJfcmVzZXQKLStmcGlfYnl0ZV93cml0ZXJfcmVzZXRf YW5kX2dldF9kYXRhCi0rZnBpX2J5dGVfd3JpdGVyX2ZyZWUKLStmcGlfYnl0ZV93cml0ZXJfZnJl ZV9hbmRfZ2V0X2RhdGEKLStmcGlfYnl0ZV93cml0ZXJfZ2V0X3JlbWFpbmluZwotK2ZwaV9ieXRl X3dyaXRlcl9lbnN1cmVfZnJlZV9zcGFjZQotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDgKLStm cGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQxNl9iZQotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDI0 X2JlCi0rZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50MzJfYmUKLStmcGlfYnl0ZV93cml0ZXJfcHV0 X3VpbnQ2NF9iZQotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2xlCi0rZnBpX2J5dGVfd3Jp dGVyX3B1dF91aW50MjRfbGUKLStmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQzMl9sZQotK2ZwaV9i eXRlX3dyaXRlcl9wdXRfdWludDY0X2xlCi0rZnBpX2J5dGVfd3JpdGVyX3B1dF9pbnQ4Ci0rZnBp X2J5dGVfd3JpdGVyX3B1dF9pbnQxNl9iZQotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfaW50MjRfYmUK LStmcGlfYnl0ZV93cml0ZXJfcHV0X2ludDMyX2JlCi0rZnBpX2J5dGVfd3JpdGVyX3B1dF9pbnQ2 NF9iZQotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfaW50MTZfbGUKLStmcGlfYnl0ZV93cml0ZXJfcHV0 X2ludDI0X2xlCi0rZnBpX2J5dGVfd3JpdGVyX3B1dF9pbnQzMl9sZQotK2ZwaV9ieXRlX3dyaXRl cl9wdXRfaW50NjRfbGUKLStmcGlfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0MzJfYmUKLStmcGlfYnl0 ZV93cml0ZXJfcHV0X2Zsb2F0NjRfYmUKLStmcGlfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0MzJfbGUK LStmcGlfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0NjRfbGUKLStmcGlfYnl0ZV93cml0ZXJfcHV0X3N0 cmluZ191dGY4Ci0rZnBpX2J5dGVfd3JpdGVyX3B1dF9zdHJpbmdfdXRmMTYKLStmcGlfYnl0ZV93 cml0ZXJfcHV0X3N0cmluZ191dGYzMgotK2ZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YQotK2ZwaV9i eXRlX3dyaXRlcl9maWxsCi0rPC9TRUNUSU9OPgotKwotIDxTRUNUSU9OPgotIDxGSUxFPmZwaS1j b250ZXh0PC9GSUxFPgotIGZwaV9nZXRfZHJpdmVyX3R5cGVzCi1kaWZmIC0tZ2l0IGEvZG9jL2xp YmZwcmludC1kb2NzLnhtbCBiL2RvYy9saWJmcHJpbnQtZG9jcy54bWwKLWluZGV4IDBhNTdlZmIu LjA5YmI4MjYgMTAwNjQ0Ci0tLS0gYS9kb2MvbGliZnByaW50LWRvY3MueG1sCi0rKysgYi9kb2Mv bGliZnByaW50LWRvY3MueG1sCi1AQCAtNDgsNiArNDgsMTIgQEAKLSAgICAgICA8eGk6aW5jbHVk ZSBocmVmPSJ4bWwvZnBpLWxvZy54bWwiLz4KLSAgICAgPC9jaGFwdGVyPgotIAotKyAgICA8Y2hh cHRlciBpZD0iZHJpdmVyLWRhdGEiPgotKyAgICAgIDx0aXRsZT5CaW5hcnkgYnVmZmVyIEkvTzwv dGl0bGU+Ci0rICAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2ZwaS1ieXRlLXJlYWRlci54bWwi Lz4KLSsgICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvZnBpLWJ5dGUtd3JpdGVyLnhtbCIvPgot KyAgICA8L2NoYXB0ZXI+Ci0rCi0gICAgIDxjaGFwdGVyIGlkPSJkcml2ZXItaW1nIj4KLSAgICAg ICA8dGl0bGU+SW1hZ2UgbWFuaXB1bGF0aW9uPC90aXRsZT4KLSAgICAgICA8eGk6aW5jbHVkZSBo cmVmPSJ4bWwvZnBpLWltYWdlLnhtbCIvPgotLS0gCi0yLjU0LjAKLQoKZGlmZiAtLWdpdCBhLzAw MDItZnBpLWJ5dGUtd3JpdGVyLUFkZC1BUElzLXRvLXdyaXRlLWFuZC1nZXQtR0J5dGVzLnBhdGNo IGIvMDAwMi1mcGktYnl0ZS13cml0ZXItQWRkLUFQSXMtdG8td3JpdGUtYW5kLWdldC1HQnl0ZXMu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4ODNjYzkuLjAwMDAwMDAKLS0t IGEvMDAwMi1mcGktYnl0ZS13cml0ZXItQWRkLUFQSXMtdG8td3JpdGUtYW5kLWdldC1HQnl0ZXMu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotRnJvbSAxNDc2M2QyOWNmMWU1 ZWM5NjI4ZmQ2MzkwMzQ2NzVlOWIyMmFmZjFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFp bEAzdjFuMC5uZXQ+Ci1EYXRlOiBNb24sIDggSnVuIDIwMjYgMTQ6MTE6MDkgKzAyMDAKLVN1Ympl Y3Q6IFtQQVRDSCAyLzZdIGZwaS1ieXRlLXdyaXRlcjogQWRkIEFQSXMgdG8gd3JpdGUgYW5kIGdl dCBHQnl0ZXMKLQotSXQgbWFrZXMgaXQgaGFuZGllciB0byBoYW5kbGUgZGF0YSBlbGVtZW50cyB3 aXRob3V0IGhhdmluZyB0byBrZWVwIHNpemUKLWFuZCBkYXRhIHNlcGFyYXRlZAotLS0tCi0gZG9j L2xpYmZwcmludC0yLXNlY3Rpb25zLnR4dCB8ICAyICsrCi0gbGliZnByaW50L2ZwaS1ieXRlLXdy aXRlci5jICB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIGxpYmZw cmludC9mcGktYnl0ZS13cml0ZXIuaCAgfCAyMiArKysrKysrKysrKysrKysrKysrKwotIDMgZmls ZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZG9jL2xpYmZwcmlu dC0yLXNlY3Rpb25zLnR4dCBiL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQKLWluZGV4IDlm MzgwNGYuLjk5NWFkNTAgMTAwNjQ0Ci0tLS0gYS9kb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0 Ci0rKysgYi9kb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0Ci1AQCAtMjIwLDExICsyMjAsMTMg QEAgZnBpX2J5dGVfd3JpdGVyX2luaXQKLSBmcGlfYnl0ZV93cml0ZXJfaW5pdF93aXRoX3NpemUK LSBmcGlfYnl0ZV93cml0ZXJfaW5pdF93aXRoX2RhdGEKLSBmcGlfYnl0ZV93cml0ZXJfcmVzZXQK LStmcGlfYnl0ZV93cml0ZXJfcmVzZXRfYW5kX2dldF9ieXRlcwotIGZwaV9ieXRlX3dyaXRlcl9y ZXNldF9hbmRfZ2V0X2RhdGEKLSBmcGlfYnl0ZV93cml0ZXJfZnJlZQotIGZwaV9ieXRlX3dyaXRl cl9mcmVlX2FuZF9nZXRfZGF0YQotIGZwaV9ieXRlX3dyaXRlcl9nZXRfcmVtYWluaW5nCi0gZnBp X2J5dGVfd3JpdGVyX2Vuc3VyZV9mcmVlX3NwYWNlCi0rZnBpX2J5dGVfd3JpdGVyX3B1dF9ieXRl cwotIGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDgKLSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQx Nl9iZQotIGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDI0X2JlCi1kaWZmIC0tZ2l0IGEvbGliZnBy aW50L2ZwaS1ieXRlLXdyaXRlci5jIGIvbGliZnByaW50L2ZwaS1ieXRlLXdyaXRlci5jCi1pbmRl eCBjYjM1MTRhLi4wMGZmNDQ3IDEwMDY0NAotLS0tIGEvbGliZnByaW50L2ZwaS1ieXRlLXdyaXRl ci5jCi0rKysgYi9saWJmcHJpbnQvZnBpLWJ5dGUtd3JpdGVyLmMKLUBAIC0yMTksNiArMjE5LDM2 IEBAIGZwaV9ieXRlX3dyaXRlcl9yZXNldF9hbmRfZ2V0X2RhdGEgKEZwaUJ5dGVXcml0ZXIgKiB3 cml0ZXIpCi0gICByZXR1cm4gZGF0YTsKLSB9Ci0gCi0rLyoqCi0rICogZnBpX2J5dGVfd3JpdGVy X3Jlc2V0X2FuZF9nZXRfYnl0ZXM6Ci0rICogQHdyaXRlcjogI0ZwaUJ5dGVXcml0ZXIgaW5zdGFu Y2UKLSsgKgotKyAqIFJlc2V0cyBAd3JpdGVyIGFuZCByZXR1cm5zIHRoZSBjdXJyZW50IGRhdGEg YXMgYSAjR0J5dGVzLgotKyAqCi0rICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiB0aGUgY3Vy cmVudCBkYXRhIGFzIGEgI0dCeXRlcy4KLSsgKi8KLStHQnl0ZXMgKgotK2ZwaV9ieXRlX3dyaXRl cl9yZXNldF9hbmRfZ2V0X2J5dGVzIChGcGlCeXRlV3JpdGVyICogd3JpdGVyKQotK3sKLSsgIEdC eXRlcyAqYnl0ZXM7Ci0rCi0rICBnX3JldHVybl92YWxfaWZfZmFpbCAod3JpdGVyICE9IE5VTEws IE5VTEwpOwotKwotKyAgaWYgKCF3cml0ZXItPm93bmVkKQotKyAgICB7Ci0rICAgICAgYnl0ZXMg PSBnX2J5dGVzX25ldyAoZ19zdGVhbF9wb2ludGVyICgmd3JpdGVyLT5wYXJlbnQuZGF0YSksCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLT5wYXJlbnQuc2l6ZSk7Ci0rICAgIH0K LSsgIGVsc2UKLSsgICAgewotKyAgICAgIGJ5dGVzID0gZ19ieXRlc19uZXdfdGFrZSAoKGdwb2lu dGVyKSBnX3N0ZWFsX3BvaW50ZXIgKCZ3cml0ZXItPnBhcmVudC5kYXRhKSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHdyaXRlci0+cGFyZW50LnNpemUpOwotKyAgICB9Ci0rCi0r ICBmcGlfYnl0ZV93cml0ZXJfcmVzZXQgKHdyaXRlcik7Ci0rICByZXR1cm4gZ19zdGVhbF9wb2lu dGVyICgmYnl0ZXMpOwotK30KLSsKLSAvKioKLSAgKiBmcGlfYnl0ZV93cml0ZXJfZnJlZToKLSAg KiBAd3JpdGVyOiAoaW4pICh0cmFuc2ZlciBmdWxsKTogI0ZwaUJ5dGVXcml0ZXIgaW5zdGFuY2UK LUBAIC02MDIsNiArNjMyLDE1IEBAIENSRUFURV9XUklURV9TVFJJTkdfRlVOQyAoMzIsIGd1aW50 MzIpOwotICAqCi0gICogUmV0dXJuczogJVRSVUUgaWYgdGhlIHZhbHVlIGNvdWxkIGJlIHdyaXR0 ZW4KLSAgKi8KLSsvKioKLSsgKiBmcGlfYnl0ZV93cml0ZXJfcHV0X2J5dGVzOgotKyAqIEB3cml0 ZXI6ICNGcGlCeXRlV3JpdGVyIGluc3RhbmNlCi0rICogQGJ5dGVzOiAodHJhbnNmZXIgbm9uZSk6 IERhdGEgdG8gd3JpdGUKLSsgKgotKyAqIFdyaXRlcyB0aGUgY29udGVudHMgb2YgQGJ5dGVzIHRv IEB3cml0ZXIuCi0rICoKLSsgKiBSZXR1cm5zOiAlVFJVRSBpZiB0aGUgdmFsdWUgY291bGQgYmUg d3JpdHRlbgotKyAqLwotIC8qKgotICAqIGZwaV9ieXRlX3dyaXRlcl9maWxsOgotICAqIEB3cml0 ZXI6ICNGcGlCeXRlV3JpdGVyIGluc3RhbmNlCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2ZwaS1i eXRlLXdyaXRlci5oIGIvbGliZnByaW50L2ZwaS1ieXRlLXdyaXRlci5oCi1pbmRleCA5YjIxYjVm Li42OTllODVlIDEwMDY0NAotLS0tIGEvbGliZnByaW50L2ZwaS1ieXRlLXdyaXRlci5oCi0rKysg Yi9saWJmcHJpbnQvZnBpLWJ5dGUtd3JpdGVyLmgKLUBAIC03Nyw2ICs3Nyw5IEBAIHZvaWQgICAg ICAgICAgICBmcGlfYnl0ZV93cml0ZXJfcmVzZXQgICAgICAgICAgICAgICAgICAgKEZwaUJ5dGVX cml0ZXIgKndyaXRlcik7Ci0gCi0gZ3VpbnQ4ICogICAgICAgIGZwaV9ieXRlX3dyaXRlcl9yZXNl dF9hbmRfZ2V0X2RhdGEgICAgICAoRnBpQnl0ZVdyaXRlciAqd3JpdGVyKTsKLSAKLSsKLStHQnl0 ZXMgKiAgICAgICAgZnBpX2J5dGVfd3JpdGVyX3Jlc2V0X2FuZF9nZXRfYnl0ZXMgICAgIChGcGlC eXRlV3JpdGVyICp3cml0ZXIpOwotKwotIC8qKgotICAqIGZwaV9ieXRlX3dyaXRlcl9nZXRfcG9z OgotICAqIEB3cml0ZXI6ICNGcGlCeXRlV3JpdGVyIGluc3RhbmNlCi1AQCAtMjA0LDYgKzIwNyw5 IEBAIGdib29sZWFuICAgICAgICBmcGlfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0NjRfbGUgICAgKEZw aUJ5dGVXcml0ZXIgKndyaXRlciwgZ2RvdWJsCi0gZ2Jvb2xlYW4gICAgICAgIGZwaV9ieXRlX3dy aXRlcl9wdXRfZGF0YSAgICAgICAgICAoRnBpQnl0ZVdyaXRlciAqd3JpdGVyLCBjb25zdCBndWlu dDggKmRhdGEsIGd1aW50IHNpemUpOwotIAotIAotK2dib29sZWFuICAgICAgICBmcGlfYnl0ZV93 cml0ZXJfcHV0X2J5dGVzICAgICAgICAgKEZwaUJ5dGVXcml0ZXIgKndyaXRlciwgY29uc3QgR0J5 dGVzICpieXRlcyk7Ci0rCi0rCi0gZ2Jvb2xlYW4gICAgICAgIGZwaV9ieXRlX3dyaXRlcl9maWxs ICAgICAgICAgICAgICAoRnBpQnl0ZVdyaXRlciAqd3JpdGVyLCBndWludDggdmFsdWUsIGd1aW50 IHNpemUpOwotIAotIAotQEAgLTMzOCw2ICszNDQsMTggQEAgZnBpX2J5dGVfd3JpdGVyX3B1dF9k YXRhX2lubGluZSAoRnBpQnl0ZVdyaXRlciAqIHdyaXRlciwgY29uc3QgZ3VpbnQ4ICogZGF0YSwK LSAgIHJldHVybiBUUlVFOwotIH0KLSAKLStzdGF0aWMgaW5saW5lIGdib29sZWFuCi0rZnBpX2J5 dGVfd3JpdGVyX3B1dF9ieXRlc19pbmxpbmUgKEZwaUJ5dGVXcml0ZXIgKiB3cml0ZXIsIGNvbnN0 IEdCeXRlcyAqIGJ5dGVzKQotK3sKLSsgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh3cml0ZXIgIT0g TlVMTCwgRkFMU0UpOwotKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGJ5dGVzICE9IE5VTEwsIEZB TFNFKTsKLSsgIGNvbnN0IGd1aW50OCAqZGF0YTsKLSsgIGdzaXplIHNpemU7Ci0rCi0rICBkYXRh ID0gZ19ieXRlc19nZXRfZGF0YSAoKEdCeXRlcyAqKSBieXRlcywgJnNpemUpOwotKyAgcmV0dXJu IGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YV9pbmxpbmUgKHdyaXRlciwgZGF0YSwgc2l6ZSk7Ci0r fQotKwotIHN0YXRpYyBpbmxpbmUgdm9pZAotIGZwaV9ieXRlX3dyaXRlcl9maWxsX3VuY2hlY2tl ZCAoRnBpQnl0ZVdyaXRlciAqIHdyaXRlciwgZ3VpbnQ4IHZhbHVlLCBndWludCBzaXplKQotIHsK LUBAIC00MTMsNiArNDMxLDEwIEBAIGZwaV9ieXRlX3dyaXRlcl9maWxsX2lubGluZSAoRnBpQnl0 ZVdyaXRlciAqIHdyaXRlciwgZ3VpbnQ4IHZhbHVlLCBndWludCBzaXplKQotIAotICNkZWZpbmUg ZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhKHdyaXRlciwgZGF0YSwgc2l6ZSkgXAotICAgICBHX0xJ S0VMWSAoZnBpX2J5dGVfd3JpdGVyX3B1dF9kYXRhX2lubGluZSAod3JpdGVyLCBkYXRhLCBzaXpl KSkKLSsjZGVmaW5lIGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YV9zdGF0aWMod3JpdGVyLCBkYXRh KSBcCi0rICAgIEdfTElLRUxZIChmcGlfYnl0ZV93cml0ZXJfcHV0X2RhdGFfaW5saW5lICh3cml0 ZXIsIGRhdGEsIHNpemVvZiAoZGF0YSkpKQotKyNkZWZpbmUgZnBpX2J5dGVfd3JpdGVyX3B1dF9i eXRlcyh3cml0ZXIsIGJ5dGVzKSBcCi0rICAgIEdfTElLRUxZIChmcGlfYnl0ZV93cml0ZXJfcHV0 X2J5dGVzX2lubGluZSAod3JpdGVyLCBieXRlcykpCi0gI2RlZmluZSBmcGlfYnl0ZV93cml0ZXJf ZmlsbCh3cml0ZXIsIHZhbCwgc2l6ZSkgXAotICAgICBHX0xJS0VMWSAoZnBpX2J5dGVfd3JpdGVy X2ZpbGxfaW5saW5lICh3cml0ZXIsIHZhbCwgc2l6ZSkpCi0gCi0tLSAKLTIuNTQuMAotCgpkaWZm IC0tZ2l0IGEvMDAwMy1mcGktYnl0ZS1yZWFkZXItQWRkLXN1cHBvcnQtdG8tcmVhZC1hbmQtZ2V0 LXBlZWstR0J5LnBhdGNoIGIvMDAwMy1mcGktYnl0ZS1yZWFkZXItQWRkLXN1cHBvcnQtdG8tcmVh ZC1hbmQtZ2V0LXBlZWstR0J5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz NTI3YmFjLi4wMDAwMDAwCi0tLSBhLzAwMDMtZnBpLWJ5dGUtcmVhZGVyLUFkZC1zdXBwb3J0LXRv LXJlYWQtYW5kLWdldC1wZWVrLUdCeS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE4NyArMCww IEBACi1Gcm9tIGRjNDhhYjhiNDAxOGQxYzFjYzQ1Y2FmYWFmYmRhYzBlM2Q3NzI2ZmQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNhbj0yMD0y OFRyZXZpPUMzPUIxbz0yOT89IDxtYWlsQDN2MW4wLm5ldD4KLURhdGU6IE1vbiwgOCBKdW4gMjAy NiAxNDoxNToyOCArMDIwMAotU3ViamVjdDogW1BBVENIIDMvNl0gZnBpLWJ5dGUtcmVhZGVyOiBB ZGQgc3VwcG9ydCB0byByZWFkIGFuZCBnZXQvcGVlayBHQnl0ZXMKLQotLS0tCi0gZG9jL2xpYmZw cmludC0yLXNlY3Rpb25zLnR4dCB8ICA0ICsrKwotIGxpYmZwcmludC9mcGktYnl0ZS1yZWFkZXIu YyAgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSBsaWJmcHJpbnQv ZnBpLWJ5dGUtcmVhZGVyLmggIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwot IDMgZmlsZXMgY2hhbmdlZCwgOTYgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZG9jL2xp YmZwcmludC0yLXNlY3Rpb25zLnR4dCBiL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQKLWlu ZGV4IDk5NWFkNTAuLjUyZGRiNDIgMTAwNjQ0Ci0tLS0gYS9kb2MvbGliZnByaW50LTItc2VjdGlv bnMudHh0Ci0rKysgYi9kb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0Ci1AQCAtMTM5LDggKzEz OSwxMCBAQCBmcGlfYXNzZW1ibGVfbGluZXMKLSA8VElUTEU+RnBpQnl0ZVJlYWRlcjwvVElUTEU+ Ci0gRnBpQnl0ZVJlYWRlcgotIGZwaV9ieXRlX3JlYWRlcl9uZXcKLStmcGlfYnl0ZV9yZWFkZXJf bmV3X2J5dGVzCi0gZnBpX2J5dGVfcmVhZGVyX2ZyZWUKLSBmcGlfYnl0ZV9yZWFkZXJfaW5pdAot K2ZwaV9ieXRlX3JlYWRlcl9pbml0X2J5dGVzCi0gZnBpX2J5dGVfcmVhZGVyX3BlZWtfc3ViX3Jl YWRlcgotIGZwaV9ieXRlX3JlYWRlcl9nZXRfc3ViX3JlYWRlcgotIGZwaV9ieXRlX3JlYWRlcl9z ZXRfcG9zCi1AQCAtMTQ4LDYgKzE1MCw4IEBAIGZwaV9ieXRlX3JlYWRlcl9nZXRfcG9zCi0gZnBp X2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmcKLSBmcGlfYnl0ZV9yZWFkZXJfZ2V0X3NpemUKLSBm cGlfYnl0ZV9yZWFkZXJfc2tpcAotK2ZwaV9ieXRlX3JlYWRlcl9nZXRfYnl0ZXMKLStmcGlfYnl0 ZV9yZWFkZXJfcGVla19ieXRlcwotIGZwaV9ieXRlX3JlYWRlcl9nZXRfdWludDgKLSBmcGlfYnl0 ZV9yZWFkZXJfZ2V0X2ludDgKLSBmcGlfYnl0ZV9yZWFkZXJfcGVla191aW50OAotZGlmZiAtLWdp dCBhL2xpYmZwcmludC9mcGktYnl0ZS1yZWFkZXIuYyBiL2xpYmZwcmludC9mcGktYnl0ZS1yZWFk ZXIuYwotaW5kZXggMjNiYzVlNy4uMTU5MTgyNSAxMDA2NDQKLS0tLSBhL2xpYmZwcmludC9mcGkt Ynl0ZS1yZWFkZXIuYwotKysrIGIvbGliZnByaW50L2ZwaS1ieXRlLXJlYWRlci5jCi1AQCAtNjUs NiArNjUsMzEgQEAgZnBpX2J5dGVfcmVhZGVyX25ldyAoY29uc3QgZ3VpbnQ4ICogZGF0YSwgZ3Vp bnQgc2l6ZSkKLSAgIHJldHVybiByZXQ7Ci0gfQotIAotKy8qKgotKyAqIGZwaV9ieXRlX3JlYWRl cl9uZXdfYnl0ZXM6IChza2lwKQotKyAqIEBieXRlczogKGluKSAodHJhbnNmZXIgbm9uZSk6IGEg I0dCeXRlcyBpbnN0YW5jZSBmcm9tIHdoaWNoIHRoZQotKyAqICAgICAjRnBpQnl0ZVJlYWRlciBz aG91bGQgcmVhZAotKyAqCi0rICogQ3JlYXRlIGEgbmV3ICNGcGlCeXRlUmVhZGVyIGluc3RhbmNl LCB3aGljaCB3aWxsIHJlYWQgZnJvbSBAYnl0ZXMuCi0rICoKLSsgKiBGcmVlLWZ1bmN0aW9uOiBm cGlfYnl0ZV9yZWFkZXJfZnJlZQotKyAqCi0rICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBh IG5ldyAjRnBpQnl0ZVJlYWRlciBpbnN0YW5jZQotKyAqLwotK0ZwaUJ5dGVSZWFkZXIgKgotK2Zw aV9ieXRlX3JlYWRlcl9uZXdfYnl0ZXMgKEdCeXRlcyAqIGJ5dGVzKQotK3sKLSsgIGNvbnN0IGd1 aW50OCAqZGF0YTsKLSsgIGdzaXplIHNpemUgPSAwOwotKwotKyAgZ19yZXR1cm5fdmFsX2lmX2Zh aWwgKGJ5dGVzICE9IE5VTEwsIE5VTEwpOwotKwotKyAgZGF0YSA9IGdfYnl0ZXNfZ2V0X2RhdGEg KGJ5dGVzLCAmc2l6ZSk7Ci0rICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2l6ZSA8PSBHX01BWFVJ TlQsIE5VTEwpOwotKwotKyAgcmV0dXJuIGZwaV9ieXRlX3JlYWRlcl9uZXcgKGRhdGEsIChndWlu dCkgc2l6ZSk7Ci0rfQotKwotIC8qKgotICAqIGZwaV9ieXRlX3JlYWRlcl9mcmVlOgotICAqIEBy ZWFkZXI6IChpbikgKHRyYW5zZmVyIGZ1bGwpOiBhICNGcGlCeXRlUmVhZGVyIGluc3RhbmNlCi1A QCAtMTAwLDYgKzEyNSwzMCBAQCBmcGlfYnl0ZV9yZWFkZXJfaW5pdCAoRnBpQnl0ZVJlYWRlciAq IHJlYWRlciwgY29uc3QgZ3VpbnQ4ICogZGF0YSwgZ3VpbnQgc2l6ZSkKLSAgIHJlYWRlci0+Ynl0 ZSA9IDA7Ci0gfQotIAotKy8qKgotKyAqIGZwaV9ieXRlX3JlYWRlcl9pbml0X2J5dGVzOgotKyAq IEByZWFkZXI6IGEgI0ZwaUJ5dGVSZWFkZXIgaW5zdGFuY2UKLSsgKiBAYnl0ZXM6IChpbikgKHRy YW5zZmVyIG5vbmUpOiBhICNHQnl0ZXMgaW5zdGFuY2UgZnJvbSB3aGljaAotKyAqICAgICB0aGUg I0ZwaUJ5dGVSZWFkZXIgc2hvdWxkIHJlYWQKLSsgKgotKyAqIEluaXRpYWxpemVzIGEgI0ZwaUJ5 dGVSZWFkZXIgaW5zdGFuY2UgdG8gcmVhZCBmcm9tIEBieXRlcy4gVGhpcyBmdW5jdGlvbgotKyAq IGNhbiBiZSBjYWxsZWQgb24gYWxyZWFkeSBpbml0aWFsaXplZCBpbnN0YW5jZXMuCi0rICovCi0r RnBpQnl0ZVJlYWRlciAqCi0rZnBpX2J5dGVfcmVhZGVyX2luaXRfYnl0ZXMgKEZwaUJ5dGVSZWFk ZXIgKiByZWFkZXIsIEdCeXRlcyAqIGJ5dGVzKQotK3sKLSsgIGdfcmV0dXJuX3ZhbF9pZl9mYWls IChyZWFkZXIgIT0gTlVMTCwgTlVMTCk7Ci0rICBnX3JldHVybl92YWxfaWZfZmFpbCAoYnl0ZXMg IT0gTlVMTCwgTlVMTCk7Ci0rCi0rICBnc2l6ZSBzaXplID0gMDsKLSsgIGNvbnN0IGd1aW50OCAq ZGF0YSA9IGdfYnl0ZXNfZ2V0X2RhdGEgKGJ5dGVzLCAmc2l6ZSk7Ci0rCi0rICBnX3JldHVybl92 YWxfaWZfZmFpbCAoc2l6ZSA8PSBHX01BWFVJTlQsIE5VTEwpOwotKyAgZnBpX2J5dGVfcmVhZGVy X2luaXQgKHJlYWRlciwgZGF0YSwgKGd1aW50KSBzaXplKTsKLSsKLSsgIHJldHVybiByZWFkZXI7 Ci0rfQotKwotIC8qKgotICAqIGZwaV9ieXRlX3JlYWRlcl9wZWVrX3N1Yl9yZWFkZXI6IChza2lw KQotICAqIEByZWFkZXI6IGFuIGV4aXN0aW5nIGFuZCBpbml0aWFsaXplZCAjRnBpQnl0ZVJlYWRl ciBpbnN0YW5jZQotZGlmZiAtLWdpdCBhL2xpYmZwcmludC9mcGktYnl0ZS1yZWFkZXIuaCBiL2xp YmZwcmludC9mcGktYnl0ZS1yZWFkZXIuaAotaW5kZXggYzRlNjRkMi4uMDVhMzk4OSAxMDA2NDQK LS0tLSBhL2xpYmZwcmludC9mcGktYnl0ZS1yZWFkZXIuaAotKysrIGIvbGliZnByaW50L2ZwaS1i eXRlLXJlYWRlci5oCi1AQCAtNTAsNiArNTAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7Ci0gCi0gRnBp Qnl0ZVJlYWRlciAqIGZwaV9ieXRlX3JlYWRlcl9uZXcgICAgICAgICAgICAgKGNvbnN0IGd1aW50 OCAqZGF0YSwgZ3VpbnQgc2l6ZSkgR19HTlVDX01BTExPQzsKLSAKLStGcGlCeXRlUmVhZGVyICog ZnBpX2J5dGVfcmVhZGVyX25ld19ieXRlcyAgICAgICAoR0J5dGVzICpieXRlcykgR19HTlVDX01B TExPQzsKLSAKLSB2b2lkICAgICAgICAgICAgZnBpX2J5dGVfcmVhZGVyX2ZyZWUgICAgICAgICAg ICAoRnBpQnl0ZVJlYWRlciAqcmVhZGVyKTsKLSAKLUBAIC01Nyw2ICs1OCw5IEBAIHZvaWQgICAg ICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfZnJlZSAgICAgICAgICAgIChGcGlCeXRlUmVhZGVyICpy ZWFkZXIpOwotIHZvaWQgICAgICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfaW5pdCAgICAgICAgICAg IChGcGlCeXRlUmVhZGVyICpyZWFkZXIsIGNvbnN0IGd1aW50OCAqZGF0YSwgZ3VpbnQgc2l6ZSk7 Ci0gCi0gCi0rRnBpQnl0ZVJlYWRlciAqIGZwaV9ieXRlX3JlYWRlcl9pbml0X2J5dGVzICAgICAg KEZwaUJ5dGVSZWFkZXIgKnJlYWRlciwgR0J5dGVzICpieXRlcyk7Ci0rCi0rCi0gZ2Jvb2xlYW4g ICAgICAgIGZwaV9ieXRlX3JlYWRlcl9wZWVrX3N1Yl9yZWFkZXIgKEZwaUJ5dGVSZWFkZXIgKiBy ZWFkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZwaUJ5dGVSZWFkZXIgKiBzdWJfcmVhZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgc2l6ZSk7Ci1AQCAtMjIwLDYg KzIyNCwxMyBAQCBnYm9vbGVhbiAgICAgICAgZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhICAgICAg ICAoRnBpQnl0ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgcwotIAotIGdib29sZWFuICAgICAgICBm cGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhICAgICAgIChjb25zdCBGcGlCeXRlUmVhZGVyICogcmVh ZGVyLCBndWludCBzaXplLCBjb25zdCBndWludDggKiogdmFsKTsKLSAKLSsKLStHQnl0ZXMgKiAg ICAgICAgZnBpX2J5dGVfcmVhZGVyX2dldF9ieXRlcyAgICAgICAoRnBpQnl0ZVJlYWRlciAqcmVh ZGVyLCBndWludCBzaXplKTsKLSsKLSsKLStHQnl0ZXMgKiAgICAgICAgZnBpX2J5dGVfcmVhZGVy X3BlZWtfYnl0ZXMgICAgICAoY29uc3QgRnBpQnl0ZVJlYWRlciAqcmVhZGVyLCBndWludCBzaXpl KTsKLSsKLSsKLSAjZGVmaW5lIGZwaV9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nKHJlYWRlcixzdHIp IFwKLSAgICAgZnBpX2J5dGVfcmVhZGVyX2R1cF9zdHJpbmdfdXRmOChyZWFkZXIsc3RyKQotIAot QEAgLTY0Miw2ICs2NTMsMzQgQEAgZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YV9pbmxpbmUgKGNv bnN0IEZwaUJ5dGVSZWFkZXIgKiByZWFkZXIsIGd1aW50IHNpemUsIGNvbnMKLSAgIHJldHVybiBU UlVFOwotIH0KLSAKLStzdGF0aWMgaW5saW5lIEdCeXRlcyAqCi0rZnBpX2J5dGVfcmVhZGVyX3Bl ZWtfYnl0ZXNfaW5saW5lIChjb25zdCBGcGlCeXRlUmVhZGVyICpyZWFkZXIsIGd1aW50IHNpemUp Ci0rewotKyAgY29uc3QgZ3VpbnQ4ICpkYXRhOwotKwotKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg KHJlYWRlciAhPSBOVUxMLCBOVUxMKTsKLSsKLSsgIGlmIChHX1VOTElLRUxZIChzaXplID4gcmVh ZGVyLT5zaXplIHx8IGZwaV9ieXRlX3JlYWRlcl9nZXRfcmVtYWluaW5nX3VuY2hlY2tlZCAocmVh ZGVyKSA8IHNpemUpKQotKyAgICByZXR1cm4gTlVMTDsKLSsKLSsgIGRhdGEgPSBmcGlfYnl0ZV9y ZWFkZXJfcGVla19kYXRhX3VuY2hlY2tlZCAocmVhZGVyKTsKLSsgIHJldHVybiBnX2J5dGVzX25l d19zdGF0aWMgKGRhdGEsIHNpemUpOwotK30KLSsKLStzdGF0aWMgaW5saW5lIEdCeXRlcyAqCi0r ZnBpX2J5dGVfcmVhZGVyX2dldF9ieXRlc19pbmxpbmUgKEZwaUJ5dGVSZWFkZXIgKnJlYWRlciwg Z3VpbnQgc2l6ZSkKLSt7Ci0rICBjb25zdCBndWludDggKmRhdGE7Ci0rCi0rICBnX3JldHVybl92 YWxfaWZfZmFpbCAocmVhZGVyICE9IE5VTEwsIE5VTEwpOwotKwotKyAgaWYgKEdfVU5MSUtFTFkg KHNpemUgPiByZWFkZXItPnNpemUgfHwgZnBpX2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmdfdW5j aGVja2VkIChyZWFkZXIpIDwgc2l6ZSkpCi0rICAgIHJldHVybiBOVUxMOwotKwotKyAgZGF0YSA9 IGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YV91bmNoZWNrZWQgKHJlYWRlciwgc2l6ZSk7Ci0rICBy ZXR1cm4gZ19ieXRlc19uZXdfc3RhdGljIChkYXRhLCBzaXplKTsKLSt9Ci0rCi0gc3RhdGljIGlu bGluZSBndWludAotIGZwaV9ieXRlX3JlYWRlcl9nZXRfcG9zX2lubGluZSAoY29uc3QgRnBpQnl0 ZVJlYWRlciAqIHJlYWRlcikKLSB7Ci1AQCAtNjcyLDYgKzcxMSwxMCBAQCBmcGlfYnl0ZV9yZWFk ZXJfc2tpcF9pbmxpbmUgKEZwaUJ5dGVSZWFkZXIgKiByZWFkZXIsIGd1aW50IG5ieXRlcykKLSAg ICAgR19MSUtFTFkoZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YV9pbmxpbmUocmVhZGVyLHNpemUs dmFsKSkKLSAjZGVmaW5lIGZwaV9ieXRlX3JlYWRlcl9za2lwKHJlYWRlcixuYnl0ZXMpIFwKLSAg ICAgR19MSUtFTFkoZnBpX2J5dGVfcmVhZGVyX3NraXBfaW5saW5lKHJlYWRlcixuYnl0ZXMpKQot KyNkZWZpbmUgZnBpX2J5dGVfcmVhZGVyX2dldF9ieXRlcyhyZWFkZXIsc2l6ZSkgXAotKyAgICBm cGlfYnl0ZV9yZWFkZXJfZ2V0X2J5dGVzX2lubGluZShyZWFkZXIsc2l6ZSkKLSsjZGVmaW5lIGZw aV9ieXRlX3JlYWRlcl9wZWVrX2J5dGVzKHJlYWRlcixzaXplKSBcCi0rICAgIGZwaV9ieXRlX3Jl YWRlcl9wZWVrX2J5dGVzX2lubGluZShyZWFkZXIsc2l6ZSkKLSAKLSAjZW5kaWYgLyogRlBJX0JZ VEVfUkVBREVSX0RJU0FCTEVfSU5MSU5FUyAqLwotIAotLS0gCi0yLjU0LjAKLQoKZGlmZiAtLWdp dCBhLzAwMDQtZnBpLWJ5dGUtcmVhZGVyLUFkZC1zdXBwb3J0LXRvLXJlYWQtdG8tYS1zdGF0aWMt YnVmZi5wYXRjaCBiLzAwMDQtZnBpLWJ5dGUtcmVhZGVyLUFkZC1zdXBwb3J0LXRvLXJlYWQtdG8t YS1zdGF0aWMtYnVmZi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2ZlM2My Mi4uMDAwMDAwMAotLS0gYS8wMDA0LWZwaS1ieXRlLXJlYWRlci1BZGQtc3VwcG9ydC10by1yZWFk LXRvLWEtc3RhdGljLWJ1ZmYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNjAgKzAsMCBAQAot RnJvbSBmNmE4Y2FlNWI0ZjE1NTU3Njk3MDZmN2U1YjIyMjE0NWZkM2JlOGVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2 aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1EYXRlOiBNb24sIDggSnVuIDIwMjYgMTQ6 MTY6MzYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA0LzZdIGZwaS1ieXRlLXJlYWRlcjogQWRkIHN1 cHBvcnQgdG8gcmVhZCB0byBhIHN0YXRpYyBidWZmZXIKLQotVGhpcyB3b3JrcyB0aHJvdWdoIG1h Y3JvcyB3aGVuIHRoZSBzaXplIG9mIGEgYnVmZmVyIGlzIHN0YXRpY2FsbHkKLWRlZmluZWQKLS0t LQotIGRvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQgfCAgMiArKwotIGxpYmZwcmludC9mcGkt Ynl0ZS1yZWFkZXIuYyAgfCAzNSArKysrKysrKysrKysrKysrKysrKysrCi0gbGliZnByaW50L2Zw aS1ieXRlLXJlYWRlci5oICB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwotIDMgZmlsZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZG9j L2xpYmZwcmludC0yLXNlY3Rpb25zLnR4dCBiL2RvYy9saWJmcHJpbnQtMi1zZWN0aW9ucy50eHQK LWluZGV4IDUyZGRiNDIuLjM5MWYxZjQgMTAwNjQ0Ci0tLS0gYS9kb2MvbGliZnByaW50LTItc2Vj dGlvbnMudHh0Ci0rKysgYi9kb2MvbGliZnByaW50LTItc2VjdGlvbnMudHh0Ci1AQCAtMTk4LDYg KzE5OCw4IEBAIGZwaV9ieXRlX3JlYWRlcl9nZXRfZmxvYXQ2NF9iZQotIGZwaV9ieXRlX3JlYWRl cl9wZWVrX2Zsb2F0NjRfYmUKLSBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEKLSBmcGlfYnl0ZV9y ZWFkZXJfcGVla19kYXRhCi0rZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhX3N0YXRpYwotK2ZwaV9i eXRlX3JlYWRlcl9wZWVrX2RhdGFfc3RhdGljCi0gZnBpX2J5dGVfcmVhZGVyX2R1cF9kYXRhCi0g ZnBpX2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMgotIGZwaV9ieXRlX3JlYWRlcl9tYXNr ZWRfc2Nhbl91aW50MzJfcGVlawotZGlmZiAtLWdpdCBhL2xpYmZwcmludC9mcGktYnl0ZS1yZWFk ZXIuYyBiL2xpYmZwcmludC9mcGktYnl0ZS1yZWFkZXIuYwotaW5kZXggMTU5MTgyNS4uOTcwOWE0 MSAxMDA2NDQKLS0tLSBhL2xpYmZwcmludC9mcGktYnl0ZS1yZWFkZXIuYwotKysrIGIvbGliZnBy aW50L2ZwaS1ieXRlLXJlYWRlci5jCi1AQCAtODQ4LDYgKzg0OCw0MSBAQCBmcGlfYnl0ZV9yZWFk ZXJfcGVla19kYXRhIChjb25zdCBGcGlCeXRlUmVhZGVyICogcmVhZGVyLCBndWludCBzaXplLAot ICAgcmV0dXJuIGZwaV9ieXRlX3JlYWRlcl9wZWVrX2RhdGFfaW5saW5lIChyZWFkZXIsIHNpemUs IHZhbCk7Ci0gfQotIAotKy8qKgotKyAqIGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YV9maXhlZDoK LSsgKiBAcmVhZGVyOiBhICNGcGlCeXRlUmVhZGVyIGluc3RhbmNlCi0rICogQHNpemU6IFNpemUg aW4gYnl0ZXMKLSsgKiBAdmFsOiAob3V0KSAoYXJyYXkgbGVuZ3RoPXNpemUpOiBhZGRyZXNzIG9m IGEgYnVmZmVyIHRvIGNvcHkgZGF0YSBpbnRvCi0rICoKLSsgKiBDb3BpZXMgQHNpemUgYnl0ZXMg ZnJvbSB0aGUgY3VycmVudCBkYXRhIHBvc2l0aW9uIGludG8gQHZhbCBpZiBhdAotKyAqIGxlYXN0 IEBzaXplIGJ5dGVzIGFyZSBsZWZ0LCBhbmQgdXBkYXRlcyB0aGUgY3VycmVudCBwb3NpdGlvbi4K LSsgKgotKyAqIFJldHVybnM6ICVUUlVFIGlmIHN1Y2Nlc3NmdWwsICVGQUxTRSBvdGhlcndpc2Uu Ci0rICovCi0rZ2Jvb2xlYW4KLSsoZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhX3N0YXRpYykgKEZw aUJ5dGVSZWFkZXIgKiByZWFkZXIsIGd1aW50IHNpemUsCi0rICAgIGNvbnN0IGd1aW50OCAqIHZh bCkKLSt7Ci0rICByZXR1cm4gKGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YV9pbmxpbmVfc3RhdGlj KSAocmVhZGVyLCBzaXplLCB2YWwpOwotK30KLSsKLSsvKioKLSsgKiBmcGlfYnl0ZV9yZWFkZXJf cGVla19kYXRhX2ZpeGVkOgotKyAqIEByZWFkZXI6IGEgI0ZwaUJ5dGVSZWFkZXIgaW5zdGFuY2UK LSsgKiBAc2l6ZTogU2l6ZSBpbiBieXRlcwotKyAqIEB2YWw6IChvdXQpIChhcnJheSBsZW5ndGg9 c2l6ZSk6IGFkZHJlc3Mgb2YgYSBidWZmZXIgdG8gY29weSBkYXRhIGludG8KLSsgKgotKyAqIExp a2UgZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhX2ZpeGVkKCkgYnV0IGRvZXMgbm90IGFkdmFuY2Ug dGhlIHBvc2l0aW9uLgotKyAqCi0rICogUmV0dXJuczogJVRSVUUgaWYgc3VjY2Vzc2Z1bCwgJUZB TFNFIG90aGVyd2lzZS4KLSsgKi8KLStnYm9vbGVhbgotKyhmcGlfYnl0ZV9yZWFkZXJfcGVla19k YXRhX3N0YXRpYykgKGNvbnN0IEZwaUJ5dGVSZWFkZXIgKiByZWFkZXIsIGd1aW50IHNpemUsCi0r ICAgIGd1aW50OCAqIHZhbCkKLSt7Ci0rICByZXR1cm4gKGZwaV9ieXRlX3JlYWRlcl9wZWVrX2Rh dGFfaW5saW5lX3N0YXRpYykgKHJlYWRlciwgc2l6ZSwgdmFsKTsKLSt9Ci0rCi0gLyoqCi0gICog ZnBpX2J5dGVfcmVhZGVyX2R1cF9kYXRhOgotICAqIEByZWFkZXI6IGEgI0ZwaUJ5dGVSZWFkZXIg aW5zdGFuY2UKLWRpZmYgLS1naXQgYS9saWJmcHJpbnQvZnBpLWJ5dGUtcmVhZGVyLmggYi9saWJm cHJpbnQvZnBpLWJ5dGUtcmVhZGVyLmgKLWluZGV4IDA1YTM5ODkuLjI3ODk1OWYgMTAwNjQ0Ci0t LS0gYS9saWJmcHJpbnQvZnBpLWJ5dGUtcmVhZGVyLmgKLSsrKyBiL2xpYmZwcmludC9mcGktYnl0 ZS1yZWFkZXIuaAotQEAgLTIyMiw5ICsyMjIsMTUgQEAgZ2Jvb2xlYW4gICAgICAgIGZwaV9ieXRl X3JlYWRlcl9kdXBfZGF0YSAgICAgICAgKEZwaUJ5dGVSZWFkZXIgKiByZWFkZXIsIGd1aW50IHMK LSBnYm9vbGVhbiAgICAgICAgZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhICAgICAgICAoRnBpQnl0 ZVJlYWRlciAqIHJlYWRlciwgZ3VpbnQgc2l6ZSwgY29uc3QgZ3VpbnQ4ICoqIHZhbCk7Ci0gCi0g Ci0rZ2Jvb2xlYW4gICAgICAgIGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YV9zdGF0aWMgKEZwaUJ5 dGVSZWFkZXIgKiByZWFkZXIsIGd1aW50IHNpemUsIGNvbnN0IGd1aW50OCAgKiB2YWwpOwotKwot KwotIGdib29sZWFuICAgICAgICBmcGlfYnl0ZV9yZWFkZXJfcGVla19kYXRhICAgICAgIChjb25z dCBGcGlCeXRlUmVhZGVyICogcmVhZGVyLCBndWludCBzaXplLCBjb25zdCBndWludDggKiogdmFs KTsKLSAKLSAKLStnYm9vbGVhbiAgICAgICAgZnBpX2J5dGVfcmVhZGVyX3BlZWtfZGF0YV9zdGF0 aWMgKGNvbnN0IEZwaUJ5dGVSZWFkZXIgKiByZWFkZXIsIGd1aW50IHNpemUsIGd1aW50OCAgICog dmFsKTsKLSsKLSsKLSBHQnl0ZXMgKiAgICAgICAgZnBpX2J5dGVfcmVhZGVyX2dldF9ieXRlcyAg ICAgICAoRnBpQnl0ZVJlYWRlciAqcmVhZGVyLCBndWludCBzaXplKTsKLSAKLSAKLUBAIC02ODEs NiArNjg3LDMyIEBAIGZwaV9ieXRlX3JlYWRlcl9nZXRfYnl0ZXNfaW5saW5lIChGcGlCeXRlUmVh ZGVyICpyZWFkZXIsIGd1aW50IHNpemUpCi0gICByZXR1cm4gZ19ieXRlc19uZXdfc3RhdGljIChk YXRhLCBzaXplKTsKLSB9Ci0gCi0rc3RhdGljIGlubGluZSBnYm9vbGVhbgotKyhmcGlfYnl0ZV9y ZWFkZXJfZ2V0X2RhdGFfaW5saW5lX3N0YXRpYykgKEZwaUJ5dGVSZWFkZXIgKiByZWFkZXIsIGd1 aW50IHNpemUsIGNvbnN0IGd1aW50OCAqIHZhbCkKLSt7Ci0rICBnX3JldHVybl92YWxfaWZfZmFp bCAocmVhZGVyICE9IE5VTEwsIEZBTFNFKTsKLSsgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh2YWwg IT0gTlVMTCwgRkFMU0UpOwotKwotKyAgaWYgKEdfVU5MSUtFTFkgKHNpemUgPiByZWFkZXItPnNp emUgfHwgZnBpX2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmdfdW5jaGVja2VkIChyZWFkZXIpIDwg c2l6ZSkpCi0rICAgIHJldHVybiBGQUxTRTsKLSsKLSsgIG1lbWNweSAoKHZvaWQgKikgdmFsLCBm cGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfdW5jaGVja2VkIChyZWFkZXIsIHNpemUpLCBzaXplKTsK LSsgIHJldHVybiBUUlVFOwotK30KLSsKLStzdGF0aWMgaW5saW5lIGdib29sZWFuCi0rKGZwaV9i eXRlX3JlYWRlcl9wZWVrX2RhdGFfaW5saW5lX3N0YXRpYykgKGNvbnN0IEZwaUJ5dGVSZWFkZXIg KiByZWFkZXIsIGd1aW50IHNpemUsIGd1aW50OCAqIHZhbCkKLSt7Ci0rICBnX3JldHVybl92YWxf aWZfZmFpbCAocmVhZGVyICE9IE5VTEwsIEZBTFNFKTsKLSsgIGdfcmV0dXJuX3ZhbF9pZl9mYWls ICh2YWwgIT0gTlVMTCwgRkFMU0UpOwotKwotKyAgaWYgKEdfVU5MSUtFTFkgKHNpemUgPiByZWFk ZXItPnNpemUgfHwgZnBpX2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmdfdW5jaGVja2VkIChyZWFk ZXIpIDwgc2l6ZSkpCi0rICAgIHJldHVybiBGQUxTRTsKLSsKLSsgIG1lbWNweSAodmFsLCBmcGlf Ynl0ZV9yZWFkZXJfcGVla19kYXRhX3VuY2hlY2tlZCAocmVhZGVyKSwgc2l6ZSk7Ci0rICByZXR1 cm4gVFJVRTsKLSt9Ci0rCi0gc3RhdGljIGlubGluZSBndWludAotIGZwaV9ieXRlX3JlYWRlcl9n ZXRfcG9zX2lubGluZSAoY29uc3QgRnBpQnl0ZVJlYWRlciAqIHJlYWRlcikKLSB7Ci1AQCAtNzE2 LDYgKzc0OCwzMSBAQCBmcGlfYnl0ZV9yZWFkZXJfc2tpcF9pbmxpbmUgKEZwaUJ5dGVSZWFkZXIg KiByZWFkZXIsIGd1aW50IG5ieXRlcykKLSAjZGVmaW5lIGZwaV9ieXRlX3JlYWRlcl9wZWVrX2J5 dGVzKHJlYWRlcixzaXplKSBcCi0gICAgIGZwaV9ieXRlX3JlYWRlcl9wZWVrX2J5dGVzX2lubGlu ZShyZWFkZXIsc2l6ZSkKLSAKLSsvKioKLSsgKiBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfc3Rh dGljOgotKyAqIEByZWFkZXI6IGEgI0ZwaUJ5dGVSZWFkZXIKLSsgKiBAdmFsOiBmaXhlZC1zaXpl IGFycmF5IChlLmcuIGB1aW50OF90IGJ1ZlszMl1gKQotKyAqCi0rICogUmVhZHMgQHNpemUgYnl0 ZXMgZnJvbSBAcmVhZGVyIGRpcmVjdGx5IGludG8gQHZhbCwgd2hlcmUgQHNpemUgaXMKLSsgKiBk ZWR1Y2VkIHZpYSBgc2l6ZW9mKClgIC0gb25seSBzYWZlIHdpdGggdHJ1ZSBDIGFycmF5cy4KLSsg KgotKyAqIFJldHVybnM6ICVUUlVFIG9uIHN1Y2Nlc3MsICVGQUxTRSBvdGhlcndpc2UuCi0rICov Ci0rI2RlZmluZSBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGFfc3RhdGljKHJlYWRlcix2YWwpIFwK LSsgICAgKGZwaV9ieXRlX3JlYWRlcl9nZXRfZGF0YV9zdGF0aWMpIChyZWFkZXIsc2l6ZW9mKHZh bCksdmFsKQotKwotKy8qKgotKyAqIGZwaV9ieXRlX3JlYWRlcl9wZWVrX2RhdGFfc3RhdGljOgot KyAqIEByZWFkZXI6IGEgI0ZwaUJ5dGVSZWFkZXIKLSsgKiBAdmFsOiBmaXhlZC1zaXplIGFycmF5 IChlLmcuIGB1aW50OF90IGJ1ZlszMl1gKQotKyAqCi0rICogTGlrZSBmcGlfYnl0ZV9yZWFkZXJf Z2V0X2RhdGFfc3RhdGljKCkgYnV0IGRvZXMgbm90IGFkdmFuY2UgdGhlIHBvc2l0aW9uLgotKyAq Ci0rICogUmV0dXJuczogJVRSVUUgb24gc3VjY2VzcywgJUZBTFNFIG90aGVyd2lzZS4KLSsgKi8K LSsjZGVmaW5lIGZwaV9ieXRlX3JlYWRlcl9wZWVrX2RhdGFfc3RhdGljKHJlYWRlcix2YWwpIFwK LSsgICAgKGZwaV9ieXRlX3JlYWRlcl9wZWVrX2RhdGFfc3RhdGljKSAocmVhZGVyLHNpemVvZih2 YWwpLHZhbCkKLSsKLSAjZW5kaWYgLyogRlBJX0JZVEVfUkVBREVSX0RJU0FCTEVfSU5MSU5FUyAq LwotIAotIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChGcGlCeXRlUmVhZGVyLCBmcGlf Ynl0ZV9yZWFkZXJfZnJlZSk7Ci0tLSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAwNS1mcGkt dXNiLXRyYW5zZmVyLUFkZC1taXNzaW5nLWRlZmluaXRpb24tb2Ytc2V0X3Nob3J0LnBhdGNoIGIv MDAwNS1mcGktdXNiLXRyYW5zZmVyLUFkZC1taXNzaW5nLWRlZmluaXRpb24tb2Ytc2V0X3Nob3J0 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTY3ZGNlLi4wMDAwMDAwCi0t LSBhLzAwMDUtZnBpLXVzYi10cmFuc2Zlci1BZGQtbWlzc2luZy1kZWZpbml0aW9uLW9mLXNldF9z aG9ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLUZyb20gZTdjODBlNzQ4 ZWQzYjAwYzQzMmYzYzAwZjJlYzdiNzI2MjUyN2RiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5Pz0g PG1haWxAM3YxbjAubmV0PgotRGF0ZTogTW9uLCA4IEp1biAyMDI2IDEzOjI3OjM2ICswMjAwCi1T dWJqZWN0OiBbUEFUQ0ggNS82XSBmcGktdXNiLXRyYW5zZmVyOiBBZGQgbWlzc2luZyBkZWZpbml0 aW9uIG9mCi0gc2V0X3Nob3J0X2Vycm9yKCkKLQotSXQgd2FzIGluIHRoZSBoZWFkZXIgYnV0IG5v dCBpbXBsZW1lbnRlZAotLS0tCi0gbGliZnByaW50L2ZwaS11c2ItdHJhbnNmZXIuYyB8IDIwICsr KysrKysrKysrKysrKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKykKLQot ZGlmZiAtLWdpdCBhL2xpYmZwcmludC9mcGktdXNiLXRyYW5zZmVyLmMgYi9saWJmcHJpbnQvZnBp LXVzYi10cmFuc2Zlci5jCi1pbmRleCBhYzRmNjBjLi4wNjdhZTE4IDEwMDY0NAotLS0tIGEvbGli ZnByaW50L2ZwaS11c2ItdHJhbnNmZXIuYwotKysrIGIvbGliZnByaW50L2ZwaS11c2ItdHJhbnNm ZXIuYwotQEAgLTU0OCwzICs1NDgsMjMgQEAgZnBpX3VzYl90cmFuc2Zlcl9zdWJtaXRfc3luYyAo RnBpVXNiVHJhbnNmZXIgKnRyYW5zZmVyLAotIAotICAgcmV0dXJuIHJlczsKLSB9Ci0rCi0rLyoq Ci0rICogZnBpX3VzYl90cmFuc2Zlcl9zZXRfc2hvcnRfZXJyb3I6Ci0rICogQHRyYW5zZmVyOiBU aGUgdHJhbnNmZXIgdG8gc3VibWl0LCBtdXN0IGhhdmUgYmVlbiBmaWxsZWQuCi0rICogQHNob3J0 X2lzX2Vycm9yOiBXaGV0aGVyIGEgc2hvcnQgdHJhbnNmZXIgc2hvdWxkIGJlIGNvbnNpZGVyZWQg YW4gZXJyb3IKLSsgKgotKyAqIFNldHMgd2hldGhlciBhIHNob3J0IHRyYW5zZmVyIChhIHRyYW5z ZmVyIGluIHdoaWNoIHRoZSB0cmFuc2ZlcnJlZCBsZW5ndGgKLSsgKiBkb2VzIG5vdCBtYXRjaCB0 aGUgZXhwZWN0ZWQgbGVuZ3RoKSBzaG91bGQgYmUgY29uc2lkZXJlZCBhbiBlcnJvcgotKyAqCi0r ICogQnkgZGVmYXVsdCwgc2hvcnQgdHJhbnNmZXJzIGFyZSBub3QgY29uc2lkZXJlZCBhbiBlcnJv ciwgYnV0Ci0rICogZHJpdmVycyBjYW4gZW5mb3JjZSBhIGZ1cnRoZXIgY2hlY2sgYnkgc2V0dGlu ZyB0aGlzIGZsYWcuCi0rICovCi0rdm9pZAotK2ZwaV91c2JfdHJhbnNmZXJfc2V0X3Nob3J0X2Vy cm9yIChGcGlVc2JUcmFuc2ZlciAqdHJhbnNmZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdib29sZWFuICAgICAgICBzaG9ydF9pc19lcnJvcikKLSt7Ci0rICBnX3JldHVy bl9pZl9mYWlsICh0cmFuc2Zlcik7Ci0rCi0rICB0cmFuc2Zlci0+c2hvcnRfaXNfZXJyb3IgPSBz aG9ydF9pc19lcnJvcjsKLSt9Ci0tLSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAwNi1mcGkt dXNiLXRyYW5zZmVyLVdyYXAtZ19lcnJvcl9uZXctYXJndW1lbnRzLnBhdGNoIGIvMDAwNi1mcGkt dXNiLXRyYW5zZmVyLVdyYXAtZ19lcnJvcl9uZXctYXJndW1lbnRzLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwNjcxNjgyLi4wMDAwMDAwCi0tLSBhLzAwMDYtZnBpLXVzYi10 cmFuc2Zlci1XcmFwLWdfZXJyb3JfbmV3LWFyZ3VtZW50cy5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDI2ICswLDAgQEAKLUZyb20gOWQ0ZTdmYzg3Yjc2ODE5YzA0OWZjMjNmOTJiM2RjY2RhZjM2 NWU3NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRy ZXZpc2FuPTIwPTI4VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0PgotRGF0ZTogTW9u LCA4IEp1biAyMDI2IDE0OjM2OjEwICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggNi82XSBmcGktdXNi LXRyYW5zZmVyOiBXcmFwIGdfZXJyb3JfbmV3IGFyZ3VtZW50cwotCi0tLS0KLSBsaWJmcHJpbnQv ZnBpLXVzYi10cmFuc2Zlci5jIHwgMyArKy0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9saWJmcHJpbnQvZnBpLXVzYi10cmFu c2Zlci5jIGIvbGliZnByaW50L2ZwaS11c2ItdHJhbnNmZXIuYwotaW5kZXggMDY3YWUxOC4uNDQ4 YzU2NiAxMDA2NDQKLS0tLSBhL2xpYmZwcmludC9mcGktdXNiLXRyYW5zZmVyLmMKLSsrKyBiL2xp YmZwcmludC9mcGktdXNiLXRyYW5zZmVyLmMKLUBAIC0zNDQsNyArMzQ0LDggQEAgdHJhbnNmZXJf ZmluaXNoX2NiIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3Bv aW50ZXIgdXNlcl9kYXQKLSAgICAgewotICAgICAgIGVycm9yID0gZ19lcnJvcl9uZXcgKEdfVVNC X0RFVklDRV9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1VTQl9ERVZJQ0Vf RVJST1JfSU8sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVuZXhwZWN0ZWQgc2hvcnQg ZXJyb3Igb2YgJXpkIHNpemUgKGV4cGVjdGVkICV6ZCkiLCB0cmFuc2Zlci0+YWN0dWFsX2xlbmd0 aCwgdHJhbnNmZXItPmxlbmd0aCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVuZXhw ZWN0ZWQgc2hvcnQgZXJyb3Igb2YgJXpkIHNpemUgKGV4cGVjdGVkICV6ZCkiLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyLT5hY3R1YWxfbGVuZ3RoLCB0cmFuc2Zlci0+bGVu Z3RoKTsKLSAgICAgfQotIAotICAgY2FsbGJhY2sgPSB0cmFuc2Zlci0+Y2FsbGJhY2s7Ci0tLSAK LTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMmM3ODQyYzkwNTE0N2EyZDEyN2MxYjE2OGIyZTlkNDMu cGF0Y2ggYi8yYzc4NDJjOTA1MTQ3YTJkMTI3YzFiMTY4YjJlOWQ0My5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMGY2Nzk5NS4uMDAwMDAwMAotLS0gYS8yYzc4NDJjOTA1MTQ3 YTJkMTI3YzFiMTY4YjJlOWQ0My5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAK LUZyb20gMmM3ODQyYzkwNTE0N2EyZDEyN2MxYjE2OGIyZTlkNDMyYjhjOTFhNCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IERhbmllbCBTY2hhZWZlciA8ZGhzQGZyYW1lLndvcms+Ci1E YXRlOiBUaHUsIDEyIEZlYiAyMDI2IDE2OjA4OjMxICswODAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZv Y2FsdGVjaF9tb2M6IGFkZCBuZXcgcGlkOjB4MDc3QSBwaWQ6MHgwNzlBCi0KLVRlc3RlZCBvbiB3 b3JraW5nIGhhcmR3YXJlIHdpdGggZXhhbXBsZXMvZW5yb2xsIGFuZCBleGFtcGxlcy92ZXJpZnkK LQotU2lnbmVkLW9mZi1ieTogRGFuaWVsIFNjaGFlZmVyIDxkaHNAZnJhbWUud29yaz4KLS0tLQot IGRhdGEvYXV0b3N1c3BlbmQuaHdkYiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArKwot IGxpYmZwcmludC9kcml2ZXJzL2ZvY2FsdGVjaF9tb2MvZm9jYWx0ZWNoX21vYy5jIHwgMiArKwot IDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9kYXRhL2F1 dG9zdXNwZW5kLmh3ZGIgYi9kYXRhL2F1dG9zdXNwZW5kLmh3ZGIKLWluZGV4IGY0OWUxN2Q2Li45 ZDFmZDM1MSAxMDA2NDQKLS0tLSBhL2RhdGEvYXV0b3N1c3BlbmQuaHdkYgotKysrIGIvZGF0YS9h dXRvc3VzcGVuZC5od2RiCi1AQCAtMTg1LDYgKzE4NSw4IEBAIHVzYjp2MjgwOHBBOTlBKgotIHVz Yjp2MjgwOHBBNTdBKgotIHVzYjp2MjgwOHBBNzhBKgotIHVzYjp2MjgwOHAxNTc5KgotK3VzYjp2 MjgwOHAwNzdBKgotK3VzYjp2MjgwOHAwNzlBKgotICBJRF9BVVRPU1VTUEVORD0xCi0gIElEX1BF UlNJU1Q9MAotIAotZGlmZiAtLWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2ZvY2FsdGVjaF9tb2Mv Zm9jYWx0ZWNoX21vYy5jIGIvbGliZnByaW50L2RyaXZlcnMvZm9jYWx0ZWNoX21vYy9mb2NhbHRl Y2hfbW9jLmMKLWluZGV4IDJkNDEwZjg4Li44YmQ5M2U0YiAxMDA2NDQKLS0tLSBhL2xpYmZwcmlu dC9kcml2ZXJzL2ZvY2FsdGVjaF9tb2MvZm9jYWx0ZWNoX21vYy5jCi0rKysgYi9saWJmcHJpbnQv ZHJpdmVycy9mb2NhbHRlY2hfbW9jL2ZvY2FsdGVjaF9tb2MuYwotQEAgLTM1LDYgKzM1LDggQEAg c3RhdGljIGNvbnN0IEZwSWRFbnRyeSBpZF90YWJsZVtdID0gewotICAgeyAudmlkID0gMHgyODA4 LCAgLnBpZCA9IDB4YTU3YSwgIH0sCi0gICB7IC52aWQgPSAweDI4MDgsICAucGlkID0gMHhhNzhh LCAgfSwKLSAgIHsgLnZpZCA9IDB4MjgwOCwgIC5waWQgPSAweDE1NzksICB9LAotKyAgeyAudmlk ID0gMHgyODA4LCAgLnBpZCA9IDB4MDc3QSwgIH0sCi0rICB7IC52aWQgPSAweDI4MDgsICAucGlk ID0gMHgwNzlBLCAgfSwKLSAgIHsgLnZpZCA9IDAsICAucGlkID0gMCwgIC5kcml2ZXJfZGF0YSA9 IDAgfSwgICAvKiB0ZXJtaW5hdGluZyBlbnRyeSAqLwotIH07Ci0gCi0tLSAKLUdpdExhYgotCgpk aWZmIC0tZ2l0IGEvZWdpc19yZWFkZXIucGF0Y2ggYi9lZ2lzX3JlYWRlci5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdlODNlNS4uMDAwMDAwMAotLS0gYS9lZ2lzX3JlYWRl ci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzMDQgKzAsMCBAQAotRnJvbSA5YmRkZDkwZjA2 ZjRkOTk5NzM4OTc0MGI0ODBlNzFkMzJiYmM4NTlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogSmFzb24gSHVhbmcgPGphc29uLmh1YW5nQGVnaXN0ZWMuY29tPgotRGF0ZTogV2VkLCAy OCBKYW4gMjAyNiAyMTowNjo0OCArMDgwMAotU3ViamVjdDogW1BBVENIIDAxLzEzXSBlZ2lzX2V0 dTkwNTogQWRkIDFjN2E6MDVhZSBhbmQgMWM3YTo5MjAxIGZpbmdlcnByaW50Ci0gcmVhZGVycwot Ci0tLS0KLSBkYXRhL2F1dG9zdXNwZW5kLmh3ZGIgICAgICAgICAgICAgICAgICAgfCAgICA2ICsK LSBsaWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgfCAxNjM1ICsrKysrKysr KysrKysrKysrKysrKysrCi0gbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5o IHwgIDIxNCArKysKLSBsaWJmcHJpbnQvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgfCAg ICAyICsKLSBtZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsK LSB0ZXN0cy9lZ2lzX2V0dTkwNS9jdXN0b20ucGNhcG5nICAgICAgICAgfCAgQmluIDAgLT4gMzM2 NDQgYnl0ZXMKLSB0ZXN0cy9lZ2lzX2V0dTkwNS9jdXN0b20ucHkgICAgICAgICAgICAgfCAgMTA5 ICsrCi0gdGVzdHMvZWdpc19ldHU5MDUvZGV2aWNlICAgICAgICAgICAgICAgIHwgIDM0OCArKysr KwotIHRlc3RzL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwotIDkg ZmlsZXMgY2hhbmdlZCwgMjMxNyBpbnNlcnRpb25zKCspCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGxp YmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotIGNyZWF0ZSBtb2RlIDEwMDY0 NCBsaWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmgKLSBjcmVhdGUgbW9kZSAx MDA2NDQgdGVzdHMvZWdpc19ldHU5MDUvY3VzdG9tLnBjYXBuZwotIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0cy9lZ2lzX2V0dTkwNS9jdXN0b20ucHkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMv ZWdpc19ldHU5MDUvZGV2aWNlCi0KLWRpZmYgLS1naXQgYS9kYXRhL2F1dG9zdXNwZW5kLmh3ZGIg Yi9kYXRhL2F1dG9zdXNwZW5kLmh3ZGIKLWluZGV4IDU1YjVjYjRjLi5hM2ZmMDBhZiAxMDA2NDQK LS0tLSBhL2RhdGEvYXV0b3N1c3BlbmQuaHdkYgotKysrIGIvZGF0YS9hdXRvc3VzcGVuZC5od2Ri Ci1AQCAtNzcsNiArNzcsMTIgQEAgdXNiOnYxQzdBcDA1NzEqCi0gIElEX0FVVE9TVVNQRU5EPTEK LSAgSURfUEVSU0lTVD0wCi0gCi0rIyBTdXBwb3J0ZWQgYnkgbGliZnByaW50IGRyaXZlciBlZ2lz X2V0dTkwNQotK3VzYjp2MUM3QXAwNUFFKgotK3VzYjp2MUM3QXA5MjAxKgotKyBJRF9BVVRPU1VT UEVORD0xCi0rIElEX1BFUlNJU1Q9MAotKwotICMgU3VwcG9ydGVkIGJ5IGxpYmZwcmludCBkcml2 ZXIgZWdpc21vYwotIHVzYjp2MUM3QXAwNTgyKgotIHVzYjp2MUM3QXAwNTgzKgotZGlmZiAtLWdp dCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyBiL2xpYmZwcmludC9k cml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAwLi5iZTBjNmUwNQotLS0tIC9kZXYvbnVsbAotKysrIGIvbGliZnByaW50L2RyaXZl cnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1AQCAtMCwwICsxLDE2MzUgQEAKLSsvKgotKyAqIERy aXZlciBmb3IgRWdpcyBUZWNobm9sb2d5IChMaWdoVHVuaW5nKSBNYXRjaC1Pbi1DaGlwIHNlbnNv cnMKLSsgKgotKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKLSsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rICogdmVyc2lvbiAyLjEgb2YgdGhl IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rICoKLSsg KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgotKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rICogTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsgKgotKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgKiBMaWNl bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv ZnR3YXJlCi0rICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG bG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQotKyAqLwotKwotKyNkZWZpbmUgRlBfQ09N UE9ORU5UICJlZ2lzX2V0dTkwNSIKLSsKLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsjaW5jbHVkZSA8 Z2xpYi5oPgotKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KLSsKLSsjaW5jbHVkZSAiZHJpdmVyc19h cGkuaCIKLSsjaW5jbHVkZSAiZnBpLWJ5dGUtd3JpdGVyLmgiCi0rCi0rI2luY2x1ZGUgImVnaXNf ZXR1OTA1LmgiCi0rCi0rc3RydWN0IF9GcGlEZXZpY2VFZ2lzRXR1OTA1Ci0rewotKyAgRnBEZXZp Y2UgICAgICAgIHBhcmVudDsKLSsgIEZwaVNzbSAgICAgICAgICp0YXNrX3NzbTsKLSsgIEZwaVNz bSAgICAgICAgICpjbWRfc3NtOwotKyAgRnBpVXNiVHJhbnNmZXIgKmNtZF90cmFuc2ZlcjsKLSsg IEdDYW5jZWxsYWJsZSAgICppbnRlcnJ1cHRfY2FuY2VsbGFibGU7Ci0rICBHUHRyQXJyYXkgICAg ICAqZW5yb2xsZWRfaWRzOwotKyAgZ2ludCAgICAgICAgICAgIG1heF9lbnJvbGxfc3RhZ2VzOwot KyAgZ3VpbnQ4ICAgICAgICAgIHNpZFtFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkVd OwotK307Ci0rCi0rR19ERUZJTkVfVFlQRSAoRnBpRGV2aWNlRWdpc0V0dTkwNSwgZnBpX2Rldmlj ZV9lZ2lzX2V0dTkwNSwgRlBfVFlQRV9ERVZJQ0UpOwotKwotK3N0YXRpYyBjb25zdCBGcElkRW50 cnkgZWdpc19ldHU5MDVfaWRfdGFibGVbXSA9IHsKLSsgIHsgLnZpZCA9IDB4MWM3YSwgLnBpZCA9 IDB4MDVhZSwgLmRyaXZlcl9kYXRhID0gRUdJU19FVFU5MDVfRFJJVkVSX0NIRUNLX1BSRUZJWF9U WVBFMSB9LAotKyAgeyAudmlkID0gMHgxYzdhLCAucGlkID0gMHg5MjAxLCAuZHJpdmVyX2RhdGEg PSBFR0lTX0VUVTkwNV9EUklWRVJfQ0hFQ0tfUFJFRklYX1RZUEUxIH0sCi0rICB7IC52aWQgPSAw LCAgICAgIC5waWQgPSAwLCAgICAgIC5kcml2ZXJfZGF0YSA9IDAgfQotK307Ci0rCi0rdHlwZWRl ZiB2b2lkICgqU3luQ21kTXNnQ2FsbGJhY2spIChGcERldmljZSAqZGV2aWNlLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VjaGFyICAgKmJ1ZmZlcl9pbiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAgICBsZW5ndGhfaW4sCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAqZXJyb3IpOwotKwotK3R5cGVk ZWYgc3RydWN0IGVnaXNfZXR1OTA1X2NvbW1hbmRfZGF0YQotK3sKLSsgIFN5bkNtZE1zZ0NhbGxi YWNrIGNhbGxiYWNrOwotKyAgZ3VjaGFyICAgICAgICAgICAqYnVmZmVyX2luOwotKyAgZ3NpemUg ICAgICAgICAgICAgbGVuZ3RoX2luOwotK30gQ29tbWFuZERhdGE7Ci0rCi0rc3RhdGljIHZvaWQK LStlZ2lzX2V0dTkwNV9jb21tYW5kX2RhdGFfZnJlZSAoQ29tbWFuZERhdGEgKmRhdGEpCi0rewot KyAgZ19mcmVlIChkYXRhLT5idWZmZXJfaW4pOwotKyAgZ19mcmVlIChkYXRhKTsKLSt9Ci0rCi0r dHlwZWRlZiBzdHJ1Y3QgZWdpc19ldHU5MDVfZW5yb2xsX3ByaW50Ci0rewotKyAgRnBQcmludCAq cHJpbnQ7Ci0rICBpbnQgICAgICBzdGFnZTsKLSt9IEVucm9sbFByaW50OwotKwotK3N0YXRpYyB2 b2lkCi0rZWdpc19ldHU5MDVfZmluZ2VyX29uX3NlbnNvcl9jYiAoRnBpVXNiVHJhbnNmZXIgKnRy YW5zZmVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZwRGV2aWNlICAgICAg ICpkZXZpY2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAg ICAgIHVzZXJkYXRhLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAg ICAgICAgICplcnJvcikKLSt7Ci0rICBmcF9kYmcgKCJGaW5nZXIgb24gc2Vuc29yIGNhbGxiYWNr Iik7Ci0rICBmcGlfZGV2aWNlX3JlcG9ydF9maW5nZXJfc3RhdHVzIChkZXZpY2UsIEZQX0ZJTkdF Ul9TVEFUVVNfUFJFU0VOVCk7Ci0rCi0rICBmcGlfc3NtX3VzYl90cmFuc2Zlcl9jYiAodHJhbnNm ZXIsIGRldmljZSwgdXNlcmRhdGEsIGVycm9yKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lz X2V0dTkwNV93YWl0X2Zpbmdlcl9vbl9zZW5zb3IgKEZwaVNzbSAgICpzc20sCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGcERldmljZSAqZGV2aWNlKQotK3sKLSsgIGZwX2Ri ZyAoIldhaXQgZm9yIGZpbmdlciBvbiBzZW5zb3IiKTsKLSsgIEZwaURldmljZUVnaXNFdHU5MDUg KnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotKwotKyAgZ19hdXRvcHRy KEZwaVVzYlRyYW5zZmVyKSB0cmFuc2ZlciA9IGZwaV91c2JfdHJhbnNmZXJfbmV3IChkZXZpY2Up OwotKwotKyAgZnBpX3VzYl90cmFuc2Zlcl9maWxsX2ludGVycnVwdCAodHJhbnNmZXIsIEVHSVNf RVRVOTA1X0VQX0NNRF9JTlRFUlJVUFRfSU4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFR0lTX0VUVTkwNV9VU0JfSU5URVJSVVBUX0lOX1JFQ1ZfTEVOR1RIKTsKLSsgIHRy YW5zZmVyLT5zc20gPSBzc207Ci0rICAvKiBJbnRlcnJ1cHQgb24gdGhpcyBkZXZpY2UgYWx3YXlz IHJldHVybnMgMSBieXRlIHNob3J0OyB0aGlzIGlzIGV4cGVjdGVkICovCi0rICB0cmFuc2Zlci0+ c2hvcnRfaXNfZXJyb3IgPSBGQUxTRTsKLSsKLSsgIGZwaV9kZXZpY2VfcmVwb3J0X2Zpbmdlcl9z dGF0dXMgKGRldmljZSwgRlBfRklOR0VSX1NUQVRVU19ORUVERUQpOwotKwotKyAgZnBpX3VzYl90 cmFuc2Zlcl9zdWJtaXQgKGdfc3RlYWxfcG9pbnRlciAoJnRyYW5zZmVyKSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9VU0JfSU5URVJSVVBUX1RJTUVPVVQsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+aW50ZXJydXB0X2NhbmNlbGxhYmxlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVnaXNfZXR1OTA1X2Zpbmdlcl9vbl9zZW5zb3JfY2Is Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0rfQotKwotK3N0YXRpYyBnYm9v bGVhbgotK2VnaXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3ByZWZpeCAoY29uc3QgZ3VjaGFy ICpidWZmZXJfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBnc2l6ZSAgIGJ1ZmZlcl9pbl9sZW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBndWNoYXIgKnZhbGlkX3ByZWZpeCwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdzaXplICAgdmFsaWRfcHJlZml4X2xlbikKLSt7Ci0r ICBjb25zdCBnYm9vbGVhbiByZXN1bHQgPSBtZW1jbXAgKGJ1ZmZlcl9pbiArCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChlZ2lzX2V0dTkwNV9yZWFkX3ByZWZpeF9sZW4gKwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfQ0hFQ0tfQllU RVNfTEVOR1RIKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfcHJl Zml4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9wcmVmaXhfbGVu KSA9PSAwOwotKwotKyAgZnBfZGJnICgiUmVzcG9uc2UgcHJlZml4IHZhbGlkOiAlcyIsIHJlc3Vs dCA/ICJ5ZXMiIDogIk5PIik7Ci0rICByZXR1cm4gcmVzdWx0OwotK30KLSsKLStzdGF0aWMgZ2Jv b2xlYW4KLStlZ2lzX2V0dTkwNV92YWxpZGF0ZV9yZXNwb25zZV9zdWZmaXggKGNvbnN0IGd1Y2hh ciAqYnVmZmVyX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZ3NpemUgICBidWZmZXJfaW5fbGVuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgZ3VjaGFyICp2YWxpZF9zdWZmaXgsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBnc2l6ZSAgIHZhbGlkX3N1ZmZpeF9sZW4pCi0rewot KyAgY29uc3QgZ2Jvb2xlYW4gcmVzdWx0ID0gbWVtY21wIChidWZmZXJfaW4gKyAoYnVmZmVyX2lu X2xlbiAtIHZhbGlkX3N1ZmZpeF9sZW4pLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2YWxpZF9zdWZmaXgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh bGlkX3N1ZmZpeF9sZW4pID09IDA7Ci0rCi0rICBmcF9kYmcgKCJSZXNwb25zZSBzdWZmaXggdmFs aWQ6ICVzIiwgcmVzdWx0ID8gInllcyIgOiAiTk8iKTsKLSsgIHJldHVybiByZXN1bHQ7Ci0rfQot KwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfdGFza19zc21fZG9uZSAoRnBpU3NtICAgKnNz bSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBGcERldmljZSAqZGV2aWNlLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICplcnJvcikKLSt7Ci0rICBGcGlEZXZpY2VF Z2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsKLSsg IGZwX2RiZyAoIlRhc2sgU1NNIGRvbmUiKTsKLSsKLSsgIC8qIHRhc2tfc3NtIGlzIGdvaW5nIHRv IGJlIGZyZWVkIGJ5IGNvbXBsZXRpb24gb2YgU1NNICovCi0rICBnX2Fzc2VydCAoIXNlbGYtPnRh c2tfc3NtIHx8IHNlbGYtPnRhc2tfc3NtID09IHNzbSk7Ci0rICBzZWxmLT50YXNrX3NzbSA9IE5V TEw7Ci0rCi0rICBnX2NsZWFyX3BvaW50ZXIgKCZzZWxmLT5lbnJvbGxlZF9pZHMsIGdfcHRyX2Fy cmF5X3VucmVmKTsKLSsKLSsgIGlmIChlcnJvcikKLSsgICAgZnBpX2RldmljZV9hY3Rpb25fZXJy b3IgKGRldmljZSwgZXJyb3IpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X2Nv bW1pdF9zdGFydF9jYiAoRnBEZXZpY2UgKmRldmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGd1Y2hhciAgICpidWZmZXJfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnc2l6ZSAgICAgbGVuZ3RoX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vy cm9yICAgKmVycm9yKQotK3sKLSsgIGZwX2RiZyAoIlRhc2sgU1NNIGNvbW1pdCBzdGFydCBjYWxs YmFjayIpOwotKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19F VFU5MDUgKGRldmljZSk7Ci0rCi0rICBpZiAoZXJyb3IpCi0rICAgIGZwaV9zc21fbWFya19mYWls ZWQgKHNlbGYtPnRhc2tfc3NtLCBlcnJvcik7Ci0rICBlbHNlCi0rICAgIGZwaV9zc21fanVtcF90 b19zdGF0ZSAoc2VsZi0+dGFza19zc20sIEVOUk9MTF9DT01NSVQpOwotK30KLSsKLSsvKgotKyAq IEdlbmVyaWMgY2FsbGJhY2sgZm9yIGNvbW1hbmRzIHRoYXQgZG9uJ3QgbmVlZCBzcGVjaWFsIGhh bmRsaW5nIG9uIHN1Y2Nlc3MuCi0rICogQWR2YW5jZXMgdGhlIHRhc2sgU1NNIHRvIHRoZSBuZXh0 IHN0YXRlIG9uIHN1Y2Nlc3MsIG9yIG1hcmtzIGl0IGZhaWxlZCBvbiBlcnJvci4KLSsgKi8KLStz dGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X3Rhc2tfc3NtX25leHRfc3RhdGVfY2IgKEZwRGV2aWNl ICpkZXZpY2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VjaGFyICAg KmJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSAg ICAgbGVuZ3RoX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJv ciAgICplcnJvcikKLSt7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklD RV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsKLSsgIGZwX2RiZyAoIlRhc2sgU1NNIG5leHQgc3Rh dGUgY2FsbGJhY2siKTsKLSsKLSsgIGlmIChlcnJvcikKLSsgICAgZnBpX3NzbV9tYXJrX2ZhaWxl ZCAoc2VsZi0+dGFza19zc20sIGVycm9yKTsKLSsgIGVsc2UKLSsgICAgZnBpX3NzbV9uZXh0X3N0 YXRlIChzZWxmLT50YXNrX3NzbSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVf Y21kX3JlY2VpdmVfY2IgKEZwaVVzYlRyYW5zZmVyICp0cmFuc2ZlciwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRnBEZXZpY2UgICAgICAgKmRldmljZSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgIHVzZXJkYXRhLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHRXJyb3IgICAgICAgICAqZXJyb3IpCi0rewotKyAgQ29tbWFuZERhdGEgKmRh dGEgPSB1c2VyZGF0YTsKLSsKLSsgIGZwX2RiZyAoIkNvbW1hbmQgcmVjZWl2ZSBjYWxsYmFjayIp OwotKwotKyAgaWYgKGVycm9yKQotKyAgICB7Ci0rICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAo dHJhbnNmZXItPnNzbSwgZXJyb3IpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgaWYgKGRh dGEgPT0gTlVMTCB8fCB0cmFuc2Zlci0+YWN0dWFsX2xlbmd0aCA8IGVnaXNfZXR1OTA1X3JlYWRf cHJlZml4X2xlbikKLSsgICAgewotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHRyYW5zZmVy LT5zc20sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXcg KEZQX0RFVklDRV9FUlJPUl9HRU5FUkFMKSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0r ICAvKiBTdG9yZSB0aGUgcmVzcG9uc2UgZGF0YSBhbmQgbGV0IHRoZSBjbWRfc3NtX2RvbmUgY2Fs bGJhY2sgaW52b2tlCi0rICAgKiB0aGUgYWN0dWFsIGNhbGxiYWNrIHdpdGggdGhlIHN0b3JlZCBk YXRhICovCi0rICBkYXRhLT5idWZmZXJfaW4gPSBnX3N0ZWFsX3BvaW50ZXIgKCZ0cmFuc2Zlci0+ YnVmZmVyKTsKLSsgIGRhdGEtPmxlbmd0aF9pbiA9IHRyYW5zZmVyLT5hY3R1YWxfbGVuZ3RoOwot KwotKyAgZnBpX3NzbV9tYXJrX2NvbXBsZXRlZCAodHJhbnNmZXItPnNzbSk7Ci0rfQotKwotK3N0 YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfY21kX3J1bl9zdGF0ZSAoRnBpU3NtICAgKnNzbSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICBGcERldmljZSAqZGV2aWNlKQotK3sKLSsgIGdfYXV0 b3B0cihGcGlVc2JUcmFuc2ZlcikgdHJhbnNmZXIgPSBOVUxMOwotKyAgRnBpRGV2aWNlRWdpc0V0 dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7Ci0rCi0rICBzd2l0 Y2ggKGZwaV9zc21fZ2V0X2N1cl9zdGF0ZSAoc3NtKSkKLSsgICAgewotKyAgICBjYXNlIENNRF9T RU5EOgotKyAgICAgIGlmIChzZWxmLT5jbWRfdHJhbnNmZXIpCi0rICAgICAgICB7Ci0rICAgICAg ICAgIHNlbGYtPmNtZF90cmFuc2Zlci0+c3NtID0gc3NtOwotKyAgICAgICAgICBmcGlfdXNiX3Ry YW5zZmVyX3N1Ym1pdCAoZ19zdGVhbF9wb2ludGVyICgmc2VsZi0+Y21kX3RyYW5zZmVyKSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X1VTQl9TRU5EX1RJ TUVPVVQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2dl dF9jYW5jZWxsYWJsZSAoZGV2aWNlKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZwaV9zc21fdXNiX3RyYW5zZmVyX2NiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCk7Ci0rICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgfQotKwotKyAgICAg IGZwaV9zc21fbmV4dF9zdGF0ZSAoc3NtKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBD TURfR0VUOgotKyAgICAgIHRyYW5zZmVyID0gZnBpX3VzYl90cmFuc2Zlcl9uZXcgKGRldmljZSk7 Ci0rICAgICAgdHJhbnNmZXItPnNzbSA9IHNzbTsKLSsgICAgICBmcGlfdXNiX3RyYW5zZmVyX2Zp bGxfYnVsayAodHJhbnNmZXIsIEVHSVNfRVRVOTA1X0VQX0NNRF9JTiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfVVNCX0lOX1JFQ1ZfTEVOR1RIKTsKLSsg ICAgICBmcGlfdXNiX3RyYW5zZmVyX3N1Ym1pdCAoZ19zdGVhbF9wb2ludGVyICgmdHJhbnNmZXIp LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9VU0JfUkVDVl9U SU1FT1VULAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2dldF9j YW5jZWxsYWJsZSAoZGV2aWNlKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdp c19ldHU5MDVfY21kX3JlY2VpdmVfY2IsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZwaV9zc21fZ2V0X2RhdGEgKHNzbSkpOwotKyAgICAgIGJyZWFrOwotKyAgICB9Ci0rfQotKwot Ky8qCi0rICogQ29tbWFuZCBTU00gZG9uZSBjYWxsYmFjay4KLSsgKiBBbHdheXMgaW52b2tlcyB0 aGUgY2FsbGJhY2sgd2l0aCBzdG9yZWQgZGF0YSBvbiBzdWNjZXNzIG9yIGVycm9yLgotKyAqLwot K3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfY21kX3NzbV9kb25lIChGcGlTc20gICAqc3NtLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgRnBEZXZpY2UgKmRldmljZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgIEdFcnJvciAgICplcnJvcikKLSt7Ci0rICBnX2F1dG9wdHIoR0Vycm9y KSBsb2NhbF9lcnJvciA9IGVycm9yOwotKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQ SV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7Ci0rICBDb21tYW5kRGF0YSAqZGF0YSA9IGZw aV9zc21fZ2V0X2RhdGEgKHNzbSk7Ci0rCi0rICBnX2Fzc2VydCAoc2VsZi0+Y21kX3NzbSA9PSBz c20pOwotKyAgZ19hc3NlcnQgKCFzZWxmLT5jbWRfdHJhbnNmZXIgfHwgc2VsZi0+Y21kX3RyYW5z ZmVyLT5zc20gPT0gc3NtKTsKLSsKLSsgIHNlbGYtPmNtZF9zc20gPSBOVUxMOwotKyAgc2VsZi0+ Y21kX3RyYW5zZmVyID0gTlVMTDsKLSsKLSsgIGlmIChkYXRhICYmIGRhdGEtPmNhbGxiYWNrKQot KyAgICB7Ci0rICAgICAgZGF0YS0+Y2FsbGJhY2sgKGRldmljZSwKLSsgICAgICAgICAgICAgICAg ICAgICAgZ19zdGVhbF9wb2ludGVyICgmZGF0YS0+YnVmZmVyX2luKSwKLSsgICAgICAgICAgICAg ICAgICAgICAgZGF0YS0+bGVuZ3RoX2luLAotKyAgICAgICAgICAgICAgICAgICAgICBnX3N0ZWFs X3BvaW50ZXIgKCZsb2NhbF9lcnJvcikpOwotKyAgICB9Ci0rfQotKwotKy8qCi0rICogRGVyaXZl IHRoZSAyICJjaGVjayBieXRlcyIgZm9yIHdyaXRlIHBheWxvYWRzCi0rICogMzItYml0IGJpZy1l bmRpYW4gc3VtIG9mIGFsbCAxNi1iaXQgd29yZHMgKGluY2x1ZGluZyBjaGVjayBieXRlcykgTU9E IDB4RkZGRgotKyAqIHNob3VsZCBiZSAwLCBvdGhlcndpc2UgdGhlIGRldmljZSB3aWxsIHJlamVj dCB0aGUgcGF5bG9hZAotKyAqLwotK3N0YXRpYyBndWludDE2Ci0rZWdpc19ldHU5MDVfZ2V0X2No ZWNrX2J5dGVzIChGcGlCeXRlUmVhZGVyICpyZWFkZXIpCi0rewotKyAgZnBfZGJnICgiR2V0IGNo ZWNrIGJ5dGVzIik7Ci0rICBzaXplX3Qgc3VtX3ZhbHVlcyA9IDA7Ci0rICBndWludDE2IHZhbDsK LSsKLSsgIGZwaV9ieXRlX3JlYWRlcl9zZXRfcG9zIChyZWFkZXIsIDApOwotKwotKyAgd2hpbGUg KGZwaV9ieXRlX3JlYWRlcl9nZXRfdWludDE2X2JlIChyZWFkZXIsICZ2YWwpKQotKyAgICBzdW1f dmFsdWVzICs9IHZhbDsKLSsKLSsgIHJldHVybiBHX01BWFVJTlQxNiAtIChzdW1fdmFsdWVzICUg R19NQVhVSU5UMTYpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X2V4ZWNfY21k IChGcERldmljZSAgICAgICAgICpkZXZpY2UsCi0rICAgICAgICAgICAgICAgICAgICAgIGd1Y2hh ciAgICAgICAgICAgKmNtZCwKLSsgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3NpemUgICAg ICAgY21kX2xlbmd0aCwKLSsgICAgICAgICAgICAgICAgICAgICAgR0Rlc3Ryb3lOb3RpZnkgICAg Y21kX2Rlc3Ryb3ksCi0rICAgICAgICAgICAgICAgICAgICAgIFN5bkNtZE1zZ0NhbGxiYWNrIGNh bGxiYWNrKQotK3sKLSsgIGdfYXV0byhGcGlCeXRlV3JpdGVyKSB3cml0ZXIgPSB7MH07Ci0rICBn X2F1dG9wdHIoRnBpVXNiVHJhbnNmZXIpIHRyYW5zZmVyID0gTlVMTDsKLSsgIEZwaURldmljZUVn aXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotKyAgZ19h dXRvZnJlZSBDb21tYW5kRGF0YSAqZGF0YSA9IE5VTEw7Ci0rICBnc2l6ZSBidWZmZXJfb3V0X2xl bmd0aCA9IDA7Ci0rICBnYm9vbGVhbiB3cml0dGVuID0gVFJVRTsKLSsgIGd1aW50MTYgY2hlY2tf dmFsdWU7Ci0rCi0rICBmcF9kYmcgKCJFeGVjdXRlIGNvbW1hbmQgYW5kIGdldCByZXNwb25zZSIp OwotKwotKyAgLyoKLSsgICAqIGJ1ZmZlcl9vdXQgc2hvdWxkIGJlIGEgZnVsbHkgY29tcG9zZWQg Y29tbWFuZCAod2l0aCBwcmVmaXgsIGNoZWNrIGJ5dGVzLCBldGMpCi0rICAgKiB3aGljaCBsb29r cyBsaWtlIHRoaXM6Ci0rICAgKiAgIEUgRyBJIFMgMDAgMDAgMDAgMDEge2NiMX0ge2NiMn0ge3Bh eWxvYWR9Ci0rICAgKiB3aGVyZSBjYjEgYW5kIGNiMiBhcmUgc29tZSBjaGVjayBieXRlcyBnZW5l cmF0ZWQgYnkgdGhlCi0rICAgKiBlZ2lzX2V0dTkwNV9nZXRfY2hlY2tfYnl0ZXMoKSBtZXRob2Qg YW5kIHBheWxvYWQgaXMgd2hhdCBpcyBwYXNzZWQgdmlhIHRoZSBjbWQKLSsgICAqIHBhcmFtZXRl cgotKyAgICovCi0rICBidWZmZXJfb3V0X2xlbmd0aCA9IGVnaXNfZXR1OTA1X3dyaXRlX3ByZWZp eF9sZW4KLSsgICAgICAgICAgICAgICAgICAgICAgKyBFR0lTX0VUVTkwNV9DSEVDS19CWVRFU19M RU5HVEgKLSsgICAgICAgICAgICAgICAgICAgICAgKyBjbWRfbGVuZ3RoOwotKwotKyAgZnBpX2J5 dGVfd3JpdGVyX2luaXRfd2l0aF9zaXplICgmd3JpdGVyLCBidWZmZXJfb3V0X2xlbmd0aCArCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXJfb3V0X2xlbmd0aCAlIDIg PyAxIDogMCksIFRSVUUpOwotKwotKyAgLyogUHJlZml4ICovCi0rICB3cml0dGVuICY9IGZwaV9i eXRlX3dyaXRlcl9wdXRfZGF0YSAoJndyaXRlciwgZWdpc19ldHU5MDVfd3JpdGVfcHJlZml4LAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVnaXNfZXR1OTA1X3dyaXRl X3ByZWZpeF9sZW4pOwotKwotKyAgLyogQ2hlY2sgQnl0ZXMgLSBsZWF2ZSB0aGVtIGFzIDAwIGZv ciBub3cgdGhlbiBsYXRlciBnZW5lcmF0ZSBhbmQgY29weSBvdmVyCi0rICAgKiB0aGUgcmVhbCBv bmVzICovCi0rICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9jaGFuZ2VfcG9zICgmd3JpdGVy LCBFR0lTX0VUVTkwNV9DSEVDS19CWVRFU19MRU5HVEgpOwotKwotKyAgLyogQ29tbWFuZCBQYXls b2FkICovCi0rICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YSAoJndyaXRlciwg Y21kLCBjbWRfbGVuZ3RoKTsKLSsKLSsgIC8qIE5vdyBmZXRjaCBhbmQgc2V0IHRoZSAicmVhbCIg Y2hlY2sgYnl0ZXMgYmFzZWQgb24gdGhlIGN1cnJlbnRseQotKyAgICogYXNzZW1ibGVkIHBheWxv YWQgKi8KLSsgIGNoZWNrX3ZhbHVlID0gZWdpc19ldHU5MDVfZ2V0X2NoZWNrX2J5dGVzIChGUElf QllURV9SRUFERVIgKCZ3cml0ZXIpKTsKLSsgIGZwaV9ieXRlX3dyaXRlcl9zZXRfcG9zICgmd3Jp dGVyLCBlZ2lzX2V0dTkwNV93cml0ZV9wcmVmaXhfbGVuKTsKLSsgIHdyaXR0ZW4gJj0gZnBpX2J5 dGVfd3JpdGVyX3B1dF91aW50MTZfYmUgKCZ3cml0ZXIsIGNoZWNrX3ZhbHVlKTsKLSsKLSsgIC8q IGRlc3Ryb3kgY21kIGlmIHJlcXVlc3RlZCAqLwotKyAgaWYgKGNtZF9kZXN0cm95KQotKyAgICBn X2NsZWFyX3BvaW50ZXIgKCZjbWQsIGNtZF9kZXN0cm95KTsKLSsKLSsgIGdfYXNzZXJ0IChzZWxm LT5jbWRfc3NtID09IE5VTEwpOwotKyAgc2VsZi0+Y21kX3NzbSA9IGZwaV9zc21fbmV3IChkZXZp Y2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVnaXNfZXR1OTA1X2NtZF9ydW5f c3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNRF9TVEFURVMpOwotKwot KyAgZGF0YSA9IGdfbmV3MCAoQ29tbWFuZERhdGEsIDEpOwotKyAgZGF0YS0+Y2FsbGJhY2sgPSBj YWxsYmFjazsKLSsgIGZwaV9zc21fc2V0X2RhdGEgKHNlbGYtPmNtZF9zc20sIGdfc3RlYWxfcG9p bnRlciAoJmRhdGEpLAotKyAgICAgICAgICAgICAgICAgICAgKEdEZXN0cm95Tm90aWZ5KSBlZ2lz X2V0dTkwNV9jb21tYW5kX2RhdGFfZnJlZSk7Ci0rCi0rICBpZiAoIXdyaXR0ZW4pCi0rICAgIHsK LSsgICAgICBmcGlfc3NtX3N0YXJ0IChzZWxmLT5jbWRfc3NtLCBlZ2lzX2V0dTkwNV9jbWRfc3Nt X2RvbmUpOwotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPmNtZF9zc20sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXcgKEZQX0RFVklDRV9F UlJPUl9QUk9UTykpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgdHJhbnNmZXIgPSBm cGlfdXNiX3RyYW5zZmVyX25ldyAoZGV2aWNlKTsKLSsgIHRyYW5zZmVyLT5zaG9ydF9pc19lcnJv ciA9IFRSVUU7Ci0rICB0cmFuc2Zlci0+c3NtID0gc2VsZi0+Y21kX3NzbTsKLSsKLSsgIGZwaV91 c2JfdHJhbnNmZXJfZmlsbF9idWxrX2Z1bGwgKHRyYW5zZmVyLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfRVBfQ01EX09VVCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZwaV9ieXRlX3dyaXRlcl9yZXNldF9hbmRfZ2V0X2RhdGEg KCZ3cml0ZXIpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX291 dF9sZW5ndGgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2ZyZWUpOwot KwotKyAgZ19hc3NlcnQgKHNlbGYtPmNtZF90cmFuc2ZlciA9PSBOVUxMKTsKLSsgIHNlbGYtPmNt ZF90cmFuc2ZlciA9IGdfc3RlYWxfcG9pbnRlciAoJnRyYW5zZmVyKTsKLSsgIGZwaV9zc21fc3Rh cnQgKHNlbGYtPmNtZF9zc20sIGVnaXNfZXR1OTA1X2NtZF9zc21fZG9uZSk7Ci0rfQotKwotK3N0 YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfc2V0X3ByaW50X2RhdGEgKEZwUHJpbnQgICAgICpwcmlu dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmRldmljZV9wcmlu dF9pZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnVzZXJfaWQp Ci0rewotKyAgR1ZhcmlhbnQgKnByaW50X2lkX3ZhciA9IE5VTEw7Ci0rICBHVmFyaWFudCAqZnBp X2RhdGEgPSBOVUxMOwotKyAgZ19hdXRvZnJlZSBnY2hhciAqZmlsbF91c2VyX2lkID0gTlVMTDsK LSsKLSsgIGlmICh1c2VyX2lkKQotKyAgICBmaWxsX3VzZXJfaWQgPSBnX3N0cmR1cCAodXNlcl9p ZCk7Ci0rICBlbHNlCi0rICAgIGZpbGxfdXNlcl9pZCA9IGdfc3RybmR1cCAoZGV2aWNlX3ByaW50 X2lkLCBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkUpOwotKwotKyAgZnBpX3ByaW50 X2ZpbGxfZnJvbV91c2VyX2lkIChwcmludCwgZmlsbF91c2VyX2lkKTsKLSsKLSsgIGZwaV9wcmlu dF9zZXRfdHlwZSAocHJpbnQsIEZQSV9QUklOVF9SQVcpOwotKyAgZnBpX3ByaW50X3NldF9kZXZp Y2Vfc3RvcmVkIChwcmludCwgVFJVRSk7Ci0rCi0rICBnX29iamVjdF9zZXQgKHByaW50LCAiZGVz Y3JpcHRpb24iLCBmaWxsX3VzZXJfaWQsIE5VTEwpOwotKwotKyAgcHJpbnRfaWRfdmFyID0gZ192 YXJpYW50X25ld19maXhlZF9hcnJheSAoR19WQVJJQU5UX1RZUEVfQllURSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZV9wcmludF9pZCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X0ZJTkdF UlBSSU5UX0RBVEFfU0laRSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVvZiAoZ3VjaGFyKSk7Ci0rICBmcGlfZGF0YSA9IGdfdmFyaWFudF9uZXcgKCIo QGF5KSIsIHByaW50X2lkX3Zhcik7Ci0rICBnX29iamVjdF9zZXQgKHByaW50LCAiZnBpLWRhdGEi LCBmcGlfZGF0YSwgTlVMTCk7Ci0rfQotKwotK3N0YXRpYyBHUHRyQXJyYXkgKgotK2VnaXNfZXR1 OTA1X2dldF9lbnJvbGxlZF9wcmludHMgKEZwRGV2aWNlICpkZXZpY2UpCi0rewotKyAgZ19hdXRv cHRyKEdQdHJBcnJheSkgcmVzdWx0ID0gZ19wdHJfYXJyYXlfbmV3X3dpdGhfZnJlZV9mdW5jIChn X29iamVjdF91bnJlZik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklD RV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsKLSsgIGlmICghc2VsZi0+ZW5yb2xsZWRfaWRzKQot KyAgICByZXR1cm4gZ19zdGVhbF9wb2ludGVyICgmcmVzdWx0KTsKLSsKLSsgIGZvciAoZ3VpbnQg aSA9IDA7IGkgPCBzZWxmLT5lbnJvbGxlZF9pZHMtPmxlbjsgaSsrKQotKyAgICB7Ci0rICAgICAg RnBQcmludCAqcHJpbnQgPSBmcF9wcmludF9uZXcgKGRldmljZSk7Ci0rICAgICAgZWdpc19ldHU5 MDVfc2V0X3ByaW50X2RhdGEgKHByaW50LCBnX3B0cl9hcnJheV9pbmRleCAoc2VsZi0+ZW5yb2xs ZWRfaWRzLCBpKSwgTlVMTCk7Ci0rICAgICAgZ19wdHJfYXJyYXlfYWRkIChyZXN1bHQsIGdfb2Jq ZWN0X3JlZl9zaW5rIChwcmludCkpOwotKyAgICB9Ci0rCi0rICByZXR1cm4gZ19zdGVhbF9wb2lu dGVyICgmcmVzdWx0KTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9saXN0X2Zp bGxfZW5yb2xsZWRfaWRzX2NiIChGcERldmljZSAqZGV2aWNlLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGd1Y2hhciAgICpidWZmZXJfaW4sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgIGxlbmd0aF9pbiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAqZXJyb3IpCi0rewotKyAg RnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmlj ZSk7Ci0rCi0rICBmcF9kYmcgKCJMaXN0IGNhbGxiYWNrIik7Ci0rCi0rICBpZiAoZXJyb3IpCi0r ICAgIHsKLSsgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3Ip OwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgZ19jbGVhcl9wb2ludGVyICgmc2VsZi0+ ZW5yb2xsZWRfaWRzLCBnX3B0cl9hcnJheV91bnJlZik7Ci0rICBzZWxmLT5lbnJvbGxlZF9pZHMg PSBnX3B0cl9hcnJheV9uZXdfd2l0aF9mcmVlX2Z1bmMgKGdfZnJlZSk7Ci0rCi0rICBGcGlCeXRl UmVhZGVyIHJlYWRlcjsKLSsgIGdib29sZWFuIHJlYWQgPSBUUlVFOwotKwotKyAgZnBpX2J5dGVf cmVhZGVyX2luaXQgKCZyZWFkZXIsIGJ1ZmZlcl9pbiwgbGVuZ3RoX2luKTsKLSsKLSsgIHJlYWQg Jj0gZnBpX2J5dGVfcmVhZGVyX3NldF9wb3MgKCZyZWFkZXIsIEVHSVNfRVRVOTA1X0xJU1RfUkVT UE9OU0VfUFJFRklYX1NJWkUpOwotKwotKyAgLyoKLSsgICAqIEVhY2ggZmluZ2VycHJpbnQgSUQg d2lsbCBiZSByZXR1cm5lZCBpbiB0aGlzIHJlc3BvbnNlIGFzIGEgMzIgYnl0ZSBhcnJheQotKyAg ICogVGhlIG90aGVyIHN0dWZmIGluIHRoZSBwYXlsb2FkIGlzIDE2IGJ5dGVzIGxvbmcsIHNvIGlm IHRoZXJlIGlzIGF0IGxlYXN0IDEKLSsgICAqIHByaW50IHRoZW4gdGhlIGxlbmd0aCBzaG91bGQg YmUgYXQgbGVhc3QgMTYrMzI9NDggYnl0ZXMgbG9uZwotKyAgICovCi0rICB3aGlsZSAocmVhZCkK LSsgICAgewotKyAgICAgIGNvbnN0IGd1aW50OCAqZGF0YTsKLSsgICAgICBnX2F1dG9mcmVlIGdj aGFyICpwcmludF9pZCA9IE5VTEw7Ci0rCi0rICAgICAgcmVhZCAmPSBmcGlfYnl0ZV9yZWFkZXJf Z2V0X2RhdGEgKCZyZWFkZXIsIEVHSVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEpOwotKyAgICAgIGlm ICghcmVhZCkKLSsgICAgICAgIGJyZWFrOwotKwotKyAgICAgIHByaW50X2lkID0gZ19tZW1kdXAy IChkYXRhLCBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkUpOwotKyAgICAgIGdfcHRy X2FycmF5X2FkZCAoc2VsZi0+ZW5yb2xsZWRfaWRzLCBnX3N0ZWFsX3BvaW50ZXIgKCZwcmludF9p ZCkpOwotKyAgICB9Ci0rCi0rICBmcF9pbmZvICgiTnVtYmVyIG9mIGN1cnJlbnRseSBlbnJvbGxl ZCBmaW5nZXJwcmludHMgb24gdGhlIGRldmljZSBpcyAlZCIsCi0rICAgICAgICAgICBzZWxmLT5l bnJvbGxlZF9pZHMtPmxlbik7Ci0rCi0rICBpZiAoc2VsZi0+dGFza19zc20pCi0rICAgIGZwaV9z c21fbmV4dF9zdGF0ZSAoc2VsZi0+dGFza19zc20pOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2Vn aXNfZXR1OTA1X2xpc3RfcnVuX3N0YXRlIChGcGlTc20gICAqc3NtLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGcERldmljZSAqZGV2aWNlKQotK3sKLSsgIGdfYXV0b3B0cihHUHRyQXJy YXkpIGVucm9sbGVkX3ByaW50cyA9IE5VTEw7Ci0rCi0rICBzd2l0Y2ggKGZwaV9zc21fZ2V0X2N1 cl9zdGF0ZSAoc3NtKSkKLSsgICAgewotKyAgICBjYXNlIExJU1RfR0VUX0VOUk9MTEVEX0lEUzoK LSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRfbGlzdCwgY21kX2xpc3Rf bGVuLCBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZ2lzX2V0dTkwNV9saXN0 X2ZpbGxfZW5yb2xsZWRfaWRzX2NiKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBMSVNU X1JFVFVSTl9FTlJPTExFRF9QUklOVFM6Ci0rICAgICAgZW5yb2xsZWRfcHJpbnRzID0gZWdpc19l dHU5MDVfZ2V0X2Vucm9sbGVkX3ByaW50cyAoZGV2aWNlKTsKLSsgICAgICBmcGlfZGV2aWNlX2xp c3RfY29tcGxldGUgKGRldmljZSwgZ19zdGVhbF9wb2ludGVyICgmZW5yb2xsZWRfcHJpbnRzKSwg TlVMTCk7Ci0rICAgICAgZnBpX3NzbV9uZXh0X3N0YXRlIChzc20pOwotKyAgICAgIGJyZWFrOwot KyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfbGlzdCAoRnBEZXZpY2Ug KmRldmljZSkKLSt7Ci0rICBmcF9kYmcgKCJMaXN0Iik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1 ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsKLSsgIGdfYXNzZXJ0 IChzZWxmLT50YXNrX3NzbSA9PSBOVUxMKTsKLSsgIHNlbGYtPnRhc2tfc3NtID0gZnBpX3NzbV9u ZXcgKGRldmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVnaXNfZXR1OTA1 X2xpc3RfcnVuX3N0YXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElTVF9T VEFURVMpOwotKyAgZnBpX3NzbV9zdGFydCAoc2VsZi0+dGFza19zc20sIGVnaXNfZXR1OTA1X3Rh c2tfc3NtX2RvbmUpOwotK30KLSsKLStzdGF0aWMgZ3VjaGFyICoKLStlZ2lzX2V0dTkwNV9nZXRf ZGVsZXRlX2NtZCAoRnBEZXZpY2UgKmRldmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRnBQcmludCAgKmRlbGV0ZV9wcmludCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3NpemUgICAgKmxlbmd0aF9vdXQpCi0rewotKyAgZnBfZGJnICgiR2V0IGRlbGV0ZSBjb21tYW5k Iik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkw NSAoZGV2aWNlKTsKLSsgIGdfYXV0byhGcGlCeXRlV3JpdGVyKSB3cml0ZXIgPSB7MH07Ci0rICBn X2F1dG9wdHIoR1ZhcmlhbnQpIHByaW50X2RhdGEgPSBOVUxMOwotKyAgZ19hdXRvcHRyKEdWYXJp YW50KSBwcmludF9kYXRhX2lkX3ZhciA9IE5VTEw7Ci0rICBjb25zdCBndWNoYXIgKnByaW50X2Rh dGFfaWQgPSBOVUxMOwotKyAgZ3NpemUgcHJpbnRfZGF0YV9pZF9sZW4gPSAwOwotKyAgZ19hdXRv ZnJlZSBnY2hhciAqcHJpbnRfZGVzY3JpcHRpb24gPSBOVUxMOwotKyAgZ19hdXRvZnJlZSBndWNo YXIgKmVucm9sbGVkX3ByaW50X2lkID0gTlVMTDsKLSsgIGdfYXV0b2ZyZWUgZ3VjaGFyICpyZXN1 bHQgPSBOVUxMOwotKyAgZ2Jvb2xlYW4gd3JpdHRlbiA9IFRSVUU7Ci0rCi0rICAvKgotKyAgICog VGhlIGZpbmFsIGNvbW1hbmQgYm9keSBzaG91bGQgY29udGFpbjoKLSsgICAqIDEpIGhhcmQtY29k ZWQgMDAgMDAKLSsgICAqIDIpIDItYnl0ZSBzaXplIGluZGljaWF0b3IsIDIwKk51bWJlciBkZWxl dGVkIGlkZW50aWZpZXJzIHBsdXMgNyBpbiBmb3JtIG9mOgotKyAgICogICAgbnVtX3RvX2RlbGV0 ZSAqIDB4MjAgKyAweDA3Ci0rICAgKiAgICBTaW5jZSBtYXggcHJpbnRzIGNhbiBiZSBoaWdoZXIg dGhhbiA3IHRoZW4gdGhpcyBnb2VzIHVwIHRvIDIgYnl0ZXMKLSsgICAqICAgIChlOSArIDkgPSAx MDkpCi0rICAgKiAzKSBIYXJkLWNvZGVkIHByZWZpeCAoY21kX2RlbGV0ZV9wcmVmaXgpCi0rICAg KiA0KSAyLWJ5dGUgc2l6ZSBpbmRpY2lhdG9yLCAyMCpOdW1iZXIgb2YgZW5yb2xsZWQgaWRlbnRp ZmllcnMgd2l0aG91dCBwbHVzIDcKLSsgICAqICAgIChudW1fdG9fZGVsZXRlICogMHgyMCkKLSsg ICAqIDUpIEFsbCBvZiB0aGUgY3VycmVudGx5IHJlZ2lzdGVyZWQgcHJpbnRzIHRvIGRlbGV0ZSBp biB0aGVpciAzMi1ieXRlIGRldmljZQotKyAgICogICAgaWRlbnRpZmllcnMgKGVucm9sbGVkX2xp c3QpCi0rICAgKi8KLSsKLSsgIGludCBudW1fdG9fZGVsZXRlID0gMDsKLSsgIGlmIChkZWxldGVf cHJpbnQpCi0rICAgIG51bV90b19kZWxldGUgPSAxOwotKyAgZWxzZSBpZiAoc2VsZi0+ZW5yb2xs ZWRfaWRzKQotKyAgICBudW1fdG9fZGVsZXRlID0gc2VsZi0+ZW5yb2xsZWRfaWRzLT5sZW47Ci0r Ci0rICBjb25zdCBnc2l6ZSBib2R5X2xlbmd0aCA9IHNpemVvZiAoZ3VjaGFyKSAqIEVHSVNfRVRV OTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSAqCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IG51bV90b19kZWxldGU7Ci0rICAvKiB0b3RhbF9sZW5ndGggaXMgdGhlIDYgdmFyaW91cyBieXRl cyBwbHVzIHByZWZpeCBhbmQgYm9keSBwYXlsb2FkICovCi0rICBjb25zdCBnc2l6ZSB0b3RhbF9s ZW5ndGggPSAoc2l6ZW9mIChndWNoYXIpICogNikgKyBjbWRfZGVsZXRlX3ByZWZpeF9sZW4gKwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keV9sZW5ndGg7Ci0rCi0rICAvKiBwcmUt ZmlsbCBlbnRpcmUgcGF5bG9hZCB3aXRoIDAwcyAqLwotKyAgZnBpX2J5dGVfd3JpdGVyX2luaXRf d2l0aF9zaXplICgmd3JpdGVyLCB0b3RhbF9sZW5ndGgsIFRSVUUpOwotKwotKyAgLyogc3RhcnQg d2l0aCAwMCAwMCAoanVzdCBtb3ZlIHN0YXJ0aW5nIG9mZnNldCB1cCBieSAyKSAqLwotKyAgd3Jp dHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfc2V0X3BvcyAoJndyaXRlciwgMik7Ci0rCi0rICAvKiBT aXplIENvdW50ZXIgYnl0ZXMgKi8KLSsgIC8qICJlYXNpZXN0IiB3YXkgdG8gaGFuZGxlIDItYnl0 ZXMgc2l6ZSBmb3IgY291bnRlciBpcyB0byBoYXJkLWNvZGUgbG9naWMgZm9yCi0rICAgKiB3aGVu IHdlIGdvIHRvIHRoZSAybmQgYnl0ZQotKyAgICogbm90ZSB0aGlzIHdpbGwgbm90IHdvcmsgaW4g Y2FzZSBhbnkgbW9kZWwgZXZlciBzdXBwb3J0cyBtb3JlIHRoYW4gMTQgcHJpbnRzCi0rICAgKiAo YXNzdW1lZCBtYXggaXMgMTApICovCi0rICBpZiAobnVtX3RvX2RlbGV0ZSA+IDcpCi0rICAgIHsK LSsgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDggKCZ3cml0ZXIsIDB4 MDEpOwotKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50OCAoJndyaXRl ciwgKChudW1fdG9fZGVsZXRlIC0gOCkgKiAweDIwKSArIDB4MDcpOwotKyAgICB9Ci0rICBlbHNl Ci0rICAgIHsKLSsgICAgICAvKiBmaXJzdCBieXRlIGlzIDB4MDAsIGp1c3Qgc2tpcCBpdCAqLwot KyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX2NoYW5nZV9wb3MgKCZ3cml0ZXIsIDEp OwotKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50OCAoJndyaXRlciwg KG51bV90b19kZWxldGUgKiAweDIwKSArIDB4MDcpOwotKyAgICB9Ci0rCi0rICAvKiBjb21tYW5k IHByZWZpeCAqLwotKyAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X2RhdGEgKCZ3cml0 ZXIsIGNtZF9kZWxldGVfcHJlZml4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNtZF9kZWxldGVfcHJlZml4X2xlbik7Ci0rCi0rICAvKiAyLWJ5dGVzIHNpemUgbG9n aWMgZm9yIGNvdW50ZXIgYWdhaW4gKi8KLSsgIGlmIChudW1fdG9fZGVsZXRlID4gNykKLSsgICAg ewotKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF91aW50OCAoJndyaXRlciwg MHgwMSk7Ci0rICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4ICgmd3Jp dGVyLCAobnVtX3RvX2RlbGV0ZSAtIDgpICogMHgyMCk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAg ewotKyAgICAgIC8qIGZpcnN0IGJ5dGUgaXMgMHgwMCwganVzdCBza2lwIGl0ICovCi0rICAgICAg d3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfY2hhbmdlX3BvcyAoJndyaXRlciwgMSk7Ci0rICAg ICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4ICgmd3JpdGVyLCBudW1fdG9f ZGVsZXRlICogMHgyMCk7Ci0rICAgIH0KLSsKLSsgIC8qIGFwcGVuZCBkZXNpcmVkIDMyLWJ5dGUg ZmluZ2VycHJpbnQgSURzICovCi0rICAvKiBpZiBwYXNzZWQgYSBkZWxldGVfcHJpbnQgdGhlbiBm ZXRjaCBpdHMgZGF0YSBmcm9tIHRoZSBGcFByaW50ICovCi0rICBpZiAoZGVsZXRlX3ByaW50KQot KyAgICB7Ci0rICAgICAgZ19vYmplY3RfZ2V0IChkZWxldGVfcHJpbnQsICJkZXNjcmlwdGlvbiIs ICZwcmludF9kZXNjcmlwdGlvbiwgTlVMTCk7Ci0rICAgICAgZ19vYmplY3RfZ2V0IChkZWxldGVf cHJpbnQsICJmcGktZGF0YSIsICZwcmludF9kYXRhLCBOVUxMKTsKLSsKLSsgICAgICBpZiAoIWdf dmFyaWFudF9jaGVja19mb3JtYXRfc3RyaW5nIChwcmludF9kYXRhLCAiKEBheSkiLCBGQUxTRSkp Ci0rICAgICAgICB7Ci0rICAgICAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tf c3NtLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25l dyAoRlBfREVWSUNFX0VSUk9SX0RBVEFfSU5WQUxJRCkpOwotKyAgICAgICAgICByZXR1cm4gTlVM TDsKLSsgICAgICAgIH0KLSsKLSsgICAgICBnX3ZhcmlhbnRfZ2V0IChwcmludF9kYXRhLCAiKEBh eSkiLCAmcHJpbnRfZGF0YV9pZF92YXIpOwotKyAgICAgIHByaW50X2RhdGFfaWQgPSBnX3Zhcmlh bnRfZ2V0X2ZpeGVkX2FycmF5IChwcmludF9kYXRhX2lkX3ZhciwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnByaW50X2RhdGFfaWRfbGVuLCBzaXpl b2YgKGd1Y2hhcikpOwotKwotKyAgICAgIGlmICghZ19zdHJfaGFzX3ByZWZpeCAocHJpbnRfZGVz Y3JpcHRpb24sICJGUCIpKQotKyAgICAgICAgZnBfZGJnICgiRmluZ2VycHJpbnQgJyVzJyB3YXMg bm90IGNyZWF0ZWQgYnkgbGliZnByaW50OyBkZWxldGluZyBhbnl3YXkuIiwKLSsgICAgICAgICAg ICAgICAgcHJpbnRfZGVzY3JpcHRpb24pOwotKwotKyAgICAgIGZwX2luZm8gKCJEZWxldGUgZmlu Z2VycHJpbnQgJXMiLCBwcmludF9kZXNjcmlwdGlvbik7Ci0rCi0rICAgICAgd3JpdHRlbiAmPSBm cGlfYnl0ZV93cml0ZXJfcHV0X2RhdGEgKCZ3cml0ZXIsIHByaW50X2RhdGFfaWQsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X0ZJTkdFUlBS SU5UX0RBVEFfU0laRSk7Ci0rICAgIH0KLSsgIC8qIE90aGVyd2lzZSBhc3N1bWUgdGhpcyBpcyBh ICJjbGVhciIgLSBqdXN0IGxvb3AgdGhyb3VnaCBhbmQgYXBwZW5kIGFsbCBlbnJvbGxlZCBJRHMg Ki8KLSsgIGVsc2UgaWYgKHNlbGYtPmVucm9sbGVkX2lkcykKLSsgICAgewotKyAgICAgIGZvciAo Z3VpbnQgaSA9IDA7IGkgPCBzZWxmLT5lbnJvbGxlZF9pZHMtPmxlbiAmJiB3cml0dGVuOyBpKysp Ci0rICAgICAgICB7Ci0rICAgICAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3JpdGVyX3B1dF9k YXRhICgmd3JpdGVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ19wdHJfYXJyYXlfaW5kZXggKHNlbGYtPmVucm9sbGVkX2lkcywgaSksCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9GSU5H RVJQUklOVF9EQVRBX1NJWkUpOwotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICBnX2Fzc2VydCAo d3JpdHRlbik7Ci0rCi0rICBpZiAobGVuZ3RoX291dCkKLSsgICAgKmxlbmd0aF9vdXQgPSB0b3Rh bF9sZW5ndGg7Ci0rCi0rICByZXR1cm4gZnBpX2J5dGVfd3JpdGVyX3Jlc2V0X2FuZF9nZXRfZGF0 YSAoJndyaXRlcik7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfZGVsZXRlX2Ni IChGcERldmljZSAqZGV2aWNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgZ3VjaGFyICAgKmJ1 ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAgICBsZW5ndGhfaW4sCi0r ICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAqZXJyb3IpCi0rewotKyAgZnBfZGJnICgi RGVsZXRlIGNhbGxiYWNrIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RF VklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsKLSsgIGlmIChlcnJvcikKLSsgICAgewotKyAg ICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLCBlcnJvcik7Ci0rICAgICAg cmV0dXJuOwotKyAgICB9Ci0rCi0rICAvKiBDaGVjayB0aGF0IHRoZSByZWFkIHBheWxvYWQgaW5k aWNhdGVzICJzdWNjZXNzIiB3aXRoIHRoZSBkZWxldGUgKi8KLSsgIGlmIChlZ2lzX2V0dTkwNV92 YWxpZGF0ZV9yZXNwb25zZV9wcmVmaXggKGJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aF9pbiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9kZWxldGVfc3VjY2Vzc19wcmVmaXgsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfZGVsZXRlX3N1Y2Nl c3NfcHJlZml4X2xlbikpCi0rICAgIHsKLSsgICAgICBpZiAoZnBpX2RldmljZV9nZXRfY3VycmVu dF9hY3Rpb24gKGRldmljZSkgPT0gRlBJX0RFVklDRV9BQ1RJT05fQ0xFQVJfU1RPUkFHRSkKLSsg ICAgICAgIHsKLSsgICAgICAgICAgZnBpX2RldmljZV9jbGVhcl9zdG9yYWdlX2NvbXBsZXRlIChk ZXZpY2UsIE5VTEwpOwotKyAgICAgICAgICBmcGlfc3NtX25leHRfc3RhdGUgKHNlbGYtPnRhc2tf c3NtKTsKLSsgICAgICAgIH0KLSsgICAgICBlbHNlIGlmIChmcGlfZGV2aWNlX2dldF9jdXJyZW50 X2FjdGlvbiAoZGV2aWNlKSA9PSBGUElfREVWSUNFX0FDVElPTl9ERUxFVEUpCi0rICAgICAgICB7 Ci0rICAgICAgICAgIGZwaV9kZXZpY2VfZGVsZXRlX2NvbXBsZXRlIChkZXZpY2UsIE5VTEwpOwot KyAgICAgICAgICBmcGlfc3NtX25leHRfc3RhdGUgKHNlbGYtPnRhc2tfc3NtKTsKLSsgICAgICAg IH0KLSsgICAgICBlbHNlCi0rICAgICAgICB7Ci0rICAgICAgICAgIGZwaV9zc21fbWFya19mYWls ZWQgKHNlbGYtPnRhc2tfc3NtLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlf ZGV2aWNlX2Vycm9yX25ld19tc2cgKEZQX0RFVklDRV9FUlJPUl9QUk9UTywKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5zdXBwb3J0 ZWQgZGVsZXRlIGFjdGlvbi4iKSk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAg ewotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAoRlBfREVWSUNFX0VS Uk9SX1BST1RPLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkRlbGV0ZSBwcmludCB3YXMgbm90IHN1Y2Nlc3NmdWwiKSk7Ci0rICAgIH0KLSt9 Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9kZWxldGVfcnVuX3N0YXRlIChGcGlTc20g ICAqc3NtLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZwRGV2aWNlICpkZXZpY2Up Ci0rewotKyAgZ19hdXRvZnJlZSBndWNoYXIgKnBheWxvYWQgPSBOVUxMOwotKyAgZ3NpemUgcGF5 bG9hZF9sZW5ndGggPSAwOwotKwotKyAgc3dpdGNoIChmcGlfc3NtX2dldF9jdXJfc3RhdGUgKHNz bSkpCi0rICAgIHsKLSsgICAgY2FzZSBERUxFVEVfR0VUX0VOUk9MTEVEX0lEUzoKLSsgICAgICAv KiBnZXQgZW5yb2xsZWRfaWRzIGZyb20gZGV2aWNlIGZvciB1c2UgYnVpbGRpbmcgZGVsZXRlIHBh eWxvYWQgYmVsb3cgKi8KLSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRf bGlzdCwgY21kX2xpc3RfbGVuLCBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBl Z2lzX2V0dTkwNV9saXN0X2ZpbGxfZW5yb2xsZWRfaWRzX2NiKTsKLSsgICAgICBicmVhazsKLSsK LSsgICAgY2FzZSBERUxFVEVfREVMRVRFOgotKyAgICAgIGlmIChmcGlfZGV2aWNlX2dldF9jdXJy ZW50X2FjdGlvbiAoZGV2aWNlKSA9PSBGUElfREVWSUNFX0FDVElPTl9ERUxFVEUpCi0rICAgICAg ICBwYXlsb2FkID0gZWdpc19ldHU5MDVfZ2V0X2RlbGV0ZV9jbWQgKGRldmljZSwgZnBpX3NzbV9n ZXRfZGF0YSAoc3NtKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJnBheWxvYWRfbGVuZ3RoKTsKLSsgICAgICBlbHNlCi0rICAgICAgICBwYXlsb2FkID0g ZWdpc19ldHU5MDVfZ2V0X2RlbGV0ZV9jbWQgKGRldmljZSwgTlVMTCwgJnBheWxvYWRfbGVuZ3Ro KTsKLSsKLSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBnX3N0ZWFsX3BvaW50 ZXIgKCZwYXlsb2FkKSwgcGF5bG9hZF9sZW5ndGgsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdfZnJlZSwgZWdpc19ldHU5MDVfZGVsZXRlX2NiKTsKLSsgICAgICBicmVhazsKLSsgICAg fQotK30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X2NsZWFyX3N0b3JhZ2UgKEZwRGV2 aWNlICpkZXZpY2UpCi0rewotKyAgZnBfZGJnICgiQ2xlYXIgc3RvcmFnZSIpOwotKyAgRnBpRGV2 aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7Ci0r Ci0rICBnX2Fzc2VydCAoc2VsZi0+dGFza19zc20gPT0gTlVMTCk7Ci0rICBzZWxmLT50YXNrX3Nz bSA9IGZwaV9zc21fbmV3IChkZXZpY2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlZ2lzX2V0dTkwNV9kZWxldGVfcnVuX3N0YXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgREVMRVRFX1NUQVRFUyk7Ci0rICBmcGlfc3NtX3N0YXJ0IChzZWxmLT50YXNrX3Nz bSwgZWdpc19ldHU5MDVfdGFza19zc21fZG9uZSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdp c19ldHU5MDVfZGVsZXRlIChGcERldmljZSAqZGV2aWNlKQotK3sKLSsgIGZwX2RiZyAoIkRlbGV0 ZSIpOwotKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5 MDUgKGRldmljZSk7Ci0rICBGcFByaW50ICpkZWxldGVfcHJpbnQgPSBOVUxMOwotKwotKyAgZnBp X2RldmljZV9nZXRfZGVsZXRlX2RhdGEgKGRldmljZSwgJmRlbGV0ZV9wcmludCk7Ci0rCi0rICBn X2Fzc2VydCAoc2VsZi0+dGFza19zc20gPT0gTlVMTCk7Ci0rICBzZWxmLT50YXNrX3NzbSA9IGZw aV9zc21fbmV3IChkZXZpY2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZ2lz X2V0dTkwNV9kZWxldGVfcnVuX3N0YXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgREVMRVRFX1NUQVRFUyk7Ci0rICAvKiB0aGUgcHJpbnQgaXMgb3duZWQgYnkgbGliZnByaW50 IGR1cmluZyBkZWxldGlvbiB0YXNrICovCi0rICBmcGlfc3NtX3NldF9kYXRhIChzZWxmLT50YXNr X3NzbSwgZGVsZXRlX3ByaW50LCBOVUxMKTsKLSsgIGZwaV9zc21fc3RhcnQgKHNlbGYtPnRhc2tf c3NtLCBlZ2lzX2V0dTkwNV90YXNrX3NzbV9kb25lKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStl Z2lzX2V0dTkwNV9lbnJvbGxfc3RhdHVzX3JlcG9ydCAoRnBEZXZpY2UgICAgKmRldmljZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5yb2xsUHJpbnQgKmVucm9sbF9wcmlu dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5yb2xsU3RhdHVzIHN0YXR1 cywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgKmVycm9y KQotK3sKLSsgIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRV OTA1IChkZXZpY2UpOwotKwotKyAgc3dpdGNoIChzdGF0dXMpCi0rICAgIHsKLSsgICAgY2FzZSBF TlJPTExfU1RBVFVTX0RFVklDRV9GVUxMOgotKyAgICBjYXNlIEVOUk9MTF9TVEFUVVNfRFVQTElD QVRFOgotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLCBlcnJvcik7 Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgRU5ST0xMX1NUQVRVU19SRVRSWToKLSsgICAg ICBmcGlfZGV2aWNlX2Vucm9sbF9wcm9ncmVzcyAoZGV2aWNlLCBlbnJvbGxfcHJpbnQtPnN0YWdl LCBOVUxMLCBlcnJvcik7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgRU5ST0xMX1NUQVRV U19QQVJUSUFMX09LOgotKyAgICAgIGVucm9sbF9wcmludC0+c3RhZ2UrKzsKLSsgICAgICBmcF9p bmZvICgiUGFydGlhbCBjYXB0dXJlIHN1Y2Nlc3NmdWwuIFBsZWFzZSB0b3VjaCB0aGUgc2Vuc29y IGFnYWluICglZC8lZCkiLAotKyAgICAgICAgICAgICAgIGVucm9sbF9wcmludC0+c3RhZ2UsCi0r ICAgICAgICAgICAgICAgc2VsZi0+bWF4X2Vucm9sbF9zdGFnZXMpOwotKyAgICAgIGZwaV9kZXZp Y2VfZW5yb2xsX3Byb2dyZXNzIChkZXZpY2UsIGVucm9sbF9wcmludC0+c3RhZ2UsIGVucm9sbF9w cmludC0+cHJpbnQsIE5VTEwpOwotKyAgICAgIGJyZWFrOwotKwotKyAgICBjYXNlIEVOUk9MTF9T VEFUVVNfQ09NUExFVEU6Ci0rICAgICAgZnBfaW5mbyAoIkVucm9sbG1lbnQgd2FzIHN1Y2Nlc3Nm dWwhIik7Ci0rICAgICAgZnBpX2RldmljZV9lbnJvbGxfY29tcGxldGUgKGRldmljZSwgZ19vYmpl Y3RfcmVmIChlbnJvbGxfcHJpbnQtPnByaW50KSwgTlVMTCk7Ci0rICAgICAgYnJlYWs7Ci0rCi0r ICAgIGRlZmF1bHQ6Ci0rICAgICAgaWYgKGVycm9yKQotKyAgICAgICAgZnBpX3NzbV9tYXJrX2Zh aWxlZCAoc2VsZi0+dGFza19zc20sIGVycm9yKTsKLSsgICAgICBlbHNlCi0rICAgICAgICBmcGlf c3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAoRlBfREVWSUNFX0VSUk9SX0dFTkVSQUws Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJVbmtub3duIGVycm9yIikpOwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19l dHU5MDVfcmVhZF9jYXB0dXJlX2NiIChGcERldmljZSAqZGV2aWNlLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3VjaGFyICAgKmJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdzaXplICAgICBsZW5ndGhfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHRXJyb3IgICAqZXJyb3IpCi0rewotKyAgZnBfZGJnICgiUmVhZCBjYXB0dXJlIGNhbGxi YWNrIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VU VTkwNSAoZGV2aWNlKTsKLSsgIEVucm9sbFByaW50ICplbnJvbGxfcHJpbnQgPSBmcGlfc3NtX2dl dF9kYXRhIChzZWxmLT50YXNrX3NzbSk7Ci0rCi0rICBpZiAoZXJyb3IpCi0rICAgIHsKLSsgICAg ICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOwotKyAgICAgIHJl dHVybjsKLSsgICAgfQotKwotKyAgLyogQ2hlY2sgdGhhdCB0aGUgcmVhZCBwYXlsb2FkIGluZGlj YXRlcyAic3VjY2VzcyIgKi8KLSsgIGlmIChlZ2lzX2V0dTkwNV92YWxpZGF0ZV9yZXNwb25zZV9w cmVmaXggKGJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxlbmd0aF9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJzcF9yZWFkX3N1Y2Nlc3NfcHJlZml4LAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcnNwX3JlYWRfc3VjY2Vzc19wcmVmaXhfbGVuKSAmJgotKyAg ICAgIGVnaXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3N1ZmZpeCAoYnVmZmVyX2luLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoX2luLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwX3JlYWRfc3VjY2Vz c19zdWZmaXgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy c3BfcmVhZF9zdWNjZXNzX3N1ZmZpeF9sZW4pKQotKyAgICB7Ci0rICAgICAgZWdpc19ldHU5MDVf ZW5yb2xsX3N0YXR1c19yZXBvcnQgKGRldmljZSwgZW5yb2xsX3ByaW50LAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTlJPTExfU1RBVFVTX1BBUlRJQUxfT0ssIE5V TEwpOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICAvKiBJZiBub3Qgc3VjY2VzcyB0 aGVuIHRoZSBzZW5zb3IgY2FuIGVpdGhlciByZXBvcnQgIm9mZiBjZW50ZXIiIG9yICJzZW5zb3Ig aXMgZGlydHkiICovCi0rCi0rICAgICAgLyogIk9mZiBjZW50ZXIiICovCi0rICAgICAgaWYgKGVn aXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3ByZWZpeCAoYnVmZmVyX2luLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aF9pbiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfcmVhZF9vZmZj ZW50ZXJfcHJlZml4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJzcF9yZWFkX29mZmNlbnRlcl9wcmVmaXhfbGVuKSAmJgotKyAgICAgICAgICBlZ2lz X2V0dTkwNV92YWxpZGF0ZV9yZXNwb25zZV9zdWZmaXggKGJ1ZmZlcl9pbiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhfaW4sCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwX3JlYWRfb2ZmY2Vu dGVyX3N1ZmZpeCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByc3BfcmVhZF9vZmZjZW50ZXJfc3VmZml4X2xlbikpCi0rICAgICAgICBlcnJvciA9IGZw aV9kZXZpY2VfcmV0cnlfbmV3IChGUF9ERVZJQ0VfUkVUUllfQ0VOVEVSX0ZJTkdFUik7Ci0rCi0r ICAgICAgLyogIlNlbnNvciBpcyBkaXJ0eSIgKi8KLSsgICAgICBlbHNlIGlmIChlZ2lzX2V0dTkw NV92YWxpZGF0ZV9yZXNwb25zZV9wcmVmaXggKGJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aF9pbiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9yZWFkX2Rp cnR5X3ByZWZpeCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJzcF9yZWFkX2RpcnR5X3ByZWZpeF9sZW4pKQotKyAgICAgICAgZXJyb3IgPSBm cGlfZGV2aWNlX3JldHJ5X25ld19tc2cgKEZQX0RFVklDRV9SRVRSWV9SRU1PVkVfRklOR0VSLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZb3VyIGRldmljZSBp cyBoYXZpbmcgdHJvdWJsZSByZWNvZ25pemluZyB5b3UuICIKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiTWFrZSBzdXJlIHlvdXIgc2Vuc29yIGlzIGNsZWFuLiIp OwotKwotKyAgICAgIGVsc2UKLSsgICAgICAgIGVycm9yID0gZnBpX2RldmljZV9yZXRyeV9uZXdf bXNnIChGUF9ERVZJQ0VfUkVUUllfUkVNT1ZFX0ZJTkdFUiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biBmYWlsdXJlIHRyeWluZyB0byByZWFkIHlv dXIgZmluZ2VyLiAiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlBsZWFzZSB0cnkgYWdhaW4uIik7Ci0rCi0rICAgICAgZWdpc19ldHU5MDVfZW5yb2xsX3N0YXR1 c19yZXBvcnQgKGRldmljZSwgZW5yb2xsX3ByaW50LCBFTlJPTExfU1RBVFVTX1JFVFJZLCBlcnJv cik7Ci0rICAgIH0KLSsKLSsgIGlmIChlbnJvbGxfcHJpbnQtPnN0YWdlID09IHNlbGYtPm1heF9l bnJvbGxfc3RhZ2VzKQotKyAgICBmcGlfc3NtX25leHRfc3RhdGUgKHNlbGYtPnRhc2tfc3NtKTsK LSsgIGVsc2UKLSsgICAgZnBpX3NzbV9qdW1wX3RvX3N0YXRlIChzZWxmLT50YXNrX3NzbSwgRU5S T0xMX0NBUFRVUkVfU0VOU09SX1JFU0VUKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0 dTkwNV9lbnJvbGxfZHVwbGljYXRlX2NoZWNrX2NiIChGcERldmljZSAqZGV2aWNlLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1Y2hhciAgICpidWZmZXJfaW4sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgIGxlbmd0aF9p biwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAqZXJy b3IpCi0rewotKyAgZnBfZGJnICgiVGFzayBTU00gZW5yb2xsIGR1cGxpY2F0ZSBjaGVjayBjYWxs YmFjayIpOwotKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19F VFU5MDUgKGRldmljZSk7Ci0rCi0rICBpZiAoZXJyb3IpCi0rICAgIHsKLSsgICAgICBmcGlfc3Nt X21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOwotKyAgICAgIHJldHVybjsKLSsg ICAgfQotKwotKyAgLyogQ2hlY2sgdGhhdCB0aGUgcmVhZCBwYXlsb2FkIHJlcG9ydHMgIm5vdCB5 ZXQgZW5yb2xsZWQiICovCi0rICBpZiAoZWdpc19ldHU5MDVfdmFsaWRhdGVfcmVzcG9uc2Vfc3Vm Zml4IChidWZmZXJfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZW5ndGhfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByc3BfY2hlY2tfbm90X3lldF9lbnJvbGxlZF9zdWZmaXgsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfY2hlY2tfbm90X3lldF9lbnJvbGxlZF9z dWZmaXhfbGVuKSkKLSsgICAgZnBpX3NzbV9qdW1wX3RvX3N0YXRlIChzZWxmLT50YXNrX3NzbSwg RU5ST0xMX0NPTU1JVF9TVEFSVCk7Ci0rICBlbHNlCi0rICAgIGVnaXNfZXR1OTA1X2Vucm9sbF9z dGF0dXNfcmVwb3J0IChkZXZpY2UsIE5VTEwsIEVOUk9MTF9TVEFUVVNfRFVQTElDQVRFLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXcg KEZQX0RFVklDRV9FUlJPUl9EQVRBX0RVUExJQ0FURSkpOwotK30KLSsKLStzdGF0aWMgdm9pZAot K2VnaXNfZXR1OTA1X2Vucm9sbF9iZWdpbl9jYiAoRnBEZXZpY2UgKmRldmljZSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGd1Y2hhciAgICpidWZmZXJfaW4sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnc2l6ZSAgICAgbGVuZ3RoX2luLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgR0Vycm9yICAgKmVycm9yKQotK3sKLSsgIGZwX2RiZyAoIkVucm9sbCBiZWdp biBjYWxsYmFjayIpOwotKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0Vf RUdJU19FVFU5MDUgKGRldmljZSk7Ci0rCi0rICBpZiAoZXJyb3IpCi0rICAgIHsKLSsgICAgICBm cGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOwotKyAgICAgIHJldHVy bjsKLSsgICAgfQotKwotKyAgRnBpQnl0ZVJlYWRlciByZWFkZXI7Ci0rCi0rICBmcGlfYnl0ZV9y ZWFkZXJfaW5pdCAoJnJlYWRlciwgYnVmZmVyX2luLCBsZW5ndGhfaW4pOwotKwotKyAgZnBpX2J5 dGVfcmVhZGVyX3NldF9wb3MgKCZyZWFkZXIsIEVHSVNfRVRVOTA1X0xJU1RfUkVTUE9OU0VfUFJF RklYX1NJWkUpOwotKwotKyAgY29uc3QgZ3VpbnQ4ICpkYXRhID0gTlVMTDsKLSsKLSsgIGZwaV9i eXRlX3JlYWRlcl9nZXRfZGF0YSAoJnJlYWRlciwgRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFU QV9TSVpFLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YSk7Ci0rCi0rICBpZiAo ZGF0YSkKLSsgICAgbWVtY3B5IChzZWxmLT5zaWQsIGRhdGEsIEVHSVNfRVRVOTA1X0ZJTkdFUlBS SU5UX0RBVEFfU0laRSk7Ci0rCi0rICBmcGlfc3NtX25leHRfc3RhdGUgKHNlbGYtPnRhc2tfc3Nt KTsKLSt9Ci0rCi0rLyoKLSsgKiBCdWlsZHMgdGhlIGZ1bGwgImNoZWNrIiBwYXlsb2FkIHdoaWNo IGluY2x1ZGVzIGlkZW50aWZpZXJzIGZvciBhbGwKLSsgKiBmaW5nZXJwcmludHMgd2hpY2ggY3Vy cmVudGx5IHNob3VsZCBleGlzdCBvbiB0aGUgc3RvcmFnZS4gVGhpcyBwYXlsb2FkIGlzCi0rICog dXNlZCBkdXJpbmcgYm90aCBlbnJvbGxtZW50IGFuZCB2ZXJpZnkgYWN0aW9ucy4KLSsgKi8KLStz dGF0aWMgZ3VjaGFyICoKLStlZ2lzX2V0dTkwNV9nZXRfY2hlY2tfY21kIChGcERldmljZSAqZGV2 aWNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAgICpsZW5ndGhfb3V0KQot K3sKLSsgIGZwX2RiZyAoIkdldCBjaGVjayBjb21tYW5kIik7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1 OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsgIGdfYXV0byhG cGlCeXRlV3JpdGVyKSB3cml0ZXIgPSB7MH07Ci0rICBnX2F1dG9mcmVlIGd1Y2hhciAqcmVzdWx0 ID0gTlVMTDsKLSsgIGdib29sZWFuIHdyaXR0ZW4gPSBUUlVFOwotKwotKyAgLyoKLSsgICAqIFRo ZSBmaW5hbCBjb21tYW5kIGJvZHkgc2hvdWxkIGNvbnRhaW46Ci0rICAgKiAxKSBoYXJkLWNvZGVk IDAwIDAwCi0rICAgKiAyKSAyLWJ5dGUgc2l6ZSBpbmRpY2lhdG9yLCAyMCpOdW1iZXIgZW5yb2xs ZWQgaWRlbnRpZmllcnMgcGx1cyA5IGluIGZvcm0gb2Y6Ci0rICAgKiAgICAoZW5yb2xsZWRfaWRz LT5sZW4gKyAxKSAqIDB4MjAgKyAweDA5Ci0rICAgKiAgICBTaW5jZSBtYXggcHJpbnRzIGNhbiBi ZSBoaWdoZXIgdGhhbiA3IHRoZW4gdGhpcyBnb2VzIHVwIHRvIDIgYnl0ZXMKLSsgICAqICAgIChl OSArIDkgPSAxMDkpCi0rICAgKiAzKSBIYXJkLWNvZGVkIHByZWZpeCAoY21kX2NoZWNrX3ByZWZp eCkKLSsgICAqIDQpIDItYnl0ZSBzaXplIGluZGljaWF0b3IsIDIwKk51bWJlciBvZiBlbnJvbGxl ZCBpZGVudGlmaWVycyB3aXRob3V0IHBsdXMgOQotKyAgICogICAgKChlbnJvbGxlZF9pZHMtPmxl biArIDEpICogMHgyMCkKLSsgICAqIDUpIEhhcmQtY29kZWQgMzIgKiAweDAwIGJ5dGVzCi0rICAg KiA2KSBBbGwgb2YgdGhlIGN1cnJlbnRseSByZWdpc3RlcmVkIHByaW50cyBpbiB0aGVpciAzMi1i eXRlIGRldmljZSBpZGVudGlmaWVycwotKyAgICogICAgKGVucm9sbGVkX2xpc3QpCi0rICAgKiA3 KSBIYXJkLWNvZGVkIHN1ZmZpeCAoY21kX2NoZWNrX3N1ZmZpeCkKLSsgICAqLwotKwotKyAgZ19h c3NlcnQgKHNlbGYtPmVucm9sbGVkX2lkcyk7Ci0rICBjb25zdCBnc2l6ZSBib2R5X2xlbmd0aCA9 IHNpemVvZiAoZ3VjaGFyKSAqIHNlbGYtPmVucm9sbGVkX2lkcy0+bGVuICoKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFOwotKwot KyAgLyogcHJlZml4IGxlbmd0aCBjYW4gZGVwZW5kIG9uIHRoZSB0eXBlICovCi0rICBjb25zdCBn c2l6ZSBjaGVja19wcmVmaXhfbGVuZ3RoID0gKGZwaV9kZXZpY2VfZ2V0X2RyaXZlcl9kYXRhIChk ZXZpY2UpICYKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5 MDVfRFJJVkVSX0NIRUNLX1BSRUZJWF9UWVBFMikgPwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNtZF9jaGVja19wcmVmaXhfdHlwZTJfbGVuIDoKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbWRfY2hlY2tfcHJlZml4X3R5cGUxX2xlbjsKLSsKLSsg IC8qIHRvdGFsX2xlbmd0aCBpcyB0aGUgNiB2YXJpb3VzIGJ5dGVzIHBsdXMgYWxsIG90aGVyIHBy ZWZpeGVzL3N1ZmZpeGVzIGFuZAotKyAgICogdGhlIGJvZHkgcGF5bG9hZCAqLwotKyAgY29uc3Qg Z3NpemUgdG90YWxfbGVuZ3RoID0gKHNpemVvZiAoZ3VjaGFyKSAqIDYpCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArIGNoZWNrX3ByZWZpeF9sZW5ndGgKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsgRUdJU19FVFU5MDVfQ01EX0NIRUNLX1NFUEFSQVRPUl9MRU5HVEgKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgYm9keV9sZW5ndGgKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsgY21kX2NoZWNrX3N1ZmZpeF9sZW47Ci0rCi0rICAvKiBwcmUtZmls bCBlbnRpcmUgcGF5bG9hZCB3aXRoIDAwcyAqLwotKyAgZnBpX2J5dGVfd3JpdGVyX2luaXRfd2l0 aF9zaXplICgmd3JpdGVyLCB0b3RhbF9sZW5ndGgsIFRSVUUpOwotKwotKyAgLyogc3RhcnQgd2l0 aCAwMCAwMCAoanVzdCBtb3ZlIHN0YXJ0aW5nIG9mZnNldCB1cCBieSAyKSAqLwotKyAgd3JpdHRl biAmPSBmcGlfYnl0ZV93cml0ZXJfc2V0X3BvcyAoJndyaXRlciwgMik7Ci0rCi0rICAvKiBTaXpl IENvdW50ZXIgYnl0ZXMgKi8KLSsgIC8qICJlYXNpZXN0IiB3YXkgdG8gaGFuZGxlIDItYnl0ZXMg c2l6ZSBmb3IgY291bnRlciBpcyB0byBoYXJkLWNvZGUgbG9naWMgZm9yCi0rICAgKiB3aGVuIHdl IGdvIHRvIHRoZSAybmQgYnl0ZQotKyAgICogbm90ZSB0aGlzIHdpbGwgbm90IHdvcmsgaW4gY2Fz ZSBhbnkgbW9kZWwgZXZlciBzdXBwb3J0cyBtb3JlIHRoYW4gMTQgcHJpbnRzCi0rICAgKiAoYXNz dW1lZCBtYXggaXMgMTApICovCi0rICBpZiAoc2VsZi0+ZW5yb2xsZWRfaWRzLT5sZW4gPiA2KQot KyAgICB7Ci0rICAgICAgd3JpdHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4ICgmd3Jp dGVyLCAweDAxKTsKLSsgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDgg KCZ3cml0ZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KHNlbGYtPmVucm9sbGVkX2lkcy0+bGVuIC0gNykgKiAweDIwKQotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAweDA5KTsKLSsgICAgfQotKyAgZWxzZQotKyAg ICB7Ci0rICAgICAgLyogZmlyc3QgYnl0ZSBpcyAweDAwLCBqdXN0IHNraXAgaXQgKi8KLSsgICAg ICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9jaGFuZ2VfcG9zICgmd3JpdGVyLCAxKTsKLSsg ICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfdWludDggKCZ3cml0ZXIsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHNlbGYtPmVucm9sbGVk X2lkcy0+bGVuICsgMSkgKiAweDIwKSArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDA5KTsKLSsgICAgfQotKwotKyAgLyogY29tbWFuZCBwcmVmaXggKi8K LSsgIGlmIChmcGlfZGV2aWNlX2dldF9kcml2ZXJfZGF0YSAoZGV2aWNlKSAmIEVHSVNfRVRVOTA1 X0RSSVZFUl9DSEVDS19QUkVGSVhfVFlQRTIpCi0rICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVfd3Jp dGVyX3B1dF9kYXRhICgmd3JpdGVyLCBjbWRfY2hlY2tfcHJlZml4X3R5cGUyLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kX2NoZWNrX3ByZWZpeF90eXBlMl9s ZW4pOwotKyAgZWxzZQotKyAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YSAo JndyaXRlciwgY21kX2NoZWNrX3ByZWZpeF90eXBlMSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNtZF9jaGVja19wcmVmaXhfdHlwZTFfbGVuKTsKLSsKLSsgIC8q IDItYnl0ZXMgc2l6ZSBsb2dpYyBmb3IgY291bnRlciBhZ2FpbiAqLwotKyAgaWYgKHNlbGYtPmVu cm9sbGVkX2lkcy0+bGVuID4gNikKLSsgICAgewotKyAgICAgIHdyaXR0ZW4gJj0gZnBpX2J5dGVf d3JpdGVyX3B1dF91aW50OCAoJndyaXRlciwgMHgwMSk7Ci0rICAgICAgd3JpdHRlbiAmPSBmcGlf Ynl0ZV93cml0ZXJfcHV0X3VpbnQ4ICgmd3JpdGVyLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHNlbGYtPmVucm9sbGVkX2lkcy0+bGVuIC0gNykgKiAweDIw KTsKLSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgLyogZmlyc3QgYnl0ZSBpcyAweDAw LCBqdXN0IHNraXAgaXQgKi8KLSsgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9jaGFu Z2VfcG9zICgmd3JpdGVyLCAxKTsKLSsgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9w dXRfdWludDggKCZ3cml0ZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc2VsZi0+ZW5yb2xsZWRfaWRzLT5sZW4gKyAxKSAqIDB4MjApOwotKyAgICB9Ci0r Ci0rICAvKiBhZGQgMDBzICJzZXBhcmF0b3IiIHRvIG9mZnNldCBwb3NpdGlvbiAqLwotKyAgd3Jp dHRlbiAmPSBmcGlfYnl0ZV93cml0ZXJfY2hhbmdlX3BvcyAoJndyaXRlciwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X0NNRF9DSEVDS19TRVBB UkFUT1JfTEVOR1RIKTsKLSsKLSsgIGZvciAoZ3VpbnQgaSA9IDA7IGkgPCBzZWxmLT5lbnJvbGxl ZF9pZHMtPmxlbiAmJiB3cml0dGVuOyBpKyspCi0rICAgIHsKLSsgICAgICB3cml0dGVuICY9IGZw aV9ieXRlX3dyaXRlcl9wdXRfZGF0YSAoJndyaXRlciwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ19wdHJfYXJyYXlfaW5kZXggKHNlbGYtPmVucm9sbGVkX2lk cywgaSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNf RVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSk7Ci0rICAgIH0KLSsKLSsgIC8qIGNvbW1hbmQg c3VmZml4ICovCi0rICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YSAoJndyaXRl ciwgY21kX2NoZWNrX3N1ZmZpeCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjbWRfY2hlY2tfc3VmZml4X2xlbik7Ci0rICBnX2Fzc2VydCAod3JpdHRlbik7Ci0rCi0r ICBpZiAobGVuZ3RoX291dCkKLSsgICAgKmxlbmd0aF9vdXQgPSB0b3RhbF9sZW5ndGg7Ci0rCi0r ICByZXR1cm4gZnBpX2J5dGVfd3JpdGVyX3Jlc2V0X2FuZF9nZXRfZGF0YSAoJndyaXRlcik7Ci0r fQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfZW5yb2xsX3J1bl9zdGF0ZSAoRnBpU3Nt ICAgKnNzbSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcERldmljZSAqZGV2aWNl KQotK3sKLSsgIGdfYXV0byhGcGlCeXRlV3JpdGVyKSB3cml0ZXIgPSB7MH07Ci0rICBFZ2lzbW9j U2lkRGF0YSBzaWRfZGF0YSA9IHswfTsKLSsgIEVucm9sbFByaW50ICplbnJvbGxfcHJpbnQgPSBm cGlfc3NtX2dldF9kYXRhIChzc20pOwotKyAgZ19hdXRvZnJlZSBndWNoYXIgKnBheWxvYWQgPSBO VUxMOwotKyAgZ3NpemUgcGF5bG9hZF9sZW5ndGggPSAwOwotKyAgZ19hdXRvZnJlZSBnY2hhciAq ZGV2aWNlX3ByaW50X2lkID0gTlVMTDsKLSsgIGdfYXV0b2ZyZWUgZ2NoYXIgKnVzZXJfaWQgPSBO VUxMOwotKwotKyAgc3dpdGNoIChmcGlfc3NtX2dldF9jdXJfc3RhdGUgKHNzbSkpCi0rICAgIHsK LSsgICAgY2FzZSBFTlJPTExfU1RBUlQ6Ci0rICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRl dmljZSwgY21kX2Vucm9sbF9zdGFydGluZywgY21kX2Vucm9sbF9zdGFydGluZ19sZW4sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVnaXNfZXR1OTA1X2Vucm9sbF9iZWdpbl9j Yik7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgRU5ST0xMX0NBUFRVUkVfU0VOU09SX1JF U0VUOgotKyAgICAgIGVnaXNfZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9zZW5zb3JfcmVz ZXQsIGNtZF9zZW5zb3JfcmVzZXRfbGVuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLCBlZ2lzX2V0dTkwNV90YXNrX3NzbV9uZXh0X3N0YXRlX2NiKTsKLSsgICAgICBicmVhazsK LSsKLSsgICAgY2FzZSBFTlJPTExfQ0FQVFVSRV9TRU5TT1JfU1RBUlRfQ0FQVFVSRToKLSsgICAg ICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRfc2Vuc29yX3N0YXJ0X2NhcHR1cmUs IGNtZF9zZW5zb3Jfc3RhcnRfY2FwdHVyZV9sZW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVnaXNfZXR1OTA1X3Rhc2tf c3NtX25leHRfc3RhdGVfY2IpOwotKyAgICAgIGJyZWFrOwotKwotKyAgICBjYXNlIEVOUk9MTF9D QVBUVVJFX1dBSVRfRklOR0VSOgotKyAgICAgIGVnaXNfZXR1OTA1X3dhaXRfZmluZ2VyX29uX3Nl bnNvciAoc3NtLCBkZXZpY2UpOwotKyAgICAgIGJyZWFrOwotKwotKyAgICBjYXNlIEVOUk9MTF9D QVBUVVJFX1JFQURfUkVTUE9OU0U6Ci0rICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmlj ZSwgY21kX3JlYWRfY2FwdHVyZSwgY21kX3JlYWRfY2FwdHVyZV9sZW4sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsIGVnaXNfZXR1OTA1X3JlYWRfY2FwdHVyZV9jYik7Ci0rICAg ICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgRU5ST0xMX0RVUExJQ0FURV9DSEVDSzoKLSsgICAgICBl Z2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRfZHVwbGljYXRlX2NoZWNrLCBjbWRfZHVw bGljYXRlX2NoZWNrX2xlbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdp c19ldHU5MDVfZW5yb2xsX2R1cGxpY2F0ZV9jaGVja19jYik7Ci0rICAgICAgYnJlYWs7Ci0rCi0r ICAgIGNhc2UgRU5ST0xMX0NPTU1JVF9TVEFSVDoKLSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2Nt ZCAoZGV2aWNlLCBjbWRfY29tbWl0X3N0YXJ0aW5nLCBjbWRfY29tbWl0X3N0YXJ0aW5nX2xlbiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdpc19ldHU5MDVfY29tbWl0X3N0 YXJ0X2NiKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBFTlJPTExfQ09NTUlUOgotKyAg ICAgIHVzZXJfaWQgPSBmcGlfcHJpbnRfZ2VuZXJhdGVfdXNlcl9pZCAoZW5yb2xsX3ByaW50LT5w cmludCk7Ci0rICAgICAgZnBfZGJnICgiTmV3IGZpbmdlcnByaW50IElEOiAlcyIsIHVzZXJfaWQp OwotKwotKyAgICAgIHNpZF9kYXRhLnJlc2VydmVfcGFyYV8xID0gRUdJU19FVFU5MDVfUEFSQV8x X1ZBTFVFOwotKyAgICAgIHNpZF9kYXRhLnJlc2VydmVfcGFyYV8yID0gRUdJU19FVFU5MDVfUEFS QV8yX1ZBTFVFOwotKyAgICAgIHNpZF9kYXRhLnJlc2VydmVfcGFyYV8zID0gRUdJU19FVFU5MDVf UEFSQV8zX1ZBTFVFOwotKyAgICAgIG1lbWNweSAoc2lkX2RhdGEucmVzZXJ2ZV9wYXJhXzQsIHVz ZXJfaWQsIE1JTiAoRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFLCBzdHJsZW4gKHVz ZXJfaWQpKSk7Ci0rICAgICAgZWdpc19ldHU5MDVfc2V0X3ByaW50X2RhdGEgKGVucm9sbF9wcmlu dC0+cHJpbnQsIChjb25zdCBnY2hhciAqKSAmc2lkX2RhdGEucmVzZXJ2ZV9wYXJhXzQsIHVzZXJf aWQpOwotKyAgICAgIGZwaV9ieXRlX3dyaXRlcl9pbml0ICgmd3JpdGVyKTsKLSsgICAgICBpZiAo IWZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YSAoJndyaXRlciwgY21kX25ld19wcmludF9wcmVmaXhf dHlwZTIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZF9uZXdfcHJp bnRfcHJlZml4X3R5cGUyX2xlbikpCi0rICAgICAgICB7Ci0rICAgICAgICAgIGZwaV9zc21fbWFy a19mYWlsZWQgKHNzbSwgZnBpX2RldmljZV9lcnJvcl9uZXcgKEZQX0RFVklDRV9FUlJPUl9QUk9U TykpOwotKyAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSsgICAgICBpZiAoIWZwaV9ieXRl X3dyaXRlcl9wdXRfZGF0YSAoJndyaXRlciwgKGd1aW50OCAqKSAmc2lkX2RhdGEsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoRWdpc21vY1NpZERhdGEpKSkK LSsgICAgICAgIHsKLSsgICAgICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc3NtLCBmcGlfZGV2 aWNlX2Vycm9yX25ldyAoRlBfREVWSUNFX0VSUk9SX1BST1RPKSk7Ci0rICAgICAgICAgIGJyZWFr OwotKyAgICAgICAgfQotKwotKyAgICAgIHBheWxvYWRfbGVuZ3RoID0gZnBpX2J5dGVfd3JpdGVy X2dldF9zaXplICgmd3JpdGVyKTsKLSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNl LCBmcGlfYnl0ZV93cml0ZXJfcmVzZXRfYW5kX2dldF9kYXRhICgmd3JpdGVyKSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZF9sZW5ndGgsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdfZnJlZSwgZWdpc19ldHU5MDVfdGFza19zc21fbmV4dF9zdGF0ZV9jYik7Ci0r ICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgRU5ST0xMX0NPTU1JVF9TRU5TT1JfUkVTRVQ6Ci0r ICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgY21kX3NlbnNvcl9yZXNldCwgY21k X3NlbnNvcl9yZXNldF9sZW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVn aXNfZXR1OTA1X3Rhc2tfc3NtX25leHRfc3RhdGVfY2IpOwotKyAgICAgIGJyZWFrOwotKwotKyAg ICBjYXNlIEVOUk9MTF9DT01QTEVURToKLSsgICAgICBlZ2lzX2V0dTkwNV9lbnJvbGxfc3RhdHVz X3JlcG9ydCAoZGV2aWNlLCBlbnJvbGxfcHJpbnQsIEVOUk9MTF9TVEFUVVNfQ09NUExFVEUsIE5V TEwpOwotKyAgICAgIGZwaV9zc21fbmV4dF9zdGF0ZSAoc3NtKTsKLSsgICAgICBicmVhazsKLSsg ICAgfQotK30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X2Vucm9sbCAoRnBEZXZpY2Ug KmRldmljZSkKLSt7Ci0rICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9F R0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsgIEVucm9sbFByaW50ICplbnJvbGxfcHJpbnQgPSBnX25l dzAgKEVucm9sbFByaW50LCAxKTsKLSsKLSsgIGZwX2RiZyAoIkVucm9sbCIpOwotKwotKyAgZnBp X2RldmljZV9nZXRfZW5yb2xsX2RhdGEgKGRldmljZSwgJmVucm9sbF9wcmludC0+cHJpbnQpOwot KyAgZW5yb2xsX3ByaW50LT5zdGFnZSA9IDA7Ci0rCi0rICBnX2Fzc2VydCAoc2VsZi0+dGFza19z c20gPT0gTlVMTCk7Ci0rICBzZWxmLT50YXNrX3NzbSA9IGZwaV9zc21fbmV3IChkZXZpY2UsIGVn aXNfZXR1OTA1X2Vucm9sbF9ydW5fc3RhdGUsIEVOUk9MTF9TVEFURVMpOwotKyAgZnBpX3NzbV9z ZXRfZGF0YSAoc2VsZi0+dGFza19zc20sIGdfc3RlYWxfcG9pbnRlciAoJmVucm9sbF9wcmludCks IGdfZnJlZSk7Ci0rICBmcGlfc3NtX3N0YXJ0IChzZWxmLT50YXNrX3NzbSwgZWdpc19ldHU5MDVf dGFza19zc21fZG9uZSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfaWRlbnRp ZnlfY2hlY2tfY2IgKEZwRGV2aWNlICpkZXZpY2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGd1Y2hhciAgICpidWZmZXJfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdzaXplICAgICBsZW5ndGhfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdFcnJvciAgICplcnJvcikKLSt7Ci0rICBmcF9kYmcgKCJJZGVudGlmeSBjaGVjayBjYWxsYmFj ayIpOwotKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5 MDUgKGRldmljZSk7Ci0rICBnY2hhciBkZXZpY2VfcHJpbnRfaWRbRUdJU19FVFU5MDVfRklOR0VS UFJJTlRfREFUQV9TSVpFXTsKLSsgIEZwUHJpbnQgKnByaW50ID0gTlVMTDsKLSsgIEZwUHJpbnQg KnZlcmlmeV9wcmludCA9IE5VTEw7Ci0rICBHUHRyQXJyYXkgKnByaW50czsKLSsgIGdib29sZWFu IGZvdW5kID0gRkFMU0U7Ci0rICBndWludCBpbmRleDsKLSsKLSsgIGlmIChlcnJvcikKLSsgICAg ewotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLCBlcnJvcik7Ci0r ICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAvKiBDaGVjayB0aGF0IHRoZSByZWFkIHBheWxv YWQgaW5kaWNhdGVzICJtYXRjaCIgKi8KLSsgIGlmIChlZ2lzX2V0dTkwNV92YWxpZGF0ZV9yZXNw b25zZV9zdWZmaXggKGJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxlbmd0aF9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJzcF9pZGVudGlmeV9tYXRjaF9zdWZmaXgsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfaWRlbnRpZnlfbWF0Y2hfc3VmZml4X2xl bikpCi0rICAgIHsKLSsgICAgICAvKgotKyAgICAgICAgIE9uIHN1Y2Nlc3MsIHRoZXJlIGlzIGEg MzIgYnl0ZSBhcnJheSBvZiAic29tZXRoaW5nIig/KSBpbiBjaGFycyAxNC00NQotKyAgICAgICAg IGFuZCB0aGVuIHRoZSAzMiBieXRlIGFycmF5IElEIG9mIHRoZSBtYXRjaGVkIHByaW50IGNvbWVz IGFzIGNoYXJzIDQ2LTc3Ci0rICAgICAgICovCi0rICAgICAgbWVtY3B5IChkZXZpY2VfcHJpbnRf aWQsCi0rICAgICAgICAgICAgICBidWZmZXJfaW4gKyBFR0lTX0VUVTkwNV9JREVOVElGWV9SRVNQ T05TRV9QUklOVF9JRF9PRkZTRVQsCi0rICAgICAgICAgICAgICBFR0lTX0VUVTkwNV9GSU5HRVJQ UklOVF9EQVRBX1NJWkUpOwotKwotKyAgICAgIC8qIENyZWF0ZSBhIG5ldyBwcmludCBmcm9tIHRo aXMgZGV2aWNlX3ByaW50X2lkIGFuZCB0aGVuIHNlZSBpZiBpdCBtYXRjaGVzCi0rICAgICAgICog dGhlIG9uZSBpbmRpY2F0ZWQKLSsgICAgICAgKi8KLSsgICAgICBwcmludCA9IGZwX3ByaW50X25l dyAoZGV2aWNlKTsKLSsgICAgICBlZ2lzX2V0dTkwNV9zZXRfcHJpbnRfZGF0YSAocHJpbnQsIGRl dmljZV9wcmludF9pZCwgTlVMTCk7Ci0rCi0rICAgICAgaWYgKCFwcmludCkKLSsgICAgICAgIHsK LSsgICAgICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAoRlBfREVW SUNFX0VSUk9SX0RBVEFfSU5WQUxJRCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGJ1aWxkIGEgcHJpbnQgZnJvbSAi Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImRldmljZSByZXNwb25zZS4iKSk7Ci0rICAgICAgICAgIHJldHVybjsKLSsgICAgICAgIH0K LSsKLSsgICAgICBmcF9pbmZvICgiSWRlbnRpZnkgc3VjY2Vzc2Z1bCBmb3I6ICVzIiwgZnBfcHJp bnRfZ2V0X2Rlc2NyaXB0aW9uIChwcmludCkpOwotKwotKyAgICAgIGlmIChmcGlfZGV2aWNlX2dl dF9jdXJyZW50X2FjdGlvbiAoZGV2aWNlKSA9PSBGUElfREVWSUNFX0FDVElPTl9JREVOVElGWSkK LSsgICAgICAgIHsKLSsgICAgICAgICAgZnBpX2RldmljZV9nZXRfaWRlbnRpZnlfZGF0YSAoZGV2 aWNlLCAmcHJpbnRzKTsKLSsgICAgICAgICAgZm91bmQgPSBnX3B0cl9hcnJheV9maW5kX3dpdGhf ZXF1YWxfZnVuYyAocHJpbnRzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcmludCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKEdFcXVhbEZ1bmMpIGZwX3ByaW50X2VxdWFsLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5kZXgpOwot KwotKyAgICAgICAgICBpZiAoZm91bmQpCi0rICAgICAgICAgICAgZnBpX2RldmljZV9pZGVudGlm eV9yZXBvcnQgKGRldmljZSwgZ19wdHJfYXJyYXlfaW5kZXggKHByaW50cywgaW5kZXgpLCBwcmlu dCwgTlVMTCk7Ci0rICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBmcGlfZGV2aWNlX2lkZW50 aWZ5X3JlcG9ydCAoZGV2aWNlLCBOVUxMLCBwcmludCwgTlVMTCk7Ci0rICAgICAgICB9Ci0rICAg ICAgZWxzZQotKyAgICAgICAgewotKyAgICAgICAgICBmcGlfZGV2aWNlX2dldF92ZXJpZnlfZGF0 YSAoZGV2aWNlLCAmdmVyaWZ5X3ByaW50KTsKLSsgICAgICAgICAgZnBfaW5mbyAoIlZlcmlmeWlu ZyBhZ2FpbnN0OiAlcyIsIGZwX3ByaW50X2dldF9kZXNjcmlwdGlvbiAodmVyaWZ5X3ByaW50KSk7 Ci0rCi0rICAgICAgICAgIGlmIChmcF9wcmludF9lcXVhbCAodmVyaWZ5X3ByaW50LCBwcmludCkp Ci0rICAgICAgICAgICAgZnBpX2RldmljZV92ZXJpZnlfcmVwb3J0IChkZXZpY2UsIEZQSV9NQVRD SF9TVUNDRVNTLCBwcmludCwgTlVMTCk7Ci0rICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBm cGlfZGV2aWNlX3ZlcmlmeV9yZXBvcnQgKGRldmljZSwgRlBJX01BVENIX0ZBSUwsIHByaW50LCBO VUxMKTsKLSsgICAgICAgIH0KLSsgICAgfQotKyAgLyogSWYgZGV2aWNlIHdhcyBzdWNjZXNzZnVs bHkgcmVhZCBidXQgaXQgd2FzIGEgIm5vdCBtYXRjaGVkIiAqLwotKyAgZWxzZSBpZiAoZWdpc19l dHU5MDVfdmFsaWRhdGVfcmVzcG9uc2Vfc3VmZml4IChidWZmZXJfaW4sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aF9pbiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwX2lkZW50aWZ5X25v dG1hdGNoX3N1ZmZpeCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcnNwX2lkZW50aWZ5X25vdG1hdGNoX3N1ZmZpeF9sZW4pKQotKyAgICB7Ci0rICAg ICAgZnBfaW5mbyAoIlByaW50IHdhcyBub3QgaWRlbnRpZmllZCBieSB0aGUgZGV2aWNlIik7Ci0r Ci0rICAgICAgaWYgKGZwaV9kZXZpY2VfZ2V0X2N1cnJlbnRfYWN0aW9uIChkZXZpY2UpID09IEZQ SV9ERVZJQ0VfQUNUSU9OX1ZFUklGWSkKLSsgICAgICAgIGZwaV9kZXZpY2VfdmVyaWZ5X3JlcG9y dCAoZGV2aWNlLCBGUElfTUFUQ0hfRkFJTCwgTlVMTCwgTlVMTCk7Ci0rICAgICAgZWxzZQotKyAg ICAgICAgZnBpX2RldmljZV9pZGVudGlmeV9yZXBvcnQgKGRldmljZSwgTlVMTCwgTlVMTCwgTlVM TCk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgewotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQg KHNlbGYtPnRhc2tfc3NtLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2Vf ZXJyb3JfbmV3X21zZyAoRlBfREVWSUNFX0VSUk9SX1BST1RPLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVucmVjb2duaXplZCByZXNwb25z ZSBmcm9tIGRldmljZS4iKSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICBmcGlfc3Nt X25leHRfc3RhdGUgKHNlbGYtPnRhc2tfc3NtKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lz X2V0dTkwNV9pZGVudGlmeV9ydW5fc3RhdGUgKEZwaVNzbSAgICpzc20sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGcERldmljZSAqZGV2aWNlKQotK3sKLSsgIEZwaURldmljZUVn aXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotKyAgZ19h dXRvZnJlZSBndWNoYXIgKnBheWxvYWQgPSBOVUxMOwotKyAgZ3NpemUgcGF5bG9hZF9sZW5ndGgg PSAwOwotKwotKyAgc3dpdGNoIChmcGlfc3NtX2dldF9jdXJfc3RhdGUgKHNzbSkpCi0rICAgIHsK LSsgICAgY2FzZSBJREVOVElGWV9HRVRfRU5ST0xMRURfSURTOgotKyAgICAgIC8qIGdldCBlbnJv bGxlZF9pZHMgZnJvbSBkZXZpY2UgZm9yIHVzZSBpbiBjaGVjayBzdGFnZXMgYmVsb3cgKi8KLSsg ICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRfbGlzdCwgY21kX2xpc3RfbGVu LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBlZ2lzX2V0dTkwNV9saXN0X2Zp bGxfZW5yb2xsZWRfaWRzX2NiKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBJREVOVElG WV9DSEVDS19FTlJPTExFRF9OVU06Ci0rICAgICAgaWYgKHNlbGYtPmVucm9sbGVkX2lkcy0+bGVu ID09IDApCi0rICAgICAgICB7Ci0rICAgICAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKGdfc3Rl YWxfcG9pbnRlciAoJnNlbGYtPnRhc2tfc3NtKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXcgKEZQX0RFVklDRV9FUlJPUl9EQVRBX05PVF9GT1VO RCkpOwotKyAgICAgICAgICByZXR1cm47Ci0rICAgICAgICB9Ci0rICAgICAgZnBpX3NzbV9uZXh0 X3N0YXRlIChzc20pOwotKyAgICAgIGJyZWFrOwotKwotKyAgICBjYXNlIElERU5USUZZX1NFTlNP Ul9SRVNFVDoKLSsgICAgICBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoZGV2aWNlLCBjbWRfc2Vuc29y X3Jlc2V0LCBjbWRfc2Vuc29yX3Jlc2V0X2xlbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlVMTCwgZWdpc19ldHU5MDVfdGFza19zc21fbmV4dF9zdGF0ZV9jYik7Ci0rICAgICAgYnJl YWs7Ci0rCi0rICAgIGNhc2UgSURFTlRJRllfU0VOU09SX0lERU5USUZZOgotKyAgICAgIGVnaXNf ZXR1OTA1X2V4ZWNfY21kIChkZXZpY2UsIGNtZF9zZW5zb3JfaWRlbnRpZnksIGNtZF9zZW5zb3Jf aWRlbnRpZnlfbGVuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBlZ2lzX2V0 dTkwNV90YXNrX3NzbV9uZXh0X3N0YXRlX2NiKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2Fz ZSBJREVOVElGWV9XQUlUX0ZJTkdFUjoKLSsgICAgICBlZ2lzX2V0dTkwNV93YWl0X2Zpbmdlcl9v bl9zZW5zb3IgKHNzbSwgZGV2aWNlKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBJREVO VElGWV9TRU5TT1JfQ0hFQ0s6Ci0rICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwg Y21kX3NlbnNvcl9jaGVjaywgY21kX3NlbnNvcl9jaGVja19sZW4sCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsIGVnaXNfZXR1OTA1X3Rhc2tfc3NtX25leHRfc3RhdGVfY2IpOwot KyAgICAgIGJyZWFrOwotKwotKyAgICBjYXNlIElERU5USUZZX0NIRUNLOgotKyAgICAgIHBheWxv YWQgPSBlZ2lzX2V0dTkwNV9nZXRfY2hlY2tfY21kIChkZXZpY2UsICZwYXlsb2FkX2xlbmd0aCk7 Ci0rICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgZ19zdGVhbF9wb2ludGVyICgm cGF5bG9hZCksIHBheWxvYWRfbGVuZ3RoLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBn X2ZyZWUsIGVnaXNfZXR1OTA1X2lkZW50aWZ5X2NoZWNrX2NiKTsKLSsgICAgICBicmVhazsKLSsK LSsgICAgY2FzZSBJREVOVElGWV9DT01QTEVURV9TRU5TT1JfUkVTRVQ6Ci0rICAgICAgZWdpc19l dHU5MDVfZXhlY19jbWQgKGRldmljZSwgY21kX3NlbnNvcl9yZXNldCwgY21kX3NlbnNvcl9yZXNl dF9sZW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVnaXNfZXR1OTA1X3Rh c2tfc3NtX25leHRfc3RhdGVfY2IpOwotKyAgICAgIGJyZWFrOwotKwotKyAgICAvKgotKyAgICAg KiBJbiBXaW5kb3dzLCB0aGUgZHJpdmVyIHNlZW1zIGF0IHRoaXMgcG9pbnQgdG8gdGhlbiBpbW1l ZGlhdGVseSB0YWtlCi0rICAgICAqIGFub3RoZXIgcmVhZCBmcm9tIHRoZSBzZW5zb3I7IHRoaXMg aXMgc3VzcGVjdGVkIHRvIGJlIGFuIG9uLWNoaXAKLSsgICAgICogInZlcmlmeSIuIEhvd2V2ZXIs IGJlY2F1c2UgdGhlIHVzZXIncyBmaW5nZXIgaXMgc3RpbGwgb24gdGhlIHNlbnNvciBmcm9tCi0r ICAgICAqIHRoZSBpZGVudGlmeSwgdGhlbiBpdCBzZWVtcyB0byBhbHdheXMgcmV0dXJuIHBvc2l0 aXZlLiBXZSB3aWxsIGNvbnNpZGVyCi0rICAgICAqIHRoaXMgZXh0cmEgc3RlcCB1bm5lY2Vzc2Fy eSBhbmQganVzdCBza2lwIGl0IGluIHRoaXMgZHJpdmVyLiBUaGlzIGRyaXZlcgotKyAgICAgKiB3 aWxsIGluc3RlYWQgaGFuZGxlIG1hdGNoaW5nIG9mIHRoZSBGcFByaW50IGZyb20gdGhlIGdhbGxl cnkgaW4gdGhlCi0rICAgICAqICJ2ZXJpZnkiIGNhc2Ugb2YgdGhlIGNhbGxiYWNrIGVnaXNfZXR1 OTA1X2lkZW50aWZ5X2NoZWNrX2NiLgotKyAgICAgKi8KLSsgICAgY2FzZSBJREVOVElGWV9DT01Q TEVURToKLSsgICAgICBpZiAoZnBpX2RldmljZV9nZXRfY3VycmVudF9hY3Rpb24gKGRldmljZSkg PT0gRlBJX0RFVklDRV9BQ1RJT05fSURFTlRJRlkpCi0rICAgICAgICBmcGlfZGV2aWNlX2lkZW50 aWZ5X2NvbXBsZXRlIChkZXZpY2UsIE5VTEwpOwotKyAgICAgIGVsc2UKLSsgICAgICAgIGZwaV9k ZXZpY2VfdmVyaWZ5X2NvbXBsZXRlIChkZXZpY2UsIE5VTEwpOwotKwotKyAgICAgIGZwaV9zc21f bWFya19jb21wbGV0ZWQgKHNzbSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIH0KLSt9Ci0rCi0rc3Rh dGljIHZvaWQKLStlZ2lzX2V0dTkwNV9pZGVudGlmeV92ZXJpZnkgKEZwRGV2aWNlICpkZXZpY2Up Ci0rewotKyAgZnBfZGJnICgiSWRlbnRpZnkgb3IgVmVyaWZ5Iik7Ci0rICBGcGlEZXZpY2VFZ2lz RXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLSsKLSsgIGdf YXNzZXJ0IChzZWxmLT50YXNrX3NzbSA9PSBOVUxMKTsKLSsgIHNlbGYtPnRhc2tfc3NtID0gZnBp X3NzbV9uZXcgKGRldmljZSwgZWdpc19ldHU5MDVfaWRlbnRpZnlfcnVuX3N0YXRlLCBJREVOVElG WV9TVEFURVMpOwotKyAgZnBpX3NzbV9zdGFydCAoc2VsZi0+dGFza19zc20sIGVnaXNfZXR1OTA1 X3Rhc2tfc3NtX2RvbmUpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X2Z3X3Zl cnNpb25fY2IgKEZwRGV2aWNlICpkZXZpY2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3VjaGFyICAgKmJ1ZmZlcl9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSAg ICAgbGVuZ3RoX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICplcnJv cikKLSt7Ci0rICBmcF9kYmcgKCJGaXJtd2FyZSB2ZXJzaW9uIGNhbGxiYWNrIik7Ci0rICBGcGlE ZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsK LSsgIGdfYXV0b2ZyZWUgZ2NoYXIgKmZ3X3ZlcnNpb24gPSBOVUxMOwotKyAgZ3NpemUgcHJlZml4 X2xlbmd0aDsKLSsgIGd1Y2hhciAqZndfdmVyc2lvbl9zdGFydDsKLSsgIGdzaXplIGZ3X3ZlcnNp b25fbGVuZ3RoOwotKwotKyAgaWYgKGVycm9yKQotKyAgICB7Ci0rICAgICAgZnBpX3NzbV9tYXJr X2ZhaWxlZCAoc2VsZi0+dGFza19zc20sIGVycm9yKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0K LSsKLSsgIC8qIENoZWNrIHRoYXQgdGhlIHJlYWQgcGF5bG9hZCBpbmRpY2F0ZXMgInN1Y2Nlc3Mi ICovCi0rICBpZiAoIWVnaXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3N1ZmZpeCAoYnVmZmVy X2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0 aF9pbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3Bf ZndfdmVyc2lvbl9zdWZmaXgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcnNwX2Z3X3ZlcnNpb25fc3VmZml4X2xlbikpCi0rICAgIHsKLSsgICAgICBmcGlf c3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICBmcGlfZGV2aWNlX2Vycm9yX25ld19tc2cgKEZQX0RFVklDRV9FUlJPUl9QUk9UTywKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXZp Y2UgZmlybXdhcmUgcmVzcG9uc2UgIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIndhcyBub3QgdmFsaWQuIikpOwotKyAgICAgIHJldHVybjsK LSsgICAgfQotKwotKyAgLyoKLSsgICAqIEZXIFZlcnNpb24gaXMgMTIgYnl0ZXM6IGEgY2Fycmlh Z2UgcmV0dXJuICgweDBkKSBwbHVzIHRoZSB2ZXJzaW9uIHN0cmluZwotKyAgICogaXRzZWxmLiBB bHdheXMgc2tpcCBbdGhlIHJlYWQgcHJlZml4XSArIFsyICogY2hlY2sgYnl0ZXNdICsgWzMgKiAw eDAwXSB0aGF0Ci0rICAgKiBjb21lIHdpdGggZXZlcnkgcGF5bG9hZCBUaGVuIHdlIHdpbGwgYWxz byBza2lwIHRoZSBjYXJyaWFnZSByZXR1cm4gYW5kIHRha2UKLSsgICAqIGFsbCBidXQgdGhlIGxh c3QgMiBieXRlcyBhcyB0aGUgRlcgVmVyc2lvbgotKyAgICovCi0rICBwcmVmaXhfbGVuZ3RoID0g ZWdpc19ldHU5MDVfcmVhZF9wcmVmaXhfbGVuICsgMiArIDMgKyAxOwotKyAgZndfdmVyc2lvbl9z dGFydCA9IGJ1ZmZlcl9pbiArIHByZWZpeF9sZW5ndGg7Ci0rICBmd192ZXJzaW9uX2xlbmd0aCA9 IGxlbmd0aF9pbiAtIHByZWZpeF9sZW5ndGggLSByc3BfZndfdmVyc2lvbl9zdWZmaXhfbGVuOwot KyAgZndfdmVyc2lvbiA9IGdfc3RybmR1cCAoKGdjaGFyICopIGZ3X3ZlcnNpb25fc3RhcnQsIGZ3 X3ZlcnNpb25fbGVuZ3RoKTsKLSsKLSsgIGZwX2luZm8gKCJEZXZpY2UgZmlybXdhcmUgdmVyc2lv biBpcyAlcyIsIGZ3X3ZlcnNpb24pOwotKwotKyAgZnBpX3NzbV9uZXh0X3N0YXRlIChzZWxmLT50 YXNrX3NzbSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfY21kX2luaXRfY2Ig KEZwRGV2aWNlICpkZXZpY2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGd1Y2hhciAgICpi dWZmZXJfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAgICBsZW5ndGhfaW4s Ci0rICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICplcnJvcikKLSt7Ci0rICBmcF9k YmcgKCJjbWQgaW5pdCBjYWxsYmFjayIpOwotKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9 IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7Ci0rCi0rICBpZiAoZXJyb3IpCi0rICAg IHsKLSsgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwgZXJyb3IpOwot KyAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgLyogQ2hlY2sgdGhhdCB0aGUgcmVhZCBwYXls b2FkIGluZGljYXRlcyAic3VjY2VzcyIgKi8KLSsgIGlmICghZWdpc19ldHU5MDVfdmFsaWRhdGVf cmVzcG9uc2Vfc3VmZml4IChidWZmZXJfaW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGVuZ3RoX2luLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJzcF9md192ZXJzaW9uX3N1ZmZpeCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3BfZndfdmVyc2lvbl9zdWZmaXhfbGVu KSkKLSsgICAgewotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAoRlBf REVWSUNFX0VSUk9SX1BST1RPLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImNtZCBpbml0IHJlc3BvbnNlICIKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3YXMgbm90IHZhbGlkLiIpKTsK LSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGZwaV9zc21fbmV4dF9zdGF0ZSAoc2VsZi0+dGFz a19zc20pOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X2Rldl9pbml0X2RvbmUg KEZwaVNzbSAgICpzc20sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgRnBEZXZpY2UgKmRl dmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAqZXJyb3IpCi0rewot KyAgaWYgKGVycm9yKQotKyAgICB7Ci0rICAgICAgZ191c2JfZGV2aWNlX3JlbGVhc2VfaW50ZXJm YWNlICgKLSsgICAgICAgIGZwaV9kZXZpY2VfZ2V0X3VzYl9kZXZpY2UgKGRldmljZSksIDAsIDAs IE5VTEwpOwotKyAgICAgIGVnaXNfZXR1OTA1X3Rhc2tfc3NtX2RvbmUgKHNzbSwgZGV2aWNlLCBl cnJvcik7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICBlZ2lzX2V0dTkwNV90YXNrX3Nz bV9kb25lIChzc20sIGRldmljZSwgTlVMTCk7Ci0rICBmcGlfZGV2aWNlX29wZW5fY29tcGxldGUg KGRldmljZSwgTlVMTCk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfZGV2X2lu aXRfaGFuZGxlciAoRnBpU3NtICAgKnNzbSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGcERldmljZSAqZGV2aWNlKQotK3sKLSsgIGdfYXV0b3B0cihGcGlVc2JUcmFuc2ZlcikgdHJh bnNmZXIgPSBOVUxMOwotKwotKyAgc3dpdGNoIChmcGlfc3NtX2dldF9jdXJfc3RhdGUgKHNzbSkp Ci0rICAgIHsKLSsgICAgY2FzZSBERVZfR0VUX0ZXX1ZFUlNJT046Ci0rICAgICAgZWdpc19ldHU5 MDVfZXhlY19jbWQgKGRldmljZSwgY21kX2Z3X3ZlcnNpb24sIGNtZF9md192ZXJzaW9uX2xlbiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdpc19ldHU5MDVfZndfdmVyc2lv bl9jYik7Ci0rICAgICAgcmV0dXJuOwotKwotKyAgICBjYXNlIERFVl9JTklUX0NPTlRST0w6Ci0r ICAgICAgZWdpc19ldHU5MDVfZXhlY19jbWQgKGRldmljZSwgY21kX2luaXQsIGNtZF9pbml0X2xl biwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWdpc19ldHU5MDVfY21kX2lu aXRfY2IpOwotKyAgICAgIHJldHVybjsKLSsKLSsgICAgZGVmYXVsdDoKLSsgICAgICBnX2Fzc2Vy dF9ub3RfcmVhY2hlZCAoKTsKLSsgICAgfQotKwotKyAgdHJhbnNmZXIgPSBmcGlfdXNiX3RyYW5z ZmVyX25ldyAoZGV2aWNlKTsKLSsgIHRyYW5zZmVyLT5zc20gPSBzc207Ci0rICB0cmFuc2Zlci0+ c2hvcnRfaXNfZXJyb3IgPSBUUlVFOwotKyAgZnBpX3VzYl90cmFuc2Zlcl9zdWJtaXQgKGdfc3Rl YWxfcG9pbnRlciAoJnRyYW5zZmVyKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0lT X0VUVTkwNV9VU0JfQ09OVFJPTF9USU1FT1VULAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg IGZwaV9kZXZpY2VfZ2V0X2NhbmNlbGxhYmxlIChkZXZpY2UpLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZwaV9zc21fdXNiX3RyYW5zZmVyX2NiLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X3Byb2JlIChG cERldmljZSAqZGV2aWNlKQotK3sKLSsgIEdVc2JEZXZpY2UgKnVzYl9kZXY7Ci0rICBHRXJyb3Ig KmVycm9yID0gTlVMTDsKLSsgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNlcmlhbCA9IE5VTEw7Ci0rICBG cGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNl KTsKLSsKLSsgIGZwX2RiZyAoIiVzIGVudGVyIC0tPiAiLCBHX1NUUkZVTkMpOwotKwotKyAgLyog Q2xhaW0gdXNiIGludGVyZmFjZSAqLwotKyAgdXNiX2RldiA9IGZwaV9kZXZpY2VfZ2V0X3VzYl9k ZXZpY2UgKGRldmljZSk7Ci0rICBpZiAoIWdfdXNiX2RldmljZV9vcGVuICh1c2JfZGV2LCAmZXJy b3IpKQotKyAgICB7Ci0rICAgICAgZnBfZGJnICgiJXMgZ191c2JfZGV2aWNlX29wZW4gZmFpbGVk ICVzIiwgR19TVFJGVU5DLCBlcnJvci0+bWVzc2FnZSk7Ci0rICAgICAgZnBpX2RldmljZV9wcm9i ZV9jb21wbGV0ZSAoZGV2aWNlLCBOVUxMLCBOVUxMLCBlcnJvcik7Ci0rICAgICAgcmV0dXJuOwot KyAgICB9Ci0rCi0rICBpZiAoIWdfdXNiX2RldmljZV9yZXNldCAodXNiX2RldiwgJmVycm9yKSkK LSsgICAgewotKyAgICAgIGZwX2RiZyAoIiVzIGdfdXNiX2RldmljZV9yZXNldCBmYWlsZWQgJXMi LCBHX1NUUkZVTkMsIGVycm9yLT5tZXNzYWdlKTsKLSsgICAgICBnX3VzYl9kZXZpY2VfY2xvc2Ug KHVzYl9kZXYsIE5VTEwpOwotKyAgICAgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxldGUgKGRldmlj ZSwgTlVMTCwgTlVMTCwgZXJyb3IpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgaWYg KCFnX3VzYl9kZXZpY2VfY2xhaW1faW50ZXJmYWNlICh1c2JfZGV2LCAwLCAwLCAmZXJyb3IpKQot KyAgICB7Ci0rICAgICAgZnBfZGJnICgiJXMgZ191c2JfZGV2aWNlX2NsYWltX2ludGVyZmFjZSBm YWlsZWQgJXMiLCBHX1NUUkZVTkMsIGVycm9yLT5tZXNzYWdlKTsKLSsgICAgICBnX3VzYl9kZXZp Y2VfY2xvc2UgKHVzYl9kZXYsIE5VTEwpOwotKyAgICAgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxl dGUgKGRldmljZSwgTlVMTCwgTlVMTCwgZXJyb3IpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQot KwotKyAgaWYgKGdfc3RyY21wMCAoZ19nZXRlbnYgKCJGUF9ERVZJQ0VfRU1VTEFUSU9OIiksICIx IikgPT0gMCkKLSsgICAgc2VyaWFsID0gZ19zdHJkdXAgKCJlbXVsYXRlZC1kZXZpY2UiKTsKLSsg IGVsc2UKLSsgICAgc2VyaWFsID0gZ191c2JfZGV2aWNlX2dldF9zdHJpbmdfZGVzY3JpcHRvciAo dXNiX2RldiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ191c2JfZGV2aWNlX2dldF9zZXJpYWxfbnVtYmVyX2luZGV4ICh1c2JfZGV2KSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yKTsKLSsK LSsgIGlmIChlcnJvcikKLSsgICAgewotKyAgICAgIGZwX2RiZyAoIiVzIGdfdXNiX2RldmljZV9n ZXRfc3RyaW5nX2Rlc2NyaXB0b3IgZmFpbGVkICVzIiwgR19TVFJGVU5DLCBlcnJvci0+bWVzc2Fn ZSk7Ci0rICAgICAgZ191c2JfZGV2aWNlX3JlbGVhc2VfaW50ZXJmYWNlIChmcGlfZGV2aWNlX2dl dF91c2JfZGV2aWNlIChGUF9ERVZJQ0UgKGRldmljZSkpLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMCwgMCwgTlVMTCk7Ci0rICAgICAgZ191c2JfZGV2aWNlX2Nsb3Nl ICh1c2JfZGV2LCBOVUxMKTsKLSsgICAgICBmcGlfZGV2aWNlX3Byb2JlX2NvbXBsZXRlIChkZXZp Y2UsIE5VTEwsIE5VTEwsIGVycm9yKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgIGlm IChmcGlfZGV2aWNlX2dldF9kcml2ZXJfZGF0YSAoZGV2aWNlKSAmIEVHSVNfRVRVOTA1X0RSSVZF Ul9NQVhfRU5ST0xMX1NUQUdFU18yMCkKLSsgICAgc2VsZi0+bWF4X2Vucm9sbF9zdGFnZXMgPSAy MDsKLSsgIGVsc2UKLSsgICAgc2VsZi0+bWF4X2Vucm9sbF9zdGFnZXMgPSBFR0lTX0VUVTkwNV9N QVhfRU5ST0xMX1NUQUdFU19ERUZBVUxUOwotKwotKyAgZnBpX2RldmljZV9zZXRfbnJfZW5yb2xs X3N0YWdlcyAoZGV2aWNlLCBzZWxmLT5tYXhfZW5yb2xsX3N0YWdlcyk7Ci0rCi0rICBnX3VzYl9k ZXZpY2VfcmVsZWFzZV9pbnRlcmZhY2UgKGZwaV9kZXZpY2VfZ2V0X3VzYl9kZXZpY2UgKEZQX0RF VklDRSAoZGV2aWNlKSksIDAsIDAsIE5VTEwpOwotKyAgZ191c2JfZGV2aWNlX2Nsb3NlICh1c2Jf ZGV2LCBOVUxMKTsKLSsKLSsgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxldGUgKGRldmljZSwgc2Vy aWFsLCBOVUxMLCBlcnJvcik7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVfb3Bl biAoRnBEZXZpY2UgKmRldmljZSkKLSt7Ci0rICBmcF9kYmcgKCJPcGVuaW5nIGRldmljZSIpOwot KyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRl dmljZSk7Ci0rICBnX2F1dG9wdHIoR0Vycm9yKSBlcnJvciA9IE5VTEw7Ci0rCi0rICBpZiAoIWdf dXNiX2RldmljZV9yZXNldCAoZnBpX2RldmljZV9nZXRfdXNiX2RldmljZSAoZGV2aWNlKSwgJmVy cm9yKSkKLSsgICAgewotKyAgICAgIGZwaV9kZXZpY2Vfb3Blbl9jb21wbGV0ZSAoZGV2aWNlLCBn X3N0ZWFsX3BvaW50ZXIgKCZlcnJvcikpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAg aWYgKCFnX3VzYl9kZXZpY2VfY2xhaW1faW50ZXJmYWNlIChmcGlfZGV2aWNlX2dldF91c2JfZGV2 aWNlIChkZXZpY2UpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAw LCAmZXJyb3IpKQotKyAgICB7Ci0rICAgICAgZnBpX2RldmljZV9vcGVuX2NvbXBsZXRlIChkZXZp Y2UsIGdfc3RlYWxfcG9pbnRlciAoJmVycm9yKSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0r Ci0rICBnX2Fzc2VydCAoc2VsZi0+dGFza19zc20gPT0gTlVMTCk7Ci0rICBzZWxmLT50YXNrX3Nz bSA9IGZwaV9zc21fbmV3IChkZXZpY2UsIGVnaXNfZXR1OTA1X2Rldl9pbml0X2hhbmRsZXIsIERF Vl9JTklUX1NUQVRFUyk7Ci0rICBmcGlfc3NtX3N0YXJ0IChzZWxmLT50YXNrX3NzbSwgZWdpc19l dHU5MDVfZGV2X2luaXRfZG9uZSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZWdpc19ldHU5MDVf Y2FuY2VsIChGcERldmljZSAqZGV2aWNlKQotK3sKLSsgIGZwX2RiZyAoIkNhbmNlbCIpOwotKyAg RnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmlj ZSk7Ci0rCi0rICBnX2NhbmNlbGxhYmxlX2NhbmNlbCAoc2VsZi0+aW50ZXJydXB0X2NhbmNlbGxh YmxlKTsKLSsgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+aW50ZXJydXB0X2NhbmNlbGxhYmxlKTsK LSsgIHNlbGYtPmludGVycnVwdF9jYW5jZWxsYWJsZSA9IGdfY2FuY2VsbGFibGVfbmV3ICgpOwot K30KLSsKLStzdGF0aWMgdm9pZAotK2VnaXNfZXR1OTA1X3N1c3BlbmQgKEZwRGV2aWNlICpkZXZp Y2UpCi0rewotKyAgZnBfZGJnICgiU3VzcGVuZCIpOwotKwotKyAgZWdpc19ldHU5MDVfY2FuY2Vs IChkZXZpY2UpOwotKyAgZ19jYW5jZWxsYWJsZV9jYW5jZWwgKGZwaV9kZXZpY2VfZ2V0X2NhbmNl bGxhYmxlIChkZXZpY2UpKTsKLSsgIGZwaV9kZXZpY2Vfc3VzcGVuZF9jb21wbGV0ZSAoZGV2aWNl LCBOVUxMKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStlZ2lzX2V0dTkwNV9jbG9zZSAoRnBEZXZp Y2UgKmRldmljZSkKLSt7Ci0rICBnX2F1dG9wdHIoR0Vycm9yKSBlcnJvciA9IE5VTEw7Ci0rICBm cF9kYmcgKCJDbG9zaW5nIGRldmljZSIpOwotKyAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9 IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7Ci0rICBHRXJyb3IgKmVycm9yID0gTlVM TDsKLSsKLSsgIGVnaXNfZXR1OTA1X2NhbmNlbCAoZGV2aWNlKTsKLSsgIGdfY2xlYXJfb2JqZWN0 ICgmc2VsZi0+aW50ZXJydXB0X2NhbmNlbGxhYmxlKTsKLSsKLSsgIGdfdXNiX2RldmljZV9yZWxl YXNlX2ludGVyZmFjZSAoZnBpX2RldmljZV9nZXRfdXNiX2RldmljZSAoZGV2aWNlKSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgJmVycm9yKTsKLSsgIGZwaV9kZXZp Y2VfY2xvc2VfY29tcGxldGUgKGRldmljZSwgZ19zdGVhbF9wb2ludGVyICgmZXJyb3IpKTsKLSt9 Ci0rCi0rc3RhdGljIHZvaWQKLStmcGlfZGV2aWNlX2VnaXNfZXR1OTA1X2luaXQgKEZwaURldmlj ZUVnaXNFdHU5MDUgKnNlbGYpCi0rewotKyAgR19ERUJVR19IRVJFICgpOwotK30KLSsKLStzdGF0 aWMgdm9pZAotK2ZwaV9kZXZpY2VfZWdpc19ldHU5MDVfY2xhc3NfaW5pdCAoRnBpRGV2aWNlRWdp c0V0dTkwNUNsYXNzICprbGFzcykKLSt7Ci0rICBGcERldmljZUNsYXNzICpkZXZfY2xhc3MgPSBG UF9ERVZJQ0VfQ0xBU1MgKGtsYXNzKTsKLSsKLSsgIGRldl9jbGFzcy0+aWQgPSBGUF9DT01QT05F TlQ7Ci0rICBkZXZfY2xhc3MtPmZ1bGxfbmFtZSA9IEVHSVNfRVRVOTA1X0RSSVZFUl9GVUxMTkFN RTsKLSsKLSsgIGRldl9jbGFzcy0+dHlwZSA9IEZQX0RFVklDRV9UWVBFX1VTQjsKLSsgIGRldl9j bGFzcy0+c2Nhbl90eXBlID0gRlBfU0NBTl9UWVBFX1BSRVNTOwotKyAgZGV2X2NsYXNzLT5pZF90 YWJsZSA9IGVnaXNfZXR1OTA1X2lkX3RhYmxlOwotKyAgZGV2X2NsYXNzLT5ucl9lbnJvbGxfc3Rh Z2VzID0gRUdJU19FVFU5MDVfTUFYX0VOUk9MTF9TVEFHRVNfREVGQVVMVDsKLSsgIGRldl9jbGFz cy0+dGVtcF9ob3Rfc2Vjb25kcyA9IC0xOwotKwotKyAgZGV2X2NsYXNzLT5wcm9iZSA9IGVnaXNf ZXR1OTA1X3Byb2JlOwotKyAgZGV2X2NsYXNzLT5vcGVuID0gZWdpc19ldHU5MDVfb3BlbjsKLSsg IGRldl9jbGFzcy0+Y2FuY2VsID0gZWdpc19ldHU5MDVfY2FuY2VsOwotKyAgZGV2X2NsYXNzLT5z dXNwZW5kID0gZWdpc19ldHU5MDVfc3VzcGVuZDsKLSsgIGRldl9jbGFzcy0+Y2xvc2UgPSBlZ2lz X2V0dTkwNV9jbG9zZTsKLSsgIGRldl9jbGFzcy0+aWRlbnRpZnkgPSBlZ2lzX2V0dTkwNV9pZGVu dGlmeV92ZXJpZnk7Ci0rICBkZXZfY2xhc3MtPnZlcmlmeSA9IGVnaXNfZXR1OTA1X2lkZW50aWZ5 X3ZlcmlmeTsKLSsgIGRldl9jbGFzcy0+ZW5yb2xsID0gZWdpc19ldHU5MDVfZW5yb2xsOwotKyAg ZGV2X2NsYXNzLT5kZWxldGUgPSBlZ2lzX2V0dTkwNV9kZWxldGU7Ci0rICBkZXZfY2xhc3MtPmNs ZWFyX3N0b3JhZ2UgPSBlZ2lzX2V0dTkwNV9jbGVhcl9zdG9yYWdlOwotKyAgZGV2X2NsYXNzLT5s aXN0ID0gZWdpc19ldHU5MDVfbGlzdDsKLSsKLSsgIGZwaV9kZXZpY2VfY2xhc3NfYXV0b19pbml0 aWFsaXplX2ZlYXR1cmVzIChkZXZfY2xhc3MpOwotKyAgZGV2X2NsYXNzLT5mZWF0dXJlcyB8PSBG UF9ERVZJQ0VfRkVBVFVSRV9EVVBMSUNBVEVTX0NIRUNLOwotK30KLWRpZmYgLS1naXQgYS9saWJm cHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmggYi9saWJmcHJpbnQvZHJpdmVycy9l Z2lzbW9jL2VnaXNfZXR1OTA1LmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAw MC4uZTkzMWRlY2EKLS0tLSAvZGV2L251bGwKLSsrKyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNt b2MvZWdpc19ldHU5MDUuaAotQEAgLTAsMCArMSwyMTQgQEAKLSsvKgotKyAqIERyaXZlciBmb3Ig RWdpcyBUZWNobm9sb2d5IChMaWdoVHVuaW5nKSBNYXRjaC1Pbi1DaGlwIHNlbnNvcnMKLSsgKgot KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKLSsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCi0rICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rICoKLSsgKiBUaGlzIGxp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK LSsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgotKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KLSsgKgotKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgKiBMaWNlbnNlIGFsb25n IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0r ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQSAwMjExMC0xMzAxIFVTQQotKyAqLwotKwotKyNwcmFnbWEgb25jZQotKwotKyNpbmNs dWRlICJmcGktZGV2aWNlLmgiCi0rI2luY2x1ZGUgImZwaS1zc20uaCIKLSsKLStHX0RFQ0xBUkVf RklOQUxfVFlQRSAoRnBpRGV2aWNlRWdpc0V0dTkwNSwgZnBpX2RldmljZV9lZ2lzX2V0dTkwNSwg RlBJLCBERVZJQ0VfRUdJU19FVFU5MDUsIEZwRGV2aWNlKQotKwotKyNkZWZpbmUgRUdJU19FVFU5 MDVfRFJJVkVSX0ZVTExOQU1FICJFZ2lzIFRlY2hub2xvZ3kgKExpZ2hUdW5pbmcpIE1hdGNoLW9u LUNoaXAiCi0rCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9EUklWRVJfQ0hFQ0tfUFJFRklYX1RZUEUx ICgxIDw8IDApCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9EUklWRVJfQ0hFQ0tfUFJFRklYX1RZUEUy ICgxIDw8IDEpCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9EUklWRVJfTUFYX0VOUk9MTF9TVEFHRVNf MjAgKDEgPDwgMikKLSsKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X0VQX0NNRF9PVVQgKDB4MDIgfCBG UElfVVNCX0VORFBPSU5UX09VVCkKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X0VQX0NNRF9JTiAoMHg4 MSB8IEZQSV9VU0JfRU5EUE9JTlRfSU4pCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9FUF9DTURfSU5U RVJSVVBUX0lOIDB4ODMKLSsKLSsjZGVmaW5lIEVHSVNfRVRVOTA1X1VTQl9DT05UUk9MX1RJTUVP VVQgNTAwMAotKyNkZWZpbmUgRUdJU19FVFU5MDVfVVNCX1NFTkRfVElNRU9VVCA1MDAwCi0rI2Rl ZmluZSBFR0lTX0VUVTkwNV9VU0JfUkVDVl9USU1FT1VUIDUwMDAKLSsjZGVmaW5lIEVHSVNfRVRV OTA1X1VTQl9JTlRFUlJVUFRfVElNRU9VVCAwIC8qIE5vIHRpbWVvdXQgZm9yIHdhaXRpbmcgZm9y IGZpbmdlciBkb3duICovCi0rCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9VU0JfSU5fUkVDVl9MRU5H VEggNDA5NgotKyNkZWZpbmUgRUdJU19FVFU5MDVfVVNCX0lOVEVSUlVQVF9JTl9SRUNWX0xFTkdU SCA2NAotKwotKyNkZWZpbmUgRUdJU19FVFU5MDVfTUFYX0VOUk9MTF9TVEFHRVNfREVGQVVMVCAx MgotKyNkZWZpbmUgRUdJU19FVFU5MDVfTUFYX0VOUk9MTF9OVU0gMTIKLSsjZGVmaW5lIEVHSVNf RVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSAzMgotKyNkZWZpbmUgRUdJU19FVFU5MDVfTElT VF9SRVNQT05TRV9QUkVGSVhfU0laRSAxNAotKyNkZWZpbmUgRUdJU19FVFU5MDVfTElTVF9SRVNQ T05TRV9TVUZGSVhfU0laRSAyCi0rCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9QQVJBXzRfU0laRSA2 OAotKwotKyNkZWZpbmUgRUdJU19FVFU5MDVfUEFSQV8xX1ZBTFVFIDAKLSsjZGVmaW5lIEVHSVNf RVRVOTA1X1BBUkFfMl9WQUxVRSAwCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9QQVJBXzNfVkFMVUUg MzIKLSsKLSsjcHJhZ21hIHBhY2socHVzaCwgMSkKLSt0eXBlZGVmIHN0cnVjdAotK3sKLSsgIGd1 Y2hhciAgcmVzZXJ2ZV9wYXJhXzE7Ci0rICBndXNob3J0IHJlc2VydmVfcGFyYV8yOwotKyAgZ3Vz aG9ydCByZXNlcnZlX3BhcmFfMzsKLSsgIGd1Y2hhciAgcmVzZXJ2ZV9wYXJhXzRbRUdJU19FVFU5 MDVfUEFSQV80X1NJWkVdOwotK30gRWdpc21vY1NpZERhdGE7Ci0rI3ByYWdtYSBwYWNrKHBvcCkK LSsKLSsvKiBzdGFuZGFyZCBwcmVmaXhlcyBmb3IgYWxsIHJlYWQvd3JpdGVzICovCi0rCi0rc3Rh dGljIGd1Y2hhciBlZ2lzX2V0dTkwNV93cml0ZV9wcmVmaXhbXSA9IHsnRScsICdHJywgJ0knLCAn UycsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDF9OwotK3N0YXRpYyBnc2l6ZSBlZ2lzX2V0dTkwNV93 cml0ZV9wcmVmaXhfbGVuID0gc2l6ZW9mIChlZ2lzX2V0dTkwNV93cml0ZV9wcmVmaXgpIC8gc2l6 ZW9mIChlZ2lzX2V0dTkwNV93cml0ZV9wcmVmaXhbMF0pOwotKwotK3N0YXRpYyBndWNoYXIgZWdp c19ldHU5MDVfcmVhZF9wcmVmaXhbXSA9IHsnUycsICdJJywgJ0cnLCAnRScsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDF9OwotK3N0YXRpYyBnc2l6ZSBlZ2lzX2V0dTkwNV9yZWFkX3ByZWZpeF9sZW4g PSBzaXplb2YgKGVnaXNfZXR1OTA1X3JlYWRfcHJlZml4KSAvIHNpemVvZiAoZWdpc19ldHU5MDVf cmVhZF9wcmVmaXhbMF0pOwotKwotKwotKy8qIGhhcmQtY29kZWQgY29tbWFuZCBwYXlsb2FkcyAq LwotKwotK3N0YXRpYyBndWNoYXIgY21kX2Z3X3ZlcnNpb25bXSA9IHsweDAwLCAweDAwLCAweDAw LCAweDA3LCAweDUwLCAweDdmLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDBjfTsKLStzdGF0 aWMgZ3NpemUgY21kX2Z3X3ZlcnNpb25fbGVuID0gc2l6ZW9mIChjbWRfZndfdmVyc2lvbikgLyBz aXplb2YgKGNtZF9md192ZXJzaW9uWzBdKTsKLStzdGF0aWMgZ3VjaGFyIHJzcF9md192ZXJzaW9u X3N1ZmZpeFtdID0gezB4OTAsIDB4MDB9OwotK3N0YXRpYyBnc2l6ZSByc3BfZndfdmVyc2lvbl9z dWZmaXhfbGVuID0gc2l6ZW9mIChyc3BfZndfdmVyc2lvbl9zdWZmaXgpIC8gc2l6ZW9mIChyc3Bf ZndfdmVyc2lvbl9zdWZmaXhbMF0pOwotKwotK3N0YXRpYyBndWNoYXIgY21kX2luaXRbXSA9IHsw eDAwLCAweDAwLCAweDAwLCAweDI5LCAweDUwLCAweDgxLCAweDgwLCAweDAwLCAweDAwLCAweDAw LCAweDIyLCAweDAwLCAweDAwLCAweDAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwLCAweDAwLCAweDIwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDEw LCAweDAwLCAweDEyLCAweDAwLCAweDQ1LCAweDY3LCAweDY5LCAweDczLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDQ2LCAweDUwLCAweDUzLCAweDY1LCAweDczLCAweDczLCAweDY5 LCAweDZmLCAweDZlLCAweDAwLCAweDUxLCAweGM2LCAweGJkLCAweDcxfTsKLStzdGF0aWMgZ3Np emUgY21kX2luaXRfbGVuID0gc2l6ZW9mIChjbWRfaW5pdCkgLyBzaXplb2YgKGNtZF9pbml0WzBd KTsKLSsKLStzdGF0aWMgZ3VjaGFyIGNtZF9saXN0W10gPSB7MHgwMCwgMHgwMCwgMHgwMCwgMHgw NywgMHg1MCwgMHgxOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwMSwgMHg0MH07Ci0rc3RhdGljIGdz aXplIGNtZF9saXN0X2xlbiA9IHNpemVvZiAoY21kX2xpc3QpIC8gc2l6ZW9mIChjbWRfbGlzdFsw XSk7Ci0rCi0rc3RhdGljIGd1Y2hhciBjbWRfc2Vuc29yX3Jlc2V0W10gPSB7MHgwMCwgMHgwMCwg MHgwMCwgMHgwNCwgMHg1MCwgMHgxYSwgMHgwMCwgMHgwMH07Ci0rc3RhdGljIGdzaXplIGNtZF9z ZW5zb3JfcmVzZXRfbGVuID0gc2l6ZW9mIChjbWRfc2Vuc29yX3Jlc2V0KSAvIHNpemVvZiAoY21k X3NlbnNvcl9yZXNldFswXSk7Ci0rCi0rc3RhdGljIGd1Y2hhciBjbWRfc2Vuc29yX2NoZWNrW10g PSB7MHgwMCwgMHgwMCwgMHgwMCwgMHgwNCwgMHg1MCwgMHgxNywgMHgwMiwgMHgwMH07Ci0rc3Rh dGljIGdzaXplIGNtZF9zZW5zb3JfY2hlY2tfbGVuID0gc2l6ZW9mIChjbWRfc2Vuc29yX2NoZWNr KSAvIHNpemVvZiAoY21kX3NlbnNvcl9jaGVja1swXSk7Ci0rCi0rc3RhdGljIGd1Y2hhciBjbWRf c2Vuc29yX2lkZW50aWZ5W10gPSB7MHgwMCwgMHgwMCwgMHgwMCwgMHgwNCwgMHg1MCwgMHgxNywg MHgwMSwgMHgwMX07Ci0rc3RhdGljIGdzaXplIGNtZF9zZW5zb3JfaWRlbnRpZnlfbGVuID0gc2l6 ZW9mIChjbWRfc2Vuc29yX2lkZW50aWZ5KSAvIHNpemVvZiAoY21kX3NlbnNvcl9pZGVudGlmeVsw XSk7Ci0rCi0rc3RhdGljIGd1Y2hhciByc3BfaWRlbnRpZnlfbWF0Y2hfc3VmZml4W10gPSB7MHg5 MCwgMHgwMH07Ci0rc3RhdGljIGdzaXplIHJzcF9pZGVudGlmeV9tYXRjaF9zdWZmaXhfbGVuID0g c2l6ZW9mIChyc3BfaWRlbnRpZnlfbWF0Y2hfc3VmZml4KSAvIHNpemVvZiAocnNwX2lkZW50aWZ5 X21hdGNoX3N1ZmZpeFswXSk7Ci0rCi0rc3RhdGljIGd1Y2hhciByc3BfaWRlbnRpZnlfbm90bWF0 Y2hfc3VmZml4W10gPSB7MHg5MCwgMHgwNH07Ci0rc3RhdGljIGdzaXplIHJzcF9pZGVudGlmeV9u b3RtYXRjaF9zdWZmaXhfbGVuID0gc2l6ZW9mIChyc3BfaWRlbnRpZnlfbm90bWF0Y2hfc3VmZml4 KSAvIHNpemVvZiAocnNwX2lkZW50aWZ5X25vdG1hdGNoX3N1ZmZpeFswXSk7Ci0rCi0rc3RhdGlj IGd1Y2hhciBjbWRfZW5yb2xsX3N0YXJ0aW5nW10gPSB7MHgwMCwgMHgwMCwgMHgwMCwgMHgwNywg MHg1MCwgMHgxNiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMH07Ci0rc3RhdGljIGdzaXpl IGNtZF9lbnJvbGxfc3RhcnRpbmdfbGVuID0gc2l6ZW9mIChjbWRfZW5yb2xsX3N0YXJ0aW5nKSAv IHNpemVvZiAoY21kX2Vucm9sbF9zdGFydGluZ1swXSk7Ci0rCi0rc3RhdGljIGd1Y2hhciBjbWRf c2Vuc29yX3N0YXJ0X2NhcHR1cmVbXSA9IHsweDAwLCAweDAwLCAweDAwLCAweDA0LCAweDUwLCAw eDE2LCAweDAyLCAweDAxfTsKLStzdGF0aWMgZ3NpemUgY21kX3NlbnNvcl9zdGFydF9jYXB0dXJl X2xlbiA9IHNpemVvZiAoY21kX3NlbnNvcl9zdGFydF9jYXB0dXJlKSAvIHNpemVvZiAoY21kX3Nl bnNvcl9zdGFydF9jYXB0dXJlWzBdKTsKLSsKLStzdGF0aWMgZ3VjaGFyIGNtZF9yZWFkX2NhcHR1 cmVbXSA9IHsweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDUwLCAweDE2LCAweDAyLCAweDAyLCAw eDAwLCAweDAwLCAweDAyfTsKLStzdGF0aWMgZ3NpemUgY21kX3JlYWRfY2FwdHVyZV9sZW4gPSBz aXplb2YgKGNtZF9yZWFkX2NhcHR1cmUpIC8gc2l6ZW9mIChjbWRfcmVhZF9jYXB0dXJlWzBdKTsK LSsKLStzdGF0aWMgZ3VjaGFyIGNtZF9kdXBsaWNhdGVfY2hlY2tbXSA9IHsweDAwLCAweDAwLCAw eDAwLCAweDA0LCAweDUwLCAweDE2LCAweDA1LCAweDAwfTsKLStzdGF0aWMgZ3NpemUgY21kX2R1 cGxpY2F0ZV9jaGVja19sZW4gPSBzaXplb2YgKGNtZF9kdXBsaWNhdGVfY2hlY2spIC8gc2l6ZW9m IChjbWRfZHVwbGljYXRlX2NoZWNrWzBdKTsKLSsKLStzdGF0aWMgZ3VjaGFyIHJzcF9yZWFkX3N1 Y2Nlc3NfcHJlZml4W10gPSB7MHgwMCwgMHgwMCwgMHgwMCwgMHgwNH07Ci0rc3RhdGljIGdzaXpl IHJzcF9yZWFkX3N1Y2Nlc3NfcHJlZml4X2xlbiA9IHNpemVvZiAocnNwX3JlYWRfc3VjY2Vzc19w cmVmaXgpIC8gc2l6ZW9mIChyc3BfcmVhZF9zdWNjZXNzX3ByZWZpeFswXSk7Ci0rc3RhdGljIGd1 Y2hhciByc3BfcmVhZF9zdWNjZXNzX3N1ZmZpeFtdID0gezB4OTAsIDB4MDB9OwotK3N0YXRpYyBn c2l6ZSByc3BfcmVhZF9zdWNjZXNzX3N1ZmZpeF9sZW4gPSBzaXplb2YgKHJzcF9yZWFkX3N1Y2Nl c3Nfc3VmZml4KSAvIHNpemVvZiAocnNwX3JlYWRfc3VjY2Vzc19zdWZmaXhbMF0pOwotK3N0YXRp YyBndWNoYXIgcnNwX3JlYWRfb2ZmY2VudGVyX3ByZWZpeFtdID0gezB4MDAsIDB4MDAsIDB4MDAs IDB4MDR9OwotK3N0YXRpYyBnc2l6ZSByc3BfcmVhZF9vZmZjZW50ZXJfcHJlZml4X2xlbiA9IHNp emVvZiAocnNwX3JlYWRfb2ZmY2VudGVyX3ByZWZpeCkgLyBzaXplb2YgKHJzcF9yZWFkX29mZmNl bnRlcl9wcmVmaXhbMF0pOwotK3N0YXRpYyBndWNoYXIgcnNwX3JlYWRfb2ZmY2VudGVyX3N1ZmZp eFtdID0gezB4NjQsIDB4OTF9OwotK3N0YXRpYyBnc2l6ZSByc3BfcmVhZF9vZmZjZW50ZXJfc3Vm Zml4X2xlbiA9IHNpemVvZiAocnNwX3JlYWRfb2ZmY2VudGVyX3N1ZmZpeCkgLyBzaXplb2YgKHJz cF9yZWFkX29mZmNlbnRlcl9zdWZmaXhbMF0pOwotK3N0YXRpYyBndWNoYXIgcnNwX3JlYWRfZGly dHlfcHJlZml4W10gPSB7MHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHg2NH07Ci0rc3RhdGljIGdz aXplIHJzcF9yZWFkX2RpcnR5X3ByZWZpeF9sZW4gPSBzaXplb2YgKHJzcF9yZWFkX2RpcnR5X3By ZWZpeCkgLyBzaXplb2YgKHJzcF9yZWFkX2RpcnR5X3ByZWZpeFswXSk7Ci0rCi0rc3RhdGljIGd1 Y2hhciBjbWRfY29tbWl0X3N0YXJ0aW5nW10gPSB7MHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHg1 MCwgMHgxNiwgMHgwNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMH07Ci0rc3RhdGljIGdzaXplIGNt ZF9jb21taXRfc3RhcnRpbmdfbGVuID0gc2l6ZW9mIChjbWRfY29tbWl0X3N0YXJ0aW5nKSAvIHNp emVvZiAoY21kX2NvbW1pdF9zdGFydGluZ1swXSk7Ci0rCi0rLyogcHJlZml4ZXMvc3VmZml4ZXMg YW5kIG90aGVyIHRoaW5ncyBmb3IgZHluYW1pY2FsbHkgY3JlYXRlZCBjb21tYW5kIHBheWxvYWRz ICovCi0rCi0rI2RlZmluZSBFR0lTX0VUVTkwNV9DSEVDS19CWVRFU19MRU5HVEggMgotKyNkZWZp bmUgRUdJU19FVFU5MDVfSURFTlRJRllfUkVTUE9OU0VfUFJJTlRfSURfT0ZGU0VUIDQ2Ci0rI2Rl ZmluZSBFR0lTX0VUVTkwNV9DTURfQ0hFQ0tfU0VQQVJBVE9SX0xFTkdUSCAzMgotKwotK3N0YXRp YyBndWNoYXIgY21kX25ld19wcmludF9wcmVmaXhfdHlwZTJbXSA9IHsweDAwLCAweDAwLCAweDAw LCAweDUwLCAweDUwLCAweDE2LCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAweDQ5fTsKLStzdGF0 aWMgZ3NpemUgY21kX25ld19wcmludF9wcmVmaXhfdHlwZTJfbGVuID0gc2l6ZW9mIChjbWRfbmV3 X3ByaW50X3ByZWZpeF90eXBlMikgLyBzaXplb2YgKGNtZF9uZXdfcHJpbnRfcHJlZml4X3R5cGUy WzBdKTsKLSsKLStzdGF0aWMgZ3VjaGFyIGNtZF9kZWxldGVfcHJlZml4W10gPSB7MHg1MCwgMHgx OCwgMHgwNCwgMHgwMCwgMHgwMH07Ci0rc3RhdGljIGdzaXplIGNtZF9kZWxldGVfcHJlZml4X2xl biA9IHNpemVvZiAoY21kX2RlbGV0ZV9wcmVmaXgpIC8gc2l6ZW9mIChjbWRfZGVsZXRlX3ByZWZp eFswXSk7Ci0rc3RhdGljIGd1Y2hhciByc3BfZGVsZXRlX3N1Y2Nlc3NfcHJlZml4W10gPSB7MHgw MCwgMHgwMCwgMHgwMCwgMHgwMiwgMHg5MCwgMHgwMH07Ci0rc3RhdGljIGdzaXplIHJzcF9kZWxl dGVfc3VjY2Vzc19wcmVmaXhfbGVuID0gc2l6ZW9mIChyc3BfZGVsZXRlX3N1Y2Nlc3NfcHJlZml4 KSAvIHNpemVvZiAocnNwX2RlbGV0ZV9zdWNjZXNzX3ByZWZpeFswXSk7Ci0rCi0rc3RhdGljIGd1 Y2hhciBjbWRfY2hlY2tfcHJlZml4X3R5cGUxW10gPSB7MHg1MCwgMHgxNywgMHgwMywgMHgwMCwg MHgwMH07Ci0rc3RhdGljIGdzaXplIGNtZF9jaGVja19wcmVmaXhfdHlwZTFfbGVuID0gc2l6ZW9m IChjbWRfY2hlY2tfcHJlZml4X3R5cGUxKSAvIHNpemVvZiAoY21kX2NoZWNrX3ByZWZpeF90eXBl MVswXSk7Ci0rc3RhdGljIGd1Y2hhciBjbWRfY2hlY2tfcHJlZml4X3R5cGUyW10gPSB7MHg1MCwg MHgxNywgMHgwMywgMHg4MCwgMHgwMH07Ci0rc3RhdGljIGdzaXplIGNtZF9jaGVja19wcmVmaXhf dHlwZTJfbGVuID0gc2l6ZW9mIChjbWRfY2hlY2tfcHJlZml4X3R5cGUyKSAvIHNpemVvZiAoY21k X2NoZWNrX3ByZWZpeF90eXBlMlswXSk7Ci0rc3RhdGljIGd1Y2hhciBjbWRfY2hlY2tfc3VmZml4 W10gPSB7MHgwMCwgMHg0MH07Ci0rc3RhdGljIGdzaXplIGNtZF9jaGVja19zdWZmaXhfbGVuID0g c2l6ZW9mIChjbWRfY2hlY2tfc3VmZml4KSAvIHNpemVvZiAoY21kX2NoZWNrX3N1ZmZpeFswXSk7 Ci0rc3RhdGljIGd1Y2hhciByc3BfY2hlY2tfbm90X3lldF9lbnJvbGxlZF9zdWZmaXhbXSA9IHsw eDkwLCAweDA0fTsKLStzdGF0aWMgZ3NpemUgcnNwX2NoZWNrX25vdF95ZXRfZW5yb2xsZWRfc3Vm Zml4X2xlbiA9IHNpemVvZiAocnNwX2NoZWNrX25vdF95ZXRfZW5yb2xsZWRfc3VmZml4KSAvIHNp emVvZiAocnNwX2NoZWNrX25vdF95ZXRfZW5yb2xsZWRfc3VmZml4WzBdKTsKLSsKLSsKLSsvKiBT U00gdGFzayBzdGF0ZXMgYW5kIHZhcmlvdXMgc3RhdHVzIGVudW1zICovCi0rCi0rdHlwZWRlZiBl bnVtIHsKLSsgIENNRF9TRU5ELAotKyAgQ01EX0dFVCwKLSsgIENNRF9TVEFURVMsCi0rfSBDb21t YW5kU3RhdGVzOwotKwotK3R5cGVkZWYgZW51bSB7Ci0rICBERVZfR0VUX0ZXX1ZFUlNJT04sCi0r ICBERVZfSU5JVF9DT05UUk9MLAotKyAgREVWX0lOSVRfU1RBVEVTLAotK30gRGV2aWNlSW5pdFN0 YXRlczsKLSsKLSt0eXBlZGVmIGVudW0gewotKyAgSURFTlRJRllfR0VUX0VOUk9MTEVEX0lEUywK LSsgIElERU5USUZZX0NIRUNLX0VOUk9MTEVEX05VTSwKLSsgIElERU5USUZZX1NFTlNPUl9SRVNF VCwKLSsgIElERU5USUZZX1NFTlNPUl9JREVOVElGWSwKLSsgIElERU5USUZZX1dBSVRfRklOR0VS LAotKyAgSURFTlRJRllfU0VOU09SX0NIRUNLLAotKyAgSURFTlRJRllfQ0hFQ0ssCi0rICBJREVO VElGWV9DT01QTEVURV9TRU5TT1JfUkVTRVQsCi0rICBJREVOVElGWV9DT01QTEVURSwKLSsgIElE RU5USUZZX1NUQVRFUywKLSt9IElkZW50aWZ5U3RhdGVzOwotKwotK3R5cGVkZWYgZW51bSB7Ci0r ICBFTlJPTExfU1RBUlQsCi0rICBFTlJPTExfQ0FQVFVSRV9TRU5TT1JfUkVTRVQsCi0rICBFTlJP TExfQ0FQVFVSRV9TRU5TT1JfU1RBUlRfQ0FQVFVSRSwKLSsgIEVOUk9MTF9DQVBUVVJFX1dBSVRf RklOR0VSLAotKyAgRU5ST0xMX0NBUFRVUkVfUkVBRF9SRVNQT05TRSwKLSsgIEVOUk9MTF9EVVBM SUNBVEVfQ0hFQ0ssCi0rICBFTlJPTExfQ09NTUlUX1NUQVJULAotKyAgRU5ST0xMX0NPTU1JVCwK LSsgIEVOUk9MTF9DT01NSVRfU0VOU09SX1JFU0VULAotKyAgRU5ST0xMX0NPTVBMRVRFLAotKyAg RU5ST0xMX1NUQVRFUywKLSt9IEVucm9sbFN0YXRlczsKLSsKLSt0eXBlZGVmIGVudW0gewotKyAg RU5ST0xMX1NUQVRVU19ERVZJQ0VfRlVMTCwKLSsgIEVOUk9MTF9TVEFUVVNfRFVQTElDQVRFLAot KyAgRU5ST0xMX1NUQVRVU19QQVJUSUFMX09LLAotKyAgRU5ST0xMX1NUQVRVU19SRVRSWSwKLSsg IEVOUk9MTF9TVEFUVVNfQ09NUExFVEUsCi0rfSBFbnJvbGxTdGF0dXM7Ci0rCi0rdHlwZWRlZiBl bnVtIHsKLSsgIExJU1RfR0VUX0VOUk9MTEVEX0lEUywKLSsgIExJU1RfUkVUVVJOX0VOUk9MTEVE X1BSSU5UUywKLSsgIExJU1RfU1RBVEVTLAotK30gTGlzdFN0YXRlczsKLSsKLSt0eXBlZGVmIGVu dW0gewotKyAgREVMRVRFX0dFVF9FTlJPTExFRF9JRFMsCi0rICBERUxFVEVfREVMRVRFLAotKyAg REVMRVRFX1NUQVRFUywKLSt9IERlbGV0ZVN0YXRlczsKLWRpZmYgLS1naXQgYS9saWJmcHJpbnQv bWVzb24uYnVpbGQgYi9saWJmcHJpbnQvbWVzb24uYnVpbGQKLWluZGV4IGFlMGY2ZTI0Li4wODFi MThkZSAxMDA2NDQKLS0tLSBhL2xpYmZwcmludC9tZXNvbi5idWlsZAotKysrIGIvbGliZnByaW50 L21lc29uLmJ1aWxkCi1AQCAtMTI3LDYgKzEyNyw4IEBAIGRyaXZlcl9zb3VyY2VzID0gewotICAg ICAgICAgWyAnZHJpdmVycy9lZ2lzMDU3MC5jJyBdLAotICAgICAnZWdpc21vYycgOgotICAgICAg ICAgWyAnZHJpdmVycy9lZ2lzbW9jL2VnaXNtb2MuYycgXSwKLSsgICAgJ2VnaXNfZXR1OTA1JyA6 Ci0rICAgICAgICBbICdkcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYycgXSwKLSAgICAgJ3Zm czAwNTAnIDoKLSAgICAgICAgIFsgJ2RyaXZlcnMvdmZzMDA1MC5jJyBdLAotICAgICAnZWxhbicg OgotZGlmZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIvbWVzb24uYnVpbGQKLWluZGV4IDE0ZmIxMWYy Li4wMmI0M2U0ZiAxMDA2NDQKLS0tLSBhL21lc29uLmJ1aWxkCi0rKysgYi9tZXNvbi5idWlsZAot QEAgLTEzMSw2ICsxMzEsNyBAQCBkZWZhdWx0X2RyaXZlcnMgPSBbCi0gICAgICdldGVzNjAzJywK LSAgICAgJ2VnaXMwNTcwJywKLSAgICAgJ2VnaXNtb2MnLAotKyAgICAnZWdpc19ldHU5MDUnLAot ICAgICAndmNvbTVzJywKLSAgICAgJ3N5bmFwdGljcycsCi0gICAgICdlbGFuJywKLUBAIC0xNjUs NiArMTY2LDcgQEAgZW5kaWFuX2luZGVwZW5kZW50X2RyaXZlcnMgPSB2aXJ0dWFsX2RyaXZlcnMg KyBbCi0gICAgICdhZXM0MDAwJywKLSAgICAgJ2VnaXMwNTcwJywKLSAgICAgJ2VnaXNtb2MnLAot KyAgICAnZWdpc19ldHU5MDUnLAotICAgICAnZWxhbm1vYycsCi0gICAgICdldGVzNjAzJywKLSAg ICAgJ2ZvY2FsdGVjaF9tb2MnLAotZGlmZiAtLWdpdCBhL3Rlc3RzL2VnaXNfZXR1OTA1L2N1c3Rv bS5wY2FwbmcgYi90ZXN0cy9lZ2lzX2V0dTkwNS9jdXN0b20ucGNhcG5nCi1uZXcgZmlsZSBtb2Rl IDEwMDY0NAotaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u YjIxYzQ2MjJhMWI1YjQ0ZjI1MDY1ODgyY2ZmM2QzZTI2ODdkNzZkMQotR0lUIGJpbmFyeSBwYXRj aAotbGl0ZXJhbCAzMzY0NAotemNtZDVfM3dUdTN4am1UI0xWekczZip8T3FSRDJ+UVY0ekNHZ05P KSVqWChAcXY9ZSFtcyg/SCFxT0FqbnB4I0luCi16NVdOTmcxXm44QVRCPTwyVDglX313MkgreTdX R25GdDgmIyhLJl85O3tyfEp+K1dYOShkN2FibzxMPllLWEVKbG4KLXp0aE44V19GaVk3Sik1Q3ph ZEYheDlMRWA1Y35YeCZkT25+XyM1dShvR1d4OU9tfX0tdW8pKWMkUiNjUmdSWSFrTwotekh+WF5h bkElQmByJSNJeHBJSk5PdmJ1QDBxUWBzaGp2WUpmbCt1MUQ8VThHKlFGWVZpJSM5OHhFa0M4U3Rm Yz9JCi16bEJ0dVlPYGNnZChKNjR3YmszU3s8JjI1N0dvcmBXKVhraGM+JDJMSm0hQS0mJnoxSXo5 elZRcGNKeWxYX2woKyEKLXptKUIwNkpTa2NgT0MycEtGRDxgeFBUZHVnYGt6M1JxezRPUGBrcTZ2 aV42VG5jT3ApcUdpVFBOUzVCWVMtemxQXwotenQ/Qip0WTNmNlZ6MGRQYEZAOGElQDJKKkomcWMh O1VIWTNOcDclbEolUXFpNUZnNm04PFUzQWZAJVEpRihjOHxoCi16YH0zVzhZT0J1dGY9YXdLUnxs YD9qZm5UUWhzKmYwKWtfYjU7bkhEXlc5VCZwQFB+VCVCQFhiMVpZRE09ak9hdTQKLXotdCEoYmUm OytWYSk3RWp1amQxOyZLI1E7JCl7UXttJnxEK2FrfShBMlJMTztSfWQlWFI3QkArcGAzXlh1am1i dAoteigtcSFYcz9GQX45TSg5M1VVTDluPH1+P25sQGxaU1AmRW9ZWTVieHtBMTUhKlM8e2MrVmgp KjBAdHY3LWQ1TzM8Ci16bXAmUkA8JF9uMUUyaTw2PTxgX3JrKmtMX1BObWx6c2Q4eiVScHI4bksy KGlEUGNvT0gwPntheDNPUitYPTB7d0kKLXpvKzlkTFZaS1hVaHh1aW1wR19LUEhFV3lMND9GMDdJ REpfN2VwcjlTSU5KfDNKflJWPEAjeCg0IV9TRzZ2VWZQKgotekRSUjFzSUt5aFVadGdnJVU1Y0R+ VS0tam9tdyEjPkpRcT91SThQZUNVV3ZFUCZvMyYjRHwkPSFwJjAkaWVkOVVgCi16RjVFfCMkSHo1 Wk0xT09qOWk/XyVZRV87Kz1wMnB+TWRTQyNGTFE9Q0tYd0s8V2ZXRDtkR3hCa1F7ZkR4ND18X2YK LXptdXI/SiVndGViYmtKfDJidCpUKlN3ek5ecXtRZXdpOWh8OG1pUio+ajkpU3NfQDc7X2EhVWY0 QEshU1gmNlZSYgotel9ROEk9M08jTSR6M35BNHpJb1hBak5fYGBhZk16emJMSD5kJmQhfEVPNXpN VnVGZUBmS0k2RTB6Q2A4cEx3ZSRFCi16UjFjUzBqPjghLV9pWD5ROEdXTnVzbWM+MERhZzJMUzNU YTBFOHhwPGJ4VmNIR3VQdjQ7ZT0kbEM2MjU3KF5ZUHEKLXp6RT1XX3QyY2h1NT9fdzEzdFd7Tzs4 USl2PW0zd354JXZlNXF6IWZCOD57SXgyaWs2SWV1VCVaQHJDMD9zYD8qQgotenIqTmJ5IS1rSS1P VUxyTXlpMVJUUm9DLSo/SjFafmBvK0o5KlFOSjR6JmxqJjhvJjRAQHA0SlckO1Y/OTY5NHw2Ci16 VGxeO1V4JX5OQFMwKHlmcEw0WT85VF9EX04jb15fOF48XlBscz5gJXtHa2Zwd0ErRnlze1RqTklV RnNEI3ZlT2sKLXpfJUokX2NqX0RUU2JTPChNT2tTQFk1JnF3YFpaV0R6ZipzaEhNQCtzZT9oTX4r PSFsSTIrY2t1WnVTa245Jm5eOAoteiZ9e1I1SV4lP0BgRWh6VyN5ZEljSnZ0cH1EbSFkeS1LP3sj IyFqOSF0OFYlPD1sb34/YUZ4VUxrIX03Mil5dCojCi16ejBtY05ucFJGI1pJWjR8MWQmd0plTG5v QWVCXzt8PWA2ek15czYmRmlfbW4ySzh4RlI/KnJvLXRMUVpjQFRJMFIKLXptI1g/UkpWJVFuRz0y Ul9Jd1I4SCUlQ1NaX01GWGo/NzZMd1B2WTIlLXlVcjJ5PmxpSjY7XmVwblFOWCllPG1BeQotelhB dihTXkZzNFZvdGAwSEVAOCZyaSQ0Nk8qMnBWU3IlfXRvPnZaMitLQWtrYSlhbHNBZzZWVyVJd2Mj S3tDelQ9Ci16OSh1Pj48ZH1SQ2J0LSFAbWA9YGM7dyFBYCR9X0FlTUtZYmZCd20rfWFlIUNxYlQj cEUzOFBjcmNVJDYqNigwR1oKLXomTVNGbUN0fV4tV0FyRVk/KjxBa0pmNSFZYllVYTZDeEAtUypB SStHZSozd3FlO0oqXihWfVI0Y3gzJU5JXiZxQgotekU1MiY9O2ZSZy1KeH1fbz8kUkE2eklePXlg KEN8I1pxd2MrN3lRQCNjZjRIcmIlUiRBdTg7cDdlb15OTyVeYzc2Ci16JVMwVnA/TmQ2WW9hNTtW IVooalRvOEJtPkB9fXlePyYxR1BvR3pXaDBaeXNtTmFFeXpkOF92IyR3UTNaPERCQEoKLXozJUJ1 VWhneTg9QSZGenthaCs0UDhoVXpae0pFIUlYZ21ANGE7KktjZG1GRGw5cUV5eU1HK2NHUHhOY19K QEpocAotejAxa010b1I5cGZNO2tOR1B1Rko5PXFPJmBENSZaaHB+MDMrcXRpfmFaM3NATyhje0Yp Ql5ANmhrNU5kQ0Y4MU51Ci16PnZmXz1AOTNQOEh6MHdFYXB1P1AoXntXSz1ETTNXJlplQ2lPcnpK bD4oKmBOeTJXe007WFhISXFIUW5TJEJ4WmcKLXptQHYyY1Y1cmlfXiomYEUlcElsM1hOXjlFQGZS K2UrUV5lZjQmVjx9X3w3NEU0VytxVWpoUXAoOTFhd1Q1OG8qNQotek1RNDxFallScTBKLWd6VyRR dD8+PiZnRGloM2p8TUB+TExkOTNRRmdYWX45Rl8xb0RtKiE3P24majlJcTVUU1BBCi16cmIlYF4q aUYxSDlwZUJtYFlDdmk/alFib0ZuQCYpZStjcVl7U14zNTZNbTVTbTQ5cHhEeSViT0pGZkJKQ0JW T1MKLXp5JlkjcyRDfmFwKERrKCNIQVg+Unk5Um9+KiFGWC1ZMilLTzNwcHZ6Mmp+QjYyPDlpNUpi dz55eD5PJkl4YU8yUAotem9waXM9bFRKJW5Wc3UzTSQkdTdFezNhSlVDRj1BeDtSbiZsPzxkMTl1 UVEkeGU1dW8tQkRFVUtlJFVhTzIlWFktCi16ZShARG5CZXhDYWkte1ZJWmQ7VUYmbkhmb0QoIXts bHA0KD1QQSpDTnA/NT8qI09PKENiZSN8MTUlKChTY1RlYj8KLXprfmJpTT5OVyh2VSEka0NUYUFE KEg5QnhiRnBiaUF7KFVkb19LRnYzamtNPEBwWkJqKzhvNSs7ZjAzUlhxbDRVRAotelliZHl8cn1t biV6PFIjTWh2Iz9GcDh3QUVgUUdebCF9RSkjRjBoYERAMFlhYXFrYj5NKSVxI1YjbmE4bEYpenUr Ci16Xkc2YnxPTCFkU2Rrd3UjMF5ZWHNSbEI2KXE+bT9eb0JZdi0tJkJPTHJAUkZDSHhxc2tGWSl7 RCExNWM2PUt+LTgKLXo2IT4zX1l7a3t7IyN6I19DY05hOzdAYkBZTiRMNDdefFBHcmw3e3glYE1X QCZSc0U8fGYmMyhzPVhkSVZnVjcwYAotekBEdD5AZ0UrWSkmQ3hyZTklQSQpe2JhS3JlLVV5QClN QDV1bH5XaSRkMjdXRCNgOWZgRkxrPX1Lfj9gO2M+Y3NZCi16dFZZZ18kVllpVCtVd1lkZkB6ZCNv X3stV3k0MUVEO0ZLRFRBeDx0fkd9YFVNa0tjQCg1O2E8QGF8KXg7eTxjMDYKLXpmRzsoPV5pYnxP PllBTCpidmQycXVsVUJjU0pPPjhBTU4/anNKY3NRWnlkUUV0OXs3RV5CLUhaJXk+VFY7clg0bAot ej1idzc5KCZKIXd7c1Q4SXZ6fFg2ZGE2RShganVYeWBlLWdhZT1xVEpkdmU0ekZad0JYWEEmPSRG ckdobnZCaGBkCi16JFY+SDg7NkpKSiVDP3tTSl4jZnNSdjZDKktLZCF9TXxIRG45IWJaVkBjZFV8 bHgjdE1PMyZ7LXEkTVhqQURydEIKLXomK1hkSXdaIVJDd0shfl5Vakc7aiZUb202T1ZTKkBCa0Ni V1B0eD1FYHwhflp1cyNSOysxLVFQa05NfTJrIyNHSwotej1MMjhyd0JUQSp8NkYrZnJeR2pnXjVu cEhtbHtwR0V8XkF7SmlwKDFzfVZUbVNsVWRTVCo3RnkoVDVMRG1LdlM+Ci16JWtVYWFGVEJIUXFe fkpicXREKEFyY3BaMnVXZlVPP2JFbX1ZdEtpWSt4PyEoJE1zc3hLNGp6aGU/NCl2QHFCWCkKLXop QHdWNVlSXkJXTmcqOCEmKTwye1lVQkJzMmNlSW1lJSt0V15SOVdoXiEoX190NCtJdTd5VDV4RzIt UEMjYEQrdAotekB5KG9BY3xQI31ydD1FcGBNKyt6KXtKZEN8TWw9NDtENUFNLUtYJDRPRkd0cz1r SktvaTNKNUlKLUAhI2F5c3BDCi16QDFtfkg7QyQmYGI/PWdybFBJfDBvLUVUbXw5UnFjPjNqfXdO fWJ4PVhZPUlLUWs1N1RrZT1eIXU9cV9UciRuN3gKLXohVmh2az1KKSlYaiUkc2QwM1V2V0hlMHp+ KWp0PVd7fE5Eb3AqJVVfMTw1dH5nN2BSfVkmRld7YDV6T2ZPTUQjUQotemxwM0E1QS1xT3xJJDM8 QDVhZzdvKFkxc2hSLT43LXR3ejk/OGcxc2lpQnopSEQ0cGt6bmA4NUZKTHI3MD1jNys3Ci16WihI RXk8OWUrMkFzZiV7dip0SSheTVF8ZktKY2VqNm5tZnQhfUhzKHtmK1ZiY3JvLSRecFF+bWlvTmBF PkdATkwKLXptKW55QXl0MUVlQVlMd0VKcFV+cHpUK1VUI0QwNENLJFRZKiYra3thKFRyezIlWUhp WmB3bXxIUTt1IW5gRzFibAotej0+QEcpZGo3KG5gIzg7ZFJpYWtTMlJhMXVsVDRvZjd2Z2xPU3sj biVsc1g7WjlLdUpGVSlRYE4+TEVyPygoX2tjCi16WnQ+bEEkI3JeJUBXY0FhbHN8MVdvKTNLSilK NHlecld+cDJtI3Y/cVRoQVojcVNkSSReZ0U+eV95ISYyMWt4eXoKLXo9UHg1cG1yfiNXQ299QCpH VURYSWVLQjIkKEx0JXY7Vi1xcyQyPWVTaGV1VVQqXlZYdWIkTGsxQ1ptejl6blZWKgotemVATDd2 TWtRTn4oc19RTChvTHFsJj9vUjZGOEtQKVNOWFVldDl7N0VeV1Q0WGl9aWZucntWZClmNHtKOzJZ TjYoCi16enYrPUojYDdfekcwI1crbiVjQ0B4I3U2VFdzN05kQFhDSUFNM0hLakZySSg2QUsjMlU8 QHcwI1pvJmBaQ0h9UlkKLXp2UEYta15uQm8jejE3YXNIQ3hZcklZeUAhdmAqPnlyOGlubVRxbVZn cjkwYU5Aez4lU2UtJn1NUjRvcDBOfWFBRQotelBBKn5tcX1oaiRJZyN7fVd9UTxRS2wlTWZqfllK I3pWIVV4U011KU0/RU5JMj1Rbj9CSE51PSNZU2Vzc2AjPjZICi16Xjg2JEFTZEc5Ykg5QklqJH14 O2FeKigmdU1AV3Q4Mnx2aEtAX1lWIXFhSElGMGJncUwtcylmKXJTdHNlKFR8eHYKLXpqZTlAb2BP UnhvS0NhZ0A+X2F4NVU7Vn5iPE4zZ2M9TzNvJDhIZkZZdWRIZyU0Kk5jZSNLLT1RVDwrVCReeVhJ VQotemBSM2tRJX1ZP2ZaPmZIKVhEO1hZSHhhSyhpRT1vYTd5VDV4QlIqOF42MnxsUWB8JEF7RUJZ eiRBMTNARHtuWVJJCi16dClGfHdjc31zYVBsNW1Kbnw0MS0oeTxvZDxRKWdQWmphSDZnMkklWktr aitVaVNORFBDKmJVfEdxP004SFc4O3cKLXopIzNvQilhZ3AlPGRRVDs/fSZQYyhVWTcqOXtxdzNB QTJiRGVwfT9VVGp2elVeTEwpSyZINCVVUTBSWT8wUXxjdQotemdZNX1QPWxPcClkN0o0TSpuPVc5 YHNMfWwtTTc9YldTaHxsb0ttQnw1aHNeMDhhNFh4P09yNGBlP2w4aDdfNCMlCi16cXRTVntUOCk0 JiQ1TXlZIThBKGVgVGRzS19RR0NEY3N9eWtPTUw3TnVHZWJ6TDMobkc0c29BZUwmMWdqP0hzdnYK LXp5WVlQQiF9R2dwJiVkV1p0K2dHRGRII14qP1opJSUtZHBBUXNOZDdLc2tPUlhkajlSaT5yeHdl VmZOJkR5bzE1cAotemBGN1BWVkxaUzBHWnchfD5ATmZVST5IYUBgQ1Q2U3ZsLWpLTT9WR3JeMk8+ cVhkWSl0JEN+aWBtdHU1Y0w3U0FHCi16ZjYzI1A2TU4wIUMqWFd7Tnc3VTNuZGJTTWlQT2BGc3M+ S0Aye2AtUldiPnJjUWtFRFVrKUQ2dGVfTVIpfEhyaSUKLXpfIXxnNmgpKGBGPGtYJSFqT1BQaT5o ekN+UnNGTUZIJVJDQ2dMfn5Ue2xYRmQ3NiRufHhoSSVMbmRiUytpUE5SRgotejxwOEpEc0xUSWAq UW17ckUlQnZCTzkoJSNNclR9YUhMfj9yWWRkSk9yJCgjIVUkej5oXlpYeWhaOWVEfEBPPCNDCi16 S1FIe2dvbVh6JVgqP2hKKCh9aCR0ayEpR2hVYWZzeTM9flRfOys+NHxGfSFrOGdWVz9LaG0oJV53 VSZjdlZlSEcKLXpnekB+Zks3NHF4PzU5V25PeSFtQit7OGM2QU83SDklLTlBI3lyaTRIbU08UXBX KEM9THspO2g2d3hCNGI9ZFhPbwotemE/MHk3SU56KlAtP3lqYTxPWmRaP1JVNnU1VHtHJGRtKm1Q O091KDMmNjc/fFN6PmZWZGo3ZTt2LXBAM0tffXFmCi16TGlsMCo8ZWtwRGpPUFBpPmVPcXNzKC1l QWxGc3gwY0lZbkNGRUQ0dGJzNzJlVUszMkNPckMjeW10OXNQdXxGVDIKLXpta31xSXE7bjdOaDxi PzhsaG8qV0FIRX56UHJ6QHBIb1FocCUoZlo8VXV5SzdxYjVrJVlMdzNObzlFY31pc1JsPQotemV9 e3tGWGJaSTA9VW1rKz0yNWpHejB+dXk4MiFvWndUNk5WJi0yU35lQlhGSkBadEh1enBBc2taI2Z2 QVUkT1hvCi16PE4zSUVtd2p+M3EzUyotbSEzYkRjd0s1RTQpOWBiZl84YjdjKTVofXtPQSZra0Ze KStDOXk4Uz9ubktlVSVVTTgKLXpXXjRtcl9TM2FkeVV2fC10bSVHKHdWZ2wzREF8SXhETHNHTjNk QFEwRnNXNm1WeypIbWY3bCY9SCMmaCs+UXFnZgotelQkMU1LOVo/VDRkWGojISpvVGpgUHBRKiRJ O1UpfSVgLUc3a0g2RXR7PTR5Zjs3Z3Q2RW1ITiopPSQhVGUpJV82Ci16QmRrcUpqanA7ZW1gMGdB fDd6bE5EUTZDRk57ek08Q3ptaTlKP0YjNl9YU2Q7IW9AMTVGZEEqMUBQV3w/Xyk/PzIKLXo5fHFH WG8jIXZWX3lmfmtfPktxamUwYX1tQUV8cz91aHJ+QkhsODFPPnI+PFR6PSE3X3VJR2MxVzdLYHUh U01WJgotelJLSUZVaTM4dSFwXnVffGQjSFhxJiZzOWVwUyR4QCk5JkMhS0x6aSgkRXRQLTxONGor dylvZ3JnTUpHOT8hQU5FCi16a05RM1R5QXdZKm8pM0tWUXthQyQrd09AQElAV35lfDFtfSk2dHFq fWA5JnhESUt7cGxhMjghMVowfm9id1ZoR0sKLXo9fkFeZzlJPFopb1RHQDdPVlMqQEJrQ2JXUHR4 O1dfdS1wODZuWkAkX148MW4hdVpMVT5kJWR6MEFLMWZXXzdUPQotei18ME5SWE59YmVkcjsoZj5i VytVTXd2VyswJiUrM3dqQUo7VmAmMCRhdFdpK0E+JikoJWR2Rkd6MlchZ2NmRy1DCi16V2IzY2lj RitnOVpWI3FXST93K25Ad3dDJVVTT303cDY3JF9wVHgoVyRMSUo8SGxEdzBAam1QTVYmNHclY2tN V00KLXpeWmV+Z184SEh8bjNqRVhgenlKaD1YYndwcEp7alMlNns3WSkkc0hEV3F5M0lad0t3WmpQ UWYzOFRkV190YDdTJQotemRqNEpHKXhJTWhYR3pESkBjYmBjcGNCZFNDI184VytZNFBnVDI1Umly Qis9cFFoU2s3YV9TRDg/Yl47bjsma2FWCi16OU4/NVhPKGFlKE5wdGokc0R+SW13ZVdsJktJVE55 UGhRdEtoNEs4fDFOS3xiKkwkKDA9a0pjSWBzWlN2emlGVj0KLXoyeTw0YyhXZCNxR3xKQHBgOUhR QWZtM1JmemFZRnVQeHxuMkEwYWgqbEpKOSFDSTd3SEMkJn4xOzdnNEBgRTQrYgoteihzfS1LbSlp RWl5JnZaSkBQXzkkcyhmNzRiPEpab3A4eFhBVW1NUXtLSVp3fF4qbiMrP0YjWj4lPTBoMjwha0h0 Ci16ViY0d3gqTHw3VnRENEpze0B1ak8/YUFTWWVMTFgmRGUtYSVHdFluNWhtVy12XmkkeTlxd350 dk9aPVhILWJZXj4KLXomaiZ2R0RleWFkdUlpdUNlfSg1fm4mKz9oKm03YiQ0MU5PNj5iPTRDZSlr K25iKT9fIzt5V3ROUGtRb2EjT2MhZQotejlOPmhYZmImNyg8aWRIVEQ9fDdLQHUlJFo7YlUhOCYr fnpRK2BqTzh6bjcyeCMmfntRPDRjeyFSalpNbHdkZERTCi16QjlWcHlfQVNvR3xOQipRJmlscldD JHNqZ19DejNgaVZNYCpjZWRse3lSKFVlZSFxJH1pZlRVRGpAeWFYckRHZysKLXpPPGU3WDBQbjVE JU8lV3M4dlBUQ1pAO0hkZHZ9MGVUb1pteGY2Z15sQypWdCtEKDMldEl5SElPdDJPc2QqTThHQAot ejU1NEJWX2RJZWU/TzM0bHhyRU4pTkw0VUBJKFk9MFFCfkVJY2JAUXtRUm5RY0B7JSVMTzNMaD8p MjNmS2ViUDBsCi16QFp8ZVZeb0c+Pzk7Jn1mP3tsRjNhJEhgclBfPFhPeTNAeTw3PV5eJjxITlYj OVZZN2lUZnpAfW9zYSRLZkVreS0KLXptd0hEX3hLX0VATHB8YGcxSjx1b2pMV1p4a01sfEMqSXNT MXwxUHdGSTk+Vi1oeUJoc2FaRlp+c3ZOXzM9amM4YgotekFLIV9+WWd9PlBWMCU7amIxfHBOcjsr KEJUWHB9OUcyY300P2BoPXMmZzslVVY3d0UxQUxOKjx5aW56bnQjQFlnCi16bzR0cFF2RiErNklo SX19VU1edzBiRGE8MEc1ZE5GJElfJldnNlkpWSlrYjtRS2hfPmRgQ0c4aT5IYzQ8YGpecT8KLXpJ OWltNWRJI1Mjams9M29BQ3QreT5+RiNQYl5PSVR0RTBefkBmdFhBV0ExZilsWHpYS0hWMWc2ande fG1PQmZ3NQotelQ1c3t1UHZtJih1Xz9UY3RAbTNVZmlGR3IqPjhWWDlzUDZNRlI0Q2JzSTU0eHph OzlvPHZXI2N0fn5TMUZLaW93Ci16USkoRmJtdWlEQnA4MlFgQUQlMlZvSjtzJnVXUzJ6STsqT3Z5 KlBqYEhHSF50dXI8cWM+JmtPX0lqZjlEZGNUZUkKLXolIShmY1RVVTtyTHpPUzY+WHR7LWhoK0J6 NC1sdElyKzZYdV9gcStiNWhzXjA4Ynl3QF8/WCpCamtmQlh2Yn1lawotejtuaGFAPHglVWNNIT1V RXl8KiEjTShOZlZJJlpNflV+WT53MkRIfkpvNUhVdnVYdzYtKSVCRGcya14xUiZ7TUI1Ci16dFo+ eDd0O2x3YnEyeCNjRUFOJlVfQlZhfktHTTZYKWJ2ckBvMWwtUGUhY1U4e2QqST00JVVxP1RnbSFw RXBmV3MKLXo5dShrJmtBU241SUp0IUJxeEMtZ3hWVWN4ZSFiMnFPZHFYcEU7VCpeZURxTytVIWR5 V2sjZ1dAUU1ocmE7Rj5PZAotejxXWTZsK2s+PT9fLUx1dztsTz5xKU15Kj11YGt4cElVSzE5P3VT MCYtOypDdilzNjNtKypCdnl7WStDMExnNHpjCi16XlQrZ09jPDt2R1hST1lzeDcyeFhFN2Vadj5k Y1VnRUFlT2dAVWhNVkZNPHY7Mnx2ajc7dnB1WiF1NmxATiM5aXMKLXpeZnczYXJPdU58aX0tWiFu b3tOY0JfNCMlcXhqRDlPbVIrJm16ZiY4IVFweXhkLSV1bFBkQEV5JEZmKjJNMEA8QwotenVsZz45 JDVwenFnP15JaHlYTT03KDxMa3B4bUYweStsWjQoSXpCIWdxbVVZWj5CR2t3dDw/QlNvbTI5R014 YV4pCi16O0xvNzl4VWswMEA5a15HR1ZyQ3cmLVlqTD8/fDhGWGk8ZDVheERBai17b0tRVH4kcDA5 OVRuX1c0VX1sdTwhQSoKLXp4c1FxeXVTPVg5O0ZWKUJQUHw7ZyUpaHQhQGJUUy0pTT1afUR8c1Vs dkN5Zih0QnVtPmdtfkYxKXtPKUJRbH1IMQotelJgb0JWUSNlYF9wO09UTkRGMFlIZX0wKTZZZmJw UUlRPzZAPT1iTXUmRnhzYmxRPjtVaVVYV2QhI2p6U09QSTBOCi16VlMmWVdAVmxwYXklI3hrWGIk I1d0ZnY+JWhzV0Jpem19UD8yN0lhRXRZZD9IZTxhNzZVISZzcGVIIzQtZSh6Sj0KLXpCTyN5Uy1v ZGAoJVFYTFhpUE5RZ0locik1KVd7YEhFQDNxS2xASCVCSWpRdnU8biR8QFE/fSNHdVRsTHU8eUlx OAotemYzPmF6e1E4QE1YX1JqTXttNilOKF9ZVFAjTlhObC15PTdOfEJrUWI7YzdHZzIwckhCTjlw PFolMktyIWRqQEkzCi16ZnVpMX1TSGRAUElzWUV9TlZWfTFfbTsjeWl1eF88dEpaUzR6b2hGa3hN cFhYZjhTMT1FQDY0MEluaFZLYDNpQXoKLXpOeW8+PlYtKWg1LUQhKShaLVM9VU19VThSU0Bgd293 T3VZU2VIOGZjNSNhQj5SbkA7RSlzTGVeNXQ+UkxAejF+UwotektJe1RCfDg2cUI4PzFaO2UxQlEw Xjc7UVh8QmlPTyEwMyM2T1B5bTRzLTQyanpufThxSjQ/fWJsXjNDMTRpSjlXCi16YFM7dTlIRD4r fGU1ckdmallgTlc1fTJiITVqeXtuXlkyc28qTzsqIVV5U3hoPj9nQX5zZWctLT9PNHQ8fERII2oK LXpFK3gkWVBPMChaI0t8U2hTcEZtbEtJVjFNeGEwd3FRfVRnRSM5RChHe21FVzJnTXRnczNGLSZk bjZZZkB1ZFgtMQotemY5WkQkZlg2WE1pPXkjVS1BbnVELX1RclAlPXthRDNpRUhuX2xVfWU9ZlVh YiF0bVF7PUhHdUpVWUdEVnokPGxYCi16dz8hcUFqKn53Z3FtWjdQUzg0R3YpfT5CRTJ0VVlKWSt5 MWZ0a1p5fVlzfnhgXztNXj5KdCpIaHpsPEleU2A/dkUKLXooRTBiQjhqJE89YzVCVjVJck4kWCo4 cipHP24/REwwMk9vJk4yJnJIJnVPR0hgY3hneHpjM29qYlBHPUJhREFpPgotekE1eShzZFk9Ukpr fiR4TXhAeEMlYil0X2EpJW56QmkqTSUoaUpwNTY7Um4lcTI5cl9ZY0FZblRmKkZzJW1wVldHCi16 Ymc9YlRkMlJLTiQxbCZCVjheNEdEPHBkNmZNJkorZEtsR19CVU9RcCpeSX4yTW9jZ3xJaHQ0TUc+ Pj8+cX5xa3sKLXZGJCZvYV9XQUx9SlJMc017fjQ4NmEjSkh2Snpqd0MqUXYqN3N9dEA2cSlyei03 ZmRKcnt7e01nenZfTnEKLQotbGl0ZXJhbCAwCi1IY21WP2QwMDAwMQotCi1kaWZmIC0tZ2l0IGEv dGVzdHMvZWdpc19ldHU5MDUvY3VzdG9tLnB5IGIvdGVzdHMvZWdpc19ldHU5MDUvY3VzdG9tLnB5 Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAuLmE4NDJmMjZlCi0tLS0gL2Rl di9udWxsCi0rKysgYi90ZXN0cy9lZ2lzX2V0dTkwNS9jdXN0b20ucHkKLUBAIC0wLDAgKzEsMTA5 IEBACi0rIyEvdXNyL2Jpbi9weXRob24zCi0raW1wb3J0IHRyYWNlYmFjawotKwotK2ltcG9ydCBz eXMKLStpbXBvcnQgZ2kKLSsKLStnaS5yZXF1aXJlX3ZlcnNpb24oJ0ZQcmludCcsICcyLjAnKQot K2Zyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgRlByaW50LCBHTGliCi0rCi0rIyBFeGl0IHdpdGgg ZXJyb3Igb24gYW55IGV4Y2VwdGlvbiwgaW5jbHVkZWQgdGhvc2UgaGFwcGVuaW5nIGluIGFzeW5j IGNhbGxiYWNrcwotK3N5cy5leGNlcHRob29rID0gbGFtYmRhICphcmdzOiAodHJhY2ViYWNrLnBy aW50X2V4Y2VwdGlvbigqYXJncyksIHN5cy5leGl0KDEpKQotKwotK2N0eCA9IEdMaWIubWFpbl9j b250ZXh0X2RlZmF1bHQoKQotKwotK2MgPSBGUHJpbnQuQ29udGV4dCgpCi0rYy5lbnVtZXJhdGUo KQotK2RldmljZXMgPSBjLmdldF9kZXZpY2VzKCkKLSsKLStkID0gZGV2aWNlc1swXQotK2RlbCBk ZXZpY2VzCi0rCi0rYXNzZXJ0IGQuZ2V0X2RyaXZlcigpID09ICJlZ2lzX2V0dTkwNSIKLSthc3Nl cnQgbm90IGQuaGFzX2ZlYXR1cmUoRlByaW50LkRldmljZUZlYXR1cmUuQ0FQVFVSRSkKLSthc3Nl cnQgZC5oYXNfZmVhdHVyZShGUHJpbnQuRGV2aWNlRmVhdHVyZS5JREVOVElGWSkKLSthc3NlcnQg ZC5oYXNfZmVhdHVyZShGUHJpbnQuRGV2aWNlRmVhdHVyZS5WRVJJRlkpCi0rYXNzZXJ0IGQuaGFz X2ZlYXR1cmUoRlByaW50LkRldmljZUZlYXR1cmUuU1RPUkFHRSkKLSthc3NlcnQgZC5oYXNfZmVh dHVyZShGUHJpbnQuRGV2aWNlRmVhdHVyZS5TVE9SQUdFX0xJU1QpCi0rYXNzZXJ0IGQuaGFzX2Zl YXR1cmUoRlByaW50LkRldmljZUZlYXR1cmUuU1RPUkFHRV9ERUxFVEUpCi0rYXNzZXJ0IGQuaGFz X2ZlYXR1cmUoRlByaW50LkRldmljZUZlYXR1cmUuU1RPUkFHRV9DTEVBUikKLSsKLStkLm9wZW5f c3luYygpCi0rCi0rZGVmIGVucm9sbF9wcm9ncmVzcygqYXJncyk6Ci0rICAgIGFzc2VydCBkLmdl dF9maW5nZXJfc3RhdHVzKCkgPT0gRlByaW50LkZpbmdlclN0YXR1c0ZsYWdzLlBSRVNFTlQKLSsg ICAgcHJpbnQoImVucm9sbCBwcm9ncmVzcyBzdGFnZTogIiArICBzdHIoYXJnc1sxXSkpCi0rCi0r ZGVmIGlkZW50aWZ5X2RvbmUoZGV2LCByZXMpOgotKyAgICBnbG9iYWwgaWRlbnRpZmllZAotKyAg ICBpZGVudGlmaWVkID0gVHJ1ZQotKyAgICBpZGVudGlmeV9tYXRjaCwgaWRlbnRpZnlfcHJpbnQg PSBkZXYuaWRlbnRpZnlfZmluaXNoKHJlcykKLSsgICAgcHJpbnQoIk1BVENIIEZPVU5EISIgaWYg aWRlbnRpZnlfbWF0Y2ggZWxzZSAiTk8gTUFUQ0ggRk9VTkQiKQotKyAgICBhc3NlcnQgaWRlbnRp ZnlfbWF0Y2guZXF1YWwoaWRlbnRpZnlfcHJpbnQpCi0rCi0rIyBMaXN0Ci0rcHJpbnQoIi0tLSBM SVNUSU5HIC0tLSIpCi0rc3RvcmVkID0gZC5saXN0X3ByaW50c19zeW5jKCkKLStwcmludHMxID0g bGVuKHN0b3JlZCkKLStwcmludChmIi0tLSBMSVNUIERPTkU6IEZvdW5kIHtwcmludHMxfSBwcmlu dHMgYmVmb3JlIGVucm9sbC0tLSIpCi0rCi0rIyBFbnJvbGwKLStwcmludCgiLS0tIEVOUk9MTElO RyAtLS0iKQotK3RlbXBsYXRlID0gRlByaW50LlByaW50Lm5ldyhkKQotKwotK2Fzc2VydCBkLmdl dF9maW5nZXJfc3RhdHVzKCkgPT0gRlByaW50LkZpbmdlclN0YXR1c0ZsYWdzLk5PTkUKLStwID0g ZC5lbnJvbGxfc3luYyh0ZW1wbGF0ZSwgTm9uZSwgZW5yb2xsX3Byb2dyZXNzLCBOb25lKQotK2Fz c2VydCBkLmdldF9maW5nZXJfc3RhdHVzKCkgPT0gRlByaW50LkZpbmdlclN0YXR1c0ZsYWdzLk5P TkUKLStwcmludCgiLS0tIEVOUk9MTCBET05FIC0tLSIpCi0rZGVsIHRlbXBsYXRlCi0rCi0rIyBM aXN0Ci0rcHJpbnQoIi0tLSBMSVNUSU5HIC0tLSIpCi0rc3RvcmVkID0gZC5saXN0X3ByaW50c19z eW5jKCkKLStwcmludHMyID0gbGVuKHN0b3JlZCkKLStwcmludChmIi0tLSBMSVNUIERPTkU6IEZv dW5kIHtwcmludHMyfSBwcmludHMgYWZ0ZXIgZW5yb2xsLS0tIikKLSthc3NlcnQgKHByaW50czIg LSBwcmludHMxKSA9PSAxCi0rCi0rIyBWZXJpZnkKLStwcmludCgiLS0tIFZFUklGWUlORyAtLS0i KQotK2Fzc2VydCBkLmdldF9maW5nZXJfc3RhdHVzKCkgPT0gRlByaW50LkZpbmdlclN0YXR1c0Zs YWdzLk5PTkUKLSt2ZXJpZnlfcmVzLCB2ZXJpZnlfcHJpbnQgPSBkLnZlcmlmeV9zeW5jKHApCi0r YXNzZXJ0IGQuZ2V0X2Zpbmdlcl9zdGF0dXMoKSA9PSBGUHJpbnQuRmluZ2VyU3RhdHVzRmxhZ3Mu Tk9ORQotK3ByaW50KGYiLS0tIFZFUklGWSBET05FOiBSZXN1bHQge3ZlcmlmeV9yZXN9IC0tLSIp Ci0rCi0rIyBJZGVudGlmeQotK3ByaW50KCItLS0gQVNZTkMgSURFTlRJRllJTkcgLS0tIikKLStp ZGVudGlmaWVkID0gRmFsc2UKLStkZXNlcmlhbGl6ZWRfcHJpbnRzID0gW10KLStmb3IgcCBpbiBz dG9yZWQ6Ci0rICAgIGRlc2VyaWFsaXplZF9wcmludHMuYXBwZW5kKEZQcmludC5QcmludC5kZXNl cmlhbGl6ZShwLnNlcmlhbGl6ZSgpKSkKLSsgICAgYXNzZXJ0IGRlc2VyaWFsaXplZF9wcmludHNb LTFdLmVxdWFsKHApCi0rCi0rZC5pZGVudGlmeShkZXNlcmlhbGl6ZWRfcHJpbnRzLCBjYWxsYmFj az1pZGVudGlmeV9kb25lKQotK2RlbCBkZXNlcmlhbGl6ZWRfcHJpbnRzCi0rCi0rd2hpbGUgbm90 IGlkZW50aWZpZWQ6Ci0rICAgIGN0eC5pdGVyYXRpb24oVHJ1ZSkKLStwcmludCgiLS0tIElERU5U SUZZIERPTkUgLS0tIikKLSsKLSsjIERlbGV0ZQotK3ByaW50KCItLS0gREVMRVRJTkcgLS0tIikK LStwX3RvX2RlbGV0ZSA9IG5leHQoKHNwIGZvciBzcCBpbiBzdG9yZWQgaWYgc3AuZXF1YWwocCkp LCBOb25lKQotK2lmIHBfdG9fZGVsZXRlOgotKyAgICBkLmRlbGV0ZV9wcmludF9zeW5jKHBfdG9f ZGVsZXRlKQotKyAgICBwcmludCgiLS0tIERFTEVURSBET05FIC0tLSIpCi0rZGVsIHBfdG9fZGVs ZXRlCi0rZGVsIHAKLSsKLSsjIExpc3QKLStwcmludCgiLS0tIExJU1RJTkcgLS0tIikKLStzdG9y ZWQgPSBkLmxpc3RfcHJpbnRzX3N5bmMoKQotK3ByaW50czMgPSBsZW4oc3RvcmVkKQotK3ByaW50 KGYiLS0tIExJU1QgRE9ORTogRm91bmQge3ByaW50czN9IHByaW50cyBhZnRlciBkZWxldGluZy0t LSIpCi0rYXNzZXJ0IChwcmludHMyIC0gcHJpbnRzMykgPT0gMQotK2RlbCBzdG9yZWQKLSsKLStk LmNsb3NlX3N5bmMoKQotKwotK2RlbCBkCi0rZGVsIGMKLWRpZmYgLS1naXQgYS90ZXN0cy9lZ2lz X2V0dTkwNS9kZXZpY2UgYi90ZXN0cy9lZ2lzX2V0dTkwNS9kZXZpY2UKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uNGI3NTBhNzkKLS0tLSAvZGV2L251bGwKLSsrKyBiL3Rl c3RzL2VnaXNfZXR1OTA1L2RldmljZQotQEAgLTAsMCArMSwzNDggQEAKLStQOiAvZGV2aWNlcy9w Y2kwMDAwOjAwLzAwMDA6MDA6MDguMS8wMDAwOjA1OjAwLjQvdXNiMy8zLTMKLStOOiBidXMvdXNi LzAwMy8wMDI9MTIwMTAwMDJGRjAwMDA0MDdBMUNBRTA1NDI1MzAxMDIwMzAxMDkwMjI3MDAwMTAx MDBBMDMyMDkwNDAwMDAwM0ZGRkZGRjAwMDcwNTgxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDU4 MzAzNDAwMDAxCi0rRTogQlVTTlVNPTAwMwotK0U6IERFVk5BTUU9L2Rldi9idXMvdXNiLzAwMy8w MDIKLStFOiBERVZOVU09MDAyCi0rRTogREVWVFlQRT11c2JfZGV2aWNlCi0rRTogRFJJVkVSPXVz YgotK0U6IElEX0JVUz11c2IKLStFOiBJRF9NT0RFTD1FVFU5MDVBeHgtRQotK0U6IElEX01PREVM X0VOQz1FVFU5MDVBeHgtRQotK0U6IElEX01PREVMX0lEPTA1YWUKLStFOiBJRF9QQVRIPXBjaS0w MDAwOjA1OjAwLjQtdXNiLTA6MwotK0U6IElEX1BBVEhfVEFHPXBjaS0wMDAwXzA1XzAwXzQtdXNi LTBfMwotK0U6IElEX1BBVEhfV0lUSF9VU0JfUkVWSVNJT049cGNpLTAwMDA6MDU6MDAuNC11c2J2 Mi0wOjMKLStFOiBJRF9SRVZJU0lPTj01MzQyCi0rRTogSURfU0VSSUFMPUVHSVNfRVRVOTA1QXh4 LUVfMEE4NjA2UE5BMzU3Ci0rRTogSURfU0VSSUFMX1NIT1JUPTBBODYwNlBOQTM1NwotK0U6IElE X1VTQl9JTlRFUkZBQ0VTPTpmZmZmZmY6Ci0rRTogSURfVVNCX01PREVMPUVUVTkwNUF4eC1FCi0r RTogSURfVVNCX01PREVMX0VOQz1FVFU5MDVBeHgtRQotK0U6IElEX1VTQl9NT0RFTF9JRD0wNWFl Ci0rRTogSURfVVNCX1JFVklTSU9OPTUzNDIKLStFOiBJRF9VU0JfU0VSSUFMPUVHSVNfRVRVOTA1 QXh4LUVfMEE4NjA2UE5BMzU3Ci0rRTogSURfVVNCX1NFUklBTF9TSE9SVD0wQTg2MDZQTkEzNTcK LStFOiBJRF9VU0JfVkVORE9SPUVHSVMKLStFOiBJRF9VU0JfVkVORE9SX0VOQz1FR0lTCi0rRTog SURfVVNCX1ZFTkRPUl9JRD0xYzdhCi0rRTogSURfVkVORE9SPUVHSVMKLStFOiBJRF9WRU5ET1Jf RU5DPUVHSVMKLStFOiBJRF9WRU5ET1JfRlJPTV9EQVRBQkFTRT1MaWdoVHVuaW5nIFRlY2hub2xv Z3kgSW5jLgotK0U6IElEX1ZFTkRPUl9JRD0xYzdhCi0rRTogTUFKT1I9MTg5Ci0rRTogTUlOT1I9 MjU3Ci0rRTogUFJPRFVDVD0xYzdhLzVhZS81MzQyCi0rRTogU1VCU1lTVEVNPXVzYgotK0U6IFRZ UEU9MjU1LzAvMAotK0E6IGF1dGhvcml6ZWQ9MVxuCi0rQTogYXZvaWRfcmVzZXRfcXVpcms9MFxu Ci0rQTogYkNvbmZpZ3VyYXRpb25WYWx1ZT0xXG4KLStBOiBiRGV2aWNlQ2xhc3M9ZmZcbgotK0E6 IGJEZXZpY2VQcm90b2NvbD0wMFxuCi0rQTogYkRldmljZVN1YkNsYXNzPTAwXG4KLStBOiBiTWF4 UGFja2V0U2l6ZTA9NjRcbgotK0E6IGJNYXhQb3dlcj0xMDBtQVxuCi0rQTogYk51bUNvbmZpZ3Vy YXRpb25zPTFcbgotK0E6IGJOdW1JbnRlcmZhY2VzPSAxXG4KLStBOiBiY2REZXZpY2U9NTM0Mlxu Ci0rQTogYm1BdHRyaWJ1dGVzPWEwXG4KLStBOiBidXNudW09M1xuCi0rQTogY29uZmlndXJhdGlv bj0KLStIOiBkZXNjcmlwdG9ycz0xMjAxMDAwMkZGMDAwMDQwN0ExQ0FFMDU0MjUzMDEwMjAzMDEw OTAyMjcwMDAxMDEwMEEwMzIwOTA0MDAwMDAzRkZGRkZGMDAwNzA1ODEwMjQwMDAwMDA3MDUwMjAy NDAwMDAwMDcwNTgzMDM0MDAwMDEKLStBOiBkZXY9MTg5OjI1N1xuCi0rQTogZGV2bnVtPTJcbgot K0E6IGRldnBhdGg9M1xuCi0rTDogZHJpdmVyPS4uLy4uLy4uLy4uLy4uLy4uL2J1cy91c2IvZHJp dmVycy91c2IKLStMOiBmaXJtd2FyZV9ub2RlPS4uLy4uLy4uLy4uLy4uL0xOWFNZU1RNOjAwL0xO WFNZQlVTOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjBjL2RldmljZToxYi9kZXZpY2U6MWMvZGV2aWNl OjFmCi0rQTogaWRQcm9kdWN0PTA1YWVcbgotK0E6IGlkVmVuZG9yPTFjN2FcbgotK0E6IGx0bV9j YXBhYmxlPW5vXG4KLStBOiBtYW51ZmFjdHVyZXI9RUdJU1xuCi0rQTogbWF4Y2hpbGQ9MFxuCi0r QTogcGh5c2ljYWxfbG9jYXRpb24vZG9jaz1ub1xuCi0rQTogcGh5c2ljYWxfbG9jYXRpb24vaG9y aXpvbnRhbF9wb3NpdGlvbj1sZWZ0XG4KLStBOiBwaHlzaWNhbF9sb2NhdGlvbi9saWQ9bm9cbgot K0E6IHBoeXNpY2FsX2xvY2F0aW9uL3BhbmVsPXRvcFxuCi0rQTogcGh5c2ljYWxfbG9jYXRpb24v dmVydGljYWxfcG9zaXRpb249dXBwZXJcbgotK0w6IHBvcnQ9Li4vMy0wOjEuMC91c2IzLXBvcnQz Ci0rQTogcG93ZXIvYWN0aXZlX2R1cmF0aW9uPTkzMTM2NzU4XG4KLStBOiBwb3dlci9hc3luYz1l bmFibGVkXG4KLStBOiBwb3dlci9hdXRvc3VzcGVuZD0yXG4KLStBOiBwb3dlci9hdXRvc3VzcGVu ZF9kZWxheV9tcz0yMDAwXG4KLStBOiBwb3dlci9jb25uZWN0ZWRfZHVyYXRpb249OTMxMzk2MjFc bgotK0E6IHBvd2VyL2NvbnRyb2w9b25cbgotK0E6IHBvd2VyL2xldmVsPW9uXG4KLStBOiBwb3dl ci9wZXJzaXN0PTFcbgotK0E6IHBvd2VyL3J1bnRpbWVfYWN0aXZlX2tpZHM9MFxuCi0rQTogcG93 ZXIvcnVudGltZV9hY3RpdmVfdGltZT05MzEzODgyNlxuCi0rQTogcG93ZXIvcnVudGltZV9lbmFi bGVkPWZvcmJpZGRlblxuCi0rQTogcG93ZXIvcnVudGltZV9zdGF0dXM9YWN0aXZlXG4KLStBOiBw b3dlci9ydW50aW1lX3N1c3BlbmRlZF90aW1lPTBcbgotK0E6IHBvd2VyL3J1bnRpbWVfdXNhZ2U9 MVxuCi0rQTogcG93ZXIvd2FrZXVwPWRpc2FibGVkXG4KLStBOiBwb3dlci93YWtldXBfYWJvcnRf Y291bnQ9XG4KLStBOiBwb3dlci93YWtldXBfYWN0aXZlPVxuCi0rQTogcG93ZXIvd2FrZXVwX2Fj dGl2ZV9jb3VudD1cbgotK0E6IHBvd2VyL3dha2V1cF9jb3VudD1cbgotK0E6IHBvd2VyL3dha2V1 cF9leHBpcmVfY291bnQ9XG4KLStBOiBwb3dlci93YWtldXBfbGFzdF90aW1lX21zPVxuCi0rQTog cG93ZXIvd2FrZXVwX21heF90aW1lX21zPVxuCi0rQTogcG93ZXIvd2FrZXVwX3RvdGFsX3RpbWVf bXM9XG4KLStBOiBwcm9kdWN0PUVUVTkwNUF4eC1FXG4KLStBOiBxdWlya3M9MHgwXG4KLStBOiBy ZW1vdmFibGU9Zml4ZWRcbgotK0E6IHJ4X2xhbmVzPTFcbgotK0E6IHNlcmlhbD0wQTg2MDZQTkEz NTdcbgotK0E6IHNwZWVkPTEyXG4KLStBOiB0eF9sYW5lcz0xXG4KLStBOiB1cmJudW09NTg1NVxu Ci0rQTogdmVyc2lvbj0gMi4wMFxuCi0rCi0rUDogL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAw OjA4LjEvMDAwMDowNTowMC40L3VzYjMKLStOOiBidXMvdXNiLzAwMy8wMDE9MTIwMTAwMDIwOTAw MDE0MDZCMUQwMjAwMTQwNjAzMDIwMTAxMDkwMjE5MDAwMTAxMDBFMDAwMDkwNDAwMDAwMTA5MDAw MDAwMDcwNTgxMDMwNDAwMEMKLStFOiBCVVNOVU09MDAzCi0rRTogQ1VSUkVOVF9UQUdTPTpzZWF0 OgotK0U6IERFVk5BTUU9L2Rldi9idXMvdXNiLzAwMy8wMDEKLStFOiBERVZOVU09MDAxCi0rRTog REVWVFlQRT11c2JfZGV2aWNlCi0rRTogRFJJVkVSPXVzYgotK0U6IElEX0FVVE9TVVNQRU5EPTEK LStFOiBJRF9CVVM9dXNiCi0rRTogSURfRk9SX1NFQVQ9dXNiLXBjaS0wMDAwXzA1XzAwXzQKLStF OiBJRF9NT0RFTD14SENJX0hvc3RfQ29udHJvbGxlcgotK0U6IElEX01PREVMX0VOQz14SENJXHgy MEhvc3RceDIwQ29udHJvbGxlcgotK0U6IElEX01PREVMX0ZST01fREFUQUJBU0U9Mi4wIHJvb3Qg aHViCi0rRTogSURfTU9ERUxfSUQ9MDAwMgotK0U6IElEX1BBVEg9cGNpLTAwMDA6MDU6MDAuNAot K0U6IElEX1BBVEhfVEFHPXBjaS0wMDAwXzA1XzAwXzQKLStFOiBJRF9SRVZJU0lPTj0wNjE0Ci0r RTogSURfU0VSSUFMPUxpbnV4XzYuMTQuMC0zNy1nZW5lcmljX3hoY2ktaGNkX3hIQ0lfSG9zdF9D b250cm9sbGVyXzAwMDA6MDU6MDAuNAotK0U6IElEX1NFUklBTF9TSE9SVD0wMDAwOjA1OjAwLjQK LStFOiBJRF9VU0JfSU5URVJGQUNFUz06MDkwMDAwOgotK0U6IElEX1VTQl9NT0RFTD14SENJX0hv c3RfQ29udHJvbGxlcgotK0U6IElEX1VTQl9NT0RFTF9FTkM9eEhDSVx4MjBIb3N0XHgyMENvbnRy b2xsZXIKLStFOiBJRF9VU0JfTU9ERUxfSUQ9MDAwMgotK0U6IElEX1VTQl9SRVZJU0lPTj0wNjE0 Ci0rRTogSURfVVNCX1NFUklBTD1MaW51eF82LjE0LjAtMzctZ2VuZXJpY194aGNpLWhjZF94SENJ X0hvc3RfQ29udHJvbGxlcl8wMDAwOjA1OjAwLjQKLStFOiBJRF9VU0JfU0VSSUFMX1NIT1JUPTAw MDA6MDU6MDAuNAotK0U6IElEX1VTQl9WRU5ET1I9TGludXhfNi4xNC4wLTM3LWdlbmVyaWNfeGhj aS1oY2QKLStFOiBJRF9VU0JfVkVORE9SX0VOQz1MaW51eFx4MjA2LjE0LjAtMzctZ2VuZXJpY1x4 MjB4aGNpLWhjZAotK0U6IElEX1VTQl9WRU5ET1JfSUQ9MWQ2YgotK0U6IElEX1ZFTkRPUj1MaW51 eF82LjE0LjAtMzctZ2VuZXJpY194aGNpLWhjZAotK0U6IElEX1ZFTkRPUl9FTkM9TGludXhceDIw Ni4xNC4wLTM3LWdlbmVyaWNceDIweGhjaS1oY2QKLStFOiBJRF9WRU5ET1JfRlJPTV9EQVRBQkFT RT1MaW51eCBGb3VuZGF0aW9uCi0rRTogSURfVkVORE9SX0lEPTFkNmIKLStFOiBNQUpPUj0xODkK LStFOiBNSU5PUj0yNTYKLStFOiBQUk9EVUNUPTFkNmIvMi82MTQKLStFOiBTVUJTWVNURU09dXNi Ci0rRTogVEFHUz06c2VhdDoKLStFOiBUWVBFPTkvMC8xCi0rQTogYXV0aG9yaXplZD0xXG4KLStB OiBhdXRob3JpemVkX2RlZmF1bHQ9MVxuCi0rQTogYXZvaWRfcmVzZXRfcXVpcms9MFxuCi0rQTog YkNvbmZpZ3VyYXRpb25WYWx1ZT0xXG4KLStBOiBiRGV2aWNlQ2xhc3M9MDlcbgotK0E6IGJEZXZp Y2VQcm90b2NvbD0wMVxuCi0rQTogYkRldmljZVN1YkNsYXNzPTAwXG4KLStBOiBiTWF4UGFja2V0 U2l6ZTA9NjRcbgotK0E6IGJNYXhQb3dlcj0wbUFcbgotK0E6IGJOdW1Db25maWd1cmF0aW9ucz0x XG4KLStBOiBiTnVtSW50ZXJmYWNlcz0gMVxuCi0rQTogYmNkRGV2aWNlPTA2MTRcbgotK0E6IGJt QXR0cmlidXRlcz1lMFxuCi0rQTogYnVzbnVtPTNcbgotK0E6IGNvbmZpZ3VyYXRpb249Ci0rSDog ZGVzY3JpcHRvcnM9MTIwMTAwMDIwOTAwMDE0MDZCMUQwMjAwMTQwNjAzMDIwMTAxMDkwMjE5MDAw MTAxMDBFMDAwMDkwNDAwMDAwMTA5MDAwMDAwMDcwNTgxMDMwNDAwMEMKLStBOiBkZXY9MTg5OjI1 NlxuCi0rQTogZGV2bnVtPTFcbgotK0E6IGRldnBhdGg9MFxuCi0rTDogZHJpdmVyPS4uLy4uLy4u Ly4uLy4uL2J1cy91c2IvZHJpdmVycy91c2IKLStMOiBmaXJtd2FyZV9ub2RlPS4uLy4uLy4uLy4u L0xOWFNZU1RNOjAwL0xOWFNZQlVTOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjBjL2RldmljZToxYi9k ZXZpY2U6MWMKLStBOiBpZFByb2R1Y3Q9MDAwMlxuCi0rQTogaWRWZW5kb3I9MWQ2YlxuCi0rQTog aW50ZXJmYWNlX2F1dGhvcml6ZWRfZGVmYXVsdD0xXG4KLStBOiBsdG1fY2FwYWJsZT1ub1xuCi0r QTogbWFudWZhY3R1cmVyPUxpbnV4IDYuMTQuMC0zNy1nZW5lcmljIHhoY2ktaGNkXG4KLStBOiBt YXhjaGlsZD00XG4KLStBOiBwb3dlci9hY3RpdmVfZHVyYXRpb249OTMxMzc5OTNcbgotK0E6IHBv d2VyL2FzeW5jPWVuYWJsZWRcbgotK0E6IHBvd2VyL2F1dG9zdXNwZW5kPTBcbgotK0E6IHBvd2Vy L2F1dG9zdXNwZW5kX2RlbGF5X21zPTBcbgotK0E6IHBvd2VyL2Nvbm5lY3RlZF9kdXJhdGlvbj05 MzEzOTc1OFxuCi0rQTogcG93ZXIvY29udHJvbD1hdXRvXG4KLStBOiBwb3dlci9sZXZlbD1hdXRv XG4KLStBOiBwb3dlci9ydW50aW1lX2FjdGl2ZV9raWRzPTFcbgotK0E6IHBvd2VyL3J1bnRpbWVf YWN0aXZlX3RpbWU9OTMxMzkyMDZcbgotK0E6IHBvd2VyL3J1bnRpbWVfZW5hYmxlZD1lbmFibGVk XG4KLStBOiBwb3dlci9ydW50aW1lX3N0YXR1cz1hY3RpdmVcbgotK0E6IHBvd2VyL3J1bnRpbWVf c3VzcGVuZGVkX3RpbWU9MFxuCi0rQTogcG93ZXIvcnVudGltZV91c2FnZT0wXG4KLStBOiBwb3dl ci93YWtldXA9ZGlzYWJsZWRcbgotK0E6IHBvd2VyL3dha2V1cF9hYm9ydF9jb3VudD1cbgotK0E6 IHBvd2VyL3dha2V1cF9hY3RpdmU9XG4KLStBOiBwb3dlci93YWtldXBfYWN0aXZlX2NvdW50PVxu Ci0rQTogcG93ZXIvd2FrZXVwX2NvdW50PVxuCi0rQTogcG93ZXIvd2FrZXVwX2V4cGlyZV9jb3Vu dD1cbgotK0E6IHBvd2VyL3dha2V1cF9sYXN0X3RpbWVfbXM9XG4KLStBOiBwb3dlci93YWtldXBf bWF4X3RpbWVfbXM9XG4KLStBOiBwb3dlci93YWtldXBfdG90YWxfdGltZV9tcz1cbgotK0E6IHBy b2R1Y3Q9eEhDSSBIb3N0IENvbnRyb2xsZXJcbgotK0E6IHF1aXJrcz0weDBcbgotK0E6IHJlbW92 YWJsZT11bmtub3duXG4KLStBOiByeF9sYW5lcz0xXG4KLStBOiBzZXJpYWw9MDAwMDowNTowMC40 XG4KLStBOiBzcGVlZD00ODBcbgotK0E6IHR4X2xhbmVzPTFcbgotK0E6IHVyYm51bT05ODlcbgot K0E6IHZlcnNpb249IDIuMDBcbgotKwotK1A6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDow OC4xLzAwMDA6MDU6MDAuNAotK0U6IERSSVZFUj14aGNpX2hjZAotK0U6IElEX01PREVMX0ZST01f REFUQUJBU0U9UmVub2lyL0NlemFubmUgVVNCIDMuMQotK0U6IElEX1BBVEg9cGNpLTAwMDA6MDU6 MDAuNAotK0U6IElEX1BBVEhfVEFHPXBjaS0wMDAwXzA1XzAwXzQKLStFOiBJRF9QQ0lfQ0xBU1Nf RlJPTV9EQVRBQkFTRT1TZXJpYWwgYnVzIGNvbnRyb2xsZXIKLStFOiBJRF9QQ0lfSU5URVJGQUNF X0ZST01fREFUQUJBU0U9WEhDSQotK0U6IElEX1BDSV9TVUJDTEFTU19GUk9NX0RBVEFCQVNFPVVT QiBjb250cm9sbGVyCi0rRTogSURfVkVORE9SX0ZST01fREFUQUJBU0U9QWR2YW5jZWQgTWljcm8g RGV2aWNlcywgSW5jLiBbQU1EXQotK0U6IE1PREFMSUFTPXBjaTp2MDAwMDEwMjJkMDAwMDE2Mzlz djAwMDAxN0FBc2QwMDAwMzgyRmJjMENzYzAzaTMwCi0rRTogUENJX0NMQVNTPUMwMzMwCi0rRTog UENJX0lEPTEwMjI6MTYzOQotK0U6IFBDSV9TTE9UX05BTUU9MDAwMDowNTowMC40Ci0rRTogUENJ X1NVQlNZU19JRD0xN0FBOjM4MkYKLStFOiBTVUJTWVNURU09cGNpCi0rQTogYXJpX2VuYWJsZWQ9 MFxuCi0rQTogYnJva2VuX3Bhcml0eV9zdGF0dXM9MFxuCi0rQTogY2xhc3M9MHgwYzAzMzBcbgot K0g6IGNvbmZpZz0yMjEwMzkxNjA3MDQxMDAwMDAzMDAzMEMxMDAwODAwMDA0MDA0MEQwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUExNzJGMzgwMDAwMDAw MDQ4MDAwMDAwMDAwMDAwMDBGRjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTUwMDgwMEFBMTcyRjM4 MDE2NDAzQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMTIwMDAwMDEwQTAwMjAwQTE4RjAwMDAx MDI5MDAwMDAzMEQ0MDAwNDAwMDAzMTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFG MDA3MTAwMDAwMDAwMDAxRTAwODAwMTAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDA1QzA4NjAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMTAw MDc4MDAwRTAwRjAwMDBGMDBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDBCMDAwMTJBMDEwMDAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDAwMDEwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotK0E6 IGNvbnNpc3RlbnRfZG1hX21hc2tfYml0cz02NFxuCi0rQTogY3VycmVudF9saW5rX3NwZWVkPTgu MCBHVC9zIFBDSWVcbgotK0E6IGN1cnJlbnRfbGlua193aWR0aD0xNlxuCi0rQTogZDNjb2xkX2Fs bG93ZWQ9MVxuCi0rQTogZGJjPWRpc2FibGVkXG4KLStBOiBkYmNfYkludGVyZmFjZVByb3RvY29s PTAxXG4KLStBOiBkYmNfYmNkRGV2aWNlPTAwMTBcbgotK0E6IGRiY19pZFByb2R1Y3Q9MDAxMFxu Ci0rQTogZGJjX2lkVmVuZG9yPTFkNmJcbgotK0E6IGRiY19wb2xsX2ludGVydmFsX21zPTY0XG4K LStBOiBkZXZpY2U9MHgxNjM5XG4KLStBOiBkbWFfbWFza19iaXRzPTY0XG4KLStMOiBkcml2ZXI9 Li4vLi4vLi4vLi4vYnVzL3BjaS9kcml2ZXJzL3hoY2lfaGNkCi0rQTogZHJpdmVyX292ZXJyaWRl PShudWxsKVxuCi0rQTogZW5hYmxlPTFcbgotK0w6IGZpcm13YXJlX25vZGU9Li4vLi4vLi4vTE5Y U1lTVE06MDAvTE5YU1lCVVM6MDAvUE5QMEEwODowMC9kZXZpY2U6MGMvZGV2aWNlOjFiCi0rTDog aW9tbXU9Li4vLi4vMDAwMDowMDowMC4yL2lvbW11L2l2aGQwCi0rTDogaW9tbXVfZ3JvdXA9Li4v Li4vLi4vLi4va2VybmVsL2lvbW11X2dyb3Vwcy8yMAotK0E6IGlycT00NFxuCi0rQTogbGluay9s MHNfYXNwbT0wXG4KLStBOiBsaW5rL2wxX2FzcG09MFxuCi0rQTogbG9jYWxfY3B1bGlzdD0wLTEx XG4KLStBOiBsb2NhbF9jcHVzPWZmZlxuCi0rQTogbWF4X2xpbmtfc3BlZWQ9OC4wIEdUL3MgUENJ ZVxuCi0rQTogbWF4X2xpbmtfd2lkdGg9MTZcbgotK0E6IG1vZGFsaWFzPXBjaTp2MDAwMDEwMjJk MDAwMDE2MzlzdjAwMDAxN0FBc2QwMDAwMzgyRmJjMENzYzAzaTMwXG4KLStBOiBtc2lfYnVzPTFc bgotK0E6IG1zaV9pcnFzLzQ1PW1zaXhcbgotK0E6IG1zaV9pcnFzLzQ2PW1zaXhcbgotK0E6IG1z aV9pcnFzLzQ3PW1zaXhcbgotK0E6IG1zaV9pcnFzLzQ4PW1zaXhcbgotK0E6IG1zaV9pcnFzLzQ5 PW1zaXhcbgotK0E6IG1zaV9pcnFzLzUwPW1zaXhcbgotK0E6IG1zaV9pcnFzLzUxPW1zaXhcbgot K0E6IG1zaV9pcnFzLzUyPW1zaXhcbgotK0E6IG51bWFfbm9kZT0tMVxuCi0rQTogcG9vbHM9cG9v bGluZm8gLSAwLjFcbmJ1ZmZlci0yMDQ4ICAgICAgICAgMCAgICAwIDIwNDggIDBcbmJ1ZmZlci01 MTIgICAgICAgICAgMCAgICAwICA1MTIgIDBcbmJ1ZmZlci0xMjggICAgICAgICAgMCAgICAwICAx MjggIDBcbmJ1ZmZlci0zMiAgICAgICAgICAgMCAgICAwICAgMzIgIDBcbnhIQ0kgMUtCIHN0cmVh bSBjdHggYXJyYXlzICAgIDAgICAgMCAxMDI0ICAwXG54SENJIDI1NiBieXRlIHN0cmVhbSBjdHgg YXJyYXlzICAgIDAgICAgMCAgMjU2ICAwXG54SENJIGlucHV0L291dHB1dCBjb250ZXh0cyAgICA0 ICAgIDUgMjExMiAgNVxueEhDSSByaW5nIHNlZ21lbnRzICAgMjMgICAyMyA0MDk2IDIzXG5idWZm ZXItMjA0OCAgICAgICAgIDAgICAgMCAyMDQ4ICAwXG5idWZmZXItNTEyICAgICAgICAgIDAgICAg MCAgNTEyICAwXG5idWZmZXItMTI4ICAgICAgICAgIDAgICAgMCAgMTI4ICAwXG5idWZmZXItMzIg ICAgICAgICAgIDAgICAgMCAgIDMyICAwXG4KLStBOiBwb3dlci9hc3luYz1lbmFibGVkXG4KLStB OiBwb3dlci9jb250cm9sPW9uXG4KLStBOiBwb3dlci9ydW50aW1lX2FjdGl2ZV9raWRzPTFcbgot K0E6IHBvd2VyL3J1bnRpbWVfYWN0aXZlX3RpbWU9OTMxMzk1MjNcbgotK0E6IHBvd2VyL3J1bnRp bWVfZW5hYmxlZD1mb3JiaWRkZW5cbgotK0E6IHBvd2VyL3J1bnRpbWVfc3RhdHVzPWFjdGl2ZVxu Ci0rQTogcG93ZXIvcnVudGltZV9zdXNwZW5kZWRfdGltZT0wXG4KLStBOiBwb3dlci9ydW50aW1l X3VzYWdlPTFcbgotK0E6IHBvd2VyL3dha2V1cD1lbmFibGVkXG4KLStBOiBwb3dlci93YWtldXBf YWJvcnRfY291bnQ9MFxuCi0rQTogcG93ZXIvd2FrZXVwX2FjdGl2ZT0wXG4KLStBOiBwb3dlci93 YWtldXBfYWN0aXZlX2NvdW50PTBcbgotK0E6IHBvd2VyL3dha2V1cF9jb3VudD0wXG4KLStBOiBw b3dlci93YWtldXBfZXhwaXJlX2NvdW50PTBcbgotK0E6IHBvd2VyL3dha2V1cF9sYXN0X3RpbWVf bXM9MFxuCi0rQTogcG93ZXIvd2FrZXVwX21heF90aW1lX21zPTBcbgotK0E6IHBvd2VyL3dha2V1 cF90b3RhbF90aW1lX21zPTBcbgotK0E6IHBvd2VyX3N0YXRlPUQwXG4KLStBOiByZXNldF9tZXRo b2Q9cG1cbgotK0E6IHJlc291cmNlPTB4MDAwMDAwMDBkMDQwMDAwMCAweDAwMDAwMDAwZDA0ZmZm ZmYgMHgwMDAwMDAwMDAwMTQwMjA0XG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAw MDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAw MDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAw MDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAw MDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAw MDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAw MDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAw MDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAw MDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAw MDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAw MDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAw MDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAw MDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4KLStBOiByZXZpc2lvbj0weDAwXG4K LStBOiBzdWJzeXN0ZW1fZGV2aWNlPTB4MzgyZlxuCi0rQTogc3Vic3lzdGVtX3ZlbmRvcj0weDE3 YWFcbgotK0E6IHZlbmRvcj0weDEwMjJcbgotKwotK1A6IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAw MDowMDowOC4xCi0rRTogRFJJVkVSPXBjaWVwb3J0Ci0rRTogSURfTU9ERUxfRlJPTV9EQVRBQkFT RT1SZW5vaXIgSW50ZXJuYWwgUENJZSBHUFAgQnJpZGdlIHRvIEJ1cwotK0U6IElEX1BBVEg9cGNp LTAwMDA6MDA6MDguMQotK0U6IElEX1BBVEhfVEFHPXBjaS0wMDAwXzAwXzA4XzEKLStFOiBJRF9Q Q0lfQ0xBU1NfRlJPTV9EQVRBQkFTRT1CcmlkZ2UKLStFOiBJRF9QQ0lfSU5URVJGQUNFX0ZST01f REFUQUJBU0U9Tm9ybWFsIGRlY29kZQotK0U6IElEX1BDSV9TVUJDTEFTU19GUk9NX0RBVEFCQVNF PVBDSSBicmlkZ2UKLStFOiBJRF9WRU5ET1JfRlJPTV9EQVRBQkFTRT1BZHZhbmNlZCBNaWNybyBE ZXZpY2VzLCBJbmMuIFtBTURdCi0rRTogTU9EQUxJQVM9cGNpOnYwMDAwMTAyMmQwMDAwMTYzNXN2 MDAwMDEwMjJzZDAwMDAxNjM1YmMwNnNjMDRpMDAKLStFOiBQQ0lfQ0xBU1M9NjA0MDAKLStFOiBQ Q0lfSUQ9MTAyMjoxNjM1Ci0rRTogUENJX1NMT1RfTkFNRT0wMDAwOjAwOjA4LjEKLStFOiBQQ0lf U1VCU1lTX0lEPTEwMjI6MTYzNQotK0U6IFNVQlNZU1RFTT1wY2kKLStBOiBhcmlfZW5hYmxlZD0w XG4KLStBOiBicm9rZW5fcGFyaXR5X3N0YXR1cz0wXG4KLStBOiBjbGFzcz0weDA2MDQwMFxuCi0r SDogY29uZmlnPTIyMTAzNTE2MDcwNDEwMDAwMDAwMDQwNjEwMDA4MTAwMDAwMDAwMDAwMDAwMDAw MDAwMDUwNTAwMTExMTAwMDAzMEQwNjBEMDAxRTAxMUYwRkMwMDAwMDBGQzAwMDAwMDAwMDAwMDAw NTAwMDAwMDAwMDAwMDAwMEZGMDEwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MTU4MDNDODAwMDAwMDAwMTBBMDQyMDAyMjgwMDAwMDEwMjkwMDAwMDMwRDcwMDA0MDBDMDMzMTAw MDAwMDAwMDAwMDQwMDAxODAwMDEwMDAwMDAwMDAwMDAwMDMxMDAwMDAwMDAwMDFFMDA4MDAxNDMw MDFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDMDgxMDAwMDAw RTBGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMDAw MDAwMjIxMDM1MTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDdDQTAwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMEIwMDAxMjcwMTAwMDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDE5MDAwMTJBMDAwMDAwMDAwMDAwMDAwMDdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3 RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0Y3RjdGN0YwMDAwMDAwMDBEMDAwMTQwNUYwMDFE MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMjUwMDAxNDEwMTAwMDA4MDAxMDAwMDgwMDAwMDAwMDAyNjAwMDE0NDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkZGRkZGRkZGRkZG RkZGRkZGRkZGRkZGRkZGRkZGRkYyNzAwMDEwMDAwMDAwMDAwMzg5QzAwMDAzODlDMDAwMDM4OUMw MDAwMzg5QzAwMDAzODlDMDAwMDM4OUMwMDAwMzg5QzAwMDAzODlDMDAwMDM4OUMwMDAwMzg5QzAw MDAzODlDMDAwMDM4OUMwMDAwMzg5QzAwMDAzODlDMDAwMDM4OUMwMDAwMzg5QzAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0rQTog Y29uc2lzdGVudF9kbWFfbWFza19iaXRzPTMyXG4KLStBOiBjdXJyZW50X2xpbmtfc3BlZWQ9OC4w IEdUL3MgUENJZVxuCi0rQTogY3VycmVudF9saW5rX3dpZHRoPTE2XG4KLStBOiBkM2NvbGRfYWxs b3dlZD0xXG4KLStBOiBkZXZpY2U9MHgxNjM1XG4KLStBOiBkbWFfbWFza19iaXRzPTMyXG4KLStM OiBkcml2ZXI9Li4vLi4vLi4vYnVzL3BjaS9kcml2ZXJzL3BjaWVwb3J0Ci0rQTogZHJpdmVyX292 ZXJyaWRlPShudWxsKVxuCi0rQTogZW5hYmxlPTJcbgotK0w6IGZpcm13YXJlX25vZGU9Li4vLi4v TE5YU1lTVE06MDAvTE5YU1lCVVM6MDAvUE5QMEEwODowMC9kZXZpY2U6MGMKLStMOiBpb21tdT0u Li8wMDAwOjAwOjAwLjIvaW9tbXUvaXZoZDAKLStMOiBpb21tdV9ncm91cD0uLi8uLi8uLi9rZXJu ZWwvaW9tbXVfZ3JvdXBzLzgKLStBOiBpcnE9MzNcbgotK0E6IGxvY2FsX2NwdWxpc3Q9MC0xMVxu Ci0rQTogbG9jYWxfY3B1cz1mZmZcbgotK0E6IG1heF9saW5rX3NwZWVkPTguMCBHVC9zIFBDSWVc bgotK0E6IG1heF9saW5rX3dpZHRoPTE2XG4KLStBOiBtb2RhbGlhcz1wY2k6djAwMDAxMDIyZDAw MDAxNjM1c3YwMDAwMTAyMnNkMDAwMDE2MzViYzA2c2MwNGkwMFxuCi0rQTogbXNpX2J1cz0xXG4K LStBOiBtc2lfaXJxcy8zMz1tc2lcbgotK0E6IG51bWFfbm9kZT0tMVxuCi0rQTogcG93ZXIvYXN5 bmM9ZW5hYmxlZFxuCi0rQTogcG93ZXIvYXV0b3N1c3BlbmRfZGVsYXlfbXM9MTAwXG4KLStBOiBw b3dlci9jb250cm9sPWF1dG9cbgotK0E6IHBvd2VyL3J1bnRpbWVfYWN0aXZlX2tpZHM9NVxuCi0r QTogcG93ZXIvcnVudGltZV9hY3RpdmVfdGltZT05MzEzOTUzN1xuCi0rQTogcG93ZXIvcnVudGlt ZV9lbmFibGVkPWVuYWJsZWRcbgotK0E6IHBvd2VyL3J1bnRpbWVfc3RhdHVzPWFjdGl2ZVxuCi0r QTogcG93ZXIvcnVudGltZV9zdXNwZW5kZWRfdGltZT0wXG4KLStBOiBwb3dlci9ydW50aW1lX3Vz YWdlPTBcbgotK0E6IHBvd2VyL3dha2V1cD1kaXNhYmxlZFxuCi0rQTogcG93ZXIvd2FrZXVwX2Fi b3J0X2NvdW50PVxuCi0rQTogcG93ZXIvd2FrZXVwX2FjdGl2ZT1cbgotK0E6IHBvd2VyL3dha2V1 cF9hY3RpdmVfY291bnQ9XG4KLStBOiBwb3dlci93YWtldXBfY291bnQ9XG4KLStBOiBwb3dlci93 YWtldXBfZXhwaXJlX2NvdW50PVxuCi0rQTogcG93ZXIvd2FrZXVwX2xhc3RfdGltZV9tcz1cbgot K0E6IHBvd2VyL3dha2V1cF9tYXhfdGltZV9tcz1cbgotK0E6IHBvd2VyL3dha2V1cF90b3RhbF90 aW1lX21zPVxuCi0rQTogcG93ZXJfc3RhdGU9RDBcbgotK0E6IHJlc2V0X21ldGhvZD1wbVxuCi0r QTogcmVzb3VyY2U9MHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAw MDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAw MDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAw MDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAweDAw MDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgw MDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwIDB4 MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAw eDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAg MHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAw IDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAw MCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAw MDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4weDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAw MDAwIDB4MDAwMDAwMDAwMDAwMDAwMFxuMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAw MDAwMCAweDAwMDAwMDAwMDAwMDAwMDBcbjB4MDAwMDAwMDAwMDAwMTAwMCAweDAwMDAwMDAwMDAw MDFmZmYgMHgwMDAwMDAwMDAwMDAwMTAxXG4weDAwMDAwMDAwZDAzMDAwMDAgMHgwMDAwMDAwMGQw NmZmZmZmIDB4MDAwMDAwMDAwMDAwMDIwMFxuMHgwMDAwMDBmY2UwMDAwMDAwIDB4MDAwMDAwZmNm MDFmZmZmZiAweDAwMDAwMDAwMDAxMDIyMDFcbjB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAw MDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwXG4KLStBOiByZXZpc2lvbj0weDAwXG4KLStBOiBz ZWNvbmRhcnlfYnVzX251bWJlcj01XG4KLStBOiBzdWJvcmRpbmF0ZV9idXNfbnVtYmVyPTVcbgot K0E6IHN1YnN5c3RlbV9kZXZpY2U9MHgxNjM1XG4KLStBOiBzdWJzeXN0ZW1fdmVuZG9yPTB4MTAy MlxuCi0rQTogdmVuZG9yPTB4MTAyMlxuCi0rCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVp bGQgYi90ZXN0cy9tZXNvbi5idWlsZAotaW5kZXggMDdjOTI0YmUuLmI2ZThiZjk1IDEwMDY0NAot LS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKLSsrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCi1AQCAtNTIs NiArNTIsNyBAQCBkcml2ZXJzX3Rlc3RzID0gWwotICAgICAnbmIxMDEwJywKLSAgICAgJ2VnaXMw NTcwJywKLSAgICAgJ2VnaXNtb2MnLAotKyAgICAnZWdpc19ldHU5MDUnLAotICAgICAnZWdpc21v Yy0wNWExJywKLSAgICAgJ2VnaXNtb2MtMDU4NicsCi0gICAgICdlZ2lzbW9jLTA1ODcnLAotLS0g Ci1HaXRMYWIKLQotCi1Gcm9tIGMyMTZmMDRkZDFmZDFjZmUyMWE3MWQyNmJmNmUxN2ZjMWEzNzk4 M2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2 aXNhbj0yMD0yOFRyZXZpPUMzPUIxbz0yOT89IDxtYWlsQDN2MW4wLm5ldD4KLURhdGU6IFR1ZSwg OSBKdW4gMjAyNiAxNDoxOToxNyArMDIwMAotU3ViamVjdDogW1BBVENIIDAyLzEzXSBlZ2lzX2V0 dTkwNTogRG8gbm90IGxlYWsgdGhlIHRyYW5zZmVyIGJ1ZmZlcgotCi1UaGUgYnVmZmVyIGlzIG5v dyBvd25lZCBieSB0aGUgZGF0YSwgc28gd2Ugc2hvdWxkIG5vdCBzdGVhbCBpdCB3aGVuCi1wYXNz aW5nIGl0IGFyb3VuZCBvciB3ZSdsbCBsZWFrLgotLS0tCi0gbGliZnByaW50L2RyaXZlcnMvZWdp c21vYy9lZ2lzX2V0dTkwNS5jIHwgNiArKysrLS0KLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMv ZWdpc21vYy9lZ2lzX2V0dTkwNS5jIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0 dTkwNS5jCi1pbmRleCBiZTBjNmUwNS4uZjkxZjA0NzIgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQv ZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLSsrKyBiL2xpYmZwcmludC9kcml2ZXJzL2Vn aXNtb2MvZWdpc19ldHU5MDUuYwotQEAgLTIwNyw3ICsyMDcsOCBAQCBlZ2lzX2V0dTkwNV9jbWRf cmVjZWl2ZV9jYiAoRnBpVXNiVHJhbnNmZXIgKnRyYW5zZmVyLAotICAgICAgIGZwaV9zc21fbWFy a19mYWlsZWQgKHRyYW5zZmVyLT5zc20sIGVycm9yKTsKLSAgICAgICByZXR1cm47Ci0gICAgIH0K LS0gIGlmIChkYXRhID09IE5VTEwgfHwgdHJhbnNmZXItPmFjdHVhbF9sZW5ndGggPCBlZ2lzX2V0 dTkwNV9yZWFkX3ByZWZpeF9sZW4pCi0rCi0rICBpZiAodHJhbnNmZXItPmFjdHVhbF9sZW5ndGgg PCBlZ2lzX2V0dTkwNV9yZWFkX3ByZWZpeF9sZW4pCi0gICAgIHsKLSAgICAgICBmcGlfc3NtX21h cmtfZmFpbGVkICh0cmFuc2Zlci0+c3NtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZw aV9kZXZpY2VfZXJyb3JfbmV3IChGUF9ERVZJQ0VfRVJST1JfR0VORVJBTCkpOwotQEAgLTIxNiw2 ICsyMTcsNyBAQCBlZ2lzX2V0dTkwNV9jbWRfcmVjZWl2ZV9jYiAoRnBpVXNiVHJhbnNmZXIgKnRy YW5zZmVyLAotIAotICAgLyogU3RvcmUgdGhlIHJlc3BvbnNlIGRhdGEgYW5kIGxldCB0aGUgY21k X3NzbV9kb25lIGNhbGxiYWNrIGludm9rZQotICAgICogdGhlIGFjdHVhbCBjYWxsYmFjayB3aXRo IHRoZSBzdG9yZWQgZGF0YSAqLwotKyAgZ19hc3NlcnQgKGRhdGEgIT0gTlVMTCk7Ci0gICBkYXRh LT5idWZmZXJfaW4gPSBnX3N0ZWFsX3BvaW50ZXIgKCZ0cmFuc2Zlci0+YnVmZmVyKTsKLSAgIGRh dGEtPmxlbmd0aF9pbiA9IHRyYW5zZmVyLT5hY3R1YWxfbGVuZ3RoOwotIAotQEAgLTI4Miw3ICsy ODQsNyBAQCBlZ2lzX2V0dTkwNV9jbWRfc3NtX2RvbmUgKEZwaVNzbSAgICpzc20sCi0gICBpZiAo ZGF0YSAmJiBkYXRhLT5jYWxsYmFjaykKLSAgICAgewotICAgICAgIGRhdGEtPmNhbGxiYWNrIChk ZXZpY2UsCi0tICAgICAgICAgICAgICAgICAgICAgIGdfc3RlYWxfcG9pbnRlciAoJmRhdGEtPmJ1 ZmZlcl9pbiksCi0rICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPmJ1ZmZlcl9pbiwKLSAgICAg ICAgICAgICAgICAgICAgICAgZGF0YS0+bGVuZ3RoX2luLAotICAgICAgICAgICAgICAgICAgICAg ICBnX3N0ZWFsX3BvaW50ZXIgKCZsb2NhbF9lcnJvcikpOwotICAgICB9Ci0tLSAKLUdpdExhYgot Ci0KLUZyb20gZmRiYzllZTY1NThhNTRkYzM5M2E1ZGZhMDRmNjI2YmU4MzkzMTE2YyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9NYXJjbz0yMFRyZXZpc2FuPTIwPTI4 VHJldmk9QzM9QjFvPTI5Pz0gPG1haWxAM3YxbjAubmV0PgotRGF0ZTogVHVlLCA5IEp1biAyMDI2 IDEzOjUxOjI4ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMDMvMTNdIGVnaXNfZXR1OTA1OiBSZW1v dmUgdW51c2VkIHRyYW5zZmVyCi0KLS0tLQotIGxpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdp c19ldHU5MDUuYyB8IDExIC0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDExIGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkw NS5jIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1pbmRleCBmOTFm MDQ3Mi4uMGJiOWE2YmEgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2Vn aXNfZXR1OTA1LmMKLSsrKyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUu YwotQEAgLTE0NDUsOCArMTQ0NSw2IEBAIHN0YXRpYyB2b2lkCi0gZWdpc19ldHU5MDVfZGV2X2lu aXRfaGFuZGxlciAoRnBpU3NtICAgKnNzbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGcERldmljZSAqZGV2aWNlKQotIHsKLS0gIGdfYXV0b3B0cihGcGlVc2JUcmFuc2ZlcikgdHJh bnNmZXIgPSBOVUxMOwotLQotICAgc3dpdGNoIChmcGlfc3NtX2dldF9jdXJfc3RhdGUgKHNzbSkp Ci0gICAgIHsKLSAgICAgY2FzZSBERVZfR0VUX0ZXX1ZFUlNJT046Ci1AQCAtMTQ2MiwxNSArMTQ2 MCw2IEBAIGVnaXNfZXR1OTA1X2Rldl9pbml0X2hhbmRsZXIgKEZwaVNzbSAgICpzc20sCi0gICAg IGRlZmF1bHQ6Ci0gICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQgKCk7Ci0gICAgIH0KLS0KLS0g IHRyYW5zZmVyID0gZnBpX3VzYl90cmFuc2Zlcl9uZXcgKGRldmljZSk7Ci0tICB0cmFuc2Zlci0+ c3NtID0gc3NtOwotLSAgdHJhbnNmZXItPnNob3J0X2lzX2Vycm9yID0gVFJVRTsKLS0gIGZwaV91 c2JfdHJhbnNmZXJfc3VibWl0IChnX3N0ZWFsX3BvaW50ZXIgKCZ0cmFuc2ZlciksCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfVVNCX0NPTlRST0xfVElNRU9VVCwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2dldF9jYW5jZWxsYWJsZSAoZGV2 aWNlKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfc3NtX3VzYl90cmFuc2Zlcl9j YiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSB9Ci0gCi0gc3RhdGljIHZv aWQKLS0tIAotR2l0TGFiCi0KLQotRnJvbSBmNTgwNjgyNWRlODAzYTdiZWNkMDJiNDlhM2Y0YTZh OGUzMjU3OWZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01hcmNv PTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1EYXRl OiBUdWUsIDkgSnVuIDIwMjYgMTM6NTY6MDIgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwNC8xM10g ZWdpc19ldHU5MDU6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKLQotLS0tCi0gbGliZnByaW50L2Ry aXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIHwgMSAtCi0gMSBmaWxlIGNoYW5nZWQsIDEgZGVs ZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19l dHU5MDUuYyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotaW5kZXgg MGJiOWE2YmEuLjNkNTJiZjg5IDEwMDY0NAotLS0tIGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21v Yy9lZ2lzX2V0dTkwNS5jCi0rKysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1 OTA1LmMKLUBAIC05NDMsNyArOTQzLDYgQEAgZWdpc19ldHU5MDVfZ2V0X2NoZWNrX2NtZCAoRnBE ZXZpY2UgKmRldmljZSwKLSAgIGZwX2RiZyAoIkdldCBjaGVjayBjb21tYW5kIik7Ci0gICBGcGlE ZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsK LSAgIGdfYXV0byhGcGlCeXRlV3JpdGVyKSB3cml0ZXIgPSB7MH07Ci0tICBnX2F1dG9mcmVlIGd1 Y2hhciAqcmVzdWx0ID0gTlVMTDsKLSAgIGdib29sZWFuIHdyaXR0ZW4gPSBUUlVFOwotIAotICAg LyoKLS0tIAotR2l0TGFiCi0KLQotRnJvbSAxMmFmMjVkNDNiODkwMDc3Y2MxM2EwNTk3Yjc3MmM5 NDAxY2E2MjczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01hcmNv PTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1EYXRl OiBNb24sIDggSnVuIDIwMjYgMTM6Mjg6NTAgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwNS8xM10g ZWdpc19ldHU5MDU6IFNldCBzaG9ydCBlcnJvciB1c2luZyBmdW5jdGlvbgotCi0tLS0KLSBsaWJm cHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgfCA0ICsrLS0KLSAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGli ZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIGIvbGliZnByaW50L2RyaXZlcnMv ZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1pbmRleCAzZDUyYmY4OS4uNGU1ODUxNWMgMTAwNjQ0Ci0t LS0gYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLSsrKyBiL2xpYmZw cmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotQEAgLTk3LDcgKzk3LDcgQEAgZWdp c19ldHU5MDVfd2FpdF9maW5nZXJfb25fc2Vuc29yIChGcGlTc20gICAqc3NtLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfVVNCX0lOVEVSUlVQVF9JTl9S RUNWX0xFTkdUSCk7Ci0gICB0cmFuc2Zlci0+c3NtID0gc3NtOwotICAgLyogSW50ZXJydXB0IG9u IHRoaXMgZGV2aWNlIGFsd2F5cyByZXR1cm5zIDEgYnl0ZSBzaG9ydDsgdGhpcyBpcyBleHBlY3Rl ZCAqLwotLSAgdHJhbnNmZXItPnNob3J0X2lzX2Vycm9yID0gRkFMU0U7Ci0rICBmcGlfdXNiX3Ry YW5zZmVyX3NldF9zaG9ydF9lcnJvciAodHJhbnNmZXIsIEZBTFNFKTsKLSAKLSAgIGZwaV9kZXZp Y2VfcmVwb3J0X2Zpbmdlcl9zdGF0dXMgKGRldmljZSwgRlBfRklOR0VSX1NUQVRVU19ORUVERUQp OwotIAotQEAgLTM4Miw3ICszODIsNyBAQCBlZ2lzX2V0dTkwNV9leGVjX2NtZCAoRnBEZXZpY2Ug ICAgICAgICAqZGV2aWNlLAotICAgICB9Ci0gCi0gICB0cmFuc2ZlciA9IGZwaV91c2JfdHJhbnNm ZXJfbmV3IChkZXZpY2UpOwotLSAgdHJhbnNmZXItPnNob3J0X2lzX2Vycm9yID0gVFJVRTsKLSsg IGZwaV91c2JfdHJhbnNmZXJfc2V0X3Nob3J0X2Vycm9yICh0cmFuc2ZlciwgVFJVRSk7Ci0gICB0 cmFuc2Zlci0+c3NtID0gc2VsZi0+Y21kX3NzbTsKLSAKLSAgIGZwaV91c2JfdHJhbnNmZXJfZmls bF9idWxrX2Z1bGwgKHRyYW5zZmVyLAotLS0gCi1HaXRMYWIKLQotCi1Gcm9tIDQyZjBiOTZjMTAz MTk1YTZhN2ZhNmI0NTI1OGI3MmUzOTNjOTA3OTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNhbj0yMD0yOFRyZXZpPUMzPUIxbz0yOT89IDxt YWlsQDN2MW4wLm5ldD4KLURhdGU6IE1vbiwgOCBKdW4gMjAyNiAxMzozMTo1OCArMDIwMAotU3Vi amVjdDogW1BBVENIIDA2LzEzXSBlZ2lzX2V0dTkwNTogUmVseSBvbiBkZWZhdWx0IGRldmljZSBj YW5jZWxsYWJsZSBmb3IgYWxsCi0gdGhlIGFjdGlvbnMKLQotSSBkb24ndCBzZWUgYSByZWFzb24g d2h5IHdlIHNob3VsZCByZWx5IG9uIGEgZGlmZmVyZW50IGNhbmNlbGxhYmxlIGZvcgotaW50ZXJy dXB0cywgYnV0IGhhcHB5IHRvIGxlYXJuIG1vcmUgYWJvdXQgdGhpcwotLS0tCi0gbGliZnByaW50 L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIHwgMzMgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMzIgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgYi9s aWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLWluZGV4IDRlNTg1MTVjLi4z YzFkY2Y3MyAxMDA2NDQKLS0tLSBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5 MDUuYwotKysrIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1AQCAt MzMsNyArMzMsNiBAQCBzdHJ1Y3QgX0ZwaURldmljZUVnaXNFdHU5MDUKLSAgIEZwaVNzbSAgICAg ICAgICp0YXNrX3NzbTsKLSAgIEZwaVNzbSAgICAgICAgICpjbWRfc3NtOwotICAgRnBpVXNiVHJh bnNmZXIgKmNtZF90cmFuc2ZlcjsKLS0gIEdDYW5jZWxsYWJsZSAgICppbnRlcnJ1cHRfY2FuY2Vs bGFibGU7Ci0gICBHUHRyQXJyYXkgICAgICAqZW5yb2xsZWRfaWRzOwotICAgZ2ludCAgICAgICAg ICAgIG1heF9lbnJvbGxfc3RhZ2VzOwotICAgZ3VpbnQ4ICAgICAgICAgIHNpZFtFR0lTX0VUVTkw NV9GSU5HRVJQUklOVF9EQVRBX1NJWkVdOwotQEAgLTg5LDggKzg4LDYgQEAgZWdpc19ldHU5MDVf d2FpdF9maW5nZXJfb25fc2Vuc29yIChGcGlTc20gICAqc3NtLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRnBEZXZpY2UgKmRldmljZSkKLSB7Ci0gICBmcF9kYmcgKCJXYWl0 IGZvciBmaW5nZXIgb24gc2Vuc29yIik7Ci0tICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0g RlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLS0KLSAgIGdfYXV0b3B0cihGcGlVc2JU cmFuc2ZlcikgdHJhbnNmZXIgPSBmcGlfdXNiX3RyYW5zZmVyX25ldyAoZGV2aWNlKTsKLSAKLSAg IGZwaV91c2JfdHJhbnNmZXJfZmlsbF9pbnRlcnJ1cHQgKHRyYW5zZmVyLCBFR0lTX0VUVTkwNV9F UF9DTURfSU5URVJSVVBUX0lOLAotQEAgLTEwMyw3ICsxMDAsNyBAQCBlZ2lzX2V0dTkwNV93YWl0 X2Zpbmdlcl9vbl9zZW5zb3IgKEZwaVNzbSAgICpzc20sCi0gCi0gICBmcGlfdXNiX3RyYW5zZmVy X3N1Ym1pdCAoZ19zdGVhbF9wb2ludGVyICgmdHJhbnNmZXIpLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVHSVNfRVRVOTA1X1VTQl9JTlRFUlJVUFRfVElNRU9VVCwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLT5pbnRlcnJ1cHRfY2FuY2VsbGFibGUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9nZXRfY2FuY2VsbGFibGUgKGRldmljZSksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdpc19ldHU5MDVfZmluZ2VyX29uX3NlbnNvcl9j YiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSB9Ci1AQCAtMTU1MSwzNyAr MTU0OCwxMSBAQCBlZ2lzX2V0dTkwNV9vcGVuIChGcERldmljZSAqZGV2aWNlKQotICAgZnBpX3Nz bV9zdGFydCAoc2VsZi0+dGFza19zc20sIGVnaXNfZXR1OTA1X2Rldl9pbml0X2RvbmUpOwotIH0K LSAKLS1zdGF0aWMgdm9pZAotLWVnaXNfZXR1OTA1X2NhbmNlbCAoRnBEZXZpY2UgKmRldmljZSkK LS17Ci0tICBmcF9kYmcgKCJDYW5jZWwiKTsKLS0gIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYg PSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChkZXZpY2UpOwotLQotLSAgZ19jYW5jZWxsYWJsZV9j YW5jZWwgKHNlbGYtPmludGVycnVwdF9jYW5jZWxsYWJsZSk7Ci0tICBnX2NsZWFyX29iamVjdCAo JnNlbGYtPmludGVycnVwdF9jYW5jZWxsYWJsZSk7Ci0tICBzZWxmLT5pbnRlcnJ1cHRfY2FuY2Vs bGFibGUgPSBnX2NhbmNlbGxhYmxlX25ldyAoKTsKLS19Ci0tCi0tc3RhdGljIHZvaWQKLS1lZ2lz X2V0dTkwNV9zdXNwZW5kIChGcERldmljZSAqZGV2aWNlKQotLXsKLS0gIGZwX2RiZyAoIlN1c3Bl bmQiKTsKLS0KLS0gIGVnaXNfZXR1OTA1X2NhbmNlbCAoZGV2aWNlKTsKLS0gIGdfY2FuY2VsbGFi bGVfY2FuY2VsIChmcGlfZGV2aWNlX2dldF9jYW5jZWxsYWJsZSAoZGV2aWNlKSk7Ci0tICBmcGlf ZGV2aWNlX3N1c3BlbmRfY29tcGxldGUgKGRldmljZSwgTlVMTCk7Ci0tfQotLQotIHN0YXRpYyB2 b2lkCi0gZWdpc19ldHU5MDVfY2xvc2UgKEZwRGV2aWNlICpkZXZpY2UpCi0gewotICAgZ19hdXRv cHRyKEdFcnJvcikgZXJyb3IgPSBOVUxMOwotICAgZnBfZGJnICgiQ2xvc2luZyBkZXZpY2UiKTsK LS0gIEZwaURldmljZUVnaXNFdHU5MDUgKnNlbGYgPSBGUElfREVWSUNFX0VHSVNfRVRVOTA1IChk ZXZpY2UpOwotLSAgR0Vycm9yICplcnJvciA9IE5VTEw7Ci0tCi0tICBlZ2lzX2V0dTkwNV9jYW5j ZWwgKGRldmljZSk7Ci0tICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmludGVycnVwdF9jYW5jZWxs YWJsZSk7Ci0gCi0gICBnX3VzYl9kZXZpY2VfcmVsZWFzZV9pbnRlcmZhY2UgKGZwaV9kZXZpY2Vf Z2V0X3VzYl9kZXZpY2UgKGRldmljZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDAsIDAsICZlcnJvcik7Ci1AQCAtMTYxMCw4ICsxNTgxLDYgQEAgZnBpX2RldmljZV9lZ2lz X2V0dTkwNV9jbGFzc19pbml0IChGcGlEZXZpY2VFZ2lzRXR1OTA1Q2xhc3MgKmtsYXNzKQotIAot ICAgZGV2X2NsYXNzLT5wcm9iZSA9IGVnaXNfZXR1OTA1X3Byb2JlOwotICAgZGV2X2NsYXNzLT5v cGVuID0gZWdpc19ldHU5MDVfb3BlbjsKLS0gIGRldl9jbGFzcy0+Y2FuY2VsID0gZWdpc19ldHU5 MDVfY2FuY2VsOwotLSAgZGV2X2NsYXNzLT5zdXNwZW5kID0gZWdpc19ldHU5MDVfc3VzcGVuZDsK LSAgIGRldl9jbGFzcy0+Y2xvc2UgPSBlZ2lzX2V0dTkwNV9jbG9zZTsKLSAgIGRldl9jbGFzcy0+ aWRlbnRpZnkgPSBlZ2lzX2V0dTkwNV9pZGVudGlmeV92ZXJpZnk7Ci0gICBkZXZfY2xhc3MtPnZl cmlmeSA9IGVnaXNfZXR1OTA1X2lkZW50aWZ5X3ZlcmlmeTsKLS0tIAotR2l0TGFiCi0KLQotRnJv bSA0YjhmNDZmMWY5Y2UzZDJiMmNlOTZkMGI4N2ZkYjQ2NGY5ZTY3YWJlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1D Mz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1EYXRlOiBNb24sIDggSnVuIDIwMjYgMTM6MzI6 NTEgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwNy8xM10gZWdpc19ldHU5MDU6IFVzZSBmcGktYnl0 ZXMtcmVhZGVyIHRvIGdldCB0aGUgZmlybXdhcmUKLSBzdHJpbmcKLQotLS0tCi0gbGliZnByaW50 L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIHwgMzcgKysrKysrKysrKysrKysrKysrKy0t LS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIGIv bGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1pbmRleCAzYzFkY2Y3My4u YzRkNDA5M2QgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1 OTA1LmMKLSsrKyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotQEAg LTEzNDgsMTIgKzEzNDgsMTQgQEAgZWdpc19ldHU5MDVfZndfdmVyc2lvbl9jYiAoRnBEZXZpY2Ug KmRldmljZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSAgICAgbGVuZ3RoX2lu LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICplcnJvcikKLSB7Ci0tICBm cF9kYmcgKCJGaXJtd2FyZSB2ZXJzaW9uIGNhbGxiYWNrIik7Ci0gICBGcGlEZXZpY2VFZ2lzRXR1 OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lTX0VUVTkwNSAoZGV2aWNlKTsKLS0gIGdfYXV0b2Zy ZWUgZ2NoYXIgKmZ3X3ZlcnNpb24gPSBOVUxMOwotLSAgZ3NpemUgcHJlZml4X2xlbmd0aDsKLS0g IGd1Y2hhciAqZndfdmVyc2lvbl9zdGFydDsKLSsgIEZwaUJ5dGVSZWFkZXIgcmVhZGVyOwotKyAg Y29uc3QgZ3VpbnQ4ICpmd192ZXJzaW9uX2RhdGEgPSBOVUxMOwotKyAgY29uc3QgZ3VpbnQgcHJl Zml4X2xlbmd0aCA9IGVnaXNfZXR1OTA1X3JlYWRfcHJlZml4X2xlbiArIDIgKyAzICsgMTsKLSAg IGdzaXplIGZ3X3ZlcnNpb25fbGVuZ3RoOwotKyAgZ19hdXRvZnJlZSBnY2hhciAqZndfdmVyc2lv biA9IE5VTEw7Ci0rCi0rICBmcF9kYmcgKCJGaXJtd2FyZSB2ZXJzaW9uIGNhbGxiYWNrIik7Ci0g Ci0gICBpZiAoZXJyb3IpCi0gICAgIHsKLUBAIC0xMzgwLDEwICsxMzgyLDI5IEBAIGVnaXNfZXR1 OTA1X2Z3X3ZlcnNpb25fY2IgKEZwRGV2aWNlICpkZXZpY2UsCi0gICAgKiBjb21lIHdpdGggZXZl cnkgcGF5bG9hZCBUaGVuIHdlIHdpbGwgYWxzbyBza2lwIHRoZSBjYXJyaWFnZSByZXR1cm4gYW5k IHRha2UKLSAgICAqIGFsbCBidXQgdGhlIGxhc3QgMiBieXRlcyBhcyB0aGUgRlcgVmVyc2lvbgot ICAgICovCi0tICBwcmVmaXhfbGVuZ3RoID0gZWdpc19ldHU5MDVfcmVhZF9wcmVmaXhfbGVuICsg MiArIDMgKyAxOwotLSAgZndfdmVyc2lvbl9zdGFydCA9IGJ1ZmZlcl9pbiArIHByZWZpeF9sZW5n dGg7Ci0tICBmd192ZXJzaW9uX2xlbmd0aCA9IGxlbmd0aF9pbiAtIHByZWZpeF9sZW5ndGggLSBy c3BfZndfdmVyc2lvbl9zdWZmaXhfbGVuOwotLSAgZndfdmVyc2lvbiA9IGdfc3RybmR1cCAoKGdj aGFyICopIGZ3X3ZlcnNpb25fc3RhcnQsIGZ3X3ZlcnNpb25fbGVuZ3RoKTsKLSsgIGZwaV9ieXRl X3JlYWRlcl9pbml0ICgmcmVhZGVyLCBidWZmZXJfaW4sIGxlbmd0aF9pbik7Ci0rCi0rICBpZiAo IWZwaV9ieXRlX3JlYWRlcl9zZXRfcG9zICgmcmVhZGVyLCBwcmVmaXhfbGVuZ3RoKSkKLSsgICAg ewotKyAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAoRlBfREVWSUNFX0VS Uk9SX1BST1RPLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkRldmljZSBmaXJtd2FyZSByZXNwb25zZSAiCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG9vIHNob3J0IGZvciBwcmVmaXgu IikpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgZndfdmVyc2lvbl9sZW5ndGggPSBm cGlfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFpbmluZyAoJnJlYWRlcikgLSByc3BfZndfdmVyc2lvbl9z dWZmaXhfbGVuOwotKwotKyAgaWYgKCFmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgKCZyZWFkZXIs IGZ3X3ZlcnNpb25fbGVuZ3RoLCAmZndfdmVyc2lvbl9kYXRhKSkKLSsgICAgewotKyAgICAgIGZw aV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAoRlBfREVWSUNFX0VSUk9SX1BST1RPLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRl dmljZSBmaXJtd2FyZSByZXNwb25zZSAiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAidG9vIHNob3J0IGZvciB2ZXJzaW9uIHN0cmluZy4iKSk7 Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICBmd192ZXJzaW9uID0gZ19zdHJuZHVwICgo Z2NoYXIgKikgZndfdmVyc2lvbl9kYXRhLCBmd192ZXJzaW9uX2xlbmd0aCk7Ci0gCi0gICBmcF9p bmZvICgiRGV2aWNlIGZpcm13YXJlIHZlcnNpb24gaXMgJXMiLCBmd192ZXJzaW9uKTsKLSAKLS0t IAotR2l0TGFiCi0KLQotRnJvbSBjNmY5ZjA5NGFmZWMyYTFiZjUzZTZhNjEzMmRiZGUxMzA2NTBi OWVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJl dmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1EYXRlOiBNb24s IDggSnVuIDIwMjYgMTM6Mzk6MzQgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwOC8xM10gZWdpc19l dHU5MDU6IGRyb3AgdW51c2VkIHNpZCBmaWVsZAotCi1XZSByZWFkIGl0IGJ1dCB3ZSBuZXZlciB1 c2UgaXQKLS0tLQotIGxpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyB8IDE1 IC0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxNSBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyBiL2xpYmZw cmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotaW5kZXggYzRkNDA5M2QuLjQxOGI0 M2EzIDEwMDY0NAotLS0tIGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5j Ci0rKysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLUBAIC0zNSw3 ICszNSw2IEBAIHN0cnVjdCBfRnBpRGV2aWNlRWdpc0V0dTkwNQotICAgRnBpVXNiVHJhbnNmZXIg KmNtZF90cmFuc2ZlcjsKLSAgIEdQdHJBcnJheSAgICAgICplbnJvbGxlZF9pZHM7Ci0gICBnaW50 ICAgICAgICAgICAgbWF4X2Vucm9sbF9zdGFnZXM7Ci0tICBndWludDggICAgICAgICAgc2lkW0VH SVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRV07Ci0gfTsKLSAKLSBHX0RFRklORV9UWVBF IChGcGlEZXZpY2VFZ2lzRXR1OTA1LCBmcGlfZGV2aWNlX2VnaXNfZXR1OTA1LCBGUF9UWVBFX0RF VklDRSk7Ci1AQCAtOTExLDIwICs5MTAsNiBAQCBlZ2lzX2V0dTkwNV9lbnJvbGxfYmVnaW5fY2Ig KEZwRGV2aWNlICpkZXZpY2UsCi0gICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi0tICBGcGlCeXRl UmVhZGVyIHJlYWRlcjsKLS0KLS0gIGZwaV9ieXRlX3JlYWRlcl9pbml0ICgmcmVhZGVyLCBidWZm ZXJfaW4sIGxlbmd0aF9pbik7Ci0tCi0tICBmcGlfYnl0ZV9yZWFkZXJfc2V0X3BvcyAoJnJlYWRl ciwgRUdJU19FVFU5MDVfTElTVF9SRVNQT05TRV9QUkVGSVhfU0laRSk7Ci0tCi0tICBjb25zdCBn dWludDggKmRhdGEgPSBOVUxMOwotLQotLSAgZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhICgmcmVh ZGVyLCBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkUsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZkYXRhKTsKLS0KLS0gIGlmIChkYXRhKQotLSAgICBtZW1jcHkgKHNlbGYt PnNpZCwgZGF0YSwgRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFKTsKLS0KLSAgIGZw aV9zc21fbmV4dF9zdGF0ZSAoc2VsZi0+dGFza19zc20pOwotIH0KLSAKLS0tIAotR2l0TGFiCi0K LQotRnJvbSA2NWMzZGNiMWViMzVlYzBiZDE0YjE3YmVkZjMzZGU2YzYyMWY5ZWYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhU cmV2aT1DMz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1EYXRlOiBNb24sIDggSnVuIDIwMjYg MTM6NDQ6MTMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwOS8xM10gZWdpc19ldHU5MDU6IEF2b2lk IHBvdGVudGlhbCB3cm9uZyBtZW1vcnkgYWNjZXNzZXMKLQotLS0tCi0gbGliZnByaW50L2RyaXZl cnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jIHwgNTMgKysrKysrKysrKysrKysrKysrLS0tLS0tLQot IDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyBiL2xpYmZw cmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotaW5kZXggNDE4YjQzYTMuLmM5Yjlh YjNhIDEwMDY0NAotLS0tIGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5j Ci0rKysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLUBAIC0xMTAs MTEgKzExMCwyMSBAQCBlZ2lzX2V0dTkwNV92YWxpZGF0ZV9yZXNwb25zZV9wcmVmaXggKGNvbnN0 IGd1Y2hhciAqYnVmZmVyX2luLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgZ3VjaGFyICp2YWxpZF9wcmVmaXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBnc2l6ZSAgIHZhbGlkX3ByZWZpeF9sZW4pCi0gewotLSAgY29u c3QgZ2Jvb2xlYW4gcmVzdWx0ID0gbWVtY21wIChidWZmZXJfaW4gKwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZWdpc19ldHU5MDVfcmVhZF9wcmVmaXhfbGVuICsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X0NIRUNLX0JZVEVTX0xF TkdUSCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX3ByZWZpeCwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfcHJlZml4X2xlbikgPT0g MDsKLSsgIEZwaUJ5dGVSZWFkZXIgcmVhZGVyOwotKyAgY29uc3QgZ3VpbnQ4ICpkYXRhID0gTlVM TDsKLSsgIGdib29sZWFuIHJlc3VsdDsKLSsKLSsgIGZwaV9ieXRlX3JlYWRlcl9pbml0ICgmcmVh ZGVyLCBidWZmZXJfaW4sIGJ1ZmZlcl9pbl9sZW4pOwotKwotKyAgaWYgKCFmcGlfYnl0ZV9yZWFk ZXJfc2V0X3BvcyAoJnJlYWRlciwgZWdpc19ldHU5MDVfcmVhZF9wcmVmaXhfbGVuICsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHSVNfRVRVOTA1X0NIRUNLX0JZVEVTX0xFTkdU SCkgfHwKLSsgICAgICAhZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhICgmcmVhZGVyLCB2YWxpZF9w cmVmaXhfbGVuLCAmZGF0YSkpCi0rICAgIHsKLSsgICAgICBmcF9kYmcgKCJSZXNwb25zZSB0b28g c2hvcnQgZm9yIHByZWZpeCB2YWxpZGF0aW9uIik7Ci0rICAgICAgcmV0dXJuIEZBTFNFOwotKyAg ICB9Ci0rCi0rICByZXN1bHQgPSBtZW1jbXAgKGRhdGEsIHZhbGlkX3ByZWZpeCwgdmFsaWRfcHJl Zml4X2xlbikgPT0gMDsKLSAKLSAgIGZwX2RiZyAoIlJlc3BvbnNlIHByZWZpeCB2YWxpZDogJXMi LCByZXN1bHQgPyAieWVzIiA6ICJOTyIpOwotICAgcmV0dXJuIHJlc3VsdDsKLUBAIC0xMjYsOSAr MTM2LDIyIEBAIGVnaXNfZXR1OTA1X3ZhbGlkYXRlX3Jlc3BvbnNlX3N1ZmZpeCAoY29uc3QgZ3Vj aGFyICpidWZmZXJfaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBndWNoYXIgKnZhbGlkX3N1ZmZpeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGdzaXplICAgdmFsaWRfc3VmZml4X2xlbikKLSB7Ci0tICBjb25zdCBn Ym9vbGVhbiByZXN1bHQgPSBtZW1jbXAgKGJ1ZmZlcl9pbiArIChidWZmZXJfaW5fbGVuIC0gdmFs aWRfc3VmZml4X2xlbiksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlk X3N1ZmZpeCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfc3VmZml4 X2xlbikgPT0gMDsKLSsgIEZwaUJ5dGVSZWFkZXIgcmVhZGVyOwotKyAgY29uc3QgZ3VpbnQ4ICpk YXRhID0gTlVMTDsKLSsgIGdib29sZWFuIHJlc3VsdDsKLSsKLSsgIGZwaV9ieXRlX3JlYWRlcl9p bml0ICgmcmVhZGVyLCBidWZmZXJfaW4sIGJ1ZmZlcl9pbl9sZW4pOwotKwotKyAgLyogR3VhcmQg YWdhaW5zdCB1bnNpZ25lZCB1bmRlcmZsb3cgYmVmb3JlIGNvbXB1dGluZyB0aGUgc3VmZml4IHBv c2l0aW9uLiAqLwotKyAgaWYgKHZhbGlkX3N1ZmZpeF9sZW4gPiBidWZmZXJfaW5fbGVuIHx8Ci0r ICAgICAgIWZwaV9ieXRlX3JlYWRlcl9zZXRfcG9zICgmcmVhZGVyLCBidWZmZXJfaW5fbGVuIC0g dmFsaWRfc3VmZml4X2xlbikgfHwKLSsgICAgICAhZnBpX2J5dGVfcmVhZGVyX2dldF9kYXRhICgm cmVhZGVyLCB2YWxpZF9zdWZmaXhfbGVuLCAmZGF0YSkpCi0rICAgIHsKLSsgICAgICBmcF9kYmcg KCJSZXNwb25zZSB0b28gc2hvcnQgZm9yIHN1ZmZpeCB2YWxpZGF0aW9uIik7Ci0rICAgICAgcmV0 dXJuIEZBTFNFOwotKyAgICB9Ci0rCi0rICByZXN1bHQgPSBtZW1jbXAgKGRhdGEsIHZhbGlkX3N1 ZmZpeCwgdmFsaWRfc3VmZml4X2xlbikgPT0gMDsKLSAKLSAgIGZwX2RiZyAoIlJlc3BvbnNlIHN1 ZmZpeCB2YWxpZDogJXMiLCByZXN1bHQgPyAieWVzIiA6ICJOTyIpOwotICAgcmV0dXJuIHJlc3Vs dDsKLUBAIC0xNDY3LDEwICsxNDkwLDEwIEBAIGVnaXNfZXR1OTA1X2Rldl9pbml0X2hhbmRsZXIg KEZwaVNzbSAgICpzc20sCi0gc3RhdGljIHZvaWQKLSBlZ2lzX2V0dTkwNV9wcm9iZSAoRnBEZXZp Y2UgKmRldmljZSkKLSB7Ci0tICBHVXNiRGV2aWNlICp1c2JfZGV2OwotLSAgR0Vycm9yICplcnJv ciA9IE5VTEw7Ci0rICBnX2F1dG9wdHIoR0Vycm9yKSBlcnJvciA9IE5VTEw7Ci0gICBnX2F1dG9m cmVlIGdjaGFyICpzZXJpYWwgPSBOVUxMOwotICAgRnBpRGV2aWNlRWdpc0V0dTkwNSAqc2VsZiA9 IEZQSV9ERVZJQ0VfRUdJU19FVFU5MDUgKGRldmljZSk7Ci0rICBHVXNiRGV2aWNlICp1c2JfZGV2 OwotIAotICAgZnBfZGJnICgiJXMgZW50ZXIgLS0+ICIsIEdfU1RSRlVOQyk7Ci0gCi1AQCAtMTQ3 OSw3ICsxNTAyLDcgQEAgZWdpc19ldHU5MDVfcHJvYmUgKEZwRGV2aWNlICpkZXZpY2UpCi0gICBp ZiAoIWdfdXNiX2RldmljZV9vcGVuICh1c2JfZGV2LCAmZXJyb3IpKQotICAgICB7Ci0gICAgICAg ZnBfZGJnICgiJXMgZ191c2JfZGV2aWNlX29wZW4gZmFpbGVkICVzIiwgR19TVFJGVU5DLCBlcnJv ci0+bWVzc2FnZSk7Ci0tICAgICAgZnBpX2RldmljZV9wcm9iZV9jb21wbGV0ZSAoZGV2aWNlLCBO VUxMLCBOVUxMLCBlcnJvcik7Ci0rICAgICAgZnBpX2RldmljZV9wcm9iZV9jb21wbGV0ZSAoZGV2 aWNlLCBOVUxMLCBOVUxMLCBnX3N0ZWFsX3BvaW50ZXIgKCZlcnJvcikpOwotICAgICAgIHJldHVy bjsKLSAgICAgfQotIAotQEAgLTE0ODcsNyArMTUxMCw3IEBAIGVnaXNfZXR1OTA1X3Byb2JlIChG cERldmljZSAqZGV2aWNlKQotICAgICB7Ci0gICAgICAgZnBfZGJnICgiJXMgZ191c2JfZGV2aWNl X3Jlc2V0IGZhaWxlZCAlcyIsIEdfU1RSRlVOQywgZXJyb3ItPm1lc3NhZ2UpOwotICAgICAgIGdf dXNiX2RldmljZV9jbG9zZSAodXNiX2RldiwgTlVMTCk7Ci0tICAgICAgZnBpX2RldmljZV9wcm9i ZV9jb21wbGV0ZSAoZGV2aWNlLCBOVUxMLCBOVUxMLCBlcnJvcik7Ci0rICAgICAgZnBpX2Rldmlj ZV9wcm9iZV9jb21wbGV0ZSAoZGV2aWNlLCBOVUxMLCBOVUxMLCBnX3N0ZWFsX3BvaW50ZXIgKCZl cnJvcikpOwotICAgICAgIHJldHVybjsKLSAgICAgfQotIAotQEAgLTE0OTUsNyArMTUxOCw3IEBA IGVnaXNfZXR1OTA1X3Byb2JlIChGcERldmljZSAqZGV2aWNlKQotICAgICB7Ci0gICAgICAgZnBf ZGJnICgiJXMgZ191c2JfZGV2aWNlX2NsYWltX2ludGVyZmFjZSBmYWlsZWQgJXMiLCBHX1NUUkZV TkMsIGVycm9yLT5tZXNzYWdlKTsKLSAgICAgICBnX3VzYl9kZXZpY2VfY2xvc2UgKHVzYl9kZXYs IE5VTEwpOwotLSAgICAgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxldGUgKGRldmljZSwgTlVMTCwg TlVMTCwgZXJyb3IpOwotKyAgICAgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxldGUgKGRldmljZSwg TlVMTCwgTlVMTCwgZ19zdGVhbF9wb2ludGVyICgmZXJyb3IpKTsKLSAgICAgICByZXR1cm47Ci0g ICAgIH0KLSAKLUBAIC0xNTEyLDcgKzE1MzUsNyBAQCBlZ2lzX2V0dTkwNV9wcm9iZSAoRnBEZXZp Y2UgKmRldmljZSkKLSAgICAgICBnX3VzYl9kZXZpY2VfcmVsZWFzZV9pbnRlcmZhY2UgKGZwaV9k ZXZpY2VfZ2V0X3VzYl9kZXZpY2UgKEZQX0RFVklDRSAoZGV2aWNlKSksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBOVUxMKTsKLSAgICAgICBnX3VzYl9kZXZp Y2VfY2xvc2UgKHVzYl9kZXYsIE5VTEwpOwotLSAgICAgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxl dGUgKGRldmljZSwgTlVMTCwgTlVMTCwgZXJyb3IpOwotKyAgICAgIGZwaV9kZXZpY2VfcHJvYmVf Y29tcGxldGUgKGRldmljZSwgTlVMTCwgTlVMTCwgZ19zdGVhbF9wb2ludGVyICgmZXJyb3IpKTsK LSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLUBAIC0xNTI2LDcgKzE1NDksNyBAQCBlZ2lzX2V0 dTkwNV9wcm9iZSAoRnBEZXZpY2UgKmRldmljZSkKLSAgIGdfdXNiX2RldmljZV9yZWxlYXNlX2lu dGVyZmFjZSAoZnBpX2RldmljZV9nZXRfdXNiX2RldmljZSAoRlBfREVWSUNFIChkZXZpY2UpKSwg MCwgMCwgTlVMTCk7Ci0gICBnX3VzYl9kZXZpY2VfY2xvc2UgKHVzYl9kZXYsIE5VTEwpOwotIAot LSAgZnBpX2RldmljZV9wcm9iZV9jb21wbGV0ZSAoZGV2aWNlLCBzZXJpYWwsIE5VTEwsIGVycm9y KTsKLSsgIGZwaV9kZXZpY2VfcHJvYmVfY29tcGxldGUgKGRldmljZSwgc2VyaWFsLCBOVUxMLCBO VUxMKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLS0tIAotR2l0TGFiCi0KLQotRnJvbSA1YjUxZjlj OGNjZjMzNDI0NjM2ZTRlMzJjYjYyMDUyMDRlODE2OTQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/ PSA8bWFpbEAzdjFuMC5uZXQ+Ci1EYXRlOiBNb24sIDggSnVuIDIwMjYgMTM6NDc6NDEgKzAyMDAK LVN1YmplY3Q6IFtQQVRDSCAxMC8xM10gZWdpc19ldHU5MDU6IFNhbml0aXplIHByaW50IGRhdGEg cGFyc2luZwotCi0tLS0KLSBsaWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMg fCAyMyArKysrKysrKysrKysrKysrLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliZnByaW50L2RyaXZlcnMv ZWdpc21vYy9lZ2lzX2V0dTkwNS5jIGIvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0 dTkwNS5jCi1pbmRleCBjOWI5YWIzYS4uMGE1NjU1ZjEgMTAwNjQ0Ci0tLS0gYS9saWJmcHJpbnQv ZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLSsrKyBiL2xpYmZwcmludC9kcml2ZXJzL2Vn aXNtb2MvZWdpc19ldHU5MDUuYwotQEAgLTMxOCw3ICszMTgsNyBAQCBzdGF0aWMgZ3VpbnQxNgot IGVnaXNfZXR1OTA1X2dldF9jaGVja19ieXRlcyAoRnBpQnl0ZVJlYWRlciAqcmVhZGVyKQotIHsK LSAgIGZwX2RiZyAoIkdldCBjaGVjayBieXRlcyIpOwotLSAgc2l6ZV90IHN1bV92YWx1ZXMgPSAw OwotKyAgZ3VpbnQ2NCBzdW1fdmFsdWVzID0gMDsKLSAgIGd1aW50MTYgdmFsOwotIAotICAgZnBp X2J5dGVfcmVhZGVyX3NldF9wb3MgKHJlYWRlciwgMCk7Ci1AQCAtNTYyLDggKzU2Miw2IEBAIGVn aXNfZXR1OTA1X2dldF9kZWxldGVfY21kIChGcERldmljZSAqZGV2aWNlLAotICAgY29uc3QgZ3Vj aGFyICpwcmludF9kYXRhX2lkID0gTlVMTDsKLSAgIGdzaXplIHByaW50X2RhdGFfaWRfbGVuID0g MDsKLSAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnByaW50X2Rlc2NyaXB0aW9uID0gTlVMTDsKLS0gIGdf YXV0b2ZyZWUgZ3VjaGFyICplbnJvbGxlZF9wcmludF9pZCA9IE5VTEw7Ci0tICBnX2F1dG9mcmVl IGd1Y2hhciAqcmVzdWx0ID0gTlVMTDsKLSAgIGdib29sZWFuIHdyaXR0ZW4gPSBUUlVFOwotIAot ICAgLyoKLUBAIC02MzksNyArNjM3LDggQEAgZWdpc19ldHU5MDVfZ2V0X2RlbGV0ZV9jbWQgKEZw RGV2aWNlICpkZXZpY2UsCi0gICAgICAgZ19vYmplY3RfZ2V0IChkZWxldGVfcHJpbnQsICJkZXNj cmlwdGlvbiIsICZwcmludF9kZXNjcmlwdGlvbiwgTlVMTCk7Ci0gICAgICAgZ19vYmplY3RfZ2V0 IChkZWxldGVfcHJpbnQsICJmcGktZGF0YSIsICZwcmludF9kYXRhLCBOVUxMKTsKLSAKLS0gICAg ICBpZiAoIWdfdmFyaWFudF9jaGVja19mb3JtYXRfc3RyaW5nIChwcmludF9kYXRhLCAiKEBheSki LCBGQUxTRSkpCi0rICAgICAgaWYgKCFwcmludF9kYXRhIHx8Ci0rICAgICAgICAgICFnX3Zhcmlh bnRfY2hlY2tfZm9ybWF0X3N0cmluZyAocHJpbnRfZGF0YSwgIihAYXkpIiwgRkFMU0UpKQotICAg ICAgICAgewotICAgICAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXcgKEZQ X0RFVklDRV9FUlJPUl9EQVRBX0lOVkFMSUQpKTsKLUBAIC02NTAsMTEgKzY0OSwyMSBAQCBlZ2lz X2V0dTkwNV9nZXRfZGVsZXRlX2NtZCAoRnBEZXZpY2UgKmRldmljZSwKLSAgICAgICBwcmludF9k YXRhX2lkID0gZ192YXJpYW50X2dldF9maXhlZF9hcnJheSAocHJpbnRfZGF0YV9pZF92YXIsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcmludF9k YXRhX2lkX2xlbiwgc2l6ZW9mIChndWNoYXIpKTsKLSAKLS0gICAgICBpZiAoIWdfc3RyX2hhc19w cmVmaXggKHByaW50X2Rlc2NyaXB0aW9uLCAiRlAiKSkKLSsgICAgICBpZiAocHJpbnRfZGF0YV9p ZF9sZW4gIT0gRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFKQotKyAgICAgICAgewot KyAgICAgICAgICBmcGlfc3NtX21hcmtfZmFpbGVkIChzZWxmLT50YXNrX3NzbSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZnBpX2RldmljZV9lcnJvcl9uZXdfbXNnIChGUF9ERVZJ Q0VfRVJST1JfREFUQV9JTlZBTElELAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yZWQgcHJpbnQgaWQgaGFzICIKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5leHBl Y3RlZCBsZW5ndGggJXp1IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwcmludF9kYXRhX2lkX2xlbikpOwotKyAgICAgICAgICByZXR1 cm4gTlVMTDsKLSsgICAgICAgIH0KLSsKLSsgICAgICBpZiAoIXByaW50X2Rlc2NyaXB0aW9uIHx8 ICFnX3N0cl9oYXNfcHJlZml4IChwcmludF9kZXNjcmlwdGlvbiwgIkZQIikpCi0gICAgICAgICBm cF9kYmcgKCJGaW5nZXJwcmludCAnJXMnIHdhcyBub3QgY3JlYXRlZCBieSBsaWJmcHJpbnQ7IGRl bGV0aW5nIGFueXdheS4iLAotLSAgICAgICAgICAgICAgICBwcmludF9kZXNjcmlwdGlvbik7Ci0r ICAgICAgICAgICAgICAgIHByaW50X2Rlc2NyaXB0aW9uID8gcHJpbnRfZGVzY3JpcHRpb24gOiAi KG51bGwpIik7Ci0gCi0tICAgICAgZnBfaW5mbyAoIkRlbGV0ZSBmaW5nZXJwcmludCAlcyIsIHBy aW50X2Rlc2NyaXB0aW9uKTsKLSsgICAgICBmcF9pbmZvICgiRGVsZXRlIGZpbmdlcnByaW50ICVz IiwgcHJpbnRfZGVzY3JpcHRpb24gPyBwcmludF9kZXNjcmlwdGlvbiA6ICIobnVsbCkiKTsKLSAK LSAgICAgICB3cml0dGVuICY9IGZwaV9ieXRlX3dyaXRlcl9wdXRfZGF0YSAoJndyaXRlciwgcHJp bnRfZGF0YV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9TSVpFKTsKLS0tIAotR2l0TGFiCi0KLQotRnJv bSBjMGE5ODExMDUzMWU3NGJlYjU4NzZlZjA4NGRhM2VkODkwMTEyOGMyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1D Mz1CMW89Mjk/PSA8bWFpbEAzdjFuMC5uZXQ+Ci1EYXRlOiBNb24sIDggSnVuIDIwMjYgMTM6NDg6 MDAgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxMS8xM10gZWdpc19ldHU5MDU6IERvIG5vdCB0cnkg dG8gY29udGludWUgYSBmYWlsZWQgU1NNCi0KLS0tLQotIGxpYmZwcmludC9kcml2ZXJzL2VnaXNt b2MvZWdpc19ldHU5MDUuYyB8IDQgKysrKwotIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KykKLQotZGlmZiAtLWdpdCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUu YyBiL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotaW5kZXggMGE1NjU1 ZjEuLmQ0NWI0NmUyIDEwMDY0NAotLS0tIGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lz X2V0dTkwNS5jCi0rKysgYi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMK LUBAIC03NTUsNiArNzU1LDEwIEBAIGVnaXNfZXR1OTA1X2RlbGV0ZV9ydW5fc3RhdGUgKEZwaVNz bSAgICpzc20sCi0gICAgICAgZWxzZQotICAgICAgICAgcGF5bG9hZCA9IGVnaXNfZXR1OTA1X2dl dF9kZWxldGVfY21kIChkZXZpY2UsIE5VTEwsICZwYXlsb2FkX2xlbmd0aCk7Ci0gCi0rICAgICAg LyogZ2V0X2RlbGV0ZV9jbWQgYWxyZWFkeSBtYXJrZWQgdGFza19zc20gYXMgZmFpbGVkICovCi0r ICAgICAgaWYgKCFwYXlsb2FkKQotKyAgICAgICAgcmV0dXJuOwotKwotICAgICAgIGVnaXNfZXR1 OTA1X2V4ZWNfY21kIChkZXZpY2UsIGdfc3RlYWxfcG9pbnRlciAoJnBheWxvYWQpLCBwYXlsb2Fk X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19mcmVlLCBlZ2lzX2V0dTkw NV9kZWxldGVfY2IpOwotICAgICAgIGJyZWFrOwotLS0gCi1HaXRMYWIKLQotCi1Gcm9tIDA2YWQ0 NGJjMWRhNzMyNTk4ZjgyYTdjMTFlYjBiYmMyOTg1MGFjMTMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiA9P1VURi04P3E/TWFyY289MjBUcmV2aXNhbj0yMD0yOFRyZXZpPUMzPUIxbz0y OT89IDxtYWlsQDN2MW4wLm5ldD4KLURhdGU6IE1vbiwgOCBKdW4gMjAyNiAxNToxOTo1NCArMDIw MAotU3ViamVjdDogW1BBVENIIDEyLzEzXSBlZ2lzX2V0dTkwNTogSW1wcm92ZSB0aGUgaWRlbnRp ZnkgY2FsbGJhY2sgZGF0YSByZWFkaW5nCi0KLS0tLQotIGxpYmZwcmludC9kcml2ZXJzL2VnaXNt b2MvZWdpc19ldHU5MDUuYyB8IDQxICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0KLSAxIGZpbGUg Y2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgYi9saWJmcHJpbnQvZHJp dmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLWluZGV4IGQ0NWI0NmUyLi43ZGUzMDZiNCAxMDA2 NDQKLS0tLSBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotKysrIGIv bGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi1AQCAtNDk2LDExICs0OTYs MTAgQEAgZWdpc19ldHU5MDVfbGlzdF9maWxsX2Vucm9sbGVkX2lkc19jYiAoRnBEZXZpY2UgKmRl dmljZSwKLSAgICAqLwotICAgd2hpbGUgKHJlYWQpCi0gICAgIHsKLS0gICAgICBjb25zdCBndWlu dDggKmRhdGE7Ci0rICAgICAgY29uc3QgZ3VpbnQ4IGRhdGFbRUdJU19FVFU5MDVfRklOR0VSUFJJ TlRfREFUQV9TSVpFXTsKLSAgICAgICBnX2F1dG9mcmVlIGdjaGFyICpwcmludF9pZCA9IE5VTEw7 Ci0gCi0tICAgICAgcmVhZCAmPSBmcGlfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgKCZyZWFkZXIsIEVH SVNfRVRVOTA1X0ZJTkdFUlBSSU5UX0RBVEFfU0laRSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmRhdGEpOwotKyAgICAgIHJlYWQgJj0gZnBpX2J5dGVfcmVhZGVy X2dldF9kYXRhX3N0YXRpYyAoJnJlYWRlciwgZGF0YSk7Ci0gICAgICAgaWYgKCFyZWFkKQotICAg ICAgICAgYnJlYWs7Ci0gCi1AQCAtMTE4MiwxNSArMTE4MSwxNiBAQCBlZ2lzX2V0dTkwNV9pZGVu dGlmeV9jaGVja19jYiAoRnBEZXZpY2UgKmRldmljZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ3NpemUgICAgIGxlbmd0aF9pbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR0Vycm9yICAgKmVycm9yKQotIHsKLS0gIGZwX2RiZyAoIklkZW50aWZ5IGNoZWNrIGNh bGxiYWNrIik7Ci0gICBGcGlEZXZpY2VFZ2lzRXR1OTA1ICpzZWxmID0gRlBJX0RFVklDRV9FR0lT X0VUVTkwNSAoZGV2aWNlKTsKLS0gIGdjaGFyIGRldmljZV9wcmludF9pZFtFR0lTX0VUVTkwNV9G SU5HRVJQUklOVF9EQVRBX1NJWkVdOwotKyAgZ3VpbnQ4IGRldmljZV9wcmludF9pZFtFR0lTX0VU VTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkVdOwotICAgRnBQcmludCAqcHJpbnQgPSBOVUxMOwot ICAgRnBQcmludCAqdmVyaWZ5X3ByaW50ID0gTlVMTDsKLSAgIEdQdHJBcnJheSAqcHJpbnRzOwot ICAgZ2Jvb2xlYW4gZm91bmQgPSBGQUxTRTsKLSAgIGd1aW50IGluZGV4OwotIAotKyAgZnBfZGJn ICgiSWRlbnRpZnkgY2hlY2sgY2FsbGJhY2siKTsKLSsKLSAgIGlmIChlcnJvcikKLSAgICAgewot ICAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3NtLCBlcnJvcik7Ci1AQCAt MTIwMywyOSArMTIwMywzNCBAQCBlZ2lzX2V0dTkwNV9pZGVudGlmeV9jaGVja19jYiAoRnBEZXZp Y2UgKmRldmljZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJzcF9pZGVudGlmeV9tYXRjaF9zdWZmaXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByc3BfaWRlbnRpZnlfbWF0Y2hfc3VmZml4X2xlbikpCi0gICAgIHsK LSsgICAgICBGcGlCeXRlUmVhZGVyIHJlYWRlcjsKLSsKLSAgICAgICAvKgotICAgICAgICAgIE9u IHN1Y2Nlc3MsIHRoZXJlIGlzIGEgMzIgYnl0ZSBhcnJheSBvZiAic29tZXRoaW5nIig/KSBpbiBj aGFycyAxNC00NQotICAgICAgICAgIGFuZCB0aGVuIHRoZSAzMiBieXRlIGFycmF5IElEIG9mIHRo ZSBtYXRjaGVkIHByaW50IGNvbWVzIGFzIGNoYXJzIDQ2LTc3Ci0gICAgICAgICovCi0tICAgICAg bWVtY3B5IChkZXZpY2VfcHJpbnRfaWQsCi0tICAgICAgICAgICAgICBidWZmZXJfaW4gKyBFR0lT X0VUVTkwNV9JREVOVElGWV9SRVNQT05TRV9QUklOVF9JRF9PRkZTRVQsCi0tICAgICAgICAgICAg ICBFR0lTX0VUVTkwNV9GSU5HRVJQUklOVF9EQVRBX1NJWkUpOwotLQotLSAgICAgIC8qIENyZWF0 ZSBhIG5ldyBwcmludCBmcm9tIHRoaXMgZGV2aWNlX3ByaW50X2lkIGFuZCB0aGVuIHNlZSBpZiBp dCBtYXRjaGVzCi0tICAgICAgICogdGhlIG9uZSBpbmRpY2F0ZWQKLS0gICAgICAgKi8KLS0gICAg ICBwcmludCA9IGZwX3ByaW50X25ldyAoZGV2aWNlKTsKLS0gICAgICBlZ2lzX2V0dTkwNV9zZXRf cHJpbnRfZGF0YSAocHJpbnQsIGRldmljZV9wcmludF9pZCwgTlVMTCk7Ci0rICAgICAgZnBpX2J5 dGVfcmVhZGVyX2luaXQgKCZyZWFkZXIsIGJ1ZmZlcl9pbiwgbGVuZ3RoX2luKTsKLSAKLS0gICAg ICBpZiAoIXByaW50KQotKyAgICAgIGlmICghZnBpX2J5dGVfcmVhZGVyX3NldF9wb3MgKCZyZWFk ZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfSURF TlRJRllfUkVTUE9OU0VfUFJJTlRfSURfT0ZGU0VUKSB8fAotKyAgICAgICAgICAhZnBpX2J5dGVf cmVhZGVyX2dldF9kYXRhX3N0YXRpYyAoJnJlYWRlciwgZGV2aWNlX3ByaW50X2lkKSkKLSAgICAg ICAgIHsKLSAgICAgICAgICAgZnBpX3NzbV9tYXJrX2ZhaWxlZCAoc2VsZi0+dGFza19zc20sCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAo RlBfREVWSUNFX0VSUk9SX0RBVEFfSU5WQUxJRCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGJ1aWxkIGEgcHJpbnQg ZnJvbSAiCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImRldmljZSByZXNwb25zZS4iKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZwaV9kZXZpY2VfZXJyb3JfbmV3X21zZyAoRlBfREVWSUNFX0VSUk9SX1BST1RPLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJJZGVudGlmeSByZXNwb25zZSB0b28gIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG9ydCBmb3IgbWF0Y2hlZCBwcmludCAiCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImlkLiIpKTsKLSAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgfQotIAotKyAgICAgIGZwX2Ri ZyAoIkRldmljZS1yZXBvcnRlZCBtYXRjaGVkIHByaW50IGlkOiAlcyIsIGRldmljZV9wcmludF9p ZCk7Ci0rCi0rICAgICAgLyogQ3JlYXRlIGEgbmV3IHByaW50IGZyb20gdGhpcyBkZXZpY2VfcHJp bnRfaWQgYW5kIHRoZW4gc2VlIGlmIGl0IG1hdGNoZXMKLSsgICAgICAgKiB0aGUgb25lIGluZGlj YXRlZAotKyAgICAgICAqLwotKyAgICAgIHByaW50ID0gZnBfcHJpbnRfbmV3IChkZXZpY2UpOwot KyAgICAgIGVnaXNfZXR1OTA1X3NldF9wcmludF9kYXRhIChwcmludCwgKGNvbnN0IGNoYXIgKikg ZGV2aWNlX3ByaW50X2lkLCBOVUxMKTsKLSsKLSAgICAgICBmcF9pbmZvICgiSWRlbnRpZnkgc3Vj Y2Vzc2Z1bCBmb3I6ICVzIiwgZnBfcHJpbnRfZ2V0X2Rlc2NyaXB0aW9uIChwcmludCkpOwotIAot ICAgICAgIGlmIChmcGlfZGV2aWNlX2dldF9jdXJyZW50X2FjdGlvbiAoZGV2aWNlKSA9PSBGUElf REVWSUNFX0FDVElPTl9JREVOVElGWSkKLS0tIAotR2l0TGFiCi0KLQotRnJvbSA2YTcxZTAzOWEx MmVhZDJiMzEyMGFkNDc4OWI5M2E0NDE5MzA0NWVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogPT9VVEYtOD9xP01hcmNvPTIwVHJldmlzYW49MjA9MjhUcmV2aT1DMz1CMW89Mjk/PSA8 bWFpbEAzdjFuMC5uZXQ+Ci1EYXRlOiBUdWUsIDkgSnVuIDIwMjYgMTM6NTY6MjQgKzAyMDAKLVN1 YmplY3Q6IFtQQVRDSCAxMy8xM10gZWdpc19ldHU5MDU6IERvdWJsZS1jaGVjayB0aGF0IHRoZSBp ZGVudGlmaWVkIElEIGlzCi0gcGFydCBvZiB0aGUgZW5yb2xsZWQgbGlzdAotCi0tLS0KLSBsaWJm cHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMgfCAyNyArKysrKysrKysrKysrKysr KysrKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdp dCBhL2xpYmZwcmludC9kcml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYyBiL2xpYmZwcmludC9k cml2ZXJzL2VnaXNtb2MvZWdpc19ldHU5MDUuYwotaW5kZXggN2RlMzA2YjQuLmRjZDcxZmY2IDEw MDY0NAotLS0tIGEvbGliZnByaW50L2RyaXZlcnMvZWdpc21vYy9lZ2lzX2V0dTkwNS5jCi0rKysg Yi9saWJmcHJpbnQvZHJpdmVycy9lZ2lzbW9jL2VnaXNfZXR1OTA1LmMKLUBAIC0xMjAzLDYgKzEy MDMsNyBAQCBlZ2lzX2V0dTkwNV9pZGVudGlmeV9jaGVja19jYiAoRnBEZXZpY2UgKmRldmljZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzcF9pZGVudGlm eV9tYXRjaF9zdWZmaXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByc3BfaWRlbnRpZnlfbWF0Y2hfc3VmZml4X2xlbikpCi0gICAgIHsKLSsgICAgICBnYm9v bGVhbiBpZF9rbm93biA9IEZBTFNFOwotICAgICAgIEZwaUJ5dGVSZWFkZXIgcmVhZGVyOwotIAot ICAgICAgIC8qCi1AQCAtMTIyNSw2ICsxMjI2LDMyIEBAIGVnaXNfZXR1OTA1X2lkZW50aWZ5X2No ZWNrX2NiIChGcERldmljZSAqZGV2aWNlLAotIAotICAgICAgIGZwX2RiZyAoIkRldmljZS1yZXBv cnRlZCBtYXRjaGVkIHByaW50IGlkOiAlcyIsIGRldmljZV9wcmludF9pZCk7Ci0gCi0rICAgICAg LyogV2hpbGUgdGhlIHJldHVybmVkIElEIHNob3VsZCBpbmRlZWQgYmUgcGFydCBvZiB0aGUgZW5y b2xsZWQgbGlzdCwgc2luY2UKLSsgICAgICAgKiB3ZSBnb3QgaXQsIGxldCdzIGRvdWJsZSBjaGVj ayB0aGF0IHRoaXMgaXMgcmVhbGx5IHRoZSBjYXNlLgotKyAgICAgICAqLwotKyAgICAgIGlmIChz ZWxmLT5lbnJvbGxlZF9pZHMpCi0rICAgICAgICB7Ci0rICAgICAgICAgIGZvciAoZ3VpbnQgaSA9 IDA7IGkgPCBzZWxmLT5lbnJvbGxlZF9pZHMtPmxlbjsgaSsrKQotKyAgICAgICAgICAgIHsKLSsg ICAgICAgICAgICAgIGlmIChtZW1jbXAgKGdfcHRyX2FycmF5X2luZGV4IChzZWxmLT5lbnJvbGxl ZF9pZHMsIGkpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlX3ByaW50X2lkLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgRUdJU19FVFU5MDVfRklOR0VSUFJJTlRfREFUQV9T SVpFKSA9PSAwKQotKyAgICAgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAgICAgaWRfa25v d24gPSBUUlVFOwotKyAgICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgICAgICB9 Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgfQotKwotKyAgICAgIGlmICghaWRfa25vd24pCi0r ICAgICAgICB7Ci0rICAgICAgICAgIGZwaV9zc21fbWFya19mYWlsZWQgKHNlbGYtPnRhc2tfc3Nt LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcGlfZGV2aWNlX2Vycm9yX25ld19t c2cgKEZQX0RFVklDRV9FUlJPUl9QUk9UTywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGV2aWNlIHJlcG9ydGVkIGEgbWF0Y2ggIgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJmb3IgYW4gdW5rbm93biBwcmludCBpZC4iKSk7Ci0rICAgICAgICAgIHJldHVybjsKLSsgICAg ICAgIH0KLSsKLSAgICAgICAvKiBDcmVhdGUgYSBuZXcgcHJpbnQgZnJvbSB0aGlzIGRldmljZV9w cmludF9pZCBhbmQgdGhlbiBzZWUgaWYgaXQgbWF0Y2hlcwotICAgICAgICAqIHRoZSBvbmUgaW5k aWNhdGVkCi0gICAgICAgICovCi0tLSAKLUdpdExhYgotCgpkaWZmIC0tZ2l0IGEvbGliZnByaW50 LnNwZWMgYi9saWJmcHJpbnQuc3BlYwppbmRleCA5NmE5Y2IyLi43ZTU0YWJkIDEwMDY0NAotLS0g YS9saWJmcHJpbnQuc3BlYworKysgYi9saWJmcHJpbnQuc3BlYwpAQCAtMSw2ICsxLDYgQEAKIE5h bWU6ICAgICAgICAgICBsaWJmcHJpbnQKIAotVmVyc2lvbjogICAgICAgIDEuOTQuMTAKK1ZlcnNp b246ICAgICAgICAxLjk0LjEwMAogUmVsZWFzZTogICAgICAgICVhdXRvcmVsZWFzZQogU3VtbWFy eTogICAgICAgIFRvb2xraXQgZm9yIGZpbmdlcnByaW50IHNjYW5uZXIKIApAQCAtMTEsMjAgKzEx LDYgQEAgTGljZW5zZTogICAgICAgIExHUEwtMi4xLW9yLWxhdGVyIEFORCBOSVNULVBECiBVUkw6 ICAgICAgICAgICAgaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvd2lraS9Tb2Z0d2FyZS9mcHJp bnQvbGliZnByaW50CiBTb3VyY2UwOiAgICAgICAgaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Au b3JnL2xpYmZwcmludC9saWJmcHJpbnQvLS9hcmNoaXZlL3Yle3ZlcnNpb259L2xpYmZwcmludC12 JXt2ZXJzaW9ufS50YXIuZ3oKIAotIyBCYWNrcG9ydCBmcm9tIHVwc3RyZWFtCi1QYXRjaDAwMDAx OiAgICAgaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2xpYmZwcmludC9saWJmcHJpbnQv LS9jb21taXQvMmM3ODQyYzkwNTE0N2EyZDEyN2MxYjE2OGIyZTlkNDMucGF0Y2gKLQotIyB0aGUg dXBkYXRlcyBmb3IgdGhlIGZwaQotUGF0Y2gxMDAwMTogICAgIDAwMDEtZG9jLUluY2x1ZGUtQmlu YXJ5LWJ1ZmZlci1JLU8tc2VjdGlvbi1mb3ItdGhlLWJ5dGUtci5wYXRjaAotUGF0Y2gxMDAwMjog ICAgIDAwMDItZnBpLWJ5dGUtd3JpdGVyLUFkZC1BUElzLXRvLXdyaXRlLWFuZC1nZXQtR0J5dGVz LnBhdGNoCi1QYXRjaDEwMDAzOiAgICAgMDAwMy1mcGktYnl0ZS1yZWFkZXItQWRkLXN1cHBvcnQt dG8tcmVhZC1hbmQtZ2V0LXBlZWstR0J5LnBhdGNoCi1QYXRjaDEwMDA0OiAgICAgMDAwNC1mcGkt Ynl0ZS1yZWFkZXItQWRkLXN1cHBvcnQtdG8tcmVhZC10by1hLXN0YXRpYy1idWZmLnBhdGNoCi1Q YXRjaDEwMDA1OiAgICAgMDAwNS1mcGktdXNiLXRyYW5zZmVyLUFkZC1taXNzaW5nLWRlZmluaXRp b24tb2Ytc2V0X3Nob3J0LnBhdGNoCi1QYXRjaDEwMDA2OiAgICAgMDAwNi1mcGktdXNiLXRyYW5z ZmVyLVdyYXAtZ19lcnJvcl9uZXctYXJndW1lbnRzLnBhdGNoCi0jIEFkZCBFR0lTIHJlYWRlcnMK LSMgaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2xpYmZwcmludC9saWJmcHJpbnQvLS9t ZXJnZV9yZXF1ZXN0cy81NjEKLVBhdGNoMTAwMDc6ICAgICBlZ2lzX3JlYWRlci5wYXRjaAotCiBC dWlsZFJlcXVpcmVzOiAgbWVzb24KIEJ1aWxkUmVxdWlyZXM6ICBnY2MKIEJ1aWxkUmVxdWlyZXM6 ICBnY2MtYysrCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZjNhMzNmZi4u Njc1MTAxNyAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1T SEE1MTIgKGxpYmZwcmludC12MS45NC4xMC50YXIuZ3opID0gN2EzNDZjYjgzNjIzZTQ0NDdkNjdj NWE5MzJjYjJkOThiNmU0MmUzOGVhZTEzNGViMDNhMWM4ZjYxYjJhMWU2MDZiNzg5Njc2MjliYmRk YjFkYjE3NGQ3MzBiMzE4Yzk0MmMzYWU5Y2Q0NTJmMzBhNmQyNzNkOTE1ZmM5N2VjNDMKK1NIQTUx MiAobGliZnByaW50LXYxLjk0LjEwMC50YXIuZ3opID0gYzdhMTY3Yjg0OWZkM2NkMGNjYzg2MWQ0 YzAyMTU2ODIwOWVlZGFiMDM4YmJiZmYxNjA4MjVhZjQxZWZhZjVkYjU1ZDFjMzhkYTk4NDE5ZmEw MzQzMzM4MjBiOTAxNTJkYzk0YTk3NTgyNWQ1ZDY0NmYzZjFlZjdmOGQwNGUyOTkK