<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>148090</bug_id>
          
          <creation_ts>2006-09-18 10:07 0000</creation_ts>
          <short_desc>Realtek 8168/8111 Support</short_desc>
          <delta_ts>2007-05-09 20:28:13 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Release Media</product>
          <component>InstallCD</component>
          <version>2006.1</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>swo_on@libero.it</reporter>
          <assigned_to>release@gentoo.org</assigned_to>
          <cc>stammler.s@googlemail.com</cc>

      

      
          <long_desc isprivate="0">
            <who>swo_on@libero.it</who>
            <bug_when>2006-09-18 10:07:01 0000</bug_when>
            <thetext>The minimal installation cd doesnt support the Realtek 8168/8111 net card, so i couldnt use this cd to install gentoo</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dsd@gentoo.org</who>
            <bug_when>2006-09-18 10:29:23 0000</bug_when>
            <thetext>Do you now have a working Gentoo installation on this hardware which you could test some kernel patches on?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>stammler.s@googlemail.com</who>
            <bug_when>2006-09-20 20:00:44 0000</bug_when>
            <thetext>i had the same problem. i solved it with building the r1000 module after copying the sources to an usb stick and building the module from the livecd(with the gcc from a stage archiv). but there is also a patchset for 2.6.17 kernels so the built-in r8169 driver works for 8168 cards...(btw 2.6.18 should already have this support without the need to patch) nevertheless you have to copy the sources to an usb stick or something else, so you can build modules from the livecd environment.  of course, the sources must be of the same kernel version as the kernel the livecd runs! for further imformation see http://bugs.gentoo.org/show_bug.cgi?id=129216#c11
i recommend to patch your 2.6.17 kernel after setting up your gentoo or use 2.6.18. r1000 will become obsolete soon.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dsd@gentoo.org</who>
            <bug_when>2006-09-20 20:23:18 0000</bug_when>
            <thetext>Sebastian, do you now have a working Gentoo installation on this hardware which you could test some kernel patches on? Or even just plain 2.6.18 if you think that would work?

(I&apos;ve been looking to support this hardware for a fairly long time, but I have yet to find someone actually willing to test stuff. Please help!)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>stammler.s@googlemail.com</who>
            <bug_when>2006-09-24 19:40:35 0000</bug_when>
            <thetext>Hi Daniel,
Yes I&apos;ve got a running gentoo installation on my hardware. And I always love to help! Up to now I used the r1000 drivers from my ebuild mentioned above. Then I added the patches mentioned in the link above to suspend2-sources-2.6.17-r6 ( I had to edit the patches to fit it to the sources after the gentoo patches...). Unfortunately it didn&apos;t work! In this minutes I&apos;m configuring my new suspend2-2.6.18. I extracted the r8169.c patch from the 2.6.18-rc6-mm1 patch and I will see in a few minutes if this will work for my 8168 card.
Just say how I may help.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dsd@gentoo.org</who>
            <bug_when>2006-09-24 20:06:30 0000</bug_when>
            <thetext>OK. Please attach &quot;lspci -v&quot; output to start. Also, you mentioned that you think 2.6.18 works out-of-the-box - please confirm/deny this.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dsd@gentoo.org</who>
            <bug_when>2006-09-24 20:21:38 0000</bug_when>
            <thetext>Created an attachment (id=97993)
2.6.18 patch

I&apos;m fairly sure 2.6.18 doesn&apos;t support your hardware. Please try this patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>stammler.s@googlemail.com</who>
            <bug_when>2006-09-25 15:03:40 0000</bug_when>
            <thetext>Hi Daniel,
no, I said, I try it with the 2.6.18-rc6-mm1 patch applied on the r8169.c file from suspend2-sources-2.6.18. Unfortunately, I couldn&apos;t finish my 2.6.18 build process yet because of errors in the ebuild :( -&gt; http://bugs.gentoo.org/show_bug.cgi?id=148549
But I&apos;ll have finished in some minutes.

The patch you submitted does not work because it&apos;s the last patch in a patching chain...look at http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.17-rc6/r8169/ this is the same patch against 2.6.17 like yours against 2.6.18(isn&apos;t it?)(btw this was mentioned in the link in my first post.) your patch was number 00005 ;) nevertheless the patch from this link doesn&apos;t work! I can apply it, no problem(well i had to edit them so they fit to the gentoo patch set) in compiling and even in loading the module and run ifconfig, but I can&apos;t make network actions, like with the r1000 module.

And 2.6.18 doesn&apos;t support my 8168 card unpatched, a &quot;grep 8168 r8169.c&quot; shows that ;) with the 2.6.18-rc6-mm1 patch applied on the r8169.c file, i have 8168 in the pci table, grep shows something. When I can finally compile the patched 2.6.18 kernel(my sync is finished soon :) ), we will know more.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>stammler.s@googlemail.com</who>
            <bug_when>2006-09-25 15:07:50 0000</bug_when>
            <thetext>Created an attachment (id=98069)
lspci -v output - Asus A6T (amd64)

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>stammler.s@googlemail.com</who>
            <bug_when>2006-09-25 15:39:41 0000</bug_when>
            <thetext>Created an attachment (id=98076)
r8169-8168_2.6.18.patch - stolen from 2.6.18-rc6-mm1 patch

Wohoo! I just build my new 2.6.18 kernel with this patch stolen from http://www.kernel.org/diff/diffview.cgi?file=%2Fpub%2Flinux%2Fkernel%2Fpeople%2Fakpm%2Fpatches%2F2.6%2F2.6.18-rc6%2F2.6.18-rc6-mm1%2F2.6.18-rc6-mm1.bz2;z=1693
and neworking works great!
Daniel, do you want me to give the patches from http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.18-rc5/r8169/ a try?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dsd@gentoo.org</who>
            <bug_when>2006-09-25 15:49:29 0000</bug_when>
            <thetext>Actually no, I know that the older patches were broken. The patch I attached here was taken straight from 2.6.19 and fixed to apply against 2.6.18 by myself, so there isn&apos;t a clear reason why it doesn&apos;t work. I guess the next step is to test 2.6.18-git4 or newer.

Also, I&apos;m not prepared to apply the changes directly from -mm as it includes too many unrelated changes in the driver. We&apos;ll take the changes that are needed and ideally no more...</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>stammler.s@googlemail.com</who>
            <bug_when>2006-09-25 16:18:44 0000</bug_when>
            <thetext>Created an attachment (id=98078)
patch -p1 --dry-run --verbose Outputs

This are the Outputs, hope they help you. I applied both patches against clean gentoo/suspend2-2.6.18 sources.
Feel free to send other patches that I should test(e.g. the git4 patch you mentioned). Or, if you want, my r8169.c file so you can see the diffs between your r8169.c file and mine.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dsd@gentoo.org</who>
            <bug_when>2006-09-25 18:30:01 0000</bug_when>
            <thetext>Created an attachment (id=98087)
new patch

Oh, so you didn&apos;t even get the patch I posted to apply without rejects? What you wrote in comment #7 suggested otherwise...

I appear to have uploaded the wrong file. Here&apos;s one that applies cleanly to 2.6.18.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>stammler.s@googlemail.com</who>
            <bug_when>2006-09-26 04:46:00 0000</bug_when>
            <thetext>I can confirm that the patch you submitted works! r8169.c compiles, insmod works, and the module does his job! No errors in dmesg.
In #7 I wrongly assumed that your patch is from a chain...this should have implied that it doesn&apos;t patch without rejects ^^ sorry for the unclear words.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dsd@gentoo.org</who>
            <bug_when>2006-09-26 09:00:25 0000</bug_when>
            <thetext>Thanks for testing.

releng: This will be fixed as of gentoo-sources-2.6.18-r1</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dsd@gentoo.org</who>
            <bug_when>2006-10-15 16:38:07 0000</bug_when>
            <thetext>2.6.18-r1 is now in portage</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>wolf31o2@gentoo.org</who>
            <bug_when>2007-05-09 20:28:13 0000</bug_when>
            <thetext>We&apos;re using 2.6.19 as a base, so this is FIXED now that 2007.0 is out.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97993</attachid>
            <date>2006-09-24 20:21 0000</date>
            <desc>2.6.18 patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <data encoding="base64">RnJvbTogRnJhbmNvaXMgUm9taWV1IDxyb21pZXVAZnIuem9yZWlsLmNvbT4KRGF0ZTogV2VkLCAy
