<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>47547</bug_id>
          
          <creation_ts>2010-10-12 11:32:44 -0700</creation_ts>
          <short_desc>REGRESSION(r69589): Wrong patch landed from a bug with two patches (Requested by mrobinson on #webkit).</short_desc>
          <delta_ts>2010-10-12 14:44:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>44261</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>293006</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-12 11:32:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/69589 broke the build:
Wrong patch landed from a bug with two patches (Requested by mrobinson on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293008</commentid>
    <comment_count>1</comment_count>
      <attachid>70546</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-12 11:33:05 -0700</bug_when>
    <thetext>Created attachment 70546
ROLLOUT of r69589

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293123</commentid>
    <comment_count>2</comment_count>
      <attachid>70546</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-12 14:44:50 -0700</bug_when>
    <thetext>Comment on attachment 70546
ROLLOUT of r69589

Clearing flags on attachment: 70546

Committed r69606: &lt;http://trac.webkit.org/changeset/69606&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293124</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-12 14:44:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70546</attachid>
            <date>2010-10-12 11:33:05 -0700</date>
            <delta_ts>2010-10-12 14:44:50 -0700</delta_ts>
            <desc>ROLLOUT of r69589</desc>
            <filename>bug-47547-20101012183304.patch</filename>
            <type>text/plain</type>
            <size>40700</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWQxNGM3YWEyMmFlMzBjNzE5Mjk2MjU1OTZkN2VlZGM5NWMzYmViNy4uMjQ3MWQ2YWUyZWYzZGY4
NTIxZDZhYjVlODQ0NGYwZjY3MzRiNjFlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0xMC0xMiAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjY5NTg5LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC82OTU4OQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDc1NDcKKworICAgICAgICBXcm9uZyBwYXRjaCBsYW5kZWQgZnJvbSBhIGJ1ZyB3
aXRoIHR3byBwYXRjaGVzIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgbXJvYmluc29uIG9uICN3ZWJr
aXQpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFs
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhh
bmRsZUludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6
On5SZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjp+UmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6Z290Q2h1bmtDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpmaW5pc2hlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRGF0YVVybCk6
CisgICAgICAgIChXZWJDb3JlOjpzdGFydEh0dHApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHA6CisKIDIwMTAtMTAtMTIgIFNhbSBXZWluaWcgIDxz
YW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApp
bmRleCA5Y2NjZWNkNDU5MDcwODUxMjFkZWZhYWRjOTYxYTkzNWMxMDVhOGJkLi45NmZiZjAwYmYw
Nzc4YTFmOGI1NWQxZWMwZGZhYTVhOTc3NDhkODA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTQ2LDggKzQ2LDYgQEAKICNl
bmRpZgogCiAjaWYgVVNFKFNPVVApCi0jaW5jbHVkZSAic291cC1yZXF1ZXN0ZXIuaCIKLSNpbmNs
dWRlIDxHUmVmUHRyLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiBjbGFzcyBGcmFtZTsK
ICNlbmRpZgpAQCAtMTEwLDExICsxMDgsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAgICAgLCBtX2Zvcm1EYXRhU3RyZWFtKGxvYWRlcikKICNlbmRpZgogI2lmIFVTRShTT1VQKQor
ICAgICAgICAgICAgLCBtX21zZygwKQogICAgICAgICAgICAgLCBtX2NhbmNlbGxlZChmYWxzZSkK
KyAgICAgICAgICAgICwgbV9nZmlsZSgwKQorICAgICAgICAgICAgLCBtX2lucHV0U3RyZWFtKDAp
CisgICAgICAgICAgICAsIG1fY2FuY2VsbGFibGUoMCkKICAgICAgICAgICAgICwgbV9idWZmZXIo
MCkKKyAgICAgICAgICAgICwgbV9idWZmZXJTaXplKDApCiAgICAgICAgICAgICAsIG1fdG90YWwo
MCkKICAgICAgICAgICAgICwgbV9pZGxlSGFuZGxlcigwKQotICAgICAgICAgICAgLCBtX2dvdENo
dW5rSGFuZGxlcigwKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1f
am9iKDApCkBAIC0xMzEsOSArMTMzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAg
ICAgbV91c2VyID0gdXJsLnVzZXIoKTsKICAgICAgICAgICAgIG1fcGFzcyA9IHVybC5wYXNzKCk7
CiAgICAgICAgICAgICBtX2ZpcnN0UmVxdWVzdC5yZW1vdmVDcmVkZW50aWFscygpOwotI2lmIFVT
RShTT1VQKQotICAgICAgICAgICAgbV9yZXF1ZXN0ZXIgPSBhZG9wdFBsYXRmb3JtUmVmKHdlYmtp
dF9zb3VwX3JlcXVlc3Rlcl9uZXcoKSk7Ci0jZW5kaWYKICAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgflJlc291cmNlSGFuZGxlSW50ZXJuYWwoKTsKQEAgLTE4NiwxOCArMTg1LDE2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVmVjdG9yPGNoYXI+IG1fcG9zdEJ5dGVzOwogI2Vu
ZGlmCiAjaWYgVVNFKFNPVVApCi0gICAgICAgIFBsYXRmb3JtUmVmUHRyPFNvdXBNZXNzYWdlPiBt
X3NvdXBNZXNzYWdlOworICAgICAgICBTb3VwTWVzc2FnZSogbV9tc2c7CiAgICAgICAgIFJlc291
cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKICAgICAgICAgYm9vbCBtX2NhbmNlbGxlZDsKLSAgICAg
ICAgUGxhdGZvcm1SZWZQdHI8V2ViS2l0U291cFJlcXVlc3Q+IG1fc291cFJlcXVlc3Q7Ci0gICAg
ICAgIFBsYXRmb3JtUmVmUHRyPFdlYktpdFNvdXBSZXF1ZXN0ZXI+IG1fcmVxdWVzdGVyOwotICAg
ICAgICBQbGF0Zm9ybVJlZlB0cjxHSW5wdXRTdHJlYW0+IG1faW5wdXRTdHJlYW07Ci0gICAgICAg
IFBsYXRmb3JtUmVmUHRyPEdDYW5jZWxsYWJsZT4gbV9jYW5jZWxsYWJsZTsKKyAgICAgICAgR0Zp
bGUqIG1fZ2ZpbGU7CisgICAgICAgIEdJbnB1dFN0cmVhbSogbV9pbnB1dFN0cmVhbTsKKyAgICAg
ICAgR0NhbmNlbGxhYmxlKiBtX2NhbmNlbGxhYmxlOwogICAgICAgICBjaGFyKiBtX2J1ZmZlcjsK
LSAgICAgICAgZ3NpemUgbV90b3RhbDsKKyAgICAgICAgZ3NpemUgbV9idWZmZXJTaXplLCBtX3Rv
dGFsOwogICAgICAgICBndWludCBtX2lkbGVIYW5kbGVyOwogICAgICAgICBSZWZQdHI8TmV0d29y
a2luZ0NvbnRleHQ+IG1fY29udGV4dDsKLSAgICAgICAgZ3Vsb25nIG1fZ290Q2h1bmtIYW5kbGVy
OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVy
KiBtX2pvYjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCmluZGV4IGY3NjhkOGZlMmM2Zjc3NzEyN2MxMDYzM2NhOGI0Y2MyMmU2
NTkwYjMuLjBkODQzODhlMGEyZWViNWU3ZTI0ZDRiN2E0ZTE0N2U1MWEyODE3MmYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cApAQCAtNDUsOCArNDUsOCBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgi
Ci0jaW5jbHVkZSAic291cC1yZXF1ZXN0LWh0dHAuaCIKICNpbmNsdWRlICJUZXh0RW5jb2Rpbmcu
aCIKKwogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxn
aW8vZ2lvLmg+CkBAIC01OCw4ICs1OCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2Rl
ZmluZSBSRUFEX0JVRkZFUl9TSVpFIDgxOTIKLQogY2xhc3MgV2ViQ29yZVN5bmNocm9ub3VzTG9h
ZGVyIDogcHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50LCBwdWJsaWMgTm9uY29weWFibGUgewog
cHVibGljOgogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcihSZXNvdXJjZUVycm9yJiwgUmVz
b3VyY2VSZXNwb25zZSAmLCBWZWN0b3I8Y2hhcj4mKTsKQEAgLTEyMiwxNiArMTIwLDE2IEBAIHZv
aWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpydW4oKQogICAgICAgICBnX21haW5fbG9vcF9y
dW4obV9tYWluTG9vcCk7CiB9CiAKLXN0YXRpYyB2b2lkIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJh
dGlvbihSZXNvdXJjZUhhbmRsZSosIGJvb2wgaXNEZXN0cm95aW5nKTsKLXN0YXRpYyB2b2lkIHNl
bmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCosIEdBc3luY1Jlc3VsdCosIGdwb2ludGVyKTsKLXN0
YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVzdWx0KiwgZ3BvaW50ZXIp
Owotc3RhdGljIHZvaWQgY2xvc2VDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVzdWx0KiwgZ3Bv
aW50ZXIpOwotc3RhdGljIGJvb2wgc3RhcnRHaW8oUmVzb3VyY2VIYW5kbGUqLCBLVVJMKTsKK3N0
YXRpYyB2b2lkIGNsZWFudXBHaW9PcGVyYXRpb24oUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgYm9v
bCBpc0Rlc3Ryb3lpbmcpOworc3RhdGljIGJvb2wgc3RhcnREYXRhKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIFN0cmluZyB1cmxTdHJpbmcpOworc3RhdGljIGJvb2wgc3RhcnRHaW8oUmVzb3VyY2VI
YW5kbGUqIGhhbmRsZSwgS1VSTCB1cmwpOwogCiBSZXNvdXJjZUhhbmRsZUludGVybmFsOjp+UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCgpCiB7Ci0gICAgaWYgKG1fc291cFJlcXVlc3QpCi0gICAgICAg
IGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKG1fc291cFJlcXVlc3QuZ2V0KCkpLCAid2Via2l0
LXJlc291cmNlIiwgMCk7CisgICAgaWYgKG1fbXNnKSB7CisgICAgICAgIGdfb2JqZWN0X3VucmVm
KG1fbXNnKTsKKyAgICAgICAgbV9tc2cgPSAwOworICAgIH0KIAogICAgIGlmIChtX2lkbGVIYW5k
bGVyKSB7CiAgICAgICAgIGdfc291cmNlX3JlbW92ZShtX2lkbGVIYW5kbGVyKTsKQEAgLTE0MSw3
ICsxMzksMTEgQEAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJu
YWwoKQogCiBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKLSAgICBjbGVhbnVw
U291cFJlcXVlc3RPcGVyYXRpb24odGhpcywgdHJ1ZSk7CisgICAgaWYgKGQtPm1fbXNnKQorICAg
ICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQoZC0+bV9tc2csIEdfU0lH
TkFMX01BVENIX0RBVEEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLCAwLCAwLCAwLCB0aGlzKTsKKworICAgIGNsZWFudXBHaW9PcGVyYXRpb24odGhpcywg
dHJ1ZSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnByZXBhcmVGb3JVUkwoY29uc3QgS1VS
TCAmdXJsKQpAQCAtMTgzLDggKzE4NSw5IEBAIHN0YXRpYyB2b2lkIHJlc3RhcnRlZENhbGxiYWNr
KFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhdGEpCiAgICAgaWYgKGQtPm1fY2FuY2VsbGVk
KQogICAgICAgICByZXR1cm47CiAKLSAgICBHT3duUHRyPGNoYXI+IHVyaShzb3VwX3VyaV90b19z
dHJpbmcoc291cF9tZXNzYWdlX2dldF91cmkobXNnKSwgZmFsc2UpKTsKLSAgICBTdHJpbmcgbG9j
YXRpb24gPSBTdHJpbmc6OmZyb21VVEY4KHVyaS5nZXQoKSk7CisgICAgY2hhciogdXJpID0gc291
cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIGZhbHNlKTsKKyAgICBT
dHJpbmcgbG9jYXRpb24gPSBTdHJpbmcodXJpKTsKKyAgICBnX2ZyZWUodXJpKTsKICAgICBLVVJM
IG5ld1VSTCA9IEtVUkwoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSwgbG9jYXRpb24pOwog
CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpOwpA
QCAtMjEwLDcgKzIxMyw3IEBAIHN0YXRpYyB2b2lkIHJlc3RhcnRlZENhbGxiYWNrKFNvdXBNZXNz
YWdlKiBtc2csIGdwb2ludGVyIGRhdGEpCiAgICAgU3RyaW5nIGZpcnN0UGFydHlTdHJpbmcgPSBy
ZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkuc3RyaW5nKCk7CiAgICAgaWYgKCFmaXJzdFBh
cnR5U3RyaW5nLmlzRW1wdHkoKSkgewogICAgICAgICBHT3duUHRyPFNvdXBVUkk+IGZpcnN0UGFy
dHkoc291cF91cmlfbmV3KGZpcnN0UGFydHlTdHJpbmcudXRmOCgpLmRhdGEoKSkpOwotICAgICAg
ICBzb3VwX21lc3NhZ2Vfc2V0X2ZpcnN0X3BhcnR5KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksIGZp
cnN0UGFydHkuZ2V0KCkpOworICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X2ZpcnN0X3BhcnR5KGQt
Pm1fbXNnLCBmaXJzdFBhcnR5LmdldCgpKTsKICAgICB9CiAjZW5kaWYKIH0KQEAgLTI5MCw5ICsy
OTMsNTMgQEAgc3RhdGljIHZvaWQgZ290Q2h1bmtDYWxsYmFjayhTb3VwTWVzc2FnZSogbXNnLCBT
b3VwQnVmZmVyKiBjaHVuaywgZ3BvaW50ZXIgZGF0YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Y2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUuZ2V0KCksIGNodW5rLT5kYXRhLCBjaHVuay0+
bGVuZ3RoLCBmYWxzZSk7Cit9CisKKy8vIENhbGxlZCBhdCB0aGUgZW5kIG9mIHRoZSBtZXNzYWdl
LCB3aXRoIGFsbCB0aGUgbmVjZXNzYXJ5IGFib3V0IHRoZSBsYXN0IGluZm9ybWF0aW9ucy4KKy8v
IERvZXNuJ3QgZ2V0IGNhbGxlZCBmb3IgcmVkaXJlY3RzLgorc3RhdGljIHZvaWQgZmluaXNoZWRD
YWxsYmFjayhTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIg
ZGF0YSkKK3sKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKHN0
YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSkpOworICAgIC8vIFRPRE86IG1heWJlIHdl
IHNob3VsZCBydW4gdGhpcyBjb2RlIGV2ZW4gaWYgdGhlcmUncyBubyBjbGllbnQ/CisgICAgaWYg
KCFoYW5kbGUpCisgICAgICAgIHJldHVybjsKKworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwq
IGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisKKyAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0
dXJuOwogCisgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoU09VUF9TVEFUVVNfSVNfVFJBTlNQT1JUX0VSUk9SKG1zZy0+c3RhdHVzX2NvZGUpKSB7Cisg
ICAgICAgIGNoYXIqIHVyaSA9IHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwX21lc3NhZ2VfZ2V0X3Vy
aShtc2cpLCBmYWxzZSk7CisgICAgICAgIFJlc291cmNlRXJyb3IgZXJyb3IoZ19xdWFya190b19z
dHJpbmcoU09VUF9IVFRQX0VSUk9SKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2ct
PnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVyaSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTdHJpbmc6OmZyb21VVEY4KG1zZy0+cmVhc29uX3BocmFzZSkp
OworICAgICAgICBnX2ZyZWUodXJpKTsKKyAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZS5n
ZXQoKSwgZXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1zZy0+c3Rh
dHVzX2NvZGUgPT0gU09VUF9TVEFUVVNfVU5BVVRIT1JJWkVEKSB7CisgICAgICAgIGZpbGxSZXNw
b25zZUZyb21NZXNzYWdlKG1zZywgJmQtPm1fcmVzcG9uc2UpOworICAgICAgICBjbGllbnQtPmRp
ZFJlY2VpdmVSZXNwb25zZShoYW5kbGUuZ2V0KCksIGQtPm1fcmVzcG9uc2UpOworCisgICAgICAg
IC8vIFdlYkNvcmUgbWlnaHQgaGF2ZSBjYW5jZWxsZWQgdGhlIGpvYiBpbiB0aGUgd2hpbGUKKyAg
ICAgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGlmIChtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEpCisgICAgICAgICAgICBjbGllbnQtPmRpZFJl
Y2VpdmVEYXRhKGhhbmRsZS5nZXQoKSwgbXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhLCBtc2ctPnJl
c3BvbnNlX2JvZHktPmxlbmd0aCwgdHJ1ZSk7CisgICAgfQorCisgICAgY2xpZW50LT5kaWRGaW5p
c2hMb2FkaW5nKGhhbmRsZS5nZXQoKSwgMCk7CiB9CiAKKy8vIHBhcnNlRGF0YVVybCgpIGlzIHRh
a2VuIGZyb20gdGhlIENVUkwgaHR0cCBiYWNrZW5kLgogc3RhdGljIGdib29sZWFuIHBhcnNlRGF0
YVVybChncG9pbnRlciBjYWxsYmFja0RhdGEpCiB7CiAgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oY2FsbGJhY2tEYXRhKTsKQEAgLTMxNyw2
ICszNjQsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gcGFyc2VEYXRhVXJsKGdwb2ludGVyIGNhbGxiYWNr
RGF0YSkKICAgICB9CiAKICAgICBTdHJpbmcgbWVkaWFUeXBlID0gdXJsLnN1YnN0cmluZyg1LCBp
bmRleCAtIDUpOworICAgIFN0cmluZyBkYXRhID0gdXJsLnN1YnN0cmluZyhpbmRleCArIDEpOwog
CiAgICAgYm9vbCBpc0Jhc2U2NCA9IG1lZGlhVHlwZS5lbmRzV2l0aCgiO2Jhc2U2NCIsIGZhbHNl
KTsKICAgICBpZiAoaXNCYXNlNjQpCkBAIC0zMzIsNDEgKzM4MCw0MiBAQCBzdGF0aWMgZ2Jvb2xl
YW4gcGFyc2VEYXRhVXJsKGdwb2ludGVyIGNhbGxiYWNrRGF0YSkKICAgICByZXNwb25zZS5zZXRV
UkwoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CiAgICAgcmVzcG9uc2Uuc2V0TWltZVR5
cGUobWltZVR5cGUpOwogCi0gICAgLy8gRm9yIG5vbiBiYXNlNjQgZW5jb2RlZCBkYXRhIHdlIGhh
dmUgdG8gY29udmVydCB0byBVVEYtMTYgZWFybHkKLSAgICAvLyBkdWUgdG8gbGltaXRhdGlvbnMg
aW4gS1VSTAotICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoaXNCYXNlNjQgPyBjaGFy
c2V0IDogIlVURi0xNiIpOwotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwg
cmVzcG9uc2UpOworICAgIGlmIChpc0Jhc2U2NCkgeworICAgICAgICBkYXRhID0gZGVjb2RlVVJM
RXNjYXBlU2VxdWVuY2VzKGRhdGEpOworICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdO
YW1lKGNoYXJzZXQpOworICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUs
IHJlc3BvbnNlKTsKKworICAgICAgICAvLyBUaGUgbG9hZCBtYXkgYmUgY2FuY2VsbGVkLCBhbmQg
dGhlIGNsaWVudCBtYXkgYmUgZGVzdHJveWVkCisgICAgICAgIC8vIGJ5IGFueSBvZiB0aGUgY2xp
ZW50IHJlcG9ydGluZyBjYWxscywgc28gd2UgY2hlY2ssIGFuZCBiYWlsCisgICAgICAgIC8vIG91
dCBpbiBlaXRoZXIgb2YgdGhvc2UgY2FzZXMuCisgICAgICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8
fCAhaGFuZGxlLT5jbGllbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICAvLyBVc2UgdGhlIEdMaWIgQmFzZTY0LCBzaW5jZSBXZWJDb3JlJ3MgZGVjb2RlciBpc24ndAor
ICAgICAgICAvLyBnZW5lcmFsLXB1cnBvc2UgYW5kIGZhaWxzIG9uIEFjaWQzIHRlc3QgOTcgKHdo
aXRlc3BhY2UpLgorICAgICAgICBzaXplX3Qgb3V0TGVuZ3RoID0gMDsKKyAgICAgICAgY2hhciog
b3V0RGF0YSA9IDA7CisgICAgICAgIG91dERhdGEgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihn
X2Jhc2U2NF9kZWNvZGUoZGF0YS51dGY4KCkuZGF0YSgpLCAmb3V0TGVuZ3RoKSk7CisgICAgICAg
IGlmIChvdXREYXRhICYmIG91dExlbmd0aCA+IDApCisgICAgICAgICAgICBjbGllbnQtPmRpZFJl
Y2VpdmVEYXRhKGhhbmRsZSwgb3V0RGF0YSwgb3V0TGVuZ3RoLCAwKTsKKyAgICAgICAgZ19mcmVl
KG91dERhdGEpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFdlIGhhdmUgdG8gY29udmVydCB0
byBVVEYtMTYgZWFybHkgZHVlIHRvIGxpbWl0YXRpb25zIGluIEtVUkwKKyAgICAgICAgZGF0YSA9
IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhLCBUZXh0RW5jb2RpbmcoY2hhcnNldCkpOwor
ICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKCJVVEYtMTYiKTsKKyAgICAgICAg
Y2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLCByZXNwb25zZSk7CisKKyAgICAgICAg
aWYgKGQtPm1fY2FuY2VsbGVkIHx8ICFoYW5kbGUtPmNsaWVudCgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIGlmIChkYXRhLmxlbmd0aCgpID4gMCkKKyAgICAgICAgICAg
IGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihkYXRhLmNoYXJhY3RlcnMoKSksIGRhdGEubGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpLCAw
KTsKKyAgICB9CiAKLSAgICAvLyBUaGUgbG9hZCBtYXkgYmUgY2FuY2VsbGVkLCBhbmQgdGhlIGNs
aWVudCBtYXkgYmUgZGVzdHJveWVkCi0gICAgLy8gYnkgYW55IG9mIHRoZSBjbGllbnQgcmVwb3J0
aW5nIGNhbGxzLCBzbyB3ZSBjaGVjaywgYW5kIGJhaWwKLSAgICAvLyBvdXQgaW4gZWl0aGVyIG9m
IHRob3NlIGNhc2VzLgogICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8fCAhaGFuZGxlLT5jbGllbnQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBo
YW5kbGUtPmRlZmF1bHRTZXNzaW9uKCk7Ci0gICAgR093blB0cjxHRXJyb3I+IGVycm9yOwotICAg
IGQtPm1fc291cFJlcXVlc3QgPSBhZG9wdFBsYXRmb3JtUmVmKHdlYmtpdF9zb3VwX3JlcXVlc3Rl
cl9yZXF1ZXN0KGQtPm1fcmVxdWVzdGVyLmdldCgpLCBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHNlc3Npb24sICZlcnJvci5vdXRQdHIoKSkpOwot
ICAgIGlmIChlcnJvcikgewotICAgICAgICBkLT5tX3NvdXBSZXF1ZXN0ID0gMDsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGQtPm1faW5wdXRTdHJlYW0gPSBhZG9wdFBsYXRm
b3JtUmVmKHdlYmtpdF9zb3VwX3JlcXVlc3Rfc2VuZChkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCAw
LCAmZXJyb3Iub3V0UHRyKCkpKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgZC0+bV9pbnB1
dFN0cmVhbSA9IDA7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBkLT5tX2J1
ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihnX3NsaWNlX2FsbG9jMChSRUFEX0JVRkZFUl9TSVpF
KSk7Ci0gICAgZC0+bV90b3RhbCA9IDA7Ci0KLSAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVD
VChkLT5tX2lucHV0U3RyZWFtLmdldCgpKSwgIndlYmtpdC1yZXNvdXJjZSIsIGhhbmRsZSk7Ci0g
ICAgLy8gYmFsYW5jZWQgYnkgYSBkZXJlZigpIGluIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlv
biwgd2hpY2ggc2hvdWxkIGFsd2F5cyBydW4KLSAgICBoYW5kbGUtPnJlZigpOwotCi0gICAgZC0+
bV9jYW5jZWxsYWJsZSA9IGFkb3B0UGxhdGZvcm1SZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7Ci0g
ICAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhkLT5tX2lucHV0U3RyZWFtLmdldCgpLCBkLT5t
X2J1ZmZlciwgUkVBRF9CVUZGRVJfU0laRSwgR19QUklPUklUWV9ERUZBVUxULAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSwgcmVhZENhbGxiYWNr
LCBHSU5UX1RPX1BPSU5URVIoIWlzQmFzZTY0KSk7CisgICAgY2xpZW50LT5kaWRGaW5pc2hMb2Fk
aW5nKGhhbmRsZSwgMCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC00MjAsMTMyICs0Njks
NiBAQCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uSXNJbml0aWFsaXplZChTb3VwU2Vzc2lvbiog
c2Vzc2lvbikKICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChzZXNzaW9uKSwgIndlYmtp
dC1pbml0IiwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHhkZWFkYmVlZikpOwogfQogCi1zdGF0
aWMgdm9pZCBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24oUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwgYm9vbCBpc0Rlc3Ryb3lpbmcgPSBmYWxzZSkKLXsKLSAgICBSZXNvdXJjZUhhbmRsZUludGVy
bmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotCi0gICAgaWYgKGQtPm1fc291cFJlcXVl
c3QpIHsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZC0+bV9zb3VwUmVxdWVz
dC5nZXQoKSksICJ3ZWJraXQtcmVzb3VyY2UiLCAwKTsKLSAgICAgICAgZC0+bV9zb3VwUmVxdWVz
dC5jbGVhcigpOwotICAgIH0KLQotICAgIGlmIChkLT5tX2lucHV0U3RyZWFtKSB7Ci0gICAgICAg
IGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGQtPm1faW5wdXRTdHJlYW0uZ2V0KCkpLCAid2Vi
a2l0LXJlc291cmNlIiwgMCk7Ci0gICAgICAgIGQtPm1faW5wdXRTdHJlYW0uY2xlYXIoKTsKLSAg
ICB9Ci0KLSAgICBkLT5tX2NhbmNlbGxhYmxlLmNsZWFyKCk7Ci0KLSAgICBpZiAoZC0+bV9zb3Vw
TWVzc2FnZSkgewotICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQo
ZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgR19TSUdOQUxfTUFUQ0hfREFUQSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIGhhbmRsZSk7Ci0g
ICAgICAgIGQtPm1fc291cE1lc3NhZ2UuY2xlYXIoKTsKLSAgICB9Ci0KLSAgICBpZiAoZC0+bV9i
dWZmZXIpIHsKLSAgICAgICAgZ19zbGljZV9mcmVlMShSRUFEX0JVRkZFUl9TSVpFLCBkLT5tX2J1
ZmZlcik7Ci0gICAgICAgIGQtPm1fYnVmZmVyID0gMDsKLSAgICB9Ci0KLSAgICBpZiAoIWlzRGVz
dHJveWluZykKLSAgICAgICAgaGFuZGxlLT5kZXJlZigpOwotfQotCi1zdGF0aWMgdm9pZCBzZW5k
UmVxdWVzdENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2lu
dGVyIHVzZXJEYXRhKQotewotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3Rh
dGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihnX29iamVjdF9nZXRfZGF0YShzb3VyY2UsICJ3ZWJr
aXQtcmVzb3VyY2UiKSk7Ci0gICAgaWYgKCFoYW5kbGUpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAg
UmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7Ci0KLSAgICBp
ZiAoZC0+bV9nb3RDaHVua0hhbmRsZXIpIHsKLSAgICAgICAgLy8gTm8gbmVlZCB0byBjYWxsIGdv
dENodW5rSGFuZGxlciBhbnltb3JlLiBSZWNlaXZlZCBkYXRhIHdpbGwKLSAgICAgICAgLy8gYmUg
cmVwb3J0ZWQgYnkgcmVhZENhbGxiYWNrCi0gICAgICAgIGlmIChnX3NpZ25hbF9oYW5kbGVyX2lz
X2Nvbm5lY3RlZChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCBkLT5tX2dvdENodW5rSGFuZGxlcikp
Ci0gICAgICAgICAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2Fn
ZS5nZXQoKSwgZC0+bV9nb3RDaHVua0hhbmRsZXIpOwotICAgIH0KLQotICAgIGlmIChkLT5tX2Nh
bmNlbGxlZCB8fCAhY2xpZW50KSB7Ci0gICAgICAgIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlv
bihoYW5kbGUuZ2V0KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgR093blB0cjxH
RXJyb3I+IGVycm9yOwotICAgIEdJbnB1dFN0cmVhbSogaW4gPSB3ZWJraXRfc291cF9yZXF1ZXN0
X3NlbmRfZmluaXNoKGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIHJlcywgJmVycm9yLm91dFB0cigp
KTsKLQotICAgIGlmIChlcnJvcikgewotICAgICAgICBTb3VwTWVzc2FnZSogc291cE1zZyA9IGQt
Pm1fc291cE1lc3NhZ2UuZ2V0KCk7Ci0gICAgICAgIGdib29sZWFuIGlzVHJhbnNwb3J0RXJyb3Ig
PSBkLT5tX3NvdXBNZXNzYWdlICYmIFNPVVBfU1RBVFVTX0lTX1RSQU5TUE9SVF9FUlJPUihzb3Vw
TXNnLT5zdGF0dXNfY29kZSk7Ci0KLSAgICAgICAgaWYgKGlzVHJhbnNwb3J0RXJyb3IgfHwgKGVy
cm9yLT5kb21haW4gPT0gR19JT19FUlJPUikpIHsKLSAgICAgICAgICAgIFNvdXBVUkkqIHVyaSA9
IHdlYmtpdF9zb3VwX3JlcXVlc3RfZ2V0X3VyaShkLT5tX3NvdXBSZXF1ZXN0LmdldCgpKTsKLSAg
ICAgICAgICAgIEdPd25QdHI8Y2hhcj4gdXJpU3RyKHNvdXBfdXJpX3RvX3N0cmluZyh1cmksIGZh
bHNlKSk7Ci0gICAgICAgICAgICBnaW50IGVycm9yQ29kZSA9IGlzVHJhbnNwb3J0RXJyb3IgPyBz
b3VwTXNnLT5zdGF0dXNfY29kZSA6IGVycm9yLT5jb2RlOwotICAgICAgICAgICAgY29uc3QgZ2No
YXIqIGVycm9yTXNnID0gaXNUcmFuc3BvcnRFcnJvciA/IHNvdXBNc2ctPnJlYXNvbl9waHJhc2Ug
OiBlcnJvci0+bWVzc2FnZTsKLSAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBxdWFya1N0ciA9IGlz
VHJhbnNwb3J0RXJyb3IgPyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1IpIDogZ19x
dWFya190b19zdHJpbmcoR19JT19FUlJPUik7Ci0gICAgICAgICAgICBSZXNvdXJjZUVycm9yIHJl
c291cmNlRXJyb3IocXVhcmtTdHIsIGVycm9yQ29kZSwgdXJpU3RyLmdldCgpLCBTdHJpbmc6OmZy
b21VVEY4KGVycm9yTXNnKSk7Ci0KLSAgICAgICAgICAgIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJh
dGlvbihoYW5kbGUuZ2V0KCkpOwotICAgICAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZS5n
ZXQoKSwgcmVzb3VyY2VFcnJvcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoZC0+bV9zb3VwTWVzc2FnZSAmJiBzb3VwTWVzc2FnZS0+c3RhdHVzX2NvZGUg
PT0gU09VUF9TVEFUVVNfVU5BVVRIT1JJWkVEKSB7Ci0gICAgICAgICAgICBmaWxsUmVzcG9uc2VG
cm9tTWVzc2FnZShzb3VwTXNnLCAmZC0+bV9yZXNwb25zZSk7Ci0gICAgICAgICAgICBjbGllbnQt
PmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUuZ2V0KCksIGQtPm1fcmVzcG9uc2UpOwotCi0gICAg
ICAgICAgICAvLyBXZWJDb3JlIG1pZ2h0IGhhdmUgY2FuY2VsbGVkIHRoZSBqb2IgaW4gdGhlIHdo
aWxlCi0gICAgICAgICAgICBpZiAoIWQtPm1fY2FuY2VsbGVkICYmIHNvdXBNc2ctPnJlc3BvbnNl
X2JvZHktPmRhdGEpCi0gICAgICAgICAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5k
bGUuZ2V0KCksIHNvdXBNc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEsIHNvdXBNc2ctPnJlc3BvbnNl
X2JvZHktPmxlbmd0aCwgdHJ1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBkaWRSZWNlaXZl
RGF0YSBhYm92ZSBtaWdodCBoYXZlIGNhbmNlbGxlZCBpdAotICAgICAgICBpZiAoZC0+bV9jYW5j
ZWxsZWQgfHwgIWNsaWVudCkgewotICAgICAgICAgICAgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0
aW9uKGhhbmRsZS5nZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAg
ICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgpLCAwKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGlmIChkLT5tX2NhbmNlbGxlZCkgewotICAgICAgICBjbGVh
bnVwU291cFJlcXVlc3RPcGVyYXRpb24oaGFuZGxlLmdldCgpKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGQtPm1faW5wdXRTdHJlYW0gPSBhZG9wdFBsYXRmb3JtUmVmKGluKTsKLSAg
ICBkLT5tX2J1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihnX3NsaWNlX2FsbG9jMChSRUFEX0JV
RkZFUl9TSVpFKSk7Ci0gICAgZC0+bV90b3RhbCA9IDA7Ci0KLSAgICAvLyByZWFkQ2FsbGJhY2sg
bmVlZHMgaXQKLSAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChkLT5tX2lucHV0U3RyZWFt
LmdldCgpKSwgIndlYmtpdC1yZXNvdXJjZSIsIGhhbmRsZS5nZXQoKSk7Ci0KLSAgICAvLyBXZSBu
ZWVkIHRvIGNoZWNrIGlmIGl0J3MgYSBmaWxlOiBVUkwgYW5kIGlmIGl0IGlzIGEgcmVndWxhcgot
ICAgIC8vIGZpbGUgYXMgaXQgY291bGQgYmUgYSBkaXJlY3RvcnkuIEluIHRoYXQgY2FzZSBTb3Vw
IHByb3Blcmx5Ci0gICAgLy8gcmV0dXJucyBhIHN0cmVhbSB3aG9zZSBjb250ZW50IGlzIGEgSFRN
TCB3aXRoIGEgbGlzdCBvZiBmaWxlcwotICAgIC8vIGluIHRoZSBkaXJlY3RvcnkKLSAgICBpZiAo
ZXF1YWxJZ25vcmluZ0Nhc2UoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5wcm90b2NvbCgp
LCAiZmlsZSIpCi0gICAgICAgICYmIEdfSVNfRklMRV9JTlBVVF9TVFJFQU0oaW4pKSB7Ci0gICAg
ICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2U7Ci0KLSAgICAgICAgcmVzcG9uc2Uuc2V0VVJM
KGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkpOwotICAgICAgICByZXNwb25zZS5zZXRNaW1l
VHlwZSh3ZWJraXRfc291cF9yZXF1ZXN0X2dldF9jb250ZW50X3R5cGUoZC0+bV9zb3VwUmVxdWVz
dC5nZXQoKSkpOwotICAgICAgICByZXNwb25zZS5zZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgod2Vi
a2l0X3NvdXBfcmVxdWVzdF9nZXRfY29udGVudF9sZW5ndGgoZC0+bV9zb3VwUmVxdWVzdC5nZXQo
KSkpOwotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUuZ2V0KCksIHJl
c3BvbnNlKTsKLQotICAgICAgICBpZiAoZC0+bV9jYW5jZWxsZWQpIHsKLSAgICAgICAgICAgIGNs
ZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlvbihoYW5kbGUuZ2V0KCkpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhk
LT5tX2lucHV0U3RyZWFtLmdldCgpLCBkLT5tX2J1ZmZlciwgUkVBRF9CVUZGRVJfU0laRSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwgZC0+bV9jYW5j
ZWxsYWJsZS5nZXQoKSwgcmVhZENhbGxiYWNrLCAwKTsKLX0KLQogc3RhdGljIGJvb2wgc3RhcnRI
dHRwKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiB7CiAgICAgQVNTRVJUKGhhbmRsZSk7CkBAIC01
NjAsMzcgKzQ4MywyNiBAQCBzdGF0aWMgYm9vbCBzdGFydEh0dHAoUmVzb3VyY2VIYW5kbGUqIGhh
bmRsZSkKICAgICB1cmwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CiAgICAgcmVxdWVzdC5z
ZXRVUkwodXJsKTsKIAotICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKLSAgICBkLT5tX3NvdXBS
ZXF1ZXN0ID0gYWRvcHRQbGF0Zm9ybVJlZih3ZWJraXRfc291cF9yZXF1ZXN0ZXJfcmVxdWVzdChk
LT5tX3JlcXVlc3Rlci5nZXQoKSwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHNlc3Npb24s
ICZlcnJvci5vdXRQdHIoKSkpOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBkLT5tX3NvdXBS
ZXF1ZXN0ID0gMDsKKyAgICBkLT5tX21zZyA9IHJlcXVlc3QudG9Tb3VwTWVzc2FnZSgpOworICAg
IGlmICghZC0+bV9tc2cpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBnX29i
amVjdF9zZXRfZGF0YShHX09CSkVDVChkLT5tX3NvdXBSZXF1ZXN0LmdldCgpKSwgIndlYmtpdC1y
ZXNvdXJjZSIsIGhhbmRsZSk7Ci0KLSAgICBkLT5tX3NvdXBNZXNzYWdlID0gYWRvcHRQbGF0Zm9y
bVJlZih3ZWJraXRfc291cF9yZXF1ZXN0X2h0dHBfZ2V0X21lc3NhZ2UoV0VCS0lUX1NPVVBfUkVR
VUVTVF9IVFRQKGQtPm1fc291cFJlcXVlc3QuZ2V0KCkpKSk7Ci0gICAgaWYgKCFkLT5tX3NvdXBN
ZXNzYWdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBTb3VwTWVzc2FnZSogc291cE1l
c3NhZ2UgPSBkLT5tX3NvdXBNZXNzYWdlLmdldCgpOwotICAgIHJlcXVlc3QudXBkYXRlU291cE1l
c3NhZ2Uoc291cE1lc3NhZ2UpOwogCiAgICAgaWYgKCFoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlm
ZigpKQotICAgICAgICBzb3VwX21lc3NhZ2VfZGlzYWJsZV9mZWF0dXJlKHNvdXBNZXNzYWdlLCBT
T1VQX1RZUEVfQ09OVEVOVF9TTklGRkVSKTsKKyAgICAgICAgc291cF9tZXNzYWdlX2Rpc2FibGVf
ZmVhdHVyZShkLT5tX21zZywgU09VUF9UWVBFX0NPTlRFTlRfU05JRkZFUik7CiAKLSAgICBnX3Np
Z25hbF9jb25uZWN0KHNvdXBNZXNzYWdlLCAicmVzdGFydGVkIiwgR19DQUxMQkFDSyhyZXN0YXJ0
ZWRDYWxsYmFjayksIGhhbmRsZSk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChzb3VwTWVzc2FnZSwg
ImdvdC1oZWFkZXJzIiwgR19DQUxMQkFDSyhnb3RIZWFkZXJzQ2FsbGJhY2spLCBoYW5kbGUpOwot
ICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc291cE1lc3NhZ2UsICJjb250ZW50LXNuaWZmZWQiLCBHX0NB
TExCQUNLKGNvbnRlbnRTbmlmZmVkQ2FsbGJhY2spLCBoYW5kbGUpOwotICAgIGQtPm1fZ290Q2h1
bmtIYW5kbGVyID0gZ19zaWduYWxfY29ubmVjdChzb3VwTWVzc2FnZSwgImdvdC1jaHVuayIsIEdf
Q0FMTEJBQ0soZ290Q2h1bmtDYWxsYmFjayksIGhhbmRsZSk7CisgICAgZ19zaWduYWxfY29ubmVj
dChkLT5tX21zZywgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCBo
YW5kbGUpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9tc2csICJnb3QtaGVhZGVycyIsIEdf
Q0FMTEJBQ0soZ290SGVhZGVyc0NhbGxiYWNrKSwgaGFuZGxlKTsKKyAgICBnX3NpZ25hbF9jb25u
ZWN0KGQtPm1fbXNnLCAiY29udGVudC1zbmlmZmVkIiwgR19DQUxMQkFDSyhjb250ZW50U25pZmZl
ZENhbGxiYWNrKSwgaGFuZGxlKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fbXNnLCAiZ290
LWNodW5rIiwgR19DQUxMQkFDSyhnb3RDaHVua0NhbGxiYWNrKSwgaGFuZGxlKTsKIAogI2lmZGVm
IEhBVkVfTElCU09VUF8yXzI5XzkwCiAgICAgU3RyaW5nIGZpcnN0UGFydHlTdHJpbmcgPSByZXF1
ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkuc3RyaW5nKCk7CiAgICAgaWYgKCFmaXJzdFBhcnR5
U3RyaW5nLmlzRW1wdHkoKSkgewogICAgICAgICBHT3duUHRyPFNvdXBVUkk+IGZpcnN0UGFydHko
c291cF91cmlfbmV3KGZpcnN0UGFydHlTdHJpbmcudXRmOCgpLmRhdGEoKSkpOwotICAgICAgICBz
b3VwX21lc3NhZ2Vfc2V0X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlLCBmaXJzdFBhcnR5LmdldCgp
KTsKKyAgICAgICAgc291cF9tZXNzYWdlX3NldF9maXJzdF9wYXJ0eShkLT5tX21zZywgZmlyc3RQ
YXJ0eS5nZXQoKSk7CiAgICAgfQogI2VuZGlmCisgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpF
Q1QoZC0+bV9tc2cpLCAicmVzb3VyY2VIYW5kbGUiLCByZWludGVycHJldF9jYXN0PHZvaWQqPiho
YW5kbGUpKTsKIAogICAgIEZvcm1EYXRhKiBodHRwQm9keSA9IGQtPm1fZmlyc3RSZXF1ZXN0Lmh0
dHBCb2R5KCk7CiAgICAgaWYgKGh0dHBCb2R5ICYmICFodHRwQm9keS0+aXNFbXB0eSgpKSB7CkBA
IC02MDAsNyArNTEyLDcgQEAgc3RhdGljIGJvb2wgc3RhcnRIdHRwKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUpCiAgICAgICAgIGlmIChudW1FbGVtZW50cyA8IDIpIHsKICAgICAgICAgICAgIFZlY3Rv
cjxjaGFyPiBib2R5OwogICAgICAgICAgICAgaHR0cEJvZHktPmZsYXR0ZW4oYm9keSk7Ci0gICAg
ICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3JlcXVlc3Qoc291cE1lc3NhZ2UsIGQtPm1fZmlyc3RS
ZXF1ZXN0Lmh0dHBDb250ZW50VHlwZSgpLnV0ZjgoKS5kYXRhKCksCisgICAgICAgICAgICBzb3Vw
X21lc3NhZ2Vfc2V0X3JlcXVlc3QoZC0+bV9tc2csIGQtPm1fZmlyc3RSZXF1ZXN0Lmh0dHBDb250
ZW50VHlwZSgpLnV0ZjgoKS5kYXRhKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU09VUF9NRU1PUllfQ09QWSwgYm9keS5kYXRhKCksIGJvZHkuc2l6ZSgpKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8qCkBAIC02MDksMjUgKzUyMSwyNyBAQCBzdGF0aWMg
Ym9vbCBzdGFydEh0dHAoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAgICAgICAgICAgICAqIGNv
cHlpbmcgaW50byBtZW1vcnk7IFRPRE86IHN1cHBvcnQgdXBsb2FkIG9mIG5vbi1sb2NhbAogICAg
ICAgICAgICAgICogKHRoaW5rIHNmdHA6Ly8pIGZpbGVzIGJ5IHVzaW5nIEdJTz8KICAgICAgICAg
ICAgICAqLwotICAgICAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfc2V0X2FjY3VtdWxhdGUoc291
cE1lc3NhZ2UtPnJlcXVlc3RfYm9keSwgRkFMU0UpOworICAgICAgICAgICAgc291cF9tZXNzYWdl
X2JvZHlfc2V0X2FjY3VtdWxhdGUoZC0+bV9tc2ctPnJlcXVlc3RfYm9keSwgRkFMU0UpOwogICAg
ICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1FbGVtZW50czsgaSsrKSB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgRm9ybURhdGFFbGVtZW50JiBlbGVtZW50ID0gaHR0cEJvZHktPmVs
ZW1lbnRzKClbaV07CiAKICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5tX3R5cGUgPT0gRm9y
bURhdGFFbGVtZW50OjpkYXRhKQotICAgICAgICAgICAgICAgICAgICBzb3VwX21lc3NhZ2VfYm9k
eV9hcHBlbmQoc291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keSwgU09VUF9NRU1PUllfVEVNUE9SQVJZ
LCBlbGVtZW50Lm1fZGF0YS5kYXRhKCksIGVsZW1lbnQubV9kYXRhLnNpemUoKSk7CisgICAgICAg
ICAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChkLT5tX21zZy0+cmVxdWVzdF9i
b2R5LCBTT1VQX01FTU9SWV9URU1QT1JBUlksIGVsZW1lbnQubV9kYXRhLmRhdGEoKSwgZWxlbWVu
dC5tX2RhdGEuc2l6ZSgpKTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAg
ICAgICAgLyoKICAgICAgICAgICAgICAgICAgICAgICogbWFwcGluZyBmb3IgdXBsb2FkZWQgZmls
ZXMgY29kZSBpbnNwaXJlZCBieSB0ZWNobmlxdWUgdXNlZCBpbgogICAgICAgICAgICAgICAgICAg
ICAgKiBsaWJzb3VwJ3Mgc2ltcGxlLWh0dHBkIHRlc3QKICAgICAgICAgICAgICAgICAgICAgICov
Ci0gICAgICAgICAgICAgICAgICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKKyAgICAgICAgICAg
ICAgICAgICAgR0Vycm9yKiBlcnJvciA9IDA7CiAgICAgICAgICAgICAgICAgICAgIENTdHJpbmcg
ZmlsZU5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZWxlbWVudC5tX2ZpbGVuYW1lKTsK
LSAgICAgICAgICAgICAgICAgICAgR01hcHBlZEZpbGUqIGZpbGVNYXBwaW5nID0gZ19tYXBwZWRf
ZmlsZV9uZXcoZmlsZU5hbWUuZGF0YSgpLCBmYWxzZSwgJmVycm9yLm91dFB0cigpKTsKKyAgICAg
ICAgICAgICAgICAgICAgR01hcHBlZEZpbGUqIGZpbGVNYXBwaW5nID0gZ19tYXBwZWRfZmlsZV9u
ZXcoZmlsZU5hbWUuZGF0YSgpLCBmYWxzZSwgJmVycm9yKTsKIAogICAgICAgICAgICAgICAgICAg
ICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJz
X2Rpc2Nvbm5lY3RfbWF0Y2hlZChzb3VwTWVzc2FnZSwgR19TSUdOQUxfTUFUQ0hfREFUQSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQoZC0+bV9tc2cs
IEdfU0lHTkFMX01BVENIX0RBVEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgaGFuZGxlKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGQtPm1fc291cE1lc3NhZ2UuY2xlYXIoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGdfb2JqZWN0X3VucmVmKGQtPm1fbXNnKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGQtPm1fbXNnID0gMDsKIAogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICAgICAgICAgICAgICB9CkBAIC02MzUsMzEgKzU0OSwzOCBAQCBzdGF0aWMgYm9v
bCBzdGFydEh0dHAoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAgICAgICAgICAgICAgICAgICAg
U291cEJ1ZmZlciogc291cEJ1ZmZlciA9IHNvdXBfYnVmZmVyX25ld193aXRoX293bmVyKGdfbWFw
cGVkX2ZpbGVfZ2V0X2NvbnRlbnRzKGZpbGVNYXBwaW5nKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfbWFw
cGVkX2ZpbGVfZ2V0X2xlbmd0aChmaWxlTWFwcGluZyksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWFw
cGluZywKKyNpZiBHTElCX0NIRUNLX1ZFUlNJT04oMiwgMjEsIDMpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWludGVycHJldF9jYXN0PEdEZXN0cm95Tm90aWZ5PihnX21hcHBlZF9maWxlX3VucmVmKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZF9idWZmZXIoc291cE1l
c3NhZ2UtPnJlcXVlc3RfYm9keSwgc291cEJ1ZmZlcik7CisjZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVpbnRlcnByZXRfY2FzdDxHRGVzdHJveU5vdGlmeT4oZ19tYXBwZWRfZmlsZV9mcmVlKSk7Cisj
ZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfYXBwZW5kX2J1ZmZl
cihkLT5tX21zZy0+cmVxdWVzdF9ib2R5LCBzb3VwQnVmZmVyKTsKICAgICAgICAgICAgICAgICAg
ICAgc291cF9idWZmZXJfZnJlZShzb3VwQnVmZmVyKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBiYWxhbmNlZCBieSBhIGRlcmVm
KCkgaW4gY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uLCB3aGljaCBzaG91bGQgYWx3YXlzIHJ1
bgorICAgIC8vIGJhbGFuY2VkIGJ5IGEgZGVyZWYoKSBpbiBmaW5pc2hlZENhbGxiYWNrLCB3aGlj
aCBzaG91bGQgYWx3YXlzIHJ1bgogICAgIGhhbmRsZS0+cmVmKCk7CiAKICAgICAvLyBNYWtlIHN1
cmUgd2UgaGF2ZSBhbiBBY2NlcHQgaGVhZGVyIGZvciBzdWJyZXNvdXJjZXM7IHNvbWUgc2l0ZXMK
ICAgICAvLyB3YW50IHRoaXMgdG8gc2VydmUgc29tZSBvZiB0aGVpciBzdWJyZXNvdXJjZXMKLSAg
ICBpZiAoIXNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoc291cE1lc3NhZ2UtPnJlcXVlc3Rf
aGVhZGVycywgIkFjY2VwdCIpKQotICAgICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQo
c291cE1lc3NhZ2UtPnJlcXVlc3RfaGVhZGVycywgIkFjY2VwdCIsICIqLyoiKTsKKyAgICBpZiAo
IXNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoZC0+bV9tc2ctPnJlcXVlc3RfaGVhZGVycywg
IkFjY2VwdCIpKQorICAgICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQoZC0+bV9tc2ct
PnJlcXVlc3RfaGVhZGVycywgIkFjY2VwdCIsICIqLyoiKTsKIAotICAgIGQtPm1fY2FuY2VsbGFi
bGUgPSBhZG9wdFBsYXRmb3JtUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwotICAgIHdlYmtpdF9z
b3VwX3JlcXVlc3Rfc2VuZF9hc3luYyhkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBkLT5tX2NhbmNl
bGxhYmxlLmdldCgpLCBzZW5kUmVxdWVzdENhbGxiYWNrLCAwKTsKKyAgICAvLyBCYWxhbmNlZCBp
biBSZXNvdXJjZUhhbmRsZUludGVybmFsJ3MgZGVzdHJ1Y3Rvcjsgd2UgbmVlZCB0bworICAgIC8v
IGtlZXAgb3VyIG93biByZWYsIGJlY2F1c2UgYWZ0ZXIgcXVldWVpbmcgdGhlIG1lc3NhZ2UsIHRo
ZQorICAgIC8vIHNlc3Npb24gb3ducyB0aGUgaW5pdGlhbCByZWZlcmVuY2UuCisgICAgZ19vYmpl
Y3RfcmVmKGQtPm1fbXNnKTsKKyAgICBzb3VwX3Nlc3Npb25fcXVldWVfbWVzc2FnZShzZXNzaW9u
LCBkLT5tX21zZywgZmluaXNoZWRDYWxsYmFjaywgaGFuZGxlKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCkKIHsKLSAgICBBU1NFUlQoIWQtPm1fc291cE1lc3NhZ2UpOworICAgIEFTU0VSVCghZC0+
bV9tc2cpOwogCiAgICAgLy8gVGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNl
SGFuZGxlIGlzIG5vdCBhc3NvY2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdl
IGFyZSBkb3dubG9hZGluZyBhIGZpbGUuCkBAIC02OTksMTAgKzYyMCwxMCBAQCBib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmNhbmNlbCgpCiB7CiAgICAgZC0+bV9jYW5jZWxsZWQgPSB0cnVlOwotICAgIGlm
IChkLT5tX3NvdXBNZXNzYWdlKQotICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2Uo
ZGVmYXVsdFNlc3Npb24oKSwgZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FO
Q0VMTEVEKTsKKyAgICBpZiAoZC0+bV9tc2cpCisgICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxf
bWVzc2FnZShkZWZhdWx0U2Vzc2lvbigpLCBkLT5tX21zZywgU09VUF9TVEFUVVNfQ0FOQ0VMTEVE
KTsKICAgICBlbHNlIGlmIChkLT5tX2NhbmNlbGxhYmxlKQotICAgICAgICBnX2NhbmNlbGxhYmxl
X2NhbmNlbChkLT5tX2NhbmNlbGxhYmxlLmdldCgpKTsKKyAgICAgICAgZ19jYW5jZWxsYWJsZV9j
YW5jZWwoZC0+bV9jYW5jZWxsYWJsZSk7CiB9CiAKIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBS
ZXNvdXJjZUhhbmRsZTo6YnVmZmVyZWREYXRhKCkKQEAgLTc0Niw2ICs2NjcsMzggQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCwgY29uc3QKICAgICBzeW5jTG9hZGVyLnJ1bigpOwogfQogCisvLyBHSU8tYmFz
ZWQgbG9hZGVyCisKK3N0YXRpYyB2b2lkIGNsZWFudXBHaW9PcGVyYXRpb24oUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSwgYm9vbCBpc0Rlc3Ryb3lpbmcgPSBmYWxzZSkKK3sKKyAgICBSZXNvdXJjZUhh
bmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOworCisgICAgaWYgKGQtPm1f
Z2ZpbGUpIHsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZC0+bV9nZmlsZSks
ICJ3ZWJraXQtcmVzb3VyY2UiLCAwKTsKKyAgICAgICAgZ19vYmplY3RfdW5yZWYoZC0+bV9nZmls
ZSk7CisgICAgICAgIGQtPm1fZ2ZpbGUgPSAwOworICAgIH0KKworICAgIGlmIChkLT5tX2NhbmNl
bGxhYmxlKSB7CisgICAgICAgIGdfb2JqZWN0X3VucmVmKGQtPm1fY2FuY2VsbGFibGUpOworICAg
ICAgICBkLT5tX2NhbmNlbGxhYmxlID0gMDsKKyAgICB9CisKKyAgICBpZiAoZC0+bV9pbnB1dFN0
cmVhbSkgeworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChkLT5tX2lucHV0U3Ry
ZWFtKSwgIndlYmtpdC1yZXNvdXJjZSIsIDApOworICAgICAgICBnX29iamVjdF91bnJlZihkLT5t
X2lucHV0U3RyZWFtKTsKKyAgICAgICAgZC0+bV9pbnB1dFN0cmVhbSA9IDA7CisgICAgfQorCisg
ICAgaWYgKGQtPm1fYnVmZmVyKSB7CisgICAgICAgIGdfZnJlZShkLT5tX2J1ZmZlcik7CisgICAg
ICAgIGQtPm1fYnVmZmVyID0gMDsKKyAgICB9CisKKyAgICBpZiAoIWlzRGVzdHJveWluZykKKyAg
ICAgICAgaGFuZGxlLT5kZXJlZigpOworfQorCiBzdGF0aWMgdm9pZCBjbG9zZUNhbGxiYWNrKEdP
YmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyKQogewogICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihn
X29iamVjdF9nZXRfZGF0YShzb3VyY2UsICJ3ZWJraXQtcmVzb3VyY2UiKSk7CkBAIC03NTUsOCAr
NzA4LDggQEAgc3RhdGljIHZvaWQgY2xvc2VDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3lu
Y1Jlc3VsdCogcmVzLCBncG9pbnRlcikKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0g
aGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQg
PSBoYW5kbGUtPmNsaWVudCgpOwogCi0gICAgZ19pbnB1dF9zdHJlYW1fY2xvc2VfZmluaXNoKGQt
Pm1faW5wdXRTdHJlYW0uZ2V0KCksIHJlcywgMCk7Ci0gICAgY2xlYW51cFNvdXBSZXF1ZXN0T3Bl
cmF0aW9uKGhhbmRsZS5nZXQoKSk7CisgICAgZ19pbnB1dF9zdHJlYW1fY2xvc2VfZmluaXNoKGQt
Pm1faW5wdXRTdHJlYW0sIHJlcywgMCk7CisgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUu
Z2V0KCkpOwogCiAgICAgLy8gVGhlIGxvYWQgbWF5IGhhdmUgYmVlbiBjYW5jZWxsZWQsIHRoZSBj
bGllbnQgbWF5IGhhdmUgYmVlbgogICAgIC8vIGRlc3Ryb3llZCBhbHJlYWR5LiBJbiBzdWNoIGNh
c2VzIGNhbGxpbmcgZGlkRmluaXNoTG9hZGluZyBpcyBhCkBAIC03NjcsOTIgKzcyMCwyMTAgQEAg
c3RhdGljIHZvaWQgY2xvc2VDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCog
cmVzLCBncG9pbnRlcikKICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgp
LCAwKTsKIH0KIAotc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0Fz
eW5jUmVzdWx0KiBhc3luY1Jlc3VsdCwgZ3BvaW50ZXIgZGF0YSkKK3N0YXRpYyB2b2lkIHJlYWRD
YWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlcikKIHsK
ICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNl
SGFuZGxlKj4oZ19vYmplY3RfZ2V0X2RhdGEoc291cmNlLCAid2Via2l0LXJlc291cmNlIikpOwog
ICAgIGlmICghaGFuZGxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIGNvbnZlcnRUb1VU
RjE2ID0gc3RhdGljX2Nhc3Q8Ym9vbD4oZGF0YSk7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKIAogICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8fCAh
Y2xpZW50KSB7Ci0gICAgICAgIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlvbihoYW5kbGUuZ2V0
KCkpOworICAgICAgICBjbGVhbnVwR2lvT3BlcmF0aW9uKGhhbmRsZS5nZXQoKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7CisgICAgR0Vycm9y
KiBlcnJvciA9IDA7CiAKLSAgICBnc3NpemUgYnl0ZXNSZWFkID0gZ19pbnB1dF9zdHJlYW1fcmVh
ZF9maW5pc2goZC0+bV9pbnB1dFN0cmVhbS5nZXQoKSwgYXN5bmNSZXN1bHQsICZlcnJvci5vdXRQ
dHIoKSk7CisgICAgZ3NzaXplIGJ5dGVzUmVhZCA9IGdfaW5wdXRfc3RyZWFtX3JlYWRfZmluaXNo
KGQtPm1faW5wdXRTdHJlYW0sIHJlcywgJmVycm9yKTsKICAgICBpZiAoZXJyb3IpIHsKLSAgICAg
ICAgU291cFVSSSogdXJpID0gd2Via2l0X3NvdXBfcmVxdWVzdF9nZXRfdXJpKGQtPm1fc291cFJl
cXVlc3QuZ2V0KCkpOwotICAgICAgICBHT3duUHRyPGNoYXI+IHVyaVN0cihzb3VwX3VyaV90b19z
dHJpbmcodXJpLCBmYWxzZSkpOwotICAgICAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3Io
Z19xdWFya190b19zdHJpbmcoR19JT19FUlJPUiksIGVycm9yLT5jb2RlLCB1cmlTdHIuZ2V0KCks
CisgICAgICAgIGNoYXIqIHVyaSA9IGdfZmlsZV9nZXRfdXJpKGQtPm1fZ2ZpbGUpOworICAgICAg
ICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoZ19xdWFya190b19zdHJpbmcoR19JT19FUlJP
UiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci0+Y29kZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVyaSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVycm9yID8gU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2Fn
ZSkgOiBTdHJpbmcoKSk7Ci0gICAgICAgIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlvbihoYW5k
bGUuZ2V0KCkpOworICAgICAgICBnX2ZyZWUodXJpKTsKKyAgICAgICAgZ19lcnJvcl9mcmVlKGVy
cm9yKTsKKyAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUuZ2V0KCkpOwogICAgICAg
ICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLmdldCgpLCByZXNvdXJjZUVycm9yKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIGlmICghYnl0ZXNSZWFkKSB7Ci0gICAgICAgIGdfaW5wdXRf
c3RyZWFtX2Nsb3NlX2FzeW5jKGQtPm1faW5wdXRTdHJlYW0uZ2V0KCksIEdfUFJJT1JJVFlfREVG
QVVMVCwKKyAgICAgICAgZ19pbnB1dF9zdHJlYW1fY2xvc2VfYXN5bmMoZC0+bV9pbnB1dFN0cmVh
bSwgR19QUklPUklUWV9ERUZBVUxULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLCBjbG9zZUNhbGxiYWNrLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGQt
Pm1fdG90YWwgKz0gYnl0ZXNSZWFkOwotICAgIGlmIChHX0xJS0VMWSghY29udmVydFRvVVRGMTYp
KQotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZS5nZXQoKSwgZC0+bV9idWZm
ZXIsIGJ5dGVzUmVhZCwgZC0+bV90b3RhbCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8vIFdlIGhh
dmUgdG8gY29udmVydCBpdCB0byBVVEYtMTYgZHVlIHRvIGxpbWl0YXRpb25zIGluIEtVUkwKLSAg
ICAgICAgU3RyaW5nIGRhdGEgPSBTdHJpbmc6OmZyb21VVEY4KGQtPm1fYnVmZmVyLCBieXRlc1Jl
YWQpOwotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZS5nZXQoKSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5jaGFyYWN0ZXJzKCkpLCBkYXRhLmxlbmd0aCgp
ICogc2l6ZW9mKFVDaGFyKSwgMCk7Ci0gICAgfQorICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEo
aGFuZGxlLmdldCgpLCBkLT5tX2J1ZmZlciwgYnl0ZXNSZWFkLCBkLT5tX3RvdGFsKTsKIAogICAg
IC8vIGRpZFJlY2VpdmVEYXRhIG1heSBjYW5jZWwgdGhlIGxvYWQsIHdoaWNoIG1heSByZWxlYXNl
IHRoZSBsYXN0IHJlZmVyZW5jZS4KKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQpIHsKKyAgICAgICAg
Y2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUuZ2V0KCkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhkLT5tX2lucHV0U3RyZWFtLCBkLT5t
X2J1ZmZlciwgZC0+bV9idWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R19QUklPUklUWV9ERUZBVUxULCBkLT5tX2NhbmNlbGxhYmxlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVhZENhbGxiYWNrLCAwKTsKK30KKworc3RhdGljIHZvaWQgb3BlbkNhbGxi
YWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyKQoreworICAg
IFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5k
bGUqPihnX29iamVjdF9nZXRfZGF0YShzb3VyY2UsICJ3ZWJraXQtcmVzb3VyY2UiKSk7CisgICAg
aWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybjsKKworICAgIFJlc291cmNlSGFuZGxlSW50ZXJu
YWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQq
IGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7CisKICAgICBpZiAoZC0+bV9jYW5jZWxsZWQgfHwg
IWNsaWVudCkgewotICAgICAgICBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24oaGFuZGxlLmdl
dCgpKTsKKyAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUuZ2V0KCkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgR0Vycm9yKiBlcnJvciA9IDA7CisgICAgR0ZpbGVJbnB1
dFN0cmVhbSogaW4gPSBnX2ZpbGVfcmVhZF9maW5pc2goR19GSUxFKHNvdXJjZSksIHJlcywgJmVy
cm9yKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgY2hhciogdXJpID0gZ19maWxlX2dldF91
cmkoZC0+bV9nZmlsZSk7CisgICAgICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihnX3F1
YXJrX3RvX3N0cmluZyhHX0lPX0VSUk9SKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVycm9yLT5jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dXJpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPyBTdHJpbmc6
OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSA6IFN0cmluZygpKTsKKyAgICAgICAgZ19mcmVlKHVy
aSk7CisgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CisgICAgICAgIGNsZWFudXBHaW9PcGVy
YXRpb24oaGFuZGxlLmdldCgpKTsKKyAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZS5nZXQo
KSwgcmVzb3VyY2VFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBnX2lucHV0
X3N0cmVhbV9yZWFkX2FzeW5jKGQtPm1faW5wdXRTdHJlYW0uZ2V0KCksIGQtPm1fYnVmZmVyLCBS
RUFEX0JVRkZFUl9TSVpFLCBHX1BSSU9SSVRZX0RFRkFVTFQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkLT5tX2NhbmNlbGxhYmxlLmdldCgpLCByZWFkQ2FsbGJhY2ssIGRhdGEpOwor
ICAgIGQtPm1faW5wdXRTdHJlYW0gPSBHX0lOUFVUX1NUUkVBTShpbik7CisgICAgZC0+bV9idWZm
ZXJTaXplID0gODE5MjsKKyAgICBkLT5tX2J1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihnX21h
bGxvYyhkLT5tX2J1ZmZlclNpemUpKTsKKyAgICBkLT5tX3RvdGFsID0gMDsKKworICAgIGdfb2Jq
ZWN0X3NldF9kYXRhKEdfT0JKRUNUKGQtPm1faW5wdXRTdHJlYW0pLCAid2Via2l0LXJlc291cmNl
IiwgaGFuZGxlLmdldCgpKTsKKyAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKGQtPm1faW5w
dXRTdHJlYW0sIGQtPm1fYnVmZmVyLCBkLT5tX2J1ZmZlclNpemUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHX1BSSU9SSVRZX0RFRkFVTFQsIGQtPm1fY2FuY2VsbGFibGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkQ2FsbGJhY2ssIDApOwogfQogCitzdGF0aWMg
dm9pZCBxdWVyeUluZm9DYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVz
LCBncG9pbnRlcikKK3sKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IHN0YXRp
Y19jYXN0PFJlc291cmNlSGFuZGxlKj4oZ19vYmplY3RfZ2V0X2RhdGEoc291cmNlLCAid2Via2l0
LXJlc291cmNlIikpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm47CisKKyAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOworICAgIFJl
c291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOworCisgICAgaWYg
KGQtPm1fY2FuY2VsbGVkKSB7CisgICAgICAgIGNsZWFudXBHaW9PcGVyYXRpb24oaGFuZGxlLmdl
dCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2U7CisKKyAgICBjaGFyKiB1cmkgPSBnX2ZpbGVfZ2V0X3VyaShkLT5tX2dmaWxlKTsKKyAg
ICByZXNwb25zZS5zZXRVUkwoS1VSTChLVVJMKCksIHVyaSkpOworICAgIGdfZnJlZSh1cmkpOwor
CisgICAgR0Vycm9yKiBlcnJvciA9IDA7CisgICAgR0ZpbGVJbmZvKiBpbmZvID0gZ19maWxlX3F1
ZXJ5X2luZm9fZmluaXNoKGQtPm1fZ2ZpbGUsIHJlcywgJmVycm9yKTsKKworICAgIGlmIChlcnJv
cikgeworICAgICAgICAvLyBGSVhNRTogdG8gYmUgYWJsZSB0byBoYW5kbGUgZnRwIFVSSXMgcHJv
cGVybHksIHdlIG11c3QKKyAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGVycm9yIGlzIEdfSU9fRVJS
T1JfTk9UX01PVU5URUQsIGFuZCBpZiBzbywKKyAgICAgICAgLy8gY2FsbCBnX2ZpbGVfbW91bnRf
ZW5jbG9zaW5nX3ZvbHVtZSgpIHRvIG1vdW50IHRoZSBmdHAKKyAgICAgICAgLy8gc2VydmVyIChh
bmQgdGhlbiBrZWVwIHRyYWNrIG9mIHRoZSBmYWN0IHRoYXQgd2UgbW91bnRlZCBpdCwKKyAgICAg
ICAgLy8gYW5kIHNldCBhIHRpbWVvdXQgdG8gdW5tb3VudCBpdCBsYXRlciBhZnRlciBpdCdzIGJl
ZW4gaWRsZQorICAgICAgICAvLyBmb3IgYSB3aGlsZSkuCisgICAgICAgIGNoYXIqIHVyaSA9IGdf
ZmlsZV9nZXRfdXJpKGQtPm1fZ2ZpbGUpOworICAgICAgICBSZXNvdXJjZUVycm9yIHJlc291cmNl
RXJyb3IoZ19xdWFya190b19zdHJpbmcoR19JT19FUlJPUiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlcnJvci0+Y29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVyaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9y
ID8gU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkgOiBTdHJpbmcoKSk7CisgICAgICAg
IGdfZnJlZSh1cmkpOworICAgICAgICBnX2Vycm9yX2ZyZWUoZXJyb3IpOworICAgICAgICBjbGVh
bnVwR2lvT3BlcmF0aW9uKGhhbmRsZS5nZXQoKSk7CisgICAgICAgIGNsaWVudC0+ZGlkRmFpbCho
YW5kbGUuZ2V0KCksIHJlc291cmNlRXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGdfZmlsZV9pbmZvX2dldF9maWxlX3R5cGUoaW5mbykgIT0gR19GSUxFX1RZUEVfUkVH
VUxBUikgeworICAgICAgICAvLyBGSVhNRTogd2hhdCBpZiB0aGUgVVJJIHBvaW50cyB0byBhIGRp
cmVjdG9yeT8gU2hvdWxkIHdlCisgICAgICAgIC8vIGdlbmVyYXRlIGEgbGlzdGluZz8gSG93PyBX
aGF0IGRvIG90aGVyIGJhY2tlbmRzIGRvIGhlcmU/CisgICAgICAgIGNoYXIqIHVyaSA9IGdfZmls
ZV9nZXRfdXJpKGQtPm1fZ2ZpbGUpOworICAgICAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJy
b3IoZ19xdWFya190b19zdHJpbmcoR19JT19FUlJPUiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHX0lPX0VSUk9SX0ZBSUxFRCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVyaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0
cmluZygpKTsKKyAgICAgICAgZ19mcmVlKHVyaSk7CisgICAgICAgIGNsZWFudXBHaW9PcGVyYXRp
b24oaGFuZGxlLmdldCgpKTsKKyAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZS5nZXQoKSwg
cmVzb3VyY2VFcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBBY2NvcmRp
bmcgdG8gaHR0cDovL2xpYnJhcnkuZ25vbWUub3JnL2RldmVsL2dpby9zdGFibGUvZ2lvLUdDb250
ZW50VHlwZS5odG1sCisgICAgLy8gR0NvbnRlbnRUeXBlIG9uIFVuaXggaXMgdGhlIG1pbWUgdHlw
ZSwgYnV0IG5vdCBvbiBXaW4zMi4KKyAgICBHT3duUHRyPGdjaGFyPiBtaW1lVHlwZShnX2NvbnRl
bnRfdHlwZV9nZXRfbWltZV90eXBlKGdfZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykp
KTsKKyAgICByZXNwb25zZS5zZXRNaW1lVHlwZShtaW1lVHlwZS5nZXQoKSk7CisgICAgcmVzcG9u
c2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKGdfZmlsZV9pbmZvX2dldF9zaXplKGluZm8pKTsK
KworICAgIEdUaW1lVmFsIHR2OworICAgIGdfZmlsZV9pbmZvX2dldF9tb2RpZmljYXRpb25fdGlt
ZShpbmZvLCAmdHYpOworICAgIHJlc3BvbnNlLnNldExhc3RNb2RpZmllZERhdGUodHYudHZfc2Vj
KTsKKworICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZS5nZXQoKSwgcmVzcG9u
c2UpOworCisgICAgaWYgKGQtPm1fY2FuY2VsbGVkKSB7CisgICAgICAgIGNsZWFudXBHaW9PcGVy
YXRpb24oaGFuZGxlLmdldCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGdfZmls
ZV9yZWFkX2FzeW5jKGQtPm1fZ2ZpbGUsIEdfUFJJT1JJVFlfREVGQVVMVCwgZC0+bV9jYW5jZWxs
YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICBvcGVuQ2FsbGJhY2ssIDApOworfQogc3RhdGlj
IGJvb2wgc3RhcnRHaW8oUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgS1VSTCB1cmwpCiB7CiAgICAg
QVNTRVJUKGhhbmRsZSk7CiAKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxl
LT5nZXRJbnRlcm5hbCgpOworCiAgICAgaWYgKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuaHR0cE1l
dGhvZCgpICE9ICJHRVQiICYmIGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpICE9
ICJQT1NUIikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU291cFNlc3Npb24qIHNlc3Np
b24gPSBoYW5kbGUtPmRlZmF1bHRTZXNzaW9uKCk7Ci0gICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLQogICAgIC8vIEdJTyBkb2Vzbid0IGtub3cg
aG93IHRvIGhhbmRsZSByZWZzIGFuZCBxdWVyaWVzLCBzbyByZW1vdmUgdGhlbQogICAgIC8vIFRP
RE86IHVzZSBLVVJMLmZpbGVTeXN0ZW1QYXRoIGFmdGVyIEtVUkxHdGsgYW5kIEZpbGVTeXN0ZW1H
dGsgYXJlCiAgICAgLy8gdXNpbmcgR0lPIGludGVybmFsbHksIGFuZCBwcm92aWRpbmcgVVJJcyBp
bnN0ZWFkIG9mIGZpbGUgcGF0aHMKICAgICB1cmwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7
CiAgICAgdXJsLnNldFF1ZXJ5KFN0cmluZygpKTsKICAgICB1cmwucmVtb3ZlUG9ydCgpOwotICAg
IENTdHJpbmcgdXJsU3RyID0gdXJsLnN0cmluZygpLnV0ZjgoKTsKLQotICAgIEdPd25QdHI8R0Vy
cm9yPiBlcnJvcjsKLSAgICBkLT5tX3NvdXBSZXF1ZXN0ID0gYWRvcHRQbGF0Zm9ybVJlZih3ZWJr
aXRfc291cF9yZXF1ZXN0ZXJfcmVxdWVzdChkLT5tX3JlcXVlc3Rlci5nZXQoKSwgdXJsU3RyLmRh
dGEoKSwgc2Vzc2lvbiwgJmVycm9yLm91dFB0cigpKSk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAg
ICAgIGQtPm1fc291cFJlcXVlc3QgPSAwOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQog
Ci0gICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSks
ICJ3ZWJraXQtcmVzb3VyY2UiLCBoYW5kbGUpOworI2lmICFPUyhXSU5ET1dTKQorICAgIC8vIHdl
IGF2b2lkIHRoZSBlc2NhcGluZyBmb3IgbG9jYWwgZmlsZXMsIGJlY2F1c2UKKyAgICAvLyBnX2Zp
bGVuYW1lX2Zyb21fdXJpICh1c2VkIGludGVybmFsbHkgYnkgR0ZpbGUpIGhhcyBwcm9ibGVtcwor
ICAgIC8vIGRlY29kaW5nIHN0cmluZ3Mgd2l0aCBhcmJpdHJhcnkgcGVyY2VudCBzaWducworICAg
IGlmICh1cmwuaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgZC0+bV9nZmlsZSA9IGdfZmlsZV9uZXdf
Zm9yX3BhdGgodXJsLnByZXR0eVVSTCgpLnV0ZjgoKS5kYXRhKCkgKyBzaXplb2YoImZpbGU6Ly8i
KSAtIDEpOworICAgIGVsc2UKKyNlbmRpZgorICAgICAgICBkLT5tX2dmaWxlID0gZ19maWxlX25l
d19mb3JfdXJpKHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBnX29iamVjdF9zZXRf
ZGF0YShHX09CSkVDVChkLT5tX2dmaWxlKSwgIndlYmtpdC1yZXNvdXJjZSIsIGhhbmRsZSk7CiAK
LSAgICAvLyBiYWxhbmNlZCBieSBhIGRlcmVmKCkgaW4gY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0
aW9uLCB3aGljaCBzaG91bGQgYWx3YXlzIHJ1bgorICAgIC8vIGJhbGFuY2VkIGJ5IGEgZGVyZWYo
KSBpbiBjbGVhbnVwR2lvT3BlcmF0aW9uLCB3aGljaCBzaG91bGQgYWx3YXlzIHJ1bgogICAgIGhh
bmRsZS0+cmVmKCk7CiAKLSAgICBkLT5tX2NhbmNlbGxhYmxlID0gYWRvcHRQbGF0Zm9ybVJlZihn
X2NhbmNlbGxhYmxlX25ldygpKTsKLSAgICB3ZWJraXRfc291cF9yZXF1ZXN0X3NlbmRfYXN5bmMo
ZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSwgc2VuZFJlcXVl
c3RDYWxsYmFjaywgMCk7Ci0KKyAgICBkLT5tX2NhbmNlbGxhYmxlID0gZ19jYW5jZWxsYWJsZV9u
ZXcoKTsKKyAgICBnX2ZpbGVfcXVlcnlfaW5mb19hc3luYyhkLT5tX2dmaWxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfVFlQRSAiLCIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX0NPTlRF
TlRfVFlQRSAiLCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRF
X1NUQU5EQVJEX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19GSUxFX1FVRVJZ
X0lORk9fTk9ORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BSSU9SSVRZX0RFRkFV
TFQsIGQtPm1fY2FuY2VsbGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlJ
bmZvQ2FsbGJhY2ssIDApOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCmluZGV4IDg3OWE0N2ZlODllODgx
OGYxMjI4ZjdkOTg3NmY3Njg2NjE1MTNjZWUuLmMyYzQ0MTk1OWE0ZGI0MzA3ZTFjZjA2ZWZlNzc1
NmM2Y2YyM2YzYjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlUmVxdWVzdC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlUmVxdWVzdC5oCkBAIC02Nyw5ICs2Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgICAgIHVwZGF0ZUZyb21Tb3VwTWVzc2FnZShzb3VwTWVzc2FnZSk7CiAgICAgICAgIH0KIAot
ICAgICAgICB2b2lkIHVwZGF0ZVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKikgY29uc3Q7CiAgICAg
ICAgIFNvdXBNZXNzYWdlKiB0b1NvdXBNZXNzYWdlKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgdXBk
YXRlRnJvbVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKik7CisgICAgICAgIHZvaWQgdXBkYXRlRnJv
bVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSk7CiAKICAgICAgICAgU291cE1l
c3NhZ2VGbGFncyBzb3VwTWVzc2FnZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9zb3VwRmxhZ3M7
IH0KICAgICAgICAgdm9pZCBzZXRTb3VwTWVzc2FnZUZsYWdzKFNvdXBNZXNzYWdlRmxhZ3Mgc291
cEZsYWdzKSB7IG1fc291cEZsYWdzID0gc291cEZsYWdzOyB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4IDM4MGZj
ODRhZTRkMDI4YzQ2NjVjYWRlNDg4NDc1Y2Y0Y2M1YjY4NGEuLjYyZGViMDE3NmQ0NjJhMjhjM2Ux
YzhmMzNhYzA4OWJkNTU1MzAyNjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCkBAIC0zMywyOSArMzMsNiBAQCB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgUmVzb3VyY2VS
ZXF1ZXN0Ojp1cGRhdGVTb3VwTWVzc2FnZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UpIGNvbnN0
Ci17Ci0gICAgZ19vYmplY3Rfc2V0KHNvdXBNZXNzYWdlLCBTT1VQX01FU1NBR0VfTUVUSE9ELCBo
dHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSwgTlVMTCk7Ci0KLSAgICBjb25zdCBIVFRQSGVhZGVy
TWFwJiBoZWFkZXJzID0gaHR0cEhlYWRlckZpZWxkcygpOwotICAgIFNvdXBNZXNzYWdlSGVhZGVy
cyogc291cEhlYWRlcnMgPSBzb3VwTWVzc2FnZS0+cmVxdWVzdF9oZWFkZXJzOwotICAgIGlmICgh
aGVhZGVycy5pc0VtcHR5KCkpIHsKLSAgICAgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0
b3IgZW5kID0gaGVhZGVycy5lbmQoKTsKLSAgICAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpjb25z
dF9pdGVyYXRvciBpdCA9IGhlYWRlcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAg
ICAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5kKHNvdXBIZWFkZXJzLCBpdC0+Zmlyc3Qu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgaXQtPnNlY29uZC51dGY4KCkuZGF0YSgpKTsKLSAgICB9
Ci0KLSNpZmRlZiBIQVZFX0xJQlNPVVBfMl8yOV85MAotICAgIFN0cmluZyBmaXJzdFBhcnR5U3Ry
aW5nID0gZmlyc3RQYXJ0eUZvckNvb2tpZXMoKS5zdHJpbmcoKTsKLSAgICBpZiAoIWZpcnN0UGFy
dHlTdHJpbmcuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEdPd25QdHI8U291cFVSST4gZmlyc3RQYXJ0
eShzb3VwX3VyaV9uZXcoZmlyc3RQYXJ0eVN0cmluZy51dGY4KCkuZGF0YSgpKSk7Ci0gICAgICAg
IHNvdXBfbWVzc2FnZV9zZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UsIGZpcnN0UGFydHkuZ2V0
KCkpOwotICAgIH0KLSNlbmRpZgotCi0gICAgc291cF9tZXNzYWdlX3NldF9mbGFncyhzb3VwTWVz
c2FnZSwgbV9zb3VwRmxhZ3MpOwotfQotCiBTb3VwTWVzc2FnZSogUmVzb3VyY2VSZXF1ZXN0Ojp0
b1NvdXBNZXNzYWdlKCkgY29uc3QKIHsKICAgICBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UgPSBz
b3VwX21lc3NhZ2VfbmV3KGh0dHBNZXRob2QoKS51dGY4KCkuZGF0YSgpLCB1cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggN2FkY2QwMDU3NTAxMWY2ZWRmZTI4ZjI0NmJiZTg2NDli
MjEwZmMyMi4uMzRkM2U3YmE5Y2MxNTYwNmExZDhiYmNlOTc5ZTUyMjBlODdkOTAyNCAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMC0xMC0xMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY5NTg5Lgor
ICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82OTU4OQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc1NDcKKworICAgICAgICBX
cm9uZyBwYXRjaCBsYW5kZWQgZnJvbSBhIGJ1ZyB3aXRoIHR3byBwYXRjaGVzIChSZXF1ZXN0ZWQg
YnkKKyAgICAgICAgbXJvYmluc29uIG9uICN3ZWJraXQpLgorCisgICAgICAgICogd2Via2l0L3dl
YmtpdGRvd25sb2FkLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9uZXdfd2l0aF9oYW5k
bGUpOgorICAgICAgICAod2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKKwogMjAxMC0xMC0xMiAgU2Vy
Z2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRkb3dubG9hZC5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKaW5k
ZXggMThiNjRhYjJmZjBiNWY2ODc3Y2M4MTBjYWEyM2U4Yjk3ZTliODNhYS4uMTQ3MmNiNWIyM2Ez
NTI4Zjk4NmViNWRjMDllNGJmMjIwMWUwYmRhMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZG93bmxvYWQuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25s
b2FkLmNwcApAQCAtNDE5LDggKzQxOSw4IEBAIFdlYktpdERvd25sb2FkKiB3ZWJraXRfZG93bmxv
YWRfbmV3X3dpdGhfaGFuZGxlKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBXCiAgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwocmVxdWVzdCwgTlVMTCk7CiAKICAgICBSZXNvdXJjZUhhbmRs
ZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGlmIChkLT5tX3NvdXBN
ZXNzYWdlKQotICAgICAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZSh3ZWJraXRfZ2V0X2Rl
ZmF1bHRfc2Vzc2lvbigpLCBkLT5tX3NvdXBNZXNzYWdlLmdldCgpKTsKKyAgICBpZiAoZC0+bV9t
c2cpCisgICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKHdlYmtpdF9nZXRfZGVmYXVs
dF9zZXNzaW9uKCksIGQtPm1fbXNnKTsKIAogICAgIFdlYktpdERvd25sb2FkKiBkb3dubG9hZCA9
IFdFQktJVF9ET1dOTE9BRChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfRE9XTkxPQUQsICJuZXR3
b3JrLXJlcXVlc3QiLCByZXF1ZXN0LCBOVUxMKSk7CiAgICAgV2ViS2l0RG93bmxvYWRQcml2YXRl
KiBwcml2ID0gZG93bmxvYWQtPnByaXY7CkBAIC00OTIsOCArNDkyLDggQEAgdm9pZCB3ZWJraXRf
ZG93bmxvYWRfc3RhcnQoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkKQogICAgICAgICBwcml2LT5y
ZXNvdXJjZUhhbmRsZS0+c2V0Q2xpZW50KHByaXYtPmRvd25sb2FkQ2xpZW50KTsKIAogICAgICAg
ICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gcHJpdi0+cmVzb3VyY2VIYW5kbGUtPmdldElu
dGVybmFsKCk7Ci0gICAgICAgIGlmIChkLT5tX3NvdXBNZXNzYWdlKQotICAgICAgICAgICAgc291
cF9zZXNzaW9uX3VucGF1c2VfbWVzc2FnZSh3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbigpLCBk
LT5tX3NvdXBNZXNzYWdlLmdldCgpKTsKKyAgICAgICAgaWYgKGQtPm1fbXNnKQorICAgICAgICAg
ICAgc291cF9zZXNzaW9uX3VucGF1c2VfbWVzc2FnZSh3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lv
bigpLCBkLT5tX21zZyk7CiAgICAgfQogCiAgICAgcHJpdi0+dGltZXIgPSBnX3RpbWVyX25ldygp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>