From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wi0-f171.google.com ([209.85.212.171]:36094 "EHLO mail-wi0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751821AbbFZO7T (ORCPT ); Fri, 26 Jun 2015 10:59:19 -0400 Received: by wicnd19 with SMTP id nd19so19887489wic.1 for ; Fri, 26 Jun 2015 07:59:17 -0700 (PDT) Received: from Frozen ([2a02:1812:1d04:f400:260a:64ff:fe0f:472a]) by mx.google.com with ESMTPSA id hn7sm50662389wjc.16.2015.06.26.07.59.16 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 26 Jun 2015 07:59:16 -0700 (PDT) Message-ID: <1435330754.8239.14.camel@gmail.com> Subject: about adding TBS 5980 driver to dw2102 From: Steven Vanden Branden To: linux-media@vger.kernel.org Date: Fri, 26 Jun 2015 16:59:14 +0200 Content-Type: multipart/mixed; boundary="=-8udXjz/a1pMzbjdrTWB0" Mime-Version: 1.0 Sender: linux-media-owner@vger.kernel.org List-ID: --=-8udXjz/a1pMzbjdrTWB0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit hello all, I am new to dvb kernel driver development and have some questions. the hardware is explained here, http://www.linuxtv.org/wiki/index.php/TBS_Qbox_DVB-S2_CI_USB2.0 Whats the difference between dvb-usb and dvb-usb-v2, what is added or why are there 2 versions? I am trying to implement the tbs5980 driver into the dw2102 driver. It uses the stv090X driver instead of the stv0900 driver used in the dw2102 driver. So my question is , what are the differences between the drivers? and can i make the driver work woth the stv0900 instead of the stv090x version(to avoid adding another header file in the driver). also i want to later add support for the integrated Ci cam slot to the driver, is this ok to add also? i have seen much of the inner functions of the ci slot are already implemented in the ci slot driver, and do not need to be copied like in the original driver. The question is , do i only attach the ci slot to the right driver in the dw2102 driver and let it handle it? or do i need to do the same as the original one? the (not working progress) so far is included in the patch1.patch.orig file, so you can have a see what i have done so far. thanks for your time and anwsers, Greetings, Steven Vanden Branden --=-8udXjz/a1pMzbjdrTWB0 Content-Disposition: attachment; filename="tbs-qbox2ci.c" Content-Type: text/x-csrc; name="tbs-qbox2ci.c"; charset="UTF-8" Content-Transfer-Encoding: base64 LyoKICogVHVyYm9TaWdodCAoVEJTKSBRYm94IERWQi1TMiBDSSBkcml2ZXIKICoKICogQ29weXJp Z2h0IChjKSAyMDEwIEtvbnN0YW50aW4gRGltaXRyb3YgPGtvc2lvLmRpbWl0cm92QGdtYWlsLmNv bT4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAqIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgdmVyc2lvbiAyLgogKgogKi8KCiNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+ CiNpbmNsdWRlICJ0YnMtcWJveDJjaS5oIgojaW5jbHVkZSAic3R2NjExMHguaCIKI2luY2x1ZGUg InN0djA5MHguaCIKI2luY2x1ZGUgInN0YjYxMDAuaCIKI2luY2x1ZGUgInN0YjYxMDBfY2ZnLmgi CgojaW5jbHVkZSAiZHZiX2NhX2VuNTAyMjEuaCIKCiNkZWZpbmUgVEJTUUJPWF9SRUFEX01TRyAw CiNkZWZpbmUgVEJTUUJPWF9XUklURV9NU0cgMQojZGVmaW5lIFRCU1FCT1hfTEVEX0NUUkwgKDB4 MWIwMCkKCi8qIG9uIG15IG93biovCiNkZWZpbmUgVEJTUUJPWF9WT0xUQUdFX0NUUkwgKDB4MTgw MCkKI2RlZmluZSBUQlNRQk9YX1JDX1FVRVJZICgweDFhMDApCgpzdHJ1Y3QgdGJzcWJveDJjaV9z dGF0ZSB7CglzdHJ1Y3QgZHZiX2NhX2VuNTAyMjEgY2E7CglzdHJ1Y3QgbXV0ZXggY2FfbXV0ZXg7 CgoJdTMyIGxhc3Rfa2V5X3ByZXNzZWQ7Cn07CgovKnN0cnVjdCB0YnNxYm94MmNpX3JjX2tleXMg ewoJdTMyIGtleWNvZGU7Cgl1MzIgZXZlbnQ7Cn07Ki8KCi8qIGRlYnVnICovCnN0YXRpYyBpbnQg ZHZiX3VzYl90YnNxYm94MmNpX2RlYnVnOwptb2R1bGVfcGFyYW1fbmFtZWQoZGVidWcsIGR2Yl91 c2JfdGJzcWJveDJjaV9kZWJ1ZywgaW50LCAwNjQ0KTsKTU9EVUxFX1BBUk1fREVTQyhkZWJ1Zywg InNldCBkZWJ1Z2dpbmcgbGV2ZWwgKDE9aW5mbyAyPXhmZXIgKG9yLWFibGUpKS4iIAoJCQkJCQkJ RFZCX1VTQl9ERUJVR19TVEFUVVMpOwoKRFZCX0RFRklORV9NT0RfT1BUX0FEQVBURVJfTlIoYWRh cHRlcl9ucik7CgpzdGF0aWMgaW50IHRic3Fib3gyY2lfb3Bfcncoc3RydWN0IHVzYl9kZXZpY2Ug KmRldiwgdTggcmVxdWVzdCwgdTE2IHZhbHVlLAoJCQkJdTE2IGluZGV4LCB1OCAqIGRhdGEsIHUx NiBsZW4sIGludCBmbGFncykKewoJaW50IHJldDsKCXU4IHU4YnVmW2xlbl07CgoJdW5zaWduZWQg aW50IHBpcGUgPSAoZmxhZ3MgPT0gVEJTUUJPWF9SRUFEX01TRykgPwoJCQl1c2JfcmN2Y3RybHBp cGUoZGV2LCAwKSA6IHVzYl9zbmRjdHJscGlwZShkZXYsIDApOwoJdTggcmVxdWVzdF90eXBlID0g KGZsYWdzID09IFRCU1FCT1hfUkVBRF9NU0cpID8gVVNCX0RJUl9JTiA6IAoJCQkJCQkJCVVTQl9E SVJfT1VUOwoKCWlmIChmbGFncyA9PSBUQlNRQk9YX1dSSVRFX01TRykKCQltZW1jcHkodThidWYs IGRhdGEsIGxlbik7CglyZXQgPSB1c2JfY29udHJvbF9tc2coZGV2LCBwaXBlLCByZXF1ZXN0LCBy ZXF1ZXN0X3R5cGUgfCAKCQkJVVNCX1RZUEVfVkVORE9SLCB2YWx1ZSwgaW5kZXggLCB1OGJ1Ziwg bGVuLCAyMDAwKTsKCglpZiAoZmxhZ3MgPT0gVEJTUUJPWF9SRUFEX01TRykKCQltZW1jcHkoZGF0 YSwgdThidWYsIGxlbik7CglyZXR1cm4gcmV0Owp9CgpzdGF0aWMgaW50IHRic3Fib3gyY2lfcmVh ZF9hdHRyaWJ1dGVfbWVtKHN0cnVjdCBkdmJfY2FfZW41MDIyMSAqY2EsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAlpbnQgc2xvdCwgaW50IGFkZHJlc3Mp CnsKCXN0cnVjdCBkdmJfdXNiX2RldmljZSAqZCA9IChzdHJ1Y3QgZHZiX3VzYl9kZXZpY2UgKilj YS0+ZGF0YTsKCXN0cnVjdCB0YnNxYm94MmNpX3N0YXRlICpzdGF0ZSA9IChzdHJ1Y3QgdGJzcWJv eDJjaV9zdGF0ZSAqKWQtPnByaXY7Cgl1OCBidWZbNF0sIHJidWZbM107CglpbnQgcmV0OwoKCWlm ICgwICE9IHNsb3QpCgkJcmV0dXJuIC1FSU5WQUw7CgoJYnVmWzBdID0gMTsKCWJ1ZlsxXSA9IDA7 CglidWZbMl0gPSAoYWRkcmVzcyA+PiA4KSAmIDB4MGY7CglidWZbM10gPSBhZGRyZXNzOwoKCS8v bXNsZWVwKDEwKTsKCgltdXRleF9sb2NrKCZzdGF0ZS0+Y2FfbXV0ZXgpOwoKCXJldCA9IHRic3Fi b3gyY2lfb3BfcncoZC0+dWRldiwgMHhhNCwgMCwgMCwKCQkJCQkJYnVmLCA0LCBUQlNRQk9YX1dS SVRFX01TRyk7CgoJLy9tc2xlZXAoMSk7CgoJcmV0ID0gdGJzcWJveDJjaV9vcF9ydyhkLT51ZGV2 LCAweGE1LCAwLCAwLAoJCQkJCQlyYnVmLCAxLCBUQlNRQk9YX1JFQURfTVNHKTsKCgltdXRleF91 bmxvY2soJnN0YXRlLT5jYV9tdXRleCk7CgoJaWYgKHJldCA8IDApCgkJcmV0dXJuIHJldDsKCgly ZXR1cm4gcmJ1ZlswXTsKfQoKc3RhdGljIGludCB0YnNxYm94MmNpX3dyaXRlX2F0dHJpYnV0ZV9t ZW0oc3RydWN0IGR2Yl9jYV9lbjUwMjIxICpjYSwKCQkJCQkJaW50IHNsb3QsIGludCBhZGRyZXNz LCB1OCB2YWx1ZSkKewoJc3RydWN0IGR2Yl91c2JfZGV2aWNlICpkID0gKHN0cnVjdCBkdmJfdXNi X2RldmljZSAqKWNhLT5kYXRhOwoJc3RydWN0IHRic3Fib3gyY2lfc3RhdGUgKnN0YXRlID0gKHN0 cnVjdCB0YnNxYm94MmNpX3N0YXRlICopZC0+cHJpdjsKCXU4IGJ1Zls1XTsvLywgcmJ1ZlsxXTsK CWludCByZXQ7CgoJaWYgKDAgIT0gc2xvdCkKCQlyZXR1cm4gLUVJTlZBTDsKCglidWZbMF0gPSAx OwoJYnVmWzFdID0gMDsKCWJ1ZlsyXSA9IChhZGRyZXNzID4+IDgpICYgMHgwZjsKCWJ1ZlszXSA9 IGFkZHJlc3M7CglidWZbNF0gPSB2YWx1ZTsKCgltdXRleF9sb2NrKCZzdGF0ZS0+Y2FfbXV0ZXgp OwoKCXJldCA9IHRic3Fib3gyY2lfb3BfcncoZC0+dWRldiwgMHhhMiwgMCwgMCwKCQkJCQkJYnVm LCA1LCBUQlNRQk9YX1dSSVRFX01TRyk7CgoJLy9tc2xlZXAoMSk7CgoJLy9yZXQgPSB0YnNxYm94 MmNpX29wX3J3KGQtPnVkZXYsIDB4YTUsIDAsIDAsCgkvLwkJCQkJcmJ1ZiwgMSwgVEJTUUJPWF9S RUFEX01TRyk7CgoJbXV0ZXhfdW5sb2NrKCZzdGF0ZS0+Y2FfbXV0ZXgpOwoKCWlmIChyZXQgPCAw KQoJCXJldHVybiByZXQ7CgoJcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQgdGJzcWJveDJjaV9yZWFk X2NhbV9jb250cm9sKHN0cnVjdCBkdmJfY2FfZW41MDIyMSAqY2EsIGludCBzbG90LCAKCQkJCQkJ CQl1OCBhZGRyZXNzKQp7CglzdHJ1Y3QgZHZiX3VzYl9kZXZpY2UgKmQgPSAoc3RydWN0IGR2Yl91 c2JfZGV2aWNlICopY2EtPmRhdGE7CglzdHJ1Y3QgdGJzcWJveDJjaV9zdGF0ZSAqc3RhdGUgPSAo c3RydWN0IHRic3Fib3gyY2lfc3RhdGUgKilkLT5wcml2OwoJdTggYnVmWzRdLCByYnVmWzFdOwoJ aW50IHJldDsKCglpZiAoMCAhPSBzbG90KQoJCXJldHVybiAtRUlOVkFMOwoKCWJ1ZlswXSA9IDE7 CglidWZbMV0gPSAxOwoJYnVmWzJdID0gKGFkZHJlc3MgPj4gOCkgJiAweDBmOwoJYnVmWzNdID0g YWRkcmVzczsKCgltdXRleF9sb2NrKCZzdGF0ZS0+Y2FfbXV0ZXgpOwoKCXJldCA9IHRic3Fib3gy Y2lfb3BfcncoZC0+dWRldiwgMHhhNCwgMCwgMCwKCQkJCQkJYnVmLCA0LCBUQlNRQk9YX1dSSVRF X01TRyk7CgoJLy9tc2xlZXAoMTApOwoKCXJldCA9IHRic3Fib3gyY2lfb3BfcncoZC0+dWRldiwg MHhhNSwgMCwgMCwKCQkJCQkJcmJ1ZiwgMSwgVEJTUUJPWF9SRUFEX01TRyk7CgoJbXV0ZXhfdW5s b2NrKCZzdGF0ZS0+Y2FfbXV0ZXgpOwoKCWlmIChyZXQgPCAwKQoJCXJldHVybiByZXQ7CgoJcmV0 dXJuIHJidWZbMF07Cn0KCnN0YXRpYyBpbnQgdGJzcWJveDJjaV93cml0ZV9jYW1fY29udHJvbChz dHJ1Y3QgZHZiX2NhX2VuNTAyMjEgKmNhLCBpbnQgc2xvdCwgCgkJCQkJCQl1OCBhZGRyZXNzLCB1 OCB2YWx1ZSkKewoJc3RydWN0IGR2Yl91c2JfZGV2aWNlICpkID0gKHN0cnVjdCBkdmJfdXNiX2Rl dmljZSAqKWNhLT5kYXRhOwoJc3RydWN0IHRic3Fib3gyY2lfc3RhdGUgKnN0YXRlID0gKHN0cnVj dCB0YnNxYm94MmNpX3N0YXRlICopZC0+cHJpdjsKCXU4IGJ1Zls1XTsvLywgcmJ1ZlsxXTsKCWlu dCByZXQ7CgoJaWYgKDAgIT0gc2xvdCkKCQlyZXR1cm4gLUVJTlZBTDsKCglidWZbMF0gPSAxOwoJ YnVmWzFdID0gMTsKCWJ1ZlsyXSA9IChhZGRyZXNzID4+IDgpICYgMHgwZjsKCWJ1ZlszXSA9IGFk ZHJlc3M7CglidWZbNF0gPSB2YWx1ZTsKCgltdXRleF9sb2NrKCZzdGF0ZS0+Y2FfbXV0ZXgpOwoK CXJldCA9IHRic3Fib3gyY2lfb3BfcncoZC0+dWRldiwgMHhhMiwgMCwgMCwKCQkJCQkJYnVmLCA1 LCBUQlNRQk9YX1dSSVRFX01TRyk7CgoJLy9tc2xlZXAoMSk7CgoJLy9yZXQgPSB0YnNxYm94MmNp X29wX3J3KGQtPnVkZXYsIDB4YTUsIDAsIDAsCgkvLwkJCQkJcmJ1ZiwgMSwgVEJTUUJPWF9SRUFE X01TRyk7CgoJbXV0ZXhfdW5sb2NrKCZzdGF0ZS0+Y2FfbXV0ZXgpOwoKCWlmIChyZXQgPCAwKQoJ CXJldHVybiByZXQ7CgoJcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQgdGJzcWJveDJjaV9zZXRfdmlk ZW9fcG9ydChzdHJ1Y3QgZHZiX2NhX2VuNTAyMjEgKmNhLCAKCQkJCQkJCWludCBzbG90LCBpbnQg ZW5hYmxlKQp7CglzdHJ1Y3QgZHZiX3VzYl9kZXZpY2UgKmQgPSAoc3RydWN0IGR2Yl91c2JfZGV2 aWNlICopY2EtPmRhdGE7CglzdHJ1Y3QgdGJzcWJveDJjaV9zdGF0ZSAqc3RhdGUgPSAoc3RydWN0 IHRic3Fib3gyY2lfc3RhdGUgKilkLT5wcml2OwoJdTggYnVmWzJdOwoJaW50IHJldDsKCglpZiAo MCAhPSBzbG90KQoJCXJldHVybiAtRUlOVkFMOwoKCWJ1ZlswXSA9IDI7CglidWZbMV0gPSBlbmFi bGU7CgoJbXV0ZXhfbG9jaygmc3RhdGUtPmNhX211dGV4KTsKCglyZXQgPSB0YnNxYm94MmNpX29w X3J3KGQtPnVkZXYsIDB4YTYsIDAsIDAsCgkJCQkJCWJ1ZiwgMiwgVEJTUUJPWF9XUklURV9NU0cp OwoKCW11dGV4X3VubG9jaygmc3RhdGUtPmNhX211dGV4KTsKCglpZiAocmV0IDwgMCkKCQlyZXR1 cm4gcmV0OwoKCWlmIChlbmFibGUgIT0gYnVmWzFdKSB7CgkJZXJyKCJDSSBub3QgJXNhYmxlZC4i LCBlbmFibGUgPyAiZW4iIDogImRpcyIpOwoJCXJldHVybiAtRUlPOwoJfQoKCWluZm8oIkNJICVz YWJsZWQuIiwgZW5hYmxlID8gImVuIiA6ICJkaXMiKTsKCXJldHVybiAwOwp9CgpzdGF0aWMgaW50 IHRic3Fib3gyY2lfc2xvdF9zaHV0ZG93bihzdHJ1Y3QgZHZiX2NhX2VuNTAyMjEgKmNhLCBpbnQg c2xvdCkKewoJcmV0dXJuIHRic3Fib3gyY2lfc2V0X3ZpZGVvX3BvcnQoY2EsIHNsb3QsIC8qIGVu YWJsZSAqLyAwKTsKfQoKc3RhdGljIGludCB0YnNxYm94MmNpX3Nsb3RfdHNfZW5hYmxlKHN0cnVj dCBkdmJfY2FfZW41MDIyMSAqY2EsIGludCBzbG90KQp7CglyZXR1cm4gdGJzcWJveDJjaV9zZXRf dmlkZW9fcG9ydChjYSwgc2xvdCwgLyogZW5hYmxlICovIDEpOwp9CgpzdGF0aWMgaW50IHRic3Fi b3gyY2lfc2xvdF9yZXNldChzdHJ1Y3QgZHZiX2NhX2VuNTAyMjEgKmNhLCBpbnQgc2xvdCkKewoJ c3RydWN0IGR2Yl91c2JfZGV2aWNlICpkID0gKHN0cnVjdCBkdmJfdXNiX2RldmljZSAqKWNhLT5k YXRhOwoJc3RydWN0IHRic3Fib3gyY2lfc3RhdGUgKnN0YXRlID0gKHN0cnVjdCB0YnNxYm94MmNp X3N0YXRlICopZC0+cHJpdjsKCXU4IGJ1ZlsyXTsKCWludCByZXQ7CgoJaWYgKDAgIT0gc2xvdCkg ewoJCXJldHVybiAtRUlOVkFMOwoJfQoKCWJ1ZlswXSA9IDE7CglidWZbMV0gPSAwOwoKCW11dGV4 X2xvY2sgKCZzdGF0ZS0+Y2FfbXV0ZXgpOwoKCXJldCA9IHRic3Fib3gyY2lfb3BfcncoZC0+dWRl diwgMHhhNiwgMCwgMCwKCQkJCQkJYnVmLCAyLCBUQlNRQk9YX1dSSVRFX01TRyk7CgoJbXNsZWVw ICg1KTsKCglidWZbMV0gPSAxOwoKCXJldCA9IHRic3Fib3gyY2lfb3BfcncoZC0+dWRldiwgMHhh NiwgMCwgMCwKCQkJCQkJYnVmLCAyLCBUQlNRQk9YX1dSSVRFX01TRyk7CgoJbXNsZWVwICgxNDAw KTsKCgltdXRleF91bmxvY2sgKCZzdGF0ZS0+Y2FfbXV0ZXgpOwoKCWlmIChyZXQgPCAwKQoJCXJl dHVybiByZXQ7CgoJcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQgdGJzcWJveDJjaV9wb2xsX3Nsb3Rf c3RhdHVzKHN0cnVjdCBkdmJfY2FfZW41MDIyMSAqY2EsCgkJCQkJCQlpbnQgc2xvdCwgaW50IG9w ZW4pCnsKCXN0cnVjdCBkdmJfdXNiX2RldmljZSAqZCA9IChzdHJ1Y3QgZHZiX3VzYl9kZXZpY2Ug KiljYS0+ZGF0YTsKCXN0cnVjdCB0YnNxYm94MmNpX3N0YXRlICpzdGF0ZSA9IChzdHJ1Y3QgdGJz cWJveDJjaV9zdGF0ZSAqKWQtPnByaXY7Cgl1OCBidWZbM107CgoJaWYgKDAgIT0gc2xvdCkKCQly ZXR1cm4gLUVJTlZBTDsKCgltdXRleF9sb2NrKCZzdGF0ZS0+Y2FfbXV0ZXgpOwoKCXRic3Fib3gy Y2lfb3BfcncoZC0+dWRldiwgMHhhOCwgMCwgMCwKCQkJCQlidWYsIDMsIFRCU1FCT1hfUkVBRF9N U0cpOwoKCW11dGV4X3VubG9jaygmc3RhdGUtPmNhX211dGV4KTsKCglpZiAoKDEgPT0gYnVmWzJd KSAmJiAoMSA9PSBidWZbMV0pICYmICgweGE5ID09IGJ1ZlswXSkpIHsKCQkJCXJldHVybiAoRFZC X0NBX0VONTAyMjFfUE9MTF9DQU1fUFJFU0VOVCB8CgkJCQkJCURWQl9DQV9FTjUwMjIxX1BPTExf Q0FNX1JFQURZKTsKCX0gZWxzZSB7CgkJcmV0dXJuIDA7Cgl9Cn0KCnN0YXRpYyB2b2lkIHRic3Fi b3gyY2lfdW5pbml0KHN0cnVjdCBkdmJfdXNiX2RldmljZSAqZCkKewoJc3RydWN0IHRic3Fib3gy Y2lfc3RhdGUgKnN0YXRlOwoKCWlmIChOVUxMID09IGQpCgkJcmV0dXJuOwoKCXN0YXRlID0gKHN0 cnVjdCB0YnNxYm94MmNpX3N0YXRlICopZC0+cHJpdjsKCWlmIChOVUxMID09IHN0YXRlKQoJCXJl dHVybjsKCglpZiAoTlVMTCA9PSBzdGF0ZS0+Y2EuZGF0YSkKCQlyZXR1cm47CgoJLyogRXJyb3Ig aWdub3JlZC4gKi8KCXRic3Fib3gyY2lfc2V0X3ZpZGVvX3BvcnQoJnN0YXRlLT5jYSwgLyogc2xv dCAqLyAwLCAvKiBlbmFibGUgKi8gMCk7CgoJZHZiX2NhX2VuNTAyMjFfcmVsZWFzZSgmc3RhdGUt PmNhKTsKCgltZW1zZXQoJnN0YXRlLT5jYSwgMCwgc2l6ZW9mKHN0YXRlLT5jYSkpOwp9CgpzdGF0 aWMgaW50IHRic3Fib3gyY2lfaW5pdChzdHJ1Y3QgZHZiX3VzYl9hZGFwdGVyICphKQp7CgoJc3Ry dWN0IGR2Yl91c2JfZGV2aWNlICpkID0gYS0+ZGV2OwoJc3RydWN0IHRic3Fib3gyY2lfc3RhdGUg KnN0YXRlID0gKHN0cnVjdCB0YnNxYm94MmNpX3N0YXRlICopZC0+cHJpdjsKCWludCByZXQ7CgoJ c3RhdGUtPmNhLm93bmVyID0gVEhJU19NT0RVTEU7CglzdGF0ZS0+Y2EucmVhZF9hdHRyaWJ1dGVf bWVtID0gdGJzcWJveDJjaV9yZWFkX2F0dHJpYnV0ZV9tZW07CglzdGF0ZS0+Y2Eud3JpdGVfYXR0 cmlidXRlX21lbSA9IHRic3Fib3gyY2lfd3JpdGVfYXR0cmlidXRlX21lbTsKCXN0YXRlLT5jYS5y ZWFkX2NhbV9jb250cm9sID0gdGJzcWJveDJjaV9yZWFkX2NhbV9jb250cm9sOwoJc3RhdGUtPmNh LndyaXRlX2NhbV9jb250cm9sID0gdGJzcWJveDJjaV93cml0ZV9jYW1fY29udHJvbDsKCXN0YXRl LT5jYS5zbG90X3Jlc2V0ID0gdGJzcWJveDJjaV9zbG90X3Jlc2V0OwoJc3RhdGUtPmNhLnNsb3Rf c2h1dGRvd24gPSB0YnNxYm94MmNpX3Nsb3Rfc2h1dGRvd247CglzdGF0ZS0+Y2Euc2xvdF90c19l bmFibGUgPSB0YnNxYm94MmNpX3Nsb3RfdHNfZW5hYmxlOwoJc3RhdGUtPmNhLnBvbGxfc2xvdF9z dGF0dXMgPSB0YnNxYm94MmNpX3BvbGxfc2xvdF9zdGF0dXM7CglzdGF0ZS0+Y2EuZGF0YSA9IGQ7 CgoJcmV0ID0gZHZiX2NhX2VuNTAyMjFfaW5pdCAoJmEtPmR2Yl9hZGFwLCAmc3RhdGUtPmNhLAoJ CQkJCQkvKiBmbGFncyAqLyAwLCAvKiBuX3Nsb3RzICovIDEpOwoKCWlmICgwICE9IHJldCkgewoJ CWVyciAoIkNhbm5vdCBpbml0aWFsaXplIENJOiBFcnJvciAlZC4iLCByZXQpOwoJCW1lbXNldCAo JnN0YXRlLT5jYSwgMCwgc2l6ZW9mIChzdGF0ZS0+Y2EpKTsKCQlyZXR1cm4gcmV0OwoJfQoKCWlu Zm8gKCJDSSBpbml0aWFsaXplZC4iKTsKCglyZXQgPSB0YnNxYm94MmNpX3BvbGxfc2xvdF9zdGF0 dXMoJnN0YXRlLT5jYSwgMCwgMCk7CglpZiAoMCA9PSByZXQpCgkJdGJzcWJveDJjaV9zZXRfdmlk ZW9fcG9ydCgmc3RhdGUtPmNhLCAvKiBzbG90ICovIDAsIC8qIGVuYWJsZSAqLyAwKTsKCglyZXR1 cm4gMDsKfQoKLyogSTJDICovCnN0YXRpYyBpbnQgdGJzcWJveDJjaV9pMmNfdHJhbnNmZXIoc3Ry dWN0IGkyY19hZGFwdGVyICphZGFwLCAKCQkJCQlzdHJ1Y3QgaTJjX21zZyBtc2dbXSwgaW50IG51 bSkKewoJc3RydWN0IGR2Yl91c2JfZGV2aWNlICpkID0gaTJjX2dldF9hZGFwZGF0YShhZGFwKTsK CXN0cnVjdCB0YnNxYm94MmNpX3N0YXRlICpzdGF0ZSA9IChzdHJ1Y3QgdGJzcWJveDJjaV9zdGF0 ZSAqKWQtPnByaXY7CglpbnQgaSA9IDA7Cgl1OCBidWY2WzIwXTsKCXU4IGluYnVmWzIwXTsKCglp ZiAoIWQpCgkJcmV0dXJuIC1FTk9ERVY7CgoJbXV0ZXhfbG9jaygmc3RhdGUtPmNhX211dGV4KTsK CglpZiAobXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkLT5pMmNfbXV0ZXgpIDwgMCkKCQlyZXR1 cm4gLUVBR0FJTjsKCglzd2l0Y2ggKG51bSkgewoJY2FzZSAyOgoJCWJ1ZjZbMF09bXNnWzFdLmxl bjsvL2xlbnRoCgkJYnVmNlsxXT1tc2dbMF0uYWRkcjw8MTsvL2RlbW9kIGFkZHIKCQkvL3JlZ2lz dGVyCgkJYnVmNlsyXSA9IG1zZ1swXS5idWZbMF07CgkJYnVmNlszXSA9IG1zZ1swXS5idWZbMV07 CgoJCXRic3Fib3gyY2lfb3BfcncoZC0+dWRldiwgMHg5MiwgMCwgMCwKCQkJCQlidWY2LCA0LCBU QlNRQk9YX1dSSVRFX01TRyk7CgkJLy9tc2xlZXAoNSk7CgkJdGJzcWJveDJjaV9vcF9ydyhkLT51 ZGV2LCAweDkxLCAwLCAwLAoJCQkJCWluYnVmLCBtc2dbMV0ubGVuLCBUQlNRQk9YX1JFQURfTVNH KTsKCQltZW1jcHkobXNnWzFdLmJ1ZiwgaW5idWYsIG1zZ1sxXS5sZW4pOwoJCWJyZWFrOwoJY2Fz ZSAxOgoJCXN3aXRjaCAobXNnWzBdLmFkZHIpIHsKCQljYXNlIDB4NmE6CgkJY2FzZSAweDYxOgoJ CWNhc2UgMHg2MDoKCQkJaWYgKG1zZ1swXS5mbGFncyA9PSAwKSB7CgkJCQlidWY2WzBdID0gbXNn WzBdLmxlbisxOy8vbGVudGgKCQkJCWJ1ZjZbMV0gPSBtc2dbMF0uYWRkcjw8MTsvL2FkZHIKCQkJ CWZvcihpPTA7aTxtc2dbMF0ubGVuO2krKykgewoJCQkJCWJ1ZjZbMitpXSA9IG1zZ1swXS5idWZb aV07Ly9yZWdpc3RlcgoJCQkJfQoJCQkJdGJzcWJveDJjaV9vcF9ydyhkLT51ZGV2LCAweDgwLCAw LCAwLAoJCQkJCWJ1ZjYsIG1zZ1swXS5sZW4rMiwgVEJTUUJPWF9XUklURV9NU0cpOwoJCQl9IGVs c2UgewoJCQkJYnVmNlswXSA9IG1zZ1swXS5sZW47Ly9sZW5ndGgKCQkJCWJ1ZjZbMV0gPSBtc2db MF0uYWRkcjw8MTsvL2FkZHIKCQkJCWJ1ZjZbMl0gPSAweDAwOwoJCQkJdGJzcWJveDJjaV9vcF9y dyhkLT51ZGV2LCAweDkwLCAwLCAwLAoJCQkJCQlidWY2LCAzLCBUQlNRQk9YX1dSSVRFX01TRyk7 CgkJCQkvL21zbGVlcCg1KTsKCQkJCXRic3Fib3gyY2lfb3BfcncoZC0+dWRldiwgMHg5MSwgMCwg MCwKCQkJCQlpbmJ1ZiwgYnVmNlswXSwgVEJTUUJPWF9SRUFEX01TRyk7CgkJCQltZW1jcHkobXNn WzBdLmJ1ZiwgaW5idWYsIG1zZ1swXS5sZW4pOwoJCQl9CgkJCS8vbXNsZWVwKDMpOwoJCQlicmVh azsKCQljYXNlIChUQlNRQk9YX1JDX1FVRVJZKToKCQkJdGJzcWJveDJjaV9vcF9ydyhkLT51ZGV2 LCAweGI4LCAwLCAwLAoJCQkJCWJ1ZjYsIDQsIFRCU1FCT1hfUkVBRF9NU0cpOwoJCQltc2dbMF0u YnVmWzBdID0gYnVmNlsyXTsKCQkJbXNnWzBdLmJ1ZlsxXSA9IGJ1ZjZbM107CgkJCS8vbXNsZWVw KDMpOwoJCQkvL2luZm8oIlRCU1FCT1hfUkNfUVVFUlkgJXggJXggJXggJXhcbiIsCgkJCS8vCQli dWY2WzBdLGJ1ZjZbMV0sYnVmNlsyXSxidWY2WzNdKTsKCQkJYnJlYWs7CgkJY2FzZSAoVEJTUUJP WF9WT0xUQUdFX0NUUkwpOgoJCQlidWY2WzBdID0gMzsKCQkJYnVmNlsxXSA9IG1zZ1swXS5idWZb MF07CgkJCXRic3Fib3gyY2lfb3BfcncoZC0+dWRldiwgMHg4YSwgMCwgMCwKCQkJCQlidWY2LCAy LCBUQlNRQk9YX1dSSVRFX01TRyk7CgkJCWJyZWFrOwoJCWNhc2UgKFRCU1FCT1hfTEVEX0NUUkwp OgoJCQlidWY2WzBdID0gNTsKCQkJYnVmNlsxXSA9IG1zZ1swXS5idWZbMF07CgkJCXRic3Fib3gy Y2lfb3BfcncoZC0+dWRldiwgMHg4YSwgMCwgMCwKCQkJCQlidWY2LCAyLCBUQlNRQk9YX1dSSVRF X01TRyk7CgkJCWJyZWFrOwoJCX0KCgkJYnJlYWs7Cgl9CgoJbXV0ZXhfdW5sb2NrKCZkLT5pMmNf bXV0ZXgpOwoJbXV0ZXhfdW5sb2NrKCZzdGF0ZS0+Y2FfbXV0ZXgpOwoJcmV0dXJuIG51bTsKfQoK c3RhdGljIHUzMiB0YnNxYm94MmNpX2kyY19mdW5jKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRl cikKewoJcmV0dXJuIEkyQ19GVU5DX0kyQzsKfQoKc3RhdGljIHZvaWQgdGJzcWJveDJjaV9sZWRf Y3RybChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwgaW50IG9mZm9uKQp7CglzdGF0aWMgdTggbGVk X29mZltdID0geyAwIH07CglzdGF0aWMgdTggbGVkX29uW10gPSB7IDEgfTsKCXN0cnVjdCBpMmNf bXNnIG1zZyA9IHsKCQkuYWRkciA9IFRCU1FCT1hfTEVEX0NUUkwsCgkJLmZsYWdzID0gMCwKCQku YnVmID0gbGVkX29mZiwKCQkubGVuID0gMQoJfTsKCXN0cnVjdCBkdmJfdXNiX2FkYXB0ZXIgKnVk ZXZfYWRhcCA9CgkJKHN0cnVjdCBkdmJfdXNiX2FkYXB0ZXIgKikoZmUtPmR2Yi0+cHJpdik7CgoJ aWYgKG9mZm9uKQoJCW1zZy5idWYgPSBsZWRfb247CglpMmNfdHJhbnNmZXIoJnVkZXZfYWRhcC0+ ZGV2LT5pMmNfYWRhcCwgJm1zZywgMSk7CglpbmZvKCJ0YnNxYm94MmNpX2xlZF9jdHJsICVkIixv ZmZvbik7Cn0KCnN0YXRpYyBzdHJ1Y3Qgc3R2MDkweF9jb25maWcgZWFyZGFfY29uZmlnID0gewoJ LmRldmljZSAgICAgICAgID0gU1RWMDkwMywKCS5kZW1vZF9tb2RlICAgICA9IFNUVjA5MHhfU0lO R0xFLAoJLmNsa19tb2RlICAgICAgID0gU1RWMDkweF9DTEtfRVhULAoKCS54dGFsICAgICAgICAg ICA9IDI3MDAwMDAwLAoJLmFkZHJlc3MgICAgICAgID0gMHg2YSwKCgkudHMxX21vZGUgICAgICAg PSBTVFYwOTB4X1RTTU9ERV9EVkJDSSwKCS50czJfbW9kZSAgICAgICA9IFNUVjA5MHhfVFNNT0RF X1NFUklBTF9DT05USU5VT1VTLAoJCgkucmVwZWF0ZXJfbGV2ZWwgICAgICAgICA9IFNUVjA5MHhf UlBUTEVWRUxfMTYsCgoJLnR1bmVyX2dldF9mcmVxdWVuY3kgICAgPSBzdGI2MTAwX2dldF9mcmVx dWVuY3ksCgkudHVuZXJfc2V0X2ZyZXF1ZW5jeSAgICA9IHN0YjYxMDBfc2V0X2ZyZXF1ZW5jeSwK CS50dW5lcl9zZXRfYmFuZHdpZHRoICAgID0gc3RiNjEwMF9zZXRfYmFuZHdpZHRoLAoJLnR1bmVy X2dldF9iYW5kd2lkdGggICAgPSBzdGI2MTAwX2dldF9iYW5kd2lkdGgsCn07CgpzdGF0aWMgc3Ry dWN0IHN0YjYxMDBfY29uZmlnIHFib3gyX3N0YjYxMDBfY29uZmlnID0gewoJLnR1bmVyX2FkZHJl c3MgID0gMHg2MCwKCS5yZWZjbG9jayAgICAgICA9IDI3MDAwMDAwLAp9OwoKc3RhdGljIHN0cnVj dCBpMmNfYWxnb3JpdGhtIHRic3Fib3gyY2lfaTJjX2FsZ28gPSB7CgkubWFzdGVyX3hmZXIgPSB0 YnNxYm94MmNpX2kyY190cmFuc2ZlciwKCS5mdW5jdGlvbmFsaXR5ID0gdGJzcWJveDJjaV9pMmNf ZnVuYywKfTsKCnN0YXRpYyBpbnQgdGJzcWJveDJjaV9lYXJkYV90dW5lcl9hdHRhY2goc3RydWN0 IGR2Yl91c2JfYWRhcHRlciAqYWRhcCkKewoJaWYgKCFkdmJfYXR0YWNoKHN0YjYxMDBfYXR0YWNo LCBhZGFwLT5mZV9hZGFwLT5mZSwgJnFib3gyX3N0YjYxMDBfY29uZmlnLAoJCSZhZGFwLT5kZXYt PmkyY19hZGFwKSkKCQlyZXR1cm4gLUVJTzsKCglpbmZvKCJBdHRhY2hlZCBzdGI2MTAwIVxuIik7 CgoJcmV0dXJuIDA7Cn0Kc3RhdGljIGludCB0YnNxYm94MmNpX3JlYWRfbWFjX2FkZHJlc3Moc3Ry dWN0IGR2Yl91c2JfZGV2aWNlICpkLCB1OCBtYWNbNl0pCnsKCWludCBpLHJldDsKCXU4IGlidWZb M10gPSB7MCwgMCwwfTsKCXU4IGVlcHJvbVsyNTZdLCBlZXByb21saW5lWzE2XTsKCglmb3IgKGkg PSAwOyBpIDwgMjU2OyBpKyspIHsKCQlpYnVmWzBdPTE7Ly9sZW50aAoJCWlidWZbMV09MHhhMDsv L2VlcHJvbSBhZGRyCgkJaWJ1ZlsyXT1pOy8vcmVnaXN0ZXIKCQlyZXQgPSB0YnNxYm94MmNpX29w X3J3KGQtPnVkZXYsIDB4OTAsIDAsIDAsCgkJCQkJaWJ1ZiwgMywgVEJTUUJPWF9XUklURV9NU0cp OwoJCXJldCA9IHRic3Fib3gyY2lfb3BfcncoZC0+dWRldiwgMHg5MSwgMCwgMCwKCQkJCQlpYnVm LCAxLCBUQlNRQk9YX1JFQURfTVNHKTsKCQkJaWYgKHJldCA8IDApIHsKCQkJCWVycigicmVhZCBl ZXByb20gZmFpbGVkLiIpOwoJCQkJcmV0dXJuIC0xOwoJCQl9IGVsc2UgewoJCQkJZWVwcm9tbGlu ZVtpJTE2XSA9IGlidWZbMF07CgkJCQllZXByb21baV0gPSBpYnVmWzBdOwoJCQl9CgkJCQoJCQlp ZiAoKGkgJSAxNikgPT0gMTUpIHsKCQkJCWRlYl94ZmVyKCIlMDJ4OiAiLCBpIC0gMTUpOwoJCQkJ ZGVidWdfZHVtcChlZXByb21saW5lLCAxNiwgZGViX3hmZXIpOwoJCQl9Cgl9CgltZW1jcHkobWFj LCBlZXByb20gKyAxNiwgNik7CglyZXR1cm4gMDsKfTsKCnN0YXRpYyBpbnQgdGJzcWJveDJjaV9z ZXRfdm9sdGFnZShzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwgCgkJCQkJCWZlX3NlY192b2x0YWdl X3Qgdm9sdGFnZSkKewoJc3RhdGljIHU4IGNvbW1hbmRfMTN2WzFdID0gezB4MDB9OwoJc3RhdGlj IHU4IGNvbW1hbmRfMTh2WzFdID0gezB4MDF9OwoJc3RydWN0IGkyY19tc2cgbXNnW10gPSB7CgkJ ey5hZGRyID0gVEJTUUJPWF9WT0xUQUdFX0NUUkwsIC5mbGFncyA9IDAsCgkJCS5idWYgPSBjb21t YW5kXzEzdiwgLmxlbiA9IDF9LAoJfTsKCQoJc3RydWN0IGR2Yl91c2JfYWRhcHRlciAqdWRldl9h ZGFwID0KCQkoc3RydWN0IGR2Yl91c2JfYWRhcHRlciAqKShmZS0+ZHZiLT5wcml2KTsKCWlmICh2 b2x0YWdlID09IFNFQ19WT0xUQUdFXzE4KQoJCW1zZ1swXS5idWYgPSBjb21tYW5kXzE4djsKCS8v aW5mbygidGJzcWJveDJjaV9zZXRfdm9sdGFnZSAlZCIsdm9sdGFnZSk7CglpMmNfdHJhbnNmZXIo JnVkZXZfYWRhcC0+ZGV2LT5pMmNfYWRhcCwgbXNnLCAxKTsKCXJldHVybiAwOwp9CgpzdGF0aWMg c3RydWN0IGR2Yl91c2JfZGV2aWNlX3Byb3BlcnRpZXMgdGJzcWJveDJjaV9wcm9wZXJ0aWVzOwoK c3RhdGljIGludCB0YnNxYm94MmNpX2Zyb250ZW5kX2F0dGFjaChzdHJ1Y3QgZHZiX3VzYl9hZGFw dGVyICpkKQp7CglzdHJ1Y3QgZHZiX3VzYl9kZXZpY2UgKnUgPSBkLT5kZXY7CglzdHJ1Y3QgdGJz cWJveDJjaV9zdGF0ZSAqc3RhdGUgPSAoc3RydWN0IHRic3Fib3gyY2lfc3RhdGUgKil1LT5wcml2 OwoJdTggYnVmWzIwXTsKCgltdXRleF9pbml0KCZzdGF0ZS0+Y2FfbXV0ZXgpOwoKCWlmICh0YnNx Ym94MmNpX3Byb3BlcnRpZXMuYWRhcHRlci0+ZmUtPnR1bmVyX2F0dGFjaCA9PSAmdGJzcWJveDJj aV9lYXJkYV90dW5lcl9hdHRhY2gpIHsKCQlkLT5mZV9hZGFwLT5mZSA9IGR2Yl9hdHRhY2goc3R2 MDkweF9hdHRhY2gsICZlYXJkYV9jb25maWcsCgkJCQkmZC0+ZGV2LT5pMmNfYWRhcCwgU1RWMDkw eF9ERU1PRFVMQVRPUl8wKTsKCQlpZiAoZC0+ZmVfYWRhcC0+ZmUgIT0gTlVMTCkgewoJCQlkLT5m ZV9hZGFwLT5mZS0+b3BzLnNldF92b2x0YWdlID0gdGJzcWJveDJjaV9zZXRfdm9sdGFnZTsKCQkJ aW5mbygiQXR0YWNoZWQgc3R2MDkwMyFcbiIpOwoKCQkJYnVmWzBdID0gNzsKCQkJYnVmWzFdID0g MTsKCQkJdGJzcWJveDJjaV9vcF9ydyhkLT5kZXYtPnVkZXYsIDB4OGEsIDAsIDAsCgkJCQkJYnVm LCAyLCBUQlNRQk9YX1dSSVRFX01TRyk7CgoJCQlidWZbMF0gPSAxOwoJCQlidWZbMV0gPSAxOwoJ CQl0YnNxYm94MmNpX29wX3J3KGQtPmRldi0+dWRldiwgMHg4YSwgMCwgMCwKCQkJCQlidWYsIDIs IFRCU1FCT1hfV1JJVEVfTVNHKTsKCQkJCgkJCWJ1ZlswXSA9IDY7CgkJCWJ1ZlsxXSA9IDE7CgkJ CXRic3Fib3gyY2lfb3BfcncoZC0+ZGV2LT51ZGV2LCAweDhhLCAwLCAwLAoJCQkJCWJ1ZiwgMiwg VEJTUUJPWF9XUklURV9NU0cpOwoKCQkJdGJzcWJveDJjaV9pbml0KGQpOwoJCQlyZXR1cm4gMDsK CQl9Cgl9CgoJcmV0dXJuIC1FSU87Cn0KCnN0YXRpYyB2b2lkIHRic3Fib3gyY2kyX3VzYl9kaXNj b25uZWN0IChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqIGludGYpCnsKCXN0cnVjdCBkdmJfdXNiX2Rl dmljZSAqZCA9IHVzYl9nZXRfaW50ZmRhdGEgKGludGYpOwoJCgl0YnNxYm94MmNpX3VuaW5pdCAo ZCk7CglkdmJfdXNiX2RldmljZV9leGl0IChpbnRmKTsKfQoKc3RhdGljIHN0cnVjdCByY19tYXBf dGFibGUgdGJzcWJveDJjaV9yY19rZXlzW10gPSB7Cgl7IDB4ZmY4NCwgS0VZX1BPV0VSMn0sCQkv KiBwb3dlciAqLwoJeyAweGZmOTQsIEtFWV9NVVRFfSwJCS8qIG11dGUgKi8KCXsgMHhmZjg3LCBL RVlfMX0sCgl7IDB4ZmY4NiwgS0VZXzJ9LAoJeyAweGZmODUsIEtFWV8zfSwKCXsgMHhmZjhiLCBL RVlfNH0sCgl7IDB4ZmY4YSwgS0VZXzV9LAoJeyAweGZmODksIEtFWV82fSwKCXsgMHhmZjhmLCBL RVlfN30sCgl7IDB4ZmY4ZSwgS0VZXzh9LAoJeyAweGZmOGQsIEtFWV85fSwKCXsgMHhmZjkyLCBL RVlfMH0sCgl7IDB4ZmY5NiwgS0VZX0NIQU5ORUxVUH0sCS8qIGNoKyAqLwoJeyAweGZmOTEsIEtF WV9DSEFOTkVMRE9XTn0sCS8qIGNoLSAqLwoJeyAweGZmOTMsIEtFWV9WT0xVTUVVUH0sCS8qIHZv bCsgKi8KCXsgMHhmZjhjLCBLRVlfVk9MVU1FRE9XTn0sCS8qIHZvbC0gKi8KCXsgMHhmZjgzLCBL RVlfUkVDT1JEfSwJCS8qIHJlYyAqLwoJeyAweGZmOTgsIEtFWV9QQVVTRX0sCQkvKiBwYXVzZSwg eWVsbG93ICovCgl7IDB4ZmY5OSwgS0VZX09LfSwJCS8qIG9rICovCgl7IDB4ZmY5YSwgS0VZX0NB TUVSQX0sCQkvKiBzbmFwc2hvdCAqLwoJeyAweGZmODEsIEtFWV9VUH0sCgl7IDB4ZmY5MCwgS0VZ X0xFRlR9LAoJeyAweGZmODIsIEtFWV9SSUdIVH0sCgl7IDB4ZmY4OCwgS0VZX0RPV059LAoJeyAw eGZmOTUsIEtFWV9GQVZPUklURVN9LAkvKiBibHVlICovCgl7IDB4ZmY5NywgS0VZX1NVQlRJVExF fSwJLyogZ3JlZW4gKi8KCXsgMHhmZjlkLCBLRVlfWk9PTX0sCgl7IDB4ZmY5ZiwgS0VZX0VYSVR9 LAoJeyAweGZmOWUsIEtFWV9NRU5VfSwKCXsgMHhmZjljLCBLRVlfRVBHfSwKCXsgMHhmZjgwLCBL RVlfUFJFVklPVVN9LAkvKiByZWQgKi8KCXsgMHhmZjliLCBLRVlfTU9ERX0sCgl7IDB4ZmZkZCwg S0VZX1RWIH0sCgl7IDB4ZmZkZSwgS0VZX1BMQVkgfSwKCXsgMHhmZmRjLCBLRVlfU1RPUCB9LAoJ eyAweGZmZGIsIEtFWV9SRVdJTkQgfSwKCXsgMHhmZmRhLCBLRVlfRkFTVEZPUldBUkQgfSwKCXsg MHhmZmQ5LCBLRVlfUFJFVklPVVMgfSwJLyogcmVwbGF5ICovCgl7IDB4ZmZkOCwgS0VZX05FWFQg fSwJCS8qIHNraXAgKi8KCXsgMHhmZmQxLCBLRVlfTlVNRVJJQ19TVEFSIH0sCgl7IDB4ZmZkMiwg S0VZX05VTUVSSUNfUE9VTkQgfSwKCXsgMHhmZmQ0LCBLRVlfREVMRVRFIH0sCQkvKiBjbGVhciAq Lwp9OwoKc3RhdGljIGludCB0YnNxYm94MmNpX3JjX3F1ZXJ5KHN0cnVjdCBkdmJfdXNiX2Rldmlj ZSAqZCwgdTMyICpldmVudCwgaW50ICpzdGF0ZSkKewoJc3RydWN0IHJjX21hcF90YWJsZSAqa2V5 bWFwID0gZC0+cHJvcHMucmMubGVnYWN5LnJjX21hcF90YWJsZTsKCWludCBrZXltYXBfc2l6ZSA9 IGQtPnByb3BzLnJjLmxlZ2FjeS5yY19tYXBfc2l6ZTsKCglzdHJ1Y3QgdGJzcWJveDJjaV9zdGF0 ZSAqc3QgPSBkLT5wcml2OwoJdTgga2V5WzJdOwoJc3RydWN0IGkyY19tc2cgbXNnW10gPSB7CgkJ ey5hZGRyID0gVEJTUUJPWF9SQ19RVUVSWSwgLmZsYWdzID0gSTJDX01fUkQsIC5idWYgPSBrZXks CgkJLmxlbiA9IDJ9LAoJfTsKCWludCBpOwoKCSpzdGF0ZSA9IFJFTU9URV9OT19LRVlfUFJFU1NF RDsKCWlmICh0YnNxYm94MmNpX2kyY190cmFuc2ZlcigmZC0+aTJjX2FkYXAsIG1zZywgMSkgPT0g MSkgewoJCS8vaW5mbygia2V5OiAleCAleFxuIixtc2dbMF0uYnVmWzBdLG1zZ1swXS5idWZbMV0p OyAKCQlmb3IgKGkgPSAwOyBpIDwga2V5bWFwX3NpemU7IGkrKykgewoJCQlpZiAocmM1X2RhdGEo JmtleW1hcFtpXSkgPT0gbXNnWzBdLmJ1ZlsxXSkgewoJCQkJKnN0YXRlID0gUkVNT1RFX0tFWV9Q UkVTU0VEOwoJCQkJKmV2ZW50ID0ga2V5bWFwW2ldLmtleWNvZGU7CgkJCQlzdC0+bGFzdF9rZXlf cHJlc3NlZCA9CgkJCQkJa2V5bWFwW2ldLmtleWNvZGU7CgkJCQlicmVhazsKCQkJfQoJCXN0LT5s YXN0X2tleV9wcmVzc2VkID0gMDsKCQl9Cgl9CgkgCglyZXR1cm4gMDsKfQoKc3RhdGljIHN0cnVj dCB1c2JfZGV2aWNlX2lkIHRic3Fib3gyY2lfdGFibGVbXSA9IHsKCXtVU0JfREVWSUNFKDB4NzM0 YywgMHg1OTgwKX0sCgl7IH0KfTsKCk1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCB0YnNxYm94MmNp X3RhYmxlKTsKCnN0YXRpYyBpbnQgdGJzcWJveDJjaV9sb2FkX2Zpcm13YXJlKHN0cnVjdCB1c2Jf ZGV2aWNlICpkZXYsCgkJCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnJtd3IpCnsKCXU4ICpiLCAq cDsKCWludCByZXQgPSAwLCBpOwoJdTggcmVzZXQ7Cgljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3 OwoJc3dpdGNoIChkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSB7CgljYXNlIDB4NTk4MDoKCQly ZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgdGJzcWJveDJjaV9wcm9wZXJ0aWVzLmZpcm13YXJl LCAmZGV2LT5kZXYpOwoJCWlmIChyZXQgIT0gMCkgewoJCQllcnIoImRpZCBub3QgZmluZCB0aGUg ZmlybXdhcmUgZmlsZS4gKCVzKSAiCgkJCSJQbGVhc2Ugc2VlIGxpbnV4L0RvY3VtZW50YXRpb24v ZHZiLyBmb3IgbW9yZSBkZXRhaWxzICIKCQkJIm9uIGZpcm13YXJlLXByb2JsZW1zLiIsIHRic3Fi b3gyY2lfcHJvcGVydGllcy5maXJtd2FyZSk7CgkJCXJldHVybiByZXQ7CgkJfQoJCWJyZWFrOwoJ ZGVmYXVsdDoKCQlmdyA9IGZybXdyOwoJCWJyZWFrOwoJfQoJaW5mbygic3RhcnQgZG93bmxvYWRp bmcgVEJTUUJPWDJDSSBmaXJtd2FyZSIpOwoJcCA9IGttYWxsb2MoZnctPnNpemUsIEdGUF9LRVJO RUwpOwoJcmVzZXQgPSAxOwoJLypzdG9wIHRoZSBDUFUqLwoJdGJzcWJveDJjaV9vcF9ydyhkZXYs IDB4YTAsIDB4N2Y5MiwgMCwgJnJlc2V0LCAxLCBUQlNRQk9YX1dSSVRFX01TRyk7Cgl0YnNxYm94 MmNpX29wX3J3KGRldiwgMHhhMCwgMHhlNjAwLCAwLCAmcmVzZXQsIDEsIFRCU1FCT1hfV1JJVEVf TVNHKTsKCglpZiAocCAhPSBOVUxMKSB7CgkJbWVtY3B5KHAsIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7 CgkJZm9yIChpID0gMDsgaSA8IGZ3LT5zaXplOyBpICs9IDB4NDApIHsKCQkJYiA9ICh1OCAqKSBw ICsgaTsKCQkJaWYgKHRic3Fib3gyY2lfb3BfcncoZGV2LCAweGEwLCBpLCAwLCBiICwgMHg0MCwK CQkJCQlUQlNRQk9YX1dSSVRFX01TRykgIT0gMHg0MCkgewoJCQkJZXJyKCJlcnJvciB3aGlsZSB0 cmFuc2ZlcnJpbmcgZmlybXdhcmUiKTsKCQkJCXJldCA9IC1FSU5WQUw7CgkJCQlicmVhazsKCQkJ fQoJCX0KCQkvKiByZXN0YXJ0IHRoZSBDUFUgKi8KCQlyZXNldCA9IDA7CgkJaWYgKHJldCB8fCB0 YnNxYm94MmNpX29wX3J3KGRldiwgMHhhMCwgMHg3ZjkyLCAwLCAmcmVzZXQsIDEsCgkJCQkJVEJT UUJPWF9XUklURV9NU0cpICE9IDEpIHsKCQkJZXJyKCJjb3VsZCBub3QgcmVzdGFydCB0aGUgVVNC IGNvbnRyb2xsZXIgQ1BVLiIpOwoJCQlyZXQgPSAtRUlOVkFMOwoJCX0KCQlpZiAocmV0IHx8IHRi c3Fib3gyY2lfb3BfcncoZGV2LCAweGEwLCAweGU2MDAsIDAsICZyZXNldCwgMSwKCQkJCQlUQlNR Qk9YX1dSSVRFX01TRykgIT0gMSkgewoJCQllcnIoImNvdWxkIG5vdCByZXN0YXJ0IHRoZSBVU0Ig Y29udHJvbGxlciBDUFUuIik7CgkJCXJldCA9IC1FSU5WQUw7CgkJfQoKCQltc2xlZXAoMTAwKTsK CQlrZnJlZShwKTsKCX0KCXJldHVybiByZXQ7Cn0KCnN0YXRpYyBzdHJ1Y3QgZHZiX3VzYl9kZXZp Y2VfcHJvcGVydGllcyB0YnNxYm94MmNpX3Byb3BlcnRpZXMgPSB7CgkuY2FwcyA9IERWQl9VU0Jf SVNfQU5fSTJDX0FEQVBURVIsCgkudXNiX2N0cmwgPSBERVZJQ0VfU1BFQ0lGSUMsCgkuZmlybXdh cmUgPSAiZHZiLXVzYi10YnNxYm94LWlkNTk4MC5mdyIsCgkuc2l6ZV9vZl9wcml2ID0gc2l6ZW9m KHN0cnVjdCB0YnNxYm94MmNpX3N0YXRlKSwKCS5ub19yZWNvbm5lY3QgPSAxLAoKCS5pMmNfYWxn byA9ICZ0YnNxYm94MmNpX2kyY19hbGdvLAoJLnJjLmxlZ2FjeSA9IHsKCQkucmNfbWFwX3RhYmxl ID0gdGJzcWJveDJjaV9yY19rZXlzLAoJCS5yY19tYXBfc2l6ZSA9IEFSUkFZX1NJWkUodGJzcWJv eDJjaV9yY19rZXlzKSwKCQkucmNfaW50ZXJ2YWwgPSA0NTAsCgkJLnJjX3F1ZXJ5ID0gdGJzcWJv eDJjaV9yY19xdWVyeSwKCX0sCgoJLmdlbmVyaWNfYnVsa19jdHJsX2VuZHBvaW50ID0gMHg4MSwK CS8qIHBhcmFtZXRlciBmb3IgdGhlIE1QRUcyLWRhdGEgdHJhbnNmZXIgKi8KCS5udW1fYWRhcHRl cnMgPSAxLAoJLmRvd25sb2FkX2Zpcm13YXJlID0gdGJzcWJveDJjaV9sb2FkX2Zpcm13YXJlLAoJ LnJlYWRfbWFjX2FkZHJlc3MgPSB0YnNxYm94MmNpX3JlYWRfbWFjX2FkZHJlc3MsCgkuYWRhcHRl ciA9IHt7CgkJLm51bV9mcm9udGVuZHMgPSAxLAoJCS5mZSA9IHt7CgkJCS5mcm9udGVuZF9hdHRh Y2ggPSB0YnNxYm94MmNpX2Zyb250ZW5kX2F0dGFjaCwKCQkJLnN0cmVhbWluZ19jdHJsID0gTlVM TCwKCQkJLnR1bmVyX2F0dGFjaCA9IHRic3Fib3gyY2lfZWFyZGFfdHVuZXJfYXR0YWNoLAoJCQku c3RyZWFtID0gewoJCQkJLnR5cGUgPSBVU0JfQlVMSywKCQkJCS5jb3VudCA9IDgsCgkJCQkuZW5k cG9pbnQgPSAweDgyLAoJCQkJLnUgPSB7CgkJCQkJLmJ1bGsgPSB7CgkJCQkJCS5idWZmZXJzaXpl ID0gNDA5NiwKCQkJCQl9CgkJCQl9CgkJCX0sCgkJfSB9LAoJfSB9LAoKCS5udW1fZGV2aWNlX2Rl c2NzID0gMSwKCS5kZXZpY2VzID0gewoJCXsiVEJTIFFib3ggRFZCLVMyIENJIFVTQjIuMCIsCgkJ CXsmdGJzcWJveDJjaV90YWJsZVswXSwgTlVMTH0sCgkJCXtOVUxMfSwKCQl9Cgl9Cn07CgpzdGF0 aWMgaW50IHRic3Fib3gyY2lfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCgkJY29u c3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQp7CglpZiAoMCA9PSBkdmJfdXNiX2RldmljZV9p bml0KGludGYsICZ0YnNxYm94MmNpX3Byb3BlcnRpZXMsCgkJCVRISVNfTU9EVUxFLCBOVUxMLCBh ZGFwdGVyX25yKSkgewoJCXJldHVybiAwOwoJfQoJcmV0dXJuIC1FTk9ERVY7Cn0KCnN0YXRpYyBz dHJ1Y3QgdXNiX2RyaXZlciB0YnNxYm94MmNpX2RyaXZlciA9IHsKCS5uYW1lID0gInRic3Fib3gy Y2kiLAoJLnByb2JlID0gdGJzcWJveDJjaV9wcm9iZSwKCS5kaXNjb25uZWN0ID0gdGJzcWJveDJj aTJfdXNiX2Rpc2Nvbm5lY3QsCgkuaWRfdGFibGUgPSB0YnNxYm94MmNpX3RhYmxlLAp9OwoKc3Rh dGljIGludCBfX2luaXQgdGJzcWJveDJjaV9tb2R1bGVfaW5pdCh2b2lkKQp7CglpbnQgcmV0ID0g IHVzYl9yZWdpc3RlcigmdGJzcWJveDJjaV9kcml2ZXIpOwoJaWYgKHJldCkKCQllcnIoInVzYl9y ZWdpc3RlciBmYWlsZWQuIEVycm9yIG51bWJlciAlZCIsIHJldCk7CgoJcmV0dXJuIHJldDsKfQoK c3RhdGljIHZvaWQgX19leGl0IHRic3Fib3gyY2lfbW9kdWxlX2V4aXQodm9pZCkKewoJdXNiX2Rl cmVnaXN0ZXIoJnRic3Fib3gyY2lfZHJpdmVyKTsKfQoKbW9kdWxlX2luaXQodGJzcWJveDJjaV9t b2R1bGVfaW5pdCk7Cm1vZHVsZV9leGl0KHRic3Fib3gyY2lfbW9kdWxlX2V4aXQpOwoKTU9EVUxF X0FVVEhPUigiS29uc3RhbnRpbiBEaW1pdHJvdiA8a29zaW8uZGltaXRyb3ZAZ21haWwuY29tPiIp OwpNT0RVTEVfREVTQ1JJUFRJT04oIlR1cmJvU2lnaHQgKFRCUykgUWJveCBEVkItUzIgQ0kgZHJp dmVyIik7Ck1PRFVMRV9WRVJTSU9OKCIxLjAiKTsKTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo= --=-8udXjz/a1pMzbjdrTWB0 Content-Disposition: attachment; filename="tbs-qbox2ci.h" Content-Type: text/x-chdr; name="tbs-qbox2ci.h"; charset="UTF-8" Content-Transfer-Encoding: base64 I2lmbmRlZiBfVEJTUUJPWDJDSV9IXwojZGVmaW5lIF9UQlNRQk9YMkNJX0hfCgojZGVmaW5lIERW Ql9VU0JfTE9HX1BSRUZJWCAidGJzcWJveDJjaSIKI2luY2x1ZGUgImR2Yi11c2IuaCIKCiNkZWZp bmUgZGViX3hmZXIoYXJncy4uLikgZHByaW50ayhkdmJfdXNiX3Ric3Fib3gyY2lfZGVidWcsIDB4 MDIsIGFyZ3MpCiNlbmRpZgo= --=-8udXjz/a1pMzbjdrTWB0 Content-Type: application/mbox; name="patch1.patch.orig" Content-Disposition: attachment; filename="patch1.patch.orig" Content-Transfer-Encoding: base64 RnJvbSBhYzU0ODUyMmFkYzNhNjM2ZjQ0MTI2Nzc4NjBmN2IyMDQ5NGMxNDUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGV2ZW4gVmFuZGVuIEJyYW5kZW4gPHN0ZXZlbnZhbmRlbmJy YW5kZW5zdGlmdEBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTAgSnVuIDIwMTUgMTg6MDI6MjkgKzAy MDAKU3ViamVjdDogW1BBVENIIDEvN10gYWRkIHR1cmJvc2lnaHQgVklEIGFuZCB0YnM1OTgwIFBJ RAoKLS0tCiBkcml2ZXJzL21lZGlhL2R2Yi1jb3JlL2R2Yi11c2ItaWRzLmggfCAyICsrCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9k dmItY29yZS9kdmItdXNiLWlkcy5oIGIvZHJpdmVycy9tZWRpYS9kdmItY29yZS9kdmItdXNiLWlk cy5oCmluZGV4IGMxMTdmYjMuLjBlYTFlOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZi LWNvcmUvZHZiLXVzYi1pZHMuaAorKysgYi9kcml2ZXJzL21lZGlhL2R2Yi1jb3JlL2R2Yi11c2It aWRzLmgKQEAgLTcwLDYgKzcwLDcgQEAKICNkZWZpbmUgVVNCX1ZJRF9FVk9MVVRFUEMJCQkweDFl NTkKICNkZWZpbmUgVVNCX1ZJRF9BWlVSRVdBVkUJCQkweDEzZDMKICNkZWZpbmUgVVNCX1ZJRF9U RUNITklTQVQJCQkweDE0ZjcKKyNkZWZpbmUgVVNCX1ZJRF9UVVJCT1NJR0hUCQkJMHg3MzRjCiAK IC8qIFByb2R1Y3QgSURzICovCiAjZGVmaW5lIFVTQl9QSURfQURTVEVDSF9VU0IyX0NPTEQJCQkw eGEzMzMKQEAgLTM4OCw0ICszODksNSBAQAogI2RlZmluZSBVU0JfUElEX1BDVFZfMjAwMkVfU0Ug ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNWQKICNkZWZpbmUgVVNCX1BJRF9TVkVPTl9T VFYyNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkM2FmCiAjZGVmaW5lIFVTQl9QSURf VFVSQk9YX0RUVF8yMDAwICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZDNhNAorI2RlZmluZSBV U0JfUElEX1RVUkJPU0lHSFRfNTk4MAkJCQkweDU5ODAKICNlbmRpZgotLSAKMi40LjIKCgpGcm9t IGU5ZDNjOWIwNzk2NTBlNjlmMDlhMDk4MDJkMjUzNmI1OGUwYTY5Y2IgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFN0ZXZlbiBWYW5kZW4gQnJhbmRlbiA8c3RldmVudmFuZGVuYnJhbmRl bnN0aWZ0QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMCBKdW4gMjAxNSAxODoxNzo0OSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMi83XSBpbml0aWFsIGRyaXZlciBzdXBwb3J0IHRicyA1OTgwCgotLS0K IGRyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2IvZHcyMTAyLmMgfCA4NyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9k dzIxMDIuYyBiL2RyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2IvZHcyMTAyLmMKaW5kZXggZjFmMzU3 Zi4uZWRlMjRlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIu YworKysgYi9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiL2R3MjEwMi5jCkBAIC0zLDcgKzMsOCBA QAogICoJVGVWaWkgUzYwMCwgUzYzMCwgUzY1MCwgUzY2MCwgUzQ4MCwgUzQyMSwgUzYzMgogICoJ UHJvZiAxMTAwLCA3NTAwLAogICoJR2VuaWF0ZWNoIFNVMzAwMCwgVDIyMCwKLSAqCVRlY2hub1Ry ZW5kIFMyLTQ2MDAgQ2FyZHMKKyAqCVRlY2hub1RyZW5kIFMyLTQ2MDAgQ2FyZHMsCisgKglUdXJi b3NpZ2h0IFRCUzU5ODAKICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEyIElnb3IgTS4gTGlwbGlh bmluIChsaXBsaWFuaW5AbWUuYnkpCiAgKgogICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKQEAgLTExMCw2ICsx MTEsNyBAQAogI2RlZmluZSBTNjYwX0ZJUk1XQVJFICAgImR2Yi11c2ItczY2MC5mdyIKICNkZWZp bmUgUDExMDBfRklSTVdBUkUgICJkdmItdXNiLXAxMTAwLmZ3IgogI2RlZmluZSBQNzUwMF9GSVJN V0FSRSAgImR2Yi11c2ItcDc1MDAuZnciCisjZGVmaW5lIFQ1OTgwX0ZJUk1XQVJFICAiZHZiLXVz Yi10YnNxYm94LWlkNTk4MC5mdyIKIAogI2RlZmluZQllcnJfc3RyICJkaWQgbm90IGZpbmQgdGhl IGZpcm13YXJlIGZpbGUuICglcykgIiBcCiAJCSJQbGVhc2Ugc2VlIGxpbnV4L0RvY3VtZW50YXRp b24vZHZiLyBmb3IgbW9yZSBkZXRhaWxzICIgXApAQCAtNjI5LDYgKzYzMSwxNyBAQCBzdGF0aWMg aW50IHM2eDBfaTJjX3RyYW5zZmVyKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgc3RydWN0IGky Y19tc2cgbXNnW10sCiAJCQkJCWdvdG8gdW5sb2NrOwogCQkJCX0KIAorCQkJCWlmKGxlMTZfdG9f Y3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KQorCQkJCQk9PSAweDU5ODAgJiYgbnVtID09 IDEpIHsKKwkJCQkJdTggb2J1ZlszXTsKKwkJCQkJb2J1ZlswXSA9IG1zZ1swXS5sZW47CisJCQkJ CW9idWZbMV0gPSBtc2dbMF0uYWRkciA8PCAxOworCQkJCQlvYnVmWzJdID0gMHgwMDsKKwkJCQkJ ZHcyMTB4X29wX3J3KGQtPnVkZXYsIDB4OTAsMCwwLAorCQkJCQkJaWJ1ZiwgbXNnW2pdLmxlbiwK KwkJCQkJCURXMjEwWF9SRUFEX01TRyk7CisJCQkJfQorCiAJCQkJZHcyMTB4X29wX3J3KGQtPnVk ZXYsIDB4OTEsIDAsIDAsCiAJCQkJCQlpYnVmLCBtc2dbal0ubGVuLAogCQkJCQkJRFcyMTBYX1JF QURfTVNHKTsKQEAgLTY2OSw5ICs2ODIsMTAgQEAgc3RhdGljIGludCBzNngwX2kyY190cmFuc2Zl cihzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIHN0cnVjdCBpMmNfbXNnIG1zZ1tdLAogCQkJCW1l bWNweShvYnVmICsgMiwgbXNnW2pdLmJ1ZiwgbXNnW2pdLmxlbik7CiAJCQkJZHcyMTB4X29wX3J3 KGQtPnVkZXYsCiAJCQkJCQlsZTE2X3RvX2NwdSh1ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkg PT0KLQkJCQkJCTB4NzUwMCA/IDB4OTIgOiAweDkwLCAwLCAwLAorCQkJCQkJMHg1OTgwID8gMHg5 MiA6IDB4OTAsIDAsIDAsCiAJCQkJCQlvYnVmLCBtc2dbal0ubGVuICsgMiwKIAkJCQkJCURXMjEw WF9XUklURV9NU0cpOworCQkJCS8vVE9ETzogbW9kZGVkIGZyb20gMHg3NTAwCiAJCQkJYnJlYWs7 CiAJCQl9IGVsc2UgewogCQkJCS8qIHdyaXRlIHJlZ2lzdGVycyAqLwpAQCAtMTEwMSw2ICsxMTE1 LDE4IEBAIHN0YXRpYyBzdHJ1Y3Qgc3R2MDkwMF9jb25maWcgcHJvZl83NTAwX3N0djA5MDBfY29u ZmlnID0gewogCS5zZXRfbG9ja19sZWQgPSBkdzIxMHhfbGVkX2N0cmwsCiB9OwogCitzdGF0aWMg c3RydWN0IHN0djA5MDBfY29uZmlnIHR1cmJvc2lnaHRfNTk4MF9zdHYwOTAwX2NvbmZpZyA9IHsK KwkuZGVtb2RfYWRkcmVzcyA9IDB4NmEsLy9vaworCS5kZW1vZF9tb2RlID0gMCwKKwkueHRhbCA9 IDI3MDAwMDAwLCAvL29rCisJLmNsa21vZGUgPSAzLC8vIG5vIGNoYW5nZQorCS5kaXNlcWNfbW9k ZSA9IDIsICAvL2d1ZXNzIDIyIEtIWgorCS50dW4xX21hZGRyZXNzID0gMCwvLyAweDYwCisJLnR1 bjFfYWRjID0gMiwKKwkucGF0aDFfbW9kZSA9IDMsCisJLnNldF9sb2NrX2xlZCA9IGR3MjEweF9s ZWRfY3RybCwKK307CisKIHN0YXRpYyBzdHJ1Y3QgZHMzMDAwX2NvbmZpZyBzdTMwMDBfZHMzMDAw X2NvbmZpZyA9IHsKIAkuZGVtb2RfYWRkcmVzcyA9IDB4NjgsCiAJLmNpX21vZGUgPSAxLApAQCAt MTIxNyw2ICsxMjQzLDM2IEBAIHN0YXRpYyBpbnQgZHcyMTA0X2Zyb250ZW5kX2F0dGFjaChzdHJ1 Y3QgZHZiX3VzYl9hZGFwdGVyICpkKQogCXJldHVybiAtRUlPOwogfQogCitzdGF0aWMgaW50IHR1 cmJvc2lnaHRfNTk4MF9mcm9udGVuZF9hdHRhY2goc3RydWN0IGR2Yl91c2JfYWRhcHRlciAqZCkK K3sKKwlzdHJ1Y3QgZHZiX3R1bmVyX29wcyAqdHVuZXJfb3BzID0gTlVMTDsKKwl1OCBvYnVmW10g PSB7NywxfTsKKwl1OCBvYnVmMltdID0gezEsMX07CisJdTggb2J1ZjNbXSA9IHs2LDF9OworCisJ ZC0+ZmVfYWRhcFswXS5mZSA9IGR2Yl9hdHRhY2goc3R2MDkwMF9hdHRhY2gsICZ0dXJib3NpZ2h0 XzU5ODBfc3R2MDkwMF9jb25maWcsCisJCQkJJmQtPmRldi0+aTJjX2FkYXAsIDApOworCWlmIChk LT5mZV9hZGFwWzBdLmZlID09IE5VTEwpCisJCXJldHVybiAtRUlPOworCisJaWYgKGR2Yl9hdHRh Y2goc3RiNjEwMF9hdHRhY2gsIGQtPmZlX2FkYXBbMF0uZmUsICZkdzIxMDRhX3N0YjYxMDBfY29u ZmlnLAorCQkJCSZkLT5kZXYtPmkyY19hZGFwKSkgeworCQkJCXR1bmVyX29wcyA9ICZkLT5mZV9h ZGFwWzBdLmZlLT5vcHMudHVuZXJfb3BzOworCQkJCXR1bmVyX29wcy0+c2V0X2ZyZXF1ZW5jeSA9 IHN0YjYxMDBfc2V0X2ZyZXE7CisJCQkJdHVuZXJfb3BzLT5nZXRfZnJlcXVlbmN5ID0gc3RiNjEw MF9nZXRfZnJlcTsKKwkJCQl0dW5lcl9vcHMtPnNldF9iYW5kd2lkdGggPSBzdGI2MTAwX3NldF9i YW5kdzsKKwkJCQl0dW5lcl9vcHMtPmdldF9iYW5kd2lkdGggPSBzdGI2MTAwX2dldF9iYW5kdzsK KwkJCQlkLT5mZV9hZGFwWzBdLmZlLT5vcHMuc2V0X3ZvbHRhZ2UgPSBkdzIxMHhfc2V0X3ZvbHRh Z2U7CisJCQkJaW5mbygiQXR0YWNoZWQgU1RWMDkwMCtTVEI2MTAwIVxuIik7CisJfQorCisJZHcy MTB4X29wX3J3KGQtPmRldi0+dWRldiwgMHg4YSwgMCwgMCwgb2J1ZiwgMiwgRFcyMTBYX1dSSVRF X01TRyk7CisJZHcyMTB4X29wX3J3KGQtPmRldi0+dWRldiwgMHg4YSwgMCwgMCwgb2J1ZjIsIDIs IERXMjEwWF9XUklURV9NU0cpOworCWR3MjEweF9vcF9ydyhkLT5kZXYtPnVkZXYsIDB4OGEsIDAs IDAsIG9idWYzLCAyLCBEVzIxMFhfV1JJVEVfTVNHKTsKKworCXJldHVybiAwOworfQorCiBzdGF0 aWMgc3RydWN0IGR2Yl91c2JfZGV2aWNlX3Byb3BlcnRpZXMgZHcyMTAyX3Byb3BlcnRpZXM7CiBz dGF0aWMgc3RydWN0IGR2Yl91c2JfZGV2aWNlX3Byb3BlcnRpZXMgZHcyMTA0X3Byb3BlcnRpZXM7 CiBzdGF0aWMgc3RydWN0IGR2Yl91c2JfZGV2aWNlX3Byb3BlcnRpZXMgczZ4MF9wcm9wZXJ0aWVz OwpAQCAtMTY1Nyw2ICsxNzEzLDcgQEAgZW51bSBkdzIxMDJfdGFibGVfZW50cnkgewogCUdPVFZJ RVdfU0FUX0hELAogCUdFTklBVEVDSF9UMjIwLAogCVRFQ0hOT1RSRU5EX1MyXzQ2MDAsCisJVFVS Qk9TSUdIVF81OTgwLAogfTsKIAogc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGR3MjEwMl90 YWJsZVtdID0gewpAQCAtMTY4Miw2ICsxNzM5LDcgQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNl X2lkIGR3MjEwMl90YWJsZVtdID0gewogCVtHRU5JQVRFQ0hfVDIyMF0gPSB7VVNCX0RFVklDRSgw eDFmNGQsIDB4RDIyMCl9LAogCVtURUNITk9UUkVORF9TMl80NjAwXSA9IHtVU0JfREVWSUNFKFVT Ql9WSURfVEVDSE5PVFJFTkQsCiAJCVVTQl9QSURfVEVDSE5PVFJFTkRfQ09OTkVDVF9TMl80NjAw KX0sCisJW1RVUkJPU0lHSFRfNTk4MF0gPSB7VVNCX0RFVklDRShVU0JfVklEX1RVUkJPU0lHSFQs IFVTQl9QSURfVFVSQk9TSUdIVF81OTgwKX0sCiAJeyB9CiB9OwogCkBAIC0yMDQ1LDYgKzIxMDMs MTMgQEAgc3RhdGljIHN0cnVjdCBkdmJfdXNiX2RldmljZV9kZXNjcmlwdGlvbiBkNjMyID0gewog CXtOVUxMfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgZHZiX3VzYl9kZXZpY2VfcHJvcGVydGllcyAq dDU5ODA7CitzdGF0aWMgc3RydWN0IGR2Yl91c2JfZGV2aWNlX2Rlc2NyaXB0aW9uIGQ1OTgwID0g eworCSJUQlMgNTk4MCBVU0IgRFZCLVMyIENJIiwKKwl7JmR3MjEwMl90YWJsZVtUVVJCT1NJR0hU XzU5ODBdLCBOVUxMfSwKKwl7TlVMTH0sCit9OworCiBzdGF0aWMgc3RydWN0IGR2Yl91c2JfZGV2 aWNlX3Byb3BlcnRpZXMgc3UzMDAwX3Byb3BlcnRpZXMgPSB7CiAJLmNhcHMgPSBEVkJfVVNCX0lT X0FOX0kyQ19BREFQVEVSLAogCS51c2JfY3RybCA9IERFVklDRV9TUEVDSUZJQywKQEAgLTIyNjMs NiArMjMyOCwyMiBAQCBzdGF0aWMgaW50IGR3MjEwMl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFj ZSAqaW50ZiwKIAlzNDIxLT5kZXZpY2VzWzFdID0gZDYzMjsKIAlzNDIxLT5hZGFwdGVyLT5mZVsw XS5mcm9udGVuZF9hdHRhY2ggPSBtODhyczIwMDBfZnJvbnRlbmRfYXR0YWNoOwogCisJdDU5ODAg PSBrbWVtZHVwKCZkdzIxMDRfcHJvcGVydGllcywKKwlzaXplb2Yoc3RydWN0IGR2Yl91c2JfZGV2 aWNlX3Byb3BlcnRpZXMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXQ1OTgwKSB7CisJCWtmcmVlKHAx MTAwKTsKKwkJa2ZyZWUoczY2MCk7CisJCWtmcmVlKHA3NTAwKTsKKwkJa2ZyZWUodDU5ODApOwor CQlyZXR1cm4gLUVOT01FTTsKKwl9CisJdDU5ODAtPm51bV9kZXZpY2VfZGVzY3MgPSAxOworCXQ1 OTgwLT5kZXZpY2VzWzBdID0gZDU5ODA7CisJdDU5ODAtPmkyY19hbGdvPSZzNngwX2kyY19hbGdv OworCXQ1OTgwLT5yZWFkX21hY19hZGRyZXNzID0gczZ4MF9yZWFkX21hY19hZGRyZXNzOworCXQ1 OTgwLT5maXJtd2FyZSA9IFQ1OTgwX0ZJUk1XQVJFOworCXQ1OTgwLT5hZGFwdGVyLT5mZVswXS5m cm9udGVuZF9hdHRhY2ggPSB0dXJib3NpZ2h0XzU5ODBfZnJvbnRlbmRfYXR0YWNoOworCiAJaWYg KDAgPT0gZHZiX3VzYl9kZXZpY2VfaW5pdChpbnRmLCAmZHcyMTAyX3Byb3BlcnRpZXMsCiAJCQlU SElTX01PRFVMRSwgTlVMTCwgYWRhcHRlcl9ucikgfHwKIAkgICAgMCA9PSBkdmJfdXNiX2Rldmlj ZV9pbml0KGludGYsICZkdzIxMDRfcHJvcGVydGllcywKQEAgLTIyNzcsNiArMjM1OCw4IEBAIHN0 YXRpYyBpbnQgZHcyMTAyX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAogCQkJVEhJ U19NT0RVTEUsIE5VTEwsIGFkYXB0ZXJfbnIpIHx8CiAJICAgIDAgPT0gZHZiX3VzYl9kZXZpY2Vf aW5pdChpbnRmLCBwNzUwMCwKIAkJCVRISVNfTU9EVUxFLCBOVUxMLCBhZGFwdGVyX25yKSB8fAor CSAgICAwID09IGR2Yl91c2JfZGV2aWNlX2luaXQoaW50ZiwgdDU5ODAsCisJCQlUSElTX01PRFVM RSwgTlVMTCwgYWRhcHRlcl9ucikgfHwKIAkgICAgMCA9PSBkdmJfdXNiX2RldmljZV9pbml0KGlu dGYsIHM0MjEsCiAJCQlUSElTX01PRFVMRSwgTlVMTCwgYWRhcHRlcl9ucikgfHwKIAkgICAgMCA9 PSBkdmJfdXNiX2RldmljZV9pbml0KGludGYsICZzdTMwMDBfcHJvcGVydGllcywKLS0gCjIuNC4y CgoKRnJvbSA4NWQ3MzQ1YjJhMmEzOGFlMmIyZTQ3ZGMxZjcwYzIyYTM5ZTBhZjIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGV2ZW4gVmFuZGVuIEJyYW5kZW4gPHN0ZXZlbnZhbmRl bmJyYW5kZW5zdGlmdEBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTAgSnVuIDIwMTUgMTg6NDE6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDMvN10gZmlybXdhcmUgbW9kdWxlCgotLS0KIGRyaXZlcnMv bWVkaWEvdXNiL2R2Yi11c2IvZHcyMTAyLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2IvZHcyMTAyLmMg Yi9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiL2R3MjEwMi5jCmluZGV4IGVkZTI0ZTcuLjFhOWU3 ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2IvZHcyMTAyLmMKKysrIGIv ZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYwpAQCAtMjQxNSwzICsyNDE1LDQgQEAg TU9EVUxFX0ZJUk1XQVJFKFM2MzBfRklSTVdBUkUpOwogTU9EVUxFX0ZJUk1XQVJFKFM2NjBfRklS TVdBUkUpOwogTU9EVUxFX0ZJUk1XQVJFKFAxMTAwX0ZJUk1XQVJFKTsKIE1PRFVMRV9GSVJNV0FS RShQNzUwMF9GSVJNV0FSRSk7CitNT0RVTEVfRklSTVdBUkUoVDU5ODBfRklSTVdBUkUpOwotLSAK Mi40LjIKCgpGcm9tIDMyMmQwNjBhYzU1NDhjNTgyNWFjZWY4MDY1NDdkNWZhNzM4OGQ2MTggTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZXZlbiBWYW5kZW4gQnJhbmRlbiA8c3RldmVu dmFuZGVuYnJhbmRlbnN0aWZ0QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMCBKdW4gMjAxNSAxODo0 MzoyOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNC83XSBjaGFuZ2UgUElEIGFuZCBWSUQgdGVtcG9y YXJseQoKLS0tCiBkcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiL2R3MjEwMi5jIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYyBiL2RyaXZlcnMvbWVkaWEvdXNiL2R2 Yi11c2IvZHcyMTAyLmMKaW5kZXggMWE5ZTdlZC4uZGZhZTZlNiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYworKysgYi9kcml2ZXJzL21lZGlhL3VzYi9kdmIt dXNiL2R3MjEwMi5jCkBAIC0xNzM5LDcgKzE3MzksNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZp Y2VfaWQgZHcyMTAyX3RhYmxlW10gPSB7CiAJW0dFTklBVEVDSF9UMjIwXSA9IHtVU0JfREVWSUNF KDB4MWY0ZCwgMHhEMjIwKX0sCiAJW1RFQ0hOT1RSRU5EX1MyXzQ2MDBdID0ge1VTQl9ERVZJQ0Uo VVNCX1ZJRF9URUNITk9UUkVORCwKIAkJVVNCX1BJRF9URUNITk9UUkVORF9DT05ORUNUX1MyXzQ2 MDApfSwKLQlbVFVSQk9TSUdIVF81OTgwXSA9IHtVU0JfREVWSUNFKFVTQl9WSURfVFVSQk9TSUdI VCwgVVNCX1BJRF9UVVJCT1NJR0hUXzU5ODApfSwKKwlbVFVSQk9TSUdIVF81OTgwXSA9IHtVU0Jf REVWSUNFKFVTQl9WSURfQ1lQUkVTUywgVVNCX1BJRF9VTFRJTUFfVFZCT1hfVVNCMl9GWF9DT0xE KX0sCiAJeyB9CiB9OwogCi0tIAoyLjQuMgoKCkZyb20gZTI2YTA2NGYzMGY4MjhiNzI0ODMwNjky YWFkODcxYmFkNDMxOTZkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RldmVuIFZh bmRlbiBCcmFuZGVuIDxzdGV2ZW52YW5kZW5icmFuZGVuc3RpZnRAZ21haWwuY29tPgpEYXRlOiBX ZWQsIDEwIEp1biAyMDE1IDIyOjEyOjM5ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1LzddIFJldmVy dCAiZmlybXdhcmUgbW9kdWxlIgoKVGhpcyByZXZlcnRzIGNvbW1pdCA4NWQ3MzQ1YjJhMmEzOGFl MmIyZTQ3ZGMxZjcwYzIyYTM5ZTBhZjIzLgotLS0KIGRyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2Iv ZHcyMTAyLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYyBiL2RyaXZlcnMvbWVkaWEvdXNi L2R2Yi11c2IvZHcyMTAyLmMKaW5kZXggZGZhZTZlNi4uNjk2M2JmZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYworKysgYi9kcml2ZXJzL21lZGlhL3VzYi9k dmItdXNiL2R3MjEwMi5jCkBAIC0yNDE1LDQgKzI0MTUsMyBAQCBNT0RVTEVfRklSTVdBUkUoUzYz MF9GSVJNV0FSRSk7CiBNT0RVTEVfRklSTVdBUkUoUzY2MF9GSVJNV0FSRSk7CiBNT0RVTEVfRklS TVdBUkUoUDExMDBfRklSTVdBUkUpOwogTU9EVUxFX0ZJUk1XQVJFKFA3NTAwX0ZJUk1XQVJFKTsK LU1PRFVMRV9GSVJNV0FSRShUNTk4MF9GSVJNV0FSRSk7Ci0tIAoyLjQuMgoKCkZyb20gMWJhMmJj MmEyZGI5MGQwZmI4NjVhN2FiNTBmNjBjMDkzNmI1MDZlNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogU3RldmVuIFZhbmRlbiBCcmFuZGVuIDxzdGV2ZW52YW5kZW5icmFuZGVuc3RpZnRA Z21haWwuY29tPgpEYXRlOiBXZWQsIDEwIEp1biAyMDE1IDIyOjE0OjEwICswMjAwClN1YmplY3Q6 IFtQQVRDSCA2LzddIFJldmVydCAiUmV2ZXJ0ICJmaXJtd2FyZSBtb2R1bGUiIgoKVGhpcyByZXZl cnRzIGNvbW1pdCBlMjZhMDY0ZjMwZjgyOGI3MjQ4MzA2OTJhYWQ4NzFiYWQ0MzE5NmRhLgotLS0K IGRyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2IvZHcyMTAyLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2Iv ZHcyMTAyLmMgYi9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiL2R3MjEwMi5jCmluZGV4IDY5NjNi ZmYuLmRmYWU2ZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2IvZHcyMTAy LmMKKysrIGIvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYwpAQCAtMjQxNSwzICsy NDE1LDQgQEAgTU9EVUxFX0ZJUk1XQVJFKFM2MzBfRklSTVdBUkUpOwogTU9EVUxFX0ZJUk1XQVJF KFM2NjBfRklSTVdBUkUpOwogTU9EVUxFX0ZJUk1XQVJFKFAxMTAwX0ZJUk1XQVJFKTsKIE1PRFVM RV9GSVJNV0FSRShQNzUwMF9GSVJNV0FSRSk7CitNT0RVTEVfRklSTVdBUkUoVDU5ODBfRklSTVdB UkUpOwotLSAKMi40LjIKCgpGcm9tIDhhZGZmNWM1ZGRiNWE2YTIwNWVlM2ViOTViYTZjMmQwOTE5 MWIzZWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZXZlbiBWYW5kZW4gQnJhbmRl biA8c3RldmVudmFuZGVuYnJhbmRlbnN0aWZ0QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMCBKdW4g MjAxNSAyMjoxNDozNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNy83XSBSZXZlcnQgImNoYW5nZSBQ SUQgYW5kIFZJRCB0ZW1wb3Jhcmx5IgoKVGhpcyByZXZlcnRzIGNvbW1pdCAzMjJkMDYwYWM1NTQ4 YzU4MjVhY2VmODA2NTQ3ZDVmYTczODhkNjE4LgotLS0KIGRyaXZlcnMvbWVkaWEvdXNiL2R2Yi11 c2IvZHcyMTAyLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiL2R3MjEwMi5j IGIvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYwppbmRleCBkZmFlNmU2Li4xYTll N2VkIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiL2R3MjEwMi5jCisrKyBi L2RyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2IvZHcyMTAyLmMKQEAgLTE3MzksNyArMTczOSw3IEBA IHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBkdzIxMDJfdGFibGVbXSA9IHsKIAlbR0VOSUFU RUNIX1QyMjBdID0ge1VTQl9ERVZJQ0UoMHgxZjRkLCAweEQyMjApfSwKIAlbVEVDSE5PVFJFTkRf UzJfNDYwMF0gPSB7VVNCX0RFVklDRShVU0JfVklEX1RFQ0hOT1RSRU5ELAogCQlVU0JfUElEX1RF Q0hOT1RSRU5EX0NPTk5FQ1RfUzJfNDYwMCl9LAotCVtUVVJCT1NJR0hUXzU5ODBdID0ge1VTQl9E RVZJQ0UoVVNCX1ZJRF9DWVBSRVNTLCBVU0JfUElEX1VMVElNQV9UVkJPWF9VU0IyX0ZYX0NPTEQp fSwKKwlbVFVSQk9TSUdIVF81OTgwXSA9IHtVU0JfREVWSUNFKFVTQl9WSURfVFVSQk9TSUdIVCwg VVNCX1BJRF9UVVJCT1NJR0hUXzU5ODApfSwKIAl7IH0KIH07CiAKLS0gCjIuNC4yCgo= --=-8udXjz/a1pMzbjdrTWB0--