NiBKdWwgMjAwNiAyMToxNDoxMyArMDAwMCAoKzAyMDApClN1YmplY3Q6IHI4MTY5OiBzeW5jIHdp
dGggdmVuZG9yJ3MgZHJpdmVyClgtR2l0LVRhZzogdjIuNi4xOC1yYzMKWC1HaXQtVXJsOiBodHRw
Oi8vd3d3Lmtlcm5lbC5vcmcvZ2l0Lz9wPWxpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXgt
Mi42LmdpdDthPWNvbW1pdGRpZmY7aD1iY2YwYmY5MGNkOWU5MjQyYjY2ZTA1NjNiNmE4YzhkYjJl
NGMyNjJjCgpyODE2OTogc3luYyB3aXRoIHZlbmRvcidzIGRyaXZlcgoKLSBhZGQgc2V2ZXJhbCBQ
Q0kgSUQgZm9yIHRoZSBQQ0ktRSBhZGFwdGVycyA7Ci0gbmV3IGlkZW50aWZpY2F0aW9uIHN0cmlu
Z3MgOwotIHRoZSBSVExfR0lHQV9NQUNfVkVSXyBkZWZpbmVzIGhhdmUgYmVlbiByZW5hbWVkIHRv
IGNsb3NlbHkgbWF0Y2ggdGhlCiAgb3V0LW9mLXRyZWUgZHJpdmVyLiBJdCBtYWtlcyB0aGUgY29t
cGFyaXNvbiBsZXNzIGhhaXJ5IDsKLSB2YXJpb3VzIG1hZ2ljIDsKLSB0aGUgUENJIHJlZ2lvbiBm
b3IgdGhlIGRldmljZSB3aXRoIFBDSSBJRCAweDgxMzYgaXMgZ3Vlc3NlZC4KICBFeHBsYW5hdGlv
bjogdGhlIGluLWtlcm5lbCBMaW51eCBkcml2ZXIgaXMgd3JpdHRlbiB0byBhbGxvdyBNTSByZWdp
c3RlcgogIGFjY2Vzc2VzIGFuZCBhdm9pZCB0aGUgSU8gdGF4LiBUaGUgcmVsZXZhbnQgQkFSIHJl
Z2lzdGVyIHdhcyBmb3VuZCBhdAogIGJhc2UgYWRkcmVzcyAxIGZvciB0aGUgcGxhaW4tb2xkIFBD
SSA4MTY5LiBVc2VyIHJlcG9ydGVkIGxzcGNpIHNob3cgdGhhdAogIGl0IGlzIGZvdW5kIGF0IGJh
c2UgYWRkcmVzcyAyIGZvciB0aGUgbmV3IEdpZ2FiaXQgUENJLUUgODE2ezgvOX0uCiAgVHlwaWNh
bGx5OgogIDAxOjAwLjAgRXRoZXJuZXQgY29udHJvbGxlcjogUmVhbHRlayBTZW1pY29uZHVjdG9y
IENvLiwgTHRkLjogVW5rbm93biBkZXZpY2UgODE2OCAocmV2IDAxKQogICAgICAgICAgU3Vic3lz
dGVtOiBVbmtub3duIGRldmljZSAxNjMxOmUwMTUKICAgICAgICAgIENvbnRyb2w6IEkvTysgTWVt
KyBCdXNNYXN0ZXIrIFNwZWNDeWNsZS0gTWVtV0lOVi0gVkdBU25vb3AtIFBhckVyci0gU3RlcHBp
bmctIFNFUlItIEZhc3RCMkItCiAgICAgICAgICBTdGF0dXM6IENhcCsgNjZNaHotIFVERi0gRmFz
dEIyQi0gUGFyRXJyLSBERVZTRUw9ZmFzdCA+VEFib3J0LSA8VEFib3J0LSA8TUFib3J0LSA+U0VS
Ui0gPFBFUlItCiAgICAgICAgICBMYXRlbmN5OiAwLCBjYWNoZSBsaW5lIHNpemUgMjAKICAgICAg
ICAgIEludGVycnVwdDogcGluIEEgcm91dGVkIHRvIElSUSAxNgogICAgICAgICAgUmVnaW9uIDA6
IEkvTyBwb3J0cyBhdCBiODAwIFtzaXplPTI1Nl0KICAgICAgICAgIFJlZ2lvbiAyOiBNZW1vcnkg
YXQgZmY3ZmYwMDAgKDY0LWJpdCwgbm9uLXByZWZldGNoYWJsZSkgW3NpemU9NEtdCiAgICAgICAg
ICBeXl5eXl5eXgogIFNvIGZhciBJIGhhdmUgbm90IHJlY2VpdmVkIGFueSBsc3BjaSByZXBvcnQg
Zm9yIHRoZSAweDgxMzYgYW5kCiAgUmVhbHRlaydzIGRyaXZlciBkbyBub3QgaGVscDogYmUgaXQg
dW5kZXIgQlNEIG9yIExpbnV4LCB0aGVpciByMTAwMCBkcml2ZXIKICBpbmNsdWRlIGEgVVNFX0lP
X1NQQUNFICNkZWZpbmUgYnV0IHRoZSBiYXIgYWRkcmVzcyBpcyBhbHdheXMgaGFyZGNvZGVkCiAg
dG8gMSBpbiB0aGUgTU0gY2FzZS4gOm8vCi0gdGhlIDgxNjggaGFzIGJlZW4gcmVwb3J0ZWQgdG8g
cmVxdWlyZSBhbiBleHRyYSBhbGlnbm1lbnQgZm9yIGl0cyByZWNlaXZlCiAgYnVmZmVycy4gVGhl
IHN0YXR1cyBvZiB0aGUgODE2NyBhbmQgODEzNiBpcyBub3Qga25vd24gaW4gdGhpcyByZWdhcmQu
CgpTaWduZWQtb2ZmLWJ5OiBGcmFuY29pcyBSb21pZXUgPHJvbWlldUBmci56b3JlaWwuY29tPgot
LS0KCi0tLSBhL2RyaXZlcnMvbmV0L3I4MTY5LmMKKysrIGIvZHJpdmVycy9uZXQvcjgxNjkuYwpA
QCAtMTUwLDExICsxNTAsMTYgQEAgc3RhdGljIGNvbnN0IGludCBtdWx0aWNhc3RfZmlsdGVyX2xp
bWl0IAogI2RlZmluZSBSVExfUjMyKHJlZykJCSgodW5zaWduZWQgbG9uZykgcmVhZGwgKGlvYWRk
ciArIChyZWcpKSkKIAogZW51bSBtYWNfdmVyc2lvbiB7Ci0JUlRMX0dJR0FfTUFDX1ZFUl9CID0g
MHgwMCwKLQkvKiBSVExfR0lHQV9NQUNfVkVSX0MgPSAweDAzLCAqLwotCVJUTF9HSUdBX01BQ19W
RVJfRCA9IDB4MDEsCi0JUlRMX0dJR0FfTUFDX1ZFUl9FID0gMHgwMiwKLQlSVExfR0lHQV9NQUNf
VkVSX1ggPSAweDA0CS8qIEdyZWF0ZXIgdGhhbiBSVExfR0lHQV9NQUNfVkVSX0UgKi8KKwlSVExf
R0lHQV9NQUNfVkVSXzAxID0gMHgwMCwKKwlSVExfR0lHQV9NQUNfVkVSXzAyID0gMHgwMSwKKwlS
VExfR0lHQV9NQUNfVkVSXzAzID0gMHgwMiwKKwlSVExfR0lHQV9NQUNfVkVSXzA0ID0gMHgwMywK
KwlSVExfR0lHQV9NQUNfVkVSXzA1ID0gMHgwNCwKKwlSVExfR0lHQV9NQUNfVkVSXzExID0gMHgw
YiwKKwlSVExfR0lHQV9NQUNfVkVSXzEyID0gMHgwYywKKwlSVExfR0lHQV9NQUNfVkVSXzEzID0g
MHgwZCwKKwlSVExfR0lHQV9NQUNfVkVSXzE0ID0gMHgwZSwKKwlSVExfR0lHQV9NQUNfVkVSXzE1
ID0gMHgwZgogfTsKIAogZW51bSBwaHlfdmVyc2lvbiB7CkBAIC0xNjYsNyArMTcxLDYgQEAgZW51
bSBwaHlfdmVyc2lvbiB7CiAJUlRMX0dJR0FfUEhZX1ZFUl9IID0gMHgwOCwgLyogUEhZIFJlZyAw
eDAzIGJpdDAtMyA9PSAweDAwMDMgKi8KIH07CiAKLQogI2RlZmluZSBfUihOQU1FLE1BQyxNQVNL
KSBcCiAJeyAubmFtZSA9IE5BTUUsIC5tYWNfdmVyc2lvbiA9IE1BQywgLlJ4Q29uZmlnTWFzayA9
IE1BU0sgfQogCkBAIC0xNzUsMTkgKzE3OSw0NCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKIAl1
OCBtYWNfdmVyc2lvbjsKIAl1MzIgUnhDb25maWdNYXNrOwkvKiBDbGVhcnMgdGhlIGJpdHMgc3Vw
cG9ydGVkIGJ5IHRoaXMgY2hpcCAqLwogfSBydGxfY2hpcF9pbmZvW10gPSB7Ci0JX1IoIlJUTDgx
NjkiLAkJUlRMX0dJR0FfTUFDX1ZFUl9CLCAweGZmN2UxODgwKSwKLQlfUigiUlRMODE2OXMvODEx
MHMiLAlSVExfR0lHQV9NQUNfVkVSX0QsIDB4ZmY3ZTE4ODApLAotCV9SKCJSVEw4MTY5cy84MTEw
cyIsCVJUTF9HSUdBX01BQ19WRVJfRSwgMHhmZjdlMTg4MCksCi0JX1IoIlJUTDgxNjlzLzgxMTBz
IiwJUlRMX0dJR0FfTUFDX1ZFUl9YLCAweGZmN2UxODgwKSwKKwlfUigiUlRMODE2OSIsCQlSVExf
R0lHQV9NQUNfVkVSXzAxLCAweGZmN2UxODgwKSwKKwlfUigiUlRMODE2OXMvODExMHMiLAlSVExf
R0lHQV9NQUNfVkVSXzAyLCAweGZmN2UxODgwKSwKKwlfUigiUlRMODE2OXMvODExMHMiLAlSVExf
R0lHQV9NQUNfVkVSXzAzLCAweGZmN2UxODgwKSwKKwlfUigiUlRMODE2OXNiLzgxMTBzYiIsCVJU
TF9HSUdBX01BQ19WRVJfMDQsIDB4ZmY3ZTE4ODApLAorCV9SKCJSVEw4MTY5c2MvODExMHNjIiwJ
UlRMX0dJR0FfTUFDX1ZFUl8wNSwgMHhmZjdlMTg4MCksCisJX1IoIlJUTDgxNjhiLzgxMTFiIiwJ
UlRMX0dJR0FfTUFDX1ZFUl8xMSwgMHhmZjdlMTg4MCksIC8vIFBDSS1FCisJX1IoIlJUTDgxNjhi
LzgxMTFiIiwJUlRMX0dJR0FfTUFDX1ZFUl8xMiwgMHhmZjdlMTg4MCksIC8vIFBDSS1FCisJX1Io
IlJUTDgxMDFlIiwJCVJUTF9HSUdBX01BQ19WRVJfMTMsIDB4ZmY3ZTE4ODApLCAvLyBQQ0ktRSA4
MTM5CisJX1IoIlJUTDgxMDBlIiwJCVJUTF9HSUdBX01BQ19WRVJfMTQsIDB4ZmY3ZTE4ODApLCAv
LyBQQ0ktRSA4MTM5CisJX1IoIlJUTDgxMDBlIiwJCVJUTF9HSUdBX01BQ19WRVJfMTUsIDB4ZmY3
ZTE4ODApICAvLyBQQ0ktRSA4MTM5CiB9OwogI3VuZGVmIF9SCiAKK2VudW0gY2ZnX3ZlcnNpb24g
eworCVJUTF9DRkdfMCA9IDB4MDAsCisJUlRMX0NGR18xLAorCVJUTF9DRkdfMgorfTsKKworc3Rh
dGljIGNvbnN0IHN0cnVjdCB7CisJdW5zaWduZWQgaW50IHJlZ2lvbjsKKwl1bnNpZ25lZCBpbnQg
YWxpZ247Cit9IHJ0bF9jZmdfaW5mb1tdID0geworCVtSVExfQ0ZHXzBdID0geyAxLCBORVRfSVBf
QUxJR04gfSwKKwlbUlRMX0NGR18xXSA9IHsgMiwgTkVUX0lQX0FMSUdOIH0sCisJW1JUTF9DRkdf
Ml0gPSB7IDIsIDggfQorfTsKKwogc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lkIHJ0bDgxNjlf
cGNpX3RibFtdID0gewotCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1JFQUxURUssCTB4ODE2
OSksIH0sCi0JeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUkVBTFRFSywJMHg4MTI5KSwgfSwK
LQl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9ETElOSywJMHg0MzAwKSwgfSwKLQl7IFBDSV9E
RVZJQ0UoMHgxNmVjLAkJCTB4MDExNiksIH0sCi0JeyBQQ0lfVkVORE9SX0lEX0xJTktTWVMsCQkw
eDEwMzIsIFBDSV9BTllfSUQsIDB4MDAyNCwgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9J
RF9SRUFMVEVLLAkweDgxMjkpLCAwLCAwLCBSVExfQ0ZHXzAgfSwKKwl7IFBDSV9ERVZJQ0UoUENJ
X1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxMzYpLCAwLCAwLCBSVExfQ0ZHXzEgfSwKKwl7IFBDSV9E
RVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxNjcpLCAwLCAwLCBSVExfQ0ZHXzEgfSwK
Kwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxNjgpLCAwLCAwLCBSVExf
Q0ZHXzIgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxNjkpLCAw
LCAwLCBSVExfQ0ZHXzAgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9ETElOSywJMHg0
MzAwKSwgMCwgMCwgUlRMX0NGR18wIH0sCisJeyBQQ0lfREVWSUNFKDB4MTZlYywJCQkweDAxMTYp
LCAwLCAwLCBSVExfQ0ZHXzAgfSwKKwl7IFBDSV9WRU5ET1JfSURfTElOS1NZUywJCTB4MTAzMiwK
KwkJUENJX0FOWV9JRCwgMHgwMDI0LCAwLCAwLCBSVExfQ0ZHXzAgfSwKIAl7MCx9LAogfTsKIApA
QCAtMzQ3LDYgKzM3Niw3IEBAIGVudW0gUlRMODE2OV9yZWdpc3Rlcl9jb250ZW50IHsKIAlQSFlf
Q2FwXzEwMF9GdWxsID0gMHgwMTAwLAogCiAJLyogUEhZXzEwMDBfQ1RSTF9SRUcgPSA5ICovCisJ
UEhZX0NhcF8xMDAwX0hhbGYgPSAweDAxMDAsCiAJUEhZX0NhcF8xMDAwX0Z1bGwgPSAweDAyMDAs
CiAKIAlQSFlfQ2FwX051bGwgPSAweDAsCkBAIC00MzQsNiArNDY0LDcgQEAgc3RydWN0IHJ0bDgx
NjlfcHJpdmF0ZSB7CiAJZG1hX2FkZHJfdCBSeFBoeUFkZHI7CiAJc3RydWN0IHNrX2J1ZmYgKlJ4
X3NrYnVmZltOVU1fUlhfREVTQ107CS8qIFJ4IGRhdGEgYnVmZmVycyAqLwogCXN0cnVjdCByaW5n
X2luZm8gdHhfc2tiW05VTV9UWF9ERVNDXTsJLyogVHggZGF0YSBidWZmZXJzICovCisJdW5zaWdu
ZWQgYWxpZ247CiAJdW5zaWduZWQgcnhfYnVmX3N6OwogCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVy
OwogCXUxNiBjcF9jbWQ7CkBAIC03NTAsMjUgKzc4MSw0MyBAQCBzdGF0aWMgaW50IHJ0bDgxNjlf
c2V0X3NwZWVkX3htaWkoc3RydWN0CiAJYXV0b19uZWdvICY9IH4oUEhZX0NhcF8xMF9IYWxmIHwg
UEhZX0NhcF8xMF9GdWxsIHwKIAkJICAgICAgIFBIWV9DYXBfMTAwX0hhbGYgfCBQSFlfQ2FwXzEw
MF9GdWxsKTsKIAlnaWdhX2N0cmwgPSBtZGlvX3JlYWQoaW9hZGRyLCBQSFlfMTAwMF9DVFJMX1JF
Ryk7Ci0JZ2lnYV9jdHJsICY9IH4oUEhZX0NhcF8xMDAwX0Z1bGwgfCBQSFlfQ2FwX051bGwpOwor
CWdpZ2FfY3RybCAmPSB+KFBIWV9DYXBfMTAwMF9GdWxsIHwgUEhZX0NhcF8xMDAwX0hhbGYgfCBQ
SFlfQ2FwX051bGwpOwogCiAJaWYgKGF1dG9uZWcgPT0gQVVUT05FR19FTkFCTEUpIHsKIAkJYXV0
b19uZWdvIHw9IChQSFlfQ2FwXzEwX0hhbGYgfCBQSFlfQ2FwXzEwX0Z1bGwgfAogCQkJICAgICAg
UEhZX0NhcF8xMDBfSGFsZiB8IFBIWV9DYXBfMTAwX0Z1bGwpOwotCQlnaWdhX2N0cmwgfD0gUEhZ
X0NhcF8xMDAwX0Z1bGw7CisJCWdpZ2FfY3RybCB8PSBQSFlfQ2FwXzEwMDBfRnVsbCB8IFBIWV9D
YXBfMTAwMF9IYWxmOwogCX0gZWxzZSB7CiAJCWlmIChzcGVlZCA9PSBTUEVFRF8xMCkKIAkJCWF1
dG9fbmVnbyB8PSBQSFlfQ2FwXzEwX0hhbGYgfCBQSFlfQ2FwXzEwX0Z1bGw7CiAJCWVsc2UgaWYg
KHNwZWVkID09IFNQRUVEXzEwMCkKIAkJCWF1dG9fbmVnbyB8PSBQSFlfQ2FwXzEwMF9IYWxmIHwg
UEhZX0NhcF8xMDBfRnVsbDsKIAkJZWxzZSBpZiAoc3BlZWQgPT0gU1BFRURfMTAwMCkKLQkJCWdp
Z2FfY3RybCB8PSBQSFlfQ2FwXzEwMDBfRnVsbDsKKwkJCWdpZ2FfY3RybCB8PSBQSFlfQ2FwXzEw
MDBfRnVsbCB8IFBIWV9DYXBfMTAwMF9IYWxmOwogCiAJCWlmIChkdXBsZXggPT0gRFVQTEVYX0hB
TEYpCiAJCQlhdXRvX25lZ28gJj0gfihQSFlfQ2FwXzEwX0Z1bGwgfCBQSFlfQ2FwXzEwMF9GdWxs
KTsKIAogCQlpZiAoZHVwbGV4ID09IERVUExFWF9GVUxMKQogCQkJYXV0b19uZWdvICY9IH4oUEhZ
X0NhcF8xMF9IYWxmIHwgUEhZX0NhcF8xMDBfSGFsZik7CisKKwkJLyogVGhpcyB0d2VhayBjb21l
cyBzdHJhaWdodCBmcm9tIFJlYWx0ZWsncyBkcml2ZXIuICovCisJCWlmICgoc3BlZWQgPT0gU1BF
RURfMTAwKSAmJiAoZHVwbGV4ID09IERVUExFWF9IQUxGKSAmJgorCQkgICAgKHRwLT5tYWNfdmVy
c2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzEzKSkgeworCQkJYXV0b19uZWdvID0gUEhZX0NhcF8x
MDBfSGFsZiB8IDB4MDE7CisJCX0KKwl9CisKKwkvKiBUaGUgODEwMGUvODEwMWUgZG8gRmFzdCBF
dGhlcm5ldCBvbmx5LiAqLworCWlmICgodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19W
RVJfMTMpIHx8CisJICAgICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZFUl8xNCkg
fHwKKwkgICAgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzE1KSkgeworCQlp
ZiAoKGdpZ2FfY3RybCAmIChQSFlfQ2FwXzEwMDBfRnVsbCB8IFBIWV9DYXBfMTAwMF9IYWxmKSkg
JiYKKwkJICAgIG5ldGlmX21zZ19saW5rKHRwKSkgeworCQkJcHJpbnRrKEtFUk5fSU5GTyAiJXM6
IFBIWSBkb2VzIG5vdCBzdXBwb3J0IDEwMDBNYnBzLlxuIiwKKwkJCSAgICAgICBkZXYtPm5hbWUp
OworCQl9CisJCWdpZ2FfY3RybCAmPSB+KFBIWV9DYXBfMTAwMF9GdWxsIHwgUEhZX0NhcF8xMDAw
X0hhbGYpOwogCX0KIAogCWF1dG9fbmVnbyB8PSBBRFZFUlRJU0VfUEFVU0VfQ0FQIHwgQURWRVJU
SVNFX1BBVVNFX0FTWU07CkBAIC0xMTQ4LDEwICsxMTk3LDE2IEBAIHN0YXRpYyB2b2lkIHJ0bDgx
NjlfZ2V0X21hY192ZXJzaW9uKHN0cnUKIAkJdTMyIG1hc2s7CiAJCWludCBtYWNfdmVyc2lvbjsK
IAl9IG1hY19pbmZvW10gPSB7Ci0JCXsgMHgxIDw8IDI4LAlSVExfR0lHQV9NQUNfVkVSX1ggfSwK
LQkJeyAweDEgPDwgMjYsCVJUTF9HSUdBX01BQ19WRVJfRSB9LAotCQl7IDB4MSA8PCAyMywJUlRM
X0dJR0FfTUFDX1ZFUl9EIH0sIAotCQl7IDB4MDAwMDAwMDAsCVJUTF9HSUdBX01BQ19WRVJfQiB9
IC8qIENhdGNoLWFsbCAqLworCQl7IDB4Mzg4MDAwMDAsCVJUTF9HSUdBX01BQ19WRVJfMTUgfSwK
KwkJeyAweDM4MDAwMDAwLAlSVExfR0lHQV9NQUNfVkVSXzEyIH0sCisJCXsgMHgzNDAwMDAwMCwJ
UlRMX0dJR0FfTUFDX1ZFUl8xMyB9LAorCQl7IDB4MzA4MDAwMDAsCVJUTF9HSUdBX01BQ19WRVJf
MTQgfSwKKwkJeyAweDMwMDAwMDAwLCAgIFJUTF9HSUdBX01BQ19WRVJfMTEgfSwKKwkJeyAweDE4
MDAwMDAwLAlSVExfR0lHQV9NQUNfVkVSXzA1IH0sCisJCXsgMHgxMDAwMDAwMCwJUlRMX0dJR0Ff
TUFDX1ZFUl8wNCB9LAorCQl7IDB4MDQwMDAwMDAsCVJUTF9HSUdBX01BQ19WRVJfMDMgfSwKKwkJ
eyAweDAwODAwMDAwLAlSVExfR0lHQV9NQUNfVkVSXzAyIH0sCisJCXsgMHgwMDAwMDAwMCwJUlRM
X0dJR0FfTUFDX1ZFUl8wMSB9CS8qIENhdGNoLWFsbCAqLwogCX0sICpwID0gbWFjX2luZm87CiAJ
dTMyIHJlZzsKIApAQCAtMTE2MywyNCArMTIxOCw3IEBAIHN0YXRpYyB2b2lkIHJ0bDgxNjlfZ2V0
X21hY192ZXJzaW9uKHN0cnUKIAogc3RhdGljIHZvaWQgcnRsODE2OV9wcmludF9tYWNfdmVyc2lv
bihzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCkKIHsKLQlzdHJ1Y3QgewotCQlpbnQgdmVyc2lv
bjsKLQkJY2hhciAqbXNnOwotCX0gbWFjX3ByaW50W10gPSB7Ci0JCXsgUlRMX0dJR0FfTUFDX1ZF
Ul9FLCAiUlRMX0dJR0FfTUFDX1ZFUl9FIiB9LAotCQl7IFJUTF9HSUdBX01BQ19WRVJfRCwgIlJU
TF9HSUdBX01BQ19WRVJfRCIgfSwKLQkJeyBSVExfR0lHQV9NQUNfVkVSX0IsICJSVExfR0lHQV9N
QUNfVkVSX0IiIH0sCi0JCXsgMCwgTlVMTCB9Ci0JfSwgKnA7Ci0KLQlmb3IgKHAgPSBtYWNfcHJp
bnQ7IHAtPm1zZzsgcCsrKSB7Ci0JCWlmICh0cC0+bWFjX3ZlcnNpb24gPT0gcC0+dmVyc2lvbikg
ewotCQkJZHByaW50aygibWFjX3ZlcnNpb24gPT0gJXMgKCUwNGQpXG4iLCBwLT5tc2csCi0JCQkJ
ICBwLT52ZXJzaW9uKTsKLQkJCXJldHVybjsKLQkJfQotCX0KLQlkcHJpbnRrKCJtYWNfdmVyc2lv
biA9PSBVbmtub3duXG4iKTsKKwlkcHJpbnRrKCJtYWNfdmVyc2lvbiA9IDB4JTAyeFxuIiwgdHAt
Pm1hY192ZXJzaW9uKTsKIH0KIAogc3RhdGljIHZvaWQgcnRsODE2OV9nZXRfcGh5X3ZlcnNpb24o
c3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHAsIHZvaWQgX19pb21lbSAqaW9hZGRyKQpAQCAtMTI2
NSw3ICsxMzAzLDcgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9od19waHlfY29uZmlnKHN0cnVjdAog
CXJ0bDgxNjlfcHJpbnRfbWFjX3ZlcnNpb24odHApOwogCXJ0bDgxNjlfcHJpbnRfcGh5X3ZlcnNp
b24odHApOwogCi0JaWYgKHRwLT5tYWNfdmVyc2lvbiA8PSBSVExfR0lHQV9NQUNfVkVSX0IpCisJ
aWYgKHRwLT5tYWNfdmVyc2lvbiA8PSBSVExfR0lHQV9NQUNfVkVSXzAxKQogCQlyZXR1cm47CiAJ
aWYgKHRwLT5waHlfdmVyc2lvbiA+PSBSVExfR0lHQV9QSFlfVkVSX0gpCiAJCXJldHVybjsKQEAg
LTEyNzUsNyArMTMxMyw3IEBAIHN0YXRpYyB2b2lkIHJ0bDgxNjlfaHdfcGh5X2NvbmZpZyhzdHJ1
Y3QKIAogCS8qIFNoYXphbSAhICovCiAKLQlpZiAodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdB
X01BQ19WRVJfWCkgeworCWlmICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZFUl8w
NCkgewogCQltZGlvX3dyaXRlKGlvYWRkciwgMzEsIDB4MDAwMSk7CiAJCW1kaW9fd3JpdGUoaW9h
ZGRyLCAgOSwgMHgyNzNhKTsKIAkJbWRpb193cml0ZShpb2FkZHIsIDE0LCAweDdiZmIpOwpAQCAt
MTMxNCw3ICsxMzUyLDcgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9waHlfdGltZXIodW5zaWduZWQg
bAogCXZvaWQgX19pb21lbSAqaW9hZGRyID0gdHAtPm1taW9fYWRkcjsKIAl1bnNpZ25lZCBsb25n
IHRpbWVvdXQgPSBSVEw4MTY5X1BIWV9USU1FT1VUOwogCi0JYXNzZXJ0KHRwLT5tYWNfdmVyc2lv
biA+IFJUTF9HSUdBX01BQ19WRVJfQik7CisJYXNzZXJ0KHRwLT5tYWNfdmVyc2lvbiA+IFJUTF9H
SUdBX01BQ19WRVJfMDEpOwogCWFzc2VydCh0cC0+cGh5X3ZlcnNpb24gPCBSVExfR0lHQV9QSFlf
VkVSX0gpOwogCiAJaWYgKCEodHAtPnBoeV8xMDAwX2N0cmxfcmVnICYgUEhZX0NhcF8xMDAwX0Z1
bGwpKQpAQCAtMTM1MCw3ICsxMzg4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHJ0bDgxNjlfZGVs
ZXRlX3RpbWVyKAogCXN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwID0gbmV0ZGV2X3ByaXYoZGV2
KTsKIAlzdHJ1Y3QgdGltZXJfbGlzdCAqdGltZXIgPSAmdHAtPnRpbWVyOwogCi0JaWYgKCh0cC0+
bWFjX3ZlcnNpb24gPD0gUlRMX0dJR0FfTUFDX1ZFUl9CKSB8fAorCWlmICgodHAtPm1hY192ZXJz
aW9uIDw9IFJUTF9HSUdBX01BQ19WRVJfMDEpIHx8CiAJICAgICh0cC0+cGh5X3ZlcnNpb24gPj0g
UlRMX0dJR0FfUEhZX1ZFUl9IKSkKIAkJcmV0dXJuOwogCkBAIC0xMzYyLDcgKzE0MDAsNyBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgcnRsODE2OV9yZXF1ZXN0X3RpbWVyCiAJc3RydWN0IHJ0bDgxNjlf
cHJpdmF0ZSAqdHAgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCB0aW1lcl9saXN0ICp0aW1l
ciA9ICZ0cC0+dGltZXI7CiAKLQlpZiAoKHRwLT5tYWNfdmVyc2lvbiA8PSBSVExfR0lHQV9NQUNf
VkVSX0IpIHx8CisJaWYgKCh0cC0+bWFjX3ZlcnNpb24gPD0gUlRMX0dJR0FfTUFDX1ZFUl8wMSkg
fHwKIAkgICAgKHRwLT5waHlfdmVyc2lvbiA+PSBSVExfR0lHQV9QSFlfVkVSX0gpKQogCQlyZXR1
cm47CiAKQEAgLTE0NDgsMTIgKzE0ODYsMTIgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9pbml0X3Bo
eShzdHJ1Y3QgbmV0XwogCWRwcmludGsoIlNldCBNQUMgUmVnIEMrQ1IgT2Zmc2V0IDB4ODJoID0g
MHgwMWhcbiIpOwogCVJUTF9XOCgweDgyLCAweDAxKTsKIAotCWlmICh0cC0+bWFjX3ZlcnNpb24g
PCBSVExfR0lHQV9NQUNfVkVSX0UpIHsKKwlpZiAodHAtPm1hY192ZXJzaW9uIDwgUlRMX0dJR0Ff
TUFDX1ZFUl8wMykgewogCQlkcHJpbnRrKCJTZXQgUENJIExhdGVuY3k9MHg0MFxuIik7CiAJCXBj
aV93cml0ZV9jb25maWdfYnl0ZSh0cC0+cGNpX2RldiwgUENJX0xBVEVOQ1lfVElNRVIsIDB4NDAp
OwogCX0KIAotCWlmICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZFUl9EKSB7CisJ
aWYgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzAyKSB7CiAJCWRwcmludGso
IlNldCBNQUMgUmVnIEMrQ1IgT2Zmc2V0IDB4ODJoID0gMHgwMWhcbiIpOwogCQlSVExfVzgoMHg4
MiwgMHgwMSk7CiAJCWRwcmludGsoIlNldCBQSFkgUmVnIDB4MGJoID0gMHgwMGhcbiIpOwpAQCAt
MTQ3MSw2ICsxNTA5LDcgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9pbml0X3BoeShzdHJ1Y3QgbmV0
Xwogc3RhdGljIGludCBfX2RldmluaXQKIHJ0bDgxNjlfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYg
KnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiB7CisJY29uc3QgdW5zaWdu
ZWQgaW50IHJlZ2lvbiA9IHJ0bF9jZmdfaW5mb1tlbnQtPmRyaXZlcl9kYXRhXS5yZWdpb247CiAJ
c3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHA7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldjsKIAl2
b2lkIF9faW9tZW0gKmlvYWRkcjsKQEAgLTE1MjIsMTcgKzE1NjEsMTggQEAgcnRsODE2OV9pbml0
X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgYwogCX0KIAogCS8qIG1ha2Ugc3VyZSBQQ0kgYmFz
ZSBhZGRyIDEgaXMgTU1JTyAqLwotCWlmICghKHBjaV9yZXNvdXJjZV9mbGFncyhwZGV2LCAxKSAm
IElPUkVTT1VSQ0VfTUVNKSkgeworCWlmICghKHBjaV9yZXNvdXJjZV9mbGFncyhwZGV2LCByZWdp
b24pICYgSU9SRVNPVVJDRV9NRU0pKSB7CiAJCWlmIChuZXRpZl9tc2dfcHJvYmUodHApKSB7CiAJ
CQlkZXZfZXJyKCZwZGV2LT5kZXYsCi0JCQkJInJlZ2lvbiAjMSBub3QgYW4gTU1JTyByZXNvdXJj
ZSwgYWJvcnRpbmdcbiIpOworCQkJCSJyZWdpb24gIyVkIG5vdCBhbiBNTUlPIHJlc291cmNlLCBh
Ym9ydGluZ1xuIiwKKwkJCQlyZWdpb24pOwogCQl9CiAJCXJjID0gLUVOT0RFVjsKIAkJZ290byBl
cnJfb3V0X213aV8zOwogCX0KIAogCS8qIGNoZWNrIGZvciB3ZWlyZC9icm9rZW4gUENJIHJlZ2lv
biByZXBvcnRpbmcgKi8KLQlpZiAocGNpX3Jlc291cmNlX2xlbihwZGV2LCAxKSA8IFI4MTY5X1JF
R1NfU0laRSkgeworCWlmIChwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIHJlZ2lvbikgPCBSODE2OV9S
RUdTX1NJWkUpIHsKIAkJaWYgKG5ldGlmX21zZ19wcm9iZSh0cCkpIHsKIAkJCWRldl9lcnIoJnBk
ZXYtPmRldiwKIAkJCQkiSW52YWxpZCBQQ0kgcmVnaW9uIHNpemUocyksIGFib3J0aW5nXG4iKTsK
QEAgLTE1NjgsNyArMTYwOCw3IEBAIHJ0bDgxNjlfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBk
ZXYsIGMKIAlwY2lfc2V0X21hc3RlcihwZGV2KTsKIAogCS8qIGlvcmVtYXAgTU1JTyByZWdpb24g
Ki8KLQlpb2FkZHIgPSBpb3JlbWFwKHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAxKSwgUjgxNjlf
UkVHU19TSVpFKTsKKwlpb2FkZHIgPSBpb3JlbWFwKHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCBy
ZWdpb24pLCBSODE2OV9SRUdTX1NJWkUpOwogCWlmICghaW9hZGRyKSB7CiAJCWlmIChuZXRpZl9t
c2dfcHJvYmUodHApKQogCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2Fubm90IHJlbWFwIE1NSU8s
IGFib3J0aW5nXG4iKTsKQEAgLTE2NjgsNiArMTcwOCw3IEBAIHJ0bDgxNjlfaW5pdF9vbmUoc3Ry
dWN0IHBjaV9kZXYgKnBkZXYsIGMKIAl0cC0+aW50cl9tYXNrID0gMHhmZmZmOwogCXRwLT5wY2lf
ZGV2ID0gcGRldjsKIAl0cC0+bW1pb19hZGRyID0gaW9hZGRyOworCXRwLT5hbGlnbiA9IHJ0bF9j
ZmdfaW5mb1tlbnQtPmRyaXZlcl9kYXRhXS5hbGlnbjsKIAogCXNwaW5fbG9ja19pbml0KCZ0cC0+
bG9jayk7CiAKQEAgLTE2NzUsMTEgKzE3MTYsNiBAQCBydGw4MTY5X2luaXRfb25lKHN0cnVjdCBw
Y2lfZGV2ICpwZGV2LCBjCiAJaWYgKHJjIDwgMCkKIAkJZ290byBlcnJfb3V0X3VubWFwXzU7CiAK
LQlpZiAobmV0aWZfbXNnX3Byb2JlKHRwKSkgewotCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IElk
ZW50aWZpZWQgY2hpcCB0eXBlIGlzICclcycuXG4iLAotCQkgICAgICAgZGV2LT5uYW1lLCBydGxf
Y2hpcF9pbmZvW3RwLT5jaGlwc2V0XS5uYW1lKTsKLQl9Ci0KIAlwY2lfc2V0X2RydmRhdGEocGRl
diwgZGV2KTsKIAogCWlmIChuZXRpZl9tc2dfcHJvYmUodHApKSB7CkBAIC0xNjg3LDcgKzE3MjMs
NyBAQCBydGw4MTY5X2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjCiAJCSAgICAgICAi
JTIuMng6JTIuMng6JTIuMng6JTIuMng6JTIuMng6JTIuMngsICIKIAkJICAgICAgICJJUlEgJWRc
biIsCiAJCSAgICAgICBkZXYtPm5hbWUsCi0JCSAgICAgICBydGxfY2hpcF9pbmZvW2VudC0+ZHJp
dmVyX2RhdGFdLm5hbWUsCisJCSAgICAgICBydGxfY2hpcF9pbmZvW3RwLT5jaGlwc2V0XS5uYW1l
LAogCQkgICAgICAgZGV2LT5iYXNlX2FkZHIsCiAJCSAgICAgICBkZXYtPmRldl9hZGRyWzBdLCBk
ZXYtPmRldl9hZGRyWzFdLAogCQkgICAgICAgZGV2LT5kZXZfYWRkclsyXSwgZGV2LT5kZXZfYWRk
clszXSwKQEAgLTE4MDUsNiArMTg0MSw3IEBAIHJ0bDgxNjlfaHdfc3RhcnQoc3RydWN0IG5ldF9k
ZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCA9IG5ldGRldl9wcml2
KGRldik7CiAJdm9pZCBfX2lvbWVtICppb2FkZHIgPSB0cC0+bW1pb19hZGRyOworCXN0cnVjdCBw
Y2lfZGV2ICpwZGV2ID0gdHAtPnBjaV9kZXY7CiAJdTMyIGk7CiAKIAkvKiBTb2Z0IHJlc2V0IHRo
ZSBjaGlwLiAqLwpAQCAtMTgxNyw4ICsxODU0LDI4IEBAIHJ0bDgxNjlfaHdfc3RhcnQoc3RydWN0
IG5ldF9kZXZpY2UgKmRldikKIAkJdWRlbGF5KDEwKTsKIAl9CiAKKwlpZiAodHAtPm1hY192ZXJz
aW9uID09IFJUTF9HSUdBX01BQ19WRVJfMTMpIHsKKwkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHBk
ZXYsIDB4NjgsIDB4MDApOworCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQocGRldiwgMHg2OSwgMHgw
OCk7CisJfQorCisJLyogVW5kb2N1bWVudGVkIHN0dWZmLiAqLworCWlmICh0cC0+bWFjX3ZlcnNp
b24gPT0gUlRMX0dJR0FfTUFDX1ZFUl8wNSkgeworCQl1MTYgY21kOworCisJCS8qIFJlYWx0ZWsn
cyByMTAwMF9uLmMgZHJpdmVyIHVzZXMgJyYmIDB4MDEnIGhlcmUuIFdlbGwuLi4gKi8KKwkJaWYg
KChSVExfUjgoQ29uZmlnMikgJiAweDA3KSAmIDB4MDEpCisJCQlSVExfVzMyKDB4N2MsIDB4MDAw
N2ZmZmYpOworCisJCVJUTF9XMzIoMHg3YywgMHgwMDA3ZmYwMCk7CisKKwkJcGNpX3JlYWRfY29u
ZmlnX3dvcmQocGRldiwgUENJX0NPTU1BTkQsICZjbWQpOworCQljbWQgPSBjbWQgJiAweGVmOwor
CQlwY2lfd3JpdGVfY29uZmlnX3dvcmQocGRldiwgUENJX0NPTU1BTkQsIGNtZCk7CisJfQorCisK
IAlSVExfVzgoQ2ZnOTM0NiwgQ2ZnOTM0Nl9VbmxvY2spOwotCVJUTF9XOChDaGlwQ21kLCBDbWRU
eEVuYiB8IENtZFJ4RW5iKTsKIAlSVExfVzgoRWFybHlUeFRocmVzLCBFYXJseVR4VGhsZCk7CiAK
IAkvKiBMb3cgaHVydHMuIExldCdzIGRpc2FibGUgdGhlIGZpbHRlcmluZy4gKi8KQEAgLTE4MzMs
MTcgKzE4OTAsMTggQEAgcnRsODE2OV9od19zdGFydChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQog
CVJUTF9XMzIoVHhDb25maWcsCiAJCShUWF9ETUFfQlVSU1QgPDwgVHhETUFTaGlmdCkgfCAoSW50
ZXJGcmFtZUdhcCA8PAogCQkJCQkJVHhJbnRlckZyYW1lR2FwU2hpZnQpKTsKLQl0cC0+Y3BfY21k
IHw9IFJUTF9SMTYoQ1BsdXNDbWQpOwotCVJUTF9XMTYoQ1BsdXNDbWQsIHRwLT5jcF9jbWQpOwog
Ci0JaWYgKCh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZFUl9EKSB8fAotCSAgICAo
dHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfRSkpIHsKKwl0cC0+Y3BfY21kIHw9
IFJUTF9SMTYoQ1BsdXNDbWQpIHwgUENJTXVsUlc7CisKKwlpZiAoKHRwLT5tYWNfdmVyc2lvbiA9
PSBSVExfR0lHQV9NQUNfVkVSXzAyKSB8fAorCSAgICAodHAtPm1hY192ZXJzaW9uID09IFJUTF9H
SUdBX01BQ19WRVJfMDMpKSB7CiAJCWRwcmludGsoS0VSTl9JTkZPIFBGWCAiU2V0IE1BQyBSZWcg
QytDUiBPZmZzZXQgMHhFMC4gIgogCQkJIkJpdC0zIGFuZCBiaXQtMTQgTVVTVCBiZSAxXG4iKTsK
LQkJdHAtPmNwX2NtZCB8PSAoMSA8PCAxNCkgfCBQQ0lNdWxSVzsKLQkJUlRMX1cxNihDUGx1c0Nt
ZCwgdHAtPmNwX2NtZCk7CisJCXRwLT5jcF9jbWQgfD0gKDEgPDwgMTQpOwogCX0KIAorCVJUTF9X
MTYoQ1BsdXNDbWQsIHRwLT5jcF9jbWQpOworCiAJLyoKIAkgKiBVbmRvY3VtZW50ZWQgY29ybmVy
LiBTdXBwb3NlZGx5OgogCSAqIChUeFRpbWVyIDw8IDEyKSB8IChUeFBhY2tldHMgPDwgOCkgfCAo
UnhUaW1lciA8PCA0KSB8IFJ4UGFja2V0cwpAQCAtMTg1NCw2ICsxOTEyLDcgQEAgcnRsODE2OV9o
d19zdGFydChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCVJUTF9XMzIoVHhEZXNjU3RhcnRBZGRy
SGlnaCwgKCh1NjQpIHRwLT5UeFBoeUFkZHIgPj4gMzIpKTsKIAlSVExfVzMyKFJ4RGVzY0FkZHJM
b3csICgodTY0KSB0cC0+UnhQaHlBZGRyICYgRE1BXzMyQklUX01BU0spKTsKIAlSVExfVzMyKFJ4
RGVzY0FkZHJIaWdoLCAoKHU2NCkgdHAtPlJ4UGh5QWRkciA+PiAzMikpOworCVJUTF9XOChDaGlw
Q21kLCBDbWRUeEVuYiB8IENtZFJ4RW5iKTsKIAlSVExfVzgoQ2ZnOTM0NiwgQ2ZnOTM0Nl9Mb2Nr
KTsKIAl1ZGVsYXkoMTApOwogCkBAIC0xOTM3LDE3ICsxOTk2LDE4IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBydGw4MTY5X21hcF90b19hc2ljKHMKIH0KIAogc3RhdGljIGludCBydGw4MTY5X2FsbG9j
X3J4X3NrYihzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHNrX2J1ZmYgKipza19idWZmLAot
CQkJCXN0cnVjdCBSeERlc2MgKmRlc2MsIGludCByeF9idWZfc3opCisJCQkJc3RydWN0IFJ4RGVz
YyAqZGVzYywgaW50IHJ4X2J1Zl9zeiwKKwkJCQl1bnNpZ25lZCBpbnQgYWxpZ24pCiB7CiAJc3Ry
dWN0IHNrX2J1ZmYgKnNrYjsKIAlkbWFfYWRkcl90IG1hcHBpbmc7CiAJaW50IHJldCA9IDA7CiAK
LQlza2IgPSBkZXZfYWxsb2Nfc2tiKHJ4X2J1Zl9zeiArIE5FVF9JUF9BTElHTik7CisJc2tiID0g
ZGV2X2FsbG9jX3NrYihyeF9idWZfc3ogKyBhbGlnbik7CiAJaWYgKCFza2IpCiAJCWdvdG8gZXJy
X291dDsKIAotCXNrYl9yZXNlcnZlKHNrYiwgTkVUX0lQX0FMSUdOKTsKKwlza2JfcmVzZXJ2ZShz
a2IsIGFsaWduKTsKIAkqc2tfYnVmZiA9IHNrYjsKIAogCW1hcHBpbmcgPSBwY2lfbWFwX3Npbmds
ZShwZGV2LCBza2ItPmRhdGEsIHJ4X2J1Zl9zeiwKQEAgLTE5ODYsOSArMjA0Niw5IEBAIHN0YXRp
YyB1MzIgcnRsODE2OV9yeF9maWxsKHN0cnVjdCBydGw4MTYKIAogCQlpZiAodHAtPlJ4X3NrYnVm
ZltpXSkKIAkJCWNvbnRpbnVlOwotCQkJCisKIAkJcmV0ID0gcnRsODE2OV9hbGxvY19yeF9za2Io
dHAtPnBjaV9kZXYsIHRwLT5SeF9za2J1ZmYgKyBpLAotCQkJCQkgICB0cC0+UnhEZXNjQXJyYXkg
KyBpLCB0cC0+cnhfYnVmX3N6KTsKKwkJCXRwLT5SeERlc2NBcnJheSArIGksIHRwLT5yeF9idWZf
c3osIHRwLT5hbGlnbik7CiAJCWlmIChyZXQgPCAwKQogCQkJYnJlYWs7CiAJfQpAQCAtMjM5OSwx
NiArMjQ1OSwxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcnRsODE2OV9yeF9jc3VtKHN0cnVjCiB9
CiAKIHN0YXRpYyBpbmxpbmUgaW50IHJ0bDgxNjlfdHJ5X3J4X2NvcHkoc3RydWN0IHNrX2J1ZmYg
Kipza19idWZmLCBpbnQgcGt0X3NpemUsCi0JCQkJICAgICAgc3RydWN0IFJ4RGVzYyAqZGVzYywg
aW50IHJ4X2J1Zl9zeikKKwkJCQkgICAgICBzdHJ1Y3QgUnhEZXNjICpkZXNjLCBpbnQgcnhfYnVm
X3N6LAorCQkJCSAgICAgIHVuc2lnbmVkIGludCBhbGlnbikKIHsKIAlpbnQgcmV0ID0gLTE7CiAK
IAlpZiAocGt0X3NpemUgPCByeF9jb3B5YnJlYWspIHsKIAkJc3RydWN0IHNrX2J1ZmYgKnNrYjsK
IAotCQlza2IgPSBkZXZfYWxsb2Nfc2tiKHBrdF9zaXplICsgTkVUX0lQX0FMSUdOKTsKKwkJc2ti
ID0gZGV2X2FsbG9jX3NrYihwa3Rfc2l6ZSArIGFsaWduKTsKIAkJaWYgKHNrYikgewotCQkJc2ti
X3Jlc2VydmUoc2tiLCBORVRfSVBfQUxJR04pOworCQkJc2tiX3Jlc2VydmUoc2tiLCBhbGlnbik7
CiAJCQlldGhfY29weV9hbmRfc3VtKHNrYiwgc2tfYnVmZlswXS0+ZGF0YSwgcGt0X3NpemUsIDAp
OwogCQkJKnNrX2J1ZmYgPSBza2I7CiAJCQlydGw4MTY5X21hcmtfdG9fYXNpYyhkZXNjLCByeF9i
dWZfc3opOwpAQCAtMjQ3OCwxMyArMjUzOSwxMyBAQCBydGw4MTY5X3J4X2ludGVycnVwdChzdHJ1
Y3QgbmV0X2RldmljZSAqCiAJCQl9CiAKIAkJCXJ0bDgxNjlfcnhfY3N1bShza2IsIGRlc2MpOwot
CQkJCisKIAkJCXBjaV9kbWFfc3luY19zaW5nbGVfZm9yX2NwdSh0cC0+cGNpX2RldiwKIAkJCQls
ZTY0X3RvX2NwdShkZXNjLT5hZGRyKSwgdHAtPnJ4X2J1Zl9zeiwKIAkJCQlQQ0lfRE1BX0ZST01E
RVZJQ0UpOwogCiAJCQlpZiAocnRsODE2OV90cnlfcnhfY29weSgmc2tiLCBwa3Rfc2l6ZSwgZGVz
YywKLQkJCQkJCXRwLT5yeF9idWZfc3opKSB7CisJCQkJCQl0cC0+cnhfYnVmX3N6LCB0cC0+YWxp
Z24pKSB7CiAJCQkJcGNpX2FjdGlvbiA9IHBjaV91bm1hcF9zaW5nbGU7CiAJCQkJdHAtPlJ4X3Nr
YnVmZltlbnRyeV0gPSBOVUxMOwogCQkJfQpAQCAtMjc0Nyw2ICsyODA4LDE1IEBAIHJ0bDgxNjlf
c2V0X3J4X21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmQKIAl0bXAgPSBydGw4MTY5X3J4X2NvbmZp
ZyB8IHJ4X21vZGUgfAogCSAgICAgIChSVExfUjMyKFJ4Q29uZmlnKSAmIHJ0bF9jaGlwX2luZm9b
dHAtPmNoaXBzZXRdLlJ4Q29uZmlnTWFzayk7CiAKKwlpZiAoKHRwLT5tYWNfdmVyc2lvbiA9PSBS
VExfR0lHQV9NQUNfVkVSXzExKSB8fAorCSAgICAodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdB
X01BQ19WRVJfMTIpIHx8CisJICAgICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZF
Ul8xMykgfHwKKwkgICAgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzE0KSB8
fAorCSAgICAodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfMTUpKSB7CisJCW1j
X2ZpbHRlclswXSA9IDB4ZmZmZmZmZmY7CisJCW1jX2ZpbHRlclsxXSA9IDB4ZmZmZmZmZmY7CisJ
fQorCiAJUlRMX1czMihSeENvbmZpZywgdG1wKTsKIAlSVExfVzMyKE1BUjAgKyAwLCBtY19maWx0
ZXJbMF0pOwogCVJUTF9XMzIoTUFSMCArIDQsIG1jX2ZpbHRlclsxXSk7Cg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>98069</attachid>
            <date>2006-09-25 15:07 0000</date>
            <desc>lspci -v output - Asus A6T (amd64)</desc>
            <filename>lspci-v</filename>
            <type>text/plain</type>
            <data encoding="base64">MDA6MDAuMCBSQU0gbWVtb3J5OiBuVmlkaWEgQ29ycG9yYXRpb24gQzUxIEhvc3QgQnJpZGdlIChy
