<?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>208034</bug_id>
          
          <creation_ts>2008-01-29 12:51 0000</creation_ts>
          <short_desc>dev-db/firebird: &lt; 2.0.3.12981.0-r5 &quot;username&quot; buffer overflow (CVE-2008-0387,CVE-2008-0467)</short_desc>
          <delta_ts>2008-03-03 00:12:05 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Security</product>
          <component>Vulnerabilities</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          <bug_file_loc>http://tracker.firebirdsql.org/browse/CORE-1603</bug_file_loc>
          <status_whiteboard>B1 [glsa] Falco</status_whiteboard>
          <keywords>InCVS</keywords>
          <priority>P2</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>falco@gentoo.org</reporter>
          <assigned_to>security@gentoo.org</assigned_to>
          <cc>wltjr@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>falco@gentoo.org</who>
            <bug_when>2008-01-29 12:51:45 0000</bug_when>
            <thetext>Hi,

please see http://tracker.firebirdsql.org/browse/CORE-1603

And Secunia Adv. SA28596</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lars@chaotika.org</who>
            <bug_when>2008-02-06 09:20:09 0000</bug_when>
            <thetext>due to CVE-2008-01-28 this vuln is also fixed in 2.0.4 - maintainer please provide an updated ebuild.

could someone please add &quot;CVE-2008-01-28&quot; to the summary, i dont have the needed permissions</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lars@chaotika.org</who>
            <bug_when>2008-02-06 09:23:30 0000</bug_when>
            <thetext>there is another CVE:
CVE-2008-0467 this one is only fixed in 2.1RC1, maintainers - please advice

(could someone also add that CVE-Name to the summary?)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>wltjr@gentoo.org</who>
            <bug_when>2008-02-06 15:51:21 0000</bug_when>
            <thetext>Need to update to 2.0.4 for this one, 2.1.x is ok
http://nvd.nist.gov/nvd.cfm?cvename=CVE-2008-0387

This needs 2.0.4 and 2.1RC1
http://nvd.nist.gov/nvd.cfm?cvename=CVE-2008-0467

2.0.4 isn&apos;t even on the horizon. Same with 1.5.6, but we have no 1.5.x in tree., So not sure what to say about 2.0.4. I will see about bumping 2.1.x to 2.1RC1 ASAP. Likely later today or tomorrow. But that&apos;s a pre-release version so really is kinda moot. Shouldn&apos;t be used in production, won&apos;t go stable, etc.

I don&apos;t think we should mask Firebird at this time. But really have no way to address 2.0.3.x short of a backport/patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2008-02-10 14:33:43 0000</bug_when>
            <thetext>Willaim any news on this one?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>rbu@gentoo.org</who>
            <bug_when>2008-02-11 23:43:04 0000</bug_when>
            <thetext>The patches are linked within the Firebird bug report (see URL) and they should apply cleanly to 2.0.3. Please patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>wltjr@gentoo.org</who>
            <bug_when>2008-02-13 18:59:49 0000</bug_when>
            <thetext>Commited 2.1.0 rc1, which is not subject to this vulnerability. Removed past 2.1.0 version that was vulnerable. Still have to make patch for 2.0.3, and will do so ASAP. Couldn&apos;t find a unified on from bug link, so will have to fetch files/patches and create my own unified one.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>rbu@gentoo.org</who>
            <bug_when>2008-02-13 19:11:50 0000</bug_when>
            <thetext>I admit it&apos;s a little hidden. On these overview pages:
http://tracker.firebirdsql.org/browse/CORE-1681?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
http://tracker.firebirdsql.org/browse/CORE-1603?page=com.atlassian.jira.plugin.system.issuetabpanels:cvs-tabpanel

You find every changed file. Either use the CVS revisions to extract a patch, or click &quot;(+X -Y lines)&quot; and the link named &quot;Patch&quot; at the top. This will give you one unified diff. Merging those into one patch should work too.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>wltjr@gentoo.org</who>
            <bug_when>2008-02-13 21:59:31 0000</bug_when>
            <thetext>Will get to this before end of my day, sometime in the next 8 hours or so. Thanks for the pointers on fetching the patches/diffs.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>wltjr@gentoo.org</who>
            <bug_when>2008-02-18 02:13:56 0000</bug_when>
            <thetext>Working on this. Made two patches, the one for CVE-2008-0387 is good to go. The one for CVE-2008-0467 makes compile fail. So working on that atm. Might commit the one then the other worse case. Sorry for the delay been busy.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>wltjr@gentoo.org</who>
            <bug_when>2008-02-18 21:50:18 0000</bug_when>
            <thetext>Created an attachment (id=143904)
firebird-2.0.3.12981.0 CVE-2008-0467 patch

