From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:46828 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750998AbcKRC7y (ORCPT ); Thu, 17 Nov 2016 21:59:54 -0500 Received: from localhost (cpe-66-108-81-97.nyc.res.rr.com [66.108.81.97]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id C5A3C13AFAC14 for ; Thu, 17 Nov 2016 17:59:35 -0800 (PST) Date: Thu, 17 Nov 2016 21:59:01 -0500 (EST) Message-Id: <20161117.215901.1421463777279246300.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(Thu_Nov_17_21_59_01_2016_569)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Thu_Nov_17_21_59_01_2016_569)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for 4.4.x and 4.8.x -stable, respectively. Thanks! ----Next_Part(Thu_Nov_17_21_59_01_2016_569)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_44.mbox" RnJvbSAxMWM1ODI1YTJiMjgzN2MxNDQxMjcxMmQ3ZTljZmZkNmJkYTJmMjE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIFdlc3RwaGFsIDxmd0BzdHJsZW4uZGU+CkRhdGU6 IEZyaSwgMjggT2N0IDIwMTYgMTg6NDM6MTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDAxLzE2XSBk Y3RjcDogYXZvaWQgYm9ndXMgZG91Ymxpbmcgb2YgY3duZCBhZnRlciBsb3NzCgpbIFVwc3RyZWFt IGNvbW1pdCBjZTZkZDIzMzI5YjFlZTZhNzk0YWNmNWY3ZTQwZjhlODliODMxN2VlIF0KCklmIGEg Y29uZ2VzdGlvbiBjb250cm9sIG1vZHVsZSBkb2Vzbid0IHByb3ZpZGUgLnVuZG9fY3duZCBmdW5j dGlvbiwKdGNwX3VuZG9fY3duZF9yZWR1Y3Rpb24oKSB3aWxsIHNldCBjd25kIHRvCgogICB0cC0+ c25kX2N3bmQgPSBtYXgodHAtPnNuZF9jd25kLCB0cC0+c25kX3NzdGhyZXNoIDw8IDEpOwoKLi4u IHdoaWNoIG1ha2VzIHNlbnNlIGZvciByZW5vIChpdCBzZXRzIHNzdGhyZXNoIHRvIGhhbGYgdGhl IGN1cnJlbnQgY3duZCksCmJ1dCBpdCBtYWtlcyBubyBzZW5zZSBmb3IgZGN0Y3AsIHdoaWNoIHNl dHMgc3N0aHJlc2ggYmFzZWQgb24gdGhlIGN1cnJlbnQKY29uZ2VzdGlvbiBlc3RpbWF0ZS4KClRo aXMgY2FuIGNhdXNlIHNldmVyZSBncm93dGggb2YgY3duZCAoZXZlbnR1YWxseSBvdmVyZmxvd2lu ZyB1MzIpLgoKRml4IHRoaXMgYnkgc2F2aW5nIGxhc3QgY3duZCBvbiBsb3NzIGFuZCByZXN0b3Jl IGN3bmQgYmFzZWQgb24gdGhhdCwKc2ltaWxhciB0byBjdWJpYyBhbmQgb3RoZXIgYWxnb3JpdGht cy4KCkZpeGVzOiBlMzExOGU4MzU5YmI3YyAoIm5ldDogdGNwOiBhZGQgRENUQ1AgY29uZ2VzdGlv biBjb250cm9sIGFsZ29yaXRobSIpCkNjOiBMYXdyZW5jZSBCcmFrbW8gPGJyYWttb0BmYi5jb20+ CkNjOiBBbmRyZXcgU2hld21ha2VyIDxhZ3NoZXdAZ21haWwuY29tPgpDYzogR2xlbm4gSnVkZCA8 Z2xlbm4uanVkZEBtb3JnYW5zdGFubGV5LmNvbT4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8 ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3 QHN0cmxlbi5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9kY3RjcC5jIHwgMTMgKysrKysrKysrKysrLQogMSBm aWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2NC90Y3BfZGN0Y3AuYyBiL25ldC9pcHY0L3RjcF9kY3RjcC5jCmluZGV4IDdlNTM4 ZjcuLjU1ZDdkYTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9kY3RjcC5jCisrKyBiL25ldC9p cHY0L3RjcF9kY3RjcC5jCkBAIC01Niw2ICs1Niw3IEBAIHN0cnVjdCBkY3RjcCB7CiAJdTMyIG5l eHRfc2VxOwogCXUzMiBjZV9zdGF0ZTsKIAl1MzIgZGVsYXllZF9hY2tfcmVzZXJ2ZWQ7CisJdTMy IGxvc3NfY3duZDsKIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZGN0Y3Bfc2hpZnRfZyBfX3Jl YWRfbW9zdGx5ID0gNDsgLyogZyA9IDEvMl40ICovCkBAIC05Niw2ICs5Nyw3IEBAIHN0YXRpYyB2 b2lkIGRjdGNwX2luaXQoc3RydWN0IHNvY2sgKnNrKQogCQljYS0+ZGN0Y3BfYWxwaGEgPSBtaW4o ZGN0Y3BfYWxwaGFfb25faW5pdCwgRENUQ1BfTUFYX0FMUEhBKTsKIAogCQljYS0+ZGVsYXllZF9h Y2tfcmVzZXJ2ZWQgPSAwOworCQljYS0+bG9zc19jd25kID0gMDsKIAkJY2EtPmNlX3N0YXRlID0g MDsKIAogCQlkY3RjcF9yZXNldCh0cCwgY2EpOwpAQCAtMTExLDkgKzExMywxMCBAQCBzdGF0aWMg dm9pZCBkY3RjcF9pbml0KHN0cnVjdCBzb2NrICpzaykKIAogc3RhdGljIHUzMiBkY3RjcF9zc3Ro cmVzaChzdHJ1Y3Qgc29jayAqc2spCiB7Ci0JY29uc3Qgc3RydWN0IGRjdGNwICpjYSA9IGluZXRf Y3NrX2NhKHNrKTsKKwlzdHJ1Y3QgZGN0Y3AgKmNhID0gaW5ldF9jc2tfY2Eoc2spOwogCXN0cnVj dCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOwogCisJY2EtPmxvc3NfY3duZCA9IHRwLT5zbmRf Y3duZDsKIAlyZXR1cm4gbWF4KHRwLT5zbmRfY3duZCAtICgodHAtPnNuZF9jd25kICogY2EtPmRj dGNwX2FscGhhKSA+PiAxMVUpLCAyVSk7CiB9CiAKQEAgLTMwOCwxMiArMzExLDIwIEBAIHN0YXRp YyBzaXplX3QgZGN0Y3BfZ2V0X2luZm8oc3RydWN0IHNvY2sgKnNrLCB1MzIgZXh0LCBpbnQgKmF0 dHIsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB1MzIgZGN0Y3BfY3duZF91bmRvKHN0cnVjdCBz b2NrICpzaykKK3sKKwljb25zdCBzdHJ1Y3QgZGN0Y3AgKmNhID0gaW5ldF9jc2tfY2Eoc2spOwor CisJcmV0dXJuIG1heCh0Y3Bfc2soc2spLT5zbmRfY3duZCwgY2EtPmxvc3NfY3duZCk7Cit9CisK IHN0YXRpYyBzdHJ1Y3QgdGNwX2Nvbmdlc3Rpb25fb3BzIGRjdGNwIF9fcmVhZF9tb3N0bHkgPSB7 CiAJLmluaXQJCT0gZGN0Y3BfaW5pdCwKIAkuaW5fYWNrX2V2ZW50ICAgPSBkY3RjcF91cGRhdGVf YWxwaGEsCiAJLmN3bmRfZXZlbnQJPSBkY3RjcF9jd25kX2V2ZW50LAogCS5zc3RocmVzaAk9IGRj dGNwX3NzdGhyZXNoLAogCS5jb25nX2F2b2lkCT0gdGNwX3Jlbm9fY29uZ19hdm9pZCwKKwkudW5k b19jd25kCT0gZGN0Y3BfY3duZF91bmRvLAogCS5zZXRfc3RhdGUJPSBkY3RjcF9zdGF0ZSwKIAku Z2V0X2luZm8JPSBkY3RjcF9nZXRfaW5mbywKIAkuZmxhZ3MJCT0gVENQX0NPTkdfTkVFRFNfRUNO LAotLSAKMi43LjQKCgpGcm9tIDdjMTljOTlkNjgxZWNkMjczNWM5MmMzNzIwYTc3M2RlOTRjM2U3 MjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAyOCBPY3QgMjAxNiAxMzo0MDoyNCAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMDIvMTZdIG5ldDogY2xlYXIgc2tfZXJyX3NvZnQgaW4gc2tfY2xvbmVfbG9jaygp CgpbIFVwc3RyZWFtIGNvbW1pdCBlNTUxYzMyZDU3Yzg4OTIzZjk5ZjhmMDEwZTg5Y2E3ZWQwNzM1 ZTgzIF0KCkF0IGFjY2VwdCgpIHRpbWUsIGl0IGlzIHBvc3NpYmxlIHRoZSBwYXJlbnQgaGFzIGEg bm9uIHplcm8Kc2tfZXJyX3NvZnQsIGxlZnRvdmVyIGZyb20gYSBwcmlvciBlcnJvci4KCk1ha2Ug c3VyZSB3ZSBkbyBub3QgbGVhdmUgdGhpcyB2YWx1ZSBpbiB0aGUgY2hpbGQsIGFzIGl0Cm1ha2Vz IGZ1dHVyZSBnZXRzb2Nrb3B0KFNPX0VSUk9SKSBjYWxscyBxdWl0ZSB1bnJlbGlhYmxlLgoKU2ln bmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpBY2tlZC1ieTog U29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NvY2su YyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L2NvcmUvc29jay5jIGIvbmV0L2NvcmUvc29jay5jCmluZGV4IDBkOTFmN2QuLjg4ZjAxNzg1IDEw MDY0NAotLS0gYS9uZXQvY29yZS9zb2NrLmMKKysrIGIvbmV0L2NvcmUvc29jay5jCkBAIC0xNTYy LDYgKzE1NjIsNyBAQCBzdHJ1Y3Qgc29jayAqc2tfY2xvbmVfbG9jayhjb25zdCBzdHJ1Y3Qgc29j ayAqc2ssIGNvbnN0IGdmcF90IHByaW9yaXR5KQogCQl9CiAKIAkJbmV3c2stPnNrX2VycgkgICA9 IDA7CisJCW5ld3NrLT5za19lcnJfc29mdCA9IDA7CiAJCW5ld3NrLT5za19wcmlvcml0eSA9IDA7 CiAJCW5ld3NrLT5za19pbmNvbWluZ19jcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOwogCQlh dG9taWM2NF9zZXQoJm5ld3NrLT5za19jb29raWUsIDApOwotLSAKMi43LjQKCgpGcm9tIGNlMjQ1 NDU1NmM0YmRkMjNhZjc4Y2Q5YjYzM2ZlNTFjZmYwYjVkOWEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAy OSBPY3QgMjAxNiAxMTowMjozNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMTZdIG5ldDogbWFu Z2xlIHplcm8gY2hlY2tzdW0gaW4gc2tiX2NoZWNrc3VtX2hlbHAoKQpNSU1FLVZlcnNpb246IDEu MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNGYyZTRhZDU2YTY1ZjNiN2Q2NGMy NThlMzczY2I3MWU4ZDI0OTlmNCBdCgpTZW5kaW5nIHplcm8gY2hlY2tzdW0gaXMgb2sgZm9yIFRD UCwgYnV0IG5vdCBmb3IgVURQLgoKVURQdjYgcmVjZWl2ZXIgc2hvdWxkIGJ5IGRlZmF1bHQgZHJv cCBhIGZyYW1lIHdpdGggYSAwIGNoZWNrc3VtLAphbmQgVURQdjQgd291bGQgbm90IHZlcmlmeSB0 aGUgY2hlY2tzdW0gYW5kIG1pZ2h0IGFjY2VwdCBhIGNvcnJ1cHRlZApwYWNrZXQuCgpTaW1wbHkg cmVwbGFjZSBzdWNoIGNoZWNrc3VtIGJ5IDB4ZmZmZiwgcmVnYXJkbGVzcyBvZiB0cmFuc3BvcnQu CgpUaGlzIGVycm9yIHdhcyBjYXVnaHQgb24gU0lUIHR1bm5lbHMsIGJ1dCBzZWVtcyBnZW5lcmlj LgoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzog TWFjaWVqIMW7ZW5jenlrb3dza2kgPG1hemVAZ29vZ2xlLmNvbT4KQ2M6IFdpbGxlbSBkZSBCcnVp am4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IE1hY2llaiDFu2VuY3p5a293c2tpIDxt YXplQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXYuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5j IGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggYjNmYTRiOC4uOWNhNzQ5YyAxMDA2NDQKLS0tIGEvbmV0 L2NvcmUvZGV2LmMKKysrIGIvbmV0L2NvcmUvZGV2LmMKQEAgLTI0NjIsNyArMjQ2Miw3IEBAIGlu dCBza2JfY2hlY2tzdW1faGVscChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJZ290byBvdXQ7CiAJ fQogCi0JKihfX3N1bTE2ICopKHNrYi0+ZGF0YSArIG9mZnNldCkgPSBjc3VtX2ZvbGQoY3N1bSk7 CisJKihfX3N1bTE2ICopKHNrYi0+ZGF0YSArIG9mZnNldCkgPSBjc3VtX2ZvbGQoY3N1bSkgPzog Q1NVTV9NQU5HTEVEXzA7CiBvdXRfc2V0X3N1bW1lZDoKIAlza2ItPmlwX3N1bW1lZCA9IENIRUNL U1VNX05PTkU7CiBvdXQ6Ci0tIAoyLjcuNAoKCkZyb20gOTE1MjMwYzRhMjY1MGQzMWIwOGYzNzVj NjMyNGI0NDRlMTc4MjBjZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5keSBHb3Nw b2RhcmVrIDxnb3Nwb0Bicm9hZGNvbS5jb20+CkRhdGU6IE1vbiwgMzEgT2N0IDIwMTYgMTM6MzI6 MDMgLTA0MDAKU3ViamVjdDogW1BBVENIIDA0LzE2XSBiZ21hYzogc3RvcCBjbGVhcmluZyBETUEg cmVjZWl2ZSBjb250cm9sIHJlZ2lzdGVyIHJpZ2h0CiBhZnRlciBpdCBpcyBzZXQKClsgVXBzdHJl YW0gY29tbWl0IGZjZGVmY2NhYzk3NmVlNTFkZDYwNzE4MzJiODQyZDhmYjQxYzQ3OWMgXQoKQ3Vy cmVudCBiZ21hYyBjb2RlIGluaXRpYWxpemVzIHNvbWUgRE1BIHNldHRpbmdzIGluIHRoZSByZWNl aXZlIGNvbnRyb2wKcmVnaXN0ZXIgZm9yIHNvbWUgaGFyZHdhcmUgYW5kIHRoZW4gaW1tZWRpYXRl bHkgY2xlYXJzIHRob3NlIHNldHRpbmdzLgpOb3QgY2xlYXJpbmcgdGhvc2Ugc2V0dGluZ3MgcmVz dWx0cyBpbiB+NDIwTWJwcyAqaW1wcm92ZW1lbnQqIGluCnRocm91Z2hwdXQ7IHRoaXMgc3lzdGVt IGNhbiBub3cgcmVjZWl2ZSBmcmFtZXMgYXQgbGluZS1yYXRlIG9uIEJyb2FkY29tCjU4NzF4IGhh cmR3YXJlIGNvbXBhcmVkIHRvIH41MjBNYnBzIHRvZGF5LiAgSSBhbHNvIHRlc3RlZCBhIGZldyBv dGhlcgp2YWx1ZXMgYnV0IGZvdW5kIHRoZXJlIHRvIGJlIG5vIGRpc2Nlcm5pYmxlIGRpZmZlcmVu Y2UgaW4gQ1BVCnV0aWxpemF0aW9uIGV2ZW4gaWYgYnVyc3Qgc2l6ZSBhbmQgcHJlZmV0Y2hpbmcg dmFsdWVzIGFyZSBkaWZmZXJlbnQuCgpPbiB0aGUgaGFyZHdhcmUgdGVzdGVkIHRoZXJlIHdhcyBu byBuZWVkIHRvIGtlZXAgdGhlIGNvZGUgdGhhdCBjbGVhcmVkCmFsbCBidXQgYml0cyAxNi0xNywg YnV0IHNpbmNlIHRoZXJlIGlzIGEgd2lkZSB2YXJpZXR5IG9mIGhhcmR3YXJlIHRoYXQKdXNlZCB0 aGlzIGRyaXZlciAoSSBkaWQgbm90IGxvb2sgYXQgYWxsIGhhcmR3YXJlIGRvY3MgZm9yIGhhcmR3 YXJlIHVzaW5nCnRoaXMgSVAgYmxvY2spLCBJIGZpbmQgaXQgd2lzZSB0byBtb3ZlIHRoaXMgY2Fs bCB1cCBhbmQgY2xlYXIgYml0cyBqdXN0CmFmdGVyIHJlYWRpbmcgdGhlIGRlZmF1bHQgdmFsdWUg ZnJvbSB0aGUgaGFyZHdhcmUgcmF0aGVyIHRoYW4gY29tcGxldGVseQpyZW1vdmluZyBpdC4KClRo aXMgaXMgYSBnb29kIGNhbmRpZGF0ZSBmb3IgLXN0YWJsZSA+PTMuMTQgc2luY2UgdGhhdCBpcyB3 aGVuIHRoZSBjb2RlCnRoYXQgd2FzIHN1cHBvc2VkIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UgKGJ1 dCBkaWQgbm90KSB3YXMgaW50cm9kdWNlZC4KClNpZ25lZC1vZmYtYnk6IEFuZHkgR29zcG9kYXJl ayA8Z29zcG9AYnJvYWRjb20uY29tPgpGaXhlczogNTZjZWVjZGUxZjI5ICgiYmdtYWM6IGluaXRp YWxpemUgdGhlIERNQSBjb250cm9sbGVyIG9mIGNvcmUuLi4iKQpDYzogSGF1a2UgTWVocnRlbnMg PGhhdWtlQGhhdWtlLW0uZGU+CkFja2VkLWJ5OiBIYXVrZSBNZWhydGVucyA8aGF1a2VAaGF1a2Ut bS5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JnbWFjLmMgfCA1ICsrKystCiAx IGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JnbWFjLmMKaW5kZXggYzMyZjVkMy4uYjU2YzljNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9iZ21hYy5jCkBAIC0zMTQsNiArMzE0LDEwIEBAIHN0YXRpYyB2 b2lkIGJnbWFjX2RtYV9yeF9lbmFibGUoc3RydWN0IGJnbWFjICpiZ21hYywKIAl1MzIgY3RsOwog CiAJY3RsID0gYmdtYWNfcmVhZChiZ21hYywgcmluZy0+bW1pb19iYXNlICsgQkdNQUNfRE1BX1JY X0NUTCk7CisKKwkvKiBwcmVzZXJ2ZSBPTkxZIGJpdHMgMTYtMTcgZnJvbSBjdXJyZW50IGhhcmR3 YXJlIHZhbHVlICovCisJY3RsICY9IEJHTUFDX0RNQV9SWF9BRERSRVhUX01BU0s7CisKIAlpZiAo YmdtYWMtPmNvcmUtPmlkLnJldiA+PSA0KSB7CiAJCWN0bCAmPSB+QkdNQUNfRE1BX1JYX0JMX01B U0s7CiAJCWN0bCB8PSBCR01BQ19ETUFfUlhfQkxfMTI4IDw8IEJHTUFDX0RNQV9SWF9CTF9TSElG VDsKQEAgLTMyNCw3ICszMjgsNiBAQCBzdGF0aWMgdm9pZCBiZ21hY19kbWFfcnhfZW5hYmxlKHN0 cnVjdCBiZ21hYyAqYmdtYWMsCiAJCWN0bCAmPSB+QkdNQUNfRE1BX1JYX1BUX01BU0s7CiAJCWN0 bCB8PSBCR01BQ19ETUFfUlhfUFRfMSA8PCBCR01BQ19ETUFfUlhfUFRfU0hJRlQ7CiAJfQotCWN0 bCAmPSBCR01BQ19ETUFfUlhfQUREUkVYVF9NQVNLOwogCWN0bCB8PSBCR01BQ19ETUFfUlhfRU5B QkxFOwogCWN0bCB8PSBCR01BQ19ETUFfUlhfUEFSSVRZX0RJU0FCTEU7CiAJY3RsIHw9IEJHTUFD X0RNQV9SWF9PVkVSRkxPV19DT05UOwotLSAKMi43LjQKCgpGcm9tIGY5NmNjMjg3N2ZlMTNhOTU3 NjA5MmFiOGU3NThlNmM0OWVkN2M1MTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVs aSBDb29wZXIgPGVsaWNvb3BlckBnbXguY29tPgpEYXRlOiBUdWUsIDEgTm92IDIwMTYgMjM6NDU6 MTIgKzA4MDAKU3ViamVjdDogW1BBVENIIDA1LzE2XSBpcDZfdHVubmVsOiBDbGVhciBJUDZDQiBp biBpcDZ0dW5uZWxfeG1pdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAyM2Y0ZmZlZGI3ZDc1MWM3ZTI5 ODczMmJhOTFjYTc1ZDIyNGJjMWE2IF0KCnNrYi0+Y2IgbWF5IGNvbnRhaW4gZGF0YSBmcm9tIHBy ZXZpb3VzIGxheWVycy4gSW4gdGhlIG9ic2VydmVkIHNjZW5hcmlvLAp0aGUgZ2FyYmFnZSBkYXRh IHdlcmUgbWlzaW50ZXJwcmV0ZWQgYXMgSVA2Q0Ioc2tiKS0+ZnJhZ19tYXhfc2l6ZSwgc28KdGhh dCBzbWFsbCBwYWNrZXRzIHNlbnQgdGhyb3VnaCB0aGUgdHVubmVsIGFyZSBtaXN0YWtlbmx5IGZy YWdtZW50ZWQuCgpUaGlzIHBhdGNoIHVuY29uZGl0aW9uYWxseSBjbGVhcnMgdGhlIGNvbnRyb2wg YnVmZmVyIGluIGlwNnR1bm5lbF94bWl0KCksCndoaWNoIGFmZmVjdHMgaXA2X3R1bm5lbCwgaXA2 X3VkcF90dW5uZWwgYW5kIGlwNl9ncmUuIEN1cnJlbnRseSBub25lIG9mCnRoZXNlIHR1bm5lbHMg c2V0IElQNkNCKHNrYiktPmZsYWdzLCBvdGhlcndpc2UgaXQgbmVlZHMgdG8gYmUgZG9uZSBlYXJs aWVyLgoKQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogRWxpIENvb3Bl ciA8ZWxpY29vcGVyQGdteC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pcDZfdHVubmVsLmggfCAxICsKIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lw Nl90dW5uZWwuaCBiL2luY2x1ZGUvbmV0L2lwNl90dW5uZWwuaAppbmRleCBmZjc4OGI2Li45YzJj MDQ0IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcDZfdHVubmVsLmgKKysrIGIvaW5jbHVkZS9u ZXQvaXA2X3R1bm5lbC5oCkBAIC04Niw2ICs4Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpcDZ0 dW5uZWxfeG1pdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJc3RydWN0 IG5ldF9kZXZpY2Vfc3RhdHMgKnN0YXRzID0gJmRldi0+c3RhdHM7CiAJaW50IHBrdF9sZW4sIGVy cjsKIAorCW1lbXNldChza2ItPmNiLCAwLCBzaXplb2Yoc3RydWN0IGluZXQ2X3NrYl9wYXJtKSk7 CiAJcGt0X2xlbiA9IHNrYi0+bGVuIC0gc2tiX2lubmVyX25ldHdvcmtfb2Zmc2V0KHNrYik7CiAJ ZXJyID0gaXA2X2xvY2FsX291dChkZXZfbmV0KHNrYl9kc3Qoc2tiKS0+ZGV2KSwgc2ssIHNrYik7 CiAKLS0gCjIuNy40CgoKRnJvbSBkZWEwY2Y4MWM3Njc5NWNlOWNmNjY3M2M0MjNmNzAxMTI5ZTNj OGNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMiBOb3YgMjAxNiAwNzo1MzoxNyAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMDYvMTZdIHRjcDogZml4IHBvdGVudGlhbCBtZW1vcnkgY29ycnVwdGlvbgpNSU1F LVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgYWM5ZTcwYjE3 ZWNkN2M2ZTkzM2ZmMmVhZjdhYjM3NDI5ZTcxYmY0ZCBdCgpJbWFnaW5lIGluaXRpYWwgdmFsdWUg b2YgbWF4X3NrYl9mcmFncyBpcyAxNywgYW5kIGxhc3QKc2tiIGluIHdyaXRlIHF1ZXVlIGhhcyAx NSBmcmFncy4KClRoZW4gbWF4X3NrYl9mcmFncyBpcyBsb3dlcmVkIHRvIDE0IG9yIHNtYWxsZXIg dmFsdWUuCgp0Y3Bfc2VuZG1zZygpIHdpbGwgdGhlbiBiZSBhbGxvd2VkIHRvIGFkZCBhZGRpdGlv bmFsIHBhZ2UgZnJhZ3MKYW5kIGV2ZW50dWFsbHkgZ28gcGFzdCBNQVhfU0tCX0ZSQUdTLCBvdmVy Zmxvd2luZyBzdHJ1Y3QKc2tiX3NoYXJlZF9pbmZvLgoKRml4ZXM6IDVmNzRmODJlYTM0YyAoIm5l dDpBZGQgc3lzY3RsX21heF9za2JfZnJhZ3MiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBIYW5zIFdlc3RnYWFyZCBSeSA8aGFucy53ZXN0Z2Fh cmQucnlAb3JhY2xlLmNvbT4KQ2M6IEjDpWtvbiBCdWdnZSA8aGFha29uLmJ1Z2dlQG9yYWNsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvaXB2NC90Y3AuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQv dGNwLmMKaW5kZXggMDM2YTc2Yi4uNjlkYWE4MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMK KysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTEyMTIsNyArMTIxMiw3IEBAIG5ld19zZWdtZW50Ogog CiAJCQlpZiAoIXNrYl9jYW5fY29hbGVzY2Uoc2tiLCBpLCBwZnJhZy0+cGFnZSwKIAkJCQkJICAg ICAgcGZyYWctPm9mZnNldCkpIHsKLQkJCQlpZiAoaSA9PSBzeXNjdGxfbWF4X3NrYl9mcmFncyB8 fCAhc2cpIHsKKwkJCQlpZiAoaSA+PSBzeXNjdGxfbWF4X3NrYl9mcmFncyB8fCAhc2cpIHsKIAkJ CQkJdGNwX21hcmtfcHVzaCh0cCwgc2tiKTsKIAkJCQkJZ290byBuZXdfc2VnbWVudDsKIAkJCQl9 Ci0tIAoyLjcuNAoKCkZyb20gODYwYWFhZTI2MDZjMzM0OTMxYjlhZDM1YTAxZWRhZWNiNDZjMWM1 ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpEYXRlOiBXZWQsIDIgTm92IDIwMTYgMTg6MDQ6MjQgLTA3MDAKU3ViamVjdDog W1BBVENIIDA3LzE2XSBkY2NwOiBkbyBub3Qgc2VuZCByZXNldCB0byBhbHJlYWR5IGNsb3NlZCBz b2NrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCAzNDZkYTYyY2MxODZjNGI0YjFhYzU5Zjg3ZjQ0ODJi NDdhMDQ3Mzg4IF0KCkFuZHJleSByZXBvcnRlZCBmb2xsb3dpbmcgd2FybmluZyB3aGlsZSBmdXp6 aW5nIHdpdGggc3l6a2FsbGVyCgpXQVJOSU5HOiBDUFU6IDEgUElEOiAyMTA3MiBhdCBuZXQvZGNj cC9wcm90by5jOjgzIGRjY3Bfc2V0X3N0YXRlKzB4MjI5LzB4MjkwCktlcm5lbCBwYW5pYyAtIG5v dCBzeW5jaW5nOiBwYW5pY19vbl93YXJuIHNldCAuLi4KCkNQVTogMSBQSUQ6IDIxMDcyIENvbW06 IHN5ei1leGVjdXRvciBOb3QgdGFpbnRlZCA0LjkuMC1yYzErICMyOTMKSGFyZHdhcmUgbmFtZTog UUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgQm9jaHMgMDEvMDEv MjAxMQogZmZmZjg4MDAzZDRjNzczOCBmZmZmZmZmZjgxYjQ3NGY0IDAwMDAwMDAwMDAwMDAwMDMg ZGZmZmZjMDAwMDAwMDAwMAogZmZmZmZmZmY4NDRmOGIwMCBmZmZmODgwMDNkNGM3ODA0IGZmZmY4 ODAwM2Q0Yzc4MDAgZmZmZmZmZmY4MTQwYzA2YQogMDAwMDAwMDA0MWI1OGFiMyBmZmZmZmZmZjg0 NzlhYjdkIGZmZmZmZmZmODE0MGJlYWUgZmZmZmZmZmY4MTQwY2QwMApDYWxsIFRyYWNlOgogWzwg ICAgIGlubGluZSAgICAgPl0gX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTUKIFs8ZmZm ZmZmZmY4MWI0NzRmND5dIGR1bXBfc3RhY2srMHhiMy8weDEwZiBsaWIvZHVtcF9zdGFjay5jOjUx CiBbPGZmZmZmZmZmODE0MGMwNmE+XSBwYW5pYysweDFiYy8weDM5ZCBrZXJuZWwvcGFuaWMuYzox NzkKIFs8ZmZmZmZmZmY4MTExMTI1Yz5dIF9fd2FybisweDFjYy8weDFmMCBrZXJuZWwvcGFuaWMu Yzo1NDIKIFs8ZmZmZmZmZmY4MTExMTQ0Yz5dIHdhcm5fc2xvd3BhdGhfbnVsbCsweDJjLzB4NDAg a2VybmVsL3BhbmljLmM6NTg1CiBbPGZmZmZmZmZmODM4OWU1ZDk+XSBkY2NwX3NldF9zdGF0ZSsw eDIyOS8weDI5MCBuZXQvZGNjcC9wcm90by5jOjgzCiBbPGZmZmZmZmZmODM4YTBhYTI+XSBkY2Nw X2Nsb3NlKzB4NjEyLzB4YzEwIG5ldC9kY2NwL3Byb3RvLmM6MTAxNgogWzxmZmZmZmZmZjgzMTZi ZjFmPl0gaW5ldF9yZWxlYXNlKzB4ZWYvMHgxYzAgbmV0L2lwdjQvYWZfaW5ldC5jOjQxNQogWzxm ZmZmZmZmZjgyYjZlODllPl0gc29ja19yZWxlYXNlKzB4OGUvMHgxZDAgbmV0L3NvY2tldC5jOjU3 MAogWzxmZmZmZmZmZjgyYjZlOWY2Pl0gc29ja19jbG9zZSsweDE2LzB4MjAgbmV0L3NvY2tldC5j OjEwMTcKIFs8ZmZmZmZmZmY4MTUyNTZhZD5dIF9fZnB1dCsweDI5ZC8weDcyMCBmcy9maWxlX3Rh YmxlLmM6MjA4CiBbPGZmZmZmZmZmODE1MjViYjU+XSBfX19fZnB1dCsweDE1LzB4MjAgZnMvZmls ZV90YWJsZS5jOjI0NAogWzxmZmZmZmZmZjgxMTcyN2Q4Pl0gdGFza193b3JrX3J1bisweGY4LzB4 MTcwIGtlcm5lbC90YXNrX3dvcmsuYzoxMTYKIFs8ICAgICBpbmxpbmUgICAgID5dIGV4aXRfdGFz a193b3JrIGluY2x1ZGUvbGludXgvdGFza193b3JrLmg6MjEKIFs8ZmZmZmZmZmY4MTExYmM1Mz5d IGRvX2V4aXQrMHg4ODMvMHgyYWMwIGtlcm5lbC9leGl0LmM6ODI4CiBbPGZmZmZmZmZmODExMjIx ZmU+XSBkb19ncm91cF9leGl0KzB4MTBlLzB4MzQwIGtlcm5lbC9leGl0LmM6OTMxCiBbPGZmZmZm ZmZmODExNDNjOTQ+XSBnZXRfc2lnbmFsKzB4NjM0LzB4MTVhMCBrZXJuZWwvc2lnbmFsLmM6MjMw NwogWzxmZmZmZmZmZjgxMDU0YWFkPl0gZG9fc2lnbmFsKzB4OGQvMHgxYTMwIGFyY2gveDg2L2tl cm5lbC9zaWduYWwuYzo4MDcKIFs8ZmZmZmZmZmY4MTAwM2EwNT5dIGV4aXRfdG9fdXNlcm1vZGVf bG9vcCsweGU1LzB4MTMwCmFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjE1NgogWzwgICAgIGlubGlu ZSAgICAgPl0gcHJlcGFyZV9leGl0X3RvX3VzZXJtb2RlIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5j OjE5MAogWzxmZmZmZmZmZjgxMDA2Mjk4Pl0gc3lzY2FsbF9yZXR1cm5fc2xvd3BhdGgrMHgxYTgv MHgxZTAKYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MjU5CiBbPGZmZmZmZmZmODNmYzFhNjI+XSBl bnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4YzAvMHhjMgpEdW1waW5nIGZ0cmFjZSBidWZmZXI6 CiAgIChmdHJhY2UgYnVmZmVyIGVtcHR5KQpLZXJuZWwgT2Zmc2V0OiBkaXNhYmxlZAoKRml4IHRo aXMgdGhlIHNhbWUgd2F5IHdlIGRpZCBmb3IgVENQIGluIGNvbW1pdCA1NjViN2IyZDJlNjMKKCJ0 Y3A6IGRvIG5vdCBzZW5kIHJlc2V0IHRvIGFscmVhZHkgY2xvc2VkIHNvY2tldHMiKQoKU2lnbmVk LW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTog QW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpUZXN0ZWQtYnk6IEFuZHJl eSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kY2NwL3Byb3RvLmMgfCA0 ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQv ZGNjcC9wcm90by5jIGIvbmV0L2RjY3AvcHJvdG8uYwppbmRleCA0MWU2NTgwLi45ZmUyNWJmIDEw MDY0NAotLS0gYS9uZXQvZGNjcC9wcm90by5jCisrKyBiL25ldC9kY2NwL3Byb3RvLmMKQEAgLTEw MDksNiArMTAwOSwxMCBAQCB2b2lkIGRjY3BfY2xvc2Uoc3RydWN0IHNvY2sgKnNrLCBsb25nIHRp bWVvdXQpCiAJCV9fa2ZyZWVfc2tiKHNrYik7CiAJfQogCisJLyogSWYgc29ja2V0IGhhcyBiZWVu IGFscmVhZHkgcmVzZXQga2lsbCBpdC4gKi8KKwlpZiAoc2stPnNrX3N0YXRlID09IERDQ1BfQ0xP U0VEKQorCQlnb3RvIGFkanVkZ2VfdG9fZGVhdGg7CisKIAlpZiAoZGF0YV93YXNfdW5yZWFkKSB7 CiAJCS8qIFVucmVhZCBkYXRhIHdhcyB0b3NzZWQsIHNlbmQgYW4gYXBwcm9wcmlhdGUgUmVzZXQg Q29kZSAqLwogCQlEQ0NQX1dBUk4oIkFCT1JUIHdpdGggJXUgYnl0ZXMgdW5yZWFkXG4iLCBkYXRh X3dhc191bnJlYWQpOwotLSAKMi43LjQKCgpGcm9tIGZjYzAwYjFhYzhhNzg5N2I4YWQyMjBmNjY1 MTA1YWZiNWU0MjUyMGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyIE5vdiAyMDE2IDE5OjAwOjQwIC0w NzAwClN1YmplY3Q6IFtQQVRDSCAwOC8xNl0gZGNjcDogZml4IG91dCBvZiBib3VuZCBhY2Nlc3Mg aW4gZGNjcF92NF9lcnIoKQoKWyBVcHN0cmVhbSBjb21taXQgNjcwNmE5N2ZlYzk2M2Q2Y2IzZjdm YzI5NzhlYzE0MjdiNDY1MTIxNCBdCgpkY2NwX3Y0X2VycigpIGRvZXMgbm90IHVzZSBwc2tiX21h eV9wdWxsKCkgYW5kIG1pZ2h0IGFjY2VzcyBnYXJiYWdlLgoKV2Ugb25seSBuZWVkIDQgYnl0ZXMg YXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgRENDUCBoZWFkZXIsIGxpa2UgVENQLApzbyB0aGUgOCBi eXRlcyBwdWxsZWQgaW4gaWNtcF9zb2NrZXRfZGVsaXZlcigpIGFyZSBtb3JlIHRoYW4gZW5vdWdo LgoKVGhpcyBwYXRjaCBtaWdodCBhbGxvdyB0byBwcm9jZXNzIG1vcmUgSUNNUCBtZXNzYWdlcywg YXMgc29tZSByb3V0ZXJzCmFyZSBzdGlsbCBsaW1pdGluZyB0aGUgc2l6ZSBvZiByZWZsZWN0ZWQg Ynl0ZXMgdG8gMjggKFJGQyA3OTIpLCBpbnN0ZWFkCm9mIGV4dGVuZGVkIGxlbmd0aHMgKFJGQyAx ODEyIDQuMy4yLjMpCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvZGNjcC9pcHY0LmMgfCAxNCArKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDggaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvZGNj cC9pcHY0LmMgYi9uZXQvZGNjcC9pcHY0LmMKaW5kZXggOGJlOGYyNy4uODYxZTFmYSAxMDA2NDQK LS0tIGEvbmV0L2RjY3AvaXB2NC5jCisrKyBiL25ldC9kY2NwL2lwdjQuYwpAQCAtMjM1LDcgKzIz NSw3IEBAIHN0YXRpYyB2b2lkIGRjY3BfdjRfZXJyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiBp bmZvKQogewogCWNvbnN0IHN0cnVjdCBpcGhkciAqaXBoID0gKHN0cnVjdCBpcGhkciAqKXNrYi0+ ZGF0YTsKIAljb25zdCB1OCBvZmZzZXQgPSBpcGgtPmlobCA8PCAyOwotCWNvbnN0IHN0cnVjdCBk Y2NwX2hkciAqZGggPSAoc3RydWN0IGRjY3BfaGRyICopKHNrYi0+ZGF0YSArIG9mZnNldCk7CisJ Y29uc3Qgc3RydWN0IGRjY3BfaGRyICpkaDsKIAlzdHJ1Y3QgZGNjcF9zb2NrICpkcDsKIAlzdHJ1 Y3QgaW5ldF9zb2NrICppbmV0OwogCWNvbnN0IGludCB0eXBlID0gaWNtcF9oZHIoc2tiKS0+dHlw ZTsKQEAgLTI0NSwxMSArMjQ1LDEzIEBAIHN0YXRpYyB2b2lkIGRjY3BfdjRfZXJyKHN0cnVjdCBz a19idWZmICpza2IsIHUzMiBpbmZvKQogCWludCBlcnI7CiAJc3RydWN0IG5ldCAqbmV0ID0gZGV2 X25ldChza2ItPmRldik7CiAKLQlpZiAoc2tiLT5sZW4gPCBvZmZzZXQgKyBzaXplb2YoKmRoKSB8 fAotCSAgICBza2ItPmxlbiA8IG9mZnNldCArIF9fZGNjcF9iYXNpY19oZHJfbGVuKGRoKSkgewot CQlJQ01QX0lOQ19TVEFUU19CSChuZXQsIElDTVBfTUlCX0lORVJST1JTKTsKLQkJcmV0dXJuOwot CX0KKwkvKiBPbmx5IG5lZWQgZGNjcGhfZHBvcnQgJiBkY2NwaF9zcG9ydCB3aGljaCBhcmUgdGhl IGZpcnN0CisJICogNCBieXRlcyBpbiBkY2NwIGhlYWRlci4KKwkgKiBPdXIgY2FsbGVyIChpY21w X3NvY2tldF9kZWxpdmVyKCkpIGFscmVhZHkgcHVsbGVkIDggYnl0ZXMgZm9yIHVzLgorCSAqLwor CUJVSUxEX0JVR19PTihvZmZzZXRvZmVuZChzdHJ1Y3QgZGNjcF9oZHIsIGRjY3BoX3Nwb3J0KSA+ IDgpOworCUJVSUxEX0JVR19PTihvZmZzZXRvZmVuZChzdHJ1Y3QgZGNjcF9oZHIsIGRjY3BoX2Rw b3J0KSA+IDgpOworCWRoID0gKHN0cnVjdCBkY2NwX2hkciAqKShza2ItPmRhdGEgKyBvZmZzZXQp OwogCiAJc2sgPSBfX2luZXRfbG9va3VwX2VzdGFibGlzaGVkKG5ldCwgJmRjY3BfaGFzaGluZm8s CiAJCQkJICAgICAgIGlwaC0+ZGFkZHIsIGRoLT5kY2NwaF9kcG9ydCwKLS0gCjIuNy40CgoKRnJv bSA1Yzg0MjhiYzgwZDBlMTcxMDg0Mjc5ZTJkZmY2NGZmZmI5ODRhNDkwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6 IFdlZCwgMiBOb3YgMjAxNiAyMDozMDo0OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMTZdIGlw djY6IGRjY3A6IGZpeCBvdXQgb2YgYm91bmQgYWNjZXNzIGluIGRjY3BfdjZfZXJyKCkKClsgVXBz dHJlYW0gY29tbWl0IDFhYTlkMWEwZTdlZWZjYzYxNjk2ZTE0N2QxMjM0NTNmYzAwMTYwMDUgXQoK ZGNjcF92Nl9lcnIoKSBkb2VzIG5vdCB1c2UgcHNrYl9tYXlfcHVsbCgpIGFuZCBtaWdodCBhY2Nl c3MgZ2FyYmFnZS4KCldlIG9ubHkgbmVlZCA0IGJ5dGVzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhl IERDQ1AgaGVhZGVyLCBsaWtlIFRDUCwKc28gdGhlIDggYnl0ZXMgcHVsbGVkIGluIGljbXB2Nl9u b3RpZnkoKSBhcmUgbW9yZSB0aGFuIGVub3VnaC4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kY2NwL2lwdjYuYyB8IDE1ICsrKysrKysrLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvZGNjcC9pcHY2LmMgYi9uZXQvZGNjcC9pcHY2LmMKaW5kZXggYjg2MDhi Ny4uMDc3M2I2NCAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvaXB2Ni5jCisrKyBiL25ldC9kY2NwL2lw djYuYwpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgdm9pZCBkY2NwX3Y2X2VycihzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgaW5ldDZfc2tiX3Bhcm0gKm9wdCwKIAkJCXU4IHR5cGUsIHU4IGNv ZGUsIGludCBvZmZzZXQsIF9fYmUzMiBpbmZvKQogewogCWNvbnN0IHN0cnVjdCBpcHY2aGRyICpo ZHIgPSAoY29uc3Qgc3RydWN0IGlwdjZoZHIgKilza2ItPmRhdGE7Ci0JY29uc3Qgc3RydWN0IGRj Y3BfaGRyICpkaCA9IChzdHJ1Y3QgZGNjcF9oZHIgKikoc2tiLT5kYXRhICsgb2Zmc2V0KTsKKwlj b25zdCBzdHJ1Y3QgZGNjcF9oZHIgKmRoOwogCXN0cnVjdCBkY2NwX3NvY2sgKmRwOwogCXN0cnVj dCBpcHY2X3BpbmZvICpucDsKIAlzdHJ1Y3Qgc29jayAqc2s7CkBAIC03OCwxMiArNzgsMTMgQEAg c3RhdGljIHZvaWQgZGNjcF92Nl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGluZXQ2 X3NrYl9wYXJtICpvcHQsCiAJX191NjQgc2VxOwogCXN0cnVjdCBuZXQgKm5ldCA9IGRldl9uZXQo c2tiLT5kZXYpOwogCi0JaWYgKHNrYi0+bGVuIDwgb2Zmc2V0ICsgc2l6ZW9mKCpkaCkgfHwKLQkg ICAgc2tiLT5sZW4gPCBvZmZzZXQgKyBfX2RjY3BfYmFzaWNfaGRyX2xlbihkaCkpIHsKLQkJSUNN UDZfSU5DX1NUQVRTX0JIKG5ldCwgX19pbjZfZGV2X2dldChza2ItPmRldiksCi0JCQkJICAgSUNN UDZfTUlCX0lORVJST1JTKTsKLQkJcmV0dXJuOwotCX0KKwkvKiBPbmx5IG5lZWQgZGNjcGhfZHBv cnQgJiBkY2NwaF9zcG9ydCB3aGljaCBhcmUgdGhlIGZpcnN0CisJICogNCBieXRlcyBpbiBkY2Nw IGhlYWRlci4KKwkgKiBPdXIgY2FsbGVyIChpY21wdjZfbm90aWZ5KCkpIGFscmVhZHkgcHVsbGVk IDggYnl0ZXMgZm9yIHVzLgorCSAqLworCUJVSUxEX0JVR19PTihvZmZzZXRvZmVuZChzdHJ1Y3Qg ZGNjcF9oZHIsIGRjY3BoX3Nwb3J0KSA+IDgpOworCUJVSUxEX0JVR19PTihvZmZzZXRvZmVuZChz dHJ1Y3QgZGNjcF9oZHIsIGRjY3BoX2Rwb3J0KSA+IDgpOworCWRoID0gKHN0cnVjdCBkY2NwX2hk ciAqKShza2ItPmRhdGEgKyBvZmZzZXQpOwogCiAJc2sgPSBfX2luZXQ2X2xvb2t1cF9lc3RhYmxp c2hlZChuZXQsICZkY2NwX2hhc2hpbmZvLAogCQkJCQkmaGRyLT5kYWRkciwgZGgtPmRjY3BoX2Rw b3J0LAotLSAKMi43LjQKCgpGcm9tIDY3MTMwYWVmNGUyMjczNjdkOWY0YTMyZDYyOTM1NWYyNzNi NjUwZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAzIE5vdiAyMDE2IDA4OjU5OjQ2IC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAxMC8xNl0gaXB2NjogZGNjcDogYWRkIG1pc3NpbmcgYmluZF9jb25mbGljdCB0 bwogZGNjcF9pcHY2X21hcHBlZAoKWyBVcHN0cmVhbSBjb21taXQgOTkwZmY0ZDg0NDA4ZmM1NTk0 MmNhNjY0NGY2N2UzNjE3MzdiM2Q4ZSBdCgpXaGlsZSBmdXp6aW5nIGtlcm5lbCB3aXRoIHN5emth bGxlciwgQW5kcmV5IHJlcG9ydGVkIGEgbmFzdHkgY3Jhc2gKaW4gaW5ldDZfYmluZCgpIGNhdXNl ZCBieSBEQ0NQIGxhY2tpbmcgYSByZXF1aXJlZCBtZXRob2QuCgpGaXhlczogYWIxZTBhMTNkNzAy OSAoIltTT0NLXSBwcm90bzogQWRkIGhhc2hpbmZvIG1lbWJlciB0byBzdHJ1Y3QgcHJvdG8iKQpT aWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVk LWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ClRlc3RlZC1ieTog QW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpDYzogQXJuYWxkbyBDYXJ2 YWxobyBkZSBNZWxvIDxhY21lQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBBcm5hbGRvIENhcnZhbGhv IGRlIE1lbG8gPGFjbWVAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kY2NwL2lwdjYuYyB8IDEgKwogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvaXB2Ni5jIGIv bmV0L2RjY3AvaXB2Ni5jCmluZGV4IDA3NzNiNjQuLjI3YzRlODEgMTAwNjQ0Ci0tLSBhL25ldC9k Y2NwL2lwdjYuYworKysgYi9uZXQvZGNjcC9pcHY2LmMKQEAgLTk0OCw2ICs5NDgsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGluZXRfY29ubmVjdGlvbl9zb2NrX2FmX29wcyBkY2NwX2lwdjZfbWFw cGVkID0gewogCS5nZXRzb2Nrb3B0CSAgID0gaXB2Nl9nZXRzb2Nrb3B0LAogCS5hZGRyMnNvY2th ZGRyCSAgID0gaW5ldDZfY3NrX2FkZHIyc29ja2FkZHIsCiAJLnNvY2thZGRyX2xlbgkgICA9IHNp emVvZihzdHJ1Y3Qgc29ja2FkZHJfaW42KSwKKwkuYmluZF9jb25mbGljdAkgICA9IGluZXQ2X2Nz a19iaW5kX2NvbmZsaWN0LAogI2lmZGVmIENPTkZJR19DT01QQVQKIAkuY29tcGF0X3NldHNvY2tv cHQgPSBjb21wYXRfaXB2Nl9zZXRzb2Nrb3B0LAogCS5jb21wYXRfZ2V0c29ja29wdCA9IGNvbXBh dF9pcHY2X2dldHNvY2tvcHQsCi0tIAoyLjcuNAoKCkZyb20gY2FhMDI1MzAwZGUyZTE2YTU4ZjVh ZmU2YjkyYWRiOTc3MDBjNDY1MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2Vs byBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+CkRhdGU6IFRodSwg MyBOb3YgMjAxNiAxNzowMzo0MSAtMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMTZdIHNjdHA6IGFz c2lnbiBhc3NvY19pZCBlYXJsaWVyIGluIF9fc2N0cF9jb25uZWN0CgpbIFVwc3RyZWFtIGNvbW1p dCA3MjMzYmM4NGEzYWVkYTgzNWQzMzQ0OTlkYzAwNDQ4MzczY2FmNWMwIF0KCnNjdHBfd2FpdF9m b3JfY29ubmVjdCgpIGN1cnJlbnRseSBhbHJlYWR5IGhvbGRzIHRoZSBhc29jIHRvIGtlZXAgaXQK YWxpdmUgZHVyaW5nIHRoZSBzbGVlcCwgaW4gY2FzZSBhbm90aGVyIHRocmVhZCByZWxlYXNlIGl0 LiBCdXQgQW5kcmV5Cktvbm92YWxvdiBhbmQgRG1pdHJ5IFZ5dWtvdiByZXBvcnRlZCBhbiB1c2Ut YWZ0ZXItZnJlZSBpbiBzdWNoCnNpdHVhdGlvbi4KClByb2JsZW0gaXMgdGhhdCBfX3NjdHBfY29u bmVjdCgpIGRvZXNuJ3QgZ2V0IGEgcmVmIG9uIHRoZSBhc29jIGFuZCB3aWxsCmRvIGEgcmVhZCBv biB0aGUgYXNvYyBhZnRlciBjYWxsaW5nIHNjdHBfd2FpdF9mb3JfY29ubmVjdCgpLCBidXQgYnkg dGhlbgphbm90aGVyIHRocmVhZCBtYXkgaGF2ZSBjbG9zZWQgaXQgYW5kIHRoZSBfcHV0IG9uIHNj dHBfd2FpdF9mb3JfY29ubmVjdAp3aWxsIGFjdHVhbGx5IHJlbGVhc2UgaXQsIGNhdXNpbmcgdGhl IHVzZS1hZnRlci1mcmVlLgoKRml4IGlzLCBpbnN0ZWFkIG9mIGRvaW5nIHRoZSByZWFkIGFmdGVy IHdhaXRpbmcgZm9yIHRoZSBjb25uZWN0LCBkbyBpdApiZWZvcmUgc28sIGFuZCBhdm9pZCB0aGlz IGlzc3VlIGFzIHRoZSBzb2NrZXQgaXMgc3RpbGwgbG9ja2VkIGJ5IHRoZW4uClRoZXJlIHNob3Vs ZCBiZSBubyBpc3N1ZSBvbiByZXR1cm5pbmcgdGhlIGFzb2MgaWQgaW4gY2FzZSBvZiBmYWlsdXJl IGFzCnRoZSBhcHBsaWNhdGlvbiBzaG91bGRuJ3QgdHJ1c3Qgb24gdGhhdCBudW1iZXIgaW4gc3Vj aCBzaXR1YXRpb25zCmFueXdheS4KClRoaXMgaXNzdWUgZG9lc24ndCBleGlzdCBpbiBzY3RwX3Nl bmRtc2coKSBwYXRoLgoKUmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xl LmNvbT4KUmVwb3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNv bT4KVGVzdGVkLWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ClNp Z25lZC1vZmYtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tl ZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL3NvY2tl dC5jIHwgNyArKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0 LmMKaW5kZXggNDAyODE3Yi4uYjVmZDRhYiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc29ja2V0LmMK KysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTEyMTIsOSArMTIxMiwxMiBAQCBzdGF0aWMgaW50 IF9fc2N0cF9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywKIAogCXRpbWVvID0gc29ja19zbmR0aW1l byhzaywgZl9mbGFncyAmIE9fTk9OQkxPQ0spOwogCi0JZXJyID0gc2N0cF93YWl0X2Zvcl9jb25u ZWN0KGFzb2MsICZ0aW1lbyk7Ci0JaWYgKChlcnIgPT0gMCB8fCBlcnIgPT0gLUVJTlBST0dSRVNT KSAmJiBhc3NvY19pZCkKKwlpZiAoYXNzb2NfaWQpCiAJCSphc3NvY19pZCA9IGFzb2MtPmFzc29j X2lkOworCWVyciA9IHNjdHBfd2FpdF9mb3JfY29ubmVjdChhc29jLCAmdGltZW8pOworCS8qIE5v dGU6IHRoZSBhc29jIG1heSBiZSBmcmVlZCBhZnRlciB0aGUgcmV0dXJuIG9mCisJICogc2N0cF93 YWl0X2Zvcl9jb25uZWN0LgorCSAqLwogCiAJLyogRG9uJ3QgZnJlZSBhc3NvY2lhdGlvbiBvbiBl eGl0LiAqLwogCWFzb2MgPSBOVUxMOwotLSAKMi43LjQKCgpGcm9tIDIxOWE1ZWVlY2RlYTUzNWY1 NjNiZTk3NjZhZmUwM2I0N2VkMmJkMTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFs ZXhhbmRlciBEdXljayA8YWxleGFuZGVyLmguZHV5Y2tAaW50ZWwuY29tPgpEYXRlOiBGcmksIDQg Tm92IDIwMTYgMTU6MTE6NTcgLTA0MDAKU3ViamVjdDogW1BBVENIIDEyLzE2XSBmaWJfdHJpZTog Q29ycmVjdCAvcHJvYy9uZXQvcm91dGUgb2ZmIGJ5IG9uZSBlcnJvcgoKWyBVcHN0cmVhbSBjb21t aXQgZmQwMjg1YTM5YjFjYjQ5NmY2MDIxMGE5YTAwYWQzM2E4MTU2MDNlNyBdCgpUaGUgZGlzcGxh eSBvZiAvcHJvYy9uZXQvcm91dGUgaGFzIGhhZCBhIGNvdXBsZSBpc3N1ZXMgZHVlIHRvIHRoZSBm YWN0IHRoYXQKd2hlbiBJIG9yaWdpbmFsbHkgcmV3cm90ZSBtb3N0IG9mIGZpYl90cmllIEkgbWFk ZSBpdCBzbyB0aGF0IHRoZSBpdGVyYXRvcgp3YXMgdHJhY2tpbmcgdGhlIG5leHQgdmFsdWUgdG8g dXNlIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQuCgpJbiBhZGRpdGlvbiBpdCBoYWQgYW4gb2ZmIGJ5 IDEgZXJyb3Igd2hlcmUgSSB3YXMgdHJhY2tpbmcgdGhlIGZpcnN0IHBpZWNlCm9mIGRhdGEgYXMg cG9zaXRpb24gMCwgZXZlbiB0aG91Z2ggaW4gcmVhbGl0eSB0aGF0IGJlbG9uZ2VkIHRvIHRoZQpT RVFfU1RBUlRfVE9LRU4uCgpUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGNvZGUgc28gdGhlIGl0ZXJh dG9yIHRyYWNrcyB0aGUgbGFzdCByZXBvcnRlZApwb3NpdGlvbiBhbmQga2V5IGluc3RlYWQgb2Yg dGhlIG5leHQgZXhwZWN0ZWQgcG9zaXRpb24gYW5kIGtleS4gIEluCmFkZGl0aW9uIGl0IHNoaWZ0 cyB0aGluZ3Mgc28gdGhhdCBhbGwgb2YgdGhlIGxlYXZlcyBzdGFydCBhdCAxIGluc3RlYWQgb2YK dHJ5aW5nIHRvIHJlcG9ydCBsZWF2ZXMgc3RhcnRpbmcgd2l0aCBvZmZzZXQgMCBhcyBiZWluZyB2 YWxpZC4gIFdpdGggdGhlc2UKdHdvIGlzc3VlcyBhZGRyZXNzZWQgdGhpcyBzaG91bGQgcmVzb2x2 ZSBhbnkgb2ZmIGJ5IG9uZSBlcnJvcnMgdGhhdCB3ZXJlCnByZXNlbnQgaW4gdGhlIGRpc3BsYXkg b2YgL3Byb2MvbmV0L3JvdXRlLgoKRml4ZXM6IDI1Yjk3YzAxNmIyNiAoImlwdjQ6IG9mZi1ieS1v bmUgaW4gY29udGludWF0aW9uIGhhbmRsaW5nIGluIC9wcm9jL25ldC9yb3V0ZSIpCkNjOiBBbmR5 IFdoaXRjcm9mdCA8YXB3QGNhbm9uaWNhbC5jb20+ClJlcG9ydGVkLWJ5OiBKYXNvbiBCYXJvbiA8 amJhcm9uQGFrYW1haS5jb20+ClRlc3RlZC1ieTogSmFzb24gQmFyb24gPGpiYXJvbkBha2FtYWku Y29tPgpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgRHV5Y2sgPGFsZXhhbmRlci5oLmR1eWNrQGlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9pcHY0L2ZpYl90cmllLmMgfCAyMSArKysrKysrKystLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2ZpYl90cmllLmMgYi9uZXQvaXB2NC9maWJfdHJpZS5jCmluZGV4IGU1 YTNmZjIuLjdjNTJhZmIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl90cmllLmMKKysrIGIvbmV0 L2lwdjQvZmliX3RyaWUuYwpAQCAtMjQ1NiwyMiArMjQ1NiwxOSBAQCBzdGF0aWMgc3RydWN0IGtl eV92ZWN0b3IgKmZpYl9yb3V0ZV9nZXRfaWR4KHN0cnVjdCBmaWJfcm91dGVfaXRlciAqaXRlciwK IAlzdHJ1Y3Qga2V5X3ZlY3RvciAqbCwgKip0cCA9ICZpdGVyLT50bm9kZTsKIAl0X2tleSBrZXk7 CiAKLQkvKiB1c2UgY2FjaGUgbG9jYXRpb24gb2YgbmV4dC10by1maW5kIGtleSAqLworCS8qIHVz ZSBjYWNoZWQgbG9jYXRpb24gb2YgcHJldmlvdXNseSBmb3VuZCBrZXkgKi8KIAlpZiAoaXRlci0+ cG9zID4gMCAmJiBwb3MgPj0gaXRlci0+cG9zKSB7Ci0JCXBvcyAtPSBpdGVyLT5wb3M7CiAJCWtl eSA9IGl0ZXItPmtleTsKIAl9IGVsc2UgewotCQlpdGVyLT5wb3MgPSAwOworCQlpdGVyLT5wb3Mg PSAxOwogCQlrZXkgPSAwOwogCX0KIAotCXdoaWxlICgobCA9IGxlYWZfd2Fsa19yY3UodHAsIGtl eSkpICE9IE5VTEwpIHsKKwlwb3MgLT0gaXRlci0+cG9zOworCisJd2hpbGUgKChsID0gbGVhZl93 YWxrX3JjdSh0cCwga2V5KSkgJiYgKHBvcy0tID4gMCkpIHsKIAkJa2V5ID0gbC0+a2V5ICsgMTsK IAkJaXRlci0+cG9zKys7Ci0KLQkJaWYgKC0tcG9zIDw9IDApCi0JCQlicmVhazsKLQogCQlsID0g TlVMTDsKIAogCQkvKiBoYW5kbGUgdW5saWtlbHkgY2FzZSBvZiBhIGtleSB3cmFwICovCkBAIC0y NDgwLDcgKzI0NzcsNyBAQCBzdGF0aWMgc3RydWN0IGtleV92ZWN0b3IgKmZpYl9yb3V0ZV9nZXRf aWR4KHN0cnVjdCBmaWJfcm91dGVfaXRlciAqaXRlciwKIAl9CiAKIAlpZiAobCkKLQkJaXRlci0+ a2V5ID0ga2V5OwkvKiByZW1lbWJlciBpdCAqLworCQlpdGVyLT5rZXkgPSBsLT5rZXk7CS8qIHJl bWVtYmVyIGl0ICovCiAJZWxzZQogCQlpdGVyLT5wb3MgPSAwOwkJLyogZm9yZ2V0IGl0ICovCiAK QEAgLTI1MDgsNyArMjUwNSw3IEBAIHN0YXRpYyB2b2lkICpmaWJfcm91dGVfc2VxX3N0YXJ0KHN0 cnVjdCBzZXFfZmlsZSAqc2VxLCBsb2ZmX3QgKnBvcykKIAkJcmV0dXJuIGZpYl9yb3V0ZV9nZXRf aWR4KGl0ZXIsICpwb3MpOwogCiAJaXRlci0+cG9zID0gMDsKLQlpdGVyLT5rZXkgPSAwOworCWl0 ZXItPmtleSA9IEtFWV9NQVg7CiAKIAlyZXR1cm4gU0VRX1NUQVJUX1RPS0VOOwogfQpAQCAtMjUx Nyw3ICsyNTE0LDcgQEAgc3RhdGljIHZvaWQgKmZpYl9yb3V0ZV9zZXFfbmV4dChzdHJ1Y3Qgc2Vx X2ZpbGUgKnNlcSwgdm9pZCAqdiwgbG9mZl90ICpwb3MpCiB7CiAJc3RydWN0IGZpYl9yb3V0ZV9p dGVyICppdGVyID0gc2VxLT5wcml2YXRlOwogCXN0cnVjdCBrZXlfdmVjdG9yICpsID0gTlVMTDsK LQl0X2tleSBrZXkgPSBpdGVyLT5rZXk7CisJdF9rZXkga2V5ID0gaXRlci0+a2V5ICsgMTsKIAog CSsrKnBvczsKIApAQCAtMjUyNiw3ICsyNTIzLDcgQEAgc3RhdGljIHZvaWQgKmZpYl9yb3V0ZV9z ZXFfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdiwgbG9mZl90ICpwb3MpCiAJCWwg PSBsZWFmX3dhbGtfcmN1KCZpdGVyLT50bm9kZSwga2V5KTsKIAogCWlmIChsKSB7Ci0JCWl0ZXIt PmtleSA9IGwtPmtleSArIDE7CisJCWl0ZXItPmtleSA9IGwtPmtleTsKIAkJaXRlci0+cG9zKys7 CiAJfSBlbHNlIHsKIAkJaXRlci0+cG9zID0gMDsKLS0gCjIuNy40CgoKRnJvbSA2ZGJkMTVmN2Y1 ZWQ1MDg2NWY0YzYxYWI4MWZlZTZjODRkOGFlNzcxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpEYXRlOiBGcmks IDQgTm92IDIwMTYgMTU6MzY6NDkgLTA0MDAKU3ViamVjdDogW1BBVENIIDEzLzE2XSBzb2NrOiBm aXggc2VuZG1tc2cgZm9yIHBhcnRpYWwgc2VuZG1zZwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgMzAyMzg5OGI3ZDRhYWM2NTk4N2JkMmY0ODVjYzIy MzkwYWFlNmY3OCBdCgpEbyBub3Qgc2VuZCB0aGUgbmV4dCBtZXNzYWdlIGluIHNlbmRtbXNnIGZv ciBwYXJ0aWFsIHNlbmRtc2cKaW52b2NhdGlvbnMuCgpzZW5kbW1zZyBhc3N1bWVzIHRoYXQgaXQg Y2FuIGNvbnRpbnVlIHNlbmRpbmcgdGhlIG5leHQgbWVzc2FnZQp3aGVuIHRoZSByZXR1cm4gdmFs dWUgb2YgdGhlIGluZGl2aWR1YWwgc2VuZG1zZyBpbnZvY2F0aW9ucwppcyBwb3NpdGl2ZS4gSXQg cmVzdWx0cyBpbiBjb3JydXB0aW5nIHRoZSBkYXRhIGZvciBUQ1AsClNDVFAsIGFuZCBVTklYIHN0 cmVhbXMuCgpGb3IgZXhhbXBsZSwgc2VuZG1tc2coW1siYWJjZCJdLCBbImVmZ2giXV0pIGNhbiBy ZXN1bHQgaW4gYSBzdHJlYW0Kb2YgImFlZmdoIiBpZiB0aGUgZmlyc3Qgc2VuZG1zZyBpbnZvY2F0 aW9uIHNlbmRzIG9ubHkgdGhlIGZpcnN0CmJ5dGUgd2hpbGUgdGhlIHNlY29uZCBzZW5kbXNnIGdv ZXMgdGhyb3VnaC4KCkRhdGFncmFtIHNvY2tldHMgZWl0aGVyIHNlbmQgdGhlIGVudGlyZSBkYXRh Z3JhbSBvciBmYWlsLCBzbwp0aGlzIHBhdGNoIGFmZmVjdHMgb25seSBzb2NrZXRzIG9mIHR5cGUg U09DS19TVFJFQU0gYW5kClNPQ0tfU0VRUEFDS0VULgoKRml4ZXM6IDIyOGU1NDhlNjAyMCAoIm5l dDogQWRkIHNlbmRtbXNnIHNvY2tldCBzeXN0ZW0gY2FsbCIpClNpZ25lZC1vZmYtYnk6IFNvaGVp bCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJy dWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBOZWFsIENhcmR3ZWxsIDxu Y2FyZHdlbGxAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IE1hY2llaiDFu2VuY3p5a293c2tpIDxtYXpl QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc29ja2V0LmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NvY2tldC5jIGIvbmV0L3NvY2tldC5jCmluZGV4 IDI2M2IzMzQuLjAwOTAyMjUgMTAwNjQ0Ci0tLSBhL25ldC9zb2NrZXQuYworKysgYi9uZXQvc29j a2V0LmMKQEAgLTIwNDEsNiArMjA0MSw4IEBAIGludCBfX3N5c19zZW5kbW1zZyhpbnQgZmQsIHN0 cnVjdCBtbXNnaGRyIF9fdXNlciAqbW1zZywgdW5zaWduZWQgaW50IHZsZW4sCiAJCWlmIChlcnIp CiAJCQlicmVhazsKIAkJKytkYXRhZ3JhbXM7CisJCWlmIChtc2dfZGF0YV9sZWZ0KCZtc2dfc3lz KSkKKwkJCWJyZWFrOwogCX0KIAogCWZwdXRfbGlnaHQoc29jay0+ZmlsZSwgZnB1dF9uZWVkZWQp OwotLSAKMi43LjQKCgpGcm9tIDg5YzE2YTMyMjY2ZjdjM2FmMjQ0ODg2ZjE3NDc1MTBhMDQ2MDRi NTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KRGF0ZTogV2VkLCA5IE5vdiAyMDE2IDE2OjA0OjQ2IC0wODAwClN1YmplY3Q6 IFtQQVRDSCAxNC8xNl0gbmV0OiBfX3NrYl9mbG93X2Rpc3NlY3QoKSBtdXN0IGNhcCBpdHMgcmV0 dXJuIHZhbHVlCgpbIFVwc3RyZWFtIGNvbW1pdCAzNGZhZDU0YzI1MzdmN2M5OWQwNzM3NWU1MGNi MzBhYTNjMjNiZDgzIF0KCkFmdGVyIFRvbSBwYXRjaCwgdGhvZmYgZmllbGQgY291bGQgcG9pbnQg cGFzdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIsCnRoaXMgY291bGQgZm9vbCBzb21lIGNhbGxlcnMu CgpJZiBhbiBza2Igd2FzIHByb3ZpZGVkLCBza2ItPmxlbiBzaG91bGQgYmUgdGhlIHVwcGVyIGxp bWl0LgpJZiBub3QsIGhsZW4gaXMgc3VwcG9zZWQgdG8gYmUgdGhlIHVwcGVyIGxpbWl0LgoKRml4 ZXM6IGE2ZTU0NGIwYTg4YiAoImZsb3dfZGlzc2VjdG9yOiBKdW1wIHRvIGV4aXQgY29kZSBpbiBf X3NrYl9mbG93X2Rpc3NlY3QiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBZaWJpbiBZYW5nIDx5aWJ5YW5nQGNpc2NvLmNvbQpB Y2tlZC1ieTogQWxleGFuZGVyIER1eWNrIDxhbGV4YW5kZXIuaC5kdXlja0BpbnRlbC5jb20+CkFj a2VkLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBB bGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZmxvd19kaXNzZWN0 b3IuYyB8IDExICsrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMgYi9u ZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jCmluZGV4IDRhYjZlYWQuLjlhYmE5ZTkgMTAwNjQ0Ci0t LSBhL25ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMKKysrIGIvbmV0L2NvcmUvZmxvd19kaXNzZWN0 b3IuYwpAQCAtMTMxLDcgKzEzMSw3IEBAIGJvb2wgX19za2JfZmxvd19kaXNzZWN0KGNvbnN0IHN0 cnVjdCBza19idWZmICpza2IsCiAJc3RydWN0IGZsb3dfZGlzc2VjdG9yX2tleV90YWdzICprZXlf dGFnczsKIAlzdHJ1Y3QgZmxvd19kaXNzZWN0b3Jfa2V5X2tleWlkICprZXlfa2V5aWQ7CiAJdTgg aXBfcHJvdG8gPSAwOwotCWJvb2wgcmV0ID0gZmFsc2U7CisJYm9vbCByZXQ7CiAKIAlpZiAoIWRh dGEpIHsKIAkJZGF0YSA9IHNrYi0+ZGF0YTsKQEAgLTQ5MiwxMiArNDkyLDE3IEBAIGlwX3Byb3Rv X2FnYWluOgogb3V0X2dvb2Q6CiAJcmV0ID0gdHJ1ZTsKIAotb3V0X2JhZDoKKwlrZXlfY29udHJv bC0+dGhvZmYgPSAodTE2KW5ob2ZmOworb3V0OgogCWtleV9iYXNpYy0+bl9wcm90byA9IHByb3Rv OwogCWtleV9iYXNpYy0+aXBfcHJvdG8gPSBpcF9wcm90bzsKLQlrZXlfY29udHJvbC0+dGhvZmYg PSAodTE2KW5ob2ZmOwogCiAJcmV0dXJuIHJldDsKKworb3V0X2JhZDoKKwlyZXQgPSBmYWxzZTsK KwlrZXlfY29udHJvbC0+dGhvZmYgPSBtaW5fdCh1MTYsIG5ob2ZmLCBza2IgPyBza2ItPmxlbiA6 IGhsZW4pOworCWdvdG8gb3V0OwogfQogRVhQT1JUX1NZTUJPTChfX3NrYl9mbG93X2Rpc3NlY3Qp OwogCi0tIAoyLjcuNAoKCkZyb20gMGZlODZhZmRkODMxZGUyNzdiNzc5MDc0MmYyODUzN2YzMGFl MTVjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlcGhlbiBTdXJ5YXB1dHJhIExp biA8c3RlcGhlbi5zdXJ5YXB1dHJhLmxpbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTAgTm92IDIw MTYgMTE6MTY6MTUgLTA1MDAKU3ViamVjdDogW1BBVENIIDE1LzE2XSBpcHY0OiB1c2UgbmV3X2d3 IGZvciByZWRpcmVjdCBuZWlnaCBsb29rdXAKClsgVXBzdHJlYW0gY29tbWl0IDk2OTQ0N2YyMjZi NDUxYzQ1M2RkYzgzY2FjNjE0NGVhZWFjNmYyZTMgXQoKSW4gdjIuNiwgaXBfcnRfcmVkaXJlY3Qo KSBjYWxscyBhcnBfYmluZF9uZWlnaGJvdXIoKSB3aGljaCByZXR1cm5zIDAKYW5kIHRoZW4gdGhl IHN0YXRlIG9mIHRoZSBuZWlnaCBmb3IgdGhlIG5ld19ndyBpcyBjaGVja2VkLiBJZiB0aGUgc3Rh dGUKaXNuJ3QgdmFsaWQgdGhlbiB0aGUgcmVkaXJlY3RlZCByb3V0ZSBpcyBkZWxldGVkLiBUaGlz IGJlaGF2aW9yIGlzCm1haW50YWluZWQgdXAgdG8gdjMuNS43IGJ5IGNoZWNrX3BlZXJfcmVkaXJl Y3QoKSBiZWNhdXNlIHJ0LT5ydF9nYXRld2F5CmlzIGFzc2lnbmVkIHRvIHBlZXItPnJlZGlyZWN0 X2xlYXJuZWQuYTQgYmVmb3JlIGNhbGxpbmcKaXB2NF9uZWlnaF9sb29rdXAoKS4KCkFmdGVyIGNv bW1pdCA1OTQzNjM0ZmM1NTkgKCJpcHY0OiBNYWludGFpbiByZWRpcmVjdCBhbmQgUE1UVSBpbmZv IGluCnN0cnVjdCBydGFibGUgYWdhaW4uIiksIGlwdjRfbmVpZ2hfbG9va3VwKCkgaXMgcGVyZm9y bWVkIHdpdGhvdXQgdGhlCnJ0X2dhdGV3YXkgYXNzaWduZWQgdG8gdGhlIG5ld19ndy4gSW4gdGhl IGNhc2Ugd2hlbiBydF9nYXRld2F5IChvbGRfZ3cpCmlzbid0IHplcm8sIHRoZSBmdW5jdGlvbiB1 c2VzIGl0IGFzIHRoZSBrZXkuIFRoZSBuZWlnaCBpcyBtb3N0IGxpa2VseQp2YWxpZCBzaW5jZSB0 aGUgb2xkX2d3IGlzIHRoZSBvbmUgdGhhdCBzZW5kcyB0aGUgSUNNUCByZWRpcmVjdCBtZXNzYWdl LgpUaGVuIHRoZSBuZXdfZ3cgaXMgYXNzaWduZWQgdG8gZmliX25oX2V4Y2VwdGlvbi4gVGhlIHBy b2JsZW0gaXM6IHRoZQpuZXdfZ3cgQVJQIG1heSBuZXZlciBnZXRzIHJlc29sdmVkIGFuZCB0aGUg dHJhZmZpYyBpcyBibGFja2hvbGVkLgoKU28sIHVzZSB0aGUgbmV3X2d3IGZvciBuZWlnaCBsb29r dXAuCgpDaGFuZ2VzIGZyb20gdjE6CiAtIHVzZSBfX2lwdjRfbmVpZ2hfbG9va3VwIGluc3RlYWQg KHBlciBFcmljIER1bWF6ZXQpLgoKRml4ZXM6IDU5NDM2MzRmYzU1OSAoImlwdjQ6IE1haW50YWlu IHJlZGlyZWN0IGFuZCBQTVRVIGluZm8gaW4gc3RydWN0IHJ0YWJsZSBhZ2Fpbi4iKQpTaWduZWQt b2ZmLWJ5OiBTdGVwaGVuIFN1cnlhcHV0cmEgTGluIDxzc3VyeWFAaWVlZS5vcmc+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2 NC9yb3V0ZS5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRl LmMKaW5kZXggODUzM2E3NS4uN2NlYjhhNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYwor KysgYi9uZXQvaXB2NC9yb3V0ZS5jCkBAIC03NDcsNyArNzQ3LDkgQEAgc3RhdGljIHZvaWQgX19p cF9kb19yZWRpcmVjdChzdHJ1Y3QgcnRhYmxlICpydCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IGZsb3cKIAkJCWdvdG8gcmVqZWN0X3JlZGlyZWN0OwogCX0KIAotCW4gPSBpcHY0X25laWdo X2xvb2t1cCgmcnQtPmRzdCwgTlVMTCwgJm5ld19ndyk7CisJbiA9IF9faXB2NF9uZWlnaF9sb29r dXAocnQtPmRzdC5kZXYsIG5ld19ndyk7CisJaWYgKCFuKQorCQluID0gbmVpZ2hfY3JlYXRlKCZh cnBfdGJsLCAmbmV3X2d3LCBydC0+ZHN0LmRldik7CiAJaWYgKCFJU19FUlIobikpIHsKIAkJaWYg KCEobi0+bnVkX3N0YXRlICYgTlVEX1ZBTElEKSkgewogCQkJbmVpZ2hfZXZlbnRfc2VuZChuLCBO VUxMKTsKLS0gCjIuNy40CgoKRnJvbSBmYTkxYzllNzVjMGUxMTVhZDMzNjdiODY5MGMxOWY4YzQ2 NmM4Y2UwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+CkRhdGU6IFRodSwgMTAgTm92IDIwMTYgMTM6MTI6MzUgLTA4MDAKU3Vi amVjdDogW1BBVENIIDE2LzE2XSB0Y3A6IHRha2UgY2FyZSBvZiB0cnVuY2F0aW9ucyBkb25lIGJ5 IHNrX2ZpbHRlcigpCgpbIFVwc3RyZWFtIGNvbW1pdCBhYzZlNzgwMDcwZTMwZTRjMzViZDM5NWFj ZmU5MTkxZTYyNjhiZGQzIF0KCldpdGggc3l6a2FsbGVyIGhlbHAsIE1hcmNvIEdyYXNzaSBmb3Vu ZCBhIGJ1ZyBpbiBUQ1Agc3RhY2ssCmNyYXNoaW5nIGluIHRjcF9jb2xsYXBzZSgpCgpSb290IGNh dXNlIGlzIHRoYXQgc2tfZmlsdGVyKCkgY2FuIHRydW5jYXRlIHRoZSBpbmNvbWluZyBza2IsCmJ1 dCBUQ1Agc3RhY2sgd2FzIG5vdCByZWFsbHkgZXhwZWN0aW5nIHRoaXMgdG8gaGFwcGVuLgpJdCBw cm9iYWJseSB3YXMgZXhwZWN0aW5nIGEgc2ltcGxlIERST1Agb3IgQUNDRVBUIGJlaGF2aW9yLgoK V2UgZmlyc3QgbmVlZCB0byBtYWtlIHN1cmUgbm8gcGFydCBvZiBUQ1AgaGVhZGVyIGNvdWxkIGJl IHJlbW92ZWQuClRoZW4gd2UgbmVlZCB0byBhZGp1c3QgVENQX1NLQl9DQihza2IpLT5lbmRfc2Vx CgpNYW55IHRoYW5rcyB0byBzeXprYWxsZXIgdGVhbSBhbmQgTWFyY28gZm9yIGdpdmluZyB1cyBh IHJlcHJvZHVjZXIuCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+ClJlcG9ydGVkLWJ5OiBNYXJjbyBHcmFzc2kgPG1hcmNvLmdyYUBnbWFpbC5jb20+ClJl cG9ydGVkLWJ5OiBWbGFkaXMgRHJvbm92IDx2ZHJvbm92QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xp bnV4L2ZpbHRlci5oIHwgIDYgKysrKystCiBpbmNsdWRlL25ldC90Y3AuaCAgICAgIHwgIDEgKwog bmV0L2NvcmUvZmlsdGVyLmMgICAgICB8IDEwICsrKysrLS0tLS0KIG5ldC9pcHY0L3RjcF9pcHY0 LmMgICAgfCAxOSArKysrKysrKysrKysrKysrKystCiBuZXQvaXB2Ni90Y3BfaXB2Ni5jICAgIHwg IDYgKysrKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9maWx0ZXIuaCBiL2luY2x1ZGUvbGludXgv ZmlsdGVyLmgKaW5kZXggNTExMGQ0Mi4uY2NiOThiNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51 eC9maWx0ZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L2ZpbHRlci5oCkBAIC00MjEsNyArNDIxLDEx IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBicGZfcHJvZ191bmxvY2tfcm8oc3RydWN0IGJwZl9wcm9n ICpmcCkKIH0KICNlbmRpZiAvKiBDT05GSUdfREVCVUdfU0VUX01PRFVMRV9ST05YICovCiAKLWlu dCBza19maWx0ZXIoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKK2ludCBz a19maWx0ZXJfdHJpbV9jYXAoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1 bnNpZ25lZCBpbnQgY2FwKTsKK3N0YXRpYyBpbmxpbmUgaW50IHNrX2ZpbHRlcihzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCit7CisJcmV0dXJuIHNrX2ZpbHRlcl90cmltX2Nh cChzaywgc2tiLCAxKTsKK30KIAogaW50IGJwZl9wcm9nX3NlbGVjdF9ydW50aW1lKHN0cnVjdCBi cGZfcHJvZyAqZnApOwogdm9pZCBicGZfcHJvZ19mcmVlKHN0cnVjdCBicGZfcHJvZyAqZnApOwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaAppbmRleCA5 YzNhYjU0Li5lOWQ3YThlIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90Y3AuaAorKysgYi9pbmNs dWRlL25ldC90Y3AuaApAQCAtMTE1Niw2ICsxMTU2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHRj cF9wcmVxdWV1ZV9pbml0KHN0cnVjdCB0Y3Bfc29jayAqdHApCiB9CiAKIGJvb2wgdGNwX3ByZXF1 ZXVlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7CitpbnQgdGNwX2ZpbHRl cihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpOwogCiAjdW5kZWYgU1RBVEVf VFJBQ0UKIApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmlsdGVyLmMgYi9uZXQvY29yZS9maWx0ZXIu YwppbmRleCA3NWU5YjJiLi5lOTQzNTU0IDEwMDY0NAotLS0gYS9uZXQvY29yZS9maWx0ZXIuYwor KysgYi9uZXQvY29yZS9maWx0ZXIuYwpAQCAtNTIsOSArNTIsMTAgQEAKICNpbmNsdWRlIDxuZXQv ZHN0Lmg+CiAKIC8qKgotICoJc2tfZmlsdGVyIC0gcnVuIGEgcGFja2V0IHRocm91Z2ggYSBzb2Nr ZXQgZmlsdGVyCisgKglza19maWx0ZXJfdHJpbV9jYXAgLSBydW4gYSBwYWNrZXQgdGhyb3VnaCBh IHNvY2tldCBmaWx0ZXIKICAqCUBzazogc29jayBhc3NvY2lhdGVkIHdpdGggJnNrX2J1ZmYKICAq CUBza2I6IGJ1ZmZlciB0byBmaWx0ZXIKKyAqCUBjYXA6IGxpbWl0IG9uIGhvdyBzaG9ydCB0aGUg ZUJQRiBwcm9ncmFtIG1heSB0cmltIHRoZSBwYWNrZXQKICAqCiAgKiBSdW4gdGhlIGVCUEYgcHJv Z3JhbSBhbmQgdGhlbiBjdXQgc2tiLT5kYXRhIHRvIGNvcnJlY3Qgc2l6ZSByZXR1cm5lZCBieQog ICogdGhlIHByb2dyYW0uIElmIHBrdF9sZW4gaXMgMCB3ZSB0b3NzIHBhY2tldC4gSWYgc2tiLT5s ZW4gaXMgc21hbGxlcgpAQCAtNjMsNyArNjQsNyBAQAogICogYmUgYWNjZXB0ZWQgb3IgLUVQRVJN IGlmIHRoZSBwYWNrZXQgc2hvdWxkIGJlIHRvc3NlZC4KICAqCiAgKi8KLWludCBza19maWx0ZXIo c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoraW50IHNrX2ZpbHRlcl90cmlt X2NhcChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVkIGludCBj YXApCiB7CiAJaW50IGVycjsKIAlzdHJ1Y3Qgc2tfZmlsdGVyICpmaWx0ZXI7CkBAIC04NCwxNCAr ODUsMTMgQEAgaW50IHNrX2ZpbHRlcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpz a2IpCiAJZmlsdGVyID0gcmN1X2RlcmVmZXJlbmNlKHNrLT5za19maWx0ZXIpOwogCWlmIChmaWx0 ZXIpIHsKIAkJdW5zaWduZWQgaW50IHBrdF9sZW4gPSBicGZfcHJvZ19ydW5fc2F2ZV9jYihmaWx0 ZXItPnByb2csIHNrYik7Ci0KLQkJZXJyID0gcGt0X2xlbiA/IHBza2JfdHJpbShza2IsIHBrdF9s ZW4pIDogLUVQRVJNOworCQllcnIgPSBwa3RfbGVuID8gcHNrYl90cmltKHNrYiwgbWF4KGNhcCwg cGt0X2xlbikpIDogLUVQRVJNOwogCX0KIAlyY3VfcmVhZF91bmxvY2soKTsKIAogCXJldHVybiBl cnI7CiB9Ci1FWFBPUlRfU1lNQk9MKHNrX2ZpbHRlcik7CitFWFBPUlRfU1lNQk9MKHNrX2ZpbHRl cl90cmltX2NhcCk7CiAKIHN0YXRpYyB1NjQgX19za2JfZ2V0X3BheV9vZmZzZXQodTY0IGN0eCwg dTY0IGEsIHU2NCB4LCB1NjQgcjQsIHU2NCByNSkKIHsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3Rj cF9pcHY0LmMgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCmluZGV4IGI1ODUzY2EuLmI1OGEzOGUgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pcHY0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwpA QCAtMTUzMyw2ICsxNTMzLDIxIEBAIGJvb2wgdGNwX3ByZXF1ZXVlKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IHNrX2J1ZmYgKnNrYikKIH0KIEVYUE9SVF9TWU1CT0wodGNwX3ByZXF1ZXVlKTsKIAor aW50IHRjcF9maWx0ZXIoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQorewor CXN0cnVjdCB0Y3BoZHIgKnRoID0gKHN0cnVjdCB0Y3BoZHIgKilza2ItPmRhdGE7CisJdW5zaWdu ZWQgaW50IGVhdGVuID0gc2tiLT5sZW47CisJaW50IGVycjsKKworCWVyciA9IHNrX2ZpbHRlcl90 cmltX2NhcChzaywgc2tiLCB0aC0+ZG9mZiAqIDQpOworCWlmICghZXJyKSB7CisJCWVhdGVuIC09 IHNrYi0+bGVuOworCQlUQ1BfU0tCX0NCKHNrYiktPmVuZF9zZXEgLT0gZWF0ZW47CisJfQorCXJl dHVybiBlcnI7Cit9CitFWFBPUlRfU1lNQk9MKHRjcF9maWx0ZXIpOworCiAvKgogICoJRnJvbSB0 Y3BfaW5wdXQuYwogICovCkBAIC0xNjM4LDggKzE2NTMsMTAgQEAgcHJvY2VzczoKIAogCW5mX3Jl c2V0KHNrYik7CiAKLQlpZiAoc2tfZmlsdGVyKHNrLCBza2IpKQorCWlmICh0Y3BfZmlsdGVyKHNr LCBza2IpKQogCQlnb3RvIGRpc2NhcmRfYW5kX3JlbHNlOworCXRoID0gKGNvbnN0IHN0cnVjdCB0 Y3BoZHIgKilza2ItPmRhdGE7CisJaXBoID0gaXBfaGRyKHNrYik7CiAKIAlza2ItPmRldiA9IE5V TEw7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3RjcF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2 Ni5jCmluZGV4IGZiZDUyMWYuLjVmNTgxNjEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3RjcF9pcHY2 LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAtMTIxNCw3ICsxMjE0LDcgQEAgc3RhdGlj IGludCB0Y3BfdjZfZG9fcmN2KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikK IAlpZiAoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUCkpCiAJCXJldHVybiB0Y3BfdjRf ZG9fcmN2KHNrLCBza2IpOwogCi0JaWYgKHNrX2ZpbHRlcihzaywgc2tiKSkKKwlpZiAodGNwX2Zp bHRlcihzaywgc2tiKSkKIAkJZ290byBkaXNjYXJkOwogCiAJLyoKQEAgLTE0MzgsOCArMTQzOCwx MCBAQCBwcm9jZXNzOgogCWlmICh0Y3BfdjZfaW5ib3VuZF9tZDVfaGFzaChzaywgc2tiKSkKIAkJ Z290byBkaXNjYXJkX2FuZF9yZWxzZTsKIAotCWlmIChza19maWx0ZXIoc2ssIHNrYikpCisJaWYg KHRjcF9maWx0ZXIoc2ssIHNrYikpCiAJCWdvdG8gZGlzY2FyZF9hbmRfcmVsc2U7CisJdGggPSAo Y29uc3Qgc3RydWN0IHRjcGhkciAqKXNrYi0+ZGF0YTsKKwloZHIgPSBpcHY2X2hkcihza2IpOwog CiAJc2tiLT5kZXYgPSBOVUxMOwogCi0tIAoyLjcuNAoK ----Next_Part(Thu_Nov_17_21_59_01_2016_569)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_48.mbox" RnJvbSBmYzRlMjE0NjY4MmI2NDdjMzBmZmZhZmYwOGU1OGYwNWY0ZWY1YzllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIFdlc3RwaGFsIDxmd0BzdHJsZW4uZGU+CkRhdGU6 IEZyaSwgMjggT2N0IDIwMTYgMTg6NDM6MTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDAxLzI5XSBk Y3RjcDogYXZvaWQgYm9ndXMgZG91Ymxpbmcgb2YgY3duZCBhZnRlciBsb3NzCgpbIFVwc3RyZWFt IGNvbW1pdCBjZTZkZDIzMzI5YjFlZTZhNzk0YWNmNWY3ZTQwZjhlODliODMxN2VlIF0KCklmIGEg Y29uZ2VzdGlvbiBjb250cm9sIG1vZHVsZSBkb2Vzbid0IHByb3ZpZGUgLnVuZG9fY3duZCBmdW5j dGlvbiwKdGNwX3VuZG9fY3duZF9yZWR1Y3Rpb24oKSB3aWxsIHNldCBjd25kIHRvCgogICB0cC0+ c25kX2N3bmQgPSBtYXgodHAtPnNuZF9jd25kLCB0cC0+c25kX3NzdGhyZXNoIDw8IDEpOwoKLi4u IHdoaWNoIG1ha2VzIHNlbnNlIGZvciByZW5vIChpdCBzZXRzIHNzdGhyZXNoIHRvIGhhbGYgdGhl IGN1cnJlbnQgY3duZCksCmJ1dCBpdCBtYWtlcyBubyBzZW5zZSBmb3IgZGN0Y3AsIHdoaWNoIHNl dHMgc3N0aHJlc2ggYmFzZWQgb24gdGhlIGN1cnJlbnQKY29uZ2VzdGlvbiBlc3RpbWF0ZS4KClRo aXMgY2FuIGNhdXNlIHNldmVyZSBncm93dGggb2YgY3duZCAoZXZlbnR1YWxseSBvdmVyZmxvd2lu ZyB1MzIpLgoKRml4IHRoaXMgYnkgc2F2aW5nIGxhc3QgY3duZCBvbiBsb3NzIGFuZCByZXN0b3Jl IGN3bmQgYmFzZWQgb24gdGhhdCwKc2ltaWxhciB0byBjdWJpYyBhbmQgb3RoZXIgYWxnb3JpdGht cy4KCkZpeGVzOiBlMzExOGU4MzU5YmI3YyAoIm5ldDogdGNwOiBhZGQgRENUQ1AgY29uZ2VzdGlv biBjb250cm9sIGFsZ29yaXRobSIpCkNjOiBMYXdyZW5jZSBCcmFrbW8gPGJyYWttb0BmYi5jb20+ CkNjOiBBbmRyZXcgU2hld21ha2VyIDxhZ3NoZXdAZ21haWwuY29tPgpDYzogR2xlbm4gSnVkZCA8 Z2xlbm4uanVkZEBtb3JnYW5zdGFubGV5LmNvbT4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8 ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3 QHN0cmxlbi5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9kY3RjcC5jIHwgMTMgKysrKysrKysrKysrLQogMSBm aWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2NC90Y3BfZGN0Y3AuYyBiL25ldC9pcHY0L3RjcF9kY3RjcC5jCmluZGV4IDEwZDcy OGIuLmFiMzdjNjcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9kY3RjcC5jCisrKyBiL25ldC9p cHY0L3RjcF9kY3RjcC5jCkBAIC01Niw2ICs1Niw3IEBAIHN0cnVjdCBkY3RjcCB7CiAJdTMyIG5l eHRfc2VxOwogCXUzMiBjZV9zdGF0ZTsKIAl1MzIgZGVsYXllZF9hY2tfcmVzZXJ2ZWQ7CisJdTMy IGxvc3NfY3duZDsKIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZGN0Y3Bfc2hpZnRfZyBfX3Jl YWRfbW9zdGx5ID0gNDsgLyogZyA9IDEvMl40ICovCkBAIC05Niw2ICs5Nyw3IEBAIHN0YXRpYyB2 b2lkIGRjdGNwX2luaXQoc3RydWN0IHNvY2sgKnNrKQogCQljYS0+ZGN0Y3BfYWxwaGEgPSBtaW4o ZGN0Y3BfYWxwaGFfb25faW5pdCwgRENUQ1BfTUFYX0FMUEhBKTsKIAogCQljYS0+ZGVsYXllZF9h Y2tfcmVzZXJ2ZWQgPSAwOworCQljYS0+bG9zc19jd25kID0gMDsKIAkJY2EtPmNlX3N0YXRlID0g MDsKIAogCQlkY3RjcF9yZXNldCh0cCwgY2EpOwpAQCAtMTExLDkgKzExMywxMCBAQCBzdGF0aWMg dm9pZCBkY3RjcF9pbml0KHN0cnVjdCBzb2NrICpzaykKIAogc3RhdGljIHUzMiBkY3RjcF9zc3Ro cmVzaChzdHJ1Y3Qgc29jayAqc2spCiB7Ci0JY29uc3Qgc3RydWN0IGRjdGNwICpjYSA9IGluZXRf Y3NrX2NhKHNrKTsKKwlzdHJ1Y3QgZGN0Y3AgKmNhID0gaW5ldF9jc2tfY2Eoc2spOwogCXN0cnVj dCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOwogCisJY2EtPmxvc3NfY3duZCA9IHRwLT5zbmRf Y3duZDsKIAlyZXR1cm4gbWF4KHRwLT5zbmRfY3duZCAtICgodHAtPnNuZF9jd25kICogY2EtPmRj dGNwX2FscGhhKSA+PiAxMVUpLCAyVSk7CiB9CiAKQEAgLTMwOCwxMiArMzExLDIwIEBAIHN0YXRp YyBzaXplX3QgZGN0Y3BfZ2V0X2luZm8oc3RydWN0IHNvY2sgKnNrLCB1MzIgZXh0LCBpbnQgKmF0 dHIsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB1MzIgZGN0Y3BfY3duZF91bmRvKHN0cnVjdCBz b2NrICpzaykKK3sKKwljb25zdCBzdHJ1Y3QgZGN0Y3AgKmNhID0gaW5ldF9jc2tfY2Eoc2spOwor CisJcmV0dXJuIG1heCh0Y3Bfc2soc2spLT5zbmRfY3duZCwgY2EtPmxvc3NfY3duZCk7Cit9CisK IHN0YXRpYyBzdHJ1Y3QgdGNwX2Nvbmdlc3Rpb25fb3BzIGRjdGNwIF9fcmVhZF9tb3N0bHkgPSB7 CiAJLmluaXQJCT0gZGN0Y3BfaW5pdCwKIAkuaW5fYWNrX2V2ZW50ICAgPSBkY3RjcF91cGRhdGVf YWxwaGEsCiAJLmN3bmRfZXZlbnQJPSBkY3RjcF9jd25kX2V2ZW50LAogCS5zc3RocmVzaAk9IGRj dGNwX3NzdGhyZXNoLAogCS5jb25nX2F2b2lkCT0gdGNwX3Jlbm9fY29uZ19hdm9pZCwKKwkudW5k b19jd25kCT0gZGN0Y3BfY3duZF91bmRvLAogCS5zZXRfc3RhdGUJPSBkY3RjcF9zdGF0ZSwKIAku Z2V0X2luZm8JPSBkY3RjcF9nZXRfaW5mbywKIAkuZmxhZ3MJCT0gVENQX0NPTkdfTkVFRFNfRUNO LAotLSAKMi40LjExCgoKRnJvbSA2ZWIxM2JmMjIzYWZhZWZhZDdkYTFmZGJlMWYzYWZmMjZlZWZh ZDRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgMjggT2N0IDIwMTYgMTM6NDA6MjQgLTA3MDAKU3ViamVj dDogW1BBVENIIDAyLzI5XSBuZXQ6IGNsZWFyIHNrX2Vycl9zb2Z0IGluIHNrX2Nsb25lX2xvY2so KQoKWyBVcHN0cmVhbSBjb21taXQgZTU1MWMzMmQ1N2M4ODkyM2Y5OWY4ZjAxMGU4OWNhN2VkMDcz NWU4MyBdCgpBdCBhY2NlcHQoKSB0aW1lLCBpdCBpcyBwb3NzaWJsZSB0aGUgcGFyZW50IGhhcyBh IG5vbiB6ZXJvCnNrX2Vycl9zb2Z0LCBsZWZ0b3ZlciBmcm9tIGEgcHJpb3IgZXJyb3IuCgpNYWtl IHN1cmUgd2UgZG8gbm90IGxlYXZlIHRoaXMgdmFsdWUgaW4gdGhlIGNoaWxkLCBhcyBpdAptYWtl cyBmdXR1cmUgZ2V0c29ja29wdChTT19FUlJPUikgY2FsbHMgcXVpdGUgdW5yZWxpYWJsZS4KClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6 IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9zb2Nr LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25l dC9jb3JlL3NvY2suYyBiL25ldC9jb3JlL3NvY2suYwppbmRleCBmZDdiNDFlLi42YjhkMjI0IDEw MDY0NAotLS0gYS9uZXQvY29yZS9zb2NrLmMKKysrIGIvbmV0L2NvcmUvc29jay5jCkBAIC0xNTYz LDYgKzE1NjMsNyBAQCBzdHJ1Y3Qgc29jayAqc2tfY2xvbmVfbG9jayhjb25zdCBzdHJ1Y3Qgc29j ayAqc2ssIGNvbnN0IGdmcF90IHByaW9yaXR5KQogCQlSQ1VfSU5JVF9QT0lOVEVSKG5ld3NrLT5z a19yZXVzZXBvcnRfY2IsIE5VTEwpOwogCiAJCW5ld3NrLT5za19lcnIJICAgPSAwOworCQluZXdz ay0+c2tfZXJyX3NvZnQgPSAwOwogCQluZXdzay0+c2tfcHJpb3JpdHkgPSAwOwogCQluZXdzay0+ c2tfaW5jb21pbmdfY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKIAkJYXRvbWljNjRfc2V0 KCZuZXdzay0+c2tfY29va2llLCAwKTsKLS0gCjIuNC4xMQoKCkZyb20gMGE2NzRlNWNkYzFjYTMw ODk5NmRmNzg3MmQyMGU1NzhiNWY1NjRjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBTYXQsIDI5IE9jdCAyMDE2 IDExOjAyOjM2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMy8yOV0gbmV0OiBtYW5nbGUgemVybyBj aGVja3N1bSBpbiBza2JfY2hlY2tzdW1faGVscCgpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA0ZjJlNGFkNTZhNjVmM2I3ZDY0YzI1OGUzNzNjYjcx ZThkMjQ5OWY0IF0KClNlbmRpbmcgemVybyBjaGVja3N1bSBpcyBvayBmb3IgVENQLCBidXQgbm90 IGZvciBVRFAuCgpVRFB2NiByZWNlaXZlciBzaG91bGQgYnkgZGVmYXVsdCBkcm9wIGEgZnJhbWUg d2l0aCBhIDAgY2hlY2tzdW0sCmFuZCBVRFB2NCB3b3VsZCBub3QgdmVyaWZ5IHRoZSBjaGVja3N1 bSBhbmQgbWlnaHQgYWNjZXB0IGEgY29ycnVwdGVkCnBhY2tldC4KClNpbXBseSByZXBsYWNlIHN1 Y2ggY2hlY2tzdW0gYnkgMHhmZmZmLCByZWdhcmRsZXNzIG9mIHRyYW5zcG9ydC4KClRoaXMgZXJy b3Igd2FzIGNhdWdodCBvbiBTSVQgdHVubmVscywgYnV0IHNlZW1zIGdlbmVyaWMuCgpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBNYWNpZWogxbtl bmN6eWtvd3NraSA8bWF6ZUBnb29nbGUuY29tPgpDYzogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVt YkBnb29nbGUuY29tPgpBY2tlZC1ieTogTWFjaWVqIMW7ZW5jenlrb3dza2kgPG1hemVAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29y ZS9kZXYuYwppbmRleCA0NGIzYmE0Li45Y2U5ZDcyIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYu YworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtMjQ4NCw3ICsyNDg0LDcgQEAgaW50IHNrYl9jaGVj a3N1bV9oZWxwKHN0cnVjdCBza19idWZmICpza2IpCiAJCQlnb3RvIG91dDsKIAl9CiAKLQkqKF9f c3VtMTYgKikoc2tiLT5kYXRhICsgb2Zmc2V0KSA9IGNzdW1fZm9sZChjc3VtKTsKKwkqKF9fc3Vt MTYgKikoc2tiLT5kYXRhICsgb2Zmc2V0KSA9IGNzdW1fZm9sZChjc3VtKSA/OiBDU1VNX01BTkdM RURfMDsKIG91dF9zZXRfc3VtbWVkOgogCXNrYi0+aXBfc3VtbWVkID0gQ0hFQ0tTVU1fTk9ORTsK IG91dDoKLS0gCjIuNC4xMQoKCkZyb20gYjU0YTE4OTVlZThmMjk2MDEwN2Q0ZjA2NWI1Nzk0ZGE2 ZjUxODgwZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5keSBHb3Nwb2RhcmVrIDxn b3Nwb0Bicm9hZGNvbS5jb20+CkRhdGU6IE1vbiwgMzEgT2N0IDIwMTYgMTM6MzI6MDMgLTA0MDAK U3ViamVjdDogW1BBVENIIDA0LzI5XSBiZ21hYzogc3RvcCBjbGVhcmluZyBETUEgcmVjZWl2ZSBj b250cm9sIHJlZ2lzdGVyIHJpZ2h0CiBhZnRlciBpdCBpcyBzZXQKClsgVXBzdHJlYW0gY29tbWl0 IGZjZGVmY2NhYzk3NmVlNTFkZDYwNzE4MzJiODQyZDhmYjQxYzQ3OWMgXQoKQ3VycmVudCBiZ21h YyBjb2RlIGluaXRpYWxpemVzIHNvbWUgRE1BIHNldHRpbmdzIGluIHRoZSByZWNlaXZlIGNvbnRy b2wKcmVnaXN0ZXIgZm9yIHNvbWUgaGFyZHdhcmUgYW5kIHRoZW4gaW1tZWRpYXRlbHkgY2xlYXJz IHRob3NlIHNldHRpbmdzLgpOb3QgY2xlYXJpbmcgdGhvc2Ugc2V0dGluZ3MgcmVzdWx0cyBpbiB+ NDIwTWJwcyAqaW1wcm92ZW1lbnQqIGluCnRocm91Z2hwdXQ7IHRoaXMgc3lzdGVtIGNhbiBub3cg cmVjZWl2ZSBmcmFtZXMgYXQgbGluZS1yYXRlIG9uIEJyb2FkY29tCjU4NzF4IGhhcmR3YXJlIGNv bXBhcmVkIHRvIH41MjBNYnBzIHRvZGF5LiAgSSBhbHNvIHRlc3RlZCBhIGZldyBvdGhlcgp2YWx1 ZXMgYnV0IGZvdW5kIHRoZXJlIHRvIGJlIG5vIGRpc2Nlcm5pYmxlIGRpZmZlcmVuY2UgaW4gQ1BV CnV0aWxpemF0aW9uIGV2ZW4gaWYgYnVyc3Qgc2l6ZSBhbmQgcHJlZmV0Y2hpbmcgdmFsdWVzIGFy ZSBkaWZmZXJlbnQuCgpPbiB0aGUgaGFyZHdhcmUgdGVzdGVkIHRoZXJlIHdhcyBubyBuZWVkIHRv IGtlZXAgdGhlIGNvZGUgdGhhdCBjbGVhcmVkCmFsbCBidXQgYml0cyAxNi0xNywgYnV0IHNpbmNl IHRoZXJlIGlzIGEgd2lkZSB2YXJpZXR5IG9mIGhhcmR3YXJlIHRoYXQKdXNlZCB0aGlzIGRyaXZl ciAoSSBkaWQgbm90IGxvb2sgYXQgYWxsIGhhcmR3YXJlIGRvY3MgZm9yIGhhcmR3YXJlIHVzaW5n CnRoaXMgSVAgYmxvY2spLCBJIGZpbmQgaXQgd2lzZSB0byBtb3ZlIHRoaXMgY2FsbCB1cCBhbmQg Y2xlYXIgYml0cyBqdXN0CmFmdGVyIHJlYWRpbmcgdGhlIGRlZmF1bHQgdmFsdWUgZnJvbSB0aGUg aGFyZHdhcmUgcmF0aGVyIHRoYW4gY29tcGxldGVseQpyZW1vdmluZyBpdC4KClRoaXMgaXMgYSBn b29kIGNhbmRpZGF0ZSBmb3IgLXN0YWJsZSA+PTMuMTQgc2luY2UgdGhhdCBpcyB3aGVuIHRoZSBj b2RlCnRoYXQgd2FzIHN1cHBvc2VkIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UgKGJ1dCBkaWQgbm90 KSB3YXMgaW50cm9kdWNlZC4KClNpZ25lZC1vZmYtYnk6IEFuZHkgR29zcG9kYXJlayA8Z29zcG9A YnJvYWRjb20uY29tPgpGaXhlczogNTZjZWVjZGUxZjI5ICgiYmdtYWM6IGluaXRpYWxpemUgdGhl IERNQSBjb250cm9sbGVyIG9mIGNvcmUuLi4iKQpDYzogSGF1a2UgTWVocnRlbnMgPGhhdWtlQGhh dWtlLW0uZGU+CkFja2VkLWJ5OiBIYXVrZSBNZWhydGVucyA8aGF1a2VAaGF1a2UtbS5kZT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JnbWFjLmMgfCA1ICsrKystCiAxIGZpbGUgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2JnbWFjLmMKaW5kZXggYzQ3NTFlYy4uNDVlODdjOSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9iZ21hYy5jCkBAIC0zMDcsNiArMzA3LDEwIEBAIHN0YXRpYyB2b2lkIGJnbWFj X2RtYV9yeF9lbmFibGUoc3RydWN0IGJnbWFjICpiZ21hYywKIAl1MzIgY3RsOwogCiAJY3RsID0g YmdtYWNfcmVhZChiZ21hYywgcmluZy0+bW1pb19iYXNlICsgQkdNQUNfRE1BX1JYX0NUTCk7CisK KwkvKiBwcmVzZXJ2ZSBPTkxZIGJpdHMgMTYtMTcgZnJvbSBjdXJyZW50IGhhcmR3YXJlIHZhbHVl ICovCisJY3RsICY9IEJHTUFDX0RNQV9SWF9BRERSRVhUX01BU0s7CisKIAlpZiAoYmdtYWMtPmZl YXR1cmVfZmxhZ3MgJiBCR01BQ19GRUFUX1JYX01BU0tfU0VUVVApIHsKIAkJY3RsICY9IH5CR01B Q19ETUFfUlhfQkxfTUFTSzsKIAkJY3RsIHw9IEJHTUFDX0RNQV9SWF9CTF8xMjggPDwgQkdNQUNf RE1BX1JYX0JMX1NISUZUOwpAQCAtMzE3LDcgKzMyMSw2IEBAIHN0YXRpYyB2b2lkIGJnbWFjX2Rt YV9yeF9lbmFibGUoc3RydWN0IGJnbWFjICpiZ21hYywKIAkJY3RsICY9IH5CR01BQ19ETUFfUlhf UFRfTUFTSzsKIAkJY3RsIHw9IEJHTUFDX0RNQV9SWF9QVF8xIDw8IEJHTUFDX0RNQV9SWF9QVF9T SElGVDsKIAl9Ci0JY3RsICY9IEJHTUFDX0RNQV9SWF9BRERSRVhUX01BU0s7CiAJY3RsIHw9IEJH TUFDX0RNQV9SWF9FTkFCTEU7CiAJY3RsIHw9IEJHTUFDX0RNQV9SWF9QQVJJVFlfRElTQUJMRTsK IAljdGwgfD0gQkdNQUNfRE1BX1JYX09WRVJGTE9XX0NPTlQ7Ci0tIAoyLjQuMTEKCgpGcm9tIDNi NzU2YWVmYTllMjMxYmNkYzU2ZWZjZjhlN2VhNWEyMDdmY2YyNGUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEVsaSBDb29wZXIgPGVsaWNvb3BlckBnbXguY29tPgpEYXRlOiBUdWUsIDEg Tm92IDIwMTYgMjM6NDU6MTIgKzA4MDAKU3ViamVjdDogW1BBVENIIDA1LzI5XSBpcDZfdHVubmVs OiBDbGVhciBJUDZDQiBpbiBpcDZ0dW5uZWxfeG1pdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAyM2Y0 ZmZlZGI3ZDc1MWM3ZTI5ODczMmJhOTFjYTc1ZDIyNGJjMWE2IF0KCnNrYi0+Y2IgbWF5IGNvbnRh aW4gZGF0YSBmcm9tIHByZXZpb3VzIGxheWVycy4gSW4gdGhlIG9ic2VydmVkIHNjZW5hcmlvLAp0 aGUgZ2FyYmFnZSBkYXRhIHdlcmUgbWlzaW50ZXJwcmV0ZWQgYXMgSVA2Q0Ioc2tiKS0+ZnJhZ19t YXhfc2l6ZSwgc28KdGhhdCBzbWFsbCBwYWNrZXRzIHNlbnQgdGhyb3VnaCB0aGUgdHVubmVsIGFy ZSBtaXN0YWtlbmx5IGZyYWdtZW50ZWQuCgpUaGlzIHBhdGNoIHVuY29uZGl0aW9uYWxseSBjbGVh cnMgdGhlIGNvbnRyb2wgYnVmZmVyIGluIGlwNnR1bm5lbF94bWl0KCksCndoaWNoIGFmZmVjdHMg aXA2X3R1bm5lbCwgaXA2X3VkcF90dW5uZWwgYW5kIGlwNl9ncmUuIEN1cnJlbnRseSBub25lIG9m CnRoZXNlIHR1bm5lbHMgc2V0IElQNkNCKHNrYiktPmZsYWdzLCBvdGhlcndpc2UgaXQgbmVlZHMg dG8gYmUgZG9uZSBlYXJsaWVyLgoKQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9m Zi1ieTogRWxpIENvb3BlciA8ZWxpY29vcGVyQGdteC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pcDZfdHVu bmVsLmggfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbmV0L2lwNl90dW5uZWwuaCBiL2luY2x1ZGUvbmV0L2lwNl90dW5uZWwuaAppbmRl eCA0M2E1YTBlLi5iMDFkNWQxIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcDZfdHVubmVsLmgK KysrIGIvaW5jbHVkZS9uZXQvaXA2X3R1bm5lbC5oCkBAIC0xNDUsNiArMTQ1LDcgQEAgc3RhdGlj IGlubGluZSB2b2lkIGlwNnR1bm5lbF94bWl0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1 ZmYgKnNrYiwKIHsKIAlpbnQgcGt0X2xlbiwgZXJyOwogCisJbWVtc2V0KHNrYi0+Y2IsIDAsIHNp emVvZihzdHJ1Y3QgaW5ldDZfc2tiX3Bhcm0pKTsKIAlwa3RfbGVuID0gc2tiLT5sZW4gLSBza2Jf aW5uZXJfbmV0d29ya19vZmZzZXQoc2tiKTsKIAllcnIgPSBpcDZfbG9jYWxfb3V0KGRldl9uZXQo c2tiX2RzdChza2IpLT5kZXYpLCBzaywgc2tiKTsKIAlpZiAodW5saWtlbHkobmV0X3htaXRfZXZh bChlcnIpKSkKLS0gCjIuNC4xMQoKCkZyb20gZjkwNjkwNDY1YjQ5MWEyMGZlOGNhOTgzM2E0NGQw NzZmYjAzYTk1ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDIgTm92IDIwMTYgMDc6NTM6MTcgLTA3MDAK U3ViamVjdDogW1BBVENIIDA2LzI5XSB0Y3A6IGZpeCBwb3RlbnRpYWwgbWVtb3J5IGNvcnJ1cHRp b24KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGFj OWU3MGIxN2VjZDdjNmU5MzNmZjJlYWY3YWIzNzQyOWU3MWJmNGQgXQoKSW1hZ2luZSBpbml0aWFs IHZhbHVlIG9mIG1heF9za2JfZnJhZ3MgaXMgMTcsIGFuZCBsYXN0CnNrYiBpbiB3cml0ZSBxdWV1 ZSBoYXMgMTUgZnJhZ3MuCgpUaGVuIG1heF9za2JfZnJhZ3MgaXMgbG93ZXJlZCB0byAxNCBvciBz bWFsbGVyIHZhbHVlLgoKdGNwX3NlbmRtc2coKSB3aWxsIHRoZW4gYmUgYWxsb3dlZCB0byBhZGQg YWRkaXRpb25hbCBwYWdlIGZyYWdzCmFuZCBldmVudHVhbGx5IGdvIHBhc3QgTUFYX1NLQl9GUkFH Uywgb3ZlcmZsb3dpbmcgc3RydWN0CnNrYl9zaGFyZWRfaW5mby4KCkZpeGVzOiA1Zjc0ZjgyZWEz NGMgKCJuZXQ6QWRkIHN5c2N0bF9tYXhfc2tiX2ZyYWdzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogSGFucyBXZXN0Z2FhcmQgUnkgPGhhbnMu d2VzdGdhYXJkLnJ5QG9yYWNsZS5jb20+CkNjOiBIw6Vrb24gQnVnZ2UgPGhhYWtvbi5idWdnZUBv cmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25l dC9pcHY0L3RjcC5jCmluZGV4IGZmYmIyMTguLmU1ZDExZGYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0xMjE5LDcgKzEyMTksNyBAQCBuZXdfc2Vn bWVudDoKIAogCQkJaWYgKCFza2JfY2FuX2NvYWxlc2NlKHNrYiwgaSwgcGZyYWctPnBhZ2UsCiAJ CQkJCSAgICAgIHBmcmFnLT5vZmZzZXQpKSB7Ci0JCQkJaWYgKGkgPT0gc3lzY3RsX21heF9za2Jf ZnJhZ3MgfHwgIXNnKSB7CisJCQkJaWYgKGkgPj0gc3lzY3RsX21heF9za2JfZnJhZ3MgfHwgIXNn KSB7CiAJCQkJCXRjcF9tYXJrX3B1c2godHAsIHNrYik7CiAJCQkJCWdvdG8gbmV3X3NlZ21lbnQ7 CiAJCQkJfQotLSAKMi40LjExCgoKRnJvbSA5NmYyNzFkOWQ1NGY4MWVkMGJlODA4NDliNWJkZmQ5 YjVkMTRkNzc5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMYW5jZSBSaWNoYXJkc29u IDxscmljaGFyZEByZWRoYXQuY29tPgpEYXRlOiBXZWQsIDIgTm92IDIwMTYgMTY6MzY6MTcgLTA0 MDAKU3ViamVjdDogW1BBVENIIDA3LzI5XSBpcHY0OiBhbGxvdyBsb2NhbCBmcmFnbWVudGF0aW9u IGluCiBpcF9maW5pc2hfb3V0cHV0X2dzbygpCgpbIFVwc3RyZWFtIGNvbW1pdCA5ZWU2YzVkYzgx NmFhODI1NjI1N2YyY2Q0MDA4YTkyOTFlYzdlOTg1IF0KClNvbWUgY29uZmlndXJhdGlvbnMgKGUu Zy4gZ2VuZXZlIGludGVyZmFjZSB3aXRoIGRlZmF1bHQKTVRVIG9mIDE1MDAgb3ZlciBhbiBldGhl cm5ldCBpbnRlcmZhY2Ugd2l0aCAxNTAwIE1UVSkgcmVzdWx0CmluIHRoZSB0cmFuc21pc3Npb24g b2YgcGFja2V0cyB0aGF0IGV4Y2VlZCB0aGUgY29uZmlndXJlZCBNVFUuCldoaWxlIHRoaXMgc2hv dWxkIGJlIGNvbnNpZGVyZWQgdG8gYmUgYSAiYmFkIiBjb25maWd1cmF0aW9uLAppdCBpcyBzdGls bCBhbGxvd2VkIGFuZCBzaG91bGQgbm90IHJlc3VsdCBpbiB0aGUgc2VuZGluZwpvZiBwYWNrZXRz IHRoYXQgZXhjZWVkIHRoZSBjb25maWd1cmVkIE1UVS4KCkZpeCBieSBkcm9wcGluZyB0aGUgYXNz dW1wdGlvbiBpbiBpcF9maW5pc2hfb3V0cHV0X2dzbygpIHRoYXQKbG9jYWxseSBvcmlnaW5hdGVk IGdzbyBwYWNrZXRzIHdpbGwgbmV2ZXIgbmVlZCBmcmFnbWVudGF0aW9uLgpCYXNpYyB0ZXN0aW5n IHVzaW5nIGlwZXJmIChvYnNlcnZpbmcgQ1BVIHVzYWdlIGFuZCBiYW5kd2lkdGgpCmhhdmUgc2hv d24gbm8gbWVhc3VyYWJsZSBwZXJmb3JtYW5jZSBpbXBhY3QgZm9yIHRyYWZmaWMgbm90CnJlcXVp cmluZyBmcmFnbWVudGF0aW9uLgoKRml4ZXM6IGM3YmE2NWQ3YjY0OSAoIm5ldDogaXA6IHB1c2gg Z3NvIHNrYiBmb3J3YXJkaW5nIGhhbmRsaW5nIGRvd24gdGhlIHN0YWNrIikKUmVwb3J0ZWQtYnk6 IEphbiBUbHVrYSA8anRsdWthQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IExhbmNlIFJpY2hh cmRzb24gPGxyaWNoYXJkQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293 YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pcC5oICAgICAgICAg IHwgIDEgLQogbmV0L2lwdjQvaXBfZm9yd2FyZC5jICAgICB8ICAyICstCiBuZXQvaXB2NC9pcF9v dXRwdXQuYyAgICAgIHwgIDYgKystLS0tCiBuZXQvaXB2NC9pcF90dW5uZWxfY29yZS5jIHwgMTEg LS0tLS0tLS0tLS0KIG5ldC9pcHY0L2lwbXIuYyAgICAgICAgICAgfCAgMiArLQogNSBmaWxlcyBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbmV0L2lwLmggYi9pbmNsdWRlL25ldC9pcC5oCmluZGV4IDE1NmIwYzEuLjBjY2Y2ZGEg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwLmgKKysrIGIvaW5jbHVkZS9uZXQvaXAuaApAQCAt NDcsNyArNDcsNiBAQCBzdHJ1Y3QgaW5ldF9za2JfcGFybSB7CiAjZGVmaW5lIElQU0tCX1JFUk9V VEVECQlCSVQoNCkKICNkZWZpbmUgSVBTS0JfRE9SRURJUkVDVAlCSVQoNSkKICNkZWZpbmUgSVBT S0JfRlJBR19QTVRVCQlCSVQoNikKLSNkZWZpbmUgSVBTS0JfRlJBR19TRUdTCQlCSVQoNykKIAog CXUxNgkJCWZyYWdfbWF4X3NpemU7CiB9OwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfZm9yd2Fy ZC5jIGIvbmV0L2lwdjQvaXBfZm9yd2FyZC5jCmluZGV4IDhiNGZmZDIuLjlmMGE3YjkgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY0L2lwX2ZvcndhcmQuYworKysgYi9uZXQvaXB2NC9pcF9mb3J3YXJkLmMK QEAgLTExNyw3ICsxMTcsNyBAQCBpbnQgaXBfZm9yd2FyZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQog CWlmIChvcHQtPmlzX3N0cmljdHJvdXRlICYmIHJ0LT5ydF91c2VzX2dhdGV3YXkpCiAJCWdvdG8g c3JfZmFpbGVkOwogCi0JSVBDQihza2IpLT5mbGFncyB8PSBJUFNLQl9GT1JXQVJERUQgfCBJUFNL Ql9GUkFHX1NFR1M7CisJSVBDQihza2IpLT5mbGFncyB8PSBJUFNLQl9GT1JXQVJERUQ7CiAJbXR1 ID0gaXBfZHN0X210dV9tYXliZV9mb3J3YXJkKCZydC0+ZHN0LCB0cnVlKTsKIAlpZiAoaXBfZXhj ZWVkc19tdHUoc2tiLCBtdHUpKSB7CiAJCUlQX0lOQ19TVEFUUyhuZXQsIElQU1RBVFNfTUlCX0ZS QUdGQUlMUyk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9vdXRwdXQuYyBiL25ldC9pcHY0L2lw X291dHB1dC5jCmluZGV4IGRkZTM3ZmIuLjMwN2RhZWQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lw X291dHB1dC5jCisrKyBiL25ldC9pcHY0L2lwX291dHB1dC5jCkBAIC0yMjMsMTEgKzIyMyw5IEBA IHN0YXRpYyBpbnQgaXBfZmluaXNoX291dHB1dF9nc28oc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg c29jayAqc2ssCiAJc3RydWN0IHNrX2J1ZmYgKnNlZ3M7CiAJaW50IHJldCA9IDA7CiAKLQkvKiBj b21tb24gY2FzZTogZnJhZ21lbnRhdGlvbiBvZiBzZWdtZW50cyBpcyBub3QgYWxsb3dlZCwKLQkg KiBvciBzZWdsZW4gaXMgPD0gbXR1CisJLyogY29tbW9uIGNhc2U6IHNlZ2xlbiBpcyA8PSBtdHUK IAkgKi8KLQlpZiAoKChJUENCKHNrYiktPmZsYWdzICYgSVBTS0JfRlJBR19TRUdTKSA9PSAwKSB8 fAotCSAgICAgIHNrYl9nc29fdmFsaWRhdGVfbXR1KHNrYiwgbXR1KSkKKwlpZiAoc2tiX2dzb192 YWxpZGF0ZV9tdHUoc2tiLCBtdHUpKQogCQlyZXR1cm4gaXBfZmluaXNoX291dHB1dDIobmV0LCBz aywgc2tiKTsKIAogCS8qIFNsb3dwYXRoIC0gIEdTTyBzZWdtZW50IGxlbmd0aCBpcyBleGNlZWRp bmcgdGhlIGRzdCBNVFUuCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF90dW5uZWxfY29yZS5jIGIv bmV0L2lwdjQvaXBfdHVubmVsX2NvcmUuYwppbmRleCAwZjIyN2RiLi5hZmQ2YjU5IDEwMDY0NAot LS0gYS9uZXQvaXB2NC9pcF90dW5uZWxfY29yZS5jCisrKyBiL25ldC9pcHY0L2lwX3R1bm5lbF9j b3JlLmMKQEAgLTYzLDcgKzYzLDYgQEAgdm9pZCBpcHR1bm5lbF94bWl0KHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHJ0YWJsZSAqcnQsIHN0cnVjdCBza19idWZmICpza2IsCiAJaW50IHBrdF9sZW4g PSBza2ItPmxlbiAtIHNrYl9pbm5lcl9uZXR3b3JrX29mZnNldChza2IpOwogCXN0cnVjdCBuZXQg Km5ldCA9IGRldl9uZXQocnQtPmRzdC5kZXYpOwogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBz a2ItPmRldjsKLQlpbnQgc2tiX2lpZiA9IHNrYi0+c2tiX2lpZjsKIAlzdHJ1Y3QgaXBoZHIgKmlw aDsKIAlpbnQgZXJyOwogCkBAIC03MywxNiArNzIsNiBAQCB2b2lkIGlwdHVubmVsX3htaXQoc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcnRhYmxlICpydCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlz a2JfZHN0X3NldChza2IsICZydC0+ZHN0KTsKIAltZW1zZXQoSVBDQihza2IpLCAwLCBzaXplb2Yo KklQQ0Ioc2tiKSkpOwogCi0JaWYgKHNrYl9paWYgJiYgIShkZiAmIGh0b25zKElQX0RGKSkpIHsK LQkJLyogQXJyaXZlZCBmcm9tIGFuIGluZ3Jlc3MgaW50ZXJmYWNlLCBnb3QgZW5jYXBzdWxhdGVk LCB3aXRoCi0JCSAqIGZyYWdtZW50YXRpb24gb2YgZW5jYXB1bGF0aW5nIGZyYW1lcyBhbGxvd2Vk LgotCQkgKiBJZiBza2IgaXMgZ3NvLCB0aGUgcmVzdWx0aW5nIGVuY2Fwc3VsYXRlZCBuZXR3b3Jr IHNlZ21lbnRzCi0JCSAqIG1heSBleGNlZWQgZHN0IG10dS4KLQkJICogQWxsb3cgSVAgRnJhZ21l bnRhdGlvbiBvZiBzZWdtZW50cy4KLQkJICovCi0JCUlQQ0Ioc2tiKS0+ZmxhZ3MgfD0gSVBTS0Jf RlJBR19TRUdTOwotCX0KLQogCS8qIFB1c2ggZG93biBhbmQgaW5zdGFsbCB0aGUgSVAgaGVhZGVy LiAqLwogCXNrYl9wdXNoKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpOwogCXNrYl9yZXNldF9u ZXR3b3JrX2hlYWRlcihza2IpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBtci5jIGIvbmV0L2lw djQvaXBtci5jCmluZGV4IDVmMDA2ZTEuLjI3MDg5ZjUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lw bXIuYworKysgYi9uZXQvaXB2NC9pcG1yLmMKQEAgLTE3NDksNyArMTc0OSw3IEBAIHN0YXRpYyB2 b2lkIGlwbXJfcXVldWVfeG1pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBtcl90YWJsZSAqbXJ0 LAogCQl2aWYtPmRldi0+c3RhdHMudHhfYnl0ZXMgKz0gc2tiLT5sZW47CiAJfQogCi0JSVBDQihz a2IpLT5mbGFncyB8PSBJUFNLQl9GT1JXQVJERUQgfCBJUFNLQl9GUkFHX1NFR1M7CisJSVBDQihz a2IpLT5mbGFncyB8PSBJUFNLQl9GT1JXQVJERUQ7CiAKIAkvKiBSRkMxNTg0IHRlYWNoZXMsIHRo YXQgRFZNUlAvUElNIHJvdXRlciBtdXN0IGRlbGl2ZXIgcGFja2V0cyBsb2NhbGx5CiAJICogbm90 IG9ubHkgYmVmb3JlIGZvcndhcmRpbmcsIGJ1dCBhZnRlciBmb3J3YXJkaW5nIG9uIGFsbCBvdXRw dXQKLS0gCjIuNC4xMQoKCkZyb20gNDE1NjNkNGY1MjNhYjEwMjUwZTgwOTQyNzllMjhjMWM5YzUz OTQ2YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDIgTm92IDIwMTYgMTQ6NDE6NTAgLTA3MDAKU3ViamVj dDogW1BBVENIIDA4LzI5XSB0Y3A6IGZpeCByZXR1cm4gdmFsdWUgZm9yIHBhcnRpYWwgd3JpdGVz CgpbIFVwc3RyZWFtIGNvbW1pdCA3OWQ4NjY1Yjk1NDVlMTI4NjM3YzUxY2Y3ZmViZGU5YzQ5M2I2 NDgxIF0KCkFmdGVyIG15IGNvbW1pdCwgdGNwX3NlbmRtc2coKSBtaWdodCByZXN0YXJ0IGl0cyBs b29wIGFmdGVyCnByb2Nlc3Npbmcgc29ja2V0IGJhY2tsb2cuCgpJZiBza19lcnIgaXMgc2V0LCB3 ZSBibGluZGx5IHJldHVybiBhbiBlcnJvciwgZXZlbiB0aG91Z2ggd2UKY29waWVkIGRhdGEgdG8g dXNlciBzcGFjZSBiZWZvcmUuCgpXZSBzaG91bGQgaW5zdGVhZCByZXR1cm4gbnVtYmVyIG9mIGJ5 dGVzIHRoYXQgY291bGQgYmUgY29waWVkLApvdGhlcndpc2UgdXNlciBzcGFjZSBtaWdodCByZXNl bmQgZGF0YSBhbmQgY29ycnVwdCB0aGUgc3RyZWFtLgoKVGhpcyBtaWdodCBoYXBwZW4gaWYgYW5v dGhlciB0aHJlYWQgaXMgdXNpbmcgcmVjdm1zZyhNU0dfRVJSUVVFVUUpCnRvIHByb2Nlc3MgdGlt ZXN0YW1wcy4KCklzc3VlIHdhcyBkaWFnbm9zZWQgYnkgU29oZWlsIGFuZCBXaWxsZW0sIGJpZyBr dWRvcyB0byB0aGVtICEKCkZpeGVzOiBkNDFhNjlmMWQzOTBmICgidGNwOiBtYWtlIHRjcF9zZW5k bXNnKCkgYXdhcmUgb2Ygc29ja2V0IGJhY2tsb2ciKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdv b2dsZS5jb20+CkNjOiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpD YzogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+CkNjOiBOZWFsIENhcmR3ZWxsIDxu Y2FyZHdlbGxAZ29vZ2xlLmNvbT4KVGVzdGVkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNv aGVpbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Au YyBiL25ldC9pcHY0L3RjcC5jCmluZGV4IGU1ZDExZGYuLmM4NzZmNWQgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0xMTQ1LDcgKzExNDUsNyBAQCBy ZXN0YXJ0OgogCiAJZXJyID0gLUVQSVBFOwogCWlmIChzay0+c2tfZXJyIHx8IChzay0+c2tfc2h1 dGRvd24gJiBTRU5EX1NIVVRET1dOKSkKLQkJZ290byBvdXRfZXJyOworCQlnb3RvIGRvX2Vycm9y OwogCiAJc2cgPSAhIShzay0+c2tfcm91dGVfY2FwcyAmIE5FVElGX0ZfU0cpOwogCi0tIAoyLjQu MTEKCgpGcm9tIGM3MTQzMzc2ZDdiNjIxMWRhMGU1NjZjOTg2OWJlMDBjOTlhYTE0MzEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KRGF0ZTogV2VkLCAyIE5vdiAyMDE2IDE3OjE0OjQxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAw OS8yOV0gZGNjcDogZG8gbm90IHJlbGVhc2UgbGlzdGVuZXJzIHRvbyBzb29uCgpbIFVwc3RyZWFt IGNvbW1pdCBjM2YyNGNmYjNlNTA4YzcwYzI2ZWU4NTY5ZDUzN2M4Y2E2N2EzNmM2IF0KCkFuZHJl eSBLb25vdmFsb3YgcmVwb3J0ZWQgZm9sbG93aW5nIGVycm9yIHdoaWxlIGZ1enppbmcgd2l0aCBz eXprYWxsZXIgOgoKSVB2NDogQXR0ZW1wdCB0byByZWxlYXNlIGFsaXZlIGluZXQgc29ja2V0IGZm ZmY4ODAwNjhlOTg5NDAKa2FzYW46IENPTkZJR19LQVNBTl9JTkxJTkUgZW5hYmxlZAprYXNhbjog R1BGIGNvdWxkIGJlIGNhdXNlZCBieSBOVUxMLXB0ciBkZXJlZiBvciB1c2VyIG1lbW9yeSBhY2Nl c3MKZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0OiAwMDAwIFsjMV0gU01QIEtBU0FOCk1vZHVsZXMg bGlua2VkIGluOgpDUFU6IDEgUElEOiAzOTA1IENvbW06IGEub3V0IE5vdCB0YWludGVkIDQuOS4w LXJjMysgIzMzMwpIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlY LCAxOTk2KSwgQklPUyBCb2NocyAwMS8wMS8yMDExCnRhc2s6IGZmZmY4ODAwNmI5ZTAwMDAgdGFz ay5zdGFjazogZmZmZjg4MDA2ODc3MDAwMApSSVA6IDAwMTA6WzxmZmZmZmZmZjgxOWVhZDVmPl0g IFs8ZmZmZmZmZmY4MTllYWQ1Zj5dCnNlbGludXhfc29ja2V0X3NvY2tfcmN2X3NrYisweGZmLzB4 NmEwIHNlY3VyaXR5L3NlbGludXgvaG9va3MuYzo0NjM5ClJTUDogMDAxODpmZmZmODgwMDY4Nzc3 MWM4ICBFRkxBR1M6IDAwMDEwMjAyClJBWDogZmZmZjg4MDA2YjllMDAwMCBSQlg6IDFmZmZmMTAw MGQwZWVlM2YgUkNYOiAxZmZmZjEwMDBkMWQzMTJhClJEWDogMWZmZmYxMDAwZDFkMzFhNiBSU0k6 IGRmZmZmYzAwMDAwMDAwMDAgUkRJOiAwMDAwMDAwMDAwMDAwMDEwClJCUDogZmZmZjg4MDA2ODc3 NzM2MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAyClIxMDogZGZm ZmZjMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAwMDYgUjEyOiBmZmZmODgwMDY4ZTk4OTQw ClIxMzogMDAwMDAwMDAwMDAwMDAwMiBSMTQ6IGZmZmY4ODAwNjg3NzczMzggUjE1OiAwMDAwMDAw MDAwMDAwMDAwCkZTOiAgMDAwMDdmMDBmZjc2MDcwMCgwMDAwKSBHUzpmZmZmODgwMDZjZDAwMDAw KDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAw IENSMDogMDAwMDAwMDA4MDA1MDAzMwpDUjI6IDAwMDAwMDAwMjAwMDgwMDAgQ1IzOiAwMDAwMDAw MDZhMzA4MDAwIENSNDogMDAwMDAwMDAwMDAwMDZlMApTdGFjazoKIGZmZmY4ODAwNjg3NzcxZTAg ZmZmZmZmZmY4MTI1MDhhNSBmZmZmODgwMDY4NmYzMTY4IDAwMDAwMDAwMDAwMDAwMDcKIGZmZmY4 ODAwNmFjOGNkZmMgZmZmZjg4MDA2NjVlYTUwMCAwMDAwMDAwMDQxYjU4YWIzIGZmZmZmZmZmODQ3 YjU0ODAKIGZmZmZmZmZmODE5ZWFjNjAgZmZmZjg4MDA2YjllMDg2MCBmZmZmODgwMDZiOWUwODY4 IGZmZmY4ODAwNmI5ZTA3ZjAKQ2FsbCBUcmFjZToKIFs8ZmZmZmZmZmY4MTljOGRkNT5dIHNlY3Vy aXR5X3NvY2tfcmN2X3NrYisweDc1LzB4YjAgc2VjdXJpdHkvc2VjdXJpdHkuYzoxMzE3CiBbPGZm ZmZmZmZmODJjMmE5ZTc+XSBza19maWx0ZXJfdHJpbV9jYXArMHg2Ny8weDEwZTAgbmV0L2NvcmUv ZmlsdGVyLmM6ODEKIFs8ZmZmZmZmZmY4MmI4MWU2MD5dIF9fc2tfcmVjZWl2ZV9za2IrMHgzMC8w eGEwMCBuZXQvY29yZS9zb2NrLmM6NDYwCiBbPGZmZmZmZmZmODM4YmJmMTI+XSBkY2NwX3Y0X3Jj disweGRiMi8weDE5MTAgbmV0L2RjY3AvaXB2NC5jOjg3MwogWzxmZmZmZmZmZjgzMDY5ZDIyPl0g aXBfbG9jYWxfZGVsaXZlcl9maW5pc2grMHgzMzIvMHhhZDAKbmV0L2lwdjQvaXBfaW5wdXQuYzoy MTYKIFs8ICAgICBpbmxpbmUgICAgID5dIE5GX0hPT0tfVEhSRVNIIC4vaW5jbHVkZS9saW51eC9u ZXRmaWx0ZXIuaDoyMzIKIFs8ICAgICBpbmxpbmUgICAgID5dIE5GX0hPT0sgLi9pbmNsdWRlL2xp bnV4L25ldGZpbHRlci5oOjI1NQogWzxmZmZmZmZmZjgzMDZhYmQyPl0gaXBfbG9jYWxfZGVsaXZl cisweDFjMi8weDRiMCBuZXQvaXB2NC9pcF9pbnB1dC5jOjI1NwogWzwgICAgIGlubGluZSAgICAg Pl0gZHN0X2lucHV0IC4vaW5jbHVkZS9uZXQvZHN0Lmg6NTA3CiBbPGZmZmZmZmZmODMwNjg1MDA+ XSBpcF9yY3ZfZmluaXNoKzB4NzUwLzB4MWM0MCBuZXQvaXB2NC9pcF9pbnB1dC5jOjM5NgogWzwg ICAgIGlubGluZSAgICAgPl0gTkZfSE9PS19USFJFU0ggLi9pbmNsdWRlL2xpbnV4L25ldGZpbHRl ci5oOjIzMgogWzwgICAgIGlubGluZSAgICAgPl0gTkZfSE9PSyAuL2luY2x1ZGUvbGludXgvbmV0 ZmlsdGVyLmg6MjU1CiBbPGZmZmZmZmZmODMwNmI4MmY+XSBpcF9yY3YrMHg5NmYvMHgxMmYwIG5l dC9pcHY0L2lwX2lucHV0LmM6NDg3CiBbPGZmZmZmZmZmODJiZDlmYjc+XSBfX25ldGlmX3JlY2Vp dmVfc2tiX2NvcmUrMHgxODk3LzB4MmE1MCBuZXQvY29yZS9kZXYuYzo0MjEzCiBbPGZmZmZmZmZm ODJiZGIxOWE+XSBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MmEvMHgxNzAgbmV0L2NvcmUvZGV2LmM6 NDI1MQogWzxmZmZmZmZmZjgyYmRiNDkzPl0gbmV0aWZfcmVjZWl2ZV9za2JfaW50ZXJuYWwrMHgx YjMvMHgzOTAgbmV0L2NvcmUvZGV2LmM6NDI3OQogWzxmZmZmZmZmZjgyYmRiNmI4Pl0gbmV0aWZf cmVjZWl2ZV9za2IrMHg0OC8weDI1MCBuZXQvY29yZS9kZXYuYzo0MzAzCiBbPGZmZmZmZmZmODI0 MWZjNzU+XSB0dW5fZ2V0X3VzZXIrMHhiZDUvMHgyOGEwIGRyaXZlcnMvbmV0L3R1bi5jOjEzMDgK IFs8ZmZmZmZmZmY4MjQyMWI1YT5dIHR1bl9jaHJfd3JpdGVfaXRlcisweGRhLzB4MTkwIGRyaXZl cnMvbmV0L3R1bi5jOjEzMzIKIFs8ICAgICBpbmxpbmUgICAgID5dIG5ld19zeW5jX3dyaXRlIGZz L3JlYWRfd3JpdGUuYzo0OTkKIFs8ZmZmZmZmZmY4MTUxYmQ0ND5dIF9fdmZzX3dyaXRlKzB4MzM0 LzB4NTcwIGZzL3JlYWRfd3JpdGUuYzo1MTIKIFs8ZmZmZmZmZmY4MTUxZjg1Yj5dIHZmc193cml0 ZSsweDE3Yi8weDUwMCBmcy9yZWFkX3dyaXRlLmM6NTYwCiBbPCAgICAgaW5saW5lICAgICA+XSBT WVNDX3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo2MDcKIFs8ZmZmZmZmZmY4MTUyMzE4ND5dIFN5U193 cml0ZSsweGQ0LzB4MWEwIGZzL3JlYWRfd3JpdGUuYzo1OTkKIFs8ZmZmZmZmZmY4M2ZjMDJjMT5d IGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxZi8weGMyCgpJdCB0dXJucyBvdXQgRENDUCBj YWxscyBfX3NrX3JlY2VpdmVfc2tiKCksIGFuZCB0aGlzIGJyb2tlIHdoZW4KbG9va3VwcyBubyBs b25nZXIgdG9vayBhIHJlZmVyZW5jZSBvbiBsaXN0ZW5lcnMuCgpGaXggdGhpcyBpc3N1ZSBieSBh ZGRpbmcgYSBAcmVmY291bnRlZCBwYXJhbWV0ZXIgdG8gX19za19yZWNlaXZlX3NrYigpLApzbyB0 aGF0IHNvY2tfcHV0KCkgaXMgdXNlZCBvbmx5IHdoZW4gbmVlZGVkLgoKRml4ZXM6IDNiMjRkODU0 Y2IzNSAoInRjcC9kY2NwOiBkbyBub3QgdG91Y2ggbGlzdGVuZXIgc2tfcmVmY250IHVuZGVyIHN5 bmZsb29kIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpU ZXN0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1 ZGUvbmV0L3NvY2suaCB8IDQgKystLQogbmV0L2NvcmUvc29jay5jICAgIHwgNSArKystLQogbmV0 L2RjY3AvaXB2NC5jICAgIHwgMiArLQogbmV0L2RjY3AvaXB2Ni5jICAgIHwgMyArKy0KIDQgZmls ZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbmV0L3NvY2suaCBiL2luY2x1ZGUvbmV0L3NvY2suaAppbmRleCA4NzQxOTg4Li5j MjZlYWI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zb2NrLmgKKysrIGIvaW5jbHVkZS9uZXQv c29jay5oCkBAIC0xNTg3LDExICsxNTg3LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzb2NrX3B1 dChzdHJ1Y3Qgc29jayAqc2spCiB2b2lkIHNvY2tfZ2VuX3B1dChzdHJ1Y3Qgc29jayAqc2spOwog CiBpbnQgX19za19yZWNlaXZlX3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpz a2IsIGNvbnN0IGludCBuZXN0ZWQsCi0JCSAgICAgdW5zaWduZWQgaW50IHRyaW1fY2FwKTsKKwkJ ICAgICB1bnNpZ25lZCBpbnQgdHJpbV9jYXAsIGJvb2wgcmVmY291bnRlZCk7CiBzdGF0aWMgaW5s aW5lIGludCBza19yZWNlaXZlX3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpz a2IsCiAJCQkJIGNvbnN0IGludCBuZXN0ZWQpCiB7Ci0JcmV0dXJuIF9fc2tfcmVjZWl2ZV9za2Io c2ssIHNrYiwgbmVzdGVkLCAxKTsKKwlyZXR1cm4gX19za19yZWNlaXZlX3NrYihzaywgc2tiLCBu ZXN0ZWQsIDEsIHRydWUpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2tfdHhfcXVldWVfc2V0 KHN0cnVjdCBzb2NrICpzaywgaW50IHR4X3F1ZXVlKQpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc29j ay5jIGIvbmV0L2NvcmUvc29jay5jCmluZGV4IDZiOGQyMjQuLjEwYWNhY2MgMTAwNjQ0Ci0tLSBh L25ldC9jb3JlL3NvY2suYworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAgLTQ1Myw3ICs0NTMsNyBA QCBpbnQgc29ja19xdWV1ZV9yY3Zfc2tiKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYg KnNrYikKIEVYUE9SVF9TWU1CT0woc29ja19xdWV1ZV9yY3Zfc2tiKTsKIAogaW50IF9fc2tfcmVj ZWl2ZV9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotCQkgICAgIGNv bnN0IGludCBuZXN0ZWQsIHVuc2lnbmVkIGludCB0cmltX2NhcCkKKwkJICAgICBjb25zdCBpbnQg bmVzdGVkLCB1bnNpZ25lZCBpbnQgdHJpbV9jYXAsIGJvb2wgcmVmY291bnRlZCkKIHsKIAlpbnQg cmMgPSBORVRfUlhfU1VDQ0VTUzsKIApAQCAtNDg3LDcgKzQ4Nyw4IEBAIGludCBfX3NrX3JlY2Vp dmVfc2tiKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAogCWJoX3VubG9j a19zb2NrKHNrKTsKIG91dDoKLQlzb2NrX3B1dChzayk7CisJaWYgKHJlZmNvdW50ZWQpCisJCXNv Y2tfcHV0KHNrKTsKIAlyZXR1cm4gcmM7CiBkaXNjYXJkX2FuZF9yZWxzZToKIAlrZnJlZV9za2Io c2tiKTsKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2lwdjQuYyBiL25ldC9kY2NwL2lwdjQuYwppbmRl eCAzNDVhM2FlLi5kZmY3Y2ZhIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9pcHY0LmMKKysrIGIvbmV0 L2RjY3AvaXB2NC5jCkBAIC04NjgsNyArODY4LDcgQEAgbG9va3VwOgogCQlnb3RvIGRpc2NhcmRf YW5kX3JlbHNlOwogCW5mX3Jlc2V0KHNrYik7CiAKLQlyZXR1cm4gX19za19yZWNlaXZlX3NrYihz aywgc2tiLCAxLCBkaC0+ZGNjcGhfZG9mZiAqIDQpOworCXJldHVybiBfX3NrX3JlY2VpdmVfc2ti KHNrLCBza2IsIDEsIGRoLT5kY2NwaF9kb2ZmICogNCwgcmVmY291bnRlZCk7CiAKIG5vX2RjY3Bf c29ja2V0OgogCWlmICgheGZybTRfcG9saWN5X2NoZWNrKE5VTEwsIFhGUk1fUE9MSUNZX0lOLCBz a2IpKQpkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvaXB2Ni5jIGIvbmV0L2RjY3AvaXB2Ni5jCmluZGV4 IDM4MjhmOTQuLjA5YzRlMTkgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2lwdjYuYworKysgYi9uZXQv ZGNjcC9pcHY2LmMKQEAgLTczOCw3ICs3MzgsOCBAQCBsb29rdXA6CiAJaWYgKCF4ZnJtNl9wb2xp Y3lfY2hlY2soc2ssIFhGUk1fUE9MSUNZX0lOLCBza2IpKQogCQlnb3RvIGRpc2NhcmRfYW5kX3Jl bHNlOwogCi0JcmV0dXJuIF9fc2tfcmVjZWl2ZV9za2Ioc2ssIHNrYiwgMSwgZGgtPmRjY3BoX2Rv ZmYgKiA0KSA/IC0xIDogMDsKKwlyZXR1cm4gX19za19yZWNlaXZlX3NrYihzaywgc2tiLCAxLCBk aC0+ZGNjcGhfZG9mZiAqIDQsCisJCQkJcmVmY291bnRlZCkgPyAtMSA6IDA7CiAKIG5vX2RjY3Bf c29ja2V0OgogCWlmICgheGZybTZfcG9saWN5X2NoZWNrKE5VTEwsIFhGUk1fUE9MSUNZX0lOLCBz a2IpKQotLSAKMi40LjExCgoKRnJvbSBjN2RkOTQwYTMzYzM4Njc0OGMzZmQzMzE0YThkMzY5ZGZh NTdjM2FjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMiBOb3YgMjAxNiAxODowNDoyNCAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMTAvMjldIGRjY3A6IGRvIG5vdCBzZW5kIHJlc2V0IHRvIGFscmVhZHkgY2xv c2VkIHNvY2tldHMKClsgVXBzdHJlYW0gY29tbWl0IDM0NmRhNjJjYzE4NmM0YjRiMWFjNTlmODdm NDQ4MmI0N2EwNDczODggXQoKQW5kcmV5IHJlcG9ydGVkIGZvbGxvd2luZyB3YXJuaW5nIHdoaWxl IGZ1enppbmcgd2l0aCBzeXprYWxsZXIKCldBUk5JTkc6IENQVTogMSBQSUQ6IDIxMDcyIGF0IG5l dC9kY2NwL3Byb3RvLmM6ODMgZGNjcF9zZXRfc3RhdGUrMHgyMjkvMHgyOTAKS2VybmVsIHBhbmlj IC0gbm90IHN5bmNpbmc6IHBhbmljX29uX3dhcm4gc2V0IC4uLgoKQ1BVOiAxIFBJRDogMjEwNzIg Q29tbTogc3l6LWV4ZWN1dG9yIE5vdCB0YWludGVkIDQuOS4wLXJjMSsgIzI5MwpIYXJkd2FyZSBu YW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBCb2NocyAw MS8wMS8yMDExCiBmZmZmODgwMDNkNGM3NzM4IGZmZmZmZmZmODFiNDc0ZjQgMDAwMDAwMDAwMDAw MDAwMyBkZmZmZmMwMDAwMDAwMDAwCiBmZmZmZmZmZjg0NGY4YjAwIGZmZmY4ODAwM2Q0Yzc4MDQg ZmZmZjg4MDAzZDRjNzgwMCBmZmZmZmZmZjgxNDBjMDZhCiAwMDAwMDAwMDQxYjU4YWIzIGZmZmZm ZmZmODQ3OWFiN2QgZmZmZmZmZmY4MTQwYmVhZSBmZmZmZmZmZjgxNDBjZDAwCkNhbGwgVHJhY2U6 CiBbPCAgICAgaW5saW5lICAgICA+XSBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzoxNQog WzxmZmZmZmZmZjgxYjQ3NGY0Pl0gZHVtcF9zdGFjaysweGIzLzB4MTBmIGxpYi9kdW1wX3N0YWNr LmM6NTEKIFs8ZmZmZmZmZmY4MTQwYzA2YT5dIHBhbmljKzB4MWJjLzB4MzlkIGtlcm5lbC9wYW5p Yy5jOjE3OQogWzxmZmZmZmZmZjgxMTExMjVjPl0gX193YXJuKzB4MWNjLzB4MWYwIGtlcm5lbC9w YW5pYy5jOjU0MgogWzxmZmZmZmZmZjgxMTExNDRjPl0gd2Fybl9zbG93cGF0aF9udWxsKzB4MmMv MHg0MCBrZXJuZWwvcGFuaWMuYzo1ODUKIFs8ZmZmZmZmZmY4Mzg5ZTVkOT5dIGRjY3Bfc2V0X3N0 YXRlKzB4MjI5LzB4MjkwIG5ldC9kY2NwL3Byb3RvLmM6ODMKIFs8ZmZmZmZmZmY4MzhhMGFhMj5d IGRjY3BfY2xvc2UrMHg2MTIvMHhjMTAgbmV0L2RjY3AvcHJvdG8uYzoxMDE2CiBbPGZmZmZmZmZm ODMxNmJmMWY+XSBpbmV0X3JlbGVhc2UrMHhlZi8weDFjMCBuZXQvaXB2NC9hZl9pbmV0LmM6NDE1 CiBbPGZmZmZmZmZmODJiNmU4OWU+XSBzb2NrX3JlbGVhc2UrMHg4ZS8weDFkMCBuZXQvc29ja2V0 LmM6NTcwCiBbPGZmZmZmZmZmODJiNmU5ZjY+XSBzb2NrX2Nsb3NlKzB4MTYvMHgyMCBuZXQvc29j a2V0LmM6MTAxNwogWzxmZmZmZmZmZjgxNTI1NmFkPl0gX19mcHV0KzB4MjlkLzB4NzIwIGZzL2Zp bGVfdGFibGUuYzoyMDgKIFs8ZmZmZmZmZmY4MTUyNWJiNT5dIF9fX19mcHV0KzB4MTUvMHgyMCBm cy9maWxlX3RhYmxlLmM6MjQ0CiBbPGZmZmZmZmZmODExNzI3ZDg+XSB0YXNrX3dvcmtfcnVuKzB4 ZjgvMHgxNzAga2VybmVsL3Rhc2tfd29yay5jOjExNgogWzwgICAgIGlubGluZSAgICAgPl0gZXhp dF90YXNrX3dvcmsgaW5jbHVkZS9saW51eC90YXNrX3dvcmsuaDoyMQogWzxmZmZmZmZmZjgxMTFi YzUzPl0gZG9fZXhpdCsweDg4My8weDJhYzAga2VybmVsL2V4aXQuYzo4MjgKIFs8ZmZmZmZmZmY4 MTEyMjFmZT5dIGRvX2dyb3VwX2V4aXQrMHgxMGUvMHgzNDAga2VybmVsL2V4aXQuYzo5MzEKIFs8 ZmZmZmZmZmY4MTE0M2M5ND5dIGdldF9zaWduYWwrMHg2MzQvMHgxNWEwIGtlcm5lbC9zaWduYWwu YzoyMzA3CiBbPGZmZmZmZmZmODEwNTRhYWQ+XSBkb19zaWduYWwrMHg4ZC8weDFhMzAgYXJjaC94 ODYva2VybmVsL3NpZ25hbC5jOjgwNwogWzxmZmZmZmZmZjgxMDAzYTA1Pl0gZXhpdF90b191c2Vy bW9kZV9sb29wKzB4ZTUvMHgxMzAKYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MTU2CiBbPCAgICAg aW5saW5lICAgICA+XSBwcmVwYXJlX2V4aXRfdG9fdXNlcm1vZGUgYXJjaC94ODYvZW50cnkvY29t bW9uLmM6MTkwCiBbPGZmZmZmZmZmODEwMDYyOTg+XSBzeXNjYWxsX3JldHVybl9zbG93cGF0aCsw eDFhOC8weDFlMAphcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyNTkKIFs8ZmZmZmZmZmY4M2ZjMWE2 Mj5dIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHhjMC8weGMyCkR1bXBpbmcgZnRyYWNlIGJ1 ZmZlcjoKICAgKGZ0cmFjZSBidWZmZXIgZW1wdHkpCktlcm5lbCBPZmZzZXQ6IGRpc2FibGVkCgpG aXggdGhpcyB0aGUgc2FtZSB3YXkgd2UgZGlkIGZvciBUQ1AgaW4gY29tbWl0IDU2NWI3YjJkMmU2 MwooInRjcDogZG8gbm90IHNlbmQgcmVzZXQgdG8gYWxyZWFkeSBjbG9zZWQgc29ja2V0cyIpCgpT aWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVk LWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ClRlc3RlZC1ieTog QW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RjY3AvcHJvdG8u YyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L25ldC9kY2NwL3Byb3RvLmMgYi9uZXQvZGNjcC9wcm90by5jCmluZGV4IDQxZTY1ODAuLjlmZTI1 YmYgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL3Byb3RvLmMKKysrIGIvbmV0L2RjY3AvcHJvdG8uYwpA QCAtMTAwOSw2ICsxMDA5LDEwIEBAIHZvaWQgZGNjcF9jbG9zZShzdHJ1Y3Qgc29jayAqc2ssIGxv bmcgdGltZW91dCkKIAkJX19rZnJlZV9za2Ioc2tiKTsKIAl9CiAKKwkvKiBJZiBzb2NrZXQgaGFz IGJlZW4gYWxyZWFkeSByZXNldCBraWxsIGl0LiAqLworCWlmIChzay0+c2tfc3RhdGUgPT0gREND UF9DTE9TRUQpCisJCWdvdG8gYWRqdWRnZV90b19kZWF0aDsKKwogCWlmIChkYXRhX3dhc191bnJl YWQpIHsKIAkJLyogVW5yZWFkIGRhdGEgd2FzIHRvc3NlZCwgc2VuZCBhbiBhcHByb3ByaWF0ZSBS ZXNldCBDb2RlICovCiAJCURDQ1BfV0FSTigiQUJPUlQgd2l0aCAldSBieXRlcyB1bnJlYWRcbiIs IGRhdGFfd2FzX3VucmVhZCk7Ci0tIAoyLjQuMTEKCgpGcm9tIGZkNWQ5NmViYTdkOWM1MzQ1ODA3 MzRmZmZjOWJhYjI0NjM2OTljMzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyIE5vdiAyMDE2IDE5OjAw OjQwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMS8yOV0gZGNjcDogZml4IG91dCBvZiBib3VuZCBh Y2Nlc3MgaW4gZGNjcF92NF9lcnIoKQoKWyBVcHN0cmVhbSBjb21taXQgNjcwNmE5N2ZlYzk2M2Q2 Y2IzZjdmYzI5NzhlYzE0MjdiNDY1MTIxNCBdCgpkY2NwX3Y0X2VycigpIGRvZXMgbm90IHVzZSBw c2tiX21heV9wdWxsKCkgYW5kIG1pZ2h0IGFjY2VzcyBnYXJiYWdlLgoKV2Ugb25seSBuZWVkIDQg Ynl0ZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgRENDUCBoZWFkZXIsIGxpa2UgVENQLApzbyB0 aGUgOCBieXRlcyBwdWxsZWQgaW4gaWNtcF9zb2NrZXRfZGVsaXZlcigpIGFyZSBtb3JlIHRoYW4g ZW5vdWdoLgoKVGhpcyBwYXRjaCBtaWdodCBhbGxvdyB0byBwcm9jZXNzIG1vcmUgSUNNUCBtZXNz YWdlcywgYXMgc29tZSByb3V0ZXJzCmFyZSBzdGlsbCBsaW1pdGluZyB0aGUgc2l6ZSBvZiByZWZs ZWN0ZWQgYnl0ZXMgdG8gMjggKFJGQyA3OTIpLCBpbnN0ZWFkCm9mIGV4dGVuZGVkIGxlbmd0aHMg KFJGQyAxODEyIDQuMy4yLjMpCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvZGNjcC9pcHY0LmMgfCAxNCArKysrKysrKy0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvZGNjcC9pcHY0LmMgYi9uZXQvZGNjcC9pcHY0LmMKaW5kZXggZGZmN2NmYS4uYjU2N2M4NyAx MDA2NDQKLS0tIGEvbmV0L2RjY3AvaXB2NC5jCisrKyBiL25ldC9kY2NwL2lwdjQuYwpAQCAtMjM1 LDcgKzIzNSw3IEBAIHN0YXRpYyB2b2lkIGRjY3BfdjRfZXJyKHN0cnVjdCBza19idWZmICpza2Is IHUzMiBpbmZvKQogewogCWNvbnN0IHN0cnVjdCBpcGhkciAqaXBoID0gKHN0cnVjdCBpcGhkciAq KXNrYi0+ZGF0YTsKIAljb25zdCB1OCBvZmZzZXQgPSBpcGgtPmlobCA8PCAyOwotCWNvbnN0IHN0 cnVjdCBkY2NwX2hkciAqZGggPSAoc3RydWN0IGRjY3BfaGRyICopKHNrYi0+ZGF0YSArIG9mZnNl dCk7CisJY29uc3Qgc3RydWN0IGRjY3BfaGRyICpkaDsKIAlzdHJ1Y3QgZGNjcF9zb2NrICpkcDsK IAlzdHJ1Y3QgaW5ldF9zb2NrICppbmV0OwogCWNvbnN0IGludCB0eXBlID0gaWNtcF9oZHIoc2ti KS0+dHlwZTsKQEAgLTI0NSwxMSArMjQ1LDEzIEBAIHN0YXRpYyB2b2lkIGRjY3BfdjRfZXJyKHN0 cnVjdCBza19idWZmICpza2IsIHUzMiBpbmZvKQogCWludCBlcnI7CiAJc3RydWN0IG5ldCAqbmV0 ID0gZGV2X25ldChza2ItPmRldik7CiAKLQlpZiAoc2tiLT5sZW4gPCBvZmZzZXQgKyBzaXplb2Yo KmRoKSB8fAotCSAgICBza2ItPmxlbiA8IG9mZnNldCArIF9fZGNjcF9iYXNpY19oZHJfbGVuKGRo KSkgewotCQlfX0lDTVBfSU5DX1NUQVRTKG5ldCwgSUNNUF9NSUJfSU5FUlJPUlMpOwotCQlyZXR1 cm47Ci0JfQorCS8qIE9ubHkgbmVlZCBkY2NwaF9kcG9ydCAmIGRjY3BoX3Nwb3J0IHdoaWNoIGFy ZSB0aGUgZmlyc3QKKwkgKiA0IGJ5dGVzIGluIGRjY3AgaGVhZGVyLgorCSAqIE91ciBjYWxsZXIg KGljbXBfc29ja2V0X2RlbGl2ZXIoKSkgYWxyZWFkeSBwdWxsZWQgOCBieXRlcyBmb3IgdXMuCisJ ICovCisJQlVJTERfQlVHX09OKG9mZnNldG9mZW5kKHN0cnVjdCBkY2NwX2hkciwgZGNjcGhfc3Bv cnQpID4gOCk7CisJQlVJTERfQlVHX09OKG9mZnNldG9mZW5kKHN0cnVjdCBkY2NwX2hkciwgZGNj cGhfZHBvcnQpID4gOCk7CisJZGggPSAoc3RydWN0IGRjY3BfaGRyICopKHNrYi0+ZGF0YSArIG9m ZnNldCk7CiAKIAlzayA9IF9faW5ldF9sb29rdXBfZXN0YWJsaXNoZWQobmV0LCAmZGNjcF9oYXNo aW5mbywKIAkJCQkgICAgICAgaXBoLT5kYWRkciwgZGgtPmRjY3BoX2Rwb3J0LAotLSAKMi40LjEx CgoKRnJvbSBmNTU2OGE3ZDBiODBjOWQxOWMxODc2ZGNiMDU4MGViYjRmMDg1M2E4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkRhdGU6IFdlZCwgMiBOb3YgMjAxNiAyMDozMDo0OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTIv MjldIGlwdjY6IGRjY3A6IGZpeCBvdXQgb2YgYm91bmQgYWNjZXNzIGluIGRjY3BfdjZfZXJyKCkK ClsgVXBzdHJlYW0gY29tbWl0IDFhYTlkMWEwZTdlZWZjYzYxNjk2ZTE0N2QxMjM0NTNmYzAwMTYw MDUgXQoKZGNjcF92Nl9lcnIoKSBkb2VzIG5vdCB1c2UgcHNrYl9tYXlfcHVsbCgpIGFuZCBtaWdo dCBhY2Nlc3MgZ2FyYmFnZS4KCldlIG9ubHkgbmVlZCA0IGJ5dGVzIGF0IHRoZSBiZWdpbm5pbmcg b2YgdGhlIERDQ1AgaGVhZGVyLCBsaWtlIFRDUCwKc28gdGhlIDggYnl0ZXMgcHVsbGVkIGluIGlj bXB2Nl9ub3RpZnkoKSBhcmUgbW9yZSB0aGFuIGVub3VnaC4KClNpZ25lZC1vZmYtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kY2NwL2lwdjYuYyB8IDE1ICsrKysr KysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvZGNjcC9pcHY2LmMgYi9uZXQvZGNjcC9pcHY2LmMKaW5kZXgg MDljNGUxOS4uYjJhNDNhZiAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvaXB2Ni5jCisrKyBiL25ldC9k Y2NwL2lwdjYuYwpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgdm9pZCBkY2NwX3Y2X2VycihzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaW5ldDZfc2tiX3Bhcm0gKm9wdCwKIAkJCXU4IHR5cGUs IHU4IGNvZGUsIGludCBvZmZzZXQsIF9fYmUzMiBpbmZvKQogewogCWNvbnN0IHN0cnVjdCBpcHY2 aGRyICpoZHIgPSAoY29uc3Qgc3RydWN0IGlwdjZoZHIgKilza2ItPmRhdGE7Ci0JY29uc3Qgc3Ry dWN0IGRjY3BfaGRyICpkaCA9IChzdHJ1Y3QgZGNjcF9oZHIgKikoc2tiLT5kYXRhICsgb2Zmc2V0 KTsKKwljb25zdCBzdHJ1Y3QgZGNjcF9oZHIgKmRoOwogCXN0cnVjdCBkY2NwX3NvY2sgKmRwOwog CXN0cnVjdCBpcHY2X3BpbmZvICpucDsKIAlzdHJ1Y3Qgc29jayAqc2s7CkBAIC03OCwxMiArNzgs MTMgQEAgc3RhdGljIHZvaWQgZGNjcF92Nl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IGluZXQ2X3NrYl9wYXJtICpvcHQsCiAJX191NjQgc2VxOwogCXN0cnVjdCBuZXQgKm5ldCA9IGRl dl9uZXQoc2tiLT5kZXYpOwogCi0JaWYgKHNrYi0+bGVuIDwgb2Zmc2V0ICsgc2l6ZW9mKCpkaCkg fHwKLQkgICAgc2tiLT5sZW4gPCBvZmZzZXQgKyBfX2RjY3BfYmFzaWNfaGRyX2xlbihkaCkpIHsK LQkJX19JQ01QNl9JTkNfU1RBVFMobmV0LCBfX2luNl9kZXZfZ2V0KHNrYi0+ZGV2KSwKLQkJCQkg IElDTVA2X01JQl9JTkVSUk9SUyk7Ci0JCXJldHVybjsKLQl9CisJLyogT25seSBuZWVkIGRjY3Bo X2Rwb3J0ICYgZGNjcGhfc3BvcnQgd2hpY2ggYXJlIHRoZSBmaXJzdAorCSAqIDQgYnl0ZXMgaW4g ZGNjcCBoZWFkZXIuCisJICogT3VyIGNhbGxlciAoaWNtcHY2X25vdGlmeSgpKSBhbHJlYWR5IHB1 bGxlZCA4IGJ5dGVzIGZvciB1cy4KKwkgKi8KKwlCVUlMRF9CVUdfT04ob2Zmc2V0b2ZlbmQoc3Ry dWN0IGRjY3BfaGRyLCBkY2NwaF9zcG9ydCkgPiA4KTsKKwlCVUlMRF9CVUdfT04ob2Zmc2V0b2Zl bmQoc3RydWN0IGRjY3BfaGRyLCBkY2NwaF9kcG9ydCkgPiA4KTsKKwlkaCA9IChzdHJ1Y3QgZGNj cF9oZHIgKikoc2tiLT5kYXRhICsgb2Zmc2V0KTsKIAogCXNrID0gX19pbmV0Nl9sb29rdXBfZXN0 YWJsaXNoZWQobmV0LCAmZGNjcF9oYXNoaW5mbywKIAkJCQkJJmhkci0+ZGFkZHIsIGRoLT5kY2Nw aF9kcG9ydCwKLS0gCjIuNC4xMQoKCkZyb20gZDc2OWZhOGJhMmQ2ZDk3Yzc0NGM2OTkyZjM1Yzk1 YjViZjI0NzFjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDMgTm92IDIwMTYgMDg6NTk6NDYgLTA3MDAK U3ViamVjdDogW1BBVENIIDEzLzI5XSBpcHY2OiBkY2NwOiBhZGQgbWlzc2luZyBiaW5kX2NvbmZs aWN0IHRvCiBkY2NwX2lwdjZfbWFwcGVkCgpbIFVwc3RyZWFtIGNvbW1pdCA5OTBmZjRkODQ0MDhm YzU1OTQyY2E2NjQ0ZjY3ZTM2MTczN2IzZDhlIF0KCldoaWxlIGZ1enppbmcga2VybmVsIHdpdGgg c3l6a2FsbGVyLCBBbmRyZXkgcmVwb3J0ZWQgYSBuYXN0eSBjcmFzaAppbiBpbmV0Nl9iaW5kKCkg Y2F1c2VkIGJ5IERDQ1AgbGFja2luZyBhIHJlcXVpcmVkIG1ldGhvZC4KCkZpeGVzOiBhYjFlMGEx M2Q3MDI5ICgiW1NPQ0tdIHByb3RvOiBBZGQgaGFzaGluZm8gbWVtYmVyIHRvIHN0cnVjdCBwcm90 byIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVw b3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KVGVzdGVk LWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+CkNjOiBBcm5hbGRv IENhcnZhbGhvIGRlIE1lbG8gPGFjbWVAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEFybmFsZG8gQ2Fy dmFsaG8gZGUgTWVsbyA8YWNtZUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RjY3AvaXB2Ni5jIHwgMSArCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvZGNjcC9pcHY2 LmMgYi9uZXQvZGNjcC9pcHY2LmMKaW5kZXggYjJhNDNhZi4uNzE1ZTVkMSAxMDA2NDQKLS0tIGEv bmV0L2RjY3AvaXB2Ni5jCisrKyBiL25ldC9kY2NwL2lwdjYuYwpAQCAtOTU4LDYgKzk1OCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5ldF9jb25uZWN0aW9uX3NvY2tfYWZfb3BzIGRjY3BfaXB2 Nl9tYXBwZWQgPSB7CiAJLmdldHNvY2tvcHQJICAgPSBpcHY2X2dldHNvY2tvcHQsCiAJLmFkZHIy c29ja2FkZHIJICAgPSBpbmV0Nl9jc2tfYWRkcjJzb2NrYWRkciwKIAkuc29ja2FkZHJfbGVuCSAg ID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbjYpLAorCS5iaW5kX2NvbmZsaWN0CSAgID0gaW5l dDZfY3NrX2JpbmRfY29uZmxpY3QsCiAjaWZkZWYgQ09ORklHX0NPTVBBVAogCS5jb21wYXRfc2V0 c29ja29wdCA9IGNvbXBhdF9pcHY2X3NldHNvY2tvcHQsCiAJLmNvbXBhdF9nZXRzb2Nrb3B0ID0g Y29tcGF0X2lwdjZfZ2V0c29ja29wdCwKLS0gCjIuNC4xMQoKCkZyb20gMDE0ZWY1NTNiZDE2YmRh MTEwODhmMzIzMGM1MTk2OTJiYjZmYzNkNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog TWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMyBOb3YgMjAxNiAxNzowMzo0MSAtMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjldIHNj dHA6IGFzc2lnbiBhc3NvY19pZCBlYXJsaWVyIGluIF9fc2N0cF9jb25uZWN0CgpbIFVwc3RyZWFt IGNvbW1pdCA3MjMzYmM4NGEzYWVkYTgzNWQzMzQ0OTlkYzAwNDQ4MzczY2FmNWMwIF0KCnNjdHBf d2FpdF9mb3JfY29ubmVjdCgpIGN1cnJlbnRseSBhbHJlYWR5IGhvbGRzIHRoZSBhc29jIHRvIGtl ZXAgaXQKYWxpdmUgZHVyaW5nIHRoZSBzbGVlcCwgaW4gY2FzZSBhbm90aGVyIHRocmVhZCByZWxl YXNlIGl0LiBCdXQgQW5kcmV5Cktvbm92YWxvdiBhbmQgRG1pdHJ5IFZ5dWtvdiByZXBvcnRlZCBh biB1c2UtYWZ0ZXItZnJlZSBpbiBzdWNoCnNpdHVhdGlvbi4KClByb2JsZW0gaXMgdGhhdCBfX3Nj dHBfY29ubmVjdCgpIGRvZXNuJ3QgZ2V0IGEgcmVmIG9uIHRoZSBhc29jIGFuZCB3aWxsCmRvIGEg cmVhZCBvbiB0aGUgYXNvYyBhZnRlciBjYWxsaW5nIHNjdHBfd2FpdF9mb3JfY29ubmVjdCgpLCBi dXQgYnkgdGhlbgphbm90aGVyIHRocmVhZCBtYXkgaGF2ZSBjbG9zZWQgaXQgYW5kIHRoZSBfcHV0 IG9uIHNjdHBfd2FpdF9mb3JfY29ubmVjdAp3aWxsIGFjdHVhbGx5IHJlbGVhc2UgaXQsIGNhdXNp bmcgdGhlIHVzZS1hZnRlci1mcmVlLgoKRml4IGlzLCBpbnN0ZWFkIG9mIGRvaW5nIHRoZSByZWFk IGFmdGVyIHdhaXRpbmcgZm9yIHRoZSBjb25uZWN0LCBkbyBpdApiZWZvcmUgc28sIGFuZCBhdm9p ZCB0aGlzIGlzc3VlIGFzIHRoZSBzb2NrZXQgaXMgc3RpbGwgbG9ja2VkIGJ5IHRoZW4uClRoZXJl IHNob3VsZCBiZSBubyBpc3N1ZSBvbiByZXR1cm5pbmcgdGhlIGFzb2MgaWQgaW4gY2FzZSBvZiBm YWlsdXJlIGFzCnRoZSBhcHBsaWNhdGlvbiBzaG91bGRuJ3QgdHJ1c3Qgb24gdGhhdCBudW1iZXIg aW4gc3VjaCBzaXR1YXRpb25zCmFueXdheS4KClRoaXMgaXNzdWUgZG9lc24ndCBleGlzdCBpbiBz Y3RwX3NlbmRtc2coKSBwYXRoLgoKUmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZA Z29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29v Z2xlLmNvbT4KVGVzdGVkLWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRu ZXJAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29t PgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3Rw L3NvY2tldC5jIHwgNyArKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAv c29ja2V0LmMKaW5kZXggYmFjY2JmMy4uODliZGU1NCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc29j a2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTEyMTQsOSArMTIxNCwxMiBAQCBzdGF0 aWMgaW50IF9fc2N0cF9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywKIAogCXRpbWVvID0gc29ja19z bmR0aW1lbyhzaywgZl9mbGFncyAmIE9fTk9OQkxPQ0spOwogCi0JZXJyID0gc2N0cF93YWl0X2Zv cl9jb25uZWN0KGFzb2MsICZ0aW1lbyk7Ci0JaWYgKChlcnIgPT0gMCB8fCBlcnIgPT0gLUVJTlBS T0dSRVNTKSAmJiBhc3NvY19pZCkKKwlpZiAoYXNzb2NfaWQpCiAJCSphc3NvY19pZCA9IGFzb2Mt PmFzc29jX2lkOworCWVyciA9IHNjdHBfd2FpdF9mb3JfY29ubmVjdChhc29jLCAmdGltZW8pOwor CS8qIE5vdGU6IHRoZSBhc29jIG1heSBiZSBmcmVlZCBhZnRlciB0aGUgcmV0dXJuIG9mCisJICog c2N0cF93YWl0X2Zvcl9jb25uZWN0LgorCSAqLwogCiAJLyogRG9uJ3QgZnJlZSBhc3NvY2lhdGlv biBvbiBleGl0LiAqLwogCWFzb2MgPSBOVUxMOwotLSAKMi40LjExCgoKRnJvbSAzOTUxYjVjMzQy YTVmNzkyZDhhYTkzMTBmYzc5YjFjYmQ0YWUyNjg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpEYXRlOiBGcmksIDQg Tm92IDIwMTYgMDA6MDE6MTkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE1LzI5XSBicGY6IGZpeCBo dGFiIG1hcCBkZXN0cnVjdGlvbiB3aGVuIGV4dHJhIHJlc2VydmUgaXMgaW4KIHVzZQoKWyBVcHN0 cmVhbSBjb21taXQgNDgzYmVkMmIwZGRkMTJlYzMzZmM5NDA3ZTBjNmUxMDg4ZTc3YTk3YyBdCgpD b21taXQgYTZlZDNlYTY1ZDk4ICgiYnBmOiByZXN0b3JlIGJlaGF2aW9yIG9mIGJwZl9tYXBfdXBk YXRlX2VsZW0iKQphZGRlZCBhbiBleHRyYSBwZXItY3B1IHJlc2VydmUgdG8gdGhlIGhhc2ggdGFi bGUgbWFwIHRvIHJlc3RvcmUgb2xkCmJlaGF2aW91ciBmcm9tIHByZSBwcmVhbGxvYyB0aW1lcy4g V2hlbiBub24tcHJlYWxsb2MgaXMgaW4gdXNlIGZvciBhCm1hcCwgdGhlbiBwcm9ibGVtIGlzIHRo YXQgb25jZSBhIGhhc2ggdGFibGUgZXh0cmEgZWxlbWVudCBoYXMgYmVlbgpsaW5rZWQgaW50byB0 aGUgaGFzaC10YWJsZSwgYW5kIHRoZSBoYXNoIHRhYmxlIGlzIGRlc3Ryb3llZCBkdWUgdG8KcmVm Y291bnQgZHJvcHBpbmcgdG8gemVybywgdGhlbiBodGFiX21hcF9mcmVlKCkgLT4gZGVsZXRlX2Fs bF9lbGVtZW50cygpCndpbGwgd2FsayB0aGUgd2hvbGUgaGFzaCB0YWJsZSBhbmQgZHJvcCBhbGwg ZWxlbWVudHMgdmlhIGh0YWJfZWxlbV9mcmVlKCkuClRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlIGVs ZW1lbnQgZnJvbSB0aGUgZXh0cmEgcmVzZXJ2ZSBpcyBmaXJzdCBmZWQKdG8gdGhlIHdyb25nIGJh Y2tlbmQgYWxsb2NhdG9yIGFuZCBldmVudHVhbGx5IGZyZWVkIHR3aWNlLgoKRml4ZXM6IGE2ZWQz ZWE2NWQ5OCAoImJwZjogcmVzdG9yZSBiZWhhdmlvciBvZiBicGZfbWFwX3VwZGF0ZV9lbGVtIikK UmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KQWNrZWQtYnk6IEFs ZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBrZXJuZWwvYnBmL2hhc2h0YWIuYyB8 IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEva2VybmVsL2JwZi9oYXNodGFiLmMgYi9rZXJuZWwvYnBmL2hhc2h0YWIuYwpp bmRleCA1NzBlZWNhLi5hZDFiYzY3IDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL2hhc2h0YWIuYwor KysgYi9rZXJuZWwvYnBmL2hhc2h0YWIuYwpAQCAtNjg3LDcgKzY4Nyw4IEBAIHN0YXRpYyB2b2lk IGRlbGV0ZV9hbGxfZWxlbWVudHMoc3RydWN0IGJwZl9odGFiICpodGFiKQogCiAJCWhsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUobCwgbiwgaGVhZCwgaGFzaF9ub2RlKSB7CiAJCQlobGlzdF9kZWxf cmN1KCZsLT5oYXNoX25vZGUpOwotCQkJaHRhYl9lbGVtX2ZyZWUoaHRhYiwgbCk7CisJCQlpZiAo bC0+c3RhdGUgIT0gSFRBQl9FWFRSQV9FTEVNX1VTRUQpCisJCQkJaHRhYl9lbGVtX2ZyZWUoaHRh YiwgbCk7CiAJCX0KIAl9CiB9Ci0tIAoyLjQuMTEKCgpGcm9tIGM1ZDgzNDU2ZjBjMDI3ZGE1ZjQ3 NzRkMjAwODBiN2QxMzg4N2E4YTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlk IEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogVGh1LCAzIE5vdiAyMDE2IDE2 OjE3OjI2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNi8yOV0gbmV0OiBpY21wNl9zZW5kIHNob3Vs ZCB1c2UgZHN0IGRldiB0byBkZXRlcm1pbmUgTDMKIGRvbWFpbgoKWyBVcHN0cmVhbSBjb21taXQg NWQ0MWNlMjllM2I5MWVmMzA1Zjg4ZDIzZjcyYjMzNTlkZTMyOWNlYyBdCgppY21wNl9zZW5kIGlz IGNhbGxlZCBpbiByZXNwb25zZSB0byBzb21lIGV2ZW50LiBUaGUgc2tiIG1heSBub3QgaGF2ZQp0 aGUgZGV2aWNlIHNldCAoc2tiLT5kZXYgaXMgTlVMTCksIGJ1dCBpdCBpcyBleHBlY3RlZCB0byBo YXZlIGEgZHN0IHNldC4KVXBkYXRlIGljbXA2X3NlbmQgdG8gdXNlIHRoZSBkc3Qgb24gdGhlIHNr YiB0byBkZXRlcm1pbmUgTDMgZG9tYWluLgoKRml4ZXM6IGNhMjU0NDkwYzhkZmQgKCJuZXQ6IEFk ZCBWUkYgc3VwcG9ydCB0byBJUHY2IHN0YWNrIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4g PGRzYUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaWNtcC5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvaWNtcC5jIGIvbmV0L2lwdjYvaWNtcC5jCmluZGV4IGJkNTljMzQuLjczNzBhZDIgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L2ljbXAuYworKysgYi9uZXQvaXB2Ni9pY21wLmMKQEAgLTQ0OCw3 ICs0NDgsNyBAQCBzdGF0aWMgdm9pZCBpY21wNl9zZW5kKHN0cnVjdCBza19idWZmICpza2IsIHU4 IHR5cGUsIHU4IGNvZGUsIF9fdTMyIGluZm8sCiAJaWYgKF9faXB2Nl9hZGRyX25lZWRzX3Njb3Bl X2lkKGFkZHJfdHlwZSkpCiAJCWlpZiA9IHNrYi0+ZGV2LT5pZmluZGV4OwogCWVsc2UKLQkJaWlm ID0gbDNtZGV2X21hc3Rlcl9pZmluZGV4KHNrYi0+ZGV2KTsKKwkJaWlmID0gbDNtZGV2X21hc3Rl cl9pZmluZGV4KHNrYl9kc3Qoc2tiKS0+ZGV2KTsKIAogCS8qCiAJICoJTXVzdCBub3Qgc2VuZCBl cnJvciBpZiB0aGUgc291cmNlIGRvZXMgbm90IHVuaXF1ZWx5Ci0tIAoyLjQuMTEKCgpGcm9tIDI4 MmNkMmMwYzJkOGEwZGIwNTE0YjIzZWI0YTI1ODk0YWQ1MGVkY2QgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEFsZXhhbmRlciBEdXljayA8YWxleGFuZGVyLmguZHV5Y2tAaW50ZWwuY29t PgpEYXRlOiBGcmksIDQgTm92IDIwMTYgMTU6MTE6NTcgLTA0MDAKU3ViamVjdDogW1BBVENIIDE3 LzI5XSBmaWJfdHJpZTogQ29ycmVjdCAvcHJvYy9uZXQvcm91dGUgb2ZmIGJ5IG9uZSBlcnJvcgoK WyBVcHN0cmVhbSBjb21taXQgZmQwMjg1YTM5YjFjYjQ5NmY2MDIxMGE5YTAwYWQzM2E4MTU2MDNl NyBdCgpUaGUgZGlzcGxheSBvZiAvcHJvYy9uZXQvcm91dGUgaGFzIGhhZCBhIGNvdXBsZSBpc3N1 ZXMgZHVlIHRvIHRoZSBmYWN0IHRoYXQKd2hlbiBJIG9yaWdpbmFsbHkgcmV3cm90ZSBtb3N0IG9m IGZpYl90cmllIEkgbWFkZSBpdCBzbyB0aGF0IHRoZSBpdGVyYXRvcgp3YXMgdHJhY2tpbmcgdGhl IG5leHQgdmFsdWUgdG8gdXNlIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQuCgpJbiBhZGRpdGlvbiBp dCBoYWQgYW4gb2ZmIGJ5IDEgZXJyb3Igd2hlcmUgSSB3YXMgdHJhY2tpbmcgdGhlIGZpcnN0IHBp ZWNlCm9mIGRhdGEgYXMgcG9zaXRpb24gMCwgZXZlbiB0aG91Z2ggaW4gcmVhbGl0eSB0aGF0IGJl bG9uZ2VkIHRvIHRoZQpTRVFfU1RBUlRfVE9LRU4uCgpUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGNv ZGUgc28gdGhlIGl0ZXJhdG9yIHRyYWNrcyB0aGUgbGFzdCByZXBvcnRlZApwb3NpdGlvbiBhbmQg a2V5IGluc3RlYWQgb2YgdGhlIG5leHQgZXhwZWN0ZWQgcG9zaXRpb24gYW5kIGtleS4gIEluCmFk ZGl0aW9uIGl0IHNoaWZ0cyB0aGluZ3Mgc28gdGhhdCBhbGwgb2YgdGhlIGxlYXZlcyBzdGFydCBh dCAxIGluc3RlYWQgb2YKdHJ5aW5nIHRvIHJlcG9ydCBsZWF2ZXMgc3RhcnRpbmcgd2l0aCBvZmZz ZXQgMCBhcyBiZWluZyB2YWxpZC4gIFdpdGggdGhlc2UKdHdvIGlzc3VlcyBhZGRyZXNzZWQgdGhp cyBzaG91bGQgcmVzb2x2ZSBhbnkgb2ZmIGJ5IG9uZSBlcnJvcnMgdGhhdCB3ZXJlCnByZXNlbnQg aW4gdGhlIGRpc3BsYXkgb2YgL3Byb2MvbmV0L3JvdXRlLgoKRml4ZXM6IDI1Yjk3YzAxNmIyNiAo ImlwdjQ6IG9mZi1ieS1vbmUgaW4gY29udGludWF0aW9uIGhhbmRsaW5nIGluIC9wcm9jL25ldC9y b3V0ZSIpCkNjOiBBbmR5IFdoaXRjcm9mdCA8YXB3QGNhbm9uaWNhbC5jb20+ClJlcG9ydGVkLWJ5 OiBKYXNvbiBCYXJvbiA8amJhcm9uQGFrYW1haS5jb20+ClRlc3RlZC1ieTogSmFzb24gQmFyb24g PGpiYXJvbkBha2FtYWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgRHV5Y2sgPGFsZXhh bmRlci5oLmR1eWNrQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2ZpYl90cmllLmMgfCAyMSArKysrKysr KystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl90cmllLmMgYi9uZXQvaXB2NC9maWJf dHJpZS5jCmluZGV4IGUyZmZjMmEuLjdlZjcwMzEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl90 cmllLmMKKysrIGIvbmV0L2lwdjQvZmliX3RyaWUuYwpAQCAtMjQ1NSwyMiArMjQ1NSwxOSBAQCBz dGF0aWMgc3RydWN0IGtleV92ZWN0b3IgKmZpYl9yb3V0ZV9nZXRfaWR4KHN0cnVjdCBmaWJfcm91 dGVfaXRlciAqaXRlciwKIAlzdHJ1Y3Qga2V5X3ZlY3RvciAqbCwgKip0cCA9ICZpdGVyLT50bm9k ZTsKIAl0X2tleSBrZXk7CiAKLQkvKiB1c2UgY2FjaGUgbG9jYXRpb24gb2YgbmV4dC10by1maW5k IGtleSAqLworCS8qIHVzZSBjYWNoZWQgbG9jYXRpb24gb2YgcHJldmlvdXNseSBmb3VuZCBrZXkg Ki8KIAlpZiAoaXRlci0+cG9zID4gMCAmJiBwb3MgPj0gaXRlci0+cG9zKSB7Ci0JCXBvcyAtPSBp dGVyLT5wb3M7CiAJCWtleSA9IGl0ZXItPmtleTsKIAl9IGVsc2UgewotCQlpdGVyLT5wb3MgPSAw OworCQlpdGVyLT5wb3MgPSAxOwogCQlrZXkgPSAwOwogCX0KIAotCXdoaWxlICgobCA9IGxlYWZf d2Fsa19yY3UodHAsIGtleSkpICE9IE5VTEwpIHsKKwlwb3MgLT0gaXRlci0+cG9zOworCisJd2hp bGUgKChsID0gbGVhZl93YWxrX3JjdSh0cCwga2V5KSkgJiYgKHBvcy0tID4gMCkpIHsKIAkJa2V5 ID0gbC0+a2V5ICsgMTsKIAkJaXRlci0+cG9zKys7Ci0KLQkJaWYgKC0tcG9zIDw9IDApCi0JCQli cmVhazsKLQogCQlsID0gTlVMTDsKIAogCQkvKiBoYW5kbGUgdW5saWtlbHkgY2FzZSBvZiBhIGtl eSB3cmFwICovCkBAIC0yNDc5LDcgKzI0NzYsNyBAQCBzdGF0aWMgc3RydWN0IGtleV92ZWN0b3Ig KmZpYl9yb3V0ZV9nZXRfaWR4KHN0cnVjdCBmaWJfcm91dGVfaXRlciAqaXRlciwKIAl9CiAKIAlp ZiAobCkKLQkJaXRlci0+a2V5ID0ga2V5OwkvKiByZW1lbWJlciBpdCAqLworCQlpdGVyLT5rZXkg PSBsLT5rZXk7CS8qIHJlbWVtYmVyIGl0ICovCiAJZWxzZQogCQlpdGVyLT5wb3MgPSAwOwkJLyog Zm9yZ2V0IGl0ICovCiAKQEAgLTI1MDcsNyArMjUwNCw3IEBAIHN0YXRpYyB2b2lkICpmaWJfcm91 dGVfc2VxX3N0YXJ0KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBsb2ZmX3QgKnBvcykKIAkJcmV0dXJu IGZpYl9yb3V0ZV9nZXRfaWR4KGl0ZXIsICpwb3MpOwogCiAJaXRlci0+cG9zID0gMDsKLQlpdGVy LT5rZXkgPSAwOworCWl0ZXItPmtleSA9IEtFWV9NQVg7CiAKIAlyZXR1cm4gU0VRX1NUQVJUX1RP S0VOOwogfQpAQCAtMjUxNiw3ICsyNTEzLDcgQEAgc3RhdGljIHZvaWQgKmZpYl9yb3V0ZV9zZXFf bmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdiwgbG9mZl90ICpwb3MpCiB7CiAJc3Ry dWN0IGZpYl9yb3V0ZV9pdGVyICppdGVyID0gc2VxLT5wcml2YXRlOwogCXN0cnVjdCBrZXlfdmVj dG9yICpsID0gTlVMTDsKLQl0X2tleSBrZXkgPSBpdGVyLT5rZXk7CisJdF9rZXkga2V5ID0gaXRl ci0+a2V5ICsgMTsKIAogCSsrKnBvczsKIApAQCAtMjUyNSw3ICsyNTIyLDcgQEAgc3RhdGljIHZv aWQgKmZpYl9yb3V0ZV9zZXFfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdiwgbG9m Zl90ICpwb3MpCiAJCWwgPSBsZWFmX3dhbGtfcmN1KCZpdGVyLT50bm9kZSwga2V5KTsKIAogCWlm IChsKSB7Ci0JCWl0ZXItPmtleSA9IGwtPmtleSArIDE7CisJCWl0ZXItPmtleSA9IGwtPmtleTsK IAkJaXRlci0+cG9zKys7CiAJfSBlbHNlIHsKIAkJaXRlci0+cG9zID0gMDsKLS0gCjIuNC4xMQoK CkZyb20gNTkxZmI4YTA3ODM4ZTRkYjJjOGU1YWU4NjA2NWU5OTliMDBlYjljNCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xl LmNvbT4KRGF0ZTogRnJpLCA0IE5vdiAyMDE2IDE1OjM2OjQ5IC0wNDAwClN1YmplY3Q6IFtQQVRD SCAxOC8yOV0gc29jazogZml4IHNlbmRtbXNnIGZvciBwYXJ0aWFsIHNlbmRtc2cKTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDMwMjM4OThiN2Q0YWFj NjU5ODdiZDJmNDg1Y2MyMjM5MGFhZTZmNzggXQoKRG8gbm90IHNlbmQgdGhlIG5leHQgbWVzc2Fn ZSBpbiBzZW5kbW1zZyBmb3IgcGFydGlhbCBzZW5kbXNnCmludm9jYXRpb25zLgoKc2VuZG1tc2cg YXNzdW1lcyB0aGF0IGl0IGNhbiBjb250aW51ZSBzZW5kaW5nIHRoZSBuZXh0IG1lc3NhZ2UKd2hl biB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBpbmRpdmlkdWFsIHNlbmRtc2cgaW52b2NhdGlvbnMK aXMgcG9zaXRpdmUuIEl0IHJlc3VsdHMgaW4gY29ycnVwdGluZyB0aGUgZGF0YSBmb3IgVENQLApT Q1RQLCBhbmQgVU5JWCBzdHJlYW1zLgoKRm9yIGV4YW1wbGUsIHNlbmRtbXNnKFtbImFiY2QiXSwg WyJlZmdoIl1dKSBjYW4gcmVzdWx0IGluIGEgc3RyZWFtCm9mICJhZWZnaCIgaWYgdGhlIGZpcnN0 IHNlbmRtc2cgaW52b2NhdGlvbiBzZW5kcyBvbmx5IHRoZSBmaXJzdApieXRlIHdoaWxlIHRoZSBz ZWNvbmQgc2VuZG1zZyBnb2VzIHRocm91Z2guCgpEYXRhZ3JhbSBzb2NrZXRzIGVpdGhlciBzZW5k IHRoZSBlbnRpcmUgZGF0YWdyYW0gb3IgZmFpbCwgc28KdGhpcyBwYXRjaCBhZmZlY3RzIG9ubHkg c29ja2V0cyBvZiB0eXBlIFNPQ0tfU1RSRUFNIGFuZApTT0NLX1NFUVBBQ0tFVC4KCkZpeGVzOiAy MjhlNTQ4ZTYwMjAgKCJuZXQ6IEFkZCBzZW5kbW1zZyBzb2NrZXQgc3lzdGVtIGNhbGwiKQpTaWdu ZWQtb2ZmLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYt Ynk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog TmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBNYWNpZWogxbtl bmN6eWtvd3NraSA8bWF6ZUBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NvY2tldC5jIHwgMiArKwogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9zb2NrZXQuYyBiL25l dC9zb2NrZXQuYwppbmRleCBhMWJkMTYxLi4wM2JjMmMyIDEwMDY0NAotLS0gYS9uZXQvc29ja2V0 LmMKKysrIGIvbmV0L3NvY2tldC5jCkBAIC0yMDQxLDYgKzIwNDEsOCBAQCBpbnQgX19zeXNfc2Vu ZG1tc2coaW50IGZkLCBzdHJ1Y3QgbW1zZ2hkciBfX3VzZXIgKm1tc2csIHVuc2lnbmVkIGludCB2 bGVuLAogCQlpZiAoZXJyKQogCQkJYnJlYWs7CiAJCSsrZGF0YWdyYW1zOworCQlpZiAobXNnX2Rh dGFfbGVmdCgmbXNnX3N5cykpCisJCQlicmVhazsKIAkJY29uZF9yZXNjaGVkKCk7CiAJfQogCi0t IAoyLjQuMTEKCgpGcm9tIDZhYWE5NWUwYmY3MGJiODhmZjRiOTg0ZTQ4NzM2Y2M3NzJlYmYwMWQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxkc2FAY3VtdWx1c25l dHdvcmtzLmNvbT4KRGF0ZTogTW9uLCA3IE5vdiAyMDE2IDEyOjAzOjA5IC0wODAwClN1YmplY3Q6 IFtQQVRDSCAxOS8yOV0gbmV0OiBpY21wX3JvdXRlX2xvb2t1cCBzaG91bGQgdXNlIHJ0IGRldiB0 byBkZXRlcm1pbmUKIEwzIGRvbWFpbgoKWyBVcHN0cmVhbSBjb21taXQgOWQxYTZjNGVhNDNlNDhj Nzg4MGM4NTk3MWMxNzkzOWI1NjgzMmQ4YSBdCgppY21wX3NlbmQgaXMgY2FsbGVkIGluIHJlc3Bv bnNlIHRvIHNvbWUgZXZlbnQuIFRoZSBza2IgbWF5IG5vdCBoYXZlCnRoZSBkZXZpY2Ugc2V0IChz a2ItPmRldiBpcyBOVUxMKSwgYnV0IGl0IGlzIGV4cGVjdGVkIHRvIGhhdmUgYW4gcnQuClVwZGF0 ZSBpY21wX3JvdXRlX2xvb2t1cCB0byB1c2UgdGhlIHJ0IG9uIHRoZSBza2IgdG8gZGV0ZXJtaW5l IEwzCmRvbWFpbi4KCkZpeGVzOiA2MTNkMDliMzBmOGIgKCJuZXQ6IFVzZSBWUkYgZGV2aWNlIGlu ZGV4IGZvciBsb29rdXBzIG9uIFRYIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYUBj dW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaWNtcC5jIHwgNCArKy0tCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2ljbXAuYyBiL25ldC9pcHY0L2ljbXAuYwppbmRleCAzOGFiZTcwLi40ODczNGVlIDEwMDY0 NAotLS0gYS9uZXQvaXB2NC9pY21wLmMKKysrIGIvbmV0L2lwdjQvaWNtcC5jCkBAIC00NzcsNyAr NDc3LDcgQEAgc3RhdGljIHN0cnVjdCBydGFibGUgKmljbXBfcm91dGVfbG9va3VwKHN0cnVjdCBu ZXQgKm5ldCwKIAlmbDQtPmZsb3dpNF9wcm90byA9IElQUFJPVE9fSUNNUDsKIAlmbDQtPmZsNF9p Y21wX3R5cGUgPSB0eXBlOwogCWZsNC0+Zmw0X2ljbXBfY29kZSA9IGNvZGU7Ci0JZmw0LT5mbG93 aTRfb2lmID0gbDNtZGV2X21hc3Rlcl9pZmluZGV4KHNrYl9pbi0+ZGV2KTsKKwlmbDQtPmZsb3dp NF9vaWYgPSBsM21kZXZfbWFzdGVyX2lmaW5kZXgoc2tiX2RzdChza2JfaW4pLT5kZXYpOwogCiAJ c2VjdXJpdHlfc2tiX2NsYXNzaWZ5X2Zsb3coc2tiX2luLCBmbG93aTRfdG9fZmxvd2koZmw0KSk7 CiAJcnQgPSBfX2lwX3JvdXRlX291dHB1dF9rZXlfaGFzaChuZXQsIGZsNCwKQEAgLTUwMiw3ICs1 MDIsNyBAQCBzdGF0aWMgc3RydWN0IHJ0YWJsZSAqaWNtcF9yb3V0ZV9sb29rdXAoc3RydWN0IG5l dCAqbmV0LAogCWlmIChlcnIpCiAJCWdvdG8gcmVsb29rdXBfZmFpbGVkOwogCi0JaWYgKGluZXRf YWRkcl90eXBlX2Rldl90YWJsZShuZXQsIHNrYl9pbi0+ZGV2LAorCWlmIChpbmV0X2FkZHJfdHlw ZV9kZXZfdGFibGUobmV0LCBza2JfZHN0KHNrYl9pbiktPmRldiwKIAkJCQkgICAgIGZsNF9kZWMu c2FkZHIpID09IFJUTl9MT0NBTCkgewogCQlydDIgPSBfX2lwX3JvdXRlX291dHB1dF9rZXkobmV0 LCAmZmw0X2RlYyk7CiAJCWlmIChJU19FUlIocnQyKSkKLS0gCjIuNC4xMQoKCkZyb20gMTJhZWRh ZmEwNmJmOTJjM2FmZGIwMmY1ZTgwNTVlMDE4YjRiZjNiNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDkg Tm92IDIwMTYgMTY6MDQ6NDYgLTA4MDAKU3ViamVjdDogW1BBVENIIDIwLzI5XSBuZXQ6IF9fc2ti X2Zsb3dfZGlzc2VjdCgpIG11c3QgY2FwIGl0cyByZXR1cm4gdmFsdWUKClsgVXBzdHJlYW0gY29t bWl0IDM0ZmFkNTRjMjUzN2Y3Yzk5ZDA3Mzc1ZTUwY2IzMGFhM2MyM2JkODMgXQoKQWZ0ZXIgVG9t IHBhdGNoLCB0aG9mZiBmaWVsZCBjb3VsZCBwb2ludCBwYXN0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZl ciwKdGhpcyBjb3VsZCBmb29sIHNvbWUgY2FsbGVycy4KCklmIGFuIHNrYiB3YXMgcHJvdmlkZWQs IHNrYi0+bGVuIHNob3VsZCBiZSB0aGUgdXBwZXIgbGltaXQuCklmIG5vdCwgaGxlbiBpcyBzdXBw b3NlZCB0byBiZSB0aGUgdXBwZXIgbGltaXQuCgpGaXhlczogYTZlNTQ0YjBhODhiICgiZmxvd19k aXNzZWN0b3I6IEp1bXAgdG8gZXhpdCBjb2RlIGluIF9fc2tiX2Zsb3dfZGlzc2VjdCIpClNpZ25l ZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6 IFlpYmluIFlhbmcgPHlpYnlhbmdAY2lzY28uY29tCkFja2VkLWJ5OiBBbGV4YW5kZXIgRHV5Y2sg PGFsZXhhbmRlci5oLmR1eWNrQGludGVsLmNvbT4KQWNrZWQtYnk6IFdpbGxlbSBkZSBCcnVpam4g PHdpbGxlbWJAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtl cm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jIHwgMTEgKysrKysrKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYyBiL25ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMK aW5kZXggNTI3NDJhMC4uNTU1MGE4NiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmxvd19kaXNzZWN0 b3IuYworKysgYi9uZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jCkBAIC0xMTgsNyArMTE4LDcgQEAg Ym9vbCBfX3NrYl9mbG93X2Rpc3NlY3QoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlzdHJ1 Y3QgZmxvd19kaXNzZWN0b3Jfa2V5X3RhZ3MgKmtleV90YWdzOwogCXN0cnVjdCBmbG93X2Rpc3Nl Y3Rvcl9rZXlfa2V5aWQgKmtleV9rZXlpZDsKIAl1OCBpcF9wcm90byA9IDA7Ci0JYm9vbCByZXQg PSBmYWxzZTsKKwlib29sIHJldDsKIAogCWlmICghZGF0YSkgewogCQlkYXRhID0gc2tiLT5kYXRh OwpAQCAtNDgxLDEyICs0ODEsMTcgQEAgaXBfcHJvdG9fYWdhaW46CiBvdXRfZ29vZDoKIAlyZXQg PSB0cnVlOwogCi1vdXRfYmFkOgorCWtleV9jb250cm9sLT50aG9mZiA9ICh1MTYpbmhvZmY7Citv dXQ6CiAJa2V5X2Jhc2ljLT5uX3Byb3RvID0gcHJvdG87CiAJa2V5X2Jhc2ljLT5pcF9wcm90byA9 IGlwX3Byb3RvOwotCWtleV9jb250cm9sLT50aG9mZiA9ICh1MTYpbmhvZmY7CiAKIAlyZXR1cm4g cmV0OworCitvdXRfYmFkOgorCXJldCA9IGZhbHNlOworCWtleV9jb250cm9sLT50aG9mZiA9IG1p bl90KHUxNiwgbmhvZmYsIHNrYiA/IHNrYi0+bGVuIDogaGxlbik7CisJZ290byBvdXQ7CiB9CiBF WFBPUlRfU1lNQk9MKF9fc2tiX2Zsb3dfZGlzc2VjdCk7CiAKLS0gCjIuNC4xMQoKCkZyb20gMWFl MzE2ZmQzYTVkMTgxOWZlMGExZTdhNDgxNTI4YTllY2ZkOWUyNCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogU3RlcGhlbiBTdXJ5YXB1dHJhIExpbiA8c3RlcGhlbi5zdXJ5YXB1dHJhLmxp bkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTAgTm92IDIwMTYgMTE6MTY6MTUgLTA1MDAKU3ViamVj dDogW1BBVENIIDIxLzI5XSBpcHY0OiB1c2UgbmV3X2d3IGZvciByZWRpcmVjdCBuZWlnaCBsb29r dXAKClsgVXBzdHJlYW0gY29tbWl0IDk2OTQ0N2YyMjZiNDUxYzQ1M2RkYzgzY2FjNjE0NGVhZWFj NmYyZTMgXQoKSW4gdjIuNiwgaXBfcnRfcmVkaXJlY3QoKSBjYWxscyBhcnBfYmluZF9uZWlnaGJv dXIoKSB3aGljaCByZXR1cm5zIDAKYW5kIHRoZW4gdGhlIHN0YXRlIG9mIHRoZSBuZWlnaCBmb3Ig dGhlIG5ld19ndyBpcyBjaGVja2VkLiBJZiB0aGUgc3RhdGUKaXNuJ3QgdmFsaWQgdGhlbiB0aGUg cmVkaXJlY3RlZCByb3V0ZSBpcyBkZWxldGVkLiBUaGlzIGJlaGF2aW9yIGlzCm1haW50YWluZWQg dXAgdG8gdjMuNS43IGJ5IGNoZWNrX3BlZXJfcmVkaXJlY3QoKSBiZWNhdXNlIHJ0LT5ydF9nYXRl d2F5CmlzIGFzc2lnbmVkIHRvIHBlZXItPnJlZGlyZWN0X2xlYXJuZWQuYTQgYmVmb3JlIGNhbGxp bmcKaXB2NF9uZWlnaF9sb29rdXAoKS4KCkFmdGVyIGNvbW1pdCA1OTQzNjM0ZmM1NTkgKCJpcHY0 OiBNYWludGFpbiByZWRpcmVjdCBhbmQgUE1UVSBpbmZvIGluCnN0cnVjdCBydGFibGUgYWdhaW4u IiksIGlwdjRfbmVpZ2hfbG9va3VwKCkgaXMgcGVyZm9ybWVkIHdpdGhvdXQgdGhlCnJ0X2dhdGV3 YXkgYXNzaWduZWQgdG8gdGhlIG5ld19ndy4gSW4gdGhlIGNhc2Ugd2hlbiBydF9nYXRld2F5IChv bGRfZ3cpCmlzbid0IHplcm8sIHRoZSBmdW5jdGlvbiB1c2VzIGl0IGFzIHRoZSBrZXkuIFRoZSBu ZWlnaCBpcyBtb3N0IGxpa2VseQp2YWxpZCBzaW5jZSB0aGUgb2xkX2d3IGlzIHRoZSBvbmUgdGhh dCBzZW5kcyB0aGUgSUNNUCByZWRpcmVjdCBtZXNzYWdlLgpUaGVuIHRoZSBuZXdfZ3cgaXMgYXNz aWduZWQgdG8gZmliX25oX2V4Y2VwdGlvbi4gVGhlIHByb2JsZW0gaXM6IHRoZQpuZXdfZ3cgQVJQ IG1heSBuZXZlciBnZXRzIHJlc29sdmVkIGFuZCB0aGUgdHJhZmZpYyBpcyBibGFja2hvbGVkLgoK U28sIHVzZSB0aGUgbmV3X2d3IGZvciBuZWlnaCBsb29rdXAuCgpDaGFuZ2VzIGZyb20gdjE6CiAt IHVzZSBfX2lwdjRfbmVpZ2hfbG9va3VwIGluc3RlYWQgKHBlciBFcmljIER1bWF6ZXQpLgoKRml4 ZXM6IDU5NDM2MzRmYzU1OSAoImlwdjQ6IE1haW50YWluIHJlZGlyZWN0IGFuZCBQTVRVIGluZm8g aW4gc3RydWN0IHJ0YWJsZSBhZ2Fpbi4iKQpTaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFN1cnlhcHV0 cmEgTGluIDxzc3VyeWFAaWVlZS5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9yb3V0ZS5jIHwgNCArKystCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXggNjJjM2VkMC4uMmYyM2Vm MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYworKysgYi9uZXQvaXB2NC9yb3V0ZS5jCkBA IC03NTMsNyArNzUzLDkgQEAgc3RhdGljIHZvaWQgX19pcF9kb19yZWRpcmVjdChzdHJ1Y3QgcnRh YmxlICpydCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGZsb3cKIAkJCWdvdG8gcmVqZWN0 X3JlZGlyZWN0OwogCX0KIAotCW4gPSBpcHY0X25laWdoX2xvb2t1cCgmcnQtPmRzdCwgTlVMTCwg Jm5ld19ndyk7CisJbiA9IF9faXB2NF9uZWlnaF9sb29rdXAocnQtPmRzdC5kZXYsIG5ld19ndyk7 CisJaWYgKCFuKQorCQluID0gbmVpZ2hfY3JlYXRlKCZhcnBfdGJsLCAmbmV3X2d3LCBydC0+ZHN0 LmRldik7CiAJaWYgKCFJU19FUlIobikpIHsKIAkJaWYgKCEobi0+bnVkX3N0YXRlICYgTlVEX1ZB TElEKSkgewogCQkJbmVpZ2hfZXZlbnRfc2VuZChuLCBOVUxMKTsKLS0gCjIuNC4xMQoKCkZyb20g MTliZDYxYTI1NDdhMWNlYWQ5OWRlNDExOTFjZTZjODhmNmUyMDM4ZiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBU aHUsIDEwIE5vdiAyMDE2IDEzOjEyOjM1IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMi8yOV0gdGNw OiB0YWtlIGNhcmUgb2YgdHJ1bmNhdGlvbnMgZG9uZSBieSBza19maWx0ZXIoKQoKWyBVcHN0cmVh bSBjb21taXQgYWM2ZTc4MDA3MGUzMGU0YzM1YmQzOTVhY2ZlOTE5MWU2MjY4YmRkMyBdCgpXaXRo IHN5emthbGxlciBoZWxwLCBNYXJjbyBHcmFzc2kgZm91bmQgYSBidWcgaW4gVENQIHN0YWNrLApj cmFzaGluZyBpbiB0Y3BfY29sbGFwc2UoKQoKUm9vdCBjYXVzZSBpcyB0aGF0IHNrX2ZpbHRlcigp IGNhbiB0cnVuY2F0ZSB0aGUgaW5jb21pbmcgc2tiLApidXQgVENQIHN0YWNrIHdhcyBub3QgcmVh bGx5IGV4cGVjdGluZyB0aGlzIHRvIGhhcHBlbi4KSXQgcHJvYmFibHkgd2FzIGV4cGVjdGluZyBh IHNpbXBsZSBEUk9QIG9yIEFDQ0VQVCBiZWhhdmlvci4KCldlIGZpcnN0IG5lZWQgdG8gbWFrZSBz dXJlIG5vIHBhcnQgb2YgVENQIGhlYWRlciBjb3VsZCBiZSByZW1vdmVkLgpUaGVuIHdlIG5lZWQg dG8gYWRqdXN0IFRDUF9TS0JfQ0Ioc2tiKS0+ZW5kX3NlcQoKTWFueSB0aGFua3MgdG8gc3l6a2Fs bGVyIHRlYW0gYW5kIE1hcmNvIGZvciBnaXZpbmcgdXMgYSByZXByb2R1Y2VyLgoKU2lnbmVkLW9m Zi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogTWFy Y28gR3Jhc3NpIDxtYXJjby5ncmFAZ21haWwuY29tPgpSZXBvcnRlZC1ieTogVmxhZGlzIERyb25v diA8dmRyb25vdkByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvdGNwLmggICB8ICAxICsKIG5ldC9p cHY0L3RjcF9pcHY0LmMgfCAxOSArKysrKysrKysrKysrKysrKystCiBuZXQvaXB2Ni90Y3BfaXB2 Ni5jIHwgIDYgKysrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90 Y3AuaAppbmRleCA3NzE3MzAyLi4wZGU2OTg5IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90Y3Au aAorKysgYi9pbmNsdWRlL25ldC90Y3AuaApAQCAtMTE2NCw2ICsxMTY0LDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIHRjcF9wcmVxdWV1ZV9pbml0KHN0cnVjdCB0Y3Bfc29jayAqdHApCiB9CiAKIGJv b2wgdGNwX3ByZXF1ZXVlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7Citp bnQgdGNwX2ZpbHRlcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpOwogCiAj dW5kZWYgU1RBVEVfVFJBQ0UKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lwdjQuYyBiL25l dC9pcHY0L3RjcF9pcHY0LmMKaW5kZXggNzE1OGQ0Zi4uN2IyMzVmYSAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvdGNwX2lwdjQuYworKysgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCkBAIC0xNTM3LDYgKzE1 MzcsMjEgQEAgYm9vbCB0Y3BfcHJlcXVldWUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogfQogRVhQT1JUX1NZTUJPTCh0Y3BfcHJlcXVldWUpOwogCitpbnQgdGNwX2ZpbHRl cihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCit7CisJc3RydWN0IHRjcGhk ciAqdGggPSAoc3RydWN0IHRjcGhkciAqKXNrYi0+ZGF0YTsKKwl1bnNpZ25lZCBpbnQgZWF0ZW4g PSBza2ItPmxlbjsKKwlpbnQgZXJyOworCisJZXJyID0gc2tfZmlsdGVyX3RyaW1fY2FwKHNrLCBz a2IsIHRoLT5kb2ZmICogNCk7CisJaWYgKCFlcnIpIHsKKwkJZWF0ZW4gLT0gc2tiLT5sZW47CisJ CVRDUF9TS0JfQ0Ioc2tiKS0+ZW5kX3NlcSAtPSBlYXRlbjsKKwl9CisJcmV0dXJuIGVycjsKK30K K0VYUE9SVF9TWU1CT0wodGNwX2ZpbHRlcik7CisKIC8qCiAgKglGcm9tIHRjcF9pbnB1dC5jCiAg Ki8KQEAgLTE2NDgsOCArMTY2MywxMCBAQCBwcm9jZXNzOgogCiAJbmZfcmVzZXQoc2tiKTsKIAot CWlmIChza19maWx0ZXIoc2ssIHNrYikpCisJaWYgKHRjcF9maWx0ZXIoc2ssIHNrYikpCiAJCWdv dG8gZGlzY2FyZF9hbmRfcmVsc2U7CisJdGggPSAoY29uc3Qgc3RydWN0IHRjcGhkciAqKXNrYi0+ ZGF0YTsKKwlpcGggPSBpcF9oZHIoc2tiKTsKIAogCXNrYi0+ZGV2ID0gTlVMTDsKIApkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKaW5kZXggZmM2 NzgyMi4uYWY2YTA5ZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdGNwX2lwdjYuYworKysgYi9uZXQv aXB2Ni90Y3BfaXB2Ni5jCkBAIC0xMjI4LDcgKzEyMjgsNyBAQCBzdGF0aWMgaW50IHRjcF92Nl9k b19yY3Yoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCWlmIChza2ItPnBy b3RvY29sID09IGh0b25zKEVUSF9QX0lQKSkKIAkJcmV0dXJuIHRjcF92NF9kb19yY3Yoc2ssIHNr Yik7CiAKLQlpZiAoc2tfZmlsdGVyKHNrLCBza2IpKQorCWlmICh0Y3BfZmlsdGVyKHNrLCBza2Ip KQogCQlnb3RvIGRpc2NhcmQ7CiAKIAkvKgpAQCAtMTQ1NSw4ICsxNDU1LDEwIEBAIHByb2Nlc3M6 CiAJaWYgKHRjcF92Nl9pbmJvdW5kX21kNV9oYXNoKHNrLCBza2IpKQogCQlnb3RvIGRpc2NhcmRf YW5kX3JlbHNlOwogCi0JaWYgKHNrX2ZpbHRlcihzaywgc2tiKSkKKwlpZiAodGNwX2ZpbHRlcihz aywgc2tiKSkKIAkJZ290byBkaXNjYXJkX2FuZF9yZWxzZTsKKwl0aCA9IChjb25zdCBzdHJ1Y3Qg dGNwaGRyICopc2tiLT5kYXRhOworCWhkciA9IGlwdjZfaGRyKHNrYik7CiAKIAlza2ItPmRldiA9 IE5VTEw7CiAKLS0gCjIuNC4xMQoKCkZyb20gZWQyYTE2MTQ1NGFmMzk4Mjk2YTVhYmUzYTEyZjc5 YzMwYTczZTMxYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWlrZSBGcnlzaW5nZXIg PHZhcGllckBnZW50b28ub3JnPgpEYXRlOiBUaHUsIDEwIE5vdiAyMDE2IDE5OjA4OjM5IC0wNTAw ClN1YmplY3Q6IFtQQVRDSCAyMy8yOV0gUmV2ZXJ0ICJpbmNsdWRlL3VhcGkvbGludXgvYXRtX3ph dG0uaDogaW5jbHVkZQogbGludXgvdGltZS5oIgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog OGJpdAoKWyBVcHN0cmVhbSBjb21taXQgN2I1Yjc0ZWZjY2EwMGYxNWMyYWVjMWRjNzE3NWJmZTM0 YjZlYzY0MyBdCgpUaGlzIHJldmVydHMgY29tbWl0IGNmMDA3MTNhNjU1ZCAoImluY2x1ZGUvdWFw aS9saW51eC9hdG1femF0bS5oOiBpbmNsdWRlCmxpbnV4L3RpbWUuaCIpLgoKVGhpcyBhdHRlbXB0 ZWQgdG8gZml4IHVzZXJzcGFjZSBicmVha2FnZSB0aGF0IG5vIGxvbmdlciBleGlzdGVkIHdoZW4K dGhlIHBhdGNoIHdhcyBtZXJnZWQuICBBbG1vc3Qgb25lIHllYXIgZWFybGllciwgY29tbWl0IDcw YmEwN2I2NzViNQooImF0bTogcmVtb3ZlICdzdHJ1Y3QgemF0bV90X2hpc3QnIikgZGVsZXRlZCB0 aGUgc3RydWN0IGluIHF1ZXN0aW9uLgoKQWZ0ZXIgdGhpcyBwYXRjaCB3YXMgbWVyZ2VkLCB3ZSBu b3cgaGF2ZSB0byBkZWFsIHdpdGggcGVvcGxlIGJlaW5nCnVuYWJsZSB0byBpbmNsdWRlIHRoaXMg aGVhZGVyIGluIGNvbmp1bmN0aW9uIHdpdGggc3RhbmRhcmQgQyBsaWJyYXJ5CmhlYWRlcnMgbGlr ZSBzdGRsaWIuaCAod2hpY2ggbGludXgtYXRtIGRvZXMpLiAgRXhhbXBsZSBicmVha2FnZToKeDg2 XzY0LXBjLWxpbnV4LWdudS1nY2MgLURIQVZFX0NPTkZJR19IIC1JLiAtSS4uLy4uIC1JLi8uLi9x MjkzMSAtSS4vLi4vc2FhbCBcCgktSS4gIC1EQ1BQRkxBR1NfVEVTVCAgLUkuLi8uLi9zcmMvaW5j bHVkZSAtTzIgLW1hcmNoPW5hdGl2ZSAtcGlwZSAtZyBcCgktZnJlY29yZC1nY2Mtc3dpdGNoZXMg LWZyZXBvcnQtYnVnIC1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb24gXAoJLVdub25udWxs IC1Xc3RyaWN0LWFsaWFzaW5nIC1XcGFyZW50aGVzZXMgLVdhcnJheS1ib3VuZHMgXAoJLVdmcmVl LW5vbmhlYXAtb2JqZWN0IC1XcmV0dXJuLWxvY2FsLWFkZHIgLWZuby1zdHJpY3QtYWxpYXNpbmcg LVdhbGwgXAoJLVdzaGFkb3cgLVdwb2ludGVyLWFyaXRoIC1Xd3JpdGUtc3RyaW5ncyAtV3N0cmlj dC1wcm90b3R5cGVzIC1jIHpudHVuZS5jCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvdXNyL2luY2x1 ZGUvbGludXgvYXRtX3phdG0uaDoxNzowLAogICAgICAgICAgICAgICAgIGZyb20gem50dW5lLmM6 MTc6Ci91c3IvaW5jbHVkZS9saW51eC90aW1lLmg6OTo4OiBlcnJvcjogcmVkZWZpbml0aW9uIG9m IOKAmHN0cnVjdCB0aW1lc3BlY+KAmQogc3RydWN0IHRpbWVzcGVjIHsKICAgICAgICBeCkluIGZp bGUgaW5jbHVkZWQgZnJvbSAvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oOjQzOjAsCiAgICAgICAg ICAgICAgICAgZnJvbSAvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmg6MjE5LAogICAgICAgICAgICAg ICAgIGZyb20gL3Vzci9pbmNsdWRlL3N0ZGxpYi5oOjMxNCwKICAgICAgICAgICAgICAgICBmcm9t IHpudHVuZS5jOjk6Ci91c3IvaW5jbHVkZS90aW1lLmg6MTIwOjg6IG5vdGU6IG9yaWdpbmFsbHkg ZGVmaW5lZCBoZXJlCiBzdHJ1Y3QgdGltZXNwZWMKICAgICAgICBeCgpTaWduZWQtb2ZmLWJ5OiBN aWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkFja2VkLWJ5OiBNaWtrbyBSYXBlbGkg PG1pa2tvLnJhcGVsaUBpa2kuZmk+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL3VhcGkvbGludXgvYXRtX3phdG0uaCB8IDEg LQogMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvbGludXgvYXRtX3phdG0uaCBiL2luY2x1ZGUvdWFwaS9saW51eC9hdG1femF0bS5oCmluZGV4 IDVjZDRkNGQuLjljOWM2YWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9hdG1femF0 bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9hdG1femF0bS5oCkBAIC0xNCw3ICsxNCw2IEBA CiAKICNpbmNsdWRlIDxsaW51eC9hdG1hcGkuaD4KICNpbmNsdWRlIDxsaW51eC9hdG1pb2MuaD4K LSNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAKICNkZWZpbmUgWkFUTV9HRVRQT09MCV9JT1coJ2En LEFUTUlPQ19TQVJQUlYrMSxzdHJ1Y3QgYXRtaWZfc2lvYykKIAkJCQkJCS8qIGdldCBwb29sIHN0 YXRpc3RpY3MgKi8KLS0gCjIuNC4xMQoKCkZyb20gN2IxM2M4ODJhM2Q0ZjI3OTc4YmQ2MzgyZjdi YThkNjE4Njc5Y2VhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWW90YW0gR2lnaSA8 eW90YW1nQG1lbGxhbm94LmNvbT4KRGF0ZTogRnJpLCAxMSBOb3YgMjAxNiAxNjozNDoyNSArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMjQvMjldIG1seHN3OiBzcGVjdHJ1bTogRml4IHJlZmNvdW50IGJ1 ZyBvbiBzcGFuIGVudHJpZXMKClsgVXBzdHJlYW0gY29tbWl0IDJkNjQ0ZDRjNzUwNjY0NmY5YzRh MmFmY2ViN2ZkNWYwMzBiYzBjOWYgXQoKV2hlbiBiaW5kaW5nIHBvcnQgdG8gYSBuZXdseSBjcmVh dGVkIHNwYW4gZW50cnksIGl0cyByZWZjb3VudCBpcwppbml0aWFsaXplZCB0byB6ZXJvIGV2ZW4g dGhvdWdoIGl0IGhhcyBhIGJvdW5kIHBvcnQuIFRoYXQgbGVhZHMKdG8gdW5leHBlY3RlZCBiZWhh dmlvdXIgd2hlbiB0aGUgdXNlciB0cmllcyB0byBkZWxldGUgdGhhdCBwb3J0CmZyb20gdGhlIHNw YW4gZW50cnkuCgpGaXggdGhpcyBieSBpbml0aWFsaXppbmcgdGhlIHJlZmVyZW5jZSBjb3VudCB0 byAxLgoKQWxzbyBhZGQgYSB3YXJuaW5nIHRvIHB1dCBmdW5jdGlvbi4KCkZpeGVzOiA3NjNiNGI3 MGFmY2QgKCJtbHhzdzogc3BlY3RydW06IEFkZCBzdXBwb3J0IGluIG1hdGNoYWxsIG1pcnJvciBU QyBvZmZsb2FkaW5nIikKU2lnbmVkLW9mZi1ieTogWW90YW0gR2lnaSA8eW90YW1nQG1lbGxhbm94 LmNvbT4KUmV2aWV3ZWQtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KU2ln bmVkLW9mZi1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMKaW5kZXggZDQ4ODczYi4uNWNkYzk2YiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCkBAIC0y MzEsNyArMjMxLDcgQEAgbWx4c3dfc3Bfc3Bhbl9lbnRyeV9jcmVhdGUoc3RydWN0IG1seHN3X3Nw X3BvcnQgKnBvcnQpCiAKIAlzcGFuX2VudHJ5LT51c2VkID0gdHJ1ZTsKIAlzcGFuX2VudHJ5LT5p ZCA9IGluZGV4OwotCXNwYW5fZW50cnktPnJlZl9jb3VudCA9IDA7CisJc3Bhbl9lbnRyeS0+cmVm X2NvdW50ID0gMTsKIAlzcGFuX2VudHJ5LT5sb2NhbF9wb3J0ID0gbG9jYWxfcG9ydDsKIAlyZXR1 cm4gc3Bhbl9lbnRyeTsKIH0KQEAgLTI2OCw2ICsyNjgsNyBAQCBzdHJ1Y3QgbWx4c3dfc3Bfc3Bh bl9lbnRyeSAqbWx4c3dfc3Bfc3Bhbl9lbnRyeV9nZXQoc3RydWN0IG1seHN3X3NwX3BvcnQgKnBv cnQpCiAKIAlzcGFuX2VudHJ5ID0gbWx4c3dfc3Bfc3Bhbl9lbnRyeV9maW5kKHBvcnQpOwogCWlm IChzcGFuX2VudHJ5KSB7CisJCS8qIEFscmVhZHkgZXhpc3RzLCBqdXN0IHRha2UgYSByZWZlcmVu Y2UgKi8KIAkJc3Bhbl9lbnRyeS0+cmVmX2NvdW50Kys7CiAJCXJldHVybiBzcGFuX2VudHJ5Owog CX0KQEAgLTI3OCw2ICsyNzksNyBAQCBzdHJ1Y3QgbWx4c3dfc3Bfc3Bhbl9lbnRyeSAqbWx4c3df c3Bfc3Bhbl9lbnRyeV9nZXQoc3RydWN0IG1seHN3X3NwX3BvcnQgKnBvcnQpCiBzdGF0aWMgaW50 IG1seHN3X3NwX3NwYW5fZW50cnlfcHV0KHN0cnVjdCBtbHhzd19zcCAqbWx4c3dfc3AsCiAJCQkJ ICAgc3RydWN0IG1seHN3X3NwX3NwYW5fZW50cnkgKnNwYW5fZW50cnkpCiB7CisJV0FSTl9PTigh c3Bhbl9lbnRyeS0+cmVmX2NvdW50KTsKIAlpZiAoLS1zcGFuX2VudHJ5LT5yZWZfY291bnQgPT0g MCkKIAkJbWx4c3dfc3Bfc3Bhbl9lbnRyeV9kZXN0cm95KG1seHN3X3NwLCBzcGFuX2VudHJ5KTsK IAlyZXR1cm4gMDsKLS0gCjIuNC4xMQoKCkZyb20gY2IzZWQ3Zjc5YWMwZTcxNjJmYTAxZDU2MWIx YTA0NGFiNWM3NjgxYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJrYWRpIFNoYXJz aGV2c2t5IDxhcmthZGlzQG1lbGxhbm94LmNvbT4KRGF0ZTogRnJpLCAxMSBOb3YgMjAxNiAxNjoz NDoyNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMjldIG1seHN3OiBzcGVjdHJ1bV9yb3V0ZXI6 IENvcnJlY3RseSBkdW1wIG5laWdoYm91cgogYWN0aXZpdHkKClsgVXBzdHJlYW0gY29tbWl0IDQy Y2RiMzM4ZjQwYTk4ZTY1NThiYWUzNTQ1NmZlODZiNmU5MGUxZWYgXQoKVGhlIGRldmljZSdzIG5l aWdoYm91ciB0YWJsZSBpcyBwZXJpb2RpY2FsbHkgZHVtcGVkIGluIG9yZGVyIHRvIHVwZGF0ZQp0 aGUga2VybmVsIGFib3V0IGFjdGl2ZSBuZWlnaGJvdXJzLiBBIHNpbmdsZSBkdW1wIHNlc3Npb24g bWF5IHNwYW4KbXVsdGlwbGUgcXVlcmllcywgdW50aWwgdGhlIHJlc3BvbnNlIGNhcnJpZXMgbGVz cyByZWNvcmRzIHRoYW4gcmVxdWVzdGVkCm9yIHdoZW4gYSByZWNvcmQgKGNhbiBjb250YWluIHVw IHRvIGZvdXIgbmVpZ2hib3VyIGVudHJpZXMpIGlzIG5vdCBmdWxsLgpDdXJyZW50IGNvZGUgc3Rv cHMgdGhlIHNlc3Npb24gd2hlbiB0aGUgbnVtYmVyIG9mIHJldHVybmVkIHJlY29yZHMgaXMKemVy bywgd2hpY2ggY2FuIHJlc3VsdCBpbiBpbmZpbml0ZSBsb29wIGluIGNhc2Ugb2YgaGlnaCBwYWNr ZXQgcmF0ZS4KCkZpeCB0aGlzIGJ5IHN0b3BwaW5nIHRoZSBzZXNzaW9uIGFjY29yZGluZyB0byB0 aGUgYWJvdmUgbG9naWMuCgpGaXhlczogYzcyM2M3MzVmYTZiICgibWx4c3c6IHNwZWN0cnVtX3Jv dXRlcjogUGVyaW9kaWNhbGx5IHVwZGF0ZSB0aGUga2VybmVsJ3MgbmVpZ2ggdGFibGUiKQpTaWdu ZWQtb2ZmLWJ5OiBBcmthZGkgU2hhcnNoZXZza3kgPGFya2FkaXNAbWVsbGFub3guY29tPgpTaWdu ZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYyAgfCAyMiArKysrKysrKysrKysrKysrKysrKyst CiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRl ci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVy LmMKaW5kZXggM2Y1YzUxZC4uNjI1MTRiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMKQEAgLTc3Nyw2ICs3NzcsMjYg QEAgc3RhdGljIHZvaWQgbWx4c3dfc3Bfcm91dGVyX25laWdoX3JlY19wcm9jZXNzKHN0cnVjdCBt bHhzd19zcCAqbWx4c3dfc3AsCiAJfQogfQogCitzdGF0aWMgYm9vbCBtbHhzd19zcF9yb3V0ZXJf cmF1aHRkX2lzX2Z1bGwoY2hhciAqcmF1aHRkX3BsKQoreworCXU4IG51bV9yZWMsIGxhc3RfcmVj X2luZGV4LCBudW1fZW50cmllczsKKworCW51bV9yZWMgPSBtbHhzd19yZWdfcmF1aHRkX251bV9y ZWNfZ2V0KHJhdWh0ZF9wbCk7CisJbGFzdF9yZWNfaW5kZXggPSBudW1fcmVjIC0gMTsKKworCWlm IChudW1fcmVjIDwgTUxYU1dfUkVHX1JBVUhURF9SRUNfTUFYX05VTSkKKwkJcmV0dXJuIGZhbHNl OworCWlmIChtbHhzd19yZWdfcmF1aHRkX3JlY190eXBlX2dldChyYXVodGRfcGwsIGxhc3RfcmVj X2luZGV4KSA9PQorCSAgICBNTFhTV19SRUdfUkFVSFREX1RZUEVfSVBWNikKKwkJcmV0dXJuIHRy dWU7CisKKwludW1fZW50cmllcyA9IG1seHN3X3JlZ19yYXVodGRfaXB2NF9yZWNfbnVtX2VudHJp ZXNfZ2V0KHJhdWh0ZF9wbCwKKwkJCQkJCQkJbGFzdF9yZWNfaW5kZXgpOworCWlmICgrK251bV9l bnRyaWVzID09IE1MWFNXX1JFR19SQVVIVERfSVBWNF9FTlRfUEVSX1JFQykKKwkJcmV0dXJuIHRy dWU7CisJcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgaW50IG1seHN3X3NwX3JvdXRlcl9uZWln aHNfdXBkYXRlX3JhdWh0ZChzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwKQogewogCWNoYXIgKnJh dWh0ZF9wbDsKQEAgLTgwMyw3ICs4MjMsNyBAQCBzdGF0aWMgaW50IG1seHN3X3NwX3JvdXRlcl9u ZWlnaHNfdXBkYXRlX3JhdWh0ZChzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwKQogCQlmb3IgKGkg PSAwOyBpIDwgbnVtX3JlYzsgaSsrKQogCQkJbWx4c3dfc3Bfcm91dGVyX25laWdoX3JlY19wcm9j ZXNzKG1seHN3X3NwLCByYXVodGRfcGwsCiAJCQkJCQkJICBpKTsKLQl9IHdoaWxlIChudW1fcmVj KTsKKwl9IHdoaWxlIChtbHhzd19zcF9yb3V0ZXJfcmF1aHRkX2lzX2Z1bGwocmF1aHRkX3BsKSk7 CiAJcnRubF91bmxvY2soKTsKIAogCWtmcmVlKHJhdWh0ZF9wbCk7Ci0tIAoyLjQuMTEKCgpGcm9t IDgwOGYzYzZkYWIzYmExOTE3NWE0YzgzZmY1ZjRmYmE0N2EwMTllOWYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEJhb3F1YW4gSGUgPGJoZUByZWRoYXQuY29tPgpEYXRlOiBTdW4sIDEz IE5vdiAyMDE2IDEzOjAxOjMyICswODAwClN1YmplY3Q6IFtQQVRDSCAyNi8yOV0gUmV2ZXJ0ICJi bngyOiBSZXNldCBkZXZpY2UgZHVyaW5nIGRyaXZlcgogaW5pdGlhbGl6YXRpb24iCgpbIFVwc3Ry ZWFtIGNvbW1pdCA1ZDBkNGI5MWJmNjI3ZjE0Zjk1MTY3YjczOGQ1MjQxNTZjOWQ0NDBiIF0KClRo aXMgcmV2ZXJ0cyBjb21taXQgM2UxYmU3YWQyZDM4YzZiZDZhZWVmOTZkZjliZDBhNzgyMmY0ZTUx Yy4KCldoZW4gcGVvcGxlIGJ1aWxkIGJueDIgZHJpdmVyIGludG8ga2VybmVsLCBpdCB3aWxsIGZh aWwgdG8gZGV0ZWN0CmFuZCBsb2FkIGZpcm13YXJlIGJlY2F1c2UgZmlybXdhcmUgaXMgY29udGFp bmVkIGluIGluaXRyYW1mcyBhbmQKaW5pdHJhbWZzIGhhcyBub3QgYmVlbiB1bmNvbXByZXNzZWQg eWV0IGR1cmluZyBkb19pbml0Y2FsbHMuIFNvCnJldmVydCBjb21taXQgM2UxYmU3YSBhbmQgd29y ayBvdXQgYSBuZXcgd2F5IGluIHRoZSBsYXRlciBwYXRjaC4KClNpZ25lZC1vZmYtYnk6IEJhb3F1 YW4gSGUgPGJoZUByZWRoYXQuY29tPgpBY2tlZC1ieTogUGF1bCBNZW56ZWwgPHBtZW56ZWxAbW9s Z2VuLm1wZy5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDIuYyB8IDEyICsr KysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyLmMKaW5kZXggNTA1Y2VhZi4uOGZjM2Yz YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54Mi5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDIuYwpAQCAtNjM1Niw2ICs2MzU2LDEw IEBAIGJueDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBibngyICpicCA9 IG5ldGRldl9wcml2KGRldik7CiAJaW50IHJjOwogCisJcmMgPSBibngyX3JlcXVlc3RfZmlybXdh cmUoYnApOworCWlmIChyYyA8IDApCisJCWdvdG8gb3V0OworCiAJbmV0aWZfY2Fycmllcl9vZmYo ZGV2KTsKIAogCWJueDJfZGlzYWJsZV9pbnQoYnApOwpAQCAtNjQyNCw2ICs2NDI4LDcgQEAgb3Bl bl9lcnI6CiAJYm54Ml9mcmVlX2lycShicCk7CiAJYm54Ml9mcmVlX21lbShicCk7CiAJYm54Ml9k ZWxfbmFwaShicCk7CisJYm54Ml9yZWxlYXNlX2Zpcm13YXJlKGJwKTsKIAlnb3RvIG91dDsKIH0K IApAQCAtODU3MCwxMiArODU3NSw2IEBAIGJueDJfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAKIAlwY2lfc2V0X2RydmRhdGEo cGRldiwgZGV2KTsKIAotCXJjID0gYm54Ml9yZXF1ZXN0X2Zpcm13YXJlKGJwKTsKLQlpZiAocmMg PCAwKQotCQlnb3RvIGVycm9yOwotCi0KLQlibngyX3Jlc2V0X2NoaXAoYnAsIEJOWDJfRFJWX01T R19DT0RFX1JFU0VUKTsKIAltZW1jcHkoZGV2LT5kZXZfYWRkciwgYnAtPm1hY19hZGRyLCBFVEhf QUxFTik7CiAKIAlkZXYtPmh3X2ZlYXR1cmVzID0gTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9T RyB8CkBAIC04NjA4LDcgKzg2MDcsNiBAQCBibngyX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpw ZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogCXJldHVybiAwOwogCiBlcnJv cjoKLQlibngyX3JlbGVhc2VfZmlybXdhcmUoYnApOwogCXBjaV9pb3VubWFwKHBkZXYsIGJwLT5y ZWd2aWV3KTsKIAlwY2lfcmVsZWFzZV9yZWdpb25zKHBkZXYpOwogCXBjaV9kaXNhYmxlX2Rldmlj ZShwZGV2KTsKLS0gCjIuNC4xMQoKCkZyb20gMGViMDQ0ZGI5ZjRhMDcxZWJjZjY4ZmQ2NGMwZmIy N2M2NGQwNWQ5NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQmFvcXVhbiBIZSA8Ymhl QHJlZGhhdC5jb20+CkRhdGU6IFN1biwgMTMgTm92IDIwMTYgMTM6MDE6MzMgKzA4MDAKU3ViamVj dDogW1BBVENIIDI3LzI5XSBibngyOiBXYWl0IGZvciBpbi1mbGlnaHQgRE1BIHRvIGNvbXBsZXRl IGF0IHByb2JlIHN0YWdlCgpbIFVwc3RyZWFtIGNvbW1pdCA2ZGY3Nzg2MmY2M2YzODlkZjNiMWFk ODc5NzM4ZTA0NDQwZDczODVkIF0KCkluLWZsaWdodCBETUEgZnJvbSAxc3Qga2VybmVsIGNvdWxk IGNvbnRpbnVlIGdvaW5nIGluIGtkdW1wIGtlcm5lbC4KTmV3IGlvLXBhZ2UgdGFibGUgaGFzIGJl ZW4gY3JlYXRlZCBiZWZvcmUgYm54MiBkb2VzIHJlc2V0IGF0IG9wZW4gc3RhZ2UuCldlIGhhdmUg dG8gd2FpdCBmb3IgdGhlIGluLWZsaWdodCBETUEgdG8gY29tcGxldGUgdG8gYXZvaWQgaXQgbG9v ayB1cAppbnRvIHRoZSBuZXdseSBjcmVhdGVkIGlvLXBhZ2UgdGFibGUgYXQgcHJvYmUgc3RhZ2Uu CgpTdWdnZXN0ZWQtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4K U2lnbmVkLW9mZi1ieTogQmFvcXVhbiBIZSA8YmhlQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBNaWNo YWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9ibngyLmMgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDIuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDIuYwppbmRleCA4ZmMzZjNjLi4yYzg1MGE5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54Mi5jCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVk ZSA8bGludXgvZmlybXdhcmUuaD4KICNpbmNsdWRlIDxsaW51eC9sb2cyLmg+CiAjaW5jbHVkZSA8 bGludXgvYWVyLmg+CisjaW5jbHVkZSA8bGludXgvY3Jhc2hfZHVtcC5oPgogCiAjaWYgZGVmaW5l ZChDT05GSUdfQ05JQykgfHwgZGVmaW5lZChDT05GSUdfQ05JQ19NT0RVTEUpCiAjZGVmaW5lIEJD TV9DTklDIDEKQEAgLTQ3NTksMTUgKzQ3NjAsMTYgQEAgYm54Ml9zZXR1cF9tc2l4X3RibChzdHJ1 Y3QgYm54MiAqYnApCiAJQk5YMl9XUihicCwgQk5YMl9QQ0lfR1JDX1dJTkRPVzNfQUREUiwgQk5Y Ml9NU0lYX1BCQV9BRERSKTsKIH0KIAotc3RhdGljIGludAotYm54Ml9yZXNldF9jaGlwKHN0cnVj dCBibngyICpicCwgdTMyIHJlc2V0X2NvZGUpCitzdGF0aWMgdm9pZAorYm54Ml93YWl0X2RtYV9j b21wbGV0ZShzdHJ1Y3QgYm54MiAqYnApCiB7CiAJdTMyIHZhbDsKLQlpbnQgaSwgcmMgPSAwOwot CXU4IG9sZF9wb3J0OworCWludCBpOwogCi0JLyogV2FpdCBmb3IgdGhlIGN1cnJlbnQgUENJIHRy YW5zYWN0aW9uIHRvIGNvbXBsZXRlIGJlZm9yZQotCSAqIGlzc3VpbmcgYSByZXNldC4gKi8KKwkv KgorCSAqIFdhaXQgZm9yIHRoZSBjdXJyZW50IFBDSSB0cmFuc2FjdGlvbiB0byBjb21wbGV0ZSBi ZWZvcmUKKwkgKiBpc3N1aW5nIGEgcmVzZXQuCisJICovCiAJaWYgKChCTlgyX0NISVAoYnApID09 IEJOWDJfQ0hJUF81NzA2KSB8fAogCSAgICAoQk5YMl9DSElQKGJwKSA9PSBCTlgyX0NISVBfNTcw OCkpIHsKIAkJQk5YMl9XUihicCwgQk5YMl9NSVNDX0VOQUJMRV9DTFJfQklUUywKQEAgLTQ3OTEs NiArNDc5MywyMSBAQCBibngyX3Jlc2V0X2NoaXAoc3RydWN0IGJueDIgKmJwLCB1MzIgcmVzZXRf Y29kZSkKIAkJfQogCX0KIAorCXJldHVybjsKK30KKworCitzdGF0aWMgaW50CitibngyX3Jlc2V0 X2NoaXAoc3RydWN0IGJueDIgKmJwLCB1MzIgcmVzZXRfY29kZSkKK3sKKwl1MzIgdmFsOworCWlu dCBpLCByYyA9IDA7CisJdTggb2xkX3BvcnQ7CisKKwkvKiBXYWl0IGZvciB0aGUgY3VycmVudCBQ Q0kgdHJhbnNhY3Rpb24gdG8gY29tcGxldGUgYmVmb3JlCisJICogaXNzdWluZyBhIHJlc2V0LiAq LworCWJueDJfd2FpdF9kbWFfY29tcGxldGUoYnApOworCiAJLyogV2FpdCBmb3IgdGhlIGZpcm13 YXJlIHRvIHRlbGwgdXMgaXQgaXMgb2sgdG8gaXNzdWUgYSByZXNldC4gKi8KIAlibngyX2Z3X3N5 bmMoYnAsIEJOWDJfRFJWX01TR19EQVRBX1dBSVQwIHwgcmVzZXRfY29kZSwgMSwgMSk7CiAKQEAg LTg1NzUsNiArODU5MiwxNSBAQCBibngyX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBj b25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogCiAJcGNpX3NldF9kcnZkYXRhKHBkZXYs IGRldik7CiAKKwkvKgorCSAqIEluLWZsaWdodCBETUEgZnJvbSAxc3Qga2VybmVsIGNvdWxkIGNv bnRpbnVlIGdvaW5nIGluIGtkdW1wIGtlcm5lbC4KKwkgKiBOZXcgaW8tcGFnZSB0YWJsZSBoYXMg YmVlbiBjcmVhdGVkIGJlZm9yZSBibngyIGRvZXMgcmVzZXQgYXQgb3BlbiBzdGFnZS4KKwkgKiBX ZSBoYXZlIHRvIHdhaXQgZm9yIHRoZSBpbi1mbGlnaHQgRE1BIHRvIGNvbXBsZXRlIHRvIGF2b2lk IGl0IGxvb2sgdXAKKwkgKiBpbnRvIHRoZSBuZXdseSBjcmVhdGVkIGlvLXBhZ2UgdGFibGUuCisJ ICovCisJaWYgKGlzX2tkdW1wX2tlcm5lbCgpKQorCQlibngyX3dhaXRfZG1hX2NvbXBsZXRlKGJw KTsKKwogCW1lbWNweShkZXYtPmRldl9hZGRyLCBicC0+bWFjX2FkZHIsIEVUSF9BTEVOKTsKIAog CWRldi0+aHdfZmVhdHVyZXMgPSBORVRJRl9GX0lQX0NTVU0gfCBORVRJRl9GX1NHIHwKLS0gCjIu NC4xMQoKCkZyb20gN2UxMDFjZmM4ZmUwNzE1YjIyOGYzYWViOTBmMmM3MTcyYzY3Y2YyYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29t PgpEYXRlOiBTdW4sIDEzIE5vdiAyMDE2IDIxOjQ0OjM3ICswODAwClN1YmplY3Q6IFtQQVRDSCAy OC8yOV0gc2N0cDogY2hhbmdlIHNrIHN0YXRlIG9ubHkgd2hlbiBpdCBoYXMgYXNzb2NzIGluCiBz Y3RwX3NodXRkb3duCgpbIFVwc3RyZWFtIGNvbW1pdCA1YmYzNWRkZmVlMDUyZDQ0ZjM5ZWJhYTM5 NWQ4NzEwMWM4OTE4NDA1IF0KCk5vdyB3aGVuIHVzZXJzIHNodXRkb3duIGEgc29jayB3aXRoIFNF TkRfU0hVVERPV04gaW4gc2N0cCwgZXZlbiBpZgp0aGlzIHNvY2sgaGFzIG5vIGNvbm5lY3Rpb24g KGFzc29jKSwgc2sgc3RhdGUgd291bGQgYmUgY2hhbmdlZCB0bwpTQ1RQX1NTX0NMT1NJTkcsIHdo aWNoIGlzIG5vdCBhcyB3ZSBleHBlY3QuCgpCZXNpZGVzLCBhZnRlciB0aGF0IGlmIHVzZXJzIHRy eSB0byBsaXN0ZW4gb24gdGhpcyBzb2NrLCBrZXJuZWwKY291bGQgZXZlbiBwYW5pYyB3aGVuIGl0 IGRlcmVmZXJlbmNlIHNjdHBfc2soc2spLT5iaW5kX2hhc2ggaW4Kc2N0cF9pbmV0X2xpc3Rlbiwg YXMgYmluZF9oYXNoIGlzIG51bGwgd2hlbiBzb2NrIGhhcyBubyBhc3NvYy4KClRoaXMgcGF0Y2gg aXMgdG8gbW92ZSBzayBzdGF0ZSBjaGFuZ2UgYWZ0ZXIgY2hlY2tpbmcgc2sgYXNzb2NzCmlzIG5v dCBlbXB0eSwgYW5kIGFsc28gbWVyZ2UgdGhlc2UgdHdvIGlmKCkgY29uZGl0aW9ucyBhbmQgcmVk dWNlCmluZGVudCBsZXZlbC4KCkZpeGVzOiBkNDZlNDE2YzExYzggKCJzY3RwOiBzY3RwIHNob3Vs ZCBjaGFuZ2Ugc29ja2V0IHN0YXRlIHdoZW4gc2h1dGRvd24gaXMgcmVjZWl2ZWQiKQpSZXBvcnRl ZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpUZXN0ZWQtYnk6 IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog WGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRv IExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+CkFja2VkLWJ5OiBOZWlsIEhvcm1h biA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvc29ja2V0LmMgfCAxNSArKysrKysr LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc29ja2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuYwppbmRl eCA4OWJkZTU0Li43YjBlMDU5IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zb2NrZXQuYworKysgYi9u ZXQvc2N0cC9zb2NrZXQuYwpAQCAtNDI4MSwxOSArNDI4MSwxOCBAQCBzdGF0aWMgdm9pZCBzY3Rw X3NodXRkb3duKHN0cnVjdCBzb2NrICpzaywgaW50IGhvdykKIHsKIAlzdHJ1Y3QgbmV0ICpuZXQg PSBzb2NrX25ldChzayk7CiAJc3RydWN0IHNjdHBfZW5kcG9pbnQgKmVwOwotCXN0cnVjdCBzY3Rw X2Fzc29jaWF0aW9uICphc29jOwogCiAJaWYgKCFzY3RwX3N0eWxlKHNrLCBUQ1ApKQogCQlyZXR1 cm47CiAKLQlpZiAoaG93ICYgU0VORF9TSFVURE9XTikgeworCWVwID0gc2N0cF9zayhzayktPmVw OworCWlmIChob3cgJiBTRU5EX1NIVVRET1dOICYmICFsaXN0X2VtcHR5KCZlcC0+YXNvY3MpKSB7 CisJCXN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jOworCiAJCXNrLT5za19zdGF0ZSA9IFND VFBfU1NfQ0xPU0lORzsKLQkJZXAgPSBzY3RwX3NrKHNrKS0+ZXA7Ci0JCWlmICghbGlzdF9lbXB0 eSgmZXAtPmFzb2NzKSkgewotCQkJYXNvYyA9IGxpc3RfZW50cnkoZXAtPmFzb2NzLm5leHQsCi0J CQkJCSAgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24sIGFzb2NzKTsKLQkJCXNjdHBfcHJpbWl0aXZl X1NIVVRET1dOKG5ldCwgYXNvYywgTlVMTCk7Ci0JCX0KKwkJYXNvYyA9IGxpc3RfZW50cnkoZXAt PmFzb2NzLm5leHQsCisJCQkJICBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiwgYXNvY3MpOworCQlz Y3RwX3ByaW1pdGl2ZV9TSFVURE9XTihuZXQsIGFzb2MsIE5VTEwpOwogCX0KIH0KIAotLSAKMi40 LjExCgoKRnJvbSAyNzkyNjU0YzE5YzE5MzkxMDc0MmE5OWVhNzJmYTlkMGYxNTI4OWYwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdt YWlsLmNvbT4KRGF0ZTogU3VuLCAxMyBOb3YgMjAxNiAxNzo1MDozNSAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMjkvMjldIG5ldDogc3RtbWFjOiBGaXggbGFjayBvZiBsaW5rIHRyYW5zaXRpb24gZm9y IGZpeGVkIFBIWXMKClsgVXBzdHJlYW0gY29tbWl0IGM1MWU0MjRkYzc5ZTE0MjhhZmM0ZDY5N2Nk YjZhMDdmN2FmNzBjYmYgXQoKQ29tbWl0IDUyZjk1YmJmY2Y3MiAoInN0bW1hYzogZml4IGFkanVz dCBsaW5rIGNhbGwgaW4gY2FzZSBvZiBhIHN3aXRjaAppcyBhdHRhY2hlZCIpIGFkZGVkIHNvbWUg bG9naWMgdG8gYXZvaWQgcG9sbGluZyB0aGUgZml4ZWQgUEhZIGFuZAp0aGVyZWZvcmUgaW52b2tp bmcgdGhlIGFkanVzdF9saW5rIGNhbGxiYWNrIG1vcmUgdGhhbiBvbmNlLCBzaW5jZSB0aGlzCmlz IGEgZml4ZWQgUEhZIGFuZCBsaW5rIGV2ZW50cyB3b24ndCBiZSBnZW5lcmF0ZWQuCgpUaGlzIHdv cmtzIGZpbmUgdGhlIGZpcnN0IHRpbWUsIGJlY2F1c2Ugd2Ugc3RhcnQgd2l0aCBwaHlkZXYtPmly cSA9ClBIWV9QT0xMLCBzbyB3ZSBjYWxsIGFkanVzdF9saW5rLCB0aGVuIHdlIHNldCBwaHlkZXYt PmlycSA9ClBIWV9JR05PUkVfSU5URVJSVVBUIGFuZCB3ZSBzdG9wIHBvbGxpbmcgdGhlIFBIWS4K Ck5vdywgaWYgd2UgY2FsbGVkIG5kb19jbG9zZSgpLCB3aGljaCBjYWxscyBib3RoIHBoeV9zdG9w KCkgYW5kIGRvZXMgYW4KZXhwbGljaXQgbmV0aWZfY2Fycmllcl9vZmYoKSwgd2UgZW5kIHVwIHdp dGggYSBsaW5rIGRvd24uIFVwb24gY2FsbGluZwpuZG9fb3BlbigpIGFnYWluLCBkZXNwaXRlIHN0 YXJ0aW5nIHRoZSBQSFkgc3RhdGUgbWFjaGluZSwgd2UgaGF2ZQpQSFlfSUdOT1JFX0lOVEVSUlVQ VCBzZXQsIGFuZCB3ZSBnZW5lcmF0ZSBubyBsaW5rIGV2ZW50IGF0IGFsbCwgc28gdGhlCmxpbmsg aXMgcGVybWFuZW50bHkgZG93bi4KCkZpeGVzOiA1MmY5NWJiZmNmNzIgKCJzdG1tYWM6IGZpeCBh ZGp1c3QgbGluayBjYWxsIGluIGNhc2Ugb2YgYSBzd2l0Y2ggaXMgYXR0YWNoZWQiKQpTaWduZWQt b2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KQWNrZWQtYnk6 IEdpdXNlcHBlIENhdmFsbGFybyA8cGVwcGUuY2F2YWxsYXJvQHN0LmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgfCA3ICsrKysrKysKIDEgZmls ZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwppbmRleCA0YzhjNjBhLi5mZTllN2IxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMK QEAgLTg3MSw2ICs4NzEsMTMgQEAgc3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5l dF9kZXZpY2UgKmRldikKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCisJLyogc3RtbWFjX2FkanVz dF9saW5rIHdpbGwgY2hhbmdlIHRoaXMgdG8gUEhZX0lHTk9SRV9JTlRFUlJVUFQgdG8gYXZvaWQK KwkgKiBzdWJzZXF1ZW50IFBIWSBwb2xsaW5nLCBtYWtlIHN1cmUgd2UgZm9yY2UgYSBsaW5rIHRy YW5zaXRpb24gaWYKKwkgKiB3ZSBoYXZlIGEgVVAvRE9XTi9VUCB0cmFuc2l0aW9uCisJICovCisJ aWYgKHBoeWRldi0+aXNfcHNldWRvX2ZpeGVkX2xpbmspCisJCXBoeWRldi0+aXJxID0gUEhZX1BP TEw7CisKIAlwcl9kZWJ1Zygic3RtbWFjX2luaXRfcGh5OiAgJXM6IGF0dGFjaGVkIHRvIFBIWSAo VUlEIDB4JXgpIgogCQkgIiBMaW5rID0gJWRcbiIsIGRldi0+bmFtZSwgcGh5ZGV2LT5waHlfaWQs IHBoeWRldi0+bGluayk7CiAKLS0gCjIuNC4xMQoK ----Next_Part(Thu_Nov_17_21_59_01_2016_569)----