From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:38672 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751257AbdJIECX (ORCPT ); Mon, 9 Oct 2017 00:02:23 -0400 Received: from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net [74.93.104.98]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id CD62C133F6547 for ; Sun, 8 Oct 2017 21:02:21 -0700 (PDT) Date: Sun, 08 Oct 2017 21:02:19 -0700 (PDT) Message-Id: <20171008.210219.1997358189291789481.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sun_Oct__8_21_02_19_2017_611)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Sun_Oct__8_21_02_19_2017_611)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following bug fixes for 4.13.x -stable. Thank you! ----Next_Part(Sun_Oct__8_21_02_19_2017_611)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_413.mbox" RnJvbSBhZDliODczYjY3MzI2ZTM3OTJlMjE1YTc5Y2Y3NTdlZjFkYjQ3MjVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcmthZGkgU2hhcnNoZXZza3kgPGFya2FkaXNAbWVsbGFub3gu Y29tPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDA5OjQyOjI2ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwMS80OF0gbWx4c3c6IHNwZWN0cnVtOiBGaXggRUVQUk9NIGFjY2VzcyBpbiBjYXNlIG9mIFNG UC9TRlArCgpbIFVwc3RyZWFtIGNvbW1pdCA0NDAwMDgxYjYzMWFmNjlhYmM2M2NlYTMzNTI2ODBl M2Q4NWUwYzM5IF0KClRoZSBjdXJyZW50IGNvZGUgZG9lcyBub3QgaGFuZGxlIGNvcnJlY3RseSB0 aGUgYWNjZXNzIHRvIHRoZSB1cHBlciBwYWdlCmluIGNhc2Ugb2YgU0ZQL1NGUCsgRUVQUk9NLiBJ biB0aGF0IGNhc2UgdGhlIG9mZnNldCBzaG91bGQgYmUgbG9jYWwKYW5kIHRoZSBJMkMgYWRkcmVz cyBzaG91bGQgYmUgY2hhbmdlZC4KCkZpeGVzOiAyZWExMDkwMzljZDMgKCJtbHhzdzogc3BlY3Ry dW06IEFkZCBzdXBwb3J0IGZvciBhY2Nlc3MgY2FibGUgaW5mbyB2aWEgZXRodG9vbCIpClJlcG9y dGVkLWJ5OiBGbG9yaWFuIEtsaW5rIDxmbG9rbGlAZmxva2xpLmRlPgpTaWduZWQtb2ZmLWJ5OiBB cmthZGkgU2hhcnNoZXZza3kgPGFya2FkaXNAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogSWRv IFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBKaXJpIFBpcmtv IDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3 L3NwZWN0cnVtLmMgfCAxOSArKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMTcg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYwppbmRleCBjNmEzZTYxYjUzYmQuLmFjYTRjYTE4NjA4 ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3Ry dW0uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5j CkBAIC0yNTE5LDcgKzI1MTksOSBAQCBzdGF0aWMgaW50IG1seHN3X3NwX2ZsYXNoX2RldmljZShz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXJldHVybiBlcnI7CiB9CiAKLSNkZWZpbmUgTUxYU1df U1BfUVNGUF9JMkNfQUREUiAweDUwCisjZGVmaW5lIE1MWFNXX1NQX0kyQ19BRERSX0xPVyAweDUw CisjZGVmaW5lIE1MWFNXX1NQX0kyQ19BRERSX0hJR0ggMHg1MQorI2RlZmluZSBNTFhTV19TUF9F RVBST01fUEFHRV9MRU5HVEggMjU2CiAKIHN0YXRpYyBpbnQgbWx4c3dfc3BfcXVlcnlfbW9kdWxl X2VlcHJvbShzdHJ1Y3QgbWx4c3dfc3BfcG9ydCAqbWx4c3dfc3BfcG9ydCwKIAkJCQkJdTE2IG9m ZnNldCwgdTE2IHNpemUsIHZvaWQgKmRhdGEsCkBAIC0yNTI4LDEyICsyNTMwLDI1IEBAIHN0YXRp YyBpbnQgbWx4c3dfc3BfcXVlcnlfbW9kdWxlX2VlcHJvbShzdHJ1Y3QgbWx4c3dfc3BfcG9ydCAq bWx4c3dfc3BfcG9ydCwKIAlzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwID0gbWx4c3dfc3BfcG9y dC0+bWx4c3dfc3A7CiAJY2hhciBlZXByb21fdG1wW01MWFNXX1NQX1JFR19NQ0lBX0VFUFJPTV9T SVpFXTsKIAljaGFyIG1jaWFfcGxbTUxYU1dfUkVHX01DSUFfTEVOXTsKKwl1MTYgaTJjX2FkZHI7 CiAJaW50IHN0YXR1czsKIAlpbnQgZXJyOwogCiAJc2l6ZSA9IG1pbl90KHUxNiwgc2l6ZSwgTUxY U1dfU1BfUkVHX01DSUFfRUVQUk9NX1NJWkUpOworCisJaWYgKG9mZnNldCA8IE1MWFNXX1NQX0VF UFJPTV9QQUdFX0xFTkdUSCAmJgorCSAgICBvZmZzZXQgKyBzaXplID4gTUxYU1dfU1BfRUVQUk9N X1BBR0VfTEVOR1RIKQorCQkvKiBDcm9zcyBwYWdlcyByZWFkLCByZWFkIHVudGlsIG9mZnNldCAy NTYgaW4gbG93IHBhZ2UgKi8KKwkJc2l6ZSA9IE1MWFNXX1NQX0VFUFJPTV9QQUdFX0xFTkdUSCAt IG9mZnNldDsKKworCWkyY19hZGRyID0gTUxYU1dfU1BfSTJDX0FERFJfTE9XOworCWlmIChvZmZz ZXQgPj0gTUxYU1dfU1BfRUVQUk9NX1BBR0VfTEVOR1RIKSB7CisJCWkyY19hZGRyID0gTUxYU1df U1BfSTJDX0FERFJfSElHSDsKKwkJb2Zmc2V0IC09IE1MWFNXX1NQX0VFUFJPTV9QQUdFX0xFTkdU SDsKKwl9CisKIAltbHhzd19yZWdfbWNpYV9wYWNrKG1jaWFfcGwsIG1seHN3X3NwX3BvcnQtPm1h cHBpbmcubW9kdWxlLAotCQkJICAgIDAsIDAsIG9mZnNldCwgc2l6ZSwgTUxYU1dfU1BfUVNGUF9J MkNfQUREUik7CisJCQkgICAgMCwgMCwgb2Zmc2V0LCBzaXplLCBpMmNfYWRkcik7CiAKIAllcnIg PSBtbHhzd19yZWdfcXVlcnkobWx4c3dfc3AtPmNvcmUsIE1MWFNXX1JFRyhtY2lhKSwgbWNpYV9w bCk7CiAJaWYgKGVycikKLS0gCjIuMTMuNgoKCkZyb20gMGFiYTIzNjVhNDM0NjBhMDA0NDZlZDRl MjA0Y2UxNTlmODc0OTg3OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS29zdWtlIFRh dHN1a2F3YSA8dGF0c3VAYWIuanAubmVjLmNvbT4KRGF0ZTogV2VkLCA2IFNlcCAyMDE3IDIyOjQ3 OjU5ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwMi80OF0gbmV0OiBib25kaW5nOiBGaXggdHJhbnNt aXQgbG9hZCBiYWxhbmNpbmcgaW4KIGJhbGFuY2UtYWxiIG1vZGUgaWYgc3BlY2lmaWVkIGJ5IHN5 c2ZzCgpbIFVwc3RyZWFtIGNvbW1pdCBjNjY0NGQwN2VmZjY1ODhiMmRlZGY4ODEyNzlmYjBkMWM3 NzgzOTcwIF0KCkNvbW1pdCBjYmY1ZWNiMzA1NjAgKCJuZXQ6IGJvbmRpbmc6IEZpeCB0cmFuc21p dCBsb2FkIGJhbGFuY2luZyBpbgpiYWxhbmNlLWFsYiBtb2RlIikgdHJpZWQgdG8gZml4IHRyYW5z bWl0IGR5bmFtaWMgbG9hZCBiYWxhbmNpbmcgaW4KYmFsYW5jZS1hbGIgbW9kZSwgd2hpY2ggd2Fz bid0IHdvcmtpbmcgYWZ0ZXIgY29tbWl0IDhiNDI2ZGM1NGNmNAooImJvbmRpbmc6IHJlbW92ZSBo YXJkY29kZWQgdmFsdWUiKS4KCkl0IHR1cm5lZCBvdXQgdGhhdCBteSBwcmV2aW91cyBwYXRjaCBv bmx5IGZpeGVkIHRoZSBjYXNlIHdoZW4KYmFsYW5jZS1hbGIgd2FzIHNwZWNpZmllZCBhcyBib25k aW5nIG1vZHVsZSBwYXJhbWV0ZXIsIGFuZCBub3Qgd2hlbgpiYWxhbmNlLWFsYiBtb2RlIHdhcyBz ZXQgdXNpbmcgL3N5cy9jbGFzcy9uZXQvKi9ib25kaW5nL21vZGUgKHRoZSBtb3N0CmNvbW1vbiB1 c2FnZSkuICBJbiB0aGUgbGF0dGVyIGNhc2UsIHRsYl9keW5hbWljX2xiIHdhcyBzZXQgdXAgYWNj b3JkaW5nCnRvIHRoZSBkZWZhdWx0IG1vZGUgb2YgdGhlIGJvbmRpbmcgaW50ZXJmYWNlLCB3aGlj aCBoYXBwZW5zIHRvIGJlCmJhbGFuY2UtcnIuCgpUaGlzIGFkZGl0aW9uYWwgcGF0Y2ggYWRkcmVz c2VzIHRoaXMgaXNzdWUgYnkgc2V0dGluZyB1cCB0bGJfZHluYW1pY19sYgp0byAxIGlmICJtb2Rl IiBpcyBzZXQgdG8gYmFsYW5jZS1hbGIgdGhyb3VnaCB0aGUgc3lzZnMgaW50ZXJmYWNlLgoKSSBk aWRuJ3QgYWRkIGNvZGUgdG8gY2hhbmdlIHRsYl9iYWxhbmNlX2xiIGJhY2sgdG8gdGhlIGRlZmF1 bHQgdmFsdWUgZm9yCm90aGVyIG1vZGVzLCBiZWNhdXNlICJtb2RlIiBpcyB1c3VhbGx5IHNldCB1 cCBvbmx5IG9uY2UgZHVyaW5nCmluaXRpYWxpemF0aW9uLCBhbmQgaXQncyBub3Qgd29ydGh3aGls ZSB0byBjaGFuZ2UgdGhlIHN0YXRpYyB2YXJpYWJsZQpib25kaW5nX2RlZmF1bHRzIGluIGJvbmRf bWFpbi5jIHRvIGEgZ2xvYmFsIHZhcmlhYmxlIGp1c3QgZm9yIHRoaXMKcHVycG9zZS4KCkNvbW1p dCA4YjQyNmRjNTRjZjQgYWxzbyBjaGFuZ2VzIHRoZSB2YWx1ZSBvZiB0bGJfZHluYW1pY19sYiBm b3IKYmFsYW5jZS10bGIgbW9kZSBpZiBpdCBpcyBzZXQgdXAgdXNpbmcgdGhlIHN5c2ZzIGludGVy ZmFjZS4gIEkgZGlkbid0CmNoYW5nZSB0aGF0IGJlaGF2aW9yLCBiZWNhdXNlIHRoZSB2YWx1ZSBv ZiB0bGJfYmFsYW5jZV9sYiBjYW4gYmUgY2hhbmdlZAp1c2luZyB0aGUgc3lzZnMgaW50ZXJmYWNl IGZvciBiYWxhbmNlLXRsYiwgYW5kIEkgZGlkbid0IGxpa2UgY2hhbmdpbmcKdGhlIGRlZmF1bHQg dmFsdWUgYmFjayBhbmQgZm9ydGggZm9yIGJhbGFuY2UtdGxiLgoKQXMgZm9yIGJhbGFuY2UtYWxi LCAvc3lzL2NsYXNzL25ldC8qL2JvbmRpbmcvdGxiX2JhbGFuY2VfbGIgY2Fubm90IGJlCndyaXR0 ZW4gdG8uICBIb3dldmVyLCBJIHRoaW5rIGJhbGFuY2UtYWxiIHdpdGggdGxiX2R5bmFtaWNfbGIg c2V0IHRvIDAKaXMgbm90IGFuIGludGVuZGVkIHVzYWdlLCBzbyB0aGVyZSBpcyBsaXR0bGUgdXNl IG1ha2luZyBpdCB3cml0YWJsZSBhdAp0aGlzIG1vbWVudC4KCkZpeGVzOiA4YjQyNmRjNTRjZjQg KCJib25kaW5nOiByZW1vdmUgaGFyZGNvZGVkIHZhbHVlIikKUmVwb3J0ZWQtYnk6IFJlaW5pcyBS b3ppdGlzIDxyQHJvemUubHY+ClNpZ25lZC1vZmYtYnk6IEtvc3VrZSBUYXRzdWthd2EgPHRhdHN1 QGFiLmpwLm5lYy5jb20+CkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnICAjIHY0LjEyKwpBY2tl ZC1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpB Y2tlZC1ieTogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ib25kaW5nL2JvbmRfb3B0aW9ucy5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5j IGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlvbnMuYwppbmRleCBhMTJkNjAzZDQxYzYu LjU5MzFhYTJmZTk5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlv bnMuYworKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5jCkBAIC03NTQsNiAr NzU0LDkgQEAgc3RhdGljIGludCBib25kX29wdGlvbl9tb2RlX3NldChzdHJ1Y3QgYm9uZGluZyAq Ym9uZCwKIAkJCSAgIGJvbmQtPnBhcmFtcy5taWltb24pOwogCX0KIAorCWlmIChuZXd2YWwtPnZh bHVlID09IEJPTkRfTU9ERV9BTEIpCisJCWJvbmQtPnBhcmFtcy50bGJfZHluYW1pY19sYiA9IDE7 CisKIAkvKiBkb24ndCBjYWNoZSBhcnBfdmFsaWRhdGUgYmV0d2VlbiBtb2RlcyAqLwogCWJvbmQt PnBhcmFtcy5hcnBfdmFsaWRhdGUgPSBCT05EX0FSUF9WQUxJREFURV9OT05FOwogCWJvbmQtPnBh cmFtcy5tb2RlID0gbmV3dmFsLT52YWx1ZTsKLS0gCjIuMTMuNgoKCkZyb20gYTZkMmFmYTUxYTY4 NzIzOGMxZWEzZmYyNDZiZjI4NzI3YmUxNjM1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQ2hyaXN0b3BoZSBKQUlMTEVUIDxjaHJpc3RvcGhlLmphaWxsZXRAd2FuYWRvby5mcj4KRGF0 ZTogTW9uLCAxMSBTZXAgMjAxNyAyMTo1NjoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMvNDhd IG9wZW52c3dpdGNoOiBGaXggYW4gZXJyb3IgaGFuZGxpbmcgcGF0aCBpbgogJ292c19ubGFfaW5p dF9tYXRjaF9hbmRfYWN0aW9uKCknCgpbIFVwc3RyZWFtIGNvbW1pdCA1ODI5ZTYyYWMxN2E0MGFi MDhjMWI5MDU1NjU2MDRhNGI1ZmE3YWY2IF0KCkFsbCBvdGhlciBlcnJvciBoYW5kbGluZyBwYXRo cyBpbiB0aGlzIGZ1bmN0aW9uIGdvIHRocm91Z2ggdGhlICdlcnJvcicKbGFiZWwuIFRoaXMgb25l IHNob3VsZCBkbyB0aGUgc2FtZS4KCkZpeGVzOiA5Y2M5YTVjYjE3NmMgKCJkYXRhcGF0aDogQXZv aWQgdXNpbmcgc3RhY2sgbGFyZ2VyIHRoYW4gMTAyNC4iKQpTaWduZWQtb2ZmLWJ5OiBDaHJpc3Rv cGhlIEpBSUxMRVQgPGNocmlzdG9waGUuamFpbGxldEB3YW5hZG9vLmZyPgpBY2tlZC1ieTogUHJh dmluIEIgU2hlbGFyIDxwc2hlbGFyQG92bi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGgu YyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgYi9uZXQvb3BlbnZzd2l0 Y2gvZGF0YXBhdGguYwppbmRleCA2YjQ0ZmU0MDUyODIuLjI5NDQ0NGJiMDc1YyAxMDA2NDQKLS0t IGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMKKysrIGIvbmV0L29wZW52c3dpdGNoL2RhdGFw YXRoLmMKQEAgLTExMjYsNyArMTEyNiw4IEBAIHN0YXRpYyBpbnQgb3ZzX25sYV9pbml0X21hdGNo X2FuZF9hY3Rpb24oc3RydWN0IG5ldCAqbmV0LAogCQlpZiAoIWFbT1ZTX0ZMT1dfQVRUUl9LRVld KSB7CiAJCQlPVlNfTkxFUlIobG9nLAogCQkJCSAgIkZsb3cga2V5IGF0dHJpYnV0ZSBub3QgcHJl c2VudCBpbiBzZXQgZmxvdy4iKTsKLQkJCXJldHVybiAtRUlOVkFMOworCQkJZXJyb3IgPSAtRUlO VkFMOworCQkJZ290byBlcnJvcjsKIAkJfQogCiAJCSphY3RzID0gZ2V0X2Zsb3dfYWN0aW9ucyhu ZXQsIGFbT1ZTX0ZMT1dfQVRUUl9BQ1RJT05TXSwga2V5LAotLSAKMi4xMy42CgoKRnJvbSBhZGNi NGIwZDEwZDYzNjI5MWE1NzNlZTFmZjY1NjI2NmVmZTI1NDUzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBZdXZhbCBNaW50eiA8eXV2YWxtQG1lbGxhbm94LmNvbT4KRGF0ZTogVHVlLCAx MiBTZXAgMjAxNyAwODo1MDo1MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvNDhdIG1seHN3OiBz cGVjdHJ1bTogUHJldmVudCBtaXJyZWQtcmVsYXRlZCBjcmFzaCBvbgogcmVtb3ZhbAoKWyBVcHN0 cmVhbSBjb21taXQgNjM5OWViY2NjZmZhMTJlNjViYzE1ZWRhMDM5ZDM3NjczMjY0ZWJjZSBdCgpX aGVuIHJlbW92aW5nIHRoZSBvZmZsb2FkaW5nIG9mIG1pcnJlZCBhY3Rpb25zIHVuZGVyCm1hdGNo YWxsIGNsYXNzaWZpZXJzLCBtbHhzdyB3b3VsZCBmaW5kIHRoZSBkZXN0aW5hdGlvbiBwb3J0CmFz c29jaWF0ZWQgd2l0aCB0aGUgb2ZmbG9hZGVkIGFjdGlvbiBhbmQgdXRpbGl6ZSBpdCBmb3IgdW5k b2luZwp0aGUgY29uZmlndXJhdGlvbi4KCkRlcGVuZGluZyBvbiB0aGUgb3JkZXIgYnkgd2hpY2gg cG9ydHMgYXJlIHJlbW92ZWQsIGl0J3MgcG9zc2libGUgdGhhdAp0aGUgZGVzdGluYXRpb24gcG9y dCB3b3VsZCBnZXQgcmVtb3ZlZCBiZWZvcmUgdGhlIHNvdXJjZSBwb3J0LgpJbiBzdWNoIGEgc2Nl bmFyaW8sIHdoZW4gYWN0aW9ucyB3b3VsZCBiZSBmbHVzaGVkIGZvciB0aGUgc291cmNlIHBvcnQK bWx4c3cgd291bGQgcGVyZm9ybSBhbiBpbGxlZ2FsIGRlcmVmZXJlbmNlIGFzIHRoZSBkZXN0aW5h dGlvbiBwb3J0IGlzCm5vIGxvbmdlciBsaXN0ZWQuCgpTaW5jZSB0aGUgb25seSBpdGVtIG5lY2Vz c2FyeSBmb3IgdW5kb2luZyB0aGUgY29uZmlndXJhdGlvbiBvbiB0aGUKZGVzdGluYXRpb24gc2lk ZSBpcyB0aGUgcG9ydC1pZCBhbmQgdGhhdCBpbiB0dXJuIGlzIGFscmVhZHkgbWFpbnRhaW5lZApi eSBtbHhzdyBvbiB0aGUgc291cmNlLXBvcnQsIHNpbXBseSBzdG9wIHRyeWluZyB0byBhY2Nlc3Mg dGhlCmRlc3RpbmF0aW9uIHBvcnQgYW5kIHVzZSB0aGUgcG9ydC1pZCBkaXJlY3RseSBpbnN0ZWFk LgoKRml4ZXM6IDc2M2I0YjcwYWYgKCJtbHhzdzogc3BlY3RydW06IEFkZCBzdXBwb3J0IGluIG1h dGNoYWxsIG1pcnJvciBUQyBvZmZsb2FkaW5nIikKU2lnbmVkLW9mZi1ieTogWXV2YWwgTWludHog PHl1dmFsbUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IEppcmkgUGlya28gPGppcmlAbWVs bGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0u YyB8IDE5ICsrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMo KyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seHN3L3NwZWN0cnVtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHhzdy9zcGVjdHJ1bS5jCmluZGV4IGFjYTRjYTE4NjA4ZC4uNzMzOTBmOTBiNTgxIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMKQEAgLTU3Miwx NSArNTcyLDE0IEBAIHN0YXRpYyB2b2lkIG1seHN3X3NwX3NwYW5fZW50cnlfZGVzdHJveShzdHJ1 Y3QgbWx4c3dfc3AgKm1seHN3X3NwLAogfQogCiBzdGF0aWMgc3RydWN0IG1seHN3X3NwX3NwYW5f ZW50cnkgKgotbWx4c3dfc3Bfc3Bhbl9lbnRyeV9maW5kKHN0cnVjdCBtbHhzd19zcF9wb3J0ICpw b3J0KQorbWx4c3dfc3Bfc3Bhbl9lbnRyeV9maW5kKHN0cnVjdCBtbHhzd19zcCAqbWx4c3dfc3As IHU4IGxvY2FsX3BvcnQpCiB7Ci0Jc3RydWN0IG1seHN3X3NwICptbHhzd19zcCA9IHBvcnQtPm1s eHN3X3NwOwogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IG1seHN3X3NwLT5zcGFuLmVudHJp ZXNfY291bnQ7IGkrKykgewogCQlzdHJ1Y3QgbWx4c3dfc3Bfc3Bhbl9lbnRyeSAqY3VyciA9ICZt bHhzd19zcC0+c3Bhbi5lbnRyaWVzW2ldOwogCi0JCWlmIChjdXJyLT51c2VkICYmIGN1cnItPmxv Y2FsX3BvcnQgPT0gcG9ydC0+bG9jYWxfcG9ydCkKKwkJaWYgKGN1cnItPnVzZWQgJiYgY3Vyci0+ bG9jYWxfcG9ydCA9PSBsb2NhbF9wb3J0KQogCQkJcmV0dXJuIGN1cnI7CiAJfQogCXJldHVybiBO VUxMOwpAQCAtNTkxLDcgKzU5MCw4IEBAIHN0YXRpYyBzdHJ1Y3QgbWx4c3dfc3Bfc3Bhbl9lbnRy eQogewogCXN0cnVjdCBtbHhzd19zcF9zcGFuX2VudHJ5ICpzcGFuX2VudHJ5OwogCi0Jc3Bhbl9l bnRyeSA9IG1seHN3X3NwX3NwYW5fZW50cnlfZmluZChwb3J0KTsKKwlzcGFuX2VudHJ5ID0gbWx4 c3dfc3Bfc3Bhbl9lbnRyeV9maW5kKHBvcnQtPm1seHN3X3NwLAorCQkJCQkgICAgICBwb3J0LT5s b2NhbF9wb3J0KTsKIAlpZiAoc3Bhbl9lbnRyeSkgewogCQkvKiBBbHJlYWR5IGV4aXN0cywganVz dCB0YWtlIGEgcmVmZXJlbmNlICovCiAJCXNwYW5fZW50cnktPnJlZl9jb3VudCsrOwpAQCAtNzgw LDEyICs3ODAsMTMgQEAgc3RhdGljIGludCBtbHhzd19zcF9zcGFuX21pcnJvcl9hZGQoc3RydWN0 IG1seHN3X3NwX3BvcnQgKmZyb20sCiB9CiAKIHN0YXRpYyB2b2lkIG1seHN3X3NwX3NwYW5fbWly cm9yX3JlbW92ZShzdHJ1Y3QgbWx4c3dfc3BfcG9ydCAqZnJvbSwKLQkJCQkJc3RydWN0IG1seHN3 X3NwX3BvcnQgKnRvLAorCQkJCQl1OCBkZXN0aW5hdGlvbl9wb3J0LAogCQkJCQllbnVtIG1seHN3 X3NwX3NwYW5fdHlwZSB0eXBlKQogewogCXN0cnVjdCBtbHhzd19zcF9zcGFuX2VudHJ5ICpzcGFu X2VudHJ5OwogCi0Jc3Bhbl9lbnRyeSA9IG1seHN3X3NwX3NwYW5fZW50cnlfZmluZCh0byk7CisJ c3Bhbl9lbnRyeSA9IG1seHN3X3NwX3NwYW5fZW50cnlfZmluZChmcm9tLT5tbHhzd19zcCwKKwkJ CQkJICAgICAgZGVzdGluYXRpb25fcG9ydCk7CiAJaWYgKCFzcGFuX2VudHJ5KSB7CiAJCW5ldGRl dl9lcnIoZnJvbS0+ZGV2LCAibm8gc3BhbiBlbnRyeSBmb3VuZFxuIik7CiAJCXJldHVybjsKQEAg LTE1NjAsMTQgKzE1NjEsMTIgQEAgc3RhdGljIHZvaWQKIG1seHN3X3NwX3BvcnRfZGVsX2Nsc19t YXRjaGFsbF9taXJyb3Ioc3RydWN0IG1seHN3X3NwX3BvcnQgKm1seHN3X3NwX3BvcnQsCiAJCQkJ ICAgICAgc3RydWN0IG1seHN3X3NwX3BvcnRfbWFsbF9taXJyb3JfdGNfZW50cnkgKm1pcnJvcikK IHsKLQlzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwID0gbWx4c3dfc3BfcG9ydC0+bWx4c3dfc3A7 CiAJZW51bSBtbHhzd19zcF9zcGFuX3R5cGUgc3Bhbl90eXBlOwotCXN0cnVjdCBtbHhzd19zcF9w b3J0ICp0b19wb3J0OwogCi0JdG9fcG9ydCA9IG1seHN3X3NwLT5wb3J0c1ttaXJyb3ItPnRvX2xv Y2FsX3BvcnRdOwogCXNwYW5fdHlwZSA9IG1pcnJvci0+aW5ncmVzcyA/CiAJCQlNTFhTV19TUF9T UEFOX0lOR1JFU1MgOiBNTFhTV19TUF9TUEFOX0VHUkVTUzsKLQltbHhzd19zcF9zcGFuX21pcnJv cl9yZW1vdmUobWx4c3dfc3BfcG9ydCwgdG9fcG9ydCwgc3Bhbl90eXBlKTsKKwltbHhzd19zcF9z cGFuX21pcnJvcl9yZW1vdmUobWx4c3dfc3BfcG9ydCwgbWlycm9yLT50b19sb2NhbF9wb3J0LAor CQkJCSAgICBzcGFuX3R5cGUpOwogfQogCiBzdGF0aWMgaW50Ci0tIAoyLjEzLjYKCgpGcm9tIGY1 NjAxNWM1OWIzYjViYTQwZDk3Mjc1MWE5ZDEyODBjZTJlZmM0ZWUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtz LmNvbT4KRGF0ZTogVHVlLCAxMiBTZXAgMjAxNyAxNToxMDowNSArMDMwMApTdWJqZWN0OiBbUEFU Q0ggMDUvNDhdIG5ldDogYm9uZGluZzogZml4IHRsYl9keW5hbWljX2xiIGRlZmF1bHQgdmFsdWUK ClsgVXBzdHJlYW0gY29tbWl0IGYxM2FkMTA0YjRlODg2YTAzZTc1ZjEzMGRhZjU3OWVmOWJmMzNk ZmMgXQoKQ29tbWl0IDhiNDI2ZGM1NGNmNCAoImJvbmRpbmc6IHJlbW92ZSBoYXJkY29kZWQgdmFs dWUiKSBjaGFuZ2VkIHRoZQpkZWZhdWx0IHZhbHVlIGZvciB0bGJfZHluYW1pY19sYiB3aGljaCBs ZWFkIHRvIGVpdGhlciBicm9rZW4gQUxCIG1vZGUKKHNpbmNlIHRsYl9keW5hbWljX2xiIGNhbiBi ZSBjaGFuZ2VkIG9ubHkgaW4gVExCKSBvciBzZXR0aW5nIFRMQiBtb2RlCndpdGggdGxiX2R5bmFt aWNfbGIgZXF1YWwgdG8gMC4KVGhlIGZpcnN0IGlzc3VlIHdhcyByZWNlbnRseSBmaXhlZCBieSBz ZXR0aW5nIHRsYl9keW5hbWljX2xiIHRvIDEgYWx3YXlzCndoZW4gc3dpdGNoaW5nIHRvIEFMQiBt b2RlLCBidXQgdGhlIGRlZmF1bHQgdmFsdWUgaXMgc3RpbGwgd3JvbmcgYW5kCndlJ2xsIGVudGVy IFRMQiBtb2RlIHdpdGggdGxiX2R5bmFtaWNfbGIgZXF1YWwgdG8gMCBpZiB0aGUgbW9kZSBpcwpj aGFuZ2VkIHZpYSBuZXRsaW5rIG9yIHN5c2ZzLiBJbiBvcmRlciB0byByZXN0b3JlIHRoZSBwcmV2 aW91cyBiZWhhdmlvdXIKYW5kIGRlZmF1bHQgdmFsdWUgc2ltcGx5IHJlbW92ZSB0aGUgbW9kZSBj aGVjayBhcm91bmQgdGhlIGRlZmF1bHQgcGFyYW0KaW5pdGlhbGl6YXRpb24gZm9yIHRsYl9keW5h bWljX2xiIHdoaWNoIHdpbGwgYWx3YXlzIHNldCBpdCB0byAxIGFzCmJlZm9yZS4KCkZpeGVzOiA4 YjQyNmRjNTRjZjQgKCJib25kaW5nOiByZW1vdmUgaGFyZGNvZGVkIHZhbHVlIikKU2lnbmVkLW9m Zi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpB Y2tlZC1ieTogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ib25kaW5nL2JvbmRfbWFpbi5jIHwgMTcgKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA3IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFp bi5jCmluZGV4IGZjNjM5OTJhYjBlMC4uYzk5ZGM1OWQ3MjliIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9t YWluLmMKQEAgLTQyODksNyArNDI4OSw3IEBAIHN0YXRpYyBpbnQgYm9uZF9jaGVja19wYXJhbXMo c3RydWN0IGJvbmRfcGFyYW1zICpwYXJhbXMpCiAJaW50IGJvbmRfbW9kZQk9IEJPTkRfTU9ERV9S T1VORFJPQklOOwogCWludCB4bWl0X2hhc2h0eXBlID0gQk9ORF9YTUlUX1BPTElDWV9MQVlFUjI7 CiAJaW50IGxhY3BfZmFzdCA9IDA7Ci0JaW50IHRsYl9keW5hbWljX2xiID0gMDsKKwlpbnQgdGxi X2R5bmFtaWNfbGI7CiAKIAkvKiBDb252ZXJ0IHN0cmluZyBwYXJhbWV0ZXJzLiAqLwogCWlmICht b2RlKSB7CkBAIC00NjAxLDE2ICs0NjAxLDEzIEBAIHN0YXRpYyBpbnQgYm9uZF9jaGVja19wYXJh bXMoc3RydWN0IGJvbmRfcGFyYW1zICpwYXJhbXMpCiAJfQogCWFkX3VzZXJfcG9ydF9rZXkgPSB2 YWxwdHItPnZhbHVlOwogCi0JaWYgKChib25kX21vZGUgPT0gQk9ORF9NT0RFX1RMQikgfHwgKGJv bmRfbW9kZSA9PSBCT05EX01PREVfQUxCKSkgewotCQlib25kX29wdF9pbml0c3RyKCZuZXd2YWws ICJkZWZhdWx0Iik7Ci0JCXZhbHB0ciA9IGJvbmRfb3B0X3BhcnNlKGJvbmRfb3B0X2dldChCT05E X09QVF9UTEJfRFlOQU1JQ19MQiksCi0JCQkJCSZuZXd2YWwpOwotCQlpZiAoIXZhbHB0cikgewot CQkJcHJfZXJyKCJFcnJvcjogTm8gdGxiX2R5bmFtaWNfbGIgZGVmYXVsdCB2YWx1ZSIpOwotCQkJ cmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJdGxiX2R5bmFtaWNfbGIgPSB2YWxwdHItPnZhbHVlOwor CWJvbmRfb3B0X2luaXRzdHIoJm5ld3ZhbCwgImRlZmF1bHQiKTsKKwl2YWxwdHIgPSBib25kX29w dF9wYXJzZShib25kX29wdF9nZXQoQk9ORF9PUFRfVExCX0RZTkFNSUNfTEIpLCAmbmV3dmFsKTsK KwlpZiAoIXZhbHB0cikgeworCQlwcl9lcnIoIkVycm9yOiBObyB0bGJfZHluYW1pY19sYiBkZWZh dWx0IHZhbHVlIik7CisJCXJldHVybiAtRUlOVkFMOwogCX0KKwl0bGJfZHluYW1pY19sYiA9IHZh bHB0ci0+dmFsdWU7CiAKIAlpZiAobHBfaW50ZXJ2YWwgPT0gMCkgewogCQlwcl93YXJuKCJXYXJu aW5nOiBpcF9pbnRlcnZhbCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgJWQsIHNvIGl0IHdhcyByZXNl dCB0byAlZFxuIiwKLS0gCjIuMTMuNgoKCkZyb20gNjFmOWZkMjlkZjdjYjI4ZGNmMDAyNDNhMTk4 ODBlMzgzMDg1NjI1YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDEzIFNlcCAyMDE3IDExOjE2OjQ1IC0w NzAwClN1YmplY3Q6IFtQQVRDSCAwNi80OF0gbmV0X3NjaGVkOiBnZW5fZXN0aW1hdG9yOiBmaXgg c2NhbGluZyBlcnJvciBpbgogYnl0ZXMvcGFja2V0cyBzYW1wbGVzCgpbIFVwc3RyZWFtIGNvbW1p dCBjYTU1OGUxODU5NzJkOGVjZDMwODc2MGFiZjk3MmY1ZDQwOGJjZmYwIF0KCkRlbnlzIHJlcG9y dGVkIHdyb25nIHJhdGUgZXN0aW1hdGlvbnMgd2l0aCBIVEIgY2xhc3Nlcy4KCkl0IGFwcGVhcnMg dGhlIGJ1ZyB3YXMgYWRkZWQgaW4gbGludXgtNC4xMCwgc2luY2UgbXkgdGVzdHMKd2hlcmUgdXNp bmcgaW50ZXJ2YWxzIG9mIG9uZSBzZWNvbmQgb25seS4KCkhUQiB1c2luZyA0IHNlYyBkZWZhdWx0 IHJhdGUgZXN0aW1hdG9ycywgcmVwb3J0ZWQgcmF0ZXMKd2VyZSA0eCBoaWdoZXIuCgpXZSBuZWVk IHRvIHByb3Blcmx5IHNjYWxlIHRoZSBieXRlcy9wYWNrZXRzIHNhbXBsZXMgYmVmb3JlCmludGVn cmF0aW5nIHRoZW0gaW4gRVdNQS4KClRlc3RlZDoKIGVjaG8gMSA+L3N5cy9tb2R1bGUvc2NoX2h0 Yi9wYXJhbWV0ZXJzL2h0Yl9yYXRlX2VzdAoKIFNldHVwIEhUQiB3aXRoIG9uZSBjbGFzcyB3aXRo IGEgcmF0ZS9jYWlsIG9mIDVHYml0CgogR2VuZXJhdGUgdHJhZmZpYyBvbiB0aGlzIGNsYXNzCgog dGMgLXMgLWQgY2wgc2ggZGV2IGV0aDAgY2xhc3NpZCA3MDAyOjExCmNsYXNzIGh0YiA3MDAyOjEx IHBhcmVudCA3MDAyOjEgcHJpbyA1IHF1YW50dW0gMjAwMDAwIHJhdGUgNUdiaXQgY2VpbAo1R2Jp dCBsaW5rbGF5ZXIgZXRoZXJuZXQgYnVyc3QgODAwMDBiLzEgbXB1IDBiIGNidXJzdCA4MDAwMGIv MSBtcHUgMGIKbGV2ZWwgMCByYXRlX2hhbmRsZSAxCiBTZW50IDE0ODgyMTU0MjE2NDggYnl0ZXMg OTgyOTY5MjQzIHBrdCAoZHJvcHBlZCAwLCBvdmVybGltaXRzIDAKcmVxdWV1ZXMgMCkKIHJhdGUg NUdiaXQgNDEyODE0cHBzIGJhY2tsb2cgMTM2MjYwYiAycCByZXF1ZXVlcyAwCiBUQ1AgcGt0cy9y dHggOTgyOTY5MzI3LzQ1IGJ5dGVzIDE0ODgyMTU1NTc0MTQvNjgxMzAKIGxlbmRlZDogMjI3MzI4 MjYgYm9ycm93ZWQ6IDAgZ2lhbnRzOiAwCiB0b2tlbnM6IC0xNjg0IGN0b2tlbnM6IC0xNjg0CgpG aXhlczogMWMwZDMyZmRlNWJkICgibmV0X3NjaGVkOiBnZW5fZXN0aW1hdG9yOiBjb21wbGV0ZSBy ZXdyaXRlIG9mIHJhdGUgZXN0aW1hdG9ycyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IERlbnlzIEZlZG9yeXNoY2hlbmtvIDxu dWNsZWFyY2F0QG51Y2xlYXJjYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZ2VuX2VzdGltYXRvci5jIHwgNCAr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9jb3JlL2dlbl9lc3RpbWF0b3IuYyBiL25ldC9jb3JlL2dlbl9lc3RpbWF0 b3IuYwppbmRleCAwMzg1ZGVjZTFmNmYuLjdjMWZmZDZmOTUwMSAxMDA2NDQKLS0tIGEvbmV0L2Nv cmUvZ2VuX2VzdGltYXRvci5jCisrKyBiL25ldC9jb3JlL2dlbl9lc3RpbWF0b3IuYwpAQCAtODMs MTAgKzgzLDEwIEBAIHN0YXRpYyB2b2lkIGVzdF90aW1lcih1bnNpZ25lZCBsb25nIGFyZykKIAl1 NjQgcmF0ZSwgYnJhdGU7CiAKIAllc3RfZmV0Y2hfY291bnRlcnMoZXN0LCAmYik7Ci0JYnJhdGUg PSAoYi5ieXRlcyAtIGVzdC0+bGFzdF9ieXRlcykgPDwgKDggLSBlc3QtPmV3bWFfbG9nKTsKKwli cmF0ZSA9IChiLmJ5dGVzIC0gZXN0LT5sYXN0X2J5dGVzKSA8PCAoMTAgLSBlc3QtPmV3bWFfbG9n IC0gZXN0LT5pbnR2bF9sb2cpOwogCWJyYXRlIC09IChlc3QtPmF2YnBzID4+IGVzdC0+ZXdtYV9s b2cpOwogCi0JcmF0ZSA9ICh1NjQpKGIucGFja2V0cyAtIGVzdC0+bGFzdF9wYWNrZXRzKSA8PCAo OCAtIGVzdC0+ZXdtYV9sb2cpOworCXJhdGUgPSAodTY0KShiLnBhY2tldHMgLSBlc3QtPmxhc3Rf cGFja2V0cykgPDwgKDEwIC0gZXN0LT5ld21hX2xvZyAtIGVzdC0+aW50dmxfbG9nKTsKIAlyYXRl IC09IChlc3QtPmF2cHBzID4+IGVzdC0+ZXdtYV9sb2cpOwogCiAJd3JpdGVfc2VxY291bnRfYmVn aW4oJmVzdC0+c2VxKTsKLS0gCjIuMTMuNgoKCkZyb20gMGZkNGIzNmM4MmM3MGU1MTM3YTdlNDhj MjhiZTkyMzYyODgwZjUwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmlyaSBQaXJr byA8amlyaUBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMTc6MzI6MzcgKzAy MDAKU3ViamVjdDogW1BBVENIIDA3LzQ4XSBuZXQ6IHNjaGVkOiBmaXggdXNlLWFmdGVyLWZyZWUg aW4gdGNmX2FjdGlvbl9kZXN0cm95CiBhbmQgdGNmX2RlbF93YWxrZXIKClsgVXBzdHJlYW0gY29t bWl0IDI1NWNkNTBmMjA3YWU4ZWM3YjIyNjYzMjQ2YzgzMzQwNzc0NGU2MzQgXQoKUmVjZW50IGNv bW1pdCBkN2ZiNjBiOWNhZmIgKCJuZXRfc2NoZWQ6IGdldCByaWQgb2YgdGNmYV9yY3UiKSByZW1v dmVkCmZyZWVpbmcgaW4gY2FsbF9yY3UsIHdoaWNoIGNoYW5nZWQgYWxyZWFkeSBleGlzdGluZyBo YXJkLXRvLWhpdApyYWNlIGNvbmRpdGlvbiBpbnRvIDEwMCUgaGl0OgoKWyAgNTk4LjU5OTgyNV0g QlVHOiB1bmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQg MDAwMDAwMDAwMDAwMDAzMApbICA1OTguNjA3NzgyXSBJUDogdGNmX2FjdGlvbl9kZXN0cm95KzB4 YzAvMHgxNDAKCk9yOgoKWyAgIDQwLjg1ODkyNF0gQlVHOiB1bmFibGUgdG8gaGFuZGxlIGtlcm5l bCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgMDAwMDAwMDAwMDAwMDAzMApbICAgNDAuODYy ODQwXSBJUDogdGNmX2dlbmVyaWNfd2Fsa2VyKzB4NTM0LzB4ODIwCgpGaXggdGhpcyBieSBzdG9y aW5nIHRoZSBvcHMgYW5kIHVzZSB0aGVtIGRpcmVjdGx5IGZvciBtb2R1bGVfcHV0IGNhbGwuCgpG aXhlczogYTg1YTk3MGFmMjY1ICgibmV0X3NjaGVkOiBtb3ZlIHRjX2FjdGlvbiBpbnRvIHRjZl9j b21tb24iKQpTaWduZWQtb2ZmLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9zY2hlZC9hY3RfYXBpLmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X2FwaS5jIGIv bmV0L3NjaGVkL2FjdF9hcGkuYwppbmRleCBmMmU5ZWQzNGE5NjMuLjBjNWRiYjE3MjQzNyAxMDA2 NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9hcGkuYworKysgYi9uZXQvc2NoZWQvYWN0X2FwaS5jCkBA IC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIGludCB0Y2ZfZGVsX3dhbGtlcihzdHJ1Y3QgdGNmX2hh c2hpbmZvICpoaW5mbywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJaGxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShwLCBuLCBoZWFkLCB0Y2ZhX2hlYWQpIHsKIAkJCXJldCA9IF9fdGNmX2hhc2hfcmVs ZWFzZShwLCBmYWxzZSwgdHJ1ZSk7CiAJCQlpZiAocmV0ID09IEFDVF9QX0RFTEVURUQpIHsKLQkJ CQltb2R1bGVfcHV0KHAtPm9wcy0+b3duZXIpOworCQkJCW1vZHVsZV9wdXQob3BzLT5vd25lcik7 CiAJCQkJbl9pKys7CiAJCQl9IGVsc2UgaWYgKHJldCA8IDApCiAJCQkJZ290byBubGFfcHV0X2Zh aWx1cmU7CkBAIC01MDYsMTMgKzUwNiwxNSBAQCBFWFBPUlRfU1lNQk9MKHRjZl9hY3Rpb25fZXhl Yyk7CiAKIGludCB0Y2ZfYWN0aW9uX2Rlc3Ryb3koc3RydWN0IGxpc3RfaGVhZCAqYWN0aW9ucywg aW50IGJpbmQpCiB7CisJY29uc3Qgc3RydWN0IHRjX2FjdGlvbl9vcHMgKm9wczsKIAlzdHJ1Y3Qg dGNfYWN0aW9uICphLCAqdG1wOwogCWludCByZXQgPSAwOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKGEsIHRtcCwgYWN0aW9ucywgbGlzdCkgeworCQlvcHMgPSBhLT5vcHM7CiAJCXJldCA9 IF9fdGNmX2hhc2hfcmVsZWFzZShhLCBiaW5kLCB0cnVlKTsKIAkJaWYgKHJldCA9PSBBQ1RfUF9E RUxFVEVEKQotCQkJbW9kdWxlX3B1dChhLT5vcHMtPm93bmVyKTsKKwkJCW1vZHVsZV9wdXQob3Bz LT5vd25lcik7CiAJCWVsc2UgaWYgKHJldCA8IDApCiAJCQlyZXR1cm4gcmV0OwogCX0KLS0gCjIu MTMuNgoKCkZyb20gYjk0ZDY4NDc4MGZlNGQwNDkwZDc3MGI3ODUwZGMxYmNkMGQwYTEwNCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBv cmFjbGUuY29tPgpEYXRlOiBUaHUsIDE0IFNlcCAyMDE3IDAyOjAwOjU0ICswMzAwClN1YmplY3Q6 IFtQQVRDSCAwOC80OF0gc2N0cDogcG90ZW50aWFsIHJlYWQgb3V0IG9mIGJvdW5kcyBpbgogc2N0 cF91bHBldmVudF90eXBlX2VuYWJsZWQoKQoKWyBVcHN0cmVhbSBjb21taXQgZmE1ZjdiNTFmYzMw ODBjMmIxOTVmYTg3YzdlY2E3YzA1ZTU2ZjY3MyBdCgpUaGlzIGNvZGUgY2F1c2VzIGEgc3RhdGlj IGNoZWNrZXIgd2FybmluZyBiZWNhdXNlIFNtYXRjaCBkb2Vzbid0IHRydXN0CmFueXRoaW5nIHRo YXQgY29tZXMgZnJvbSBza2ItPmRhdGEuICBJJ3ZlIHJldmlld2VkIHRoaXMgY29kZSBhbmQgSSBk bwp0aGluayBza2ItPmRhdGEgY2FuIGJlIGNvbnRyb2xsZWQgYnkgdGhlIHVzZXIgaGVyZS4KClRo ZSBzY3RwX2V2ZW50X3N1YnNjcmliZSBzdHJ1Y3QgaGFzIDEzIF9fdTggZmllbGRzIGFuZCB3ZSB3 YW50IHRvIHNlZQppZiBvdXJzIGlzIG5vbi16ZXJvLiAgc25fdHlwZSBjYW4gYmUgYW55IHZhbHVl IGluIHRoZSAwLVVTSFJUX01BWCByYW5nZS4KV2UncmUgc3VidHJhY3RpbmcgU0NUUF9TTl9UWVBF X0JBU0Ugd2hpY2ggaXMgMSA8PCAxNSBzbyB3ZSBjb3VsZCByZWFkCmVpdGhlciBiZWZvcmUgdGhl IHN0YXJ0IG9mIHRoZSBzdHJ1Y3Qgb3IgYWZ0ZXIgdGhlIGVuZC4KClRoaXMgaXMgYSB2ZXJ5IG9s ZCBidWcgYW5kIGl0J3Mgc3VycHJpc2luZyB0aGF0IGl0IHdvdWxkIGdvIHVuZGV0ZWN0ZWQKZm9y IHNvIGxvbmcgYnV0IG15IHRoZW9yeSBpcyB0aGF0IGl0IGp1c3QgZG9lc24ndCBoYXZlIGEgYmln IGltcGFjdCBzbwppdCB3b3VsZCBiZSBoYXJkIHRvIG5vdGljZS4KClNpZ25lZC1vZmYtYnk6IERh biBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3NjdHAv dWxwZXZlbnQuaCB8IDYgKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvc2N0cC91bHBldmVudC5oIGIv aW5jbHVkZS9uZXQvc2N0cC91bHBldmVudC5oCmluZGV4IDEwNjA0OTRhYzIzMC4uYjhjODZlYzFh OGY1IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY3RwL3VscGV2ZW50LmgKKysrIGIvaW5jbHVk ZS9uZXQvc2N0cC91bHBldmVudC5oCkBAIC0xNTMsOCArMTUzLDEyIEBAIF9fdTE2IHNjdHBfdWxw ZXZlbnRfZ2V0X25vdGlmaWNhdGlvbl90eXBlKGNvbnN0IHN0cnVjdCBzY3RwX3VscGV2ZW50ICpl dmVudCk7CiBzdGF0aWMgaW5saW5lIGludCBzY3RwX3VscGV2ZW50X3R5cGVfZW5hYmxlZChfX3Ux NiBzbl90eXBlLAogCQkJCQkgICAgIHN0cnVjdCBzY3RwX2V2ZW50X3N1YnNjcmliZSAqbWFzaykK IHsKKwlpbnQgb2Zmc2V0ID0gc25fdHlwZSAtIFNDVFBfU05fVFlQRV9CQVNFOwogCWNoYXIgKmFt YXNrID0gKGNoYXIgKikgbWFzazsKLQlyZXR1cm4gYW1hc2tbc25fdHlwZSAtIFNDVFBfU05fVFlQ RV9CQVNFXTsKKworCWlmIChvZmZzZXQgPj0gc2l6ZW9mKHN0cnVjdCBzY3RwX2V2ZW50X3N1YnNj cmliZSkpCisJCXJldHVybiAwOworCXJldHVybiBhbWFza1tvZmZzZXRdOwogfQogCiAvKiBHaXZl biBhbiBldmVudCBzdWJzY3JpcHRpb24sIGlzIHRoaXMgZXZlbnQgZW5hYmxlZD8gKi8KLS0gCjIu MTMuNgoKCkZyb20gYTk4NWRhYmVlYmQzODViMjQ1OTdlNGQxYWE5MjIxYzE3MDRkN2VlNSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbC5j b20+CkRhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMjA6MzA6MzkgLTA3MDAKU3ViamVjdDogW1BBVENI IDA5LzQ4XSB0Y3A6IHVwZGF0ZSBza2ItPnNrYl9tc3RhbXAgbW9yZSBjYXJlZnVsbHkKClsgVXBz dHJlYW0gY29tbWl0IDhjNzJjNjViNDI2YjQ3YjNjMTY2YThmZWYwZDg5MjdmZTVlOGEyOGQgXQoK bGl1amlhbiByZXBvcnRlZCBhIHByb2JsZW0gaW4gVENQX1VTRVJfVElNRU9VVCBwcm9jZXNzaW5n IHdpdGggYSBwYXRjaAppbiB0Y3BfcHJvYmVfdGltZXIoKSA6CiAgICAgIGh0dHBzOi8vd3d3LnNw aW5pY3MubmV0L2xpc3RzL25ldGRldi9tc2c0NTQ0OTYuaHRtbAoKQWZ0ZXIgaW52ZXN0aWdhdGlv bnMsIHRoZSByb290IGNhdXNlIG9mIHRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgdXBkYXRlCnNrYi0+ c2tiX21zdGFtcCBvZiBza2JzIGluIHdyaXRlIHF1ZXVlLCBldmVuIGlmIHRoZSBhdHRlbXB0IHRv IHNlbmQgYQpjbG9uZSBvciBjb3B5IG9mIGl0IGZhaWxlZC4gT25lIHJlYXNvbiBiZWluZyBhIHJv dXRpbmcgcHJvYmxlbS4KClRoaXMgcGF0Y2ggcHJldmVudHMgdGhpcywgc29sdmluZyBsaXVqaWFu IGlzc3VlLgoKSXQgYWxzbyByZW1vdmVzIGEgcG90ZW50aWFsIFJUVCBtaXNjYWxjdWxhdGlvbiwg c2luY2UKX190Y3BfcmV0cmFuc21pdF9za2IoKSBpcyBub3QgT1ItaW5nIFRDUF9TS0JfQ0Ioc2ti KS0+c2Fja2VkIHdpdGgKVENQQ0JfRVZFUl9SRVRSQU5TIGlmIGEgZmFpbHVyZSBoYXBwZW5zLCBi dXQgc2tiLT5za2JfbXN0YW1wIGhhcwpiZWVuIGNoYW5nZWQuCgpBIGZ1dHVyZSBBQ0sgd291bGQg dGhlbiBsZWFkIHRvIGEgdmVyeSBzbWFsbCBSVFQgc2FtcGxlIGFuZCBtaW5fcnR0CndvdWxkIHRo ZW4gYmUgbG93ZXJlZCB0byB0aGlzIHRvbyBzbWFsbCB2YWx1ZS4KClRlc3RlZDoKCiMgY2F0IHVz ZXJfdGltZW91dC5wa3QKLS1sb2NhbF9pcD0xOTIuMTY4LjEwMi42NAoKICAgIDAgc29ja2V0KC4u LiwgU09DS19TVFJFQU0sIElQUFJPVE9fVENQKSA9IDMKICAgKzAgc2V0c29ja29wdCgzLCBTT0xf U09DS0VULCBTT19SRVVTRUFERFIsIFsxXSwgNCkgPSAwCiAgICswIGJpbmQoMywgLi4uLCAuLi4p ID0gMAogICArMCBsaXN0ZW4oMywgMSkgPSAwCgogICArMCBgaWZjb25maWcgdHVuMCAxOTIuMTY4 LjEwMi42NC8xNjsgaXAgcm8gYWRkIDE5Mi4wLjIuMSBkZXYgdHVuMGAKCiAgICswIDwgUyAwOjAo MCkgd2luIDAgPG1zcyAxNDYwPgogICArMCA+IFMuIDA6MCgwKSBhY2sgMSA8bXNzIDE0NjA+Cgog ICsuMSA8IC4gMToxKDApIGFjayAxIHdpbiA2NTUzMAogICArMCBhY2NlcHQoMywgLi4uLCAuLi4p ID0gNAoKICAgKzAgc2V0c29ja29wdCg0LCBTT0xfVENQLCBUQ1BfVVNFUl9USU1FT1VULCBbMzAw MF0sIDQpID0gMAogICArMCB3cml0ZSg0LCAuLi4sIDI0KSA9IDI0CiAgICswID4gUC4gMToyNSgy NCkgYWNrIDEgd2luIDI5MjAwCiAgICsuMSA8IC4gMToxKDApIGFjayAyNSB3aW4gNjU1MzAKCi8v Y2hhbmdlIHRoZSBpcGFkZHJlc3MKICAgKzEgYGlmY29uZmlnIHR1bjAgMTkyLjE2OC4wLjEwLzE2 YAoKICAgKzEgd3JpdGUoNCwgLi4uLCAyNCkgPSAyNAogICArMSB3cml0ZSg0LCAuLi4sIDI0KSA9 IDI0CiAgICsxIHdyaXRlKDQsIC4uLiwgMjQpID0gMjQKICAgKzEgd3JpdGUoNCwgLi4uLCAyNCkg PSAyNAoKICAgKzAgYGlmY29uZmlnIHR1bjAgMTkyLjE2OC4xMDIuNjQvMTZgCiAgICswIDwgLiAx OjIoMSkgYWNrIDI1IHdpbiA2NTUzMAogICArMCBgaWZjb25maWcgdHVuMCAxOTIuMTY4LjAuMTAv MTZgCgogICArMyB3cml0ZSg0LCAuLi4sIDI0KSA9IC0xCgojIC4vcGFja2V0ZHJpbGwgdXNlcl90 aW1lb3V0LnBrdAoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbC5j b20+ClJlcG9ydGVkLWJ5OiBsaXVqaWFuIDxsaXVqaWFuNTZAaHVhd2VpLmNvbT4KQWNrZWQtYnk6 IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpBY2tlZC1ieTogWXVjaHVuZyBD aGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWgg PHNvaGVpbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX291dHB1dC5jIHwgMTkgKysrKysrKysr KysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0L2lwdjQvdGNwX291 dHB1dC5jCmluZGV4IGI3NjYxYTY4ZDQ5OC4uYzk5OTA1NjY2YzMzIDEwMDY0NAotLS0gYS9uZXQv aXB2NC90Y3Bfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCkBAIC05OTEsNiAr OTkxLDcgQEAgc3RhdGljIGludCB0Y3BfdHJhbnNtaXRfc2tiKHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgaW50IGNsb25lX2l0LAogCXN0cnVjdCB0Y3Bfc2tiX2NiICp0Y2I7 CiAJc3RydWN0IHRjcF9vdXRfb3B0aW9ucyBvcHRzOwogCXVuc2lnbmVkIGludCB0Y3Bfb3B0aW9u c19zaXplLCB0Y3BfaGVhZGVyX3NpemU7CisJc3RydWN0IHNrX2J1ZmYgKm9za2IgPSBOVUxMOwog CXN0cnVjdCB0Y3BfbWQ1c2lnX2tleSAqbWQ1OwogCXN0cnVjdCB0Y3BoZHIgKnRoOwogCWludCBl cnI7CkBAIC05OTgsMTIgKzk5OSwxMiBAQCBzdGF0aWMgaW50IHRjcF90cmFuc21pdF9za2Ioc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY2xvbmVfaXQsCiAJQlVHX09O KCFza2IgfHwgIXRjcF9za2JfcGNvdW50KHNrYikpOwogCXRwID0gdGNwX3NrKHNrKTsKIAotCXNr Yi0+c2tiX21zdGFtcCA9IHRwLT50Y3BfbXN0YW1wOwogCWlmIChjbG9uZV9pdCkgewogCQlUQ1Bf U0tCX0NCKHNrYiktPnR4LmluX2ZsaWdodCA9IFRDUF9TS0JfQ0Ioc2tiKS0+ZW5kX3NlcQogCQkJ LSB0cC0+c25kX3VuYTsKIAkJdGNwX3JhdGVfc2tiX3NlbnQoc2ssIHNrYik7CiAKKwkJb3NrYiA9 IHNrYjsKIAkJaWYgKHVubGlrZWx5KHNrYl9jbG9uZWQoc2tiKSkpCiAJCQlza2IgPSBwc2tiX2Nv cHkoc2tiLCBnZnBfbWFzayk7CiAJCWVsc2UKQEAgLTEwMTEsNiArMTAxMiw3IEBAIHN0YXRpYyBp bnQgdGNwX3RyYW5zbWl0X3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2Is IGludCBjbG9uZV9pdCwKIAkJaWYgKHVubGlrZWx5KCFza2IpKQogCQkJcmV0dXJuIC1FTk9CVUZT OwogCX0KKwlza2ItPnNrYl9tc3RhbXAgPSB0cC0+dGNwX21zdGFtcDsKIAogCWluZXQgPSBpbmV0 X3NrKHNrKTsKIAl0Y2IgPSBUQ1BfU0tCX0NCKHNrYik7CkBAIC0xMTIyLDEyICsxMTI0LDE0IEBA IHN0YXRpYyBpbnQgdGNwX3RyYW5zbWl0X3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19i dWZmICpza2IsIGludCBjbG9uZV9pdCwKIAogCWVyciA9IGljc2stPmljc2tfYWZfb3BzLT5xdWV1 ZV94bWl0KHNrLCBza2IsICZpbmV0LT5jb3JrLmZsKTsKIAotCWlmIChsaWtlbHkoZXJyIDw9IDAp KQotCQlyZXR1cm4gZXJyOwotCi0JdGNwX2VudGVyX2N3cihzayk7CisJaWYgKHVubGlrZWx5KGVy ciA+IDApKSB7CisJCXRjcF9lbnRlcl9jd3Ioc2spOworCQllcnIgPSBuZXRfeG1pdF9ldmFsKGVy cik7CisJfQorCWlmICghZXJyICYmIG9za2IpCisJCW9za2ItPnNrYl9tc3RhbXAgPSB0cC0+dGNw X21zdGFtcDsKIAotCXJldHVybiBuZXRfeG1pdF9ldmFsKGVycik7CisJcmV0dXJuIGVycjsKIH0K IAogLyogVGhpcyByb3V0aW5lIGp1c3QgcXVldWVzIHRoZSBidWZmZXIgZm9yIHNlbmRpbmcuCkBA IC0yODY2LDEwICsyODcwLDExIEBAIGludCBfX3RjcF9yZXRyYW5zbWl0X3NrYihzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIGludCBzZWdzKQogCQkgICAgIHNrYl9oZWFkcm9v bShza2IpID49IDB4RkZGRikpIHsKIAkJc3RydWN0IHNrX2J1ZmYgKm5za2I7CiAKLQkJc2tiLT5z a2JfbXN0YW1wID0gdHAtPnRjcF9tc3RhbXA7CiAJCW5za2IgPSBfX3Bza2JfY29weShza2IsIE1B WF9UQ1BfSEVBREVSLCBHRlBfQVRPTUlDKTsKIAkJZXJyID0gbnNrYiA/IHRjcF90cmFuc21pdF9z a2Ioc2ssIG5za2IsIDAsIEdGUF9BVE9NSUMpIDoKIAkJCSAgICAgLUVOT0JVRlM7CisJCWlmICgh ZXJyKQorCQkJc2tiLT5za2JfbXN0YW1wID0gdHAtPnRjcF9tc3RhbXA7CiAJfSBlbHNlIHsKIAkJ ZXJyID0gdGNwX3RyYW5zbWl0X3NrYihzaywgc2tiLCAxLCBHRlBfQVRPTUlDKTsKIAl9Ci0tIAoy LjEzLjYKCgpGcm9tIDY4MmI1ODRmOTkwZDk3MWMwZjkxNmQ4YTYzYmQ2M2MzZGM1ZmUxZDEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVkd2FyZCBDcmVlIDxlY3JlZUBzb2xhcmZsYXJl LmNvbT4KRGF0ZTogRnJpLCAxNSBTZXAgMjAxNyAxNDozNzozOCArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMTAvNDhdIGJwZi92ZXJpZmllcjogcmVqZWN0IEJQRl9BTFU2NHxCUEZfRU5ECgpbIFVwc3Ry ZWFtIGNvbW1pdCBlNjdiOGE2ODVjN2M5ODRlODM0ZTMxODFlZjQ2MTljZDcwMjVhMTM2IF0KCk5l aXRoZXIgX19fYnBmX3Byb2dfcnVuIG5vciB0aGUgSklUcyBhY2NlcHQgaXQuCkFsc28gYWRkcyBh IG5ldyB0ZXN0IGNhc2UuCgpGaXhlczogMTdhNTI2NzA2N2YzICgiYnBmOiB2ZXJpZmllciAoYWRk IHZlcmlmaWVyIGNvcmUpIikKU2lnbmVkLW9mZi1ieTogRWR3YXJkIENyZWUgPGVjcmVlQHNvbGFy ZmxhcmUuY29tPgpBY2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4K QWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBrZXJuZWwv YnBmL3ZlcmlmaWVyLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKystCiB0b29scy90ZXN0 aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jIHwgMTYgKysrKysrKysrKysrKysrKwog MiBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4 IDY2NGQ5Mzk3MjM3My4uMzk0MDAxOWI5NzQwIDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL3Zlcmlm aWVyLmMKKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jCkBAIC0xOTc4LDcgKzE5NzgsOCBAQCBz dGF0aWMgaW50IGNoZWNrX2FsdV9vcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1 Y3QgYnBmX2luc24gKmluc24pCiAJCQl9CiAJCX0gZWxzZSB7CiAJCQlpZiAoaW5zbi0+c3JjX3Jl ZyAhPSBCUEZfUkVHXzAgfHwgaW5zbi0+b2ZmICE9IDAgfHwKLQkJCSAgICAoaW5zbi0+aW1tICE9 IDE2ICYmIGluc24tPmltbSAhPSAzMiAmJiBpbnNuLT5pbW0gIT0gNjQpKSB7CisJCQkgICAgKGlu c24tPmltbSAhPSAxNiAmJiBpbnNuLT5pbW0gIT0gMzIgJiYgaW5zbi0+aW1tICE9IDY0KSB8fAor CQkJICAgIEJQRl9DTEFTUyhpbnNuLT5jb2RlKSA9PSBCUEZfQUxVNjQpIHsKIAkJCQl2ZXJib3Nl KCJCUEZfRU5EIHVzZXMgcmVzZXJ2ZWQgZmllbGRzXG4iKTsKIAkJCQlyZXR1cm4gLUVJTlZBTDsK IAkJCX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3Zlcmlm aWVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jCmluZGV4 IGQzZWQ3MzI0MTA1ZS4uNDhjMTQ1ZWVlYWY3IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L2JwZi90ZXN0X3ZlcmlmaWVyLmMKQEAgLTYwMDksNiArNjAwOSwyMiBAQCBzdGF0aWMgc3RydWN0 IGJwZl90ZXN0IHRlc3RzW10gPSB7CiAJCS5yZXN1bHQgPSBSRUpFQ1QsCiAJCS5yZXN1bHRfdW5w cml2ID0gUkVKRUNULAogCX0sCisJeworCQkiaW52YWxpZCA2NC1iaXQgQlBGX0VORCIsCisJCS5p bnNucyA9IHsKKwkJCUJQRl9NT1YzMl9JTU0oQlBGX1JFR18wLCAwKSwKKwkJCXsKKwkJCQkuY29k ZSAgPSBCUEZfQUxVNjQgfCBCUEZfRU5EIHwgQlBGX1RPX0xFLAorCQkJCS5kc3RfcmVnID0gQlBG X1JFR18wLAorCQkJCS5zcmNfcmVnID0gMCwKKwkJCQkub2ZmICAgPSAwLAorCQkJCS5pbW0gICA9 IDMyLAorCQkJfSwKKwkJCUJQRl9FWElUX0lOU04oKSwKKwkJfSwKKwkJLmVycnN0ciA9ICJCUEZf RU5EIHVzZXMgcmVzZXJ2ZWQgZmllbGRzIiwKKwkJLnJlc3VsdCA9IFJFSkVDVCwKKwl9LAogfTsK IAogc3RhdGljIGludCBwcm9iZV9maWx0ZXJfbGVuZ3RoKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAq ZnApCi0tIAoyLjEzLjYKCgpGcm9tIDA2ZDkxMDc1MDBmNjAyZTIzZTUxZjYxYjBiM2Q0MzFlNzZk NDQxNTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxNSBTZXAgMjAxNyAxNjo0Nzo0MiAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMTEvNDhdIHRjcDogZml4IGRhdGEgZGVsaXZlcnkgcmF0ZQoKWyBVcHN0cmVh bSBjb21taXQgZmMyMjU3OTkxN2ViN2UxMzQzMzQ0OGEzNDJmMWNiMTU5MjkyMDk0MCBdCgpOb3cg c2tiLT5tc3RhbXBfc2tiIGlzIHVwZGF0ZWQgbGF0ZXIsIHdlIGFsc28gbmVlZCB0byBjYWxsCnRj cF9yYXRlX3NrYl9zZW50KCkgYWZ0ZXIgdGhlIHVwZGF0ZSBpcyBkb25lLgoKRml4ZXM6IDhjNzJj NjViNDI2YiAoInRjcDogdXBkYXRlIHNrYi0+c2tiX21zdGFtcCBtb3JlIGNhcmVmdWxseSIpClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6 IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3Bf b3V0cHV0LmMgfCA3ICsrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0L2lw djQvdGNwX291dHB1dC5jCmluZGV4IGM5OTkwNTY2NmMzMy4uMjkyODU3YmU5OGJhIDEwMDY0NAot LS0gYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCkBA IC0xMDAyLDggKzEwMDIsNiBAQCBzdGF0aWMgaW50IHRjcF90cmFuc21pdF9za2Ioc3RydWN0IHNv Y2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY2xvbmVfaXQsCiAJaWYgKGNsb25lX2l0 KSB7CiAJCVRDUF9TS0JfQ0Ioc2tiKS0+dHguaW5fZmxpZ2h0ID0gVENQX1NLQl9DQihza2IpLT5l bmRfc2VxCiAJCQktIHRwLT5zbmRfdW5hOwotCQl0Y3BfcmF0ZV9za2Jfc2VudChzaywgc2tiKTsK LQogCQlvc2tiID0gc2tiOwogCQlpZiAodW5saWtlbHkoc2tiX2Nsb25lZChza2IpKSkKIAkJCXNr YiA9IHBza2JfY29weShza2IsIGdmcF9tYXNrKTsKQEAgLTExMjgsOSArMTEyNiwxMCBAQCBzdGF0 aWMgaW50IHRjcF90cmFuc21pdF9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBpbnQgY2xvbmVfaXQsCiAJCXRjcF9lbnRlcl9jd3Ioc2spOwogCQllcnIgPSBuZXRfeG1p dF9ldmFsKGVycik7CiAJfQotCWlmICghZXJyICYmIG9za2IpCisJaWYgKCFlcnIgJiYgb3NrYikg ewogCQlvc2tiLT5za2JfbXN0YW1wID0gdHAtPnRjcF9tc3RhbXA7Ci0KKwkJdGNwX3JhdGVfc2ti X3NlbnQoc2ssIG9za2IpOworCX0KIAlyZXR1cm4gZXJyOwogfQogCi0tIAoyLjEzLjYKCgpGcm9t IGEyMTQ2YTQ2NTQ2MWRkMWU5MzU1MTllZjM1ZGQ5MjEzZDNiYWUxNTYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFN1YmFzaCBBYmhpbm92IEthc2l2aXN3YW5hdGhhbiA8c3ViYXNoYWJA Y29kZWF1cm9yYS5vcmc+CkRhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMTk6MzA6NTEgLTA2MDAKU3Vi amVjdDogW1BBVENIIDEyLzQ4XSB1ZHB2NjogRml4IHRoZSBjaGVja3N1bSBjb21wdXRhdGlvbiB3 aGVuIEhXIGNoZWNrc3VtCiBkb2VzIG5vdCBhcHBseQoKWyBVcHN0cmVhbSBjb21taXQgNjNlY2Mz ZDk0MzZmODAxMmU0OWRjODQ2ZDZjYjBhODVhMzQzMzUxNyBdCgpXaGlsZSB0cnlpbmcgYW4gRVNQ IHRyYW5zcG9ydCBtb2RlIGVuY3J5cHRpb24gZm9yIFVEUHY2IHBhY2tldHMgb2YKZGF0YWdyYW0g c2l6ZSAxNDM2IHdpdGggTVRVIDE1MDAsIGNoZWNrc3VtIGVycm9yIHdhcyBvYnNlcnZlZCBpbgp0 aGUgc2Vjb25kYXJ5IGZyYWdtZW50LgoKVGhpcyBlcnJvciBvY2N1cnMgZHVlIHRvIHRoZSBVRFAg cGF5bG9hZCBjaGVja3N1bSBiZWluZyBtaXNzZWQgb3V0CndoZW4gY29tcHV0aW5nIHRoZSBmdWxs IGNoZWNrc3VtIGZvciB0aGVzZSBwYWNrZXRzIGluCnVkcDZfaHdjc3VtX291dGdvaW5nKCkuCgpG aXhlczogZDM5ZDkzOGM4MjI4ICgiaXB2NjogSW50cm9kdWNlIHVkcHY2X3NlbmRfc2tiKCkiKQpT aWduZWQtb2ZmLWJ5OiBTdWJhc2ggQWJoaW5vdiBLYXNpdmlzd2FuYXRoYW4gPHN1YmFzaGFiQGNv ZGVhdXJvcmEub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvdWRwLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3VkcC5jIGIvbmV0L2lwdjYvdWRwLmMK aW5kZXggZDY4ODYyMjhlMWQwLi4zMGI0ZDU1ZTg4ZjMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3Vk cC5jCisrKyBiL25ldC9pcHY2L3VkcC5jCkBAIC0xMDExLDYgKzEwMTEsNyBAQCBzdGF0aWMgdm9p ZCB1ZHA2X2h3Y3N1bV9vdXRnb2luZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpz a2IsCiAJCSAqLwogCQlvZmZzZXQgPSBza2JfdHJhbnNwb3J0X29mZnNldChza2IpOwogCQlza2It PmNzdW0gPSBza2JfY2hlY2tzdW0oc2tiLCBvZmZzZXQsIHNrYi0+bGVuIC0gb2Zmc2V0LCAwKTsK KwkJY3N1bSA9IHNrYi0+Y3N1bTsKIAogCQlza2ItPmlwX3N1bW1lZCA9IENIRUNLU1VNX05PTkU7 CiAKLS0gCjIuMTMuNgoKCkZyb20gMWEzNWE3ZDZkYjRlNjczZjc0MDc5NWQ5ZDk0NTE3MzIwMGJh ZDMwMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5A Z21haWwuY29tPgpEYXRlOiBGcmksIDE1IFNlcCAyMDE3IDEyOjAwOjA3ICswODAwClN1YmplY3Q6 IFtQQVRDSCAxMy80OF0gaXA2X2dyZTogc2tiX3B1c2ggaXB2NmhkciBiZWZvcmUgcGFja2luZyB0 aGUgaGVhZGVyIGluCiBpcDZncmVfaGVhZGVyCgpbIFVwc3RyZWFtIGNvbW1pdCA3NmNjMGQzMjgy ZDRiOTMzZmExNDRmYTQxZmJjNTMxOGUwZmRjYTI0IF0KCk5vdyBpbiBpcDZncmVfaGVhZGVyIGJl Zm9yZSBwYWNraW5nIHRoZSBpcHY2IGhlYWRlciwgaXQgc2tiX3B1c2ggdC0+aGxlbgp3aGljaCBv bmx5IGluY2x1ZGVzIGVuY2FwX2hsZW4gKyB0dW5faGxlbi4gSXQgbWVhbnMgZ3JlaCBhbmQgaW5u ZXIgaGVhZGVyCndvdWxkIGJlIG92ZXIgd3JpdHRlbiBieSBpcHY2IHN0dWZmIGFuZCBpcHY2aCBt aWdodCBoYXZlIG5vIGNoYW5jZSB0byBzZXQKdXAuCgpKaWFubGluIGZvdW5kIHRoaXMgaXNzdWUg d2hlbiB1c2luZyByZW1vdGUgYW55IG9uIGlwNl9ncmUsIHRoZSBwYWNrZXRzIGhlCmNhcHR1cmVk IG9uIGdyZSBkZXYgYXJlIHRydW5jYXRlZDoKCjIyOjUwOjI2LjIxMDg2NiBPdXQgZXRoZXJ0eXBl IElQdjYgKDB4ODZkZCksIGxlbmd0aCAxMjA6IHRydW5jYXRlZC1pcDYgLVwKODEyOCBieXRlcyBt aXNzaW5nIShmbG93bGFiZWwgMHg5MmY0MCwgaGxpbSAwLCBuZXh0LWhlYWRlciBPcHRpb25zICgw KSAgXApwYXlsb2FkIGxlbmd0aDogODE5MikgOjoxOjIwMDA6MCA+IDo6MTowOjg2ZGQ6IEhCSCBb dHJ1bmNdIGlwLXByb3RvLTEyOCBcCjgxODQKCkl0IHNob3VsZCBhbHNvIHNrYl9wdXNoIGlwdjZo ZHIgc28gdGhhdCBpcHY2aCBwb2ludHMgdG8gdGhlIHJpZ2h0IHBvc2l0aW9uCnRvIHNldCBpcHY2 IHN0dWZmIHVwLgoKVGhpcyBwYXRjaCBpcyB0byBza2JfcHVzaCBobGVuICsgc2l6ZW9mKCppcHY2 aCkgYW5kIGFsc28gZml4IHNvbWUgaW5kZW50cwppbiBpcDZncmVfaGVhZGVyLgoKRml4ZXM6IGMx MmIzOTVhNDY2NCAoImdyZTogU3VwcG9ydCBHUkUgb3ZlciBJUHY2IikKUmVwb3J0ZWQtYnk6IEpp YW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZ3JlLmMgfCAyMSArKysrKysrKysrKy0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMK aW5kZXggYjdhNzJkNDA5MzM0Li4yMGY2NmY0Yzk0NjAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lw Nl9ncmUuYworKysgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTk0MCwyNCArOTQwLDI1IEBAIHN0 YXRpYyBpbnQgaXA2Z3JlX3R1bm5lbF9pb2N0bChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogfQog CiBzdGF0aWMgaW50IGlwNmdyZV9oZWFkZXIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5l dF9kZXZpY2UgKmRldiwKLQkJCXVuc2lnbmVkIHNob3J0IHR5cGUsCi0JCQljb25zdCB2b2lkICpk YWRkciwgY29uc3Qgdm9pZCAqc2FkZHIsIHVuc2lnbmVkIGludCBsZW4pCisJCQkgdW5zaWduZWQg c2hvcnQgdHlwZSwgY29uc3Qgdm9pZCAqZGFkZHIsCisJCQkgY29uc3Qgdm9pZCAqc2FkZHIsIHVu c2lnbmVkIGludCBsZW4pCiB7CiAJc3RydWN0IGlwNl90bmwgKnQgPSBuZXRkZXZfcHJpdihkZXYp OwotCXN0cnVjdCBpcHY2aGRyICppcHY2aCA9IHNrYl9wdXNoKHNrYiwgdC0+aGxlbik7Ci0JX19i ZTE2ICpwID0gKF9fYmUxNiAqKShpcHY2aCsxKTsKKwlzdHJ1Y3QgaXB2NmhkciAqaXB2Nmg7CisJ X19iZTE2ICpwOwogCi0JaXA2X2Zsb3dfaGRyKGlwdjZoLCAwLAotCQkgICAgIGlwNl9tYWtlX2Zs b3dsYWJlbChkZXZfbmV0KGRldiksIHNrYiwKLQkJCQkJdC0+ZmwudS5pcDYuZmxvd2xhYmVsLCB0 cnVlLAotCQkJCQkmdC0+ZmwudS5pcDYpKTsKKwlpcHY2aCA9IHNrYl9wdXNoKHNrYiwgdC0+aGxl biArIHNpemVvZigqaXB2NmgpKTsKKwlpcDZfZmxvd19oZHIoaXB2NmgsIDAsIGlwNl9tYWtlX2Zs b3dsYWJlbChkZXZfbmV0KGRldiksIHNrYiwKKwkJCQkJCSAgdC0+ZmwudS5pcDYuZmxvd2xhYmVs LAorCQkJCQkJICB0cnVlLCAmdC0+ZmwudS5pcDYpKTsKIAlpcHY2aC0+aG9wX2xpbWl0ID0gdC0+ cGFybXMuaG9wX2xpbWl0OwogCWlwdjZoLT5uZXh0aGRyID0gTkVYVEhEUl9HUkU7CiAJaXB2Nmgt PnNhZGRyID0gdC0+cGFybXMubGFkZHI7CiAJaXB2NmgtPmRhZGRyID0gdC0+cGFybXMucmFkZHI7 CiAKLQlwWzBdCQk9IHQtPnBhcm1zLm9fZmxhZ3M7Ci0JcFsxXQkJPSBodG9ucyh0eXBlKTsKKwlw ID0gKF9fYmUxNiAqKShpcHY2aCArIDEpOworCXBbMF0gPSB0LT5wYXJtcy5vX2ZsYWdzOworCXBb MV0gPSBodG9ucyh0eXBlKTsKIAogCS8qCiAJICoJU2V0IHRoZSBzb3VyY2UgaGFyZHdhcmUgYWRk cmVzcy4KLS0gCjIuMTMuNgoKCkZyb20gZTA0YTkwM2FkZjgyZGE0NDZlOWRlZWFiN2EwZWNkNzFh YjQyZDkxZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmFoYWQgS3VubmF0aGFkaSA8 ZmFoYWQua3VubmF0aGFkaUBkZXhjZWxkZXNpZ25zLmNvbT4KRGF0ZTogRnJpLCAxNSBTZXAgMjAx NyAxMjowMTo1OCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMTQvNDhdIG5ldDogcGh5OiBGaXggbWFz ayB2YWx1ZSB3cml0ZSBvbiBnbWlpMnJnbWlpIGNvbnZlcnRlcgogc3BlZWQgcmVnaXN0ZXIKClsg VXBzdHJlYW0gY29tbWl0IGYyNjU0YTQ3ODEzMThkYzdhYjhkNmNkZTY2ZjFmYTM5ZWFiOTgwYTkg XQoKVG8gY2xlYXIgU3BlZWQgU2VsZWN0aW9uIGluIE1ESU8gY29udHJvbCByZWdpc3RlcigweDEw KSwKaWUsIGNsZWFyIGJpdHMgNiBhbmQgMTMgdG8gemVybyB3aGlsZSBrZWVwaW5nIG90aGVyIGJp dHMgc2FtZS4KQmVmb3JlIEFORCBvcGVyYXRpb24sVGhlIE1hc2sgdmFsdWUgaGFzIHRvIGJlIHBl cmZvcm0gd2l0aCBiaXR3aXNlIE5PVApvcGVyYXRpb24gKGllLCB+IG9wZXJhdG9yKQoKVGhpcyBw YXRjaCBjbGVhcnMgY3VycmVudCBzcGVlZCBzZWxlY3Rpb24gYmVmb3JlIHdyaXRpbmcgdGhlCm5l dyBzcGVlZCBzZXR0aW5ncyB0byBnbWlpMnJnbWlpIGNvbnZlcnRlcgoKRml4ZXM6IGY0MTFhNjE2 MGJkNCAoIm5ldDogcGh5OiBBZGQgZ21paXRvcmdtaWkgY29udmVydGVyIHN1cHBvcnQiKQoKU2ln bmVkLW9mZi1ieTogRmFoYWQgS3VubmF0aGFkaSA8ZmFoYWQua3VubmF0aGFkaUBkZXhjZWxkZXNp Z25zLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L3BoeS94aWxpbnhfZ21paTJyZ21paS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5 L3hpbGlueF9nbWlpMnJnbWlpLmMgYi9kcml2ZXJzL25ldC9waHkveGlsaW54X2dtaWkycmdtaWku YwppbmRleCBkMTVkZDM5MzhiYTguLjJlNTE1MGIwYjhkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvcGh5L3hpbGlueF9nbWlpMnJnbWlpLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L3hpbGlueF9n bWlpMnJnbWlpLmMKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RhdGljIGludCB4Z21paXRvcmdtaWlfcmVh ZF9zdGF0dXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlwcml2LT5waHlfZHJ2LT5yZWFk X3N0YXR1cyhwaHlkZXYpOwogCiAJdmFsID0gbWRpb2J1c19yZWFkKHBoeWRldi0+bWRpby5idXMs IHByaXYtPmFkZHIsIFhJTElOWF9HTUlJMlJHTUlJX1JFRyk7Ci0JdmFsICY9IFhJTElOWF9HTUlJ MlJHTUlJX1NQRUVEX01BU0s7CisJdmFsICY9IH5YSUxJTlhfR01JSTJSR01JSV9TUEVFRF9NQVNL OwogCiAJaWYgKHBoeWRldi0+c3BlZWQgPT0gU1BFRURfMTAwMCkKIAkJdmFsIHw9IEJNQ1JfU1BF RUQxMDAwOwotLSAKMi4xMy42CgoKRnJvbSA0NGE4M2U3YmI5NjNhZjNlMDE0YzY3MzYwODQwOWI0 N2MwYjQyZDM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVu LnhpbkBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTUgU2VwIDIwMTcgMTU6NTg6MzMgKzA4MDAKU3Vi amVjdDogW1BBVENIIDE1LzQ4XSBpcDZfdHVubmVsOiBkbyBub3QgYWxsb3cgbG9hZGluZyBpcDZf dHVubmVsIGlmIGlwdjYgaXMKIGRpc2FibGVkIGluIGNtZGxpbmUKClsgVXBzdHJlYW0gY29tbWl0 IDhjMjJkYWIwM2FkMDcyZTQ1MDYwYzI5OWM3MGQwMmE0ZjZmYzRhYWIgXQoKSWYgaXB2NiBoYXMg YmVlbiBkaXNhYmxlZCBmcm9tIGNtZGxpbmUgc2luY2Uga2VybmVsIHN0YXJ0ZWQsIGl0IG1ha2Vz Cm5vIHNlbnNlIHRvIGFsbG93IHVzZXJzIHRvIGNyZWF0ZSBhbnkgaXA2IHR1bm5lbC4gT3RoZXJ3 aXNlLCBpdCBjb3VsZApzb21lIHBvdGVudGlhbCBwcm9ibGVtLgoKSmlhbmxpbiBmb3VuZCBhIGtl cm5lbCBjcmFzaCBjYXVzZWQgYnkgdGhpcyBpbiBpcDZfZ3JlIHdoZW4gaGUgc2V0CmlwdjYuZGlz YWJsZT0xIGluIGdydWI6CgpbICAyMDkuNTg4ODY1XSBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBw YWdpbmcgcmVxdWVzdCBmb3IgZGF0YSBhdCBhZGRyZXNzIDB4MDAwMDAwODAKWyAgMjA5LjU4ODg3 Ml0gRmF1bHRpbmcgaW5zdHJ1Y3Rpb24gYWRkcmVzczogMHhjMDAwMDAwMDAwYTNhYTZjClsgIDIw OS41ODg4NzldIE9vcHM6IEtlcm5lbCBhY2Nlc3Mgb2YgYmFkIGFyZWEsIHNpZzogMTEgWyMxXQpb ICAyMDkuNTg5MDYyXSBOSVAgW2MwMDAwMDAwMDBhM2FhNmNdIGZpYl9ydWxlc19sb29rdXArMHg0 Yy8weDI2MApbICAyMDkuNTg5MDcxXSBMUiBbYzAwMDAwMDAwMGI5YWQ5MF0gZmliNl9ydWxlX2xv b2t1cCsweDUwLzB4YjAKWyAgMjA5LjU4OTA3Nl0gQ2FsbCBUcmFjZToKWyAgMjA5LjU4OTA5N10g ZmliNl9ydWxlX2xvb2t1cCsweDUwLzB4YjAKWyAgMjA5LjU4OTEwNl0gcnQ2X2xvb2t1cCsweGM0 LzB4MTEwClsgIDIwOS41ODkxMTZdIGlwNmdyZV90bmxfbGlua19jb25maWcrMHgyMTQvMHgyZjAg W2lwNl9ncmVdClsgIDIwOS41ODkxMjVdIGlwNmdyZV9uZXdsaW5rKzB4MTM4LzB4M2EwIFtpcDZf Z3JlXQpbICAyMDkuNTg5MTM0XSBydG5sX25ld2xpbmsrMHg3OTgvMHhiODAKWyAgMjA5LjU4OTE0 Ml0gcnRuZXRsaW5rX3Jjdl9tc2crMHhlYy8weDM5MApbICAyMDkuNTg5MTUxXSBuZXRsaW5rX3Jj dl9za2IrMHgxMzgvMHgxNTAKWyAgMjA5LjU4OTE1OV0gcnRuZXRsaW5rX3JjdisweDQ4LzB4NzAK WyAgMjA5LjU4OTE2OV0gbmV0bGlua191bmljYXN0KzB4NTM4LzB4NjQwClsgIDIwOS41ODkxNzVd IG5ldGxpbmtfc2VuZG1zZysweDQwYy8weDQ4MApbICAyMDkuNTg5MTg0XSBfX19zeXNfc2VuZG1z ZysweDM4NC8weDRlMApbICAyMDkuNTg5MTk0XSBTeVNfc2VuZG1zZysweGQ0LzB4MTQwClsgIDIw OS41ODkyMDFdIFN5U19zb2NrZXRjYWxsKzB4M2UwLzB4NGYwClsgIDIwOS41ODkyMDldIHN5c3Rl bV9jYWxsKzB4MzgvMHhlMAoKVGhpcyBwYXRjaCBpcyB0byByZXR1cm4gLUVPUE5PVFNVUFAgaW4g aXA2X3R1bm5lbF9pbml0IGlmIGlwdjYgaGFzIGJlZW4KZGlzYWJsZWQgZnJvbSBjbWRsaW5lLgoK UmVwb3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5 OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfdHVubmVsLmMg fCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY2L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwppbmRleCAzYTBiYTJh ZTRiMGYuLjk4NjQ3NDAyYjMzOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3R1bm5lbC5jCisr KyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwpAQCAtMjI1OCw2ICsyMjU4LDkgQEAgc3RhdGljIGlu dCBfX2luaXQgaXA2X3R1bm5lbF9pbml0KHZvaWQpCiB7CiAJaW50ICBlcnI7CiAKKwlpZiAoIWlw djZfbW9kX2VuYWJsZWQoKSkKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOworCiAJZXJyID0gcmVnaXN0 ZXJfcGVybmV0X2RldmljZSgmaXA2X3RubF9uZXRfb3BzKTsKIAlpZiAoZXJyIDwgMCkKIAkJZ290 byBvdXRfcGVybmV0OwotLSAKMi4xMy42CgoKRnJvbSA3ZTc0OGE0ZGQ1Nzc2ZmMzMjdlY2QwZGQ0 MjFmYWRjMDM0MWE5MDU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZGUgQ2Fy YXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KRGF0ZTogU2F0LCAxNiBTZXAgMjAxNyAxNDowMjoy MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvNDhdIG5ldC9zY2hlZDogY2xzX21hdGNoYWxsOiBm aXggY3Jhc2ggd2hlbiB1c2VkIHdpdGgKIGNsYXNzZnVsIHFkaXNjCgpbIFVwc3RyZWFtIGNvbW1p dCAzZmY0Y2JlYzg3ZGE0OGIwZWMxZjdiNjE5NjYwN2IwMzRkZTBjNjgwIF0KCnRoaXMgc2NyaXB0 LCBlZGl0ZWQgZnJvbSBMaW51eCBBZHZhbmNlZCBSb3V0aW5nIGFuZCBUcmFmZmljIENvbnRyb2wg Z3VpZGUKCnRjIHEgYSBkZXYgZW4wIHJvb3QgaGFuZGxlIDE6IGh0YiBkZWZhdWx0IGEKdGMgYyBh IGRldiBlbjAgcGFyZW50IDE6ICBjbGFzc2lkIDE6MSBodGIgcmF0ZSA2bWJpdCBidXJzdCAxNWsK dGMgYyBhIGRldiBlbjAgcGFyZW50IDE6MSBjbGFzc2lkIDE6YSBodGIgcmF0ZSA1bWJpdCBjZWls IDZtYml0IGJ1cnN0IDE1awp0YyBjIGEgZGV2IGVuMCBwYXJlbnQgMToxIGNsYXNzaWQgMTpiIGh0 YiByYXRlIDFtYml0IGNlaWwgNm1iaXQgYnVyc3QgMTVrCnRjIGYgYSBkZXYgZW4wIHBhcmVudCAx OjAgcHJpbyAxICRjbHNuYW1lICRjbHNhcmdzIGNsYXNzaWQgMTpiCnBpbmcgJGFkZHJlc3MgLWMx CnRjIC1zIGMgcyBkZXYgZW4wCgpjbGFzc2lmaWVzIHRyYWZmaWMgdG8gMTpiIG9yIDE6YSwgZGVw ZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHBhY2tldCBtYXRjaGVzCm9yIG5vdCB0aGUgcGF0dGVybiAk Y2xzYXJncyBvZiBmaWx0ZXIgJGNsc25hbWUuIEhvd2V2ZXIsIHdoZW4gJGNsc25hbWUgaXMKJ21h dGNoYWxsJywgYSBzeXN0ZW1hdGljIGNyYXNoIGNhbiBiZSBvYnNlcnZlZCBpbiBodGJfY2xhc3Np ZnkoKS4gSFRCIGFuZApjbGFzc2Z1bCBxZGlzY3MgZG9uJ3QgYXNzaWduIGluaXRpYWwgdmFsdWUg dG8gc3RydWN0IHRjZl9yZXN1bHQsIGJ1dCB0aGVuCnRoZXkgZXhwZWN0IGl0IHRvIGNvbnRhaW4g dmFsaWQgdmFsdWVzIGFmdGVyIGZpbHRlcnMgaGF2ZSBiZWVuIHJ1bi4gVGh1cywKY3VycmVudCAn bWF0Y2hhbGwnIGlnbm9yZXMgdGhlIFRDQV9NQVRDSEFMTF9DTEFTU0lEIGF0dHJpYnV0ZSwgY29u ZmlndXJlZApieSB1c2VyLCBhbmQgbWFrZXMgSFRCIChhbmQgY2xhc3NmdWwgcWRpc2NzKSBkZXJl ZmVyZW5jZSByYW5kb20gcG9pbnRlcnMuCgpCeSBhc3NpZ25pbmcgaGVhZC0+cmVzIHRvICpyZXMg aW4gbWFsbF9jbGFzc2lmeSgpLCBiZWZvcmUgdGhlIGFjdGlvbnMgYXJlCmludm9rZWQsIHdlIGZp eCB0aGlzIGNyYXNoIGFuZCBlbmFibGUgVENBX01BVENIQUxMX0NMQVNTSUQgZnVuY3Rpb25hbGl0 eSwKdGhhdCBoYWQgbm8gZWZmZWN0IG9uICdtYXRjaGFsbCcgY2xhc3NpZmllciBzaW5jZSBpdHMg Zmlyc3QgaW50cm9kdWN0aW9uLgoKQnVnTGluazogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29t L3Nob3dfYnVnLmNnaT9pZD0xNDYwMjEzClJlcG9ydGVkLWJ5OiBKaXJpIEJlbmMgPGpiZW5jQHJl ZGhhdC5jb20+CkZpeGVzOiBiODdmNzkzNmE5MzIgKCJuZXQvc2NoZWQ6IGludHJvZHVjZSBNYXRj aC1hbGwgY2xhc3NpZmllciIpClNpZ25lZC1vZmYtYnk6IERhdmlkZSBDYXJhdHRpIDxkY2FyYXR0 aUByZWRoYXQuY29tPgpBY2tlZC1ieTogWW90YW0gR2lnaSA8eW90YW1nQG1lbGxhbm94LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9zY2hlZC9jbHNfbWF0Y2hhbGwuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19tYXRjaGFsbC5jIGIvbmV0L3NjaGVk L2Nsc19tYXRjaGFsbC5jCmluZGV4IDlkYzI2YzMyY2YzMi4uZDcyMGY5Mzc2YWRkIDEwMDY0NAot LS0gYS9uZXQvc2NoZWQvY2xzX21hdGNoYWxsLmMKKysrIGIvbmV0L3NjaGVkL2Nsc19tYXRjaGFs bC5jCkBAIC0zMiw2ICszMiw3IEBAIHN0YXRpYyBpbnQgbWFsbF9jbGFzc2lmeShzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgdGNmX3Byb3RvICp0cCwKIAlpZiAodGNfc2tpcF9zdyho ZWFkLT5mbGFncykpCiAJCXJldHVybiAtMTsKIAorCSpyZXMgPSBoZWFkLT5yZXM7CiAJcmV0dXJu IHRjZl9leHRzX2V4ZWMoc2tiLCAmaGVhZC0+ZXh0cywgcmVzKTsKIH0KIAotLSAKMi4xMy42CgoK RnJvbSA0ZjkxYzBkNzRkODI5YjQ2YTBlNTNkMTQ4M2ZhOTE0NmQ5MjNjYzE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IE1vbiwgMTggU2VwIDIwMTcgMTM6MDM6NDMgLTA3MDAKU3ViamVjdDogW1BBVENIIDE3LzQ4 XSA4MTM5dG9vOiByZXZpc2l0IG5hcGlfY29tcGxldGVfZG9uZSgpIHVzYWdlCk1JTUUtVmVyc2lv bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCAxMjljNmNkYTJkZTJhOGFj NDRmYWIwOTYxNTI0Njk5OTliNzI3ZmFmIF0KCkl0IHNlZW1zIHdlIGhhdmUgdG8gYmUgbW9yZSBj YXJlZnVsIGluIG5hcGlfY29tcGxldGVfZG9uZSgpCnVzZS4gVGhpcyBwYXRjaCBpcyBub3QgYSBy ZXZlcnQsIGFzIGl0IHNlZW1zIHdlIGNhbgphdm9pZCBidWcgdGhhdCBWaWxsZSByZXBvcnRlZCBi eSBtb3ZpbmcgdGhlIG5hcGlfY29tcGxldGVfZG9uZSgpCnRlc3QgaW4gdGhlIHNwaW5sb2NrIHNl Y3Rpb24uCgpNYW55IHRoYW5rcyB0byBWaWxsZSBmb3IgZGV0ZWN0aXZlIHdvcmsgYW5kIGFsbCB0 ZXN0cy4KCkZpeGVzOiA2MTdmMDEyMTFiYWYgKCI4MTM5dG9vOiB1c2UgbmFwaV9jb21wbGV0ZV9k b25lKCkiKQpSZXBvcnRlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KVGVzdGVkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgoKU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvODEzOXRvby5jIHwg NSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrLzgxMzl0b28uYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvODEzOXRvby5jCmluZGV4IGNhMjJmMjg5ODY2NC4u ZDI0YjQ3YjhlMGIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrLzgx Mzl0b28uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrLzgxMzl0b28uYwpAQCAt MjEzNSwxMSArMjEzNSwxMiBAQCBzdGF0aWMgaW50IHJ0bDgxMzlfcG9sbChzdHJ1Y3QgbmFwaV9z dHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAJaWYgKGxpa2VseShSVExfUjE2KEludHJTdGF0dXMp ICYgUnhBY2tCaXRzKSkKIAkJd29ya19kb25lICs9IHJ0bDgxMzlfcngoZGV2LCB0cCwgYnVkZ2V0 KTsKIAotCWlmICh3b3JrX2RvbmUgPCBidWRnZXQgJiYgbmFwaV9jb21wbGV0ZV9kb25lKG5hcGks IHdvcmtfZG9uZSkpIHsKKwlpZiAod29ya19kb25lIDwgYnVkZ2V0KSB7CiAJCXVuc2lnbmVkIGxv bmcgZmxhZ3M7CiAKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnRwLT5sb2NrLCBmbGFncyk7Ci0JCVJU TF9XMTZfRihJbnRyTWFzaywgcnRsODEzOV9pbnRyX21hc2spOworCQlpZiAobmFwaV9jb21wbGV0 ZV9kb25lKG5hcGksIHdvcmtfZG9uZSkpCisJCQlSVExfVzE2X0YoSW50ck1hc2ssIHJ0bDgxMzlf aW50cl9tYXNrKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdHAtPmxvY2ssIGZsYWdzKTsK IAl9CiAJc3Bpbl91bmxvY2soJnRwLT5yeF9sb2NrKTsKLS0gCjIuMTMuNgoKCkZyb20gOGY4Yzdm NWE4ZmUxODAwYmM4NGJkNDlmZWQyN2M0ZGViNmY4YjRhNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDE5 IFNlcCAyMDE3IDA5OjE1OjU5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxOC80OF0gYnBmOiBkbyBu b3QgZGlzYWJsZS9lbmFibGUgQkggaW4gYnBmX21hcF9mcmVlX2lkKCkKClsgVXBzdHJlYW0gY29t bWl0IDkzMDY1MWE3NWJmMWJhNjg5M2E4Yjg0NzUyNzA2NjRlYmRiNmNmNGEgXQoKc3l6a2FsbGVy IHJlcG9ydGVkIGZvbGxvd2luZyBzcGxhdCBbMV0KClNpbmNlIGhhcmQgaXJxIGFyZSBkaXNhYmxl ZCBieSB0aGUgY2FsbGVyLCBicGZfbWFwX2ZyZWVfaWQoKQpzaG91bGQgbm90IHRyeSB0byBlbmFi bGUvZGlzYWJsZSBCSC4KCkFub3RoZXIgc29sdXRpb24gd291bGQgYmUgdG8gY2hhbmdlIGh0YWJf bWFwX2RlbGV0ZV9lbGVtKCkgdG8KZGVmZXIgdGhlIGZyZWVfaHRhYl9lbGVtKCkgY2FsbCBhZnRl cgpyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYi0+bG9jaywgZmxhZ3MpLCBidXQgdGhpcyBt aWdodCBiZSBub3QKZW5vdWdoIHRvIGNvdmVyIG90aGVyIGNvZGUgcGF0aHMuCgpbMV0KV0FSTklO RzogQ1BVOiAxIFBJRDogODA1MiBhdCBrZXJuZWwvc29mdGlycS5jOjE2MSBfX2xvY2FsX2JoX2Vu YWJsZV9pcAorMHgxZS8weDE2MCBrZXJuZWwvc29mdGlycS5jOjE2MQpLZXJuZWwgcGFuaWMgLSBu b3Qgc3luY2luZzogcGFuaWNfb25fd2FybiBzZXQgLi4uCgpDUFU6IDEgUElEOiA4MDUyIENvbW06 IHN5ei1leGVjdXRvcjEgTm90IHRhaW50ZWQgNC4xMy4wLW5leHQtMjAxNzA5MTUrCiMyMwpIYXJk d2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVu Z2luZSwgQklPUwpHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxp Yi9kdW1wX3N0YWNrLmM6MTYgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxOTQvMHgyNTcgbGliL2R1 bXBfc3RhY2suYzo1MgogcGFuaWMrMHgxZTQvMHg0MTcga2VybmVsL3BhbmljLmM6MTgxCiBfX3dh cm4rMHgxYzQvMHgxZDkga2VybmVsL3BhbmljLmM6NTQyCiByZXBvcnRfYnVnKzB4MjExLzB4MmQw IGxpYi9idWcuYzoxODMKIGZpeHVwX2J1ZysweDQwLzB4OTAgYXJjaC94ODYva2VybmVsL3RyYXBz LmM6MTc4CiBkb190cmFwX25vX3NpZ25hbCBhcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYzoyMTIgW2lu bGluZV0KIGRvX3RyYXArMHgyNjAvMHgzOTAgYXJjaC94ODYva2VybmVsL3RyYXBzLmM6MjYxCiBk b19lcnJvcl90cmFwKzB4MTIwLzB4MzkwIGFyY2gveDg2L2tlcm5lbC90cmFwcy5jOjI5OAogZG9f aW52YWxpZF9vcCsweDFiLzB4MjAgYXJjaC94ODYva2VybmVsL3RyYXBzLmM6MzExCiBpbnZhbGlk X29wKzB4MTgvMHgyMCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjkwNQpSSVA6IDAwMTA6X19s b2NhbF9iaF9lbmFibGVfaXArMHgxZS8weDE2MCBrZXJuZWwvc29mdGlycS5jOjE2MQpSU1A6IDAw MTg6ZmZmZjg4MDFjZGNkNzc0OCBFRkxBR1M6IDAwMDEwMDQ2ClJBWDogMDAwMDAwMDAwMDAwMDA4 MiBSQlg6IDAwMDAwMDAwMDAwMDAyMDEgUkNYOiAwMDAwMDAwMDAwMDAwMDAwClJEWDogMWZmZmZm ZmZmMGI1OTMzYyBSU0k6IDAwMDAwMDAwMDAwMDAyMDEgUkRJOiBmZmZmZmZmZjg1YWM5OWUwClJC UDogZmZmZjg4MDFjZGNkNzc1OCBSMDg6IGZmZmZmZmZmODViODcxNTggUjA5OiAxZmZmZjEwMDM5 YjlhZWM2ClIxMDogZmZmZjg4MDFjOTlmMjRjMCBSMTE6IDAwMDAwMDAwMDAwMDAwMDIgUjEyOiBm ZmZmZmZmZjgxN2IwYjQ3ClIxMzogZGZmZmZjMDAwMDAwMDAwMCBSMTQ6IGZmZmY4ODAxY2RjZDc3 ZTggUjE1OiAwMDAwMDAwMDAwMDAwMDAxCiBfX3Jhd19zcGluX3VubG9ja19iaCBpbmNsdWRlL2xp bnV4L3NwaW5sb2NrX2FwaV9zbXAuaDoxNzYgW2lubGluZV0KIF9yYXdfc3Bpbl91bmxvY2tfYmgr MHgzMC8weDQwIGtlcm5lbC9sb2NraW5nL3NwaW5sb2NrLmM6MjA3CiBzcGluX3VubG9ja19iaCBp bmNsdWRlL2xpbnV4L3NwaW5sb2NrLmg6MzYxIFtpbmxpbmVdCiBicGZfbWFwX2ZyZWVfaWQga2Vy bmVsL2JwZi9zeXNjYWxsLmM6MTk3IFtpbmxpbmVdCiBfX2JwZl9tYXBfcHV0KzB4MjY3LzB4MzIw IGtlcm5lbC9icGYvc3lzY2FsbC5jOjIyNwogYnBmX21hcF9wdXQrMHgxYS8weDIwIGtlcm5lbC9i cGYvc3lzY2FsbC5jOjIzNQogYnBmX21hcF9mZF9wdXRfcHRyKzB4MTUvMHgyMCBrZXJuZWwvYnBm L21hcF9pbl9tYXAuYzo5NgogZnJlZV9odGFiX2VsZW0rMHhjMy8weDFiMCBrZXJuZWwvYnBmL2hh c2h0YWIuYzo2NTgKIGh0YWJfbWFwX2RlbGV0ZV9lbGVtKzB4NzRkLzB4OTcwIGtlcm5lbC9icGYv aGFzaHRhYi5jOjEwNjMKIG1hcF9kZWxldGVfZWxlbSBrZXJuZWwvYnBmL3N5c2NhbGwuYzo2MzMg W2lubGluZV0KIFNZU0NfYnBmIGtlcm5lbC9icGYvc3lzY2FsbC5jOjE0NzkgW2lubGluZV0KIFN5 U19icGYrMHgyMTg4LzB4NDZhMCBrZXJuZWwvYnBmL3N5c2NhbGwuYzoxNDUxCiBlbnRyeV9TWVND QUxMXzY0X2Zhc3RwYXRoKzB4MWYvMHhiZQoKRml4ZXM6IGYzZjFjMDU0YzI4OCAoImJwZjogSW50 cm9kdWNlIGJwZl9tYXAgSUQiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkNjOiBNYXJ0aW4gS2FGYWkgTGF1IDxrYWZhaUBmYi5jb20+CkFja2VkLWJ5 OiBNYXJ0aW4gS2FGYWkgTGF1IDxrYWZhaUBmYi5jb20+CkFja2VkLWJ5OiBEYW5pZWwgQm9ya21h bm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQoga2VybmVsL2JwZi9zeXNjYWxsLmMgfCA2ICsrKyst LQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9rZXJuZWwvYnBmL3N5c2NhbGwuYyBiL2tlcm5lbC9icGYvc3lzY2FsbC5jCmluZGV4 IDZjNzcyYWRhYmFkMi4uMTkzOWQ5MWRhMWY4IDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL3N5c2Nh bGwuYworKysgYi9rZXJuZWwvYnBmL3N5c2NhbGwuYwpAQCAtMTQ0LDE1ICsxNDQsMTcgQEAgc3Rh dGljIGludCBicGZfbWFwX2FsbG9jX2lkKHN0cnVjdCBicGZfbWFwICptYXApCiAKIHN0YXRpYyB2 b2lkIGJwZl9tYXBfZnJlZV9pZChzdHJ1Y3QgYnBmX21hcCAqbWFwLCBib29sIGRvX2lkcl9sb2Nr KQogeworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKIAlpZiAoZG9faWRyX2xvY2spCi0JCXNwaW5f bG9ja19iaCgmbWFwX2lkcl9sb2NrKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJm1hcF9pZHJfbG9j aywgZmxhZ3MpOwogCWVsc2UKIAkJX19hY3F1aXJlKCZtYXBfaWRyX2xvY2spOwogCiAJaWRyX3Jl bW92ZSgmbWFwX2lkciwgbWFwLT5pZCk7CiAKIAlpZiAoZG9faWRyX2xvY2spCi0JCXNwaW5fdW5s b2NrX2JoKCZtYXBfaWRyX2xvY2spOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtYXBfaWRy X2xvY2ssIGZsYWdzKTsKIAllbHNlCiAJCV9fcmVsZWFzZSgmbWFwX2lkcl9sb2NrKTsKIH0KLS0g CjIuMTMuNgoKCkZyb20gNjU1YmRhNDVlOTc3OWE1ZWUxMWI3YTEzZmJiNjg4MWRkMWZlODFhYSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpEYXRlOiBUdWUsIDE5IFNlcCAyMDE3IDEwOjA1OjU3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAxOS80OF0gdGNwOiBmYXN0b3BlbjogZml4IG9uIHN5bi1kYXRhIHRyYW5zbWl0IGZhaWx1 cmUKClsgVXBzdHJlYW0gY29tbWl0IGI1YjdkYjhkNjgwNDY0YjFkNjMxZmQwMTZmNWUwOTM0MTlm MGJmZDkgXQoKT3VyIHJlY2VudCBjaGFuZ2UgZXhwb3NlZCBhIGJ1ZyBpbiBUQ1AgRmFzdG9wZW4g Q2xpZW50IHRoYXQgc3l6a2FsbGVyCmZvdW5kIHJpZ2h0IGF3YXkgWzFdCgpXaGVuIHdlIHByZXBh cmUgc2tiIHdpdGggU1lOK0RBVEEsIHdlIGF0dGVtcHQgdG8gdHJhbnNtaXQgaXQsCmFuZCB3ZSB1 cGRhdGUgc29ja2V0IHN0YXRlIGFzIGlmIHRoZSB0cmFuc21pdCB3YXMgYSBzdWNjZXNzLgoKSW4g c29ja2V0IFJUWCBxdWV1ZSB3ZSBoYXZlIHR3byBza2JzLCBvbmUgd2l0aCB0aGUgU1lOIGFsb25l LAphbmQgYSBzZWNvbmQgb25lIGNvbnRhaW5pbmcgdGhlIERBVEEuCgpXaGVuIChtYWxpY2lvdXMp IEFDSyBjb21lcyBpbiwgd2Ugbm93IGNvbXBsYWluIHRoYXQgc2Vjb25kIG9uZSBoYWQgbm8Kc2ti X21zdGFtcC4KClRoZSBwcm9wZXIgZml4IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IGlmIHRoZSB0cmFu c21pdCBmYWlsZWQsIHdlIGRvIG5vdApwcmV0ZW5kIHdlIHNlbnQgdGhlIERBVEEgc2tiLCBhbmQg bWFrZSBpdCBvdXIgc2VuZF9oZWFkLgoKV2hlbiAzV0hTIGNvbXBsZXRlcywgd2UgY2FuIG5vdyBz ZW5kIHRoZSBEQVRBIHJpZ2h0IGF3YXksIHdpdGhvdXQgaGF2aW5nCnRvIHdhaXQgZm9yIGEgdGlt ZW91dC4KClsxXQpXQVJOSU5HOiBDUFU6IDAgUElEOiAxMDAxODkgYXQgbmV0L2lwdjQvdGNwX2lu cHV0LmM6MzExNyB0Y3BfY2xlYW5fcnR4X3F1ZXVlKzB4MjA1Ny8weDJhYjAgbmV0L2lwdjQvdGNw X2lucHV0LmM6MzExNygpCgogV0FSTl9PTl9PTkNFKGxhc3RfYWNrdCA9PSAwKTsKCk1vZHVsZXMg bGlua2VkIGluOgpDUFU6IDAgUElEOiAxMDAxODkgQ29tbTogc3l6LWV4ZWN1dG9yMSBOb3QgdGFp bnRlZApIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBD b21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQogMDAwMDAwMDAwMDAwMDAwMCBm ZmZmODgwMGIzNWNiMWQ4IGZmZmZmZmZmODFjYWQwMGQgMDAwMDAwMDAwMDAwMDAwMAogZmZmZmZm ZmY4MjhhNDM0NyBmZmZmODgwMDlmODZjMDgwIGZmZmZmZmZmODMxNmViMjAgMDAwMDAwMDAwMDAw MGQ3ZgogZmZmZjg4MDBiMzVjYjIyMCBmZmZmZmZmZjgxMmMzM2MyIGZmZmY4ODAwYmFhZDI0NDAg MDAwMDAwMDlkNDY1NzVjMApDYWxsIFRyYWNlOgogWzxmZmZmZmZmZjgxY2FkMDBkPl0gX19kdW1w X3N0YWNrCiBbPGZmZmZmZmZmODFjYWQwMGQ+XSBkdW1wX3N0YWNrKzB4YzEvMHgxMjQKIFs8ZmZm ZmZmZmY4MTJjMzNjMj5dIHdhcm5fc2xvd3BhdGhfY29tbW9uKzB4ZTIvMHgxNTAKIFs8ZmZmZmZm ZmY4MTJjMzYxZT5dIHdhcm5fc2xvd3BhdGhfbnVsbCsweDJlLzB4NDAKIFs8ZmZmZmZmZmY4Mjhh NDM0Nz5dIHRjcF9jbGVhbl9ydHhfcXVldWUrMHgyMDU3LzB4MmFiMCBuCiBbPGZmZmZmZmZmODI4 YWU2ZmQ+XSB0Y3BfYWNrKzB4MTUxZC8weDM5MzAKIFs8ZmZmZmZmZmY4MjhiYWEwOT5dIHRjcF9y Y3Zfc3RhdGVfcHJvY2VzcysweDFjNjkvMHg0ZmQwCiBbPGZmZmZmZmZmODI4ZWZiN2Y+XSB0Y3Bf djRfZG9fcmN2KzB4NTRmLzB4N2MwCiBbPGZmZmZmZmZmODI1OGFhY2I+XSBza19iYWNrbG9nX3Jj dgogWzxmZmZmZmZmZjgyNThhYWNiPl0gX19yZWxlYXNlX3NvY2srMHgxMmIvMHgzYTAKIFs8ZmZm ZmZmZmY4MjU4YWQ5ZT5dIHJlbGVhc2Vfc29jaysweDVlLzB4MWMwCiBbPGZmZmZmZmZmODI5NGE3 ODU+XSBpbmV0X3dhaXRfZm9yX2Nvbm5lY3QKIFs8ZmZmZmZmZmY4Mjk0YTc4NT5dIF9faW5ldF9z dHJlYW1fY29ubmVjdCsweDU0NS8weGM1MAogWzxmZmZmZmZmZjgyODg2ZjA4Pl0gdGNwX3NlbmRt c2dfZmFzdG9wZW4KIFs8ZmZmZmZmZmY4Mjg4NmYwOD5dIHRjcF9zZW5kbXNnKzB4MjI5OC8weDM1 YTAKIFs8ZmZmZmZmZmY4Mjk1MjUxNT5dIGluZXRfc2VuZG1zZysweGU1LzB4NTIwCiBbPGZmZmZm ZmZmODI1NzE1MmY+XSBzb2NrX3NlbmRtc2dfbm9zZWMKIFs8ZmZmZmZmZmY4MjU3MTUyZj5dIHNv Y2tfc2VuZG1zZysweGNmLzB4MTEwCgpGaXhlczogOGM3MmM2NWI0MjZiICgidGNwOiB1cGRhdGUg c2tiLT5za2JfbXN0YW1wIG1vcmUgY2FyZWZ1bGx5IikKRml4ZXM6IDc4MzIzN2U4ZGFmMSAoIm5l dC10Y3A6IEZhc3QgT3BlbiBjbGllbnQgLSBzZW5kaW5nIFNZTi1kYXRhIikKU2lnbmVkLW9mZi1i eTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogRG1pdHJ5 IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29tPgpDYzogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxs QGdvb2dsZS5jb20+CkNjOiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KQWNrZWQt Ynk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX291dHB1 dC5jIHwgOSArKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKaW5k ZXggMjkyODU3YmU5OGJhLi40MGY3YzhlZTliYTYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9v dXRwdXQuYworKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKQEAgLTM0MjAsNiArMzQyMCwxMCBA QCBzdGF0aWMgaW50IHRjcF9zZW5kX3N5bl9kYXRhKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNr X2J1ZmYgKnN5bikKIAkJZ290byBkb25lOwogCX0KIAorCS8qIGRhdGEgd2FzIG5vdCBzZW50LCB0 aGlzIGlzIG91ciBuZXcgc2VuZF9oZWFkICovCisJc2stPnNrX3NlbmRfaGVhZCA9IHN5bl9kYXRh OworCXRwLT5wYWNrZXRzX291dCAtPSB0Y3Bfc2tiX3Bjb3VudChzeW5fZGF0YSk7CisKIGZhbGxi YWNrOgogCS8qIFNlbmQgYSByZWd1bGFyIFNZTiB3aXRoIEZhc3QgT3BlbiBjb29raWUgcmVxdWVz dCBvcHRpb24gKi8KIAlpZiAoZm8tPmNvb2tpZS5sZW4gPiAwKQpAQCAtMzQ3Miw2ICszNDc2LDEx IEBAIGludCB0Y3BfY29ubmVjdChzdHJ1Y3Qgc29jayAqc2spCiAJICovCiAJdHAtPnNuZF9ueHQg PSB0cC0+d3JpdGVfc2VxOwogCXRwLT5wdXNoZWRfc2VxID0gdHAtPndyaXRlX3NlcTsKKwlidWZm ID0gdGNwX3NlbmRfaGVhZChzayk7CisJaWYgKHVubGlrZWx5KGJ1ZmYpKSB7CisJCXRwLT5zbmRf bnh0CT0gVENQX1NLQl9DQihidWZmKS0+c2VxOworCQl0cC0+cHVzaGVkX3NlcQk9IFRDUF9TS0Jf Q0IoYnVmZiktPnNlcTsKKwl9CiAJVENQX0lOQ19TVEFUUyhzb2NrX25ldChzayksIFRDUF9NSUJf QUNUSVZFT1BFTlMpOwogCiAJLyogVGltZXIgZm9yIHJlcGVhdGluZyB0aGUgU1lOIHVudGlsIGFu IGFuc3dlci4gKi8KLS0gCjIuMTMuNgoKCkZyb20gMTUyZmM3ZjZiZDlhZGVhNjAyYmM5ODYzZjMx OTA1YTdlYWRkZDE4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hyaXN0aWFuIExh bXBhcnRlciA8Y2h1bmtlZXlAZ29vZ2xlbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTkgU2VwIDIwMTcg MTk6MzU6MTggKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzQ4XSBuZXQ6IGVtYWM6IEZpeCBuYXBp IHBvbGwgbGlzdCBjb3JydXB0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBmNTU5NTYwNjVlYzk0ZTNl OTM3MTQ2M2Q2OTNhMTAyOWM0Y2MzMDA3IF0KClRoaXMgcGF0Y2ggaXMgcHJldHR5IG11Y2ggYSBj YXJib24gY29weSBvZgpjb21taXQgMzA3OWM2NTIxNDFmICgiY2FpZjogRml4IG5hcGkgcG9sbCBs aXN0IGNvcnJ1cHRpb24iKQp3aXRoICJjYWlmIiByZXBsYWNlZCBieSAiZW1hYyIuCgpUaGUgY29t bWl0IGQ3NWIxYWRlNTY3ZiAoIm5ldDogbGVzcyBpbnRlcnJ1cHQgbWFza2luZyBpbiBOQVBJIikK YnJlYWtzIGVtYWMuCgpJdCBpcyBub3cgcmVxdWlyZWQgdGhhdCBpZiB0aGUgZW50aXJlIGJ1ZGdl dCBpcyBjb25zdW1lZCB3aGVuIHBvbGwKcmV0dXJucywgdGhlIG5hcGkgcG9sbF9saXN0IG11c3Qg cmVtYWluIGVtcHR5LiAgSG93ZXZlciwgbGlrZSBzb21lCm90aGVyIGRyaXZlcnMgZW1hYyB0cmll cyB0byBkbyBhIGxhc3QtZGl0Y2ggY2hlY2sgYW5kIGlmIHRoZXJlIGlzCm1vcmUgd29yayBpdCB3 aWxsIGNhbGwgbmFwaV9yZXNjaGVkdWxlIGFuZCB0aGVuIGltbWVkaWF0ZWx5IHByb2Nlc3MKc29t ZSBvZiB0aGlzIG5ldyB3b3JrLiAgU2hvdWxkIHRoZSBlbnRpcmUgYnVkZ2V0IGJlIGNvbnN1bWVk IHdoaWxlCnByb2Nlc3Npbmcgc3VjaCBuZXcgd29yayB0aGVuIHdlIHdpbGwgdmlvbGF0ZSB0aGUg bmV3IGNhbGxlcgpjb250cmFjdC4KClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBub3QgdG91Y2hp bmcgYW55IHdvcmsgd2hlbiB3ZSByZXNjaGVkdWxlCmluIGVtYWMuCgpTaWduZWQtb2ZmLWJ5OiBD aHJpc3RpYW4gTGFtcGFydGVyIDxjaHVua2VleUBnb29nbGVtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L2libS9lbWFjL21hbC5jIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9pYm0vZW1hYy9tYWwuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2libS9lbWFjL21hbC5jCmlu ZGV4IDkxYjFhNTU4ZjM3ZC4uMjQ4ODg4MzI4MjMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9pYm0vZW1hYy9tYWwuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1h Yy9tYWwuYwpAQCAtNDAyLDcgKzQwMiw3IEBAIHN0YXRpYyBpbnQgbWFsX3BvbGwoc3RydWN0IG5h cGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlN QUxfREJHMihtYWwsICJwb2xsKCVkKSIgTkwsIGJ1ZGdldCk7Ci0gYWdhaW46CisKIAkvKiBQcm9j ZXNzIFRYIHNrYnMgKi8KIAlsaXN0X2Zvcl9lYWNoKGwsICZtYWwtPnBvbGxfbGlzdCkgewogCQlz dHJ1Y3QgbWFsX2NvbW1hYyAqbWMgPQpAQCAtNDUxLDcgKzQ1MSw2IEBAIHN0YXRpYyBpbnQgbWFs X3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogCQkJc3Bpbl9sb2Nr X2lycXNhdmUoJm1hbC0+bG9jaywgZmxhZ3MpOwogCQkJbWFsX2Rpc2FibGVfZW9iX2lycShtYWwp OwogCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWFsLT5sb2NrLCBmbGFncyk7Ci0JCQlnb3Rv IGFnYWluOwogCQl9CiAJCW1jLT5vcHMtPnBvbGxfdHgobWMtPmRldik7CiAJfQotLSAKMi4xMy42 CgoKRnJvbSBkZjAxOTgyZGZhY2ZhNmU4N2E3NjZmNzNlZDM5ODgwYTIwMDI3MmZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWtlIE1hbm5pbmcgPG1tYW5uaW5nQGJyb2NhZGUuY29t PgpEYXRlOiBNb24sIDQgU2VwIDIwMTcgMTU6NTI6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDIx LzQ4XSBuZXQ6IGlwdjY6IGZpeCByZWdyZXNzaW9uIG9mIG5vIFJUTV9ERUxBRERSIHNlbnQgYWZ0 ZXIKIERBRCBmYWlsdXJlCgpbIFVwc3RyZWFtIGNvbW1pdCA2ODE5YTE0ZWNiZTJlMDg5ZTVjNWJi NzRlZGVjYWZkZGUyMDI4YTAwIF0KCkNvbW1pdCBmNzg0YWQzZDc5ZTUgKCJpcHY2OiBkbyBub3Qg c2VuZCBSVE1fREVMQUREUiBmb3IgdGVudGF0aXZlCmFkZHJlc3NlcyIpIGluY29ycmVjdGx5IGFz c3VtZXMgdGhhdCBubyBSVE1fTkVXQUREUiBhcmUgc2VudCBmb3IKYWRkcmVzc2VzIGluIHRlbnRh dGl2ZSBzdGF0ZSwgYXMgdGhpcyBkb2VzIGhhcHBlbiBmb3IgdGhlIHN0YW5kYXJkCklQdjYgdXNl LWNhc2Ugb2YgREFEIGZhaWx1cmUsIHNlZSB0aGUgY2FsbCB0byBpcHY2X2lmYV9ub3RpZnkoKSBp bgphZGRjb25mX2RhZF9zdG9wKCkuIFNvIGFzIGEgcmVzdWx0IG9mIHRoaXMgY2hhbmdlLCBubyBS VE1fREVMQUREUiBpcwpzZW50IGFmdGVyIERBRCBmYWlsdXJlIGZvciBhIGxpbmstbG9jYWwgd2hl biBzdHJpY3QgREFEIChhY2NlcHRfZGFkPTIpCmlzIGNvbmZpZ3VyZWQsIG9yIG9uIHRoZSBuZXh0 IGFkbWluIGRvd24gaW4gb3RoZXIgY2FzZXMuIFRoZSBhYnNlbmNlCm9mIHRoaXMgbm90aWZpY2F0 aW9uIGJyZWFrcyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBhbmQgY2F1c2VzIHByb2JsZW1zCmFm dGVyIERBRCBmYWlsdXJlIGlmIHRoaXMgbm90aWZpY2F0aW9uIHdhcyBiZWluZyByZWxpZWQgb24u IFRoZQpzb2x1dGlvbiBpcyB0byBhbGxvdyBSVE1fREVMQUREUiB0byBzdGlsbCBiZSBzZW50IGFm dGVyIERBRCBmYWlsdXJlLgoKRml4ZXM6IGY3ODRhZDNkNzllNSAoImlwdjY6IGRvIG5vdCBzZW5k IFJUTV9ERUxBRERSIGZvciB0ZW50YXRpdmUgYWRkcmVzc2VzIikKU2lnbmVkLW9mZi1ieTogTWlr ZSBNYW5uaW5nIDxtbWFubmluZ0Bicm9jYWRlLmNvbT4KQ2M6IE1haGVzaCBCYW5kZXdhciA8bWFo ZXNoYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvYWRkcmNvbmYuYyB8IDUgKysrLS0KIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvYWRkcmNvbmYuYyBiL25ldC9pcHY2L2FkZHJjb25mLmMKaW5kZXggOTM2ZTlhYjRkZGE1 Li5iYTc1N2MyOGEzMDEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0 L2lwdjYvYWRkcmNvbmYuYwpAQCAtNDk4Miw5ICs0OTgyLDEwIEBAIHN0YXRpYyB2b2lkIGluZXQ2 X2lmYV9ub3RpZnkoaW50IGV2ZW50LCBzdHJ1Y3QgaW5ldDZfaWZhZGRyICppZmEpCiAKIAkvKiBE b24ndCBzZW5kIERFTEFERFIgbm90aWZpY2F0aW9uIGZvciBURU5UQVRJVkUgYWRkcmVzcywKIAkg KiBzaW5jZSBORVdBRERSIG5vdGlmaWNhdGlvbiBpcyBzZW50IG9ubHkgYWZ0ZXIgcmVtb3ZpbmcK LQkgKiBURU5UQVRJVkUgZmxhZy4KKwkgKiBURU5UQVRJVkUgZmxhZywgaWYgREFEIGhhcyBub3Qg ZmFpbGVkLgogCSAqLwotCWlmIChpZmEtPmZsYWdzICYgSUZBX0ZfVEVOVEFUSVZFICYmIGV2ZW50 ID09IFJUTV9ERUxBRERSKQorCWlmIChpZmEtPmZsYWdzICYgSUZBX0ZfVEVOVEFUSVZFICYmICEo aWZhLT5mbGFncyAmIElGQV9GX0RBREZBSUxFRCkgJiYKKwkgICAgZXZlbnQgPT0gUlRNX0RFTEFE RFIpCiAJCXJldHVybjsKIAogCXNrYiA9IG5sbXNnX25ldyhpbmV0Nl9pZmFkZHJfbXNnc2l6ZSgp LCBHRlBfQVRPTUlDKTsKLS0gCjIuMTMuNgoKCkZyb20gMTlkMmE3M2ZiZGE1YmEzYWMwNGQ4NmU5 Yjg4OWVhNjM1OTBjYjRkMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2lsbGVtIGRl IEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDE0IFNlcCAyMDE3IDE3OjE0 OjQxIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyMi80OF0gcGFja2V0OiBob2xkIGJpbmQgbG9jayB3 aGVuIHJlYmluZGluZyB0byBmYW5vdXQgaG9vawoKWyBVcHN0cmVhbSBjb21taXQgMDA4YmEyYTEz ZjJkMDRjOTQ3YWRjNTM2ZDE5ZGViYjhmZTY2ZjExMCBdCgpQYWNrZXQgc29ja2V0IGJpbmQgb3Bl cmF0aW9ucyBtdXN0IGhvbGQgdGhlIHBvLT5iaW5kX2xvY2suIFRoaXMga2VlcHMKcG8tPnJ1bm5p bmcgY29uc2lzdGVudCB3aXRoIHdoZXRoZXIgdGhlIHNvY2tldCBpcyBhY3R1YWxseSBvbiBhIHB0 eXBlCmxpc3QgdG8gcmVjZWl2ZSBwYWNrZXRzLgoKZmFub3V0X2FkZCB1bmJpbmRzIGEgc29ja2V0 IGFuZCBpdHMgcGFja2V0X3Jjdi90cGFja2V0X3JjdiBjYWxsLCB0aGVuCmJpbmRzIHRoZSBmYW5v dXQgb2JqZWN0IHRvIHJlY2VpdmUgdGhyb3VnaCBwYWNrZXRfcmN2X2Zhbm91dC4KCk1ha2UgaXQg aG9sZCB0aGUgcG8tPmJpbmRfbG9jayB3aGVuIHRlc3RpbmcgcG8tPnJ1bm5pbmcgYW5kIHJlYmlu ZGluZy4KRWxzZSwgaXQgY2FuIHJhY2Ugd2l0aCBvdGhlciByZWJpbmQgb3BlcmF0aW9ucywgc3Vj aCBhcyB0aGF0IGluCnBhY2tldF9zZXRfcmluZyBmcm9tIHBhY2tldF9yY3YgdG8gdHBhY2tldF9y Y3YuIENvbmN1cnJlbnQgdXBkYXRlcwpjYW4gcmVzdWx0IGluIGEgc29ja2V0IGJlaW5nIGFkZGVk IHRvIGEgZmFub3V0IGdyb3VwIHR3aWNlLCBjYXVzaW5nCnVzZS1hZnRlci1mcmVlIEtBU0FOIGJ1 ZyByZXBvcnRzLCBhbW9uZyBvdGhlcnMuCgpSZXBvcnRlZCBpbmRlcGVuZGVudGx5IGJ5IGJvdGgg dHJpbml0eSBhbmQgc3l6a2FsbGVyLgpWZXJpZmllZCB0aGF0IHRoZSBzeXprYWxsZXIgcmVwcm9k dWNlciBwYXNzZXMgYWZ0ZXIgdGhpcyBwYXRjaC4KCkZpeGVzOiBkYzk5ZjYwMDY5OGQgKCJwYWNr ZXQ6IEFkZCBmYW5vdXQgc3VwcG9ydC4iKQpSZXBvcnRlZC1ieTogbml4aW9hbWluZyA8bml4aWFv bWluZ0BodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1i QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgMTYgKysrKysrKysrKystLS0t LQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMK aW5kZXggMWM2MWFmOWFmNjdkLi41MmY1ZjE2MGFkMmMgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQv YWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMTY4NiwxMCArMTY4 Niw2IEBAIHN0YXRpYyBpbnQgZmFub3V0X2FkZChzdHJ1Y3Qgc29jayAqc2ssIHUxNiBpZCwgdTE2 IHR5cGVfZmxhZ3MpCiAKIAltdXRleF9sb2NrKCZmYW5vdXRfbXV0ZXgpOwogCi0JZXJyID0gLUVJ TlZBTDsKLQlpZiAoIXBvLT5ydW5uaW5nKQotCQlnb3RvIG91dDsKLQogCWVyciA9IC1FQUxSRUFE WTsKIAlpZiAocG8tPmZhbm91dCkKIAkJZ290byBvdXQ7CkBAIC0xNzUxLDcgKzE3NDcsMTAgQEAg c3RhdGljIGludCBmYW5vdXRfYWRkKHN0cnVjdCBzb2NrICpzaywgdTE2IGlkLCB1MTYgdHlwZV9m bGFncykKIAkJbGlzdF9hZGQoJm1hdGNoLT5saXN0LCAmZmFub3V0X2xpc3QpOwogCX0KIAllcnIg PSAtRUlOVkFMOwotCWlmIChtYXRjaC0+dHlwZSA9PSB0eXBlICYmCisKKwlzcGluX2xvY2soJnBv LT5iaW5kX2xvY2spOworCWlmIChwby0+cnVubmluZyAmJgorCSAgICBtYXRjaC0+dHlwZSA9PSB0 eXBlICYmCiAJICAgIG1hdGNoLT5wcm90X2hvb2sudHlwZSA9PSBwby0+cHJvdF9ob29rLnR5cGUg JiYKIAkgICAgbWF0Y2gtPnByb3RfaG9vay5kZXYgPT0gcG8tPnByb3RfaG9vay5kZXYpIHsKIAkJ ZXJyID0gLUVOT1NQQzsKQEAgLTE3NjMsNiArMTc2MiwxMyBAQCBzdGF0aWMgaW50IGZhbm91dF9h ZGQoc3RydWN0IHNvY2sgKnNrLCB1MTYgaWQsIHUxNiB0eXBlX2ZsYWdzKQogCQkJZXJyID0gMDsK IAkJfQogCX0KKwlzcGluX3VubG9jaygmcG8tPmJpbmRfbG9jayk7CisKKwlpZiAoZXJyICYmICFy ZWZjb3VudF9yZWFkKCZtYXRjaC0+c2tfcmVmKSkgeworCQlsaXN0X2RlbCgmbWF0Y2gtPmxpc3Qp OworCQlrZnJlZShtYXRjaCk7CisJfQorCiBvdXQ6CiAJaWYgKGVyciAmJiByb2xsb3Zlcikgewog CQlrZnJlZShyb2xsb3Zlcik7Ci0tIAoyLjEzLjYKCgpGcm9tIDkwMWE1NDEzYzRmMjcxMzc0YWMz ZDkzOTVlZjE3MWFhMjEzNjA3NzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFlvbmdo b25nIFNvbmcgPHloc0BmYi5jb20+CkRhdGU6IE1vbiwgMTggU2VwIDIwMTcgMTY6Mzg6MzYgLTA3 MDAKU3ViamVjdDogW1BBVENIIDIzLzQ4XSBicGY6IG9uZSBwZXJmIGV2ZW50IGNsb3NlIHdvbid0 IGZyZWUgYnBmIHByb2dyYW0KIGF0dGFjaGVkIGJ5IGFub3RoZXIgcGVyZiBldmVudAoKWyBVcHN0 cmVhbSBjb21taXQgZWM5ZGQzNTJkNTkxZjBjOTA0MDJlYzY3YTMxN2MxZWQ0ZmIyZTYzOCBdCgpU aGlzIHBhdGNoIGZpeGVzIGEgYnVnIGV4aGliaXRlZCBieSB0aGUgZm9sbG93aW5nIHNjZW5hcmlv OgogIDEuIGZkMSA9IHBlcmZfZXZlbnRfb3BlbiB3aXRoIGF0dHIuY29uZmlnID0gSUQxCiAgMi4g YXR0YWNoIGJwZiBwcm9ncmFtIHByb2cxIHRvIGZkMQogIDMuIGZkMiA9IHBlcmZfZXZlbnRfb3Bl biB3aXRoIGF0dHIuY29uZmlnID0gSUQxCiAgICAgPHRoaXMgd2lsbCBiZSBzdWNjZXNzZnVsPgog IDQuIHVzZXIgcHJvZ3JhbSBjbG9zZXMgZmQyIGFuZCBwcm9nMSBpcyBkZXRhY2hlZCBmcm9tIHRo ZSB0cmFjZXBvaW50LgogIDUuIHVzZXIgcHJvZ3JhbSB3aXRoIGZkMSBkb2VzIG5vdCB3b3JrIHBy b3Blcmx5IGFzIHRyYWNlcG9pbnQKICAgICBubyBvdXRwdXQgYW55IG1vcmUuCgpUaGUgaXNzdWUg aGFwcGVucyBhdCBzdGVwIDQuIE11bHRpcGxlIHBlcmZfZXZlbnRfb3BlbiBjYW4gYmUgY2FsbGVk CnN1Y2Nlc3NmdWxseSwgYnV0IG9ubHkgb25lIGJwZiBwcm9nIHBvaW50ZXIgaW4gdGhlIHRwX2V2 ZW50LiBJbiB0aGUKY3VycmVudCBsb2dpYywgYW55IGZkIHJlbGVhc2UgZm9yIHRoZSBzYW1lIHRw X2V2ZW50IHdpbGwgZnJlZQp0aGUgdHBfZXZlbnQtPnByb2cuCgpUaGUgZml4IGlzIHRvIGZyZWUg dHBfZXZlbnQtPnByb2cgb25seSB3aGVuIHRoZSBjbG9zaW5nIGZkCmNvcnJlc3BvbmRzIHRvIHRo ZSBvbmUgd2hpY2ggcmVnaXN0ZXJlZCB0aGUgcHJvZ3JhbS4KClNpZ25lZC1vZmYtYnk6IFlvbmdo b25nIFNvbmcgPHloc0BmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3RyYWNlX2V2ZW50cy5oIHwgMSAr CiBrZXJuZWwvZXZlbnRzL2NvcmUuYyAgICAgICAgIHwgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC90cmFjZV9ldmVudHMuaCBiL2luY2x1ZGUvbGludXgvdHJhY2VfZXZlbnRzLmgKaW5kZXggNTAx MmI1MjQyODNkLi42MDI0OGQ2NDRiNmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdHJhY2Vf ZXZlbnRzLmgKKysrIGIvaW5jbHVkZS9saW51eC90cmFjZV9ldmVudHMuaApAQCAtMjc3LDYgKzI3 Nyw3IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jYWxsIHsKIAlpbnQJCQkJcGVyZl9yZWZjb3VudDsK IAlzdHJ1Y3QgaGxpc3RfaGVhZCBfX3BlcmNwdQkqcGVyZl9ldmVudHM7CiAJc3RydWN0IGJwZl9w cm9nCQkJKnByb2c7CisJc3RydWN0IHBlcmZfZXZlbnQJCSpicGZfcHJvZ19vd25lcjsKIAogCWlu dAkoKnBlcmZfcGVybSkoc3RydWN0IHRyYWNlX2V2ZW50X2NhbGwgKiwKIAkJCSAgICAgc3RydWN0 IHBlcmZfZXZlbnQgKik7CmRpZmYgLS1naXQgYS9rZXJuZWwvZXZlbnRzL2NvcmUuYyBiL2tlcm5l bC9ldmVudHMvY29yZS5jCmluZGV4IDAzYWM5YzhiMDJmYi4uNzI0MmE2ZTFlYzc2IDEwMDY0NAot LS0gYS9rZXJuZWwvZXZlbnRzL2NvcmUuYworKysgYi9rZXJuZWwvZXZlbnRzL2NvcmUuYwpAQCAt ODEyMSw2ICs4MTIxLDcgQEAgc3RhdGljIGludCBwZXJmX2V2ZW50X3NldF9icGZfcHJvZyhzdHJ1 Y3QgcGVyZl9ldmVudCAqZXZlbnQsIHUzMiBwcm9nX2ZkKQogCQl9CiAJfQogCWV2ZW50LT50cF9l dmVudC0+cHJvZyA9IHByb2c7CisJZXZlbnQtPnRwX2V2ZW50LT5icGZfcHJvZ19vd25lciA9IGV2 ZW50OwogCiAJcmV0dXJuIDA7CiB9CkBAIC04MTM1LDcgKzgxMzYsNyBAQCBzdGF0aWMgdm9pZCBw ZXJmX2V2ZW50X2ZyZWVfYnBmX3Byb2coc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCQlyZXR1 cm47CiAKIAlwcm9nID0gZXZlbnQtPnRwX2V2ZW50LT5wcm9nOwotCWlmIChwcm9nKSB7CisJaWYg KHByb2cgJiYgZXZlbnQtPnRwX2V2ZW50LT5icGZfcHJvZ19vd25lciA9PSBldmVudCkgewogCQll dmVudC0+dHBfZXZlbnQtPnByb2cgPSBOVUxMOwogCQlicGZfcHJvZ19wdXQocHJvZyk7CiAJfQot LSAKMi4xMy42CgoKRnJvbSBjZjA3ZGM2NzllNzAyMTA2YWY5OWEyNTgzNzE5MjAwM2I2NTY5OTIx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFZHdhcmQgQ3JlZSA8ZWNyZWVAc29sYXJm bGFyZS5jb20+CkRhdGU6IFR1ZSwgMTkgU2VwIDIwMTcgMTg6NDU6NTYgKzAxMDAKU3ViamVjdDog W1BBVENIIDI0LzQ4XSBuZXQ6IGNoYW5nZSBza2ItPm1hY19oZWFkZXIgd2hlbiBHZW5lcmljIFhE UCBjYWxscwogYWRqdXN0X2hlYWQKClsgVXBzdHJlYW0gY29tbWl0IDkyZGQ1NDUyYzFiZTg3M2Ex MTkzNTYxZjRmNjkxNzYzMTAzZDIyYWMgXQoKU2luY2UgWERQJ3MgdmlldyBvZiB0aGUgcGFja2V0 IGluY2x1ZGVzIHRoZSBNQUMgaGVhZGVyLCBtb3ZpbmcgdGhlIHN0YXJ0LQogb2YtcGFja2V0IHdp dGggYnBmX3hkcF9hZGp1c3RfaGVhZCBuZWVkcyB0byBhbHNvIHVwZGF0ZSB0aGUgb2Zmc2V0IG9m IHRoZQogTUFDIGhlYWRlciAod2hpY2ggaXMgcmVsYXRpdmUgdG8gc2tiLT5oZWFkLCBub3QgdG8g dGhlIHNrYi0+ZGF0YSB0aGF0IHdhcwogY2hhbmdlZCkuCldpdGhvdXQgdGhpcywgdGNwZHVtcCBz ZWVzIHBhY2tldHMgc3RhcnRpbmcgZnJvbSB0aGUgb2xkIE1BQyBoZWFkZXIgcmF0aGVyCiB0aGFu IHRoZSBuZXcgb25lLCBhdCBsZWFzdCBpbiBteSB0ZXN0cyBvbiB0aGUgbG9vcGJhY2sgZGV2aWNl LgoKRml4ZXM6IGI1Y2RhZTMyOTFmNyAoIm5ldDogR2VuZXJpYyBYRFAiKQpTaWduZWQtb2ZmLWJ5 OiBFZHdhcmQgQ3JlZSA8ZWNyZWVAc29sYXJmbGFyZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXYuYyB8IDEg KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUv ZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCA4NmI0YjBhNzllN2EuLjZmYTMwYTRjNjBlZiAx MDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0L2NvcmUvZGV2LmMKQEAgLTQ0MDgs NiArNDQwOCw3IEBAIHN0YXRpYyB1MzIgbmV0aWZfcmVjZWl2ZV9nZW5lcmljX3hkcChzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAogCQlfX3NrYl9wdWxsKHNrYiwgb2ZmKTsKIAllbHNlIGlmIChvZmYgPCAw KQogCQlfX3NrYl9wdXNoKHNrYiwgLW9mZik7CisJc2tiLT5tYWNfaGVhZGVyICs9IG9mZjsKIAog CXN3aXRjaCAoYWN0KSB7CiAJY2FzZSBYRFBfVFg6Ci0tIAoyLjEzLjYKCgpGcm9tIDM2YzdlNDM3 MmE4OTIxYzA5NTNjZTJiZDdiZThhYTQ2ODJhMGQ5YjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IE1lbmcgWHUgPG1lbmd4dS5nYXRlY2hAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE5IFNl cCAyMDE3IDIxOjQ5OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyNS80OF0gaXNkbi9pNGw6IGZl dGNoIHRoZSBwcHBfd3JpdGUgYnVmZmVyIGluIG9uZSBzaG90CgpbIFVwc3RyZWFtIGNvbW1pdCAw MjM4OGJmODdmNzJlMWQ0NzE3NGNkOGY4MWMzNDQ0MzkyMGViNWEwIF0KCkluIGlzZG5fcHBwX3dy aXRlKCksIHRoZSBoZWFkZXIgKGkuZS4sIHByb3RvYnVmKSBvZiB0aGUgYnVmZmVyIGlzCmZldGNo ZWQgdHdpY2UgZnJvbSB1c2Vyc3BhY2UuIFRoZSBmaXJzdCBmZXRjaCBpcyB1c2VkIHRvIHBlZWsg YXQgdGhlCnByb3RvY29sIG9mIHRoZSBtZXNzYWdlIGFuZCByZXNldCB0aGUgaHVwdGltZXIgaWYg bmVjZXNzYXJ5OyB3aGlsZSB0aGUKc2Vjb25kIGZldGNoIGNvcGllcyBpbiB0aGUgd2hvbGUgYnVm ZmVyLiBIb3dldmVyLCBnaXZlbiB0aGF0IGJ1ZiByZXNpZGVzCmluIHVzZXJzcGFjZSBtZW1vcnks IGEgdXNlciBwcm9jZXNzIGNhbiByYWNlIHRvIGNoYW5nZSBpdHMgbWVtb3J5IGNvbnRlbnQKYWNy b3NzIGZldGNoZXMuIEJ5IGRvaW5nIHNvLCB3ZSBjYW4gZWl0aGVyIGF2b2lkIHJlc2V0dGluZyB0 aGUgaHVwdGltZXIKZm9yIGFueSB0eXBlIG9mIHBhY2tldHMgKGJ5IGZpcnN0IHNldHRpbmcgcHJv dG8gdG8gUFBQX0xDUCBhbmQgbGF0ZXIKY2hhbmdlIHRvIHRoZSBhY3R1YWwgdHlwZSkgb3IgZm9y Y2UgcmVzZXR0aW5nIHRoZSBodXB0aW1lciBmb3IgTENQCnBhY2tldHMuCgpUaGlzIHBhdGNoIGNo YW5nZXMgdGhpcyBkb3VibGUtZmV0Y2ggYmVoYXZpb3IgaW50byB0d28gc2luZ2xlIGZldGNoZXMK ZGVjaWRlZCBieSBjb25kaXRpb24gKGxwLT5pc2RuX2RldmljZSA8IDAgfHwgbHAtPmlzZG5fY2hh bm5lbCA8MCkuCkEgbW9yZSBkZXRhaWxlZCBkaXNjdXNzaW9uIGNhbiBiZSBmb3VuZCBhdApodHRw czovL21hcmMuaW5mby8/bD1saW51eC1rZXJuZWwmbT0xNTA1ODYzNzY5MjYxMjMmdz0yCgpTaWdu ZWQtb2ZmLWJ5OiBNZW5nIFh1IDxtZW5neHUuZ2F0ZWNoQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvaXNk bi9pNGwvaXNkbl9wcHAuYyB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vaTRsL2lzZG5fcHBwLmMgYi9kcml2ZXJzL2lzZG4vaTRs L2lzZG5fcHBwLmMKaW5kZXggNmM0NDYwOWZkODNhLi5jZDJiM2M2OTc3MWEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvaXNkbi9pNGwvaXNkbl9wcHAuYworKysgYi9kcml2ZXJzL2lzZG4vaTRsL2lzZG5f cHBwLmMKQEAgLTgyNSw3ICs4MjUsNiBAQCBpc2RuX3BwcF93cml0ZShpbnQgbWluLCBzdHJ1Y3Qg ZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwgaW50IGNvdW50KQogCWlzZG5fbmV0 X2xvY2FsICpscDsKIAlzdHJ1Y3QgaXBwcF9zdHJ1Y3QgKmlzOwogCWludCBwcm90bzsKLQl1bnNp Z25lZCBjaGFyIHByb3RvYnVmWzRdOwogCiAJaXMgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKQEAg LTgzOSwyNCArODM4LDI4IEBAIGlzZG5fcHBwX3dyaXRlKGludCBtaW4sIHN0cnVjdCBmaWxlICpm aWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLCBpbnQgY291bnQpCiAJaWYgKCFscCkKIAkJcHJp bnRrKEtFUk5fREVCVUcgImlzZG5fcHBwX3dyaXRlOiBscCA9PSBOVUxMXG4iKTsKIAllbHNlIHsK LQkJLyoKLQkJICogRG9uJ3QgcmVzZXQgaHVwdGltZXIgZm9yCi0JCSAqIExDUCBwYWNrZXRzLiAo RWNobyByZXF1ZXN0cykuCi0JCSAqLwotCQlpZiAoY29weV9mcm9tX3VzZXIocHJvdG9idWYsIGJ1 ZiwgNCkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQkJcHJvdG8gPSBQUFBfUFJPVE9DT0wocHJvdG9i dWYpOwotCQlpZiAocHJvdG8gIT0gUFBQX0xDUCkKLQkJCWxwLT5odXB0aW1lciA9IDA7CisJCWlm IChscC0+aXNkbl9kZXZpY2UgPCAwIHx8IGxwLT5pc2RuX2NoYW5uZWwgPCAwKSB7CisJCQl1bnNp Z25lZCBjaGFyIHByb3RvYnVmWzRdOworCQkJLyoKKwkJCSAqIERvbid0IHJlc2V0IGh1cHRpbWVy IGZvcgorCQkJICogTENQIHBhY2tldHMuIChFY2hvIHJlcXVlc3RzKS4KKwkJCSAqLworCQkJaWYg KGNvcHlfZnJvbV91c2VyKHByb3RvYnVmLCBidWYsIDQpKQorCQkJCXJldHVybiAtRUZBVUxUOwor CisJCQlwcm90byA9IFBQUF9QUk9UT0NPTChwcm90b2J1Zik7CisJCQlpZiAocHJvdG8gIT0gUFBQ X0xDUCkKKwkJCQlscC0+aHVwdGltZXIgPSAwOwogCi0JCWlmIChscC0+aXNkbl9kZXZpY2UgPCAw IHx8IGxwLT5pc2RuX2NoYW5uZWwgPCAwKQogCQkJcmV0dXJuIDA7CisJCX0KIAogCQlpZiAoKGRl di0+ZHJ2W2xwLT5pc2RuX2RldmljZV0tPmZsYWdzICYgRFJWX0ZMQUdfUlVOTklORykgJiYKIAkJ ICAgIGxwLT5kaWFsc3RhdGUgPT0gMCAmJgogCQkgICAgKGxwLT5mbGFncyAmIElTRE5fTkVUX0NP Tk5FQ1RFRCkpIHsKIAkJCXVuc2lnbmVkIHNob3J0IGhsOwogCQkJc3RydWN0IHNrX2J1ZmYgKnNr YjsKKwkJCXVuc2lnbmVkIGNoYXIgKmNweV9idWY7CiAJCQkvKgogCQkJICogd2UgbmVlZCB0byBy ZXNlcnZlIGVub3VnaCBzcGFjZSBpbiBmcm9udCBvZgogCQkJICogc2tfYnVmZi4gb2xkIGNhbGwg dG8gZGV2X2FsbG9jX3NrYiBvbmx5IHJlc2VydmVkCkBAIC04NjksMTEgKzg3MiwyMSBAQCBpc2Ru X3BwcF93cml0ZShpbnQgbWluLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIg KmJ1ZiwgaW50IGNvdW50KQogCQkJCXJldHVybiBjb3VudDsKIAkJCX0KIAkJCXNrYl9yZXNlcnZl KHNrYiwgaGwpOwotCQkJaWYgKGNvcHlfZnJvbV91c2VyKHNrYl9wdXQoc2tiLCBjb3VudCksIGJ1 ZiwgY291bnQpKQorCQkJY3B5X2J1ZiA9IHNrYl9wdXQoc2tiLCBjb3VudCk7CisJCQlpZiAoY29w eV9mcm9tX3VzZXIoY3B5X2J1ZiwgYnVmLCBjb3VudCkpCiAJCQl7CiAJCQkJa2ZyZWVfc2tiKHNr Yik7CiAJCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCQl9CisKKwkJCS8qCisJCQkgKiBEb24ndCByZXNl dCBodXB0aW1lciBmb3IKKwkJCSAqIExDUCBwYWNrZXRzLiAoRWNobyByZXF1ZXN0cykuCisJCQkg Ki8KKwkJCXByb3RvID0gUFBQX1BST1RPQ09MKGNweV9idWYpOworCQkJaWYgKHByb3RvICE9IFBQ UF9MQ1ApCisJCQkJbHAtPmh1cHRpbWVyID0gMDsKKwogCQkJaWYgKGlzLT5kZWJ1ZyAmIDB4NDAp IHsKIAkJCQlwcmludGsoS0VSTl9ERUJVRyAicHBwIHhtaXQ6IGxlbiAlZFxuIiwgKGludCkgc2ti LT5sZW4pOwogCQkJCWlzZG5fcHBwX2ZyYW1lX2xvZygieG1pdCIsIHNrYi0+ZGF0YSwgc2tiLT5s ZW4sIDMyLCBpcy0+dW5pdCwgbHAtPnBwcF9zbG90KTsKLS0gCjIuMTMuNgoKCkZyb20gMmY2NWY2 ODg2ZWMwZTc3MGYzNGUwMmFlOGJmZWVmNzNlY2Y2Yjk4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogS29uc3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5pa292QHlhbmRleC10ZWFtLnJ1 PgpEYXRlOiBXZWQsIDIwIFNlcCAyMDE3IDE1OjQ1OjM2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAy Ni80OF0gbmV0X3NjaGVkOiBhbHdheXMgcmVzZXQgcWRpc2MgYmFja2xvZyBpbiBxZGlzY19yZXNl dCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBjOGUxODEyOTYwZWVhZTQyZTIxODMxNTQ5MjcwMjg1MTFj NGJjNTY2IF0KClNLQiBzdG9yZWQgaW4gcWRpc2MtPmdzb19za2IgYWxzbyBjb3VudGVkIGludG8g YmFja2xvZy4KClNvbWUgcWRpc2NzIGRvbid0IHJlc2V0IGJhY2tsb2cgdG8gemVybyBpbiAtPnJl c2V0KCksCmZvciBleGFtcGxlIHNmcSBqdXN0IGRlcXVldWUgYW5kIGZyZWUgYWxsIHF1ZXVlZCBz a2IuCgpTaWduZWQtb2ZmLWJ5OiBLb25zdGFudGluIEtobGVibmlrb3YgPGtobGVibmlrb3ZAeWFu ZGV4LXRlYW0ucnU+CkZpeGVzOiAyY2NjY2Y1ZmI0M2YgKCJuZXRfc2NoZWQ6IHVwZGF0ZSBoaWVy YXJjaGljYWwgYmFja2xvZyB0b28iKQpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMgfCAxICsKIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hf Z2VuZXJpYy5jIGIvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKaW5kZXggNGJhNmRhNWZiMjU0Li5m ZjQ5NDIxZWU0OGEgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jCisrKyBiL25l dC9zY2hlZC9zY2hfZ2VuZXJpYy5jCkBAIC02ODEsNiArNjgxLDcgQEAgdm9pZCBxZGlzY19yZXNl dChzdHJ1Y3QgUWRpc2MgKnFkaXNjKQogCQlxZGlzYy0+Z3NvX3NrYiA9IE5VTEw7CiAJfQogCXFk aXNjLT5xLnFsZW4gPSAwOworCXFkaXNjLT5xc3RhdHMuYmFja2xvZyA9IDA7CiB9CiBFWFBPUlRf U1lNQk9MKHFkaXNjX3Jlc2V0KTsKIAotLSAKMi4xMy42CgoKRnJvbSA5MDY2YjMwZDgxOGNhZjZm MTcyZTcyODRhNzBiMmJhZThiNTEwNzEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBU aG9tYXMgTWV5ZXIgPHRob21hc0BtM3kzci5kZT4KRGF0ZTogVGh1LCAyMSBTZXAgMjAxNyAwODoy NDoyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjcvNDhdIG5ldDogc3RtbWFjOiBDb2NjaSBzcGF0 Y2ggIm9mX3RhYmxlIgoKWyBVcHN0cmVhbSBjb21taXQgZjBlZjFmNGYyYjc3MmMwYTFjOGIzNWE2 YWUzZWRmOTc0Y2MxMTBkZCBdCgpNYWtlIHN1cmUgKG9mL2kyYy9wbGF0Zm9ybSlfZGV2aWNlX2lk IHRhYmxlcyBhcmUgTlVMTCB0ZXJtaW5hdGVkLgpGb3VuZCBieSBjb2NjaW5lbGxlIHNwYXRjaCAi bWlzYy9vZl90YWJsZS5jb2NjaSIKClNpZ25lZC1vZmYtYnk6IFRob21hcyBNZXllciA8dGhvbWFz QG0zeTNyLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3Bs YXRmb3JtLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMK aW5kZXggYTM2NmIzNzQ3ZWViLi44YTI4MGI0OGUzYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jCkBAIC0zMTUsNiAr MzE1LDcgQEAgc3RhdGljIGludCBzdG1tYWNfZHRfcGh5KHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRf ZGF0YSAqcGxhdCwKIAkJeyAuY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuOGktaDMtZW1hYyIg fSwKIAkJeyAuY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuOGktdjNzLWVtYWMiIH0sCiAJCXsg LmNvbXBhdGlibGUgPSAiYWxsd2lubmVyLHN1bjUwaS1hNjQtZW1hYyIgfSwKKwkJe30sCiAJfTsK IAogCS8qIElmIHBoeS1oYW5kbGUgcHJvcGVydHkgaXMgcGFzc2VkIGZyb20gRFQsIHVzZSBpdCBh cyB0aGUgUEhZICovCi0tIAoyLjEzLjYKCgpGcm9tIGE0ZTc0ZTk5M2RlNTA4ZDYwYzU3YjU4ZWU3 ODFiNDFjNTAzYmZiY2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRpbXVyIFRhYmkg PHRpbXVyQGNvZGVhdXJvcmEub3JnPgpEYXRlOiBGcmksIDIyIFNlcCAyMDE3IDE1OjMyOjQ0IC0w NTAwClN1YmplY3Q6IFtQQVRDSCAyOC80OF0gbmV0OiBxY29tL2VtYWM6IHNwZWNpZnkgdGhlIGNv cnJlY3Qgc2l6ZSB3aGVuIG1hcHBpbmcgYQogRE1BIGJ1ZmZlcgoKWyBVcHN0cmVhbSBjb21taXQg YTkzYWQ5NDRmNGZmOWE3OTdhYmZmMTdjNzNmYzRiMWU0YTFkOTE0MSBdCgpXaGVuIG1hcHBpbmcg dGhlIFJYIERNQSBidWZmZXJzLCB0aGUgZHJpdmVyIHdhcyBhY2NpZGVudGFsbHkgc3BlY2lmeWlu Zwp6ZXJvIGZvciB0aGUgYnVmZmVyIGxlbmd0aC4gIFVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2Vz LCBTV0lPVExCIGRvZXMgbm90Cm5lZWQgdG8gYWxsb2NhdGUgYSBib3VuY2UgYnVmZmVyLCBzbyB0 aGUgYWRkcmVzcyBpcyBqdXN0IG1hcHBlZCB3aXRob3V0CmNoZWNraW5nIHRoZSBzaXplIGZpZWxk LiAgVGhpcyBpcyB3aHkgdGhlIGVycm9yIHdhcyBub3QgZGV0ZWN0ZWQgZWFybGllci4KCkZpeGVz OiBiOWIxN2RlYmM2OWQgKCJuZXQ6IGVtYWM6IGVtYWMgZ2lnYWJpdCBldGhlcm5ldCBjb250cm9s bGVyIGRyaXZlciIpCkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnClNpZ25lZC1vZmYtYnk6IFRp bXVyIFRhYmkgPHRpbXVyQGNvZGVhdXJvcmEub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcXVh bGNvbW0vZW1hYy9lbWFjLW1hYy5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9x dWFsY29tbS9lbWFjL2VtYWMtbWFjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xdWFsY29tbS9l bWFjL2VtYWMtbWFjLmMKaW5kZXggYmNkNDcwOGIzNzQ1Li45N2YxOGNkYzk1MTYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3F1YWxjb21tL2VtYWMvZW1hYy1tYWMuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9xdWFsY29tbS9lbWFjL2VtYWMtbWFjLmMKQEAgLTg3Niw3ICs4 NzYsOCBAQCBzdGF0aWMgdm9pZCBlbWFjX21hY19yeF9kZXNjc19yZWZpbGwoc3RydWN0IGVtYWNf YWRhcHRlciAqYWRwdCwKIAogCQljdXJyX3J4YnVmLT5kbWFfYWRkciA9CiAJCQlkbWFfbWFwX3Np bmdsZShhZHB0LT5uZXRkZXYtPmRldi5wYXJlbnQsIHNrYi0+ZGF0YSwKLQkJCQkgICAgICAgY3Vy cl9yeGJ1Zi0+bGVuZ3RoLCBETUFfRlJPTV9ERVZJQ0UpOworCQkJCSAgICAgICBhZHB0LT5yeGJ1 Zl9zaXplLCBETUFfRlJPTV9ERVZJQ0UpOworCiAJCXJldCA9IGRtYV9tYXBwaW5nX2Vycm9yKGFk cHQtPm5ldGRldi0+ZGV2LnBhcmVudCwKIAkJCQkJY3Vycl9yeGJ1Zi0+ZG1hX2FkZHIpOwogCQlp ZiAocmV0KSB7Ci0tIAoyLjEzLjYKCgpGcm9tIDI3ZWIxZTkwNzFhNzgyNDIyNzMyYTU1YWUzNWI1 OGU2MGRhNzRmYmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhleSBLb2RhbmV2 IDxhbGV4ZXkua29kYW5ldkBvcmFjbGUuY29tPgpEYXRlOiBUdWUsIDI2IFNlcCAyMDE3IDE1OjE0 OjI5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyOS80OF0gdnRpOiBmaXggdXNlIGFmdGVyIGZyZWUg aW4KIHZ0aV90dW5uZWxfeG1pdC92dGk2X3RubF94bWl0CgpbIFVwc3RyZWFtIGNvbW1pdCAzNmY2 ZWUyMmQyZDY2MDQ2ZTM2OTc1N2VjNmJiZTFjNDgyOTU3YmE2IF0KCldoZW4gcnVubmluZyBMVFAg SVBzZWMgdGVzdHMsIEtBU2FuIG1pZ2h0IHJlcG9ydDoKCkJVRzogS0FTQU46IHVzZS1hZnRlci1m cmVlIGluIHZ0aV90dW5uZWxfeG1pdCsweGVlZS8weGZmMCBbaXBfdnRpXQpSZWFkIG9mIHNpemUg NCBhdCBhZGRyIGZmZmY4ODBkYzZhZDE5ODAgYnkgdGFzayBzd2FwcGVyLzAvMAouLi4KQ2FsbCBU cmFjZToKICA8SVJRPgogIGR1bXBfc3RhY2srMHg2My8weDg5CiAgcHJpbnRfYWRkcmVzc19kZXNj cmlwdGlvbisweDdjLzB4MjkwCiAga2FzYW5fcmVwb3J0KzB4MjhkLzB4MzcwCiAgPyB2dGlfdHVu bmVsX3htaXQrMHhlZWUvMHhmZjAgW2lwX3Z0aV0KICBfX2FzYW5fcmVwb3J0X2xvYWQ0X25vYWJv cnQrMHgxOS8weDIwCiAgdnRpX3R1bm5lbF94bWl0KzB4ZWVlLzB4ZmYwIFtpcF92dGldCiAgPyB2 dGlfaW5pdF9uZXQrMHgxOTAvMHgxOTAgW2lwX3Z0aV0KICA/IHNhdmVfc3RhY2tfdHJhY2UrMHgx Yi8weDIwCiAgPyBzYXZlX3N0YWNrKzB4NDYvMHhkMAogIGRldl9oYXJkX3N0YXJ0X3htaXQrMHgx NDcvMHg1MTAKICA/IGljbXBfZWNoby5wYXJ0LjI0KzB4MWYwLzB4MjEwCiAgX19kZXZfcXVldWVf eG1pdCsweDEzOTQvMHgxYzYwCi4uLgpGcmVlZCBieSB0YXNrIDA6CiAgc2F2ZV9zdGFja190cmFj ZSsweDFiLzB4MjAKICBzYXZlX3N0YWNrKzB4NDYvMHhkMAogIGthc2FuX3NsYWJfZnJlZSsweDcw LzB4YzAKICBrbWVtX2NhY2hlX2ZyZWUrMHg4MS8weDFlMAogIGtmcmVlX3NrYm1lbSsweGIxLzB4 ZTAKICBrZnJlZV9za2IrMHg3NS8weDE3MAogIGtmcmVlX3NrYl9saXN0KzB4M2UvMHg2MAogIF9f ZGV2X3F1ZXVlX3htaXQrMHgxMjk4LzB4MWM2MAogIGRldl9xdWV1ZV94bWl0KzB4MTAvMHgyMAog IG5laWdoX3Jlc29sdmVfb3V0cHV0KzB4M2E4LzB4NzQwCiAgaXBfZmluaXNoX291dHB1dDIrMHg1 YzAvMHhlNzAKICBpcF9maW5pc2hfb3V0cHV0KzB4NGJhLzB4NjgwCiAgaXBfb3V0cHV0KzB4MWMx LzB4M2EwCiAgeGZybV9vdXRwdXRfcmVzdW1lKzB4YzY1LzB4MTNkMAogIHhmcm1fb3V0cHV0KzB4 MWU0LzB4MzgwCiAgeGZybTRfb3V0cHV0X2ZpbmlzaCsweDVjLzB4NzAKCkNhbiBiZSBmaXhlZCBp ZiB3ZSBnZXQgc2tiLT5sZW4gYmVmb3JlIGRzdF9vdXRwdXQoKS4KCkZpeGVzOiBiOTk1OWZkM2Iw ZmEgKCJ2dGk6IHN3aXRjaCB0byBuZXcgaXAgdHVubmVsIGNvZGUiKQpGaXhlczogMjJlMWIyM2Rh ZmE4ICgidnRpNjogU3VwcG9ydCBpbnRlciBhZGRyZXNzIGZhbWlseSB0dW5uZWxpbmcuIikKU2ln bmVkLW9mZi1ieTogQWxleGV5IEtvZGFuZXYgPGFsZXhleS5rb2RhbmV2QG9yYWNsZS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvaXB2NC9pcF92dGkuYyAgfCAzICsrLQogbmV0L2lwdjYvaXA2X3Z0aS5jIHwgMyArKy0KIDIg ZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9pcHY0L2lwX3Z0aS5jIGIvbmV0L2lwdjQvaXBfdnRpLmMKaW5kZXggMDE5MmMyNTVl NTA4Li43NGJkNDZjNWJkYTcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX3Z0aS5jCisrKyBiL25l dC9pcHY0L2lwX3Z0aS5jCkBAIC0xNjgsNiArMTY4LDcgQEAgc3RhdGljIG5ldGRldl90eF90IHZ0 aV94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJc3Ry dWN0IGlwX3R1bm5lbF9wYXJtICpwYXJtcyA9ICZ0dW5uZWwtPnBhcm1zOwogCXN0cnVjdCBkc3Rf ZW50cnkgKmRzdCA9IHNrYl9kc3Qoc2tiKTsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqdGRldjsJLyog RGV2aWNlIHRvIG90aGVyIGhvc3QgKi8KKwlpbnQgcGt0X2xlbiA9IHNrYi0+bGVuOwogCWludCBl cnI7CiAJaW50IG10dTsKIApAQCAtMjI5LDcgKzIzMCw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB2 dGlfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCiAJ ZXJyID0gZHN0X291dHB1dCh0dW5uZWwtPm5ldCwgc2tiLT5zaywgc2tiKTsKIAlpZiAobmV0X3ht aXRfZXZhbChlcnIpID09IDApCi0JCWVyciA9IHNrYi0+bGVuOworCQllcnIgPSBwa3RfbGVuOwog CWlwdHVubmVsX3htaXRfc3RhdHMoZGV2LCBlcnIpOwogCXJldHVybiBORVRERVZfVFhfT0s7CiAK ZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl92dGkuYyBiL25ldC9pcHY2L2lwNl92dGkuYwppbmRl eCA0ODZjMjMwNWY1M2MuLmUzZTNlYTY1NTQ2NCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3Z0 aS5jCisrKyBiL25ldC9pcHY2L2lwNl92dGkuYwpAQCAtNDQ1LDYgKzQ0NSw3IEBAIHZ0aTZfeG1p dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZmxv d2kgKmZsKQogCXN0cnVjdCBkc3RfZW50cnkgKmRzdCA9IHNrYl9kc3Qoc2tiKTsKIAlzdHJ1Y3Qg bmV0X2RldmljZSAqdGRldjsKIAlzdHJ1Y3QgeGZybV9zdGF0ZSAqeDsKKwlpbnQgcGt0X2xlbiA9 IHNrYi0+bGVuOwogCWludCBlcnIgPSAtMTsKIAlpbnQgbXR1OwogCkBAIC01MDIsNyArNTAzLDcg QEAgdnRpNl94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs IHN0cnVjdCBmbG93aSAqZmwpCiAJCXN0cnVjdCBwY3B1X3N3X25ldHN0YXRzICp0c3RhdHMgPSB0 aGlzX2NwdV9wdHIoZGV2LT50c3RhdHMpOwogCiAJCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnRz dGF0cy0+c3luY3ApOwotCQl0c3RhdHMtPnR4X2J5dGVzICs9IHNrYi0+bGVuOworCQl0c3RhdHMt PnR4X2J5dGVzICs9IHBrdF9sZW47CiAJCXRzdGF0cy0+dHhfcGFja2V0cysrOwogCQl1NjRfc3Rh dHNfdXBkYXRlX2VuZCgmdHN0YXRzLT5zeW5jcCk7CiAJfSBlbHNlIHsKLS0gCjIuMTMuNgoKCkZy b20gNDlkMTdhOTkxMDYwMGM1MjE4ODc4ODdjZjFlODdiYjU4YzdkYTk4MyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+CkRh dGU6IFR1ZSwgMjYgU2VwIDIwMTcgMTY6MTY6NDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDMwLzQ4 XSBsMnRwOiBmaXggcmFjZSBjb25kaXRpb24gaW4gbDJ0cF90dW5uZWxfZGVsZXRlCgpbIFVwc3Ry ZWFtIGNvbW1pdCA2MmI5ODJlZWI0NTg5YjJlNmQ3YzAxYTkwNTkwZTNhNGMyYjJjYTE5IF0KCklm IHdlIHRyeSB0byBkZWxldGUgdGhlIHNhbWUgdHVubmVsIHR3aWNlLCB0aGUgZmlyc3QgZGVsZXRl IG9wZXJhdGlvbgpkb2VzIGEgbG9va3VwIChsMnRwX3R1bm5lbF9nZXQpLCBmaW5kcyB0aGUgdHVu bmVsLCBjYWxscwpsMnRwX3R1bm5lbF9kZWxldGUsIHdoaWNoIHF1ZXVlcyBpdCBmb3IgZGVsZXRp b24gYnkKbDJ0cF90dW5uZWxfZGVsX3dvcmsuCgpUaGUgc2Vjb25kIGRlbGV0ZSBvcGVyYXRpb24g YWxzbyBmaW5kcyB0aGUgdHVubmVsIGFuZCBjYWxscwpsMnRwX3R1bm5lbF9kZWxldGUuIElmIHRo ZSB3b3JrcXVldWUgaGFzIGFscmVhZHkgZmlyZWQgYW5kIHN0YXJ0ZWQKcnVubmluZyBsMnRwX3R1 bm5lbF9kZWxfd29yaywgdGhlbiBsMnRwX3R1bm5lbF9kZWxldGUgd2lsbCBxdWV1ZSB0aGUKc2Ft ZSB0dW5uZWwgYSBzZWNvbmQgdGltZSwgYW5kIHRyeSB0byBmcmVlIHRoZSBzb2NrZXQgYWdhaW4u CgpBZGQgYSBkZWFkIGZsYWcgdG8gcHJldmVudCBmaXJpbmcgdGhlIHdvcmtxdWV1ZSB0d2ljZS4g VGhlbiB3ZSBjYW4KcmVtb3ZlIHRoZSBjaGVjayBvZiBxdWV1ZV93b3JrJ3MgcmVzdWx0IHRoYXQg d2FzIG1lYW50IHRvIHByZXZlbnQgdGhhdApyYWNlIGJ1dCBkb2Vzbid0LgoKUmVwcm9kdWNlcjoK CiAgICBpcCBsMnRwIGFkZCB0dW5uZWwgdHVubmVsX2lkIDMwMDAgcGVlcl90dW5uZWxfaWQgNDAw MCBsb2NhbCAxOTIuMTY4LjAuMiByZW1vdGUgMTkyLjE2OC4wLjEgZW5jYXAgdWRwIHVkcF9zcG9y dCA1MDAwIHVkcF9kcG9ydCA2MDAwCiAgICBpcCBsMnRwIGFkZCBzZXNzaW9uIG5hbWUgbDJ0cDEg dHVubmVsX2lkIDMwMDAgc2Vzc2lvbl9pZCAxMDAwIHBlZXJfc2Vzc2lvbl9pZCAyMDAwCiAgICBp cCBsaW5rIHNldCBsMnRwMSB1cAogICAgaXAgbDJ0cCBkZWwgdHVubmVsIHR1bm5lbF9pZCAzMDAw CiAgICBpcCBsMnRwIGRlbCB0dW5uZWwgdHVubmVsX2lkIDMwMDAKCkZpeGVzOiBmOGNjYWMwZTQ0 OTMgKCJsMnRwOiBwdXQgdHVubmVsIHNvY2tldCByZWxlYXNlIG9uIGEgd29ya3F1ZXVlIikKUmVw b3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBT YWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KQWNrZWQtYnk6IEd1aWxsYXVtZSBO YXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbDJ0cC9sMnRwX2NvcmUuYyB8IDEwICsr KystLS0tLS0KIG5ldC9sMnRwL2wydHBfY29yZS5oIHwgIDUgKysrKy0KIDIgZmlsZXMgY2hhbmdl ZCwgOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9sMnRw L2wydHBfY29yZS5jIGIvbmV0L2wydHAvbDJ0cF9jb3JlLmMKaW5kZXggOTAxNjVhNjg3NGJjLi41 MjVjNjZmMTEyMWEgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfY29yZS5jCisrKyBiL25ldC9s MnRwL2wydHBfY29yZS5jCkBAIC0xNjY1LDE0ICsxNjY1LDEyIEBAIEVYUE9SVF9TWU1CT0xfR1BM KGwydHBfdHVubmVsX2NyZWF0ZSk7CiAKIC8qIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBieSB0aGUg bmV0bGluayBUVU5ORUxfREVMRVRFIGNvbW1hbmQuCiAgKi8KLWludCBsMnRwX3R1bm5lbF9kZWxl dGUoc3RydWN0IGwydHBfdHVubmVsICp0dW5uZWwpCit2b2lkIGwydHBfdHVubmVsX2RlbGV0ZShz dHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCkKIHsKLQlsMnRwX3R1bm5lbF9pbmNfcmVmY291bnQo dHVubmVsKTsKLQlpZiAoZmFsc2UgPT0gcXVldWVfd29yayhsMnRwX3dxLCAmdHVubmVsLT5kZWxf d29yaykpIHsKLQkJbDJ0cF90dW5uZWxfZGVjX3JlZmNvdW50KHR1bm5lbCk7Ci0JCXJldHVybiAx OworCWlmICghdGVzdF9hbmRfc2V0X2JpdCgwLCAmdHVubmVsLT5kZWFkKSkgeworCQlsMnRwX3R1 bm5lbF9pbmNfcmVmY291bnQodHVubmVsKTsKKwkJcXVldWVfd29yayhsMnRwX3dxLCAmdHVubmVs LT5kZWxfd29yayk7CiAJfQotCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTF9HUEwobDJ0cF90 dW5uZWxfZGVsZXRlKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9jb3JlLmggYi9uZXQv bDJ0cC9sMnRwX2NvcmUuaAppbmRleCA5MTAxMjk3ZjI3YWQuLjdjNWE1MWY2MmFmYyAxMDA2NDQK LS0tIGEvbmV0L2wydHAvbDJ0cF9jb3JlLmgKKysrIGIvbmV0L2wydHAvbDJ0cF9jb3JlLmgKQEAg LTE2MCw2ICsxNjAsOSBAQCBzdHJ1Y3QgbDJ0cF90dW5uZWxfY2ZnIHsKIAogc3RydWN0IGwydHBf dHVubmVsIHsKIAlpbnQJCQltYWdpYzsJCS8qIFNob3VsZCBiZSBMMlRQX1RVTk5FTF9NQUdJQyAq LworCisJdW5zaWduZWQgbG9uZwkJZGVhZDsKKwogCXN0cnVjdCByY3VfaGVhZCByY3U7CiAJcnds b2NrX3QJCWhsaXN0X2xvY2s7CS8qIHByb3RlY3Qgc2Vzc2lvbl9obGlzdCAqLwogCXN0cnVjdCBo bGlzdF9oZWFkCXNlc3Npb25faGxpc3RbTDJUUF9IQVNIX1NJWkVdOwpAQCAtMjQ4LDcgKzI1MSw3 IEBAIGludCBsMnRwX3R1bm5lbF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBpbnQgZmQsIGludCB2 ZXJzaW9uLCB1MzIgdHVubmVsX2lkLAogCQkgICAgICAgdTMyIHBlZXJfdHVubmVsX2lkLCBzdHJ1 Y3QgbDJ0cF90dW5uZWxfY2ZnICpjZmcsCiAJCSAgICAgICBzdHJ1Y3QgbDJ0cF90dW5uZWwgKip0 dW5uZWxwKTsKIHZvaWQgbDJ0cF90dW5uZWxfY2xvc2VhbGwoc3RydWN0IGwydHBfdHVubmVsICp0 dW5uZWwpOwotaW50IGwydHBfdHVubmVsX2RlbGV0ZShzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5l bCk7Cit2b2lkIGwydHBfdHVubmVsX2RlbGV0ZShzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCk7 CiBzdHJ1Y3QgbDJ0cF9zZXNzaW9uICpsMnRwX3Nlc3Npb25fY3JlYXRlKGludCBwcml2X3NpemUs CiAJCQkJCSBzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCwKIAkJCQkJIHUzMiBzZXNzaW9uX2lk LCB1MzIgcGVlcl9zZXNzaW9uX2lkLAotLSAKMi4xMy42CgoKRnJvbSAzN2UwNjI5Yzk0M2Q1YmJl NDg4NjFkNGMxYTYxNDk1NjUzZDNhYTdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBB bGV4YW5kZXIgUG90YXBlbmtvIDxnbGlkZXJAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAyOCBTZXAg MjAxNyAxMTozMjozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzEvNDhdIHR1bjogYmFpbCBvdXQg ZnJvbSB0dW5fZ2V0X3VzZXIoKSBpZiB0aGUgc2tiIGlzIGVtcHR5CgpbIFVwc3RyZWFtIGNvbW1p dCAyNTgwYzRjMTdhZWUzYWQ1OGU5NzUxMDEyYmFkMjc4ZGQwNzRjY2FlIF0KCktNU0FOIChodHRw czovL2dpdGh1Yi5jb20vZ29vZ2xlL2ttc2FuKSByZXBvcnRlZCBhY2Nlc3NpbmcgdW5pbml0aWFs aXplZApza2ItPmRhdGFbMF0gaW4gdGhlIGNhc2UgdGhlIHNrYiBpcyBlbXB0eSAoaS5lLiBza2It PmxlbiBpcyAwKToKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpCVUc6IEtNU0FOOiB1c2Ugb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgaW4gdHVuX2dldF91 c2VyKzB4MTliYS8weDM3NzAKQ1BVOiAwIFBJRDogMzA1MSBDb21tOiBwcm9iZSBOb3QgdGFpbnRl ZCA0LjEzLjArICMzMTQwCkhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCAr IFBJSVgsIDE5OTYpLCBCSU9TIEJvY2hzIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKLi4uCiBfX21z YW5fd2FybmluZ18zMisweDY2LzB4YjAgbW0va21zYW4va21zYW5faW5zdHIuYzo0NzcKIHR1bl9n ZXRfdXNlcisweDE5YmEvMHgzNzcwIGRyaXZlcnMvbmV0L3R1bi5jOjEzMDEKIHR1bl9jaHJfd3Jp dGVfaXRlcisweDE5Zi8weDMwMCBkcml2ZXJzL25ldC90dW4uYzoxMzY1CiBjYWxsX3dyaXRlX2l0 ZXIgLi9pbmNsdWRlL2xpbnV4L2ZzLmg6MTc0MwogbmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0 ZS5jOjQ1NwogX192ZnNfd3JpdGUrMHg2YzMvMHg3ZjAgZnMvcmVhZF93cml0ZS5jOjQ3MAogdmZz X3dyaXRlKzB4M2U0LzB4NzcwIGZzL3JlYWRfd3JpdGUuYzo1MTgKIFNZU0Nfd3JpdGUrMHgxMmYv MHgyYjAgZnMvcmVhZF93cml0ZS5jOjU2NQogU3lTX3dyaXRlKzB4NTUvMHg4MCBmcy9yZWFkX3dy aXRlLmM6NTU3CiBkb19zeXNjYWxsXzY0KzB4MjQyLzB4MzMwIGFyY2gveDg2L2VudHJ5L2NvbW1v bi5jOjI4NAogZW50cnlfU1lTQ0FMTDY0X3Nsb3dfcGF0aCsweDI1LzB4MjUgYXJjaC94ODYvZW50 cnkvZW50cnlfNjQuUzoyNDUKLi4uCm9yaWdpbjoKLi4uCiBrbXNhbl9wb2lzb25fc2hhZG93KzB4 NmUvMHhjMCBtbS9rbXNhbi9rbXNhbi5jOjIxMQogc2xhYl9hbGxvY19ub2RlIG1tL3NsdWIuYzoy NzMyCiBfX2ttYWxsb2Nfbm9kZV90cmFja19jYWxsZXIrMHgzNTEvMHgzNzAgbW0vc2x1Yi5jOjQz NTEKIF9fa21hbGxvY19yZXNlcnZlIG5ldC9jb3JlL3NrYnVmZi5jOjEzOAogX19hbGxvY19za2Ir MHgyNmEvMHg4MTAgbmV0L2NvcmUvc2tidWZmLmM6MjMxCiBhbGxvY19za2IgLi9pbmNsdWRlL2xp bnV4L3NrYnVmZi5oOjkwMwogYWxsb2Nfc2tiX3dpdGhfZnJhZ3MrMHgxZDcvMHhjODAgbmV0L2Nv cmUvc2tidWZmLmM6NDc1Ngogc29ja19hbGxvY19zZW5kX3Bza2IrMHhhYmYvMHhmZTAgbmV0L2Nv cmUvc29jay5jOjIwMzcKIHR1bl9hbGxvY19za2IgZHJpdmVycy9uZXQvdHVuLmM6MTE0NAogdHVu X2dldF91c2VyKzB4OWE4LzB4Mzc3MCBkcml2ZXJzL25ldC90dW4uYzoxMjc0CiB0dW5fY2hyX3dy aXRlX2l0ZXIrMHgxOWYvMHgzMDAgZHJpdmVycy9uZXQvdHVuLmM6MTM2NQogY2FsbF93cml0ZV9p dGVyIC4vaW5jbHVkZS9saW51eC9mcy5oOjE3NDMKIG5ld19zeW5jX3dyaXRlIGZzL3JlYWRfd3Jp dGUuYzo0NTcKIF9fdmZzX3dyaXRlKzB4NmMzLzB4N2YwIGZzL3JlYWRfd3JpdGUuYzo0NzAKIHZm c193cml0ZSsweDNlNC8weDc3MCBmcy9yZWFkX3dyaXRlLmM6NTE4CiBTWVNDX3dyaXRlKzB4MTJm LzB4MmIwIGZzL3JlYWRfd3JpdGUuYzo1NjUKIFN5U193cml0ZSsweDU1LzB4ODAgZnMvcmVhZF93 cml0ZS5jOjU1NwogZG9fc3lzY2FsbF82NCsweDI0Mi8weDMzMCBhcmNoL3g4Ni9lbnRyeS9jb21t b24uYzoyODQKIHJldHVybl9mcm9tX1NZU0NBTExfNjQrMHgwLzB4NmEgYXJjaC94ODYvZW50cnkv ZW50cnlfNjQuUzoyNDUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CgpNYWtlIHN1cmUgdHVuX2dldF91c2VyKCkgZG9lc24ndCB0b3VjaCBza2ItPmRhdGFb MF0gdW5sZXNzIHRoZXJlIGlzCmFjdHVhbCBkYXRhLgoKQyByZXByb2R1Y2VyIGJlbG93Ogo9PT09 PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8gYXV0b2dlbmVyYXRlZCBieSBzeXprYWxsZXIg KGh0dHA6Ly9naXRodWIuY29tL2dvb2dsZS9zeXprYWxsZXIpCgogICAgI2RlZmluZSBfR05VX1NP VVJDRQoKICAgICNpbmNsdWRlIDxmY250bC5oPgogICAgI2luY2x1ZGUgPGxpbnV4L2lmX3R1bi5o PgogICAgI2luY2x1ZGUgPG5ldGluZXQvaXAuaD4KICAgICNpbmNsdWRlIDxuZXQvaWYuaD4KICAg ICNpbmNsdWRlIDxzdHJpbmcuaD4KICAgICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KCiAgICBpbnQg bWFpbigpCiAgICB7CiAgICAgIGludCBzb2NrID0gc29ja2V0KFBGX0lORVQsIFNPQ0tfU1RSRUFN LCBJUFBST1RPX0lQKTsKICAgICAgaW50IHR1bl9mZCA9IG9wZW4oIi9kZXYvbmV0L3R1biIsIE9f UkRXUik7CiAgICAgIHN0cnVjdCBpZnJlcSByZXE7CiAgICAgIG1lbXNldCgmcmVxLCAwLCBzaXpl b2Yoc3RydWN0IGlmcmVxKSk7CiAgICAgIHN0cmNweSgoY2hhciopJnJlcS5pZnJfbmFtZSwgImdy ZTAiKTsKICAgICAgcmVxLmlmcl9mbGFncyA9IElGRl9VUCB8IElGRl9NVUxUSUNBU1Q7CiAgICAg IGlvY3RsKHR1bl9mZCwgVFVOU0VUSUZGLCAmcmVxKTsKICAgICAgaW9jdGwoc29jaywgU0lPQ1NJ RkZMQUdTLCAiZ3JlMCIpOwogICAgICB3cml0ZSh0dW5fZmQsICJoaSIsIDApOwogICAgICByZXR1 cm4gMDsKICAgIH0KPT09PT09PT09PT09PT09PT09PT09PT09PT0KClNpZ25lZC1vZmYtYnk6IEFs ZXhhbmRlciBQb3RhcGVua28gPGdsaWRlckBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdHVuLmMg fCA4ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3R1bi5jIGIvZHJpdmVycy9uZXQvdHVuLmMK aW5kZXggMGEyYzBhNDIyODNmLi5jYjFmNzc0N2FkYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L3R1bi5jCisrKyBiL2RyaXZlcnMvbmV0L3R1bi5jCkBAIC0xMjk4LDExICsxMjk4LDEzIEBAIHN0 YXRpYyBzc2l6ZV90IHR1bl9nZXRfdXNlcihzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLCBzdHJ1Y3Qg dHVuX2ZpbGUgKnRmaWxlLAogCXN3aXRjaCAodHVuLT5mbGFncyAmIFRVTl9UWVBFX01BU0spIHsK IAljYXNlIElGRl9UVU46CiAJCWlmICh0dW4tPmZsYWdzICYgSUZGX05PX1BJKSB7Ci0JCQlzd2l0 Y2ggKHNrYi0+ZGF0YVswXSAmIDB4ZjApIHsKLQkJCWNhc2UgMHg0MDoKKwkJCXU4IGlwX3ZlcnNp b24gPSBza2ItPmxlbiA/IChza2ItPmRhdGFbMF0gPj4gNCkgOiAwOworCisJCQlzd2l0Y2ggKGlw X3ZlcnNpb24pIHsKKwkJCWNhc2UgNDoKIAkJCQlwaS5wcm90byA9IGh0b25zKEVUSF9QX0lQKTsK IAkJCQlicmVhazsKLQkJCWNhc2UgMHg2MDoKKwkJCWNhc2UgNjoKIAkJCQlwaS5wcm90byA9IGh0 b25zKEVUSF9QX0lQVjYpOwogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKLS0gCjIuMTMuNgoKCkZy b20gN2U5ZDA2MGJkYjQ3Y2YyOGEyNjFlZGFmNmJmZjM0ODQxZmUzMWNhNCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpEYXRlOiBNb24s IDI1IFNlcCAyMDE3IDIzOjMyOjIwICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMi80OF0gbmV0OiBk c2E6IG12ODhlNnh4eDogQWxsb3cgZHNhIGFuZCBjcHUgcG9ydHMgaW4KIG11bHRpcGxlIHZsYW5z CgpbIFVwc3RyZWFtIGNvbW1pdCBkYjA2YWU0MTk0NWIxNGZlYjdmNjk2ZGNhZmU4MDQ4Y2MzN2U4 YTIwIF0KClBvcnRzIHdpdGggdGhlIHNhbWUgVkxBTiBtdXN0IGFsbCBiZSBpbiB0aGUgc2FtZSBi cmlkZ2UuIEhvd2V2ZXIgdGhlCkNQVSBhbmQgRFNBIHBvcnRzIG5lZWQgdG8gYmUgaW4gbXVsdGlw bGUgVkxBTnMgc3ByZWFkIG92ZXIgbXVsdGlwbGUKYnJpZGdlcy4gU28gZXhjbHVkZSB0aGVtIHdo ZW4gcGVyZm9ybWluZyB0aGlzIHRlc3QuCgpGaXhlczogYjJmODFkMzA0Y2VlICgibmV0OiBkc2E6 IGFkZCBDUFUgYW5kIERTQSBwb3J0cyBhcyBWTEFOIG1lbWJlcnMiKQpTaWduZWQtb2ZmLWJ5OiBB bmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClJldmlld2VkLWJ5OiBWaXZpZW4gRGlkZWxvdCA8 dml2aWVuLmRpZGVsb3RAc2F2b2lyZmFpcmVsaW51eC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXY4 OGU2eHh4L2NoaXAuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jIGIvZHJpdmVycy9u ZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKaW5kZXggNWJjZGQzMzEwMWIwLi43NGU3MmZkZWE5YTIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCisrKyBiL2RyaXZl cnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCkBAIC0xMTg0LDYgKzExODQsMTAgQEAgc3RhdGlj IGludCBtdjg4ZTZ4eHhfcG9ydF9jaGVja19od192bGFuKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywg aW50IHBvcnQsCiAJfTsKIAlpbnQgaSwgZXJyOwogCisJLyogRFNBIGFuZCBDUFUgcG9ydHMgaGF2 ZSB0byBiZSBtZW1iZXJzIG9mIG11bHRpcGxlIHZsYW5zICovCisJaWYgKGRzYV9pc19kc2FfcG9y dChkcywgcG9ydCkgfHwgZHNhX2lzX2NwdV9wb3J0KGRzLCBwb3J0KSkKKwkJcmV0dXJuIDA7CisK IAlpZiAoIXZpZF9iZWdpbikKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCi0tIAoyLjEzLjYKCgpG cm9tIGFlY2ZiMDk4ZDA2ZjJhODc5YTRmYzM1NGI1Y2IxMmNmYjNkMjYwMzQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29t PgpEYXRlOiBNb24sIDI1IFNlcCAyMDE3IDE1OjU1OjUzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAz My80OF0gbmV0OiBkc2E6IEZpeCBuZXR3b3JrIGRldmljZSByZWdpc3RyYXRpb24gb3JkZXIKClsg VXBzdHJlYW0gY29tbWl0IGU4MDQ0NDFjZmUwYjYwZjZjNDMwOTAxOTQ2YTY5YzAxZWFjMDlkZjEg XQoKV2UgY2Fubm90IGJlIHJlZ2lzdGVyaW5nIHRoZSBuZXR3b3JrIGRldmljZSBmaXJzdCwgdGhl biBzZXR0aW5nIGl0cwpjYXJyaWVyIG9mZiBhbmQgZmluYWxseSBjb25uZWN0aW5nIGl0IHRvIGEg UEhZLCBkb2luZyB0aGF0IGxlYXZlcyBhCndpbmRvdyBkdXJpbmcgd2hpY2ggdGhlIGNhcnJpZXIg aXMgYXQgYmVzdCBpbmNvbnNpc3RlbnQsIGFuZCBhdCB3b3JzZQp0aGUgZGV2aWNlIGlzIG5vdCB1 c2FibGUgd2l0aG91dCBhIGRvd24vdXAgc2VxdWVuY2Ugc2luY2UgdGhlIG5ldHdvcmsKZGV2aWNl IGlzIHZpc2libGUgdG8gdXNlciBzcGFjZSB3aXRoIHBvc3NpYmx5IG5vIFBIWSBkZXZpY2UgYXR0 YWNoZWQuCgpSZS1vcmRlciBzdGVwcyBzbyB0aGF0IHRoZXkgbWFrZSBsb2dpY2FsIHNlbnNlLiBU aGlzIGZpeGVzIHNvbWUgZGV2aWNlcwp3aGVyZSB0aGUgcG9ydCB3YXMgbm90IHVzYWJsZSBhZnRl ciBlLmc6IGFuIHVuYmluZCB0aGVuIGJpbmQgb2YgdGhlCmRyaXZlci4KCkZpeGVzOiAwMDcxZjU2 ZTQ2ZGEgKCJkc2E6IFJlZ2lzdGVyIG5ldGRldiBiZWZvcmUgcGh5IikKRml4ZXM6IDkxZGExMWY4 NzBmMCAoIm5ldDogRGlzdHJpYnV0ZWQgU3dpdGNoIEFyY2hpdGVjdHVyZSBwcm90b2NvbCBzdXBw b3J0IikKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvZHNhL3NsYXZlLmMgfCAyOCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2RzYS9zbGF2ZS5jIGIvbmV0L2RzYS9zbGF2ZS5jCmluZGV4IDk1MDdiZDM4Y2Yw NC4uMDc2Nzc1NDAxMjlhIDEwMDY0NAotLS0gYS9uZXQvZHNhL3NsYXZlLmMKKysrIGIvbmV0L2Rz YS9zbGF2ZS5jCkBAIC0xMTgwLDI2ICsxMTgwLDMyIEBAIGludCBkc2Ffc2xhdmVfY3JlYXRlKHN0 cnVjdCBkc2Ffc3dpdGNoICpkcywgc3RydWN0IGRldmljZSAqcGFyZW50LAogCXAtPm9sZF9kdXBs ZXggPSAtMTsKIAogCWRzLT5wb3J0c1twb3J0XS5uZXRkZXYgPSBzbGF2ZV9kZXY7Ci0JcmV0ID0g cmVnaXN0ZXJfbmV0ZGV2KHNsYXZlX2Rldik7Ci0JaWYgKHJldCkgewotCQluZXRkZXZfZXJyKG1h c3RlciwgImVycm9yICVkIHJlZ2lzdGVyaW5nIGludGVyZmFjZSAlc1xuIiwKLQkJCSAgIHJldCwg c2xhdmVfZGV2LT5uYW1lKTsKLQkJZHMtPnBvcnRzW3BvcnRdLm5ldGRldiA9IE5VTEw7Ci0JCWZy ZWVfbmV0ZGV2KHNsYXZlX2Rldik7Ci0JCXJldHVybiByZXQ7Ci0JfQogCiAJbmV0aWZfY2Fycmll cl9vZmYoc2xhdmVfZGV2KTsKIAogCXJldCA9IGRzYV9zbGF2ZV9waHlfc2V0dXAocCwgc2xhdmVf ZGV2KTsKIAlpZiAocmV0KSB7CiAJCW5ldGRldl9lcnIobWFzdGVyLCAiZXJyb3IgJWQgc2V0dGlu ZyB1cCBzbGF2ZSBwaHlcbiIsIHJldCk7Ci0JCXVucmVnaXN0ZXJfbmV0ZGV2KHNsYXZlX2Rldik7 Ci0JCWZyZWVfbmV0ZGV2KHNsYXZlX2Rldik7Ci0JCXJldHVybiByZXQ7CisJCWdvdG8gb3V0X2Zy ZWU7CisJfQorCisJcmV0ID0gcmVnaXN0ZXJfbmV0ZGV2KHNsYXZlX2Rldik7CisJaWYgKHJldCkg eworCQluZXRkZXZfZXJyKG1hc3RlciwgImVycm9yICVkIHJlZ2lzdGVyaW5nIGludGVyZmFjZSAl c1xuIiwKKwkJCSAgIHJldCwgc2xhdmVfZGV2LT5uYW1lKTsKKwkJZ290byBvdXRfcGh5OwogCX0K IAogCXJldHVybiAwOworCitvdXRfcGh5OgorCXBoeV9kaXNjb25uZWN0KHAtPnBoeSk7CisJaWYg KG9mX3BoeV9pc19maXhlZF9saW5rKHAtPmRwLT5kbikpCisJCW9mX3BoeV9kZXJlZ2lzdGVyX2Zp eGVkX2xpbmsocC0+ZHAtPmRuKTsKK291dF9mcmVlOgorCWZyZWVfbmV0ZGV2KHNsYXZlX2Rldik7 CisJZHMtPnBvcnRzW3BvcnRdLm5ldGRldiA9IE5VTEw7CisJcmV0dXJuIHJldDsKIH0KIAogdm9p ZCBkc2Ffc2xhdmVfZGVzdHJveShzdHJ1Y3QgbmV0X2RldmljZSAqc2xhdmVfZGV2KQotLSAKMi4x My42CgoKRnJvbSAyZDg0NWZiNDgwYmNlMmZhMmIzM2NkYzdmNjM4OTc2Mzg2YjQzNWU4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2ds ZS5jb20+CkRhdGU6IFR1ZSwgMjYgU2VwIDIwMTcgMTI6MTk6MzcgLTA0MDAKU3ViamVjdDogW1BB VENIIDM0LzQ4XSBwYWNrZXQ6IGluIHBhY2tldF9kb19iaW5kLCB0ZXN0IGZhbm91dCB3aXRoIGJp bmRfbG9jawogaGVsZAoKWyBVcHN0cmVhbSBjb21taXQgNDk3MTYxM2MxNjM5ZDhlNWYxMDJjNGU3 OTdjM2JmOGY4M2E1YTY5ZSBdCgpPbmNlIGEgc29ja2V0IGhhcyBwby0+ZmFub3V0IHNldCwgaXQg cmVtYWlucyBhIG1lbWJlciBvZiB0aGUgZ3JvdXAKdW50aWwgaXQgaXMgZGVzdHJveWVkLiBUaGUg cHJvdF9ob29rIG11c3QgYmUgY29uc3RhbnQgYW5kIGlkZW50aWNhbAphY3Jvc3Mgc29ja2V0cyBp biB0aGUgZ3JvdXAuCgpJZiBmYW5vdXRfYWRkIHJhY2VzIHdpdGggcGFja2V0X2RvX2JpbmQgYmV0 d2VlbiB0aGUgdGVzdCBvZiBwby0+ZmFub3V0CmFuZCB0YWtpbmcgdGhlIGxvY2ssIHRoZSBiaW5k IGNhbGwgbWF5IG1ha2UgdHlwZSBvciBkZXYgaW5jb25zaXN0ZW50CndpdGggdGhhdCBvZiB0aGUg ZmFub3V0IGdyb3VwLgoKSG9sZCBwby0+YmluZF9sb2NrIHdoZW4gdGVzdGluZyBwby0+ZmFub3V0 IHRvIGF2b2lkIHRoaXMgcmFjZS4KCkkgaGFkIHRvIGludHJvZHVjZSBhcnRpZmljaWFsIGRlbGF5 IChsb2NhbF9iaF9lbmFibGUpIHRvIGFjdHVhbGx5Cm9ic2VydmUgdGhlIHJhY2UuCgpGaXhlczog ZGM5OWY2MDA2OThkICgicGFja2V0OiBBZGQgZmFub3V0IHN1cHBvcnQuIikKU2lnbmVkLW9mZi1i eTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8 IDggKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZf cGFja2V0LmMKaW5kZXggNTJmNWYxNjBhZDJjLi43OTM2MmQ4ZDNhOGUgMTAwNjQ0Ci0tLSBhL25l dC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMzA3 MSwxMyArMzA3MSwxNSBAQCBzdGF0aWMgaW50IHBhY2tldF9kb19iaW5kKHN0cnVjdCBzb2NrICpz aywgY29uc3QgY2hhciAqbmFtZSwgaW50IGlmaW5kZXgsCiAJaW50IHJldCA9IDA7CiAJYm9vbCB1 bmxpc3RlZCA9IGZhbHNlOwogCi0JaWYgKHBvLT5mYW5vdXQpCi0JCXJldHVybiAtRUlOVkFMOwot CiAJbG9ja19zb2NrKHNrKTsKIAlzcGluX2xvY2soJnBvLT5iaW5kX2xvY2spOwogCXJjdV9yZWFk X2xvY2soKTsKIAorCWlmIChwby0+ZmFub3V0KSB7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8g b3V0X3VubG9jazsKKwl9CisKIAlpZiAobmFtZSkgewogCQlkZXYgPSBkZXZfZ2V0X2J5X25hbWVf cmN1KHNvY2tfbmV0KHNrKSwgbmFtZSk7CiAJCWlmICghZGV2KSB7Ci0tIAoyLjEzLjYKCgpGcm9t IDkxMWMyOTMxN2Y2MTk4Y2YwYjdhNjkzMTcxZWQ0ZDUwOGI4MGYyZDEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KRGF0 ZTogVHVlLCAyNiBTZXAgMjAxNyAxMjoyMDoxNyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMzUvNDhd IHBhY2tldDogb25seSB0ZXN0IHBvLT5oYXNfdm5ldF9oZHIgb25jZSBpbiBwYWNrZXRfc25kCgpb IFVwc3RyZWFtIGNvbW1pdCBkYTdjOTU2MTAxNWU5M2QxMGZlNmFhYjczZTkyODhlMGQwOWQ2NWE2 IF0KClBhY2tldCBzb2NrZXQgb3B0aW9uIHBvLT5oYXNfdm5ldF9oZHIgY2FuIGJlIHVwZGF0ZWQg Y29uY3VycmVudGx5IHdpdGgKb3RoZXIgb3BlcmF0aW9ucyBpZiBubyByaW5nIGlzIGF0dGFjaGVk LgoKRG8gbm90IHRlc3QgdGhlIG9wdGlvbiB0d2ljZSBpbiBwYWNrZXRfc25kLCBhcyB0aGUgdmFs dWUgbWF5IGNoYW5nZSBpbgpiZXR3ZWVuIGNhbGxzLiBBIHJhY2Ugb24gc2V0c29ja29wdCBkaXNh YmxlIG1heSBjYXVzZSBhIHBhY2tldCA+IG10dQp0byBiZSBzZW50IHdpdGhvdXQgaGF2aW5nIEdT TyBvcHRpb25zIHNldC4KCkZpeGVzOiBiZmQ1ZjRhM2Q2MDUgKCJwYWNrZXQ6IEFkZCBHU08vY3N1 bSBvZmZsb2FkIHN1cHBvcnQuIikKU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2ls bGVtYkBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQv YWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCmluZGV4IDc5MzYyZDhkM2E4ZS4u MjlkN2I3ZTViMTI4IDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25l dC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTI4NDIsNiArMjg0Miw3IEBAIHN0YXRpYyBpbnQgcGFj a2V0X3NuZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBs ZW4pCiAJc3RydWN0IHZpcnRpb19uZXRfaGRyIHZuZXRfaGRyID0geyAwIH07CiAJaW50IG9mZnNl dCA9IDA7CiAJc3RydWN0IHBhY2tldF9zb2NrICpwbyA9IHBrdF9zayhzayk7CisJYm9vbCBoYXNf dm5ldF9oZHIgPSBmYWxzZTsKIAlpbnQgaGxlbiwgdGxlbiwgbGluZWFyOwogCWludCBleHRyYV9s ZW4gPSAwOwogCkBAIC0yODg1LDYgKzI4ODYsNyBAQCBzdGF0aWMgaW50IHBhY2tldF9zbmQoc3Ry dWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQogCQllcnIg PSBwYWNrZXRfc25kX3ZuZXRfcGFyc2UobXNnLCAmbGVuLCAmdm5ldF9oZHIpOwogCQlpZiAoZXJy KQogCQkJZ290byBvdXRfdW5sb2NrOworCQloYXNfdm5ldF9oZHIgPSB0cnVlOwogCX0KIAogCWlm ICh1bmxpa2VseShzb2NrX2ZsYWcoc2ssIFNPQ0tfTk9GQ1MpKSkgewpAQCAtMjk0Myw3ICsyOTQ1 LDcgQEAgc3RhdGljIGludCBwYWNrZXRfc25kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBt c2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAlza2ItPnByaW9yaXR5ID0gc2stPnNrX3ByaW9yaXR5 OwogCXNrYi0+bWFyayA9IHNvY2tjLm1hcms7CiAKLQlpZiAocG8tPmhhc192bmV0X2hkcikgewor CWlmIChoYXNfdm5ldF9oZHIpIHsKIAkJZXJyID0gdmlydGlvX25ldF9oZHJfdG9fc2tiKHNrYiwg JnZuZXRfaGRyLCB2aW9fbGUoKSk7CiAJCWlmIChlcnIpCiAJCQlnb3RvIG91dF9mcmVlOwotLSAK Mi4xMy42CgoKRnJvbSAwNGQ4ODE1MmZlMGJmMzRjM2ZlNWU3OTIxN2ZlZjE5OTMzMWRmNzMyIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWaXZpZW4gRGlkZWxvdCA8dml2aWVuLmRpZGVs b3RAc2F2b2lyZmFpcmVsaW51eC5jb20+CkRhdGU6IFR1ZSwgMjYgU2VwIDIwMTcgMTQ6NTc6MjEg LTA0MDAKU3ViamVjdDogW1BBVENIIDM2LzQ4XSBuZXQ6IGRzYTogbXY4OGU2eHh4OiBsb2NrIG11 dGV4IHdoZW4gZnJlZWluZyBJUlFzCgpbIFVwc3RyZWFtIGNvbW1pdCBiMzJjYTQ0YTg4ZGVmNGJm OTI2MjZkODc3NzQ5NGM2ZjE0NjM4YzQyIF0KCm12ODhlNnh4eF9nMl9pcnFfZnJlZSBsb2NrcyB0 aGUgcmVnaXN0ZXJzIG11dGV4LCBidXQgbm90Cm12ODhlNnh4eF9nMV9pcnFfZnJlZSwgd2hpY2gg cmVzdWx0cyBpbiBhIHN0YWNrIHRyYWNlIGZyb20KYXNzZXJ0X3JlZ19sb2NrIHdoZW4gdW5sb2Fk aW5nIHRoZSBtdjg4ZTZ4eHggbW9kdWxlLiBGaXggdGhpcy4KCkZpeGVzOiAzNDYwYTU3NzBjZTkg KCJuZXQ6IGRzYTogbXY4OGU2eHh4OiBNYXNrIGcxIGludGVycnVwdHMgYW5kIGZyZWUgaW50ZXJy dXB0IikKU2lnbmVkLW9mZi1ieTogVml2aWVuIERpZGVsb3QgPHZpdmllbi5kaWRlbG90QHNhdm9p cmZhaXJlbGludXguY29tPgpSZXZpZXdlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxs aUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyB8IDIgKysKIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9k c2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCmlu ZGV4IDc0ZTcyZmRlYTlhMi4uYzc1MjcxYzcyMmE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9k c2EvbXY4OGU2eHh4L2NoaXAuYworKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAu YwpAQCAtNDAxOSw3ICs0MDE5LDkgQEAgc3RhdGljIHZvaWQgbXY4OGU2eHh4X3JlbW92ZShzdHJ1 Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpCiAJaWYgKGNoaXAtPmlycSA+IDApIHsKIAkJaWYgKG12 ODhlNnh4eF9oYXMoY2hpcCwgTVY4OEU2WFhYX0ZMQUdfRzJfSU5UKSkKIAkJCW12ODhlNnh4eF9n Ml9pcnFfZnJlZShjaGlwKTsKKwkJbXV0ZXhfbG9jaygmY2hpcC0+cmVnX2xvY2spOwogCQltdjg4 ZTZ4eHhfZzFfaXJxX2ZyZWUoY2hpcCk7CisJCW11dGV4X3VubG9jaygmY2hpcC0+cmVnX2xvY2sp OwogCX0KIH0KIAotLSAKMi4xMy42CgoKRnJvbSA4MjE3OWFiM2QzZThkMTg5MmIyZmEyYjQ4YjRm OTM1ZGFhMzZkNGFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggUGFh c2NoIDxjcGFhc2NoQGFwcGxlLmNvbT4KRGF0ZTogVHVlLCAyNiBTZXAgMjAxNyAxNzozODo1MCAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMzcvNDhdIG5ldDogU2V0IHNrX3Byb3RfY3JlYXRvciB3aGVu IGNsb25pbmcgc29ja2V0cyB0byB0aGUKIHJpZ2h0IHByb3RvCgpbIFVwc3RyZWFtIGNvbW1pdCA5 ZDUzOGZhNjBiYWQ0ZjdiMjMxOTNjODllODQzNzk3YTFjZjcxZWYzIF0KCnNrLT5za19wcm90IGFu ZCBzay0+c2tfcHJvdF9jcmVhdG9yIGNhbiBkaWZmZXIgd2hlbiB0aGUgYXBwIHVzZXMKSVBWNl9B RERSRk9STSAodHJhbnNmb3JtaW5nIGFuIElQdjYtc29ja2V0IHRvIGFuIElQdjQtb25lKS4KV2hp Y2ggaXMgd2h5IHNrX3Byb3RfY3JlYXRvciBpcyB0aGVyZSB0byBtYWtlIHN1cmUgdGhhdCBza19w cm90X2ZyZWUoKQpkb2VzIHRoZSBrbWVtX2NhY2hlX2ZyZWUoKSBvbiB0aGUgcmlnaHQga21lbV9j YWNoZSBzbGFiLgoKTm93LCBpZiBzdWNoIGEgc29ja2V0IGdldHMgdHJhbnNmb3JtZWQgYmFjayB0 byBhIGxpc3RlbmluZyBzb2NrZXQgKHVzaW5nCmNvbm5lY3QoKSB3aXRoIEFGX1VOU1BFQykgd2Ug d2lsbCBhbGxvY2F0ZSBhbiBJUHY0IHRjcF9zb2NrIHRocm91Z2gKc2tfY2xvbmVfbG9jaygpIHdo ZW4gYSBuZXcgY29ubmVjdGlvbiBjb21lcyBpbi4gQnV0IHNrX3Byb3RfY3JlYXRvciB3aWxsCnN0 aWxsIHBvaW50IHRvIHRoZSBJUHY2IGttZW1fY2FjaGUgKGFzIGV2ZXJ5dGhpbmcgZ290IGNvcGll ZCBpbgpza19jbG9uZV9sb2NrKCkpLiBXaGVuIGZyZWVpbmcsIHdlIHdpbGwgdGh1cyBwdXQgdGhp cwptZW1vcnkgYmFjayBpbnRvIHRoZSBJUHY2IGttZW1fY2FjaGUgYWx0aG91Z2ggaXQgd2FzIGFs bG9jYXRlZCBpbiB0aGUKSVB2NCBjYWNoZS4gSSBoYXZlIHNlZW4gbWVtb3J5IGNvcnJ1cHRpb24g aGFwcGVuaW5nIGJlY2F1c2Ugb2YgdGhpcy4KCldpdGggc2x1Yi1kZWJ1Z2dpbmcgYW5kIE1FTUNH X0tNRU0gZW5hYmxlZCB0aGlzIGdpdmVzIHRoZSB3YXJuaW5nCgkiY2FjaGVfZnJvbV9vYmo6IFdy b25nIHNsYWIgY2FjaGUuIFRDUHY2IGJ1dCBvYmplY3QgaXMgZnJvbSBUQ1AiCgpBIEMtcHJvZ3Jh bSB0byB0cmlnZ2VyIHRoaXM6Cgp2b2lkIG1haW4odm9pZCkKewogICAgICAgIGludCBmZCA9IHNv Y2tldChBRl9JTkVUNiwgU09DS19TVFJFQU0sIElQUFJPVE9fVENQKTsKICAgICAgICBpbnQgbmV3 X2ZkLCBuZXdlc3RfZmQsIGNsaWVudF9mZDsKICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42IGJp bmRfYWRkcjsKICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYmluZF9hZGRyNCwgY2xpZW50X2Fk ZHIxLCBjbGllbnRfYWRkcjI7CiAgICAgICAgc3RydWN0IHNvY2thZGRyIHVuc3A7CiAgICAgICAg aW50IHZhbDsKCiAgICAgICAgbWVtc2V0KCZiaW5kX2FkZHIsIDAsIHNpemVvZihiaW5kX2FkZHIp KTsKICAgICAgICBiaW5kX2FkZHIuc2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKICAgICAgICBiaW5k X2FkZHIuc2luNl9wb3J0ID0gbnRvaHMoNDI0MjQpOwoKICAgICAgICBtZW1zZXQoJmNsaWVudF9h ZGRyMSwgMCwgc2l6ZW9mKGNsaWVudF9hZGRyMSkpOwogICAgICAgIGNsaWVudF9hZGRyMS5zaW5f ZmFtaWx5ID0gQUZfSU5FVDsKICAgICAgICBjbGllbnRfYWRkcjEuc2luX3BvcnQgPSBudG9ocyg0 MjQyNCk7CiAgICAgICAgY2xpZW50X2FkZHIxLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcigi MTI3LjAuMC4xIik7CgogICAgICAgIG1lbXNldCgmY2xpZW50X2FkZHIyLCAwLCBzaXplb2YoY2xp ZW50X2FkZHIyKSk7CiAgICAgICAgY2xpZW50X2FkZHIyLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwog ICAgICAgIGNsaWVudF9hZGRyMi5zaW5fcG9ydCA9IG50b2hzKDQyNDIxKTsKICAgICAgICBjbGll bnRfYWRkcjIuc2luX2FkZHIuc19hZGRyID0gaW5ldF9hZGRyKCIxMjcuMC4wLjEiKTsKCiAgICAg ICAgbWVtc2V0KCZ1bnNwLCAwLCBzaXplb2YodW5zcCkpOwogICAgICAgIHVuc3Auc2FfZmFtaWx5 ID0gQUZfVU5TUEVDOwoKICAgICAgICBiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyICopJmJpbmRf YWRkciwgc2l6ZW9mKGJpbmRfYWRkcikpOwoKICAgICAgICBsaXN0ZW4oZmQsIDUpOwoKICAgICAg ICBjbGllbnRfZmQgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIElQUFJPVE9fVENQKTsK ICAgICAgICBjb25uZWN0KGNsaWVudF9mZCwgKHN0cnVjdCBzb2NrYWRkciAqKSZjbGllbnRfYWRk cjEsIHNpemVvZihjbGllbnRfYWRkcjEpKTsKICAgICAgICBuZXdfZmQgPSBhY2NlcHQoZmQsIE5V TEwsIE5VTEwpOwogICAgICAgIGNsb3NlKGZkKTsKCiAgICAgICAgdmFsID0gQUZfSU5FVDsKICAg ICAgICBzZXRzb2Nrb3B0KG5ld19mZCwgU09MX0lQVjYsIElQVjZfQUREUkZPUk0sICZ2YWwsIHNp emVvZih2YWwpKTsKCiAgICAgICAgY29ubmVjdChuZXdfZmQsICZ1bnNwLCBzaXplb2YodW5zcCkp OwoKICAgICAgICBtZW1zZXQoJmJpbmRfYWRkcjQsIDAsIHNpemVvZihiaW5kX2FkZHI0KSk7CiAg ICAgICAgYmluZF9hZGRyNC5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKICAgICAgICBiaW5kX2FkZHI0 LnNpbl9wb3J0ID0gbnRvaHMoNDI0MjEpOwogICAgICAgIGJpbmQobmV3X2ZkLCAoc3RydWN0IHNv Y2thZGRyICopJmJpbmRfYWRkcjQsIHNpemVvZihiaW5kX2FkZHI0KSk7CgogICAgICAgIGxpc3Rl bihuZXdfZmQsIDUpOwoKICAgICAgICBjbGllbnRfZmQgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19T VFJFQU0sIElQUFJPVE9fVENQKTsKICAgICAgICBjb25uZWN0KGNsaWVudF9mZCwgKHN0cnVjdCBz b2NrYWRkciAqKSZjbGllbnRfYWRkcjIsIHNpemVvZihjbGllbnRfYWRkcjIpKTsKCiAgICAgICAg bmV3ZXN0X2ZkID0gYWNjZXB0KG5ld19mZCwgTlVMTCwgTlVMTCk7CiAgICAgICAgY2xvc2UobmV3 X2ZkKTsKCiAgICAgICAgY2xvc2UoY2xpZW50X2ZkKTsKICAgICAgICBjbG9zZShuZXdfZmQpOwp9 CgpBcyBmYXIgYXMgSSBjYW4gc2VlLCB0aGlzIGJ1ZyBoYXMgYmVlbiB0aGVyZSBzaW5jZSB0aGUg YmVnaW5uaW5nIG9mIHRoZQpnaXQtZGF5cy4KClNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBQYWFz Y2ggPGNwYWFzY2hAYXBwbGUuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvc29jay5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NvY2suYyBiL25ldC9jb3JlL3Nv Y2suYwppbmRleCBhYzJhNDA0YzczZWIuLmIyMjIyODkwMWExMSAxMDA2NDQKLS0tIGEvbmV0L2Nv cmUvc29jay5jCisrKyBiL25ldC9jb3JlL3NvY2suYwpAQCAtMTY0Niw2ICsxNjQ2LDggQEAgc3Ry dWN0IHNvY2sgKnNrX2Nsb25lX2xvY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBjb25zdCBnZnBf dCBwcmlvcml0eSkKIAogCQlzb2NrX2NvcHkobmV3c2ssIHNrKTsKIAorCQluZXdzay0+c2tfcHJv dF9jcmVhdG9yID0gc2stPnNrX3Byb3Q7CisKIAkJLyogU0FOSVRZICovCiAJCWlmIChsaWtlbHko bmV3c2stPnNrX25ldF9yZWZjbnQpKQogCQkJZ2V0X25ldChzb2NrX25ldChuZXdzaykpOwotLSAK Mi4xMy42CgoKRnJvbSA0N2JjMzdlNWU5Y2EwMTEwMGQ5N2ZmYWNjMjU3Zjk2YjllNTA0ODFlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb2kgRGF5YW4gPHJvaWRAbWVsbGFub3guY29t PgpEYXRlOiBNb24sIDIxIEF1ZyAyMDE3IDEyOjA0OjUwICswMzAwClN1YmplY3Q6IFtQQVRDSCAz OC80OF0gbmV0L21seDVlOiBJUG9JQiwgRml4IGFjY2VzcyB0byBpbnZhbGlkIG1lbW9yeSBhZGRy ZXNzCgpbIFVwc3RyZWFtIGNvbW1pdCAzOGU4YTVjMDQwZDNlYzk5YTgzNTFjNjg4ZGNkZjBmNTQ5 NjExNTY1IF0KCldoZW4gY2xlYW5pbmcgcmRtYSBuZXRkZXZpY2Ugd2UgbmVlZCB0byBzYXZlIHRo ZSBtZGV2IHBvaW50ZXIKYmVjYXVzZSBwcml2IGlzIHJlbGVhc2VkIHdoZW4gd2UgcmVsZWFzZSBu ZXRkZXYuCgpUaGlzIGJ1ZyB3YXMgZm91bmQgdXNpbmcgdGhlIGtlcm5lbCBhZGRyZXNzIHNhbml0 aXplciAoS0FTQU4pLgp1c2UtYWZ0ZXItZnJlZSBpbiBtbHg1X3JkbWFfbmV0ZGV2X2ZyZWUrMHhl My8weDEwMCBbbWx4NV9jb3JlXQoKRml4ZXM6IDQ4OTM1YmJiN2FlOCAoIm5ldC9tbHg1ZTogSVBv SUIsIEFkZCBuZXRkZXZpY2UgcHJvZmlsZSBza2VsZXRvbiIpClNpZ25lZC1vZmYtYnk6IFJvaSBE YXlhbiA8cm9pZEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0 ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVs bGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9p cG9pYi9pcG9pYi5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvaXBvaWIvaXBvaWIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9pcG9pYi9pcG9pYi5jCmluZGV4IDg1Mjk4MDUxYTNlNC4uMTQ1ZTM5MmFiODQ5IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIv aXBvaWIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBv aWIvaXBvaWIuYwpAQCAtNTcyLDEyICs1NzIsMTMgQEAgdm9pZCBtbHg1X3JkbWFfbmV0ZGV2X2Zy ZWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIHsKIAlzdHJ1Y3QgbWx4NWVfcHJpdiAgICAg ICAgICAqcHJpdiAgICA9IG1seDVpX2Vwcml2KG5ldGRldik7CiAJY29uc3Qgc3RydWN0IG1seDVl X3Byb2ZpbGUgKnByb2ZpbGUgPSBwcml2LT5wcm9maWxlOworCXN0cnVjdCBtbHg1X2NvcmVfZGV2 ICAgICAgICptZGV2ICAgID0gcHJpdi0+bWRldjsKIAogCW1seDVlX2RldGFjaF9uZXRkZXYocHJp dik7CiAJcHJvZmlsZS0+Y2xlYW51cChwcml2KTsKIAlkZXN0cm95X3dvcmtxdWV1ZShwcml2LT53 cSk7CiAJZnJlZV9uZXRkZXYobmV0ZGV2KTsKIAotCW1seDVlX2Rlc3Ryb3lfbWRldl9yZXNvdXJj ZXMocHJpdi0+bWRldik7CisJbWx4NWVfZGVzdHJveV9tZGV2X3Jlc291cmNlcyhtZGV2KTsKIH0K IEVYUE9SVF9TWU1CT0wobWx4NV9yZG1hX25ldGRldl9mcmVlKTsKLS0gCjIuMTMuNgoKCkZyb20g N2JmYTQ1MTUxMGNiNDRkNWVmOGY0YzE5MDc5Y2NkYTRmNmU5NDdiYiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogIkphc29uIEEuIERvbmVuZmVsZCIgPEphc29uQHp4MmM0LmNvbT4KRGF0 ZTogVGh1LCAyOCBTZXAgMjAxNyAwMDo0MTo0NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzkvNDhd IG5ldGxpbms6IGRvIG5vdCBwcm9jZWVkIGlmIGR1bXAncyBzdGFydCgpIGVycnMKClsgVXBzdHJl YW0gY29tbWl0IGZlZjAwMzVjMGYzMTMyMmQ0MTdkMTk1NGJiYTVhYjk1OWJmOTExODMgXQoKRHJp dmVycyB0aGF0IHVzZSB0aGUgc3RhcnQgbWV0aG9kIGZvciBuZXRsaW5rIGR1bXBpbmcgcmVseSBv biBkdW1waXQgbm90CmJlaW5nIGNhbGxlZCBpZiBzdGFydCBmYWlscy4gRm9yIGV4YW1wbGUsIGls YV94bGF0LmMgYWxsb2NhdGVzIG1lbW9yeQphbmQgYXNzaWducyBpdCB0byBjYi0+YXJnc1swXSBp biBpdHMgc3RhcnQoKSBmdW5jdGlvbi4gSXQgbWlnaHQgZmFpbCB0bwpkbyB0aGF0IGFuZCByZXR1 cm4gLUVOT01FTSBpbnN0ZWFkLiBIb3dldmVyLCBldmVuIHdoZW4gcmV0dXJuaW5nIGFuCmVycm9y LCBkdW1waXQgd2lsbCBiZSBjYWxsZWQsIHdoaWNoLCBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgcXVp Y2tseQpkZXJlZmVyZW5jZXMgdGhlIG1lbW9yeSBpbiBjYi0+YXJnc1swXSwgd2hpY2ggd2lsbCBP T1BTIHRoZSBrZXJuZWwuIFRoaXMKaXMgYnV0IG9uZSBleGFtcGxlIG9mIGhvdyB0aGlzIGdvZXMg d3JvbmcuCgpTaW5jZSBzdGFydCgpIGhhcyBhbHdheXMgYmVlbiBhIGZ1bmN0aW9uIHdpdGggYW4g aW50IHJldHVybiB0eXBlLCBpdAp0aGVyZWZvcmUgbWFrZXMgc2Vuc2UgdG8gdXNlIGl0IHByb3Bl cmx5LCByYXRoZXIgdGhhbiBpZ25vcmluZyBpdC4gVGhpcwpwYXRjaCB0aHVzIHJldHVybnMgZWFy bHkgYW5kIGRvZXMgbm90IGNhbGwgZHVtcGl0KCkgd2hlbiBzdGFydCgpIGZhaWxzLgoKU2lnbmVk LW9mZi1ieTogSmFzb24gQS4gRG9uZW5mZWxkIDxKYXNvbkB6eDJjNC5jb20+CkNjOiBKb2hhbm5l cyBCZXJnIDxqb2hhbm5lc0BzaXBzb2x1dGlvbnMubmV0PgpSZXZpZXdlZC1ieTogSm9oYW5uZXMg QmVyZyA8am9oYW5uZXNAc2lwc29sdXRpb25zLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsu YyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgYi9uZXQvbmV0bGlu ay9hZl9uZXRsaW5rLmMKaW5kZXggNWFjZWU0OWRiOTBiLi43ZTc5NGFkNTBjYjAgMTAwNjQ0Ci0t LSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5r LmMKQEAgLTIyNjIsMTAgKzIyNjIsMTMgQEAgaW50IF9fbmV0bGlua19kdW1wX3N0YXJ0KHN0cnVj dCBzb2NrICpzc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAKIAltdXRleF91bmxvY2sobmxrLT5j Yl9tdXRleCk7CiAKKwlyZXQgPSAwOwogCWlmIChjYi0+c3RhcnQpCi0JCWNiLT5zdGFydChjYik7 CisJCXJldCA9IGNiLT5zdGFydChjYik7CisKKwlpZiAoIXJldCkKKwkJcmV0ID0gbmV0bGlua19k dW1wKHNrKTsKIAotCXJldCA9IG5ldGxpbmtfZHVtcChzayk7CiAJc29ja19wdXQoc2spOwogCiAJ aWYgKHJldCkKLS0gCjIuMTMuNgoKCkZyb20gMGZmMzE5NTBmOTVkYTQ0YzU4M2E2YzRjZmE1ZDFl NmNmMTM0M2YwMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2ll bi54aW5AZ21haWwuY29tPgpEYXRlOiBUaHUsIDI4IFNlcCAyMDE3IDEzOjIzOjUwICswODAwClN1 YmplY3Q6IFtQQVRDSCA0MC80OF0gaXA2X2dyZTogaXA2Z3JlX3RhcCBkZXZpY2Ugc2hvdWxkIGtl ZXAgZHN0CgpbIFVwc3RyZWFtIGNvbW1pdCAyZDQwNTU3Y2M3MDJlZDhlNWVkZDliZDQyMjIzM2Y4 NjY1MmQ5MzJlIF0KClRoZSBwYXRjaCAnaXBfZ3JlOiBpcGdyZV90YXAgZGV2aWNlIHNob3VsZCBr ZWVwIGRzdCcgZml4ZWQKYSBpc3N1ZSB0aGF0IGlwZ3JlX3RhcCBtdHUgY291bGRuJ3QgYmUgdXBk YXRlZCBpbiB0eCBwYXRoLgoKVGhlIHNhbWUgZml4IGlzIG5lZWRlZCBmb3IgaXA2Z3JlX3RhcCBh cyB3ZWxsLgoKU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjYvaXA2X2dyZS5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykK CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKaW5k ZXggMjBmNjZmNGM5NDYwLi4xNjAyYjQ5MWIyODEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9n cmUuYworKysgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTEzMTEsNiArMTMxMSw3IEBAIHN0YXRp YyB2b2lkIGlwNmdyZV90YXBfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXYtPmZl YXR1cmVzIHw9IE5FVElGX0ZfTkVUTlNfTE9DQUw7CiAJZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZf VFhfU0tCX1NIQVJJTkc7CiAJZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9MSVZFX0FERFJfQ0hBTkdF OworCW5ldGlmX2tlZXBfZHN0KGRldik7CiB9CiAKIHN0YXRpYyBib29sIGlwNmdyZV9uZXRsaW5r X2VuY2FwX3Bhcm1zKHN0cnVjdCBubGF0dHIgKmRhdGFbXSwKLS0gCjIuMTMuNgoKCkZyb20gOGI0 MTVjODBjMjk0Njg4YjUyMGZhYjIxYjJjMjVjYjlkYjBkZTY0NyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBUaHUsIDI4 IFNlcCAyMDE3IDEzOjI0OjA3ICswODAwClN1YmplY3Q6IFtQQVRDSCA0MS80OF0gaXA2X3R1bm5l bDogdXBkYXRlIG10dSBwcm9wZXJseSBmb3IgQVJQSFJEX0VUSEVSIHR1bm5lbAogZGV2aWNlIGlu IHR4IHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IGQ0MWJiMzNiYTMzYjhmOGRlYmU1NGVkMzZiZTY5 MjVlYjQ5NmUzNTQgXQoKTm93IHdoZW4gdXBkYXRpbmcgbXR1IGluIHR4IHBhdGgsIGl0IGRvZXNu J3QgY29uc2lkZXIgQVJQSFJEX0VUSEVSIHR1bm5lbApkZXZpY2UsIGxpa2UgaXA2Z3JlX3RhcCB0 dW5uZWwsIGZvciB3aGljaCBpdCBzaG91bGQgYWxzbyBzdWJ0cmFjdCBldGhlcgpoZWFkZXIgdG8g Z2V0IHRoZSBjb3JyZWN0IG10dS4KClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGlu QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl90dW5uZWwuYyB8IDUgKysrLS0KIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lw djYvaXA2X3R1bm5lbC5jIGIvbmV0L2lwdjYvaXA2X3R1bm5lbC5jCmluZGV4IDk4NjQ3NDAyYjMz OS4uNDQyNWI0NDExYmI5IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfdHVubmVsLmMKKysrIGIv bmV0L2lwdjYvaXA2X3R1bm5lbC5jCkBAIC0xMDQzLDYgKzEwNDMsNyBAQCBpbnQgaXA2X3RubF94 bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIF9fdTggZHNm aWVsZCwKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QgPSBOVUxMLCAqbmRzdCA9IE5VTEw7CiAJc3Ry dWN0IG5ldF9kZXZpY2UgKnRkZXY7CiAJaW50IG10dTsKKwl1bnNpZ25lZCBpbnQgZXRoX2hsZW4g PSB0LT5kZXYtPnR5cGUgPT0gQVJQSFJEX0VUSEVSID8gRVRIX0hMRU4gOiAwOwogCXVuc2lnbmVk IGludCBwc2hfaGxlbiA9IHNpemVvZihzdHJ1Y3QgaXB2NmhkcikgKyB0LT5lbmNhcF9obGVuOwog CXVuc2lnbmVkIGludCBtYXhfaGVhZHJvb20gPSBwc2hfaGxlbjsKIAlib29sIHVzZV9jYWNoZSA9 IGZhbHNlOwpAQCAtMTEyNCw3ICsxMTI1LDcgQEAgaW50IGlwNl90bmxfeG1pdChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBfX3U4IGRzZmllbGQsCiAJCQkJICAg ICB0LT5wYXJtcy5uYW1lKTsKIAkJZ290byB0eF9lcnJfZHN0X3JlbGVhc2U7CiAJfQotCW10dSA9 IGRzdF9tdHUoZHN0KSAtIHBzaF9obGVuIC0gdC0+dHVuX2hsZW47CisJbXR1ID0gZHN0X210dShk c3QpIC0gZXRoX2hsZW4gLSBwc2hfaGxlbiAtIHQtPnR1bl9obGVuOwogCWlmIChlbmNhcF9saW1p dCA+PSAwKSB7CiAJCW1heF9oZWFkcm9vbSArPSA4OwogCQltdHUgLT0gODsKQEAgLTExMzMsNyAr MTEzNCw3IEBAIGludCBpcDZfdG5sX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgX191OCBkc2ZpZWxkLAogCQltdHUgPSBJUFY2X01JTl9NVFU7CiAJaWYg KHNrYl9kc3Qoc2tiKSAmJiAhdC0+cGFybXMuY29sbGVjdF9tZCkKIAkJc2tiX2RzdChza2IpLT5v cHMtPnVwZGF0ZV9wbXR1KHNrYl9kc3Qoc2tiKSwgTlVMTCwgc2tiLCBtdHUpOwotCWlmIChza2It PmxlbiAtIHQtPnR1bl9obGVuID4gbXR1ICYmICFza2JfaXNfZ3NvKHNrYikpIHsKKwlpZiAoc2ti LT5sZW4gLSB0LT50dW5faGxlbiAtIGV0aF9obGVuID4gbXR1ICYmICFza2JfaXNfZ3NvKHNrYikp IHsKIAkJKnBtdHUgPSBtdHU7CiAJCWVyciA9IC1FTVNHU0laRTsKIAkJZ290byB0eF9lcnJfZHN0 X3JlbGVhc2U7Ci0tIAoyLjEzLjYKCgpGcm9tIDc5NWI1MDRlZmRiZDhmNDhmZGI0ZDRmOGRkNjVm MDUxNTc0YWFmYjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhb2xvIEFiZW5pIDxw YWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogVGh1LCAyOCBTZXAgMjAxNyAxNTo1MTozNiArMDIwMApT dWJqZWN0OiBbUEFUQ0ggNDIvNDhdIElQdjQ6IGVhcmx5IGRlbXV4IGNhbiByZXR1cm4gYW4gZXJy b3IgY29kZQoKWyBVcHN0cmVhbSBjb21taXQgNzQ4NzQ0OWM4NmM2NTIwMmIzYjcyNWM0NTI0Y2I0 OGRkNjVlNGU2ZiBdCgpDdXJyZW50bHkgbm8gZXJyb3IgaXMgZW1pdHRlZCwgYnV0IHRoaXMgaW5m cmFzdHJ1Y3R1cmUgd2lsbAp1c2VkIGJ5IHRoZSBuZXh0IHBhdGNoIHRvIGFsbG93IHNvdXJjZSBh ZGRyZXNzIHZhbGlkYXRpb24KZm9yIG1jYXN0IHNvY2tldHMuClNpbmNlIGVhcmx5IGRlbXV4IGNh biBkbyBhIHJvdXRlIGxvb2t1cCBhbmQgYW4gaXB2NCByb3V0ZQpsb29rdXAgY2FuIHJldHVybiBh biBlcnJvciBjb2RlIHRoaXMgaXMgY29uc2lzdGVudCB3aXRoIHRoZQpjdXJyZW50IGlwdjQgcm91 dGUgaW5mcmFzdHJ1Y3R1cmUuCgpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJl ZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9wcm90b2NvbC5oIHwgIDQgKystLQogaW5jbHVkZS9uZXQv dGNwLmggICAgICB8ICAyICstCiBpbmNsdWRlL25ldC91ZHAuaCAgICAgIHwgIDIgKy0KIG5ldC9p cHY0L2lwX2lucHV0LmMgICAgfCAyNSArKysrKysrKysrKysrKystLS0tLS0tLS0tCiBuZXQvaXB2 NC90Y3BfaXB2NC5jICAgIHwgIDkgKysrKystLS0tCiBuZXQvaXB2NC91ZHAuYyAgICAgICAgIHwg MTEgKysrKysrLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMjMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvcHJvdG9jb2wuaCBiL2luY2x1ZGUv bmV0L3Byb3RvY29sLmgKaW5kZXggNjViYTMzNWIwZTdlLi40ZmM3NWY3YWUyM2IgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbmV0L3Byb3RvY29sLmgKKysrIGIvaW5jbHVkZS9uZXQvcHJvdG9jb2wuaApA QCAtMzksOCArMzksOCBAQAogCiAvKiBUaGlzIGlzIHVzZWQgdG8gcmVnaXN0ZXIgcHJvdG9jb2xz LiAqLwogc3RydWN0IG5ldF9wcm90b2NvbCB7Ci0Jdm9pZAkJCSgqZWFybHlfZGVtdXgpKHN0cnVj dCBza19idWZmICpza2IpOwotCXZvaWQgICAgICAgICAgICAgICAgICAgICgqZWFybHlfZGVtdXhf aGFuZGxlcikoc3RydWN0IHNrX2J1ZmYgKnNrYik7CisJaW50CQkJKCplYXJseV9kZW11eCkoc3Ry dWN0IHNrX2J1ZmYgKnNrYik7CisJaW50CQkJKCplYXJseV9kZW11eF9oYW5kbGVyKShzdHJ1Y3Qg c2tfYnVmZiAqc2tiKTsKIAlpbnQJCQkoKmhhbmRsZXIpKHN0cnVjdCBza19idWZmICpza2IpOwog CXZvaWQJCQkoKmVycl9oYW5kbGVyKShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgaW5mbyk7CiAJ dW5zaWduZWQgaW50CQlub19wb2xpY3k6MSwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjcC5o IGIvaW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggZjY0MmEzOWY5ZWVlLi40ODk3ODEyNTk0N2IgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3RjcC5oCisrKyBiL2luY2x1ZGUvbmV0L3RjcC5oCkBAIC0z NDcsNyArMzQ3LDcgQEAgdm9pZCB0Y3BfdjRfZXJyKHN0cnVjdCBza19idWZmICpza2IsIHUzMik7 CiAKIHZvaWQgdGNwX3NodXRkb3duKHN0cnVjdCBzb2NrICpzaywgaW50IGhvdyk7CiAKLXZvaWQg dGNwX3Y0X2Vhcmx5X2RlbXV4KHN0cnVjdCBza19idWZmICpza2IpOworaW50IHRjcF92NF9lYXJs eV9kZW11eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIGludCB0Y3BfdjRfcmN2KHN0cnVjdCBza19i dWZmICpza2IpOwogCiBpbnQgdGNwX3Y0X3R3X3JlbWVtYmVyX3N0YW1wKHN0cnVjdCBpbmV0X3Rp bWV3YWl0X3NvY2sgKnR3KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3VkcC5oIGIvaW5jbHVk ZS9uZXQvdWRwLmgKaW5kZXggNjI2YzJkOGE3MGM1Li4xZTZiMjQ3NmQ0MjcgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbmV0L3VkcC5oCisrKyBiL2luY2x1ZGUvbmV0L3VkcC5oCkBAIC0yNTksNyArMjU5 LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2tfYnVmZiAqc2tiX3JlY3ZfdWRwKHN0cnVjdCBz b2NrICpzaywgdW5zaWduZWQgaW50IGZsYWdzLAogCXJldHVybiBfX3NrYl9yZWN2X3VkcChzaywg ZmxhZ3MsIG5vYmxvY2ssICZwZWVrZWQsICZvZmYsIGVycik7CiB9CiAKLXZvaWQgdWRwX3Y0X2Vh cmx5X2RlbXV4KHN0cnVjdCBza19idWZmICpza2IpOworaW50IHVkcF92NF9lYXJseV9kZW11eChz dHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIGJvb2wgdWRwX3NrX3J4X2RzdF9zZXQoc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpOwogaW50IHVkcF9nZXRfcG9ydChzdHJ1Y3Qgc29j ayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0sCiAJCSBpbnQgKCpzYWRkcl9jbXApKGNvbnN0IHN0 cnVjdCBzb2NrICosCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9pbnB1dC5jIGIvbmV0L2lwdjQv aXBfaW5wdXQuYwppbmRleCBmYTJkYzhmNjkyYzYuLjU3ZmMxM2M2YWIyYiAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvaXBfaW5wdXQuYworKysgYi9uZXQvaXB2NC9pcF9pbnB1dC5jCkBAIC0zMTEsOSAr MzExLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpcF9yY3Zfb3B0aW9ucyhzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogc3RhdGljIGludCBpcF9yY3ZfZmluaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCWNvbnN0IHN0cnVjdCBpcGhkciAq aXBoID0gaXBfaGRyKHNrYik7Ci0Jc3RydWN0IHJ0YWJsZSAqcnQ7CisJaW50ICgqZWRlbXV4KShz dHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gc2tiLT5kZXY7 Ci0Jdm9pZCAoKmVkZW11eCkoc3RydWN0IHNrX2J1ZmYgKnNrYik7CisJc3RydWN0IHJ0YWJsZSAq cnQ7CisJaW50IGVycjsKIAogCS8qIGlmIGluZ3Jlc3MgZGV2aWNlIGlzIGVuc2xhdmVkIHRvIGFu IEwzIG1hc3RlciBkZXZpY2UgcGFzcyB0aGUKIAkgKiBza2IgdG8gaXRzIGhhbmRsZXIgZm9yIHBy b2Nlc3NpbmcKQEAgLTMzMSw3ICszMzIsOSBAQCBzdGF0aWMgaW50IGlwX3Jjdl9maW5pc2goc3Ry dWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAKIAkJ aXBwcm90ID0gcmN1X2RlcmVmZXJlbmNlKGluZXRfcHJvdG9zW3Byb3RvY29sXSk7CiAJCWlmIChp cHByb3QgJiYgKGVkZW11eCA9IFJFQURfT05DRShpcHByb3QtPmVhcmx5X2RlbXV4KSkpIHsKLQkJ CWVkZW11eChza2IpOworCQkJZXJyID0gZWRlbXV4KHNrYik7CisJCQlpZiAodW5saWtlbHkoZXJy KSkKKwkJCQlnb3RvIGRyb3BfZXJyb3I7CiAJCQkvKiBtdXN0IHJlbG9hZCBpcGgsIHNrYi0+aGVh ZCBtaWdodCBoYXZlIGNoYW5nZWQgKi8KIAkJCWlwaCA9IGlwX2hkcihza2IpOwogCQl9CkBAIC0z NDIsMTMgKzM0NSwxMCBAQCBzdGF0aWMgaW50IGlwX3Jjdl9maW5pc2goc3RydWN0IG5ldCAqbmV0 LCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJICoJaG93IHRoZSBwYWNr ZXQgdHJhdmVscyBpbnNpZGUgTGludXggbmV0d29ya2luZy4KIAkgKi8KIAlpZiAoIXNrYl92YWxp ZF9kc3Qoc2tiKSkgewotCQlpbnQgZXJyID0gaXBfcm91dGVfaW5wdXRfbm9yZWYoc2tiLCBpcGgt PmRhZGRyLCBpcGgtPnNhZGRyLAotCQkJCQkgICAgICAgaXBoLT50b3MsIGRldik7Ci0JCWlmICh1 bmxpa2VseShlcnIpKSB7Ci0JCQlpZiAoZXJyID09IC1FWERFVikKLQkJCQlfX05FVF9JTkNfU1RB VFMobmV0LCBMSU5VWF9NSUJfSVBSUEZJTFRFUik7Ci0JCQlnb3RvIGRyb3A7Ci0JCX0KKwkJZXJy ID0gaXBfcm91dGVfaW5wdXRfbm9yZWYoc2tiLCBpcGgtPmRhZGRyLCBpcGgtPnNhZGRyLAorCQkJ CQkgICBpcGgtPnRvcywgZGV2KTsKKwkJaWYgKHVubGlrZWx5KGVycikpCisJCQlnb3RvIGRyb3Bf ZXJyb3I7CiAJfQogCiAjaWZkZWYgQ09ORklHX0lQX1JPVVRFX0NMQVNTSUQKQEAgLTM5OSw2ICsz OTksMTEgQEAgc3RhdGljIGludCBpcF9yY3ZfZmluaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogZHJvcDoKIAlrZnJlZV9za2Ioc2tiKTsK IAlyZXR1cm4gTkVUX1JYX0RST1A7CisKK2Ryb3BfZXJyb3I6CisJaWYgKGVyciA9PSAtRVhERVYp CisJCV9fTkVUX0lOQ19TVEFUUyhuZXQsIExJTlVYX01JQl9JUFJQRklMVEVSKTsKKwlnb3RvIGRy b3A7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaXB2NC5jIGIvbmV0L2lwdjQv dGNwX2lwdjQuYwppbmRleCAyMTAyMmRiN2EyYTYuLmIxNDQxYmM4MTkyZiAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvdGNwX2lwdjQuYworKysgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCkBAIC0xNTA0LDIz ICsxNTA0LDIzIEBAIGludCB0Y3BfdjRfZG9fcmN2KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNr X2J1ZmYgKnNrYikKIH0KIEVYUE9SVF9TWU1CT0wodGNwX3Y0X2RvX3Jjdik7CiAKLXZvaWQgdGNw X3Y0X2Vhcmx5X2RlbXV4KHN0cnVjdCBza19idWZmICpza2IpCitpbnQgdGNwX3Y0X2Vhcmx5X2Rl bXV4KHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJY29uc3Qgc3RydWN0IGlwaGRyICppcGg7CiAJ Y29uc3Qgc3RydWN0IHRjcGhkciAqdGg7CiAJc3RydWN0IHNvY2sgKnNrOwogCiAJaWYgKHNrYi0+ cGt0X3R5cGUgIT0gUEFDS0VUX0hPU1QpCi0JCXJldHVybjsKKwkJcmV0dXJuIDA7CiAKIAlpZiAo IXBza2JfbWF5X3B1bGwoc2tiLCBza2JfdHJhbnNwb3J0X29mZnNldChza2IpICsgc2l6ZW9mKHN0 cnVjdCB0Y3BoZHIpKSkKLQkJcmV0dXJuOworCQlyZXR1cm4gMDsKIAogCWlwaCA9IGlwX2hkcihz a2IpOwogCXRoID0gdGNwX2hkcihza2IpOwogCiAJaWYgKHRoLT5kb2ZmIDwgc2l6ZW9mKHN0cnVj dCB0Y3BoZHIpIC8gNCkKLQkJcmV0dXJuOworCQlyZXR1cm4gMDsKIAogCXNrID0gX19pbmV0X2xv b2t1cF9lc3RhYmxpc2hlZChkZXZfbmV0KHNrYi0+ZGV2KSwgJnRjcF9oYXNoaW5mbywKIAkJCQkg ICAgICAgaXBoLT5zYWRkciwgdGgtPnNvdXJjZSwKQEAgLTE1MzksNiArMTUzOSw3IEBAIHZvaWQg dGNwX3Y0X2Vhcmx5X2RlbXV4KHN0cnVjdCBza19idWZmICpza2IpCiAJCQkJc2tiX2RzdF9zZXRf bm9yZWYoc2tiLCBkc3QpOwogCQl9CiAJfQorCXJldHVybiAwOwogfQogCiAvKiBQYWNrZXQgaXMg YWRkZWQgdG8gVkotc3R5bGUgcHJlcXVldWUgZm9yIHByb2Nlc3NpbmcgaW4gcHJvY2VzcwpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCA5NzllNGQ4NTI2 YmEuLmFlNDM3ZTEyM2I4MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lw djQvdWRwLmMKQEAgLTIyMTcsNyArMjIxNyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqX191ZHA0 X2xpYl9kZW11eF9sb29rdXAoc3RydWN0IG5ldCAqbmV0LAogCXJldHVybiBOVUxMOwogfQogCi12 b2lkIHVkcF92NF9lYXJseV9kZW11eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoraW50IHVkcF92NF9l YXJseV9kZW11eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0cnVjdCBuZXQgKm5ldCA9IGRl dl9uZXQoc2tiLT5kZXYpOwogCWNvbnN0IHN0cnVjdCBpcGhkciAqaXBoOwpAQCAtMjIyOSw3ICsy MjI5LDcgQEAgdm9pZCB1ZHBfdjRfZWFybHlfZGVtdXgoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAog CS8qIHZhbGlkYXRlIHRoZSBwYWNrZXQgKi8KIAlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBza2Jf dHJhbnNwb3J0X29mZnNldChza2IpICsgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpKSkKLQkJcmV0dXJu OworCQlyZXR1cm4gMDsKIAogCWlwaCA9IGlwX2hkcihza2IpOwogCXVoID0gdWRwX2hkcihza2Ip OwpAQCAtMjIzOSwxNCArMjIzOSwxNCBAQCB2b2lkIHVkcF92NF9lYXJseV9kZW11eChzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogCQlzdHJ1Y3QgaW5fZGV2aWNlICppbl9kZXYgPSBfX2luX2Rldl9nZXRf cmN1KHNrYi0+ZGV2KTsKIAogCQlpZiAoIWluX2RldikKLQkJCXJldHVybjsKKwkJCXJldHVybiAw OwogCiAJCS8qIHdlIGFyZSBzdXBwb3NlZCB0byBhY2NlcHQgYmNhc3QgcGFja2V0cyAqLwogCQlp ZiAoc2tiLT5wa3RfdHlwZSA9PSBQQUNLRVRfTVVMVElDQVNUKSB7CiAJCQlvdXJzID0gaXBfY2hl Y2tfbWNfcmN1KGluX2RldiwgaXBoLT5kYWRkciwgaXBoLT5zYWRkciwKIAkJCQkJICAgICAgIGlw aC0+cHJvdG9jb2wpOwogCQkJaWYgKCFvdXJzKQotCQkJCXJldHVybjsKKwkJCQlyZXR1cm4gMDsK IAkJfQogCiAJCXNrID0gX191ZHA0X2xpYl9tY2FzdF9kZW11eF9sb29rdXAobmV0LCB1aC0+ZGVz dCwgaXBoLT5kYWRkciwKQEAgLTIyNTcsNyArMjI1Nyw3IEBAIHZvaWQgdWRwX3Y0X2Vhcmx5X2Rl bXV4KHN0cnVjdCBza19idWZmICpza2IpCiAJfQogCiAJaWYgKCFzayB8fCAhcmVmY291bnRfaW5j X25vdF96ZXJvKCZzay0+c2tfcmVmY250KSkKLQkJcmV0dXJuOworCQlyZXR1cm4gMDsKIAogCXNr Yi0+c2sgPSBzazsKIAlza2ItPmRlc3RydWN0b3IgPSBzb2NrX2VmcmVlOwpAQCAtMjI3Miw2ICsy MjcyLDcgQEAgdm9pZCB1ZHBfdjRfZWFybHlfZGVtdXgoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJ ICovCiAJCXNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgZHN0KTsKIAl9CisJcmV0dXJuIDA7CiB9CiAK IGludCB1ZHBfcmN2KHN0cnVjdCBza19idWZmICpza2IpCi0tIAoyLjEzLjYKCgpGcm9tIDM3MWMz ZTNmMjAwYzFkNDI0MGU4YjRjYWYzNzI1MTdjNTBkNDUwNzEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogVGh1LCAyOCBT ZXAgMjAxNyAxNTo1MTozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDMvNDhdIHVkcDogcGVyZm9y bSBzb3VyY2UgdmFsaWRhdGlvbiBmb3IgbWNhc3QgZWFybHkgZGVtdXgKClsgVXBzdHJlYW0gY29t bWl0IGJjMDQ0ZThkYjc5NjJlNzI3YTc1YjU5MWI5ODUxZmYyYWM1Y2Y4NDYgXQoKVGhlIFVEUCBl YXJseSBkZW11eCBjYW4gbGV2ZXJhdGUgdGhlIHJ4IGRzdCBjYWNoZSBldmVuIGZvcgptdWx0aWNh c3QgdW5jb25uZWN0ZWQgc29ja2V0cy4KCkluIHN1Y2ggc2NlbmFyaW8gdGhlIGlwdjQgc291cmNl IGFkZHJlc3MgaXMgdmFsaWRhdGVkIG9ubHkgb24KdGhlIGZpcnN0IHBhY2tldCBpbiB0aGUgZ2l2 ZW4gZmxvdy4gQWZ0ZXIgdGhhdCwgd2hlbiB3ZSBmZXRjaAp0aGUgZHN0IGVudHJ5ICBmcm9tIHRo ZSBzb2NrZXQgcnggY2FjaGUsIHdlIHN0b3AgZW5mb3JjaW5nCnRoZSBycF9maWx0ZXIgYW5kIHdl IGV2ZW4gc3RhcnQgYWNjZXB0aW5nIGFueSBraW5kIG9mIG1hcnRpYW4KYWRkcmVzc2VzLgoKRGlz YWJsaW5nIHRoZSBkc3QgY2FjaGUgZm9yIHVuY29ubmVjdGVkIG11bHRpY2FzdCBzb2NrZXQgd2ls bApjYXVzZSBsYXJnZSBwZXJmb3JtYWNlIHJlZ3Jlc3Npb24sIG5lYXJseSByZWR1Y2luZyBieSBo YWxmIHRoZQptYXggaW5ncmVzcyB0cHV0LgoKSW5zdGVhZCB3ZSBmYWN0b3Igb3V0IGEgcm91dGUg aGVscGVyIHRvIGNvbXBsZXRlbHkgdmFsaWRhdGUgYW4Kc2tiIHNvdXJjZSBhZGRyZXNzIGZvciBt dWx0aWNhc3QgcGFja2V0cyBhbmQgd2UgY2FsbCBpdCBmcm9tCnRoZSBVRFAgZWFybHkgZGVtdXgg Zm9yIG1jYXN0IHBhY2tldHMgbGFuZGluZyBvbiB1bmNvbm5lY3RlZApzb2NrZXRzLCBhZnRlciBz dWNjZXNzZnVsIGZldGNoaW5nIHRoZSByZWxhdGVkIGNhY2hlZCBkc3QgZW50cnkuCgpUaGlzIHN0 aWxsIGdpdmVzIGEgbWVhc3VyYWJsZSwgYnV0IGxpbWl0ZWQgcGVyZm9ybWFuY2UKcmVncmVzc2lv bjoKCgkJcnBfZmlsdGVyID0gMAkJcnBfZmlsdGVyID0gMQplZG11eCBkaXNhYmxlZDoJMTE4MiBL cHBzCQkxMTI3IEtwcHMKZWRtdXggYmVmb3JlOgkyMjM4IEtwcHMJCTIyMzggS3BwcwplZG11eCBh ZnRlcjoJMjAzNyBLcHBzCQkyMDE5IEtwcHMKClRoZSBhYm92ZSBmaWd1cmVzIGFyZSBvbiB0b3Ag b2YgY3VycmVudCBuZXQgdHJlZS4KQXBwbHlpbmcgdGhlIG5ldC1uZXh0IGNvbW1pdCA2ZTYxN2Rl ODRlODcgKCJuZXQ6IGF2b2lkIGEgZnVsbApmaWIgbG9va3VwIHdoZW4gcnBfZmlsdGVyIGlzIGRp c2FibGVkLiIpIHRoZSBkZWx0YSB3aXRoCnJwX2ZpbHRlciA9PSAwIHdpbGwgZGVjcmVhc2UgZXZl biBtb3JlLgoKRml4ZXM6IDQyMWIzODg1YmY2ZCAoInVkcDogaXB2NDogQWRkIHVkcCBlYXJseSBk ZW11eCIpClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGlu Y2x1ZGUvbmV0L3JvdXRlLmggfCAgNCArKystCiBuZXQvaXB2NC9yb3V0ZS5jICAgIHwgNDYgKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogbmV0L2lwdjQvdWRw LmMgICAgICB8IDEzICsrKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgNDEgaW5zZXJ0aW9u cygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvcm91dGUuaCBi L2luY2x1ZGUvbmV0L3JvdXRlLmgKaW5kZXggY2IwYTc2ZDlkZGUxLi41ODQ1ODk2NmUzMWUgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3JvdXRlLmgKKysrIGIvaW5jbHVkZS9uZXQvcm91dGUuaApA QCAtMTc1LDcgKzE3NSw5IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJ0YWJsZSAqaXBfcm91dGVf b3V0cHV0X2dyZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmbG93aTQKIAlmbDQtPmZsNF9ncmVf a2V5ID0gZ3JlX2tleTsKIAlyZXR1cm4gaXBfcm91dGVfb3V0cHV0X2tleShuZXQsIGZsNCk7CiB9 Ci0KK2ludCBpcF9tY192YWxpZGF0ZV9zb3VyY2Uoc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTMy IGRhZGRyLCBfX2JlMzIgc2FkZHIsCisJCQkgIHU4IHRvcywgc3RydWN0IG5ldF9kZXZpY2UgKmRl diwKKwkJCSAgc3RydWN0IGluX2RldmljZSAqaW5fZGV2LCB1MzIgKml0YWcpOwogaW50IGlwX3Jv dXRlX2lucHV0X25vcmVmKHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBkc3QsIF9fYmUzMiBz cmMsCiAJCQkgdTggdG9zLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2aW4pOwogaW50IGlwX3JvdXRl X2lucHV0X3JjdShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgZHN0LCBfX2JlMzIgc3JjLApk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXggMjMz MWRlMjBjYTUwLi5jNWFhMjViZTcxMDggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMKKysr IGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtMTUyMCw0MyArMTUyMCw1NiBAQCBzdHJ1Y3QgcnRhYmxl ICpydF9kc3RfYWxsb2Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIEVYUE9SVF9TWU1CT0wocnRf ZHN0X2FsbG9jKTsKIAogLyogY2FsbGVkIGluIHJjdV9yZWFkX2xvY2soKSBzZWN0aW9uICovCi1z dGF0aWMgaW50IGlwX3JvdXRlX2lucHV0X21jKHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBk YWRkciwgX19iZTMyIHNhZGRyLAotCQkJCXU4IHRvcywgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg aW50IG91cikKK2ludCBpcF9tY192YWxpZGF0ZV9zb3VyY2Uoc3RydWN0IHNrX2J1ZmYgKnNrYiwg X19iZTMyIGRhZGRyLCBfX2JlMzIgc2FkZHIsCisJCQkgIHU4IHRvcywgc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwKKwkJCSAgc3RydWN0IGluX2RldmljZSAqaW5fZGV2LCB1MzIgKml0YWcpCiB7Ci0J c3RydWN0IHJ0YWJsZSAqcnRoOwotCXN0cnVjdCBpbl9kZXZpY2UgKmluX2RldiA9IF9faW5fZGV2 X2dldF9yY3UoZGV2KTsKLQl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBSVENGX01VTFRJQ0FTVDsKLQl1 MzIgaXRhZyA9IDA7CiAJaW50IGVycjsKIAogCS8qIFByaW1hcnkgc2FuaXR5IGNoZWNrcy4gKi8K LQogCWlmICghaW5fZGV2KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWlmIChpcHY0X2lzX211bHRp Y2FzdChzYWRkcikgfHwgaXB2NF9pc19sYmNhc3Qoc2FkZHIpIHx8CiAJICAgIHNrYi0+cHJvdG9j b2wgIT0gaHRvbnMoRVRIX1BfSVApKQotCQlnb3RvIGVfaW52YWw7CisJCXJldHVybiAtRUlOVkFM OwogCiAJaWYgKGlwdjRfaXNfbG9vcGJhY2soc2FkZHIpICYmICFJTl9ERVZfUk9VVEVfTE9DQUxO RVQoaW5fZGV2KSkKLQkJZ290byBlX2ludmFsOworCQlyZXR1cm4gLUVJTlZBTDsKIAogCWlmIChp cHY0X2lzX3plcm9uZXQoc2FkZHIpKSB7CiAJCWlmICghaXB2NF9pc19sb2NhbF9tdWx0aWNhc3Qo ZGFkZHIpKQotCQkJZ290byBlX2ludmFsOworCQkJcmV0dXJuIC1FSU5WQUw7CiAJfSBlbHNlIHsK IAkJZXJyID0gZmliX3ZhbGlkYXRlX3NvdXJjZShza2IsIHNhZGRyLCAwLCB0b3MsIDAsIGRldiwK LQkJCQkJICBpbl9kZXYsICZpdGFnKTsKKwkJCQkJICBpbl9kZXYsIGl0YWcpOwogCQlpZiAoZXJy IDwgMCkKLQkJCWdvdG8gZV9lcnI7CisJCQlyZXR1cm4gZXJyOwogCX0KKwlyZXR1cm4gMDsKK30K KworLyogY2FsbGVkIGluIHJjdV9yZWFkX2xvY2soKSBzZWN0aW9uICovCitzdGF0aWMgaW50IGlw X3JvdXRlX2lucHV0X21jKHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBkYWRkciwgX19iZTMy IHNhZGRyLAorCQkJICAgICB1OCB0b3MsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBvdXIp Cit7CisJc3RydWN0IGluX2RldmljZSAqaW5fZGV2ID0gX19pbl9kZXZfZ2V0X3JjdShkZXYpOwor CXVuc2lnbmVkIGludCBmbGFncyA9IFJUQ0ZfTVVMVElDQVNUOworCXN0cnVjdCBydGFibGUgKnJ0 aDsKKwl1MzIgaXRhZyA9IDA7CisJaW50IGVycjsKKworCWVyciA9IGlwX21jX3ZhbGlkYXRlX3Nv dXJjZShza2IsIGRhZGRyLCBzYWRkciwgdG9zLCBkZXYsIGluX2RldiwgJml0YWcpOworCWlmIChl cnIpCisJCXJldHVybiBlcnI7CisKIAlpZiAob3VyKQogCQlmbGFncyB8PSBSVENGX0xPQ0FMOwog CiAJcnRoID0gcnRfZHN0X2FsbG9jKGRldl9uZXQoZGV2KS0+bG9vcGJhY2tfZGV2LCBmbGFncywg UlROX01VTFRJQ0FTVCwKIAkJCSAgIElOX0RFVl9DT05GX0dFVChpbl9kZXYsIE5PUE9MSUNZKSwg ZmFsc2UsIGZhbHNlKTsKIAlpZiAoIXJ0aCkKLQkJZ290byBlX25vYnVmczsKKwkJcmV0dXJuIC1F Tk9CVUZTOwogCiAjaWZkZWYgQ09ORklHX0lQX1JPVVRFX0NMQVNTSUQKIAlydGgtPmRzdC50Y2xh c3NpZCA9IGl0YWc7CkBAIC0xNTcyLDEzICsxNTg1LDYgQEAgc3RhdGljIGludCBpcF9yb3V0ZV9p bnB1dF9tYyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgZGFkZHIsIF9fYmUzMiBzYWRkciwK IAogCXNrYl9kc3Rfc2V0KHNrYiwgJnJ0aC0+ZHN0KTsKIAlyZXR1cm4gMDsKLQotZV9ub2J1ZnM6 Ci0JcmV0dXJuIC1FTk9CVUZTOwotZV9pbnZhbDoKLQlyZXR1cm4gLUVJTlZBTDsKLWVfZXJyOgot CXJldHVybiBlcnI7CiB9CiAKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2 NC91ZHAuYwppbmRleCBhZTQzN2UxMjNiODMuLjc4MWJlMzNhOWMyZSAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQvdWRwLmMKQEAgLTIyMjAsNiArMjIyMCw3IEBAIHN0 YXRpYyBzdHJ1Y3Qgc29jayAqX191ZHA0X2xpYl9kZW11eF9sb29rdXAoc3RydWN0IG5ldCAqbmV0 LAogaW50IHVkcF92NF9lYXJseV9kZW11eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0cnVj dCBuZXQgKm5ldCA9IGRldl9uZXQoc2tiLT5kZXYpOworCXN0cnVjdCBpbl9kZXZpY2UgKmluX2Rl diA9IE5VTEw7CiAJY29uc3Qgc3RydWN0IGlwaGRyICppcGg7CiAJY29uc3Qgc3RydWN0IHVkcGhk ciAqdWg7CiAJc3RydWN0IHNvY2sgKnNrID0gTlVMTDsKQEAgLTIyMzYsNyArMjIzNyw3IEBAIGlu dCB1ZHBfdjRfZWFybHlfZGVtdXgoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogCWlmIChza2ItPnBr dF90eXBlID09IFBBQ0tFVF9CUk9BRENBU1QgfHwKIAkgICAgc2tiLT5wa3RfdHlwZSA9PSBQQUNL RVRfTVVMVElDQVNUKSB7Ci0JCXN0cnVjdCBpbl9kZXZpY2UgKmluX2RldiA9IF9faW5fZGV2X2dl dF9yY3Uoc2tiLT5kZXYpOworCQlpbl9kZXYgPSBfX2luX2Rldl9nZXRfcmN1KHNrYi0+ZGV2KTsK IAogCQlpZiAoIWluX2RldikKIAkJCXJldHVybiAwOwpAQCAtMjI2NiwxMSArMjI2NywyMSBAQCBp bnQgdWRwX3Y0X2Vhcmx5X2RlbXV4KHN0cnVjdCBza19idWZmICpza2IpCiAJaWYgKGRzdCkKIAkJ ZHN0ID0gZHN0X2NoZWNrKGRzdCwgMCk7CiAJaWYgKGRzdCkgeworCQl1MzIgaXRhZyA9IDA7CisK IAkJLyogc2V0IG5vcmVmIGZvciBub3cuCiAJCSAqIGFueSBwbGFjZSB3aGljaCB3YW50cyB0byBo b2xkIGRzdCBoYXMgdG8gY2FsbAogCQkgKiBkc3RfaG9sZF9zYWZlKCkKIAkJICovCiAJCXNrYl9k c3Rfc2V0X25vcmVmKHNrYiwgZHN0KTsKKworCQkvKiBmb3IgdW5jb25uZWN0ZWQgbXVsdGljYXN0 IHNvY2tldHMgd2UgbmVlZCB0byB2YWxpZGF0ZQorCQkgKiB0aGUgc291cmNlIG9uIGVhY2ggcGFj a2V0CisJCSAqLworCQlpZiAoIWluZXRfc2soc2spLT5pbmV0X2RhZGRyICYmIGluX2RldikKKwkJ CXJldHVybiBpcF9tY192YWxpZGF0ZV9zb3VyY2Uoc2tiLCBpcGgtPmRhZGRyLAorCQkJCQkJICAg ICBpcGgtPnNhZGRyLCBpcGgtPnRvcywKKwkJCQkJCSAgICAgc2tiLT5kZXYsIGluX2RldiwgJml0 YWcpOwogCX0KIAlyZXR1cm4gMDsKIH0KLS0gCjIuMTMuNgoKCkZyb20gOGEzYTliZjhiZjk4YTI3 MzZlYzZiZTg0NjczMmRkYjVlZTNkZWY0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog UGFydGhhc2FyYXRoeSBCaHV2YXJhZ2FuIDxwYXJ0aGFzYXJhdGh5LmJodXZhcmFnYW5AZXJpY3Nz b24uY29tPgpEYXRlOiBGcmksIDI5IFNlcCAyMDE3IDEwOjAyOjU0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCA0NC80OF0gdGlwYzogdXNlIG9ubHkgcG9zaXRpdmUgZXJyb3IgY29kZXMgaW4gbWVzc2Fn ZXMKClsgVXBzdHJlYW0gY29tbWl0IGFhZDA2MjEyZDM2Y2YzNDg1OTQyOGEwYTI3OWU1YzE0ZWU1 YzllMjYgXQoKSW4gY29tbWl0IGUzYTc3NTYxZTdkMzIgKCJ0aXBjOiBzcGxpdCB1cCBmdW5jdGlv biB0aXBjX21zZ19ldmFsKCkiKSwKd2UgaGF2ZSB1cGRhdGVkIHRoZSBmdW5jdGlvbiB0aXBjX21z Z19sb29rdXBfZGVzdCgpIHRvIHNldCB0aGUgZXJyb3IKY29kZXMgdG8gbmVnYXRpdmUgdmFsdWVz IGF0IGRlc3RpbmF0aW9uIGxvb2t1cCBmYWlsdXJlcy4gVGh1cyB3aGVuCnRoZSBmdW5jdGlvbiBz ZXRzIHRoZSBlcnJvciBjb2RlIHRvIC1USVBDX0VSUl9OT19OQU1FLCBpdHMgaW5zZXJ0ZWQKaW50 byB0aGUgNCBiaXQgZXJyb3IgZmllbGQgb2YgdGhlIG1lc3NhZ2UgaGVhZGVyIGFzIDB4ZiBpbnN0 ZWFkIG9mClRJUENfRVJSX05PX05BTUUgKDEpLiBUaGUgdmFsdWUgMHhmIGlzIGFuIHVua25vd24g ZXJyb3IgY29kZS4KCkluIHRoaXMgY29tbWl0LCB3ZSBzZXQgb25seSBwb3NpdGl2ZSBlcnJvciBj b2RlLgoKRml4ZXM6IGUzYTc3NTYxZTdkMzIgKCJ0aXBjOiBzcGxpdCB1cCBmdW5jdGlvbiB0aXBj X21zZ19ldmFsKCkiKQpTaWduZWQtb2ZmLWJ5OiBQYXJ0aGFzYXJhdGh5IEJodXZhcmFnYW4gPHBh cnRoYXNhcmF0aHkuYmh1dmFyYWdhbkBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9tc2cuYyB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL25ldC90aXBjL21zZy5jIGIvbmV0L3RpcGMvbXNnLmMKaW5kZXggNmVmMzc5ZjAwNGFj Li4xMjFlNTlhMWQwZTcgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL21zZy5jCisrKyBiL25ldC90aXBj L21zZy5jCkBAIC01NTEsNyArNTUxLDcgQEAgYm9vbCB0aXBjX21zZ19sb29rdXBfZGVzdChzdHJ1 Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIGludCAqZXJyKQogCQlyZXR1cm4gZmFs c2U7CiAJaWYgKG1zZ19lcnJjb2RlKG1zZykpCiAJCXJldHVybiBmYWxzZTsKLQkqZXJyID0gLVRJ UENfRVJSX05PX05BTUU7CisJKmVyciA9IFRJUENfRVJSX05PX05BTUU7CiAJaWYgKHNrYl9saW5l YXJpemUoc2tiKSkKIAkJcmV0dXJuIGZhbHNlOwogCW1zZyA9IGJ1Zl9tc2coc2tiKTsKLS0gCjIu MTMuNgoKCkZyb20gNjBmNmFhMTM2ZGEzNDNhNjM1MmRkZGU5MDNmYzEzYmJkOTg2YzVlNCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhh bGluay5mcj4KRGF0ZTogVGh1LCAyOCBTZXAgMjAxNyAxNTo0NDozOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggNDUvNDhdIGwydHA6IGZpeCBsMnRwX2V0aCBtb2R1bGUgbG9hZGluZwoKWyBVcHN0cmVh bSBjb21taXQgOWY3NzVlYWQ1ZTU3MGU3ZTE5MDE1YjllNGUyZjNkZDZlNzFhNTkzNSBdCgpUaGUg bDJ0cF9ldGggbW9kdWxlIGNyYXNoZXMgaWYgaXRzIG5ldGxpbmsgY2FsbGJhY2tzIGFyZSBydW4g d2hlbiB0aGUKcGVybmV0IGRhdGEgYXJlbid0IGluaXRpYWxpc2VkLgoKV2Ugc2hvdWxkIG5vcm1h bGx5IHJlZ2lzdGVyX3Blcm5ldF9kZXZpY2UoKSBiZWZvcmUgdGhlIGdlbmwgY2FsbGJhY2tzLgpI b3dldmVyLCB0aGUgcGVybmV0IGRhdGEgb25seSBtYWludGFpbiBhIGxpc3Qgb2YgbDJ0cGV0aCBp bnRlcmZhY2VzLAphbmQgdGhpcyBsaXN0IGlzIG5ldmVyIHVzZWQuIFNvIGxldCdzIGp1c3QgZHJv cCBwZXJuZXQgaGFuZGxpbmcKaW5zdGVhZC4KCkZpeGVzOiBkOWUzMWQxN2NlYmEgKCJsMnRwOiBB ZGQgTDJUUCBldGhlcm5ldCBwc2V1ZG93aXJlIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBHdWls bGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2wydHAvbDJ0cF9ldGguYyB8 IDUxICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2wydHAvbDJ0cF9ldGguYyBiL25ldC9sMnRwL2wydHBfZXRoLmMKaW5kZXggNGRl MmVjOTRiMDhjLi5jZjQ1NjcyMDkzMGMgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfZXRoLmMK KysrIGIvbmV0L2wydHAvbDJ0cF9ldGguYwpAQCAtNDQsNyArNDQsNiBAQCBzdHJ1Y3QgbDJ0cF9l dGggewogCXN0cnVjdCBuZXRfZGV2aWNlCSpkZXY7CiAJc3RydWN0IHNvY2sJCSp0dW5uZWxfc29j azsKIAlzdHJ1Y3QgbDJ0cF9zZXNzaW9uCSpzZXNzaW9uOwotCXN0cnVjdCBsaXN0X2hlYWQJbGlz dDsKIAlhdG9taWNfbG9uZ190CQl0eF9ieXRlczsKIAlhdG9taWNfbG9uZ190CQl0eF9wYWNrZXRz OwogCWF0b21pY19sb25nX3QJCXR4X2Ryb3BwZWQ7CkBAIC01OCwxNyArNTcsNiBAQCBzdHJ1Y3Qg bDJ0cF9ldGhfc2VzcyB7CiAJc3RydWN0IG5ldF9kZXZpY2UJKmRldjsKIH07CiAKLS8qIHBlci1u ZXQgcHJpdmF0ZSBkYXRhIGZvciB0aGlzIG1vZHVsZSAqLwotc3RhdGljIHVuc2lnbmVkIGludCBs MnRwX2V0aF9uZXRfaWQ7Ci1zdHJ1Y3QgbDJ0cF9ldGhfbmV0IHsKLQlzdHJ1Y3QgbGlzdF9oZWFk IGwydHBfZXRoX2Rldl9saXN0OwotCXNwaW5sb2NrX3QgbDJ0cF9ldGhfbG9jazsKLX07Ci0KLXN0 YXRpYyBpbmxpbmUgc3RydWN0IGwydHBfZXRoX25ldCAqbDJ0cF9ldGhfcGVybmV0KHN0cnVjdCBu ZXQgKm5ldCkKLXsKLQlyZXR1cm4gbmV0X2dlbmVyaWMobmV0LCBsMnRwX2V0aF9uZXRfaWQpOwot fQogCiBzdGF0aWMgaW50IGwydHBfZXRoX2Rldl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp CiB7CkBAIC04NCwxMiArNzIsNiBAQCBzdGF0aWMgaW50IGwydHBfZXRoX2Rldl9pbml0KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiAKIHN0YXRpYyB2b2lkIGwydHBfZXRoX2Rldl91bmluaXQoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgbDJ0cF9ldGggKnByaXYgPSBuZXRkZXZf cHJpdihkZXYpOwotCXN0cnVjdCBsMnRwX2V0aF9uZXQgKnBuID0gbDJ0cF9ldGhfcGVybmV0KGRl dl9uZXQoZGV2KSk7Ci0KLQlzcGluX2xvY2soJnBuLT5sMnRwX2V0aF9sb2NrKTsKLQlsaXN0X2Rl bF9pbml0KCZwcml2LT5saXN0KTsKLQlzcGluX3VubG9jaygmcG4tPmwydHBfZXRoX2xvY2spOwog CWRldl9wdXQoZGV2KTsKIH0KIApAQCAtMjcyLDcgKzI1NCw2IEBAIHN0YXRpYyBpbnQgbDJ0cF9l dGhfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIHR1bm5lbF9pZCwgdTMyIHNlc3Npb25faWQs IHUzMiBwCiAJc3RydWN0IGwydHBfZXRoICpwcml2OwogCXN0cnVjdCBsMnRwX2V0aF9zZXNzICpz cHJpdjsKIAlpbnQgcmM7Ci0Jc3RydWN0IGwydHBfZXRoX25ldCAqcG47CiAKIAl0dW5uZWwgPSBs MnRwX3R1bm5lbF9maW5kKG5ldCwgdHVubmVsX2lkKTsKIAlpZiAoIXR1bm5lbCkgewpAQCAtMzEw LDcgKzI5MSw2IEBAIHN0YXRpYyBpbnQgbDJ0cF9ldGhfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwg dTMyIHR1bm5lbF9pZCwgdTMyIHNlc3Npb25faWQsIHUzMiBwCiAJcHJpdiA9IG5ldGRldl9wcml2 KGRldik7CiAJcHJpdi0+ZGV2ID0gZGV2OwogCXByaXYtPnNlc3Npb24gPSBzZXNzaW9uOwotCUlO SVRfTElTVF9IRUFEKCZwcml2LT5saXN0KTsKIAogCXByaXYtPnR1bm5lbF9zb2NrID0gdHVubmVs LT5zb2NrOwogCXNlc3Npb24tPnJlY3Zfc2tiID0gbDJ0cF9ldGhfZGV2X3JlY3Y7CkBAIC0zMzEs MTAgKzMxMSw2IEBAIHN0YXRpYyBpbnQgbDJ0cF9ldGhfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwg dTMyIHR1bm5lbF9pZCwgdTMyIHNlc3Npb25faWQsIHUzMiBwCiAJc3RybGNweShzZXNzaW9uLT5p Zm5hbWUsIGRldi0+bmFtZSwgSUZOQU1TSVopOwogCiAJZGV2X2hvbGQoZGV2KTsKLQlwbiA9IGwy dHBfZXRoX3Blcm5ldChkZXZfbmV0KGRldikpOwotCXNwaW5fbG9jaygmcG4tPmwydHBfZXRoX2xv Y2spOwotCWxpc3RfYWRkKCZwcml2LT5saXN0LCAmcG4tPmwydHBfZXRoX2Rldl9saXN0KTsKLQlz cGluX3VubG9jaygmcG4tPmwydHBfZXRoX2xvY2spOwogCiAJcmV0dXJuIDA7CiAKQEAgLTM0Nywy MiArMzIzLDYgQEAgc3RhdGljIGludCBsMnRwX2V0aF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1 MzIgdHVubmVsX2lkLCB1MzIgc2Vzc2lvbl9pZCwgdTMyIHAKIAlyZXR1cm4gcmM7CiB9CiAKLXN0 YXRpYyBfX25ldF9pbml0IGludCBsMnRwX2V0aF9pbml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCi17 Ci0Jc3RydWN0IGwydHBfZXRoX25ldCAqcG4gPSBuZXRfZ2VuZXJpYyhuZXQsIGwydHBfZXRoX25l dF9pZCk7Ci0KLQlJTklUX0xJU1RfSEVBRCgmcG4tPmwydHBfZXRoX2Rldl9saXN0KTsKLQlzcGlu X2xvY2tfaW5pdCgmcG4tPmwydHBfZXRoX2xvY2spOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRp YyBzdHJ1Y3QgcGVybmV0X29wZXJhdGlvbnMgbDJ0cF9ldGhfbmV0X29wcyA9IHsKLQkuaW5pdCA9 IGwydHBfZXRoX2luaXRfbmV0LAotCS5pZCAgID0gJmwydHBfZXRoX25ldF9pZCwKLQkuc2l6ZSA9 IHNpemVvZihzdHJ1Y3QgbDJ0cF9ldGhfbmV0KSwKLX07Ci0KIAogc3RhdGljIGNvbnN0IHN0cnVj dCBsMnRwX25sX2NtZF9vcHMgbDJ0cF9ldGhfbmxfY21kX29wcyA9IHsKIAkuc2Vzc2lvbl9jcmVh dGUJPSBsMnRwX2V0aF9jcmVhdGUsCkBAIC0zNzYsMjUgKzMzNiwxOCBAQCBzdGF0aWMgaW50IF9f aW5pdCBsMnRwX2V0aF9pbml0KHZvaWQpCiAKIAllcnIgPSBsMnRwX25sX3JlZ2lzdGVyX29wcyhM MlRQX1BXVFlQRV9FVEgsICZsMnRwX2V0aF9ubF9jbWRfb3BzKTsKIAlpZiAoZXJyKQotCQlnb3Rv IG91dDsKLQotCWVyciA9IHJlZ2lzdGVyX3Blcm5ldF9kZXZpY2UoJmwydHBfZXRoX25ldF9vcHMp OwotCWlmIChlcnIpCi0JCWdvdG8gb3V0X3VucmVnOworCQlnb3RvIGVycjsKIAogCXByX2luZm8o IkwyVFAgZXRoZXJuZXQgcHNldWRvd2lyZSBzdXBwb3J0IChMMlRQdjMpXG4iKTsKIAogCXJldHVy biAwOwogCi1vdXRfdW5yZWc6Ci0JbDJ0cF9ubF91bnJlZ2lzdGVyX29wcyhMMlRQX1BXVFlQRV9F VEgpOwotb3V0OgorZXJyOgogCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBs MnRwX2V0aF9leGl0KHZvaWQpCiB7Ci0JdW5yZWdpc3Rlcl9wZXJuZXRfZGV2aWNlKCZsMnRwX2V0 aF9uZXRfb3BzKTsKIAlsMnRwX25sX3VucmVnaXN0ZXJfb3BzKEwyVFBfUFdUWVBFX0VUSCk7CiB9 CiAKLS0gCjIuMTMuNgoKCkZyb20gMDUzZTdiZTk3MWZmNmJkZDc1OTAxN2JiOGRjMTczMDczZDhj ODM4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDIgT2N0IDIwMTcgMTI6MjA6NTEgLTA3MDAKU3ViamVj dDogW1BBVENIIDQ2LzQ4XSBzb2NrZXQsIGJwZjogZml4IHBvc3NpYmxlIHVzZSBhZnRlciBmcmVl CgpbIFVwc3RyZWFtIGNvbW1pdCBlZWZjYTIwZWIyMGM2NmIwNmNmNWVkMDliNDliMWE3Y2FhYTI3 YjdiIF0KClN0YXJ0aW5nIGZyb20gbGludXgtNC40LCAzV0hTIG5vIGxvbmdlciB0YWtlcyB0aGUg bGlzdGVuZXIgbG9jay4KClNpbmNlIHRoaXMgdGltZSwgd2UgbWlnaHQgaGl0IGEgdXNlLWFmdGVy LWZyZWUgaW4gc2tfZmlsdGVyX2NoYXJnZSgpLAppZiB0aGUgZmlsdGVyIHdlIGdvdCBpbiB0aGUg bWVtY3B5KCkgb2YgdGhlIGxpc3RlbmVyIGNvbnRlbnQKanVzdCBoYXBwZW5lZCB0byBiZSByZXBs YWNlZCBieSBhIHRocmVhZCBjaGFuZ2luZyBsaXN0ZW5lciBCUEYgZmlsdGVyLgoKVG8gZml4IHRo aXMsIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBmaWx0ZXIgcmVmY291bnQgaXMgbm90IGFscmVh ZHkKemVybyBiZWZvcmUgaW5jcmVtZW50aW5nIGl0IGFnYWluLgoKRml4ZXM6IGU5OTRiMmYwZmI5 MiAoInRjcDogZG8gbm90IGxvY2sgbGlzdGVuZXIgdG8gcHJvY2VzcyBTWU4gcGFja2V0cyIpClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6 IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtlcm5lbC5vcmc+CkFja2VkLWJ5OiBEYW5pZWwgQm9y a21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZmlsdGVyLmMgfCAxMiArKysr KysrKy0tLS0KIG5ldC9jb3JlL3NvY2suYyAgIHwgIDUgKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwg MTIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9m aWx0ZXIuYyBiL25ldC9jb3JlL2ZpbHRlci5jCmluZGV4IDE2OTk3NDk5OGM3Ni4uMThkNTkxZjFh ZTVhIDEwMDY0NAotLS0gYS9uZXQvY29yZS9maWx0ZXIuYworKysgYi9uZXQvY29yZS9maWx0ZXIu YwpAQCAtOTc1LDEwICs5NzUsMTQgQEAgc3RhdGljIGJvb2wgX19za19maWx0ZXJfY2hhcmdlKHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2ZpbHRlciAqZnApCiAKIGJvb2wgc2tfZmlsdGVyX2No YXJnZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19maWx0ZXIgKmZwKQogewotCWJvb2wgcmV0 ID0gX19za19maWx0ZXJfY2hhcmdlKHNrLCBmcCk7Ci0JaWYgKHJldCkKLQkJcmVmY291bnRfaW5j KCZmcC0+cmVmY250KTsKLQlyZXR1cm4gcmV0OworCWlmICghcmVmY291bnRfaW5jX25vdF96ZXJv KCZmcC0+cmVmY250KSkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKCFfX3NrX2ZpbHRlcl9jaGFy Z2Uoc2ssIGZwKSkgeworCQlza19maWx0ZXJfcmVsZWFzZShmcCk7CisJCXJldHVybiBmYWxzZTsK Kwl9CisJcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9taWdy YXRlX2ZpbHRlcihzdHJ1Y3QgYnBmX3Byb2cgKmZwKQpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc29j ay5jIGIvbmV0L2NvcmUvc29jay5jCmluZGV4IGIyMjIyODkwMWExMS4uMDk2N2RhOTI1MDIyIDEw MDY0NAotLS0gYS9uZXQvY29yZS9zb2NrLmMKKysrIGIvbmV0L2NvcmUvc29jay5jCkBAIC0xNjc1 LDEzICsxNjc1LDE2IEBAIHN0cnVjdCBzb2NrICpza19jbG9uZV9sb2NrKGNvbnN0IHN0cnVjdCBz b2NrICpzaywgY29uc3QgZ2ZwX3QgcHJpb3JpdHkpCiAKIAkJc29ja19yZXNldF9mbGFnKG5ld3Nr LCBTT0NLX0RPTkUpOwogCi0JCWZpbHRlciA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQobmV3 c2stPnNrX2ZpbHRlciwgMSk7CisJCXJjdV9yZWFkX2xvY2soKTsKKwkJZmlsdGVyID0gcmN1X2Rl cmVmZXJlbmNlKHNrLT5za19maWx0ZXIpOwogCQlpZiAoZmlsdGVyICE9IE5VTEwpCiAJCQkvKiB0 aG91Z2ggaXQncyBhbiBlbXB0eSBuZXcgc29jaywgdGhlIGNoYXJnaW5nIG1heSBmYWlsCiAJCQkg KiBpZiBzeXNjdGxfb3B0bWVtX21heCB3YXMgY2hhbmdlZCBiZXR3ZWVuIGNyZWF0aW9uIG9mCiAJ CQkgKiBvcmlnaW5hbCBzb2NrZXQgYW5kIGNsb25pbmcKIAkJCSAqLwogCQkJaXNfY2hhcmdlZCA9 IHNrX2ZpbHRlcl9jaGFyZ2UobmV3c2ssIGZpbHRlcik7CisJCVJDVV9JTklUX1BPSU5URVIobmV3 c2stPnNrX2ZpbHRlciwgZmlsdGVyKTsKKwkJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAkJaWYgKHVu bGlrZWx5KCFpc19jaGFyZ2VkIHx8IHhmcm1fc2tfY2xvbmVfcG9saWN5KG5ld3NrLCBzaykpKSB7 CiAJCQkvKiBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IHVuY2hhcmdlIHRoZSBu ZXcKLS0gCjIuMTMuNgoKCkZyb20gMDAxYmFlMmU5Y2U1ODEzMjdlMmEwZGJjOTk0YTA2YWRlY2Q5 YTJkMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8 bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRlOiBUdWUsIDMgT2N0IDIwMTcgMTM6MjA6 NDggKzAzMDAKU3ViamVjdDogW1BBVENIIDQ3LzQ4XSBuZXQ6IHJ0bmV0bGluazogZml4IGluZm8g bGVhayBpbiBSVE1fR0VUU1RBVFMgY2FsbAoKWyBVcHN0cmVhbSBjb21taXQgY2UwMjRmNDJjMmUy OGI2YmNlNGVjYzFlODkxYjQyZjU3Zjc1Mzg5MiBdCgpXaGVuIFJUTV9HRVRTVEFUUyB3YXMgYWRk ZWQgdGhlIGZpZWxkcyBvZiBpdHMgaGVhZGVyIHN0cnVjdCB3ZXJlIG5vdCBhbGwKaW5pdGlhbGl6 ZWQgd2hlbiByZXR1cm5pbmcgdGhlIHJlc3VsdCB0aHVzIGxlYWtpbmcgNCBieXRlcyBvZiBpbmZv cm1hdGlvbgp0byB1c2VyLXNwYWNlIHBlciBydG5sX2ZpbGxfc3RhdHNpbmZvIGNhbGwsIHNvIGlu aXRpYWxpemUgdGhlbSBub3cuIFRoYW5rcwp0byBBbGV4YW5kZXIgUG90YXBlbmtvIGZvciB0aGUg ZGV0YWlsZWQgcmVwb3J0IGFuZCBiaXNlY3Rpb24uCgpSZXBvcnRlZC1ieTogQWxleGFuZGVyIFBv dGFwZW5rbyA8Z2xpZGVyQGdvb2dsZS5jb20+CkZpeGVzOiAxMGM5ZWFkOWYzYzYgKCJydG5ldGxp bms6IGFkZCBuZXcgUlRNX0dFVFNUQVRTIG1lc3NhZ2UgdG8gZHVtcCBsaW5rIHN0YXRzIikKU2ln bmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3Mu Y29tPgpBY2tlZC1ieTogUm9vcGEgUHJhYmh1IDxyb29wYUBjdW11bHVzbmV0d29ya3MuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2NvcmUvcnRuZXRsaW5rLmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3J0bmV0bGluay5jIGIvbmV0L2NvcmUvcnRuZXRs aW5rLmMKaW5kZXggOTIwMWUzNjIxMzUxLi5lMDdjODg0N2M2Y2YgMTAwNjQ0Ci0tLSBhL25ldC9j b3JlL3J0bmV0bGluay5jCisrKyBiL25ldC9jb3JlL3J0bmV0bGluay5jCkBAIC0zODY3LDYgKzM4 NjcsOSBAQCBzdGF0aWMgaW50IHJ0bmxfZmlsbF9zdGF0c2luZm8oc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJcmV0dXJuIC1FTVNHU0laRTsKIAogCWlmc20g PSBubG1zZ19kYXRhKG5saCk7CisJaWZzbS0+ZmFtaWx5ID0gUEZfVU5TUEVDOworCWlmc20tPnBh ZDEgPSAwOworCWlmc20tPnBhZDIgPSAwOwogCWlmc20tPmlmaW5kZXggPSBkZXYtPmlmaW5kZXg7 CiAJaWZzbS0+ZmlsdGVyX21hc2sgPSBmaWx0ZXJfbWFzazsKIAotLSAKMi4xMy42CgoKRnJvbSBj ZGU5MGM4MTgyY2VmMTI5ODc1NDA0NDc4MWY3Y2VhM2Q4M2ZhZjQ4IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBmYi5jb20+CkRhdGU6IFR1ZSwg MyBPY3QgMjAxNyAxNTozNzoyMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNDgvNDhdIGJwZjogZml4 IGJwZl90YWlsX2NhbGwoKSB4NjQgSklUCgpbIFVwc3RyZWFtIGNvbW1pdCA5MGNhY2NkZDhjYzAy MTU3MDVmMThiOTI3NzFiNDQ5YjAxZTI0NzRhIF0KCi0gYnBmIHByb2dfYXJyYXkganVzdCBsaWtl IGFsbCBvdGhlciB0eXBlcyBvZiBicGYgYXJyYXkgYWNjZXB0cyAzMi1iaXQgaW5kZXguCiAgQ2xh cmlmeSB0aGF0IGluIHRoZSBjb21tZW50LgotIGZpeCB4NjQgSklUIG9mIGJwZl90YWlsX2NhbGwg d2hpY2ggd2FzIGluY29ycmVjdGx5IGxvYWRpbmcgOCBpbnN0ZWFkIG9mIDQgYnl0ZXMKLSB0aWdo dGVuIGNvcnJlc3BvbmRpbmcgY2hlY2sgaW4gdGhlIGludGVycHJldGVyIHRvIHN0YXkgY29uc2lz dGVudAoKVGhlIEpJVCBidWcgY2FuIGJlIHRyaWdnZXJlZCBhZnRlciBpbnRyb2R1Y3Rpb24gb2Yg QlBGX0ZfTlVNQV9OT0RFIGZsYWcKaW4gY29tbWl0IDk2ZWFiZTdhNDBhYSBpbiA0LjE0LiBCZWZv cmUgdGhhdCB0aGUgbWFwX2ZsYWdzIHdvdWxkIHN0YXkgemVybyBhbmQKdGhvdWdoIEpJVCBjb2Rl IGlzIHdyb25nIGl0IHdpbGwgY2hlY2sgYm91bmRzIGNvcnJlY3RseS4KSGVuY2UgdHdvIGZpeGVz IHRhZ3MuIEFsbCBvdGhlciBKSVRzIGRvbid0IGhhdmUgdGhpcyBwcm9ibGVtLgoKU2lnbmVkLW9m Zi1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4KRml4ZXM6IDk2ZWFiZTdh NDBhYSAoImJwZjogQWxsb3cgc2VsZWN0aW5nIG51bWEgbm9kZSBkdXJpbmcgbWFwIGNyZWF0aW9u IikKRml4ZXM6IGI1MmYwMGU2YTcxNSAoIng4NjogYnBmX2ppdDogaW1wbGVtZW50IGJwZl90YWls X2NhbGwoKSBoZWxwZXIiKQpBY2tlZC1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFy Ym94Lm5ldD4KQWNrZWQtYnk6IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KUmV2aWV3 ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGFyY2gveDg2L25ldC9i cGZfaml0X2NvbXAuYyB8IDQgKystLQogaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oICAgIHwgMiAr LQoga2VybmVsL2JwZi9jb3JlLmMgICAgICAgICAgIHwgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbmV0 L2JwZl9qaXRfY29tcC5jIGIvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5jCmluZGV4IGUxMzI0 ZjI4MGUwNi4uNGQ1MGNlZDk0Njg2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9j b21wLmMKKysrIGIvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5jCkBAIC0yODIsOSArMjgyLDkg QEAgc3RhdGljIHZvaWQgZW1pdF9icGZfdGFpbF9jYWxsKHU4ICoqcHByb2cpCiAJLyogaWYgKGlu ZGV4ID49IGFycmF5LT5tYXAubWF4X2VudHJpZXMpCiAJICogICBnb3RvIG91dDsKIAkgKi8KLQlF TUlUNCgweDQ4LCAweDhCLCAweDQ2LCAgICAgICAgICAgICAgICAgICAvKiBtb3YgcmF4LCBxd29y ZCBwdHIgW3JzaSArIDE2XSAqLworCUVNSVQyKDB4ODksIDB4RDIpOyAgICAgICAgICAgICAgICAg ICAgICAgIC8qIG1vdiBlZHgsIGVkeCAqLworCUVNSVQzKDB4MzksIDB4NTYsICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIGNtcCBkd29yZCBwdHIgW3JzaSArIDE2XSwgZWR4ICovCiAJICAgICAg b2Zmc2V0b2Yoc3RydWN0IGJwZl9hcnJheSwgbWFwLm1heF9lbnRyaWVzKSk7Ci0JRU1JVDMoMHg0 OCwgMHgzOSwgMHhEMCk7ICAgICAgICAgICAgICAgICAgLyogY21wIHJheCwgcmR4ICovCiAjZGVm aW5lIE9GRlNFVDEgNDcgLyogbnVtYmVyIG9mIGJ5dGVzIHRvIGp1bXAgKi8KIAlFTUlUMihYODZf SkJFLCBPRkZTRVQxKTsgICAgICAgICAgICAgICAgICAvKiBqYmUgb3V0ICovCiAJbGFiZWwxID0g Y250OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oIGIvaW5jbHVkZS91YXBp L2xpbnV4L2JwZi5oCmluZGV4IGU5OWUzZTZmOGIzNy4uZjBhZGQ4NjIxOWYwIDEwMDY0NAotLS0g YS9pbmNsdWRlL3VhcGkvbGludXgvYnBmLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5o CkBAIC0yOTQsNyArMjk0LDcgQEAgdW5pb24gYnBmX2F0dHIgewogICogICAgIGp1bXAgaW50byBh bm90aGVyIEJQRiBwcm9ncmFtCiAgKiAgICAgQGN0eDogY29udGV4dCBwb2ludGVyIHBhc3NlZCB0 byBuZXh0IHByb2dyYW0KICAqICAgICBAcHJvZ19hcnJheV9tYXA6IHBvaW50ZXIgdG8gbWFwIHdo aWNoIHR5cGUgaXMgQlBGX01BUF9UWVBFX1BST0dfQVJSQVkKLSAqICAgICBAaW5kZXg6IGluZGV4 IGluc2lkZSBhcnJheSB0aGF0IHNlbGVjdHMgc3BlY2lmaWMgcHJvZ3JhbSB0byBydW4KKyAqICAg ICBAaW5kZXg6IDMyLWJpdCBpbmRleCBpbnNpZGUgYXJyYXkgdGhhdCBzZWxlY3RzIHNwZWNpZmlj IHByb2dyYW0gdG8gcnVuCiAgKiAgICAgUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUg ZXJyb3IKICAqCiAgKiBpbnQgYnBmX2Nsb25lX3JlZGlyZWN0KHNrYiwgaWZpbmRleCwgZmxhZ3Mp CmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2NvcmUuYyBiL2tlcm5lbC9icGYvY29yZS5jCmluZGV4 IGFkNWY1NTkyMmExMy4uOWExYmVkMWYzMDI5IDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL2NvcmUu YworKysgYi9rZXJuZWwvYnBmL2NvcmUuYwpAQCAtMTAxMCw3ICsxMDEwLDcgQEAgc3RhdGljIHVu c2lnbmVkIGludCBfX19icGZfcHJvZ19ydW4odTY0ICpyZWdzLCBjb25zdCBzdHJ1Y3QgYnBmX2lu c24gKmluc24sCiAJCXN0cnVjdCBicGZfbWFwICptYXAgPSAoc3RydWN0IGJwZl9tYXAgKikgKHVu c2lnbmVkIGxvbmcpIEJQRl9SMjsKIAkJc3RydWN0IGJwZl9hcnJheSAqYXJyYXkgPSBjb250YWlu ZXJfb2YobWFwLCBzdHJ1Y3QgYnBmX2FycmF5LCBtYXApOwogCQlzdHJ1Y3QgYnBmX3Byb2cgKnBy b2c7Ci0JCXU2NCBpbmRleCA9IEJQRl9SMzsKKwkJdTMyIGluZGV4ID0gQlBGX1IzOwogCiAJCWlm ICh1bmxpa2VseShpbmRleCA+PSBhcnJheS0+bWFwLm1heF9lbnRyaWVzKSkKIAkJCWdvdG8gb3V0 OwotLSAKMi4xMy42Cgo= ----Next_Part(Sun_Oct__8_21_02_19_2017_611)----