ZXYgYTIpCglTdWJzeXN0ZW06IEFTVVNUZUsgQ29tcHV0ZXIgSW5jLiBVbmtub3duIGRldmljZSAx
MzY3CglGbGFnczogYnVzIG1hc3RlciwgNjZNSHosIGZhc3QgZGV2c2VsLCBsYXRlbmN5IDAKCUNh
cGFiaWxpdGllczogWzQ0XSBIeXBlclRyYW5zcG9ydDogU2xhdmUgb3IgUHJpbWFyeSBJbnRlcmZh
Y2UKCUNhcGFiaWxpdGllczogW2UwXSBIeXBlclRyYW5zcG9ydDogTVNJIE1hcHBpbmcKCjAwOjAw
LjEgUkFNIG1lbW9yeTogblZpZGlhIENvcnBvcmF0aW9uIEM1MSBNZW1vcnkgQ29udHJvbGxlciAw
IChyZXYgYTIpCglTdWJzeXN0ZW06IEFTVVNUZUsgQ29tcHV0ZXIgSW5jLiBVbmtub3duIGRldmlj
ZSAxMzY3CglGbGFnczogNjZNSHosIGZhc3QgZGV2c2VsCgowMDowMC4yIFJBTSBtZW1vcnk6IG5W
aWRpYSBDb3Jwb3JhdGlvbiBDNTEgTWVtb3J5IENvbnRyb2xsZXIgMSAocmV2IGEyKQoJU3Vic3lz
dGVtOiBBU1VTVGVLIENvbXB1dGVyIEluYy4gVW5rbm93biBkZXZpY2UgMTM2NwoJRmxhZ3M6IDY2
TUh6LCBmYXN0IGRldnNlbAoKMDA6MDAuMyBSQU0gbWVtb3J5OiBuVmlkaWEgQ29ycG9yYXRpb24g
QzUxIE1lbW9yeSBDb250cm9sbGVyIDUgKHJldiBhMikKCVN1YnN5c3RlbTogQVNVU1RlSyBDb21w
dXRlciBJbmMuIFVua25vd24gZGV2aWNlIDEzNjcKCUZsYWdzOiA2Nk1IeiwgZmFzdCBkZXZzZWwK
CjAwOjAwLjQgUkFNIG1lbW9yeTogblZpZGlhIENvcnBvcmF0aW9uIEM1MSBNZW1vcnkgQ29udHJv
bGxlciA0IChyZXYgYTIpCglTdWJzeXN0ZW06IEFTVVNUZUsgQ29tcHV0ZXIgSW5jLiBVbmtub3du
IGRldmljZSAxMzY3CglGbGFnczogYnVzIG1hc3RlciwgNjZNSHosIGZhc3QgZGV2c2VsLCBsYXRl
bmN5IDAKCjAwOjAwLjUgUkFNIG1lbW9yeTogblZpZGlhIENvcnBvcmF0aW9uIEM1MSBIb3N0IEJy
aWRnZSAocmV2IGEyKQoJU3Vic3lzdGVtOiBBU1VTVGVLIENvbXB1dGVyIEluYy4gVW5rbm93biBk
ZXZpY2UgMTM2NwoJRmxhZ3M6IGJ1cyBtYXN0ZXIsIDY2TUh6LCBmYXN0IGRldnNlbCwgbGF0ZW5j
eSAwCglDYXBhYmlsaXRpZXM6IFs0NF0gIzAwIFswMDAwXQoKMDA6MDAuNiBSQU0gbWVtb3J5OiBu
VmlkaWEgQ29ycG9yYXRpb24gQzUxIE1lbW9yeSBDb250cm9sbGVyIDMgKHJldiBhMikKCVN1YnN5
c3RlbTogQVNVU1RlSyBDb21wdXRlciBJbmMuIFVua25vd24gZGV2aWNlIDEzNjcKCUZsYWdzOiA2
Nk1IeiwgZmFzdCBkZXZzZWwKCjAwOjAwLjcgUkFNIG1lbW9yeTogblZpZGlhIENvcnBvcmF0aW9u
IEM1MSBNZW1vcnkgQ29udHJvbGxlciAyIChyZXYgYTIpCglTdWJzeXN0ZW06IEFTVVNUZUsgQ29t
cHV0ZXIgSW5jLiBVbmtub3duIGRldmljZSAxMzY3CglGbGFnczogNjZNSHosIGZhc3QgZGV2c2Vs
CgowMDowMy4wIFBDSSBicmlkZ2U6IG5WaWRpYSBDb3Jwb3JhdGlvbiBDNTEgUENJIEV4cHJlc3Mg
QnJpZGdlIChyZXYgYTEpIChwcm9nLWlmIDAwIFtOb3JtYWwgZGVjb2RlXSkKCUZsYWdzOiBidXMg
bWFzdGVyLCBmYXN0IGRldnNlbCwgbGF0ZW5jeSAwCglCdXM6IHByaW1hcnk9MDAsIHNlY29uZGFy
eT0wMSwgc3Vib3JkaW5hdGU9MDEsIHNlYy1sYXRlbmN5PTAKCUkvTyBiZWhpbmQgYnJpZGdlOiAw
MDAwYzAwMC0wMDAwY2ZmZgoJTWVtb3J5IGJlaGluZCBicmlkZ2U6IGRjZjAwMDAwLWRjZmZmZmZm
CglDYXBhYmlsaXRpZXM6IFs0MF0gIzBkIFswMDAwXQoJQ2FwYWJpbGl0aWVzOiBbNDhdIFBvd2Vy
IE1hbmFnZW1lbnQgdmVyc2lvbiAyCglDYXBhYmlsaXRpZXM6IFs1MF0gTWVzc2FnZSBTaWduYWxs
ZWQgSW50ZXJydXB0czogNjRiaXQrIFF1ZXVlPTAvMSBFbmFibGUrCglDYXBhYmlsaXRpZXM6IFs2
MF0gSHlwZXJUcmFuc3BvcnQ6IE1TSSBNYXBwaW5nCglDYXBhYmlsaXRpZXM6IFs4MF0gRXhwcmVz
cyBSb290IFBvcnQgKFNsb3QrKSBJUlEgMAoKMDA6MDQuMCBQQ0kgYnJpZGdlOiBuVmlkaWEgQ29y
cG9yYXRpb24gQzUxIFBDSSBFeHByZXNzIEJyaWRnZSAocmV2IGExKSAocHJvZy1pZiAwMCBbTm9y
bWFsIGRlY29kZV0pCglGbGFnczogYnVzIG1hc3RlciwgZmFzdCBkZXZzZWwsIGxhdGVuY3kgMAoJ
QnVzOiBwcmltYXJ5PTAwLCBzZWNvbmRhcnk9MDIsIHN1Ym9yZGluYXRlPTAyLCBzZWMtbGF0ZW5j
eT0wCglJL08gYmVoaW5kIGJyaWRnZTogMDAwMGQwMDAtMDAwMGRmZmYKCU1lbW9yeSBiZWhpbmQg
YnJpZGdlOiBkZDAwMDAwMC1kZjZmZmZmZgoJUHJlZmV0Y2hhYmxlIG1lbW9yeSBiZWhpbmQgYnJp
ZGdlOiAwMDAwMDAwMGMwMDAwMDAwLTAwMDAwMDAwY2ZmMDAwMDAKCUNhcGFiaWxpdGllczogWzQw
XSAjMGQgWzAwMDBdCglDYXBhYmlsaXRpZXM6IFs0OF0gUG93ZXIgTWFuYWdlbWVudCB2ZXJzaW9u
IDIKCUNhcGFiaWxpdGllczogWzUwXSBNZXNzYWdlIFNpZ25hbGxlZCBJbnRlcnJ1cHRzOiA2NGJp
dCsgUXVldWU9MC8xIEVuYWJsZSsKCUNhcGFiaWxpdGllczogWzYwXSBIeXBlclRyYW5zcG9ydDog
TVNJIE1hcHBpbmcKCUNhcGFiaWxpdGllczogWzgwXSBFeHByZXNzIFJvb3QgUG9ydCAoU2xvdCsp
IElSUSAwCgowMDowOS4wIFJBTSBtZW1vcnk6IG5WaWRpYSBDb3Jwb3JhdGlvbiBNQ1A1MSBIb3N0
IEJyaWRnZSAocmV2IGEyKQoJU3Vic3lzdGVtOiBBU1VTVGVLIENvbXB1dGVyIEluYy4gVW5rbm93
biBkZXZpY2UgMTM2NwoJRmxhZ3M6IGJ1cyBtYXN0ZXIsIDY2TUh6LCBmYXN0IGRldnNlbCwgbGF0
ZW5jeSAwCglDYXBhYmlsaXRpZXM6IFs0NF0gSHlwZXJUcmFuc3BvcnQ6IFNsYXZlIG9yIFByaW1h
cnkgSW50ZXJmYWNlCglDYXBhYmlsaXRpZXM6IFtlMF0gSHlwZXJUcmFuc3BvcnQ6IE1TSSBNYXBw
aW5nCgowMDowYS4wIElTQSBicmlkZ2U6IG5WaWRpYSBDb3Jwb3JhdGlvbiBNQ1A1MSBMUEMgQnJp
ZGdlIChyZXYgYTMpCglTdWJzeXN0ZW06IEFTVVNUZUsgQ29tcHV0ZXIgSW5jLiBVbmtub3duIGRl
dmljZSAxMzY3CglGbGFnczogYnVzIG1hc3RlciwgNjZNSHosIGZhc3QgZGV2c2VsLCBsYXRlbmN5
IDAKCjAwOjBhLjEgU01CdXM6IG5WaWRpYSBDb3Jwb3JhdGlvbiBNQ1A1MSBTTUJ1cyAocmV2IGEz
KQoJU3Vic3lzdGVtOiBBU1VTVGVLIENvbXB1dGVyIEluYy4gVW5rbm93biBkZXZpY2UgMTM2NwoJ
RmxhZ3M6IDY2TUh6LCBmYXN0IGRldnNlbCwgSVJRIDUKCUkvTyBwb3J0cyBhdCAwNjAwIFtzaXpl
PTY0XQoJSS9PIHBvcnRzIGF0IDA3MDAgW3NpemU9NjRdCglDYXBhYmlsaXRpZXM6IFs0NF0gUG93
ZXIgTWFuYWdlbWVudCB2ZXJzaW9uIDIKCjAwOjBhLjMgQ28tcHJvY2Vzc29yOiBuVmlkaWEgQ29y
cG9yYXRpb24gTUNQNTEgUE1VIChyZXYgYTMpCglTdWJzeXN0ZW06IEFTVVNUZUsgQ29tcHV0ZXIg
SW5jLiBVbmtub3duIGRldmljZSAxMzY3CglGbGFnczogYnVzIG1hc3RlciwgNjZNSHosIGZhc3Qg
ZGV2c2VsLCBsYXRlbmN5IDAsIElSUSAxMAoJTWVtb3J5IGF0IGRjZWMwMDAwICgzMi1iaXQsIG5v
bi1wcmVmZXRjaGFibGUpIFtzaXplPTI1NktdCgowMDowYi4wIFVTQiBDb250cm9sbGVyOiBuVmlk
aWEgQ29ycG9yYXRpb24gTUNQNTEgVVNCIENvbnRyb2xsZXIgKHJldiBhMykgKHByb2ctaWYgMTAg
W09IQ0ldKQoJU3Vic3lzdGVtOiBBU1VTVGVLIENvbXB1dGVyIEluYy4gVW5rbm93biBkZXZpY2Ug
MTM2NwoJRmxhZ3M6IGJ1cyBtYXN0ZXIsIDY2TUh6LCBmYXN0IGRldnNlbCwgbGF0ZW5jeSAwLCBJ
UlEgMTEKCU1lbW9yeSBhdCBkY2ViZTAwMCAoMzItYml0LCBub24tcHJlZmV0Y2hhYmxlKSBbc2l6
ZT00S10KCUNhcGFiaWxpdGllczogWzQ0XSBQb3dlciBNYW5hZ2VtZW50IHZlcnNpb24gMgoKMDA6
MGIuMSBVU0IgQ29udHJvbGxlcjogblZpZGlhIENvcnBvcmF0aW9uIE1DUDUxIFVTQiBDb250cm9s
bGVyIChyZXYgYTMpIChwcm9nLWlmIDIwIFtFSENJXSkKCVN1YnN5c3RlbTogQVNVU1RlSyBDb21w
dXRlciBJbmMuIFVua25vd24gZGV2aWNlIDEzNjcKCUZsYWdzOiBidXMgbWFzdGVyLCA2Nk1Ieiwg
ZmFzdCBkZXZzZWwsIGxhdGVuY3kgMCwgSVJRIDcKCU1lbW9yeSBhdCBkY2ViZmMwMCAoMzItYml0
LCBub24tcHJlZmV0Y2hhYmxlKSBbc2l6ZT0yNTZdCglDYXBhYmlsaXRpZXM6IFs0NF0gRGVidWcg
cG9ydAoJQ2FwYWJpbGl0aWVzOiBbODBdIFBvd2VyIE1hbmFnZW1lbnQgdmVyc2lvbiAyCgowMDow
ZC4wIElERSBpbnRlcmZhY2U6IG5WaWRpYSBDb3Jwb3JhdGlvbiBNQ1A1MSBJREUgKHJldiBhMSkg
KHByb2ctaWYgOGEgW01hc3RlciBTZWNQIFByaVBdKQoJU3Vic3lzdGVtOiBBU1VTVGVLIENvbXB1
dGVyIEluYy4gVW5rbm93biBkZXZpY2UgMTM2NwoJRmxhZ3M6IGJ1cyBtYXN0ZXIsIDY2TUh6LCBm
YXN0IGRldnNlbCwgbGF0ZW5jeSAwCglJL08gcG9ydHMgYXQgZmZhMCBbc2l6ZT0xNl0KCUNhcGFi
aWxpdGllczogWzQ0XSBQb3dlciBNYW5hZ2VtZW50IHZlcnNpb24gMgoKMDA6MTAuMCBQQ0kgYnJp
ZGdlOiBuVmlkaWEgQ29ycG9yYXRpb24gTUNQNTEgUENJIEJyaWRnZSAocmV2IGEyKSAocHJvZy1p
ZiAwMSBbU3VidHJhY3RpdmUgZGVjb2RlXSkKCUZsYWdzOiBidXMgbWFzdGVyLCA2Nk1IeiwgZmFz
dCBkZXZzZWwsIGxhdGVuY3kgMAoJQnVzOiBwcmltYXJ5PTAwLCBzZWNvbmRhcnk9MDMsIHN1Ym9y
ZGluYXRlPTA0LCBzZWMtbGF0ZW5jeT02NAoJSS9PIGJlaGluZCBicmlkZ2U6IDAwMDBlMDAwLTAw
MDBlZmZmCglNZW1vcnkgYmVoaW5kIGJyaWRnZTogZGY3MDAwMDAtZGZmZmZmZmYKCVByZWZldGNo
YWJsZSBtZW1vcnkgYmVoaW5kIGJyaWRnZTogZGEwMDAwMDAtZGJmZmZmZmYKCUNhcGFiaWxpdGll
czogW2I4XSAjMGQgWzAwMDBdCglDYXBhYmlsaXRpZXM6IFs4Y10gSHlwZXJUcmFuc3BvcnQ6IE1T
SSBNYXBwaW5nCgowMDoxMC4xIEF1ZGlvIGRldmljZTogblZpZGlhIENvcnBvcmF0aW9uIE1DUDUx
IEhpZ2ggRGVmaW5pdGlvbiBBdWRpbyAocmV2IGEyKQoJU3Vic3lzdGVtOiBBU1VTVGVLIENvbXB1
dGVyIEluYy4gVW5rbm93biBkZXZpY2UgMTM2NwoJRmxhZ3M6IGJ1cyBtYXN0ZXIsIDY2TUh6LCBm
YXN0IGRldnNlbCwgbGF0ZW5jeSAwLCBJUlEgMTAKCU1lbW9yeSBhdCBkY2ViODAwMCAoMzItYml0
LCBub24tcHJlZmV0Y2hhYmxlKSBbc2l6ZT0xNktdCglDYXBhYmlsaXRpZXM6IFs0NF0gUG93ZXIg
TWFuYWdlbWVudCB2ZXJzaW9uIDIKCUNhcGFiaWxpdGllczogWzUwXSBNZXNzYWdlIFNpZ25hbGxl
ZCBJbnRlcnJ1cHRzOiA2NGJpdCsgUXVldWU9MC8wIEVuYWJsZS0KCUNhcGFiaWxpdGllczogWzZj
XSBIeXBlclRyYW5zcG9ydDogTVNJIE1hcHBpbmcKCjAwOjE4LjAgSG9zdCBicmlkZ2U6IEFkdmFu
Y2VkIE1pY3JvIERldmljZXMgW0FNRF0gSzggW0F0aGxvbjY0L09wdGVyb25dIEh5cGVyVHJhbnNw
b3J0IFRlY2hub2xvZ3kgQ29uZmlndXJhdGlvbgoJRmxhZ3M6IGZhc3QgZGV2c2VsCglDYXBhYmls
aXRpZXM6IFs4MF0gSHlwZXJUcmFuc3BvcnQ6IEhvc3Qgb3IgU2Vjb25kYXJ5IEludGVyZmFjZQoK
MDA6MTguMSBIb3N0IGJyaWRnZTogQWR2YW5jZWQgTWljcm8gRGV2aWNlcyBbQU1EXSBLOCBbQXRo
bG9uNjQvT3B0ZXJvbl0gQWRkcmVzcyBNYXAKCUZsYWdzOiBmYXN0IGRldnNlbAoKMDA6MTguMiBI
b3N0IGJyaWRnZTogQWR2YW5jZWQgTWljcm8gRGV2aWNlcyBbQU1EXSBLOCBbQXRobG9uNjQvT3B0
ZXJvbl0gRFJBTSBDb250cm9sbGVyCglGbGFnczogZmFzdCBkZXZzZWwKCjAwOjE4LjMgSG9zdCBi
cmlkZ2U6IEFkdmFuY2VkIE1pY3JvIERldmljZXMgW0FNRF0gSzggW0F0aGxvbjY0L09wdGVyb25d
IE1pc2NlbGxhbmVvdXMgQ29udHJvbAoJRmxhZ3M6IGZhc3QgZGV2c2VsCglDYXBhYmlsaXRpZXM6
IFtmMF0gIzBmIFswMDEwXQoKMDE6MDAuMCBFdGhlcm5ldCBjb250cm9sbGVyOiBSZWFsdGVrIFNl
bWljb25kdWN0b3IgQ28uLCBMdGQuIFJUTDgxMTEvODE2OEIgUENJIEV4cHJlc3MgR2lnYWJpdCBF
dGhlcm5ldCBjb250cm9sbGVyIChyZXYgMDEpCglTdWJzeXN0ZW06IEFTVVNUZUsgQ29tcHV0ZXIg
SW5jLiBVbmtub3duIGRldmljZSAxMWY1CglGbGFnczogYnVzIG1hc3RlciwgZmFzdCBkZXZzZWws
IGxhdGVuY3kgMCwgSVJRIDExCglJL08gcG9ydHMgYXQgYzgwMCBbc2l6ZT0yNTZdCglNZW1vcnkg
YXQgZGNmZmYwMDAgKDY0LWJpdCwgbm9uLXByZWZldGNoYWJsZSkgW3NpemU9NEtdCglFeHBhbnNp
b24gUk9NIGF0IGRjZmUwMDAwIFtkaXNhYmxlZF0gW3NpemU9NjRLXQoJQ2FwYWJpbGl0aWVzOiBb
NDBdIFBvd2VyIE1hbmFnZW1lbnQgdmVyc2lvbiAyCglDYXBhYmlsaXRpZXM6IFs0OF0gVml0YWwg
UHJvZHVjdCBEYXRhCglDYXBhYmlsaXRpZXM6IFs1MF0gTWVzc2FnZSBTaWduYWxsZWQgSW50ZXJy
dXB0czogNjRiaXQrIFF1ZXVlPTAvMSBFbmFibGUtCglDYXBhYmlsaXRpZXM6IFs2MF0gRXhwcmVz
cyBFbmRwb2ludCBJUlEgMAoJQ2FwYWJpbGl0aWVzOiBbODRdIFZlbmRvciBTcGVjaWZpYyBJbmZv
cm1hdGlvbgoKMDI6MDAuMCBWR0EgY29tcGF0aWJsZSBjb250cm9sbGVyOiBuVmlkaWEgQ29ycG9y
YXRpb24gRzcwIFtHZUZvcmNlIEdvIDc2MDBdIChyZXYgYTEpIChwcm9nLWlmIDAwIFtWR0FdKQoJ
U3Vic3lzdGVtOiBBU1VTVGVLIENvbXB1dGVyIEluYy4gVW5rbm93biBkZXZpY2UgMTMyMgoJRmxh
Z3M6IGJ1cyBtYXN0ZXIsIGZhc3QgZGV2c2VsLCBsYXRlbmN5IDAsIElSUSAxMQoJTWVtb3J5IGF0
IGRlMDAwMDAwICgzMi1iaXQsIG5vbi1wcmVmZXRjaGFibGUpIFtzaXplPTE2TV0KCU1lbW9yeSBh
dCBjMDAwMDAwMCAoNjQtYml0LCBwcmVmZXRjaGFibGUpIFtzaXplPTI1Nk1dCglNZW1vcnkgYXQg
ZGQwMDAwMDAgKDY0LWJpdCwgbm9uLXByZWZldGNoYWJsZSkgW3NpemU9MTZNXQoJSS9PIHBvcnRz
IGF0IGRjMDAgW3NpemU9MTI4XQoJW3ZpcnR1YWxdIEV4cGFuc2lvbiBST00gYXQgZGY2ZTAwMDAg
W2Rpc2FibGVkXSBbc2l6ZT0xMjhLXQoJQ2FwYWJpbGl0aWVzOiBbNjBdIFBvd2VyIE1hbmFnZW1l
bnQgdmVyc2lvbiAyCglDYXBhYmlsaXRpZXM6IFs2OF0gTWVzc2FnZSBTaWduYWxsZWQgSW50ZXJy
dXB0czogNjRiaXQrIFF1ZXVlPTAvMCBFbmFibGUtCglDYXBhYmlsaXRpZXM6IFs3OF0gRXhwcmVz
cyBFbmRwb2ludCBJUlEgMAoKMDM6MDEuMCBDYXJkQnVzIGJyaWRnZTogUmljb2ggQ28gTHRkIFJM
NWM0NzYgSUkgKHJldiBiMykKCVN1YnN5c3RlbTogQVNVU1RlSyBDb21wdXRlciBJbmMuIFVua25v
d24gZGV2aWNlIDEzNjcKCUZsYWdzOiBidXMgbWFzdGVyLCBtZWRpdW0gZGV2c2VsLCBsYXRlbmN5
IDY0LCBJUlEgMTEKCU1lbW9yeSBhdCBkZjgwMDAwMCAoMzItYml0LCBub24tcHJlZmV0Y2hhYmxl
KSBbc2l6ZT00S10KCUJ1czogcHJpbWFyeT0wMywgc2Vjb25kYXJ5PTA0LCBzdWJvcmRpbmF0ZT0w
Nywgc2VjLWxhdGVuY3k9MTc2CglNZW1vcnkgd2luZG93IDA6IGRhMDAwMDAwLWRiZmZmMDAwIChw
cmVmZXRjaGFibGUpCglNZW1vcnkgd2luZG93IDE6IDUwMDAwMDAwLTUxZmZmMDAwCglJL08gd2lu
ZG93IDA6IDAwMDBlMDAwLTAwMDBlMGZmCglJL08gd2luZG93IDE6IDAwMDBlNDAwLTAwMDBlNGZm
CgkxNi1iaXQgbGVnYWN5IGludGVyZmFjZSBwb3J0cyBhdCAwMDAxCgowMzowMS4xIEZpcmVXaXJl
IChJRUVFIDEzOTQpOiBSaWNvaCBDbyBMdGQgUjVDNTUyIElFRUUgMTM5NCBDb250cm9sbGVyIChy
ZXYgMDgpIChwcm9nLWlmIDEwIFtPSENJXSkKCVN1YnN5c3RlbTogQVNVU1RlSyBDb21wdXRlciBJ
bmMuIFVua25vd24gZGV2aWNlIDEzNjcKCUZsYWdzOiBidXMgbWFzdGVyLCBtZWRpdW0gZGV2c2Vs
LCBsYXRlbmN5IDY0LCBJUlEgNQoJTWVtb3J5IGF0IGRmN2ZmMDAwICgzMi1iaXQsIG5vbi1wcmVm
ZXRjaGFibGUpIFtzaXplPTJLXQoJQ2FwYWJpbGl0aWVzOiBbZGNdIFBvd2VyIE1hbmFnZW1lbnQg
dmVyc2lvbiAyCgowMzowMS4yIENsYXNzIDA4MDU6IFJpY29oIENvIEx0ZCBSNUM4MjIgU0QvU0RJ
Ty9NTUMvTVMvTVNQcm8gSG9zdCBBZGFwdGVyIChyZXYgMTcpCglTdWJzeXN0ZW06IEFTVVNUZUsg
Q29tcHV0ZXIgSW5jLiBVbmtub3duIGRldmljZSAxMzY3CglGbGFnczogYnVzIG1hc3RlciwgbWVk
aXVtIGRldnNlbCwgbGF0ZW5jeSA2NCwgSVJRIDUKCU1lbW9yeSBhdCBkZjdmZjgwMCAoMzItYml0
LCBub24tcHJlZmV0Y2hhYmxlKSBbc2l6ZT0yNTZdCglDYXBhYmlsaXRpZXM6IFs4MF0gUG93ZXIg
TWFuYWdlbWVudCB2ZXJzaW9uIDIKCjAzOjAxLjMgU3lzdGVtIHBlcmlwaGVyYWw6IFJpY29oIENv
IEx0ZCBSNUM1OTIgTWVtb3J5IFN0aWNrIEJ1cyBIb3N0IEFkYXB0ZXIgKHJldiAwOCkKCVN1YnN5
c3RlbTogQVNVU1RlSyBDb21wdXRlciBJbmMuIFVua25vd24gZGV2aWNlIDEzNjcKCUZsYWdzOiBt
ZWRpdW0gZGV2c2VsLCBJUlEgNQoJTWVtb3J5IGF0IGRmN2ZmYzAwICgzMi1iaXQsIG5vbi1wcmVm
ZXRjaGFibGUpIFtzaXplPTI1Nl0KCUNhcGFiaWxpdGllczogWzgwXSBQb3dlciBNYW5hZ2VtZW50
IHZlcnNpb24gMgoKMDM6MDMuMCBOZXR3b3JrIGNvbnRyb2xsZXI6IEJyb2FkY29tIENvcnBvcmF0
aW9uIEJDTTQzMTggW0FpckZvcmNlIE9uZSA1NGddIDgwMi4xMWcgV2lyZWxlc3MgTEFOIENvbnRy
b2xsZXIgKHJldiAwMikKCVN1YnN5c3RlbTogQVNVU1RlSyBDb21wdXRlciBJbmMuIEE2VSBub3Rl
Ym9vayBlbWJlZGRlZCBjYXJkCglGbGFnczogYnVzIG1hc3RlciwgZmFzdCBkZXZzZWwsIGxhdGVu
Y3kgNjQsIElSUSAxMQoJTWVtb3J5IGF0IGRmN2ZjMDAwICgzMi1iaXQsIG5vbi1wcmVmZXRjaGFi
bGUpIFtzaXplPThLXQoK
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98076</attachid>
            <date>2006-09-25 15:39 0000</date>
            <desc>r8169-8168_2.6.18.patch - stolen from 2.6.18-rc6-mm1 patch</desc>
            <filename>r8169-8168_2.6.18.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIGxpbnV4LTIuNi4xOC1yYzYvZHJpdmVycy9uZXQvcjgxNjkuYwkyMDA2LTA5LTA0IDEzOjUw
