From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751643AbaHDRWP (ORCPT ); Mon, 4 Aug 2014 13:22:15 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:57055 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750896AbaHDRWM (ORCPT ); Mon, 4 Aug 2014 13:22:12 -0400 Message-ID: <1407172912.8341.20.camel@deadeye.wl.decadent.org.uk> Subject: Re: [PATCH 3.2 00/94] 3.2.62-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, Satoru Takeuchi , Guenter Roeck , akpm@linux-foundation.org Date: Mon, 04 Aug 2014 18:21:52 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-hA05s+u3rAvXFjAawNk7" X-Mailer: Evolution 3.12.2-1+b1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.249 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-hA05s+u3rAvXFjAawNk7 Content-Type: multipart/mixed; boundary="=-0l4y9XJZwvRTEWiSpV8w" --=-0l4y9XJZwvRTEWiSpV8w Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.62-rc1 relative to 3.2.61. Ben. --=20 Ben Hutchings Tomorrow will be cancelled due to lack of interest. --=-0l4y9XJZwvRTEWiSpV8w Content-Disposition: attachment; filename="linux-3.2.62-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.62-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUNCmluZGV4IGY4YjY0MmQuLjMzM2FhYmYg MTAwNjQ0DQotLS0gYS9NYWtlZmlsZQ0KKysrIGIvTWFrZWZpbGUNCkBAIC0xLDcgKzEsNyBAQA0K IFZFUlNJT04gPSAzDQogUEFUQ0hMRVZFTCA9IDINCi1TVUJMRVZFTCA9IDYxDQotRVhUUkFWRVJT SU9OID0NCitTVUJMRVZFTCA9IDYyDQorRVhUUkFWRVJTSU9OID0gLXJjMQ0KIE5BTUUgPSBTYWJl ci10b290aGVkIFNxdWlycmVsDQogDQogIyAqRE9DVU1FTlRBVElPTioNCmRpZmYgLS1naXQgYS9h cmNoL2FscGhhL2luY2x1ZGUvYXNtL2lvLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2lvLmgN CmluZGV4IDU2ZmY5NjUuLjYzNjVlZjIgMTAwNjQ0DQotLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUv YXNtL2lvLmgNCisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vaW8uaA0KQEAgLTQ5MCw2ICs0 OTAsMTEgQEAgZXh0ZXJuIGlubGluZSB2b2lkIHdyaXRlcSh1NjQgYiwgdm9sYXRpbGUgdm9pZCBf X2lvbWVtICphZGRyKQ0KIH0NCiAjZW5kaWYNCiANCisjZGVmaW5lIGlvcmVhZDE2YmUocCkgYmUx Nl90b19jcHUoaW9yZWFkMTYocCkpDQorI2RlZmluZSBpb3JlYWQzMmJlKHApIGJlMzJfdG9fY3B1 KGlvcmVhZDMyKHApKQ0KKyNkZWZpbmUgaW93cml0ZTE2YmUodixwKSBpb3dyaXRlMTYoY3B1X3Rv X2JlMTYodiksIChwKSkNCisjZGVmaW5lIGlvd3JpdGUzMmJlKHYscCkgaW93cml0ZTMyKGNwdV90 b19iZTMyKHYpLCAocCkpDQorDQogI2RlZmluZSBpbmJfcAkJaW5iDQogI2RlZmluZSBpbndfcAkJ aW53DQogI2RlZmluZSBpbmxfcAkJaW5sDQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vS2NvbmZpZyBi L2FyY2gvYXJtL0tjb25maWcNCmluZGV4IDc5MGVhNjguLjA4MmJkMzYgMTAwNjQ0DQotLS0gYS9h cmNoL2FybS9LY29uZmlnDQorKysgYi9hcmNoL2FybS9LY29uZmlnDQpAQCAtMSw2ICsxLDcgQEAN CiBjb25maWcgQVJNDQogCWJvb2wNCiAJZGVmYXVsdCB5DQorCXNlbGVjdCBBUkNIX1NVUFBPUlRT X0FUT01JQ19STVcNCiAJc2VsZWN0IEhBVkVfRE1BX0FQSV9ERUJVRw0KIAlzZWxlY3QgSEFWRV9J REUgaWYgUENJIHx8IElTQSB8fCBQQ01DSUENCiAJc2VsZWN0IEhBVkVfTUVNQkxPQ0sNCmRpZmYg LS1naXQgYS9hcmNoL2FybS9saWIvbWVtc2V0LlMgYi9hcmNoL2FybS9saWIvbWVtc2V0LlMNCmlu ZGV4IDY1MGQ1OTIzLi45NGIwNjUwIDEwMDY0NA0KLS0tIGEvYXJjaC9hcm0vbGliL21lbXNldC5T DQorKysgYi9hcmNoL2FybS9saWIvbWVtc2V0LlMNCkBAIC0xNCwyNyArMTQsMTUgQEANCiANCiAJ LnRleHQNCiAJLmFsaWduCTUNCi0JLndvcmQJMA0KLQ0KLTE6CXN1YnMJcjIsIHIyLCAjNAkJQCAx IGRvIHdlIGhhdmUgZW5vdWdoDQotCWJsdAk1ZgkJCUAgMSBieXRlcyB0byBhbGlnbiB3aXRoPw0K LQljbXAJcjMsICMyCQkJQCAxDQotCXN0cmx0YglyMSwgW3IwXSwgIzEJCUAgMQ0KLQlzdHJsZWIJ cjEsIFtyMF0sICMxCQlAIDENCi0Jc3RyYglyMSwgW3IwXSwgIzEJCUAgMQ0KLQlhZGQJcjIsIHIy LCByMwkJQCAxIChyMiA9IHIyIC0gKDQgLSByMykpDQotLyoNCi0gKiBUaGUgcG9pbnRlciBpcyBu b3cgYWxpZ25lZCBhbmQgdGhlIGxlbmd0aCBpcyBhZGp1c3RlZC4gIFRyeSBkb2luZyB0aGUNCi0g KiBtZW1zZXQgYWdhaW4uDQotICovDQogDQogRU5UUlkobWVtc2V0KQ0KIAlhbmRzCXIzLCByMCwg IzMJCUAgMSB1bmFsaWduZWQ/DQotCWJuZQkxYgkJCUAgMQ0KKwltb3YJaXAsIHIwCQkJQCBwcmVz ZXJ2ZSByMCBhcyByZXR1cm4gdmFsdWUNCisJYm5lCTZmCQkJQCAxDQogLyoNCi0gKiB3ZSBrbm93 IHRoYXQgdGhlIHBvaW50ZXIgaW4gcjAgaXMgYWxpZ25lZCB0byBhIHdvcmQgYm91bmRhcnkuDQor ICogd2Uga25vdyB0aGF0IHRoZSBwb2ludGVyIGluIGlwIGlzIGFsaWduZWQgdG8gYSB3b3JkIGJv dW5kYXJ5Lg0KICAqLw0KLQlvcnIJcjEsIHIxLCByMSwgbHNsICM4DQorMToJb3JyCXIxLCByMSwg cjEsIGxzbCAjOA0KIAlvcnIJcjEsIHIxLCByMSwgbHNsICMxNg0KIAltb3YJcjMsIHIxDQogCWNt cAlyMiwgIzE2DQpAQCAtNDMsMjkgKzMxLDI4IEBAIEVOVFJZKG1lbXNldCkNCiAjaWYgISBDQUxH TigxKSswDQogDQogLyoNCi0gKiBXZSBuZWVkIGFuIGV4dHJhIHJlZ2lzdGVyIGZvciB0aGlzIGxv b3AgLSBzYXZlIHRoZSByZXR1cm4gYWRkcmVzcyBhbmQNCi0gKiB1c2UgdGhlIExSDQorICogV2Ug bmVlZCAyIGV4dHJhIHJlZ2lzdGVycyBmb3IgdGhpcyBsb29wIC0gdXNlIHI4IGFuZCB0aGUgTFIN CiAgKi8NCi0Jc3RyCWxyLCBbc3AsICMtNF0hDQotCW1vdglpcCwgcjENCisJc3RtZmQJc3AhLCB7 cjgsIGxyfQ0KKwltb3YJcjgsIHIxDQogCW1vdglsciwgcjENCiANCiAyOglzdWJzCXIyLCByMiwg IzY0DQotCXN0bWdlaWEJcjAhLCB7cjEsIHIzLCBpcCwgbHJ9CUAgNjQgYnl0ZXMgYXQgYSB0aW1l Lg0KLQlzdG1nZWlhCXIwISwge3IxLCByMywgaXAsIGxyfQ0KLQlzdG1nZWlhCXIwISwge3IxLCBy MywgaXAsIGxyfQ0KLQlzdG1nZWlhCXIwISwge3IxLCByMywgaXAsIGxyfQ0KKwlzdG1nZWlhCWlw ISwge3IxLCByMywgcjgsIGxyfQlAIDY0IGJ5dGVzIGF0IGEgdGltZS4NCisJc3RtZ2VpYQlpcCEs IHtyMSwgcjMsIHI4LCBscn0NCisJc3RtZ2VpYQlpcCEsIHtyMSwgcjMsIHI4LCBscn0NCisJc3Rt Z2VpYQlpcCEsIHtyMSwgcjMsIHI4LCBscn0NCiAJYmd0CTJiDQotCWxkbWVxZmQJc3AhLCB7cGN9 CQlAIE5vdyA8NjQgYnl0ZXMgdG8gZ28uDQorCWxkbWVxZmQJc3AhLCB7cjgsIHBjfQkJQCBOb3cg PDY0IGJ5dGVzIHRvIGdvLg0KIC8qDQogICogTm8gbmVlZCB0byBjb3JyZWN0IHRoZSBjb3VudDsg d2UncmUgb25seSB0ZXN0aW5nIGJpdHMgZnJvbSBub3cgb24NCiAgKi8NCiAJdHN0CXIyLCAjMzIN Ci0Jc3RtbmVpYQlyMCEsIHtyMSwgcjMsIGlwLCBscn0NCi0Jc3RtbmVpYQlyMCEsIHtyMSwgcjMs IGlwLCBscn0NCisJc3RtbmVpYQlpcCEsIHtyMSwgcjMsIHI4LCBscn0NCisJc3RtbmVpYQlpcCEs IHtyMSwgcjMsIHI4LCBscn0NCiAJdHN0CXIyLCAjMTYNCi0Jc3RtbmVpYQlyMCEsIHtyMSwgcjMs IGlwLCBscn0NCi0JbGRyCWxyLCBbc3BdLCAjNA0KKwlzdG1uZWlhCWlwISwge3IxLCByMywgcjgs IGxyfQ0KKwlsZG1mZAlzcCEsIHtyOCwgbHJ9DQogDQogI2Vsc2UNCiANCkBAIC03NCw1NCArNjEs NjMgQEAgRU5UUlkobWVtc2V0KQ0KICAqIHdob2xlIGNhY2hlIGxpbmVzIGF0IG9uY2UuDQogICov DQogDQotCXN0bWZkCXNwISwge3I0LXI3LCBscn0NCisJc3RtZmQJc3AhLCB7cjQtcjgsIGxyfQ0K IAltb3YJcjQsIHIxDQogCW1vdglyNSwgcjENCiAJbW92CXI2LCByMQ0KIAltb3YJcjcsIHIxDQot CW1vdglpcCwgcjENCisJbW92CXI4LCByMQ0KIAltb3YJbHIsIHIxDQogDQogCWNtcAlyMiwgIzk2 DQotCXRzdGd0CXIwLCAjMzENCisJdHN0Z3QJaXAsICMzMQ0KIAlibGUJM2YNCiANCi0JYW5kCWlw LCByMCwgIzMxDQotCXJzYglpcCwgaXAsICMzMg0KLQlzdWIJcjIsIHIyLCBpcA0KLQltb3ZzCWlw LCBpcCwgbHNsICMoMzIgLSA0KQ0KLQlzdG1jc2lhCXIwISwge3I0LCByNSwgcjYsIHI3fQ0KLQlz dG1taWlhCXIwISwge3I0LCByNX0NCi0JdHN0CWlwLCAjKDEgPDwgMzApDQotCW1vdglpcCwgcjEN Ci0Jc3RybmUJcjEsIFtyMF0sICM0DQorCWFuZAlyOCwgaXAsICMzMQ0KKwlyc2IJcjgsIHI4LCAj MzINCisJc3ViCXIyLCByMiwgcjgNCisJbW92cwlyOCwgcjgsIGxzbCAjKDMyIC0gNCkNCisJc3Rt Y3NpYQlpcCEsIHtyNCwgcjUsIHI2LCByN30NCisJc3RtbWlpYQlpcCEsIHtyNCwgcjV9DQorCXRz dAlyOCwgIygxIDw8IDMwKQ0KKwltb3YJcjgsIHIxDQorCXN0cm5lCXIxLCBbaXBdLCAjNA0KIA0K IDM6CXN1YnMJcjIsIHIyLCAjNjQNCi0Jc3RtZ2VpYQlyMCEsIHtyMSwgcjMtcjcsIGlwLCBscn0N Ci0Jc3RtZ2VpYQlyMCEsIHtyMSwgcjMtcjcsIGlwLCBscn0NCisJc3RtZ2VpYQlpcCEsIHtyMSwg cjMtcjgsIGxyfQ0KKwlzdG1nZWlhCWlwISwge3IxLCByMy1yOCwgbHJ9DQogCWJndAkzYg0KLQls ZG1lcWZkCXNwISwge3I0LXI3LCBwY30NCisJbGRtZXFmZAlzcCEsIHtyNC1yOCwgcGN9DQogDQog CXRzdAlyMiwgIzMyDQotCXN0bW5laWEJcjAhLCB7cjEsIHIzLXI3LCBpcCwgbHJ9DQorCXN0bW5l aWEJaXAhLCB7cjEsIHIzLXI4LCBscn0NCiAJdHN0CXIyLCAjMTYNCi0Jc3RtbmVpYQlyMCEsIHty NC1yN30NCi0JbGRtZmQJc3AhLCB7cjQtcjcsIGxyfQ0KKwlzdG1uZWlhCWlwISwge3I0LXI3fQ0K KwlsZG1mZAlzcCEsIHtyNC1yOCwgbHJ9DQogDQogI2VuZGlmDQogDQogNDoJdHN0CXIyLCAjOA0K LQlzdG1uZWlhCXIwISwge3IxLCByM30NCisJc3RtbmVpYQlpcCEsIHtyMSwgcjN9DQogCXRzdAly MiwgIzQNCi0Jc3RybmUJcjEsIFtyMF0sICM0DQorCXN0cm5lCXIxLCBbaXBdLCAjNA0KIC8qDQog ICogV2hlbiB3ZSBnZXQgaGVyZSwgd2UndmUgZ290IGxlc3MgdGhhbiA0IGJ5dGVzIHRvIHplcm8u ICBXZQ0KICAqIG1heSBoYXZlIGFuIHVuYWxpZ25lZCBwb2ludGVyIGFzIHdlbGwuDQogICovDQog NToJdHN0CXIyLCAjMg0KLQlzdHJuZWIJcjEsIFtyMF0sICMxDQotCXN0cm5lYglyMSwgW3IwXSwg IzENCisJc3RybmViCXIxLCBbaXBdLCAjMQ0KKwlzdHJuZWIJcjEsIFtpcF0sICMxDQogCXRzdAly MiwgIzENCi0Jc3RybmViCXIxLCBbcjBdLCAjMQ0KKwlzdHJuZWIJcjEsIFtpcF0sICMxDQogCW1v dglwYywgbHINCisNCis2OglzdWJzCXIyLCByMiwgIzQJCUAgMSBkbyB3ZSBoYXZlIGVub3VnaA0K KwlibHQJNWIJCQlAIDEgYnl0ZXMgdG8gYWxpZ24gd2l0aD8NCisJY21wCXIzLCAjMgkJCUAgMQ0K KwlzdHJsdGIJcjEsIFtpcF0sICMxCQlAIDENCisJc3RybGViCXIxLCBbaXBdLCAjMQkJQCAxDQor CXN0cmIJcjEsIFtpcF0sICMxCQlAIDENCisJYWRkCXIyLCByMiwgcjMJCUAgMSAocjIgPSByMiAt ICg0IC0gcjMpKQ0KKwliCTFiDQogRU5EUFJPQyhtZW1zZXQpDQpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vbWFjaC1vbWFwMi9tdXguYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvbXV4LmMNCmluZGV4IDY1 NWU5NDguLjQ0OWY5NTUgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL211eC5jDQor KysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL211eC5jDQpAQCAtMTgyLDggKzE4MiwxMCBAQCBzdGF0 aWMgaW50IF9faW5pdCBfb21hcF9tdXhfZ2V0X2J5X25hbWUoc3RydWN0IG9tYXBfbXV4X3BhcnRp dGlvbiAqcGFydGl0aW9uLA0KIAkJbTBfZW50cnkgPSBtdXgtPm11eG5hbWVzWzBdOw0KIA0KIAkJ LyogRmlyc3QgY2hlY2sgZm9yIGZ1bGwgbmFtZSBpbiBtb2RlMC5tdXhtb2RlIGZvcm1hdCAqLw0K LQkJaWYgKG1vZGUwX2xlbiAmJiBzdHJuY21wKG11eG5hbWUsIG0wX2VudHJ5LCBtb2RlMF9sZW4p KQ0KLQkJCWNvbnRpbnVlOw0KKwkJaWYgKG1vZGUwX2xlbikNCisJCQlpZiAoc3RybmNtcChtdXhu YW1lLCBtMF9lbnRyeSwgbW9kZTBfbGVuKSB8fA0KKwkJCSAgICAoc3RybGVuKG0wX2VudHJ5KSAh PSBtb2RlMF9sZW4pKQ0KKwkJCQljb250aW51ZTsNCiANCiAJCS8qIFRoZW4gY2hlY2sgZm9yIG11 eG1vZGUgb25seSAqLw0KIAkJZm9yIChpID0gMDsgaSA8IE9NQVBfTVVYX05SX01PREVTOyBpKysp IHsNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvS2NvbmZpZyBiL2FyY2gvcG93ZXJwYy9LY29u ZmlnDQppbmRleCAxNmVmODM4Li5iZWM5NTJkIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL0tj b25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9LY29uZmlnDQpAQCAtMTM3LDYgKzEzNyw3IEBAIGNv bmZpZyBQUEMNCiAJc2VsZWN0IEhBVkVfQlBGX0pJVCBpZiAoUFBDNjQgJiYgTkVUKQ0KIAlzZWxl Y3QgSEFWRV9BUkNIX0pVTVBfTEFCRUwNCiAJc2VsZWN0IEFSQ0hfSEFWRV9OTUlfU0FGRV9DTVBY Q0hHDQorCXNlbGVjdCBBUkNIX1NVUFBPUlRTX0FUT01JQ19STVcNCiANCiBjb25maWcgRUFSTFlf UFJJTlRLDQogCWJvb2wNCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3B0cmFjZS5jIGIv YXJjaC9zMzkwL2tlcm5lbC9wdHJhY2UuYw0KaW5kZXggYWZlODJiYy4uYjc2MjMwYiAxMDA2NDQN Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvcHRyYWNlLmMNCisrKyBiL2FyY2gvczM5MC9rZXJuZWwv cHRyYWNlLmMNCkBAIC0yOTIsNyArMjkyLDkgQEAgc3RhdGljIGludCBfX3Bva2VfdXNlcihzdHJ1 Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpDQogCQkgKiBw c3cgYW5kIGdwcnMgYXJlIHN0b3JlZCBvbiB0aGUgc3RhY2sNCiAJCSAqLw0KIAkJaWYgKGFkZHIg PT0gKGFkZHJfdCkgJmR1bW15LT5yZWdzLnBzdy5tYXNrICYmDQotCQkgICAgKChkYXRhICYgflBT V19NQVNLX1VTRVIpICE9IHBzd191c2VyX2JpdHMgfHwNCisJCSAgICAoKChkYXRhXnBzd191c2Vy X2JpdHMpICYgflBTV19NQVNLX1VTRVIpIHx8DQorCQkgICAgICgoKGRhdGFecHN3X3VzZXJfYml0 cykgJiBQU1dfTUFTS19BU0MpICYmDQorCQkgICAgICAoKGRhdGF8cHN3X3VzZXJfYml0cykgJiBQ U1dfTUFTS19BU0MpID09IFBTV19NQVNLX0FTQykgfHwNCiAJCSAgICAgKChkYXRhICYgUFNXX01B U0tfRUEpICYmICEoZGF0YSAmIFBTV19NQVNLX0JBKSkpKQ0KIAkJCS8qIEludmFsaWQgcHN3IG1h c2suICovDQogCQkJcmV0dXJuIC1FSU5WQUw7DQpAQCAtNTk1LDcgKzU5NywxMCBAQCBzdGF0aWMg aW50IF9fcG9rZV91c2VyX2NvbXBhdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLA0KIAkJICov DQogCQlpZiAoYWRkciA9PSAoYWRkcl90KSAmZHVtbXkzMi0+cmVncy5wc3cubWFzaykgew0KIAkJ CS8qIEJ1aWxkIGEgNjQgYml0IHBzdyBtYXNrIGZyb20gMzEgYml0IG1hc2suICovDQotCQkJaWYg KCh0bXAgJiB+UFNXMzJfTUFTS19VU0VSKSAhPSBwc3czMl91c2VyX2JpdHMpDQorCQkJaWYgKCgo dG1wXnBzdzMyX3VzZXJfYml0cykgJiB+UFNXMzJfTUFTS19VU0VSKSB8fA0KKwkJCSAgICAoKCh0 bXBecHN3MzJfdXNlcl9iaXRzKSAmIFBTVzMyX01BU0tfQVNDKSAmJg0KKwkJCSAgICAgKCh0bXB8 cHN3MzJfdXNlcl9iaXRzKSAmIFBTVzMyX01BU0tfQVNDKQ0KKwkJCSAgICAgPT0gUFNXMzJfTUFT S19BU0MpKQ0KIAkJCQkvKiBJbnZhbGlkIHBzdyBtYXNrLiAqLw0KIAkJCQlyZXR1cm4gLUVJTlZB TDsNCiAJCQlyZWdzLT5wc3cubWFzayA9IChyZWdzLT5wc3cubWFzayAmIH5QU1dfTUFTS19VU0VS KSB8DQpkaWZmIC0tZ2l0IGEvYXJjaC9zY29yZS9LY29uZmlnIGIvYXJjaC9zY29yZS9LY29uZmln DQppbmRleCBkZjE2OWU4Li5iZWI5ZjIxIDEwMDY0NA0KLS0tIGEvYXJjaC9zY29yZS9LY29uZmln DQorKysgYi9hcmNoL3Njb3JlL0tjb25maWcNCkBAIC0xMDgsMyArMTA4LDYgQEAgc291cmNlICJz ZWN1cml0eS9LY29uZmlnIg0KIHNvdXJjZSAiY3J5cHRvL0tjb25maWciDQogDQogc291cmNlICJs aWIvS2NvbmZpZyINCisNCitjb25maWcgTk9fSU9NRU0NCisgICAgICAgZGVmX2Jvb2wgeQ0KZGlm ZiAtLWdpdCBhL2FyY2gvc2NvcmUvaW5jbHVkZS9hc20vaW8uaCBiL2FyY2gvc2NvcmUvaW5jbHVk ZS9hc20vaW8uaA0KaW5kZXggZmJiZmQ3MS4uNTc0Yzg4MjcgMTAwNjQ0DQotLS0gYS9hcmNoL3Nj b3JlL2luY2x1ZGUvYXNtL2lvLmgNCisrKyBiL2FyY2gvc2NvcmUvaW5jbHVkZS9hc20vaW8uaA0K QEAgLTUsNSArNSw0IEBADQogDQogI2RlZmluZSB2aXJ0X3RvX2J1cwl2aXJ0X3RvX3BoeXMNCiAj ZGVmaW5lIGJ1c190b192aXJ0CXBoeXNfdG9fdmlydA0KLQ0KICNlbmRpZiAvKiBfQVNNX1NDT1JF X0lPX0ggKi8NCmRpZmYgLS1naXQgYS9hcmNoL3Njb3JlL2luY2x1ZGUvYXNtL3BnYWxsb2MuaCBi L2FyY2gvc2NvcmUvaW5jbHVkZS9hc20vcGdhbGxvYy5oDQppbmRleCAwNTlhNjFiLi43MTZiM2Zk IDEwMDY0NA0KLS0tIGEvYXJjaC9zY29yZS9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgNCisrKyBiL2Fy Y2gvc2NvcmUvaW5jbHVkZS9hc20vcGdhbGxvYy5oDQpAQCAtMiw3ICsyLDcgQEANCiAjZGVmaW5l IF9BU01fU0NPUkVfUEdBTExPQ19IDQogDQogI2luY2x1ZGUgPGxpbnV4L21tLmg+DQotDQorI2lu Y2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4NCiBzdGF0aWMgaW5saW5lIHZvaWQgcG1kX3BvcHVsYXRl X2tlcm5lbChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcG1kX3QgKnBtZCwNCiAJcHRlX3QgKnB0ZSkN CiB7DQpkaWZmIC0tZ2l0IGEvYXJjaC9zY29yZS9rZXJuZWwvZW50cnkuUyBiL2FyY2gvc2NvcmUv a2VybmVsL2VudHJ5LlMNCmluZGV4IDgzYmI5NjAuLjg5NzAyYWMgMTAwNjQ0DQotLS0gYS9hcmNo L3Njb3JlL2tlcm5lbC9lbnRyeS5TDQorKysgYi9hcmNoL3Njb3JlL2tlcm5lbC9lbnRyeS5TDQpA QCAtMjY0LDcgKzI2NCw3IEBAIHJlc3VtZV9rZXJuZWw6DQogCWRpc2FibGVfaXJxDQogCWx3CXI4 LCBbcjI4LCBUSV9QUkVfQ09VTlRdDQogCWNtcHouYwlyOA0KLQlibmUJcjgsIHJlc3RvcmVfYWxs DQorCWJuZQlyZXN0b3JlX2FsbA0KIG5lZWRfcmVzY2hlZDoNCiAJbHcJcjgsIFtyMjgsIFRJX0ZM QUdTXQ0KIAlhbmRyaS5jCXI5LCByOCwgX1RJRl9ORUVEX1JFU0NIRUQNCkBAIC00MDgsNyArNDA4 LDcgQEAgRU5UUlkoaGFuZGxlX3N5cykNCiAJc3cJcjksIFtyMCwgUFRfRVBDXQ0KIA0KIAljbXBp LmMJcjI3LCBfX05SX3N5c2NhbGxzIAkjIGNoZWNrIHN5c2NhbGwgbnVtYmVyDQotCWJnZXUJaWxs ZWdhbF9zeXNjYWxsDQorCWJjcwlpbGxlZ2FsX3N5c2NhbGwNCiANCiAJc2xsaQlyOCwgcjI3LCAy CQkjIGdldCBzeXNjYWxsIHJvdXRpbmUNCiAJbGEJcjExLCBzeXNfY2FsbF90YWJsZQ0KZGlmZiAt LWdpdCBhL2FyY2gvc2NvcmUva2VybmVsL2luaXRfdGFzay5jIGIvYXJjaC9zY29yZS9rZXJuZWwv aW5pdF90YXNrLmMNCmluZGV4IGJhYTAzZWUuLjc1M2E5ZjEgMTAwNjQ0DQotLS0gYS9hcmNoL3Nj b3JlL2tlcm5lbC9pbml0X3Rhc2suYw0KKysrIGIvYXJjaC9zY29yZS9rZXJuZWwvaW5pdF90YXNr LmMNCkBAIC0yMyw2ICsyMyw3IEBADQogDQogI2luY2x1ZGUgPGxpbnV4L2luaXRfdGFzay5oPg0K ICNpbmNsdWRlIDxsaW51eC9tcXVldWUuaD4NCisjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+DQog DQogc3RhdGljIHN0cnVjdCBzaWduYWxfc3RydWN0IGluaXRfc2lnbmFscyA9IElOSVRfU0lHTkFM Uyhpbml0X3NpZ25hbHMpOw0KIHN0YXRpYyBzdHJ1Y3Qgc2lnaGFuZF9zdHJ1Y3QgaW5pdF9zaWdo YW5kID0gSU5JVF9TSUdIQU5EKGluaXRfc2lnaGFuZCk7DQpkaWZmIC0tZ2l0IGEvYXJjaC9zY29y ZS9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvc2NvcmUva2VybmVsL3ZtbGludXgubGRzLlMN CmluZGV4IGVlYmNiYWEuLjcyNzRiNWMgMTAwNjQ0DQotLS0gYS9hcmNoL3Njb3JlL2tlcm5lbC92 bWxpbnV4Lmxkcy5TDQorKysgYi9hcmNoL3Njb3JlL2tlcm5lbC92bWxpbnV4Lmxkcy5TDQpAQCAt NDksNiArNDksNyBAQCBTRUNUSU9OUw0KIAl9DQogDQogCS4gPSBBTElHTigxNik7DQorCV9zZGF0 YSA9ICAuOwkJCS8qIFN0YXJ0IG9mIGRhdGEgc2VjdGlvbiAqLw0KIAlST0RBVEENCiANCiAJRVhD RVBUSU9OX1RBQkxFKDE2KQ0KZGlmZiAtLWdpdCBhL2FyY2gvc2NvcmUvbW0vaW5pdC5jIGIvYXJj aC9zY29yZS9tbS9pbml0LmMNCmluZGV4IGNlZTZiY2UuLjE1MGEzZTYgMTAwNjQ0DQotLS0gYS9h cmNoL3Njb3JlL21tL2luaXQuYw0KKysrIGIvYXJjaC9zY29yZS9tbS9pbml0LmMNCkBAIC0zNCw2 ICszNCw3IEBADQogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4NCiAjaW5jbHVkZSA8bGludXgv c2NoZWQuaD4NCiAjaW5jbHVkZSA8bGludXgvaW5pdHJkLmg+DQorI2luY2x1ZGUgPGxpbnV4L2V4 cG9ydC5oPg0KIA0KICNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4NCiAjaW5jbHVkZSA8YXNtL3Rs Yi5oPg0KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvS2NvbmZpZyBiL2FyY2gvc3BhcmMvS2NvbmZp Zw0KaW5kZXggODhkNDQyZC4uZjJmMzU3NGQgMTAwNjQ0DQotLS0gYS9hcmNoL3NwYXJjL0tjb25m aWcNCisrKyBiL2FyY2gvc3BhcmMvS2NvbmZpZw0KQEAgLTU3LDYgKzU3LDcgQEAgY29uZmlnIFNQ QVJDNjQNCiAJc2VsZWN0IElSUV9QUkVGTE9XX0ZBU1RFT0kNCiAJc2VsZWN0IEFSQ0hfSEFWRV9O TUlfU0FGRV9DTVBYQ0hHDQogCXNlbGVjdCBIQVZFX0NfUkVDT1JETUNPVU5UDQorCXNlbGVjdCBB UkNIX1NVUFBPUlRTX0FUT01JQ19STVcNCiANCiBjb25maWcgQVJDSF9ERUZDT05GSUcNCiAJc3Ry aW5nDQpkaWZmIC0tZ2l0IGEvYXJjaC91bmljb3JlMzIvS2NvbmZpZyBiL2FyY2gvdW5pY29yZTMy L0tjb25maWcNCmluZGV4IDk0MmVkNjEuLjM1ZThmZjEgMTAwNjQ0DQotLS0gYS9hcmNoL3VuaWNv cmUzMi9LY29uZmlnDQorKysgYi9hcmNoL3VuaWNvcmUzMi9LY29uZmlnDQpAQCAtNiw2ICs2LDcg QEAgY29uZmlnIFVOSUNPUkUzMg0KIAlzZWxlY3QgSEFWRV9ETUFfQVRUUlMNCiAJc2VsZWN0IEhB VkVfS0VSTkVMX0daSVANCiAJc2VsZWN0IEhBVkVfS0VSTkVMX0JaSVAyDQorCXNlbGVjdCBHRU5F UklDX0FUT01JQzY0DQogCXNlbGVjdCBIQVZFX0tFUk5FTF9MWk8NCiAJc2VsZWN0IEhBVkVfS0VS TkVMX0xaTUENCiAJc2VsZWN0IEdFTkVSSUNfRklORF9GSVJTVF9CSVQNCmRpZmYgLS1naXQgYS9h cmNoL3VuaWNvcmUzMi9pbmNsdWRlL2FzbS9pby5oIGIvYXJjaC91bmljb3JlMzIvaW5jbHVkZS9h c20vaW8uaA0KaW5kZXggMWE1YzVhNS4uNDk5NTk0ZiAxMDA2NDQNCi0tLSBhL2FyY2gvdW5pY29y ZTMyL2luY2x1ZGUvYXNtL2lvLmgNCisrKyBiL2FyY2gvdW5pY29yZTMyL2luY2x1ZGUvYXNtL2lv LmgNCkBAIC0zNyw2ICszNyw3IEBAIGV4dGVybiB2b2lkIF9fdWMzMl9pb3VubWFwKHZvbGF0aWxl IHZvaWQgX19pb21lbSAqYWRkcik7DQogICovDQogI2RlZmluZSBpb3JlbWFwKGNvb2tpZSwgc2l6 ZSkJCV9fdWMzMl9pb3JlbWFwKGNvb2tpZSwgc2l6ZSkNCiAjZGVmaW5lIGlvcmVtYXBfY2FjaGVk KGNvb2tpZSwgc2l6ZSkJX191YzMyX2lvcmVtYXBfY2FjaGVkKGNvb2tpZSwgc2l6ZSkNCisjZGVm aW5lIGlvcmVtYXBfbm9jYWNoZShjb29raWUsIHNpemUpCV9fdWMzMl9pb3JlbWFwKGNvb2tpZSwg c2l6ZSkNCiAjZGVmaW5lIGlvdW5tYXAoY29va2llKQkJCV9fdWMzMl9pb3VubWFwKGNvb2tpZSkN CiANCiAvKg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcgYi9hcmNoL3g4Ni9LY29uZmln DQppbmRleCBmYjJlNjlkLi45MDE0NDdlIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYvS2NvbmZpZw0K KysrIGIvYXJjaC94ODYvS2NvbmZpZw0KQEAgLTc1LDYgKzc1LDcgQEAgY29uZmlnIFg4Ng0KIAlz ZWxlY3QgSEFWRV9CUEZfSklUIGlmIChYODZfNjQgJiYgTkVUKQ0KIAlzZWxlY3QgQ0xLRVZUX0k4 MjUzDQogCXNlbGVjdCBBUkNIX0hBVkVfTk1JX1NBRkVfQ01QWENIRw0KKwlzZWxlY3QgQVJDSF9T VVBQT1JUU19BVE9NSUNfUk1XDQogDQogY29uZmlnIElOU1RSVUNUSU9OX0RFQ09ERVINCiAJZGVm X2Jvb2wgKEtQUk9CRVMgfHwgUEVSRl9FVkVOVFMpDQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5j bHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgNCmlu ZGV4IGNmYjVhNDAuLmIzZWI5YTcgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9r dm1faG9zdC5oDQorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oDQpAQCAtOTgs NyArOTgsNyBAQA0KICNkZWZpbmUgS1ZNX1JFRklMTF9QQUdFUyAyNQ0KICNkZWZpbmUgS1ZNX01B WF9DUFVJRF9FTlRSSUVTIDgwDQogI2RlZmluZSBLVk1fTlJfRklYRURfTVRSUl9SRUdJT04gODgN Ci0jZGVmaW5lIEtWTV9OUl9WQVJfTVRSUiA4DQorI2RlZmluZSBLVk1fTlJfVkFSX01UUlIgMTAN CiANCiAjZGVmaW5lIEFTWU5DX1BGX1BFUl9WQ1BVIDY0DQogDQpAQCAtNDE4LDcgKzQxOCw3IEBA IHN0cnVjdCBrdm1fdmNwdV9hcmNoIHsNCiAJYm9vbCBubWlfaW5qZWN0ZWQ7ICAgIC8qIFRyeWlu ZyB0byBpbmplY3QgYW4gTk1JIHRoaXMgZW50cnkgKi8NCiANCiAJc3RydWN0IG10cnJfc3RhdGVf dHlwZSBtdHJyX3N0YXRlOw0KLQl1MzIgcGF0Ow0KKwl1NjQgcGF0Ow0KIA0KIAlpbnQgc3dpdGNo X2RiX3JlZ3M7DQogCXVuc2lnbmVkIGxvbmcgZGJbS1ZNX05SX0RCX1JFR1NdOw0KZGlmZiAtLWdp dCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZl9ldmVudF9pbnRlbC5jIGIvYXJjaC94ODYva2Vy bmVsL2NwdS9wZXJmX2V2ZW50X2ludGVsLmMNCmluZGV4IDRiYjEyZjcuLmNiYTE4ODMgMTAwNjQ0 DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L3BlcmZfZXZlbnRfaW50ZWwuYw0KKysrIGIvYXJj aC94ODYva2VybmVsL2NwdS9wZXJmX2V2ZW50X2ludGVsLmMNCkBAIC0xMDQ4LDYgKzEwNDgsMTUg QEAgYWdhaW46DQogCWludGVsX3BtdV9sYnJfcmVhZCgpOw0KIA0KIAkvKg0KKwkgKiBDb25kQ2hn ZCBiaXQgNjMgZG9lc24ndCBtZWFuIGFueSBvdmVyZmxvdyBzdGF0dXMuIElnbm9yZQ0KKwkgKiBh bmQgY2xlYXIgdGhlIGJpdC4NCisJICovDQorCWlmIChfX3Rlc3RfYW5kX2NsZWFyX2JpdCg2Mywg KHVuc2lnbmVkIGxvbmcgKikmc3RhdHVzKSkgew0KKwkJaWYgKCFzdGF0dXMpDQorCQkJZ290byBk b25lOw0KKwl9DQorDQorCS8qDQogCSAqIFBFQlMgb3ZlcmZsb3cgc2V0cyBiaXQgNjIgaW4gdGhl IGdsb2JhbCBzdGF0dXMgcmVnaXN0ZXINCiAJICovDQogCWlmIChfX3Rlc3RfYW5kX2NsZWFyX2Jp dCg2MiwgKHVuc2lnbmVkIGxvbmcgKikmc3RhdHVzKSkgew0KZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2tlcm5lbC9lbnRyeV8zMi5TIGIvYXJjaC94ODYva2VybmVsL2VudHJ5XzMyLlMNCmluZGV4IGRi MDkwZjYuLmRkNTIzNTUgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfMzIuUw0K KysrIGIvYXJjaC94ODYva2VybmVsL2VudHJ5XzMyLlMNCkBAIC00MjksOCArNDI5LDggQEAgc3lz ZW50ZXJfZG9fY2FsbDoNCiAJY21wbCAkKG5yX3N5c2NhbGxzKSwgJWVheA0KIAlqYWUgc3lzZW50 ZXJfYmFkc3lzDQogCWNhbGwgKnN5c19jYWxsX3RhYmxlKCwlZWF4LDQpDQotCW1vdmwgJWVheCxQ VF9FQVgoJWVzcCkNCiBzeXNlbnRlcl9hZnRlcl9jYWxsOg0KKwltb3ZsICVlYXgsUFRfRUFYKCVl c3ApDQogCUxPQ0tERVBfU1lTX0VYSVQNCiAJRElTQUJMRV9JTlRFUlJVUFRTKENMQlJfQU5ZKQ0K IAlUUkFDRV9JUlFTX09GRg0KQEAgLTUxMiw2ICs1MTIsNyBAQCBFTlRSWShzeXN0ZW1fY2FsbCkN CiAJamFlIHN5c2NhbGxfYmFkc3lzDQogc3lzY2FsbF9jYWxsOg0KIAljYWxsICpzeXNfY2FsbF90 YWJsZSgsJWVheCw0KQ0KK3N5c2NhbGxfYWZ0ZXJfY2FsbDoNCiAJbW92bCAlZWF4LFBUX0VBWCgl ZXNwKQkJIyBzdG9yZSB0aGUgcmV0dXJuIHZhbHVlDQogc3lzY2FsbF9leGl0Og0KIAlMT0NLREVQ X1NZU19FWElUDQpAQCAtNTUzLDExICs1NTQsNiBAQCBFTlRSWShpcmV0X2V4YykNCiANCiAJQ0ZJ X1JFU1RPUkVfU1RBVEUNCiBsZHRfc3M6DQotCWxhcmwgUFRfT0xEU1MoJWVzcCksICVlYXgNCi0J am56IHJlc3RvcmVfbm9jaGVjaw0KLQl0ZXN0bCAkMHgwMDQwMDAwMCwgJWVheAkJIyByZXR1cm5p bmcgdG8gMzJiaXQgc3RhY2s/DQotCWpueiByZXN0b3JlX25vY2hlY2sJCSMgYWxscmlnaHQsIG5v cm1hbCByZXR1cm4NCi0NCiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUDQogCS8qDQogCSAqIFRoZSBr ZXJuZWwgY2FuJ3QgcnVuIG9uIGEgbm9uLWZsYXQgc3RhY2sgaWYgcGFyYXZpcnQgbW9kZQ0KQEAg LTY4MSwxMiArNjc3LDEyIEBAIHN5c2NhbGxfZmF1bHQ6DQogRU5EKHN5c2NhbGxfZmF1bHQpDQog DQogc3lzY2FsbF9iYWRzeXM6DQotCW1vdmwgJC1FTk9TWVMsUFRfRUFYKCVlc3ApDQotCWptcCBz eXNjYWxsX2V4aXQNCisJbW92bCAkLUVOT1NZUywlZWF4DQorCWptcCBzeXNjYWxsX2FmdGVyX2Nh bGwNCiBFTkQoc3lzY2FsbF9iYWRzeXMpDQogDQogc3lzZW50ZXJfYmFkc3lzOg0KLQltb3ZsICQt RU5PU1lTLFBUX0VBWCglZXNwKQ0KKwltb3ZsICQtRU5PU1lTLCVlYXgNCiAJam1wIHN5c2VudGVy X2FmdGVyX2NhbGwNCiBFTkQoc3lzY2FsbF9iYWRzeXMpDQogCUNGSV9FTkRQUk9DDQpkaWZmIC0t Z2l0IGEvYXJjaC94ODYvbW0vaW9yZW1hcC5jIGIvYXJjaC94ODYvbW0vaW9yZW1hcC5jDQppbmRl eCBiZTFlZjU3Li5kZWM0OWQzIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYvbW0vaW9yZW1hcC5jDQor KysgYi9hcmNoL3g4Ni9tbS9pb3JlbWFwLmMNCkBAIC01MCw2ICs1MCwyMSBAQCBpbnQgaW9yZW1h cF9jaGFuZ2VfYXR0cih1bnNpZ25lZCBsb25nIHZhZGRyLCB1bnNpZ25lZCBsb25nIHNpemUsDQog CXJldHVybiBlcnI7DQogfQ0KIA0KK3N0YXRpYyBpbnQgX19pb3JlbWFwX2NoZWNrX3JhbSh1bnNp Z25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywNCisJCQkgICAgICAg dm9pZCAqYXJnKQ0KK3sNCisJdW5zaWduZWQgbG9uZyBpOw0KKw0KKwlmb3IgKGkgPSAwOyBpIDwg bnJfcGFnZXM7ICsraSkNCisJCWlmIChwZm5fdmFsaWQoc3RhcnRfcGZuICsgaSkgJiYNCisJCSAg ICAhUGFnZVJlc2VydmVkKHBmbl90b19wYWdlKHN0YXJ0X3BmbiArIGkpKSkNCisJCQlyZXR1cm4g MTsNCisNCisJV0FSTl9PTkNFKDEsICJpb3JlbWFwIG9uIFJBTSBwZm4gMHglbHhcbiIsIHN0YXJ0 X3Bmbik7DQorDQorCXJldHVybiAwOw0KK30NCisNCiAvKg0KICAqIFJlbWFwIGFuIGFyYml0cmFy eSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlIGludG8gdGhlIGtlcm5lbCB2aXJ0dWFsDQogICogYWRk cmVzcyBzcGFjZS4gTmVlZGVkIHdoZW4gdGhlIGtlcm5lbCB3YW50cyB0byBhY2Nlc3MgaGlnaCBh ZGRyZXNzZXMNCkBAIC05MywxNCArMTA4LDExIEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKl9faW9y ZW1hcF9jYWxsZXIocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkciwNCiAJLyoNCiAJICogRG9uJ3Qg YWxsb3cgYW55Ym9keSB0byByZW1hcCBub3JtYWwgUkFNIHRoYXQgd2UncmUgdXNpbmcuLg0KIAkg Ki8NCisJcGZuICAgICAgPSBwaHlzX2FkZHIgPj4gUEFHRV9TSElGVDsNCiAJbGFzdF9wZm4gPSBs YXN0X2FkZHIgPj4gUEFHRV9TSElGVDsNCi0JZm9yIChwZm4gPSBwaHlzX2FkZHIgPj4gUEFHRV9T SElGVDsgcGZuIDw9IGxhc3RfcGZuOyBwZm4rKykgew0KLQkJaW50IGlzX3JhbSA9IHBhZ2VfaXNf cmFtKHBmbik7DQotDQotCQlpZiAoaXNfcmFtICYmIHBmbl92YWxpZChwZm4pICYmICFQYWdlUmVz ZXJ2ZWQocGZuX3RvX3BhZ2UocGZuKSkpDQotCQkJcmV0dXJuIE5VTEw7DQotCQlXQVJOX09OX09O Q0UoaXNfcmFtKTsNCi0JfQ0KKwlpZiAod2Fsa19zeXN0ZW1fcmFtX3JhbmdlKHBmbiwgbGFzdF9w Zm4gLSBwZm4gKyAxLCBOVUxMLA0KKwkJCQkgIF9faW9yZW1hcF9jaGVja19yYW0pID09IDEpDQor CQlyZXR1cm4gTlVMTDsNCiANCiAJLyoNCiAJICogTWFwcGluZ3MgaGF2ZSB0byBiZSBwYWdlLWFs aWduZWQNCmRpZmYgLS1naXQgYS9jcnlwdG8vdGVzdG1nci5oIGIvY3J5cHRvL3Rlc3RtZ3IuaA0K aW5kZXggMzdiNGQ4Zi4uYTRkZTRhZSAxMDA2NDQNCi0tLSBhL2NyeXB0by90ZXN0bWdyLmgNCisr KyBiL2NyeXB0by90ZXN0bWdyLmgNCkBAIC0xMDQyOCwzOCArMTA0MjgsNDAgQEAgc3RhdGljIHN0 cnVjdCBwY29tcF90ZXN0dmVjIHpsaWJfZGVjb21wX3R2X3RlbXBsYXRlW10gPSB7DQogc3RhdGlj IHN0cnVjdCBjb21wX3Rlc3R2ZWMgbHpvX2NvbXBfdHZfdGVtcGxhdGVbXSA9IHsNCiAJew0KIAkJ LmlubGVuCT0gNzAsDQotCQkub3V0bGVuCT0gNDYsDQorCQkub3V0bGVuCT0gNTcsDQogCQkuaW5w dXQJPSAiSm9pbiB1cyBub3cgYW5kIHNoYXJlIHRoZSBzb2Z0d2FyZSAiDQogCQkJIkpvaW4gdXMg bm93IGFuZCBzaGFyZSB0aGUgc29mdHdhcmUgIiwNCiAJCS5vdXRwdXQJPSAiXHgwMFx4MGRceDRh XHg2Zlx4NjlceDZlXHgyMFx4NzUiDQotCQkJIlx4NzNceDIwXHg2ZVx4NmZceDc3XHgyMFx4NjFc eDZlIg0KLQkJCSJceDY0XHgyMFx4NzNceDY4XHg2MVx4NzJceDY1XHgyMCINCi0JCQkiXHg3NFx4 NjhceDY1XHgyMFx4NzNceDZmXHg2Nlx4NzQiDQotCQkJIlx4NzdceDcwXHgwMVx4MDFceDRhXHg2 Zlx4NjlceDZlIg0KLQkJCSJceDNkXHg4OFx4MDBceDExXHgwMFx4MDAiLA0KKwkJCSAgIlx4NzNc eDIwXHg2ZVx4NmZceDc3XHgyMFx4NjFceDZlIg0KKwkJCSAgIlx4NjRceDIwXHg3M1x4NjhceDYx XHg3Mlx4NjVceDIwIg0KKwkJCSAgIlx4NzRceDY4XHg2NVx4MjBceDczXHg2Zlx4NjZceDc0Ig0K KwkJCSAgIlx4NzdceDcwXHgwMVx4MzJceDg4XHgwMFx4MGNceDY1Ig0KKwkJCSAgIlx4MjBceDc0 XHg2OFx4NjVceDIwXHg3M1x4NmZceDY2Ig0KKwkJCSAgIlx4NzRceDc3XHg2MVx4NzJceDY1XHgy MFx4MTFceDAwIg0KKwkJCSAgIlx4MDAiLA0KIAl9LCB7DQogCQkuaW5sZW4JPSAxNTksDQotCQku b3V0bGVuCT0gMTMzLA0KKwkJLm91dGxlbgk9IDEzMSwNCiAJCS5pbnB1dAk9ICJUaGlzIGRvY3Vt ZW50IGRlc2NyaWJlcyBhIGNvbXByZXNzaW9uIG1ldGhvZCBiYXNlZCBvbiB0aGUgTFpPICINCiAJ CQkiY29tcHJlc3Npb24gYWxnb3JpdGhtLiAgVGhpcyBkb2N1bWVudCBkZWZpbmVzIHRoZSBhcHBs aWNhdGlvbiBvZiAiDQogCQkJInRoZSBMWk8gYWxnb3JpdGhtIHVzZWQgaW4gVUJJRlMuIiwNCi0J CS5vdXRwdXQJPSAiXHgwMFx4MmJceDU0XHg2OFx4NjlceDczXHgyMFx4NjQiDQorCQkub3V0cHV0 CT0gIlx4MDBceDJjXHg1NFx4NjhceDY5XHg3M1x4MjBceDY0Ig0KIAkJCSAgIlx4NmZceDYzXHg3 NVx4NmRceDY1XHg2ZVx4NzRceDIwIg0KIAkJCSAgIlx4NjRceDY1XHg3M1x4NjNceDcyXHg2OVx4 NjJceDY1Ig0KIAkJCSAgIlx4NzNceDIwXHg2MVx4MjBceDYzXHg2Zlx4NmRceDcwIg0KIAkJCSAg Ilx4NzJceDY1XHg3M1x4NzNceDY5XHg2Zlx4NmVceDIwIg0KIAkJCSAgIlx4NmRceDY1XHg3NFx4 NjhceDZmXHg2NFx4MjBceDYyIg0KIAkJCSAgIlx4NjFceDczXHg2NVx4NjRceDIwXHg2Zlx4NmVc eDIwIg0KLQkJCSAgIlx4NzRceDY4XHg2NVx4MjBceDRjXHg1YVx4NGZceDJiIg0KLQkJCSAgIlx4 OGNceDAwXHgwZFx4NjFceDZjXHg2N1x4NmZceDcyIg0KLQkJCSAgIlx4NjlceDc0XHg2OFx4NmRc eDJlXHgyMFx4MjBceDU0Ig0KLQkJCSAgIlx4NjhceDY5XHg3M1x4MmFceDU0XHgwMVx4MDJceDY2 Ig0KLQkJCSAgIlx4NjlceDZlXHg2NVx4NzNceDk0XHgwNlx4MDVceDYxIg0KLQkJCSAgIlx4NzBc eDcwXHg2Y1x4NjlceDYzXHg2MVx4NzRceDc2Ig0KLQkJCSAgIlx4MGFceDZmXHg2Nlx4ODhceDAy XHg2MFx4MDlceDI3Ig0KLQkJCSAgIlx4ZjBceDAwXHgwY1x4MjBceDc1XHg3M1x4NjVceDY0Ig0K LQkJCSAgIlx4MjBceDY5XHg2ZVx4MjBceDU1XHg0Mlx4NDlceDQ2Ig0KLQkJCSAgIlx4NTNceDJl XHgxMVx4MDBceDAwIiwNCisJCQkgICJceDc0XHg2OFx4NjVceDIwXHg0Y1x4NWFceDRmXHgyMCIN CisJCQkgICJceDJhXHg4Y1x4MDBceDA5XHg2MVx4NmNceDY3XHg2ZiINCisJCQkgICJceDcyXHg2 OVx4NzRceDY4XHg2ZFx4MmVceDIwXHgyMCINCisJCQkgICJceDJlXHg1NFx4MDFceDAzXHg2Nlx4 NjlceDZlXHg2NSINCisJCQkgICJceDczXHgyMFx4NzRceDA2XHgwNVx4NjFceDcwXHg3MCINCisJ CQkgICJceDZjXHg2OVx4NjNceDYxXHg3NFx4NzZceDBhXHg2ZiINCisJCQkgICJceDY2XHg4OFx4 MDJceDYwXHgwOVx4MjdceGYwXHgwMCINCisJCQkgICJceDBjXHgyMFx4NzVceDczXHg2NVx4NjRc eDIwXHg2OSINCisJCQkgICJceDZlXHgyMFx4NTVceDQyXHg0OVx4NDZceDUzXHgyZSINCisJCQkg ICJceDExXHgwMFx4MDAiLA0KIAl9LA0KIH07DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3Bp L2JhdHRlcnkuYyBiL2RyaXZlcnMvYWNwaS9iYXR0ZXJ5LmMNCmluZGV4IGM3NDliOTMuLmE3OTMz MmEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2FjcGkvYmF0dGVyeS5jDQorKysgYi9kcml2ZXJzL2Fj cGkvYmF0dGVyeS5jDQpAQCAtMzQsNiArMzQsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9kbWkuaD4N CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KICNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+DQor I2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+DQogI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4NCiAN CiAjaWZkZWYgQ09ORklHX0FDUElfUFJPQ0ZTX1BPV0VSDQpAQCAtMTA1NSw2ICsxMDU2LDI4IEBA IHN0YXRpYyBpbnQgYmF0dGVyeV9ub3RpZnkoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwNCiAJ cmV0dXJuIDA7DQogfQ0KIA0KKy8qDQorICogU29tZSBtYWNoaW5lcycoRSxHIExlbm92byBaNDgw KSBFQ3MgYXJlIG5vdCBzdGFibGUNCisgKiBkdXJpbmcgYm9vdCB1cCBhbmQgdGhpcyBjYXVzZXMg YmF0dGVyeSBkcml2ZXIgZmFpbHMgdG8gYmUNCisgKiBwcm9iZWQgZHVlIHRvIGZhaWx1cmUgb2Yg Z2V0dGluZyBiYXR0ZXJ5IGluZm9ybWF0aW9uDQorICogZnJvbSBFQyBzb21ldGltZXMuIEFmdGVy IHNldmVyYWwgcmV0cmllcywgdGhlIG9wZXJhdGlvbg0KKyAqIG1heSB3b3JrLiBTbyBhZGQgcmV0 cnkgY29kZSBoZXJlIGFuZCAyMG1zIHNsZWVwIGJldHdlZW4NCisgKiBldmVyeSByZXRyaWVzLg0K KyAqLw0KK3N0YXRpYyBpbnQgYWNwaV9iYXR0ZXJ5X3VwZGF0ZV9yZXRyeShzdHJ1Y3QgYWNwaV9i YXR0ZXJ5ICpiYXR0ZXJ5KQ0KK3sNCisJaW50IHJldHJ5LCByZXQ7DQorDQorCWZvciAocmV0cnkg PSA1OyByZXRyeTsgcmV0cnktLSkgew0KKwkJcmV0ID0gYWNwaV9iYXR0ZXJ5X3VwZGF0ZShiYXR0 ZXJ5KTsNCisJCWlmICghcmV0KQ0KKwkJCWJyZWFrOw0KKw0KKwkJbXNsZWVwKDIwKTsNCisJfQ0K KwlyZXR1cm4gcmV0Ow0KK30NCisNCiBzdGF0aWMgaW50IGFjcGlfYmF0dGVyeV9hZGQoc3RydWN0 IGFjcGlfZGV2aWNlICpkZXZpY2UpDQogew0KIAlpbnQgcmVzdWx0ID0gMDsNCkBAIC0xMDc0LDkg KzEwOTcsMTEgQEAgc3RhdGljIGludCBhY3BpX2JhdHRlcnlfYWRkKHN0cnVjdCBhY3BpX2Rldmlj ZSAqZGV2aWNlKQ0KIAlpZiAoQUNQSV9TVUNDRVNTKGFjcGlfZ2V0X2hhbmRsZShiYXR0ZXJ5LT5k ZXZpY2UtPmhhbmRsZSwNCiAJCQkiX0JJWCIsICZoYW5kbGUpKSkNCiAJCXNldF9iaXQoQUNQSV9C QVRURVJZX1hJTkZPX1BSRVNFTlQsICZiYXR0ZXJ5LT5mbGFncyk7DQotCXJlc3VsdCA9IGFjcGlf YmF0dGVyeV91cGRhdGUoYmF0dGVyeSk7DQorDQorCXJlc3VsdCA9IGFjcGlfYmF0dGVyeV91cGRh dGVfcmV0cnkoYmF0dGVyeSk7DQogCWlmIChyZXN1bHQpDQogCQlnb3RvIGZhaWw7DQorDQogI2lm ZGVmIENPTkZJR19BQ1BJX1BST0NGU19QT1dFUg0KIAlyZXN1bHQgPSBhY3BpX2JhdHRlcnlfYWRk X2ZzKGRldmljZSk7DQogI2VuZGlmDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2VjLmMgYi9k cml2ZXJzL2FjcGkvZWMuYw0KaW5kZXggMzkyMzA2NC4uNDhmZDE1OCAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvYWNwaS9lYy5jDQorKysgYi9kcml2ZXJzL2FjcGkvZWMuYw0KQEAgLTgxLDYgKzgxLDkg QEAgZW51bSB7DQogCUVDX0ZMQUdTX0JMT0NLRUQsCQkvKiBUcmFuc2FjdGlvbnMgYXJlIGJsb2Nr ZWQgKi8NCiB9Ow0KIA0KKyNkZWZpbmUgQUNQSV9FQ19DT01NQU5EX1BPTEwJCTB4MDEgLyogQXZh aWxhYmxlIGZvciBjb21tYW5kIGJ5dGUgKi8NCisjZGVmaW5lIEFDUElfRUNfQ09NTUFORF9DT01Q TEVURQkweDAyIC8qIENvbXBsZXRlZCBsYXN0IGJ5dGUgKi8NCisNCiAvKiBlYy5jIGlzIGNvbXBp bGVkIGluIGFjcGkgbmFtZXNwYWNlIHNvIHRoaXMgc2hvd3MgdXAgYXMgYWNwaS5lY19kZWxheSBw YXJhbSAqLw0KIHN0YXRpYyB1bnNpZ25lZCBpbnQgZWNfZGVsYXkgX19yZWFkX21vc3RseSA9IEFD UElfRUNfREVMQVk7DQogbW9kdWxlX3BhcmFtKGVjX2RlbGF5LCB1aW50LCAwNjQ0KTsNCkBAIC0x MTYsNyArMTE5LDcgQEAgc3RydWN0IHRyYW5zYWN0aW9uIHsNCiAJdTggcmk7DQogCXU4IHdsZW47 DQogCXU4IHJsZW47DQotCWJvb2wgZG9uZTsNCisJdTggZmxhZ3M7DQogfTsNCiANCiBzdHJ1Y3Qg YWNwaV9lYyAqYm9vdF9lYywgKmZpcnN0X2VjOw0KQEAgLTE1Nyw1MyArMTYwLDc0IEBAIHN0YXRp YyBpbmxpbmUgdm9pZCBhY3BpX2VjX3dyaXRlX2RhdGEoc3RydWN0IGFjcGlfZWMgKmVjLCB1OCBk YXRhKQ0KIAlvdXRiKGRhdGEsIGVjLT5kYXRhX2FkZHIpOw0KIH0NCiANCi1zdGF0aWMgaW50IGVj X3RyYW5zYWN0aW9uX2RvbmUoc3RydWN0IGFjcGlfZWMgKmVjKQ0KK3N0YXRpYyBpbnQgZWNfdHJh bnNhY3Rpb25fY29tcGxldGVkKHN0cnVjdCBhY3BpX2VjICplYykNCiB7DQogCXVuc2lnbmVkIGxv bmcgZmxhZ3M7DQogCWludCByZXQgPSAwOw0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmZWMtPmN1cnJf bG9jaywgZmxhZ3MpOw0KLQlpZiAoIWVjLT5jdXJyIHx8IGVjLT5jdXJyLT5kb25lKQ0KKwlpZiAo ZWMtPmN1cnIgJiYgKGVjLT5jdXJyLT5mbGFncyAmIEFDUElfRUNfQ09NTUFORF9DT01QTEVURSkp DQogCQlyZXQgPSAxOw0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlYy0+Y3Vycl9sb2NrLCBm bGFncyk7DQogCXJldHVybiByZXQ7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIHN0YXJ0X3RyYW5zYWN0 aW9uKHN0cnVjdCBhY3BpX2VjICplYykNCitzdGF0aWMgYm9vbCBhZHZhbmNlX3RyYW5zYWN0aW9u KHN0cnVjdCBhY3BpX2VjICplYykNCiB7DQotCWVjLT5jdXJyLT5pcnFfY291bnQgPSBlYy0+Y3Vy ci0+d2kgPSBlYy0+Y3Vyci0+cmkgPSAwOw0KLQllYy0+Y3Vyci0+ZG9uZSA9IGZhbHNlOw0KLQlh Y3BpX2VjX3dyaXRlX2NtZChlYywgZWMtPmN1cnItPmNvbW1hbmQpOw0KLX0NCi0NCi1zdGF0aWMg dm9pZCBhZHZhbmNlX3RyYW5zYWN0aW9uKHN0cnVjdCBhY3BpX2VjICplYywgdTggc3RhdHVzKQ0K LXsNCi0JdW5zaWduZWQgbG9uZyBmbGFnczsNCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVjLT5jdXJy X2xvY2ssIGZsYWdzKTsNCi0JaWYgKCFlYy0+Y3VycikNCi0JCWdvdG8gdW5sb2NrOw0KLQlpZiAo ZWMtPmN1cnItPndsZW4gPiBlYy0+Y3Vyci0+d2kpIHsNCi0JCWlmICgoc3RhdHVzICYgQUNQSV9F Q19GTEFHX0lCRikgPT0gMCkNCi0JCQlhY3BpX2VjX3dyaXRlX2RhdGEoZWMsDQotCQkJCWVjLT5j dXJyLT53ZGF0YVtlYy0+Y3Vyci0+d2krK10pOw0KLQkJZWxzZQ0KLQkJCWdvdG8gZXJyOw0KLQl9 IGVsc2UgaWYgKGVjLT5jdXJyLT5ybGVuID4gZWMtPmN1cnItPnJpKSB7DQotCQlpZiAoKHN0YXR1 cyAmIEFDUElfRUNfRkxBR19PQkYpID09IDEpIHsNCi0JCQllYy0+Y3Vyci0+cmRhdGFbZWMtPmN1 cnItPnJpKytdID0gYWNwaV9lY19yZWFkX2RhdGEoZWMpOw0KLQkJCWlmIChlYy0+Y3Vyci0+cmxl biA9PSBlYy0+Y3Vyci0+cmkpDQotCQkJCWVjLT5jdXJyLT5kb25lID0gdHJ1ZTsNCisJc3RydWN0 IHRyYW5zYWN0aW9uICp0Ow0KKwl1OCBzdGF0dXM7DQorCWJvb2wgd2FrZXVwID0gZmFsc2U7DQor DQorCXByX2RlYnVnKFBSRUZJWCAiPT09PT0gJXMgPT09PT1cbiIsIGluX2ludGVycnVwdCgpID8g IklSUSIgOiAiVEFTSyIpOw0KKwlzdGF0dXMgPSBhY3BpX2VjX3JlYWRfc3RhdHVzKGVjKTsNCisJ dCA9IGVjLT5jdXJyOw0KKwlpZiAoIXQpDQorCQlnb3RvIGVycjsNCisJaWYgKHQtPmZsYWdzICYg QUNQSV9FQ19DT01NQU5EX1BPTEwpIHsNCisJCWlmICh0LT53bGVuID4gdC0+d2kpIHsNCisJCQlp ZiAoKHN0YXR1cyAmIEFDUElfRUNfRkxBR19JQkYpID09IDApDQorCQkJCWFjcGlfZWNfd3JpdGVf ZGF0YShlYywgdC0+d2RhdGFbdC0+d2krK10pOw0KKwkJCWVsc2UNCisJCQkJZ290byBlcnI7DQor CQl9IGVsc2UgaWYgKHQtPnJsZW4gPiB0LT5yaSkgew0KKwkJCWlmICgoc3RhdHVzICYgQUNQSV9F Q19GTEFHX09CRikgPT0gMSkgew0KKwkJCQl0LT5yZGF0YVt0LT5yaSsrXSA9IGFjcGlfZWNfcmVh ZF9kYXRhKGVjKTsNCisJCQkJaWYgKHQtPnJsZW4gPT0gdC0+cmkpIHsNCisJCQkJCXQtPmZsYWdz IHw9IEFDUElfRUNfQ09NTUFORF9DT01QTEVURTsNCisJCQkJCXdha2V1cCA9IHRydWU7DQorCQkJ CX0NCisJCQl9IGVsc2UNCisJCQkJZ290byBlcnI7DQorCQl9IGVsc2UgaWYgKHQtPndsZW4gPT0g dC0+d2kgJiYNCisJCQkgICAoc3RhdHVzICYgQUNQSV9FQ19GTEFHX0lCRikgPT0gMCkgew0KKwkJ CXQtPmZsYWdzIHw9IEFDUElfRUNfQ09NTUFORF9DT01QTEVURTsNCisJCQl3YWtldXAgPSB0cnVl Ow0KKwkJfQ0KKwkJcmV0dXJuIHdha2V1cDsNCisJfSBlbHNlIHsNCisJCWlmICgoc3RhdHVzICYg QUNQSV9FQ19GTEFHX0lCRikgPT0gMCkgew0KKwkJCWFjcGlfZWNfd3JpdGVfY21kKGVjLCB0LT5j b21tYW5kKTsNCisJCQl0LT5mbGFncyB8PSBBQ1BJX0VDX0NPTU1BTkRfUE9MTDsNCiAJCX0gZWxz ZQ0KIAkJCWdvdG8gZXJyOw0KLQl9IGVsc2UgaWYgKGVjLT5jdXJyLT53bGVuID09IGVjLT5jdXJy LT53aSAmJg0KLQkJICAgKHN0YXR1cyAmIEFDUElfRUNfRkxBR19JQkYpID09IDApDQotCQllYy0+ Y3Vyci0+ZG9uZSA9IHRydWU7DQotCWdvdG8gdW5sb2NrOw0KKwkJcmV0dXJuIHdha2V1cDsNCisJ fQ0KIGVycjoNCi0JLyogZmFsc2UgaW50ZXJydXB0LCBzdGF0ZSBkaWRuJ3QgY2hhbmdlICovDQot CWlmIChpbl9pbnRlcnJ1cHQoKSkNCi0JCSsrZWMtPmN1cnItPmlycV9jb3VudDsNCi11bmxvY2s6 DQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVjLT5jdXJyX2xvY2ssIGZsYWdzKTsNCisJLyoN CisJICogSWYgU0NJIGJpdCBpcyBzZXQsIHRoZW4gZG9uJ3QgdGhpbmsgaXQncyBhIGZhbHNlIElS UQ0KKwkgKiBvdGhlcndpc2Ugd2lsbCB0YWtlIGEgbm90IGhhbmRsZWQgSVJRIGFzIGEgZmFsc2Ug b25lLg0KKwkgKi8NCisJaWYgKCEoc3RhdHVzICYgQUNQSV9FQ19GTEFHX1NDSSkpIHsNCisJCWlm IChpbl9pbnRlcnJ1cHQoKSAmJiB0KQ0KKwkJCSsrdC0+aXJxX2NvdW50Ow0KKwl9DQorCXJldHVy biB3YWtldXA7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIHN0YXJ0X3RyYW5zYWN0aW9uKHN0cnVjdCBh Y3BpX2VjICplYykNCit7DQorCWVjLT5jdXJyLT5pcnFfY291bnQgPSBlYy0+Y3Vyci0+d2kgPSBl Yy0+Y3Vyci0+cmkgPSAwOw0KKwllYy0+Y3Vyci0+ZmxhZ3MgPSAwOw0KKwkodm9pZClhZHZhbmNl X3RyYW5zYWN0aW9uKGVjKTsNCiB9DQogDQogc3RhdGljIGludCBhY3BpX2VjX3N5bmNfcXVlcnko c3RydWN0IGFjcGlfZWMgKmVjLCB1OCAqZGF0YSk7DQpAQCAtMjI4LDE1ICsyNTIsMTcgQEAgc3Rh dGljIGludCBlY19wb2xsKHN0cnVjdCBhY3BpX2VjICplYykNCiAJCQkvKiBkb24ndCBzbGVlcCB3 aXRoIGRpc2FibGVkIGludGVycnVwdHMgKi8NCiAJCQlpZiAoRUNfRkxBR1NfTVNJIHx8IGlycXNf ZGlzYWJsZWQoKSkgew0KIAkJCQl1ZGVsYXkoQUNQSV9FQ19NU0lfVURFTEFZKTsNCi0JCQkJaWYg KGVjX3RyYW5zYWN0aW9uX2RvbmUoZWMpKQ0KKwkJCQlpZiAoZWNfdHJhbnNhY3Rpb25fY29tcGxl dGVkKGVjKSkNCiAJCQkJCXJldHVybiAwOw0KIAkJCX0gZWxzZSB7DQogCQkJCWlmICh3YWl0X2V2 ZW50X3RpbWVvdXQoZWMtPndhaXQsDQotCQkJCQkJZWNfdHJhbnNhY3Rpb25fZG9uZShlYyksDQor CQkJCQkJZWNfdHJhbnNhY3Rpb25fY29tcGxldGVkKGVjKSwNCiAJCQkJCQltc2Vjc190b19qaWZm aWVzKDEpKSkNCiAJCQkJCXJldHVybiAwOw0KIAkJCX0NCi0JCQlhZHZhbmNlX3RyYW5zYWN0aW9u KGVjLCBhY3BpX2VjX3JlYWRfc3RhdHVzKGVjKSk7DQorCQkJc3Bpbl9sb2NrX2lycXNhdmUoJmVj LT5jdXJyX2xvY2ssIGZsYWdzKTsNCisJCQkodm9pZClhZHZhbmNlX3RyYW5zYWN0aW9uKGVjKTsN CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlYy0+Y3Vycl9sb2NrLCBmbGFncyk7DQogCQl9 IHdoaWxlICh0aW1lX2JlZm9yZShqaWZmaWVzLCBkZWxheSkpOw0KIAkJcHJfZGVidWcoUFJFRklY ICJjb250cm9sbGVyIHJlc2V0LCByZXN0YXJ0IHRyYW5zYWN0aW9uXG4iKTsNCiAJCXNwaW5fbG9j a19pcnFzYXZlKCZlYy0+Y3Vycl9sb2NrLCBmbGFncyk7DQpAQCAtMjY4LDIzICsyOTQsNiBAQCBz dGF0aWMgaW50IGFjcGlfZWNfdHJhbnNhY3Rpb25fdW5sb2NrZWQoc3RydWN0IGFjcGlfZWMgKmVj LA0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IGVjX2NoZWNrX2liZjAoc3RydWN0 IGFjcGlfZWMgKmVjKQ0KLXsNCi0JdTggc3RhdHVzID0gYWNwaV9lY19yZWFkX3N0YXR1cyhlYyk7 DQotCXJldHVybiAoc3RhdHVzICYgQUNQSV9FQ19GTEFHX0lCRikgPT0gMDsNCi19DQotDQotc3Rh dGljIGludCBlY193YWl0X2liZjAoc3RydWN0IGFjcGlfZWMgKmVjKQ0KLXsNCi0JdW5zaWduZWQg bG9uZyBkZWxheSA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKGVjX2RlbGF5KTsNCi0JLyog aW50ZXJydXB0IHdhaXQgbWFudWFsbHkgaWYgR1BFIG1vZGUgaXMgbm90IGFjdGl2ZSAqLw0KLQl3 aGlsZSAodGltZV9iZWZvcmUoamlmZmllcywgZGVsYXkpKQ0KLQkJaWYgKHdhaXRfZXZlbnRfdGlt ZW91dChlYy0+d2FpdCwgZWNfY2hlY2tfaWJmMChlYyksDQotCQkJCQltc2Vjc190b19qaWZmaWVz KDEpKSkNCi0JCQlyZXR1cm4gMDsNCi0JcmV0dXJuIC1FVElNRTsNCi19DQotDQogc3RhdGljIGlu dCBhY3BpX2VjX3RyYW5zYWN0aW9uKHN0cnVjdCBhY3BpX2VjICplYywgc3RydWN0IHRyYW5zYWN0 aW9uICp0KQ0KIHsNCiAJaW50IHN0YXR1czsNCkBAIC0zMDUsMTMgKzMxNCw4IEBAIHN0YXRpYyBp bnQgYWNwaV9lY190cmFuc2FjdGlvbihzdHJ1Y3QgYWNwaV9lYyAqZWMsIHN0cnVjdCB0cmFuc2Fj dGlvbiAqdCkNCiAJCQlnb3RvIHVubG9jazsNCiAJCX0NCiAJfQ0KLQlpZiAoZWNfd2FpdF9pYmYw KGVjKSkgew0KLQkJcHJfZXJyKFBSRUZJWCAiaW5wdXQgYnVmZmVyIGlzIG5vdCBlbXB0eSwgIg0K LQkJCQkiYWJvcnRpbmcgdHJhbnNhY3Rpb25cbiIpOw0KLQkJc3RhdHVzID0gLUVUSU1FOw0KLQkJ Z290byBlbmQ7DQotCX0NCi0JcHJfZGVidWcoUFJFRklYICJ0cmFuc2FjdGlvbiBzdGFydFxuIik7 DQorCXByX2RlYnVnKFBSRUZJWCAidHJhbnNhY3Rpb24gc3RhcnQgKGNtZD0weCUwMngsIGFkZHI9 MHglMDJ4KVxuIiwNCisJCQl0LT5jb21tYW5kLCB0LT53ZGF0YSA/IHQtPndkYXRhWzBdIDogMCk7 DQogCS8qIGRpc2FibGUgR1BFIGR1cmluZyB0cmFuc2FjdGlvbiBpZiBzdG9ybSBpcyBkZXRlY3Rl ZCAqLw0KIAlpZiAodGVzdF9iaXQoRUNfRkxBR1NfR1BFX1NUT1JNLCAmZWMtPmZsYWdzKSkgew0K IAkJLyogSXQgaGFzIHRvIGJlIGRpc2FibGVkLCBzbyB0aGF0IGl0IGRvZXNuJ3QgdHJpZ2dlci4g Ki8NCkBAIC0zMjcsMTIgKzMzMSwxMiBAQCBzdGF0aWMgaW50IGFjcGlfZWNfdHJhbnNhY3Rpb24o c3RydWN0IGFjcGlfZWMgKmVjLCBzdHJ1Y3QgdHJhbnNhY3Rpb24gKnQpDQogCQkvKiBJdCBpcyBz YWZlIHRvIGVuYWJsZSB0aGUgR1BFIG91dHNpZGUgb2YgdGhlIHRyYW5zYWN0aW9uLiAqLw0KIAkJ YWNwaV9lbmFibGVfZ3BlKE5VTEwsIGVjLT5ncGUpOw0KIAl9IGVsc2UgaWYgKHQtPmlycV9jb3Vu dCA+IGVjX3N0b3JtX3RocmVzaG9sZCkgew0KLQkJcHJfaW5mbyhQUkVGSVggIkdQRSBzdG9ybSBk ZXRlY3RlZCwgIg0KLQkJCSJ0cmFuc2FjdGlvbnMgd2lsbCB1c2UgcG9sbGluZyBtb2RlXG4iKTsN CisJCXByX2luZm8oUFJFRklYICJHUEUgc3Rvcm0gZGV0ZWN0ZWQoJWQgR1BFcyksICINCisJCQki dHJhbnNhY3Rpb25zIHdpbGwgdXNlIHBvbGxpbmcgbW9kZVxuIiwNCisJCQl0LT5pcnFfY291bnQp Ow0KIAkJc2V0X2JpdChFQ19GTEFHU19HUEVfU1RPUk0sICZlYy0+ZmxhZ3MpOw0KIAl9DQogCXBy X2RlYnVnKFBSRUZJWCAidHJhbnNhY3Rpb24gZW5kXG4iKTsNCi1lbmQ6DQogCWlmIChlYy0+Z2xv YmFsX2xvY2spDQogCQlhY3BpX3JlbGVhc2VfZ2xvYmFsX2xvY2soZ2xrKTsNCiB1bmxvY2s6DQpA QCAtNDA0LDcgKzQwOCw3IEBAIGludCBlY19idXJzdF9kaXNhYmxlKHZvaWQpDQogDQogRVhQT1JU X1NZTUJPTChlY19idXJzdF9kaXNhYmxlKTsNCiANCi1pbnQgZWNfcmVhZCh1OCBhZGRyLCB1OCAq IHZhbCkNCitpbnQgZWNfcmVhZCh1OCBhZGRyLCB1OCAqdmFsKQ0KIHsNCiAJaW50IGVycjsNCiAJ dTggdGVtcF9kYXRhOw0KQEAgLTY0MiwxNiArNjQ2LDE0IEBAIHN0YXRpYyBpbnQgZWNfY2hlY2tf c2NpKHN0cnVjdCBhY3BpX2VjICplYywgdTggc3RhdGUpDQogc3RhdGljIHUzMiBhY3BpX2VjX2dw ZV9oYW5kbGVyKGFjcGlfaGFuZGxlIGdwZV9kZXZpY2UsDQogCXUzMiBncGVfbnVtYmVyLCB2b2lk ICpkYXRhKQ0KIHsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCiAJc3RydWN0IGFjcGlfZWMgKmVj ID0gZGF0YTsNCiANCi0JcHJfZGVidWcoUFJFRklYICJ+fn4+IGludGVycnVwdFxuIik7DQotDQot CWFkdmFuY2VfdHJhbnNhY3Rpb24oZWMsIGFjcGlfZWNfcmVhZF9zdGF0dXMoZWMpKTsNCi0JaWYg KGVjX3RyYW5zYWN0aW9uX2RvbmUoZWMpICYmDQotCSAgICAoYWNwaV9lY19yZWFkX3N0YXR1cyhl YykgJiBBQ1BJX0VDX0ZMQUdfSUJGKSA9PSAwKSB7DQorCXNwaW5fbG9ja19pcnFzYXZlKCZlYy0+ Y3Vycl9sb2NrLCBmbGFncyk7DQorCWlmIChhZHZhbmNlX3RyYW5zYWN0aW9uKGVjKSkNCiAJCXdh a2VfdXAoJmVjLT53YWl0KTsNCi0JCWVjX2NoZWNrX3NjaShlYywgYWNwaV9lY19yZWFkX3N0YXR1 cyhlYykpOw0KLQl9DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVjLT5jdXJyX2xvY2ssIGZs YWdzKTsNCisJZWNfY2hlY2tfc2NpKGVjLCBhY3BpX2VjX3JlYWRfc3RhdHVzKGVjKSk7DQogCXJl dHVybiBBQ1BJX0lOVEVSUlVQVF9IQU5ETEVEIHwgQUNQSV9SRUVOQUJMRV9HUEU7DQogfQ0KIA0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMgYi9kcml2ZXJzL2F0YS9saWJh dGEtY29yZS5jDQppbmRleCAyYjY2MjcyNS4uMmRkZjczNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv YXRhL2xpYmF0YS1jb3JlLmMNCisrKyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMNCkBAIC00 NzExLDYgKzQ3MTEsMTAgQEAgdm9pZCBzd2FwX2J1Zl9sZTE2KHUxNiAqYnVmLCB1bnNpZ25lZCBp bnQgYnVmX3dvcmRzKQ0KICAqCWF0YV9xY19uZXcgLSBSZXF1ZXN0IGFuIGF2YWlsYWJsZSBBVEEg Y29tbWFuZCwgZm9yIHF1ZXVlaW5nDQogICoJQGFwOiB0YXJnZXQgcG9ydA0KICAqDQorICoJU29t ZSBBVEEgaG9zdCBjb250cm9sbGVycyBtYXkgaW1wbGVtZW50IGEgcXVldWUgZGVwdGggd2hpY2gg aXMgbGVzcw0KKyAqCXRoYW4gQVRBX01BWF9RVUVVRS4gU28gd2Ugc2hvdWxkbid0IGFsbG9jYXRl IGEgdGFnIHdoaWNoIGlzIGJleW9uZA0KKyAqCXRoZSBoYXJkd2FyZSBsaW1pdGF0aW9uLg0KKyAq DQogICoJTE9DS0lORzoNCiAgKglOb25lLg0KICAqLw0KQEAgLTQ3MTgsMTQgKzQ3MjIsMTUgQEAg dm9pZCBzd2FwX2J1Zl9sZTE2KHUxNiAqYnVmLCB1bnNpZ25lZCBpbnQgYnVmX3dvcmRzKQ0KIHN0 YXRpYyBzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKmF0YV9xY19uZXcoc3RydWN0IGF0YV9wb3J0ICph cCkNCiB7DQogCXN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMgPSBOVUxMOw0KKwl1bnNpZ25lZCBp bnQgbWF4X3F1ZXVlID0gYXAtPmhvc3QtPm5fdGFnczsNCiAJdW5zaWduZWQgaW50IGksIHRhZzsN CiANCiAJLyogbm8gY29tbWFuZCB3aGlsZSBmcm96ZW4gKi8NCiAJaWYgKHVubGlrZWx5KGFwLT5w ZmxhZ3MgJiBBVEFfUEZMQUdfRlJPWkVOKSkNCiAJCXJldHVybiBOVUxMOw0KIA0KLQlmb3IgKGkg PSAwOyBpIDwgQVRBX01BWF9RVUVVRTsgaSsrKSB7DQotCQl0YWcgPSAoaSArIGFwLT5sYXN0X3Rh ZyArIDEpICUgQVRBX01BWF9RVUVVRTsNCisJZm9yIChpID0gMCwgdGFnID0gYXAtPmxhc3RfdGFn ICsgMTsgaSA8IG1heF9xdWV1ZTsgaSsrLCB0YWcrKykgew0KKwkJdGFnID0gdGFnIDwgbWF4X3F1 ZXVlID8gdGFnIDogMDsNCiANCiAJCS8qIHRoZSBsYXN0IHRhZyBpcyByZXNlcnZlZCBmb3IgaW50 ZXJuYWwgY29tbWFuZC4gKi8NCiAJCWlmICh0YWcgPT0gQVRBX1RBR19JTlRFUk5BTCkNCkBAIC01 OTE4LDYgKzU5MjMsNyBAQCB2b2lkIGF0YV9ob3N0X2luaXQoc3RydWN0IGF0YV9ob3N0ICpob3N0 LCBzdHJ1Y3QgZGV2aWNlICpkZXYsDQogew0KIAlzcGluX2xvY2tfaW5pdCgmaG9zdC0+bG9jayk7 DQogCW11dGV4X2luaXQoJmhvc3QtPmVoX211dGV4KTsNCisJaG9zdC0+bl90YWdzID0gQVRBX01B WF9RVUVVRSAtIDE7DQogCWhvc3QtPmRldiA9IGRldjsNCiAJaG9zdC0+ZmxhZ3MgPSBmbGFnczsN CiAJaG9zdC0+b3BzID0gb3BzOw0KQEAgLTU5OTgsNiArNjAwNCw4IEBAIGludCBhdGFfaG9zdF9y ZWdpc3RlcihzdHJ1Y3QgYXRhX2hvc3QgKmhvc3QsIHN0cnVjdCBzY3NpX2hvc3RfdGVtcGxhdGUg KnNodCkNCiB7DQogCWludCBpLCByYzsNCiANCisJaG9zdC0+bl90YWdzID0gY2xhbXAoc2h0LT5j YW5fcXVldWUsIDEsIEFUQV9NQVhfUVVFVUUgLSAxKTsNCisNCiAJLyogaG9zdCBtdXN0IGhhdmUg YmVlbiBzdGFydGVkICovDQogCWlmICghKGhvc3QtPmZsYWdzICYgQVRBX0hPU1RfU1RBUlRFRCkp IHsNCiAJCWRldl9lcnIoaG9zdC0+ZGV2LCAiQlVHOiB0cnlpbmcgdG8gcmVnaXN0ZXIgdW5zdGFy dGVkIGhvc3RcbiIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hcHBsaWNvbS5jIGIvZHJp dmVycy9jaGFyL2FwcGxpY29tLmMNCmluZGV4IDI1MzczZGYuLjVkMDY5YzcgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL2NoYXIvYXBwbGljb20uYw0KKysrIGIvZHJpdmVycy9jaGFyL2FwcGxpY29tLmMN CkBAIC0zNDUsNyArMzQ1LDYgQEAgb3V0Og0KIAkJCWZyZWVfaXJxKGFwYnNbaV0uaXJxLCAmZHVt bXkpOw0KIAkJaW91bm1hcChhcGJzW2ldLlJhbUlPKTsNCiAJfQ0KLQlwY2lfZGlzYWJsZV9kZXZp Y2UoZGV2KTsNCiAJcmV0dXJuIHJldDsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9hdG9tYmlvc19kcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlv c19kcC5jDQppbmRleCAzMjU0ZDUxZS4uZThhM2MzMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vYXRvbWJpb3NfZHAuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9h dG9tYmlvc19kcC5jDQpAQCAtODksNyArODksNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9wcm9jZXNz X2F1eF9jaChzdHJ1Y3QgcmFkZW9uX2kyY19jaGFuICpjaGFuLA0KIAkvKiBmbGFncyBub3QgemVy byAqLw0KIAlpZiAoYXJncy52MS51Y1JlcGx5U3RhdHVzID09IDIpIHsNCiAJCURSTV9ERUJVR19L TVMoImRwX2F1eF9jaCBmbGFncyBub3QgemVyb1xuIik7DQotCQlyZXR1cm4gLUVCVVNZOw0KKwkJ cmV0dXJuIC1FSU87DQogCX0NCiANCiAJLyogZXJyb3IgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9kaXNwbGF5LmMNCmluZGV4IDMyOTFhYjguLmFkNWQ3NzQgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMNCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYw0KQEAgLTY5Nyw2ICs2OTcsMTAgQEAgaW50IHJh ZGVvbl9kZGNfZ2V0X21vZGVzKHN0cnVjdCByYWRlb25fY29ubmVjdG9yICpyYWRlb25fY29ubmVj dG9yKQ0KIAlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7DQog CWludCByZXQgPSAwOw0KIA0KKwkvKiBkb24ndCBsZWFrIHRoZSBlZGlkIGlmIHdlIGFscmVhZHkg ZmV0Y2hlZCBpdCBpbiBkZXRlY3QoKSAqLw0KKwlpZiAocmFkZW9uX2Nvbm5lY3Rvci0+ZWRpZCkN CisJCWdvdG8gZ290X2VkaWQ7DQorDQogCS8qIG9uIGh3IHdpdGggcm91dGVycywgc2VsZWN0IHJp Z2h0IHBvcnQgKi8NCiAJaWYgKHJhZGVvbl9jb25uZWN0b3ItPnJvdXRlci5kZGNfdmFsaWQpDQog CQlyYWRlb25fcm91dGVyX3NlbGVjdF9kZGNfcG9ydChyYWRlb25fY29ubmVjdG9yKTsNCkBAIC03 MzYsNiArNzQwLDcgQEAgaW50IHJhZGVvbl9kZGNfZ2V0X21vZGVzKHN0cnVjdCByYWRlb25fY29u bmVjdG9yICpyYWRlb25fY29ubmVjdG9yKQ0KIAkJCXJhZGVvbl9jb25uZWN0b3ItPmVkaWQgPSBy YWRlb25fYmlvc19nZXRfaGFyZGNvZGVkX2VkaWQocmRldik7DQogCX0NCiAJaWYgKHJhZGVvbl9j b25uZWN0b3ItPmVkaWQpIHsNCitnb3RfZWRpZDoNCiAJCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRh dGVfZWRpZF9wcm9wZXJ0eSgmcmFkZW9uX2Nvbm5lY3Rvci0+YmFzZSwgcmFkZW9uX2Nvbm5lY3Rv ci0+ZWRpZCk7DQogCQlyZXQgPSBkcm1fYWRkX2VkaWRfbW9kZXMoJnJhZGVvbl9jb25uZWN0b3It PmJhc2UsIHJhZGVvbl9jb25uZWN0b3ItPmVkaWQpOw0KIAkJZHJtX2VkaWRfdG9fZWxkKCZyYWRl b25fY29ubmVjdG9yLT5iYXNlLCByYWRlb25fY29ubmVjdG9yLT5lZGlkKTsNCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZmIuYw0KaW5kZXggOTA3YzI2Zi4uN2YxNmZmMiAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZiLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2ZiLmMNCkBAIC0xNzksNyArMTc5LDYgQEAgc3RhdGljIGludCB2bXdfZmJf c2V0X3BhcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykNCiAJCXZtd193cml0ZSh2bXdfcHJpdiwgU1ZH QV9SRUdfRElTUExBWV9QT1NJVElPTl9ZLCBpbmZvLT52YXIueW9mZnNldCk7DQogCQl2bXdfd3Jp dGUodm13X3ByaXYsIFNWR0FfUkVHX0RJU1BMQVlfV0lEVEgsIGluZm8tPnZhci54cmVzKTsNCiAJ CXZtd193cml0ZSh2bXdfcHJpdiwgU1ZHQV9SRUdfRElTUExBWV9IRUlHSFQsIGluZm8tPnZhci55 cmVzKTsNCi0JCXZtd193cml0ZSh2bXdfcHJpdiwgU1ZHQV9SRUdfQllURVNfUEVSX0xJTkUsIGlu Zm8tPmZpeC5saW5lX2xlbmd0aCk7DQogCQl2bXdfd3JpdGUodm13X3ByaXYsIFNWR0FfUkVHX0RJ U1BMQVlfSUQsIFNWR0FfSURfSU5WQUxJRCk7DQogCX0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJz L2h3bW9uL2FkbTEwMjkuYyBiL2RyaXZlcnMvaHdtb24vYWRtMTAyOS5jDQppbmRleCAwYjhhM2Ix Li4zZGJmNDA1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9od21vbi9hZG0xMDI5LmMNCisrKyBiL2Ry aXZlcnMvaHdtb24vYWRtMTAyOS5jDQpAQCAtMjI4LDYgKzIyOCw5IEBAIHN0YXRpYyBzc2l6ZV90 IHNldF9mYW5fZGl2KHN0cnVjdCBkZXZpY2UgKmRldiwNCiAJLyogVXBkYXRlIHRoZSB2YWx1ZSAq Lw0KIAlyZWcgPSAocmVnICYgMHgzRikgfCAodmFsIDw8IDYpOw0KIA0KKwkvKiBVcGRhdGUgdGhl IGNhY2hlICovDQorCWRhdGEtPmZhbl9kaXZbYXR0ci0+aW5kZXhdID0gcmVnOw0KKw0KIAkvKiBX cml0ZSB2YWx1ZSAqLw0KIAlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwNCiAJCQkJ ICBBRE0xMDI5X1JFR19GQU5fRElWW2F0dHItPmluZGV4XSwgcmVnKTsNCmRpZmYgLS1naXQgYS9k cml2ZXJzL2h3bW9uL2FkbTEwMzEuYyBiL2RyaXZlcnMvaHdtb24vYWRtMTAzMS5jDQppbmRleCAw NjgzZTZiLi41ZjExZTIzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9od21vbi9hZG0xMDMxLmMNCisr KyBiL2RyaXZlcnMvaHdtb24vYWRtMTAzMS5jDQpAQCAtMzUyLDYgKzM1Miw3IEBAIHNldF9hdXRv X3RlbXBfbWluKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0 dHIsDQogCWludCBuciA9IHRvX3NlbnNvcl9kZXZfYXR0cihhdHRyKS0+aW5kZXg7DQogCWludCB2 YWwgPSBzaW1wbGVfc3RydG9sKGJ1ZiwgTlVMTCwgMTApOw0KIA0KKwl2YWwgPSBjbGFtcF92YWwo dmFsLCAwLCAxMjcwMDApOw0KIAltdXRleF9sb2NrKCZkYXRhLT51cGRhdGVfbG9jayk7DQogCWRh dGEtPmF1dG9fdGVtcFtucl0gPSBBVVRPX1RFTVBfTUlOX1RPX1JFRyh2YWwsIGRhdGEtPmF1dG9f dGVtcFtucl0pOw0KIAlhZG0xMDMxX3dyaXRlX3ZhbHVlKGNsaWVudCwgQURNMTAzMV9SRUdfQVVU T19URU1QKG5yKSwNCkBAIC0zNzYsNiArMzc3LDcgQEAgc2V0X2F1dG9fdGVtcF9tYXgoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJaW50IG5yID0g dG9fc2Vuc29yX2Rldl9hdHRyKGF0dHIpLT5pbmRleDsNCiAJaW50IHZhbCA9IHNpbXBsZV9zdHJ0 b2woYnVmLCBOVUxMLCAxMCk7DQogDQorCXZhbCA9IGNsYW1wX3ZhbCh2YWwsIDAsIDEyNzAwMCk7 DQogCW11dGV4X2xvY2soJmRhdGEtPnVwZGF0ZV9sb2NrKTsNCiAJZGF0YS0+dGVtcF9tYXhbbnJd ID0gQVVUT19URU1QX01BWF9UT19SRUcodmFsLCBkYXRhLT5hdXRvX3RlbXBbbnJdLCBkYXRhLT5w d21bbnJdKTsNCiAJYWRtMTAzMV93cml0ZV92YWx1ZShjbGllbnQsIEFETTEwMzFfUkVHX0FVVE9f VEVNUChuciksDQpAQCAtNjUxLDcgKzY1Myw3IEBAIHN0YXRpYyBzc2l6ZV90IHNldF90ZW1wX21p bihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0KIAlp bnQgdmFsOw0KIA0KIAl2YWwgPSBzaW1wbGVfc3RydG9sKGJ1ZiwgTlVMTCwgMTApOw0KLQl2YWwg PSBTRU5TT1JTX0xJTUlUKHZhbCwgLTU1MDAwLCBuciA9PSAwID8gMTI3NzUwIDogMTI3ODc1KTsN CisJdmFsID0gY2xhbXBfdmFsKHZhbCwgLTU1MDAwLCAxMjcwMDApOw0KIAltdXRleF9sb2NrKCZk YXRhLT51cGRhdGVfbG9jayk7DQogCWRhdGEtPnRlbXBfbWluW25yXSA9IFRFTVBfVE9fUkVHKHZh bCk7DQogCWFkbTEwMzFfd3JpdGVfdmFsdWUoY2xpZW50LCBBRE0xMDMxX1JFR19URU1QX01JTihu ciksDQpAQCAtNjY4LDcgKzY3MCw3IEBAIHN0YXRpYyBzc2l6ZV90IHNldF90ZW1wX21heChzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0KIAlpbnQgdmFs Ow0KIA0KIAl2YWwgPSBzaW1wbGVfc3RydG9sKGJ1ZiwgTlVMTCwgMTApOw0KLQl2YWwgPSBTRU5T T1JTX0xJTUlUKHZhbCwgLTU1MDAwLCBuciA9PSAwID8gMTI3NzUwIDogMTI3ODc1KTsNCisJdmFs ID0gY2xhbXBfdmFsKHZhbCwgLTU1MDAwLCAxMjcwMDApOw0KIAltdXRleF9sb2NrKCZkYXRhLT51 cGRhdGVfbG9jayk7DQogCWRhdGEtPnRlbXBfbWF4W25yXSA9IFRFTVBfVE9fUkVHKHZhbCk7DQog CWFkbTEwMzFfd3JpdGVfdmFsdWUoY2xpZW50LCBBRE0xMDMxX1JFR19URU1QX01BWChuciksDQpA QCAtNjg1LDcgKzY4Nyw3IEBAIHN0YXRpYyBzc2l6ZV90IHNldF90ZW1wX2NyaXQoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJaW50IHZhbDsNCiAN CiAJdmFsID0gc2ltcGxlX3N0cnRvbChidWYsIE5VTEwsIDEwKTsNCi0JdmFsID0gU0VOU09SU19M SU1JVCh2YWwsIC01NTAwMCwgbnIgPT0gMCA/IDEyNzc1MCA6IDEyNzg3NSk7DQorCXZhbCA9IGNs YW1wX3ZhbCh2YWwsIC01NTAwMCwgMTI3MDAwKTsNCiAJbXV0ZXhfbG9jaygmZGF0YS0+dXBkYXRl X2xvY2spOw0KIAlkYXRhLT50ZW1wX2NyaXRbbnJdID0gVEVNUF9UT19SRUcodmFsKTsNCiAJYWRt MTAzMV93cml0ZV92YWx1ZShjbGllbnQsIEFETTEwMzFfUkVHX1RFTVBfQ1JJVChuciksDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9od21vbi9hZHQ3NDcwLmMgYi9kcml2ZXJzL2h3bW9uL2FkdDc0NzAu Yw0KaW5kZXggYTk3MjZjMS4uM2ExNWZkNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaHdtb24vYWR0 NzQ3MC5jDQorKysgYi9kcml2ZXJzL2h3bW9uL2FkdDc0NzAuYw0KQEAgLTUxNSw3ICs1MTUsNyBA QCBzdGF0aWMgc3NpemVfdCBzZXRfdGVtcF9taW4oc3RydWN0IGRldmljZSAqZGV2LA0KIAkJcmV0 dXJuIC1FSU5WQUw7DQogDQogCXRlbXAgPSBESVZfUk9VTkRfQ0xPU0VTVCh0ZW1wLCAxMDAwKTsN Ci0JdGVtcCA9IFNFTlNPUlNfTElNSVQodGVtcCwgMCwgMjU1KTsNCisJdGVtcCA9IGNsYW1wX3Zh bCh0ZW1wLCAtMTI4LCAxMjcpOw0KIA0KIAltdXRleF9sb2NrKCZkYXRhLT5sb2NrKTsNCiAJZGF0 YS0+dGVtcF9taW5bYXR0ci0+aW5kZXhdID0gdGVtcDsNCkBAIC01NDksNyArNTQ5LDcgQEAgc3Rh dGljIHNzaXplX3Qgc2V0X3RlbXBfbWF4KHN0cnVjdCBkZXZpY2UgKmRldiwNCiAJCXJldHVybiAt RUlOVkFMOw0KIA0KIAl0ZW1wID0gRElWX1JPVU5EX0NMT1NFU1QodGVtcCwgMTAwMCk7DQotCXRl bXAgPSBTRU5TT1JTX0xJTUlUKHRlbXAsIDAsIDI1NSk7DQorCXRlbXAgPSBjbGFtcF92YWwodGVt cCwgLTEyOCwgMTI3KTsNCiANCiAJbXV0ZXhfbG9jaygmZGF0YS0+bG9jayk7DQogCWRhdGEtPnRl bXBfbWF4W2F0dHItPmluZGV4XSA9IHRlbXA7DQpAQCAtODI2LDcgKzgyNiw3IEBAIHN0YXRpYyBz c2l6ZV90IHNldF9wd21fdG1pbihzdHJ1Y3QgZGV2aWNlICpkZXYsDQogCQlyZXR1cm4gLUVJTlZB TDsNCiANCiAJdGVtcCA9IERJVl9ST1VORF9DTE9TRVNUKHRlbXAsIDEwMDApOw0KLQl0ZW1wID0g U0VOU09SU19MSU1JVCh0ZW1wLCAwLCAyNTUpOw0KKwl0ZW1wID0gY2xhbXBfdmFsKHRlbXAsIC0x MjgsIDEyNyk7DQogDQogCW11dGV4X2xvY2soJmRhdGEtPmxvY2spOw0KIAlkYXRhLT5wd21fdG1p blthdHRyLT5pbmRleF0gPSB0ZW1wOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYW1jNjgy MS5jIGIvZHJpdmVycy9od21vbi9hbWM2ODIxLmMNCmluZGV4IDQwMzM5NzQuLjc1YmU2YzQgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL2h3bW9uL2FtYzY4MjEuYw0KKysrIGIvZHJpdmVycy9od21vbi9h bWM2ODIxLmMNCkBAIC03MTUsNyArNzE1LDcgQEAgc3RhdGljIFNFTlNPUl9ERVZJQ0VfQVRUUih0 ZW1wMV9tYXhfYWxhcm0sIFNfSVJVR08sDQogCWdldF90ZW1wX2FsYXJtLCBOVUxMLCBJRFhfVEVN UDFfTUFYKTsNCiBzdGF0aWMgU0VOU09SX0RFVklDRV9BVFRSKHRlbXAxX2NyaXRfYWxhcm0sIFNf SVJVR08sDQogCWdldF90ZW1wX2FsYXJtLCBOVUxMLCBJRFhfVEVNUDFfQ1JJVCk7DQotc3RhdGlj IFNFTlNPUl9ERVZJQ0VfQVRUUih0ZW1wMl9pbnB1dCwgU19JUlVHTyB8IFNfSVdVU1IsDQorc3Rh dGljIFNFTlNPUl9ERVZJQ0VfQVRUUih0ZW1wMl9pbnB1dCwgU19JUlVHTywNCiAJZ2V0X3RlbXAs IE5VTEwsIElEWF9URU1QMl9JTlBVVCk7DQogc3RhdGljIFNFTlNPUl9ERVZJQ0VfQVRUUih0ZW1w Ml9taW4sIFNfSVJVR08gfCBTX0lXVVNSLCBnZXRfdGVtcCwNCiAJc2V0X3RlbXAsIElEWF9URU1Q Ml9NSU4pOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vZW1jMjEwMy5jIGIvZHJpdmVycy9o d21vbi9lbWMyMTAzLmMNCmluZGV4IGFmOTE0YWQuLmEwNzRkMjEgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL2h3bW9uL2VtYzIxMDMuYw0KKysrIGIvZHJpdmVycy9od21vbi9lbWMyMTAzLmMNCkBAIC0y NDgsOSArMjQ4LDcgQEAgc3RhdGljIHNzaXplX3Qgc2V0X3RlbXBfbWluKHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRhLA0KIAlpZiAocmVzdWx0IDwgMCkNCiAJ CXJldHVybiAtRUlOVkFMOw0KIA0KLQl2YWwgPSBESVZfUk9VTkRfQ0xPU0VTVCh2YWwsIDEwMDAp Ow0KLQlpZiAoKHZhbCA8IC02MykgfHwgKHZhbCA+IDEyNykpDQotCQlyZXR1cm4gLUVJTlZBTDsN CisJdmFsID0gY2xhbXBfdmFsKERJVl9ST1VORF9DTE9TRVNUKHZhbCwgMTAwMCksIC02MywgMTI3 KTsNCiANCiAJbXV0ZXhfbG9jaygmZGF0YS0+dXBkYXRlX2xvY2spOw0KIAlkYXRhLT50ZW1wX21p bltucl0gPSB2YWw7DQpAQCAtMjcyLDkgKzI3MCw3IEBAIHN0YXRpYyBzc2l6ZV90IHNldF90ZW1w X21heChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkYSwNCiAJ aWYgKHJlc3VsdCA8IDApDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCi0JdmFsID0gRElWX1JPVU5E X0NMT1NFU1QodmFsLCAxMDAwKTsNCi0JaWYgKCh2YWwgPCAtNjMpIHx8ICh2YWwgPiAxMjcpKQ0K LQkJcmV0dXJuIC1FSU5WQUw7DQorCXZhbCA9IGNsYW1wX3ZhbChESVZfUk9VTkRfQ0xPU0VTVCh2 YWwsIDEwMDApLCAtNjMsIDEyNyk7DQogDQogCW11dGV4X2xvY2soJmRhdGEtPnVwZGF0ZV9sb2Nr KTsNCiAJZGF0YS0+dGVtcF9tYXhbbnJdID0gdmFsOw0KQEAgLTM4NiwxNSArMzgyLDE0IEBAIHN0 YXRpYyBzc2l6ZV90IHNldF9mYW5fdGFyZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgKmRhLA0KIHsNCiAJc3RydWN0IGVtYzIxMDNfZGF0YSAqZGF0YSA9IGVt YzIxMDNfdXBkYXRlX2RldmljZShkZXYpOw0KIAlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0g dG9faTJjX2NsaWVudChkZXYpOw0KLQlsb25nIHJwbV90YXJnZXQ7DQorCXVuc2lnbmVkIGxvbmcg cnBtX3RhcmdldDsNCiANCi0JaW50IHJlc3VsdCA9IHN0cmljdF9zdHJ0b2woYnVmLCAxMCwgJnJw bV90YXJnZXQpOw0KKwlpbnQgcmVzdWx0ID0ga3N0cnRvdWwoYnVmLCAxMCwgJnJwbV90YXJnZXQp Ow0KIAlpZiAocmVzdWx0IDwgMCkNCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KIAkvKiBEYXRhc2hl ZXQgc3RhdGVzIDE2Mzg0IGFzIG1heGltdW0gUlBNIHRhcmdldCAodGFibGUgMy4yKSAqLw0KLQlp ZiAoKHJwbV90YXJnZXQgPCAwKSB8fCAocnBtX3RhcmdldCA+IDE2Mzg0KSkNCi0JCXJldHVybiAt RUlOVkFMOw0KKwlycG1fdGFyZ2V0ID0gY2xhbXBfdmFsKHJwbV90YXJnZXQsIDAsIDE2Mzg0KTsN CiANCiAJbXV0ZXhfbG9jaygmZGF0YS0+dXBkYXRlX2xvY2spOw0KIA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaW9tbXUvZG1hci5jIGIvZHJpdmVycy9pb21tdS9kbWFyLmMNCmluZGV4IDk3YjJlMjEu LmNmMDY1ZGYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2lvbW11L2RtYXIuYw0KKysrIGIvZHJpdmVy cy9pb21tdS9kbWFyLmMNCkBAIC01ODIsNyArNTgyLDcgQEAgaW50IGFsbG9jX2lvbW11KHN0cnVj dCBkbWFyX2RyaGRfdW5pdCAqZHJoZCkNCiB7DQogCXN0cnVjdCBpbnRlbF9pb21tdSAqaW9tbXU7 DQogCWludCBtYXBfc2l6ZTsNCi0JdTMyIHZlcjsNCisJdTMyIHZlciwgc3RzOw0KIAlzdGF0aWMg aW50IGlvbW11X2FsbG9jYXRlZCA9IDA7DQogCWludCBhZ2F3ID0gMDsNCiAJaW50IG1zYWdhdyA9 IDA7DQpAQCAtNjUyLDYgKzY1MiwxNSBAQCBpbnQgYWxsb2NfaW9tbXUoc3RydWN0IGRtYXJfZHJo ZF91bml0ICpkcmhkKQ0KIAkJKHVuc2lnbmVkIGxvbmcgbG9uZylpb21tdS0+Y2FwLA0KIAkJKHVu c2lnbmVkIGxvbmcgbG9uZylpb21tdS0+ZWNhcCk7DQogDQorCS8qIFJlZmxlY3Qgc3RhdHVzIGlu IGdjbWQgKi8NCisJc3RzID0gcmVhZGwoaW9tbXUtPnJlZyArIERNQVJfR1NUU19SRUcpOw0KKwlp ZiAoc3RzICYgRE1BX0dTVFNfSVJFUykNCisJCWlvbW11LT5nY21kIHw9IERNQV9HQ01EX0lSRTsN CisJaWYgKHN0cyAmIERNQV9HU1RTX1RFUykNCisJCWlvbW11LT5nY21kIHw9IERNQV9HQ01EX1RF Ow0KKwlpZiAoc3RzICYgRE1BX0dTVFNfUUlFUykNCisJCWlvbW11LT5nY21kIHw9IERNQV9HQ01E X1FJRTsNCisNCiAJcmF3X3NwaW5fbG9ja19pbml0KCZpb21tdS0+cmVnaXN0ZXJfbG9jayk7DQog DQogCWRyaGQtPmlvbW11ID0gaW9tbXU7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9pbnRl bC1pb21tdS5jIGIvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jDQppbmRleCBiYjFlNTc5Li4y NzZlZjM4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jDQorKysgYi9k cml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMNCkBAIC0zNjMwLDYgKzM2MzAsNyBAQCBzdGF0aWMg c3RydWN0IG5vdGlmaWVyX2Jsb2NrIGRldmljZV9uYiA9IHsNCiBpbnQgX19pbml0IGludGVsX2lv bW11X2luaXQodm9pZCkNCiB7DQogCWludCByZXQgPSAwOw0KKwlzdHJ1Y3QgZG1hcl9kcmhkX3Vu aXQgKmRyaGQ7DQogDQogCS8qIFZULWQgaXMgcmVxdWlyZWQgZm9yIGEgVFhUL3Rib290IGxhdW5j aCwgc28gZW5mb3JjZSB0aGF0ICovDQogCWZvcmNlX29uID0gdGJvb3RfZm9yY2VfaW9tbXUoKTsN CkBAIC0zNjQwLDYgKzM2NDEsMjAgQEAgaW50IF9faW5pdCBpbnRlbF9pb21tdV9pbml0KHZvaWQp DQogCQlyZXR1cm4gCS1FTk9ERVY7DQogCX0NCiANCisJLyoNCisJICogRGlzYWJsZSB0cmFuc2xh dGlvbiBpZiBhbHJlYWR5IGVuYWJsZWQgcHJpb3IgdG8gT1MgaGFuZG92ZXIuDQorCSAqLw0KKwlm b3JfZWFjaF9kcmhkX3VuaXQoZHJoZCkgew0KKwkJc3RydWN0IGludGVsX2lvbW11ICppb21tdTsN CisNCisJCWlmIChkcmhkLT5pZ25vcmVkKQ0KKwkJCWNvbnRpbnVlOw0KKw0KKwkJaW9tbXUgPSBk cmhkLT5pb21tdTsNCisJCWlmIChpb21tdS0+Z2NtZCAmIERNQV9HQ01EX1RFKQ0KKwkJCWlvbW11 X2Rpc2FibGVfdHJhbnNsYXRpb24oaW9tbXUpOw0KKwl9DQorDQogCWlmIChkbWFyX2Rldl9zY29w ZV9pbml0KCkgPCAwKSB7DQogCQlpZiAoZm9yY2Vfb24pDQogCQkJcGFuaWMoInRib290OiBGYWls ZWQgdG8gaW5pdGlhbGl6ZSBETUFSIGRldmljZSBzY29wZVxuIik7DQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZC9kbS1pby5jIGIvZHJpdmVycy9tZC9kbS1pby5jDQppbmRleCBlYTVkZDI4Li4zOWEw OGJlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS1pby5jDQorKysgYi9kcml2ZXJzL21kL2Rt LWlvLmMNCkBAIC0xMCw2ICsxMCw3IEBADQogI2luY2x1ZGUgPGxpbnV4L2RldmljZS1tYXBwZXIu aD4NCiANCiAjaW5jbHVkZSA8bGludXgvYmlvLmg+DQorI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRp b24uaD4NCiAjaW5jbHVkZSA8bGludXgvbWVtcG9vbC5oPg0KICNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4NCiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4NCkBAIC0zNCw3ICszNSw3IEBAIHN0cnVj dCBkbV9pb19jbGllbnQgew0KIHN0cnVjdCBpbyB7DQogCXVuc2lnbmVkIGxvbmcgZXJyb3JfYml0 czsNCiAJYXRvbWljX3QgY291bnQ7DQotCXN0cnVjdCB0YXNrX3N0cnVjdCAqc2xlZXBlcjsNCisJ c3RydWN0IGNvbXBsZXRpb24gKndhaXQ7DQogCXN0cnVjdCBkbV9pb19jbGllbnQgKmNsaWVudDsN CiAJaW9fbm90aWZ5X2ZuIGNhbGxiYWNrOw0KIAl2b2lkICpjb250ZXh0Ow0KQEAgLTEyMiw4ICsx MjMsOCBAQCBzdGF0aWMgdm9pZCBkZWNfY291bnQoc3RydWN0IGlvICppbywgdW5zaWduZWQgaW50 IHJlZ2lvbiwgaW50IGVycm9yKQ0KIAkJCWludmFsaWRhdGVfa2VybmVsX3ZtYXBfcmFuZ2UoaW8t PnZtYV9pbnZhbGlkYXRlX2FkZHJlc3MsDQogCQkJCQkJICAgICBpby0+dm1hX2ludmFsaWRhdGVf c2l6ZSk7DQogDQotCQlpZiAoaW8tPnNsZWVwZXIpDQotCQkJd2FrZV91cF9wcm9jZXNzKGlvLT5z bGVlcGVyKTsNCisJCWlmIChpby0+d2FpdCkNCisJCQljb21wbGV0ZShpby0+d2FpdCk7DQogDQog CQllbHNlIHsNCiAJCQl1bnNpZ25lZCBsb25nIHIgPSBpby0+ZXJyb3JfYml0czsNCkBAIC0zODQs NiArMzg1LDcgQEAgc3RhdGljIGludCBzeW5jX2lvKHN0cnVjdCBkbV9pb19jbGllbnQgKmNsaWVu dCwgdW5zaWduZWQgaW50IG51bV9yZWdpb25zLA0KIAkgKi8NCiAJdm9sYXRpbGUgY2hhciBpb19b c2l6ZW9mKHN0cnVjdCBpbykgKyBfX2FsaWdub2ZfXyhzdHJ1Y3QgaW8pIC0gMV07DQogCXN0cnVj dCBpbyAqaW8gPSAoc3RydWN0IGlvICopUFRSX0FMSUdOKCZpb18sIF9fYWxpZ25vZl9fKHN0cnVj dCBpbykpOw0KKwlERUNMQVJFX0NPTVBMRVRJT05fT05TVEFDSyh3YWl0KTsNCiANCiAJaWYgKG51 bV9yZWdpb25zID4gMSAmJiAocncgJiBSV19NQVNLKSAhPSBXUklURSkgew0KIAkJV0FSTl9PTigx KTsNCkBAIC0zOTIsNyArMzk0LDcgQEAgc3RhdGljIGludCBzeW5jX2lvKHN0cnVjdCBkbV9pb19j bGllbnQgKmNsaWVudCwgdW5zaWduZWQgaW50IG51bV9yZWdpb25zLA0KIA0KIAlpby0+ZXJyb3Jf Yml0cyA9IDA7DQogCWF0b21pY19zZXQoJmlvLT5jb3VudCwgMSk7IC8qIHNlZSBkaXNwYXRjaF9p bygpICovDQotCWlvLT5zbGVlcGVyID0gY3VycmVudDsNCisJaW8tPndhaXQgPSAmd2FpdDsNCiAJ aW8tPmNsaWVudCA9IGNsaWVudDsNCiANCiAJaW8tPnZtYV9pbnZhbGlkYXRlX2FkZHJlc3MgPSBk cC0+dm1hX2ludmFsaWRhdGVfYWRkcmVzczsNCkBAIC00MDAsMTUgKzQwMiw3IEBAIHN0YXRpYyBp bnQgc3luY19pbyhzdHJ1Y3QgZG1faW9fY2xpZW50ICpjbGllbnQsIHVuc2lnbmVkIGludCBudW1f cmVnaW9ucywNCiANCiAJZGlzcGF0Y2hfaW8ocncsIG51bV9yZWdpb25zLCB3aGVyZSwgZHAsIGlv LCAxKTsNCiANCi0Jd2hpbGUgKDEpIHsNCi0JCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfVU5JTlRF UlJVUFRJQkxFKTsNCi0NCi0JCWlmICghYXRvbWljX3JlYWQoJmlvLT5jb3VudCkpDQotCQkJYnJl YWs7DQotDQotCQlpb19zY2hlZHVsZSgpOw0KLQl9DQotCXNldF9jdXJyZW50X3N0YXRlKFRBU0tf UlVOTklORyk7DQorCXdhaXRfZm9yX2NvbXBsZXRpb24oJndhaXQpOw0KIA0KIAlpZiAoZXJyb3Jf Yml0cykNCiAJCSplcnJvcl9iaXRzID0gaW8tPmVycm9yX2JpdHM7DQpAQCAtNDMxLDcgKzQyNSw3 IEBAIHN0YXRpYyBpbnQgYXN5bmNfaW8oc3RydWN0IGRtX2lvX2NsaWVudCAqY2xpZW50LCB1bnNp Z25lZCBpbnQgbnVtX3JlZ2lvbnMsDQogCWlvID0gbWVtcG9vbF9hbGxvYyhjbGllbnQtPnBvb2ws IEdGUF9OT0lPKTsNCiAJaW8tPmVycm9yX2JpdHMgPSAwOw0KIAlhdG9taWNfc2V0KCZpby0+Y291 bnQsIDEpOyAvKiBzZWUgZGlzcGF0Y2hfaW8oKSAqLw0KLQlpby0+c2xlZXBlciA9IE5VTEw7DQor CWlvLT53YWl0ID0gTlVMTDsNCiAJaW8tPmNsaWVudCA9IGNsaWVudDsNCiAJaW8tPmNhbGxiYWNr ID0gZm47DQogCWlvLT5jb250ZXh0ID0gY29udGV4dDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21k L21kLmMgYi9kcml2ZXJzL21kL21kLmMNCmluZGV4IDMwYTdiNTIuLmVhOGExODEgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL21kL21kLmMNCisrKyBiL2RyaXZlcnMvbWQvbWQuYw0KQEAgLTcxNDQsNiAr NzE0NCwxOSBAQCB2b2lkIG1kX2RvX3N5bmMoc3RydWN0IG1kZGV2ICptZGRldikNCiAJCQkgICAg cmRldi0+cmVjb3Zlcnlfb2Zmc2V0IDwgaikNCiAJCQkJaiA9IHJkZXYtPnJlY292ZXJ5X29mZnNl dDsNCiAJCXJjdV9yZWFkX3VubG9jaygpOw0KKw0KKwkJLyogSWYgdGhlcmUgaXMgYSBiaXRtYXAs IHdlIG5lZWQgdG8gbWFrZSBzdXJlIGFsbA0KKwkJICogd3JpdGVzIHRoYXQgc3RhcnRlZCBiZWZv cmUgd2UgYWRkZWQgYSBzcGFyZQ0KKwkJICogY29tcGxldGUgYmVmb3JlIHdlIHN0YXJ0IGRvaW5n IGEgcmVjb3ZlcnkuDQorCQkgKiBPdGhlcndpc2UgdGhlIHdyaXRlIG1pZ2h0IGNvbXBsZXRlIGFu ZCAodmlhDQorCQkgKiBiaXRtYXBfZW5kd3JpdGUpIHNldCBhIGJpdCBpbiB0aGUgYml0bWFwIGFm dGVyIHRoZQ0KKwkJICogcmVjb3ZlcnkgaGFzIGNoZWNrZWQgdGhhdCBiaXQgYW5kIHNraXBwZWQg dGhhdA0KKwkJICogcmVnaW9uLg0KKwkJICovDQorCQlpZiAobWRkZXYtPmJpdG1hcCkgew0KKwkJ CW1kZGV2LT5wZXJzLT5xdWllc2NlKG1kZGV2LCAxKTsNCisJCQltZGRldi0+cGVycy0+cXVpZXNj ZShtZGRldiwgMCk7DQorCQl9DQogCX0NCiANCiAJcHJpbnRrKEtFUk5fSU5GTyAibWQ6ICVzIG9m IFJBSUQgYXJyYXkgJXNcbiIsIGRlc2MsIG1kbmFtZShtZGRldikpOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lnYi9pZ2JfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvaW50ZWwvaWdiL2lnYl9tYWluLmMNCmluZGV4IGRmNWEwOWEuLmI1NTViZTAgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZ2IvaWdiX21haW4uYw0KKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWdiL2lnYl9tYWluLmMNCkBAIC02NjEwLDYgKzY2 MTAsOCBAQCBzdGF0aWMgaW50IF9faWdiX3NodXRkb3duKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBi b29sICplbmFibGVfd2FrZSkNCiANCiAJaWYgKG5ldGlmX3J1bm5pbmcobmV0ZGV2KSkNCiAJCWln Yl9jbG9zZShuZXRkZXYpOw0KKwllbHNlDQorCQlpZ2JfcmVzZXQoYWRhcHRlcik7DQogDQogCWln Yl9jbGVhcl9pbnRlcnJ1cHRfc2NoZW1lKGFkYXB0ZXIpOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N1bi9zdW52bmV0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdW4v c3Vudm5ldC5jDQppbmRleCBiZDA4OTE5Li41MDkyMTQ4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvc3VuL3N1bnZuZXQuYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3Vu L3N1bnZuZXQuYw0KQEAgLTEwODksNiArMTA4OSwyNCBAQCBzdGF0aWMgc3RydWN0IHZuZXQgKiBf X2RldmluaXQgdm5ldF9maW5kX29yX2NyZWF0ZShjb25zdCB1NjQgKmxvY2FsX21hYykNCiAJcmV0 dXJuIHZwOw0KIH0NCiANCitzdGF0aWMgdm9pZCB2bmV0X2NsZWFudXAodm9pZCkNCit7DQorCXN0 cnVjdCB2bmV0ICp2cDsNCisJc3RydWN0IG5ldF9kZXZpY2UgKmRldjsNCisNCisJbXV0ZXhfbG9j aygmdm5ldF9saXN0X211dGV4KTsNCisJd2hpbGUgKCFsaXN0X2VtcHR5KCZ2bmV0X2xpc3QpKSB7 DQorCQl2cCA9IGxpc3RfZmlyc3RfZW50cnkoJnZuZXRfbGlzdCwgc3RydWN0IHZuZXQsIGxpc3Qp Ow0KKwkJbGlzdF9kZWwoJnZwLT5saXN0KTsNCisJCWRldiA9IHZwLT5kZXY7DQorCQkvKiB2aW9f dW5yZWdpc3Rlcl9kcml2ZXIoKSBzaG91bGQgaGF2ZSBjbGVhbmVkIHVwIHBvcnRfbGlzdCAqLw0K KwkJQlVHX09OKCFsaXN0X2VtcHR5KCZ2cC0+cG9ydF9saXN0KSk7DQorCQl1bnJlZ2lzdGVyX25l dGRldihkZXYpOw0KKwkJZnJlZV9uZXRkZXYoZGV2KTsNCisJfQ0KKwltdXRleF91bmxvY2soJnZu ZXRfbGlzdF9tdXRleCk7DQorfQ0KKw0KIHN0YXRpYyBjb25zdCBjaGFyICpsb2NhbF9tYWNfcHJv cCA9ICJsb2NhbC1tYWMtYWRkcmVzcyI7DQogDQogc3RhdGljIHN0cnVjdCB2bmV0ICogX19kZXZp bml0IHZuZXRfZmluZF9wYXJlbnQoc3RydWN0IG1kZXNjX2hhbmRsZSAqaHAsDQpAQCAtMTI0OSw3 ICsxMjY3LDYgQEAgc3RhdGljIGludCB2bmV0X3BvcnRfcmVtb3ZlKHN0cnVjdCB2aW9fZGV2ICp2 ZGV2KQ0KIA0KIAkJa2ZyZWUocG9ydCk7DQogDQotCQl1bnJlZ2lzdGVyX25ldGRldih2cC0+ZGV2 KTsNCiAJfQ0KIAlyZXR1cm4gMDsNCiB9DQpAQCAtMTI4MCw2ICsxMjk3LDcgQEAgc3RhdGljIGlu dCBfX2luaXQgdm5ldF9pbml0KHZvaWQpDQogc3RhdGljIHZvaWQgX19leGl0IHZuZXRfZXhpdCh2 b2lkKQ0KIHsNCiAJdmlvX3VucmVnaXN0ZXJfZHJpdmVyKCZ2bmV0X3BvcnRfZHJpdmVyKTsNCisJ dm5ldF9jbGVhbnVwKCk7DQogfQ0KIA0KIG1vZHVsZV9pbml0KHZuZXRfaW5pdCk7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtYWduLXJ4b24uYyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLWFnbi1yeG9uLmMNCmluZGV4IGQ1NTJmYTMuLmQ2 OTY1MzYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC1hZ24t cnhvbi5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC1hZ24tcnhvbi5j DQpAQCAtNDQwLDE0ICs0NDAsNiBAQCBpbnQgaXdsYWduX2NvbW1pdF9yeG9uKHN0cnVjdCBpd2xf cHJpdiAqcHJpdiwgc3RydWN0IGl3bF9yeG9uX2NvbnRleHQgKmN0eCkNCiAJLyogYWx3YXlzIGdl dCB0aW1lc3RhbXAgd2l0aCBSeCBmcmFtZSAqLw0KIAljdHgtPnN0YWdpbmcuZmxhZ3MgfD0gUlhP Tl9GTEdfVFNGMkhPU1RfTVNLOw0KIA0KLQkvKg0KLQkgKiBmb3JjZSBDVFMtdG8tc2VsZiBmcmFt ZXMgcHJvdGVjdGlvbiBpZiBSVFMtQ1RTIGlzIG5vdCBwcmVmZXJyZWQNCi0JICogb25lIGFnZ3Jl Z2F0aW9uIHByb3RlY3Rpb24gbWV0aG9kDQotCSAqLw0KLQlpZiAoIShwcml2LT5jZmctPmh0X3Bh cmFtcyAmJg0KLQkgICAgICBwcml2LT5jZmctPmh0X3BhcmFtcy0+dXNlX3J0c19mb3JfYWdncmVn YXRpb24pKQ0KLQkJY3R4LT5zdGFnaW5nLmZsYWdzIHw9IFJYT05fRkxHX1NFTEZfQ1RTX0VOOw0K LQ0KIAlpZiAoKGN0eC0+dmlmICYmIGN0eC0+dmlmLT5ic3NfY29uZi51c2Vfc2hvcnRfc2xvdCkg fHwNCiAJICAgICEoY3R4LT5zdGFnaW5nLmZsYWdzICYgUlhPTl9GTEdfQkFORF8yNEdfTVNLKSkN CiAJCWN0eC0+c3RhZ2luZy5mbGFncyB8PSBSWE9OX0ZMR19TSE9SVF9TTE9UX01TSzsNCkBAIC04 ODAsMTEgKzg3Miw2IEBAIHZvaWQgaXdsYWduX2Jzc19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4 MDIxMV9odyAqaHcsDQogCWVsc2UNCiAJCWN0eC0+c3RhZ2luZy5mbGFncyAmPSB+UlhPTl9GTEdf VEdHX1BST1RFQ1RfTVNLOw0KIA0KLQlpZiAoYnNzX2NvbmYtPnVzZV9jdHNfcHJvdCkNCi0JCWN0 eC0+c3RhZ2luZy5mbGFncyB8PSBSWE9OX0ZMR19TRUxGX0NUU19FTjsNCi0JZWxzZQ0KLQkJY3R4 LT5zdGFnaW5nLmZsYWdzICY9IH5SWE9OX0ZMR19TRUxGX0NUU19FTjsNCi0NCiAJbWVtY3B5KGN0 eC0+c3RhZ2luZy5ic3NpZF9hZGRyLCBic3NfY29uZi0+YnNzaWQsIEVUSF9BTEVOKTsNCiANCiAJ aWYgKHZpZi0+dHlwZSA9PSBOTDgwMjExX0lGVFlQRV9BUCB8fA0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL213aWZpZXgvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdp ZmlleC9tYWluLmMNCmluZGV4IDViYWExMmEuLjAxODI3NmYgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L25ldC93aXJlbGVzcy9td2lmaWV4L21haW4uYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bXdpZmlleC9tYWluLmMNCkBAIC00NTgsNiArNDU4LDcgQEAgbXdpZmlleF9oYXJkX3N0YXJ0X3ht aXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikNCiAJfQ0KIA0K IAl0eF9pbmZvID0gTVdJRklFWF9TS0JfVFhDQihza2IpOw0KKwltZW1zZXQodHhfaW5mbywgMCwg c2l6ZW9mKCp0eF9pbmZvKSk7DQogCXR4X2luZm8tPmJzc19pbmRleCA9IHByaXYtPmJzc19pbmRl eDsNCiAJbXdpZmlleF9maWxsX2J1ZmZlcihza2IpOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv c2NzaS9pYm12c2NzaS9pYm12c2NzaS5jIGIvZHJpdmVycy9zY3NpL2libXZzY3NpL2libXZzY3Np LmMNCmluZGV4IDM2YWNhNGIuLjRhYWJiZGMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvaWJt dnNjc2kvaWJtdnNjc2kuYw0KKysrIGIvZHJpdmVycy9zY3NpL2libXZzY3NpL2libXZzY3NpLmMN CkBAIC00OTAsNyArNDkwLDggQEAgc3RhdGljIHZvaWQgcHVyZ2VfcmVxdWVzdHMoc3RydWN0IGli bXZzY3NpX2hvc3RfZGF0YSAqaG9zdGRhdGEsIGludCBlcnJvcl9jb2RlKQ0KIAkJCQkgICAgICAg ZXZ0LT5ob3N0ZGF0YS0+ZGV2KTsNCiAJCQlpZiAoZXZ0LT5jbW5kX2RvbmUpDQogCQkJCWV2dC0+ Y21uZF9kb25lKGV2dC0+Y21uZCk7DQotCQl9IGVsc2UgaWYgKGV2dC0+ZG9uZSkNCisJCX0gZWxz ZSBpZiAoZXZ0LT5kb25lICYmIGV2dC0+Y3JxLmZvcm1hdCAhPSBWSU9TUlBfTUFEX0ZPUk1BVCAm Jg0KKwkJCSAgIGV2dC0+aXUuc3JwLmxvZ2luX3JlcS5vcGNvZGUgIT0gU1JQX0xPR0lOX1JFUSkN CiAJCQlldnQtPmRvbmUoZXZ0KTsNCiAJCWZyZWVfZXZlbnRfc3RydWN0KCZldnQtPmhvc3RkYXRh LT5wb29sLCBldnQpOw0KIAkJc3Bpbl9sb2NrX2lycXNhdmUoaG9zdGRhdGEtPmhvc3QtPmhvc3Rf bG9jaywgZmxhZ3MpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9pYm12c2NzaS9ycGFfdnNj c2kuYyBiL2RyaXZlcnMvc2NzaS9pYm12c2NzaS9ycGFfdnNjc2kuYw0KaW5kZXggZjQ4YWUwMS4u OTIwYzAyZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9pYm12c2NzaS9ycGFfdnNjc2kuYw0K KysrIGIvZHJpdmVycy9zY3NpL2libXZzY3NpL3JwYV92c2NzaS5jDQpAQCAtMTA0LDYgKzEwNCwx MSBAQCBzdGF0aWMgc3RydWN0IHZpb3NycF9jcnEgKmNycV9xdWV1ZV9uZXh0X2NycShzdHJ1Y3Qg Y3JxX3F1ZXVlICpxdWV1ZSkNCiAJaWYgKGNycS0+dmFsaWQgJiAweDgwKSB7DQogCQlpZiAoKytx dWV1ZS0+Y3VyID09IHF1ZXVlLT5zaXplKQ0KIAkJCXF1ZXVlLT5jdXIgPSAwOw0KKw0KKwkJLyog RW5zdXJlIHRoZSByZWFkIG9mIHRoZSB2YWxpZCBiaXQgb2NjdXJzIGJlZm9yZSByZWFkaW5nIGFu eQ0KKwkJICogb3RoZXIgYml0cyBvZiB0aGUgQ1JRIGVudHJ5DQorCQkgKi8NCisJCXJtYigpOw0K IAl9IGVsc2UNCiAJCWNycSA9IE5VTEw7DQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXVl LT5sb2NrLCBmbGFncyk7DQpAQCAtMTIyLDYgKzEyNywxMSBAQCBzdGF0aWMgaW50IHJwYXZzY3Np X3NlbmRfY3JxKHN0cnVjdCBpYm12c2NzaV9ob3N0X2RhdGEgKmhvc3RkYXRhLA0KIHsNCiAJc3Ry dWN0IHZpb19kZXYgKnZkZXYgPSB0b192aW9fZGV2KGhvc3RkYXRhLT5kZXYpOw0KIA0KKwkvKg0K KwkgKiBFbnN1cmUgdGhlIGNvbW1hbmQgYnVmZmVyIGlzIGZsdXNoZWQgdG8gbWVtb3J5IGJlZm9y ZSBoYW5kaW5nIGl0DQorCSAqIG92ZXIgdG8gdGhlIFZJT1MgdG8gcHJldmVudCBpdCBmcm9tIGZl dGNoaW5nIGFueSBzdGFsZSBkYXRhLg0KKwkgKi8NCisJbWIoKTsNCiAJcmV0dXJuIHBscGFyX2hj YWxsX25vcmV0cyhIX1NFTkRfQ1JRLCB2ZGV2LT51bml0X2FkZHJlc3MsIHdvcmQxLCB3b3JkMik7 DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZC5jIGIvZHJpdmVycy9zY3NpL3Nk LmMNCmluZGV4IGY2ZDJiNjIuLjVjNmI1ZjUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvc2Qu Yw0KKysrIGIvZHJpdmVycy9zY3NpL3NkLmMNCkBAIC0yMTQ5LDcgKzIxNDksMTAgQEAgc2RfcmVh ZF9jYWNoZV90eXBlKHN0cnVjdCBzY3NpX2Rpc2sgKnNka3AsIHVuc2lnbmVkIGNoYXIgKmJ1ZmZl cikNCiAJCX0NCiANCiAJCXNka3AtPkRQT0ZVQSA9IChkYXRhLmRldmljZV9zcGVjaWZpYyAmIDB4 MTApICE9IDA7DQotCQlpZiAoc2RrcC0+RFBPRlVBICYmICFzZGtwLT5kZXZpY2UtPnVzZV8xMF9m b3JfcncpIHsNCisJCWlmIChzZHAtPmJyb2tlbl9mdWEpIHsNCisJCQlzZF9wcmludGsoS0VSTl9O T1RJQ0UsIHNka3AsICJEaXNhYmxpbmcgRlVBXG4iKTsNCisJCQlzZGtwLT5EUE9GVUEgPSAwOw0K KwkJfSBlbHNlIGlmIChzZGtwLT5EUE9GVUEgJiYgIXNka3AtPmRldmljZS0+dXNlXzEwX2Zvcl9y dykgew0KIAkJCXNkX3ByaW50ayhLRVJOX05PVElDRSwgc2RrcCwNCiAJCQkJICAiVXNlcyBSRUFE L1dSSVRFKDYpLCBkaXNhYmxpbmcgRlVBXG4iKTsNCiAJCQlzZGtwLT5EUE9GVUEgPSAwOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW1faGlwZC5jIGIvZHJpdmVycy9z Y3NpL3N5bTUzYzh4eF8yL3N5bV9oaXBkLmMNCmluZGV4IGQ5MmZlNDAuLjZiMzQ5ZTMgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2hpcGQuYw0KKysrIGIvZHJpdmVy cy9zY3NpL3N5bTUzYzh4eF8yL3N5bV9oaXBkLmMNCkBAIC0zMDAwLDcgKzMwMDAsMTEgQEAgc3lt X2RlcXVldWVfZnJvbV9zcXVldWUoc3RydWN0IHN5bV9oY2IgKm5wLCBpbnQgaSwgaW50IHRhcmdl dCwgaW50IGx1biwgaW50IHRhc2sNCiAJCWlmICgodGFyZ2V0ID09IC0xIHx8IGNwLT50YXJnZXQg PT0gdGFyZ2V0KSAmJg0KIAkJICAgIChsdW4gICAgPT0gLTEgfHwgY3AtPmx1biAgICA9PSBsdW4p ICAgICYmDQogCQkgICAgKHRhc2sgICA9PSAtMSB8fCBjcC0+dGFnICAgID09IHRhc2spKSB7DQor I2lmZGVmIFNZTV9PUFRfSEFORExFX0RFVklDRV9RVUVVRUlORw0KIAkJCXN5bV9zZXRfY2FtX3N0 YXR1cyhjcC0+Y21kLCBESURfU09GVF9FUlJPUik7DQorI2Vsc2UNCisJCQlzeW1fc2V0X2NhbV9z dGF0dXMoY3AtPmNtZCwgRElEX1JFUVVFVUUpOw0KKyNlbmRpZg0KIAkJCXN5bV9yZW1xdWUoJmNw LT5saW5rX2NjYnEpOw0KIAkJCXN5bV9pbnNxdWVfdGFpbCgmY3AtPmxpbmtfY2NicSwgJm5wLT5j b21wX2NjYnEpOw0KIAkJfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMgYi9k cml2ZXJzL3VzYi9jb3JlL2h1Yi5jDQppbmRleCAxMmYzYTM3Li4zODA3Mjk0IDEwMDY0NA0KLS0t IGEvZHJpdmVycy91c2IvY29yZS9odWIuYw0KKysrIGIvZHJpdmVycy91c2IvY29yZS9odWIuYw0K QEAgLTY1NSw2ICs2NTUsMjYgQEAgc3RhdGljIGludCBodWJfdXNiM19wb3J0X2Rpc2FibGUoc3Ry dWN0IHVzYl9odWIgKmh1YiwgaW50IHBvcnQxKQ0KIAlpZiAoIWh1Yl9pc19zdXBlcnNwZWVkKGh1 Yi0+aGRldikpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCisJcmV0ID0gaHViX3BvcnRfc3RhdHVz KGh1YiwgcG9ydDEsICZwb3J0c3RhdHVzLCAmcG9ydGNoYW5nZSk7DQorCWlmIChyZXQgPCAwKQ0K KwkJcmV0dXJuIHJldDsNCisNCisJLyoNCisJICogVVNCIGNvbnRyb2xsZXIgQWR2YW5jZWQgTWlj cm8gRGV2aWNlcywgSW5jLiBbQU1EXSBGQ0ggVVNCIFhIQ0kNCisJICogQ29udHJvbGxlciBbMTAy Mjo3ODE0XSB3aWxsIGhhdmUgc3B1cmlvdXMgcmVzdWx0IG1ha2luZyB0aGUgZm9sbG93aW5nDQor CSAqIHVzYiAzLjAgZGV2aWNlIGhvdHBsdWdnaW5nIHJvdXRlIHRvIHRoZSAyLjAgcm9vdCBodWIg YW5kIHJlY29nbml6ZWQNCisJICogYXMgaGlnaC1zcGVlZCBkZXZpY2UgaWYgd2Ugc2V0IHRoZSB1 c2IgMy4wIHBvcnQgbGluayBzdGF0ZSB0bw0KKwkgKiBEaXNhYmxlZC4gU2luY2UgaXQncyBhbHJl YWR5IGluIFVTQl9TU19QT1JUX0xTX1JYX0RFVEVDVCBzdGF0ZSwgd2UNCisJICogY2hlY2sgdGhl IHN0YXRlIGhlcmUgdG8gYXZvaWQgdGhlIGJ1Zy4NCisJICovDQorCWlmICgocG9ydHN0YXR1cyAm IFVTQl9QT1JUX1NUQVRfTElOS19TVEFURSkgPT0NCisJCQkJVVNCX1NTX1BPUlRfTFNfUlhfREVU RUNUKSB7DQorCQlkZXZfZGJnKGh1Yi0+aW50ZmRldiwNCisJCQkiTm90IGRpc2FibGluZyBwb3J0 ICVkOyBsaW5rIHN0YXRlIGlzIFJ4RGV0ZWN0XG4iLA0KKwkJCXBvcnQxKTsNCisJCXJldHVybiBy ZXQ7DQorCX0NCisNCiAJcmV0ID0gaHViX3NldF9wb3J0X2xpbmtfc3RhdGUoaHViLCBwb3J0MSwg VVNCX1NTX1BPUlRfTFNfU1NfRElTQUJMRUQpOw0KIAlpZiAocmV0KSB7DQogCQlkZXZfZXJyKGh1 Yi0+aW50ZmRldiwgImNhbm5vdCBkaXNhYmxlIHBvcnQgJWQgKGVyciA9ICVkKVxuIiwNCmRpZmYg LS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvZl9mcy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Zf ZnMuYw0KaW5kZXggMGU2NDFhMS4uYzYzNWM0YyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2dh ZGdldC9mX2ZzLmMNCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9mX2ZzLmMNCkBAIC0xMzc2LDEx ICsxMzc2LDEzIEBAIHN0YXRpYyBpbnQgZnVuY3Rpb25mc19iaW5kKHN0cnVjdCBmZnNfZGF0YSAq ZmZzLCBzdHJ1Y3QgdXNiX2NvbXBvc2l0ZV9kZXYgKmNkZXYpDQogCWZmcy0+ZXAwcmVxLT5jb250 ZXh0ID0gZmZzOw0KIA0KIAlsYW5nID0gZmZzLT5zdHJpbmd0YWJzOw0KLQlmb3IgKGxhbmcgPSBm ZnMtPnN0cmluZ3RhYnM7ICpsYW5nOyArK2xhbmcpIHsNCi0JCXN0cnVjdCB1c2Jfc3RyaW5nICpz dHIgPSAoKmxhbmcpLT5zdHJpbmdzOw0KLQkJaW50IGlkID0gZmlyc3RfaWQ7DQotCQlmb3IgKDsg c3RyLT5zOyArK2lkLCArK3N0cikNCi0JCQlzdHItPmlkID0gaWQ7DQorCWlmIChsYW5nKSB7DQor CQlmb3IgKDsgKmxhbmc7ICsrbGFuZykgew0KKwkJCXN0cnVjdCB1c2Jfc3RyaW5nICpzdHIgPSAo KmxhbmcpLT5zdHJpbmdzOw0KKwkJCWludCBpZCA9IGZpcnN0X2lkOw0KKwkJCWZvciAoOyBzdHIt PnM7ICsraWQsICsrc3RyKQ0KKwkJCQlzdHItPmlkID0gaWQ7DQorCQl9DQogCX0NCiANCiAJZmZz LT5nYWRnZXQgPSBjZGV2LT5nYWRnZXQ7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94 aGNpLWh1Yi5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLWh1Yi5jDQppbmRleCAxMDdlNmI0Li41 MTdjYWRiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLWh1Yi5jDQorKysgYi9k cml2ZXJzL3VzYi9ob3N0L3hoY2ktaHViLmMNCkBAIC0yMSw2ICsyMSw3IEBADQogICovDQogDQog I2luY2x1ZGUgPGxpbnV4L2dmcC5oPg0KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4NCiAjaW5j bHVkZSA8YXNtL3VuYWxpZ25lZC5oPg0KIA0KICNpbmNsdWRlICJ4aGNpLmgiDQpAQCAtOTkzLDcg Kzk5NCw5IEBAIGludCB4aGNpX2J1c19zdXNwZW5kKHN0cnVjdCB1c2JfaGNkICpoY2QpDQogCQkJ dDIgfD0gUE9SVF9MSU5LX1NUUk9CRSB8IFhERVZfVTM7DQogCQkJc2V0X2JpdChwb3J0X2luZGV4 LCAmYnVzX3N0YXRlLT5idXNfc3VzcGVuZGVkKTsNCiAJCX0NCi0JCWlmIChoY2QtPnNlbGYucm9v dF9odWItPmRvX3JlbW90ZV93YWtldXApIHsNCisJCWlmIChoY2QtPnNlbGYucm9vdF9odWItPmRv X3JlbW90ZV93YWtldXANCisJCQkJJiYgZGV2aWNlX21heV93YWtldXAoaGNkLT5zZWxmLmNvbnRy b2xsZXIpKSB7DQorDQogCQkJaWYgKHQxICYgUE9SVF9DT05ORUNUKSB7DQogCQkJCXQyIHw9IFBP UlRfV0tPQ19FIHwgUE9SVF9XS0RJU0NfRTsNCiAJCQkJdDIgJj0gflBPUlRfV0tDT05OX0U7DQpk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYyBiL2RyaXZlcnMvdXNiL2hv c3QveGhjaS1yaW5nLmMNCmluZGV4IDE4ODY1NDQuLmJjNWVlODQgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmlu Zy5jDQpAQCAtMzUyMSw3ICszNTIxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCB4aGNpX2dldF9i dXJzdF9jb3VudChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksDQogCQlyZXR1cm4gMDsNCiANCiAJbWF4 X2J1cnN0ID0gdXJiLT5lcC0+c3NfZXBfY29tcC5iTWF4QnVyc3Q7DQotCXJldHVybiByb3VuZHVw KHRvdGFsX3BhY2tldF9jb3VudCwgbWF4X2J1cnN0ICsgMSkgLSAxOw0KKwlyZXR1cm4gRElWX1JP VU5EX1VQKHRvdGFsX3BhY2tldF9jb3VudCwgbWF4X2J1cnN0ICsgMSkgLSAxOw0KIH0NCiANCiAv Kg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jIGIvZHJpdmVycy91c2IvaG9z dC94aGNpLmMNCmluZGV4IGIyZWFjOGQuLjQ1N2E3YWMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Vz Yi9ob3N0L3hoY2kuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLmMNCkBAIC05NDYsNyAr OTQ2LDcgQEAgaW50IHhoY2lfc3VzcGVuZChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2kpDQogICovDQog aW50IHhoY2lfcmVzdW1lKHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwgYm9vbCBoaWJlcm5hdGVkKQ0K IHsNCi0JdTMyCQkJY29tbWFuZCwgdGVtcCA9IDA7DQorCXUzMgkJCWNvbW1hbmQsIHRlbXAgPSAw LCBzdGF0dXM7DQogCXN0cnVjdCB1c2JfaGNkCQkqaGNkID0geGhjaV90b19oY2QoeGhjaSk7DQog CXN0cnVjdCB1c2JfaGNkCQkqc2Vjb25kYXJ5X2hjZDsNCiAJaW50CQkJcmV0dmFsID0gMDsNCkBA IC0xMDcwLDggKzEwNzAsMTIgQEAgaW50IHhoY2lfcmVzdW1lKHN0cnVjdCB4aGNpX2hjZCAqeGhj aSwgYm9vbCBoaWJlcm5hdGVkKQ0KIA0KICBkb25lOg0KIAlpZiAocmV0dmFsID09IDApIHsNCi0J CXVzYl9oY2RfcmVzdW1lX3Jvb3RfaHViKGhjZCk7DQotCQl1c2JfaGNkX3Jlc3VtZV9yb290X2h1 Yih4aGNpLT5zaGFyZWRfaGNkKTsNCisJCS8qIFJlc3VtZSByb290IGh1YnMgb25seSB3aGVuIGhh dmUgcGVuZGluZyBldmVudHMuICovDQorCQlzdGF0dXMgPSByZWFkbCgmeGhjaS0+b3BfcmVncy0+ c3RhdHVzKTsNCisJCWlmIChzdGF0dXMgJiBTVFNfRUlOVCkgew0KKwkJCXVzYl9oY2RfcmVzdW1l X3Jvb3RfaHViKGhjZCk7DQorCQkJdXNiX2hjZF9yZXN1bWVfcm9vdF9odWIoeGhjaS0+c2hhcmVk X2hjZCk7DQorCQl9DQogCX0NCiANCiAJLyoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJp YWwvY3AyMTB4LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMNCmluZGV4IDAxZmQ2NGEu LjNkZTYzZjUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMNCisrKyBi L2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYw0KQEAgLTE1OSw2ICsxNTksNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsNCiAJeyBVU0JfREVWSUNF KDB4MTg0MywgMHgwMjAwKSB9LCAvKiBWYWlzYWxhIFVTQiBJbnN0cnVtZW50IENhYmxlICovDQog CXsgVVNCX0RFVklDRSgweDE4RUYsIDB4RTAwRikgfSwgLyogRUxWIFVTQi1JMkMtSW50ZXJmYWNl ICovDQogCXsgVVNCX0RFVklDRSgweDFBREIsIDB4MDAwMSkgfSwgLyogU2Nod2VpdHplciBFbmdp bmVlcmluZyBDNjYyIENhYmxlICovDQorCXsgVVNCX0RFVklDRSgweDFCMUMsIDB4MUMwMCkgfSwg LyogQ29yc2FpciBVU0IgRG9uZ2xlICovDQogCXsgVVNCX0RFVklDRSgweDFCRTMsIDB4MDdBNikg fSwgLyogV0FHTyA3NTAtOTIzIFVTQiBTZXJ2aWNlIENhYmxlICovDQogCXsgVVNCX0RFVklDRSgw eDFFMjksIDB4MDEwMikgfSwgLyogRmVzdG8gQ1BYLVVTQiAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgx RTI5LCAweDA1MDEpIH0sIC8qIEZlc3RvIENNU1AgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Vz Yi9zZXJpYWwvZnRkaV9zaW8uYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jDQppbmRl eCA2ZTA4NjM5Li5kNmU2MjA1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlf c2lvLmMNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jDQpAQCAtNzMxLDcgKzcz MSw4IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9jb21iaW5lZCBbXSA9 IHsNCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX0FDR19IRkRVQUxfUElEKSB9LA0KIAl7 IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfWUVJX1NFUlZPQ0VOVEVSMzFfUElEKSB9LA0KIAl7 IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfVEhPUkxBQlNfUElEKSB9LA0KLQl7IFVTQl9ERVZJ Q0UoVEVTVE9fVklELCBURVNUT19VU0JfSU5URVJGQUNFX1BJRCkgfSwNCisJeyBVU0JfREVWSUNF KFRFU1RPX1ZJRCwgVEVTVE9fMV9QSUQpIH0sDQorCXsgVVNCX0RFVklDRShURVNUT19WSUQsIFRF U1RPXzNfUElEKSB9LA0KIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfR0FNTUFfU0NPVVRf UElEKSB9LA0KIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfVEFDVFJJWF9PUEVOUE9SVF8x M01fUElEKSB9LA0KIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfVEFDVFJJWF9PUEVOUE9S VF8xM1NfUElEKSB9LA0KQEAgLTE1OTEsMTQgKzE1OTIsMTcgQEAgc3RhdGljIHZvaWQgZnRkaV9z ZXRfbWF4X3BhY2tldF9zaXplKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpDQogCXN0cnVj dCB1c2JfZGV2aWNlICp1ZGV2ID0gc2VyaWFsLT5kZXY7DQogDQogCXN0cnVjdCB1c2JfaW50ZXJm YWNlICppbnRlcmZhY2UgPSBzZXJpYWwtPmludGVyZmFjZTsNCi0Jc3RydWN0IHVzYl9lbmRwb2lu dF9kZXNjcmlwdG9yICplcF9kZXNjID0gJmludGVyZmFjZS0+Y3VyX2FsdHNldHRpbmctPmVuZHBv aW50WzFdLmRlc2M7DQorCXN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZXBfZGVzYzsN CiANCiAJdW5zaWduZWQgbnVtX2VuZHBvaW50czsNCi0JaW50IGk7DQorCXVuc2lnbmVkIGk7DQog DQogCW51bV9lbmRwb2ludHMgPSBpbnRlcmZhY2UtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJOdW1F bmRwb2ludHM7DQogCWRldl9pbmZvKCZ1ZGV2LT5kZXYsICJOdW1iZXIgb2YgZW5kcG9pbnRzICVk XG4iLCBudW1fZW5kcG9pbnRzKTsNCiANCisJaWYgKCFudW1fZW5kcG9pbnRzKQ0KKwkJcmV0dXJu Ow0KKw0KIAkvKiBOT1RFOiBzb21lIGN1c3RvbWVycyBoYXZlIHByb2dyYW1tZWQgRlQyMzJSL0ZU MjQ1UiBkZXZpY2VzDQogCSAqIHdpdGggYW4gZW5kcG9pbnQgc2l6ZSBvZiAwIC0gbm90IGdvb2Qu ICBJbiB0aGlzIGNhc2UsIHdlDQogCSAqIHdhbnQgdG8gb3ZlcnJpZGUgdGhlIGVuZHBvaW50IGRl c2NyaXB0b3Igc2V0dGluZyBhbmQgdXNlIGENCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJp YWwvZnRkaV9zaW9faWRzLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW9faWRzLmgNCmlu ZGV4IDY3N2NmNDkuLjU1YWY5MTUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRk aV9zaW9faWRzLmgNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaA0KQEAg LTc5OCw3ICs3OTgsOCBAQA0KICAqIFN1Ym1pdHRlZCBieSBDb2xpbiBMZXJveQ0KICAqLw0KICNk ZWZpbmUgVEVTVE9fVklECQkJMHgxMjhEDQotI2RlZmluZSBURVNUT19VU0JfSU5URVJGQUNFX1BJ RAkJMHgwMDAxDQorI2RlZmluZSBURVNUT18xX1BJRAkJCTB4MDAwMQ0KKyNkZWZpbmUgVEVTVE9f M19QSUQJCQkweDAwMDMNCiANCiAvKg0KICAqIE1vYmlsaXR5IEVsZWN0cm9uaWNzIHByb2R1Y3Rz Lg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYyBiL2RyaXZlcnMvdXNi L3NlcmlhbC9vcHRpb24uYw0KaW5kZXggYTBmNDdkNS4uN2ExYzkxZSAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYw0KKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlv bi5jDQpAQCAtMzc3LDggKzM3NywxMiBAQCBzdGF0aWMgdm9pZCBvcHRpb25faW5zdGF0X2NhbGxi YWNrKHN0cnVjdCB1cmIgKnVyYik7DQogLyogT2xpdmV0dGkgcHJvZHVjdHMgKi8NCiAjZGVmaW5l IE9MSVZFVFRJX1ZFTkRPUl9JRAkJCTB4MGIzYw0KICNkZWZpbmUgT0xJVkVUVElfUFJPRFVDVF9P TElDQVJEMTAwCQkweGMwMDANCisjZGVmaW5lIE9MSVZFVFRJX1BST0RVQ1RfT0xJQ0FSRDEyMAkJ MHhjMDAxDQorI2RlZmluZSBPTElWRVRUSV9QUk9EVUNUX09MSUNBUkQxNDAJCTB4YzAwMg0KICNk ZWZpbmUgT0xJVkVUVElfUFJPRFVDVF9PTElDQVJEMTQ1CQkweGMwMDMNCisjZGVmaW5lIE9MSVZF VFRJX1BST0RVQ1RfT0xJQ0FSRDE1NQkJMHhjMDA0DQogI2RlZmluZSBPTElWRVRUSV9QUk9EVUNU X09MSUNBUkQyMDAJCTB4YzAwNQ0KKyNkZWZpbmUgT0xJVkVUVElfUFJPRFVDVF9PTElDQVJEMTYw CQkweGMwMGENCiAjZGVmaW5lIE9MSVZFVFRJX1BST0RVQ1RfT0xJQ0FSRDUwMAkJMHhjMDBiDQog DQogLyogQ2Vsb3QgcHJvZHVjdHMgKi8NCkBAIC0xNDk0LDYgKzE0OTgsOCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0gew0KIAkJLmRyaXZlcl9pbmZv ID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjJfYmxhY2tsaXN0IH0sDQogCXsgVVNCX0RFVklD RV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgxNDI2LCAweGZmLCAweGZmLCAw eGZmKSwgIC8qIFpURSBNRjkxICovDQogCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3Qp Jm5ldF9pbnRmMl9ibGFja2xpc3QgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5G TyhaVEVfVkVORE9SX0lELCAweDE0MjgsIDB4ZmYsIDB4ZmYsIDB4ZmYpLCAgLyogVGVsZXdlbGwg VFctTFRFIDRHIHYyICovDQorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9p bnRmMl9ibGFja2xpc3QgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVf VkVORE9SX0lELCAweDE1MzMsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQogCXsgVVNCX0RFVklDRV9B TkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgxNTM0LCAweGZmLCAweGZmLCAweGZm KSB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4 MTUzNSwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCkBAIC0xNjMxLDE1ICsxNjM3LDIxIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQogCXsgVVNCX0RF VklDRShTSUVNRU5TX1ZFTkRPUl9JRCwgQ0lOVEVSSU9OX1BST0RVQ1RfSEMyNV9NRE1ORVQpIH0s DQogCXsgVVNCX0RFVklDRShTSUVNRU5TX1ZFTkRPUl9JRCwgQ0lOVEVSSU9OX1BST0RVQ1RfSEMy OF9NRE0pIH0sIC8qIEhDMjggZW51bWVyYXRlcyB3aXRoIFNpZW1lbnMgb3IgQ2ludGVyaW9uIFZJ RCBkZXBlbmRpbmcgb24gRlcgcmV2aXNpb24gKi8NCiAJeyBVU0JfREVWSUNFKFNJRU1FTlNfVkVO RE9SX0lELCBDSU5URVJJT05fUFJPRFVDVF9IQzI4X01ETU5FVCkgfSwNCi0NCi0JeyBVU0JfREVW SUNFKE9MSVZFVFRJX1ZFTkRPUl9JRCwgT0xJVkVUVElfUFJPRFVDVF9PTElDQVJEMTAwKSB9LA0K Kwl7IFVTQl9ERVZJQ0UoT0xJVkVUVElfVkVORE9SX0lELCBPTElWRVRUSV9QUk9EVUNUX09MSUNB UkQxMDApLA0KKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjRfYmxh Y2tsaXN0IH0sDQorCXsgVVNCX0RFVklDRShPTElWRVRUSV9WRU5ET1JfSUQsIE9MSVZFVFRJX1BS T0RVQ1RfT0xJQ0FSRDEyMCksDQorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5l dF9pbnRmNF9ibGFja2xpc3QgfSwNCisJeyBVU0JfREVWSUNFKE9MSVZFVFRJX1ZFTkRPUl9JRCwg T0xJVkVUVElfUFJPRFVDVF9PTElDQVJEMTQwKSwNCisJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxf dWxvbmdfdCkmbmV0X2ludGY0X2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9ERVZJQ0UoT0xJVkVUVElf VkVORE9SX0lELCBPTElWRVRUSV9QUk9EVUNUX09MSUNBUkQxNDUpIH0sDQorCXsgVVNCX0RFVklD RShPTElWRVRUSV9WRU5ET1JfSUQsIE9MSVZFVFRJX1BST0RVQ1RfT0xJQ0FSRDE1NSksDQorCQku ZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmNl9ibGFja2xpc3QgfSwNCiAJ eyBVU0JfREVWSUNFKE9MSVZFVFRJX1ZFTkRPUl9JRCwgT0xJVkVUVElfUFJPRFVDVF9PTElDQVJE MjAwKSwNCi0JCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmbmV0X2ludGY2X2JsYWNr bGlzdA0KLQl9LA0KKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjZf YmxhY2tsaXN0IH0sDQorCXsgVVNCX0RFVklDRShPTElWRVRUSV9WRU5ET1JfSUQsIE9MSVZFVFRJ X1BST0RVQ1RfT0xJQ0FSRDE2MCksDQorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3Qp Jm5ldF9pbnRmNl9ibGFja2xpc3QgfSwNCiAJeyBVU0JfREVWSUNFKE9MSVZFVFRJX1ZFTkRPUl9J RCwgT0xJVkVUVElfUFJPRFVDVF9PTElDQVJENTAwKSwNCi0JCS5kcml2ZXJfaW5mbyA9IChrZXJu ZWxfdWxvbmdfdCkmbmV0X2ludGY0X2JsYWNrbGlzdA0KLQl9LA0KKwkJLmRyaXZlcl9pbmZvID0g KGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjRfYmxhY2tsaXN0IH0sDQogCXsgVVNCX0RFVklDRShD RUxPVF9WRU5ET1JfSUQsIENFTE9UX1BST0RVQ1RfQ1Q2ODBNKSB9LCAvKiBDVC02NTAgQ0RNQSA0 NTAgMXhFVkRPIG1vZGVtICovDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oU0FN U1VOR19WRU5ET1JfSUQsIFNBTVNVTkdfUFJPRFVDVF9HVF9CMzczMCwgVVNCX0NMQVNTX0NEQ19E QVRBLCAweDAwLCAweDAwKSB9LCAvKiBTYW1zdW5nIEdULUIzNzMwIExURSBVU0IgbW9kZW0uKi8N CiAJeyBVU0JfREVWSUNFKFlVR0FfVkVORE9SX0lELCBZVUdBX1BST0RVQ1RfQ0VNNjAwKSB9LA0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3N0b3JhZ2Uvc2NzaWdsdWUuYyBiL2RyaXZlcnMvdXNi L3N0b3JhZ2Uvc2NzaWdsdWUuYw0KaW5kZXggZWI2NjBiYi4uYjhkYzBjNSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvdXNiL3N0b3JhZ2Uvc2NzaWdsdWUuYw0KKysrIGIvZHJpdmVycy91c2Ivc3RvcmFn ZS9zY3NpZ2x1ZS5jDQpAQCAtMjU1LDYgKzI1NSwxMCBAQCBzdGF0aWMgaW50IHNsYXZlX2NvbmZp Z3VyZShzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYpDQogCQkJCQlVU19GTF9TQ01fTVVMVF9UQVJH KSkgJiYNCiAJCQkJdXMtPnByb3RvY29sID09IFVTQl9QUl9CVUxLKQ0KIAkJCXVzLT51c2VfbGFz dF9zZWN0b3JfaGFja3MgPSAxOw0KKw0KKwkJLyogQSBmZXcgYnVnZ3kgVVNCLUFUQSBicmlkZ2Vz IGRvbid0IHVuZGVyc3RhbmQgRlVBICovDQorCQlpZiAodXMtPmZmbGFncyAmIFVTX0ZMX0JST0tF Tl9GVUEpDQorCQkJc2Rldi0+YnJva2VuX2Z1YSA9IDE7DQogCX0gZWxzZSB7DQogDQogCQkvKiBO b24tZGlzay10eXBlIGRldmljZXMgZG9uJ3QgbmVlZCB0byBibGFja2xpc3QgYW55IHBhZ2VzDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaCBiL2RyaXZlcnMv dXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgNCmluZGV4IDQ5ZDIyMmQuLmU1ODhhMTEgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oDQorKysgYi9kcml2ZXJz L3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oDQpAQCAtMTkxNiw2ICsxOTE2LDEzIEBAIFVOVVNV QUxfREVWKCAgMHgxNGNkLCAweDY2MDAsIDB4MDIwMSwgMHgwMjAxLA0KIAkJVVNCX1NDX0RFVklD RSwgVVNCX1BSX0RFVklDRSwgTlVMTCwNCiAJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksDQogDQor LyogUmVwb3J0ZWQgYnkgTWljaGFlbCBCw7xzY2ggPG1AYnVlcy5jaD4gKi8NCitVTlVTVUFMX0RF ViggIDB4MTUyZCwgMHgwNTY3LCAweDAxMTQsIDB4MDExNCwNCisJCSJKTWljcm9uIiwNCisJCSJV U0IgdG8gQVRBL0FUQVBJIEJyaWRnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNF LCBOVUxMLA0KKwkJVVNfRkxfQlJPS0VOX0ZVQSApLA0KKw0KIC8qIFJlcG9ydGVkIGJ5IEFsZXhh bmRyZSBPbGl2YSA8b2xpdmFAbHNkLmljLnVuaWNhbXAuYnI+DQogICogSk1pY3JvbiByZXNwb25k cyB0byBVU04gYW5kIHNldmVyYWwgb3RoZXIgU0NTSSBpb2N0bHMgd2l0aCBhDQogICogcmVzaWR1 ZSB0aGF0IGNhdXNlcyBzdWJzZXF1ZW50IEkvTyByZXF1ZXN0cyB0byBmYWlsLiAgKi8NCmRpZmYg LS1naXQgYS9kcml2ZXJzL3hlbi9tYW5hZ2UuYyBiL2RyaXZlcnMveGVuL21hbmFnZS5jDQppbmRl eCBjZTRmYTA4Li5jOGFmN2U1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy94ZW4vbWFuYWdlLmMNCisr KyBiL2RyaXZlcnMveGVuL21hbmFnZS5jDQpAQCAtOTMsNyArOTMsNiBAQCBzdGF0aWMgaW50IHhl bl9zdXNwZW5kKHZvaWQgKmRhdGEpDQogDQogCWlmICghc2ktPmNhbmNlbGxlZCkgew0KIAkJeGVu X2lycV9yZXN1bWUoKTsNCi0JCXhlbl9jb25zb2xlX3Jlc3VtZSgpOw0KIAkJeGVuX3RpbWVyX3Jl c3VtZSgpOw0KIAl9DQogDQpAQCAtMTQ5LDYgKzE0OCwxMCBAQCBzdGF0aWMgdm9pZCBkb19zdXNw ZW5kKHZvaWQpDQogDQogCWVyciA9IHN0b3BfbWFjaGluZSh4ZW5fc3VzcGVuZCwgJnNpLCBjcHVt YXNrX29mKDApKTsNCiANCisJLyogUmVzdW1lIGNvbnNvbGUgYXMgZWFybHkgYXMgcG9zc2libGUu ICovDQorCWlmICghc2kuY2FuY2VsbGVkKQ0KKwkJeGVuX2NvbnNvbGVfcmVzdW1lKCk7DQorDQog CWRwbV9yZXN1bWVfbm9pcnEoc2kuY2FuY2VsbGVkID8gUE1TR19USEFXIDogUE1TR19SRVNUT1JF KTsNCiANCiAJaWYgKGVycikgew0KZGlmZiAtLWdpdCBhL2ZzL2NlcGgvc25hcC5jIGIvZnMvY2Vw aC9zbmFwLmMNCmluZGV4IGE1NTljODAuLmU1MjA2ZmMgMTAwNjQ0DQotLS0gYS9mcy9jZXBoL3Nu YXAuYw0KKysrIGIvZnMvY2VwaC9zbmFwLmMNCkBAIC0zMzEsNyArMzMxLDcgQEAgc3RhdGljIGlu dCBidWlsZF9zbmFwX2NvbnRleHQoc3RydWN0IGNlcGhfc25hcF9yZWFsbSAqcmVhbG0pDQogDQog CS8qIGFsbG9jIG5ldyBzbmFwIGNvbnRleHQgKi8NCiAJZXJyID0gLUVOT01FTTsNCi0JaWYgKG51 bSA+IFVMT05HX01BWCAvIHNpemVvZih1NjQpIC0gc2l6ZW9mKCpzbmFwYykpDQorCWlmIChudW0g PiAoU0laRV9NQVggLSBzaXplb2YoKnNuYXBjKSkgLyBzaXplb2YodTY0KSkNCiAJCWdvdG8gZmFp bDsNCiAJc25hcGMgPSBremFsbG9jKHNpemVvZigqc25hcGMpICsgbnVtKnNpemVvZih1NjQpLCBH RlBfTk9GUyk7DQogCWlmICghc25hcGMpDQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9zdXBlci5jIGIv ZnMvZXh0NC9zdXBlci5jDQppbmRleCBhY2YyYmFmLi42NTgxZWU3IDEwMDY0NA0KLS0tIGEvZnMv ZXh0NC9zdXBlci5jDQorKysgYi9mcy9leHQ0L3N1cGVyLmMNCkBAIC0xNjYzLDggKzE2NjMsNiBA QCBzdGF0aWMgaW50IHBhcnNlX29wdGlvbnMoY2hhciAqb3B0aW9ucywgc3RydWN0IHN1cGVyX2Js b2NrICpzYiwNCiAJCQkJcmV0dXJuIDA7DQogCQkJaWYgKG9wdGlvbiA8IDApDQogCQkJCXJldHVy biAwOw0KLQkJCWlmIChvcHRpb24gPT0gMCkNCi0JCQkJb3B0aW9uID0gRVhUNF9ERUZfTUFYX0JB VENIX1RJTUU7DQogCQkJc2JpLT5zX21heF9iYXRjaF90aW1lID0gb3B0aW9uOw0KIAkJCWJyZWFr Ow0KIAkJY2FzZSBPcHRfbWluX2JhdGNoX3RpbWU6DQpAQCAtMjcyNiwxMCArMjcyNCwxMSBAQCBz dGF0aWMgdm9pZCBwcmludF9kYWlseV9lcnJvcl9pbmZvKHVuc2lnbmVkIGxvbmcgYXJnKQ0KIAll cyA9IHNiaS0+c19lczsNCiANCiAJaWYgKGVzLT5zX2Vycm9yX2NvdW50KQ0KLQkJZXh0NF9tc2co c2IsIEtFUk5fTk9USUNFLCAiZXJyb3IgY291bnQ6ICV1IiwNCisJCS8qIGZzY2sgbmV3ZXIgdGhh biB2MS40MS4xMyBpcyBuZWVkZWQgdG8gY2xlYW4gdGhpcyBjb25kaXRpb24uICovDQorCQlleHQ0 X21zZyhzYiwgS0VSTl9OT1RJQ0UsICJlcnJvciBjb3VudCBzaW5jZSBsYXN0IGZzY2s6ICV1IiwN CiAJCQkgbGUzMl90b19jcHUoZXMtPnNfZXJyb3JfY291bnQpKTsNCiAJaWYgKGVzLT5zX2ZpcnN0 X2Vycm9yX3RpbWUpIHsNCi0JCXByaW50ayhLRVJOX05PVElDRSAiRVhUNC1mcyAoJXMpOiBpbml0 aWFsIGVycm9yIGF0ICV1OiAlLipzOiVkIiwNCisJCXByaW50ayhLRVJOX05PVElDRSAiRVhUNC1m cyAoJXMpOiBpbml0aWFsIGVycm9yIGF0IHRpbWUgJXU6ICUuKnM6JWQiLA0KIAkJICAgICAgIHNi LT5zX2lkLCBsZTMyX3RvX2NwdShlcy0+c19maXJzdF9lcnJvcl90aW1lKSwNCiAJCSAgICAgICAo aW50KSBzaXplb2YoZXMtPnNfZmlyc3RfZXJyb3JfZnVuYyksDQogCQkgICAgICAgZXMtPnNfZmly c3RfZXJyb3JfZnVuYywNCkBAIC0yNzQzLDcgKzI3NDIsNyBAQCBzdGF0aWMgdm9pZCBwcmludF9k YWlseV9lcnJvcl9pbmZvKHVuc2lnbmVkIGxvbmcgYXJnKQ0KIAkJcHJpbnRrKCJcbiIpOw0KIAl9 DQogCWlmIChlcy0+c19sYXN0X2Vycm9yX3RpbWUpIHsNCi0JCXByaW50ayhLRVJOX05PVElDRSAi RVhUNC1mcyAoJXMpOiBsYXN0IGVycm9yIGF0ICV1OiAlLipzOiVkIiwNCisJCXByaW50ayhLRVJO X05PVElDRSAiRVhUNC1mcyAoJXMpOiBsYXN0IGVycm9yIGF0IHRpbWUgJXU6ICUuKnM6JWQiLA0K IAkJICAgICAgIHNiLT5zX2lkLCBsZTMyX3RvX2NwdShlcy0+c19sYXN0X2Vycm9yX3RpbWUpLA0K IAkJICAgICAgIChpbnQpIHNpemVvZihlcy0+c19sYXN0X2Vycm9yX2Z1bmMpLA0KIAkJICAgICAg IGVzLT5zX2xhc3RfZXJyb3JfZnVuYywNCmRpZmYgLS1naXQgYS9mcy9mdXNlL2Rpci5jIGIvZnMv ZnVzZS9kaXIuYw0KaW5kZXggMDZlMmY3My4uZTEzNTU4YyAxMDA2NDQNCi0tLSBhL2ZzL2Z1c2Uv ZGlyLmMNCisrKyBiL2ZzL2Z1c2UvZGlyLmMNCkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIGlu dCBmdXNlX2RlbnRyeV9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmVudHJ5LCBzdHJ1Y3QgbmFt ZWlkYXRhICpuZCkNCiAJaW5vZGUgPSBBQ0NFU1NfT05DRShlbnRyeS0+ZF9pbm9kZSk7DQogCWlm IChpbm9kZSAmJiBpc19iYWRfaW5vZGUoaW5vZGUpKQ0KIAkJcmV0dXJuIDA7DQotCWVsc2UgaWYg KGZ1c2VfZGVudHJ5X3RpbWUoZW50cnkpIDwgZ2V0X2ppZmZpZXNfNjQoKSkgew0KKwllbHNlIGlm ICh0aW1lX2JlZm9yZTY0KGZ1c2VfZGVudHJ5X3RpbWUoZW50cnkpLCBnZXRfamlmZmllc182NCgp KSkgew0KIAkJaW50IGVycjsNCiAJCXN0cnVjdCBmdXNlX2VudHJ5X291dCBvdXRhcmc7DQogCQlz dHJ1Y3QgZnVzZV9jb25uICpmYzsNCkBAIC04NDksNyArODQ5LDcgQEAgaW50IGZ1c2VfdXBkYXRl X2F0dHJpYnV0ZXMoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGtzdGF0ICpzdGF0LA0KIAlp bnQgZXJyOw0KIAlib29sIHI7DQogDQotCWlmIChmaS0+aV90aW1lIDwgZ2V0X2ppZmZpZXNfNjQo KSkgew0KKwlpZiAodGltZV9iZWZvcmU2NChmaS0+aV90aW1lLCBnZXRfamlmZmllc182NCgpKSkg ew0KIAkJciA9IHRydWU7DQogCQllcnIgPSBmdXNlX2RvX2dldGF0dHIoaW5vZGUsIHN0YXQsIGZp bGUpOw0KIAl9IGVsc2Ugew0KQEAgLTEwMDksNyArMTAwOSw3IEBAIHN0YXRpYyBpbnQgZnVzZV9w ZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQ0KIAkgICAgKChtYXNrICYg TUFZX0VYRUMpICYmIFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkpKSB7DQogCQlzdHJ1Y3QgZnVzZV9p bm9kZSAqZmkgPSBnZXRfZnVzZV9pbm9kZShpbm9kZSk7DQogDQotCQlpZiAoZmktPmlfdGltZSA8 IGdldF9qaWZmaWVzXzY0KCkpIHsNCisJCWlmICh0aW1lX2JlZm9yZTY0KGZpLT5pX3RpbWUsIGdl dF9qaWZmaWVzXzY0KCkpKSB7DQogCQkJcmVmcmVzaGVkID0gdHJ1ZTsNCiANCiAJCQllcnIgPSBm dXNlX3Blcm1fZ2V0YXR0cihpbm9kZSwgbWFzayk7DQpkaWZmIC0tZ2l0IGEvZnMvZnVzZS9pbm9k ZS5jIGIvZnMvZnVzZS9pbm9kZS5jDQppbmRleCA5MTJjMjUwLi5hZmMwZjcwNiAxMDA2NDQNCi0t LSBhL2ZzL2Z1c2UvaW5vZGUuYw0KKysrIGIvZnMvZnVzZS9pbm9kZS5jDQpAQCAtNDM3LDYgKzQz NywxNyBAQCBzdGF0aWMgY29uc3QgbWF0Y2hfdGFibGVfdCB0b2tlbnMgPSB7DQogCXtPUFRfRVJS LAkJCU5VTEx9DQogfTsNCiANCitzdGF0aWMgaW50IGZ1c2VfbWF0Y2hfdWludChzdWJzdHJpbmdf dCAqcywgdW5zaWduZWQgaW50ICpyZXMpDQorew0KKwlpbnQgZXJyID0gLUVOT01FTTsNCisJY2hh ciAqYnVmID0gbWF0Y2hfc3RyZHVwKHMpOw0KKwlpZiAoYnVmKSB7DQorCQllcnIgPSBrc3RydG91 aW50KGJ1ZiwgMTAsIHJlcyk7DQorCQlrZnJlZShidWYpOw0KKwl9DQorCXJldHVybiBlcnI7DQor fQ0KKw0KIHN0YXRpYyBpbnQgcGFyc2VfZnVzZV9vcHQoY2hhciAqb3B0LCBzdHJ1Y3QgZnVzZV9t b3VudF9kYXRhICpkLCBpbnQgaXNfYmRldikNCiB7DQogCWNoYXIgKnA7DQpAQCAtNDQ3LDYgKzQ1 OCw3IEBAIHN0YXRpYyBpbnQgcGFyc2VfZnVzZV9vcHQoY2hhciAqb3B0LCBzdHJ1Y3QgZnVzZV9t b3VudF9kYXRhICpkLCBpbnQgaXNfYmRldikNCiAJd2hpbGUgKChwID0gc3Ryc2VwKCZvcHQsICIs IikpICE9IE5VTEwpIHsNCiAJCWludCB0b2tlbjsNCiAJCWludCB2YWx1ZTsNCisJCXVuc2lnbmVk IHV2Ow0KIAkJc3Vic3RyaW5nX3QgYXJnc1tNQVhfT1BUX0FSR1NdOw0KIAkJaWYgKCEqcCkNCiAJ CQljb250aW51ZTsNCkBAIC00NzAsMTYgKzQ4MiwxNiBAQCBzdGF0aWMgaW50IHBhcnNlX2Z1c2Vf b3B0KGNoYXIgKm9wdCwgc3RydWN0IGZ1c2VfbW91bnRfZGF0YSAqZCwgaW50IGlzX2JkZXYpDQog CQkJYnJlYWs7DQogDQogCQljYXNlIE9QVF9VU0VSX0lEOg0KLQkJCWlmIChtYXRjaF9pbnQoJmFy Z3NbMF0sICZ2YWx1ZSkpDQorCQkJaWYgKGZ1c2VfbWF0Y2hfdWludCgmYXJnc1swXSwgJnV2KSkN CiAJCQkJcmV0dXJuIDA7DQotCQkJZC0+dXNlcl9pZCA9IHZhbHVlOw0KKwkJCWQtPnVzZXJfaWQg PSB1djsNCiAJCQlkLT51c2VyX2lkX3ByZXNlbnQgPSAxOw0KIAkJCWJyZWFrOw0KIA0KIAkJY2Fz ZSBPUFRfR1JPVVBfSUQ6DQotCQkJaWYgKG1hdGNoX2ludCgmYXJnc1swXSwgJnZhbHVlKSkNCisJ CQlpZiAoZnVzZV9tYXRjaF91aW50KCZhcmdzWzBdLCAmdXYpKQ0KIAkJCQlyZXR1cm4gMDsNCi0J CQlkLT5ncm91cF9pZCA9IHZhbHVlOw0KKwkJCWQtPmdyb3VwX2lkID0gdXY7DQogCQkJZC0+Z3Jv dXBfaWRfcHJlc2VudCA9IDE7DQogCQkJYnJlYWs7DQogDQpkaWZmIC0tZ2l0IGEvZnMvamJkMi90 cmFuc2FjdGlvbi5jIGIvZnMvamJkMi90cmFuc2FjdGlvbi5jDQppbmRleCAxOGVhNGQ5Li44NmRj NjhhIDEwMDY0NA0KLS0tIGEvZnMvamJkMi90cmFuc2FjdGlvbi5jDQorKysgYi9mcy9qYmQyL3Ry YW5zYWN0aW9uLmMNCkBAIC0xMzg4LDkgKzEzODgsMTIgQEAgaW50IGpiZDJfam91cm5hbF9zdG9w KGhhbmRsZV90ICpoYW5kbGUpDQogCSAqIHRvIHBlcmZvcm0gYSBzeW5jaHJvbm91cyB3cml0ZS4g IFdlIGRvIHRoaXMgdG8gZGV0ZWN0IHRoZQ0KIAkgKiBjYXNlIHdoZXJlIGEgc2luZ2xlIHByb2Nl c3MgaXMgZG9pbmcgYSBzdHJlYW0gb2Ygc3luYw0KIAkgKiB3cml0ZXMuICBObyBwb2ludCBpbiB3 YWl0aW5nIGZvciBqb2luZXJzIGluIHRoYXQgY2FzZS4NCisJICoNCisJICogU2V0dGluZyBtYXhf YmF0Y2hfdGltZSB0byAwIGRpc2FibGVzIHRoaXMgY29tcGxldGVseS4NCiAJICovDQogCXBpZCA9 IGN1cnJlbnQtPnBpZDsNCi0JaWYgKGhhbmRsZS0+aF9zeW5jICYmIGpvdXJuYWwtPmpfbGFzdF9z eW5jX3dyaXRlciAhPSBwaWQpIHsNCisJaWYgKGhhbmRsZS0+aF9zeW5jICYmIGpvdXJuYWwtPmpf bGFzdF9zeW5jX3dyaXRlciAhPSBwaWQgJiYNCisJICAgIGpvdXJuYWwtPmpfbWF4X2JhdGNoX3Rp bWUpIHsNCiAJCXU2NCBjb21taXRfdGltZSwgdHJhbnNfdGltZTsNCiANCiAJCWpvdXJuYWwtPmpf bGFzdF9zeW5jX3dyaXRlciA9IHBpZDsNCmRpZmYgLS1naXQgYS9mcy9uZnNkL25mczRwcm9jLmMg Yi9mcy9uZnNkL25mczRwcm9jLmMNCmluZGV4IDMxNWExYmEuLmVlYmNjZmUgMTAwNjQ0DQotLS0g YS9mcy9uZnNkL25mczRwcm9jLmMNCisrKyBiL2ZzL25mc2QvbmZzNHByb2MuYw0KQEAgLTUyOSwx NSArNTI5LDYgQEAgbmZzZDRfY3JlYXRlKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBu ZnNkNF9jb21wb3VuZF9zdGF0ZSAqY3N0YXRlLA0KIA0KIAlzd2l0Y2ggKGNyZWF0ZS0+Y3JfdHlw ZSkgew0KIAljYXNlIE5GNExOSzoNCi0JCS8qIHVnaCEgd2UgaGF2ZSB0byBudWxsLXRlcm1pbmF0 ZSB0aGUgbGlua3RleHQsIG9yDQotCQkgKiB2ZnNfc3ltbGluaygpIHdpbGwgY2hva2UuICBpdCBp cyBhbHdheXMgc2FmZSB0bw0KLQkJICogbnVsbC10ZXJtaW5hdGUgYnkgYnJ1dGUgZm9yY2UsIHNp bmNlIGF0IHdvcnN0IHdlDQotCQkgKiB3aWxsIG92ZXJ3cml0ZSB0aGUgZmlyc3QgYnl0ZSBvZiB0 aGUgY3JlYXRlIG5hbWVsZW4NCi0JCSAqIGluIHRoZSBYRFIgYnVmZmVyLCB3aGljaCBoYXMgYWxy ZWFkeSBiZWVuIGV4dHJhY3RlZA0KLQkJICogZHVyaW5nIFhEUiBkZWNvZGUuDQotCQkgKi8NCi0J CWNyZWF0ZS0+Y3JfbGlua25hbWVbY3JlYXRlLT5jcl9saW5rbGVuXSA9IDA7DQotDQogCQlzdGF0 dXMgPSBuZnNkX3N5bWxpbmsocnFzdHAsICZjc3RhdGUtPmN1cnJlbnRfZmgsDQogCQkJCSAgICAg IGNyZWF0ZS0+Y3JfbmFtZSwgY3JlYXRlLT5jcl9uYW1lbGVuLA0KIAkJCQkgICAgICBjcmVhdGUt PmNyX2xpbmtuYW1lLCBjcmVhdGUtPmNyX2xpbmtsZW4sDQpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9u ZnM0eGRyLmMgYi9mcy9uZnNkL25mczR4ZHIuYw0KaW5kZXggYTc5MzNkZC4uOWQyYzUyYiAxMDA2 NDQNCi0tLSBhL2ZzL25mc2QvbmZzNHhkci5jDQorKysgYi9mcy9uZnNkL25mczR4ZHIuYw0KQEAg LTQ4Miw3ICs0ODIsMTggQEAgbmZzZDRfZGVjb2RlX2NyZWF0ZShzdHJ1Y3QgbmZzZDRfY29tcG91 bmRhcmdzICphcmdwLCBzdHJ1Y3QgbmZzZDRfY3JlYXRlICpjcmVhdGUNCiAJCVJFQURfQlVGKDQp Ow0KIAkJUkVBRDMyKGNyZWF0ZS0+Y3JfbGlua2xlbik7DQogCQlSRUFEX0JVRihjcmVhdGUtPmNy X2xpbmtsZW4pOw0KLQkJU0FWRU1FTShjcmVhdGUtPmNyX2xpbmtuYW1lLCBjcmVhdGUtPmNyX2xp bmtsZW4pOw0KKwkJLyoNCisJCSAqIFRoZSBWRlMgd2lsbCB3YW50IGEgbnVsbC10ZXJtaW5hdGVk IHN0cmluZywgYW5kDQorCQkgKiBudWxsLXRlcm1pbmF0aW5nIGluIHBsYWNlIGlzbid0IHNhZmUg c2luY2UgdGhpcyBtaWdodA0KKwkJICogZW5kIG9uIGEgcGFnZSBib3VuZGFyeToNCisJCSAqLw0K KwkJY3JlYXRlLT5jcl9saW5rbmFtZSA9DQorCQkJCWttYWxsb2MoY3JlYXRlLT5jcl9saW5rbGVu ICsgMSwgR0ZQX0tFUk5FTCk7DQorCQlpZiAoIWNyZWF0ZS0+Y3JfbGlua25hbWUpDQorCQkJcmV0 dXJuIG5mc2Vycl9qdWtlYm94Ow0KKwkJbWVtY3B5KGNyZWF0ZS0+Y3JfbGlua25hbWUsIHAsIGNy ZWF0ZS0+Y3JfbGlua2xlbik7DQorCQljcmVhdGUtPmNyX2xpbmtuYW1lW2NyZWF0ZS0+Y3JfbGlu a2xlbl0gPSAnXDAnOw0KKwkJZGVmZXJfZnJlZShhcmdwLCBrZnJlZSwgY3JlYXRlLT5jcl9saW5r bmFtZSk7DQogCQlicmVhazsNCiAJY2FzZSBORjRCTEs6DQogCWNhc2UgTkY0Q0hSOg0KZGlmZiAt LWdpdCBhL2ZzL3hmcy94ZnNfYWxsb2MuYyBiL2ZzL3hmcy94ZnNfYWxsb2MuYw0KaW5kZXggY2U4 NGZmZC4uODk2ZjFkOSAxMDA2NDQNCi0tLSBhL2ZzL3hmcy94ZnNfYWxsb2MuYw0KKysrIGIvZnMv eGZzL3hmc19hbGxvYy5jDQpAQCAtMTA3NSwxMiArMTA3NSwxMyBAQCByZXN0YXJ0Og0KIAkgKiBJ ZiB3ZSBjb3VsZG4ndCBnZXQgYW55dGhpbmcsIGdpdmUgdXAuDQogCSAqLw0KIAlpZiAoYm5vX2N1 cl9sdCA9PSBOVUxMICYmIGJub19jdXJfZ3QgPT0gTlVMTCkgew0KKwkJeGZzX2J0cmVlX2RlbF9j dXJzb3IoY250X2N1ciwgWEZTX0JUUkVFX05PRVJST1IpOw0KKw0KIAkJaWYgKCFmb3JjZWQrKykg ew0KIAkJCXRyYWNlX3hmc19hbGxvY19uZWFyX2J1c3koYXJncyk7DQogCQkJeGZzX2xvZ19mb3Jj ZShhcmdzLT5tcCwgWEZTX0xPR19TWU5DKTsNCiAJCQlnb3RvIHJlc3RhcnQ7DQogCQl9DQotDQog CQl0cmFjZV94ZnNfYWxsb2Nfc2l6ZV9uZWl0aGVyKGFyZ3MpOw0KIAkJYXJncy0+YWdibm8gPSBO VUxMQUdCTE9DSzsNCiAJCXJldHVybiAwOw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9t ZW1fdXRpbC5oIGIvaW5jbHVkZS9kcm0vZHJtX21lbV91dGlsLmgNCmluZGV4IDZiZDMyNWYuLjE5 YTI0MDQgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2RybS9kcm1fbWVtX3V0aWwuaA0KKysrIGIvaW5j bHVkZS9kcm0vZHJtX21lbV91dGlsLmgNCkBAIC0zMSw3ICszMSw3IEBADQogDQogc3RhdGljIF9f aW5saW5lX18gdm9pZCAqZHJtX2NhbGxvY19sYXJnZShzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXpl KQ0KIHsNCi0JaWYgKHNpemUgIT0gMCAmJiBubWVtYiA+IFVMT05HX01BWCAvIHNpemUpDQorCWlm IChzaXplICE9IDAgJiYgbm1lbWIgPiBTSVpFX01BWCAvIHNpemUpDQogCQlyZXR1cm4gTlVMTDsN CiANCiAJaWYgKHNpemUgKiBubWVtYiA8PSBQQUdFX1NJWkUpDQpAQCAtNDQsNyArNDQsNyBAQCBz dGF0aWMgX19pbmxpbmVfXyB2b2lkICpkcm1fY2FsbG9jX2xhcmdlKHNpemVfdCBubWVtYiwgc2l6 ZV90IHNpemUpDQogLyogTW9kZWxlZCBhZnRlciBjYWlybydzIG1hbGxvY19hYiwgaXQncyBsaWtl IGNhbGxvYyBidXQgd2l0aG91dCB0aGUgemVyb2luZy4gKi8NCiBzdGF0aWMgX19pbmxpbmVfXyB2 b2lkICpkcm1fbWFsbG9jX2FiKHNpemVfdCBubWVtYiwgc2l6ZV90IHNpemUpDQogew0KLQlpZiAo c2l6ZSAhPSAwICYmIG5tZW1iID4gVUxPTkdfTUFYIC8gc2l6ZSkNCisJaWYgKHNpemUgIT0gMCAm JiBubWVtYiA+IFNJWkVfTUFYIC8gc2l6ZSkNCiAJCXJldHVybiBOVUxMOw0KIA0KIAlpZiAoc2l6 ZSAqIG5tZW1iIDw9IFBBR0VfU0laRSkNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2tlcm5l bC5oIGIvaW5jbHVkZS9saW51eC9rZXJuZWwuaA0KaW5kZXggYTcwNzgzZC4uMGI4Y2EzNSAxMDA2 NDQNCi0tLSBhL2luY2x1ZGUvbGludXgva2VybmVsLmgNCisrKyBiL2luY2x1ZGUvbGludXgva2Vy bmVsLmgNCkBAIC0zNCw2ICszNCw3IEBADQogI2RlZmluZSBMTE9OR19NQVgJKChsb25nIGxvbmcp KH4wVUxMPj4xKSkNCiAjZGVmaW5lIExMT05HX01JTgkoLUxMT05HX01BWCAtIDEpDQogI2RlZmlu ZSBVTExPTkdfTUFYCSh+MFVMTCkNCisjZGVmaW5lIFNJWkVfTUFYCSh+KHNpemVfdCkwKQ0KIA0K ICNkZWZpbmUgU1RBQ0tfTUFHSUMJMHhkZWFkYmVlZg0KIA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvbGliYXRhLmggYi9pbmNsdWRlL2xpbnV4L2xpYmF0YS5oDQppbmRleCAzNzVkZmRmLi5k NzczYjIxIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9saWJhdGEuaA0KKysrIGIvaW5jbHVk ZS9saW51eC9saWJhdGEuaA0KQEAgLTU0MCw2ICs1NDAsNyBAQCBzdHJ1Y3QgYXRhX2hvc3Qgew0K IAlzdHJ1Y3QgZGV2aWNlIAkJKmRldjsNCiAJdm9pZCBfX2lvbWVtICogY29uc3QJKmlvbWFwOw0K IAl1bnNpZ25lZCBpbnQJCW5fcG9ydHM7DQorCXVuc2lnbmVkIGludAkJbl90YWdzOwkJCS8qIG5y IG9mIE5DUSB0YWdzICovDQogCXZvaWQJCQkqcHJpdmF0ZV9kYXRhOw0KIAlzdHJ1Y3QgYXRhX3Bv cnRfb3BlcmF0aW9ucyAqb3BzOw0KIAl1bnNpZ25lZCBsb25nCQlmbGFnczsNCmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L21hdGg2NC5oIGIvaW5jbHVkZS9saW51eC9tYXRoNjQuaA0KaW5kZXgg YjhiYTg1NS4uMjkxM2I4NiAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvbWF0aDY0LmgNCisr KyBiL2luY2x1ZGUvbGludXgvbWF0aDY0LmgNCkBAIC02LDcgKzYsOCBAQA0KIA0KICNpZiBCSVRT X1BFUl9MT05HID09IDY0DQogDQotI2RlZmluZSBkaXY2NF9sb25nKHgseSkgZGl2NjRfczY0KCh4 KSwoeSkpDQorI2RlZmluZSBkaXY2NF9sb25nKHgsIHkpIGRpdjY0X3M2NCgoeCksICh5KSkNCisj ZGVmaW5lIGRpdjY0X3VsKHgsIHkpICAgZGl2NjRfdTY0KCh4KSwgKHkpKQ0KIA0KIC8qKg0KICAq IGRpdl91NjRfcmVtIC0gdW5zaWduZWQgNjRiaXQgZGl2aWRlIHdpdGggMzJiaXQgZGl2aXNvciB3 aXRoIHJlbWFpbmRlcg0KQEAgLTQ3LDcgKzQ4LDggQEAgc3RhdGljIGlubGluZSBzNjQgZGl2NjRf czY0KHM2NCBkaXZpZGVuZCwgczY0IGRpdmlzb3IpDQogDQogI2VsaWYgQklUU19QRVJfTE9ORyA9 PSAzMg0KIA0KLSNkZWZpbmUgZGl2NjRfbG9uZyh4LHkpIGRpdl9zNjQoKHgpLCh5KSkNCisjZGVm aW5lIGRpdjY0X2xvbmcoeCwgeSkgZGl2X3M2NCgoeCksICh5KSkNCisjZGVmaW5lIGRpdjY0X3Vs KHgsIHkpICAgZGl2X3U2NCgoeCksICh5KSkNCiANCiAjaWZuZGVmIGRpdl91NjRfcmVtDQogc3Rh dGljIGlubGluZSB1NjQgZGl2X3U2NF9yZW0odTY0IGRpdmlkZW5kLCB1MzIgZGl2aXNvciwgdTMy ICpyZW1haW5kZXIpDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaCBiL2luY2x1 ZGUvbGludXgvc2tidWZmLmgNCmluZGV4IDQwYzI3MjYuLjFiNGVhMjkgMTAwNjQ0DQotLS0gYS9p bmNsdWRlL2xpbnV4L3NrYnVmZi5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oDQpAQCAt MjU4MywyMiArMjU4Myw1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBza2JfaXNfcmVjeWNsZWFibGUo Y29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IHNrYl9zaXplKQ0KIA0KIAlyZXR1cm4gdHJ1 ZTsNCiB9DQotDQotLyoqDQotICogc2tiX2dzb19uZXR3b3JrX3NlZ2xlbiAtIFJldHVybiBsZW5n dGggb2YgaW5kaXZpZHVhbCBzZWdtZW50cyBvZiBhIGdzbyBwYWNrZXQNCi0gKg0KLSAqIEBza2I6 IEdTTyBza2INCi0gKg0KLSAqIHNrYl9nc29fbmV0d29ya19zZWdsZW4gaXMgdXNlZCB0byBkZXRl cm1pbmUgdGhlIHJlYWwgc2l6ZSBvZiB0aGUNCi0gKiBpbmRpdmlkdWFsIHNlZ21lbnRzLCBpbmNs dWRpbmcgTGF5ZXIzIChJUCwgSVB2NikgYW5kIEw0IGhlYWRlcnMgKFRDUC9VRFApLg0KLSAqDQot ICogVGhlIE1BQy9MMiBoZWFkZXIgaXMgbm90IGFjY291bnRlZCBmb3IuDQotICovDQotc3RhdGlj IGlubGluZSB1bnNpZ25lZCBpbnQgc2tiX2dzb19uZXR3b3JrX3NlZ2xlbihjb25zdCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQ0KLXsNCi0JdW5zaWduZWQgaW50IGhkcl9sZW4gPSBza2JfdHJhbnNwb3J0 X2hlYWRlcihza2IpIC0NCi0JCQkgICAgICAgc2tiX25ldHdvcmtfaGVhZGVyKHNrYik7DQotCXJl dHVybiBoZHJfbGVuICsgc2tiX2dzb190cmFuc3BvcnRfc2VnbGVuKHNrYik7DQotfQ0KICNlbmRp ZgkvKiBfX0tFUk5FTF9fICovDQogI2VuZGlmCS8qIF9MSU5VWF9TS0JVRkZfSCAqLw0KZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvc2xhYi5oIGIvaW5jbHVkZS9saW51eC9zbGFiLmgNCmluZGV4 IGE1OTVkY2UuLjY3ZDVkOTQgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L3NsYWIuaA0KKysr IGIvaW5jbHVkZS9saW51eC9zbGFiLmgNCkBAIC0yNDIsNyArMjQyLDcgQEAgc2l6ZV90IGtzaXpl KGNvbnN0IHZvaWQgKik7DQogICovDQogc3RhdGljIGlubGluZSB2b2lkICprbWFsbG9jX2FycmF5 KHNpemVfdCBuLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpDQogew0KLQlpZiAoc2l6ZSAhPSAw ICYmIG4gPiBVTE9OR19NQVggLyBzaXplKQ0KKwlpZiAoc2l6ZSAhPSAwICYmIG4gPiBTSVpFX01B WCAvIHNpemUpDQogCQlyZXR1cm4gTlVMTDsNCiAJcmV0dXJuIF9fa21hbGxvYyhuICogc2l6ZSwg ZmxhZ3MpOw0KIH0NCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3VzYl91c3VhbC5oIGIvaW5j bHVkZS9saW51eC91c2JfdXN1YWwuaA0KaW5kZXggMTdkZjM2MC4uODg0MTNlOSAxMDA2NDQNCi0t LSBhL2luY2x1ZGUvbGludXgvdXNiX3VzdWFsLmgNCisrKyBiL2luY2x1ZGUvbGludXgvdXNiX3Vz dWFsLmgNCkBAIC02NCw3ICs2NCw5IEBADQogCVVTX0ZMQUcoTk9fUkVBRF9DQVBBQ0lUWV8xNiwJ MHgwMDA4MDAwMCkJCVwNCiAJCS8qIGNhbm5vdCBoYW5kbGUgUkVBRF9DQVBBQ0lUWV8xNiAqLwkJ XA0KIAlVU19GTEFHKElOSVRJQUxfUkVBRDEwLAkweDAwMTAwMDAwKQkJCVwNCi0JCS8qIEluaXRp YWwgUkVBRCgxMCkgKGFuZCBvdGhlcnMpIG11c3QgYmUgcmV0cmllZCAqLw0KKwkJLyogSW5pdGlh bCBSRUFEKDEwKSAoYW5kIG90aGVycykgbXVzdCBiZSByZXRyaWVkICovIFwNCisJVVNfRkxBRyhC Uk9LRU5fRlVBLAkweDAxMDAwMDAwKQkJCVwNCisJCS8qIENhbm5vdCBoYW5kbGUgRlVBIGluIFdS SVRFIG9yIFJFQUQgQ0RCcyAqLwlcDQogDQogI2RlZmluZSBVU19GTEFHKG5hbWUsIHZhbHVlKQlV U19GTF8jI25hbWUgPSB2YWx1ZSAsDQogZW51bSB7IFVTX0RPX0FMTF9GTEFHUyB9Ow0KZGlmZiAt LWdpdCBhL2luY2x1ZGUvc2NzaS9zY3NpX2RldmljZS5oIGIvaW5jbHVkZS9zY3NpL3Njc2lfZGV2 aWNlLmgNCmluZGV4IDMxNTJjYzMuLjM3N2JhNjEgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL3Njc2kv c2NzaV9kZXZpY2UuaA0KKysrIGIvaW5jbHVkZS9zY3NpL3Njc2lfZGV2aWNlLmgNCkBAIC0xNTEs NiArMTUxLDcgQEAgc3RydWN0IHNjc2lfZGV2aWNlIHsNCiAJdW5zaWduZWQgbm9fcmVhZF9kaXNj X2luZm86MTsJLyogQXZvaWQgUkVBRF9ESVNDX0lORk8gY21kcyAqLw0KIAl1bnNpZ25lZCBub19y ZWFkX2NhcGFjaXR5XzE2OjE7IC8qIEF2b2lkIFJFQURfQ0FQQUNJVFlfMTYgY21kcyAqLw0KIAl1 bnNpZ25lZCBpc192aXNpYmxlOjE7CS8qIGlzIHRoZSBkZXZpY2UgdmlzaWJsZSBpbiBzeXNmcyAq Lw0KKwl1bnNpZ25lZCBicm9rZW5fZnVhOjE7CQkvKiBEb24ndCBzZXQgRlVBIGJpdCAqLw0KIA0K IAlERUNMQVJFX0JJVE1BUChzdXBwb3J0ZWRfZXZlbnRzLCBTREVWX0VWVF9NQVhCSVRTKTsgLyog c3VwcG9ydGVkIGV2ZW50cyAqLw0KIAlzdHJ1Y3QgbGlzdF9oZWFkIGV2ZW50X2xpc3Q7CS8qIGFz c2VydGVkIGV2ZW50cyAqLw0KZGlmZiAtLWdpdCBhL2tlcm5lbC9LY29uZmlnLmxvY2tzIGIva2Vy bmVsL0tjb25maWcubG9ja3MNCmluZGV4IDUwNjhlMmEuLjYxZWJiNDkgMTAwNjQ0DQotLS0gYS9r ZXJuZWwvS2NvbmZpZy5sb2Nrcw0KKysrIGIva2VybmVsL0tjb25maWcubG9ja3MNCkBAIC0xOTgs NSArMTk4LDkgQEAgY29uZmlnIElOTElORV9XUklURV9VTkxPQ0tfSVJRDQogY29uZmlnIElOTElO RV9XUklURV9VTkxPQ0tfSVJRUkVTVE9SRQ0KIAlkZWZfYm9vbCAhREVCVUdfU1BJTkxPQ0sgJiYg QVJDSF9JTkxJTkVfV1JJVEVfVU5MT0NLX0lSUVJFU1RPUkUNCiANCitjb25maWcgQVJDSF9TVVBQ T1JUU19BVE9NSUNfUk1XDQorCWJvb2wNCisNCiBjb25maWcgTVVURVhfU1BJTl9PTl9PV05FUg0K LQlkZWZfYm9vbCBTTVAgJiYgIURFQlVHX01VVEVYRVMNCisJZGVmX2Jvb2wgeQ0KKwlkZXBlbmRz IG9uIFNNUCAmJiAhREVCVUdfTVVURVhFUyAmJiBBUkNIX1NVUFBPUlRTX0FUT01JQ19STVcNCmRp ZmYgLS1naXQgYS9rZXJuZWwvY3B1c2V0LmMgYi9rZXJuZWwvY3B1c2V0LmMNCmluZGV4IDFlMmM1 ZjAuLjQzNDZmOWEgMTAwNjQ0DQotLS0gYS9rZXJuZWwvY3B1c2V0LmMNCisrKyBiL2tlcm5lbC9j cHVzZXQuYw0KQEAgLTExNTIsNyArMTE1MiwxMyBAQCBkb25lOg0KIA0KIGludCBjdXJyZW50X2Nw dXNldF9pc19iZWluZ19yZWJvdW5kKHZvaWQpDQogew0KLQlyZXR1cm4gdGFza19jcyhjdXJyZW50 KSA9PSBjcHVzZXRfYmVpbmdfcmVib3VuZDsNCisJaW50IHJldDsNCisNCisJcmN1X3JlYWRfbG9j aygpOw0KKwlyZXQgPSB0YXNrX2NzKGN1cnJlbnQpID09IGNwdXNldF9iZWluZ19yZWJvdW5kOw0K KwlyY3VfcmVhZF91bmxvY2soKTsNCisNCisJcmV0dXJuIHJldDsNCiB9DQogDQogc3RhdGljIGlu dCB1cGRhdGVfcmVsYXhfZG9tYWluX2xldmVsKHN0cnVjdCBjcHVzZXQgKmNzLCBzNjQgdmFsKQ0K ZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9kZWJ1Zy5jIGIva2VybmVsL3NjaGVkX2RlYnVnLmMN CmluZGV4IGY0MDEwZTIuLjcwNGZmZTMgMTAwNjQ0DQotLS0gYS9rZXJuZWwvc2NoZWRfZGVidWcu Yw0KKysrIGIva2VybmVsL3NjaGVkX2RlYnVnLmMNCkBAIC00NjcsNyArNDY3LDcgQEAgdm9pZCBw cm9jX3NjaGVkX3Nob3dfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBzZXFfZmls ZSAqbSkNCiANCiAJCWF2Z19hdG9tID0gcC0+c2Uuc3VtX2V4ZWNfcnVudGltZTsNCiAJCWlmIChu cl9zd2l0Y2hlcykNCi0JCQlkb19kaXYoYXZnX2F0b20sIG5yX3N3aXRjaGVzKTsNCisJCQlhdmdf YXRvbSA9IGRpdjY0X3VsKGF2Z19hdG9tLCBucl9zd2l0Y2hlcyk7DQogCQllbHNlDQogCQkJYXZn X2F0b20gPSAtMUxMOw0KIA0KZGlmZiAtLWdpdCBhL2tlcm5lbC90aW1lL2FsYXJtdGltZXIuYyBi L2tlcm5lbC90aW1lL2FsYXJtdGltZXIuYw0KaW5kZXggMDkwN2U0My4uZWIxOThhMyAxMDA2NDQN Ci0tLSBhL2tlcm5lbC90aW1lL2FsYXJtdGltZXIuYw0KKysrIGIva2VybmVsL3RpbWUvYWxhcm10 aW1lci5jDQpAQCAtNTYzLDkgKzU2MywxNCBAQCBzdGF0aWMgaW50IGFsYXJtX3RpbWVyX3NldChz dHJ1Y3Qga19pdGltZXIgKnRpbXIsIGludCBmbGFncywNCiAJCQkJc3RydWN0IGl0aW1lcnNwZWMg Km5ld19zZXR0aW5nLA0KIAkJCQlzdHJ1Y3QgaXRpbWVyc3BlYyAqb2xkX3NldHRpbmcpDQogew0K KwlrdGltZV90IGV4cDsNCisNCiAJaWYgKCFydGNkZXYpDQogCQlyZXR1cm4gLUVOT1RTVVBQOw0K IA0KKwlpZiAoZmxhZ3MgJiB+VElNRVJfQUJTVElNRSkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0K IAlpZiAob2xkX3NldHRpbmcpDQogCQlhbGFybV90aW1lcl9nZXQodGltciwgb2xkX3NldHRpbmcp Ow0KIA0KQEAgLTU3NSw4ICs1ODAsMTYgQEAgc3RhdGljIGludCBhbGFybV90aW1lcl9zZXQoc3Ry dWN0IGtfaXRpbWVyICp0aW1yLCBpbnQgZmxhZ3MsDQogDQogCS8qIHN0YXJ0IHRoZSB0aW1lciAq Lw0KIAl0aW1yLT5pdC5hbGFybS5pbnRlcnZhbCA9IHRpbWVzcGVjX3RvX2t0aW1lKG5ld19zZXR0 aW5nLT5pdF9pbnRlcnZhbCk7DQotCWFsYXJtX3N0YXJ0KCZ0aW1yLT5pdC5hbGFybS5hbGFybXRp bWVyLA0KLQkJCXRpbWVzcGVjX3RvX2t0aW1lKG5ld19zZXR0aW5nLT5pdF92YWx1ZSkpOw0KKwll eHAgPSB0aW1lc3BlY190b19rdGltZShuZXdfc2V0dGluZy0+aXRfdmFsdWUpOw0KKwkvKiBDb252 ZXJ0IChpZiBuZWNlc3NhcnkpIHRvIGFic29sdXRlIHRpbWUgKi8NCisJaWYgKGZsYWdzICE9IFRJ TUVSX0FCU1RJTUUpIHsNCisJCWt0aW1lX3Qgbm93Ow0KKw0KKwkJbm93ID0gYWxhcm1fYmFzZXNb dGltci0+aXQuYWxhcm0uYWxhcm10aW1lci50eXBlXS5nZXR0aW1lKCk7DQorCQlleHAgPSBrdGlt ZV9hZGQobm93LCBleHApOw0KKwl9DQorDQorCWFsYXJtX3N0YXJ0KCZ0aW1yLT5pdC5hbGFybS5h bGFybXRpbWVyLCBleHApOw0KIAlyZXR1cm4gMDsNCiB9DQogDQpAQCAtNzA4LDYgKzcyMSw5IEBA IHN0YXRpYyBpbnQgYWxhcm1fdGltZXJfbnNsZWVwKGNvbnN0IGNsb2NraWRfdCB3aGljaF9jbG9j aywgaW50IGZsYWdzLA0KIAlpZiAoIWFsYXJtdGltZXJfZ2V0X3J0Y2RldigpKQ0KIAkJcmV0dXJu IC1FTk9UU1VQUDsNCiANCisJaWYgKGZsYWdzICYgflRJTUVSX0FCU1RJTUUpDQorCQlyZXR1cm4g LUVJTlZBTDsNCisNCiAJaWYgKCFjYXBhYmxlKENBUF9XQUtFX0FMQVJNKSkNCiAJCXJldHVybiAt RVBFUk07DQogDQpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGljay1zY2hlZC5jIGIva2VybmVs L3RpbWUvdGljay1zY2hlZC5jDQppbmRleCBlOWE0NWYxLi4yNjk1ZDcyIDEwMDY0NA0KLS0tIGEv a2VybmVsL3RpbWUvdGljay1zY2hlZC5jDQorKysgYi9rZXJuZWwvdGltZS90aWNrLXNjaGVkLmMN CkBAIC0zMjUsOCArMzI1LDEwIEBAIHZvaWQgdGlja19ub2h6X3N0b3Bfc2NoZWRfdGljayhpbnQg aW5pZGxlKQ0KIAkJCXRpY2tfZG9fdGltZXJfY3B1ID0gVElDS19ET19USU1FUl9OT05FOw0KIAl9 DQogDQotCWlmICh1bmxpa2VseSh0cy0+bm9oel9tb2RlID09IE5PSFpfTU9ERV9JTkFDVElWRSkp DQorCWlmICh1bmxpa2VseSh0cy0+bm9oel9tb2RlID09IE5PSFpfTU9ERV9JTkFDVElWRSkpIHsN CisJCXRzLT5zbGVlcF9sZW5ndGggPSAoa3RpbWVfdCkgeyAudHY2NCA9IE5TRUNfUEVSX1NFQy9I WiB9Ow0KIAkJZ290byBlbmQ7DQorCX0NCiANCiAJaWYgKG5lZWRfcmVzY2hlZCgpKQ0KIAkJZ290 byBlbmQ7DQpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlLmMgYi9rZXJuZWwvdHJhY2Uv dHJhY2UuYw0KaW5kZXggYzVhMTJhNy4uMGMzNDhhNiAxMDA2NDQNCi0tLSBhL2tlcm5lbC90cmFj ZS90cmFjZS5jDQorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2UuYw0KQEAgLTMyNDQsOCArMzI0NCw2 IEBAIHRyYWNpbmdfcG9sbF9waXBlKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICpwb2xs X3RhYmxlKQ0KIAkJICovDQogCQlyZXR1cm4gUE9MTElOIHwgUE9MTFJETk9STTsNCiAJfSBlbHNl IHsNCi0JCWlmICghdHJhY2VfZW1wdHkoaXRlcikpDQotCQkJcmV0dXJuIFBPTExJTiB8IFBPTExS RE5PUk07DQogCQlwb2xsX3dhaXQoZmlscCwgJnRyYWNlX3dhaXQsIHBvbGxfdGFibGUpOw0KIAkJ aWYgKCF0cmFjZV9lbXB0eShpdGVyKSkNCiAJCQlyZXR1cm4gUE9MTElOIHwgUE9MTFJETk9STTsN CmRpZmYgLS1naXQgYS9tbS9odWdldGxiLmMgYi9tbS9odWdldGxiLmMNCmluZGV4IDZmODg2ZDku LmQyYzQzYTIgMTAwNjQ0DQotLS0gYS9tbS9odWdldGxiLmMNCisrKyBiL21tL2h1Z2V0bGIuYw0K QEAgLTIzNDQsNiArMjM0NCw3IEBAIGludCBjb3B5X2h1Z2V0bGJfcGFnZV9yYW5nZShzdHJ1Y3Qg bW1fc3RydWN0ICpkc3QsIHN0cnVjdCBtbV9zdHJ1Y3QgKnNyYywNCiAJCX0gZWxzZSB7DQogCQkJ aWYgKGNvdykNCiAJCQkJaHVnZV9wdGVwX3NldF93cnByb3RlY3Qoc3JjLCBhZGRyLCBzcmNfcHRl KTsNCisJCQllbnRyeSA9IGh1Z2VfcHRlcF9nZXQoc3JjX3B0ZSk7DQogCQkJcHRlcGFnZSA9IHB0 ZV9wYWdlKGVudHJ5KTsNCiAJCQlnZXRfcGFnZShwdGVwYWdlKTsNCiAJCQlwYWdlX2R1cF9ybWFw KHB0ZXBhZ2UpOw0KZGlmZiAtLWdpdCBhL21tL2ttZW1sZWFrLmMgYi9tbS9rbWVtbGVhay5jDQpp bmRleCBmM2IyYTAwLi5jYzhjZjFkIDEwMDY0NA0KLS0tIGEvbW0va21lbWxlYWsuYw0KKysrIGIv bW0va21lbWxlYWsuYw0KQEAgLTc0NCw3ICs3NDQsOSBAQCBzdGF0aWMgdm9pZCBhZGRfc2Nhbl9h cmVhKHVuc2lnbmVkIGxvbmcgcHRyLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwKQ0KIAl9DQogDQog CXNwaW5fbG9ja19pcnFzYXZlKCZvYmplY3QtPmxvY2ssIGZsYWdzKTsNCi0JaWYgKHB0ciArIHNp emUgPiBvYmplY3QtPnBvaW50ZXIgKyBvYmplY3QtPnNpemUpIHsNCisJaWYgKHNpemUgPT0gU0la RV9NQVgpIHsNCisJCXNpemUgPSBvYmplY3QtPnBvaW50ZXIgKyBvYmplY3QtPnNpemUgLSBwdHI7 DQorCX0gZWxzZSBpZiAocHRyICsgc2l6ZSA+IG9iamVjdC0+cG9pbnRlciArIG9iamVjdC0+c2l6 ZSkgew0KIAkJa21lbWxlYWtfd2FybigiU2NhbiBhcmVhIGxhcmdlciB0aGFuIG9iamVjdCAweCUw OGx4XG4iLCBwdHIpOw0KIAkJZHVtcF9vYmplY3RfaW5mbyhvYmplY3QpOw0KIAkJa21lbV9jYWNo ZV9mcmVlKHNjYW5fYXJlYV9jYWNoZSwgYXJlYSk7DQpkaWZmIC0tZ2l0IGEvbW0vbWVtcG9saWN5 LmMgYi9tbS9tZW1wb2xpY3kuYw0KaW5kZXggMmI1YmNjOS4uYzlmN2U2ZiAxMDA2NDQNCi0tLSBh L21tL21lbXBvbGljeS5jDQorKysgYi9tbS9tZW1wb2xpY3kuYw0KQEAgLTE5ODMsNyArMTk4Myw2 IEBAIHN0cnVjdCBtZW1wb2xpY3kgKl9fbXBvbF9kdXAoc3RydWN0IG1lbXBvbGljeSAqb2xkKQ0K IAl9IGVsc2UNCiAJCSpuZXcgPSAqb2xkOw0KIA0KLQlyY3VfcmVhZF9sb2NrKCk7DQogCWlmIChj dXJyZW50X2NwdXNldF9pc19iZWluZ19yZWJvdW5kKCkpIHsNCiAJCW5vZGVtYXNrX3QgbWVtcyA9 IGNwdXNldF9tZW1zX2FsbG93ZWQoY3VycmVudCk7DQogCQlpZiAobmV3LT5mbGFncyAmIE1QT0xf Rl9SRUJJTkRJTkcpDQpAQCAtMTk5MSw3ICsxOTkwLDYgQEAgc3RydWN0IG1lbXBvbGljeSAqX19t cG9sX2R1cChzdHJ1Y3QgbWVtcG9saWN5ICpvbGQpDQogCQllbHNlDQogCQkJbXBvbF9yZWJpbmRf cG9saWN5KG5ldywgJm1lbXMsIE1QT0xfUkVCSU5EX09OQ0UpOw0KIAl9DQotCXJjdV9yZWFkX3Vu bG9jaygpOw0KIAlhdG9taWNfc2V0KCZuZXctPnJlZmNudCwgMSk7DQogCXJldHVybiBuZXc7DQog fQ0KZGlmZiAtLWdpdCBhL21tL3NobWVtLmMgYi9tbS9zaG1lbS5jDQppbmRleCBhNzhhY2YwLi4x MzcxMDIxIDEwMDY0NA0KLS0tIGEvbW0vc2htZW0uYw0KKysrIGIvbW0vc2htZW0uYw0KQEAgLTc2 LDYgKzc2LDE3IEBAIHN0YXRpYyBzdHJ1Y3QgdmZzbW91bnQgKnNobV9tbnQ7DQogLyogU3ltbGlu ayB1cCB0byB0aGlzIHNpemUgaXMga21hbGxvYydlZCBpbnN0ZWFkIG9mIHVzaW5nIGEgc3dhcHBh YmxlIHBhZ2UgKi8NCiAjZGVmaW5lIFNIT1JUX1NZTUxJTktfTEVOIDEyOA0KIA0KKy8qDQorICog dm10cnVuY2F0ZV9yYW5nZSgpIGNvbW11bmljYXRlcyB3aXRoIHNobWVtX2ZhdWx0IHZpYQ0KKyAq IGlub2RlLT5pX3ByaXZhdGUgKHdpdGggaV9tdXRleCBtYWtpbmcgc3VyZSB0aGF0IGl0IGhhcyBv bmx5IG9uZSB1c2VyIGF0DQorICogYSB0aW1lKTogd2Ugd291bGQgcHJlZmVyIG5vdCB0byBlbmxh cmdlIHRoZSBzaG1lbSBpbm9kZSBqdXN0IGZvciB0aGF0Lg0KKyAqLw0KK3N0cnVjdCBzaG1lbV9m YWxsb2Mgew0KKwl3YWl0X3F1ZXVlX2hlYWRfdCAqd2FpdHE7IC8qIGZhdWx0cyBpbnRvIGhvbGUg d2FpdCBmb3IgcHVuY2ggdG8gZW5kICovDQorCXBnb2ZmX3Qgc3RhcnQ7CQkvKiBzdGFydCBvZiBy YW5nZSBjdXJyZW50bHkgYmVpbmcgZmFsbG9jYXRlZCAqLw0KKwlwZ29mZl90IG5leHQ7CQkvKiB0 aGUgbmV4dCBwYWdlIG9mZnNldCB0byBiZSBmYWxsb2NhdGVkICovDQorfTsNCisNCiBzdHJ1Y3Qg c2htZW1feGF0dHIgew0KIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CS8qIGFuY2hvcmVkIGJ5IHNo bWVtX2lub2RlX2luZm8tPnhhdHRyX2xpc3QgKi8NCiAJY2hhciAqbmFtZTsJCS8qIHhhdHRyIG5h bWUgKi8NCkBAIC00ODgsMjIgKzQ5OSwxOSBAQCB2b2lkIHNobWVtX3RydW5jYXRlX3JhbmdlKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBsc3RhcnQsIGxvZmZfdCBsZW5kKQ0KIAl9DQogDQog CWluZGV4ID0gc3RhcnQ7DQotCWZvciAoIDsgOyApIHsNCisJd2hpbGUgKGluZGV4IDw9IGVuZCkg ew0KIAkJY29uZF9yZXNjaGVkKCk7DQogCQlwdmVjLm5yID0gc2htZW1fZmluZF9nZXRfcGFnZXNf YW5kX3N3YXAobWFwcGluZywgaW5kZXgsDQogCQkJbWluKGVuZCAtIGluZGV4LCAocGdvZmZfdClQ QUdFVkVDX1NJWkUgLSAxKSArIDEsDQogCQkJCQkJCXB2ZWMucGFnZXMsIGluZGljZXMpOw0KIAkJ aWYgKCFwdmVjLm5yKSB7DQotCQkJaWYgKGluZGV4ID09IHN0YXJ0KQ0KKwkJCS8qIElmIGFsbCBn b25lIG9yIGhvbGUtcHVuY2gsIHdlJ3JlIGRvbmUgKi8NCisJCQlpZiAoaW5kZXggPT0gc3RhcnQg fHwgZW5kICE9IC0xKQ0KIAkJCQlicmVhazsNCisJCQkvKiBCdXQgaWYgdHJ1bmNhdGluZywgcmVz dGFydCB0byBtYWtlIHN1cmUgYWxsIGdvbmUgKi8NCiAJCQlpbmRleCA9IHN0YXJ0Ow0KIAkJCWNv bnRpbnVlOw0KIAkJfQ0KLQkJaWYgKGluZGV4ID09IHN0YXJ0ICYmIGluZGljZXNbMF0gPiBlbmQp IHsNCi0JCQlzaG1lbV9kZXN3YXBfcGFnZXZlYygmcHZlYyk7DQotCQkJcGFnZXZlY19yZWxlYXNl KCZwdmVjKTsNCi0JCQlicmVhazsNCi0JCX0NCiAJCW1lbV9jZ3JvdXBfdW5jaGFyZ2Vfc3RhcnQo KTsNCiAJCWZvciAoaSA9IDA7IGkgPCBwYWdldmVjX2NvdW50KCZwdmVjKTsgaSsrKSB7DQogCQkJ c3RydWN0IHBhZ2UgKnBhZ2UgPSBwdmVjLnBhZ2VzW2ldOw0KQEAgLTUxMyw4ICs1MjEsMTIgQEAg dm9pZCBzaG1lbV90cnVuY2F0ZV9yYW5nZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgbHN0 YXJ0LCBsb2ZmX3QgbGVuZCkNCiAJCQkJYnJlYWs7DQogDQogCQkJaWYgKHJhZGl4X3RyZWVfZXhj ZXB0aW9uYWxfZW50cnkocGFnZSkpIHsNCi0JCQkJbnJfc3dhcHNfZnJlZWQgKz0gIXNobWVtX2Zy ZWVfc3dhcChtYXBwaW5nLA0KLQkJCQkJCQkJaW5kZXgsIHBhZ2UpOw0KKwkJCQlpZiAoc2htZW1f ZnJlZV9zd2FwKG1hcHBpbmcsIGluZGV4LCBwYWdlKSkgew0KKwkJCQkJLyogU3dhcCB3YXMgcmVw bGFjZWQgYnkgcGFnZTogcmV0cnkgKi8NCisJCQkJCWluZGV4LS07DQorCQkJCQlicmVhazsNCisJ CQkJfQ0KKwkJCQlucl9zd2Fwc19mcmVlZCsrOw0KIAkJCQljb250aW51ZTsNCiAJCQl9DQogDQpA QCAtNTIyLDYgKzUzNCwxMSBAQCB2b2lkIHNobWVtX3RydW5jYXRlX3JhbmdlKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIGxvZmZfdCBsc3RhcnQsIGxvZmZfdCBsZW5kKQ0KIAkJCWlmIChwYWdlLT5tYXBw aW5nID09IG1hcHBpbmcpIHsNCiAJCQkJVk1fQlVHX09OKFBhZ2VXcml0ZWJhY2socGFnZSkpOw0K IAkJCQl0cnVuY2F0ZV9pbm9kZV9wYWdlKG1hcHBpbmcsIHBhZ2UpOw0KKwkJCX0gZWxzZSB7DQor CQkJCS8qIFBhZ2Ugd2FzIHJlcGxhY2VkIGJ5IHN3YXA6IHJldHJ5ICovDQorCQkJCXVubG9ja19w YWdlKHBhZ2UpOw0KKwkJCQlpbmRleC0tOw0KKwkJCQlicmVhazsNCiAJCQl9DQogCQkJdW5sb2Nr X3BhZ2UocGFnZSk7DQogCQl9DQpAQCAtMTA2MCw2ICsxMDc3LDYzIEBAIHN0YXRpYyBpbnQgc2ht ZW1fZmF1bHQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCB2bV9mYXVsdCAqdm1m KQ0KIAlpbnQgZXJyb3I7DQogCWludCByZXQgPSBWTV9GQVVMVF9MT0NLRUQ7DQogDQorCS8qDQor CSAqIFRyaW5pdHkgZmluZHMgdGhhdCBwcm9iaW5nIGEgaG9sZSB3aGljaCB0bXBmcyBpcyBwdW5j aGluZyBjYW4NCisJICogcHJldmVudCB0aGUgaG9sZS1wdW5jaCBmcm9tIGV2ZXIgY29tcGxldGlu Zzogd2hpY2ggaW4gdHVybg0KKwkgKiBsb2NrcyB3cml0ZXJzIG91dCB3aXRoIGl0cyBob2xkIG9u IGlfbXV0ZXguICBTbyByZWZyYWluIGZyb20NCisJICogZmF1bHRpbmcgcGFnZXMgaW50byB0aGUg aG9sZSB3aGlsZSBpdCdzIGJlaW5nIHB1bmNoZWQuICBBbHRob3VnaA0KKwkgKiBzaG1lbV90cnVu Y2F0ZV9yYW5nZSgpIGRvZXMgcmVtb3ZlIHRoZSBhZGRpdGlvbnMsIGl0IG1heSBiZSB1bmFibGUg dG8NCisJICoga2VlcCB1cCwgYXMgZWFjaCBuZXcgcGFnZSBuZWVkcyBpdHMgb3duIHVubWFwX21h cHBpbmdfcmFuZ2UoKSBjYWxsLA0KKwkgKiBhbmQgdGhlIGlfbW1hcCB0cmVlIGdyb3dzIGV2ZXIg c2xvd2VyIHRvIHNjYW4gaWYgbmV3IHZtYXMgYXJlIGFkZGVkLg0KKwkgKg0KKwkgKiBJdCBkb2Vz IG5vdCBtYXR0ZXIgaWYgd2Ugc29tZXRpbWVzIHJlYWNoIHRoaXMgY2hlY2sganVzdCBiZWZvcmUg dGhlDQorCSAqIGhvbGUtcHVuY2ggYmVnaW5zLCBzbyB0aGF0IG9uZSBmYXVsdCB0aGVuIHJhY2Vz IHdpdGggdGhlIHB1bmNoOg0KKwkgKiB3ZSBqdXN0IG5lZWQgdG8gbWFrZSByYWNpbmcgZmF1bHRz IGEgcmFyZSBjYXNlLg0KKwkgKg0KKwkgKiBUaGUgaW1wbGVtZW50YXRpb24gYmVsb3cgd291bGQg YmUgbXVjaCBzaW1wbGVyIGlmIHdlIGp1c3QgdXNlZCBhDQorCSAqIHN0YW5kYXJkIG11dGV4IG9y IGNvbXBsZXRpb246IGJ1dCB3ZSBjYW5ub3QgdGFrZSBpX211dGV4IGluIGZhdWx0LA0KKwkgKiBh bmQgYmxvYXRpbmcgZXZlcnkgc2htZW0gaW5vZGUgZm9yIHRoaXMgdW5saWtlbHkgY2FzZSB3b3Vs ZCBiZSBzYWQuDQorCSAqLw0KKwlpZiAodW5saWtlbHkoaW5vZGUtPmlfcHJpdmF0ZSkpIHsNCisJ CXN0cnVjdCBzaG1lbV9mYWxsb2MgKnNobWVtX2ZhbGxvYzsNCisNCisJCXNwaW5fbG9jaygmaW5v ZGUtPmlfbG9jayk7DQorCQlzaG1lbV9mYWxsb2MgPSBpbm9kZS0+aV9wcml2YXRlOw0KKwkJaWYg KHNobWVtX2ZhbGxvYyAmJg0KKwkJICAgIHZtZi0+cGdvZmYgPj0gc2htZW1fZmFsbG9jLT5zdGFy dCAmJg0KKwkJICAgIHZtZi0+cGdvZmYgPCBzaG1lbV9mYWxsb2MtPm5leHQpIHsNCisJCQl3YWl0 X3F1ZXVlX2hlYWRfdCAqc2htZW1fZmFsbG9jX3dhaXRxOw0KKwkJCURFRklORV9XQUlUKHNobWVt X2ZhdWx0X3dhaXQpOw0KKw0KKwkJCXJldCA9IFZNX0ZBVUxUX05PUEFHRTsNCisJCQlpZiAoKHZt Zi0+ZmxhZ3MgJiBGQVVMVF9GTEFHX0FMTE9XX1JFVFJZKSAmJg0KKwkJCSAgICEodm1mLT5mbGFn cyAmIEZBVUxUX0ZMQUdfUkVUUllfTk9XQUlUKSkgew0KKwkJCQkvKiBJdCdzIHBvbGl0ZSB0byB1 cCBtbWFwX3NlbSBpZiB3ZSBjYW4gKi8NCisJCQkJdXBfcmVhZCgmdm1hLT52bV9tbS0+bW1hcF9z ZW0pOw0KKwkJCQlyZXQgPSBWTV9GQVVMVF9SRVRSWTsNCisJCQl9DQorDQorCQkJc2htZW1fZmFs bG9jX3dhaXRxID0gc2htZW1fZmFsbG9jLT53YWl0cTsNCisJCQlwcmVwYXJlX3RvX3dhaXQoc2ht ZW1fZmFsbG9jX3dhaXRxLCAmc2htZW1fZmF1bHRfd2FpdCwNCisJCQkJCVRBU0tfVU5JTlRFUlJV UFRJQkxFKTsNCisJCQlzcGluX3VubG9jaygmaW5vZGUtPmlfbG9jayk7DQorCQkJc2NoZWR1bGUo KTsNCisNCisJCQkvKg0KKwkJCSAqIHNobWVtX2ZhbGxvY193YWl0cSBwb2ludHMgaW50byB0aGUg dm10cnVuY2F0ZV9yYW5nZSgpDQorCQkJICogc3RhY2sgb2YgdGhlIGhvbGUtcHVuY2hpbmcgdGFz azogc2htZW1fZmFsbG9jX3dhaXRxDQorCQkJICogaXMgdXN1YWxseSBpbnZhbGlkIGJ5IHRoZSB0 aW1lIHdlIHJlYWNoIGhlcmUsIGJ1dA0KKwkJCSAqIGZpbmlzaF93YWl0KCkgZG9lcyBub3QgZGVy ZWZlcmVuY2UgaXQgaW4gdGhhdCBjYXNlOw0KKwkJCSAqIHRob3VnaCBpX2xvY2sgbmVlZGVkIGxl c3QgcmFjaW5nIHdpdGggd2FrZV91cF9hbGwoKS4NCisJCQkgKi8NCisJCQlzcGluX2xvY2soJmlu b2RlLT5pX2xvY2spOw0KKwkJCWZpbmlzaF93YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgJnNobWVt X2ZhdWx0X3dhaXQpOw0KKwkJCXNwaW5fdW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCisJCQlyZXR1 cm4gcmV0Ow0KKwkJfQ0KKwkJc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKwl9DQorDQog CWVycm9yID0gc2htZW1fZ2V0cGFnZShpbm9kZSwgdm1mLT5wZ29mZiwgJnZtZi0+cGFnZSwgU0dQ X0NBQ0hFLCAmcmV0KTsNCiAJaWYgKGVycm9yKQ0KIAkJcmV0dXJuICgoZXJyb3IgPT0gLUVOT01F TSkgPyBWTV9GQVVMVF9PT00gOiBWTV9GQVVMVF9TSUdCVVMpOw0KQEAgLTEwNzEsNiArMTE0NSw0 NyBAQCBzdGF0aWMgaW50IHNobWVtX2ZhdWx0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBz dHJ1Y3Qgdm1fZmF1bHQgKnZtZikNCiAJcmV0dXJuIHJldDsNCiB9DQogDQoraW50IHZtdHJ1bmNh dGVfcmFuZ2Uoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IGxzdGFydCwgbG9mZl90IGxlbmQp DQorew0KKwkvKg0KKwkgKiBJZiB0aGUgdW5kZXJseWluZyBmaWxlc3lzdGVtIGlzIG5vdCBnb2lu ZyB0byBwcm92aWRlDQorCSAqIGEgd2F5IHRvIHRydW5jYXRlIGEgcmFuZ2Ugb2YgYmxvY2tzIChw dW5jaCBhIGhvbGUpIC0NCisJICogd2Ugc2hvdWxkIHJldHVybiBmYWlsdXJlIHJpZ2h0IG5vdy4N CisJICogT25seSBDT05GSUdfU0hNRU0gc2htZW0uYyBldmVyIHN1cHBvcnRlZCBpX29wLT50cnVu Y2F0ZV9yYW5nZSgpLg0KKwkgKi8NCisJaWYgKGlub2RlLT5pX29wLT50cnVuY2F0ZV9yYW5nZSAh PSBzaG1lbV90cnVuY2F0ZV9yYW5nZSkNCisJCXJldHVybiAtRU5PU1lTOw0KKw0KKwltdXRleF9s b2NrKCZpbm9kZS0+aV9tdXRleCk7DQorCXsNCisJCXN0cnVjdCBzaG1lbV9mYWxsb2Mgc2htZW1f ZmFsbG9jOw0KKwkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBpbm9kZS0+aV9tYXBw aW5nOw0KKwkJbG9mZl90IHVubWFwX3N0YXJ0ID0gcm91bmRfdXAobHN0YXJ0LCBQQUdFX1NJWkUp Ow0KKwkJbG9mZl90IHVubWFwX2VuZCA9IHJvdW5kX2Rvd24oMSArIGxlbmQsIFBBR0VfU0laRSkg LSAxOw0KKwkJREVDTEFSRV9XQUlUX1FVRVVFX0hFQURfT05TVEFDSyhzaG1lbV9mYWxsb2Nfd2Fp dHEpOw0KKw0KKwkJc2htZW1fZmFsbG9jLndhaXRxID0gJnNobWVtX2ZhbGxvY193YWl0cTsNCisJ CXNobWVtX2ZhbGxvYy5zdGFydCA9IHVubWFwX3N0YXJ0ID4+IFBBR0VfU0hJRlQ7DQorCQlzaG1l bV9mYWxsb2MubmV4dCA9ICh1bm1hcF9lbmQgKyAxKSA+PiBQQUdFX1NISUZUOw0KKwkJc3Bpbl9s b2NrKCZpbm9kZS0+aV9sb2NrKTsNCisJCWlub2RlLT5pX3ByaXZhdGUgPSAmc2htZW1fZmFsbG9j Ow0KKwkJc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKw0KKwkJaWYgKCh1NjQpdW5tYXBf ZW5kID4gKHU2NCl1bm1hcF9zdGFydCkNCisJCQl1bm1hcF9tYXBwaW5nX3JhbmdlKG1hcHBpbmcs IHVubWFwX3N0YXJ0LA0KKwkJCQkJICAgIDEgKyB1bm1hcF9lbmQgLSB1bm1hcF9zdGFydCwgMCk7 DQorCQlzaG1lbV90cnVuY2F0ZV9yYW5nZShpbm9kZSwgbHN0YXJ0LCBsZW5kKTsNCisJCS8qIE5v IG5lZWQgdG8gdW5tYXAgYWdhaW46IGhvbGUtcHVuY2hpbmcgbGVhdmVzIENPV2VkIHBhZ2VzICov DQorDQorCQlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOw0KKwkJaW5vZGUtPmlfcHJpdmF0ZSA9 IE5VTEw7DQorCQl3YWtlX3VwX2FsbCgmc2htZW1fZmFsbG9jX3dhaXRxKTsNCisJCXNwaW5fdW5s b2NrKCZpbm9kZS0+aV9sb2NrKTsNCisJfQ0KKwltdXRleF91bmxvY2soJmlub2RlLT5pX211dGV4 KTsNCisJcmV0dXJuIDA7DQorfQ0KKw0KICNpZmRlZiBDT05GSUdfTlVNQQ0KIHN0YXRpYyBpbnQg c2htZW1fc2V0X3BvbGljeShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IG1lbXBv bGljeSAqbXBvbCkNCiB7DQpAQCAtMjQ5Niw2ICsyNjExLDEyIEBAIHZvaWQgc2htZW1fdHJ1bmNh dGVfcmFuZ2Uoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IGxzdGFydCwgbG9mZl90IGxlbmQp DQogfQ0KIEVYUE9SVF9TWU1CT0xfR1BMKHNobWVtX3RydW5jYXRlX3JhbmdlKTsNCiANCitpbnQg dm10cnVuY2F0ZV9yYW5nZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgbHN0YXJ0LCBsb2Zm X3QgbGVuZCkNCit7DQorCS8qIE9ubHkgQ09ORklHX1NITUVNIHNobWVtLmMgZXZlciBzdXBwb3J0 ZWQgaV9vcC0+dHJ1bmNhdGVfcmFuZ2UoKS4gKi8NCisJcmV0dXJuIC1FTk9TWVM7DQorfQ0KKw0K ICNkZWZpbmUgc2htZW1fdm1fb3BzCQkJCWdlbmVyaWNfZmlsZV92bV9vcHMNCiAjZGVmaW5lIHNo bWVtX2ZpbGVfb3BlcmF0aW9ucwkJCXJhbWZzX2ZpbGVfb3BlcmF0aW9ucw0KICNkZWZpbmUgc2ht ZW1fZ2V0X2lub2RlKHNiLCBkaXIsIG1vZGUsIGRldiwgZmxhZ3MpCXJhbWZzX2dldF9pbm9kZShz YiwgZGlyLCBtb2RlLCBkZXYpDQpkaWZmIC0tZ2l0IGEvbW0vdHJ1bmNhdGUuYyBiL21tL3RydW5j YXRlLmMNCmluZGV4IDAwZmI1OGEuLjQwZDE4NmYgMTAwNjQ0DQotLS0gYS9tbS90cnVuY2F0ZS5j DQorKysgYi9tbS90cnVuY2F0ZS5jDQpAQCAtNjAyLDI4ICs2MDIsMyBAQCBpbnQgdm10cnVuY2F0 ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgbmV3c2l6ZSkNCiAJcmV0dXJuIDA7DQogfQ0K IEVYUE9SVF9TWU1CT0wodm10cnVuY2F0ZSk7DQotDQotaW50IHZtdHJ1bmNhdGVfcmFuZ2Uoc3Ry dWN0IGlub2RlICppbm9kZSwgbG9mZl90IGxzdGFydCwgbG9mZl90IGxlbmQpDQotew0KLQlzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGlub2RlLT5pX21hcHBpbmc7DQotCWxvZmZfdCBo b2xlYmVnaW4gPSByb3VuZF91cChsc3RhcnQsIFBBR0VfU0laRSk7DQotCWxvZmZfdCBob2xlbGVu ID0gMSArIGxlbmQgLSBob2xlYmVnaW47DQotDQotCS8qDQotCSAqIElmIHRoZSB1bmRlcmx5aW5n IGZpbGVzeXN0ZW0gaXMgbm90IGdvaW5nIHRvIHByb3ZpZGUNCi0JICogYSB3YXkgdG8gdHJ1bmNh dGUgYSByYW5nZSBvZiBibG9ja3MgKHB1bmNoIGEgaG9sZSkgLQ0KLQkgKiB3ZSBzaG91bGQgcmV0 dXJuIGZhaWx1cmUgcmlnaHQgbm93Lg0KLQkgKi8NCi0JaWYgKCFpbm9kZS0+aV9vcC0+dHJ1bmNh dGVfcmFuZ2UpDQotCQlyZXR1cm4gLUVOT1NZUzsNCi0NCi0JbXV0ZXhfbG9jaygmaW5vZGUtPmlf bXV0ZXgpOw0KLQlpbm9kZV9kaW9fd2FpdChpbm9kZSk7DQotCXVubWFwX21hcHBpbmdfcmFuZ2Uo bWFwcGluZywgaG9sZWJlZ2luLCBob2xlbGVuLCAxKTsNCi0JaW5vZGUtPmlfb3AtPnRydW5jYXRl X3JhbmdlKGlub2RlLCBsc3RhcnQsIGxlbmQpOw0KLQkvKiB1bm1hcCBhZ2FpbiB0byByZW1vdmUg cmFjaWx5IENPV2VkIHByaXZhdGUgcGFnZXMgKi8NCi0JdW5tYXBfbWFwcGluZ19yYW5nZShtYXBw aW5nLCBob2xlYmVnaW4sIGhvbGVsZW4sIDEpOw0KLQltdXRleF91bmxvY2soJmlub2RlLT5pX211 dGV4KTsNCi0NCi0JcmV0dXJuIDA7DQotfQ0KZGlmZiAtLWdpdCBhL21tL3ZtYWxsb2MuYyBiL21t L3ZtYWxsb2MuYw0KaW5kZXggZWViYTNiYi4uMTQzMTQ1OCAxMDA2NDQNCi0tLSBhL21tL3ZtYWxs b2MuYw0KKysrIGIvbW0vdm1hbGxvYy5jDQpAQCAtMzQ5LDYgKzM0OSwxMiBAQCBzdGF0aWMgc3Ry dWN0IHZtYXBfYXJlYSAqYWxsb2Nfdm1hcF9hcmVhKHVuc2lnbmVkIGxvbmcgc2l6ZSwNCiAJaWYg KHVubGlrZWx5KCF2YSkpDQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsNCiANCisJLyoNCisJ ICogT25seSBzY2FuIHRoZSByZWxldmFudCBwYXJ0cyBjb250YWluaW5nIHBvaW50ZXJzIHRvIG90 aGVyIG9iamVjdHMNCisJICogdG8gYXZvaWQgZmFsc2UgbmVnYXRpdmVzLg0KKwkgKi8NCisJa21l bWxlYWtfc2Nhbl9hcmVhKCZ2YS0+cmJfbm9kZSwgU0laRV9NQVgsIGdmcF9tYXNrICYgR0ZQX1JF Q0xBSU1fTUFTSyk7DQorDQogcmV0cnk6DQogCXNwaW5fbG9jaygmdm1hcF9hcmVhX2xvY2spOw0K IAkvKg0KQEAgLTE2NDQsMTEgKzE2NTAsMTEgQEAgdm9pZCAqX192bWFsbG9jX25vZGVfcmFuZ2Uo dW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduLA0KIAlpbnNlcnRfdm1hbGxv Y192bWxpc3QoYXJlYSk7DQogDQogCS8qDQotCSAqIEEgcmVmX2NvdW50ID0gMyBpcyBuZWVkZWQg YmVjYXVzZSB0aGUgdm1fc3RydWN0IGFuZCB2bWFwX2FyZWENCi0JICogc3RydWN0dXJlcyBhbGxv Y2F0ZWQgaW4gdGhlIF9fZ2V0X3ZtX2FyZWFfbm9kZSgpIGZ1bmN0aW9uIGNvbnRhaW4NCi0JICog cmVmZXJlbmNlcyB0byB0aGUgdmlydHVhbCBhZGRyZXNzIG9mIHRoZSB2bWFsbG9jJ2VkIGJsb2Nr Lg0KKwkgKiBBIHJlZl9jb3VudCA9IDIgaXMgbmVlZGVkIGJlY2F1c2Ugdm1fc3RydWN0IGFsbG9j YXRlZCBpbg0KKwkgKiBfX2dldF92bV9hcmVhX25vZGUoKSBjb250YWlucyBhIHJlZmVyZW5jZSB0 byB0aGUgdmlydHVhbCBhZGRyZXNzIG9mDQorCSAqIHRoZSB2bWFsbG9jJ2VkIGJsb2NrLg0KIAkg Ki8NCi0Ja21lbWxlYWtfYWxsb2MoYWRkciwgcmVhbF9zaXplLCAzLCBnZnBfbWFzayk7DQorCWtt ZW1sZWFrX2FsbG9jKGFkZHIsIHJlYWxfc2l6ZSwgMiwgZ2ZwX21hc2spOw0KIA0KIAlyZXR1cm4g YWRkcjsNCiANCmRpZmYgLS1naXQgYS9uZXQvODAyMXEvdmxhbl9jb3JlLmMgYi9uZXQvODAyMXEv dmxhbl9jb3JlLmMNCmluZGV4IGU4NjBhNGYuLjc3ZDM1MzIgMTAwNjQ0DQotLS0gYS9uZXQvODAy MXEvdmxhbl9jb3JlLmMNCisrKyBiL25ldC84MDIxcS92bGFuX2NvcmUuYw0KQEAgLTk2LDggKzk2 LDExIEBAIEVYUE9SVF9TWU1CT0wodmxhbl9kZXZfdmxhbl9pZCk7DQogDQogc3RhdGljIHN0cnVj dCBza19idWZmICp2bGFuX3Jlb3JkZXJfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IpDQogew0K LQlpZiAoc2tiX2Nvdyhza2IsIHNrYl9oZWFkcm9vbShza2IpKSA8IDApDQorCWlmIChza2JfY293 KHNrYiwgc2tiX2hlYWRyb29tKHNrYikpIDwgMCkgew0KKwkJa2ZyZWVfc2tiKHNrYik7DQogCQly ZXR1cm4gTlVMTDsNCisJfQ0KKw0KIAltZW1tb3ZlKHNrYi0+ZGF0YSAtIEVUSF9ITEVOLCBza2It PmRhdGEgLSBWTEFOX0VUSF9ITEVOLCAyICogRVRIX0FMRU4pOw0KIAlza2ItPm1hY19oZWFkZXIg Kz0gVkxBTl9ITEVOOw0KIAlyZXR1cm4gc2tiOw0KZGlmZiAtLWdpdCBhL25ldC9hcHBsZXRhbGsv ZGRwLmMgYi9uZXQvYXBwbGV0YWxrL2RkcC5jDQppbmRleCAzMzRkNGNkLi43OWFhYWMyIDEwMDY0 NA0KLS0tIGEvbmV0L2FwcGxldGFsay9kZHAuYw0KKysrIGIvbmV0L2FwcGxldGFsay9kZHAuYw0K QEAgLTE0OTQsOCArMTQ5NCw2IEBAIHN0YXRpYyBpbnQgYXRhbGtfcmN2KHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsDQogCQlnb3RvIGRyb3A7DQogDQogCS8qIFF1 ZXVlIHBhY2tldCAoc3RhbmRhcmQpICovDQotCXNrYi0+c2sgPSBzb2NrOw0KLQ0KIAlpZiAoc29j a19xdWV1ZV9yY3Zfc2tiKHNvY2ssIHNrYikgPCAwKQ0KIAkJZ290byBkcm9wOw0KIA0KQEAgLTE2 NDksNyArMTY0Nyw2IEBAIHN0YXRpYyBpbnQgYXRhbGtfc2VuZG1zZyhzdHJ1Y3Qga2lvY2IgKmlv Y2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHINCiAJaWYgKCFza2IpDQogCQln b3RvIG91dDsNCiANCi0Jc2tiLT5zayA9IHNrOw0KIAlza2JfcmVzZXJ2ZShza2IsIGRkcF9kbC0+ aGVhZGVyX2xlbmd0aCk7DQogCXNrYl9yZXNlcnZlKHNrYiwgZGV2LT5oYXJkX2hlYWRlcl9sZW4p Ow0KIAlza2ItPmRldiA9IGRldjsNCmRpZmYgLS1naXQgYS9uZXQvY29yZS9ydG5ldGxpbmsuYyBi L25ldC9jb3JlL3J0bmV0bGluay5jDQppbmRleCA3YmVhZjEwLi4wOTAwYTE3IDEwMDY0NA0KLS0t IGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMNCisrKyBiL25ldC9jb3JlL3J0bmV0bGluay5jDQpAQCAt MTA2Miw2ICsxMDYyLDcgQEAgc3RhdGljIGludCBydG5sX2R1bXBfaWZpbmZvKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikNCiAJc3RydWN0IG5sYXR0ciAq dGJbSUZMQV9NQVgrMV07DQogCXUzMiBleHRfZmlsdGVyX21hc2sgPSAwOw0KIAlpbnQgZXJyOw0K KwlpbnQgaGRybGVuOw0KIA0KIAlzX2ggPSBjYi0+YXJnc1swXTsNCiAJc19pZHggPSBjYi0+YXJn c1sxXTsNCkBAIC0xMDY5LDggKzEwNzAsMTcgQEAgc3RhdGljIGludCBydG5sX2R1bXBfaWZpbmZv KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikNCiAJcmN1 X3JlYWRfbG9jaygpOw0KIAljYi0+c2VxID0gbmV0LT5kZXZfYmFzZV9zZXE7DQogDQotCWlmIChu bG1zZ19wYXJzZShjYi0+bmxoLCBzaXplb2Yoc3RydWN0IGlmaW5mb21zZyksIHRiLCBJRkxBX01B WCwNCi0JCQlpZmxhX3BvbGljeSkgPj0gMCkgew0KKwkvKiBBIGhhY2sgdG8gcHJlc2VydmUga2Vy bmVsPC0+dXNlcnNwYWNlIGludGVyZmFjZS4NCisJICogVGhlIGNvcnJlY3QgaGVhZGVyIGlzIGlm aW5mb21zZy4gSXQgaXMgY29uc2lzdGVudCB3aXRoIHJ0bmxfZ2V0bGluay4NCisJICogSG93ZXZl ciwgYmVmb3JlIExpbnV4IHYzLjkgdGhlIGNvZGUgaGVyZSBhc3N1bWVkIHJ0Z2VubXNnIGFuZCB0 aGF0J3MNCisJICogd2hhdCBpcHJvdXRlMiA8IHYzLjkuMCB1c2VkLg0KKwkgKiBXZSBjYW4gZGV0 ZWN0IHRoZSBvbGQgaXByb3V0ZTIuIEV2ZW4gaW5jbHVkaW5nIHRoZSBJRkxBX0VYVF9NQVNLDQor CSAqIGF0dHJpYnV0ZSwgaXRzIG5ldGxpbmsgbWVzc2FnZSBpcyBzaG9ydGVyIHRoYW4gc3RydWN0 IGlmaW5mb21zZy4NCisJICovDQorCWhkcmxlbiA9IG5sbXNnX2xlbihjYi0+bmxoKSA8IHNpemVv ZihzdHJ1Y3QgaWZpbmZvbXNnKSA/DQorCQkgc2l6ZW9mKHN0cnVjdCBydGdlbm1zZykgOiBzaXpl b2Yoc3RydWN0IGlmaW5mb21zZyk7DQorDQorCWlmIChubG1zZ19wYXJzZShjYi0+bmxoLCBoZHJs ZW4sIHRiLCBJRkxBX01BWCwgaWZsYV9wb2xpY3kpID49IDApIHsNCiANCiAJCWlmICh0YltJRkxB X0VYVF9NQVNLXSkNCiAJCQlleHRfZmlsdGVyX21hc2sgPSBubGFfZ2V0X3UzMih0YltJRkxBX0VY VF9NQVNLXSk7DQpAQCAtMTkxNyw5ICsxOTI3LDEzIEBAIHN0YXRpYyB1MTYgcnRubF9jYWxjaXQo c3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgpDQogCXN0cnVjdCBubGF0 dHIgKnRiW0lGTEFfTUFYKzFdOw0KIAl1MzIgZXh0X2ZpbHRlcl9tYXNrID0gMDsNCiAJdTE2IG1p bl9pZmluZm9fZHVtcF9zaXplID0gMDsNCisJaW50IGhkcmxlbjsNCisNCisJLyogU2FtZSBrZXJu ZWw8LT51c2Vyc3BhY2UgaW50ZXJmYWNlIGhhY2sgYXMgaW4gcnRubF9kdW1wX2lmaW5mby4gKi8N CisJaGRybGVuID0gbmxtc2dfbGVuKG5saCkgPCBzaXplb2Yoc3RydWN0IGlmaW5mb21zZykgPw0K KwkJIHNpemVvZihzdHJ1Y3QgcnRnZW5tc2cpIDogc2l6ZW9mKHN0cnVjdCBpZmluZm9tc2cpOw0K IA0KLQlpZiAobmxtc2dfcGFyc2UobmxoLCBzaXplb2Yoc3RydWN0IGlmaW5mb21zZyksIHRiLCBJ RkxBX01BWCwNCi0JCQlpZmxhX3BvbGljeSkgPj0gMCkgew0KKwlpZiAobmxtc2dfcGFyc2Uobmxo LCBoZHJsZW4sIHRiLCBJRkxBX01BWCwgaWZsYV9wb2xpY3kpID49IDApIHsNCiAJCWlmICh0YltJ RkxBX0VYVF9NQVNLXSkNCiAJCQlleHRfZmlsdGVyX21hc2sgPSBubGFfZ2V0X3UzMih0YltJRkxB X0VYVF9NQVNLXSk7DQogCX0NCmRpZmYgLS1naXQgYS9uZXQvZG5zX3Jlc29sdmVyL2Ruc19xdWVy eS5jIGIvbmV0L2Ruc19yZXNvbHZlci9kbnNfcXVlcnkuYw0KaW5kZXggYzMyYmUyOS4uMjAyMmI0 NiAxMDA2NDQNCi0tLSBhL25ldC9kbnNfcmVzb2x2ZXIvZG5zX3F1ZXJ5LmMNCisrKyBiL25ldC9k bnNfcmVzb2x2ZXIvZG5zX3F1ZXJ5LmMNCkBAIC0xNTAsNyArMTUwLDkgQEAgaW50IGRuc19xdWVy eShjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLCBzaXplX3QgbmFtZWxlbiwNCiAJ aWYgKCEqX3Jlc3VsdCkNCiAJCWdvdG8gcHV0Ow0KIA0KLQltZW1jcHkoKl9yZXN1bHQsIHVwYXls b2FkLT5kYXRhLCBsZW4gKyAxKTsNCisJbWVtY3B5KCpfcmVzdWx0LCB1cGF5bG9hZC0+ZGF0YSwg bGVuKTsNCisJKCpfcmVzdWx0KVtsZW5dID0gJ1wwJzsNCisNCiAJaWYgKF9leHBpcnkpDQogCQkq X2V4cGlyeSA9IHJrZXktPmV4cGlyeTsNCiANCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pZ21wLmMg Yi9uZXQvaXB2NC9pZ21wLmMNCmluZGV4IDc1YjA4NjAuLjdmN2U2NzAgMTAwNjQ0DQotLS0gYS9u ZXQvaXB2NC9pZ21wLmMNCisrKyBiL25ldC9pcHY0L2lnbXAuYw0KQEAgLTE4NjIsNiArMTg2Miwx MCBAQCBpbnQgaXBfbWNfbGVhdmVfZ3JvdXAoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaXBfbXJl cW4gKmltcikNCiANCiAJcnRubF9sb2NrKCk7DQogCWluX2RldiA9IGlwX21jX2ZpbmRfZGV2KG5l dCwgaW1yKTsNCisJaWYgKCFpbl9kZXYpIHsNCisJCXJldCA9IC1FTk9ERVY7DQorCQlnb3RvIG91 dDsNCisJfQ0KIAlpZmluZGV4ID0gaW1yLT5pbXJfaWZpbmRleDsNCiAJZm9yIChpbWxwID0gJmlu ZXQtPm1jX2xpc3Q7DQogCSAgICAgKGltbCA9IHJ0bmxfZGVyZWZlcmVuY2UoKmltbHApKSAhPSBO VUxMOw0KQEAgLTE4NzksMTYgKzE4ODMsMTQgQEAgaW50IGlwX21jX2xlYXZlX2dyb3VwKHN0cnVj dCBzb2NrICpzaywgc3RydWN0IGlwX21yZXFuICppbXIpDQogDQogCQkqaW1scCA9IGltbC0+bmV4 dF9yY3U7DQogDQotCQlpZiAoaW5fZGV2KQ0KLQkJCWlwX21jX2RlY19ncm91cChpbl9kZXYsIGdy b3VwKTsNCisJCWlwX21jX2RlY19ncm91cChpbl9kZXYsIGdyb3VwKTsNCiAJCXJ0bmxfdW5sb2Nr KCk7DQogCQkvKiBkZWNyZWFzZSBtZW0gbm93IHRvIGF2b2lkIHRoZSBtZW1sZWFrIHdhcm5pbmcg Ki8NCiAJCWF0b21pY19zdWIoc2l6ZW9mKCppbWwpLCAmc2stPnNrX29tZW1fYWxsb2MpOw0KIAkJ a2ZyZWVfcmN1KGltbCwgcmN1KTsNCiAJCXJldHVybiAwOw0KIAl9DQotCWlmICghaW5fZGV2KQ0K LQkJcmV0ID0gLUVOT0RFVjsNCitvdXQ6DQogCXJ0bmxfdW5sb2NrKCk7DQogCXJldHVybiByZXQ7 DQogfQ0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2ZvcndhcmQuYyBiL25ldC9pcHY0L2lwX2Zv cndhcmQuYw0KaW5kZXggNzU5M2YzYS4uMjlhMDdiNiAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L2lw X2ZvcndhcmQuYw0KKysrIGIvbmV0L2lwdjQvaXBfZm9yd2FyZC5jDQpAQCAtMzksNjggKzM5LDYg QEANCiAjaW5jbHVkZSA8bmV0L3JvdXRlLmg+DQogI2luY2x1ZGUgPG5ldC94ZnJtLmg+DQogDQot c3RhdGljIGJvb2wgaXBfbWF5X2ZyYWdtZW50KGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpDQot ew0KLQlyZXR1cm4gdW5saWtlbHkoKGlwX2hkcihza2IpLT5mcmFnX29mZiAmIGh0b25zKElQX0RG KSkgPT0gMCkgfHwNCi0JCXNrYi0+bG9jYWxfZGY7DQotfQ0KLQ0KLXN0YXRpYyBib29sIGlwX2V4 Y2VlZHNfbXR1KGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVkIGludCBtdHUpDQot ew0KLQlpZiAoc2tiLT5sZW4gPD0gbXR1KQ0KLQkJcmV0dXJuIGZhbHNlOw0KLQ0KLQlpZiAoc2ti X2lzX2dzbyhza2IpICYmIHNrYl9nc29fbmV0d29ya19zZWdsZW4oc2tiKSA8PSBtdHUpDQotCQly ZXR1cm4gZmFsc2U7DQotDQotCXJldHVybiB0cnVlOw0KLX0NCi0NCi1zdGF0aWMgYm9vbCBpcF9n c29fZXhjZWVkc19kc3RfbXR1KGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpDQotew0KLQl1bnNp Z25lZCBpbnQgbXR1Ow0KLQ0KLQlpZiAoc2tiLT5sb2NhbF9kZiB8fCAhc2tiX2lzX2dzbyhza2Ip KQ0KLQkJcmV0dXJuIGZhbHNlOw0KLQ0KLQltdHUgPSBkc3RfbXR1KHNrYl9kc3Qoc2tiKSk7DQot DQotCS8qIGlmIHNlZ2xlbiA+IG10dSwgZG8gc29mdHdhcmUgc2VnbWVudGF0aW9uIGZvciBJUCBm cmFnbWVudGF0aW9uIG9uDQotCSAqIG91dHB1dC4gIERGIGJpdCBjYW5ub3QgYmUgc2V0IHNpbmNl IGlwX2ZvcndhcmQgd291bGQgaGF2ZSBzZW50DQotCSAqIGljbXAgZXJyb3IuDQotCSAqLw0KLQly ZXR1cm4gc2tiX2dzb19uZXR3b3JrX3NlZ2xlbihza2IpID4gbXR1Ow0KLX0NCi0NCi0vKiBjYWxs ZWQgaWYgR1NPIHNrYiBuZWVkcyB0byBiZSBmcmFnbWVudGVkIG9uIGZvcndhcmQgKi8NCi1zdGF0 aWMgaW50IGlwX2ZvcndhcmRfZmluaXNoX2dzbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KLXsNCi0J c3RydWN0IHNrX2J1ZmYgKnNlZ3M7DQotCWludCByZXQgPSAwOw0KLQ0KLQlzZWdzID0gc2tiX2dz b19zZWdtZW50KHNrYiwgMCk7DQotCWlmIChJU19FUlIoc2VncykpIHsNCi0JCWtmcmVlX3NrYihz a2IpOw0KLQkJcmV0dXJuIC1FTk9NRU07DQotCX0NCi0NCi0JY29uc3VtZV9za2Ioc2tiKTsNCi0N Ci0JZG8gew0KLQkJc3RydWN0IHNrX2J1ZmYgKm5za2IgPSBzZWdzLT5uZXh0Ow0KLQkJaW50IGVy cjsNCi0NCi0JCXNlZ3MtPm5leHQgPSBOVUxMOw0KLQkJZXJyID0gZHN0X291dHB1dChzZWdzKTsN Ci0NCi0JCWlmIChlcnIgJiYgcmV0ID09IDApDQotCQkJcmV0ID0gZXJyOw0KLQkJc2VncyA9IG5z a2I7DQotCX0gd2hpbGUgKHNlZ3MpOw0KLQ0KLQlyZXR1cm4gcmV0Ow0KLX0NCi0NCiBzdGF0aWMg aW50IGlwX2ZvcndhcmRfZmluaXNoKHN0cnVjdCBza19idWZmICpza2IpDQogew0KIAlzdHJ1Y3Qg aXBfb3B0aW9ucyAqIG9wdAk9ICYoSVBDQihza2IpLT5vcHQpOw0KQEAgLTExMCw5ICs0OCw2IEBA IHN0YXRpYyBpbnQgaXBfZm9yd2FyZF9maW5pc2goc3RydWN0IHNrX2J1ZmYgKnNrYikNCiAJaWYg KHVubGlrZWx5KG9wdC0+b3B0bGVuKSkNCiAJCWlwX2ZvcndhcmRfb3B0aW9ucyhza2IpOw0KIA0K LQlpZiAoaXBfZ3NvX2V4Y2VlZHNfZHN0X210dShza2IpKQ0KLQkJcmV0dXJuIGlwX2ZvcndhcmRf ZmluaXNoX2dzbyhza2IpOw0KLQ0KIAlyZXR1cm4gZHN0X291dHB1dChza2IpOw0KIH0NCiANCkBA IC0xNTIsNyArODcsOCBAQCBpbnQgaXBfZm9yd2FyZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIAlp ZiAob3B0LT5pc19zdHJpY3Ryb3V0ZSAmJiBvcHQtPm5leHRob3AgIT0gcnQtPnJ0X2dhdGV3YXkp DQogCQlnb3RvIHNyX2ZhaWxlZDsNCiANCi0JaWYgKCFpcF9tYXlfZnJhZ21lbnQoc2tiKSAmJiBp cF9leGNlZWRzX210dShza2IsIGRzdF9tdHUoJnJ0LT5kc3QpKSkgew0KKwlpZiAodW5saWtlbHko c2tiLT5sZW4gPiBkc3RfbXR1KCZydC0+ZHN0KSAmJiAhc2tiX2lzX2dzbyhza2IpICYmDQorCQkg ICAgIChpcF9oZHIoc2tiKS0+ZnJhZ19vZmYgJiBodG9ucyhJUF9ERikpKSAmJiAhc2tiLT5sb2Nh bF9kZikgew0KIAkJSVBfSU5DX1NUQVRTKGRldl9uZXQocnQtPmRzdC5kZXYpLCBJUFNUQVRTX01J Ql9GUkFHRkFJTFMpOw0KIAkJaWNtcF9zZW5kKHNrYiwgSUNNUF9ERVNUX1VOUkVBQ0gsIElDTVBf RlJBR19ORUVERUQsDQogCQkJICBodG9ubChkc3RfbXR1KCZydC0+ZHN0KSkpOw0KZGlmZiAtLWdp dCBhL25ldC9pcHY0L2lwX29wdGlvbnMuYyBiL25ldC9pcHY0L2lwX29wdGlvbnMuYw0KaW5kZXgg NDBlYjRmYy4uMDg2MjNlMiAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L2lwX29wdGlvbnMuYw0KKysr IGIvbmV0L2lwdjQvaXBfb3B0aW9ucy5jDQpAQCAtMjc3LDYgKzI3NywxMCBAQCBpbnQgaXBfb3B0 aW9uc19jb21waWxlKHN0cnVjdCBuZXQgKm5ldCwNCiAJCQlvcHRwdHIrKzsNCiAJCQljb250aW51 ZTsNCiAJCX0NCisJCWlmICh1bmxpa2VseShsIDwgMikpIHsNCisJCQlwcF9wdHIgPSBvcHRwdHI7 DQorCQkJZ290byBlcnJvcjsNCisJCX0NCiAJCW9wdGxlbiA9IG9wdHB0clsxXTsNCiAJCWlmIChv cHRsZW48MiB8fCBvcHRsZW4+bCkgew0KIAkJCXBwX3B0ciA9IG9wdHB0cjsNCmRpZmYgLS1naXQg YS9uZXQvaXB2NC9uZXRmaWx0ZXIvaXB0X1VMT0cuYyBiL25ldC9pcHY0L25ldGZpbHRlci9pcHRf VUxPRy5jDQppbmRleCBiNTUwODE1Li5jM2I0NGQ1IDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQvbmV0 ZmlsdGVyL2lwdF9VTE9HLmMNCisrKyBiL25ldC9pcHY0L25ldGZpbHRlci9pcHRfVUxPRy5jDQpA QCAtMjAyLDYgKzIwMiw3IEBAIHN0YXRpYyB2b2lkIGlwdF91bG9nX3BhY2tldCh1bnNpZ25lZCBp bnQgaG9va251bSwNCiAJdWItPnFsZW4rKzsNCiANCiAJcG0gPSBOTE1TR19EQVRBKG5saCk7DQor CW1lbXNldChwbSwgMCwgc2l6ZW9mKCpwbSkpOw0KIA0KIAkvKiBXZSBtaWdodCBub3QgaGF2ZSBh IHRpbWVzdGFtcCwgZ2V0IG9uZSAqLw0KIAlpZiAoc2tiLT50c3RhbXAudHY2NCA9PSAwKQ0KQEAg LTIxOCw4ICsyMTksNiBAQCBzdGF0aWMgdm9pZCBpcHRfdWxvZ19wYWNrZXQodW5zaWduZWQgaW50 IGhvb2tudW0sDQogCQlzdHJuY3B5KHBtLT5wcmVmaXgsIHByZWZpeCwgc2l6ZW9mKHBtLT5wcmVm aXgpKTsNCiAJZWxzZSBpZiAobG9naW5mby0+cHJlZml4WzBdICE9ICdcMCcpDQogCQlzdHJuY3B5 KHBtLT5wcmVmaXgsIGxvZ2luZm8tPnByZWZpeCwgc2l6ZW9mKHBtLT5wcmVmaXgpKTsNCi0JZWxz ZQ0KLQkJKihwbS0+cHJlZml4KSA9ICdcMCc7DQogDQogCWlmIChpbiAmJiBpbi0+aGFyZF9oZWFk ZXJfbGVuID4gMCAmJg0KIAkgICAgc2tiLT5tYWNfaGVhZGVyICE9IHNrYi0+bmV0d29ya19oZWFk ZXIgJiYNCkBAIC0yMzEsMTMgKzIzMCw5IEBAIHN0YXRpYyB2b2lkIGlwdF91bG9nX3BhY2tldCh1 bnNpZ25lZCBpbnQgaG9va251bSwNCiANCiAJaWYgKGluKQ0KIAkJc3RybmNweShwbS0+aW5kZXZf bmFtZSwgaW4tPm5hbWUsIHNpemVvZihwbS0+aW5kZXZfbmFtZSkpOw0KLQllbHNlDQotCQlwbS0+ aW5kZXZfbmFtZVswXSA9ICdcMCc7DQogDQogCWlmIChvdXQpDQogCQlzdHJuY3B5KHBtLT5vdXRk ZXZfbmFtZSwgb3V0LT5uYW1lLCBzaXplb2YocG0tPm91dGRldl9uYW1lKSk7DQotCWVsc2UNCi0J CXBtLT5vdXRkZXZfbmFtZVswXSA9ICdcMCc7DQogDQogCS8qIGNvcHlfbGVuIDw9IHNrYi0+bGVu LCBzbyBjYW4ndCBmYWlsLiAqLw0KIAlpZiAoc2tiX2NvcHlfYml0cyhza2IsIDAsIHBtLT5wYXls b2FkLCBjb3B5X2xlbikgPCAwKQ0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pbnB1dC5jIGIv bmV0L2lwdjQvdGNwX2lucHV0LmMNCmluZGV4IGMxZWQwMWUuLmFmZTY4ODYgMTAwNjQ0DQotLS0g YS9uZXQvaXB2NC90Y3BfaW5wdXQuYw0KKysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMNCkBAIC0x MzA1LDcgKzEzMDUsNyBAQCBzdGF0aWMgaW50IHRjcF9tYXRjaF9za2JfdG9fc2FjayhzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsDQogCQkJdW5zaWduZWQgaW50IG5ld19sZW4g PSAocGt0X2xlbiAvIG1zcykgKiBtc3M7DQogCQkJaWYgKCFpbl9zYWNrICYmIG5ld19sZW4gPCBw a3RfbGVuKSB7DQogCQkJCW5ld19sZW4gKz0gbXNzOw0KLQkJCQlpZiAobmV3X2xlbiA+IHNrYi0+ bGVuKQ0KKwkJCQlpZiAobmV3X2xlbiA+PSBza2ItPmxlbikNCiAJCQkJCXJldHVybiAwOw0KIAkJ CX0NCiAJCQlwa3RfbGVuID0gbmV3X2xlbjsNCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0 cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMNCmluZGV4IDE0NzUzZDMuLjA2NGI1YzkgMTAw NjQ0DQotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMNCisrKyBiL25ldC9pcHY2L2lwNl9vdXRw dXQuYw0KQEAgLTM4MSwxNyArMzgxLDYgQEAgc3RhdGljIGlubGluZSBpbnQgaXA2X2ZvcndhcmRf ZmluaXNoKHN0cnVjdCBza19idWZmICpza2IpDQogCXJldHVybiBkc3Rfb3V0cHV0KHNrYik7DQog fQ0KIA0KLXN0YXRpYyBib29sIGlwNl9wa3RfdG9vX2JpZyhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCB1bnNpZ25lZCBpbnQgbXR1KQ0KLXsNCi0JaWYgKHNrYi0+bGVuIDw9IG10dSB8fCBza2It PmxvY2FsX2RmKQ0KLQkJcmV0dXJuIGZhbHNlOw0KLQ0KLQlpZiAoc2tiX2lzX2dzbyhza2IpICYm IHNrYl9nc29fbmV0d29ya19zZWdsZW4oc2tiKSA8PSBtdHUpDQotCQlyZXR1cm4gZmFsc2U7DQot DQotCXJldHVybiB0cnVlOw0KLX0NCi0NCiBpbnQgaXA2X2ZvcndhcmQoc3RydWN0IHNrX2J1ZmYg KnNrYikNCiB7DQogCXN0cnVjdCBkc3RfZW50cnkgKmRzdCA9IHNrYl9kc3Qoc2tiKTsNCkBAIC01 MTUsNyArNTA0LDcgQEAgaW50IGlwNl9mb3J3YXJkKHN0cnVjdCBza19idWZmICpza2IpDQogCWlm IChtdHUgPCBJUFY2X01JTl9NVFUpDQogCQltdHUgPSBJUFY2X01JTl9NVFU7DQogDQotCWlmIChp cDZfcGt0X3Rvb19iaWcoc2tiLCBtdHUpKSB7DQorCWlmIChza2ItPmxlbiA+IG10dSAmJiAhc2ti X2lzX2dzbyhza2IpKSB7DQogCQkvKiBBZ2FpbiwgZm9yY2UgT1VUUFVUIGRldmljZSB1c2VkIGFz IHNvdXJjZSBhZGRyZXNzICovDQogCQlza2ItPmRldiA9IGRzdC0+ZGV2Ow0KIAkJaWNtcHY2X3Nl bmQoc2tiLCBJQ01QVjZfUEtUX1RPT0JJRywgMCwgbXR1KTsNCmRpZmYgLS1naXQgYS9uZXQvbDJ0 cC9sMnRwX3BwcC5jIGIvbmV0L2wydHAvbDJ0cF9wcHAuYw0KaW5kZXggZTBmMDkzNC4uNDM3ZmI1 OSAxMDA2NDQNCi0tLSBhL25ldC9sMnRwL2wydHBfcHBwLmMNCisrKyBiL25ldC9sMnRwL2wydHBf cHBwLmMNCkBAIC0xMzUxLDcgKzEzNTEsNyBAQCBzdGF0aWMgaW50IHBwcG9sMnRwX3NldHNvY2tv cHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwNCiAJaW50IGVy cjsNCiANCiAJaWYgKGxldmVsICE9IFNPTF9QUFBPTDJUUCkNCi0JCXJldHVybiB1ZHBfcHJvdC5z ZXRzb2Nrb3B0KHNrLCBsZXZlbCwgb3B0bmFtZSwgb3B0dmFsLCBvcHRsZW4pOw0KKwkJcmV0dXJu IC1FSU5WQUw7DQogDQogCWlmIChvcHRsZW4gPCBzaXplb2YoaW50KSkNCiAJCXJldHVybiAtRUlO VkFMOw0KQEAgLTE0NzcsNyArMTQ3Nyw3IEBAIHN0YXRpYyBpbnQgcHBwb2wydHBfZ2V0c29ja29w dChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsDQogCXN0cnVjdCBwcHBvbDJ0cF9zZXNz aW9uICpwczsNCiANCiAJaWYgKGxldmVsICE9IFNPTF9QUFBPTDJUUCkNCi0JCXJldHVybiB1ZHBf cHJvdC5nZXRzb2Nrb3B0KHNrLCBsZXZlbCwgb3B0bmFtZSwgb3B0dmFsLCBvcHRsZW4pOw0KKwkJ cmV0dXJuIC1FSU5WQUw7DQogDQogCWlmIChnZXRfdXNlcihsZW4sIChpbnQgX191c2VyICopIG9w dGxlbikpDQogCQlyZXR1cm4gLUVGQVVMVDsNCmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL2lw dnMvaXBfdnNfY3RsLmMgYi9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfY3RsLmMNCmluZGV4IDcy ZjQyNTMuLjkzYWNmYTEgMTAwNjQ0DQotLS0gYS9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfY3Rs LmMNCisrKyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19jdGwuYw0KQEAgLTM2ODgsNiArMzY4 OCw3IEBAIHZvaWQgX19uZXRfaW5pdCBpcF92c19jb250cm9sX25ldF9jbGVhbnVwX3N5c2N0bChz dHJ1Y3QgbmV0ICpuZXQpDQogCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmaXB2cy0+ZGVmZW5z ZV93b3JrKTsNCiAJY2FuY2VsX3dvcmtfc3luYygmaXB2cy0+ZGVmZW5zZV93b3JrLndvcmspOw0K IAl1bnJlZ2lzdGVyX25ldF9zeXNjdGxfdGFibGUoaXB2cy0+c3lzY3RsX2hkcik7DQorCWlwX3Zz X3N0b3BfZXN0aW1hdG9yKG5ldCwgJmlwdnMtPnRvdF9zdGF0cyk7DQogfQ0KIA0KICNlbHNlDQpA QCAtMzc0Myw3ICszNzQ0LDYgQEAgdm9pZCBfX25ldF9leGl0IGlwX3ZzX2NvbnRyb2xfbmV0X2Ns ZWFudXAoc3RydWN0IG5ldCAqbmV0KQ0KIAlzdHJ1Y3QgbmV0bnNfaXB2cyAqaXB2cyA9IG5ldF9p cHZzKG5ldCk7DQogDQogCWlwX3ZzX3RyYXNoX2NsZWFudXAobmV0KTsNCi0JaXBfdnNfc3RvcF9l c3RpbWF0b3IobmV0LCAmaXB2cy0+dG90X3N0YXRzKTsNCiAJaXBfdnNfY29udHJvbF9uZXRfY2xl YW51cF9zeXNjdGwobmV0KTsNCiAJcHJvY19uZXRfcmVtb3ZlKG5ldCwgImlwX3ZzX3N0YXRzX3Bl cmNwdSIpOw0KIAlwcm9jX25ldF9yZW1vdmUobmV0LCAiaXBfdnNfc3RhdHMiKTsNCmRpZmYgLS1n aXQgYS9uZXQvc2N0cC91bHBldmVudC5jIGIvbmV0L3NjdHAvdWxwZXZlbnQuYw0KaW5kZXggOGE4 NDAxNy4uNTdkYTQ0NyAxMDA2NDQNCi0tLSBhL25ldC9zY3RwL3VscGV2ZW50LmMNCisrKyBiL25l dC9zY3RwL3VscGV2ZW50LmMNCkBAIC0zNzMsOSArMzczLDEwIEBAIGZhaWw6DQogICogc3BlY2lm aWNhdGlvbiBbU0NUUF0gYW5kIGFueSBleHRlbnNpb25zIGZvciBhIGxpc3Qgb2YgcG9zc2libGUN CiAgKiBlcnJvciBmb3JtYXRzLg0KICAqLw0KLXN0cnVjdCBzY3RwX3VscGV2ZW50ICpzY3RwX3Vs cGV2ZW50X21ha2VfcmVtb3RlX2Vycm9yKA0KLQljb25zdCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlv biAqYXNvYywgc3RydWN0IHNjdHBfY2h1bmsgKmNodW5rLA0KLQlfX3UxNiBmbGFncywgZ2ZwX3Qg Z2ZwKQ0KK3N0cnVjdCBzY3RwX3VscGV2ZW50ICoNCitzY3RwX3VscGV2ZW50X21ha2VfcmVtb3Rl X2Vycm9yKGNvbnN0IHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLA0KKwkJCQlzdHJ1Y3Qg c2N0cF9jaHVuayAqY2h1bmssIF9fdTE2IGZsYWdzLA0KKwkJCQlnZnBfdCBnZnApDQogew0KIAlz dHJ1Y3Qgc2N0cF91bHBldmVudCAqZXZlbnQ7DQogCXN0cnVjdCBzY3RwX3JlbW90ZV9lcnJvciAq c3JlOw0KQEAgLTM5NCw4ICszOTUsNyBAQCBzdHJ1Y3Qgc2N0cF91bHBldmVudCAqc2N0cF91bHBl dmVudF9tYWtlX3JlbW90ZV9lcnJvcigNCiAJLyogQ29weSB0aGUgc2tiIHRvIGEgbmV3IHNrYiB3 aXRoIHJvb20gZm9yIHVzIHRvIHByZXBlbmQNCiAJICogbm90aWZpY2F0aW9uIHdpdGguDQogCSAq Lw0KLQlza2IgPSBza2JfY29weV9leHBhbmQoY2h1bmstPnNrYiwgc2l6ZW9mKHN0cnVjdCBzY3Rw X3JlbW90ZV9lcnJvciksDQotCQkJICAgICAgMCwgZ2ZwKTsNCisJc2tiID0gc2tiX2NvcHlfZXhw YW5kKGNodW5rLT5za2IsIHNpemVvZigqc3JlKSwgMCwgZ2ZwKTsNCiANCiAJLyogUHVsbCBvZmYg dGhlIHJlc3Qgb2YgdGhlIGNhdXNlIFRMViBmcm9tIHRoZSBjaHVuay4gICovDQogCXNrYl9wdWxs KGNodW5rLT5za2IsIGVsZW4pOw0KQEAgLTQwNiw2MiArNDA2LDIxIEBAIHN0cnVjdCBzY3RwX3Vs cGV2ZW50ICpzY3RwX3VscGV2ZW50X21ha2VfcmVtb3RlX2Vycm9yKA0KIAlldmVudCA9IHNjdHBf c2tiMmV2ZW50KHNrYik7DQogCXNjdHBfdWxwZXZlbnRfaW5pdChldmVudCwgTVNHX05PVElGSUNB VElPTiwgc2tiLT50cnVlc2l6ZSk7DQogDQotCXNyZSA9IChzdHJ1Y3Qgc2N0cF9yZW1vdGVfZXJy b3IgKikNCi0JCXNrYl9wdXNoKHNrYiwgc2l6ZW9mKHN0cnVjdCBzY3RwX3JlbW90ZV9lcnJvcikp Ow0KKwlzcmUgPSAoc3RydWN0IHNjdHBfcmVtb3RlX2Vycm9yICopIHNrYl9wdXNoKHNrYiwgc2l6 ZW9mKCpzcmUpKTsNCiANCiAJLyogVHJpbSB0aGUgYnVmZmVyIHRvIHRoZSByaWdodCBsZW5ndGgu ICAqLw0KLQlza2JfdHJpbShza2IsIHNpemVvZihzdHJ1Y3Qgc2N0cF9yZW1vdGVfZXJyb3IpICsg ZWxlbik7DQorCXNrYl90cmltKHNrYiwgc2l6ZW9mKCpzcmUpICsgZWxlbik7DQogDQotCS8qIFNv Y2tldCBFeHRlbnNpb25zIGZvciBTQ1RQDQotCSAqIDUuMy4xLjMgU0NUUF9SRU1PVEVfRVJST1IN Ci0JICoNCi0JICogc3JlX3R5cGU6DQotCSAqICAgSXQgc2hvdWxkIGJlIFNDVFBfUkVNT1RFX0VS Uk9SLg0KLQkgKi8NCisJLyogUkZDNjQ1OCwgU2VjdGlvbiA2LjEuMy4gU0NUUF9SRU1PVEVfRVJS T1IgKi8NCisJbWVtc2V0KHNyZSwgMCwgc2l6ZW9mKCpzcmUpKTsNCiAJc3JlLT5zcmVfdHlwZSA9 IFNDVFBfUkVNT1RFX0VSUk9SOw0KLQ0KLQkvKg0KLQkgKiBTb2NrZXQgRXh0ZW5zaW9ucyBmb3Ig U0NUUA0KLQkgKiA1LjMuMS4zIFNDVFBfUkVNT1RFX0VSUk9SDQotCSAqDQotCSAqIHNyZV9mbGFn czogMTYgYml0cyAodW5zaWduZWQgaW50ZWdlcikNCi0JICogICBDdXJyZW50bHkgdW51c2VkLg0K LQkgKi8NCiAJc3JlLT5zcmVfZmxhZ3MgPSAwOw0KLQ0KLQkvKiBTb2NrZXQgRXh0ZW5zaW9ucyBm b3IgU0NUUA0KLQkgKiA1LjMuMS4zIFNDVFBfUkVNT1RFX0VSUk9SDQotCSAqDQotCSAqIHNyZV9s ZW5ndGg6IHNpemVvZiAoX191MzIpDQotCSAqDQotCSAqIFRoaXMgZmllbGQgaXMgdGhlIHRvdGFs IGxlbmd0aCBvZiB0aGUgbm90aWZpY2F0aW9uIGRhdGEsDQotCSAqIGluY2x1ZGluZyB0aGUgbm90 aWZpY2F0aW9uIGhlYWRlci4NCi0JICovDQogCXNyZS0+c3JlX2xlbmd0aCA9IHNrYi0+bGVuOw0K LQ0KLQkvKiBTb2NrZXQgRXh0ZW5zaW9ucyBmb3IgU0NUUA0KLQkgKiA1LjMuMS4zIFNDVFBfUkVN T1RFX0VSUk9SDQotCSAqDQotCSAqIHNyZV9lcnJvcjogMTYgYml0cyAodW5zaWduZWQgaW50ZWdl cikNCi0JICogVGhpcyB2YWx1ZSByZXByZXNlbnRzIG9uZSBvZiB0aGUgT3BlcmF0aW9uYWwgRXJy b3IgY2F1c2VzIGRlZmluZWQgaW4NCi0JICogdGhlIFNDVFAgc3BlY2lmaWNhdGlvbiwgaW4gbmV0 d29yayBieXRlIG9yZGVyLg0KLQkgKi8NCiAJc3JlLT5zcmVfZXJyb3IgPSBjYXVzZTsNCi0NCi0J LyogU29ja2V0IEV4dGVuc2lvbnMgZm9yIFNDVFANCi0JICogNS4zLjEuMyBTQ1RQX1JFTU9URV9F UlJPUg0KLQkgKg0KLQkgKiBzcmVfYXNzb2NfaWQ6IHNpemVvZiAoc2N0cF9hc3NvY190KQ0KLQkg Kg0KLQkgKiBUaGUgYXNzb2NpYXRpb24gaWQgZmllbGQsIGhvbGRzIHRoZSBpZGVudGlmaWVyIGZv ciB0aGUgYXNzb2NpYXRpb24uDQotCSAqIEFsbCBub3RpZmljYXRpb25zIGZvciBhIGdpdmVuIGFz c29jaWF0aW9uIGhhdmUgdGhlIHNhbWUgYXNzb2NpYXRpb24NCi0JICogaWRlbnRpZmllci4gIEZv ciBUQ1Agc3R5bGUgc29ja2V0LCB0aGlzIGZpZWxkIGlzIGlnbm9yZWQuDQotCSAqLw0KIAlzY3Rw X3VscGV2ZW50X3NldF9vd25lcihldmVudCwgYXNvYyk7DQogCXNyZS0+c3JlX2Fzc29jX2lkID0g c2N0cF9hc3NvYzJpZChhc29jKTsNCiANCiAJcmV0dXJuIGV2ZW50Ow0KLQ0KIGZhaWw6DQogCXJl dHVybiBOVUxMOw0KIH0NCkBAIC05MDQsNyArODYzLDkgQEAgX191MTYgc2N0cF91bHBldmVudF9n ZXRfbm90aWZpY2F0aW9uX3R5cGUoY29uc3Qgc3RydWN0IHNjdHBfdWxwZXZlbnQgKmV2ZW50KQ0K IAlyZXR1cm4gbm90aWZpY2F0aW9uLT5zbl9oZWFkZXIuc25fdHlwZTsNCiB9DQogDQotLyogQ29w eSBvdXQgdGhlIHNuZHJjdmluZm8gaW50byBhIG1zZ2hkci4gICovDQorLyogUkZDNjQ1OCwgU2Vj dGlvbiA1LjMuMi4gU0NUUCBIZWFkZXIgSW5mb3JtYXRpb24gU3RydWN0dXJlDQorICogKFNDVFBf U05EUkNWLCBERVBSRUNBVEVEKQ0KKyAqLw0KIHZvaWQgc2N0cF91bHBldmVudF9yZWFkX3NuZHJj dmluZm8oY29uc3Qgc3RydWN0IHNjdHBfdWxwZXZlbnQgKmV2ZW50LA0KIAkJCQkgICBzdHJ1Y3Qg bXNnaGRyICptc2doZHIpDQogew0KQEAgLTkxMyw3NCArODc0LDIxIEBAIHZvaWQgc2N0cF91bHBl dmVudF9yZWFkX3NuZHJjdmluZm8oY29uc3Qgc3RydWN0IHNjdHBfdWxwZXZlbnQgKmV2ZW50LA0K IAlpZiAoc2N0cF91bHBldmVudF9pc19ub3RpZmljYXRpb24oZXZlbnQpKQ0KIAkJcmV0dXJuOw0K IA0KLQkvKiBTb2NrZXRzIEFQSSBFeHRlbnNpb25zIGZvciBTQ1RQDQotCSAqIFNlY3Rpb24gNS4y LjIgU0NUUCBIZWFkZXIgSW5mb3JtYXRpb24gU3RydWN0dXJlIChTQ1RQX1NORFJDVikNCi0JICoN Ci0JICogc2luZm9fc3RyZWFtOiAxNiBiaXRzICh1bnNpZ25lZCBpbnRlZ2VyKQ0KLQkgKg0KLQkg KiBGb3IgcmVjdm1zZygpIHRoZSBTQ1RQIHN0YWNrIHBsYWNlcyB0aGUgbWVzc2FnZSdzIHN0cmVh bSBudW1iZXIgaW4NCi0JICogdGhpcyB2YWx1ZS4NCi0JKi8NCisJbWVtc2V0KCZzaW5mbywgMCwg c2l6ZW9mKHNpbmZvKSk7DQogCXNpbmZvLnNpbmZvX3N0cmVhbSA9IGV2ZW50LT5zdHJlYW07DQot CS8qIHNpbmZvX3NzbjogMTYgYml0cyAodW5zaWduZWQgaW50ZWdlcikNCi0JICoNCi0JICogRm9y IHJlY3Ztc2coKSB0aGlzIHZhbHVlIGNvbnRhaW5zIHRoZSBzdHJlYW0gc2VxdWVuY2UgbnVtYmVy IHRoYXQNCi0JICogdGhlIHJlbW90ZSBlbmRwb2ludCBwbGFjZWQgaW4gdGhlIERBVEEgY2h1bmsu ICBGb3IgZnJhZ21lbnRlZA0KLQkgKiBtZXNzYWdlcyB0aGlzIGlzIHRoZSBzYW1lIG51bWJlciBm b3IgYWxsIGRlbGl2ZXJpZXMgb2YgdGhlIG1lc3NhZ2UNCi0JICogKGlmIG1vcmUgdGhhbiBvbmUg cmVjdm1zZygpIGlzIG5lZWRlZCB0byByZWFkIHRoZSBtZXNzYWdlKS4NCi0JICovDQogCXNpbmZv LnNpbmZvX3NzbiA9IGV2ZW50LT5zc247DQotCS8qIHNpbmZvX3BwaWQ6IDMyIGJpdHMgKHVuc2ln bmVkIGludGVnZXIpDQotCSAqDQotCSAqIEluIHJlY3Ztc2coKSB0aGlzIHZhbHVlIGlzDQotCSAq IHRoZSBzYW1lIGluZm9ybWF0aW9uIHRoYXQgd2FzIHBhc3NlZCBieSB0aGUgdXBwZXIgbGF5ZXIg aW4gdGhlIHBlZXINCi0JICogYXBwbGljYXRpb24uICBQbGVhc2Ugbm90ZSB0aGF0IGJ5dGUgb3Jk ZXIgaXNzdWVzIGFyZSBOT1QgYWNjb3VudGVkDQotCSAqIGZvciBhbmQgdGhpcyBpbmZvcm1hdGlv biBpcyBwYXNzZWQgb3BhcXVlbHkgYnkgdGhlIFNDVFAgc3RhY2sgZnJvbQ0KLQkgKiBvbmUgZW5k IHRvIHRoZSBvdGhlci4NCi0JICovDQogCXNpbmZvLnNpbmZvX3BwaWQgPSBldmVudC0+cHBpZDsN Ci0JLyogc2luZm9fZmxhZ3M6IDE2IGJpdHMgKHVuc2lnbmVkIGludGVnZXIpDQotCSAqDQotCSAq IFRoaXMgZmllbGQgbWF5IGNvbnRhaW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgZmxhZ3MgYW5kIGlz IGNvbXBvc2VkIG9mDQotCSAqIGEgYml0d2lzZSBPUiBvZiB0aGVzZSB2YWx1ZXMuDQotCSAqDQot CSAqIHJlY3Ztc2coKSBmbGFnczoNCi0JICoNCi0JICogU0NUUF9VTk9SREVSRUQgLSBUaGlzIGZs YWcgaXMgcHJlc2VudCB3aGVuIHRoZSBtZXNzYWdlIHdhcyBzZW50DQotCSAqICAgICAgICAgICAg ICAgICBub24tb3JkZXJlZC4NCi0JICovDQogCXNpbmZvLnNpbmZvX2ZsYWdzID0gZXZlbnQtPmZs YWdzOw0KLQkvKiBzaW5mb190c246IDMyIGJpdCAodW5zaWduZWQgaW50ZWdlcikNCi0JICoNCi0J ICogRm9yIHRoZSByZWNlaXZpbmcgc2lkZSwgdGhpcyBmaWVsZCBob2xkcyBhIFRTTiB0aGF0IHdh cw0KLQkgKiBhc3NpZ25lZCB0byBvbmUgb2YgdGhlIFNDVFAgRGF0YSBDaHVua3MuDQotCSAqLw0K IAlzaW5mby5zaW5mb190c24gPSBldmVudC0+dHNuOw0KLQkvKiBzaW5mb19jdW10c246IDMyIGJp dCAodW5zaWduZWQgaW50ZWdlcikNCi0JICoNCi0JICogVGhpcyBmaWVsZCB3aWxsIGhvbGQgdGhl IGN1cnJlbnQgY3VtdWxhdGl2ZSBUU04gYXMNCi0JICoga25vd24gYnkgdGhlIHVuZGVybHlpbmcg U0NUUCBsYXllci4gIE5vdGUgdGhpcyBmaWVsZCBpcw0KLQkgKiBpZ25vcmVkIHdoZW4gc2VuZGlu ZyBhbmQgb25seSB2YWxpZCBmb3IgYSByZWNlaXZlDQotCSAqIG9wZXJhdGlvbiB3aGVuIHNpbmZv X2ZsYWdzIGFyZSBzZXQgdG8gU0NUUF9VTk9SREVSRUQuDQotCSAqLw0KIAlzaW5mby5zaW5mb19j dW10c24gPSBldmVudC0+Y3VtdHNuOw0KLQkvKiBzaW5mb19hc3NvY19pZDogc2l6ZW9mIChzY3Rw X2Fzc29jX3QpDQotCSAqDQotCSAqIFRoZSBhc3NvY2lhdGlvbiBoYW5kbGUgZmllbGQsIHNpbmZv X2Fzc29jX2lkLCBob2xkcyB0aGUgaWRlbnRpZmllcg0KLQkgKiBmb3IgdGhlIGFzc29jaWF0aW9u IGFubm91bmNlZCBpbiB0aGUgQ09NTVVOSUNBVElPTl9VUCBub3RpZmljYXRpb24uDQotCSAqIEFs bCBub3RpZmljYXRpb25zIGZvciBhIGdpdmVuIGFzc29jaWF0aW9uIGhhdmUgdGhlIHNhbWUgaWRl bnRpZmllci4NCi0JICogSWdub3JlZCBmb3Igb25lLXRvLW9uZSBzdHlsZSBzb2NrZXRzLg0KLQkg Ki8NCiAJc2luZm8uc2luZm9fYXNzb2NfaWQgPSBzY3RwX2Fzc29jMmlkKGV2ZW50LT5hc29jKTsN Ci0NCi0JLyogY29udGV4dCB2YWx1ZSB0aGF0IGlzIHNldCB2aWEgU0NUUF9DT05URVhUIHNvY2tl dCBvcHRpb24uICovDQorCS8qIENvbnRleHQgdmFsdWUgdGhhdCBpcyBzZXQgdmlhIFNDVFBfQ09O VEVYVCBzb2NrZXQgb3B0aW9uLiAqLw0KIAlzaW5mby5zaW5mb19jb250ZXh0ID0gZXZlbnQtPmFz b2MtPmRlZmF1bHRfcmN2X2NvbnRleHQ7DQotDQogCS8qIFRoZXNlIGZpZWxkcyBhcmUgbm90IHVz ZWQgd2hpbGUgcmVjZWl2aW5nLiAqLw0KIAlzaW5mby5zaW5mb190aW1ldG9saXZlID0gMDsNCiAN CiAJcHV0X2Ntc2cobXNnaGRyLCBJUFBST1RPX1NDVFAsIFNDVFBfU05EUkNWLA0KLQkJIHNpemVv ZihzdHJ1Y3Qgc2N0cF9zbmRyY3ZpbmZvKSwgKHZvaWQgKikmc2luZm8pOw0KKwkJIHNpemVvZihz aW5mbyksICZzaW5mbyk7DQogfQ0KIA0KIC8qIERvIGFjY291bnRpbmcgZm9yIGJ5dGVzIHJlY2Vp dmVkIGFuZCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBhc3NvY2lhdGlvbg0KZGlmZiAtLWdpdCBh L3Rvb2xzL3VzYi9mZnMtdGVzdC5jIGIvdG9vbHMvdXNiL2Zmcy10ZXN0LmMNCmluZGV4IGYxN2Rm ZWUuLjcyNmFmMjcgMTAwNjQ0DQotLS0gYS90b29scy91c2IvZmZzLXRlc3QuYw0KKysrIGIvdG9v bHMvdXNiL2Zmcy10ZXN0LmMNCkBAIC0xNDMsOCArMTQzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVj dCB7DQogCS5oZWFkZXIgPSB7DQogCQkubWFnaWMgPSBjcHVfdG9fbGUzMihGVU5DVElPTkZTX0RF U0NSSVBUT1JTX01BR0lDKSwNCiAJCS5sZW5ndGggPSBjcHVfdG9fbGUzMihzaXplb2YgZGVzY3Jp cHRvcnMpLA0KLQkJLmZzX2NvdW50ID0gMywNCi0JCS5oc19jb3VudCA9IDMsDQorCQkuZnNfY291 bnQgPSBjcHVfdG9fbGUzMigzKSwNCisJCS5oc19jb3VudCA9IGNwdV90b19sZTMyKDMpLA0KIAl9 LA0KIAkuZnNfZGVzY3MgPSB7DQogCQkuaW50ZiA9IHsNCi== --=-0l4y9XJZwvRTEWiSpV8w-- --=-hA05s+u3rAvXFjAawNk7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIVAwUAU9/BOue/yOyVhhEJAQqNLQ//WSckCl6WyH+DmsvxFmA1J/gt1YcTgyiP TiTuc8zOPfqNVoO3N0HPl+guVQN0gIN1YOBT0OKlrQm5DSknbV0JJPFDDR/UT+NW v2SrpbIbiYx3nKrdO+ZAg9iVXKgGAofnUECwh3Lu0heDDcLYKGEV+yhuA1XmWmre NkvNsdQYSD3HzEYJmIcRQyMdGBmNkcopIdM88pXXdslK9tmF5nadpUIrCV+R+/lm CISnQQ8+9oKnnROwVR00LsQWkLtSfVuRzCMpJUB3zwuPPydVZlLOBzO+OufYuD2u 11RJCvO74G+WJz8qQFgxUqCLW9gMgJ/APtQZtTVT4tsW7aDfs9j4oQallKo/7S14 1N6crwcGV3LQj1EWN55sTGTHdvMf1WC4P9dwH1zbR69PdKZ62gR7qGqLN+KCo74n g8RZDMBQk2yjtf2JsVnexxg2YGwH99zVhZIhoj2jo/z+5XTSYXbxGSJ3gbDwhCJ9 s00HYoljBj3Uh2vzX96B8f/pC8dGw+VV11TE8AfU0tnf03TOhpC2TvPIw19hVpsu EqgnUqO6JoTVUpVYcogu60dj3KxTcQpGW7nNA5ZvVGDZBl6GuwV+TmhEU/0+oVlR xxrNDaU4je/EZvxKBkt3yZoc/dvTw4DLRpZPk0xHGM90xjTpJll/Iwjrfu6eGkcE bbez85/2OZQ= =pa7c -----END PGP SIGNATURE----- --=-hA05s+u3rAvXFjAawNk7--