From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from web38803.mail.mud.yahoo.com ([209.191.125.94]) by www.linuxtv.org with smtp (Exim 4.63) (envelope-from ) id 1L2iyS-0002y0-09 for linux-dvb@linuxtv.org; Wed, 19 Nov 2008 10:03:54 +0100 Date: Wed, 19 Nov 2008 01:03:13 -0800 (PST) From: Uri Shkolnik To: Linux-dvb MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-415634748-1227085393=:56504" Message-ID: <804196.56504.qm@web38803.mail.mud.yahoo.com> Subject: [linux-dvb] [PATCH 5/5] Siano's SMS core system upgrade List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-dvb-bounces@linuxtv.org Errors-To: linux-dvb-bounces+mchehab=infradead.org@linuxtv.org List-ID: --0-415634748-1227085393=:56504 Content-Type: text/plain; charset=us-ascii This patch provides the following: A) Support for firmware download for kernel versions < 2.6.10 B) SPI and SDIO interface driver registration C) DVB-API v5 (S2) and Siano's subsystem registration D) Indentation Signed-off-by: Uri Shkolnik --0-415634748-1227085393=:56504 Content-Type: text/x-diff; name="smscore_patch.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smscore_patch.diff" VGhpcyBwYXRjaCBwcm92aWRlcyB0aGUgZm9sbG93aW5nOg0KQSkgU3VwcG9y dCBmb3IgZmlybXdhcmUgZG93bmxvYWQgZm9yIGtlcm5lbCB2ZXJzaW9ucyA8 IDIuNi4xMA0KQikgU1BJIGFuZCBTRElPIGludGVyZmFjZSBkcml2ZXIgcmVn aXN0cmF0aW9uDQpDKSBEVkItQVBJIHY1IChTMikgYW5kIFNpYW5vJ3Mgc3Vi c3lzdGVtIHJlZ2lzdHJhdGlvbg0KRCkgSW5kZW50YXRpb24NCg0KClNpZ25l ZC1vZmYtYnk6IFVyaSBTaGtvbG5payA8dXJpc0BzaWFuby1tcy5jb20+CgoK ZGlmZiAtdU5yIHY0bC1kdmItYzVmOTc2Y2FiMDExL2xpbnV4L2RyaXZlcnMv bWVkaWEvZHZiL3NpYW5vL3Ntc2NvcmVhcGkuYyB2NGwtZHZiLWM1Zjk3NmNh YjAxMV8wMDAzL2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL3NpYW5vL3Ntc2Nv cmVhcGkuYwotLS0gdjRsLWR2Yi1jNWY5NzZjYWIwMTEvbGludXgvZHJpdmVy cy9tZWRpYS9kdmIvc2lhbm8vc21zY29yZWFwaS5jCTIwMDgtMTEtMTYgMTU6 NDA6MjEuMDAwMDAwMDAwICswMjAwCisrKyB2NGwtZHZiLWM1Zjk3NmNhYjAx MV8wMDAzL2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL3NpYW5vL3Ntc2NvcmVh cGkuYwkyMDA4LTExLTE5IDEwOjI5OjUwLjAwMDAwMDAwMCArMDIwMApAQCAt MSwyNSArMSwyMyBAQAotLyoKLSAqICBTaWFubyBjb3JlIEFQSSBtb2R1bGUK LSAqCi0gKiAgVGhpcyBmaWxlIGNvbnRhaW5zIGltcGxlbWVudGF0aW9uIGZv ciB0aGUgaW50ZXJmYWNlIHRvIHNtcyBjb3JlIGNvbXBvbmVudAotICoKLSAq ICBhdXRob3I6IEFuYXRvbHkgR3JlZW5ibGF0Ci0gKgotICogIENvcHlyaWdo dCAoYyksIDIwMDUtMjAwOCBTaWFubyBNb2JpbGUgU2lsaWNvbiwgSW5jLgot ICoKLSAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug dmVyc2lvbiAyIGFzCi0gKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247Ci0gKgotICogIFNvZnR3YXJlIGRpc3RyaWJ1dGVk IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJ UyIKLSAqICBiYXNpcywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg ZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqCi0gKiAgU2VlIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot ICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1i cmlkZ2UsIE1BIDAyMTM5LCBVU0EuCi0gKi8KKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisKK1NpYW5vIE1vYmlsZSBTaWxpY29uLCBJbmMuCitNRFRWIHJlY2Vp dmVyIGtlcm5lbCBtb2R1bGVzLgorQ29weXJpZ2h0IChDKSAyMDA2LTIwMDgs IFVyaSBTaGtvbG5paworCitUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQoraXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKK3RoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiso YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCitidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKworWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKK2Fsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAjaW5jbHVk ZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpA QCAtMjgsMTIgKzI2LDE5IEBACiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBp bmcuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxp bnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogCiAjaW5j bHVkZSA8bGludXgvZmlybXdhcmUuaD4KIAogI2luY2x1ZGUgInNtc2NvcmVh cGkuaCIKICNpbmNsdWRlICJzbXMtY2FyZHMuaCIKIAorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLCA2LCAxMCkKKyNkZWZp bmUgUkVRVUVTVF9GSVJNV0FSRV9TVVBQT1JURUQKKyNlbHNlCisjZGVmaW5l IERFRkFVTFRfRldfRklMRV9QQVRIICIvbGliL2Zpcm13YXJlIgorI2VuZGlm CisKIGludCBzbXNfZGVidWc7CiBtb2R1bGVfcGFyYW1fbmFtZWQoZGVidWcs IHNtc19kZWJ1ZywgaW50LCAwNjQ0KTsKIE1PRFVMRV9QQVJNX0RFU0MoZGVi dWcsICJzZXQgZGVidWcgbGV2ZWwgKGluZm89MSwgYWR2PTIgKG9yLWFibGUp KSIpOwpAQCAtNDUsMTcgKzUwLDE3IEBACiAKIHN0cnVjdCBzbXNjb3JlX2lk bGlzdF90IHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGVudHJ5OwotCWludAkJaWQ7 Ci0JaW50CQlkYXRhX3R5cGU7CisJaW50IGlkOworCWludCBkYXRhX3R5cGU7 CiB9OwogCiBzdHJ1Y3Qgc21zY29yZV9jbGllbnRfdCB7CiAJc3RydWN0IGxp c3RfaGVhZCBlbnRyeTsKIAlzdHJ1Y3Qgc21zY29yZV9kZXZpY2VfdCAqY29y ZWRldjsKLQl2b2lkCQkJKmNvbnRleHQ7Ci0Jc3RydWN0IGxpc3RfaGVhZCAJ aWRsaXN0OwotCW9ucmVzcG9uc2VfdAlvbnJlc3BvbnNlX2hhbmRsZXI7Ci0J b25yZW1vdmVfdAkJb25yZW1vdmVfaGFuZGxlcjsKKwl2b2lkICpjb250ZXh0 OworCXN0cnVjdCBsaXN0X2hlYWQgaWRsaXN0OworCW9ucmVzcG9uc2VfdCBv bnJlc3BvbnNlX2hhbmRsZXI7CisJb25yZW1vdmVfdCBvbnJlbW92ZV9oYW5k bGVyOwogfTsKIAogc3RydWN0IHNtc2NvcmVfZGV2aWNlX3QgewpAQCAtNjMs MzQgKzY4LDM3IEBACiAKIAlzdHJ1Y3QgbGlzdF9oZWFkIGNsaWVudHM7CiAJ c3RydWN0IGxpc3RfaGVhZCBzdWJjbGllbnRzOwotCXNwaW5sb2NrX3QJCWNs aWVudHNsb2NrOworCXNwaW5sb2NrX3QgY2xpZW50c2xvY2s7CiAKIAlzdHJ1 Y3QgbGlzdF9oZWFkIGJ1ZmZlcnM7Ci0Jc3BpbmxvY2tfdAkJYnVmZmVyc2xv Y2s7Ci0JaW50CQkJCW51bV9idWZmZXJzOworCXNwaW5sb2NrX3QgYnVmZmVy c2xvY2s7CisJaW50IG51bV9idWZmZXJzOwogCi0Jdm9pZAkJCSpjb21tb25f YnVmZmVyOwotCWludAkJCQljb21tb25fYnVmZmVyX3NpemU7Ci0JZG1hX2Fk ZHJfdAkJY29tbW9uX2J1ZmZlcl9waHlzOwotCi0Jdm9pZAkJCSpjb250ZXh0 OwotCXN0cnVjdCBkZXZpY2UJKmRldmljZTsKLQotCWNoYXIJCQlkZXZwYXRo WzMyXTsKLQl1bnNpZ25lZCBsb25nCWRldmljZV9mbGFnczsKLQotCXNldG1v ZGVfdAkJc2V0bW9kZV9oYW5kbGVyOwotCWRldGVjdG1vZGVfdAlkZXRlY3Rt b2RlX2hhbmRsZXI7Ci0Jc2VuZHJlcXVlc3RfdAlzZW5kcmVxdWVzdF9oYW5k bGVyOwotCXByZWxvYWRfdAkJcHJlbG9hZF9oYW5kbGVyOwotCXBvc3Rsb2Fk X3QJCXBvc3Rsb2FkX2hhbmRsZXI7CisJdm9pZCAqY29tbW9uX2J1ZmZlcjsK KwlpbnQgY29tbW9uX2J1ZmZlcl9zaXplOworCWRtYV9hZGRyX3QgY29tbW9u X2J1ZmZlcl9waHlzOworCisJdm9pZCAqY29udGV4dDsKKwlzdHJ1Y3QgZGV2 aWNlICpkZXZpY2U7CisKKwljaGFyIGRldnBhdGhbMzJdOworCXVuc2lnbmVk IGxvbmcgZGV2aWNlX2ZsYWdzOworCisJc2V0bW9kZV90IHNldG1vZGVfaGFu ZGxlcjsKKwlkZXRlY3Rtb2RlX3QgZGV0ZWN0bW9kZV9oYW5kbGVyOworCXNl bmRyZXF1ZXN0X3Qgc2VuZHJlcXVlc3RfaGFuZGxlcjsKKwlwcmVsb2FkX3Qg cHJlbG9hZF9oYW5kbGVyOworCXBvc3Rsb2FkX3QgcG9zdGxvYWRfaGFuZGxl cjsKIAotCWludAkJCQltb2RlLCBtb2Rlc19zdXBwb3J0ZWQ7CisJaW50IG1v ZGUsIG1vZGVzX3N1cHBvcnRlZDsKIAogCXN0cnVjdCBjb21wbGV0aW9uIHZl cnNpb25fZXhfZG9uZSwgZGF0YV9kb3dubG9hZF9kb25lLCB0cmlnZ2VyX2Rv bmU7CiAJc3RydWN0IGNvbXBsZXRpb24gaW5pdF9kZXZpY2VfZG9uZSwgcmVs b2FkX3N0YXJ0X2RvbmUsIHJlc3VtZV9kb25lOwogCiAJaW50IGJvYXJkX2lk OworCisJdTggKmZ3X2J1ZjsKKwl1MzIgZndfYnVmX3NpemU7CiB9OwogCiB2 b2lkIHNtc2NvcmVfc2V0X2JvYXJkX2lkKHN0cnVjdCBzbXNjb3JlX2Rldmlj ZV90ICpjb3JlLCBpbnQgaWQpCkBAIC0xMDUsOSArMTEzLDkgQEAKIAogc3Ry dWN0IHNtc2NvcmVfcmVnaXN0cnlfZW50cnlfdCB7CiAJc3RydWN0IGxpc3Rf aGVhZCBlbnRyeTsKLQljaGFyCQkJZGV2cGF0aFszMl07Ci0JaW50CQkJCW1v ZGU7Ci0JZW51bSBzbXNfZGV2aWNlX3R5cGVfc3QJdHlwZTsKKwljaGFyIGRl dnBhdGhbMzJdOworCWludCBtb2RlOworCWVudW0gc21zX2RldmljZV90eXBl X3N0IHR5cGU7CiB9OwogCiBzdGF0aWMgc3RydWN0IGxpc3RfaGVhZCBnX3Nt c2NvcmVfbm90aWZ5ZWVzOwpAQCAtMTI5LDE3ICsxMzcsMTUgQEAKIAogCWtt dXRleF9sb2NrKCZnX3Ntc2NvcmVfcmVnaXN0cnlsb2NrKTsKIAlmb3IgKG5l eHQgPSBnX3Ntc2NvcmVfcmVnaXN0cnkubmV4dDsKLQkgICAgIG5leHQgIT0g Jmdfc21zY29yZV9yZWdpc3RyeTsKLQkgICAgIG5leHQgPSBuZXh0LT5uZXh0 KSB7Ci0JCWVudHJ5ID0gKHN0cnVjdCBzbXNjb3JlX3JlZ2lzdHJ5X2VudHJ5 X3QgKikgbmV4dDsKKwkgICAgIG5leHQgIT0gJmdfc21zY29yZV9yZWdpc3Ry eTsgbmV4dCA9IG5leHQtPm5leHQpIHsKKwkJZW50cnkgPSAoc3RydWN0IHNt c2NvcmVfcmVnaXN0cnlfZW50cnlfdCAqKW5leHQ7CiAJCWlmICghc3RyY21w KGVudHJ5LT5kZXZwYXRoLCBkZXZwYXRoKSkgewogCQkJa211dGV4X3VubG9j aygmZ19zbXNjb3JlX3JlZ2lzdHJ5bG9jayk7CiAJCQlyZXR1cm4gZW50cnk7 CiAJCX0KIAl9CiAJZW50cnkgPSAoc3RydWN0IHNtc2NvcmVfcmVnaXN0cnlf ZW50cnlfdCAqKQotCQkJa21hbGxvYyhzaXplb2Yoc3RydWN0IHNtc2NvcmVf cmVnaXN0cnlfZW50cnlfdCksCi0JCQkJR0ZQX0tFUk5FTCk7CisJICAgIGtt YWxsb2Moc2l6ZW9mKHN0cnVjdCBzbXNjb3JlX3JlZ2lzdHJ5X2VudHJ5X3Qp LCBHRlBfS0VSTkVMKTsKIAlpZiAoZW50cnkpIHsKIAkJZW50cnktPm1vZGUg PSBkZWZhdWx0X21vZGU7CiAJCXN0cmNweShlbnRyeS0+ZGV2cGF0aCwgZGV2 cGF0aCk7CkBAIC0xOTksNyArMjA1LDYgQEAKIAkJc21zX2VycigiTm8gcmVn aXN0cnkgZm91bmQuIik7CiB9CiAKLQogc3RhdGljIHZvaWQgbGlzdF9hZGRf bG9ja2VkKHN0cnVjdCBsaXN0X2hlYWQgKm5ldywgc3RydWN0IGxpc3RfaGVh ZCAqaGVhZCwKIAkJCSAgICBzcGlubG9ja190ICpsb2NrKQogewpAQCAtMjM0 LDEwICsyMzksOSBAQAogCQkvKiBub3cgbm90aWZ5IGNhbGxiYWNrIGFib3V0 IGV4aXN0aW5nIGRldmljZXMgKi8KIAkJZmlyc3QgPSAmZ19zbXNjb3JlX2Rl dmljZXM7CiAJCWZvciAobmV4dCA9IGZpcnN0LT5uZXh0OwotCQkgICAgIG5l eHQgIT0gZmlyc3QgJiYgIXJjOwotCQkgICAgIG5leHQgPSBuZXh0LT5uZXh0 KSB7CisJCSAgICAgbmV4dCAhPSBmaXJzdCAmJiAhcmM7IG5leHQgPSBuZXh0 LT5uZXh0KSB7CiAJCQlzdHJ1Y3Qgc21zY29yZV9kZXZpY2VfdCAqY29yZWRl diA9Ci0JCQkJKHN0cnVjdCBzbXNjb3JlX2RldmljZV90ICopIG5leHQ7CisJ CQkgICAgKHN0cnVjdCBzbXNjb3JlX2RldmljZV90ICopbmV4dDsKIAkJCXJj ID0gaG90cGx1Zyhjb3JlZGV2LCBjb3JlZGV2LT5kZXZpY2UsIDEpOwogCQl9 CiAKQEAgLTI3MCw3ICsyNzQsNyBAQAogCiAJZm9yIChuZXh0ID0gZmlyc3Qt Pm5leHQ7IG5leHQgIT0gZmlyc3Q7KSB7CiAJCXN0cnVjdCBzbXNjb3JlX2Rl dmljZV9ub3RpZnllZV90ICpub3RpZnllZSA9Ci0JCQkoc3RydWN0IHNtc2Nv cmVfZGV2aWNlX25vdGlmeWVlX3QgKikgbmV4dDsKKwkJICAgIChzdHJ1Y3Qg c21zY29yZV9kZXZpY2Vfbm90aWZ5ZWVfdCAqKW5leHQ7CiAJCW5leHQgPSBu ZXh0LT5uZXh0OwogCiAJCWlmIChub3RpZnllZS0+aG90cGx1ZyA9PSBob3Rw bHVnKSB7CkBAIC0yODgsNyArMjkyLDcgQEAKIAogCS8qIHRoZSBjbGllbnQg bXVzdCBjYWxsIHNtc2NvcmVfdW5yZWdpc3Rlcl9jbGllbnQgZnJvbSByZW1v dmUgaGFuZGxlciAqLwogCXdoaWxlICghbGlzdF9lbXB0eSgmY29yZWRldi0+ Y2xpZW50cykpIHsKLQkJY2xpZW50ID0gKHN0cnVjdCBzbXNjb3JlX2NsaWVu dF90ICopIGNvcmVkZXYtPmNsaWVudHMubmV4dDsKKwkJY2xpZW50ID0gKHN0 cnVjdCBzbXNjb3JlX2NsaWVudF90ICopY29yZWRldi0+Y2xpZW50cy5uZXh0 OwogCQljbGllbnQtPm9ucmVtb3ZlX2hhbmRsZXIoY2xpZW50LT5jb250ZXh0 KTsKIAl9CiB9CkBAIC0zMDQsOCArMzA4LDggQEAKIAlmaXJzdCA9ICZnX3Nt c2NvcmVfbm90aWZ5ZWVzOwogCiAJZm9yIChuZXh0ID0gZmlyc3QtPm5leHQ7 IG5leHQgIT0gZmlyc3Q7IG5leHQgPSBuZXh0LT5uZXh0KSB7Ci0JCXJjID0g KChzdHJ1Y3Qgc21zY29yZV9kZXZpY2Vfbm90aWZ5ZWVfdCAqKSBuZXh0KS0+ Ci0JCQkJaG90cGx1Zyhjb3JlZGV2LCBkZXZpY2UsIGFycml2YWwpOworCQly YyA9ICgoc3RydWN0IHNtc2NvcmVfZGV2aWNlX25vdGlmeWVlX3QgKiluZXh0 KS0+CisJCSAgICBob3RwbHVnKGNvcmVkZXYsIGRldmljZSwgYXJyaXZhbCk7 CiAJCWlmIChyYyA8IDApCiAJCQlicmVhazsKIAl9CkBAIC0zMTgsNyArMzIy LDcgQEAKIAkJCQkgICAgICAgZG1hX2FkZHJfdCBjb21tb25fYnVmZmVyX3Bo eXMpCiB7CiAJc3RydWN0IHNtc2NvcmVfYnVmZmVyX3QgKmNiID0KLQkJa21h bGxvYyhzaXplb2Yoc3RydWN0IHNtc2NvcmVfYnVmZmVyX3QpLCBHRlBfS0VS TkVMKTsKKwkgICAga21hbGxvYyhzaXplb2Yoc3RydWN0IHNtc2NvcmVfYnVm ZmVyX3QpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNiKSB7CiAJCXNtc19pbmZv KCJrbWFsbG9jKC4uLikgZmFpbGVkIik7CiAJCXJldHVybiBOVUxMOwpAQCAt Mzg3LDggKzM5MSw4IEBACiAJICAgICBkZXYtPm51bV9idWZmZXJzIDwgcGFy YW1zLT5udW1fYnVmZmVyczsKIAkgICAgIGRldi0+bnVtX2J1ZmZlcnMrKywg YnVmZmVyICs9IHBhcmFtcy0+YnVmZmVyX3NpemUpIHsKIAkJc3RydWN0IHNt c2NvcmVfYnVmZmVyX3QgKmNiID0KLQkJCXNtc2NvcmVfY3JlYXRlYnVmZmVy KGJ1ZmZlciwgZGV2LT5jb21tb25fYnVmZmVyLAotCQkJCQkgICAgIGRldi0+ Y29tbW9uX2J1ZmZlcl9waHlzKTsKKwkJICAgIHNtc2NvcmVfY3JlYXRlYnVm ZmVyKGJ1ZmZlciwgZGV2LT5jb21tb25fYnVmZmVyLAorCQkJCQkgZGV2LT5j b21tb25fYnVmZmVyX3BoeXMpOwogCQlpZiAoIWNiKSB7CiAJCQlzbXNjb3Jl X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7CiAJCQlyZXR1cm4gLUVOT01FTTsK QEAgLTQzNSwxMiArNDM5LDE3IEBACiAgKi8KIGludCBzbXNjb3JlX3N0YXJ0 X2RldmljZShzdHJ1Y3Qgc21zY29yZV9kZXZpY2VfdCAqY29yZWRldikKIHsK LQlpbnQgcmMgPSBzbXNjb3JlX3NldF9kZXZpY2VfbW9kZSgKLQkJCWNvcmVk ZXYsIHNtc2NvcmVfcmVnaXN0cnlfZ2V0bW9kZShjb3JlZGV2LT5kZXZwYXRo KSk7CisJaW50IHJjOworCisjaWZkZWYgUkVRVUVTVF9GSVJNV0FSRV9TVVBQ T1JURUQKKwlyYyA9IHNtc2NvcmVfc2V0X2RldmljZV9tb2RlKGNvcmVkZXYs CisJCQkJICAgICBzbXNjb3JlX3JlZ2lzdHJ5X2dldG1vZGUoY29yZWRldi0+ CisJCQkJCQkJICAgICAgZGV2cGF0aCkpOwogCWlmIChyYyA8IDApIHsKIAkJ c21zX2luZm8oInNldCBkZXZpY2UgbW9kZSBmYWlsZSAsIHJjICVkIiwgcmMp OwogCQlyZXR1cm4gcmM7CiAJfQorI2VuZGlmCiAKIAlrbXV0ZXhfbG9jaygm Z19zbXNjb3JlX2RldmljZXNsb2NrKTsKIApAQCAtNDY1LDEzICs0NzQsMTMg QEAKIAogCXJldHVybiB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoY29t cGxldGlvbiwKIAkJCQkJICAgbXNlY3NfdG9famlmZmllcygxMDAwMCkpID8K LQkJCQkJCTAgOiAtRVRJTUU7CisJICAgIDAgOiAtRVRJTUU7CiB9CiAKIHN0 YXRpYyBpbnQgc21zY29yZV9sb2FkX2Zpcm13YXJlX2ZhbWlseTIoc3RydWN0 IHNtc2NvcmVfZGV2aWNlX3QgKmNvcmVkZXYsCiAJCQkJCSB2b2lkICpidWZm ZXIsIHNpemVfdCBzaXplKQogewotCXN0cnVjdCBTbXNGaXJtd2FyZV9TVCAq ZmlybXdhcmUgPSAoc3RydWN0IFNtc0Zpcm13YXJlX1NUICopIGJ1ZmZlcjsK KwlzdHJ1Y3QgU21zRmlybXdhcmVfU1QgKmZpcm13YXJlID0gKHN0cnVjdCBT bXNGaXJtd2FyZV9TVCAqKWJ1ZmZlcjsKIAlzdHJ1Y3QgU21zTXNnSGRyX1NU ICptc2c7CiAJdTMyIG1lbV9hZGRyZXNzID0gZmlybXdhcmUtPlN0YXJ0QWRk cmVzczsKIAl1OCAqcGF5bG9hZCA9IGZpcm13YXJlLT5QYXlsb2FkOwpAQCAt NTAyLDI2ICs1MTEsMjggQEAKIAogCXdoaWxlIChzaXplICYmIHJjID49IDAp IHsKIAkJc3RydWN0IFNtc0RhdGFEb3dubG9hZF9TVCAqRGF0YU1zZyA9Ci0J CQkoc3RydWN0IFNtc0RhdGFEb3dubG9hZF9TVCAqKSBtc2c7Ci0JCWludCBw YXlsb2FkX3NpemUgPSBtaW4oKGludCkgc2l6ZSwgU01TX01BWF9QQVlMT0FE X1NJWkUpOworCQkgICAgKHN0cnVjdCBTbXNEYXRhRG93bmxvYWRfU1QgKilt c2c7CisJCWludCBwYXlsb2FkX3NpemUgPSBtaW4oKGludClzaXplLCBTTVNf TUFYX1BBWUxPQURfU0laRSk7CiAKIAkJU01TX0lOSVRfTVNHKG1zZywgTVNH X1NNU19EQVRBX0RPV05MT0FEX1JFUSwKLQkJCSAgICAgKHUxNikoc2l6ZW9m KHN0cnVjdCBTbXNNc2dIZHJfU1QpICsKLQkJCQkgICAgICBzaXplb2YodTMy KSArIHBheWxvYWRfc2l6ZSkpOworCQkJICAgICAodTE2KSAoc2l6ZW9mKHN0 cnVjdCBTbXNNc2dIZHJfU1QpICsKKwkJCQkgICAgc2l6ZW9mKHUzMikgKyBw YXlsb2FkX3NpemUpKTsKIAogCQlEYXRhTXNnLT5NZW1BZGRyID0gbWVtX2Fk ZHJlc3M7CiAJCW1lbWNweShEYXRhTXNnLT5QYXlsb2FkLCBwYXlsb2FkLCBw YXlsb2FkX3NpemUpOwogCiAJCWlmICgoY29yZWRldi0+ZGV2aWNlX2ZsYWdz ICYgU01TX1JPTV9OT19SRVNQT05TRSkgJiYKIAkJICAgIChjb3JlZGV2LT5t b2RlID09IERFVklDRV9NT0RFX05PTkUpKQotCQkJcmMgPSBjb3JlZGV2LT5z ZW5kcmVxdWVzdF9oYW5kbGVyKAotCQkJCWNvcmVkZXYtPmNvbnRleHQsIERh dGFNc2csCi0JCQkJRGF0YU1zZy0+eE1zZ0hlYWRlci5tc2dMZW5ndGgpOwor CQkJcmMgPSBjb3JlZGV2LT5zZW5kcmVxdWVzdF9oYW5kbGVyKGNvcmVkZXYt PmNvbnRleHQsCisJCQkJCQkJICBEYXRhTXNnLAorCQkJCQkJCSAgRGF0YU1z Zy0+eE1zZ0hlYWRlci4KKwkJCQkJCQkgIG1zZ0xlbmd0aCk7CiAJCWVsc2UK LQkJCXJjID0gc21zY29yZV9zZW5kcmVxdWVzdF9hbmRfd2FpdCgKLQkJCQlj b3JlZGV2LCBEYXRhTXNnLAotCQkJCURhdGFNc2ctPnhNc2dIZWFkZXIubXNn TGVuZ3RoLAotCQkJCSZjb3JlZGV2LT5kYXRhX2Rvd25sb2FkX2RvbmUpOwor CQkJcmMgPSBzbXNjb3JlX3NlbmRyZXF1ZXN0X2FuZF93YWl0KGNvcmVkZXYs IERhdGFNc2csCisJCQkJCQkJICBEYXRhTXNnLT54TXNnSGVhZGVyLgorCQkJ CQkJCSAgbXNnTGVuZ3RoLAorCQkJCQkJCSAgJmNvcmVkZXYtPgorCQkJCQkJ CSAgZGF0YV9kb3dubG9hZF9kb25lKTsKIAogCQlwYXlsb2FkICs9IHBheWxv YWRfc2l6ZTsKIAkJc2l6ZSAtPSBwYXlsb2FkX3NpemU7CkBAIC01MzEsMjkg KzU0MiwzNSBAQAogCWlmIChyYyA+PSAwKSB7CiAJCWlmIChjb3JlZGV2LT5t b2RlID09IERFVklDRV9NT0RFX05PTkUpIHsKIAkJCXN0cnVjdCBTbXNNc2dE YXRhX1NUICpUcmlnZ2VyTXNnID0KLQkJCQkoc3RydWN0IFNtc01zZ0RhdGFf U1QgKikgbXNnOworCQkJICAgIChzdHJ1Y3QgU21zTXNnRGF0YV9TVCAqKW1z ZzsKIAogCQkJU01TX0lOSVRfTVNHKG1zZywgTVNHX1NNU19TV0RPV05MT0FE X1RSSUdHRVJfUkVRLAogCQkJCSAgICAgc2l6ZW9mKHN0cnVjdCBTbXNNc2dI ZHJfU1QpICsKIAkJCQkgICAgIHNpemVvZih1MzIpICogNSk7CiAKIAkJCVRy aWdnZXJNc2ctPm1zZ0RhdGFbMF0gPSBmaXJtd2FyZS0+U3RhcnRBZGRyZXNz OwotCQkJCQkJLyogRW50cnkgcG9pbnQgKi8KLQkJCVRyaWdnZXJNc2ctPm1z Z0RhdGFbMV0gPSA1OyAvKiBQcmlvcml0eSAqLwotCQkJVHJpZ2dlck1zZy0+ bXNnRGF0YVsyXSA9IDB4MjAwOyAvKiBTdGFjayBzaXplICovCi0JCQlUcmln Z2VyTXNnLT5tc2dEYXRhWzNdID0gMDsgLyogUGFyYW1ldGVyICovCi0JCQlU cmlnZ2VyTXNnLT5tc2dEYXRhWzRdID0gNDsgLyogVGFzayBJRCAqLworCQkJ LyogRW50cnkgcG9pbnQgKi8KKwkJCVRyaWdnZXJNc2ctPm1zZ0RhdGFbMV0g PSA1OwkvKiBQcmlvcml0eSAqLworCQkJVHJpZ2dlck1zZy0+bXNnRGF0YVsy XSA9IDB4MjAwOwkvKiBTdGFjayBzaXplICovCisJCQlUcmlnZ2VyTXNnLT5t c2dEYXRhWzNdID0gMDsJLyogUGFyYW1ldGVyICovCisJCQlUcmlnZ2VyTXNn LT5tc2dEYXRhWzRdID0gNDsJLyogVGFzayBJRCAqLwogCiAJCQlpZiAoY29y ZWRldi0+ZGV2aWNlX2ZsYWdzICYgU01TX1JPTV9OT19SRVNQT05TRSkgewot CQkJCXJjID0gY29yZWRldi0+c2VuZHJlcXVlc3RfaGFuZGxlcigKLQkJCQkJ Y29yZWRldi0+Y29udGV4dCwgVHJpZ2dlck1zZywKLQkJCQkJVHJpZ2dlck1z Zy0+eE1zZ0hlYWRlci5tc2dMZW5ndGgpOworCQkJCXJjID0gY29yZWRldi0+ c2VuZHJlcXVlc3RfaGFuZGxlcihjb3JlZGV2LT4KKwkJCQkJCQkJICBjb250 ZXh0LAorCQkJCQkJCQkgIFRyaWdnZXJNc2csCisJCQkJCQkJCSAgVHJpZ2dl ck1zZy0+CisJCQkJCQkJCSAgeE1zZ0hlYWRlci4KKwkJCQkJCQkJICBtc2dM ZW5ndGgpOwogCQkJCW1zbGVlcCgxMDApOwogCQkJfSBlbHNlCi0JCQkJcmMg PSBzbXNjb3JlX3NlbmRyZXF1ZXN0X2FuZF93YWl0KAotCQkJCQljb3JlZGV2 LCBUcmlnZ2VyTXNnLAotCQkJCQlUcmlnZ2VyTXNnLT54TXNnSGVhZGVyLm1z Z0xlbmd0aCwKLQkJCQkJJmNvcmVkZXYtPnRyaWdnZXJfZG9uZSk7CisJCQkJ cmMgPSBzbXNjb3JlX3NlbmRyZXF1ZXN0X2FuZF93YWl0KGNvcmVkZXYsCisJ CQkJCQkJCSAgVHJpZ2dlck1zZywKKwkJCQkJCQkJICBUcmlnZ2VyTXNnLT4K KwkJCQkJCQkJICB4TXNnSGVhZGVyLgorCQkJCQkJCQkgIG1zZ0xlbmd0aCwK KwkJCQkJCQkJICAmY29yZWRldi0+CisJCQkJCQkJCSAgdHJpZ2dlcl9kb25l KTsKIAkJfSBlbHNlIHsKIAkJCVNNU19JTklUX01TRyhtc2csIE1TR19TV19S RUxPQURfRVhFQ19SRVEsCiAJCQkJICAgICBzaXplb2Yoc3RydWN0IFNtc01z Z0hkcl9TVCkpOwpAQCAtNTY0LDE0ICs1ODEsMTIgQEAKIAkJbXNsZWVwKDUw MCk7CiAJfQogCi0Jc21zX2RlYnVnKCJyYz0lZCwgcG9zdGxvYWQ9JXAgIiwg cmMsCi0JCSAgY29yZWRldi0+cG9zdGxvYWRfaGFuZGxlcik7CisJc21zX2Rl YnVnKCJyYz0lZCwgcG9zdGxvYWQ9JXAgIiwgcmMsIGNvcmVkZXYtPnBvc3Rs b2FkX2hhbmRsZXIpOwogCiAJa2ZyZWUobXNnKTsKIAogCXJldHVybiAoKHJj ID49IDApICYmIGNvcmVkZXYtPnBvc3Rsb2FkX2hhbmRsZXIpID8KLQkJY29y ZWRldi0+cG9zdGxvYWRfaGFuZGxlcihjb3JlZGV2LT5jb250ZXh0KSA6Ci0J CXJjOworCSAgICBjb3JlZGV2LT5wb3N0bG9hZF9oYW5kbGVyKGNvcmVkZXYt PmNvbnRleHQpIDogcmM7CiB9CiAKIC8qKgpAQCAtNTg5LDggKzYwNCwxMSBA QAogCQkJCQkgICBsb2FkZmlybXdhcmVfdCBsb2FkZmlybXdhcmVfaGFuZGxl cikKIHsKIAlpbnQgcmMgPSAtRU5PRU5UOworCXU4ICpmd19idWY7CisJdTMy IGZ3X2J1Zl9zaXplOworCisjaWZkZWYgUkVRVUVTVF9GSVJNV0FSRV9TVVBQ T1JURUQKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwotCXU4ICpmd19i dWZmZXI7CiAKIAlpZiAobG9hZGZpcm13YXJlX2hhbmRsZXIgPT0gTlVMTCAm JiAhKGNvcmVkZXYtPmRldmljZV9mbGFncyAmCiAJCQkJCSAgICAgIFNNU19E RVZJQ0VfRkFNSUxZMikpCkBAIC02MDEsMjcgKzYxOSwzOCBAQAogCQlzbXNf aW5mbygiZmFpbGVkIHRvIG9wZW4gXCIlc1wiIiwgZmlsZW5hbWUpOwogCQly ZXR1cm4gcmM7CiAJfQotCXNtc19pbmZvKCJyZWFkIEZXICVzLCBzaXplPSV6 ZCIsIGZpbGVuYW1lLCBmdy0+c2l6ZSk7Ci0JZndfYnVmZmVyID0ga21hbGxv YyhBTElHTihmdy0+c2l6ZSwgU01TX0FMTE9DX0FMSUdOTUVOVCksCi0JCQkg ICAgR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwotCWlmIChmd19idWZmZXIpIHsK LQkJbWVtY3B5KGZ3X2J1ZmZlciwgZnctPmRhdGEsIGZ3LT5zaXplKTsKLQot CQlyYyA9IChjb3JlZGV2LT5kZXZpY2VfZmxhZ3MgJiBTTVNfREVWSUNFX0ZB TUlMWTIpID8KLQkJICAgICAgc21zY29yZV9sb2FkX2Zpcm13YXJlX2ZhbWls eTIoY29yZWRldiwKLQkJCQkJCSAgICBmd19idWZmZXIsCi0JCQkJCQkgICAg ZnctPnNpemUpIDoKLQkJICAgICAgbG9hZGZpcm13YXJlX2hhbmRsZXIoY29y ZWRldi0+Y29udGV4dCwKLQkJCQkJICAgZndfYnVmZmVyLCBmdy0+c2l6ZSk7 Ci0KLQkJa2ZyZWUoZndfYnVmZmVyKTsKLQl9IGVsc2UgeworCXNtc19pbmZv KCJyZWFkIEZXICVzLCBzaXplPSVkIiwgZmlsZW5hbWUsIGZ3LT5zaXplKTsK Kwlmd19idWYgPSBrbWFsbG9jKEFMSUdOKGZ3LT5zaXplLCBTTVNfQUxMT0Nf QUxJR05NRU5UKSwKKwkJCSBHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7CisJaWYg KCFmd19idWYpIHsKIAkJc21zX2luZm8oImZhaWxlZCB0byBhbGxvY2F0ZSBm aXJtd2FyZSBidWZmZXIiKTsKLQkJcmMgPSAtRU5PTUVNOworCQlyZXR1cm4g LUVOT01FTTsKKwl9CisJbWVtY3B5KGZ3X2J1ZiwgZnctPmRhdGEsIGZ3LT5z aXplKTsKKwlmd19idWZfc2l6ZSA9IGZ3LT5zaXplOworI2Vsc2UKKwlpZiAo IWNvcmVkZXYtPmZ3X2J1ZikgeworCQlzbXNfaW5mbygibWlzc2luZyBmdyBm aWxlIGJ1ZmZlciIpOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CisJZndfYnVm ID0gY29yZWRldi0+ZndfYnVmOworCWZ3X2J1Zl9zaXplID0gY29yZWRldi0+ ZndfYnVmX3NpemU7CisjZW5kaWYKIAotCXJlbGVhc2VfZmlybXdhcmUoZncp OworCXJjID0gKGNvcmVkZXYtPmRldmljZV9mbGFncyAmIFNNU19ERVZJQ0Vf RkFNSUxZMikgPworCSAgICBzbXNjb3JlX2xvYWRfZmlybXdhcmVfZmFtaWx5 Mihjb3JlZGV2LAorCQkJCQkgIGZ3X2J1ZiwKKwkJCQkJICBmd19idWZfc2l6 ZSkgOgorCSAgICBsb2FkZmlybXdhcmVfaGFuZGxlcihjb3JlZGV2LT5jb250 ZXh0LCBmd19idWYsIGZ3X2J1Zl9zaXplKTsKKworCWtmcmVlKGZ3X2J1Zik7 CiAKKyNpZmRlZiBSRVFVRVNUX0ZJUk1XQVJFX1NVUFBPUlRFRAorCXJlbGVh c2VfZmlybXdhcmUoZncpOworI2Vsc2UKKwljb3JlZGV2LT5md19idWYgPSBO VUxMOworCWNvcmVkZXYtPmZ3X2J1Zl9zaXplID0gMDsKKyNlbmRpZgogCXJl dHVybiByYzsKIH0KIApAQCAtNjczLDYgKzcwMiw5IEBACiAJCQkJICBjb3Jl ZGV2LT5jb21tb25fYnVmZmVyLAogCQkJCSAgY29yZWRldi0+Y29tbW9uX2J1 ZmZlcl9waHlzKTsKIAorCWlmIChjb3JlZGV2LT5md19idWYgIT0gTlVMTCkK KwkJa2ZyZWUoY29yZWRldi0+ZndfYnVmKTsKKwogCWxpc3RfZGVsKCZjb3Jl ZGV2LT5lbnRyeSk7CiAJa2ZyZWUoY29yZWRldik7CiAKQEAgLTY4Niw3ICs3 MTgsNyBAQAogCXZvaWQgKmJ1ZmZlciA9IGttYWxsb2Moc2l6ZW9mKHN0cnVj dCBTbXNNc2dIZHJfU1QpICsgU01TX0RNQV9BTElHTk1FTlQsCiAJCQkgICAg ICAgR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwogCXN0cnVjdCBTbXNNc2dIZHJf U1QgKm1zZyA9Ci0JCShzdHJ1Y3QgU21zTXNnSGRyX1NUICopIFNNU19BTElH Tl9BRERSRVNTKGJ1ZmZlcik7CisJICAgIChzdHJ1Y3QgU21zTXNnSGRyX1NU ICopU01TX0FMSUdOX0FERFJFU1MoYnVmZmVyKTsKIAlpbnQgcmM7CiAKIAlp ZiAoIWJ1ZmZlcikKQEAgLTcwMiw5ICs3MzQsMTAgQEAKIAogCQlpZiAod2Fp dF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZjb3JlZGV2LT5yZXN1bWVfZG9u ZSwKIAkJCQkJCW1zZWNzX3RvX2ppZmZpZXMoNTAwMCkpKSB7Ci0JCQlyYyA9 IHNtc2NvcmVfc2VuZHJlcXVlc3RfYW5kX3dhaXQoCi0JCQkJY29yZWRldiwg bXNnLCBtc2ctPm1zZ0xlbmd0aCwKLQkJCQkmY29yZWRldi0+dmVyc2lvbl9l eF9kb25lKTsKKwkJCXJjID0gc21zY29yZV9zZW5kcmVxdWVzdF9hbmRfd2Fp dChjb3JlZGV2LCBtc2csCisJCQkJCQkJICBtc2ctPm1zZ0xlbmd0aCwKKwkJ CQkJCQkgICZjb3JlZGV2LT4KKwkJCQkJCQkgIHZlcnNpb25fZXhfZG9uZSk7 CiAJCQlpZiAocmMgPCAwKQogCQkJCXNtc19lcnIoIk1TR19TTVNfR0VUX1ZF UlNJT05fRVhfUkVRIGZhaWxlZCAiCiAJCQkJCSJzZWNvbmQgdHJ5LCByYyAl ZCIsIHJjKTsKQEAgLTcxOCwyMyArNzUxLDIxIEBACiB9CiAKIHN0YXRpYyBj aGFyICpzbXNjb3JlX2Z3X2xrdXBbXVtTTVNfTlVNX09GX0RFVklDRV9UWVBF U10gPSB7Ci0JLypTdGVsbGFyCQlOT1ZBIEEwCQlOb3ZhIEIwCQlWRUdBKi8K LQkvKkRWQlQqLwotCXsibm9uZSIsICJkdmJfbm92YV8xMm1oei5pbnAiLCAi ZHZiX25vdmFfMTJtaHpfYjAuaW5wIiwgIm5vbmUifSwKLQkvKkRWQkgqLwot CXsibm9uZSIsICJkdmJfbm92YV8xMm1oei5pbnAiLCAiZHZiX25vdmFfMTJt aHpfYjAuaW5wIiwgIm5vbmUifSwKLQkvKlRETUIqLwotCXsibm9uZSIsICJ0 ZG1iX25vdmFfMTJtaHouaW5wIiwgIm5vbmUiLCAibm9uZSJ9LAotCS8qREFC SVAqLwotCXsibm9uZSIsICJub25lIiwgIm5vbmUiLCAibm9uZSJ9LAotCS8q QkRBKi8KLQl7Im5vbmUiLCAiZHZiX25vdmFfMTJtaHouaW5wIiwgImR2Yl9u b3ZhXzEybWh6X2IwLmlucCIsICJub25lIn0sCi0JLypJU0RCVCovCi0JeyJu b25lIiwgImlzZGJ0X25vdmFfMTJtaHouaW5wIiwgImR2Yl9ub3ZhXzEybWh6 LmlucCIsICJub25lIn0sCi0JLypJU0RCVEJEQSovCi0JeyJub25lIiwgImlz ZGJ0X25vdmFfMTJtaHouaW5wIiwgImlzZGJ0X25vdmFfMTJtaHpfYjAuaW5w IiwgIm5vbmUifSwKLQkvKkNNTUIqLwotCXsibm9uZSIsICJub25lIiwgIm5v bmUiLCAiY21tYl92ZWdhXzEybWh6LmlucCJ9CisJLypTdGVsbGFyICAgICAg ICAgICAgICAgTk9WQSBBMCAgICAgICAgIE5vdmEgQjAgICAgICAgICBWRUdB ICovCisJIC8qRFZCVCovCisJICAgIHsibm9uZSIsICJkdmJfbm92YV8xMm1o ei5pbnAiLCAiZHZiX25vdmFfMTJtaHpfYjAuaW5wIiwgIm5vbmUifSwKKwkg LypEVkJIKi8KKwkgICAgeyJub25lIiwgImR2Yl9ub3ZhXzEybWh6LmlucCIs ICJkdmJfbm92YV8xMm1oel9iMC5pbnAiLCAibm9uZSJ9LAorCSAvKlRETUIq LworCSAgICB7Im5vbmUiLCAidGRtYl9ub3ZhXzEybWh6LmlucCIsICJ0ZG1i X25vdmFfMTJtaHpfYjAuaW5wIiwgIm5vbmUifSwKKwkgLypEQUJJUCovIHsi bm9uZSIsICJub25lIiwgIm5vbmUiLCAibm9uZSJ9LAorCSAvKkJEQSovCisJ ICAgIHsibm9uZSIsICJkdmJfbm92YV8xMm1oei5pbnAiLCAiZHZiX25vdmFf MTJtaHpfYjAuaW5wIiwgIm5vbmUifSwKKwkgLypJU0RCVCovCisJICAgIHsi bm9uZSIsICJpc2RidF9ub3ZhXzEybWh6LmlucCIsICJpc2RidF9ub3ZhXzEy bWh6X2IwLmlucCIsICJub25lIn0sCisJIC8qSVNEQlRCREEqLworCSAgICB7 Im5vbmUiLCAiaXNkYnRfbm92YV8xMm1oei5pbnAiLCAiaXNkYnRfbm92YV8x Mm1oel9iMC5pbnAiLCAibm9uZSJ9LAorCSAvKkNNTUIqLyB7Im5vbmUiLCAi bm9uZSIsICJub25lIiwgImNtbWJfdmVnYV8xMm1oei5pbnAifQogfTsKIAog c3RhdGljIGlubGluZSBjaGFyICpzbXNfZ2V0X2Z3X25hbWUoc3RydWN0IHNt c2NvcmVfZGV2aWNlX3QgKmNvcmVkZXYsCkBAIC03OTgsNyArODI5LDggQEAK IAkJCQkvKiB0cnkgYWdhaW4gd2l0aCB0aGUgZGVmYXVsdCBmaXJtd2FyZSAq LwogCQkJCWZ3X2ZpbGVuYW1lID0gc21zY29yZV9md19sa3VwW21vZGVdW3R5 cGVdOwogCQkJCXJjID0gc21zY29yZV9sb2FkX2Zpcm13YXJlX2Zyb21fZmls ZShjb3JlZGV2LAotCQkJCQkJCSAgICAgZndfZmlsZW5hbWUsIE5VTEwpOwor CQkJCQlmd19maWxlbmFtZSwKKwkJCQkJTlVMTCk7CiAKIAkJCQlpZiAocmMg PCAwKSB7CiAJCQkJCXNtc193YXJuKCJlcnJvciAlZCBsb2FkaW5nICIKQEAg LTgxNSwxNyArODQ3LDE4IEBACiAJCWJ1ZmZlciA9IGttYWxsb2Moc2l6ZW9m KHN0cnVjdCBTbXNNc2dEYXRhX1NUKSArCiAJCQkJIFNNU19ETUFfQUxJR05N RU5ULCBHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7CiAJCWlmIChidWZmZXIpIHsK LQkJCXN0cnVjdCBTbXNNc2dEYXRhX1NUICptc2cgPQotCQkJCShzdHJ1Y3Qg U21zTXNnRGF0YV9TVCAqKQotCQkJCQlTTVNfQUxJR05fQUREUkVTUyhidWZm ZXIpOworCQkJc3RydWN0IFNtc01zZ0RhdGFfU1QgKm1zZyA9IChzdHJ1Y3Qg U21zTXNnRGF0YV9TVCAqKQorCQkJICAgIFNNU19BTElHTl9BRERSRVNTKGJ1 ZmZlcik7CiAKIAkJCVNNU19JTklUX01TRygmbXNnLT54TXNnSGVhZGVyLCBN U0dfU01TX0lOSVRfREVWSUNFX1JFUSwKIAkJCQkgICAgIHNpemVvZihzdHJ1 Y3QgU21zTXNnRGF0YV9TVCkpOwogCQkJbXNnLT5tc2dEYXRhWzBdID0gbW9k ZTsKIAotCQkJcmMgPSBzbXNjb3JlX3NlbmRyZXF1ZXN0X2FuZF93YWl0KAot CQkJCWNvcmVkZXYsIG1zZywgbXNnLT54TXNnSGVhZGVyLm1zZ0xlbmd0aCwK LQkJCQkmY29yZWRldi0+aW5pdF9kZXZpY2VfZG9uZSk7CisJCQlyYyA9IHNt c2NvcmVfc2VuZHJlcXVlc3RfYW5kX3dhaXQoY29yZWRldiwgbXNnLAorCQkJ CQkJCSAgbXNnLT54TXNnSGVhZGVyLgorCQkJCQkJCSAgbXNnTGVuZ3RoLAor CQkJCQkJCSAgJmNvcmVkZXYtPgorCQkJCQkJCSAgaW5pdF9kZXZpY2VfZG9u ZSk7CiAKIAkJCWtmcmVlKGJ1ZmZlcik7CiAJCX0gZWxzZSB7CkBAIC04NjAs NiArODkzLDc2IEBACiB9CiAKIC8qKgorICogY2FsbHMgZGV2aWNlIGhhbmRs ZXIgdG8gZ2V0IGZ3IGZpbGUgbmFtZQorICoKKyAqIEBwYXJhbSBjb3JlZGV2 IHBvaW50ZXIgdG8gYSBjb3JlZGV2IG9iamVjdCByZXR1cm5lZCBieQorICog ICAgICAgICAgICAgICAgc21zY29yZV9yZWdpc3Rlcl9kZXZpY2UKKyAqIEBw YXJhbSBmaWxlbmFtZSBwb2ludGVyIHRvIHVzZXIgYnVmZmVyIHRvIGZpbGwg dGhlIGZpbGUgbmFtZQorICoKKyAqIEByZXR1cm4gMCBvbiBzdWNjZXNzLCA8 MCBvbiBlcnJvci4KKyAqLworaW50IHNtc2NvcmVfZ2V0X2Z3X2ZpbGVuYW1l KHN0cnVjdCBzbXNjb3JlX2RldmljZV90ICpjb3JlZGV2LCBpbnQgbW9kZSwK KwkJCSAgICBjaGFyICpmaWxlbmFtZSkKK3sKKwlpbnQgcmMgPSAwOworCWVu dW0gc21zX2RldmljZV90eXBlX3N0IHR5cGU7CisJY2hhciB0bXBuYW1lWzIw MF07CisKKwl0eXBlID0gc21zY29yZV9yZWdpc3RyeV9nZXR0eXBlKGNvcmVk ZXYtPmRldnBhdGgpOworCisjaWZkZWYgUkVRVUVTVF9GSVJNV0FSRV9TVVBQ T1JURUQKKwkvKiBkcml2ZXIgbm90IG5lZWQgZmlsZSBzeXN0ZW0gc2Vydmlj ZXMgKi8KKwl0bXBuYW1lWzBdID0gJ1wwJzsKKyNlbHNlCisJc3ByaW50Zih0 bXBuYW1lLCAiJXMvJXMiLCBERUZBVUxUX0ZXX0ZJTEVfUEFUSCwKKwkJc21z Y29yZV9md19sa3VwW21vZGVdW3R5cGVdKTsKKyNlbmRpZgorCWlmIChjb3B5 X3RvX3VzZXIoZmlsZW5hbWUsIHRtcG5hbWUsIHN0cmxlbih0bXBuYW1lKSAr IDEpKSB7CisJCXNtc19lcnIoIkZhaWxlZCBjb3B5IGZpbGUgcGF0aCB0byB1 c2VyIGJ1ZmZlclxuIik7CisJCXJldHVybiAtRUZBVUxUOworCX0KKwlyZXR1 cm4gcmM7Cit9CisKKy8qKgorICogY2FsbHMgZGV2aWNlIGhhbmRsZXIgdG8g a2VlcCBmdyBidWZmIGZvciBsYXRlciB1c2UKKyAqCisgKiBAcGFyYW0gY29y ZWRldiBwb2ludGVyIHRvIGEgY29yZWRldiBvYmplY3QgcmV0dXJuZWQgYnkK KyAqICAgICAgICAgICAgICAgIHNtc2NvcmVfcmVnaXN0ZXJfZGV2aWNlCisg KiBAcGFyYW0gdWZ3YnVmICBwb2ludGVyIHRvIHVzZXIgZncgYnVmZmVyCisg KiBAcGFyYW0gc2l6ZSAgICBzaXplIGluIGJ5dGVzIG9mIGJ1ZmZlcgorICoK KyAqIEByZXR1cm4gMCBvbiBzdWNjZXNzLCA8MCBvbiBlcnJvci4KKyAqLwor aW50IHNtc2NvcmVfc2VuZF9md19maWxlKHN0cnVjdCBzbXNjb3JlX2Rldmlj ZV90ICpjb3JlZGV2LCB1OCAqdWZ3YnVmLAorCQkJIGludCBzaXplKQorewor CWludCByYyA9IDA7CisKKwkvKiBmcmVlIG9sZCBidWZmZXIgKi8KKwlpZiAo Y29yZWRldi0+ZndfYnVmICE9IE5VTEwpIHsKKwkJa2ZyZWUoY29yZWRldi0+ ZndfYnVmKTsKKwkJY29yZWRldi0+ZndfYnVmID0gTlVMTDsKKwl9CisKKwlj b3JlZGV2LT5md19idWYgPSBrbWFsbG9jKEFMSUdOKHNpemUsIFNNU19BTExP Q19BTElHTk1FTlQpLAorCQkJCSAgR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwor CWlmICghY29yZWRldi0+ZndfYnVmKSB7CisJCXNtc19lcnIoIkZhaWxlZCBh bGxvY2F0ZSBGVyBidWZmZXIgbWVtb3J5XG4iKTsKKwkJcmV0dXJuIC1FRkFV TFQ7CisJfQorCisJaWYgKGNvcHlfZnJvbV91c2VyKGNvcmVkZXYtPmZ3X2J1 ZiwgdWZ3YnVmLCBzaXplKSkgeworCQlzbXNfZXJyKCJGYWlsZWQgY29weSBG VyBmcm9tIHVzZXIgYnVmZmVyXG4iKTsKKwkJa2ZyZWUoY29yZWRldi0+Zndf YnVmKTsKKwkJcmV0dXJuIC1FRkFVTFQ7CisJfQorCWNvcmVkZXYtPmZ3X2J1 Zl9zaXplID0gc2l6ZTsKKworCXJldHVybiByYzsKK30KKworLyoqCiAgKiBj YWxscyBkZXZpY2UgaGFuZGxlciB0byBnZXQgY3VycmVudCBtb2RlIG9mIG9w ZXJhdGlvbgogICoKICAqIEBwYXJhbSBjb3JlZGV2IHBvaW50ZXIgdG8gYSBj b3JlZGV2IG9iamVjdCByZXR1cm5lZCBieQpAQCAtODkxLDIwICs5OTQsMTkg QEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBsaXN0X2hlYWQg KmZpcnN0aWQsICpuZXh0aWQ7CiAKLQogCXNwaW5fbG9ja19pcnFzYXZlKCZj b3JlZGV2LT5jbGllbnRzbG9jaywgZmxhZ3MpOwogCWZpcnN0ID0gJmNvcmVk ZXYtPmNsaWVudHM7Ci0JZm9yIChuZXh0ID0gZmlyc3QtPm5leHQ7Ci0JICAg ICAobmV4dCAhPSBmaXJzdCkgJiYgIWNsaWVudDsKLQkgICAgIG5leHQgPSBu ZXh0LT5uZXh0KSB7CisJZm9yIChuZXh0ID0gZmlyc3QtPm5leHQ7IChuZXh0 ICE9IGZpcnN0KQorCQkmJiAhY2xpZW50OyBuZXh0ID0gbmV4dC0+bmV4dCkg ewogCQlmaXJzdGlkID0gJigoc3RydWN0IHNtc2NvcmVfY2xpZW50X3QgKilu ZXh0KS0+aWRsaXN0OwogCQlmb3IgKG5leHRpZCA9IGZpcnN0aWQtPm5leHQ7 Ci0JCSAgICAgbmV4dGlkICE9IGZpcnN0aWQ7Ci0JCSAgICAgbmV4dGlkID0g bmV4dGlkLT5uZXh0KSB7CisJCSAgICAgbmV4dGlkICE9IGZpcnN0aWQ7IG5l eHRpZCA9IG5leHRpZC0+bmV4dCkgewogCQkJaWYgKCgoKHN0cnVjdCBzbXNj b3JlX2lkbGlzdF90ICopbmV4dGlkKS0+aWQgPT0gaWQpICYmCi0JCQkgICAg KCgoc3RydWN0IHNtc2NvcmVfaWRsaXN0X3QgKiluZXh0aWQpLT5kYXRhX3R5 cGUgPT0gZGF0YV90eXBlIHx8Ci0JCQkgICAgKCgoc3RydWN0IHNtc2NvcmVf aWRsaXN0X3QgKiluZXh0aWQpLT5kYXRhX3R5cGUgPT0gMCkpKSB7Ci0JCQkJ Y2xpZW50ID0gKHN0cnVjdCBzbXNjb3JlX2NsaWVudF90ICopIG5leHQ7CisJ CQkgICAgKCgoc3RydWN0IHNtc2NvcmVfaWRsaXN0X3QgKiluZXh0aWQpLT5k YXRhX3R5cGUgPT0KKwkJCSAgICAgZGF0YV90eXBlCisJCQkgICAgIHx8ICgo KHN0cnVjdCBzbXNjb3JlX2lkbGlzdF90ICopbmV4dGlkKS0+CisJCQkJIGRh dGFfdHlwZSA9PSAwKSkpIHsKKwkJCQljbGllbnQgPSAoc3RydWN0IHNtc2Nv cmVfY2xpZW50X3QgKiluZXh0OwogCQkJCWJyZWFrOwogCQkJfQogCQl9CkBA IC05MjYsMTQgKzEwMjgsMTQgQEAKIAkJCXN0cnVjdCBzbXNjb3JlX2J1ZmZl cl90ICpjYikKIHsKIAlzdHJ1Y3QgU21zTXNnSGRyX1NUICpwaGRyID0KLQkJ KHN0cnVjdCBTbXNNc2dIZHJfU1QgKikoKHU4ICopIGNiLT5wICsgY2ItPm9m ZnNldCk7CisJICAgIChzdHJ1Y3QgU21zTXNnSGRyX1NUICopKCh1OCAqKSBj Yi0+cCArIGNiLT5vZmZzZXQpOwogCXN0cnVjdCBzbXNjb3JlX2NsaWVudF90 ICpjbGllbnQgPQotCQlzbXNjb3JlX2ZpbmRfY2xpZW50KGNvcmVkZXYsIHBo ZHItPm1zZ1R5cGUsIHBoZHItPm1zZ0RzdElkKTsKKwkgICAgc21zY29yZV9m aW5kX2NsaWVudChjb3JlZGV2LCBwaGRyLT5tc2dUeXBlLCBwaGRyLT5tc2dE c3RJZCk7CiAJaW50IHJjID0gLUVCVVNZOwogCiAjaWYgMQotCXN0YXRpYyB1 bnNpZ25lZCBsb25nIGxhc3Rfc2FtcGxlX3RpbWU7IC8qID0gMDsgKi8KLQlz dGF0aWMgaW50IGRhdGFfdG90YWw7IC8qID0gMDsgKi8KKwlzdGF0aWMgdW5z aWduZWQgbG9uZyBsYXN0X3NhbXBsZV90aW1lOwkvKiA9IDA7ICovCisJc3Rh dGljIGludCBkYXRhX3RvdGFsOwkvKiA9IDA7ICovCiAJdW5zaWduZWQgbG9u ZyB0aW1lX25vdyA9IGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyk7CiAKIAlp ZiAoIWxhc3Rfc2FtcGxlX3RpbWUpCkBAIC05NTIsMzEgKzEwNTQsMzAgQEAK ICNlbmRpZgogCS8qIElmIG5vIGNsaWVudCByZWdpc3RlcmVkIGZvciB0eXBl ICYgaWQsCiAJICogY2hlY2sgZm9yIGNvbnRyb2wgY2xpZW50IHdoZXJlIHR5 cGUgaXMgbm90IHJlZ2lzdGVyZWQgKi8KLSNpZiAwCi0JaWYgKCFjbGllbnQp Ci0JCWNsaWVudCA9IHNtc2NvcmVfZmluZF9jbGllbnQoY29yZWRldiwgMCwg cGhkci0+bXNnRHN0SWQpOwotI2VuZGlmCiAJaWYgKGNsaWVudCkKIAkJcmMg PSBjbGllbnQtPm9ucmVzcG9uc2VfaGFuZGxlcihjbGllbnQtPmNvbnRleHQs IGNiKTsKIAogCWlmIChyYyA8IDApIHsKIAkJc3dpdGNoIChwaGRyLT5tc2dU eXBlKSB7CiAJCWNhc2UgTVNHX1NNU19HRVRfVkVSU0lPTl9FWF9SRVM6Ci0J CXsKLQkJCXN0cnVjdCBTbXNWZXJzaW9uUmVzX1NUICp2ZXIgPQotCQkJCShz dHJ1Y3QgU21zVmVyc2lvblJlc19TVCAqKSBwaGRyOwotCQkJc21zX2RlYnVn KCJNU0dfU01TX0dFVF9WRVJTSU9OX0VYX1JFUyAiCi0JCQkJICAiaWQgJWQg cHJvdHMgMHgleCB2ZXIgJWQuJWQiLAotCQkJCSAgdmVyLT5GaXJtd2FyZUlk LCB2ZXItPlN1cHBvcnRlZFByb3RvY29scywKLQkJCQkgIHZlci0+Um9tVmVy c2lvbk1ham9yLCB2ZXItPlJvbVZlcnNpb25NaW5vcik7Ci0KLQkJCWNvcmVk ZXYtPm1vZGUgPSB2ZXItPkZpcm13YXJlSWQgPT0gMjU1ID8KLQkJCQlERVZJ Q0VfTU9ERV9OT05FIDogdmVyLT5GaXJtd2FyZUlkOwotCQkJY29yZWRldi0+ bW9kZXNfc3VwcG9ydGVkID0gdmVyLT5TdXBwb3J0ZWRQcm90b2NvbHM7CisJ CQl7CisJCQkJc3RydWN0IFNtc1ZlcnNpb25SZXNfU1QgKnZlciA9CisJCQkJ ICAgIChzdHJ1Y3QgU21zVmVyc2lvblJlc19TVCAqKXBoZHI7CisJCQkJc21z X2RlYnVnKCJNU0dfU01TX0dFVF9WRVJTSU9OX0VYX1JFUyAiCisJCQkJCSAg ImlkICVkIHByb3RzIDB4JXggdmVyICVkLiVkIiwKKwkJCQkJICB2ZXItPkZp cm13YXJlSWQsCisJCQkJCSAgdmVyLT5TdXBwb3J0ZWRQcm90b2NvbHMsCisJ CQkJCSAgdmVyLT5Sb21WZXJzaW9uTWFqb3IsCisJCQkJCSAgdmVyLT5Sb21W ZXJzaW9uTWlub3IpOworCisJCQkJY29yZWRldi0+bW9kZSA9IHZlci0+Rmly bXdhcmVJZCA9PSAyNTUgPworCQkJCSAgICBERVZJQ0VfTU9ERV9OT05FIDog dmVyLT5GaXJtd2FyZUlkOworCQkJCWNvcmVkZXYtPm1vZGVzX3N1cHBvcnRl ZCA9CisJCQkJICAgIHZlci0+U3VwcG9ydGVkUHJvdG9jb2xzOwogCi0JCQlj b21wbGV0ZSgmY29yZWRldi0+dmVyc2lvbl9leF9kb25lKTsKLQkJCWJyZWFr OwotCQl9CisJCQkJY29tcGxldGUoJmNvcmVkZXYtPnZlcnNpb25fZXhfZG9u ZSk7CisJCQkJYnJlYWs7CisJCQl9CiAJCWNhc2UgTVNHX1NNU19JTklUX0RF VklDRV9SRVM6CiAJCQlzbXNfZGVidWcoIk1TR19TTVNfSU5JVF9ERVZJQ0Vf UkVTIik7CiAJCQljb21wbGV0ZSgmY29yZWRldi0+aW5pdF9kZXZpY2VfZG9u ZSk7CkBAIC0xMDI2LDcgKzExMjcsNyBAQAogCXNwaW5fbG9ja19pcnFzYXZl KCZjb3JlZGV2LT5idWZmZXJzbG9jaywgZmxhZ3MpOwogCiAJaWYgKCFsaXN0 X2VtcHR5KCZjb3JlZGV2LT5idWZmZXJzKSkgewotCQljYiA9IChzdHJ1Y3Qg c21zY29yZV9idWZmZXJfdCAqKSBjb3JlZGV2LT5idWZmZXJzLm5leHQ7CisJ CWNiID0gKHN0cnVjdCBzbXNjb3JlX2J1ZmZlcl90ICopY29yZWRldi0+YnVm ZmVycy5uZXh0OwogCQlsaXN0X2RlbCgmY2ItPmVudHJ5KTsKIAl9CiAKQEAg LTExMDAsOCArMTIwMSw4IEBACiB7CiAJc3RydWN0IHNtc2NvcmVfY2xpZW50 X3QgKm5ld2NsaWVudDsKIAkvKiBjaGVjayB0aGF0IG5vIG90aGVyIGNoYW5u ZWwgd2l0aCBzYW1lIHBhcmFtZXRlcnMgZXhpc3RzICovCi0JaWYgKHNtc2Nv cmVfZmluZF9jbGllbnQoY29yZWRldiwgcGFyYW1zLT5kYXRhX3R5cGUsCi0J CQkJcGFyYW1zLT5pbml0aWFsX2lkKSkgeworCWlmIChzbXNjb3JlX2ZpbmRf Y2xpZW50KGNvcmVkZXYsCisJCXBhcmFtcy0+ZGF0YV90eXBlLCBwYXJhbXMt PmluaXRpYWxfaWQpKSB7CiAJCXNtc19lcnIoIkNsaWVudCBhbHJlYWR5IGV4 aXN0LiIpOwogCQlyZXR1cm4gLUVFWElTVDsKIAl9CkBAIC0xMTQyLDEwICsx MjQzLDkgQEAKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZjb3JlZGV2LT5jbGll bnRzbG9jaywgZmxhZ3MpOwogCi0KIAl3aGlsZSAoIWxpc3RfZW1wdHkoJmNs aWVudC0+aWRsaXN0KSkgewogCQlzdHJ1Y3Qgc21zY29yZV9pZGxpc3RfdCAq aWRlbnRyeSA9Ci0JCQkoc3RydWN0IHNtc2NvcmVfaWRsaXN0X3QgKikgY2xp ZW50LT5pZGxpc3QubmV4dDsKKwkJICAgIChzdHJ1Y3Qgc21zY29yZV9pZGxp c3RfdCAqKWNsaWVudC0+aWRsaXN0Lm5leHQ7CiAJCWxpc3RfZGVsKCZpZGVu dHJ5LT5lbnRyeSk7CiAJCWtmcmVlKGlkZW50cnkpOwogCX0KQEAgLTExNzMs NyArMTI3Myw3IEBACiAJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUp CiB7CiAJc3RydWN0IHNtc2NvcmVfZGV2aWNlX3QgKmNvcmVkZXY7Ci0Jc3Ry dWN0IFNtc01zZ0hkcl9TVCAqcGhkciA9IChzdHJ1Y3QgU21zTXNnSGRyX1NU ICopIGJ1ZmZlcjsKKwlzdHJ1Y3QgU21zTXNnSGRyX1NUICpwaGRyID0gKHN0 cnVjdCBTbXNNc2dIZHJfU1QgKilidWZmZXI7CiAJaW50IHJjOwogCiAJaWYg KGNsaWVudCA9PSBOVUxMKSB7CkBAIC0xMTk3LDcgKzEyOTcsNyBAQAogCXJl dHVybiBjb3JlZGV2LT5zZW5kcmVxdWVzdF9oYW5kbGVyKGNvcmVkZXYtPmNv bnRleHQsIGJ1ZmZlciwgc2l6ZSk7CiB9CiAKLSNpZiAwCisjaWZkZWYgU01T X0hPU1RMSUJfU1VCU1lTCiAvKioKICAqIHJldHVybiB0aGUgc2l6ZSBvZiBs YXJnZSAoY29tbW9uKSBidWZmZXIKICAqCkBAIC0xMjE4LDIyICsxMzE4LDIy IEBACiAgKgogICogQHJldHVybiAwIG9uIHN1Y2Nlc3MsIDwwIG9uIGVycm9y LgogICovCi1zdGF0aWMgaW50IHNtc2NvcmVfbWFwX2NvbW1vbl9idWZmZXIo c3RydWN0IHNtc2NvcmVfZGV2aWNlX3QgKmNvcmVkZXYsCi0JCQkJICAgICBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK2ludCBzbXNjb3JlX21hcF9j b21tb25fYnVmZmVyKHN0cnVjdCBzbXNjb3JlX2RldmljZV90ICpjb3JlZGV2 LAorCQkJICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiB7CiAJ dW5zaWduZWQgbG9uZyBlbmQgPSB2bWEtPnZtX2VuZCwKLQkJICAgICAgc3Rh cnQgPSB2bWEtPnZtX3N0YXJ0LAotCQkgICAgICBzaXplID0gUEFHRV9BTElH Tihjb3JlZGV2LT5jb21tb25fYnVmZmVyX3NpemUpOworCSAgICBzdGFydCA9 IHZtYS0+dm1fc3RhcnQsCisJICAgIHNpemUgPSBQQUdFX0FMSUdOKGNvcmVk ZXYtPmNvbW1vbl9idWZmZXJfc2l6ZSk7CiAKIAlpZiAoISh2bWEtPnZtX2Zs YWdzICYgKFZNX1JFQUQgfCBWTV9TSEFSRUQpKSB8fAotCSAgICAgKHZtYS0+ dm1fZmxhZ3MgJiBWTV9XUklURSkpIHsKKwkgICAgKHZtYS0+dm1fZmxhZ3Mg JiBWTV9XUklURSkpIHsKIAkJc21zX2VycigiaW52YWxpZCB2bSBmbGFncyIp OwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAlpZiAoKGVuZCAtIHN0YXJ0 KSAhPSBzaXplKSB7CiAJCXNtc19lcnIoImludmFsaWQgc2l6ZSAlZCBleHBl Y3RlZCAlZCIsCi0JCQkgKGludCkoZW5kIC0gc3RhcnQpLCAoaW50KSBzaXpl KTsKKwkJCShpbnQpKGVuZCAtIHN0YXJ0KSwgKGludClzaXplKTsKIAkJcmV0 dXJuIC1FSU5WQUw7CiAJfQogCkBAIC0xMjQ2LDcgKzEzNDYsNyBAQAogCiAJ cmV0dXJuIDA7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBTTVNfSE9TVExJQl9T VUJTWVMgKi8KIAogc3RhdGljIGludCBfX2luaXQgc21zY29yZV9tb2R1bGVf aW5pdCh2b2lkKQogewpAQCAtMTI1OSwyNSArMTM1OSwxMjUgQEAKIAlJTklU X0xJU1RfSEVBRCgmZ19zbXNjb3JlX3JlZ2lzdHJ5KTsKIAlrbXV0ZXhfaW5p dCgmZ19zbXNjb3JlX3JlZ2lzdHJ5bG9jayk7CiAKKwkvKiBSZWdpc3RlciBz dWIgc3lzdGVtIGFkYXB0ZXIgb2JqZWN0cyAqLworCisjaWZkZWYgU01TX05F VF9TVUJTWVMKKwkvKiBORVQgUmVnaXN0ZXIgKi8KKwlyYyA9IHNtc25ldF9y ZWdpc3RlcigpOworCWlmIChyYykgeworCQlzbXNfZXJyKCJFcnJvciByZWdp c3RlcmluZyBTaWFubydzIG5ldHdvcmsgY2xpZW50LlxuIik7CisJCWdvdG8g c21zbmV0X2Vycm9yOworCX0KKyNlbmRpZgorCisjaWZkZWYgU01TX0hPU1RM SUJfU1VCU1lTCisJLyogQ2hhciBpbnRlcmZhY2UgUmVnaXN0ZXIgKi8KKwly YyA9IHNtc2NoYXJfcmVnaXN0ZXIoKTsKKwlpZiAocmMpIHsKKwkJc21zX2Vy cigiRXJyb3IgcmVnaXN0ZXJpbmcgU2lhbm8ncyBjaGFyIGRldmljZSBjbGll bnQuXG4iKTsKKwkJZ290byBzbXNjaGFyX2Vycm9yOworCX0KKyNlbmRpZgor CisjaWZkZWYgU01TX0RWQjNfU1VCU1lTCisJLyogRFZCIHYuMyBSZWdpc3Rl ciAqLworCXJjID0gc21zZHZiX3JlZ2lzdGVyKCk7CisJaWYgKHJjKSB7CisJ CXNtc19lcnIoIkVycm9yIHJlZ2lzdGVyaW5nIERWQiBjbGllbnQuXG4iKTsK KwkJZ290byBzbXNkdmJfZXJyb3I7CisJfQorI2VuZGlmCisKKwkvKiBSZWdp c3RlciBpbnRlcmZhY2VzIG9iamVjdHMgKi8KKworI2lmZGVmIFNNU19VU0Jf RFJWCiAJLyogVVNCIFJlZ2lzdGVyICovCiAJcmMgPSBzbXN1c2JfcmVnaXN0 ZXIoKTsKKwlpZiAocmMpIHsKKwkJc21zX2VycigiRXJyb3IgcmVnaXN0ZXJp bmcgVVNCIGJ1cyBkcml2ZXIuXG4iKTsKKwkJZ290byBzbXNfYnVzX2Rydl9l cnJvcjsKKwl9CisjZW5kaWYKIAotCS8qIERWQiBSZWdpc3RlciAqLwotCXJj ID0gc21zZHZiX3JlZ2lzdGVyKCk7CisjaWZkZWYgU01TX1NESU9fRFJWCisJ LyogU0RJTyBSZWdpc3RlciAqLworCXJjID0gc21zc2Rpb19yZWdpc3Rlcigp OworCWlmIChyYykgeworCQlzbXNfZXJyKCJFcnJvciByZWdpc3RlcmluZyBT RElPIGJ1cyBkcml2ZXIuXG4iKTsKKwkJZ290byBzbXNfYnVzX2Rydl9lcnJv cjsKKwl9CisjZW5kaWYKKworI2lmZGVmIFNNU19TUElfUFhBMzEwX0RSVgor CS8qIEludGVsIFBYQTMxMCBTUEkgUmVnaXN0ZXIgKi8KKwlyYyA9IHNtc3Nw aV9yZWdpc3RlcigpOworCWlmIChyYykgeworCQlzbXNfZXJyKCJFcnJvciBy ZWdpc3RlcmluZyBJbnRlbCBQWEEzMTAgU1BJIGJ1cyBkcml2ZXIuXG4iKTsK KwkJZ290byBzbXNfYnVzX2Rydl9lcnJvcjsKKwl9CisjZW5kaWYKKworCXJl dHVybiByYzsKKworc21zX2J1c19kcnZfZXJyb3I6CisjaWZkZWYgU01TX0RW QjNfU1VCU1lTCisJc21zZHZiX3VucmVnaXN0ZXIoKTsKK3Ntc2R2Yl9lcnJv cjoKKyNlbmRpZgorCisjaWZkZWYgU01TX0hPU1RMSUJfU1VCU1lTCisJc21z Y2hhcl91bnJlZ2lzdGVyKCk7CitzbXNjaGFyX2Vycm9yOgorI2VuZGlmCisK KyNpZmRlZiBTTVNfTkVUX1NVQlNZUworCXNtc25ldF91bnJlZ2lzdGVyKCk7 CitzbXNuZXRfZXJyb3I6CisjZW5kaWYKIAotCXNtc19kZWJ1ZygicmMgJWQi LCByYyk7CisJc21zX2VycigicmMgJWQiLCByYyk7CisJcHJpbnRrKEtFUk5f SU5GTyAiJXMsIHJjICVkXG4iLCBfX2Z1bmNfXywgcmMpOwogCiAJcmV0dXJu IHJjOwogfQogCiBzdGF0aWMgdm9pZCBfX2V4aXQgc21zY29yZV9tb2R1bGVf ZXhpdCh2b2lkKQogeworI2lmZGVmIFNNU19ORVRfU1VCU1lTCisJLyogTmV0 IFVucmVnaXN0ZXIgKi8KKwlzbXNuZXRfdW5yZWdpc3RlcigpOworI2VuZGlm CisKKyNpZmRlZiBTTVNfSE9TVExJQl9TVUJTWVMKKwkvKiBDaGFyIGludGVy ZmFjZSBVbnJlZ2lzdGVyICovCisJc21zY2hhcl91bnJlZ2lzdGVyKCk7Cisj ZW5kaWYKKworI2lmZGVmIFNNU19EVkIzX1NVQlNZUworCS8qIERWQiB2LjMg dW5yZWdpc3RlciAqLworCXNtc2R2Yl91bnJlZ2lzdGVyKCk7CisjZW5kaWYK KworCS8qIFVuZWdpc3RlciBpbnRlcmZhY2VzIG9iamVjdHMgKi8KKyNpZmRl ZiBTTVNfVVNCX0RSVgorCS8qIFVTQiB1bnJlZ2lzdGVyICovCisJc21zdXNi X3VucmVnaXN0ZXIoKTsKKyNlbmRpZgorCisjaWZkZWYgU01TX1NESU9fRFJW CisJLyogU0RJTyB1bmVnaXN0ZXIgKi8KKwlzbXNzZGlvX3VucmVnaXN0ZXIo KTsKKyNlbmRpZgorI2lmZGVmIFNNU19TUElfUFhBMzEwX0RSVgorCS8qIElu dGVsIFBYQTMxMCBTUEkgdW5lZ2lzdGVyICovCisJc21zc3BpX3VucmVnaXN0 ZXIoKTsKKyNlbmRpZgogCiAJa211dGV4X2xvY2soJmdfc21zY29yZV9kZXZp Y2VzbG9jayk7CiAJd2hpbGUgKCFsaXN0X2VtcHR5KCZnX3Ntc2NvcmVfbm90 aWZ5ZWVzKSkgewogCQlzdHJ1Y3Qgc21zY29yZV9kZXZpY2Vfbm90aWZ5ZWVf dCAqbm90aWZ5ZWUgPQotCQkJKHN0cnVjdCBzbXNjb3JlX2RldmljZV9ub3Rp ZnllZV90ICopCi0JCQkJZ19zbXNjb3JlX25vdGlmeWVlcy5uZXh0OworCQkg ICAgKHN0cnVjdCBzbXNjb3JlX2RldmljZV9ub3RpZnllZV90ICopCisJCSAg ICBnX3Ntc2NvcmVfbm90aWZ5ZWVzLm5leHQ7CiAKIAkJbGlzdF9kZWwoJm5v dGlmeWVlLT5lbnRyeSk7CiAJCWtmcmVlKG5vdGlmeWVlKTsKQEAgLTEyODcs MjYgKzE0ODcsMjAgQEAKIAlrbXV0ZXhfbG9jaygmZ19zbXNjb3JlX3JlZ2lz dHJ5bG9jayk7CiAJd2hpbGUgKCFsaXN0X2VtcHR5KCZnX3Ntc2NvcmVfcmVn aXN0cnkpKSB7CiAJCXN0cnVjdCBzbXNjb3JlX3JlZ2lzdHJ5X2VudHJ5X3Qg KmVudHJ5ID0KLQkJCShzdHJ1Y3Qgc21zY29yZV9yZWdpc3RyeV9lbnRyeV90 ICopCi0JCQkJZ19zbXNjb3JlX3JlZ2lzdHJ5Lm5leHQ7CisJCSAgICAoc3Ry dWN0IHNtc2NvcmVfcmVnaXN0cnlfZW50cnlfdCAqKQorCQkgICAgZ19zbXNj b3JlX3JlZ2lzdHJ5Lm5leHQ7CiAKIAkJbGlzdF9kZWwoJmVudHJ5LT5lbnRy eSk7CiAJCWtmcmVlKGVudHJ5KTsKIAl9CiAJa211dGV4X3VubG9jaygmZ19z bXNjb3JlX3JlZ2lzdHJ5bG9jayk7CiAKLQkvKiBEVkIgVW5SZWdpc3RlciAq LwotCXNtc2R2Yl91bnJlZ2lzdGVyKCk7Ci0KLQkvKiBVbnJlZ2lzdGVyIFVT QiAqLwotCXNtc3VzYl91bnJlZ2lzdGVyKCk7Ci0KIAlzbXNfZGVidWcoIiIp OwogfQogCiBtb2R1bGVfaW5pdChzbXNjb3JlX21vZHVsZV9pbml0KTsKIG1v ZHVsZV9leGl0KHNtc2NvcmVfbW9kdWxlX2V4aXQpOwogCi1NT0RVTEVfREVT Q1JJUFRJT04oIkRyaXZlciBmb3IgdGhlIFNpYW5vIFNNUzFYWFggVVNCIGRv bmdsZSIpOwotTU9EVUxFX0FVVEhPUigiU2lhbm8gTW9iaWxlIFNpbGljb24s LCwgKGRvcm9uY0BzaWFuby1tcy5jb20pIik7CitNT0RVTEVfREVTQ1JJUFRJ T04oIlNpYW5vIE1EVFYgQ29yZSBtb2R1bGUiKTsKK01PRFVMRV9BVVRIT1Io IlNpYW5vIE1vYmlsZSBTaWxpY29uLCBJbmMuICh1cmlzQHNpYW5vLW1zLmNv bSkiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtdU5yIHY0bC1k dmItYzVmOTc2Y2FiMDExL2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL3NpYW5v L3Ntc2NvcmVhcGkuaCB2NGwtZHZiLWM1Zjk3NmNhYjAxMV8wMDAzL2xpbnV4 L2RyaXZlcnMvbWVkaWEvZHZiL3NpYW5vL3Ntc2NvcmVhcGkuaAotLS0gdjRs LWR2Yi1jNWY5NzZjYWIwMTEvbGludXgvZHJpdmVycy9tZWRpYS9kdmIvc2lh bm8vc21zY29yZWFwaS5oCTIwMDgtMTEtMTYgMTU6NDA6MjEuMDAwMDAwMDAw ICswMjAwCisrKyB2NGwtZHZiLWM1Zjk3NmNhYjAxMV8wMDAzL2xpbnV4L2Ry aXZlcnMvbWVkaWEvZHZiL3NpYW5vL3Ntc2NvcmVhcGkuaAkyMDA4LTExLTE5 IDEwOjI5OjUwLjAwMDAwMDAwMCArMDIwMApAQCAtMSwyNiArMSwyNiBAQAot LyoKLSAqICBEcml2ZXIgZm9yIHRoZSBTaWFubyBTTVMxeHh4IFVTQiBkb25n bGUKLSAqCi0gKiAgYXV0aG9yOiBBbmF0b2x5IEdyZWVuYmxhdAotICoKLSAq ICBDb3B5cmlnaHQgKGMpLCAyMDA1LTIwMDggU2lhbm8gTW9iaWxlIFNpbGlj b24sIEluYy4KLSAqCi0gKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAq ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOwotICoKLSAqICBTb2Z0d2FyZSBk aXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBv biBhbiAiQVMgSVMiCi0gKiAgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKgotICog IFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUg RnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNz IEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgotICovCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgogCi0jaWZuZGVmIF9fc21zY29yZWFwaV9oX18KLSNk ZWZpbmUgX19zbXNjb3JlYXBpX2hfXworU2lhbm8gTW9iaWxlIFNpbGljb24s IEluYy4KK01EVFYgcmVjZWl2ZXIga2VybmVsIG1vZHVsZXMuCitDb3B5cmln aHQgKEMpIDIwMDYtMjAwOCwgVXJpIFNoa29sbmlrCisKK1RoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CitpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQordGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZSwgb3IKKyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisKKyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKK2J1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCitNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCitHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCitZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCisKKyNpZm5kZWYgX19TTVNfQ09SRV9BUElfSF9fCisjZGVmaW5l IF9fU01TX0NPUkVfQVBJX0hfXwogCiAjaW5jbHVkZSA8bGludXgvdmVyc2lv bi5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgpAQCAtMjksMTQgKzI5 LDE1IEBACiAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KICNpbmNs dWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0K KyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgImNvbXBhdC5o IgorCisjaWZkZWYgU01TX0RWQjNfU1VCU1lTCiAjaW5jbHVkZSAiZG14ZGV2 LmgiCiAjaW5jbHVkZSAiZHZiZGV2LmgiCiAjaW5jbHVkZSAiZHZiX2RlbXV4 LmgiCiAjaW5jbHVkZSAiZHZiX2Zyb250ZW5kLmgiCi0KLSNpbmNsdWRlIDxs aW51eC9tdXRleC5oPgorI2VuZGlmCiAKICNkZWZpbmUga211dGV4X2luaXQo X3BfKSBtdXRleF9pbml0KF9wXykKICNkZWZpbmUga211dGV4X2xvY2soX3Bf KSBtdXRleF9sb2NrKF9wXykKQEAgLTU0LDcgKzU1LDcgQEAKIAogI2RlZmlu ZSBTTVNfREVWSUNFX0ZBTUlMWTIJCQkJCTEKICNkZWZpbmUgU01TX1JPTV9O T19SRVNQT05TRQkJCQkJMgotI2RlZmluZSBTTVNfREVWSUNFX05PVF9SRUFE WQkJCQkweDgwMDAwMDAKKyNkZWZpbmUgU01TX0RFVklDRV9OT1RfUkVBRFkJ CQkJCTB4ODAwMDAwMAogCiBlbnVtIHNtc19kZXZpY2VfdHlwZV9zdCB7CiAJ U01TX1NURUxMQVIgPSAwLApAQCAtNjgsODAgKzY5LDgwIEBACiBzdHJ1Y3Qg c21zY29yZV9jbGllbnRfdDsKIHN0cnVjdCBzbXNjb3JlX2J1ZmZlcl90Owog Ci10eXBlZGVmIGludCAoKmhvdHBsdWdfdCkoc3RydWN0IHNtc2NvcmVfZGV2 aWNlX3QgKmNvcmVkZXYsCi0JCQkgc3RydWN0IGRldmljZSAqZGV2aWNlLCBp bnQgYXJyaXZhbCk7Cit0eXBlZGVmIGludCAoKmhvdHBsdWdfdCkgKHN0cnVj dCBzbXNjb3JlX2RldmljZV90ICpjb3JlZGV2LAorCQkJICBzdHJ1Y3QgZGV2 aWNlICpkZXZpY2UsIGludCBhcnJpdmFsKTsKIAotdHlwZWRlZiBpbnQgKCpz ZXRtb2RlX3QpKHZvaWQgKmNvbnRleHQsIGludCBtb2RlKTsKLXR5cGVkZWYg dm9pZCAoKmRldGVjdG1vZGVfdCkodm9pZCAqY29udGV4dCwgaW50ICptb2Rl KTsKLXR5cGVkZWYgaW50ICgqc2VuZHJlcXVlc3RfdCkodm9pZCAqY29udGV4 dCwgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7Ci10eXBlZGVmIGludCAo KmxvYWRmaXJtd2FyZV90KSh2b2lkICpjb250ZXh0LCB2b2lkICpidWZmZXIs IHNpemVfdCBzaXplKTsKLXR5cGVkZWYgaW50ICgqcHJlbG9hZF90KSh2b2lk ICpjb250ZXh0KTsKLXR5cGVkZWYgaW50ICgqcG9zdGxvYWRfdCkodm9pZCAq Y29udGV4dCk7Cit0eXBlZGVmIGludCAoKnNldG1vZGVfdCkgKHZvaWQgKmNv bnRleHQsIGludCBtb2RlKTsKK3R5cGVkZWYgdm9pZCAoKmRldGVjdG1vZGVf dCkgKHZvaWQgKmNvbnRleHQsIGludCAqbW9kZSk7Cit0eXBlZGVmIGludCAo KnNlbmRyZXF1ZXN0X3QpICh2b2lkICpjb250ZXh0LCB2b2lkICpidWZmZXIs IHNpemVfdCBzaXplKTsKK3R5cGVkZWYgaW50ICgqbG9hZGZpcm13YXJlX3Qp ICh2b2lkICpjb250ZXh0LCB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKTsK K3R5cGVkZWYgaW50ICgqcHJlbG9hZF90KSAodm9pZCAqY29udGV4dCk7Cit0 eXBlZGVmIGludCAoKnBvc3Rsb2FkX3QpICh2b2lkICpjb250ZXh0KTsKIAot dHlwZWRlZiBpbnQgKCpvbnJlc3BvbnNlX3QpKHZvaWQgKmNvbnRleHQsIHN0 cnVjdCBzbXNjb3JlX2J1ZmZlcl90ICpjYik7Ci10eXBlZGVmIHZvaWQgKCpv bnJlbW92ZV90KSh2b2lkICpjb250ZXh0KTsKK3R5cGVkZWYgaW50ICgqb25y ZXNwb25zZV90KSAodm9pZCAqY29udGV4dCwgc3RydWN0IHNtc2NvcmVfYnVm ZmVyX3QgKmNiKTsKK3R5cGVkZWYgdm9pZCAoKm9ucmVtb3ZlX3QpICh2b2lk ICpjb250ZXh0KTsKIAogc3RydWN0IHNtc2NvcmVfYnVmZmVyX3QgewogCS8q IHB1YmxpYyBtZW1iZXJzLCBvbmNlIHBhc3NlZCB0byBjbGllbnRzIGNhbiBi ZSBjaGFuZ2VkIGZyZWVseSAqLwogCXN0cnVjdCBsaXN0X2hlYWQgZW50cnk7 Ci0JaW50CQkJCXNpemU7Ci0JaW50CQkJCW9mZnNldDsKKwlpbnQgc2l6ZTsK KwlpbnQgb2Zmc2V0OwogCiAJLyogcHJpdmF0ZSBtZW1iZXJzLCByZWFkLW9u bHkgZm9yIGNsaWVudHMgKi8KLQl2b2lkCQkJKnA7Ci0JZG1hX2FkZHJfdAkJ cGh5czsKLQl1bnNpZ25lZCBsb25nCW9mZnNldF9pbl9jb21tb247CisJdm9p ZCAqcDsKKwlkbWFfYWRkcl90IHBoeXM7CisJdW5zaWduZWQgbG9uZyBvZmZz ZXRfaW5fY29tbW9uOwogfTsKIAogc3RydWN0IHNtc2RldmljZV9wYXJhbXNf dCB7Ci0Jc3RydWN0IGRldmljZQkqZGV2aWNlOworCXN0cnVjdCBkZXZpY2Ug KmRldmljZTsKIAotCWludAkJCQlidWZmZXJfc2l6ZTsKLQlpbnQJCQkJbnVt X2J1ZmZlcnM7CisJaW50IGJ1ZmZlcl9zaXplOworCWludCBudW1fYnVmZmVy czsKIAotCWNoYXIJCQlkZXZwYXRoWzMyXTsKLQl1bnNpZ25lZCBsb25nCWZs YWdzOworCWNoYXIgZGV2cGF0aFszMl07CisJdW5zaWduZWQgbG9uZyBmbGFn czsKIAotCXNldG1vZGVfdAkJc2V0bW9kZV9oYW5kbGVyOwotCWRldGVjdG1v ZGVfdAlkZXRlY3Rtb2RlX2hhbmRsZXI7Ci0Jc2VuZHJlcXVlc3RfdAlzZW5k cmVxdWVzdF9oYW5kbGVyOwotCXByZWxvYWRfdAkJcHJlbG9hZF9oYW5kbGVy OwotCXBvc3Rsb2FkX3QJCXBvc3Rsb2FkX2hhbmRsZXI7CisJc2V0bW9kZV90 IHNldG1vZGVfaGFuZGxlcjsKKwlkZXRlY3Rtb2RlX3QgZGV0ZWN0bW9kZV9o YW5kbGVyOworCXNlbmRyZXF1ZXN0X3Qgc2VuZHJlcXVlc3RfaGFuZGxlcjsK KwlwcmVsb2FkX3QgcHJlbG9hZF9oYW5kbGVyOworCXBvc3Rsb2FkX3QgcG9z dGxvYWRfaGFuZGxlcjsKIAotCXZvaWQJCQkqY29udGV4dDsKKwl2b2lkICpj b250ZXh0OwogCWVudW0gc21zX2RldmljZV90eXBlX3N0IGRldmljZV90eXBl OwogfTsKIAogc3RydWN0IHNtc2NsaWVudF9wYXJhbXNfdCB7Ci0JaW50CQkJ CWluaXRpYWxfaWQ7Ci0JaW50CQkJCWRhdGFfdHlwZTsKLQlvbnJlc3BvbnNl X3QJb25yZXNwb25zZV9oYW5kbGVyOwotCW9ucmVtb3ZlX3QJCW9ucmVtb3Zl X2hhbmRsZXI7CisJaW50IGluaXRpYWxfaWQ7CisJaW50IGRhdGFfdHlwZTsK KwlvbnJlc3BvbnNlX3Qgb25yZXNwb25zZV9oYW5kbGVyOworCW9ucmVtb3Zl X3Qgb25yZW1vdmVfaGFuZGxlcjsKIAotCXZvaWQJCQkqY29udGV4dDsKKwl2 b2lkICpjb250ZXh0OwogfTsKIAogLyogR1BJTyBkZWZpbml0aW9ucyBmb3Ig YW50ZW5uYSBmcmVxdWVuY3kgZG9tYWluIGNvbnRyb2wgKFNNUzgwMjEpICov Ci0jZGVmaW5lIFNNU19BTlRFTk5BX0dQSU9fMAkJCQkJMQotI2RlZmluZSBT TVNfQU5URU5OQV9HUElPXzEJCQkJCTAKKyNkZWZpbmUgU01TX0FOVEVOTkFf R1BJT18wCQkJCTEKKyNkZWZpbmUgU01TX0FOVEVOTkFfR1BJT18xCQkJCTAK IAotI2RlZmluZSBCV184X01IWgkJCQkJCQkwCi0jZGVmaW5lIEJXXzdfTUha CQkJCQkJCTEKLSNkZWZpbmUgQldfNl9NSFoJCQkJCQkJMgotI2RlZmluZSBC V181X01IWgkJCQkJCQkzCi0jZGVmaW5lIEJXX0lTREJUXzFTRUcJCQkJCQk0 Ci0jZGVmaW5lIEJXX0lTREJUXzNTRUcJCQkJCQk1CisjZGVmaW5lIEJXXzhf TUhaCQkJCQkwCisjZGVmaW5lIEJXXzdfTUhaCQkJCQkxCisjZGVmaW5lIEJX XzZfTUhaCQkJCQkyCisjZGVmaW5lIEJXXzVfTUhaCQkJCQkzCisjZGVmaW5l IEJXX0lTREJUXzFTRUcJCQkJCTQKKyNkZWZpbmUgQldfSVNEQlRfM1NFRwkJ CQkJNQogCiAjZGVmaW5lIE1TR19IRFJfRkxBR19TUExJVF9NU0cJCQkJNAog Ci0jZGVmaW5lIE1BWF9HUElPX1BJTl9OVU1CRVIJCQkJCTMxCisjZGVmaW5l IE1BWF9HUElPX1BJTl9OVU1CRVIJCQkJMzEKIAotI2RlZmluZSBISUZfVEFT SwkJCQkJCQkxMQotI2RlZmluZSBTTVNfSE9TVF9MSUIJCQkJCQkxNTAKKyNk ZWZpbmUgSElGX1RBU0sJCQkJCTExCisjZGVmaW5lIFNNU19IT1NUX0xJQgkJ CQkJMTUwCiAjZGVmaW5lIERWQlRfQkRBX0NPTlRST0xfTVNHX0lECQkJCTIw MQogCiAjZGVmaW5lIFNNU19NQVhfUEFZTE9BRF9TSVpFCQkJCTI0MAotI2Rl ZmluZSBTTVNfVFVORV9USU1FT1VUCQkJCQk1MDAKKyNkZWZpbmUgU01TX1RV TkVfVElNRU9VVAkJCQk1MDAKIAogI2RlZmluZSBNU0dfU01TX0dQSU9fQ09O RklHX1JFUQkJCQk1MDcKICNkZWZpbmUgTVNHX1NNU19HUElPX0NPTkZJR19S RVMJCQkJNTA4CkBAIC0xNDksNDQgKzE1MCw0NCBAQAogI2RlZmluZSBNU0df U01TX0dQSU9fU0VUX0xFVkVMX1JFUwkJCTUxMAogI2RlZmluZSBNU0dfU01T X0dQSU9fR0VUX0xFVkVMX1JFUQkJCTUxMQogI2RlZmluZSBNU0dfU01TX0dQ SU9fR0VUX0xFVkVMX1JFUwkJCTUxMgotI2RlZmluZSBNU0dfU01TX1JGX1RV TkVfUkVRCQkJCQk1NjEKLSNkZWZpbmUgTVNHX1NNU19SRl9UVU5FX1JFUwkJ CQkJNTYyCisjZGVmaW5lIE1TR19TTVNfUkZfVFVORV9SRVEJCQkJNTYxCisj ZGVmaW5lIE1TR19TTVNfUkZfVFVORV9SRVMJCQkJNTYyCiAjZGVmaW5lIE1T R19TTVNfSU5JVF9ERVZJQ0VfUkVRCQkJCTU3OAogI2RlZmluZSBNU0dfU01T X0lOSVRfREVWSUNFX1JFUwkJCQk1NzkKICNkZWZpbmUgTVNHX1NNU19BRERf UElEX0ZJTFRFUl9SRVEJCQk2MDEKICNkZWZpbmUgTVNHX1NNU19BRERfUElE X0ZJTFRFUl9SRVMJCQk2MDIKLSNkZWZpbmUgTVNHX1NNU19SRU1PVkVfUElE X0ZJTFRFUl9SRVEJCTYwMwotI2RlZmluZSBNU0dfU01TX1JFTU9WRV9QSURf RklMVEVSX1JFUwkJNjA0Ci0jZGVmaW5lIE1TR19TTVNfREFCX0NIQU5ORUwJ CQkJCTYwNwotI2RlZmluZSBNU0dfU01TX0dFVF9QSURfRklMVEVSX0xJU1Rf UkVRCQk2MDgKLSNkZWZpbmUgTVNHX1NNU19HRVRfUElEX0ZJTFRFUl9MSVNU X1JFUwkJNjA5CisjZGVmaW5lIE1TR19TTVNfUkVNT1ZFX1BJRF9GSUxURVJf UkVRCQkJNjAzCisjZGVmaW5lIE1TR19TTVNfUkVNT1ZFX1BJRF9GSUxURVJf UkVTCQkJNjA0CisjZGVmaW5lIE1TR19TTVNfREFCX0NIQU5ORUwJCQkJNjA3 CisjZGVmaW5lIE1TR19TTVNfR0VUX1BJRF9GSUxURVJfTElTVF9SRVEJCQk2 MDgKKyNkZWZpbmUgTVNHX1NNU19HRVRfUElEX0ZJTFRFUl9MSVNUX1JFUwkJ CTYwOQogI2RlZmluZSBNU0dfU01TX0dFVF9TVEFUSVNUSUNTX1JFUQkJCTYx NQogI2RlZmluZSBNU0dfU01TX0dFVF9TVEFUSVNUSUNTX1JFUwkJCTYxNgot I2RlZmluZSBNU0dfU01TX1NFVF9BTlRFTk5BX0NPTkZJR19SRVEJCTY1MQot I2RlZmluZSBNU0dfU01TX1NFVF9BTlRFTk5BX0NPTkZJR19SRVMJCTY1Mgot I2RlZmluZSBNU0dfU01TX0dFVF9TVEFUSVNUSUNTX0VYX1JFUQkJNjUzCi0j ZGVmaW5lIE1TR19TTVNfR0VUX1NUQVRJU1RJQ1NfRVhfUkVTCQk2NTQKLSNk ZWZpbmUgTVNHX1NNU19TTEVFUF9SRVNVTUVfQ09NUF9JTkQJCTY1NQorI2Rl ZmluZSBNU0dfU01TX1NFVF9BTlRFTk5BX0NPTkZJR19SRVEJCQk2NTEKKyNk ZWZpbmUgTVNHX1NNU19TRVRfQU5URU5OQV9DT05GSUdfUkVTCQkJNjUyCisj ZGVmaW5lIE1TR19TTVNfR0VUX1NUQVRJU1RJQ1NfRVhfUkVRCQkJNjUzCisj ZGVmaW5lIE1TR19TTVNfR0VUX1NUQVRJU1RJQ1NfRVhfUkVTCQkJNjU0Cisj ZGVmaW5lIE1TR19TTVNfU0xFRVBfUkVTVU1FX0NPTVBfSU5ECQkJNjU1CiAj ZGVmaW5lIE1TR19TTVNfREFUQV9ET1dOTE9BRF9SRVEJCQk2NjAKICNkZWZp bmUgTVNHX1NNU19EQVRBX0RPV05MT0FEX1JFUwkJCTY2MQotI2RlZmluZSBN U0dfU01TX1NXRE9XTkxPQURfVFJJR0dFUl9SRVEJCTY2NAotI2RlZmluZSBN U0dfU01TX1NXRE9XTkxPQURfVFJJR0dFUl9SRVMJCTY2NQotI2RlZmluZSBN U0dfU01TX1NXRE9XTkxPQURfQkFDS0RPT1JfUkVRCQk2NjYKLSNkZWZpbmUg TVNHX1NNU19TV0RPV05MT0FEX0JBQ0tET09SX1JFUwkJNjY3CisjZGVmaW5l IE1TR19TTVNfU1dET1dOTE9BRF9UUklHR0VSX1JFUQkJCTY2NAorI2RlZmlu ZSBNU0dfU01TX1NXRE9XTkxPQURfVFJJR0dFUl9SRVMJCQk2NjUKKyNkZWZp bmUgTVNHX1NNU19TV0RPV05MT0FEX0JBQ0tET09SX1JFUQkJCTY2NgorI2Rl ZmluZSBNU0dfU01TX1NXRE9XTkxPQURfQkFDS0RPT1JfUkVTCQkJNjY3CiAj ZGVmaW5lIE1TR19TTVNfR0VUX1ZFUlNJT05fRVhfUkVRCQkJNjY4CiAjZGVm aW5lIE1TR19TTVNfR0VUX1ZFUlNJT05fRVhfUkVTCQkJNjY5Ci0jZGVmaW5l IE1TR19TTVNfU0VUX0NMT0NLX09VVFBVVF9SRVEJCTY3MAorI2RlZmluZSBN U0dfU01TX1NFVF9DTE9DS19PVVRQVVRfUkVRCQkJNjcwCiAjZGVmaW5lIE1T R19TTVNfSTJDX1NFVF9GUkVRX1JFUQkJCTY4NQogI2RlZmluZSBNU0dfU01T X0dFTkVSSUNfSTJDX1JFUQkJCQk2ODcKICNkZWZpbmUgTVNHX1NNU19HRU5F UklDX0kyQ19SRVMJCQkJNjg4CiAjZGVmaW5lIE1TR19TTVNfRFZCVF9CREFf REFUQQkJCQk2OTMKLSNkZWZpbmUgTVNHX1NXX1JFTE9BRF9SRVEJCQkJCTY5 NwotI2RlZmluZSBNU0dfU01TX0RBVEFfTVNHCQkJCQk2OTkKKyNkZWZpbmUg TVNHX1NXX1JFTE9BRF9SRVEJCQkJNjk3CisjZGVmaW5lIE1TR19TTVNfREFU QV9NU0cJCQkJNjk5CiAjZGVmaW5lIE1TR19TV19SRUxPQURfU1RBUlRfUkVR CQkJCTcwMgogI2RlZmluZSBNU0dfU1dfUkVMT0FEX1NUQVJUX1JFUwkJCQk3 MDMKICNkZWZpbmUgTVNHX1NXX1JFTE9BRF9FWEVDX1JFUQkJCQk3MDQKICNk ZWZpbmUgTVNHX1NXX1JFTE9BRF9FWEVDX1JFUwkJCQk3MDUKLSNkZWZpbmUg TVNHX1NNU19TUElfSU5UX0xJTkVfU0VUX1JFUQkJNzEwCisjZGVmaW5lIE1T R19TTVNfU1BJX0lOVF9MSU5FX1NFVF9SRVEJCQk3MTAKICNkZWZpbmUgTVNH X1NNU19JU0RCVF9UVU5FX1JFUQkJCQk3NzYKICNkZWZpbmUgTVNHX1NNU19J U0RCVF9UVU5FX1JFUwkJCQk3NzcKIApAQCAtMjEyLDEyMSArMjEzLDEyNSBA QAogfTsKIAogc3RydWN0IFNtc01zZ0hkcl9TVCB7Ci0JdTE2CW1zZ1R5cGU7 Ci0JdTgJbXNnU3JjSWQ7Ci0JdTgJbXNnRHN0SWQ7Ci0JdTE2CW1zZ0xlbmd0 aDsgLyogTGVuZ3RoIG9mIGVudGlyZSBtZXNzYWdlLCBpbmNsdWRpbmcgaGVh ZGVyICovCi0JdTE2CW1zZ0ZsYWdzOworCXUxNiBtc2dUeXBlOworCXU4IG1z Z1NyY0lkOworCXU4IG1zZ0RzdElkOworCXUxNiBtc2dMZW5ndGg7CQkvKiBM ZW5ndGggb2YgZW50aXJlIG1lc3NhZ2UsIGluY2x1ZGluZyBoZWFkZXIgKi8K Kwl1MTYgbXNnRmxhZ3M7CiB9OwogCiBzdHJ1Y3QgU21zTXNnRGF0YV9TVCB7 Ci0Jc3RydWN0IFNtc01zZ0hkcl9TVAl4TXNnSGVhZGVyOwotCXUzMgkJCW1z Z0RhdGFbMV07CisJc3RydWN0IFNtc01zZ0hkcl9TVCB4TXNnSGVhZGVyOwor CXUzMiBtc2dEYXRhWzFdOwogfTsKIAogc3RydWN0IFNtc0RhdGFEb3dubG9h ZF9TVCB7Ci0Jc3RydWN0IFNtc01zZ0hkcl9TVAl4TXNnSGVhZGVyOwotCXUz MgkJCU1lbUFkZHI7Ci0JdTgJCQlQYXlsb2FkW1NNU19NQVhfUEFZTE9BRF9T SVpFXTsKKwlzdHJ1Y3QgU21zTXNnSGRyX1NUIHhNc2dIZWFkZXI7CisJdTMy IE1lbUFkZHI7CisJdTggUGF5bG9hZFtTTVNfTUFYX1BBWUxPQURfU0laRV07 CiB9OwogCiBzdHJ1Y3QgU21zVmVyc2lvblJlc19TVCB7Ci0Jc3RydWN0IFNt c01zZ0hkcl9TVAl4TXNnSGVhZGVyOworCXN0cnVjdCBTbXNNc2dIZHJfU1Qg eE1zZ0hlYWRlcjsKIAotCXUxNgkJQ2hpcE1vZGVsOyAvKiBlLmcuIDB4MTEw MiBmb3IgU01TLTExMDIgIk5vdmEiICovCi0JdTgJCVN0ZXA7IC8qIDAgLSBT dGVwIEEgKi8KLQl1OAkJTWV0YWxGaXg7IC8qIDAgLSBNZXRhbCAwICovCi0K LQl1OAkJRmlybXdhcmVJZDsgLyogMHhGRiDvv70gUk9NLCBvdGhlcndpc2Ug dGhlCi0JCQkJICAgICAqIHZhbHVlIGluZGljYXRlZCBieQotCQkJCSAgICAg KiBTTVNIT1NUTElCX0RFVklDRV9NT0RFU19FICovCi0JdTgJCVN1cHBvcnRl ZFByb3RvY29sczsgLyogQml0d2lzZSBPUiBjb21iaW5hdGlvbiBvZgotCQkJ CQkgICAgICogc3VwcG9ydGVkIHByb3RvY29scyAqLwotCi0JdTgJCVZlcnNp b25NYWpvcjsKLQl1OAkJVmVyc2lvbk1pbm9yOwotCXU4CQlWZXJzaW9uUGF0 Y2g7Ci0JdTgJCVZlcnNpb25GaWVsZFBhdGNoOwotCi0JdTgJCVJvbVZlcnNp b25NYWpvcjsKLQl1OAkJUm9tVmVyc2lvbk1pbm9yOwotCXU4CQlSb21WZXJz aW9uUGF0Y2g7Ci0JdTgJCVJvbVZlcnNpb25GaWVsZFBhdGNoOworCXUxNiBD aGlwTW9kZWw7CQkvKiBlLmcuIDB4MTEwMiBmb3IgU01TLTExMDIgIk5vdmEi ICovCisJdTggU3RlcDsJCS8qIDAgLSBTdGVwIEEgKi8KKwl1OCBNZXRhbEZp eDsJCS8qIDAgLSBNZXRhbCAwICovCisKKwl1OCBGaXJtd2FyZUlkOwkJLyog MHhGRiDvv70gUk9NLCBvdGhlcndpc2UgdGhlCisJCQkJICogdmFsdWUgaW5k aWNhdGVkIGJ5CisJCQkJICogU01TSE9TVExJQl9ERVZJQ0VfTU9ERVNfRSAq LworCXU4IFN1cHBvcnRlZFByb3RvY29sczsJLyogQml0d2lzZSBPUiBjb21i aW5hdGlvbiBvZgorCQkJCSAqIHN1cHBvcnRlZCBwcm90b2NvbHMgKi8KKwor CXU4IFZlcnNpb25NYWpvcjsKKwl1OCBWZXJzaW9uTWlub3I7CisJdTggVmVy c2lvblBhdGNoOworCXU4IFZlcnNpb25GaWVsZFBhdGNoOworCisJdTggUm9t VmVyc2lvbk1ham9yOworCXU4IFJvbVZlcnNpb25NaW5vcjsKKwl1OCBSb21W ZXJzaW9uUGF0Y2g7CisJdTggUm9tVmVyc2lvbkZpZWxkUGF0Y2g7CiAKLQl1 OAkJVGV4dExhYmVsWzM0XTsKKwl1OCBUZXh0TGFiZWxbMzRdOwogfTsKIAog c3RydWN0IFNtc0Zpcm13YXJlX1NUIHsKLQl1MzIJCQlDaGVja1N1bTsKLQl1 MzIJCQlMZW5ndGg7Ci0JdTMyCQkJU3RhcnRBZGRyZXNzOwotCXU4CQkJUGF5 bG9hZFsxXTsKKwl1MzIgQ2hlY2tTdW07CisJdTMyIExlbmd0aDsKKwl1MzIg U3RhcnRBZGRyZXNzOworCXU4IFBheWxvYWRbMV07CiB9OwogCiBzdHJ1Y3Qg U01TSE9TVExJQl9TVEFUSVNUSUNTX1NUIHsKLQl1MzIgUmVzZXJ2ZWQ7IC8q IFJlc2VydmVkICovCisJdTMyIFJlc2VydmVkOwkJLyogUmVzZXJ2ZWQgKi8K IAogCS8qIENvbW1vbiBwYXJhbWV0ZXJzICovCi0JdTMyIElzUmZMb2NrZWQ7 IC8qIDAgLSBub3QgbG9ja2VkLCAxIC0gbG9ja2VkICovCi0JdTMyIElzRGVt b2RMb2NrZWQ7IC8qIDAgLSBub3QgbG9ja2VkLCAxIC0gbG9ja2VkICovCi0J dTMyIElzRXh0ZXJuYWxMTkFPbjsgLyogMCAtIGV4dGVybmFsIExOQSBvZmYs IDEgLSBleHRlcm5hbCBMTkEgb24gKi8KKwl1MzIgSXNSZkxvY2tlZDsJCS8q IDAgLSBub3QgbG9ja2VkLCAxIC0gbG9ja2VkICovCisJdTMyIElzRGVtb2RM b2NrZWQ7CS8qIDAgLSBub3QgbG9ja2VkLCAxIC0gbG9ja2VkICovCisJdTMy IElzRXh0ZXJuYWxMTkFPbjsJLyogMCAtIGV4dGVybmFsIExOQSBvZmYsIDEg LSBleHRlcm5hbCBMTkEgb24gKi8KIAogCS8qIFJlY2VwdGlvbiBxdWFsaXR5 ICovCi0JczMyICBTTlI7IC8qIGRCICovCi0JdTMyIEJFUjsgLyogUG9zdCBW aXRlcmJpIEJFUiBbMUUtNV0gKi8KLQl1MzIgRklCX0NSQzsJLyogQ1JDIGVy cm9ycyBwZXJjZW50YWdlLCB2YWxpZCBvbmx5IGZvciBEQUIgKi8KLQl1MzIg VFNfUEVSOyAvKiBUcmFuc3BvcnQgc3RyZWFtIFBFUiwgMHhGRkZGRkZGRiBp bmRpY2F0ZSBOL0EsCi0JCSAgICAgKiB2YWxpZCBvbmx5IGZvciBEVkItVC9I ICovCi0JdTMyIE1GRVI7IC8qIERWQi1IIGZyYW1lIGVycm9yIHJhdGUgaW4g cGVyY2VudGFnZSwKLQkJICAgKiAweEZGRkZGRkZGIGluZGljYXRlIE4vQSwg dmFsaWQgb25seSBmb3IgRFZCLUggKi8KLQlzMzIgIFJTU0k7IC8qIGRCbSAq LwotCXMzMiAgSW5CYW5kUHdyOyAvKiBJbiBiYW5kIHBvd2VyIGluIGRCTSAq LwotCXMzMiAgQ2Fycmllck9mZnNldDsgLyogQ2FycmllciBPZmZzZXQgaW4g YmluLzEwMjQgKi8KKwlzMzIgU05SOwkJLyogZEIgKi8KKwl1MzIgQkVSOwkJ LyogUG9zdCBWaXRlcmJpIEJFUiBbMUUtNV0gKi8KKwl1MzIgRklCX0NSQzsJ CS8qIENSQyBlcnJvcnMgcGVyY2VudGFnZSwgdmFsaWQgb25seSBmb3IgREFC ICovCisJdTMyIFRTX1BFUjsJCS8qIFRyYW5zcG9ydCBzdHJlYW0gUEVSLCAw eEZGRkZGRkZGCisJCQkJICogaW5kaWNhdGUgTi9BLCB2YWxpZCBvbmx5IGZv ciBEVkItVC9IICovCisJdTMyIE1GRVI7CQkvKiBEVkItSCBmcmFtZSBlcnJv ciByYXRlIGluIHBlcmNlbnRhZ2UsCisJCQkJICogMHhGRkZGRkZGRiBpbmRp Y2F0ZSBOL0EsIHZhbGlkCisJCQkJICogb25seSBmb3IgRFZCLUggKi8KKwlz MzIgUlNTSTsJCS8qIGRCbSAqLworCXMzMiBJbkJhbmRQd3I7CQkvKiBJbiBi YW5kIHBvd2VyIGluIGRCTSAqLworCXMzMiBDYXJyaWVyT2Zmc2V0OwkvKiBD YXJyaWVyIE9mZnNldCBpbiBiaW4vMTAyNCAqLwogCiAJLyogVHJhbnNtaXNz aW9uIHBhcmFtZXRlcnMsIHZhbGlkIG9ubHkgZm9yIERWQi1UL0ggKi8KLQl1 MzIgRnJlcXVlbmN5OyAvKiBGcmVxdWVuY3kgaW4gSHogKi8KLQl1MzIgQmFu ZHdpZHRoOyAvKiBCYW5kd2lkdGggaW4gTUh6ICovCi0JdTMyIFRyYW5zbWlz c2lvbk1vZGU7IC8qIFRyYW5zbWlzc2lvbiBNb2RlLCBmb3IgREFCIG1vZGVz IDEtNCwKLQkJCSAgICAgICAqIGZvciBEVkItVC9IIEZGVCBtb2RlIGNhcnJp ZXJzIGluIEtpbG9zICovCi0JdTMyIE1vZGVtU3RhdGU7IC8qIGZyb20gU01T X0R2Yk1vZGVtU3RhdGVfRVQgKi8KLQl1MzIgR3VhcmRJbnRlcnZhbDsgLyog R3VhcmQgSW50ZXJ2YWwsIDEgZGl2aWRlZCBieSB2YWx1ZSAqLwotCXUzMiBD b2RlUmF0ZTsgLyogQ29kZSBSYXRlIGZyb20gU01TX0R2Yk1vZGVtU3RhdGVf RVQgKi8KLQl1MzIgTFBDb2RlUmF0ZTsgLyogTG93IFByaW9yaXR5IENvZGUg UmF0ZSBmcm9tIFNNU19EdmJNb2RlbVN0YXRlX0VUICovCi0JdTMyIEhpZXJh cmNoeTsgLyogSGllcmFyY2h5IGZyb20gU01TX0hpZXJhcmNoeV9FVCAqLwot CXUzMiBDb25zdGVsbGF0aW9uOyAvKiBDb25zdGVsbGF0aW9uIGZyb20gU01T X0NvbnN0ZWxsYXRpb25fRVQgKi8KKwl1MzIgRnJlcXVlbmN5OwkJLyogRnJl cXVlbmN5IGluIEh6ICovCisJdTMyIEJhbmR3aWR0aDsJCS8qIEJhbmR3aWR0 aCBpbiBNSHogKi8KKwl1MzIgVHJhbnNtaXNzaW9uTW9kZTsJLyogVHJhbnNt aXNzaW9uIE1vZGUsIGZvciBEQUIgbW9kZXMgMS00LAorCQkJCSAqIGZvciBE VkItVC9IIEZGVCBtb2RlIGNhcnJpZXJzIGluIEtpbG9zICovCisJdTMyIE1v ZGVtU3RhdGU7CQkvKiBmcm9tIFNNU19EdmJNb2RlbVN0YXRlX0VUICovCisJ dTMyIEd1YXJkSW50ZXJ2YWw7CS8qIEd1YXJkIEludGVydmFsLCAxIGRpdmlk ZWQgYnkgdmFsdWUgKi8KKwl1MzIgQ29kZVJhdGU7CQkvKiBDb2RlIFJhdGUg ZnJvbSBTTVNfRHZiTW9kZW1TdGF0ZV9FVCAqLworCXUzMiBMUENvZGVSYXRl OwkJLyogTG93IFByaW9yaXR5IENvZGUgUmF0ZSBmcm9tCisJCQkJICogU01T X0R2Yk1vZGVtU3RhdGVfRVQgKi8KKwl1MzIgSGllcmFyY2h5OwkJLyogSGll cmFyY2h5IGZyb20gU01TX0hpZXJhcmNoeV9FVCAqLworCXUzMiBDb25zdGVs bGF0aW9uOwkvKiBDb25zdGVsbGF0aW9uIGZyb20gU01TX0NvbnN0ZWxsYXRp b25fRVQgKi8KIAogCS8qIEJ1cnN0IHBhcmFtZXRlcnMsIHZhbGlkIG9ubHkg Zm9yIERWQi1IICovCi0JdTMyIEJ1cnN0U2l6ZTsgLyogQ3VycmVudCBidXJz dCBzaXplIGluIGJ5dGVzICovCi0JdTMyIEJ1cnN0RHVyYXRpb247IC8qIEN1 cnJlbnQgYnVyc3QgZHVyYXRpb24gaW4gbVNlYyAqLwotCXUzMiBCdXJzdEN5 Y2xlVGltZTsgLyogQ3VycmVudCBidXJzdCBjeWNsZSB0aW1lIGluIG1TZWMg Ki8KLQl1MzIgQ2FsY3VsYXRlZEJ1cnN0Q3ljbGVUaW1lOyAvKiBDdXJyZW50 IGJ1cnN0IGN5Y2xlIHRpbWUgaW4gbVNlYywKLQkJCQkgICAgICAgKiBhcyBj YWxjdWxhdGVkIGJ5IGRlbW9kdWxhdG9yICovCi0JdTMyIE51bU9mUm93czsg LyogTnVtYmVyIG9mIHJvd3MgaW4gTVBFIHRhYmxlICovCi0JdTMyIE51bU9m UGFkZENvbHM7IC8qIE51bWJlciBvZiBwYWRkaW5nIGNvbHVtbnMgaW4gTVBF IHRhYmxlICovCi0JdTMyIE51bU9mUHVuY3RDb2xzOyAvKiBOdW1iZXIgb2Yg cHVuY3R1cmluZyBjb2x1bW5zIGluIE1QRSB0YWJsZSAqLworCXUzMiBCdXJz dFNpemU7CQkvKiBDdXJyZW50IGJ1cnN0IHNpemUgaW4gYnl0ZXMgKi8KKwl1 MzIgQnVyc3REdXJhdGlvbjsJLyogQ3VycmVudCBidXJzdCBkdXJhdGlvbiBp biBtU2VjICovCisJdTMyIEJ1cnN0Q3ljbGVUaW1lOwkvKiBDdXJyZW50IGJ1 cnN0IGN5Y2xlIHRpbWUgaW4gbVNlYyAqLworCXUzMiBDYWxjdWxhdGVkQnVy c3RDeWNsZVRpbWU7CS8qIEN1cnJlbnQgYnVyc3QgY3ljbGUgdGltZSBpbiBt U2VjLAorCQkJCQkgKiBhcyBjYWxjdWxhdGVkIGJ5IGRlbW9kdWxhdG9yICov CisJdTMyIE51bU9mUm93czsJCS8qIE51bWJlciBvZiByb3dzIGluIE1QRSB0 YWJsZSAqLworCXUzMiBOdW1PZlBhZGRDb2xzOwkvKiBOdW1iZXIgb2YgcGFk ZGluZyBjb2x1bW5zIGluIE1QRSB0YWJsZSAqLworCXUzMiBOdW1PZlB1bmN0 Q29sczsJLyogTnVtYmVyIG9mIHB1bmN0dXJpbmcgY29sdW1ucyBpbiBNUEUg dGFibGUgKi8KIAkvKiBCdXJzdCBwYXJhbWV0ZXJzICovCi0JdTMyIEVycm9y VFNQYWNrZXRzOyAvKiBOdW1iZXIgb2YgZXJyb25lb3VzIHRyYW5zcG9ydC1z dHJlYW0gcGFja2V0cyAqLwotCXUzMiBUb3RhbFRTUGFja2V0czsgLyogVG90 YWwgbnVtYmVyIG9mIHRyYW5zcG9ydC1zdHJlYW0gcGFja2V0cyAqLwotCXUz MiBOdW1PZlZhbGlkTXBlVGxiczsgLyogTnVtYmVyIG9mIE1QRSB0YWJsZXMg d2hpY2ggZG8gbm90IGluY2x1ZGUKLQkJCQkqIGVycm9ycyBhZnRlciBNUEUg UlMgZGVjb2RpbmcgKi8KLQl1MzIgTnVtT2ZJbnZhbGlkTXBlVGxiczsgLyog TnVtYmVyIG9mIE1QRSB0YWJsZXMgd2hpY2ggaW5jbHVkZSBlcnJvcnMKLQkJ CQkgICogYWZ0ZXIgTVBFIFJTIGRlY29kaW5nICovCisJdTMyIEVycm9yVFNQ YWNrZXRzOwkvKiBOdW1iZXIgb2YgZXJyb25lb3VzIHRyYW5zcG9ydC1zdHJl YW0KKwkJCQkgKiBwYWNrZXRzICovCisJdTMyIFRvdGFsVFNQYWNrZXRzOwkv KiBUb3RhbCBudW1iZXIgb2YgdHJhbnNwb3J0LXN0cmVhbSBwYWNrZXRzICov CisJdTMyIE51bU9mVmFsaWRNcGVUbGJzOwkvKiBOdW1iZXIgb2YgTVBFIHRh YmxlcyB3aGljaCBkbyBub3QgaW5jbHVkZQorCQkJCSAqIGVycm9ycyBhZnRl ciBNUEUgUlMgZGVjb2RpbmcgKi8KKwl1MzIgTnVtT2ZJbnZhbGlkTXBlVGxi czsvKiBOdW1iZXIgb2YgTVBFIHRhYmxlcyB3aGljaCBpbmNsdWRlIGVycm9y cworCQkJCSAqIGFmdGVyIE1QRSBSUyBkZWNvZGluZyAqLwogCXUzMiBOdW1P ZkNvcnJlY3RlZE1wZVRsYnM7IC8qIE51bWJlciBvZiBNUEUgdGFibGVzIHdo aWNoIHdlcmUgY29ycmVjdGVkCiAJCQkJICAgICogYnkgTVBFIFJTIGRlY29k aW5nICovCiAKIAkvKiBDb21tb24gcGFyYW1zICovCi0JdTMyIEJFUkVycm9y Q291bnQ7IC8qIE51bWJlciBvZiBlcnJvcm5vdXMgU1lOQyBiaXRzLiAqLwot CXUzMiBCRVJCaXRDb3VudDsgLyogVG90YWwgbnVtYmVyIG9mIFNZTkMgYml0 cy4gKi8KKwl1MzIgQkVSRXJyb3JDb3VudDsJLyogTnVtYmVyIG9mIGVycm9y bm91cyBTWU5DIGJpdHMuICovCisJdTMyIEJFUkJpdENvdW50OwkvKiBUb3Rh bCBudW1iZXIgb2YgU1lOQyBiaXRzLiAqLwogCiAJLyogSW50ZXJmYWNlIGlu Zm9ybWF0aW9uICovCi0JdTMyIFNtc1RvSG9zdFR4RXJyb3JzOyAvKiBUb3Rh bCBudW1iZXIgb2YgdHJhbnNtaXNzaW9uIGVycm9ycy4gKi8KKwl1MzIgU21z VG9Ib3N0VHhFcnJvcnM7CS8qIFRvdGFsIG51bWJlciBvZiB0cmFuc21pc3Np b24gZXJyb3JzLiAqLwogCiAJLyogREFCL1QtRE1CICovCi0JdTMyIFByZUJF UjsgLyogREFCL1QtRE1CIG9ubHk6IFByZSBWaXRlcmJpIEJFUiBbMUUtNV0g Ki8KKwl1MzIgUHJlQkVSOwkJLyogREFCL1QtRE1CIG9ubHk6IFByZSBWaXRl cmJpIEJFUiBbMUUtNV0gKi8KIAogCS8qIERWQi1IIFRQUyBwYXJhbWV0ZXJz ICovCi0JdTMyIENlbGxJZDsgLyogVFBTIENlbGwgSUQgaW4gYml0cyAxNS4u MCwgYml0cyAzMS4uMTYgemVybzsKLQkJICAgICAqIGlmIHNldCB0byAweEZG RkZGRkZGIGNlbGxfaWQgbm90IHlldCByZWNvdmVyZWQgKi8KKwl1MzIgQ2Vs bElkOwkJLyogVFBTIENlbGwgSUQgaW4gYml0cyAxNS4uMCwgYml0cyAzMS4u MTYgemVybzsKKwkJCQkgKiBpZiBzZXQgdG8gMHhGRkZGRkZGRiBjZWxsX2lk IG5vdAorCQkJCSAqIHlldCByZWNvdmVyZWQgKi8KIAogfTsKIApAQCAtMzM2 LDE5NyArMzQxLDM0IEBACiAJc3RydWN0IFNNU0hPU1RMSUJfU1RBVElTVElD U19TVCBTdGF0OwogCiAJLyogU3BsaXQgdGhlIGNhbGMgb2YgdGhlIFNOUiBp biBEQUIgKi8KLQl1MzIgU2lnbmFsOyAvKiBkQiAqLwotCXUzMiBOb2lzZTsg LyogZEIgKi8KLQotfTsKLQotI2lmIDAKLXN0cnVjdCBTTVNIT1NUTElCX0lT REJUX0xBWUVSX1NUQVRfU1QgewotCS8qIFBlci1sYXllciBpbmZvcm1hdGlv biAqLwotCXUzMiBDb2RlUmF0ZTsgLyogQ29kZSBSYXRlIGZyb20gU01TSE9T VExJQl9DT0RFX1JBVEVfRVQsCi0JCSAgICAgICAqIDI1NSBtZWFucyBsYXll ciBkb2VzIG5vdCBleGlzdCAqLwotCXUzMiBDb25zdGVsbGF0aW9uOyAvKiBD b25zdGVsbGF0aW9uIGZyb20gU01TSE9TVExJQl9DT05TVEVMTEFUSU9OX0VU LAotCQkJICAgICogMjU1IG1lYW5zIGxheWVyIGRvZXMgbm90IGV4aXN0ICov Ci0JdTMyIEJFUjsgLyogUG9zdCBWaXRlcmJpIEJFUiBbMUUtNV0sIDB4RkZG RkZGRkYgaW5kaWNhdGUgTi9BICovCi0JdTMyIEJFUkVycm9yQ291bnQ7IC8q IFBvc3QgVml0ZXJiaSBFcnJvciBCaXRzIENvdW50ICovCi0JdTMyIEJFUkJp dENvdW50OyAvKiBQb3N0IFZpdGVyYmkgVG90YWwgQml0cyBDb3VudCAqLwot CXUzMiBQcmVCRVI7IC8qIFByZSBWaXRlcmJpIEJFUiBbMUUtNV0sIDB4RkZG RkZGRkYgaW5kaWNhdGUgTi9BICovCi0JdTMyIFRTX1BFUjsgLyogVHJhbnNw b3J0IHN0cmVhbSBQRVIgWyVdLCAweEZGRkZGRkZGIGluZGljYXRlIE4vQSAq LwotCXUzMiBFcnJvclRTUGFja2V0czsgLyogTnVtYmVyIG9mIGVycm9uZW91 cyB0cmFuc3BvcnQtc3RyZWFtIHBhY2tldHMgKi8KLQl1MzIgVG90YWxUU1Bh Y2tldHM7IC8qIFRvdGFsIG51bWJlciBvZiB0cmFuc3BvcnQtc3RyZWFtIHBh Y2tldHMgKi8KLQl1MzIgVElMZGVwdGhJOyAvKiBUaW1lIGludGVybGVhdmVy IGRlcHRoIEkgcGFyYW1ldGVyLAotCQkJKiAyNTUgbWVhbnMgbGF5ZXIgZG9l cyBub3QgZXhpc3QgKi8KLQl1MzIgTnVtYmVyT2ZTZWdtZW50czsgLyogTnVt YmVyIG9mIHNlZ21lbnRzIGluIGxheWVyIEEsCi0JCQkgICAgICAgKiAyNTUg bWVhbnMgbGF5ZXIgZG9lcyBub3QgZXhpc3QgKi8KLQl1MzIgVE1DQ0Vycm9y czsgLyogVE1DQyBlcnJvcnMgKi8KLX07Ci0KLXN0cnVjdCBTTVNIT1NUTElC X1NUQVRJU1RJQ1NfSVNEQlRfU1QgewotCXUzMiBTdGF0aXN0aWNzVHlwZTsg LyogRW51bWVyYXRvciBpZGVudGlmeWluZyB0aGUgdHlwZSBvZiB0aGUKLQkJ CQkqIHN0cnVjdHVyZS4gIFZhbHVlcyBhcmUgdGhlIHNhbWUgYXMKLQkJCQkq IFNNU0hPU1RMSUJfREVWSUNFX01PREVTX0UKLQkJCQkqCi0JCQkJKiBUaGlz IGZpZWxkIE1VU1QgYWx3YXlzIGJlIGZpcnN0IGluIGFueQotCQkJCSogc3Rh dGlzdGljcyBzdHJ1Y3R1cmUgKi8KLQotCXUzMiBGdWxsU2l6ZTsgLyogVG90 YWwgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIHJldHVybmVkIGJ5IHRoZSBtb2Rl bS4KLQkJICAgICAgICogSWYgdGhlIHNpemUgcmVxdWVzdGVkIGJ5IHRoZSBo b3N0IGlzIHNtYWxsZXIgdGhhbgotCQkgICAgICAgKiBGdWxsU2l6ZSwgdGhl IHN0cnVjdCB3aWxsIGJlIHRydW5jYXRlZCAqLwotCi0JLyogQ29tbW9uIHBh cmFtZXRlcnMgKi8KLQl1MzIgSXNSZkxvY2tlZDsgLyogMCAtIG5vdCBsb2Nr ZWQsIDEgLSBsb2NrZWQgKi8KLQl1MzIgSXNEZW1vZExvY2tlZDsgLyogMCAt IG5vdCBsb2NrZWQsIDEgLSBsb2NrZWQgKi8KLQl1MzIgSXNFeHRlcm5hbExO QU9uOyAvKiAwIC0gZXh0ZXJuYWwgTE5BIG9mZiwgMSAtIGV4dGVybmFsIExO QSBvbiAqLwotCi0JLyogUmVjZXB0aW9uIHF1YWxpdHkgKi8KLQlzMzIgIFNO UjsgLyogZEIgKi8KLQlzMzIgIFJTU0k7IC8qIGRCbSAqLwotCXMzMiAgSW5C YW5kUHdyOyAvKiBJbiBiYW5kIHBvd2VyIGluIGRCTSAqLwotCXMzMiAgQ2Fy cmllck9mZnNldDsgLyogQ2FycmllciBPZmZzZXQgaW4gSHogKi8KLQotCS8q IFRyYW5zbWlzc2lvbiBwYXJhbWV0ZXJzICovCi0JdTMyIEZyZXF1ZW5jeTsg LyogRnJlcXVlbmN5IGluIEh6ICovCi0JdTMyIEJhbmR3aWR0aDsgLyogQmFu ZHdpZHRoIGluIE1IeiAqLwotCXUzMiBUcmFuc21pc3Npb25Nb2RlOyAvKiBJ U0RCLVQgdHJhbnNtaXNzaW9uIG1vZGUgKi8KLQl1MzIgTW9kZW1TdGF0ZTsg LyogMCAtIEFjcXVpc2l0aW9uLCAxIC0gTG9ja2VkICovCi0JdTMyIEd1YXJk SW50ZXJ2YWw7IC8qIEd1YXJkIEludGVydmFsLCAxIGRpdmlkZWQgYnkgdmFs dWUgKi8KLQl1MzIgU3lzdGVtVHlwZTsgLyogSVNEQi1UIHN5c3RlbSB0eXBl IChJU0RCLVQgLyBJU0RCLVRzYikgKi8KLQl1MzIgUGFydGlhbFJlY2VwdGlv bjsgLyogVFJVRSAtIHBhcnRpYWwgcmVjZXB0aW9uLCBGQUxTRSBvdGhlcndp c2UgKi8KLQl1MzIgTnVtT2ZMYXllcnM7IC8qIE51bWJlciBvZiBJU0RCLVQg bGF5ZXJzIGluIHRoZSBuZXR3b3JrICovCi0KLQkvKiBQZXItbGF5ZXIgaW5m b3JtYXRpb24gKi8KLQkvKiBMYXllcnMgQSwgQiBhbmQgQyAqLwotCXN0cnVj dCBTTVNIT1NUTElCX0lTREJUX0xBWUVSX1NUQVRfU1QJTGF5ZXJJbmZvWzNd OwotCS8qIFBlci1sYXllciBzdGF0aXN0aWNzLCBzZWUgU01TSE9TVExJQl9J U0RCVF9MQVlFUl9TVEFUX1NUICovCi0KLQkvKiBJbnRlcmZhY2UgaW5mb3Jt YXRpb24gKi8KLQl1MzIgU21zVG9Ib3N0VHhFcnJvcnM7IC8qIFRvdGFsIG51 bWJlciBvZiB0cmFuc21pc3Npb24gZXJyb3JzLiAqLworCXUzMiBTaWduYWw7 CQkvKiBkQiAqLworCXUzMiBOb2lzZTsJCS8qIGRCICovCiAKIH07CiAKLXN0 cnVjdCBTTVNIT1NUTElCX1NUQVRJU1RJQ1NfRFZCX1NUIHsKLQl1MzIgU3Rh dGlzdGljc1R5cGU7IC8qIEVudW1lcmF0b3IgaWRlbnRpZnlpbmcgdGhlIHR5 cGUgb2YgdGhlCi0JCQkgICAgICogc3RydWN0dXJlLiAgVmFsdWVzIGFyZSB0 aGUgc2FtZSBhcwotCQkJICAgICAqIFNNU0hPU1RMSUJfREVWSUNFX01PREVT X0UKLQkJCSAgICAgKiBUaGlzIGZpZWxkIE1VU1QgYWx3YXlzIGZpcnN0IGlu IGFueQotCQkJICAgICAqIHN0YXRpc3RpY3Mgc3RydWN0dXJlICovCi0KLQl1 MzIgRnVsbFNpemU7IC8qIFRvdGFsIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBy ZXR1cm5lZCBieSB0aGUgbW9kZW0uCi0JCSAgICAgICAqIElmIHRoZSBzaXpl IHJlcXVlc3RlZCBieSB0aGUgaG9zdCBpcyBzbWFsbGVyIHRoYW4KLQkJICAg ICAgICogRnVsbFNpemUsIHRoZSBzdHJ1Y3Qgd2lsbCBiZSB0cnVuY2F0ZWQg Ki8KLQkvKiBDb21tb24gcGFyYW1ldGVycyAqLwotCXUzMiBJc1JmTG9ja2Vk OyAvKiAwIC0gbm90IGxvY2tlZCwgMSAtIGxvY2tlZCAqLwotCXUzMiBJc0Rl bW9kTG9ja2VkOyAvKiAwIC0gbm90IGxvY2tlZCwgMSAtIGxvY2tlZCAqLwot CXUzMiBJc0V4dGVybmFsTE5BT247IC8qIDAgLSBleHRlcm5hbCBMTkEgb2Zm LCAxIC0gZXh0ZXJuYWwgTE5BIG9uICovCi0KLQkvKiBSZWNlcHRpb24gcXVh bGl0eSAqLwotCXMzMiAgU05SOyAvKiBkQiAqLwotCXUzMiBCRVI7IC8qIFBv c3QgVml0ZXJiaSBCRVIgWzFFLTVdICovCi0JdTMyIEJFUkVycm9yQ291bnQ7 IC8qIE51bWJlciBvZiBlcnJvcm5vdXMgU1lOQyBiaXRzLiAqLwotCXUzMiBC RVJCaXRDb3VudDsgLyogVG90YWwgbnVtYmVyIG9mIFNZTkMgYml0cy4gKi8K LQl1MzIgVFNfUEVSOyAvKiBUcmFuc3BvcnQgc3RyZWFtIFBFUiwgMHhGRkZG RkZGRiBpbmRpY2F0ZSBOL0EgKi8KLQl1MzIgTUZFUjsgLyogRFZCLUggZnJh bWUgZXJyb3IgcmF0ZSBpbiBwZXJjZW50YWdlLAotCQkgICAqIDB4RkZGRkZG RkYgaW5kaWNhdGUgTi9BLCB2YWxpZCBvbmx5IGZvciBEVkItSCAqLwotCXMz MiAgUlNTSTsgLyogZEJtICovCi0JczMyICBJbkJhbmRQd3I7IC8qIEluIGJh bmQgcG93ZXIgaW4gZEJNICovCi0JczMyICBDYXJyaWVyT2Zmc2V0OyAvKiBD YXJyaWVyIE9mZnNldCBpbiBiaW4vMTAyNCAqLwotCi0JLyogVHJhbnNtaXNz aW9uIHBhcmFtZXRlcnMgKi8KLQl1MzIgRnJlcXVlbmN5OyAvKiBGcmVxdWVu Y3kgaW4gSHogKi8KLQl1MzIgQmFuZHdpZHRoOyAvKiBCYW5kd2lkdGggaW4g TUh6ICovCi0JdTMyIE1vZGVtU3RhdGU7IC8qIGZyb20gU01TSE9TVExJQl9E VkJfTU9ERU1fU1RBVEVfRVQgKi8KLQl1MzIgVHJhbnNtaXNzaW9uTW9kZTsg LyogRkZUIG1vZGUgY2FycmllcnMgaW4gS2lsb3MgKi8KLQl1MzIgR3VhcmRJ bnRlcnZhbDsgLyogR3VhcmQgSW50ZXJ2YWwsIDEgZGl2aWRlZCBieSB2YWx1 ZSAqLwotCXUzMiBDb2RlUmF0ZTsgLyogQ29kZSBSYXRlIGZyb20gU01TSE9T VExJQl9DT0RFX1JBVEVfRVQgKi8KLQl1MzIgTFBDb2RlUmF0ZTsgLyogTG93 IFByaW9yaXR5IENvZGUgUmF0ZSBmcm9tCi0JCQkgKiBTTVNIT1NUTElCX0NP REVfUkFURV9FVCAqLwotCXUzMiBIaWVyYXJjaHk7IC8qIEhpZXJhcmNoeSBm cm9tIFNNU0hPU1RMSUJfSElFUkFSQ0hZX0VUICovCi0JdTMyIENvbnN0ZWxs YXRpb247IC8qIENvbnN0ZWxsYXRpb24gZnJvbSBTTVNIT1NUTElCX0NPTlNU RUxMQVRJT05fRVQgKi8KLQotCS8qIEJ1cnN0IHBhcmFtZXRlcnMsIHZhbGlk IG9ubHkgZm9yIERWQi1IICovCi0JdTMyIEJ1cnN0U2l6ZTsgLyogQ3VycmVu dCBidXJzdCBzaXplIGluIGJ5dGVzICovCi0JdTMyIEJ1cnN0RHVyYXRpb247 IC8qIEN1cnJlbnQgYnVyc3QgZHVyYXRpb24gaW4gbVNlYyAqLwotCXUzMiBC dXJzdEN5Y2xlVGltZTsgLyogQ3VycmVudCBidXJzdCBjeWNsZSB0aW1lIGlu IG1TZWMgKi8KLQl1MzIgQ2FsY3VsYXRlZEJ1cnN0Q3ljbGVUaW1lOyAvKiBD dXJyZW50IGJ1cnN0IGN5Y2xlIHRpbWUgaW4gbVNlYywKLQkJCQkgICAgICAg KiBhcyBjYWxjdWxhdGVkIGJ5IGRlbW9kdWxhdG9yICovCi0JdTMyIE51bU9m Um93czsgLyogTnVtYmVyIG9mIHJvd3MgaW4gTVBFIHRhYmxlICovCi0JdTMy IE51bU9mUGFkZENvbHM7IC8qIE51bWJlciBvZiBwYWRkaW5nIGNvbHVtbnMg aW4gTVBFIHRhYmxlICovCi0JdTMyIE51bU9mUHVuY3RDb2xzOyAvKiBOdW1i ZXIgb2YgcHVuY3R1cmluZyBjb2x1bW5zIGluIE1QRSB0YWJsZSAqLwotCi0J dTMyIEVycm9yVFNQYWNrZXRzOyAvKiBOdW1iZXIgb2YgZXJyb25lb3VzIHRy YW5zcG9ydC1zdHJlYW0gcGFja2V0cyAqLwotCXUzMiBUb3RhbFRTUGFja2V0 czsgLyogVG90YWwgbnVtYmVyIG9mIHRyYW5zcG9ydC1zdHJlYW0gcGFja2V0 cyAqLwotCi0JdTMyIE51bU9mVmFsaWRNcGVUbGJzOyAvKiBOdW1iZXIgb2Yg TVBFIHRhYmxlcyB3aGljaCBkbyBub3QgaW5jbHVkZQotCQkJCSogZXJyb3Jz IGFmdGVyIE1QRSBSUyBkZWNvZGluZyAqLwotCXUzMiBOdW1PZkludmFsaWRN cGVUbGJzOyAvKiBOdW1iZXIgb2YgTVBFIHRhYmxlcyB3aGljaCBpbmNsdWRl Ci0JCQkJICAqIGVycm9ycyBhZnRlciBNUEUgUlMgZGVjb2RpbmcgKi8KLQl1 MzIgTnVtT2ZDb3JyZWN0ZWRNcGVUbGJzOyAvKiBOdW1iZXIgb2YgTVBFIHRh YmxlcyB3aGljaCB3ZXJlCi0JCQkJICAgICogY29ycmVjdGVkIGJ5IE1QRSBS UyBkZWNvZGluZyAqLwotCi0JdTMyIE51bU1QRVJlY2VpdmVkOyAvKiBEVkIt SCwgTnVtIE1QRSBzZWN0aW9uIHJlY2VpdmVkICovCi0KLQkvKiBEVkItSCBU UFMgcGFyYW1ldGVycyAqLwotCXUzMiBDZWxsSWQ7IC8qIFRQUyBDZWxsIElE IGluIGJpdHMgMTUuLjAsIGJpdHMgMzEuLjE2IHplcm87Ci0JCSAgICAgKiBp ZiBzZXQgdG8gMHhGRkZGRkZGRiBjZWxsX2lkIG5vdCB5ZXQgcmVjb3ZlcmVk ICovCi0JdTMyIER2YmhTcnZJbmRIUDsgLyogRFZCLUggc2VydmljZSBpbmRp Y2F0aW9uIGluZm8sCi0JCQkgICAqIGJpdCAxIC0gVGltZSBTbGljaW5nIGlu ZGljYXRvciwKLQkJCSAgICogYml0IDAgLSBNUEUtRkVDIGluZGljYXRvciAq LwotCXUzMiBEdmJoU3J2SW5kTFA7IC8qIERWQi1IIHNlcnZpY2UgaW5kaWNh dGlvbiBpbmZvLAotCQkJICAgKiBiaXQgMSAtIFRpbWUgU2xpY2luZyBpbmRp Y2F0b3IsCi0JCQkgICAqIGJpdCAwIC0gTVBFLUZFQyBpbmRpY2F0b3IgKi8K LQotCS8qIEludGVyZmFjZSBpbmZvcm1hdGlvbiAqLwotCXUzMiBTbXNUb0hv c3RUeEVycm9yczsgLyogVG90YWwgbnVtYmVyIG9mIHRyYW5zbWlzc2lvbiBl cnJvcnMuICovCi0KLX07Ci0KLXN0cnVjdCBTTVNIT1NUTElCX0dQSU9fQ09O RklHX1NUIHsKLQl1OAlEaXJlY3Rpb247IC8qIEdQSU8gZGlyZWN0aW9uOiBJ bnB1dCAtIDAsIE91dHB1dCAtIDEgKi8KLQl1OAlQdWxsVXBEb3duOyAvKiBQ dWxsVXAvUHVsbERvd246IE5vbmUgLSAwLAotCQkJICAgICAqIFB1bGxEb3du IC0gMSwgUHVsbFVwIC0gMiwgS2VlcGVyIC0gMyAqLwotCXU4CUlucHV0Q2hh cmFjdGVyaXN0aWNzOyAvKiBJbnB1dCBDaGFyYWN0ZXJpc3RpY3M6IE5vcm1h bCAtIDAsCi0JCQkJICAgICAgICogU2NobWl0dCB0cmlnZ2VyIC0gMSAqLwot CXU4CU91dHB1dFNsZXdSYXRlOyAvKiBPdXRwdXQgU2xldyBSYXRlOgotCQkJ CSAqIEZhc3Qgc2xldyByYXRlIC0gMCwgU2xvdyBzbGV3IHJhdGUgLSAxICov Ci0JdTgJT3V0cHV0RHJpdmluZzsgLyogT3V0cHV0IGRyaXZpbmcgY2FwYWJp bGl0eToKLQkJCQkqIDRtQSAtIDAsIDhtQSAtIDEsIDEybUEgLSAyLCAxNm1B IC0gMyAqLwotfTsKLQotc3RydWN0IFNNU0hPU1RMSUJfSTJDX1JFUV9TVCB7 Ci0JdTMyCURldmljZUFkZHJlc3M7IC8qIEkyYyBkZXZpY2UgYWRkcmVzcyAq LwotCXUzMglXcml0ZUNvdW50OyAvKiBudW1iZXIgb2YgYnl0ZXMgdG8gd3Jp dGUgKi8KLQl1MzIJUmVhZENvdW50OyAvKiBudW1iZXIgb2YgYnl0ZXMgdG8g cmVhZCAqLwotCXU4CURhdGFbMV07Ci19OwotCi1zdHJ1Y3QgU01TSE9TVExJ Ql9JMkNfUkVTX1NUIHsKLQl1MzIJU3RhdHVzOyAvKiBub24temVybyB2YWx1 ZSBpbiBjYXNlIG9mIGZhaWx1cmUgKi8KLQl1MzIJUmVhZENvdW50OyAvKiBu dW1iZXIgb2YgYnl0ZXMgcmVhZCAqLwotCXU4CURhdGFbMV07Ci19OwotI2Vu ZGlmCisjaWZkZWYgU01TX0RWQjNfU1VCU1lTCiAKIHN0cnVjdCBzbXNkdmJf Y2xpZW50X3QgewogCXN0cnVjdCBsaXN0X2hlYWQgZW50cnk7CiAKLQlzdHJ1 Y3Qgc21zY29yZV9kZXZpY2VfdAkqY29yZWRldjsKLQlzdHJ1Y3Qgc21zY29y ZV9jbGllbnRfdAkqc21zY2xpZW50OworCXN0cnVjdCBzbXNjb3JlX2Rldmlj ZV90ICpjb3JlZGV2OworCXN0cnVjdCBzbXNjb3JlX2NsaWVudF90ICpzbXNj bGllbnQ7CiAKLQlzdHJ1Y3QgZHZiX2FkYXB0ZXIJYWRhcHRlcjsKLQlzdHJ1 Y3QgZHZiX2RlbXV4CWRlbXV4OwotCXN0cnVjdCBkbXhkZXYJCWRteGRldjsK LQlzdHJ1Y3QgZHZiX2Zyb250ZW5kCWZyb250ZW5kOworCXN0cnVjdCBkdmJf YWRhcHRlciBhZGFwdGVyOworCXN0cnVjdCBkdmJfZGVtdXggZGVtdXg7CisJ c3RydWN0IGRteGRldiBkbXhkZXY7CisJc3RydWN0IGR2Yl9mcm9udGVuZCBm cm9udGVuZDsKIAotCWZlX3N0YXR1c190CQlmZV9zdGF0dXM7Ci0JaW50CQkJ ZmVfYmVyLCBmZV9zbnIsIGZlX3NpZ25hbF9zdHJlbmd0aDsKKwlmZV9zdGF0 dXNfdCBmZV9zdGF0dXM7CisJaW50IGZlX2JlciwgZmVfc25yLCBmZV9zaWdu YWxfc3RyZW5ndGg7CiAKLQlzdHJ1Y3QgY29tcGxldGlvbgl0dW5lX2RvbmUs IHN0YXRfZG9uZTsKKwlzdHJ1Y3QgY29tcGxldGlvbiB0dW5lX2RvbmUsIHN0 YXRfZG9uZTsKIAogCS8qIHRvZG86IHNhdmUgZnJlcS9iYW5kIGluc3RlYWQg d2hvbGUgc3RydWN0ICovCiAJc3RydWN0IGR2Yl9mcm9udGVuZF9wYXJhbWV0 ZXJzIGZlX3BhcmFtczsKIAogfTsKKyNlbmRpZiAvKiBTTVNfRFZCM19TVUJT WVMgKi8KIAogZXh0ZXJuIHZvaWQgc21zY29yZV9yZWdpc3RyeV9zZXRtb2Rl KGNoYXIgKmRldnBhdGgsIGludCBtb2RlKTsKIGV4dGVybiBpbnQgc21zY29y ZV9yZWdpc3RyeV9nZXRtb2RlKGNoYXIgKmRldnBhdGgpOwpAQCAtNTQyLDEz ICszODQsMTcgQEAKIGV4dGVybiBpbnQgc21zY29yZV9sb2FkX2Zpcm13YXJl KHN0cnVjdCBzbXNjb3JlX2RldmljZV90ICpjb3JlZGV2LAogCQkJCSBjaGFy ICpmaWxlbmFtZSwKIAkJCQkgbG9hZGZpcm13YXJlX3QgbG9hZGZpcm13YXJl X2hhbmRsZXIpOwotCiBleHRlcm4gaW50IHNtc2NvcmVfc2V0X2RldmljZV9t b2RlKHN0cnVjdCBzbXNjb3JlX2RldmljZV90ICpjb3JlZGV2LCBpbnQgbW9k ZSk7CiBleHRlcm4gaW50IHNtc2NvcmVfZ2V0X2RldmljZV9tb2RlKHN0cnVj dCBzbXNjb3JlX2RldmljZV90ICpjb3JlZGV2KTsKIAorZXh0ZXJuIGludCBz bXNjb3JlX2dldF9md19maWxlbmFtZShzdHJ1Y3Qgc21zY29yZV9kZXZpY2Vf dCAqY29yZWRldiwgaW50IG1vZGUsCisJCQkJICAgY2hhciAqZmlsZW5hbWUp OworZXh0ZXJuIGludCBzbXNjb3JlX3NlbmRfZndfZmlsZShzdHJ1Y3Qgc21z Y29yZV9kZXZpY2VfdCAqY29yZWRldiwgdTggKnVmd2J1ZiwKKwkJCQlpbnQg c2l6ZSk7CisKIGV4dGVybiBpbnQgc21zY29yZV9yZWdpc3Rlcl9jbGllbnQo c3RydWN0IHNtc2NvcmVfZGV2aWNlX3QgKmNvcmVkZXYsCi0JCQkJICAgIHN0 cnVjdCBzbXNjbGllbnRfcGFyYW1zX3QgKnBhcmFtcywKLQkJCQkgICAgc3Ry dWN0IHNtc2NvcmVfY2xpZW50X3QgKipjbGllbnQpOworCQkJCSAgIHN0cnVj dCBzbXNjbGllbnRfcGFyYW1zX3QgKnBhcmFtcywKKwkJCQkgICBzdHJ1Y3Qg c21zY29yZV9jbGllbnRfdCAqKmNsaWVudCk7CiBleHRlcm4gdm9pZCBzbXNj b3JlX3VucmVnaXN0ZXJfY2xpZW50KHN0cnVjdCBzbXNjb3JlX2NsaWVudF90 ICpjbGllbnQpOwogCiBleHRlcm4gaW50IHNtc2NsaWVudF9zZW5kcmVxdWVz dChzdHJ1Y3Qgc21zY29yZV9jbGllbnRfdCAqY2xpZW50LApAQCAtNTU2LDI3 ICs0MDIsNDcgQEAKIGV4dGVybiB2b2lkIHNtc2NvcmVfb25yZXNwb25zZShz dHJ1Y3Qgc21zY29yZV9kZXZpY2VfdCAqY29yZWRldiwKIAkJCSAgICAgICBz dHJ1Y3Qgc21zY29yZV9idWZmZXJfdCAqY2IpOwogCi0jaWYgMAogZXh0ZXJu IGludCBzbXNjb3JlX2dldF9jb21tb25fYnVmZmVyX3NpemUoc3RydWN0IHNt c2NvcmVfZGV2aWNlX3QgKmNvcmVkZXYpOwogZXh0ZXJuIGludCBzbXNjb3Jl X21hcF9jb21tb25fYnVmZmVyKHN0cnVjdCBzbXNjb3JlX2RldmljZV90ICpj b3JlZGV2LAotCQkJCSAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1h KTsKLSNlbmRpZgorCQkJCSAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEpOwogCi1leHRlcm4KLXN0cnVjdCBzbXNjb3JlX2J1ZmZlcl90ICpzbXNj b3JlX2dldGJ1ZmZlcihzdHJ1Y3Qgc21zY29yZV9kZXZpY2VfdCAqY29yZWRl dik7CitleHRlcm4gc3RydWN0IHNtc2NvcmVfYnVmZmVyX3QgKnNtc2NvcmVf Z2V0YnVmZmVyKHN0cnVjdCBzbXNjb3JlX2RldmljZV90CisJCQkJCQkgICpj b3JlZGV2KTsKIGV4dGVybiB2b2lkIHNtc2NvcmVfcHV0YnVmZmVyKHN0cnVj dCBzbXNjb3JlX2RldmljZV90ICpjb3JlZGV2LAogCQkJICAgICAgc3RydWN0 IHNtc2NvcmVfYnVmZmVyX3QgKmNiKTsKIAogdm9pZCBzbXNjb3JlX3NldF9i b2FyZF9pZChzdHJ1Y3Qgc21zY29yZV9kZXZpY2VfdCAqY29yZSwgaW50IGlk KTsKIGludCBzbXNjb3JlX2dldF9ib2FyZF9pZChzdHJ1Y3Qgc21zY29yZV9k ZXZpY2VfdCAqY29yZSk7CiAKLS8qIHNtc2R2Yi5jICovCi1pbnQgc21zZHZi X3JlZ2lzdGVyKHZvaWQpOwotdm9pZCBzbXNkdmJfdW5yZWdpc3Rlcih2b2lk KTsKLQotLyogc21zdXNiLmMgKi8KLWludCBzbXN1c2JfcmVnaXN0ZXIodm9p ZCk7Ci12b2lkIHNtc3VzYl91bnJlZ2lzdGVyKHZvaWQpOworI2lmZGVmIFNN U19IT1NUTElCX1NVQlNZUworZXh0ZXJuIGludCBzbXNjaGFyX3JlZ2lzdGVy KHZvaWQpOworZXh0ZXJuIHZvaWQgc21zY2hhcl91bnJlZ2lzdGVyKHZvaWQp OworI2VuZGlmCisKKyNpZmRlZiBTTVNfTkVUX1NVQlNZUworZXh0ZXJuIGlu dCBzbXNuZXRfcmVnaXN0ZXIodm9pZCk7CitleHRlcm4gdm9pZCBzbXNuZXRf dW5yZWdpc3Rlcih2b2lkKTsKKyNlbmRpZgorCisjaWZkZWYgU01TX0RWQjNf U1VCU1lTCitleHRlcm4gaW50IHNtc2R2Yl9yZWdpc3Rlcih2b2lkKTsKK2V4 dGVybiB2b2lkIHNtc2R2Yl91bnJlZ2lzdGVyKHZvaWQpOworI2VuZGlmCisK KyNpZmRlZiBTTVNfVVNCX0RSVgorZXh0ZXJuIGludCBzbXN1c2JfcmVnaXN0 ZXIodm9pZCk7CitleHRlcm4gdm9pZCBzbXN1c2JfdW5yZWdpc3Rlcih2b2lk KTsKKyNlbmRpZgorCisjaWZkZWYgU01TX1NESU9fRFJWCitleHRlcm4gaW50 IHNtc3NkaW9fcmVnaXN0ZXIodm9pZCk7CitleHRlcm4gdm9pZCBzbXNzZGlv X3VucmVnaXN0ZXIodm9pZCk7CisjZW5kaWYKKworI2lmZGVmIFNNU19TUElf UFhBMzEwX0RSVgorZXh0ZXJuIGludCBzbXNzcGlfcmVnaXN0ZXIodm9pZCk7 CitleHRlcm4gdm9pZCBzbXNzcGlfdW5yZWdpc3Rlcih2b2lkKTsKKyNlbmRp ZgogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAt NjAxLDUgKzQ2Nyw0IEBACiAjZGVmaW5lIHNtc19kZWJ1ZyhmbXQsIGFyZy4u LikgXAogCWRwcmludGsoS0VSTl9ERUJVRywgREJHX0FEViwgZm10LCAjI2Fy ZykKIAotCi0jZW5kaWYgLyogX19zbXNjb3JlYXBpX2hfXyAqLworI2VuZGlm IC8qIF9fU01TX0NPUkVfQVBJX0hfXyAqLwo= --0-415634748-1227085393=:56504 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb --0-415634748-1227085393=:56504--