OjUyLjAwMDAwMDAwMCAtMDcwMAorKysgZGV2ZWwvZHJpdmVycy9uZXQvcjgxNjkuYwkyMDA2LTA5
LTA4IDAwOjQ4OjQ0LjAwMDAwMDAwMCAtMDcwMApAQCAtNiwyNiArNiwyNiBAQAogIEhpc3Rvcnk6
CiAgRmViICA0IDIwMDIJLSBjcmVhdGVkIGluaXRpYWxseSBieSBTaHVDaGVuIDxzaHVjaGVuQHJl
YWx0ZWsuY29tLnR3Pi4KICBNYXkgMjAgMjAwMgktIEFkZCBsaW5rIHN0YXR1cyBmb3JjZS1tb2Rl
IGFuZCBUQkkgbW9kZSBzdXBwb3J0LgotICAgICAgICAyMDA0CS0gTWFzc2l2ZSB1cGRhdGVzLiBT
ZWUga2VybmVsIFNDTSBzeXN0ZW0gZm9yIGRldGFpbHMuCisJMjAwNAktIE1hc3NpdmUgdXBkYXRl
cy4gU2VlIGtlcm5lbCBTQ00gc3lzdGVtIGZvciBkZXRhaWxzLgogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog
ICAxLiBbREVQUkVDQVRFRDogdXNlIGV0aHRvb2wgaW5zdGVhZF0gVGhlIG1lZGlhIGNhbiBiZSBm
b3JjZWQgaW4gNSBtb2Rlcy4KIAkgQ29tbWFuZDogJ2luc21vZCByODE2OSBtZWRpYSA9IFNFVF9N
RURJQScKIAkgRXg6CSAgJ2luc21vZCByODE2OSBtZWRpYSA9IDB4MDQnIHdpbGwgZm9yY2UgUEhZ
IHRvIG9wZXJhdGUgaW4gMTAwTXBicyBIYWxmLWR1cGxleC4KLQkKKwogCSBTRVRfTUVESUEgY2Fu
IGJlOgogIAkJXzEwX0hhbGYJPSAweDAxCiAgCQlfMTBfRnVsbAk9IDB4MDIKICAJCV8xMDBfSGFs
Zgk9IDB4MDQKICAJCV8xMDBfRnVsbAk9IDB4MDgKICAJCV8xMDAwX0Z1bGwJPSAweDEwCi0gIAor
CiAgIDIuIFN1cHBvcnQgVEJJIG1vZGUuCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBWRVJTSU9OIDEuMQk8
MjAwMi8xMC80PgogCiAJVGhlIGJpdDQ6MCBvZiBNSUkgcmVnaXN0ZXIgNCBpcyBjYWxsZWQgInNl
bGVjdG9yIGZpZWxkIiwgYW5kIGhhdmUgdG8gYmUKIAkwMDAwMWIgdG8gaW5kaWNhdGUgc3VwcG9y
dCBvZiBJRUVFIHN0ZCA4MDIuMyBkdXJpbmcgTldheSBwcm9jZXNzIG9mCi0JZXhjaGFuZ2luZyBM
aW5rIENvZGUgV29yZCAoRkxQKS4gCisJZXhjaGFuZ2luZyBMaW5rIENvZGUgV29yZCAoRkxQKS4K
IAogVkVSU0lPTiAxLjIJPDIwMDIvMTEvMzA+CiAKQEAgLTgxLDEwICs4MSwxMCBAQCBWRVJTSU9O
IDIuMkxLCTwyMDA1LzAxLzI1PgogCiAjaWZkZWYgUlRMODE2OV9ERUJVRwogI2RlZmluZSBhc3Nl
cnQoZXhwcikgXAotICAgICAgICBpZighKGV4cHIpKSB7CQkJCQlcCi0JICAgICAgICBwcmludGso
ICJBc3NlcnRpb24gZmFpbGVkISAlcywlcywlcyxsaW5lPSVkXG4iLAlcCi0gICAgICAgIAkjZXhw
cixfX0ZJTEVfXyxfX0ZVTkNUSU9OX18sX19MSU5FX18pOwkJXAotICAgICAgICB9CisJaWYgKCEo
ZXhwcikpIHsJCQkJCVwKKwkJcHJpbnRrKCAiQXNzZXJ0aW9uIGZhaWxlZCEgJXMsJXMsJXMsbGlu
ZT0lZFxuIiwJXAorCQkjZXhwcixfX0ZJTEVfXyxfX0ZVTkNUSU9OX18sX19MSU5FX18pOwkJXAor
CX0KICNkZWZpbmUgZHByaW50ayhmbXQsIGFyZ3MuLi4pCWRvIHsgcHJpbnRrKFBGWCBmbXQsICMj
IGFyZ3MpOyB9IHdoaWxlICgwKQogI2Vsc2UKICNkZWZpbmUgYXNzZXJ0KGV4cHIpIGRvIHt9IHdo
aWxlICgwKQpAQCAtMTUwLDExICsxNTAsMTYgQEAgc3RhdGljIGNvbnN0IGludCBtdWx0aWNhc3Rf
ZmlsdGVyX2xpbWl0IAogI2RlZmluZSBSVExfUjMyKHJlZykJCSgodW5zaWduZWQgbG9uZykgcmVh
ZGwgKGlvYWRkciArIChyZWcpKSkKIAogZW51bSBtYWNfdmVyc2lvbiB7Ci0JUlRMX0dJR0FfTUFD
X1ZFUl9CID0gMHgwMCwKLQkvKiBSVExfR0lHQV9NQUNfVkVSX0MgPSAweDAzLCAqLwotCVJUTF9H
SUdBX01BQ19WRVJfRCA9IDB4MDEsCi0JUlRMX0dJR0FfTUFDX1ZFUl9FID0gMHgwMiwKLQlSVExf
R0lHQV9NQUNfVkVSX1ggPSAweDA0CS8qIEdyZWF0ZXIgdGhhbiBSVExfR0lHQV9NQUNfVkVSX0Ug
Ki8KKwlSVExfR0lHQV9NQUNfVkVSXzAxID0gMHgwMCwKKwlSVExfR0lHQV9NQUNfVkVSXzAyID0g
MHgwMSwKKwlSVExfR0lHQV9NQUNfVkVSXzAzID0gMHgwMiwKKwlSVExfR0lHQV9NQUNfVkVSXzA0
ID0gMHgwMywKKwlSVExfR0lHQV9NQUNfVkVSXzA1ID0gMHgwNCwKKwlSVExfR0lHQV9NQUNfVkVS
XzExID0gMHgwYiwKKwlSVExfR0lHQV9NQUNfVkVSXzEyID0gMHgwYywKKwlSVExfR0lHQV9NQUNf
VkVSXzEzID0gMHgwZCwKKwlSVExfR0lHQV9NQUNfVkVSXzE0ID0gMHgwZSwKKwlSVExfR0lHQV9N
QUNfVkVSXzE1ID0gMHgwZgogfTsKIAogZW51bSBwaHlfdmVyc2lvbiB7CkBAIC0xNjYsNyArMTcx
LDYgQEAgZW51bSBwaHlfdmVyc2lvbiB7CiAJUlRMX0dJR0FfUEhZX1ZFUl9IID0gMHgwOCwgLyog
UEhZIFJlZyAweDAzIGJpdDAtMyA9PSAweDAwMDMgKi8KIH07CiAKLQogI2RlZmluZSBfUihOQU1F
LE1BQyxNQVNLKSBcCiAJeyAubmFtZSA9IE5BTUUsIC5tYWNfdmVyc2lvbiA9IE1BQywgLlJ4Q29u
ZmlnTWFzayA9IE1BU0sgfQogCkBAIC0xNzUsMTkgKzE3OSw0NCBAQCBzdGF0aWMgY29uc3Qgc3Ry
dWN0IHsKIAl1OCBtYWNfdmVyc2lvbjsKIAl1MzIgUnhDb25maWdNYXNrOwkvKiBDbGVhcnMgdGhl
IGJpdHMgc3VwcG9ydGVkIGJ5IHRoaXMgY2hpcCAqLwogfSBydGxfY2hpcF9pbmZvW10gPSB7Ci0J
X1IoIlJUTDgxNjkiLAkJUlRMX0dJR0FfTUFDX1ZFUl9CLCAweGZmN2UxODgwKSwKLQlfUigiUlRM
ODE2OXMvODExMHMiLAlSVExfR0lHQV9NQUNfVkVSX0QsIDB4ZmY3ZTE4ODApLAotCV9SKCJSVEw4
MTY5cy84MTEwcyIsCVJUTF9HSUdBX01BQ19WRVJfRSwgMHhmZjdlMTg4MCksCi0JX1IoIlJUTDgx
NjlzLzgxMTBzIiwJUlRMX0dJR0FfTUFDX1ZFUl9YLCAweGZmN2UxODgwKSwKKwlfUigiUlRMODE2
OSIsCQlSVExfR0lHQV9NQUNfVkVSXzAxLCAweGZmN2UxODgwKSwKKwlfUigiUlRMODE2OXMvODEx
MHMiLAlSVExfR0lHQV9NQUNfVkVSXzAyLCAweGZmN2UxODgwKSwKKwlfUigiUlRMODE2OXMvODEx
MHMiLAlSVExfR0lHQV9NQUNfVkVSXzAzLCAweGZmN2UxODgwKSwKKwlfUigiUlRMODE2OXNiLzgx
MTBzYiIsCVJUTF9HSUdBX01BQ19WRVJfMDQsIDB4ZmY3ZTE4ODApLAorCV9SKCJSVEw4MTY5c2Mv
ODExMHNjIiwJUlRMX0dJR0FfTUFDX1ZFUl8wNSwgMHhmZjdlMTg4MCksCisJX1IoIlJUTDgxNjhi
LzgxMTFiIiwJUlRMX0dJR0FfTUFDX1ZFUl8xMSwgMHhmZjdlMTg4MCksIC8vIFBDSS1FCisJX1Io
IlJUTDgxNjhiLzgxMTFiIiwJUlRMX0dJR0FfTUFDX1ZFUl8xMiwgMHhmZjdlMTg4MCksIC8vIFBD
SS1FCisJX1IoIlJUTDgxMDFlIiwJCVJUTF9HSUdBX01BQ19WRVJfMTMsIDB4ZmY3ZTE4ODApLCAv
LyBQQ0ktRSA4MTM5CisJX1IoIlJUTDgxMDBlIiwJCVJUTF9HSUdBX01BQ19WRVJfMTQsIDB4ZmY3
ZTE4ODApLCAvLyBQQ0ktRSA4MTM5CisJX1IoIlJUTDgxMDBlIiwJCVJUTF9HSUdBX01BQ19WRVJf
MTUsIDB4ZmY3ZTE4ODApICAvLyBQQ0ktRSA4MTM5CiB9OwogI3VuZGVmIF9SCiAKK2VudW0gY2Zn
X3ZlcnNpb24geworCVJUTF9DRkdfMCA9IDB4MDAsCisJUlRMX0NGR18xLAorCVJUTF9DRkdfMgor
fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB7CisJdW5zaWduZWQgaW50IHJlZ2lvbjsKKwl1bnNp
Z25lZCBpbnQgYWxpZ247Cit9IHJ0bF9jZmdfaW5mb1tdID0geworCVtSVExfQ0ZHXzBdID0geyAx
LCBORVRfSVBfQUxJR04gfSwKKwlbUlRMX0NGR18xXSA9IHsgMiwgTkVUX0lQX0FMSUdOIH0sCisJ
W1JUTF9DRkdfMl0gPSB7IDIsIDggfQorfTsKKwogc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lk
IHJ0bDgxNjlfcGNpX3RibFtdID0gewotCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1JFQUxU
RUssCTB4ODE2OSksIH0sCi0JeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUkVBTFRFSywJMHg4
MTI5KSwgfSwKLQl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9ETElOSywJMHg0MzAwKSwgfSwK
LQl7IFBDSV9ERVZJQ0UoMHgxNmVjLAkJCTB4MDExNiksIH0sCi0JeyBQQ0lfVkVORE9SX0lEX0xJ
TktTWVMsCQkweDEwMzIsIFBDSV9BTllfSUQsIDB4MDAyNCwgfSwKKwl7IFBDSV9ERVZJQ0UoUENJ
X1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxMjkpLCAwLCAwLCBSVExfQ0ZHXzAgfSwKKwl7IFBDSV9E
RVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxMzYpLCAwLCAwLCBSVExfQ0ZHXzIgfSwK
Kwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxNjcpLCAwLCAwLCBSVExf
Q0ZHXzEgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxNjgpLCAw
LCAwLCBSVExfQ0ZHXzIgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkw
eDgxNjkpLCAwLCAwLCBSVExfQ0ZHXzAgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9E
TElOSywJMHg0MzAwKSwgMCwgMCwgUlRMX0NGR18wIH0sCisJeyBQQ0lfREVWSUNFKDB4MTZlYywJ
CQkweDAxMTYpLCAwLCAwLCBSVExfQ0ZHXzAgfSwKKwl7IFBDSV9WRU5ET1JfSURfTElOS1NZUywJ
CTB4MTAzMiwKKwkJUENJX0FOWV9JRCwgMHgwMDI0LCAwLCAwLCBSVExfQ0ZHXzAgfSwKIAl7MCx9
LAogfTsKIApAQCAtMjU3LDEwICsyODYsMTEgQEAgZW51bSBSVEw4MTY5X3JlZ2lzdGVyX2NvbnRl
bnQgewogCVJ4T0sgPSAweDAxLAogCiAJLyogUnhTdGF0dXNEZXNjICovCi0JUnhSRVMgPSAweDAw
MjAwMDAwLAotCVJ4Q1JDID0gMHgwMDA4MDAwMCwKLQlSeFJVTlQgPSAweDAwMTAwMDAwLAotCVJ4
UldUID0gMHgwMDQwMDAwMCwKKwlSeEZPVkYJPSAoMSA8PCAyMyksCisJUnhSV1QJPSAoMSA8PCAy
MiksCisJUnhSRVMJPSAoMSA8PCAyMSksCisJUnhSVU5UCT0gKDEgPDwgMjApLAorCVJ4Q1JDCT0g
KDEgPDwgMTkpLAogCiAJLyogQ2hpcENtZEJpdHMgKi8KIAlDbWRSZXNldCA9IDB4MTAsCkBAIC0z
MjYsMzAgKzM1Niw2IEBAIGVudW0gUlRMODE2OV9yZWdpc3Rlcl9jb250ZW50IHsKIAlMaW5rU3Rh
dHVzID0gMHgwMiwKIAlGdWxsRHVwID0gMHgwMSwKIAotCS8qIEdJR0FCSVRfUEhZX3JlZ2lzdGVy
cyAqLwotCVBIWV9DVFJMX1JFRyA9IDAsCi0JUEhZX1NUQVRfUkVHID0gMSwKLQlQSFlfQVVUT19O
RUdPX1JFRyA9IDQsCi0JUEhZXzEwMDBfQ1RSTF9SRUcgPSA5LAotCi0JLyogR0lHQUJJVF9QSFlf
UkVHX0JJVCAqLwotCVBIWV9SZXN0YXJ0X0F1dG9fTmVnbyA9IDB4MDIwMCwKLQlQSFlfRW5hYmxl
X0F1dG9fTmVnbyA9IDB4MTAwMCwKLQotCS8qIFBIWV9TVEFUX1JFRyA9IDEgKi8KLQlQSFlfQXV0
b19OZWNvX0NvbXAgPSAweDAwMjAsCi0KLQkvKiBQSFlfQVVUT19ORUdPX1JFRyA9IDQgKi8KLQlQ
SFlfQ2FwXzEwX0hhbGYgPSAweDAwMjAsCi0JUEhZX0NhcF8xMF9GdWxsID0gMHgwMDQwLAotCVBI
WV9DYXBfMTAwX0hhbGYgPSAweDAwODAsCi0JUEhZX0NhcF8xMDBfRnVsbCA9IDB4MDEwMCwKLQot
CS8qIFBIWV8xMDAwX0NUUkxfUkVHID0gOSAqLwotCVBIWV9DYXBfMTAwMF9GdWxsID0gMHgwMjAw
LAotCi0JUEhZX0NhcF9OdWxsID0gMHgwLAotCiAJLyogX01lZGlhVHlwZSAqLwogCV8xMF9IYWxm
ID0gMHgwMSwKIAlfMTBfRnVsbCA9IDB4MDIsCkBAIC00MzMsNiArNDM5LDcgQEAgc3RydWN0IHJ0
bDgxNjlfcHJpdmF0ZSB7CiAJZG1hX2FkZHJfdCBSeFBoeUFkZHI7CiAJc3RydWN0IHNrX2J1ZmYg
KlJ4X3NrYnVmZltOVU1fUlhfREVTQ107CS8qIFJ4IGRhdGEgYnVmZmVycyAqLwogCXN0cnVjdCBy
aW5nX2luZm8gdHhfc2tiW05VTV9UWF9ERVNDXTsJLyogVHggZGF0YSBidWZmZXJzICovCisJdW5z
aWduZWQgYWxpZ247CiAJdW5zaWduZWQgcnhfYnVmX3N6OwogCXN0cnVjdCB0aW1lcl9saXN0IHRp
bWVyOwogCXUxNiBjcF9jbWQ7CkBAIC00ODgsMTIgKzQ5NSw3IEBAIHN0YXRpYyBjb25zdCB1MTYg
cnRsODE2OV9pbnRyX21hc2sgPQogc3RhdGljIGNvbnN0IHUxNiBydGw4MTY5X25hcGlfZXZlbnQg
PQogCVJ4T0sgfCBSeE92ZXJmbG93IHwgUnhGSUZPT3ZlciB8IFR4T0sgfCBUeEVycjsKIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBpbnQgcnRsODE2OV9yeF9jb25maWcgPQotICAgIChSWF9GSUZPX1RI
UkVTSCA8PCBSeENmZ0ZJRk9TaGlmdCkgfCAoUlhfRE1BX0JVUlNUIDw8IFJ4Q2ZnRE1BU2hpZnQp
OwotCi0jZGVmaW5lIFBIWV9DYXBfMTBfSGFsZl9Pcl9MZXNzIFBIWV9DYXBfMTBfSGFsZgotI2Rl
ZmluZSBQSFlfQ2FwXzEwX0Z1bGxfT3JfTGVzcyBQSFlfQ2FwXzEwX0Z1bGwgfCBQSFlfQ2FwXzEw
X0hhbGZfT3JfTGVzcwotI2RlZmluZSBQSFlfQ2FwXzEwMF9IYWxmX09yX0xlc3MgUEhZX0NhcF8x
MDBfSGFsZiB8IFBIWV9DYXBfMTBfRnVsbF9Pcl9MZXNzCi0jZGVmaW5lIFBIWV9DYXBfMTAwX0Z1
bGxfT3JfTGVzcyBQSFlfQ2FwXzEwMF9GdWxsIHwgUEhZX0NhcF8xMDBfSGFsZl9Pcl9MZXNzCisJ
KFJYX0ZJRk9fVEhSRVNIIDw8IFJ4Q2ZnRklGT1NoaWZ0KSB8IChSWF9ETUFfQlVSU1QgPDwgUnhD
ZmdETUFTaGlmdCk7CiAKIHN0YXRpYyB2b2lkIG1kaW9fd3JpdGUodm9pZCBfX2lvbWVtICppb2Fk
ZHIsIGludCBSZWdBZGRyLCBpbnQgdmFsdWUpCiB7CkBAIC01MDMsNyArNTA1LDcgQEAgc3RhdGlj
IHZvaWQgbWRpb193cml0ZSh2b2lkIF9faW9tZW0gKmlvYQogCiAJZm9yIChpID0gMjA7IGkgPiAw
OyBpLS0pIHsKIAkJLyogQ2hlY2sgaWYgdGhlIFJUTDgxNjkgaGFzIGNvbXBsZXRlZCB3cml0aW5n
IHRvIHRoZSBzcGVjaWZpZWQgTUlJIHJlZ2lzdGVyICovCi0JCWlmICghKFJUTF9SMzIoUEhZQVIp
ICYgMHg4MDAwMDAwMCkpIAorCQlpZiAoIShSVExfUjMyKFBIWUFSKSAmIDB4ODAwMDAwMDApKQog
CQkJYnJlYWs7CiAJCXVkZWxheSgyNSk7CiAJfQpAQCAtNTQ3LDcgKzU0OSw3IEBAIHN0YXRpYyB1
bnNpZ25lZCBpbnQgcnRsODE2OV90YmlfcmVzZXRfcGUKIAogc3RhdGljIHVuc2lnbmVkIGludCBy
dGw4MTY5X3htaWlfcmVzZXRfcGVuZGluZyh2b2lkIF9faW9tZW0gKmlvYWRkcikKIHsKLQlyZXR1
cm4gbWRpb19yZWFkKGlvYWRkciwgMCkgJiAweDgwMDA7CisJcmV0dXJuIG1kaW9fcmVhZChpb2Fk
ZHIsIE1JSV9CTUNSKSAmIEJNQ1JfUkVTRVQ7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgcnRs
ODE2OV90YmlfbGlua19vayh2b2lkIF9faW9tZW0gKmlvYWRkcikKQEAgLTU2OSw4ICs1NzEsOCBA
QCBzdGF0aWMgdm9pZCBydGw4MTY5X3htaWlfcmVzZXRfZW5hYmxlKHZvCiB7CiAJdW5zaWduZWQg
aW50IHZhbDsKIAotCXZhbCA9IChtZGlvX3JlYWQoaW9hZGRyLCBQSFlfQ1RSTF9SRUcpIHwgMHg4
MDAwKSAmIDB4ZmZmZjsKLQltZGlvX3dyaXRlKGlvYWRkciwgUEhZX0NUUkxfUkVHLCB2YWwpOwor
CXZhbCA9IChtZGlvX3JlYWQoaW9hZGRyLCBNSUlfQk1DUikgfCBCTUNSX1JFU0VUKSAmIDB4ZmZm
ZjsKKwltZGlvX3dyaXRlKGlvYWRkciwgTUlJX0JNQ1IsIHZhbCk7CiB9CiAKIHN0YXRpYyB2b2lk
IHJ0bDgxNjlfY2hlY2tfbGlua19zdGF0dXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKQEAgLTYw
OCw3ICs2MTAsNyBAQCBzdGF0aWMgdm9pZCBydGw4MTY5X2xpbmtfb3B0aW9uKGludCBpZHgsCiAJ
CXsgU1BFRURfMTAwMCwJRFVQTEVYX0ZVTEwsIEFVVE9ORUdfRU5BQkxFLAkweGZmIH0KIAl9LCAq
cDsKIAl1bnNpZ25lZCBjaGFyIG9wdGlvbjsKLQkKKwogCW9wdGlvbiA9ICgoaWR4IDwgTUFYX1VO
SVRTKSAmJiAoaWR4ID49IDApKSA/IG1lZGlhW2lkeF0gOiAweGZmOwogCiAJaWYgKChvcHRpb24g
IT0gMHhmZikgJiYgIWlkeCAmJiBuZXRpZl9tc2dfZHJ2KCZkZWJ1ZykpCkBAIC02NTAsOSArNjUy
LDkgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9nZXRfd29sKHN0cnVjdCBuZXRfZAogCWlmIChvcHRp
b25zICYgVVdGKQogCQl3b2wtPndvbG9wdHMgfD0gV0FLRV9VQ0FTVDsKIAlpZiAob3B0aW9ucyAm
IEJXRikKLQkgICAgICAgIHdvbC0+d29sb3B0cyB8PSBXQUtFX0JDQVNUOworCQl3b2wtPndvbG9w
dHMgfD0gV0FLRV9CQ0FTVDsKIAlpZiAob3B0aW9ucyAmIE1XRikKLQkgICAgICAgIHdvbC0+d29s
b3B0cyB8PSBXQUtFX01DQVNUOworCQl3b2wtPndvbG9wdHMgfD0gV0FLRV9NQ0FTVDsKIAogb3V0
X3VubG9jazoKIAlzcGluX3VubG9ja19pcnEoJnRwLT5sb2NrKTsKQEAgLTc0NSwzOCArNzQ3LDU3
IEBAIHN0YXRpYyBpbnQgcnRsODE2OV9zZXRfc3BlZWRfeG1paShzdHJ1Y3QKIAl2b2lkIF9faW9t
ZW0gKmlvYWRkciA9IHRwLT5tbWlvX2FkZHI7CiAJaW50IGF1dG9fbmVnbywgZ2lnYV9jdHJsOwog
Ci0JYXV0b19uZWdvID0gbWRpb19yZWFkKGlvYWRkciwgUEhZX0FVVE9fTkVHT19SRUcpOwotCWF1
dG9fbmVnbyAmPSB+KFBIWV9DYXBfMTBfSGFsZiB8IFBIWV9DYXBfMTBfRnVsbCB8Ci0JCSAgICAg
ICBQSFlfQ2FwXzEwMF9IYWxmIHwgUEhZX0NhcF8xMDBfRnVsbCk7Ci0JZ2lnYV9jdHJsID0gbWRp
b19yZWFkKGlvYWRkciwgUEhZXzEwMDBfQ1RSTF9SRUcpOwotCWdpZ2FfY3RybCAmPSB+KFBIWV9D
YXBfMTAwMF9GdWxsIHwgUEhZX0NhcF9OdWxsKTsKKwlhdXRvX25lZ28gPSBtZGlvX3JlYWQoaW9h
ZGRyLCBNSUlfQURWRVJUSVNFKTsKKwlhdXRvX25lZ28gJj0gfihBRFZFUlRJU0VfMTBIQUxGIHwg
QURWRVJUSVNFXzEwRlVMTCB8CisJCSAgICAgICBBRFZFUlRJU0VfMTAwSEFMRiB8IEFEVkVSVElT
RV8xMDBGVUxMKTsKKwlnaWdhX2N0cmwgPSBtZGlvX3JlYWQoaW9hZGRyLCBNSUlfQ1RSTDEwMDAp
OworCWdpZ2FfY3RybCAmPSB+KEFEVkVSVElTRV8xMDAwRlVMTCB8IEFEVkVSVElTRV8xMDAwSEFM
Rik7CiAKIAlpZiAoYXV0b25lZyA9PSBBVVRPTkVHX0VOQUJMRSkgewotCQlhdXRvX25lZ28gfD0g
KFBIWV9DYXBfMTBfSGFsZiB8IFBIWV9DYXBfMTBfRnVsbCB8Ci0JCQkgICAgICBQSFlfQ2FwXzEw
MF9IYWxmIHwgUEhZX0NhcF8xMDBfRnVsbCk7Ci0JCWdpZ2FfY3RybCB8PSBQSFlfQ2FwXzEwMDBf
RnVsbDsKKwkJYXV0b19uZWdvIHw9IChBRFZFUlRJU0VfMTBIQUxGIHwgQURWRVJUSVNFXzEwRlVM
TCB8CisJCQkgICAgICBBRFZFUlRJU0VfMTAwSEFMRiB8IEFEVkVSVElTRV8xMDBGVUxMKTsKKwkJ
Z2lnYV9jdHJsIHw9IEFEVkVSVElTRV8xMDAwRlVMTCB8IEFEVkVSVElTRV8xMDAwSEFMRjsKIAl9
IGVsc2UgewogCQlpZiAoc3BlZWQgPT0gU1BFRURfMTApCi0JCQlhdXRvX25lZ28gfD0gUEhZX0Nh
cF8xMF9IYWxmIHwgUEhZX0NhcF8xMF9GdWxsOworCQkJYXV0b19uZWdvIHw9IEFEVkVSVElTRV8x
MEhBTEYgfCBBRFZFUlRJU0VfMTBGVUxMOwogCQllbHNlIGlmIChzcGVlZCA9PSBTUEVFRF8xMDAp
Ci0JCQlhdXRvX25lZ28gfD0gUEhZX0NhcF8xMDBfSGFsZiB8IFBIWV9DYXBfMTAwX0Z1bGw7CisJ
CQlhdXRvX25lZ28gfD0gQURWRVJUSVNFXzEwMEhBTEYgfCBBRFZFUlRJU0VfMTAwRlVMTDsKIAkJ
ZWxzZSBpZiAoc3BlZWQgPT0gU1BFRURfMTAwMCkKLQkJCWdpZ2FfY3RybCB8PSBQSFlfQ2FwXzEw
MDBfRnVsbDsKKwkJCWdpZ2FfY3RybCB8PSBBRFZFUlRJU0VfMTAwMEZVTEwgfCBBRFZFUlRJU0Vf
MTAwMEhBTEY7CiAKIAkJaWYgKGR1cGxleCA9PSBEVVBMRVhfSEFMRikKLQkJCWF1dG9fbmVnbyAm
PSB+KFBIWV9DYXBfMTBfRnVsbCB8IFBIWV9DYXBfMTAwX0Z1bGwpOworCQkJYXV0b19uZWdvICY9
IH4oQURWRVJUSVNFXzEwRlVMTCB8IEFEVkVSVElTRV8xMDBGVUxMKTsKIAogCQlpZiAoZHVwbGV4
ID09IERVUExFWF9GVUxMKQotCQkJYXV0b19uZWdvICY9IH4oUEhZX0NhcF8xMF9IYWxmIHwgUEhZ
X0NhcF8xMDBfSGFsZik7CisJCQlhdXRvX25lZ28gJj0gfihBRFZFUlRJU0VfMTBIQUxGIHwgQURW
RVJUSVNFXzEwMEhBTEYpOworCisJCS8qIFRoaXMgdHdlYWsgY29tZXMgc3RyYWlnaHQgZnJvbSBS
ZWFsdGVrJ3MgZHJpdmVyLiAqLworCQlpZiAoKHNwZWVkID09IFNQRUVEXzEwMCkgJiYgKGR1cGxl
eCA9PSBEVVBMRVhfSEFMRikgJiYKKwkJICAgICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0Ff
TUFDX1ZFUl8xMykpIHsKKwkJCWF1dG9fbmVnbyA9IEFEVkVSVElTRV8xMDBIQUxGIHwgQURWRVJU
SVNFX0NTTUE7CisJCX0KIAl9CiAKKwkvKiBUaGUgODEwMGUvODEwMWUgZG8gRmFzdCBFdGhlcm5l
dCBvbmx5LiAqLworCWlmICgodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfMTMp
IHx8CisJICAgICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZFUl8xNCkgfHwKKwkg
ICAgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzE1KSkgeworCQlpZiAoKGdp
Z2FfY3RybCAmIChBRFZFUlRJU0VfMTAwMEZVTEwgfCBBRFZFUlRJU0VfMTAwMEhBTEYpKSAmJgor
CQkgICAgbmV0aWZfbXNnX2xpbmsodHApKSB7CisJCQlwcmludGsoS0VSTl9JTkZPICIlczogUEhZ
IGRvZXMgbm90IHN1cHBvcnQgMTAwME1icHMuXG4iLAorCQkJICAgICAgIGRldi0+bmFtZSk7CisJ
CX0KKwkJZ2lnYV9jdHJsICY9IH4oQURWRVJUSVNFXzEwMDBGVUxMIHwgQURWRVJUSVNFXzEwMDBI
QUxGKTsKKwl9CisKKwlhdXRvX25lZ28gfD0gQURWRVJUSVNFX1BBVVNFX0NBUCB8IEFEVkVSVElT
RV9QQVVTRV9BU1lNOworCiAJdHAtPnBoeV9hdXRvX25lZ29fcmVnID0gYXV0b19uZWdvOwogCXRw
LT5waHlfMTAwMF9jdHJsX3JlZyA9IGdpZ2FfY3RybDsKIAotCW1kaW9fd3JpdGUoaW9hZGRyLCBQ
SFlfQVVUT19ORUdPX1JFRywgYXV0b19uZWdvKTsKLQltZGlvX3dyaXRlKGlvYWRkciwgUEhZXzEw
MDBfQ1RSTF9SRUcsIGdpZ2FfY3RybCk7Ci0JbWRpb193cml0ZShpb2FkZHIsIFBIWV9DVFJMX1JF
RywgUEhZX0VuYWJsZV9BdXRvX05lZ28gfAotCQkJCQkgUEhZX1Jlc3RhcnRfQXV0b19OZWdvKTsK
KwltZGlvX3dyaXRlKGlvYWRkciwgTUlJX0FEVkVSVElTRSwgYXV0b19uZWdvKTsKKwltZGlvX3dy
aXRlKGlvYWRkciwgTUlJX0NUUkwxMDAwLCBnaWdhX2N0cmwpOworCW1kaW9fd3JpdGUoaW9hZGRy
LCBNSUlfQk1DUiwgQk1DUl9BTkVOQUJMRSB8IEJNQ1JfQU5SRVNUQVJUKTsKIAlyZXR1cm4gMDsK
IH0KIApAQCAtNzg4LDcgKzgwOSw3IEBAIHN0YXRpYyBpbnQgcnRsODE2OV9zZXRfc3BlZWQoc3Ry
dWN0IG5ldF8KIAogCXJldCA9IHRwLT5zZXRfc3BlZWQoZGV2LCBhdXRvbmVnLCBzcGVlZCwgZHVw
bGV4KTsKIAotCWlmIChuZXRpZl9ydW5uaW5nKGRldikgJiYgKHRwLT5waHlfMTAwMF9jdHJsX3Jl
ZyAmIFBIWV9DYXBfMTAwMF9GdWxsKSkKKwlpZiAobmV0aWZfcnVubmluZyhkZXYpICYmICh0cC0+
cGh5XzEwMDBfY3RybF9yZWcgJiBBRFZFUlRJU0VfMTAwMEZVTEwpKQogCQltb2RfdGltZXIoJnRw
LT50aW1lciwgamlmZmllcyArIFJUTDgxNjlfUEhZX1RJTUVPVVQpOwogCiAJcmV0dXJuIHJldDsK
QEAgLTgwMyw3ICs4MjQsNyBAQCBzdGF0aWMgaW50IHJ0bDgxNjlfc2V0X3NldHRpbmdzKHN0cnVj
dCBuCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnRwLT5sb2NrLCBmbGFncyk7CiAJcmV0ID0gcnRsODE2
OV9zZXRfc3BlZWQoZGV2LCBjbWQtPmF1dG9uZWcsIGNtZC0+c3BlZWQsIGNtZC0+ZHVwbGV4KTsK
IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0cC0+bG9jaywgZmxhZ3MpOwotCQorCiAJcmV0dXJu
IHJldDsKIH0KIApAQCAtOTM2LDIwICs5NTcsMjAgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9nc2V0
X3htaWkoc3RydWN0IG5ldAogCQkJIFNVUFBPUlRFRF8xMDBiYXNlVF9GdWxsIHwKIAkJCSBTVVBQ
T1JURURfMTAwMGJhc2VUX0Z1bGwgfAogCQkJIFNVUFBPUlRFRF9BdXRvbmVnIHwKLQkJICAgICAg
ICAgU1VQUE9SVEVEX1RQOworCQkJIFNVUFBPUlRFRF9UUDsKIAogCWNtZC0+YXV0b25lZyA9IDE7
CiAJY21kLT5hZHZlcnRpc2luZyA9IEFEVkVSVElTRURfVFAgfCBBRFZFUlRJU0VEX0F1dG9uZWc7
CiAKLQlpZiAodHAtPnBoeV9hdXRvX25lZ29fcmVnICYgUEhZX0NhcF8xMF9IYWxmKQorCWlmICh0
cC0+cGh5X2F1dG9fbmVnb19yZWcgJiBBRFZFUlRJU0VfMTBIQUxGKQogCQljbWQtPmFkdmVydGlz
aW5nIHw9IEFEVkVSVElTRURfMTBiYXNlVF9IYWxmOwotCWlmICh0cC0+cGh5X2F1dG9fbmVnb19y
ZWcgJiBQSFlfQ2FwXzEwX0Z1bGwpCisJaWYgKHRwLT5waHlfYXV0b19uZWdvX3JlZyAmIEFEVkVS
VElTRV8xMEZVTEwpCiAJCWNtZC0+YWR2ZXJ0aXNpbmcgfD0gQURWRVJUSVNFRF8xMGJhc2VUX0Z1
bGw7Ci0JaWYgKHRwLT5waHlfYXV0b19uZWdvX3JlZyAmIFBIWV9DYXBfMTAwX0hhbGYpCisJaWYg
KHRwLT5waHlfYXV0b19uZWdvX3JlZyAmIEFEVkVSVElTRV8xMDBIQUxGKQogCQljbWQtPmFkdmVy
dGlzaW5nIHw9IEFEVkVSVElTRURfMTAwYmFzZVRfSGFsZjsKLQlpZiAodHAtPnBoeV9hdXRvX25l
Z29fcmVnICYgUEhZX0NhcF8xMDBfRnVsbCkKKwlpZiAodHAtPnBoeV9hdXRvX25lZ29fcmVnICYg
QURWRVJUSVNFXzEwMEZVTEwpCiAJCWNtZC0+YWR2ZXJ0aXNpbmcgfD0gQURWRVJUSVNFRF8xMDBi
YXNlVF9GdWxsOwotCWlmICh0cC0+cGh5XzEwMDBfY3RybF9yZWcgJiBQSFlfQ2FwXzEwMDBfRnVs
bCkKKwlpZiAodHAtPnBoeV8xMDAwX2N0cmxfcmVnICYgQURWRVJUSVNFXzEwMDBGVUxMKQogCQlj
bWQtPmFkdmVydGlzaW5nIHw9IEFEVkVSVElTRURfMTAwMGJhc2VUX0Z1bGw7CiAKIAlzdGF0dXMg
PSBSVExfUjgoUEhZc3RhdHVzKTsKQEAgLTk2MSw2ICs5ODIsMTEgQEAgc3RhdGljIHZvaWQgcnRs
ODE2OV9nc2V0X3htaWkoc3RydWN0IG5ldAogCWVsc2UgaWYgKHN0YXR1cyAmIF8xMGJwcykKIAkJ
Y21kLT5zcGVlZCA9IFNQRUVEXzEwOwogCisJaWYgKHN0YXR1cyAmIFR4Rmxvd0N0cmwpCisJCWNt
ZC0+YWR2ZXJ0aXNpbmcgfD0gQURWRVJUSVNFRF9Bc3ltX1BhdXNlOworCWlmIChzdGF0dXMgJiBS
eEZsb3dDdHJsKQorCQljbWQtPmFkdmVydGlzaW5nIHw9IEFEVkVSVElTRURfUGF1c2U7CisKIAlj
bWQtPmR1cGxleCA9ICgoc3RhdHVzICYgXzEwMDBicHNGKSB8fCAoc3RhdHVzICYgRnVsbER1cCkp
ID8KIAkJICAgICAgRFVQTEVYX0ZVTEwgOiBEVVBMRVhfSEFMRjsKIH0KQEAgLTk4MSwxNSArMTAw
NywxNSBAQCBzdGF0aWMgaW50IHJ0bDgxNjlfZ2V0X3NldHRpbmdzKHN0cnVjdCBuCiBzdGF0aWMg
dm9pZCBydGw4MTY5X2dldF9yZWdzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0
b29sX3JlZ3MgKnJlZ3MsCiAJCQkgICAgIHZvaWQgKnApCiB7Ci0gICAgICAgIHN0cnVjdCBydGw4
MTY5X3ByaXZhdGUgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsKLSAgICAgICAgdW5zaWduZWQgbG9u
ZyBmbGFnczsKKwlzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCA9IG5ldGRldl9wcml2KGRldik7
CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotICAgICAgICBpZiAocmVncy0+bGVuID4gUjgxNjlf
UkVHU19TSVpFKQotICAgICAgICAJcmVncy0+bGVuID0gUjgxNjlfUkVHU19TSVpFOworCWlmIChy
ZWdzLT5sZW4gPiBSODE2OV9SRUdTX1NJWkUpCisJCXJlZ3MtPmxlbiA9IFI4MTY5X1JFR1NfU0la
RTsKIAotICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmdHAtPmxvY2ssIGZsYWdzKTsKLSAgICAg
ICAgbWVtY3B5X2Zyb21pbyhwLCB0cC0+bW1pb19hZGRyLCByZWdzLT5sZW4pOwotICAgICAgICBz
cGluX3VubG9ja19pcnFyZXN0b3JlKCZ0cC0+bG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFz
YXZlKCZ0cC0+bG9jaywgZmxhZ3MpOworCW1lbWNweV9mcm9taW8ocCwgdHAtPm1taW9fYWRkciwg
cmVncy0+bGVuKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0cC0+bG9jaywgZmxhZ3MpOwog
fQogCiBzdGF0aWMgdTMyIHJ0bDgxNjlfZ2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpk
ZXYpCkBAIC0xMDcxLDcgKzEwOTcsNyBAQCBzdGF0aWMgdm9pZCBydGw4MTY5X2dldF9ldGh0b29s
X3N0YXRzKHN0CiAJUlRMX1czMihDb3VudGVyQWRkckxvdywgMCk7CiAJUlRMX1czMihDb3VudGVy
QWRkckhpZ2gsIDApOwogCi0JZGF0YVswXQk9IGxlNjRfdG9fY3B1KGNvdW50ZXJzLT50eF9wYWNr
ZXRzKTsKKwlkYXRhWzBdID0gbGU2NF90b19jcHUoY291bnRlcnMtPnR4X3BhY2tldHMpOwogCWRh
dGFbMV0gPSBsZTY0X3RvX2NwdShjb3VudGVycy0+cnhfcGFja2V0cyk7CiAJZGF0YVsyXSA9IGxl
NjRfdG9fY3B1KGNvdW50ZXJzLT50eF9lcnJvcnMpOwogCWRhdGFbM10gPSBsZTMyX3RvX2NwdShj
b3VudGVycy0+cnhfZXJyb3JzKTsKQEAgLTExMzEsNyArMTE1Nyw3IEBAIHN0YXRpYyB2b2lkIHJ0
bDgxNjlfd3JpdGVfZ21paV9yZWdfYml0KHYKIAl2YWwgPSBtZGlvX3JlYWQoaW9hZGRyLCByZWcp
OwogCXZhbCA9IChiaXR2YWwgPT0gMSkgPwogCQl2YWwgfCAoYml0dmFsIDw8IGJpdG51bSkgOiAg
dmFsICYgfigweDAwMDEgPDwgYml0bnVtKTsKLQltZGlvX3dyaXRlKGlvYWRkciwgcmVnLCB2YWwg
JiAweGZmZmYpOyAKKwltZGlvX3dyaXRlKGlvYWRkciwgcmVnLCB2YWwgJiAweGZmZmYpOwogfQog
CiBzdGF0aWMgdm9pZCBydGw4MTY5X2dldF9tYWNfdmVyc2lvbihzdHJ1Y3QgcnRsODE2OV9wcml2
YXRlICp0cCwgdm9pZCBfX2lvbWVtICppb2FkZHIpCkBAIC0xMTQwLDEwICsxMTY2LDE2IEBAIHN0
YXRpYyB2b2lkIHJ0bDgxNjlfZ2V0X21hY192ZXJzaW9uKHN0cnUKIAkJdTMyIG1hc2s7CiAJCWlu
dCBtYWNfdmVyc2lvbjsKIAl9IG1hY19pbmZvW10gPSB7Ci0JCXsgMHgxIDw8IDI4LAlSVExfR0lH
QV9NQUNfVkVSX1ggfSwKLQkJeyAweDEgPDwgMjYsCVJUTF9HSUdBX01BQ19WRVJfRSB9LAotCQl7
IDB4MSA8PCAyMywJUlRMX0dJR0FfTUFDX1ZFUl9EIH0sIAotCQl7IDB4MDAwMDAwMDAsCVJUTF9H
SUdBX01BQ19WRVJfQiB9IC8qIENhdGNoLWFsbCAqLworCQl7IDB4Mzg4MDAwMDAsCVJUTF9HSUdB
X01BQ19WRVJfMTUgfSwKKwkJeyAweDM4MDAwMDAwLAlSVExfR0lHQV9NQUNfVkVSXzEyIH0sCisJ
CXsgMHgzNDAwMDAwMCwJUlRMX0dJR0FfTUFDX1ZFUl8xMyB9LAorCQl7IDB4MzA4MDAwMDAsCVJU
TF9HSUdBX01BQ19WRVJfMTQgfSwKKwkJeyAweDMwMDAwMDAwLAlSVExfR0lHQV9NQUNfVkVSXzEx
IH0sCisJCXsgMHgxODAwMDAwMCwJUlRMX0dJR0FfTUFDX1ZFUl8wNSB9LAorCQl7IDB4MTAwMDAw
MDAsCVJUTF9HSUdBX01BQ19WRVJfMDQgfSwKKwkJeyAweDA0MDAwMDAwLAlSVExfR0lHQV9NQUNf
VkVSXzAzIH0sCisJCXsgMHgwMDgwMDAwMCwJUlRMX0dJR0FfTUFDX1ZFUl8wMiB9LAorCQl7IDB4
MDAwMDAwMDAsCVJUTF9HSUdBX01BQ19WRVJfMDEgfQkvKiBDYXRjaC1hbGwgKi8KIAl9LCAqcCA9
IG1hY19pbmZvOwogCXUzMiByZWc7CiAKQEAgLTExNTUsMjQgKzExODcsNyBAQCBzdGF0aWMgdm9p
ZCBydGw4MTY5X2dldF9tYWNfdmVyc2lvbihzdHJ1CiAKIHN0YXRpYyB2b2lkIHJ0bDgxNjlfcHJp
bnRfbWFjX3ZlcnNpb24oc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHApCiB7Ci0Jc3RydWN0IHsK
LQkJaW50IHZlcnNpb247Ci0JCWNoYXIgKm1zZzsKLQl9IG1hY19wcmludFtdID0gewotCQl7IFJU
TF9HSUdBX01BQ19WRVJfRSwgIlJUTF9HSUdBX01BQ19WRVJfRSIgfSwKLQkJeyBSVExfR0lHQV9N
QUNfVkVSX0QsICJSVExfR0lHQV9NQUNfVkVSX0QiIH0sCi0JCXsgUlRMX0dJR0FfTUFDX1ZFUl9C
LCAiUlRMX0dJR0FfTUFDX1ZFUl9CIiB9LAotCQl7IDAsIE5VTEwgfQotCX0sICpwOwotCi0JZm9y
IChwID0gbWFjX3ByaW50OyBwLT5tc2c7IHArKykgewotCQlpZiAodHAtPm1hY192ZXJzaW9uID09
IHAtPnZlcnNpb24pIHsKLQkJCWRwcmludGsoIm1hY192ZXJzaW9uID09ICVzICglMDRkKVxuIiwg
cC0+bXNnLAotCQkJCSAgcC0+dmVyc2lvbik7Ci0JCQlyZXR1cm47Ci0JCX0KLQl9Ci0JZHByaW50
aygibWFjX3ZlcnNpb24gPT0gVW5rbm93blxuIik7CisJZHByaW50aygibWFjX3ZlcnNpb24gPSAw
eCUwMnhcbiIsIHRwLT5tYWNfdmVyc2lvbik7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0bDgxNjlfZ2V0
X3BoeV92ZXJzaW9uKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwLCB2b2lkIF9faW9tZW0gKmlv
YWRkcikKQEAgLTExODksNyArMTIwNCw3IEBAIHN0YXRpYyB2b2lkIHJ0bDgxNjlfZ2V0X3BoeV92
ZXJzaW9uKHN0cnUKIAl9LCAqcCA9IHBoeV9pbmZvOwogCXUxNiByZWc7CiAKLQlyZWcgPSBtZGlv
X3JlYWQoaW9hZGRyLCAzKSAmIDB4ZmZmZjsKKwlyZWcgPSBtZGlvX3JlYWQoaW9hZGRyLCBNSUlf
UEhZU0lEMikgJiAweGZmZmY7CiAJd2hpbGUgKChyZWcgJiBwLT5tYXNrKSAhPSBwLT5zZXQpCiAJ
CXArKzsKIAl0cC0+cGh5X3ZlcnNpb24gPSBwLT5waHlfdmVyc2lvbjsKQEAgLTEyNTcsNyArMTI3
Miw3IEBAIHN0YXRpYyB2b2lkIHJ0bDgxNjlfaHdfcGh5X2NvbmZpZyhzdHJ1Y3QKIAlydGw4MTY5
X3ByaW50X21hY192ZXJzaW9uKHRwKTsKIAlydGw4MTY5X3ByaW50X3BoeV92ZXJzaW9uKHRwKTsK
IAotCWlmICh0cC0+bWFjX3ZlcnNpb24gPD0gUlRMX0dJR0FfTUFDX1ZFUl9CKQorCWlmICh0cC0+
bWFjX3ZlcnNpb24gPD0gUlRMX0dJR0FfTUFDX1ZFUl8wMSkKIAkJcmV0dXJuOwogCWlmICh0cC0+
cGh5X3ZlcnNpb24gPj0gUlRMX0dJR0FfUEhZX1ZFUl9IKQogCQlyZXR1cm47CkBAIC0xMjY3LDcg
KzEyODIsNyBAQCBzdGF0aWMgdm9pZCBydGw4MTY5X2h3X3BoeV9jb25maWcoc3RydWN0CiAKIAkv
KiBTaGF6YW0gISAqLwogCi0JaWYgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVS
X1gpIHsKKwlpZiAodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfMDQpIHsKIAkJ
bWRpb193cml0ZShpb2FkZHIsIDMxLCAweDAwMDEpOwogCQltZGlvX3dyaXRlKGlvYWRkciwgIDks
IDB4MjczYSk7CiAJCW1kaW9fd3JpdGUoaW9hZGRyLCAxNCwgMHg3YmZiKTsKQEAgLTEzMDYsMTYg
KzEzMjEsMTYgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9waHlfdGltZXIodW5zaWduZWQgbAogCXZv
aWQgX19pb21lbSAqaW9hZGRyID0gdHAtPm1taW9fYWRkcjsKIAl1bnNpZ25lZCBsb25nIHRpbWVv
dXQgPSBSVEw4MTY5X1BIWV9USU1FT1VUOwogCi0JYXNzZXJ0KHRwLT5tYWNfdmVyc2lvbiA+IFJU
TF9HSUdBX01BQ19WRVJfQik7CisJYXNzZXJ0KHRwLT5tYWNfdmVyc2lvbiA+IFJUTF9HSUdBX01B
Q19WRVJfMDEpOwogCWFzc2VydCh0cC0+cGh5X3ZlcnNpb24gPCBSVExfR0lHQV9QSFlfVkVSX0gp
OwogCi0JaWYgKCEodHAtPnBoeV8xMDAwX2N0cmxfcmVnICYgUEhZX0NhcF8xMDAwX0Z1bGwpKQor
CWlmICghKHRwLT5waHlfMTAwMF9jdHJsX3JlZyAmIEFEVkVSVElTRV8xMDAwRlVMTCkpCiAJCXJl
dHVybjsKIAogCXNwaW5fbG9ja19pcnEoJnRwLT5sb2NrKTsKIAogCWlmICh0cC0+cGh5X3Jlc2V0
X3BlbmRpbmcoaW9hZGRyKSkgewotCQkvKiAKKwkJLyoKIAkJICogQSBidXN5IGxvb3AgY291bGQg
YnVybiBxdWl0ZSBhIGZldyBjeWNsZXMgb24gbm93YWRheXMgQ1BVLgogCQkgKiBMZXQncyBkZWxh
eSB0aGUgZXhlY3V0aW9uIG9mIHRoZSB0aW1lciBmb3IgYSBmZXcgdGlja3MuCiAJCSAqLwpAQCAt
MTM0Miw3ICsxMzU3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHJ0bDgxNjlfZGVsZXRlX3RpbWVy
KAogCXN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1
Y3QgdGltZXJfbGlzdCAqdGltZXIgPSAmdHAtPnRpbWVyOwogCi0JaWYgKCh0cC0+bWFjX3ZlcnNp
b24gPD0gUlRMX0dJR0FfTUFDX1ZFUl9CKSB8fAorCWlmICgodHAtPm1hY192ZXJzaW9uIDw9IFJU
TF9HSUdBX01BQ19WRVJfMDEpIHx8CiAJICAgICh0cC0+cGh5X3ZlcnNpb24gPj0gUlRMX0dJR0Ff
UEhZX1ZFUl9IKSkKIAkJcmV0dXJuOwogCkBAIC0xMzU0LDcgKzEzNjksNyBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgcnRsODE2OV9yZXF1ZXN0X3RpbWVyCiAJc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAq
dHAgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCB0aW1lcl9saXN0ICp0aW1lciA9ICZ0cC0+
dGltZXI7CiAKLQlpZiAoKHRwLT5tYWNfdmVyc2lvbiA8PSBSVExfR0lHQV9NQUNfVkVSX0IpIHx8
CisJaWYgKCh0cC0+bWFjX3ZlcnNpb24gPD0gUlRMX0dJR0FfTUFDX1ZFUl8wMSkgfHwKIAkgICAg
KHRwLT5waHlfdmVyc2lvbiA+PSBSVExfR0lHQV9QSFlfVkVSX0gpKQogCQlyZXR1cm47CiAKQEAg
LTEzODIsNiArMTM5Nyw0MSBAQCBzdGF0aWMgdm9pZCBydGw4MTY5X25ldHBvbGwoc3RydWN0IG5l
dF9kCiB9CiAjZW5kaWYKIAorc3RhdGljIHZvaWQgX19ydGw4MTY5X3NldF9tYWNfYWRkcihzdHJ1
Y3QgbmV0X2RldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmlvYWRkcikKK3sKKwl1bnNpZ25lZCBp
bnQgaSwgajsKKworCVJUTF9XOChDZmc5MzQ2LCBDZmc5MzQ2X1VubG9jayk7CisJZm9yIChpID0g
MDsgaSA8IDI7IGkrKykgeworCQlfX2xlMzIgbCA9IDA7CisKKwkJZm9yIChqID0gMDsgaiA8IDQ7
IGorKykgeworCQkJbCA8PD0gODsKKwkJCWwgfD0gZGV2LT5kZXZfYWRkcls0KmkgKyBqXTsKKwkJ
fQorCQlSVExfVzMyKE1BQzAgKyA0KmksIGNwdV90b19iZTMyKGwpKTsKKwl9CisJUlRMX1c4KENm
ZzkzNDYsIENmZzkzNDZfTG9jayk7Cit9CisKK3N0YXRpYyBpbnQgcnRsODE2OV9zZXRfbWFjX2Fk
ZHIoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqcCkKK3sKKwlzdHJ1Y3QgcnRsODE2OV9w
cml2YXRlICp0cCA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IHNvY2thZGRyICphZGRyID0g
cDsKKworCWlmICghaXNfdmFsaWRfZXRoZXJfYWRkcihhZGRyLT5zYV9kYXRhKSkKKwkJcmV0dXJu
IC1FSU5WQUw7CisKKwltZW1jcHkoZGV2LT5kZXZfYWRkciwgYWRkci0+c2FfZGF0YSwgZGV2LT5h
ZGRyX2xlbik7CisKKwlpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7CisJCXNwaW5fbG9ja19pcnEo
JnRwLT5sb2NrKTsKKwkJX19ydGw4MTY5X3NldF9tYWNfYWRkcihkZXYsIHRwLT5tbWlvX2FkZHIp
OworCQlzcGluX3VubG9ja19pcnEoJnRwLT5sb2NrKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKIHN0
YXRpYyB2b2lkIHJ0bDgxNjlfcmVsZWFzZV9ib2FyZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3Ry
dWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCQkgIHZvaWQgX19pb21lbSAqaW9hZGRyKQogewpAQCAt
MTM5MSwyMyArMTQ0MSw4NyBAQCBzdGF0aWMgdm9pZCBydGw4MTY5X3JlbGVhc2VfYm9hcmQoc3Ry
dWN0CiAJZnJlZV9uZXRkZXYoZGV2KTsKIH0KIAorc3RhdGljIHZvaWQgcnRsODE2OV9pbml0X3Bo
eShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCkKK3sK
Kwl2b2lkIF9faW9tZW0gKmlvYWRkciA9IHRwLT5tbWlvX2FkZHI7CisJc3RhdGljIGludCBib2Fy
ZF9pZHggPSAtMTsKKwl1OCBhdXRvbmVnLCBkdXBsZXg7CisJdTE2IHNwZWVkOworCisJYm9hcmRf
aWR4Kys7CisKKwlydGw4MTY5X2h3X3BoeV9jb25maWcoZGV2KTsKKworCWRwcmludGsoIlNldCBN
QUMgUmVnIEMrQ1IgT2Zmc2V0IDB4ODJoID0gMHgwMWhcbiIpOworCVJUTF9XOCgweDgyLCAweDAx
KTsKKworCWlmICh0cC0+bWFjX3ZlcnNpb24gPCBSVExfR0lHQV9NQUNfVkVSXzAzKSB7CisJCWRw
cmludGsoIlNldCBQQ0kgTGF0ZW5jeT0weDQwXG4iKTsKKwkJcGNpX3dyaXRlX2NvbmZpZ19ieXRl
KHRwLT5wY2lfZGV2LCBQQ0lfTEFURU5DWV9USU1FUiwgMHg0MCk7CisJfQorCisJaWYgKHRwLT5t
YWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzAyKSB7CisJCWRwcmludGsoIlNldCBNQUMg
UmVnIEMrQ1IgT2Zmc2V0IDB4ODJoID0gMHgwMWhcbiIpOworCQlSVExfVzgoMHg4MiwgMHgwMSk7
CisJCWRwcmludGsoIlNldCBQSFkgUmVnIDB4MGJoID0gMHgwMGhcbiIpOworCQltZGlvX3dyaXRl
KGlvYWRkciwgMHgwYiwgMHgwMDAwKTsgLy93IDB4MGIgMTUgMCAwCisJfQorCisJcnRsODE2OV9s
aW5rX29wdGlvbihib2FyZF9pZHgsICZhdXRvbmVnLCAmc3BlZWQsICZkdXBsZXgpOworCisJcnRs
ODE2OV9zZXRfc3BlZWQoZGV2LCBhdXRvbmVnLCBzcGVlZCwgZHVwbGV4KTsKKworCWlmICgoUlRM
X1I4KFBIWXN0YXR1cykgJiBUQklfRW5hYmxlKSAmJiBuZXRpZl9tc2dfbGluayh0cCkpCisJCXBy
aW50ayhLRVJOX0lORk8gUEZYICIlczogVEJJIGF1dG8tbmVnb3RpYXRpbmdcbiIsIGRldi0+bmFt
ZSk7Cit9CisKK3N0YXRpYyBpbnQgcnRsODE2OV9pb2N0bChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2
LCBzdHJ1Y3QgaWZyZXEgKmlmciwgaW50IGNtZCkKK3sKKwlzdHJ1Y3QgcnRsODE2OV9wcml2YXRl
ICp0cCA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IG1paV9pb2N0bF9kYXRhICpkYXRhID0g
aWZfbWlpKGlmcik7CisKKwlpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSkKKwkJcmV0dXJuIC1FTk9E
RVY7CisKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgU0lPQ0dNSUlQSFk6CisJCWRhdGEtPnBoeV9p
ZCA9IDMyOyAvKiBJbnRlcm5hbCBQSFkgKi8KKwkJcmV0dXJuIDA7CisKKwljYXNlIFNJT0NHTUlJ
UkVHOgorCQlkYXRhLT52YWxfb3V0ID0gbWRpb19yZWFkKHRwLT5tbWlvX2FkZHIsIGRhdGEtPnJl
Z19udW0gJiAweDFmKTsKKwkJcmV0dXJuIDA7CisKKwljYXNlIFNJT0NTTUlJUkVHOgorCQlpZiAo
IWNhcGFibGUoQ0FQX05FVF9BRE1JTikpCisJCQlyZXR1cm4gLUVQRVJNOworCQltZGlvX3dyaXRl
KHRwLT5tbWlvX2FkZHIsIGRhdGEtPnJlZ19udW0gJiAweDFmLCBkYXRhLT52YWxfaW4pOworCQly
ZXR1cm4gMDsKKwl9CisJcmV0dXJuIC1FT1BOT1RTVVBQOworfQorCiBzdGF0aWMgaW50IF9fZGV2
aW5pdAotcnRsODE2OV9pbml0X2JvYXJkKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgbmV0
X2RldmljZSAqKmRldl9vdXQsCi0JCSAgIHZvaWQgX19pb21lbSAqKmlvYWRkcl9vdXQpCitydGw4
MTY5X2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2Rldmlj
ZV9pZCAqZW50KQogewotCXZvaWQgX19pb21lbSAqaW9hZGRyOwotCXN0cnVjdCBuZXRfZGV2aWNl
ICpkZXY7CisJY29uc3QgdW5zaWduZWQgaW50IHJlZ2lvbiA9IHJ0bF9jZmdfaW5mb1tlbnQtPmRy
aXZlcl9kYXRhXS5yZWdpb247CiAJc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHA7Ci0JaW50IHJj
ID0gLUVOT01FTSwgaSwgYWNwaV9pZGxlX3N0YXRlID0gMCwgcG1fY2FwOworCXN0cnVjdCBuZXRf
ZGV2aWNlICpkZXY7CisJdm9pZCBfX2lvbWVtICppb2FkZHI7CisJdW5zaWduZWQgaW50IGksIHBt
X2NhcDsKKwlpbnQgcmM7CiAKLQlhc3NlcnQoaW9hZGRyX291dCAhPSBOVUxMKTsKKwlpZiAobmV0
aWZfbXNnX2RydigmZGVidWcpKSB7CisJCXByaW50ayhLRVJOX0lORk8gIiVzIEdpZ2FiaXQgRXRo
ZXJuZXQgZHJpdmVyICVzIGxvYWRlZFxuIiwKKwkJICAgICAgIE1PRFVMRU5BTUUsIFJUTDgxNjlf
VkVSU0lPTik7CisJfQogCi0JLyogZGV2IHplcm9lZCBpbiBhbGxvY19ldGhlcmRldiAqLwogCWRl
diA9IGFsbG9jX2V0aGVyZGV2KHNpemVvZiAoKnRwKSk7Ci0JaWYgKGRldiA9PSBOVUxMKSB7CisJ
aWYgKCFkZXYpIHsKIAkJaWYgKG5ldGlmX21zZ19kcnYoJmRlYnVnKSkKIAkJCWRldl9lcnIoJnBk
ZXYtPmRldiwgInVuYWJsZSB0byBhbGxvYyBuZXcgZXRoZXJuZXRcbiIpOwotCQlnb3RvIGVycl9v
dXQ7CisJCXJjID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CiAJfQogCiAJU0VUX01PRFVMRV9PV05F
UihkZXYpOwpAQCAtMTQyMCw0OCArMTUzNCw1MyBAQCBydGw4MTY5X2luaXRfYm9hcmQoc3RydWN0
IHBjaV9kZXYgKnBkZXYsCiAJaWYgKHJjIDwgMCkgewogCQlpZiAobmV0aWZfbXNnX3Byb2JlKHRw
KSkKIAkJCWRldl9lcnIoJnBkZXYtPmRldiwgImVuYWJsZSBmYWlsdXJlXG4iKTsKLQkJZ290byBl
cnJfb3V0X2ZyZWVfZGV2OworCQlnb3RvIGVycl9vdXRfZnJlZV9kZXZfMTsKIAl9CiAKIAlyYyA9
IHBjaV9zZXRfbXdpKHBkZXYpOwogCWlmIChyYyA8IDApCi0JCWdvdG8gZXJyX291dF9kaXNhYmxl
OworCQlnb3RvIGVycl9vdXRfZGlzYWJsZV8yOwogCiAJLyogc2F2ZSBwb3dlciBzdGF0ZSBiZWZv
cmUgcGNpX2VuYWJsZV9kZXZpY2Ugb3ZlcndyaXRlcyBpdCAqLwogCXBtX2NhcCA9IHBjaV9maW5k
X2NhcGFiaWxpdHkocGRldiwgUENJX0NBUF9JRF9QTSk7CiAJaWYgKHBtX2NhcCkgewotCQl1MTYg
cHdyX2NvbW1hbmQ7CisJCXUxNiBwd3JfY29tbWFuZCwgYWNwaV9pZGxlX3N0YXRlOwogCiAJCXBj
aV9yZWFkX2NvbmZpZ193b3JkKHBkZXYsIHBtX2NhcCArIFBDSV9QTV9DVFJMLCAmcHdyX2NvbW1h
bmQpOwogCQlhY3BpX2lkbGVfc3RhdGUgPSBwd3JfY29tbWFuZCAmIFBDSV9QTV9DVFJMX1NUQVRF
X01BU0s7CiAJfSBlbHNlIHsKLQkJaWYgKG5ldGlmX21zZ19wcm9iZSh0cCkpCisJCWlmIChuZXRp
Zl9tc2dfcHJvYmUodHApKSB7CiAJCQlkZXZfZXJyKCZwZGV2LT5kZXYsCi0JCQkgICAgICAgIlBv
d2VyTWFuYWdlbWVudCBjYXBhYmlsaXR5IG5vdCBmb3VuZC5cbiIpOworCQkJCSJQb3dlck1hbmFn
ZW1lbnQgY2FwYWJpbGl0eSBub3QgZm91bmQuXG4iKTsKKwkJfQogCX0KIAogCS8qIG1ha2Ugc3Vy
ZSBQQ0kgYmFzZSBhZGRyIDEgaXMgTU1JTyAqLwotCWlmICghKHBjaV9yZXNvdXJjZV9mbGFncyhw
ZGV2LCAxKSAmIElPUkVTT1VSQ0VfTUVNKSkgewotCQlpZiAobmV0aWZfbXNnX3Byb2JlKHRwKSkK
KwlpZiAoIShwY2lfcmVzb3VyY2VfZmxhZ3MocGRldiwgcmVnaW9uKSAmIElPUkVTT1VSQ0VfTUVN
KSkgeworCQlpZiAobmV0aWZfbXNnX3Byb2JlKHRwKSkgewogCQkJZGV2X2VycigmcGRldi0+ZGV2
LAotCQkJICAgICAgICJyZWdpb24gIzEgbm90IGFuIE1NSU8gcmVzb3VyY2UsIGFib3J0aW5nXG4i
KTsKKwkJCQkicmVnaW9uICMlZCBub3QgYW4gTU1JTyByZXNvdXJjZSwgYWJvcnRpbmdcbiIsCisJ
CQkJcmVnaW9uKTsKKwkJfQogCQlyYyA9IC1FTk9ERVY7Ci0JCWdvdG8gZXJyX291dF9td2k7CisJ
CWdvdG8gZXJyX291dF9td2lfMzsKIAl9CisKIAkvKiBjaGVjayBmb3Igd2VpcmQvYnJva2VuIFBD
SSByZWdpb24gcmVwb3J0aW5nICovCi0JaWYgKHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMSkgPCBS
ODE2OV9SRUdTX1NJWkUpIHsKLQkJaWYgKG5ldGlmX21zZ19wcm9iZSh0cCkpCisJaWYgKHBjaV9y
ZXNvdXJjZV9sZW4ocGRldiwgcmVnaW9uKSA8IFI4MTY5X1JFR1NfU0laRSkgeworCQlpZiAobmV0
aWZfbXNnX3Byb2JlKHRwKSkgewogCQkJZGV2X2VycigmcGRldi0+ZGV2LAotCQkJICAgICAgICJJ
bnZhbGlkIFBDSSByZWdpb24gc2l6ZShzKSwgYWJvcnRpbmdcbiIpOworCQkJCSJJbnZhbGlkIFBD
SSByZWdpb24gc2l6ZShzKSwgYWJvcnRpbmdcbiIpOworCQl9CiAJCXJjID0gLUVOT0RFVjsKLQkJ
Z290byBlcnJfb3V0X213aTsKKwkJZ290byBlcnJfb3V0X213aV8zOwogCX0KIAogCXJjID0gcGNp
X3JlcXVlc3RfcmVnaW9ucyhwZGV2LCBNT0RVTEVOQU1FKTsKIAlpZiAocmMgPCAwKSB7CiAJCWlm
IChuZXRpZl9tc2dfcHJvYmUodHApKQogCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiY291bGQgbm90
IHJlcXVlc3QgcmVnaW9ucy5cbiIpOwotCQlnb3RvIGVycl9vdXRfbXdpOworCQlnb3RvIGVycl9v
dXRfbXdpXzM7CiAJfQogCiAJdHAtPmNwX2NtZCA9IFBDSU11bFJXIHwgUnhDaGtTdW07CkBAIC0x
NDczLDIyICsxNTkyLDIzIEBAIHJ0bDgxNjlfaW5pdF9ib2FyZChzdHJ1Y3QgcGNpX2RldiAqcGRl
diwKIAl9IGVsc2UgewogCQlyYyA9IHBjaV9zZXRfZG1hX21hc2socGRldiwgRE1BXzMyQklUX01B
U0spOwogCQlpZiAocmMgPCAwKSB7Ci0JCQlpZiAobmV0aWZfbXNnX3Byb2JlKHRwKSkKKwkJCWlm
IChuZXRpZl9tc2dfcHJvYmUodHApKSB7CiAJCQkJZGV2X2VycigmcGRldi0+ZGV2LAotCQkJCSAg
ICAgICAiRE1BIGNvbmZpZ3VyYXRpb24gZmFpbGVkLlxuIik7Ci0JCQlnb3RvIGVycl9vdXRfZnJl
ZV9yZXM7CisJCQkJCSJETUEgY29uZmlndXJhdGlvbiBmYWlsZWQuXG4iKTsKKwkJCX0KKwkJCWdv
dG8gZXJyX291dF9mcmVlX3Jlc180OwogCQl9CiAJfQogCiAJcGNpX3NldF9tYXN0ZXIocGRldik7
CiAKIAkvKiBpb3JlbWFwIE1NSU8gcmVnaW9uICovCi0JaW9hZGRyID0gaW9yZW1hcChwY2lfcmVz
b3VyY2Vfc3RhcnQocGRldiwgMSksIFI4MTY5X1JFR1NfU0laRSk7Ci0JaWYgKGlvYWRkciA9PSBO
VUxMKSB7CisJaW9hZGRyID0gaW9yZW1hcChwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgcmVnaW9u
KSwgUjgxNjlfUkVHU19TSVpFKTsKKwlpZiAoIWlvYWRkcikgewogCQlpZiAobmV0aWZfbXNnX3By
b2JlKHRwKSkKIAkJCWRldl9lcnIoJnBkZXYtPmRldiwgImNhbm5vdCByZW1hcCBNTUlPLCBhYm9y
dGluZ1xuIik7CiAJCXJjID0gLUVJTzsKLQkJZ290byBlcnJfb3V0X2ZyZWVfcmVzOworCQlnb3Rv
IGVycl9vdXRfZnJlZV9yZXNfNDsKIAl9CiAKIAkvKiBVbm5lZWRlZCA/IERvbid0IG1lc3Mgd2l0
aCBNcnMuIE11cnBoeS4gKi8KQEAgLTE0OTgsMTAgKzE2MTgsMTAgQEAgcnRsODE2OV9pbml0X2Jv
YXJkKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCVJUTF9XOChDaGlwQ21kLCBDbWRSZXNldCk7CiAK
IAkvKiBDaGVjayB0aGF0IHRoZSBjaGlwIGhhcyBmaW5pc2hlZCB0aGUgcmVzZXQuICovCi0JZm9y
IChpID0gMTAwMDsgaSA+IDA7IGktLSkgeworCWZvciAoaSA9IDEwMDsgaSA+IDA7IGktLSkgewog
CQlpZiAoKFJUTF9SOChDaGlwQ21kKSAmIENtZFJlc2V0KSA9PSAwKQogCQkJYnJlYWs7Ci0JCXVk
ZWxheSgxMCk7CisJCW1zbGVlcF9pbnRlcnJ1cHRpYmxlKDEpOwogCX0KIAogCS8qIElkZW50aWZ5
IGNoaXAgYXR0YWNoZWQgdG8gYm9hcmQgKi8KQEAgLTE1MTksOCArMTYzOSw4IEBAIHJ0bDgxNjlf
aW5pdF9ib2FyZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAkJLyogVW5rbm93biBjaGlwOiBhc3N1
bWUgYXJyYXkgZWxlbWVudCAjMCwgb3JpZ2luYWwgUlRMLTgxNjkgKi8KIAkJaWYgKG5ldGlmX21z
Z19wcm9iZSh0cCkpIHsKIAkJCWRldl9wcmludGsoS0VSTl9ERUJVRywgJnBkZXYtPmRldiwKLQkJ
CSAgICAgICAidW5rbm93biBjaGlwIHZlcnNpb24sIGFzc3VtaW5nICVzXG4iLAotCQkJICAgICAg
IHJ0bF9jaGlwX2luZm9bMF0ubmFtZSk7CisJCQkJInVua25vd24gY2hpcCB2ZXJzaW9uLCBhc3N1
bWluZyAlc1xuIiwKKwkJCQlydGxfY2hpcF9pbmZvWzBdLm5hbWUpOwogCQl9CiAJCWkrKzsKIAl9
CkBAIC0xNTMxLDU2ICsxNjUxLDYgQEAgcnRsODE2OV9pbml0X2JvYXJkKHN0cnVjdCBwY2lfZGV2
ICpwZGV2LAogCVJUTF9XOChDb25maWc1LCBSVExfUjgoQ29uZmlnNSkgJiBQTUVTdGF0dXMpOwog
CVJUTF9XOChDZmc5MzQ2LCBDZmc5MzQ2X0xvY2spOwogCi0JKmlvYWRkcl9vdXQgPSBpb2FkZHI7
Ci0JKmRldl9vdXQgPSBkZXY7Ci1vdXQ6Ci0JcmV0dXJuIHJjOwotCi1lcnJfb3V0X2ZyZWVfcmVz
OgotCXBjaV9yZWxlYXNlX3JlZ2lvbnMocGRldik7Ci0KLWVycl9vdXRfbXdpOgotCXBjaV9jbGVh
cl9td2kocGRldik7Ci0KLWVycl9vdXRfZGlzYWJsZToKLQlwY2lfZGlzYWJsZV9kZXZpY2UocGRl
dik7Ci0KLWVycl9vdXRfZnJlZV9kZXY6Ci0JZnJlZV9uZXRkZXYoZGV2KTsKLWVycl9vdXQ6Ci0J
KmlvYWRkcl9vdXQgPSBOVUxMOwotCSpkZXZfb3V0ID0gTlVMTDsKLQlnb3RvIG91dDsKLX0KLQot
c3RhdGljIGludCBfX2RldmluaXQKLXJ0bDgxNjlfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBk
ZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCi17Ci0Jc3RydWN0IG5ldF9kZXZp
Y2UgKmRldiA9IE5VTEw7Ci0Jc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHA7Ci0Jdm9pZCBfX2lv
bWVtICppb2FkZHIgPSBOVUxMOwotCXN0YXRpYyBpbnQgYm9hcmRfaWR4ID0gLTE7Ci0JdTggYXV0
b25lZywgZHVwbGV4OwotCXUxNiBzcGVlZDsKLQlpbnQgaSwgcmM7Ci0KLQlhc3NlcnQocGRldiAh
PSBOVUxMKTsKLQlhc3NlcnQoZW50ICE9IE5VTEwpOwotCi0JYm9hcmRfaWR4Kys7Ci0KLQlpZiAo
bmV0aWZfbXNnX2RydigmZGVidWcpKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIiVzIEdpZ2FiaXQg
RXRoZXJuZXQgZHJpdmVyICVzIGxvYWRlZFxuIiwKLQkJICAgICAgIE1PRFVMRU5BTUUsIFJUTDgx
NjlfVkVSU0lPTik7Ci0JfQotCi0JcmMgPSBydGw4MTY5X2luaXRfYm9hcmQocGRldiwgJmRldiwg
JmlvYWRkcik7Ci0JaWYgKHJjKQotCQlyZXR1cm4gcmM7Ci0KLQl0cCA9IG5ldGRldl9wcml2KGRl
dik7Ci0JYXNzZXJ0KGlvYWRkciAhPSBOVUxMKTsKLQogCWlmIChSVExfUjgoUEhZc3RhdHVzKSAm
IFRCSV9FbmFibGUpIHsKIAkJdHAtPnNldF9zcGVlZCA9IHJ0bDgxNjlfc2V0X3NwZWVkX3RiaTsK
IAkJdHAtPmdldF9zZXR0aW5ncyA9IHJ0bDgxNjlfZ3NldF90Ymk7CkBAIC0xNTg4LDEzICsxNjU4
LDE1IEBAIHJ0bDgxNjlfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGMKIAkJdHAtPnBo
eV9yZXNldF9wZW5kaW5nID0gcnRsODE2OV90YmlfcmVzZXRfcGVuZGluZzsKIAkJdHAtPmxpbmtf
b2sgPSBydGw4MTY5X3RiaV9saW5rX29rOwogCi0JCXRwLT5waHlfMTAwMF9jdHJsX3JlZyA9IFBI
WV9DYXBfMTAwMF9GdWxsOyAvKiBJbXBsaWVkIGJ5IFRCSSAqLworCQl0cC0+cGh5XzEwMDBfY3Ry
bF9yZWcgPSBBRFZFUlRJU0VfMTAwMEZVTEw7IC8qIEltcGxpZWQgYnkgVEJJICovCiAJfSBlbHNl
IHsKIAkJdHAtPnNldF9zcGVlZCA9IHJ0bDgxNjlfc2V0X3NwZWVkX3htaWk7CiAJCXRwLT5nZXRf
c2V0dGluZ3MgPSBydGw4MTY5X2dzZXRfeG1paTsKIAkJdHAtPnBoeV9yZXNldF9lbmFibGUgPSBy
dGw4MTY5X3htaWlfcmVzZXRfZW5hYmxlOwogCQl0cC0+cGh5X3Jlc2V0X3BlbmRpbmcgPSBydGw4
MTY5X3htaWlfcmVzZXRfcGVuZGluZzsKIAkJdHAtPmxpbmtfb2sgPSBydGw4MTY5X3htaWlfbGlu
a19vazsKKworCQlkZXYtPmRvX2lvY3RsID0gcnRsODE2OV9pb2N0bDsKIAl9CiAKIAkvKiBHZXQg
TUFDIGFkZHJlc3MuICBGSVhNRTogcmVhZCBFRVBST00gKi8KQEAgLTE2MDksNiArMTY4MSw3IEBA
IHJ0bDgxNjlfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGMKIAlkZXYtPnN0b3AgPSBy
dGw4MTY5X2Nsb3NlOwogCWRldi0+dHhfdGltZW91dCA9IHJ0bDgxNjlfdHhfdGltZW91dDsKIAlk
ZXYtPnNldF9tdWx0aWNhc3RfbGlzdCA9IHJ0bDgxNjlfc2V0X3J4X21vZGU7CisJZGV2LT5zZXRf
bWFjX2FkZHJlc3MgPSBydGw4MTY5X3NldF9tYWNfYWRkcjsKIAlkZXYtPndhdGNoZG9nX3RpbWVv
ID0gUlRMODE2OV9UWF9USU1FT1VUOwogCWRldi0+aXJxID0gcGRldi0+aXJxOwogCWRldi0+YmFz
ZV9hZGRyID0gKHVuc2lnbmVkIGxvbmcpIGlvYWRkcjsKQEAgLTE2MzIsMTkgKzE3MDUsMTMgQEAg
cnRsODE2OV9pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgYwogCXRwLT5pbnRyX21hc2sg
PSAweGZmZmY7CiAJdHAtPnBjaV9kZXYgPSBwZGV2OwogCXRwLT5tbWlvX2FkZHIgPSBpb2FkZHI7
CisJdHAtPmFsaWduID0gcnRsX2NmZ19pbmZvW2VudC0+ZHJpdmVyX2RhdGFdLmFsaWduOwogCiAJ
c3Bpbl9sb2NrX2luaXQoJnRwLT5sb2NrKTsKIAogCXJjID0gcmVnaXN0ZXJfbmV0ZGV2KGRldik7
Ci0JaWYgKHJjKSB7Ci0JCXJ0bDgxNjlfcmVsZWFzZV9ib2FyZChwZGV2LCBkZXYsIGlvYWRkcik7
Ci0JCXJldHVybiByYzsKLQl9Ci0KLQlpZiAobmV0aWZfbXNnX3Byb2JlKHRwKSkgewotCQlwcmlu
dGsoS0VSTl9ERUJVRyAiJXM6IElkZW50aWZpZWQgY2hpcCB0eXBlIGlzICclcycuXG4iLAotCQkg
ICAgICAgZGV2LT5uYW1lLCBydGxfY2hpcF9pbmZvW3RwLT5jaGlwc2V0XS5uYW1lKTsKLQl9CisJ
aWYgKHJjIDwgMCkKKwkJZ290byBlcnJfb3V0X3VubWFwXzU7CiAKIAlwY2lfc2V0X2RydmRhdGEo
cGRldiwgZGV2KTsKIApAQCAtMTY1MywzOCArMTcyMCwyOSBAQCBydGw4MTY5X2luaXRfb25lKHN0
cnVjdCBwY2lfZGV2ICpwZGV2LCBjCiAJCSAgICAgICAiJTIuMng6JTIuMng6JTIuMng6JTIuMng6
JTIuMng6JTIuMngsICIKIAkJICAgICAgICJJUlEgJWRcbiIsCiAJCSAgICAgICBkZXYtPm5hbWUs
Ci0JCSAgICAgICBydGxfY2hpcF9pbmZvW2VudC0+ZHJpdmVyX2RhdGFdLm5hbWUsCisJCSAgICAg
ICBydGxfY2hpcF9pbmZvW3RwLT5jaGlwc2V0XS5uYW1lLAogCQkgICAgICAgZGV2LT5iYXNlX2Fk
ZHIsCiAJCSAgICAgICBkZXYtPmRldl9hZGRyWzBdLCBkZXYtPmRldl9hZGRyWzFdLAogCQkgICAg
ICAgZGV2LT5kZXZfYWRkclsyXSwgZGV2LT5kZXZfYWRkclszXSwKIAkJICAgICAgIGRldi0+ZGV2
X2FkZHJbNF0sIGRldi0+ZGV2X2FkZHJbNV0sIGRldi0+aXJxKTsKIAl9CiAKLQlydGw4MTY5X2h3
X3BoeV9jb25maWcoZGV2KTsKKwlydGw4MTY5X2luaXRfcGh5KGRldiwgdHApOwogCi0JZHByaW50
aygiU2V0IE1BQyBSZWcgQytDUiBPZmZzZXQgMHg4MmggPSAweDAxaFxuIik7Ci0JUlRMX1c4KDB4
ODIsIDB4MDEpOwotCi0JaWYgKHRwLT5tYWNfdmVyc2lvbiA8IFJUTF9HSUdBX01BQ19WRVJfRSkg
ewotCQlkcHJpbnRrKCJTZXQgUENJIExhdGVuY3k9MHg0MFxuIik7Ci0JCXBjaV93cml0ZV9jb25m
aWdfYnl0ZShwZGV2LCBQQ0lfTEFURU5DWV9USU1FUiwgMHg0MCk7Ci0JfQotCi0JaWYgKHRwLT5t
YWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSX0QpIHsKLQkJZHByaW50aygiU2V0IE1BQyBS
ZWcgQytDUiBPZmZzZXQgMHg4MmggPSAweDAxaFxuIik7Ci0JCVJUTF9XOCgweDgyLCAweDAxKTsK
LQkJZHByaW50aygiU2V0IFBIWSBSZWcgMHgwYmggPSAweDAwaFxuIik7Ci0JCW1kaW9fd3JpdGUo
aW9hZGRyLCAweDBiLCAweDAwMDApOyAvL3cgMHgwYiAxNSAwIDAKLQl9Ci0KLQlydGw4MTY5X2xp
bmtfb3B0aW9uKGJvYXJkX2lkeCwgJmF1dG9uZWcsICZzcGVlZCwgJmR1cGxleCk7Ci0KLQlydGw4
MTY5X3NldF9zcGVlZChkZXYsIGF1dG9uZWcsIHNwZWVkLCBkdXBsZXgpOwotCQotCWlmICgoUlRM
X1I4KFBIWXN0YXR1cykgJiBUQklfRW5hYmxlKSAmJiBuZXRpZl9tc2dfbGluayh0cCkpCi0JCXBy
aW50ayhLRVJOX0lORk8gUEZYICIlczogVEJJIGF1dG8tbmVnb3RpYXRpbmdcbiIsIGRldi0+bmFt
ZSk7CitvdXQ6CisJcmV0dXJuIHJjOwogCi0JcmV0dXJuIDA7CitlcnJfb3V0X3VubWFwXzU6CisJ
aW91bm1hcChpb2FkZHIpOworZXJyX291dF9mcmVlX3Jlc180OgorCXBjaV9yZWxlYXNlX3JlZ2lv
bnMocGRldik7CitlcnJfb3V0X213aV8zOgorCXBjaV9jbGVhcl9td2kocGRldik7CitlcnJfb3V0
X2Rpc2FibGVfMjoKKwlwY2lfZGlzYWJsZV9kZXZpY2UocGRldik7CitlcnJfb3V0X2ZyZWVfZGV2
XzE6CisJZnJlZV9uZXRkZXYoZGV2KTsKKwlnb3RvIG91dDsKIH0KIAogc3RhdGljIHZvaWQgX19k
ZXZleGl0CkBAIC0xNzgwLDIwICsxODM4LDQxIEBAIHJ0bDgxNjlfaHdfc3RhcnQoc3RydWN0IG5l
dF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCA9IG5ldGRldl9w
cml2KGRldik7CiAJdm9pZCBfX2lvbWVtICppb2FkZHIgPSB0cC0+bW1pb19hZGRyOworCXN0cnVj
dCBwY2lfZGV2ICpwZGV2ID0gdHAtPnBjaV9kZXY7CiAJdTMyIGk7CiAKIAkvKiBTb2Z0IHJlc2V0
IHRoZSBjaGlwLiAqLwogCVJUTF9XOChDaGlwQ21kLCBDbWRSZXNldCk7CiAKIAkvKiBDaGVjayB0
aGF0IHRoZSBjaGlwIGhhcyBmaW5pc2hlZCB0aGUgcmVzZXQuICovCi0JZm9yIChpID0gMTAwMDsg
aSA+IDA7IGktLSkgeworCWZvciAoaSA9IDEwMDsgaSA+IDA7IGktLSkgewogCQlpZiAoKFJUTF9S
OChDaGlwQ21kKSAmIENtZFJlc2V0KSA9PSAwKQogCQkJYnJlYWs7Ci0JCXVkZWxheSgxMCk7CisJ
CW1zbGVlcF9pbnRlcnJ1cHRpYmxlKDEpOwogCX0KIAorCWlmICh0cC0+bWFjX3ZlcnNpb24gPT0g
UlRMX0dJR0FfTUFDX1ZFUl8xMykgeworCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQocGRldiwgMHg2
OCwgMHgwMCk7CisJCXBjaV93cml0ZV9jb25maWdfd29yZChwZGV2LCAweDY5LCAweDA4KTsKKwl9
CisKKwkvKiBVbmRvY3VtZW50ZWQgc3R1ZmYuICovCisJaWYgKHRwLT5tYWNfdmVyc2lvbiA9PSBS
VExfR0lHQV9NQUNfVkVSXzA1KSB7CisJCXUxNiBjbWQ7CisKKwkJLyogUmVhbHRlaydzIHIxMDAw
X24uYyBkcml2ZXIgdXNlcyAnJiYgMHgwMScgaGVyZS4gV2VsbC4uLiAqLworCQlpZiAoKFJUTF9S
OChDb25maWcyKSAmIDB4MDcpICYgMHgwMSkKKwkJCVJUTF9XMzIoMHg3YywgMHgwMDA3ZmZmZik7
CisKKwkJUlRMX1czMigweDdjLCAweDAwMDdmZjAwKTsKKworCQlwY2lfcmVhZF9jb25maWdfd29y
ZChwZGV2LCBQQ0lfQ09NTUFORCwgJmNtZCk7CisJCWNtZCA9IGNtZCAmIDB4ZWY7CisJCXBjaV93
cml0ZV9jb25maWdfd29yZChwZGV2LCBQQ0lfQ09NTUFORCwgY21kKTsKKwl9CisKKwogCVJUTF9X
OChDZmc5MzQ2LCBDZmc5MzQ2X1VubG9jayk7Ci0JUlRMX1c4KENoaXBDbWQsIENtZFR4RW5iIHwg
Q21kUnhFbmIpOwogCVJUTF9XOChFYXJseVR4VGhyZXMsIEVhcmx5VHhUaGxkKTsKIAogCS8qIExv
dyBodXJ0cy4gTGV0J3MgZGlzYWJsZSB0aGUgZmlsdGVyaW5nLiAqLwpAQCAtMTgwNSwyMCArMTg4
NCwyMCBAQCBydGw4MTY5X2h3X3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJUlRMX1cz
MihSeENvbmZpZywgaSk7CiAKIAkvKiBTZXQgRE1BIGJ1cnN0IHNpemUgYW5kIEludGVyZnJhbWUg
R2FwIFRpbWUgKi8KLQlSVExfVzMyKFR4Q29uZmlnLAotCQkoVFhfRE1BX0JVUlNUIDw8IFR4RE1B
U2hpZnQpIHwgKEludGVyRnJhbWVHYXAgPDwKLQkJCQkJCVR4SW50ZXJGcmFtZUdhcFNoaWZ0KSk7
Ci0JdHAtPmNwX2NtZCB8PSBSVExfUjE2KENQbHVzQ21kKTsKLQlSVExfVzE2KENQbHVzQ21kLCB0
cC0+Y3BfY21kKTsKKwlSVExfVzMyKFR4Q29uZmlnLCAoVFhfRE1BX0JVUlNUIDw8IFR4RE1BU2hp
ZnQpIHwKKwkJKEludGVyRnJhbWVHYXAgPDwgVHhJbnRlckZyYW1lR2FwU2hpZnQpKTsKIAotCWlm
ICgodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfRCkgfHwKLQkgICAgKHRwLT5t
YWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSX0UpKSB7CisJdHAtPmNwX2NtZCB8PSBSVExf
UjE2KENQbHVzQ21kKSB8IFBDSU11bFJXOworCisJaWYgKCh0cC0+bWFjX3ZlcnNpb24gPT0gUlRM
X0dJR0FfTUFDX1ZFUl8wMikgfHwKKwkgICAgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9N
QUNfVkVSXzAzKSkgewogCQlkcHJpbnRrKEtFUk5fSU5GTyBQRlggIlNldCBNQUMgUmVnIEMrQ1Ig
T2Zmc2V0IDB4RTAuICIKIAkJCSJCaXQtMyBhbmQgYml0LTE0IE1VU1QgYmUgMVxuIik7Ci0JCXRw
LT5jcF9jbWQgfD0gKDEgPDwgMTQpIHwgUENJTXVsUlc7Ci0JCVJUTF9XMTYoQ1BsdXNDbWQsIHRw
LT5jcF9jbWQpOworCQl0cC0+Y3BfY21kIHw9ICgxIDw8IDE0KTsKIAl9CiAKKwlSVExfVzE2KENQ
bHVzQ21kLCB0cC0+Y3BfY21kKTsKKwogCS8qCiAJICogVW5kb2N1bWVudGVkIGNvcm5lci4gU3Vw
cG9zZWRseToKIAkgKiAoVHhUaW1lciA8PCAxMikgfCAoVHhQYWNrZXRzIDw8IDgpIHwgKFJ4VGlt
ZXIgPDwgNCkgfCBSeFBhY2tldHMKQEAgLTE4MjksOCArMTkwOCwxMSBAQCBydGw4MTY5X2h3X3N0
YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJUlRMX1czMihUeERlc2NTdGFydEFkZHJIaWdo
LCAoKHU2NCkgdHAtPlR4UGh5QWRkciA+PiAzMikpOwogCVJUTF9XMzIoUnhEZXNjQWRkckxvdywg
KCh1NjQpIHRwLT5SeFBoeUFkZHIgJiBETUFfMzJCSVRfTUFTSykpOwogCVJUTF9XMzIoUnhEZXNj
QWRkckhpZ2gsICgodTY0KSB0cC0+UnhQaHlBZGRyID4+IDMyKSk7CisJUlRMX1c4KENoaXBDbWQs
IENtZFR4RW5iIHwgQ21kUnhFbmIpOwogCVJUTF9XOChDZmc5MzQ2LCBDZmc5MzQ2X0xvY2spOwot
CXVkZWxheSgxMCk7CisKKwkvKiBJbml0aWFsbHkgYSAxMCB1cyBkZWxheS4gVHVybmVkIGl0IGlu
dG8gYSBQQ0kgY29tbWl0LiAtIEZSICovCisJUlRMX1I4KEludHJNYXNrKTsKIAogCVJUTF9XMzIo
UnhNaXNzZWQsIDApOwogCkBAIC0xODQyLDYgKzE5MjQsOCBAQCBydGw4MTY5X2h3X3N0YXJ0KHN0
cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJLyogRW5hYmxlIGFsbCBrbm93biBpbnRlcnJ1cHRzIGJ5
IHNldHRpbmcgdGhlIGludGVycnVwdCBtYXNrLiAqLwogCVJUTF9XMTYoSW50ck1hc2ssIHJ0bDgx
NjlfaW50cl9tYXNrKTsKIAorCV9fcnRsODE2OV9zZXRfbWFjX2FkZHIoZGV2LCBpb2FkZHIpOwor
CiAJbmV0aWZfc3RhcnRfcXVldWUoZGV2KTsKIH0KIApAQCAtMTkxMCwxNyArMTk5NCwxOCBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgcnRsODE2OV9tYXBfdG9fYXNpYyhzCiB9CiAKIHN0YXRpYyBpbnQg
cnRsODE2OV9hbGxvY19yeF9za2Ioc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBza19idWZm
ICoqc2tfYnVmZiwKLQkJCQlzdHJ1Y3QgUnhEZXNjICpkZXNjLCBpbnQgcnhfYnVmX3N6KQorCQkJ
CXN0cnVjdCBSeERlc2MgKmRlc2MsIGludCByeF9idWZfc3osCisJCQkJdW5zaWduZWQgaW50IGFs
aWduKQogewogCXN0cnVjdCBza19idWZmICpza2I7CiAJZG1hX2FkZHJfdCBtYXBwaW5nOwogCWlu
dCByZXQgPSAwOwogCi0Jc2tiID0gZGV2X2FsbG9jX3NrYihyeF9idWZfc3ogKyBORVRfSVBfQUxJ
R04pOworCXNrYiA9IGRldl9hbGxvY19za2IocnhfYnVmX3N6ICsgYWxpZ24pOwogCWlmICghc2ti
KQogCQlnb3RvIGVycl9vdXQ7CiAKLQlza2JfcmVzZXJ2ZShza2IsIE5FVF9JUF9BTElHTik7CisJ
c2tiX3Jlc2VydmUoc2tiLCBhbGlnbik7CiAJKnNrX2J1ZmYgPSBza2I7CiAKIAltYXBwaW5nID0g
cGNpX21hcF9zaW5nbGUocGRldiwgc2tiLT5kYXRhLCByeF9idWZfc3osCkBAIC0xOTUzLDE1ICsy
MDM4LDE1IEBAIHN0YXRpYyB1MzIgcnRsODE2OV9yeF9maWxsKHN0cnVjdCBydGw4MTYKIAkJCSAg
IHUzMiBzdGFydCwgdTMyIGVuZCkKIHsKIAl1MzIgY3VyOwotCQorCiAJZm9yIChjdXIgPSBzdGFy
dDsgZW5kIC0gY3VyID4gMDsgY3VyKyspIHsKIAkJaW50IHJldCwgaSA9IGN1ciAlIE5VTV9SWF9E
RVNDOwogCiAJCWlmICh0cC0+Unhfc2tidWZmW2ldKQogCQkJY29udGludWU7Ci0JCQkKKwogCQly
ZXQgPSBydGw4MTY5X2FsbG9jX3J4X3NrYih0cC0+cGNpX2RldiwgdHAtPlJ4X3NrYnVmZiArIGks
Ci0JCQkJCSAgIHRwLT5SeERlc2NBcnJheSArIGksIHRwLT5yeF9idWZfc3opOworCQkJdHAtPlJ4
RGVzY0FycmF5ICsgaSwgdHAtPnJ4X2J1Zl9zeiwgdHAtPmFsaWduKTsKIAkJaWYgKHJldCA8IDAp
CiAJCQlicmVhazsKIAl9CkBAIC0yMTkwLDggKzIyNzUsOCBAQCBzdGF0aWMgaW50IHJ0bDgxNjlf
c3RhcnRfeG1pdChzdHJ1Y3Qgc2tfCiAJZG1hX2FkZHJfdCBtYXBwaW5nOwogCXUzMiBzdGF0dXMs
IGxlbjsKIAl1MzIgb3B0czE7Ci0JaW50IHJldCA9IDA7Ci0JCisJaW50IHJldCA9IE5FVERFVl9U
WF9PSzsKKwogCWlmICh1bmxpa2VseShUWF9CVUZGU19BVkFJTCh0cCkgPCBza2Jfc2hpbmZvKHNr
YiktPm5yX2ZyYWdzKSkgewogCQlpZiAobmV0aWZfbXNnX2Rydih0cCkpIHsKIAkJCXByaW50ayhL
RVJOX0VSUgpAQCAtMjI1NSw3ICsyMzQwLDcgQEAgb3V0OgogCiBlcnJfc3RvcDoKIAluZXRpZl9z
dG9wX3F1ZXVlKGRldik7Ci0JcmV0ID0gMTsKKwlyZXQgPSBORVRERVZfVFhfQlVTWTsKIGVycl91
cGRhdGVfc3RhdHM6CiAJdHAtPnN0YXRzLnR4X2Ryb3BwZWQrKzsKIAlnb3RvIG91dDsKQEAgLTIz
NzIsMTYgKzI0NTcsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIHJ0bDgxNjlfcnhfY3N1bShzdHJ1
YwogfQogCiBzdGF0aWMgaW5saW5lIGludCBydGw4MTY5X3RyeV9yeF9jb3B5KHN0cnVjdCBza19i
dWZmICoqc2tfYnVmZiwgaW50IHBrdF9zaXplLAotCQkJCSAgICAgIHN0cnVjdCBSeERlc2MgKmRl
c2MsIGludCByeF9idWZfc3opCisJCQkJICAgICAgc3RydWN0IFJ4RGVzYyAqZGVzYywgaW50IHJ4
X2J1Zl9zeiwKKwkJCQkgICAgICB1bnNpZ25lZCBpbnQgYWxpZ24pCiB7CiAJaW50IHJldCA9IC0x
OwogCiAJaWYgKHBrdF9zaXplIDwgcnhfY29weWJyZWFrKSB7CiAJCXN0cnVjdCBza19idWZmICpz
a2I7CiAKLQkJc2tiID0gZGV2X2FsbG9jX3NrYihwa3Rfc2l6ZSArIE5FVF9JUF9BTElHTik7CisJ
CXNrYiA9IGRldl9hbGxvY19za2IocGt0X3NpemUgKyBhbGlnbik7CiAJCWlmIChza2IpIHsKLQkJ
CXNrYl9yZXNlcnZlKHNrYiwgTkVUX0lQX0FMSUdOKTsKKwkJCXNrYl9yZXNlcnZlKHNrYiwgYWxp
Z24pOwogCQkJZXRoX2NvcHlfYW5kX3N1bShza2IsIHNrX2J1ZmZbMF0tPmRhdGEsIHBrdF9zaXpl
LCAwKTsKIAkJCSpza19idWZmID0gc2tiOwogCQkJcnRsODE2OV9tYXJrX3RvX2FzaWMoZGVzYywg
cnhfYnVmX3N6KTsKQEAgLTI0MjcsNiArMjUxMywxMCBAQCBydGw4MTY5X3J4X2ludGVycnVwdChz
dHJ1Y3QgbmV0X2RldmljZSAqCiAJCQkJdHAtPnN0YXRzLnJ4X2xlbmd0aF9lcnJvcnMrKzsKIAkJ
CWlmIChzdGF0dXMgJiBSeENSQykKIAkJCQl0cC0+c3RhdHMucnhfY3JjX2Vycm9ycysrOworCQkJ
aWYgKHN0YXR1cyAmIFJ4Rk9WRikgeworCQkJCXJ0bDgxNjlfc2NoZWR1bGVfd29yayhkZXYsIHJ0
bDgxNjlfcmVzZXRfdGFzayk7CisJCQkJdHAtPnN0YXRzLnJ4X2ZpZm9fZXJyb3JzKys7CisJCQl9
CiAJCQlydGw4MTY5X21hcmtfdG9fYXNpYyhkZXNjLCB0cC0+cnhfYnVmX3N6KTsKIAkJfSBlbHNl
IHsKIAkJCXN0cnVjdCBza19idWZmICpza2IgPSB0cC0+Unhfc2tidWZmW2VudHJ5XTsKQEAgLTI0
NDcsMTMgKzI1MzcsMTMgQEAgcnRsODE2OV9yeF9pbnRlcnJ1cHQoc3RydWN0IG5ldF9kZXZpY2Ug
KgogCQkJfQogCiAJCQlydGw4MTY5X3J4X2NzdW0oc2tiLCBkZXNjKTsKLQkJCQorCiAJCQlwY2lf
ZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUodHAtPnBjaV9kZXYsCiAJCQkJbGU2NF90b19jcHUoZGVz
Yy0+YWRkciksIHRwLT5yeF9idWZfc3osCiAJCQkJUENJX0RNQV9GUk9NREVWSUNFKTsKIAogCQkJ
aWYgKHJ0bDgxNjlfdHJ5X3J4X2NvcHkoJnNrYiwgcGt0X3NpemUsIGRlc2MsCi0JCQkJCQl0cC0+
cnhfYnVmX3N6KSkgeworCQkJCQkJdHAtPnJ4X2J1Zl9zeiwgdHAtPmFsaWduKSkgewogCQkJCXBj
aV9hY3Rpb24gPSBwY2lfdW5tYXBfc2luZ2xlOwogCQkJCXRwLT5SeF9za2J1ZmZbZW50cnldID0g
TlVMTDsKIAkJCX0KQEAgLTI1NDMsNyArMjYzMyw3IEBAIHJ0bDgxNjlfaW50ZXJydXB0KGludCBp
cnEsIHZvaWQgKmRldl9pbnMKIAkJCV9fbmV0aWZfcnhfc2NoZWR1bGUoZGV2KTsKIAkJZWxzZSBp
ZiAobmV0aWZfbXNnX2ludHIodHApKSB7CiAJCQlwcmludGsoS0VSTl9JTkZPICIlczogaW50ZXJy
dXB0ICUwNHggdGFrZW4gaW4gcG9sbFxuIiwKLQkJCSAgICAgICBkZXYtPm5hbWUsIHN0YXR1cyk7
CQorCQkJICAgICAgIGRldi0+bmFtZSwgc3RhdHVzKTsKIAkJfQogCQlicmVhazsKICNlbHNlCkBA
IC0yNzE2LDYgKzI4MDYsMTUgQEAgcnRsODE2OV9zZXRfcnhfbW9kZShzdHJ1Y3QgbmV0X2Rldmlj
ZSAqZAogCXRtcCA9IHJ0bDgxNjlfcnhfY29uZmlnIHwgcnhfbW9kZSB8CiAJICAgICAgKFJUTF9S
MzIoUnhDb25maWcpICYgcnRsX2NoaXBfaW5mb1t0cC0+Y2hpcHNldF0uUnhDb25maWdNYXNrKTsK
IAorCWlmICgodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfMTEpIHx8CisJICAg
ICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZFUl8xMikgfHwKKwkgICAgKHRwLT5t
YWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzEzKSB8fAorCSAgICAodHAtPm1hY192ZXJz
aW9uID09IFJUTF9HSUdBX01BQ19WRVJfMTQpIHx8CisJICAgICh0cC0+bWFjX3ZlcnNpb24gPT0g
UlRMX0dJR0FfTUFDX1ZFUl8xNSkpIHsKKwkJbWNfZmlsdGVyWzBdID0gMHhmZmZmZmZmZjsKKwkJ
bWNfZmlsdGVyWzFdID0gMHhmZmZmZmZmZjsKKwl9CisKIAlSVExfVzMyKFJ4Q29uZmlnLCB0bXAp
OwogCVJUTF9XMzIoTUFSMCArIDAsIG1jX2ZpbHRlclswXSk7CiAJUlRMX1czMihNQVIwICsgNCwg
bWNfZmlsdGVyWzFdKTsKQEAgLTI3NDEsNyArMjg0MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgbmV0X2Rl
dmljZV9zdGF0cyAqcnRsODE2OV8KIAkJUlRMX1czMihSeE1pc3NlZCwgMCk7CiAJCXNwaW5fdW5s
b2NrX2lycXJlc3RvcmUoJnRwLT5sb2NrLCBmbGFncyk7CiAJfQotCQkKKwogCXJldHVybiAmdHAt
PnN0YXRzOwogfQogCkBAIC0yODA5LDcgKzI5MDgsNyBAQCBzdGF0aWMgc3RydWN0IHBjaV9kcml2
ZXIgcnRsODE2OV9wY2lfZHJpCiBzdGF0aWMgaW50IF9faW5pdAogcnRsODE2OV9pbml0X21vZHVs
ZSh2b2lkKQogewotCXJldHVybiBwY2lfbW9kdWxlX2luaXQoJnJ0bDgxNjlfcGNpX2RyaXZlcik7
CisJcmV0dXJuIHBjaV9yZWdpc3Rlcl9kcml2ZXIoJnJ0bDgxNjlfcGNpX2RyaXZlcik7CiB9CiAK
IHN0YXRpYyB2b2lkIF9fZXhpdAo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>98078</attachid>
            <date>2006-09-25 16:18 0000</date>
            <desc>patch -p1 --dry-run --verbose Outputs</desc>
            <filename>patching.out</filename>
            <type>text/plain</type>
            <data encoding="base64">T3V0cHV0IG9mICdwYXRjaCAtcDEgLS1kcnktcnVuIC0tdmVyYm9zZScgZnJvbSBEYW5pZWwncyBw
