Return-Path: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C9ED43.0C9813EC" Subject: [PATCH] Remove hid2hci from bluez Date: Sun, 14 Jun 2009 17:54:18 -0500 Message-ID: <6BE8CE7840AC9F459EF5A0693CA2744D5DB52E@ausx3mpc138.aus.amer.dell.com> From: To: Sender: linux-bluetooth-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. ------_=_NextPart_001_01C9ED43.0C9813EC Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi: Since hid2hci has been accepted into udev-extras, I'd like to remove it from bluez source. Attached is a patch. Regards ------_=_NextPart_001_01C9ED43.0C9813EC Content-Type: application/octet-stream; name="0001-Remove-hid2hci-from-bluez.patch" Content-Transfer-Encoding: base64 Content-Description: 0001-Remove-hid2hci-from-bluez.patch Content-Disposition: attachment; filename="0001-Remove-hid2hci-from-bluez.patch" RnJvbSA1YTYzMTM4MmU5NWEwOGJhNjk1NjFkMThmZjQ4MDk4YzEyZTBhMjE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBMaW1vbmNpZWxsbyA8bWFyaW9fbGltb25jaWVsbG9A ZGVsbC5jb20+CkRhdGU6IFN1biwgMTQgSnVuIDIwMDkgMDk6NTk6MTkgLTA1MDAKU3ViamVjdDog W1BBVENIXSBSZW1vdmUgaGlkMmhjaSBmcm9tIGJsdWV6LiAgCiBJdCdzIG5vdyBiZWVuIG1vdmVk IGludG8gdWRldi1leHRyYXMKIGFuZCB3aWxsIGJlIG1haW50YWluZWQgdGhlcmUgaW5zdGVhZC4K Ci0tLQogYWNpbmNsdWRlLm00ICAgICAgICAgICAgICAgICAgICB8ICAgIDYgLQogYm9vdHN0cmFw LWNvbmZpZ3VyZSAgICAgICAgICAgICB8ICAgIDEgLQogc2NyaXB0cy9NYWtlZmlsZS5hbSAgICAg ICAgICAgICB8ICAgIDggKy0KIHNjcmlwdHMvYmx1ZXRvb3RoLWhpZDJoY2kucnVsZXMgfCAgIDM2 IC0tLS0KIHRvb2xzL01ha2VmaWxlLmFtICAgICAgICAgICAgICAgfCAgIDE4ICstLQogdG9vbHMv aGlkMmhjaS44ICAgICAgICAgICAgICAgICB8ICAgNTEgLS0tLS0tCiB0b29scy9oaWQyaGNpLmMg ICAgICAgICAgICAgICAgIHwgIDM3NSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDcgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0OTAgZGVsZXRpb25zKC0p CiBkZWxldGUgbW9kZSAxMDA2NDQgc2NyaXB0cy9ibHVldG9vdGgtaGlkMmhjaS5ydWxlcwogZGVs ZXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2hpZDJoY2kuOAogZGVsZXRlIG1vZGUgMTAwNjQ0IHRvb2xz L2hpZDJoY2kuYwoKZGlmZiAtLWdpdCBhL2FjaW5jbHVkZS5tNCBiL2FjaW5jbHVkZS5tNAppbmRl eCBlYjdjZGViLi5jZTcxNmRlIDEwMDY0NAotLS0gYS9hY2luY2x1ZGUubTQKKysrIGIvYWNpbmNs dWRlLm00CkBAIC0xOTMsNyArMTkzLDYgQEAgQUNfREVGVU4oW0FDX0FSR19CTFVFWl0sIFsKIAlj dXBzX2VuYWJsZT1ubwogCXRlc3RfZW5hYmxlPW5vCiAJYmNjbWRfZW5hYmxlPW5vCi0JaGlkMmhj aV9lbmFibGU9bm8KIAlkZnV0b29sX2VuYWJsZT1ubwogCW1hbnBhZ2VzX2VuYWJsZT15ZXMKIAlj b25maWdmaWxlc19lbmFibGU9eWVzCkBAIC0yNTMsMTAgKzI1Miw2IEBAIEFDX0RFRlVOKFtBQ19B UkdfQkxVRVpdLCBbCiAJCWJjY21kX2VuYWJsZT0ke2VuYWJsZXZhbH0KIAldKQogCi0JQUNfQVJH X0VOQUJMRShoaWQyaGNpLCBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtaGlkMmhjaV0sIFtpbnN0 YWxsIEhJRCBtb2RlIHN3aXRjaGluZyB1dGlsaXR5XSksIFsKLQkJaGlkMmhjaV9lbmFibGU9JHtl bmFibGV2YWx9Ci0JXSkKLQogCUFDX0FSR19FTkFCTEUoZGZ1dG9vbCwgQUNfSEVMUF9TVFJJTkco Wy0tZW5hYmxlLWRmdXRvb2xdLCBbaW5zdGFsbCBERlUgZmlybXdhcmUgdXBncmFkZSB1dGlsaXR5 XSksIFsKIAkJZGZ1dG9vbF9lbmFibGU9JHtlbmFibGV2YWx9CiAJXSkKQEAgLTM1MSw3ICszNDYs NiBAQCBBQ19ERUZVTihbQUNfQVJHX0JMVUVaXSwgWwogCUFNX0NPTkRJVElPTkFMKFRFU1QsIHRl c3QgIiR7dGVzdF9lbmFibGV9IiA9ICJ5ZXMiKQogCUFNX0NPTkRJVElPTkFMKFRPT0xTLCB0ZXN0 ICIke3Rvb2xzX2VuYWJsZX0iID0gInllcyIpCiAJQU1fQ09ORElUSU9OQUwoQkNDTUQsIHRlc3Qg IiR7YmNjbWRfZW5hYmxlfSIgPSAieWVzIikKLQlBTV9DT05ESVRJT05BTChISUQySENJLCB0ZXN0 ICIke2hpZDJoY2lfZW5hYmxlfSIgPSAieWVzIiAmJiB0ZXN0ICIke3VzYl9mb3VuZH0iID0gInll cyIpCiAJQU1fQ09ORElUSU9OQUwoREZVVE9PTCwgdGVzdCAiJHtkZnV0b29sX2VuYWJsZX0iID0g InllcyIgJiYgdGVzdCAiJHt1c2JfZm91bmR9IiA9ICJ5ZXMiKQogCUFNX0NPTkRJVElPTkFMKE1B TlBBR0VTLCB0ZXN0ICIke21hbnBhZ2VzX2VuYWJsZX0iID0gInllcyIpCiAJQU1fQ09ORElUSU9O QUwoQ09ORklHRklMRVMsIHRlc3QgIiR7Y29uZmlnZmlsZXNfZW5hYmxlfSIgPSAieWVzIikKZGlm ZiAtLWdpdCBhL2Jvb3RzdHJhcC1jb25maWd1cmUgYi9ib290c3RyYXAtY29uZmlndXJlCmluZGV4 IDVlYzhlNGMuLmY4NjVjMzkgMTAwNzU1Ci0tLSBhL2Jvb3RzdHJhcC1jb25maWd1cmUKKysrIGIv Ym9vdHN0cmFwLWNvbmZpZ3VyZQpAQCAtMjAsNyArMjAsNiBAQCBmaQogCQktLWVuYWJsZS10b29s cyBcCiAJCS0tZW5hYmxlLWJjY21kIFwKIAkJLS1lbmFibGUtZGZ1dG9vbCBcCi0JCS0tZW5hYmxl LWhpZDJoY2kgXAogCQktLWVuYWJsZS1oaWRkIFwKIAkJLS1lbmFibGUtcGFuZCBcCiAJCS0tZW5h YmxlLWR1bmQgXApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9NYWtlZmlsZS5hbSBiL3NjcmlwdHMvTWFr ZWZpbGUuYW0KaW5kZXggNDk0YTljMi4uMzExZjVjNyAxMDA2NDQKLS0tIGEvc2NyaXB0cy9NYWtl ZmlsZS5hbQorKysgYi9zY3JpcHRzL01ha2VmaWxlLmFtCkBAIC00LDEwICs0LDYgQEAgcnVsZXNk aXIgPSAkKHN5c2NvbmZkaXIpL3VkZXYKIAogcnVsZXNfREFUQSA9CiAKLWlmIEhJRDJIQ0kKLXJ1 bGVzX0RBVEEgKz0gYmx1ZXRvb3RoLWhpZDJoY2kucnVsZXMKLWVuZGlmCi0KIGlmIFBDTUNJQVJV TEVTCiBydWxlc19EQVRBICs9IGJsdWV0b290aC1zZXJpYWwucnVsZXMKIGVuZGlmCkBAIC0xOSw4 ICsxNSw4IEBAIHVkZXZkaXIgPSAkKGxpYmV4ZWNkaXIpL3VkZXYKIHVkZXZfU0NSSVBUUyA9IGJs dWV0b290aF9zZXJpYWwKIGVuZGlmCiAKLUVYVFJBX0RJU1QgPSBibHVldG9vdGguaW5pdCBibHVl dG9vdGguZGVmYXVsdCBibHVldG9vdGgtaGlkMmhjaS5ydWxlcyBcCi0JCQkJYmx1ZXRvb3RoLXNl cmlhbC5ydWxlcyBibHVldG9vdGhfc2VyaWFsCitFWFRSQV9ESVNUID0gYmx1ZXRvb3RoLmluaXQg Ymx1ZXRvb3RoLmRlZmF1bHQgYmx1ZXRvb3RoLXNlcmlhbC5ydWxlc1wKKwkJCQlibHVldG9vdGhf c2VyaWFsCiAKIE1BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KIApkaWZmIC0tZ2l0 IGEvc2NyaXB0cy9ibHVldG9vdGgtaGlkMmhjaS5ydWxlcyBiL3NjcmlwdHMvYmx1ZXRvb3RoLWhp ZDJoY2kucnVsZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiMjMxZDEuLjAwMDAw MDAKLS0tIGEvc2NyaXB0cy9ibHVldG9vdGgtaGlkMmhjaS5ydWxlcworKysgL2Rldi9udWxsCkBA IC0xLDM2ICswLDAgQEAKLSMgVmFyaWV0eSBvZiBEZWxsIEJsdWV0b290aCBkZXZpY2VzCi0jCi0j IGl0IGxvb2tzIGxpa2UgYSBiaXQgb2YgYW4gb2RkIHJ1bGUsIGJlY2F1c2UgaXQgaXMgbWF0Y2hp bmcKLSMgb24gYSBtb3VzZSBkZXZpY2UgdGhhdCBpcyBzZWxmIHBvd2VyZWQsIGJ1dCB0aGF0IGlz IHdoZXJlCi0jIGEgSElEIHJlcG9ydCBuZWVkcyB0byBiZSBzZW50IHRvIHN3aXRjaCBtb2Rlcy4K LSMKLSMgS25vd24gc3VwcG9ydGVkIGRldmljZXM6Ci0jICAgNDEzYzo4MTU0Ci0jICAgNDEzYzo4 MTU4Ci0jICAgNDEzYzo4MTYyCi1BQ1RJT049PSJhZGQiLCBFTlZ7SURfVkVORE9SfT09IjQxM2Mi LCBFTlZ7SURfQ0xBU1N9PT0ibW91c2UiLCBBVFRSU3tibUF0dHJpYnV0ZXN9PT0iZTAiLCBLRVJO RUw9PSJtb3VzZSoiLCBSVU4rPSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1ldGhvZCBkZWxsIC12ICRl bnZ7SURfVkVORE9SfSAtcCAkZW52e0lEX01PREVMfSAtLW1vZGUgaGNpIgotCi0jIExvZ2l0ZWNo IGRldmljZXMKLUFDVElPTj09ImFkZCIsIEVOVntJRF9WRU5ET1J9PT0iMDQ2ZCIsIEVOVntJRF9N T0RFTH09PSJjNzAzIiBSVU4rPSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1ldGhvZCBsb2dpdGVjaCAt diAkZW52e0lEX1ZFTkRPUn0gLXAgJGVudntJRF9NT0RFTH0gLS1tb2RlIGhjaSIKLUFDVElPTj09 ImFkZCIsIEVOVntJRF9WRU5ET1J9PT0iMDQ2ZCIsIEVOVntJRF9NT0RFTH09PSJjNzA0IiBSVU4r PSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1ldGhvZCBsb2dpdGVjaCAtdiAkZW52e0lEX1ZFTkRPUn0g LXAgJGVudntJRF9NT0RFTH0gLS1tb2RlIGhjaSIKLUFDVElPTj09ImFkZCIsIEVOVntJRF9WRU5E T1J9PT0iMDQ2ZCIsIEVOVntJRF9NT0RFTH09PSJjNzA1IiBSVU4rPSIvdXNyL3NiaW4vaGlkMmhj aSAtLW1ldGhvZCBsb2dpdGVjaCAtdiAkZW52e0lEX1ZFTkRPUn0gLXAgJGVudntJRF9NT0RFTH0g LS1tb2RlIGhjaSIKLUFDVElPTj09ImFkZCIsIEVOVntJRF9WRU5ET1J9PT0iMDQ2ZCIsIEVOVntJ RF9NT0RFTH09PSJjNzBhIiBSVU4rPSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1ldGhvZCBsb2dpdGVj aCAtdiAkZW52e0lEX1ZFTkRPUn0gLXAgJGVudntJRF9NT0RFTH0gLS1tb2RlIGhjaSIKLUFDVElP Tj09ImFkZCIsIEVOVntJRF9WRU5ET1J9PT0iMDQ2ZCIsIEVOVntJRF9NT0RFTH09PSJjNzBiIiBS VU4rPSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1ldGhvZCBsb2dpdGVjaCAtdiAkZW52e0lEX1ZFTkRP Un0gLXAgJGVudntJRF9NT0RFTH0gLS1tb2RlIGhjaSIKLUFDVElPTj09ImFkZCIsIEVOVntJRF9W RU5ET1J9PT0iMDQ2ZCIsIEVOVntJRF9NT0RFTH09PSJjNzBjIiBSVU4rPSIvdXNyL3NiaW4vaGlk MmhjaSAtLW1ldGhvZCBsb2dpdGVjaCAtdiAkZW52e0lEX1ZFTkRPUn0gLXAgJGVudntJRF9NT0RF TH0gLS1tb2RlIGhjaSIKLUFDVElPTj09ImFkZCIsIEVOVntJRF9WRU5ET1J9PT0iMDQ2ZCIsIEVO VntJRF9NT0RFTH09PSJjNzBlIiBSVU4rPSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1ldGhvZCBsb2dp dGVjaCAtdiAkZW52e0lEX1ZFTkRPUn0gLXAgJGVudntJRF9NT0RFTH0gLS1tb2RlIGhjaSIKLUFD VElPTj09ImFkZCIsIEVOVntJRF9WRU5ET1J9PT0iMDQ2ZCIsIEVOVntJRF9NT0RFTH09PSJjNzEz IiBSVU4rPSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1ldGhvZCBsb2dpdGVjaCAtdiAkZW52e0lEX1ZF TkRPUn0gLXAgJGVudntJRF9NT0RFTH0gLS1tb2RlIGhjaSIKLUFDVElPTj09ImFkZCIsIEVOVntJ RF9WRU5ET1J9PT0iMDQ2ZCIsIEVOVntJRF9NT0RFTH09PSJjNzE0IiBSVU4rPSIvdXNyL3NiaW4v aGlkMmhjaSAtLW1ldGhvZCBsb2dpdGVjaCAtdiAkZW52e0lEX1ZFTkRPUn0gLXAgJGVudntJRF9N T0RFTH0gLS1tb2RlIGhjaSIKLUFDVElPTj09ImFkZCIsIEVOVntJRF9WRU5ET1J9PT0iMDQ2ZCIs IEVOVntJRF9NT0RFTH09PSJjNzFiIiBSVU4rPSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1ldGhvZCBs b2dpdGVjaCAtdiAkZW52e0lEX1ZFTkRPUn0gLXAgJGVudntJRF9NT0RFTH0gLS1tb2RlIGhjaSIK LUFDVElPTj09ImFkZCIsIEVOVntJRF9WRU5ET1J9PT0iMDQ2ZCIsIEVOVntJRF9NT0RFTH09PSJj NzFjIiBSVU4rPSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1ldGhvZCBsb2dpdGVjaCAtdiAkZW52e0lE X1ZFTkRPUn0gLXAgJGVudntJRF9NT0RFTH0gLS1tb2RlIGhjaSIKLQotIyBDU1IgZGV2aWNlcyAo aW4gSElEIG1vZGUpCi1BQ1RJT049PSJhZGQiLCBFTlZ7SURfVkVORE9SfT09IjBhMTIiLCBFTlZ7 SURfTU9ERUx9PT0iMTAwMCIgUlVOKz0iL3Vzci9zYmluL2hpZDJoY2kgLS1tZXRob2QgY3NyIC12 ICRlbnZ7SURfVkVORE9SfSAtcCAkZW52e0lEX01PREVMfSAtLW1vZGUgaGNpIgotQUNUSU9OPT0i YWRkIiwgRU5We0lEX1ZFTkRPUn09PSIwNDU4IiwgRU5We0lEX01PREVMfT09IjEwMDAiIFJVTis9 Ii91c3Ivc2Jpbi9oaWQyaGNpIC0tbWV0aG9kIGNzciAtdiAkZW52e0lEX1ZFTkRPUn0gLXAgJGVu dntJRF9NT0RFTH0gLS1tb2RlIGhjaSIKLUFDVElPTj09ImFkZCIsIEVOVntJRF9WRU5ET1J9PT0i MDVhYyIsIEVOVntJRF9NT0RFTH09PSIxMDAwIiBSVU4rPSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1l dGhvZCBjc3IgLXYgJGVudntJRF9WRU5ET1J9IC1wICRlbnZ7SURfTU9ERUx9IC0tbW9kZSBoY2ki Ci0KLSMgQ1NSIGRldmljZXMgKGluIEhDSSBtb2RlKQotI0FDVElPTj09ImFkZCIsIEVOVntJRF9W RU5ET1J9PT0iMGExMiIsIEVOVntJRF9NT0RFTH09PSIwMDAxIiBSVU4rPSIvdXNyL3NiaW4vaGlk MmhjaSAtLW1ldGhvZCBjc3IgLXYgJGVudntJRF9WRU5ET1J9IC1wICRlbnZ7SURfTU9ERUx9IC0t bW9kZSBoaWQiCi0jQUNUSU9OPT0iYWRkIiwgRU5We0lEX1ZFTkRPUn09PSIwNDU4IiwgRU5We0lE X01PREVMfT09IjAwM2YiIFJVTis9Ii91c3Ivc2Jpbi9oaWQyaGNpIC0tbWV0aG9kIGNzciAtdiAk ZW52e0lEX1ZFTkRPUn0gLXAgJGVudntJRF9NT0RFTH0gLS1tb2RlIGhpZCIKLSNBQ1RJT049PSJh ZGQiLCBFTlZ7SURfVkVORE9SfT09IjA1YWMiLCBFTlZ7SURfTU9ERUx9PT0iODIwMyIgUlVOKz0i L3Vzci9zYmluL2hpZDJoY2kgLS1tZXRob2QgY3NyIC12ICRlbnZ7SURfVkVORE9SfSAtcCAkZW52 e0lEX01PREVMfSAtLW1vZGUgaGlkIgotI0FDVElPTj09ImFkZCIsIEVOVntJRF9WRU5ET1J9PT0i MDVhYyIsIEVOVntJRF9NT0RFTH09PSI4MjA0IiBSVU4rPSIvdXNyL3NiaW4vaGlkMmhjaSAtLW1l dGhvZCBjc3IgLXYgJGVudntJRF9WRU5ET1J9IC1wICRlbnZ7SURfTU9ERUx9IC0tbW9kZSBoaWQi Ci0jQUNUSU9OPT0iYWRkIiwgRU5We0lEX1ZFTkRPUn09PSIwNWFjIiwgRU5We0lEX01PREVMfT09 IjgyMDciIFJVTis9Ii91c3Ivc2Jpbi9oaWQyaGNpIC0tbWV0aG9kIGNzciAtdiAkZW52e0lEX1ZF TkRPUn0gLXAgJGVudntJRF9NT0RFTH0gLS1tb2RlIGhpZCIKZGlmZiAtLWdpdCBhL3Rvb2xzL01h a2VmaWxlLmFtIGIvdG9vbHMvTWFrZWZpbGUuYW0KaW5kZXggNmIwYWQ0OS4uODg3YjRlZSAxMDA2 NDQKLS0tIGEvdG9vbHMvTWFrZWZpbGUuYW0KKysrIGIvdG9vbHMvTWFrZWZpbGUuYW0KQEAgLTE1 LDE0ICsxNSw2IEBAIGJjY21kX3Byb2dyYW1zID0KIGJjY21kX21hbmZpbGVzID0KIGVuZGlmCiAK LWlmIEhJRDJIQ0kKLWhpZDJoY2lfcHJvZ3JhbXMgPSBoaWQyaGNpCi1oaWQyaGNpX21hbmZpbGVz ID0gaGlkMmhjaS44Ci1lbHNlCi1oaWQyaGNpX3Byb2dyYW1zID0KLWhpZDJoY2lfbWFuZmlsZXMg PQotZW5kaWYKLQogaWYgREZVVE9PTAogZGZ1dG9vbF9wcm9ncmFtcyA9IGRmdXRvb2wKIGRmdXRv b2xfbWFuZmlsZXMgPSBkZnV0b29sLjEKQEAgLTM3LDcgKzI5LDcgQEAgZWxzZQogdXNiX3Byb2dy YW1zID0KIGVuZGlmCiAKLXNiaW5fUFJPR1JBTVMgPSBoY2lhdHRhY2ggaGNpY29uZmlnICQoYmNj bWRfcHJvZ3JhbXMpICQoYXZjdHJsX3Byb2dyYW1zKSAkKGhpZDJoY2lfcHJvZ3JhbXMpCitzYmlu X1BST0dSQU1TID0gaGNpYXR0YWNoIGhjaWNvbmZpZyAkKGJjY21kX3Byb2dyYW1zKSAkKGF2Y3Ry bF9wcm9ncmFtcykKIAogYmluX1BST0dSQU1TID0gJCh0b29sc19wcm9ncmFtcykgJChkZnV0b29s X3Byb2dyYW1zKSAkKGRmdWJhYmVsX3Byb2dyYW1zKQogCkBAIC03NywxMCArNjksNiBAQCBiY2Nt ZF9MREFERCArPSBAVVNCX0xJQlNACiBlbmRpZgogZW5kaWYKIAotaWYgSElEMkhDSQotaGlkMmhj aV9MREFERCA9IEBVU0JfTElCU0AKLWVuZGlmCi0KIGlmIERGVVRPT0wKIGRmdXRvb2xfU09VUkNF UyA9IGRmdXRvb2wuYyBkZnUuaCBkZnUuYwogZGZ1dG9vbF9MREFERCA9IEBVU0JfTElCU0AKQEAg LTk3LDEwICs4NSwxMCBAQCBJTkNMVURFUyA9IC1JJCh0b3Bfc3JjZGlyKS9jb21tb24KIAogaWYg TUFOUEFHRVMKIG1hbl9NQU5TID0gaGNpYXR0YWNoLjggaGNpY29uZmlnLjggJCh0b29sc19tYW5m aWxlcykgXAotCQkkKGJjY21kX21hbmZpbGVzKSAkKGhpZDJoY2lfbWFuZmlsZXMpICQoZGZ1dG9v bF9tYW5maWxlcykKKwkJJChiY2NtZF9tYW5maWxlcykgJChkZnV0b29sX21hbmZpbGVzKQogZW5k aWYKIAogRVhUUkFfRElTVCA9IGhjaWF0dGFjaC44IGhjaWNvbmZpZy44IGhjaXRvb2wuMSBsMnBp bmcuMSBzZHB0b29sLjEgY2lwdG9vbC4xIFwKLQkJIGJjY21kLjggYXZjdHJsLjggaGlkMmhjaS44 IGRmdXRvb2wuMSBkZnViYWJlbC4xIGV4YW1wbGUucHNyCisJCSBiY2NtZC44IGF2Y3RybC44IGRm dXRvb2wuMSBkZnViYWJlbC4xIGV4YW1wbGUucHNyCiAKIE1BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KZGlmZiAtLWdpdCBhL3Rvb2xzL2hpZDJoY2kuOCBiL3Rvb2xzL2hpZDJoY2ku OApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQzNTI3NC4uMDAwMDAwMAotLS0gYS90 b29scy9oaWQyaGNpLjgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0uXCIKLS5cIglU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQotLlwiCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0uXCIJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLS5cIgkoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotLlwiCi0uXCIJVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0uXCIJYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLS5c IglNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCi0uXCIJR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K LS5cIgotLlwiCVlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCi0uXCIJYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwg d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLS5cIglGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFz cyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KLS5cIgotLlwiCi0uVEggSElEMkhDSSA4 ICJNQVkgMTUsIDIwMDkiICIiICIiCi0KLS5TSCBOQU1FCi1oaWQyaGNpIFwtIEJsdWV0b290aCBI SUQgdG8gSENJIG1vZGUgc3dpdGNoaW5nIHV0aWxpdHkKLS5TSCBTWU5PUFNJUwotLkJSICJoaWQy aGNpCi1bCi0uSSBvcHRpb25zCi1dCi0uU0ggREVTQ1JJUFRJT04KLS5CIGhpZDJoY2kKLWlzIHVz ZWQgdG8gc2V0IHVwIHN3aXRjaCBzdXBwb3J0ZWQgQmx1ZXRvb3RoIGRldmljZXMgaW50byB0aGUg SENJCi1tb2RlIGFuZCBiYWNrLgotLlNIIE9QVElPTlMKLS5UUAotLkJJIC1oCi1HaXZlcyBhIGxp c3Qgb2YgcG9zc2libGUgb3B0aW9ucy4KLS5UUAotLkJJIC1xCi1Eb24ndCBkaXNwbGF5IGFueSBt ZXNzYWdlcy4KLS5UUAotLkJJIC1yIFtoaWQsaGNpXQotU2V0cyB0aGUgbW9kZSB0byBzd2l0Y2gg dGhlIGRldmljZSBpbnRvCi0uVFAKLS5CSSAtdgotU3BlY2lmaWVzIHRoZSA0IGRpZ2l0IHZlbmRv ciBJRCBhc3NpZ25lZCB0byB0aGUgZGV2aWNlIGJlaW5nIHN3aXRjaGVkCi0uVFAKLS5CSSAtcAot U3BlY2lmaWVzIHRoZSA0IGRpZ2l0IHByb2R1Y3QgSUQgYXNzaWduZWQgdG8gdGhlIGRldmljZSBi ZWluZyBzd2l0Y2hlZAotLlRQCi0uQkkgLW0gW2NzciwgbG9naXRlY2gsIGRlbGxdCi1XaGljaCB2 ZW5kb3IgbWV0aG9kIHRvIHVzZSBmb3Igc3dpdGNoaW5nIHRoZSBkZXZpY2UuCi0uU0ggQVVUSE9S Ci1Xcml0dGVuIGJ5IE1hcmNlbCBIb2x0bWFubiA8bWFyY2VsQGhvbHRtYW5uLm9yZz4uCi0uYnIK ZGlmZiAtLWdpdCBhL3Rvb2xzL2hpZDJoY2kuYyBiL3Rvb2xzL2hpZDJoY2kuYwpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMTFkNzA3Zi4uMDAwMDAwMAotLS0gYS90b29scy9oaWQyaGNp LmMKKysrIC9kZXYvbnVsbApAQCAtMSwzNzUgKzAsMCBAQAotLyoKLSAqCi0gKiAgQmx1ZVogLSBC bHVldG9vdGggcHJvdG9jb2wgc3RhY2sgZm9yIExpbnV4Ci0gKgotICogIENvcHlyaWdodCAoQykg MjAwMy0yMDA5ICBNYXJjZWwgSG9sdG1hbm4gPG1hcmNlbEBob2x0bWFubi5vcmc+Ci0gKgotICoK LSAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQotICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKLSAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBu b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAq Ci0gKi8KLQotI2lmZGVmIEhBVkVfQ09ORklHX0gKLSNpbmNsdWRlIDxjb25maWcuaD4KLSNlbmRp ZgotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZj bnRsLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVk ZSA8Z2V0b3B0Lmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0KLSNpbmNsdWRlIDx1c2IuaD4K LQotI2lmZGVmIE5FRURfVVNCX0dFVF9CVVNTRVMKLXN0YXRpYyBpbmxpbmUgc3RydWN0IHVzYl9i dXMgKnVzYl9nZXRfYnVzc2VzKHZvaWQpCi17Ci0JcmV0dXJuIHVzYl9idXNzZXM7Ci19Ci0jZW5k aWYKLQotI2lmbmRlZiBVU0JfRElSX09VVAotI2RlZmluZSBVU0JfRElSX09VVAkweDAwCi0jZW5k aWYKLQotc3RhdGljIGNoYXIgZGV2cGF0aFtQQVRIX01BWCArIDFdID0gIi9kZXYiOwotCi1zdHJ1 Y3QgaGlkZGV2X2RldmluZm8gewotCXVuc2lnbmVkIGludCBidXN0eXBlOwotCXVuc2lnbmVkIGlu dCBidXNudW07Ci0JdW5zaWduZWQgaW50IGRldm51bTsKLQl1bnNpZ25lZCBpbnQgaWZudW07Ci0J c2hvcnQgdmVuZG9yOwotCXNob3J0IHByb2R1Y3Q7Ci0Jc2hvcnQgdmVyc2lvbjsKLQl1bnNpZ25l ZCBudW1fYXBwbGljYXRpb25zOwotfTsKLQotc3RydWN0IGhpZGRldl9yZXBvcnRfaW5mbyB7Ci0J dW5zaWduZWQgcmVwb3J0X3R5cGU7Ci0JdW5zaWduZWQgcmVwb3J0X2lkOwotCXVuc2lnbmVkIG51 bV9maWVsZHM7Ci19OwotCi10eXBlZGVmIF9fc2lnbmVkX18gaW50IF9fczMyOwotCi1zdHJ1Y3Qg aGlkZGV2X3VzYWdlX3JlZiB7Ci0JdW5zaWduZWQgcmVwb3J0X3R5cGU7Ci0JdW5zaWduZWQgcmVw b3J0X2lkOwotCXVuc2lnbmVkIGZpZWxkX2luZGV4OwotCXVuc2lnbmVkIHVzYWdlX2luZGV4Owot CXVuc2lnbmVkIHVzYWdlX2NvZGU7Ci0JX19zMzIgdmFsdWU7Ci19OwotCi0jZGVmaW5lIEhJRElP Q0dERVZJTkZPCQlfSU9SKCdIJywgMHgwMywgc3RydWN0IGhpZGRldl9kZXZpbmZvKQotI2RlZmlu ZSBISURJT0NJTklUUkVQT1JUCV9JTygnSCcsIDB4MDUpCi0jZGVmaW5lIEhJRElPQ1NSRVBPUlQJ CV9JT1coJ0gnLCAweDA4LCBzdHJ1Y3QgaGlkZGV2X3JlcG9ydF9pbmZvKQotI2RlZmluZSBISURJ T0NTVVNBR0UJCV9JT1coJ0gnLCAweDBDLCBzdHJ1Y3QgaGlkZGV2X3VzYWdlX3JlZikKLQotI2Rl ZmluZSBISURfUkVQT1JUX1RZUEVfT1VUUFVUCTIKLQotI2RlZmluZSBIQ0kgMAotI2RlZmluZSBI SUQgMQotCi1zdHJ1Y3QgZGV2aWNlX2luZm8gewotCXN0cnVjdCB1c2JfZGV2aWNlICpkZXY7Ci0J aW50IG1vZGU7Ci0JdWludDE2X3QgdmVuZG9yOwotCXVpbnQxNl90IHByb2R1Y3Q7Ci19OwotCi1z dGF0aWMgaW50IHN3aXRjaF9jc3Ioc3RydWN0IGRldmljZV9pbmZvICpkZXZpbmZvKQotewotCXN0 cnVjdCB1c2JfZGV2X2hhbmRsZSAqdWRldjsKLQlpbnQgZXJyOwotCi0JdWRldiA9IHVzYl9vcGVu KGRldmluZm8tPmRldik7Ci0JaWYgKCF1ZGV2KQotCQlyZXR1cm4gLWVycm5vOwotCi0JZXJyID0g dXNiX2NvbnRyb2xfbXNnKHVkZXYsIFVTQl9ESVJfT1VUIHwgVVNCX1RZUEVfVkVORE9SIHwgVVNC X1JFQ0lQX0RFVklDRSwKLQkJCQkwLCBkZXZpbmZvLT5tb2RlLCAwLCBOVUxMLCAwLCAxMDAwMCk7 Ci0KLQlpZiAoZXJyID09IDApIHsKLQkJZXJyID0gLTE7Ci0JCWVycm5vID0gRUFMUkVBRFk7Ci0J fSBlbHNlIHsKLQkJaWYgKGVycm5vID09IEVUSU1FRE9VVCkKLQkJCWVyciA9IDA7Ci0JfQotCi0J dXNiX2Nsb3NlKHVkZXYpOwotCi0JcmV0dXJuIGVycjsKLX0KLQotc3RhdGljIGludCBzZW5kX3Jl cG9ydChpbnQgZmQsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUpCi17Ci0Jc3RydWN0IGhp ZGRldl9yZXBvcnRfaW5mbyByaW5mbzsKLQlzdHJ1Y3QgaGlkZGV2X3VzYWdlX3JlZiB1cmVmOwot CXVuc2lnbmVkIGludCBpOwotCWludCBlcnI7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsr KSB7Ci0JCW1lbXNldCgmdXJlZiwgMCwgc2l6ZW9mKHVyZWYpKTsKLQkJdXJlZi5yZXBvcnRfdHlw ZSA9IEhJRF9SRVBPUlRfVFlQRV9PVVRQVVQ7Ci0JCXVyZWYucmVwb3J0X2lkICAgPSAweDEwOwot CQl1cmVmLmZpZWxkX2luZGV4ID0gMDsKLQkJdXJlZi51c2FnZV9pbmRleCA9IGk7Ci0JCXVyZWYu dXNhZ2VfY29kZSAgPSAweGZmMDAwMDAxOwotCQl1cmVmLnZhbHVlICAgICAgID0gYnVmW2ldICYg MHgwMDAwMDBmZjsKLQkJZXJyID0gaW9jdGwoZmQsIEhJRElPQ1NVU0FHRSwgJnVyZWYpOwotCQlp ZiAoZXJyIDwgMCkKLQkJCXJldHVybiBlcnI7Ci0JfQotCi0JbWVtc2V0KCZyaW5mbywgMCwgc2l6 ZW9mKHJpbmZvKSk7Ci0JcmluZm8ucmVwb3J0X3R5cGUgPSBISURfUkVQT1JUX1RZUEVfT1VUUFVU OwotCXJpbmZvLnJlcG9ydF9pZCAgID0gMHgxMDsKLQlyaW5mby5udW1fZmllbGRzICA9IDE7Ci0J ZXJyID0gaW9jdGwoZmQsIEhJRElPQ1NSRVBPUlQsICZyaW5mbyk7Ci0KLQlyZXR1cm4gZXJyOwot fQotCi1zdGF0aWMgaW50IHN3aXRjaF9sb2dpdGVjaChzdHJ1Y3QgZGV2aWNlX2luZm8gKmRldmlu Zm8pCi17Ci0JY2hhciBkZXZuYW1lW1BBVEhfTUFYICsgMV07Ci0JaW50IGksIGZkLCBlcnIgPSAt MTsKLQotCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Ci0JCXN0cnVjdCBoaWRkZXZfZGV2aW5m byBkaW5mbzsKLQkJY2hhciByZXAxW10gPSB7IDB4ZmYsIDB4ODAsIDB4ODAsIDB4MDEsIDB4MDAs IDB4MDAgfTsKLQkJY2hhciByZXAyW10gPSB7IDB4ZmYsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MzAs IDB4MDAgfTsKLQkJY2hhciByZXAzW10gPSB7IDB4ZmYsIDB4ODEsIDB4ODAsIDB4MDAsIDB4MDAs IDB4MDAgfTsKLQotCQlzcHJpbnRmKGRldm5hbWUsICIlcy9oaWRkZXYlZCIsIGRldnBhdGgsIGkp OwotCQlmZCA9IG9wZW4oZGV2bmFtZSwgT19SRFdSKTsKLQkJaWYgKGZkIDwgMCkgewotCQkJc3By aW50ZihkZXZuYW1lLCAiJXMvdXNiL2hpZGRldiVkIiwgZGV2cGF0aCwgaSk7Ci0JCQlmZCA9IG9w ZW4oZGV2bmFtZSwgT19SRFdSKTsKLQkJCWlmIChmZCA8IDApIHsKLQkJCQlzcHJpbnRmKGRldm5h bWUsICIlcy91c2IvaGlkL2hpZGRldiVkIiwgZGV2cGF0aCwgaSk7Ci0JCQkJZmQgPSBvcGVuKGRl dm5hbWUsIE9fUkRXUik7Ci0JCQkJaWYgKGZkIDwgMCkKLQkJCQkJY29udGludWU7Ci0JCQl9Ci0J CX0KLQotCQltZW1zZXQoJmRpbmZvLCAwLCBzaXplb2YoZGluZm8pKTsKLQkJZXJyID0gaW9jdGwo ZmQsIEhJRElPQ0dERVZJTkZPLCAmZGluZm8pOwotCQlpZiAoZXJyIDwgMCB8fCAoaW50KSBkaW5m by5idXNudW0gIT0gYXRvaShkZXZpbmZvLT5kZXYtPmJ1cy0+ZGlybmFtZSkgfHwKLQkJCQkoaW50 KSBkaW5mby5kZXZudW0gIT0gYXRvaShkZXZpbmZvLT5kZXYtPmZpbGVuYW1lKSkgewotCQkJY2xv c2UoZmQpOwotCQkJY29udGludWU7Ci0JCX0KLQotCQllcnIgPSBpb2N0bChmZCwgSElESU9DSU5J VFJFUE9SVCwgMCk7Ci0JCWlmIChlcnIgPCAwKSB7Ci0JCQljbG9zZShmZCk7Ci0JCQlicmVhazsK LQkJfQotCi0JCWVyciA9IHNlbmRfcmVwb3J0KGZkLCByZXAxLCBzaXplb2YocmVwMSkpOwotCQlp ZiAoZXJyIDwgMCkgewotCQkJY2xvc2UoZmQpOwotCQkJYnJlYWs7Ci0JCX0KLQotCQllcnIgPSBz ZW5kX3JlcG9ydChmZCwgcmVwMiwgc2l6ZW9mKHJlcDIpKTsKLQkJaWYgKGVyciA8IDApIHsKLQkJ CWNsb3NlKGZkKTsKLQkJCWJyZWFrOwotCQl9Ci0KLQkJZXJyID0gc2VuZF9yZXBvcnQoZmQsIHJl cDMsIHNpemVvZihyZXAzKSk7Ci0JCWNsb3NlKGZkKTsKLQkJYnJlYWs7Ci0JfQotCi0JcmV0dXJu IGVycjsKLX0KLQotc3RhdGljIGludCBzd2l0Y2hfZGVsbChzdHJ1Y3QgZGV2aWNlX2luZm8gKmRl dmluZm8pCi17Ci0JY2hhciByZXBvcnRbXSA9IHsgMHg3ZiwgMHgwMCwgMHgwMCwgMHgwMCB9Owot Ci0Jc3RydWN0IHVzYl9kZXZfaGFuZGxlICpoYW5kbGU7Ci0JaW50IGVycjsKLQotCXN3aXRjaCAo ZGV2aW5mby0+bW9kZSkgewotCWNhc2UgSENJOgotCQlyZXBvcnRbMV0gPSAweDEzOwotCQlicmVh azsKLQljYXNlIEhJRDoKLQkJcmVwb3J0WzFdID0gMHgxNDsKLQkJYnJlYWs7Ci0JfQotCi0JaGFu ZGxlID0gdXNiX29wZW4oZGV2aW5mby0+ZGV2KTsKLQlpZiAoIWhhbmRsZSkKLQkJcmV0dXJuIC1F SU87Ci0KLQkvKiBEb24ndCBuZWVkIHRvIGNoZWNrIHJldHVybiwgYXMgbWlnaHQgbm90IGJlIGlu IHVzZSAqLwotCXVzYl9kZXRhY2hfa2VybmVsX2RyaXZlcl9ucChoYW5kbGUsIDApOwotCi0JaWYg KHVzYl9jbGFpbV9pbnRlcmZhY2UoaGFuZGxlLCAwKSA8IDApIHsKLQkJdXNiX2Nsb3NlKGhhbmRs ZSk7Ci0JCXJldHVybiAtRUlPOwotCX0KLQotCWVyciA9IHVzYl9jb250cm9sX21zZyhoYW5kbGUs Ci0JCVVTQl9FTkRQT0lOVF9PVVQgfCBVU0JfVFlQRV9DTEFTUyB8IFVTQl9SRUNJUF9JTlRFUkZB Q0UsCi0JCQlVU0JfUkVRX1NFVF9DT05GSUdVUkFUSU9OLCAweDdmIHwgKDB4MDMgPDwgOCksIDAs Ci0JCQkJCQlyZXBvcnQsIHNpemVvZihyZXBvcnQpLCA1MDAwKTsKLQotCWlmIChlcnIgPT0gMCkg ewotCQllcnIgPSAtMTsKLQkJZXJybm8gPSBFQUxSRUFEWTsKLQl9IGVsc2UgewotCQlpZiAoZXJy bm8gPT0gRVRJTUVET1VUKQotCQkJZXJyID0gMDsKLQl9Ci0KLQl1c2JfY2xvc2UoaGFuZGxlKTsK LQotCXJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyBpbnQgZmluZF9kZXZpY2Uoc3RydWN0IGRldmlj ZV9pbmZvKiBkZXZpbmZvKQotewotCXN0cnVjdCB1c2JfYnVzICpidXM7Ci0Jc3RydWN0IHVzYl9k ZXZpY2UgKmRldjsKLQotCXVzYl9maW5kX2J1c3NlcygpOwotCXVzYl9maW5kX2RldmljZXMoKTsK LQotCWZvciAoYnVzID0gdXNiX2dldF9idXNzZXMoKTsgYnVzOyBidXMgPSBidXMtPm5leHQpCi0J CWZvciAoZGV2ID0gYnVzLT5kZXZpY2VzOyBkZXY7IGRldiA9IGRldi0+bmV4dCkgewotCQkJaWYg KGRldi0+ZGVzY3JpcHRvci5pZFZlbmRvciA9PSBkZXZpbmZvLT52ZW5kb3IgJiYKLQkJCSAgICBk ZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0ID09IGRldmluZm8tPnByb2R1Y3QpIHsKLQkJCQlkZXZp bmZvLT5kZXY9ZGV2OwotCQkJCXJldHVybiAxOwotCQkJfQotCQl9Ci0JcmV0dXJuIDA7Ci19Ci0K LXN0YXRpYyB2b2lkIHVzYWdlKGNoYXIqIGVycm9yKQotewotCWlmIChlcnJvcikKLQkJZnByaW50 ZihzdGRlcnIsIlxuJXNcbiIsIGVycm9yKTsKLQllbHNlCi0JCXByaW50ZigiaGlkMmhjaSAtIEJs dWV0b290aCBISUQgdG8gSENJIG1vZGUgc3dpdGNoaW5nIHV0aWxpdHlcblxuIik7Ci0KLQlwcmlu dGYoIlVzYWdlOlxuIgotCQkiXHRoaWQyaGNpIFtvcHRpb25zXVxuIgotCQkiXG4iKTsKLQotCXBy aW50ZigiT3B0aW9uczpcbiIKLQkJIlx0LWgsIC0taGVscCAgICAgICAgICAgRGlzcGxheSBoZWxw XG4iCi0JCSJcdC1xLCAtLXF1aWV0ICAgICAgICAgIERvbid0IGRpc3BsYXkgYW55IG1lc3NhZ2Vz XG4iCi0JCSJcdC1yLCAtLW1vZGU9ICAgICAgICAgIE1vZGUgdG8gc3dpdGNoIHRvIFtoaWQsIGhj aV1cbiIKLQkJIlx0LXYsIC0tdmVuZG9yPSAgICAgICAgVmVuZG9yIElEIHRvIGFjdCB1cG9uXG4i Ci0JCSJcdC1wLCAtLXByb2R1Y3Q9ICAgICAgIFByb2R1Y3QgSUQgdG8gYWN0IHVwb25cbiIKLQkJ Ilx0LW0sIC0tbWV0aG9kPSAgICAgICAgTWV0aG9kIHRvIHVzZSB0byBzd2l0Y2ggW2NzciwgbG9n aXRlY2gsIGRlbGxdXG4iCi0JCSJcbiIpOwotCWlmIChlcnJvcikKLQkJZXhpdCgxKTsKLX0KLQot c3RhdGljIHN0cnVjdCBvcHRpb24gbWFpbl9vcHRpb25zW10gPSB7Ci0JeyAiaGVscCIsCW5vX2Fy Z3VtZW50LCAwLCAnaCcgfSwKLQl7ICJxdWlldCIsCW5vX2FyZ3VtZW50LCAwLCAncScgfSwKLQl7 ICJtb2RlIiwJcmVxdWlyZWRfYXJndW1lbnQsIDAsICdyJyB9LAotCXsgInZlbmRvciIsCXJlcXVp cmVkX2FyZ3VtZW50LCAwLCAndicgfSwKLQl7ICJwcm9kdWN0IiwJcmVxdWlyZWRfYXJndW1lbnQs IDAsICdwJyB9LAotCXsgIm1ldGhvZCIsCXJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnbScgfSwKLQl7 IDAsIDAsIDAsIDAgfQotfTsKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLXsK LQlzdHJ1Y3QgZGV2aWNlX2luZm8gZGV2ID0geyBOVUxMLCBIQ0ksIDAsIDAgfTsKLQlpbnQgb3B0 LCBxdWlldCA9IDA7Ci0JaW50ICgqbWV0aG9kKShzdHJ1Y3QgZGV2aWNlX2luZm8gKmRldikgPSBO VUxMOwotCi0Jd2hpbGUgKChvcHQgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiK3I6djpwOm06 cWgiLCBtYWluX29wdGlvbnMsIE5VTEwpKSAhPSAtMSkgewotCQlzd2l0Y2ggKG9wdCkgewotCQlj YXNlICdyJzoKLQkJCWlmIChvcHRhcmcgJiYgIXN0cmNtcChvcHRhcmcsICJoaWQiKSkKLQkJCQlk ZXYubW9kZSA9IEhJRDsKLQkJCWVsc2UgaWYgKG9wdGFyZyAmJiAhc3RyY21wKG9wdGFyZywgImhj aSIpKQotCQkJCWRldi5tb2RlID0gSENJOwotCQkJZWxzZQotCQkJCXVzYWdlKCJFUlJPUjogVW5k ZWZpbmVkIHJhZGlvIG1vZGVcbiIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ3YnOgotCQkJc3NjYW5m KG9wdGFyZywgIiU0aHgiLCAmZGV2LnZlbmRvcik7Ci0JCQlicmVhazsKLQkJY2FzZSAncCc6Ci0J CQlzc2NhbmYob3B0YXJnLCAiJTRoeCIsICZkZXYucHJvZHVjdCk7Ci0JCQlicmVhazsKLQkJY2Fz ZSAnbSc6Ci0JCQlpZiAob3B0YXJnICYmICFzdHJjbXAob3B0YXJnLCAiY3NyIikpCi0JCQkJbWV0 aG9kID0gc3dpdGNoX2NzcjsKLQkJCWVsc2UgaWYgKG9wdGFyZyAmJiAhc3RyY21wKG9wdGFyZywg ImxvZ2l0ZWNoIikpCi0JCQkJbWV0aG9kID0gc3dpdGNoX2xvZ2l0ZWNoOwotCQkJZWxzZSBpZiAo b3B0YXJnICYmICFzdHJjbXAob3B0YXJnLCAiZGVsbCIpKQotCQkJCW1ldGhvZCA9IHN3aXRjaF9k ZWxsOwotCQkJZWxzZQotCQkJCXVzYWdlKCJFUlJPUjogVW5kZWZpbmVkIHN3aXRjaGluZyBtZXRo b2RcbiIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ3EnOgotCQkJcXVpZXQgPSAxOwotCQkJYnJlYWs7 Ci0JCWNhc2UgJ2gnOgotCQkJdXNhZ2UoTlVMTCk7Ci0JCWRlZmF1bHQ6Ci0JCQlleGl0KDApOwot CQl9Ci0JfQotCi0JaWYgKCFxdWlldCAmJiAoIWRldi52ZW5kb3IgfHwgIWRldi5wcm9kdWN0IHx8 ICFtZXRob2QpKQotCQl1c2FnZSgiRVJST1I6IFZlbmRvciBJRCwgUHJvZHVjdCBJRCwgYW5kIFN3 aXRjaGluZyBNZXRob2QgbXVzdCBhbGwgYmUgZGVmaW5lZC5cbiIpOwotCi0JYXJnYyAtPSBvcHRp bmQ7Ci0JYXJndiArPSBvcHRpbmQ7Ci0Jb3B0aW5kID0gMDsKLQotCXVzYl9pbml0KCk7Ci0KLQlp ZiAoIWZpbmRfZGV2aWNlKCZkZXYpKSB7Ci0JCWlmICghcXVpZXQpCi0JCQlmcHJpbnRmKHN0ZGVy ciwgIkRldmljZSAlMDR4OiUwNHggbm90IGZvdW5kIG9uIFVTQiBidXMuXG4iLAotCQkJCWRldi52 ZW5kb3IsIGRldi5wcm9kdWN0KTsKLQkJZXhpdCgxKTsKLQl9Ci0KLQlpZiAoIXF1aWV0KQotCQlw cmludGYoIkF0dGVtcHRpbmcgdG8gc3dpdGNoIGRldmljZSAlMDR4OiUwNHggdG8gJXMgbW9kZSAi LAotCQkJZGV2LnZlbmRvciwgZGV2LnByb2R1Y3QsIGRldi5tb2RlID8gIkhJRCIgOiAiSENJIik7 Ci0JZmZsdXNoKHN0ZG91dCk7Ci0KLQlpZiAobWV0aG9kKCZkZXYpIDwgMCAmJiAhcXVpZXQpCi0J CXByaW50ZigiZmFpbGVkICglcylcbiIsIHN0cmVycm9yKGVycm5vKSk7Ci0JZWxzZSBpZiAoIXF1 aWV0KQotCQlwcmludGYoIndhcyBzdWNjZXNzZnVsXG4iKTsKLQotCXJldHVybiBlcnJubzsKLX0K LS0gCjEuNi4wLjQKCg== ------_=_NextPart_001_01C9ED43.0C9813EC--