From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 17902] [830M missing dvo driver] need support for DVO-LVDS via
na2501
Date: Fri, 08 Jun 2012 16:06:59 +0000
Message-ID:
References:
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path:
Received: from annarchy.freedesktop.org (annarchy.freedesktop.org
[131.252.210.176])
by gabe.freedesktop.org (Postfix) with ESMTP id 74C909E7C6
for ;
Fri, 8 Jun 2012 09:07:00 -0700 (PDT)
In-Reply-To:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org
Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org
To: dri-devel@lists.freedesktop.org
List-Id: dri-devel@lists.freedesktop.org
aHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5MDIKCnRob3JA
bWF0aC50dS1iZXJsaW4uZGUgY2hhbmdlZDoKCiAgICAgICAgICAgV2hhdCAgICB8UmVtb3ZlZCAg
ICAgICAgICAgICAgICAgICAgIHxBZGRlZAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAg
ICBTdGF0dXN8UkVPUEVORUQgICAgICAgICAgICAgICAgICAgIHxSRVNPTFZFRAogICAgICAgICBS
ZXNvbHV0aW9ufCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8V09SS1NGT1JNRQoKLS0tIENv
bW1lbnQgIzg1IGZyb20gdGhvckBtYXRoLnR1LWJlcmxpbi5kZSAyMDEyLTA2LTA4IDA5OjA2OjU5
IFBEVCAtLS0KTm93IEkgYWxzbyBnb3QgdGhlIHNjYWxlciAicHNldWRvLXdvcmtpbmciIGJ5IGlu
c3BlY3Rpbmcgd2hpY2ggdmFsdWVzIHRoZSB2ZXNhCkJJT1MgbGVhdmVzIGJlaGluZCBpbiB0aGUg
RFZPIGFuZCBqdXN0IGNvcHlpbmcgdGhlc2UgdmFsdWVzLiBCeSBub3cgSSBjYW4Kc3VwcG9ydCA2
NDB4NDgwLCA4MDB4NjAwIGFuZCB0aGUgbmF0aXZlIHJlc29sdXRpb24sIHdoaWNoIGlzIGhlcmUg
MTAyNHg3NjguClVuZm9ydHVuYXRlbHksIEkgZG8gbm90IGhhdmUgdGhlIHJpZ2h0IHZlc2EgQklP
UyBkYXRhIGZvciB0aGUgbGF0dGVyLCBhbmQgZm9yCmFueXRoaW5nIGVsc2UsIHNvIHlvdXIgbWls
YWdlIG1heSB2YXJ5LiBBbHNvLCB0aGUgc2NhbGVyIHN1cHBvcnQgaXMgc29tZWhvdwpoYWNreSBh
cyB0aGUgRFZPIGZpcnN0IG5lZWRzIHRvIGJlIHR1cm5lZCBvbiBieSBlbmFibGluZyB0aGUgUExM
IGJ5IHBva2luZyBpbnRvCnRoZSBjaGlwc2V0IHJlZ2lzdGVycyAoeXVjayEpLiBJdCdzIHJlYWxs
eSBhIGJlYXN0eSBjaGlwLgoKSSB3aWxsIHN1Ym1pdCB0aGUgcGF0Y2ggdG8gdGhlIG1haWxpbmcg
bGlzdCBsYXRlciB0aGlzIGRheSwgaGVyZSBmb3IgeW91cgpyZWNvcmRzOgoKZGlmZiAtcnVwIGxp
bnV4LTMuNC4xLW9yaWcvZHJpdmVycy9ncHUvZHJtL2k5MTUvZHZvLmgKbGludXgtMy40LjEvZHJp
dmVycy9ncHUvZHJtL2k5MTUvZHZvLmgKLS0tIGxpbnV4LTMuNC4xLW9yaWcvZHJpdmVycy9ncHUv
ZHJtL2k5MTUvZHZvLmggICAgMjAxMi0wNi0wMQowOToxODo0NC4wMDAwMDAwMDAgKzAyMDAKKysr
IGxpbnV4LTMuNC4xL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2R2by5oICAgIDIwMTItMDYtMDggMTM6
MTU6MTkuMDAwMDAwMDAwCiswMjAwCkBAIC0xNDAsNSArMTQwLDYgQEAgZXh0ZXJuIHN0cnVjdCBp
bnRlbF9kdm9fZGV2X29wcyBjaDd4eHhfbwogZXh0ZXJuIHN0cnVjdCBpbnRlbF9kdm9fZGV2X29w
cyBpdmNoX29wczsKIGV4dGVybiBzdHJ1Y3QgaW50ZWxfZHZvX2Rldl9vcHMgdGZwNDEwX29wczsK
IGV4dGVybiBzdHJ1Y3QgaW50ZWxfZHZvX2Rldl9vcHMgY2g3MDE3X29wczsKK2V4dGVybiBzdHJ1
Y3QgaW50ZWxfZHZvX2Rldl9vcHMgbnMyNTAxX29wczsKCiAjZW5kaWYgLyogX0lOVEVMX0RWT19I
ICovCmRpZmYgLXJ1cCBsaW51eC0zLjQuMS1vcmlnL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2R2b19u
czI1MDEuYwpsaW51eC0zLjQuMS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kdm9fbnMyNTAxLmMKLS0t
IGxpbnV4LTMuNC4xLW9yaWcvZHJpdmVycy9ncHUvZHJtL2k5MTUvZHZvX25zMjUwMS5jICAgIDIw
MTItMDYtMDgKMTc6NTk6MjAuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0zLjQuMS9kcml2ZXJz
L2dwdS9kcm0vaTkxNS9kdm9fbnMyNTAxLmMgICAgMjAxMi0wNi0wOAoxNzo1MjoyMS4wMDAwMDAw
MDAgKzAyMDAKQEAgLTAsMCArMSw1NDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitDb3B5cmln
aHQgwqkgMjAxMiBHaWxsZXMgRGFydGlndWVsb25ndWUsIFRob21hcyBSaWNodGVyCisKK0FsbCBS
aWdodHMgUmVzZXJ2ZWQuCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCitjb3B5IG9mIHRoaXMgc29mdHdhcmUg
YW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisiU29mdHdhcmUiKSwgdG8g
ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCit3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCitkaXN0cmlidXRlLCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRo
ZSBTb2Z0d2FyZSwgYW5kIHRvCitwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBp
cyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KK3RoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp
Y2UgKGluY2x1ZGluZyB0aGUKK25leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBh
bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCitvZiB0aGUgU29mdHdhcmUuCisKK1RI
RSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELCBFWFBSRVNTCitPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI
RSBXQVJSQU5USUVTIE9GCitNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULgorSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFV
VEhPUiBCRSBMSUFCTEUgRk9SCitBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKK1RPUlQgT1IgT1RIRVJXSVNFLCBB
UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCitTT0ZUV0FSRSBP
UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKworKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiovCisKKyNpbmNsdWRlICJkdm8uaCIKKyNpbmNsdWRlICJpOTE1X3JlZy5oIgorI2lu
Y2x1ZGUgImk5MTVfZHJ2LmgiCisKKyNkZWZpbmUgTlMyNTAxX1ZJRCAweDEzMDUKKyNkZWZpbmUg
TlMyNTAxX0RJRCAweDY3MjYKKworI2RlZmluZSBOUzI1MDFfVklEX0xPIDB4MDAKKyNkZWZpbmUg
TlMyNTAxX1ZJRF9ISSAweDAxCisjZGVmaW5lIE5TMjUwMV9ESURfTE8gMHgwMgorI2RlZmluZSBO
UzI1MDFfRElEX0hJIDB4MDMKKyNkZWZpbmUgTlMyNTAxX1JFViAweDA0CisjZGVmaW5lIE5TMjUw
MV9SU1ZEIDB4MDUKKyNkZWZpbmUgTlMyNTAxX0ZSRVFfTE8gMHgwNgorI2RlZmluZSBOUzI1MDFf
RlJFUV9ISSAweDA3CisKKyNkZWZpbmUgTlMyNTAxX1JFRzggMHgwOAorI2RlZmluZSBOUzI1MDFf
OF9WRU4gKDE8PDUpCisjZGVmaW5lIE5TMjUwMV84X0hFTiAoMTw8NCkKKyNkZWZpbmUgTlMyNTAx
XzhfRFNFTCAoMTw8MykKKyNkZWZpbmUgTlMyNTAxXzhfQlBBUyAoMTw8MikKKyNkZWZpbmUgTlMy
NTAxXzhfUlNWRCAoMTw8MSkKKyNkZWZpbmUgTlMyNTAxXzhfUEQgKDE8PDApCisKKyNkZWZpbmUg
TlMyNTAxX1JFRzkgMHgwOQorI2RlZmluZSBOUzI1MDFfOV9WTE9XICgxPDw3KQorI2RlZmluZSBO
UzI1MDFfOV9NU0VMX01BU0sgKDB4Nzw8NCkKKyNkZWZpbmUgTlMyNTAxXzlfVFNFTCAoMTw8MykK
KyNkZWZpbmUgTlMyNTAxXzlfUlNFTiAoMTw8MikKKyNkZWZpbmUgTlMyNTAxXzlfUlNWRCAoMTw8
MSkKKyNkZWZpbmUgTlMyNTAxXzlfTURJICgxPDwwKQorCisjZGVmaW5lIE5TMjUwMV9SRUdDIDB4
MGMKKworc3RydWN0IG5zMjUwMV9wcml2IHsKKyAgLy9JMkNEZXZSZWMgZDsKKyAgYm9vbCBxdWll
dDsKKyAgaW50IHJlZ184X3NoYWRvdzsKKyAgaW50IHJlZ184X3NldDsKKyAgLy8gU2hhZG93IHJl
Z2lzdGVycyBmb3IgaTkxNQorICBpbnQgZHZvYzsKKyAgaW50IHBsbF9hOworICBpbnQgc3JjZGlt
OworICBpbnQgZndfYmxjOworfTsKKworI2RlZmluZSBOU1BUUihkKSAoKE5TMjUwMVB0cikoZC0+
RHJpdmVyUHJpdmF0ZS5wdHIpKQorCisvKgorKiogSW5jbHVkZSB0aGUgUExMIGxhdW5jaGVyIHBy
b3RvdHlwZQorKi8KK2V4dGVybiB2b2lkIGludGVsX2VuYWJsZV9wbGwoc3RydWN0IGRybV9pOTE1
X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUKcGlwZSk7CisKKy8qCisqKiBGb3IgcmVhc29u
cyB1bmNsZWFyIHRvIG1lLCB0aGUgbnMyNTAxIGF0IGxlYXN0IG9uIHRoZSBGdWppdHN1L1NpZW1l
bnMKKyoqIGxhcHRvcHMgZG9lcyBub3QgcmVhY3Qgb24gdGhlIGkyYyBidXMgdW5sZXNzCisqKiBi
b3RoIHRoZSBQTEwgaXMgcnVubmluZyBhbmQgdGhlIGRpc3BsYXkgaXMgY29uZmlndXJlZCBpbiBp
dHMgbmF0aXZlCisqKiByZXNvbHV0aW9uLgorKiogVGhpcyBmdW5jdGlvbiBmb3JjZXMgdGhlIERW
TyBvbiwgYW5kIHN0b3JlcyB0aGUgcmVnaXN0ZXJzIGl0IHRvdWNoZXMuCisqKiBBZnRlcndhcmRz
LCByZWdpc3RlcnMgYXJlIHJlc3RvcmVkIHRvIHJlZ3VsYXIgdmFsdWVzLgorKioKKyoqIFRoaXMg
aXMgcHJldHR5IG11Y2ggYSBoYWNrLCB0aG91Z2ggaXQgd29ya3MuCisqKiBXaXRob3V0IHRoYXQs
IG5zMjUwMV9yZWFkYiBhbmQgbnMyNTAxX3dyaXRlYiBmYWlsCisqKiB3aGVuIHN3aXRjaGluZyB0
aGUgcmVzb2x1dGlvbi4KKyovCisKK3N0YXRpYyB2b2lkIGVuYWJsZV9kdm8oc3RydWN0IGludGVs
X2R2b19kZXZpY2UgKmR2bykKK3sKKyAgc3RydWN0IG5zMjUwMV9wcml2ICpucyA9IChzdHJ1Y3Qg
bnMyNTAxX3ByaXYgKikoZHZvLT5kZXZfcHJpdik7CisgIHN0cnVjdCBpMmNfYWRhcHRlciAqYWRh
cHRlciA9IGR2by0+aTJjX2J1czsKKyAgc3RydWN0IGludGVsX2dtYnVzICpidXMgICAgID0gY29u
dGFpbmVyX29mKGFkYXB0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHJ1Y3QgaW50ZWxfZ21idXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhZGFwdGVyKTsKKyAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl
dl9wcml2ID0gYnVzLT5kZXZfcHJpdjsKKworICBEUk1fREVCVUdfS01TKCIlczogVHJ5aW5nIHRv
IHJlLWVuYWJsZSB0aGUgRFZPXG4iLF9fRlVOQ1RJT05fXyk7CisKKyAgbnMtPmR2b2MgICA9IEk5
MTVfUkVBRChEVk9fQyk7CisgIG5zLT5wbGxfYSAgPSBJOTE1X1JFQUQoX0RQTExfQSk7CisgIG5z
LT5zcmNkaW0gPSBJOTE1X1JFQUQoRFZPQ19TUkNESU0pOworICBucy0+ZndfYmxjID0gSTkxNV9S
RUFEKEZXX0JMQyk7CisKKyAgSTkxNV9XUklURShEVk9DLCAweDEwMDA0MDg0KTsKKyAgSTkxNV9X
UklURShfRFBMTF9BLDB4ZDA4MjAwMDApOworICBJOTE1X1dSSVRFKERWT0NfU1JDRElNLDB4NDAw
MzAwKTsgLy8gMTAyNHg3NjgKKyAgSTkxNV9XUklURShGV19CTEMsMHgxMDgwMzA0KTsgICAgIAor
CisgIGludGVsX2VuYWJsZV9wbGwoZGV2X3ByaXYsMCk7CisKKyAgSTkxNV9XUklURShEVk9DLCAw
eDkwMDA0MDg0KTsKK30KKworLyoKKyoqIFJlc3RvcmUgdGhlIEk5MTUgcmVnaXN0ZXJzIG1vZGlm
aWVkIGJ5IHRoZSBhYm92ZQorKiogdHJpZ2dlciBmdW5jdGlvbi4KKyovCitzdGF0aWMgdm9pZCBy
ZXN0b3JlX2R2byhzdHJ1Y3QgaW50ZWxfZHZvX2RldmljZSAqZHZvKQoreyAKKyAgc3RydWN0IGky
Y19hZGFwdGVyICphZGFwdGVyID0gZHZvLT5pMmNfYnVzOworICBzdHJ1Y3QgaW50ZWxfZ21idXMg
KmJ1cyAgICAgPSBjb250YWluZXJfb2YoYWRhcHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9nbWJ1cywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkYXB0ZXIpOworICBzdHJ1Y3QgZHJtX2k5
MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBidXMtPmRldl9wcml2OworICBzdHJ1Y3QgbnMyNTAxX3By
aXYgKm5zID0gKHN0cnVjdCBuczI1MDFfcHJpdiAqKShkdm8tPmRldl9wcml2KTsKKworICBJOTE1
X1dSSVRFKERWT0MgICAgICAgLG5zLT5kdm9jKTsKKyAgSTkxNV9XUklURShfRFBMTF9BICAgICxu
cy0+cGxsX2EpOworICBJOTE1X1dSSVRFKERWT0NfU1JDRElNLG5zLT5zcmNkaW0pOworICBJOTE1
X1dSSVRFKEZXX0JMQyAgICAgLG5zLT5md19ibGMpOworfQorCisvKgorKiogUmVhZCBhIHJlZ2lz
dGVyIGZyb20gdGhlIG5zMjUwMS4KKyoqIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLCBmYWxz
ZSBvdGhlcndpc2UuCisqKiBJZiBpdCByZXR1cm5zIGZhbHNlLCBpdCBtaWdodCBiZSB3aXNlIHRv
IGVuYWJsZSB0aGUKKyoqIERWTyB3aXRoIHRoZSBhYm92ZSBmdW5jdGlvbi4KKyovCitzdGF0aWMg
Ym9vbCBuczI1MDFfcmVhZGIoc3RydWN0IGludGVsX2R2b19kZXZpY2UgKmR2bywgaW50IGFkZHIs
IHVpbnQ4X3QgKmNoKQoreworICBzdHJ1Y3QgbnMyNTAxX3ByaXYgKm5zID0gZHZvLT5kZXZfcHJp
djsKKyAgc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0gZHZvLT5pMmNfYnVzOworICB1OCBv
dXRfYnVmWzJdOworICB1OCBpbl9idWZbMl07CisKKyAgc3RydWN0IGkyY19tc2cgbXNnc1tdID0g
eworICAgIHsKKyAgICAgIC5hZGRyID0gZHZvLT5zbGF2ZV9hZGRyLAorICAgICAgLmZsYWdzID0g
MCwKKyAgICAgIC5sZW4gPSAxLAorICAgICAgLmJ1ZiA9IG91dF9idWYsCisgICAgfSwKKyAgICB7
CisgICAgICAuYWRkciA9IGR2by0+c2xhdmVfYWRkciwKKyAgICAgIC5mbGFncyA9IEkyQ19NX1JE
LAorICAgICAgLmxlbiA9IDEsCisgICAgICAuYnVmID0gaW5fYnVmLAorICAgIH0KKyAgfTsKKwor
ICBvdXRfYnVmWzBdID0gYWRkcjsKKyAgb3V0X2J1ZlsxXSA9IDA7CisKKyAgaWYgKGkyY190cmFu
c2ZlcihhZGFwdGVyLCBtc2dzLCAyKSA9PSAyKSB7CisgICAgKmNoID0gaW5fYnVmWzBdOworICAg
IHJldHVybiB0cnVlOworICB9OworCisgIGlmICghbnMtPnF1aWV0KSB7CisgICAgRFJNX0RFQlVH
X0tNUygiVW5hYmxlIHRvIHJlYWQgcmVnaXN0ZXIgMHglMDJ4IGZyb20gJXM6MHglMDJ4LlxuIiwK
KyAgICAgICAgICBhZGRyLCBhZGFwdGVyLT5uYW1lLCBkdm8tPnNsYXZlX2FkZHIpOworICB9CisK
KyAgcmV0dXJuIGZhbHNlOworfQorCisvKgorKiogV3JpdGUgYSByZWdpc3RlciB0byB0aGUgbnMy
NTAxLgorKiogUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwsIGZhbHNlIG90aGVyd2lzZS4KKyoq
IElmIGl0IHJldHVybnMgZmFsc2UsIGl0IG1pZ2h0IGJlIHdpc2UgdG8gZW5hYmxlIHRoZQorKiog
RFZPIHdpdGggdGhlIGFib3ZlIGZ1bmN0aW9uLgorKi8KK3N0YXRpYyBib29sIG5zMjUwMV93cml0
ZWIoc3RydWN0IGludGVsX2R2b19kZXZpY2UgKmR2bywgaW50IGFkZHIsIHVpbnQ4X3QgY2gpCit7
CisgIHN0cnVjdCBuczI1MDFfcHJpdiAqbnMgPSBkdm8tPmRldl9wcml2OworICBzdHJ1Y3QgaTJj
X2FkYXB0ZXIgKmFkYXB0ZXIgPSBkdm8tPmkyY19idXM7CisgIHVpbnQ4X3Qgb3V0X2J1ZlsyXTsK
KworICBzdHJ1Y3QgaTJjX21zZyBtc2cgPSB7CisgICAgLmFkZHIgPSBkdm8tPnNsYXZlX2FkZHIs
CisgICAgLmZsYWdzID0gMCwKKyAgICAubGVuID0gMiwKKyAgICAuYnVmID0gb3V0X2J1ZiwKKyAg
fTsKKworICBvdXRfYnVmWzBdID0gYWRkcjsKKyAgb3V0X2J1ZlsxXSA9IGNoOworCisgIGlmIChp
MmNfdHJhbnNmZXIoYWRhcHRlciwgJm1zZywgMSkgPT0gMSkgeworICAgIHJldHVybiB0cnVlOwor
ICB9CisKKyAgaWYgKCFucy0+cXVpZXQpIHsKKyAgICBEUk1fREVCVUdfS01TKCJVbmFibGUgdG8g
d3JpdGUgcmVnaXN0ZXIgMHglMDJ4IHRvICVzOiVkXG4iLAorICAgICAgICAgICAgICAgICAgYWRk
ciwgYWRhcHRlci0+bmFtZSwgZHZvLT5zbGF2ZV9hZGRyKTsKKyAgfQorCisgIHJldHVybiBmYWxz
ZTsKK30KKworLyogTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciAyNTAxIGRyaXZlciBmb3IgY2hpcCBv
biBpMmMgYnVzIAorKiogc2NhbiBmb3IgdGhlIGNoaXAgb24gdGhlIGJ1cy4KKyoqIEhvcGUgdGhl
IFZCSU9TIGluaXRpYWxpemVkIHRoZSBQTEwgY29ycmVjdGx5IHNvIHdlIGNhbgorKiogdGFsayB0
byBpdC4gSWYgbm90LCBpdCB3aWxsIG5vdCBiZSBzZWVuIGFuZCBub3QgZGV0ZWN0ZWQuCisqKiBC
dW1tZXIhCisqLworc3RhdGljIGJvb2wgbnMyNTAxX2luaXQoc3RydWN0IGludGVsX2R2b19kZXZp
Y2UgKmR2bywKKyAgICAgICAgICAgIHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKK3sKKyAg
LyogdGhpcyB3aWxsIGRldGVjdCB0aGUgTlMyNTAxIGNoaXAgb24gdGhlIHNwZWNpZmllZCBpMmMg
YnVzICovCisgIHN0cnVjdCBuczI1MDFfcHJpdiAqbnM7CisgIHVuc2lnbmVkIGNoYXIgY2g7CisK
KyAgbnMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbnMyNTAxX3ByaXYpLCBHRlBfS0VSTkVMKTsK
KyAgaWYgKG5zID09IE5VTEwpCisgICAgcmV0dXJuIGZhbHNlOworCisgIGR2by0+aTJjX2J1cyA9
IGFkYXB0ZXI7CisgIGR2by0+ZGV2X3ByaXYgPSBuczsKKyAgbnMtPnF1aWV0ID0gdHJ1ZTsKKwor
ICBpZiAoIW5zMjUwMV9yZWFkYihkdm8sIE5TMjUwMV9WSURfTE8sICZjaCkpCisgICAgZ290byBv
dXQ7CisKKyAgaWYgKGNoICE9IChOUzI1MDFfVklEICYgMHhmZikpIHsKKyAgICBEUk1fREVCVUdf
S01TKCJuczI1MDEgbm90IGRldGVjdGVkIGdvdCAlZDogZnJvbSAlcyBTbGF2ZSAlZC5cbiIsCisg
ICAgICAgICAgY2gsIGFkYXB0ZXItPm5hbWUsIGR2by0+c2xhdmVfYWRkcik7CisgICAgZ290byBv
dXQ7CisgIH0KKworICBpZiAoIW5zMjUwMV9yZWFkYihkdm8sIE5TMjUwMV9ESURfTE8sICZjaCkp
CisgICAgZ290byBvdXQ7CisKKyAgaWYgKGNoICE9IChOUzI1MDFfRElEICYgMHhmZikpIHsKKyAg
ICBEUk1fREVCVUdfS01TKCJuczI1MDEgbm90IGRldGVjdGVkIGdvdCAlZDogZnJvbSAlcyBTbGF2
ZSAlZC5cbiIsCisgICAgICAgICAgY2gsIGFkYXB0ZXItPm5hbWUsIGR2by0+c2xhdmVfYWRkcik7
CisgICAgZ290byBvdXQ7CisgIH0KKyAgbnMtPnF1aWV0ICAgICAgICA9IGZhbHNlOworICBucy0+
cmVnXzhfc2V0ICAgID0gMDsKKyAgbnMtPnJlZ184X3NoYWRvdyA9IE5TMjUwMV84X1BEIHwgTlMy
NTAxXzhfQlBBUyB8IE5TMjUwMV84X1ZFTiB8Ck5TMjUwMV84X0hFTjsKKworICBEUk1fREVCVUdf
S01TKCJpbml0IG5zMjUwMSBkdm8gY29udHJvbGxlciBzdWNjZXNzZnVsbHkhXG4iKTsKKyAgcmV0
dXJuIHRydWU7CisKKyBvdXQ6CisgIGtmcmVlKG5zKTsKKyAgcmV0dXJuIGZhbHNlOworfQorCitz
dGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBuczI1MDFfZGV0ZWN0KHN0cnVjdCBpbnRl
bF9kdm9fZGV2aWNlICpkdm8pCit7CisgIC8qCisgICoqIFRoaXMgaXMgYSBMYXB0b3AgZGlzcGxh
eSwgaXQgZG9lc24ndCBoYXZlIGhvdHBsdWdnaW5nLgorICAqKiBFdmVuIGlmIG5vdCwgdGhlIGRl
dGVjdGlvbiBiaXQgb2YgdGhlIDI1MDEgaXMgdW5yZWxpYWJsZSBhcworICAqKiBpdCBvbmx5IHdv
cmtzIGZvciBzb21lIGRpc3BsYXkgdHlwZXMuCisgICoqIEl0IGlzIGV2ZW4gbW9yZSB1bnJlbGlh
YmxlIGFzIHRoZSBQTEwgbXVzdCBiZSBhY3RpdmUgZm9yCisgICoqIGFsbG93aW5nIHJlYWRpbmcg
ZnJvbSB0aGUgY2hpb3AuCisgICovCisgIHJldHVybiBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3Rl
ZDsKK30KKworc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzIG5zMjUwMV9tb2RlX3ZhbGlkKHN0
cnVjdCBpbnRlbF9kdm9fZGV2aWNlICpkdm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQoreworICBEUk1fREVCVUdfS01TKCIlczogaXMg
bW9kZSB2YWxpZAooaGRpc3BsYXk9JWQsaHRvdGFsPSVkLHZkaXNwbGF5PSVkLHZ0b3RhbD0lZClc
biIsX19GVU5DVElPTl9fLAorICAgICAgICBtb2RlLT5oZGlzcGxheSxtb2RlLT5odG90YWwsbW9k
ZS0+dmRpc3BsYXksbW9kZS0+dnRvdGFsKTsKKworCisgIC8qCisgICoqIEN1cnJlbnRseSwgdGhl
c2UgYXJlIGFsbCB0aGUgbW9kZXMgSSBoYXZlIGRhdGEgZnJvbS4KKyAgKiogTW9yZSBtaWdodCBl
eGlzdC4gVW5jbGVhciBob3cgdG8gZmluZCB0aGUgbmF0aXZlIHJlc29sdXRpb24KKyAgKiogb2Yg
dGhlIHBhbmVsIGluIGhlcmUgc28gd2UgY291bGQgYWx3YXlzIGFjY2VwdCBpdAorICAqKiBieSBk
aXNhYmxpbmcgdGhlIHNjYWxlci4KKyAgKi8KKyAgaWYgKChtb2RlLT5oZGlzcGxheSA9PSA4MDAg
JiYgbW9kZS0+dmRpc3BsYXkgPT0gNjAwKSB8fAorICAgICAgKG1vZGUtPmhkaXNwbGF5ID09IDY0
MCAmJiBtb2RlLT52ZGlzcGxheSA9PSA0ODApIHx8CisgICAgICAobW9kZS0+aGRpc3BsYXkgPT0g
MTAyNCAmJiBtb2RlLT52ZGlzcGxheSA9PSA3NjgpKSB7CisgICAgcmV0dXJuIE1PREVfT0s7Cisg
IH0gZWxzZSB7CisgICAgcmV0dXJuIE1PREVfT05FX1NJWkU7IC8qIElzIHRoaXMgYSByZWFzb25h
YmxlIGVycm9yPyAqLworICB9ICAgIAorfQorCitzdGF0aWMgdm9pZCBuczI1MDFfbW9kZV9zZXQo
c3RydWN0IGludGVsX2R2b19kZXZpY2UgKmR2bywKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJt
X2Rpc3BsYXlfbW9kZSAqbW9kZSwKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlf
bW9kZSAqYWRqdXN0ZWRfbW9kZSkKK3sKKyAgc3RydWN0IG5zMjUwMV9wcml2ICpucyA9IChzdHJ1
Y3QgbnMyNTAxX3ByaXYgKikoZHZvLT5kZXZfcHJpdik7CisKKyAgRFJNX0RFQlVHX0tNUygiJXM6
IHNldCBtb2RlCihoZGlzcGxheT0lZCxodG90YWw9JWQsdmRpc3BsYXk9JWQsdnRvdGFsPSVkKS5c
biIsX19GVU5DVElPTl9fLAorICAgICAgICBtb2RlLT5oZGlzcGxheSxtb2RlLT5odG90YWwsbW9k
ZS0+dmRpc3BsYXksbW9kZS0+dnRvdGFsKTsKKworICAvKgorICAqKiBXaGVyZSBkbyBJIGZpbmQg
dGhlIG5hdGl2ZSByZXNvbHV0aW9uIGZvciB3aGljaCBzY2FsaW5nIGlzIG5vdApyZXF1aXJlZD8/
PworICAqKgorICAqKiBGaXJzdCB0cmlnZ2VyIHRoZSBEVk8gb24gYXMgb3RoZXJ3aXNlIHRoZSBj
aGlwIGRvZXMgbm90IGFwcGVhciBvbiB0aGUgaTJjCisgICoqIGJ1cy4KKyAgKi8KKyAgZW5hYmxl
X2R2byhkdm8pOworCisgIGlmIChtb2RlLT5oZGlzcGxheSA9PSA4MDAgJiYgbW9kZS0+dmRpc3Bs
YXkgPT0gNjAwKSB7CisgICAgLyogbW9kZSAyNzcgKi8KKyAgICBucy0+cmVnXzhfc2hhZG93ICY9
IH5OUzI1MDFfOF9CUEFTOworICAgIERSTV9ERUJVR19LTVMoIiVzOiBzd2l0Y2hpbmcgdG8gODAw
eDYwMFxuIixfX0ZVTkNUSU9OX18pOworCisgICAgLyoKKyAgICAqKiBObywgSSBkbyBub3Qga25v
dyB3aGVyZSB0aGlzIGRhdGEgY29tZXMgZnJvbS4KKyAgICAqKiBJdCBpcyBqdXN0IHdoYXQgdGhl
IHZpZGVvIGJpb3MgbGVmdCBpbiB0aGUgRFZPLCBzbworICAgICoqIEknbSBqdXN0IGNvcHlpbmcg
aXQgaGVyZSBvdmVyLgorICAgICoqIFRoaXMgYWxzbyBtZWFucyB0aGF0IEkgY2Fubm90IHN1cHBv
cnQgYW55IG90aGVyIG1vZGVzCisgICAgKiogZXhjZXB0IHRoZSBvbmVzIHN1cHBvcnRlZCBieSB0
aGUgYmlvcy4KKyAgICAqLworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDExLCAweGM4KTsKKyAg
ICBuczI1MDFfd3JpdGViKGR2bywgMHgxYiwgMHgxOSk7CisgICAgbnMyNTAxX3dyaXRlYihkdm8s
IDB4MWMsIDB4NjQpOworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDFkLCAweDAyKTsKKworICAg
IG5zMjUwMV93cml0ZWIoZHZvLCAweDM0LCAweDAzKTsKKyAgICBuczI1MDFfd3JpdGViKGR2bywg
MHgzNSwgMHhmZik7CisKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHg4MCwgMHgyNyk7CisgICAg
bnMyNTAxX3dyaXRlYihkdm8sIDB4ODEsIDB4MDMpOworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAw
eDgyLCAweDQxKTsKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHg4MywgMHgwNSk7CisKKyAgICBu
czI1MDFfd3JpdGViKGR2bywgMHg4ZCwgMHgwMik7CisgICAgbnMyNTAxX3dyaXRlYihkdm8sIDB4
OGUsIDB4MDQpOworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDhmLCAweDAwKTsKKworICAgIG5z
MjUwMV93cml0ZWIoZHZvLCAweDkwLCAweGZmKTsgLyogdmVydGljYWwgKi8KKyAgICBuczI1MDFf
d3JpdGViKGR2bywgMHg5MSwgMHgwNyk7CisgICAgbnMyNTAxX3dyaXRlYihkdm8sIDB4OTQsIDB4
MDApOworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDk1LCAweDAwKTsKKworICAgIG5zMjUwMV93
cml0ZWIoZHZvLCAweDk2LCAweDAwKTsKKworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDk5LCAw
eDAwKTsKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHg5YSwgMHg4OCk7CisKKyAgICBuczI1MDFf
d3JpdGViKGR2bywgMHg5YywgMHgyMyk7CisgICAgbnMyNTAxX3dyaXRlYihkdm8sIDB4OWQsIDB4
MDApOworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDllLCAweDI1KTsKKyAgICBuczI1MDFfd3Jp
dGViKGR2bywgMHg5ZiwgMHgwMyk7CisKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHhhNCwgMHg4
MCk7CisKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHhiNiwgMHgwMCk7CisKKyAgICBuczI1MDFf
d3JpdGViKGR2bywgMHhiOSwgMHhjOCk7IC8qIGhvcml6b250YWw/ICovCisgICAgbnMyNTAxX3dy
aXRlYihkdm8sIDB4YmEsIDB4MDApOyAvKiBob3Jpem9udGFsPyAqLworCisgICAgbnMyNTAxX3dy
aXRlYihkdm8sIDB4YzAsIDB4MDUpOyAvKiBob3Jpem9udGFsPyAqLworICAgIG5zMjUwMV93cml0
ZWIoZHZvLCAweGMxLCAweGQ3KTsKKworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweGMyLCAweDAw
KTsKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHhjMywgMHhmOCk7CisKKyAgICBuczI1MDFfd3Jp
dGViKGR2bywgMHhjNCwgMHgwMyk7CisgICAgbnMyNTAxX3dyaXRlYihkdm8sIDB4YzUsIDB4MWEp
OworCisgICAgbnMyNTAxX3dyaXRlYihkdm8sIDB4YzYsIDB4MDApOworICAgIG5zMjUwMV93cml0
ZWIoZHZvLCAweGM3LCAweDczKTsKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHhjOCwgMHgwMik7
CisKKyAgfSBlbHNlIGlmIChtb2RlLT5oZGlzcGxheSA9PSA2NDAgJiYgbW9kZS0+dmRpc3BsYXkg
PT0gNDgwKSB7CisgICAgLyogbW9kZSAyNzQgKi8KKyAgICBEUk1fREVCVUdfS01TKCIlczogc3dp
dGNoaW5nIHRvIDY0MHg0ODBcbiIsX19GVU5DVElPTl9fKTsKKyAgICAvKgorICAgICoqIE5vLCBJ
IGRvIG5vdCBrbm93IHdoZXJlIHRoaXMgZGF0YSBjb21lcyBmcm9tLgorICAgICoqIEl0IGlzIGp1
c3Qgd2hhdCB0aGUgdmlkZW8gYmlvcyBsZWZ0IGluIHRoZSBEVk8sIHNvCisgICAgKiogSSdtIGp1
c3QgY29weWluZyBpdCBoZXJlIG92ZXIuCisgICAgKiogVGhpcyBhbHNvIG1lYW5zIHRoYXQgSSBj
YW5ub3Qgc3VwcG9ydCBhbnkgb3RoZXIgbW9kZXMKKyAgICAqKiBleGNlcHQgdGhlIG9uZXMgc3Vw
cG9ydGVkIGJ5IHRoZSBiaW9zLgorICAgICovCisgICAgbnMtPnJlZ184X3NoYWRvdyAmPSB+TlMy
NTAxXzhfQlBBUzsgICAKKworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDExLCAweGEwKTsKKyAg
ICBuczI1MDFfd3JpdGViKGR2bywgMHgxYiwgMHgxMSk7CisgICAgbnMyNTAxX3dyaXRlYihkdm8s
IDB4MWMsIDB4NTQpOworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDFkLCAweDAzKTsKKworICAg
IG5zMjUwMV93cml0ZWIoZHZvLCAweDM0LCAweDAzKTsKKyAgICBuczI1MDFfd3JpdGViKGR2bywg
MHgzNSwgMHhmZik7CisKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHg4MCwgMHhmZik7CisgICAg
bnMyNTAxX3dyaXRlYihkdm8sIDB4ODEsIDB4MDcpOworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAw
eDgyLCAweDNkKTsKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHg4MywgMHgwNSk7CisKKyAgICBu
czI1MDFfd3JpdGViKGR2bywgMHg4ZCwgMHgwMik7CisgICAgbnMyNTAxX3dyaXRlYihkdm8sIDB4
OGUsIDB4MTApOworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDhmLCAweDAwKTsKKworICAgIG5z
MjUwMV93cml0ZWIoZHZvLCAweDkwLCAweGZmKTsgLyogdmVydGljYWwgKi8KKyAgICBuczI1MDFf
d3JpdGViKGR2bywgMHg5MSwgMHgwNyk7CisgICAgbnMyNTAxX3dyaXRlYihkdm8sIDB4OTQsIDB4
MDApOworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDk1LCAweDAwKTsKKworICAgIG5zMjUwMV93
cml0ZWIoZHZvLCAweDk2LCAweDA1KTsKKworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDk5LCAw
eDAwKTsKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHg5YSwgMHg4OCk7CisKKyAgICBuczI1MDFf
d3JpdGViKGR2bywgMHg5YywgMHgyNCk7CisgICAgbnMyNTAxX3dyaXRlYihkdm8sIDB4OWQsIDB4
MDApOworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDllLCAweDI1KTsKKyAgICBuczI1MDFfd3Jp
dGViKGR2bywgMHg5ZiwgMHgwMyk7CisKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHhhNCwgMHg4
NCk7CisKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHhiNiwgMHgwOSk7CisKKyAgICBuczI1MDFf
d3JpdGViKGR2bywgMHhiOSwgMHhhMCk7IC8qIGhvcml6b250YWw/ICovCisgICAgbnMyNTAxX3dy
aXRlYihkdm8sIDB4YmEsIDB4MDApOyAvKiBob3Jpem9udGFsPyAqLworCisgICAgbnMyNTAxX3dy
aXRlYihkdm8sIDB4YzAsIDB4MDUpOyAvKiBob3Jpem9udGFsPyAqLworICAgIG5zMjUwMV93cml0
ZWIoZHZvLCAweGMxLCAweDkwKTsKKworICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweGMyLCAweDAw
KTsKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHhjMywgMHgwZik7CisKKyAgICBuczI1MDFfd3Jp
dGViKGR2bywgMHhjNCwgMHgwMyk7CisgICAgbnMyNTAxX3dyaXRlYihkdm8sIDB4YzUsIDB4MTYp
OworCisgICAgbnMyNTAxX3dyaXRlYihkdm8sIDB4YzYsIDB4MDApOworICAgIG5zMjUwMV93cml0
ZWIoZHZvLCAweGM3LCAweDAyKTsKKyAgICBuczI1MDFfd3JpdGViKGR2bywgMHhjOCwgMHgwMik7
CisKKyAgfSBlbHNlIGlmIChtb2RlLT5oZGlzcGxheSA9PSAxMDI0ICYmIG1vZGUtPnZkaXNwbGF5
ID09IDc2OCkgeworICAgIC8qIG1vZGUgMjgwICovIAorICAgIERSTV9ERUJVR19LTVMoIiVzOiBz
d2l0Y2hpbmcgdG8gMTAyNHg3NjhcbiIsX19GVU5DVElPTl9fKTsKKyAgICAvKgorICAgICoqIFRo
aXMgbWlnaHQgb3IgbWlnaHQgbm90IHdvcmssIGFjdHVhbGx5LiBJJ20gc2lsZW50bHkKKyAgICAq
KiBhc3N1bWluZyBoZXJlIHRoYXQgdGhlIG5hdGl2ZSBwYW5lbCByZXNvbHV0aW9uIGlzCisgICAg
KiogMTAyNHg3NjguIElmIG5vdCwgdGhlbiB0aGlzIGxlYXZlcyB0aGUgc2NhbGVyIGRpc2FibGVk
CisgICAgKiogZ2VuZXJhdGluZyBhIHBpY3R1cmUgdGhhdCBpcyBsaWtlbHkgbm90IHRoZSBleHBl
Y3RlZC4KKyAgICAqKgorICAgICoqIFByb2JsZW0gaXMgdGhhdCBJIGRvIG5vdCBrbm93IHdoZXJl
IHRvIHRha2UgdGhlIHBhbmVsCisgICAgKiogZGltZW5zaW9ucyBmcm9tLgorICAgICoqCisgICAg
KiogRW5hYmxlIHRoZSBieXBhc3MsIHNjYWxpbmcgbm90IHJlcXVpcmVkLiAKKyAgICAqKgorICAg
ICoqIFRoZSBzY2FsZXIgcmVnaXN0ZXJzIGFyZSBpcnJlbGV2YW50IGhlcmUuLi4uCisgICAgKioK
KyAgICAqLworICAgIG5zLT5yZWdfOF9zaGFkb3cgfD0gTlMyNTAxXzhfQlBBUzsKKyAgICBuczI1
MDFfd3JpdGViKGR2bywgMHgzNywgMHg0NCk7CisgIH0gZWxzZSB7CisgICAgLyogRGF0YSBub3Qg
a25vd24uIEJ1bW1lciEgCisgICAgKiogSG9wZWZ1bGx5LCB0aGUgY29kZSBzaG91bGQgbm90IGdv
IGhlcmUKKyAgICAqKiBhcyBtb2RlX09LIGRlbGl2ZXJlZCBubyBvdGhlciBtb2Rlcy4KKyAgICAq
LworICAgIG5zLT5yZWdfOF9zaGFkb3cgfD0gTlMyNTAxXzhfQlBBUzsKKyAgfQorICBuczI1MDFf
d3JpdGViKGR2bywgTlMyNTAxX1JFRzgsIG5zLT5yZWdfOF9zaGFkb3cpOyAKKworICAvKgorICAq
KiBSZXN0b3JlIHRoZSBvbGQgaTkxNSByZWdpc3RlcnMgYmVmb3JlCisgICoqIGZvcmNpbmcgdGhl
IG5zMjUwMSBvbi4KKyAgKi8KKyAgcmVzdG9yZV9kdm8oZHZvKTsKK30KKworLyogc2V0IHRoZSBO
UzI1MDEgcG93ZXIgc3RhdGUgKi8KK3N0YXRpYyB2b2lkIG5zMjUwMV9kcG1zKHN0cnVjdCBpbnRl
bF9kdm9fZGV2aWNlICpkdm8sIGludCBtb2RlKQoreworICBzdHJ1Y3QgbnMyNTAxX3ByaXYgKm5z
ID0gKHN0cnVjdCBuczI1MDFfcHJpdiAqKShkdm8tPmRldl9wcml2KTsKKyAgdW5zaWduZWQgY2hh
ciBjaDsKKworICBEUk1fREVCVUdfS01TKCIlczogVHJ5aW5nIHNldCB0aGUgZHBtcyBvZiB0aGUg
RFZPIHRvCiVkXG4iLF9fRlVOQ1RJT05fXyxtb2RlKTsKKworICBjaCA9IG5zLT5yZWdfOF9zaGFk
b3c7CisgIAorICBpZiAobW9kZSA9PSBEUk1fTU9ERV9EUE1TX09OKQorICAgIGNoIHw9IE5TMjUw
MV84X1BEOworICBlbHNlCisgICAgY2ggJj0gfk5TMjUwMV84X1BEOworCisgIGlmIChucy0+cmVn
Xzhfc2V0ID09IDAgfHwgbnMtPnJlZ184X3NoYWRvdyAhPSBjaCkgeworICAgIG5zLT5yZWdfOF9z
ZXQgICAgPSAxOworICAgIG5zLT5yZWdfOF9zaGFkb3cgPSBjaDsKKyAgICBuczI1MDFfd3JpdGVi
KGR2bywgTlMyNTAxX1JFRzgsIGNoKTsKKyAgfQorICAvKgorICAqKiBOb3RlIHRoYXQgdGhpcyBt
YXkgYWN0dWFsbHkgZmFpbCxuYW1lbHkgZXhhY3RseQorICAqKiB3aGVuIHRoZSBjaGlwIHZhbmlz
aGVkIGZyb20gdGhlIGJ1cy4KKyAgKioKKyAgKiogU2hvdWxkIEkgZm9yY2UtZW5hYmxlIGl0IGhl
cmU/PworICAqLworfQorCitzdGF0aWMgdm9pZCBuczI1MDFfZHVtcF9yZWdzKHN0cnVjdCBpbnRl
bF9kdm9fZGV2aWNlICpkdm8pCit7CisgIHVpbnQ4X3QgdmFsOworCisgIG5zMjUwMV9yZWFkYihk
dm8sIE5TMjUwMV9GUkVRX0xPLCAmdmFsKTsKKyAgRFJNX0xPR19LTVMoIk5TMjUwMV9GUkVRX0xP
OiAweCUwMnhcbiIsIHZhbCk7CisgIG5zMjUwMV9yZWFkYihkdm8sIE5TMjUwMV9GUkVRX0hJLCAm
dmFsKTsKKyAgRFJNX0xPR19LTVMoIk5TMjUwMV9GUkVRX0hJOiAweCUwMnhcbiIsIHZhbCk7Cisg
IG5zMjUwMV9yZWFkYihkdm8sIE5TMjUwMV9SRUc4LCAmdmFsKTsKKyAgRFJNX0xPR19LTVMoIk5T
MjUwMV9SRUc4OiAweCUwMnhcbiIsIHZhbCk7CisgIG5zMjUwMV9yZWFkYihkdm8sIE5TMjUwMV9S
RUc5LCAmdmFsKTsKKyAgRFJNX0xPR19LTVMoIk5TMjUwMV9SRUc5OiAweCUwMnhcbiIsIHZhbCk7
CisgIG5zMjUwMV9yZWFkYihkdm8sIE5TMjUwMV9SRUdDLCAmdmFsKTsKKyAgRFJNX0xPR19LTVMo
Ik5TMjUwMV9SRUdDOiAweCUwMnhcbiIsIHZhbCk7Cit9CisKK3N0YXRpYyB2b2lkIG5zMjUwMV9k
ZXN0cm95KHN0cnVjdCBpbnRlbF9kdm9fZGV2aWNlICpkdm8pCit7CisgIHN0cnVjdCBuczI1MDFf
cHJpdiAqbnMgPSBkdm8tPmRldl9wcml2OworCisgIGlmIChucykgeworICAgIGtmcmVlKG5zKTsK
KyAgICBkdm8tPmRldl9wcml2ID0gTlVMTDsKKyAgfQorfQorCitzdHJ1Y3QgaW50ZWxfZHZvX2Rl
dl9vcHMgbnMyNTAxX29wcyA9IHsKKyAgLmluaXQgPSBuczI1MDFfaW5pdCwKKyAgLmRldGVjdCA9
IG5zMjUwMV9kZXRlY3QsCisgIC5tb2RlX3ZhbGlkID0gbnMyNTAxX21vZGVfdmFsaWQsCisgIC5t
b2RlX3NldCA9IG5zMjUwMV9tb2RlX3NldCwKKyAgLmRwbXMgPSBuczI1MDFfZHBtcywKKyAgLmR1
bXBfcmVncyA9IG5zMjUwMV9kdW1wX3JlZ3MsCisgIC5kZXN0cm95ID0gbnMyNTAxX2Rlc3Ryb3ks
Cit9OwoKZGlmZiAtcnVwIGxpbnV4LTMuNC4xLW9yaWcvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50
ZWxfZGlzcGxheS5jCmxpbnV4LTMuNC4xL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs
YXkuYwotLS0gbGludXgtMy40LjEtb3JpZy9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw
bGF5LmMgICAgMjAxMi0wNi0wMQowOToxODo0NC4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTMu
NC4xL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAyMDEyLTA2LTA4CjE2
OjU1OjIwLjAwMDAwMDAwMCArMDIwMApAQCAtMTE0Miw3ICsxMTQyLDcgQEAgc3RhdGljIHZvaWQg
YXNzZXJ0X3BjaF9wb3J0c19kaXNhYmxlZChzdAogICoKICAqIE5vdGUhICBUaGlzIGlzIGZvciBw
cmUtSUxLIG9ubHkuCiAgKi8KLXN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9wbGwoc3RydWN0IGRy
bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUKcGlwZSkKK3ZvaWQgaW50ZWxfZW5h
YmxlX3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBl
KQogewogICAgIGludCByZWc7CiAgICAgdTMyIHZhbDsKCmRpZmYgLXJ1cCBsaW51eC0zLjQuMS1v
cmlnL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jCmxpbnV4LTMuNC4xL2RyaXZlcnMv
Z3B1L2RybS9pOTE1L2ludGVsX2R2by5jCi0tLSBsaW51eC0zLjQuMS1vcmlnL2RyaXZlcnMvZ3B1
L2RybS9pOTE1L2ludGVsX2R2by5jICAgIDIwMTItMDYtMDEKMDk6MTg6NDQuMDAwMDAwMDAwICsw
MjAwCisrKyBsaW51eC0zLjQuMS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYyAgICAy
MDEyLTA2LTA4CjEyOjUwOjE2LjAwMDAwMDAwMCArMDIwMApAQCAtMzcsNiArMzcsNyBAQAogI2Rl
ZmluZSBTSUwxNjRfQUREUiAgICAweDM4CiAjZGVmaW5lIENIN3h4eF9BRERSICAgIDB4NzYKICNk
ZWZpbmUgVEZQNDEwX0FERFIgICAgMHgzOAorI2RlZmluZSBOUzI1MDFfQUREUiAgICAgMHgzOAoK
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZHZvX2RldmljZSBpbnRlbF9kdm9fZGV2aWNlc1td
ID0gewogICAgIHsKQEAgLTYxLDYgKzYyLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxf
ZHZvX2RldmljZSBpbnQKICAgICAgICAgLmRldl9vcHMgPSAmaXZjaF9vcHMsCiAgICAgfSwKICAg
ICB7CisgICAgICAgICAgICAudHlwZSA9IElOVEVMX0RWT19DSElQX1RNRFMsCisgICAgICAgICAg
ICAubmFtZSA9ICJuczI1MDEiLAorICAgICAgICAgICAgLmR2b19yZWcgPSBEVk9DLAorICAgICAg
ICAgICAgLnNsYXZlX2FkZHIgPSBOUzI1MDFfQUREUiwKKyAgICAgICAgICAgIC5kZXZfb3BzID0g
Jm5zMjUwMV9vcHMsCisgICAgfSwKKyAgICB7CiAgICAgICAgIC50eXBlID0gSU5URUxfRFZPX0NI
SVBfVE1EUywKICAgICAgICAgLm5hbWUgPSAidGZwNDEwIiwKICAgICAgICAgLmR2b19yZWcgPSBE
Vk9DLAoKZGlmZiAtcnVwIGxpbnV4LTMuNC4xLW9yaWcvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr
ZWZpbGUKbGludXgtMy40LjEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKLS0tIGxpbnV4
LTMuNC4xLW9yaWcvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgMjAxMi0wNi0wMQow
OToxODo0NC4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTMuNC4xL2RyaXZlcnMvZ3B1L2RybS9p
OTE1L01ha2VmaWxlICAgIDIwMTItMDYtMDggMTI6NTA6NTQuMDAwMDAwMDAwCiswMjAwCkBAIC0z
NCw3ICszNCw4IEBAIGk5MTUteSA6PSBpOTE1X2Rydi5vIGk5MTVfZG1hLm8gaTkxNV9pcnEKICAg
ICAgIGR2b19jaDcwMTcubyBcCiAgICAgICBkdm9faXZjaC5vIFwKICAgICAgIGR2b190ZnA0MTAu
byBcCi0gICAgICBkdm9fc2lsMTY0Lm8KKyAgICAgIGR2b19zaWwxNjQubyBcCisgICAgICBkdm9f
bnMyNTAxLm8KCiBpOTE1LSQoQ09ORklHX0NPTVBBVCkgICArPSBpOTE1X2lvYzMyLm8KCi0tIApD
b25maWd1cmUgYnVnbWFpbDogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy91c2VycHJlZnMu
Y2dpP3RhYj1lbWFpbAotLS0tLS0tIFlvdSBhcmUgcmVjZWl2aW5nIHRoaXMgbWFpbCBiZWNhdXNl
OiAtLS0tLS0tCllvdSBhcmUgdGhlIGFzc2lnbmVlIGZvciB0aGUgYnVnLgpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0
CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w
Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=