YXRjaDoKCkhtbS4uLiAgTG9va3MgbGlrZSBhIHVuaWZpZWQgZGlmZiB0byBtZS4uLgpUaGUgdGV4
dCBsZWFkaW5nIHVwIHRvIHRoaXMgd2FzOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8RnJv
bTogRnJhbmNvaXMgUm9taWV1IDxyb21pZXVAZnIuem9yZWlsLmNvbT4KfERhdGU6IFdlZCwgMjYg
SnVsIDIwMDYgMjE6MTQ6MTMgKzAwMDAgKCswMjAwKQp8U3ViamVjdDogcjgxNjk6IHN5bmMgd2l0
aCB2ZW5kb3IncyBkcml2ZXIKfFgtR2l0LVRhZzogdjIuNi4xOC1yYzMKfFgtR2l0LVVybDogaHR0
cDovL3d3dy5rZXJuZWwub3JnL2dpdC8/cD1saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4
LTIuNi5naXQ7YT1jb21taXRkaWZmO2g9YmNmMGJmOTBjZDllOTI0MmI2NmUwNTYzYjZhOGM4ZGIy
ZTRjMjYyYwp8CnxyODE2OTogc3luYyB3aXRoIHZlbmRvcidzIGRyaXZlcgp8CnwtIGFkZCBzZXZl
cmFsIFBDSSBJRCBmb3IgdGhlIFBDSS1FIGFkYXB0ZXJzIDsKfC0gbmV3IGlkZW50aWZpY2F0aW9u
IHN0cmluZ3MgOwp8LSB0aGUgUlRMX0dJR0FfTUFDX1ZFUl8gZGVmaW5lcyBoYXZlIGJlZW4gcmVu
YW1lZCB0byBjbG9zZWx5IG1hdGNoIHRoZQp8ICBvdXQtb2YtdHJlZSBkcml2ZXIuIEl0IG1ha2Vz
IHRoZSBjb21wYXJpc29uIGxlc3MgaGFpcnkgOwp8LSB2YXJpb3VzIG1hZ2ljIDsKfC0gdGhlIFBD
SSByZWdpb24gZm9yIHRoZSBkZXZpY2Ugd2l0aCBQQ0kgSUQgMHg4MTM2IGlzIGd1ZXNzZWQuCnwg
IEV4cGxhbmF0aW9uOiB0aGUgaW4ta2VybmVsIExpbnV4IGRyaXZlciBpcyB3cml0dGVuIHRvIGFs
bG93IE1NIHJlZ2lzdGVyCnwgIGFjY2Vzc2VzIGFuZCBhdm9pZCB0aGUgSU8gdGF4LiBUaGUgcmVs
ZXZhbnQgQkFSIHJlZ2lzdGVyIHdhcyBmb3VuZCBhdAp8ICBiYXNlIGFkZHJlc3MgMSBmb3IgdGhl
IHBsYWluLW9sZCBQQ0kgODE2OS4gVXNlciByZXBvcnRlZCBsc3BjaSBzaG93IHRoYXQKfCAgaXQg
aXMgZm91bmQgYXQgYmFzZSBhZGRyZXNzIDIgZm9yIHRoZSBuZXcgR2lnYWJpdCBQQ0ktRSA4MTZ7
OC85fS4KfCAgVHlwaWNhbGx5Ogp8ICAwMTowMC4wIEV0aGVybmV0IGNvbnRyb2xsZXI6IFJlYWx0
ZWsgU2VtaWNvbmR1Y3RvciBDby4sIEx0ZC46IFVua25vd24gZGV2aWNlIDgxNjggKHJldiAwMSkK
fCAgICAgICAgICBTdWJzeXN0ZW06IFVua25vd24gZGV2aWNlIDE2MzE6ZTAxNQp8ICAgICAgICAg
IENvbnRyb2w6IEkvTysgTWVtKyBCdXNNYXN0ZXIrIFNwZWNDeWNsZS0gTWVtV0lOVi0gVkdBU25v
b3AtIFBhckVyci0gU3RlcHBpbmctIFNFUlItIEZhc3RCMkItCnwgICAgICAgICAgU3RhdHVzOiBD
YXArIDY2TWh6LSBVREYtIEZhc3RCMkItIFBhckVyci0gREVWU0VMPWZhc3QgPlRBYm9ydC0gPFRB
Ym9ydC0gPE1BYm9ydC0gPlNFUlItIDxQRVJSLQp8ICAgICAgICAgIExhdGVuY3k6IDAsIGNhY2hl
IGxpbmUgc2l6ZSAyMAp8ICAgICAgICAgIEludGVycnVwdDogcGluIEEgcm91dGVkIHRvIElSUSAx
Ngp8ICAgICAgICAgIFJlZ2lvbiAwOiBJL08gcG9ydHMgYXQgYjgwMCBbc2l6ZT0yNTZdCnwgICAg
ICAgICAgUmVnaW9uIDI6IE1lbW9yeSBhdCBmZjdmZjAwMCAoNjQtYml0LCBub24tcHJlZmV0Y2hh
YmxlKSBbc2l6ZT00S10KfCAgICAgICAgICBeXl5eXl5eXgp8ICBTbyBmYXIgSSBoYXZlIG5vdCBy
ZWNlaXZlZCBhbnkgbHNwY2kgcmVwb3J0IGZvciB0aGUgMHg4MTM2IGFuZAp8ICBSZWFsdGVrJ3Mg
ZHJpdmVyIGRvIG5vdCBoZWxwOiBiZSBpdCB1bmRlciBCU0Qgb3IgTGludXgsIHRoZWlyIHIxMDAw
IGRyaXZlcgp8ICBpbmNsdWRlIGEgVVNFX0lPX1NQQUNFICNkZWZpbmUgYnV0IHRoZSBiYXIgYWRk
cmVzcyBpcyBhbHdheXMgaGFyZGNvZGVkCnwgIHRvIDEgaW4gdGhlIE1NIGNhc2UuIDpvLwp8LSB0
aGUgODE2OCBoYXMgYmVlbiByZXBvcnRlZCB0byByZXF1aXJlIGFuIGV4dHJhIGFsaWdubWVudCBm
b3IgaXRzIHJlY2VpdmUKfCAgYnVmZmVycy4gVGhlIHN0YXR1cyBvZiB0aGUgODE2NyBhbmQgODEz
NiBpcyBub3Qga25vd24gaW4gdGhpcyByZWdhcmQuCnwKfFNpZ25lZC1vZmYtYnk6IEZyYW5jb2lz
IFJvbWlldSA8cm9taWV1QGZyLnpvcmVpbC5jb20+CnwtLS0KfAp8LS0tIGEvZHJpdmVycy9uZXQv
cjgxNjkuYwp8KysrIGIvZHJpdmVycy9uZXQvcjgxNjkuYwotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQpQYXRjaGluZyBmaWxlIGRyaXZlcnMvbmV0L3I4MTY5LmMgdXNpbmcgUGxhbiBBLi4uCkh1
bmsgIzEgc3VjY2VlZGVkIGF0IDE1MC4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTcxLgpIdW5rICMz
IHN1Y2NlZWRlZCBhdCAxNzkuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDM3NSAob2Zmc2V0IC0xIGxp
bmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgNDYzIChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICM2
IHN1Y2NlZWRlZCBhdCA3ODAgd2l0aCBmdXp6IDEgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzcg
c3VjY2VlZGVkIGF0IDExODkgKG9mZnNldCAtOCBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0
IDEyMTAgKG9mZnNldCAtOCBsaW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDEyOTUgKG9mZnNl
dCAtOCBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAxMzA1IChvZmZzZXQgLTggbGluZXMp
LgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMTM0NCAob2Zmc2V0IC04IGxpbmVzKS4KSHVuayAjMTIg
c3VjY2VlZGVkIGF0IDEzODAgKG9mZnNldCAtOCBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBh
dCAxMzkyIChvZmZzZXQgLTggbGluZXMpLgpIdW5rICMxNCBGQUlMRUQgYXQgMTQ3OC4KSHVuayAj
MTUgRkFJTEVEIGF0IDE1MDEuCkh1bmsgIzE2IEZBSUxFRCBhdCAxNTUzLgpIdW5rICMxNyBGQUlM
RUQgYXQgMTYwMC4KSHVuayAjMTggc3VjY2VlZGVkIGF0IDE2NzIgKG9mZnNldCAtMzYgbGluZXMp
LgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgMTY4MiB3aXRoIGZ1enogMiAob2Zmc2V0IC0zNCBsaW5l
cykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBhdCAxNjg5IChvZmZzZXQgLTM0IGxpbmVzKS4KSHVuayAj
MjEgc3VjY2VlZGVkIGF0IDE4MTYgKG9mZnNldCAtMjUgbGluZXMpLgpIdW5rICMyMiBzdWNjZWVk
ZWQgYXQgMTgyOSAob2Zmc2V0IC0yNSBsaW5lcykuCkh1bmsgIzIzIHN1Y2NlZWRlZCBhdCAxODY1
IChvZmZzZXQgLTI1IGxpbmVzKS4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDE4ODcgKG9mZnNldCAt
MjUgbGluZXMpLgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgMTk2OSAob2Zmc2V0IC0yNyBsaW5lcyku
Ckh1bmsgIzI2IHN1Y2NlZWRlZCBhdCAyMDE5IChvZmZzZXQgLTI3IGxpbmVzKS4KSHVuayAjMjcg
c3VjY2VlZGVkIGF0IDI0MzIgKG9mZnNldCAtMjcgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQg
YXQgMjUwOCAob2Zmc2V0IC0zMSBsaW5lcykuCkh1bmsgIzI5IHN1Y2NlZWRlZCBhdCAyNzc3IChv
ZmZzZXQgLTMxIGxpbmVzKS4KNCBvdXQgb2YgMjkgaHVua3MgRkFJTEVEIC0tIHNhdmluZyByZWpl
Y3RzIHRvIGZpbGUgZHJpdmVycy9uZXQvcjgxNjkuYy5yZWoKZG9uZQoKT3V0cHV0IG9mICdwYXRj
aCAtcDEgLS1kcnktcnVuIC0tdmVyYm9zZScgZnJvbSBteSBtbSBwYXRjaDoKCkhtbS4uLiAgTG9v
a3MgbGlrZSBhIHVuaWZpZWQgZGlmZiB0byBtZS4uLgpUaGUgdGV4dCBsZWFkaW5nIHVwIHRvIHRo
aXMgd2FzOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8LS0tIGxpbnV4LTIuNi4xOC1yYzYv
ZHJpdmVycy9uZXQvcjgxNjkuYwkyMDA2LTA5LTA0IDEzOjUwOjUyLjAwMDAwMDAwMCAtMDcwMAp8
KysrIGRldmVsL2RyaXZlcnMvbmV0L3I4MTY5LmMJMjAwNi0wOS0wOCAwMDo0ODo0NC4wMDAwMDAw
MDAgLTA3MDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KUGF0Y2hpbmcgZmlsZSBkcml2ZXJz
L25ldC9yODE2OS5jIHVzaW5nIFBsYW4gQS4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA2LgpIdW5r
ICMyIHN1Y2NlZWRlZCBhdCA4MS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMTUwLgpIdW5rICM0IHN1
Y2NlZWRlZCBhdCAxNzEuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDE3OS4KSHVuayAjNiBzdWNjZWVk
ZWQgYXQgMjg2LgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAzNTYuCkh1bmsgIzggc3VjY2VlZGVkIGF0
IDQzOS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgNDk1LgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgNTA1
LgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgNTQ5LgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgNTcxLgpI
dW5rICMxMyBzdWNjZWVkZWQgYXQgNjEwLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgNjUyLgpIdW5r
ICMxNSBzdWNjZWVkZWQgYXQgNzQ3LgpIdW5rICMxNiBzdWNjZWVkZWQgYXQgODA5LgpIdW5rICMx
NyBzdWNjZWVkZWQgYXQgODI0LgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgOTU3LgpIdW5rICMxOSBz
dWNjZWVkZWQgYXQgOTgyLgpIdW5rICMyMCBzdWNjZWVkZWQgYXQgMTAwNy4KSHVuayAjMjEgc3Vj
Y2VlZGVkIGF0IDEwOTcuCkh1bmsgIzIyIHN1Y2NlZWRlZCBhdCAxMTU3LgpIdW5rICMyMyBzdWNj
ZWVkZWQgYXQgMTE2Ni4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDExODcuCkh1bmsgIzI1IHN1Y2Nl
ZWRlZCBhdCAxMjA0LgpIdW5rICMyNiBzdWNjZWVkZWQgYXQgMTI3Mi4KSHVuayAjMjcgc3VjY2Vl
ZGVkIGF0IDEyODIuCkh1bmsgIzI4IHN1Y2NlZWRlZCBhdCAxMzIxLgpIdW5rICMyOSBzdWNjZWVk
ZWQgYXQgMTM1Ny4KSHVuayAjMzAgc3VjY2VlZGVkIGF0IDEzNjkuCkh1bmsgIzMxIHN1Y2NlZWRl
ZCBhdCAxMzk3LgpIdW5rICMzMiBzdWNjZWVkZWQgYXQgMTQ0MS4KSHVuayAjMzMgc3VjY2VlZGVk
IGF0IDE1MzQuCkh1bmsgIzM0IHN1Y2NlZWRlZCBhdCAxNTkyLgpIdW5rICMzNSBzdWNjZWVkZWQg
YXQgMTYxOC4KSHVuayAjMzYgc3VjY2VlZGVkIGF0IDE2MzkuCkh1bmsgIzM3IHN1Y2NlZWRlZCBh
dCAxNjUxLgpIdW5rICMzOCBzdWNjZWVkZWQgYXQgMTY1OC4KSHVuayAjMzkgc3VjY2VlZGVkIGF0
IDE2ODEuCkh1bmsgIzQwIHN1Y2NlZWRlZCBhdCAxNzA1LgpIdW5rICM0MSBzdWNjZWVkZWQgYXQg
MTcyMC4KSHVuayAjNDIgc3VjY2VlZGVkIGF0IDE4MzguCkh1bmsgIzQzIHN1Y2NlZWRlZCBhdCAx
ODg0LgpIdW5rICM0NCBzdWNjZWVkZWQgYXQgMTkwOC4KSHVuayAjNDUgc3VjY2VlZGVkIGF0IDE5
MjQuCkh1bmsgIzQ2IHN1Y2NlZWRlZCBhdCAxOTk0LgpIdW5rICM0NyBzdWNjZWVkZWQgYXQgMjAz
OC4KSHVuayAjNDggc3VjY2VlZGVkIGF0IDIyNzUuCkh1bmsgIzQ5IHN1Y2NlZWRlZCBhdCAyMzQw
LgpIdW5rICM1MCBzdWNjZWVkZWQgYXQgMjQ1Ny4KSHVuayAjNTEgc3VjY2VlZGVkIGF0IDI1MTMu
Ckh1bmsgIzUyIHN1Y2NlZWRlZCBhdCAyNTM3LgpIdW5rICM1MyBzdWNjZWVkZWQgYXQgMjYzMy4K
SHVuayAjNTQgc3VjY2VlZGVkIGF0IDI4MDYuCkh1bmsgIzU1IHN1Y2NlZWRlZCBhdCAyODQwLgpI
dW5rICM1NiBzdWNjZWVkZWQgYXQgMjkwOC4KZG9uZQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98087</attachid>
            <date>2006-09-25 18:30 0000</date>
            <desc>new patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <data encoding="base64">RnJvbTogRnJhbmNvaXMgUm9taWV1IDxyb21pZXVAZnIuem9yZWlsLmNvbT4KRGF0ZTogV2VkLCAy
