From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([23.128.96.9]:49184 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731988AbeG0BKL (ORCPT ); Thu, 26 Jul 2018 21:10:11 -0400 Date: Thu, 26 Jul 2018 16:50:51 -0700 (PDT) Message-Id: <20180726.165051.817735876728210690.davem@davemloft.net> To: stable@vger.kernel.org CC: edumazet@google.com Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Jul_26_16_50_51_2018_532)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Thu_Jul_26_16_50_51_2018_532)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit [ Eric please double check my TCP backports, thank you... ] Please queue up the following networking fixes for v4.14.x and v4.17.x -stable, respectively. Thank you! ----Next_Part(Thu_Jul_26_16_50_51_2018_532)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_414.mbox" RnJvbSAyN2E1YWNiMTEwODg4ZmFjMzAxMGFmMDUwODc3NjQxMDNhMDExNWY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXJvZCBXaWxzb24gPGphcm9kQHJlZGhhdC5jb20+CkRhdGU6 IFdlZCwgMTggSnVsIDIwMTggMTQ6NDk6MzYgLTA0MDAKU3ViamVjdDogW1BBVENIIDAxLzI1XSBi b25kaW5nOiBzZXQgZGVmYXVsdCBtaWltb24gdmFsdWUgZm9yIG5vbi1hcnAgbW9kZXMgaWYKIG5v dCBzZXQKClsgVXBzdHJlYW0gY29tbWl0IGMxZjg5N2NlMTg2YTUyOWE0OTQ0NDE2NDIxMjU0Nzlk Mzg3MjdhM2QgXQoKRm9yIHNvbWUgdGltZSBub3csIGlmIHlvdSBsb2FkIHRoZSBib25kaW5nIGRy aXZlciBhbmQgY29uZmlndXJlIGJvbmQKcGFyYW1ldGVycyB2aWEgc3lzZnMgdXNpbmcgbWluaW1h bCBjb25maWcgb3B0aW9ucywgc3VjaCBhcyBzcGVjaWZ5aW5nCm5vdGhpbmcgYnV0IHRoZSBtb2Rl LCByZWx5aW5nIG9uIGRlZmF1bHRzIGZvciBldmVyeXRoaW5nIGVsc2UsIG1vZGVzCnRoYXQgY2Fu bm90IHVzZSBhcnAgbW9uaXRvcmluZyAoODAyLjNhZCwgYmFsYW5jZS10bGIsIGJhbGFuY2UtYWxi KSBhbGwKd2luZCB1cCB3aXRoIGJvdGggYXJwX2ludGVydmFsPTAgKGFzIGl0IHNob3VsZCBiZSkg YW5kIG1paW1vbj0wLCB3aGljaAptZWFucyB0aGUgbWlpbW9uIG1vbml0b3IgdGhyZWFkIG5ldmVy IGFjdHVhbGx5IHJ1bnMuIFRoaXMgaXMgcGFydGljdWxhcmx5CnByb2JsZW1hdGljIGZvciA4MDIu M2FkLgoKRm9yIGV4YW1wbGUsIGZyb20gYW4gTE5TVCByZWNpcGUgSSd2ZSBzZXQgdXA6CgokIG1v ZHByb2JlIGJvbmRpbmcgbWF4X2JvbmRzPTAiCiQgZWNobyAiK3RfYm9uZDAiID4gL3N5cy9jbGFz cy9uZXQvYm9uZGluZ19tYXN0ZXJzIgokIGlwIGxpbmsgc2V0IHRfYm9uZDAgZG93biIKJCBlY2hv ICI4MDIuM2FkIiA+IC9zeXMvY2xhc3MvbmV0L3RfYm9uZDAvYm9uZGluZy9tb2RlIgokIGlwIGxp bmsgc2V0IGVuczFmMSBkb3duIgokIGVjaG8gIitlbnMxZjEiID4gL3N5cy9jbGFzcy9uZXQvdF9i b25kMC9ib25kaW5nL3NsYXZlcyIKJCBpcCBsaW5rIHNldCBlbnMxZjAgZG93biIKJCBlY2hvICIr ZW5zMWYwIiA+IC9zeXMvY2xhc3MvbmV0L3RfYm9uZDAvYm9uZGluZy9zbGF2ZXMiCiQgZXRodG9v bCAtaSB0X2JvbmQwIgokIGlwIGxpbmsgc2V0IGVuczFmMSB1cCIKJCBpcCBsaW5rIHNldCBlbnMx ZjAgdXAiCiQgaXAgbGluayBzZXQgdF9ib25kMCB1cCIKJCBpcCBhZGRyIGFkZCAxOTIuMTY4Ljku MS8yNCBkZXYgdF9ib25kMCIKJCBpcCBhZGRyIGFkZCAyMDAyOjoxLzY0IGRldiB0X2JvbmQwIgoK VGhpcyBib25kIGNvbWVzIHVwIG9rYXksIGJ1dCB0aGluZ3MgbG9vayBzbGlnaHRseSBzdXNwZWN0 IGluCi9wcm9jL25ldC9ib25kaW5nL3RfYm9uZDAgb3V0cHV0OgoKJCBncmVwIC1pIG1paSAvcHJv Yy9uZXQvYm9uZGluZy90X2JvbmQwCk1JSSBTdGF0dXM6IHVwCk1JSSBQb2xsaW5nIEludGVydmFs IChtcyk6IDAKTUlJIFN0YXR1czogdXAKTUlJIFN0YXR1czogdXAKCk5vdywgcHVsbCBhIGNhYmxl IG9uIG9uZSBvZiB0aGUgcG9ydHMgaW4gdGhlIGJvbmQsIHRoZW4gcmVjb25uZWN0IGl0LCBhbmQK eW91J2xsIHNlZToKClNsYXZlIEludGVyZmFjZTogZW5zMWYwCk1JSSBTdGF0dXM6IGRvd24KU3Bl ZWQ6IDEwMDAgTWJwcwpEdXBsZXg6IGZ1bGwKCkkgYmVsaWV2ZSB0aGlzIGJlY2FtZSBhIG1ham9y IGlzc3VlIGFzIG9mIGNvbW1pdCA0ZDJjMGNkYTA3NDQsIHdoaWNoIGZvcgo4MDIuM2FkIGJvbmRz LCBzZXRzIHNsYXZlLT5saW5rID0gQk9ORF9MSU5LX0RPV04sIHdpdGggYSBjb21tZW50IGFib3V0 CnJlbHlpbmcgb24gbGluayBtb25pdG9yaW5nIHZpYSBtaWltb24gdG8gc2V0IGl0IGNvcnJlY3Rs eSwgYnV0IHNpbmNlIHRoZQptaWltb24gd29yayBxdWV1ZSBuZXZlciBydW5zLCB0aGUgbGluayBq dXN0IHN0YXlzIG1hcmtlZCBkb3duLgoKSWYgd2Ugc2ltcGx5IHR3ZWFrIGJvbmRfb3B0aW9uX21v ZGVfc2V0KCkgc2xpZ2h0bHksIHdlIGNhbiBjaGVjayBmb3IgdGhlCm5vbi1hcnAgbW9kZXMgaGF2 aW5nIG5vIG1paW1vbiB2YWx1ZSBzZXQsIGFuZCBpbnNlcnQgQk9ORF9ERUZBVUxUX01JSU1PTiwK d2hpY2ggZ2V0cyB0aGluZ3MgYmFjayBpbiBmdWxsIHdvcmtpbmcgb3JkZXIuIFRoaXMgcHJvYmxl bSBleGlzdHMgYXMgZmFyCmJhY2sgYXMgNC4xNCwgYW5kIG1pZ2h0IGJlIHdvcnRoIGZpeGluZyBp biBhbGwgc3RhYmxlIHRyZWVzIHNpbmNlLCB0aG91Z2gKdGhlIHdvcmstYXJvdW5kIGlzIHRvIHNp bXBseSBzcGVjaWZ5IGFuIG1paW1vbiB2YWx1ZSB5b3Vyc2VsZi4KClJlcG9ydGVkLWJ5OiBCb2Ig QmFsbCA8YmFsbEB1bWljaC5lZHU+ClNpZ25lZC1vZmYtYnk6IEphcm9kIFdpbHNvbiA8amFyb2RA cmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1haGVzaCBCYW5kZXdhciA8bWFoZXNoYkBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlvbnMuYyB8IDIzICsrKysrKysrKysrKysr LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5jIGIvZHJp dmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlvbnMuYwppbmRleCA2MTA4NGJhNjlhOTkuLjNkMTU0 ZWI2M2RjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlvbnMuYwor KysgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5jCkBAIC03NDMsMTUgKzc0Mywy MCBAQCBjb25zdCBzdHJ1Y3QgYm9uZF9vcHRpb24gKmJvbmRfb3B0X2dldCh1bnNpZ25lZCBpbnQg b3B0aW9uKQogc3RhdGljIGludCBib25kX29wdGlvbl9tb2RlX3NldChzdHJ1Y3QgYm9uZGluZyAq Ym9uZCwKIAkJCQljb25zdCBzdHJ1Y3QgYm9uZF9vcHRfdmFsdWUgKm5ld3ZhbCkKIHsKLQlpZiAo IWJvbmRfbW9kZV91c2VzX2FycChuZXd2YWwtPnZhbHVlKSAmJiBib25kLT5wYXJhbXMuYXJwX2lu dGVydmFsKSB7Ci0JCW5ldGRldl9kYmcoYm9uZC0+ZGV2LCAiJXMgbW9kZSBpcyBpbmNvbXBhdGli bGUgd2l0aCBhcnAgbW9uaXRvcmluZywgc3RhcnQgbWlpIG1vbml0b3JpbmdcbiIsCi0JCQkgICBu ZXd2YWwtPnN0cmluZyk7Ci0JCS8qIGRpc2FibGUgYXJwIG1vbml0b3JpbmcgKi8KLQkJYm9uZC0+ cGFyYW1zLmFycF9pbnRlcnZhbCA9IDA7Ci0JCS8qIHNldCBtaWltb24gdG8gZGVmYXVsdCB2YWx1 ZSAqLwotCQlib25kLT5wYXJhbXMubWlpbW9uID0gQk9ORF9ERUZBVUxUX01JSU1PTjsKLQkJbmV0 ZGV2X2RiZyhib25kLT5kZXYsICJTZXR0aW5nIE1JSSBtb25pdG9yaW5nIGludGVydmFsIHRvICVk XG4iLAotCQkJICAgYm9uZC0+cGFyYW1zLm1paW1vbik7CisJaWYgKCFib25kX21vZGVfdXNlc19h cnAobmV3dmFsLT52YWx1ZSkpIHsKKwkJaWYgKGJvbmQtPnBhcmFtcy5hcnBfaW50ZXJ2YWwpIHsK KwkJCW5ldGRldl9kYmcoYm9uZC0+ZGV2LCAiJXMgbW9kZSBpcyBpbmNvbXBhdGlibGUgd2l0aCBh cnAgbW9uaXRvcmluZywgc3RhcnQgbWlpIG1vbml0b3JpbmdcbiIsCisJCQkJICAgbmV3dmFsLT5z dHJpbmcpOworCQkJLyogZGlzYWJsZSBhcnAgbW9uaXRvcmluZyAqLworCQkJYm9uZC0+cGFyYW1z LmFycF9pbnRlcnZhbCA9IDA7CisJCX0KKworCQlpZiAoIWJvbmQtPnBhcmFtcy5taWltb24pIHsK KwkJCS8qIHNldCBtaWltb24gdG8gZGVmYXVsdCB2YWx1ZSAqLworCQkJYm9uZC0+cGFyYW1zLm1p aW1vbiA9IEJPTkRfREVGQVVMVF9NSUlNT047CisJCQluZXRkZXZfZGJnKGJvbmQtPmRldiwgIlNl dHRpbmcgTUlJIG1vbml0b3JpbmcgaW50ZXJ2YWwgdG8gJWRcbiIsCisJCQkJICAgYm9uZC0+cGFy YW1zLm1paW1vbik7CisJCX0KIAl9CiAKIAlpZiAobmV3dmFsLT52YWx1ZSA9PSBCT05EX01PREVf QUxCKQotLSAKMi4xNy4xCgoKRnJvbSA4Y2IwNmZlNzI4MjI3YThkYWY3MWYwZjlmYzE2ZTdhY2Vj ZDg1YzBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5p QHJlZGhhdC5jb20+CkRhdGU6IE1vbiwgMjMgSnVsIDIwMTggMTY6NTA6NDggKzAyMDAKU3ViamVj dDogW1BBVENIIDAyLzI1XSBpcDogaGFzaCBmcmFnbWVudHMgY29uc2lzdGVudGx5CgpbIFVwc3Ry ZWFtIGNvbW1pdCAzZGQxYzlhMTI3MDczNjAyOWZmY2E2NzBlOWJkMDI2NWY0MTIwNjAwIF0KClRo ZSBza2IgaGFzaCBmb3IgbG9jYWxseSBnZW5lcmF0ZWQgaXBbdjZdIGZyYWdtZW50cyBiZWxvbmdp bmcKdG8gdGhlIHNhbWUgZGF0YWdyYW0gY2FuIHZhcnkgaW4gc2V2ZXJhbCBjaXJjdW1zdGFuY2Vz OgoqIGZvciBjb25uZWN0ZWQgVURQW3Y2XSBzb2NrZXRzLCB0aGUgZmlyc3QgZnJhZ21lbnQgZ2V0 IGl0cyBoYXNoCiAgdmlhIHNldF9vd25lcl93KCkvc2tiX3NldF9oYXNoX2Zyb21fc2soKQoqIGZv ciB1bmNvbm5lY3RlZCBJUHY2IFVEUHY2IHNvY2tldHMsIHRoZSBmaXJzdCBmcmFnbWVudCBjYW4g Z2V0CiAgaXRzIGhhc2ggdmlhIGlwNl9tYWtlX2Zsb3dsYWJlbCgpL3NrYl9nZXRfaGFzaF9mbG93 aTYoKSwgaWYKICBhdXRvX2Zsb3dsYWJlbCBpcyBlbmFibGVkCgpGb3IgdGhlIGZvbGxvd2luZyBm cmFncyB0aGUgaGFzaCBpcyB1c3VhbGx5IGNvbXB1dGVkIHZpYQpza2JfZ2V0X2hhc2goKS4KVGhl IGFib3ZlIGNhbiBjYXVzZSBPb08gZm9yIHVuY29ubmVjdGVkIElQdjYgVURQdjYgc29ja2V0OiBp biB0aGF0CnNjZW5hcmlvIHRoZSBlZ3Jlc3MgdHggcXVldWUgY2FuIGJlIHNlbGVjdGVkIG9uIGEg cGVyIHBhY2tldCBiYXNpcwp2aWEgdGhlIHNrYiBoYXNoLgpJdCBtYXkgYWxzbyBmb29sIGZsb3ct b3JpZW50ZWQgc2NoZWR1bGVycyB0byBwbGFjZSBmcmFnbWVudHMgYmVsb25naW5nCnRvIHRoZSBz YW1lIGRhdGFncmFtIGluIGRpZmZlcmVudCBmbG93cy4KCkZpeCB0aGUgaXNzdWUgYnkgY29weWlu ZyB0aGUgc2tiIGhhc2ggZnJvbSB0aGUgaGVhZCBmcmFnIGludG8KdGhlIG90aGVycyBhdCBmcmFn bWVudGF0aW9uIHRpbWUuCgpCZWZvcmUgdGhpcyBjb21taXQ6CnBlcmYgcHJvYmUgLWEgImRldl9x dWV1ZV94bWl0IHNrYiBza2ItPmhhc2ggc2tiLT5sNF9oYXNoOmIxQDAvOCBza2ItPnN3X2hhc2g6 YjFAMS84IgpuZXRwZXJmIC1IICRJUFY0IC10IFVEUF9TVFJFQU0gLWwgNSAtLSAtbSAyMDAwIC1u ICYKcGVyZiByZWNvcmQgLWUgcHJvYmU6ZGV2X3F1ZXVlX3htaXQgLWUgcHJvYmU6c2tiX3NldF9v d25lcl93IC1hIHNsZWVwIDAuMQpwZXJmIHNjcmlwdApwcm9iZTpkZXZfcXVldWVfeG1pdDogKGZm ZmZmZmZmOGM2YjFiMjApIGhhc2g9MzcxMzAxNDMwOSBsNF9oYXNoPTEgc3dfaGFzaD0wCnByb2Jl OmRldl9xdWV1ZV94bWl0OiAoZmZmZmZmZmY4YzZiMWIyMCkgaGFzaD0wIGw0X2hhc2g9MCBzd19o YXNoPTAKCkFmdGVyIHRoaXMgY29tbWl0Ogpwcm9iZTpkZXZfcXVldWVfeG1pdDogKGZmZmZmZmZm OGM2YjFiMjApIGhhc2g9MjE3MTc2MzE3NyBsNF9oYXNoPTEgc3dfaGFzaD0wCnByb2JlOmRldl9x dWV1ZV94bWl0OiAoZmZmZmZmZmY4YzZiMWIyMCkgaGFzaD0yMTcxNzYzMTc3IGw0X2hhc2g9MSBz d19oYXNoPTAKCkZpeGVzOiBiNzNjM2QwZTRmMGUgKCJuZXQ6IFNhdmUgVFggZmxvdyBoYXNoIGlu IHNvY2sgYW5kIHNldCBpbiBza2J1ZiBvbiB4bWl0IikKRml4ZXM6IDY3ODAwZjliMWY0ZSAoImlw djY6IENhbGwgc2tiX2dldF9oYXNoX2Zsb3dpNiB0byBnZXQgc2tiLT5oYXNoIGluIGlwNl9tYWtl X2Zsb3dsYWJlbCIpClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNv bT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L2lwX291dHB1dC5jICB8IDIgKysKIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyB8IDIgKysKIDIg ZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBf b3V0cHV0LmMgYi9uZXQvaXB2NC9pcF9vdXRwdXQuYwppbmRleCA2M2Q1ZDY2ZTA0MGEuLmUyZGQz MjViZWQ5YiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQv aXBfb3V0cHV0LmMKQEAgLTUyMyw2ICs1MjMsOCBAQCBzdGF0aWMgdm9pZCBpcF9jb3B5X21ldGFk YXRhKHN0cnVjdCBza19idWZmICp0bywgc3RydWN0IHNrX2J1ZmYgKmZyb20pCiAJdG8tPmRldiA9 IGZyb20tPmRldjsKIAl0by0+bWFyayA9IGZyb20tPm1hcms7CiAKKwlza2JfY29weV9oYXNoKHRv LCBmcm9tKTsKKwogCS8qIENvcHkgdGhlIGZsYWdzIHRvIGVhY2ggZnJhZ21lbnQuICovCiAJSVBD Qih0byktPmZsYWdzID0gSVBDQihmcm9tKS0+ZmxhZ3M7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2lwNl9vdXRwdXQuYyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwppbmRleCAzMmZjY2U3MTE4NTUu LjFkYTAyMTUyN2ZjZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X291dHB1dC5jCisrKyBiL25l dC9pcHY2L2lwNl9vdXRwdXQuYwpAQCAtNTk1LDYgKzU5NSw4IEBAIHN0YXRpYyB2b2lkIGlwNl9j b3B5X21ldGFkYXRhKHN0cnVjdCBza19idWZmICp0bywgc3RydWN0IHNrX2J1ZmYgKmZyb20pCiAJ dG8tPmRldiA9IGZyb20tPmRldjsKIAl0by0+bWFyayA9IGZyb20tPm1hcms7CiAKKwlza2JfY29w eV9oYXNoKHRvLCBmcm9tKTsKKwogI2lmZGVmIENPTkZJR19ORVRfU0NIRUQKIAl0by0+dGNfaW5k ZXggPSBmcm9tLT50Y19pbmRleDsKICNlbmRpZgotLSAKMi4xNy4xCgoKRnJvbSBiOTkzNGU3MjQw M2M0NTBiNWQ4OTJlMmZlMGY4MDQ5MjA5N2VmYTNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMjMg SnVsIDIwMTggMTk6MzY6NDggLTA0MDAKU3ViamVjdDogW1BBVENIIDAzLzI1XSBpcDogaW4gY21z ZyBJUChWNilfT1JJR0RTVEFERFIgY2FsbCBwc2tiX21heV9wdWxsCgpbIFVwc3RyZWFtIGNvbW1p dCAyZWZkNGZjYTcwM2E2NzA3Y2FkMTZhYjQ4NmVhYWI4ZmM3ZjBmZDQ5IF0KClN5emJvdCByZXBv cnRlZCBhIHJlYWQgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHNrYiBoZWFkIHdoZW4gcmV0dXJuaW5n CklQVjZfT1JJR0RTVEFERFI6CgogIEJVRzogS01TQU46IGtlcm5lbC1pbmZvbGVhayBpbiBwdXRf Y21zZysweDVlZi8weDg2MCBuZXQvY29yZS9zY20uYzoyNDIKICBDUFU6IDAgUElEOiA0NTAxIENv bW06IHN5ei1leGVjdXRvcjEyOCBOb3QgdGFpbnRlZCA0LjE3LjArICM5CiAgSGFyZHdhcmUgbmFt ZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJ T1MKICBHb29nbGUgMDEvMDEvMjAxMQogIENhbGwgVHJhY2U6CiAgICBfX2R1bXBfc3RhY2sgbGli L2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQogICAgZHVtcF9zdGFjaysweDE4NS8weDFkMCBsaWIv ZHVtcF9zdGFjay5jOjExMwogICAga21zYW5fcmVwb3J0KzB4MTg4LzB4MmEwIG1tL2ttc2FuL2tt c2FuLmM6MTEyNQogICAga21zYW5faW50ZXJuYWxfY2hlY2tfbWVtb3J5KzB4MTM4LzB4MWYwIG1t L2ttc2FuL2ttc2FuLmM6MTIxOQogICAga21zYW5fY29weV90b191c2VyKzB4N2EvMHgxNjAgbW0v a21zYW4va21zYW4uYzoxMjYxCiAgICBjb3B5X3RvX3VzZXIgaW5jbHVkZS9saW51eC91YWNjZXNz Lmg6MTg0IFtpbmxpbmVdCiAgICBwdXRfY21zZysweDVlZi8weDg2MCBuZXQvY29yZS9zY20uYzoy NDIKICAgIGlwNl9kYXRhZ3JhbV9yZWN2X3NwZWNpZmljX2N0bCsweDFjZjMvMHgxZWIwIG5ldC9p cHY2L2RhdGFncmFtLmM6NzE5CiAgICBpcDZfZGF0YWdyYW1fcmVjdl9jdGwrMHg0MWMvMHg0NTAg bmV0L2lwdjYvZGF0YWdyYW0uYzo3MzMKICAgIHJhd3Y2X3JlY3Ztc2crMHgxMGZiLzB4MTQ2MCBu ZXQvaXB2Ni9yYXcuYzo1MjEKICAgIFsuLl0KClRoaXMgbG9naWMgYW5kIGl0cyBpcHY0IGNvdW50 ZXJwYXJ0IHJlYWQgdGhlIGRlc3RpbmF0aW9uIHBvcnQgZnJvbQp0aGUgcGFja2V0IGF0IHNrYl90 cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyA0LgoKV2l0aCBNU0dfTU9SRSBhbmQgYSBsb2NhbCBTT0NL X1JBVyBzZW5kZXIsIHN5emJvdCB3YXMgYWJsZSB0byBjb29rIGEKcGFja2V0IHRoYXQgc3RvcmVz IGhlYWRlcnMgZXhhY3RseSB1cCB0byBza2JfdHJhbnNwb3J0X29mZnNldChza2IpIGluCnRoZSBo ZWFkIGFuZCB0aGUgcmVtYWluZGVyIGluIGEgZnJhZy4KCkNhbGwgcHNrYl9tYXlfcHVsbCBiZWZv cmUgYWNjZXNzaW5nIHRoZSBwb2ludGVyIHRvIGVuc3VyZSB0aGF0IGl0IGxpZXMKaW4gc2tiIGhl YWQuCgpMaW5rOiBodHRwOi8vbGttbC5rZXJuZWwub3JnL3IvQ0FGPXlELUxFSndaajVhMS1iQUFq Mk95X2hLbUd5Z1Y2cnNKX1dPckFZbnYtZm5heWlRQG1haWwuZ21haWwuY29tClJlcG9ydGVkLWJ5 OiBzeXpib3QrOWFkYjRiNTY3MDAzY2FjNzgxZjBAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpT aWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv aXB2NC9pcF9zb2NrZ2x1ZS5jIHwgNyArKysrKy0tCiBuZXQvaXB2Ni9kYXRhZ3JhbS5jICAgIHwg NyArKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfc29ja2dsdWUuYyBiL25ldC9pcHY0L2lwX3Nv Y2tnbHVlLmMKaW5kZXggZDA3YmE0ZDU5MTdiLi4wNDhkNWY2ZGQzMjAgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L2lwX3NvY2tnbHVlLmMKKysrIGIvbmV0L2lwdjQvaXBfc29ja2dsdWUuYwpAQCAtMTQ4 LDE1ICsxNDgsMTggQEAgc3RhdGljIHZvaWQgaXBfY21zZ19yZWN2X2RzdGFkZHIoc3RydWN0IG1z Z2hkciAqbXNnLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0cnVjdCBzb2NrYWRkcl9pbiBz aW47CiAJY29uc3Qgc3RydWN0IGlwaGRyICppcGggPSBpcF9oZHIoc2tiKTsKLQlfX2JlMTYgKnBv cnRzID0gKF9fYmUxNiAqKXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYik7CisJX19iZTE2ICpwb3J0 czsKKwlpbnQgZW5kOwogCi0JaWYgKHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyA0ID4gKGlu dClza2ItPmxlbikKKwllbmQgPSBza2JfdHJhbnNwb3J0X29mZnNldChza2IpICsgNDsKKwlpZiAo ZW5kID4gMCAmJiAhcHNrYl9tYXlfcHVsbChza2IsIGVuZCkpCiAJCXJldHVybjsKIAogCS8qIEFs bCBjdXJyZW50IHRyYW5zcG9ydCBwcm90b2NvbHMgaGF2ZSB0aGUgcG9ydCBudW1iZXJzIGluIHRo ZQogCSAqIGZpcnN0IGZvdXIgYnl0ZXMgb2YgdGhlIHRyYW5zcG9ydCBoZWFkZXIgYW5kIHRoaXMg ZnVuY3Rpb24gaXMKIAkgKiB3cml0dGVuIHdpdGggdGhpcyBhc3N1bXB0aW9uIGluIG1pbmQuCiAJ ICovCisJcG9ydHMgPSAoX19iZTE2ICopc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2tiKTsKIAogCXNp bi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKIAlzaW4uc2luX2FkZHIuc19hZGRyID0gaXBoLT5kYWRk cjsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2RhdGFncmFtLmMgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5j CmluZGV4IDQ1M2RjMzcyNjE5OS4uNDYxODI1ZTA2ODBmIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9k YXRhZ3JhbS5jCisrKyBiL25ldC9pcHY2L2RhdGFncmFtLmMKQEAgLTcwOCwxMyArNzA4LDE2IEBA IHZvaWQgaXA2X2RhdGFncmFtX3JlY3Zfc3BlY2lmaWNfY3RsKHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IG1zZ2hkciAqbXNnLAogCX0KIAlpZiAobnAtPnJ4b3B0LmJpdHMucnhvcmlnZHN0YWRkcikg ewogCQlzdHJ1Y3Qgc29ja2FkZHJfaW42IHNpbjY7Ci0JCV9fYmUxNiAqcG9ydHMgPSAoX19iZTE2 ICopIHNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYik7CisJCV9fYmUxNiAqcG9ydHM7CisJCWludCBl bmQ7CiAKLQkJaWYgKHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyA0IDw9IChpbnQpc2tiLT5s ZW4pIHsKKwkJZW5kID0gc2tiX3RyYW5zcG9ydF9vZmZzZXQoc2tiKSArIDQ7CisJCWlmIChlbmQg PD0gMCB8fCBwc2tiX21heV9wdWxsKHNrYiwgZW5kKSkgewogCQkJLyogQWxsIGN1cnJlbnQgdHJh bnNwb3J0IHByb3RvY29scyBoYXZlIHRoZSBwb3J0IG51bWJlcnMgaW4gdGhlCiAJCQkgKiBmaXJz dCBmb3VyIGJ5dGVzIG9mIHRoZSB0cmFuc3BvcnQgaGVhZGVyIGFuZCB0aGlzIGZ1bmN0aW9uIGlz CiAJCQkgKiB3cml0dGVuIHdpdGggdGhpcyBhc3N1bXB0aW9uIGluIG1pbmQuCiAJCQkgKi8KKwkJ CXBvcnRzID0gKF9fYmUxNiAqKXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYik7CiAKIAkJCXNpbjYu c2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKIAkJCXNpbjYuc2luNl9hZGRyID0gaXB2Nl9oZHIoc2ti KS0+ZGFkZHI7Ci0tIAoyLjE3LjEKCgpGcm9tIDI1ZWRhM2U0MjJiNzA4NzU2N2M5ZjBmMWYwYjg0 Yjg0NjExMmZkYzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphY2sgTW9yZ2Vuc3Rl aW4gPGphY2ttQGRldi5tZWxsYW5veC5jby5pbD4KRGF0ZTogVHVlLCAyNCBKdWwgMjAxOCAxNDoy Nzo1NSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjVdIG5ldC9tbHg0X2NvcmU6IFNhdmUgdGhl IHFwbiBmcm9tIHRoZSBpbnB1dCBtb2RpZmllciBpbgogUlNUMklOSVQgd3JhcHBlcgoKWyBVcHN0 cmVhbSBjb21taXQgOTU4YzY5NmY1YTcyNzRkOTQ0N2E0NThhZDdhYTcwNzE5YjI5YTUwYSBdCgpG dW5jdGlvbiBtbHg0X1JTVDJJTklUX1FQX3dyYXBwZXIgc2F2ZWQgdGhlIHFwIG51bWJlciBwYXNz ZWQgaW4gdGhlIHFwCmNvbnRleHQsIHJhdGhlciB0aGFuIHRoZSBvbmUgcGFzc2VkIGluIHRoZSBp bnB1dCBtb2RpZmllci4KCkhvd2V2ZXIsIHRoZSBxcCBudW1iZXIgaW4gdGhlIHFwIGNvbnRleHQg aXMgbm90IGRlZmluZWQgYXMgYQpyZXF1aXJlZCBwYXJhbWV0ZXIgYnkgdGhlIEZXLiBUaGVyZWZv cmUsIGRyaXZlcnMgbWF5IGNob29zZSB0byBub3QKc3BlY2lmeSB0aGUgcXAgbnVtYmVyIGluIHRo ZSBxcCBjb250ZXh0IGZvciB0aGUgcmVzZXQtdG8taW5pdCB0cmFuc2l0aW9uLgoKVGh1cywgd2Ug bXVzdCBzYXZlIHRoZSBxcCBudW1iZXIgcGFzc2VkIGluIHRoZSBjb21tYW5kIGlucHV0IG1vZGlm aWVyIC0tCndoaWNoIGlzIGFsd2F5cyBwcmVzZW50LiAoVGhpcyBzYXZlZCBxcCBudW1iZXIgaXMg dXNlZCBhcyB0aGUgaW5wdXQKbW9kaWZpZXIgZm9yIGNvbW1hbmQgMlJTVF9RUCB3aGVuIGEgc2xh dmUncyBxcCdzIGFyZSBkZXN0cm95ZWQpLgoKRml4ZXM6IGM4MmU5YWEwYThiYyAoIm1seDRfY29y ZTogcmVzb3VyY2UgdHJhY2tpbmcgZm9yIEhDQSByZXNvdXJjZXMgdXNlZCBieSBndWVzdHMiKQpT aWduZWQtb2ZmLWJ5OiBKYWNrIE1vcmdlbnN0ZWluIDxqYWNrbUBkZXYubWVsbGFub3guY28uaWw+ ClNpZ25lZC1vZmYtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvcmVzb3VyY2VfdHJhY2tlci5jIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9yZXNvdXJjZV90cmFja2VyLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L3Jlc291cmNlX3RyYWNrZXIuYwpp bmRleCBhMDY5ZmNjODIzYzMuLmIyNmRhMDk1MmE0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9yZXNvdXJjZV90cmFja2VyLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9yZXNvdXJjZV90cmFja2VyLmMKQEAgLTI5NTcsNyAr Mjk1Nyw3IEBAIGludCBtbHg0X1JTVDJJTklUX1FQX3dyYXBwZXIoc3RydWN0IG1seDRfZGV2ICpk ZXYsIGludCBzbGF2ZSwKIAl1MzIgc3JxbiA9IHFwX2dldF9zcnFuKHFwYykgJiAweGZmZmZmZjsK IAlpbnQgdXNlX3NycSA9IChxcF9nZXRfc3JxbihxcGMpID4+IDI0KSAmIDE7CiAJc3RydWN0IHJl c19zcnEgKnNycTsKLQlpbnQgbG9jYWxfcXBuID0gYmUzMl90b19jcHUocXBjLT5sb2NhbF9xcG4p ICYgMHhmZmZmZmY7CisJaW50IGxvY2FsX3FwbiA9IHZoY3ItPmluX21vZGlmaWVyICYgMHhmZmZm ZmY7CiAKIAllcnIgPSBhZGp1c3RfcXBfc2NoZWRfcXVldWUoZGV2LCBzbGF2ZSwgcXBjLCBpbmJv eCk7CiAJaWYgKGVycikKLS0gCjIuMTcuMQoKCkZyb20gMDRmMmI5MmNkYjIwMGQxOGYwOGJhMDEy ZWE0Y2RmMjhjNzkzMDQxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1h emV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDE5IEp1bCAyMDE4IDE2OjA0OjM4 IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNS8yNV0gbmV0OiBza2Jfc2VnbWVudCgpIHNob3VsZCBu b3QgcmV0dXJuIE5VTEwKClsgVXBzdHJlYW0gY29tbWl0IGZmOTA3YTExYTBkNjhhNzQ5Y2UxYTMy MWY0NTA1YzAzYmY3MjE5MGMgXQoKc3l6Ym90IGNhdWdodCBhIE5VTEwgZGVyZWYgWzFdLCBjYXVz ZWQgYnkgc2tiX3NlZ21lbnQoKQoKc2tiX3NlZ21lbnQoKSBoYXMgbWFueSAiZ290byBlcnI7IiB0 aGF0IGFzc3VtZSB0aGUgQGVyciB2YXJpYWJsZQpjb250YWlucyAtRU5PTUVNLgoKQSBzdWNjZXNz ZnVsIGNhbGwgdG8gX19za2JfbGluZWFyaXplKCkgc2hvdWxkIG5vdCBjbGVhciBAZXJyLApvdGhl cndpc2UgYSBzdWJzZXF1ZW50IG1lbW9yeSBhbGxvY2F0aW9uIGVycm9yIGNvdWxkIHJldHVybiBO VUxMLgoKV2hpbGUgd2UgYXJlIGF0IGl0LCB3ZSBtaWdodCB1c2UgLUVJTlZBTCBpbnN0ZWFkIG9m IC1FTk9NRU0gd2hlbgpNQVhfU0tCX0ZSQUdTIGxpbWl0IGlzIHJlYWNoZWQuCgpbMV0Ka2FzYW46 IENPTkZJR19LQVNBTl9JTkxJTkUgZW5hYmxlZAprYXNhbjogR1BGIGNvdWxkIGJlIGNhdXNlZCBi eSBOVUxMLXB0ciBkZXJlZiBvciB1c2VyIG1lbW9yeSBhY2Nlc3MKZ2VuZXJhbCBwcm90ZWN0aW9u IGZhdWx0OiAwMDAwIFsjMV0gU01QIEtBU0FOCkNQVTogMCBQSUQ6IDEzMjg1IENvbW06IHN5ei1l eGVjdXRvcjMgTm90IHRhaW50ZWQgNC4xOC4wLXJjNCsgIzE0NgpIYXJkd2FyZSBuYW1lOiBHb29n bGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29n bGUgMDEvMDEvMjAxMQpSSVA6IDAwMTA6dGNwX2dzb19zZWdtZW50KzB4M2RjLzB4MTc4MCBuZXQv aXB2NC90Y3Bfb2ZmbG9hZC5jOjEwNgpDb2RlOiBmMCBmZiBmZiAwZiA4NyAxYyBmZCBmZiBmZiBl OCAwMCA4OCAwYiBmYiA0OCA4YiA3NSBkMCA0OCBiOSAwMCAwMCAwMCAwMCAwMCBmYyBmZiBkZiA0 OCA4ZCBiZSA5MCAwMCAwMCAwMCA0OCA4OSBmOCA0OCBjMSBlOCAwMyA8MGY+IGI2IDE0IDA4IDQ4 IDhkIDg2IDk0IDAwIDAwIDAwIDQ4IDg5IGM2IDgzIGUwIDA3IDQ4IGMxIGVlIDAzIDBmClJTUDog MDAxODpmZmZmODgwMTliN2ZkMDYwIEVGTEFHUzogMDAwMTAyMDYKUkFYOiAwMDAwMDAwMDAwMDAw MDEyIFJCWDogMDAwMDAwMDAwMDAwMDAyMCBSQ1g6IGRmZmZmYzAwMDAwMDAwMDAKUkRYOiAwMDAw MDAwMDAwMDQwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDAwMCBSREk6IDAwMDAwMDAwMDAwMDAwOTAK UkJQOiBmZmZmODgwMTliN2ZkMGYwIFIwODogZmZmZjg4MDE5NTEwZTBjMCBSMDk6IGZmZmZlZDAw M2I1YzQ2ZDYKUjEwOiBmZmZmZWQwMDNiNWM0NmQ2IFIxMTogZmZmZjg4MDFkYWUyMzZiMyBSMTI6 IDAwMDAwMDAwMDAwMDAwMDEKUjEzOiBmZmZmODgwMWQ2YzU4MWY0IFIxNDogMDAwMDAwMDAwMDAw MDAwMCBSMTU6IGZmZmY4ODAxZDZjNTgxMjgKRlM6ICAwMDAwN2ZjYWU2NGQ2NzAwKDAwMDApIEdT OmZmZmY4ODAxZGFlMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAg RFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAwMDAwMDAwMDRl ODY2NCBDUjM6IDAwMDAwMDAxYjY2OWIwMDAgQ1I0OiAwMDAwMDAwMDAwMTQwNmYwCkRSMDogMDAw MDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAw CkRSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAw MDAwMDAwNDAwCkNhbGwgVHJhY2U6CiB0Y3A0X2dzb19zZWdtZW50KzB4MWMzLzB4NDQwIG5ldC9p cHY0L3RjcF9vZmZsb2FkLmM6NTQKIGluZXRfZ3NvX3NlZ21lbnQrMHg2NGUvMHgxMmQwIG5ldC9p cHY0L2FmX2luZXQuYzoxMzQyCiBpbmV0X2dzb19zZWdtZW50KzB4NjRlLzB4MTJkMCBuZXQvaXB2 NC9hZl9pbmV0LmM6MTM0Mgogc2tiX21hY19nc29fc2VnbWVudCsweDNiNS8weDc0MCBuZXQvY29y ZS9kZXYuYzoyNzkyCiBfX3NrYl9nc29fc2VnbWVudCsweDNjMy8weDg4MCBuZXQvY29yZS9kZXYu YzoyODY1CiBza2JfZ3NvX3NlZ21lbnQgaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaDo0MDk5IFtp bmxpbmVdCiB2YWxpZGF0ZV94bWl0X3NrYisweDY0MC8weGYzMCBuZXQvY29yZS9kZXYuYzozMTA0 CiBfX2Rldl9xdWV1ZV94bWl0KzB4YzE0LzB4MzkxMCBuZXQvY29yZS9kZXYuYzozNTYxCiBkZXZf cXVldWVfeG1pdCsweDE3LzB4MjAgbmV0L2NvcmUvZGV2LmM6MzYwMgogbmVpZ2hfaGhfb3V0cHV0 IGluY2x1ZGUvbmV0L25laWdoYm91ci5oOjQ3MyBbaW5saW5lXQogbmVpZ2hfb3V0cHV0IGluY2x1 ZGUvbmV0L25laWdoYm91ci5oOjQ4MSBbaW5saW5lXQogaXBfZmluaXNoX291dHB1dDIrMHgxMDYz LzB4MTg2MCBuZXQvaXB2NC9pcF9vdXRwdXQuYzoyMjkKIGlwX2ZpbmlzaF9vdXRwdXQrMHg4NDEv MHhmYTAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6MzE3CiBORl9IT09LX0NPTkQgaW5jbHVkZS9saW51 eC9uZXRmaWx0ZXIuaDoyNzYgW2lubGluZV0KIGlwX291dHB1dCsweDIyMy8weDg4MCBuZXQvaXB2 NC9pcF9vdXRwdXQuYzo0MDUKIGRzdF9vdXRwdXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDQ0IFtpbmxp bmVdCiBpcF9sb2NhbF9vdXQrMHhjNS8weDFiMCBuZXQvaXB2NC9pcF9vdXRwdXQuYzoxMjQKIGlw dHVubmVsX3htaXQrMHg1NjcvMHg4NTAgbmV0L2lwdjQvaXBfdHVubmVsX2NvcmUuYzo5MQogaXBf dHVubmVsX3htaXQrMHgxNTk4LzB4M2FmMSBuZXQvaXB2NC9pcF90dW5uZWwuYzo3NzgKIGlwaXBf dHVubmVsX3htaXQrMHgyNjQvMHgyYzAgbmV0L2lwdjQvaXBpcC5jOjMwOAogX19uZXRkZXZfc3Rh cnRfeG1pdCBpbmNsdWRlL2xpbnV4L25ldGRldmljZS5oOjQxNDggW2lubGluZV0KIG5ldGRldl9z dGFydF94bWl0IGluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmg6NDE1NyBbaW5saW5lXQogeG1pdF9v bmUgbmV0L2NvcmUvZGV2LmM6MzAzNCBbaW5saW5lXQogZGV2X2hhcmRfc3RhcnRfeG1pdCsweDI2 Yy8weGMzMCBuZXQvY29yZS9kZXYuYzozMDUwCiBfX2Rldl9xdWV1ZV94bWl0KzB4MjllZi8weDM5 MTAgbmV0L2NvcmUvZGV2LmM6MzU2OQogZGV2X3F1ZXVlX3htaXQrMHgxNy8weDIwIG5ldC9jb3Jl L2Rldi5jOjM2MDIKIG5laWdoX2RpcmVjdF9vdXRwdXQrMHgxNS8weDIwIG5ldC9jb3JlL25laWdo Ym91ci5jOjE0MDMKIG5laWdoX291dHB1dCBpbmNsdWRlL25ldC9uZWlnaGJvdXIuaDo0ODMgW2lu bGluZV0KIGlwX2ZpbmlzaF9vdXRwdXQyKzB4YTY3LzB4MTg2MCBuZXQvaXB2NC9pcF9vdXRwdXQu YzoyMjkKIGlwX2ZpbmlzaF9vdXRwdXQrMHg4NDEvMHhmYTAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6 MzE3CiBORl9IT09LX0NPTkQgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyNzYgW2lubGluZV0K IGlwX291dHB1dCsweDIyMy8weDg4MCBuZXQvaXB2NC9pcF9vdXRwdXQuYzo0MDUKIGRzdF9vdXRw dXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDQ0IFtpbmxpbmVdCiBpcF9sb2NhbF9vdXQrMHhjNS8weDFi MCBuZXQvaXB2NC9pcF9vdXRwdXQuYzoxMjQKIGlwX3F1ZXVlX3htaXQrMHg5ZGYvMHgxZjgwIG5l dC9pcHY0L2lwX291dHB1dC5jOjUwNAogdGNwX3RyYW5zbWl0X3NrYisweDFiZjkvMHgzZjEwIG5l dC9pcHY0L3RjcF9vdXRwdXQuYzoxMTY4CiB0Y3Bfd3JpdGVfeG1pdCsweDE2NDEvMHg1YzIwIG5l dC9pcHY0L3RjcF9vdXRwdXQuYzoyMzYzCiBfX3RjcF9wdXNoX3BlbmRpbmdfZnJhbWVzKzB4YjIv MHgyOTAgbmV0L2lwdjQvdGNwX291dHB1dC5jOjI1MzYKIHRjcF9wdXNoKzB4NjM4LzB4OGMwIG5l dC9pcHY0L3RjcC5jOjczNQogdGNwX3NlbmRtc2dfbG9ja2VkKzB4MmVjNS8weDNmMDAgbmV0L2lw djQvdGNwLmM6MTQxMAogdGNwX3NlbmRtc2crMHgyZi8weDUwIG5ldC9pcHY0L3RjcC5jOjE0NDcK IGluZXRfc2VuZG1zZysweDFhMS8weDY5MCBuZXQvaXB2NC9hZl9pbmV0LmM6Nzk4CiBzb2NrX3Nl bmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjY0MSBbaW5saW5lXQogc29ja19zZW5kbXNnKzB4ZDUv MHgxMjAgbmV0L3NvY2tldC5jOjY1MQogX19zeXNfc2VuZHRvKzB4M2Q3LzB4NjcwIG5ldC9zb2Nr ZXQuYzoxNzk3CiBfX2RvX3N5c19zZW5kdG8gbmV0L3NvY2tldC5jOjE4MDkgW2lubGluZV0KIF9f c2Vfc3lzX3NlbmR0byBuZXQvc29ja2V0LmM6MTgwNSBbaW5saW5lXQogX194NjRfc3lzX3NlbmR0 bysweGUxLzB4MWEwIG5ldC9zb2NrZXQuYzoxODA1CiBkb19zeXNjYWxsXzY0KzB4MWI5LzB4ODIw IGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5MAogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2Zy YW1lKzB4NDkvMHhiZQpSSVA6IDAwMzM6MHg0NTVhYjkKQ29kZTogMWQgYmEgZmIgZmYgYzMgNjYg MmUgMGYgMWYgODQgMDAgMDAgMDAgMDAgMDAgNjYgOTAgNDggODkgZjggNDggODkgZjcgNDggODkg ZDYgNDggODkgY2EgNGQgODkgYzIgNGQgODkgYzggNGMgOGIgNGMgMjQgMDggMGYgMDUgPDQ4PiAz ZCAwMSBmMCBmZiBmZiAwZiA4MyBlYiBiOSBmYiBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAw MCAwMApSU1A6IDAwMmI6MDAwMDdmY2FlNjRkNWM2OCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFY OiAwMDAwMDAwMDAwMDAwMDJjClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDA3ZmNhZTY0 ZDY2ZDQgUkNYOiAwMDAwMDAwMDAwNDU1YWI5ClJEWDogMDAwMDAwMDAwMDAwMDAwMSBSU0k6IDAw MDAwMDAwMjAwMDAyMDAgUkRJOiAwMDAwMDAwMDAwMDAwMDEzClJCUDogMDAwMDAwMDAwMDcyYmVh MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClIxMDogMDAwMDAw MDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMDAwMDAwMDE0ClIx MzogMDAwMDAwMDAwMDRjMTE0NSBSMTQ6IDAwMDAwMDAwMDA0ZDE4MTggUjE1OiAwMDAwMDAwMDAw MDAwMDA2Ck1vZHVsZXMgbGlua2VkIGluOgpEdW1waW5nIGZ0cmFjZSBidWZmZXI6CiAgIChmdHJh Y2UgYnVmZmVyIGVtcHR5KQoKRml4ZXM6IGRkZmYwMGQ0MjA0MyAoIm5ldDogTW92ZSBza2JfaGFz X3NoYXJlZF9mcmFnIGNoZWNrIG91dCBvZiBHUkUgY29kZSBhbmQgaW50byBzZWdtZW50YXRpb24i KQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBB bGV4YW5kZXIgRHV5Y2sgPGFsZXhhbmRlci5oLmR1eWNrQGludGVsLmNvbT4KUmVwb3J0ZWQtYnk6 IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkFja2VkLWJ5OiBBbGV4YW5kZXIg RHV5Y2sgPGFsZXhhbmRlci5oLmR1eWNrQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NrYnVmZi5jIHwg MTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25ldC9jb3JlL3NrYnVmZi5j CmluZGV4IDIzMDQxYjVjMGIyNy4uMmU1ZWViYTk3ZGU5IDEwMDY0NAotLS0gYS9uZXQvY29yZS9z a2J1ZmYuYworKysgYi9uZXQvY29yZS9za2J1ZmYuYwpAQCAtMzY3NSw2ICszNjc1LDcgQEAgc3Ry dWN0IHNrX2J1ZmYgKnNrYl9zZWdtZW50KHN0cnVjdCBza19idWZmICpoZWFkX3NrYiwKIAkJCQlu ZXRfd2Fybl9yYXRlbGltaXRlZCgKIAkJCQkJInNrYl9zZWdtZW50OiB0b28gbWFueSBmcmFnczog JXUgJXVcbiIsCiAJCQkJCXBvcywgbXNzKTsKKwkJCQllcnIgPSAtRUlOVkFMOwogCQkJCWdvdG8g ZXJyOwogCQkJfQogCkBAIC0zNzEzLDExICszNzE0LDEwIEBAIHN0cnVjdCBza19idWZmICpza2Jf c2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqaGVhZF9za2IsCiAKIHBlcmZvcm1fY3N1bV9jaGVjazoK IAkJaWYgKCFjc3VtKSB7Ci0JCQlpZiAoc2tiX2hhc19zaGFyZWRfZnJhZyhuc2tiKSkgewotCQkJ CWVyciA9IF9fc2tiX2xpbmVhcml6ZShuc2tiKTsKLQkJCQlpZiAoZXJyKQotCQkJCQlnb3RvIGVy cjsKLQkJCX0KKwkJCWlmIChza2JfaGFzX3NoYXJlZF9mcmFnKG5za2IpICYmCisJCQkgICAgX19z a2JfbGluZWFyaXplKG5za2IpKQorCQkJCWdvdG8gZXJyOworCiAJCQlpZiAoIW5za2ItPnJlbWNz dW1fb2ZmbG9hZCkKIAkJCQluc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9OT05FOwogCQkJU0tC X0dTT19DQihuc2tiKS0+Y3N1bSA9Ci0tIAoyLjE3LjEKCgpGcm9tIDMyYmQ5YTk5ZjQyMmQ2NjYz ZmVmOWI3NzNlYzliM2ZiNzEwY2NiMDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFy aWVsIExldmtvdmljaCA8bGFyaWVsQG1lbGxhbm94LmNvbT4KRGF0ZTogTW9uLCAyNSBKdW4gMjAx OCAxOToxMjowMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMjVdIG5ldC9tbHg1OiBBZGp1c3Qg Y2xvY2sgb3ZlcmZsb3cgd29yayBwZXJpb2QKClsgVXBzdHJlYW0gY29tbWl0IDMzMTgwYmVlODZh ODk0MGE4NDk1MGVkY2E0NjMxNWNkOWRkNmRlYjUgXQoKV2hlbiBkcml2ZXIgY29udmVydHMgSFcg dGltZXN0YW1wIHRvIHdhbGwgY2xvY2sgdGltZSBpdCBzdWJ0cmFjdHMKdGhlIGxhc3Qgc2F2ZWQg Y3ljbGUgY291bnRlciBmcm9tIHRoZSBIVyB0aW1lc3RhbXAgYW5kIGNvbnZlcnRzIHRoZQpkaWZm ZXJlbmNlIHRvIG5hbm9zZWNvbmRzLgpUaGUgY29udmVyc2lvbiBpcyBkb25lIGJ5IG11bHRpcGx5 aW5nIHRoZSBjeWNsZXMgZGlmZmVyZW5jZSB3aXRoIHRoZQpjbG9jayBtdWx0aXBsaWVyIHZhbHVl IGFzIGEgZmlyc3Qgc3RlcCBhbmQgdGhlcmVmb3JlIHRoZSBjeWNsZXMKZGlmZmVyZW5jZSBzaG91 bGQgYmUgc21hbGwgZW5vdWdoIHNvIHRoYXQgdGhlIG11bHRpcGxpY2F0aW9uIHByb2R1Y3QKZG9l c24ndCBleGNlZWQgNjRiaXQuCgpUaGUgb3ZlcmZsb3cgaGFuZGxpbmcgcm91dGluZSBpcyBpbiBj aGFyZ2Ugb2YgdXBkYXRpbmcgdGhlIGxhc3Qgc2F2ZWQKY3ljbGUgY291bnRlciBpbiBkcml2ZXIg YW5kIGl0IGlzIGNhbGxlZCBwZXJpb2RpY2FsbHkgdXNpbmcga2VybmVsCmRlbGF5ZWQgd29ya3F1 ZXVlLgoKVGhlIGRlbGF5IHBlcmlvZCBmb3IgdGhpcyB3b3JrIGlzIGNhbGN1bGF0ZWQgdXNpbmcg dGhlIG1heCBIVyBjeWNsZQpjb3VudGVyIHZhbHVlIChhIDQxIGJpdCBtYXNrKSBhcyBhIGJhc2Ug d2hpY2ggZG9lc24ndCB0YWtlIHRoZSA2NGJpdApsaW1pdCBpbnRvIGFjY291bnQgc28gdGhlIGRl bGF5IHBlcmlvZCBtYXkgYmUgaW5jb3JyZWN0IGFuZCB0b28KbG9uZyB0byBwcmV2ZW50IGEgbGFy Z2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBIVyBjb3VudGVyIGFuZCB0aGUgbGFzdApzYXZlZCBj b3VudGVyIGluIFNXLgoKVGhpcyBjaGFuZ2UgYWRqdXN0cyB0aGUgd29yayBwZXJpb2QgZm9yIHRo ZSBIVyBjbG9jayBvdmVyZmxvdyB3b3JrIGJ5CnRha2luZyB0aGUgbWluaW11bSBiZXR3ZWVuIHRo ZSBwcmV2aW91cyB2YWx1ZSBhbmQgdGhlIHF1b3RpZW50IG9mIG1heAp1NjQgdmFsdWUgYW5kIHRo ZSBjbG9jayBtdWx0aXBsaWVyIHZhbHVlLgoKRml4ZXM6IGVmOTgxNGRlYWZkMCAoIm5ldC9tbHg1 ZTogQWRkIEhXIHRpbWVzdGFtcGluZyAoVFMpIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBBcmll bCBMZXZrb3ZpY2ggPGxhcmllbEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBFcmFuIEJlbiBF bGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVk IDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9jbG9jay5jIHwgMTIgKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwg MTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9jbG9jay5jCmluZGV4IDg0ZGQ2M2U3NDA0MS4u MjcwNDAwMDlkODdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fY2xvY2suYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fY2xvY2suYwpAQCAtNTQ1LDYgKzU0NSw3IEBAIHZvaWQgbWx4NWVfcHBzX2V2 ZW50X2hhbmRsZXIoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiB2b2lkIG1seDVlX3RpbWVzdGFt cF9pbml0KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogewogCXN0cnVjdCBtbHg1ZV90c3RhbXAg KnRzdGFtcCA9ICZwcml2LT50c3RhbXA7CisJdTY0IG92ZXJmbG93X2N5Y2xlczsKIAl1NjQgbnM7 CiAJdTY0IGZyYWMgPSAwOwogCXUzMiBkZXZfZnJlcTsKQEAgLTU2OSwxMCArNTcwLDE3IEBAIHZv aWQgbWx4NWVfdGltZXN0YW1wX2luaXQoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAKIAkvKiBD YWxjdWxhdGUgcGVyaW9kIGluIHNlY29uZHMgdG8gY2FsbCB0aGUgb3ZlcmZsb3cgd2F0Y2hkb2cg LSB0byBtYWtlCiAJICogc3VyZSBjb3VudGVyIGlzIGNoZWNrZWQgYXQgbGVhc3Qgb25jZSBldmVy eSB3cmFwIGFyb3VuZC4KKwkgKiBUaGUgcGVyaW9kIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmlt dW0gYmV0d2VlbiBtYXggSFcgY3ljbGVzIGNvdW50CisJICogKFRoZSBjbG9jayBzb3VyY2UgbWFz aykgYW5kIG1heCBhbW91bnQgb2YgY3ljbGVzIHRoYXQgY2FuIGJlCisJICogbXVsdGlwbGllZCBi eSBjbG9jayBtdWx0aXBsaWVyIHdoZXJlIHRoZSByZXN1bHQgZG9lc24ndCBleGNlZWQKKwkgKiA2 NGJpdHMuCiAJICovCi0JbnMgPSBjeWNsZWNvdW50ZXJfY3ljMm5zKCZ0c3RhbXAtPmN5Y2xlcywg dHN0YW1wLT5jeWNsZXMubWFzaywKKwlvdmVyZmxvd19jeWNsZXMgPSBkaXY2NF91NjQofjBVTEwg Pj4gMSwgdHN0YW1wLT5jeWNsZXMubXVsdCk7CisJb3ZlcmZsb3dfY3ljbGVzID0gbWluKG92ZXJm bG93X2N5Y2xlcywgdHN0YW1wLT5jeWNsZXMubWFzayA+PiAxKTsKKworCW5zID0gY3ljbGVjb3Vu dGVyX2N5YzJucygmdHN0YW1wLT5jeWNsZXMsIG92ZXJmbG93X2N5Y2xlcywKIAkJCQkgZnJhYywg JmZyYWMpOwotCWRvX2RpdihucywgTlNFQ19QRVJfU0VDIC8gMiAvIEhaKTsKKwlkb19kaXYobnMs IE5TRUNfUEVSX1NFQyAvIEhaKTsKIAl0c3RhbXAtPm92ZXJmbG93X3BlcmlvZCA9IG5zOwogCiAJ SU5JVF9XT1JLKCZ0c3RhbXAtPnBwc19pbmZvLm91dF93b3JrLCBtbHg1ZV9wcHNfb3V0KTsKLS0g CjIuMTcuMQoKCkZyb20gYzkwMzZiYTAyNDNiNDU3ZGZiNzNhMzZiNzkyNGYzNmU0MzcyMWU5YiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJhbiBCZW4gRWxpc2hhIDxlcmFuYmVAbWVs bGFub3guY29tPgpEYXRlOiBTdW4sIDggSnVsIDIwMTggMTQ6NTI6MTIgKzAzMDAKU3ViamVjdDog W1BBVENIIDA3LzI1XSBuZXQvbWx4NWU6IERvbid0IGFsbG93IGFSRlMgZm9yIGVuY2Fwc3VsYXRl ZCBwYWNrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCBkMmUxYzU3YmNmOWEwN2NiYjY3ZjMwZWNmMjM4 ZjI5ODc5OWJjZTFjIF0KCkRyaXZlciBpcyB5ZXQgdG8gc3VwcG9ydCBhUkZTIGZvciBlbmNhcHN1 bGF0ZWQgcGFja2V0cywgcmV0dXJuIGVhcmx5CmVycm9yIGluIHN1Y2ggY2FzZS4KCkZpeGVzOiAx OGM5MDhlNDc3ZGMgKCJuZXQvbWx4NWU6IEFkZCBhY2NlbGVyYXRlZCBSRlMgc3VwcG9ydCIpClNp Z25lZC1vZmYtYnk6IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KUmV2aWV3 ZWQtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTog U2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FyZnMuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX2FyZnMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9hcmZzLmMKaW5kZXggMTJkM2NlZDYxMTE0Li4wZjBjMWQ3YjgwYzAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hcmZz LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FyZnMu YwpAQCAtNzExLDYgKzcxMSw5IEBAIGludCBtbHg1ZV9yeF9mbG93X3N0ZWVyKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJICAgIHNrYi0+cHJvdG9j b2wgIT0gaHRvbnMoRVRIX1BfSVBWNikpCiAJCXJldHVybiAtRVBST1RPTk9TVVBQT1JUOwogCisJ aWYgKHNrYi0+ZW5jYXBzdWxhdGlvbikKKwkJcmV0dXJuIC1FUFJPVE9OT1NVUFBPUlQ7CisKIAlh cmZzX3QgPSBhcmZzX2dldF90YWJsZShhcmZzLCBhcmZzX2dldF9pcF9wcm90byhza2IpLCBza2It PnByb3RvY29sKTsKIAlpZiAoIWFyZnNfdCkKIAkJcmV0dXJuIC1FUFJPVE9OT1NVUFBPUlQ7Ci0t IAoyLjE3LjEKCgpGcm9tIGFlNjA0MWYyMGU5NGE2M2ZmMmYwOTE4MjVlOGI0YTVkOWY2MzJmN2Yg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1l bGxhbm94LmNvbT4KRGF0ZTogU3VuLCA4IEp1bCAyMDE4IDEzOjA4OjU1ICswMzAwClN1YmplY3Q6 IFtQQVRDSCAwOC8yNV0gbmV0L21seDVlOiBGaXggcXVvdGEgY291bnRpbmcgaW4gYVJGUyBleHBp cmUgZmxvdwoKWyBVcHN0cmVhbSBjb21taXQgMjYzMGJhZTgwMTg4MjNjM2I4ODc4OGI2OWZiOWYx NmVhM2I0YTExZSBdCgpRdW90YSBzaG91bGQgZm9sbG93IHRoZSBhbW91bnQgb2YgcnVsZXMgd2hp Y2ggZG8gZXhwaXJlLCBhbmQgbm90IHRoZQpudW1iZXIgb2YgcnVsZXMgdGhhdCB3ZXJlIGV4YW1p bmVkLCBmaXhlZCB0aGF0LgoKRml4ZXM6IDE4YzkwOGU0NzdkYyAoIm5ldC9tbHg1ZTogQWRkIGFj Y2VsZXJhdGVkIFJGUyBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogRXJhbiBCZW4gRWxpc2hhIDxl cmFuYmVAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogTWFvciBHb3R0bGllYiA8bWFvcmdAbWVs bGFub3guY29tPgpSZXZpZXdlZC1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29t PgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYXJmcy5jIHwgNCAr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hcmZz LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYXJmcy5jCmlu ZGV4IDBmMGMxZDdiODBjMC4uZTg3OTIzZTA0NmM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYXJmcy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hcmZzLmMKQEAgLTM4MSwxNCArMzgxLDE0IEBA IHN0YXRpYyB2b2lkIGFyZnNfbWF5X2V4cGlyZV9mbG93KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2 KQogCUhMSVNUX0hFQUQoZGVsX2xpc3QpOwogCXNwaW5fbG9ja19iaCgmcHJpdi0+ZnMuYXJmcy5h cmZzX2xvY2spOwogCW1seDVlX2Zvcl9lYWNoX2FyZnNfcnVsZShhcmZzX3J1bGUsIGh0bXAsIHBy aXYtPmZzLmFyZnMuYXJmc190YWJsZXMsIGksIGopIHsKLQkJaWYgKHF1b3RhKysgPiBNTFg1RV9B UkZTX0VYUElSWV9RVU9UQSkKLQkJCWJyZWFrOwogCQlpZiAoIXdvcmtfcGVuZGluZygmYXJmc19y dWxlLT5hcmZzX3dvcmspICYmCiAJCSAgICBycHNfbWF5X2V4cGlyZV9mbG93KHByaXYtPm5ldGRl diwKIAkJCQkJYXJmc19ydWxlLT5yeHEsIGFyZnNfcnVsZS0+Zmxvd19pZCwKIAkJCQkJYXJmc19y dWxlLT5maWx0ZXJfaWQpKSB7CiAJCQlobGlzdF9kZWxfaW5pdCgmYXJmc19ydWxlLT5obGlzdCk7 CiAJCQlobGlzdF9hZGRfaGVhZCgmYXJmc19ydWxlLT5obGlzdCwgJmRlbF9saXN0KTsKKwkJCWlm IChxdW90YSsrID4gTUxYNUVfQVJGU19FWFBJUllfUVVPVEEpCisJCQkJYnJlYWs7CiAJCX0KIAl9 CiAJc3Bpbl91bmxvY2tfYmgoJnByaXYtPmZzLmFyZnMuYXJmc19sb2NrKTsKLS0gCjIuMTcuMQoK CkZyb20gMjMyMmFhZTM1ZmNhMzUyYzg0OTIzNzExZDY4NjEyNDQwYTZlYmVjNyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpEYXRl OiBUaHUsIDE5IEp1bCAyMDE4IDEyOjQxOjE4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOS8yNV0g bmV0L2lwdjY6IEZpeCBsaW5rbG9jYWwgdG8gZ2xvYmFsIGFkZHJlc3Mgd2l0aCBWUkYKClsgVXBz dHJlYW0gY29tbWl0IDI0YjcxMWVkZmMzNGJjNDU3NzdhM2YwNjg4MTJiN2QxZWQwMDRhNWQgXQoK RXhhbXBsZSBzZXR1cDoKICAgIGhvc3Q6IGlwIC02IGFkZHIgYWRkIGRldiBldGgxIDIwMDE6ZGI4 OjEwNDo6NAogICAgICAgICAgIHdoZXJlIGV0aDEgaXMgZW5zbGF2ZWQgdG8gYSBWUkYKCiAgICBz d2l0Y2g6IGlwIC02IHJvIGFkZCAyMDAxOmRiODoxMDQ6OjQvMTI4IGRldiBicjEKICAgICAgICAg ICAgd2hlcmUgYnIxIG9ubHkgaGFzIGFuIExMQQoKICAgICAgICAgICBwaW5nNiAyMDAxOmRiODox MDQ6OjQKICAgICAgICAgICBzc2ggICAyMDAxOmRiODoxMDQ6OjQKCihOT1RFOiBVRFAgd29ya3Mg ZmluZSBpZiB0aGUgUEtUSU5GTyBoYXMgdGhlIGFkZHJlc3Mgc2V0IHRvIHRoZSBnbG9iYWwKYWRk cmVzcyBhbmQgaWZpbmRleCBpcyBzZXQgdG8gdGhlIGluZGV4IG9mIGV0aDEgd2l0aCBhIGRlc3Rp bmF0aW9uIGFuCkxMQSkuCgpGb3IgSUNNUCwgaWNtcDZfaWlmIG5lZWRzIHRvIGJlIHVwZGF0ZWQg dG8gY2hlY2sgaWYgc2tiLT5kZXYgaXMgYW4KTDMgbWFzdGVyLiBJZiBpdCBpcyB0aGVuIHJldHVy biB0aGUgaWZpbmRleCBmcm9tIHJ0NmlfaWRldiBzaW1pbGFyCnRvIHdoYXQgaXMgZG9uZSBmb3Ig bG9vcGJhY2suCgpGb3IgVENQLCByZXN0b3JlIHRoZSBvcmlnaW5hbCB0Y3BfdjZfaWlmIGRlZmlu aXRpb24gd2hpY2ggaXMgbmVlZGVkIGluCm1vc3QgcGxhY2VzIGFuZCBhZGQgYSBuZXcgdGNwX3Y2 X2lpZl9sM19zbGF2ZSB0aGF0IGNvbnNpZGVycyB0aGUKbDNfc2xhdmUgdmFyaWFiaWxpdHkuIFRo aXMgbGF0dGVyIGNoZWNrIGlzIG9ubHkgbmVlZGVkIGZvciBzb2NrZXQKbG9va3Vwcy4KCkZpeGVz OiA5ZmY3NDM4NDYwMGEgKCJuZXQ6IHZyZjogSGFuZGxlIGlwdjYgbXVsdGljYXN0IGFuZCBsaW5r LWxvY2FsIGFkZHJlc3NlcyIpClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGluY2x1ZGUvbmV0L3RjcC5oICAgfCA1ICsrKysrCiBuZXQvaXB2Ni9pY21wLmMg ICAgIHwgNSArKystLQogbmV0L2lwdjYvdGNwX2lwdjYuYyB8IDYgKysrKy0tCiAzIGZpbGVzIGNo YW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaAppbmRleCBmYjY1MzczNmYzMzUuLjNi NDlmM2FhZmVkNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvdGNwLmgKKysrIGIvaW5jbHVkZS9u ZXQvdGNwLmgKQEAgLTg1Nyw2ICs4NTcsMTEgQEAgc3RydWN0IHRjcF9za2JfY2IgewogICogYXMg VENQIG1vdmVzIElQNkNCIGludG8gYSBkaWZmZXJlbnQgbG9jYXRpb24gaW4gc2tiLT5jYltdCiAg Ki8KIHN0YXRpYyBpbmxpbmUgaW50IHRjcF92Nl9paWYoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNr YikKK3sKKwlyZXR1cm4gVENQX1NLQl9DQihza2IpLT5oZWFkZXIuaDYuaWlmOworfQorCitzdGF0 aWMgaW5saW5lIGludCB0Y3BfdjZfaWlmX2wzX3NsYXZlKGNvbnN0IHN0cnVjdCBza19idWZmICpz a2IpCiB7CiAJYm9vbCBsM19zbGF2ZSA9IGlwdjZfbDNtZGV2X3NrYihUQ1BfU0tCX0NCKHNrYikt PmhlYWRlci5oNi5mbGFncyk7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2ljbXAuYyBiL25ldC9p cHY2L2ljbXAuYwppbmRleCA1YWNiNTQ0MDViMTAuLmM1ZjJiMTdiN2VlMSAxMDA2NDQKLS0tIGEv bmV0L2lwdjYvaWNtcC5jCisrKyBiL25ldC9pcHY2L2ljbXAuYwpAQCAtNDA1LDkgKzQwNSwxMCBA QCBzdGF0aWMgaW50IGljbXA2X2lpZihjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJLyog Zm9yIGxvY2FsIHRyYWZmaWMgdG8gbG9jYWwgYWRkcmVzcywgc2tiIGRldiBpcyB0aGUgbG9vcGJh Y2sKIAkgKiBkZXZpY2UuIENoZWNrIGlmIHRoZXJlIGlzIGEgZHN0IGF0dGFjaGVkIHRvIHRoZSBz a2IgYW5kIGlmIHNvCi0JICogZ2V0IHRoZSByZWFsIGRldmljZSBpbmRleC4KKwkgKiBnZXQgdGhl IHJlYWwgZGV2aWNlIGluZGV4LiBTYW1lIGlzIG5lZWRlZCBmb3IgcmVwbGllcyB0byBhIGxpbmsK KwkgKiBsb2NhbCBhZGRyZXNzIG9uIGEgZGV2aWNlIGVuc2xhdmVkIHRvIGFuIEwzIG1hc3RlciBk ZXZpY2UKIAkgKi8KLQlpZiAodW5saWtlbHkoaWlmID09IExPT1BCQUNLX0lGSU5ERVgpKSB7CisJ aWYgKHVubGlrZWx5KGlpZiA9PSBMT09QQkFDS19JRklOREVYIHx8IG5ldGlmX2lzX2wzX21hc3Rl cihza2ItPmRldikpKSB7CiAJCWNvbnN0IHN0cnVjdCBydDZfaW5mbyAqcnQ2ID0gc2tiX3J0Nl9p bmZvKHNrYik7CiAKIAkJaWYgKHJ0NikKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3RjcF9pcHY2LmMg Yi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmluZGV4IDM1ZThhZWY5Y2VlZC4uYmE4NTg2YWFkZmZhIDEw MDY0NAotLS0gYS9uZXQvaXB2Ni90Y3BfaXB2Ni5jCisrKyBiL25ldC9pcHY2L3RjcF9pcHY2LmMK QEAgLTkxOCw3ICs5MTgsOCBAQCBzdGF0aWMgdm9pZCB0Y3BfdjZfc2VuZF9yZXNldChjb25zdCBz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJCQkJCSAgICZ0Y3BfaGFzaGlu Zm8sIE5VTEwsIDAsCiAJCQkJCSAgICZpcHY2aC0+c2FkZHIsCiAJCQkJCSAgIHRoLT5zb3VyY2Us ICZpcHY2aC0+ZGFkZHIsCi0JCQkJCSAgIG50b2hzKHRoLT5zb3VyY2UpLCB0Y3BfdjZfaWlmKHNr YiksCisJCQkJCSAgIG50b2hzKHRoLT5zb3VyY2UpLAorCQkJCQkgICB0Y3BfdjZfaWlmX2wzX3Ns YXZlKHNrYiksCiAJCQkJCSAgIHRjcF92Nl9zZGlmKHNrYikpOwogCQlpZiAoIXNrMSkKIAkJCWdv dG8gb3V0OwpAQCAtMTU3Myw3ICsxNTc0LDggQEAgc3RhdGljIGludCB0Y3BfdjZfcmN2KHN0cnVj dCBza19idWZmICpza2IpCiAJCQkJCSAgICBza2IsIF9fdGNwX2hkcmxlbih0aCksCiAJCQkJCSAg ICAmaXB2Nl9oZHIoc2tiKS0+c2FkZHIsIHRoLT5zb3VyY2UsCiAJCQkJCSAgICAmaXB2Nl9oZHIo c2tiKS0+ZGFkZHIsCi0JCQkJCSAgICBudG9ocyh0aC0+ZGVzdCksIHRjcF92Nl9paWYoc2tiKSwK KwkJCQkJICAgIG50b2hzKHRoLT5kZXN0KSwKKwkJCQkJICAgIHRjcF92Nl9paWZfbDNfc2xhdmUo c2tiKSwKIAkJCQkJICAgIHNkaWYpOwogCQlpZiAoc2syKSB7CiAJCQlzdHJ1Y3QgaW5ldF90aW1l d2FpdF9zb2NrICp0dyA9IGluZXRfdHdzayhzayk7Ci0tIAoyLjE3LjEKCgpGcm9tIGEzNWViNTA3 MjkzNmY4M2Q2NTY0YzE3MmQ1OWI5MjhkNDY3YWE2YjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyMCBK dWwgMjAxOCAxNDowNDoyNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjVdIG11bHRpY2FzdDog ZG8gbm90IHJlc3RvcmUgZGVsZXRlZCByZWNvcmQgc291cmNlIGZpbHRlcgogbW9kZSB0byBuZXcg b25lCgpUaGVyZSBhcmUgdHdvIHNjZW5hcmlvcyB0aGF0IHdlIHdpbGwgcmVzdG9yZSBkZWxldGVk IHJlY29yZHMuIFRoZSBmaXJzdCBpcwp3aGVuIGRldmljZSBkb3duIGFuZCB1cChvciB1bm1hcC9y ZW1hcCkuIEluIHRoaXMgc2NlbmFyaW8gdGhlIG5ldyBmaWx0ZXIKbW9kZSBpcyBzYW1lIHdpdGgg cHJldmlvdXMgb25lLiBCZWNhdXNlIHdlIGdldCBpdCBmcm9tIGluX2Rldi0+bWNfbGlzdCBhbmQK d2UgZG8gbm90IHRvdWNoIGl0IGR1cmluZyBkZXZpY2UgZG93biBhbmQgdXAuCgpUaGUgb3RoZXIg c2NlbmFyaW8gaXMgd2hlbiBhIG5ldyBzb2NrZXQgam9pbiBhIGdyb3VwIHdoaWNoIHdhcyBqdXN0 IGRlbGV0ZQphbmQgbm90IGZpbmlzaCBzZW5kaW5nIHN0YXR1cyByZXBvcnRzLiBJbiB0aGlzIHNj ZW5hcmlvLCB3ZSBzaG91bGQgdXNlIHRoZQpjdXJyZW50IGZpbHRlciBtb2RlIGluc3RlYWQgb2Yg cmVzdG9yZSBvbGQgb25lLiBIZXJlIGFyZSA0IGNhc2VzIGluIHRvdGFsLgoKb2xkX3NvY2tldCAg ICAgICAgbmV3X3NvY2tldCAgICAgICBiZWZvcmVfZml4ICAgICAgIGFmdGVyX2ZpeAogIElOKEEp ICAgICAgICAgICAgIElOKEEpICAgICAgICAgICBBTExPVyhBKSAgICAgICAgIEFMTE9XKEEpCiAg SU4oQSkgICAgICAgICAgICAgRVgoICkgICAgICAgICAgIFRPX0lOKCApICAgICAgICAgVE9fRVgo ICkKICBFWCggKSAgICAgICAgICAgICBJTihBKSAgICAgICAgICAgVE9fRVgoICkgICAgICAgICBB TExPVyhBKQogIEVYKCApICAgICAgICAgICAgIEVYKCApICAgICAgICAgICBUT19FWCggKSAgICAg ICAgIFRPX0VYKCApCgpGaXhlczogMjQ4MDNmMzhhNWMwYiAoaWdtcDogZG8gbm90IHJlbW92ZSBp Z21wIHNvdWNlIGxpc3QgaW5mbyB3aGVuIHNldCBsaW5rIGRvd24pCkZpeGVzOiAxNjY2ZDQ5ZTFk NDE2IChtbGQ6IGRvIG5vdCByZW1vdmUgbWxkIHNvdWNlIGxpc3QgaW5mbyB3aGVuIHNldCBsaW5r IGRvd24pClNpZ25lZC1vZmYtYnk6IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9pcHY0L2lnbXAuYyAgfCAzICstLQogbmV0L2lwdjYvbWNhc3QuYyB8IDMgKy0tCiAyIGZp bGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2NC9pZ21wLmMgYi9uZXQvaXB2NC9pZ21wLmMKaW5kZXggZmJlYjM1YWQ4MDRiLi41 MDJhYWUzZTNhYjggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lnbXAuYworKysgYi9uZXQvaXB2NC9p Z21wLmMKQEAgLTEyMDEsOCArMTIwMSw3IEBAIHN0YXRpYyB2b2lkIGlnbXB2M19kZWxfZGVscmVj KHN0cnVjdCBpbl9kZXZpY2UgKmluX2Rldiwgc3RydWN0IGlwX21jX2xpc3QgKmltKQogCWlmIChw bWMpIHsKIAkJaW0tPmludGVyZmFjZSA9IHBtYy0+aW50ZXJmYWNlOwogCQlpbS0+Y3Jjb3VudCA9 IGluX2Rldi0+bXJfcXJ2ID86IG5ldC0+aXB2NC5zeXNjdGxfaWdtcF9xcnY7Ci0JCWltLT5zZm1v ZGUgPSBwbWMtPnNmbW9kZTsKLQkJaWYgKHBtYy0+c2Ztb2RlID09IE1DQVNUX0lOQ0xVREUpIHsK KwkJaWYgKGltLT5zZm1vZGUgPT0gTUNBU1RfSU5DTFVERSkgewogCQkJaW0tPnRvbWIgPSBwbWMt PnRvbWI7CiAJCQlpbS0+c291cmNlcyA9IHBtYy0+c291cmNlczsKIAkJCWZvciAocHNmID0gaW0t PnNvdXJjZXM7IHBzZjsgcHNmID0gcHNmLT5zZl9uZXh0KQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv bWNhc3QuYyBiL25ldC9pcHY2L21jYXN0LmMKaW5kZXggOWEzOGEyYzY0MWZhLi42ZmQ5MTNkNjM4 MzUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L21jYXN0LmMKKysrIGIvbmV0L2lwdjYvbWNhc3QuYwpA QCAtNzcxLDggKzc3MSw3IEBAIHN0YXRpYyB2b2lkIG1sZF9kZWxfZGVscmVjKHN0cnVjdCBpbmV0 Nl9kZXYgKmlkZXYsIHN0cnVjdCBpZm1jYWRkcjYgKmltKQogCWlmIChwbWMpIHsKIAkJaW0tPmlk ZXYgPSBwbWMtPmlkZXY7CiAJCWltLT5tY2FfY3Jjb3VudCA9IGlkZXYtPm1jX3FydjsKLQkJaW0t Pm1jYV9zZm1vZGUgPSBwbWMtPm1jYV9zZm1vZGU7Ci0JCWlmIChwbWMtPm1jYV9zZm1vZGUgPT0g TUNBU1RfSU5DTFVERSkgeworCQlpZiAoaW0tPm1jYV9zZm1vZGUgPT0gTUNBU1RfSU5DTFVERSkg ewogCQkJaW0tPm1jYV90b21iID0gcG1jLT5tY2FfdG9tYjsKIAkJCWltLT5tY2Ffc291cmNlcyA9 IHBtYy0+bWNhX3NvdXJjZXM7CiAJCQlmb3IgKHBzZiA9IGltLT5tY2Ffc291cmNlczsgcHNmOyBw c2YgPSBwc2YtPnNmX25leHQpCi0tIAoyLjE3LjEKCgpGcm9tIGFkZTgwYzhhYjA3ZjVkM2ZkMTQ2 ZDlmNmI1Y2VmODhlNTdjYThmNWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhlaW5l ciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTkgSnVsIDIwMTgg MDg6MTU6MTYgKzAyMDAKU3ViamVjdDogW1BBVENIIDExLzI1XSBuZXQ6IHBoeTogY29uc2lkZXIg UEhZX0lHTk9SRV9JTlRFUlJVUFQgaW4KIHBoeV9zdGFydF9hbmVnX3ByaXYKClsgVXBzdHJlYW0g Y29tbWl0IDIxNWQwOGE4NWI5YWNmNWUxZmU5ZGJmNTBmMTc3NGNkZTMzM2VmZWYgXQoKVGhlIHNp dHVhdGlvbiBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgY2FuIG9jY3VyIGFsc28gd2l0aApQSFlf SUdOT1JFX0lOVEVSUlVQVCwgdGhlcmVmb3JlIGNoYW5nZSB0aGUgY29uZGl0aW9uIHRvIGluY2x1 ZGUgaXQuCgpGaXhlczogZjU1NWYzNGZkYzU4ICgibmV0OiBwaHk6IGZpeCBhdXRvLW5lZ290aWF0 aW9uIHN0YWxsIGR1ZSB0byB1bmF2YWlsYWJsZSBpbnRlcnJ1cHQiKQpTaWduZWQtb2ZmLWJ5OiBI ZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3 IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeS5jIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvcGh5L3BoeS5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeS5jCmluZGV4IGRiYTZk MTdhZDg4NS4uNDdkMmVmMmZiOWIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5LmMK KysrIGIvZHJpdmVycy9uZXQvcGh5L3BoeS5jCkBAIC01MTEsNyArNTExLDcgQEAgc3RhdGljIGlu dCBwaHlfc3RhcnRfYW5lZ19wcml2KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIGJvb2wgc3lu YykKIAkgKiBuZWdvdGlhdGlvbiBtYXkgYWxyZWFkeSBiZSBkb25lIGFuZCBhbmVnIGludGVycnVw dCBtYXkgbm90IGJlCiAJICogZ2VuZXJhdGVkLgogCSAqLwotCWlmIChwaHlfaW50ZXJydXB0X2lz X3ZhbGlkKHBoeWRldikgJiYgKHBoeWRldi0+c3RhdGUgPT0gUEhZX0FOKSkgeworCWlmIChwaHlk ZXYtPmlycSAhPSBQSFlfUE9MTCAmJiBwaHlkZXYtPnN0YXRlID09IFBIWV9BTikgewogCQllcnIg PSBwaHlfYW5lZ19kb25lKHBoeWRldik7CiAJCWlmIChlcnIgPiAwKSB7CiAJCQl0cmlnZ2VyID0g dHJ1ZTsKLS0gCjIuMTcuMQoKCkZyb20gYTYwZTJiODNiODhhZGE5YWU4YjA0NDk5ZjA0Y2JmYzIy YTEwYmU1NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxk YW5pZWxAaW9nZWFyYm94Lm5ldD4KRGF0ZTogTW9uLCAyMyBKdWwgMjAxOCAyMjozNzo1NCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMTIvMjVdIHNvY2s6IGZpeCBzZyBwYWdlIGZyYWcgY29hbGVzY2lu ZyBpbiBza19hbGxvY19zZwoKWyBVcHN0cmVhbSBjb21taXQgMTQ0ZmUyYmZkMjM2ZGM4MTRlYWU1 ODdhZWE3ZTJhZjAzZGJkZDc1NSBdCgpDdXJyZW50IHNnIGNvYWxlc2NpbmcgbG9naWMgaW4gc2tf YWxsb2Nfc2coKSAobGF0dGVyIGlzIHVzZWQgYnkgdGxzIGFuZApzb2NrbWFwKSBpcyBub3QgcXVp dGUgY29ycmVjdCBpbiB0aGF0IHdlIGRvIGZldGNoIHRoZSBwcmV2aW91cyBzZyBlbnRyeSwKaG93 ZXZlciB0aGUgc3Vic2VxdWVudCBjaGVjayB3aGV0aGVyIHRoZSByZWZpbGxlZCBwYWdlIGZyYWcg ZnJvbSB0aGUKc29ja2V0IGlzIHN0aWxsIHRoZSBzYW1lIGFzIGZyb20gdGhlIGxhc3QgZW50cnkg d2l0aCBwcmlvciBvZmZzZXQgYW5kCmxlbmd0aCBtYXRjaGluZyB0aGUgc3RhcnQgb2YgdGhlIGN1 cnJlbnQgYnVmZmVyIGlzIGNvbXBhcmluZyBhbHdheXMgdGhlCmZpcnN0IHNnIGxpc3QgZW50cnkg aW5zdGVhZCBvZiB0aGUgcHJpb3Igb25lLgoKRml4ZXM6IDNjNGQ3NTU5MTU5YiAoInRsczoga2Vy bmVsIFRMUyBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxA aW9nZWFyYm94Lm5ldD4KQWNrZWQtYnk6IERhdmUgV2F0c29uIDxkYXZlandhdHNvbkBmYi5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvdGxzL3Rsc19zdy5jIHwgNyArKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3LmMgYi9u ZXQvdGxzL3Rsc19zdy5jCmluZGV4IDhlZTRlNjY3YTQxNC4uZmI3OWNhZjU2ZDBlIDEwMDY0NAot LS0gYS9uZXQvdGxzL3Rsc19zdy5jCisrKyBiL25ldC90bHMvdGxzX3N3LmMKQEAgLTEzNSw5ICsx MzUsMTAgQEAgc3RhdGljIGludCBhbGxvY19zZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIHN0 cnVjdCBzY2F0dGVybGlzdCAqc2csCiAJCXBmcmFnLT5vZmZzZXQgKz0gdXNlOwogCiAJCXNnZSA9 IHNnICsgbnVtX2VsZW0gLSAxOwotCQlpZiAobnVtX2VsZW0gPiBmaXJzdF9jb2FsZXNjZSAmJiBz Z19wYWdlKHNnKSA9PSBwZnJhZy0+cGFnZSAmJgotCQkgICAgc2ctPm9mZnNldCArIHNnLT5sZW5n dGggPT0gb3JpZ19vZmZzZXQpIHsKLQkJCXNnLT5sZW5ndGggKz0gdXNlOworCisJCWlmIChudW1f ZWxlbSA+IGZpcnN0X2NvYWxlc2NlICYmIHNnX3BhZ2Uoc2dlKSA9PSBwZnJhZy0+cGFnZSAmJgor CQkgICAgc2dlLT5vZmZzZXQgKyBzZ2UtPmxlbmd0aCA9PSBvcmlnX29mZnNldCkgeworCQkJc2dl LT5sZW5ndGggKz0gdXNlOwogCQl9IGVsc2UgewogCQkJc2dlKys7CiAJCQlzZ191bm1hcmtfZW5k KHNnZSk7Ci0tIAoyLjE3LjEKCgpGcm9tIDBmYTllNWRhYzIzNmIzYjAwZDUyMzFlZmU5ZWMwY2Uz NWI3ZWIxODQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvb3BhIFByYWJodSA8cm9v cGFAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogRnJpLCAyMCBKdWwgMjAxOCAxMzoyMTowMSAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjVdIHJ0bmV0bGluazogYWRkIHJ0bmxfbGlua19zdGF0 ZSBjaGVjayBpbgogcnRubF9jb25maWd1cmVfbGluawoKWyBVcHN0cmVhbSBjb21taXQgNTAyNWY3 ZjdkNTA2ZmJhOWIzOWU3ZmU4Y2ExMGY2ZjM0Y2I5YmMyZCBdCgpydG5sX2NvbmZpZ3VyZV9saW5r IHNldHMgZGV2LT5ydG5sX2xpbmtfc3RhdGUgdG8KUlROTF9MSU5LX0lOSVRJQUxJWkVEIGFuZCB1 bmNvbmRpdGlvbmFsbHkgY2FsbHMKX19kZXZfbm90aWZ5X2ZsYWdzIHRvIG5vdGlmeSB1c2VyLXNw YWNlIG9mIGRldiBmbGFncy4KCmN1cnJlbnQgY2FsbCBzZXF1ZW5jZSBmb3IgcnRubF9jb25maWd1 cmVfbGluawpydG5ldGxpbmtfbmV3bGluawogICAgcnRubF9saW5rX29wcy0+bmV3bGluawogICAg cnRubF9jb25maWd1cmVfbGluayAodW5jb25kaXRpb25hbGx5IG5vdGlmaWVzIHVzZXJzcGFjZSBv ZgogICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdCBhbmQgbmV3IGRldiBmbGFncykKCklm IGEgbmV3bGluayBoYW5kbGVyIHdhbnRzIHRvIGNhbGwgcnRubF9jb25maWd1cmVfbGluawplYXJs eSwgd2Ugd2lsbCBlbmQgdXAgd2l0aCBkdXBsaWNhdGUgbm90aWZpY2F0aW9ucyB0bwp1c2VyLXNw YWNlLgoKVGhpcyBwYXRjaCBmaXhlcyBydG5sX2NvbmZpZ3VyZV9saW5rIHRvIGNoZWNrIHJ0bmxf bGlua19zdGF0ZQphbmQgY2FsbCBfX2Rldl9ub3RpZnlfZmxhZ3Mgd2l0aCBnY2hhbmdlcyA9IDAg aWYgYWxyZWFkeQpSVE5MX0xJTktfSU5JVElBTElaRUQuCgpMYXRlciBpbiB0aGUgc2VyaWVzLCB0 aGlzIHBhdGNoIHdpbGwgaGVscCB0aGUgZm9sbG93aW5nIHNlcXVlbmNlCndoZXJlIGEgZHJpdmVy IGltcGxlbWVudGluZyBuZXdsaW5rIGNhbiBjYWxsIHJ0bmxfY29uZmlndXJlX2xpbmsKdG8gaW5p dGlhbGl6ZSB0aGUgbGluayBlYXJseS4KCm1ha2VzIHRoZSBmb2xsb3dpbmcgY2FsbCBzZXF1ZW5j ZSB3b3JrOgpydG5ldGxpbmtfbmV3bGluawogICAgcnRubF9saW5rX29wcy0+bmV3bGluayAodnhs YW4pIC0+IHJ0bmxfY29uZmlndXJlX2xpbmsgKGluaXRpYWxpemVzCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgYW5kIG5vdGlmaWVzCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXItc3BhY2Ugb2YgZGVm YXVsdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYg ZmxhZ3MpCiAgICBydG5sX2NvbmZpZ3VyZV9saW5rICh1cGRhdGVzIGRldiBmbGFncyBpZiByZXF1 ZXN0ZWQgYnkgdXNlciBpZm0KICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBub3RpZmllcyB1 c2VyLXNwYWNlIG9mIG5ldyBkZXYgZmxhZ3MpCgpTaWduZWQtb2ZmLWJ5OiBSb29wYSBQcmFiaHUg PHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9ydG5ldGxpbmsuYyB8IDkgKysr KysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9jb3JlL3J0bmV0bGluay5jIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMK aW5kZXggNGNmZGFkMDhhY2EwLi5lZmUzOTZjYzc3YjUgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3J0 bmV0bGluay5jCisrKyBiL25ldC9jb3JlL3J0bmV0bGluay5jCkBAIC0yNDAyLDkgKzI0MDIsMTIg QEAgaW50IHJ0bmxfY29uZmlndXJlX2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3Qg c3RydWN0IGlmaW5mb21zZyAqaWZtKQogCQkJcmV0dXJuIGVycjsKIAl9CiAKLQlkZXYtPnJ0bmxf bGlua19zdGF0ZSA9IFJUTkxfTElOS19JTklUSUFMSVpFRDsKLQotCV9fZGV2X25vdGlmeV9mbGFn cyhkZXYsIG9sZF9mbGFncywgfjBVKTsKKwlpZiAoZGV2LT5ydG5sX2xpbmtfc3RhdGUgPT0gUlRO TF9MSU5LX0lOSVRJQUxJWkVEKSB7CisJCV9fZGV2X25vdGlmeV9mbGFncyhkZXYsIG9sZF9mbGFn cywgMFUpOworCX0gZWxzZSB7CisJCWRldi0+cnRubF9saW5rX3N0YXRlID0gUlROTF9MSU5LX0lO SVRJQUxJWkVEOworCQlfX2Rldl9ub3RpZnlfZmxhZ3MoZGV2LCBvbGRfZmxhZ3MsIH4wVSk7CisJ fQogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChydG5sX2NvbmZpZ3VyZV9saW5rKTsKLS0g CjIuMTcuMQoKCkZyb20gYTA2MTI5ODlkZmQ0ZmVmNWM3YTdmOWI1ZTM4ZmI2NmZkOTJjY2ZlZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUm9vcGEgUHJhYmh1IDxyb29wYUBjdW11bHVz bmV0d29ya3MuY29tPgpEYXRlOiBGcmksIDIwIEp1bCAyMDE4IDEzOjIxOjAyIC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAxNC8yNV0gdnhsYW46IGFkZCBuZXcgZmRiIGFsbG9jIGFuZCBjcmVhdGUgaGVs cGVycwoKWyBVcHN0cmVhbSBjb21taXQgNzQzMTAxNmIxMDdjOTVjYjViMjAxNGFhMTkwMWZjYjEx NWY3NDZiYyBdCgotIEFkZCBuZXcgdnhsYW5fZmRiX2FsbG9jIGhlbHBlcgotIHJlbmFtZSBleGlz dGluZyB2eGxhbl9mZGJfY3JlYXRlIGludG8gdnhsYW5fZmRiX3VwZGF0ZToKICAgICAgICBiZWNh dXNlIGl0IHJlYWxseSBjcmVhdGVzIG9yIHVwZGF0ZXMgYW4gZXhpc3RpbmcKICAgICAgICBmZGIg ZW50cnkKLSBtb3ZlIG5ldyBmZGIgY3JlYXRpb24gaW50byBhIHNlcGFyYXRlIHZ4bGFuX2ZkYl9j cmVhdGUKCk1haW4gbW90aXZhdGlvbiBmb3IgdGhpcyBjaGFuZ2UgaXMgdG8gaW50cm9kdWNlIHRo ZSBhYmlsaXR5CnRvIGRlY291cGxlIHZ4bGFuIGZkYiBjcmVhdGlvbiBhbmQgbm90aWZ5LCB1c2Vk IGluIGEgbGF0ZXIgcGF0Y2guCgpTaWduZWQtb2ZmLWJ5OiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1 bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92eGxhbi5jIHwgOTEgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjIgaW5z ZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhs YW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5kZXggYmJkYjQ2OTE2ZGMzLi5kNzJjMjRkNTA0 ZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvdnhs YW4uYwpAQCAtNjM2LDggKzYzNiw2MSBAQCBzdGF0aWMgaW50IHZ4bGFuX2dyb19jb21wbGV0ZShz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIGludCBuaG9mZikKIAlyZXR1cm4g ZXRoX2dyb19jb21wbGV0ZShza2IsIG5ob2ZmICsgc2l6ZW9mKHN0cnVjdCB2eGxhbmhkcikpOwog fQogCi0vKiBBZGQgbmV3IGVudHJ5IHRvIGZvcndhcmRpbmcgdGFibGUgLS0gYXNzdW1lcyBsb2Nr IGhlbGQgKi8KK3N0YXRpYyBzdHJ1Y3QgdnhsYW5fZmRiICp2eGxhbl9mZGJfYWxsb2Moc3RydWN0 IHZ4bGFuX2RldiAqdnhsYW4sCisJCQkJCSBjb25zdCB1OCAqbWFjLCBfX3UxNiBzdGF0ZSwKKwkJ CQkJIF9fYmUzMiBzcmNfdm5pLCBfX3U4IG5kbV9mbGFncykKK3sKKwlzdHJ1Y3QgdnhsYW5fZmRi ICpmOworCisJZiA9IGttYWxsb2Moc2l6ZW9mKCpmKSwgR0ZQX0FUT01JQyk7CisJaWYgKCFmKQor CQlyZXR1cm4gTlVMTDsKKwlmLT5zdGF0ZSA9IHN0YXRlOworCWYtPmZsYWdzID0gbmRtX2ZsYWdz OworCWYtPnVwZGF0ZWQgPSBmLT51c2VkID0gamlmZmllczsKKwlmLT52bmkgPSBzcmNfdm5pOwor CUlOSVRfTElTVF9IRUFEKCZmLT5yZW1vdGVzKTsKKwltZW1jcHkoZi0+ZXRoX2FkZHIsIG1hYywg RVRIX0FMRU4pOworCisJcmV0dXJuIGY7Cit9CisKIHN0YXRpYyBpbnQgdnhsYW5fZmRiX2NyZWF0 ZShzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbiwKKwkJCSAgICBjb25zdCB1OCAqbWFjLCB1bmlvbiB2 eGxhbl9hZGRyICppcCwKKwkJCSAgICBfX3UxNiBzdGF0ZSwgX19iZTE2IHBvcnQsIF9fYmUzMiBz cmNfdm5pLAorCQkJICAgIF9fYmUzMiB2bmksIF9fdTMyIGlmaW5kZXgsIF9fdTggbmRtX2ZsYWdz LAorCQkJICAgIHN0cnVjdCB2eGxhbl9mZGIgKipmZGIpCit7CisJc3RydWN0IHZ4bGFuX3Jkc3Qg KnJkID0gTlVMTDsKKwlzdHJ1Y3QgdnhsYW5fZmRiICpmOworCWludCByYzsKKworCWlmICh2eGxh bi0+Y2ZnLmFkZHJtYXggJiYKKwkgICAgdnhsYW4tPmFkZHJjbnQgPj0gdnhsYW4tPmNmZy5hZGRy bWF4KQorCQlyZXR1cm4gLUVOT1NQQzsKKworCW5ldGRldl9kYmcodnhsYW4tPmRldiwgImFkZCAl cE0gLT4gJXBJU1xuIiwgbWFjLCBpcCk7CisJZiA9IHZ4bGFuX2ZkYl9hbGxvYyh2eGxhbiwgbWFj LCBzdGF0ZSwgc3JjX3ZuaSwgbmRtX2ZsYWdzKTsKKwlpZiAoIWYpCisJCXJldHVybiAtRU5PTUVN OworCisJcmMgPSB2eGxhbl9mZGJfYXBwZW5kKGYsIGlwLCBwb3J0LCB2bmksIGlmaW5kZXgsICZy ZCk7CisJaWYgKHJjIDwgMCkgeworCQlrZnJlZShmKTsKKwkJcmV0dXJuIHJjOworCX0KKworCSsr dnhsYW4tPmFkZHJjbnQ7CisJaGxpc3RfYWRkX2hlYWRfcmN1KCZmLT5obGlzdCwKKwkJCSAgIHZ4 bGFuX2ZkYl9oZWFkKHZ4bGFuLCBtYWMsIHNyY192bmkpKTsKKworCSpmZGIgPSBmOworCisJcmV0 dXJuIDA7Cit9CisKKy8qIEFkZCBuZXcgZW50cnkgdG8gZm9yd2FyZGluZyB0YWJsZSAtLSBhc3N1 bWVzIGxvY2sgaGVsZCAqLworc3RhdGljIGludCB2eGxhbl9mZGJfdXBkYXRlKHN0cnVjdCB2eGxh bl9kZXYgKnZ4bGFuLAogCQkJICAgIGNvbnN0IHU4ICptYWMsIHVuaW9uIHZ4bGFuX2FkZHIgKmlw LAogCQkJICAgIF9fdTE2IHN0YXRlLCBfX3UxNiBmbGFncywKIAkJCSAgICBfX2JlMTYgcG9ydCwg X19iZTMyIHNyY192bmksIF9fYmUzMiB2bmksCkBAIC02ODcsMzcgKzc0MCwxNyBAQCBzdGF0aWMg aW50IHZ4bGFuX2ZkYl9jcmVhdGUoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sCiAJCWlmICghKGZs YWdzICYgTkxNX0ZfQ1JFQVRFKSkKIAkJCXJldHVybiAtRU5PRU5UOwogCi0JCWlmICh2eGxhbi0+ Y2ZnLmFkZHJtYXggJiYKLQkJICAgIHZ4bGFuLT5hZGRyY250ID49IHZ4bGFuLT5jZmcuYWRkcm1h eCkKLQkJCXJldHVybiAtRU5PU1BDOwotCiAJCS8qIERpc2FsbG93IHJlcGxhY2UgdG8gYWRkIGEg bXVsdGljYXN0IGVudHJ5ICovCiAJCWlmICgoZmxhZ3MgJiBOTE1fRl9SRVBMQUNFKSAmJgogCQkg ICAgKGlzX211bHRpY2FzdF9ldGhlcl9hZGRyKG1hYykgfHwgaXNfemVyb19ldGhlcl9hZGRyKG1h YykpKQogCQkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCiAJCW5ldGRldl9kYmcodnhsYW4tPmRldiwg ImFkZCAlcE0gLT4gJXBJU1xuIiwgbWFjLCBpcCk7Ci0JCWYgPSBrbWFsbG9jKHNpemVvZigqZiks IEdGUF9BVE9NSUMpOwotCQlpZiAoIWYpCi0JCQlyZXR1cm4gLUVOT01FTTsKLQotCQlub3RpZnkg PSAxOwotCQlmLT5zdGF0ZSA9IHN0YXRlOwotCQlmLT5mbGFncyA9IG5kbV9mbGFnczsKLQkJZi0+ dXBkYXRlZCA9IGYtPnVzZWQgPSBqaWZmaWVzOwotCQlmLT52bmkgPSBzcmNfdm5pOwotCQlJTklU X0xJU1RfSEVBRCgmZi0+cmVtb3Rlcyk7Ci0JCW1lbWNweShmLT5ldGhfYWRkciwgbWFjLCBFVEhf QUxFTik7Ci0KLQkJcmMgPSB2eGxhbl9mZGJfYXBwZW5kKGYsIGlwLCBwb3J0LCB2bmksIGlmaW5k ZXgsICZyZCk7Ci0JCWlmIChyYyA8IDApIHsKLQkJCWtmcmVlKGYpOworCQlyYyA9IHZ4bGFuX2Zk Yl9jcmVhdGUodnhsYW4sIG1hYywgaXAsIHN0YXRlLCBwb3J0LCBzcmNfdm5pLAorCQkJCSAgICAg IHZuaSwgaWZpbmRleCwgbmRtX2ZsYWdzLCAmZik7CisJCWlmIChyYyA8IDApCiAJCQlyZXR1cm4g cmM7Ci0JCX0KLQotCQkrK3Z4bGFuLT5hZGRyY250OwotCQlobGlzdF9hZGRfaGVhZF9yY3UoJmYt PmhsaXN0LAotCQkJCSAgIHZ4bGFuX2ZkYl9oZWFkKHZ4bGFuLCBtYWMsIHNyY192bmkpKTsKKwkJ bm90aWZ5ID0gMTsKIAl9CiAKIAlpZiAobm90aWZ5KSB7CkBAIC04NjMsNyArODk2LDcgQEAgc3Rh dGljIGludCB2eGxhbl9mZGJfYWRkKHN0cnVjdCBuZG1zZyAqbmRtLCBzdHJ1Y3QgbmxhdHRyICp0 YltdLAogCQlyZXR1cm4gLUVBRk5PU1VQUE9SVDsKIAogCXNwaW5fbG9ja19iaCgmdnhsYW4tPmhh c2hfbG9jayk7Ci0JZXJyID0gdnhsYW5fZmRiX2NyZWF0ZSh2eGxhbiwgYWRkciwgJmlwLCBuZG0t Pm5kbV9zdGF0ZSwgZmxhZ3MsCisJZXJyID0gdnhsYW5fZmRiX3VwZGF0ZSh2eGxhbiwgYWRkciwg JmlwLCBuZG0tPm5kbV9zdGF0ZSwgZmxhZ3MsCiAJCQkgICAgICAgcG9ydCwgc3JjX3ZuaSwgdm5p LCBpZmluZGV4LCBuZG0tPm5kbV9mbGFncyk7CiAJc3Bpbl91bmxvY2tfYmgoJnZ4bGFuLT5oYXNo X2xvY2spOwogCkBAIC0xMDA2LDcgKzEwMzksNyBAQCBzdGF0aWMgYm9vbCB2eGxhbl9zbm9vcChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCiAJCS8qIGNsb3NlIG9mZiByYWNlIGJldHdlZW4gdnhs YW5fZmx1c2ggYW5kIGluY29taW5nIHBhY2tldHMgKi8KIAkJaWYgKG5ldGlmX3J1bm5pbmcoZGV2 KSkKLQkJCXZ4bGFuX2ZkYl9jcmVhdGUodnhsYW4sIHNyY19tYWMsIHNyY19pcCwKKwkJCXZ4bGFu X2ZkYl91cGRhdGUodnhsYW4sIHNyY19tYWMsIHNyY19pcCwKIAkJCQkJIE5VRF9SRUFDSEFCTEUs CiAJCQkJCSBOTE1fRl9FWENMfE5MTV9GX0NSRUFURSwKIAkJCQkJIHZ4bGFuLT5jZmcuZHN0X3Bv cnQsCkBAIC0zMTY3LDcgKzMyMDAsNyBAQCBzdGF0aWMgaW50IF9fdnhsYW5fZGV2X2NyZWF0ZShz dHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIAkvKiBjcmVhdGUgYW4g ZmRiIGVudHJ5IGZvciBhIHZhbGlkIGRlZmF1bHQgZGVzdGluYXRpb24gKi8KIAlpZiAoIXZ4bGFu X2FkZHJfYW55KCZ2eGxhbi0+ZGVmYXVsdF9kc3QucmVtb3RlX2lwKSkgewotCQllcnIgPSB2eGxh bl9mZGJfY3JlYXRlKHZ4bGFuLCBhbGxfemVyb3NfbWFjLAorCQllcnIgPSB2eGxhbl9mZGJfdXBk YXRlKHZ4bGFuLCBhbGxfemVyb3NfbWFjLAogCQkJCSAgICAgICAmdnhsYW4tPmRlZmF1bHRfZHN0 LnJlbW90ZV9pcCwKIAkJCQkgICAgICAgTlVEX1JFQUNIQUJMRSB8IE5VRF9QRVJNQU5FTlQsCiAJ CQkJICAgICAgIE5MTV9GX0VYQ0wgfCBOTE1fRl9DUkVBVEUsCkBAIC0zNDQxLDcgKzM0NzQsNyBA QCBzdGF0aWMgaW50IHZ4bGFuX2NoYW5nZWxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3Ry dWN0IG5sYXR0ciAqdGJbXSwKIAkJCQkJICAgb2xkX2RzdC5yZW1vdGVfaWZpbmRleCwgMCk7CiAK IAkJaWYgKCF2eGxhbl9hZGRyX2FueSgmZHN0LT5yZW1vdGVfaXApKSB7Ci0JCQllcnIgPSB2eGxh bl9mZGJfY3JlYXRlKHZ4bGFuLCBhbGxfemVyb3NfbWFjLAorCQkJZXJyID0gdnhsYW5fZmRiX3Vw ZGF0ZSh2eGxhbiwgYWxsX3plcm9zX21hYywKIAkJCQkJICAgICAgICZkc3QtPnJlbW90ZV9pcCwK IAkJCQkJICAgICAgIE5VRF9SRUFDSEFCTEUgfCBOVURfUEVSTUFORU5ULAogCQkJCQkgICAgICAg TkxNX0ZfQ1JFQVRFIHwgTkxNX0ZfQVBQRU5ELAotLSAKMi4xNy4xCgoKRnJvbSBjOGE2NjRlNjNi NzQxNDM0MjBjYTU0N2FmN2FlYTRkNjJkY2FhNWU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IEZyaSwg MjAgSnVsIDIwMTggMTM6MjE6MDMgLTA3MDAKU3ViamVjdDogW1BBVENIIDE1LzI1XSB2eGxhbjog bWFrZSBuZXRsaW5rIG5vdGlmeSBpbiB2eGxhbl9mZGJfZGVzdHJveQogb3B0aW9uYWwKClsgVXBz dHJlYW0gY29tbWl0IGY2ZTA1Mzg1ODY3MWJiMTU2YjZlNDRhZDY2NDE4YWNjOGM3ZjRlNzcgXQoK QWRkIGEgbmV3IG9wdGlvbiBkb19ub3RpZnkgdG8gdnhsYW5fZmRiX2Rlc3Ryb3kgdG8gbWFrZQpz ZW5kaW5nIG5ldGxpbmsgbm90aWZ5IG9wdGlvbmFsLiBVc2VkIGJ5IGEgbGF0ZXIgcGF0Y2guCgpT aWduZWQtb2ZmLWJ5OiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC92eGxhbi5jIHwgMTQgKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4 IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv dnhsYW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5kZXggZDcyYzI0ZDUwNGQ4Li41ZWUwZjZk OWY3YmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMKKysrIGIvZHJpdmVycy9uZXQv dnhsYW4uYwpAQCAtNzc0LDEzICs3NzQsMTUgQEAgc3RhdGljIHZvaWQgdnhsYW5fZmRiX2ZyZWUo c3RydWN0IHJjdV9oZWFkICpoZWFkKQogCWtmcmVlKGYpOwogfQogCi1zdGF0aWMgdm9pZCB2eGxh bl9mZGJfZGVzdHJveShzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbiwgc3RydWN0IHZ4bGFuX2ZkYiAq ZikKK3N0YXRpYyB2b2lkIHZ4bGFuX2ZkYl9kZXN0cm95KHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFu LCBzdHJ1Y3QgdnhsYW5fZmRiICpmLAorCQkJICAgICAgYm9vbCBkb19ub3RpZnkpCiB7CiAJbmV0 ZGV2X2RiZyh2eGxhbi0+ZGV2LAogCQkgICAgImRlbGV0ZSAlcE1cbiIsIGYtPmV0aF9hZGRyKTsK IAogCS0tdnhsYW4tPmFkZHJjbnQ7Ci0JdnhsYW5fZmRiX25vdGlmeSh2eGxhbiwgZiwgZmlyc3Rf cmVtb3RlX3J0bmwoZiksIFJUTV9ERUxORUlHSCk7CisJaWYgKGRvX25vdGlmeSkKKwkJdnhsYW5f ZmRiX25vdGlmeSh2eGxhbiwgZiwgZmlyc3RfcmVtb3RlX3J0bmwoZiksIFJUTV9ERUxORUlHSCk7 CiAKIAlobGlzdF9kZWxfcmN1KCZmLT5obGlzdCk7CiAJY2FsbF9yY3UoJmYtPnJjdSwgdnhsYW5f ZmRiX2ZyZWUpOwpAQCAtOTMwLDcgKzkzMiw3IEBAIHN0YXRpYyBpbnQgX192eGxhbl9mZGJfZGVs ZXRlKHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLAogCQlnb3RvIG91dDsKIAl9CiAKLQl2eGxhbl9m ZGJfZGVzdHJveSh2eGxhbiwgZik7CisJdnhsYW5fZmRiX2Rlc3Ryb3kodnhsYW4sIGYsIHRydWUp OwogCiBvdXQ6CiAJcmV0dXJuIDA7CkBAIC0yMzkzLDcgKzIzOTUsNyBAQCBzdGF0aWMgdm9pZCB2 eGxhbl9jbGVhbnVwKHVuc2lnbmVkIGxvbmcgYXJnKQogCQkJCQkgICAiZ2FyYmFnZSBjb2xsZWN0 ICVwTVxuIiwKIAkJCQkJICAgZi0+ZXRoX2FkZHIpOwogCQkJCWYtPnN0YXRlID0gTlVEX1NUQUxF OwotCQkJCXZ4bGFuX2ZkYl9kZXN0cm95KHZ4bGFuLCBmKTsKKwkJCQl2eGxhbl9mZGJfZGVzdHJv eSh2eGxhbiwgZiwgdHJ1ZSk7CiAJCQl9IGVsc2UgaWYgKHRpbWVfYmVmb3JlKHRpbWVvdXQsIG5l eHRfdGltZXIpKQogCQkJCW5leHRfdGltZXIgPSB0aW1lb3V0OwogCQl9CkBAIC0yNDQ0LDcgKzI0 NDYsNyBAQCBzdGF0aWMgdm9pZCB2eGxhbl9mZGJfZGVsZXRlX2RlZmF1bHQoc3RydWN0IHZ4bGFu X2RldiAqdnhsYW4sIF9fYmUzMiB2bmkpCiAJc3Bpbl9sb2NrX2JoKCZ2eGxhbi0+aGFzaF9sb2Nr KTsKIAlmID0gX192eGxhbl9maW5kX21hYyh2eGxhbiwgYWxsX3plcm9zX21hYywgdm5pKTsKIAlp ZiAoZikKLQkJdnhsYW5fZmRiX2Rlc3Ryb3kodnhsYW4sIGYpOworCQl2eGxhbl9mZGJfZGVzdHJv eSh2eGxhbiwgZiwgdHJ1ZSk7CiAJc3Bpbl91bmxvY2tfYmgoJnZ4bGFuLT5oYXNoX2xvY2spOwog fQogCkBAIC0yNDk4LDcgKzI1MDAsNyBAQCBzdGF0aWMgdm9pZCB2eGxhbl9mbHVzaChzdHJ1Y3Qg dnhsYW5fZGV2ICp2eGxhbiwgYm9vbCBkb19hbGwpCiAJCQkJY29udGludWU7CiAJCQkvKiB0aGUg YWxsX3plcm9zX21hYyBlbnRyeSBpcyBkZWxldGVkIGF0IHZ4bGFuX3VuaW5pdCAqLwogCQkJaWYg KCFpc196ZXJvX2V0aGVyX2FkZHIoZi0+ZXRoX2FkZHIpKQotCQkJCXZ4bGFuX2ZkYl9kZXN0cm95 KHZ4bGFuLCBmKTsKKwkJCQl2eGxhbl9mZGJfZGVzdHJveSh2eGxhbiwgZiwgdHJ1ZSk7CiAJCX0K IAl9CiAJc3Bpbl91bmxvY2tfYmgoJnZ4bGFuLT5oYXNoX2xvY2spOwotLSAKMi4xNy4xCgoKRnJv bSA3MGMzMjhjNDE0YWJlZGI1YjA5NmZjY2U5ZGNmMDQ5ZWVkMzZmMjAxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ CkRhdGU6IEZyaSwgMjAgSnVsIDIwMTggMTM6MjE6MDQgLTA3MDAKU3ViamVjdDogW1BBVENIIDE2 LzI1XSB2eGxhbjogZml4IGRlZmF1bHQgZmRiIGVudHJ5IG5ldGxpbmsgbm90aWZ5IG9yZGVyaW5n CiBkdXJpbmcgbmV0ZGV2IGNyZWF0ZQoKWyBVcHN0cmVhbSBjb21taXQgZTk5NDY1Yjk1Mjg2MTUz M2Q5YmE3NDhmZGJlY2M5NmQ5YTM2ZGEzZSBdCgpQcm9ibGVtOgpJbiB2eGxhbl9uZXdsaW5rLCBh IGRlZmF1bHQgZmRiIGVudHJ5IGlzIGFkZGVkIGJlZm9yZSByZWdpc3Rlcl9uZXRkZXYuClRoZSBk ZWZhdWx0IGZkYiBjcmVhdGlvbiBmdW5jdGlvbiBhbHNvIG5vdGlmaWVzIHVzZXItc3BhY2Ugb2Yg dGhlCmZkYiBlbnRyeSBvbiB0aGUgdnhsYW4gZGV2aWNlIHdoaWNoIHVzZXItc3BhY2UgZG9lcyBu b3Qga25vdyBhYm91dCB5ZXQuCihSVE1fTkVXTkVJR0ggZ29lcyBiZWZvcmUgUlRNX05FV0xJTksg Zm9yIHRoZSBzYW1lIGlmaW5kZXgpLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGUgdXNlci1zcGFjZSBu ZXRsaW5rIG5vdGlmaWNhdGlvbiBvcmRlcmluZyBpc3N1ZQp3aXRoIHRoZSBmb2xsb3dpbmcgY2hh bmdlczoKLSBkZWNvdXBsZSBmZGIgbm90aWZ5IGZyb20gZmRiIGNyZWF0ZS4KLSBNb3ZlIGZkYiBu b3RpZnkgYWZ0ZXIgcmVnaXN0ZXJfbmV0ZGV2LgotIENhbGwgcnRubF9jb25maWd1cmVfbGluayBp biB2eGxhbiBuZXdsaW5rIGhhbmRsZXIgdG8gbm90aWZ5CnVzZXJzcGFjZSBhYm91dCB0aGUgbmV3 bGluayBiZWZvcmUgZmRiIG5vdGlmeSBhbmQKaGVuY2UgYXZvaWRpbmcgdGhlIHVzZXItc3BhY2Ug cmFjZS4KCkZpeGVzOiBhZmJkOGJhZTljNzkgKCJ2eGxhbjogYWRkIGltcGxpY2l0IGZkYiBlbnRy eSBmb3IgZGVmYXVsdCBkZXN0aW5hdGlvbiIpClNpZ25lZC1vZmYtYnk6IFJvb3BhIFByYWJodSA8 cm9vcGFAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3Z4bGFuLmMgfCAyOSArKysr KysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMo KyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4uYyBiL2Ry aXZlcnMvbmV0L3Z4bGFuLmMKaW5kZXggNWVlMGY2ZDlmN2JjLi4xM2QzOWE3MmZlMGQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvdnhsYW4uYwpAQCAt MzE5Miw2ICszMTkyLDcgQEAgc3RhdGljIGludCBfX3Z4bGFuX2Rldl9jcmVhdGUoc3RydWN0IG5l dCAqbmV0LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogewogCXN0cnVjdCB2eGxhbl9uZXQgKnZu ID0gbmV0X2dlbmVyaWMobmV0LCB2eGxhbl9uZXRfaWQpOwogCXN0cnVjdCB2eGxhbl9kZXYgKnZ4 bGFuID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwlzdHJ1Y3QgdnhsYW5fZmRiICpmID0gTlVMTDsKIAlp bnQgZXJyOwogCiAJZXJyID0gdnhsYW5fZGV2X2NvbmZpZ3VyZShuZXQsIGRldiwgY29uZiwgZmFs c2UsIGV4dGFjayk7CkBAIC0zMjAyLDI3ICszMjAzLDM4IEBAIHN0YXRpYyBpbnQgX192eGxhbl9k ZXZfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAogCS8q IGNyZWF0ZSBhbiBmZGIgZW50cnkgZm9yIGEgdmFsaWQgZGVmYXVsdCBkZXN0aW5hdGlvbiAqLwog CWlmICghdnhsYW5fYWRkcl9hbnkoJnZ4bGFuLT5kZWZhdWx0X2RzdC5yZW1vdGVfaXApKSB7Ci0J CWVyciA9IHZ4bGFuX2ZkYl91cGRhdGUodnhsYW4sIGFsbF96ZXJvc19tYWMsCisJCWVyciA9IHZ4 bGFuX2ZkYl9jcmVhdGUodnhsYW4sIGFsbF96ZXJvc19tYWMsCiAJCQkJICAgICAgICZ2eGxhbi0+ ZGVmYXVsdF9kc3QucmVtb3RlX2lwLAogCQkJCSAgICAgICBOVURfUkVBQ0hBQkxFIHwgTlVEX1BF Uk1BTkVOVCwKLQkJCQkgICAgICAgTkxNX0ZfRVhDTCB8IE5MTV9GX0NSRUFURSwKIAkJCQkgICAg ICAgdnhsYW4tPmNmZy5kc3RfcG9ydCwKIAkJCQkgICAgICAgdnhsYW4tPmRlZmF1bHRfZHN0LnJl bW90ZV92bmksCiAJCQkJICAgICAgIHZ4bGFuLT5kZWZhdWx0X2RzdC5yZW1vdGVfdm5pLAogCQkJ CSAgICAgICB2eGxhbi0+ZGVmYXVsdF9kc3QucmVtb3RlX2lmaW5kZXgsCi0JCQkJICAgICAgIE5U Rl9TRUxGKTsKKwkJCQkgICAgICAgTlRGX1NFTEYsICZmKTsKIAkJaWYgKGVycikKIAkJCXJldHVy biBlcnI7CiAJfQogCiAJZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7CisJaWYgKGVycikK KwkJZ290byBlcnJvdXQ7CisKKwllcnIgPSBydG5sX2NvbmZpZ3VyZV9saW5rKGRldiwgTlVMTCk7 CiAJaWYgKGVycikgewotCQl2eGxhbl9mZGJfZGVsZXRlX2RlZmF1bHQodnhsYW4sIHZ4bGFuLT5k ZWZhdWx0X2RzdC5yZW1vdGVfdm5pKTsKLQkJcmV0dXJuIGVycjsKKwkJdW5yZWdpc3Rlcl9uZXRk ZXZpY2UoZGV2KTsKKwkJZ290byBlcnJvdXQ7CiAJfQogCisJLyogbm90aWZ5IGRlZmF1bHQgZmRi IGVudHJ5ICovCisJaWYgKGYpCisJCXZ4bGFuX2ZkYl9ub3RpZnkodnhsYW4sIGYsIGZpcnN0X3Jl bW90ZV9ydG5sKGYpLCBSVE1fTkVXTkVJR0gpOworCiAJbGlzdF9hZGQoJnZ4bGFuLT5uZXh0LCAm dm4tPnZ4bGFuX2xpc3QpOwogCXJldHVybiAwOworZXJyb3V0OgorCWlmIChmKQorCQl2eGxhbl9m ZGJfZGVzdHJveSh2eGxhbiwgZiwgZmFsc2UpOworCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBp bnQgdnhsYW5fbmwyY29uZihzdHJ1Y3QgbmxhdHRyICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRh W10sCkBAIC0zNDUxLDYgKzM0NjMsNyBAQCBzdGF0aWMgaW50IHZ4bGFuX2NoYW5nZWxpbmsoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IG5sYXR0ciAqdGJbXSwKIAlzdHJ1Y3QgdnhsYW5f cmRzdCAqZHN0ID0gJnZ4bGFuLT5kZWZhdWx0X2RzdDsKIAlzdHJ1Y3QgdnhsYW5fcmRzdCBvbGRf ZHN0OwogCXN0cnVjdCB2eGxhbl9jb25maWcgY29uZjsKKwlzdHJ1Y3QgdnhsYW5fZmRiICpmID0g TlVMTDsKIAlpbnQgZXJyOwogCiAJZXJyID0gdnhsYW5fbmwyY29uZih0YiwgZGF0YSwKQEAgLTM0 NzYsMTkgKzM0ODksMTkgQEAgc3RhdGljIGludCB2eGxhbl9jaGFuZ2VsaW5rKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsIHN0cnVjdCBubGF0dHIgKnRiW10sCiAJCQkJCSAgIG9sZF9kc3QucmVtb3Rl X2lmaW5kZXgsIDApOwogCiAJCWlmICghdnhsYW5fYWRkcl9hbnkoJmRzdC0+cmVtb3RlX2lwKSkg ewotCQkJZXJyID0gdnhsYW5fZmRiX3VwZGF0ZSh2eGxhbiwgYWxsX3plcm9zX21hYywKKwkJCWVy ciA9IHZ4bGFuX2ZkYl9jcmVhdGUodnhsYW4sIGFsbF96ZXJvc19tYWMsCiAJCQkJCSAgICAgICAm ZHN0LT5yZW1vdGVfaXAsCiAJCQkJCSAgICAgICBOVURfUkVBQ0hBQkxFIHwgTlVEX1BFUk1BTkVO VCwKLQkJCQkJICAgICAgIE5MTV9GX0NSRUFURSB8IE5MTV9GX0FQUEVORCwKIAkJCQkJICAgICAg IHZ4bGFuLT5jZmcuZHN0X3BvcnQsCiAJCQkJCSAgICAgICBkc3QtPnJlbW90ZV92bmksCiAJCQkJ CSAgICAgICBkc3QtPnJlbW90ZV92bmksCiAJCQkJCSAgICAgICBkc3QtPnJlbW90ZV9pZmluZGV4 LAotCQkJCQkgICAgICAgTlRGX1NFTEYpOworCQkJCQkgICAgICAgTlRGX1NFTEYsICZmKTsKIAkJ CWlmIChlcnIpIHsKIAkJCQlzcGluX3VubG9ja19iaCgmdnhsYW4tPmhhc2hfbG9jayk7CiAJCQkJ cmV0dXJuIGVycjsKIAkJCX0KKwkJCXZ4bGFuX2ZkYl9ub3RpZnkodnhsYW4sIGYsIGZpcnN0X3Jl bW90ZV9ydG5sKGYpLCBSVE1fTkVXTkVJR0gpOwogCQl9CiAJCXNwaW5fdW5sb2NrX2JoKCZ2eGxh bi0+aGFzaF9sb2NrKTsKIAl9Ci0tIAoyLjE3LjEKCgpGcm9tIGY5NDEwZGMwOTA3YzA2YWQ5YTY2 YTE3YjllNGM2NDgyMjBkODc5NmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1Y2h1 bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpEYXRlOiBUaHUsIDEyIEp1bCAyMDE4IDA2OjA0 OjUyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNy8yNV0gdGNwOiBmaXggZGN0Y3AgZGVsYXllZCBB Q0sgc2NoZWR1bGUKClsgVXBzdHJlYW0gY29tbWl0IGIwYzA1ZDBlOTlkOThkN2YwY2Q0MWVmYzFl ZWVjOTRlZmRjMzMyNWQgXQoKUHJldmlvdXNseSwgd2hlbiBhIGRhdGEgc2VnbWVudCB3YXMgc2Vu dCBhbiBBQ0sgd2FzIHBpZ2d5YmFja2VkCm9uIHRoZSBkYXRhIHNlZ21lbnQgd2l0aG91dCBnZW5l cmF0aW5nIGEgQ0FfRVZFTlRfTk9OX0RFTEFZRURfQUNLCmV2ZW50IHRvIG5vdGlmeSBjb25nZXN0 aW9uIGNvbnRyb2wgbW9kdWxlcy4gU28gdGhlIERDVENQCmNhLT5kZWxheWVkX2Fja19yZXNlcnZl ZCBmbGFnIGNvdWxkIGluY29ycmVjdGx5IHN0YXkgc2V0IHdoZW4KaW4gZmFjdCB0aGVyZSB3ZXJl IG5vIGRlbGF5ZWQgQUNLcyBiZWluZyByZXNlcnZlZC4gVGhpcyBjb3VsZCByZXN1bHQKaW4gc2Vu ZGluZyBhIHNwZWNpYWwgRUNOIG5vdGlmaWNhdGlvbiBBQ0sgdGhhdCBjYXJyaWVzIGFuIG9sZGVy CkFDSyBzZXF1ZW5jZSwgd2hlbiBpbiBmYWN0IHRoZXJlIHdhcyBubyBuZWVkIGZvciBzdWNoIGFu IEFDSy4KRENUQ1Aga2VlcHMgdHJhY2sgb2YgdGhlIGRlbGF5ZWQgQUNLIHN0YXR1cyB3aXRoIGl0 cyBvd24gc2VwYXJhdGUKc3RhdGUgY2EtPmRlbGF5ZWRfYWNrX3Jlc2VydmVkLiBQcmV2aW91c2x5 IGl0IG1heSBhY2NpZGVudGFsbHkgY2FuY2VsCnRoZSBkZWxheWVkIEFDSyB3aXRob3V0IHVwZGF0 aW5nIHRoaXMgZmllbGQgdXBvbiBzZW5kaW5nIGEgc3BlY2lhbApBQ0sgdGhhdCBjYXJyaWVzIGEg b2xkZXIgQUNLIHNlcXVlbmNlLiBUaGlzIGluY29uc2lzdGVuY3kgd291bGQKbGVhZCB0byBEQ1RD UCByZWNlaXZlciBuZXZlciBhY2tub3dsZWRnaW5nIHRoZSBsYXRlc3QgZGF0YSB1bnRpbCB0aGUK c2VuZGVyIHRpbWVzIG91dCBhbmQgcmV0cnkgaW4gc29tZSBjYXNlcy4KClBhY2tldGRyaWxsIHNj cmlwdCAocHJvdmlkZWQgYnkgTGFycnkgQnJha21vKQoKMC4wMDAgc29ja2V0KC4uLiwgU09DS19T VFJFQU0sIElQUFJPVE9fVENQKSA9IDMKMC4wMDAgc2V0c29ja29wdCgzLCBTT0xfU09DS0VULCBT T19SRVVTRUFERFIsIFsxXSwgNCkgPSAwCjAuMDAwIHNldHNvY2tvcHQoMywgU09MX1RDUCwgVENQ X0NPTkdFU1RJT04sICJkY3RjcCIsIDUpID0gMAowLjAwMCBiaW5kKDMsIC4uLiwgLi4uKSA9IDAK MC4wMDAgbGlzdGVuKDMsIDEpID0gMAoKMC4xMDAgPCBbZWN0MF0gU0VXIDA6MCgwKSB3aW4gMzI3 OTIgPG1zcyAxMDAwLHNhY2tPSyxub3Asbm9wLG5vcCx3c2NhbGUgNz4KMC4xMDAgPiBTRS4gMDow KDApIGFjayAxIDxtc3MgMTQ2MCxub3Asbm9wLHNhY2tPSyxub3Asd3NjYWxlIDg+CjAuMTEwIDwg W2VjdDBdIC4gMToxKDApIGFjayAxIHdpbiAyNTcKMC4yMDAgYWNjZXB0KDMsIC4uLiwgLi4uKSA9 IDQKCjAuMjAwIDwgW2VjdDBdIC4gMToxMDAxKDEwMDApIGFjayAxIHdpbiAyNTcKMC4yMDAgPiBb ZWN0MDFdIC4gMToxKDApIGFjayAxMDAxCgowLjIwMCB3cml0ZSg0LCAuLi4sIDEpID0gMQowLjIw MCA+IFtlY3QwMV0gUC4gMToyKDEpIGFjayAxMDAxCgowLjIwMCA8IFtlY3QwXSAuIDEwMDE6MjAw MSgxMDAwKSBhY2sgMiB3aW4gMjU3CjAuMjAwIHdyaXRlKDQsIC4uLiwgMSkgPSAxCjAuMjAwID4g W2VjdDAxXSBQLiAyOjMoMSkgYWNrIDIwMDEKCjAuMjAwIDwgW2VjdDBdIC4gMjAwMTozMDAxKDEw MDApIGFjayAzIHdpbiAyNTcKMC4yMDAgPCBbZWN0MF0gLiAzMDAxOjQwMDEoMTAwMCkgYWNrIDMg d2luIDI1NwowLjIwMCA+IFtlY3QwMV0gLiAzOjMoMCkgYWNrIDQwMDEKCjAuMjEwIDwgW2NlXSBQ LiA0MDAxOjQ1MDEoNTAwKSBhY2sgMyB3aW4gMjU3CgorMC4wMDEgcmVhZCg0LCAuLi4sIDQ1MDAp ID0gNDUwMAorMCB3cml0ZSg0LCAuLi4sIDEpID0gMQorMCA+IFtlY3QwMV0gUEUuIDM6NCgxKSBh Y2sgNDUwMQoKKzAuMDEwIDwgW2VjdDBdIFcuIDQ1MDE6NTUwMSgxMDAwKSBhY2sgNCB3aW4gMjU3 Ci8vIFByZXZpb3VzbHkgdGhlIEFDSyBzZXF1ZW5jZSBiZWxvdyB3b3VsZCBiZSA0NTAxLCBjYXVz aW5nIGEgbG9uZyBSVE8KKzAuMDQwfiswLjA0NSA+IFtlY3QwMV0gLiA0OjQoMCkgYWNrIDU1MDEg ICAvLyBkZWxheWVkIGFjawoKKzAuMzExIDwgW2VjdDBdIC4gNTUwMTo2NTAxKDEwMDApIGFjayA0 IHdpbiAyNTcgIC8vIE1vcmUgZGF0YQorMCA+IFtlY3QwMV0gLiA0OjQoMCkgYWNrIDY1MDEgICAg IC8vIG5vdyBhY2tzIGV2ZXJ5dGhpbmcKCiswLjUwMCA8IEYuIDk1MDE6OTUwMSgwKSBhY2sgNCB3 aW4gMjU3CgpSZXBvcnRlZC1ieTogTGFycnkgQnJha21vIDxicmFrbW9AZmIuY29tPgpTaWduZWQt b2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpBY2tlZC1ieTogTmVhbCBDYXJkd2Vs bCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBMYXdyZW5jZSBCcmFrbW8gPGJyYWtt b0BmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfZGN0Y3AuYyB8IDYgKysrKy0tCiAxIGZpbGUgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0 L3RjcF9kY3RjcC5jIGIvbmV0L2lwdjQvdGNwX2RjdGNwLmMKaW5kZXggNWY1ZTU5MzY3NjBlLi44 OWY4OGIwZDgxNjcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9kY3RjcC5jCisrKyBiL25ldC9p cHY0L3RjcF9kY3RjcC5jCkBAIC0xMzQsNyArMTM0LDggQEAgc3RhdGljIHZvaWQgZGN0Y3BfY2Vf c3RhdGVfMF90b18xKHN0cnVjdCBzb2NrICpzaykKIAkvKiBTdGF0ZSBoYXMgY2hhbmdlZCBmcm9t IENFPTAgdG8gQ0U9MSBhbmQgZGVsYXllZAogCSAqIEFDSyBoYXMgbm90IHNlbnQgeWV0LgogCSAq LwotCWlmICghY2EtPmNlX3N0YXRlICYmIGNhLT5kZWxheWVkX2Fja19yZXNlcnZlZCkgeworCWlm ICghY2EtPmNlX3N0YXRlICYmCisJICAgIGluZXRfY3NrKHNrKS0+aWNza19hY2sucGVuZGluZyAm IElDU0tfQUNLX1RJTUVSKSB7CiAJCXUzMiB0bXBfcmN2X254dDsKIAogCQkvKiBTYXZlIGN1cnJl bnQgcmN2X254dC4gKi8KQEAgLTE2NCw3ICsxNjUsOCBAQCBzdGF0aWMgdm9pZCBkY3RjcF9jZV9z dGF0ZV8xX3RvXzAoc3RydWN0IHNvY2sgKnNrKQogCS8qIFN0YXRlIGhhcyBjaGFuZ2VkIGZyb20g Q0U9MSB0byBDRT0wIGFuZCBkZWxheWVkCiAJICogQUNLIGhhcyBub3Qgc2VudCB5ZXQuCiAJICov Ci0JaWYgKGNhLT5jZV9zdGF0ZSAmJiBjYS0+ZGVsYXllZF9hY2tfcmVzZXJ2ZWQpIHsKKwlpZiAo Y2EtPmNlX3N0YXRlICYmCisJICAgIGluZXRfY3NrKHNrKS0+aWNza19hY2sucGVuZGluZyAmIElD U0tfQUNLX1RJTUVSKSB7CiAJCXUzMiB0bXBfcmN2X254dDsKIAogCQkvKiBTYXZlIGN1cnJlbnQg cmN2X254dC4gKi8KLS0gCjIuMTcuMQoKCkZyb20gMTczYWNkNGU5Zjg4ZjgzMjBkZTc0M2ZhMDY3 NGFkYzNlMTNlZmZlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVjaHVuZyBDaGVu ZyA8eWNoZW5nQGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMTggSnVsIDIwMTggMTM6NTY6MzQgLTA3 MDAKU3ViamVjdDogW1BBVENIIDE4LzI1XSB0Y3A6IGhlbHBlcnMgdG8gc2VuZCBzcGVjaWFsIERD VENQIGFjawoKWyBVcHN0cmVhbSBjb21taXQgMjk4N2JhYmI2OTgyMzA2NTA5MzgwZmMxMWI0NTAy MjdhODQ0NDkzYiBdCgpSZWZhY3RvciBhbmQgY3JlYXRlIGhlbHBlcnMgdG8gc2VuZCB0aGUgc3Bl Y2lhbCBBQ0sgaW4gRENUQ1AuCgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdA Z29vZ2xlLmNvbT4KQWNrZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv aXB2NC90Y3Bfb3V0cHV0LmMgfCAyMiArKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKaW5kZXggYWJhZTUxOTZj ZDNhLi5jOGRhMjVmMzdhZTQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysg Yi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKQEAgLTk4NCw4ICs5ODQsOCBAQCBzdGF0aWMgdm9pZCB0 Y3BfaW50ZXJuYWxfcGFjaW5nKHN0cnVjdCBzb2NrICpzaywgY29uc3Qgc3RydWN0IHNrX2J1ZmYg KnNrYikKICAqIFdlIGFyZSB3b3JraW5nIGhlcmUgd2l0aCBlaXRoZXIgYSBjbG9uZSBvZiB0aGUg b3JpZ2luYWwKICAqIFNLQiwgb3IgYSBmcmVzaCB1bmlxdWUgY29weSBtYWRlIGJ5IHRoZSByZXRy YW5zbWl0IGVuZ2luZS4KICAqLwotc3RhdGljIGludCB0Y3BfdHJhbnNtaXRfc2tiKHN0cnVjdCBz b2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGNsb25lX2l0LAotCQkJICAgIGdmcF90 IGdmcF9tYXNrKQorc3RhdGljIGludCBfX3RjcF90cmFuc21pdF9za2Ioc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJICAgICAgaW50IGNsb25lX2l0LCBnZnBfdCBnZnBf bWFzaywgdTMyIHJjdl9ueHQpCiB7CiAJY29uc3Qgc3RydWN0IGluZXRfY29ubmVjdGlvbl9zb2Nr ICppY3NrID0gaW5ldF9jc2soc2spOwogCXN0cnVjdCBpbmV0X3NvY2sgKmluZXQ7CkBAIC0xMDU3 LDcgKzEwNTcsNyBAQCBzdGF0aWMgaW50IHRjcF90cmFuc21pdF9za2Ioc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY2xvbmVfaXQsCiAJdGgtPnNvdXJjZQkJPSBpbmV0 LT5pbmV0X3Nwb3J0OwogCXRoLT5kZXN0CQk9IGluZXQtPmluZXRfZHBvcnQ7CiAJdGgtPnNlcQkJ CT0gaHRvbmwodGNiLT5zZXEpOwotCXRoLT5hY2tfc2VxCQk9IGh0b25sKHRwLT5yY3Zfbnh0KTsK Kwl0aC0+YWNrX3NlcQkJPSBodG9ubChyY3Zfbnh0KTsKIAkqKCgoX19iZTE2ICopdGgpICsgNikJ PSBodG9ucygoKHRjcF9oZWFkZXJfc2l6ZSA+PiAyKSA8PCAxMikgfAogCQkJCQl0Y2ItPnRjcF9m bGFncyk7CiAKQEAgLTExMzUsNiArMTEzNSwxMyBAQCBzdGF0aWMgaW50IHRjcF90cmFuc21pdF9z a2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY2xvbmVfaXQsCiAJ cmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCB0Y3BfdHJhbnNtaXRfc2tiKHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGNsb25lX2l0LAorCQkJICAgIGdmcF90IGdm cF9tYXNrKQoreworCXJldHVybiBfX3RjcF90cmFuc21pdF9za2Ioc2ssIHNrYiwgY2xvbmVfaXQs IGdmcF9tYXNrLAorCQkJCSAgdGNwX3NrKHNrKS0+cmN2X254dCk7Cit9CisKIC8qIFRoaXMgcm91 dGluZSBqdXN0IHF1ZXVlcyB0aGUgYnVmZmVyIGZvciBzZW5kaW5nLgogICoKICAqIE5PVEU6IHBy b2JlMCB0aW1lciBpcyBub3QgY2hlY2tlZCwgZG8gbm90IGZvcmdldCB0Y3BfcHVzaF9wZW5kaW5n X2ZyYW1lcywKQEAgLTM1NTEsNyArMzU1OCw3IEBAIHZvaWQgdGNwX3NlbmRfZGVsYXllZF9hY2so c3RydWN0IHNvY2sgKnNrKQogfQogCiAvKiBUaGlzIHJvdXRpbmUgc2VuZHMgYW4gYWNrIGFuZCBh bHNvIHVwZGF0ZXMgdGhlIHdpbmRvdy4gKi8KLXZvaWQgdGNwX3NlbmRfYWNrKHN0cnVjdCBzb2Nr ICpzaykKK3ZvaWQgX190Y3Bfc2VuZF9hY2soc3RydWN0IHNvY2sgKnNrLCB1MzIgcmN2X254dCkK IHsKIAlzdHJ1Y3Qgc2tfYnVmZiAqYnVmZjsKIApAQCAtMzU4Niw3ICszNTkzLDEyIEBAIHZvaWQg dGNwX3NlbmRfYWNrKHN0cnVjdCBzb2NrICpzaykKIAlza2Jfc2V0X3RjcF9wdXJlX2FjayhidWZm KTsKIAogCS8qIFNlbmQgaXQgb2ZmLCB0aGlzIGNsZWFycyBkZWxheWVkIGFja3MgZm9yIHVzLiAq LwotCXRjcF90cmFuc21pdF9za2Ioc2ssIGJ1ZmYsIDAsIChfX2ZvcmNlIGdmcF90KTApOworCV9f dGNwX3RyYW5zbWl0X3NrYihzaywgYnVmZiwgMCwgKF9fZm9yY2UgZ2ZwX3QpMCwgcmN2X254dCk7 Cit9CisKK3ZvaWQgdGNwX3NlbmRfYWNrKHN0cnVjdCBzb2NrICpzaykKK3sKKwlfX3RjcF9zZW5k X2FjayhzaywgdGNwX3NrKHNrKS0+cmN2X254dCk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh0Y3Bf c2VuZF9hY2spOwogCi0tIAoyLjE3LjEKCgpGcm9tIDhlYzQ5MmJiNWE5MGVlMGRkYzQ3OWJhOWM0 ZDA1OTkyNzNiMjRlYzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1Y2h1bmcgQ2hl bmcgPHljaGVuZ0Bnb29nbGUuY29tPgpEYXRlOiBXZWQsIDE4IEp1bCAyMDE4IDEzOjU2OjM1IC0w NzAwClN1YmplY3Q6IFtQQVRDSCAxOS8yNV0gdGNwOiBkbyBub3QgY2FuY2VsIGRlbGF5LUFjSyBv biBEQ1RDUCBzcGVjaWFsIEFDSwoKWyBVcHN0cmVhbSBjb21taXQgMjdjZGU0NGEyNTljMzgwYTNj MDkwNjZmYzRiNDJkZTdkZGU5YjFhZCBdCgpDdXJyZW50bHkgd2hlbiBhIERDVENQIHJlY2VpdmVy IGRlbGF5cyBhbiBBQ0sgYW5kIHJlY2VpdmUgYQpkYXRhIHBhY2tldCB3aXRoIGEgZGlmZmVyZW50 IENFIG1hcmsgZnJvbSB0aGUgcHJldmlvdXMgb25lJ3MsIGl0CnNlbmRzIHR3byBpbW1lZGlhdGUg QUNLcyBhY2tpbmcgcHJldmlvdXMgYW5kIGxhdGVzdCBzZXF1ZW5jZXMKcmVzcGVjdGx5IChmb3Ig RUNOIGFjY291bnRpbmcpLgoKUHJldmlvdXNseSBzZW5kaW5nIHRoZSBmaXJzdCBBQ0sgbWF5IG1h cmsgb2ZmIHRoZSBkZWxheWVkIEFDSyB0aW1lcgoodGNwX2V2ZW50X2Fja19zZW50KS4gVGhpcyBt YXkgc3Vic2VxdWVudGx5IHByZXZlbnQgc2VuZGluZyB0aGUKc2Vjb25kIEFDSyB0byBhY2tub3ds ZWRnZSB0aGUgbGF0ZXN0IHNlcXVlbmNlICh0Y3BfYWNrX3NuZF9jaGVjaykuClRoZSBjdWxwcml0 IGlzIHRoYXQgdGNwX3NlbmRfYWNrKCkgYXNzdW1lcyBpdCBhbHdheXMgYWNrbm93bGVnZXMKdGhl IGxhdGVzdCBzZXF1ZW5jZSwgd2hpY2ggaXMgbm90IHRydWUgZm9yIHRoZSBmaXJzdCBzcGVjaWFs IEFDSy4KClRoZSBmaXggaXMgdG8gbm90IG1ha2UgdGhlIGFzc3VtcHRpb24gaW4gdGNwX3NlbmRf YWNrIGFuZCBjaGVjayB0aGUKYWN0dWFsIGFjayBzZXF1ZW5jZSBiZWZvcmUgY2FuY2VsbGluZyB0 aGUgZGVsYXllZCBBQ0suIEZ1cnRoZXIgaXQncwpzYWZlciB0byBwYXNzIHRoZSBhY2sgc2VxdWVu Y2UgbnVtYmVyIGFzIGEgbG9jYWwgdmFyaWFibGUgaW50bwp0Y3Bfc2VuZF9hY2sgcm91dGluZSwg aW5zdGVhZCBvZiBpbnRlcmNlcHRpbmcgdHAtPnJjdl9ueHQgdG8gYXZvaWQKZnV0dXJlIGJ1Z3Mg bGlrZSB0aGlzLgoKUmVwb3J0ZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KQWNr ZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC90Y3AuaCAg ICAgfCAgMSArCiBuZXQvaXB2NC90Y3BfZGN0Y3AuYyAgfCAzNCArKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiBuZXQvaXB2NC90Y3Bfb3V0cHV0LmMgfCAxMSArKysrKysrKy0tLQog MyBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC90Y3AuaCBiL2luY2x1ZGUvbmV0L3RjcC5oCmluZGV4IDNiNDlm M2FhZmVkNy4uNjJhZjRhZTI3NDMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90Y3AuaAorKysg Yi9pbmNsdWRlL25ldC90Y3AuaApAQCAtNTYwLDYgKzU2MCw3IEBAIHZvaWQgdGNwX3NlbmRfZmlu KHN0cnVjdCBzb2NrICpzayk7CiB2b2lkIHRjcF9zZW5kX2FjdGl2ZV9yZXNldChzdHJ1Y3Qgc29j ayAqc2ssIGdmcF90IHByaW9yaXR5KTsKIGludCB0Y3Bfc2VuZF9zeW5hY2soc3RydWN0IHNvY2sg Kik7CiB2b2lkIHRjcF9wdXNoX29uZShzdHJ1Y3Qgc29jayAqLCB1bnNpZ25lZCBpbnQgbXNzX25v dyk7Cit2b2lkIF9fdGNwX3NlbmRfYWNrKHN0cnVjdCBzb2NrICpzaywgdTMyIHJjdl9ueHQpOwog dm9pZCB0Y3Bfc2VuZF9hY2soc3RydWN0IHNvY2sgKnNrKTsKIHZvaWQgdGNwX3NlbmRfZGVsYXll ZF9hY2soc3RydWN0IHNvY2sgKnNrKTsKIHZvaWQgdGNwX3NlbmRfbG9zc19wcm9iZShzdHJ1Y3Qg c29jayAqc2spOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2RjdGNwLmMgYi9uZXQvaXB2NC90 Y3BfZGN0Y3AuYwppbmRleCA4OWY4OGIwZDgxNjcuLjM5ZDk2ZDI3ZmY5NCAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvdGNwX2RjdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwX2RjdGNwLmMKQEAgLTEzNSwy MSArMTM1LDggQEAgc3RhdGljIHZvaWQgZGN0Y3BfY2Vfc3RhdGVfMF90b18xKHN0cnVjdCBzb2Nr ICpzaykKIAkgKiBBQ0sgaGFzIG5vdCBzZW50IHlldC4KIAkgKi8KIAlpZiAoIWNhLT5jZV9zdGF0 ZSAmJgotCSAgICBpbmV0X2NzayhzayktPmljc2tfYWNrLnBlbmRpbmcgJiBJQ1NLX0FDS19USU1F UikgewotCQl1MzIgdG1wX3Jjdl9ueHQ7Ci0KLQkJLyogU2F2ZSBjdXJyZW50IHJjdl9ueHQuICov Ci0JCXRtcF9yY3Zfbnh0ID0gdHAtPnJjdl9ueHQ7Ci0KLQkJLyogR2VuZXJhdGUgcHJldmlvdXMg YWNrIHdpdGggQ0U9MC4gKi8KLQkJdHAtPmVjbl9mbGFncyAmPSB+VENQX0VDTl9ERU1BTkRfQ1dS OwotCQl0cC0+cmN2X254dCA9IGNhLT5wcmlvcl9yY3Zfbnh0OwotCi0JCXRjcF9zZW5kX2Fjayhz ayk7Ci0KLQkJLyogUmVjb3ZlciBjdXJyZW50IHJjdl9ueHQuICovCi0JCXRwLT5yY3Zfbnh0ID0g dG1wX3Jjdl9ueHQ7Ci0JfQorCSAgICBpbmV0X2NzayhzayktPmljc2tfYWNrLnBlbmRpbmcgJiBJ Q1NLX0FDS19USU1FUikKKwkJX190Y3Bfc2VuZF9hY2soc2ssIGNhLT5wcmlvcl9yY3Zfbnh0KTsK IAogCWNhLT5wcmlvcl9yY3Zfbnh0ID0gdHAtPnJjdl9ueHQ7CiAJY2EtPmNlX3N0YXRlID0gMTsK QEAgLTE2NiwyMSArMTUzLDggQEAgc3RhdGljIHZvaWQgZGN0Y3BfY2Vfc3RhdGVfMV90b18wKHN0 cnVjdCBzb2NrICpzaykKIAkgKiBBQ0sgaGFzIG5vdCBzZW50IHlldC4KIAkgKi8KIAlpZiAoY2Et PmNlX3N0YXRlICYmCi0JICAgIGluZXRfY3NrKHNrKS0+aWNza19hY2sucGVuZGluZyAmIElDU0tf QUNLX1RJTUVSKSB7Ci0JCXUzMiB0bXBfcmN2X254dDsKLQotCQkvKiBTYXZlIGN1cnJlbnQgcmN2 X254dC4gKi8KLQkJdG1wX3Jjdl9ueHQgPSB0cC0+cmN2X254dDsKLQotCQkvKiBHZW5lcmF0ZSBw cmV2aW91cyBhY2sgd2l0aCBDRT0xLiAqLwotCQl0cC0+ZWNuX2ZsYWdzIHw9IFRDUF9FQ05fREVN QU5EX0NXUjsKLQkJdHAtPnJjdl9ueHQgPSBjYS0+cHJpb3JfcmN2X254dDsKLQotCQl0Y3Bfc2Vu ZF9hY2soc2spOwotCi0JCS8qIFJlY292ZXIgY3VycmVudCByY3Zfbnh0LiAqLwotCQl0cC0+cmN2 X254dCA9IHRtcF9yY3Zfbnh0OwotCX0KKwkgICAgaW5ldF9jc2soc2spLT5pY3NrX2Fjay5wZW5k aW5nICYgSUNTS19BQ0tfVElNRVIpCisJCV9fdGNwX3NlbmRfYWNrKHNrLCBjYS0+cHJpb3JfcmN2 X254dCk7CiAKIAljYS0+cHJpb3JfcmN2X254dCA9IHRwLT5yY3Zfbnh0OwogCWNhLT5jZV9zdGF0 ZSA9IDA7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bf b3V0cHV0LmMKaW5kZXggYzhkYTI1ZjM3YWU0Li4zZDhmNmYzNDJjYjEgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKQEAgLTE3NSw4 ICsxNzUsMTMgQEAgc3RhdGljIHZvaWQgdGNwX2V2ZW50X2RhdGFfc2VudChzdHJ1Y3QgdGNwX3Nv Y2sgKnRwLAogfQogCiAvKiBBY2NvdW50IGZvciBhbiBBQ0sgd2Ugc2VudC4gKi8KLXN0YXRpYyBp bmxpbmUgdm9pZCB0Y3BfZXZlbnRfYWNrX3NlbnQoc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBp bnQgcGt0cykKK3N0YXRpYyBpbmxpbmUgdm9pZCB0Y3BfZXZlbnRfYWNrX3NlbnQoc3RydWN0IHNv Y2sgKnNrLCB1bnNpZ25lZCBpbnQgcGt0cywKKwkJCQkgICAgICB1MzIgcmN2X254dCkKIHsKKwlz dHJ1Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsKKworCWlmICh1bmxpa2VseShyY3Zfbnh0 ICE9IHRwLT5yY3Zfbnh0KSkKKwkJcmV0dXJuOyAgLyogU3BlY2lhbCBBQ0sgc2VudCBieSBEQ1RD UCB0byByZWZsZWN0IEVDTiAqLwogCXRjcF9kZWNfcXVpY2thY2tfbW9kZShzaywgcGt0cyk7CiAJ aW5ldF9jc2tfY2xlYXJfeG1pdF90aW1lcihzaywgSUNTS19USU1FX0RBQ0spOwogfQpAQCAtMTA5 OCw3ICsxMTAzLDcgQEAgc3RhdGljIGludCBfX3RjcF90cmFuc21pdF9za2Ioc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWljc2stPmljc2tfYWZfb3BzLT5zZW5kX2NoZWNr KHNrLCBza2IpOwogCiAJaWYgKGxpa2VseSh0Y2ItPnRjcF9mbGFncyAmIFRDUEhEUl9BQ0spKQot CQl0Y3BfZXZlbnRfYWNrX3NlbnQoc2ssIHRjcF9za2JfcGNvdW50KHNrYikpOworCQl0Y3BfZXZl bnRfYWNrX3NlbnQoc2ssIHRjcF9za2JfcGNvdW50KHNrYiksIHJjdl9ueHQpOwogCiAJaWYgKHNr Yi0+bGVuICE9IHRjcF9oZWFkZXJfc2l6ZSkgewogCQl0Y3BfZXZlbnRfZGF0YV9zZW50KHRwLCBz ayk7CkBAIC0zNTk1LDEyICszNjAwLDEyIEBAIHZvaWQgX190Y3Bfc2VuZF9hY2soc3RydWN0IHNv Y2sgKnNrLCB1MzIgcmN2X254dCkKIAkvKiBTZW5kIGl0IG9mZiwgdGhpcyBjbGVhcnMgZGVsYXll ZCBhY2tzIGZvciB1cy4gKi8KIAlfX3RjcF90cmFuc21pdF9za2Ioc2ssIGJ1ZmYsIDAsIChfX2Zv cmNlIGdmcF90KTAsIHJjdl9ueHQpOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoX190Y3Bfc2VuZF9h Y2spOwogCiB2b2lkIHRjcF9zZW5kX2FjayhzdHJ1Y3Qgc29jayAqc2spCiB7CiAJX190Y3Bfc2Vu ZF9hY2soc2ssIHRjcF9zayhzayktPnJjdl9ueHQpOwogfQotRVhQT1JUX1NZTUJPTF9HUEwodGNw X3NlbmRfYWNrKTsKIAogLyogVGhpcyByb3V0aW5lIHNlbmRzIGEgcGFja2V0IHdpdGggYW4gb3V0 IG9mIGRhdGUgc2VxdWVuY2UKICAqIG51bWJlci4gSXQgYXNzdW1lcyB0aGUgb3RoZXIgZW5kIHdp bGwgdHJ5IHRvIGFjayBpdC4KLS0gCjIuMTcuMQoKCkZyb20gODU2NTJiMjk1ZjdhN2M3ZWZkNmY2 MjI4MzJhZTFjOTk2ODU3NWExZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVjaHVu ZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMTggSnVsIDIwMTggMTM6NTY6 MzYgLTA3MDAKU3ViamVjdDogW1BBVENIIDIwLzI1XSB0Y3A6IGRvIG5vdCBkZWxheSBBQ0sgaW4g RENUQ1AgdXBvbiBDRSBzdGF0dXMgY2hhbmdlCgpbIFVwc3RyZWFtIGNvbW1pdCBhMDQ5NmVmMmMy M2IzYjE4MDkwMmRkMTg1ZDBkNjNjY2JjNjI0Y2Y4IF0KClBlciBEQ1RDUCBSRkM4MjU3IChTZWN0 aW9uIDMuMikgdGhlIEFDSyByZWZsZWN0aW5nIHRoZSBDRSBzdGF0dXMgY2hhbmdlCmhhcyB0byBi ZSBzZW50IGltbWVkaWF0ZWx5IHNvIHRoZSBzZW5kZXIgY2FuIHJlc3BvbmQgcXVpY2tseToKCiIi IiBXaGVuIHJlY2VpdmluZyBwYWNrZXRzLCB0aGUgQ0UgY29kZXBvaW50IE1VU1QgYmUgcHJvY2Vz c2VkIGFzIGZvbGxvd3M6CgogICAxLiAgSWYgdGhlIENFIGNvZGVwb2ludCBpcyBzZXQgYW5kIERD VENQLkNFIGlzIGZhbHNlLCBzZXQgRENUQ1AuQ0UgdG8KICAgICAgIHRydWUgYW5kIHNlbmQgYW4g aW1tZWRpYXRlIEFDSy4KCiAgIDIuICBJZiB0aGUgQ0UgY29kZXBvaW50IGlzIG5vdCBzZXQgYW5k IERDVENQLkNFIGlzIHRydWUsIHNldCBEQ1RDUC5DRQogICAgICAgdG8gZmFsc2UgYW5kIHNlbmQg YW4gaW1tZWRpYXRlIEFDSy4KIiIiCgpQcmV2aW91c2x5IERDVENQIGltcGxlbWVudGF0aW9uIG1h eSBjb250aW51ZSB0byBkZWxheSB0aGUgQUNLLiBUaGlzCnBhdGNoIGZpeGVzIHRoYXQgdG8gaW1w bGVtZW50IHRoZSBSRkMgYnkgZm9yY2luZyBhbiBpbW1lZGlhdGUgQUNLLgoKVGVzdGVkIHdpdGgg dGhpcyBwYWNrZXRkcmlsbCBzY3JpcHQgcHJvdmlkZWQgYnkgTGFycnkgQnJha21vCgowLjAwMCBz b2NrZXQoLi4uLCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApID0gMwowLjAwMCBzZXRzb2Nrb3B0 KDMsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgWzFdLCA0KSA9IDAKMC4wMDAgc2V0c29ja29w dCgzLCBTT0xfVENQLCBUQ1BfQ09OR0VTVElPTiwgImRjdGNwIiwgNSkgPSAwCjAuMDAwIGJpbmQo MywgLi4uLCAuLi4pID0gMAowLjAwMCBsaXN0ZW4oMywgMSkgPSAwCgowLjEwMCA8IFtlY3QwXSBT RVcgMDowKDApIHdpbiAzMjc5MiA8bXNzIDEwMDAsc2Fja09LLG5vcCxub3Asbm9wLHdzY2FsZSA3 PgowLjEwMCA+IFNFLiAwOjAoMCkgYWNrIDEgPG1zcyAxNDYwLG5vcCxub3Asc2Fja09LLG5vcCx3 c2NhbGUgOD4KMC4xMTAgPCBbZWN0MF0gLiAxOjEoMCkgYWNrIDEgd2luIDI1NwowLjIwMCBhY2Nl cHQoMywgLi4uLCAuLi4pID0gNAogICArMCBzZXRzb2Nrb3B0KDQsIFNPTF9TT0NLRVQsIFNPX0RF QlVHLCBbMV0sIDQpID0gMAoKMC4yMDAgPCBbZWN0MF0gLiAxOjEwMDEoMTAwMCkgYWNrIDEgd2lu IDI1NwowLjIwMCA+IFtlY3QwMV0gLiAxOjEoMCkgYWNrIDEwMDEKCjAuMjAwIHdyaXRlKDQsIC4u LiwgMSkgPSAxCjAuMjAwID4gW2VjdDAxXSBQLiAxOjIoMSkgYWNrIDEwMDEKCjAuMjAwIDwgW2Vj dDBdIC4gMTAwMToyMDAxKDEwMDApIGFjayAyIHdpbiAyNTcKKzAuMDA1IDwgW2NlXSAuIDIwMDE6 MzAwMSgxMDAwKSBhY2sgMiB3aW4gMjU3CgorMC4wMDAgPiBbZWN0MDFdIC4gMjoyKDApIGFjayAy MDAxCi8vIFByZXZpb3VzbHkgdGhlIEFDSyBiZWxvdyB3b3VsZCBiZSBkZWxheWVkIGJ5IDQwbXMK KzAuMDAwID4gW2VjdDAxXSBFLiAyOjIoMCkgYWNrIDMwMDEKCiswLjUwMCA8IEYuIDk1MDE6OTUw MSgwKSBhY2sgNCB3aW4gMjU3CgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdA Z29vZ2xlLmNvbT4KQWNrZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNs dWRlL25ldC90Y3AuaCAgICB8ICAxICsKIG5ldC9pcHY0L3RjcF9kY3RjcC5jIHwgMzAgKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBuZXQvaXB2NC90Y3BfaW5wdXQuYyB8ICAzICsrLQog MyBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC90Y3AuaCBiL2luY2x1ZGUvbmV0L3RjcC5oCmluZGV4IDYyYWY0 YWUyNzQzMC4uMzE3M2RkMTJiOGNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90Y3AuaAorKysg Yi9pbmNsdWRlL25ldC90Y3AuaApAQCAtMzcyLDYgKzM3Miw3IEBAIHNzaXplX3QgdGNwX3NwbGlj ZV9yZWFkKHN0cnVjdCBzb2NrZXQgKnNrLCBsb2ZmX3QgKnBwb3MsCiAJCQlzdHJ1Y3QgcGlwZV9p bm9kZV9pbmZvICpwaXBlLCBzaXplX3QgbGVuLAogCQkJdW5zaWduZWQgaW50IGZsYWdzKTsKIAor dm9pZCB0Y3BfZW50ZXJfcXVpY2thY2tfbW9kZShzdHJ1Y3Qgc29jayAqc2spOwogc3RhdGljIGlu bGluZSB2b2lkIHRjcF9kZWNfcXVpY2thY2tfbW9kZShzdHJ1Y3Qgc29jayAqc2ssCiAJCQkJCSBj b25zdCB1bnNpZ25lZCBpbnQgcGt0cykKIHsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9kY3Rj cC5jIGIvbmV0L2lwdjQvdGNwX2RjdGNwLmMKaW5kZXggMzlkOTZkMjdmZjk0Li5jNzhmYjUzOTg4 YTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9kY3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcF9k Y3RjcC5jCkBAIC0xMzEsMTIgKzEzMSwxNSBAQCBzdGF0aWMgdm9pZCBkY3RjcF9jZV9zdGF0ZV8w X3RvXzEoc3RydWN0IHNvY2sgKnNrKQogCXN0cnVjdCBkY3RjcCAqY2EgPSBpbmV0X2Nza19jYShz ayk7CiAJc3RydWN0IHRjcF9zb2NrICp0cCA9IHRjcF9zayhzayk7CiAKLQkvKiBTdGF0ZSBoYXMg Y2hhbmdlZCBmcm9tIENFPTAgdG8gQ0U9MSBhbmQgZGVsYXllZAotCSAqIEFDSyBoYXMgbm90IHNl bnQgeWV0LgotCSAqLwotCWlmICghY2EtPmNlX3N0YXRlICYmCi0JICAgIGluZXRfY3NrKHNrKS0+ aWNza19hY2sucGVuZGluZyAmIElDU0tfQUNLX1RJTUVSKQotCQlfX3RjcF9zZW5kX2Fjayhzaywg Y2EtPnByaW9yX3Jjdl9ueHQpOworCWlmICghY2EtPmNlX3N0YXRlKSB7CisJCS8qIFN0YXRlIGhh cyBjaGFuZ2VkIGZyb20gQ0U9MCB0byBDRT0xLCBmb3JjZSBhbiBpbW1lZGlhdGUKKwkJICogQUNL IHRvIHJlZmxlY3QgdGhlIG5ldyBDRSBzdGF0ZS4gSWYgYW4gQUNLIHdhcyBkZWxheWVkLAorCQkg KiBzZW5kIHRoYXQgZmlyc3QgdG8gcmVmbGVjdCB0aGUgcHJpb3IgQ0Ugc3RhdGUuCisJCSAqLwor CQlpZiAoaW5ldF9jc2soc2spLT5pY3NrX2Fjay5wZW5kaW5nICYgSUNTS19BQ0tfVElNRVIpCisJ CQlfX3RjcF9zZW5kX2FjayhzaywgY2EtPnByaW9yX3Jjdl9ueHQpOworCQl0Y3BfZW50ZXJfcXVp Y2thY2tfbW9kZShzayk7CisJfQogCiAJY2EtPnByaW9yX3Jjdl9ueHQgPSB0cC0+cmN2X254dDsK IAljYS0+Y2Vfc3RhdGUgPSAxOwpAQCAtMTQ5LDEyICsxNTIsMTUgQEAgc3RhdGljIHZvaWQgZGN0 Y3BfY2Vfc3RhdGVfMV90b18wKHN0cnVjdCBzb2NrICpzaykKIAlzdHJ1Y3QgZGN0Y3AgKmNhID0g aW5ldF9jc2tfY2Eoc2spOwogCXN0cnVjdCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOwogCi0J LyogU3RhdGUgaGFzIGNoYW5nZWQgZnJvbSBDRT0xIHRvIENFPTAgYW5kIGRlbGF5ZWQKLQkgKiBB Q0sgaGFzIG5vdCBzZW50IHlldC4KLQkgKi8KLQlpZiAoY2EtPmNlX3N0YXRlICYmCi0JICAgIGlu ZXRfY3NrKHNrKS0+aWNza19hY2sucGVuZGluZyAmIElDU0tfQUNLX1RJTUVSKQotCQlfX3RjcF9z ZW5kX2FjayhzaywgY2EtPnByaW9yX3Jjdl9ueHQpOworCWlmIChjYS0+Y2Vfc3RhdGUpIHsKKwkJ LyogU3RhdGUgaGFzIGNoYW5nZWQgZnJvbSBDRT0xIHRvIENFPTAsIGZvcmNlIGFuIGltbWVkaWF0 ZQorCQkgKiBBQ0sgdG8gcmVmbGVjdCB0aGUgbmV3IENFIHN0YXRlLiBJZiBhbiBBQ0sgd2FzIGRl bGF5ZWQsCisJCSAqIHNlbmQgdGhhdCBmaXJzdCB0byByZWZsZWN0IHRoZSBwcmlvciBDRSBzdGF0 ZS4KKwkJICovCisJCWlmIChpbmV0X2NzayhzayktPmljc2tfYWNrLnBlbmRpbmcgJiBJQ1NLX0FD S19USU1FUikKKwkJCV9fdGNwX3NlbmRfYWNrKHNrLCBjYS0+cHJpb3JfcmN2X254dCk7CisJCXRj cF9lbnRlcl9xdWlja2Fja19tb2RlKHNrKTsKKwl9CiAKIAljYS0+cHJpb3JfcmN2X254dCA9IHRw LT5yY3Zfbnh0OwogCWNhLT5jZV9zdGF0ZSA9IDA7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bf aW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCmluZGV4IDU3MTFiMWIxMmQyOC4uMDNmZDJm ZjQwMDdiIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaW5wdXQuYworKysgYi9uZXQvaXB2NC90 Y3BfaW5wdXQuYwpAQCAtMjA5LDEzICsyMDksMTQgQEAgc3RhdGljIHZvaWQgdGNwX2luY3JfcXVp Y2thY2soc3RydWN0IHNvY2sgKnNrKQogCQlpY3NrLT5pY3NrX2Fjay5xdWljayA9IG1pbihxdWlj a2Fja3MsIFRDUF9NQVhfUVVJQ0tBQ0tTKTsKIH0KIAotc3RhdGljIHZvaWQgdGNwX2VudGVyX3F1 aWNrYWNrX21vZGUoc3RydWN0IHNvY2sgKnNrKQordm9pZCB0Y3BfZW50ZXJfcXVpY2thY2tfbW9k ZShzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3Nr ID0gaW5ldF9jc2soc2spOwogCXRjcF9pbmNyX3F1aWNrYWNrKHNrKTsKIAlpY3NrLT5pY3NrX2Fj ay5waW5ncG9uZyA9IDA7CiAJaWNzay0+aWNza19hY2suYXRvID0gVENQX0FUT19NSU47CiB9CitF WFBPUlRfU1lNQk9MKHRjcF9lbnRlcl9xdWlja2Fja19tb2RlKTsKIAogLyogU2VuZCBBQ0tzIHF1 aWNrbHksIGlmICJxdWljayIgY291bnQgaXMgbm90IGV4aGF1c3RlZAogICogYW5kIHRoZSBzZXNz aW9uIGlzIG5vdCBpbnRlcmFjdGl2ZS4KLS0gCjIuMTcuMQoKCkZyb20gZDY5NjE1MzljOTU1MzRl YTg2NmQ4ZGU5YTJkNWIyYTkxYTVkZTI1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDIzIEp1bCAyMDE4 IDA5OjI4OjE3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMS8yNV0gdGNwOiBmcmVlIGJhdGNoZXMg b2YgcGFja2V0cyBpbiB0Y3BfcHJ1bmVfb2ZvX3F1ZXVlKCkKClsgVXBzdHJlYW0gY29tbWl0IDcy Y2Q0M2JhNjRmYzE3MmE0NDM0MTBjZTAxNjQ1ODk1ODUwODQ0YzggXQoKSnVoYS1NYXR0aSBUaWxs aSByZXBvcnRlZCB0aGF0IG1hbGljaW91cyBwZWVycyBjb3VsZCBpbmplY3QgdGlueQpwYWNrZXRz IGluIG91dF9vZl9vcmRlcl9xdWV1ZSwgZm9yY2luZyB2ZXJ5IGV4cGVuc2l2ZSBjYWxscwp0byB0 Y3BfY29sbGFwc2Vfb2ZvX3F1ZXVlKCkgYW5kIHRjcF9wcnVuZV9vZm9fcXVldWUoKSBmb3IKZXZl cnkgaW5jb21pbmcgcGFja2V0LiBvdXRfb2Zfb3JkZXJfcXVldWUgcmItdHJlZSBjYW4gY29udGFp bgp0aG91c2FuZHMgb2Ygbm9kZXMsIGl0ZXJhdGluZyBvdmVyIGFsbCBvZiB0aGVtIGlzIG5vdCBu aWNlLgoKQmVmb3JlIGxpbnV4LTQuOSwgd2Ugd291bGQgaGF2ZSBwcnVuZWQgYWxsIHBhY2tldHMg aW4gb2ZvX3F1ZXVlCmluIG9uZSBnbywgZXZlcnkgWFhYWCBwYWNrZXRzLiBYWFhYIGRlcGVuZHMg b24gc2tfcmN2YnVmIGFuZCBza2JzCnRydWVzaXplLCBidXQgaXMgYWJvdXQgNzAwMCBwYWNrZXRz IHdpdGggdGNwX3JtZW1bMl0gZGVmYXVsdCBvZiA2IE1CLgoKU2luY2Ugd2UgcGxhbiB0byBpbmNy ZWFzZSB0Y3Bfcm1lbVsyXSBpbiB0aGUgZnV0dXJlIHRvIGNvcGUgd2l0aAptb2Rlcm4gQkRQLCBj YW4gbm90IHJldmVydCB0byB0aGUgb2xkIGJlaGF2aW9yLCB3aXRob3V0IGdyZWF0IHBhaW4uCgpT dHJhdGVneSB0YWtlbiBpbiB0aGlzIHBhdGNoIGlzIHRvIHB1cmdlIH4xMi41ICUgb2YgdGhlIHF1 ZXVlIGNhcGFjaXR5LgoKRml4ZXM6IDM2YTY1MDNmZWRkYSAoInRjcDogcmVmaW5lIHRjcF9wcnVu ZV9vZm9fcXVldWUoKSB0byBub3QgZHJvcCBhbGwgcGFja2V0cyIpClNpZ25lZC1vZmYtYnk6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IEp1aGEtTWF0dGkg VGlsbGkgPGp1aGEtbWF0dGkudGlsbGlAaWtpLmZpPgpBY2tlZC1ieTogWXVjaHVuZyBDaGVuZyA8 eWNoZW5nQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVp bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9za2J1ZmYuaCB8ICAyICsrCiBuZXQvaXB2NC90 Y3BfaW5wdXQuYyAgIHwgMTUgKysrKysrKysrKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9z a2J1ZmYuaCBiL2luY2x1ZGUvbGludXgvc2tidWZmLmgKaW5kZXggOWNmOTcxYzY4NDAxLi42ZGQ3 Nzc2N2ZkNWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2tidWZmLmgKKysrIGIvaW5jbHVk ZS9saW51eC9za2J1ZmYuaApAQCAtMzE2Nyw2ICszMTY3LDggQEAgc3RhdGljIGlubGluZSBpbnQg X19za2JfZ3Jvd19yY3N1bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgbGVuKQog CXJldHVybiBfX3NrYl9ncm93KHNrYiwgbGVuKTsKIH0KIAorI2RlZmluZSByYl90b19za2IocmIp IHJiX2VudHJ5X3NhZmUocmIsIHN0cnVjdCBza19idWZmLCByYm5vZGUpCisKICNkZWZpbmUgc2ti X3F1ZXVlX3dhbGsocXVldWUsIHNrYikgXAogCQlmb3IgKHNrYiA9IChxdWV1ZSktPm5leHQ7CQkJ CQlcCiAJCSAgICAgc2tiICE9IChzdHJ1Y3Qgc2tfYnVmZiAqKShxdWV1ZSk7CQkJCVwKZGlmZiAt LWdpdCBhL25ldC9pcHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXgg MDNmZDJmZjQwMDdiLi4xZTcxNzViZDNiNTkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pbnB1 dC5jCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC00OTI0LDYgKzQ5MjQsNyBAQCBzdGF0 aWMgdm9pZCB0Y3BfY29sbGFwc2Vfb2ZvX3F1ZXVlKHN0cnVjdCBzb2NrICpzaykKICAqIDIpIG5v dCBhZGQgdG9vIGJpZyBsYXRlbmNpZXMgaWYgdGhvdXNhbmRzIG9mIHBhY2tldHMgc2l0IHRoZXJl LgogICogICAgKEJ1dCBpZiBhcHBsaWNhdGlvbiBzaHJpbmtzIFNPX1JDVkJVRiwgd2UgY291bGQg c3RpbGwgZW5kIHVwCiAgKiAgICAgZnJlZWluZyB3aG9sZSBxdWV1ZSBoZXJlKQorICogMykgRHJv cCBhdCBsZWFzdCAxMi41ICUgb2Ygc2tfcmN2YnVmIHRvIGF2b2lkIG1hbGljaW91cyBhdHRhY2tz LgogICoKICAqIFJldHVybiB0cnVlIGlmIHF1ZXVlIGhhcyBzaHJ1bmsuCiAgKi8KQEAgLTQ5MzEs MjAgKzQ5MzIsMjYgQEAgc3RhdGljIGJvb2wgdGNwX3BydW5lX29mb19xdWV1ZShzdHJ1Y3Qgc29j ayAqc2spCiB7CiAJc3RydWN0IHRjcF9zb2NrICp0cCA9IHRjcF9zayhzayk7CiAJc3RydWN0IHJi X25vZGUgKm5vZGUsICpwcmV2OworCWludCBnb2FsOwogCiAJaWYgKFJCX0VNUFRZX1JPT1QoJnRw LT5vdXRfb2Zfb3JkZXJfcXVldWUpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlORVRfSU5DX1NUQVRT KHNvY2tfbmV0KHNrKSwgTElOVVhfTUlCX09GT1BSVU5FRCk7CisJZ29hbCA9IHNrLT5za19yY3Zi dWYgPj4gMzsKIAlub2RlID0gJnRwLT5vb29fbGFzdF9za2ItPnJibm9kZTsKIAlkbyB7CiAJCXBy ZXYgPSByYl9wcmV2KG5vZGUpOwogCQlyYl9lcmFzZShub2RlLCAmdHAtPm91dF9vZl9vcmRlcl9x dWV1ZSk7CisJCWdvYWwgLT0gcmJfdG9fc2tiKG5vZGUpLT50cnVlc2l6ZTsKIAkJdGNwX2Ryb3Ao c2ssIHJiX2VudHJ5KG5vZGUsIHN0cnVjdCBza19idWZmLCByYm5vZGUpKTsKLQkJc2tfbWVtX3Jl Y2xhaW0oc2spOwotCQlpZiAoYXRvbWljX3JlYWQoJnNrLT5za19ybWVtX2FsbG9jKSA8PSBzay0+ c2tfcmN2YnVmICYmCi0JCSAgICAhdGNwX3VuZGVyX21lbW9yeV9wcmVzc3VyZShzaykpCi0JCQli cmVhazsKKwkJaWYgKCFwcmV2IHx8IGdvYWwgPD0gMCkgeworCQkJc2tfbWVtX3JlY2xhaW0oc2sp OworCQkJaWYgKGF0b21pY19yZWFkKCZzay0+c2tfcm1lbV9hbGxvYykgPD0gc2stPnNrX3JjdmJ1 ZiAmJgorCQkJICAgICF0Y3BfdW5kZXJfbWVtb3J5X3ByZXNzdXJlKHNrKSkKKwkJCQlicmVhazsK KwkJCWdvYWwgPSBzay0+c2tfcmN2YnVmID4+IDM7CisJCX0KIAkJbm9kZSA9IHByZXY7CiAJfSB3 aGlsZSAobm9kZSk7CiAJdHAtPm9vb19sYXN0X3NrYiA9IHJiX2VudHJ5KHByZXYsIHN0cnVjdCBz a19idWZmLCByYm5vZGUpOwotLSAKMi4xNy4xCgoKRnJvbSA4ODQ1MWU4OGFhMzJkODdhNWJlOTgw NDY1MzE5NzNhOWQzZDY4NDVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMjMgSnVsIDIwMTggMDk6Mjg6 MTggLTA3MDAKU3ViamVjdDogW1BBVENIIDIyLzI1XSB0Y3A6IGF2b2lkIGNvbGxhcHNlcyBpbiB0 Y3BfcHJ1bmVfcXVldWUoKSBpZiBwb3NzaWJsZQoKWyBVcHN0cmVhbSBjb21taXQgZjRhMzMxM2Q4 ZTJjYTlmZDhkOGY0NWU0MGEyOTAzYmE3ODI2MDdlNyBdCgpSaWdodCBhZnRlciBhIFRDUCBmbG93 IGlzIGNyZWF0ZWQsIHJlY2VpdmluZyB0aW55IG91dCBvZiBvcmRlcgpwYWNrZXRzIGFsbHdheXMg aGl0IHRoZSBjb25kaXRpb24gOgoKaWYgKGF0b21pY19yZWFkKCZzay0+c2tfcm1lbV9hbGxvYykg Pj0gc2stPnNrX3JjdmJ1ZikKCXRjcF9jbGFtcF93aW5kb3coc2spOwoKdGNwX2NsYW1wX3dpbmRv dygpIGluY3JlYXNlcyBza19yY3ZidWYgdG8gbWF0Y2ggc2tfcm1lbV9hbGxvYwooZ3VhcmRlZCBi eSB0Y3Bfcm1lbVsyXSkKCkNhbGxpbmcgdGNwX2NvbGxhcHNlX29mb19xdWV1ZSgpIGluIHRoaXMg Y2FzZSBpcyBub3QgdXNlZnVsLAphbmQgb2ZmZXJzIGEgTyhOXjIpIHN1cmZhY2UgYXR0YWNrIHRv IG1hbGljaW91cyBwZWVycy4KCkJldHRlciBub3QgYXR0ZW1wdCBhbnl0aGluZyBiZWZvcmUgZnVs bCBxdWV1ZSBjYXBhY2l0eSBpcyByZWFjaGVkLApmb3JjaW5nIGF0dGFja2VyIHRvIHNwZW5kIGxv dHMgb2YgcmVzb3VyY2UgYW5kIGFsbG93IHVzIHRvIG1vcmUKZWFzaWx5IGRldGVjdCB0aGUgYWJ1 c2UuCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkFj a2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpBY2tlZC1i eTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfaW5wdXQu YyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwppbmRleCAxZTcxNzVi ZDNiNTkuLjAyM2QyYjAxNmY1ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMKKysr IGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKQEAgLTQ5ODYsNiArNDk4Niw5IEBAIHN0YXRpYyBpbnQg dGNwX3BydW5lX3F1ZXVlKHN0cnVjdCBzb2NrICpzaykKIAllbHNlIGlmICh0Y3BfdW5kZXJfbWVt b3J5X3ByZXNzdXJlKHNrKSkKIAkJdHAtPnJjdl9zc3RocmVzaCA9IG1pbih0cC0+cmN2X3NzdGhy ZXNoLCA0VSAqIHRwLT5hZHZtc3MpOwogCisJaWYgKGF0b21pY19yZWFkKCZzay0+c2tfcm1lbV9h bGxvYykgPD0gc2stPnNrX3JjdmJ1ZikKKwkJcmV0dXJuIDA7CisKIAl0Y3BfY29sbGFwc2Vfb2Zv X3F1ZXVlKHNrKTsKIAlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUp KQogCQl0Y3BfY29sbGFwc2Uoc2ssICZzay0+c2tfcmVjZWl2ZV9xdWV1ZSwgTlVMTCwKLS0gCjIu MTcuMQoKCkZyb20gYTQzNDUwYTIzM2ZmNDhiNThiOWQ0Njg1MjFiZDQ3N2I3MTNhNmVhOCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpEYXRlOiBNb24sIDIzIEp1bCAyMDE4IDA5OjI4OjE5IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAyMy8yNV0gdGNwOiBkZXRlY3QgbWFsaWNpb3VzIHBhdHRlcm5zIGluCiB0Y3BfY29sbGFwc2Vf b2ZvX3F1ZXVlKCkKClsgVXBzdHJlYW0gY29tbWl0IDNkNGJmOTNhYzEyMDAzZjliOGUxZTJkZTM3 ZmUyNzk4M2RlZWJkY2YgXQoKSW4gY2FzZSBhbiBhdHRhY2tlciBmZWVkcyB0aW55IHBhY2tldHMg Y29tcGxldGVseSBvdXQgb2Ygb3JkZXIsCnRjcF9jb2xsYXBzZV9vZm9fcXVldWUoKSBtaWdodCBz Y2FuIHRoZSB3aG9sZSByYi10cmVlLCBwZXJmb3JtaW5nCmV4cGVuc2l2ZSBjb3BpZXMsIGJ1dCBu b3QgY2hhbmdpbmcgc29ja2V0IG1lbW9yeSB1c2FnZSBhdCBhbGwuCgoxKSBEbyBub3QgYXR0ZW1w dCB0byBjb2xsYXBzZSB0aW55IHNrYnMuCjIpIEFkZCBsb2dpYyB0byBleGl0IGVhcmx5IHdoZW4g dG9vIG1hbnkgdGlueSBza2JzIGFyZSBkZXRlY3RlZC4KCldlIHByZWZlciBub3QgZG9pbmcgYWdn cmVzc2l2ZSBjb2xsYXBzaW5nICh3aGljaCBjb3BpZXMgcGFja2V0cykKZm9yIHBhdGhvbG9naWNh bCBmbG93cywgYW5kIHJldmVydCB0byB0Y3BfcHJ1bmVfb2ZvX3F1ZXVlKCkgd2hpY2gKd2lsbCBi ZSBsZXNzIGV4cGVuc2l2ZS4KCkluIHRoZSBmdXR1cmUsIHdlIG1pZ2h0IGFkZCB0aGUgcG9zc2li aWxpdHkgb2YgdGVybWluYXRpbmcgZmxvd3MKdGhhdCBhcmUgcHJvdmVuIHRvIGJlIG1hbGljaW91 cy4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNr ZWQtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2 NC90Y3BfaW5wdXQuYyB8IDE1ICsrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEzIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lu cHV0LmMgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwppbmRleCAwMjNkMmIwMTZmNWQuLjZmMDljNDVk YzIwYyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNw X2lucHV0LmMKQEAgLTQ4NzcsNiArNDg3Nyw3IEBAIHRjcF9jb2xsYXBzZShzdHJ1Y3Qgc29jayAq c2ssIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsIHN0cnVjdCByYl9yb290ICpyb290LAogc3Rh dGljIHZvaWQgdGNwX2NvbGxhcHNlX29mb19xdWV1ZShzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3Ry dWN0IHRjcF9zb2NrICp0cCA9IHRjcF9zayhzayk7CisJdTMyIHJhbmdlX3RydWVzaXplLCBzdW1f dGlueSA9IDA7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYiwgKmhlYWQ7CiAJc3RydWN0IHJiX25vZGUg KnA7CiAJdTMyIHN0YXJ0LCBlbmQ7CkBAIC00ODk1LDYgKzQ4OTYsNyBAQCBzdGF0aWMgdm9pZCB0 Y3BfY29sbGFwc2Vfb2ZvX3F1ZXVlKHN0cnVjdCBzb2NrICpzaykKIAl9CiAJc3RhcnQgPSBUQ1Bf U0tCX0NCKHNrYiktPnNlcTsKIAllbmQgPSBUQ1BfU0tCX0NCKHNrYiktPmVuZF9zZXE7CisJcmFu Z2VfdHJ1ZXNpemUgPSBza2ItPnRydWVzaXplOwogCiAJZm9yIChoZWFkID0gc2tiOzspIHsKIAkJ c2tiID0gdGNwX3NrYl9uZXh0KHNrYiwgTlVMTCk7CkBAIC00OTA1LDExICs0OTA3LDIwIEBAIHN0 YXRpYyB2b2lkIHRjcF9jb2xsYXBzZV9vZm9fcXVldWUoc3RydWN0IHNvY2sgKnNrKQogCQlpZiAo IXNrYiB8fAogCQkgICAgYWZ0ZXIoVENQX1NLQl9DQihza2IpLT5zZXEsIGVuZCkgfHwKIAkJICAg IGJlZm9yZShUQ1BfU0tCX0NCKHNrYiktPmVuZF9zZXEsIHN0YXJ0KSkgewotCQkJdGNwX2NvbGxh cHNlKHNrLCBOVUxMLCAmdHAtPm91dF9vZl9vcmRlcl9xdWV1ZSwKLQkJCQkgICAgIGhlYWQsIHNr Yiwgc3RhcnQsIGVuZCk7CisJCQkvKiBEbyBub3QgYXR0ZW1wdCBjb2xsYXBzaW5nIHRpbnkgc2ti cyAqLworCQkJaWYgKHJhbmdlX3RydWVzaXplICE9IGhlYWQtPnRydWVzaXplIHx8CisJCQkgICAg ZW5kIC0gc3RhcnQgPj0gU0tCX1dJVEhfT1ZFUkhFQUQoU0tfTUVNX1FVQU5UVU0pKSB7CisJCQkJ dGNwX2NvbGxhcHNlKHNrLCBOVUxMLCAmdHAtPm91dF9vZl9vcmRlcl9xdWV1ZSwKKwkJCQkJICAg ICBoZWFkLCBza2IsIHN0YXJ0LCBlbmQpOworCQkJfSBlbHNlIHsKKwkJCQlzdW1fdGlueSArPSBy YW5nZV90cnVlc2l6ZTsKKwkJCQlpZiAoc3VtX3RpbnkgPiBzay0+c2tfcmN2YnVmID4+IDMpCisJ CQkJCXJldHVybjsKKwkJCX0KIAkJCWdvdG8gbmV3X3JhbmdlOwogCQl9CiAKKwkJcmFuZ2VfdHJ1 ZXNpemUgKz0gc2tiLT50cnVlc2l6ZTsKIAkJaWYgKHVubGlrZWx5KGJlZm9yZShUQ1BfU0tCX0NC KHNrYiktPnNlcSwgc3RhcnQpKSkKIAkJCXN0YXJ0ID0gVENQX1NLQl9DQihza2IpLT5zZXE7CiAJ CWlmIChhZnRlcihUQ1BfU0tCX0NCKHNrYiktPmVuZF9zZXEsIGVuZCkpCi0tIAoyLjE3LjEKCgpG cm9tIGY1M2NlOWZiZjFiM2RmZDlmZTNjNDdlNWRkOTM0MzlhZDU2MTg2YWUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0 ZTogTW9uLCAyMyBKdWwgMjAxOCAwOToyODoyMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMjVd IHRjcDogY2FsbCB0Y3BfZHJvcCgpIGZyb20gdGNwX2RhdGFfcXVldWVfb2ZvKCkKClsgVXBzdHJl YW0gY29tbWl0IDg1NDFiMjFlNzgxYTIyZGNlNTJhNzRmZWYwYjliZWQwMDQwNGExY2QgXQoKSW4g b3JkZXIgdG8gYmUgYWJsZSB0byBnaXZlIGJldHRlciBkaWFnbm9zdGljcyBhbmQgZGV0ZWN0Cm1h bGljaW91cyB0cmFmZmljLCB3ZSBuZWVkIHRvIGhhdmUgYmV0dGVyIHNrLT5za19kcm9wcyB0cmFj a2luZy4KCkZpeGVzOiA5ZjVhZmVhZTUxNTIgKCJ0Y3A6IHVzZSBhbiBSQiB0cmVlIGZvciBvb28g cmVjZWl2ZSBxdWV1ZSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KQWNrZWQtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5j b20+CkFja2VkLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0 L3RjcF9pbnB1dC5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lw djQvdGNwX2lucHV0LmMKaW5kZXggNmYwOWM0NWRjMjBjLi4zNWIwZTM4ZmUzMWEgMTAwNjQ0Ci0t LSBhL25ldC9pcHY0L3RjcF9pbnB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC00 NDkyLDcgKzQ0OTIsNyBAQCBzdGF0aWMgdm9pZCB0Y3BfZGF0YV9xdWV1ZV9vZm8oc3RydWN0IHNv Y2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJCS8qIEFsbCB0aGUgYml0cyBhcmUgcHJl c2VudC4gRHJvcC4gKi8KIAkJCQlORVRfSU5DX1NUQVRTKHNvY2tfbmV0KHNrKSwKIAkJCQkJICAg ICAgTElOVVhfTUlCX1RDUE9GT01FUkdFKTsKLQkJCQlfX2tmcmVlX3NrYihza2IpOworCQkJCXRj cF9kcm9wKHNrLCBza2IpOwogCQkJCXNrYiA9IE5VTEw7CiAJCQkJdGNwX2RzYWNrX3NldChzaywg c2VxLCBlbmRfc2VxKTsKIAkJCQlnb3RvIGFkZF9zYWNrOwpAQCAtNDUxMSw3ICs0NTExLDcgQEAg c3RhdGljIHZvaWQgdGNwX2RhdGFfcXVldWVfb2ZvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNr X2J1ZmYgKnNrYikKIAkJCQkJCSBUQ1BfU0tCX0NCKHNrYjEpLT5lbmRfc2VxKTsKIAkJCQlORVRf SU5DX1NUQVRTKHNvY2tfbmV0KHNrKSwKIAkJCQkJICAgICAgTElOVVhfTUlCX1RDUE9GT01FUkdF KTsKLQkJCQlfX2tmcmVlX3NrYihza2IxKTsKKwkJCQl0Y3BfZHJvcChzaywgc2tiMSk7CiAJCQkJ Z290byBtZXJnZV9yaWdodDsKIAkJCX0KIAkJfSBlbHNlIGlmICh0Y3BfdHJ5X2NvYWxlc2NlKHNr LCBPT09fUVVFVUUsIHNrYjEsCi0tIAoyLjE3LjEKCgpGcm9tIDdiYTZhNDExZDRkOWNiZTU0MGU5 MDEzN2NmZTc3ZTZjODllNTEzYmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCAyMyBKdWwgMjAxOCAwOToy ODoyMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMjVdIHRjcDogYWRkIHRjcF9vb29fdHJ5X2Nv YWxlc2NlKCkgaGVscGVyCgpbIFVwc3RyZWFtIGNvbW1pdCA1ODE1MmVjYmJjYzZhMGNlN2ZkZGQ1 YmY1ZjZlZTUzNTgzNGVjZTBjIF0KCkluIGNhc2Ugc2tiIGluIG91dF9vcl9vcmRlcl9xdWV1ZSBp cyB0aGUgcmVzdWx0IG9mCm11bHRpcGxlIHNrYnMgY29hbGVzY2luZywgd2Ugd291bGQgbGlrZSB0 byBnZXQgYSBwcm9wZXIgZ3NvX3NlZ3MKY291bnRlciB0cmFja2luZywgc28gdGhhdCBmdXR1cmUg dGNwX2Ryb3AoKSBjYW4gcmVwb3J0IGFuIGFjY3VyYXRlCm51bWJlci4KCkkgY2hvc2UgdG8gbm90 IGltcGxlbWVudCB0aGlzIHRyYWNraW5nIGZvciBza2JzIGluIHJlY2VpdmUgcXVldWUsCnNpbmNl IHRoZXkgYXJlIG5vdCBkcm9wcGVkLCB1bmxlc3Mgc29ja2V0IGlzIGRpc2Nvbm5lY3RlZC4KClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6 IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBZdWNo dW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9pbnB1dC5jIHwgMjUg KysrKysrKysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9u ZXQvaXB2NC90Y3BfaW5wdXQuYwppbmRleCAzNWIwZTM4ZmUzMWEuLmI4NmU3YjhiZWIxZCAxMDA2 NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMK QEAgLTQzMzIsNiArNDMzMiwyMyBAQCBzdGF0aWMgYm9vbCB0Y3BfdHJ5X2NvYWxlc2NlKHN0cnVj dCBzb2NrICpzaywKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgdGNwX29vb190cnlf Y29hbGVzY2Uoc3RydWN0IHNvY2sgKnNrLAorCQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAqdG8sCisJ CQkgICAgIHN0cnVjdCBza19idWZmICpmcm9tLAorCQkJICAgICBib29sICpmcmFnc3RvbGVuKQor eworCWJvb2wgcmVzID0gdGNwX3RyeV9jb2FsZXNjZShzaywgT09PX1FVRVVFLCB0bywgZnJvbSwg ZnJhZ3N0b2xlbik7CisKKwkvKiBJbiBjYXNlIHRjcF9kcm9wKCkgaXMgY2FsbGVkIGxhdGVyLCB1 cGRhdGUgdG8tPmdzb19zZWdzICovCisJaWYgKHJlcykgeworCQl1MzIgZ3NvX3NlZ3MgPSBtYXhf dCh1MTYsIDEsIHNrYl9zaGluZm8odG8pLT5nc29fc2VncykgKworCQkJICAgICAgIG1heF90KHUx NiwgMSwgc2tiX3NoaW5mbyhmcm9tKS0+Z3NvX3NlZ3MpOworCisJCXNrYl9zaGluZm8odG8pLT5n c29fc2VncyA9IG1pbl90KHUzMiwgZ3NvX3NlZ3MsIDB4RkZGRik7CisJfQorCXJldHVybiByZXM7 Cit9CisKIHN0YXRpYyB2b2lkIHRjcF9kcm9wKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1 ZmYgKnNrYikKIHsKIAlza19kcm9wc19hZGQoc2ssIHNrYik7CkBAIC00NDYzLDggKzQ0ODAsOCBA QCBzdGF0aWMgdm9pZCB0Y3BfZGF0YV9xdWV1ZV9vZm8oc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogCS8qIEluIHRoZSB0eXBpY2FsIGNhc2UsIHdlIGFyZSBhZGRpbmcgYW4g c2tiIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCiAJICogVXNlIG9mIG9vb19sYXN0X3NrYiBhdm9p ZHMgdGhlIE8oTG9nKE4pKSByYnRyZWUgbG9va3VwLgogCSAqLwotCWlmICh0Y3BfdHJ5X2NvYWxl c2NlKHNrLCBPT09fUVVFVUUsIHRwLT5vb29fbGFzdF9za2IsCi0JCQkgICAgIHNrYiwgJmZyYWdz dG9sZW4pKSB7CisJaWYgKHRjcF9vb29fdHJ5X2NvYWxlc2NlKHNrLCB0cC0+b29vX2xhc3Rfc2ti LAorCQkJCSBza2IsICZmcmFnc3RvbGVuKSkgewogY29hbGVzY2VfZG9uZToKIAkJdGNwX2dyb3df d2luZG93KHNrLCBza2IpOwogCQlrZnJlZV9za2JfcGFydGlhbChza2IsIGZyYWdzdG9sZW4pOwpA QCAtNDUxNCw4ICs0NTMxLDggQEAgc3RhdGljIHZvaWQgdGNwX2RhdGFfcXVldWVfb2ZvKHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCQl0Y3BfZHJvcChzaywgc2tiMSk7 CiAJCQkJZ290byBtZXJnZV9yaWdodDsKIAkJCX0KLQkJfSBlbHNlIGlmICh0Y3BfdHJ5X2NvYWxl c2NlKHNrLCBPT09fUVVFVUUsIHNrYjEsCi0JCQkJCSAgICBza2IsICZmcmFnc3RvbGVuKSkgewor CQl9IGVsc2UgaWYgKHRjcF9vb29fdHJ5X2NvYWxlc2NlKHNrLCBza2IxLAorCQkJCQkJc2tiLCAm ZnJhZ3N0b2xlbikpIHsKIAkJCWdvdG8gY29hbGVzY2VfZG9uZTsKIAkJfQogCQlwID0gJnBhcmVu dC0+cmJfcmlnaHQ7Ci0tIAoyLjE3LjEKCg== ----Next_Part(Thu_Jul_26_16_50_51_2018_532)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_417.mbox" RnJvbSBhODVmMzYzOTFmYmZhYTI2ZDVhOWQxZDExNTY3NDFlOTViMjI5M2RkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXJvZCBXaWxzb24gPGphcm9kQHJlZGhhdC5jb20+CkRhdGU6 IFdlZCwgMTggSnVsIDIwMTggMTQ6NDk6MzYgLTA0MDAKU3ViamVjdDogW1BBVENIIDAxLzM0XSBi b25kaW5nOiBzZXQgZGVmYXVsdCBtaWltb24gdmFsdWUgZm9yIG5vbi1hcnAgbW9kZXMgaWYKIG5v dCBzZXQKClsgVXBzdHJlYW0gY29tbWl0IGMxZjg5N2NlMTg2YTUyOWE0OTQ0NDE2NDIxMjU0Nzlk Mzg3MjdhM2QgXQoKRm9yIHNvbWUgdGltZSBub3csIGlmIHlvdSBsb2FkIHRoZSBib25kaW5nIGRy aXZlciBhbmQgY29uZmlndXJlIGJvbmQKcGFyYW1ldGVycyB2aWEgc3lzZnMgdXNpbmcgbWluaW1h bCBjb25maWcgb3B0aW9ucywgc3VjaCBhcyBzcGVjaWZ5aW5nCm5vdGhpbmcgYnV0IHRoZSBtb2Rl LCByZWx5aW5nIG9uIGRlZmF1bHRzIGZvciBldmVyeXRoaW5nIGVsc2UsIG1vZGVzCnRoYXQgY2Fu bm90IHVzZSBhcnAgbW9uaXRvcmluZyAoODAyLjNhZCwgYmFsYW5jZS10bGIsIGJhbGFuY2UtYWxi KSBhbGwKd2luZCB1cCB3aXRoIGJvdGggYXJwX2ludGVydmFsPTAgKGFzIGl0IHNob3VsZCBiZSkg YW5kIG1paW1vbj0wLCB3aGljaAptZWFucyB0aGUgbWlpbW9uIG1vbml0b3IgdGhyZWFkIG5ldmVy IGFjdHVhbGx5IHJ1bnMuIFRoaXMgaXMgcGFydGljdWxhcmx5CnByb2JsZW1hdGljIGZvciA4MDIu M2FkLgoKRm9yIGV4YW1wbGUsIGZyb20gYW4gTE5TVCByZWNpcGUgSSd2ZSBzZXQgdXA6CgokIG1v ZHByb2JlIGJvbmRpbmcgbWF4X2JvbmRzPTAiCiQgZWNobyAiK3RfYm9uZDAiID4gL3N5cy9jbGFz cy9uZXQvYm9uZGluZ19tYXN0ZXJzIgokIGlwIGxpbmsgc2V0IHRfYm9uZDAgZG93biIKJCBlY2hv ICI4MDIuM2FkIiA+IC9zeXMvY2xhc3MvbmV0L3RfYm9uZDAvYm9uZGluZy9tb2RlIgokIGlwIGxp bmsgc2V0IGVuczFmMSBkb3duIgokIGVjaG8gIitlbnMxZjEiID4gL3N5cy9jbGFzcy9uZXQvdF9i b25kMC9ib25kaW5nL3NsYXZlcyIKJCBpcCBsaW5rIHNldCBlbnMxZjAgZG93biIKJCBlY2hvICIr ZW5zMWYwIiA+IC9zeXMvY2xhc3MvbmV0L3RfYm9uZDAvYm9uZGluZy9zbGF2ZXMiCiQgZXRodG9v bCAtaSB0X2JvbmQwIgokIGlwIGxpbmsgc2V0IGVuczFmMSB1cCIKJCBpcCBsaW5rIHNldCBlbnMx ZjAgdXAiCiQgaXAgbGluayBzZXQgdF9ib25kMCB1cCIKJCBpcCBhZGRyIGFkZCAxOTIuMTY4Ljku MS8yNCBkZXYgdF9ib25kMCIKJCBpcCBhZGRyIGFkZCAyMDAyOjoxLzY0IGRldiB0X2JvbmQwIgoK VGhpcyBib25kIGNvbWVzIHVwIG9rYXksIGJ1dCB0aGluZ3MgbG9vayBzbGlnaHRseSBzdXNwZWN0 IGluCi9wcm9jL25ldC9ib25kaW5nL3RfYm9uZDAgb3V0cHV0OgoKJCBncmVwIC1pIG1paSAvcHJv Yy9uZXQvYm9uZGluZy90X2JvbmQwCk1JSSBTdGF0dXM6IHVwCk1JSSBQb2xsaW5nIEludGVydmFs IChtcyk6IDAKTUlJIFN0YXR1czogdXAKTUlJIFN0YXR1czogdXAKCk5vdywgcHVsbCBhIGNhYmxl IG9uIG9uZSBvZiB0aGUgcG9ydHMgaW4gdGhlIGJvbmQsIHRoZW4gcmVjb25uZWN0IGl0LCBhbmQK eW91J2xsIHNlZToKClNsYXZlIEludGVyZmFjZTogZW5zMWYwCk1JSSBTdGF0dXM6IGRvd24KU3Bl ZWQ6IDEwMDAgTWJwcwpEdXBsZXg6IGZ1bGwKCkkgYmVsaWV2ZSB0aGlzIGJlY2FtZSBhIG1ham9y IGlzc3VlIGFzIG9mIGNvbW1pdCA0ZDJjMGNkYTA3NDQsIHdoaWNoIGZvcgo4MDIuM2FkIGJvbmRz LCBzZXRzIHNsYXZlLT5saW5rID0gQk9ORF9MSU5LX0RPV04sIHdpdGggYSBjb21tZW50IGFib3V0 CnJlbHlpbmcgb24gbGluayBtb25pdG9yaW5nIHZpYSBtaWltb24gdG8gc2V0IGl0IGNvcnJlY3Rs eSwgYnV0IHNpbmNlIHRoZQptaWltb24gd29yayBxdWV1ZSBuZXZlciBydW5zLCB0aGUgbGluayBq dXN0IHN0YXlzIG1hcmtlZCBkb3duLgoKSWYgd2Ugc2ltcGx5IHR3ZWFrIGJvbmRfb3B0aW9uX21v ZGVfc2V0KCkgc2xpZ2h0bHksIHdlIGNhbiBjaGVjayBmb3IgdGhlCm5vbi1hcnAgbW9kZXMgaGF2 aW5nIG5vIG1paW1vbiB2YWx1ZSBzZXQsIGFuZCBpbnNlcnQgQk9ORF9ERUZBVUxUX01JSU1PTiwK d2hpY2ggZ2V0cyB0aGluZ3MgYmFjayBpbiBmdWxsIHdvcmtpbmcgb3JkZXIuIFRoaXMgcHJvYmxl bSBleGlzdHMgYXMgZmFyCmJhY2sgYXMgNC4xNCwgYW5kIG1pZ2h0IGJlIHdvcnRoIGZpeGluZyBp biBhbGwgc3RhYmxlIHRyZWVzIHNpbmNlLCB0aG91Z2gKdGhlIHdvcmstYXJvdW5kIGlzIHRvIHNp bXBseSBzcGVjaWZ5IGFuIG1paW1vbiB2YWx1ZSB5b3Vyc2VsZi4KClJlcG9ydGVkLWJ5OiBCb2Ig QmFsbCA8YmFsbEB1bWljaC5lZHU+ClNpZ25lZC1vZmYtYnk6IEphcm9kIFdpbHNvbiA8amFyb2RA cmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1haGVzaCBCYW5kZXdhciA8bWFoZXNoYkBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlvbnMuYyB8IDIzICsrKysrKysrKysrKysr LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5jIGIvZHJp dmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlvbnMuYwppbmRleCBiNTk0YmFlMWFkYmQuLmNkYzcy YjdlM2QyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlvbnMuYwor KysgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5jCkBAIC03NDMsMTUgKzc0Mywy MCBAQCBjb25zdCBzdHJ1Y3QgYm9uZF9vcHRpb24gKmJvbmRfb3B0X2dldCh1bnNpZ25lZCBpbnQg b3B0aW9uKQogc3RhdGljIGludCBib25kX29wdGlvbl9tb2RlX3NldChzdHJ1Y3QgYm9uZGluZyAq Ym9uZCwKIAkJCQljb25zdCBzdHJ1Y3QgYm9uZF9vcHRfdmFsdWUgKm5ld3ZhbCkKIHsKLQlpZiAo IWJvbmRfbW9kZV91c2VzX2FycChuZXd2YWwtPnZhbHVlKSAmJiBib25kLT5wYXJhbXMuYXJwX2lu dGVydmFsKSB7Ci0JCW5ldGRldl9kYmcoYm9uZC0+ZGV2LCAiJXMgbW9kZSBpcyBpbmNvbXBhdGli bGUgd2l0aCBhcnAgbW9uaXRvcmluZywgc3RhcnQgbWlpIG1vbml0b3JpbmdcbiIsCi0JCQkgICBu ZXd2YWwtPnN0cmluZyk7Ci0JCS8qIGRpc2FibGUgYXJwIG1vbml0b3JpbmcgKi8KLQkJYm9uZC0+ cGFyYW1zLmFycF9pbnRlcnZhbCA9IDA7Ci0JCS8qIHNldCBtaWltb24gdG8gZGVmYXVsdCB2YWx1 ZSAqLwotCQlib25kLT5wYXJhbXMubWlpbW9uID0gQk9ORF9ERUZBVUxUX01JSU1PTjsKLQkJbmV0 ZGV2X2RiZyhib25kLT5kZXYsICJTZXR0aW5nIE1JSSBtb25pdG9yaW5nIGludGVydmFsIHRvICVk XG4iLAotCQkJICAgYm9uZC0+cGFyYW1zLm1paW1vbik7CisJaWYgKCFib25kX21vZGVfdXNlc19h cnAobmV3dmFsLT52YWx1ZSkpIHsKKwkJaWYgKGJvbmQtPnBhcmFtcy5hcnBfaW50ZXJ2YWwpIHsK KwkJCW5ldGRldl9kYmcoYm9uZC0+ZGV2LCAiJXMgbW9kZSBpcyBpbmNvbXBhdGlibGUgd2l0aCBh cnAgbW9uaXRvcmluZywgc3RhcnQgbWlpIG1vbml0b3JpbmdcbiIsCisJCQkJICAgbmV3dmFsLT5z dHJpbmcpOworCQkJLyogZGlzYWJsZSBhcnAgbW9uaXRvcmluZyAqLworCQkJYm9uZC0+cGFyYW1z LmFycF9pbnRlcnZhbCA9IDA7CisJCX0KKworCQlpZiAoIWJvbmQtPnBhcmFtcy5taWltb24pIHsK KwkJCS8qIHNldCBtaWltb24gdG8gZGVmYXVsdCB2YWx1ZSAqLworCQkJYm9uZC0+cGFyYW1zLm1p aW1vbiA9IEJPTkRfREVGQVVMVF9NSUlNT047CisJCQluZXRkZXZfZGJnKGJvbmQtPmRldiwgIlNl dHRpbmcgTUlJIG1vbml0b3JpbmcgaW50ZXJ2YWwgdG8gJWRcbiIsCisJCQkJICAgYm9uZC0+cGFy YW1zLm1paW1vbik7CisJCX0KIAl9CiAKIAlpZiAobmV3dmFsLT52YWx1ZSA9PSBCT05EX01PREVf QUxCKQotLSAKMi4xNy4xCgoKRnJvbSA2N2M4MDQyYzc3ZmU5NzUwMzA5YWY5ODU2ZDAyOWRjZjZk ZTExYWJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5p QHJlZGhhdC5jb20+CkRhdGU6IE1vbiwgMjMgSnVsIDIwMTggMTY6NTA6NDggKzAyMDAKU3ViamVj dDogW1BBVENIIDAyLzM0XSBpcDogaGFzaCBmcmFnbWVudHMgY29uc2lzdGVudGx5CgpbIFVwc3Ry ZWFtIGNvbW1pdCAzZGQxYzlhMTI3MDczNjAyOWZmY2E2NzBlOWJkMDI2NWY0MTIwNjAwIF0KClRo ZSBza2IgaGFzaCBmb3IgbG9jYWxseSBnZW5lcmF0ZWQgaXBbdjZdIGZyYWdtZW50cyBiZWxvbmdp bmcKdG8gdGhlIHNhbWUgZGF0YWdyYW0gY2FuIHZhcnkgaW4gc2V2ZXJhbCBjaXJjdW1zdGFuY2Vz OgoqIGZvciBjb25uZWN0ZWQgVURQW3Y2XSBzb2NrZXRzLCB0aGUgZmlyc3QgZnJhZ21lbnQgZ2V0 IGl0cyBoYXNoCiAgdmlhIHNldF9vd25lcl93KCkvc2tiX3NldF9oYXNoX2Zyb21fc2soKQoqIGZv ciB1bmNvbm5lY3RlZCBJUHY2IFVEUHY2IHNvY2tldHMsIHRoZSBmaXJzdCBmcmFnbWVudCBjYW4g Z2V0CiAgaXRzIGhhc2ggdmlhIGlwNl9tYWtlX2Zsb3dsYWJlbCgpL3NrYl9nZXRfaGFzaF9mbG93 aTYoKSwgaWYKICBhdXRvX2Zsb3dsYWJlbCBpcyBlbmFibGVkCgpGb3IgdGhlIGZvbGxvd2luZyBm cmFncyB0aGUgaGFzaCBpcyB1c3VhbGx5IGNvbXB1dGVkIHZpYQpza2JfZ2V0X2hhc2goKS4KVGhl IGFib3ZlIGNhbiBjYXVzZSBPb08gZm9yIHVuY29ubmVjdGVkIElQdjYgVURQdjYgc29ja2V0OiBp biB0aGF0CnNjZW5hcmlvIHRoZSBlZ3Jlc3MgdHggcXVldWUgY2FuIGJlIHNlbGVjdGVkIG9uIGEg cGVyIHBhY2tldCBiYXNpcwp2aWEgdGhlIHNrYiBoYXNoLgpJdCBtYXkgYWxzbyBmb29sIGZsb3ct b3JpZW50ZWQgc2NoZWR1bGVycyB0byBwbGFjZSBmcmFnbWVudHMgYmVsb25naW5nCnRvIHRoZSBz YW1lIGRhdGFncmFtIGluIGRpZmZlcmVudCBmbG93cy4KCkZpeCB0aGUgaXNzdWUgYnkgY29weWlu ZyB0aGUgc2tiIGhhc2ggZnJvbSB0aGUgaGVhZCBmcmFnIGludG8KdGhlIG90aGVycyBhdCBmcmFn bWVudGF0aW9uIHRpbWUuCgpCZWZvcmUgdGhpcyBjb21taXQ6CnBlcmYgcHJvYmUgLWEgImRldl9x dWV1ZV94bWl0IHNrYiBza2ItPmhhc2ggc2tiLT5sNF9oYXNoOmIxQDAvOCBza2ItPnN3X2hhc2g6 YjFAMS84IgpuZXRwZXJmIC1IICRJUFY0IC10IFVEUF9TVFJFQU0gLWwgNSAtLSAtbSAyMDAwIC1u ICYKcGVyZiByZWNvcmQgLWUgcHJvYmU6ZGV2X3F1ZXVlX3htaXQgLWUgcHJvYmU6c2tiX3NldF9v d25lcl93IC1hIHNsZWVwIDAuMQpwZXJmIHNjcmlwdApwcm9iZTpkZXZfcXVldWVfeG1pdDogKGZm ZmZmZmZmOGM2YjFiMjApIGhhc2g9MzcxMzAxNDMwOSBsNF9oYXNoPTEgc3dfaGFzaD0wCnByb2Jl OmRldl9xdWV1ZV94bWl0OiAoZmZmZmZmZmY4YzZiMWIyMCkgaGFzaD0wIGw0X2hhc2g9MCBzd19o YXNoPTAKCkFmdGVyIHRoaXMgY29tbWl0Ogpwcm9iZTpkZXZfcXVldWVfeG1pdDogKGZmZmZmZmZm OGM2YjFiMjApIGhhc2g9MjE3MTc2MzE3NyBsNF9oYXNoPTEgc3dfaGFzaD0wCnByb2JlOmRldl9x dWV1ZV94bWl0OiAoZmZmZmZmZmY4YzZiMWIyMCkgaGFzaD0yMTcxNzYzMTc3IGw0X2hhc2g9MSBz d19oYXNoPTAKCkZpeGVzOiBiNzNjM2QwZTRmMGUgKCJuZXQ6IFNhdmUgVFggZmxvdyBoYXNoIGlu IHNvY2sgYW5kIHNldCBpbiBza2J1ZiBvbiB4bWl0IikKRml4ZXM6IDY3ODAwZjliMWY0ZSAoImlw djY6IENhbGwgc2tiX2dldF9oYXNoX2Zsb3dpNiB0byBnZXQgc2tiLT5oYXNoIGluIGlwNl9tYWtl X2Zsb3dsYWJlbCIpClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNv bT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L2lwX291dHB1dC5jICB8IDIgKysKIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyB8IDIgKysKIDIg ZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBf b3V0cHV0LmMgYi9uZXQvaXB2NC9pcF9vdXRwdXQuYwppbmRleCBkNTRhYmMwOTc4MDAuLjI2N2I2 OWNmZWE3MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQv aXBfb3V0cHV0LmMKQEAgLTUyMyw2ICs1MjMsOCBAQCBzdGF0aWMgdm9pZCBpcF9jb3B5X21ldGFk YXRhKHN0cnVjdCBza19idWZmICp0bywgc3RydWN0IHNrX2J1ZmYgKmZyb20pCiAJdG8tPmRldiA9 IGZyb20tPmRldjsKIAl0by0+bWFyayA9IGZyb20tPm1hcms7CiAKKwlza2JfY29weV9oYXNoKHRv LCBmcm9tKTsKKwogCS8qIENvcHkgdGhlIGZsYWdzIHRvIGVhY2ggZnJhZ21lbnQuICovCiAJSVBD Qih0byktPmZsYWdzID0gSVBDQihmcm9tKS0+ZmxhZ3M7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2lwNl9vdXRwdXQuYyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwppbmRleCBhZjQ5ZjZjYjVkM2Uu LjhmNGM1OTZhNjgzZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X291dHB1dC5jCisrKyBiL25l dC9pcHY2L2lwNl9vdXRwdXQuYwpAQCAtNTk2LDYgKzU5Niw4IEBAIHN0YXRpYyB2b2lkIGlwNl9j b3B5X21ldGFkYXRhKHN0cnVjdCBza19idWZmICp0bywgc3RydWN0IHNrX2J1ZmYgKmZyb20pCiAJ dG8tPmRldiA9IGZyb20tPmRldjsKIAl0by0+bWFyayA9IGZyb20tPm1hcms7CiAKKwlza2JfY29w eV9oYXNoKHRvLCBmcm9tKTsKKwogI2lmZGVmIENPTkZJR19ORVRfU0NIRUQKIAl0by0+dGNfaW5k ZXggPSBmcm9tLT50Y19pbmRleDsKICNlbmRpZgotLSAKMi4xNy4xCgoKRnJvbSBhZDQzY2EwZjE5 YWVjZDY3ZTcxY2I3M2U4MmQyYTVkOWE2N2ZiYTg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMjMg SnVsIDIwMTggMTk6MzY6NDggLTA0MDAKU3ViamVjdDogW1BBVENIIDAzLzM0XSBpcDogaW4gY21z ZyBJUChWNilfT1JJR0RTVEFERFIgY2FsbCBwc2tiX21heV9wdWxsCgpbIFVwc3RyZWFtIGNvbW1p dCAyZWZkNGZjYTcwM2E2NzA3Y2FkMTZhYjQ4NmVhYWI4ZmM3ZjBmZDQ5IF0KClN5emJvdCByZXBv cnRlZCBhIHJlYWQgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHNrYiBoZWFkIHdoZW4gcmV0dXJuaW5n CklQVjZfT1JJR0RTVEFERFI6CgogIEJVRzogS01TQU46IGtlcm5lbC1pbmZvbGVhayBpbiBwdXRf Y21zZysweDVlZi8weDg2MCBuZXQvY29yZS9zY20uYzoyNDIKICBDUFU6IDAgUElEOiA0NTAxIENv bW06IHN5ei1leGVjdXRvcjEyOCBOb3QgdGFpbnRlZCA0LjE3LjArICM5CiAgSGFyZHdhcmUgbmFt ZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJ T1MKICBHb29nbGUgMDEvMDEvMjAxMQogIENhbGwgVHJhY2U6CiAgICBfX2R1bXBfc3RhY2sgbGli L2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQogICAgZHVtcF9zdGFjaysweDE4NS8weDFkMCBsaWIv ZHVtcF9zdGFjay5jOjExMwogICAga21zYW5fcmVwb3J0KzB4MTg4LzB4MmEwIG1tL2ttc2FuL2tt c2FuLmM6MTEyNQogICAga21zYW5faW50ZXJuYWxfY2hlY2tfbWVtb3J5KzB4MTM4LzB4MWYwIG1t L2ttc2FuL2ttc2FuLmM6MTIxOQogICAga21zYW5fY29weV90b191c2VyKzB4N2EvMHgxNjAgbW0v a21zYW4va21zYW4uYzoxMjYxCiAgICBjb3B5X3RvX3VzZXIgaW5jbHVkZS9saW51eC91YWNjZXNz Lmg6MTg0IFtpbmxpbmVdCiAgICBwdXRfY21zZysweDVlZi8weDg2MCBuZXQvY29yZS9zY20uYzoy NDIKICAgIGlwNl9kYXRhZ3JhbV9yZWN2X3NwZWNpZmljX2N0bCsweDFjZjMvMHgxZWIwIG5ldC9p cHY2L2RhdGFncmFtLmM6NzE5CiAgICBpcDZfZGF0YWdyYW1fcmVjdl9jdGwrMHg0MWMvMHg0NTAg bmV0L2lwdjYvZGF0YWdyYW0uYzo3MzMKICAgIHJhd3Y2X3JlY3Ztc2crMHgxMGZiLzB4MTQ2MCBu ZXQvaXB2Ni9yYXcuYzo1MjEKICAgIFsuLl0KClRoaXMgbG9naWMgYW5kIGl0cyBpcHY0IGNvdW50 ZXJwYXJ0IHJlYWQgdGhlIGRlc3RpbmF0aW9uIHBvcnQgZnJvbQp0aGUgcGFja2V0IGF0IHNrYl90 cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyA0LgoKV2l0aCBNU0dfTU9SRSBhbmQgYSBsb2NhbCBTT0NL X1JBVyBzZW5kZXIsIHN5emJvdCB3YXMgYWJsZSB0byBjb29rIGEKcGFja2V0IHRoYXQgc3RvcmVz IGhlYWRlcnMgZXhhY3RseSB1cCB0byBza2JfdHJhbnNwb3J0X29mZnNldChza2IpIGluCnRoZSBo ZWFkIGFuZCB0aGUgcmVtYWluZGVyIGluIGEgZnJhZy4KCkNhbGwgcHNrYl9tYXlfcHVsbCBiZWZv cmUgYWNjZXNzaW5nIHRoZSBwb2ludGVyIHRvIGVuc3VyZSB0aGF0IGl0IGxpZXMKaW4gc2tiIGhl YWQuCgpMaW5rOiBodHRwOi8vbGttbC5rZXJuZWwub3JnL3IvQ0FGPXlELUxFSndaajVhMS1iQUFq Mk95X2hLbUd5Z1Y2cnNKX1dPckFZbnYtZm5heWlRQG1haWwuZ21haWwuY29tClJlcG9ydGVkLWJ5 OiBzeXpib3QrOWFkYjRiNTY3MDAzY2FjNzgxZjBAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpT aWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv aXB2NC9pcF9zb2NrZ2x1ZS5jIHwgNyArKysrKy0tCiBuZXQvaXB2Ni9kYXRhZ3JhbS5jICAgIHwg NyArKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfc29ja2dsdWUuYyBiL25ldC9pcHY0L2lwX3Nv Y2tnbHVlLmMKaW5kZXggNTdiYmIwNjBmYWFmLi43YzE0Yzc4MThlYWQgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L2lwX3NvY2tnbHVlLmMKKysrIGIvbmV0L2lwdjQvaXBfc29ja2dsdWUuYwpAQCAtMTQ4 LDE1ICsxNDgsMTggQEAgc3RhdGljIHZvaWQgaXBfY21zZ19yZWN2X2RzdGFkZHIoc3RydWN0IG1z Z2hkciAqbXNnLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0cnVjdCBzb2NrYWRkcl9pbiBz aW47CiAJY29uc3Qgc3RydWN0IGlwaGRyICppcGggPSBpcF9oZHIoc2tiKTsKLQlfX2JlMTYgKnBv cnRzID0gKF9fYmUxNiAqKXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYik7CisJX19iZTE2ICpwb3J0 czsKKwlpbnQgZW5kOwogCi0JaWYgKHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyA0ID4gKGlu dClza2ItPmxlbikKKwllbmQgPSBza2JfdHJhbnNwb3J0X29mZnNldChza2IpICsgNDsKKwlpZiAo ZW5kID4gMCAmJiAhcHNrYl9tYXlfcHVsbChza2IsIGVuZCkpCiAJCXJldHVybjsKIAogCS8qIEFs bCBjdXJyZW50IHRyYW5zcG9ydCBwcm90b2NvbHMgaGF2ZSB0aGUgcG9ydCBudW1iZXJzIGluIHRo ZQogCSAqIGZpcnN0IGZvdXIgYnl0ZXMgb2YgdGhlIHRyYW5zcG9ydCBoZWFkZXIgYW5kIHRoaXMg ZnVuY3Rpb24gaXMKIAkgKiB3cml0dGVuIHdpdGggdGhpcyBhc3N1bXB0aW9uIGluIG1pbmQuCiAJ ICovCisJcG9ydHMgPSAoX19iZTE2ICopc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2tiKTsKIAogCXNp bi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKIAlzaW4uc2luX2FkZHIuc19hZGRyID0gaXBoLT5kYWRk cjsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2RhdGFncmFtLmMgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5j CmluZGV4IDJlZTA4YjZhODZhNC4uMWExZjg3NmY4ZTI4IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9k YXRhZ3JhbS5jCisrKyBiL25ldC9pcHY2L2RhdGFncmFtLmMKQEAgLTcwMCwxMyArNzAwLDE2IEBA IHZvaWQgaXA2X2RhdGFncmFtX3JlY3Zfc3BlY2lmaWNfY3RsKHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IG1zZ2hkciAqbXNnLAogCX0KIAlpZiAobnAtPnJ4b3B0LmJpdHMucnhvcmlnZHN0YWRkcikg ewogCQlzdHJ1Y3Qgc29ja2FkZHJfaW42IHNpbjY7Ci0JCV9fYmUxNiAqcG9ydHMgPSAoX19iZTE2 ICopIHNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYik7CisJCV9fYmUxNiAqcG9ydHM7CisJCWludCBl bmQ7CiAKLQkJaWYgKHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyA0IDw9IChpbnQpc2tiLT5s ZW4pIHsKKwkJZW5kID0gc2tiX3RyYW5zcG9ydF9vZmZzZXQoc2tiKSArIDQ7CisJCWlmIChlbmQg PD0gMCB8fCBwc2tiX21heV9wdWxsKHNrYiwgZW5kKSkgewogCQkJLyogQWxsIGN1cnJlbnQgdHJh bnNwb3J0IHByb3RvY29scyBoYXZlIHRoZSBwb3J0IG51bWJlcnMgaW4gdGhlCiAJCQkgKiBmaXJz dCBmb3VyIGJ5dGVzIG9mIHRoZSB0cmFuc3BvcnQgaGVhZGVyIGFuZCB0aGlzIGZ1bmN0aW9uIGlz CiAJCQkgKiB3cml0dGVuIHdpdGggdGhpcyBhc3N1bXB0aW9uIGluIG1pbmQuCiAJCQkgKi8KKwkJ CXBvcnRzID0gKF9fYmUxNiAqKXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYik7CiAKIAkJCXNpbjYu c2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKIAkJCXNpbjYuc2luNl9hZGRyID0gaXB2Nl9oZHIoc2ti KS0+ZGFkZHI7Ci0tIAoyLjE3LjEKCgpGcm9tIDA0YTZkZmRkMjNiZGI1ZjEwMzcwMjEwOGJkNzA4 OWQ4YmI2Y2VmYzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Vd2U9 MjBLbGVpbmUtSz1DMz1CNm5pZz89IDx1LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+CkRh dGU6IEZyaSwgMjAgSnVsIDIwMTggMTE6NTM6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0LzM0 XSBuZXQ6IGRzYTogbXY4OGU2eHh4OiBmaXggcmFjZXMgYmV0d2VlbiBsb2NrIGFuZCBpcnEKIGZy ZWVpbmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0 IDNkODI0NzVhZDQ2YzBiNjVmMjYxOGI1ZjJiYmI0Y2FkYmI1YWM1ZDggXQoKZnJlZV9pcnEoKSB3 YWl0cyB1bnRpbCBhbGwgaGFuZGxlcnMgZm9yIHRoaXMgSVJRIGhhdmUgY29tcGxldGVkLiBBcyB0 aGUKcmVsZXZhbnQgaGFuZGxlciAobXY4OGU2eHh4X2cxX2lycV90aHJlYWRfZm4oKSkgdGFrZXMg dGhlIGNoaXAncyByZWdfbG9jawppdCBtaWdodCBuZXZlciByZXR1cm4gaWYgdGhlIHRocmVhZCBj YWxsaW5nIGZyZWVfaXJxKCkgaG9sZHMgdGhpcyBsb2NrLgoKRm9yIHRoZSBzYW1lIHJlYXNvbiBr dGhyZWFkX2NhbmNlbF9kZWxheWVkX3dvcmtfc3luYygpIGluIHRoZSBwb2xsaW5nIGNhc2UKbXVz dCBub3QgaG9sZCB0aGlzIGxvY2suCgpBbHNvIGZpcnN0IGZyZWUgdGhlIGlycSAob3Igc3RvcCB0 aGUgd29ya2VyIHJlc3BlY3RpdmVseSkgc3VjaCB0aGF0Cm12ODhlNnh4eF9nMV9pcnFfdGhyZWFk X3dvcmsoKSBpc24ndCBjYWxsZWQgYW55IG1vcmUgYmVmb3JlIHRoZSBpcnEKbWFwcGluZ3MgYXJl IGRyb3BwZWQgaW4gbXY4OGU2eHh4X2cxX2lycV9mcmVlX2NvbW1vbigpIHRvIHByZXZlbnQgdGhl CndvcmtlciB0aHJlYWQgdG8gY2FsbCBoYW5kbGVfbmVzdGVkX2lycSgwKSB3aGljaCByZXN1bHRz IGluIGEgTlVMTC1wb2ludGVyCmV4Y2VwdGlvbi4KClNpZ25lZC1vZmYtYnk6IFV3ZSBLbGVpbmUt S8O2bmlnIDx1LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2Ev bXY4OGU2eHh4L2NoaXAuYyB8IDIxICsrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDEzIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2No aXAuYwppbmRleCA1YjQzNzRmMjFkNzYuLjA0MzcxYjBiYmE4MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4 eC9jaGlwLmMKQEAgLTM0MSw2ICszNDEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9kb21h aW5fb3BzIG12ODhlNnh4eF9nMV9pcnFfZG9tYWluX29wcyA9IHsKIAkueGxhdGUJPSBpcnFfZG9t YWluX3hsYXRlX3R3b2NlbGwsCiB9OwogCisvKiBUbyBiZSBjYWxsZWQgd2l0aCByZWdfbG9jayBo ZWxkICovCiBzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKHN0cnVjdCBt djg4ZTZ4eHhfY2hpcCAqY2hpcCkKIHsKIAlpbnQgaXJxLCB2aXJxOwpAQCAtMzYwLDkgKzM2MSwx NSBAQCBzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKHN0cnVjdCBtdjg4 ZTZ4eHhfY2hpcCAqY2hpcCkKIAogc3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlKHN0 cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCkKIHsKLQltdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29t bW9uKGNoaXApOwotCisJLyoKKwkgKiBmcmVlX2lycSBtdXN0IGJlIGNhbGxlZCB3aXRob3V0IHJl Z19sb2NrIHRha2VuIGJlY2F1c2UgdGhlIGlycQorCSAqIGhhbmRsZXIgdGFrZXMgdGhpcyBsb2Nr LCB0b28uCisJICovCiAJZnJlZV9pcnEoY2hpcC0+aXJxLCBjaGlwKTsKKworCW11dGV4X2xvY2so JmNoaXAtPnJlZ19sb2NrKTsKKwltdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKGNoaXApOwor CW11dGV4X3VubG9jaygmY2hpcC0+cmVnX2xvY2spOwogfQogCiBzdGF0aWMgaW50IG12ODhlNnh4 eF9nMV9pcnFfc2V0dXBfY29tbW9uKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCkKQEAgLTQ2 NywxMCArNDc0LDEyIEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2lycV9wb2xsX3NldHVwKHN0cnVj dCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCkKIAogc3RhdGljIHZvaWQgbXY4OGU2eHh4X2lycV9wb2xs X2ZyZWUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKQogewotCW12ODhlNnh4eF9nMV9pcnFf ZnJlZV9jb21tb24oY2hpcCk7Ci0KIAlrdGhyZWFkX2NhbmNlbF9kZWxheWVkX3dvcmtfc3luYygm Y2hpcC0+aXJxX3BvbGxfd29yayk7CiAJa3RocmVhZF9kZXN0cm95X3dvcmtlcihjaGlwLT5rd29y a2VyKTsKKworCW11dGV4X2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwltdjg4ZTZ4eHhfZzFfaXJx X2ZyZWVfY29tbW9uKGNoaXApOworCW11dGV4X3VubG9jaygmY2hpcC0+cmVnX2xvY2spOwogfQog CiBpbnQgbXY4OGU2eHh4X3dhaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRk ciwgaW50IHJlZywgdTE2IG1hc2spCkBAIC00Mjg2LDEyICs0Mjk1LDEwIEBAIHN0YXRpYyBpbnQg bXY4OGU2eHh4X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldikKIAlpZiAoY2hpcC0+ aW5mby0+ZzJfaXJxcyA+IDApCiAJCW12ODhlNnh4eF9nMl9pcnFfZnJlZShjaGlwKTsKIG91dF9n MV9pcnE6Ci0JbXV0ZXhfbG9jaygmY2hpcC0+cmVnX2xvY2spOwogCWlmIChjaGlwLT5pcnEgPiAw KQogCQltdjg4ZTZ4eHhfZzFfaXJxX2ZyZWUoY2hpcCk7CiAJZWxzZQogCQltdjg4ZTZ4eHhfaXJx X3BvbGxfZnJlZShjaGlwKTsKLQltdXRleF91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKIG91dDoK IAlyZXR1cm4gZXJyOwogfQpAQCAtNDMxNiwxMiArNDMyMywxMCBAQCBzdGF0aWMgdm9pZCBtdjg4 ZTZ4eHhfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldikKIAlpZiAoY2hpcC0+aW5m by0+ZzJfaXJxcyA+IDApCiAJCW12ODhlNnh4eF9nMl9pcnFfZnJlZShjaGlwKTsKIAotCW11dGV4 X2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKIAlpZiAoY2hpcC0+aXJxID4gMCkKIAkJbXY4OGU2eHh4 X2cxX2lycV9mcmVlKGNoaXApOwogCWVsc2UKIAkJbXY4OGU2eHh4X2lycV9wb2xsX2ZyZWUoY2hp cCk7Ci0JbXV0ZXhfdW5sb2NrKCZjaGlwLT5yZWdfbG9jayk7CiB9CiAKIHN0YXRpYyBjb25zdCBz dHJ1Y3Qgb2ZfZGV2aWNlX2lkIG12ODhlNnh4eF9vZl9tYXRjaFtdID0gewotLSAKMi4xNy4xCgoK RnJvbSBjOWJmYTI5NjI4OTE5M2U3YzgwNTZjZTg1MTBjZGEwOTRiNzJkODExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNrIE1vcmdlbnN0ZWluIDxqYWNrbUBkZXYubWVsbGFub3gu Y28uaWw+CkRhdGU6IFR1ZSwgMjQgSnVsIDIwMTggMTQ6Mjc6NTUgKzAzMDAKU3ViamVjdDogW1BB VENIIDA1LzM0XSBuZXQvbWx4NF9jb3JlOiBTYXZlIHRoZSBxcG4gZnJvbSB0aGUgaW5wdXQgbW9k aWZpZXIgaW4KIFJTVDJJTklUIHdyYXBwZXIKClsgVXBzdHJlYW0gY29tbWl0IDk1OGM2OTZmNWE3 Mjc0ZDk0NDdhNDU4YWQ3YWE3MDcxOWIyOWE1MGEgXQoKRnVuY3Rpb24gbWx4NF9SU1QySU5JVF9R UF93cmFwcGVyIHNhdmVkIHRoZSBxcCBudW1iZXIgcGFzc2VkIGluIHRoZSBxcApjb250ZXh0LCBy YXRoZXIgdGhhbiB0aGUgb25lIHBhc3NlZCBpbiB0aGUgaW5wdXQgbW9kaWZpZXIuCgpIb3dldmVy LCB0aGUgcXAgbnVtYmVyIGluIHRoZSBxcCBjb250ZXh0IGlzIG5vdCBkZWZpbmVkIGFzIGEKcmVx dWlyZWQgcGFyYW1ldGVyIGJ5IHRoZSBGVy4gVGhlcmVmb3JlLCBkcml2ZXJzIG1heSBjaG9vc2Ug dG8gbm90CnNwZWNpZnkgdGhlIHFwIG51bWJlciBpbiB0aGUgcXAgY29udGV4dCBmb3IgdGhlIHJl c2V0LXRvLWluaXQgdHJhbnNpdGlvbi4KClRodXMsIHdlIG11c3Qgc2F2ZSB0aGUgcXAgbnVtYmVy IHBhc3NlZCBpbiB0aGUgY29tbWFuZCBpbnB1dCBtb2RpZmllciAtLQp3aGljaCBpcyBhbHdheXMg cHJlc2VudC4gKFRoaXMgc2F2ZWQgcXAgbnVtYmVyIGlzIHVzZWQgYXMgdGhlIGlucHV0Cm1vZGlm aWVyIGZvciBjb21tYW5kIDJSU1RfUVAgd2hlbiBhIHNsYXZlJ3MgcXAncyBhcmUgZGVzdHJveWVk KS4KCkZpeGVzOiBjODJlOWFhMGE4YmMgKCJtbHg0X2NvcmU6IHJlc291cmNlIHRyYWNraW5nIGZv ciBIQ0EgcmVzb3VyY2VzIHVzZWQgYnkgZ3Vlc3RzIikKU2lnbmVkLW9mZi1ieTogSmFjayBNb3Jn ZW5zdGVpbiA8amFja21AZGV2Lm1lbGxhbm94LmNvLmlsPgpTaWduZWQtb2ZmLWJ5OiBUYXJpcSBU b3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg0L3Jlc291cmNlX3RyYWNrZXIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDQvcmVzb3VyY2VfdHJhY2tlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NC9yZXNvdXJjZV90cmFja2VyLmMKaW5kZXggMjllNTBmNzg3MzQ5Li5kYjYz ZjBlYzNkMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQv cmVzb3VyY2VfdHJhY2tlci5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDQvcmVzb3VyY2VfdHJhY2tlci5jCkBAIC0yOTU2LDcgKzI5NTYsNyBAQCBpbnQgbWx4NF9SU1Qy SU5JVF9RUF93cmFwcGVyKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBpbnQgc2xhdmUsCiAJdTMyIHNy cW4gPSBxcF9nZXRfc3JxbihxcGMpICYgMHhmZmZmZmY7CiAJaW50IHVzZV9zcnEgPSAocXBfZ2V0 X3NycW4ocXBjKSA+PiAyNCkgJiAxOwogCXN0cnVjdCByZXNfc3JxICpzcnE7Ci0JaW50IGxvY2Fs X3FwbiA9IGJlMzJfdG9fY3B1KHFwYy0+bG9jYWxfcXBuKSAmIDB4ZmZmZmZmOworCWludCBsb2Nh bF9xcG4gPSB2aGNyLT5pbl9tb2RpZmllciAmIDB4ZmZmZmZmOwogCiAJZXJyID0gYWRqdXN0X3Fw X3NjaGVkX3F1ZXVlKGRldiwgc2xhdmUsIHFwYywgaW5ib3gpOwogCWlmIChlcnIpCi0tIAoyLjE3 LjEKCgpGcm9tIDgyYzM3ODk4MmMyOGI4NDE0NGFkYWZkYjk4NzRhODBlMTZiN2QxZDkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFpoYW8gQ2hlbiA8emhhb2NoZW42QGh1YXdlaS5jb20+ CkRhdGU6IFdlZCwgMTggSnVsIDIwMTggMDA6MzM6MTggLTA0MDAKU3ViamVjdDogW1BBVENIIDA2 LzM0XSBuZXQtbmV4dC9oaW5pYzogZml4IGEgcHJvYmxlbSBpbiBoaW5pY194bWl0X2ZyYW1lKCkK ClsgVXBzdHJlYW0gY29tbWl0IGY3NDgyNjgzZjFmNDkyNWM2MDk0MWRiYmQwODEzY2VhYTA2OWQx MDYgXQoKVGhlIGNhbGN1bGF0aW9uIG9mICJ3cWVfc2l6ZSIgaXMgbm90IGNvcnJlY3Qgd2hlbiB0 aGUgdHggcXVldWUgaXMgYnVzeSBpbgpoaW5pY194bWl0X2ZyYW1lKCkuCgpXaGVuIHRoZXJlIGFy ZSBubyBmcmVlIFdRRXMsIHRoZSB0eCBmbG93IHdpbGwgdW5tYXAgdGhlIHNrYiBidWZmZXIsIHRo ZW4KcmluZyB0aGUgZG9vYmVsbCBmb3IgdGhlIHBlbmRpbmcgcGFja2V0cy4gQnV0IHRoZSAid3Fl X3NpemUiIHdoaWNoIHVzZWQKdG8gY2FsY3VsYXRlIHRoZSBkb29yYmVsbCBhZGRyZXNzIGlzIG5v dCBjb3JyZWN0LiBUaGUgd3FlIHNpemUgc2hvdWxkIGJlCmNsZWFyZWQgdG8gMCwgb3RoZXJ3aXNl LCBpdCB3aWxsIGNhdXNlIGEgZG9vcmJlbGwgZXJyb3IuCgpUaGlzIHBhdGNoIGZpeGVzIHRoZSBw cm9ibGVtLgoKUmVwb3J0ZWQtYnk6IFpob3UgV2FuZyA8d2FuZ3pob3UxQGhpc2lsaWNvbi5jb20+ ClNpZ25lZC1vZmYtYnk6IFpoYW8gQ2hlbiA8emhhb2NoZW42QGh1YXdlaS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMvaGluaWNfdHguYyB8IDEgKwogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVh d2VpL2hpbmljL2hpbmljX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMv aGluaWNfdHguYwppbmRleCA5MTI4ODU4NDc5YzQuLjIzNTNlYzgyOWMwNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljL2hpbmljX3R4LmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljL2hpbmljX3R4LmMKQEAgLTIyOSw2ICsyMjksNyBA QCBuZXRkZXZfdHhfdCBoaW5pY194bWl0X2ZyYW1lKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVj dCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJCXR4cS0+dHhxX3N0YXRzLnR4X2J1c3krKzsKIAkJdTY0 X3N0YXRzX3VwZGF0ZV9lbmQoJnR4cS0+dHhxX3N0YXRzLnN5bmNwKTsKIAkJZXJyID0gTkVUREVW X1RYX0JVU1k7CisJCXdxZV9zaXplID0gMDsKIAkJZ290byBmbHVzaF9za2JzOwogCX0KIAotLSAK Mi4xNy4xCgoKRnJvbSA0ODMzYTBlZDVkZDJmZGY4MGY3MDNjZDhmYTgwYzc0OTI4YzA1NjllIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CkRhdGU6IFRodSwgMTkgSnVsIDIwMTggMTY6MDQ6MzggLTA3MDAKU3ViamVjdDogW1BB VENIIDA3LzM0XSBuZXQ6IHNrYl9zZWdtZW50KCkgc2hvdWxkIG5vdCByZXR1cm4gTlVMTAoKWyBV cHN0cmVhbSBjb21taXQgZmY5MDdhMTFhMGQ2OGE3NDljZTFhMzIxZjQ1MDVjMDNiZjcyMTkwYyBd CgpzeXpib3QgY2F1Z2h0IGEgTlVMTCBkZXJlZiBbMV0sIGNhdXNlZCBieSBza2Jfc2VnbWVudCgp Cgpza2Jfc2VnbWVudCgpIGhhcyBtYW55ICJnb3RvIGVycjsiIHRoYXQgYXNzdW1lIHRoZSBAZXJy IHZhcmlhYmxlCmNvbnRhaW5zIC1FTk9NRU0uCgpBIHN1Y2Nlc3NmdWwgY2FsbCB0byBfX3NrYl9s aW5lYXJpemUoKSBzaG91bGQgbm90IGNsZWFyIEBlcnIsCm90aGVyd2lzZSBhIHN1YnNlcXVlbnQg bWVtb3J5IGFsbG9jYXRpb24gZXJyb3IgY291bGQgcmV0dXJuIE5VTEwuCgpXaGlsZSB3ZSBhcmUg YXQgaXQsIHdlIG1pZ2h0IHVzZSAtRUlOVkFMIGluc3RlYWQgb2YgLUVOT01FTSB3aGVuCk1BWF9T S0JfRlJBR1MgbGltaXQgaXMgcmVhY2hlZC4KClsxXQprYXNhbjogQ09ORklHX0tBU0FOX0lOTElO RSBlbmFibGVkCmthc2FuOiBHUEYgY291bGQgYmUgY2F1c2VkIGJ5IE5VTEwtcHRyIGRlcmVmIG9y IHVzZXIgbWVtb3J5IGFjY2VzcwpnZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQ6IDAwMDAgWyMxXSBT TVAgS0FTQU4KQ1BVOiAwIFBJRDogMTMyODUgQ29tbTogc3l6LWV4ZWN1dG9yMyBOb3QgdGFpbnRl ZCA0LjE4LjAtcmM0KyAjMTQ2CkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBF bmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExClJJUDog MDAxMDp0Y3BfZ3NvX3NlZ21lbnQrMHgzZGMvMHgxNzgwIG5ldC9pcHY0L3RjcF9vZmZsb2FkLmM6 MTA2CkNvZGU6IGYwIGZmIGZmIDBmIDg3IDFjIGZkIGZmIGZmIGU4IDAwIDg4IDBiIGZiIDQ4IDhi IDc1IGQwIDQ4IGI5IDAwIDAwIDAwIDAwIDAwIGZjIGZmIGRmIDQ4IDhkIGJlIDkwIDAwIDAwIDAw IDQ4IDg5IGY4IDQ4IGMxIGU4IDAzIDwwZj4gYjYgMTQgMDggNDggOGQgODYgOTQgMDAgMDAgMDAg NDggODkgYzYgODMgZTAgMDcgNDggYzEgZWUgMDMgMGYKUlNQOiAwMDE4OmZmZmY4ODAxOWI3ZmQw NjAgRUZMQUdTOiAwMDAxMDIwNgpSQVg6IDAwMDAwMDAwMDAwMDAwMTIgUkJYOiAwMDAwMDAwMDAw MDAwMDIwIFJDWDogZGZmZmZjMDAwMDAwMDAwMApSRFg6IDAwMDAwMDAwMDAwNDAwMDAgUlNJOiAw MDAwMDAwMDAwMDAwMDAwIFJESTogMDAwMDAwMDAwMDAwMDA5MApSQlA6IGZmZmY4ODAxOWI3ZmQw ZjAgUjA4OiBmZmZmODgwMTk1MTBlMGMwIFIwOTogZmZmZmVkMDAzYjVjNDZkNgpSMTA6IGZmZmZl ZDAwM2I1YzQ2ZDYgUjExOiBmZmZmODgwMWRhZTIzNmIzIFIxMjogMDAwMDAwMDAwMDAwMDAwMQpS MTM6IGZmZmY4ODAxZDZjNTgxZjQgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogZmZmZjg4MDFk NmM1ODEyOApGUzogIDAwMDA3ZmNhZTY0ZDY3MDAoMDAwMCkgR1M6ZmZmZjg4MDFkYWUwMDAwMCgw MDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBD UjA6IDAwMDAwMDAwODAwNTAwMzMKQ1IyOiAwMDAwMDAwMDAwNGU4NjY0IENSMzogMDAwMDAwMDFi NjY5YjAwMCBDUjQ6IDAwMDAwMDAwMDAxNDA2ZjAKRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTog MDAwMDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKRFIzOiAwMDAwMDAwMDAwMDAw MDAwIERSNjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKQ2FsbCBUcmFj ZToKIHRjcDRfZ3NvX3NlZ21lbnQrMHgxYzMvMHg0NDAgbmV0L2lwdjQvdGNwX29mZmxvYWQuYzo1 NAogaW5ldF9nc29fc2VnbWVudCsweDY0ZS8weDEyZDAgbmV0L2lwdjQvYWZfaW5ldC5jOjEzNDIK IGluZXRfZ3NvX3NlZ21lbnQrMHg2NGUvMHgxMmQwIG5ldC9pcHY0L2FmX2luZXQuYzoxMzQyCiBz a2JfbWFjX2dzb19zZWdtZW50KzB4M2I1LzB4NzQwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIF9fc2ti X2dzb19zZWdtZW50KzB4M2MzLzB4ODgwIG5ldC9jb3JlL2Rldi5jOjI4NjUKIHNrYl9nc29fc2Vn bWVudCBpbmNsdWRlL2xpbnV4L25ldGRldmljZS5oOjQwOTkgW2lubGluZV0KIHZhbGlkYXRlX3ht aXRfc2tiKzB4NjQwLzB4ZjMwIG5ldC9jb3JlL2Rldi5jOjMxMDQKIF9fZGV2X3F1ZXVlX3htaXQr MHhjMTQvMHgzOTEwIG5ldC9jb3JlL2Rldi5jOjM1NjEKIGRldl9xdWV1ZV94bWl0KzB4MTcvMHgy MCBuZXQvY29yZS9kZXYuYzozNjAyCiBuZWlnaF9oaF9vdXRwdXQgaW5jbHVkZS9uZXQvbmVpZ2hi b3VyLmg6NDczIFtpbmxpbmVdCiBuZWlnaF9vdXRwdXQgaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmg6 NDgxIFtpbmxpbmVdCiBpcF9maW5pc2hfb3V0cHV0MisweDEwNjMvMHgxODYwIG5ldC9pcHY0L2lw X291dHB1dC5jOjIyOQogaXBfZmluaXNoX291dHB1dCsweDg0MS8weGZhMCBuZXQvaXB2NC9pcF9v dXRwdXQuYzozMTcKIE5GX0hPT0tfQ09ORCBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI3NiBb aW5saW5lXQogaXBfb3V0cHV0KzB4MjIzLzB4ODgwIG5ldC9pcHY0L2lwX291dHB1dC5jOjQwNQog ZHN0X291dHB1dCBpbmNsdWRlL25ldC9kc3QuaDo0NDQgW2lubGluZV0KIGlwX2xvY2FsX291dCsw eGM1LzB4MWIwIG5ldC9pcHY0L2lwX291dHB1dC5jOjEyNAogaXB0dW5uZWxfeG1pdCsweDU2Ny8w eDg1MCBuZXQvaXB2NC9pcF90dW5uZWxfY29yZS5jOjkxCiBpcF90dW5uZWxfeG1pdCsweDE1OTgv MHgzYWYxIG5ldC9pcHY0L2lwX3R1bm5lbC5jOjc3OAogaXBpcF90dW5uZWxfeG1pdCsweDI2NC8w eDJjMCBuZXQvaXB2NC9pcGlwLmM6MzA4CiBfX25ldGRldl9zdGFydF94bWl0IGluY2x1ZGUvbGlu dXgvbmV0ZGV2aWNlLmg6NDE0OCBbaW5saW5lXQogbmV0ZGV2X3N0YXJ0X3htaXQgaW5jbHVkZS9s aW51eC9uZXRkZXZpY2UuaDo0MTU3IFtpbmxpbmVdCiB4bWl0X29uZSBuZXQvY29yZS9kZXYuYzoz MDM0IFtpbmxpbmVdCiBkZXZfaGFyZF9zdGFydF94bWl0KzB4MjZjLzB4YzMwIG5ldC9jb3JlL2Rl di5jOjMwNTAKIF9fZGV2X3F1ZXVlX3htaXQrMHgyOWVmLzB4MzkxMCBuZXQvY29yZS9kZXYuYzoz NTY5CiBkZXZfcXVldWVfeG1pdCsweDE3LzB4MjAgbmV0L2NvcmUvZGV2LmM6MzYwMgogbmVpZ2hf ZGlyZWN0X291dHB1dCsweDE1LzB4MjAgbmV0L2NvcmUvbmVpZ2hib3VyLmM6MTQwMwogbmVpZ2hf b3V0cHV0IGluY2x1ZGUvbmV0L25laWdoYm91ci5oOjQ4MyBbaW5saW5lXQogaXBfZmluaXNoX291 dHB1dDIrMHhhNjcvMHgxODYwIG5ldC9pcHY0L2lwX291dHB1dC5jOjIyOQogaXBfZmluaXNoX291 dHB1dCsweDg0MS8weGZhMCBuZXQvaXB2NC9pcF9vdXRwdXQuYzozMTcKIE5GX0hPT0tfQ09ORCBp bmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI3NiBbaW5saW5lXQogaXBfb3V0cHV0KzB4MjIzLzB4 ODgwIG5ldC9pcHY0L2lwX291dHB1dC5jOjQwNQogZHN0X291dHB1dCBpbmNsdWRlL25ldC9kc3Qu aDo0NDQgW2lubGluZV0KIGlwX2xvY2FsX291dCsweGM1LzB4MWIwIG5ldC9pcHY0L2lwX291dHB1 dC5jOjEyNAogaXBfcXVldWVfeG1pdCsweDlkZi8weDFmODAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6 NTA0CiB0Y3BfdHJhbnNtaXRfc2tiKzB4MWJmOS8weDNmMTAgbmV0L2lwdjQvdGNwX291dHB1dC5j OjExNjgKIHRjcF93cml0ZV94bWl0KzB4MTY0MS8weDVjMjAgbmV0L2lwdjQvdGNwX291dHB1dC5j OjIzNjMKIF9fdGNwX3B1c2hfcGVuZGluZ19mcmFtZXMrMHhiMi8weDI5MCBuZXQvaXB2NC90Y3Bf b3V0cHV0LmM6MjUzNgogdGNwX3B1c2grMHg2MzgvMHg4YzAgbmV0L2lwdjQvdGNwLmM6NzM1CiB0 Y3Bfc2VuZG1zZ19sb2NrZWQrMHgyZWM1LzB4M2YwMCBuZXQvaXB2NC90Y3AuYzoxNDEwCiB0Y3Bf c2VuZG1zZysweDJmLzB4NTAgbmV0L2lwdjQvdGNwLmM6MTQ0NwogaW5ldF9zZW5kbXNnKzB4MWEx LzB4NjkwIG5ldC9pcHY0L2FmX2luZXQuYzo3OTgKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29j a2V0LmM6NjQxIFtpbmxpbmVdCiBzb2NrX3NlbmRtc2crMHhkNS8weDEyMCBuZXQvc29ja2V0LmM6 NjUxCiBfX3N5c19zZW5kdG8rMHgzZDcvMHg2NzAgbmV0L3NvY2tldC5jOjE3OTcKIF9fZG9fc3lz X3NlbmR0byBuZXQvc29ja2V0LmM6MTgwOSBbaW5saW5lXQogX19zZV9zeXNfc2VuZHRvIG5ldC9z b2NrZXQuYzoxODA1IFtpbmxpbmVdCiBfX3g2NF9zeXNfc2VuZHRvKzB4ZTEvMHgxYTAgbmV0L3Nv Y2tldC5jOjE4MDUKIGRvX3N5c2NhbGxfNjQrMHgxYjkvMHg4MjAgYXJjaC94ODYvZW50cnkvY29t bW9uLmM6MjkwCiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlClJJUDog MDAzMzoweDQ1NWFiOQpDb2RlOiAxZCBiYSBmYiBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAw MCAwMCAwMCA2NiA5MCA0OCA4OSBmOCA0OCA4OSBmNyA0OCA4OSBkNiA0OCA4OSBjYSA0ZCA4OSBj MiA0ZCA4OSBjOCA0YyA4YiA0YyAyNCAwOCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDBmIDgz IGViIGI5IGZiIGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwClJTUDogMDAyYjowMDAw N2ZjYWU2NGQ1YzY4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMmMK UkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDdmY2FlNjRkNjZkNCBSQ1g6IDAwMDAwMDAw MDA0NTVhYjkKUkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAwMDAwMDAyMDAwMDIwMCBSREk6 IDAwMDAwMDAwMDAwMDAwMTMKUkJQOiAwMDAwMDAwMDAwNzJiZWEwIFIwODogMDAwMDAwMDAwMDAw MDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAw MDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwMDAwMDAwMTQKUjEzOiAwMDAwMDAwMDAwNGMxMTQ1 IFIxNDogMDAwMDAwMDAwMDRkMTgxOCBSMTU6IDAwMDAwMDAwMDAwMDAwMDYKTW9kdWxlcyBsaW5r ZWQgaW46CkR1bXBpbmcgZnRyYWNlIGJ1ZmZlcjoKICAgKGZ0cmFjZSBidWZmZXIgZW1wdHkpCgpG aXhlczogZGRmZjAwZDQyMDQzICgibmV0OiBNb3ZlIHNrYl9oYXNfc2hhcmVkX2ZyYWcgY2hlY2sg b3V0IG9mIEdSRSBjb2RlIGFuZCBpbnRvIHNlZ21lbnRhdGlvbiIpClNpZ25lZC1vZmYtYnk6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEFsZXhhbmRlciBEdXljayA8YWxl eGFuZGVyLmguZHV5Y2tAaW50ZWwuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJA Z29vZ2xlZ3JvdXBzLmNvbT4KQWNrZWQtYnk6IEFsZXhhbmRlciBEdXljayA8YWxleGFuZGVyLmgu ZHV5Y2tAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvc2tidWZmLmMgfCAxMCArKysrKy0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9jb3JlL3NrYnVmZi5jIGIvbmV0L2NvcmUvc2tidWZmLmMKaW5kZXggYTg0ZDY5YzA0N2Fj Li5iMmQ0NTdkZjdkODYgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NrYnVmZi5jCisrKyBiL25ldC9j b3JlL3NrYnVmZi5jCkBAIC0zNzA1LDYgKzM3MDUsNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiX3Nl Z21lbnQoc3RydWN0IHNrX2J1ZmYgKmhlYWRfc2tiLAogCQkJCW5ldF93YXJuX3JhdGVsaW1pdGVk KAogCQkJCQkic2tiX3NlZ21lbnQ6IHRvbyBtYW55IGZyYWdzOiAldSAldVxuIiwKIAkJCQkJcG9z LCBtc3MpOworCQkJCWVyciA9IC1FSU5WQUw7CiAJCQkJZ290byBlcnI7CiAJCQl9CiAKQEAgLTM3 MzgsMTEgKzM3MzksMTAgQEAgc3RydWN0IHNrX2J1ZmYgKnNrYl9zZWdtZW50KHN0cnVjdCBza19i dWZmICpoZWFkX3NrYiwKIAogcGVyZm9ybV9jc3VtX2NoZWNrOgogCQlpZiAoIWNzdW0pIHsKLQkJ CWlmIChza2JfaGFzX3NoYXJlZF9mcmFnKG5za2IpKSB7Ci0JCQkJZXJyID0gX19za2JfbGluZWFy aXplKG5za2IpOwotCQkJCWlmIChlcnIpCi0JCQkJCWdvdG8gZXJyOwotCQkJfQorCQkJaWYgKHNr Yl9oYXNfc2hhcmVkX2ZyYWcobnNrYikgJiYKKwkJCSAgICBfX3NrYl9saW5lYXJpemUobnNrYikp CisJCQkJZ290byBlcnI7CisKIAkJCWlmICghbnNrYi0+cmVtY3N1bV9vZmZsb2FkKQogCQkJCW5z a2ItPmlwX3N1bW1lZCA9IENIRUNLU1VNX05PTkU7CiAJCQlTS0JfR1NPX0NCKG5za2IpLT5jc3Vt ID0KLS0gCjIuMTcuMQoKCkZyb20gNmZmNDA4NzVmMTMxYjQ3MGQ0MTdhMTI5MzhiYzEyNWVlNjY4 Mzc4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVjaHVuZyBDaGVuZyA8eWNoZW5n QGdvb2dsZS5jb20+CkRhdGU6IFRodSwgMTIgSnVsIDIwMTggMDY6MDQ6NTIgLTA3MDAKU3ViamVj dDogW1BBVENIIDA4LzM0XSB0Y3A6IGZpeCBkY3RjcCBkZWxheWVkIEFDSyBzY2hlZHVsZQoKWyBV cHN0cmVhbSBjb21taXQgYjBjMDVkMGU5OWQ5OGQ3ZjBjZDQxZWZjMWVlZWM5NGVmZGMzMzI1ZCBd CgpQcmV2aW91c2x5LCB3aGVuIGEgZGF0YSBzZWdtZW50IHdhcyBzZW50IGFuIEFDSyB3YXMgcGln Z3liYWNrZWQKb24gdGhlIGRhdGEgc2VnbWVudCB3aXRob3V0IGdlbmVyYXRpbmcgYSBDQV9FVkVO VF9OT05fREVMQVlFRF9BQ0sKZXZlbnQgdG8gbm90aWZ5IGNvbmdlc3Rpb24gY29udHJvbCBtb2R1 bGVzLiBTbyB0aGUgRENUQ1AKY2EtPmRlbGF5ZWRfYWNrX3Jlc2VydmVkIGZsYWcgY291bGQgaW5j b3JyZWN0bHkgc3RheSBzZXQgd2hlbgppbiBmYWN0IHRoZXJlIHdlcmUgbm8gZGVsYXllZCBBQ0tz IGJlaW5nIHJlc2VydmVkLiBUaGlzIGNvdWxkIHJlc3VsdAppbiBzZW5kaW5nIGEgc3BlY2lhbCBF Q04gbm90aWZpY2F0aW9uIEFDSyB0aGF0IGNhcnJpZXMgYW4gb2xkZXIKQUNLIHNlcXVlbmNlLCB3 aGVuIGluIGZhY3QgdGhlcmUgd2FzIG5vIG5lZWQgZm9yIHN1Y2ggYW4gQUNLLgpEQ1RDUCBrZWVw cyB0cmFjayBvZiB0aGUgZGVsYXllZCBBQ0sgc3RhdHVzIHdpdGggaXRzIG93biBzZXBhcmF0ZQpz dGF0ZSBjYS0+ZGVsYXllZF9hY2tfcmVzZXJ2ZWQuIFByZXZpb3VzbHkgaXQgbWF5IGFjY2lkZW50 YWxseSBjYW5jZWwKdGhlIGRlbGF5ZWQgQUNLIHdpdGhvdXQgdXBkYXRpbmcgdGhpcyBmaWVsZCB1 cG9uIHNlbmRpbmcgYSBzcGVjaWFsCkFDSyB0aGF0IGNhcnJpZXMgYSBvbGRlciBBQ0sgc2VxdWVu Y2UuIFRoaXMgaW5jb25zaXN0ZW5jeSB3b3VsZApsZWFkIHRvIERDVENQIHJlY2VpdmVyIG5ldmVy IGFja25vd2xlZGdpbmcgdGhlIGxhdGVzdCBkYXRhIHVudGlsIHRoZQpzZW5kZXIgdGltZXMgb3V0 IGFuZCByZXRyeSBpbiBzb21lIGNhc2VzLgoKUGFja2V0ZHJpbGwgc2NyaXB0IChwcm92aWRlZCBi eSBMYXJyeSBCcmFrbW8pCgowLjAwMCBzb2NrZXQoLi4uLCBTT0NLX1NUUkVBTSwgSVBQUk9UT19U Q1ApID0gMwowLjAwMCBzZXRzb2Nrb3B0KDMsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgWzFd LCA0KSA9IDAKMC4wMDAgc2V0c29ja29wdCgzLCBTT0xfVENQLCBUQ1BfQ09OR0VTVElPTiwgImRj dGNwIiwgNSkgPSAwCjAuMDAwIGJpbmQoMywgLi4uLCAuLi4pID0gMAowLjAwMCBsaXN0ZW4oMywg MSkgPSAwCgowLjEwMCA8IFtlY3QwXSBTRVcgMDowKDApIHdpbiAzMjc5MiA8bXNzIDEwMDAsc2Fj a09LLG5vcCxub3Asbm9wLHdzY2FsZSA3PgowLjEwMCA+IFNFLiAwOjAoMCkgYWNrIDEgPG1zcyAx NDYwLG5vcCxub3Asc2Fja09LLG5vcCx3c2NhbGUgOD4KMC4xMTAgPCBbZWN0MF0gLiAxOjEoMCkg YWNrIDEgd2luIDI1NwowLjIwMCBhY2NlcHQoMywgLi4uLCAuLi4pID0gNAoKMC4yMDAgPCBbZWN0 MF0gLiAxOjEwMDEoMTAwMCkgYWNrIDEgd2luIDI1NwowLjIwMCA+IFtlY3QwMV0gLiAxOjEoMCkg YWNrIDEwMDEKCjAuMjAwIHdyaXRlKDQsIC4uLiwgMSkgPSAxCjAuMjAwID4gW2VjdDAxXSBQLiAx OjIoMSkgYWNrIDEwMDEKCjAuMjAwIDwgW2VjdDBdIC4gMTAwMToyMDAxKDEwMDApIGFjayAyIHdp biAyNTcKMC4yMDAgd3JpdGUoNCwgLi4uLCAxKSA9IDEKMC4yMDAgPiBbZWN0MDFdIFAuIDI6Mygx KSBhY2sgMjAwMQoKMC4yMDAgPCBbZWN0MF0gLiAyMDAxOjMwMDEoMTAwMCkgYWNrIDMgd2luIDI1 NwowLjIwMCA8IFtlY3QwXSAuIDMwMDE6NDAwMSgxMDAwKSBhY2sgMyB3aW4gMjU3CjAuMjAwID4g W2VjdDAxXSAuIDM6MygwKSBhY2sgNDAwMQoKMC4yMTAgPCBbY2VdIFAuIDQwMDE6NDUwMSg1MDAp IGFjayAzIHdpbiAyNTcKCiswLjAwMSByZWFkKDQsIC4uLiwgNDUwMCkgPSA0NTAwCiswIHdyaXRl KDQsIC4uLiwgMSkgPSAxCiswID4gW2VjdDAxXSBQRS4gMzo0KDEpIGFjayA0NTAxCgorMC4wMTAg PCBbZWN0MF0gVy4gNDUwMTo1NTAxKDEwMDApIGFjayA0IHdpbiAyNTcKLy8gUHJldmlvdXNseSB0 aGUgQUNLIHNlcXVlbmNlIGJlbG93IHdvdWxkIGJlIDQ1MDEsIGNhdXNpbmcgYSBsb25nIFJUTwor MC4wNDB+KzAuMDQ1ID4gW2VjdDAxXSAuIDQ6NCgwKSBhY2sgNTUwMSAgIC8vIGRlbGF5ZWQgYWNr CgorMC4zMTEgPCBbZWN0MF0gLiA1NTAxOjY1MDEoMTAwMCkgYWNrIDQgd2luIDI1NyAgLy8gTW9y ZSBkYXRhCiswID4gW2VjdDAxXSAuIDQ6NCgwKSBhY2sgNjUwMSAgICAgLy8gbm93IGFja3MgZXZl cnl0aGluZwoKKzAuNTAwIDwgRi4gOTUwMTo5NTAxKDApIGFjayA0IHdpbiAyNTcKClJlcG9ydGVk LWJ5OiBMYXJyeSBCcmFrbW8gPGJyYWttb0BmYi5jb20+ClNpZ25lZC1vZmYtYnk6IFl1Y2h1bmcg Q2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29v Z2xlLmNvbT4KQWNrZWQtYnk6IExhd3JlbmNlIEJyYWttbyA8YnJha21vQGZiLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L3RjcF9kY3RjcC5jIHwgNiArKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2RjdGNwLmMgYi9u ZXQvaXB2NC90Y3BfZGN0Y3AuYwppbmRleCA1ZjVlNTkzNjc2MGUuLjg5Zjg4YjBkODE2NyAxMDA2 NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2RjdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwX2RjdGNwLmMK QEAgLTEzNCw3ICsxMzQsOCBAQCBzdGF0aWMgdm9pZCBkY3RjcF9jZV9zdGF0ZV8wX3RvXzEoc3Ry dWN0IHNvY2sgKnNrKQogCS8qIFN0YXRlIGhhcyBjaGFuZ2VkIGZyb20gQ0U9MCB0byBDRT0xIGFu ZCBkZWxheWVkCiAJICogQUNLIGhhcyBub3Qgc2VudCB5ZXQuCiAJICovCi0JaWYgKCFjYS0+Y2Vf c3RhdGUgJiYgY2EtPmRlbGF5ZWRfYWNrX3Jlc2VydmVkKSB7CisJaWYgKCFjYS0+Y2Vfc3RhdGUg JiYKKwkgICAgaW5ldF9jc2soc2spLT5pY3NrX2Fjay5wZW5kaW5nICYgSUNTS19BQ0tfVElNRVIp IHsKIAkJdTMyIHRtcF9yY3Zfbnh0OwogCiAJCS8qIFNhdmUgY3VycmVudCByY3Zfbnh0LiAqLwpA QCAtMTY0LDcgKzE2NSw4IEBAIHN0YXRpYyB2b2lkIGRjdGNwX2NlX3N0YXRlXzFfdG9fMChzdHJ1 Y3Qgc29jayAqc2spCiAJLyogU3RhdGUgaGFzIGNoYW5nZWQgZnJvbSBDRT0xIHRvIENFPTAgYW5k IGRlbGF5ZWQKIAkgKiBBQ0sgaGFzIG5vdCBzZW50IHlldC4KIAkgKi8KLQlpZiAoY2EtPmNlX3N0 YXRlICYmIGNhLT5kZWxheWVkX2Fja19yZXNlcnZlZCkgeworCWlmIChjYS0+Y2Vfc3RhdGUgJiYK KwkgICAgaW5ldF9jc2soc2spLT5pY3NrX2Fjay5wZW5kaW5nICYgSUNTS19BQ0tfVElNRVIpIHsK IAkJdTMyIHRtcF9yY3Zfbnh0OwogCiAJCS8qIFNhdmUgY3VycmVudCByY3Zfbnh0LiAqLwotLSAK Mi4xNy4xCgoKRnJvbSA2Y2Y4MDI3ZjhlZWMwMzE2ZGRkOTkyMWZhNTI0ZTIzZWMxZGNlMzYwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xl LmNvbT4KRGF0ZTogV2VkLCAxOCBKdWwgMjAxOCAxMzo1NjozNCAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMDkvMzRdIHRjcDogaGVscGVycyB0byBzZW5kIHNwZWNpYWwgRENUQ1AgYWNrCgpbIFVwc3Ry ZWFtIGNvbW1pdCAyOTg3YmFiYjY5ODIzMDY1MDkzODBmYzExYjQ1MDIyN2E4NDQ0OTNiIF0KClJl ZmFjdG9yIGFuZCBjcmVhdGUgaGVscGVycyB0byBzZW5kIHRoZSBzcGVjaWFsIEFDSyBpbiBEQ1RD UC4KClNpZ25lZC1vZmYtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpBY2tl ZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9vdXRwdXQu YyB8IDIyICsrKysrKysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRp b25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9vdXRwdXQu YyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwppbmRleCBkMDdlMzRmOGUzMDkuLmVhZmRjZDgxNTgz ZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX291dHB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9v dXRwdXQuYwpAQCAtMTAzMSw4ICsxMDMxLDggQEAgc3RhdGljIHZvaWQgdGNwX3VwZGF0ZV9za2Jf YWZ0ZXJfc2VuZChzdHJ1Y3QgdGNwX3NvY2sgKnRwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogICog V2UgYXJlIHdvcmtpbmcgaGVyZSB3aXRoIGVpdGhlciBhIGNsb25lIG9mIHRoZSBvcmlnaW5hbAog ICogU0tCLCBvciBhIGZyZXNoIHVuaXF1ZSBjb3B5IG1hZGUgYnkgdGhlIHJldHJhbnNtaXQgZW5n aW5lLgogICovCi1zdGF0aWMgaW50IHRjcF90cmFuc21pdF9za2Ioc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY2xvbmVfaXQsCi0JCQkgICAgZ2ZwX3QgZ2ZwX21hc2sp CitzdGF0aWMgaW50IF9fdGNwX3RyYW5zbWl0X3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz a19idWZmICpza2IsCisJCQkgICAgICBpbnQgY2xvbmVfaXQsIGdmcF90IGdmcF9tYXNrLCB1MzIg cmN2X254dCkKIHsKIAljb25zdCBzdHJ1Y3QgaW5ldF9jb25uZWN0aW9uX3NvY2sgKmljc2sgPSBp bmV0X2Nzayhzayk7CiAJc3RydWN0IGluZXRfc29jayAqaW5ldDsKQEAgLTExMDgsNyArMTEwOCw3 IEBAIHN0YXRpYyBpbnQgdGNwX3RyYW5zbWl0X3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz a19idWZmICpza2IsIGludCBjbG9uZV9pdCwKIAl0aC0+c291cmNlCQk9IGluZXQtPmluZXRfc3Bv cnQ7CiAJdGgtPmRlc3QJCT0gaW5ldC0+aW5ldF9kcG9ydDsKIAl0aC0+c2VxCQkJPSBodG9ubCh0 Y2ItPnNlcSk7Ci0JdGgtPmFja19zZXEJCT0gaHRvbmwodHAtPnJjdl9ueHQpOworCXRoLT5hY2tf c2VxCQk9IGh0b25sKHJjdl9ueHQpOwogCSooKChfX2JlMTYgKil0aCkgKyA2KQk9IGh0b25zKCgo dGNwX2hlYWRlcl9zaXplID4+IDIpIDw8IDEyKSB8CiAJCQkJCXRjYi0+dGNwX2ZsYWdzKTsKIApA QCAtMTE4Niw2ICsxMTg2LDEzIEBAIHN0YXRpYyBpbnQgdGNwX3RyYW5zbWl0X3NrYihzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIGludCBjbG9uZV9pdCwKIAlyZXR1cm4gZXJy OwogfQogCitzdGF0aWMgaW50IHRjcF90cmFuc21pdF9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY2xvbmVfaXQsCisJCQkgICAgZ2ZwX3QgZ2ZwX21hc2spCit7 CisJcmV0dXJuIF9fdGNwX3RyYW5zbWl0X3NrYihzaywgc2tiLCBjbG9uZV9pdCwgZ2ZwX21hc2ss CisJCQkJICB0Y3Bfc2soc2spLT5yY3Zfbnh0KTsKK30KKwogLyogVGhpcyByb3V0aW5lIGp1c3Qg cXVldWVzIHRoZSBidWZmZXIgZm9yIHNlbmRpbmcuCiAgKgogICogTk9URTogcHJvYmUwIHRpbWVy IGlzIG5vdCBjaGVja2VkLCBkbyBub3QgZm9yZ2V0IHRjcF9wdXNoX3BlbmRpbmdfZnJhbWVzLApA QCAtMzU4Myw3ICszNTkwLDcgQEAgdm9pZCB0Y3Bfc2VuZF9kZWxheWVkX2FjayhzdHJ1Y3Qgc29j ayAqc2spCiB9CiAKIC8qIFRoaXMgcm91dGluZSBzZW5kcyBhbiBhY2sgYW5kIGFsc28gdXBkYXRl cyB0aGUgd2luZG93LiAqLwotdm9pZCB0Y3Bfc2VuZF9hY2soc3RydWN0IHNvY2sgKnNrKQordm9p ZCBfX3RjcF9zZW5kX2FjayhzdHJ1Y3Qgc29jayAqc2ssIHUzMiByY3Zfbnh0KQogewogCXN0cnVj dCBza19idWZmICpidWZmOwogCkBAIC0zNjE4LDcgKzM2MjUsMTIgQEAgdm9pZCB0Y3Bfc2VuZF9h Y2soc3RydWN0IHNvY2sgKnNrKQogCXNrYl9zZXRfdGNwX3B1cmVfYWNrKGJ1ZmYpOwogCiAJLyog U2VuZCBpdCBvZmYsIHRoaXMgY2xlYXJzIGRlbGF5ZWQgYWNrcyBmb3IgdXMuICovCi0JdGNwX3Ry YW5zbWl0X3NrYihzaywgYnVmZiwgMCwgKF9fZm9yY2UgZ2ZwX3QpMCk7CisJX190Y3BfdHJhbnNt aXRfc2tiKHNrLCBidWZmLCAwLCAoX19mb3JjZSBnZnBfdCkwLCByY3Zfbnh0KTsKK30KKwordm9p ZCB0Y3Bfc2VuZF9hY2soc3RydWN0IHNvY2sgKnNrKQoreworCV9fdGNwX3NlbmRfYWNrKHNrLCB0 Y3Bfc2soc2spLT5yY3Zfbnh0KTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHRjcF9zZW5kX2Fjayk7 CiAKLS0gCjIuMTcuMQoKCkZyb20gN2EwMjJlOWZmZmFiMDcyODg0ODYxMjNjMmJmODVmNjg0ZTAz YzEwZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVjaHVuZyBDaGVuZyA8eWNoZW5n QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMTggSnVsIDIwMTggMTM6NTY6MzUgLTA3MDAKU3ViamVj dDogW1BBVENIIDEwLzM0XSB0Y3A6IGRvIG5vdCBjYW5jZWwgZGVsYXktQWNLIG9uIERDVENQIHNw ZWNpYWwgQUNLCgpbIFVwc3RyZWFtIGNvbW1pdCAyN2NkZTQ0YTI1OWMzODBhM2MwOTA2NmZjNGI0 MmRlN2RkZTliMWFkIF0KCkN1cnJlbnRseSB3aGVuIGEgRENUQ1AgcmVjZWl2ZXIgZGVsYXlzIGFu IEFDSyBhbmQgcmVjZWl2ZSBhCmRhdGEgcGFja2V0IHdpdGggYSBkaWZmZXJlbnQgQ0UgbWFyayBm cm9tIHRoZSBwcmV2aW91cyBvbmUncywgaXQKc2VuZHMgdHdvIGltbWVkaWF0ZSBBQ0tzIGFja2lu ZyBwcmV2aW91cyBhbmQgbGF0ZXN0IHNlcXVlbmNlcwpyZXNwZWN0bHkgKGZvciBFQ04gYWNjb3Vu dGluZykuCgpQcmV2aW91c2x5IHNlbmRpbmcgdGhlIGZpcnN0IEFDSyBtYXkgbWFyayBvZmYgdGhl IGRlbGF5ZWQgQUNLIHRpbWVyCih0Y3BfZXZlbnRfYWNrX3NlbnQpLiBUaGlzIG1heSBzdWJzZXF1 ZW50bHkgcHJldmVudCBzZW5kaW5nIHRoZQpzZWNvbmQgQUNLIHRvIGFja25vd2xlZGdlIHRoZSBs YXRlc3Qgc2VxdWVuY2UgKHRjcF9hY2tfc25kX2NoZWNrKS4KVGhlIGN1bHByaXQgaXMgdGhhdCB0 Y3Bfc2VuZF9hY2soKSBhc3N1bWVzIGl0IGFsd2F5cyBhY2tub3dsZWdlcwp0aGUgbGF0ZXN0IHNl cXVlbmNlLCB3aGljaCBpcyBub3QgdHJ1ZSBmb3IgdGhlIGZpcnN0IHNwZWNpYWwgQUNLLgoKVGhl IGZpeCBpcyB0byBub3QgbWFrZSB0aGUgYXNzdW1wdGlvbiBpbiB0Y3Bfc2VuZF9hY2sgYW5kIGNo ZWNrIHRoZQphY3R1YWwgYWNrIHNlcXVlbmNlIGJlZm9yZSBjYW5jZWxsaW5nIHRoZSBkZWxheWVk IEFDSy4gRnVydGhlciBpdCdzCnNhZmVyIHRvIHBhc3MgdGhlIGFjayBzZXF1ZW5jZSBudW1iZXIg YXMgYSBsb2NhbCB2YXJpYWJsZSBpbnRvCnRjcF9zZW5kX2FjayByb3V0aW5lLCBpbnN0ZWFkIG9m IGludGVyY2VwdGluZyB0cC0+cmN2X254dCB0byBhdm9pZApmdXR1cmUgYnVncyBsaWtlIHRoaXMu CgpSZXBvcnRlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpBY2tlZC1ieTogTmVh bCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3RjcC5oICAgICB8ICAxICsK IG5ldC9pcHY0L3RjcF9kY3RjcC5jICB8IDM0ICsrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIG5ldC9pcHY0L3RjcF9vdXRwdXQuYyB8IDExICsrKysrKysrLS0tCiAzIGZpbGVzIGNo YW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggOWM5YjM3NjhiMzUwLi5k NGVhNDFkNzY5NDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3RjcC5oCisrKyBiL2luY2x1ZGUv bmV0L3RjcC5oCkBAIC01MzUsNiArNTM1LDcgQEAgdm9pZCB0Y3Bfc2VuZF9maW4oc3RydWN0IHNv Y2sgKnNrKTsKIHZvaWQgdGNwX3NlbmRfYWN0aXZlX3Jlc2V0KHN0cnVjdCBzb2NrICpzaywgZ2Zw X3QgcHJpb3JpdHkpOwogaW50IHRjcF9zZW5kX3N5bmFjayhzdHJ1Y3Qgc29jayAqKTsKIHZvaWQg dGNwX3B1c2hfb25lKHN0cnVjdCBzb2NrICosIHVuc2lnbmVkIGludCBtc3Nfbm93KTsKK3ZvaWQg X190Y3Bfc2VuZF9hY2soc3RydWN0IHNvY2sgKnNrLCB1MzIgcmN2X254dCk7CiB2b2lkIHRjcF9z ZW5kX2FjayhzdHJ1Y3Qgc29jayAqc2spOwogdm9pZCB0Y3Bfc2VuZF9kZWxheWVkX2FjayhzdHJ1 Y3Qgc29jayAqc2spOwogdm9pZCB0Y3Bfc2VuZF9sb3NzX3Byb2JlKHN0cnVjdCBzb2NrICpzayk7 CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfZGN0Y3AuYyBiL25ldC9pcHY0L3RjcF9kY3RjcC5j CmluZGV4IDg5Zjg4YjBkODE2Ny4uMzlkOTZkMjdmZjk0IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90 Y3BfZGN0Y3AuYworKysgYi9uZXQvaXB2NC90Y3BfZGN0Y3AuYwpAQCAtMTM1LDIxICsxMzUsOCBA QCBzdGF0aWMgdm9pZCBkY3RjcF9jZV9zdGF0ZV8wX3RvXzEoc3RydWN0IHNvY2sgKnNrKQogCSAq IEFDSyBoYXMgbm90IHNlbnQgeWV0LgogCSAqLwogCWlmICghY2EtPmNlX3N0YXRlICYmCi0JICAg IGluZXRfY3NrKHNrKS0+aWNza19hY2sucGVuZGluZyAmIElDU0tfQUNLX1RJTUVSKSB7Ci0JCXUz MiB0bXBfcmN2X254dDsKLQotCQkvKiBTYXZlIGN1cnJlbnQgcmN2X254dC4gKi8KLQkJdG1wX3Jj dl9ueHQgPSB0cC0+cmN2X254dDsKLQotCQkvKiBHZW5lcmF0ZSBwcmV2aW91cyBhY2sgd2l0aCBD RT0wLiAqLwotCQl0cC0+ZWNuX2ZsYWdzICY9IH5UQ1BfRUNOX0RFTUFORF9DV1I7Ci0JCXRwLT5y Y3Zfbnh0ID0gY2EtPnByaW9yX3Jjdl9ueHQ7Ci0KLQkJdGNwX3NlbmRfYWNrKHNrKTsKLQotCQkv KiBSZWNvdmVyIGN1cnJlbnQgcmN2X254dC4gKi8KLQkJdHAtPnJjdl9ueHQgPSB0bXBfcmN2X254 dDsKLQl9CisJICAgIGluZXRfY3NrKHNrKS0+aWNza19hY2sucGVuZGluZyAmIElDU0tfQUNLX1RJ TUVSKQorCQlfX3RjcF9zZW5kX2FjayhzaywgY2EtPnByaW9yX3Jjdl9ueHQpOwogCiAJY2EtPnBy aW9yX3Jjdl9ueHQgPSB0cC0+cmN2X254dDsKIAljYS0+Y2Vfc3RhdGUgPSAxOwpAQCAtMTY2LDIx ICsxNTMsOCBAQCBzdGF0aWMgdm9pZCBkY3RjcF9jZV9zdGF0ZV8xX3RvXzAoc3RydWN0IHNvY2sg KnNrKQogCSAqIEFDSyBoYXMgbm90IHNlbnQgeWV0LgogCSAqLwogCWlmIChjYS0+Y2Vfc3RhdGUg JiYKLQkgICAgaW5ldF9jc2soc2spLT5pY3NrX2Fjay5wZW5kaW5nICYgSUNTS19BQ0tfVElNRVIp IHsKLQkJdTMyIHRtcF9yY3Zfbnh0OwotCi0JCS8qIFNhdmUgY3VycmVudCByY3Zfbnh0LiAqLwot CQl0bXBfcmN2X254dCA9IHRwLT5yY3Zfbnh0OwotCi0JCS8qIEdlbmVyYXRlIHByZXZpb3VzIGFj ayB3aXRoIENFPTEuICovCi0JCXRwLT5lY25fZmxhZ3MgfD0gVENQX0VDTl9ERU1BTkRfQ1dSOwot CQl0cC0+cmN2X254dCA9IGNhLT5wcmlvcl9yY3Zfbnh0OwotCi0JCXRjcF9zZW5kX2Fjayhzayk7 Ci0KLQkJLyogUmVjb3ZlciBjdXJyZW50IHJjdl9ueHQuICovCi0JCXRwLT5yY3Zfbnh0ID0gdG1w X3Jjdl9ueHQ7Ci0JfQorCSAgICBpbmV0X2NzayhzayktPmljc2tfYWNrLnBlbmRpbmcgJiBJQ1NL X0FDS19USU1FUikKKwkJX190Y3Bfc2VuZF9hY2soc2ssIGNhLT5wcmlvcl9yY3Zfbnh0KTsKIAog CWNhLT5wcmlvcl9yY3Zfbnh0ID0gdHAtPnJjdl9ueHQ7CiAJY2EtPmNlX3N0YXRlID0gMDsKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwpp bmRleCBlYWZkY2Q4MTU4M2YuLjMwNDlkMTBhMTQ3NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNw X291dHB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwpAQCAtMTYwLDggKzE2MCwxMyBA QCBzdGF0aWMgdm9pZCB0Y3BfZXZlbnRfZGF0YV9zZW50KHN0cnVjdCB0Y3Bfc29jayAqdHAsCiB9 CiAKIC8qIEFjY291bnQgZm9yIGFuIEFDSyB3ZSBzZW50LiAqLwotc3RhdGljIGlubGluZSB2b2lk IHRjcF9ldmVudF9hY2tfc2VudChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBwa3RzKQor c3RhdGljIGlubGluZSB2b2lkIHRjcF9ldmVudF9hY2tfc2VudChzdHJ1Y3Qgc29jayAqc2ssIHVu c2lnbmVkIGludCBwa3RzLAorCQkJCSAgICAgIHUzMiByY3Zfbnh0KQogeworCXN0cnVjdCB0Y3Bf c29jayAqdHAgPSB0Y3Bfc2soc2spOworCisJaWYgKHVubGlrZWx5KHJjdl9ueHQgIT0gdHAtPnJj dl9ueHQpKQorCQlyZXR1cm47ICAvKiBTcGVjaWFsIEFDSyBzZW50IGJ5IERDVENQIHRvIHJlZmxl Y3QgRUNOICovCiAJdGNwX2RlY19xdWlja2Fja19tb2RlKHNrLCBwa3RzKTsKIAlpbmV0X2Nza19j bGVhcl94bWl0X3RpbWVyKHNrLCBJQ1NLX1RJTUVfREFDSyk7CiB9CkBAIC0xMTQ5LDcgKzExNTQs NyBAQCBzdGF0aWMgaW50IF9fdGNwX3RyYW5zbWl0X3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCBza19idWZmICpza2IsCiAJaWNzay0+aWNza19hZl9vcHMtPnNlbmRfY2hlY2soc2ssIHNrYik7 CiAKIAlpZiAobGlrZWx5KHRjYi0+dGNwX2ZsYWdzICYgVENQSERSX0FDSykpCi0JCXRjcF9ldmVu dF9hY2tfc2VudChzaywgdGNwX3NrYl9wY291bnQoc2tiKSk7CisJCXRjcF9ldmVudF9hY2tfc2Vu dChzaywgdGNwX3NrYl9wY291bnQoc2tiKSwgcmN2X254dCk7CiAKIAlpZiAoc2tiLT5sZW4gIT0g dGNwX2hlYWRlcl9zaXplKSB7CiAJCXRjcF9ldmVudF9kYXRhX3NlbnQodHAsIHNrKTsKQEAgLTM2 MjcsMTIgKzM2MzIsMTIgQEAgdm9pZCBfX3RjcF9zZW5kX2FjayhzdHJ1Y3Qgc29jayAqc2ssIHUz MiByY3Zfbnh0KQogCS8qIFNlbmQgaXQgb2ZmLCB0aGlzIGNsZWFycyBkZWxheWVkIGFja3MgZm9y IHVzLiAqLwogCV9fdGNwX3RyYW5zbWl0X3NrYihzaywgYnVmZiwgMCwgKF9fZm9yY2UgZ2ZwX3Qp MCwgcmN2X254dCk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChfX3RjcF9zZW5kX2Fjayk7CiAKIHZv aWQgdGNwX3NlbmRfYWNrKHN0cnVjdCBzb2NrICpzaykKIHsKIAlfX3RjcF9zZW5kX2Fjayhzaywg dGNwX3NrKHNrKS0+cmN2X254dCk7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTCh0Y3Bfc2VuZF9hY2sp OwogCiAvKiBUaGlzIHJvdXRpbmUgc2VuZHMgYSBwYWNrZXQgd2l0aCBhbiBvdXQgb2YgZGF0ZSBz ZXF1ZW5jZQogICogbnVtYmVyLiBJdCBhc3N1bWVzIHRoZSBvdGhlciBlbmQgd2lsbCB0cnkgdG8g YWNrIGl0LgotLSAKMi4xNy4xCgoKRnJvbSBhZDI5Zjk2Yjg1YTNlNDUxMDhmMWQ5Y2MxZjE2M2Ni NmY1ZDQ3YzA5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWNodW5nIENoZW5nIDx5 Y2hlbmdAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAxOCBKdWwgMjAxOCAxMzo1NjozNiAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMTEvMzRdIHRjcDogZG8gbm90IGRlbGF5IEFDSyBpbiBEQ1RDUCB1cG9u IENFIHN0YXR1cyBjaGFuZ2UKClsgVXBzdHJlYW0gY29tbWl0IGEwNDk2ZWYyYzIzYjNiMTgwOTAy ZGQxODVkMGQ2M2NjYmM2MjRjZjggXQoKUGVyIERDVENQIFJGQzgyNTcgKFNlY3Rpb24gMy4yKSB0 aGUgQUNLIHJlZmxlY3RpbmcgdGhlIENFIHN0YXR1cyBjaGFuZ2UKaGFzIHRvIGJlIHNlbnQgaW1t ZWRpYXRlbHkgc28gdGhlIHNlbmRlciBjYW4gcmVzcG9uZCBxdWlja2x5OgoKIiIiIFdoZW4gcmVj ZWl2aW5nIHBhY2tldHMsIHRoZSBDRSBjb2RlcG9pbnQgTVVTVCBiZSBwcm9jZXNzZWQgYXMgZm9s bG93czoKCiAgIDEuICBJZiB0aGUgQ0UgY29kZXBvaW50IGlzIHNldCBhbmQgRENUQ1AuQ0UgaXMg ZmFsc2UsIHNldCBEQ1RDUC5DRSB0bwogICAgICAgdHJ1ZSBhbmQgc2VuZCBhbiBpbW1lZGlhdGUg QUNLLgoKICAgMi4gIElmIHRoZSBDRSBjb2RlcG9pbnQgaXMgbm90IHNldCBhbmQgRENUQ1AuQ0Ug aXMgdHJ1ZSwgc2V0IERDVENQLkNFCiAgICAgICB0byBmYWxzZSBhbmQgc2VuZCBhbiBpbW1lZGlh dGUgQUNLLgoiIiIKClByZXZpb3VzbHkgRENUQ1AgaW1wbGVtZW50YXRpb24gbWF5IGNvbnRpbnVl IHRvIGRlbGF5IHRoZSBBQ0suIFRoaXMKcGF0Y2ggZml4ZXMgdGhhdCB0byBpbXBsZW1lbnQgdGhl IFJGQyBieSBmb3JjaW5nIGFuIGltbWVkaWF0ZSBBQ0suCgpUZXN0ZWQgd2l0aCB0aGlzIHBhY2tl dGRyaWxsIHNjcmlwdCBwcm92aWRlZCBieSBMYXJyeSBCcmFrbW8KCjAuMDAwIHNvY2tldCguLi4s IFNPQ0tfU1RSRUFNLCBJUFBST1RPX1RDUCkgPSAzCjAuMDAwIHNldHNvY2tvcHQoMywgU09MX1NP Q0tFVCwgU09fUkVVU0VBRERSLCBbMV0sIDQpID0gMAowLjAwMCBzZXRzb2Nrb3B0KDMsIFNPTF9U Q1AsIFRDUF9DT05HRVNUSU9OLCAiZGN0Y3AiLCA1KSA9IDAKMC4wMDAgYmluZCgzLCAuLi4sIC4u LikgPSAwCjAuMDAwIGxpc3RlbigzLCAxKSA9IDAKCjAuMTAwIDwgW2VjdDBdIFNFVyAwOjAoMCkg d2luIDMyNzkyIDxtc3MgMTAwMCxzYWNrT0ssbm9wLG5vcCxub3Asd3NjYWxlIDc+CjAuMTAwID4g U0UuIDA6MCgwKSBhY2sgMSA8bXNzIDE0NjAsbm9wLG5vcCxzYWNrT0ssbm9wLHdzY2FsZSA4Pgow LjExMCA8IFtlY3QwXSAuIDE6MSgwKSBhY2sgMSB3aW4gMjU3CjAuMjAwIGFjY2VwdCgzLCAuLi4s IC4uLikgPSA0CiAgICswIHNldHNvY2tvcHQoNCwgU09MX1NPQ0tFVCwgU09fREVCVUcsIFsxXSwg NCkgPSAwCgowLjIwMCA8IFtlY3QwXSAuIDE6MTAwMSgxMDAwKSBhY2sgMSB3aW4gMjU3CjAuMjAw ID4gW2VjdDAxXSAuIDE6MSgwKSBhY2sgMTAwMQoKMC4yMDAgd3JpdGUoNCwgLi4uLCAxKSA9IDEK MC4yMDAgPiBbZWN0MDFdIFAuIDE6MigxKSBhY2sgMTAwMQoKMC4yMDAgPCBbZWN0MF0gLiAxMDAx OjIwMDEoMTAwMCkgYWNrIDIgd2luIDI1NworMC4wMDUgPCBbY2VdIC4gMjAwMTozMDAxKDEwMDAp IGFjayAyIHdpbiAyNTcKCiswLjAwMCA+IFtlY3QwMV0gLiAyOjIoMCkgYWNrIDIwMDEKLy8gUHJl dmlvdXNseSB0aGUgQUNLIGJlbG93IHdvdWxkIGJlIGRlbGF5ZWQgYnkgNDBtcworMC4wMDAgPiBb ZWN0MDFdIEUuIDI6MigwKSBhY2sgMzAwMQoKKzAuNTAwIDwgRi4gOTUwMTo5NTAxKDApIGFjayA0 IHdpbiAyNTcKClNpZ25lZC1vZmYtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29t PgpBY2tlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3Rj cC5oICAgIHwgIDEgKwogbmV0L2lwdjQvdGNwX2RjdGNwLmMgfCAzMCArKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0KIG5ldC9pcHY0L3RjcF9pbnB1dC5jIHwgIDMgKystCiAzIGZpbGVzIGNo YW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggZDRlYTQxZDc2OTQ2Li5j MWJhNjhlNDVmMjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3RjcC5oCisrKyBiL2luY2x1ZGUv bmV0L3RjcC5oCkBAIC0zNDIsNiArMzQyLDcgQEAgc3NpemVfdCB0Y3Bfc3BsaWNlX3JlYWQoc3Ry dWN0IHNvY2tldCAqc2ssIGxvZmZfdCAqcHBvcywKIAkJCXN0cnVjdCBwaXBlX2lub2RlX2luZm8g KnBpcGUsIHNpemVfdCBsZW4sCiAJCQl1bnNpZ25lZCBpbnQgZmxhZ3MpOwogCit2b2lkIHRjcF9l bnRlcl9xdWlja2Fja19tb2RlKHN0cnVjdCBzb2NrICpzayk7CiBzdGF0aWMgaW5saW5lIHZvaWQg dGNwX2RlY19xdWlja2Fja19tb2RlKHN0cnVjdCBzb2NrICpzaywKIAkJCQkJIGNvbnN0IHVuc2ln bmVkIGludCBwa3RzKQogewpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2RjdGNwLmMgYi9uZXQv aXB2NC90Y3BfZGN0Y3AuYwppbmRleCAzOWQ5NmQyN2ZmOTQuLmM3OGZiNTM5ODhhMSAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvdGNwX2RjdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwX2RjdGNwLmMKQEAg LTEzMSwxMiArMTMxLDE1IEBAIHN0YXRpYyB2b2lkIGRjdGNwX2NlX3N0YXRlXzBfdG9fMShzdHJ1 Y3Qgc29jayAqc2spCiAJc3RydWN0IGRjdGNwICpjYSA9IGluZXRfY3NrX2NhKHNrKTsKIAlzdHJ1 Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsKIAotCS8qIFN0YXRlIGhhcyBjaGFuZ2VkIGZy b20gQ0U9MCB0byBDRT0xIGFuZCBkZWxheWVkCi0JICogQUNLIGhhcyBub3Qgc2VudCB5ZXQuCi0J ICovCi0JaWYgKCFjYS0+Y2Vfc3RhdGUgJiYKLQkgICAgaW5ldF9jc2soc2spLT5pY3NrX2Fjay5w ZW5kaW5nICYgSUNTS19BQ0tfVElNRVIpCi0JCV9fdGNwX3NlbmRfYWNrKHNrLCBjYS0+cHJpb3Jf cmN2X254dCk7CisJaWYgKCFjYS0+Y2Vfc3RhdGUpIHsKKwkJLyogU3RhdGUgaGFzIGNoYW5nZWQg ZnJvbSBDRT0wIHRvIENFPTEsIGZvcmNlIGFuIGltbWVkaWF0ZQorCQkgKiBBQ0sgdG8gcmVmbGVj dCB0aGUgbmV3IENFIHN0YXRlLiBJZiBhbiBBQ0sgd2FzIGRlbGF5ZWQsCisJCSAqIHNlbmQgdGhh dCBmaXJzdCB0byByZWZsZWN0IHRoZSBwcmlvciBDRSBzdGF0ZS4KKwkJICovCisJCWlmIChpbmV0 X2NzayhzayktPmljc2tfYWNrLnBlbmRpbmcgJiBJQ1NLX0FDS19USU1FUikKKwkJCV9fdGNwX3Nl bmRfYWNrKHNrLCBjYS0+cHJpb3JfcmN2X254dCk7CisJCXRjcF9lbnRlcl9xdWlja2Fja19tb2Rl KHNrKTsKKwl9CiAKIAljYS0+cHJpb3JfcmN2X254dCA9IHRwLT5yY3Zfbnh0OwogCWNhLT5jZV9z dGF0ZSA9IDE7CkBAIC0xNDksMTIgKzE1MiwxNSBAQCBzdGF0aWMgdm9pZCBkY3RjcF9jZV9zdGF0 ZV8xX3RvXzAoc3RydWN0IHNvY2sgKnNrKQogCXN0cnVjdCBkY3RjcCAqY2EgPSBpbmV0X2Nza19j YShzayk7CiAJc3RydWN0IHRjcF9zb2NrICp0cCA9IHRjcF9zayhzayk7CiAKLQkvKiBTdGF0ZSBo YXMgY2hhbmdlZCBmcm9tIENFPTEgdG8gQ0U9MCBhbmQgZGVsYXllZAotCSAqIEFDSyBoYXMgbm90 IHNlbnQgeWV0LgotCSAqLwotCWlmIChjYS0+Y2Vfc3RhdGUgJiYKLQkgICAgaW5ldF9jc2soc2sp LT5pY3NrX2Fjay5wZW5kaW5nICYgSUNTS19BQ0tfVElNRVIpCi0JCV9fdGNwX3NlbmRfYWNrKHNr LCBjYS0+cHJpb3JfcmN2X254dCk7CisJaWYgKGNhLT5jZV9zdGF0ZSkgeworCQkvKiBTdGF0ZSBo YXMgY2hhbmdlZCBmcm9tIENFPTEgdG8gQ0U9MCwgZm9yY2UgYW4gaW1tZWRpYXRlCisJCSAqIEFD SyB0byByZWZsZWN0IHRoZSBuZXcgQ0Ugc3RhdGUuIElmIGFuIEFDSyB3YXMgZGVsYXllZCwKKwkJ ICogc2VuZCB0aGF0IGZpcnN0IHRvIHJlZmxlY3QgdGhlIHByaW9yIENFIHN0YXRlLgorCQkgKi8K KwkJaWYgKGluZXRfY3NrKHNrKS0+aWNza19hY2sucGVuZGluZyAmIElDU0tfQUNLX1RJTUVSKQor CQkJX190Y3Bfc2VuZF9hY2soc2ssIGNhLT5wcmlvcl9yY3Zfbnh0KTsKKwkJdGNwX2VudGVyX3F1 aWNrYWNrX21vZGUoc2spOworCX0KIAogCWNhLT5wcmlvcl9yY3Zfbnh0ID0gdHAtPnJjdl9ueHQ7 CiAJY2EtPmNlX3N0YXRlID0gMDsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pbnB1dC5jIGIv bmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXggMWYyNWViYWIyNWQyLi5iYTM1OGI3MzY5YzQgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pbnB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5j CkBAIC0xOTUsMTMgKzE5NSwxNCBAQCBzdGF0aWMgdm9pZCB0Y3BfaW5jcl9xdWlja2FjayhzdHJ1 Y3Qgc29jayAqc2spCiAJCWljc2stPmljc2tfYWNrLnF1aWNrID0gbWluKHF1aWNrYWNrcywgVENQ X01BWF9RVUlDS0FDS1MpOwogfQogCi1zdGF0aWMgdm9pZCB0Y3BfZW50ZXJfcXVpY2thY2tfbW9k ZShzdHJ1Y3Qgc29jayAqc2spCit2b2lkIHRjcF9lbnRlcl9xdWlja2Fja19tb2RlKHN0cnVjdCBz b2NrICpzaykKIHsKIAlzdHJ1Y3QgaW5ldF9jb25uZWN0aW9uX3NvY2sgKmljc2sgPSBpbmV0X2Nz ayhzayk7CiAJdGNwX2luY3JfcXVpY2thY2soc2spOwogCWljc2stPmljc2tfYWNrLnBpbmdwb25n ID0gMDsKIAlpY3NrLT5pY3NrX2Fjay5hdG8gPSBUQ1BfQVRPX01JTjsKIH0KK0VYUE9SVF9TWU1C T0wodGNwX2VudGVyX3F1aWNrYWNrX21vZGUpOwogCiAvKiBTZW5kIEFDS3MgcXVpY2tseSwgaWYg InF1aWNrIiBjb3VudCBpcyBub3QgZXhoYXVzdGVkCiAgKiBhbmQgdGhlIHNlc3Npb24gaXMgbm90 IGludGVyYWN0aXZlLgotLSAKMi4xNy4xCgoKRnJvbSAyOWYzODhhMDMxMzY5M2VmOTBlN2Y4MzUx YWRlYjMzMjIwMWEyY2ZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhh bWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KRGF0ZTogTW9uLCA5IEp1bCAyMDE4IDE2OjQxOjQw IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMi8zNF0gbmV0L21seDU6IEUtU3dpdGNoLCBVQlNBTiBm aXggdW5kZWZpbmVkIGJlaGF2aW9yIGluCiBtbHg1X2Vzd2l0Y2hfbW9kZQoKWyBVcHN0cmVhbSBj b21taXQgNDQzYTg1ODE1OGQzNTkxNmU1NzJiNzU2NjdjYTQ5MjRhNmFmMjE4MiBdCgpXaXRoIGRl YnVnIGtlcm5lbCBVQlNBTiBkZXRlY3RzIHRoZSBmb2xsb3dpbmcgaXNzdWUsIHdoaWNoIG1pZ2h0 IGhhcHBlbgp3aGVuIGVzd2l0Y2ggaW5zdGFuY2UgaXMgbm90IGNyZWF0ZWQsIGZpeCB0aGlzIGJ5 IHRlc3RpbmcgdGhlIGVzd2l0Y2gKcG9pbnRlciBiZWZvcmUgcmV0dXJuaW5nIHRoZSBlc3dpdGNo IG1vZGUsIGlmIG5vdCBzZXQgcmV0dXJuIG1vZGUgPQpTUklPVl9OT05FLgoKWyAgIDMyLjUyODk1 MV0gVUJTQU46IFVuZGVmaW5lZCBiZWhhdmlvdXIgaW4gZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYzoyMjE5OjEyClsgICAzMi41Mjg5NTFdIG1lbWJlciBh Y2Nlc3Mgd2l0aGluIG51bGwgcG9pbnRlciBvZiB0eXBlICdzdHJ1Y3QgbWx4NV9lc3dpdGNoJwpb ICAgMzIuNTI4OTUxXSBDUFU6IDAgUElEOiAxIENvbW06IHN3YXBwZXIvMCBOb3QgdGFpbnRlZCA0 LjE4LjAtcmMzLWRpcnR5ICMxODEKWyAgIDMyLjUyODk1MV0gSGFyZHdhcmUgbmFtZTogUUVNVSBT dGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgcmVsLTEuMTEuMC0wLWc2MzQ1 MWZjYTEzLXByZWJ1aWx0LnFlbXUtcHJvamVjdC5vcmcgMDQvMDEvMjAxNApbICAgMzIuNTI4OTUx XSBDYWxsIFRyYWNlOgpbICAgMzIuNTI4OTUxXSAgZHVtcF9zdGFjaysweGM3LzB4MTNiClsgICAz Mi41Mjg5NTFdICA/IHNob3dfcmVnc19wcmludF9pbmZvKzB4NS8weDUKWyAgIDMyLjUyODk1MV0g ID8gX19wbV9ydW50aW1lX3VzZV9hdXRvc3VzcGVuZCsweDE0MC8weDE0MApbICAgMzIuNTI4OTUx XSAgdWJzYW5fZXBpbG9ndWUrMHg5LzB4NDkKWyAgIDMyLjUyODk1MV0gIHVic2FuX3R5cGVfbWlz bWF0Y2hfY29tbW9uKzB4MWY5LzB4MmMwClsgICAzMi41Mjg5NTFdICA/IHVjczJfYXNfdXRmOCsw eDMxMC8weDMxMApbICAgMzIuNTI4OTUxXSAgPyBkZXZpY2VfaW5pdGlhbGl6ZSsweDIyOS8weDJl MApbICAgMzIuNTI4OTUxXSAgX191YnNhbl9oYW5kbGVfdHlwZV9taXNtYXRjaCsweDlmLzB4YzkK WyAgIDMyLjUyODk1MV0gID8gX191YnNhbl9oYW5kbGVfZGl2cmVtX292ZXJmbG93KzB4MTliLzB4 MTliClsgICAzMi41NzgwMDhdICA/IGliX2RldmljZV9nZXRfYnlfaW5kZXgrMHhmMC8weGYwClsg ICAzMi41NzgwMDhdICBtbHg1X2Vzd2l0Y2hfbW9kZSsweDMwLzB4NDAKWyAgIDMyLjU3ODAwOF0g IG1seDVfaWJfYWRkKzB4MWUwLzB4NGEwCgpGaXhlczogNTdjYmQ4OTNjNGM1ICgibmV0L21seDU6 IEUtU3dpdGNoLCBNb3ZlIHJlcHJlc2VudG9ycyBkZWZpbml0aW9uIHRvIGEgZ2xvYmFsIHNjb3Bl IikKU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+ClJl dmlld2VkLWJ5OiBMZW9uIFJvbWFub3Zza3kgPGxlb25yb0BtZWxsYW5veC5jb20+Ci0tLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYyB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jCmluZGV4IGMzYTE4 ZGRmNWRiYS4uMGE3NWU5ZDQ0MWU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMKQEAgLTIyMjEsNiArMjIyMSw2IEBAIGludCBtbHg1 X2Vzd2l0Y2hfZ2V0X3Zwb3J0X3N0YXRzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywKIAogdTgg bWx4NV9lc3dpdGNoX21vZGUoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KQogewotCXJldHVybiBl c3ctPm1vZGU7CisJcmV0dXJuIEVTV19BTExPV0VEKGVzdykgPyBlc3ctPm1vZGUgOiBTUklPVl9O T05FOwogfQogRVhQT1JUX1NZTUJPTF9HUEwobWx4NV9lc3dpdGNoX21vZGUpOwotLSAKMi4xNy4x CgoKRnJvbSBhODU1MmQ3NjBiMGUxMTE3ZjU4MzBkNDAzZTQyM2Y2NDcwYTU4YzJmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwu Y29tPgpEYXRlOiBUdWUsIDI0IEp1bCAyMDE4IDIyOjIxOjA0ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxMy8zNF0gcjgxNjk6IHJlc3RvcmUgcHJldmlvdXMgYmVoYXZpb3IgdG8gYWNjZXB0IEJJT1Mg V29MCiBzZXR0aW5ncwoKWyBVcHN0cmVhbSBjb21taXQgMTgwNDFiNTIzNjkyMDM4ZDQxNzUxZmQ4 MDQ2NjM4YzM1NmQ3N2EzNiBdCgpDb21taXQgN2VkZjZkMzE0Y2QwIHRyaWVkIHRvIHJlc29sdmUg YW4gaW5jb25zaXN0ZW5jeSAoQklPUyBXb0wKc2V0dGluZ3MgYXJlIGFjY2VwdGVkLCBidXQgZGV2 aWNlIGlzbid0IHdha2V1cC1lbmFibGVkKSByZXN1bHRpbmcKZnJvbSBhIHByZXZpb3VzIGJyb2tl bi1CSU9TIHdvcmthcm91bmQgYnkgbWFraW5nIGRpc2FibGVkIFdvTCB0aGUKZGVmYXVsdC4KVGhp cyBob3dldmVyIGhhZCBzb21lIHNpZGUgZWZmZWN0cywgbW9zdCBsaWtlbHkgZHVlIHRvIGEgYnJv a2VuIEJJT1MKc29tZSBzeXN0ZW1zIGRvbid0IHByb3Blcmx5IHJlc3VtZSBmcm9tIHN1c3BlbmQg d2hlbiB0aGUgTWFnaWNQYWNrZXQKV29MIGJpdCBpc24ndCBzZXQgaW4gdGhlIGNoaXAsIHNlZQpo dHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDE5NQpUaGVyZWZv cmUgcmVzdG9yZSB0aGUgV29MIGJlaGF2aW9yIGZyb20gNC4xNi4KClJlcG9ydGVkLWJ5OiBBbGJl cnQgQXN0YWxzIENpZCA8YWFjaWRAa2RlLm9yZz4KRml4ZXM6IDdlZGY2ZDMxNGNkMCAoInI4MTY5 OiBkaXNhYmxlIFdPTCBwZXIgZGVmYXVsdCIpClNpZ25lZC1vZmYtYnk6IEhlaW5lciBLYWxsd2Vp dCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4 MTY5LmMgfCAzICstLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwppbmRleCBjN2FhYzFmYzk5ZTgu Ljc2NGIyNWZhNDcwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9y ODE2OS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwpAQCAtODI3 Miw4ICs4MjcyLDcgQEAgc3RhdGljIGludCBydGxfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAJCXJldHVybiByYzsKIAl9CiAK LQkvKiBvdmVycmlkZSBCSU9TIHNldHRpbmdzLCB1c2UgdXNlcnNwYWNlIHRvb2xzIHRvIGVuYWJs ZSBXT0wgKi8KLQlfX3J0bDgxNjlfc2V0X3dvbCh0cCwgMCk7CisJdHAtPnNhdmVkX3dvbG9wdHMg PSBfX3J0bDgxNjlfZ2V0X3dvbCh0cCk7CiAKIAlpZiAocnRsX3RiaV9lbmFibGVkKHRwKSkgewog CQl0cC0+c2V0X3NwZWVkID0gcnRsODE2OV9zZXRfc3BlZWRfdGJpOwotLSAKMi4xNy4xCgoKRnJv bSAzOTFhMTI2MjNlZDZjNjlkMWY3YmJhNWM5ZDI2YWEwOGIzODI5MGQ1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEb3JvbiBSb2JlcnRzLUtlZGVzIDxkb3JvbnJrQGZiLmNvbT4KRGF0 ZTogV2VkLCAxOCBKdWwgMjAxOCAxNjoyMjoyNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMzRd IHRsczogY2hlY2sgUkNWX1NIVVRET1dOIGluIHRsc193YWl0X2RhdGEKClsgVXBzdHJlYW0gY29t bWl0IGZjZjQ3OTNlMjc4ZWRlZGU4ZmNkNzQ4MTk4ZDEyMTI4MDM3ZTUyNmMgXQoKVGhlIGN1cnJl bnQgY29kZSBkb2VzIG5vdCBjaGVjayBzay0+c2tfc2h1dGRvd24gJiBSQ1ZfU0hVVERPV04uCnRs c19zd19yZWN2bXNnIG1heSByZXR1cm4gYSBwb3NpdGl2ZSB2YWx1ZSBpbiB0aGUgY2FzZSB3aGVy ZSBieXRlcyBoYXZlCmFscmVhZHkgYmVlbiBjb3BpZWQgd2hlbiB0aGUgc29ja2V0IGlzIHNodXRk b3duLiBzay0+c2tfZXJyIGhhcyBiZWVuCmNsZWFyZWQsIGNhdXNpbmcgdGhlIHRsc193YWl0X2Rh dGEgdG8gaGFuZyBmb3JldmVyIG9uIGEgc3Vic2VxdWVudAppbnZvY2F0aW9uLiBDaGVja2luZyBz ay0+c2tfc2h1dGRvd24gJiBSQ1ZfU0hVVERPV04sIGFzIGluIHRjcF9yZWN2bXNnLApmaXhlcyB0 aGlzIHByb2JsZW0uCgpGaXhlczogYzQ2MjM0ZWJiNGQxICgidGxzOiBSWCBwYXRoIGZvciBrdGxz IikKQWNrZWQtYnk6IERhdmUgV2F0c29uIDxkYXZlandhdHNvbkBmYi5jb20+ClNpZ25lZC1vZmYt Ynk6IERvcm9uIFJvYmVydHMtS2VkZXMgPGRvcm9ucmtAZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNfc3cu YyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv bmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXggOWE3ZjkxMjMyZGU4Li42 MDcwOGE0ZWJlZDQgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3LmMKKysrIGIvbmV0L3Rscy90 bHNfc3cuYwpAQCAtNjQ2LDYgKzY0Niw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqdGxzX3dh aXRfZGF0YShzdHJ1Y3Qgc29jayAqc2ssIGludCBmbGFncywKIAkJCXJldHVybiBOVUxMOwogCQl9 CiAKKwkJaWYgKHNrLT5za19zaHV0ZG93biAmIFJDVl9TSFVURE9XTikKKwkJCXJldHVybiBOVUxM OworCiAJCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tfRE9ORSkpCiAJCQlyZXR1cm4gTlVMTDsKIAot LSAKMi4xNy4xCgoKRnJvbSBiYjUzMWQzNmE3YmE3MGU0M2E3ZTI3ODAyM2FiOTBjNWYwZDU5ZTI3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxs YW5veC5jb20+CkRhdGU6IFdlZCwgMTggQXByIDIwMTggMTM6NDU6MTEgKzAzMDAKU3ViamVjdDog W1BBVENIIDE1LzM0XSBuZXQvbWx4NWU6IEFkZCBpbmdyZXNzL2VncmVzcyBpbmRpY2F0aW9uIGZv ciBvZmZsb2FkZWQKIFRDIGZsb3dzCgpbIFVwc3RyZWFtIGNvbW1pdCA2MGJkNGFmODE0ZmVjMTY0 YzQyYmRkMmVmZDc5ODRiODVkNmIxZTFlIF0KCldoZW4gYW4gZS1zd2l0Y2ggVEMgcnVsZSBpcyBv ZmZsb2FkZWQgdGhyb3VnaCB0aGUgZWdkZXYgKGVncmVzcwpkZXZpY2UpIG1lY2hhbmlzbSwgd2Ug dHJlYXQgdGhpcyBhcyBlZ3Jlc3MsIGFsbCBvdGhlciBjYXNlcyAoTklDCmFuZCBlLXN3aXRjaCkg YXJlIGNvbnNpZHJlZCBpbmdyZXNzLgoKVGhpcyBpcyBwcmVwYXJhdGlvbiBzdGVwIHRoYXQgd2ls bCBhbGxvdyB1cyB0byAgaWRlbnRpZnkgIndyb25nIgpzdGF0L2RlbCBvZmZsb2FkIGNhbGxzIG1h ZGUgYnkgdGhlIFRDIGNvcmUgb24gZWdkZXYgYmFzZWQgZmxvd3MgYW5kCmlnbm9yZSB0aGVtLgoK U2lnbmVkLW9mZi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpTaWduZWQt b2ZmLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IFBhdWwg Qmxha2V5IDxwYXVsYkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVk IDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbi5oICB8ICAzIC0tCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl9tYWluLmMgfCAxNSArKysrLS0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fcmVwLmMgIHwgMzIgKysrKysrKysrKysrLS0tLQogLi4uL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYyAgIHwgMzggKysrKysrKysrKysrKystLS0tLQog Li4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuaCAgIHwgMTMgKysrKyst LQogNSBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaCBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCmluZGV4IDMwY2Fk MDdiZTJiNS4uMDY1ZmY4N2YwYmVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW4uaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW4uaApAQCAtMTA5Miw5ICsxMDkyLDYgQEAgaW50IG1seDVlX2V0aHRvb2xf Z2V0X3RzX2luZm8oc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiBpbnQgbWx4NWVfZXRodG9vbF9m bGFzaF9kZXZpY2Uoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJCQkgICAgICAgc3RydWN0IGV0 aHRvb2xfZmxhc2ggKmZsYXNoKTsKIAotaW50IG1seDVlX3NldHVwX3RjX2Jsb2NrX2NiKGVudW0g dGNfc2V0dXBfdHlwZSB0eXBlLCB2b2lkICp0eXBlX2RhdGEsCi0JCQkgICAgdm9pZCAqY2JfcHJp dik7Ci0KIC8qIG1seDVlIGdlbmVyaWMgbmV0ZGV2IG1hbmFnZW1lbnQgQVBJICovCiBzdHJ1Y3Qg bmV0X2RldmljZSoKIG1seDVlX2NyZWF0ZV9uZXRkZXYoc3RydWN0IG1seDVfY29yZV9kZXYgKm1k ZXYsIGNvbnN0IHN0cnVjdCBtbHg1ZV9wcm9maWxlICpwcm9maWxlLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggZDNhMWEyMjgx ZTc3Li5mZGY0MDgxMmEyYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX21haW4uYwpAQCAtMzA5MywyMiArMzA5MywyMyBAQCBzdGF0aWMgaW50 IG1seDVlX3NldHVwX3RjX21xcHJpbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCiAjaWZk ZWYgQ09ORklHX01MWDVfRVNXSVRDSAogc3RhdGljIGludCBtbHg1ZV9zZXR1cF90Y19jbHNfZmxv d2VyKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAotCQkJCSAgICAgc3RydWN0IHRjX2Nsc19mbG93 ZXJfb2ZmbG9hZCAqY2xzX2Zsb3dlcikKKwkJCQkgICAgIHN0cnVjdCB0Y19jbHNfZmxvd2VyX29m ZmxvYWQgKmNsc19mbG93ZXIsCisJCQkJICAgICBpbnQgZmxhZ3MpCiB7CiAJc3dpdGNoIChjbHNf Zmxvd2VyLT5jb21tYW5kKSB7CiAJY2FzZSBUQ19DTFNGTE9XRVJfUkVQTEFDRToKLQkJcmV0dXJu IG1seDVlX2NvbmZpZ3VyZV9mbG93ZXIocHJpdiwgY2xzX2Zsb3dlcik7CisJCXJldHVybiBtbHg1 ZV9jb25maWd1cmVfZmxvd2VyKHByaXYsIGNsc19mbG93ZXIsIGZsYWdzKTsKIAljYXNlIFRDX0NM U0ZMT1dFUl9ERVNUUk9ZOgotCQlyZXR1cm4gbWx4NWVfZGVsZXRlX2Zsb3dlcihwcml2LCBjbHNf Zmxvd2VyKTsKKwkJcmV0dXJuIG1seDVlX2RlbGV0ZV9mbG93ZXIocHJpdiwgY2xzX2Zsb3dlciwg ZmxhZ3MpOwogCWNhc2UgVENfQ0xTRkxPV0VSX1NUQVRTOgotCQlyZXR1cm4gbWx4NWVfc3RhdHNf Zmxvd2VyKHByaXYsIGNsc19mbG93ZXIpOworCQlyZXR1cm4gbWx4NWVfc3RhdHNfZmxvd2VyKHBy aXYsIGNsc19mbG93ZXIsIGZsYWdzKTsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVPUE5PVFNVUFA7 CiAJfQogfQogCi1pbnQgbWx4NWVfc2V0dXBfdGNfYmxvY2tfY2IoZW51bSB0Y19zZXR1cF90eXBl IHR5cGUsIHZvaWQgKnR5cGVfZGF0YSwKLQkJCSAgICB2b2lkICpjYl9wcml2KQorc3RhdGljIGlu dCBtbHg1ZV9zZXR1cF90Y19ibG9ja19jYihlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwgdm9pZCAq dHlwZV9kYXRhLAorCQkJCSAgIHZvaWQgKmNiX3ByaXYpCiB7CiAJc3RydWN0IG1seDVlX3ByaXYg KnByaXYgPSBjYl9wcml2OwogCkBAIC0zMTE3LDcgKzMxMTgsNyBAQCBpbnQgbWx4NWVfc2V0dXBf dGNfYmxvY2tfY2IoZW51bSB0Y19zZXR1cF90eXBlIHR5cGUsIHZvaWQgKnR5cGVfZGF0YSwKIAog CXN3aXRjaCAodHlwZSkgewogCWNhc2UgVENfU0VUVVBfQ0xTRkxPV0VSOgotCQlyZXR1cm4gbWx4 NWVfc2V0dXBfdGNfY2xzX2Zsb3dlcihwcml2LCB0eXBlX2RhdGEpOworCQlyZXR1cm4gbWx4NWVf c2V0dXBfdGNfY2xzX2Zsb3dlcihwcml2LCB0eXBlX2RhdGEsIE1MWDVFX1RDX0lOR1JFU1MpOwog CWRlZmF1bHQ6CiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMKaW5kZXggMjg2NTY1ODYyMzQxLi5j ODhlYjgwMjc4ZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9yZXAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fcmVwLmMKQEAgLTcyMywxNSArNzIzLDMxIEBAIHN0YXRpYyBpbnQgbWx4NWVfcmVw X2dldF9waHlzX3BvcnRfbmFtZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCiBzdGF0aWMgaW50 CiBtbHg1ZV9yZXBfc2V0dXBfdGNfY2xzX2Zsb3dlcihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwK LQkJCSAgICAgIHN0cnVjdCB0Y19jbHNfZmxvd2VyX29mZmxvYWQgKmNsc19mbG93ZXIpCisJCQkg ICAgICBzdHJ1Y3QgdGNfY2xzX2Zsb3dlcl9vZmZsb2FkICpjbHNfZmxvd2VyLCBpbnQgZmxhZ3Mp CiB7CiAJc3dpdGNoIChjbHNfZmxvd2VyLT5jb21tYW5kKSB7CiAJY2FzZSBUQ19DTFNGTE9XRVJf UkVQTEFDRToKLQkJcmV0dXJuIG1seDVlX2NvbmZpZ3VyZV9mbG93ZXIocHJpdiwgY2xzX2Zsb3dl cik7CisJCXJldHVybiBtbHg1ZV9jb25maWd1cmVfZmxvd2VyKHByaXYsIGNsc19mbG93ZXIsIGZs YWdzKTsKIAljYXNlIFRDX0NMU0ZMT1dFUl9ERVNUUk9ZOgotCQlyZXR1cm4gbWx4NWVfZGVsZXRl X2Zsb3dlcihwcml2LCBjbHNfZmxvd2VyKTsKKwkJcmV0dXJuIG1seDVlX2RlbGV0ZV9mbG93ZXIo cHJpdiwgY2xzX2Zsb3dlciwgZmxhZ3MpOwogCWNhc2UgVENfQ0xTRkxPV0VSX1NUQVRTOgotCQly ZXR1cm4gbWx4NWVfc3RhdHNfZmxvd2VyKHByaXYsIGNsc19mbG93ZXIpOworCQlyZXR1cm4gbWx4 NWVfc3RhdHNfZmxvd2VyKHByaXYsIGNsc19mbG93ZXIsIGZsYWdzKTsKKwlkZWZhdWx0OgorCQly ZXR1cm4gLUVPUE5PVFNVUFA7CisJfQorfQorCitzdGF0aWMgaW50IG1seDVlX3JlcF9zZXR1cF90 Y19jYl9lZ2RldihlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwgdm9pZCAqdHlwZV9kYXRhLAorCQkJ CSAgICAgICB2b2lkICpjYl9wcml2KQoreworCXN0cnVjdCBtbHg1ZV9wcml2ICpwcml2ID0gY2Jf cHJpdjsKKworCWlmICghdGNfY2xzX2Nhbl9vZmZsb2FkX2FuZF9jaGFpbjAocHJpdi0+bmV0ZGV2 LCB0eXBlX2RhdGEpKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisKKwlzd2l0Y2ggKHR5cGUpIHsK KwljYXNlIFRDX1NFVFVQX0NMU0ZMT1dFUjoKKwkJcmV0dXJuIG1seDVlX3JlcF9zZXR1cF90Y19j bHNfZmxvd2VyKHByaXYsIHR5cGVfZGF0YSwgTUxYNUVfVENfRUdSRVNTKTsKIAlkZWZhdWx0Ogog CQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQpAQCAtNzQ3LDcgKzc2Myw3IEBAIHN0YXRpYyBpbnQg bWx4NWVfcmVwX3NldHVwX3RjX2NiKGVudW0gdGNfc2V0dXBfdHlwZSB0eXBlLCB2b2lkICp0eXBl X2RhdGEsCiAKIAlzd2l0Y2ggKHR5cGUpIHsKIAljYXNlIFRDX1NFVFVQX0NMU0ZMT1dFUjoKLQkJ cmV0dXJuIG1seDVlX3JlcF9zZXR1cF90Y19jbHNfZmxvd2VyKHByaXYsIHR5cGVfZGF0YSk7CisJ CXJldHVybiBtbHg1ZV9yZXBfc2V0dXBfdGNfY2xzX2Zsb3dlcihwcml2LCB0eXBlX2RhdGEsIE1M WDVFX1RDX0lOR1JFU1MpOwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CkBA IC0xMTExLDcgKzExMjcsNyBAQCBtbHg1ZV92cG9ydF9yZXBfbG9hZChzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAqcmVwKQogCiAJdXBsaW5rX3Jwcml2 ID0gbWx4NV9lc3dpdGNoX2dldF91cGxpbmtfcHJpdihkZXYtPnByaXYuZXN3aXRjaCwgUkVQX0VU SCk7CiAJdXByaXYgPSBuZXRkZXZfcHJpdih1cGxpbmtfcnByaXYtPm5ldGRldik7Ci0JZXJyID0g dGNfc2V0dXBfY2JfZWdkZXZfcmVnaXN0ZXIobmV0ZGV2LCBtbHg1ZV9zZXR1cF90Y19ibG9ja19j YiwKKwllcnIgPSB0Y19zZXR1cF9jYl9lZ2Rldl9yZWdpc3RlcihuZXRkZXYsIG1seDVlX3JlcF9z ZXR1cF90Y19jYl9lZ2RldiwKIAkJCQkJIHVwcml2KTsKIAlpZiAoZXJyKQogCQlnb3RvIGVycl9u ZWlnaF9jbGVhbnVwOwpAQCAtMTEyNiw3ICsxMTQyLDcgQEAgbWx4NWVfdnBvcnRfcmVwX2xvYWQo c3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZXN3aXRjaF9yZXAgKnJlcCkK IAlyZXR1cm4gMDsKIAogZXJyX2VnZGV2X2NsZWFudXA6Ci0JdGNfc2V0dXBfY2JfZWdkZXZfdW5y ZWdpc3RlcihuZXRkZXYsIG1seDVlX3NldHVwX3RjX2Jsb2NrX2NiLAorCXRjX3NldHVwX2NiX2Vn ZGV2X3VucmVnaXN0ZXIobmV0ZGV2LCBtbHg1ZV9yZXBfc2V0dXBfdGNfY2JfZWdkZXYsCiAJCQkJ ICAgICB1cHJpdik7CiAKIGVycl9uZWlnaF9jbGVhbnVwOgpAQCAtMTE1NSw3ICsxMTcxLDcgQEAg bWx4NWVfdnBvcnRfcmVwX3VubG9hZChzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAqcmVwKQogCXVw bGlua19ycHJpdiA9IG1seDVfZXN3aXRjaF9nZXRfdXBsaW5rX3ByaXYocHJpdi0+bWRldi0+cHJp di5lc3dpdGNoLAogCQkJCQkJICAgIFJFUF9FVEgpOwogCXVwcml2ID0gbmV0ZGV2X3ByaXYodXBs aW5rX3Jwcml2LT5uZXRkZXYpOwotCXRjX3NldHVwX2NiX2VnZGV2X3VucmVnaXN0ZXIobmV0ZGV2 LCBtbHg1ZV9zZXR1cF90Y19ibG9ja19jYiwKKwl0Y19zZXR1cF9jYl9lZ2Rldl91bnJlZ2lzdGVy KG5ldGRldiwgbWx4NWVfcmVwX3NldHVwX3RjX2NiX2VnZGV2LAogCQkJCSAgICAgdXByaXYpOwog CW1seDVlX3JlcF9uZWlnaF9jbGVhbnVwKHJwcml2KTsKIAltbHg1ZV9kZXRhY2hfbmV0ZGV2KHBy aXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMu YwppbmRleCBiOTQyNzZkYjNjZTkuLmExYjBhYmMyNGVmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKQEAgLTYxLDEyICs2MSwxNiBAQCBz dHJ1Y3QgbWx4NV9uaWNfZmxvd19hdHRyIHsKIAlzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlCSpoYWly cGluX2Z0OwogfTsKIAorI2RlZmluZSBNTFg1RV9UQ19GTE9XX0JBU0UgKE1MWDVFX1RDX0xBU1Rf RVhQT1JURURfQklUICsgMSkKKwogZW51bSB7Ci0JTUxYNUVfVENfRkxPV19FU1dJVENICT0gQklU KDApLAotCU1MWDVFX1RDX0ZMT1dfTklDCT0gQklUKDEpLAotCU1MWDVFX1RDX0ZMT1dfT0ZGTE9B REVECT0gQklUKDIpLAotCU1MWDVFX1RDX0ZMT1dfSEFJUlBJTgk9IEJJVCgzKSwKLQlNTFg1RV9U Q19GTE9XX0hBSVJQSU5fUlNTID0gQklUKDQpLAorCU1MWDVFX1RDX0ZMT1dfSU5HUkVTUwk9IE1M WDVFX1RDX0lOR1JFU1MsCisJTUxYNUVfVENfRkxPV19FR1JFU1MJPSBNTFg1RV9UQ19FR1JFU1Ms CisJTUxYNUVfVENfRkxPV19FU1dJVENICT0gQklUKE1MWDVFX1RDX0ZMT1dfQkFTRSksCisJTUxY NUVfVENfRkxPV19OSUMJPSBCSVQoTUxYNUVfVENfRkxPV19CQVNFICsgMSksCisJTUxYNUVfVENf RkxPV19PRkZMT0FERUQJPSBCSVQoTUxYNUVfVENfRkxPV19CQVNFICsgMiksCisJTUxYNUVfVENf RkxPV19IQUlSUElOCT0gQklUKE1MWDVFX1RDX0ZMT1dfQkFTRSArIDMpLAorCU1MWDVFX1RDX0ZM T1dfSEFJUlBJTl9SU1MgPSBCSVQoTUxYNUVfVENfRkxPV19CQVNFICsgNCksCiB9OwogCiBzdHJ1 Y3QgbWx4NWVfdGNfZmxvdyB7CkBAIC0yNTY2LDggKzI1NzAsMjAgQEAgc3RhdGljIGludCBwYXJz ZV90Y19mZGJfYWN0aW9ucyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgc3RydWN0IHRjZl9leHRz ICpleHRzLAogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyB2b2lkIGdldF9mbGFncyhpbnQgZmxh Z3MsIHU4ICpmbG93X2ZsYWdzKQoreworCXU4IF9fZmxvd19mbGFncyA9IDA7CisKKwlpZiAoZmxh Z3MgJiBNTFg1RV9UQ19JTkdSRVNTKQorCQlfX2Zsb3dfZmxhZ3MgfD0gTUxYNUVfVENfRkxPV19J TkdSRVNTOworCWlmIChmbGFncyAmIE1MWDVFX1RDX0VHUkVTUykKKwkJX19mbG93X2ZsYWdzIHw9 IE1MWDVFX1RDX0ZMT1dfRUdSRVNTOworCisJKmZsb3dfZmxhZ3MgPSBfX2Zsb3dfZmxhZ3M7Cit9 CisKIGludCBtbHg1ZV9jb25maWd1cmVfZmxvd2VyKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAot CQkJICAgc3RydWN0IHRjX2Nsc19mbG93ZXJfb2ZmbG9hZCAqZikKKwkJCSAgIHN0cnVjdCB0Y19j bHNfZmxvd2VyX29mZmxvYWQgKmYsIGludCBmbGFncykKIHsKIAlzdHJ1Y3QgbWx4NV9lc3dpdGNo ICplc3cgPSBwcml2LT5tZGV2LT5wcml2LmVzd2l0Y2g7CiAJc3RydWN0IG1seDVlX3RjX2Zsb3df cGFyc2VfYXR0ciAqcGFyc2VfYXR0cjsKQEAgLTI1NzYsMTEgKzI1OTIsMTMgQEAgaW50IG1seDVl X2NvbmZpZ3VyZV9mbG93ZXIoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJaW50IGF0dHJfc2l6 ZSwgZXJyID0gMDsKIAl1OCBmbG93X2ZsYWdzID0gMDsKIAorCWdldF9mbGFncyhmbGFncywgJmZs b3dfZmxhZ3MpOworCiAJaWYgKGVzdyAmJiBlc3ctPm1vZGUgPT0gU1JJT1ZfT0ZGTE9BRFMpIHsK LQkJZmxvd19mbGFncyA9IE1MWDVFX1RDX0ZMT1dfRVNXSVRDSDsKKwkJZmxvd19mbGFncyB8PSBN TFg1RV9UQ19GTE9XX0VTV0lUQ0g7CiAJCWF0dHJfc2l6ZSAgPSBzaXplb2Yoc3RydWN0IG1seDVf ZXN3X2Zsb3dfYXR0cik7CiAJfSBlbHNlIHsKLQkJZmxvd19mbGFncyA9IE1MWDVFX1RDX0ZMT1df TklDOworCQlmbG93X2ZsYWdzIHw9IE1MWDVFX1RDX0ZMT1dfTklDOwogCQlhdHRyX3NpemUgID0g c2l6ZW9mKHN0cnVjdCBtbHg1X25pY19mbG93X2F0dHIpOwogCX0KIApAQCAtMjYzOSw3ICsyNjU3 LDcgQEAgaW50IG1seDVlX2NvbmZpZ3VyZV9mbG93ZXIoc3RydWN0IG1seDVlX3ByaXYgKnByaXYs CiB9CiAKIGludCBtbHg1ZV9kZWxldGVfZmxvd2VyKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAot CQkJc3RydWN0IHRjX2Nsc19mbG93ZXJfb2ZmbG9hZCAqZikKKwkJCXN0cnVjdCB0Y19jbHNfZmxv d2VyX29mZmxvYWQgKmYsIGludCBmbGFncykKIHsKIAlzdHJ1Y3QgbWx4NWVfdGNfZmxvdyAqZmxv dzsKIAlzdHJ1Y3QgbWx4NWVfdGNfdGFibGUgKnRjID0gJnByaXYtPmZzLnRjOwpAQCAtMjY1OSw3 ICsyNjc3LDcgQEAgaW50IG1seDVlX2RlbGV0ZV9mbG93ZXIoc3RydWN0IG1seDVlX3ByaXYgKnBy aXYsCiB9CiAKIGludCBtbHg1ZV9zdGF0c19mbG93ZXIoc3RydWN0IG1seDVlX3ByaXYgKnByaXYs Ci0JCSAgICAgICBzdHJ1Y3QgdGNfY2xzX2Zsb3dlcl9vZmZsb2FkICpmKQorCQkgICAgICAgc3Ry dWN0IHRjX2Nsc19mbG93ZXJfb2ZmbG9hZCAqZiwgaW50IGZsYWdzKQogewogCXN0cnVjdCBtbHg1 ZV90Y190YWJsZSAqdGMgPSAmcHJpdi0+ZnMudGM7CiAJc3RydWN0IG1seDVlX3RjX2Zsb3cgKmZs b3c7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fdGMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5o CmluZGV4IGMxNGMyNjNhNzM5Yi4uMjI1NTM0NWMyZTE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuaAorKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuaApAQCAtMzgsMTYgKzM4LDIzIEBACiAj ZGVmaW5lIE1MWDVFX1RDX0ZMT1dfSURfTUFTSyAweDAwMDBmZmZmCiAKICNpZmRlZiBDT05GSUdf TUxYNV9FU1dJVENICisKK2VudW0geworCU1MWDVFX1RDX0lOR1JFU1MgPSBCSVQoMCksCisJTUxY NUVfVENfRUdSRVNTICA9IEJJVCgxKSwKKwlNTFg1RV9UQ19MQVNUX0VYUE9SVEVEX0JJVCA9IDEs Cit9OworCiBpbnQgbWx4NWVfdGNfaW5pdChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdik7CiB2b2lk IG1seDVlX3RjX2NsZWFudXAoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpOwogCiBpbnQgbWx4NWVf Y29uZmlndXJlX2Zsb3dlcihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKLQkJCSAgIHN0cnVjdCB0 Y19jbHNfZmxvd2VyX29mZmxvYWQgKmYpOworCQkJICAgc3RydWN0IHRjX2Nsc19mbG93ZXJfb2Zm bG9hZCAqZiwgaW50IGZsYWdzKTsKIGludCBtbHg1ZV9kZWxldGVfZmxvd2VyKHN0cnVjdCBtbHg1 ZV9wcml2ICpwcml2LAotCQkJc3RydWN0IHRjX2Nsc19mbG93ZXJfb2ZmbG9hZCAqZik7CisJCQlz dHJ1Y3QgdGNfY2xzX2Zsb3dlcl9vZmZsb2FkICpmLCBpbnQgZmxhZ3MpOwogCiBpbnQgbWx4NWVf c3RhdHNfZmxvd2VyKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAotCQkgICAgICAgc3RydWN0IHRj X2Nsc19mbG93ZXJfb2ZmbG9hZCAqZik7CisJCSAgICAgICBzdHJ1Y3QgdGNfY2xzX2Zsb3dlcl9v ZmZsb2FkICpmLCBpbnQgZmxhZ3MpOwogCiBzdHJ1Y3QgbWx4NWVfZW5jYXBfZW50cnk7CiB2b2lk IG1seDVlX3RjX2VuY2FwX2Zsb3dzX2FkZChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKLS0gCjIu MTcuMQoKCkZyb20gNjJlNDU1MWQwMjIxNGE4MzE5ZTAwNDc5NmRmNDlhZTIxMzc4OTBkOCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUm9pIERheWFuIDxyb2lkQG1lbGxhbm94LmNvbT4K RGF0ZTogVGh1LCAxMiBKdWwgMjAxOCAxODoyNTo1OSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTYv MzRdIG5ldC9tbHg1ZTogT25seSBhbGxvdyBvZmZsb2FkaW5nIGRlY2FwIGVncmVzcyAoZWdkZXYp CiBmbG93cwoKWyBVcHN0cmVhbSBjb21taXQgN2UyOTM5MmVlZTdhMWUzMzE4ZWViMTA5OTgwNzI2 NGE0OWY2MGUzMyBdCgpXZSBnZXQgZWdyZXNzIHJ1bGVzIHRocm91Z2ggdGhlIGVnZGV2IG1lY2hh bmlzbSB3aGVuIHRoZSBpbmdyZXNzIGRldmljZQppcyBub3Qgc3VwcG9ydGluZyBvZmZsb2FkLCB3 aXRoIHRoZSBleHBlY3RlZCB1c2UtY2FzZSBvZiB0dW5uZWwgZGVjYXAKaW5ncmVzcyBydWxlIHNl dCBvbiBzaGFyZWQgdHVubmVsIGRldmljZS4KCk1ha2Ugc3VyZSB0byBvZmZsb2FkIGVncmVzcy9l Z2RldiBydWxlcyBvbmx5IGlmIGRlY2FwIGFjdGlvbiAodHVubmVsIGtleQp1bnNldCkgZXhpc3Rz IHRoZXJlIGFuZCBlcnIgb3RoZXJ3aXNlLgoKRml4ZXM6IDcxNzUwM2I5Y2Y1NyAoIm5ldDogc2No ZWQ6IGNvbnZlcnQgY2xzX2Zsb3dlci0+ZWdyZXNzX2RldiB1c2VycyB0byB0Y19zZXR1cF9jYl9l Z2RldiBpbmZyYSIpClNpZ25lZC1vZmYtYnk6IFJvaSBEYXlhbiA8cm9pZEBtZWxsYW5veC5jb20+ ClNpZ25lZC1vZmYtYnk6IFBhdWwgQmxha2V5IDxwYXVsYkBtZWxsYW5veC5jb20+ClJldmlld2Vk LWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNh ZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fdGMuYwppbmRleCBhMWIwYWJjMjRlZjUuLmEwYmE2Y2ZjOTA5MiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKQEAgLTE4OTQs NiArMTg5NCwxMCBAQCBzdGF0aWMgYm9vbCBhY3Rpb25zX21hdGNoX3N1cHBvcnRlZChzdHJ1Y3Qg bWx4NWVfcHJpdiAqcHJpdiwKIAllbHNlCiAJCWFjdGlvbnMgPSBmbG93LT5uaWNfYXR0ci0+YWN0 aW9uOwogCisJaWYgKGZsb3ctPmZsYWdzICYgTUxYNUVfVENfRkxPV19FR1JFU1MgJiYKKwkgICAg IShhY3Rpb25zICYgTUxYNV9GTE9XX0NPTlRFWFRfQUNUSU9OX0RFQ0FQKSkKKwkJcmV0dXJuIGZh bHNlOworCiAJaWYgKGFjdGlvbnMgJiBNTFg1X0ZMT1dfQ09OVEVYVF9BQ1RJT05fTU9EX0hEUikK IAkJcmV0dXJuIG1vZGlmeV9oZWFkZXJfbWF0Y2hfc3VwcG9ydGVkKCZwYXJzZV9hdHRyLT5zcGVj LCBleHRzKTsKIAotLSAKMi4xNy4xCgoKRnJvbSA2YWM3YTE0YzNjZmM5ZGNlNjhlNDc2NGM2NDg0 ZmZhZjYyOTIwZDMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaGF5IEFncm9za2lu IDxzaGF5YWdAbWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDI3IEp1biAyMDE4IDE1OjQzOjA3ICsw MzAwClN1YmplY3Q6IFtQQVRDSCAxNy8zNF0gbmV0L21seDVlOiBSZWZpbmUgZXRzIHZhbGlkYXRp b24gZnVuY3Rpb24KClsgVXBzdHJlYW0gY29tbWl0IGUyNzlkNjM0ZjNkNTc0NTJlYjEwNmEwYzBl OTlhNmFkZDNmYmExYTYgXQoKUmVtb3ZlZCBhbiBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIHdoZW4g Y29uZmlndXJpbmcgRVRTIHRvdGFsCmJhbmR3aWR0aCB0byBiZSB6ZXJvLgpPdXIgaGFyZHdhcmUg ZG9lc24ndCBzdXBwb3J0IHN1Y2ggY29uZmlndXJhdGlvbiwgc28gd2Ugc2hhbGwKcmVqZWN0IGl0 IGluIHRoZSBkcml2ZXIuIE5ldmVydGhlbGVzcywgd2UgcmVtb3ZlZCB0aGUgZXJyb3IgbWVzc2Fn ZQppbiBvcmRlciB0byBlbGltaW5hdGUgZXJyb3IgbWVzc2FnZXMgY2F1c2VkIGJ5IG9sZCB1c2Vy c3BhY2UgdG9vbHMKd2hvIHRyeSB0byBwYXNzIHN1Y2ggY29uZmlndXJhdGlvbi4KCkZpeGVzOiBm ZjA4OTE5MTVjZDcgKCJuZXQvbWx4NWU6IEZpeCBFVFMgQlcgY2hlY2siKQpTaWduZWQtb2ZmLWJ5 OiBTaGF5IEFncm9za2luIDxzaGF5YWdAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogSHV5IE5n dXllbiA8aHV5bkBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBFcmFuIEJlbiBFbGlzaGEgPGVy YW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1A bWVsbGFub3guY29tPgotLS0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X2RjYm5sLmMgIHwgMTcgKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2Vy dGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2RjYm5sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fZGNibmwuYwppbmRleCBjNjQxZDU2NTZiMmQuLjBjNjAxNWNl ODVmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX2RjYm5sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX2RjYm5sLmMKQEAgLTI3Miw3ICsyNzIsOCBAQCBpbnQgbWx4NWVfZGNibmxfaWVlZV9zZXRl dHNfY29yZShzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgc3RydWN0IGllZWVfZXRzICpldHMpCiB9 CiAKIHN0YXRpYyBpbnQgbWx4NWVfZGJjbmxfdmFsaWRhdGVfZXRzKHN0cnVjdCBuZXRfZGV2aWNl ICpuZXRkZXYsCi0JCQkJICAgIHN0cnVjdCBpZWVlX2V0cyAqZXRzKQorCQkJCSAgICBzdHJ1Y3Qg aWVlZV9ldHMgKmV0cywKKwkJCQkgICAgYm9vbCB6ZXJvX3N1bV9hbGxvd2VkKQogewogCWJvb2wg aGF2ZV9ldHNfdGMgPSBmYWxzZTsKIAlpbnQgYndfc3VtID0gMDsKQEAgLTI5Nyw4ICsyOTgsOSBA QCBzdGF0aWMgaW50IG1seDVlX2RiY25sX3ZhbGlkYXRlX2V0cyhzdHJ1Y3QgbmV0X2RldmljZSAq bmV0ZGV2LAogCX0KIAogCWlmIChoYXZlX2V0c190YyAmJiBid19zdW0gIT0gMTAwKSB7Ci0JCW5l dGRldl9lcnIobmV0ZGV2LAotCQkJICAgIkZhaWxlZCB0byB2YWxpZGF0ZSBFVFM6IEJXIHN1bSBp cyBpbGxlZ2FsXG4iKTsKKwkJaWYgKGJ3X3N1bSB8fCAoIWJ3X3N1bSAmJiAhemVyb19zdW1fYWxs b3dlZCkpCisJCQluZXRkZXZfZXJyKG5ldGRldiwKKwkJCQkgICAiRmFpbGVkIHRvIHZhbGlkYXRl IEVUUzogQlcgc3VtIGlzIGlsbGVnYWxcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJcmV0 dXJuIDA7CkBAIC0zMTMsNyArMzE1LDcgQEAgc3RhdGljIGludCBtbHg1ZV9kY2JubF9pZWVlX3Nl dGV0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCWlmICghTUxYNV9DQVBfR0VOKHByaXYt Pm1kZXYsIGV0cykpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAotCWVyciA9IG1seDVlX2RiY25s X3ZhbGlkYXRlX2V0cyhuZXRkZXYsIGV0cyk7CisJZXJyID0gbWx4NWVfZGJjbmxfdmFsaWRhdGVf ZXRzKG5ldGRldiwgZXRzLCBmYWxzZSk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIApAQCAt NjEzLDEyICs2MTUsOSBAQCBzdGF0aWMgdTggbWx4NWVfZGNibmxfc2V0YWxsKHN0cnVjdCBuZXRf ZGV2aWNlICpuZXRkZXYpCiAJCQkgIGV0cy5wcmlvX3RjW2ldKTsKIAl9CiAKLQllcnIgPSBtbHg1 ZV9kYmNubF92YWxpZGF0ZV9ldHMobmV0ZGV2LCAmZXRzKTsKLQlpZiAoZXJyKSB7Ci0JCW5ldGRl dl9lcnIobmV0ZGV2LAotCQkJICAgIiVzLCBGYWlsZWQgdG8gdmFsaWRhdGUgRVRTOiAlZFxuIiwg X19mdW5jX18sIGVycik7CisJZXJyID0gbWx4NWVfZGJjbmxfdmFsaWRhdGVfZXRzKG5ldGRldiwg JmV0cywgdHJ1ZSk7CisJaWYgKGVycikKIAkJZ290byBvdXQ7Ci0JfQogCiAJZXJyID0gbWx4NWVf ZGNibmxfaWVlZV9zZXRldHNfY29yZShwcml2LCAmZXRzKTsKIAlpZiAoZXJyKSB7Ci0tIAoyLjE3 LjEKCgpGcm9tIGYxZWY5YzU4ZTZhNmEyNTQ1NmNkMjNhY2VhNjU0Yjk3Yzg3OTNmNDAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gSHVybGV5IDxqb2huLmh1cmxleUBuZXRyb25v bWUuY29tPgpEYXRlOiBGcmksIDIwIEp1bCAyMDE4IDIxOjA3OjU0IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAxOC8zNF0gbmZwOiBmbG93ZXI6IGVuc3VyZSBkZWFkIG5laWdoYm91ciBlbnRyaWVzIGFy ZSBub3QKIG9mZmxvYWRlZAoKWyBVcHN0cmVhbSBjb21taXQgYjgwOWVjODY5YjJjZjJhZjA1M2Zm ZDk5ZTVhNDZhYjYwMGU5NGFhMiBdCgpQcmV2aW91c2x5IG9ubHkgdGhlIG5laWdoYm91ciBzdGF0 ZSB3YXMgY2hlY2tlZCB0byBkZWNpZGUgaWYgYW4gb2ZmbG9hZGVkCmVudHJ5IHNob3VsZCBiZSBy ZW1vdmVkLiBIb3dldmVyLCB0aGVyZSBjYW4gYmUgc2l0dWF0aW9ucyB3aGVuIHRoZSBlbnRyeQpp cyBkZWFkIGJ1dCBzdGlsbCBtYXJrZWQgYXMgdmFsaWQuIFRoaXMgY2FuIGxlYWQgdG8gZGVhZCBl bnRyaWVzIG5vdApiZWluZyByZW1vdmVkIGZyb20gZncgdGFibGVzIG9yIGV2ZW4gaW5jb3JyZWN0 IGRhdGEgYmVpbmcgYWRkZWQuCgpDaGVjayB0aGUgZW50cnkgZGVhZCBiaXQgYmVmb3JlIGRlY2lk aW5nIGlmIGl0IHNob3VsZCBiZSBhZGRlZCB0byBvcgpyZW1vdmVkIGZyb20gZncgbmVpZ2hib3Vy IHRhYmxlcy4KCkZpeGVzOiA4ZTZhOTA0NmI2NmEgKCJuZnA6IGZsb3dlciB2eGxhbiBuZWlnaGJv dXIgb2ZmbG9hZCIpClNpZ25lZC1vZmYtYnk6IEpvaG4gSHVybGV5IDxqb2huLmh1cmxleUBuZXRy b25vbWUuY29tPgpSZXZpZXdlZC1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5l dHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci90 dW5uZWxfY29uZi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25m cC9mbG93ZXIvdHVubmVsX2NvbmYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9u ZnAvZmxvd2VyL3R1bm5lbF9jb25mLmMKaW5kZXggZWM1MjRkOTc4NjlkLi41ZWY2MTEzMjYwNGUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL3R1 bm5lbF9jb25mLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93 ZXIvdHVubmVsX2NvbmYuYwpAQCAtMzE3LDcgKzMxNyw3IEBAIG5mcF90dW5fd3JpdGVfbmVpZ2go c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IG5mcF9hcHAgKmFwcCwKIAlwYXlsb2Fk LmRzdF9pcHY0ID0gZmxvdy0+ZGFkZHI7CiAKIAkvKiBJZiBlbnRyeSBoYXMgZXhwaXJlZCBzZW5k IGRzdCBJUCB3aXRoIGFsbCBvdGhlciBmaWVsZHMgMC4gKi8KLQlpZiAoIShuZWlnaC0+bnVkX3N0 YXRlICYgTlVEX1ZBTElEKSkgeworCWlmICghKG5laWdoLT5udWRfc3RhdGUgJiBOVURfVkFMSUQp IHx8IG5laWdoLT5kZWFkKSB7CiAJCW5mcF90dW5fZGVsX3JvdXRlX2Zyb21fY2FjaGUoYXBwLCBw YXlsb2FkLmRzdF9pcHY0KTsKIAkJLyogVHJpZ2dlciBBUlAgdG8gdmVyaWZ5IGludmFsaWQgbmVp Z2hib3VyIHN0YXRlLiAqLwogCQluZWlnaF9ldmVudF9zZW5kKG5laWdoLCBOVUxMKTsKLS0gCjIu MTcuMQoKCkZyb20gZTlhYTRkNDgzY2VjZGNhNDM0Mjk4MWQ3NjMwYmFlNTViNTg3ZGIxMiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFy Ym94Lm5ldD4KRGF0ZTogTW9uLCAyMyBKdWwgMjAxOCAyMjozNzo1NCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMTkvMzRdIHNvY2s6IGZpeCBzZyBwYWdlIGZyYWcgY29hbGVzY2luZyBpbiBza19hbGxv Y19zZwoKWyBVcHN0cmVhbSBjb21taXQgMTQ0ZmUyYmZkMjM2ZGM4MTRlYWU1ODdhZWE3ZTJhZjAz ZGJkZDc1NSBdCgpDdXJyZW50IHNnIGNvYWxlc2NpbmcgbG9naWMgaW4gc2tfYWxsb2Nfc2coKSAo bGF0dGVyIGlzIHVzZWQgYnkgdGxzIGFuZApzb2NrbWFwKSBpcyBub3QgcXVpdGUgY29ycmVjdCBp biB0aGF0IHdlIGRvIGZldGNoIHRoZSBwcmV2aW91cyBzZyBlbnRyeSwKaG93ZXZlciB0aGUgc3Vi c2VxdWVudCBjaGVjayB3aGV0aGVyIHRoZSByZWZpbGxlZCBwYWdlIGZyYWcgZnJvbSB0aGUKc29j a2V0IGlzIHN0aWxsIHRoZSBzYW1lIGFzIGZyb20gdGhlIGxhc3QgZW50cnkgd2l0aCBwcmlvciBv ZmZzZXQgYW5kCmxlbmd0aCBtYXRjaGluZyB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgYnVmZmVy IGlzIGNvbXBhcmluZyBhbHdheXMgdGhlCmZpcnN0IHNnIGxpc3QgZW50cnkgaW5zdGVhZCBvZiB0 aGUgcHJpb3Igb25lLgoKRml4ZXM6IDNjNGQ3NTU5MTU5YiAoInRsczoga2VybmVsIFRMUyBzdXBw b3J0IikKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5l dD4KQWNrZWQtYnk6IERhdmUgV2F0c29uIDxkYXZlandhdHNvbkBmYi5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9z b2NrLmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMK aW5kZXggM2I2ZDAyODU0ZTU3Li5mODI4NDM3NTY1MzQgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3Nv Y2suYworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAgLTIyNzAsOSArMjI3MCw5IEBAIGludCBza19h bGxvY19zZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIHN0cnVjdCBzY2F0dGVybGlzdCAqc2cs CiAJCXBmcmFnLT5vZmZzZXQgKz0gdXNlOwogCiAJCXNnZSA9IHNnICsgc2dfY3VyciAtIDE7Ci0J CWlmIChzZ19jdXJyID4gZmlyc3RfY29hbGVzY2UgJiYgc2dfcGFnZShzZykgPT0gcGZyYWctPnBh Z2UgJiYKLQkJICAgIHNnLT5vZmZzZXQgKyBzZy0+bGVuZ3RoID09IG9yaWdfb2Zmc2V0KSB7Ci0J CQlzZy0+bGVuZ3RoICs9IHVzZTsKKwkJaWYgKHNnX2N1cnIgPiBmaXJzdF9jb2FsZXNjZSAmJiBz Z19wYWdlKHNnZSkgPT0gcGZyYWctPnBhZ2UgJiYKKwkJICAgIHNnZS0+b2Zmc2V0ICsgc2dlLT5s ZW5ndGggPT0gb3JpZ19vZmZzZXQpIHsKKwkJCXNnZS0+bGVuZ3RoICs9IHVzZTsKIAkJfSBlbHNl IHsKIAkJCXNnZSA9IHNnICsgc2dfY3VycjsKIAkJCXNnX3VubWFya19lbmQoc2dlKTsKLS0gCjIu MTcuMQoKCkZyb20gNzgwNDZlZTEwMzljYTE1Yjg2OTQ4YWNlMDAzMmI5Zjc2MWI1NDk3ZCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCAxOSBKdWwgMjAxOCAwODoxNToxNiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMjAvMzRdIG5ldDogcGh5OiBjb25zaWRlciBQSFlfSUdOT1JFX0lOVEVSUlVQVCBpbgog cGh5X3N0YXJ0X2FuZWdfcHJpdgoKWyBVcHN0cmVhbSBjb21taXQgMjE1ZDA4YTg1YjlhY2Y1ZTFm ZTlkYmY1MGYxNzc0Y2RlMzMzZWZlZiBdCgpUaGUgc2l0dWF0aW9uIGRlc2NyaWJlZCBpbiB0aGUg Y29tbWVudCBjYW4gb2NjdXIgYWxzbyB3aXRoClBIWV9JR05PUkVfSU5URVJSVVBULCB0aGVyZWZv cmUgY2hhbmdlIHRoZSBjb25kaXRpb24gdG8gaW5jbHVkZSBpdC4KCkZpeGVzOiBmNTU1ZjM0ZmRj NTggKCJuZXQ6IHBoeTogZml4IGF1dG8tbmVnb3RpYXRpb24gc3RhbGwgZHVlIHRvIHVuYXZhaWxh YmxlIGludGVycnVwdCIpClNpZ25lZC1vZmYtYnk6IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0 MUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC9waHkvcGh5LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvcGh5LmMgYi9k cml2ZXJzL25ldC9waHkvcGh5LmMKaW5kZXggMDVjMWU4ZWYxNWU2Li42OWE4MTA2YjliOTggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHkuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5 LmMKQEAgLTUxNCw3ICs1MTQsNyBAQCBzdGF0aWMgaW50IHBoeV9zdGFydF9hbmVnX3ByaXYoc3Ry dWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgYm9vbCBzeW5jKQogCSAqIG5lZ290aWF0aW9uIG1heSBh bHJlYWR5IGJlIGRvbmUgYW5kIGFuZWcgaW50ZXJydXB0IG1heSBub3QgYmUKIAkgKiBnZW5lcmF0 ZWQuCiAJICovCi0JaWYgKHBoeV9pbnRlcnJ1cHRfaXNfdmFsaWQocGh5ZGV2KSAmJiAocGh5ZGV2 LT5zdGF0ZSA9PSBQSFlfQU4pKSB7CisJaWYgKHBoeWRldi0+aXJxICE9IFBIWV9QT0xMICYmIHBo eWRldi0+c3RhdGUgPT0gUEhZX0FOKSB7CiAJCWVyciA9IHBoeV9hbmVnX2RvbmUocGh5ZGV2KTsK IAkJaWYgKGVyciA+IDApIHsKIAkJCXRyaWdnZXIgPSB0cnVlOwotLSAKMi4xNy4xCgoKRnJvbSA1 Y2FiMTc1YzFmM2Q3ZWEyNTliMjdiNjlmM2JiZDkyMjkxMGU4YjMzIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+CkRhdGU6IEZy aSwgMjAgSnVsIDIwMTggMTQ6MDQ6MjcgKzA4MDAKU3ViamVjdDogW1BBVENIIDIxLzM0XSBtdWx0 aWNhc3Q6IGRvIG5vdCByZXN0b3JlIGRlbGV0ZWQgcmVjb3JkIHNvdXJjZSBmaWx0ZXIKIG1vZGUg dG8gbmV3IG9uZQoKVGhlcmUgYXJlIHR3byBzY2VuYXJpb3MgdGhhdCB3ZSB3aWxsIHJlc3RvcmUg ZGVsZXRlZCByZWNvcmRzLiBUaGUgZmlyc3QgaXMKd2hlbiBkZXZpY2UgZG93biBhbmQgdXAob3Ig dW5tYXAvcmVtYXApLiBJbiB0aGlzIHNjZW5hcmlvIHRoZSBuZXcgZmlsdGVyCm1vZGUgaXMgc2Ft ZSB3aXRoIHByZXZpb3VzIG9uZS4gQmVjYXVzZSB3ZSBnZXQgaXQgZnJvbSBpbl9kZXYtPm1jX2xp c3QgYW5kCndlIGRvIG5vdCB0b3VjaCBpdCBkdXJpbmcgZGV2aWNlIGRvd24gYW5kIHVwLgoKVGhl IG90aGVyIHNjZW5hcmlvIGlzIHdoZW4gYSBuZXcgc29ja2V0IGpvaW4gYSBncm91cCB3aGljaCB3 YXMganVzdCBkZWxldGUKYW5kIG5vdCBmaW5pc2ggc2VuZGluZyBzdGF0dXMgcmVwb3J0cy4gSW4g dGhpcyBzY2VuYXJpbywgd2Ugc2hvdWxkIHVzZSB0aGUKY3VycmVudCBmaWx0ZXIgbW9kZSBpbnN0 ZWFkIG9mIHJlc3RvcmUgb2xkIG9uZS4gSGVyZSBhcmUgNCBjYXNlcyBpbiB0b3RhbC4KCm9sZF9z b2NrZXQgICAgICAgIG5ld19zb2NrZXQgICAgICAgYmVmb3JlX2ZpeCAgICAgICBhZnRlcl9maXgK ICBJTihBKSAgICAgICAgICAgICBJTihBKSAgICAgICAgICAgQUxMT1coQSkgICAgICAgICBBTExP VyhBKQogIElOKEEpICAgICAgICAgICAgIEVYKCApICAgICAgICAgICBUT19JTiggKSAgICAgICAg IFRPX0VYKCApCiAgRVgoICkgICAgICAgICAgICAgSU4oQSkgICAgICAgICAgIFRPX0VYKCApICAg ICAgICAgQUxMT1coQSkKICBFWCggKSAgICAgICAgICAgICBFWCggKSAgICAgICAgICAgVE9fRVgo ICkgICAgICAgICBUT19FWCggKQoKRml4ZXM6IDI0ODAzZjM4YTVjMGIgKGlnbXA6IGRvIG5vdCBy ZW1vdmUgaWdtcCBzb3VjZSBsaXN0IGluZm8gd2hlbiBzZXQgbGluayBkb3duKQpGaXhlczogMTY2 NmQ0OWUxZDQxNiAobWxkOiBkbyBub3QgcmVtb3ZlIG1sZCBzb3VjZSBsaXN0IGluZm8gd2hlbiBz ZXQgbGluayBkb3duKQpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC9pZ21wLmMgIHwgMyArLS0KIG5ldC9pcHY2L21jYXN0LmMgfCAzICst LQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvaWdtcC5jIGIvbmV0L2lwdjQvaWdtcC5jCmluZGV4IGIyNmE4MWE3 ZGU0Mi4uNGFmMDYyNTM0NGEwIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pZ21wLmMKKysrIGIvbmV0 L2lwdjQvaWdtcC5jCkBAIC0xMjAxLDggKzEyMDEsNyBAQCBzdGF0aWMgdm9pZCBpZ21wdjNfZGVs X2RlbHJlYyhzdHJ1Y3QgaW5fZGV2aWNlICppbl9kZXYsIHN0cnVjdCBpcF9tY19saXN0ICppbSkK IAlpZiAocG1jKSB7CiAJCWltLT5pbnRlcmZhY2UgPSBwbWMtPmludGVyZmFjZTsKIAkJaW0tPmNy Y291bnQgPSBpbl9kZXYtPm1yX3FydiA/OiBuZXQtPmlwdjQuc3lzY3RsX2lnbXBfcXJ2OwotCQlp bS0+c2Ztb2RlID0gcG1jLT5zZm1vZGU7Ci0JCWlmIChwbWMtPnNmbW9kZSA9PSBNQ0FTVF9JTkNM VURFKSB7CisJCWlmIChpbS0+c2Ztb2RlID09IE1DQVNUX0lOQ0xVREUpIHsKIAkJCWltLT50b21i ID0gcG1jLT50b21iOwogCQkJaW0tPnNvdXJjZXMgPSBwbWMtPnNvdXJjZXM7CiAJCQlmb3IgKHBz ZiA9IGltLT5zb3VyY2VzOyBwc2Y7IHBzZiA9IHBzZi0+c2ZfbmV4dCkKZGlmZiAtLWdpdCBhL25l dC9pcHY2L21jYXN0LmMgYi9uZXQvaXB2Ni9tY2FzdC5jCmluZGV4IDc5MzE1OWQ3N2Q4YS4uMDYw NGE3MzdlZWNmIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9tY2FzdC5jCisrKyBiL25ldC9pcHY2L21j YXN0LmMKQEAgLTc3MSw4ICs3NzEsNyBAQCBzdGF0aWMgdm9pZCBtbGRfZGVsX2RlbHJlYyhzdHJ1 Y3QgaW5ldDZfZGV2ICppZGV2LCBzdHJ1Y3QgaWZtY2FkZHI2ICppbSkKIAlpZiAocG1jKSB7CiAJ CWltLT5pZGV2ID0gcG1jLT5pZGV2OwogCQlpbS0+bWNhX2NyY291bnQgPSBpZGV2LT5tY19xcnY7 Ci0JCWltLT5tY2Ffc2Ztb2RlID0gcG1jLT5tY2Ffc2Ztb2RlOwotCQlpZiAocG1jLT5tY2Ffc2Zt b2RlID09IE1DQVNUX0lOQ0xVREUpIHsKKwkJaWYgKGltLT5tY2Ffc2Ztb2RlID09IE1DQVNUX0lO Q0xVREUpIHsKIAkJCWltLT5tY2FfdG9tYiA9IHBtYy0+bWNhX3RvbWI7CiAJCQlpbS0+bWNhX3Nv dXJjZXMgPSBwbWMtPm1jYV9zb3VyY2VzOwogCQkJZm9yIChwc2YgPSBpbS0+bWNhX3NvdXJjZXM7 IHBzZjsgcHNmID0gcHNmLT5zZl9uZXh0KQotLSAKMi4xNy4xCgoKRnJvbSBmMTY3OGExZjg4ZjBi NTZmYmM2ZTVmNzgzZTI0NmM1NTlhNGJiNzA4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTkgSnVsIDIwMTgg MTI6NDE6MTggLTA3MDAKU3ViamVjdDogW1BBVENIIDIyLzM0XSBuZXQvaXB2NjogRml4IGxpbmts b2NhbCB0byBnbG9iYWwgYWRkcmVzcyB3aXRoIFZSRgoKWyBVcHN0cmVhbSBjb21taXQgMjRiNzEx ZWRmYzM0YmM0NTc3N2EzZjA2ODgxMmI3ZDFlZDAwNGE1ZCBdCgpFeGFtcGxlIHNldHVwOgogICAg aG9zdDogaXAgLTYgYWRkciBhZGQgZGV2IGV0aDEgMjAwMTpkYjg6MTA0Ojo0CiAgICAgICAgICAg d2hlcmUgZXRoMSBpcyBlbnNsYXZlZCB0byBhIFZSRgoKICAgIHN3aXRjaDogaXAgLTYgcm8gYWRk IDIwMDE6ZGI4OjEwNDo6NC8xMjggZGV2IGJyMQogICAgICAgICAgICB3aGVyZSBicjEgb25seSBo YXMgYW4gTExBCgogICAgICAgICAgIHBpbmc2IDIwMDE6ZGI4OjEwNDo6NAogICAgICAgICAgIHNz aCAgIDIwMDE6ZGI4OjEwNDo6NAoKKE5PVEU6IFVEUCB3b3JrcyBmaW5lIGlmIHRoZSBQS1RJTkZP IGhhcyB0aGUgYWRkcmVzcyBzZXQgdG8gdGhlIGdsb2JhbAphZGRyZXNzIGFuZCBpZmluZGV4IGlz IHNldCB0byB0aGUgaW5kZXggb2YgZXRoMSB3aXRoIGEgZGVzdGluYXRpb24gYW4KTExBKS4KCkZv ciBJQ01QLCBpY21wNl9paWYgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjaGVjayBpZiBza2ItPmRl diBpcyBhbgpMMyBtYXN0ZXIuIElmIGl0IGlzIHRoZW4gcmV0dXJuIHRoZSBpZmluZGV4IGZyb20g cnQ2aV9pZGV2IHNpbWlsYXIKdG8gd2hhdCBpcyBkb25lIGZvciBsb29wYmFjay4KCkZvciBUQ1As IHJlc3RvcmUgdGhlIG9yaWdpbmFsIHRjcF92Nl9paWYgZGVmaW5pdGlvbiB3aGljaCBpcyBuZWVk ZWQgaW4KbW9zdCBwbGFjZXMgYW5kIGFkZCBhIG5ldyB0Y3BfdjZfaWlmX2wzX3NsYXZlIHRoYXQg Y29uc2lkZXJzIHRoZQpsM19zbGF2ZSB2YXJpYWJpbGl0eS4gVGhpcyBsYXR0ZXIgY2hlY2sgaXMg b25seSBuZWVkZWQgZm9yIHNvY2tldApsb29rdXBzLgoKRml4ZXM6IDlmZjc0Mzg0NjAwYSAoIm5l dDogdnJmOiBIYW5kbGUgaXB2NiBtdWx0aWNhc3QgYW5kIGxpbmstbG9jYWwgYWRkcmVzc2VzIikK U2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9u ZXQvdGNwLmggICB8IDUgKysrKysKIG5ldC9pcHY2L2ljbXAuYyAgICAgfCA1ICsrKy0tCiBuZXQv aXB2Ni90Y3BfaXB2Ni5jIHwgNiArKysrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90Y3AuaCBiL2lu Y2x1ZGUvbmV0L3RjcC5oCmluZGV4IGMxYmE2OGU0NWYyMC4uOWNmNzcwMTUwNTM5IDEwMDY0NAot LS0gYS9pbmNsdWRlL25ldC90Y3AuaAorKysgYi9pbmNsdWRlL25ldC90Y3AuaApAQCAtODI4LDYg KzgyOCwxMSBAQCBzdHJ1Y3QgdGNwX3NrYl9jYiB7CiAgKiBhcyBUQ1AgbW92ZXMgSVA2Q0IgaW50 byBhIGRpZmZlcmVudCBsb2NhdGlvbiBpbiBza2ItPmNiW10KICAqLwogc3RhdGljIGlubGluZSBp bnQgdGNwX3Y2X2lpZihjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCXJldHVybiBUQ1Bf U0tCX0NCKHNrYiktPmhlYWRlci5oNi5paWY7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHRjcF92 Nl9paWZfbDNfc2xhdmUoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlib29sIGwzX3Ns YXZlID0gaXB2Nl9sM21kZXZfc2tiKFRDUF9TS0JfQ0Ioc2tiKS0+aGVhZGVyLmg2LmZsYWdzKTsK IApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaWNtcC5jIGIvbmV0L2lwdjYvaWNtcC5jCmluZGV4IGQ4 YzRiNjM3NDM3Ny4uY2E4OTNhNzk4ZDhhIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pY21wLmMKKysr IGIvbmV0L2lwdjYvaWNtcC5jCkBAIC00MDIsOSArNDAyLDEwIEBAIHN0YXRpYyBpbnQgaWNtcDZf aWlmKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCiAKIAkvKiBmb3IgbG9jYWwgdHJhZmZpYyB0 byBsb2NhbCBhZGRyZXNzLCBza2IgZGV2IGlzIHRoZSBsb29wYmFjawogCSAqIGRldmljZS4gQ2hl Y2sgaWYgdGhlcmUgaXMgYSBkc3QgYXR0YWNoZWQgdG8gdGhlIHNrYiBhbmQgaWYgc28KLQkgKiBn ZXQgdGhlIHJlYWwgZGV2aWNlIGluZGV4LgorCSAqIGdldCB0aGUgcmVhbCBkZXZpY2UgaW5kZXgu IFNhbWUgaXMgbmVlZGVkIGZvciByZXBsaWVzIHRvIGEgbGluaworCSAqIGxvY2FsIGFkZHJlc3Mg b24gYSBkZXZpY2UgZW5zbGF2ZWQgdG8gYW4gTDMgbWFzdGVyIGRldmljZQogCSAqLwotCWlmICh1 bmxpa2VseShpaWYgPT0gTE9PUEJBQ0tfSUZJTkRFWCkpIHsKKwlpZiAodW5saWtlbHkoaWlmID09 IExPT1BCQUNLX0lGSU5ERVggfHwgbmV0aWZfaXNfbDNfbWFzdGVyKHNrYi0+ZGV2KSkpIHsKIAkJ Y29uc3Qgc3RydWN0IHJ0Nl9pbmZvICpydDYgPSBza2JfcnQ2X2luZm8oc2tiKTsKIAogCQlpZiAo cnQ2KQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9pcHY2 LmMKaW5kZXggNWQ0ZWI5ZDJjM2E3Li4xYWRmN2ViODBkMDMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L3RjcF9pcHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAtOTM0LDcgKzkzNCw4IEBA IHN0YXRpYyB2b2lkIHRjcF92Nl9zZW5kX3Jlc2V0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAkJCQkJICAgJnRjcF9oYXNoaW5mbywgTlVMTCwgMCwKIAkJCQkJ ICAgJmlwdjZoLT5zYWRkciwKIAkJCQkJICAgdGgtPnNvdXJjZSwgJmlwdjZoLT5kYWRkciwKLQkJ CQkJICAgbnRvaHModGgtPnNvdXJjZSksIHRjcF92Nl9paWYoc2tiKSwKKwkJCQkJICAgbnRvaHMo dGgtPnNvdXJjZSksCisJCQkJCSAgIHRjcF92Nl9paWZfbDNfc2xhdmUoc2tiKSwKIAkJCQkJICAg dGNwX3Y2X3NkaWYoc2tiKSk7CiAJCWlmICghc2sxKQogCQkJZ290byBvdXQ7CkBAIC0xNjA1LDcg KzE2MDYsOCBAQCBzdGF0aWMgaW50IHRjcF92Nl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJ CQkJICAgIHNrYiwgX190Y3BfaGRybGVuKHRoKSwKIAkJCQkJICAgICZpcHY2X2hkcihza2IpLT5z YWRkciwgdGgtPnNvdXJjZSwKIAkJCQkJICAgICZpcHY2X2hkcihza2IpLT5kYWRkciwKLQkJCQkJ ICAgIG50b2hzKHRoLT5kZXN0KSwgdGNwX3Y2X2lpZihza2IpLAorCQkJCQkgICAgbnRvaHModGgt PmRlc3QpLAorCQkJCQkgICAgdGNwX3Y2X2lpZl9sM19zbGF2ZShza2IpLAogCQkJCQkgICAgc2Rp Zik7CiAJCWlmIChzazIpIHsKIAkJCXN0cnVjdCBpbmV0X3RpbWV3YWl0X3NvY2sgKnR3ID0gaW5l dF90d3NrKHNrKTsKLS0gCjIuMTcuMQoKCkZyb20gZTUzMWJmNjljZGE4NzgzMzNlMjY3ZWFiNDVk YTczNTA4ZTA1MDY4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJhbiBCZW4gRWxp c2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpEYXRlOiBTdW4sIDggSnVsIDIwMTggMTQ6NTI6MTIg KzAzMDAKU3ViamVjdDogW1BBVENIIDIzLzM0XSBuZXQvbWx4NWU6IERvbid0IGFsbG93IGFSRlMg Zm9yIGVuY2Fwc3VsYXRlZCBwYWNrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCBkMmUxYzU3YmNmOWEw N2NiYjY3ZjMwZWNmMjM4ZjI5ODc5OWJjZTFjIF0KCkRyaXZlciBpcyB5ZXQgdG8gc3VwcG9ydCBh UkZTIGZvciBlbmNhcHN1bGF0ZWQgcGFja2V0cywgcmV0dXJuIGVhcmx5CmVycm9yIGluIHN1Y2gg Y2FzZS4KCkZpeGVzOiAxOGM5MDhlNDc3ZGMgKCJuZXQvbWx4NWU6IEFkZCBhY2NlbGVyYXRlZCBS RlMgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxh bm94LmNvbT4KUmV2aWV3ZWQtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4K U2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FyZnMuYyB8IDMgKysr CiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FyZnMuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hcmZzLmMKaW5kZXggNjEwZDQ4NWM0YjAzLi41 M2ExM2EyOGY4MjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9hcmZzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX2FyZnMuYwpAQCAtNzExLDYgKzcxMSw5IEBAIGludCBtbHg1ZV9yeF9mbG93X3N0 ZWVyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJ ICAgIHNrYi0+cHJvdG9jb2wgIT0gaHRvbnMoRVRIX1BfSVBWNikpCiAJCXJldHVybiAtRVBST1RP Tk9TVVBQT1JUOwogCisJaWYgKHNrYi0+ZW5jYXBzdWxhdGlvbikKKwkJcmV0dXJuIC1FUFJPVE9O T1NVUFBPUlQ7CisKIAlhcmZzX3QgPSBhcmZzX2dldF90YWJsZShhcmZzLCBhcmZzX2dldF9pcF9w cm90byhza2IpLCBza2ItPnByb3RvY29sKTsKIAlpZiAoIWFyZnNfdCkKIAkJcmV0dXJuIC1FUFJP VE9OT1NVUFBPUlQ7Ci0tIAoyLjE3LjEKCgpGcm9tIGI3MGEzODhjN2MxNWE4NTI0YzMxNmZlMzli M2MzOTg5MWMxY2JkZjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyYW4gQmVuIEVs aXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCA4IEp1bCAyMDE4IDEzOjA4OjU1 ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyNC8zNF0gbmV0L21seDVlOiBGaXggcXVvdGEgY291bnRp bmcgaW4gYVJGUyBleHBpcmUgZmxvdwoKWyBVcHN0cmVhbSBjb21taXQgMjYzMGJhZTgwMTg4MjNj M2I4ODc4OGI2OWZiOWYxNmVhM2I0YTExZSBdCgpRdW90YSBzaG91bGQgZm9sbG93IHRoZSBhbW91 bnQgb2YgcnVsZXMgd2hpY2ggZG8gZXhwaXJlLCBhbmQgbm90IHRoZQpudW1iZXIgb2YgcnVsZXMg dGhhdCB3ZXJlIGV4YW1pbmVkLCBmaXhlZCB0aGF0LgoKRml4ZXM6IDE4YzkwOGU0NzdkYyAoIm5l dC9tbHg1ZTogQWRkIGFjY2VsZXJhdGVkIFJGUyBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogRXJh biBCZW4gRWxpc2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogTWFvciBHb3R0 bGllYiA8bWFvcmdAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogVGFyaXEgVG91a2FuIDx0YXJp cXRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1l bGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fYXJmcy5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9hcmZzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fYXJmcy5jCmluZGV4IDUzYTEzYTI4ZjgyNC4uZGRhMjgxY2ZmODgwIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYXJmcy5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hcmZzLmMKQEAgLTM4 MSwxNCArMzgxLDE0IEBAIHN0YXRpYyB2b2lkIGFyZnNfbWF5X2V4cGlyZV9mbG93KHN0cnVjdCBt bHg1ZV9wcml2ICpwcml2KQogCUhMSVNUX0hFQUQoZGVsX2xpc3QpOwogCXNwaW5fbG9ja19iaCgm cHJpdi0+ZnMuYXJmcy5hcmZzX2xvY2spOwogCW1seDVlX2Zvcl9lYWNoX2FyZnNfcnVsZShhcmZz X3J1bGUsIGh0bXAsIHByaXYtPmZzLmFyZnMuYXJmc190YWJsZXMsIGksIGopIHsKLQkJaWYgKHF1 b3RhKysgPiBNTFg1RV9BUkZTX0VYUElSWV9RVU9UQSkKLQkJCWJyZWFrOwogCQlpZiAoIXdvcmtf cGVuZGluZygmYXJmc19ydWxlLT5hcmZzX3dvcmspICYmCiAJCSAgICBycHNfbWF5X2V4cGlyZV9m bG93KHByaXYtPm5ldGRldiwKIAkJCQkJYXJmc19ydWxlLT5yeHEsIGFyZnNfcnVsZS0+Zmxvd19p ZCwKIAkJCQkJYXJmc19ydWxlLT5maWx0ZXJfaWQpKSB7CiAJCQlobGlzdF9kZWxfaW5pdCgmYXJm c19ydWxlLT5obGlzdCk7CiAJCQlobGlzdF9hZGRfaGVhZCgmYXJmc19ydWxlLT5obGlzdCwgJmRl bF9saXN0KTsKKwkJCWlmIChxdW90YSsrID4gTUxYNUVfQVJGU19FWFBJUllfUVVPVEEpCisJCQkJ YnJlYWs7CiAJCX0KIAl9CiAJc3Bpbl91bmxvY2tfYmgoJnByaXYtPmZzLmFyZnMuYXJmc19sb2Nr KTsKLS0gCjIuMTcuMQoKCkZyb20gMzY2MzdjNjE5YzZhNmIxOGRlMTQ0NDRlOWMyNzIzYWE5MTBj ZDAyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJpZWwgTGV2a292aWNoIDxsYXJp ZWxAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDI1IEp1biAyMDE4IDE5OjEyOjAyICswMzAwClN1 YmplY3Q6IFtQQVRDSCAyNS8zNF0gbmV0L21seDU6IEFkanVzdCBjbG9jayBvdmVyZmxvdyB3b3Jr IHBlcmlvZAoKWyBVcHN0cmVhbSBjb21taXQgMzMxODBiZWU4NmE4OTQwYTg0OTUwZWRjYTQ2MzE1 Y2Q5ZGQ2ZGViNSBdCgpXaGVuIGRyaXZlciBjb252ZXJ0cyBIVyB0aW1lc3RhbXAgdG8gd2FsbCBj bG9jayB0aW1lIGl0IHN1YnRyYWN0cwp0aGUgbGFzdCBzYXZlZCBjeWNsZSBjb3VudGVyIGZyb20g dGhlIEhXIHRpbWVzdGFtcCBhbmQgY29udmVydHMgdGhlCmRpZmZlcmVuY2UgdG8gbmFub3NlY29u ZHMuClRoZSBjb252ZXJzaW9uIGlzIGRvbmUgYnkgbXVsdGlwbHlpbmcgdGhlIGN5Y2xlcyBkaWZm ZXJlbmNlIHdpdGggdGhlCmNsb2NrIG11bHRpcGxpZXIgdmFsdWUgYXMgYSBmaXJzdCBzdGVwIGFu ZCB0aGVyZWZvcmUgdGhlIGN5Y2xlcwpkaWZmZXJlbmNlIHNob3VsZCBiZSBzbWFsbCBlbm91Z2gg c28gdGhhdCB0aGUgbXVsdGlwbGljYXRpb24gcHJvZHVjdApkb2Vzbid0IGV4Y2VlZCA2NGJpdC4K ClRoZSBvdmVyZmxvdyBoYW5kbGluZyByb3V0aW5lIGlzIGluIGNoYXJnZSBvZiB1cGRhdGluZyB0 aGUgbGFzdCBzYXZlZApjeWNsZSBjb3VudGVyIGluIGRyaXZlciBhbmQgaXQgaXMgY2FsbGVkIHBl cmlvZGljYWxseSB1c2luZyBrZXJuZWwKZGVsYXllZCB3b3JrcXVldWUuCgpUaGUgZGVsYXkgcGVy aW9kIGZvciB0aGlzIHdvcmsgaXMgY2FsY3VsYXRlZCB1c2luZyB0aGUgbWF4IEhXIGN5Y2xlCmNv dW50ZXIgdmFsdWUgKGEgNDEgYml0IG1hc2spIGFzIGEgYmFzZSB3aGljaCBkb2Vzbid0IHRha2Ug dGhlIDY0Yml0CmxpbWl0IGludG8gYWNjb3VudCBzbyB0aGUgZGVsYXkgcGVyaW9kIG1heSBiZSBp bmNvcnJlY3QgYW5kIHRvbwpsb25nIHRvIHByZXZlbnQgYSBsYXJnZSBkaWZmZXJlbmNlIGJldHdl ZW4gdGhlIEhXIGNvdW50ZXIgYW5kIHRoZSBsYXN0CnNhdmVkIGNvdW50ZXIgaW4gU1cuCgpUaGlz IGNoYW5nZSBhZGp1c3RzIHRoZSB3b3JrIHBlcmlvZCBmb3IgdGhlIEhXIGNsb2NrIG92ZXJmbG93 IHdvcmsgYnkKdGFraW5nIHRoZSBtaW5pbXVtIGJldHdlZW4gdGhlIHByZXZpb3VzIHZhbHVlIGFu ZCB0aGUgcXVvdGllbnQgb2YgbWF4CnU2NCB2YWx1ZSBhbmQgdGhlIGNsb2NrIG11bHRpcGxpZXIg dmFsdWUuCgpGaXhlczogZWY5ODE0ZGVhZmQwICgibmV0L21seDVlOiBBZGQgSFcgdGltZXN0YW1w aW5nIChUUykgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEFyaWVsIExldmtvdmljaCA8bGFyaWVs QG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxh bm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5j b20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9jbG9j ay5jIHwgMTIgKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvbGliL2Nsb2NrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvbGliL2Nsb2NrLmMKaW5kZXggODU3MDM1NTgzY2NkLi5jMTRlN2ZjMTFkOGEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvY2xv Y2suYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2Ns b2NrLmMKQEAgLTQ4Nyw2ICs0ODcsNyBAQCB2b2lkIG1seDVfcHBzX2V2ZW50KHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICptZGV2LAogdm9pZCBtbHg1X2luaXRfY2xvY2soc3RydWN0IG1seDVfY29yZV9k ZXYgKm1kZXYpCiB7CiAJc3RydWN0IG1seDVfY2xvY2sgKmNsb2NrID0gJm1kZXYtPmNsb2NrOwor CXU2NCBvdmVyZmxvd19jeWNsZXM7CiAJdTY0IG5zOwogCXU2NCBmcmFjID0gMDsKIAl1MzIgZGV2 X2ZyZXE7CkBAIC01MTAsMTAgKzUxMSwxNyBAQCB2b2lkIG1seDVfaW5pdF9jbG9jayhzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqbWRldikKIAogCS8qIENhbGN1bGF0ZSBwZXJpb2QgaW4gc2Vjb25kcyB0 byBjYWxsIHRoZSBvdmVyZmxvdyB3YXRjaGRvZyAtIHRvIG1ha2UKIAkgKiBzdXJlIGNvdW50ZXIg aXMgY2hlY2tlZCBhdCBsZWFzdCBvbmNlIGV2ZXJ5IHdyYXAgYXJvdW5kLgorCSAqIFRoZSBwZXJp b2QgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBiZXR3ZWVuIG1heCBIVyBjeWNsZXMgY291 bnQKKwkgKiAoVGhlIGNsb2NrIHNvdXJjZSBtYXNrKSBhbmQgbWF4IGFtb3VudCBvZiBjeWNsZXMg dGhhdCBjYW4gYmUKKwkgKiBtdWx0aXBsaWVkIGJ5IGNsb2NrIG11bHRpcGxpZXIgd2hlcmUgdGhl IHJlc3VsdCBkb2Vzbid0IGV4Y2VlZAorCSAqIDY0Yml0cy4KIAkgKi8KLQlucyA9IGN5Y2xlY291 bnRlcl9jeWMybnMoJmNsb2NrLT5jeWNsZXMsIGNsb2NrLT5jeWNsZXMubWFzaywKKwlvdmVyZmxv d19jeWNsZXMgPSBkaXY2NF91NjQofjBVTEwgPj4gMSwgY2xvY2stPmN5Y2xlcy5tdWx0KTsKKwlv dmVyZmxvd19jeWNsZXMgPSBtaW4ob3ZlcmZsb3dfY3ljbGVzLCBjbG9jay0+Y3ljbGVzLm1hc2sg Pj4gMSk7CisKKwlucyA9IGN5Y2xlY291bnRlcl9jeWMybnMoJmNsb2NrLT5jeWNsZXMsIG92ZXJm bG93X2N5Y2xlcywKIAkJCQkgZnJhYywgJmZyYWMpOwotCWRvX2RpdihucywgTlNFQ19QRVJfU0VD IC8gMiAvIEhaKTsKKwlkb19kaXYobnMsIE5TRUNfUEVSX1NFQyAvIEhaKTsKIAljbG9jay0+b3Zl cmZsb3dfcGVyaW9kID0gbnM7CiAKIAltZGV2LT5jbG9ja19pbmZvX3BhZ2UgPSBhbGxvY19wYWdl KEdGUF9LRVJORUwpOwotLSAKMi4xNy4xCgoKRnJvbSBhYmFhNjY4ZDAzMTI3Nzc4Mjc2NmRhMDhi MDhmZjRlYzkwNDZiNDc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb29wYSBQcmFi aHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IEZyaSwgMjAgSnVsIDIwMTggMTM6 MjE6MDEgLTA3MDAKU3ViamVjdDogW1BBVENIIDI2LzM0XSBydG5ldGxpbms6IGFkZCBydG5sX2xp bmtfc3RhdGUgY2hlY2sgaW4KIHJ0bmxfY29uZmlndXJlX2xpbmsKClsgVXBzdHJlYW0gY29tbWl0 IDUwMjVmN2Y3ZDUwNmZiYTliMzllN2ZlOGNhMTBmNmYzNGNiOWJjMmQgXQoKcnRubF9jb25maWd1 cmVfbGluayBzZXRzIGRldi0+cnRubF9saW5rX3N0YXRlIHRvClJUTkxfTElOS19JTklUSUFMSVpF RCBhbmQgdW5jb25kaXRpb25hbGx5IGNhbGxzCl9fZGV2X25vdGlmeV9mbGFncyB0byBub3RpZnkg dXNlci1zcGFjZSBvZiBkZXYgZmxhZ3MuCgpjdXJyZW50IGNhbGwgc2VxdWVuY2UgZm9yIHJ0bmxf Y29uZmlndXJlX2xpbmsKcnRuZXRsaW5rX25ld2xpbmsKICAgIHJ0bmxfbGlua19vcHMtPm5ld2xp bmsKICAgIHJ0bmxfY29uZmlndXJlX2xpbmsgKHVuY29uZGl0aW9uYWxseSBub3RpZmllcyB1c2Vy c3BhY2Ugb2YKICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgYW5kIG5ldyBkZXYgZmxh Z3MpCgpJZiBhIG5ld2xpbmsgaGFuZGxlciB3YW50cyB0byBjYWxsIHJ0bmxfY29uZmlndXJlX2xp bmsKZWFybHksIHdlIHdpbGwgZW5kIHVwIHdpdGggZHVwbGljYXRlIG5vdGlmaWNhdGlvbnMgdG8K dXNlci1zcGFjZS4KClRoaXMgcGF0Y2ggZml4ZXMgcnRubF9jb25maWd1cmVfbGluayB0byBjaGVj ayBydG5sX2xpbmtfc3RhdGUKYW5kIGNhbGwgX19kZXZfbm90aWZ5X2ZsYWdzIHdpdGggZ2NoYW5n ZXMgPSAwIGlmIGFscmVhZHkKUlROTF9MSU5LX0lOSVRJQUxJWkVELgoKTGF0ZXIgaW4gdGhlIHNl cmllcywgdGhpcyBwYXRjaCB3aWxsIGhlbHAgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZQp3aGVyZSBh IGRyaXZlciBpbXBsZW1lbnRpbmcgbmV3bGluayBjYW4gY2FsbCBydG5sX2NvbmZpZ3VyZV9saW5r CnRvIGluaXRpYWxpemUgdGhlIGxpbmsgZWFybHkuCgptYWtlcyB0aGUgZm9sbG93aW5nIGNhbGwg c2VxdWVuY2Ugd29yazoKcnRuZXRsaW5rX25ld2xpbmsKICAgIHJ0bmxfbGlua19vcHMtPm5ld2xp bmsgKHZ4bGFuKSAtPiBydG5sX2NvbmZpZ3VyZV9saW5rIChpbml0aWFsaXplcwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rIGFuZCBub3RpZmllcwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyLXNwYWNl IG9mIGRlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGV2IGZsYWdzKQogICAgcnRubF9jb25maWd1cmVfbGluayAodXBkYXRlcyBkZXYgZmxhZ3Mg aWYgcmVxdWVzdGVkIGJ5IHVzZXIgaWZtCiAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbm90 aWZpZXMgdXNlci1zcGFjZSBvZiBuZXcgZGV2IGZsYWdzKQoKU2lnbmVkLW9mZi1ieTogUm9vcGEg UHJhYmh1IDxyb29wYUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvcnRuZXRsaW5rLmMg fCA5ICsrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9ydG5ldGxpbmsuYyBiL25ldC9jb3JlL3J0bmV0 bGluay5jCmluZGV4IDE5ZjZhYjVkZTZlMS4uM2RhYjNjN2I2ODMxIDEwMDY0NAotLS0gYS9uZXQv Y29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwpAQCAtMjc0OSw5ICsy NzQ5LDEyIEBAIGludCBydG5sX2NvbmZpZ3VyZV9saW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs IGNvbnN0IHN0cnVjdCBpZmluZm9tc2cgKmlmbSkKIAkJCXJldHVybiBlcnI7CiAJfQogCi0JZGV2 LT5ydG5sX2xpbmtfc3RhdGUgPSBSVE5MX0xJTktfSU5JVElBTElaRUQ7Ci0KLQlfX2Rldl9ub3Rp ZnlfZmxhZ3MoZGV2LCBvbGRfZmxhZ3MsIH4wVSk7CisJaWYgKGRldi0+cnRubF9saW5rX3N0YXRl ID09IFJUTkxfTElOS19JTklUSUFMSVpFRCkgeworCQlfX2Rldl9ub3RpZnlfZmxhZ3MoZGV2LCBv bGRfZmxhZ3MsIDBVKTsKKwl9IGVsc2UgeworCQlkZXYtPnJ0bmxfbGlua19zdGF0ZSA9IFJUTkxf TElOS19JTklUSUFMSVpFRDsKKwkJX19kZXZfbm90aWZ5X2ZsYWdzKGRldiwgb2xkX2ZsYWdzLCB+ MFUpOworCX0KIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wocnRubF9jb25maWd1cmVfbGlu ayk7Ci0tIAoyLjE3LjEKCgpGcm9tIGI2ODk1MDVlOGNlNmRjYzI3YWIwYWIwOWY2MjM5MTZhODU5 NGQ4NjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvb3BhIFByYWJodSA8cm9vcGFA Y3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogRnJpLCAyMCBKdWwgMjAxOCAxMzoyMTowMiAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMjcvMzRdIHZ4bGFuOiBhZGQgbmV3IGZkYiBhbGxvYyBhbmQgY3Jl YXRlIGhlbHBlcnMKClsgVXBzdHJlYW0gY29tbWl0IDc0MzEwMTZiMTA3Yzk1Y2I1YjIwMTRhYTE5 MDFmY2IxMTVmNzQ2YmMgXQoKLSBBZGQgbmV3IHZ4bGFuX2ZkYl9hbGxvYyBoZWxwZXIKLSByZW5h bWUgZXhpc3RpbmcgdnhsYW5fZmRiX2NyZWF0ZSBpbnRvIHZ4bGFuX2ZkYl91cGRhdGU6CiAgICAg ICAgYmVjYXVzZSBpdCByZWFsbHkgY3JlYXRlcyBvciB1cGRhdGVzIGFuIGV4aXN0aW5nCiAgICAg ICAgZmRiIGVudHJ5Ci0gbW92ZSBuZXcgZmRiIGNyZWF0aW9uIGludG8gYSBzZXBhcmF0ZSB2eGxh bl9mZGJfY3JlYXRlCgpNYWluIG1vdGl2YXRpb24gZm9yIHRoaXMgY2hhbmdlIGlzIHRvIGludHJv ZHVjZSB0aGUgYWJpbGl0eQp0byBkZWNvdXBsZSB2eGxhbiBmZGIgY3JlYXRpb24gYW5kIG5vdGlm eSwgdXNlZCBpbiBhIGxhdGVyIHBhdGNoLgoKU2lnbmVkLW9mZi1ieTogUm9vcGEgUHJhYmh1IDxy b29wYUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyB8IDkxICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDYyIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3Z4bGFuLmMgYi9kcml2ZXJzL25ldC92eGxhbi5jCmluZGV4IDRiMTcwNTk5ZmE1ZS4uNWEy NmI2Njg5OTkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92eGxhbi5jCisrKyBiL2RyaXZlcnMv bmV0L3Z4bGFuLmMKQEAgLTYzNiw4ICs2MzYsNjEgQEAgc3RhdGljIGludCB2eGxhbl9ncm9fY29t cGxldGUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmhvZmYpCiAJ cmV0dXJuIGV0aF9ncm9fY29tcGxldGUoc2tiLCBuaG9mZiArIHNpemVvZihzdHJ1Y3QgdnhsYW5o ZHIpKTsKIH0KIAotLyogQWRkIG5ldyBlbnRyeSB0byBmb3J3YXJkaW5nIHRhYmxlIC0tIGFzc3Vt ZXMgbG9jayBoZWxkICovCitzdGF0aWMgc3RydWN0IHZ4bGFuX2ZkYiAqdnhsYW5fZmRiX2FsbG9j KHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLAorCQkJCQkgY29uc3QgdTggKm1hYywgX191MTYgc3Rh dGUsCisJCQkJCSBfX2JlMzIgc3JjX3ZuaSwgX191OCBuZG1fZmxhZ3MpCit7CisJc3RydWN0IHZ4 bGFuX2ZkYiAqZjsKKworCWYgPSBrbWFsbG9jKHNpemVvZigqZiksIEdGUF9BVE9NSUMpOworCWlm ICghZikKKwkJcmV0dXJuIE5VTEw7CisJZi0+c3RhdGUgPSBzdGF0ZTsKKwlmLT5mbGFncyA9IG5k bV9mbGFnczsKKwlmLT51cGRhdGVkID0gZi0+dXNlZCA9IGppZmZpZXM7CisJZi0+dm5pID0gc3Jj X3ZuaTsKKwlJTklUX0xJU1RfSEVBRCgmZi0+cmVtb3Rlcyk7CisJbWVtY3B5KGYtPmV0aF9hZGRy LCBtYWMsIEVUSF9BTEVOKTsKKworCXJldHVybiBmOworfQorCiBzdGF0aWMgaW50IHZ4bGFuX2Zk Yl9jcmVhdGUoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sCisJCQkgICAgY29uc3QgdTggKm1hYywg dW5pb24gdnhsYW5fYWRkciAqaXAsCisJCQkgICAgX191MTYgc3RhdGUsIF9fYmUxNiBwb3J0LCBf X2JlMzIgc3JjX3ZuaSwKKwkJCSAgICBfX2JlMzIgdm5pLCBfX3UzMiBpZmluZGV4LCBfX3U4IG5k bV9mbGFncywKKwkJCSAgICBzdHJ1Y3QgdnhsYW5fZmRiICoqZmRiKQoreworCXN0cnVjdCB2eGxh bl9yZHN0ICpyZCA9IE5VTEw7CisJc3RydWN0IHZ4bGFuX2ZkYiAqZjsKKwlpbnQgcmM7CisKKwlp ZiAodnhsYW4tPmNmZy5hZGRybWF4ICYmCisJICAgIHZ4bGFuLT5hZGRyY250ID49IHZ4bGFuLT5j ZmcuYWRkcm1heCkKKwkJcmV0dXJuIC1FTk9TUEM7CisKKwluZXRkZXZfZGJnKHZ4bGFuLT5kZXYs ICJhZGQgJXBNIC0+ICVwSVNcbiIsIG1hYywgaXApOworCWYgPSB2eGxhbl9mZGJfYWxsb2Modnhs YW4sIG1hYywgc3RhdGUsIHNyY192bmksIG5kbV9mbGFncyk7CisJaWYgKCFmKQorCQlyZXR1cm4g LUVOT01FTTsKKworCXJjID0gdnhsYW5fZmRiX2FwcGVuZChmLCBpcCwgcG9ydCwgdm5pLCBpZmlu ZGV4LCAmcmQpOworCWlmIChyYyA8IDApIHsKKwkJa2ZyZWUoZik7CisJCXJldHVybiByYzsKKwl9 CisKKwkrK3Z4bGFuLT5hZGRyY250OworCWhsaXN0X2FkZF9oZWFkX3JjdSgmZi0+aGxpc3QsCisJ CQkgICB2eGxhbl9mZGJfaGVhZCh2eGxhbiwgbWFjLCBzcmNfdm5pKSk7CisKKwkqZmRiID0gZjsK KworCXJldHVybiAwOworfQorCisvKiBBZGQgbmV3IGVudHJ5IHRvIGZvcndhcmRpbmcgdGFibGUg LS0gYXNzdW1lcyBsb2NrIGhlbGQgKi8KK3N0YXRpYyBpbnQgdnhsYW5fZmRiX3VwZGF0ZShzdHJ1 Y3QgdnhsYW5fZGV2ICp2eGxhbiwKIAkJCSAgICBjb25zdCB1OCAqbWFjLCB1bmlvbiB2eGxhbl9h ZGRyICppcCwKIAkJCSAgICBfX3UxNiBzdGF0ZSwgX191MTYgZmxhZ3MsCiAJCQkgICAgX19iZTE2 IHBvcnQsIF9fYmUzMiBzcmNfdm5pLCBfX2JlMzIgdm5pLApAQCAtNjg3LDM3ICs3NDAsMTcgQEAg c3RhdGljIGludCB2eGxhbl9mZGJfY3JlYXRlKHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLAogCQlp ZiAoIShmbGFncyAmIE5MTV9GX0NSRUFURSkpCiAJCQlyZXR1cm4gLUVOT0VOVDsKIAotCQlpZiAo dnhsYW4tPmNmZy5hZGRybWF4ICYmCi0JCSAgICB2eGxhbi0+YWRkcmNudCA+PSB2eGxhbi0+Y2Zn LmFkZHJtYXgpCi0JCQlyZXR1cm4gLUVOT1NQQzsKLQogCQkvKiBEaXNhbGxvdyByZXBsYWNlIHRv IGFkZCBhIG11bHRpY2FzdCBlbnRyeSAqLwogCQlpZiAoKGZsYWdzICYgTkxNX0ZfUkVQTEFDRSkg JiYKIAkJICAgIChpc19tdWx0aWNhc3RfZXRoZXJfYWRkcihtYWMpIHx8IGlzX3plcm9fZXRoZXJf YWRkcihtYWMpKSkKIAkJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCQluZXRkZXZfZGJnKHZ4bGFu LT5kZXYsICJhZGQgJXBNIC0+ICVwSVNcbiIsIG1hYywgaXApOwotCQlmID0ga21hbGxvYyhzaXpl b2YoKmYpLCBHRlBfQVRPTUlDKTsKLQkJaWYgKCFmKQotCQkJcmV0dXJuIC1FTk9NRU07Ci0KLQkJ bm90aWZ5ID0gMTsKLQkJZi0+c3RhdGUgPSBzdGF0ZTsKLQkJZi0+ZmxhZ3MgPSBuZG1fZmxhZ3M7 Ci0JCWYtPnVwZGF0ZWQgPSBmLT51c2VkID0gamlmZmllczsKLQkJZi0+dm5pID0gc3JjX3ZuaTsK LQkJSU5JVF9MSVNUX0hFQUQoJmYtPnJlbW90ZXMpOwotCQltZW1jcHkoZi0+ZXRoX2FkZHIsIG1h YywgRVRIX0FMRU4pOwotCi0JCXJjID0gdnhsYW5fZmRiX2FwcGVuZChmLCBpcCwgcG9ydCwgdm5p LCBpZmluZGV4LCAmcmQpOwotCQlpZiAocmMgPCAwKSB7Ci0JCQlrZnJlZShmKTsKKwkJcmMgPSB2 eGxhbl9mZGJfY3JlYXRlKHZ4bGFuLCBtYWMsIGlwLCBzdGF0ZSwgcG9ydCwgc3JjX3ZuaSwKKwkJ CQkgICAgICB2bmksIGlmaW5kZXgsIG5kbV9mbGFncywgJmYpOworCQlpZiAocmMgPCAwKQogCQkJ cmV0dXJuIHJjOwotCQl9Ci0KLQkJKyt2eGxhbi0+YWRkcmNudDsKLQkJaGxpc3RfYWRkX2hlYWRf cmN1KCZmLT5obGlzdCwKLQkJCQkgICB2eGxhbl9mZGJfaGVhZCh2eGxhbiwgbWFjLCBzcmNfdm5p KSk7CisJCW5vdGlmeSA9IDE7CiAJfQogCiAJaWYgKG5vdGlmeSkgewpAQCAtODYzLDcgKzg5Niw3 IEBAIHN0YXRpYyBpbnQgdnhsYW5fZmRiX2FkZChzdHJ1Y3QgbmRtc2cgKm5kbSwgc3RydWN0IG5s YXR0ciAqdGJbXSwKIAkJcmV0dXJuIC1FQUZOT1NVUFBPUlQ7CiAKIAlzcGluX2xvY2tfYmgoJnZ4 bGFuLT5oYXNoX2xvY2spOwotCWVyciA9IHZ4bGFuX2ZkYl9jcmVhdGUodnhsYW4sIGFkZHIsICZp cCwgbmRtLT5uZG1fc3RhdGUsIGZsYWdzLAorCWVyciA9IHZ4bGFuX2ZkYl91cGRhdGUodnhsYW4s IGFkZHIsICZpcCwgbmRtLT5uZG1fc3RhdGUsIGZsYWdzLAogCQkJICAgICAgIHBvcnQsIHNyY192 bmksIHZuaSwgaWZpbmRleCwgbmRtLT5uZG1fZmxhZ3MpOwogCXNwaW5fdW5sb2NrX2JoKCZ2eGxh bi0+aGFzaF9sb2NrKTsKIApAQCAtMTAwNiw3ICsxMDM5LDcgQEAgc3RhdGljIGJvb2wgdnhsYW5f c25vb3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAogCQkvKiBjbG9zZSBvZmYgcmFjZSBiZXR3 ZWVuIHZ4bGFuX2ZsdXNoIGFuZCBpbmNvbWluZyBwYWNrZXRzICovCiAJCWlmIChuZXRpZl9ydW5u aW5nKGRldikpCi0JCQl2eGxhbl9mZGJfY3JlYXRlKHZ4bGFuLCBzcmNfbWFjLCBzcmNfaXAsCisJ CQl2eGxhbl9mZGJfdXBkYXRlKHZ4bGFuLCBzcmNfbWFjLCBzcmNfaXAsCiAJCQkJCSBOVURfUkVB Q0hBQkxFLAogCQkJCQkgTkxNX0ZfRVhDTHxOTE1fRl9DUkVBVEUsCiAJCQkJCSB2eGxhbi0+Y2Zn LmRzdF9wb3J0LApAQCAtMzE2NSw3ICszMTk4LDcgQEAgc3RhdGljIGludCBfX3Z4bGFuX2Rldl9j cmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCiAJLyogY3Jl YXRlIGFuIGZkYiBlbnRyeSBmb3IgYSB2YWxpZCBkZWZhdWx0IGRlc3RpbmF0aW9uICovCiAJaWYg KCF2eGxhbl9hZGRyX2FueSgmdnhsYW4tPmRlZmF1bHRfZHN0LnJlbW90ZV9pcCkpIHsKLQkJZXJy ID0gdnhsYW5fZmRiX2NyZWF0ZSh2eGxhbiwgYWxsX3plcm9zX21hYywKKwkJZXJyID0gdnhsYW5f ZmRiX3VwZGF0ZSh2eGxhbiwgYWxsX3plcm9zX21hYywKIAkJCQkgICAgICAgJnZ4bGFuLT5kZWZh dWx0X2RzdC5yZW1vdGVfaXAsCiAJCQkJICAgICAgIE5VRF9SRUFDSEFCTEUgfCBOVURfUEVSTUFO RU5ULAogCQkJCSAgICAgICBOTE1fRl9FWENMIHwgTkxNX0ZfQ1JFQVRFLApAQCAtMzQzOSw3ICsz NDcyLDcgQEAgc3RhdGljIGludCB2eGxhbl9jaGFuZ2VsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsIHN0cnVjdCBubGF0dHIgKnRiW10sCiAJCQkJCSAgIG9sZF9kc3QucmVtb3RlX2lmaW5kZXgs IDApOwogCiAJCWlmICghdnhsYW5fYWRkcl9hbnkoJmRzdC0+cmVtb3RlX2lwKSkgewotCQkJZXJy ID0gdnhsYW5fZmRiX2NyZWF0ZSh2eGxhbiwgYWxsX3plcm9zX21hYywKKwkJCWVyciA9IHZ4bGFu X2ZkYl91cGRhdGUodnhsYW4sIGFsbF96ZXJvc19tYWMsCiAJCQkJCSAgICAgICAmZHN0LT5yZW1v dGVfaXAsCiAJCQkJCSAgICAgICBOVURfUkVBQ0hBQkxFIHwgTlVEX1BFUk1BTkVOVCwKIAkJCQkJ ICAgICAgIE5MTV9GX0NSRUFURSB8IE5MTV9GX0FQUEVORCwKLS0gCjIuMTcuMQoKCkZyb20gYzNl MjkzYzM2YWRlNjhiNDRlZGQ5Yjk0M2U5OTE4NTE2NzczMTZiOSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogUm9vcGEgUHJhYmh1IDxyb29wYUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRl OiBGcmksIDIwIEp1bCAyMDE4IDEzOjIxOjAzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyOC8zNF0g dnhsYW46IG1ha2UgbmV0bGluayBub3RpZnkgaW4gdnhsYW5fZmRiX2Rlc3Ryb3kKIG9wdGlvbmFs CgpbIFVwc3RyZWFtIGNvbW1pdCBmNmUwNTM4NTg2NzFiYjE1NmI2ZTQ0YWQ2NjQxOGFjYzhjN2Y0 ZTc3IF0KCkFkZCBhIG5ldyBvcHRpb24gZG9fbm90aWZ5IHRvIHZ4bGFuX2ZkYl9kZXN0cm95IHRv IG1ha2UKc2VuZGluZyBuZXRsaW5rIG5vdGlmeSBvcHRpb25hbC4gVXNlZCBieSBhIGxhdGVyIHBh dGNoLgoKU2lnbmVkLW9mZi1ieTogUm9vcGEgUHJhYmh1IDxyb29wYUBjdW11bHVzbmV0d29ya3Mu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyB8IDE0ICsrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgOCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3Z4bGFuLmMgYi9kcml2ZXJzL25ldC92eGxhbi5jCmluZGV4IDVhMjZiNjY4OTk5MC4u Y2RjN2IwMWQyMGNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92eGxhbi5jCisrKyBiL2RyaXZl cnMvbmV0L3Z4bGFuLmMKQEAgLTc3NCwxMyArNzc0LDE1IEBAIHN0YXRpYyB2b2lkIHZ4bGFuX2Zk Yl9mcmVlKHN0cnVjdCByY3VfaGVhZCAqaGVhZCkKIAlrZnJlZShmKTsKIH0KIAotc3RhdGljIHZv aWQgdnhsYW5fZmRiX2Rlc3Ryb3koc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sIHN0cnVjdCB2eGxh bl9mZGIgKmYpCitzdGF0aWMgdm9pZCB2eGxhbl9mZGJfZGVzdHJveShzdHJ1Y3QgdnhsYW5fZGV2 ICp2eGxhbiwgc3RydWN0IHZ4bGFuX2ZkYiAqZiwKKwkJCSAgICAgIGJvb2wgZG9fbm90aWZ5KQog ewogCW5ldGRldl9kYmcodnhsYW4tPmRldiwKIAkJICAgICJkZWxldGUgJXBNXG4iLCBmLT5ldGhf YWRkcik7CiAKIAktLXZ4bGFuLT5hZGRyY250OwotCXZ4bGFuX2ZkYl9ub3RpZnkodnhsYW4sIGYs IGZpcnN0X3JlbW90ZV9ydG5sKGYpLCBSVE1fREVMTkVJR0gpOworCWlmIChkb19ub3RpZnkpCisJ CXZ4bGFuX2ZkYl9ub3RpZnkodnhsYW4sIGYsIGZpcnN0X3JlbW90ZV9ydG5sKGYpLCBSVE1fREVM TkVJR0gpOwogCiAJaGxpc3RfZGVsX3JjdSgmZi0+aGxpc3QpOwogCWNhbGxfcmN1KCZmLT5yY3Us IHZ4bGFuX2ZkYl9mcmVlKTsKQEAgLTkzMCw3ICs5MzIsNyBAQCBzdGF0aWMgaW50IF9fdnhsYW5f ZmRiX2RlbGV0ZShzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbiwKIAkJZ290byBvdXQ7CiAJfQogCi0J dnhsYW5fZmRiX2Rlc3Ryb3kodnhsYW4sIGYpOworCXZ4bGFuX2ZkYl9kZXN0cm95KHZ4bGFuLCBm LCB0cnVlKTsKIAogb3V0OgogCXJldHVybiAwOwpAQCAtMjM5Myw3ICsyMzk1LDcgQEAgc3RhdGlj IHZvaWQgdnhsYW5fY2xlYW51cChzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKIAkJCQkJICAgImdhcmJh Z2UgY29sbGVjdCAlcE1cbiIsCiAJCQkJCSAgIGYtPmV0aF9hZGRyKTsKIAkJCQlmLT5zdGF0ZSA9 IE5VRF9TVEFMRTsKLQkJCQl2eGxhbl9mZGJfZGVzdHJveSh2eGxhbiwgZik7CisJCQkJdnhsYW5f ZmRiX2Rlc3Ryb3kodnhsYW4sIGYsIHRydWUpOwogCQkJfSBlbHNlIGlmICh0aW1lX2JlZm9yZSh0 aW1lb3V0LCBuZXh0X3RpbWVyKSkKIAkJCQluZXh0X3RpbWVyID0gdGltZW91dDsKIAkJfQpAQCAt MjQ0NCw3ICsyNDQ2LDcgQEAgc3RhdGljIHZvaWQgdnhsYW5fZmRiX2RlbGV0ZV9kZWZhdWx0KHN0 cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLCBfX2JlMzIgdm5pKQogCXNwaW5fbG9ja19iaCgmdnhsYW4t Pmhhc2hfbG9jayk7CiAJZiA9IF9fdnhsYW5fZmluZF9tYWModnhsYW4sIGFsbF96ZXJvc19tYWMs IHZuaSk7CiAJaWYgKGYpCi0JCXZ4bGFuX2ZkYl9kZXN0cm95KHZ4bGFuLCBmKTsKKwkJdnhsYW5f ZmRiX2Rlc3Ryb3kodnhsYW4sIGYsIHRydWUpOwogCXNwaW5fdW5sb2NrX2JoKCZ2eGxhbi0+aGFz aF9sb2NrKTsKIH0KIApAQCAtMjQ5OCw3ICsyNTAwLDcgQEAgc3RhdGljIHZvaWQgdnhsYW5fZmx1 c2goc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sIGJvb2wgZG9fYWxsKQogCQkJCWNvbnRpbnVlOwog CQkJLyogdGhlIGFsbF96ZXJvc19tYWMgZW50cnkgaXMgZGVsZXRlZCBhdCB2eGxhbl91bmluaXQg Ki8KIAkJCWlmICghaXNfemVyb19ldGhlcl9hZGRyKGYtPmV0aF9hZGRyKSkKLQkJCQl2eGxhbl9m ZGJfZGVzdHJveSh2eGxhbiwgZik7CisJCQkJdnhsYW5fZmRiX2Rlc3Ryb3kodnhsYW4sIGYsIHRy dWUpOwogCQl9CiAJfQogCXNwaW5fdW5sb2NrX2JoKCZ2eGxhbi0+aGFzaF9sb2NrKTsKLS0gCjIu MTcuMQoKCkZyb20gOTE1NDc4NzRkOGUzNDJhZDUwM2EzNDIyOTk2YjM0NTlkNGY1N2ZhZiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUm9vcGEgUHJhYmh1IDxyb29wYUBjdW11bHVzbmV0 d29ya3MuY29tPgpEYXRlOiBGcmksIDIwIEp1bCAyMDE4IDEzOjIxOjA0IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAyOS8zNF0gdnhsYW46IGZpeCBkZWZhdWx0IGZkYiBlbnRyeSBuZXRsaW5rIG5vdGlm eSBvcmRlcmluZwogZHVyaW5nIG5ldGRldiBjcmVhdGUKClsgVXBzdHJlYW0gY29tbWl0IGU5OTQ2 NWI5NTI4NjE1MzNkOWJhNzQ4ZmRiZWNjOTZkOWEzNmRhM2UgXQoKUHJvYmxlbToKSW4gdnhsYW5f bmV3bGluaywgYSBkZWZhdWx0IGZkYiBlbnRyeSBpcyBhZGRlZCBiZWZvcmUgcmVnaXN0ZXJfbmV0 ZGV2LgpUaGUgZGVmYXVsdCBmZGIgY3JlYXRpb24gZnVuY3Rpb24gYWxzbyBub3RpZmllcyB1c2Vy LXNwYWNlIG9mIHRoZQpmZGIgZW50cnkgb24gdGhlIHZ4bGFuIGRldmljZSB3aGljaCB1c2VyLXNw YWNlIGRvZXMgbm90IGtub3cgYWJvdXQgeWV0LgooUlRNX05FV05FSUdIIGdvZXMgYmVmb3JlIFJU TV9ORVdMSU5LIGZvciB0aGUgc2FtZSBpZmluZGV4KS4KClRoaXMgcGF0Y2ggZml4ZXMgdGhlIHVz ZXItc3BhY2UgbmV0bGluayBub3RpZmljYXRpb24gb3JkZXJpbmcgaXNzdWUKd2l0aCB0aGUgZm9s bG93aW5nIGNoYW5nZXM6Ci0gZGVjb3VwbGUgZmRiIG5vdGlmeSBmcm9tIGZkYiBjcmVhdGUuCi0g TW92ZSBmZGIgbm90aWZ5IGFmdGVyIHJlZ2lzdGVyX25ldGRldi4KLSBDYWxsIHJ0bmxfY29uZmln dXJlX2xpbmsgaW4gdnhsYW4gbmV3bGluayBoYW5kbGVyIHRvIG5vdGlmeQp1c2Vyc3BhY2UgYWJv dXQgdGhlIG5ld2xpbmsgYmVmb3JlIGZkYiBub3RpZnkgYW5kCmhlbmNlIGF2b2lkaW5nIHRoZSB1 c2VyLXNwYWNlIHJhY2UuCgpGaXhlczogYWZiZDhiYWU5Yzc5ICgidnhsYW46IGFkZCBpbXBsaWNp dCBmZGIgZW50cnkgZm9yIGRlZmF1bHQgZGVzdGluYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBSb29w YSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92eGxhbi5j IHwgMjkgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMSBp bnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Z4 bGFuLmMgYi9kcml2ZXJzL25ldC92eGxhbi5jCmluZGV4IGNkYzdiMDFkMjBjZS4uM2IwNTA4MTdi YmRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92eGxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3Z4 bGFuLmMKQEAgLTMxOTAsNiArMzE5MCw3IEBAIHN0YXRpYyBpbnQgX192eGxhbl9kZXZfY3JlYXRl KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIHsKIAlzdHJ1Y3Qgdnhs YW5fbmV0ICp2biA9IG5ldF9nZW5lcmljKG5ldCwgdnhsYW5fbmV0X2lkKTsKIAlzdHJ1Y3Qgdnhs YW5fZGV2ICp2eGxhbiA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IHZ4bGFuX2ZkYiAqZiA9 IE5VTEw7CiAJaW50IGVycjsKIAogCWVyciA9IHZ4bGFuX2Rldl9jb25maWd1cmUobmV0LCBkZXYs IGNvbmYsIGZhbHNlLCBleHRhY2spOwpAQCAtMzIwMCwyNyArMzIwMSwzOCBAQCBzdGF0aWMgaW50 IF9fdnhsYW5fZGV2X2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsCiAKIAkvKiBjcmVhdGUgYW4gZmRiIGVudHJ5IGZvciBhIHZhbGlkIGRlZmF1bHQgZGVzdGlu YXRpb24gKi8KIAlpZiAoIXZ4bGFuX2FkZHJfYW55KCZ2eGxhbi0+ZGVmYXVsdF9kc3QucmVtb3Rl X2lwKSkgewotCQllcnIgPSB2eGxhbl9mZGJfdXBkYXRlKHZ4bGFuLCBhbGxfemVyb3NfbWFjLAor CQllcnIgPSB2eGxhbl9mZGJfY3JlYXRlKHZ4bGFuLCBhbGxfemVyb3NfbWFjLAogCQkJCSAgICAg ICAmdnhsYW4tPmRlZmF1bHRfZHN0LnJlbW90ZV9pcCwKIAkJCQkgICAgICAgTlVEX1JFQUNIQUJM RSB8IE5VRF9QRVJNQU5FTlQsCi0JCQkJICAgICAgIE5MTV9GX0VYQ0wgfCBOTE1fRl9DUkVBVEUs CiAJCQkJICAgICAgIHZ4bGFuLT5jZmcuZHN0X3BvcnQsCiAJCQkJICAgICAgIHZ4bGFuLT5kZWZh dWx0X2RzdC5yZW1vdGVfdm5pLAogCQkJCSAgICAgICB2eGxhbi0+ZGVmYXVsdF9kc3QucmVtb3Rl X3ZuaSwKIAkJCQkgICAgICAgdnhsYW4tPmRlZmF1bHRfZHN0LnJlbW90ZV9pZmluZGV4LAotCQkJ CSAgICAgICBOVEZfU0VMRik7CisJCQkJICAgICAgIE5URl9TRUxGLCAmZik7CiAJCWlmIChlcnIp CiAJCQlyZXR1cm4gZXJyOwogCX0KIAogCWVyciA9IHJlZ2lzdGVyX25ldGRldmljZShkZXYpOwor CWlmIChlcnIpCisJCWdvdG8gZXJyb3V0OworCisJZXJyID0gcnRubF9jb25maWd1cmVfbGluayhk ZXYsIE5VTEwpOwogCWlmIChlcnIpIHsKLQkJdnhsYW5fZmRiX2RlbGV0ZV9kZWZhdWx0KHZ4bGFu LCB2eGxhbi0+ZGVmYXVsdF9kc3QucmVtb3RlX3ZuaSk7Ci0JCXJldHVybiBlcnI7CisJCXVucmVn aXN0ZXJfbmV0ZGV2aWNlKGRldik7CisJCWdvdG8gZXJyb3V0OwogCX0KIAorCS8qIG5vdGlmeSBk ZWZhdWx0IGZkYiBlbnRyeSAqLworCWlmIChmKQorCQl2eGxhbl9mZGJfbm90aWZ5KHZ4bGFuLCBm LCBmaXJzdF9yZW1vdGVfcnRubChmKSwgUlRNX05FV05FSUdIKTsKKwogCWxpc3RfYWRkKCZ2eGxh bi0+bmV4dCwgJnZuLT52eGxhbl9saXN0KTsKIAlyZXR1cm4gMDsKK2Vycm91dDoKKwlpZiAoZikK KwkJdnhsYW5fZmRiX2Rlc3Ryb3kodnhsYW4sIGYsIGZhbHNlKTsKKwlyZXR1cm4gZXJyOwogfQog CiBzdGF0aWMgaW50IHZ4bGFuX25sMmNvbmYoc3RydWN0IG5sYXR0ciAqdGJbXSwgc3RydWN0IG5s YXR0ciAqZGF0YVtdLApAQCAtMzQ0OSw2ICszNDYxLDcgQEAgc3RhdGljIGludCB2eGxhbl9jaGFu Z2VsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBubGF0dHIgKnRiW10sCiAJc3Ry dWN0IHZ4bGFuX3Jkc3QgKmRzdCA9ICZ2eGxhbi0+ZGVmYXVsdF9kc3Q7CiAJc3RydWN0IHZ4bGFu X3Jkc3Qgb2xkX2RzdDsKIAlzdHJ1Y3QgdnhsYW5fY29uZmlnIGNvbmY7CisJc3RydWN0IHZ4bGFu X2ZkYiAqZiA9IE5VTEw7CiAJaW50IGVycjsKIAogCWVyciA9IHZ4bGFuX25sMmNvbmYodGIsIGRh dGEsCkBAIC0zNDc0LDE5ICszNDg3LDE5IEBAIHN0YXRpYyBpbnQgdnhsYW5fY2hhbmdlbGluayhz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRyICp0YltdLAogCQkJCQkgICBvbGRf ZHN0LnJlbW90ZV9pZmluZGV4LCAwKTsKIAogCQlpZiAoIXZ4bGFuX2FkZHJfYW55KCZkc3QtPnJl bW90ZV9pcCkpIHsKLQkJCWVyciA9IHZ4bGFuX2ZkYl91cGRhdGUodnhsYW4sIGFsbF96ZXJvc19t YWMsCisJCQllcnIgPSB2eGxhbl9mZGJfY3JlYXRlKHZ4bGFuLCBhbGxfemVyb3NfbWFjLAogCQkJ CQkgICAgICAgJmRzdC0+cmVtb3RlX2lwLAogCQkJCQkgICAgICAgTlVEX1JFQUNIQUJMRSB8IE5V RF9QRVJNQU5FTlQsCi0JCQkJCSAgICAgICBOTE1fRl9DUkVBVEUgfCBOTE1fRl9BUFBFTkQsCiAJ CQkJCSAgICAgICB2eGxhbi0+Y2ZnLmRzdF9wb3J0LAogCQkJCQkgICAgICAgZHN0LT5yZW1vdGVf dm5pLAogCQkJCQkgICAgICAgZHN0LT5yZW1vdGVfdm5pLAogCQkJCQkgICAgICAgZHN0LT5yZW1v dGVfaWZpbmRleCwKLQkJCQkJICAgICAgIE5URl9TRUxGKTsKKwkJCQkJICAgICAgIE5URl9TRUxG LCAmZik7CiAJCQlpZiAoZXJyKSB7CiAJCQkJc3Bpbl91bmxvY2tfYmgoJnZ4bGFuLT5oYXNoX2xv Y2spOwogCQkJCXJldHVybiBlcnI7CiAJCQl9CisJCQl2eGxhbl9mZGJfbm90aWZ5KHZ4bGFuLCBm LCBmaXJzdF9yZW1vdGVfcnRubChmKSwgUlRNX05FV05FSUdIKTsKIAkJfQogCQlzcGluX3VubG9j a19iaCgmdnhsYW4tPmhhc2hfbG9jayk7CiAJfQotLSAKMi4xNy4xCgoKRnJvbSA1YTlmZTQ3OWZj NzgyNWUyNmQ3M2M4MTUyMmNjMTI3ODlhZjVkM2VkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMjMgSnVs IDIwMTggMDk6Mjg6MTcgLTA3MDAKU3ViamVjdDogW1BBVENIIDMwLzM0XSB0Y3A6IGZyZWUgYmF0 Y2hlcyBvZiBwYWNrZXRzIGluIHRjcF9wcnVuZV9vZm9fcXVldWUoKQoKWyBVcHN0cmVhbSBjb21t aXQgNzJjZDQzYmE2NGZjMTcyYTQ0MzQxMGNlMDE2NDU4OTU4NTA4NDRjOCBdCgpKdWhhLU1hdHRp IFRpbGxpIHJlcG9ydGVkIHRoYXQgbWFsaWNpb3VzIHBlZXJzIGNvdWxkIGluamVjdCB0aW55CnBh Y2tldHMgaW4gb3V0X29mX29yZGVyX3F1ZXVlLCBmb3JjaW5nIHZlcnkgZXhwZW5zaXZlIGNhbGxz CnRvIHRjcF9jb2xsYXBzZV9vZm9fcXVldWUoKSBhbmQgdGNwX3BydW5lX29mb19xdWV1ZSgpIGZv cgpldmVyeSBpbmNvbWluZyBwYWNrZXQuIG91dF9vZl9vcmRlcl9xdWV1ZSByYi10cmVlIGNhbiBj b250YWluCnRob3VzYW5kcyBvZiBub2RlcywgaXRlcmF0aW5nIG92ZXIgYWxsIG9mIHRoZW0gaXMg bm90IG5pY2UuCgpCZWZvcmUgbGludXgtNC45LCB3ZSB3b3VsZCBoYXZlIHBydW5lZCBhbGwgcGFj a2V0cyBpbiBvZm9fcXVldWUKaW4gb25lIGdvLCBldmVyeSBYWFhYIHBhY2tldHMuIFhYWFggZGVw ZW5kcyBvbiBza19yY3ZidWYgYW5kIHNrYnMKdHJ1ZXNpemUsIGJ1dCBpcyBhYm91dCA3MDAwIHBh Y2tldHMgd2l0aCB0Y3Bfcm1lbVsyXSBkZWZhdWx0IG9mIDYgTUIuCgpTaW5jZSB3ZSBwbGFuIHRv IGluY3JlYXNlIHRjcF9ybWVtWzJdIGluIHRoZSBmdXR1cmUgdG8gY29wZSB3aXRoCm1vZGVybiBC RFAsIGNhbiBub3QgcmV2ZXJ0IHRvIHRoZSBvbGQgYmVoYXZpb3IsIHdpdGhvdXQgZ3JlYXQgcGFp bi4KClN0cmF0ZWd5IHRha2VuIGluIHRoaXMgcGF0Y2ggaXMgdG8gcHVyZ2UgfjEyLjUgJSBvZiB0 aGUgcXVldWUgY2FwYWNpdHkuCgpGaXhlczogMzZhNjUwM2ZlZGRhICgidGNwOiByZWZpbmUgdGNw X3BydW5lX29mb19xdWV1ZSgpIHRvIG5vdCBkcm9wIGFsbCBwYWNrZXRzIikKU2lnbmVkLW9mZi1i eTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogSnVoYS1N YXR0aSBUaWxsaSA8anVoYS1tYXR0aS50aWxsaUBpa2kuZmk+CkFja2VkLWJ5OiBZdWNodW5nIENo ZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8 c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfaW5wdXQuYyB8IDE1ICsrKysrKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpp bmRleCBiYTM1OGI3MzY5YzQuLjY1MGJkMmU2YzYwZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNw X2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKQEAgLTQ4NzQsNiArNDg3NCw3IEBA IHN0YXRpYyB2b2lkIHRjcF9jb2xsYXBzZV9vZm9fcXVldWUoc3RydWN0IHNvY2sgKnNrKQogICog Mikgbm90IGFkZCB0b28gYmlnIGxhdGVuY2llcyBpZiB0aG91c2FuZHMgb2YgcGFja2V0cyBzaXQg dGhlcmUuCiAgKiAgICAoQnV0IGlmIGFwcGxpY2F0aW9uIHNocmlua3MgU09fUkNWQlVGLCB3ZSBj b3VsZCBzdGlsbCBlbmQgdXAKICAqICAgICBmcmVlaW5nIHdob2xlIHF1ZXVlIGhlcmUpCisgKiAz KSBEcm9wIGF0IGxlYXN0IDEyLjUgJSBvZiBza19yY3ZidWYgdG8gYXZvaWQgbWFsaWNpb3VzIGF0 dGFja3MuCiAgKgogICogUmV0dXJuIHRydWUgaWYgcXVldWUgaGFzIHNocnVuay4KICAqLwpAQCAt NDg4MSwyMCArNDg4MiwyNiBAQCBzdGF0aWMgYm9vbCB0Y3BfcHJ1bmVfb2ZvX3F1ZXVlKHN0cnVj dCBzb2NrICpzaykKIHsKIAlzdHJ1Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsKIAlzdHJ1 Y3QgcmJfbm9kZSAqbm9kZSwgKnByZXY7CisJaW50IGdvYWw7CiAKIAlpZiAoUkJfRU1QVFlfUk9P VCgmdHAtPm91dF9vZl9vcmRlcl9xdWV1ZSkpCiAJCXJldHVybiBmYWxzZTsKIAogCU5FVF9JTkNf U1RBVFMoc29ja19uZXQoc2spLCBMSU5VWF9NSUJfT0ZPUFJVTkVEKTsKKwlnb2FsID0gc2stPnNr X3JjdmJ1ZiA+PiAzOwogCW5vZGUgPSAmdHAtPm9vb19sYXN0X3NrYi0+cmJub2RlOwogCWRvIHsK IAkJcHJldiA9IHJiX3ByZXYobm9kZSk7CiAJCXJiX2VyYXNlKG5vZGUsICZ0cC0+b3V0X29mX29y ZGVyX3F1ZXVlKTsKKwkJZ29hbCAtPSByYl90b19za2Iobm9kZSktPnRydWVzaXplOwogCQl0Y3Bf ZHJvcChzaywgcmJfdG9fc2tiKG5vZGUpKTsKLQkJc2tfbWVtX3JlY2xhaW0oc2spOwotCQlpZiAo YXRvbWljX3JlYWQoJnNrLT5za19ybWVtX2FsbG9jKSA8PSBzay0+c2tfcmN2YnVmICYmCi0JCSAg ICAhdGNwX3VuZGVyX21lbW9yeV9wcmVzc3VyZShzaykpCi0JCQlicmVhazsKKwkJaWYgKCFwcmV2 IHx8IGdvYWwgPD0gMCkgeworCQkJc2tfbWVtX3JlY2xhaW0oc2spOworCQkJaWYgKGF0b21pY19y ZWFkKCZzay0+c2tfcm1lbV9hbGxvYykgPD0gc2stPnNrX3JjdmJ1ZiAmJgorCQkJICAgICF0Y3Bf dW5kZXJfbWVtb3J5X3ByZXNzdXJlKHNrKSkKKwkJCQlicmVhazsKKwkJCWdvYWwgPSBzay0+c2tf cmN2YnVmID4+IDM7CisJCX0KIAkJbm9kZSA9IHByZXY7CiAJfSB3aGlsZSAobm9kZSk7CiAJdHAt Pm9vb19sYXN0X3NrYiA9IHJiX3RvX3NrYihwcmV2KTsKLS0gCjIuMTcuMQoKCkZyb20gN2NjYTI4 OTYxOWIzZjMwNDQ5ZWE1MTJkOGMyZTNjNWM2YThhMTUxMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDIz IEp1bCAyMDE4IDA5OjI4OjE4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzMS8zNF0gdGNwOiBhdm9p ZCBjb2xsYXBzZXMgaW4gdGNwX3BydW5lX3F1ZXVlKCkgaWYgcG9zc2libGUKClsgVXBzdHJlYW0g Y29tbWl0IGY0YTMzMTNkOGUyY2E5ZmQ4ZDhmNDVlNDBhMjkwM2JhNzgyNjA3ZTcgXQoKUmlnaHQg YWZ0ZXIgYSBUQ1AgZmxvdyBpcyBjcmVhdGVkLCByZWNlaXZpbmcgdGlueSBvdXQgb2Ygb3JkZXIK cGFja2V0cyBhbGx3YXlzIGhpdCB0aGUgY29uZGl0aW9uIDoKCmlmIChhdG9taWNfcmVhZCgmc2st PnNrX3JtZW1fYWxsb2MpID49IHNrLT5za19yY3ZidWYpCgl0Y3BfY2xhbXBfd2luZG93KHNrKTsK CnRjcF9jbGFtcF93aW5kb3coKSBpbmNyZWFzZXMgc2tfcmN2YnVmIHRvIG1hdGNoIHNrX3JtZW1f YWxsb2MKKGd1YXJkZWQgYnkgdGNwX3JtZW1bMl0pCgpDYWxsaW5nIHRjcF9jb2xsYXBzZV9vZm9f cXVldWUoKSBpbiB0aGlzIGNhc2UgaXMgbm90IHVzZWZ1bCwKYW5kIG9mZmVycyBhIE8oTl4yKSBz dXJmYWNlIGF0dGFjayB0byBtYWxpY2lvdXMgcGVlcnMuCgpCZXR0ZXIgbm90IGF0dGVtcHQgYW55 dGhpbmcgYmVmb3JlIGZ1bGwgcXVldWUgY2FwYWNpdHkgaXMgcmVhY2hlZCwKZm9yY2luZyBhdHRh Y2tlciB0byBzcGVuZCBsb3RzIG9mIHJlc291cmNlIGFuZCBhbGxvdyB1cyB0byBtb3JlCmVhc2ls eSBkZXRlY3QgdGhlIGFidXNlLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpBY2tlZC1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29v Z2xlLmNvbT4KQWNrZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjQvdGNwX2lucHV0LmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0 LmMKaW5kZXggNjUwYmQyZTZjNjBmLi43MTlhMjBkYWVhNzggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L3RjcF9pbnB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC00OTM2LDYgKzQ5MzYs OSBAQCBzdGF0aWMgaW50IHRjcF9wcnVuZV9xdWV1ZShzdHJ1Y3Qgc29jayAqc2spCiAJZWxzZSBp ZiAodGNwX3VuZGVyX21lbW9yeV9wcmVzc3VyZShzaykpCiAJCXRwLT5yY3Zfc3N0aHJlc2ggPSBt aW4odHAtPnJjdl9zc3RocmVzaCwgNFUgKiB0cC0+YWR2bXNzKTsKIAorCWlmIChhdG9taWNfcmVh ZCgmc2stPnNrX3JtZW1fYWxsb2MpIDw9IHNrLT5za19yY3ZidWYpCisJCXJldHVybiAwOworCiAJ dGNwX2NvbGxhcHNlX29mb19xdWV1ZShzayk7CiAJaWYgKCFza2JfcXVldWVfZW1wdHkoJnNrLT5z a19yZWNlaXZlX3F1ZXVlKSkKIAkJdGNwX2NvbGxhcHNlKHNrLCAmc2stPnNrX3JlY2VpdmVfcXVl dWUsIE5VTEwsCi0tIAoyLjE3LjEKCgpGcm9tIGNmNjBmOTEyNTg2MjE3ZTUzMjJhNDdkYmRlZDE5 MjU3YzdlZjZmNTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCAyMyBKdWwgMjAxOCAwOToyODoxOSAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMzIvMzRdIHRjcDogZGV0ZWN0IG1hbGljaW91cyBwYXR0ZXJucyBp bgogdGNwX2NvbGxhcHNlX29mb19xdWV1ZSgpCgpbIFVwc3RyZWFtIGNvbW1pdCAzZDRiZjkzYWMx MjAwM2Y5YjhlMWUyZGUzN2ZlMjc5ODNkZWViZGNmIF0KCkluIGNhc2UgYW4gYXR0YWNrZXIgZmVl ZHMgdGlueSBwYWNrZXRzIGNvbXBsZXRlbHkgb3V0IG9mIG9yZGVyLAp0Y3BfY29sbGFwc2Vfb2Zv X3F1ZXVlKCkgbWlnaHQgc2NhbiB0aGUgd2hvbGUgcmItdHJlZSwgcGVyZm9ybWluZwpleHBlbnNp dmUgY29waWVzLCBidXQgbm90IGNoYW5naW5nIHNvY2tldCBtZW1vcnkgdXNhZ2UgYXQgYWxsLgoK MSkgRG8gbm90IGF0dGVtcHQgdG8gY29sbGFwc2UgdGlueSBza2JzLgoyKSBBZGQgbG9naWMgdG8g ZXhpdCBlYXJseSB3aGVuIHRvbyBtYW55IHRpbnkgc2ticyBhcmUgZGV0ZWN0ZWQuCgpXZSBwcmVm ZXIgbm90IGRvaW5nIGFnZ3Jlc3NpdmUgY29sbGFwc2luZyAod2hpY2ggY29waWVzIHBhY2tldHMp CmZvciBwYXRob2xvZ2ljYWwgZmxvd3MsIGFuZCByZXZlcnQgdG8gdGNwX3BydW5lX29mb19xdWV1 ZSgpIHdoaWNoCndpbGwgYmUgbGVzcyBleHBlbnNpdmUuCgpJbiB0aGUgZnV0dXJlLCB3ZSBtaWdo dCBhZGQgdGhlIHBvc3NpYmlsaXR5IG9mIHRlcm1pbmF0aW5nIGZsb3dzCnRoYXQgYXJlIHByb3Zl biB0byBiZSBtYWxpY2lvdXMuCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2lucHV0LmMgfCAxNSArKysrKysrKysrKysrLS0KIDEgZmls ZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9pcHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXggNzE5YTIw ZGFlYTc4Li4wOGIzOWJiOTIwOTUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pbnB1dC5jCisr KyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC00ODM0LDYgKzQ4MzQsNyBAQCB0Y3BfY29sbGFw c2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LCBzdHJ1Y3QgcmJf cm9vdCAqcm9vdCwKIHN0YXRpYyB2b2lkIHRjcF9jb2xsYXBzZV9vZm9fcXVldWUoc3RydWN0IHNv Y2sgKnNrKQogewogCXN0cnVjdCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOworCXUzMiByYW5n ZV90cnVlc2l6ZSwgc3VtX3RpbnkgPSAwOwogCXN0cnVjdCBza19idWZmICpza2IsICpoZWFkOwog CXUzMiBzdGFydCwgZW5kOwogCkBAIC00ODQ1LDYgKzQ4NDYsNyBAQCBzdGF0aWMgdm9pZCB0Y3Bf Y29sbGFwc2Vfb2ZvX3F1ZXVlKHN0cnVjdCBzb2NrICpzaykKIAl9CiAJc3RhcnQgPSBUQ1BfU0tC X0NCKHNrYiktPnNlcTsKIAllbmQgPSBUQ1BfU0tCX0NCKHNrYiktPmVuZF9zZXE7CisJcmFuZ2Vf dHJ1ZXNpemUgPSBza2ItPnRydWVzaXplOwogCiAJZm9yIChoZWFkID0gc2tiOzspIHsKIAkJc2ti ID0gc2tiX3JiX25leHQoc2tiKTsKQEAgLTQ4NTUsMTEgKzQ4NTcsMjAgQEAgc3RhdGljIHZvaWQg dGNwX2NvbGxhcHNlX29mb19xdWV1ZShzdHJ1Y3Qgc29jayAqc2spCiAJCWlmICghc2tiIHx8CiAJ CSAgICBhZnRlcihUQ1BfU0tCX0NCKHNrYiktPnNlcSwgZW5kKSB8fAogCQkgICAgYmVmb3JlKFRD UF9TS0JfQ0Ioc2tiKS0+ZW5kX3NlcSwgc3RhcnQpKSB7Ci0JCQl0Y3BfY29sbGFwc2Uoc2ssIE5V TEwsICZ0cC0+b3V0X29mX29yZGVyX3F1ZXVlLAotCQkJCSAgICAgaGVhZCwgc2tiLCBzdGFydCwg ZW5kKTsKKwkJCS8qIERvIG5vdCBhdHRlbXB0IGNvbGxhcHNpbmcgdGlueSBza2JzICovCisJCQlp ZiAocmFuZ2VfdHJ1ZXNpemUgIT0gaGVhZC0+dHJ1ZXNpemUgfHwKKwkJCSAgICBlbmQgLSBzdGFy dCA+PSBTS0JfV0lUSF9PVkVSSEVBRChTS19NRU1fUVVBTlRVTSkpIHsKKwkJCQl0Y3BfY29sbGFw c2Uoc2ssIE5VTEwsICZ0cC0+b3V0X29mX29yZGVyX3F1ZXVlLAorCQkJCQkgICAgIGhlYWQsIHNr Yiwgc3RhcnQsIGVuZCk7CisJCQl9IGVsc2UgeworCQkJCXN1bV90aW55ICs9IHJhbmdlX3RydWVz aXplOworCQkJCWlmIChzdW1fdGlueSA+IHNrLT5za19yY3ZidWYgPj4gMykKKwkJCQkJcmV0dXJu OworCQkJfQogCQkJZ290byBuZXdfcmFuZ2U7CiAJCX0KIAorCQlyYW5nZV90cnVlc2l6ZSArPSBz a2ItPnRydWVzaXplOwogCQlpZiAodW5saWtlbHkoYmVmb3JlKFRDUF9TS0JfQ0Ioc2tiKS0+c2Vx LCBzdGFydCkpKQogCQkJc3RhcnQgPSBUQ1BfU0tCX0NCKHNrYiktPnNlcTsKIAkJaWYgKGFmdGVy KFRDUF9TS0JfQ0Ioc2tiKS0+ZW5kX3NlcSwgZW5kKSkKLS0gCjIuMTcuMQoKCkZyb20gMjYxNTdm NjcxMjg2YzUwODdmYjQyOTkyMGNkNGFkYzgzYTgwYWVmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDIz IEp1bCAyMDE4IDA5OjI4OjIwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzMy8zNF0gdGNwOiBjYWxs IHRjcF9kcm9wKCkgZnJvbSB0Y3BfZGF0YV9xdWV1ZV9vZm8oKQoKWyBVcHN0cmVhbSBjb21taXQg ODU0MWIyMWU3ODFhMjJkY2U1MmE3NGZlZjBiOWJlZDAwNDA0YTFjZCBdCgpJbiBvcmRlciB0byBi ZSBhYmxlIHRvIGdpdmUgYmV0dGVyIGRpYWdub3N0aWNzIGFuZCBkZXRlY3QKbWFsaWNpb3VzIHRy YWZmaWMsIHdlIG5lZWQgdG8gaGF2ZSBiZXR0ZXIgc2stPnNrX2Ryb3BzIHRyYWNraW5nLgoKRml4 ZXM6IDlmNWFmZWFlNTE1MiAoInRjcDogdXNlIGFuIFJCIHRyZWUgZm9yIG9vbyByZWNlaXZlIHF1 ZXVlIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpB Y2tlZC1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4KQWNrZWQt Ynk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2lucHV0 LmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2NC90Y3BfaW5w dXQuYwppbmRleCAwOGIzOWJiOTIwOTUuLmNjOWM2N2RmM2Y3NCAxMDA2NDQKLS0tIGEvbmV0L2lw djQvdGNwX2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKQEAgLTQ0NTEsNyArNDQ1 MSw3IEBAIHN0YXRpYyB2b2lkIHRjcF9kYXRhX3F1ZXVlX29mbyhzdHJ1Y3Qgc29jayAqc2ssIHN0 cnVjdCBza19idWZmICpza2IpCiAJCQkJLyogQWxsIHRoZSBiaXRzIGFyZSBwcmVzZW50LiBEcm9w LiAqLwogCQkJCU5FVF9JTkNfU1RBVFMoc29ja19uZXQoc2spLAogCQkJCQkgICAgICBMSU5VWF9N SUJfVENQT0ZPTUVSR0UpOwotCQkJCV9fa2ZyZWVfc2tiKHNrYik7CisJCQkJdGNwX2Ryb3Aoc2ss IHNrYik7CiAJCQkJc2tiID0gTlVMTDsKIAkJCQl0Y3BfZHNhY2tfc2V0KHNrLCBzZXEsIGVuZF9z ZXEpOwogCQkJCWdvdG8gYWRkX3NhY2s7CkBAIC00NDcwLDcgKzQ0NzAsNyBAQCBzdGF0aWMgdm9p ZCB0Y3BfZGF0YV9xdWV1ZV9vZm8oc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogCQkJCQkJIFRDUF9TS0JfQ0Ioc2tiMSktPmVuZF9zZXEpOwogCQkJCU5FVF9JTkNfU1RBVFMo c29ja19uZXQoc2spLAogCQkJCQkgICAgICBMSU5VWF9NSUJfVENQT0ZPTUVSR0UpOwotCQkJCV9f a2ZyZWVfc2tiKHNrYjEpOworCQkJCXRjcF9kcm9wKHNrLCBza2IxKTsKIAkJCQlnb3RvIG1lcmdl X3JpZ2h0OwogCQkJfQogCQl9IGVsc2UgaWYgKHRjcF90cnlfY29hbGVzY2Uoc2ssIHNrYjEsCi0t IAoyLjE3LjEKCgpGcm9tIGIwYjU4NzQ2NGEyMGIzM2E4NmU0YTU1ODgzYzk4MThlYmU0YWIzYWIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KRGF0ZTogTW9uLCAyMyBKdWwgMjAxOCAwOToyODoyMSAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMzQvMzRdIHRjcDogYWRkIHRjcF9vb29fdHJ5X2NvYWxlc2NlKCkgaGVscGVyCgpbIFVw c3RyZWFtIGNvbW1pdCA1ODE1MmVjYmJjYzZhMGNlN2ZkZGQ1YmY1ZjZlZTUzNTgzNGVjZTBjIF0K CkluIGNhc2Ugc2tiIGluIG91dF9vcl9vcmRlcl9xdWV1ZSBpcyB0aGUgcmVzdWx0IG9mCm11bHRp cGxlIHNrYnMgY29hbGVzY2luZywgd2Ugd291bGQgbGlrZSB0byBnZXQgYSBwcm9wZXIgZ3NvX3Nl Z3MKY291bnRlciB0cmFja2luZywgc28gdGhhdCBmdXR1cmUgdGNwX2Ryb3AoKSBjYW4gcmVwb3J0 IGFuIGFjY3VyYXRlCm51bWJlci4KCkkgY2hvc2UgdG8gbm90IGltcGxlbWVudCB0aGlzIHRyYWNr aW5nIGZvciBza2JzIGluIHJlY2VpdmUgcXVldWUsCnNpbmNlIHRoZXkgYXJlIG5vdCBkcm9wcGVk LCB1bmxlc3Mgc29ja2V0IGlzIGRpc2Nvbm5lY3RlZC4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5l aCA8c29oZWlsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9pcHY0L3RjcF9pbnB1dC5jIHwgMjUgKysrKysrKysrKysrKysrKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpp bmRleCBjYzljNjdkZjNmNzQuLjBmNWU5NTEwYzNmYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNw X2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKQEAgLTQyOTksNiArNDI5OSwyMyBA QCBzdGF0aWMgYm9vbCB0Y3BfdHJ5X2NvYWxlc2NlKHN0cnVjdCBzb2NrICpzaywKIAlyZXR1cm4g dHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgdGNwX29vb190cnlfY29hbGVzY2Uoc3RydWN0IHNvY2sg KnNrLAorCQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAqdG8sCisJCQkgICAgIHN0cnVjdCBza19idWZm ICpmcm9tLAorCQkJICAgICBib29sICpmcmFnc3RvbGVuKQoreworCWJvb2wgcmVzID0gdGNwX3Ry eV9jb2FsZXNjZShzaywgdG8sIGZyb20sIGZyYWdzdG9sZW4pOworCisJLyogSW4gY2FzZSB0Y3Bf ZHJvcCgpIGlzIGNhbGxlZCBsYXRlciwgdXBkYXRlIHRvLT5nc29fc2VncyAqLworCWlmIChyZXMp IHsKKwkJdTMyIGdzb19zZWdzID0gbWF4X3QodTE2LCAxLCBza2Jfc2hpbmZvKHRvKS0+Z3NvX3Nl Z3MpICsKKwkJCSAgICAgICBtYXhfdCh1MTYsIDEsIHNrYl9zaGluZm8oZnJvbSktPmdzb19zZWdz KTsKKworCQlza2Jfc2hpbmZvKHRvKS0+Z3NvX3NlZ3MgPSBtaW5fdCh1MzIsIGdzb19zZWdzLCAw eEZGRkYpOworCX0KKwlyZXR1cm4gcmVzOworfQorCiBzdGF0aWMgdm9pZCB0Y3BfZHJvcChzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc2tfZHJvcHNfYWRkKHNrLCBz a2IpOwpAQCAtNDQyMiw4ICs0NDM5LDggQEAgc3RhdGljIHZvaWQgdGNwX2RhdGFfcXVldWVfb2Zv KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkvKiBJbiB0aGUgdHlwaWNh bCBjYXNlLCB3ZSBhcmUgYWRkaW5nIGFuIHNrYiB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LgogCSAq IFVzZSBvZiBvb29fbGFzdF9za2IgYXZvaWRzIHRoZSBPKExvZyhOKSkgcmJ0cmVlIGxvb2t1cC4K IAkgKi8KLQlpZiAodGNwX3RyeV9jb2FsZXNjZShzaywgdHAtPm9vb19sYXN0X3NrYiwKLQkJCSAg ICAgc2tiLCAmZnJhZ3N0b2xlbikpIHsKKwlpZiAodGNwX29vb190cnlfY29hbGVzY2Uoc2ssIHRw LT5vb29fbGFzdF9za2IsCisJCQkJIHNrYiwgJmZyYWdzdG9sZW4pKSB7CiBjb2FsZXNjZV9kb25l OgogCQl0Y3BfZ3Jvd193aW5kb3coc2ssIHNrYik7CiAJCWtmcmVlX3NrYl9wYXJ0aWFsKHNrYiwg ZnJhZ3N0b2xlbik7CkBAIC00NDczLDggKzQ0OTAsOCBAQCBzdGF0aWMgdm9pZCB0Y3BfZGF0YV9x dWV1ZV9vZm8oc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJCXRjcF9k cm9wKHNrLCBza2IxKTsKIAkJCQlnb3RvIG1lcmdlX3JpZ2h0OwogCQkJfQotCQl9IGVsc2UgaWYg KHRjcF90cnlfY29hbGVzY2Uoc2ssIHNrYjEsCi0JCQkJCSAgICBza2IsICZmcmFnc3RvbGVuKSkg eworCQl9IGVsc2UgaWYgKHRjcF9vb29fdHJ5X2NvYWxlc2NlKHNrLCBza2IxLAorCQkJCQkJc2ti LCAmZnJhZ3N0b2xlbikpIHsKIAkJCWdvdG8gY29hbGVzY2VfZG9uZTsKIAkJfQogCQlwID0gJnBh cmVudC0+cmJfcmlnaHQ7Ci0tIAoyLjE3LjEKCg== ----Next_Part(Thu_Jul_26_16_50_51_2018_532)----