From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([149.20.54.216]:51464 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755113AbbGCWbl (ORCPT ); Fri, 3 Jul 2015 18:31:41 -0400 Received: from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net [74.93.104.98]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id DAC43582332 for ; Fri, 3 Jul 2015 15:31:38 -0700 (PDT) Date: Fri, 03 Jul 2015 15:31:36 -0700 (PDT) Message-Id: <20150703.153136.1941583418556562611.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(Fri_Jul__3_15_31_36_2015_221)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Fri_Jul__3_15_31_36_2015_221)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for 3.14, 3.18, 4.0, and 4.1 -stable, respectively. Thanks! ----Next_Part(Fri_Jul__3_15_31_36_2015_221)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_314.mbox" RnJvbSBjZTBhMTRkYTEzZWJiMDVjYTgwNDQwZDYxOGI3OGE3YTlkMDQ2YWJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxyYXpvckBibGFja3dhbGwu b3JnPgpEYXRlOiBUdWUsIDkgSnVuIDIwMTUgMTA6MjM6NTcgLTA3MDAKU3ViamVjdDogW1BBVENI IDAxLzEwXSBicmlkZ2U6IGZpeCBtdWx0aWNhc3Qgcm91dGVyIHJsaXN0IGVuZGxlc3MgbG9vcAoK WyBVcHN0cmVhbSBjb21taXQgMWEwNDBlYWNhMWEyMmY4ZGE4Mjg1Y2VkYTZiNWU0YTJjYjcwNDg2 NyBdCgpTaW5jZSB0aGUgYWRkaXRpb24gb2Ygc3lzZnMgbXVsdGljYXN0IHJvdXRlciBzdXBwb3J0 IGlmIG9uZSBzZXQKbXVsdGljYXN0X3JvdXRlciB0byAiMiIgbW9yZSB0aGFuIG9uY2UsIHRoZW4g dGhlIHBvcnQgd291bGQgYmUgYWRkZWQgdG8KdGhlIGhsaXN0IGV2ZXJ5IHRpbWUgYW5kIGNvdWxk IGVuZCB1cCBsaW5raW5nIHRvIGl0c2VsZiBhbmQgdGh1cyBjYXVzaW5nIGFuCmVuZGxlc3MgbG9v cCBmb3Igcmxpc3Qgd2Fsa2Vycy4KU28gdG8gcmVwcm9kdWNlIGp1c3QgZG86CmVjaG8gMiA+IG11 bHRpY2FzdF9yb3V0ZXI7IGVjaG8gMiA+IG11bHRpY2FzdF9yb3V0ZXI7CmluIGEgYnJpZGdlIHBv cnQgYW5kIGxldCBzb21lIGlnbXAgdHJhZmZpYyBmbG93LCBmb3IgbWUgaXQgaGFuZ3MgdXAKaW4g YnJfbXVsdGljYXN0X2Zsb29kKCkuCkZpeCB0aGlzIGJ5IGFkZGluZyBhIGNoZWNrIGluIGJyX211 bHRpY2FzdF9hZGRfcm91dGVyKCkgaWYgdGhlIHBvcnQgaXMKYWxyZWFkeSBsaW5rZWQuClRoZSBy ZWFzb24gdGhpcyBkaWRuJ3QgaGFwcGVuIGJlZm9yZSB0aGUgYWRkaXRpb24gb2YgbXVsdGljYXN0 X3JvdXRlcgpzeXNmcyBlbnRyaWVzIGlzIGJlY2F1c2UgdGhlcmUncyBhICFobGlzdF91bmhhc2hl ZCBjaGVjayB0aGF0IHByZXZlbnRzCml0LgoKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2Fu ZHJvdiA8cmF6b3JAYmxhY2t3YWxsLm9yZz4KRml4ZXM6IDA5MDllMTE3NThiZCAoImJyaWRnZTog QWRkIG11bHRpY2FzdF9yb3V0ZXIgc3lzZnMgZW50cmllcyIpCkFja2VkLWJ5OiBIZXJiZXJ0IFh1 IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX211bHRpY2FzdC5j IHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMgYi9uZXQvYnJpZGdl L2JyX211bHRpY2FzdC5jCmluZGV4IDExYTJlNmMuLjdiYmM4ZmUgMTAwNjQ0Ci0tLSBhL25ldC9i cmlkZ2UvYnJfbXVsdGljYXN0LmMKKysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAt MTA4Niw2ICsxMDg2LDkgQEAgc3RhdGljIHZvaWQgYnJfbXVsdGljYXN0X2FkZF9yb3V0ZXIoc3Ry dWN0IG5ldF9icmlkZ2UgKmJyLAogCXN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnA7CiAJc3RydWN0 IGhsaXN0X25vZGUgKnNsb3QgPSBOVUxMOwogCisJaWYgKCFobGlzdF91bmhhc2hlZCgmcG9ydC0+ cmxpc3QpKQorCQlyZXR1cm47CisKIAlobGlzdF9mb3JfZWFjaF9lbnRyeShwLCAmYnItPnJvdXRl cl9saXN0LCBybGlzdCkgewogCQlpZiAoKHVuc2lnbmVkIGxvbmcpIHBvcnQgPj0gKHVuc2lnbmVk IGxvbmcpIHApCiAJCQlicmVhazsKQEAgLTExMTMsMTIgKzExMTYsOCBAQCBzdGF0aWMgdm9pZCBi cl9tdWx0aWNhc3RfbWFya19yb3V0ZXIoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCWlmIChwb3J0 LT5tdWx0aWNhc3Rfcm91dGVyICE9IDEpCiAJCXJldHVybjsKIAotCWlmICghaGxpc3RfdW5oYXNo ZWQoJnBvcnQtPnJsaXN0KSkKLQkJZ290byB0aW1lcjsKLQogCWJyX211bHRpY2FzdF9hZGRfcm91 dGVyKGJyLCBwb3J0KTsKIAotdGltZXI6CiAJbW9kX3RpbWVyKCZwb3J0LT5tdWx0aWNhc3Rfcm91 dGVyX3RpbWVyLAogCQkgIG5vdyArIGJyLT5tdWx0aWNhc3RfcXVlcmllcl9pbnRlcnZhbCk7CiB9 Ci0tIAoyLjEuMAoKCkZyb20gZTI0ZGRkZmUzYjZjMmFhNmQ3ZjNhMTdmMTNlMTQwZDdhMDFjOGYz NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2hhb2h1YSBMaSA8c2hsaUBmYi5jb20+ CkRhdGU6IFRodSwgMTEgSnVuIDIwMTUgMTY6NTA6NDggLTA3MDAKU3ViamVjdDogW1BBVENIIDAy LzEwXSBuZXQ6IGRvbid0IHdhaXQgZm9yIG9yZGVyLTMgcGFnZSBhbGxvY2F0aW9uCgpbIFVwc3Ry ZWFtIGNvbW1pdCBmYjA1ZTdhODlmNTAwY2ZjMDZhZTI3N2JkYzkxMWIyODE5Mjg5OTVkIF0KCldl IHNhdyBleGNlc3NpdmUgZGlyZWN0IG1lbW9yeSBjb21wYWN0aW9uIHRyaWdnZXJlZCBieSBza2Jf cGFnZV9mcmFnX3JlZmlsbC4KVGhpcyBjYXVzZXMgcGVyZm9ybWFuY2UgaXNzdWVzIGFuZCBhZGQg bGF0ZW5jeS4gQ29tbWl0IDU2NDBmNzY4NTgzMWUwCmludHJvZHVjZXMgdGhlIG9yZGVyLTMgYWxs b2NhdGlvbi4gQWNjb3JkaW5nIHRvIHRoZSBjaGFuZ2Vsb2csIHRoZSBvcmRlci0zCmFsbG9jYXRp b24gaXNuJ3QgYSBtdXN0LWhhdmUgYnV0IHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuIEJ1dCBkaXJl Y3QgbWVtb3J5CmNvbXBhY3Rpb24gaGFzIGhpZ2ggb3ZlcmhlYWQuIFRoZSBiZW5lZml0IG9mIG9y ZGVyLTMgYWxsb2NhdGlvbiBjYW4ndApjb21wZW5zYXRlIHRoZSBvdmVyaGVhZCBvZiBkaXJlY3Qg bWVtb3J5IGNvbXBhY3Rpb24uCgpUaGlzIHBhdGNoIG1ha2VzIHRoZSBvcmRlci0zIHBhZ2UgYWxs b2NhdGlvbiBhdG9taWMuIElmIHRoZXJlIGlzIG5vIG1lbW9yeQpwcmVzc3VyZSBhbmQgbWVtb3J5 IGlzbid0IGZyYWdtZW50ZWQsIHRoZSBhbGxvY3Rpb24gd2lsbCBzdGlsbCBzdWNjZXNzLCBzbyB3 ZQpkb24ndCBzYWNyaWZpY2UgdGhlIG9yZGVyLTMgYmVuZWZpdCBoZXJlLiBJZiB0aGUgYXRvbWlj IGFsbG9jYXRpb24gZmFpbHMsCmRpcmVjdCBtZW1vcnkgY29tcGFjdGlvbiB3aWxsIG5vdCBiZSB0 cmlnZ2VyZWQsIHNrYl9wYWdlX2ZyYWdfcmVmaWxsIHdpbGwKZmFsbGJhY2sgdG8gb3JkZXItMCBp bW1lZGlhdGVseSwgaGVuY2UgdGhlIGRpcmVjdCBtZW1vcnkgY29tcGFjdGlvbiBvdmVyaGVhZCBp cwphdm9pZGVkLiBJbiB0aGUgYWxsb2NhdGlvbiBmYWlsdXJlIGNhc2UsIGtzd2FwZCBpcyB3YWtl biB1cCBhbmQgZG9pbmcKY29tcGFjdGlvbiwgc28gY2hhbmNlcyBhcmUgYWxsb2NhdGlvbiBjb3Vs ZCBzdWNjZXNzIG5leHQgdGltZS4KCmFsbG9jX3NrYl93aXRoX2ZyYWdzIGlzIHRoZSBzYW1lLgoK VGhlIG1lbGxhbm94IGRyaXZlciBkb2VzIHNpbWlsYXIgdGhpbmcsIGlmIHRoaXMgaXMgYWNjZXB0 ZWQsIHdlIG11c3QgZml4CnRoZSBkcml2ZXIgdG9vLgoKVjM6IGZpeCB0aGUgc2FtZSBpc3N1ZSBp biBhbGxvY19za2Jfd2l0aF9mcmFncyBhcyBwb2ludGVkIG91dCBieSBFcmljClYyOiBtYWtlIHRo ZSBjaGFuZ2Vsb2cgY2xlYXJlcgoKQ2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KQ2M6IENocmlzIE1hc29uIDxjbG1AZmIuY29tPgpDYzogRGViYWJyYXRhIEJhbmVyamVlIDxk YmF2YXRhckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IFNoYW9odWEgTGkgPHNobGlAZmIuY29t PgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUv c2tidWZmLmMgfCA0ICsrKy0KIG5ldC9jb3JlL3NvY2suYyAgIHwgNCArKystCiAyIGZpbGVzIGNo YW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv Y29yZS9za2J1ZmYuYyBiL25ldC9jb3JlL3NrYnVmZi5jCmluZGV4IDY5ZWM2MWEuLjgyMDdmOGQg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NrYnVmZi5jCisrKyBiL25ldC9jb3JlL3NrYnVmZi5jCkBA IC0zNjgsOSArMzY4LDExIEBAIHJlZmlsbDoKIAkJZm9yIChvcmRlciA9IE5FVERFVl9GUkFHX1BB R0VfTUFYX09SREVSOyA7KSB7CiAJCQlnZnBfdCBnZnAgPSBnZnBfbWFzazsKIAotCQkJaWYgKG9y ZGVyKQorCQkJaWYgKG9yZGVyKSB7CiAJCQkJZ2ZwIHw9IF9fR0ZQX0NPTVAgfCBfX0dGUF9OT1dB Uk4gfAogCQkJCSAgICAgICBfX0dGUF9OT01FTUFMTE9DOworCQkJCWdmcCAmPSB+X19HRlBfV0FJ VDsKKwkJCX0KIAkJCW5jLT5mcmFnLnBhZ2UgPSBhbGxvY19wYWdlcyhnZnAsIG9yZGVyKTsKIAkJ CWlmIChsaWtlbHkobmMtPmZyYWcucGFnZSkpCiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9uZXQv Y29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMKaW5kZXggNjUwZGQ1OC4uOGViZmE1MiAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvc29jay5jCisrKyBiL25ldC9jb3JlL3NvY2suYwpAQCAtMTkxNCw4 ICsxOTE0LDEwIEBAIGJvb2wgc2tiX3BhZ2VfZnJhZ19yZWZpbGwodW5zaWduZWQgaW50IHN6LCBz dHJ1Y3QgcGFnZV9mcmFnICpwZnJhZywgZ2ZwX3QgcHJpbykKIAlkbyB7CiAJCWdmcF90IGdmcCA9 IHByaW87CiAKLQkJaWYgKG9yZGVyKQorCQlpZiAob3JkZXIpIHsKIAkJCWdmcCB8PSBfX0dGUF9D T01QIHwgX19HRlBfTk9XQVJOIHwgX19HRlBfTk9SRVRSWTsKKwkJCWdmcCAmPSB+X19HRlBfV0FJ VDsKKwkJfQogCQlwZnJhZy0+cGFnZSA9IGFsbG9jX3BhZ2VzKGdmcCwgb3JkZXIpOwogCQlpZiAo bGlrZWx5KHBmcmFnLT5wYWdlKSkgewogCQkJcGZyYWctPm9mZnNldCA9IDA7Ci0tIAoyLjEuMAoK CkZyb20gN2E2YjZmZWI2OTU0OWM2YTBlNWFlODMxMmRlMjU1ODI5YzQ5MGE0YiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVp dG5lckBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTIgSnVuIDIwMTUgMTA6MTY6NDEgLTAzMDAKU3Vi amVjdDogW1BBVENIIDAzLzEwXSBzY3RwOiBmaXggQVNDT05GIGxpc3QgaGFuZGxpbmcKClsgVXBz dHJlYW0gY29tbWl0IDJkNDVhMDJkMDE2NmNhZjI2MjdmZTkxODk3YzZmZmMzYjE5NTE0YzQgXQoK LT5hdXRvX2FzY29uZl9zcGxpc3QgaXMgcGVyIG5hbWVzcGFjZSBhbmQgbWFuZ2xlZCBieSBmdW5j dGlvbnMgbGlrZQpzY3RwX3NldHNvY2tvcHRfYXV0b19hc2NvbmYoKSB3aGljaCBkb2Vzbid0IGd1 YXJhbnRlZSBhbnkgc2VyaWFsaXphdGlvbi4KCkFsc28sIHRoZSBjYWxsIHRvIGluZXRfc2tfY29w eV9kZXNjZW5kYW50KCkgd2FzIGJhY2t1cGluZwotPmF1dG9fYXNjb25mX2xpc3QgdGhyb3VnaCB0 aGUgY29weSBidXQgd2FzIG5vdCBob25vcmluZwotPmRvX2F1dG9fYXNjb25mLCB3aGljaCBjb3Vs ZCBsZWFkIHRvIGxpc3QgY29ycnVwdGlvbiBpZiBpdCB3YXMKZGlmZmVyZW50IGJldHdlZW4gYm90 aCBzb2NrZXRzLgoKVGhpcyBjb21taXQgdGh1cyBmaXhlcyB0aGUgbGlzdCBoYW5kbGluZyBieSB1 c2luZyAtPmFkZHJfd3FfbG9jawpzcGlubG9jayB0byBwcm90ZWN0IHRoZSBsaXN0LiBBIHNwZWNp YWwgaGFuZGxpbmcgaXMgZG9uZSB1cG9uIHNvY2tldApjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24g Zm9yIHRoYXQuIEVycm9yIGhhbmRsaWcgb24gc2N0cF9pbml0X3NvY2soKQp3aWxsIG5ldmVyIHJl dHVybiBhbiBlcnJvciBhZnRlciBoYXZpbmcgaW5pdGlhbGl6ZWQgYXNjb25mLCBzbwpzY3RwX2Rl c3Ryb3lfc29jaygpIGNhbiBiZSBjYWxsZWQgd2l0aG91dCBhZGRycV93cV9sb2NrLiBUaGUgbG9j ayBub3cKd2lsbCBiZSB0YWtlIG9uIHNjdHBfY2xvc2Vfc29jaygpLCBiZWZvcmUgbG9ja2luZyB0 aGUgc29ja2V0LCBzbyB3ZQpkb24ndCBkbyBpdCBpbiBpbnZlcnNlIG9yZGVyIGNvbXBhcmVkIHRv IHNjdHBfYWRkcl93cV90aW1lb3V0X2hhbmRsZXIoKS4KCkluc3RlYWQgb2YgdGFraW5nIHRoZSBs b2NrIG9uIHNjdHBfc29ja19taWdyYXRlKCkgZm9yIGNvcHlpbmcgYW5kCnJlc3RvcmluZyB0aGUg bGlzdCB2YWx1ZXMsIGl0J3MgcHJlZmVycmVkIHRvIGF2b2lkIHJld3JpdHRpbmcgaXQgYnkKaW1w bGVtZW50aW5nIHNjdHBfY29weV9kZXNjZW5kYW50KCkuCgpJc3N1ZSB3YXMgZm91bmQgd2l0aCBh IHRlc3QgYXBwbGljYXRpb24gdGhhdCBrZXB0IGZsaXBwaW5nIHN5c2N0bApkZWZhdWx0X2F1dG9f YXNjb25mIG9uIGFuZCBvZmYsIGJ1dCBvbmUgY291bGQgdHJpZ2dlciBpdCBieSBpc3N1aW5nCnNp bXVsdGFuZW91cyBzZXRzb2Nrb3B0KCkgY2FsbHMgb24gbXVsdGlwbGUgc29ja2V0cyBvciBieQpj cmVhdGluZy9kZXN0cm95aW5nIHNvY2tldHMgZmFzdCBlbm91Z2guIFRoaXMgaXMgb25seSB0cmln Z2VyYWJsZQpsb2NhbGx5LgoKRml4ZXM6IDlmN2Q2NTNiNjdhZSAoInNjdHA6IEFkZCBBdXRvLUFT Q09ORiBzdXBwb3J0IChjb3JlKS4iKQpSZXBvcnRlZC1ieTogSmkgSmlhbndlbiA8amlqaUByZWRo YXQuY29tPgpTdWdnZXN0ZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+ ClN1Z2dlc3RlZC1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rp b24ub3JnPgpBY2tlZC1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1 a3Rpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vs by5sZWl0bmVyQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L25ldG5zL3NjdHAuaCAgIHwgIDEgKwog aW5jbHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmggfCAgNCArKysrCiBuZXQvc2N0cC9zb2NrZXQuYyAg ICAgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K IDMgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV0bnMvc2N0cC5oIGIvaW5jbHVkZS9uZXQvbmV0bnMvc2N0 cC5oCmluZGV4IDM1NzNhODEuLjhiYTM3OWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25ldG5z L3NjdHAuaAorKysgYi9pbmNsdWRlL25ldC9uZXRucy9zY3RwLmgKQEAgLTMxLDYgKzMxLDcgQEAg c3RydWN0IG5ldG5zX3NjdHAgewogCXN0cnVjdCBsaXN0X2hlYWQgYWRkcl93YWl0cTsKIAlzdHJ1 Y3QgdGltZXJfbGlzdCBhZGRyX3dxX3RpbWVyOwogCXN0cnVjdCBsaXN0X2hlYWQgYXV0b19hc2Nv bmZfc3BsaXN0OworCS8qIExvY2sgdGhhdCBwcm90ZWN0cyBib3RoIGFkZHJfd2FpdHEgYW5kIGF1 dG9fYXNjb25mX3NwbGlzdCAqLwogCXNwaW5sb2NrX3QgYWRkcl93cV9sb2NrOwogCiAJLyogTG9j ayB0aGF0IHByb3RlY3RzIHRoZSBsb2NhbF9hZGRyX2xpc3Qgd3JpdGVycyAqLwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmggYi9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMu aAppbmRleCAwZGZjYzkyLi4yYzJkMzg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY3RwL3N0 cnVjdHMuaAorKysgYi9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaApAQCAtMjE5LDYgKzIxOSwx MCBAQCBzdHJ1Y3Qgc2N0cF9zb2NrIHsKIAlhdG9taWNfdCBwZF9tb2RlOwogCS8qIFJlY2VpdmUg dG8gaGVyZSB3aGlsZSBwYXJ0aWFsIGRlbGl2ZXJ5IGlzIGluIGVmZmVjdC4gKi8KIAlzdHJ1Y3Qg c2tfYnVmZl9oZWFkIHBkX2xvYmJ5OworCisJLyogVGhlc2UgbXVzdCBiZSB0aGUgbGFzdCBmaWVs ZHMsIGFzIHRoZXkgd2lsbCBza2lwcGVkIG9uIGNvcGllcywKKwkgKiBsaWtlIG9uIGFjY2VwdCBh bmQgcGVlbG9mZiBvcGVyYXRpb25zCisJICovCiAJc3RydWN0IGxpc3RfaGVhZCBhdXRvX2FzY29u Zl9saXN0OwogCWludCBkb19hdXRvX2FzY29uZjsKIH07CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9z b2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IDYwNGE2YWMuLmY5NDBmZGMgMTAwNjQ0 Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC0xNTMy LDggKzE1MzIsMTAgQEAgc3RhdGljIHZvaWQgc2N0cF9jbG9zZShzdHJ1Y3Qgc29jayAqc2ssIGxv bmcgdGltZW91dCkKIAogCS8qIFN1cHBvc2VkbHksIG5vIHByb2Nlc3MgaGFzIGFjY2VzcyB0byB0 aGUgc29ja2V0LCBidXQKIAkgKiB0aGUgbmV0IGxheWVycyBzdGlsbCBtYXkuCisJICogQWxzbywg c2N0cF9kZXN0cm95X3NvY2soKSBuZWVkcyB0byBiZSBjYWxsZWQgd2l0aCBhZGRyX3dxX2xvY2sK KwkgKiBoZWxkIGFuZCB0aGF0IHNob3VsZCBiZSBncmFiYmVkIGJlZm9yZSBzb2NrZXQgbG9jay4K IAkgKi8KLQlsb2NhbF9iaF9kaXNhYmxlKCk7CisJc3Bpbl9sb2NrX2JoKCZuZXQtPnNjdHAuYWRk cl93cV9sb2NrKTsKIAliaF9sb2NrX3NvY2soc2spOwogCiAJLyogSG9sZCB0aGUgc29jaywgc2lu Y2Ugc2tfY29tbW9uX3JlbGVhc2UoKSB3aWxsIHB1dCBzb2NrX3B1dCgpCkBAIC0xNTQzLDcgKzE1 NDUsNyBAQCBzdGF0aWMgdm9pZCBzY3RwX2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgbG9uZyB0aW1l b3V0KQogCXNrX2NvbW1vbl9yZWxlYXNlKHNrKTsKIAogCWJoX3VubG9ja19zb2NrKHNrKTsKLQls b2NhbF9iaF9lbmFibGUoKTsKKwlzcGluX3VubG9ja19iaCgmbmV0LT5zY3RwLmFkZHJfd3FfbG9j ayk7CiAKIAlzb2NrX3B1dChzayk7CiAKQEAgLTM1MTEsNiArMzUxMyw3IEBAIHN0YXRpYyBpbnQg c2N0cF9zZXRzb2Nrb3B0X2F1dG9fYXNjb25mKHN0cnVjdCBzb2NrICpzaywgY2hhciBfX3VzZXIg Km9wdHZhbCwKIAlpZiAoKHZhbCAmJiBzcC0+ZG9fYXV0b19hc2NvbmYpIHx8ICghdmFsICYmICFz cC0+ZG9fYXV0b19hc2NvbmYpKQogCQlyZXR1cm4gMDsKIAorCXNwaW5fbG9ja19iaCgmc29ja19u ZXQoc2spLT5zY3RwLmFkZHJfd3FfbG9jayk7CiAJaWYgKHZhbCA9PSAwICYmIHNwLT5kb19hdXRv X2FzY29uZikgewogCQlsaXN0X2RlbCgmc3AtPmF1dG9fYXNjb25mX2xpc3QpOwogCQlzcC0+ZG9f YXV0b19hc2NvbmYgPSAwOwpAQCAtMzUxOSw2ICszNTIyLDcgQEAgc3RhdGljIGludCBzY3RwX3Nl dHNvY2tvcHRfYXV0b19hc2NvbmYoc3RydWN0IHNvY2sgKnNrLCBjaGFyIF9fdXNlciAqb3B0dmFs LAogCQkgICAgJnNvY2tfbmV0KHNrKS0+c2N0cC5hdXRvX2FzY29uZl9zcGxpc3QpOwogCQlzcC0+ ZG9fYXV0b19hc2NvbmYgPSAxOwogCX0KKwlzcGluX3VubG9ja19iaCgmc29ja19uZXQoc2spLT5z Y3RwLmFkZHJfd3FfbG9jayk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTQwMDksMTggKzQwMTMsMjgg QEAgc3RhdGljIGludCBzY3RwX2luaXRfc29jayhzdHJ1Y3Qgc29jayAqc2spCiAJbG9jYWxfYmhf ZGlzYWJsZSgpOwogCXBlcmNwdV9jb3VudGVyX2luYygmc2N0cF9zb2NrZXRzX2FsbG9jYXRlZCk7 CiAJc29ja19wcm90X2ludXNlX2FkZChuZXQsIHNrLT5za19wcm90LCAxKTsKKworCS8qIE5vdGhp bmcgY2FuIGZhaWwgYWZ0ZXIgdGhpcyBibG9jaywgb3RoZXJ3aXNlCisJICogc2N0cF9kZXN0cm95 X3NvY2soKSB3aWxsIGJlIGNhbGxlZCB3aXRob3V0IGFkZHJfd3FfbG9jayBoZWxkCisJICovCiAJ aWYgKG5ldC0+c2N0cC5kZWZhdWx0X2F1dG9fYXNjb25mKSB7CisJCXNwaW5fbG9jaygmc29ja19u ZXQoc2spLT5zY3RwLmFkZHJfd3FfbG9jayk7CiAJCWxpc3RfYWRkX3RhaWwoJnNwLT5hdXRvX2Fz Y29uZl9saXN0LAogCQkgICAgJm5ldC0+c2N0cC5hdXRvX2FzY29uZl9zcGxpc3QpOwogCQlzcC0+ ZG9fYXV0b19hc2NvbmYgPSAxOwotCX0gZWxzZQorCQlzcGluX3VubG9jaygmc29ja19uZXQoc2sp LT5zY3RwLmFkZHJfd3FfbG9jayk7CisJfSBlbHNlIHsKIAkJc3AtPmRvX2F1dG9fYXNjb25mID0g MDsKKwl9CisKIAlsb2NhbF9iaF9lbmFibGUoKTsKIAogCXJldHVybiAwOwogfQogCi0vKiBDbGVh bnVwIGFueSBTQ1RQIHBlciBzb2NrZXQgcmVzb3VyY2VzLiAgKi8KKy8qIENsZWFudXAgYW55IFND VFAgcGVyIHNvY2tldCByZXNvdXJjZXMuIE11c3QgYmUgY2FsbGVkIHdpdGgKKyAqIHNvY2tfbmV0 KHNrKS0+c2N0cC5hZGRyX3dxX2xvY2sgaGVsZCBpZiBzcC0+ZG9fYXV0b19hc2NvbmYgaXMgdHJ1 ZQorICovCiBzdGF0aWMgdm9pZCBzY3RwX2Rlc3Ryb3lfc29jayhzdHJ1Y3Qgc29jayAqc2spCiB7 CiAJc3RydWN0IHNjdHBfc29jayAqc3A7CkBAIC02OTczLDYgKzY5ODcsMTkgQEAgdm9pZCBzY3Rw X2NvcHlfc29jayhzdHJ1Y3Qgc29jayAqbmV3c2ssIHN0cnVjdCBzb2NrICpzaywKIAluZXdpbmV0 LT5tY19saXN0ID0gTlVMTDsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIHNjdHBfY29weV9kZXNj ZW5kYW50KHN0cnVjdCBzb2NrICpza190bywKKwkJCQkJY29uc3Qgc3RydWN0IHNvY2sgKnNrX2Zy b20pCit7CisJaW50IGFuY2VzdG9yX3NpemUgPSBzaXplb2Yoc3RydWN0IGluZXRfc29jaykgKwor CQkJICAgIHNpemVvZihzdHJ1Y3Qgc2N0cF9zb2NrKSAtCisJCQkgICAgb2Zmc2V0b2Yoc3RydWN0 IHNjdHBfc29jaywgYXV0b19hc2NvbmZfbGlzdCk7CisKKwlpZiAoc2tfZnJvbS0+c2tfZmFtaWx5 ID09IFBGX0lORVQ2KQorCQlhbmNlc3Rvcl9zaXplICs9IHNpemVvZihzdHJ1Y3QgaXB2Nl9waW5m byk7CisKKwlfX2luZXRfc2tfY29weV9kZXNjZW5kYW50KHNrX3RvLCBza19mcm9tLCBhbmNlc3Rv cl9zaXplKTsKK30KKwogLyogUG9wdWxhdGUgdGhlIGZpZWxkcyBvZiB0aGUgbmV3c2sgZnJvbSB0 aGUgb2xkc2sgYW5kIG1pZ3JhdGUgdGhlIGFzc29jCiAgKiBhbmQgaXRzIG1lc3NhZ2VzIHRvIHRo ZSBuZXdzay4KICAqLwpAQCAtNjk4Nyw3ICs3MDE0LDYgQEAgc3RhdGljIHZvaWQgc2N0cF9zb2Nr X21pZ3JhdGUoc3RydWN0IHNvY2sgKm9sZHNrLCBzdHJ1Y3Qgc29jayAqbmV3c2ssCiAJc3RydWN0 IHNrX2J1ZmYgKnNrYiwgKnRtcDsKIAlzdHJ1Y3Qgc2N0cF91bHBldmVudCAqZXZlbnQ7CiAJc3Ry dWN0IHNjdHBfYmluZF9oYXNoYnVja2V0ICpoZWFkOwotCXN0cnVjdCBsaXN0X2hlYWQgdG1wbGlz dDsKIAogCS8qIE1pZ3JhdGUgc29ja2V0IGJ1ZmZlciBzaXplcyBhbmQgYWxsIHRoZSBzb2NrZXQg bGV2ZWwgb3B0aW9ucyB0byB0aGUKIAkgKiBuZXcgc29ja2V0LgpAQCAtNjk5NSwxMiArNzAyMSw3 IEBAIHN0YXRpYyB2b2lkIHNjdHBfc29ja19taWdyYXRlKHN0cnVjdCBzb2NrICpvbGRzaywgc3Ry dWN0IHNvY2sgKm5ld3NrLAogCW5ld3NrLT5za19zbmRidWYgPSBvbGRzay0+c2tfc25kYnVmOwog CW5ld3NrLT5za19yY3ZidWYgPSBvbGRzay0+c2tfcmN2YnVmOwogCS8qIEJydXRlIGZvcmNlIGNv cHkgb2xkIHNjdHAgb3B0LiAqLwotCWlmIChvbGRzcC0+ZG9fYXV0b19hc2NvbmYpIHsKLQkJbWVt Y3B5KCZ0bXBsaXN0LCAmbmV3c3AtPmF1dG9fYXNjb25mX2xpc3QsIHNpemVvZih0bXBsaXN0KSk7 Ci0JCWluZXRfc2tfY29weV9kZXNjZW5kYW50KG5ld3NrLCBvbGRzayk7Ci0JCW1lbWNweSgmbmV3 c3AtPmF1dG9fYXNjb25mX2xpc3QsICZ0bXBsaXN0LCBzaXplb2YodG1wbGlzdCkpOwotCX0gZWxz ZQotCQlpbmV0X3NrX2NvcHlfZGVzY2VuZGFudChuZXdzaywgb2xkc2spOworCXNjdHBfY29weV9k ZXNjZW5kYW50KG5ld3NrLCBvbGRzayk7CiAKIAkvKiBSZXN0b3JlIHRoZSBlcCB2YWx1ZSB0aGF0 IHdhcyBvdmVyd3JpdHRlbiB3aXRoIHRoZSBhYm92ZSBzdHJ1Y3R1cmUKIAkgKiBjb3B5LgotLSAK Mi4xLjAKCgpGcm9tIGMwMWFkOGZjYTkxYzE3MWU3YTg3N2UyMjcyNzJmOTJlYzRhMTY1NTkgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3YgPHJhem9yQGJs YWNrd2FsbC5vcmc+CkRhdGU6IE1vbiwgMTUgSnVuIDIwMTUgMjA6Mjg6NTEgKzAzMDAKU3ViamVj dDogW1BBVENIIDA0LzEwXSBicmlkZ2U6IGZpeCBicl9zdHBfc2V0X2JyaWRnZV9wcmlvcml0eSBy YWNlIGNvbmRpdGlvbnMKClsgVXBzdHJlYW0gY29tbWl0IDJkYWI4MGE4YjQ4NmYwMjIyMmE2OWRh Y2E2ODU5NTE5ZTA1NzgxZDkgXQoKQWZ0ZXIgdGhlIC0+c2V0KCkgc3BpbmxvY2tzIHdlcmUgcmVt b3ZlZCBicl9zdHBfc2V0X2JyaWRnZV9wcmlvcml0eQp3YXMgbGVmdCBydW5uaW5nIHdpdGhvdXQg YW55IHByb3RlY3Rpb24gd2hlbiB1c2VkIHZpYSBzeXNmcy4gSXQgY2FuCnJhY2Ugd2l0aCBwb3J0 IGFkZC9kZWwgYW5kIGNvdWxkIHJlc3VsdCBpbiB1c2UtYWZ0ZXItZnJlZSBjYXNlcyBhbmQKY29y cnVwdGVkIGxpc3RzLiBUZXN0ZWQgYnkgcnVubmluZyBwb3J0IGFkZC9kZWwgaW4gYSBsb29wIHdp dGggc3RwCmVuYWJsZWQgd2hpbGUgc2V0dGluZyBwcmlvcml0eSBpbiBhIGxvb3AsIGNyYXNoZXMg YXJlIGVhc2lseQpyZXByb2R1Y2libGUuClRoZSBzcGlubG9ja3MgYXJvdW5kIHN5c2ZzIC0+c2V0 KCkgd2VyZSByZW1vdmVkIGluIGNvbW1pdDoKMTRmOThmMjU4ZjE5ICgiYnJpZGdlOiByYW5nZSBj aGVjayBTVFAgcGFyYW1ldGVycyIpClRoZXJlJ3MgYWxzbyBhIHJhY2UgY29uZGl0aW9uIGluIHRo ZSBuZXRsaW5rIHByaW9yaXR5IHN1cHBvcnQgdGhhdCBpcwpmaXhlZCBieSB0aGlzIGNoYW5nZSwg YnV0IGl0IHdhcyBpbnRyb2R1Y2VkIHJlY2VudGx5IGFuZCB0aGUgZml4ZXMgdGFnCmNvdmVycyBp dCwganVzdCBpbiBjYXNlIGl0J3MgbmVlZGVkIHRoZSBjb21taXQgaXM6CmFmNjE1NzYyZTk3MiAo ImJyaWRnZTogYWRkIGFnZWluZ190aW1lLCBzdHBfc3RhdGUsIHByaW9yaXR5IG92ZXIgbmV0bGlu ayIpCgpTaWduZWQtb2ZmLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxyYXpvckBibGFja3dhbGwu b3JnPgpGaXhlczogMTRmOThmMjU4ZjE5ICgiYnJpZGdlOiByYW5nZSBjaGVjayBTVFAgcGFyYW1l dGVycyIpClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvYnJpZGdlL2JyX2lvY3RsLmMgIHwgMiAtLQogbmV0L2JyaWRnZS9icl9zdHBf aWYuYyB8IDQgKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9pb2N0bC5jIGIvbmV0L2JyaWRnZS9i cl9pb2N0bC5jCmluZGV4IGE5YTRhMWIuLjhkNDIzYmMgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2Uv YnJfaW9jdGwuYworKysgYi9uZXQvYnJpZGdlL2JyX2lvY3RsLmMKQEAgLTI0Nyw5ICsyNDcsNyBA QCBzdGF0aWMgaW50IG9sZF9kZXZfaW9jdGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0 IGlmcmVxICpycSwgaW50IGNtZCkKIAkJaWYgKCFuc19jYXBhYmxlKGRldl9uZXQoZGV2KS0+dXNl cl9ucywgQ0FQX05FVF9BRE1JTikpCiAJCQlyZXR1cm4gLUVQRVJNOwogCi0JCXNwaW5fbG9ja19i aCgmYnItPmxvY2spOwogCQlicl9zdHBfc2V0X2JyaWRnZV9wcmlvcml0eShiciwgYXJnc1sxXSk7 Ci0JCXNwaW5fdW5sb2NrX2JoKCZici0+bG9jayk7CiAJCXJldHVybiAwOwogCiAJY2FzZSBCUkNU TF9TRVRfUE9SVF9QUklPUklUWToKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfc3RwX2lmLmMg Yi9uZXQvYnJpZGdlL2JyX3N0cF9pZi5jCmluZGV4IDE4OWJhMWUuLjlhMDAwNWEgMTAwNjQ0Ci0t LSBhL25ldC9icmlkZ2UvYnJfc3RwX2lmLmMKKysrIGIvbmV0L2JyaWRnZS9icl9zdHBfaWYuYwpA QCAtMjQzLDEyICsyNDMsMTMgQEAgYm9vbCBicl9zdHBfcmVjYWxjdWxhdGVfYnJpZGdlX2lkKHN0 cnVjdCBuZXRfYnJpZGdlICpicikKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotLyogY2FsbGVkIHVuZGVy IGJyaWRnZSBsb2NrICovCisvKiBBY3F1aXJlcyBhbmQgcmVsZWFzZXMgYnJpZGdlIGxvY2sgKi8K IHZvaWQgYnJfc3RwX3NldF9icmlkZ2VfcHJpb3JpdHkoc3RydWN0IG5ldF9icmlkZ2UgKmJyLCB1 MTYgbmV3cHJpbykKIHsKIAlzdHJ1Y3QgbmV0X2JyaWRnZV9wb3J0ICpwOwogCWludCB3YXNyb290 OwogCisJc3Bpbl9sb2NrX2JoKCZici0+bG9jayk7CiAJd2Fzcm9vdCA9IGJyX2lzX3Jvb3RfYnJp ZGdlKGJyKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkocCwgJmJyLT5wb3J0X2xpc3QsIGxpc3Qp IHsKQEAgLTI2Niw2ICsyNjcsNyBAQCB2b2lkIGJyX3N0cF9zZXRfYnJpZGdlX3ByaW9yaXR5KHN0 cnVjdCBuZXRfYnJpZGdlICpiciwgdTE2IG5ld3ByaW8pCiAJYnJfcG9ydF9zdGF0ZV9zZWxlY3Rp b24oYnIpOwogCWlmIChicl9pc19yb290X2JyaWRnZShicikgJiYgIXdhc3Jvb3QpCiAJCWJyX2Jl Y29tZV9yb290X2JyaWRnZShicik7CisJc3Bpbl91bmxvY2tfYmgoJmJyLT5sb2NrKTsKIH0KIAog LyogY2FsbGVkIHVuZGVyIGJyaWRnZSBsb2NrICovCi0tIAoyLjEuMAoKCkZyb20gN2VhZWNhNDgy ZjBiMTBkYjllODdkY2ZlMjRiMjNjOTAxYzIzODUwOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDE2IEp1 biAyMDE1IDA3OjU5OjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNS8xMF0gcGFja2V0OiByZWFk IG51bV9tZW1iZXJzIG9uY2UgaW4gcGFja2V0X3Jjdl9mYW5vdXQoKQoKWyBVcHN0cmVhbSBjb21t aXQgZjk4ZjQ1MTRkMDc4NzFkYTdhMTEzZGQ5ZTNlMzMwNzQzZmQ3MGFlNCBdCgpXZSBuZWVkIHRv IHRlbGwgY29tcGlsZXIgaXQgbXVzdCBub3QgcmVhZCBmLT5udW1fbWVtYmVycyBtdWx0aXBsZQp0 aW1lcy4gT3RoZXJ3aXNlIHRlc3RpbmcgaWYgbnVtIGlzIG5vdCB6ZXJvIGlzIGZsYWt5LCBhbmQg d2UgY291bGQKYXR0ZW1wdCBhbiBpbnZhbGlkIGRpdmlkZSBieSAwIGluIGZhbm91dF9kZW11eF9j cHUoKQoKTm90ZSBidWcgd2FzIHByZXNlbnQgaW4gcGFja2V0X3Jjdl9mYW5vdXRfaGFzaCgpIGFu ZApwYWNrZXRfcmN2X2Zhbm91dF9sYigpIGJ1dCBmaW5hbCAzLjEgaGFkIGEgc2ltcGxlIGxvY2F0 aW9uCmFmdGVyIGNvbW1pdCA5NWVjM2ViNDE3MTE1ZmIgKCJwYWNrZXQ6IEFkZCAnY3B1JyBmYW5v dXQgcG9saWN5LiIpCgpGaXhlczogZGM5OWY2MDA2OThkYyAoInBhY2tldDogQWRkIGZhbm91dCBz dXBwb3J0LiIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KQ2M6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9wYWNrZXQv YWZfcGFja2V0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tl dC9hZl9wYWNrZXQuYwppbmRleCA0OGIxODE3Li5mMjM4NTMwIDEwMDY0NAotLS0gYS9uZXQvcGFj a2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTEzNDUsNyAr MTM0NSw3IEBAIHN0YXRpYyBpbnQgcGFja2V0X3Jjdl9mYW5vdXQoc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCSAgICAgc3RydWN0IHBhY2tldF90eXBlICpw dCwgc3RydWN0IG5ldF9kZXZpY2UgKm9yaWdfZGV2KQogewogCXN0cnVjdCBwYWNrZXRfZmFub3V0 ICpmID0gcHQtPmFmX3BhY2tldF9wcml2OwotCXVuc2lnbmVkIGludCBudW0gPSBmLT5udW1fbWVt YmVyczsKKwl1bnNpZ25lZCBpbnQgbnVtID0gQUNDRVNTX09OQ0UoZi0+bnVtX21lbWJlcnMpOwog CXN0cnVjdCBwYWNrZXRfc29jayAqcG87CiAJdW5zaWduZWQgaW50IGlkeDsKIAotLSAKMi4xLjAK CgpGcm9tIDhjZTdiMDU4MzQ5MjZlNzdiZDMxOTkwNGZjMDM5ZThhZTA1NjQ5ZTcgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNv bT4KRGF0ZTogV2VkLCAxNyBKdW4gMjAxNSAxNTo1OTozNCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMTBdIHBhY2tldDogYXZvaWQgb3V0IG9mIGJvdW5kcyByZWFkIGluIHJvdW5kIHJvYmluIGZh bm91dAoKWyBVcHN0cmVhbSBjb21taXQgNDY4NDc5ZTYwNDNjODRmNWE2NTI5OWNjMDdjYjA4YTIy YTI4YzJiMSBdCgpQQUNLRVRfRkFOT1VUX0xCIGNvbXB1dGVzIGYtPnJyX2N1ciBzdWNoIHRoYXQg aXQgaXMgbW9kdWxvCmYtPm51bV9tZW1iZXJzLiBJdCByZXR1cm5zIHRoZSBvbGQgdmFsdWUgdW5j b25kaXRpb25hbGx5LCBidXQKZi0+bnVtX21lbWJlcnMgbWF5IGhhdmUgY2hhbmdlZCBzaW5jZSB0 aGUgbGFzdCBzdG9yZS4gRW5zdXJlCnRoYXQgdGhlIHJldHVybiB2YWx1ZSBpcyBhbHdheXMgPCBu dW0uCgpXaGVuIG1vZGlmeWluZyB0aGUgbG9naWMsIHNpbXBsaWZ5IGl0IGZ1cnRoZXIgYnkgcmVw bGFjaW5nIHRoZSBsb29wCndpdGggYW4gdW5jb25kaXRpb25hbCBhdG9taWMgaW5jcmVtZW50LgoK Rml4ZXM6IGRjOTlmNjAwNjk4ZCAoInBhY2tldDogQWRkIGZhbm91dCBzdXBwb3J0LiIpClN1Z2dl c3RlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgMTgg KystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxNiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYwppbmRleCBmMjM4NTMwLi44NGE2MGI4IDEwMDY0NAotLS0gYS9uZXQv cGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTEyNjQs MTYgKzEyNjQsNiBAQCBzdGF0aWMgdm9pZCBwYWNrZXRfc29ja19kZXN0cnVjdChzdHJ1Y3Qgc29j ayAqc2spCiAJc2tfcmVmY250X2RlYnVnX2RlYyhzayk7CiB9CiAKLXN0YXRpYyBpbnQgZmFub3V0 X3JyX25leHQoc3RydWN0IHBhY2tldF9mYW5vdXQgKmYsIHVuc2lnbmVkIGludCBudW0pCi17Ci0J aW50IHggPSBhdG9taWNfcmVhZCgmZi0+cnJfY3VyKSArIDE7Ci0KLQlpZiAoeCA+PSBudW0pCi0J CXggPSAwOwotCi0JcmV0dXJuIHg7Ci19Ci0KIHN0YXRpYyB1bnNpZ25lZCBpbnQgZmFub3V0X2Rl bXV4X2hhc2goc3RydWN0IHBhY2tldF9mYW5vdXQgKmYsCiAJCQkJICAgICAgc3RydWN0IHNrX2J1 ZmYgKnNrYiwKIAkJCQkgICAgICB1bnNpZ25lZCBpbnQgbnVtKQpAQCAtMTI4NSwxMyArMTI3NSw5 IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZmFub3V0X2RlbXV4X2xiKHN0cnVjdCBwYWNrZXRfZmFu b3V0ICpmLAogCQkJCSAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCSAgICB1bnNpZ25lZCBp bnQgbnVtKQogewotCWludCBjdXIsIG9sZDsKKwl1bnNpZ25lZCBpbnQgdmFsID0gYXRvbWljX2lu Y19yZXR1cm4oJmYtPnJyX2N1cik7CiAKLQljdXIgPSBhdG9taWNfcmVhZCgmZi0+cnJfY3VyKTsK LQl3aGlsZSAoKG9sZCA9IGF0b21pY19jbXB4Y2hnKCZmLT5ycl9jdXIsIGN1ciwKLQkJCQkgICAg IGZhbm91dF9ycl9uZXh0KGYsIG51bSkpKSAhPSBjdXIpCi0JCWN1ciA9IG9sZDsKLQlyZXR1cm4g Y3VyOworCXJldHVybiB2YWwgJSBudW07CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZmFub3V0 X2RlbXV4X2NwdShzdHJ1Y3QgcGFja2V0X2Zhbm91dCAqZiwKLS0gCjIuMS4wCgoKRnJvbSA2MGNi YzhiOTE3ODI3MWQ0YzllNjcxYmFlMTYwMDNkODI1ZDQwMWU4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKdWxpYW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+CkRhdGU6IFR1ZSwgMTYgSnVu IDIwMTUgMjI6NTY6MzkgKzAzMDAKU3ViamVjdDogW1BBVENIIDA3LzEwXSBuZWlnaDogZG8gbm90 IG1vZGlmeSB1bmxpbmtlZCBlbnRyaWVzCgpbIFVwc3RyZWFtIGNvbW1pdCAyYzUxYTk3Zjc2ZDIw ZWJmMWY1MGZlZjkwOGI5ODZjYjA1MWZkZmY5IF0KClRoZSBsb2NrbGVzcyBsb29rdXBzIGNhbiBy ZXR1cm4gZW50cnkgdGhhdCBpcyB1bmxpbmtlZC4KU29tZXRpbWVzIHRoZXkgZ2V0IHJlZmVyZW5j ZSBiZWZvcmUgbGFzdCBuZWlnaF9jbGVhbnVwX2FuZF9yZWxlYXNlLApzb21ldGltZXMgdGhleSBk byBub3QgbmVlZCByZWZlcmVuY2UuIExhdGVyLCBhbnkKbW9kaWZpY2F0aW9uIGF0dGVtcHRzIG1h eSByZXN1bHQgaW4gdGhlIGZvbGxvd2luZyBwcm9ibGVtczoKCjEuIGVudHJ5IGlzIG5vdCBkZXN0 cm95ZWQgaW1tZWRpYXRlbHkgYmVjYXVzZSBuZWlnaF91cGRhdGUKY2FuIHN0YXJ0IHRoZSB0aW1l ciBmb3IgZGVhZCBlbnRyeSwgZWcuIG9uIGNoYW5nZSB0byBOVURfUkVBQ0hBQkxFCnN0YXRlLiBB cyByZXN1bHQsIGVudHJ5IGxpdmVzIGZvciBzb21lIHRpbWUgYnV0IGlzIGludmlzaWJsZQphbmQg b3V0IG9mIGNvbnRyb2wuCgoyLiBfX25laWdoX2V2ZW50X3NlbmQgY2FuIHJ1biBpbiBwYXJhbGxl bCB3aXRoIG5laWdoX2Rlc3Ryb3kKd2hpbGUgcmVmY250PTAgYnV0IGlmIHRpbWVyIGlzIHN0YXJ0 ZWQgYW5kIGV4cGlyZWQgcmVmY250IGNhbgpyZWFjaCAwIGZvciBzZWNvbmQgdGltZSBsZWFkaW5n IHRvIHNlY29uZCBuZWlnaF9kZXN0cm95IGFuZApwb3NzaWJsZSBjcmFzaC4KClRoYW5rcyB0byBF cmljIER1bWF6ZXQgYW5kIFlpbmcgWHVlIGZvciB0aGVpciB3b3JrIGFuZCBhbmFseXplCm9uIHRo ZSBfX25laWdoX2V2ZW50X3NlbmQgY2hhbmdlLgoKRml4ZXM6IDc2N2U5N2UxZTBkYiAoIm5laWdo OiBSQ1UgY29udmVyc2lvbiBvZiBzdHJ1Y3QgbmVpZ2hib3VyIikKRml4ZXM6IGEyNjNiMzA5MzY0 MSAoImlwdjQ6IE1ha2UgbmVpZ2ggbG9va3VwcyBkaXJlY3RseSBpbiBvdXRwdXQgcGFja2V0IHBh dGguIikKRml4ZXM6IDZmZDZjZTIwNTZkZSAoImlwdjY6IERvIG5vdCBkZXBlbmQgb24gcnQtPm4g aW4gaXA2X2ZpbmlzaF9vdXRwdXQyKCkuIikKQ2M6IEVyaWMgRHVtYXpldCA8ZXJpYy5kdW1hemV0 QGdtYWlsLmNvbT4KQ2M6IFlpbmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpTaWduZWQt b2ZmLWJ5OiBKdWxpYW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+CkFja2VkLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9uZWlnaGJvdXIuYyB8IDEzICsrKysr KysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv bmV0L2NvcmUvbmVpZ2hib3VyLmMgYi9uZXQvY29yZS9uZWlnaGJvdXIuYwppbmRleCA3ZDk1ZjY5 Li4wZjA2MmM2IDEwMDY0NAotLS0gYS9uZXQvY29yZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29y ZS9uZWlnaGJvdXIuYwpAQCAtOTc2LDYgKzk3Niw4IEBAIGludCBfX25laWdoX2V2ZW50X3NlbmQo c3RydWN0IG5laWdoYm91ciAqbmVpZ2gsIHN0cnVjdCBza19idWZmICpza2IpCiAJcmMgPSAwOwog CWlmIChuZWlnaC0+bnVkX3N0YXRlICYgKE5VRF9DT05ORUNURUQgfCBOVURfREVMQVkgfCBOVURf UFJPQkUpKQogCQlnb3RvIG91dF91bmxvY2tfYmg7CisJaWYgKG5laWdoLT5kZWFkKQorCQlnb3Rv IG91dF9kZWFkOwogCiAJaWYgKCEobmVpZ2gtPm51ZF9zdGF0ZSAmIChOVURfU1RBTEUgfCBOVURf SU5DT01QTEVURSkpKSB7CiAJCWlmIChORUlHSF9WQVIobmVpZ2gtPnBhcm1zLCBNQ0FTVF9QUk9C RVMpICsKQEAgLTEwMzIsNiArMTAzNCwxMyBAQCBvdXRfdW5sb2NrX2JoOgogCQl3cml0ZV91bmxv Y2soJm5laWdoLT5sb2NrKTsKIAlsb2NhbF9iaF9lbmFibGUoKTsKIAlyZXR1cm4gcmM7CisKK291 dF9kZWFkOgorCWlmIChuZWlnaC0+bnVkX3N0YXRlICYgTlVEX1NUQUxFKQorCQlnb3RvIG91dF91 bmxvY2tfYmg7CisJd3JpdGVfdW5sb2NrX2JoKCZuZWlnaC0+bG9jayk7CisJa2ZyZWVfc2tiKHNr Yik7CisJcmV0dXJuIDE7CiB9CiBFWFBPUlRfU1lNQk9MKF9fbmVpZ2hfZXZlbnRfc2VuZCk7CiAK QEAgLTEwOTUsNiArMTEwNCw4IEBAIGludCBuZWlnaF91cGRhdGUoc3RydWN0IG5laWdoYm91ciAq bmVpZ2gsIGNvbnN0IHU4ICpsbGFkZHIsIHU4IG5ldywKIAlpZiAoIShmbGFncyAmIE5FSUdIX1VQ REFURV9GX0FETUlOKSAmJgogCSAgICAob2xkICYgKE5VRF9OT0FSUCB8IE5VRF9QRVJNQU5FTlQp KSkKIAkJZ290byBvdXQ7CisJaWYgKG5laWdoLT5kZWFkKQorCQlnb3RvIG91dDsKIAogCWlmICgh KG5ldyAmIE5VRF9WQUxJRCkpIHsKIAkJbmVpZ2hfZGVsX3RpbWVyKG5laWdoKTsKQEAgLTEyNDQs NiArMTI1NSw4IEBAIEVYUE9SVF9TWU1CT0wobmVpZ2hfdXBkYXRlKTsKICAqLwogdm9pZCBfX25l aWdoX3NldF9wcm9iZV9vbmNlKHN0cnVjdCBuZWlnaGJvdXIgKm5laWdoKQogeworCWlmIChuZWln aC0+ZGVhZCkKKwkJcmV0dXJuOwogCW5laWdoLT51cGRhdGVkID0gamlmZmllczsKIAlpZiAoIShu ZWlnaC0+bnVkX3N0YXRlICYgTlVEX0ZBSUxFRCkpCiAJCXJldHVybjsKLS0gCjIuMS4wCgoKRnJv bSBmZDRjMTZjNGJkODk1ZDlhYzZlMGE3NWFiMzJlYWQxZTRiZTZiMGNkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggUGFhc2NoIDxjcGFhc2NoQGFwcGxlLmNvbT4KRGF0 ZTogVGh1LCAxOCBKdW4gMjAxNSAwOToxNTozNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMTBd IHRjcDogRG8gbm90IGNhbGwgdGNwX2Zhc3RvcGVuX3Jlc2V0X2NpcGhlciBmcm9tCiBpbnRlcnJ1 cHQgY29udGV4dAoKWyBVcHN0cmVhbSBjb21taXQgZGZlYTJhYTY1NDI0M2Y3MGRjNTNiODY0OGQw YmJkZWVjNTVhN2RmMSBdCgp0Y3BfZmFzdG9wZW5fcmVzZXRfY2lwaGVyIHJlYWxseSBjYW5ub3Qg YmUgY2FsbGVkIGZyb20gaW50ZXJydXB0CmNvbnRleHQuIEl0IGFsbG9jYXRlcyB0aGUgdGNwX2Zh c3RvcGVuX2NvbnRleHQgd2l0aCBHRlBfS0VSTkVMIGFuZApjYWxscyBjcnlwdG9fYWxsb2NfY2lw aGVyLCB3aGljaCBhbGxvY2F0ZXMgYWxsIGtpbmQgb2Ygc3R1ZmYgd2l0aApHRlBfS0VSTkVMLgoK VGh1cywgd2UgbWlnaHQgc2xlZXAgd2hlbiB0aGUga2V5LWdlbmVyYXRpb24gaXMgdHJpZ2dlcmVk IGJ5IGFuCmluY29taW5nIFRGTyBjb29raWUtcmVxdWVzdCB3aGljaCB3b3VsZCB0aGVuIGhhcHBl biBpbiBpbnRlcnJ1cHQtCmNvbnRleHQsIGFzIHNob3duIGJ5IGVuYWJsaW5nIENPTkZJR19ERUJV R19BVE9NSUNfU0xFRVA6CgpbICAgMzYuMDAxODEzXSBCVUc6IHNsZWVwaW5nIGZ1bmN0aW9uIGNh bGxlZCBmcm9tIGludmFsaWQgY29udGV4dCBhdCBtbS9zbHViLmM6MTI2NgpbICAgMzYuMDAzNjI0 XSBpbl9hdG9taWMoKTogMSwgaXJxc19kaXNhYmxlZCgpOiAwLCBwaWQ6IDEwMTYsIG5hbWU6IHBh Y2tldGRyaWxsClsgICAzNi4wMDQ4NTldIENQVTogMSBQSUQ6IDEwMTYgQ29tbTogcGFja2V0ZHJp bGwgTm90IHRhaW50ZWQgNC4xLjAtcmM3ICMxNApbICAgMzYuMDA2MDg1XSBIYXJkd2FyZSBuYW1l OiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyByZWwtMS43LjUt MC1nZTUxNDg4Yy0yMDE0MDYwMl8xNjQ2MTItbmlsc3Nvbi5ob21lLmtyYXhlbC5vcmcgMDQvMDEv MjAxNApbICAgMzYuMDA4MjUwXSAgMDAwMDAwMDAwMDAwMDRmMiBmZmZmODgwMDdmODgzOGE4IGZm ZmZmZmZmODE3MWQ1M2EgZmZmZjg4MDA3NWEwODRhOApbICAgMzYuMDA5NjMwXSAgZmZmZjg4MDA3 NWEwODAwMCBmZmZmODgwMDdmODgzOGM4IGZmZmZmZmZmODEwOTY3ZDMgZmZmZjg4MDA3Zjg4Mzky OApbICAgMzYuMDExMDc2XSAgMDAwMDAwMDAwMDAwMDAwMCBmZmZmODgwMDdmODgzOGY4IGZmZmZm ZmZmODEwOTY4OTIgZmZmZjg4MDA3Zjg5YmUwMApbICAgMzYuMDEyNDk0XSBDYWxsIFRyYWNlOgpb ICAgMzYuMDEyOTUzXSAgPElSUT4gIFs8ZmZmZmZmZmY4MTcxZDUzYT5dIGR1bXBfc3RhY2srMHg0 Zi8weDZkClsgICAzNi4wMTQwODVdICBbPGZmZmZmZmZmODEwOTY3ZDM+XSBfX19taWdodF9zbGVl cCsweDEwMy8weDE3MApbICAgMzYuMDE1MTE3XSAgWzxmZmZmZmZmZjgxMDk2ODkyPl0gX19taWdo dF9zbGVlcCsweDUyLzB4OTAKWyAgIDM2LjAxNjExN10gIFs8ZmZmZmZmZmY4MTE4ZTg4Nz5dIGtt ZW1fY2FjaGVfYWxsb2NfdHJhY2UrMHg0Ny8weDE5MApbICAgMzYuMDE3MjY2XSAgWzxmZmZmZmZm ZjgxNjgwZDgyPl0gPyB0Y3BfZmFzdG9wZW5fcmVzZXRfY2lwaGVyKzB4NDIvMHgxMzAKWyAgIDM2 LjAxODQ4NV0gIFs8ZmZmZmZmZmY4MTY4MGQ4Mj5dIHRjcF9mYXN0b3Blbl9yZXNldF9jaXBoZXIr MHg0Mi8weDEzMApbICAgMzYuMDE5Njc5XSAgWzxmZmZmZmZmZjgxNjgwZjAxPl0gdGNwX2Zhc3Rv cGVuX2luaXRfa2V5X29uY2UrMHg2MS8weDcwClsgICAzNi4wMjA4ODRdICBbPGZmZmZmZmZmODE2 ODBmMmM+XSBfX3RjcF9mYXN0b3Blbl9jb29raWVfZ2VuKzB4MWMvMHg2MApbICAgMzYuMDIyMDU4 XSAgWzxmZmZmZmZmZjgxNjgxNGZmPl0gdGNwX3RyeV9mYXN0b3BlbisweDU4Zi8weDczMApbICAg MzYuMDIzMTE4XSAgWzxmZmZmZmZmZjgxNjcxNzg4Pl0gdGNwX2Nvbm5fcmVxdWVzdCsweDNlOC8w eDdiMApbICAgMzYuMDI0MTg1XSAgWzxmZmZmZmZmZjgxMGUzODcyPl0gPyBfX21vZHVsZV90ZXh0 X2FkZHJlc3MrMHgxMi8weDYwClsgICAzNi4wMjUzMjddICBbPGZmZmZmZmZmODE2N2IyZTE+XSB0 Y3BfdjRfY29ubl9yZXF1ZXN0KzB4NTEvMHg2MApbICAgMzYuMDI2NDEwXSAgWzxmZmZmZmZmZjgx NjcyN2UwPl0gdGNwX3Jjdl9zdGF0ZV9wcm9jZXNzKzB4MTkwLzB4ZGEwClsgICAzNi4wMjc1NTZd ICBbPGZmZmZmZmZmODE2NjFmOTc+XSA/IF9faW5ldF9sb29rdXBfZXN0YWJsaXNoZWQrMHg0Ny8w eDE3MApbICAgMzYuMDI4Nzg0XSAgWzxmZmZmZmZmZjgxNjdjMmFkPl0gdGNwX3Y0X2RvX3Jjdisw eDE2ZC8weDNkMApbICAgMzYuMDI5ODMyXSAgWzxmZmZmZmZmZjgxMmU2ODA2Pl0gPyBzZWN1cml0 eV9zb2NrX3Jjdl9za2IrMHgxNi8weDIwClsgICAzNi4wMzA5MzZdICBbPGZmZmZmZmZmODE2N2Nj OGE+XSB0Y3BfdjRfcmN2KzB4NzdhLzB4N2IwClsgICAzNi4wMzE4NzVdICBbPGZmZmZmZmZmODE2 YWY4YzM+XSA/IGlwdGFibGVfZmlsdGVyX2hvb2srMHgzMy8weDcwClsgICAzNi4wMzI5NTNdICBb PGZmZmZmZmZmODE2NTdkMjI+XSBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDkyLzB4MWYwClsg ICAzNi4wMzQwNjVdICBbPGZmZmZmZmZmODE2NTdmMWE+XSBpcF9sb2NhbF9kZWxpdmVyKzB4OWEv MHhiMApbICAgMzYuMDM1MDY5XSAgWzxmZmZmZmZmZjgxNjU3YzkwPl0gPyBpcF9yY3YrMHgzZDAv MHgzZDAKWyAgIDM2LjAzNTk2M10gIFs8ZmZmZmZmZmY4MTY1NzU2OT5dIGlwX3Jjdl9maW5pc2gr MHgxMTkvMHgzMzAKWyAgIDM2LjAzNjk1MF0gIFs8ZmZmZmZmZmY4MTY1N2JhNz5dIGlwX3Jjdisw eDJlNy8weDNkMApbICAgMzYuMDM3ODQ3XSAgWzxmZmZmZmZmZjgxNjEwNjUyPl0gX19uZXRpZl9y ZWNlaXZlX3NrYl9jb3JlKzB4NTUyLzB4OTMwClsgICAzNi4wMzg5OTRdICBbPGZmZmZmZmZmODE2 MTBhNTc+XSBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MjcvMHg3MApbICAgMzYuMDQwMDMzXSAgWzxm ZmZmZmZmZjgxNjEwYjcyPl0gcHJvY2Vzc19iYWNrbG9nKzB4ZDIvMHgxZjAKWyAgIDM2LjA0MTAy NV0gIFs8ZmZmZmZmZmY4MTYxMTQ4Mj5dIG5ldF9yeF9hY3Rpb24rMHgxMjIvMHgzMTAKWyAgIDM2 LjA0MjAwN10gIFs8ZmZmZmZmZmY4MTA3Njc0Mz5dIF9fZG9fc29mdGlycSsweDEwMy8weDJmMApb ICAgMzYuMDQyOTc4XSAgWzxmZmZmZmZmZjgxNzIzZTNjPl0gZG9fc29mdGlycV9vd25fc3RhY2sr MHgxYy8weDMwCgpUaGlzIHBhdGNoIG1vdmVzIHRoZSBjYWxsIHRvIHRjcF9mYXN0b3Blbl9pbml0 X2tleV9vbmNlIHRvIHRoZSBwbGFjZXMKd2hlcmUgYSBsaXN0ZW5lciBzb2NrZXQgY3JlYXRlcyBp dHMgVEZPLXN0YXRlLCB3aGljaCBhbHdheXMgaGFwcGVucyBpbgp1c2VyLWNvbnRleHQgKGVpdGhl ciBmcm9tIHRoZSBzZXRzb2Nrb3B0LCBvciBpbXBsaWNpdGx5IGR1cmluZyB0aGUKbGlzdGVuKCkt Y2FsbCkKCkNjOiBFcmljIER1bWF6ZXQgPGVyaWMuZHVtYXpldEBnbWFpbC5jb20+CkNjOiBIYW5u ZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+CkZpeGVzOiAyMjJl ODNkMmUwYWUgKCJ0Y3A6IHN3aXRjaCB0Y3BfZmFzdG9wZW4ga2V5IGdlbmVyYXRpb24gdG8gbmV0 X2dldF9yYW5kb21fb25jZSIpClNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBQYWFzY2ggPGNwYWFz Y2hAYXBwbGUuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjQvYWZfaW5ldC5jICAgICAgfCAyICsrCiBuZXQvaXB2NC90Y3AuYyAgICAgICAg ICB8IDcgKysrKystLQogbmV0L2lwdjQvdGNwX2Zhc3RvcGVuLmMgfCAyIC0tCiAzIGZpbGVzIGNo YW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2NC9hZl9pbmV0LmMgYi9uZXQvaXB2NC9hZl9pbmV0LmMKaW5kZXggMDdiZDhlZC4uOTUxZmU1 NSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvYWZfaW5ldC5jCisrKyBiL25ldC9pcHY0L2FmX2luZXQu YwpAQCAtMjI4LDYgKzIyOCw4IEBAIGludCBpbmV0X2xpc3RlbihzdHJ1Y3Qgc29ja2V0ICpzb2Nr LCBpbnQgYmFja2xvZykKIAkJCQllcnIgPSAwOwogCQkJaWYgKGVycikKIAkJCQlnb3RvIG91dDsK KworCQkJdGNwX2Zhc3RvcGVuX2luaXRfa2V5X29uY2UodHJ1ZSk7CiAJCX0KIAkJZXJyID0gaW5l dF9jc2tfbGlzdGVuX3N0YXJ0KHNrLCBiYWNrbG9nKTsKIAkJaWYgKGVycikKZGlmZiAtLWdpdCBh L25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggMjlkMjQwYi4uZGM0NTIyMSAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTI2ODQs MTAgKzI2ODQsMTMgQEAgc3RhdGljIGludCBkb190Y3Bfc2V0c29ja29wdChzdHJ1Y3Qgc29jayAq c2ssIGludCBsZXZlbCwKIAogCWNhc2UgVENQX0ZBU1RPUEVOOgogCQlpZiAodmFsID49IDAgJiYg KCgxIDw8IHNrLT5za19zdGF0ZSkgJiAoVENQRl9DTE9TRSB8Ci0JCSAgICBUQ1BGX0xJU1RFTikp KQorCQkgICAgVENQRl9MSVNURU4pKSkgeworCQkJdGNwX2Zhc3RvcGVuX2luaXRfa2V5X29uY2Uo dHJ1ZSk7CisKIAkJCWVyciA9IGZhc3RvcGVuX2luaXRfcXVldWUoc2ssIHZhbCk7Ci0JCWVsc2UK KwkJfSBlbHNlIHsKIAkJCWVyciA9IC1FSU5WQUw7CisJCX0KIAkJYnJlYWs7CiAJY2FzZSBUQ1Bf VElNRVNUQU1QOgogCQlpZiAoIXRwLT5yZXBhaXIpCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bf ZmFzdG9wZW4uYyBiL25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jCmluZGV4IGYxOTVkOTMuLmVlNjUx OGQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jCisrKyBiL25ldC9pcHY0L3Rj cF9mYXN0b3Blbi5jCkBAIC04NCw4ICs4NCw2IEBAIHZvaWQgdGNwX2Zhc3RvcGVuX2Nvb2tpZV9n ZW4oX19iZTMyIHNyYywgX19iZTMyIGRzdCwKIAlfX2JlMzIgcGF0aFs0XSA9IHsgc3JjLCBkc3Qs IDAsIDAgfTsKIAlzdHJ1Y3QgdGNwX2Zhc3RvcGVuX2NvbnRleHQgKmN0eDsKIAotCXRjcF9mYXN0 b3Blbl9pbml0X2tleV9vbmNlKHRydWUpOwotCiAJcmN1X3JlYWRfbG9jaygpOwogCWN0eCA9IHJj dV9kZXJlZmVyZW5jZSh0Y3BfZmFzdG9wZW5fY3R4KTsKIAlpZiAoY3R4KSB7Ci0tIAoyLjEuMAoK CkZyb20gNjk5ZGFkNmU3M2VjNjYxOGRmZDczNzlhMDg3ZWE1NTNiZmU2MzFmYiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTXVndW50aGFuIFYgTiA8bXVndW50aGFudm5tQHRpLmNvbT4K RGF0ZTogVGh1LCAyNSBKdW4gMjAxNSAyMjoyMTowMiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMDkv MTBdIG5ldDogcGh5OiBmaXggcGh5IGxpbmsgdXAgd2hlbiBsaW1pdGluZyBzcGVlZCB2aWEKIGRl dmljZSB0cmVlCgpbIFVwc3RyZWFtIGNvbW1pdCBlYjY4NjIzMWZjZTM3NzAyOTk3NjBmMjRmZGNm NWFkMDQxZjQ0MTUzIF0KCldoZW4gbGltaXRpbmcgcGh5IGxpbmsgc3BlZWQgdXNpbmcgIm1heC1z cGVlZCIgdG8gMTAwbWJwcyBvciBsZXNzIG9uIGEKZ2lnYSBiaXQgcGh5LCBwaHkgbmV2ZXIgY29t cGxldGVzIGF1dG8gbmVnb3RpYXRpb24gYW5kIHBoeSBzdGF0ZQptYWNoaW5lIGlzIGhlbGQgaW4g UEhZX0FOLiBGaXhpbmcgdGhpcyBpc3N1ZSBieSBjb21wYXJpbmcgdGhlIGdpZ2EKYml0IGFkdmVy dGlzZSB0aG91Z2ggcGh5ZGV2LT5zdXBwb3J0ZWQgZG9lc24ndCBoYXZlIGl0IGJ1dCBwaHkgaGFz CkJNU1JfRVNUQVRFTiBzZXQuIFNvIHRoYXQgYXV0byBuZWdvdGlhdGlvbiBpcyByZXN0YXJ0ZWQg YXMgb2xkIGFuZApuZXcgYWR2ZXJ0aXNlIGFyZSBkaWZmZXJlbnQgYW5kIGxpbmsgY29tZXMgdXAg ZmluZS4KClNpZ25lZC1vZmYtYnk6IE11Z3VudGhhbiBWIE4gPG11Z3VudGhhbnZubUB0aS5jb20+ ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMgfCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Bo eS9waHlfZGV2aWNlLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCmluZGV4IDI1Zjc0 MTkuLjYyYzNmYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMKKysr IGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYwpAQCAtNzY1LDEwICs3NjUsMTEgQEAgc3Rh dGljIGludCBnZW5waHlfY29uZmlnX2FkdmVydChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQog CWlmIChwaHlkZXYtPnN1cHBvcnRlZCAmIChTVVBQT1JURURfMTAwMGJhc2VUX0hhbGYgfAogCQkJ CSBTVVBQT1JURURfMTAwMGJhc2VUX0Z1bGwpKSB7CiAJCWFkdiB8PSBldGh0b29sX2Fkdl90b19t aWlfY3RybDEwMDBfdChhZHZlcnRpc2UpOwotCQlpZiAoYWR2ICE9IG9sZGFkdikKLQkJCWNoYW5n ZWQgPSAxOwogCX0KIAorCWlmIChhZHYgIT0gb2xkYWR2KQorCQljaGFuZ2VkID0gMTsKKwogCWVy ciA9IHBoeV93cml0ZShwaHlkZXYsIE1JSV9DVFJMMTAwMCwgYWR2KTsKIAlpZiAoZXJyIDwgMCkK IAkJcmV0dXJuIGVycjsKLS0gCjIuMS4wCgoKRnJvbSA1NTgwYmRiZGYyMDNkMmZlYmE4ODVhYzA2 MTkzYTc4MGExYjdhMTQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIg U3ZlcmRsaW4gPGFsZXhhbmRlci5zdmVyZGxpbkBub2tpYS5jb20+CkRhdGU6IE1vbiwgMjkgSnVu IDIwMTUgMTA6NDE6MDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzEwXSBzY3RwOiBGaXggcmFj ZSBiZXR3ZWVuIE9PVEIgcmVzcG9uY2UgYW5kIHJvdXRlIHJlbW92YWwKClsgVXBzdHJlYW0gY29t bWl0IDI5YzRhZmM0ZTk4ZjRkYzBlYTlkZjIyYzYzMTg0MWY5YzIyMGI5NDQgXQoKVGhlcmUgaXMg TlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHBvc3NpYmxlIGR1cmluZyBzdGF0aXN0aWNzIHVwZGF0 ZSBpZiB0aGUgcm91dGUKdXNlZCBmb3IgT09UQiByZXNwb25jZSBpcyByZW1vdmVkIGF0IHVuZm9y dHVuYXRlIHRpbWUuIElmIHRoZSByb3V0ZSBleGlzdHMgd2hlbgp3ZSByZWNlaXZlIE9PVEIgcGFj a2V0IGFuZCB3ZSBmaW5hbGx5IGp1bXAgaW50byBzY3RwX3BhY2tldF90cmFuc21pdCgpIHRvIHNl bmQKQUJPUlQsIGJ1dCBpbiB0aGUgbWVhbnRpbWUgcm91dGUgaXMgcmVtb3ZlZCB1bmRlciBvdXIg ZmVldCwgd2UgdGFrZSAibm9fcm91dGUiCnBhdGggYW5kIHRyeSB0byB1cGRhdGUgc3RhdHMgd2l0 aCBJUF9JTkNfU1RBVFMoc29ja19uZXQoYXNvYy0+YmFzZS5zayksIC4uLikuCgpCdXQgc2N0cF9v b3RiX3BrdF9uZXcoKSB1c2VkIHRvIHByZXBhcmUgcmVzcG9uY2UgcGFja2V0IGRvZXNuJ3QgY2Fs bApzY3RwX3RyYW5zcG9ydF9zZXRfb3duZXIoKSBhbmQgdGhlcmVmb3JlIHRoZXJlIGlzIG5vIGFz b2MgYXNzb2NpYXRlZCB3aXRoIHRoaXMKcGFja2V0LiBQcm9iYWJseSB0ZW1wb3JhcnkgYXNvYyBq dXN0IGZvciBPT1RCIHJlc3BvbmNlcyBpcyBvdmVya2lsbCwgc28ganVzdAppbnRyb2R1Y2UgYSBj aGVjayBsaWtlIGluIGFsbCBvdGhlciBwbGFjZXMgaW4gc2N0cF9wYWNrZXRfdHJhbnNtaXQoKSwg d2hlcmUKImFzb2MiIGlzIGRlcmVmZXJlbmNlZC4KClRvIHJlcHJvZHVjZSB0aGlzLCBvbmUgbmVl ZHMgdG8KMC4gZW5zdXJlIHRoYXQgc2N0cCBtb2R1bGUgaXMgbG9hZGVkIChvdGhlcndpc2UgQUJP UlQgaXMgbm90IGdlbmVyYXRlZCkKMS4gcmVtb3ZlIGRlZmF1bHQgcm91dGUgb24gdGhlIG1hY2hp bmUKMi4gd2hpbGUgdHJ1ZTsgZG8KICAgICBpcCByb3V0ZSBkZWwgW2ludGVyZmFjZS1zcGVjaWZp YyByb3V0ZV0KICAgICBpcCByb3V0ZSBhZGQgW2ludGVyZmFjZS1zcGVjaWZpYyByb3V0ZV0KICAg ZG9uZQozLiBzZW5kIGVub3VnaCBPT1RCIHBhY2tldHMgKGkuZS4gSEIgUkVRcykgZnJvbSBhbm90 aGVyIGhvc3QgdG8gdHJpZ2dlciBBQk9SVAogICByZXNwb25jZQoKT24geDg2XzY0IHRoZSBjcmFz aCBsb29rcyBsaWtlIHRoaXM6CgpCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9p bnRlciBkZXJlZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwMDIwCklQOiBbPGZmZmZmZmZmYTA1ZWM5 YWM+XSBzY3RwX3BhY2tldF90cmFuc21pdCsweDYzYy8weDczMCBbc2N0cF0KUEdEIDAKT29wczog MDAwMCBbIzFdIFBSRUVNUFQgU01QCk1vZHVsZXMgbGlua2VkIGluOiAuLi4KQ1BVOiAwIFBJRDog MCBDb21tOiBzd2FwcGVyLzAgVGFpbnRlZDogRyAgICAgICAgICAgTyAgICA0LjAuNS0xLUFSQ0gg IzEKSGFyZHdhcmUgbmFtZTogLi4uCnRhc2s6IGZmZmZmZmZmODE4MTI0YzAgdGk6IGZmZmZmZmZm ODE4MDAwMDAgdGFzay50aTogZmZmZmZmZmY4MTgwMDAwMApSSVA6IDAwMTA6WzxmZmZmZmZmZmEw NWVjOWFjPl0gIFs8ZmZmZmZmZmZhMDVlYzlhYz5dIHNjdHBfcGFja2V0X3RyYW5zbWl0KzB4NjNj LzB4NzMwIFtzY3RwXQpSU1A6IDAwMTg6ZmZmZjg4MDEyN2MwMzdiOCAgRUZMQUdTOiAwMDAxMDI5 NgpSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDAw MTVmZjY2YjQ4MApSRFg6IDAwMDAwMDE1ZmY2NmI0MDAgUlNJOiBmZmZmODgwMTI3YzE3MjAwIFJE STogZmZmZjg4MDEyMzQwMzcwMApSQlA6IGZmZmY4ODAxMjdjMDM4ODggUjA4OiAwMDAwMDAwMDAw MDE3MjAwIFIwOTogZmZmZmZmZmY4MTQ2MjVhZgpSMTA6IGZmZmZlYTAwMDQ3ZTQ2ODAgUjExOiAw MDAwMDAwMGZmZmZmZjgwIFIxMjogZmZmZjg4MDBiMGQzOGEyOApSMTM6IGZmZmY4ODAwYjBkMzhh MjggUjE0OiBmZmZmODgwMGIzZTg4MDAwIFIxNTogZmZmZmZmZmZhMDVmMjRlMApGUzogIDAwMDAw MDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjg4MDEyN2MwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAw MDAwMDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAw M2IKQ1IyOiAwMDAwMDAwMDAwMDAwMDIwIENSMzogMDAwMDAwMDBjODU1YjAwMCBDUjQ6IDAwMDAw MDAwMDAwMDA3ZjAKU3RhY2s6CiBmZmZmODgwMTI3YzAzOTEwIGZmZmY4ODAwYjBkMzhhMjggZmZm ZmZmZmY4MTg5ZDI0MCBmZmZmODgwMTFmOTFiNDAwCiBmZmZmODgwMTI3YzAzODI4IGZmZmZmZmZm YTA1Yzk0YzUgMDAwMDAwMDAwMDAwMDAwMCBmZmZmODgwMGJhYTFjNTIwCiAwMDAwMDAwMDAwMDAw MDAwIDAwMDAwMDAwMDAwMDAwMDEgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwCkNh bGwgVHJhY2U6CiA8SVJRPgogWzxmZmZmZmZmZmEwNWM5NGM1Pl0gPyBzY3RwX3NmX3RhYm9ydF84 XzRfOC5pc3JhLjIwKzB4ODUvMHgxNDAgW3NjdHBdCiBbPGZmZmZmZmZmYTA1ZDZiNDI+XSA/IHNj dHBfdHJhbnNwb3J0X3B1dCsweDUyLzB4ODAgW3NjdHBdCiBbPGZmZmZmZmZmYTA1ZDBiZmM+XSBz Y3RwX2RvX3NtKzB4YjhjLzB4MTlhMCBbc2N0cF0KIFs8ZmZmZmZmZmY4MTBiMGUwMD5dID8gdHJp Z2dlcl9sb2FkX2JhbGFuY2UrMHg5MC8weDIxMAogWzxmZmZmZmZmZjgxMGUwMzI5Pl0gPyB1cGRh dGVfcHJvY2Vzc190aW1lcysweDU5LzB4NjAKIFs8ZmZmZmZmZmY4MTJjN2E0MD5dID8gdGltZXJx dWV1ZV9hZGQrMHg2MC8weGIwCiBbPGZmZmZmZmZmODEwZTA1NDk+XSA/IGVucXVldWVfaHJ0aW1l cisweDI5LzB4YTAKIFs8ZmZmZmZmZmY4MTAxZjU5OT5dID8gcmVhZF90c2MrMHg5LzB4MTAKIFs8 ZmZmZmZmZmY4MTE2ZDRiNT5dID8gcHV0X3BhZ2UrMHg1NS8weDYwCiBbPGZmZmZmZmZmODEwZWUx YWQ+XSA/IGNsb2NrZXZlbnRzX3Byb2dyYW1fZXZlbnQrMHg2ZC8weDEwMAogWzxmZmZmZmZmZjgx NDYyYjY4Pl0gPyBza2JfZnJlZV9oZWFkKzB4NTgvMHg4MAogWzxmZmZmZmZmZmEwMjlhMTBiPl0g PyBjaGtzdW1fdXBkYXRlKzB4MWIvMHgyNyBbY3JjMzJjX2dlbmVyaWNdCiBbPGZmZmZmZmZmODEy ODNmM2U+XSA/IGNyeXB0b19zaGFzaF91cGRhdGUrMHhjZS8weGYwCiBbPGZmZmZmZmZmYTA1ZDM5 OTM+XSBzY3RwX2VuZHBvaW50X2JoX3JjdisweDExMy8weDI4MCBbc2N0cF0KIFs8ZmZmZmZmZmZh MDVkZDRlNj5dIHNjdHBfaW5xX3B1c2grMHg0Ni8weDYwIFtzY3RwXQogWzxmZmZmZmZmZmEwNWVk N2EwPl0gc2N0cF9yY3YrMHg4ODAvMHg5MTAgW3NjdHBdCiBbPGZmZmZmZmZmYTA1ZWNiNTA+XSA/ IHNjdHBfcGFja2V0X3RyYW5zbWl0X2NodW5rKzB4YjAvMHhiMCBbc2N0cF0KIFs8ZmZmZmZmZmZh MDVlY2I3MD5dID8gc2N0cF9jc3VtX3VwZGF0ZSsweDIwLzB4MjAgW3NjdHBdCiBbPGZmZmZmZmZm ODE0YjA1YTU+XSA/IGlwX3JvdXRlX2lucHV0X25vcmVmKzB4MjM1LzB4ZDMwCiBbPGZmZmZmZmZm ODEwNTFkNmI+XSA/IGFja19pb2FwaWNfbGV2ZWwrMHg3Yi8weDE1MAogWzxmZmZmZmZmZjgxNGIy N2JlPl0gaXBfbG9jYWxfZGVsaXZlcl9maW5pc2grMHhhZS8weDIxMAogWzxmZmZmZmZmZjgxNGIy ZTE1Pl0gaXBfbG9jYWxfZGVsaXZlcisweDM1LzB4OTAKIFs8ZmZmZmZmZmY4MTRiMmExNT5dIGlw X3Jjdl9maW5pc2grMHhmNS8weDM3MAogWzxmZmZmZmZmZjgxNGIzMTI4Pl0gaXBfcmN2KzB4MmI4 LzB4M2EwCiBbPGZmZmZmZmZmODE0NzQxOTM+XSBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHg3 NjMvMHhhNTAKIFs8ZmZmZmZmZmY4MTQ3NmMyOD5dIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgxOC8w eDYwCiBbPGZmZmZmZmZmODE0NzZjYjA+XSBuZXRpZl9yZWNlaXZlX3NrYl9pbnRlcm5hbCsweDQw LzB4ZDAKIFs8ZmZmZmZmZmY4MTQ3NzZjOD5dIG5hcGlfZ3JvX3JlY2VpdmUrMHhlOC8weDEyMAog WzxmZmZmZmZmZmEwMzk0NmFhPl0gcnRsODE2OV9wb2xsKzB4MmRhLzB4NjYwIFtyODE2OV0KIFs8 ZmZmZmZmZmY4MTQ3ODk2YT5dIG5ldF9yeF9hY3Rpb24rMHgyMWEvMHgzNjAKIFs8ZmZmZmZmZmY4 MTA3OGRjMT5dIF9fZG9fc29mdGlycSsweGUxLzB4MmQwCiBbPGZmZmZmZmZmODEwNzkxMmQ+XSBp cnFfZXhpdCsweGFkLzB4YjAKIFs8ZmZmZmZmZmY4MTU3ZDE1OD5dIGRvX0lSUSsweDU4LzB4ZjAK IFs8ZmZmZmZmZmY4MTU3YjA2ZD5dIGNvbW1vbl9pbnRlcnJ1cHQrMHg2ZC8weDZkCiA8RU9JPgog WzxmZmZmZmZmZjgxMGUxMjE4Pl0gPyBocnRpbWVyX3N0YXJ0KzB4MTgvMHgyMAogWzxmZmZmZmZm ZmEwNWQ2NWY5Pl0gPyBzY3RwX3RyYW5zcG9ydF9kZXN0cm95X3JjdSsweDI5LzB4MzAgW3NjdHBd CiBbPGZmZmZmZmZmODEwMjBjNTA+XSA/IG13YWl0X2lkbGUrMHg2MC8weGEwCiBbPGZmZmZmZmZm ODEwMjE2ZWY+XSBhcmNoX2NwdV9pZGxlKzB4Zi8weDIwCiBbPGZmZmZmZmZmODEwYjczMWM+XSBj cHVfc3RhcnR1cF9lbnRyeSsweDNlYy8weDQ4MAogWzxmZmZmZmZmZjgxNTZiMzY1Pl0gcmVzdF9p bml0KzB4ODUvMHg5MAogWzxmZmZmZmZmZjgxOGViMDM1Pl0gc3RhcnRfa2VybmVsKzB4NDhiLzB4 NGFjCiBbPGZmZmZmZmZmODE4ZWExMjA+XSA/IGVhcmx5X2lkdF9oYW5kbGVycysweDEyMC8weDEy MAogWzxmZmZmZmZmZjgxOGVhMzM5Pl0geDg2XzY0X3N0YXJ0X3Jlc2VydmF0aW9ucysweDJhLzB4 MmMKIFs8ZmZmZmZmZmY4MThlYTQ5Yz5dIHg4Nl82NF9zdGFydF9rZXJuZWwrMHgxNjEvMHgxODQK Q29kZTogOTAgNDggOGIgODAgYjggMDAgMDAgMDAgNDggODkgODUgNzAgZmYgZmYgZmYgNDggODMg YmQgNzAgZmYgZmYgZmYgMDAgMGYgODUgY2QgZmEgZmYgZmYgNDggODkgZGYgMzEgZGIgZTggMTgg NjMgZTcgZTAgNDggOGIgNDUgODAgPDQ4PiA4YiA0MCAyMCA0OCA4YiA0MCAzMCA0OCA4YiA4MCA2 OCAwMSAwMCAwMCA2NSA0OCBmZiA0MCA3OCBlOQpSSVAgIFs8ZmZmZmZmZmZhMDVlYzlhYz5dIHNj dHBfcGFja2V0X3RyYW5zbWl0KzB4NjNjLzB4NzMwIFtzY3RwXQogUlNQIDxmZmZmODgwMTI3YzAz N2I4PgpDUjI6IDAwMDAwMDAwMDAwMDAwMjAKLS0tWyBlbmQgdHJhY2UgNWFlYzdmZDJkYzk4MzU3 NCBdLS0tCktlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBGYXRhbCBleGNlcHRpb24gaW4gaW50 ZXJydXB0Cktlcm5lbCBPZmZzZXQ6IDB4MCBmcm9tIDB4ZmZmZmZmZmY4MTAwMDAwMCAocmVsb2Nh dGlvbiByYW5nZTogMHhmZmZmZmZmZjgwMDAwMDAwLTB4ZmZmZmZmZmY5ZmZmZmZmZikKZHJtX2tt c19oZWxwZXI6IHBhbmljIG9jY3VycmVkLCBzd2l0Y2hpbmcgYmFjayB0byB0ZXh0IGNvbnNvbGUK LS0tWyBlbmQgS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlvbiBpbiBp bnRlcnJ1cHQKClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBTdmVyZGxpbiA8YWxleGFuZGVyLnN2 ZXJkbGluQG5va2lhLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZl ci5jb20+CkFja2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVy QGdtYWlsLmNvbT4KQWNrZWQtYnk6IFZsYWQgWWFzZXZpY2ggPHZ5YXNldmljaEBnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvc2N0cC9vdXRwdXQuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL291dHB1dC5jIGIvbmV0 L3NjdHAvb3V0cHV0LmMKaW5kZXggNzQwY2E1Zi4uZTM5ZTZkNSAxMDA2NDQKLS0tIGEvbmV0L3Nj dHAvb3V0cHV0LmMKKysrIGIvbmV0L3NjdHAvb3V0cHV0LmMKQEAgLTU5OSw3ICs1OTksOSBAQCBv dXQ6CiAJcmV0dXJuIGVycjsKIG5vX3JvdXRlOgogCWtmcmVlX3NrYihuc2tiKTsKLQlJUF9JTkNf U1RBVFMoc29ja19uZXQoYXNvYy0+YmFzZS5zayksIElQU1RBVFNfTUlCX09VVE5PUk9VVEVTKTsK KworCWlmIChhc29jKQorCQlJUF9JTkNfU1RBVFMoc29ja19uZXQoYXNvYy0+YmFzZS5zayksIElQ U1RBVFNfTUlCX09VVE5PUk9VVEVTKTsKIAogCS8qIEZJWE1FOiBSZXR1cm5pbmcgdGhlICdlcnIn IHdpbGwgZWZmZWN0IGFsbCB0aGUgYXNzb2NpYXRpb25zCiAJICogYXNzb2NpYXRlZCB3aXRoIGEg c29ja2V0LCBhbHRob3VnaCBvbmx5IG9uZSBvZiB0aGUgcGF0aHMgb2YgdGhlCi0tIAoyLjEuMAoK ----Next_Part(Fri_Jul__3_15_31_36_2015_221)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_318.mbox" RnJvbSBiMWExZDk1NDIwZGNkMTE3NWM5ZmFmY2I5ZDIxZjlkODZiZDU4NWY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxyYXpvckBibGFja3dhbGwu b3JnPgpEYXRlOiBUdWUsIDkgSnVuIDIwMTUgMTA6MjM6NTcgLTA3MDAKU3ViamVjdDogW1BBVENI IDAxLzE2XSBicmlkZ2U6IGZpeCBtdWx0aWNhc3Qgcm91dGVyIHJsaXN0IGVuZGxlc3MgbG9vcAoK WyBVcHN0cmVhbSBjb21taXQgMWEwNDBlYWNhMWEyMmY4ZGE4Mjg1Y2VkYTZiNWU0YTJjYjcwNDg2 NyBdCgpTaW5jZSB0aGUgYWRkaXRpb24gb2Ygc3lzZnMgbXVsdGljYXN0IHJvdXRlciBzdXBwb3J0 IGlmIG9uZSBzZXQKbXVsdGljYXN0X3JvdXRlciB0byAiMiIgbW9yZSB0aGFuIG9uY2UsIHRoZW4g dGhlIHBvcnQgd291bGQgYmUgYWRkZWQgdG8KdGhlIGhsaXN0IGV2ZXJ5IHRpbWUgYW5kIGNvdWxk IGVuZCB1cCBsaW5raW5nIHRvIGl0c2VsZiBhbmQgdGh1cyBjYXVzaW5nIGFuCmVuZGxlc3MgbG9v cCBmb3Igcmxpc3Qgd2Fsa2Vycy4KU28gdG8gcmVwcm9kdWNlIGp1c3QgZG86CmVjaG8gMiA+IG11 bHRpY2FzdF9yb3V0ZXI7IGVjaG8gMiA+IG11bHRpY2FzdF9yb3V0ZXI7CmluIGEgYnJpZGdlIHBv cnQgYW5kIGxldCBzb21lIGlnbXAgdHJhZmZpYyBmbG93LCBmb3IgbWUgaXQgaGFuZ3MgdXAKaW4g YnJfbXVsdGljYXN0X2Zsb29kKCkuCkZpeCB0aGlzIGJ5IGFkZGluZyBhIGNoZWNrIGluIGJyX211 bHRpY2FzdF9hZGRfcm91dGVyKCkgaWYgdGhlIHBvcnQgaXMKYWxyZWFkeSBsaW5rZWQuClRoZSBy ZWFzb24gdGhpcyBkaWRuJ3QgaGFwcGVuIGJlZm9yZSB0aGUgYWRkaXRpb24gb2YgbXVsdGljYXN0 X3JvdXRlcgpzeXNmcyBlbnRyaWVzIGlzIGJlY2F1c2UgdGhlcmUncyBhICFobGlzdF91bmhhc2hl ZCBjaGVjayB0aGF0IHByZXZlbnRzCml0LgoKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2Fu ZHJvdiA8cmF6b3JAYmxhY2t3YWxsLm9yZz4KRml4ZXM6IDA5MDllMTE3NThiZCAoImJyaWRnZTog QWRkIG11bHRpY2FzdF9yb3V0ZXIgc3lzZnMgZW50cmllcyIpCkFja2VkLWJ5OiBIZXJiZXJ0IFh1 IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX211bHRpY2FzdC5j IHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMgYi9uZXQvYnJpZGdl L2JyX211bHRpY2FzdC5jCmluZGV4IGIwYWVlNzguLmMwOGY1MTAgMTAwNjQ0Ci0tLSBhL25ldC9i cmlkZ2UvYnJfbXVsdGljYXN0LmMKKysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAt MTE2Niw2ICsxMTY2LDkgQEAgc3RhdGljIHZvaWQgYnJfbXVsdGljYXN0X2FkZF9yb3V0ZXIoc3Ry dWN0IG5ldF9icmlkZ2UgKmJyLAogCXN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnA7CiAJc3RydWN0 IGhsaXN0X25vZGUgKnNsb3QgPSBOVUxMOwogCisJaWYgKCFobGlzdF91bmhhc2hlZCgmcG9ydC0+ cmxpc3QpKQorCQlyZXR1cm47CisKIAlobGlzdF9mb3JfZWFjaF9lbnRyeShwLCAmYnItPnJvdXRl cl9saXN0LCBybGlzdCkgewogCQlpZiAoKHVuc2lnbmVkIGxvbmcpIHBvcnQgPj0gKHVuc2lnbmVk IGxvbmcpIHApCiAJCQlicmVhazsKQEAgLTExOTMsMTIgKzExOTYsOCBAQCBzdGF0aWMgdm9pZCBi cl9tdWx0aWNhc3RfbWFya19yb3V0ZXIoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCWlmIChwb3J0 LT5tdWx0aWNhc3Rfcm91dGVyICE9IDEpCiAJCXJldHVybjsKIAotCWlmICghaGxpc3RfdW5oYXNo ZWQoJnBvcnQtPnJsaXN0KSkKLQkJZ290byB0aW1lcjsKLQogCWJyX211bHRpY2FzdF9hZGRfcm91 dGVyKGJyLCBwb3J0KTsKIAotdGltZXI6CiAJbW9kX3RpbWVyKCZwb3J0LT5tdWx0aWNhc3Rfcm91 dGVyX3RpbWVyLAogCQkgIG5vdyArIGJyLT5tdWx0aWNhc3RfcXVlcmllcl9pbnRlcnZhbCk7CiB9 Ci0tIAoyLjEuMAoKCkZyb20gZTk5MTYzMDllNzI2NTg1YjQ2ZjQwYzNmMGMxNDQ4NDQ3MWQ5YTJi OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2hhb2h1YSBMaSA8c2hsaUBmYi5jb20+ CkRhdGU6IFRodSwgMTEgSnVuIDIwMTUgMTY6NTA6NDggLTA3MDAKU3ViamVjdDogW1BBVENIIDAy LzE2XSBuZXQ6IGRvbid0IHdhaXQgZm9yIG9yZGVyLTMgcGFnZSBhbGxvY2F0aW9uCgpbIFVwc3Ry ZWFtIGNvbW1pdCBmYjA1ZTdhODlmNTAwY2ZjMDZhZTI3N2JkYzkxMWIyODE5Mjg5OTVkIF0KCldl IHNhdyBleGNlc3NpdmUgZGlyZWN0IG1lbW9yeSBjb21wYWN0aW9uIHRyaWdnZXJlZCBieSBza2Jf cGFnZV9mcmFnX3JlZmlsbC4KVGhpcyBjYXVzZXMgcGVyZm9ybWFuY2UgaXNzdWVzIGFuZCBhZGQg bGF0ZW5jeS4gQ29tbWl0IDU2NDBmNzY4NTgzMWUwCmludHJvZHVjZXMgdGhlIG9yZGVyLTMgYWxs b2NhdGlvbi4gQWNjb3JkaW5nIHRvIHRoZSBjaGFuZ2Vsb2csIHRoZSBvcmRlci0zCmFsbG9jYXRp b24gaXNuJ3QgYSBtdXN0LWhhdmUgYnV0IHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuIEJ1dCBkaXJl Y3QgbWVtb3J5CmNvbXBhY3Rpb24gaGFzIGhpZ2ggb3ZlcmhlYWQuIFRoZSBiZW5lZml0IG9mIG9y ZGVyLTMgYWxsb2NhdGlvbiBjYW4ndApjb21wZW5zYXRlIHRoZSBvdmVyaGVhZCBvZiBkaXJlY3Qg bWVtb3J5IGNvbXBhY3Rpb24uCgpUaGlzIHBhdGNoIG1ha2VzIHRoZSBvcmRlci0zIHBhZ2UgYWxs b2NhdGlvbiBhdG9taWMuIElmIHRoZXJlIGlzIG5vIG1lbW9yeQpwcmVzc3VyZSBhbmQgbWVtb3J5 IGlzbid0IGZyYWdtZW50ZWQsIHRoZSBhbGxvY3Rpb24gd2lsbCBzdGlsbCBzdWNjZXNzLCBzbyB3 ZQpkb24ndCBzYWNyaWZpY2UgdGhlIG9yZGVyLTMgYmVuZWZpdCBoZXJlLiBJZiB0aGUgYXRvbWlj IGFsbG9jYXRpb24gZmFpbHMsCmRpcmVjdCBtZW1vcnkgY29tcGFjdGlvbiB3aWxsIG5vdCBiZSB0 cmlnZ2VyZWQsIHNrYl9wYWdlX2ZyYWdfcmVmaWxsIHdpbGwKZmFsbGJhY2sgdG8gb3JkZXItMCBp bW1lZGlhdGVseSwgaGVuY2UgdGhlIGRpcmVjdCBtZW1vcnkgY29tcGFjdGlvbiBvdmVyaGVhZCBp cwphdm9pZGVkLiBJbiB0aGUgYWxsb2NhdGlvbiBmYWlsdXJlIGNhc2UsIGtzd2FwZCBpcyB3YWtl biB1cCBhbmQgZG9pbmcKY29tcGFjdGlvbiwgc28gY2hhbmNlcyBhcmUgYWxsb2NhdGlvbiBjb3Vs ZCBzdWNjZXNzIG5leHQgdGltZS4KCmFsbG9jX3NrYl93aXRoX2ZyYWdzIGlzIHRoZSBzYW1lLgoK VGhlIG1lbGxhbm94IGRyaXZlciBkb2VzIHNpbWlsYXIgdGhpbmcsIGlmIHRoaXMgaXMgYWNjZXB0 ZWQsIHdlIG11c3QgZml4CnRoZSBkcml2ZXIgdG9vLgoKVjM6IGZpeCB0aGUgc2FtZSBpc3N1ZSBp biBhbGxvY19za2Jfd2l0aF9mcmFncyBhcyBwb2ludGVkIG91dCBieSBFcmljClYyOiBtYWtlIHRo ZSBjaGFuZ2Vsb2cgY2xlYXJlcgoKQ2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KQ2M6IENocmlzIE1hc29uIDxjbG1AZmIuY29tPgpDYzogRGViYWJyYXRhIEJhbmVyamVlIDxk YmF2YXRhckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IFNoYW9odWEgTGkgPHNobGlAZmIuY29t PgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUv c2tidWZmLmMgfCAyICstCiBuZXQvY29yZS9zb2NrLmMgICB8IDIgKy0KIDIgZmlsZXMgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3Jl L3NrYnVmZi5jIGIvbmV0L2NvcmUvc2tidWZmLmMKaW5kZXggMDJlYmI3MS4uNzI0MDBhMSAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTQx OTksNyArNDE5OSw3IEBAIHN0cnVjdCBza19idWZmICphbGxvY19za2Jfd2l0aF9mcmFncyh1bnNp Z25lZCBsb25nIGhlYWRlcl9sZW4sCiAKIAkJd2hpbGUgKG9yZGVyKSB7CiAJCQlpZiAobnBhZ2Vz ID49IDEgPDwgb3JkZXIpIHsKLQkJCQlwYWdlID0gYWxsb2NfcGFnZXMoZ2ZwX21hc2sgfAorCQkJ CXBhZ2UgPSBhbGxvY19wYWdlcygoZ2ZwX21hc2sgJiB+X19HRlBfV0FJVCkgfAogCQkJCQkJICAg X19HRlBfQ09NUCB8CiAJCQkJCQkgICBfX0dGUF9OT1dBUk4gfAogCQkJCQkJICAgX19HRlBfTk9S RVRSWSwKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NvY2suYyBiL25ldC9jb3JlL3NvY2suYwppbmRl eCA4NTJhY2JjLi4xZTUxMzBkIDEwMDY0NAotLS0gYS9uZXQvY29yZS9zb2NrLmMKKysrIGIvbmV0 L2NvcmUvc29jay5jCkBAIC0xODU0LDcgKzE4NTQsNyBAQCBib29sIHNrYl9wYWdlX2ZyYWdfcmVm aWxsKHVuc2lnbmVkIGludCBzeiwgc3RydWN0IHBhZ2VfZnJhZyAqcGZyYWcsIGdmcF90IGdmcCkK IAogCXBmcmFnLT5vZmZzZXQgPSAwOwogCWlmIChTS0JfRlJBR19QQUdFX09SREVSKSB7Ci0JCXBm cmFnLT5wYWdlID0gYWxsb2NfcGFnZXMoZ2ZwIHwgX19HRlBfQ09NUCB8CisJCXBmcmFnLT5wYWdl ID0gYWxsb2NfcGFnZXMoKGdmcCAmIH5fX0dGUF9XQUlUKSB8IF9fR0ZQX0NPTVAgfAogCQkJCQkg IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX05PUkVUUlksCiAJCQkJCSAgU0tCX0ZSQUdfUEFHRV9PUkRF Uik7CiAJCWlmIChsaWtlbHkocGZyYWctPnBhZ2UpKSB7Ci0tIAoyLjEuMAoKCkZyb20gZTIwMDQz ZmEyOTgxNjYzZmU2MmFiMDExYTMxNDQwNWJhZTFiN2I2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5j b20+CkRhdGU6IEZyaSwgMTIgSnVuIDIwMTUgMTA6MTY6NDEgLTAzMDAKU3ViamVjdDogW1BBVENI IDAzLzE2XSBzY3RwOiBmaXggQVNDT05GIGxpc3QgaGFuZGxpbmcKClsgVXBzdHJlYW0gY29tbWl0 IDJkNDVhMDJkMDE2NmNhZjI2MjdmZTkxODk3YzZmZmMzYjE5NTE0YzQgXQoKLT5hdXRvX2FzY29u Zl9zcGxpc3QgaXMgcGVyIG5hbWVzcGFjZSBhbmQgbWFuZ2xlZCBieSBmdW5jdGlvbnMgbGlrZQpz Y3RwX3NldHNvY2tvcHRfYXV0b19hc2NvbmYoKSB3aGljaCBkb2Vzbid0IGd1YXJhbnRlZSBhbnkg c2VyaWFsaXphdGlvbi4KCkFsc28sIHRoZSBjYWxsIHRvIGluZXRfc2tfY29weV9kZXNjZW5kYW50 KCkgd2FzIGJhY2t1cGluZwotPmF1dG9fYXNjb25mX2xpc3QgdGhyb3VnaCB0aGUgY29weSBidXQg d2FzIG5vdCBob25vcmluZwotPmRvX2F1dG9fYXNjb25mLCB3aGljaCBjb3VsZCBsZWFkIHRvIGxp c3QgY29ycnVwdGlvbiBpZiBpdCB3YXMKZGlmZmVyZW50IGJldHdlZW4gYm90aCBzb2NrZXRzLgoK VGhpcyBjb21taXQgdGh1cyBmaXhlcyB0aGUgbGlzdCBoYW5kbGluZyBieSB1c2luZyAtPmFkZHJf d3FfbG9jawpzcGlubG9jayB0byBwcm90ZWN0IHRoZSBsaXN0LiBBIHNwZWNpYWwgaGFuZGxpbmcg aXMgZG9uZSB1cG9uIHNvY2tldApjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gZm9yIHRoYXQuIEVy cm9yIGhhbmRsaWcgb24gc2N0cF9pbml0X3NvY2soKQp3aWxsIG5ldmVyIHJldHVybiBhbiBlcnJv ciBhZnRlciBoYXZpbmcgaW5pdGlhbGl6ZWQgYXNjb25mLCBzbwpzY3RwX2Rlc3Ryb3lfc29jaygp IGNhbiBiZSBjYWxsZWQgd2l0aG91dCBhZGRycV93cV9sb2NrLiBUaGUgbG9jayBub3cKd2lsbCBi ZSB0YWtlIG9uIHNjdHBfY2xvc2Vfc29jaygpLCBiZWZvcmUgbG9ja2luZyB0aGUgc29ja2V0LCBz byB3ZQpkb24ndCBkbyBpdCBpbiBpbnZlcnNlIG9yZGVyIGNvbXBhcmVkIHRvIHNjdHBfYWRkcl93 cV90aW1lb3V0X2hhbmRsZXIoKS4KCkluc3RlYWQgb2YgdGFraW5nIHRoZSBsb2NrIG9uIHNjdHBf c29ja19taWdyYXRlKCkgZm9yIGNvcHlpbmcgYW5kCnJlc3RvcmluZyB0aGUgbGlzdCB2YWx1ZXMs IGl0J3MgcHJlZmVycmVkIHRvIGF2b2lkIHJld3JpdHRpbmcgaXQgYnkKaW1wbGVtZW50aW5nIHNj dHBfY29weV9kZXNjZW5kYW50KCkuCgpJc3N1ZSB3YXMgZm91bmQgd2l0aCBhIHRlc3QgYXBwbGlj YXRpb24gdGhhdCBrZXB0IGZsaXBwaW5nIHN5c2N0bApkZWZhdWx0X2F1dG9fYXNjb25mIG9uIGFu ZCBvZmYsIGJ1dCBvbmUgY291bGQgdHJpZ2dlciBpdCBieSBpc3N1aW5nCnNpbXVsdGFuZW91cyBz ZXRzb2Nrb3B0KCkgY2FsbHMgb24gbXVsdGlwbGUgc29ja2V0cyBvciBieQpjcmVhdGluZy9kZXN0 cm95aW5nIHNvY2tldHMgZmFzdCBlbm91Z2guIFRoaXMgaXMgb25seSB0cmlnZ2VyYWJsZQpsb2Nh bGx5LgoKRml4ZXM6IDlmN2Q2NTNiNjdhZSAoInNjdHA6IEFkZCBBdXRvLUFTQ09ORiBzdXBwb3J0 IChjb3JlKS4iKQpSZXBvcnRlZC1ieTogSmkgSmlhbndlbiA8amlqaUByZWRoYXQuY29tPgpTdWdn ZXN0ZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+ClN1Z2dlc3RlZC1i eTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rpb24ub3JnPgpBY2tl ZC1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rpb24ub3JnPgpT aWduZWQtb2ZmLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGluY2x1ZGUvbmV0L25ldG5zL3NjdHAuaCAgIHwgIDEgKwogaW5jbHVkZS9uZXQv c2N0cC9zdHJ1Y3RzLmggfCAgNCArKysrCiBuZXQvc2N0cC9zb2NrZXQuYyAgICAgICAgICB8IDQz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hh bmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9uZXQvbmV0bnMvc2N0cC5oIGIvaW5jbHVkZS9uZXQvbmV0bnMvc2N0cC5oCmluZGV4IDM1 NzNhODEuLjhiYTM3OWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25ldG5zL3NjdHAuaAorKysg Yi9pbmNsdWRlL25ldC9uZXRucy9zY3RwLmgKQEAgLTMxLDYgKzMxLDcgQEAgc3RydWN0IG5ldG5z X3NjdHAgewogCXN0cnVjdCBsaXN0X2hlYWQgYWRkcl93YWl0cTsKIAlzdHJ1Y3QgdGltZXJfbGlz dCBhZGRyX3dxX3RpbWVyOwogCXN0cnVjdCBsaXN0X2hlYWQgYXV0b19hc2NvbmZfc3BsaXN0Owor CS8qIExvY2sgdGhhdCBwcm90ZWN0cyBib3RoIGFkZHJfd2FpdHEgYW5kIGF1dG9fYXNjb25mX3Nw bGlzdCAqLwogCXNwaW5sb2NrX3QgYWRkcl93cV9sb2NrOwogCiAJLyogTG9jayB0aGF0IHByb3Rl Y3RzIHRoZSBsb2NhbF9hZGRyX2xpc3Qgd3JpdGVycyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9u ZXQvc2N0cC9zdHJ1Y3RzLmggYi9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaAppbmRleCA0ZmYz ZjY3Li4yYWQzYTdiIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaAorKysg Yi9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaApAQCAtMjIzLDYgKzIyMywxMCBAQCBzdHJ1Y3Qg c2N0cF9zb2NrIHsKIAlhdG9taWNfdCBwZF9tb2RlOwogCS8qIFJlY2VpdmUgdG8gaGVyZSB3aGls ZSBwYXJ0aWFsIGRlbGl2ZXJ5IGlzIGluIGVmZmVjdC4gKi8KIAlzdHJ1Y3Qgc2tfYnVmZl9oZWFk IHBkX2xvYmJ5OworCisJLyogVGhlc2UgbXVzdCBiZSB0aGUgbGFzdCBmaWVsZHMsIGFzIHRoZXkg d2lsbCBza2lwcGVkIG9uIGNvcGllcywKKwkgKiBsaWtlIG9uIGFjY2VwdCBhbmQgcGVlbG9mZiBv cGVyYXRpb25zCisJICovCiAJc3RydWN0IGxpc3RfaGVhZCBhdXRvX2FzY29uZl9saXN0OwogCWlu dCBkb19hdXRvX2FzY29uZjsKIH07CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25l dC9zY3RwL3NvY2tldC5jCmluZGV4IDYzNGEyYWIuLjk5ZTY0MGMgMTAwNjQ0Ci0tLSBhL25ldC9z Y3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC0xNTMzLDggKzE1MzMsMTAg QEAgc3RhdGljIHZvaWQgc2N0cF9jbG9zZShzdHJ1Y3Qgc29jayAqc2ssIGxvbmcgdGltZW91dCkK IAogCS8qIFN1cHBvc2VkbHksIG5vIHByb2Nlc3MgaGFzIGFjY2VzcyB0byB0aGUgc29ja2V0LCBi dXQKIAkgKiB0aGUgbmV0IGxheWVycyBzdGlsbCBtYXkuCisJICogQWxzbywgc2N0cF9kZXN0cm95 X3NvY2soKSBuZWVkcyB0byBiZSBjYWxsZWQgd2l0aCBhZGRyX3dxX2xvY2sKKwkgKiBoZWxkIGFu ZCB0aGF0IHNob3VsZCBiZSBncmFiYmVkIGJlZm9yZSBzb2NrZXQgbG9jay4KIAkgKi8KLQlsb2Nh bF9iaF9kaXNhYmxlKCk7CisJc3Bpbl9sb2NrX2JoKCZuZXQtPnNjdHAuYWRkcl93cV9sb2NrKTsK IAliaF9sb2NrX3NvY2soc2spOwogCiAJLyogSG9sZCB0aGUgc29jaywgc2luY2Ugc2tfY29tbW9u X3JlbGVhc2UoKSB3aWxsIHB1dCBzb2NrX3B1dCgpCkBAIC0xNTQ0LDcgKzE1NDYsNyBAQCBzdGF0 aWMgdm9pZCBzY3RwX2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgbG9uZyB0aW1lb3V0KQogCXNrX2Nv bW1vbl9yZWxlYXNlKHNrKTsKIAogCWJoX3VubG9ja19zb2NrKHNrKTsKLQlsb2NhbF9iaF9lbmFi bGUoKTsKKwlzcGluX3VubG9ja19iaCgmbmV0LT5zY3RwLmFkZHJfd3FfbG9jayk7CiAKIAlzb2Nr X3B1dChzayk7CiAKQEAgLTM1ODEsNiArMzU4Myw3IEBAIHN0YXRpYyBpbnQgc2N0cF9zZXRzb2Nr b3B0X2F1dG9fYXNjb25mKHN0cnVjdCBzb2NrICpzaywgY2hhciBfX3VzZXIgKm9wdHZhbCwKIAlp ZiAoKHZhbCAmJiBzcC0+ZG9fYXV0b19hc2NvbmYpIHx8ICghdmFsICYmICFzcC0+ZG9fYXV0b19h c2NvbmYpKQogCQlyZXR1cm4gMDsKIAorCXNwaW5fbG9ja19iaCgmc29ja19uZXQoc2spLT5zY3Rw LmFkZHJfd3FfbG9jayk7CiAJaWYgKHZhbCA9PSAwICYmIHNwLT5kb19hdXRvX2FzY29uZikgewog CQlsaXN0X2RlbCgmc3AtPmF1dG9fYXNjb25mX2xpc3QpOwogCQlzcC0+ZG9fYXV0b19hc2NvbmYg PSAwOwpAQCAtMzU4OSw2ICszNTkyLDcgQEAgc3RhdGljIGludCBzY3RwX3NldHNvY2tvcHRfYXV0 b19hc2NvbmYoc3RydWN0IHNvY2sgKnNrLCBjaGFyIF9fdXNlciAqb3B0dmFsLAogCQkgICAgJnNv Y2tfbmV0KHNrKS0+c2N0cC5hdXRvX2FzY29uZl9zcGxpc3QpOwogCQlzcC0+ZG9fYXV0b19hc2Nv bmYgPSAxOwogCX0KKwlzcGluX3VubG9ja19iaCgmc29ja19uZXQoc2spLT5zY3RwLmFkZHJfd3Ff bG9jayk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTQxMjIsMTggKzQxMjYsMjggQEAgc3RhdGljIGlu dCBzY3RwX2luaXRfc29jayhzdHJ1Y3Qgc29jayAqc2spCiAJbG9jYWxfYmhfZGlzYWJsZSgpOwog CXBlcmNwdV9jb3VudGVyX2luYygmc2N0cF9zb2NrZXRzX2FsbG9jYXRlZCk7CiAJc29ja19wcm90 X2ludXNlX2FkZChuZXQsIHNrLT5za19wcm90LCAxKTsKKworCS8qIE5vdGhpbmcgY2FuIGZhaWwg YWZ0ZXIgdGhpcyBibG9jaywgb3RoZXJ3aXNlCisJICogc2N0cF9kZXN0cm95X3NvY2soKSB3aWxs IGJlIGNhbGxlZCB3aXRob3V0IGFkZHJfd3FfbG9jayBoZWxkCisJICovCiAJaWYgKG5ldC0+c2N0 cC5kZWZhdWx0X2F1dG9fYXNjb25mKSB7CisJCXNwaW5fbG9jaygmc29ja19uZXQoc2spLT5zY3Rw LmFkZHJfd3FfbG9jayk7CiAJCWxpc3RfYWRkX3RhaWwoJnNwLT5hdXRvX2FzY29uZl9saXN0LAog CQkgICAgJm5ldC0+c2N0cC5hdXRvX2FzY29uZl9zcGxpc3QpOwogCQlzcC0+ZG9fYXV0b19hc2Nv bmYgPSAxOwotCX0gZWxzZQorCQlzcGluX3VubG9jaygmc29ja19uZXQoc2spLT5zY3RwLmFkZHJf d3FfbG9jayk7CisJfSBlbHNlIHsKIAkJc3AtPmRvX2F1dG9fYXNjb25mID0gMDsKKwl9CisKIAls b2NhbF9iaF9lbmFibGUoKTsKIAogCXJldHVybiAwOwogfQogCi0vKiBDbGVhbnVwIGFueSBTQ1RQ IHBlciBzb2NrZXQgcmVzb3VyY2VzLiAgKi8KKy8qIENsZWFudXAgYW55IFNDVFAgcGVyIHNvY2tl dCByZXNvdXJjZXMuIE11c3QgYmUgY2FsbGVkIHdpdGgKKyAqIHNvY2tfbmV0KHNrKS0+c2N0cC5h ZGRyX3dxX2xvY2sgaGVsZCBpZiBzcC0+ZG9fYXV0b19hc2NvbmYgaXMgdHJ1ZQorICovCiBzdGF0 aWMgdm9pZCBzY3RwX2Rlc3Ryb3lfc29jayhzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IHNj dHBfc29jayAqc3A7CkBAIC03MjAxLDYgKzcyMTUsMTkgQEAgdm9pZCBzY3RwX2NvcHlfc29jayhz dHJ1Y3Qgc29jayAqbmV3c2ssIHN0cnVjdCBzb2NrICpzaywKIAluZXdpbmV0LT5tY19saXN0ID0g TlVMTDsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIHNjdHBfY29weV9kZXNjZW5kYW50KHN0cnVj dCBzb2NrICpza190bywKKwkJCQkJY29uc3Qgc3RydWN0IHNvY2sgKnNrX2Zyb20pCit7CisJaW50 IGFuY2VzdG9yX3NpemUgPSBzaXplb2Yoc3RydWN0IGluZXRfc29jaykgKworCQkJICAgIHNpemVv ZihzdHJ1Y3Qgc2N0cF9zb2NrKSAtCisJCQkgICAgb2Zmc2V0b2Yoc3RydWN0IHNjdHBfc29jaywg YXV0b19hc2NvbmZfbGlzdCk7CisKKwlpZiAoc2tfZnJvbS0+c2tfZmFtaWx5ID09IFBGX0lORVQ2 KQorCQlhbmNlc3Rvcl9zaXplICs9IHNpemVvZihzdHJ1Y3QgaXB2Nl9waW5mbyk7CisKKwlfX2lu ZXRfc2tfY29weV9kZXNjZW5kYW50KHNrX3RvLCBza19mcm9tLCBhbmNlc3Rvcl9zaXplKTsKK30K KwogLyogUG9wdWxhdGUgdGhlIGZpZWxkcyBvZiB0aGUgbmV3c2sgZnJvbSB0aGUgb2xkc2sgYW5k IG1pZ3JhdGUgdGhlIGFzc29jCiAgKiBhbmQgaXRzIG1lc3NhZ2VzIHRvIHRoZSBuZXdzay4KICAq LwpAQCAtNzIxNSw3ICs3MjQyLDYgQEAgc3RhdGljIHZvaWQgc2N0cF9zb2NrX21pZ3JhdGUoc3Ry dWN0IHNvY2sgKm9sZHNrLCBzdHJ1Y3Qgc29jayAqbmV3c2ssCiAJc3RydWN0IHNrX2J1ZmYgKnNr YiwgKnRtcDsKIAlzdHJ1Y3Qgc2N0cF91bHBldmVudCAqZXZlbnQ7CiAJc3RydWN0IHNjdHBfYmlu ZF9oYXNoYnVja2V0ICpoZWFkOwotCXN0cnVjdCBsaXN0X2hlYWQgdG1wbGlzdDsKIAogCS8qIE1p Z3JhdGUgc29ja2V0IGJ1ZmZlciBzaXplcyBhbmQgYWxsIHRoZSBzb2NrZXQgbGV2ZWwgb3B0aW9u cyB0byB0aGUKIAkgKiBuZXcgc29ja2V0LgpAQCAtNzIyMywxMiArNzI0OSw3IEBAIHN0YXRpYyB2 b2lkIHNjdHBfc29ja19taWdyYXRlKHN0cnVjdCBzb2NrICpvbGRzaywgc3RydWN0IHNvY2sgKm5l d3NrLAogCW5ld3NrLT5za19zbmRidWYgPSBvbGRzay0+c2tfc25kYnVmOwogCW5ld3NrLT5za19y Y3ZidWYgPSBvbGRzay0+c2tfcmN2YnVmOwogCS8qIEJydXRlIGZvcmNlIGNvcHkgb2xkIHNjdHAg b3B0LiAqLwotCWlmIChvbGRzcC0+ZG9fYXV0b19hc2NvbmYpIHsKLQkJbWVtY3B5KCZ0bXBsaXN0 LCAmbmV3c3AtPmF1dG9fYXNjb25mX2xpc3QsIHNpemVvZih0bXBsaXN0KSk7Ci0JCWluZXRfc2tf Y29weV9kZXNjZW5kYW50KG5ld3NrLCBvbGRzayk7Ci0JCW1lbWNweSgmbmV3c3AtPmF1dG9fYXNj b25mX2xpc3QsICZ0bXBsaXN0LCBzaXplb2YodG1wbGlzdCkpOwotCX0gZWxzZQotCQlpbmV0X3Nr X2NvcHlfZGVzY2VuZGFudChuZXdzaywgb2xkc2spOworCXNjdHBfY29weV9kZXNjZW5kYW50KG5l d3NrLCBvbGRzayk7CiAKIAkvKiBSZXN0b3JlIHRoZSBlcCB2YWx1ZSB0aGF0IHdhcyBvdmVyd3Jp dHRlbiB3aXRoIHRoZSBhYm92ZSBzdHJ1Y3R1cmUKIAkgKiBjb3B5LgotLSAKMi4xLjAKCgpGcm9t IGExYWIwMDhmMmEzM2VhMWJlMjgyY2ZmY2FjZTM2MzZhMTAyMTA3YTggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3YgPHJhem9yQGJsYWNrd2FsbC5vcmc+ CkRhdGU6IE1vbiwgMTUgSnVuIDIwMTUgMjA6Mjg6NTEgKzAzMDAKU3ViamVjdDogW1BBVENIIDA0 LzE2XSBicmlkZ2U6IGZpeCBicl9zdHBfc2V0X2JyaWRnZV9wcmlvcml0eSByYWNlIGNvbmRpdGlv bnMKClsgVXBzdHJlYW0gY29tbWl0IDJkYWI4MGE4YjQ4NmYwMjIyMmE2OWRhY2E2ODU5NTE5ZTA1 NzgxZDkgXQoKQWZ0ZXIgdGhlIC0+c2V0KCkgc3BpbmxvY2tzIHdlcmUgcmVtb3ZlZCBicl9zdHBf c2V0X2JyaWRnZV9wcmlvcml0eQp3YXMgbGVmdCBydW5uaW5nIHdpdGhvdXQgYW55IHByb3RlY3Rp b24gd2hlbiB1c2VkIHZpYSBzeXNmcy4gSXQgY2FuCnJhY2Ugd2l0aCBwb3J0IGFkZC9kZWwgYW5k IGNvdWxkIHJlc3VsdCBpbiB1c2UtYWZ0ZXItZnJlZSBjYXNlcyBhbmQKY29ycnVwdGVkIGxpc3Rz LiBUZXN0ZWQgYnkgcnVubmluZyBwb3J0IGFkZC9kZWwgaW4gYSBsb29wIHdpdGggc3RwCmVuYWJs ZWQgd2hpbGUgc2V0dGluZyBwcmlvcml0eSBpbiBhIGxvb3AsIGNyYXNoZXMgYXJlIGVhc2lseQpy ZXByb2R1Y2libGUuClRoZSBzcGlubG9ja3MgYXJvdW5kIHN5c2ZzIC0+c2V0KCkgd2VyZSByZW1v dmVkIGluIGNvbW1pdDoKMTRmOThmMjU4ZjE5ICgiYnJpZGdlOiByYW5nZSBjaGVjayBTVFAgcGFy YW1ldGVycyIpClRoZXJlJ3MgYWxzbyBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSBuZXRsaW5rIHBy aW9yaXR5IHN1cHBvcnQgdGhhdCBpcwpmaXhlZCBieSB0aGlzIGNoYW5nZSwgYnV0IGl0IHdhcyBp bnRyb2R1Y2VkIHJlY2VudGx5IGFuZCB0aGUgZml4ZXMgdGFnCmNvdmVycyBpdCwganVzdCBpbiBj YXNlIGl0J3MgbmVlZGVkIHRoZSBjb21taXQgaXM6CmFmNjE1NzYyZTk3MiAoImJyaWRnZTogYWRk IGFnZWluZ190aW1lLCBzdHBfc3RhdGUsIHByaW9yaXR5IG92ZXIgbmV0bGluayIpCgpTaWduZWQt b2ZmLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxyYXpvckBibGFja3dhbGwub3JnPgpGaXhlczog MTRmOThmMjU4ZjE5ICgiYnJpZGdlOiByYW5nZSBjaGVjayBTVFAgcGFyYW1ldGVycyIpClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv YnJpZGdlL2JyX2lvY3RsLmMgIHwgMiAtLQogbmV0L2JyaWRnZS9icl9zdHBfaWYuYyB8IDQgKysr LQogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9pb2N0bC5jIGIvbmV0L2JyaWRnZS9icl9pb2N0bC5jCmlu ZGV4IGE5YTRhMWIuLjhkNDIzYmMgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfaW9jdGwuYwor KysgYi9uZXQvYnJpZGdlL2JyX2lvY3RsLmMKQEAgLTI0Nyw5ICsyNDcsNyBAQCBzdGF0aWMgaW50 IG9sZF9kZXZfaW9jdGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICpycSwg aW50IGNtZCkKIAkJaWYgKCFuc19jYXBhYmxlKGRldl9uZXQoZGV2KS0+dXNlcl9ucywgQ0FQX05F VF9BRE1JTikpCiAJCQlyZXR1cm4gLUVQRVJNOwogCi0JCXNwaW5fbG9ja19iaCgmYnItPmxvY2sp OwogCQlicl9zdHBfc2V0X2JyaWRnZV9wcmlvcml0eShiciwgYXJnc1sxXSk7Ci0JCXNwaW5fdW5s b2NrX2JoKCZici0+bG9jayk7CiAJCXJldHVybiAwOwogCiAJY2FzZSBCUkNUTF9TRVRfUE9SVF9Q UklPUklUWToKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfc3RwX2lmLmMgYi9uZXQvYnJpZGdl L2JyX3N0cF9pZi5jCmluZGV4IDQxMTQ2ODcuLjc4MzJkMDcgMTAwNjQ0Ci0tLSBhL25ldC9icmlk Z2UvYnJfc3RwX2lmLmMKKysrIGIvbmV0L2JyaWRnZS9icl9zdHBfaWYuYwpAQCAtMjQzLDEyICsy NDMsMTMgQEAgYm9vbCBicl9zdHBfcmVjYWxjdWxhdGVfYnJpZGdlX2lkKHN0cnVjdCBuZXRfYnJp ZGdlICpicikKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotLyogY2FsbGVkIHVuZGVyIGJyaWRnZSBsb2Nr ICovCisvKiBBY3F1aXJlcyBhbmQgcmVsZWFzZXMgYnJpZGdlIGxvY2sgKi8KIHZvaWQgYnJfc3Rw X3NldF9icmlkZ2VfcHJpb3JpdHkoc3RydWN0IG5ldF9icmlkZ2UgKmJyLCB1MTYgbmV3cHJpbykK IHsKIAlzdHJ1Y3QgbmV0X2JyaWRnZV9wb3J0ICpwOwogCWludCB3YXNyb290OwogCisJc3Bpbl9s b2NrX2JoKCZici0+bG9jayk7CiAJd2Fzcm9vdCA9IGJyX2lzX3Jvb3RfYnJpZGdlKGJyKTsKIAog CWxpc3RfZm9yX2VhY2hfZW50cnkocCwgJmJyLT5wb3J0X2xpc3QsIGxpc3QpIHsKQEAgLTI2Niw2 ICsyNjcsNyBAQCB2b2lkIGJyX3N0cF9zZXRfYnJpZGdlX3ByaW9yaXR5KHN0cnVjdCBuZXRfYnJp ZGdlICpiciwgdTE2IG5ld3ByaW8pCiAJYnJfcG9ydF9zdGF0ZV9zZWxlY3Rpb24oYnIpOwogCWlm IChicl9pc19yb290X2JyaWRnZShicikgJiYgIXdhc3Jvb3QpCiAJCWJyX2JlY29tZV9yb290X2Jy aWRnZShicik7CisJc3Bpbl91bmxvY2tfYmgoJmJyLT5sb2NrKTsKIH0KIAogLyogY2FsbGVkIHVu ZGVyIGJyaWRnZSBsb2NrICovCi0tIAoyLjEuMAoKCkZyb20gMTViODU3NDQyNmRmODkwOWE5YzQ1 YzcyZWEyZjU1ZmE5ZTNmY2NhNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDE2IEp1biAyMDE1IDA3OjU5 OjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNS8xNl0gcGFja2V0OiByZWFkIG51bV9tZW1iZXJz IG9uY2UgaW4gcGFja2V0X3Jjdl9mYW5vdXQoKQoKWyBVcHN0cmVhbSBjb21taXQgZjk4ZjQ1MTRk MDc4NzFkYTdhMTEzZGQ5ZTNlMzMwNzQzZmQ3MGFlNCBdCgpXZSBuZWVkIHRvIHRlbGwgY29tcGls ZXIgaXQgbXVzdCBub3QgcmVhZCBmLT5udW1fbWVtYmVycyBtdWx0aXBsZQp0aW1lcy4gT3RoZXJ3 aXNlIHRlc3RpbmcgaWYgbnVtIGlzIG5vdCB6ZXJvIGlzIGZsYWt5LCBhbmQgd2UgY291bGQKYXR0 ZW1wdCBhbiBpbnZhbGlkIGRpdmlkZSBieSAwIGluIGZhbm91dF9kZW11eF9jcHUoKQoKTm90ZSBi dWcgd2FzIHByZXNlbnQgaW4gcGFja2V0X3Jjdl9mYW5vdXRfaGFzaCgpIGFuZApwYWNrZXRfcmN2 X2Zhbm91dF9sYigpIGJ1dCBmaW5hbCAzLjEgaGFkIGEgc2ltcGxlIGxvY2F0aW9uCmFmdGVyIGNv bW1pdCA5NWVjM2ViNDE3MTE1ZmIgKCJwYWNrZXQ6IEFkZCAnY3B1JyBmYW5vdXQgcG9saWN5LiIp CgpGaXhlczogZGM5OWY2MDA2OThkYyAoInBhY2tldDogQWRkIGZhbm91dCBzdXBwb3J0LiIpClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFdpbGxl bSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9wYWNrZXQvYWZfcGFja2V0LmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQu YwppbmRleCAwN2MwNGE4Li5kNDY1ZjlmIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tl dC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTEzMzYsNyArMTMzNiw3IEBAIHN0 YXRpYyBpbnQgcGFja2V0X3Jjdl9mYW5vdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5l dF9kZXZpY2UgKmRldiwKIAkJCSAgICAgc3RydWN0IHBhY2tldF90eXBlICpwdCwgc3RydWN0IG5l dF9kZXZpY2UgKm9yaWdfZGV2KQogewogCXN0cnVjdCBwYWNrZXRfZmFub3V0ICpmID0gcHQtPmFm X3BhY2tldF9wcml2OwotCXVuc2lnbmVkIGludCBudW0gPSBmLT5udW1fbWVtYmVyczsKKwl1bnNp Z25lZCBpbnQgbnVtID0gUkVBRF9PTkNFKGYtPm51bV9tZW1iZXJzKTsKIAlzdHJ1Y3QgcGFja2V0 X3NvY2sgKnBvOwogCXVuc2lnbmVkIGludCBpZHg7CiAKLS0gCjIuMS4wCgoKRnJvbSA3MTkwYmQ3 ZjU2MDY0MjM0MTU2YjFjMzI2OGIwMDNkZTlhMjk5NjYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkRhdGU6IFdlZCwg MTcgSnVuIDIwMTUgMTU6NTk6MzQgLTA0MDAKU3ViamVjdDogW1BBVENIIDA2LzE2XSBwYWNrZXQ6 IGF2b2lkIG91dCBvZiBib3VuZHMgcmVhZCBpbiByb3VuZCByb2JpbiBmYW5vdXQKClsgVXBzdHJl YW0gY29tbWl0IDQ2ODQ3OWU2MDQzYzg0ZjVhNjUyOTljYzA3Y2IwOGEyMmEyOGMyYjEgXQoKUEFD S0VUX0ZBTk9VVF9MQiBjb21wdXRlcyBmLT5ycl9jdXIgc3VjaCB0aGF0IGl0IGlzIG1vZHVsbwpm LT5udW1fbWVtYmVycy4gSXQgcmV0dXJucyB0aGUgb2xkIHZhbHVlIHVuY29uZGl0aW9uYWxseSwg YnV0CmYtPm51bV9tZW1iZXJzIG1heSBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3Qgc3RvcmUu IEVuc3VyZQp0aGF0IHRoZSByZXR1cm4gdmFsdWUgaXMgYWx3YXlzIDwgbnVtLgoKV2hlbiBtb2Rp ZnlpbmcgdGhlIGxvZ2ljLCBzaW1wbGlmeSBpdCBmdXJ0aGVyIGJ5IHJlcGxhY2luZyB0aGUgbG9v cAp3aXRoIGFuIHVuY29uZGl0aW9uYWwgYXRvbWljIGluY3JlbWVudC4KCkZpeGVzOiBkYzk5ZjYw MDY5OGQgKCJwYWNrZXQ6IEFkZCBmYW5vdXQgc3VwcG9ydC4iKQpTdWdnZXN0ZWQtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJy dWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDE4ICsrLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0 LmMKaW5kZXggZDQ2NWY5Zi4uNWRjZmUwNSAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNr ZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC0xMjU1LDE2ICsxMjU1LDYgQEAg c3RhdGljIHZvaWQgcGFja2V0X3NvY2tfZGVzdHJ1Y3Qoc3RydWN0IHNvY2sgKnNrKQogCXNrX3Jl ZmNudF9kZWJ1Z19kZWMoc2spOwogfQogCi1zdGF0aWMgaW50IGZhbm91dF9ycl9uZXh0KHN0cnVj dCBwYWNrZXRfZmFub3V0ICpmLCB1bnNpZ25lZCBpbnQgbnVtKQotewotCWludCB4ID0gYXRvbWlj X3JlYWQoJmYtPnJyX2N1cikgKyAxOwotCi0JaWYgKHggPj0gbnVtKQotCQl4ID0gMDsKLQotCXJl dHVybiB4OwotfQotCiBzdGF0aWMgdW5zaWduZWQgaW50IGZhbm91dF9kZW11eF9oYXNoKHN0cnVj dCBwYWNrZXRfZmFub3V0ICpmLAogCQkJCSAgICAgIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJ ICAgICAgdW5zaWduZWQgaW50IG51bSkKQEAgLTEyNzYsMTMgKzEyNjYsOSBAQCBzdGF0aWMgdW5z aWduZWQgaW50IGZhbm91dF9kZW11eF9sYihzdHJ1Y3QgcGFja2V0X2Zhbm91dCAqZiwKIAkJCQkg ICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgICAgdW5zaWduZWQgaW50IG51bSkKIHsKLQlp bnQgY3VyLCBvbGQ7CisJdW5zaWduZWQgaW50IHZhbCA9IGF0b21pY19pbmNfcmV0dXJuKCZmLT5y cl9jdXIpOwogCi0JY3VyID0gYXRvbWljX3JlYWQoJmYtPnJyX2N1cik7Ci0Jd2hpbGUgKChvbGQg PSBhdG9taWNfY21weGNoZygmZi0+cnJfY3VyLCBjdXIsCi0JCQkJICAgICBmYW5vdXRfcnJfbmV4 dChmLCBudW0pKSkgIT0gY3VyKQotCQljdXIgPSBvbGQ7Ci0JcmV0dXJuIGN1cjsKKwlyZXR1cm4g dmFsICUgbnVtOwogfQogCiBzdGF0aWMgdW5zaWduZWQgaW50IGZhbm91dF9kZW11eF9jcHUoc3Ry dWN0IHBhY2tldF9mYW5vdXQgKmYsCi0tIAoyLjEuMAoKCkZyb20gYzg5NTBmOTczMTU5NzQxYTM5 ZGFhZjAzMWMxMmM4MTJkODE0NGYyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVs aWFuIEFuYXN0YXNvdiA8amFAc3NpLmJnPgpEYXRlOiBUdWUsIDE2IEp1biAyMDE1IDIyOjU2OjM5 ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwNy8xNl0gbmVpZ2g6IGRvIG5vdCBtb2RpZnkgdW5saW5r ZWQgZW50cmllcwoKWyBVcHN0cmVhbSBjb21taXQgMmM1MWE5N2Y3NmQyMGViZjFmNTBmZWY5MDhi OTg2Y2IwNTFmZGZmOSBdCgpUaGUgbG9ja2xlc3MgbG9va3VwcyBjYW4gcmV0dXJuIGVudHJ5IHRo YXQgaXMgdW5saW5rZWQuClNvbWV0aW1lcyB0aGV5IGdldCByZWZlcmVuY2UgYmVmb3JlIGxhc3Qg bmVpZ2hfY2xlYW51cF9hbmRfcmVsZWFzZSwKc29tZXRpbWVzIHRoZXkgZG8gbm90IG5lZWQgcmVm ZXJlbmNlLiBMYXRlciwgYW55Cm1vZGlmaWNhdGlvbiBhdHRlbXB0cyBtYXkgcmVzdWx0IGluIHRo ZSBmb2xsb3dpbmcgcHJvYmxlbXM6CgoxLiBlbnRyeSBpcyBub3QgZGVzdHJveWVkIGltbWVkaWF0 ZWx5IGJlY2F1c2UgbmVpZ2hfdXBkYXRlCmNhbiBzdGFydCB0aGUgdGltZXIgZm9yIGRlYWQgZW50 cnksIGVnLiBvbiBjaGFuZ2UgdG8gTlVEX1JFQUNIQUJMRQpzdGF0ZS4gQXMgcmVzdWx0LCBlbnRy eSBsaXZlcyBmb3Igc29tZSB0aW1lIGJ1dCBpcyBpbnZpc2libGUKYW5kIG91dCBvZiBjb250cm9s LgoKMi4gX19uZWlnaF9ldmVudF9zZW5kIGNhbiBydW4gaW4gcGFyYWxsZWwgd2l0aCBuZWlnaF9k ZXN0cm95CndoaWxlIHJlZmNudD0wIGJ1dCBpZiB0aW1lciBpcyBzdGFydGVkIGFuZCBleHBpcmVk IHJlZmNudCBjYW4KcmVhY2ggMCBmb3Igc2Vjb25kIHRpbWUgbGVhZGluZyB0byBzZWNvbmQgbmVp Z2hfZGVzdHJveSBhbmQKcG9zc2libGUgY3Jhc2guCgpUaGFua3MgdG8gRXJpYyBEdW1hemV0IGFu ZCBZaW5nIFh1ZSBmb3IgdGhlaXIgd29yayBhbmQgYW5hbHl6ZQpvbiB0aGUgX19uZWlnaF9ldmVu dF9zZW5kIGNoYW5nZS4KCkZpeGVzOiA3NjdlOTdlMWUwZGIgKCJuZWlnaDogUkNVIGNvbnZlcnNp b24gb2Ygc3RydWN0IG5laWdoYm91ciIpCkZpeGVzOiBhMjYzYjMwOTM2NDEgKCJpcHY0OiBNYWtl IG5laWdoIGxvb2t1cHMgZGlyZWN0bHkgaW4gb3V0cHV0IHBhY2tldCBwYXRoLiIpCkZpeGVzOiA2 ZmQ2Y2UyMDU2ZGUgKCJpcHY2OiBEbyBub3QgZGVwZW5kIG9uIHJ0LT5uIGluIGlwNl9maW5pc2hf b3V0cHV0MigpLiIpCkNjOiBFcmljIER1bWF6ZXQgPGVyaWMuZHVtYXpldEBnbWFpbC5jb20+CkNj OiBZaW5nIFh1ZSA8eWluZy54dWVAd2luZHJpdmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogSnVsaWFu IEFuYXN0YXNvdiA8amFAc3NpLmJnPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2NvcmUvbmVpZ2hib3VyLmMgfCAxMyArKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25laWdo Ym91ci5jIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKaW5kZXggZWYzMWZlZi4uMmIwZDk5ZCAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvbmVpZ2hib3VyLmMKKysrIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMK QEAgLTk3Nyw2ICs5NzcsOCBAQCBpbnQgX19uZWlnaF9ldmVudF9zZW5kKHN0cnVjdCBuZWlnaGJv dXIgKm5laWdoLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXJjID0gMDsKIAlpZiAobmVpZ2gtPm51 ZF9zdGF0ZSAmIChOVURfQ09OTkVDVEVEIHwgTlVEX0RFTEFZIHwgTlVEX1BST0JFKSkKIAkJZ290 byBvdXRfdW5sb2NrX2JoOworCWlmIChuZWlnaC0+ZGVhZCkKKwkJZ290byBvdXRfZGVhZDsKIAog CWlmICghKG5laWdoLT5udWRfc3RhdGUgJiAoTlVEX1NUQUxFIHwgTlVEX0lOQ09NUExFVEUpKSkg ewogCQlpZiAoTkVJR0hfVkFSKG5laWdoLT5wYXJtcywgTUNBU1RfUFJPQkVTKSArCkBAIC0xMDMz LDYgKzEwMzUsMTMgQEAgb3V0X3VubG9ja19iaDoKIAkJd3JpdGVfdW5sb2NrKCZuZWlnaC0+bG9j ayk7CiAJbG9jYWxfYmhfZW5hYmxlKCk7CiAJcmV0dXJuIHJjOworCitvdXRfZGVhZDoKKwlpZiAo bmVpZ2gtPm51ZF9zdGF0ZSAmIE5VRF9TVEFMRSkKKwkJZ290byBvdXRfdW5sb2NrX2JoOworCXdy aXRlX3VubG9ja19iaCgmbmVpZ2gtPmxvY2spOworCWtmcmVlX3NrYihza2IpOworCXJldHVybiAx OwogfQogRVhQT1JUX1NZTUJPTChfX25laWdoX2V2ZW50X3NlbmQpOwogCkBAIC0xMDk2LDYgKzEx MDUsOCBAQCBpbnQgbmVpZ2hfdXBkYXRlKHN0cnVjdCBuZWlnaGJvdXIgKm5laWdoLCBjb25zdCB1 OCAqbGxhZGRyLCB1OCBuZXcsCiAJaWYgKCEoZmxhZ3MgJiBORUlHSF9VUERBVEVfRl9BRE1JTikg JiYKIAkgICAgKG9sZCAmIChOVURfTk9BUlAgfCBOVURfUEVSTUFORU5UKSkpCiAJCWdvdG8gb3V0 OworCWlmIChuZWlnaC0+ZGVhZCkKKwkJZ290byBvdXQ7CiAKIAlpZiAoIShuZXcgJiBOVURfVkFM SUQpKSB7CiAJCW5laWdoX2RlbF90aW1lcihuZWlnaCk7CkBAIC0xMjQ1LDYgKzEyNTYsOCBAQCBF WFBPUlRfU1lNQk9MKG5laWdoX3VwZGF0ZSk7CiAgKi8KIHZvaWQgX19uZWlnaF9zZXRfcHJvYmVf b25jZShzdHJ1Y3QgbmVpZ2hib3VyICpuZWlnaCkKIHsKKwlpZiAobmVpZ2gtPmRlYWQpCisJCXJl dHVybjsKIAluZWlnaC0+dXBkYXRlZCA9IGppZmZpZXM7CiAJaWYgKCEobmVpZ2gtPm51ZF9zdGF0 ZSAmIE5VRF9GQUlMRUQpKQogCQlyZXR1cm47Ci0tIAoyLjEuMAoKCkZyb20gODBmMzJiMjFkMzZl YzI5MjIwNjQzMjQzZjI0YmEzYzU0OGEwMGFhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQ2hyaXN0b3BoIFBhYXNjaCA8Y3BhYXNjaEBhcHBsZS5jb20+CkRhdGU6IFRodSwgMTggSnVu IDIwMTUgMDk6MTU6MzQgLTA3MDAKU3ViamVjdDogW1BBVENIIDA4LzE2XSB0Y3A6IERvIG5vdCBj YWxsIHRjcF9mYXN0b3Blbl9yZXNldF9jaXBoZXIgZnJvbQogaW50ZXJydXB0IGNvbnRleHQKClsg VXBzdHJlYW0gY29tbWl0IGRmZWEyYWE2NTQyNDNmNzBkYzUzYjg2NDhkMGJiZGVlYzU1YTdkZjEg XQoKdGNwX2Zhc3RvcGVuX3Jlc2V0X2NpcGhlciByZWFsbHkgY2Fubm90IGJlIGNhbGxlZCBmcm9t IGludGVycnVwdApjb250ZXh0LiBJdCBhbGxvY2F0ZXMgdGhlIHRjcF9mYXN0b3Blbl9jb250ZXh0 IHdpdGggR0ZQX0tFUk5FTCBhbmQKY2FsbHMgY3J5cHRvX2FsbG9jX2NpcGhlciwgd2hpY2ggYWxs b2NhdGVzIGFsbCBraW5kIG9mIHN0dWZmIHdpdGgKR0ZQX0tFUk5FTC4KClRodXMsIHdlIG1pZ2h0 IHNsZWVwIHdoZW4gdGhlIGtleS1nZW5lcmF0aW9uIGlzIHRyaWdnZXJlZCBieSBhbgppbmNvbWlu ZyBURk8gY29va2llLXJlcXVlc3Qgd2hpY2ggd291bGQgdGhlbiBoYXBwZW4gaW4gaW50ZXJydXB0 LQpjb250ZXh0LCBhcyBzaG93biBieSBlbmFibGluZyBDT05GSUdfREVCVUdfQVRPTUlDX1NMRUVQ OgoKWyAgIDM2LjAwMTgxM10gQlVHOiBzbGVlcGluZyBmdW5jdGlvbiBjYWxsZWQgZnJvbSBpbnZh bGlkIGNvbnRleHQgYXQgbW0vc2x1Yi5jOjEyNjYKWyAgIDM2LjAwMzYyNF0gaW5fYXRvbWljKCk6 IDEsIGlycXNfZGlzYWJsZWQoKTogMCwgcGlkOiAxMDE2LCBuYW1lOiBwYWNrZXRkcmlsbApbICAg MzYuMDA0ODU5XSBDUFU6IDEgUElEOiAxMDE2IENvbW06IHBhY2tldGRyaWxsIE5vdCB0YWludGVk IDQuMS4wLXJjNyAjMTQKWyAgIDM2LjAwNjA4NV0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFy ZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgcmVsLTEuNy41LTAtZ2U1MTQ4OGMtMjAx NDA2MDJfMTY0NjEyLW5pbHNzb24uaG9tZS5rcmF4ZWwub3JnIDA0LzAxLzIwMTQKWyAgIDM2LjAw ODI1MF0gIDAwMDAwMDAwMDAwMDA0ZjIgZmZmZjg4MDA3Zjg4MzhhOCBmZmZmZmZmZjgxNzFkNTNh IGZmZmY4ODAwNzVhMDg0YTgKWyAgIDM2LjAwOTYzMF0gIGZmZmY4ODAwNzVhMDgwMDAgZmZmZjg4 MDA3Zjg4MzhjOCBmZmZmZmZmZjgxMDk2N2QzIGZmZmY4ODAwN2Y4ODM5MjgKWyAgIDM2LjAxMTA3 Nl0gIDAwMDAwMDAwMDAwMDAwMDAgZmZmZjg4MDA3Zjg4MzhmOCBmZmZmZmZmZjgxMDk2ODkyIGZm ZmY4ODAwN2Y4OWJlMDAKWyAgIDM2LjAxMjQ5NF0gQ2FsbCBUcmFjZToKWyAgIDM2LjAxMjk1M10g IDxJUlE+ICBbPGZmZmZmZmZmODE3MWQ1M2E+XSBkdW1wX3N0YWNrKzB4NGYvMHg2ZApbICAgMzYu MDE0MDg1XSAgWzxmZmZmZmZmZjgxMDk2N2QzPl0gX19fbWlnaHRfc2xlZXArMHgxMDMvMHgxNzAK WyAgIDM2LjAxNTExN10gIFs8ZmZmZmZmZmY4MTA5Njg5Mj5dIF9fbWlnaHRfc2xlZXArMHg1Mi8w eDkwClsgICAzNi4wMTYxMTddICBbPGZmZmZmZmZmODExOGU4ODc+XSBrbWVtX2NhY2hlX2FsbG9j X3RyYWNlKzB4NDcvMHgxOTAKWyAgIDM2LjAxNzI2Nl0gIFs8ZmZmZmZmZmY4MTY4MGQ4Mj5dID8g dGNwX2Zhc3RvcGVuX3Jlc2V0X2NpcGhlcisweDQyLzB4MTMwClsgICAzNi4wMTg0ODVdICBbPGZm ZmZmZmZmODE2ODBkODI+XSB0Y3BfZmFzdG9wZW5fcmVzZXRfY2lwaGVyKzB4NDIvMHgxMzAKWyAg IDM2LjAxOTY3OV0gIFs8ZmZmZmZmZmY4MTY4MGYwMT5dIHRjcF9mYXN0b3Blbl9pbml0X2tleV9v bmNlKzB4NjEvMHg3MApbICAgMzYuMDIwODg0XSAgWzxmZmZmZmZmZjgxNjgwZjJjPl0gX190Y3Bf ZmFzdG9wZW5fY29va2llX2dlbisweDFjLzB4NjAKWyAgIDM2LjAyMjA1OF0gIFs8ZmZmZmZmZmY4 MTY4MTRmZj5dIHRjcF90cnlfZmFzdG9wZW4rMHg1OGYvMHg3MzAKWyAgIDM2LjAyMzExOF0gIFs8 ZmZmZmZmZmY4MTY3MTc4OD5dIHRjcF9jb25uX3JlcXVlc3QrMHgzZTgvMHg3YjAKWyAgIDM2LjAy NDE4NV0gIFs8ZmZmZmZmZmY4MTBlMzg3Mj5dID8gX19tb2R1bGVfdGV4dF9hZGRyZXNzKzB4MTIv MHg2MApbICAgMzYuMDI1MzI3XSAgWzxmZmZmZmZmZjgxNjdiMmUxPl0gdGNwX3Y0X2Nvbm5fcmVx dWVzdCsweDUxLzB4NjAKWyAgIDM2LjAyNjQxMF0gIFs8ZmZmZmZmZmY4MTY3MjdlMD5dIHRjcF9y Y3Zfc3RhdGVfcHJvY2VzcysweDE5MC8weGRhMApbICAgMzYuMDI3NTU2XSAgWzxmZmZmZmZmZjgx NjYxZjk3Pl0gPyBfX2luZXRfbG9va3VwX2VzdGFibGlzaGVkKzB4NDcvMHgxNzAKWyAgIDM2LjAy ODc4NF0gIFs8ZmZmZmZmZmY4MTY3YzJhZD5dIHRjcF92NF9kb19yY3YrMHgxNmQvMHgzZDAKWyAg IDM2LjAyOTgzMl0gIFs8ZmZmZmZmZmY4MTJlNjgwNj5dID8gc2VjdXJpdHlfc29ja19yY3Zfc2ti KzB4MTYvMHgyMApbICAgMzYuMDMwOTM2XSAgWzxmZmZmZmZmZjgxNjdjYzhhPl0gdGNwX3Y0X3Jj disweDc3YS8weDdiMApbICAgMzYuMDMxODc1XSAgWzxmZmZmZmZmZjgxNmFmOGMzPl0gPyBpcHRh YmxlX2ZpbHRlcl9ob29rKzB4MzMvMHg3MApbICAgMzYuMDMyOTUzXSAgWzxmZmZmZmZmZjgxNjU3 ZDIyPl0gaXBfbG9jYWxfZGVsaXZlcl9maW5pc2grMHg5Mi8weDFmMApbICAgMzYuMDM0MDY1XSAg WzxmZmZmZmZmZjgxNjU3ZjFhPl0gaXBfbG9jYWxfZGVsaXZlcisweDlhLzB4YjAKWyAgIDM2LjAz NTA2OV0gIFs8ZmZmZmZmZmY4MTY1N2M5MD5dID8gaXBfcmN2KzB4M2QwLzB4M2QwClsgICAzNi4w MzU5NjNdICBbPGZmZmZmZmZmODE2NTc1Njk+XSBpcF9yY3ZfZmluaXNoKzB4MTE5LzB4MzMwClsg ICAzNi4wMzY5NTBdICBbPGZmZmZmZmZmODE2NTdiYTc+XSBpcF9yY3YrMHgyZTcvMHgzZDAKWyAg IDM2LjAzNzg0N10gIFs8ZmZmZmZmZmY4MTYxMDY1Mj5dIF9fbmV0aWZfcmVjZWl2ZV9za2JfY29y ZSsweDU1Mi8weDkzMApbICAgMzYuMDM4OTk0XSAgWzxmZmZmZmZmZjgxNjEwYTU3Pl0gX19uZXRp Zl9yZWNlaXZlX3NrYisweDI3LzB4NzAKWyAgIDM2LjA0MDAzM10gIFs8ZmZmZmZmZmY4MTYxMGI3 Mj5dIHByb2Nlc3NfYmFja2xvZysweGQyLzB4MWYwClsgICAzNi4wNDEwMjVdICBbPGZmZmZmZmZm ODE2MTE0ODI+XSBuZXRfcnhfYWN0aW9uKzB4MTIyLzB4MzEwClsgICAzNi4wNDIwMDddICBbPGZm ZmZmZmZmODEwNzY3NDM+XSBfX2RvX3NvZnRpcnErMHgxMDMvMHgyZjAKWyAgIDM2LjA0Mjk3OF0g IFs8ZmZmZmZmZmY4MTcyM2UzYz5dIGRvX3NvZnRpcnFfb3duX3N0YWNrKzB4MWMvMHgzMAoKVGhp cyBwYXRjaCBtb3ZlcyB0aGUgY2FsbCB0byB0Y3BfZmFzdG9wZW5faW5pdF9rZXlfb25jZSB0byB0 aGUgcGxhY2VzCndoZXJlIGEgbGlzdGVuZXIgc29ja2V0IGNyZWF0ZXMgaXRzIFRGTy1zdGF0ZSwg d2hpY2ggYWx3YXlzIGhhcHBlbnMgaW4KdXNlci1jb250ZXh0IChlaXRoZXIgZnJvbSB0aGUgc2V0 c29ja29wdCwgb3IgaW1wbGljaXRseSBkdXJpbmcgdGhlCmxpc3RlbigpLWNhbGwpCgpDYzogRXJp YyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPgpDYzogSGFubmVzIEZyZWRlcmljIFNv d2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rpb24ub3JnPgpGaXhlczogMjIyZTgzZDJlMGFlICgidGNw OiBzd2l0Y2ggdGNwX2Zhc3RvcGVuIGtleSBnZW5lcmF0aW9uIHRvIG5ldF9nZXRfcmFuZG9tX29u Y2UiKQpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggUGFhc2NoIDxjcGFhc2NoQGFwcGxlLmNvbT4K QWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2Fm X2luZXQuYyAgICAgIHwgMiArKwogbmV0L2lwdjQvdGNwLmMgICAgICAgICAgfCA3ICsrKysrLS0K IG5ldC9pcHY0L3RjcF9mYXN0b3Blbi5jIHwgMiAtLQogMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvYWZfaW5ldC5j IGIvbmV0L2lwdjQvYWZfaW5ldC5jCmluZGV4IGU2N2RhNGUuLjlhMTczNTcgMTAwNjQ0Ci0tLSBh L25ldC9pcHY0L2FmX2luZXQuYworKysgYi9uZXQvaXB2NC9hZl9pbmV0LmMKQEAgLTIyOCw2ICsy MjgsOCBAQCBpbnQgaW5ldF9saXN0ZW4oc3RydWN0IHNvY2tldCAqc29jaywgaW50IGJhY2tsb2cp CiAJCQkJZXJyID0gMDsKIAkJCWlmIChlcnIpCiAJCQkJZ290byBvdXQ7CisKKwkJCXRjcF9mYXN0 b3Blbl9pbml0X2tleV9vbmNlKHRydWUpOwogCQl9CiAJCWVyciA9IGluZXRfY3NrX2xpc3Rlbl9z dGFydChzaywgYmFja2xvZyk7CiAJCWlmIChlcnIpCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Au YyBiL25ldC9pcHY0L3RjcC5jCmluZGV4IGRlNjE5NTQuLjMyYjI1Y2MgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0yNTg1LDEwICsyNTg1LDEzIEBA IHN0YXRpYyBpbnQgZG9fdGNwX3NldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWws CiAKIAljYXNlIFRDUF9GQVNUT1BFTjoKIAkJaWYgKHZhbCA+PSAwICYmICgoMSA8PCBzay0+c2tf c3RhdGUpICYgKFRDUEZfQ0xPU0UgfAotCQkgICAgVENQRl9MSVNURU4pKSkKKwkJICAgIFRDUEZf TElTVEVOKSkpIHsKKwkJCXRjcF9mYXN0b3Blbl9pbml0X2tleV9vbmNlKHRydWUpOworCiAJCQll cnIgPSBmYXN0b3Blbl9pbml0X3F1ZXVlKHNrLCB2YWwpOwotCQllbHNlCisJCX0gZWxzZSB7CiAJ CQllcnIgPSAtRUlOVkFMOworCQl9CiAJCWJyZWFrOwogCWNhc2UgVENQX1RJTUVTVEFNUDoKIAkJ aWYgKCF0cC0+cmVwYWlyKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2Zhc3RvcGVuLmMgYi9u ZXQvaXB2NC90Y3BfZmFzdG9wZW4uYwppbmRleCBjNzMwNzcyLi5iMDFkNWJkIDEwMDY0NAotLS0g YS9uZXQvaXB2NC90Y3BfZmFzdG9wZW4uYworKysgYi9uZXQvaXB2NC90Y3BfZmFzdG9wZW4uYwpA QCAtNzgsOCArNzgsNiBAQCBzdGF0aWMgYm9vbCBfX3RjcF9mYXN0b3Blbl9jb29raWVfZ2VuKGNv bnN0IHZvaWQgKnBhdGgsCiAJc3RydWN0IHRjcF9mYXN0b3Blbl9jb250ZXh0ICpjdHg7CiAJYm9v bCBvayA9IGZhbHNlOwogCi0JdGNwX2Zhc3RvcGVuX2luaXRfa2V5X29uY2UodHJ1ZSk7Ci0KIAly Y3VfcmVhZF9sb2NrKCk7CiAJY3R4ID0gcmN1X2RlcmVmZXJlbmNlKHRjcF9mYXN0b3Blbl9jdHgp OwogCWlmIChjdHgpIHsKLS0gCjIuMS4wCgoKRnJvbSAwNzFmOGEyZjZlNDY1ODJlNzE4ZTU0ZDMx YjE0N2ViNWU2MTY4MzhiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2hhbWF5 IDxpZG9zQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNSBKdW4gMjAxNSAxMToyOTo0MiArMDMw MApTdWJqZWN0OiBbUEFUQ0ggMDkvMTZdIG5ldC9tbHg0X2VuOiBXYWtlIFRYIHF1ZXVlcyBvbmx5 IHdoZW4gdGhlcmUncyBlbm91Z2gKIHJvb20KClsgVXBzdHJlYW0gY29tbWl0IDQ4OGE5YjQ4ZTM5 OGIxNTc3MDM3NjZlMmNkOTFlYTQ1YWM2OTk3YzUgXQoKSW5kaWNhdGlvbiBvZiBhIHNpbmdsZSBj b21wbGV0ZWQgcGFja2V0LCBtYXJrZWQgYnkgdHhiYnNfc2tpcHBlZApiZWluZyBiaWdnZXIgdGhl biB6ZXJvLCBpbiBub3QgZW5vdWdoIGluIG9yZGVyIHRvIHdha2UgdXAgYQpzdG9wcGVkIFRYIHF1 ZXVlLiBUaGUgY29tcGxldGVkIHBhY2tldCBtYXkgY29udGFpbiBhIHNpbmdsZSBUWEJCLAp3aGls ZSBuZXh0IHBhY2tldCB0byBiZSBzZW50IChhZnRlciB0aGUgd2FrZSB1cCkgbWF5IGhhdmUgbXVs dGlwbGUKVFhCQnMgKExTTy9UU08gcGFja2V0cyBmb3IgZXhhbXBsZSksIGNhdXNpbmcgb3ZlcmZs b3cgaW4gcXVldWUgZm9sbG93ZWQKYnkgV1FFIGNvcnJ1cHRpb24gYW5kIFRYIHF1ZXVlIHRpbWVv dXQuCkluc3RlYWQsIHdha2UgdGhlIHN0b3BwZWQgcXVldWUgb25seSB3aGVuIHRoZXJlJ3MgZW5v dWdoIHJvb20gZm9yIHRoZQp3b3JzdCBjYXNlIChtYXhpbXVtIHNpemVkIFdRRSkgcGFja2V0IHRo YXQgd2Ugc2hvdWxkIG5lZWQgdG8gaGFuZGxlIGFmdGVyCnRoZSBxdWV1ZSBpcyBvcGVuZWQgYWdh aW4uCgpBbHNvIGNyZWF0ZWQgYW4gaGVscGVyIHJvdXRpbmUgLSBtbHg0X2VuX2lzX3R4X3Jpbmdf ZnVsbCwgd2hpY2ggY2hlY2tzCmlmIHRoZSBjdXJyZW50IFRYIHJpbmcgaXMgZnVsbCBvciBub3Qu IEl0IHByb3ZpZGVzIGJldHRlciBjb2RlIHJlYWRhYmlsaXR5CmFuZCByZW1vdmVzIGNvZGUgZHVw bGljYXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBJZG8gU2hhbWF5IDxpZG9zQG1lbGxhbm94LmNvbT4K U2lnbmVkLW9mZi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5jICAgfCAxOSArKysrKysrKysrKy0t LS0tLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaCB8ICAx ICsKIDIgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMKaW5kZXggMTQyZGRkNS4u NTk4MGQzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9l bl90eC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fdHguYwpA QCAtNjYsNiArNjYsNyBAQCBpbnQgbWx4NF9lbl9jcmVhdGVfdHhfcmluZyhzdHJ1Y3QgbWx4NF9l bl9wcml2ICpwcml2LAogCXJpbmctPnNpemUgPSBzaXplOwogCXJpbmctPnNpemVfbWFzayA9IHNp emUgLSAxOwogCXJpbmctPnN0cmlkZSA9IHN0cmlkZTsKKwlyaW5nLT5mdWxsX3NpemUgPSByaW5n LT5zaXplIC0gSEVBRFJPT00gLSBNQVhfREVTQ19UWEJCUzsKIAogCXRtcCA9IHNpemUgKiBzaXpl b2Yoc3RydWN0IG1seDRfZW5fdHhfaW5mbyk7CiAJcmluZy0+dHhfaW5mbyA9IGttYWxsb2Nfbm9k ZSh0bXAsIEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4sIG5vZGUpOwpAQCAtMjIzLDYgKzIyNCwx MSBAQCB2b2lkIG1seDRfZW5fZGVhY3RpdmF0ZV90eF9yaW5nKHN0cnVjdCBtbHg0X2VuX3ByaXYg KnByaXYsCiAJCSAgICAgICBNTFg0X1FQX1NUQVRFX1JTVCwgTlVMTCwgMCwgMCwgJnJpbmctPnFw KTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIG1seDRfZW5faXNfdHhfcmluZ19mdWxsKHN0cnVj dCBtbHg0X2VuX3R4X3JpbmcgKnJpbmcpCit7CisJcmV0dXJuIHJpbmctPnByb2QgLSByaW5nLT5j b25zID4gcmluZy0+ZnVsbF9zaXplOworfQorCiBzdGF0aWMgdm9pZCBtbHg0X2VuX3N0YW1wX3dx ZShzdHJ1Y3QgbWx4NF9lbl9wcml2ICpwcml2LAogCQkJICAgICAgc3RydWN0IG1seDRfZW5fdHhf cmluZyAqcmluZywgaW50IGluZGV4LAogCQkJICAgICAgdTggb3duZXIpCkBAIC00NjUsMTEgKzQ3 MSwxMCBAQCBzdGF0aWMgYm9vbCBtbHg0X2VuX3Byb2Nlc3NfdHhfY3Eoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwKIAogCW5ldGRldl90eF9jb21wbGV0ZWRfcXVldWUocmluZy0+dHhfcXVldWUsIHBh Y2tldHMsIGJ5dGVzKTsKIAotCS8qCi0JICogV2FrZXVwIFR4IHF1ZXVlIGlmIHRoaXMgc3RvcHBl ZCwgYW5kIGF0IGxlYXN0IDEgcGFja2V0Ci0JICogd2FzIGNvbXBsZXRlZAorCS8qIFdha2V1cCBU eCBxdWV1ZSBpZiB0aGlzIHN0b3BwZWQsIGFuZCByaW5nIGlzIG5vdCBmdWxsLgogCSAqLwotCWlm IChuZXRpZl90eF9xdWV1ZV9zdG9wcGVkKHJpbmctPnR4X3F1ZXVlKSAmJiB0eGJic19za2lwcGVk ID4gMCkgeworCWlmIChuZXRpZl90eF9xdWV1ZV9zdG9wcGVkKHJpbmctPnR4X3F1ZXVlKSAmJgor CSAgICAhbWx4NF9lbl9pc190eF9yaW5nX2Z1bGwocmluZykpIHsKIAkJbmV0aWZfdHhfd2FrZV9x dWV1ZShyaW5nLT50eF9xdWV1ZSk7CiAJCXJpbmctPndha2VfcXVldWUrKzsKIAl9CkBAIC05MTMs OCArOTE4LDcgQEAgbmV0ZGV2X3R4X3QgbWx4NF9lbl94bWl0KHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJc2tiX3R4X3RpbWVzdGFtcChza2IpOwogCiAJLyog Q2hlY2sgYXZhaWxhYmxlIFRYQkJzIEFuZCAySyBzcGFyZSBmb3IgcHJlZmV0Y2ggKi8KLQlzdG9w X3F1ZXVlID0gKGludCkocmluZy0+cHJvZCAtIHJpbmdfY29ucykgPgotCQkgICAgICByaW5nLT5z aXplIC0gSEVBRFJPT00gLSBNQVhfREVTQ19UWEJCUzsKKwlzdG9wX3F1ZXVlID0gbWx4NF9lbl9p c190eF9yaW5nX2Z1bGwocmluZyk7CiAJaWYgKHVubGlrZWx5KHN0b3BfcXVldWUpKSB7CiAJCW5l dGlmX3R4X3N0b3BfcXVldWUocmluZy0+dHhfcXVldWUpOwogCQlyaW5nLT5xdWV1ZV9zdG9wcGVk Kys7CkBAIC05ODMsOCArOTg3LDcgQEAgbmV0ZGV2X3R4X3QgbWx4NF9lbl94bWl0KHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCXNtcF9ybWIoKTsKIAogCQly aW5nX2NvbnMgPSBBQ0NFU1NfT05DRShyaW5nLT5jb25zKTsKLQkJaWYgKHVubGlrZWx5KCgoaW50 KShyaW5nLT5wcm9kIC0gcmluZ19jb25zKSkgPD0KLQkJCSAgICAgcmluZy0+c2l6ZSAtIEhFQURS T09NIC0gTUFYX0RFU0NfVFhCQlMpKSB7CisJCWlmICh1bmxpa2VseSghbWx4NF9lbl9pc190eF9y aW5nX2Z1bGwocmluZykpKSB7CiAJCQluZXRpZl90eF93YWtlX3F1ZXVlKHJpbmctPnR4X3F1ZXVl KTsKIAkJCXJpbmctPndha2VfcXVldWUrKzsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg0L21seDRfZW4uaAppbmRleCA2OTJiZDRlLi40ZjkwODA2IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaAorKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaApAQCAtMjgwLDYgKzI4MCw3 IEBAIHN0cnVjdCBtbHg0X2VuX3R4X3JpbmcgewogCXUzMgkJCXNpemU7IC8qIG51bWJlciBvZiBU WEJCcyAqLwogCXUzMgkJCXNpemVfbWFzazsKIAl1MTYJCQlzdHJpZGU7CisJdTMyCQkJZnVsbF9z aXplOwogCXUxNgkJCWNxbjsJLyogaW5kZXggb2YgcG9ydCBDUSBhc3NvY2lhdGVkIHdpdGggdGhp cyByaW5nICovCiAJdTMyCQkJYnVmX3NpemU7CiAJX19iZTMyCQkJZG9vcmJlbGxfcXBuOwotLSAK Mi4xLjAKCgpGcm9tIDQxMzk0NTMxZTA1YTJiYmZkNzYyN2EyNGFlOGRhYzBmN2RjMWZiYTkgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtvbnN0YW50aW4gS2hsZWJuaWtvdiA8a2hsZWJu aWtvdkB5YW5kZXgtdGVhbS5ydT4KRGF0ZTogRnJpLCAyNiBKdW4gMjAxNSAxMzo0ODoxNyArMDMw MApTdWJqZWN0OiBbUEFUQ0ggMTAvMTZdIGxpYi9yaGFzaHRhYmxlOiBmaXggcmFjZSBiZXR3ZWVu CiByaGFzaHRhYmxlX2xvb2t1cF9jb21wYXJlIGFuZCBoYXNodGFibGUgcmVzaXplCgpbIE5vIGFw cGxpY2FibGUgdXBzdHJlYW0gY29tbWl0IF0KCkhhc2ggdmFsdWUgcGFzc2VkIGFzIGFyZ3VtZW50 IGludG8gcmhhc2h0YWJsZV9sb29rdXBfY29tcGFyZSBjb3VsZCBiZQpjb21wdXRlZCB1c2luZyBk aWZmZXJlbnQgaGFzaCB0YWJsZSB0aGFuIHJoYXNodGFibGVfbG9va3VwX2NvbXBhcmUgc2Vlcy4K ClRoaXMgcGF0Y2ggcGFzc2VzIGtleSBpbnRvIHJoYXNodGFibGVfbG9va3VwX2NvbXBhcmUoKSBp bnN0ZWFkIG9mIGhhc2ggYW5kCmNvbXB1cmVzIGhhc2ggdmFsdWUgcmlnaHQgaW4gcGxhY2UgdXNp bmcgdGhlIHNhbWUgdGFibGUgYXMgZm9yIGxvb2t1cC4KCkFsc28gaXQgYWRkcyBjb21tZW50IGZv ciByaGFzaHRhYmxlX2hhc2hmbiBhbmQgcmhhc2h0YWJsZV9vYmpfaGFzaGZuOgp1c2VyIG11c3Qg cHJldmVudCBjb25jdXJyZW50IGluc2VydC9yZW1vdmUgb3RoZXJ3aXNlIHJldHVybmVkIGhhc2gg dmFsdWUKY291bGQgYmUgaW52YWxpZC4KClNpZ25lZC1vZmYtYnk6IEtvbnN0YW50aW4gS2hsZWJu aWtvdiA8a2hsZWJuaWtvdkB5YW5kZXgtdGVhbS5ydT4KRml4ZXM6IGUzNDE2OTRlM2ViNSAoIm5l dGxpbms6IENvbnZlcnQgbmV0bGlua19sb29rdXAoKSB0byB1c2UgUkNVIHByb3RlY3RlZCBoYXNo IHRhYmxlIikKTGluazogaHR0cDovL2xrbWwua2VybmVsLm9yZy9yLzIwMTUwNTE0MDQyMTUxLkdB NTQ4MkBnb25kb3IuYXBhbmEub3JnLmF1CkNjOiBTdGFibGUgPHN0YWJsZUB2Z2VyLmtlcm5lbC5v cmc+ICh2My4xNyAuLiB2My4xOSkKQWNrZWQtYnk6IFRob21hcyBHcmFmIDx0Z3JhZkBzdXVnLmNo PgotLS0KIGluY2x1ZGUvbGludXgvcmhhc2h0YWJsZS5oIHwgIDIgKy0KIGxpYi9yaGFzaHRhYmxl LmMgICAgICAgICAgIHwgMTIgKysrKysrKystLS0tCiBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmMg ICB8ICA1ICstLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9yaGFzaHRhYmxlLmggYi9pbmNsdWRl L2xpbnV4L3JoYXNodGFibGUuaAppbmRleCBmYjI5OGU5ZC4uODQwNTY3NCAxMDA2NDQKLS0tIGEv aW5jbHVkZS9saW51eC9yaGFzaHRhYmxlLmgKKysrIGIvaW5jbHVkZS9saW51eC9yaGFzaHRhYmxl LmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBpbnQgcmhhc2h0YWJsZV9leHBhbmQoc3RydWN0IHJoYXNo dGFibGUgKmh0LCBnZnBfdCBmbGFncyk7CiBpbnQgcmhhc2h0YWJsZV9zaHJpbmsoc3RydWN0IHJo YXNodGFibGUgKmh0LCBnZnBfdCBmbGFncyk7CiAKIHZvaWQgKnJoYXNodGFibGVfbG9va3VwKGNv bnN0IHN0cnVjdCByaGFzaHRhYmxlICpodCwgY29uc3Qgdm9pZCAqa2V5KTsKLXZvaWQgKnJoYXNo dGFibGVfbG9va3VwX2NvbXBhcmUoY29uc3Qgc3RydWN0IHJoYXNodGFibGUgKmh0LCB1MzIgaGFz aCwKK3ZvaWQgKnJoYXNodGFibGVfbG9va3VwX2NvbXBhcmUoY29uc3Qgc3RydWN0IHJoYXNodGFi bGUgKmh0LCB2b2lkICprZXksCiAJCQkJYm9vbCAoKmNvbXBhcmUpKHZvaWQgKiwgdm9pZCAqKSwg dm9pZCAqYXJnKTsKIAogdm9pZCByaGFzaHRhYmxlX2Rlc3Ryb3koY29uc3Qgc3RydWN0IHJoYXNo dGFibGUgKmh0KTsKZGlmZiAtLWdpdCBhL2xpYi9yaGFzaHRhYmxlLmMgYi9saWIvcmhhc2h0YWJs ZS5jCmluZGV4IDYyNGEwYjcuLmNiMjIwNzMgMTAwNjQ0Ci0tLSBhL2xpYi9yaGFzaHRhYmxlLmMK KysrIGIvbGliL3JoYXNodGFibGUuYwpAQCAtNjEsNiArNjEsOCBAQCBzdGF0aWMgdTMyIF9faGFz aGZuKGNvbnN0IHN0cnVjdCByaGFzaHRhYmxlICpodCwgY29uc3Qgdm9pZCAqa2V5LAogICogQ29t cHV0ZXMgdGhlIGhhc2ggdmFsdWUgdXNpbmcgdGhlIGhhc2ggZnVuY3Rpb24gcHJvdmlkZWQgaW4g dGhlICdoYXNoZm4nCiAgKiBvZiBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMuIFRoZSByZXR1cm5l ZCB2YWx1ZSBpcyBndWFyYW50ZWVkIHRvIGJlCiAgKiBzbWFsbGVyIHRoYW4gdGhlIG51bWJlciBv ZiBidWNrZXRzIGluIHRoZSBoYXNoIHRhYmxlLgorICoKKyAqIFRoZSBjYWxsZXIgbXVzdCBlbnN1 cmUgdGhhdCBubyBjb25jdXJyZW50IHRhYmxlIG11dGF0aW9ucyBvY2N1ci4KICAqLwogdTMyIHJo YXNodGFibGVfaGFzaGZuKGNvbnN0IHN0cnVjdCByaGFzaHRhYmxlICpodCwgY29uc3Qgdm9pZCAq a2V5LCB1MzIgbGVuKQogewpAQCAtOTIsNiArOTQsOCBAQCBzdGF0aWMgdTMyIG9ial9oYXNoZm4o Y29uc3Qgc3RydWN0IHJoYXNodGFibGUgKmh0LCBjb25zdCB2b2lkICpwdHIsIHUzMiBoc2l6ZSkK ICAqICdvYmpfaGFzaGZuJyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgaGFzaCB0YWJsZSBpcyBz ZXQgdXAgdG8gd29yayB3aXRoCiAgKiBhIGZpeGVkIGxlbmd0aCBrZXkuIFRoZSByZXR1cm5lZCB2 YWx1ZSBpcyBndWFyYW50ZWVkIHRvIGJlIHNtYWxsZXIgdGhhbgogICogdGhlIG51bWJlciBvZiBi dWNrZXRzIGluIHRoZSBoYXNoIHRhYmxlLgorICoKKyAqIFRoZSBjYWxsZXIgbXVzdCBlbnN1cmUg dGhhdCBubyBjb25jdXJyZW50IHRhYmxlIG11dGF0aW9ucyBvY2N1ci4KICAqLwogdTMyIHJoYXNo dGFibGVfb2JqX2hhc2hmbihjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZSAqaHQsIHZvaWQgKnB0cikK IHsKQEAgLTQ3NCw3ICs0NzgsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChyaGFzaHRhYmxlX2xvb2t1 cCk7CiAvKioKICAqIHJoYXNodGFibGVfbG9va3VwX2NvbXBhcmUgLSBzZWFyY2ggaGFzaCB0YWJs ZSB3aXRoIGNvbXBhcmUgZnVuY3Rpb24KICAqIEBodDoJCWhhc2ggdGFibGUKLSAqIEBoYXNoOglo YXNoIHZhbHVlIG9mIGRlc2lyZWQgZW50cnkKKyAqIEBrZXk6CXBvaW50ZXIgdG8ga2V5CiAgKiBA Y29tcGFyZToJY29tcGFyZSBmdW5jdGlvbiwgbXVzdCByZXR1cm4gdHJ1ZSBvbiBtYXRjaAogICog QGFyZzoJYXJndW1lbnQgcGFzc2VkIG9uIHRvIGNvbXBhcmUgZnVuY3Rpb24KICAqCkBAIC00ODYs MTQgKzQ5MCwxNCBAQCBFWFBPUlRfU1lNQk9MX0dQTChyaGFzaHRhYmxlX2xvb2t1cCk7CiAgKgog ICogUmV0dXJucyB0aGUgZmlyc3QgZW50cnkgb24gd2hpY2ggdGhlIGNvbXBhcmUgZnVuY3Rpb24g cmV0dXJuZWQgdHJ1ZS4KICAqLwotdm9pZCAqcmhhc2h0YWJsZV9sb29rdXBfY29tcGFyZShjb25z dCBzdHJ1Y3Qgcmhhc2h0YWJsZSAqaHQsIHUzMiBoYXNoLAordm9pZCAqcmhhc2h0YWJsZV9sb29r dXBfY29tcGFyZShjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZSAqaHQsIHZvaWQgKmtleSwKIAkJCQli b29sICgqY29tcGFyZSkodm9pZCAqLCB2b2lkICopLCB2b2lkICphcmcpCiB7CiAJY29uc3Qgc3Ry dWN0IGJ1Y2tldF90YWJsZSAqdGJsID0gcmh0X2RlcmVmZXJlbmNlX3JjdShodC0+dGJsLCBodCk7 CiAJc3RydWN0IHJoYXNoX2hlYWQgKmhlOworCXUzMiBoYXNoOwogCi0JaWYgKHVubGlrZWx5KGhh c2ggPj0gdGJsLT5zaXplKSkKLQkJcmV0dXJuIE5VTEw7CisJaGFzaCA9IF9faGFzaGZuKGh0LCBr ZXksIGh0LT5wLmtleV9sZW4sIHRibC0+c2l6ZSk7CiAKIAlyaHRfZm9yX2VhY2hfcmN1KGhlLCB0 YmwtPmJ1Y2tldHNbaGFzaF0sIGh0KSB7CiAJCWlmICghY29tcGFyZShyaHRfb2JqKGh0LCBoZSks IGFyZykpCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgYi9uZXQvbmV0bGlu ay9hZl9uZXRsaW5rLmMKaW5kZXggYzBhNDE4Ny4uYzgyYjJlMyAxMDA2NDQKLS0tIGEvbmV0L25l dGxpbmsvYWZfbmV0bGluay5jCisrKyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwpAQCAtMTAw MywxMSArMTAwMyw4IEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqX19uZXRsaW5rX2xvb2t1cChzdHJ1 Y3QgbmV0bGlua190YWJsZSAqdGFibGUsIHUzMiBwb3J0aWQsCiAJCS5uZXQgPSBuZXQsCiAJCS5w b3J0aWQgPSBwb3J0aWQsCiAJfTsKLQl1MzIgaGFzaDsKIAotCWhhc2ggPSByaGFzaHRhYmxlX2hh c2hmbigmdGFibGUtPmhhc2gsICZwb3J0aWQsIHNpemVvZihwb3J0aWQpKTsKLQotCXJldHVybiBy aGFzaHRhYmxlX2xvb2t1cF9jb21wYXJlKCZ0YWJsZS0+aGFzaCwgaGFzaCwKKwlyZXR1cm4gcmhh c2h0YWJsZV9sb29rdXBfY29tcGFyZSgmdGFibGUtPmhhc2gsICZwb3J0aWQsCiAJCQkJCSAmbmV0 bGlua19jb21wYXJlLCAmYXJnKTsKIH0KIAotLSAKMi4xLjAKCgpGcm9tIDQxNTVlZThjNWQ5YmUz ZTcwNzRkNjgxODJlZDI1NDZkZDgwMDJmMTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IE11Z3VudGhhbiBWIE4gPG11Z3VudGhhbnZubUB0aS5jb20+CkRhdGU6IFRodSwgMjUgSnVuIDIw MTUgMjI6MjE6MDIgKzA1MzAKU3ViamVjdDogW1BBVENIIDExLzE2XSBuZXQ6IHBoeTogZml4IHBo eSBsaW5rIHVwIHdoZW4gbGltaXRpbmcgc3BlZWQgdmlhCiBkZXZpY2UgdHJlZQoKWyBVcHN0cmVh bSBjb21taXQgZWI2ODYyMzFmY2UzNzcwMjk5NzYwZjI0ZmRjZjVhZDA0MWY0NDE1MyBdCgpXaGVu IGxpbWl0aW5nIHBoeSBsaW5rIHNwZWVkIHVzaW5nICJtYXgtc3BlZWQiIHRvIDEwMG1icHMgb3Ig bGVzcyBvbiBhCmdpZ2EgYml0IHBoeSwgcGh5IG5ldmVyIGNvbXBsZXRlcyBhdXRvIG5lZ290aWF0 aW9uIGFuZCBwaHkgc3RhdGUKbWFjaGluZSBpcyBoZWxkIGluIFBIWV9BTi4gRml4aW5nIHRoaXMg aXNzdWUgYnkgY29tcGFyaW5nIHRoZSBnaWdhCmJpdCBhZHZlcnRpc2UgdGhvdWdoIHBoeWRldi0+ c3VwcG9ydGVkIGRvZXNuJ3QgaGF2ZSBpdCBidXQgcGh5IGhhcwpCTVNSX0VTVEFURU4gc2V0LiBT byB0aGF0IGF1dG8gbmVnb3RpYXRpb24gaXMgcmVzdGFydGVkIGFzIG9sZCBhbmQKbmV3IGFkdmVy dGlzZSBhcmUgZGlmZmVyZW50IGFuZCBsaW5rIGNvbWVzIHVwIGZpbmUuCgpTaWduZWQtb2ZmLWJ5 OiBNdWd1bnRoYW4gViBOIDxtdWd1bnRoYW52bm1AdGkuY29tPgpSZXZpZXdlZC1ieTogRmxvcmlh biBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvcGh5X2Rl dmljZS5jIHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jIGIvZHJp dmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYwppbmRleCAzZmM5MWU4Li43MGEwZDg4IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9w aHlfZGV2aWNlLmMKQEAgLTc4MiwxMCArNzgyLDExIEBAIHN0YXRpYyBpbnQgZ2VucGh5X2NvbmZp Z19hZHZlcnQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlpZiAocGh5ZGV2LT5zdXBwb3J0 ZWQgJiAoU1VQUE9SVEVEXzEwMDBiYXNlVF9IYWxmIHwKIAkJCQkgU1VQUE9SVEVEXzEwMDBiYXNl VF9GdWxsKSkgewogCQlhZHYgfD0gZXRodG9vbF9hZHZfdG9fbWlpX2N0cmwxMDAwX3QoYWR2ZXJ0 aXNlKTsKLQkJaWYgKGFkdiAhPSBvbGRhZHYpCi0JCQljaGFuZ2VkID0gMTsKIAl9CiAKKwlpZiAo YWR2ICE9IG9sZGFkdikKKwkJY2hhbmdlZCA9IDE7CisKIAllcnIgPSBwaHlfd3JpdGUocGh5ZGV2 LCBNSUlfQ1RSTDEwMDAsIGFkdik7CiAJaWYgKGVyciA8IDApCiAJCXJldHVybiBlcnI7Ci0tIAoy LjEuMAoKCkZyb20gZWQwYzUyZjM1YzE2ZGVjNGVhN2E0YzcwZDc0NGE3MWQ3OTE0YjYxZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpEYXRlOiBGcmksIDI2IEp1biAyMDE1IDA3OjMyOjI5ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxMi8xNl0gYm54Mng6IGZpeCBsb2NrZGVwIHNwbGF0CgpbIFVwc3RyZWFtIGNvbW1pdCBkNTNj NjZhNWI4MDY5ODYyMGY3YzliYTIzNzJmZmY0MDE3ZTk4N2I4IF0KCk1pY2hlbCByZXBvcnRlZCBm b2xsb3dpbmcgbG9ja2RlcCBzcGxhdAoKWyAgIDQ0LjcxODExN10gSU5GTzogdHJ5aW5nIHRvIHJl Z2lzdGVyIG5vbi1zdGF0aWMga2V5LgpbICAgNDQuNzIzMDgxXSB0aGUgY29kZSBpcyBmaW5lIGJ1 dCBuZWVkcyBsb2NrZGVwIGFubm90YXRpb24uClsgICA0NC43Mjg1NTldIHR1cm5pbmcgb2ZmIHRo ZSBsb2NraW5nIGNvcnJlY3RuZXNzIHZhbGlkYXRvci4KWyAgIDQ0LjczNDAzNl0gQ1BVOiA4IFBJ RDogNTQ4MyBDb21tOiBldGh0b29sIE5vdCB0YWludGVkIDQuMS4wClsgICA0NC43NzAyODldIENh bGwgVHJhY2U6ClsgICA0NC43NzI3NDFdICBbPGZmZmZmZmZmODE2ZWIxY2Q+XSBkdW1wX3N0YWNr KzB4NGMvMHg2NQpbICAgNDQuNzc3ODc5XSAgWzxmZmZmZmZmZjgxMTFkOTIxPl0gPyBjb25zb2xl X3VubG9jaysweDFmMS8weDUxMApbICAgNDQuNzgzNzA4XSAgWzxmZmZmZmZmZjgxMTEyMWY1Pl0g X19sb2NrX2FjcXVpcmUrMHgxZDA1LzB4MWYxMApbICAgNDQuNzg5NTM4XSAgWzxmZmZmZmZmZjgx MTEzNzBhPl0gPyBtYXJrX2hlbGRfbG9ja3MrMHg2YS8weDkwClsgICA0NC43OTUyNzZdICBbPGZm ZmZmZmZmODExMTM4MzU+XSA/IHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcisweDEwNS8weDFkMApb ICAgNDQuODAxOTY3XSAgWzxmZmZmZmZmZjgxMTEzOTBkPl0gPyB0cmFjZV9oYXJkaXJxc19vbisw eGQvMHgxMApbICAgNDQuODA3NzkzXSAgWzxmZmZmZmZmZjgxMTMzMGZhPl0gPyBocnRpbWVyX3Ry eV90b19jYW5jZWwrMHg0YS8weDI1MApbICAgNDQuODE0MTQyXSAgWzxmZmZmZmZmZjgxMTEyYmE2 Pl0gbG9ja19hY3F1aXJlKzB4YjYvMHgyOTAKWyAgIDQ0LjgxOTUzN10gIFs8ZmZmZmZmZmY4MTBk NjY3NT5dID8gZmx1c2hfd29yaysweDUvMHgyODAKWyAgIDQ0LjgyNDg0NF0gIFs8ZmZmZmZmZmY4 MTBkNjZhZD5dIGZsdXNoX3dvcmsrMHgzZC8weDI4MApbICAgNDQuODMwMDYxXSAgWzxmZmZmZmZm ZjgxMGQ2Njc1Pl0gPyBmbHVzaF93b3JrKzB4NS8weDI4MApbICAgNDQuODM1MzY2XSAgWzxmZmZm ZmZmZjgxNmYzYzQzPl0gPyBzY2hlZHVsZV9ocnRpbWVvdXRfcmFuZ2UrMHgxMy8weDIwClsgICA0 NC44NDE4ODldICBbPGZmZmZmZmZmODExMmVjOWI+XSA/IHVzbGVlcF9yYW5nZSsweDRiLzB4NTAK WyAgIDQ0Ljg0NzM2NV0gIFs8ZmZmZmZmZmY4MTExMzcwYT5dID8gbWFya19oZWxkX2xvY2tzKzB4 NmEvMHg5MApbICAgNDQuODUzMTAyXSAgWzxmZmZmZmZmZjgxMGQ4NTg1Pl0gPyBfX2NhbmNlbF93 b3JrX3RpbWVyKzB4MTA1LzB4MWMwClsgICA0NC44NTkzNTldICBbPGZmZmZmZmZmODExMTM4MzU+ XSA/IHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcisweDEwNS8weDFkMApbICAgNDQuODY2MDQ1XSAg WzxmZmZmZmZmZjgxMGQ4NTFmPl0gX19jYW5jZWxfd29ya190aW1lcisweDlmLzB4MWMwClsgICA0 NC44NzIwNDhdICBbPGZmZmZmZmZmYTAwMTA5ODI+XSA/IGJueDJ4X2Z1bmNfc3RvcCsweDQyLzB4 OTAgW2JueDJ4XQpbICAgNDQuODc4NDgxXSAgWzxmZmZmZmZmZjgxMGQ4NjcwPl0gY2FuY2VsX3dv cmtfc3luYysweDEwLzB4MjAKWyAgIDQ0Ljg4NDEzNF0gIFs8ZmZmZmZmZmZhMDAyNTllNT5dIGJu eDJ4X2NoaXBfY2xlYW51cCsweDI0NS8weDczMCBbYm54MnhdClsgICA0NC44OTA4MjldICBbPGZm ZmZmZmZmODExMGNlMDI+XSA/IHVwKzB4MzIvMHg1MApbICAgNDQuODk1NDM5XSAgWzxmZmZmZmZm ZjgxMTMwNmI1Pl0gPyBkZWxfdGltZXJfc3luYysweDUvMHhkMApbICAgNDQuOTAxMDA1XSAgWzxm ZmZmZmZmZmEwMDU1OTZkPl0gYm54MnhfbmljX3VubG9hZCsweDIwZC8weDhlMCBbYm54MnhdClsg ICA0NC45MDc1MjddICBbPGZmZmZmZmZmODExZjFhZWY+XSA/IG1pZ2h0X2ZhdWx0KzB4NWYvMHhi MApbICAgNDQuOTEyOTIxXSAgWzxmZmZmZmZmZmEwMDU4NTFjPl0gYm54MnhfcmVsb2FkX2lmX3J1 bm5pbmcrMHgyYy8weDUwIFtibngyeF0KWyAgIDQ0LjkxOTg3OV0gIFs8ZmZmZmZmZmZhMDA1YTNj NT5dIGJueDJ4X3NldF9yaW5ncGFyYW0rMHgyYjUvMHg0NjAgW2JueDJ4XQpbICAgNDQuOTI2NjY0 XSAgWzxmZmZmZmZmZjgxNWQ0OThiPl0gZGV2X2V0aHRvb2wrMHg1NWIvMHgxYzQwClsgICA0NC45 MzIxNDhdICBbPGZmZmZmZmZmODE1ZGZkYzc+XSA/IHJ0bmxfbG9jaysweDE3LzB4MjAKWyAgIDQ0 LjkzNzM2NF0gIFs8ZmZmZmZmZmY4MTVlN2Y4Yj5dIGRldl9pb2N0bCsweDE3Yi8weDYzMApbICAg NDQuOTQyNTgyXSAgWzxmZmZmZmZmZjgxNWFiZjhkPl0gc29ja19kb19pb2N0bCsweDVkLzB4NzAK WyAgIDQ0Ljk0Nzk3Ml0gIFs8ZmZmZmZmZmY4MTVhYzAxMz5dIHNvY2tfaW9jdGwrMHg3My8weDI4 MApbICAgNDQuOTUzMTkyXSAgWzxmZmZmZmZmZjgxMjRjMWM4Pl0gZG9fdmZzX2lvY3RsKzB4ODgv MHg1YjAKWyAgIDQ0Ljk1ODU4N10gIFs8ZmZmZmZmZmY4MTEwZDBiMz5dID8gdXBfcmVhZCsweDIz LzB4NDAKWyAgIDQ0Ljk2MzYzMV0gIFs8ZmZmZmZmZmY4MTI1ODRjYz5dID8gX19mZ2V0X2xpZ2h0 KzB4NmMvMHhhMApbICAgNDQuOTY5MTA1XSAgWzxmZmZmZmZmZjgxMjRjNzgxPl0gU3lTX2lvY3Rs KzB4OTEvMHhiMApbICAgNDQuOTc0MTQ5XSAgWzxmZmZmZmZmZjgxNmY0ZGQ3Pl0gc3lzdGVtX2Nh bGxfZmFzdHBhdGgrMHgxMi8weDZmCgpBcyBibngyeF9pbml0X3B0cCgpIGlzIG9ubHkgY2FsbGVk IGlmIGJwLT5mbGFncyBjb250YWlucyBQVFBfU1VQUE9SVEVELAp3ZSBhbHNvIG5lZWQgdG8gZ3Vh cmQgYm54Mnhfc3RvcF9wdHAoKSB3aXRoIHNhbWUgY29uZGl0aW9uLCBvdGhlcndpc2UKcHRwX3Rh c2sgd29ya3F1ZXVlIGlzIG5vdCBpbml0aWFsaXplZCBhbmQga2VybmVsIGJhcmZzIG9uCmNhbmNl bF93b3JrX3N5bmMoKQoKRml4ZXM6IGVlZWQwMThjYmZhMzAgKCJibngyeDogQWRkIHRpbWVzdGFt cGluZyBhbmQgUFRQIGhhcmR3YXJlIGNsb2NrIHN1cHBvcnQiKQpSZXBvcnRlZC1ieTogTWljaGVs IExlc3BpbmFzc2UgPHdhbGtlbkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBNaWNoYWwgS2FsZGVyb24gPE1pY2hhbC5LYWxk ZXJvbkBxbG9naWMuY29tPgpDYzogQXJpZWwgRWxpb3IgPEFyaWVsLkVsaW9yQHFsb2dpYy5jb20+ CkNjOiBZdXZhbCBNaW50eiA8WXV2YWwuTWludHpAcWxvZ2ljLmNvbT4KQ2M6IERhdmlkIERlY290 aWdueSA8ZGVjb3RAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFNvbnkgQ2hhY2tvIDxzb255LmNoYWNr b0BxbG9naWMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54Mnhf bWFpbi5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9i bngyeF9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9t YWluLmMKaW5kZXggNzEwZWI1Ny4uMTIxN2VhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X21haW4uYwpAQCAtOTMwNyw3ICs5MzA3LDggQEAgdW5s b2FkX2Vycm9yOgogCSAqIGZ1bmN0aW9uIHN0b3AgcmFtcm9kIGlzIHNlbnQsIHNpbmNlIGFzIHBh cnQgb2YgdGhpcyByYW1yb2QgRlcgYWNjZXNzCiAJICogUFRQIHJlZ2lzdGVycy4KIAkgKi8KLQli bngyeF9zdG9wX3B0cChicCk7CisJaWYgKGJwLT5mbGFncyAmIFBUUF9TVVBQT1JURUQpCisJCWJu eDJ4X3N0b3BfcHRwKGJwKTsKIAogCS8qIERpc2FibGUgSFcgaW50ZXJydXB0cywgTkFQSSAqLwog CWJueDJ4X25ldGlmX3N0b3AoYnAsIDEpOwotLSAKMi4xLjAKCgpGcm9tIGZlYjFjZDUxZjIyOTg5 NDYxMmQ3OGUxYTQ0ZDFhZDZmZmI5ODBhYjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEFsZXhhbmRlciBTdmVyZGxpbiA8YWxleGFuZGVyLnN2ZXJkbGluQG5va2lhLmNvbT4KRGF0ZTog TW9uLCAyOSBKdW4gMjAxNSAxMDo0MTowMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMTZdIHNj dHA6IEZpeCByYWNlIGJldHdlZW4gT09UQiByZXNwb25jZSBhbmQgcm91dGUgcmVtb3ZhbAoKWyBV cHN0cmVhbSBjb21taXQgMjljNGFmYzRlOThmNGRjMGVhOWRmMjJjNjMxODQxZjljMjIwYjk0NCBd CgpUaGVyZSBpcyBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgcG9zc2libGUgZHVyaW5nIHN0YXRp c3RpY3MgdXBkYXRlIGlmIHRoZSByb3V0ZQp1c2VkIGZvciBPT1RCIHJlc3BvbmNlIGlzIHJlbW92 ZWQgYXQgdW5mb3J0dW5hdGUgdGltZS4gSWYgdGhlIHJvdXRlIGV4aXN0cyB3aGVuCndlIHJlY2Vp dmUgT09UQiBwYWNrZXQgYW5kIHdlIGZpbmFsbHkganVtcCBpbnRvIHNjdHBfcGFja2V0X3RyYW5z bWl0KCkgdG8gc2VuZApBQk9SVCwgYnV0IGluIHRoZSBtZWFudGltZSByb3V0ZSBpcyByZW1vdmVk IHVuZGVyIG91ciBmZWV0LCB3ZSB0YWtlICJub19yb3V0ZSIKcGF0aCBhbmQgdHJ5IHRvIHVwZGF0 ZSBzdGF0cyB3aXRoIElQX0lOQ19TVEFUUyhzb2NrX25ldChhc29jLT5iYXNlLnNrKSwgLi4uKS4K CkJ1dCBzY3RwX29vdGJfcGt0X25ldygpIHVzZWQgdG8gcHJlcGFyZSByZXNwb25jZSBwYWNrZXQg ZG9lc24ndCBjYWxsCnNjdHBfdHJhbnNwb3J0X3NldF9vd25lcigpIGFuZCB0aGVyZWZvcmUgdGhl cmUgaXMgbm8gYXNvYyBhc3NvY2lhdGVkIHdpdGggdGhpcwpwYWNrZXQuIFByb2JhYmx5IHRlbXBv cmFyeSBhc29jIGp1c3QgZm9yIE9PVEIgcmVzcG9uY2VzIGlzIG92ZXJraWxsLCBzbyBqdXN0Cmlu dHJvZHVjZSBhIGNoZWNrIGxpa2UgaW4gYWxsIG90aGVyIHBsYWNlcyBpbiBzY3RwX3BhY2tldF90 cmFuc21pdCgpLCB3aGVyZQoiYXNvYyIgaXMgZGVyZWZlcmVuY2VkLgoKVG8gcmVwcm9kdWNlIHRo aXMsIG9uZSBuZWVkcyB0bwowLiBlbnN1cmUgdGhhdCBzY3RwIG1vZHVsZSBpcyBsb2FkZWQgKG90 aGVyd2lzZSBBQk9SVCBpcyBub3QgZ2VuZXJhdGVkKQoxLiByZW1vdmUgZGVmYXVsdCByb3V0ZSBv biB0aGUgbWFjaGluZQoyLiB3aGlsZSB0cnVlOyBkbwogICAgIGlwIHJvdXRlIGRlbCBbaW50ZXJm YWNlLXNwZWNpZmljIHJvdXRlXQogICAgIGlwIHJvdXRlIGFkZCBbaW50ZXJmYWNlLXNwZWNpZmlj IHJvdXRlXQogICBkb25lCjMuIHNlbmQgZW5vdWdoIE9PVEIgcGFja2V0cyAoaS5lLiBIQiBSRVFz KSBmcm9tIGFub3RoZXIgaG9zdCB0byB0cmlnZ2VyIEFCT1JUCiAgIHJlc3BvbmNlCgpPbiB4ODZf NjQgdGhlIGNyYXNoIGxvb2tzIGxpa2UgdGhpczoKCkJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJu ZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IDAwMDAwMDAwMDAwMDAwMjAKSVA6IFs8ZmZm ZmZmZmZhMDVlYzlhYz5dIHNjdHBfcGFja2V0X3RyYW5zbWl0KzB4NjNjLzB4NzMwIFtzY3RwXQpQ R0QgMApPb3BzOiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAKTW9kdWxlcyBsaW5rZWQgaW46IC4uLgpD UFU6IDAgUElEOiAwIENvbW06IHN3YXBwZXIvMCBUYWludGVkOiBHICAgICAgICAgICBPICAgIDQu MC41LTEtQVJDSCAjMQpIYXJkd2FyZSBuYW1lOiAuLi4KdGFzazogZmZmZmZmZmY4MTgxMjRjMCB0 aTogZmZmZmZmZmY4MTgwMDAwMCB0YXNrLnRpOiBmZmZmZmZmZjgxODAwMDAwClJJUDogMDAxMDpb PGZmZmZmZmZmYTA1ZWM5YWM+XSAgWzxmZmZmZmZmZmEwNWVjOWFjPl0gc2N0cF9wYWNrZXRfdHJh bnNtaXQrMHg2M2MvMHg3MzAgW3NjdHBdClJTUDogMDAxODpmZmZmODgwMTI3YzAzN2I4ICBFRkxB R1M6IDAwMDEwMjk2ClJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IDAwMDAwMDAwMDAwMDAwMDAg UkNYOiAwMDAwMDAxNWZmNjZiNDgwClJEWDogMDAwMDAwMTVmZjY2YjQwMCBSU0k6IGZmZmY4ODAx MjdjMTcyMDAgUkRJOiBmZmZmODgwMTIzNDAzNzAwClJCUDogZmZmZjg4MDEyN2MwMzg4OCBSMDg6 IDAwMDAwMDAwMDAwMTcyMDAgUjA5OiBmZmZmZmZmZjgxNDYyNWFmClIxMDogZmZmZmVhMDAwNDdl NDY4MCBSMTE6IDAwMDAwMDAwZmZmZmZmODAgUjEyOiBmZmZmODgwMGIwZDM4YTI4ClIxMzogZmZm Zjg4MDBiMGQzOGEyOCBSMTQ6IGZmZmY4ODAwYjNlODgwMDAgUjE1OiBmZmZmZmZmZmEwNWYyNGUw CkZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODgwMTI3YzAwMDAwKDAwMDApIGtu bEdTOjAwMDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAw MDAwMDA4MDA1MDAzYgpDUjI6IDAwMDAwMDAwMDAwMDAwMjAgQ1IzOiAwMDAwMDAwMGM4NTViMDAw IENSNDogMDAwMDAwMDAwMDAwMDdmMApTdGFjazoKIGZmZmY4ODAxMjdjMDM5MTAgZmZmZjg4MDBi MGQzOGEyOCBmZmZmZmZmZjgxODlkMjQwIGZmZmY4ODAxMWY5MWI0MDAKIGZmZmY4ODAxMjdjMDM4 MjggZmZmZmZmZmZhMDVjOTRjNSAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAwYmFhMWM1MjAKIDAw MDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMSAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAw MDAwMDAwMDAKQ2FsbCBUcmFjZToKIDxJUlE+CiBbPGZmZmZmZmZmYTA1Yzk0YzU+XSA/IHNjdHBf c2ZfdGFib3J0XzhfNF84LmlzcmEuMjArMHg4NS8weDE0MCBbc2N0cF0KIFs8ZmZmZmZmZmZhMDVk NmI0Mj5dID8gc2N0cF90cmFuc3BvcnRfcHV0KzB4NTIvMHg4MCBbc2N0cF0KIFs8ZmZmZmZmZmZh MDVkMGJmYz5dIHNjdHBfZG9fc20rMHhiOGMvMHgxOWEwIFtzY3RwXQogWzxmZmZmZmZmZjgxMGIw ZTAwPl0gPyB0cmlnZ2VyX2xvYWRfYmFsYW5jZSsweDkwLzB4MjEwCiBbPGZmZmZmZmZmODEwZTAz Mjk+XSA/IHVwZGF0ZV9wcm9jZXNzX3RpbWVzKzB4NTkvMHg2MAogWzxmZmZmZmZmZjgxMmM3YTQw Pl0gPyB0aW1lcnF1ZXVlX2FkZCsweDYwLzB4YjAKIFs8ZmZmZmZmZmY4MTBlMDU0OT5dID8gZW5x dWV1ZV9ocnRpbWVyKzB4MjkvMHhhMAogWzxmZmZmZmZmZjgxMDFmNTk5Pl0gPyByZWFkX3RzYysw eDkvMHgxMAogWzxmZmZmZmZmZjgxMTZkNGI1Pl0gPyBwdXRfcGFnZSsweDU1LzB4NjAKIFs8ZmZm ZmZmZmY4MTBlZTFhZD5dID8gY2xvY2tldmVudHNfcHJvZ3JhbV9ldmVudCsweDZkLzB4MTAwCiBb PGZmZmZmZmZmODE0NjJiNjg+XSA/IHNrYl9mcmVlX2hlYWQrMHg1OC8weDgwCiBbPGZmZmZmZmZm YTAyOWExMGI+XSA/IGNoa3N1bV91cGRhdGUrMHgxYi8weDI3IFtjcmMzMmNfZ2VuZXJpY10KIFs8 ZmZmZmZmZmY4MTI4M2YzZT5dID8gY3J5cHRvX3NoYXNoX3VwZGF0ZSsweGNlLzB4ZjAKIFs8ZmZm ZmZmZmZhMDVkMzk5Mz5dIHNjdHBfZW5kcG9pbnRfYmhfcmN2KzB4MTEzLzB4MjgwIFtzY3RwXQog WzxmZmZmZmZmZmEwNWRkNGU2Pl0gc2N0cF9pbnFfcHVzaCsweDQ2LzB4NjAgW3NjdHBdCiBbPGZm ZmZmZmZmYTA1ZWQ3YTA+XSBzY3RwX3JjdisweDg4MC8weDkxMCBbc2N0cF0KIFs8ZmZmZmZmZmZh MDVlY2I1MD5dID8gc2N0cF9wYWNrZXRfdHJhbnNtaXRfY2h1bmsrMHhiMC8weGIwIFtzY3RwXQog WzxmZmZmZmZmZmEwNWVjYjcwPl0gPyBzY3RwX2NzdW1fdXBkYXRlKzB4MjAvMHgyMCBbc2N0cF0K IFs8ZmZmZmZmZmY4MTRiMDVhNT5dID8gaXBfcm91dGVfaW5wdXRfbm9yZWYrMHgyMzUvMHhkMzAK IFs8ZmZmZmZmZmY4MTA1MWQ2Yj5dID8gYWNrX2lvYXBpY19sZXZlbCsweDdiLzB4MTUwCiBbPGZm ZmZmZmZmODE0YjI3YmU+XSBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweGFlLzB4MjEwCiBbPGZm ZmZmZmZmODE0YjJlMTU+XSBpcF9sb2NhbF9kZWxpdmVyKzB4MzUvMHg5MAogWzxmZmZmZmZmZjgx NGIyYTE1Pl0gaXBfcmN2X2ZpbmlzaCsweGY1LzB4MzcwCiBbPGZmZmZmZmZmODE0YjMxMjg+XSBp cF9yY3YrMHgyYjgvMHgzYTAKIFs8ZmZmZmZmZmY4MTQ3NDE5Mz5dIF9fbmV0aWZfcmVjZWl2ZV9z a2JfY29yZSsweDc2My8weGE1MAogWzxmZmZmZmZmZjgxNDc2YzI4Pl0gX19uZXRpZl9yZWNlaXZl X3NrYisweDE4LzB4NjAKIFs8ZmZmZmZmZmY4MTQ3NmNiMD5dIG5ldGlmX3JlY2VpdmVfc2tiX2lu dGVybmFsKzB4NDAvMHhkMAogWzxmZmZmZmZmZjgxNDc3NmM4Pl0gbmFwaV9ncm9fcmVjZWl2ZSsw eGU4LzB4MTIwCiBbPGZmZmZmZmZmYTAzOTQ2YWE+XSBydGw4MTY5X3BvbGwrMHgyZGEvMHg2NjAg W3I4MTY5XQogWzxmZmZmZmZmZjgxNDc4OTZhPl0gbmV0X3J4X2FjdGlvbisweDIxYS8weDM2MAog WzxmZmZmZmZmZjgxMDc4ZGMxPl0gX19kb19zb2Z0aXJxKzB4ZTEvMHgyZDAKIFs8ZmZmZmZmZmY4 MTA3OTEyZD5dIGlycV9leGl0KzB4YWQvMHhiMAogWzxmZmZmZmZmZjgxNTdkMTU4Pl0gZG9fSVJR KzB4NTgvMHhmMAogWzxmZmZmZmZmZjgxNTdiMDZkPl0gY29tbW9uX2ludGVycnVwdCsweDZkLzB4 NmQKIDxFT0k+CiBbPGZmZmZmZmZmODEwZTEyMTg+XSA/IGhydGltZXJfc3RhcnQrMHgxOC8weDIw CiBbPGZmZmZmZmZmYTA1ZDY1Zjk+XSA/IHNjdHBfdHJhbnNwb3J0X2Rlc3Ryb3lfcmN1KzB4Mjkv MHgzMCBbc2N0cF0KIFs8ZmZmZmZmZmY4MTAyMGM1MD5dID8gbXdhaXRfaWRsZSsweDYwLzB4YTAK IFs8ZmZmZmZmZmY4MTAyMTZlZj5dIGFyY2hfY3B1X2lkbGUrMHhmLzB4MjAKIFs8ZmZmZmZmZmY4 MTBiNzMxYz5dIGNwdV9zdGFydHVwX2VudHJ5KzB4M2VjLzB4NDgwCiBbPGZmZmZmZmZmODE1NmIz NjU+XSByZXN0X2luaXQrMHg4NS8weDkwCiBbPGZmZmZmZmZmODE4ZWIwMzU+XSBzdGFydF9rZXJu ZWwrMHg0OGIvMHg0YWMKIFs8ZmZmZmZmZmY4MThlYTEyMD5dID8gZWFybHlfaWR0X2hhbmRsZXJz KzB4MTIwLzB4MTIwCiBbPGZmZmZmZmZmODE4ZWEzMzk+XSB4ODZfNjRfc3RhcnRfcmVzZXJ2YXRp b25zKzB4MmEvMHgyYwogWzxmZmZmZmZmZjgxOGVhNDljPl0geDg2XzY0X3N0YXJ0X2tlcm5lbCsw eDE2MS8weDE4NApDb2RlOiA5MCA0OCA4YiA4MCBiOCAwMCAwMCAwMCA0OCA4OSA4NSA3MCBmZiBm ZiBmZiA0OCA4MyBiZCA3MCBmZiBmZiBmZiAwMCAwZiA4NSBjZCBmYSBmZiBmZiA0OCA4OSBkZiAz MSBkYiBlOCAxOCA2MyBlNyBlMCA0OCA4YiA0NSA4MCA8NDg+IDhiIDQwIDIwIDQ4IDhiIDQwIDMw IDQ4IDhiIDgwIDY4IDAxIDAwIDAwIDY1IDQ4IGZmIDQwIDc4IGU5ClJJUCAgWzxmZmZmZmZmZmEw NWVjOWFjPl0gc2N0cF9wYWNrZXRfdHJhbnNtaXQrMHg2M2MvMHg3MzAgW3NjdHBdCiBSU1AgPGZm ZmY4ODAxMjdjMDM3Yjg+CkNSMjogMDAwMDAwMDAwMDAwMDAyMAotLS1bIGVuZCB0cmFjZSA1YWVj N2ZkMmRjOTgzNTc0IF0tLS0KS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2Vw dGlvbiBpbiBpbnRlcnJ1cHQKS2VybmVsIE9mZnNldDogMHgwIGZyb20gMHhmZmZmZmZmZjgxMDAw MDAwIChyZWxvY2F0aW9uIHJhbmdlOiAweGZmZmZmZmZmODAwMDAwMDAtMHhmZmZmZmZmZjlmZmZm ZmZmKQpkcm1fa21zX2hlbHBlcjogcGFuaWMgb2NjdXJyZWQsIHN3aXRjaGluZyBiYWNrIHRvIHRl eHQgY29uc29sZQotLS1bIGVuZCBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogRmF0YWwgZXhj ZXB0aW9uIGluIGludGVycnVwdAoKU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIFN2ZXJkbGluIDxh bGV4YW5kZXIuc3ZlcmRsaW5Abm9raWEuY29tPgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3Jt YW5AdHV4ZHJpdmVyLmNvbT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJj ZWxvLmxlaXRuZXJAZ21haWwuY29tPgpBY2tlZC1ieTogVmxhZCBZYXNldmljaCA8dnlhc2V2aWNo QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9zY3RwL291dHB1dC5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvb3V0 cHV0LmMgYi9uZXQvc2N0cC9vdXRwdXQuYwppbmRleCBmYzVlNDViLi5hYmU3YzJkIDEwMDY0NAot LS0gYS9uZXQvc2N0cC9vdXRwdXQuYworKysgYi9uZXQvc2N0cC9vdXRwdXQuYwpAQCAtNTk5LDcg KzU5OSw5IEBAIG91dDoKIAlyZXR1cm4gZXJyOwogbm9fcm91dGU6CiAJa2ZyZWVfc2tiKG5za2Ip OwotCUlQX0lOQ19TVEFUUyhzb2NrX25ldChhc29jLT5iYXNlLnNrKSwgSVBTVEFUU19NSUJfT1VU Tk9ST1VURVMpOworCisJaWYgKGFzb2MpCisJCUlQX0lOQ19TVEFUUyhzb2NrX25ldChhc29jLT5i YXNlLnNrKSwgSVBTVEFUU19NSUJfT1VUTk9ST1VURVMpOwogCiAJLyogRklYTUU6IFJldHVybmlu ZyB0aGUgJ2Vycicgd2lsbCBlZmZlY3QgYWxsIHRoZSBhc3NvY2lhdGlvbnMKIAkgKiBhc3NvY2lh dGVkIHdpdGggYSBzb2NrZXQsIGFsdGhvdWdoIG9ubHkgb25lIG9mIHRoZSBwYXRocyBvZiB0aGUK LS0gCjIuMS4wCgoKRnJvbSBhMWNkYzJkYzgwNTg5ZmI4ODVmZDE0MTlkYzBmNWQ0ZWNiYWUyZDFh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBHdWlub3QgPHNpbW9uLmd1aW5v dEBzZXF1YW51eC5vcmc+CkRhdGU6IFR1ZSwgMzAgSnVuIDIwMTUgMTY6MjA6MjAgKzAyMDAKU3Vi amVjdDogW1BBVENIIDE0LzE2XSBuZXQ6IG12bmV0YTogaW50cm9kdWNlIGNvbXBhdGlibGUgc3Ry aW5nICJtYXJ2ZWxsLAogYXJtYWRhLXhwLW5ldGEiCgpbIFVwc3RyZWFtIGNvbW1pdCBmNTIyYTk3 NWE4MTAxODk1YTg1MzU0YjljMTQzZjQxYjgyNDhlNzFhIF0KClRoZSBtdm5ldGEgZHJpdmVyIHN1 cHBvcnRzIHRoZSBFdGhlcm5ldCBJUCBmb3VuZCBpbiB0aGUgQXJtYWRhIDM3MCwgWFAsCjM4MCBh bmQgMzg1IFNvQ3MuIFNpbmNlIGF0IGxlYXN0IG9uZSBtb3JlIGhhcmR3YXJlIGZlYXR1cmUgaXMg YXZhaWxhYmxlCmZvciB0aGUgQXJtYWRhIFhQIFNvQ3MgdGhlbiBhIHdheSB0byBpZGVudGlmeSB0 aGVtIGlzIG5lZWRlZC4KClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBjb21wYXRpYmxlIHN0 cmluZyAibWFydmVsbCxhcm1hZGEteHAtbmV0YSIuCgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBHdWlu b3QgPHNpbW9uLmd1aW5vdEBzZXF1YW51eC5vcmc+CkZpeGVzOiBjNWFmZjE4MjA0ZGEgKCJuZXQ6 IG12bmV0YTogZHJpdmVyIGZvciBNYXJ2ZWxsIEFybWFkYSAzNzAvWFAgbmV0d29yayB1bml0IikK Q2M6IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPiAjIHYzLjgrCkFja2VkLWJ5OiBHcmVnb3J5IENM RU1FTlQgPGdyZWdvcnkuY2xlbWVudEBmcmVlLWVsZWN0cm9ucy5jb20+CkFja2VkLWJ5OiBUaG9t YXMgUGV0YXp6b25pIDx0aG9tYXMucGV0YXp6b25pQGZyZWUtZWxlY3Ryb25zLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIERvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbC1hcm1hZGEtMzcwLW5ldGEu dHh0IHwgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxICsKIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL25ldC9tYXJ2ZWxsLWFybWFkYS0zNzAtbmV0YS50eHQgYi9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21hcnZlbGwtYXJtYWRhLTM3MC1uZXRhLnR4dAppbmRl eCA3NTBkNTc3Li5mNWE4Y2EyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvbmV0L21hcnZlbGwtYXJtYWRhLTM3MC1uZXRhLnR4dAorKysgYi9Eb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21hcnZlbGwtYXJtYWRhLTM3MC1uZXRhLnR4dApA QCAtMSw3ICsxLDcgQEAKICogTWFydmVsbCBBcm1hZGEgMzcwIC8gQXJtYWRhIFhQIEV0aGVybmV0 IENvbnRyb2xsZXIgKE5FVEEpCiAKIFJlcXVpcmVkIHByb3BlcnRpZXM6Ci0tIGNvbXBhdGlibGU6 IHNob3VsZCBiZSAibWFydmVsbCxhcm1hZGEtMzcwLW5ldGEiLgorLSBjb21wYXRpYmxlOiAibWFy dmVsbCxhcm1hZGEtMzcwLW5ldGEiIG9yICJtYXJ2ZWxsLGFybWFkYS14cC1uZXRhIi4KIC0gcmVn OiBhZGRyZXNzIGFuZCBsZW5ndGggb2YgdGhlIHJlZ2lzdGVyIHNldCBmb3IgdGhlIGRldmljZS4K IC0gaW50ZXJydXB0czogaW50ZXJydXB0IGZvciB0aGUgZGV2aWNlCiAtIHBoeTogU2VlIGV0aGVy bmV0LnR4dCBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2 ZWxsL212bmV0YS5jCmluZGV4IDY3YTg0Y2YuLmU2MmM5NTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWFydmVsbC9tdm5ldGEuYwpAQCAtMzEwMSw2ICszMTAxLDcgQEAgc3RhdGljIGludCBtdm5ldGFf cmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIG12bmV0YV9tYXRjaFtdID0gewogCXsgLmNvbXBhdGlibGUgPSAibWFy dmVsbCxhcm1hZGEtMzcwLW5ldGEiIH0sCisJeyAuY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFk YS14cC1uZXRhIiB9LAogCXsgfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12bmV0YV9t YXRjaCk7Ci0tIAoyLjEuMAoKCkZyb20gMzRlZGJkMDZjN2U1NmY4MTg3OGJkNmQ5MTY5YWQzNGI4 YThiZTNmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2ltb24gR3Vpbm90IDxzaW1v bi5ndWlub3RAc2VxdWFudXgub3JnPgpEYXRlOiBUdWUsIDMwIEp1biAyMDE1IDE2OjIwOjIxICsw MjAwClN1YmplY3Q6IFtQQVRDSCAxNS8xNl0gQVJNOiBtdmVidTogdXBkYXRlIEV0aGVybmV0IGNv bXBhdGlibGUgc3RyaW5nIGZvcgogQXJtYWRhIFhQCgpbIFVwc3RyZWFtIGNvbW1pdCBlYTNiNTVm ZTgzYjVmY2VkZTgyZDE4MzE2NGI5ZDY4MzFiMjZlMzNiIF0KClRoaXMgcGF0Y2ggdXBkYXRlcyB0 aGUgRXRoZXJuZXQgRFQgbm9kZXMgZm9yIEFybWFkYSBYUCBTb0NzIHdpdGggdGhlCmNvbXBhdGli bGUgc3RyaW5nICJtYXJ2ZWxsLGFybWFkYS14cC1uZXRhIi4KClNpZ25lZC1vZmYtYnk6IFNpbW9u IEd1aW5vdCA8c2ltb24uZ3Vpbm90QHNlcXVhbnV4Lm9yZz4KRml4ZXM6IDc3OTE2NTE5Y2JhMyAo ImFybTogbXZlYnU6IEFybWFkYSBYUCBNVjc4MjMwIGhhcyBvbmx5IHRocmVlIEV0aGVybmV0IGlu dGVyZmFjZXMiKQpDYzogPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ICMgdjMuOCsKQWNrZWQtYnk6 IEdyZWdvcnkgQ0xFTUVOVCA8Z3JlZ29yeS5jbGVtZW50QGZyZWUtZWxlY3Ryb25zLmNvbT4KUmV2 aWV3ZWQtYnk6IFRob21hcyBQZXRhenpvbmkgPHRob21hcy5wZXRhenpvbmlAZnJlZS1lbGVjdHJv bnMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM3MC14cC5kdHNpICAgICB8ICAyIC0t CiBhcmNoL2FybS9ib290L2R0cy9hcm1hZGEtMzcwLmR0c2kgICAgICAgIHwgIDggKysrKysrKysK IGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS14cC1tdjc4MjYwLmR0c2kgfCAgMiArLQogYXJjaC9h cm0vYm9vdC9kdHMvYXJtYWRhLXhwLW12Nzg0NjAuZHRzaSB8ICAyICstCiBhcmNoL2FybS9ib290 L2R0cy9hcm1hZGEteHAuZHRzaSAgICAgICAgIHwgMTAgKysrKysrKysrLQogNSBmaWxlcyBjaGFu Z2VkLCAxOSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gv YXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAteHAuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFk YS0zNzAteHAuZHRzaQppbmRleCA4MzI4NmVjLi44NDM2NmNkIDEwMDY0NAotLS0gYS9hcmNoL2Fy bS9ib290L2R0cy9hcm1hZGEtMzcwLXhwLmR0c2kKKysrIGIvYXJjaC9hcm0vYm9vdC9kdHMvYXJt YWRhLTM3MC14cC5kdHNpCkBAIC0yMjUsNyArMjI1LDYgQEAKIAkJCX07CiAKIAkJCWV0aDA6IGV0 aGVybmV0QDcwMDAwIHsKLQkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLTM3MC1uZXRh IjsKIAkJCQlyZWcgPSA8MHg3MDAwMCAweDQwMDA+OwogCQkJCWludGVycnVwdHMgPSA8OD47CiAJ CQkJY2xvY2tzID0gPCZnYXRlY2xrIDQ+OwpAQCAtMjQxLDcgKzI0MCw2IEBACiAJCQl9OwogCiAJ CQlldGgxOiBldGhlcm5ldEA3NDAwMCB7Ci0JCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFk YS0zNzAtbmV0YSI7CiAJCQkJcmVnID0gPDB4NzQwMDAgMHg0MDAwPjsKIAkJCQlpbnRlcnJ1cHRz ID0gPDEwPjsKIAkJCQljbG9ja3MgPSA8JmdhdGVjbGsgMz47CmRpZmYgLS1naXQgYS9hcmNoL2Fy bS9ib290L2R0cy9hcm1hZGEtMzcwLmR0c2kgYi9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEtMzcw LmR0c2kKaW5kZXggNzUxMzQxMC4uYjZlMDI2OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9k dHMvYXJtYWRhLTM3MC5kdHNpCisrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAuZHRz aQpAQCAtMzAyLDYgKzMwMiwxNCBAQAogCQkJCQlkbWFjYXAsbWVtc2V0OwogCQkJCX07CiAJCQl9 OworCisJCQlldGhlcm5ldEA3MDAwMCB7CisJCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFk YS0zNzAtbmV0YSI7CisJCQl9OworCisJCQlldGhlcm5ldEA3NDAwMCB7CisJCQkJY29tcGF0aWJs ZSA9ICJtYXJ2ZWxsLGFybWFkYS0zNzAtbmV0YSI7CisJCQl9OwogCQl9OwogCX07CiB9OwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhwLW12NzgyNjAuZHRzaSBiL2FyY2gv YXJtL2Jvb3QvZHRzL2FybWFkYS14cC1tdjc4MjYwLmR0c2kKaW5kZXggNDgwZTIzNy4uNjc3MTYw ZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhwLW12NzgyNjAuZHRzaQor KysgYi9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAtbXY3ODI2MC5kdHNpCkBAIC0yOTYsNyAr Mjk2LDcgQEAKIAkJCX07CiAKIAkJCWV0aDM6IGV0aGVybmV0QDM0MDAwIHsKLQkJCQljb21wYXRp YmxlID0gIm1hcnZlbGwsYXJtYWRhLTM3MC1uZXRhIjsKKwkJCQljb21wYXRpYmxlID0gIm1hcnZl bGwsYXJtYWRhLXhwLW5ldGEiOwogCQkJCXJlZyA9IDwweDM0MDAwIDB4NDAwMD47CiAJCQkJaW50 ZXJydXB0cyA9IDwxND47CiAJCQkJY2xvY2tzID0gPCZnYXRlY2xrIDE+OwpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhwLW12Nzg0NjAuZHRzaSBiL2FyY2gvYXJtL2Jvb3Qv ZHRzL2FybWFkYS14cC1tdjc4NDYwLmR0c2kKaW5kZXggMmM3YjFmZS4uZTE0Mzc3NiAxMDA2NDQK LS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhwLW12Nzg0NjAuZHRzaQorKysgYi9hcmNo L2FybS9ib290L2R0cy9hcm1hZGEteHAtbXY3ODQ2MC5kdHNpCkBAIC0zMzQsNyArMzM0LDcgQEAK IAkJCX07CiAKIAkJCWV0aDM6IGV0aGVybmV0QDM0MDAwIHsKLQkJCQljb21wYXRpYmxlID0gIm1h cnZlbGwsYXJtYWRhLTM3MC1uZXRhIjsKKwkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsYXJtYWRh LXhwLW5ldGEiOwogCQkJCXJlZyA9IDwweDM0MDAwIDB4NDAwMD47CiAJCQkJaW50ZXJydXB0cyA9 IDwxND47CiAJCQkJY2xvY2tzID0gPCZnYXRlY2xrIDE+OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v Ym9vdC9kdHMvYXJtYWRhLXhwLmR0c2kgYi9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAuZHRz aQppbmRleCBiZmY5ZjZjLi42NmQyNWI3IDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib290L2R0cy9h cm1hZGEteHAuZHRzaQorKysgYi9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAuZHRzaQpAQCAt MTI1LDcgKzEyNSw3IEBACiAJCQl9OwogCiAJCQlldGgyOiBldGhlcm5ldEAzMDAwMCB7Ci0JCQkJ Y29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS0zNzAtbmV0YSI7CisJCQkJY29tcGF0aWJsZSA9 ICJtYXJ2ZWxsLGFybWFkYS14cC1uZXRhIjsKIAkJCQlyZWcgPSA8MHgzMDAwMCAweDQwMDA+Owog CQkJCWludGVycnVwdHMgPSA8MTI+OwogCQkJCWNsb2NrcyA9IDwmZ2F0ZWNsayAyPjsKQEAgLTE2 OCw2ICsxNjgsMTQgQEAKIAkJCQl9OwogCQkJfTsKIAorCQkJZXRoZXJuZXRANzAwMDAgeworCQkJ CWNvbXBhdGlibGUgPSAibWFydmVsbCxhcm1hZGEteHAtbmV0YSI7CisJCQl9OworCisJCQlldGhl cm5ldEA3NDAwMCB7CisJCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS14cC1uZXRhIjsK KwkJCX07CisKIAkJCXhvckBmMDkwMCB7CiAJCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLG9yaW9u LXhvciI7CiAJCQkJcmVnID0gPDB4RjA5MDAgMHgxMDAKLS0gCjIuMS4wCgoKRnJvbSAyZTc3YmVk M2FiYjQyYThkYjI3ZDFjOGQwOTcwYzBiYzg2NTFiODcxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBTaW1vbiBHdWlub3QgPHNpbW9uLmd1aW5vdEBzZXF1YW51eC5vcmc+CkRhdGU6IFR1 ZSwgMzAgSnVuIDIwMTUgMTY6MjA6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDE2LzE2XSBuZXQ6 IG12bmV0YTogZGlzYWJsZSBJUCBjaGVja3N1bSB3aXRoIGp1bWJvIGZyYW1lcyBmb3IKIEFybWFk YSAzNzAKClsgVXBzdHJlYW0gY29tbWl0IGI2NTY1N2ZjMjQwYWU2YzFkMmExZTYyZGI5YTBlNjFh Yzk2MzFkN2EgXQoKVGhlIEV0aGVybmV0IGNvbnRyb2xsZXIgZm91bmQgaW4gdGhlIEFybWFkYSAz NzAsIDM4MCBhbmQgMzg1IFNvQ3MgZG9uJ3QKc3VwcG9ydCBUQ1AvSVAgY2hlY2tzdW1taW5nIHdp dGggZnJhbWUgc2l6ZXMgbGFyZ2VyIHRoYW4gMTYwMCBieXRlcy4KClRoaXMgcGF0Y2ggZml4ZXMg dGhlIGlzc3VlIGJ5IGRpc2FibGluZyB0aGUgZmVhdHVyZXMgTkVUSUZfRl9JUF9DU1VNIGFuZApO RVRJRl9GX1RTTyBmb3IgdGhlIEFybWFkYSAzNzAgYW5kIGNvbXBhdGlibGVzIFNvQ3Mgd2hlbiB0 aGUgTVRVIGlzIHNldAp0byBhIHZhbHVlIGdyZWF0ZXIgdGhhbiAxNjAwIGJ5dGVzLgoKU2lnbmVk LW9mZi1ieTogU2ltb24gR3Vpbm90IDxzaW1vbi5ndWlub3RAc2VxdWFudXgub3JnPgpGaXhlczog YzVhZmYxODIwNGRhICgibmV0OiBtdm5ldGE6IGRyaXZlciBmb3IgTWFydmVsbCBBcm1hZGEgMzcw L1hQIG5ldHdvcmsgdW5pdCIpCkNjOiA8c3RhYmxlQHZnZXIua2VybmVsLm9yZz4gIyB2My44KwpB Y2tlZC1ieTogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFzLnBldGF6em9uaUBmcmVlLWVsZWN0cm9u cy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jIHwgMjYgKysrKysr KysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9t dm5ldGEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMKaW5kZXggZTYy Yzk1MS4uZmIzNDcwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9t dm5ldGEuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCkBAIC0z MDQsNiArMzA0LDcgQEAgc3RydWN0IG12bmV0YV9wb3J0IHsKIAl1bnNpZ25lZCBpbnQgbGluazsK IAl1bnNpZ25lZCBpbnQgZHVwbGV4OwogCXVuc2lnbmVkIGludCBzcGVlZDsKKwl1bnNpZ25lZCBp bnQgdHhfY3N1bV9saW1pdDsKIH07CiAKIC8qIFRoZSBtdm5ldGFfdHhfZGVzYyBhbmQgbXZuZXRh X3J4X2Rlc2Mgc3RydWN0dXJlcyBkZXNjcmliZSB0aGUKQEAgLTI0NDEsOCArMjQ0MiwxMCBAQCBz dGF0aWMgaW50IG12bmV0YV9jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBt dHUpCiAKIAlkZXYtPm10dSA9IG10dTsKIAotCWlmICghbmV0aWZfcnVubmluZyhkZXYpKQorCWlm ICghbmV0aWZfcnVubmluZyhkZXYpKSB7CisJCW5ldGRldl91cGRhdGVfZmVhdHVyZXMoZGV2KTsK IAkJcmV0dXJuIDA7CisJfQogCiAJLyogVGhlIGludGVyZmFjZSBpcyBydW5uaW5nLCBzbyB3ZSBo YXZlIHRvIGZvcmNlIGEKIAkgKiByZWFsbG9jYXRpb24gb2YgdGhlIHF1ZXVlcwpAQCAtMjQ3MSw5 ICsyNDc0LDI2IEBAIHN0YXRpYyBpbnQgbXZuZXRhX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgaW50IG10dSkKIAltdm5ldGFfc3RhcnRfZGV2KHBwKTsKIAltdm5ldGFfcG9ydF91 cChwcCk7CiAKKwluZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKGRldik7CisKIAlyZXR1cm4gMDsKIH0K IAorc3RhdGljIG5ldGRldl9mZWF0dXJlc190IG12bmV0YV9maXhfZmVhdHVyZXMoc3RydWN0IG5l dF9kZXZpY2UgKmRldiwKKwkJCQkJICAgICBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcykKK3sK KwlzdHJ1Y3QgbXZuZXRhX3BvcnQgKnBwID0gbmV0ZGV2X3ByaXYoZGV2KTsKKworCWlmIChwcC0+ dHhfY3N1bV9saW1pdCAmJiBkZXYtPm10dSA+IHBwLT50eF9jc3VtX2xpbWl0KSB7CisJCWZlYXR1 cmVzICY9IH4oTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9UU08pOworCQluZXRkZXZfaW5mbyhk ZXYsCisJCQkgICAgIkRpc2FibGUgSVAgY2hlY2tzdW0gZm9yIE1UVSBncmVhdGVyIHRoYW4gJWRC XG4iLAorCQkJICAgIHBwLT50eF9jc3VtX2xpbWl0KTsKKwl9CisKKwlyZXR1cm4gZmVhdHVyZXM7 Cit9CisKIC8qIEdldCBtYWMgYWRkcmVzcyAqLwogc3RhdGljIHZvaWQgbXZuZXRhX2dldF9tYWNf YWRkcihzdHJ1Y3QgbXZuZXRhX3BvcnQgKnBwLCB1bnNpZ25lZCBjaGFyICphZGRyKQogewpAQCAt Mjc5MSw2ICsyODExLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBtdm5l dGFfbmV0ZGV2X29wcyA9IHsKIAkubmRvX3NldF9yeF9tb2RlICAgICA9IG12bmV0YV9zZXRfcnhf bW9kZSwKIAkubmRvX3NldF9tYWNfYWRkcmVzcyA9IG12bmV0YV9zZXRfbWFjX2FkZHIsCiAJLm5k b19jaGFuZ2VfbXR1ICAgICAgPSBtdm5ldGFfY2hhbmdlX210dSwKKwkubmRvX2ZpeF9mZWF0dXJl cyAgICA9IG12bmV0YV9maXhfZmVhdHVyZXMsCiAJLm5kb19nZXRfc3RhdHM2NCAgICAgPSBtdm5l dGFfZ2V0X3N0YXRzNjQsCiAJLm5kb19kb19pb2N0bCAgICAgICAgPSBtdm5ldGFfaW9jdGwsCiB9 OwpAQCAtMzAyOSw2ICszMDUwLDkgQEAgc3RhdGljIGludCBtdm5ldGFfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKIAkJfQogCX0KIAorCWlmIChvZl9kZXZpY2VfaXNfY29tcGF0 aWJsZShkbiwgIm1hcnZlbGwsYXJtYWRhLTM3MC1uZXRhIikpCisJCXBwLT50eF9jc3VtX2xpbWl0 ID0gMTYwMDsKKwogCXBwLT50eF9yaW5nX3NpemUgPSBNVk5FVEFfTUFYX1RYRDsKIAlwcC0+cnhf cmluZ19zaXplID0gTVZORVRBX01BWF9SWEQ7CiAKLS0gCjIuMS4wCgo= ----Next_Part(Fri_Jul__3_15_31_36_2015_221)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_40.mbox" RnJvbSA2NjQxMTA1ZjhhZDExMzM1OTQzOGI5MTVhNzZiNmM3OGVkZGIzZDgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxyYXpvckBibGFja3dhbGwu b3JnPgpEYXRlOiBUdWUsIDkgSnVuIDIwMTUgMTA6MjM6NTcgLTA3MDAKU3ViamVjdDogW1BBVENI IDAxLzIxXSBicmlkZ2U6IGZpeCBtdWx0aWNhc3Qgcm91dGVyIHJsaXN0IGVuZGxlc3MgbG9vcAoK WyBVcHN0cmVhbSBjb21taXQgMWEwNDBlYWNhMWEyMmY4ZGE4Mjg1Y2VkYTZiNWU0YTJjYjcwNDg2 NyBdCgpTaW5jZSB0aGUgYWRkaXRpb24gb2Ygc3lzZnMgbXVsdGljYXN0IHJvdXRlciBzdXBwb3J0 IGlmIG9uZSBzZXQKbXVsdGljYXN0X3JvdXRlciB0byAiMiIgbW9yZSB0aGFuIG9uY2UsIHRoZW4g dGhlIHBvcnQgd291bGQgYmUgYWRkZWQgdG8KdGhlIGhsaXN0IGV2ZXJ5IHRpbWUgYW5kIGNvdWxk IGVuZCB1cCBsaW5raW5nIHRvIGl0c2VsZiBhbmQgdGh1cyBjYXVzaW5nIGFuCmVuZGxlc3MgbG9v cCBmb3Igcmxpc3Qgd2Fsa2Vycy4KU28gdG8gcmVwcm9kdWNlIGp1c3QgZG86CmVjaG8gMiA+IG11 bHRpY2FzdF9yb3V0ZXI7IGVjaG8gMiA+IG11bHRpY2FzdF9yb3V0ZXI7CmluIGEgYnJpZGdlIHBv cnQgYW5kIGxldCBzb21lIGlnbXAgdHJhZmZpYyBmbG93LCBmb3IgbWUgaXQgaGFuZ3MgdXAKaW4g YnJfbXVsdGljYXN0X2Zsb29kKCkuCkZpeCB0aGlzIGJ5IGFkZGluZyBhIGNoZWNrIGluIGJyX211 bHRpY2FzdF9hZGRfcm91dGVyKCkgaWYgdGhlIHBvcnQgaXMKYWxyZWFkeSBsaW5rZWQuClRoZSBy ZWFzb24gdGhpcyBkaWRuJ3QgaGFwcGVuIGJlZm9yZSB0aGUgYWRkaXRpb24gb2YgbXVsdGljYXN0 X3JvdXRlcgpzeXNmcyBlbnRyaWVzIGlzIGJlY2F1c2UgdGhlcmUncyBhICFobGlzdF91bmhhc2hl ZCBjaGVjayB0aGF0IHByZXZlbnRzCml0LgoKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2Fu ZHJvdiA8cmF6b3JAYmxhY2t3YWxsLm9yZz4KRml4ZXM6IDA5MDllMTE3NThiZCAoImJyaWRnZTog QWRkIG11bHRpY2FzdF9yb3V0ZXIgc3lzZnMgZW50cmllcyIpCkFja2VkLWJ5OiBIZXJiZXJ0IFh1 IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX211bHRpY2FzdC5j IHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMgYi9uZXQvYnJpZGdl L2JyX211bHRpY2FzdC5jCmluZGV4IGIwYWVlNzguLmMwOGY1MTAgMTAwNjQ0Ci0tLSBhL25ldC9i cmlkZ2UvYnJfbXVsdGljYXN0LmMKKysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAt MTE2Niw2ICsxMTY2LDkgQEAgc3RhdGljIHZvaWQgYnJfbXVsdGljYXN0X2FkZF9yb3V0ZXIoc3Ry dWN0IG5ldF9icmlkZ2UgKmJyLAogCXN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnA7CiAJc3RydWN0 IGhsaXN0X25vZGUgKnNsb3QgPSBOVUxMOwogCisJaWYgKCFobGlzdF91bmhhc2hlZCgmcG9ydC0+ cmxpc3QpKQorCQlyZXR1cm47CisKIAlobGlzdF9mb3JfZWFjaF9lbnRyeShwLCAmYnItPnJvdXRl cl9saXN0LCBybGlzdCkgewogCQlpZiAoKHVuc2lnbmVkIGxvbmcpIHBvcnQgPj0gKHVuc2lnbmVk IGxvbmcpIHApCiAJCQlicmVhazsKQEAgLTExOTMsMTIgKzExOTYsOCBAQCBzdGF0aWMgdm9pZCBi cl9tdWx0aWNhc3RfbWFya19yb3V0ZXIoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCWlmIChwb3J0 LT5tdWx0aWNhc3Rfcm91dGVyICE9IDEpCiAJCXJldHVybjsKIAotCWlmICghaGxpc3RfdW5oYXNo ZWQoJnBvcnQtPnJsaXN0KSkKLQkJZ290byB0aW1lcjsKLQogCWJyX211bHRpY2FzdF9hZGRfcm91 dGVyKGJyLCBwb3J0KTsKIAotdGltZXI6CiAJbW9kX3RpbWVyKCZwb3J0LT5tdWx0aWNhc3Rfcm91 dGVyX3RpbWVyLAogCQkgIG5vdyArIGJyLT5tdWx0aWNhc3RfcXVlcmllcl9pbnRlcnZhbCk7CiB9 Ci0tIAoyLjEuMAoKCkZyb20gZjM2ZjZiN2RjMGE1MjllYTQ3NTMyMWUzMDA4MTQ0YWMwM2U1ZWMz YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUmljaGFyZCBDb2NocmFuIDxyaWNoYXJk Y29jaHJhbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTEgSnVuIDIwMTUgMTQ6NTE6MzAgKzAyMDAK U3ViamVjdDogW1BBVENIIDAyLzIxXSBuZXQ6IGlnYjogZml4IHRoZSBzdGFydCB0aW1lIGZvciBw ZXJpb2RpYyBvdXRwdXQKIHNpZ25hbHMKClsgVXBzdHJlYW0gY29tbWl0IDU4Yzk4YmUxMzc4MzBk MzRiNzkwMjRjYzVkYzk1ZWY1NGZjZDdmZmUgXQoKV2hlbiBwcm9ncmFtbWluZyB0aGUgc3RhcnQg b2YgYSBwZXJpb2RpYyBvdXRwdXQsIHRoZSBjb2RlIHdyb25nbHkgcGxhY2VzCnRoZSBzZWNvbmRz IHZhbHVlIGludG8gdGhlICJsb3ciIHJlZ2lzdGVyIGFuZCB0aGUgbmFub3NlY29uZHMgaW50byB0 aGUKImhpZ2giIHJlZ2lzdGVyLiAgRXZlbiB0aG91Z2ggdGhpcyBpcyBiYWNrd2FyZHMsIGl0IHNs aXBwZWQgdGhyb3VnaCBteQp0ZXN0aW5nLCBiZWNhdXNlIHRoZSByZS1hcm1pbmcgY29kZSBpbiB0 aGUgaW50ZXJydXB0IHNlcnZpY2Ugcm91dGluZSBpcwpjb3JyZWN0LCBhbmQgdGhlIHNpZ25hbCBk b2VzIGFwcGVhciBzdGFydGluZyB3aXRoIHRoZSBzZWNvbmQgZWRnZS4KClRoaXMgcGF0Y2ggZml4 ZXMgdGhlIGlzc3VlIGJ5IHByb2dyYW1taW5nIHRoZSByZWdpc3RlcnMgY29ycmVjdGx5LgoKU2ln bmVkLW9mZi1ieTogUmljaGFyZCBDb2NocmFuIDxyaWNoYXJkY29jaHJhbkBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBKYWNvYiBLZWxsZXIgPGphY29iLmUua2VsbGVyQGludGVsLmNvbT4KQWNrZWQt Ynk6IEplZmYgS2lyc2hlciA8amVmZnJleS50LmtpcnNoZXJAaW50ZWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvaW50ZWwvaWdiL2lnYl9wdHAuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9pbnRlbC9pZ2IvaWdiX3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50 ZWwvaWdiL2lnYl9wdHAuYwppbmRleCBkMjBmYzhlLi5jMzY1NzY1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZ2IvaWdiX3B0cC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2ludGVsL2lnYi9pZ2JfcHRwLmMKQEAgLTU0MCw4ICs1NDAsOCBAQCBzdGF0aWMgaW50 IGlnYl9wdHBfZmVhdHVyZV9lbmFibGVfaTIxMChzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwK IAkJCWlnYi0+cGVyb3V0W2ldLnN0YXJ0LnR2X25zZWMgPSBycS0+cGVyb3V0LnN0YXJ0Lm5zZWM7 CiAJCQlpZ2ItPnBlcm91dFtpXS5wZXJpb2QudHZfc2VjID0gdHMudHZfc2VjOwogCQkJaWdiLT5w ZXJvdXRbaV0ucGVyaW9kLnR2X25zZWMgPSB0cy50dl9uc2VjOwotCQkJd3IzMih0cmd0dGltbCwg cnEtPnBlcm91dC5zdGFydC5zZWMpOwotCQkJd3IzMih0cmd0dGltaCwgcnEtPnBlcm91dC5zdGFy dC5uc2VjKTsKKwkJCXdyMzIodHJndHRpbWgsIHJxLT5wZXJvdXQuc3RhcnQuc2VjKTsKKwkJCXdy MzIodHJndHRpbWwsIHJxLT5wZXJvdXQuc3RhcnQubnNlYyk7CiAJCQl0c2F1eGMgfD0gdHNhdXhj X21hc2s7CiAJCQl0c2ltIHw9IHRzaW1fbWFzazsKIAkJfSBlbHNlIHsKLS0gCjIuMS4wCgoKRnJv bSBlOGI1NzBhMWQyNzM5MzM5OGUxOTE4MzMwNWNlYTZkMWUzMDBjMjQ2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBTaGFvaHVhIExpIDxzaGxpQGZiLmNvbT4KRGF0ZTogVGh1LCAxMSBK dW4gMjAxNSAxNjo1MDo0OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMjFdIG5ldDogZG9uJ3Qg d2FpdCBmb3Igb3JkZXItMyBwYWdlIGFsbG9jYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IGZiMDVl N2E4OWY1MDBjZmMwNmFlMjc3YmRjOTExYjI4MTkyODk5NWQgXQoKV2Ugc2F3IGV4Y2Vzc2l2ZSBk aXJlY3QgbWVtb3J5IGNvbXBhY3Rpb24gdHJpZ2dlcmVkIGJ5IHNrYl9wYWdlX2ZyYWdfcmVmaWxs LgpUaGlzIGNhdXNlcyBwZXJmb3JtYW5jZSBpc3N1ZXMgYW5kIGFkZCBsYXRlbmN5LiBDb21taXQg NTY0MGY3Njg1ODMxZTAKaW50cm9kdWNlcyB0aGUgb3JkZXItMyBhbGxvY2F0aW9uLiBBY2NvcmRp bmcgdG8gdGhlIGNoYW5nZWxvZywgdGhlIG9yZGVyLTMKYWxsb2NhdGlvbiBpc24ndCBhIG11c3Qt aGF2ZSBidXQgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS4gQnV0IGRpcmVjdCBtZW1vcnkKY29tcGFj dGlvbiBoYXMgaGlnaCBvdmVyaGVhZC4gVGhlIGJlbmVmaXQgb2Ygb3JkZXItMyBhbGxvY2F0aW9u IGNhbid0CmNvbXBlbnNhdGUgdGhlIG92ZXJoZWFkIG9mIGRpcmVjdCBtZW1vcnkgY29tcGFjdGlv bi4KClRoaXMgcGF0Y2ggbWFrZXMgdGhlIG9yZGVyLTMgcGFnZSBhbGxvY2F0aW9uIGF0b21pYy4g SWYgdGhlcmUgaXMgbm8gbWVtb3J5CnByZXNzdXJlIGFuZCBtZW1vcnkgaXNuJ3QgZnJhZ21lbnRl ZCwgdGhlIGFsbG9jdGlvbiB3aWxsIHN0aWxsIHN1Y2Nlc3MsIHNvIHdlCmRvbid0IHNhY3JpZmlj ZSB0aGUgb3JkZXItMyBiZW5lZml0IGhlcmUuIElmIHRoZSBhdG9taWMgYWxsb2NhdGlvbiBmYWls cywKZGlyZWN0IG1lbW9yeSBjb21wYWN0aW9uIHdpbGwgbm90IGJlIHRyaWdnZXJlZCwgc2tiX3Bh Z2VfZnJhZ19yZWZpbGwgd2lsbApmYWxsYmFjayB0byBvcmRlci0wIGltbWVkaWF0ZWx5LCBoZW5j ZSB0aGUgZGlyZWN0IG1lbW9yeSBjb21wYWN0aW9uIG92ZXJoZWFkIGlzCmF2b2lkZWQuIEluIHRo ZSBhbGxvY2F0aW9uIGZhaWx1cmUgY2FzZSwga3N3YXBkIGlzIHdha2VuIHVwIGFuZCBkb2luZwpj b21wYWN0aW9uLCBzbyBjaGFuY2VzIGFyZSBhbGxvY2F0aW9uIGNvdWxkIHN1Y2Nlc3MgbmV4dCB0 aW1lLgoKYWxsb2Nfc2tiX3dpdGhfZnJhZ3MgaXMgdGhlIHNhbWUuCgpUaGUgbWVsbGFub3ggZHJp dmVyIGRvZXMgc2ltaWxhciB0aGluZywgaWYgdGhpcyBpcyBhY2NlcHRlZCwgd2UgbXVzdCBmaXgK dGhlIGRyaXZlciB0b28uCgpWMzogZml4IHRoZSBzYW1lIGlzc3VlIGluIGFsbG9jX3NrYl93aXRo X2ZyYWdzIGFzIHBvaW50ZWQgb3V0IGJ5IEVyaWMKVjI6IG1ha2UgdGhlIGNoYW5nZWxvZyBjbGVh cmVyCgpDYzogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogQ2hyaXMgTWFz b24gPGNsbUBmYi5jb20+CkNjOiBEZWJhYnJhdGEgQmFuZXJqZWUgPGRiYXZhdGFyQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogU2hhb2h1YSBMaSA8c2hsaUBmYi5jb20+CkFja2VkLWJ5OiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9za2J1ZmYuYyB8IDIgKy0K IG5ldC9jb3JlL3NvY2suYyAgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9uZXQv Y29yZS9za2J1ZmYuYwppbmRleCBlOWY5YTE1Li4xZTNhYmI4IDEwMDY0NAotLS0gYS9uZXQvY29y ZS9za2J1ZmYuYworKysgYi9uZXQvY29yZS9za2J1ZmYuYwpAQCAtNDQ0Myw3ICs0NDQzLDcgQEAg c3RydWN0IHNrX2J1ZmYgKmFsbG9jX3NrYl93aXRoX2ZyYWdzKHVuc2lnbmVkIGxvbmcgaGVhZGVy X2xlbiwKIAogCQl3aGlsZSAob3JkZXIpIHsKIAkJCWlmIChucGFnZXMgPj0gMSA8PCBvcmRlcikg ewotCQkJCXBhZ2UgPSBhbGxvY19wYWdlcyhnZnBfbWFzayB8CisJCQkJcGFnZSA9IGFsbG9jX3Bh Z2VzKChnZnBfbWFzayAmIH5fX0dGUF9XQUlUKSB8CiAJCQkJCQkgICBfX0dGUF9DT01QIHwKIAkJ CQkJCSAgIF9fR0ZQX05PV0FSTiB8CiAJCQkJCQkgICBfX0dGUF9OT1JFVFJZLApkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvc29jay5jIGIvbmV0L2NvcmUvc29jay5jCmluZGV4IDcxZTNlNWYuLmM3N2Q1 ZDIgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NvY2suYworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAg LTE4OTUsNyArMTg5NSw3IEBAIGJvb2wgc2tiX3BhZ2VfZnJhZ19yZWZpbGwodW5zaWduZWQgaW50 IHN6LCBzdHJ1Y3QgcGFnZV9mcmFnICpwZnJhZywgZ2ZwX3QgZ2ZwKQogCiAJcGZyYWctPm9mZnNl dCA9IDA7CiAJaWYgKFNLQl9GUkFHX1BBR0VfT1JERVIpIHsKLQkJcGZyYWctPnBhZ2UgPSBhbGxv Y19wYWdlcyhnZnAgfCBfX0dGUF9DT01QIHwKKwkJcGZyYWctPnBhZ2UgPSBhbGxvY19wYWdlcygo Z2ZwICYgfl9fR0ZQX1dBSVQpIHwgX19HRlBfQ09NUCB8CiAJCQkJCSAgX19HRlBfTk9XQVJOIHwg X19HRlBfTk9SRVRSWSwKIAkJCQkJICBTS0JfRlJBR19QQUdFX09SREVSKTsKIAkJaWYgKGxpa2Vs eShwZnJhZy0+cGFnZSkpIHsKLS0gCjIuMS4wCgoKRnJvbSA4YjUyYjI4YWM4MDhkZTY4NTM5N2Iy ODkxZDZjZDI5NGE3NzVlNWM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjZWxv IFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAx MiBKdW4gMjAxNSAxMDoxNjo0MSAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjFdIHNjdHA6IGZp eCBBU0NPTkYgbGlzdCBoYW5kbGluZwoKWyBVcHN0cmVhbSBjb21taXQgMmQ0NWEwMmQwMTY2Y2Fm MjYyN2ZlOTE4OTdjNmZmYzNiMTk1MTRjNCBdCgotPmF1dG9fYXNjb25mX3NwbGlzdCBpcyBwZXIg bmFtZXNwYWNlIGFuZCBtYW5nbGVkIGJ5IGZ1bmN0aW9ucyBsaWtlCnNjdHBfc2V0c29ja29wdF9h dXRvX2FzY29uZigpIHdoaWNoIGRvZXNuJ3QgZ3VhcmFudGVlIGFueSBzZXJpYWxpemF0aW9uLgoK QWxzbywgdGhlIGNhbGwgdG8gaW5ldF9za19jb3B5X2Rlc2NlbmRhbnQoKSB3YXMgYmFja3VwaW5n Ci0+YXV0b19hc2NvbmZfbGlzdCB0aHJvdWdoIHRoZSBjb3B5IGJ1dCB3YXMgbm90IGhvbm9yaW5n Ci0+ZG9fYXV0b19hc2NvbmYsIHdoaWNoIGNvdWxkIGxlYWQgdG8gbGlzdCBjb3JydXB0aW9uIGlm IGl0IHdhcwpkaWZmZXJlbnQgYmV0d2VlbiBib3RoIHNvY2tldHMuCgpUaGlzIGNvbW1pdCB0aHVz IGZpeGVzIHRoZSBsaXN0IGhhbmRsaW5nIGJ5IHVzaW5nIC0+YWRkcl93cV9sb2NrCnNwaW5sb2Nr IHRvIHByb3RlY3QgdGhlIGxpc3QuIEEgc3BlY2lhbCBoYW5kbGluZyBpcyBkb25lIHVwb24gc29j a2V0CmNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbiBmb3IgdGhhdC4gRXJyb3IgaGFuZGxpZyBvbiBz Y3RwX2luaXRfc29jaygpCndpbGwgbmV2ZXIgcmV0dXJuIGFuIGVycm9yIGFmdGVyIGhhdmluZyBp bml0aWFsaXplZCBhc2NvbmYsIHNvCnNjdHBfZGVzdHJveV9zb2NrKCkgY2FuIGJlIGNhbGxlZCB3 aXRob3V0IGFkZHJxX3dxX2xvY2suIFRoZSBsb2NrIG5vdwp3aWxsIGJlIHRha2Ugb24gc2N0cF9j bG9zZV9zb2NrKCksIGJlZm9yZSBsb2NraW5nIHRoZSBzb2NrZXQsIHNvIHdlCmRvbid0IGRvIGl0 IGluIGludmVyc2Ugb3JkZXIgY29tcGFyZWQgdG8gc2N0cF9hZGRyX3dxX3RpbWVvdXRfaGFuZGxl cigpLgoKSW5zdGVhZCBvZiB0YWtpbmcgdGhlIGxvY2sgb24gc2N0cF9zb2NrX21pZ3JhdGUoKSBm b3IgY29weWluZyBhbmQKcmVzdG9yaW5nIHRoZSBsaXN0IHZhbHVlcywgaXQncyBwcmVmZXJyZWQg dG8gYXZvaWQgcmV3cml0dGluZyBpdCBieQppbXBsZW1lbnRpbmcgc2N0cF9jb3B5X2Rlc2NlbmRh bnQoKS4KCklzc3VlIHdhcyBmb3VuZCB3aXRoIGEgdGVzdCBhcHBsaWNhdGlvbiB0aGF0IGtlcHQg ZmxpcHBpbmcgc3lzY3RsCmRlZmF1bHRfYXV0b19hc2NvbmYgb24gYW5kIG9mZiwgYnV0IG9uZSBj b3VsZCB0cmlnZ2VyIGl0IGJ5IGlzc3VpbmcKc2ltdWx0YW5lb3VzIHNldHNvY2tvcHQoKSBjYWxs cyBvbiBtdWx0aXBsZSBzb2NrZXRzIG9yIGJ5CmNyZWF0aW5nL2Rlc3Ryb3lpbmcgc29ja2V0cyBm YXN0IGVub3VnaC4gVGhpcyBpcyBvbmx5IHRyaWdnZXJhYmxlCmxvY2FsbHkuCgpGaXhlczogOWY3 ZDY1M2I2N2FlICgic2N0cDogQWRkIEF1dG8tQVNDT05GIHN1cHBvcnQgKGNvcmUpLiIpClJlcG9y dGVkLWJ5OiBKaSBKaWFud2VuIDxqaWppQHJlZGhhdC5jb20+ClN1Z2dlc3RlZC1ieTogTmVpbCBI b3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KU3VnZ2VzdGVkLWJ5OiBIYW5uZXMgRnJlZGVy aWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+CkFja2VkLWJ5OiBIYW5uZXMgRnJl ZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IE1h cmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVk ZS9uZXQvbmV0bnMvc2N0cC5oICAgfCAgMSArCiBpbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaCB8 ICA0ICsrKysKIG5ldC9zY3RwL3NvY2tldC5jICAgICAgICAgIHwgNDMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRp b25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9uZXRucy9z Y3RwLmggYi9pbmNsdWRlL25ldC9uZXRucy9zY3RwLmgKaW5kZXggMzU3M2E4MS4uOGJhMzc5ZiAx MDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbmV0bnMvc2N0cC5oCisrKyBiL2luY2x1ZGUvbmV0L25l dG5zL3NjdHAuaApAQCAtMzEsNiArMzEsNyBAQCBzdHJ1Y3QgbmV0bnNfc2N0cCB7CiAJc3RydWN0 IGxpc3RfaGVhZCBhZGRyX3dhaXRxOwogCXN0cnVjdCB0aW1lcl9saXN0IGFkZHJfd3FfdGltZXI7 CiAJc3RydWN0IGxpc3RfaGVhZCBhdXRvX2FzY29uZl9zcGxpc3Q7CisJLyogTG9jayB0aGF0IHBy b3RlY3RzIGJvdGggYWRkcl93YWl0cSBhbmQgYXV0b19hc2NvbmZfc3BsaXN0ICovCiAJc3Bpbmxv Y2tfdCBhZGRyX3dxX2xvY2s7CiAKIAkvKiBMb2NrIHRoYXQgcHJvdGVjdHMgdGhlIGxvY2FsX2Fk ZHJfbGlzdCB3cml0ZXJzICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMu aCBiL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oCmluZGV4IDJiYjJmY2YuLjQ5NWM4N2UgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oCisrKyBiL2luY2x1ZGUvbmV0L3Nj dHAvc3RydWN0cy5oCkBAIC0yMjMsNiArMjIzLDEwIEBAIHN0cnVjdCBzY3RwX3NvY2sgewogCWF0 b21pY190IHBkX21vZGU7CiAJLyogUmVjZWl2ZSB0byBoZXJlIHdoaWxlIHBhcnRpYWwgZGVsaXZl cnkgaXMgaW4gZWZmZWN0LiAqLwogCXN0cnVjdCBza19idWZmX2hlYWQgcGRfbG9iYnk7CisKKwkv KiBUaGVzZSBtdXN0IGJlIHRoZSBsYXN0IGZpZWxkcywgYXMgdGhleSB3aWxsIHNraXBwZWQgb24g Y29waWVzLAorCSAqIGxpa2Ugb24gYWNjZXB0IGFuZCBwZWVsb2ZmIG9wZXJhdGlvbnMKKwkgKi8K IAlzdHJ1Y3QgbGlzdF9oZWFkIGF1dG9fYXNjb25mX2xpc3Q7CiAJaW50IGRvX2F1dG9fYXNjb25m OwogfTsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0LmMK aW5kZXggYWFmZTk0Yi4uNGU1NjU3MSAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc29ja2V0LmMKKysr IGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTE1MzMsOCArMTUzMywxMCBAQCBzdGF0aWMgdm9pZCBz Y3RwX2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgbG9uZyB0aW1lb3V0KQogCiAJLyogU3VwcG9zZWRs eSwgbm8gcHJvY2VzcyBoYXMgYWNjZXNzIHRvIHRoZSBzb2NrZXQsIGJ1dAogCSAqIHRoZSBuZXQg bGF5ZXJzIHN0aWxsIG1heS4KKwkgKiBBbHNvLCBzY3RwX2Rlc3Ryb3lfc29jaygpIG5lZWRzIHRv IGJlIGNhbGxlZCB3aXRoIGFkZHJfd3FfbG9jaworCSAqIGhlbGQgYW5kIHRoYXQgc2hvdWxkIGJl IGdyYWJiZWQgYmVmb3JlIHNvY2tldCBsb2NrLgogCSAqLwotCWxvY2FsX2JoX2Rpc2FibGUoKTsK KwlzcGluX2xvY2tfYmgoJm5ldC0+c2N0cC5hZGRyX3dxX2xvY2spOwogCWJoX2xvY2tfc29jayhz ayk7CiAKIAkvKiBIb2xkIHRoZSBzb2NrLCBzaW5jZSBza19jb21tb25fcmVsZWFzZSgpIHdpbGwg cHV0IHNvY2tfcHV0KCkKQEAgLTE1NDQsNyArMTU0Niw3IEBAIHN0YXRpYyB2b2lkIHNjdHBfY2xv c2Uoc3RydWN0IHNvY2sgKnNrLCBsb25nIHRpbWVvdXQpCiAJc2tfY29tbW9uX3JlbGVhc2Uoc2sp OwogCiAJYmhfdW5sb2NrX3NvY2soc2spOwotCWxvY2FsX2JoX2VuYWJsZSgpOworCXNwaW5fdW5s b2NrX2JoKCZuZXQtPnNjdHAuYWRkcl93cV9sb2NrKTsKIAogCXNvY2tfcHV0KHNrKTsKIApAQCAt MzU4Nyw2ICszNTg5LDcgQEAgc3RhdGljIGludCBzY3RwX3NldHNvY2tvcHRfYXV0b19hc2NvbmYo c3RydWN0IHNvY2sgKnNrLCBjaGFyIF9fdXNlciAqb3B0dmFsLAogCWlmICgodmFsICYmIHNwLT5k b19hdXRvX2FzY29uZikgfHwgKCF2YWwgJiYgIXNwLT5kb19hdXRvX2FzY29uZikpCiAJCXJldHVy biAwOwogCisJc3Bpbl9sb2NrX2JoKCZzb2NrX25ldChzayktPnNjdHAuYWRkcl93cV9sb2NrKTsK IAlpZiAodmFsID09IDAgJiYgc3AtPmRvX2F1dG9fYXNjb25mKSB7CiAJCWxpc3RfZGVsKCZzcC0+ YXV0b19hc2NvbmZfbGlzdCk7CiAJCXNwLT5kb19hdXRvX2FzY29uZiA9IDA7CkBAIC0zNTk1LDYg KzM1OTgsNyBAQCBzdGF0aWMgaW50IHNjdHBfc2V0c29ja29wdF9hdXRvX2FzY29uZihzdHJ1Y3Qg c29jayAqc2ssIGNoYXIgX191c2VyICpvcHR2YWwsCiAJCSAgICAmc29ja19uZXQoc2spLT5zY3Rw LmF1dG9fYXNjb25mX3NwbGlzdCk7CiAJCXNwLT5kb19hdXRvX2FzY29uZiA9IDE7CiAJfQorCXNw aW5fdW5sb2NrX2JoKCZzb2NrX25ldChzayktPnNjdHAuYWRkcl93cV9sb2NrKTsKIAlyZXR1cm4g MDsKIH0KIApAQCAtNDEyOCwxOCArNDEzMiwyOCBAQCBzdGF0aWMgaW50IHNjdHBfaW5pdF9zb2Nr KHN0cnVjdCBzb2NrICpzaykKIAlsb2NhbF9iaF9kaXNhYmxlKCk7CiAJcGVyY3B1X2NvdW50ZXJf aW5jKCZzY3RwX3NvY2tldHNfYWxsb2NhdGVkKTsKIAlzb2NrX3Byb3RfaW51c2VfYWRkKG5ldCwg c2stPnNrX3Byb3QsIDEpOworCisJLyogTm90aGluZyBjYW4gZmFpbCBhZnRlciB0aGlzIGJsb2Nr LCBvdGhlcndpc2UKKwkgKiBzY3RwX2Rlc3Ryb3lfc29jaygpIHdpbGwgYmUgY2FsbGVkIHdpdGhv dXQgYWRkcl93cV9sb2NrIGhlbGQKKwkgKi8KIAlpZiAobmV0LT5zY3RwLmRlZmF1bHRfYXV0b19h c2NvbmYpIHsKKwkJc3Bpbl9sb2NrKCZzb2NrX25ldChzayktPnNjdHAuYWRkcl93cV9sb2NrKTsK IAkJbGlzdF9hZGRfdGFpbCgmc3AtPmF1dG9fYXNjb25mX2xpc3QsCiAJCSAgICAmbmV0LT5zY3Rw LmF1dG9fYXNjb25mX3NwbGlzdCk7CiAJCXNwLT5kb19hdXRvX2FzY29uZiA9IDE7Ci0JfSBlbHNl CisJCXNwaW5fdW5sb2NrKCZzb2NrX25ldChzayktPnNjdHAuYWRkcl93cV9sb2NrKTsKKwl9IGVs c2UgewogCQlzcC0+ZG9fYXV0b19hc2NvbmYgPSAwOworCX0KKwogCWxvY2FsX2JoX2VuYWJsZSgp OwogCiAJcmV0dXJuIDA7CiB9CiAKLS8qIENsZWFudXAgYW55IFNDVFAgcGVyIHNvY2tldCByZXNv dXJjZXMuICAqLworLyogQ2xlYW51cCBhbnkgU0NUUCBwZXIgc29ja2V0IHJlc291cmNlcy4gTXVz dCBiZSBjYWxsZWQgd2l0aAorICogc29ja19uZXQoc2spLT5zY3RwLmFkZHJfd3FfbG9jayBoZWxk IGlmIHNwLT5kb19hdXRvX2FzY29uZiBpcyB0cnVlCisgKi8KIHN0YXRpYyB2b2lkIHNjdHBfZGVz dHJveV9zb2NrKHN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1Y3Qgc2N0cF9zb2NrICpzcDsKQEAg LTcyMDIsNiArNzIxNiwxOSBAQCB2b2lkIHNjdHBfY29weV9zb2NrKHN0cnVjdCBzb2NrICpuZXdz aywgc3RydWN0IHNvY2sgKnNrLAogCW5ld2luZXQtPm1jX2xpc3QgPSBOVUxMOwogfQogCitzdGF0 aWMgaW5saW5lIHZvaWQgc2N0cF9jb3B5X2Rlc2NlbmRhbnQoc3RydWN0IHNvY2sgKnNrX3RvLAor CQkJCQljb25zdCBzdHJ1Y3Qgc29jayAqc2tfZnJvbSkKK3sKKwlpbnQgYW5jZXN0b3Jfc2l6ZSA9 IHNpemVvZihzdHJ1Y3QgaW5ldF9zb2NrKSArCisJCQkgICAgc2l6ZW9mKHN0cnVjdCBzY3RwX3Nv Y2spIC0KKwkJCSAgICBvZmZzZXRvZihzdHJ1Y3Qgc2N0cF9zb2NrLCBhdXRvX2FzY29uZl9saXN0 KTsKKworCWlmIChza19mcm9tLT5za19mYW1pbHkgPT0gUEZfSU5FVDYpCisJCWFuY2VzdG9yX3Np emUgKz0gc2l6ZW9mKHN0cnVjdCBpcHY2X3BpbmZvKTsKKworCV9faW5ldF9za19jb3B5X2Rlc2Nl bmRhbnQoc2tfdG8sIHNrX2Zyb20sIGFuY2VzdG9yX3NpemUpOworfQorCiAvKiBQb3B1bGF0ZSB0 aGUgZmllbGRzIG9mIHRoZSBuZXdzayBmcm9tIHRoZSBvbGRzayBhbmQgbWlncmF0ZSB0aGUgYXNz b2MKICAqIGFuZCBpdHMgbWVzc2FnZXMgdG8gdGhlIG5ld3NrLgogICovCkBAIC03MjE2LDcgKzcy NDMsNiBAQCBzdGF0aWMgdm9pZCBzY3RwX3NvY2tfbWlncmF0ZShzdHJ1Y3Qgc29jayAqb2xkc2ss IHN0cnVjdCBzb2NrICpuZXdzaywKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCAqdG1wOwogCXN0cnVj dCBzY3RwX3VscGV2ZW50ICpldmVudDsKIAlzdHJ1Y3Qgc2N0cF9iaW5kX2hhc2hidWNrZXQgKmhl YWQ7Ci0Jc3RydWN0IGxpc3RfaGVhZCB0bXBsaXN0OwogCiAJLyogTWlncmF0ZSBzb2NrZXQgYnVm ZmVyIHNpemVzIGFuZCBhbGwgdGhlIHNvY2tldCBsZXZlbCBvcHRpb25zIHRvIHRoZQogCSAqIG5l dyBzb2NrZXQuCkBAIC03MjI0LDEyICs3MjUwLDcgQEAgc3RhdGljIHZvaWQgc2N0cF9zb2NrX21p Z3JhdGUoc3RydWN0IHNvY2sgKm9sZHNrLCBzdHJ1Y3Qgc29jayAqbmV3c2ssCiAJbmV3c2stPnNr X3NuZGJ1ZiA9IG9sZHNrLT5za19zbmRidWY7CiAJbmV3c2stPnNrX3JjdmJ1ZiA9IG9sZHNrLT5z a19yY3ZidWY7CiAJLyogQnJ1dGUgZm9yY2UgY29weSBvbGQgc2N0cCBvcHQuICovCi0JaWYgKG9s ZHNwLT5kb19hdXRvX2FzY29uZikgewotCQltZW1jcHkoJnRtcGxpc3QsICZuZXdzcC0+YXV0b19h c2NvbmZfbGlzdCwgc2l6ZW9mKHRtcGxpc3QpKTsKLQkJaW5ldF9za19jb3B5X2Rlc2NlbmRhbnQo bmV3c2ssIG9sZHNrKTsKLQkJbWVtY3B5KCZuZXdzcC0+YXV0b19hc2NvbmZfbGlzdCwgJnRtcGxp c3QsIHNpemVvZih0bXBsaXN0KSk7Ci0JfSBlbHNlCi0JCWluZXRfc2tfY29weV9kZXNjZW5kYW50 KG5ld3NrLCBvbGRzayk7CisJc2N0cF9jb3B5X2Rlc2NlbmRhbnQobmV3c2ssIG9sZHNrKTsKIAog CS8qIFJlc3RvcmUgdGhlIGVwIHZhbHVlIHRoYXQgd2FzIG92ZXJ3cml0dGVuIHdpdGggdGhlIGFi b3ZlIHN0cnVjdHVyZQogCSAqIGNvcHkuCi0tIAoyLjEuMAoKCkZyb20gNTkxZGVkN2E5MzBjNWQx NGNjOWY0ZmJiOTRlNWU5NGM3OTUyNzkyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Tmlrb2xheSBBbGVrc2FuZHJvdiA8cmF6b3JAYmxhY2t3YWxsLm9yZz4KRGF0ZTogTW9uLCAxNSBK dW4gMjAxNSAyMDoyODo1MSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjFdIGJyaWRnZTogZml4 IGJyX3N0cF9zZXRfYnJpZGdlX3ByaW9yaXR5IHJhY2UgY29uZGl0aW9ucwoKWyBVcHN0cmVhbSBj b21taXQgMmRhYjgwYThiNDg2ZjAyMjIyYTY5ZGFjYTY4NTk1MTllMDU3ODFkOSBdCgpBZnRlciB0 aGUgLT5zZXQoKSBzcGlubG9ja3Mgd2VyZSByZW1vdmVkIGJyX3N0cF9zZXRfYnJpZGdlX3ByaW9y aXR5CndhcyBsZWZ0IHJ1bm5pbmcgd2l0aG91dCBhbnkgcHJvdGVjdGlvbiB3aGVuIHVzZWQgdmlh IHN5c2ZzLiBJdCBjYW4KcmFjZSB3aXRoIHBvcnQgYWRkL2RlbCBhbmQgY291bGQgcmVzdWx0IGlu IHVzZS1hZnRlci1mcmVlIGNhc2VzIGFuZApjb3JydXB0ZWQgbGlzdHMuIFRlc3RlZCBieSBydW5u aW5nIHBvcnQgYWRkL2RlbCBpbiBhIGxvb3Agd2l0aCBzdHAKZW5hYmxlZCB3aGlsZSBzZXR0aW5n IHByaW9yaXR5IGluIGEgbG9vcCwgY3Jhc2hlcyBhcmUgZWFzaWx5CnJlcHJvZHVjaWJsZS4KVGhl IHNwaW5sb2NrcyBhcm91bmQgc3lzZnMgLT5zZXQoKSB3ZXJlIHJlbW92ZWQgaW4gY29tbWl0Ogox NGY5OGYyNThmMTkgKCJicmlkZ2U6IHJhbmdlIGNoZWNrIFNUUCBwYXJhbWV0ZXJzIikKVGhlcmUn cyBhbHNvIGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIG5ldGxpbmsgcHJpb3JpdHkgc3VwcG9ydCB0 aGF0IGlzCmZpeGVkIGJ5IHRoaXMgY2hhbmdlLCBidXQgaXQgd2FzIGludHJvZHVjZWQgcmVjZW50 bHkgYW5kIHRoZSBmaXhlcyB0YWcKY292ZXJzIGl0LCBqdXN0IGluIGNhc2UgaXQncyBuZWVkZWQg dGhlIGNvbW1pdCBpczoKYWY2MTU3NjJlOTcyICgiYnJpZGdlOiBhZGQgYWdlaW5nX3RpbWUsIHN0 cF9zdGF0ZSwgcHJpb3JpdHkgb3ZlciBuZXRsaW5rIikKClNpZ25lZC1vZmYtYnk6IE5pa29sYXkg QWxla3NhbmRyb3YgPHJhem9yQGJsYWNrd2FsbC5vcmc+CkZpeGVzOiAxNGY5OGYyNThmMTkgKCJi cmlkZ2U6IHJhbmdlIGNoZWNrIFNUUCBwYXJhbWV0ZXJzIikKU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2UvYnJfaW9jdGwu YyAgfCAyIC0tCiBuZXQvYnJpZGdlL2JyX3N0cF9pZi5jIHwgNCArKystCiAyIGZpbGVzIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJp ZGdlL2JyX2lvY3RsLmMgYi9uZXQvYnJpZGdlL2JyX2lvY3RsLmMKaW5kZXggYTlhNGExYi4uOGQ0 MjNiYyAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9pb2N0bC5jCisrKyBiL25ldC9icmlkZ2Uv YnJfaW9jdGwuYwpAQCAtMjQ3LDkgKzI0Nyw3IEBAIHN0YXRpYyBpbnQgb2xkX2Rldl9pb2N0bChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWZyZXEgKnJxLCBpbnQgY21kKQogCQlpZiAo IW5zX2NhcGFibGUoZGV2X25ldChkZXYpLT51c2VyX25zLCBDQVBfTkVUX0FETUlOKSkKIAkJCXJl dHVybiAtRVBFUk07CiAKLQkJc3Bpbl9sb2NrX2JoKCZici0+bG9jayk7CiAJCWJyX3N0cF9zZXRf YnJpZGdlX3ByaW9yaXR5KGJyLCBhcmdzWzFdKTsKLQkJc3Bpbl91bmxvY2tfYmgoJmJyLT5sb2Nr KTsKIAkJcmV0dXJuIDA7CiAKIAljYXNlIEJSQ1RMX1NFVF9QT1JUX1BSSU9SSVRZOgpkaWZmIC0t Z2l0IGEvbmV0L2JyaWRnZS9icl9zdHBfaWYuYyBiL25ldC9icmlkZ2UvYnJfc3RwX2lmLmMKaW5k ZXggNDExNDY4Ny4uNzgzMmQwNyAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9zdHBfaWYuYwor KysgYi9uZXQvYnJpZGdlL2JyX3N0cF9pZi5jCkBAIC0yNDMsMTIgKzI0MywxMyBAQCBib29sIGJy X3N0cF9yZWNhbGN1bGF0ZV9icmlkZ2VfaWQoc3RydWN0IG5ldF9icmlkZ2UgKmJyKQogCXJldHVy biB0cnVlOwogfQogCi0vKiBjYWxsZWQgdW5kZXIgYnJpZGdlIGxvY2sgKi8KKy8qIEFjcXVpcmVz IGFuZCByZWxlYXNlcyBicmlkZ2UgbG9jayAqLwogdm9pZCBicl9zdHBfc2V0X2JyaWRnZV9wcmlv cml0eShzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsIHUxNiBuZXdwcmlvKQogewogCXN0cnVjdCBuZXRf YnJpZGdlX3BvcnQgKnA7CiAJaW50IHdhc3Jvb3Q7CiAKKwlzcGluX2xvY2tfYmgoJmJyLT5sb2Nr KTsKIAl3YXNyb290ID0gYnJfaXNfcm9vdF9icmlkZ2UoYnIpOwogCiAJbGlzdF9mb3JfZWFjaF9l bnRyeShwLCAmYnItPnBvcnRfbGlzdCwgbGlzdCkgewpAQCAtMjY2LDYgKzI2Nyw3IEBAIHZvaWQg YnJfc3RwX3NldF9icmlkZ2VfcHJpb3JpdHkoc3RydWN0IG5ldF9icmlkZ2UgKmJyLCB1MTYgbmV3 cHJpbykKIAlicl9wb3J0X3N0YXRlX3NlbGVjdGlvbihicik7CiAJaWYgKGJyX2lzX3Jvb3RfYnJp ZGdlKGJyKSAmJiAhd2Fzcm9vdCkKIAkJYnJfYmVjb21lX3Jvb3RfYnJpZGdlKGJyKTsKKwlzcGlu X3VubG9ja19iaCgmYnItPmxvY2spOwogfQogCiAvKiBjYWxsZWQgdW5kZXIgYnJpZGdlIGxvY2sg Ki8KLS0gCjIuMS4wCgoKRnJvbSA1MWYyNzk4ZTk5OTM5MzUyYWFmYTgzYjFlODE4MzU4NzJmZTE4 Y2M0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMTYgSnVuIDIwMTUgMDc6NTk6MTEgLTA3MDAKU3ViamVj dDogW1BBVENIIDA2LzIxXSBwYWNrZXQ6IHJlYWQgbnVtX21lbWJlcnMgb25jZSBpbiBwYWNrZXRf cmN2X2Zhbm91dCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBmOThmNDUxNGQwNzg3MWRhN2ExMTNkZDll M2UzMzA3NDNmZDcwYWU0IF0KCldlIG5lZWQgdG8gdGVsbCBjb21waWxlciBpdCBtdXN0IG5vdCBy ZWFkIGYtPm51bV9tZW1iZXJzIG11bHRpcGxlCnRpbWVzLiBPdGhlcndpc2UgdGVzdGluZyBpZiBu dW0gaXMgbm90IHplcm8gaXMgZmxha3ksIGFuZCB3ZSBjb3VsZAphdHRlbXB0IGFuIGludmFsaWQg ZGl2aWRlIGJ5IDAgaW4gZmFub3V0X2RlbXV4X2NwdSgpCgpOb3RlIGJ1ZyB3YXMgcHJlc2VudCBp biBwYWNrZXRfcmN2X2Zhbm91dF9oYXNoKCkgYW5kCnBhY2tldF9yY3ZfZmFub3V0X2xiKCkgYnV0 IGZpbmFsIDMuMSBoYWQgYSBzaW1wbGUgbG9jYXRpb24KYWZ0ZXIgY29tbWl0IDk1ZWMzZWI0MTcx MTVmYiAoInBhY2tldDogQWRkICdjcHUnIGZhbm91dCBwb2xpY3kuIikKCkZpeGVzOiBkYzk5ZjYw MDY5OGRjICgicGFja2V0OiBBZGQgZmFub3V0IHN1cHBvcnQuIikKU2lnbmVkLW9mZi1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogV2lsbGVtIGRlIEJydWlqbiA8d2ls bGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9w YWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCmluZGV4IGY4ZGI3MDYu LmI0ZGZkZmYgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYwpAQCAtMTM0Nyw3ICsxMzQ3LDcgQEAgc3RhdGljIGludCBwYWNrZXRf cmN2X2Zhbm91dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAog CQkJICAgICBzdHJ1Y3QgcGFja2V0X3R5cGUgKnB0LCBzdHJ1Y3QgbmV0X2RldmljZSAqb3JpZ19k ZXYpCiB7CiAJc3RydWN0IHBhY2tldF9mYW5vdXQgKmYgPSBwdC0+YWZfcGFja2V0X3ByaXY7Ci0J dW5zaWduZWQgaW50IG51bSA9IGYtPm51bV9tZW1iZXJzOworCXVuc2lnbmVkIGludCBudW0gPSBS RUFEX09OQ0UoZi0+bnVtX21lbWJlcnMpOwogCXN0cnVjdCBwYWNrZXRfc29jayAqcG87CiAJdW5z aWduZWQgaW50IGlkeDsKIAotLSAKMi4xLjAKCgpGcm9tIGRjNjVjMGIzODkzNmVkZmU0NzYxMzFk ZjM5ZDJhM2NhMTIyNDYwMDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBk ZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAxNyBKdW4gMjAxNSAxNTo1 OTozNCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjFdIHBhY2tldDogYXZvaWQgb3V0IG9mIGJv dW5kcyByZWFkIGluIHJvdW5kIHJvYmluIGZhbm91dAoKWyBVcHN0cmVhbSBjb21taXQgNDY4NDc5 ZTYwNDNjODRmNWE2NTI5OWNjMDdjYjA4YTIyYTI4YzJiMSBdCgpQQUNLRVRfRkFOT1VUX0xCIGNv bXB1dGVzIGYtPnJyX2N1ciBzdWNoIHRoYXQgaXQgaXMgbW9kdWxvCmYtPm51bV9tZW1iZXJzLiBJ dCByZXR1cm5zIHRoZSBvbGQgdmFsdWUgdW5jb25kaXRpb25hbGx5LCBidXQKZi0+bnVtX21lbWJl cnMgbWF5IGhhdmUgY2hhbmdlZCBzaW5jZSB0aGUgbGFzdCBzdG9yZS4gRW5zdXJlCnRoYXQgdGhl IHJldHVybiB2YWx1ZSBpcyBhbHdheXMgPCBudW0uCgpXaGVuIG1vZGlmeWluZyB0aGUgbG9naWMs IHNpbXBsaWZ5IGl0IGZ1cnRoZXIgYnkgcmVwbGFjaW5nIHRoZSBsb29wCndpdGggYW4gdW5jb25k aXRpb25hbCBhdG9taWMgaW5jcmVtZW50LgoKRml4ZXM6IGRjOTlmNjAwNjk4ZCAoInBhY2tldDog QWRkIGZhbm91dCBzdXBwb3J0LiIpClN1Z2dlc3RlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdv b2dsZS5jb20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgMTggKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv cGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCBiNGRmZGZm Li5iZmU1YzY5IDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9w YWNrZXQvYWZfcGFja2V0LmMKQEAgLTEyNjYsMTYgKzEyNjYsNiBAQCBzdGF0aWMgdm9pZCBwYWNr ZXRfc29ja19kZXN0cnVjdChzdHJ1Y3Qgc29jayAqc2spCiAJc2tfcmVmY250X2RlYnVnX2RlYyhz ayk7CiB9CiAKLXN0YXRpYyBpbnQgZmFub3V0X3JyX25leHQoc3RydWN0IHBhY2tldF9mYW5vdXQg KmYsIHVuc2lnbmVkIGludCBudW0pCi17Ci0JaW50IHggPSBhdG9taWNfcmVhZCgmZi0+cnJfY3Vy KSArIDE7Ci0KLQlpZiAoeCA+PSBudW0pCi0JCXggPSAwOwotCi0JcmV0dXJuIHg7Ci19Ci0KIHN0 YXRpYyB1bnNpZ25lZCBpbnQgZmFub3V0X2RlbXV4X2hhc2goc3RydWN0IHBhY2tldF9mYW5vdXQg KmYsCiAJCQkJICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgICAgICB1bnNpZ25lZCBp bnQgbnVtKQpAQCAtMTI4NywxMyArMTI3Nyw5IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZmFub3V0 X2RlbXV4X2xiKHN0cnVjdCBwYWNrZXRfZmFub3V0ICpmLAogCQkJCSAgICBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLAogCQkJCSAgICB1bnNpZ25lZCBpbnQgbnVtKQogewotCWludCBjdXIsIG9sZDsKKwl1 bnNpZ25lZCBpbnQgdmFsID0gYXRvbWljX2luY19yZXR1cm4oJmYtPnJyX2N1cik7CiAKLQljdXIg PSBhdG9taWNfcmVhZCgmZi0+cnJfY3VyKTsKLQl3aGlsZSAoKG9sZCA9IGF0b21pY19jbXB4Y2hn KCZmLT5ycl9jdXIsIGN1ciwKLQkJCQkgICAgIGZhbm91dF9ycl9uZXh0KGYsIG51bSkpKSAhPSBj dXIpCi0JCWN1ciA9IG9sZDsKLQlyZXR1cm4gY3VyOworCXJldHVybiB2YWwgJSBudW07CiB9CiAK IHN0YXRpYyB1bnNpZ25lZCBpbnQgZmFub3V0X2RlbXV4X2NwdShzdHJ1Y3QgcGFja2V0X2Zhbm91 dCAqZiwKLS0gCjIuMS4wCgoKRnJvbSAzZTMyMTExZTBmNDgyNWQ3OTMxM2VhYTFmZGMyMmFkYjM0 NDFhNTIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gQW5hc3Rhc292IDxq YUBzc2kuYmc+CkRhdGU6IFR1ZSwgMTYgSnVuIDIwMTUgMjI6NTY6MzkgKzAzMDAKU3ViamVjdDog W1BBVENIIDA4LzIxXSBuZWlnaDogZG8gbm90IG1vZGlmeSB1bmxpbmtlZCBlbnRyaWVzCgpbIFVw c3RyZWFtIGNvbW1pdCAyYzUxYTk3Zjc2ZDIwZWJmMWY1MGZlZjkwOGI5ODZjYjA1MWZkZmY5IF0K ClRoZSBsb2NrbGVzcyBsb29rdXBzIGNhbiByZXR1cm4gZW50cnkgdGhhdCBpcyB1bmxpbmtlZC4K U29tZXRpbWVzIHRoZXkgZ2V0IHJlZmVyZW5jZSBiZWZvcmUgbGFzdCBuZWlnaF9jbGVhbnVwX2Fu ZF9yZWxlYXNlLApzb21ldGltZXMgdGhleSBkbyBub3QgbmVlZCByZWZlcmVuY2UuIExhdGVyLCBh bnkKbW9kaWZpY2F0aW9uIGF0dGVtcHRzIG1heSByZXN1bHQgaW4gdGhlIGZvbGxvd2luZyBwcm9i bGVtczoKCjEuIGVudHJ5IGlzIG5vdCBkZXN0cm95ZWQgaW1tZWRpYXRlbHkgYmVjYXVzZSBuZWln aF91cGRhdGUKY2FuIHN0YXJ0IHRoZSB0aW1lciBmb3IgZGVhZCBlbnRyeSwgZWcuIG9uIGNoYW5n ZSB0byBOVURfUkVBQ0hBQkxFCnN0YXRlLiBBcyByZXN1bHQsIGVudHJ5IGxpdmVzIGZvciBzb21l IHRpbWUgYnV0IGlzIGludmlzaWJsZQphbmQgb3V0IG9mIGNvbnRyb2wuCgoyLiBfX25laWdoX2V2 ZW50X3NlbmQgY2FuIHJ1biBpbiBwYXJhbGxlbCB3aXRoIG5laWdoX2Rlc3Ryb3kKd2hpbGUgcmVm Y250PTAgYnV0IGlmIHRpbWVyIGlzIHN0YXJ0ZWQgYW5kIGV4cGlyZWQgcmVmY250IGNhbgpyZWFj aCAwIGZvciBzZWNvbmQgdGltZSBsZWFkaW5nIHRvIHNlY29uZCBuZWlnaF9kZXN0cm95IGFuZApw b3NzaWJsZSBjcmFzaC4KClRoYW5rcyB0byBFcmljIER1bWF6ZXQgYW5kIFlpbmcgWHVlIGZvciB0 aGVpciB3b3JrIGFuZCBhbmFseXplCm9uIHRoZSBfX25laWdoX2V2ZW50X3NlbmQgY2hhbmdlLgoK Rml4ZXM6IDc2N2U5N2UxZTBkYiAoIm5laWdoOiBSQ1UgY29udmVyc2lvbiBvZiBzdHJ1Y3QgbmVp Z2hib3VyIikKRml4ZXM6IGEyNjNiMzA5MzY0MSAoImlwdjQ6IE1ha2UgbmVpZ2ggbG9va3VwcyBk aXJlY3RseSBpbiBvdXRwdXQgcGFja2V0IHBhdGguIikKRml4ZXM6IDZmZDZjZTIwNTZkZSAoImlw djY6IERvIG5vdCBkZXBlbmQgb24gcnQtPm4gaW4gaXA2X2ZpbmlzaF9vdXRwdXQyKCkuIikKQ2M6 IEVyaWMgRHVtYXpldCA8ZXJpYy5kdW1hemV0QGdtYWlsLmNvbT4KQ2M6IFlpbmcgWHVlIDx5aW5n Lnh1ZUB3aW5kcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gQW5hc3Rhc292IDxqYUBz c2kuYmc+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv Y29yZS9uZWlnaGJvdXIuYyB8IDEzICsrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMyBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvbmVpZ2hib3VyLmMgYi9uZXQvY29y ZS9uZWlnaGJvdXIuYwppbmRleCA3MGZlOWUxLi5kMGU1ZDY2IDEwMDY0NAotLS0gYS9uZXQvY29y ZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29yZS9uZWlnaGJvdXIuYwpAQCAtOTcxLDYgKzk3MSw4 IEBAIGludCBfX25laWdoX2V2ZW50X3NlbmQoc3RydWN0IG5laWdoYm91ciAqbmVpZ2gsIHN0cnVj dCBza19idWZmICpza2IpCiAJcmMgPSAwOwogCWlmIChuZWlnaC0+bnVkX3N0YXRlICYgKE5VRF9D T05ORUNURUQgfCBOVURfREVMQVkgfCBOVURfUFJPQkUpKQogCQlnb3RvIG91dF91bmxvY2tfYmg7 CisJaWYgKG5laWdoLT5kZWFkKQorCQlnb3RvIG91dF9kZWFkOwogCiAJaWYgKCEobmVpZ2gtPm51 ZF9zdGF0ZSAmIChOVURfU1RBTEUgfCBOVURfSU5DT01QTEVURSkpKSB7CiAJCWlmIChORUlHSF9W QVIobmVpZ2gtPnBhcm1zLCBNQ0FTVF9QUk9CRVMpICsKQEAgLTEwMjcsNiArMTAyOSwxMyBAQCBv dXRfdW5sb2NrX2JoOgogCQl3cml0ZV91bmxvY2soJm5laWdoLT5sb2NrKTsKIAlsb2NhbF9iaF9l bmFibGUoKTsKIAlyZXR1cm4gcmM7CisKK291dF9kZWFkOgorCWlmIChuZWlnaC0+bnVkX3N0YXRl ICYgTlVEX1NUQUxFKQorCQlnb3RvIG91dF91bmxvY2tfYmg7CisJd3JpdGVfdW5sb2NrX2JoKCZu ZWlnaC0+bG9jayk7CisJa2ZyZWVfc2tiKHNrYik7CisJcmV0dXJuIDE7CiB9CiBFWFBPUlRfU1lN Qk9MKF9fbmVpZ2hfZXZlbnRfc2VuZCk7CiAKQEAgLTEwOTAsNiArMTA5OSw4IEBAIGludCBuZWln aF91cGRhdGUoc3RydWN0IG5laWdoYm91ciAqbmVpZ2gsIGNvbnN0IHU4ICpsbGFkZHIsIHU4IG5l dywKIAlpZiAoIShmbGFncyAmIE5FSUdIX1VQREFURV9GX0FETUlOKSAmJgogCSAgICAob2xkICYg KE5VRF9OT0FSUCB8IE5VRF9QRVJNQU5FTlQpKSkKIAkJZ290byBvdXQ7CisJaWYgKG5laWdoLT5k ZWFkKQorCQlnb3RvIG91dDsKIAogCWlmICghKG5ldyAmIE5VRF9WQUxJRCkpIHsKIAkJbmVpZ2hf ZGVsX3RpbWVyKG5laWdoKTsKQEAgLTEyMzksNiArMTI1MCw4IEBAIEVYUE9SVF9TWU1CT0wobmVp Z2hfdXBkYXRlKTsKICAqLwogdm9pZCBfX25laWdoX3NldF9wcm9iZV9vbmNlKHN0cnVjdCBuZWln aGJvdXIgKm5laWdoKQogeworCWlmIChuZWlnaC0+ZGVhZCkKKwkJcmV0dXJuOwogCW5laWdoLT51 cGRhdGVkID0gamlmZmllczsKIAlpZiAoIShuZWlnaC0+bnVkX3N0YXRlICYgTlVEX0ZBSUxFRCkp CiAJCXJldHVybjsKLS0gCjIuMS4wCgoKRnJvbSA0ZWVmZmU5MDY4ZjY2ZGI2OTQyOWE4MDhlNmRk ZjI3YjFhOGY4ZDkxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggUGFh c2NoIDxjcGFhc2NoQGFwcGxlLmNvbT4KRGF0ZTogVGh1LCAxOCBKdW4gMjAxNSAwOToxNTozNCAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMjFdIHRjcDogRG8gbm90IGNhbGwgdGNwX2Zhc3RvcGVu X3Jlc2V0X2NpcGhlciBmcm9tCiBpbnRlcnJ1cHQgY29udGV4dAoKWyBVcHN0cmVhbSBjb21taXQg ZGZlYTJhYTY1NDI0M2Y3MGRjNTNiODY0OGQwYmJkZWVjNTVhN2RmMSBdCgp0Y3BfZmFzdG9wZW5f cmVzZXRfY2lwaGVyIHJlYWxseSBjYW5ub3QgYmUgY2FsbGVkIGZyb20gaW50ZXJydXB0CmNvbnRl eHQuIEl0IGFsbG9jYXRlcyB0aGUgdGNwX2Zhc3RvcGVuX2NvbnRleHQgd2l0aCBHRlBfS0VSTkVM IGFuZApjYWxscyBjcnlwdG9fYWxsb2NfY2lwaGVyLCB3aGljaCBhbGxvY2F0ZXMgYWxsIGtpbmQg b2Ygc3R1ZmYgd2l0aApHRlBfS0VSTkVMLgoKVGh1cywgd2UgbWlnaHQgc2xlZXAgd2hlbiB0aGUg a2V5LWdlbmVyYXRpb24gaXMgdHJpZ2dlcmVkIGJ5IGFuCmluY29taW5nIFRGTyBjb29raWUtcmVx dWVzdCB3aGljaCB3b3VsZCB0aGVuIGhhcHBlbiBpbiBpbnRlcnJ1cHQtCmNvbnRleHQsIGFzIHNo b3duIGJ5IGVuYWJsaW5nIENPTkZJR19ERUJVR19BVE9NSUNfU0xFRVA6CgpbICAgMzYuMDAxODEz XSBCVUc6IHNsZWVwaW5nIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGludmFsaWQgY29udGV4dCBhdCBt bS9zbHViLmM6MTI2NgpbICAgMzYuMDAzNjI0XSBpbl9hdG9taWMoKTogMSwgaXJxc19kaXNhYmxl ZCgpOiAwLCBwaWQ6IDEwMTYsIG5hbWU6IHBhY2tldGRyaWxsClsgICAzNi4wMDQ4NTldIENQVTog MSBQSUQ6IDEwMTYgQ29tbTogcGFja2V0ZHJpbGwgTm90IHRhaW50ZWQgNC4xLjAtcmM3ICMxNApb ICAgMzYuMDA2MDg1XSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQ SUlYLCAxOTk2KSwgQklPUyByZWwtMS43LjUtMC1nZTUxNDg4Yy0yMDE0MDYwMl8xNjQ2MTItbmls c3Nvbi5ob21lLmtyYXhlbC5vcmcgMDQvMDEvMjAxNApbICAgMzYuMDA4MjUwXSAgMDAwMDAwMDAw MDAwMDRmMiBmZmZmODgwMDdmODgzOGE4IGZmZmZmZmZmODE3MWQ1M2EgZmZmZjg4MDA3NWEwODRh OApbICAgMzYuMDA5NjMwXSAgZmZmZjg4MDA3NWEwODAwMCBmZmZmODgwMDdmODgzOGM4IGZmZmZm ZmZmODEwOTY3ZDMgZmZmZjg4MDA3Zjg4MzkyOApbICAgMzYuMDExMDc2XSAgMDAwMDAwMDAwMDAw MDAwMCBmZmZmODgwMDdmODgzOGY4IGZmZmZmZmZmODEwOTY4OTIgZmZmZjg4MDA3Zjg5YmUwMApb ICAgMzYuMDEyNDk0XSBDYWxsIFRyYWNlOgpbICAgMzYuMDEyOTUzXSAgPElSUT4gIFs8ZmZmZmZm ZmY4MTcxZDUzYT5dIGR1bXBfc3RhY2srMHg0Zi8weDZkClsgICAzNi4wMTQwODVdICBbPGZmZmZm ZmZmODEwOTY3ZDM+XSBfX19taWdodF9zbGVlcCsweDEwMy8weDE3MApbICAgMzYuMDE1MTE3XSAg WzxmZmZmZmZmZjgxMDk2ODkyPl0gX19taWdodF9zbGVlcCsweDUyLzB4OTAKWyAgIDM2LjAxNjEx N10gIFs8ZmZmZmZmZmY4MTE4ZTg4Nz5dIGttZW1fY2FjaGVfYWxsb2NfdHJhY2UrMHg0Ny8weDE5 MApbICAgMzYuMDE3MjY2XSAgWzxmZmZmZmZmZjgxNjgwZDgyPl0gPyB0Y3BfZmFzdG9wZW5fcmVz ZXRfY2lwaGVyKzB4NDIvMHgxMzAKWyAgIDM2LjAxODQ4NV0gIFs8ZmZmZmZmZmY4MTY4MGQ4Mj5d IHRjcF9mYXN0b3Blbl9yZXNldF9jaXBoZXIrMHg0Mi8weDEzMApbICAgMzYuMDE5Njc5XSAgWzxm ZmZmZmZmZjgxNjgwZjAxPl0gdGNwX2Zhc3RvcGVuX2luaXRfa2V5X29uY2UrMHg2MS8weDcwClsg ICAzNi4wMjA4ODRdICBbPGZmZmZmZmZmODE2ODBmMmM+XSBfX3RjcF9mYXN0b3Blbl9jb29raWVf Z2VuKzB4MWMvMHg2MApbICAgMzYuMDIyMDU4XSAgWzxmZmZmZmZmZjgxNjgxNGZmPl0gdGNwX3Ry eV9mYXN0b3BlbisweDU4Zi8weDczMApbICAgMzYuMDIzMTE4XSAgWzxmZmZmZmZmZjgxNjcxNzg4 Pl0gdGNwX2Nvbm5fcmVxdWVzdCsweDNlOC8weDdiMApbICAgMzYuMDI0MTg1XSAgWzxmZmZmZmZm ZjgxMGUzODcyPl0gPyBfX21vZHVsZV90ZXh0X2FkZHJlc3MrMHgxMi8weDYwClsgICAzNi4wMjUz MjddICBbPGZmZmZmZmZmODE2N2IyZTE+XSB0Y3BfdjRfY29ubl9yZXF1ZXN0KzB4NTEvMHg2MApb ICAgMzYuMDI2NDEwXSAgWzxmZmZmZmZmZjgxNjcyN2UwPl0gdGNwX3Jjdl9zdGF0ZV9wcm9jZXNz KzB4MTkwLzB4ZGEwClsgICAzNi4wMjc1NTZdICBbPGZmZmZmZmZmODE2NjFmOTc+XSA/IF9faW5l dF9sb29rdXBfZXN0YWJsaXNoZWQrMHg0Ny8weDE3MApbICAgMzYuMDI4Nzg0XSAgWzxmZmZmZmZm ZjgxNjdjMmFkPl0gdGNwX3Y0X2RvX3JjdisweDE2ZC8weDNkMApbICAgMzYuMDI5ODMyXSAgWzxm ZmZmZmZmZjgxMmU2ODA2Pl0gPyBzZWN1cml0eV9zb2NrX3Jjdl9za2IrMHgxNi8weDIwClsgICAz Ni4wMzA5MzZdICBbPGZmZmZmZmZmODE2N2NjOGE+XSB0Y3BfdjRfcmN2KzB4NzdhLzB4N2IwClsg ICAzNi4wMzE4NzVdICBbPGZmZmZmZmZmODE2YWY4YzM+XSA/IGlwdGFibGVfZmlsdGVyX2hvb2sr MHgzMy8weDcwClsgICAzNi4wMzI5NTNdICBbPGZmZmZmZmZmODE2NTdkMjI+XSBpcF9sb2NhbF9k ZWxpdmVyX2ZpbmlzaCsweDkyLzB4MWYwClsgICAzNi4wMzQwNjVdICBbPGZmZmZmZmZmODE2NTdm MWE+XSBpcF9sb2NhbF9kZWxpdmVyKzB4OWEvMHhiMApbICAgMzYuMDM1MDY5XSAgWzxmZmZmZmZm ZjgxNjU3YzkwPl0gPyBpcF9yY3YrMHgzZDAvMHgzZDAKWyAgIDM2LjAzNTk2M10gIFs8ZmZmZmZm ZmY4MTY1NzU2OT5dIGlwX3Jjdl9maW5pc2grMHgxMTkvMHgzMzAKWyAgIDM2LjAzNjk1MF0gIFs8 ZmZmZmZmZmY4MTY1N2JhNz5dIGlwX3JjdisweDJlNy8weDNkMApbICAgMzYuMDM3ODQ3XSAgWzxm ZmZmZmZmZjgxNjEwNjUyPl0gX19uZXRpZl9yZWNlaXZlX3NrYl9jb3JlKzB4NTUyLzB4OTMwClsg ICAzNi4wMzg5OTRdICBbPGZmZmZmZmZmODE2MTBhNTc+XSBfX25ldGlmX3JlY2VpdmVfc2tiKzB4 MjcvMHg3MApbICAgMzYuMDQwMDMzXSAgWzxmZmZmZmZmZjgxNjEwYjcyPl0gcHJvY2Vzc19iYWNr bG9nKzB4ZDIvMHgxZjAKWyAgIDM2LjA0MTAyNV0gIFs8ZmZmZmZmZmY4MTYxMTQ4Mj5dIG5ldF9y eF9hY3Rpb24rMHgxMjIvMHgzMTAKWyAgIDM2LjA0MjAwN10gIFs8ZmZmZmZmZmY4MTA3Njc0Mz5d IF9fZG9fc29mdGlycSsweDEwMy8weDJmMApbICAgMzYuMDQyOTc4XSAgWzxmZmZmZmZmZjgxNzIz ZTNjPl0gZG9fc29mdGlycV9vd25fc3RhY2srMHgxYy8weDMwCgpUaGlzIHBhdGNoIG1vdmVzIHRo ZSBjYWxsIHRvIHRjcF9mYXN0b3Blbl9pbml0X2tleV9vbmNlIHRvIHRoZSBwbGFjZXMKd2hlcmUg YSBsaXN0ZW5lciBzb2NrZXQgY3JlYXRlcyBpdHMgVEZPLXN0YXRlLCB3aGljaCBhbHdheXMgaGFw cGVucyBpbgp1c2VyLWNvbnRleHQgKGVpdGhlciBmcm9tIHRoZSBzZXRzb2Nrb3B0LCBvciBpbXBs aWNpdGx5IGR1cmluZyB0aGUKbGlzdGVuKCktY2FsbCkKCkNjOiBFcmljIER1bWF6ZXQgPGVyaWMu ZHVtYXpldEBnbWFpbC5jb20+CkNjOiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVz c2luZHVrdGlvbi5vcmc+CkZpeGVzOiAyMjJlODNkMmUwYWUgKCJ0Y3A6IHN3aXRjaCB0Y3BfZmFz dG9wZW4ga2V5IGdlbmVyYXRpb24gdG8gbmV0X2dldF9yYW5kb21fb25jZSIpClNpZ25lZC1vZmYt Ynk6IENocmlzdG9waCBQYWFzY2ggPGNwYWFzY2hAYXBwbGUuY29tPgpBY2tlZC1ieTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvYWZfaW5ldC5jICAgICAgfCAy ICsrCiBuZXQvaXB2NC90Y3AuYyAgICAgICAgICB8IDcgKysrKystLQogbmV0L2lwdjQvdGNwX2Zh c3RvcGVuLmMgfCAyIC0tCiAzIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9hZl9pbmV0LmMgYi9uZXQvaXB2NC9hZl9p bmV0LmMKaW5kZXggZDJlNDliYS4uNjFlZGM0OSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvYWZfaW5l dC5jCisrKyBiL25ldC9pcHY0L2FmX2luZXQuYwpAQCAtMjI4LDYgKzIyOCw4IEBAIGludCBpbmV0 X2xpc3RlbihzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgYmFja2xvZykKIAkJCQllcnIgPSAwOwog CQkJaWYgKGVycikKIAkJCQlnb3RvIG91dDsKKworCQkJdGNwX2Zhc3RvcGVuX2luaXRfa2V5X29u Y2UodHJ1ZSk7CiAJCX0KIAkJZXJyID0gaW5ldF9jc2tfbGlzdGVuX3N0YXJ0KHNrLCBiYWNrbG9n KTsKIAkJaWYgKGVycikKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNw LmMKaW5kZXggOTk1YTIyNS4uZDAzYTM0NCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMKKysr IGIvbmV0L2lwdjQvdGNwLmMKQEAgLTI1NDEsMTAgKzI1NDEsMTMgQEAgc3RhdGljIGludCBkb190 Y3Bfc2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwKIAogCWNhc2UgVENQX0ZB U1RPUEVOOgogCQlpZiAodmFsID49IDAgJiYgKCgxIDw8IHNrLT5za19zdGF0ZSkgJiAoVENQRl9D TE9TRSB8Ci0JCSAgICBUQ1BGX0xJU1RFTikpKQorCQkgICAgVENQRl9MSVNURU4pKSkgeworCQkJ dGNwX2Zhc3RvcGVuX2luaXRfa2V5X29uY2UodHJ1ZSk7CisKIAkJCWVyciA9IGZhc3RvcGVuX2lu aXRfcXVldWUoc2ssIHZhbCk7Ci0JCWVsc2UKKwkJfSBlbHNlIHsKIAkJCWVyciA9IC1FSU5WQUw7 CisJCX0KIAkJYnJlYWs7CiAJY2FzZSBUQ1BfVElNRVNUQU1QOgogCQlpZiAoIXRwLT5yZXBhaXIp CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfZmFzdG9wZW4uYyBiL25ldC9pcHY0L3RjcF9mYXN0 b3Blbi5jCmluZGV4IGVhODJmZDQuLjljMzcxODEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9m YXN0b3Blbi5jCisrKyBiL25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jCkBAIC03OCw4ICs3OCw2IEBA IHN0YXRpYyBib29sIF9fdGNwX2Zhc3RvcGVuX2Nvb2tpZV9nZW4oY29uc3Qgdm9pZCAqcGF0aCwK IAlzdHJ1Y3QgdGNwX2Zhc3RvcGVuX2NvbnRleHQgKmN0eDsKIAlib29sIG9rID0gZmFsc2U7CiAK LQl0Y3BfZmFzdG9wZW5faW5pdF9rZXlfb25jZSh0cnVlKTsKLQogCXJjdV9yZWFkX2xvY2soKTsK IAljdHggPSByY3VfZGVyZWZlcmVuY2UodGNwX2Zhc3RvcGVuX2N0eCk7CiAJaWYgKGN0eCkgewot LSAKMi4xLjAKCgpGcm9tIDYwMjU1MzYwNjc0NmFkNzY2ZjBkOTFhMzI4OTBlZTBiNDdlZGRlZmEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5i Zz4KRGF0ZTogVHVlLCAyMyBKdW4gMjAxNSAwODozNDozOSArMDMwMApTdWJqZWN0OiBbUEFUQ0gg MTAvMjFdIGlwOiByZXBvcnQgdGhlIG9yaWdpbmFsIGFkZHJlc3Mgb2YgSUNNUCBtZXNzYWdlcwoK WyBVcHN0cmVhbSBjb21taXQgMzRiOTlkZjRlNjI1NmRkYWZiNjYzYzZkZTA3MTFkY2VjZWRkZmUw ZSBdCgpJQ01QIG1lc3NhZ2VzIGNhbiB0cmlnZ2VyIElDTVAgYW5kIGxvY2FsIGVycm9ycy4gSW4g dGhpcyBjYXNlCnNlcnItPnBvcnQgaXMgMCBhbmQgc3RhcnRpbmcgZnJvbSBMaW51eCA0LjAgd2Ug ZG8gbm90IHJldHVybgp0aGUgb3JpZ2luYWwgdGFyZ2V0IGFkZHJlc3MgdG8gdGhlIGVycm9yIHF1 ZXVlIHJlYWRlcnMuCkFkZCBmdW5jdGlvbiB0byBkZWZpbmUgd2hpY2ggZXJyb3JzIHByb3ZpZGUg YWRkcl9vZmZzZXQuCldpdGggdGhpcyBmaXggbXkgcGluZyBjb21tYW5kIGlzIG5vdCBzaWxlbnQg YW55bW9yZS4KCkZpeGVzOiBjMjQ3ZjA1MzRjYzUgKCJpcDogZml4IGVycm9yIHF1ZXVlIGVtcHR5 IHNrYiBoYW5kbGluZyIpClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5i Zz4KQWNrZWQtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L2lwX3NvY2tnbHVlLmMgfCAxMSArKysrKysrKysrLQogbmV0L2lwdjYvZGF0YWdyYW0uYyAg ICB8IDEyICsrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX3NvY2tnbHVlLmMgYi9uZXQv aXB2NC9pcF9zb2NrZ2x1ZS5jCmluZGV4IDVjZDk5MjcuLmQ5ZThmZjMgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L2lwX3NvY2tnbHVlLmMKKysrIGIvbmV0L2lwdjQvaXBfc29ja2dsdWUuYwpAQCAtNDMy LDYgKzQzMiwxNSBAQCB2b2lkIGlwX2xvY2FsX2Vycm9yKHN0cnVjdCBzb2NrICpzaywgaW50IGVy ciwgX19iZTMyIGRhZGRyLCBfX2JlMTYgcG9ydCwgdTMyIGluZgogCQlrZnJlZV9za2Ioc2tiKTsK IH0KIAorLyogRm9yIHNvbWUgZXJyb3JzIHdlIGhhdmUgdmFsaWQgYWRkcl9vZmZzZXQgZXZlbiB3 aXRoIHplcm8gcGF5bG9hZCBhbmQKKyAqIHplcm8gcG9ydC4gQWxzbywgYWRkcl9vZmZzZXQgc2hv dWxkIGJlIHN1cHBvcnRlZCBpZiBwb3J0IGlzIHNldC4KKyAqLworc3RhdGljIGlubGluZSBib29s IGlwdjRfZGF0YWdyYW1fc3VwcG9ydF9hZGRyKHN0cnVjdCBzb2NrX2V4dGVycl9za2IgKnNlcnIp Cit7CisJcmV0dXJuIHNlcnItPmVlLmVlX29yaWdpbiA9PSBTT19FRV9PUklHSU5fSUNNUCB8fAor CSAgICAgICBzZXJyLT5lZS5lZV9vcmlnaW4gPT0gU09fRUVfT1JJR0lOX0xPQ0FMIHx8IHNlcnIt PnBvcnQ7Cit9CisKIC8qIElQdjQgc3VwcG9ydHMgY21zZyBvbiBhbGwgaW1jcCBlcnJvcnMgYW5k IHNvbWUgdGltZXN0YW1wcwogICoKICAqIFRpbWVzdGFtcCBjb2RlIHBhdGhzIGRvIG5vdCBpbml0 aWFsaXplIHRoZSBmaWVsZHMgZXhwZWN0ZWQgYnkgY21zZzoKQEAgLTQ5OCw3ICs1MDcsNyBAQCBp bnQgaXBfcmVjdl9lcnJvcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50 IGxlbiwgaW50ICphZGRyX2xlbikKIAogCXNlcnIgPSBTS0JfRVhUX0VSUihza2IpOwogCi0JaWYg KHNpbiAmJiBzZXJyLT5wb3J0KSB7CisJaWYgKHNpbiAmJiBpcHY0X2RhdGFncmFtX3N1cHBvcnRf YWRkcihzZXJyKSkgewogCQlzaW4tPnNpbl9mYW1pbHkgPSBBRl9JTkVUOwogCQlzaW4tPnNpbl9h ZGRyLnNfYWRkciA9ICooX19iZTMyICopKHNrYl9uZXR3b3JrX2hlYWRlcihza2IpICsKIAkJCQkJ CSAgIHNlcnItPmFkZHJfb2Zmc2V0KTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2RhdGFncmFtLmMg Yi9uZXQvaXB2Ni9kYXRhZ3JhbS5jCmluZGV4IGFjZThkYWMuLmQxNzRiOTEgMTAwNjQ0Ci0tLSBh L25ldC9pcHY2L2RhdGFncmFtLmMKKysrIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwpAQCAtMzI1LDYg KzMyNSwxNiBAQCB2b2lkIGlwdjZfbG9jYWxfcnhwbXR1KHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IGZsb3dpNiAqZmw2LCB1MzIgbXR1KQogCWtmcmVlX3NrYihza2IpOwogfQogCisvKiBGb3Igc29t ZSBlcnJvcnMgd2UgaGF2ZSB2YWxpZCBhZGRyX29mZnNldCBldmVuIHdpdGggemVybyBwYXlsb2Fk IGFuZAorICogemVybyBwb3J0LiBBbHNvLCBhZGRyX29mZnNldCBzaG91bGQgYmUgc3VwcG9ydGVk IGlmIHBvcnQgaXMgc2V0LgorICovCitzdGF0aWMgaW5saW5lIGJvb2wgaXB2Nl9kYXRhZ3JhbV9z dXBwb3J0X2FkZHIoc3RydWN0IHNvY2tfZXh0ZXJyX3NrYiAqc2VycikKK3sKKwlyZXR1cm4gc2Vy ci0+ZWUuZWVfb3JpZ2luID09IFNPX0VFX09SSUdJTl9JQ01QNiB8fAorCSAgICAgICBzZXJyLT5l ZS5lZV9vcmlnaW4gPT0gU09fRUVfT1JJR0lOX0lDTVAgfHwKKwkgICAgICAgc2Vyci0+ZWUuZWVf b3JpZ2luID09IFNPX0VFX09SSUdJTl9MT0NBTCB8fCBzZXJyLT5wb3J0OworfQorCiAvKiBJUHY2 IHN1cHBvcnRzIGNtc2cgb24gYWxsIG9yaWdpbnMgYXNpZGUgZnJvbSBTT19FRV9PUklHSU5fTE9D QUwuCiAgKgogICogQXQgb25lIHBvaW50LCBleGNsdWRpbmcgbG9jYWwgZXJyb3JzIHdhcyBhIHF1 aWNrIHRlc3QgdG8gaWRlbnRpZnkgaWNtcC9pY21wNgpAQCAtMzg5LDcgKzM5OSw3IEBAIGludCBp cHY2X3JlY3ZfZXJyb3Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIGludCBs ZW4sIGludCAqYWRkcl9sZW4pCiAKIAlzZXJyID0gU0tCX0VYVF9FUlIoc2tiKTsKIAotCWlmIChz aW4gJiYgc2Vyci0+cG9ydCkgeworCWlmIChzaW4gJiYgaXB2Nl9kYXRhZ3JhbV9zdXBwb3J0X2Fk ZHIoc2VycikpIHsKIAkJY29uc3QgdW5zaWduZWQgY2hhciAqbmggPSBza2JfbmV0d29ya19oZWFk ZXIoc2tiKTsKIAkJc2luLT5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OwogCQlzaW4tPnNpbjZfZmxv d2luZm8gPSAwOwotLSAKMi4xLjAKCgpGcm9tIDRiMGZkNTAzOTFmZDBhZDY4NTc5MWFjODVjM2U2 MzU2NDI1Y2FjOGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyYW4gQmVuIEVsaXNo YSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNSBKdW4gMjAxNSAxMToyOTo0MSAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjFdIG5ldC9tbHg0X2VuOiBSZWxlYXNlIFRYIFFQIHdo ZW4gZGVzdHJveWluZyBUWCByaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCAwZWIwODUxNGZkYmRjZDE2 ZmQ2ODcwNjgwY2Q2MzhmMjAzNjYyZTlkIF0KClRYIHJpbmcgUVAgd2Fzbid0IHJlbGVhc2VkIGF0 IG1seDRfZW5fZGVzdHJveV90eF9yaW5nLiBJbnN0ZWFkLCB0aGUgY29kZQp1c2VkIHRoZSBkZXBy ZWNhdGVkIGJhc2VfdHhfcXBuIGZpZWxkLiBNb3ZlIFRYIFFQIHJlbGVhc2UgdG8KbWx4NF9lbl9k ZXN0cm95X3R4X3JpbmcgYW5kIHJlbW92ZSB0aGUgYmFzZV90eF9xcG4gZmllbGQuCgpGaXhlczog ZGRhZTAzNDlmZGI3ICgnbmV0L21seDQ6IENoYW5nZSBRUCBhbGxvY2F0aW9uIHNjaGVtZScpClNp Z25lZC1vZmYtYnk6IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KU2lnbmVk LW9mZi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYyB8IDQgLS0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5jICAgICB8IDEgKwogZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmggICB8IDEgLQogMyBmaWxlcyBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX25ldGRldi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYwppbmRleCAyZjEzMjRiLi5mMzBjMzIyIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX25ldGRldi5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fbmV0ZGV2LmMKQEAgLTE5NzEs MTAgKzE5NzEsNiBAQCB2b2lkIG1seDRfZW5fZnJlZV9yZXNvdXJjZXMoc3RydWN0IG1seDRfZW5f cHJpdiAqcHJpdikKIAkJCW1seDRfZW5fZGVzdHJveV9jcShwcml2LCAmcHJpdi0+cnhfY3FbaV0p OwogCX0KIAotCWlmIChwcml2LT5iYXNlX3R4X3FwbikgewotCQltbHg0X3FwX3JlbGVhc2VfcmFu Z2UocHJpdi0+bWRldi0+ZGV2LCBwcml2LT5iYXNlX3R4X3FwbiwgcHJpdi0+dHhfcmluZ19udW0p OwotCQlwcml2LT5iYXNlX3R4X3FwbiA9IDA7Ci0JfQogfQogCiBpbnQgbWx4NF9lbl9hbGxvY19y ZXNvdXJjZXMoc3RydWN0IG1seDRfZW5fcHJpdiAqcHJpdikKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDQvZW5fdHguYwppbmRleCA4YzIzNGVjLi45OTg2MTViIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5jCkBAIC0xODAsNiArMTgwLDcgQEAg dm9pZCBtbHg0X2VuX2Rlc3Ryb3lfdHhfcmluZyhzdHJ1Y3QgbWx4NF9lbl9wcml2ICpwcml2LAog CQltbHg0X2JmX2ZyZWUobWRldi0+ZGV2LCAmcmluZy0+YmYpOwogCW1seDRfcXBfcmVtb3ZlKG1k ZXYtPmRldiwgJnJpbmctPnFwKTsKIAltbHg0X3FwX2ZyZWUobWRldi0+ZGV2LCAmcmluZy0+cXAp OworCW1seDRfcXBfcmVsZWFzZV9yYW5nZShwcml2LT5tZGV2LT5kZXYsIHJpbmctPnFwbiwgMSk7 CiAJbWx4NF9lbl91bm1hcF9idWZmZXIoJnJpbmctPndxcmVzLmJ1Zik7CiAJbWx4NF9mcmVlX2h3 cV9yZXMobWRldi0+ZGV2LCAmcmluZy0+d3FyZXMsIHJpbmctPmJ1Zl9zaXplKTsKIAlrZnJlZShy aW5nLT5ib3VuY2VfYnVmKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDQvbWx4NF9lbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9t bHg0X2VuLmgKaW5kZXggODY4N2M4ZC4uYzNlNGRmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmgKQEAgLTYwMSw3ICs2MDEsNiBAQCBzdHJ1Y3QgbWx4 NF9lbl9wcml2IHsKIAlpbnQgdmlkc1sxMjhdOwogCWJvb2wgd29sOwogCXN0cnVjdCBkZXZpY2Ug KmRkZXY7Ci0JaW50IGJhc2VfdHhfcXBuOwogCXN0cnVjdCBobGlzdF9oZWFkIG1hY19oYXNoW01M WDRfRU5fTUFDX0hBU0hfU0laRV07CiAJc3RydWN0IGh3dHN0YW1wX2NvbmZpZyBod3RzdGFtcF9j b25maWc7CiAKLS0gCjIuMS4wCgoKRnJvbSA3ODE1NTlhMjNhNTc3NzZmMGFjNGMyMWZlM2ZlZTA2 NzAyODU4NjFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2hhbWF5IDxpZG9z QG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNSBKdW4gMjAxNSAxMToyOTo0MiArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMTIvMjFdIG5ldC9tbHg0X2VuOiBXYWtlIFRYIHF1ZXVlcyBvbmx5IHdoZW4g dGhlcmUncyBlbm91Z2gKIHJvb20KClsgVXBzdHJlYW0gY29tbWl0IDQ4OGE5YjQ4ZTM5OGIxNTc3 MDM3NjZlMmNkOTFlYTQ1YWM2OTk3YzUgXQoKSW5kaWNhdGlvbiBvZiBhIHNpbmdsZSBjb21wbGV0 ZWQgcGFja2V0LCBtYXJrZWQgYnkgdHhiYnNfc2tpcHBlZApiZWluZyBiaWdnZXIgdGhlbiB6ZXJv LCBpbiBub3QgZW5vdWdoIGluIG9yZGVyIHRvIHdha2UgdXAgYQpzdG9wcGVkIFRYIHF1ZXVlLiBU aGUgY29tcGxldGVkIHBhY2tldCBtYXkgY29udGFpbiBhIHNpbmdsZSBUWEJCLAp3aGlsZSBuZXh0 IHBhY2tldCB0byBiZSBzZW50IChhZnRlciB0aGUgd2FrZSB1cCkgbWF5IGhhdmUgbXVsdGlwbGUK VFhCQnMgKExTTy9UU08gcGFja2V0cyBmb3IgZXhhbXBsZSksIGNhdXNpbmcgb3ZlcmZsb3cgaW4g cXVldWUgZm9sbG93ZWQKYnkgV1FFIGNvcnJ1cHRpb24gYW5kIFRYIHF1ZXVlIHRpbWVvdXQuCklu c3RlYWQsIHdha2UgdGhlIHN0b3BwZWQgcXVldWUgb25seSB3aGVuIHRoZXJlJ3MgZW5vdWdoIHJv b20gZm9yIHRoZQp3b3JzdCBjYXNlIChtYXhpbXVtIHNpemVkIFdRRSkgcGFja2V0IHRoYXQgd2Ug c2hvdWxkIG5lZWQgdG8gaGFuZGxlIGFmdGVyCnRoZSBxdWV1ZSBpcyBvcGVuZWQgYWdhaW4uCgpB bHNvIGNyZWF0ZWQgYW4gaGVscGVyIHJvdXRpbmUgLSBtbHg0X2VuX2lzX3R4X3JpbmdfZnVsbCwg d2hpY2ggY2hlY2tzCmlmIHRoZSBjdXJyZW50IFRYIHJpbmcgaXMgZnVsbCBvciBub3QuIEl0IHBy b3ZpZGVzIGJldHRlciBjb2RlIHJlYWRhYmlsaXR5CmFuZCByZW1vdmVzIGNvZGUgZHVwbGljYXRp b24uCgpTaWduZWQtb2ZmLWJ5OiBJZG8gU2hhbWF5IDxpZG9zQG1lbGxhbm94LmNvbT4KU2lnbmVk LW9mZi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5jICAgfCAxOSArKysrKysrKysrKy0tLS0tLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaCB8ICAxICsKIDIg ZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMKaW5kZXggOTk4NjE1Yi4uMzVkZDg4 NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fdHguYwpAQCAtNjYs NiArNjYsNyBAQCBpbnQgbWx4NF9lbl9jcmVhdGVfdHhfcmluZyhzdHJ1Y3QgbWx4NF9lbl9wcml2 ICpwcml2LAogCXJpbmctPnNpemUgPSBzaXplOwogCXJpbmctPnNpemVfbWFzayA9IHNpemUgLSAx OwogCXJpbmctPnN0cmlkZSA9IHN0cmlkZTsKKwlyaW5nLT5mdWxsX3NpemUgPSByaW5nLT5zaXpl IC0gSEVBRFJPT00gLSBNQVhfREVTQ19UWEJCUzsKIAogCXRtcCA9IHNpemUgKiBzaXplb2Yoc3Ry dWN0IG1seDRfZW5fdHhfaW5mbyk7CiAJcmluZy0+dHhfaW5mbyA9IGttYWxsb2Nfbm9kZSh0bXAs IEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4sIG5vZGUpOwpAQCAtMjMyLDYgKzIzMywxMSBAQCB2 b2lkIG1seDRfZW5fZGVhY3RpdmF0ZV90eF9yaW5nKHN0cnVjdCBtbHg0X2VuX3ByaXYgKnByaXYs CiAJCSAgICAgICBNTFg0X1FQX1NUQVRFX1JTVCwgTlVMTCwgMCwgMCwgJnJpbmctPnFwKTsKIH0K IAorc3RhdGljIGlubGluZSBib29sIG1seDRfZW5faXNfdHhfcmluZ19mdWxsKHN0cnVjdCBtbHg0 X2VuX3R4X3JpbmcgKnJpbmcpCit7CisJcmV0dXJuIHJpbmctPnByb2QgLSByaW5nLT5jb25zID4g cmluZy0+ZnVsbF9zaXplOworfQorCiBzdGF0aWMgdm9pZCBtbHg0X2VuX3N0YW1wX3dxZShzdHJ1 Y3QgbWx4NF9lbl9wcml2ICpwcml2LAogCQkJICAgICAgc3RydWN0IG1seDRfZW5fdHhfcmluZyAq cmluZywgaW50IGluZGV4LAogCQkJICAgICAgdTggb3duZXIpCkBAIC00NzQsMTEgKzQ4MCwxMCBA QCBzdGF0aWMgYm9vbCBtbHg0X2VuX3Byb2Nlc3NfdHhfY3Eoc3RydWN0IG5ldF9kZXZpY2UgKmRl diwKIAogCW5ldGRldl90eF9jb21wbGV0ZWRfcXVldWUocmluZy0+dHhfcXVldWUsIHBhY2tldHMs IGJ5dGVzKTsKIAotCS8qCi0JICogV2FrZXVwIFR4IHF1ZXVlIGlmIHRoaXMgc3RvcHBlZCwgYW5k IGF0IGxlYXN0IDEgcGFja2V0Ci0JICogd2FzIGNvbXBsZXRlZAorCS8qIFdha2V1cCBUeCBxdWV1 ZSBpZiB0aGlzIHN0b3BwZWQsIGFuZCByaW5nIGlzIG5vdCBmdWxsLgogCSAqLwotCWlmIChuZXRp Zl90eF9xdWV1ZV9zdG9wcGVkKHJpbmctPnR4X3F1ZXVlKSAmJiB0eGJic19za2lwcGVkID4gMCkg eworCWlmIChuZXRpZl90eF9xdWV1ZV9zdG9wcGVkKHJpbmctPnR4X3F1ZXVlKSAmJgorCSAgICAh bWx4NF9lbl9pc190eF9yaW5nX2Z1bGwocmluZykpIHsKIAkJbmV0aWZfdHhfd2FrZV9xdWV1ZShy aW5nLT50eF9xdWV1ZSk7CiAJCXJpbmctPndha2VfcXVldWUrKzsKIAl9CkBAIC05MjIsOCArOTI3 LDcgQEAgbmV0ZGV2X3R4X3QgbWx4NF9lbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiAJc2tiX3R4X3RpbWVzdGFtcChza2IpOwogCiAJLyogQ2hlY2sg YXZhaWxhYmxlIFRYQkJzIEFuZCAySyBzcGFyZSBmb3IgcHJlZmV0Y2ggKi8KLQlzdG9wX3F1ZXVl ID0gKGludCkocmluZy0+cHJvZCAtIHJpbmdfY29ucykgPgotCQkgICAgICByaW5nLT5zaXplIC0g SEVBRFJPT00gLSBNQVhfREVTQ19UWEJCUzsKKwlzdG9wX3F1ZXVlID0gbWx4NF9lbl9pc190eF9y aW5nX2Z1bGwocmluZyk7CiAJaWYgKHVubGlrZWx5KHN0b3BfcXVldWUpKSB7CiAJCW5ldGlmX3R4 X3N0b3BfcXVldWUocmluZy0+dHhfcXVldWUpOwogCQlyaW5nLT5xdWV1ZV9zdG9wcGVkKys7CkBA IC05OTIsOCArOTk2LDcgQEAgbmV0ZGV2X3R4X3QgbWx4NF9lbl94bWl0KHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCXNtcF9ybWIoKTsKIAogCQlyaW5nX2Nv bnMgPSBBQ0NFU1NfT05DRShyaW5nLT5jb25zKTsKLQkJaWYgKHVubGlrZWx5KCgoaW50KShyaW5n LT5wcm9kIC0gcmluZ19jb25zKSkgPD0KLQkJCSAgICAgcmluZy0+c2l6ZSAtIEhFQURST09NIC0g TUFYX0RFU0NfVFhCQlMpKSB7CisJCWlmICh1bmxpa2VseSghbWx4NF9lbl9pc190eF9yaW5nX2Z1 bGwocmluZykpKSB7CiAJCQluZXRpZl90eF93YWtlX3F1ZXVlKHJpbmctPnR4X3F1ZXVlKTsKIAkJ CXJpbmctPndha2VfcXVldWUrKzsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg0L21seDRfZW4uaAppbmRleCBjM2U0ZGZkLi4wYmYwZmRkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaAorKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaApAQCAtMjgwLDYgKzI4MCw3IEBAIHN0 cnVjdCBtbHg0X2VuX3R4X3JpbmcgewogCXUzMgkJCXNpemU7IC8qIG51bWJlciBvZiBUWEJCcyAq LwogCXUzMgkJCXNpemVfbWFzazsKIAl1MTYJCQlzdHJpZGU7CisJdTMyCQkJZnVsbF9zaXplOwog CXUxNgkJCWNxbjsJLyogaW5kZXggb2YgcG9ydCBDUSBhc3NvY2lhdGVkIHdpdGggdGhpcyByaW5n ICovCiAJdTMyCQkJYnVmX3NpemU7CiAJX19iZTMyCQkJZG9vcmJlbGxfcXBuOwotLSAKMi4xLjAK CgpGcm9tIGIyZDFkMGNiODQ3ZjA1ZTYyYmZlMjcwMjRhNWM4ODFiODkwOTBiNjkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTaGFtYXkgPGlkb3NAbWVsbGFub3guY29tPgpEYXRl OiBUaHUsIDI1IEp1biAyMDE1IDExOjI5OjQzICswMzAwClN1YmplY3Q6IFtQQVRDSCAxMy8yMV0g bmV0L21seDRfZW46IEZpeCB3cm9uZyBjc3VtIGNvbXBsZXRlIHJlcG9ydCB3aGVuIHJ4dmxhbgog b2ZmbG9hZCBpcyBkaXNhYmxlZAoKWyBVcHN0cmVhbSBjb21taXQgNzlhMjU4NTI2Y2UxMDUxY2I5 Njg0MDE4YzI1YTg5ZDUxYWMyMWJlOCBdCgpUaGUgY2hlY2tfY3N1bSgpIGZ1bmN0aW9uIHJlbGll ZCBvbiBod3RzdGFtcF9yeF9maWx0ZXIgdG8ga25vdyBpZiByeHZsYW4Kb2ZmbG9hZCBpcyBkaXNh YmxlZC4gVGhpcyBpcyB3cm9uZyBzaW5jZSByeHZsYW4gb2ZmbG9hZCBjYW4gYmUgc3dpdGNoZWQK b24vb2ZmIHJlZ2FyZGxlc3Mgb2YgaHd0c3RhbXBfcnhfZmlsdGVyLgoKQWxzbyBtb3ZlZCBjaGVj a19jc3VtIHRvIHF1ZXJ5IENRRSBpbmZvcm1hdGlvbiB0byBpZGVudGlmeSBWTEFOIHBhY2tldHMK YW5kIHJlbW92ZWQgdGhlIGNoZWNrIG9mIElQIHBhY2tldHMsIHNpbmNlIGl0IGhhcyBiZWVuIHZh bGlkYXRlZCBiZWZvcmUuCgpGaXhlczogZjhjNjQ1NWJiMDRiICgnbmV0L21seDRfZW46IEV4dGVu ZCBjaGVja3N1bSBvZmZsb2FkaW5nIGJ5IENIRUNLU1VNIENPTVBMRVRFJykKU2lnbmVkLW9mZi1i eTogSWRvIFNoYW1heSA8aWRvc0BtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IE9yIEdlcmxp dHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDQvZW5fcnguYyB8IDE3ICsrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBp bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg0L2VuX3J4LmMKaW5kZXggMDVlYzVlMS4uMzQ3OGM4NyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYwpAQCAtNzIzLDcgKzcyMyw3IEBAIHN0YXRp YyBpbnQgZ2V0X2ZpeGVkX2lwdjZfY3N1bShfX3dzdW0gaHdfY2hlY2tzdW0sIHN0cnVjdCBza19i dWZmICpza2IsCiB9CiAjZW5kaWYKIHN0YXRpYyBpbnQgY2hlY2tfY3N1bShzdHJ1Y3QgbWx4NF9j cWUgKmNxZSwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdm9pZCAqdmEsCi0JCSAgICAgIGludCBod3Rz dGFtcF9yeF9maWx0ZXIpCisJCSAgICAgIG5ldGRldl9mZWF0dXJlc190IGRldl9mZWF0dXJlcykK IHsKIAlfX3dzdW0gaHdfY2hlY2tzdW0gPSAwOwogCkBAIC03MzEsMTQgKzczMSw4IEBAIHN0YXRp YyBpbnQgY2hlY2tfY3N1bShzdHJ1Y3QgbWx4NF9jcWUgKmNxZSwgc3RydWN0IHNrX2J1ZmYgKnNr Yiwgdm9pZCAqdmEsCiAKIAlod19jaGVja3N1bSA9IGNzdW1fdW5mb2xkKChfX2ZvcmNlIF9fc3Vt MTYpY3FlLT5jaGVja3N1bSk7CiAKLQlpZiAoKChzdHJ1Y3QgZXRoaGRyICopdmEpLT5oX3Byb3Rv ID09IGh0b25zKEVUSF9QXzgwMjFRKSAmJgotCSAgICBod3RzdGFtcF9yeF9maWx0ZXIgIT0gSFdU U1RBTVBfRklMVEVSX05PTkUpIHsKLQkJLyogbmV4dCBwcm90b2NvbCBub24gSVB2NCBvciBJUHY2 ICovCi0JCWlmICgoKHN0cnVjdCB2bGFuX2hkciAqKWhkciktPmhfdmxhbl9lbmNhcHN1bGF0ZWRf cHJvdG8KLQkJICAgICE9IGh0b25zKEVUSF9QX0lQKSAmJgotCQkgICAgKChzdHJ1Y3Qgdmxhbl9o ZHIgKiloZHIpLT5oX3ZsYW5fZW5jYXBzdWxhdGVkX3Byb3RvCi0JCSAgICAhPSBodG9ucyhFVEhf UF9JUFY2KSkKLQkJCXJldHVybiAtMTsKKwlpZiAoY3FlLT52bGFuX215X3FwbiAmIGNwdV90b19i ZTMyKE1MWDRfQ1FFX1ZMQU5fUFJFU0VOVF9NQVNLKSAmJgorCSAgICAhKGRldl9mZWF0dXJlcyAm IE5FVElGX0ZfSFdfVkxBTl9DVEFHX1JYKSkgewogCQlod19jaGVja3N1bSA9IGdldF9maXhlZF92 bGFuX2NzdW0oaHdfY2hlY2tzdW0sIGhkcik7CiAJCWhkciArPSBzaXplb2Yoc3RydWN0IHZsYW5f aGRyKTsKIAl9CkBAIC05MDEsNyArODk1LDggQEAgaW50IG1seDRfZW5fcHJvY2Vzc19yeF9jcShz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbWx4NF9lbl9jcSAqY3EsIGludCBidWQKIAog CQkJaWYgKGlwX3N1bW1lZCA9PSBDSEVDS1NVTV9DT01QTEVURSkgewogCQkJCXZvaWQgKnZhID0g c2tiX2ZyYWdfYWRkcmVzcyhza2Jfc2hpbmZvKGdyb19za2IpLT5mcmFncyk7Ci0JCQkJaWYgKGNo ZWNrX2NzdW0oY3FlLCBncm9fc2tiLCB2YSwgcmluZy0+aHd0c3RhbXBfcnhfZmlsdGVyKSkgewor CQkJCWlmIChjaGVja19jc3VtKGNxZSwgZ3JvX3NrYiwgdmEsCisJCQkJCSAgICAgICBkZXYtPmZl YXR1cmVzKSkgewogCQkJCQlpcF9zdW1tZWQgPSBDSEVDS1NVTV9OT05FOwogCQkJCQlyaW5nLT5j c3VtX25vbmUrKzsKIAkJCQkJcmluZy0+Y3N1bV9jb21wbGV0ZS0tOwpAQCAtOTU2LDcgKzk1MSw3 IEBAIGludCBtbHg0X2VuX3Byb2Nlc3NfcnhfY3Eoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3Ry dWN0IG1seDRfZW5fY3EgKmNxLCBpbnQgYnVkCiAJCX0KIAogCQlpZiAoaXBfc3VtbWVkID09IENI RUNLU1VNX0NPTVBMRVRFKSB7Ci0JCQlpZiAoY2hlY2tfY3N1bShjcWUsIHNrYiwgc2tiLT5kYXRh LCByaW5nLT5od3RzdGFtcF9yeF9maWx0ZXIpKSB7CisJCQlpZiAoY2hlY2tfY3N1bShjcWUsIHNr Yiwgc2tiLT5kYXRhLCBkZXYtPmZlYXR1cmVzKSkgewogCQkJCWlwX3N1bW1lZCA9IENIRUNLU1VN X05PTkU7CiAJCQkJcmluZy0+Y3N1bV9jb21wbGV0ZS0tOwogCQkJCXJpbmctPmNzdW1fbm9uZSsr OwotLSAKMi4xLjAKCgpGcm9tIDc2MzA3OGZhNDM2YzlmNmE0MzgwMTQ5OWE3MmQ4YjUyMzNiNTI5 MTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1l bGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNSBKdW4gMjAxNSAxMToyOTo0NCArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMTQvMjFdIG1seDQ6IERpc2FibGUgSEEgZm9yIFNSSU9WIFBGIFJvQ0UgZGV2aWNl cwoKWyBVcHN0cmVhbSBjb21taXQgNzI1NGFjZmZlZWVjM2MwYTc1YjljNTM2NGMyOWE2ZWIwMDAx NDkzMCBdCgpXaGVuIGluIEhBIG1vZGUsIHRoZSBkcml2ZXIgZXhwb3NlcyBhbiBJQiAoUm9DRSkg ZGV2aWNlIGluc3RhbmNlIHdpdGggb25seQpvbmUgcG9ydC4gVW5kZXIgU1JJT1YsIHRoZSBleGlz dGluZyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGdvIHdlbGwgd2l0aAp0aGUgUEYgUm9DRSBkcml2 ZXIncyByb2xlIG9mIFNwZWNpYWwgUVBzIFBhcmEtVmlydHVhbGl6YXRpb24sIGV0Yy4KCkFzIHN1 Y2gsIGRpc2FibGUgSEEgZm9yIHRoZSBtbHg0IFBGIFJvQ0UgZGV2aWNlIGluIFNSSU9WIG1vZGUu CgpGaXhlczogYTU3NTAwOTAzMDkzICgnSUIvbWx4NDogQWRkIHBvcnQgYWdncmVnYXRpb24gc3Vw cG9ydCcpClNpZ25lZC1vZmYtYnk6IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvaW50Zi5jIHwgOCArKysrKysrLQog MSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvaW50Zi5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9pbnRmLmMKaW5kZXggNmZjZTU4Ny4uMGQ4MGFlZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9pbnRmLmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9pbnRmLmMKQEAgLTkzLDggKzkz LDE0IEBAIGludCBtbHg0X3JlZ2lzdGVyX2ludGVyZmFjZShzdHJ1Y3QgbWx4NF9pbnRlcmZhY2Ug KmludGYpCiAJbXV0ZXhfbG9jaygmaW50Zl9tdXRleCk7CiAKIAlsaXN0X2FkZF90YWlsKCZpbnRm LT5saXN0LCAmaW50Zl9saXN0KTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHByaXYsICZkZXZfbGlz dCwgZGV2X2xpc3QpCisJbGlzdF9mb3JfZWFjaF9lbnRyeShwcml2LCAmZGV2X2xpc3QsIGRldl9s aXN0KSB7CisJCWlmIChtbHg0X2lzX21mdW5jKCZwcml2LT5kZXYpICYmIChpbnRmLT5mbGFncyAm IE1MWDRfSU5URkZfQk9ORElORykpIHsKKwkJCW1seDRfZGJnKCZwcml2LT5kZXYsCisJCQkJICJT UklPViwgZGlzYWJsaW5nIEhBIG1vZGUgZm9yIGludGYgcHJvdG8gJWRcbiIsIGludGYtPnByb3Rv Y29sKTsKKwkJCWludGYtPmZsYWdzICY9IH5NTFg0X0lOVEZGX0JPTkRJTkc7CisJCX0KIAkJbWx4 NF9hZGRfZGV2aWNlKGludGYsIHByaXYpOworCX0KIAogCW11dGV4X3VubG9jaygmaW50Zl9tdXRl eCk7CiAKLS0gCjIuMS4wCgoKRnJvbSA4MmE5MTRhMjFkYTZlOTEwNzg0ZWRkYWU2ZjI2YTliMGY1 YWU5NDkwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNdWd1bnRoYW4gViBOIDxtdWd1 bnRoYW52bm1AdGkuY29tPgpEYXRlOiBUaHUsIDI1IEp1biAyMDE1IDIyOjIxOjAyICswNTMwClN1 YmplY3Q6IFtQQVRDSCAxNS8yMV0gbmV0OiBwaHk6IGZpeCBwaHkgbGluayB1cCB3aGVuIGxpbWl0 aW5nIHNwZWVkIHZpYQogZGV2aWNlIHRyZWUKClsgVXBzdHJlYW0gY29tbWl0IGViNjg2MjMxZmNl Mzc3MDI5OTc2MGYyNGZkY2Y1YWQwNDFmNDQxNTMgXQoKV2hlbiBsaW1pdGluZyBwaHkgbGluayBz cGVlZCB1c2luZyAibWF4LXNwZWVkIiB0byAxMDBtYnBzIG9yIGxlc3Mgb24gYQpnaWdhIGJpdCBw aHksIHBoeSBuZXZlciBjb21wbGV0ZXMgYXV0byBuZWdvdGlhdGlvbiBhbmQgcGh5IHN0YXRlCm1h Y2hpbmUgaXMgaGVsZCBpbiBQSFlfQU4uIEZpeGluZyB0aGlzIGlzc3VlIGJ5IGNvbXBhcmluZyB0 aGUgZ2lnYQpiaXQgYWR2ZXJ0aXNlIHRob3VnaCBwaHlkZXYtPnN1cHBvcnRlZCBkb2Vzbid0IGhh dmUgaXQgYnV0IHBoeSBoYXMKQk1TUl9FU1RBVEVOIHNldC4gU28gdGhhdCBhdXRvIG5lZ290aWF0 aW9uIGlzIHJlc3RhcnRlZCBhcyBvbGQgYW5kCm5ldyBhZHZlcnRpc2UgYXJlIGRpZmZlcmVudCBh bmQgbGluayBjb21lcyB1cCBmaW5lLgoKU2lnbmVkLW9mZi1ieTogTXVndW50aGFuIFYgTiA8bXVn dW50aGFudm5tQHRpLmNvbT4KUmV2aWV3ZWQtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVs bGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyB8IDUgKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2 aWNlLmMKaW5kZXggYmRmZTUxZi4uZDU1MWRmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5 L3BoeV9kZXZpY2UuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCkBAIC03OTYs MTAgKzc5NiwxMSBAQCBzdGF0aWMgaW50IGdlbnBoeV9jb25maWdfYWR2ZXJ0KHN0cnVjdCBwaHlf ZGV2aWNlICpwaHlkZXYpCiAJaWYgKHBoeWRldi0+c3VwcG9ydGVkICYgKFNVUFBPUlRFRF8xMDAw YmFzZVRfSGFsZiB8CiAJCQkJIFNVUFBPUlRFRF8xMDAwYmFzZVRfRnVsbCkpIHsKIAkJYWR2IHw9 IGV0aHRvb2xfYWR2X3RvX21paV9jdHJsMTAwMF90KGFkdmVydGlzZSk7Ci0JCWlmIChhZHYgIT0g b2xkYWR2KQotCQkJY2hhbmdlZCA9IDE7CiAJfQogCisJaWYgKGFkdiAhPSBvbGRhZHYpCisJCWNo YW5nZWQgPSAxOworCiAJZXJyID0gcGh5X3dyaXRlKHBoeWRldiwgTUlJX0NUUkwxMDAwLCBhZHYp OwogCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwotLSAKMi4xLjAKCgpGcm9tIDkzMWYyMjZj ODNjNmQ4MzZmNGU5OGFlN2IxYzUyMDliZWEzMmMxZjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAyNiBK dW4gMjAxNSAwNzozMjoyOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjFdIGJueDJ4OiBmaXgg bG9ja2RlcCBzcGxhdAoKWyBVcHN0cmVhbSBjb21taXQgZDUzYzY2YTViODA2OTg2MjBmN2M5YmEy MzcyZmZmNDAxN2U5ODdiOCBdCgpNaWNoZWwgcmVwb3J0ZWQgZm9sbG93aW5nIGxvY2tkZXAgc3Bs YXQKClsgICA0NC43MTgxMTddIElORk86IHRyeWluZyB0byByZWdpc3RlciBub24tc3RhdGljIGtl eS4KWyAgIDQ0LjcyMzA4MV0gdGhlIGNvZGUgaXMgZmluZSBidXQgbmVlZHMgbG9ja2RlcCBhbm5v dGF0aW9uLgpbICAgNDQuNzI4NTU5XSB0dXJuaW5nIG9mZiB0aGUgbG9ja2luZyBjb3JyZWN0bmVz cyB2YWxpZGF0b3IuClsgICA0NC43MzQwMzZdIENQVTogOCBQSUQ6IDU0ODMgQ29tbTogZXRodG9v bCBOb3QgdGFpbnRlZCA0LjEuMApbICAgNDQuNzcwMjg5XSBDYWxsIFRyYWNlOgpbICAgNDQuNzcy NzQxXSAgWzxmZmZmZmZmZjgxNmViMWNkPl0gZHVtcF9zdGFjaysweDRjLzB4NjUKWyAgIDQ0Ljc3 Nzg3OV0gIFs8ZmZmZmZmZmY4MTExZDkyMT5dID8gY29uc29sZV91bmxvY2srMHgxZjEvMHg1MTAK WyAgIDQ0Ljc4MzcwOF0gIFs8ZmZmZmZmZmY4MTExMjFmNT5dIF9fbG9ja19hY3F1aXJlKzB4MWQw NS8weDFmMTAKWyAgIDQ0Ljc4OTUzOF0gIFs8ZmZmZmZmZmY4MTExMzcwYT5dID8gbWFya19oZWxk X2xvY2tzKzB4NmEvMHg5MApbICAgNDQuNzk1Mjc2XSAgWzxmZmZmZmZmZjgxMTEzODM1Pl0gPyB0 cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIrMHgxMDUvMHgxZDAKWyAgIDQ0LjgwMTk2N10gIFs8ZmZm ZmZmZmY4MTExMzkwZD5dID8gdHJhY2VfaGFyZGlycXNfb24rMHhkLzB4MTAKWyAgIDQ0LjgwNzc5 M10gIFs8ZmZmZmZmZmY4MTEzMzBmYT5dID8gaHJ0aW1lcl90cnlfdG9fY2FuY2VsKzB4NGEvMHgy NTAKWyAgIDQ0LjgxNDE0Ml0gIFs8ZmZmZmZmZmY4MTExMmJhNj5dIGxvY2tfYWNxdWlyZSsweGI2 LzB4MjkwClsgICA0NC44MTk1MzddICBbPGZmZmZmZmZmODEwZDY2NzU+XSA/IGZsdXNoX3dvcmsr MHg1LzB4MjgwClsgICA0NC44MjQ4NDRdICBbPGZmZmZmZmZmODEwZDY2YWQ+XSBmbHVzaF93b3Jr KzB4M2QvMHgyODAKWyAgIDQ0LjgzMDA2MV0gIFs8ZmZmZmZmZmY4MTBkNjY3NT5dID8gZmx1c2hf d29yaysweDUvMHgyODAKWyAgIDQ0LjgzNTM2Nl0gIFs8ZmZmZmZmZmY4MTZmM2M0Mz5dID8gc2No ZWR1bGVfaHJ0aW1lb3V0X3JhbmdlKzB4MTMvMHgyMApbICAgNDQuODQxODg5XSAgWzxmZmZmZmZm ZjgxMTJlYzliPl0gPyB1c2xlZXBfcmFuZ2UrMHg0Yi8weDUwClsgICA0NC44NDczNjVdICBbPGZm ZmZmZmZmODExMTM3MGE+XSA/IG1hcmtfaGVsZF9sb2NrcysweDZhLzB4OTAKWyAgIDQ0Ljg1MzEw Ml0gIFs8ZmZmZmZmZmY4MTBkODU4NT5dID8gX19jYW5jZWxfd29ya190aW1lcisweDEwNS8weDFj MApbICAgNDQuODU5MzU5XSAgWzxmZmZmZmZmZjgxMTEzODM1Pl0gPyB0cmFjZV9oYXJkaXJxc19v bl9jYWxsZXIrMHgxMDUvMHgxZDAKWyAgIDQ0Ljg2NjA0NV0gIFs8ZmZmZmZmZmY4MTBkODUxZj5d IF9fY2FuY2VsX3dvcmtfdGltZXIrMHg5Zi8weDFjMApbICAgNDQuODcyMDQ4XSAgWzxmZmZmZmZm ZmEwMDEwOTgyPl0gPyBibngyeF9mdW5jX3N0b3ArMHg0Mi8weDkwIFtibngyeF0KWyAgIDQ0Ljg3 ODQ4MV0gIFs8ZmZmZmZmZmY4MTBkODY3MD5dIGNhbmNlbF93b3JrX3N5bmMrMHgxMC8weDIwClsg ICA0NC44ODQxMzRdICBbPGZmZmZmZmZmYTAwMjU5ZTU+XSBibngyeF9jaGlwX2NsZWFudXArMHgy NDUvMHg3MzAgW2JueDJ4XQpbICAgNDQuODkwODI5XSAgWzxmZmZmZmZmZjgxMTBjZTAyPl0gPyB1 cCsweDMyLzB4NTAKWyAgIDQ0Ljg5NTQzOV0gIFs8ZmZmZmZmZmY4MTEzMDZiNT5dID8gZGVsX3Rp bWVyX3N5bmMrMHg1LzB4ZDAKWyAgIDQ0LjkwMTAwNV0gIFs8ZmZmZmZmZmZhMDA1NTk2ZD5dIGJu eDJ4X25pY191bmxvYWQrMHgyMGQvMHg4ZTAgW2JueDJ4XQpbICAgNDQuOTA3NTI3XSAgWzxmZmZm ZmZmZjgxMWYxYWVmPl0gPyBtaWdodF9mYXVsdCsweDVmLzB4YjAKWyAgIDQ0LjkxMjkyMV0gIFs8 ZmZmZmZmZmZhMDA1ODUxYz5dIGJueDJ4X3JlbG9hZF9pZl9ydW5uaW5nKzB4MmMvMHg1MCBbYm54 MnhdClsgICA0NC45MTk4NzldICBbPGZmZmZmZmZmYTAwNWEzYzU+XSBibngyeF9zZXRfcmluZ3Bh cmFtKzB4MmI1LzB4NDYwIFtibngyeF0KWyAgIDQ0LjkyNjY2NF0gIFs8ZmZmZmZmZmY4MTVkNDk4 Yj5dIGRldl9ldGh0b29sKzB4NTViLzB4MWM0MApbICAgNDQuOTMyMTQ4XSAgWzxmZmZmZmZmZjgx NWRmZGM3Pl0gPyBydG5sX2xvY2srMHgxNy8weDIwClsgICA0NC45MzczNjRdICBbPGZmZmZmZmZm ODE1ZTdmOGI+XSBkZXZfaW9jdGwrMHgxN2IvMHg2MzAKWyAgIDQ0Ljk0MjU4Ml0gIFs8ZmZmZmZm ZmY4MTVhYmY4ZD5dIHNvY2tfZG9faW9jdGwrMHg1ZC8weDcwClsgICA0NC45NDc5NzJdICBbPGZm ZmZmZmZmODE1YWMwMTM+XSBzb2NrX2lvY3RsKzB4NzMvMHgyODAKWyAgIDQ0Ljk1MzE5Ml0gIFs8 ZmZmZmZmZmY4MTI0YzFjOD5dIGRvX3Zmc19pb2N0bCsweDg4LzB4NWIwClsgICA0NC45NTg1ODdd ICBbPGZmZmZmZmZmODExMGQwYjM+XSA/IHVwX3JlYWQrMHgyMy8weDQwClsgICA0NC45NjM2MzFd ICBbPGZmZmZmZmZmODEyNTg0Y2M+XSA/IF9fZmdldF9saWdodCsweDZjLzB4YTAKWyAgIDQ0Ljk2 OTEwNV0gIFs8ZmZmZmZmZmY4MTI0Yzc4MT5dIFN5U19pb2N0bCsweDkxLzB4YjAKWyAgIDQ0Ljk3 NDE0OV0gIFs8ZmZmZmZmZmY4MTZmNGRkNz5dIHN5c3RlbV9jYWxsX2Zhc3RwYXRoKzB4MTIvMHg2 ZgoKQXMgYm54MnhfaW5pdF9wdHAoKSBpcyBvbmx5IGNhbGxlZCBpZiBicC0+ZmxhZ3MgY29udGFp bnMgUFRQX1NVUFBPUlRFRCwKd2UgYWxzbyBuZWVkIHRvIGd1YXJkIGJueDJ4X3N0b3BfcHRwKCkg d2l0aCBzYW1lIGNvbmRpdGlvbiwgb3RoZXJ3aXNlCnB0cF90YXNrIHdvcmtxdWV1ZSBpcyBub3Qg aW5pdGlhbGl6ZWQgYW5kIGtlcm5lbCBiYXJmcyBvbgpjYW5jZWxfd29ya19zeW5jKCkKCkZpeGVz OiBlZWVkMDE4Y2JmYTMwICgiYm54Mng6IEFkZCB0aW1lc3RhbXBpbmcgYW5kIFBUUCBoYXJkd2Fy ZSBjbG9jayBzdXBwb3J0IikKUmVwb3J0ZWQtYnk6IE1pY2hlbCBMZXNwaW5hc3NlIDx3YWxrZW5A Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpDYzogTWljaGFsIEthbGRlcm9uIDxNaWNoYWwuS2FsZGVyb25AcWxvZ2ljLmNvbT4KQ2M6 IEFyaWVsIEVsaW9yIDxBcmllbC5FbGlvckBxbG9naWMuY29tPgpDYzogWXV2YWwgTWludHogPFl1 dmFsLk1pbnR6QHFsb2dpYy5jb20+CkNjOiBEYXZpZCBEZWNvdGlnbnkgPGRlY290QGdvb2dsZS5j b20+CkFja2VkLWJ5OiBTb255IENoYWNrbyA8c29ueS5jaGFja29AcWxvZ2ljLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X21haW4uYyB8IDMgKystCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbWFpbi5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbWFpbi5jCmluZGV4IDFlYzYzNWYu LjE5NjQ3NGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4 L2JueDJ4X21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9i bngyeF9tYWluLmMKQEAgLTkzMjMsNyArOTMyMyw4IEBAIHVubG9hZF9lcnJvcjoKIAkgKiBmdW5j dGlvbiBzdG9wIHJhbXJvZCBpcyBzZW50LCBzaW5jZSBhcyBwYXJ0IG9mIHRoaXMgcmFtcm9kIEZX IGFjY2VzcwogCSAqIFBUUCByZWdpc3RlcnMuCiAJICovCi0JYm54Mnhfc3RvcF9wdHAoYnApOwor CWlmIChicC0+ZmxhZ3MgJiBQVFBfU1VQUE9SVEVEKQorCQlibngyeF9zdG9wX3B0cChicCk7CiAK IAkvKiBEaXNhYmxlIEhXIGludGVycnVwdHMsIE5BUEkgKi8KIAlibngyeF9uZXRpZl9zdG9wKGJw LCAxKTsKLS0gCjIuMS4wCgoKRnJvbSA2NzY3Y2IyODAzNjI0ZTI3ZTY1YTQwYTZjZDk5NjczNmZh Y2E4NDVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgU3ZlcmRsaW4g PGFsZXhhbmRlci5zdmVyZGxpbkBub2tpYS5jb20+CkRhdGU6IE1vbiwgMjkgSnVuIDIwMTUgMTA6 NDE6MDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDE3LzIxXSBzY3RwOiBGaXggcmFjZSBiZXR3ZWVu IE9PVEIgcmVzcG9uY2UgYW5kIHJvdXRlIHJlbW92YWwKClsgVXBzdHJlYW0gY29tbWl0IDI5YzRh ZmM0ZTk4ZjRkYzBlYTlkZjIyYzYzMTg0MWY5YzIyMGI5NDQgXQoKVGhlcmUgaXMgTlVMTCBwb2lu dGVyIGRlcmVmZXJlbmNlIHBvc3NpYmxlIGR1cmluZyBzdGF0aXN0aWNzIHVwZGF0ZSBpZiB0aGUg cm91dGUKdXNlZCBmb3IgT09UQiByZXNwb25jZSBpcyByZW1vdmVkIGF0IHVuZm9ydHVuYXRlIHRp bWUuIElmIHRoZSByb3V0ZSBleGlzdHMgd2hlbgp3ZSByZWNlaXZlIE9PVEIgcGFja2V0IGFuZCB3 ZSBmaW5hbGx5IGp1bXAgaW50byBzY3RwX3BhY2tldF90cmFuc21pdCgpIHRvIHNlbmQKQUJPUlQs IGJ1dCBpbiB0aGUgbWVhbnRpbWUgcm91dGUgaXMgcmVtb3ZlZCB1bmRlciBvdXIgZmVldCwgd2Ug dGFrZSAibm9fcm91dGUiCnBhdGggYW5kIHRyeSB0byB1cGRhdGUgc3RhdHMgd2l0aCBJUF9JTkNf U1RBVFMoc29ja19uZXQoYXNvYy0+YmFzZS5zayksIC4uLikuCgpCdXQgc2N0cF9vb3RiX3BrdF9u ZXcoKSB1c2VkIHRvIHByZXBhcmUgcmVzcG9uY2UgcGFja2V0IGRvZXNuJ3QgY2FsbApzY3RwX3Ry YW5zcG9ydF9zZXRfb3duZXIoKSBhbmQgdGhlcmVmb3JlIHRoZXJlIGlzIG5vIGFzb2MgYXNzb2Np YXRlZCB3aXRoIHRoaXMKcGFja2V0LiBQcm9iYWJseSB0ZW1wb3JhcnkgYXNvYyBqdXN0IGZvciBP T1RCIHJlc3BvbmNlcyBpcyBvdmVya2lsbCwgc28ganVzdAppbnRyb2R1Y2UgYSBjaGVjayBsaWtl IGluIGFsbCBvdGhlciBwbGFjZXMgaW4gc2N0cF9wYWNrZXRfdHJhbnNtaXQoKSwgd2hlcmUKImFz b2MiIGlzIGRlcmVmZXJlbmNlZC4KClRvIHJlcHJvZHVjZSB0aGlzLCBvbmUgbmVlZHMgdG8KMC4g ZW5zdXJlIHRoYXQgc2N0cCBtb2R1bGUgaXMgbG9hZGVkIChvdGhlcndpc2UgQUJPUlQgaXMgbm90 IGdlbmVyYXRlZCkKMS4gcmVtb3ZlIGRlZmF1bHQgcm91dGUgb24gdGhlIG1hY2hpbmUKMi4gd2hp bGUgdHJ1ZTsgZG8KICAgICBpcCByb3V0ZSBkZWwgW2ludGVyZmFjZS1zcGVjaWZpYyByb3V0ZV0K ICAgICBpcCByb3V0ZSBhZGQgW2ludGVyZmFjZS1zcGVjaWZpYyByb3V0ZV0KICAgZG9uZQozLiBz ZW5kIGVub3VnaCBPT1RCIHBhY2tldHMgKGkuZS4gSEIgUkVRcykgZnJvbSBhbm90aGVyIGhvc3Qg dG8gdHJpZ2dlciBBQk9SVAogICByZXNwb25jZQoKT24geDg2XzY0IHRoZSBjcmFzaCBsb29rcyBs aWtlIHRoaXM6CgpCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJl ZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwMDIwCklQOiBbPGZmZmZmZmZmYTA1ZWM5YWM+XSBzY3Rw X3BhY2tldF90cmFuc21pdCsweDYzYy8weDczMCBbc2N0cF0KUEdEIDAKT29wczogMDAwMCBbIzFd IFBSRUVNUFQgU01QCk1vZHVsZXMgbGlua2VkIGluOiAuLi4KQ1BVOiAwIFBJRDogMCBDb21tOiBz d2FwcGVyLzAgVGFpbnRlZDogRyAgICAgICAgICAgTyAgICA0LjAuNS0xLUFSQ0ggIzEKSGFyZHdh cmUgbmFtZTogLi4uCnRhc2s6IGZmZmZmZmZmODE4MTI0YzAgdGk6IGZmZmZmZmZmODE4MDAwMDAg dGFzay50aTogZmZmZmZmZmY4MTgwMDAwMApSSVA6IDAwMTA6WzxmZmZmZmZmZmEwNWVjOWFjPl0g IFs8ZmZmZmZmZmZhMDVlYzlhYz5dIHNjdHBfcGFja2V0X3RyYW5zbWl0KzB4NjNjLzB4NzMwIFtz Y3RwXQpSU1A6IDAwMTg6ZmZmZjg4MDEyN2MwMzdiOCAgRUZMQUdTOiAwMDAxMDI5NgpSQVg6IDAw MDAwMDAwMDAwMDAwMDAgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDAwMTVmZjY2YjQ4 MApSRFg6IDAwMDAwMDE1ZmY2NmI0MDAgUlNJOiBmZmZmODgwMTI3YzE3MjAwIFJESTogZmZmZjg4 MDEyMzQwMzcwMApSQlA6IGZmZmY4ODAxMjdjMDM4ODggUjA4OiAwMDAwMDAwMDAwMDE3MjAwIFIw OTogZmZmZmZmZmY4MTQ2MjVhZgpSMTA6IGZmZmZlYTAwMDQ3ZTQ2ODAgUjExOiAwMDAwMDAwMGZm ZmZmZjgwIFIxMjogZmZmZjg4MDBiMGQzOGEyOApSMTM6IGZmZmY4ODAwYjBkMzhhMjggUjE0OiBm ZmZmODgwMGIzZTg4MDAwIFIxNTogZmZmZmZmZmZhMDVmMjRlMApGUzogIDAwMDAwMDAwMDAwMDAw MDAoMDAwMCkgR1M6ZmZmZjg4MDEyN2MwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAw CkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwM2IKQ1IyOiAw MDAwMDAwMDAwMDAwMDIwIENSMzogMDAwMDAwMDBjODU1YjAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA3 ZjAKU3RhY2s6CiBmZmZmODgwMTI3YzAzOTEwIGZmZmY4ODAwYjBkMzhhMjggZmZmZmZmZmY4MTg5 ZDI0MCBmZmZmODgwMTFmOTFiNDAwCiBmZmZmODgwMTI3YzAzODI4IGZmZmZmZmZmYTA1Yzk0YzUg MDAwMDAwMDAwMDAwMDAwMCBmZmZmODgwMGJhYTFjNTIwCiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAw MDAwMDAwMDAwMDEgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwCkNhbGwgVHJhY2U6 CiA8SVJRPgogWzxmZmZmZmZmZmEwNWM5NGM1Pl0gPyBzY3RwX3NmX3RhYm9ydF84XzRfOC5pc3Jh LjIwKzB4ODUvMHgxNDAgW3NjdHBdCiBbPGZmZmZmZmZmYTA1ZDZiNDI+XSA/IHNjdHBfdHJhbnNw b3J0X3B1dCsweDUyLzB4ODAgW3NjdHBdCiBbPGZmZmZmZmZmYTA1ZDBiZmM+XSBzY3RwX2RvX3Nt KzB4YjhjLzB4MTlhMCBbc2N0cF0KIFs8ZmZmZmZmZmY4MTBiMGUwMD5dID8gdHJpZ2dlcl9sb2Fk X2JhbGFuY2UrMHg5MC8weDIxMAogWzxmZmZmZmZmZjgxMGUwMzI5Pl0gPyB1cGRhdGVfcHJvY2Vz c190aW1lcysweDU5LzB4NjAKIFs8ZmZmZmZmZmY4MTJjN2E0MD5dID8gdGltZXJxdWV1ZV9hZGQr MHg2MC8weGIwCiBbPGZmZmZmZmZmODEwZTA1NDk+XSA/IGVucXVldWVfaHJ0aW1lcisweDI5LzB4 YTAKIFs8ZmZmZmZmZmY4MTAxZjU5OT5dID8gcmVhZF90c2MrMHg5LzB4MTAKIFs8ZmZmZmZmZmY4 MTE2ZDRiNT5dID8gcHV0X3BhZ2UrMHg1NS8weDYwCiBbPGZmZmZmZmZmODEwZWUxYWQ+XSA/IGNs b2NrZXZlbnRzX3Byb2dyYW1fZXZlbnQrMHg2ZC8weDEwMAogWzxmZmZmZmZmZjgxNDYyYjY4Pl0g PyBza2JfZnJlZV9oZWFkKzB4NTgvMHg4MAogWzxmZmZmZmZmZmEwMjlhMTBiPl0gPyBjaGtzdW1f dXBkYXRlKzB4MWIvMHgyNyBbY3JjMzJjX2dlbmVyaWNdCiBbPGZmZmZmZmZmODEyODNmM2U+XSA/ IGNyeXB0b19zaGFzaF91cGRhdGUrMHhjZS8weGYwCiBbPGZmZmZmZmZmYTA1ZDM5OTM+XSBzY3Rw X2VuZHBvaW50X2JoX3JjdisweDExMy8weDI4MCBbc2N0cF0KIFs8ZmZmZmZmZmZhMDVkZDRlNj5d IHNjdHBfaW5xX3B1c2grMHg0Ni8weDYwIFtzY3RwXQogWzxmZmZmZmZmZmEwNWVkN2EwPl0gc2N0 cF9yY3YrMHg4ODAvMHg5MTAgW3NjdHBdCiBbPGZmZmZmZmZmYTA1ZWNiNTA+XSA/IHNjdHBfcGFj a2V0X3RyYW5zbWl0X2NodW5rKzB4YjAvMHhiMCBbc2N0cF0KIFs8ZmZmZmZmZmZhMDVlY2I3MD5d ID8gc2N0cF9jc3VtX3VwZGF0ZSsweDIwLzB4MjAgW3NjdHBdCiBbPGZmZmZmZmZmODE0YjA1YTU+ XSA/IGlwX3JvdXRlX2lucHV0X25vcmVmKzB4MjM1LzB4ZDMwCiBbPGZmZmZmZmZmODEwNTFkNmI+ XSA/IGFja19pb2FwaWNfbGV2ZWwrMHg3Yi8weDE1MAogWzxmZmZmZmZmZjgxNGIyN2JlPl0gaXBf bG9jYWxfZGVsaXZlcl9maW5pc2grMHhhZS8weDIxMAogWzxmZmZmZmZmZjgxNGIyZTE1Pl0gaXBf bG9jYWxfZGVsaXZlcisweDM1LzB4OTAKIFs8ZmZmZmZmZmY4MTRiMmExNT5dIGlwX3Jjdl9maW5p c2grMHhmNS8weDM3MAogWzxmZmZmZmZmZjgxNGIzMTI4Pl0gaXBfcmN2KzB4MmI4LzB4M2EwCiBb PGZmZmZmZmZmODE0NzQxOTM+XSBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHg3NjMvMHhhNTAK IFs8ZmZmZmZmZmY4MTQ3NmMyOD5dIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgxOC8weDYwCiBbPGZm ZmZmZmZmODE0NzZjYjA+XSBuZXRpZl9yZWNlaXZlX3NrYl9pbnRlcm5hbCsweDQwLzB4ZDAKIFs8 ZmZmZmZmZmY4MTQ3NzZjOD5dIG5hcGlfZ3JvX3JlY2VpdmUrMHhlOC8weDEyMAogWzxmZmZmZmZm ZmEwMzk0NmFhPl0gcnRsODE2OV9wb2xsKzB4MmRhLzB4NjYwIFtyODE2OV0KIFs8ZmZmZmZmZmY4 MTQ3ODk2YT5dIG5ldF9yeF9hY3Rpb24rMHgyMWEvMHgzNjAKIFs8ZmZmZmZmZmY4MTA3OGRjMT5d IF9fZG9fc29mdGlycSsweGUxLzB4MmQwCiBbPGZmZmZmZmZmODEwNzkxMmQ+XSBpcnFfZXhpdCsw eGFkLzB4YjAKIFs8ZmZmZmZmZmY4MTU3ZDE1OD5dIGRvX0lSUSsweDU4LzB4ZjAKIFs8ZmZmZmZm ZmY4MTU3YjA2ZD5dIGNvbW1vbl9pbnRlcnJ1cHQrMHg2ZC8weDZkCiA8RU9JPgogWzxmZmZmZmZm ZjgxMGUxMjE4Pl0gPyBocnRpbWVyX3N0YXJ0KzB4MTgvMHgyMAogWzxmZmZmZmZmZmEwNWQ2NWY5 Pl0gPyBzY3RwX3RyYW5zcG9ydF9kZXN0cm95X3JjdSsweDI5LzB4MzAgW3NjdHBdCiBbPGZmZmZm ZmZmODEwMjBjNTA+XSA/IG13YWl0X2lkbGUrMHg2MC8weGEwCiBbPGZmZmZmZmZmODEwMjE2ZWY+ XSBhcmNoX2NwdV9pZGxlKzB4Zi8weDIwCiBbPGZmZmZmZmZmODEwYjczMWM+XSBjcHVfc3RhcnR1 cF9lbnRyeSsweDNlYy8weDQ4MAogWzxmZmZmZmZmZjgxNTZiMzY1Pl0gcmVzdF9pbml0KzB4ODUv MHg5MAogWzxmZmZmZmZmZjgxOGViMDM1Pl0gc3RhcnRfa2VybmVsKzB4NDhiLzB4NGFjCiBbPGZm ZmZmZmZmODE4ZWExMjA+XSA/IGVhcmx5X2lkdF9oYW5kbGVycysweDEyMC8weDEyMAogWzxmZmZm ZmZmZjgxOGVhMzM5Pl0geDg2XzY0X3N0YXJ0X3Jlc2VydmF0aW9ucysweDJhLzB4MmMKIFs8ZmZm ZmZmZmY4MThlYTQ5Yz5dIHg4Nl82NF9zdGFydF9rZXJuZWwrMHgxNjEvMHgxODQKQ29kZTogOTAg NDggOGIgODAgYjggMDAgMDAgMDAgNDggODkgODUgNzAgZmYgZmYgZmYgNDggODMgYmQgNzAgZmYg ZmYgZmYgMDAgMGYgODUgY2QgZmEgZmYgZmYgNDggODkgZGYgMzEgZGIgZTggMTggNjMgZTcgZTAg NDggOGIgNDUgODAgPDQ4PiA4YiA0MCAyMCA0OCA4YiA0MCAzMCA0OCA4YiA4MCA2OCAwMSAwMCAw MCA2NSA0OCBmZiA0MCA3OCBlOQpSSVAgIFs8ZmZmZmZmZmZhMDVlYzlhYz5dIHNjdHBfcGFja2V0 X3RyYW5zbWl0KzB4NjNjLzB4NzMwIFtzY3RwXQogUlNQIDxmZmZmODgwMTI3YzAzN2I4PgpDUjI6 IDAwMDAwMDAwMDAwMDAwMjAKLS0tWyBlbmQgdHJhY2UgNWFlYzdmZDJkYzk4MzU3NCBdLS0tCktl cm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0Cktl cm5lbCBPZmZzZXQ6IDB4MCBmcm9tIDB4ZmZmZmZmZmY4MTAwMDAwMCAocmVsb2NhdGlvbiByYW5n ZTogMHhmZmZmZmZmZjgwMDAwMDAwLTB4ZmZmZmZmZmY5ZmZmZmZmZikKZHJtX2ttc19oZWxwZXI6 IHBhbmljIG9jY3VycmVkLCBzd2l0Y2hpbmcgYmFjayB0byB0ZXh0IGNvbnNvbGUKLS0tWyBlbmQg S2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlvbiBpbiBpbnRlcnJ1cHQK ClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBTdmVyZGxpbiA8YWxleGFuZGVyLnN2ZXJkbGluQG5v a2lhLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+CkFj a2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNv bT4KQWNrZWQtYnk6IFZsYWQgWWFzZXZpY2ggPHZ5YXNldmljaEBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0 cC9vdXRwdXQuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL291dHB1dC5jIGIvbmV0L3NjdHAvb3V0 cHV0LmMKaW5kZXggZmM1ZTQ1Yi4uYWJlN2MyZCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvb3V0cHV0 LmMKKysrIGIvbmV0L3NjdHAvb3V0cHV0LmMKQEAgLTU5OSw3ICs1OTksOSBAQCBvdXQ6CiAJcmV0 dXJuIGVycjsKIG5vX3JvdXRlOgogCWtmcmVlX3NrYihuc2tiKTsKLQlJUF9JTkNfU1RBVFMoc29j a19uZXQoYXNvYy0+YmFzZS5zayksIElQU1RBVFNfTUlCX09VVE5PUk9VVEVTKTsKKworCWlmIChh c29jKQorCQlJUF9JTkNfU1RBVFMoc29ja19uZXQoYXNvYy0+YmFzZS5zayksIElQU1RBVFNfTUlC X09VVE5PUk9VVEVTKTsKIAogCS8qIEZJWE1FOiBSZXR1cm5pbmcgdGhlICdlcnInIHdpbGwgZWZm ZWN0IGFsbCB0aGUgYXNzb2NpYXRpb25zCiAJICogYXNzb2NpYXRlZCB3aXRoIGEgc29ja2V0LCBh bHRob3VnaCBvbmx5IG9uZSBvZiB0aGUgcGF0aHMgb2YgdGhlCi0tIAoyLjEuMAoKCkZyb20gNDJh YzM0ZTk0MDQ0MGE4ODQ5MjJkNzMxYzgyMDM1YThkMWM2Mzk3ZiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4KRGF0ZTog TW9uLCAyOSBKdW4gMjAxNSAxMToyMjoxMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMjFdIGFt ZC14Z2JlOiBBZGQgdGhlIF9fR0ZQX05PV0FSTiBmbGFnIHRvIFJ4IGJ1ZmZlcgogYWxsb2NhdGlv bgoKWyBVcHN0cmVhbSBjb21taXQgNDcyY2ZlNzEyNzc2MGQ2OGI4MTljZjM1YTI2ZTVhMWI0NGIz MGY0ZSBdCgpXaGVuIGFsbG9jYXRpbmcgUnggcmVsYXRlZCBidWZmZXJzLCBhbGxvY19wYWdlcyBp cyBjYWxsZWQgdXNpbmcgYW4gb3JkZXIKbnVtYmVyIHRoYXQgaXMgZGVjcmVhc2VkIHVudGlsIHN1 Y2Nlc3NmdWwuIEEgc3lzdGVtIHVuZGVyIHN0cmVzcyBjYW4KZXhwZXJpZW5jZSBmYWlsdXJlcyBk dXJpbmcgdGhpcyBhbGxvY2F0aW9uIHByb2Nlc3MgcmVzdWx0aW5nIGluIGEgd2FybmluZwpiZWlu ZyBpc3N1ZWQuIFRoaXMgbWVzc2FnZSBjYW4gYmUgb2YgY29uY2VybiB0byBlbmQgdXNlcnMgZXZl biB0aG91Z2ggdGhlCmZhaWx1cmUgaXMgbm90IGZhdGFsLiBTaW5jZSB0aGUgZmFpbHVyZSBpcyBu b3QgZmF0YWwgYW5kIGNhbiBvY2N1cgptdWx0aXBsZSB0aW1lcywgdGhlIGRyaXZlciBzaG91bGQg aW5jbHVkZSB0aGUgX19HRlBfTk9XQVJOIGZsYWcgdG8Kc3VwcHJlc3MgdGhlIHdhcm5pbmcgbWVz c2FnZSBmcm9tIGJlaW5nIGlzc3VlZC4KClNpZ25lZC1vZmYtYnk6IFRvbSBMZW5kYWNreSA8dGhv bWFzLmxlbmRhY2t5QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2Jl LWRlc2MuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtZGVz Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZXNjLmMKaW5kZXggZDgx ZmM2Yi4uNWM5MmZiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUv eGdiZS1kZXNjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZXNj LmMKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdGF0aWMgaW50IHhnYmVfYWxsb2NfcGFnZXMoc3RydWN0 IHhnYmVfcHJ2X2RhdGEgKnBkYXRhLAogCWludCByZXQ7CiAKIAkvKiBUcnkgdG8gb2J0YWluIHBh Z2VzLCBkZWNyZWFzaW5nIG9yZGVyIGlmIG5lY2Vzc2FyeSAqLwotCWdmcCB8PSBfX0dGUF9DT0xE IHwgX19HRlBfQ09NUDsKKwlnZnAgfD0gX19HRlBfQ09MRCB8IF9fR0ZQX0NPTVAgfCBfX0dGUF9O T1dBUk47CiAJd2hpbGUgKG9yZGVyID49IDApIHsKIAkJcGFnZXMgPSBhbGxvY19wYWdlcyhnZnAs IG9yZGVyKTsKIAkJaWYgKHBhZ2VzKQotLSAKMi4xLjAKCgpGcm9tIGJiNDk5NDEwZTZhYzVlYmI3 MGU1YTkyNTYxODIxMmY0ODVmZTkyNTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNp bW9uIEd1aW5vdCA8c2ltb24uZ3Vpbm90QHNlcXVhbnV4Lm9yZz4KRGF0ZTogVHVlLCAzMCBKdW4g MjAxNSAxNjoyMDoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjFdIG5ldDogbXZuZXRhOiBp bnRyb2R1Y2UgY29tcGF0aWJsZSBzdHJpbmcgIm1hcnZlbGwsCiBhcm1hZGEteHAtbmV0YSIKClsg VXBzdHJlYW0gY29tbWl0IGY1MjJhOTc1YTgxMDE4OTVhODUzNTRiOWMxNDNmNDFiODI0OGU3MWEg XQoKVGhlIG12bmV0YSBkcml2ZXIgc3VwcG9ydHMgdGhlIEV0aGVybmV0IElQIGZvdW5kIGluIHRo ZSBBcm1hZGEgMzcwLCBYUCwKMzgwIGFuZCAzODUgU29Dcy4gU2luY2UgYXQgbGVhc3Qgb25lIG1v cmUgaGFyZHdhcmUgZmVhdHVyZSBpcyBhdmFpbGFibGUKZm9yIHRoZSBBcm1hZGEgWFAgU29DcyB0 aGVuIGEgd2F5IHRvIGlkZW50aWZ5IHRoZW0gaXMgbmVlZGVkLgoKVGhpcyBwYXRjaCBpbnRyb2R1 Y2VzIGEgbmV3IGNvbXBhdGlibGUgc3RyaW5nICJtYXJ2ZWxsLGFybWFkYS14cC1uZXRhIi4KClNp Z25lZC1vZmYtYnk6IFNpbW9uIEd1aW5vdCA8c2ltb24uZ3Vpbm90QHNlcXVhbnV4Lm9yZz4KRml4 ZXM6IGM1YWZmMTgyMDRkYSAoIm5ldDogbXZuZXRhOiBkcml2ZXIgZm9yIE1hcnZlbGwgQXJtYWRh IDM3MC9YUCBuZXR3b3JrIHVuaXQiKQpDYzogPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ICMgdjMu OCsKQWNrZWQtYnk6IEdyZWdvcnkgQ0xFTUVOVCA8Z3JlZ29yeS5jbGVtZW50QGZyZWUtZWxlY3Ry b25zLmNvbT4KQWNrZWQtYnk6IFRob21hcyBQZXRhenpvbmkgPHRob21hcy5wZXRhenpvbmlAZnJl ZS1lbGVjdHJvbnMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9t YXJ2ZWxsLWFybWFkYS0zNzAtbmV0YS50eHQgfCAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t YXJ2ZWxsL212bmV0YS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgKwogMiBmaWxl cyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21hcnZlbGwtYXJtYWRhLTM3MC1u ZXRhLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbC1h cm1hZGEtMzcwLW5ldGEudHh0CmluZGV4IDc1MGQ1NzcuLmY1YThjYTIgMTAwNjQ0Ci0tLSBhL0Rv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbC1hcm1hZGEtMzcwLW5l dGEudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVs bC1hcm1hZGEtMzcwLW5ldGEudHh0CkBAIC0xLDcgKzEsNyBAQAogKiBNYXJ2ZWxsIEFybWFkYSAz NzAgLyBBcm1hZGEgWFAgRXRoZXJuZXQgQ29udHJvbGxlciAoTkVUQSkKIAogUmVxdWlyZWQgcHJv cGVydGllczoKLS0gY29tcGF0aWJsZTogc2hvdWxkIGJlICJtYXJ2ZWxsLGFybWFkYS0zNzAtbmV0 YSIuCistIGNvbXBhdGlibGU6ICJtYXJ2ZWxsLGFybWFkYS0zNzAtbmV0YSIgb3IgIm1hcnZlbGws YXJtYWRhLXhwLW5ldGEiLgogLSByZWc6IGFkZHJlc3MgYW5kIGxlbmd0aCBvZiB0aGUgcmVnaXN0 ZXIgc2V0IGZvciB0aGUgZGV2aWNlLgogLSBpbnRlcnJ1cHRzOiBpbnRlcnJ1cHQgZm9yIHRoZSBk ZXZpY2UKIC0gcGh5OiBTZWUgZXRoZXJuZXQudHh0IGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5 LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMKaW5kZXggMmRiNjUzMi4uMzg3Y2Vk YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCkBAIC0zMDk1LDYgKzMwOTUs NyBAQCBzdGF0aWMgaW50IG12bmV0YV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXZuZXRhX21hdGNoW10gPSB7 CiAJeyAuY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS0zNzAtbmV0YSIgfSwKKwl7IC5jb21w YXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLXhwLW5ldGEiIH0sCiAJeyB9CiB9OwogTU9EVUxFX0RF VklDRV9UQUJMRShvZiwgbXZuZXRhX21hdGNoKTsKLS0gCjIuMS4wCgoKRnJvbSA5YWRmZTQ1YjIy ZWI2MThlN2FjNDAzYWE0NzBmYTNhNjllMWRhZDVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBTaW1vbiBHdWlub3QgPHNpbW9uLmd1aW5vdEBzZXF1YW51eC5vcmc+CkRhdGU6IFR1ZSwg MzAgSnVuIDIwMTUgMTY6MjA6MjEgKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzIxXSBBUk06IG12 ZWJ1OiB1cGRhdGUgRXRoZXJuZXQgY29tcGF0aWJsZSBzdHJpbmcgZm9yCiBBcm1hZGEgWFAKClsg VXBzdHJlYW0gY29tbWl0IGVhM2I1NWZlODNiNWZjZWRlODJkMTgzMTY0YjlkNjgzMWIyNmUzM2Ig XQoKVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBFdGhlcm5ldCBEVCBub2RlcyBmb3IgQXJtYWRhIFhQ IFNvQ3Mgd2l0aCB0aGUKY29tcGF0aWJsZSBzdHJpbmcgIm1hcnZlbGwsYXJtYWRhLXhwLW5ldGEi LgoKU2lnbmVkLW9mZi1ieTogU2ltb24gR3Vpbm90IDxzaW1vbi5ndWlub3RAc2VxdWFudXgub3Jn PgpGaXhlczogNzc5MTY1MTljYmEzICgiYXJtOiBtdmVidTogQXJtYWRhIFhQIE1WNzgyMzAgaGFz IG9ubHkgdGhyZWUgRXRoZXJuZXQgaW50ZXJmYWNlcyIpCkNjOiA8c3RhYmxlQHZnZXIua2VybmVs Lm9yZz4gIyB2My44KwpBY2tlZC1ieTogR3JlZ29yeSBDTEVNRU5UIDxncmVnb3J5LmNsZW1lbnRA ZnJlZS1lbGVjdHJvbnMuY29tPgpSZXZpZXdlZC1ieTogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFz LnBldGF6em9uaUBmcmVlLWVsZWN0cm9ucy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBhcmNoL2FybS9ib290L2R0cy9hcm1hZGEt MzcwLXhwLmR0c2kgICAgIHwgIDIgLS0KIGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAuZHRz aSAgICAgICAgfCAgOCArKysrKysrKwogYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhwLW12Nzgy NjAuZHRzaSB8ICAyICstCiBhcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAtbXY3ODQ2MC5kdHNp IHwgIDIgKy0KIGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS14cC5kdHNpICAgICAgICAgfCAxMCAr KysrKysrKystCiA1IGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM3MC14cC5kdHNpIGIv YXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM3MC14cC5kdHNpCmluZGV4IDhhMzIyYWQuLmEwMzhj MjAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAteHAuZHRzaQorKysg Yi9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEtMzcwLXhwLmR0c2kKQEAgLTI2NSw3ICsyNjUsNiBA QAogCQkJfTsKIAogCQkJZXRoMDogZXRoZXJuZXRANzAwMDAgewotCQkJCWNvbXBhdGlibGUgPSAi bWFydmVsbCxhcm1hZGEtMzcwLW5ldGEiOwogCQkJCXJlZyA9IDwweDcwMDAwIDB4NDAwMD47CiAJ CQkJaW50ZXJydXB0cyA9IDw4PjsKIAkJCQljbG9ja3MgPSA8JmdhdGVjbGsgND47CkBAIC0yODEs NyArMjgwLDYgQEAKIAkJCX07CiAKIAkJCWV0aDE6IGV0aGVybmV0QDc0MDAwIHsKLQkJCQljb21w YXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLTM3MC1uZXRhIjsKIAkJCQlyZWcgPSA8MHg3NDAwMCAw eDQwMDA+OwogCQkJCWludGVycnVwdHMgPSA8MTA+OwogCQkJCWNsb2NrcyA9IDwmZ2F0ZWNsayAz PjsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAuZHRzaSBiL2FyY2gv YXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAuZHRzaQppbmRleCAyNzM5N2YxLi4zNzczMDI1IDEwMDY0 NAotLS0gYS9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEtMzcwLmR0c2kKKysrIGIvYXJjaC9hcm0v Ym9vdC9kdHMvYXJtYWRhLTM3MC5kdHNpCkBAIC0zMDYsNiArMzA2LDE0IEBACiAJCQkJCWRtYWNh cCxtZW1zZXQ7CiAJCQkJfTsKIAkJCX07CisKKwkJCWV0aGVybmV0QDcwMDAwIHsKKwkJCQljb21w YXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLTM3MC1uZXRhIjsKKwkJCX07CisKKwkJCWV0aGVybmV0 QDc0MDAwIHsKKwkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLTM3MC1uZXRhIjsKKwkJ CX07CiAJCX07CiAJfTsKIH07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEt eHAtbXY3ODI2MC5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhwLW12NzgyNjAuZHRz aQppbmRleCA0YTdjYmVkLi4xNjc2ZDMwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib290L2R0cy9h cm1hZGEteHAtbXY3ODI2MC5kdHNpCisrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS14cC1t djc4MjYwLmR0c2kKQEAgLTMxOSw3ICszMTksNyBAQAogCQkJfTsKIAogCQkJZXRoMzogZXRoZXJu ZXRAMzQwMDAgewotCQkJCWNvbXBhdGlibGUgPSAibWFydmVsbCxhcm1hZGEtMzcwLW5ldGEiOwor CQkJCWNvbXBhdGlibGUgPSAibWFydmVsbCxhcm1hZGEteHAtbmV0YSI7CiAJCQkJcmVnID0gPDB4 MzQwMDAgMHg0MDAwPjsKIAkJCQlpbnRlcnJ1cHRzID0gPDE0PjsKIAkJCQljbG9ja3MgPSA8Jmdh dGVjbGsgMT47CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAtbXY3ODQ2 MC5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhwLW12Nzg0NjAuZHRzaQppbmRleCAz NmNlNjNhLi5kNDFmZTg4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAt bXY3ODQ2MC5kdHNpCisrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS14cC1tdjc4NDYwLmR0 c2kKQEAgLTM1Nyw3ICszNTcsNyBAQAogCQkJfTsKIAogCQkJZXRoMzogZXRoZXJuZXRAMzQwMDAg ewotCQkJCWNvbXBhdGlibGUgPSAibWFydmVsbCxhcm1hZGEtMzcwLW5ldGEiOworCQkJCWNvbXBh dGlibGUgPSAibWFydmVsbCxhcm1hZGEteHAtbmV0YSI7CiAJCQkJcmVnID0gPDB4MzQwMDAgMHg0 MDAwPjsKIAkJCQlpbnRlcnJ1cHRzID0gPDE0PjsKIAkJCQljbG9ja3MgPSA8JmdhdGVjbGsgMT47 CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAuZHRzaSBiL2FyY2gvYXJt L2Jvb3QvZHRzL2FybWFkYS14cC5kdHNpCmluZGV4IDgyOTE3MjMuLjljZTdkNWYgMTAwNjQ0Ci0t LSBhL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS14cC5kdHNpCisrKyBiL2FyY2gvYXJtL2Jvb3Qv ZHRzL2FybWFkYS14cC5kdHNpCkBAIC0xNzUsNyArMTc1LDcgQEAKIAkJCX07CiAKIAkJCWV0aDI6 IGV0aGVybmV0QDMwMDAwIHsKLQkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLTM3MC1u ZXRhIjsKKwkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLXhwLW5ldGEiOwogCQkJCXJl ZyA9IDwweDMwMDAwIDB4NDAwMD47CiAJCQkJaW50ZXJydXB0cyA9IDwxMj47CiAJCQkJY2xvY2tz ID0gPCZnYXRlY2xrIDI+OwpAQCAtMjE4LDYgKzIxOCwxNCBAQAogCQkJCX07CiAJCQl9OwogCisJ CQlldGhlcm5ldEA3MDAwMCB7CisJCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS14cC1u ZXRhIjsKKwkJCX07CisKKwkJCWV0aGVybmV0QDc0MDAwIHsKKwkJCQljb21wYXRpYmxlID0gIm1h cnZlbGwsYXJtYWRhLXhwLW5ldGEiOworCQkJfTsKKwogCQkJeG9yQGYwOTAwIHsKIAkJCQljb21w YXRpYmxlID0gIm1hcnZlbGwsb3Jpb24teG9yIjsKIAkJCQlyZWcgPSA8MHhGMDkwMCAweDEwMAot LSAKMi4xLjAKCgpGcm9tIGQ5ZjY1YTlhYzYyNzg0YTVlMmM3MDQwMGMyNGQ4ZjEyY2MxZjgyYjkg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNpbW9uIEd1aW5vdCA8c2ltb24uZ3Vpbm90 QHNlcXVhbnV4Lm9yZz4KRGF0ZTogVHVlLCAzMCBKdW4gMjAxNSAxNjoyMDoyMiArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMjEvMjFdIG5ldDogbXZuZXRhOiBkaXNhYmxlIElQIGNoZWNrc3VtIHdpdGgg anVtYm8gZnJhbWVzIGZvcgogQXJtYWRhIDM3MAoKWyBVcHN0cmVhbSBjb21taXQgYjY1NjU3ZmMy NDBhZTZjMWQyYTFlNjJkYjlhMGU2MWFjOTYzMWQ3YSBdCgpUaGUgRXRoZXJuZXQgY29udHJvbGxl ciBmb3VuZCBpbiB0aGUgQXJtYWRhIDM3MCwgMzgwIGFuZCAzODUgU29DcyBkb24ndApzdXBwb3J0 IFRDUC9JUCBjaGVja3N1bW1pbmcgd2l0aCBmcmFtZSBzaXplcyBsYXJnZXIgdGhhbiAxNjAwIGJ5 dGVzLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGUgaXNzdWUgYnkgZGlzYWJsaW5nIHRoZSBmZWF0dXJl cyBORVRJRl9GX0lQX0NTVU0gYW5kCk5FVElGX0ZfVFNPIGZvciB0aGUgQXJtYWRhIDM3MCBhbmQg Y29tcGF0aWJsZXMgU29DcyB3aGVuIHRoZSBNVFUgaXMgc2V0CnRvIGEgdmFsdWUgZ3JlYXRlciB0 aGFuIDE2MDAgYnl0ZXMuCgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBHdWlub3QgPHNpbW9uLmd1aW5v dEBzZXF1YW51eC5vcmc+CkZpeGVzOiBjNWFmZjE4MjA0ZGEgKCJuZXQ6IG12bmV0YTogZHJpdmVy IGZvciBNYXJ2ZWxsIEFybWFkYSAzNzAvWFAgbmV0d29yayB1bml0IikKQ2M6IDxzdGFibGVAdmdl ci5rZXJuZWwub3JnPiAjIHYzLjgrCkFja2VkLWJ5OiBUaG9tYXMgUGV0YXp6b25pIDx0aG9tYXMu cGV0YXp6b25pQGZyZWUtZWxlY3Ryb25zLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZl bGwvbXZuZXRhLmMgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5n ZWQsIDI1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFy dmVsbC9tdm5ldGEuYwppbmRleCAzODdjZWRiLi44N2M3ZjUyYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tYXJ2ZWxsL212bmV0YS5jCkBAIC0zMDQsNiArMzA0LDcgQEAgc3RydWN0IG12bmV0YV9wb3J0 IHsKIAl1bnNpZ25lZCBpbnQgbGluazsKIAl1bnNpZ25lZCBpbnQgZHVwbGV4OwogCXVuc2lnbmVk IGludCBzcGVlZDsKKwl1bnNpZ25lZCBpbnQgdHhfY3N1bV9saW1pdDsKIH07CiAKIC8qIFRoZSBt dm5ldGFfdHhfZGVzYyBhbmQgbXZuZXRhX3J4X2Rlc2Mgc3RydWN0dXJlcyBkZXNjcmliZSB0aGUK QEAgLTI0NDEsOCArMjQ0MiwxMCBAQCBzdGF0aWMgaW50IG12bmV0YV9jaGFuZ2VfbXR1KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIGludCBtdHUpCiAKIAlkZXYtPm10dSA9IG10dTsKIAotCWlmICgh bmV0aWZfcnVubmluZyhkZXYpKQorCWlmICghbmV0aWZfcnVubmluZyhkZXYpKSB7CisJCW5ldGRl dl91cGRhdGVfZmVhdHVyZXMoZGV2KTsKIAkJcmV0dXJuIDA7CisJfQogCiAJLyogVGhlIGludGVy ZmFjZSBpcyBydW5uaW5nLCBzbyB3ZSBoYXZlIHRvIGZvcmNlIGEKIAkgKiByZWFsbG9jYXRpb24g b2YgdGhlIHF1ZXVlcwpAQCAtMjQ3MSw5ICsyNDc0LDI2IEBAIHN0YXRpYyBpbnQgbXZuZXRhX2No YW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IG10dSkKIAltdm5ldGFfc3RhcnRf ZGV2KHBwKTsKIAltdm5ldGFfcG9ydF91cChwcCk7CiAKKwluZXRkZXZfdXBkYXRlX2ZlYXR1cmVz KGRldik7CisKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIG5ldGRldl9mZWF0dXJlc190IG12bmV0 YV9maXhfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCQkJICAgICBuZXRkZXZf ZmVhdHVyZXNfdCBmZWF0dXJlcykKK3sKKwlzdHJ1Y3QgbXZuZXRhX3BvcnQgKnBwID0gbmV0ZGV2 X3ByaXYoZGV2KTsKKworCWlmIChwcC0+dHhfY3N1bV9saW1pdCAmJiBkZXYtPm10dSA+IHBwLT50 eF9jc3VtX2xpbWl0KSB7CisJCWZlYXR1cmVzICY9IH4oTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZf Rl9UU08pOworCQluZXRkZXZfaW5mbyhkZXYsCisJCQkgICAgIkRpc2FibGUgSVAgY2hlY2tzdW0g Zm9yIE1UVSBncmVhdGVyIHRoYW4gJWRCXG4iLAorCQkJICAgIHBwLT50eF9jc3VtX2xpbWl0KTsK Kwl9CisKKwlyZXR1cm4gZmVhdHVyZXM7Cit9CisKIC8qIEdldCBtYWMgYWRkcmVzcyAqLwogc3Rh dGljIHZvaWQgbXZuZXRhX2dldF9tYWNfYWRkcihzdHJ1Y3QgbXZuZXRhX3BvcnQgKnBwLCB1bnNp Z25lZCBjaGFyICphZGRyKQogewpAQCAtMjc4NSw2ICsyODA1LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBuZXRfZGV2aWNlX29wcyBtdm5ldGFfbmV0ZGV2X29wcyA9IHsKIAkubmRvX3NldF9yeF9t b2RlICAgICA9IG12bmV0YV9zZXRfcnhfbW9kZSwKIAkubmRvX3NldF9tYWNfYWRkcmVzcyA9IG12 bmV0YV9zZXRfbWFjX2FkZHIsCiAJLm5kb19jaGFuZ2VfbXR1ICAgICAgPSBtdm5ldGFfY2hhbmdl X210dSwKKwkubmRvX2ZpeF9mZWF0dXJlcyAgICA9IG12bmV0YV9maXhfZmVhdHVyZXMsCiAJLm5k b19nZXRfc3RhdHM2NCAgICAgPSBtdm5ldGFfZ2V0X3N0YXRzNjQsCiAJLm5kb19kb19pb2N0bCAg ICAgICAgPSBtdm5ldGFfaW9jdGwsCiB9OwpAQCAtMzAyMyw2ICszMDQ0LDkgQEAgc3RhdGljIGlu dCBtdm5ldGFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJfQogCX0KIAor CWlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShkbiwgIm1hcnZlbGwsYXJtYWRhLTM3MC1uZXRh IikpCisJCXBwLT50eF9jc3VtX2xpbWl0ID0gMTYwMDsKKwogCXBwLT50eF9yaW5nX3NpemUgPSBN Vk5FVEFfTUFYX1RYRDsKIAlwcC0+cnhfcmluZ19zaXplID0gTVZORVRBX01BWF9SWEQ7CiAKLS0g CjIuMS4wCgo= ----Next_Part(Fri_Jul__3_15_31_36_2015_221)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_41.mbox" RnJvbSA4OGExNzc3MDY5NjhlMDI3MGEwY2ZhNDdiZWZmNmJhOTExMDVkMzdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0 bmVyQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxMiBKdW4gMjAxNSAxMDoxNjo0MSAtMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMDEvMjFdIHNjdHA6IGZpeCBBU0NPTkYgbGlzdCBoYW5kbGluZwoKWyBVcHN0 cmVhbSBjb21taXQgMmQ0NWEwMmQwMTY2Y2FmMjYyN2ZlOTE4OTdjNmZmYzNiMTk1MTRjNCBdCgot PmF1dG9fYXNjb25mX3NwbGlzdCBpcyBwZXIgbmFtZXNwYWNlIGFuZCBtYW5nbGVkIGJ5IGZ1bmN0 aW9ucyBsaWtlCnNjdHBfc2V0c29ja29wdF9hdXRvX2FzY29uZigpIHdoaWNoIGRvZXNuJ3QgZ3Vh cmFudGVlIGFueSBzZXJpYWxpemF0aW9uLgoKQWxzbywgdGhlIGNhbGwgdG8gaW5ldF9za19jb3B5 X2Rlc2NlbmRhbnQoKSB3YXMgYmFja3VwaW5nCi0+YXV0b19hc2NvbmZfbGlzdCB0aHJvdWdoIHRo ZSBjb3B5IGJ1dCB3YXMgbm90IGhvbm9yaW5nCi0+ZG9fYXV0b19hc2NvbmYsIHdoaWNoIGNvdWxk IGxlYWQgdG8gbGlzdCBjb3JydXB0aW9uIGlmIGl0IHdhcwpkaWZmZXJlbnQgYmV0d2VlbiBib3Ro IHNvY2tldHMuCgpUaGlzIGNvbW1pdCB0aHVzIGZpeGVzIHRoZSBsaXN0IGhhbmRsaW5nIGJ5IHVz aW5nIC0+YWRkcl93cV9sb2NrCnNwaW5sb2NrIHRvIHByb3RlY3QgdGhlIGxpc3QuIEEgc3BlY2lh bCBoYW5kbGluZyBpcyBkb25lIHVwb24gc29ja2V0CmNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbiBm b3IgdGhhdC4gRXJyb3IgaGFuZGxpZyBvbiBzY3RwX2luaXRfc29jaygpCndpbGwgbmV2ZXIgcmV0 dXJuIGFuIGVycm9yIGFmdGVyIGhhdmluZyBpbml0aWFsaXplZCBhc2NvbmYsIHNvCnNjdHBfZGVz dHJveV9zb2NrKCkgY2FuIGJlIGNhbGxlZCB3aXRob3V0IGFkZHJxX3dxX2xvY2suIFRoZSBsb2Nr IG5vdwp3aWxsIGJlIHRha2Ugb24gc2N0cF9jbG9zZV9zb2NrKCksIGJlZm9yZSBsb2NraW5nIHRo ZSBzb2NrZXQsIHNvIHdlCmRvbid0IGRvIGl0IGluIGludmVyc2Ugb3JkZXIgY29tcGFyZWQgdG8g c2N0cF9hZGRyX3dxX3RpbWVvdXRfaGFuZGxlcigpLgoKSW5zdGVhZCBvZiB0YWtpbmcgdGhlIGxv Y2sgb24gc2N0cF9zb2NrX21pZ3JhdGUoKSBmb3IgY29weWluZyBhbmQKcmVzdG9yaW5nIHRoZSBs aXN0IHZhbHVlcywgaXQncyBwcmVmZXJyZWQgdG8gYXZvaWQgcmV3cml0dGluZyBpdCBieQppbXBs ZW1lbnRpbmcgc2N0cF9jb3B5X2Rlc2NlbmRhbnQoKS4KCklzc3VlIHdhcyBmb3VuZCB3aXRoIGEg dGVzdCBhcHBsaWNhdGlvbiB0aGF0IGtlcHQgZmxpcHBpbmcgc3lzY3RsCmRlZmF1bHRfYXV0b19h c2NvbmYgb24gYW5kIG9mZiwgYnV0IG9uZSBjb3VsZCB0cmlnZ2VyIGl0IGJ5IGlzc3VpbmcKc2lt dWx0YW5lb3VzIHNldHNvY2tvcHQoKSBjYWxscyBvbiBtdWx0aXBsZSBzb2NrZXRzIG9yIGJ5CmNy ZWF0aW5nL2Rlc3Ryb3lpbmcgc29ja2V0cyBmYXN0IGVub3VnaC4gVGhpcyBpcyBvbmx5IHRyaWdn ZXJhYmxlCmxvY2FsbHkuCgpGaXhlczogOWY3ZDY1M2I2N2FlICgic2N0cDogQWRkIEF1dG8tQVND T05GIHN1cHBvcnQgKGNvcmUpLiIpClJlcG9ydGVkLWJ5OiBKaSBKaWFud2VuIDxqaWppQHJlZGhh dC5jb20+ClN1Z2dlc3RlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4K U3VnZ2VzdGVkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlv bi5vcmc+CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVr dGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxv LmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvbmV0bnMvc2N0cC5oICAgfCAgMSArCiBp bmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaCB8ICA0ICsrKysKIG5ldC9zY3RwL3NvY2tldC5jICAg ICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQog MyBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC9uZXRucy9zY3RwLmggYi9pbmNsdWRlL25ldC9uZXRucy9zY3Rw LmgKaW5kZXggMzU3M2E4MS4uOGJhMzc5ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbmV0bnMv c2N0cC5oCisrKyBiL2luY2x1ZGUvbmV0L25ldG5zL3NjdHAuaApAQCAtMzEsNiArMzEsNyBAQCBz dHJ1Y3QgbmV0bnNfc2N0cCB7CiAJc3RydWN0IGxpc3RfaGVhZCBhZGRyX3dhaXRxOwogCXN0cnVj dCB0aW1lcl9saXN0IGFkZHJfd3FfdGltZXI7CiAJc3RydWN0IGxpc3RfaGVhZCBhdXRvX2FzY29u Zl9zcGxpc3Q7CisJLyogTG9jayB0aGF0IHByb3RlY3RzIGJvdGggYWRkcl93YWl0cSBhbmQgYXV0 b19hc2NvbmZfc3BsaXN0ICovCiAJc3BpbmxvY2tfdCBhZGRyX3dxX2xvY2s7CiAKIAkvKiBMb2Nr IHRoYXQgcHJvdGVjdHMgdGhlIGxvY2FsX2FkZHJfbGlzdCB3cml0ZXJzICovCmRpZmYgLS1naXQg YS9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaCBiL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5o CmluZGV4IDJiYjJmY2YuLjQ5NWM4N2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjdHAvc3Ry dWN0cy5oCisrKyBiL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oCkBAIC0yMjMsNiArMjIzLDEw IEBAIHN0cnVjdCBzY3RwX3NvY2sgewogCWF0b21pY190IHBkX21vZGU7CiAJLyogUmVjZWl2ZSB0 byBoZXJlIHdoaWxlIHBhcnRpYWwgZGVsaXZlcnkgaXMgaW4gZWZmZWN0LiAqLwogCXN0cnVjdCBz a19idWZmX2hlYWQgcGRfbG9iYnk7CisKKwkvKiBUaGVzZSBtdXN0IGJlIHRoZSBsYXN0IGZpZWxk cywgYXMgdGhleSB3aWxsIHNraXBwZWQgb24gY29waWVzLAorCSAqIGxpa2Ugb24gYWNjZXB0IGFu ZCBwZWVsb2ZmIG9wZXJhdGlvbnMKKwkgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGF1dG9fYXNjb25m X2xpc3Q7CiAJaW50IGRvX2F1dG9fYXNjb25mOwogfTsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3Nv Y2tldC5jIGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggZjA5ZGU3Zi4uNWY2YzRlNiAxMDA2NDQK LS0tIGEvbmV0L3NjdHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTE1Mjgs OCArMTUyOCwxMCBAQCBzdGF0aWMgdm9pZCBzY3RwX2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgbG9u ZyB0aW1lb3V0KQogCiAJLyogU3VwcG9zZWRseSwgbm8gcHJvY2VzcyBoYXMgYWNjZXNzIHRvIHRo ZSBzb2NrZXQsIGJ1dAogCSAqIHRoZSBuZXQgbGF5ZXJzIHN0aWxsIG1heS4KKwkgKiBBbHNvLCBz Y3RwX2Rlc3Ryb3lfc29jaygpIG5lZWRzIHRvIGJlIGNhbGxlZCB3aXRoIGFkZHJfd3FfbG9jawor CSAqIGhlbGQgYW5kIHRoYXQgc2hvdWxkIGJlIGdyYWJiZWQgYmVmb3JlIHNvY2tldCBsb2NrLgog CSAqLwotCWxvY2FsX2JoX2Rpc2FibGUoKTsKKwlzcGluX2xvY2tfYmgoJm5ldC0+c2N0cC5hZGRy X3dxX2xvY2spOwogCWJoX2xvY2tfc29jayhzayk7CiAKIAkvKiBIb2xkIHRoZSBzb2NrLCBzaW5j ZSBza19jb21tb25fcmVsZWFzZSgpIHdpbGwgcHV0IHNvY2tfcHV0KCkKQEAgLTE1MzksNyArMTU0 MSw3IEBAIHN0YXRpYyB2b2lkIHNjdHBfY2xvc2Uoc3RydWN0IHNvY2sgKnNrLCBsb25nIHRpbWVv dXQpCiAJc2tfY29tbW9uX3JlbGVhc2Uoc2spOwogCiAJYmhfdW5sb2NrX3NvY2soc2spOwotCWxv Y2FsX2JoX2VuYWJsZSgpOworCXNwaW5fdW5sb2NrX2JoKCZuZXQtPnNjdHAuYWRkcl93cV9sb2Nr KTsKIAogCXNvY2tfcHV0KHNrKTsKIApAQCAtMzU4MCw2ICszNTgyLDcgQEAgc3RhdGljIGludCBz Y3RwX3NldHNvY2tvcHRfYXV0b19hc2NvbmYoc3RydWN0IHNvY2sgKnNrLCBjaGFyIF9fdXNlciAq b3B0dmFsLAogCWlmICgodmFsICYmIHNwLT5kb19hdXRvX2FzY29uZikgfHwgKCF2YWwgJiYgIXNw LT5kb19hdXRvX2FzY29uZikpCiAJCXJldHVybiAwOwogCisJc3Bpbl9sb2NrX2JoKCZzb2NrX25l dChzayktPnNjdHAuYWRkcl93cV9sb2NrKTsKIAlpZiAodmFsID09IDAgJiYgc3AtPmRvX2F1dG9f YXNjb25mKSB7CiAJCWxpc3RfZGVsKCZzcC0+YXV0b19hc2NvbmZfbGlzdCk7CiAJCXNwLT5kb19h dXRvX2FzY29uZiA9IDA7CkBAIC0zNTg4LDYgKzM1OTEsNyBAQCBzdGF0aWMgaW50IHNjdHBfc2V0 c29ja29wdF9hdXRvX2FzY29uZihzdHJ1Y3Qgc29jayAqc2ssIGNoYXIgX191c2VyICpvcHR2YWws CiAJCSAgICAmc29ja19uZXQoc2spLT5zY3RwLmF1dG9fYXNjb25mX3NwbGlzdCk7CiAJCXNwLT5k b19hdXRvX2FzY29uZiA9IDE7CiAJfQorCXNwaW5fdW5sb2NrX2JoKCZzb2NrX25ldChzayktPnNj dHAuYWRkcl93cV9sb2NrKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDEyMSwxOCArNDEyNSwyOCBA QCBzdGF0aWMgaW50IHNjdHBfaW5pdF9zb2NrKHN0cnVjdCBzb2NrICpzaykKIAlsb2NhbF9iaF9k aXNhYmxlKCk7CiAJcGVyY3B1X2NvdW50ZXJfaW5jKCZzY3RwX3NvY2tldHNfYWxsb2NhdGVkKTsK IAlzb2NrX3Byb3RfaW51c2VfYWRkKG5ldCwgc2stPnNrX3Byb3QsIDEpOworCisJLyogTm90aGlu ZyBjYW4gZmFpbCBhZnRlciB0aGlzIGJsb2NrLCBvdGhlcndpc2UKKwkgKiBzY3RwX2Rlc3Ryb3lf c29jaygpIHdpbGwgYmUgY2FsbGVkIHdpdGhvdXQgYWRkcl93cV9sb2NrIGhlbGQKKwkgKi8KIAlp ZiAobmV0LT5zY3RwLmRlZmF1bHRfYXV0b19hc2NvbmYpIHsKKwkJc3Bpbl9sb2NrKCZzb2NrX25l dChzayktPnNjdHAuYWRkcl93cV9sb2NrKTsKIAkJbGlzdF9hZGRfdGFpbCgmc3AtPmF1dG9fYXNj b25mX2xpc3QsCiAJCSAgICAmbmV0LT5zY3RwLmF1dG9fYXNjb25mX3NwbGlzdCk7CiAJCXNwLT5k b19hdXRvX2FzY29uZiA9IDE7Ci0JfSBlbHNlCisJCXNwaW5fdW5sb2NrKCZzb2NrX25ldChzaykt PnNjdHAuYWRkcl93cV9sb2NrKTsKKwl9IGVsc2UgewogCQlzcC0+ZG9fYXV0b19hc2NvbmYgPSAw OworCX0KKwogCWxvY2FsX2JoX2VuYWJsZSgpOwogCiAJcmV0dXJuIDA7CiB9CiAKLS8qIENsZWFu dXAgYW55IFNDVFAgcGVyIHNvY2tldCByZXNvdXJjZXMuICAqLworLyogQ2xlYW51cCBhbnkgU0NU UCBwZXIgc29ja2V0IHJlc291cmNlcy4gTXVzdCBiZSBjYWxsZWQgd2l0aAorICogc29ja19uZXQo c2spLT5zY3RwLmFkZHJfd3FfbG9jayBoZWxkIGlmIHNwLT5kb19hdXRvX2FzY29uZiBpcyB0cnVl CisgKi8KIHN0YXRpYyB2b2lkIHNjdHBfZGVzdHJveV9zb2NrKHN0cnVjdCBzb2NrICpzaykKIHsK IAlzdHJ1Y3Qgc2N0cF9zb2NrICpzcDsKQEAgLTcxOTUsNiArNzIwOSwxOSBAQCB2b2lkIHNjdHBf Y29weV9zb2NrKHN0cnVjdCBzb2NrICpuZXdzaywgc3RydWN0IHNvY2sgKnNrLAogCW5ld2luZXQt Pm1jX2xpc3QgPSBOVUxMOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgc2N0cF9jb3B5X2Rlc2Nl bmRhbnQoc3RydWN0IHNvY2sgKnNrX3RvLAorCQkJCQljb25zdCBzdHJ1Y3Qgc29jayAqc2tfZnJv bSkKK3sKKwlpbnQgYW5jZXN0b3Jfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaW5ldF9zb2NrKSArCisJ CQkgICAgc2l6ZW9mKHN0cnVjdCBzY3RwX3NvY2spIC0KKwkJCSAgICBvZmZzZXRvZihzdHJ1Y3Qg c2N0cF9zb2NrLCBhdXRvX2FzY29uZl9saXN0KTsKKworCWlmIChza19mcm9tLT5za19mYW1pbHkg PT0gUEZfSU5FVDYpCisJCWFuY2VzdG9yX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBpcHY2X3BpbmZv KTsKKworCV9faW5ldF9za19jb3B5X2Rlc2NlbmRhbnQoc2tfdG8sIHNrX2Zyb20sIGFuY2VzdG9y X3NpemUpOworfQorCiAvKiBQb3B1bGF0ZSB0aGUgZmllbGRzIG9mIHRoZSBuZXdzayBmcm9tIHRo ZSBvbGRzayBhbmQgbWlncmF0ZSB0aGUgYXNzb2MKICAqIGFuZCBpdHMgbWVzc2FnZXMgdG8gdGhl IG5ld3NrLgogICovCkBAIC03MjA5LDcgKzcyMzYsNiBAQCBzdGF0aWMgdm9pZCBzY3RwX3NvY2tf bWlncmF0ZShzdHJ1Y3Qgc29jayAqb2xkc2ssIHN0cnVjdCBzb2NrICpuZXdzaywKIAlzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCAqdG1wOwogCXN0cnVjdCBzY3RwX3VscGV2ZW50ICpldmVudDsKIAlzdHJ1 Y3Qgc2N0cF9iaW5kX2hhc2hidWNrZXQgKmhlYWQ7Ci0Jc3RydWN0IGxpc3RfaGVhZCB0bXBsaXN0 OwogCiAJLyogTWlncmF0ZSBzb2NrZXQgYnVmZmVyIHNpemVzIGFuZCBhbGwgdGhlIHNvY2tldCBs ZXZlbCBvcHRpb25zIHRvIHRoZQogCSAqIG5ldyBzb2NrZXQuCkBAIC03MjE3LDEyICs3MjQzLDcg QEAgc3RhdGljIHZvaWQgc2N0cF9zb2NrX21pZ3JhdGUoc3RydWN0IHNvY2sgKm9sZHNrLCBzdHJ1 Y3Qgc29jayAqbmV3c2ssCiAJbmV3c2stPnNrX3NuZGJ1ZiA9IG9sZHNrLT5za19zbmRidWY7CiAJ bmV3c2stPnNrX3JjdmJ1ZiA9IG9sZHNrLT5za19yY3ZidWY7CiAJLyogQnJ1dGUgZm9yY2UgY29w eSBvbGQgc2N0cCBvcHQuICovCi0JaWYgKG9sZHNwLT5kb19hdXRvX2FzY29uZikgewotCQltZW1j cHkoJnRtcGxpc3QsICZuZXdzcC0+YXV0b19hc2NvbmZfbGlzdCwgc2l6ZW9mKHRtcGxpc3QpKTsK LQkJaW5ldF9za19jb3B5X2Rlc2NlbmRhbnQobmV3c2ssIG9sZHNrKTsKLQkJbWVtY3B5KCZuZXdz cC0+YXV0b19hc2NvbmZfbGlzdCwgJnRtcGxpc3QsIHNpemVvZih0bXBsaXN0KSk7Ci0JfSBlbHNl Ci0JCWluZXRfc2tfY29weV9kZXNjZW5kYW50KG5ld3NrLCBvbGRzayk7CisJc2N0cF9jb3B5X2Rl c2NlbmRhbnQobmV3c2ssIG9sZHNrKTsKIAogCS8qIFJlc3RvcmUgdGhlIGVwIHZhbHVlIHRoYXQg d2FzIG92ZXJ3cml0dGVuIHdpdGggdGhlIGFib3ZlIHN0cnVjdHVyZQogCSAqIGNvcHkuCi0tIAoy LjEuMAoKCkZyb20gMTIxMzkyNDYyNmFlOWRmNTIzMWEwOGQyYjFlNGQwODg3YzUwNGM2OCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8cmF6b3JAYmxh Y2t3YWxsLm9yZz4KRGF0ZTogTW9uLCAxNSBKdW4gMjAxNSAyMDoyODo1MSArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMDIvMjFdIGJyaWRnZTogZml4IGJyX3N0cF9zZXRfYnJpZGdlX3ByaW9yaXR5IHJh Y2UgY29uZGl0aW9ucwoKWyBVcHN0cmVhbSBjb21taXQgMmRhYjgwYThiNDg2ZjAyMjIyYTY5ZGFj YTY4NTk1MTllMDU3ODFkOSBdCgpBZnRlciB0aGUgLT5zZXQoKSBzcGlubG9ja3Mgd2VyZSByZW1v dmVkIGJyX3N0cF9zZXRfYnJpZGdlX3ByaW9yaXR5CndhcyBsZWZ0IHJ1bm5pbmcgd2l0aG91dCBh bnkgcHJvdGVjdGlvbiB3aGVuIHVzZWQgdmlhIHN5c2ZzLiBJdCBjYW4KcmFjZSB3aXRoIHBvcnQg YWRkL2RlbCBhbmQgY291bGQgcmVzdWx0IGluIHVzZS1hZnRlci1mcmVlIGNhc2VzIGFuZApjb3Jy dXB0ZWQgbGlzdHMuIFRlc3RlZCBieSBydW5uaW5nIHBvcnQgYWRkL2RlbCBpbiBhIGxvb3Agd2l0 aCBzdHAKZW5hYmxlZCB3aGlsZSBzZXR0aW5nIHByaW9yaXR5IGluIGEgbG9vcCwgY3Jhc2hlcyBh cmUgZWFzaWx5CnJlcHJvZHVjaWJsZS4KVGhlIHNwaW5sb2NrcyBhcm91bmQgc3lzZnMgLT5zZXQo KSB3ZXJlIHJlbW92ZWQgaW4gY29tbWl0OgoxNGY5OGYyNThmMTkgKCJicmlkZ2U6IHJhbmdlIGNo ZWNrIFNUUCBwYXJhbWV0ZXJzIikKVGhlcmUncyBhbHNvIGEgcmFjZSBjb25kaXRpb24gaW4gdGhl IG5ldGxpbmsgcHJpb3JpdHkgc3VwcG9ydCB0aGF0IGlzCmZpeGVkIGJ5IHRoaXMgY2hhbmdlLCBi dXQgaXQgd2FzIGludHJvZHVjZWQgcmVjZW50bHkgYW5kIHRoZSBmaXhlcyB0YWcKY292ZXJzIGl0 LCBqdXN0IGluIGNhc2UgaXQncyBuZWVkZWQgdGhlIGNvbW1pdCBpczoKYWY2MTU3NjJlOTcyICgi YnJpZGdlOiBhZGQgYWdlaW5nX3RpbWUsIHN0cF9zdGF0ZSwgcHJpb3JpdHkgb3ZlciBuZXRsaW5r IikKClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPHJhem9yQGJsYWNrd2FsbC5v cmc+CkZpeGVzOiAxNGY5OGYyNThmMTkgKCJicmlkZ2U6IHJhbmdlIGNoZWNrIFNUUCBwYXJhbWV0 ZXJzIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9icmlkZ2UvYnJfaW9jdGwuYyAgfCAyIC0tCiBuZXQvYnJpZGdlL2JyX3N0cF9p Zi5jIHwgNCArKystCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX2lvY3RsLmMgYi9uZXQvYnJpZGdlL2Jy X2lvY3RsLmMKaW5kZXggYTlhNGExYi4uOGQ0MjNiYyAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9i cl9pb2N0bC5jCisrKyBiL25ldC9icmlkZ2UvYnJfaW9jdGwuYwpAQCAtMjQ3LDkgKzI0Nyw3IEBA IHN0YXRpYyBpbnQgb2xkX2Rldl9pb2N0bChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qg aWZyZXEgKnJxLCBpbnQgY21kKQogCQlpZiAoIW5zX2NhcGFibGUoZGV2X25ldChkZXYpLT51c2Vy X25zLCBDQVBfTkVUX0FETUlOKSkKIAkJCXJldHVybiAtRVBFUk07CiAKLQkJc3Bpbl9sb2NrX2Jo KCZici0+bG9jayk7CiAJCWJyX3N0cF9zZXRfYnJpZGdlX3ByaW9yaXR5KGJyLCBhcmdzWzFdKTsK LQkJc3Bpbl91bmxvY2tfYmgoJmJyLT5sb2NrKTsKIAkJcmV0dXJuIDA7CiAKIAljYXNlIEJSQ1RM X1NFVF9QT1JUX1BSSU9SSVRZOgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9zdHBfaWYuYyBi L25ldC9icmlkZ2UvYnJfc3RwX2lmLmMKaW5kZXggNDExNDY4Ny4uNzgzMmQwNyAxMDA2NDQKLS0t IGEvbmV0L2JyaWRnZS9icl9zdHBfaWYuYworKysgYi9uZXQvYnJpZGdlL2JyX3N0cF9pZi5jCkBA IC0yNDMsMTIgKzI0MywxMyBAQCBib29sIGJyX3N0cF9yZWNhbGN1bGF0ZV9icmlkZ2VfaWQoc3Ry dWN0IG5ldF9icmlkZ2UgKmJyKQogCXJldHVybiB0cnVlOwogfQogCi0vKiBjYWxsZWQgdW5kZXIg YnJpZGdlIGxvY2sgKi8KKy8qIEFjcXVpcmVzIGFuZCByZWxlYXNlcyBicmlkZ2UgbG9jayAqLwog dm9pZCBicl9zdHBfc2V0X2JyaWRnZV9wcmlvcml0eShzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsIHUx NiBuZXdwcmlvKQogewogCXN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnA7CiAJaW50IHdhc3Jvb3Q7 CiAKKwlzcGluX2xvY2tfYmgoJmJyLT5sb2NrKTsKIAl3YXNyb290ID0gYnJfaXNfcm9vdF9icmlk Z2UoYnIpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShwLCAmYnItPnBvcnRfbGlzdCwgbGlzdCkg ewpAQCAtMjY2LDYgKzI2Nyw3IEBAIHZvaWQgYnJfc3RwX3NldF9icmlkZ2VfcHJpb3JpdHkoc3Ry dWN0IG5ldF9icmlkZ2UgKmJyLCB1MTYgbmV3cHJpbykKIAlicl9wb3J0X3N0YXRlX3NlbGVjdGlv bihicik7CiAJaWYgKGJyX2lzX3Jvb3RfYnJpZGdlKGJyKSAmJiAhd2Fzcm9vdCkKIAkJYnJfYmVj b21lX3Jvb3RfYnJpZGdlKGJyKTsKKwlzcGluX3VubG9ja19iaCgmYnItPmxvY2spOwogfQogCiAv KiBjYWxsZWQgdW5kZXIgYnJpZGdlIGxvY2sgKi8KLS0gCjIuMS4wCgoKRnJvbSBmZTdiNTM4N2Q1 NmQwNTk5NTQ0MzE2Y2QzOGM2MWJhZDQ2ZTNmYWUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMTYgSnVu IDIwMTUgMDc6NTk6MTEgLTA3MDAKU3ViamVjdDogW1BBVENIIDAzLzIxXSBwYWNrZXQ6IHJlYWQg bnVtX21lbWJlcnMgb25jZSBpbiBwYWNrZXRfcmN2X2Zhbm91dCgpCgpbIFVwc3RyZWFtIGNvbW1p dCBmOThmNDUxNGQwNzg3MWRhN2ExMTNkZDllM2UzMzA3NDNmZDcwYWU0IF0KCldlIG5lZWQgdG8g dGVsbCBjb21waWxlciBpdCBtdXN0IG5vdCByZWFkIGYtPm51bV9tZW1iZXJzIG11bHRpcGxlCnRp bWVzLiBPdGhlcndpc2UgdGVzdGluZyBpZiBudW0gaXMgbm90IHplcm8gaXMgZmxha3ksIGFuZCB3 ZSBjb3VsZAphdHRlbXB0IGFuIGludmFsaWQgZGl2aWRlIGJ5IDAgaW4gZmFub3V0X2RlbXV4X2Nw dSgpCgpOb3RlIGJ1ZyB3YXMgcHJlc2VudCBpbiBwYWNrZXRfcmN2X2Zhbm91dF9oYXNoKCkgYW5k CnBhY2tldF9yY3ZfZmFub3V0X2xiKCkgYnV0IGZpbmFsIDMuMSBoYWQgYSBzaW1wbGUgbG9jYXRp b24KYWZ0ZXIgY29tbWl0IDk1ZWMzZWI0MTcxMTVmYiAoInBhY2tldDogQWRkICdjcHUnIGZhbm91 dCBwb2xpY3kuIikKCkZpeGVzOiBkYzk5ZjYwMDY5OGRjICgicGFja2V0OiBBZGQgZmFub3V0IHN1 cHBvcnQuIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpDYzogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9h Zl9wYWNrZXQuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0 L2FmX3BhY2tldC5jCmluZGV4IGI1OTg5YzYuLjEzMTU0NWEgMTAwNjQ0Ci0tLSBhL25ldC9wYWNr ZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMTM1Myw3ICsx MzUzLDcgQEAgc3RhdGljIGludCBwYWNrZXRfcmN2X2Zhbm91dChzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJICAgICBzdHJ1Y3QgcGFja2V0X3R5cGUgKnB0 LCBzdHJ1Y3QgbmV0X2RldmljZSAqb3JpZ19kZXYpCiB7CiAJc3RydWN0IHBhY2tldF9mYW5vdXQg KmYgPSBwdC0+YWZfcGFja2V0X3ByaXY7Ci0JdW5zaWduZWQgaW50IG51bSA9IGYtPm51bV9tZW1i ZXJzOworCXVuc2lnbmVkIGludCBudW0gPSBSRUFEX09OQ0UoZi0+bnVtX21lbWJlcnMpOwogCXN0 cnVjdCBwYWNrZXRfc29jayAqcG87CiAJdW5zaWduZWQgaW50IGlkeDsKIAotLSAKMi4xLjAKCgpG cm9tIGU2N2Q1NmUwOWMzNTY1MzY2ZDIyMzJmNmQ5MGJkOTE1MjI3NzA0M2YgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxNyBKdW4gMjAxNSAxNTo1OTozNCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDQv MjFdIHBhY2tldDogYXZvaWQgb3V0IG9mIGJvdW5kcyByZWFkIGluIHJvdW5kIHJvYmluIGZhbm91 dAoKWyBVcHN0cmVhbSBjb21taXQgNDY4NDc5ZTYwNDNjODRmNWE2NTI5OWNjMDdjYjA4YTIyYTI4 YzJiMSBdCgpQQUNLRVRfRkFOT1VUX0xCIGNvbXB1dGVzIGYtPnJyX2N1ciBzdWNoIHRoYXQgaXQg aXMgbW9kdWxvCmYtPm51bV9tZW1iZXJzLiBJdCByZXR1cm5zIHRoZSBvbGQgdmFsdWUgdW5jb25k aXRpb25hbGx5LCBidXQKZi0+bnVtX21lbWJlcnMgbWF5IGhhdmUgY2hhbmdlZCBzaW5jZSB0aGUg bGFzdCBzdG9yZS4gRW5zdXJlCnRoYXQgdGhlIHJldHVybiB2YWx1ZSBpcyBhbHdheXMgPCBudW0u CgpXaGVuIG1vZGlmeWluZyB0aGUgbG9naWMsIHNpbXBsaWZ5IGl0IGZ1cnRoZXIgYnkgcmVwbGFj aW5nIHRoZSBsb29wCndpdGggYW4gdW5jb25kaXRpb25hbCBhdG9taWMgaW5jcmVtZW50LgoKRml4 ZXM6IGRjOTlmNjAwNjk4ZCAoInBhY2tldDogQWRkIGZhbm91dCBzdXBwb3J0LiIpClN1Z2dlc3Rl ZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBX aWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgMTggKyst LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tl dC9hZl9wYWNrZXQuYwppbmRleCAxMzE1NDVhLi5mZTE2MTBkIDEwMDY0NAotLS0gYS9uZXQvcGFj a2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTEyNzIsMTYg KzEyNzIsNiBAQCBzdGF0aWMgdm9pZCBwYWNrZXRfc29ja19kZXN0cnVjdChzdHJ1Y3Qgc29jayAq c2spCiAJc2tfcmVmY250X2RlYnVnX2RlYyhzayk7CiB9CiAKLXN0YXRpYyBpbnQgZmFub3V0X3Jy X25leHQoc3RydWN0IHBhY2tldF9mYW5vdXQgKmYsIHVuc2lnbmVkIGludCBudW0pCi17Ci0JaW50 IHggPSBhdG9taWNfcmVhZCgmZi0+cnJfY3VyKSArIDE7Ci0KLQlpZiAoeCA+PSBudW0pCi0JCXgg PSAwOwotCi0JcmV0dXJuIHg7Ci19Ci0KIHN0YXRpYyB1bnNpZ25lZCBpbnQgZmFub3V0X2RlbXV4 X2hhc2goc3RydWN0IHBhY2tldF9mYW5vdXQgKmYsCiAJCQkJICAgICAgc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAkJCQkgICAgICB1bnNpZ25lZCBpbnQgbnVtKQpAQCAtMTI5MywxMyArMTI4Myw5IEBA IHN0YXRpYyB1bnNpZ25lZCBpbnQgZmFub3V0X2RlbXV4X2xiKHN0cnVjdCBwYWNrZXRfZmFub3V0 ICpmLAogCQkJCSAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCSAgICB1bnNpZ25lZCBpbnQg bnVtKQogewotCWludCBjdXIsIG9sZDsKKwl1bnNpZ25lZCBpbnQgdmFsID0gYXRvbWljX2luY19y ZXR1cm4oJmYtPnJyX2N1cik7CiAKLQljdXIgPSBhdG9taWNfcmVhZCgmZi0+cnJfY3VyKTsKLQl3 aGlsZSAoKG9sZCA9IGF0b21pY19jbXB4Y2hnKCZmLT5ycl9jdXIsIGN1ciwKLQkJCQkgICAgIGZh bm91dF9ycl9uZXh0KGYsIG51bSkpKSAhPSBjdXIpCi0JCWN1ciA9IG9sZDsKLQlyZXR1cm4gY3Vy OworCXJldHVybiB2YWwgJSBudW07CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZmFub3V0X2Rl bXV4X2NwdShzdHJ1Y3QgcGFja2V0X2Zhbm91dCAqZiwKLS0gCjIuMS4wCgoKRnJvbSA5M2Y2NTYx YzEzYzFkYTJkYWI0YmJjNWE0MWExMzA0ZWU3Mzk0NTVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKdWxpYW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+CkRhdGU6IFR1ZSwgMTYgSnVuIDIw MTUgMjI6NTY6MzkgKzAzMDAKU3ViamVjdDogW1BBVENIIDA1LzIxXSBuZWlnaDogZG8gbm90IG1v ZGlmeSB1bmxpbmtlZCBlbnRyaWVzCgpbIFVwc3RyZWFtIGNvbW1pdCAyYzUxYTk3Zjc2ZDIwZWJm MWY1MGZlZjkwOGI5ODZjYjA1MWZkZmY5IF0KClRoZSBsb2NrbGVzcyBsb29rdXBzIGNhbiByZXR1 cm4gZW50cnkgdGhhdCBpcyB1bmxpbmtlZC4KU29tZXRpbWVzIHRoZXkgZ2V0IHJlZmVyZW5jZSBi ZWZvcmUgbGFzdCBuZWlnaF9jbGVhbnVwX2FuZF9yZWxlYXNlLApzb21ldGltZXMgdGhleSBkbyBu b3QgbmVlZCByZWZlcmVuY2UuIExhdGVyLCBhbnkKbW9kaWZpY2F0aW9uIGF0dGVtcHRzIG1heSBy ZXN1bHQgaW4gdGhlIGZvbGxvd2luZyBwcm9ibGVtczoKCjEuIGVudHJ5IGlzIG5vdCBkZXN0cm95 ZWQgaW1tZWRpYXRlbHkgYmVjYXVzZSBuZWlnaF91cGRhdGUKY2FuIHN0YXJ0IHRoZSB0aW1lciBm b3IgZGVhZCBlbnRyeSwgZWcuIG9uIGNoYW5nZSB0byBOVURfUkVBQ0hBQkxFCnN0YXRlLiBBcyBy ZXN1bHQsIGVudHJ5IGxpdmVzIGZvciBzb21lIHRpbWUgYnV0IGlzIGludmlzaWJsZQphbmQgb3V0 IG9mIGNvbnRyb2wuCgoyLiBfX25laWdoX2V2ZW50X3NlbmQgY2FuIHJ1biBpbiBwYXJhbGxlbCB3 aXRoIG5laWdoX2Rlc3Ryb3kKd2hpbGUgcmVmY250PTAgYnV0IGlmIHRpbWVyIGlzIHN0YXJ0ZWQg YW5kIGV4cGlyZWQgcmVmY250IGNhbgpyZWFjaCAwIGZvciBzZWNvbmQgdGltZSBsZWFkaW5nIHRv IHNlY29uZCBuZWlnaF9kZXN0cm95IGFuZApwb3NzaWJsZSBjcmFzaC4KClRoYW5rcyB0byBFcmlj IER1bWF6ZXQgYW5kIFlpbmcgWHVlIGZvciB0aGVpciB3b3JrIGFuZCBhbmFseXplCm9uIHRoZSBf X25laWdoX2V2ZW50X3NlbmQgY2hhbmdlLgoKRml4ZXM6IDc2N2U5N2UxZTBkYiAoIm5laWdoOiBS Q1UgY29udmVyc2lvbiBvZiBzdHJ1Y3QgbmVpZ2hib3VyIikKRml4ZXM6IGEyNjNiMzA5MzY0MSAo ImlwdjQ6IE1ha2UgbmVpZ2ggbG9va3VwcyBkaXJlY3RseSBpbiBvdXRwdXQgcGFja2V0IHBhdGgu IikKRml4ZXM6IDZmZDZjZTIwNTZkZSAoImlwdjY6IERvIG5vdCBkZXBlbmQgb24gcnQtPm4gaW4g aXA2X2ZpbmlzaF9vdXRwdXQyKCkuIikKQ2M6IEVyaWMgRHVtYXpldCA8ZXJpYy5kdW1hemV0QGdt YWlsLmNvbT4KQ2M6IFlpbmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpTaWduZWQtb2Zm LWJ5OiBKdWxpYW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9uZWlnaGJvdXIuYyB8IDEzICsrKysrKysr KysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L2NvcmUvbmVpZ2hib3VyLmMgYi9uZXQvY29yZS9uZWlnaGJvdXIuYwppbmRleCAzZGU2NTQyLi4y MjM3YzFiIDEwMDY0NAotLS0gYS9uZXQvY29yZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29yZS9u ZWlnaGJvdXIuYwpAQCAtOTU3LDYgKzk1Nyw4IEBAIGludCBfX25laWdoX2V2ZW50X3NlbmQoc3Ry dWN0IG5laWdoYm91ciAqbmVpZ2gsIHN0cnVjdCBza19idWZmICpza2IpCiAJcmMgPSAwOwogCWlm IChuZWlnaC0+bnVkX3N0YXRlICYgKE5VRF9DT05ORUNURUQgfCBOVURfREVMQVkgfCBOVURfUFJP QkUpKQogCQlnb3RvIG91dF91bmxvY2tfYmg7CisJaWYgKG5laWdoLT5kZWFkKQorCQlnb3RvIG91 dF9kZWFkOwogCiAJaWYgKCEobmVpZ2gtPm51ZF9zdGF0ZSAmIChOVURfU1RBTEUgfCBOVURfSU5D T01QTEVURSkpKSB7CiAJCWlmIChORUlHSF9WQVIobmVpZ2gtPnBhcm1zLCBNQ0FTVF9QUk9CRVMp ICsKQEAgLTEwMTMsNiArMTAxNSwxMyBAQCBvdXRfdW5sb2NrX2JoOgogCQl3cml0ZV91bmxvY2so Jm5laWdoLT5sb2NrKTsKIAlsb2NhbF9iaF9lbmFibGUoKTsKIAlyZXR1cm4gcmM7CisKK291dF9k ZWFkOgorCWlmIChuZWlnaC0+bnVkX3N0YXRlICYgTlVEX1NUQUxFKQorCQlnb3RvIG91dF91bmxv Y2tfYmg7CisJd3JpdGVfdW5sb2NrX2JoKCZuZWlnaC0+bG9jayk7CisJa2ZyZWVfc2tiKHNrYik7 CisJcmV0dXJuIDE7CiB9CiBFWFBPUlRfU1lNQk9MKF9fbmVpZ2hfZXZlbnRfc2VuZCk7CiAKQEAg LTEwNzYsNiArMTA4NSw4IEBAIGludCBuZWlnaF91cGRhdGUoc3RydWN0IG5laWdoYm91ciAqbmVp Z2gsIGNvbnN0IHU4ICpsbGFkZHIsIHU4IG5ldywKIAlpZiAoIShmbGFncyAmIE5FSUdIX1VQREFU RV9GX0FETUlOKSAmJgogCSAgICAob2xkICYgKE5VRF9OT0FSUCB8IE5VRF9QRVJNQU5FTlQpKSkK IAkJZ290byBvdXQ7CisJaWYgKG5laWdoLT5kZWFkKQorCQlnb3RvIG91dDsKIAogCWlmICghKG5l dyAmIE5VRF9WQUxJRCkpIHsKIAkJbmVpZ2hfZGVsX3RpbWVyKG5laWdoKTsKQEAgLTEyMjUsNiAr MTIzNiw4IEBAIEVYUE9SVF9TWU1CT0wobmVpZ2hfdXBkYXRlKTsKICAqLwogdm9pZCBfX25laWdo X3NldF9wcm9iZV9vbmNlKHN0cnVjdCBuZWlnaGJvdXIgKm5laWdoKQogeworCWlmIChuZWlnaC0+ ZGVhZCkKKwkJcmV0dXJuOwogCW5laWdoLT51cGRhdGVkID0gamlmZmllczsKIAlpZiAoIShuZWln aC0+bnVkX3N0YXRlICYgTlVEX0ZBSUxFRCkpCiAJCXJldHVybjsKLS0gCjIuMS4wCgoKRnJvbSAw ZjJhNTk2OWY0YzdmNmRhMjcyNTkyYjJhNDAwZDFiNTViMmM3MGZhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKb2hhbm5lcyBCZXJnIDxqb2hhbm5lcy5iZXJnQGludGVsLmNvbT4KRGF0 ZTogV2VkLCAxNyBKdW4gMjAxNSAxMzo1NDo1NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMjFd IG1hYzgwMjExOiBmaXggbG9ja2luZyBpbgogdXBkYXRlX3ZsYW5fdGFpbHJvb21fbmVlZF9jb3Vu dCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA1MWY0NThkOTYxMjE3N2Y2OWMyZTJjNDM3MDM0YWUxNWY5 MzA3OGU3IF0KClVuZm9ydHVuYXRlbHksIE1pY2hhbCdzIGNoYW5nZSB0byBmaXggQVBfVkxBTiBj cnlwdG8gdGFpbHJvb20KY2F1c2VkIGEgbG9ja2luZyBpc3N1ZSB0aGF0IHdhcyByZXBvcnRlZCBi eSBsb2NrZGVwLCBidXQgb25seQppbiBhIGZldyBjYXNlcyAtIHRoZSBpc3N1ZSB3YXMgYSBjbGFz c2ljIEFCQkEgZGVhZGxvY2sgY2F1c2VkCmJ5IHRha2luZyB0aGUgbXR4IGFmdGVyIHRoZSBrZXlf bXR4LCB3aGVyZSBub3JtYWxseSB0aGV5J3JlCnRha2VuIHRoZSBvdGhlciB3YXkgYXJvdW5kLgoK QXMgdGhlIGtleSBtdXRleCBwcm90ZWN0cyB0aGUgZmllbGQgaW4gcXVlc3Rpb24gKEknbSBhZGRp bmcgYQpmZXcgYW5ub3RhdGlvbnMgdG8gbWFrZSB0aGF0IGNsZWFyKSBvbmx5IHRoZSBpdGVyYXRp b24gbmVlZHMKdG8gYmUgcHJvdGVjdGVkLCBidXQgd2UgY2FuIGFsc28gaXRlcmF0ZSB0aGUgaW50 ZXJmYWNlIGxpc3QKd2l0aCBqdXN0IFJDVSBwcm90ZWN0aW9uIHdoaWxlIGhvbGRpbmcgdGhlIGtl eSBtdXRleC4KCkZpeGVzOiBmOWRjYTgwYjk4Y2EgKCJtYWM4MDIxMTogZml4IEFQX1ZMQU4gY3J5 cHRvIHRhaWxyb29tIGNhbGN1bGF0aW9uIikKU2lnbmVkLW9mZi1ieTogSm9oYW5uZXMgQmVyZyA8 am9oYW5uZXMuYmVyZ0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbWFjODAyMTEva2V5LmMgfCAxMyArKysrKysr KysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEva2V5LmMgYi9uZXQvbWFjODAyMTEva2V5LmMKaW5k ZXggYTkwN2YyZC4uODFlOTc4NSAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL2tleS5jCisrKyBi L25ldC9tYWM4MDIxMS9rZXkuYwpAQCAtNjYsMTIgKzY2LDE1IEBAIHVwZGF0ZV92bGFuX3RhaWxy b29tX25lZWRfY291bnQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsIGludCBk ZWx0YSkKIAlpZiAoc2RhdGEtPnZpZi50eXBlICE9IE5MODAyMTFfSUZUWVBFX0FQKQogCQlyZXR1 cm47CiAKLQltdXRleF9sb2NrKCZzZGF0YS0+bG9jYWwtPm10eCk7CisJLyogY3J5cHRvX3R4X3Rh aWxyb29tX25lZWRlZF9jbnQgaXMgcHJvdGVjdGVkIGJ5IHRoaXMgKi8KKwlhc3NlcnRfa2V5X2xv Y2soc2RhdGEtPmxvY2FsKTsKKworCXJjdV9yZWFkX2xvY2soKTsKIAotCWxpc3RfZm9yX2VhY2hf ZW50cnkodmxhbiwgJnNkYXRhLT51LmFwLnZsYW5zLCB1LnZsYW4ubGlzdCkKKwlsaXN0X2Zvcl9l YWNoX2VudHJ5X3JjdSh2bGFuLCAmc2RhdGEtPnUuYXAudmxhbnMsIHUudmxhbi5saXN0KQogCQl2 bGFuLT5jcnlwdG9fdHhfdGFpbHJvb21fbmVlZGVkX2NudCArPSBkZWx0YTsKIAotCW11dGV4X3Vu bG9jaygmc2RhdGEtPmxvY2FsLT5tdHgpOworCXJjdV9yZWFkX3VubG9jaygpOwogfQogCiBzdGF0 aWMgdm9pZCBpbmNyZW1lbnRfdGFpbHJvb21fbmVlZF9jb3VudChzdHJ1Y3QgaWVlZTgwMjExX3N1 Yl9pZl9kYXRhICpzZGF0YSkKQEAgLTk1LDYgKzk4LDggQEAgc3RhdGljIHZvaWQgaW5jcmVtZW50 X3RhaWxyb29tX25lZWRfY291bnQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEp CiAJICogaHR0cDovL21pZC5nbWFuZS5vcmcvMTMwODU5MDk4MC40MzIyLjE5LmNhbWVsQGpsdDMu c2lwc29sdXRpb25zLm5ldAogCSAqLwogCisJYXNzZXJ0X2tleV9sb2NrKHNkYXRhLT5sb2NhbCk7 CisKIAl1cGRhdGVfdmxhbl90YWlscm9vbV9uZWVkX2NvdW50KHNkYXRhLCAxKTsKIAogCWlmICgh c2RhdGEtPmNyeXB0b190eF90YWlscm9vbV9uZWVkZWRfY250KyspIHsKQEAgLTEwOSw2ICsxMTQs OCBAQCBzdGF0aWMgdm9pZCBpbmNyZW1lbnRfdGFpbHJvb21fbmVlZF9jb3VudChzdHJ1Y3QgaWVl ZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSkKIHN0YXRpYyB2b2lkIGRlY3JlYXNlX3RhaWxyb29t X25lZWRfY291bnQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsCiAJCQkJCSBp bnQgZGVsdGEpCiB7CisJYXNzZXJ0X2tleV9sb2NrKHNkYXRhLT5sb2NhbCk7CisKIAlXQVJOX09O X09OQ0Uoc2RhdGEtPmNyeXB0b190eF90YWlscm9vbV9uZWVkZWRfY250IDwgZGVsdGEpOwogCiAJ dXBkYXRlX3ZsYW5fdGFpbHJvb21fbmVlZF9jb3VudChzZGF0YSwgLWRlbHRhKTsKLS0gCjIuMS4w CgoKRnJvbSA0ZjAzOTIxZWY5NzhjYTRiMDk0MDNjNTI1MDhkN2QwYThmZjZmMWVjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGFzIFNlcmdlZXYgPHN0c3BAbGlzdC5ydT4KRGF0ZTog VGh1LCAxOCBKdW4gMjAxNSAxODozNjowMyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjFdIG12 bmV0YTogYWRkIGZvcmdvdHRlbiBpbml0aWFsaXphdGlvbiBvZiBhdXRvbmVnb3RpYXRpb24KIGJp dHMKClsgVXBzdHJlYW0gY29tbWl0IDUzODc2MWI3OTRjMTU0MmYxYzZlMzFlYWRkOWQ3YWFlMTE4 ODg5ZjcgXQoKVGhlIGNvbW1pdCA4OThiMjk3MGUyYzkgKCJtdm5ldGE6IGltcGxlbWVudCBTR01J SS1iYXNlZCBpbi1iYW5kIGxpbmsgc3RhdGUKc2lnbmFsaW5nIikKY2hhbmdlZCBtdm5ldGFfYWRq dXN0X2xpbmsoKSBzbyB0aGF0IGl0IGRvZXMgbm90IGNsZWFyIHRoZSBhdXRvLW5lZ290aWF0aW9u CmJpdHMgaW4gTVZORVRBX0dNQUNfQVVUT05FR19DT05GSUcgcmVnaXN0ZXIuIFRoaXMgd2FzIG5l Y2Vzc2FyeSBmb3IKYXV0by1uZWdvdGlhdGlvbiBtb2RlIHRvIHdvcmsuClVuZm9ydHVuYXRlbHkg SSBoYXZlbid0IGNoZWNrZWQgaWYgdGhlc2UgYml0cyBhcmUgZXZlciBpbml0aWFsaXplZC4KSXQg YXBwZWFycyB0aGV5IGFyZSBub3QuClRoaXMgcGF0Y2ggYWRkcyB0aGUgbWlzc2luZyBpbml0aWFs aXphdGlvbiBvZiB0aGUgYXV0by1uZWdvdGlhdGlvbiBiaXRzCmluIHRoZSBNVk5FVEFfR01BQ19B VVRPTkVHX0NPTkZJRyByZWdpc3Rlci4KSXQgZml4ZXMgdGhlIGZvbGxvd2luZyByZWdyZXNzaW9u OgpodHRwczovL3d3dy5tYWlsLWFyY2hpdmUuY29tL25ldGRldkB2Z2VyLmtlcm5lbC5vcmcvbXNn Njc5MjguaHRtbAoKU2luY2UgdGhlIHBhdGNoIHdhcyB0ZXN0ZWQgdG8gZml4IGEgcmVncmVzc2lv biwgaXQgc2hvdWxkIGJlIGFwcGxpZWQgdG8Kc3RhYmxlIHRyZWUuCgpUZXN0ZWQtYnk6IEFybmF1 ZCBFYmFsYXJkIDxhcm5vQG5hdGlzYmFkLm9yZz4KCkNDOiBUaG9tYXMgUGV0YXp6b25pIDx0aG9t YXMucGV0YXp6b25pQGZyZWUtZWxlY3Ryb25zLmNvbT4KQ0M6IEZsb3JpYW4gRmFpbmVsbGkgPGYu ZmFpbmVsbGlAZ21haWwuY29tPgpDQzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpDQzogbGludXgt a2VybmVsQHZnZXIua2VybmVsLm9yZwpDQzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwoKU2lnbmVk LW9mZi1ieTogU3RhcyBTZXJnZWV2IDxzdHNwQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMgfCA2ICsrKysrKwogMSBmaWxlIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21h cnZlbGwvbXZuZXRhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCmlu ZGV4IGNlNWY3ZjkuLjc0MTc2ZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21h cnZlbGwvbXZuZXRhLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEu YwpAQCAtMTAxMyw2ICsxMDEzLDEyIEBAIHN0YXRpYyB2b2lkIG12bmV0YV9kZWZhdWx0c19zZXQo c3RydWN0IG12bmV0YV9wb3J0ICpwcCkKIAkJdmFsID0gbXZyZWdfcmVhZChwcCwgTVZORVRBX0dN QUNfQ0xPQ0tfRElWSURFUik7CiAJCXZhbCB8PSBNVk5FVEFfR01BQ18xTVNfQ0xPQ0tfRU5BQkxF OwogCQltdnJlZ193cml0ZShwcCwgTVZORVRBX0dNQUNfQ0xPQ0tfRElWSURFUiwgdmFsKTsKKwl9 IGVsc2UgeworCQl2YWwgPSBtdnJlZ19yZWFkKHBwLCBNVk5FVEFfR01BQ19BVVRPTkVHX0NPTkZJ Ryk7CisJCXZhbCAmPSB+KE1WTkVUQV9HTUFDX0lOQkFORF9BTl9FTkFCTEUgfAorCQkgICAgICAg TVZORVRBX0dNQUNfQU5fU1BFRURfRU4gfAorCQkgICAgICAgTVZORVRBX0dNQUNfQU5fRFVQTEVY X0VOKTsKKwkJbXZyZWdfd3JpdGUocHAsIE1WTkVUQV9HTUFDX0FVVE9ORUdfQ09ORklHLCB2YWwp OwogCX0KIAogCW12bmV0YV9zZXRfdWNhc3RfdGFibGUocHAsIC0xKTsKLS0gCjIuMS4wCgoKRnJv bSBlYWMxNWYzNDZlMWZjZmZiOGJhZmYyZmY4ZmI1OWZkMWY2ZTkxYzEyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggUGFhc2NoIDxjcGFhc2NoQGFwcGxlLmNvbT4KRGF0 ZTogVGh1LCAxOCBKdW4gMjAxNSAwOToxNTozNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMjFd IHRjcDogRG8gbm90IGNhbGwgdGNwX2Zhc3RvcGVuX3Jlc2V0X2NpcGhlciBmcm9tCiBpbnRlcnJ1 cHQgY29udGV4dAoKWyBVcHN0cmVhbSBjb21taXQgZGZlYTJhYTY1NDI0M2Y3MGRjNTNiODY0OGQw YmJkZWVjNTVhN2RmMSBdCgp0Y3BfZmFzdG9wZW5fcmVzZXRfY2lwaGVyIHJlYWxseSBjYW5ub3Qg YmUgY2FsbGVkIGZyb20gaW50ZXJydXB0CmNvbnRleHQuIEl0IGFsbG9jYXRlcyB0aGUgdGNwX2Zh c3RvcGVuX2NvbnRleHQgd2l0aCBHRlBfS0VSTkVMIGFuZApjYWxscyBjcnlwdG9fYWxsb2NfY2lw aGVyLCB3aGljaCBhbGxvY2F0ZXMgYWxsIGtpbmQgb2Ygc3R1ZmYgd2l0aApHRlBfS0VSTkVMLgoK VGh1cywgd2UgbWlnaHQgc2xlZXAgd2hlbiB0aGUga2V5LWdlbmVyYXRpb24gaXMgdHJpZ2dlcmVk IGJ5IGFuCmluY29taW5nIFRGTyBjb29raWUtcmVxdWVzdCB3aGljaCB3b3VsZCB0aGVuIGhhcHBl biBpbiBpbnRlcnJ1cHQtCmNvbnRleHQsIGFzIHNob3duIGJ5IGVuYWJsaW5nIENPTkZJR19ERUJV R19BVE9NSUNfU0xFRVA6CgpbICAgMzYuMDAxODEzXSBCVUc6IHNsZWVwaW5nIGZ1bmN0aW9uIGNh bGxlZCBmcm9tIGludmFsaWQgY29udGV4dCBhdCBtbS9zbHViLmM6MTI2NgpbICAgMzYuMDAzNjI0 XSBpbl9hdG9taWMoKTogMSwgaXJxc19kaXNhYmxlZCgpOiAwLCBwaWQ6IDEwMTYsIG5hbWU6IHBh Y2tldGRyaWxsClsgICAzNi4wMDQ4NTldIENQVTogMSBQSUQ6IDEwMTYgQ29tbTogcGFja2V0ZHJp bGwgTm90IHRhaW50ZWQgNC4xLjAtcmM3ICMxNApbICAgMzYuMDA2MDg1XSBIYXJkd2FyZSBuYW1l OiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyByZWwtMS43LjUt MC1nZTUxNDg4Yy0yMDE0MDYwMl8xNjQ2MTItbmlsc3Nvbi5ob21lLmtyYXhlbC5vcmcgMDQvMDEv MjAxNApbICAgMzYuMDA4MjUwXSAgMDAwMDAwMDAwMDAwMDRmMiBmZmZmODgwMDdmODgzOGE4IGZm ZmZmZmZmODE3MWQ1M2EgZmZmZjg4MDA3NWEwODRhOApbICAgMzYuMDA5NjMwXSAgZmZmZjg4MDA3 NWEwODAwMCBmZmZmODgwMDdmODgzOGM4IGZmZmZmZmZmODEwOTY3ZDMgZmZmZjg4MDA3Zjg4Mzky OApbICAgMzYuMDExMDc2XSAgMDAwMDAwMDAwMDAwMDAwMCBmZmZmODgwMDdmODgzOGY4IGZmZmZm ZmZmODEwOTY4OTIgZmZmZjg4MDA3Zjg5YmUwMApbICAgMzYuMDEyNDk0XSBDYWxsIFRyYWNlOgpb ICAgMzYuMDEyOTUzXSAgPElSUT4gIFs8ZmZmZmZmZmY4MTcxZDUzYT5dIGR1bXBfc3RhY2srMHg0 Zi8weDZkClsgICAzNi4wMTQwODVdICBbPGZmZmZmZmZmODEwOTY3ZDM+XSBfX19taWdodF9zbGVl cCsweDEwMy8weDE3MApbICAgMzYuMDE1MTE3XSAgWzxmZmZmZmZmZjgxMDk2ODkyPl0gX19taWdo dF9zbGVlcCsweDUyLzB4OTAKWyAgIDM2LjAxNjExN10gIFs8ZmZmZmZmZmY4MTE4ZTg4Nz5dIGtt ZW1fY2FjaGVfYWxsb2NfdHJhY2UrMHg0Ny8weDE5MApbICAgMzYuMDE3MjY2XSAgWzxmZmZmZmZm ZjgxNjgwZDgyPl0gPyB0Y3BfZmFzdG9wZW5fcmVzZXRfY2lwaGVyKzB4NDIvMHgxMzAKWyAgIDM2 LjAxODQ4NV0gIFs8ZmZmZmZmZmY4MTY4MGQ4Mj5dIHRjcF9mYXN0b3Blbl9yZXNldF9jaXBoZXIr MHg0Mi8weDEzMApbICAgMzYuMDE5Njc5XSAgWzxmZmZmZmZmZjgxNjgwZjAxPl0gdGNwX2Zhc3Rv cGVuX2luaXRfa2V5X29uY2UrMHg2MS8weDcwClsgICAzNi4wMjA4ODRdICBbPGZmZmZmZmZmODE2 ODBmMmM+XSBfX3RjcF9mYXN0b3Blbl9jb29raWVfZ2VuKzB4MWMvMHg2MApbICAgMzYuMDIyMDU4 XSAgWzxmZmZmZmZmZjgxNjgxNGZmPl0gdGNwX3RyeV9mYXN0b3BlbisweDU4Zi8weDczMApbICAg MzYuMDIzMTE4XSAgWzxmZmZmZmZmZjgxNjcxNzg4Pl0gdGNwX2Nvbm5fcmVxdWVzdCsweDNlOC8w eDdiMApbICAgMzYuMDI0MTg1XSAgWzxmZmZmZmZmZjgxMGUzODcyPl0gPyBfX21vZHVsZV90ZXh0 X2FkZHJlc3MrMHgxMi8weDYwClsgICAzNi4wMjUzMjddICBbPGZmZmZmZmZmODE2N2IyZTE+XSB0 Y3BfdjRfY29ubl9yZXF1ZXN0KzB4NTEvMHg2MApbICAgMzYuMDI2NDEwXSAgWzxmZmZmZmZmZjgx NjcyN2UwPl0gdGNwX3Jjdl9zdGF0ZV9wcm9jZXNzKzB4MTkwLzB4ZGEwClsgICAzNi4wMjc1NTZd ICBbPGZmZmZmZmZmODE2NjFmOTc+XSA/IF9faW5ldF9sb29rdXBfZXN0YWJsaXNoZWQrMHg0Ny8w eDE3MApbICAgMzYuMDI4Nzg0XSAgWzxmZmZmZmZmZjgxNjdjMmFkPl0gdGNwX3Y0X2RvX3Jjdisw eDE2ZC8weDNkMApbICAgMzYuMDI5ODMyXSAgWzxmZmZmZmZmZjgxMmU2ODA2Pl0gPyBzZWN1cml0 eV9zb2NrX3Jjdl9za2IrMHgxNi8weDIwClsgICAzNi4wMzA5MzZdICBbPGZmZmZmZmZmODE2N2Nj OGE+XSB0Y3BfdjRfcmN2KzB4NzdhLzB4N2IwClsgICAzNi4wMzE4NzVdICBbPGZmZmZmZmZmODE2 YWY4YzM+XSA/IGlwdGFibGVfZmlsdGVyX2hvb2srMHgzMy8weDcwClsgICAzNi4wMzI5NTNdICBb PGZmZmZmZmZmODE2NTdkMjI+XSBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDkyLzB4MWYwClsg ICAzNi4wMzQwNjVdICBbPGZmZmZmZmZmODE2NTdmMWE+XSBpcF9sb2NhbF9kZWxpdmVyKzB4OWEv MHhiMApbICAgMzYuMDM1MDY5XSAgWzxmZmZmZmZmZjgxNjU3YzkwPl0gPyBpcF9yY3YrMHgzZDAv MHgzZDAKWyAgIDM2LjAzNTk2M10gIFs8ZmZmZmZmZmY4MTY1NzU2OT5dIGlwX3Jjdl9maW5pc2gr MHgxMTkvMHgzMzAKWyAgIDM2LjAzNjk1MF0gIFs8ZmZmZmZmZmY4MTY1N2JhNz5dIGlwX3Jjdisw eDJlNy8weDNkMApbICAgMzYuMDM3ODQ3XSAgWzxmZmZmZmZmZjgxNjEwNjUyPl0gX19uZXRpZl9y ZWNlaXZlX3NrYl9jb3JlKzB4NTUyLzB4OTMwClsgICAzNi4wMzg5OTRdICBbPGZmZmZmZmZmODE2 MTBhNTc+XSBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MjcvMHg3MApbICAgMzYuMDQwMDMzXSAgWzxm ZmZmZmZmZjgxNjEwYjcyPl0gcHJvY2Vzc19iYWNrbG9nKzB4ZDIvMHgxZjAKWyAgIDM2LjA0MTAy NV0gIFs8ZmZmZmZmZmY4MTYxMTQ4Mj5dIG5ldF9yeF9hY3Rpb24rMHgxMjIvMHgzMTAKWyAgIDM2 LjA0MjAwN10gIFs8ZmZmZmZmZmY4MTA3Njc0Mz5dIF9fZG9fc29mdGlycSsweDEwMy8weDJmMApb ICAgMzYuMDQyOTc4XSAgWzxmZmZmZmZmZjgxNzIzZTNjPl0gZG9fc29mdGlycV9vd25fc3RhY2sr MHgxYy8weDMwCgpUaGlzIHBhdGNoIG1vdmVzIHRoZSBjYWxsIHRvIHRjcF9mYXN0b3Blbl9pbml0 X2tleV9vbmNlIHRvIHRoZSBwbGFjZXMKd2hlcmUgYSBsaXN0ZW5lciBzb2NrZXQgY3JlYXRlcyBp dHMgVEZPLXN0YXRlLCB3aGljaCBhbHdheXMgaGFwcGVucyBpbgp1c2VyLWNvbnRleHQgKGVpdGhl ciBmcm9tIHRoZSBzZXRzb2Nrb3B0LCBvciBpbXBsaWNpdGx5IGR1cmluZyB0aGUKbGlzdGVuKCkt Y2FsbCkKCkNjOiBFcmljIER1bWF6ZXQgPGVyaWMuZHVtYXpldEBnbWFpbC5jb20+CkNjOiBIYW5u ZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+CkZpeGVzOiAyMjJl ODNkMmUwYWUgKCJ0Y3A6IHN3aXRjaCB0Y3BfZmFzdG9wZW4ga2V5IGdlbmVyYXRpb24gdG8gbmV0 X2dldF9yYW5kb21fb25jZSIpClNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBQYWFzY2ggPGNwYWFz Y2hAYXBwbGUuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjQvYWZfaW5ldC5jICAgICAgfCAyICsrCiBuZXQvaXB2NC90Y3AuYyAgICAgICAg ICB8IDcgKysrKystLQogbmV0L2lwdjQvdGNwX2Zhc3RvcGVuLmMgfCAyIC0tCiAzIGZpbGVzIGNo YW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2NC9hZl9pbmV0LmMgYi9uZXQvaXB2NC9hZl9pbmV0LmMKaW5kZXggOGI0N2E0ZC4uYTVhYTU0 ZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvYWZfaW5ldC5jCisrKyBiL25ldC9pcHY0L2FmX2luZXQu YwpAQCAtMjI4LDYgKzIyOCw4IEBAIGludCBpbmV0X2xpc3RlbihzdHJ1Y3Qgc29ja2V0ICpzb2Nr LCBpbnQgYmFja2xvZykKIAkJCQllcnIgPSAwOwogCQkJaWYgKGVycikKIAkJCQlnb3RvIG91dDsK KworCQkJdGNwX2Zhc3RvcGVuX2luaXRfa2V5X29uY2UodHJ1ZSk7CiAJCX0KIAkJZXJyID0gaW5l dF9jc2tfbGlzdGVuX3N0YXJ0KHNrLCBiYWNrbG9nKTsKIAkJaWYgKGVycikKZGlmZiAtLWdpdCBh L25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggZjEzNzdmMi4uYmIyY2U3NCAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTI1NDUs MTAgKzI1NDUsMTMgQEAgc3RhdGljIGludCBkb190Y3Bfc2V0c29ja29wdChzdHJ1Y3Qgc29jayAq c2ssIGludCBsZXZlbCwKIAogCWNhc2UgVENQX0ZBU1RPUEVOOgogCQlpZiAodmFsID49IDAgJiYg KCgxIDw8IHNrLT5za19zdGF0ZSkgJiAoVENQRl9DTE9TRSB8Ci0JCSAgICBUQ1BGX0xJU1RFTikp KQorCQkgICAgVENQRl9MSVNURU4pKSkgeworCQkJdGNwX2Zhc3RvcGVuX2luaXRfa2V5X29uY2Uo dHJ1ZSk7CisKIAkJCWVyciA9IGZhc3RvcGVuX2luaXRfcXVldWUoc2ssIHZhbCk7Ci0JCWVsc2UK KwkJfSBlbHNlIHsKIAkJCWVyciA9IC1FSU5WQUw7CisJCX0KIAkJYnJlYWs7CiAJY2FzZSBUQ1Bf VElNRVNUQU1QOgogCQlpZiAoIXRwLT5yZXBhaXIpCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bf ZmFzdG9wZW4uYyBiL25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jCmluZGV4IDQ2YjA4N2EuLmY5YzBm YjggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jCisrKyBiL25ldC9pcHY0L3Rj cF9mYXN0b3Blbi5jCkBAIC03OCw4ICs3OCw2IEBAIHN0YXRpYyBib29sIF9fdGNwX2Zhc3RvcGVu X2Nvb2tpZV9nZW4oY29uc3Qgdm9pZCAqcGF0aCwKIAlzdHJ1Y3QgdGNwX2Zhc3RvcGVuX2NvbnRl eHQgKmN0eDsKIAlib29sIG9rID0gZmFsc2U7CiAKLQl0Y3BfZmFzdG9wZW5faW5pdF9rZXlfb25j ZSh0cnVlKTsKLQogCXJjdV9yZWFkX2xvY2soKTsKIAljdHggPSByY3VfZGVyZWZlcmVuY2UodGNw X2Zhc3RvcGVuX2N0eCk7CiAJaWYgKGN0eCkgewotLSAKMi4xLjAKCgpGcm9tIDU5M2M4YTRiZDA2 YjU5ZWQ5NjRhYTYxZWE4ZjJhODc4MTY4M2JjNDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206ICJQYWxpaywgSW1yZSIgPGltcmVwQGFtYXpvbi5kZT4KRGF0ZTogRnJpLCAxOSBKdW4gMjAx NSAxNDoyMTo1MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMjFdIHhlbi1uZXRiYWNrOiBmaXgg YSBCVUcoKSBkdXJpbmcgaW5pdGlhbGl6YXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDEyYjMyMmFj ODUyMDhkZTU2NGVjZjIzYWE3NTRkNzk2YTkxZGUyMWYgXQoKQ29tbWl0IGVkYWZjMTMyYmFhYyAo Inhlbi1uZXRiYWNrOiBtYWtpbmcgdGhlIGJhbmR3aWR0aCBsaW1pdGVyIHJ1bnRpbWUgc2V0dGFi bGUiKQppbnRyb2R1Y2VkIHRoZSBjYXBhYmlsaXR5IHRvIGNoYW5nZSB0aGUgYmFuZHdpZHRoIHJh dGUgbGltaXQgYXQgcnVudGltZS4KQnV0IGl0IGFsc28gaW50cm9kdWNlZCBhIHBvc3NpYmxlIGNy YXNoaW5nIGJ1Zy4KCklmIG5ldGJhY2sgcmVjZWl2ZXMgdHdvIFhlbmJ1c1N0YXRlQ29ubmVjdGVk IHdpdGhvdXQgZ2V0dGluZyB0aGUKaG90cGx1Zy1zdGF0dXMgd2F0Y2ggZmlyaW5nIGluIGJldHdl ZW4sIHRoZW4gaXQgd2lsbCB0cnkgdG8gcmVnaXN0ZXIgdGhlCndhdGNoZXMgZm9yIHRoZSByYXRl IGxpbWl0ZXIgYWdhaW4uICBCdXQgdGhpcyB0cmlnZ2VycyBhIEJVRygpIGluIHRoZSB3YXRjaApy ZWdpc3RyYXRpb24gY29kZS4KClRoZSBmaXggbW9kaWZpZXMgY29ubmVjdCgpIHRvIHJlbW92ZSB0 aGUgcG9zc2libHkgZXhpc3RpbmcgcGFja2V0LXJhdGUKd2F0Y2hlcyBiZWZvcmUgdHJ5aW5nIHRv IGluc3RhbGwgdGhvc2Ugd2F0Y2hlcy4gIFRoaXMgYmVoYXZpb3VyIGlzIGluIGxpbmUKd2l0aCBo b3cgY29ubmVjdCgpIGRlYWxzIHdpdGggdGhlIGhvdHBsdWctc3RhdHVzIHdhdGNoLgoKU2lnbmVk LW9mZi1ieTogSW1yZSBQYWxpayA8aW1yZXBAYW1hem9uLmRlPgpDYzogTWF0dCBXaWxzb24gPG1z d0BhbWF6b24uY29tPgpBY2tlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2sveGVu YnVzLmMgYi9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYwppbmRleCA5Njg3ODdhLi5l YzM4M2IwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYworKysg Yi9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYwpAQCAtNjgxLDYgKzY4MSw5IEBAIHN0 YXRpYyBpbnQgeGVuX3JlZ2lzdGVyX3dhdGNoZXJzKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYs IHN0cnVjdCB4ZW52aWYgKnZpZikKIAljaGFyICpub2RlOwogCXVuc2lnbmVkIG1heGxlbiA9IHN0 cmxlbihkZXYtPm5vZGVuYW1lKSArIHNpemVvZigiL3JhdGUiKTsKIAorCWlmICh2aWYtPmNyZWRp dF93YXRjaC5ub2RlKQorCQlyZXR1cm4gLUVBRERSSU5VU0U7CisKIAlub2RlID0ga21hbGxvYyht YXhsZW4sIEdGUF9LRVJORUwpOwogCWlmICghbm9kZSkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC03 NzAsNiArNzczLDcgQEAgc3RhdGljIHZvaWQgY29ubmVjdChzdHJ1Y3QgYmFja2VuZF9pbmZvICpi ZSkKIAl9CiAKIAl4ZW5fbmV0X3JlYWRfcmF0ZShkZXYsICZjcmVkaXRfYnl0ZXMsICZjcmVkaXRf dXNlYyk7CisJeGVuX3VucmVnaXN0ZXJfd2F0Y2hlcnMoYmUtPnZpZik7CiAJeGVuX3JlZ2lzdGVy X3dhdGNoZXJzKGRldiwgYmUtPnZpZik7CiAJcmVhZF94ZW5idXNfdmlmX2ZsYWdzKGJlKTsKIAot LSAKMi4xLjAKCgpGcm9tIDBlMTI5OWI2ZmU4ODAxMThiZjAxZjg0YWQ3ODU1NDFiMzM4ZjA2N2Ig TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5i Zz4KRGF0ZTogVHVlLCAyMyBKdW4gMjAxNSAwODozNDozOSArMDMwMApTdWJqZWN0OiBbUEFUQ0gg MTAvMjFdIGlwOiByZXBvcnQgdGhlIG9yaWdpbmFsIGFkZHJlc3Mgb2YgSUNNUCBtZXNzYWdlcwoK WyBVcHN0cmVhbSBjb21taXQgMzRiOTlkZjRlNjI1NmRkYWZiNjYzYzZkZTA3MTFkY2VjZWRkZmUw ZSBdCgpJQ01QIG1lc3NhZ2VzIGNhbiB0cmlnZ2VyIElDTVAgYW5kIGxvY2FsIGVycm9ycy4gSW4g dGhpcyBjYXNlCnNlcnItPnBvcnQgaXMgMCBhbmQgc3RhcnRpbmcgZnJvbSBMaW51eCA0LjAgd2Ug ZG8gbm90IHJldHVybgp0aGUgb3JpZ2luYWwgdGFyZ2V0IGFkZHJlc3MgdG8gdGhlIGVycm9yIHF1 ZXVlIHJlYWRlcnMuCkFkZCBmdW5jdGlvbiB0byBkZWZpbmUgd2hpY2ggZXJyb3JzIHByb3ZpZGUg YWRkcl9vZmZzZXQuCldpdGggdGhpcyBmaXggbXkgcGluZyBjb21tYW5kIGlzIG5vdCBzaWxlbnQg YW55bW9yZS4KCkZpeGVzOiBjMjQ3ZjA1MzRjYzUgKCJpcDogZml4IGVycm9yIHF1ZXVlIGVtcHR5 IHNrYiBoYW5kbGluZyIpClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5i Zz4KQWNrZWQtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L2lwX3NvY2tnbHVlLmMgfCAxMSArKysrKysrKysrLQogbmV0L2lwdjYvZGF0YWdyYW0uYyAg ICB8IDEyICsrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX3NvY2tnbHVlLmMgYi9uZXQv aXB2NC9pcF9zb2NrZ2x1ZS5jCmluZGV4IDdjZmIwODkuLjZkZGRlODkgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L2lwX3NvY2tnbHVlLmMKKysrIGIvbmV0L2lwdjQvaXBfc29ja2dsdWUuYwpAQCAtNDMy LDYgKzQzMiwxNSBAQCB2b2lkIGlwX2xvY2FsX2Vycm9yKHN0cnVjdCBzb2NrICpzaywgaW50IGVy ciwgX19iZTMyIGRhZGRyLCBfX2JlMTYgcG9ydCwgdTMyIGluZgogCQlrZnJlZV9za2Ioc2tiKTsK IH0KIAorLyogRm9yIHNvbWUgZXJyb3JzIHdlIGhhdmUgdmFsaWQgYWRkcl9vZmZzZXQgZXZlbiB3 aXRoIHplcm8gcGF5bG9hZCBhbmQKKyAqIHplcm8gcG9ydC4gQWxzbywgYWRkcl9vZmZzZXQgc2hv dWxkIGJlIHN1cHBvcnRlZCBpZiBwb3J0IGlzIHNldC4KKyAqLworc3RhdGljIGlubGluZSBib29s IGlwdjRfZGF0YWdyYW1fc3VwcG9ydF9hZGRyKHN0cnVjdCBzb2NrX2V4dGVycl9za2IgKnNlcnIp Cit7CisJcmV0dXJuIHNlcnItPmVlLmVlX29yaWdpbiA9PSBTT19FRV9PUklHSU5fSUNNUCB8fAor CSAgICAgICBzZXJyLT5lZS5lZV9vcmlnaW4gPT0gU09fRUVfT1JJR0lOX0xPQ0FMIHx8IHNlcnIt PnBvcnQ7Cit9CisKIC8qIElQdjQgc3VwcG9ydHMgY21zZyBvbiBhbGwgaW1jcCBlcnJvcnMgYW5k IHNvbWUgdGltZXN0YW1wcwogICoKICAqIFRpbWVzdGFtcCBjb2RlIHBhdGhzIGRvIG5vdCBpbml0 aWFsaXplIHRoZSBmaWVsZHMgZXhwZWN0ZWQgYnkgY21zZzoKQEAgLTQ5OCw3ICs1MDcsNyBAQCBp bnQgaXBfcmVjdl9lcnJvcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50 IGxlbiwgaW50ICphZGRyX2xlbikKIAogCXNlcnIgPSBTS0JfRVhUX0VSUihza2IpOwogCi0JaWYg KHNpbiAmJiBzZXJyLT5wb3J0KSB7CisJaWYgKHNpbiAmJiBpcHY0X2RhdGFncmFtX3N1cHBvcnRf YWRkcihzZXJyKSkgewogCQlzaW4tPnNpbl9mYW1pbHkgPSBBRl9JTkVUOwogCQlzaW4tPnNpbl9h ZGRyLnNfYWRkciA9ICooX19iZTMyICopKHNrYl9uZXR3b3JrX2hlYWRlcihza2IpICsKIAkJCQkJ CSAgIHNlcnItPmFkZHJfb2Zmc2V0KTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2RhdGFncmFtLmMg Yi9uZXQvaXB2Ni9kYXRhZ3JhbS5jCmluZGV4IDc2MmE1OGMuLjYyZDkwOGUgMTAwNjQ0Ci0tLSBh L25ldC9pcHY2L2RhdGFncmFtLmMKKysrIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwpAQCAtMzI1LDYg KzMyNSwxNiBAQCB2b2lkIGlwdjZfbG9jYWxfcnhwbXR1KHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IGZsb3dpNiAqZmw2LCB1MzIgbXR1KQogCWtmcmVlX3NrYihza2IpOwogfQogCisvKiBGb3Igc29t ZSBlcnJvcnMgd2UgaGF2ZSB2YWxpZCBhZGRyX29mZnNldCBldmVuIHdpdGggemVybyBwYXlsb2Fk IGFuZAorICogemVybyBwb3J0LiBBbHNvLCBhZGRyX29mZnNldCBzaG91bGQgYmUgc3VwcG9ydGVk IGlmIHBvcnQgaXMgc2V0LgorICovCitzdGF0aWMgaW5saW5lIGJvb2wgaXB2Nl9kYXRhZ3JhbV9z dXBwb3J0X2FkZHIoc3RydWN0IHNvY2tfZXh0ZXJyX3NrYiAqc2VycikKK3sKKwlyZXR1cm4gc2Vy ci0+ZWUuZWVfb3JpZ2luID09IFNPX0VFX09SSUdJTl9JQ01QNiB8fAorCSAgICAgICBzZXJyLT5l ZS5lZV9vcmlnaW4gPT0gU09fRUVfT1JJR0lOX0lDTVAgfHwKKwkgICAgICAgc2Vyci0+ZWUuZWVf b3JpZ2luID09IFNPX0VFX09SSUdJTl9MT0NBTCB8fCBzZXJyLT5wb3J0OworfQorCiAvKiBJUHY2 IHN1cHBvcnRzIGNtc2cgb24gYWxsIG9yaWdpbnMgYXNpZGUgZnJvbSBTT19FRV9PUklHSU5fTE9D QUwuCiAgKgogICogQXQgb25lIHBvaW50LCBleGNsdWRpbmcgbG9jYWwgZXJyb3JzIHdhcyBhIHF1 aWNrIHRlc3QgdG8gaWRlbnRpZnkgaWNtcC9pY21wNgpAQCAtMzg5LDcgKzM5OSw3IEBAIGludCBp cHY2X3JlY3ZfZXJyb3Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIGludCBs ZW4sIGludCAqYWRkcl9sZW4pCiAKIAlzZXJyID0gU0tCX0VYVF9FUlIoc2tiKTsKIAotCWlmIChz aW4gJiYgc2Vyci0+cG9ydCkgeworCWlmIChzaW4gJiYgaXB2Nl9kYXRhZ3JhbV9zdXBwb3J0X2Fk ZHIoc2VycikpIHsKIAkJY29uc3QgdW5zaWduZWQgY2hhciAqbmggPSBza2JfbmV0d29ya19oZWFk ZXIoc2tiKTsKIAkJc2luLT5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OwogCQlzaW4tPnNpbjZfZmxv d2luZm8gPSAwOwotLSAKMi4xLjAKCgpGcm9tIDljZmQ5ODk3NTA1YmRkZjU5ZGIwZjQ4MGViY2Iy ZTk1NjAxMmYxOTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyYW4gQmVuIEVsaXNo YSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNSBKdW4gMjAxNSAxMToyOTo0MSAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjFdIG5ldC9tbHg0X2VuOiBSZWxlYXNlIFRYIFFQIHdo ZW4gZGVzdHJveWluZyBUWCByaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCAwZWIwODUxNGZkYmRjZDE2 ZmQ2ODcwNjgwY2Q2MzhmMjAzNjYyZTlkIF0KClRYIHJpbmcgUVAgd2Fzbid0IHJlbGVhc2VkIGF0 IG1seDRfZW5fZGVzdHJveV90eF9yaW5nLiBJbnN0ZWFkLCB0aGUgY29kZQp1c2VkIHRoZSBkZXBy ZWNhdGVkIGJhc2VfdHhfcXBuIGZpZWxkLiBNb3ZlIFRYIFFQIHJlbGVhc2UgdG8KbWx4NF9lbl9k ZXN0cm95X3R4X3JpbmcgYW5kIHJlbW92ZSB0aGUgYmFzZV90eF9xcG4gZmllbGQuCgpGaXhlczog ZGRhZTAzNDlmZGI3ICgnbmV0L21seDQ6IENoYW5nZSBRUCBhbGxvY2F0aW9uIHNjaGVtZScpClNp Z25lZC1vZmYtYnk6IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KU2lnbmVk LW9mZi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYyB8IDQgLS0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5jICAgICB8IDEgKwogZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmggICB8IDEgLQogMyBmaWxlcyBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX25ldGRldi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYwppbmRleCBjZjQ2N2E5Li5hNWEwYjg0IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX25ldGRldi5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fbmV0ZGV2LmMKQEAgLTE5NzMs MTAgKzE5NzMsNiBAQCB2b2lkIG1seDRfZW5fZnJlZV9yZXNvdXJjZXMoc3RydWN0IG1seDRfZW5f cHJpdiAqcHJpdikKIAkJCW1seDRfZW5fZGVzdHJveV9jcShwcml2LCAmcHJpdi0+cnhfY3FbaV0p OwogCX0KIAotCWlmIChwcml2LT5iYXNlX3R4X3FwbikgewotCQltbHg0X3FwX3JlbGVhc2VfcmFu Z2UocHJpdi0+bWRldi0+ZGV2LCBwcml2LT5iYXNlX3R4X3FwbiwgcHJpdi0+dHhfcmluZ19udW0p OwotCQlwcml2LT5iYXNlX3R4X3FwbiA9IDA7Ci0JfQogfQogCiBpbnQgbWx4NF9lbl9hbGxvY19y ZXNvdXJjZXMoc3RydWN0IG1seDRfZW5fcHJpdiAqcHJpdikKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDQvZW5fdHguYwppbmRleCA3YmVkM2E4Li4wYWIyOThmIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5jCkBAIC0xODAsNiArMTgwLDcgQEAg dm9pZCBtbHg0X2VuX2Rlc3Ryb3lfdHhfcmluZyhzdHJ1Y3QgbWx4NF9lbl9wcml2ICpwcml2LAog CQltbHg0X2JmX2ZyZWUobWRldi0+ZGV2LCAmcmluZy0+YmYpOwogCW1seDRfcXBfcmVtb3ZlKG1k ZXYtPmRldiwgJnJpbmctPnFwKTsKIAltbHg0X3FwX2ZyZWUobWRldi0+ZGV2LCAmcmluZy0+cXAp OworCW1seDRfcXBfcmVsZWFzZV9yYW5nZShwcml2LT5tZGV2LT5kZXYsIHJpbmctPnFwbiwgMSk7 CiAJbWx4NF9lbl91bm1hcF9idWZmZXIoJnJpbmctPndxcmVzLmJ1Zik7CiAJbWx4NF9mcmVlX2h3 cV9yZXMobWRldi0+ZGV2LCAmcmluZy0+d3FyZXMsIHJpbmctPmJ1Zl9zaXplKTsKIAlrZnJlZShy aW5nLT5ib3VuY2VfYnVmKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDQvbWx4NF9lbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9t bHg0X2VuLmgKaW5kZXggZDAyMWYwNy4uOWE0YjM4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmgKQEAgLTU3OSw3ICs1NzksNiBAQCBzdHJ1Y3QgbWx4 NF9lbl9wcml2IHsKIAlpbnQgdmlkc1sxMjhdOwogCWJvb2wgd29sOwogCXN0cnVjdCBkZXZpY2Ug KmRkZXY7Ci0JaW50IGJhc2VfdHhfcXBuOwogCXN0cnVjdCBobGlzdF9oZWFkIG1hY19oYXNoW01M WDRfRU5fTUFDX0hBU0hfU0laRV07CiAJc3RydWN0IGh3dHN0YW1wX2NvbmZpZyBod3RzdGFtcF9j b25maWc7CiAKLS0gCjIuMS4wCgoKRnJvbSAzMjMzNGU5NzRmYjJjODE5YWQ0ZDBjN2JiZDRlMmUz NTUxMDAyZjk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2hhbWF5IDxpZG9z QG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNSBKdW4gMjAxNSAxMToyOTo0MiArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMTIvMjFdIG5ldC9tbHg0X2VuOiBXYWtlIFRYIHF1ZXVlcyBvbmx5IHdoZW4g dGhlcmUncyBlbm91Z2gKIHJvb20KClsgVXBzdHJlYW0gY29tbWl0IDQ4OGE5YjQ4ZTM5OGIxNTc3 MDM3NjZlMmNkOTFlYTQ1YWM2OTk3YzUgXQoKSW5kaWNhdGlvbiBvZiBhIHNpbmdsZSBjb21wbGV0 ZWQgcGFja2V0LCBtYXJrZWQgYnkgdHhiYnNfc2tpcHBlZApiZWluZyBiaWdnZXIgdGhlbiB6ZXJv LCBpbiBub3QgZW5vdWdoIGluIG9yZGVyIHRvIHdha2UgdXAgYQpzdG9wcGVkIFRYIHF1ZXVlLiBU aGUgY29tcGxldGVkIHBhY2tldCBtYXkgY29udGFpbiBhIHNpbmdsZSBUWEJCLAp3aGlsZSBuZXh0 IHBhY2tldCB0byBiZSBzZW50IChhZnRlciB0aGUgd2FrZSB1cCkgbWF5IGhhdmUgbXVsdGlwbGUK VFhCQnMgKExTTy9UU08gcGFja2V0cyBmb3IgZXhhbXBsZSksIGNhdXNpbmcgb3ZlcmZsb3cgaW4g cXVldWUgZm9sbG93ZWQKYnkgV1FFIGNvcnJ1cHRpb24gYW5kIFRYIHF1ZXVlIHRpbWVvdXQuCklu c3RlYWQsIHdha2UgdGhlIHN0b3BwZWQgcXVldWUgb25seSB3aGVuIHRoZXJlJ3MgZW5vdWdoIHJv b20gZm9yIHRoZQp3b3JzdCBjYXNlIChtYXhpbXVtIHNpemVkIFdRRSkgcGFja2V0IHRoYXQgd2Ug c2hvdWxkIG5lZWQgdG8gaGFuZGxlIGFmdGVyCnRoZSBxdWV1ZSBpcyBvcGVuZWQgYWdhaW4uCgpB bHNvIGNyZWF0ZWQgYW4gaGVscGVyIHJvdXRpbmUgLSBtbHg0X2VuX2lzX3R4X3JpbmdfZnVsbCwg d2hpY2ggY2hlY2tzCmlmIHRoZSBjdXJyZW50IFRYIHJpbmcgaXMgZnVsbCBvciBub3QuIEl0IHBy b3ZpZGVzIGJldHRlciBjb2RlIHJlYWRhYmlsaXR5CmFuZCByZW1vdmVzIGNvZGUgZHVwbGljYXRp b24uCgpTaWduZWQtb2ZmLWJ5OiBJZG8gU2hhbWF5IDxpZG9zQG1lbGxhbm94LmNvbT4KU2lnbmVk LW9mZi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5jICAgfCAxOSArKysrKysrKysrKy0tLS0tLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaCB8ICAxICsKIDIg ZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3R4LmMKaW5kZXggMGFiMjk4Zi4uYzEwZDk4 ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl90eC5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fdHguYwpAQCAtNjYs NiArNjYsNyBAQCBpbnQgbWx4NF9lbl9jcmVhdGVfdHhfcmluZyhzdHJ1Y3QgbWx4NF9lbl9wcml2 ICpwcml2LAogCXJpbmctPnNpemUgPSBzaXplOwogCXJpbmctPnNpemVfbWFzayA9IHNpemUgLSAx OwogCXJpbmctPnN0cmlkZSA9IHN0cmlkZTsKKwlyaW5nLT5mdWxsX3NpemUgPSByaW5nLT5zaXpl IC0gSEVBRFJPT00gLSBNQVhfREVTQ19UWEJCUzsKIAogCXRtcCA9IHNpemUgKiBzaXplb2Yoc3Ry dWN0IG1seDRfZW5fdHhfaW5mbyk7CiAJcmluZy0+dHhfaW5mbyA9IGttYWxsb2Nfbm9kZSh0bXAs IEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4sIG5vZGUpOwpAQCAtMjMyLDYgKzIzMywxMSBAQCB2 b2lkIG1seDRfZW5fZGVhY3RpdmF0ZV90eF9yaW5nKHN0cnVjdCBtbHg0X2VuX3ByaXYgKnByaXYs CiAJCSAgICAgICBNTFg0X1FQX1NUQVRFX1JTVCwgTlVMTCwgMCwgMCwgJnJpbmctPnFwKTsKIH0K IAorc3RhdGljIGlubGluZSBib29sIG1seDRfZW5faXNfdHhfcmluZ19mdWxsKHN0cnVjdCBtbHg0 X2VuX3R4X3JpbmcgKnJpbmcpCit7CisJcmV0dXJuIHJpbmctPnByb2QgLSByaW5nLT5jb25zID4g cmluZy0+ZnVsbF9zaXplOworfQorCiBzdGF0aWMgdm9pZCBtbHg0X2VuX3N0YW1wX3dxZShzdHJ1 Y3QgbWx4NF9lbl9wcml2ICpwcml2LAogCQkJICAgICAgc3RydWN0IG1seDRfZW5fdHhfcmluZyAq cmluZywgaW50IGluZGV4LAogCQkJICAgICAgdTggb3duZXIpCkBAIC00NzQsMTEgKzQ4MCwxMCBA QCBzdGF0aWMgYm9vbCBtbHg0X2VuX3Byb2Nlc3NfdHhfY3Eoc3RydWN0IG5ldF9kZXZpY2UgKmRl diwKIAogCW5ldGRldl90eF9jb21wbGV0ZWRfcXVldWUocmluZy0+dHhfcXVldWUsIHBhY2tldHMs IGJ5dGVzKTsKIAotCS8qCi0JICogV2FrZXVwIFR4IHF1ZXVlIGlmIHRoaXMgc3RvcHBlZCwgYW5k IGF0IGxlYXN0IDEgcGFja2V0Ci0JICogd2FzIGNvbXBsZXRlZAorCS8qIFdha2V1cCBUeCBxdWV1 ZSBpZiB0aGlzIHN0b3BwZWQsIGFuZCByaW5nIGlzIG5vdCBmdWxsLgogCSAqLwotCWlmIChuZXRp Zl90eF9xdWV1ZV9zdG9wcGVkKHJpbmctPnR4X3F1ZXVlKSAmJiB0eGJic19za2lwcGVkID4gMCkg eworCWlmIChuZXRpZl90eF9xdWV1ZV9zdG9wcGVkKHJpbmctPnR4X3F1ZXVlKSAmJgorCSAgICAh bWx4NF9lbl9pc190eF9yaW5nX2Z1bGwocmluZykpIHsKIAkJbmV0aWZfdHhfd2FrZV9xdWV1ZShy aW5nLT50eF9xdWV1ZSk7CiAJCXJpbmctPndha2VfcXVldWUrKzsKIAl9CkBAIC05MjIsOCArOTI3 LDcgQEAgbmV0ZGV2X3R4X3QgbWx4NF9lbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiAJc2tiX3R4X3RpbWVzdGFtcChza2IpOwogCiAJLyogQ2hlY2sg YXZhaWxhYmxlIFRYQkJzIEFuZCAySyBzcGFyZSBmb3IgcHJlZmV0Y2ggKi8KLQlzdG9wX3F1ZXVl ID0gKGludCkocmluZy0+cHJvZCAtIHJpbmdfY29ucykgPgotCQkgICAgICByaW5nLT5zaXplIC0g SEVBRFJPT00gLSBNQVhfREVTQ19UWEJCUzsKKwlzdG9wX3F1ZXVlID0gbWx4NF9lbl9pc190eF9y aW5nX2Z1bGwocmluZyk7CiAJaWYgKHVubGlrZWx5KHN0b3BfcXVldWUpKSB7CiAJCW5ldGlmX3R4 X3N0b3BfcXVldWUocmluZy0+dHhfcXVldWUpOwogCQlyaW5nLT5xdWV1ZV9zdG9wcGVkKys7CkBA IC05OTIsOCArOTk2LDcgQEAgbmV0ZGV2X3R4X3QgbWx4NF9lbl94bWl0KHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCXNtcF9ybWIoKTsKIAogCQlyaW5nX2Nv bnMgPSBBQ0NFU1NfT05DRShyaW5nLT5jb25zKTsKLQkJaWYgKHVubGlrZWx5KCgoaW50KShyaW5n LT5wcm9kIC0gcmluZ19jb25zKSkgPD0KLQkJCSAgICAgcmluZy0+c2l6ZSAtIEhFQURST09NIC0g TUFYX0RFU0NfVFhCQlMpKSB7CisJCWlmICh1bmxpa2VseSghbWx4NF9lbl9pc190eF9yaW5nX2Z1 bGwocmluZykpKSB7CiAJCQluZXRpZl90eF93YWtlX3F1ZXVlKHJpbmctPnR4X3F1ZXVlKTsKIAkJ CXJpbmctPndha2VfcXVldWUrKzsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg0L21seDRfZW4uaAppbmRleCA5YTRiMzgwLi45MDlmY2Y4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaAorKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaApAQCAtMjc5LDYgKzI3OSw3IEBAIHN0 cnVjdCBtbHg0X2VuX3R4X3JpbmcgewogCXUzMgkJCXNpemU7IC8qIG51bWJlciBvZiBUWEJCcyAq LwogCXUzMgkJCXNpemVfbWFzazsKIAl1MTYJCQlzdHJpZGU7CisJdTMyCQkJZnVsbF9zaXplOwog CXUxNgkJCWNxbjsJLyogaW5kZXggb2YgcG9ydCBDUSBhc3NvY2lhdGVkIHdpdGggdGhpcyByaW5n ICovCiAJdTMyCQkJYnVmX3NpemU7CiAJX19iZTMyCQkJZG9vcmJlbGxfcXBuOwotLSAKMi4xLjAK CgpGcm9tIDRkODQ0MDBjMDFmYTFhYjZiZTZmOTc0ZmI1ZWVhZTUyODBjOTg2MWYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTaGFtYXkgPGlkb3NAbWVsbGFub3guY29tPgpEYXRl OiBUaHUsIDI1IEp1biAyMDE1IDExOjI5OjQzICswMzAwClN1YmplY3Q6IFtQQVRDSCAxMy8yMV0g bmV0L21seDRfZW46IEZpeCB3cm9uZyBjc3VtIGNvbXBsZXRlIHJlcG9ydCB3aGVuIHJ4dmxhbgog b2ZmbG9hZCBpcyBkaXNhYmxlZAoKWyBVcHN0cmVhbSBjb21taXQgNzlhMjU4NTI2Y2UxMDUxY2I5 Njg0MDE4YzI1YTg5ZDUxYWMyMWJlOCBdCgpUaGUgY2hlY2tfY3N1bSgpIGZ1bmN0aW9uIHJlbGll ZCBvbiBod3RzdGFtcF9yeF9maWx0ZXIgdG8ga25vdyBpZiByeHZsYW4Kb2ZmbG9hZCBpcyBkaXNh YmxlZC4gVGhpcyBpcyB3cm9uZyBzaW5jZSByeHZsYW4gb2ZmbG9hZCBjYW4gYmUgc3dpdGNoZWQK b24vb2ZmIHJlZ2FyZGxlc3Mgb2YgaHd0c3RhbXBfcnhfZmlsdGVyLgoKQWxzbyBtb3ZlZCBjaGVj a19jc3VtIHRvIHF1ZXJ5IENRRSBpbmZvcm1hdGlvbiB0byBpZGVudGlmeSBWTEFOIHBhY2tldHMK YW5kIHJlbW92ZWQgdGhlIGNoZWNrIG9mIElQIHBhY2tldHMsIHNpbmNlIGl0IGhhcyBiZWVuIHZh bGlkYXRlZCBiZWZvcmUuCgpGaXhlczogZjhjNjQ1NWJiMDRiICgnbmV0L21seDRfZW46IEV4dGVu ZCBjaGVja3N1bSBvZmZsb2FkaW5nIGJ5IENIRUNLU1VNIENPTVBMRVRFJykKU2lnbmVkLW9mZi1i eTogSWRvIFNoYW1heSA8aWRvc0BtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IE9yIEdlcmxp dHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDQvZW5fcnguYyB8IDE3ICsrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBp bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg0L2VuX3J4LmMKaW5kZXggMmE3N2E2Yi4uZWFiNGUwOCAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYwpAQCAtNzIzLDcgKzcyMyw3IEBAIHN0YXRp YyBpbnQgZ2V0X2ZpeGVkX2lwdjZfY3N1bShfX3dzdW0gaHdfY2hlY2tzdW0sIHN0cnVjdCBza19i dWZmICpza2IsCiB9CiAjZW5kaWYKIHN0YXRpYyBpbnQgY2hlY2tfY3N1bShzdHJ1Y3QgbWx4NF9j cWUgKmNxZSwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdm9pZCAqdmEsCi0JCSAgICAgIGludCBod3Rz dGFtcF9yeF9maWx0ZXIpCisJCSAgICAgIG5ldGRldl9mZWF0dXJlc190IGRldl9mZWF0dXJlcykK IHsKIAlfX3dzdW0gaHdfY2hlY2tzdW0gPSAwOwogCkBAIC03MzEsMTQgKzczMSw4IEBAIHN0YXRp YyBpbnQgY2hlY2tfY3N1bShzdHJ1Y3QgbWx4NF9jcWUgKmNxZSwgc3RydWN0IHNrX2J1ZmYgKnNr Yiwgdm9pZCAqdmEsCiAKIAlod19jaGVja3N1bSA9IGNzdW1fdW5mb2xkKChfX2ZvcmNlIF9fc3Vt MTYpY3FlLT5jaGVja3N1bSk7CiAKLQlpZiAoKChzdHJ1Y3QgZXRoaGRyICopdmEpLT5oX3Byb3Rv ID09IGh0b25zKEVUSF9QXzgwMjFRKSAmJgotCSAgICBod3RzdGFtcF9yeF9maWx0ZXIgIT0gSFdU U1RBTVBfRklMVEVSX05PTkUpIHsKLQkJLyogbmV4dCBwcm90b2NvbCBub24gSVB2NCBvciBJUHY2 ICovCi0JCWlmICgoKHN0cnVjdCB2bGFuX2hkciAqKWhkciktPmhfdmxhbl9lbmNhcHN1bGF0ZWRf cHJvdG8KLQkJICAgICE9IGh0b25zKEVUSF9QX0lQKSAmJgotCQkgICAgKChzdHJ1Y3Qgdmxhbl9o ZHIgKiloZHIpLT5oX3ZsYW5fZW5jYXBzdWxhdGVkX3Byb3RvCi0JCSAgICAhPSBodG9ucyhFVEhf UF9JUFY2KSkKLQkJCXJldHVybiAtMTsKKwlpZiAoY3FlLT52bGFuX215X3FwbiAmIGNwdV90b19i ZTMyKE1MWDRfQ1FFX1ZMQU5fUFJFU0VOVF9NQVNLKSAmJgorCSAgICAhKGRldl9mZWF0dXJlcyAm IE5FVElGX0ZfSFdfVkxBTl9DVEFHX1JYKSkgewogCQlod19jaGVja3N1bSA9IGdldF9maXhlZF92 bGFuX2NzdW0oaHdfY2hlY2tzdW0sIGhkcik7CiAJCWhkciArPSBzaXplb2Yoc3RydWN0IHZsYW5f aGRyKTsKIAl9CkBAIC05MDEsNyArODk1LDggQEAgaW50IG1seDRfZW5fcHJvY2Vzc19yeF9jcShz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbWx4NF9lbl9jcSAqY3EsIGludCBidWQKIAog CQkJaWYgKGlwX3N1bW1lZCA9PSBDSEVDS1NVTV9DT01QTEVURSkgewogCQkJCXZvaWQgKnZhID0g c2tiX2ZyYWdfYWRkcmVzcyhza2Jfc2hpbmZvKGdyb19za2IpLT5mcmFncyk7Ci0JCQkJaWYgKGNo ZWNrX2NzdW0oY3FlLCBncm9fc2tiLCB2YSwgcmluZy0+aHd0c3RhbXBfcnhfZmlsdGVyKSkgewor CQkJCWlmIChjaGVja19jc3VtKGNxZSwgZ3JvX3NrYiwgdmEsCisJCQkJCSAgICAgICBkZXYtPmZl YXR1cmVzKSkgewogCQkJCQlpcF9zdW1tZWQgPSBDSEVDS1NVTV9OT05FOwogCQkJCQlyaW5nLT5j c3VtX25vbmUrKzsKIAkJCQkJcmluZy0+Y3N1bV9jb21wbGV0ZS0tOwpAQCAtOTU2LDcgKzk1MSw3 IEBAIGludCBtbHg0X2VuX3Byb2Nlc3NfcnhfY3Eoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3Ry dWN0IG1seDRfZW5fY3EgKmNxLCBpbnQgYnVkCiAJCX0KIAogCQlpZiAoaXBfc3VtbWVkID09IENI RUNLU1VNX0NPTVBMRVRFKSB7Ci0JCQlpZiAoY2hlY2tfY3N1bShjcWUsIHNrYiwgc2tiLT5kYXRh LCByaW5nLT5od3RzdGFtcF9yeF9maWx0ZXIpKSB7CisJCQlpZiAoY2hlY2tfY3N1bShjcWUsIHNr Yiwgc2tiLT5kYXRhLCBkZXYtPmZlYXR1cmVzKSkgewogCQkJCWlwX3N1bW1lZCA9IENIRUNLU1VN X05PTkU7CiAJCQkJcmluZy0+Y3N1bV9jb21wbGV0ZS0tOwogCQkJCXJpbmctPmNzdW1fbm9uZSsr OwotLSAKMi4xLjAKCgpGcm9tIDkyYTU4ZDUzMzY5MThkNDNlYjI5NjM4MmJmNjEwNmFhOTZhM2Q5 OTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1l bGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNSBKdW4gMjAxNSAxMToyOTo0NCArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMTQvMjFdIG1seDQ6IERpc2FibGUgSEEgZm9yIFNSSU9WIFBGIFJvQ0UgZGV2aWNl cwoKWyBVcHN0cmVhbSBjb21taXQgNzI1NGFjZmZlZWVjM2MwYTc1YjljNTM2NGMyOWE2ZWIwMDAx NDkzMCBdCgpXaGVuIGluIEhBIG1vZGUsIHRoZSBkcml2ZXIgZXhwb3NlcyBhbiBJQiAoUm9DRSkg ZGV2aWNlIGluc3RhbmNlIHdpdGggb25seQpvbmUgcG9ydC4gVW5kZXIgU1JJT1YsIHRoZSBleGlz dGluZyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGdvIHdlbGwgd2l0aAp0aGUgUEYgUm9DRSBkcml2 ZXIncyByb2xlIG9mIFNwZWNpYWwgUVBzIFBhcmEtVmlydHVhbGl6YXRpb24sIGV0Yy4KCkFzIHN1 Y2gsIGRpc2FibGUgSEEgZm9yIHRoZSBtbHg0IFBGIFJvQ0UgZGV2aWNlIGluIFNSSU9WIG1vZGUu CgpGaXhlczogYTU3NTAwOTAzMDkzICgnSUIvbWx4NDogQWRkIHBvcnQgYWdncmVnYXRpb24gc3Vw cG9ydCcpClNpZ25lZC1vZmYtYnk6IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvaW50Zi5jIHwgOCArKysrKysrLQog MSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvaW50Zi5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9pbnRmLmMKaW5kZXggNmZjZTU4Ny4uMGQ4MGFlZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9pbnRmLmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9pbnRmLmMKQEAgLTkzLDggKzkz LDE0IEBAIGludCBtbHg0X3JlZ2lzdGVyX2ludGVyZmFjZShzdHJ1Y3QgbWx4NF9pbnRlcmZhY2Ug KmludGYpCiAJbXV0ZXhfbG9jaygmaW50Zl9tdXRleCk7CiAKIAlsaXN0X2FkZF90YWlsKCZpbnRm LT5saXN0LCAmaW50Zl9saXN0KTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHByaXYsICZkZXZfbGlz dCwgZGV2X2xpc3QpCisJbGlzdF9mb3JfZWFjaF9lbnRyeShwcml2LCAmZGV2X2xpc3QsIGRldl9s aXN0KSB7CisJCWlmIChtbHg0X2lzX21mdW5jKCZwcml2LT5kZXYpICYmIChpbnRmLT5mbGFncyAm IE1MWDRfSU5URkZfQk9ORElORykpIHsKKwkJCW1seDRfZGJnKCZwcml2LT5kZXYsCisJCQkJICJT UklPViwgZGlzYWJsaW5nIEhBIG1vZGUgZm9yIGludGYgcHJvdG8gJWRcbiIsIGludGYtPnByb3Rv Y29sKTsKKwkJCWludGYtPmZsYWdzICY9IH5NTFg0X0lOVEZGX0JPTkRJTkc7CisJCX0KIAkJbWx4 NF9hZGRfZGV2aWNlKGludGYsIHByaXYpOworCX0KIAogCW11dGV4X3VubG9jaygmaW50Zl9tdXRl eCk7CiAKLS0gCjIuMS4wCgoKRnJvbSBhZDNjZjFmYTE1NGQ3OTk5MzgxMzgyOGU3M2EwNTU4NzYw NmNhMjI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNdWd1bnRoYW4gViBOIDxtdWd1 bnRoYW52bm1AdGkuY29tPgpEYXRlOiBUaHUsIDI1IEp1biAyMDE1IDIyOjIxOjAyICswNTMwClN1 YmplY3Q6IFtQQVRDSCAxNS8yMV0gbmV0OiBwaHk6IGZpeCBwaHkgbGluayB1cCB3aGVuIGxpbWl0 aW5nIHNwZWVkIHZpYQogZGV2aWNlIHRyZWUKClsgVXBzdHJlYW0gY29tbWl0IGViNjg2MjMxZmNl Mzc3MDI5OTc2MGYyNGZkY2Y1YWQwNDFmNDQxNTMgXQoKV2hlbiBsaW1pdGluZyBwaHkgbGluayBz cGVlZCB1c2luZyAibWF4LXNwZWVkIiB0byAxMDBtYnBzIG9yIGxlc3Mgb24gYQpnaWdhIGJpdCBw aHksIHBoeSBuZXZlciBjb21wbGV0ZXMgYXV0byBuZWdvdGlhdGlvbiBhbmQgcGh5IHN0YXRlCm1h Y2hpbmUgaXMgaGVsZCBpbiBQSFlfQU4uIEZpeGluZyB0aGlzIGlzc3VlIGJ5IGNvbXBhcmluZyB0 aGUgZ2lnYQpiaXQgYWR2ZXJ0aXNlIHRob3VnaCBwaHlkZXYtPnN1cHBvcnRlZCBkb2Vzbid0IGhh dmUgaXQgYnV0IHBoeSBoYXMKQk1TUl9FU1RBVEVOIHNldC4gU28gdGhhdCBhdXRvIG5lZ290aWF0 aW9uIGlzIHJlc3RhcnRlZCBhcyBvbGQgYW5kCm5ldyBhZHZlcnRpc2UgYXJlIGRpZmZlcmVudCBh bmQgbGluayBjb21lcyB1cCBmaW5lLgoKU2lnbmVkLW9mZi1ieTogTXVndW50aGFuIFYgTiA8bXVn dW50aGFudm5tQHRpLmNvbT4KUmV2aWV3ZWQtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVs bGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyB8IDUgKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2 aWNlLmMKaW5kZXggYmRmZTUxZi4uZDU1MWRmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5 L3BoeV9kZXZpY2UuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCkBAIC03OTYs MTAgKzc5NiwxMSBAQCBzdGF0aWMgaW50IGdlbnBoeV9jb25maWdfYWR2ZXJ0KHN0cnVjdCBwaHlf ZGV2aWNlICpwaHlkZXYpCiAJaWYgKHBoeWRldi0+c3VwcG9ydGVkICYgKFNVUFBPUlRFRF8xMDAw YmFzZVRfSGFsZiB8CiAJCQkJIFNVUFBPUlRFRF8xMDAwYmFzZVRfRnVsbCkpIHsKIAkJYWR2IHw9 IGV0aHRvb2xfYWR2X3RvX21paV9jdHJsMTAwMF90KGFkdmVydGlzZSk7Ci0JCWlmIChhZHYgIT0g b2xkYWR2KQotCQkJY2hhbmdlZCA9IDE7CiAJfQogCisJaWYgKGFkdiAhPSBvbGRhZHYpCisJCWNo YW5nZWQgPSAxOworCiAJZXJyID0gcGh5X3dyaXRlKHBoeWRldiwgTUlJX0NUUkwxMDAwLCBhZHYp OwogCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwotLSAKMi4xLjAKCgpGcm9tIDE4NjRmOTdh N2RlODIxZDBkNDVkOTE5YzlkYjFhNGFjYjRkMTEyMmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAyNiBK dW4gMjAxNSAwNzozMjoyOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjFdIGJueDJ4OiBmaXgg bG9ja2RlcCBzcGxhdAoKWyBVcHN0cmVhbSBjb21taXQgZDUzYzY2YTViODA2OTg2MjBmN2M5YmEy MzcyZmZmNDAxN2U5ODdiOCBdCgpNaWNoZWwgcmVwb3J0ZWQgZm9sbG93aW5nIGxvY2tkZXAgc3Bs YXQKClsgICA0NC43MTgxMTddIElORk86IHRyeWluZyB0byByZWdpc3RlciBub24tc3RhdGljIGtl eS4KWyAgIDQ0LjcyMzA4MV0gdGhlIGNvZGUgaXMgZmluZSBidXQgbmVlZHMgbG9ja2RlcCBhbm5v dGF0aW9uLgpbICAgNDQuNzI4NTU5XSB0dXJuaW5nIG9mZiB0aGUgbG9ja2luZyBjb3JyZWN0bmVz cyB2YWxpZGF0b3IuClsgICA0NC43MzQwMzZdIENQVTogOCBQSUQ6IDU0ODMgQ29tbTogZXRodG9v bCBOb3QgdGFpbnRlZCA0LjEuMApbICAgNDQuNzcwMjg5XSBDYWxsIFRyYWNlOgpbICAgNDQuNzcy NzQxXSAgWzxmZmZmZmZmZjgxNmViMWNkPl0gZHVtcF9zdGFjaysweDRjLzB4NjUKWyAgIDQ0Ljc3 Nzg3OV0gIFs8ZmZmZmZmZmY4MTExZDkyMT5dID8gY29uc29sZV91bmxvY2srMHgxZjEvMHg1MTAK WyAgIDQ0Ljc4MzcwOF0gIFs8ZmZmZmZmZmY4MTExMjFmNT5dIF9fbG9ja19hY3F1aXJlKzB4MWQw NS8weDFmMTAKWyAgIDQ0Ljc4OTUzOF0gIFs8ZmZmZmZmZmY4MTExMzcwYT5dID8gbWFya19oZWxk X2xvY2tzKzB4NmEvMHg5MApbICAgNDQuNzk1Mjc2XSAgWzxmZmZmZmZmZjgxMTEzODM1Pl0gPyB0 cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIrMHgxMDUvMHgxZDAKWyAgIDQ0LjgwMTk2N10gIFs8ZmZm ZmZmZmY4MTExMzkwZD5dID8gdHJhY2VfaGFyZGlycXNfb24rMHhkLzB4MTAKWyAgIDQ0LjgwNzc5 M10gIFs8ZmZmZmZmZmY4MTEzMzBmYT5dID8gaHJ0aW1lcl90cnlfdG9fY2FuY2VsKzB4NGEvMHgy NTAKWyAgIDQ0LjgxNDE0Ml0gIFs8ZmZmZmZmZmY4MTExMmJhNj5dIGxvY2tfYWNxdWlyZSsweGI2 LzB4MjkwClsgICA0NC44MTk1MzddICBbPGZmZmZmZmZmODEwZDY2NzU+XSA/IGZsdXNoX3dvcmsr MHg1LzB4MjgwClsgICA0NC44MjQ4NDRdICBbPGZmZmZmZmZmODEwZDY2YWQ+XSBmbHVzaF93b3Jr KzB4M2QvMHgyODAKWyAgIDQ0LjgzMDA2MV0gIFs8ZmZmZmZmZmY4MTBkNjY3NT5dID8gZmx1c2hf d29yaysweDUvMHgyODAKWyAgIDQ0LjgzNTM2Nl0gIFs8ZmZmZmZmZmY4MTZmM2M0Mz5dID8gc2No ZWR1bGVfaHJ0aW1lb3V0X3JhbmdlKzB4MTMvMHgyMApbICAgNDQuODQxODg5XSAgWzxmZmZmZmZm ZjgxMTJlYzliPl0gPyB1c2xlZXBfcmFuZ2UrMHg0Yi8weDUwClsgICA0NC44NDczNjVdICBbPGZm ZmZmZmZmODExMTM3MGE+XSA/IG1hcmtfaGVsZF9sb2NrcysweDZhLzB4OTAKWyAgIDQ0Ljg1MzEw Ml0gIFs8ZmZmZmZmZmY4MTBkODU4NT5dID8gX19jYW5jZWxfd29ya190aW1lcisweDEwNS8weDFj MApbICAgNDQuODU5MzU5XSAgWzxmZmZmZmZmZjgxMTEzODM1Pl0gPyB0cmFjZV9oYXJkaXJxc19v bl9jYWxsZXIrMHgxMDUvMHgxZDAKWyAgIDQ0Ljg2NjA0NV0gIFs8ZmZmZmZmZmY4MTBkODUxZj5d IF9fY2FuY2VsX3dvcmtfdGltZXIrMHg5Zi8weDFjMApbICAgNDQuODcyMDQ4XSAgWzxmZmZmZmZm ZmEwMDEwOTgyPl0gPyBibngyeF9mdW5jX3N0b3ArMHg0Mi8weDkwIFtibngyeF0KWyAgIDQ0Ljg3 ODQ4MV0gIFs8ZmZmZmZmZmY4MTBkODY3MD5dIGNhbmNlbF93b3JrX3N5bmMrMHgxMC8weDIwClsg ICA0NC44ODQxMzRdICBbPGZmZmZmZmZmYTAwMjU5ZTU+XSBibngyeF9jaGlwX2NsZWFudXArMHgy NDUvMHg3MzAgW2JueDJ4XQpbICAgNDQuODkwODI5XSAgWzxmZmZmZmZmZjgxMTBjZTAyPl0gPyB1 cCsweDMyLzB4NTAKWyAgIDQ0Ljg5NTQzOV0gIFs8ZmZmZmZmZmY4MTEzMDZiNT5dID8gZGVsX3Rp bWVyX3N5bmMrMHg1LzB4ZDAKWyAgIDQ0LjkwMTAwNV0gIFs8ZmZmZmZmZmZhMDA1NTk2ZD5dIGJu eDJ4X25pY191bmxvYWQrMHgyMGQvMHg4ZTAgW2JueDJ4XQpbICAgNDQuOTA3NTI3XSAgWzxmZmZm ZmZmZjgxMWYxYWVmPl0gPyBtaWdodF9mYXVsdCsweDVmLzB4YjAKWyAgIDQ0LjkxMjkyMV0gIFs8 ZmZmZmZmZmZhMDA1ODUxYz5dIGJueDJ4X3JlbG9hZF9pZl9ydW5uaW5nKzB4MmMvMHg1MCBbYm54 MnhdClsgICA0NC45MTk4NzldICBbPGZmZmZmZmZmYTAwNWEzYzU+XSBibngyeF9zZXRfcmluZ3Bh cmFtKzB4MmI1LzB4NDYwIFtibngyeF0KWyAgIDQ0LjkyNjY2NF0gIFs8ZmZmZmZmZmY4MTVkNDk4 Yj5dIGRldl9ldGh0b29sKzB4NTViLzB4MWM0MApbICAgNDQuOTMyMTQ4XSAgWzxmZmZmZmZmZjgx NWRmZGM3Pl0gPyBydG5sX2xvY2srMHgxNy8weDIwClsgICA0NC45MzczNjRdICBbPGZmZmZmZmZm ODE1ZTdmOGI+XSBkZXZfaW9jdGwrMHgxN2IvMHg2MzAKWyAgIDQ0Ljk0MjU4Ml0gIFs8ZmZmZmZm ZmY4MTVhYmY4ZD5dIHNvY2tfZG9faW9jdGwrMHg1ZC8weDcwClsgICA0NC45NDc5NzJdICBbPGZm ZmZmZmZmODE1YWMwMTM+XSBzb2NrX2lvY3RsKzB4NzMvMHgyODAKWyAgIDQ0Ljk1MzE5Ml0gIFs8 ZmZmZmZmZmY4MTI0YzFjOD5dIGRvX3Zmc19pb2N0bCsweDg4LzB4NWIwClsgICA0NC45NTg1ODdd ICBbPGZmZmZmZmZmODExMGQwYjM+XSA/IHVwX3JlYWQrMHgyMy8weDQwClsgICA0NC45NjM2MzFd ICBbPGZmZmZmZmZmODEyNTg0Y2M+XSA/IF9fZmdldF9saWdodCsweDZjLzB4YTAKWyAgIDQ0Ljk2 OTEwNV0gIFs8ZmZmZmZmZmY4MTI0Yzc4MT5dIFN5U19pb2N0bCsweDkxLzB4YjAKWyAgIDQ0Ljk3 NDE0OV0gIFs8ZmZmZmZmZmY4MTZmNGRkNz5dIHN5c3RlbV9jYWxsX2Zhc3RwYXRoKzB4MTIvMHg2 ZgoKQXMgYm54MnhfaW5pdF9wdHAoKSBpcyBvbmx5IGNhbGxlZCBpZiBicC0+ZmxhZ3MgY29udGFp bnMgUFRQX1NVUFBPUlRFRCwKd2UgYWxzbyBuZWVkIHRvIGd1YXJkIGJueDJ4X3N0b3BfcHRwKCkg d2l0aCBzYW1lIGNvbmRpdGlvbiwgb3RoZXJ3aXNlCnB0cF90YXNrIHdvcmtxdWV1ZSBpcyBub3Qg aW5pdGlhbGl6ZWQgYW5kIGtlcm5lbCBiYXJmcyBvbgpjYW5jZWxfd29ya19zeW5jKCkKCkZpeGVz OiBlZWVkMDE4Y2JmYTMwICgiYm54Mng6IEFkZCB0aW1lc3RhbXBpbmcgYW5kIFBUUCBoYXJkd2Fy ZSBjbG9jayBzdXBwb3J0IikKUmVwb3J0ZWQtYnk6IE1pY2hlbCBMZXNwaW5hc3NlIDx3YWxrZW5A Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpDYzogTWljaGFsIEthbGRlcm9uIDxNaWNoYWwuS2FsZGVyb25AcWxvZ2ljLmNvbT4KQ2M6 IEFyaWVsIEVsaW9yIDxBcmllbC5FbGlvckBxbG9naWMuY29tPgpDYzogWXV2YWwgTWludHogPFl1 dmFsLk1pbnR6QHFsb2dpYy5jb20+CkNjOiBEYXZpZCBEZWNvdGlnbnkgPGRlY290QGdvb2dsZS5j b20+CkFja2VkLWJ5OiBTb255IENoYWNrbyA8c29ueS5jaGFja29AcWxvZ2ljLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X21haW4uYyB8IDMgKystCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbWFpbi5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbWFpbi5jCmluZGV4IDMzNTAxYmMu LjhhOTdkMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4 L2JueDJ4X21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9i bngyeF9tYWluLmMKQEAgLTkzMjMsNyArOTMyMyw4IEBAIHVubG9hZF9lcnJvcjoKIAkgKiBmdW5j dGlvbiBzdG9wIHJhbXJvZCBpcyBzZW50LCBzaW5jZSBhcyBwYXJ0IG9mIHRoaXMgcmFtcm9kIEZX IGFjY2VzcwogCSAqIFBUUCByZWdpc3RlcnMuCiAJICovCi0JYm54Mnhfc3RvcF9wdHAoYnApOwor CWlmIChicC0+ZmxhZ3MgJiBQVFBfU1VQUE9SVEVEKQorCQlibngyeF9zdG9wX3B0cChicCk7CiAK IAkvKiBEaXNhYmxlIEhXIGludGVycnVwdHMsIE5BUEkgKi8KIAlibngyeF9uZXRpZl9zdG9wKGJw LCAxKTsKLS0gCjIuMS4wCgoKRnJvbSA4NjIzMDJjZGE2YzUxY2Q1NjQ0ZTMzMTQxODljNDdmZjhh MWIwZmY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgU3ZlcmRsaW4g PGFsZXhhbmRlci5zdmVyZGxpbkBub2tpYS5jb20+CkRhdGU6IE1vbiwgMjkgSnVuIDIwMTUgMTA6 NDE6MDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDE3LzIxXSBzY3RwOiBGaXggcmFjZSBiZXR3ZWVu IE9PVEIgcmVzcG9uY2UgYW5kIHJvdXRlIHJlbW92YWwKClsgVXBzdHJlYW0gY29tbWl0IDI5YzRh ZmM0ZTk4ZjRkYzBlYTlkZjIyYzYzMTg0MWY5YzIyMGI5NDQgXQoKVGhlcmUgaXMgTlVMTCBwb2lu dGVyIGRlcmVmZXJlbmNlIHBvc3NpYmxlIGR1cmluZyBzdGF0aXN0aWNzIHVwZGF0ZSBpZiB0aGUg cm91dGUKdXNlZCBmb3IgT09UQiByZXNwb25jZSBpcyByZW1vdmVkIGF0IHVuZm9ydHVuYXRlIHRp bWUuIElmIHRoZSByb3V0ZSBleGlzdHMgd2hlbgp3ZSByZWNlaXZlIE9PVEIgcGFja2V0IGFuZCB3 ZSBmaW5hbGx5IGp1bXAgaW50byBzY3RwX3BhY2tldF90cmFuc21pdCgpIHRvIHNlbmQKQUJPUlQs IGJ1dCBpbiB0aGUgbWVhbnRpbWUgcm91dGUgaXMgcmVtb3ZlZCB1bmRlciBvdXIgZmVldCwgd2Ug dGFrZSAibm9fcm91dGUiCnBhdGggYW5kIHRyeSB0byB1cGRhdGUgc3RhdHMgd2l0aCBJUF9JTkNf U1RBVFMoc29ja19uZXQoYXNvYy0+YmFzZS5zayksIC4uLikuCgpCdXQgc2N0cF9vb3RiX3BrdF9u ZXcoKSB1c2VkIHRvIHByZXBhcmUgcmVzcG9uY2UgcGFja2V0IGRvZXNuJ3QgY2FsbApzY3RwX3Ry YW5zcG9ydF9zZXRfb3duZXIoKSBhbmQgdGhlcmVmb3JlIHRoZXJlIGlzIG5vIGFzb2MgYXNzb2Np YXRlZCB3aXRoIHRoaXMKcGFja2V0LiBQcm9iYWJseSB0ZW1wb3JhcnkgYXNvYyBqdXN0IGZvciBP T1RCIHJlc3BvbmNlcyBpcyBvdmVya2lsbCwgc28ganVzdAppbnRyb2R1Y2UgYSBjaGVjayBsaWtl IGluIGFsbCBvdGhlciBwbGFjZXMgaW4gc2N0cF9wYWNrZXRfdHJhbnNtaXQoKSwgd2hlcmUKImFz b2MiIGlzIGRlcmVmZXJlbmNlZC4KClRvIHJlcHJvZHVjZSB0aGlzLCBvbmUgbmVlZHMgdG8KMC4g ZW5zdXJlIHRoYXQgc2N0cCBtb2R1bGUgaXMgbG9hZGVkIChvdGhlcndpc2UgQUJPUlQgaXMgbm90 IGdlbmVyYXRlZCkKMS4gcmVtb3ZlIGRlZmF1bHQgcm91dGUgb24gdGhlIG1hY2hpbmUKMi4gd2hp bGUgdHJ1ZTsgZG8KICAgICBpcCByb3V0ZSBkZWwgW2ludGVyZmFjZS1zcGVjaWZpYyByb3V0ZV0K ICAgICBpcCByb3V0ZSBhZGQgW2ludGVyZmFjZS1zcGVjaWZpYyByb3V0ZV0KICAgZG9uZQozLiBz ZW5kIGVub3VnaCBPT1RCIHBhY2tldHMgKGkuZS4gSEIgUkVRcykgZnJvbSBhbm90aGVyIGhvc3Qg dG8gdHJpZ2dlciBBQk9SVAogICByZXNwb25jZQoKT24geDg2XzY0IHRoZSBjcmFzaCBsb29rcyBs aWtlIHRoaXM6CgpCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJl ZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwMDIwCklQOiBbPGZmZmZmZmZmYTA1ZWM5YWM+XSBzY3Rw X3BhY2tldF90cmFuc21pdCsweDYzYy8weDczMCBbc2N0cF0KUEdEIDAKT29wczogMDAwMCBbIzFd IFBSRUVNUFQgU01QCk1vZHVsZXMgbGlua2VkIGluOiAuLi4KQ1BVOiAwIFBJRDogMCBDb21tOiBz d2FwcGVyLzAgVGFpbnRlZDogRyAgICAgICAgICAgTyAgICA0LjAuNS0xLUFSQ0ggIzEKSGFyZHdh cmUgbmFtZTogLi4uCnRhc2s6IGZmZmZmZmZmODE4MTI0YzAgdGk6IGZmZmZmZmZmODE4MDAwMDAg dGFzay50aTogZmZmZmZmZmY4MTgwMDAwMApSSVA6IDAwMTA6WzxmZmZmZmZmZmEwNWVjOWFjPl0g IFs8ZmZmZmZmZmZhMDVlYzlhYz5dIHNjdHBfcGFja2V0X3RyYW5zbWl0KzB4NjNjLzB4NzMwIFtz Y3RwXQpSU1A6IDAwMTg6ZmZmZjg4MDEyN2MwMzdiOCAgRUZMQUdTOiAwMDAxMDI5NgpSQVg6IDAw MDAwMDAwMDAwMDAwMDAgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDAwMTVmZjY2YjQ4 MApSRFg6IDAwMDAwMDE1ZmY2NmI0MDAgUlNJOiBmZmZmODgwMTI3YzE3MjAwIFJESTogZmZmZjg4 MDEyMzQwMzcwMApSQlA6IGZmZmY4ODAxMjdjMDM4ODggUjA4OiAwMDAwMDAwMDAwMDE3MjAwIFIw OTogZmZmZmZmZmY4MTQ2MjVhZgpSMTA6IGZmZmZlYTAwMDQ3ZTQ2ODAgUjExOiAwMDAwMDAwMGZm ZmZmZjgwIFIxMjogZmZmZjg4MDBiMGQzOGEyOApSMTM6IGZmZmY4ODAwYjBkMzhhMjggUjE0OiBm ZmZmODgwMGIzZTg4MDAwIFIxNTogZmZmZmZmZmZhMDVmMjRlMApGUzogIDAwMDAwMDAwMDAwMDAw MDAoMDAwMCkgR1M6ZmZmZjg4MDEyN2MwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAw CkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwM2IKQ1IyOiAw MDAwMDAwMDAwMDAwMDIwIENSMzogMDAwMDAwMDBjODU1YjAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA3 ZjAKU3RhY2s6CiBmZmZmODgwMTI3YzAzOTEwIGZmZmY4ODAwYjBkMzhhMjggZmZmZmZmZmY4MTg5 ZDI0MCBmZmZmODgwMTFmOTFiNDAwCiBmZmZmODgwMTI3YzAzODI4IGZmZmZmZmZmYTA1Yzk0YzUg MDAwMDAwMDAwMDAwMDAwMCBmZmZmODgwMGJhYTFjNTIwCiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAw MDAwMDAwMDAwMDEgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwCkNhbGwgVHJhY2U6 CiA8SVJRPgogWzxmZmZmZmZmZmEwNWM5NGM1Pl0gPyBzY3RwX3NmX3RhYm9ydF84XzRfOC5pc3Jh LjIwKzB4ODUvMHgxNDAgW3NjdHBdCiBbPGZmZmZmZmZmYTA1ZDZiNDI+XSA/IHNjdHBfdHJhbnNw b3J0X3B1dCsweDUyLzB4ODAgW3NjdHBdCiBbPGZmZmZmZmZmYTA1ZDBiZmM+XSBzY3RwX2RvX3Nt KzB4YjhjLzB4MTlhMCBbc2N0cF0KIFs8ZmZmZmZmZmY4MTBiMGUwMD5dID8gdHJpZ2dlcl9sb2Fk X2JhbGFuY2UrMHg5MC8weDIxMAogWzxmZmZmZmZmZjgxMGUwMzI5Pl0gPyB1cGRhdGVfcHJvY2Vz c190aW1lcysweDU5LzB4NjAKIFs8ZmZmZmZmZmY4MTJjN2E0MD5dID8gdGltZXJxdWV1ZV9hZGQr MHg2MC8weGIwCiBbPGZmZmZmZmZmODEwZTA1NDk+XSA/IGVucXVldWVfaHJ0aW1lcisweDI5LzB4 YTAKIFs8ZmZmZmZmZmY4MTAxZjU5OT5dID8gcmVhZF90c2MrMHg5LzB4MTAKIFs8ZmZmZmZmZmY4 MTE2ZDRiNT5dID8gcHV0X3BhZ2UrMHg1NS8weDYwCiBbPGZmZmZmZmZmODEwZWUxYWQ+XSA/IGNs b2NrZXZlbnRzX3Byb2dyYW1fZXZlbnQrMHg2ZC8weDEwMAogWzxmZmZmZmZmZjgxNDYyYjY4Pl0g PyBza2JfZnJlZV9oZWFkKzB4NTgvMHg4MAogWzxmZmZmZmZmZmEwMjlhMTBiPl0gPyBjaGtzdW1f dXBkYXRlKzB4MWIvMHgyNyBbY3JjMzJjX2dlbmVyaWNdCiBbPGZmZmZmZmZmODEyODNmM2U+XSA/ IGNyeXB0b19zaGFzaF91cGRhdGUrMHhjZS8weGYwCiBbPGZmZmZmZmZmYTA1ZDM5OTM+XSBzY3Rw X2VuZHBvaW50X2JoX3JjdisweDExMy8weDI4MCBbc2N0cF0KIFs8ZmZmZmZmZmZhMDVkZDRlNj5d IHNjdHBfaW5xX3B1c2grMHg0Ni8weDYwIFtzY3RwXQogWzxmZmZmZmZmZmEwNWVkN2EwPl0gc2N0 cF9yY3YrMHg4ODAvMHg5MTAgW3NjdHBdCiBbPGZmZmZmZmZmYTA1ZWNiNTA+XSA/IHNjdHBfcGFj a2V0X3RyYW5zbWl0X2NodW5rKzB4YjAvMHhiMCBbc2N0cF0KIFs8ZmZmZmZmZmZhMDVlY2I3MD5d ID8gc2N0cF9jc3VtX3VwZGF0ZSsweDIwLzB4MjAgW3NjdHBdCiBbPGZmZmZmZmZmODE0YjA1YTU+ XSA/IGlwX3JvdXRlX2lucHV0X25vcmVmKzB4MjM1LzB4ZDMwCiBbPGZmZmZmZmZmODEwNTFkNmI+ XSA/IGFja19pb2FwaWNfbGV2ZWwrMHg3Yi8weDE1MAogWzxmZmZmZmZmZjgxNGIyN2JlPl0gaXBf bG9jYWxfZGVsaXZlcl9maW5pc2grMHhhZS8weDIxMAogWzxmZmZmZmZmZjgxNGIyZTE1Pl0gaXBf bG9jYWxfZGVsaXZlcisweDM1LzB4OTAKIFs8ZmZmZmZmZmY4MTRiMmExNT5dIGlwX3Jjdl9maW5p c2grMHhmNS8weDM3MAogWzxmZmZmZmZmZjgxNGIzMTI4Pl0gaXBfcmN2KzB4MmI4LzB4M2EwCiBb PGZmZmZmZmZmODE0NzQxOTM+XSBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHg3NjMvMHhhNTAK IFs8ZmZmZmZmZmY4MTQ3NmMyOD5dIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgxOC8weDYwCiBbPGZm ZmZmZmZmODE0NzZjYjA+XSBuZXRpZl9yZWNlaXZlX3NrYl9pbnRlcm5hbCsweDQwLzB4ZDAKIFs8 ZmZmZmZmZmY4MTQ3NzZjOD5dIG5hcGlfZ3JvX3JlY2VpdmUrMHhlOC8weDEyMAogWzxmZmZmZmZm ZmEwMzk0NmFhPl0gcnRsODE2OV9wb2xsKzB4MmRhLzB4NjYwIFtyODE2OV0KIFs8ZmZmZmZmZmY4 MTQ3ODk2YT5dIG5ldF9yeF9hY3Rpb24rMHgyMWEvMHgzNjAKIFs8ZmZmZmZmZmY4MTA3OGRjMT5d IF9fZG9fc29mdGlycSsweGUxLzB4MmQwCiBbPGZmZmZmZmZmODEwNzkxMmQ+XSBpcnFfZXhpdCsw eGFkLzB4YjAKIFs8ZmZmZmZmZmY4MTU3ZDE1OD5dIGRvX0lSUSsweDU4LzB4ZjAKIFs8ZmZmZmZm ZmY4MTU3YjA2ZD5dIGNvbW1vbl9pbnRlcnJ1cHQrMHg2ZC8weDZkCiA8RU9JPgogWzxmZmZmZmZm ZjgxMGUxMjE4Pl0gPyBocnRpbWVyX3N0YXJ0KzB4MTgvMHgyMAogWzxmZmZmZmZmZmEwNWQ2NWY5 Pl0gPyBzY3RwX3RyYW5zcG9ydF9kZXN0cm95X3JjdSsweDI5LzB4MzAgW3NjdHBdCiBbPGZmZmZm ZmZmODEwMjBjNTA+XSA/IG13YWl0X2lkbGUrMHg2MC8weGEwCiBbPGZmZmZmZmZmODEwMjE2ZWY+ XSBhcmNoX2NwdV9pZGxlKzB4Zi8weDIwCiBbPGZmZmZmZmZmODEwYjczMWM+XSBjcHVfc3RhcnR1 cF9lbnRyeSsweDNlYy8weDQ4MAogWzxmZmZmZmZmZjgxNTZiMzY1Pl0gcmVzdF9pbml0KzB4ODUv MHg5MAogWzxmZmZmZmZmZjgxOGViMDM1Pl0gc3RhcnRfa2VybmVsKzB4NDhiLzB4NGFjCiBbPGZm ZmZmZmZmODE4ZWExMjA+XSA/IGVhcmx5X2lkdF9oYW5kbGVycysweDEyMC8weDEyMAogWzxmZmZm ZmZmZjgxOGVhMzM5Pl0geDg2XzY0X3N0YXJ0X3Jlc2VydmF0aW9ucysweDJhLzB4MmMKIFs8ZmZm ZmZmZmY4MThlYTQ5Yz5dIHg4Nl82NF9zdGFydF9rZXJuZWwrMHgxNjEvMHgxODQKQ29kZTogOTAg NDggOGIgODAgYjggMDAgMDAgMDAgNDggODkgODUgNzAgZmYgZmYgZmYgNDggODMgYmQgNzAgZmYg ZmYgZmYgMDAgMGYgODUgY2QgZmEgZmYgZmYgNDggODkgZGYgMzEgZGIgZTggMTggNjMgZTcgZTAg NDggOGIgNDUgODAgPDQ4PiA4YiA0MCAyMCA0OCA4YiA0MCAzMCA0OCA4YiA4MCA2OCAwMSAwMCAw MCA2NSA0OCBmZiA0MCA3OCBlOQpSSVAgIFs8ZmZmZmZmZmZhMDVlYzlhYz5dIHNjdHBfcGFja2V0 X3RyYW5zbWl0KzB4NjNjLzB4NzMwIFtzY3RwXQogUlNQIDxmZmZmODgwMTI3YzAzN2I4PgpDUjI6 IDAwMDAwMDAwMDAwMDAwMjAKLS0tWyBlbmQgdHJhY2UgNWFlYzdmZDJkYzk4MzU3NCBdLS0tCktl cm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0Cktl cm5lbCBPZmZzZXQ6IDB4MCBmcm9tIDB4ZmZmZmZmZmY4MTAwMDAwMCAocmVsb2NhdGlvbiByYW5n ZTogMHhmZmZmZmZmZjgwMDAwMDAwLTB4ZmZmZmZmZmY5ZmZmZmZmZikKZHJtX2ttc19oZWxwZXI6 IHBhbmljIG9jY3VycmVkLCBzd2l0Y2hpbmcgYmFjayB0byB0ZXh0IGNvbnNvbGUKLS0tWyBlbmQg S2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlvbiBpbiBpbnRlcnJ1cHQK ClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBTdmVyZGxpbiA8YWxleGFuZGVyLnN2ZXJkbGluQG5v a2lhLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+CkFj a2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNv bT4KQWNrZWQtYnk6IFZsYWQgWWFzZXZpY2ggPHZ5YXNldmljaEBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0 cC9vdXRwdXQuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL291dHB1dC5jIGIvbmV0L3NjdHAvb3V0 cHV0LmMKaW5kZXggZmM1ZTQ1Yi4uYWJlN2MyZCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvb3V0cHV0 LmMKKysrIGIvbmV0L3NjdHAvb3V0cHV0LmMKQEAgLTU5OSw3ICs1OTksOSBAQCBvdXQ6CiAJcmV0 dXJuIGVycjsKIG5vX3JvdXRlOgogCWtmcmVlX3NrYihuc2tiKTsKLQlJUF9JTkNfU1RBVFMoc29j a19uZXQoYXNvYy0+YmFzZS5zayksIElQU1RBVFNfTUlCX09VVE5PUk9VVEVTKTsKKworCWlmIChh c29jKQorCQlJUF9JTkNfU1RBVFMoc29ja19uZXQoYXNvYy0+YmFzZS5zayksIElQU1RBVFNfTUlC X09VVE5PUk9VVEVTKTsKIAogCS8qIEZJWE1FOiBSZXR1cm5pbmcgdGhlICdlcnInIHdpbGwgZWZm ZWN0IGFsbCB0aGUgYXNzb2NpYXRpb25zCiAJICogYXNzb2NpYXRlZCB3aXRoIGEgc29ja2V0LCBh bHRob3VnaCBvbmx5IG9uZSBvZiB0aGUgcGF0aHMgb2YgdGhlCi0tIAoyLjEuMAoKCkZyb20gYTRk NTAxYTMyYzdmZmJjMzU2YTJjNjY3NzI1MWE1NjEzZGQ3NzQzNCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4KRGF0ZTog TW9uLCAyOSBKdW4gMjAxNSAxMToyMjoxMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMjFdIGFt ZC14Z2JlOiBBZGQgdGhlIF9fR0ZQX05PV0FSTiBmbGFnIHRvIFJ4IGJ1ZmZlcgogYWxsb2NhdGlv bgoKWyBVcHN0cmVhbSBjb21taXQgNDcyY2ZlNzEyNzc2MGQ2OGI4MTljZjM1YTI2ZTVhMWI0NGIz MGY0ZSBdCgpXaGVuIGFsbG9jYXRpbmcgUnggcmVsYXRlZCBidWZmZXJzLCBhbGxvY19wYWdlcyBp cyBjYWxsZWQgdXNpbmcgYW4gb3JkZXIKbnVtYmVyIHRoYXQgaXMgZGVjcmVhc2VkIHVudGlsIHN1 Y2Nlc3NmdWwuIEEgc3lzdGVtIHVuZGVyIHN0cmVzcyBjYW4KZXhwZXJpZW5jZSBmYWlsdXJlcyBk dXJpbmcgdGhpcyBhbGxvY2F0aW9uIHByb2Nlc3MgcmVzdWx0aW5nIGluIGEgd2FybmluZwpiZWlu ZyBpc3N1ZWQuIFRoaXMgbWVzc2FnZSBjYW4gYmUgb2YgY29uY2VybiB0byBlbmQgdXNlcnMgZXZl biB0aG91Z2ggdGhlCmZhaWx1cmUgaXMgbm90IGZhdGFsLiBTaW5jZSB0aGUgZmFpbHVyZSBpcyBu b3QgZmF0YWwgYW5kIGNhbiBvY2N1cgptdWx0aXBsZSB0aW1lcywgdGhlIGRyaXZlciBzaG91bGQg aW5jbHVkZSB0aGUgX19HRlBfTk9XQVJOIGZsYWcgdG8Kc3VwcHJlc3MgdGhlIHdhcm5pbmcgbWVz c2FnZSBmcm9tIGJlaW5nIGlzc3VlZC4KClNpZ25lZC1vZmYtYnk6IFRvbSBMZW5kYWNreSA8dGhv bWFzLmxlbmRhY2t5QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2Jl LWRlc2MuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtZGVz Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZXNjLmMKaW5kZXggZDgx ZmM2Yi4uNWM5MmZiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUv eGdiZS1kZXNjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZXNj LmMKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdGF0aWMgaW50IHhnYmVfYWxsb2NfcGFnZXMoc3RydWN0 IHhnYmVfcHJ2X2RhdGEgKnBkYXRhLAogCWludCByZXQ7CiAKIAkvKiBUcnkgdG8gb2J0YWluIHBh Z2VzLCBkZWNyZWFzaW5nIG9yZGVyIGlmIG5lY2Vzc2FyeSAqLwotCWdmcCB8PSBfX0dGUF9DT0xE IHwgX19HRlBfQ09NUDsKKwlnZnAgfD0gX19HRlBfQ09MRCB8IF9fR0ZQX0NPTVAgfCBfX0dGUF9O T1dBUk47CiAJd2hpbGUgKG9yZGVyID49IDApIHsKIAkJcGFnZXMgPSBhbGxvY19wYWdlcyhnZnAs IG9yZGVyKTsKIAkJaWYgKHBhZ2VzKQotLSAKMi4xLjAKCgpGcm9tIDJjNTMxNzExNmVjYzlhYjQ1 ZGEwOTFmYmFhOTU3ZDIwZDk5Mzc1MmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNp bW9uIEd1aW5vdCA8c2ltb24uZ3Vpbm90QHNlcXVhbnV4Lm9yZz4KRGF0ZTogVHVlLCAzMCBKdW4g MjAxNSAxNjoyMDoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjFdIG5ldDogbXZuZXRhOiBp bnRyb2R1Y2UgY29tcGF0aWJsZSBzdHJpbmcgIm1hcnZlbGwsCiBhcm1hZGEteHAtbmV0YSIKClsg VXBzdHJlYW0gY29tbWl0IGY1MjJhOTc1YTgxMDE4OTVhODUzNTRiOWMxNDNmNDFiODI0OGU3MWEg XQoKVGhlIG12bmV0YSBkcml2ZXIgc3VwcG9ydHMgdGhlIEV0aGVybmV0IElQIGZvdW5kIGluIHRo ZSBBcm1hZGEgMzcwLCBYUCwKMzgwIGFuZCAzODUgU29Dcy4gU2luY2UgYXQgbGVhc3Qgb25lIG1v cmUgaGFyZHdhcmUgZmVhdHVyZSBpcyBhdmFpbGFibGUKZm9yIHRoZSBBcm1hZGEgWFAgU29DcyB0 aGVuIGEgd2F5IHRvIGlkZW50aWZ5IHRoZW0gaXMgbmVlZGVkLgoKVGhpcyBwYXRjaCBpbnRyb2R1 Y2VzIGEgbmV3IGNvbXBhdGlibGUgc3RyaW5nICJtYXJ2ZWxsLGFybWFkYS14cC1uZXRhIi4KClNp Z25lZC1vZmYtYnk6IFNpbW9uIEd1aW5vdCA8c2ltb24uZ3Vpbm90QHNlcXVhbnV4Lm9yZz4KRml4 ZXM6IGM1YWZmMTgyMDRkYSAoIm5ldDogbXZuZXRhOiBkcml2ZXIgZm9yIE1hcnZlbGwgQXJtYWRh IDM3MC9YUCBuZXR3b3JrIHVuaXQiKQpDYzogPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ICMgdjMu OCsKQWNrZWQtYnk6IEdyZWdvcnkgQ0xFTUVOVCA8Z3JlZ29yeS5jbGVtZW50QGZyZWUtZWxlY3Ry b25zLmNvbT4KQWNrZWQtYnk6IFRob21hcyBQZXRhenpvbmkgPHRob21hcy5wZXRhenpvbmlAZnJl ZS1lbGVjdHJvbnMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9t YXJ2ZWxsLWFybWFkYS0zNzAtbmV0YS50eHQgfCAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t YXJ2ZWxsL212bmV0YS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgKwogMiBmaWxl cyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21hcnZlbGwtYXJtYWRhLTM3MC1u ZXRhLnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbC1h cm1hZGEtMzcwLW5ldGEudHh0CmluZGV4IDc1MGQ1NzcuLmY1YThjYTIgMTAwNjQ0Ci0tLSBhL0Rv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbC1hcm1hZGEtMzcwLW5l dGEudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVs bC1hcm1hZGEtMzcwLW5ldGEudHh0CkBAIC0xLDcgKzEsNyBAQAogKiBNYXJ2ZWxsIEFybWFkYSAz NzAgLyBBcm1hZGEgWFAgRXRoZXJuZXQgQ29udHJvbGxlciAoTkVUQSkKIAogUmVxdWlyZWQgcHJv cGVydGllczoKLS0gY29tcGF0aWJsZTogc2hvdWxkIGJlICJtYXJ2ZWxsLGFybWFkYS0zNzAtbmV0 YSIuCistIGNvbXBhdGlibGU6ICJtYXJ2ZWxsLGFybWFkYS0zNzAtbmV0YSIgb3IgIm1hcnZlbGws YXJtYWRhLXhwLW5ldGEiLgogLSByZWc6IGFkZHJlc3MgYW5kIGxlbmd0aCBvZiB0aGUgcmVnaXN0 ZXIgc2V0IGZvciB0aGUgZGV2aWNlLgogLSBpbnRlcnJ1cHRzOiBpbnRlcnJ1cHQgZm9yIHRoZSBk ZXZpY2UKIC0gcGh5OiBTZWUgZXRoZXJuZXQudHh0IGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5 LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMKaW5kZXggNzQxNzZlYy4uNGZiMjdl YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCkBAIC0zMTg1LDYgKzMxODUs NyBAQCBzdGF0aWMgaW50IG12bmV0YV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXZuZXRhX21hdGNoW10gPSB7 CiAJeyAuY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS0zNzAtbmV0YSIgfSwKKwl7IC5jb21w YXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLXhwLW5ldGEiIH0sCiAJeyB9CiB9OwogTU9EVUxFX0RF VklDRV9UQUJMRShvZiwgbXZuZXRhX21hdGNoKTsKLS0gCjIuMS4wCgoKRnJvbSAyNjdiMzFkMTYw N2RmMTFiMjg5NTU5ZDgzN2M1ZDE4MTJjMDc4YmM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBTaW1vbiBHdWlub3QgPHNpbW9uLmd1aW5vdEBzZXF1YW51eC5vcmc+CkRhdGU6IFR1ZSwg MzAgSnVuIDIwMTUgMTY6MjA6MjEgKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzIxXSBBUk06IG12 ZWJ1OiB1cGRhdGUgRXRoZXJuZXQgY29tcGF0aWJsZSBzdHJpbmcgZm9yCiBBcm1hZGEgWFAKClsg VXBzdHJlYW0gY29tbWl0IGVhM2I1NWZlODNiNWZjZWRlODJkMTgzMTY0YjlkNjgzMWIyNmUzM2Ig XQoKVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBFdGhlcm5ldCBEVCBub2RlcyBmb3IgQXJtYWRhIFhQ IFNvQ3Mgd2l0aCB0aGUKY29tcGF0aWJsZSBzdHJpbmcgIm1hcnZlbGwsYXJtYWRhLXhwLW5ldGEi LgoKU2lnbmVkLW9mZi1ieTogU2ltb24gR3Vpbm90IDxzaW1vbi5ndWlub3RAc2VxdWFudXgub3Jn PgpGaXhlczogNzc5MTY1MTljYmEzICgiYXJtOiBtdmVidTogQXJtYWRhIFhQIE1WNzgyMzAgaGFz IG9ubHkgdGhyZWUgRXRoZXJuZXQgaW50ZXJmYWNlcyIpCkNjOiA8c3RhYmxlQHZnZXIua2VybmVs Lm9yZz4gIyB2My44KwpBY2tlZC1ieTogR3JlZ29yeSBDTEVNRU5UIDxncmVnb3J5LmNsZW1lbnRA ZnJlZS1lbGVjdHJvbnMuY29tPgpSZXZpZXdlZC1ieTogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFz LnBldGF6em9uaUBmcmVlLWVsZWN0cm9ucy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBhcmNoL2FybS9ib290L2R0cy9hcm1hZGEt MzcwLXhwLmR0c2kgICAgIHwgIDIgLS0KIGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAuZHRz aSAgICAgICAgfCAgOCArKysrKysrKwogYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhwLW12Nzgy NjAuZHRzaSB8ICAyICstCiBhcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAtbXY3ODQ2MC5kdHNp IHwgIDIgKy0KIGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS14cC5kdHNpICAgICAgICAgfCAxMCAr KysrKysrKystCiA1IGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM3MC14cC5kdHNpIGIv YXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM3MC14cC5kdHNpCmluZGV4IGVjOTZmMGIuLjA2YTJm MmEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAteHAuZHRzaQorKysg Yi9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEtMzcwLXhwLmR0c2kKQEAgLTI3MCw3ICsyNzAsNiBA QAogCQkJfTsKIAogCQkJZXRoMDogZXRoZXJuZXRANzAwMDAgewotCQkJCWNvbXBhdGlibGUgPSAi bWFydmVsbCxhcm1hZGEtMzcwLW5ldGEiOwogCQkJCXJlZyA9IDwweDcwMDAwIDB4NDAwMD47CiAJ CQkJaW50ZXJydXB0cyA9IDw4PjsKIAkJCQljbG9ja3MgPSA8JmdhdGVjbGsgND47CkBAIC0yODYs NyArMjg1LDYgQEAKIAkJCX07CiAKIAkJCWV0aDE6IGV0aGVybmV0QDc0MDAwIHsKLQkJCQljb21w YXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLTM3MC1uZXRhIjsKIAkJCQlyZWcgPSA8MHg3NDAwMCAw eDQwMDA+OwogCQkJCWludGVycnVwdHMgPSA8MTA+OwogCQkJCWNsb2NrcyA9IDwmZ2F0ZWNsayAz PjsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAuZHRzaSBiL2FyY2gv YXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAuZHRzaQppbmRleCAwMGI1MGRiNS4uY2E0MjU3YiAxMDA2 NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM3MC5kdHNpCisrKyBiL2FyY2gvYXJt L2Jvb3QvZHRzL2FybWFkYS0zNzAuZHRzaQpAQCAtMzA3LDYgKzMwNywxNCBAQAogCQkJCQlkbWFj YXAsbWVtc2V0OwogCQkJCX07CiAJCQl9OworCisJCQlldGhlcm5ldEA3MDAwMCB7CisJCQkJY29t cGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS0zNzAtbmV0YSI7CisJCQl9OworCisJCQlldGhlcm5l dEA3NDAwMCB7CisJCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS0zNzAtbmV0YSI7CisJ CQl9OwogCQl9OwogCX07CiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRh LXhwLW12NzgyNjAuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS14cC1tdjc4MjYwLmR0 c2kKaW5kZXggODQ3OWZkYy4uYzVmZGM5OSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMv YXJtYWRhLXhwLW12NzgyNjAuZHRzaQorKysgYi9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAt bXY3ODI2MC5kdHNpCkBAIC0zMTgsNyArMzE4LDcgQEAKIAkJCX07CiAKIAkJCWV0aDM6IGV0aGVy bmV0QDM0MDAwIHsKLQkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLTM3MC1uZXRhIjsK KwkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLXhwLW5ldGEiOwogCQkJCXJlZyA9IDww eDM0MDAwIDB4NDAwMD47CiAJCQkJaW50ZXJydXB0cyA9IDwxND47CiAJCQkJY2xvY2tzID0gPCZn YXRlY2xrIDE+OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhwLW12Nzg0 NjAuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS14cC1tdjc4NDYwLmR0c2kKaW5kZXgg NjYxZDU0Yy4uMGUyNGYxYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhw LW12Nzg0NjAuZHRzaQorKysgYi9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAtbXY3ODQ2MC5k dHNpCkBAIC0zNTYsNyArMzU2LDcgQEAKIAkJCX07CiAKIAkJCWV0aDM6IGV0aGVybmV0QDM0MDAw IHsKLQkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLTM3MC1uZXRhIjsKKwkJCQljb21w YXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLXhwLW5ldGEiOwogCQkJCXJlZyA9IDwweDM0MDAwIDB4 NDAwMD47CiAJCQkJaW50ZXJydXB0cyA9IDwxND47CiAJCQkJY2xvY2tzID0gPCZnYXRlY2xrIDE+ OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLXhwLmR0c2kgYi9hcmNoL2Fy bS9ib290L2R0cy9hcm1hZGEteHAuZHRzaQppbmRleCAwMTNkNjNmLi44ZmRkNmQ3IDEwMDY0NAot LS0gYS9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAuZHRzaQorKysgYi9hcmNoL2FybS9ib290 L2R0cy9hcm1hZGEteHAuZHRzaQpAQCAtMTc3LDcgKzE3Nyw3IEBACiAJCQl9OwogCiAJCQlldGgy OiBldGhlcm5ldEAzMDAwMCB7Ci0JCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS0zNzAt bmV0YSI7CisJCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGFybWFkYS14cC1uZXRhIjsKIAkJCQly ZWcgPSA8MHgzMDAwMCAweDQwMDA+OwogCQkJCWludGVycnVwdHMgPSA8MTI+OwogCQkJCWNsb2Nr cyA9IDwmZ2F0ZWNsayAyPjsKQEAgLTIyMCw2ICsyMjAsMTQgQEAKIAkJCQl9OwogCQkJfTsKIAor CQkJZXRoZXJuZXRANzAwMDAgeworCQkJCWNvbXBhdGlibGUgPSAibWFydmVsbCxhcm1hZGEteHAt bmV0YSI7CisJCQl9OworCisJCQlldGhlcm5ldEA3NDAwMCB7CisJCQkJY29tcGF0aWJsZSA9ICJt YXJ2ZWxsLGFybWFkYS14cC1uZXRhIjsKKwkJCX07CisKIAkJCXhvckBmMDkwMCB7CiAJCQkJY29t cGF0aWJsZSA9ICJtYXJ2ZWxsLG9yaW9uLXhvciI7CiAJCQkJcmVnID0gPDB4RjA5MDAgMHgxMDAK LS0gCjIuMS4wCgoKRnJvbSA2OWZhNjdmMjBjYTAzZjlmNTI0NDA0ZGIzMGZmZTQ4OTdhZDNkYTg2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBHdWlub3QgPHNpbW9uLmd1aW5v dEBzZXF1YW51eC5vcmc+CkRhdGU6IFR1ZSwgMzAgSnVuIDIwMTUgMTY6MjA6MjIgKzAyMDAKU3Vi amVjdDogW1BBVENIIDIxLzIxXSBuZXQ6IG12bmV0YTogZGlzYWJsZSBJUCBjaGVja3N1bSB3aXRo IGp1bWJvIGZyYW1lcyBmb3IKIEFybWFkYSAzNzAKClsgVXBzdHJlYW0gY29tbWl0IGI2NTY1N2Zj MjQwYWU2YzFkMmExZTYyZGI5YTBlNjFhYzk2MzFkN2EgXQoKVGhlIEV0aGVybmV0IGNvbnRyb2xs ZXIgZm91bmQgaW4gdGhlIEFybWFkYSAzNzAsIDM4MCBhbmQgMzg1IFNvQ3MgZG9uJ3QKc3VwcG9y dCBUQ1AvSVAgY2hlY2tzdW1taW5nIHdpdGggZnJhbWUgc2l6ZXMgbGFyZ2VyIHRoYW4gMTYwMCBi eXRlcy4KClRoaXMgcGF0Y2ggZml4ZXMgdGhlIGlzc3VlIGJ5IGRpc2FibGluZyB0aGUgZmVhdHVy ZXMgTkVUSUZfRl9JUF9DU1VNIGFuZApORVRJRl9GX1RTTyBmb3IgdGhlIEFybWFkYSAzNzAgYW5k IGNvbXBhdGlibGVzIFNvQ3Mgd2hlbiB0aGUgTVRVIGlzIHNldAp0byBhIHZhbHVlIGdyZWF0ZXIg dGhhbiAxNjAwIGJ5dGVzLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gR3Vpbm90IDxzaW1vbi5ndWlu b3RAc2VxdWFudXgub3JnPgpGaXhlczogYzVhZmYxODIwNGRhICgibmV0OiBtdm5ldGE6IGRyaXZl ciBmb3IgTWFydmVsbCBBcm1hZGEgMzcwL1hQIG5ldHdvcmsgdW5pdCIpCkNjOiA8c3RhYmxlQHZn ZXIua2VybmVsLm9yZz4gIyB2My44KwpBY2tlZC1ieTogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFz LnBldGF6em9uaUBmcmVlLWVsZWN0cm9ucy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2 ZWxsL212bmV0YS5jIHwgMjYgKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFu Z2VkLCAyNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21h cnZlbGwvbXZuZXRhLmMKaW5kZXggNGZiMjdlYS4uNzRkMDM4OSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tYXJ2ZWxsL212bmV0YS5jCkBAIC0zMTAsNiArMzEwLDcgQEAgc3RydWN0IG12bmV0YV9wb3J0 IHsKIAl1bnNpZ25lZCBpbnQgbGluazsKIAl1bnNpZ25lZCBpbnQgZHVwbGV4OwogCXVuc2lnbmVk IGludCBzcGVlZDsKKwl1bnNpZ25lZCBpbnQgdHhfY3N1bV9saW1pdDsKIAlpbnQgdXNlX2luYmFu ZF9zdGF0dXM6MTsKIH07CiAKQEAgLTI1MDgsOCArMjUwOSwxMCBAQCBzdGF0aWMgaW50IG12bmV0 YV9jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBtdHUpCiAKIAlkZXYtPm10 dSA9IG10dTsKIAotCWlmICghbmV0aWZfcnVubmluZyhkZXYpKQorCWlmICghbmV0aWZfcnVubmlu ZyhkZXYpKSB7CisJCW5ldGRldl91cGRhdGVfZmVhdHVyZXMoZGV2KTsKIAkJcmV0dXJuIDA7CisJ fQogCiAJLyogVGhlIGludGVyZmFjZSBpcyBydW5uaW5nLCBzbyB3ZSBoYXZlIHRvIGZvcmNlIGEK IAkgKiByZWFsbG9jYXRpb24gb2YgdGhlIHF1ZXVlcwpAQCAtMjUzOCw5ICsyNTQxLDI2IEBAIHN0 YXRpYyBpbnQgbXZuZXRhX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IG10 dSkKIAltdm5ldGFfc3RhcnRfZGV2KHBwKTsKIAltdm5ldGFfcG9ydF91cChwcCk7CiAKKwluZXRk ZXZfdXBkYXRlX2ZlYXR1cmVzKGRldik7CisKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIG5ldGRl dl9mZWF0dXJlc190IG12bmV0YV9maXhfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK KwkJCQkJICAgICBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcykKK3sKKwlzdHJ1Y3QgbXZuZXRh X3BvcnQgKnBwID0gbmV0ZGV2X3ByaXYoZGV2KTsKKworCWlmIChwcC0+dHhfY3N1bV9saW1pdCAm JiBkZXYtPm10dSA+IHBwLT50eF9jc3VtX2xpbWl0KSB7CisJCWZlYXR1cmVzICY9IH4oTkVUSUZf Rl9JUF9DU1VNIHwgTkVUSUZfRl9UU08pOworCQluZXRkZXZfaW5mbyhkZXYsCisJCQkgICAgIkRp c2FibGUgSVAgY2hlY2tzdW0gZm9yIE1UVSBncmVhdGVyIHRoYW4gJWRCXG4iLAorCQkJICAgIHBw LT50eF9jc3VtX2xpbWl0KTsKKwl9CisKKwlyZXR1cm4gZmVhdHVyZXM7Cit9CisKIC8qIEdldCBt YWMgYWRkcmVzcyAqLwogc3RhdGljIHZvaWQgbXZuZXRhX2dldF9tYWNfYWRkcihzdHJ1Y3QgbXZu ZXRhX3BvcnQgKnBwLCB1bnNpZ25lZCBjaGFyICphZGRyKQogewpAQCAtMjg2Miw2ICsyODgyLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBtdm5ldGFfbmV0ZGV2X29wcyA9 IHsKIAkubmRvX3NldF9yeF9tb2RlICAgICA9IG12bmV0YV9zZXRfcnhfbW9kZSwKIAkubmRvX3Nl dF9tYWNfYWRkcmVzcyA9IG12bmV0YV9zZXRfbWFjX2FkZHIsCiAJLm5kb19jaGFuZ2VfbXR1ICAg ICAgPSBtdm5ldGFfY2hhbmdlX210dSwKKwkubmRvX2ZpeF9mZWF0dXJlcyAgICA9IG12bmV0YV9m aXhfZmVhdHVyZXMsCiAJLm5kb19nZXRfc3RhdHM2NCAgICAgPSBtdm5ldGFfZ2V0X3N0YXRzNjQs CiAJLm5kb19kb19pb2N0bCAgICAgICAgPSBtdm5ldGFfaW9jdGwsCiB9OwpAQCAtMzEwNyw2ICsz MTI4LDkgQEAgc3RhdGljIGludCBtdm5ldGFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIAkJfQogCX0KIAorCWlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShkbiwgIm1hcnZl bGwsYXJtYWRhLTM3MC1uZXRhIikpCisJCXBwLT50eF9jc3VtX2xpbWl0ID0gMTYwMDsKKwogCXBw LT50eF9yaW5nX3NpemUgPSBNVk5FVEFfTUFYX1RYRDsKIAlwcC0+cnhfcmluZ19zaXplID0gTVZO RVRBX01BWF9SWEQ7CiAKLS0gCjIuMS4wCgo= ----Next_Part(Fri_Jul__3_15_31_36_2015_221)----