NiBKdWwgMjAwNiAyMToxNDoxMyArMDAwMCAoKzAyMDApClN1YmplY3Q6IHI4MTY5OiBzeW5jIHdp
dGggdmVuZG9yJ3MgZHJpdmVyClgtR2l0LVRhZzogdjIuNi4xOC1yYzMKWC1HaXQtVXJsOiBodHRw
Oi8vd3d3Lmtlcm5lbC5vcmcvZ2l0Lz9wPWxpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXgt
Mi42LmdpdDthPWNvbW1pdGRpZmY7aD1iY2YwYmY5MGNkOWU5MjQyYjY2ZTA1NjNiNmE4YzhkYjJl
NGMyNjJjCgpyODE2OTogc3luYyB3aXRoIHZlbmRvcidzIGRyaXZlcgoKLSBhZGQgc2V2ZXJhbCBQ
Q0kgSUQgZm9yIHRoZSBQQ0ktRSBhZGFwdGVycyA7Ci0gbmV3IGlkZW50aWZpY2F0aW9uIHN0cmlu
Z3MgOwotIHRoZSBSVExfR0lHQV9NQUNfVkVSXyBkZWZpbmVzIGhhdmUgYmVlbiByZW5hbWVkIHRv
IGNsb3NlbHkgbWF0Y2ggdGhlCiAgb3V0LW9mLXRyZWUgZHJpdmVyLiBJdCBtYWtlcyB0aGUgY29t
cGFyaXNvbiBsZXNzIGhhaXJ5IDsKLSB2YXJpb3VzIG1hZ2ljIDsKLSB0aGUgUENJIHJlZ2lvbiBm
b3IgdGhlIGRldmljZSB3aXRoIFBDSSBJRCAweDgxMzYgaXMgZ3Vlc3NlZC4KICBFeHBsYW5hdGlv
bjogdGhlIGluLWtlcm5lbCBMaW51eCBkcml2ZXIgaXMgd3JpdHRlbiB0byBhbGxvdyBNTSByZWdp
c3RlcgogIGFjY2Vzc2VzIGFuZCBhdm9pZCB0aGUgSU8gdGF4LiBUaGUgcmVsZXZhbnQgQkFSIHJl
Z2lzdGVyIHdhcyBmb3VuZCBhdAogIGJhc2UgYWRkcmVzcyAxIGZvciB0aGUgcGxhaW4tb2xkIFBD
SSA4MTY5LiBVc2VyIHJlcG9ydGVkIGxzcGNpIHNob3cgdGhhdAogIGl0IGlzIGZvdW5kIGF0IGJh
c2UgYWRkcmVzcyAyIGZvciB0aGUgbmV3IEdpZ2FiaXQgUENJLUUgODE2ezgvOX0uCiAgVHlwaWNh
bGx5OgogIDAxOjAwLjAgRXRoZXJuZXQgY29udHJvbGxlcjogUmVhbHRlayBTZW1pY29uZHVjdG9y
IENvLiwgTHRkLjogVW5rbm93biBkZXZpY2UgODE2OCAocmV2IDAxKQogICAgICAgICAgU3Vic3lz
dGVtOiBVbmtub3duIGRldmljZSAxNjMxOmUwMTUKICAgICAgICAgIENvbnRyb2w6IEkvTysgTWVt
KyBCdXNNYXN0ZXIrIFNwZWNDeWNsZS0gTWVtV0lOVi0gVkdBU25vb3AtIFBhckVyci0gU3RlcHBp
bmctIFNFUlItIEZhc3RCMkItCiAgICAgICAgICBTdGF0dXM6IENhcCsgNjZNaHotIFVERi0gRmFz
dEIyQi0gUGFyRXJyLSBERVZTRUw9ZmFzdCA+VEFib3J0LSA8VEFib3J0LSA8TUFib3J0LSA+U0VS
Ui0gPFBFUlItCiAgICAgICAgICBMYXRlbmN5OiAwLCBjYWNoZSBsaW5lIHNpemUgMjAKICAgICAg
ICAgIEludGVycnVwdDogcGluIEEgcm91dGVkIHRvIElSUSAxNgogICAgICAgICAgUmVnaW9uIDA6
IEkvTyBwb3J0cyBhdCBiODAwIFtzaXplPTI1Nl0KICAgICAgICAgIFJlZ2lvbiAyOiBNZW1vcnkg
YXQgZmY3ZmYwMDAgKDY0LWJpdCwgbm9uLXByZWZldGNoYWJsZSkgW3NpemU9NEtdCiAgICAgICAg
ICBeXl5eXl5eXgogIFNvIGZhciBJIGhhdmUgbm90IHJlY2VpdmVkIGFueSBsc3BjaSByZXBvcnQg
Zm9yIHRoZSAweDgxMzYgYW5kCiAgUmVhbHRlaydzIGRyaXZlciBkbyBub3QgaGVscDogYmUgaXQg
dW5kZXIgQlNEIG9yIExpbnV4LCB0aGVpciByMTAwMCBkcml2ZXIKICBpbmNsdWRlIGEgVVNFX0lP
X1NQQUNFICNkZWZpbmUgYnV0IHRoZSBiYXIgYWRkcmVzcyBpcyBhbHdheXMgaGFyZGNvZGVkCiAg
dG8gMSBpbiB0aGUgTU0gY2FzZS4gOm8vCi0gdGhlIDgxNjggaGFzIGJlZW4gcmVwb3J0ZWQgdG8g
cmVxdWlyZSBhbiBleHRyYSBhbGlnbm1lbnQgZm9yIGl0cyByZWNlaXZlCiAgYnVmZmVycy4gVGhl
IHN0YXR1cyBvZiB0aGUgODE2NyBhbmQgODEzNiBpcyBub3Qga25vd24gaW4gdGhpcyByZWdhcmQu
CgpTaWduZWQtb2ZmLWJ5OiBGcmFuY29pcyBSb21pZXUgPHJvbWlldUBmci56b3JlaWwuY29tPgot
LS0KCkluZGV4OiBsaW51eC0yLjYuMTgvZHJpdmVycy9uZXQvcjgxNjkuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBsaW51eC0yLjYuMTgub3JpZy9kcml2ZXJzL25ldC9yODE2OS5jCisrKyBsaW51eC0yLjYuMTgv
ZHJpdmVycy9uZXQvcjgxNjkuYwpAQCAtMTUwLDExICsxNTAsMTYgQEAgc3RhdGljIGNvbnN0IGlu
dCBtdWx0aWNhc3RfZmlsdGVyX2xpbWl0IAogI2RlZmluZSBSVExfUjMyKHJlZykJCSgodW5zaWdu
ZWQgbG9uZykgcmVhZGwgKGlvYWRkciArIChyZWcpKSkKIAogZW51bSBtYWNfdmVyc2lvbiB7Ci0J
UlRMX0dJR0FfTUFDX1ZFUl9CID0gMHgwMCwKLQkvKiBSVExfR0lHQV9NQUNfVkVSX0MgPSAweDAz
LCAqLwotCVJUTF9HSUdBX01BQ19WRVJfRCA9IDB4MDEsCi0JUlRMX0dJR0FfTUFDX1ZFUl9FID0g
MHgwMiwKLQlSVExfR0lHQV9NQUNfVkVSX1ggPSAweDA0CS8qIEdyZWF0ZXIgdGhhbiBSVExfR0lH
QV9NQUNfVkVSX0UgKi8KKwlSVExfR0lHQV9NQUNfVkVSXzAxID0gMHgwMCwKKwlSVExfR0lHQV9N
QUNfVkVSXzAyID0gMHgwMSwKKwlSVExfR0lHQV9NQUNfVkVSXzAzID0gMHgwMiwKKwlSVExfR0lH
QV9NQUNfVkVSXzA0ID0gMHgwMywKKwlSVExfR0lHQV9NQUNfVkVSXzA1ID0gMHgwNCwKKwlSVExf
R0lHQV9NQUNfVkVSXzExID0gMHgwYiwKKwlSVExfR0lHQV9NQUNfVkVSXzEyID0gMHgwYywKKwlS
VExfR0lHQV9NQUNfVkVSXzEzID0gMHgwZCwKKwlSVExfR0lHQV9NQUNfVkVSXzE0ID0gMHgwZSwK
KwlSVExfR0lHQV9NQUNfVkVSXzE1ID0gMHgwZgogfTsKIAogZW51bSBwaHlfdmVyc2lvbiB7CkBA
IC0xNjYsNyArMTcxLDYgQEAgZW51bSBwaHlfdmVyc2lvbiB7CiAJUlRMX0dJR0FfUEhZX1ZFUl9I
ID0gMHgwOCwgLyogUEhZIFJlZyAweDAzIGJpdDAtMyA9PSAweDAwMDMgKi8KIH07CiAKLQogI2Rl
ZmluZSBfUihOQU1FLE1BQyxNQVNLKSBcCiAJeyAubmFtZSA9IE5BTUUsIC5tYWNfdmVyc2lvbiA9
IE1BQywgLlJ4Q29uZmlnTWFzayA9IE1BU0sgfQogCkBAIC0xNzUsMTkgKzE3OSw0NCBAQCBzdGF0
aWMgY29uc3Qgc3RydWN0IHsKIAl1OCBtYWNfdmVyc2lvbjsKIAl1MzIgUnhDb25maWdNYXNrOwkv
KiBDbGVhcnMgdGhlIGJpdHMgc3VwcG9ydGVkIGJ5IHRoaXMgY2hpcCAqLwogfSBydGxfY2hpcF9p
bmZvW10gPSB7Ci0JX1IoIlJUTDgxNjkiLAkJUlRMX0dJR0FfTUFDX1ZFUl9CLCAweGZmN2UxODgw
KSwKLQlfUigiUlRMODE2OXMvODExMHMiLAlSVExfR0lHQV9NQUNfVkVSX0QsIDB4ZmY3ZTE4ODAp
LAotCV9SKCJSVEw4MTY5cy84MTEwcyIsCVJUTF9HSUdBX01BQ19WRVJfRSwgMHhmZjdlMTg4MCks
Ci0JX1IoIlJUTDgxNjlzLzgxMTBzIiwJUlRMX0dJR0FfTUFDX1ZFUl9YLCAweGZmN2UxODgwKSwK
KwlfUigiUlRMODE2OSIsCQlSVExfR0lHQV9NQUNfVkVSXzAxLCAweGZmN2UxODgwKSwKKwlfUigi
UlRMODE2OXMvODExMHMiLAlSVExfR0lHQV9NQUNfVkVSXzAyLCAweGZmN2UxODgwKSwKKwlfUigi
UlRMODE2OXMvODExMHMiLAlSVExfR0lHQV9NQUNfVkVSXzAzLCAweGZmN2UxODgwKSwKKwlfUigi
UlRMODE2OXNiLzgxMTBzYiIsCVJUTF9HSUdBX01BQ19WRVJfMDQsIDB4ZmY3ZTE4ODApLAorCV9S
KCJSVEw4MTY5c2MvODExMHNjIiwJUlRMX0dJR0FfTUFDX1ZFUl8wNSwgMHhmZjdlMTg4MCksCisJ
X1IoIlJUTDgxNjhiLzgxMTFiIiwJUlRMX0dJR0FfTUFDX1ZFUl8xMSwgMHhmZjdlMTg4MCksIC8v
IFBDSS1FCisJX1IoIlJUTDgxNjhiLzgxMTFiIiwJUlRMX0dJR0FfTUFDX1ZFUl8xMiwgMHhmZjdl
MTg4MCksIC8vIFBDSS1FCisJX1IoIlJUTDgxMDFlIiwJCVJUTF9HSUdBX01BQ19WRVJfMTMsIDB4
ZmY3ZTE4ODApLCAvLyBQQ0ktRSA4MTM5CisJX1IoIlJUTDgxMDBlIiwJCVJUTF9HSUdBX01BQ19W
RVJfMTQsIDB4ZmY3ZTE4ODApLCAvLyBQQ0ktRSA4MTM5CisJX1IoIlJUTDgxMDBlIiwJCVJUTF9H
SUdBX01BQ19WRVJfMTUsIDB4ZmY3ZTE4ODApICAvLyBQQ0ktRSA4MTM5CiB9OwogI3VuZGVmIF9S
CiAKK2VudW0gY2ZnX3ZlcnNpb24geworCVJUTF9DRkdfMCA9IDB4MDAsCisJUlRMX0NGR18xLAor
CVJUTF9DRkdfMgorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB7CisJdW5zaWduZWQgaW50IHJl
Z2lvbjsKKwl1bnNpZ25lZCBpbnQgYWxpZ247Cit9IHJ0bF9jZmdfaW5mb1tdID0geworCVtSVExf
Q0ZHXzBdID0geyAxLCBORVRfSVBfQUxJR04gfSwKKwlbUlRMX0NGR18xXSA9IHsgMiwgTkVUX0lQ
X0FMSUdOIH0sCisJW1JUTF9DRkdfMl0gPSB7IDIsIDggfQorfTsKKwogc3RhdGljIHN0cnVjdCBw
Y2lfZGV2aWNlX2lkIHJ0bDgxNjlfcGNpX3RibFtdID0gewotCXsgUENJX0RFVklDRShQQ0lfVkVO
RE9SX0lEX1JFQUxURUssCTB4ODE2OSksIH0sCi0JeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURf
UkVBTFRFSywJMHg4MTI5KSwgfSwKLQl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9ETElOSywJ
MHg0MzAwKSwgfSwKLQl7IFBDSV9ERVZJQ0UoMHgxNmVjLAkJCTB4MDExNiksIH0sCi0JeyBQQ0lf
VkVORE9SX0lEX0xJTktTWVMsCQkweDEwMzIsIFBDSV9BTllfSUQsIDB4MDAyNCwgfSwKKwl7IFBD
SV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxMjkpLCAwLCAwLCBSVExfQ0ZHXzAg
fSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxMzYpLCAwLCAwLCBS
VExfQ0ZHXzEgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLAkweDgxNjcp
LCAwLCAwLCBSVExfQ0ZHXzEgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVL
LAkweDgxNjgpLCAwLCAwLCBSVExfQ0ZHXzIgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9J
RF9SRUFMVEVLLAkweDgxNjkpLCAwLCAwLCBSVExfQ0ZHXzAgfSwKKwl7IFBDSV9ERVZJQ0UoUENJ
X1ZFTkRPUl9JRF9ETElOSywJMHg0MzAwKSwgMCwgMCwgUlRMX0NGR18wIH0sCisJeyBQQ0lfREVW
SUNFKDB4MTZlYywJCQkweDAxMTYpLCAwLCAwLCBSVExfQ0ZHXzAgfSwKKwl7IFBDSV9WRU5ET1Jf
SURfTElOS1NZUywJCTB4MTAzMiwKKwkJUENJX0FOWV9JRCwgMHgwMDI0LCAwLCAwLCBSVExfQ0ZH
XzAgfSwKIAl7MCx9LAogfTsKIApAQCAtMzQ2LDYgKzM3NSw3IEBAIGVudW0gUlRMODE2OV9yZWdp
c3Rlcl9jb250ZW50IHsKIAlQSFlfQ2FwXzEwMF9GdWxsID0gMHgwMTAwLAogCiAJLyogUEhZXzEw
MDBfQ1RSTF9SRUcgPSA5ICovCisJUEhZX0NhcF8xMDAwX0hhbGYgPSAweDAxMDAsCiAJUEhZX0Nh
cF8xMDAwX0Z1bGwgPSAweDAyMDAsCiAKIAlQSFlfQ2FwX051bGwgPSAweDAsCkBAIC00MzMsNiAr
NDYzLDcgQEAgc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSB7CiAJZG1hX2FkZHJfdCBSeFBoeUFkZHI7
CiAJc3RydWN0IHNrX2J1ZmYgKlJ4X3NrYnVmZltOVU1fUlhfREVTQ107CS8qIFJ4IGRhdGEgYnVm
ZmVycyAqLwogCXN0cnVjdCByaW5nX2luZm8gdHhfc2tiW05VTV9UWF9ERVNDXTsJLyogVHggZGF0
YSBidWZmZXJzICovCisJdW5zaWduZWQgYWxpZ247CiAJdW5zaWduZWQgcnhfYnVmX3N6OwogCXN0
cnVjdCB0aW1lcl9saXN0IHRpbWVyOwogCXUxNiBjcF9jbWQ7CkBAIC03NDksMjUgKzc4MCw0MyBA
QCBzdGF0aWMgaW50IHJ0bDgxNjlfc2V0X3NwZWVkX3htaWkoc3RydWN0CiAJYXV0b19uZWdvICY9
IH4oUEhZX0NhcF8xMF9IYWxmIHwgUEhZX0NhcF8xMF9GdWxsIHwKIAkJICAgICAgIFBIWV9DYXBf
MTAwX0hhbGYgfCBQSFlfQ2FwXzEwMF9GdWxsKTsKIAlnaWdhX2N0cmwgPSBtZGlvX3JlYWQoaW9h
ZGRyLCBQSFlfMTAwMF9DVFJMX1JFRyk7Ci0JZ2lnYV9jdHJsICY9IH4oUEhZX0NhcF8xMDAwX0Z1
bGwgfCBQSFlfQ2FwX051bGwpOworCWdpZ2FfY3RybCAmPSB+KFBIWV9DYXBfMTAwMF9GdWxsIHwg
UEhZX0NhcF8xMDAwX0hhbGYgfCBQSFlfQ2FwX051bGwpOwogCiAJaWYgKGF1dG9uZWcgPT0gQVVU
T05FR19FTkFCTEUpIHsKIAkJYXV0b19uZWdvIHw9IChQSFlfQ2FwXzEwX0hhbGYgfCBQSFlfQ2Fw
XzEwX0Z1bGwgfAogCQkJICAgICAgUEhZX0NhcF8xMDBfSGFsZiB8IFBIWV9DYXBfMTAwX0Z1bGwp
OwotCQlnaWdhX2N0cmwgfD0gUEhZX0NhcF8xMDAwX0Z1bGw7CisJCWdpZ2FfY3RybCB8PSBQSFlf
Q2FwXzEwMDBfRnVsbCB8IFBIWV9DYXBfMTAwMF9IYWxmOwogCX0gZWxzZSB7CiAJCWlmIChzcGVl
ZCA9PSBTUEVFRF8xMCkKIAkJCWF1dG9fbmVnbyB8PSBQSFlfQ2FwXzEwX0hhbGYgfCBQSFlfQ2Fw
XzEwX0Z1bGw7CiAJCWVsc2UgaWYgKHNwZWVkID09IFNQRUVEXzEwMCkKIAkJCWF1dG9fbmVnbyB8
PSBQSFlfQ2FwXzEwMF9IYWxmIHwgUEhZX0NhcF8xMDBfRnVsbDsKIAkJZWxzZSBpZiAoc3BlZWQg
PT0gU1BFRURfMTAwMCkKLQkJCWdpZ2FfY3RybCB8PSBQSFlfQ2FwXzEwMDBfRnVsbDsKKwkJCWdp
Z2FfY3RybCB8PSBQSFlfQ2FwXzEwMDBfRnVsbCB8IFBIWV9DYXBfMTAwMF9IYWxmOwogCiAJCWlm
IChkdXBsZXggPT0gRFVQTEVYX0hBTEYpCiAJCQlhdXRvX25lZ28gJj0gfihQSFlfQ2FwXzEwX0Z1
bGwgfCBQSFlfQ2FwXzEwMF9GdWxsKTsKIAogCQlpZiAoZHVwbGV4ID09IERVUExFWF9GVUxMKQog
CQkJYXV0b19uZWdvICY9IH4oUEhZX0NhcF8xMF9IYWxmIHwgUEhZX0NhcF8xMDBfSGFsZik7CisK
KwkJLyogVGhpcyB0d2VhayBjb21lcyBzdHJhaWdodCBmcm9tIFJlYWx0ZWsncyBkcml2ZXIuICov
CisJCWlmICgoc3BlZWQgPT0gU1BFRURfMTAwKSAmJiAoZHVwbGV4ID09IERVUExFWF9IQUxGKSAm
JgorCQkgICAgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzEzKSkgeworCQkJ
YXV0b19uZWdvID0gUEhZX0NhcF8xMDBfSGFsZiB8IDB4MDE7CisJCX0KKwl9CisKKwkvKiBUaGUg
ODEwMGUvODEwMWUgZG8gRmFzdCBFdGhlcm5ldCBvbmx5LiAqLworCWlmICgodHAtPm1hY192ZXJz
aW9uID09IFJUTF9HSUdBX01BQ19WRVJfMTMpIHx8CisJICAgICh0cC0+bWFjX3ZlcnNpb24gPT0g
UlRMX0dJR0FfTUFDX1ZFUl8xNCkgfHwKKwkgICAgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lH
QV9NQUNfVkVSXzE1KSkgeworCQlpZiAoKGdpZ2FfY3RybCAmIChQSFlfQ2FwXzEwMDBfRnVsbCB8
IFBIWV9DYXBfMTAwMF9IYWxmKSkgJiYKKwkJICAgIG5ldGlmX21zZ19saW5rKHRwKSkgeworCQkJ
cHJpbnRrKEtFUk5fSU5GTyAiJXM6IFBIWSBkb2VzIG5vdCBzdXBwb3J0IDEwMDBNYnBzLlxuIiwK
KwkJCSAgICAgICBkZXYtPm5hbWUpOworCQl9CisJCWdpZ2FfY3RybCAmPSB+KFBIWV9DYXBfMTAw
MF9GdWxsIHwgUEhZX0NhcF8xMDAwX0hhbGYpOwogCX0KIAogCXRwLT5waHlfYXV0b19uZWdvX3Jl
ZyA9IGF1dG9fbmVnbzsKQEAgLTExNDAsMTAgKzExODksMTYgQEAgc3RhdGljIHZvaWQgcnRsODE2
OV9nZXRfbWFjX3ZlcnNpb24oc3RydQogCQl1MzIgbWFzazsKIAkJaW50IG1hY192ZXJzaW9uOwog
CX0gbWFjX2luZm9bXSA9IHsKLQkJeyAweDEgPDwgMjgsCVJUTF9HSUdBX01BQ19WRVJfWCB9LAot
CQl7IDB4MSA8PCAyNiwJUlRMX0dJR0FfTUFDX1ZFUl9FIH0sCi0JCXsgMHgxIDw8IDIzLAlSVExf
R0lHQV9NQUNfVkVSX0QgfSwgCi0JCXsgMHgwMDAwMDAwMCwJUlRMX0dJR0FfTUFDX1ZFUl9CIH0g
LyogQ2F0Y2gtYWxsICovCisJCXsgMHgzODgwMDAwMCwJUlRMX0dJR0FfTUFDX1ZFUl8xNSB9LAor
CQl7IDB4MzgwMDAwMDAsCVJUTF9HSUdBX01BQ19WRVJfMTIgfSwKKwkJeyAweDM0MDAwMDAwLAlS
VExfR0lHQV9NQUNfVkVSXzEzIH0sCisJCXsgMHgzMDgwMDAwMCwJUlRMX0dJR0FfTUFDX1ZFUl8x
NCB9LAorCQl7IDB4MzAwMDAwMDAsICAgUlRMX0dJR0FfTUFDX1ZFUl8xMSB9LAorCQl7IDB4MTgw
MDAwMDAsCVJUTF9HSUdBX01BQ19WRVJfMDUgfSwKKwkJeyAweDEwMDAwMDAwLAlSVExfR0lHQV9N
QUNfVkVSXzA0IH0sCisJCXsgMHgwNDAwMDAwMCwJUlRMX0dJR0FfTUFDX1ZFUl8wMyB9LAorCQl7
IDB4MDA4MDAwMDAsCVJUTF9HSUdBX01BQ19WRVJfMDIgfSwKKwkJeyAweDAwMDAwMDAwLAlSVExf
R0lHQV9NQUNfVkVSXzAxIH0JLyogQ2F0Y2gtYWxsICovCiAJfSwgKnAgPSBtYWNfaW5mbzsKIAl1
MzIgcmVnOwogCkBAIC0xMTU1LDI0ICsxMjEwLDcgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9nZXRf
bWFjX3ZlcnNpb24oc3RydQogCiBzdGF0aWMgdm9pZCBydGw4MTY5X3ByaW50X21hY192ZXJzaW9u
KHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwKQogewotCXN0cnVjdCB7Ci0JCWludCB2ZXJzaW9u
OwotCQljaGFyICptc2c7Ci0JfSBtYWNfcHJpbnRbXSA9IHsKLQkJeyBSVExfR0lHQV9NQUNfVkVS
X0UsICJSVExfR0lHQV9NQUNfVkVSX0UiIH0sCi0JCXsgUlRMX0dJR0FfTUFDX1ZFUl9ELCAiUlRM
X0dJR0FfTUFDX1ZFUl9EIiB9LAotCQl7IFJUTF9HSUdBX01BQ19WRVJfQiwgIlJUTF9HSUdBX01B
Q19WRVJfQiIgfSwKLQkJeyAwLCBOVUxMIH0KLQl9LCAqcDsKLQotCWZvciAocCA9IG1hY19wcmlu
dDsgcC0+bXNnOyBwKyspIHsKLQkJaWYgKHRwLT5tYWNfdmVyc2lvbiA9PSBwLT52ZXJzaW9uKSB7
Ci0JCQlkcHJpbnRrKCJtYWNfdmVyc2lvbiA9PSAlcyAoJTA0ZClcbiIsIHAtPm1zZywKLQkJCQkg
IHAtPnZlcnNpb24pOwotCQkJcmV0dXJuOwotCQl9Ci0JfQotCWRwcmludGsoIm1hY192ZXJzaW9u
ID09IFVua25vd25cbiIpOworCWRwcmludGsoIm1hY192ZXJzaW9uID0gMHglMDJ4XG4iLCB0cC0+
bWFjX3ZlcnNpb24pOwogfQogCiBzdGF0aWMgdm9pZCBydGw4MTY5X2dldF9waHlfdmVyc2lvbihz
dHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCwgdm9pZCBfX2lvbWVtICppb2FkZHIpCkBAIC0xMjU3
LDcgKzEyOTUsNyBAQCBzdGF0aWMgdm9pZCBydGw4MTY5X2h3X3BoeV9jb25maWcoc3RydWN0CiAJ
cnRsODE2OV9wcmludF9tYWNfdmVyc2lvbih0cCk7CiAJcnRsODE2OV9wcmludF9waHlfdmVyc2lv
bih0cCk7CiAKLQlpZiAodHAtPm1hY192ZXJzaW9uIDw9IFJUTF9HSUdBX01BQ19WRVJfQikKKwlp
ZiAodHAtPm1hY192ZXJzaW9uIDw9IFJUTF9HSUdBX01BQ19WRVJfMDEpCiAJCXJldHVybjsKIAlp
ZiAodHAtPnBoeV92ZXJzaW9uID49IFJUTF9HSUdBX1BIWV9WRVJfSCkKIAkJcmV0dXJuOwpAQCAt
MTI2Nyw3ICsxMzA1LDcgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9od19waHlfY29uZmlnKHN0cnVj
dAogCiAJLyogU2hhemFtICEgKi8KIAotCWlmICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0Ff
TUFDX1ZFUl9YKSB7CisJaWYgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzA0
KSB7CiAJCW1kaW9fd3JpdGUoaW9hZGRyLCAzMSwgMHgwMDAxKTsKIAkJbWRpb193cml0ZShpb2Fk
ZHIsICA5LCAweDI3M2EpOwogCQltZGlvX3dyaXRlKGlvYWRkciwgMTQsIDB4N2JmYik7CkBAIC0x
MzA2LDcgKzEzNDQsNyBAQCBzdGF0aWMgdm9pZCBydGw4MTY5X3BoeV90aW1lcih1bnNpZ25lZCBs
CiAJdm9pZCBfX2lvbWVtICppb2FkZHIgPSB0cC0+bW1pb19hZGRyOwogCXVuc2lnbmVkIGxvbmcg
dGltZW91dCA9IFJUTDgxNjlfUEhZX1RJTUVPVVQ7CiAKLQlhc3NlcnQodHAtPm1hY192ZXJzaW9u
ID4gUlRMX0dJR0FfTUFDX1ZFUl9CKTsKKwlhc3NlcnQodHAtPm1hY192ZXJzaW9uID4gUlRMX0dJ
R0FfTUFDX1ZFUl8wMSk7CiAJYXNzZXJ0KHRwLT5waHlfdmVyc2lvbiA8IFJUTF9HSUdBX1BIWV9W
RVJfSCk7CiAKIAlpZiAoISh0cC0+cGh5XzEwMDBfY3RybF9yZWcgJiBQSFlfQ2FwXzEwMDBfRnVs
bCkpCkBAIC0xMzQyLDcgKzEzODAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcnRsODE2OV9kZWxl
dGVfdGltZXIoCiAJc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHAgPSBuZXRkZXZfcHJpdihkZXYp
OwogCXN0cnVjdCB0aW1lcl9saXN0ICp0aW1lciA9ICZ0cC0+dGltZXI7CiAKLQlpZiAoKHRwLT5t
YWNfdmVyc2lvbiA8PSBSVExfR0lHQV9NQUNfVkVSX0IpIHx8CisJaWYgKCh0cC0+bWFjX3ZlcnNp
b24gPD0gUlRMX0dJR0FfTUFDX1ZFUl8wMSkgfHwKIAkgICAgKHRwLT5waHlfdmVyc2lvbiA+PSBS
VExfR0lHQV9QSFlfVkVSX0gpKQogCQlyZXR1cm47CiAKQEAgLTEzNTQsNyArMTM5Miw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBydGw4MTY5X3JlcXVlc3RfdGltZXIKIAlzdHJ1Y3QgcnRsODE2OV9w
cml2YXRlICp0cCA9IG5ldGRldl9wcml2KGRldik7CiAJc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVy
ID0gJnRwLT50aW1lcjsKIAotCWlmICgodHAtPm1hY192ZXJzaW9uIDw9IFJUTF9HSUdBX01BQ19W
RVJfQikgfHwKKwlpZiAoKHRwLT5tYWNfdmVyc2lvbiA8PSBSVExfR0lHQV9NQUNfVkVSXzAxKSB8
fAogCSAgICAodHAtPnBoeV92ZXJzaW9uID49IFJUTF9HSUdBX1BIWV9WRVJfSCkpCiAJCXJldHVy
bjsKIApAQCAtMTM5Myw4ICsxNDMxLDkgQEAgc3RhdGljIHZvaWQgcnRsODE2OV9yZWxlYXNlX2Jv
YXJkKHN0cnVjdAogCiBzdGF0aWMgaW50IF9fZGV2aW5pdAogcnRsODE2OV9pbml0X2JvYXJkKHN0
cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgbmV0X2RldmljZSAqKmRldl9vdXQsCi0JCSAgIHZv
aWQgX19pb21lbSAqKmlvYWRkcl9vdXQpCisJCSAgIHZvaWQgX19pb21lbSAqKmlvYWRkcl9vdXQs
IGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiB7CisJY29uc3QgdW5zaWduZWQgaW50
IHJlZ2lvbiA9IHJ0bF9jZmdfaW5mb1tlbnQtPmRyaXZlcl9kYXRhXS5yZWdpb247CiAJdm9pZCBf
X2lvbWVtICppb2FkZHI7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldjsKIAlzdHJ1Y3QgcnRsODE2
OV9wcml2YXRlICp0cDsKQEAgLTE0NDEsNyArMTQ4MCw3IEBAIHJ0bDgxNjlfaW5pdF9ib2FyZChz
dHJ1Y3QgcGNpX2RldiAqcGRldiwKIAl9CiAKIAkvKiBtYWtlIHN1cmUgUENJIGJhc2UgYWRkciAx
IGlzIE1NSU8gKi8KLQlpZiAoIShwY2lfcmVzb3VyY2VfZmxhZ3MocGRldiwgMSkgJiBJT1JFU09V
UkNFX01FTSkpIHsKKwlpZiAoIShwY2lfcmVzb3VyY2VfZmxhZ3MocGRldiwgcmVnaW9uKSAmIElP
UkVTT1VSQ0VfTUVNKSkgewogCQlpZiAobmV0aWZfbXNnX3Byb2JlKHRwKSkKIAkJCWRldl9lcnIo
JnBkZXYtPmRldiwKIAkJCSAgICAgICAicmVnaW9uICMxIG5vdCBhbiBNTUlPIHJlc291cmNlLCBh
Ym9ydGluZ1xuIik7CkBAIC0xNDQ5LDcgKzE0ODgsNyBAQCBydGw4MTY5X2luaXRfYm9hcmQoc3Ry
dWN0IHBjaV9kZXYgKnBkZXYsCiAJCWdvdG8gZXJyX291dF9td2k7CiAJfQogCS8qIGNoZWNrIGZv
ciB3ZWlyZC9icm9rZW4gUENJIHJlZ2lvbiByZXBvcnRpbmcgKi8KLQlpZiAocGNpX3Jlc291cmNl
X2xlbihwZGV2LCAxKSA8IFI4MTY5X1JFR1NfU0laRSkgeworCWlmIChwY2lfcmVzb3VyY2VfbGVu
KHBkZXYsIHJlZ2lvbikgPCBSODE2OV9SRUdTX1NJWkUpIHsKIAkJaWYgKG5ldGlmX21zZ19wcm9i
ZSh0cCkpCiAJCQlkZXZfZXJyKCZwZGV2LT5kZXYsCiAJCQkgICAgICAgIkludmFsaWQgUENJIHJl
Z2lvbiBzaXplKHMpLCBhYm9ydGluZ1xuIik7CkBAIC0xNDgzLDcgKzE1MjIsNyBAQCBydGw4MTY5
X2luaXRfYm9hcmQoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJcGNpX3NldF9tYXN0ZXIocGRldik7
CiAKIAkvKiBpb3JlbWFwIE1NSU8gcmVnaW9uICovCi0JaW9hZGRyID0gaW9yZW1hcChwY2lfcmVz
b3VyY2Vfc3RhcnQocGRldiwgMSksIFI4MTY5X1JFR1NfU0laRSk7CisJaW9hZGRyID0gaW9yZW1h
cChwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgcmVnaW9uKSwgUjgxNjlfUkVHU19TSVpFKTsKIAlp
ZiAoaW9hZGRyID09IE5VTEwpIHsKIAkJaWYgKG5ldGlmX21zZ19wcm9iZSh0cCkpCiAJCQlkZXZf
ZXJyKCZwZGV2LT5kZXYsICJjYW5ub3QgcmVtYXAgTU1JTywgYWJvcnRpbmdcbiIpOwpAQCAtMTU3
NCw3ICsxNjEzLDcgQEAgcnRsODE2OV9pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgYwog
CQkgICAgICAgTU9EVUxFTkFNRSwgUlRMODE2OV9WRVJTSU9OKTsKIAl9CiAKLQlyYyA9IHJ0bDgx
NjlfaW5pdF9ib2FyZChwZGV2LCAmZGV2LCAmaW9hZGRyKTsKKwlyYyA9IHJ0bDgxNjlfaW5pdF9i
b2FyZChwZGV2LCAmZGV2LCAmaW9hZGRyLCBlbnQpOwogCWlmIChyYykKIAkJcmV0dXJuIHJjOwog
CkBAIC0xNjMyLDYgKzE2NzEsNyBAQCBydGw4MTY5X2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpw
ZGV2LCBjCiAJdHAtPmludHJfbWFzayA9IDB4ZmZmZjsKIAl0cC0+cGNpX2RldiA9IHBkZXY7CiAJ
dHAtPm1taW9fYWRkciA9IGlvYWRkcjsKKwl0cC0+YWxpZ24gPSBydGxfY2ZnX2luZm9bZW50LT5k
cml2ZXJfZGF0YV0uYWxpZ247CiAKIAlzcGluX2xvY2tfaW5pdCgmdHAtPmxvY2spOwogCkBAIC0x
NjQxLDExICsxNjgxLDYgQEAgcnRsODE2OV9pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwg
YwogCQlyZXR1cm4gcmM7CiAJfQogCi0JaWYgKG5ldGlmX21zZ19wcm9iZSh0cCkpIHsKLQkJcHJp
bnRrKEtFUk5fREVCVUcgIiVzOiBJZGVudGlmaWVkIGNoaXAgdHlwZSBpcyAnJXMnLlxuIiwKLQkJ
ICAgICAgIGRldi0+bmFtZSwgcnRsX2NoaXBfaW5mb1t0cC0+Y2hpcHNldF0ubmFtZSk7Ci0JfQot
CiAJcGNpX3NldF9kcnZkYXRhKHBkZXYsIGRldik7CiAKIAlpZiAobmV0aWZfbXNnX3Byb2JlKHRw
KSkgewpAQCAtMTY1Myw3ICsxNjg4LDcgQEAgcnRsODE2OV9pbml0X29uZShzdHJ1Y3QgcGNpX2Rl
diAqcGRldiwgYwogCQkgICAgICAgIiUyLjJ4OiUyLjJ4OiUyLjJ4OiUyLjJ4OiUyLjJ4OiUyLjJ4
LCAiCiAJCSAgICAgICAiSVJRICVkXG4iLAogCQkgICAgICAgZGV2LT5uYW1lLAotCQkgICAgICAg
cnRsX2NoaXBfaW5mb1tlbnQtPmRyaXZlcl9kYXRhXS5uYW1lLAorCQkgICAgICAgcnRsX2NoaXBf
aW5mb1t0cC0+Y2hpcHNldF0ubmFtZSwKIAkJICAgICAgIGRldi0+YmFzZV9hZGRyLAogCQkgICAg
ICAgZGV2LT5kZXZfYWRkclswXSwgZGV2LT5kZXZfYWRkclsxXSwKIAkJICAgICAgIGRldi0+ZGV2
X2FkZHJbMl0sIGRldi0+ZGV2X2FkZHJbM10sCkBAIC0xNjY1LDEyICsxNzAwLDEyIEBAIHJ0bDgx
NjlfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGMKIAlkcHJpbnRrKCJTZXQgTUFDIFJl
ZyBDK0NSIE9mZnNldCAweDgyaCA9IDB4MDFoXG4iKTsKIAlSVExfVzgoMHg4MiwgMHgwMSk7CiAK
LQlpZiAodHAtPm1hY192ZXJzaW9uIDwgUlRMX0dJR0FfTUFDX1ZFUl9FKSB7CisJaWYgKHRwLT5t
YWNfdmVyc2lvbiA8IFJUTF9HSUdBX01BQ19WRVJfMDMpIHsKIAkJZHByaW50aygiU2V0IFBDSSBM
YXRlbmN5PTB4NDBcbiIpOwogCQlwY2lfd3JpdGVfY29uZmlnX2J5dGUocGRldiwgUENJX0xBVEVO
Q1lfVElNRVIsIDB4NDApOwogCX0KIAotCWlmICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0Ff
TUFDX1ZFUl9EKSB7CisJaWYgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzAy
KSB7CiAJCWRwcmludGsoIlNldCBNQUMgUmVnIEMrQ1IgT2Zmc2V0IDB4ODJoID0gMHgwMWhcbiIp
OwogCQlSVExfVzgoMHg4MiwgMHgwMSk7CiAJCWRwcmludGsoIlNldCBQSFkgUmVnIDB4MGJoID0g
MHgwMGhcbiIpOwpAQCAtMTc4MCw2ICsxODE1LDcgQEAgcnRsODE2OV9od19zdGFydChzdHJ1Y3Qg
bmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwID0gbmV0ZGV2
X3ByaXYoZGV2KTsKIAl2b2lkIF9faW9tZW0gKmlvYWRkciA9IHRwLT5tbWlvX2FkZHI7CisJc3Ry
dWN0IHBjaV9kZXYgKnBkZXYgPSB0cC0+cGNpX2RldjsKIAl1MzIgaTsKIAogCS8qIFNvZnQgcmVz
ZXQgdGhlIGNoaXAuICovCkBAIC0xNzkyLDggKzE4MjgsMjggQEAgcnRsODE2OV9od19zdGFydChz
dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQl1ZGVsYXkoMTApOwogCX0KIAorCWlmICh0cC0+bWFj
X3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZFUl8xMykgeworCQlwY2lfd3JpdGVfY29uZmlnX3dv
cmQocGRldiwgMHg2OCwgMHgwMCk7CisJCXBjaV93cml0ZV9jb25maWdfd29yZChwZGV2LCAweDY5
LCAweDA4KTsKKwl9CisKKwkvKiBVbmRvY3VtZW50ZWQgc3R1ZmYuICovCisJaWYgKHRwLT5tYWNf
dmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzA1KSB7CisJCXUxNiBjbWQ7CisKKwkJLyogUmVh
bHRlaydzIHIxMDAwX24uYyBkcml2ZXIgdXNlcyAnJiYgMHgwMScgaGVyZS4gV2VsbC4uLiAqLwor
CQlpZiAoKFJUTF9SOChDb25maWcyKSAmIDB4MDcpICYgMHgwMSkKKwkJCVJUTF9XMzIoMHg3Yywg
MHgwMDA3ZmZmZik7CisKKwkJUlRMX1czMigweDdjLCAweDAwMDdmZjAwKTsKKworCQlwY2lfcmVh
ZF9jb25maWdfd29yZChwZGV2LCBQQ0lfQ09NTUFORCwgJmNtZCk7CisJCWNtZCA9IGNtZCAmIDB4
ZWY7CisJCXBjaV93cml0ZV9jb25maWdfd29yZChwZGV2LCBQQ0lfQ09NTUFORCwgY21kKTsKKwl9
CisKKwogCVJUTF9XOChDZmc5MzQ2LCBDZmc5MzQ2X1VubG9jayk7Ci0JUlRMX1c4KENoaXBDbWQs
IENtZFR4RW5iIHwgQ21kUnhFbmIpOwogCVJUTF9XOChFYXJseVR4VGhyZXMsIEVhcmx5VHhUaGxk
KTsKIAogCS8qIExvdyBodXJ0cy4gTGV0J3MgZGlzYWJsZSB0aGUgZmlsdGVyaW5nLiAqLwpAQCAt
MTgwOCwxNyArMTg2NCwxOCBAQCBydGw4MTY5X2h3X3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpk
ZXYpCiAJUlRMX1czMihUeENvbmZpZywKIAkJKFRYX0RNQV9CVVJTVCA8PCBUeERNQVNoaWZ0KSB8
IChJbnRlckZyYW1lR2FwIDw8CiAJCQkJCQlUeEludGVyRnJhbWVHYXBTaGlmdCkpOwotCXRwLT5j
cF9jbWQgfD0gUlRMX1IxNihDUGx1c0NtZCk7Ci0JUlRMX1cxNihDUGx1c0NtZCwgdHAtPmNwX2Nt
ZCk7CiAKLQlpZiAoKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSX0QpIHx8Ci0J
ICAgICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZFUl9FKSkgeworCXRwLT5jcF9j
bWQgfD0gUlRMX1IxNihDUGx1c0NtZCkgfCBQQ0lNdWxSVzsKKworCWlmICgodHAtPm1hY192ZXJz
aW9uID09IFJUTF9HSUdBX01BQ19WRVJfMDIpIHx8CisJICAgICh0cC0+bWFjX3ZlcnNpb24gPT0g
UlRMX0dJR0FfTUFDX1ZFUl8wMykpIHsKIAkJZHByaW50ayhLRVJOX0lORk8gUEZYICJTZXQgTUFD
IFJlZyBDK0NSIE9mZnNldCAweEUwLiAiCiAJCQkiQml0LTMgYW5kIGJpdC0xNCBNVVNUIGJlIDFc
biIpOwotCQl0cC0+Y3BfY21kIHw9ICgxIDw8IDE0KSB8IFBDSU11bFJXOwotCQlSVExfVzE2KENQ
bHVzQ21kLCB0cC0+Y3BfY21kKTsKKwkJdHAtPmNwX2NtZCB8PSAoMSA8PCAxNCk7CiAJfQogCisJ
UlRMX1cxNihDUGx1c0NtZCwgdHAtPmNwX2NtZCk7CisKIAkvKgogCSAqIFVuZG9jdW1lbnRlZCBj
b3JuZXIuIFN1cHBvc2VkbHk6CiAJICogKFR4VGltZXIgPDwgMTIpIHwgKFR4UGFja2V0cyA8PCA4
KSB8IChSeFRpbWVyIDw8IDQpIHwgUnhQYWNrZXRzCkBAIC0xODI5LDYgKzE4ODYsNyBAQCBydGw4
MTY5X2h3X3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJUlRMX1czMihUeERlc2NTdGFy
dEFkZHJIaWdoLCAoKHU2NCkgdHAtPlR4UGh5QWRkciA+PiAzMikpOwogCVJUTF9XMzIoUnhEZXNj
QWRkckxvdywgKCh1NjQpIHRwLT5SeFBoeUFkZHIgJiBETUFfMzJCSVRfTUFTSykpOwogCVJUTF9X
MzIoUnhEZXNjQWRkckhpZ2gsICgodTY0KSB0cC0+UnhQaHlBZGRyID4+IDMyKSk7CisJUlRMX1c4
KENoaXBDbWQsIENtZFR4RW5iIHwgQ21kUnhFbmIpOwogCVJUTF9XOChDZmc5MzQ2LCBDZmc5MzQ2
X0xvY2spOwogCXVkZWxheSgxMCk7CiAKQEAgLTE5MTAsMTcgKzE5NjgsMTggQEAgc3RhdGljIGlu
bGluZSB2b2lkIHJ0bDgxNjlfbWFwX3RvX2FzaWMocwogfQogCiBzdGF0aWMgaW50IHJ0bDgxNjlf
YWxsb2Nfcnhfc2tiKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrX2J1
ZmYsCi0JCQkJc3RydWN0IFJ4RGVzYyAqZGVzYywgaW50IHJ4X2J1Zl9zeikKKwkJCQlzdHJ1Y3Qg
UnhEZXNjICpkZXNjLCBpbnQgcnhfYnVmX3N6LAorCQkJCXVuc2lnbmVkIGludCBhbGlnbikKIHsK
IAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCWRtYV9hZGRyX3QgbWFwcGluZzsKIAlpbnQgcmV0ID0g
MDsKIAotCXNrYiA9IGRldl9hbGxvY19za2IocnhfYnVmX3N6ICsgTkVUX0lQX0FMSUdOKTsKKwlz
a2IgPSBkZXZfYWxsb2Nfc2tiKHJ4X2J1Zl9zeiArIGFsaWduKTsKIAlpZiAoIXNrYikKIAkJZ290
byBlcnJfb3V0OwogCi0Jc2tiX3Jlc2VydmUoc2tiLCBORVRfSVBfQUxJR04pOworCXNrYl9yZXNl
cnZlKHNrYiwgYWxpZ24pOwogCSpza19idWZmID0gc2tiOwogCiAJbWFwcGluZyA9IHBjaV9tYXBf
c2luZ2xlKHBkZXYsIHNrYi0+ZGF0YSwgcnhfYnVmX3N6LApAQCAtMTk1OSw5ICsyMDE4LDkgQEAg
c3RhdGljIHUzMiBydGw4MTY5X3J4X2ZpbGwoc3RydWN0IHJ0bDgxNgogCiAJCWlmICh0cC0+Unhf
c2tidWZmW2ldKQogCQkJY29udGludWU7Ci0JCQkKKwogCQlyZXQgPSBydGw4MTY5X2FsbG9jX3J4
X3NrYih0cC0+cGNpX2RldiwgdHAtPlJ4X3NrYnVmZiArIGksCi0JCQkJCSAgIHRwLT5SeERlc2NB
cnJheSArIGksIHRwLT5yeF9idWZfc3opOworCQkJdHAtPlJ4RGVzY0FycmF5ICsgaSwgdHAtPnJ4
X2J1Zl9zeiwgdHAtPmFsaWduKTsKIAkJaWYgKHJldCA8IDApCiAJCQlicmVhazsKIAl9CkBAIC0y
MzcyLDE2ICsyNDMxLDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBydGw4MTY5X3J4X2NzdW0oc3Ry
dWMKIH0KIAogc3RhdGljIGlubGluZSBpbnQgcnRsODE2OV90cnlfcnhfY29weShzdHJ1Y3Qgc2tf
YnVmZiAqKnNrX2J1ZmYsIGludCBwa3Rfc2l6ZSwKLQkJCQkgICAgICBzdHJ1Y3QgUnhEZXNjICpk
ZXNjLCBpbnQgcnhfYnVmX3N6KQorCQkJCSAgICAgIHN0cnVjdCBSeERlc2MgKmRlc2MsIGludCBy
eF9idWZfc3osCisJCQkJICAgICAgdW5zaWduZWQgaW50IGFsaWduKQogewogCWludCByZXQgPSAt
MTsKIAogCWlmIChwa3Rfc2l6ZSA8IHJ4X2NvcHlicmVhaykgewogCQlzdHJ1Y3Qgc2tfYnVmZiAq
c2tiOwogCi0JCXNrYiA9IGRldl9hbGxvY19za2IocGt0X3NpemUgKyBORVRfSVBfQUxJR04pOwor
CQlza2IgPSBkZXZfYWxsb2Nfc2tiKHBrdF9zaXplICsgYWxpZ24pOwogCQlpZiAoc2tiKSB7Ci0J
CQlza2JfcmVzZXJ2ZShza2IsIE5FVF9JUF9BTElHTik7CisJCQlza2JfcmVzZXJ2ZShza2IsIGFs
aWduKTsKIAkJCWV0aF9jb3B5X2FuZF9zdW0oc2tiLCBza19idWZmWzBdLT5kYXRhLCBwa3Rfc2l6
ZSwgMCk7CiAJCQkqc2tfYnVmZiA9IHNrYjsKIAkJCXJ0bDgxNjlfbWFya190b19hc2ljKGRlc2Ms
IHJ4X2J1Zl9zeik7CkBAIC0yNDQ3LDEzICsyNTA3LDEzIEBAIHJ0bDgxNjlfcnhfaW50ZXJydXB0
KHN0cnVjdCBuZXRfZGV2aWNlICoKIAkJCX0KIAogCQkJcnRsODE2OV9yeF9jc3VtKHNrYiwgZGVz
Yyk7Ci0JCQkKKwogCQkJcGNpX2RtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KHRwLT5wY2lfZGV2LAog
CQkJCWxlNjRfdG9fY3B1KGRlc2MtPmFkZHIpLCB0cC0+cnhfYnVmX3N6LAogCQkJCVBDSV9ETUFf
RlJPTURFVklDRSk7CiAKIAkJCWlmIChydGw4MTY5X3RyeV9yeF9jb3B5KCZza2IsIHBrdF9zaXpl
LCBkZXNjLAotCQkJCQkJdHAtPnJ4X2J1Zl9zeikpIHsKKwkJCQkJCXRwLT5yeF9idWZfc3osIHRw
LT5hbGlnbikpIHsKIAkJCQlwY2lfYWN0aW9uID0gcGNpX3VubWFwX3NpbmdsZTsKIAkJCQl0cC0+
Unhfc2tidWZmW2VudHJ5XSA9IE5VTEw7CiAJCQl9CkBAIC0yNzE2LDYgKzI3NzYsMTUgQEAgcnRs
ODE2OV9zZXRfcnhfbW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqZAogCXRtcCA9IHJ0bDgxNjlfcnhf
Y29uZmlnIHwgcnhfbW9kZSB8CiAJICAgICAgKFJUTF9SMzIoUnhDb25maWcpICYgcnRsX2NoaXBf
aW5mb1t0cC0+Y2hpcHNldF0uUnhDb25maWdNYXNrKTsKIAorCWlmICgodHAtPm1hY192ZXJzaW9u
ID09IFJUTF9HSUdBX01BQ19WRVJfMTEpIHx8CisJICAgICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRM
X0dJR0FfTUFDX1ZFUl8xMikgfHwKKwkgICAgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9N
QUNfVkVSXzEzKSB8fAorCSAgICAodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJf
MTQpIHx8CisJICAgICh0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZFUl8xNSkpIHsK
KwkJbWNfZmlsdGVyWzBdID0gMHhmZmZmZmZmZjsKKwkJbWNfZmlsdGVyWzFdID0gMHhmZmZmZmZm
ZjsKKwl9CisKIAlSVExfVzMyKFJ4Q29uZmlnLCB0bXApOwogCVJUTF9XMzIoTUFSMCArIDAsIG1j
X2ZpbHRlclswXSk7CiAJUlRMX1czMihNQVIwICsgNCwgbWNfZmlsdGVyWzFdKTsK
</data>        

          </attachment>
    </bug>

</bugzilla>