From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: From: Alexander Dahl Date: Wed, 30 Aug 2017 16:49:41 +0200 Message-Id: <1504104582-32171-2-git-send-email-ada@thorsis.com> In-Reply-To: <1504104582-32171-1-git-send-email-ada@thorsis.com> References: <1504104582-32171-1-git-send-email-ada@thorsis.com> Subject: [ptxdist] [PATCH 1/2] mtd-utils: Upgrade from 1.5.2 to 2.0.1 List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= VGhpcyBpcyBhIG1ham9yIHVwZ3JhZGUsIG10ZC11dGlscyBzd2l0Y2hlZCBmcm9tIGEgaGFuZCB3 cml0dGVuIE1ha2VmaWxlCmJ1aWxkIHRvIGF1dG90b29scy4gU2VlIHRoZSByZWxlYXNlIGFubm91 bmNlbWVudHMgZm9yIDIuMC4wIGFuZCAyLjAuMToKCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L3BpcGVybWFpbC9saW51eC1tdGQvMjAxNi1EZWNlbWJlci8wNzExNDUuaHRtbApodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9waXBlcm1haWwvbGludXgtbXRkLzIwMTctQXVndXN0LzA3NjQ3Ny5o dG1sCgpGb3IgdGhlIHB0eGRpc3QgcGFja2FnZSB0aGUgbWVudSBlbnRyaWVzIHdlcmUga2VwdCB0 aGUgc2FtZSwgd2hpbGUgc29tZQpvZiB0aGVtIG5vdyBjb250cm9sIHRoZSAuL2NvbmZpZ3VyZSBz d2l0Y2hlcyBmb3IgamZmcyBhbmQgdWJpZnMgYnkKc2VsZWN0aW5nIG5ldyBoaWRkZW4ga2NvbmZp ZyB2YXJpYWJsZXMuCgpPbiB0aGUgb2xkIHBhdGNoZXM6IDAwMDEgYW5kIDAwMDIgbWFkZSB1Ymlm cyBhbmQgbHpvIGNvbmZpZ3VyYWJsZSBhdApidWlsZCB0aW1lLCB0aGlzIGlzIGRvbmUgYnkgYXV0 b3Rvb2xzIHdpdGggY29uZmlndXJlIG9wdGlvbnMgbm93LiBBbGwKb3RoZXIgcGF0Y2hlcyB3ZXJl IGFwcGxpZWQgdXBzdHJlYW0uCgpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgRGFobCA8YWRhQHRo b3JzaXMuY29tPgotLS0KIC4uLi9tdGQtdXRpbHMtMS41LjIvMDAwMS1tYWtlLXViaWZzLW9wdGlv bmFsLnBhdGNoIHwgIDIzIC0tCiAuLi4wMDAyLU1ha2UtbGlibHpvLW9wdGlvbmFsLWZvci11Ymlm cy10b29scy5wYXRjaCB8ICA2OCAtLS0tCiAuLi5jaGFuZ2UtYWRkX2RpcmVjdG9yeS1hcmd1bWVu dC10by1leGlzdGluZy5wYXRjaCB8ICA5NyAtLS0tLS0KIC4uLnVzZS14bWFsbG9jLXh6YWxsb2Mt Zm9yLWFsbG9jYXRpbmctbWVtb3J5LnBhdGNoIHwgMTQzIC0tLS0tLS0tCiAuLi5zLnViaWZzLXNp bXBsaWZ5LW1ha2VfcGF0aC13aXRoLXhhc3ByaW50Zi5wYXRjaCB8ICAzMiAtLQogLi4ubWtmcy51 Ymlmcy1BZGQtZXh0ZW5kZWQtYXR0cmlidXRlLXN1cHBvcnQucGF0Y2ggfCAzNjkgLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAuLi5PcHRpb25hbGx5LWNyZWF0ZS1leHRlbmRlZC1hdHRyaWJ1dGUtd2l0 aC5wYXRjaCB8IDE4OCAtLS0tLS0tLS0tLQogLi4uZmxhc2hjcC1Vc2UtbGx1LXRvLXByaW50LWZp bGVzdGF0LnN0X3NpemUucGF0Y2ggfCAxMDEgLS0tLS0tCiBwYXRjaGVzL210ZC11dGlscy0xLjUu Mi9zZXJpZXMgICAgICAgICAgICAgICAgICAgICB8ICAxMSAtCiBydWxlcy9tdGQtdXRpbHMuaW4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArLQogcnVsZXMvbXRkLXV0aWxz Lm1ha2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzEgKy0KIDExIGZpbGVzIGNo YW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDEwNTQgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAx MDA2NDQgcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIvMDAwMS1tYWtlLXViaWZzLW9wdGlvbmFsLnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIvMDAwMi1NYWtl LWxpYmx6by1vcHRpb25hbC1mb3ItdWJpZnMtdG9vbHMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBwYXRjaGVzL210ZC11dGlscy0xLjUuMi8wMDAzLW1rZnMudWJpZnMtY2hhbmdlLWFkZF9kaXJl Y3RvcnktYXJndW1lbnQtdG8tZXhpc3RpbmcucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRj aGVzL210ZC11dGlscy0xLjUuMi8wMDA0LW1rZnMudWJpZnMtdXNlLXhtYWxsb2MteHphbGxvYy1m b3ItYWxsb2NhdGluZy1tZW1vcnkucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL210 ZC11dGlscy0xLjUuMi8wMDA1LW1rZnMudWJpZnMtc2ltcGxpZnktbWFrZV9wYXRoLXdpdGgteGFz cHJpbnRmLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIv MDAwNi1ta2ZzLnViaWZzLUFkZC1leHRlbmRlZC1hdHRyaWJ1dGUtc3VwcG9ydC5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvbXRkLXV0aWxzLTEuNS4yLzAwMDctbWtmcy51Ymlmcy1P cHRpb25hbGx5LWNyZWF0ZS1leHRlbmRlZC1hdHRyaWJ1dGUtd2l0aC5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHBhdGNoZXMvbXRkLXV0aWxzLTEuNS4yLzAwMDgtZmxhc2hjcC1Vc2UtbGx1LXRv LXByaW50LWZpbGVzdGF0LnN0X3NpemUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVz L210ZC11dGlscy0xLjUuMi9zZXJpZXMKCmRpZmYgLS1naXQgYS9wYXRjaGVzL210ZC11dGlscy0x LjUuMi8wMDAxLW1ha2UtdWJpZnMtb3B0aW9uYWwucGF0Y2ggYi9wYXRjaGVzL210ZC11dGlscy0x LjUuMi8wMDAxLW1ha2UtdWJpZnMtb3B0aW9uYWwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDVlMzU4MmUuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIv MDAwMS1tYWtlLXViaWZzLW9wdGlvbmFsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAs MCBAQAotRnJvbTogQmVybmhhcmQgV2FsbGUgPGJlcm5oYXJkQGJ3YWxsZS5kZT4KLURhdGU6IFN1 biwgMTEgTWFyIDIwMTIgMjA6MDM6NTAgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gbWFrZSB1Ymlm cyBvcHRpb25hbAotCi1TaWduZWQtb2ZmLWJ5OiBCZXJuaGFyZCBXYWxsZSA8YmVybmhhcmRAYndh bGxlLmRlPgotLS0tCi0gTWFrZWZpbGUgfCAyICsrCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQotaW5kZXggM2NlODU4 N2IyMmExLi41Y2MwMTI1YzUyNDMgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZQotKysrIGIvTWFrZWZp bGUKLUBAIC0zMSw3ICszMSw5IEBAIFVCSV9CSU5TID0gXAotIAl1YmlkZXRhY2ggdWJpbml6ZSB1 Ymlmb3JtYXQgdWJpcmVuYW1lIG10ZGluZm8gdWJpcnN2b2wgdWJpYmxvY2sKLSAKLSBCSU5TID0g JChNVERfQklOUykKLStpZm5lcSAoJChXSVRIT1VUX01LVUJJRlMpLCAxKQotIEJJTlMgKz0gbWtm cy51Ymlmcy9ta2ZzLnViaWZzCi0rZW5kaWYKLSBCSU5TICs9ICQoYWRkcHJlZml4IHViaS11dGls cy8sJChVQklfQklOUykpCi0gU0NSSVBUUyA9IGZsYXNoX2VyYXNlYWxsCi0gCmRpZmYgLS1naXQg YS9wYXRjaGVzL210ZC11dGlscy0xLjUuMi8wMDAyLU1ha2UtbGlibHpvLW9wdGlvbmFsLWZvci11 Ymlmcy10b29scy5wYXRjaCBiL3BhdGNoZXMvbXRkLXV0aWxzLTEuNS4yLzAwMDItTWFrZS1saWJs em8tb3B0aW9uYWwtZm9yLXViaWZzLXRvb2xzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBlM2I2MzA1Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvbXRkLXV0aWxzLTEuNS4yLzAw MDItTWFrZS1saWJsem8tb3B0aW9uYWwtZm9yLXViaWZzLXRvb2xzLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNjggKzAsMCBAQAotRnJvbTogQmVybmhhcmQgV2FsbGUgPGJlcm5oYXJkQGJ3YWxs ZS5kZT4KLURhdGU6IFN1biwgMTEgTWFyIDIwMTIgMjA6MTE6MTQgKzAxMDAKLVN1YmplY3Q6IFtQ QVRDSF0gTWFrZSBsaWJsem8gb3B0aW9uYWwgZm9yIHViaWZzIHRvb2xzCi0KLUJhc2VkIG9uIHBh dGNoIGZyb20gTWFyYyBLbGVpbmUtQnVkZGUgPG1rbEBwZW5ndXRyb25peC5kZT4uCi0KLVNpZ25l ZC1vZmYtYnk6IEJlcm5oYXJkIFdhbGxlIDxiZXJuaGFyZEBid2FsbGUuZGU+Ci0tLS0KLSBNYWtl ZmlsZSAgICAgICAgICAgfCAgMiArLQotIG1rZnMudWJpZnMvY29tcHIuYyB8IDE3ICsrKysrKysr KysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCi1pbmRleCA1Y2MwMTI1YzUy NDMuLjljZmQ5NzAwYTU3MCAxMDA2NDQKLS0tLSBhL01ha2VmaWxlCi0rKysgYi9NYWtlZmlsZQot QEAgLTEwNyw3ICsxMDcsNyBAQCAkKGNhbGwgX21rZGVwLGxpYi8sbGlibXRkLmEpCi0gb2JqLW1r ZnMudWJpZnMgPSBjcmMxNi5vIGxwdC5vIGNvbXByLm8gZGV2dGFibGUubyBcCi0gCWhhc2h0YWJs ZS9oYXNodGFibGUubyBoYXNodGFibGUvaGFzaHRhYmxlX2l0ci5vCi0gTERGTEFHU19ta2ZzLnVi aWZzID0gJChaTElCTERGTEFHUykgJChMWk9MREZMQUdTKSAkKFVVSURMREZMQUdTKQotLUxETElC U19ta2ZzLnViaWZzID0gLWx6IC1sbHpvMiAtbG0gLWx1dWlkCi0rTERMSUJTX21rZnMudWJpZnMg PSAtbHogJChMWk9MRExJQlMpIC1sbSAtbHV1aWQKLSAkKGNhbGwgbWtkZXAsbWtmcy51Ymlmcy8s bWtmcy51YmlmcywsdWJpLXV0aWxzL2xpYnViaS5hKQotIAotICMKLWRpZmYgLS1naXQgYS9ta2Zz LnViaWZzL2NvbXByLmMgYi9ta2ZzLnViaWZzL2NvbXByLmMKLWluZGV4IDM0YjJmNjAwMWI2Yi4u NTQ5YjRkZTEzOTMyIDEwMDY0NAotLS0tIGEvbWtmcy51Ymlmcy9jb21wci5jCi0rKysgYi9ta2Zz LnViaWZzL2NvbXByLmMKLUBAIC0yNCw3ICsyNCwxMSBAQAotICNpbmNsdWRlIDxzdGRpby5oPgot ICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2lmbmRlZiBXSVRI T1VUX0xaTwotICNpbmNsdWRlIDxsem8vbHpvMXguaD4KLSsjZWxzZQotKyNkZWZpbmUgTFpPMVhf OTk5X01FTV9DT01QUkVTUwkwCi0rI2VuZGlmCi0gI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0g Ci0gI2RlZmluZSBjcmMzMiBfX3psaWJfY3JjMzIKLUBAIC04NSw2ICs4OSw4IEBAIHN0YXRpYyBp bnQgemxpYl9kZWZsYXRlKHZvaWQgKmluX2J1Ziwgc2l6ZV90IGluX2xlbiwgdm9pZCAqb3V0X2J1 ZiwKLSAJcmV0dXJuIDA7Ci0gfQotIAotKwotKyNpZm5kZWYgV0lUSE9VVF9MWk8KLSBzdGF0aWMg aW50IGx6b19jb21wcmVzcyh2b2lkICppbl9idWYsIHNpemVfdCBpbl9sZW4sIHZvaWQgKm91dF9i dWYsCi0gCQkJc2l6ZV90ICpvdXRfbGVuKQotIHsKLUBAIC0xMDIsNiArMTA4LDE3IEBAIHN0YXRp YyBpbnQgbHpvX2NvbXByZXNzKHZvaWQgKmluX2J1Ziwgc2l6ZV90IGluX2xlbiwgdm9pZCAqb3V0 X2J1ZiwKLSAKLSAJcmV0dXJuIDA7Ci0gfQotKyNlbHNlCi0rc3RhdGljIGlubGluZSBpbnQgbHpv X2NvbXByZXNzKHZvaWQgKmluX2J1Ziwgc2l6ZV90IGluX2xlbiwgdm9pZCAqb3V0X2J1ZiwKLSsJ CQlzaXplX3QgKm91dF9sZW4pCi0rewotKwkodm9pZClpbl9idWY7Ci0rCSh2b2lkKWluX2xlbjsK LSsJKHZvaWQpb3V0X2J1ZjsKLSsJKHZvaWQpb3V0X2xlbjsKLSsJcmV0dXJuIC0xOwotK30KLSsj ZW5kaWYKLSAKLSBzdGF0aWMgaW50IG5vX2NvbXByZXNzKHZvaWQgKmluX2J1Ziwgc2l6ZV90IGlu X2xlbiwgdm9pZCAqb3V0X2J1ZiwKLSAJCSAgICAgICBzaXplX3QgKm91dF9sZW4pCmRpZmYgLS1n aXQgYS9wYXRjaGVzL210ZC11dGlscy0xLjUuMi8wMDAzLW1rZnMudWJpZnMtY2hhbmdlLWFkZF9k aXJlY3RvcnktYXJndW1lbnQtdG8tZXhpc3RpbmcucGF0Y2ggYi9wYXRjaGVzL210ZC11dGlscy0x LjUuMi8wMDAzLW1rZnMudWJpZnMtY2hhbmdlLWFkZF9kaXJlY3RvcnktYXJndW1lbnQtdG8tZXhp c3RpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjZmYzYjYuLjAwMDAw MDAKLS0tIGEvcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIvMDAwMy1ta2ZzLnViaWZzLWNoYW5nZS1h ZGRfZGlyZWN0b3J5LWFyZ3VtZW50LXRvLWV4aXN0aW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsOTcgKzAsMCBAQAotRnJvbTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRl PgotRGF0ZTogRnJpLCAyOCBOb3YgMjAxNCAxMTowNDowMCArMDEwMAotU3ViamVjdDogW1BBVENI XSBta2ZzLnViaWZzOiBjaGFuZ2UgYWRkX2RpcmVjdG9yeSBhcmd1bWVudCB0byAnZXhpc3Rpbmcn Ci0KLUEgJ25vbl9leGlzdGluZycgYXJndW1lbnQgd2hpY2ggaXMgb25seSB1c2VkIHdpdGggIW5v bl9leGlzdGluZwotaXMganVzdCB0b28gY29uZnVzaW5nLiBDaGFuZ2UgdGhpcyB0byBwb3NpdGl2 ZSBsb2dpYy4KLQotU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJv bml4LmRlPgotUmV2aWV3ZWQtYnk6IERhbmllbCBXYWx0ZXIgPGR3YWx0ZXJAc2lnbWEtc3Rhci5h dD4KLVNpZ25lZC1vZmYtYnk6IE1hcmMgS2xlaW5lLUJ1ZGRlIDxta2xAcGVuZ3V0cm9uaXguZGU+ Ci0tLS0KLSBta2ZzLnViaWZzL21rZnMudWJpZnMuYyB8IDIyICsrKysrKysrKysrLS0tLS0tLS0t LS0KLSAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9ta2ZzLnViaWZzL21rZnMudWJpZnMuYyBiL21rZnMudWJpZnMvbWtmcy51 Ymlmcy5jCi1pbmRleCBjYTE3ZTJiY2EzYWMuLjFiODE2YWU0ODNlMCAxMDA2NDQKLS0tLSBhL21r ZnMudWJpZnMvbWtmcy51Ymlmcy5jCi0rKysgYi9ta2ZzLnViaWZzL21rZnMudWJpZnMuYwotQEAg LTEzOTUsMTIgKzEzOTUsMTIgQEAgc3RhdGljIGludCBhZGRfbm9uX2Rpcihjb25zdCBjaGFyICpw YXRoX25hbWUsIGlub190ICppbnVtLCB1bnNpZ25lZCBpbnQgbmxpbmssCi0gICogQGRpcl9uYW1l OiBkaXJlY3RvcnkgcGF0aCBuYW1lCi0gICogQGRpcl9pbnVtOiBVQklGUyBpbm9kZSBudW1iZXIg b2YgZGlyZWN0b3J5Ci0gICogQHN0OiBkaXJlY3RvcnkgaW5vZGUgc3RhdGlzdGljcwotLSAqIEBu b25fZXhpc3Rpbmc6IG5vbi16ZXJvIGlmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZvciBhIGRp cmVjdG9yeSB3aGljaAotLSAqICAgICAgICAgICAgICAgIGRvZXMgbm90IGV4aXN0IG9uIHRoZSBo b3N0IGZpbGUtc3lzdGVtIGFuZCBpdCBpcyBiZWluZwotLSAqICAgICAgICAgICAgICAgIGNyZWF0 ZWQgYmVjYXVzZSBpdCBpcyBkZWZpbmVkIGluIHRoZSBkZXZpY2UgdGFibGUgZmlsZS4KLSsgKiBA ZXhpc3Rpbmc6IHplcm8gaWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGEgZGlyZWN0b3J5 IHdoaWNoCi0rICogICAgICAgICAgICBkb2VzIG5vdCBleGlzdCBvbiB0aGUgaG9zdCBmaWxlLXN5 c3RlbSBhbmQgaXQgaXMgYmVpbmcKLSsgKiAgICAgICAgICAgIGNyZWF0ZWQgYmVjYXVzZSBpdCBp cyBkZWZpbmVkIGluIHRoZSBkZXZpY2UgdGFibGUgZmlsZS4KLSAgKi8KLSBzdGF0aWMgaW50IGFk ZF9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyX25hbWUsIGlub190IGRpcl9pbnVtLCBzdHJ1Y3Qg c3RhdCAqc3QsCi0tCQkJIGludCBub25fZXhpc3RpbmcpCi0rCQkJIGludCBleGlzdGluZykKLSB7 Ci0gCXN0cnVjdCBkaXJlbnQgKmVudHJ5OwotIAlESVIgKmRpciA9IE5VTEw7Ci1AQCAtMTQxNiw3 ICsxNDE2LDcgQEAgc3RhdGljIGludCBhZGRfZGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRpcl9uYW1l LCBpbm9fdCBkaXJfaW51bSwgc3RydWN0IHN0YXQgKnN0LAotIAl1bnNpZ25lZCBsb25nIGxvbmcg ZGlyX2NyZWF0X3NxbnVtID0gKytjLT5tYXhfc3FudW07Ci0gCi0gCWRiZ19tc2coMiwgIiVzIiwg ZGlyX25hbWUpOwotLQlpZiAoIW5vbl9leGlzdGluZykgewotKwlpZiAoZXhpc3RpbmcpIHsKLSAJ CWRpciA9IG9wZW5kaXIoZGlyX25hbWUpOwotIAkJaWYgKGRpciA9PSBOVUxMKQotIAkJCXJldHVy biBzeXNfZXJyX21zZygiY2Fubm90IG9wZW4gZGlyZWN0b3J5ICclcyciLAotQEAgLTE0MzQsNyAr MTQzNCw3IEBAIHN0YXRpYyBpbnQgYWRkX2RpcmVjdG9yeShjb25zdCBjaGFyICpkaXJfbmFtZSwg aW5vX3QgZGlyX2ludW0sIHN0cnVjdCBzdGF0ICpzdCwKLSAJICogQmVmb3JlIGFkZGluZyB0aGUg ZGlyZWN0b3J5IGl0c2VsZiwgd2UgaGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxsIHRoZQotIAkgKiBl bnRyaWVzIHRoZSBkZXZpY2UgdGFibGUgYWRkcyB0byB0aGlzIGRpcmVjdG9yeSBhbmQgY3JlYXRl IHRoZW0uCi0gCSAqLwotLQlmb3IgKDsgIW5vbl9leGlzdGluZzspIHsKLSsJZm9yICg7IGV4aXN0 aW5nOykgewotIAkJc3RydWN0IHN0YXQgZGVudF9zdDsKLSAKLSAJCWVycm5vID0gMDsKLUBAIC0x NDkyLDcgKzE0OTIsNyBAQCBzdGF0aWMgaW50IGFkZF9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGly X25hbWUsIGlub190IGRpcl9pbnVtLCBzdHJ1Y3Qgc3RhdCAqc3QsCi0gCQlpbnVtID0gKytjLT5o aWdoZXN0X2ludW07Ci0gCi0gCQlpZiAoU19JU0RJUihkZW50X3N0LnN0X21vZGUpKSB7Ci0tCQkJ ZXJyID0gYWRkX2RpcmVjdG9yeShuYW1lLCBpbnVtLCAmZGVudF9zdCwgMCk7Ci0rCQkJZXJyID0g YWRkX2RpcmVjdG9yeShuYW1lLCBpbnVtLCAmZGVudF9zdCwgMSk7Ci0gCQkJaWYgKGVycikKLSAJ CQkJZ290byBvdXRfZnJlZTsKLSAJCQlubGluayArPSAxOwotQEAgLTE1NDQsNyArMTU0NCw3IEBA IHN0YXRpYyBpbnQgYWRkX2RpcmVjdG9yeShjb25zdCBjaGFyICpkaXJfbmFtZSwgaW5vX3QgZGly X2ludW0sIHN0cnVjdCBzdGF0ICpzdCwKLSAJCWludW0gPSArK2MtPmhpZ2hlc3RfaW51bTsKLSAK LSAJCWlmIChTX0lTRElSKG5oX2VsdC0+bW9kZSkpIHsKLS0JCQllcnIgPSBhZGRfZGlyZWN0b3J5 KG5hbWUsIGludW0sICZmYWtlX3N0LCAxKTsKLSsJCQllcnIgPSBhZGRfZGlyZWN0b3J5KG5hbWUs IGludW0sICZmYWtlX3N0LCAwKTsKLSAJCQlpZiAoZXJyKQotIAkJCQlnb3RvIG91dF9mcmVlOwot IAkJCW5saW5rICs9IDE7Ci1AQCAtMTU3MCwxNCArMTU3MCwxNCBAQCBzdGF0aWMgaW50IGFkZF9k aXJlY3RvcnkoY29uc3QgY2hhciAqZGlyX25hbWUsIGlub190IGRpcl9pbnVtLCBzdHJ1Y3Qgc3Rh dCAqc3QsCi0gCQlnb3RvIG91dF9mcmVlOwotIAotIAlmcmVlKG5hbWUpOwotLQlpZiAoIW5vbl9l eGlzdGluZyAmJiBjbG9zZWRpcihkaXIpID09IC0xKQotKwlpZiAoZXhpc3RpbmcgJiYgY2xvc2Vk aXIoZGlyKSA9PSAtMSkKLSAJCXJldHVybiBzeXNfZXJyX21zZygiZXJyb3IgY2xvc2luZyBkaXJl Y3RvcnkgJyVzJyIsIGRpcl9uYW1lKTsKLSAKLSAJcmV0dXJuIDA7Ci0gCi0gb3V0X2ZyZWU6Ci0g CWZyZWUobmFtZSk7Ci0tCWlmICghbm9uX2V4aXN0aW5nKQotKwlpZiAoZXhpc3RpbmcpCi0gCQlj bG9zZWRpcihkaXIpOwotIAlyZXR1cm4gLTE7Ci0gfQotQEAgLTE2MjQsNyArMTYyNCw3IEBAIHN0 YXRpYyBpbnQgd3JpdGVfZGF0YSh2b2lkKQotIAl9Ci0gCi0gCWhlYWRfZmxhZ3MgPSAwOwotLQll cnIgPSBhZGRfZGlyZWN0b3J5KHJvb3QsIFVCSUZTX1JPT1RfSU5PLCAmcm9vdF9zdCwgIXJvb3Qp OwotKwllcnIgPSBhZGRfZGlyZWN0b3J5KHJvb3QsIFVCSUZTX1JPT1RfSU5PLCAmcm9vdF9zdCwg ISFyb290KTsKLSAJaWYgKGVycikKLSAJCXJldHVybiBlcnI7Ci0gCWVyciA9IGFkZF9tdWx0aV9s aW5rZWRfZmlsZXMoKTsKZGlmZiAtLWdpdCBhL3BhdGNoZXMvbXRkLXV0aWxzLTEuNS4yLzAwMDQt bWtmcy51Ymlmcy11c2UteG1hbGxvYy14emFsbG9jLWZvci1hbGxvY2F0aW5nLW1lbW9yeS5wYXRj aCBiL3BhdGNoZXMvbXRkLXV0aWxzLTEuNS4yLzAwMDQtbWtmcy51Ymlmcy11c2UteG1hbGxvYy14 emFsbG9jLWZvci1hbGxvY2F0aW5nLW1lbW9yeS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggNGZjOGU3MC4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL210ZC11dGlscy0xLjUuMi8w MDA0LW1rZnMudWJpZnMtdXNlLXhtYWxsb2MteHphbGxvYy1mb3ItYWxsb2NhdGluZy1tZW1vcnku cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotRnJvbTogU2FzY2hhIEhhdWVy IDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgotRGF0ZTogRnJpLCAyOCBOb3YgMjAxNCAxMToxMToy NiArMDEwMAotU3ViamVjdDogW1BBVENIXSBta2ZzLnViaWZzOiB1c2UgeG1hbGxvYy94emFsbG9j IGZvciBhbGxvY2F0aW5nIG1lbW9yeQotCi1TaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMu aGF1ZXJAcGVuZ3V0cm9uaXguZGU+Ci1SZXZpZXdlZC1ieTogRGFuaWVsIFdhbHRlciA8ZHdhbHRl ckBzaWdtYS1zdGFyLmF0PgotU2lnbmVkLW9mZi1ieTogTWFyYyBLbGVpbmUtQnVkZGUgPG1rbEBw ZW5ndXRyb25peC5kZT4KLS0tLQotIG1rZnMudWJpZnMvbWtmcy51Ymlmcy5jIHwgNjQgKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFu Z2VkLCAxNCBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL21r ZnMudWJpZnMvbWtmcy51Ymlmcy5jIGIvbWtmcy51Ymlmcy9ta2ZzLnViaWZzLmMKLWluZGV4IDFi ODE2YWU0ODNlMC4uMDQ5MjE5YjUyY2M1IDEwMDY0NAotLS0tIGEvbWtmcy51Ymlmcy9ta2ZzLnVi aWZzLmMKLSsrKyBiL21rZnMudWJpZnMvbWtmcy51Ymlmcy5jCi1AQCAtMjU5LDEzICsyNTksOCBA QCBzdGF0aWMgaW50IGlzX2NvbnRhaW5lZChjb25zdCBjaGFyICpmaWxlLCBjb25zdCBjaGFyICpk aXIpCi0gCWZpbGVfYmFzZSA9IGRpcm5hbWUoY29weSk7Ci0gCi0gCS8qIFR1cm4gdGhlIHBhdGhz IGludG8gdGhlIGNhbm9uaWNhbCBmb3JtICovCi0tCXJlYWxfZmlsZSA9IG1hbGxvYyhQQVRIX01B WCk7Ci0tCWlmICghcmVhbF9maWxlKQotLQkJZ290byBvdXRfZnJlZTsKLS0KLS0JcmVhbF9kaXIg PSBtYWxsb2MoUEFUSF9NQVgpOwotLQlpZiAoIXJlYWxfZGlyKQotLQkJZ290byBvdXRfZnJlZTsK LSsJcmVhbF9maWxlID0geG1hbGxvYyhQQVRIX01BWCk7Ci0rCXJlYWxfZGlyID0geG1hbGxvYyhQ QVRIX01BWCk7Ci0gCi0gCWlmICghcmVhbHBhdGgoZmlsZV9iYXNlLCByZWFsX2ZpbGUpKSB7Ci0g CQlwZXJyb3IoIkNvdWxkIG5vdCBjYW5vbmljYWxpemUgZmlsZSBwYXRoIik7Ci1AQCAtNTAwLDkg KzQ5NSw3IEBAIHN0YXRpYyBpbnQgZ2V0X29wdGlvbnMoaW50IGFyZ2MsIGNoYXIqKmFyZ3YpCi0g CQljYXNlICdyJzoKLSAJCWNhc2UgJ2QnOgotIAkJCXJvb3RfbGVuID0gc3RybGVuKG9wdGFyZyk7 Ci0tCQkJcm9vdCA9IG1hbGxvYyhyb290X2xlbiArIDIpOwotLQkJCWlmICghcm9vdCkKLS0JCQkJ cmV0dXJuIGVycl9tc2coImNhbm5vdCBhbGxvY2F0ZSBtZW1vcnkiKTsKLSsJCQlyb290ID0geG1h bGxvYyhyb290X2xlbiArIDIpOwotIAotIAkJCS8qCi0gCQkJICogVGhlIGZ1cnRoZXIgY29kZSBl eHBlY3RzICcvJyBhdCB0aGUgZW5kIG9mIHRoZSByb290Ci1AQCAtOTEwLDkgKzkwMyw3IEBAIHN0 YXRpYyBpbnQgYWRkX3RvX2luZGV4KHVuaW9uIHViaWZzX2tleSAqa2V5LCBjaGFyICpuYW1lLCBp bnQgbG51bSwgaW50IG9mZnMsCi0gCXN0cnVjdCBpZHhfZW50cnkgKmU7Ci0gCi0gCWRiZ19tc2co MywgIkxFQiAlZCBvZmZzICVkIGxlbiAlZCIsIGxudW0sIG9mZnMsIGxlbik7Ci0tCWUgPSBtYWxs b2Moc2l6ZW9mKHN0cnVjdCBpZHhfZW50cnkpKTsKLS0JaWYgKCFlKQotLQkJcmV0dXJuIGVycl9t c2coIm91dCBvZiBtZW1vcnkiKTsKLSsJZSA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBpZHhfZW50 cnkpKTsKLSAJZS0+bmV4dCA9IE5VTEw7Ci0gCWUtPnByZXYgPSBpZHhfbGlzdF9sYXN0OwotIAll LT5rZXkgPSAqa2V5OwotQEAgLTExOTMsOSArMTE4NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW51bV9t YXBwaW5nICpsb29rdXBfaW51bV9tYXBwaW5nKGRldl90IGRldiwgaW5vX3QgaW51bSkKLSAJCQly ZXR1cm4gaW07Ci0gCQlpbSA9IGltLT5uZXh0OwotIAl9Ci0tCWltID0gbWFsbG9jKHNpemVvZihz dHJ1Y3QgaW51bV9tYXBwaW5nKSk7Ci0tCWlmICghaW0pCi0tCQlyZXR1cm4gTlVMTDsKLSsJaW0g PSB4bWFsbG9jKHNpemVvZihzdHJ1Y3QgaW51bV9tYXBwaW5nKSk7Ci0gCWltLT5uZXh0ID0gaGFz aF90YWJsZVtrXTsKLSAJaW0tPnByZXYgPSBOVUxMOwotIAlpbS0+ZGV2ID0gZGV2OwotQEAgLTEz NTUsOSArMTM0NCw3IEBAIHN0YXRpYyBpbnQgYWRkX25vbl9kaXIoY29uc3QgY2hhciAqcGF0aF9u YW1lLCBpbm9fdCAqaW51bSwgdW5zaWduZWQgaW50IG5saW5rLAotIAkJCS8qIE5ldyBlbnRyeSAq LwotIAkJCWltLT51c2VfaW51bSA9ICppbnVtOwotIAkJCWltLT51c2VfbmxpbmsgPSAxOwotLQkJ CWltLT5wYXRoX25hbWUgPSBtYWxsb2Moc3RybGVuKHBhdGhfbmFtZSkgKyAxKTsKLS0JCQlpZiAo IWltLT5wYXRoX25hbWUpCi0tCQkJCXJldHVybiBlcnJfbXNnKCJvdXQgb2YgbWVtb3J5Iik7Ci0r CQkJaW0tPnBhdGhfbmFtZSA9IHhtYWxsb2Moc3RybGVuKHBhdGhfbmFtZSkgKyAxKTsKLSAJCQlz dHJjcHkoaW0tPnBhdGhfbmFtZSwgcGF0aF9uYW1lKTsKLSAJCX0gZWxzZSB7Ci0gCQkJLyogRXhp c3RpbmcgZW50cnkgKi8KLUBAIC0xNzA3LDIxICsxNjk0LDE0IEBAIHN0YXRpYyBpbnQgd3JpdGVf aW5kZXgodm9pZCkKLSAJaGVhZF9mbGFncyA9IExQUk9QU19JTkRFWDsKLSAJLyogQWxsb2NhdGUg aW5kZXggbm9kZSAqLwotIAlpZHhfc3ogPSB1Ymlmc19pZHhfbm9kZV9zeihjLCBjLT5mYW5vdXQp OwotLQlpZHggPSBtYWxsb2MoaWR4X3N6KTsKLS0JaWYgKCFpZHgpCi0tCQlyZXR1cm4gZXJyX21z Zygib3V0IG9mIG1lbW9yeSIpOwotKwlpZHggPSB4bWFsbG9jKGlkeF9zeik7Ci0gCS8qIE1ha2Ug YW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gc29ydCB0aGUgaW5kZXggbGlzdCAqLwotIAlzeiA9IGlk eF9jbnQgKiBzaXplb2Yoc3RydWN0IGlkeF9lbnRyeSAqKTsKLSAJaWYgKHN6IC8gc2l6ZW9mKHN0 cnVjdCBpZHhfZW50cnkgKikgIT0gaWR4X2NudCkgewotIAkJZnJlZShpZHgpOwotIAkJcmV0dXJu IGVycl9tc2coImluZGV4IGlzIHRvbyBiaWcgKCV6dSBlbnRyaWVzKSIsIGlkeF9jbnQpOwotIAl9 Ci0tCWlkeF9wdHIgPSBtYWxsb2Moc3opOwotLQlpZiAoIWlkeF9wdHIpIHsKLS0JCWZyZWUoaWR4 KTsKLS0JCXJldHVybiBlcnJfbXNnKCJvdXQgb2YgbWVtb3J5IC0gbmVlZGVkICV6dSBieXRlcyBm b3IgaW5kZXgiLAotLQkJCSAgICAgICBzeik7Ci0tCX0KLSsJaWR4X3B0ciA9IHhtYWxsb2Moc3op OwotIAlpZHhfcHRyWzBdID0gaWR4X2xpc3RfZmlyc3Q7Ci0gCWZvciAoaSA9IDE7IGkgPCBpZHhf Y250OyBpKyspCi0gCQlpZHhfcHRyW2ldID0gaWR4X3B0cltpIC0gMV0tPm5leHQ7Ci1AQCAtMjE2 NCwxMyArMjE0NCw4IEBAIHN0YXRpYyBpbnQgaW5pdCh2b2lkKQotIAljLT5scHRfZmlyc3QgPSBV QklGU19MT0dfTE5VTSArIGMtPmxvZ19sZWJzOwotIAljLT5scHRfbGFzdCA9IGMtPmxwdF9maXJz dCArIGMtPmxwdF9sZWJzIC0gMTsKLSAKLS0JYy0+bHB0ID0gbWFsbG9jKGMtPm1haW5fbGVicyAq IHNpemVvZihzdHJ1Y3QgdWJpZnNfbHByb3BzKSk7Ci0tCWlmICghYy0+bHB0KQotLQkJcmV0dXJu IGVycl9tc2coInVuYWJsZSB0byBhbGxvY2F0ZSBMUFQiKTsKLS0KLS0JYy0+bHRhYiA9IG1hbGxv YyhjLT5scHRfbGVicyAqIHNpemVvZihzdHJ1Y3QgdWJpZnNfbHByb3BzKSk7Ci0tCWlmICghYy0+ bHRhYikKLS0JCXJldHVybiBlcnJfbXNnKCJ1bmFibGUgdG8gYWxsb2NhdGUgTFBUIGx0YWIiKTsK LSsJYy0+bHB0ID0geG1hbGxvYyhjLT5tYWluX2xlYnMgKiBzaXplb2Yoc3RydWN0IHViaWZzX2xw cm9wcykpOwotKwljLT5sdGFiID0geG1hbGxvYyhjLT5scHRfbGVicyAqIHNpemVvZihzdHJ1Y3Qg dWJpZnNfbHByb3BzKSk7Ci0gCi0gCS8qIEluaXRpYWxpemUgTFBUJ3Mgb3duIGxwcm9wcyAqLwot IAlmb3IgKGkgPSAwOyBpIDwgYy0+bHB0X2xlYnM7IGkrKykgewotQEAgLTIxODIsMjMgKzIxNTcs MTIgQEAgc3RhdGljIGludCBpbml0KHZvaWQpCi0gCWMtPmRhcmtfd20gPSBBTElHTihVQklGU19N QVhfTk9ERV9TWiwgYy0+bWluX2lvX3NpemUpOwotIAlkYmdfbXNnKDEsICJkZWFkX3dtICVkICBk YXJrX3dtICVkIiwgYy0+ZGVhZF93bSwgYy0+ZGFya193bSk7Ci0gCi0tCWxlYl9idWYgPSBtYWxs b2MoYy0+bGViX3NpemUpOwotLQlpZiAoIWxlYl9idWYpCi0tCQlyZXR1cm4gZXJyX21zZygib3V0 IG9mIG1lbW9yeSIpOwotLQotLQlub2RlX2J1ZiA9IG1hbGxvYyhOT0RFX0JVRkZFUl9TSVpFKTsK LS0JaWYgKCFub2RlX2J1ZikKLS0JCXJldHVybiBlcnJfbXNnKCJvdXQgb2YgbWVtb3J5Iik7Ci0t Ci0tCWJsb2NrX2J1ZiA9IG1hbGxvYyhVQklGU19CTE9DS19TSVpFKTsKLS0JaWYgKCFibG9ja19i dWYpCi0tCQlyZXR1cm4gZXJyX21zZygib3V0IG9mIG1lbW9yeSIpOwotKwlsZWJfYnVmID0geG1h bGxvYyhjLT5sZWJfc2l6ZSk7Ci0rCW5vZGVfYnVmID0geG1hbGxvYyhOT0RFX0JVRkZFUl9TSVpF KTsKLSsJYmxvY2tfYnVmID0geG1hbGxvYyhVQklGU19CTE9DS19TSVpFKTsKLSAKLSAJc3ogPSBz aXplb2Yoc3RydWN0IGludW1fbWFwcGluZyAqKSAqIEhBU0hfVEFCTEVfU0laRTsKLS0JaGFzaF90 YWJsZSA9IG1hbGxvYyhzeik7Ci0tCWlmICghaGFzaF90YWJsZSkKLS0JCXJldHVybiBlcnJfbXNn KCJvdXQgb2YgbWVtb3J5Iik7Ci0tCW1lbXNldChoYXNoX3RhYmxlLCAwLCBzeik7Ci0rCWhhc2hf dGFibGUgPSB4emFsbG9jKHN6KTsKLSAKLSAJZXJyID0gaW5pdF9jb21wcmVzc2lvbigpOwotIAlp ZiAoZXJyKQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIvMDAwNS1ta2ZzLnVi aWZzLXNpbXBsaWZ5LW1ha2VfcGF0aC13aXRoLXhhc3ByaW50Zi5wYXRjaCBiL3BhdGNoZXMvbXRk LXV0aWxzLTEuNS4yLzAwMDUtbWtmcy51Ymlmcy1zaW1wbGlmeS1tYWtlX3BhdGgtd2l0aC14YXNw cmludGYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0N2E3ZTAuLjAwMDAw MDAKLS0tIGEvcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIvMDAwNS1ta2ZzLnViaWZzLXNpbXBsaWZ5 LW1ha2VfcGF0aC13aXRoLXhhc3ByaW50Zi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICsw LDAgQEAKLUZyb206IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KLURhdGU6 IEZyaSwgMjggTm92IDIwMTQgMTE6MTU6MTggKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gbWtmcy51 Ymlmczogc2ltcGxpZnkgbWFrZV9wYXRoIHdpdGggeGFzcHJpbnRmCi0KLVNpZ25lZC1vZmYtYnk6 IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KLVJldmlld2VkLWJ5OiBEYW5p ZWwgV2FsdGVyIDxkd2FsdGVyQHNpZ21hLXN0YXIuYXQ+Ci1TaWduZWQtb2ZmLWJ5OiBNYXJjIEts ZWluZS1CdWRkZSA8bWtsQHBlbmd1dHJvbml4LmRlPgotLS0tCi0gbWtmcy51Ymlmcy9ta2ZzLnVi aWZzLmMgfCAxMCArKystLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL21rZnMudWJpZnMvbWtmcy51Ymlmcy5jIGIv bWtmcy51Ymlmcy9ta2ZzLnViaWZzLmMKLWluZGV4IDA0OTIxOWI1MmNjNS4uYTk5YzYxMzgyMzA0 IDEwMDY0NAotLS0tIGEvbWtmcy51Ymlmcy9ta2ZzLnViaWZzLmMKLSsrKyBiL21rZnMudWJpZnMv bWtmcy51Ymlmcy5jCi1AQCAtMjI3LDEzICsyMjcsOSBAQCBzdGF0aWMgY2hhciAqbWFrZV9wYXRo KGNvbnN0IGNoYXIgKmRpciwgY29uc3QgY2hhciAqbmFtZSkKLSB7Ci0gCWNoYXIgKnM7Ci0gCi0t CXMgPSBtYWxsb2Moc3RybGVuKGRpcikgKyBzdHJsZW4obmFtZSkgKyAyKTsKLS0JaWYgKCFzKQot LQkJcmV0dXJuIE5VTEw7Ci0tCXN0cmNweShzLCBkaXIpOwotLQlpZiAoZGlyW3N0cmxlbihkaXIp IC0gMV0gIT0gJy8nKQotLQkJc3RyY2F0KHMsICIvIik7Ci0tCXN0cmNhdChzLCBuYW1lKTsKLSsJ eGFzcHJpbnRmKCZzLCAiJXMlcyVzIiwKLSsJCSAgZGlyLCBkaXJbc3RybGVuKGRpcikgLSAxXSA9 PSAnLycgPyAiIiA6ICIvIiwgbmFtZSk7Ci0rCi0gCXJldHVybiBzOwotIH0KLSAKZGlmZiAtLWdp dCBhL3BhdGNoZXMvbXRkLXV0aWxzLTEuNS4yLzAwMDYtbWtmcy51Ymlmcy1BZGQtZXh0ZW5kZWQt YXR0cmlidXRlLXN1cHBvcnQucGF0Y2ggYi9wYXRjaGVzL210ZC11dGlscy0xLjUuMi8wMDA2LW1r ZnMudWJpZnMtQWRkLWV4dGVuZGVkLWF0dHJpYnV0ZS1zdXBwb3J0LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA3N2UxNjEzLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvbXRkLXV0 aWxzLTEuNS4yLzAwMDYtbWtmcy51Ymlmcy1BZGQtZXh0ZW5kZWQtYXR0cmlidXRlLXN1cHBvcnQu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNjkgKzAsMCBAQAotRnJvbTogU2FzY2hhIEhhdWVy IDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgotRGF0ZTogRnJpLCAyOCBOb3YgMjAxNCAwODoxNjox NSArMDEwMAotU3ViamVjdDogW1BBVENIXSBta2ZzLnViaWZzOiBBZGQgZXh0ZW5kZWQgYXR0cmli dXRlIHN1cHBvcnQKLQotVGhpcyBhZGRzIGV4dGVuZGVkIGF0dHJpYnV0ZSBzdXBwb3J0IHRvIG1r ZnMudWJpZnMuIFdoZW4gY3JlYXRpbmcKLWFuIGltYWdlIGZyb20gYSBkaXJlY3RvcnkgdHJlZSB0 aGUgZXhpc3RpbmcgZXh0ZW5kZWQgYXR0cmlidXRlcyBhcmUKLWFkZGVkIHRvIHRoZSBVQklGUyBp bWFnZS4KLQotU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4 LmRlPgotU2lnbmVkLW9mZi1ieTogTWFyYyBLbGVpbmUtQnVkZGUgPG1rbEBwZW5ndXRyb25peC5k ZT4KLS0tLQotIG1rZnMudWJpZnMva2V5LmggICAgICAgIHwgIDE4ICsrKysrCi0gbWtmcy51Ymlm cy9ta2ZzLnViaWZzLmMgfCAyMDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tCi0gbWtmcy51Ymlmcy91Ymlmcy5oICAgICAgfCAgIDkgKysrCi0gMyBmaWxl cyBjaGFuZ2VkLCAyMDUgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9ta2ZzLnViaWZzL2tleS5oIGIvbWtmcy51Ymlmcy9rZXkuaAotaW5kZXggZDNhMDJkNGZm MWE2Li4zOTM3OWZkNDgxNzggMTAwNjQ0Ci0tLS0gYS9ta2ZzLnViaWZzL2tleS5oCi0rKysgYi9t a2ZzLnViaWZzL2tleS5oCi1AQCAtMTE5LDYgKzExOSwyNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg ZGVudF9rZXlfaW5pdChjb25zdCBzdHJ1Y3QgdWJpZnNfaW5mbyAqYywKLSB9Ci0gCi0gLyoqCi0r ICogeGVudF9rZXlfaW5pdCAtIGluaXRpYWxpemUgZXh0ZW5kZWQgYXR0cmlidXRlIGVudHJ5IGtl eS4KLSsgKiBAYzogVUJJRlMgZmlsZS1zeXN0ZW0gZGVzY3JpcHRpb24gb2JqZWN0Ci0rICogQGtl eToga2V5IHRvIGluaXRpYWxpemUKLSsgKiBAaW51bTogaG9zdCBpbm9kZSBudW1iZXIKLSsgKiBA bm06IGV4dGVuZGVkIGF0dHJpYnV0ZSBlbnRyeSBuYW1lIGFuZCBsZW5ndGgKLSsgKi8KLStzdGF0 aWMgaW5saW5lIHZvaWQgeGVudF9rZXlfaW5pdChjb25zdCBzdHJ1Y3QgdWJpZnNfaW5mbyAqYywK LSsJCQkJIHVuaW9uIHViaWZzX2tleSAqa2V5LCBpbm9fdCBpbnVtLAotKwkJCQkgY29uc3Qgc3Ry dWN0IHFzdHIgKm5tKQotK3sKLSsJdWludDMyX3QgaGFzaCA9IGMtPmtleV9oYXNoKG5tLT5uYW1l LCBubS0+bGVuKTsKLSsKLSsJdWJpZnNfYXNzZXJ0KCEoaGFzaCAmIH5VQklGU19TX0tFWV9IQVNI X01BU0spKTsKLSsJa2V5LT51MzJbMF0gPSBpbnVtOwotKwlrZXktPnUzMlsxXSA9IGhhc2ggfCAo VUJJRlNfWEVOVF9LRVkgPDwgVUJJRlNfU19LRVlfSEFTSF9CSVRTKTsKLSt9Ci0rCi0rLyoqCi0g ICogZGF0YV9rZXlfaW5pdCAtIGluaXRpYWxpemUgZGF0YSBrZXkuCi0gICogQGM6IFVCSUZTIGZp bGUtc3lzdGVtIGRlc2NyaXB0aW9uIG9iamVjdAotICAqIEBrZXk6IGtleSB0byBpbml0aWFsaXpl Ci1kaWZmIC0tZ2l0IGEvbWtmcy51Ymlmcy9ta2ZzLnViaWZzLmMgYi9ta2ZzLnViaWZzL21rZnMu dWJpZnMuYwotaW5kZXggYTk5YzYxMzgyMzA0Li4zMGNkMTBjMjU4MTkgMTAwNjQ0Ci0tLS0gYS9t a2ZzLnViaWZzL21rZnMudWJpZnMuYwotKysrIGIvbWtmcy51Ymlmcy9ta2ZzLnViaWZzLmMKLUBA IC0yNSw2ICsyNSwxMCBAQAotICNpbmNsdWRlICJta2ZzLnViaWZzLmgiCi0gI2luY2x1ZGUgPGNy YzMyLmg+Ci0gI2luY2x1ZGUgImNvbW1vbi5oIgotKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsj aWZuZGVmIFdJVEhPVVRfWEFUVFIKLSsjaW5jbHVkZSA8YXR0ci94YXR0ci5oPgotKyNlbmRpZgot IAotIC8qIFNpemUgKHByaW1lIG51bWJlcikgb2YgaGFzaCB0YWJsZSBmb3IgbGluayBjb3VudGlu ZyAqLwotICNkZWZpbmUgSEFTSF9UQUJMRV9TSVpFIDEwMDk5Ci1AQCAtOTgwLDIwICs5ODQsMTcw IEBAIHN0YXRpYyBpbnQgYWRkX25vZGUodW5pb24gdWJpZnNfa2V5ICprZXksIGNoYXIgKm5hbWUs IHZvaWQgKm5vZGUsIGludCBsZW4pCi0gCXJldHVybiAwOwotIH0KLSAKLSsjaWZkZWYgV0lUSE9V VF9YQVRUUgotK3N0YXRpYyBpbmxpbmUgaW50IGlub2RlX2FkZF94YXR0cihzdHJ1Y3QgdWJpZnNf aW5vX25vZGUgKmhvc3RfaW5vLAotKwkJCQkgIGNvbnN0IGNoYXIgKnBhdGhfbmFtZSwgc3RydWN0 IHN0YXQgKnN0LCBpbm9fdCBpbnVtKQotK3sKLSsJKHZvaWQpaG9zdF9pbm87Ci0rCSh2b2lkKXBh dGhfbmFtZTsKLSsJKHZvaWQpc3Q7Ci0rCSh2b2lkKWludW07Ci0rCi0rCXJldHVybiAwOwotK30K LSsjZWxzZQotK3N0YXRpYyBpbnQgYWRkX3hhdHRyKHN0cnVjdCBzdGF0ICpzdCwgaW5vX3QgaW51 bSwgY29uc3Qgdm9pZCAqZGF0YSwKLSsJCSAgICAgdW5zaWduZWQgaW50IGRhdGFfbGVuLCBzdHJ1 Y3QgcXN0ciAqbm0pCi0rewotKwlzdHJ1Y3QgdWJpZnNfaW5vX25vZGUgKmlubzsKLSsJc3RydWN0 IHViaWZzX2RlbnRfbm9kZSAqeGVudDsKLSsJdW5pb24gdWJpZnNfa2V5IHhrZXksIG5rZXk7Ci0r CWludCBsZW4sIHJldDsKLSsKLSsJeGVudCA9IHh6YWxsb2Moc2l6ZW9mKCp4ZW50KSArIG5tLT5s ZW4gKyAxKTsKLSsJaW5vID0geHphbGxvYyhzaXplb2YoKmlubykgKyBkYXRhX2xlbik7Ci0rCi0r CXhlbnRfa2V5X2luaXQoYywgJnhrZXksIGludW0sIG5tKTsKLSsJeGVudC0+Y2gubm9kZV90eXBl ID0gVUJJRlNfWEVOVF9OT0RFOwotKwlrZXlfd3JpdGUoJnhrZXksICZ4ZW50LT5rZXkpOwotKwot KwlsZW4gPSBVQklGU19YRU5UX05PREVfU1ogKyBubS0+bGVuICsgMTsKLSsKLSsJeGVudC0+Y2gu bGVuID0gbGVuOwotKwl4ZW50LT5wYWRkaW5nMSA9IDA7Ci0rCXhlbnQtPnR5cGUgPSBVQklGU19J VFlQRV9ESVI7Ci0rCXhlbnQtPm5sZW4gPSBjcHVfdG9fbGUxNihubS0+bGVuKTsKLSsKLSsJbWVt Y3B5KHhlbnQtPm5hbWUsIG5tLT5uYW1lLCBubS0+bGVuICsgMSk7Ci0rCi0rCWludW0gPSArK2Mt PmhpZ2hlc3RfaW51bTsKLSsJY3JlYXRfc3FudW0gPSArK2MtPm1heF9zcW51bTsKLSsKLSsJeGVu dC0+aW51bSA9IGNwdV90b19sZTY0KGludW0pOwotKwotKwlyZXQgPSBhZGRfbm9kZSgmeGtleSwg bm0tPm5hbWUsIHhlbnQsIGxlbik7Ci0rCWlmIChyZXQpCi0rCQlnb3RvIG91dDsKLSsKLSsJaW5v LT5jcmVhdF9zcW51bSA9IGNwdV90b19sZTY0KGNyZWF0X3NxbnVtKTsKLSsJaW5vLT5ubGluayAg ICAgID0gY3B1X3RvX2xlMzIoc3QtPnN0X25saW5rKTsKLSsJLyoKLSsJICogVGhlIHRpbWUgZmll bGRzIGFyZSB1cGRhdGVkIGFzc3VtaW5nIHRoZSBkZWZhdWx0IHRpbWUgZ3JhbnVsYXJpdHkKLSsJ ICogb2YgMSBzZWNvbmQuIFRvIHN1cHBvcnQgZmluZXIgZ3JhbnVsYXJpdGllcywgdXRpbWUoKSB3 b3VsZCBiZSBuZWVkZWQuCi0rCSAqLwotKwlpbm8tPmF0aW1lX3NlYyAgPSBjcHVfdG9fbGU2NChz dC0+c3RfYXRpbWUpOwotKwlpbm8tPmN0aW1lX3NlYyAgPSBjcHVfdG9fbGU2NChzdC0+c3RfY3Rp bWUpOwotKwlpbm8tPm10aW1lX3NlYyAgPSBjcHVfdG9fbGU2NChzdC0+c3RfbXRpbWUpOwotKwlp bm8tPmF0aW1lX25zZWMgPSAwOwotKwlpbm8tPmN0aW1lX25zZWMgPSAwOwotKwlpbm8tPm10aW1l X25zZWMgPSAwOwotKwlpbm8tPnVpZCAgICAgICAgPSBjcHVfdG9fbGUzMihzdC0+c3RfdWlkKTsK LSsJaW5vLT5naWQgICAgICAgID0gY3B1X3RvX2xlMzIoc3QtPnN0X2dpZCk7Ci0rCWluby0+Y29t cHJfdHlwZSA9IGNwdV90b19sZTE2KGMtPmRlZmF1bHRfY29tcHIpOwotKwlpbm8tPmNoLm5vZGVf dHlwZSA9IFVCSUZTX0lOT19OT0RFOwotKwotKwlpbm9fa2V5X2luaXQoJm5rZXksIGludW0pOwot KwlrZXlfd3JpdGUoJm5rZXksICZpbm8tPmtleSk7Ci0rCi0rCWluby0+c2l6ZSAgICAgICA9IGNw dV90b19sZTY0KGRhdGFfbGVuKTsKLSsJaW5vLT5tb2RlICAgICAgID0gY3B1X3RvX2xlMzIoU19J RlJFRyk7Ci0rCWluby0+ZGF0YV9sZW4gICA9IGNwdV90b19sZTMyKGRhdGFfbGVuKTsKLSsJaW5v LT5mbGFncyAgICAgID0gY3B1X3RvX2xlMzIoVUJJRlNfWEFUVFJfRkwpOwotKwotKwlpZiAoZGF0 YV9sZW4pCi0rCQltZW1jcHkoJmluby0+ZGF0YSwgZGF0YSwgZGF0YV9sZW4pOwotKwotKwlyZXQg PSBhZGRfbm9kZSgmbmtleSwgbm0tPm5hbWUsIGlubywgVUJJRlNfSU5PX05PREVfU1ogKyBkYXRh X2xlbikgOwotKwotK291dDoKLSsJZnJlZSh4ZW50KTsKLSsJZnJlZShpbm8pOwotKwotKwlyZXR1 cm4gcmV0OwotK30KLSsKLStzdGF0aWMgaW50IGlub2RlX2FkZF94YXR0cihzdHJ1Y3QgdWJpZnNf aW5vX25vZGUgKmhvc3RfaW5vLAotKwkJCSAgIGNvbnN0IGNoYXIgKnBhdGhfbmFtZSwgc3RydWN0 IHN0YXQgKnN0LCBpbm9fdCBpbnVtKQotK3sKLSsJaW50IHJldDsKLSsJc3RydWN0IHFzdHIgbm07 Ci0rCXZvaWQgKmJ1ZiA9IE5VTEw7Ci0rCXNzaXplX3QgbGVuOwotKwlzc2l6ZV90IHBvcyA9IDA7 Ci0rCi0rCWxlbiA9IGxsaXN0eGF0dHIocGF0aF9uYW1lLCBOVUxMLCAwKTsKLSsJaWYgKGxlbiA8 IDApIHsKLSsJCWlmIChlcnJubyA9PSBFTk9FTlQpCi0rCQkJcmV0dXJuIDA7Ci0rCi0rCQlzeXNf ZXJyX21zZygibGxpc3R4YXR0ciBmYWlsZWQgb24gJXMiLCBwYXRoX25hbWUpOwotKwotKwkJcmV0 dXJuIGxlbjsKLSsJfQotKwotKwlpZiAobGVuID09IDApCi0rCQlnb3RvIG5veGF0dHI7Ci0rCi0r CWJ1ZiA9IHhtYWxsb2MobGVuKTsKLSsKLSsJbGVuID0gbGxpc3R4YXR0cihwYXRoX25hbWUsIGJ1 ZiwgbGVuKTsKLSsJaWYgKGxlbiA8IDApIHsKLSsJCXN5c19lcnJfbXNnKCJsbGlzdHhhdHRyIGZh aWxlZCBvbiAlcyIsIHBhdGhfbmFtZSk7Ci0rCQlnb3RvIG91dF9mcmVlOwotKwl9Ci0rCi0rCXdo aWxlIChwb3MgPCBsZW4pIHsKLSsJCWNoYXIgYXR0cmJ1ZlsxMDI0XSA9IHsgfTsKLSsJCWNoYXIg Km5hbWU7Ci0rCQlzc2l6ZV90IGF0dHJzaXplOwotKwotKwkJbmFtZSA9IGJ1ZiArIHBvczsKLSsJ CXBvcyArPSBzdHJsZW4obmFtZSkgKyAxOwotKwotKwkJYXR0cnNpemUgPSBsZ2V0eGF0dHIocGF0 aF9uYW1lLCBuYW1lLCBhdHRyYnVmLCBzaXplb2YoYXR0cmJ1ZikgLSAxKTsKLSsJCWlmIChhdHRy c2l6ZSA8IDApIHsKLSsJCQlzeXNfZXJyX21zZygibGdldHhhdHRyIGZhaWxlZCBvbiAlcyIsIHBh dGhfbmFtZSk7Ci0rCQkJZ290byBvdXRfZnJlZTsKLSsJCX0KLSsKLSsJCW5tLm5hbWUgPSBuYW1l OwotKwkJbm0ubGVuID0gc3RybGVuKG5hbWUpOwotKwotKwkJaG9zdF9pbm8tPnhhdHRyX2NudCsr OwotKwkJaG9zdF9pbm8tPnhhdHRyX3NpemUgKz0gQ0FMQ19ERU5UX1NJWkUobm0ubGVuKTsKLSsJ CWhvc3RfaW5vLT54YXR0cl9zaXplICs9IENBTENfWEFUVFJfQllURVMoYXR0cnNpemUpOwotKwkJ aG9zdF9pbm8tPnhhdHRyX25hbWVzICs9IG5tLmxlbjsKLSsKLSsJCXJldCA9IGFkZF94YXR0cihz dCwgaW51bSwgYXR0cmJ1ZiwgYXR0cnNpemUsICZubSk7Ci0rCQlpZiAocmV0IDwgMCkKLSsJCQln b3RvIG91dF9mcmVlOwotKwl9Ci0rCi0rbm94YXR0cjoKLSsJZnJlZShidWYpOwotKwlyZXR1cm4g MDsKLSsKLStvdXRfZnJlZToKLSsJZnJlZShidWYpOwotKwotKwlyZXR1cm4gLTE7Ci0rfQotKyNl bmRpZgotKwotIC8qKgotLSAqIGFkZF9pbm9kZV93aXRoX2RhdGEgLSB3cml0ZSBhbiBpbm9kZS4K LSsgKiBhZGRfaW5vZGUgLSB3cml0ZSBhbiBpbm9kZS4KLSAgKiBAc3Q6IHN0YXQgaW5mb3JtYXRp b24gb2Ygc291cmNlIGlub2RlCi0gICogQGludW06IHRhcmdldCBpbm9kZSBudW1iZXIKLSAgKiBA ZGF0YTogaW5vZGUgZGF0YSAoZm9yIHNwZWNpYWwgaW5vZGVzIGUuZy4gc3ltbGluayBwYXRoIGV0 YykKLSAgKiBAZGF0YV9sZW46IGlub2RlIGRhdGEgbGVuZ3RoCi0gICogQGZsYWdzOiBzb3VyY2Ug aW5vZGUgZmxhZ3MKLSAgKi8KLS1zdGF0aWMgaW50IGFkZF9pbm9kZV93aXRoX2RhdGEoc3RydWN0 IHN0YXQgKnN0LCBpbm9fdCBpbnVtLCB2b2lkICpkYXRhLAotLQkJCSAgICAgICB1bnNpZ25lZCBp bnQgZGF0YV9sZW4sIGludCBmbGFncykKLStzdGF0aWMgaW50IGFkZF9pbm9kZShzdHJ1Y3Qgc3Rh dCAqc3QsIGlub190IGludW0sIHZvaWQgKmRhdGEsCi0rCQkgICAgIHVuc2lnbmVkIGludCBkYXRh X2xlbiwgaW50IGZsYWdzLCBjb25zdCBjaGFyICp4YXR0cl9wYXRoKQotIHsKLSAJc3RydWN0IHVi aWZzX2lub19ub2RlICppbm8gPSBub2RlX2J1ZjsKLSAJdW5pb24gdWJpZnNfa2V5IGtleTsKLS0J aW50IGxlbiwgdXNlX2ZsYWdzID0gMDsKLSsJaW50IGxlbiwgdXNlX2ZsYWdzID0gMCwgcmV0Owot IAotIAlpZiAoYy0+ZGVmYXVsdF9jb21wciAhPSBVQklGU19DT01QUl9OT05FKQotIAkJdXNlX2Zs YWdzIHw9IFVCSUZTX0NPTVBSX0ZMOwotQEAgLTEwMzcsMTggKzExOTEsMTMgQEAgc3RhdGljIGlu dCBhZGRfaW5vZGVfd2l0aF9kYXRhKHN0cnVjdCBzdGF0ICpzdCwgaW5vX3QgaW51bSwgdm9pZCAq ZGF0YSwKLSAKLSAJbGVuID0gVUJJRlNfSU5PX05PREVfU1ogKyBkYXRhX2xlbjsKLSAKLS0JcmV0 dXJuIGFkZF9ub2RlKCZrZXksIE5VTEwsIGlubywgbGVuKTsKLS19Ci0rCWlmICh4YXR0cl9wYXRo KSB7Ci0rCQlyZXQgPSBpbm9kZV9hZGRfeGF0dHIoaW5vLCB4YXR0cl9wYXRoLCBzdCwgaW51bSk7 Ci0rCQlpZiAocmV0IDwgMCkKLSsJCQlyZXR1cm4gcmV0OwotKwl9Ci0gCi0tLyoqCi0tICogYWRk X2lub2RlIC0gd3JpdGUgYW4gaW5vZGUuCi0tICogQHN0OiBzdGF0IGluZm9ybWF0aW9uIG9mIHNv dXJjZSBpbm9kZQotLSAqIEBpbnVtOiB0YXJnZXQgaW5vZGUgbnVtYmVyCi0tICogQGZsYWdzOiBz b3VyY2UgaW5vZGUgZmxhZ3MKLS0gKi8KLS1zdGF0aWMgaW50IGFkZF9pbm9kZShzdHJ1Y3Qgc3Rh dCAqc3QsIGlub190IGludW0sIGludCBmbGFncykKLS17Ci0tCXJldHVybiBhZGRfaW5vZGVfd2l0 aF9kYXRhKHN0LCBpbnVtLCBOVUxMLCAwLCBmbGFncyk7Ci0rCXJldHVybiBhZGRfbm9kZSgma2V5 LCBOVUxMLCBpbm8sIGxlbik7Ci0gfQotIAotIC8qKgotQEAgLTEwNjQsOCArMTIxMyw4IEBAIHN0 YXRpYyBpbnQgYWRkX2lub2RlKHN0cnVjdCBzdGF0ICpzdCwgaW5vX3QgaW51bSwgaW50IGZsYWdz KQotICAqIGlzIGJlaW5nIGNyZWF0ZWQgZG9lcyBub3QgZXhpc3QgYXQgdGhlIGhvc3QgZmlsZSBz eXN0ZW0sIGJ1dCBpcyBkZWZpbmVkIGJ5Ci0gICogdGhlIGRldmljZSB0YWJsZS4KLSAgKi8KLS1z dGF0aWMgaW50IGFkZF9kaXJfaW5vZGUoRElSICpkaXIsIGlub190IGludW0sIGxvZmZfdCBzaXpl LCB1bnNpZ25lZCBpbnQgbmxpbmssCi0tCQkJIHN0cnVjdCBzdGF0ICpzdCkKLStzdGF0aWMgaW50 IGFkZF9kaXJfaW5vZGUoY29uc3QgY2hhciAqcGF0aF9uYW1lLCBESVIgKmRpciwgaW5vX3QgaW51 bSwgbG9mZl90IHNpemUsCi0rCQkJIHVuc2lnbmVkIGludCBubGluaywgc3RydWN0IHN0YXQgKnN0 KQotIHsKLSAJaW50IGZkLCBmbGFncyA9IDA7Ci0gCi1AQCAtMTA4MCw3ICsxMjI5LDcgQEAgc3Rh dGljIGludCBhZGRfZGlyX2lub2RlKERJUiAqZGlyLCBpbm9fdCBpbnVtLCBsb2ZmX3Qgc2l6ZSwg dW5zaWduZWQgaW50IG5saW5rLAotIAkJCWZsYWdzID0gMDsKLSAJfQotIAotLQlyZXR1cm4gYWRk X2lub2RlKHN0LCBpbnVtLCBmbGFncyk7Ci0rCXJldHVybiBhZGRfaW5vZGUoc3QsIGludW0sIE5V TEwsIDAsIGZsYWdzLCBwYXRoX25hbWUpOwotIH0KLSAKLSAvKioKLUBAIC0xMDg5LDEyICsxMjM4 LDEyIEBAIHN0YXRpYyBpbnQgYWRkX2Rpcl9pbm9kZShESVIgKmRpciwgaW5vX3QgaW51bSwgbG9m Zl90IHNpemUsIHVuc2lnbmVkIGludCBubGluaywKLSAgKiBAaW51bTogdGFyZ2V0IGlub2RlIG51 bWJlcgotICAqIEBmbGFnczogc291cmNlIGlub2RlIGZsYWdzCi0gICovCi0tc3RhdGljIGludCBh ZGRfZGV2X2lub2RlKHN0cnVjdCBzdGF0ICpzdCwgaW5vX3QgaW51bSwgaW50IGZsYWdzKQotK3N0 YXRpYyBpbnQgYWRkX2Rldl9pbm9kZShjb25zdCBjaGFyICpwYXRoX25hbWUsIHN0cnVjdCBzdGF0 ICpzdCwgaW5vX3QgaW51bSwgaW50IGZsYWdzKQotIHsKLSAJdW5pb24gdWJpZnNfZGV2X2Rlc2Mg ZGV2OwotIAotIAlkZXYuaHVnZSA9IGNwdV90b19sZTY0KG1ha2VkZXYobWFqb3Ioc3QtPnN0X3Jk ZXYpLCBtaW5vcihzdC0+c3RfcmRldikpKTsKLS0JcmV0dXJuIGFkZF9pbm9kZV93aXRoX2RhdGEo c3QsIGludW0sICZkZXYsIDgsIGZsYWdzKTsKLSsJcmV0dXJuIGFkZF9pbm9kZShzdCwgaW51bSwg JmRldiwgOCwgZmxhZ3MsIHBhdGhfbmFtZSk7Ci0gfQotIAotIC8qKgotQEAgLTExMTcsNyArMTI2 Niw3IEBAIHN0YXRpYyBpbnQgYWRkX3N5bWxpbmtfaW5vZGUoY29uc3QgY2hhciAqcGF0aF9uYW1l LCBzdHJ1Y3Qgc3RhdCAqc3QsIGlub190IGludW0sCi0gCWlmIChsZW4gPiBVQklGU19NQVhfSU5P X0RBVEEpCi0gCQlyZXR1cm4gZXJyX21zZygic3ltbGluayB0b28gbG9uZyBmb3IgJXMiLCBwYXRo X25hbWUpOwotIAotLQlyZXR1cm4gYWRkX2lub2RlX3dpdGhfZGF0YShzdCwgaW51bSwgYnVmLCBs ZW4sIGZsYWdzKTsKLSsJcmV0dXJuIGFkZF9pbm9kZShzdCwgaW51bSwgYnVmLCBsZW4sIGZsYWdz LCBwYXRoX25hbWUpOwotIH0KLSAKLSAvKioKLUBAIC0xMjc1LDEyICsxNDI0LDE0IEBAIHN0YXRp YyBpbnQgYWRkX2ZpbGUoY29uc3QgY2hhciAqcGF0aF9uYW1lLCBzdHJ1Y3Qgc3RhdCAqc3QsIGlu b190IGludW0sCi0gCQkJcmV0dXJuIGVycjsKLSAJCX0KLSAJfSB3aGlsZSAocmV0ICE9IDApOwot KwotIAlpZiAoY2xvc2UoZmQpID09IC0xKQotIAkJcmV0dXJuIHN5c19lcnJfbXNnKCJmYWlsZWQg dG8gY2xvc2UgZmlsZSAnJXMnIiwgcGF0aF9uYW1lKTsKLSAJaWYgKGZpbGVfc2l6ZSAhPSBzdC0+ c3Rfc2l6ZSkKLSAJCXJldHVybiBlcnJfbXNnKCJmaWxlIHNpemUgY2hhbmdlZCBkdXJpbmcgd3Jp dGluZyBmaWxlICclcyciLAotIAkJCSAgICAgICBwYXRoX25hbWUpOwotLQlyZXR1cm4gYWRkX2lu b2RlKHN0LCBpbnVtLCBmbGFncyk7Ci0rCi0rCXJldHVybiBhZGRfaW5vZGUoc3QsIGludW0sIE5V TEwsIDAsIGZsYWdzLCBwYXRoX25hbWUpOwotIH0KLSAKLSAvKioKLUBAIC0xMzYwLDE1ICsxNTEx LDE1IEBAIHN0YXRpYyBpbnQgYWRkX25vbl9kaXIoY29uc3QgY2hhciAqcGF0aF9uYW1lLCBpbm9f dCAqaW51bSwgdW5zaWduZWQgaW50IG5saW5rLAotIAlpZiAoU19JU1JFRyhzdC0+c3RfbW9kZSkp Ci0gCQlyZXR1cm4gYWRkX2ZpbGUocGF0aF9uYW1lLCBzdCwgKmludW0sIGZsYWdzKTsKLSAJaWYg KFNfSVNDSFIoc3QtPnN0X21vZGUpKQotLQkJcmV0dXJuIGFkZF9kZXZfaW5vZGUoc3QsICppbnVt LCBmbGFncyk7Ci0rCQlyZXR1cm4gYWRkX2Rldl9pbm9kZShwYXRoX25hbWUsIHN0LCAqaW51bSwg ZmxhZ3MpOwotIAlpZiAoU19JU0JMSyhzdC0+c3RfbW9kZSkpCi0tCQlyZXR1cm4gYWRkX2Rldl9p bm9kZShzdCwgKmludW0sIGZsYWdzKTsKLSsJCXJldHVybiBhZGRfZGV2X2lub2RlKHBhdGhfbmFt ZSwgc3QsICppbnVtLCBmbGFncyk7Ci0gCWlmIChTX0lTTE5LKHN0LT5zdF9tb2RlKSkKLSAJCXJl dHVybiBhZGRfc3ltbGlua19pbm9kZShwYXRoX25hbWUsIHN0LCAqaW51bSwgZmxhZ3MpOwotIAlp ZiAoU19JU1NPQ0soc3QtPnN0X21vZGUpKQotLQkJcmV0dXJuIGFkZF9pbm9kZShzdCwgKmludW0s IGZsYWdzKTsKLSsJCXJldHVybiBhZGRfaW5vZGUoc3QsICppbnVtLCBOVUxMLCAwLCBmbGFncywg TlVMTCk7Ci0gCWlmIChTX0lTRklGTyhzdC0+c3RfbW9kZSkpCi0tCQlyZXR1cm4gYWRkX2lub2Rl KHN0LCAqaW51bSwgZmxhZ3MpOwotKwkJcmV0dXJuIGFkZF9pbm9kZShzdCwgKmludW0sIE5VTEws IDAsIGZsYWdzLCBOVUxMKTsKLSAKLSAJcmV0dXJuIGVycl9tc2coImZpbGUgJyVzJyBoYXMgdW5r bm93biBpbm9kZSB0eXBlIiwgcGF0aF9uYW1lKTsKLSB9Ci1AQCAtMTU0OCw3ICsxNjk5LDcgQEAg c3RhdGljIGludCBhZGRfZGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRpcl9uYW1lLCBpbm9fdCBkaXJf aW51bSwgc3RydWN0IHN0YXQgKnN0LAotIAotIAljcmVhdF9zcW51bSA9IGRpcl9jcmVhdF9zcW51 bTsKLSAKLS0JZXJyID0gYWRkX2Rpcl9pbm9kZShkaXIsIGRpcl9pbnVtLCBzaXplLCBubGluaywg c3QpOwotKwllcnIgPSBhZGRfZGlyX2lub2RlKGRpciA/IGRpcl9uYW1lIDogTlVMTCwgZGlyLCBk aXJfaW51bSwgc2l6ZSwgbmxpbmssIHN0KTsKLSAJaWYgKGVycikKLSAJCWdvdG8gb3V0X2ZyZWU7 Ci0gCi1kaWZmIC0tZ2l0IGEvbWtmcy51Ymlmcy91Ymlmcy5oIGIvbWtmcy51Ymlmcy91Ymlmcy5o Ci1pbmRleCA0MzRiNjUxODU5YjMuLjJmMDgwYThjZTcwOCAxMDA2NDQKLS0tLSBhL21rZnMudWJp ZnMvdWJpZnMuaAotKysrIGIvbWtmcy51Ymlmcy91Ymlmcy5oCi1AQCAtNDIsNiArNDIsMTUgQEAK LSAgKi8KLSAjZGVmaW5lIFVCSUZTX1RSVU5fS0VZIFVCSUZTX0tFWV9UWVBFU19DTlQKLSAKLSsv KgotKyAqIEhvdyBtdWNoIGEgZGlyZWN0b3J5IGVudHJ5L2V4dGVuZGVkIGF0dHJpYnV0ZSBlbnRy eSBhZGRzIHRvIHRoZSBwYXJlbnQvaG9zdAotKyAqIGlub2RlLgotKyAqLwotKyNkZWZpbmUgQ0FM Q19ERU5UX1NJWkUobmFtZV9sZW4pIEFMSUdOKFVCSUZTX0RFTlRfTk9ERV9TWiArIChuYW1lX2xl bikgKyAxLCA4KQotKwotKy8qIEhvdyBtdWNoIGFuIGV4dGVuZGVkIGF0dHJpYnV0ZSBhZGRzIHRv IHRoZSBob3N0IGlub2RlICovCi0rI2RlZmluZSBDQUxDX1hBVFRSX0JZVEVTKGRhdGFfbGVuKSBB TElHTihVQklGU19JTk9fTk9ERV9TWiArIChkYXRhX2xlbikgKyAxLCA4KQotKwotIC8qIFRoZSBi ZWxvdyB1bmlvbiBtYWtlcyBpdCBlYXNpZXIgdG8gZGVhbCB3aXRoIGtleXMgKi8KLSB1bmlvbiB1 Ymlmc19rZXkKLSB7CmRpZmYgLS1naXQgYS9wYXRjaGVzL210ZC11dGlscy0xLjUuMi8wMDA3LW1r ZnMudWJpZnMtT3B0aW9uYWxseS1jcmVhdGUtZXh0ZW5kZWQtYXR0cmlidXRlLXdpdGgucGF0Y2gg Yi9wYXRjaGVzL210ZC11dGlscy0xLjUuMi8wMDA3LW1rZnMudWJpZnMtT3B0aW9uYWxseS1jcmVh dGUtZXh0ZW5kZWQtYXR0cmlidXRlLXdpdGgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGM5ZTcyNWUuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIvMDAw Ny1ta2ZzLnViaWZzLU9wdGlvbmFsbHktY3JlYXRlLWV4dGVuZGVkLWF0dHJpYnV0ZS13aXRoLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTg4ICswLDAgQEAKLUZyb206IFNhc2NoYSBIYXVlciA8 cy5oYXVlckBwZW5ndXRyb25peC5kZT4KLURhdGU6IFR1ZSwgMjUgTm92IDIwMTQgMTU6Mzk6MzIg KzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gbWtmcy51YmlmczogT3B0aW9uYWxseSBjcmVhdGUgZXh0 ZW5kZWQgYXR0cmlidXRlIHdpdGggaW5vZGUKLSBudW1iZXIKLQotVGhpcyBpcyBkb25lIHRvIGFs bG93IGNyZWF0aW5nIGltYWdlcyBzdWl0YWJsZSBmb3IgSU1BIGRpcmVjdG9yeQotYXBwcmFpc2Fs LiBJTUEgY3JlYXRlcyBhIGhhc2ggZm9yIGRpcmVjdG9yaWVzIGFuZCBhdHRhY2hlcyB0aGlzCi1o YXNoIHRvIHRoZSBkaXJlY3RvcnkgaXRzZWxmIGFzIGFuIGV4dGVuZGVkIGF0dHJpYnV0ZS4gQW1v bmcgb3RoZXIKLXRoaW5ncyB0aGUgaW5vZGUgbnVtYmVycyBvZiB0aGUgZmlsZXMgYXJlIGhhc2hl ZC4gU28sIHRvIGNyZWF0ZQotYSB2YWxpZCBoYXNoIGluIHRoZSBVQklGUyBpbWFnZSB0aGUgZXZt Y3RsIHRvb2wgbmVlZHMgdG8ga25vdwotdGhlIGlub2RlIG51bWJlcnMgd2hpY2ggdGhlIGZpbGVz IGluIHRoZSBVQklGUyBpbWFnZSB3aWxsIGhhdmUuCi1ldm1jdGwgd2lsbCByZWFkIHRoZSBpbm9k ZSBudW1iZXJzIGZyb20gdGhlIHVzZXIuaW1hZ2UtaW5vZGUtbnVtYmVyCi1leHRlbmRlZCBhdHRy aWJ1dGUuIFNpbmNlIGV4dGVuZGVkIGF0dHJpYnV0ZXMgYXJlIGlub2RlcyB0aGVtc2VsdmVzCi10 aGUgaW5vZGUgbnVtYmVycyBmb3IgdGhlIGdlbmVyYXRlZCBpbWFnZSB3aWxsIGNoYW5nZSB3aGVu IHRoZQotZXh0ZW5kZWQgYXR0cmlidXRlcyBjaGFuZ2UsIHNvIHRvIGdlbmVyYXRlIGEgY29ycmVj dGx5IGhhc2hlZAotVUJJRlMgaW1hZ2UsIGJvdGggZXZtY3RsIGFuZCBta2ZzLnViaWZzIG11c3Qg YmUgcnVuIHR3aWNlOgotCi0xKSBleGVjdXRlIGV2bWN0bCB0byBpdGVyYXRlIG92ZXIgdGhlIGRp cmVjdG9yeSB0cmVlLiBUaGlzIHdpbGwKLSAgIGNyZWF0ZSB0aGUgc2VjdXJpdHkuaW1hIGFuZCBz ZWN1cml0eS5ldm0gZXh0ZW5kZWQgYXR0cmlidXRlcy4KLSAgIFRoZSBleGlzdGVuY2Ugb2YgdGhl IGF0dHJpYnV0ZXMgbWFrZXMgc3VyZSB0aGF0IHN1YnNlcXVlbnQKLSAgIGNhbGxzIHRvIG1rZnMu dWJpZnMgd2lsbCB1c2UgdGhlIHNhbWUgaW5vZGUgbnVtYmVycy4gZXZtY3RsCi0gICB3aWxsIHVz ZSB0aGUgaW5vZGUgbnVtYmVycyBmcm9tIHRoZSBob3N0IGZpbGVzeXN0ZW0gaW4gdGhpcwotICAg c3RlcCB3aGljaCBtYWtlcyB0aGUgcmVzdWx0aW5nIGltYWdlIHVudXNhYmxlCi0yKSBleGVjdXRl IG1rZnMudWJpZnMgLWEuIFRoaXMgd2lsbCBjcmVhdGUgdGhlIHVzZXIuaW1hZ2UtaW5vZGUtbnVt YmVyCi0gICBleHRlbmRlZCBhdHRyaWJ1dGVzIG9uIGZpbGVzL2RpcmVjdG9yaWVzIGFkZGVkIHRv IHRoZSBpbWFnZS4KLTMpIGV4ZWN0dXJlIGV2bWN0bCBhZ2Fpbi4gVGhpcyB0aW1lIGV2bWN0bCB3 aWxsIHBpY2sgdGhlIGlub2RlCi0gICBudW1iZXJzIGZyb20gdGhlIHVzZXIuaW1hZ2UtaW5vZGUt bnVtYmVyIGV4dGVuZGVkIGF0dHJpYnV0ZQotICAgaW5zdGVhZCBvZiB0aGUgb25lcyBmcm9tIHRo ZSBob3N0IGZpbGVzeXN0ZW0KLTQpIGV4ZWN1dGUgbWtmcy51YmlmcyBhZ2Fpbi4gVGhpcyB3aWxs IGNyZWF0ZSB0aGUgY29ycmVjdCBpbWFnZS4KLSAgIFRoZSBub3cgZXhpc3RpbmcgdXNlci5pbWFn ZS1pbm9kZS1udW1iZXIgZXh0ZW5kZWQgYXR0cmlidXRlcwotICAgYXJlIGlnbm9yZWQgYW5kIG5v dCBhZGRlZCB0byB0aGUgaW1hZ2UuCi0KLVNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5o YXVlckBwZW5ndXRyb25peC5kZT4KLVNpZ25lZC1vZmYtYnk6IE1hcmMgS2xlaW5lLUJ1ZGRlIDxt a2xAcGVuZ3V0cm9uaXguZGU+Ci0tLS0KLSBta2ZzLnViaWZzL21rZnMudWJpZnMuYyB8IDY5ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KLSAxIGZpbGUg Y2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEv bWtmcy51Ymlmcy9ta2ZzLnViaWZzLmMgYi9ta2ZzLnViaWZzL21rZnMudWJpZnMuYwotaW5kZXgg MzBjZDEwYzI1ODE5Li41ODIwMGRlYTk3MzIgMTAwNjQ0Ci0tLS0gYS9ta2ZzLnViaWZzL21rZnMu dWJpZnMuYwotKysrIGIvbWtmcy51Ymlmcy9ta2ZzLnViaWZzLmMKLUBAIC0xMTUsNiArMTE1LDcg QEAgc3RhdGljIGNoYXIgKm91dHB1dDsKLSBzdGF0aWMgaW50IG91dF9mZDsKLSBzdGF0aWMgaW50 IG91dF91Ymk7Ci0gc3RhdGljIGludCBzcXVhc2hfb3duZXI7Ci0rc3RhdGljIGludCBkb19jcmVh dGVfaW51bV9hdHRyOwotIAotIC8qIFRoZSAnaGVhZCcgKHBvc2l0aW9uKSB3aGljaCBub2RlcyBh cmUgd3JpdHRlbiAqLwotIHN0YXRpYyBpbnQgaGVhZF9sbnVtOwotQEAgLTEzNyw3ICsxMzgsNyBA QCBzdGF0aWMgc3RydWN0IGludW1fbWFwcGluZyAqKmhhc2hfdGFibGU7Ci0gLyogSW5vZGUgY3Jl YXRpb24gc2VxdWVuY2UgbnVtYmVyICovCi0gc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBjcmVh dF9zcW51bTsKLSAKLS1zdGF0aWMgY29uc3QgY2hhciAqb3B0c3RyaW5nID0gImQ6cjptOm86RDp5 aD92VmU6YzpnOmY6RnA6azp4Olg6ajpSOmw6ajpVUXEiOwotK3N0YXRpYyBjb25zdCBjaGFyICpv cHRzdHJpbmcgPSAiZDpyOm06bzpEOnloP3ZWZTpjOmc6ZjpGcDprOng6WDpqOlI6bDpqOlVRcWEi OwotIAotIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzW10gPSB7Ci0gCXsicm9v dCIsICAgICAgICAgICAgICAgMSwgTlVMTCwgJ3InfSwKLUBAIC0xNjEsNiArMTYyLDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHsKLSAJeyJsb2ctbGVicyIsICAg ICAgICAgICAxLCBOVUxMLCAnbCd9LAotIAl7Im9ycGgtbGVicyIsICAgICAgICAgIDEsIE5VTEws ICdwJ30sCi0gCXsic3F1YXNoLXVpZHMiICwgICAgICAgMCwgTlVMTCwgJ1UnfSwKLSsJeyJzZXQt aW5vZGUtYXR0ciIsICAgICAwLCBOVUxMLCAnYSd9LAotIAl7TlVMTCwgMCwgTlVMTCwgMH0KLSB9 OwotIAotQEAgLTIwMSw2ICsyMDMsOSBAQCBzdGF0aWMgY29uc3QgY2hhciAqaGVscHRleHQgPQot ICItViwgLS12ZXJzaW9uICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uXG4i Ci0gIi1nLCAtLWRlYnVnPUxFVkVMICAgICAgICBkaXNwbGF5IGRlYnVnIGluZm9ybWF0aW9uICgw IC0gbm9uZSwgMSAtIHN0YXRpc3RpY3MsXG4iCi0gIiAgICAgICAgICAgICAgICAgICAgICAgICAy IC0gZmlsZXMsIDMgLSBtb3JlIGRldGFpbHMpXG4iCi0rIi1hLCAtLXNldC1pbnVtLWF0dHIgICAg ICBjcmVhdGUgdXNlci5pbWFnZS1pbm9kZS1udW1iZXIgZXh0ZW5kZWQgYXR0cmlidXRlIG9uIGZp bGVzXG4iCi0rIiAgICAgICAgICAgICAgICAgICAgICAgICBhZGRlZCB0byB0aGUgaW1hZ2UuIFRo ZSBhdHRyaWJ1dGUgd2lsbCBjb250YWluIHRoZSBpbm9kZVxuIgotKyIgICAgICAgICAgICAgICAg ICAgICAgICAgbnVtYmVyIHRoZSBmaWxlIGhhcyBpbiB0aGUgZ2VuZXJhdGVkIGltYWdlLlxuIgot ICItaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgdGV4dFxuXG4iCi0g Ik5vdGUsIFNJWkUgaXMgc3BlY2lmaWVkIGluIGJ5dGVzLCBidXQgaXQgbWF5IGFsc28gYmUgc3Bl Y2lmaWVkIGluIEtpbG9ieXRlcyxcbiIKLSAiTWVnYWJ5dGVzLCBhbmQgR2lnYWJ5dGVzIGlmIGEg S2lCLCBNaUIsIG9yIEdpQiBzdWZmaXggaXMgdXNlZC5cblxuIgotQEAgLTYxNiw2ICs2MjEsMTAg QEAgc3RhdGljIGludCBnZXRfb3B0aW9ucyhpbnQgYXJnYywgY2hhcioqYXJndikKLSAJCWNhc2Ug J1UnOgotIAkJCXNxdWFzaF9vd25lciA9IDE7Ci0gCQkJYnJlYWs7Ci0rCQljYXNlICdhJzoKLSsJ CQlkb19jcmVhdGVfaW51bV9hdHRyID0gMTsKLSsJCQlicmVhazsKLSsKLSAJCX0KLSAJfQotIAot QEAgLTk4NSw2ICs5OTQsMTQgQEAgc3RhdGljIGludCBhZGRfbm9kZSh1bmlvbiB1Ymlmc19rZXkg KmtleSwgY2hhciAqbmFtZSwgdm9pZCAqbm9kZSwgaW50IGxlbikKLSB9Ci0gCi0gI2lmZGVmIFdJ VEhPVVRfWEFUVFIKLStzdGF0aWMgaW5saW5lIGludCBjcmVhdGVfaW51bV9hdHRyKGlub190IGlu dW0sIGNvbnN0IGNoYXIgKm5hbWUpCi0rewotKwkodm9pZClpbnVtOwotKwkodm9pZCluYW1lOwot KwotKwlyZXR1cm4gMDsKLSt9Ci0rCi0gc3RhdGljIGlubGluZSBpbnQgaW5vZGVfYWRkX3hhdHRy KHN0cnVjdCB1Ymlmc19pbm9fbm9kZSAqaG9zdF9pbm8sCi0gCQkJCSAgY29uc3QgY2hhciAqcGF0 aF9uYW1lLCBzdHJ1Y3Qgc3RhdCAqc3QsIGlub190IGludW0pCi0gewotQEAgLTk5Niw2ICsxMDEz LDI2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlub2RlX2FkZF94YXR0cihzdHJ1Y3QgdWJpZnNfaW5v X25vZGUgKmhvc3RfaW5vLAotIAlyZXR1cm4gMDsKLSB9Ci0gI2Vsc2UKLStzdGF0aWMgaW50IGNy ZWF0ZV9pbnVtX2F0dHIoaW5vX3QgaW51bSwgY29uc3QgY2hhciAqbmFtZSkKLSt7Ci0rCWNoYXIg KnN0cjsKLSsJaW50IHJldDsKLSsKLSsJaWYgKCFkb19jcmVhdGVfaW51bV9hdHRyKQotKwkJcmV0 dXJuIDA7Ci0rCi0rCXJldCA9IGFzcHJpbnRmKCZzdHIsICIlbGx1IiwgKHVuc2lnbmVkIGxvbmcg bG9uZylpbnVtKTsKLSsJaWYgKHJldCA8IDApCi0rCQlyZXR1cm4gLTE7Ci0rCi0rCXJldCA9IGxz ZXR4YXR0cihuYW1lLCAidXNlci5pbWFnZS1pbm9kZS1udW1iZXIiLCBzdHIsIHJldCwgMCk7Ci0r Ci0rCWZyZWUoc3RyKTsKLSsKLSsJcmV0dXJuIHJldDsKLSt9Ci0rCi0rCi0gc3RhdGljIGludCBh ZGRfeGF0dHIoc3RydWN0IHN0YXQgKnN0LCBpbm9fdCBpbnVtLCBjb25zdCB2b2lkICpkYXRhLAot IAkJICAgICB1bnNpZ25lZCBpbnQgZGF0YV9sZW4sIHN0cnVjdCBxc3RyICpubSkKLSB7Ci1AQCAt MTExMCw2ICsxMTQ3LDIzIEBAIHN0YXRpYyBpbnQgaW5vZGVfYWRkX3hhdHRyKHN0cnVjdCB1Ymlm c19pbm9fbm9kZSAqaG9zdF9pbm8sCi0gCQkJZ290byBvdXRfZnJlZTsKLSAJCX0KLSAKLSsJCWlm ICghc3RyY21wKG5hbWUsICJ1c2VyLmltYWdlLWlub2RlLW51bWJlciIpKSB7Ci0rCQkJaW5vX3Qg aW51bV9mcm9tX3hhdHRyOwotKwotKwkJCWludW1fZnJvbV94YXR0ciA9IHN0cnRvdWxsKGF0dHJi dWYsIE5VTEwsIDEwKTsKLSsJCQlpZiAoaW51bSAhPSBpbnVtX2Zyb21feGF0dHIpIHsKLSsJCQkJ ZXJybm8gPSBFSU5WQUw7Ci0rCQkJCXN5c19lcnJfbXNnKCJjYWxjdWxhdGVkIGludW0gKCVsbHUp IGRvZXNuJ3QgbWF0Y2ggaW51bSBmcm9tIHhhdHRyICglbGx1KSBzaXplICglemQpIG9uICVzIiwK LSsJCQkJCSAgICAodW5zaWduZWQgbG9uZyBsb25nKWludW0sCi0rCQkJCQkgICAgKHVuc2lnbmVk IGxvbmcgbG9uZylpbnVtX2Zyb21feGF0dHIsCi0rCQkJCQkgICAgYXR0cnNpemUsCi0rCQkJCQkg ICAgcGF0aF9uYW1lKTsKLSsJCQkJZ290byBvdXRfZnJlZTsKLSsJCQl9Ci0rCi0rCQkJY29udGlu dWU7Ci0rCQl9Ci0rCi0gCQlubS5uYW1lID0gbmFtZTsKLSAJCW5tLmxlbiA9IHN0cmxlbihuYW1l KTsKLSAKLUBAIC0xNjM3LDYgKzE2OTEsMTAgQEAgc3RhdGljIGludCBhZGRfZGlyZWN0b3J5KGNv bnN0IGNoYXIgKmRpcl9uYW1lLCBpbm9fdCBkaXJfaW51bSwgc3RydWN0IHN0YXQgKnN0LAotIAkJ CQlnb3RvIG91dF9mcmVlOwotIAkJfQotIAotKwkJZXJyID0gY3JlYXRlX2ludW1fYXR0cihpbnVt LCBuYW1lKTsKLSsJCWlmIChlcnIpCi0rCQkJZ290byBvdXRfZnJlZTsKLSsKLSAJCWVyciA9IGFk ZF9kZW50X25vZGUoZGlyX2ludW0sIGVudHJ5LT5kX25hbWUsIGludW0sIHR5cGUpOwotIAkJaWYg KGVycikKLSAJCQlnb3RvIG91dF9mcmVlOwotQEAgLTE2ODksNiArMTc0NywxMCBAQCBzdGF0aWMg aW50IGFkZF9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyX25hbWUsIGlub190IGRpcl9pbnVtLCBz dHJ1Y3Qgc3RhdCAqc3QsCi0gCQkJCWdvdG8gb3V0X2ZyZWU7Ci0gCQl9Ci0gCi0rCQllcnIgPSBj cmVhdGVfaW51bV9hdHRyKGludW0sIG5hbWUpOwotKwkJaWYgKGVycikKLSsJCQlnb3RvIG91dF9m cmVlOwotKwotIAkJZXJyID0gYWRkX2RlbnRfbm9kZShkaXJfaW51bSwgbmhfZWx0LT5uYW1lLCBp bnVtLCB0eXBlKTsKLSAJCWlmIChlcnIpCi0gCQkJZ290byBvdXRfZnJlZTsKLUBAIC0xNzU4LDYg KzE4MjAsMTEgQEAgc3RhdGljIGludCB3cml0ZV9kYXRhKHZvaWQpCi0gCX0KLSAKLSAJaGVhZF9m bGFncyA9IDA7Ci0rCi0rCWVyciA9IGNyZWF0ZV9pbnVtX2F0dHIoVUJJRlNfUk9PVF9JTk8sIHJv b3QpOwotKwlpZiAoZXJyKQotKwkJcmV0dXJuIGVycjsKLSsKLSAJZXJyID0gYWRkX2RpcmVjdG9y eShyb290LCBVQklGU19ST09UX0lOTywgJnJvb3Rfc3QsICEhcm9vdCk7Ci0gCWlmIChlcnIpCi0g CQlyZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIvMDAwOC1m bGFzaGNwLVVzZS1sbHUtdG8tcHJpbnQtZmlsZXN0YXQuc3Rfc2l6ZS5wYXRjaCBiL3BhdGNoZXMv bXRkLXV0aWxzLTEuNS4yLzAwMDgtZmxhc2hjcC1Vc2UtbGx1LXRvLXByaW50LWZpbGVzdGF0LnN0 X3NpemUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljZTBmOWQuLjAwMDAw MDAKLS0tIGEvcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIvMDAwOC1mbGFzaGNwLVVzZS1sbHUtdG8t cHJpbnQtZmlsZXN0YXQuc3Rfc2l6ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCww IEBACi1Gcm9tOiBGYWJpZW4gUHJvcmlvbCA8RmFiaWVuLlByb3Jpb2xAamRzdS5jb20+Ci1EYXRl OiBGcmksIDcgTm92IDIwMTQgMTM6NDY6MjggKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gZmxhc2hj cDogVXNlICVsbHUgdG8gcHJpbnQgZmlsZXN0YXQuc3Rfc2l6ZQotCi1maWxlc3RhdC5zdF9zaXpl IHR5cGUgaXMgb2ZmX3QuCi1Gb3Igc29tZSBwYWx0Zm9ybXMsIG9mZl90IGNhbiBiZSAzMiBvciA2 NGJpdCBidXQgdGhlcmUgaXMgbm8gQzk5IGZvcm1hdCBzcGVjaWZpZXIgZm9yIG9mZl90LgotVGhl IGJlc3Qgd2F5IHRvIHByaW50IGl0IHdpdGggcHJpbnRmIGlzIHRvIGNhc3QgaXQgdG8gbG9uZyBs b25nIGFuZCBwcmludCB3aXRoICVsbHUKLQotU2lnbmVkLW9mZi1ieTogRmFiaWVuIFByb3Jpb2wg PGZhYmllbi5wcm9yaW9sQGpkc3UuY29tPgotU2lnbmVkLW9mZi1ieTogQnJpYW4gTm9ycmlzIDxj b21wdXRlcnNmb3JwZWFjZUBnbWFpbC5jb20+Ci0tLS0KLSBmbGFzaGNwLmMgfCAzMiArKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25z KCspLCAxNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2ZsYXNoY3AuYyBiL2ZsYXNoY3Au YwotaW5kZXggODYzMzRhY2YwZTRkLi4zZmRkZWIwMDlhZTMgMTAwNjQ0Ci0tLS0gYS9mbGFzaGNw LmMKLSsrKyBiL2ZsYXNoY3AuYwotQEAgLTI5Niw3ICsyOTYsNyBAQCBpbnQgbWFpbiAoaW50IGFy Z2MsY2hhciAqYXJndltdKQotIAkgKiB3cml0ZSB0aGUgZW50aXJlIGZpbGUgdG8gZmxhc2ggKgot IAkgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSAKLS0JaWYgKGZsYWdzICYg RkxBR19WRVJCT1NFKSBsb2dfcHJpbnRmIChMT0dfTk9STUFMLCJXcml0aW5nIGRhdGE6IDBrLyVs dWsgKDAlJSkiLEtCIChmaWxlc3RhdC5zdF9zaXplKSk7Ci0rCWlmIChmbGFncyAmIEZMQUdfVkVS Qk9TRSkgbG9nX3ByaW50ZiAoTE9HX05PUk1BTCwiV3JpdGluZyBkYXRhOiAway8lbGx1ayAoMCUl KSIsS0IgKCh1bnNpZ25lZCBsb25nIGxvbmcpZmlsZXN0YXQuc3Rfc2l6ZSkpOwotIAlzaXplID0g ZmlsZXN0YXQuc3Rfc2l6ZTsKLSAJaSA9IEJVRlNJWkU7Ci0gCXdyaXR0ZW4gPSAwOwotQEAgLTMw NCwxMCArMzA0LDEwIEBAIGludCBtYWluIChpbnQgYXJnYyxjaGFyICphcmd2W10pCi0gCXsKLSAJ CWlmIChzaXplIDwgQlVGU0laRSkgaSA9IHNpemU7Ci0gCQlpZiAoZmxhZ3MgJiBGTEFHX1ZFUkJP U0UpCi0tCQkJbG9nX3ByaW50ZiAoTE9HX05PUk1BTCwiXHJXcml0aW5nIGRhdGE6ICVkay8lbHVr ICglbHUlJSkiLAotKwkJCWxvZ19wcmludGYgKExPR19OT1JNQUwsIlxyV3JpdGluZyBkYXRhOiAl ZGsvJWxsdWsgKCVsbHUlJSkiLAotIAkJCQkJS0IgKHdyaXR0ZW4gKyBpKSwKLS0JCQkJCUtCIChm aWxlc3RhdC5zdF9zaXplKSwKLS0JCQkJCVBFUkNFTlRBR0UgKHdyaXR0ZW4gKyBpLGZpbGVzdGF0 LnN0X3NpemUpKTsKLSsJCQkJCUtCICgodW5zaWduZWQgbG9uZyBsb25nKWZpbGVzdGF0LnN0X3Np emUpLAotKwkJCQkJUEVSQ0VOVEFHRSAod3JpdHRlbiArIGksKHVuc2lnbmVkIGxvbmcgbG9uZylm aWxlc3RhdC5zdF9zaXplKSk7Ci0gCi0gCQkvKiByZWFkIGZyb20gZmlsZW5hbWUgKi8KLSAJCXNh ZmVfcmVhZCAoZmlsX2ZkLGZpbGVuYW1lLHNyYyxpLGZsYWdzICYgRkxBR19WRVJCT1NFKTsKLUBA IC0zMjUsOCArMzI1LDggQEAgaW50IG1haW4gKGludCBhcmdjLGNoYXIgKmFyZ3ZbXSkKLSAJCQkJ ZXhpdCAoRVhJVF9GQUlMVVJFKTsKLSAJCQl9Ci0gCQkJbG9nX3ByaW50ZiAoTE9HX0VSUk9SLAot LQkJCQkJIlNob3J0IHdyaXRlIGNvdW50IHJldHVybmVkIHdoaWxlIHdyaXRpbmcgdG8geCUuOHgt MHglLjh4IG9uICVzOiAlZC8lbHUgYnl0ZXMgd3JpdHRlbiB0byBmbGFzaFxuIiwKLS0JCQkJCXdy aXR0ZW4sd3JpdHRlbiArIGksZGV2aWNlLHdyaXR0ZW4gKyByZXN1bHQsZmlsZXN0YXQuc3Rfc2l6 ZSk7Ci0rCQkJCQkiU2hvcnQgd3JpdGUgY291bnQgcmV0dXJuZWQgd2hpbGUgd3JpdGluZyB0byB4 JS44eC0weCUuOHggb24gJXM6ICVkLyVsbHUgYnl0ZXMgd3JpdHRlbiB0byBmbGFzaFxuIiwKLSsJ CQkJCXdyaXR0ZW4sd3JpdHRlbiArIGksZGV2aWNlLHdyaXR0ZW4gKyByZXN1bHQsKHVuc2lnbmVk IGxvbmcgbG9uZylmaWxlc3RhdC5zdF9zaXplKTsKLSAJCQlleGl0IChFWElUX0ZBSUxVUkUpOwot IAkJfQotIAotQEAgLTMzNSwxMCArMzM1LDEwIEBAIGludCBtYWluIChpbnQgYXJnYyxjaGFyICph cmd2W10pCi0gCX0KLSAJaWYgKGZsYWdzICYgRkxBR19WRVJCT1NFKQotIAkJbG9nX3ByaW50ZiAo TE9HX05PUk1BTCwKLS0JCQkJIlxyV3JpdGluZyBkYXRhOiAlbHVrLyVsdWsgKDEwMCUlKVxuIiwK LS0JCQkJS0IgKGZpbGVzdGF0LnN0X3NpemUpLAotLQkJCQlLQiAoZmlsZXN0YXQuc3Rfc2l6ZSkp OwotLQlERUJVRygiV3JvdGUgJWQgLyAlbHVrIGJ5dGVzXG4iLHdyaXR0ZW4sZmlsZXN0YXQuc3Rf c2l6ZSk7Ci0rCQkJCSJccldyaXRpbmcgZGF0YTogJWxsdWsvJWxsdWsgKDEwMCUlKVxuIiwKLSsJ CQkJS0IgKCh1bnNpZ25lZCBsb25nIGxvbmcpZmlsZXN0YXQuc3Rfc2l6ZSksCi0rCQkJCUtCICgo dW5zaWduZWQgbG9uZyBsb25nKWZpbGVzdGF0LnN0X3NpemUpKTsKLSsJREVCVUcoIldyb3RlICVk IC8gJWxsdWsgYnl0ZXNcbiIsd3JpdHRlbiwodW5zaWduZWQgbG9uZyBsb25nKWZpbGVzdGF0LnN0 X3NpemUpOwotIAotIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIAkgKiB2 ZXJpZnkgdGhhdCBmbGFzaCA9PSBmaWxlIGRhdGEgKgotQEAgLTM0OSwxNiArMzQ5LDE2IEBAIGlu dCBtYWluIChpbnQgYXJnYyxjaGFyICphcmd2W10pCi0gCXNpemUgPSBmaWxlc3RhdC5zdF9zaXpl OwotIAlpID0gQlVGU0laRTsKLSAJd3JpdHRlbiA9IDA7Ci0tCWlmIChmbGFncyAmIEZMQUdfVkVS Qk9TRSkgbG9nX3ByaW50ZiAoTE9HX05PUk1BTCwiVmVyaWZ5aW5nIGRhdGE6IDBrLyVsdWsgKDAl JSkiLEtCIChmaWxlc3RhdC5zdF9zaXplKSk7Ci0rCWlmIChmbGFncyAmIEZMQUdfVkVSQk9TRSkg bG9nX3ByaW50ZiAoTE9HX05PUk1BTCwiVmVyaWZ5aW5nIGRhdGE6IDBrLyVsbHVrICgwJSUpIixL QiAoKHVuc2lnbmVkIGxvbmcgbG9uZylmaWxlc3RhdC5zdF9zaXplKSk7Ci0gCXdoaWxlIChzaXpl KQotIAl7Ci0gCQlpZiAoc2l6ZSA8IEJVRlNJWkUpIGkgPSBzaXplOwotIAkJaWYgKGZsYWdzICYg RkxBR19WRVJCT1NFKQotIAkJCWxvZ19wcmludGYgKExPR19OT1JNQUwsCi0tCQkJCQkiXHJWZXJp ZnlpbmcgZGF0YTogJWRrLyVsdWsgKCVsdSUlKSIsCi0rCQkJCQkiXHJWZXJpZnlpbmcgZGF0YTog JWRrLyVsbHVrICglbHUlJSkiLAotIAkJCQkJS0IgKHdyaXR0ZW4gKyBpKSwKLS0JCQkJCUtCIChm aWxlc3RhdC5zdF9zaXplKSwKLS0JCQkJCVBFUkNFTlRBR0UgKHdyaXR0ZW4gKyBpLGZpbGVzdGF0 LnN0X3NpemUpKTsKLSsJCQkJCUtCICgodW5zaWduZWQgbG9uZyBsb25nKWZpbGVzdGF0LnN0X3Np emUpLAotKwkJCQkJUEVSQ0VOVEFHRSAod3JpdHRlbiArIGksKHVuc2lnbmVkIGxvbmcgbG9uZylm aWxlc3RhdC5zdF9zaXplKSk7Ci0gCi0gCQkvKiByZWFkIGZyb20gZmlsZW5hbWUgKi8KLSAJCXNh ZmVfcmVhZCAoZmlsX2ZkLGZpbGVuYW1lLHNyYyxpLGZsYWdzICYgRkxBR19WRVJCT1NFKTsKLUBA IC0zODAsMTAgKzM4MCwxMCBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsY2hhciAqYXJndltdKQotIAl9 Ci0gCWlmIChmbGFncyAmIEZMQUdfVkVSQk9TRSkKLSAJCWxvZ19wcmludGYgKExPR19OT1JNQUws Ci0tCQkJCSJcclZlcmlmeWluZyBkYXRhOiAlbHVrLyVsdWsgKDEwMCUlKVxuIiwKLSsJCQkJIlxy VmVyaWZ5aW5nIGRhdGE6ICVsbHVrLyVsbHVrICgxMDAlJSlcbiIsCi0gCQkJCUtCIChmaWxlc3Rh dC5zdF9zaXplKSwKLSAJCQkJS0IgKGZpbGVzdGF0LnN0X3NpemUpKTsKLS0JREVCVUcoIlZlcmlm aWVkICVkIC8gJWx1ayBieXRlc1xuIix3cml0dGVuLGZpbGVzdGF0LnN0X3NpemUpOwotKwlERUJV RygiVmVyaWZpZWQgJWQgLyAlbGx1ayBieXRlc1xuIix3cml0dGVuLCh1bnNpZ25lZCBsb25nIGxv bmcpZmlsZXN0YXQuc3Rfc2l6ZSk7Ci0gCi0gCWV4aXQgKEVYSVRfU1VDQ0VTUyk7Ci0gfQpkaWZm IC0tZ2l0IGEvcGF0Y2hlcy9tdGQtdXRpbHMtMS41LjIvc2VyaWVzIGIvcGF0Y2hlcy9tdGQtdXRp bHMtMS41LjIvc2VyaWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjhiMDQ1Li4w MDAwMDAwCi0tLSBhL3BhdGNoZXMvbXRkLXV0aWxzLTEuNS4yL3NlcmllcworKysgL2Rldi9udWxs CkBAIC0xLDExICswLDAgQEAKLSMgZ2VuZXJhdGVkIGJ5IGdpdC1wdHgtcGF0Y2hlcwotI3RhZzpi YXNlIC0tc3RhcnQtbnVtYmVyIDEKLTAwMDEtbWFrZS11Ymlmcy1vcHRpb25hbC5wYXRjaAotMDAw Mi1NYWtlLWxpYmx6by1vcHRpb25hbC1mb3ItdWJpZnMtdG9vbHMucGF0Y2gKLTAwMDMtbWtmcy51 Ymlmcy1jaGFuZ2UtYWRkX2RpcmVjdG9yeS1hcmd1bWVudC10by1leGlzdGluZy5wYXRjaAotMDAw NC1ta2ZzLnViaWZzLXVzZS14bWFsbG9jLXh6YWxsb2MtZm9yLWFsbG9jYXRpbmctbWVtb3J5LnBh dGNoCi0wMDA1LW1rZnMudWJpZnMtc2ltcGxpZnktbWFrZV9wYXRoLXdpdGgteGFzcHJpbnRmLnBh dGNoCi0wMDA2LW1rZnMudWJpZnMtQWRkLWV4dGVuZGVkLWF0dHJpYnV0ZS1zdXBwb3J0LnBhdGNo Ci0wMDA3LW1rZnMudWJpZnMtT3B0aW9uYWxseS1jcmVhdGUtZXh0ZW5kZWQtYXR0cmlidXRlLXdp dGgucGF0Y2gKLTAwMDgtZmxhc2hjcC1Vc2UtbGx1LXRvLXByaW50LWZpbGVzdGF0LnN0X3NpemUu cGF0Y2gKLSMgODc2NGYzZDgyYjRkNWFkMzdjZTM0NjQ3YWI5OWNkMDEgIC0gZ2l0LXB0eC1wYXRj aGVzIG1hZ2ljCmRpZmYgLS1naXQgYS9ydWxlcy9tdGQtdXRpbHMuaW4gYi9ydWxlcy9tdGQtdXRp bHMuaW4KaW5kZXggNGQ3NmY1Yy4uNTUyZjI4OSAxMDA2NDQKLS0tIGEvcnVsZXMvbXRkLXV0aWxz LmluCisrKyBiL3J1bGVzL210ZC11dGlscy5pbgpAQCAtNSw4ICs1LDcgQEAgbWVudWNvbmZpZyBN VERfVVRJTFMKIAlwcm9tcHQgIm10ZC11dGlscyAgICAgICAgICAgICAgICAgICAgICIKIAlzZWxl Y3QgTElCQ19NIGlmIE1URF9VVElMU19NS0ZTX1VCSUZTCiAJc2VsZWN0IFpMSUIKLQlzZWxlY3Qg TElCVVVJRCBpZiBNVERfVVRJTFNfTUtGU19VQklGUwotCXNlbGVjdCBBVFRSIGlmIE1URF9VVElM U19NS0ZTX1VCSUZTCisJc2VsZWN0IExJQlVVSUQgaWYgTVREX1VUSUxTX1VCSUZTCiAJc2VsZWN0 IExJQkxaTyBpZiBNVERfVVRJTFNfVVNFX0xJQkxaTwogCWhlbHAKIAkgIE1lbW9yeSBUZWNobm9s b2d5IERldmljZSBVdGlsaXRpZXMKQEAgLTE2LDYgKzE1LDEyIEBAIG1lbnVjb25maWcgTVREX1VU SUxTCiAKIGlmIE1URF9VVElMUwogCitjb25maWcgTVREX1VUSUxTX0pGRlMKKwlib29sCisKK2Nv bmZpZyBNVERfVVRJTFNfVUJJRlMKKwlib29sCisKIGNvbmZpZyBNVERfVVRJTFNfVVNFX0xJQkxa TwogCWJvb2wKIAlwcm9tcHQgImxpYmx6byBzdXBwb3J0IgpAQCAtMTE2LDEzICsxMjEsMTUgQEAg Y29uZmlnIE1URF9VVElMU19GVExfRk9STUFUCiAKIGNvbmZpZyBNVERfVVRJTFNfSkZGUzJfRFVN UAogCWJvb2wKLQlwcm9tcHQgImpmZnMyX2R1bXAiCisJcHJvbXB0ICJqZmZzMmR1bXAiCisJc2Vs ZWN0IE1URF9VVElMU19KRkZTCiAJaGVscAogCSAgVGhpcyB1dGlsaXR5IGR1bXBzIHRoZSBjb250 ZW50cyBvZiBhIGJpbmFyeSBKRkZTMiBpbWFnZS4KIAogI2NvbmZpZyBNVERfVVRJTFNfSkZGUzJS RUFERVIKICMJYm9vbAogIwlwcm9tcHQgImpmZnMycmVhZGVyIgorIwlzZWxlY3QgTVREX1VUSUxT X0pGRlMKICMJaGVscAogIwkgIEEgamZmczIgaW1hZ2UgcmVhZGVyCiAKQEAgLTE4Nyw2ICsxOTQs NyBAQCBjb25maWcgTVREX1VUSUxTX05GVExEVU1QCiBjb25maWcgTVREX1VUSUxTX01LSkZGUzIK IAlib29sCiAJcHJvbXB0ICJta2ZzLmpmZnMyIgorCXNlbGVjdCBNVERfVVRJTFNfSkZGUwogCWhl bHAKIAkgIEJ1aWxkIGEgSkZGUzIgaW1hZ2UgaW4gYSBmaWxlLCBmcm9tIGEgZ2l2ZW4gZGlyZWN0 b3J5IHRyZWUuCiAKQEAgLTIxNyw2ICsyMjUsNyBAQCBjb25maWcgTVREX1VUSUxTX1NFUlZFX0lN QUdFCiBjb25maWcgTVREX1VUSUxTX1NVTVRPT0wKIAlib29sCiAJcHJvbXB0ICJzdW10b29sIgor CXNlbGVjdCBNVERfVVRJTFNfSkZGUwogCWhlbHAKIAkgIFN1bXRvb2wgY2FuIGJlIHVzZWQgdG8g Z2VuZXJhdGUgRUJTKEVyYXNlIEJsb2NrIFN1bW1hcnkpCiAJICBpbmZvcm1hdGlvbiBmb3IgYSBq ZmZzMiBpbWFnZS4gVGhpcyB3YXkgd2UgY2FuIGRvIGZhc3RlcgpAQCAtMzM1LDYgKzM0NCw3IEBA IGNvbW1lbnQgImJ1c3lib3gnIHViaXVwZGF0ZXZvbCBpcyBzZWxlY3RlZCEiCiBjb25maWcgTVRE X1VUSUxTX01LRlNfVUJJRlMKIAlib29sCiAJcHJvbXB0ICJta2ZzLnViaWZzIgorCXNlbGVjdCBN VERfVVRJTFNfVUJJRlMKIAloZWxwCiAJICBDcmVhdGUgdWJpZnMgZmlsZXN5c3RlbXMKIApkaWZm IC0tZ2l0IGEvcnVsZXMvbXRkLXV0aWxzLm1ha2UgYi9ydWxlcy9tdGQtdXRpbHMubWFrZQppbmRl eCBiYTYzM2MzLi5kOGE4OTcyIDEwMDY0NAotLS0gYS9ydWxlcy9tdGQtdXRpbHMubWFrZQorKysg Yi9ydWxlcy9tdGQtdXRpbHMubWFrZQpAQCAtMTcsOCArMTcsOCBAQCBQQUNLQUdFUy0kKFBUWENP TkZfTVREX1VUSUxTKSArPSBtdGQtdXRpbHMKICMKICMgUGF0aHMgYW5kIG5hbWVzCiAjCi1NVERf VVRJTFNfVkVSU0lPTgk6PSAxLjUuMgotTVREX1VUSUxTX01ENQkJOj0gNTk2YmM3YjIwYTZkNGZi ODZkNjNmYzliOGFmNjc0ZDYKK01URF9VVElMU19WRVJTSU9OCTo9IDIuMC4xCitNVERfVVRJTFNf TUQ1CQk6PSBlZjA2NTQ5MDc5OWY1ZTIxZTkwMTk5ZGQyNWQwMzNiNgogTVREX1VUSUxTCQk6PSBt dGQtdXRpbHMtJChNVERfVVRJTFNfVkVSU0lPTikKIE1URF9VVElMU19TVUZGSVgJOj0gdGFyLmJ6 MgogTVREX1VUSUxTX1VSTAkJOj0gZnRwOi8vZnRwLmluZnJhZGVhZC5vcmcvcHViL210ZC11dGls cy8kKE1URF9VVElMUykuJChNVERfVVRJTFNfU1VGRklYKQpAQCAtMzAsMjMgKzMwLDE2IEBAIE1U RF9VVElMU19MSUNFTlNFCTo9IEdQTC0yLjArCiAjIFByZXBhcmUKICMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogCi1NVERfVVRJTFNfQ09ORl9UT09MCTo9IE5PCi0KLU1URF9VVElMU19DT01QSUxFX0VO Vgk6PSBcCi0JJChDUk9TU19FTlYpIFwKLQlDUk9TUz0iJChDT01QSUxFUl9QUkVGSVgpIiBcCi0J V0lUSE9VVF9YQVRUUj0xCi0KLWlmbmRlZiBQVFhDT05GX01URF9VVElMU19VU0VfTElCTFpPCi1N VERfVVRJTFNfQ09NUElMRV9FTlYgKz0gV0lUSE9VVF9MWk89MQotZW5kaWYKLQotaWZuZGVmIFBU WENPTkZfTVREX1VUSUxTX01LRlNfVUJJRlMKLU1URF9VVElMU19DT01QSUxFX0VOViArPSBXSVRI T1VUX01LVUJJRlM9MQotZW5kaWYKLQotTVREX1VUSUxTX0NPTVBJTEVfT1BUCTo9IFwKLQlCVUlM RERJUj0kKE1URF9VVElMU19ESVIpCitNVERfVVRJTFNfQ09ORl9UT09MCTo9IGF1dG9jb25mCitN VERfVVRJTFNfQ09ORl9PUFQgICAgICA6PSBcCisgICAgICAgICQoQ1JPU1NfQVVUT0NPTkZfVVNS KSBcCisgICAgICAgIC0tZGlzYWJsZS11bml0LXRlc3RzIFwKKyAgICAgICAgLS1kaXNhYmxlLXRl c3RzIFwKKyAgICAgICAgLS1kaXNhYmxlLWluc3RhbGwtdGVzdHMgXAorICAgICAgICAtLSQoY2Fs bCBwdHgvd3dvLCBQVFhDT05GX01URF9VVElMU19KRkZTMiktamZmcyBcCisgICAgICAgIC0tJChj YWxsIHB0eC93d28sIFBUWENPTkZfTVREX1VUSUxTX1VCSUZTKS11YmlmcyBcCisgICAgICAgIC0t d2l0aG91dC14YXR0ciBcCisgICAgICAgIC0tJChjYWxsIHB0eC93d28sIFBUWENPTkZfTVREX1VU SUxTX1VTRV9MSUJMWk8pLWx6bwogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgVGFyZ2V0LUlu c3RhbGwKLS0gCjIuMS40CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCnB0eGRpc3QgbWFpbGluZyBsaXN0CnB0eGRpc3RAcGVuZ3V0cm9uaXguZGU=