Here is the patch for CVE-2008-0467. Need some help with this one. It applies fine, but makes compile fail :(

make[2]: Entering directory `/tmp/portage/dev-db/firebird-2.0.3.12981.0-r5/work/Firebird-2.0.3.12981-0/gen&apos;
x86_64-pc-linux-gnu-g++ -O2 -msse -msse2 -msse3 -march=k8 -mtune=k8 -minline-all-stringops -O2 -msse -msse2 -msse3 -march=k8 -mtune=k8 -minline-all-stringops -I../src/include/gen -I../src/include -I../src/vulcan -DNAMESPACE=Vulcan -ggdb -O3 -fno-omit-frame-pointer -DNDEBUG -DLINUX -DAMD64 -pipe -MMD -fPIC -fmessage-length=0 -DPROD_BUILD -O2 -msse -msse2 -msse3 -march=k8 -mtune=k8 -minline-all-stringops -I../src/include/gen -I../src/include -I../src/vulcan -DNAMESPACE=Vulcan -ggdb -O3 -fno-omit-frame-pointer -DNDEBUG -DLINUX -DAMD64 -pipe -MMD -fPIC -fmessage-length=0 -DPROD_BUILD -DSUPERSERVER -pthread -I../src/include/gen -I../src/include -I../src/vulcan -DNAMESPACE=Vulcan -ggdb -O3 -fno-omit-frame-pointer -DNDEBUG -DLINUX -DAMD64 -pipe -MMD -fPIC -fmessage-length=0 -DPROD_BUILD -c ../src/remote/inet_server.cpp -o ../temp/superserver/remote/inet_server.o
In file included from ../src/include/../jrd/gdsassert.h:24,
                 from ../src/include/../common/classes/tree.h:34,
                 from ../src/include/../common/classes/alloc.h:45,
                 from ../src/remote/../jrd/../common/classes/fb_string.h:39,
                 from ../src/remote/../jrd/isc_proto.h:28,
                 from ../src/remote/inet_server.cpp:40:
../src/include/../jrd/../jrd/gds_proto.h:37: warning: large integer implicitly truncated to unsigned type
../src/remote/inet_server.cpp:566: error: &apos;SignalSafeSemaphore&apos; in namespace &apos;Firebird&apos; does not name a type
../src/remote/inet_server.cpp: In function &apos;void* shutdown_thread(void*)&apos;:
../src/remote/inet_server.cpp:583: error: &apos;shutSem&apos; was not declared in this scope
../src/remote/inet_server.cpp: In function &apos;void signal_term(int)&apos;:
../src/remote/inet_server.cpp:621: error: &apos;shutSem&apos; was not declared in this scope
../src/remote/inet_server.cpp: In function &apos;void shutdown_fini()&apos;:
../src/remote/inet_server.cpp:650: error: &apos;shutSem&apos; was not declared in this scope
make[2]: *** [../temp/superserver/remote/inet_server.o] Error 1
make[2]: Leaving directory `/tmp/portage/dev-db/firebird-2.0.3.12981.0-r5/work/Firebird-2.0.3.12981-0/gen&apos;
make[1]: *** [fbserver] Error 2
make[1]: Leaving directory `/tmp/portage/dev-db/firebird-2.0.3.12981.0-r5/work/Firebird-2.0.3.12981-0/gen&apos;
make: *** [firebird] Error 2

If someone can help out with the patch. And/or inform me of what I did wrong. Or need to do to fix. Would help out allot. Kinda stuck on this atm. Thanks

Just drop the file in firebird/files and add a line above the other patches in a 2.0.3 ebuild. Re-digest and emerge. Will allocate some more time to it tomorrow if no one beats me to it :)
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>wltjr@gentoo.org</who>
            <bug_when>2008-02-19 16:15:39 0000</bug_when>
            <thetext>Ok went upstream for help on this. Damyan Ivanov &lt;dmn@debian.org&gt; was kind enough to provide the patch they are using on Debian. I just tested that it applied and compiled filed. I just committed it to tree along with patch for CVE-2008-0387. So we should be good to go now :)

Although the Debian patch is a little smaller than mine. So not sure what&apos;s up with that. (There is a patch for a file for windows or etc in mine, but not sure that accounts for size diff )

I did also find out from upstream about the compile error

&quot;SignalSafeSemaphore is surely from another fix - it was needed when porting to 
Solaris, Darwin or may be something else that does not support timeouts in 
posix semaphores. Rename it bak to Semaphore and compile error will be gone.&quot;

So I might try that with my patch and swap out patches. Maybe going to ask about the differences with upstream. But either way is address. I guess we can look to stabilize this one. Or wait a day or so to see if I change out patches. Just wanted to get a fix in tree sooner than later. Since I was already slacking on this.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2008-02-20 08:34:41 0000</bug_when>
            <thetext>Thx William. Could you clarify which versions are targets for stable?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>wltjr@gentoo.org</who>
            <bug_when>2008-02-20 19:46:18 0000</bug_when>
            <thetext>firebird-2.0.3.12981.0-r5 is patched, also doesn&apos;t used hard coded cflags like -r4. Main differences between that version and current stable.

Haven&apos;t had a chance to diff patches yet, but if I do that will be -r6 and will comment accordingly. Will see about looking into that now.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2008-02-21 07:38:10 0000</bug_when>
            <thetext>Thx.

Arches please test and mark stable. Target keywords are:

firebird-2.0.3.12981.0-r5.ebuild:KEYWORDS=&quot;amd64 -ia64 x86&quot;</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>fauli@gentoo.org</who>
            <bug_when>2008-02-21 08:21:18 0000</bug_when>
            <thetext>x86 stable</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>beandog@gentoo.org</who>
            <bug_when>2008-02-25 15:49:50 0000</bug_when>
            <thetext>I fixed the multilib issues best I could on the one ebuild, amd64 stable</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pva@gentoo.org</who>
            <bug_when>2008-02-25 17:52:04 0000</bug_when>
            <thetext>Fixed in release snapshot.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2008-02-25 20:05:43 0000</bug_when>
            <thetext>Request filed.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>rbu@gentoo.org</who>
            <bug_when>2008-03-03 00:11:30 0000</bug_when>
            <thetext>GLSA 200803-02</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143904</attachid>
            <date>2008-02-18 21:50 0000</date>
            <desc>firebird-2.0.3.12981.0 CVE-2008-0467 patch</desc>
            <filename>firebird-2.0.3.12981.0-CVE-2008-0467.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">ZGlmZiAtTmF1ciBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wX29yaWcvc3JjL2pyZC9jb25zdGFudHMu
aCBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wL3NyYy9qcmQvY29uc3RhbnRzLmgKLS0tIEZpcmViaXJk
LTIuMC4zLjEyOTgxLTBfb3JpZy9zcmMvanJkL2NvbnN0YW50cy5oCTIwMDctMTEtMDUgMjE6MDc6
NTAuMDAwMDAwMDAwIC0wNTAwCisrKyBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wL3NyYy9qcmQvY29u
c3RhbnRzLmgJMjAwOC0wMi0xNyAxOTozMToyNS4wMDAwMDAwMDAgLTA1MDAKQEAgLTU2LDcgKzU2
LDcgQEAKIAogLyogTWlzYyBjb25zdGFudCB2YWx1ZXMgKi8KIAotY29uc3QgaW50IFVTRVJOQU1F
X0xFTkdUSAk9IDMxOwkvKiBDaGFyYWN0ZXJzICovCitjb25zdCB1bnNpZ25lZCBpbnQgVVNFUk5B
TUVfTEVOR1RICT0gMzE7CS8qIENoYXJhY3RlcnMgKi8KIAogY29uc3Qgc2l6ZV90IE1BWF9TUUxf
SURFTlRJRklFUl9TSVpFID0gMzI7CiBjb25zdCBzaXplX3QgTUFYX1NRTF9JREVOVElGSUVSX0xF
TiA9IE1BWF9TUUxfSURFTlRJRklFUl9TSVpFIC0gMTsKZGlmZiAtTmF1ciBGaXJlYmlyZC0yLjAu
My4xMjk4MS0wX29yaWcvc3JjL2pyZC9pc2MuY3BwIEZpcmViaXJkLTIuMC4zLjEyOTgxLTAvc3Jj
L2pyZC9pc2MuY3BwCi0tLSBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wX29yaWcvc3JjL2pyZC9pc2Mu
Y3BwCTIwMDctMTEtMDUgMjE6MDc6NTAuMDAwMDAwMDAwIC0wNTAwCisrKyBGaXJlYmlyZC0yLjAu
My4xMjk4MS0wL3NyYy9qcmQvaXNjLmNwcAkyMDA4LTAyLTE3IDE5OjMxOjA0LjAwMDAwMDAwMCAt
MDUwMApAQCAtODcsMTQgKzg3LDEzIEBACiAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVk
ZSA8YWNsYXBpLmg+CisjaW5jbHVkZSA8bG1jb25zLmg+CiAKIHN0YXRpYyBVU0hPUlQgb3NfdHlw
ZTsKIHN0YXRpYyBTRUNVUklUWV9BVFRSSUJVVEVTIHNlY3VyaXR5X2F0dHI7CiAKIC8vc3RhdGlj
IFRFWFQgaW50ZXJiYXNlX2RpcmVjdG9yeVtNQVhQQVRITEVOXTsKIAotc3RhdGljIGJvb2wgY2hl
Y2tfdXNlcl9wcml2aWxlZ2UoKTsKLQogI2VuZGlmIC8vIFdJTl9OVAogCiBzdGF0aWMgVEVYVCB1
c2VyX25hbWVbMjU2XTsKQEAgLTM5MywxNCArMzkyLDI5IEBACiB9CiAjZW5kaWYKIAorY29uc3Qg
VEVYVCogSVNDX2dldF9ob3N0KEZpcmViaXJkOjpzdHJpbmcmIGhvc3QpCit7CisvKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgICAgIEkgUyBDIF8gZyBlIHQg
XyBoIG8gcyB0CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg
KgorICogRnVuY3Rpb25hbCBkZXNjcmlwdGlvbgorICogICAgICBHZXQgaG9zdCBuYW1lIGluIG5v
bi1wbGFpbiBidWZmZXIuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLworCVRFWFQgYnVmZmVyW0JVRkZFUl9TTUFMTF07CisJSVNDX2dldF9ob3N0KGJ1ZmZlciwg
c2l6ZW9mKGJ1ZmZlcikpOworCWhvc3QgPSBidWZmZXI7CisJcmV0dXJuIGhvc3QuY19zdHIoKTsK
K30KKwogI2lmZGVmIFVOSVgKLWludCBJU0NfZ2V0X3VzZXIoVEVYVCoJbmFtZSwKLQkJCQkJCQkJ
CSAgaW50KglpZCwKLQkJCQkJCQkJCSAgaW50Kglncm91cCwKLQkJCQkJCQkJCSAgVEVYVCoJcHJv
amVjdCwKLQkJCQkJCQkJCSAgVEVYVCoJb3JnYW5pemF0aW9uLAotCQkJCQkJCQkJICBpbnQqCW5v
ZGUsCi0JCQkJCQkJCQkgIGNvbnN0IFRFWFQqCXVzZXJfc3RyaW5nKQorYm9vbCBJU0NfZ2V0X3Vz
ZXIoRmlyZWJpcmQ6OnN0cmluZyoJbmFtZSwgCisJCQkJICBpbnQqCWlkLAorCQkJCSAgaW50Kgln
cm91cCwKKwkJCQkgIGNvbnN0IFRFWFQqCXVzZXJfc3RyaW5nKQogewogLyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtNDQ4LDcgKzQ2Miw3IEBACiAJfQogCiAJ
aWYgKG5hbWUpCi0JCXN0cmNweShuYW1lLCBwKTsKKwkJKm5hbWUgPSBwOwogCiAJaWYgKGlkKQog
CQkqaWQgPSBldWlkOwpAQCAtNDU2LDE1ICs0NzAsNiBAQAogCWlmIChncm91cCkKIAkJKmdyb3Vw
ID0gZWdpZDsKIAotCWlmIChwcm9qZWN0KQotCQkqcHJvamVjdCA9IDA7Ci0KLQlpZiAob3JnYW5p
emF0aW9uKQotCQkqb3JnYW5pemF0aW9uID0gMDsKLQotCWlmIChub2RlKQotCQkqbm9kZSA9IDA7
Ci0KIAlyZXR1cm4gKGV1aWQgPT0gMCk7CiB9CiAjZW5kaWYKQEAgLTU3MywxMyArNTc4LDEwIEBA
CiAjZW5kaWYKIAogI2lmZGVmIFdJTl9OVAotaW50IElTQ19nZXRfdXNlcihURVhUKgluYW1lLAot
CQkJCQkJCQkJICBpbnQqCWlkLAotCQkJCQkJCQkJICBpbnQqCWdyb3VwLAotCQkJCQkJCQkJICBU
RVhUKglwcm9qZWN0LAotCQkJCQkJCQkJICBURVhUKglvcmdhbml6YXRpb24sCi0JCQkJCQkJCQkg
IGludCoJbm9kZSwKLQkJCQkJCQkJCSAgY29uc3QgVEVYVCoJdXNlcl9zdHJpbmcpCitib29sIElT
Q19nZXRfdXNlcihGaXJlYmlyZDo6c3RyaW5nKgluYW1lLCAKKwkJCQkgIGludCoJaWQsCisJCQkJ
ICBpbnQqCWdyb3VwLAorCQkJCSAgY29uc3QgVEVYVCoJdXNlcl9zdHJpbmcpCiB7CiAvKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC01OTcsMTYyICs1OTksMjUg
QEAKIAlpZiAoZ3JvdXApCiAJCSpncm91cCA9IC0xOwogCi0JaWYgKHByb2plY3QpCi0JCSpwcm9q
ZWN0ID0gMDsKLQotCWlmIChvcmdhbml6YXRpb24pCi0JCSpvcmdhbml6YXRpb24gPSAwOwotCi0J
aWYgKG5vZGUpCi0JCSpub2RlID0gMDsKLQogCWlmIChuYW1lKQogCXsKLQkJbmFtZVswXSA9IDA7
Ci0JCURXT1JEICBuYW1lX2xlbiA9IDEyODsKLQkJaWYgKEdldFVzZXJOYW1lKG5hbWUsICZuYW1l
X2xlbikpCi0JCXsKLQkJCW5hbWVbbmFtZV9sZW5dID0gMDsKLQotCQkJLyogTlQgdXNlciBuYW1l
IGlzIGNhc2UgaW5zZW5zaXRpdmUgKi8KLQotCQkJZm9yIChEV09SRCBpID0gMDsgaSA8IG5hbWVf
bGVuOyBpKyspCi0JCQl7Ci0JCQkJbmFtZVtpXSA9IFVQUEVSNyhuYW1lW2ldKTsKLQkJCX0KLQot
LyogVGhpcyBjaGVjayBpcyBub3QgaW50ZXJuYXRpb25hbGl6ZWQsIHRoZSBzZWN1cml0eSBtb2Rl
bCBuZWVkcyB0byBiZQotICogcmVlbmdpbmVlcmVkLCBlc3BlY2lhbGx5IG9uIFNVUEVSU0VSVkVS
IHdoZXJlIG5vbmUgb2YgdGhlc2UgbG9jYWwKLSAqIHVzZXIgKGluIHByb2Nlc3MpIGFzc3VtcHRp
b25zIGFyZSB2YWxpZC4KLQkJCWlmICghc3RyY21wKG5hbWUsICJBRE1JTklTVFJBVE9SIikpCi0J
CQl7Ci0JCQkJaWYgKGlkKQotCQkJCQkqaWQgPSAwOwotCi0JCQkJaWYgKGdyb3VwKQotCQkJCQkq
Z3JvdXAgPSAwOwotCQkJfQotICovCi0JCX0KLQl9Ci0KLQlyZXR1cm4gY2hlY2tfdXNlcl9wcml2
aWxlZ2UoKTsKLX0KLQotCi0vL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwotLy8KLS8vIENoZWNrIHRvIHNlZSBpZiB0aGUgdXNlciBi
ZWxvbmdzIHRvIHRoZSBhZG1pbmlzdHJhdG9yIGdyb3VwLgotLy8KLS8vIFRoaXMgcm91dGluZSB3
YXMgYWRhcHRlZCBmcm9tIGNvZGUgaW4gcm91dGluZSBSdW5uaW5nQXNBZG1pbnN0cmF0b3IKLS8v
IGluIFxtc3Rvb2xzXHNhbXBsZXNccmVnbXBhZFxyZWdkYi5jLgotLy8KLXN0YXRpYyBib29sIGNo
ZWNrX3VzZXJfcHJpdmlsZWdlKCkKLXsKLQlIQU5ETEUgdGtoYW5kbGU7Ci0JU0lEX0lERU5USUZJ
RVJfQVVUSE9SSVRZIHN5c3RlbV9zaWRfYXV0aG9yaXR5ID0ge1NFQ1VSSVRZX05UX0FVVEhPUklU
WX07Ci0KLQkvLyBGaXJzdCB3ZSBtdXN0IG9wZW4gYSBoYW5kbGUgdG8gdGhlIGFjY2VzcyB0b2tl
biBmb3IgdGhpcyB0aHJlYWQuCi0KLQlpZiAoIU9wZW5UaHJlYWRUb2tlbihHZXRDdXJyZW50VGhy
ZWFkKCksIFRPS0VOX1FVRVJZLCBGQUxTRSwgJnRraGFuZGxlKSkKLQl7Ci0JCWlmIChHZXRMYXN0
RXJyb3IoKSA9PSBFUlJPUl9OT19UT0tFTikKKwkJRFdPUkQgbmFtZV9sZW4gPSBVTkxFTjsKKwkJ
VEVYVCogbm0gPSBuYW1lLT5nZXRCdWZmZXIobmFtZV9sZW4gKyAxKTsKKwkJaWYgKEdldFVzZXJO
YW1lKG5tLCAmbmFtZV9sZW4pKQogCQl7Ci0JCQkvLyBJZiB0aGUgdGhyZWFkIGRvZXMgbm90IGhh
dmUgYW4gYWNjZXNzIHRva2VuLCB3ZSdsbCBleGFtaW5lIHRoZQotCQkJLy8gYWNjZXNzIHRva2Vu
IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvY2Vzcy4KKwkJCW5tW25hbWVfbGVuXSA9IDA7CiAKLQkJ
CWlmICghT3BlblByb2Nlc3NUb2tlbihHZXRDdXJyZW50UHJvY2VzcygpLCBUT0tFTl9RVUVSWSwg
JnRraGFuZGxlKSkKLQkJCXsKLQkJCQlDbG9zZUhhbmRsZSh0a2hhbmRsZSk7Ci0JCQkJcmV0dXJu
IGZhbHNlOwotCQkJfQorCQkJLy8gTlQgdXNlciBuYW1lIGlzIGNhc2UgaW5zZW5zaXRpdmUKKwkJ
CUNoYXJVcHBlckJ1ZmYobm0sIG5hbWVfbGVuKTsKKwkJCW5hbWUtPnJlY2FsY3VsYXRlX2xlbmd0
aCgpOwogCQl9CiAJCWVsc2UKIAkJewotCQkJcmV0dXJuIGZhbHNlOworCQkJKm5hbWUgPSAiIjsK
IAkJfQogCX0KIAotCVRPS0VOX0dST1VQUyoJcHRnICAgICAgID0gTlVMTDsKLQlEV09SRAkJCXRv
a2VuX2xlbiA9IDA7Ci0KLQl3aGlsZSAodHJ1ZSkKLQl7Ci0JCS8qIFRoZW4gd2UgbXVzdCBxdWVy
eSB0aGUgc2l6ZSBvZiB0aGUgZ3JvdXAgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoCi0JCSAg
IHRoZSB0b2tlbi4gIFRoaXMgaXMgZ3VhcmVudGVlZCB0byBmYWlsIHRoZSBmaXJzdCB0aW1lIHRo
cm91Z2gKLQkJICAgYmVjYXVzZSB0aGVyZSBpcyBubyBidWZmZXIuICovCi0KLQkJaWYgKEdldFRv
a2VuSW5mb3JtYXRpb24odGtoYW5kbGUsCi0JCQkJCQkJCVRva2VuR3JvdXBzLAotCQkJCQkJCQlw
dGcsCi0JCQkJCQkJCXRva2VuX2xlbiwKLQkJCQkJCQkJJnRva2VuX2xlbikpCi0JCXsKLQkJCWJy
ZWFrOwotCQl9Ci0KLQkJLyogSWYgdGhlcmUgaGFkIGJlZW4gYSBidWZmZXIsIGl0J3MgZWl0aGVy
IHRvbyBzbWFsbCBvciBzb21ldGhpbmcKLQkJICAgZWxzZSBpcyB3cm9uZy4gIEVpdGhlciB3YXks
IHdlIGNhbiBkaXNwb3NlIG9mIGl0LiAqLwotCi0JCWlmIChwdGcpCi0JCXsKLQkJCWdkc19fZnJl
ZShwdGcpOwotCQl9Ci0KLQkJLyogSGVyZSB3ZSB2ZXJpZnkgdGhhdCBHZXRUb2tlbkluZm9ybWF0
aW9uIGZhaWxlZCBmb3IgbGFjayBvZiBhIGxhcmdlCi0JCSAgIGVub3VnaCBidWZmZXIuICovCi0K
LQkJaWYgKEdldExhc3RFcnJvcigpICE9IEVSUk9SX0lOU1VGRklDSUVOVF9CVUZGRVIpCi0JCXsK
LQkJCUNsb3NlSGFuZGxlKHRraGFuZGxlKTsKLQkJCXJldHVybiBmYWxzZTsKLQkJfQotCi0JCS8v
IEFsbG9jYXRlIGEgYnVmZmVyIGZvciB0aGUgZ3JvdXAgaW5mb3JtYXRpb24uCi0JCXB0ZyA9IChU
T0tFTl9HUk9VUFMgKikgZ2RzX19hbGxvYygoU0xPTkcpIHRva2VuX2xlbik7Ci0KLQkJaWYgKCFw
dGcpCi0JCXsKLQkJCUNsb3NlSGFuZGxlKHRraGFuZGxlKTsKLQkJCXJldHVybiBmYWxzZTsJCS8q
IE5PTUVNOiAqLwotCQl9Ci0JCS8vIEZSRUU6IGVhcmxpZXIgaW4gdGhpcyBsb29wLCBhbmQgYXQg
cHJvY2VkdXJlIHJldHVybgotCX0KLQotCS8vIENyZWF0ZSBhIFN5c3RlbSBJZGVudGlmaWVyIGZv
ciB0aGUgQWRtaW4gZ3JvdXAuCi0KLQlQU0lEIGFkbWluX3NpZDsKLQotCWlmICghQWxsb2NhdGVB
bmRJbml0aWFsaXplU2lkKCZzeXN0ZW1fc2lkX2F1dGhvcml0eSwgMiwKLQkJCQkJCQkJICBTRUNV
UklUWV9CVUlMVElOX0RPTUFJTl9SSUQsCi0JCQkJCQkJCSAgRE9NQUlOX0FMSUFTX1JJRF9BRE1J
TlMsCi0JCQkJCQkJCSAgMCwgMCwgMCwgMCwgMCwgMCwgJmFkbWluX3NpZCkpCi0JewotCQlnZHNf
X2ZyZWUocHRnKTsKLQkJQ2xvc2VIYW5kbGUodGtoYW5kbGUpOwotCQlyZXR1cm4gZmFsc2U7Ci0J
fQotCi0JLy8gRmluYWxseSB3ZSdsbCBpdGVyYXRlIHRocm91Z2ggdGhlIGxpc3Qgb2YgZ3JvdXBz
IGZvciB0aGlzIGFjY2VzcwotCS8vIHRva2VuIGxvb2tpbmcgZm9yIGEgbWF0Y2ggYWdhaW5zdCB0
aGUgU0lEIHdlIGNyZWF0ZWQgYWJvdmUuCi0KLQlib29sIGFkbWluX3ByaXYgPSBmYWxzZTsKLQot
CWZvciAoRFdPUkQgaSA9IDA7IGkgPCBwdGctPkdyb3VwQ291bnQ7IGkrKykKLQl7Ci0JCWlmIChF
cXVhbFNpZChwdGctPkdyb3Vwc1tpXS5TaWQsIGFkbWluX3NpZCkpCi0JCXsKLQkJCWFkbWluX3By
aXYgPSB0cnVlOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0KLQkvLyBEZWFsbG9jYXRlIHRoZSBTSUQg
d2UgY3JlYXRlZC4KLQotCUZyZWVTaWQoYWRtaW5fc2lkKTsKLQlnZHNfX2ZyZWUocHRnKTsKLQlD
bG9zZUhhbmRsZSh0a2hhbmRsZSk7Ci0JcmV0dXJuIGFkbWluX3ByaXY7CisJcmV0dXJuIGZhbHNl
OwogfQogI2VuZGlmCiAKZGlmZiAtTmF1ciBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wX29yaWcvc3Jj
L2pyZC9pc2NfcHJvdG8uaCBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wL3NyYy9qcmQvaXNjX3Byb3Rv
LmgKLS0tIEZpcmViaXJkLTIuMC4zLjEyOTgxLTBfb3JpZy9zcmMvanJkL2lzY19wcm90by5oCTIw
MDctMTEtMDUgMjE6MDc6NTAuMDAwMDAwMDAwIC0wNTAwCisrKyBGaXJlYmlyZC0yLjAuMy4xMjk4
MS0wL3NyYy9qcmQvaXNjX3Byb3RvLmgJMjAwOC0wMi0xNyAxOTozMjoyNi4wMDAwMDAwMDAgLTA1
MDAKQEAgLTI1LDYgKzI1LDcgQEAKICNkZWZpbmUgSlJEX0lTQ19QUk9UT19ICiAKICNpbmNsdWRl
ICIuLi9qcmQvaXNjLmgiCisjaW5jbHVkZSAiLi4vY29tbW9uL2NsYXNzZXMvZmJfc3RyaW5nLmgi
CiAKIHZvaWQJSVNDX2FzdF9lbnRlcih2b2lkKTsKIHZvaWQJSVNDX2FzdF9leGl0KHZvaWQpOwpA
QCAtMzMsOCArMzQsOCBAQAogLy92b2lkCUlTQ19nZXRfY29uZmlnKFRFWFQgKiwgc3RydWN0IGlw
Y2NmZyAqKTsKIC8vaW50CQlJU0Nfc2V0X2NvbmZpZyhURVhUICosIHN0cnVjdCBpcGNjZmcgKik7
CiBURVhUKglJU0NfZ2V0X2hvc3QoVEVYVCAqLCBVU0hPUlQpOwotaW50CQlJU0NfZ2V0X3VzZXIo
VEVYVCosIGludCosIGludCosIFRFWFQqLAotCQkJCQkJCQkJCQkgVEVYVCosIGludCosIGNvbnN0
IFRFWFQqKTsKK2NvbnN0IFRFWFQqICAgSVNDX2dldF9ob3N0KEZpcmViaXJkOjpzdHJpbmcmKTsK
K2Jvb2wgIElTQ19nZXRfdXNlcihGaXJlYmlyZDo6c3RyaW5nKiwgaW50KiwgaW50KiwgY29uc3Qg
VEVYVCopOwogU0xPTkcJSVNDX2dldF91c2VyX2dyb3VwX2lkKGNvbnN0IFRFWFQqKTsKIHZvaWQJ
SVNDX3NldF91c2VyKGNvbnN0IFRFWFQqKTsKIFNMT05HCUlTQ19nZXRfcHJlZml4KGNvbnN0IFRF
WFQqKTsKZGlmZiAtTmF1ciBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wX29yaWcvc3JjL2pyZC9qcmQu
Y3BwIEZpcmViaXJkLTIuMC4zLjEyOTgxLTAvc3JjL2pyZC9qcmQuY3BwCi0tLSBGaXJlYmlyZC0y
LjAuMy4xMjk4MS0wX29yaWcvc3JjL2pyZC9qcmQuY3BwCTIwMDctMTEtMDUgMjE6MDc6NTAuMDAw
MDAwMDAwIC0wNTAwCisrKyBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wL3NyYy9qcmQvanJkLmNwcAky
MDA4LTAyLTE3IDE5OjMxOjU2LjAwMDAwMDAwMCAtMDUwMApAQCAtNjY5OSwxMiArNjY5OSw5IEBA
CiAgKiovCiBzdGF0aWMgdm9pZCBnZXRVc2VySW5mbyhVc2VySWQmIHVzZXIsIGNvbnN0IERhdGFi
YXNlT3B0aW9ucyYgb3B0aW9ucykKIHsKLQlURVhUIG5hbWVbMTI5XSA9ICIiOwotCVRFWFQgcHJv
amVjdFszM10gPSAiIjsKLQlURVhUIG9yZ2FuaXphdGlvblszM10gPSAiIjsKLQotCWludCBub2Rl
X2lkID0gMDsKIAlpbnQgaWQgPSAtMSwgZ3JvdXAgPSAtMTsJLy8gQ1ZDOiBUaGlzIHZhciBjb250
YWluZWQgdHJhc2gKKwlpbnQgbm9kZV9pZCA9IDA7CisJRmlyZWJpcmQ6OnN0cmluZyBuYW1lOwog
CiAjaWZkZWYgQk9PVF9CVUlMRAogCWJvb2wgd2hlZWwgPSB0cnVlOwpAQCAtNjcxMiwxMiArNjcw
OSw5IEBACiAJYm9vbCB3aGVlbCA9IGZhbHNlOwogCWlmIChvcHRpb25zLmRwYl91c2VyX25hbWUu
aXNFbXB0eSgpKSAKIAl7Ci0gICAgICAgd2hlZWwgPSBJU0NfZ2V0X3VzZXIobmFtZSwKKyAgICAg
ICB3aGVlbCA9IElTQ19nZXRfdXNlcigmbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmdyb3VwLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByb2plY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Jn
YW5pemF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZub2RlX2lkLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZHBiX3N5c191c2VyX25hbWUubnVsbFN0cigp
KTsKIAl9CiAKQEAgLTY3MzgsMTggKzY3MzIsMTggQEAKIAkJewogCQkJaWYgKG9wdGlvbnMuZHBi
X3VzZXJfbmFtZS5oYXNEYXRhKCkpCiAJCQl7Ci0JCQkJb3B0aW9ucy5kcGJfdXNlcl9uYW1lLmNv
cHlUbyhuYW1lLCBzaXplb2YgbmFtZSk7CisJCQkJbmFtZSA9IG9wdGlvbnMuZHBiX3VzZXJfbmFt
ZTsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKLQkJCQlzdHJjcHkobmFtZSwgIjxVbmtub3duPiIpOwor
CQkJCW5hbWUgPSAiPFVua25vd24+IjsKIAkJCX0KIAkJfQogCiAJCS8vIGlmIHRoZSBuYW1lIGZy
b20gdGhlIHVzZXIgZGF0YWJhc2UgaXMgZGVmaW5lZCBhcyBTWVNEQkEsCiAJCS8vIHdlIGRlZmlu
ZSB0aGF0IHVzZXIgaWQgYXMgaGF2aW5nIHN5c3RlbSBwcml2aWxlZ2VzCiAKLQkJaWYgKCFzdHJj
bXAobmFtZSwgU1lTREJBX1VTRVJfTkFNRSkpCisJCWlmIChuYW1lID09IFNZU0RCQV9VU0VSX05B
TUUpCiAJCXsKIAkJCXdoZWVsID0gdHJ1ZTsKIAkJfQpAQCAtNjc2MSwxMiArNjc1NSwxMiBAQAog
CiAJaWYgKHdoZWVsKQogCXsKLQkJc3RyY3B5KG5hbWUsIFNZU0RCQV9VU0VSX05BTUUpOworCQlu
YW1lID0gU1lTREJBX1VTRVJfTkFNRTsKIAl9CiAKIAl1c2VyLnVzcl91c2VyX25hbWUgPSBuYW1l
OwotCXVzZXIudXNyX3Byb2plY3RfbmFtZSA9IHByb2plY3Q7Ci0JdXNlci51c3Jfb3JnX25hbWUg
PSBvcmdhbml6YXRpb247CisJdXNlci51c3JfcHJvamVjdF9uYW1lID0gIiI7CisJdXNlci51c3Jf
b3JnX25hbWUgPSAiIjsKIAl1c2VyLnVzcl9zcWxfcm9sZV9uYW1lID0gb3B0aW9ucy5kcGJfcm9s
ZV9uYW1lOwogCXVzZXIudXNyX3VzZXJfaWQgPSBpZDsKIAl1c2VyLnVzcl9ncm91cF9pZCA9IGdy
b3VwOwpkaWZmIC1OYXVyIEZpcmViaXJkLTIuMC4zLjEyOTgxLTBfb3JpZy9zcmMvanJkL2pyZF9w
d2QuaCBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wL3NyYy9qcmQvanJkX3B3ZC5oCi0tLSBGaXJlYmly
ZC0yLjAuMy4xMjk4MS0wX29yaWcvc3JjL2pyZC9qcmRfcHdkLmgJMjAwNy0xMS0wNSAyMTowNzo1
MC4wMDAwMDAwMDAgLTA1MDAKKysrIEZpcmViaXJkLTIuMC4zLjEyOTgxLTAvc3JjL2pyZC9qcmRf
cHdkLmgJMjAwOC0wMi0xNyAxOTozNDoxMC4wMDAwMDAwMDAgLTA1MDAKQEAgLTY2LDExICs2Niwx
MSBAQAogCiAJc3RhdGljIHZvaWQgaW5pdGlhbGl6ZSgpOwogCXN0YXRpYyB2b2lkIHNodXRkb3du
KCk7Ci0Jc3RhdGljIHZvaWQgdmVyaWZ5VXNlcihURVhUKiwgY29uc3QgVEVYVCosIGNvbnN0IFRF
WFQqLCBjb25zdCBURVhUKiwKKwlzdGF0aWMgdm9pZCB2ZXJpZnlVc2VyKEZpcmViaXJkOjpzdHJp
bmcmLCBjb25zdCBURVhUKiwgY29uc3QgVEVYVCosIGNvbnN0IFRFWFQqLAogCQlpbnQqLCBpbnQq
LCBpbnQqLCBjb25zdCBGaXJlYmlyZDo6c3RyaW5nJik7CiAKIAlzdGF0aWMgdm9pZCBoYXNoKEZp
cmViaXJkOjpzdHJpbmcmIGgsIAotCQkJCQkgY29uc3QgVEVYVCogdXNlck5hbWUsIAorCQkJCQkg
Y29uc3QgRmlyZWJpcmQ6OnN0cmluZyYgdXNlck5hbWUsIAogCQkJCQkgY29uc3QgVEVYVCogcGFz
c3dkKQogCXsKIAkJRmlyZWJpcmQ6OnN0cmluZyBzYWx0OwpAQCAtNzksNyArNzksNyBAQAogCX0K
IAogCXN0YXRpYyB2b2lkIGhhc2goRmlyZWJpcmQ6OnN0cmluZyYgaCwgCi0JCQkJCSBjb25zdCBU
RVhUKiB1c2VyTmFtZSwgCisJCQkJCSBjb25zdCBGaXJlYmlyZDo6c3RyaW5nJiB1c2VyTmFtZSwg
CiAJCQkJCSBjb25zdCBURVhUKiBwYXNzd2QsCiAJCQkJCSBjb25zdCBGaXJlYmlyZDo6c3RyaW5n
JiBvbGRIYXNoKQogCXsKQEAgLTExMCw3ICsxMTAsNyBAQAogCiAJdm9pZCBmaW5pKCk7CiAJdm9p
ZCBpbml0KCk7Ci0JYm9vbCBsb29rdXBfdXNlcihURVhUKiwgaW50KiwgaW50KiwgVEVYVCopOwor
CWJvb2wgbG9va3VwX3VzZXIoY29uc3QgVEVYVCosIGludCosIGludCosIFRFWFQqKTsKIAlib29s
IHByZXBhcmUoKTsKIAogCXN0YXRpYyBTZWN1cml0eURhdGFiYXNlIGluc3RhbmNlOwpkaWZmIC1O
YXVyIEZpcmViaXJkLTIuMC4zLjEyOTgxLTBfb3JpZy9zcmMvanJkL3B3ZC5jcHAgRmlyZWJpcmQt
Mi4wLjMuMTI5ODEtMC9zcmMvanJkL3B3ZC5jcHAKLS0tIEZpcmViaXJkLTIuMC4zLjEyOTgxLTBf
b3JpZy9zcmMvanJkL3B3ZC5jcHAJMjAwNy0xMS0wNSAyMTowNzo1MC4wMDAwMDAwMDAgLTA1MDAK
KysrIEZpcmViaXJkLTIuMC4zLjEyOTgxLTAvc3JjL2pyZC9wd2QuY3BwCTIwMDgtMDItMTcgMTk6
MzM6NTkuMDAwMDAwMDAwIC0wNTAwCkBAIC0yNjMsNyArMjYzLDcgQEAKIAljb3VudGVyICs9IChp
c19jYWNoZWQpID8gMSA6IDA7CiB9CiAKLWJvb2wgU2VjdXJpdHlEYXRhYmFzZTo6bG9va3VwX3Vz
ZXIoVEVYVCAqIHVzZXJfbmFtZSwgaW50ICp1aWQsIGludCAqZ2lkLCBURVhUICogcHdkKQorYm9v
bCBTZWN1cml0eURhdGFiYXNlOjpsb29rdXBfdXNlcihjb25zdCBURVhUKiB1c2VyX25hbWUsIGlu
dCogdWlkLCBpbnQqIGdpZCwgVEVYVCogcHdkKQogewogCWJvb2wgZm91bmQgPSBmYWxzZTsJCS8v
IHVzZXIgZm91bmQgZmxhZwogCVRFWFQgdW5hbWVbMTI5XTsJCS8vIHVzZXIgbmFtZSBidWZmZXIK
QEAgLTQzMyw3ICs0MzMsNyBAQAogCWluc3RhbmNlLmZpbmkoKTsKIH0KIAotdm9pZCBTZWN1cml0
eURhdGFiYXNlOjp2ZXJpZnlVc2VyKFRFWFQqIG5hbWUsCit2b2lkIFNlY3VyaXR5RGF0YWJhc2U6
OnZlcmlmeVVzZXIoRmlyZWJpcmQ6OnN0cmluZyYgbmFtZSwKIAkJCQkJCQkJICBjb25zdCBURVhU
KiB1c2VyX25hbWUsCiAJCQkJCQkJCSAgY29uc3QgVEVYVCogcGFzc3dvcmQsCiAJCQkJCQkJCSAg
Y29uc3QgVEVYVCogcGFzc3dvcmRfZW5jLApAQCAtNDQ0LDEyICs0NDQsMTEgQEAKIHsKIAlpZiAo
dXNlcl9uYW1lKQogCXsKLQkJVEVYVCogcCA9IG5hbWU7Ci0JCWZvciAoY29uc3QgVEVYVCogcSA9
IHVzZXJfbmFtZTsgKnE7ICsrcSwgKytwKQorCQluYW1lID0gdXNlcl9uYW1lOworCQlmb3IgKHVu
c2lnbmVkIGludCBuID0gMDsgbiA8IG5hbWUubGVuZ3RoKCk7ICsrbikKIAkJewotCQkJKnAgPSBV
UFBFUjcoKnEpOworCQkJbmFtZVtuXSA9IFVQUEVSNyhuYW1lW25dKTsKIAkJfQotCQkqcCA9IDA7
CiAJfQogCiAjaWZuZGVmIEVNQkVEREVECkBAIC00NTksNyArNDU4LDcgQEAKIAkvLyB0aGF0IG1l
YW5zIHRoZSBjdXJyZW50IGNvbnRleHQgbXVzdCBiZSBzYXZlZCBhbmQgcmVzdG9yZWQuCiAKIAlU
RVhUIHB3MVtNQVhfUEFTU1dPUkRfTEVOR1RIICsgMV07Ci0JY29uc3QgYm9vbCBmb3VuZCA9IGlu
c3RhbmNlLmxvb2t1cF91c2VyKG5hbWUsIHVpZCwgZ2lkLCBwdzEpOworCWNvbnN0IGJvb2wgZm91
bmQgPSBpbnN0YW5jZS5sb29rdXBfdXNlcihuYW1lLmNfc3RyKCksIHVpZCwgZ2lkLCBwdzEpOwog
CXB3MVtNQVhfUEFTU1dPUkRfTEVOR1RIXSA9IDA7CiAJRmlyZWJpcmQ6OnN0cmluZyBzdG9yZWRI
YXNoKHB3MSwgTUFYX1BBU1NXT1JEX0xFTkdUSCk7CiAJc3RvcmVkSGFzaC5ydHJpbSgpOwpkaWZm
IC1OYXVyIEZpcmViaXJkLTIuMC4zLjEyOTgxLTBfb3JpZy9zcmMvanJkL3N2Yy5jcHAgRmlyZWJp
cmQtMi4wLjMuMTI5ODEtMC9zcmMvanJkL3N2Yy5jcHAKLS0tIEZpcmViaXJkLTIuMC4zLjEyOTgx
LTBfb3JpZy9zcmMvanJkL3N2Yy5jcHAJMjAwNy0xMS0wNSAyMTowNzo1MC4wMDAwMDAwMDAgLTA1
MDAKKysrIEZpcmViaXJkLTIuMC4zLjEyOTgxLTAvc3JjL2pyZC9zdmMuY3BwCTIwMDgtMDItMTcg
MTk6MzE6MzcuMDAwMDAwMDAwIC0wNTAwCkBAIC01MTYsNyArNTE2LDcgQEAKIAkJfQogCQllbHNl
IAogCQl7Ci0JCQlURVhUIG5hbWVbMTI5XTsgLy8gdW51c2VkIGFmdGVyIHJldHJpZXZlZAorCQkJ
RmlyZWJpcmQ6OnN0cmluZyBuYW1lOyAvLyB1bnVzZWQgYWZ0ZXIgcmV0cmlldmVkCiAJCQlpbnQg
aWQsIGdyb3VwLCBub2RlX2lkOwogCQkJCiAJCQlGaXJlYmlyZDo6c3RyaW5nIHJlbW90ZSA9IG9w
dGlvbnMuc3BiX25ldHdvcmtfcHJvdG9jb2wgKwpkaWZmIC1OYXVyIEZpcmViaXJkLTIuMC4zLjEy
OTgxLTBfb3JpZy9zcmMvcmVtb3RlL2luZXQuY3BwIEZpcmViaXJkLTIuMC4zLjEyOTgxLTAvc3Jj
L3JlbW90ZS9pbmV0LmNwcAotLS0gRmlyZWJpcmQtMi4wLjMuMTI5ODEtMF9vcmlnL3NyYy9yZW1v
dGUvaW5ldC5jcHAJMjAwNy0xMS0wNSAyMTowNzo1MC4wMDAwMDAwMDAgLTA1MDAKKysrIEZpcmVi
aXJkLTIuMC4zLjEyOTgxLTAvc3JjL3JlbW90ZS9pbmV0LmNwcAkyMDA4LTAyLTE3IDE5OjMzOjA5
LjAwMDAwMDAwMCAtMDUwMApAQCAtOTQsNyArOTQsNyBAQAogI2VuZGlmCiAjZW5kaWYgLy8gIShk
ZWZpbmVkIFZNUyB8fCBkZWZpbmVkIFdJTl9OVCkKIAotI2lmZGVmIERBUldJTgorI2lmIChkZWZp
bmVkIERBUldJTiB8fCBkZWZpbmVkIEhQVVgpCiBleHRlcm4gIkMiIGludCBpbm5ldGdyKGNvbnN0
IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKTsKICNlbmRpZgog
CkBAIC0xMTksNyArMTE5LDcgQEAKICNpbmNsdWRlICIuLi9jb21tb24vdXRpbHNfcHJvdG8uaCIK
ICNpbmNsdWRlICIuLi9jb21tb24vY2xhc3Nlcy9DbHVtcGxldFdyaXRlci5oIgogCi0jaWYgKGRl
ZmluZWQgaHB1eCB8fCBkZWZpbmVkIFNDT19VTklYKQorI2lmIChkZWZpbmVkIEhQVVggfHwgZGVm
aW5lZCBTQ09fVU5JWCkKIGV4dGVybiBpbnQgaF9lcnJubzsKICNlbmRpZgogCkBAIC00NjEsMjAg
KzQ2MSwxNiBAQAogCiAvKiBQaWNrIHVwIHNvbWUgdXNlciBpZGVudGlmaWNhdGlvbiBpbmZvcm1h
dGlvbiAqLwogCUZpcmViaXJkOjpDbHVtcGxldFdyaXRlciB1c2VyX2lkKEZpcmViaXJkOjpDbHVt
cGxldFJlYWRlcjo6VW5UYWdnZWQsIE1BWF9EUEJfU0laRSk7Ci0JY2hhciBidWZmZXJbQlVGRkVS
X1NNQUxMXTsKLQorCUZpcmViaXJkOjpzdHJpbmcgYnVmZmVyOwogCWludCBlZmZfZ2lkOwogCWlu
dCBlZmZfdWlkOwotCUlTQ19nZXRfdXNlcihidWZmZXIsICZlZmZfdWlkLCAmZWZmX2dpZCwgMCwg
MCwgMCwgdXNlcl9zdHJpbmcpOwotCXVzZXJfaWQuaW5zZXJ0U3RyaW5nKENOQ1RfdXNlciwgYnVm
ZmVyLCBzdHJsZW4oYnVmZmVyKSk7CiAKLQlJU0NfZ2V0X2hvc3QoYnVmZmVyLCBzaXplb2YoYnVm
ZmVyKSk7Ci0JZm9yIChjaGFyKiBwID0gYnVmZmVyOyAqcDsgcCsrKSB7Ci0JCWlmICgqcCA+PSAn
QScgJiYgKnAgPD0gJ1onKSB7Ci0JCQkqcCA9ICpwIC0gJ0EnICsgJ2EnOwotCQl9Ci0JfQotCXVz
ZXJfaWQuaW5zZXJ0U3RyaW5nKENOQ1RfaG9zdCwgYnVmZmVyLCBzdHJsZW4oYnVmZmVyKSk7CisJ
SVNDX2dldF91c2VyKCZidWZmZXIsICZlZmZfdWlkLCAmZWZmX2dpZCwgdXNlcl9zdHJpbmcpOwor
CXVzZXJfaWQuaW5zZXJ0U3RyaW5nKENOQ1RfdXNlciwgYnVmZmVyKTsKKworCUlTQ19nZXRfaG9z
dChidWZmZXIpOworCWJ1ZmZlci5sb3dlcigpOworCXVzZXJfaWQuaW5zZXJ0U3RyaW5nKENOQ1Rf
aG9zdCwgYnVmZmVyKTsKIAogCWlmICgoZWZmX3VpZCA9PSAtMSkgfHwgdXZfZmxhZykgewogCQl1
c2VyX2lkLmluc2VydFRhZyhDTkNUX3VzZXJfdmVyaWZpY2F0aW9uKTsKZGlmZiAtTmF1ciBGaXJl
YmlyZC0yLjAuMy4xMjk4MS0wX29yaWcvc3JjL3JlbW90ZS9pbmV0X3NlcnZlci5jcHAgRmlyZWJp
cmQtMi4wLjMuMTI5ODEtMC9zcmMvcmVtb3RlL2luZXRfc2VydmVyLmNwcAotLS0gRmlyZWJpcmQt
Mi4wLjMuMTI5ODEtMF9vcmlnL3NyYy9yZW1vdGUvaW5ldF9zZXJ2ZXIuY3BwCTIwMDctMTEtMDUg
MjE6MDc6NTAuMDAwMDAwMDAwIC0wNTAwCisrKyBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wL3NyYy9y
ZW1vdGUvaW5ldF9zZXJ2ZXIuY3BwCTIwMDgtMDItMTcgMTk6MzA6NDEuMDAwMDAwMDAwIC0wNTAw
CkBAIC05Niw2ICs5Niw3IEBACiAjaW5jbHVkZSAiLi4vanJkL3NjaF9wcm90by5oIgogI2luY2x1
ZGUgIi4uL2pyZC90aHJlYWRfcHJvdG8uaCIKICNpbmNsdWRlICIuLi9jb21tb24vdXRpbHNfcHJv
dG8uaCIKKyNpbmNsdWRlICIuLi9jb21tb24vY2xhc3Nlcy9mYl9zdHJpbmcuaCIKIAogI2lmZGVm
IFVOSVgKICNpZmRlZiBORVRCU0QKQEAgLTEwNSwxNiArMTA2LDIxIEBACiAjZW5kaWYKICNlbmRp
ZgogCisjaWZkZWYgSEFWRV9TWVNfUkVTT1VSQ0VfSAorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5o
PgorI2VuZGlmCisKICNpZiAoZGVmaW5lZCBTVVBFUlNFUlZFUiAmJiBkZWZpbmVkIFVOSVggJiYg
ZGVmaW5lZCBTRVJWRVJfU0hVVERPV04pCiAjaW5jbHVkZSAiLi4vY29tbW9uL2NsYXNzZXMvc2Vt
YXBob3JlLmgiCiAjZGVmaW5lIFNIVVRET1dOX1RIUkVBRAogI2VuZGlmCiAKLSNpZmRlZiBTVVBF
UlNFUlZFUgotI2lmbmRlZiBXSU5fTlQKKyNpZmRlZiBVTklYCiBjb25zdCBjaGFyKiBURU1QX0RJ
UiA9ICIvdG1wIjsKICNkZWZpbmUgQ0hBTkdFX0RJUiBjaGRpcgogI2VuZGlmCisKKyNpZmRlZiBT
VVBFUlNFUlZFUgogY29uc3QgY2hhciogSU5URVJCQVNFX1VTRVJfTkFNRQkJPSAiaW50ZXJiYXNl
IjsKIGNvbnN0IGNoYXIqIElOVEVSQkFTRV9VU0VSX1NIT1JUCT0gImludGVyYmFzIjsKIGNvbnN0
IGNoYXIqIEZJUkVCSVJEX1VTRVJfTkFNRQkJPSAiZmlyZWJpcmQiOwpAQCAtMjgwLDkgKzI4Niwx
MiBAQAogCXNldF9zaWduYWwoU0lHVVNSMiwgc2lnbmFsX2hhbmRsZXIpOwogI2VuZGlmCiAKLSNp
ZiBkZWZpbmVkKFVOSVgpICYmIGRlZmluZWQoREVWX0JVSUxEKQorI2lmIGRlZmluZWQoVU5JWCkg
JiYgZGVmaW5lZChIQVZFX1NFVFJMSU1JVCkgJiYgZGVmaW5lZChIQVZFX0dFVFJMSU1JVCkKKyNp
ZiAhKGRlZmluZWQoREVWX0JVSUxEKSkKKwlpZiAoQ29uZmlnOjpnZXRCdWdjaGVja0Fib3J0KCkp
CisjZW5kaWYKIAl7Ci0JCS8vIHRyeSB0byBmb3JjZSBjb3JlIGZpbGVzIGNyZWF0aW9uIGZvciBE
RVZfQlVJTEQKKwkJLy8gdHJ5IHRvIGZvcmNlIGNvcmUgZmlsZXMgY3JlYXRpb24KIAkJc3RydWN0
IHJsaW1pdCBjb3JlOwogCQlpZiAoZ2V0cmxpbWl0KFJMSU1JVF9DT1JFLCAmY29yZSkgPT0gMCkK
IAkJewpAQCAtMjk2LDYgKzMwNSwxNCBAQAogCQl7CiAJCQlnZHNfX2xvZygiZ2V0cmxpbWl0KCkg
ZmFpbGVkLCBlcnJubz0lZCIsIGVycm5vKTsKIAkJfQorCisJCS8vIHdlIG5lZWQgc29tZSB3cml0
YWJsZSBkaXJlY3RvcnkgZm9yIGNvcmUgZmlsZQorCQkvLyBvbiBhbnkgdW5peCAvdG1wIHNlZW1z
IHRvIGJlIHRoZSBiZXN0IHBsYWNlCisJCWlmIChDSEFOR0VfRElSKFRFTVBfRElSKSkgeworCQkJ
LyogZXJyb3Igb24gY2hhbmdpbmcgdGhlIGRpcmVjdG9yeSAqLworCQkJZ2RzX19sb2coIkNvdWxk
IG5vdCBjaGFuZ2UgZGlyZWN0b3J5IHRvICVzIGR1ZSB0byBlcnJubyAlZCIsCisJCQkJCVRFTVBf
RElSLCBlcnJubyk7CisJCX0KIAl9CiAjZW5kaWYKIApAQCAtMzI4LDE0ICszNDUsMTQgQEAKICAg
ICAgICAgICAgIC8vIFJlbW92ZSByZXN0cmljdGlvbiBvbiB1c2VybmFtZSwgZm9yIERFViBidWls
ZHMKICAgICAgICAgICAgIC8vIHJlc3RyaWN0IG9ubHkgZm9yIHByb2R1Y3Rpb24gYnVpbGRzLiAg
TU9EIDIxLUp1bHktMjAwMgogI2lmbmRlZiBERVZfQlVJTEQKLQkJCVRFWFQgdXNlcl9uYW1lWzI1
Nl07CS8qIGhvbGRzIHRoZSB1c2VyIG5hbWUgKi8KKwkJCUZpcmViaXJkOjpzdHJpbmcgdXNlcl9u
YW1lOwkvKiBob2xkcyB0aGUgdXNlciBuYW1lICovCiAJCQkvKiBjaGVjayB1c2VyIGlkICovCi0J
CQlJU0NfZ2V0X3VzZXIodXNlcl9uYW1lLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBO
VUxMKTsKKwkJCUlTQ19nZXRfdXNlcigmdXNlcl9uYW1lLCBOVUxMLCBOVUxMLCBOVUxMKTsKIAot
CQkJaWYgKHN0cmNtcCh1c2VyX25hbWUsICJyb290IikgJiYKLQkJCQlzdHJjbXAodXNlcl9uYW1l
LCBGSVJFQklSRF9VU0VSX05BTUUpICYmCi0JCQkJc3RyY21wKHVzZXJfbmFtZSwgSU5URVJCQVNF
X1VTRVJfTkFNRSkgJiYKLQkJCQlzdHJjbXAodXNlcl9uYW1lLCBJTlRFUkJBU0VfVVNFUl9TSE9S
VCkpCisJCQlpZiAodXNlcl9uYW1lICE9ICJyb290IiAmJgorCQkJCXVzZXJfbmFtZSAhPSBGSVJF
QklSRF9VU0VSX05BTUUgJiYKKwkJCQl1c2VyX25hbWUgIT0gSU5URVJCQVNFX1VTRVJfTkFNRSAm
JgorCQkJCXVzZXJfbmFtZSAhPSBJTlRFUkJBU0VfVVNFUl9TSE9SVCkKIAkJCXsKIAkJCQkvKiBp
bnZhbGlkIHVzZXIgLS0gYmFpbCBvdXQgKi8KIAkJCQlmcHJpbnRmKHN0ZGVyciwKQEAgLTU0Niw3
ICs1NjMsNyBAQAogI2VuZGlmCiAKICNpZmRlZiBTSFVURE9XTl9USFJFQUQKLXN0YXRpYyBGaXJl
YmlyZDo6U2VtYXBob3JlIHNodXRTZW07CitzdGF0aWMgRmlyZWJpcmQ6OlNpZ25hbFNhZmVTZW1h
cGhvcmUgc2h1dFNlbTsKIHN0YXRpYyBib29sIGFscmVhZHlDbG9zaW5nID0gZmFsc2U7CiAKIHN0
YXRpYyBUSFJFQURfRU5UUllfREVDTEFSRSBzaHV0ZG93bl90aHJlYWQoVEhSRUFEX0VOVFJZX1BB
UkFNIGFyZykgCmRpZmYgLU5hdXIgRmlyZWJpcmQtMi4wLjMuMTI5ODEtMF9vcmlnL3NyYy9yZW1v
dGUvb3Mvd2luMzIvd25ldC5jcHAgRmlyZWJpcmQtMi4wLjMuMTI5ODEtMC9zcmMvcmVtb3RlL29z
L3dpbjMyL3duZXQuY3BwCi0tLSBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wX29yaWcvc3JjL3JlbW90
ZS9vcy93aW4zMi93bmV0LmNwcAkyMDA3LTExLTA1IDIxOjA3OjUwLjAwMDAwMDAwMCAtMDUwMAor
KysgRmlyZWJpcmQtMi4wLjMuMTI5ODEtMC9zcmMvcmVtb3RlL29zL3dpbjMyL3duZXQuY3BwCTIw
MDgtMDItMTcgMTk6MzM6NDEuMDAwMDAwMDAwIC0wNTAwCkBAIC0xMzUsMjUgKzEzNSwxNyBAQAog
CVBBQ0tFVCogcGFja2V0ID0gJnJkYi0+cmRiX3BhY2tldDsKIAogLyogUGljayB1cCBzb21lIHVz
ZXIgaWRlbnRpZmljYXRpb24gaW5mb3JtYXRpb24gKi8KLQlURVhUIGJ1ZmZlclsxMjhdOworCUZp
cmViaXJkOjpzdHJpbmcgYnVmZmVyOwogCVRFWFQgKnA7CiAJRmlyZWJpcmQ6OkNsdW1wbGV0V3Jp
dGVyIHVzZXJfaWQoRmlyZWJpcmQ6OkNsdW1wbGV0UmVhZGVyOjpVblRhZ2dlZCwgTUFYX0RQQl9T
SVpFKTsKIAotCUlTQ19nZXRfdXNlcihidWZmZXIsIDAsIDAsIDAsIDAsIDAsIDApOwotCWZvciAo
cCA9IGJ1ZmZlcjsgKnA7IHArKykgewotCQlpZiAoKnAgPj0gJ0EnICYmICpwIDw9ICdaJykgewot
CQkJKnAgPSAqcCAtICdBJyArICdhJzsKLQkJfQotCX0KLQl1c2VyX2lkLmluc2VydFN0cmluZyhD
TkNUX3VzZXIsIGJ1ZmZlciwgc3RybGVuKGJ1ZmZlcikpOwotCi0JSVNDX2dldF9ob3N0KGJ1ZmZl
ciwgc2l6ZW9mKGJ1ZmZlcikpOwotCWZvciAocCA9IGJ1ZmZlcjsgKnA7IHArKykgewotCQlpZiAo
KnAgPj0gJ0EnICYmICpwIDw9ICdaJykgewotCQkJKnAgPSAqcCAtICdBJyArICdhJzsKLQkJfQot
CX0KLQl1c2VyX2lkLmluc2VydFN0cmluZyhDTkNUX2hvc3QsIGJ1ZmZlciwgc3RybGVuKGJ1ZmZl
cikpOworCUlTQ19nZXRfdXNlcigmYnVmZmVyLCAwLCAwLCAwKTsKKwlidWZmZXIubG93ZXIoKTsK
Kwl1c2VyX2lkLmluc2VydFN0cmluZyhDTkNUX3VzZXIsIGJ1ZmZlcik7CisKKwlJU0NfZ2V0X2hv
c3QoYnVmZmVyKTsKKwlidWZmZXIubG93ZXIoKTsKKwl1c2VyX2lkLmluc2VydFN0cmluZyhDTkNU
X2hvc3QsIGJ1ZmZlcik7CiAKIAlpZiAodXZfZmxhZykgewogCQl1c2VyX2lkLmluc2VydFRhZyhD
TkNUX3VzZXJfdmVyaWZpY2F0aW9uKTsKZGlmZiAtTmF1ciBGaXJlYmlyZC0yLjAuMy4xMjk4MS0w
X29yaWcvc3JjL3JlbW90ZS94bmV0LmNwcCBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wL3NyYy9yZW1v
dGUveG5ldC5jcHAKLS0tIEZpcmViaXJkLTIuMC4zLjEyOTgxLTBfb3JpZy9zcmMvcmVtb3RlL3hu
ZXQuY3BwCTIwMDctMTEtMDUgMjE6MDc6NTAuMDAwMDAwMDAwIC0wNTAwCisrKyBGaXJlYmlyZC0y
LjAuMy4xMjk4MS0wL3NyYy9yZW1vdGUveG5ldC5jcHAJMjAwOC0wMi0xNyAxOTozNDoyOC4wMDAw
MDAwMDAgLTA1MDAKQEAgLTIxNCwyNSArMjE0LDE2IEBACiAKIAkvLyBQaWNrIHVwIHNvbWUgdXNl
ciBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbgogCi0JVEVYVCBidWZmZXJbQlVGRkVSX1RJTlld
OwotCVRFWFQgKnA7CisJRmlyZWJpcmQ6OnN0cmluZyBidWZmZXI7CiAJRmlyZWJpcmQ6OkNsdW1w
bGV0V3JpdGVyIHVzZXJfaWQoRmlyZWJpcmQ6OkNsdW1wbGV0UmVhZGVyOjpVblRhZ2dlZCwgTUFY
X0RQQl9TSVpFKTsKIAotCUlTQ19nZXRfdXNlcihidWZmZXIsIDAsIDAsIDAsIDAsIDAsIDApOwot
CWZvciAocCA9IGJ1ZmZlcjsgKnA7IHArKykgewotCQlpZiAoKnAgPj0gJ0EnICYmICpwIDw9ICda
JykgewotCQkJKnAgPSAqcCAtICdBJyArICdhJzsKLQkJfQotCX0KLQl1c2VyX2lkLmluc2VydFN0
cmluZyhDTkNUX3VzZXIsIGJ1ZmZlciwgc3RybGVuKGJ1ZmZlcikpOwotCi0JSVNDX2dldF9ob3N0
KGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikpOwotCWZvciAocCA9IGJ1ZmZlcjsgKnA7IHArKykgewot
CQlpZiAoKnAgPj0gJ0EnICYmICpwIDw9ICdaJykgewotCQkJKnAgPSAqcCAtICdBJyArICdhJzsK
LQkJfQotCX0KLQl1c2VyX2lkLmluc2VydFN0cmluZyhDTkNUX2hvc3QsIGJ1ZmZlciwgc3RybGVu
KGJ1ZmZlcikpOworCUlTQ19nZXRfdXNlcigmYnVmZmVyLCAwLCAwLCAwKTsKKwlidWZmZXIubG93
ZXIoKTsKKwl1c2VyX2lkLmluc2VydFN0cmluZyhDTkNUX3VzZXIsIGJ1ZmZlcik7CisKKwlJU0Nf
Z2V0X2hvc3QoYnVmZmVyKTsKKwlidWZmZXIubG93ZXIoKTsKKwl1c2VyX2lkLmluc2VydFN0cmlu
ZyhDTkNUX2hvc3QsIGJ1ZmZlcik7CiAKIAlpZiAodXZfZmxhZykgewogCQl1c2VyX2lkLmluc2Vy
dFRhZyhDTkNUX3VzZXJfdmVyaWZpY2F0aW9uKTsKQEAgLTc2MCwxMSArNzUxLDExIEBACiAKIAkJ
Ly8gc2VuZCBldmVudHMgY2hhbm5lbAogCQl4cHMtPnhwc19jaGFubmVsc1tYUFNfQ0hBTk5FTF9D
MlNfRVZFTlRTXS54Y2hfY2xpZW50X3B0ciA9Ci0JCQkoKFVDSEFSICopIHhwbS0+eHBtX2FkZHJl
c3MgKyBzaXplb2Yoc3RydWN0IHhwcykpOworCQkJKChVQ0hBUiAqKSB4Y2MtPnhjY19tYXBwZWRf
YWRkciArIHNpemVvZihzdHJ1Y3QgeHBzKSk7CiAKIAkJLy8gcmVjZWl2ZSBldmVudHMgY2hhbm5l
bAogCQl4cHMtPnhwc19jaGFubmVsc1tYUFNfQ0hBTk5FTF9TMkNfRVZFTlRTXS54Y2hfY2xpZW50
X3B0ciA9Ci0JCQkoKFVDSEFSICopIHhwbS0+eHBtX2FkZHJlc3MgKyBzaXplb2Yoc3RydWN0IHhw
cykgKyAoWE5FVF9FVkVOVF9TUEFDRSkpOworCQkJKChVQ0hBUiAqKSB4Y2MtPnhjY19tYXBwZWRf
YWRkciArIHNpemVvZihzdHJ1Y3QgeHBzKSArIChYTkVUX0VWRU5UX1NQQUNFKSk7CiAKIAkJeGNj
LT54Y2Nfc2VuZF9jaGFubmVsID0gJnhwcy0+eHBzX2NoYW5uZWxzW1hQU19DSEFOTkVMX0MyU19F
VkVOVFNdOwkJCiAJCXhjYy0+eGNjX3JlY3ZfY2hhbm5lbCA9ICZ4cHMtPnhwc19jaGFubmVsc1tY
UFNfQ0hBTk5FTF9TMkNfRVZFTlRTXTsKQEAgLTg5NCwxMSArODg1LDExIEBACiAKIAkJLy8gc2Vu
ZCBldmVudHMgY2hhbm5lbAogCQl4cHMtPnhwc19jaGFubmVsc1tYUFNfQ0hBTk5FTF9TMkNfRVZF
TlRTXS54Y2hfY2xpZW50X3B0ciA9Ci0JCQkoKFVDSEFSICopIHhwbS0+eHBtX2FkZHJlc3MgKyBz
aXplb2Yoc3RydWN0IHhwcykgKyAoWE5FVF9FVkVOVF9TUEFDRSkpOworCQkJKChVQ0hBUiAqKSB4
Y2MtPnhjY19tYXBwZWRfYWRkciArIHNpemVvZihzdHJ1Y3QgeHBzKSArIChYTkVUX0VWRU5UX1NQ
QUNFKSk7CiAKIAkJLy8gcmVjZWl2ZSBldmVudHMgY2hhbm5lbAogCQl4cHMtPnhwc19jaGFubmVs
c1tYUFNfQ0hBTk5FTF9DMlNfRVZFTlRTXS54Y2hfY2xpZW50X3B0ciA9Ci0JCQkoKFVDSEFSICop
IHhwbS0+eHBtX2FkZHJlc3MgKyBzaXplb2Yoc3RydWN0IHhwcykpOworCQkJKChVQ0hBUiAqKSB4
Y2MtPnhjY19tYXBwZWRfYWRkciArIHNpemVvZihzdHJ1Y3QgeHBzKSk7CiAKIAkJeGNjLT54Y2Nf
c2VuZF9jaGFubmVsID0gJnhwcy0+eHBzX2NoYW5uZWxzW1hQU19DSEFOTkVMX1MyQ19FVkVOVFNd
OwkJCiAJCXhjYy0+eGNjX3JlY3ZfY2hhbm5lbCA9ICZ4cHMtPnhwc19jaGFubmVsc1tYUFNfQ0hB
Tk5FTF9DMlNfRVZFTlRTXTsKZGlmZiAtTmF1ciBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wX29yaWcv
c3JjL3V0aWxpdGllcy9ndWFyZC9ndWFyZC5jcHAgRmlyZWJpcmQtMi4wLjMuMTI5ODEtMC9zcmMv
dXRpbGl0aWVzL2d1YXJkL2d1YXJkLmNwcAotLS0gRmlyZWJpcmQtMi4wLjMuMTI5ODEtMF9vcmln
L3NyYy91dGlsaXRpZXMvZ3VhcmQvZ3VhcmQuY3BwCTIwMDctMTEtMDUgMjE6MDc6NTAuMDAwMDAw
MDAwIC0wNTAwCisrKyBGaXJlYmlyZC0yLjAuMy4xMjk4MS0wL3NyYy91dGlsaXRpZXMvZ3VhcmQv
Z3VhcmQuY3BwCTIwMDgtMDItMTcgMTk6MzI6NTEuMDAwMDAwMDAwIC0wNTAwCkBAIC0xNSw3ICsx
NSw3IEBACiAgKgogICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqIENvbnRyaWJ1dG9yKHMpOiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy4KLSAqICRJZDogZ3VhcmQuY3Bw
LHYgMS44LjEyLjMgMjAwNi8wNC8xOCAwODo1NjozNCBhbGV4cGVzaGtvZmYgRXhwICQKKyAqICRJ
ZDogZ3VhcmQuY3BwLHYgMS44LjEyLjQgMjAwNy8xMS8yMiAxMjozMDo0MyBhbGV4cGVzaGtvZmYg
RXhwICQKICAqLwogIC8qIGNvbnRhaW5zIHRoZSBtYWluKCkgYW5kIG5vdCBzaGFyZWQgcm91dGlu
ZXMgZm9yIGliZ3VhcmQgKi8KIApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIi4uL2pyZC9n
ZHNfcHJvdG8uaCIKICNpbmNsdWRlICIuLi9qcmQvZmlsZV9wYXJhbXMuaCIKICNpbmNsdWRlICIu
Li91dGlsaXRpZXMvZ3VhcmQvdXRpbF9wcm90by5oIgorI2luY2x1ZGUgIi4uL2NvbW1vbi9jbGFz
c2VzL2ZiX3N0cmluZy5oIgogCiBjb25zdCBVU0hPUlQgRk9SRVZFUgk9IDE7CiBjb25zdCBVU0hP
UlQgT05FVElNRQk9IDI7CkBAIC0xMDcsMTIgKzEwOCwxMyBAQAogCX0JCQkJCQkJLyogd2hpbGUg
Ki8KIAogLyogY2hlY2sgdXNlciBpZCAqLwotCVRFWFQgdXNlcl9uYW1lWzI1Nl07CQkvKiBob2xk
cyB0aGUgdXNlciBuYW1lICovCi0JSVNDX2dldF91c2VyKHVzZXJfbmFtZSwgTlVMTCwgTlVMTCwg
TlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CisJRmlyZWJpcmQ6OnN0cmluZyB1c2VyX25hbWU7CQkv
KiBob2xkcyB0aGUgdXNlciBuYW1lICovCisJSVNDX2dldF91c2VyKCZ1c2VyX25hbWUsIE5VTEws
IE5VTEwsIE5VTEwpOwogCi0JaWYgKHN0cmNtcCh1c2VyX25hbWUsIElOVEVSQkFTRV9VU0VSKSAm
JiBzdHJjbXAodXNlcl9uYW1lLCAicm9vdCIpCi0JCSYmIHN0cmNtcCh1c2VyX25hbWUsIEZJUkVC
SVJEX1VTRVIpCi0JCSYmIHN0cmNtcCh1c2VyX25hbWUsIElOVEVSQkFTRV9VU0VSX1NIT1JUKSkK
KwlpZiAodXNlcl9uYW1lICE9IElOVEVSQkFTRV9VU0VSICYmIAorCQl1c2VyX25hbWUgIT0gInJv
b3QiICYmCisJCXVzZXJfbmFtZSAhPSBGSVJFQklSRF9VU0VSICYmCisJCXVzZXJfbmFtZSAhPSBJ
TlRFUkJBU0VfVVNFUl9TSE9SVCkKIAl7CiAJCS8qIGludmFsaWQgdXNlciBiYWlsIG91dCAqLwog
CQlmcHJpbnRmKHN0ZGVyciwK
</data>        

          </attachment>
    </bug>

</bugzilla>