<?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>169475</bug_id>
          
          <creation_ts>2017-03-10 10:02:47 -0800</creation_ts>
          <short_desc>REGRESSION(r213618): Suspect this is the cause of a large memory regression (Requested by jonlee_ on #webkit).</short_desc>
          <delta_ts>2017-03-10 10:05:53 -0800</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>165039</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1285834</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 10:02:47 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/213618 broke the build:
Suspect this is the cause of a large memory regression (Requested by jonlee_ on #webkit).

This is an automatic bug report generated by webkitbot. 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 fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285836</commentid>
    <comment_count>1</comment_count>
      <attachid>304049</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 10:03:10 -0800</bug_when>
    <thetext>Created attachment 304049
ROLLOUT of r213618

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

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285837</commentid>
    <comment_count>2</comment_count>
      <attachid>304049</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 10:05:50 -0800</bug_when>
    <thetext>Comment on attachment 304049
ROLLOUT of r213618

Clearing flags on attachment: 304049

Committed r213715: &lt;http://trac.webkit.org/changeset/213715&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285838</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 10:05:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304049</attachid>
            <date>2017-03-10 10:03:10 -0800</date>
            <delta_ts>2017-03-10 10:05:50 -0800</delta_ts>
            <desc>ROLLOUT of r213618</desc>
            <filename>bug-169475-20170310130310.patch</filename>
            <type>text/plain</type>
            <size>41959</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVlNjBmNDQ0YjBmNDg0
YmRkYzU3NGUyM2IxOGJmNmJhYTA3NDBmYi4uMTRkZWRjNmMxNjNhMWY2YzEwM2I2OGI3YmIxOGVh
YjAxOGE1ZDg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTAzLTEwICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjEzNjE4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY5NDc1CisKKyAgICAgICAgU3VzcGVjdCB0aGlzIGlzIHRoZSBjYXVz
ZSBvZiBhIGxhcmdlIG1lbW9yeSByZWdyZXNzaW9uCisgICAgICAgIChSZXF1ZXN0ZWQgYnkgam9u
bGVlXyBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAg
ICAgIkVuYWJsZSBhc3luYyBpbWFnZSBkZWNvZGluZyBmb3IgbGFyZ2UgaW1hZ2VzIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MDM5CisgICAgICAg
IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIxMzYxOAorCiAyMDE3LTAzLTEwICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyB0aGUgcGFn
ZSB0byByZW5kZXIgYmVmb3JlIDxsaW5rPiBzdHlsZXNoZWV0IHRhZ3MgaW4gYm9keQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IGJjZDQ1ZDg2YWUzZWI5YWJlMzUzZDMyOWM2ZDg3MDE1NDUzNWFiMDkuLmQyMTI4M2U2
OWE0Zjg0ODk0MDhhYjAzOTcyNDFjNTQ0YWJjNzdjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxNy0wMy0xMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIxMzYxOC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTQ3NQorCisgICAgICAgIFN1
c3BlY3QgdGhpcyBpcyB0aGUgY2F1c2Ugb2YgYSBsYXJnZSBtZW1vcnkgcmVncmVzc2lvbgorICAg
ICAgICAoUmVxdWVzdGVkIGJ5IGpvbmxlZV8gb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0
ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJFbmFibGUgYXN5bmMgaW1hZ2UgZGVjb2RpbmcgZm9y
IGxhcmdlIGltYWdlcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NTAzOQorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8y
MTM2MTgKKwogMjAxNy0wMy0xMCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW1dLMl0gR3VhcmQgR0xpYi1zcGVjaWZpYyB0eXBlZGVmcyBpbiBJbmplY3Rl
ZEJ1bmRsZS5oIHdpdGggVVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcAppbmRleCA0MDE4NmVmMTRmZTcwOTU2OTliZjc0OGMzZTFhYWVlMzY5NDU4ZDJkLi45
NDg2OWNmNTQzYTYzOTRmNzQzYWRjMDdkOTQ1M2MxMDk1ZTM0YTM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTI4OSwxNiArMjg5LDYgQEAgdm9pZCBIVE1M
SW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQogICAgIC8vIGltYWdlIGhlaWdodCBh
bmQgd2lkdGggZm9yIHRoZSBhbHQgdGV4dCBpbnN0ZWFkLgogICAgIGlmICghbV9pbWFnZUxvYWRl
ci5pbWFnZSgpICYmICFyZW5kZXJJbWFnZVJlc291cmNlLmNhY2hlZEltYWdlKCkpCiAgICAgICAg
IHJlbmRlckltYWdlLnNldEltYWdlU2l6ZUZvckFsdFRleHQoKTsKLSAgICAKLSAgICByZW5kZXJJ
bWFnZS5yZWdpc3RlckZvckFzeW5jSW1hZ2VEZWNvZGluZ0NhbGxiYWNrKCk7Ci19Ci0gICAgCi12
b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQotewotICAgIGlmICgh
aXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKCkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICByZW5k
ZXJlcigpLT51bnJlZ2lzdGVyRm9yQXN5bmNJbWFnZURlY29kaW5nQ2FsbGJhY2soKTsKIH0KIAog
Tm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MSW1hZ2VFbGVtZW50OjppbnNl
cnRlZEludG8oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5oCmluZGV4IDQ0OTZhN2IyNjE3ODJlNzA2MGYxYWQwODIzN2I1Y2M0
MGQ5ZDNhZmEuLmNkMmU1ZTc2MzU1NTE4Yjc3N2Y2MTU1MWRmNzI1Y2I3ODE1MmM3ZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xMDUsNyArMTA1LDYgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVy
dGllcyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHdpbGxEZXRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKICAgICBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0QmVzdEZpdFVS
TEFuZERQUkZyb21JbWFnZUNhbmRpZGF0ZShjb25zdCBJbWFnZUNhbmRpZGF0ZSYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZTdlNGUyNWIxZTk1YWQ2NzE5MWU3Mjc2NDE4YTFi
MGExY2JkNTc3NS4uZWEyYjhiZTAwYTM4MWJhNzk3YjlhN2M5ZTNmNmQ5NTA0ZDVjZjAyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMTA1OCwxMCArMTA1OCw2IEBAIGJvb2wgRnJh
bWVWaWV3OjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJhbWUoY29uc3QgRnJhbWUmIHJv
b3RGcmFtZUZvckZsdXNoCiAjZW5kaWYKIAogICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5m
bHVzaFBlbmRpbmdMYXllckNoYW5nZXMoJnJvb3RGcmFtZUZvckZsdXNoID09IG1fZnJhbWUucHRy
KCkpOwotICAgIAotICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRp
bGVkQmFja2luZygpKQotICAgICAgICByZXF1ZXN0QXN5bmNEZWNvZGluZ0ZvckltYWdlc0luQWJz
b2x1dGVSZWN0SW5jbHVkaW5nU3ViZnJhbWVzKHRpbGVkQmFja2luZy0+dGlsZUNvdmVyYWdlUmVj
dCgpKTsKLSAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjUzMSwxOSArMjUyNyw2IEBA
IHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQoY29uc3QgU2Nyb2xsUG9zaXRp
b24mIG9sZFBvc2l0aW9uLCBjb25zdCBTCiAgICAgdXBkYXRlTGF5b3V0Vmlld3BvcnQoKTsKICAg
ICB2aWV3cG9ydENvbnRlbnRzQ2hhbmdlZCgpOwogfQotICAgIAotdm9pZCBGcmFtZVZpZXc6OmFw
cGx5UmVjdXJzaXZlbHlXaXRoQWJzb2x1dGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0
IHN0ZDo6ZnVuY3Rpb248dm9pZChGcmFtZVZpZXcmLCBjb25zdCBJbnRSZWN0Jik+JiBhcHBseSkK
LXsKLSAgICBhcHBseSgqdGhpcywgcmVjdCk7Ci0KLSAgICAvLyBSZWN1cnNpdmUgY2FsbCBmb3Ig
c3ViZnJhbWVzLiBXZSBjYWNoZSB0aGUgY3VycmVudCBGcmFtZVZpZXcncyB3aW5kb3dDbGlwUmVj
dCB0byBhdm9pZCByZWNvbXB1dGluZyBpdCBmb3IgZXZlcnkgc3ViZnJhbWUuCi0gICAgSW50UmVj
dCB3aW5kb3dDbGlwUmVjdCA9IGNvbnRlbnRzVG9XaW5kb3cocmVjdCk7Ci0gICAgU2V0Rm9yU2Nv
cGU8SW50UmVjdCo+IHdpbmRvd0NsaXBSZWN0Q2FjaGUobV9jYWNoZWRXaW5kb3dDbGlwUmVjdCwg
JndpbmRvd0NsaXBSZWN0KTsKLSAgICBmb3IgKEZyYW1lKiBjaGlsZEZyYW1lID0gZnJhbWUoKS50
cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZEZyYW1lOyBjaGlsZEZyYW1lID0gY2hpbGRGcmFtZS0+
dHJlZSgpLm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIGNoaWxkVmlldyA9IGNo
aWxkRnJhbWUtPnZpZXcoKSkKLSAgICAgICAgICAgIGNoaWxkVmlldy0+YXBwbHlSZWN1cnNpdmVs
eVdpdGhBYnNvbHV0ZVJlY3QocmVjdCwgYXBwbHkpOwotICAgIH0KLX0KIAogdm9pZCBGcmFtZVZp
ZXc6OmFwcGx5UmVjdXJzaXZlbHlXaXRoVmlzaWJsZVJlY3QoY29uc3Qgc3RkOjpmdW5jdGlvbjx2
b2lkIChGcmFtZVZpZXcmIGZyYW1lVmlldywgY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpPiYg
YXBwbHkpCiB7CkBAIC0yNTk4LDMwICsyNTgxLDYgQEAgdm9pZCBGcmFtZVZpZXc6OnJlc3VtZVZp
c2libGVJbWFnZUFuaW1hdGlvbnNJbmNsdWRpbmdTdWJmcmFtZXMoKQogICAgIH0pOwogfQogCi12
b2lkIEZyYW1lVmlldzo6cmVxdWVzdEFzeW5jRGVjb2RpbmdGb3JJbWFnZXNJbkFic29sdXRlUmVj
dChjb25zdCBJbnRSZWN0JiByZWN0KQotewotICAgIGlmICghZnJhbWUoKS52aWV3KCkpIHsKLSAg
ICAgICAgLy8gVGhlIGZyYW1lIGlzIGJlaW5nIGRlc3Ryb3llZC4KLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aWYgKGF1dG8qIHJlbmRlclZpZXcgPSBmcmFtZSgpLmNvbnRlbnRSZW5kZXJlcigpKQotICAgICAg
ICByZW5kZXJWaWV3LT5yZXF1ZXN0QXN5bmNEZWNvZGluZ0ZvckltYWdlc0luQWJzb2x1dGVSZWN0
KHJlY3QpOwotfQotCi12b2lkIEZyYW1lVmlldzo6cmVxdWVzdEFzeW5jRGVjb2RpbmdGb3JJbWFn
ZXNJbkFic29sdXRlUmVjdEluY2x1ZGluZ1N1YmZyYW1lcyhjb25zdCBJbnRSZWN0JiByZWN0KQot
ewotICAgIGlmICghZnJhbWUoKS5zZXR0aW5ncygpLmxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5h
YmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhcHBseVJlY3Vyc2l2ZWx5V2l0aEFic29s
dXRlUmVjdChyZWN0LCBbXSAoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEludFJlY3QmIHJl
Y3QpIHsKLSAgICAgICAgZnJhbWVWaWV3LnJlcXVlc3RBc3luY0RlY29kaW5nRm9ySW1hZ2VzSW5B
YnNvbHV0ZVJlY3QocmVjdCk7Ci0gICAgfSk7Ci19Ci0KIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVM
YXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsaW5nKCkKIHsKICAgICAvLyBJZiB3ZSdyZSBzY3JvbGxp
bmcgYXMgYSByZXN1bHQgb2YgdXBkYXRpbmcgdGhlIHZpZXcgc2l6ZSBhZnRlciBsYXlvdXQsIHdl
J2xsIHVwZGF0ZSB3aWRnZXRzIGFuZCBsYXllciBwb3NpdGlvbnMgc29vbiBhbnl3YXkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaAppbmRleCA1MjlkZmVjYTE2MGVjZWNlMDUzY2Y4YzllMWU0NTZmNGU3
NmVhMGFjLi4yNjM2ZDRiYTMxZGI1YzkwODg2ZjhhOTMyY2E3NTkyYWRmODk3OGQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTI3NSw3ICsyNzUsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHZpZXdwb3J0Q29udGVudHNDaGFuZ2VkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXN1
bWVWaXNpYmxlSW1hZ2VBbmltYXRpb25zSW5jbHVkaW5nU3ViZnJhbWVzKCk7Ci0gICAgdm9pZCBy
ZXF1ZXN0QXN5bmNEZWNvZGluZ0ZvckltYWdlc0luQWJzb2x1dGVSZWN0SW5jbHVkaW5nU3ViZnJh
bWVzKGNvbnN0IEludFJlY3QmKTsKIAogICAgIFN0cmluZyBtZWRpYVR5cGUoKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKQEAgLTY0
NiwxMSArNjQ1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1Qb3N0TGF5b3V0VGFza3Mo
KTsKICAgICB2b2lkIGF1dG9TaXplSWZFbmFibGVkKCk7CiAKLSAgICB2b2lkIGFwcGx5UmVjdXJz
aXZlbHlXaXRoQWJzb2x1dGVSZWN0KGNvbnN0IEludFJlY3QmLCBjb25zdCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEludFJlY3QmIHJlY3QpPiYpOwogICAg
IHZvaWQgYXBwbHlSZWN1cnNpdmVseVdpdGhWaXNpYmxlUmVjdChjb25zdCBzdGQ6OmZ1bmN0aW9u
PHZvaWQgKEZyYW1lVmlldyYgZnJhbWVWaWV3LCBjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCk+
Jik7CiAgICAgdm9pZCByZXN1bWVWaXNpYmxlSW1hZ2VBbmltYXRpb25zKGNvbnN0IEludFJlY3Qm
IHZpc2libGVSZWN0KTsKICAgICB2b2lkIHVwZGF0ZVNjcmlwdGVkQW5pbWF0aW9uc0FuZFRpbWVy
c1Rocm90dGxpbmdTdGF0ZShjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCk7Ci0gICAgdm9pZCBy
ZXF1ZXN0QXN5bmNEZWNvZGluZ0ZvckltYWdlc0luQWJzb2x1dGVSZWN0KGNvbnN0IEludFJlY3Qm
KTsKIAogICAgIHZvaWQgdXBkYXRlTGF5ZXJGbHVzaFRocm90dGxpbmcoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGFkanVzdFRpbGVkQmFja2luZ0NvdmVyYWdlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggZmQ4NWVhYjMw
ODc3Y2EzMmY4OWFiZWFjNTM0MTk4ZTc2MWQwMTFiNi4uZDdkZTdmODI4NDgwMzBkZDQ4N2QyZWJh
NTI3MzQ2ZDFhY2ExZGYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNjcsMTQgKzY3LDE0IEBAIHZvaWQgQml0bWFwSW1hZ2U6
OmRlc3Ryb3lEZWNvZGVkRGF0YShib29sIGRlc3Ryb3lBbGwpCiB7CiAgICAgaWYgKCFkZXN0cm95
QWxsKQogICAgICAgICBtX3NvdXJjZS5kZXN0cm95RGVjb2RlZERhdGFCZWZvcmVGcmFtZShtX2N1
cnJlbnRGcmFtZSk7Ci0gICAgZWxzZSBpZiAobV9zb3VyY2UuaGFzQXN5bmNEZWNvZGluZ1F1ZXVl
KCkpCisgICAgZWxzZSBpZiAobV9zb3VyY2UuaGFzRGVjb2RpbmdRdWV1ZSgpKQogICAgICAgICBt
X3NvdXJjZS5kZXN0cm95QWxsRGVjb2RlZERhdGFFeGNsdWRlRnJhbWUobV9jdXJyZW50RnJhbWUp
OwogICAgIGVsc2UKICAgICAgICAgbV9zb3VyY2UuZGVzdHJveUFsbERlY29kZWREYXRhKCk7CiAK
ICAgICAvLyBUaGVyZSdzIG5vIG5lZWQgdG8gdGhyb3cgYXdheSB0aGUgZGVjb2RlciB1bmxlc3Mg
d2UncmUgZXhwbGljaXRseSBhc2tlZAogICAgIC8vIHRvIGRlc3Ryb3kgYWxsIG9mIHRoZSBmcmFt
ZXMuCi0gICAgaWYgKCFkZXN0cm95QWxsIHx8IG1fc291cmNlLmhhc0FzeW5jRGVjb2RpbmdRdWV1
ZSgpKQorICAgIGlmICghZGVzdHJveUFsbCB8fCBtX3NvdXJjZS5oYXNEZWNvZGluZ1F1ZXVlKCkp
CiAgICAgICAgIG1fc291cmNlLmNsZWFyRnJhbWVCdWZmZXJDYWNoZShtX2N1cnJlbnRGcmFtZSk7
CiAgICAgZWxzZQogICAgICAgICBtX3NvdXJjZS5jbGVhcihkYXRhKCkpOwpAQCAtMTAzLDcgKzEw
Myw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVk
KQogTmF0aXZlSW1hZ2VQdHIgQml0bWFwSW1hZ2U6OmZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBp
bmRleCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTdWJzYW1wbGluZ0xldmVsPiYgc3Vic2FtcGxpbmdM
ZXZlbCwgY29uc3Qgc3RkOjpvcHRpb25hbDxJbnRTaXplPiYgc2l6ZUZvckRyYXdpbmcsIGNvbnN0
IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCkKIHsKICAgICBpZiAoIWZyYW1lSGFzVmFs
aWROYXRpdmVJbWFnZUF0SW5kZXgoaW5kZXgsIHN1YnNhbXBsaW5nTGV2ZWwsIHNpemVGb3JEcmF3
aW5nKSkgewotICAgICAgICBMT0coSW1hZ2VzLCAiQml0bWFwSW1hZ2U6OiVzIC0gJXAgLSB1cmw6
ICVzIFtzdWJzYW1wbGluZ0xldmVsIHdhcyAlZCwgcmVzYW1wbGluZ10iLCBfX0ZVTkNUSU9OX18s
IHRoaXMsIHNvdXJjZVVSTCgpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4oZnJhbWVT
dWJzYW1wbGluZ0xldmVsQXRJbmRleChpbmRleCkpKTsKKyAgICAgICAgTE9HKEltYWdlcywgIkJp
dG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAlcyBbc3Vic2FtcGxpbmdMZXZlbCB3YXMgJWQsIHJl
c2FtcGxpbmddIiwgX19GVU5DVElPTl9fLCB0aGlzLCBzb3VyY2VVUkwoKS5jaGFyYWN0ZXJzOCgp
LCBzdGF0aWNfY2FzdDxpbnQ+KGZyYW1lU3Vic2FtcGxpbmdMZXZlbEF0SW5kZXgoaW5kZXgpKSk7
CiAgICAgICAgIGludmFsaWRhdGVQbGF0Zm9ybURhdGEoKTsKICAgICB9CiAKQEAgLTE2NCw0MSAr
MTY0LDI2IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zCiAgICAgbV9zaXplRm9yRHJhd2luZyA9
IGVuY2xvc2luZ0ludFJlY3QoZGVzdFJlY3QpLnNpemUoKTsKICAgICBTdGFydEFuaW1hdGlvblJl
c3VsdCByZXN1bHQgPSBpbnRlcm5hbFN0YXJ0QW5pbWF0aW9uKCk7CiAKLSAgICBpZiAocmVzdWx0
ID09IFN0YXJ0QW5pbWF0aW9uUmVzdWx0OjpEZWNvZGluZ0FjdGl2ZSAmJiBzaG93RGVidWdCYWNr
Z3JvdW5kKCkpIHsKLSAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0
LCBDb2xvcjo6eWVsbG93LCBvcCk7CisgICAgQ29sb3IgY29sb3I7CisgICAgaWYgKHJlc3VsdCA9
PSBTdGFydEFuaW1hdGlvblJlc3VsdDo6RGVjb2RpbmdBY3RpdmUgJiYgc2hvd0RlYnVnQmFja2dy
b3VuZCgpKQorICAgICAgICBjb2xvciA9IENvbG9yOjp5ZWxsb3c7CisgICAgZWxzZQorICAgICAg
ICBjb2xvciA9IHNpbmdsZVBpeGVsU29saWRDb2xvcigpOworCisgICAgaWYgKGNvbG9yLmlzVmFs
aWQoKSkgeworICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY29udGV4dCwgZGVzdFJlY3QsIGNv
bG9yLCBvcCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBOYXRpdmVJbWFnZVB0ciBp
bWFnZTsKLSAgICBpZiAoZnJhbWVJc0JlaW5nRGVjb2RlZEF0SW5kZXgobV9jdXJyZW50RnJhbWUs
IG1fc2l6ZUZvckRyYXdpbmcpKSB7Ci0gICAgICAgIEFTU0VSVCghY2FuQW5pbWF0ZSgpICYmICFt
X2N1cnJlbnRGcmFtZSk7Ci0gICAgICAgIG1fbmVlZHNSZXBhaW50ID0gdHJ1ZTsKLQotICAgICAg
ICBpZiAoIWZyYW1lSGFzRGVjb2RlZE5hdGl2ZUltYWdlKG1fY3VycmVudEZyYW1lKSkgewotICAg
ICAgICAgICAgaWYgKHNob3dEZWJ1Z0JhY2tncm91bmQoKSkKLSAgICAgICAgICAgICAgICBmaWxs
V2l0aFNvbGlkQ29sb3IoY29udGV4dCwgZGVzdFJlY3QsIENvbG9yOjp5ZWxsb3csIG9wKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGltYWdlID0gZnJhbWVJbWFn
ZUF0SW5kZXgobV9jdXJyZW50RnJhbWUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGZsb2F0IHNj
YWxlID0gc3Vic2FtcGxpbmdTY2FsZShjb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCk7Ci0gICAg
ICAgIG1fY3VycmVudFN1YnNhbXBsaW5nTGV2ZWwgPSBhbGxvd1N1YnNhbXBsaW5nKCkgPyBtX3Nv
dXJjZS5zdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUoc2NhbGUpIDogU3Vic2FtcGxpbmdMZXZlbDo6
RGVmYXVsdDsKLSAgICAgICAgTE9HKEltYWdlcywgIkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJs
OiAlcyBbc3Vic2FtcGxpbmdMZXZlbCA9ICVkIHNjYWxlID0gJS40Zl0iLCBfX0ZVTkNUSU9OX18s
IHRoaXMsIHNvdXJjZVVSTCgpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4obV9jdXJy
ZW50U3Vic2FtcGxpbmdMZXZlbCksIHNjYWxlKTsKLQotICAgICAgICBBU1NFUlRfSU1QTElFUyhy
ZXN1bHQgPT0gU3RhcnRBbmltYXRpb25SZXN1bHQ6OkRlY29kaW5nQWN0aXZlLCBtX3NvdXJjZS5m
cmFtZUhhc1ZhbGlkTmF0aXZlSW1hZ2VBdEluZGV4KG1fY3VycmVudEZyYW1lLCBtX2N1cnJlbnRT
dWJzYW1wbGluZ0xldmVsLCBtX3NpemVGb3JEcmF3aW5nKSk7Ci0gICAgICAgIGltYWdlID0gZnJh
bWVJbWFnZUF0SW5kZXgobV9jdXJyZW50RnJhbWUsIG1fY3VycmVudFN1YnNhbXBsaW5nTGV2ZWws
IG1fc2l6ZUZvckRyYXdpbmcsICZjb250ZXh0KTsKLSAgICB9CisgICAgZmxvYXQgc2NhbGUgPSBz
dWJzYW1wbGluZ1NjYWxlKGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0KTsKKyAgICBtX2N1cnJl
bnRTdWJzYW1wbGluZ0xldmVsID0gYWxsb3dTdWJzYW1wbGluZygpID8gbV9zb3VyY2Uuc3Vic2Ft
cGxpbmdMZXZlbEZvclNjYWxlKHNjYWxlKSA6IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQ7Cisg
ICAgTE9HKEltYWdlcywgIkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAlcyBbbV9jdXJyZW50
RnJhbWUgPSAlbGQgc3Vic2FtcGxpbmdMZXZlbCA9ICVkIHNjYWxlID0gJS40Zl0iLCBfX0ZVTkNU
SU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLmNoYXJhY3RlcnM4KCksIG1fY3VycmVudEZyYW1lLCBz
dGF0aWNfY2FzdDxpbnQ+KG1fY3VycmVudFN1YnNhbXBsaW5nTGV2ZWwpLCBzY2FsZSk7CiAKKyAg
ICBBU1NFUlRfSU1QTElFUyhyZXN1bHQgPT0gU3RhcnRBbmltYXRpb25SZXN1bHQ6OkRlY29kaW5n
QWN0aXZlLCBtX3NvdXJjZS5mcmFtZUhhc1ZhbGlkTmF0aXZlSW1hZ2VBdEluZGV4KG1fY3VycmVu
dEZyYW1lLCBtX2N1cnJlbnRTdWJzYW1wbGluZ0xldmVsLCBtX3NpemVGb3JEcmF3aW5nKSk7Cisg
ICAgYXV0byBpbWFnZSA9IGZyYW1lSW1hZ2VBdEluZGV4KG1fY3VycmVudEZyYW1lLCBtX2N1cnJl
bnRTdWJzYW1wbGluZ0xldmVsLCBtX3NpemVGb3JEcmF3aW5nLCAmY29udGV4dCk7CiAgICAgaWYg
KCFpbWFnZSkgLy8gSWYgaXQncyB0b28gZWFybHkgd2Ugd29uJ3QgaGF2ZSBhbiBpbWFnZSB5ZXQu
CiAgICAgICAgIHJldHVybjsKIAotICAgIENvbG9yIGNvbG9yID0gc2luZ2xlUGl4ZWxTb2xpZENv
bG9yKCk7Ci0gICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkgewotICAgICAgICBmaWxsV2l0aFNvbGlk
Q29sb3IoY29udGV4dCwgZGVzdFJlY3QsIGNvbG9yLCBvcCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KICAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKGRlc2NyaXB0aW9uLmltYWdl
T3JpZW50YXRpb24oKSk7CiAgICAgaWYgKGRlc2NyaXB0aW9uLnJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uKCkgPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCiAgICAgICAgIG9yaWVudGF0aW9uID0g
ZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpOwpAQCAtMjgyLDExICsyNjcs
MTEgQEAgQml0bWFwSW1hZ2U6OlN0YXJ0QW5pbWF0aW9uUmVzdWx0IEJpdG1hcEltYWdlOjppbnRl
cm5hbFN0YXJ0QW5pbWF0aW9uKCkKIAogICAgIGlmIChtX2ZyYW1lVGltZXIpCiAgICAgICAgIHJl
dHVybiBTdGFydEFuaW1hdGlvblJlc3VsdDo6VGltZXJBY3RpdmU7Ci0KKyAgICAKICAgICAvLyBE
b24ndCBzdGFydCBhIG5ldyBhbmltYXRpb24gdW50aWwgd2UgZHJhdyB0aGUgZnJhbWUgdGhhdCBp
cyBjdXJyZW50bHkgYmVpbmcgZGVjb2RlZC4KICAgICBzaXplX3QgbmV4dEZyYW1lID0gKG1fY3Vy
cmVudEZyYW1lICsgMSkgJSBmcmFtZUNvdW50KCk7CiAgICAgaWYgKGZyYW1lSXNCZWluZ0RlY29k
ZWRBdEluZGV4KG5leHRGcmFtZSwgbV9zaXplRm9yRHJhd2luZykpIHsKLSAgICAgICAgTE9HKElt
YWdlcywgIkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAlcyBbbmV4dEZyYW1lID0gJWxkIGlz
IGJlaW5nIGRlY29kZWRdIiwgX19GVU5DVElPTl9fLCB0aGlzLCBzb3VyY2VVUkwoKS51dGY4KCku
ZGF0YSgpLCBuZXh0RnJhbWUpOworICAgICAgICBMT0coSW1hZ2VzLCAiQml0bWFwSW1hZ2U6OiVz
IC0gJXAgLSB1cmw6ICVzIFtuZXh0RnJhbWUgPSAlbGQgaXMgYmVpbmcgZGVjb2RlZF0iLCBfX0ZV
TkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLmNoYXJhY3RlcnM4KCksIG5leHRGcmFtZSk7CiAg
ICAgICAgIHJldHVybiBTdGFydEFuaW1hdGlvblJlc3VsdDo6RGVjb2RpbmdBY3RpdmU7CiAgICAg
fQogCkBAIC0zMzIsOSArMzE3LDkgQEAgQml0bWFwSW1hZ2U6OlN0YXJ0QW5pbWF0aW9uUmVzdWx0
IEJpdG1hcEltYWdlOjppbnRlcm5hbFN0YXJ0QW5pbWF0aW9uKCkKIAogI2lmICFMT0dfRElTQUJM
RUQKICAgICAgICAgaWYgKGlzQXN5bmNEZWNvZGUpCi0gICAgICAgICAgICBMT0coSW1hZ2VzLCAi
Qml0bWFwSW1hZ2U6OiVzIC0gJXAgLSB1cmw6ICVzIFtyZXF1ZXN0aW5nIGFzeW5jIGRlY29kaW5n
IGZvciBuZXh0RnJhbWUgPSAlbGRdIiwgX19GVU5DVElPTl9fLCB0aGlzLCBzb3VyY2VVUkwoKS51
dGY4KCkuZGF0YSgpLCBuZXh0RnJhbWUpOworICAgICAgICAgICAgTE9HKEltYWdlcywgIkJpdG1h
cEltYWdlOjolcyAtICVwIC0gdXJsOiAlcyBbcmVxdWVzdGluZyBhc3luYyBkZWNvZGluZyBmb3Ig
bmV4dEZyYW1lID0gJWxkXSIsIF9fRlVOQ1RJT05fXywgdGhpcywgc291cmNlVVJMKCkuY2hhcmFj
dGVyczgoKSwgbmV4dEZyYW1lKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgTE9HKEltYWdl
cywgIkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAlcyBbY2FjaGVkRnJhbWVDb3VudCA9ICVs
ZCBuZXh0RnJhbWUgPSAlbGRdIiwgX19GVU5DVElPTl9fLCB0aGlzLCBzb3VyY2VVUkwoKS51dGY4
KCkuZGF0YSgpLCArK21fY2FjaGVkRnJhbWVDb3VudCwgbmV4dEZyYW1lKTsKKyAgICAgICAgICAg
IExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDogJXMgW2NhY2hlZEZyYW1l
Q291bnQgPSAlbGQgbmV4dEZyYW1lID0gJWxkXSIsIF9fRlVOQ1RJT05fXywgdGhpcywgc291cmNl
VVJMKCkuY2hhcmFjdGVyczgoKSwgKyttX2NhY2hlZEZyYW1lQ291bnQsIG5leHRGcmFtZSk7CiAj
ZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0oaXNBc3luY0RlY29kZSk7CiAjZW5kaWYKQEAgLTM2
MSw3ICszNDYsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjphZHZhbmNlQW5pbWF0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLQorICAgIAogICAgIC8vIERvbid0IGFk
dmFuY2UgdG8gbmV4dEZyYW1lIHVubGVzcyBpdHMgZGVjb2RpbmcgaGFzIGZpbmlzaGVkIG9yIHdh
cyBub3QgcmVxdWlyZWQuCiAgICAgc2l6ZV90IG5leHRGcmFtZSA9IChtX2N1cnJlbnRGcmFtZSAr
IDEpICUgZnJhbWVDb3VudCgpOwogICAgIGlmICghZnJhbWVJc0JlaW5nRGVjb2RlZEF0SW5kZXgo
bmV4dEZyYW1lLCBtX3NpemVGb3JEcmF3aW5nKSkKQEAgLTM3MCw3ICszNTUsNyBAQCB2b2lkIEJp
dG1hcEltYWdlOjphZHZhbmNlQW5pbWF0aW9uKCkKICAgICAgICAgLy8gRm9yY2UgcmVwYWludCBp
ZiBzaG93RGVidWdCYWNrZ3JvdW5kKCkgaXMgb24uCiAgICAgICAgIGlmIChzaG93RGVidWdCYWNr
Z3JvdW5kKCkpCiAgICAgICAgICAgICBpbWFnZU9ic2VydmVyKCktPmNoYW5nZWRJblJlY3QodGhp
cyk7Ci0gICAgICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDogJXMg
W2xhdGVGcmFtZUNvdW50ID0gJWxkIG5leHRGcmFtZSA9ICVsZF0iLCBfX0ZVTkNUSU9OX18sIHRo
aXMsIHNvdXJjZVVSTCgpLnV0ZjgoKS5kYXRhKCksICsrbV9sYXRlRnJhbWVDb3VudCwgbmV4dEZy
YW1lKTsKKyAgICAgICAgTE9HKEltYWdlcywgIkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAl
cyBbbGF0ZUZyYW1lQ291bnQgPSAlbGQgbmV4dEZyYW1lID0gJWxkXSIsIF9fRlVOQ1RJT05fXywg
dGhpcywgc291cmNlVVJMKCkuY2hhcmFjdGVyczgoKSwgKyttX2xhdGVGcmFtZUNvdW50LCBuZXh0
RnJhbWUpOwogICAgIH0KIH0KIApAQCAtMzg0LDcgKzM2OSw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6
OmludGVybmFsQWR2YW5jZUFuaW1hdGlvbigpCiAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAg
ICAgICAgaW1hZ2VPYnNlcnZlcigpLT5hbmltYXRpb25BZHZhbmNlZCh0aGlzKTsKIAotICAgIExP
RyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDogJXMgW21fY3VycmVudEZyYW1l
ID0gJWxkXSIsIF9fRlVOQ1RJT05fXywgdGhpcywgc291cmNlVVJMKCkudXRmOCgpLmRhdGEoKSwg
bV9jdXJyZW50RnJhbWUpOworICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAt
IHVybDogJXMgW21fY3VycmVudEZyYW1lID0gJWxkXSIsIF9fRlVOQ1RJT05fXywgdGhpcywgc291
cmNlVVJMKCkuY2hhcmFjdGVyczgoKSwgbV9jdXJyZW50RnJhbWUpOwogfQogCiB2b2lkIEJpdG1h
cEltYWdlOjpzdG9wQW5pbWF0aW9uKCkKQEAgLTQxMCw0MiArMzk1LDEzIEBAIHZvaWQgQml0bWFw
SW1hZ2U6OnJlc2V0QW5pbWF0aW9uKCkKIHZvaWQgQml0bWFwSW1hZ2U6Om5ld0ZyYW1lTmF0aXZl
SW1hZ2VBdmFpbGFibGVBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKICAgICBVTlVTRURfUEFSQU0o
aW5kZXgpOwotICAgIGlmIChjYW5BbmltYXRlKCkpIHsKLSAgICAgICAgQVNTRVJUKGluZGV4ID09
IChtX2N1cnJlbnRGcmFtZSArIDEpICUgZnJhbWVDb3VudCgpKTsKLSAgICAgICAgCi0gICAgICAg
IC8vIERvbid0IGFkdmFuY2UgdG8gbmV4dEZyYW1lIHVubGVzcyB0aGUgdGltZXIgd2FzIGZpcmVk
IGJlZm9yZSBpdHMgZGVjb2RpbmcgZmluaXNoZXMuCi0gICAgICAgIGlmIChjYW5BbmltYXRlKCkg
JiYgIW1fZnJhbWVUaW1lcikKLSAgICAgICAgICAgIGludGVybmFsQWR2YW5jZUFuaW1hdGlvbigp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBMT0coSW1hZ2VzLCAiQml0bWFwSW1hZ2U6OiVz
IC0gJXAgLSB1cmw6ICVzIFtlYXJseUZyYW1lQ291bnQgPSAlbGQgbmV4dEZyYW1lID0gJWxkXSIs
IF9fRlVOQ1RJT05fXywgdGhpcywgc291cmNlVVJMKCkudXRmOCgpLmRhdGEoKSwgKyttX2Vhcmx5
RnJhbWVDb3VudCwgaW5kZXgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChpbmRleCA9
PSBtX2N1cnJlbnRGcmFtZSAmJiAhbV9jdXJyZW50RnJhbWUpOwotICAgICAgICAKLSAgICAgICAg
aWYgKG1fbmVlZHNSZXBhaW50KSB7Ci0gICAgICAgICAgICBpbWFnZU9ic2VydmVyKCktPmNoYW5n
ZWRJblJlY3QodGhpcywgbnVsbHB0cik7Ci0gICAgICAgICAgICBtX25lZWRzUmVwYWludCA9IGZh
bHNlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICAvLyBLZWVwIHRoZSBudW1iZXIgb2Yg
ZGVjb2RpbmcgdGhyZWFkcyB1bmRlciBjb250cm9sLiAKLSAgICAgICAgaWYgKG1fc291cmNlLmlz
QXN5bmNEZWNvZGluZ1F1ZXVlSWRsZSgpKQotICAgICAgICAgICAgbV9zb3VyY2Uuc3RvcEFzeW5j
RGVjb2RpbmdRdWV1ZSgpOwotICAgIH0KLX0KLQotdm9pZCBCaXRtYXBJbWFnZTo6cmVxdWVzdEFz
eW5jRGVjb2RpbmcoY29uc3QgSW50U2l6ZSYgc2l6ZUZvckRyYXdpbmcpCi17Ci0gICAgaWYgKCFp
c0xhcmdlSW1hZ2VBc3luY0RlY29kaW5nUmVxdWlyZWQoKSkKLSAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVChpbmRleCA9PSAobV9jdXJyZW50RnJhbWUgKyAxKSAlIGZyYW1lQ291bnQoKSk7CiAK
LSAgICBBU1NFUlQoIW1fY3VycmVudEZyYW1lKTsKLSAgICBib29sIGlzQXN5bmNEZWNvZGUgPSBt
X3NvdXJjZS5yZXF1ZXN0RnJhbWVBc3luY0RlY29kaW5nQXRJbmRleCgwLCBtX2N1cnJlbnRTdWJz
YW1wbGluZ0xldmVsLCBzaXplRm9yRHJhd2luZyk7Ci0KLSNpZiAhTE9HX0RJU0FCTEVECi0gICAg
aWYgKGlzQXN5bmNEZWNvZGUpCi0gICAgICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMg
LSAlcCAtIHVybDogJXMiLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnV0ZjgoKS5k
YXRhKCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oaXNBc3luY0RlY29kZSk7Ci0jZW5kaWYK
KyAgICAvLyBEb24ndCBhZHZhbmNlIHRvIG5leHRGcmFtZSB1bmxlc3MgdGhlIHRpbWVyIHdhcyBm
aXJlZCBiZWZvcmUgaXRzIGRlY29kaW5nIGZpbmlzaGVzLgorICAgIGlmIChjYW5BbmltYXRlKCkg
JiYgIW1fZnJhbWVUaW1lcikKKyAgICAgICAgaW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKCk7Cisg
ICAgZWxzZQorICAgICAgICBMT0coSW1hZ2VzLCAiQml0bWFwSW1hZ2U6OiVzIC0gJXAgLSB1cmw6
ICVzIFtlYXJseUZyYW1lQ291bnQgPSAlbGQgbmV4dEZyYW1lID0gJWxkXSIsIF9fRlVOQ1RJT05f
XywgdGhpcywgc291cmNlVVJMKCkuY2hhcmFjdGVyczgoKSwgKyttX2Vhcmx5RnJhbWVDb3VudCwg
aW5kZXgpOwogfQogCiB2b2lkIEJpdG1hcEltYWdlOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5k
ZXggZGIzMmU4NDk1NmJkNzE1MDBmMWVhMjA4NTU1ZmM3ZGUxNTc0OGFmOC4uMzBhZGQwMmFmYTY4
ZjZhMGU1ZmY0NzQ5YTljY2VkYWVkMzE3YzMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0xNzMsNyArMTczLDYgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgc3RvcEFuaW1hdGlvbigpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVzZXRBbmlt
YXRpb24oKSBvdmVycmlkZTsKICAgICB2b2lkIG5ld0ZyYW1lTmF0aXZlSW1hZ2VBdmFpbGFibGVB
dEluZGV4KHNpemVfdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0QXN5bmNEZWNvZGluZyhj
b25zdCBJbnRTaXplJiBzaXplRm9yRHJhd2luZykgb3ZlcnJpZGU7CiAKICAgICAvLyBIYW5kbGUg
cGxhdGZvcm0tc3BlY2lmaWMgZGF0YQogICAgIHZvaWQgaW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgp
OwpAQCAtMjA4LDcgKzIwNyw2IEBAIHByaXZhdGU6CiAgICAgUmVwZXRpdGlvbkNvdW50IG1fcmVw
ZXRpdGlvbnNDb21wbGV0ZSB7IFJlcGV0aXRpb25Db3VudE5vbmUgfTsgLy8gSG93IG1hbnkgcmVw
ZXRpdGlvbnMgd2UndmUgZmluaXNoZWQuCiAgICAgZG91YmxlIG1fZGVzaXJlZEZyYW1lU3RhcnRU
aW1lIHsgMCB9OyAvLyBUaGUgc3lzdGVtIHRpbWUgYXQgd2hpY2ggd2UgaG9wZSB0byBzZWUgdGhl
IG5leHQgY2FsbCB0byBzdGFydEFuaW1hdGlvbigpLgogICAgIGJvb2wgbV9hbmltYXRpb25GaW5p
c2hlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX25lZWRzUmVwYWludCB7IGZhbHNlIH07CiAKICAg
ICBmbG9hdCBtX2ZyYW1lRGVjb2RpbmdEdXJhdGlvbkZvclRlc3RpbmcgeyAwIH07CiAgICAgZG91
YmxlIG1fZGVzaXJlZEZyYW1lRGVjb2RlVGltZUZvclRlc3RpbmcgeyAwIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCA0ZjY1YTJiNGZkMzFmNjg2OTIwYjRk
YjE2NmE2NmI5MDk1Y2Y4MDQ3Li5hYjQxNGMwMzEzYzM5NDc5YmI1MGNhNGYwMGI0ZmYyNjhjNmQ2
ZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTEzMCw3
ICsxMzAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3BBbmltYXRpb24oKSB7fQog
ICAgIHZpcnR1YWwgdm9pZCByZXNldEFuaW1hdGlvbigpIHt9CiAgICAgdmlydHVhbCB2b2lkIG5l
d0ZyYW1lTmF0aXZlSW1hZ2VBdmFpbGFibGVBdEluZGV4KHNpemVfdCkgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RBc3luY0RlY29kaW5nKGNvbnN0IEludFNpemUmKSB7IH0KICAgICAKICAg
ICAvLyBUeXBpY2FsbHkgdGhlIENhY2hlZEltYWdlIHRoYXQgb3ducyB1cy4KICAgICBJbWFnZU9i
c2VydmVyKiBpbWFnZU9ic2VydmVyKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZU9ic2VydmVyOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1l
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNh
Y2hlLmNwcAppbmRleCA1NWI4YjlmYzUxNGU0MzFiMjJiMmNmYjYwZWJjMzMyYzMzNmM5MDg4Li4z
NzIyODc0NzUxYzg0NmIyYmVlNTg2NGI4OWFiNzc1ZTJiN2RmMDVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAKQEAgLTY3
LDcgKzY3LDcgQEAgSW1hZ2VGcmFtZUNhY2hlOjpJbWFnZUZyYW1lQ2FjaGUoTmF0aXZlSW1hZ2VQ
dHImJiBuYXRpdmVJbWFnZSkKIAogSW1hZ2VGcmFtZUNhY2hlOjp+SW1hZ2VGcmFtZUNhY2hlKCkK
IHsKLSAgICBBU1NFUlQoIWhhc0FzeW5jRGVjb2RpbmdRdWV1ZSgpKTsKKyAgICBBU1NFUlQoIWhh
c0RlY29kaW5nUXVldWUoKSk7CiB9CiAKIHZvaWQgSW1hZ2VGcmFtZUNhY2hlOjpkZXN0cm95RGVj
b2RlZERhdGEoc2l6ZV90IGZyYW1lQ291bnQsIHNpemVfdCBleGNsdWRlRnJhbWUpCkBAIC0yNTYs
MTQgKzI1NiwxNCBAQCB2b2lkIEltYWdlRnJhbWVDYWNoZTo6Y2FjaGVGcmFtZU5hdGl2ZUltYWdl
QXRJbmRleChOYXRpdmVJbWFnZVB0ciYmIG5hdGl2ZUltYWdlLAogUmVmPFdvcmtRdWV1ZT4gSW1h
Z2VGcmFtZUNhY2hlOjpkZWNvZGluZ1F1ZXVlKCkKIHsKICAgICBpZiAoIW1fZGVjb2RpbmdRdWV1
ZSkKLSAgICAgICAgbV9kZWNvZGluZ1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIm9yZy53ZWJr
aXQuSW1hZ2VEZWNvZGVyIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9T
OjpEZWZhdWx0KTsKKyAgICAgICAgbV9kZWNvZGluZ1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUo
Im9yZy53ZWJraXQuSW1hZ2VEZWNvZGVyIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtR
dWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpOwogICAgIAogICAgIHJldHVybiAqbV9kZWNvZGlu
Z1F1ZXVlOwogfQogCiB2b2lkIEltYWdlRnJhbWVDYWNoZTo6c3RhcnRBc3luY0RlY29kaW5nUXVl
dWUoKQogewotICAgIGlmIChoYXNBc3luY0RlY29kaW5nUXVldWUoKSB8fCAhaXNEZWNvZGVyQXZh
aWxhYmxlKCkpCisgICAgaWYgKGhhc0RlY29kaW5nUXVldWUoKSB8fCAhaXNEZWNvZGVyQXZhaWxh
YmxlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fZnJhbWVSZXF1ZXN0UXVldWUub3Blbigp
OwpAQCAtMzA2LDcgKzMwNiw3IEBAIGJvb2wgSW1hZ2VGcmFtZUNhY2hlOjpyZXF1ZXN0RnJhbWVB
c3luY0RlY29kaW5nQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNhbXBsaW5nCiAgICAgaWYgKGZy
YW1lLmhhc1ZhbGlkTmF0aXZlSW1hZ2Uoc3Vic2FtcGxpbmdMZXZlbCwgc2l6ZUZvckRyYXdpbmcp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWhhc0FzeW5jRGVjb2RpbmdRdWV1
ZSgpKQorICAgIGlmICghaGFzRGVjb2RpbmdRdWV1ZSgpKQogICAgICAgICBzdGFydEFzeW5jRGVj
b2RpbmdRdWV1ZSgpOwogICAgIAogICAgIGZyYW1lLmVucXVldWVTaXplRm9yRGVjb2Rpbmcoc2l6
ZUZvckRyYXdpbmcpOwpAQCAtMzE0LDE4ICszMTQsOSBAQCBib29sIEltYWdlRnJhbWVDYWNoZTo6
cmVxdWVzdEZyYW1lQXN5bmNEZWNvZGluZ0F0SW5kZXgoc2l6ZV90IGluZGV4LCBTdWJzYW1wbGlu
ZwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEltYWdlRnJhbWVDYWNoZTo6aXNBc3luY0Rl
Y29kaW5nUXVldWVJZGxlKCkgY29uc3QKLXsKLSAgICBmb3IgKGNvbnN0IEltYWdlRnJhbWUmIGZy
YW1lIDogbV9mcmFtZXMpIHsKLSAgICAgICAgaWYgKGZyYW1lLmlzQmVpbmdEZWNvZGVkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotICAg
IAogdm9pZCBJbWFnZUZyYW1lQ2FjaGU6OnN0b3BBc3luY0RlY29kaW5nUXVldWUoKQogewotICAg
IGlmICghaGFzQXN5bmNEZWNvZGluZ1F1ZXVlKCkpCisgICAgaWYgKCFoYXNEZWNvZGluZ1F1ZXVl
KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBtX2ZyYW1lUmVxdWVzdFF1ZXVlLmNsb3Nl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZy
YW1lQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVD
YWNoZS5oCmluZGV4IGRjZGFiZmU3ZGM2ZTc2MDc5ZjE3MDcyYjllNTgzMjMzOWE1NjRmNWEuLjNk
NTA0MjA5ODUwNGJkYzliYjNjNmFkYzdlZmMzZTVkOTg0NmY2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5oCkBAIC03MSw4ICs3
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0QXN5bmNEZWNvZGluZ1F1ZXVlKCk7CiAgICAg
Ym9vbCByZXF1ZXN0RnJhbWVBc3luY0RlY29kaW5nQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5n
TGV2ZWwsIGNvbnN0IEludFNpemUmKTsKICAgICB2b2lkIHN0b3BBc3luY0RlY29kaW5nUXVldWUo
KTsKLSAgICBib29sIGhhc0FzeW5jRGVjb2RpbmdRdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVj
b2RpbmdRdWV1ZTsgfQotICAgIGJvb2wgaXNBc3luY0RlY29kaW5nUXVldWVJZGxlKCkgY29uc3Q7
CisgICAgYm9vbCBoYXNEZWNvZGluZ1F1ZXVlKCkgeyByZXR1cm4gbV9kZWNvZGluZ1F1ZXVlOyB9
CiAKICAgICAvLyBJbWFnZSBtZXRhZGF0YSB3aGljaCBpcyBjYWxjdWxhdGVkIGVpdGhlciBieSB0
aGUgSW1hZ2VEZWNvZGVyIG9yIGRpcmVjdGx5CiAgICAgLy8gZnJvbSB0aGUgTmF0aXZlSW1hZ2Ug
aWYgdGhpcyBjbGFzcyB3YXMgY3JlYXRlZCBmb3IgYSBtZW1vcnkgaW1hZ2UuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAppbmRleCA1MmJkYjJiYTAx
NjkxMzViZDdlMzljYmU4NzRjMjBjZDIzMmQ4ODcyLi5iMDFkZDdhMGE5MmUwNGY0NzNmMDc0OWUw
MjRhODk4ZGRhZmQyMWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmgKQEAgLTcwLDggKzcwLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0Fz
eW5jRGVjb2RpbmdSZXF1aXJlZCgpOwogICAgIGJvb2wgcmVxdWVzdEZyYW1lQXN5bmNEZWNvZGlu
Z0F0SW5kZXgoc2l6ZV90IGluZGV4LCBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWws
IGNvbnN0IEludFNpemUmIHNpemVGb3JEcmF3aW5nKSB7IHJldHVybiBtX2ZyYW1lQ2FjaGUtPnJl
cXVlc3RGcmFtZUFzeW5jRGVjb2RpbmdBdEluZGV4KGluZGV4LCBzdWJzYW1wbGluZ0xldmVsLCBz
aXplRm9yRHJhd2luZyk7IH0KLSAgICBib29sIGhhc0FzeW5jRGVjb2RpbmdRdWV1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJhbWVDYWNoZS0+aGFzQXN5bmNEZWNvZGluZ1F1ZXVlKCk7IH0KLSAgICBi
b29sIGlzQXN5bmNEZWNvZGluZ1F1ZXVlSWRsZSgpIGNvbnN0ICB7IHJldHVybiBtX2ZyYW1lQ2Fj
aGUtPmlzQXN5bmNEZWNvZGluZ1F1ZXVlSWRsZSgpOyB9CisgICAgYm9vbCBoYXNEZWNvZGluZ1F1
ZXVlKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUNhY2hlLT5oYXNEZWNvZGluZ1F1ZXVlKCk7IH0K
ICAgICB2b2lkIHN0b3BBc3luY0RlY29kaW5nUXVldWUoKSB7IG1fZnJhbWVDYWNoZS0+c3RvcEFz
eW5jRGVjb2RpbmdRdWV1ZSgpOyB9CiAKICAgICAvLyBJbWFnZSBtZXRhZGF0YSB3aGljaCBpcyBj
YWxjdWxhdGVkIGJ5IHRoZSBkZWNvZGVyIG9yIGNhbiBkZWR1Y2VkIGJ5IHRoZSBjYXNlIG9mIHRo
ZSBtZW1vcnkgTmF0aXZlSW1hZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RpbGVkQmFja2luZy5oCmluZGV4IGNjOTlhMTUyNzdlMDY3YWQ2M2U1ODIzZTcxN2ZhYzJj
ZjgyZjczODMuLjk1ZjdjYjhlNzMyOTU5YjA2NjRiZjk1MDZlMmQ0MjcyZWMyOTc2MDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCkBAIC0x
NDUsMTEgKzE0NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJbnRSZWN0IGJvdW5kcygpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3QgYm91bmRzV2l0aG91dE1hcmdpbigpIGNvbnN0
ID0gMDsKIAotICAgIHZpcnR1YWwgSW50UmVjdCB0aWxlQ292ZXJhZ2VSZWN0KCkgY29uc3QgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxpbmdNb2RlSW5kaWNhdGlvbihTY3JvbGxpbmdN
b2RlSW5kaWNhdGlvbikgPSAwOwotCiAgICAgLy8gRXhwb3NlZCBmb3IgdGVzdGluZworICAgIHZp
cnR1YWwgSW50UmVjdCB0aWxlQ292ZXJhZ2VSZWN0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
SW50UmVjdCB0aWxlR3JpZEV4dGVudCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
U2Nyb2xsaW5nTW9kZUluZGljYXRpb24oU2Nyb2xsaW5nTW9kZUluZGljYXRpb24pID0gMDsKIAog
I2lmIFVTRShDQSkKICAgICB2aXJ0dWFsIFBsYXRmb3JtQ0FMYXllciogdGlsZWRTY3JvbGxpbmdJ
bmRpY2F0b3JMYXllcigpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcAppbmRleCBjZmEzMzUyMjg4ZGQwMDc3MDUyMTIxMjkxNTQ1NzY5NTg2NGYxODRmLi4x
OGQ2M2NkMGYwMWZkZTg4MzE2NDgyNDVjMjNiMGJkNDZkMzY2MjFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0xNTQsOCArMTU0LDYgQEAgUmVuZGVy
RWxlbWVudDo6flJlbmRlckVsZW1lbnQoKQogICAgICAgICB2aWV3KCkucmVtb3ZlUmVuZGVyZXJX
aXRoUGF1c2VkSW1hZ2VBbmltYXRpb25zKCp0aGlzKTsKICAgICBpZiAoaXNSZWdpc3RlcmVkRm9y
VmlzaWJsZUluVmlld3BvcnRDYWxsYmFjaygpKQogICAgICAgICB2aWV3KCkudW5yZWdpc3RlckZv
clZpc2libGVJblZpZXdwb3J0Q2FsbGJhY2soKnRoaXMpOwotICAgIGlmIChpc1JlZ2lzdGVyZWRG
b3JBc3luY0ltYWdlRGVjb2RpbmdDYWxsYmFjaygpKQotICAgICAgICB2aWV3KCkudW5yZWdpc3Rl
ckZvckFzeW5jSW1hZ2VEZWNvZGluZ0NhbGxiYWNrKCp0aGlzKTsKIH0KIAogUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcihFbGVtZW50JiBlbGVtZW50LCBS
ZW5kZXJTdHlsZSYmIHN0eWxlLCBSZW5kZXJlckNyZWF0aW9uVHlwZSBjcmVhdGlvblR5cGUpCkBA
IC0xNDM2LDI4ICsxNDM0LDM0IEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6bWF5Q2F1c2VSZXBhaW50
SW5zaWRlVmlld3BvcnQoY29uc3QgSW50UmVjdCogb3B0aW9uYWxWaWV3cG9yCiAgICAgcmV0dXJu
IHZpc2libGVSZWN0LmludGVyc2VjdHMoZW5jbG9zaW5nSW50UmVjdChhYnNvbHV0ZUNsaXBwZWRP
dmVyZmxvd1JlY3QoKSkpOwogfQogCi1ib29sIFJlbmRlckVsZW1lbnQ6OmludGVyc2VjdHNBYnNv
bHV0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKK3N0YXRpYyBib29sIHNob3VsZFJl
cGFpbnRGb3JJbWFnZUFuaW1hdGlvbihjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29u
c3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpCiB7Ci0gICAgaWYgKHN0eWxlKCkudmlzaWJpbGl0eSgp
ICE9IFZJU0lCTEUpCisgICAgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50ID0gcmVuZGVyZXIuZG9j
dW1lbnQoKTsKKyAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHZpZXcoKS5mcmFtZVZpZXcoKS5pc09m
ZnNjcmVlbigpKQorICAgIGlmIChyZW5kZXJlci5zdHlsZSgpLnZpc2liaWxpdHkoKSAhPSBWSVNJ
QkxFKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKHJlbmRlcmVyLnZpZXcoKS5mcmFt
ZVZpZXcoKS5pc09mZnNjcmVlbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBV
c2UgYmFja2dyb3VuZCByZWN0IGlmIHdlIGFyZSB0aGUgcm9vdCBvciBpZiB3ZSBhcmUgdGhlIGJv
ZHkgYW5kIHRoZSBiYWNrZ3JvdW5kIGlzIHByb3BhZ2F0ZWQgdG8gdGhlIHJvb3QuCiAgICAgLy8g
RklYTUU6IFRoaXMgaXMgb3Zlcmx5IGNvbnNlcnZhdGl2ZSBhcyB0aGUgaW1hZ2UgbWF5IG5vdCBi
ZSBhIGJhY2tncm91bmQtaW1hZ2UsIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBub3QKICAgICAvLyBi
ZSBwcm9wYWdhdGVkIHRvIHRoZSByb290LiBBdCB0aGlzIHBvaW50LCB3ZSB1bmZvcnR1bmF0ZWx5
IGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZSBpbWFnZSBhbnltb3JlIHNvIHdlCiAgICAgLy8gY2Fu
IG5vIGxvbmdlciBjaGVjayBpZiBpdCBpcyBhIGJhY2tncm91bmQgaW1hZ2UuCi0gICAgYm9vbCBi
YWNrZ3JvdW5kSXNQYWludGVkQnlSb290ID0gaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpOwot
ICAgIGlmIChpc0JvZHkoKSkgewotICAgICAgICBhdXRvJiByb290UmVuZGVyZXIgPSAqcGFyZW50
KCk7IC8vIElmIDxib2R5PiBoYXMgYSByZW5kZXJlciB0aGVuIDxodG1sPiBkb2VzIHRvby4KKyAg
ICBib29sIGJhY2tncm91bmRJc1BhaW50ZWRCeVJvb3QgPSByZW5kZXJlci5pc0RvY3VtZW50RWxl
bWVudFJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLmlzQm9keSgpKSB7CisgICAgICAgIGF1
dG8mIHJvb3RSZW5kZXJlciA9ICpyZW5kZXJlci5wYXJlbnQoKTsgLy8gSWYgPGJvZHk+IGhhcyBh
IHJlbmRlcmVyIHRoZW4gPGh0bWw+IGRvZXMgdG9vLgogICAgICAgICBBU1NFUlQocm9vdFJlbmRl
cmVyLmlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSk7CiAgICAgICAgIEFTU0VSVChpczxIVE1M
SHRtbEVsZW1lbnQ+KHJvb3RSZW5kZXJlci5lbGVtZW50KCkpKTsKICAgICAgICAgLy8gRklYTUU6
IFNob3VsZCBzaGFyZSBib2R5IGJhY2tncm91bmQgcHJvcGFnYXRpb24gY29kZS4KICAgICAgICAg
YmFja2dyb3VuZElzUGFpbnRlZEJ5Um9vdCA9ICFyb290UmVuZGVyZXIuaGFzQmFja2dyb3VuZCgp
OwogCiAgICAgfQotICAgIExheW91dFJlY3QgYmFja2dyb3VuZFBhaW50aW5nUmVjdCA9IGJhY2tn
cm91bmRJc1BhaW50ZWRCeVJvb3QgPyB2aWV3KCkuYmFja2dyb3VuZFJlY3QoKSA6IGFic29sdXRl
Q2xpcHBlZE92ZXJmbG93UmVjdCgpOwotICAgIHJldHVybiByZWN0LmludGVyc2VjdHMoZW5jbG9z
aW5nSW50UmVjdChiYWNrZ3JvdW5kUGFpbnRpbmdSZWN0KSk7CisgICAgTGF5b3V0UmVjdCBiYWNr
Z3JvdW5kUGFpbnRpbmdSZWN0ID0gYmFja2dyb3VuZElzUGFpbnRlZEJ5Um9vdCA/IHJlbmRlcmVy
LnZpZXcoKS5iYWNrZ3JvdW5kUmVjdCgpIDogcmVuZGVyZXIuYWJzb2x1dGVDbGlwcGVkT3ZlcmZs
b3dSZWN0KCk7CisgICAgaWYgKCF2aXNpYmxlUmVjdC5pbnRlcnNlY3RzKGVuY2xvc2luZ0ludFJl
Y3QoYmFja2dyb3VuZFBhaW50aW5nUmVjdCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBSZW5kZXJFbGVtZW50OjpyZWdpc3RlckZvclZpc2li
bGVJblZpZXdwb3J0Q2FsbGJhY2soKQpAQCAtMTQ5Miw3ICsxNDk2LDcgQEAgdm9pZCBSZW5kZXJF
bGVtZW50OjpuZXdJbWFnZUFuaW1hdGlvbkZyYW1lQXZhaWxhYmxlKENhY2hlZEltYWdlJiBpbWFn
ZSkKIHsKICAgICBhdXRvJiBmcmFtZVZpZXcgPSB2aWV3KCkuZnJhbWVWaWV3KCk7CiAgICAgYXV0
byB2aXNpYmxlUmVjdCA9IGZyYW1lVmlldy53aW5kb3dUb0NvbnRlbnRzKGZyYW1lVmlldy53aW5k
b3dDbGlwUmVjdCgpKTsKLSAgICBpZiAoZG9jdW1lbnQoKS5hY3RpdmVET01PYmplY3RzQXJlU3Vz
cGVuZGVkKCkgfHwgIWludGVyc2VjdHNBYnNvbHV0ZVJlY3QodmlzaWJsZVJlY3QpKSB7CisgICAg
aWYgKCFzaG91bGRSZXBhaW50Rm9ySW1hZ2VBbmltYXRpb24oKnRoaXMsIHZpc2libGVSZWN0KSkg
ewogICAgICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIHRvIHBhc3MgdGhlIGltYWdl
IGFsb25nIHdpdGggdGhlIHJlbmRlcmVyCiAgICAgICAgIC8vIHNvIHRoYXQgd2UgY2FuIGJlIHNt
YXJ0ZXIgYWJvdXQgZGV0ZWN0aW5nIGlmIHRoZSBpbWFnZSBpcyBpbnNpZGUgdGhlCiAgICAgICAg
IC8vIHZpZXdwb3J0IGluIHJlcGFpbnRGb3JQYXVzZWRJbWFnZUFuaW1hdGlvbnNJZk5lZWRlZCgp
LgpAQCAtMTUwNSw3ICsxNTA5LDcgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpuZXdJbWFnZUFuaW1h
dGlvbkZyYW1lQXZhaWxhYmxlKENhY2hlZEltYWdlJiBpbWFnZSkKIGJvb2wgUmVuZGVyRWxlbWVu
dDo6cmVwYWludEZvclBhdXNlZEltYWdlQW5pbWF0aW9uc0lmTmVlZGVkKGNvbnN0IEludFJlY3Qm
IHZpc2libGVSZWN0KQogewogICAgIEFTU0VSVChtX2hhc1BhdXNlZEltYWdlQW5pbWF0aW9ucyk7
Ci0gICAgaWYgKGRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpIHx8ICFp
bnRlcnNlY3RzQWJzb2x1dGVSZWN0KHZpc2libGVSZWN0KSkKKyAgICBpZiAoIXNob3VsZFJlcGFp
bnRGb3JJbWFnZUFuaW1hdGlvbigqdGhpcywgdmlzaWJsZVJlY3QpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICByZXBhaW50KCk7CkBAIC0xNTE2LDI0ICsxNTIwLDYgQEAgYm9vbCBSZW5k
ZXJFbGVtZW50OjpyZXBhaW50Rm9yUGF1c2VkSW1hZ2VBbmltYXRpb25zSWZOZWVkZWQoY29uc3Qg
SW50UmVjdCYgdmlzaWIKIAogICAgIHJldHVybiB0cnVlOwogfQotICAgIAotdm9pZCBSZW5kZXJF
bGVtZW50OjpyZWdpc3RlckZvckFzeW5jSW1hZ2VEZWNvZGluZ0NhbGxiYWNrKCkKLXsKLSAgICBp
ZiAoaXNSZWdpc3RlcmVkRm9yQXN5bmNJbWFnZURlY29kaW5nQ2FsbGJhY2soKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgdmlldygpLnJlZ2lzdGVyRm9yQXN5bmNJbWFnZURlY29kaW5nQ2FsbGJh
Y2soKnRoaXMpOwotICAgIHNldElzUmVnaXN0ZXJlZEZvckFzeW5jSW1hZ2VEZWNvZGluZ0NhbGxi
YWNrKHRydWUpOwotfQotICAgIAotdm9pZCBSZW5kZXJFbGVtZW50Ojp1bnJlZ2lzdGVyRm9yQXN5
bmNJbWFnZURlY29kaW5nQ2FsbGJhY2soKQotewotICAgIGlmICghaXNSZWdpc3RlcmVkRm9yQXN5
bmNJbWFnZURlY29kaW5nQ2FsbGJhY2soKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmlldygp
LnVucmVnaXN0ZXJGb3JBc3luY0ltYWdlRGVjb2RpbmdDYWxsYmFjaygqdGhpcyk7Ci0gICAgc2V0
SXNSZWdpc3RlcmVkRm9yQXN5bmNJbWFnZURlY29kaW5nQ2FsbGJhY2soZmFsc2UpOwotfQogCiBj
b25zdCBSZW5kZXJTdHlsZSogUmVuZGVyRWxlbWVudDo6Z2V0Q2FjaGVkUHNldWRvU3R5bGUoUHNl
dWRvSWQgcHNldWRvLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCA1MWFiMGVmNWI3MzQx
OGZkZjA4YzFmMDBjNjRmOWEzYzdlZjNlYWFmLi5mZGEwOWU1ZGJlNjk4ZDNiMWIzMzIzNDZkNDM2
Y2M5YzVjYzI1YTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgK
QEAgLTEzOCw3ICsxMzgsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGJvcmRlckltYWdlSXNMb2Fk
ZWRBbmRDYW5CZVJlbmRlcmVkKCkgY29uc3Q7CiAgICAgYm9vbCBtYXlDYXVzZVJlcGFpbnRJbnNp
ZGVWaWV3cG9ydChjb25zdCBJbnRSZWN0KiB2aXNpYmxlUmVjdCA9IG51bGxwdHIpIGNvbnN0Owot
ICAgIGJvb2wgaW50ZXJzZWN0c0Fic29sdXRlUmVjdChjb25zdCBJbnRSZWN0JikgY29uc3Q7CiAK
ICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyByZW5kZXJlciByZXF1aXJlcyBhIG5ldyBzdGFj
a2luZyBjb250ZXh0LgogICAgIGJvb2wgY3JlYXRlc0dyb3VwKCkgY29uc3QgeyByZXR1cm4gaXNU
cmFuc3BhcmVudCgpIHx8IGhhc01hc2soKSB8fCBoYXNDbGlwUGF0aCgpIHx8IGhhc0ZpbHRlcigp
IHx8IGhhc0JhY2tkcm9wRmlsdGVyKCkgfHwgaGFzQmxlbmRNb2RlKCk7IH0KQEAgLTE5MSw5ICsx
OTAsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCByZXBhaW50Rm9yUGF1c2VkSW1hZ2VBbmltYXRpb25z
SWZOZWVkZWQoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpOwogICAgIGJvb2wgaGFzUGF1c2Vk
SW1hZ2VBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9oYXNQYXVzZWRJbWFnZUFuaW1hdGlv
bnM7IH0KICAgICB2b2lkIHNldEhhc1BhdXNlZEltYWdlQW5pbWF0aW9ucyhib29sIGIpIHsgbV9o
YXNQYXVzZWRJbWFnZUFuaW1hdGlvbnMgPSBiOyB9Ci0gICAgCi0gICAgdm9pZCByZWdpc3RlckZv
ckFzeW5jSW1hZ2VEZWNvZGluZ0NhbGxiYWNrKCk7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyRm9yQXN5
bmNJbWFnZURlY29kaW5nQ2FsbGJhY2soKTsKIAogICAgIHZvaWQgc2V0UmVuZGVyQm94TmVlZHNM
YXp5UmVwYWludChib29sIGIpIHsgbV9yZW5kZXJCb3hOZWVkc0xhenlSZXBhaW50ID0gYjsgfQog
ICAgIGJvb2wgcmVuZGVyQm94TmVlZHNMYXp5UmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVu
ZGVyQm94TmVlZHNMYXp5UmVwYWludDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAppbmRleCBkMzIzMjk0MjZhYTU3MzZhNzc2ZjgwY2I2ODdkMjU2ZGRkZDU0MGY5
Li5iYTU1NDBiZDE2MzMyZTVkODZkOWJkMTA2YjU2NjhkODhiMjhlOWQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTk5NSwxMiArMTk5NSw2IEBAIHZv
aWQgUmVuZGVyT2JqZWN0OjpzZXRWaXNpYmxlSW5WaWV3cG9ydFN0YXRlKFZpc2libGVJblZpZXdw
b3J0U3RhdGUgdmlzaWJsZSkKICAgICBpZiAodmlzaWJsZSAhPSBWaXNpYmlsaXR5VW5rbm93biB8
fCBoYXNSYXJlRGF0YSgpKQogICAgICAgICBlbnN1cmVSYXJlRGF0YSgpLnNldFZpc2libGVJblZp
ZXdwb3J0U3RhdGUodmlzaWJsZSk7CiB9Ci0gICAgCi12b2lkIFJlbmRlck9iamVjdDo6c2V0SXNS
ZWdpc3RlcmVkRm9yQXN5bmNJbWFnZURlY29kaW5nQ2FsbGJhY2soYm9vbCByZWdpc3RlcmVkKQot
ewotICAgIGlmIChyZWdpc3RlcmVkIHx8IGhhc1JhcmVEYXRhKCkpCi0gICAgICAgIGVuc3VyZVJh
cmVEYXRhKCkuc2V0SXNSZWdpc3RlcmVkRm9yQXN5bmNJbWFnZURlY29kaW5nQ2FsbGJhY2socmVn
aXN0ZXJlZCk7Ci19CiAKIFJlbmRlck9iamVjdDo6UmFyZURhdGFNYXAmIFJlbmRlck9iamVjdDo6
cmFyZURhdGFNYXAoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmlu
ZGV4IDgxYjk2OGY0MTllOGE5YTNkOGRjYzMwMzAwOTdjNTlmNjEzYzA2NDYuLjJiZGNiNjhiMjRk
OTVjZmUzNjc4ZmRmNzNhNzlhYTlkZmIwMWRiYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKQEAgLTQ1OCw4ICs0NTgsNiBAQCBwdWJsaWM6CiAgICAgICAgIE5vdFZp
c2libGVJblZpZXdwb3J0LAogICAgIH07CiAgICAgVmlzaWJsZUluVmlld3BvcnRTdGF0ZSB2aXNp
YmxlSW5WaWV3cG9ydFN0YXRlKCkgeyByZXR1cm4gbV9iaXRmaWVsZHMuaGFzUmFyZURhdGEoKSA/
IHJhcmVEYXRhKCkudmlzaWJsZUluVmlld3BvcnRTdGF0ZSgpIDogVmlzaWJpbGl0eVVua25vd247
IH0KLSAgICAKLSAgICBib29sIGlzUmVnaXN0ZXJlZEZvckFzeW5jSW1hZ2VEZWNvZGluZ0NhbGxi
YWNrKCkgeyByZXR1cm4gbV9iaXRmaWVsZHMuaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0YSgpLmlz
UmVnaXN0ZXJlZEZvckFzeW5jSW1hZ2VEZWNvZGluZ0NhbGxiYWNrKCk7IH0KIAogICAgIGJvb2wg
aGFzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5oYXNMYXllcigpOyB9CiAKQEAg
LTU3MSw3ICs1NjksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIYXNPdXRsaW5lQXV0b0FuY2Vz
dG9yKGJvb2wgPSB0cnVlKTsKICAgICB2b2lkIHNldElzUmVnaXN0ZXJlZEZvclZpc2libGVJblZp
ZXdwb3J0Q2FsbGJhY2soYm9vbCk7CiAgICAgdm9pZCBzZXRWaXNpYmxlSW5WaWV3cG9ydFN0YXRl
KFZpc2libGVJblZpZXdwb3J0U3RhdGUpOwotICAgIHZvaWQgc2V0SXNSZWdpc3RlcmVkRm9yQXN5
bmNJbWFnZURlY29kaW5nQ2FsbGJhY2soYm9vbCk7CiAKICAgICAvLyBIb29rIHNvIHRoYXQgUmVu
ZGVyVGV4dENvbnRyb2wgY2FuIHJldHVybiB0aGUgbGluZSBoZWlnaHQgb2YgaXRzIGlubmVyIHJl
bmRlcmVyLgogICAgIC8vIEZvciBvdGhlciByZW5kZXJlcnMsIHRoZSB2YWx1ZSBpcyB0aGUgc2Ft
ZSBhcyBsaW5lSGVpZ2h0KGZhbHNlKS4KQEAgLTk4OCw3ICs5ODUsNiBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgLCBtX2hhc091dGxpbmVBdXRvQW5jZXN0b3IoZmFsc2UpCiAgICAgICAgICAgICAs
IG1faXNSZWdpc3RlcmVkRm9yVmlzaWJsZUluVmlld3BvcnRDYWxsYmFjayhmYWxzZSkKICAgICAg
ICAgICAgICwgbV92aXNpYmxlSW5WaWV3cG9ydFN0YXRlKFZpc2liaWxpdHlVbmtub3duKQotICAg
ICAgICAgICAgLCBtX2lzUmVnaXN0ZXJlZEZvckFzeW5jSW1hZ2VEZWNvZGluZ0NhbGxiYWNrKGZh
bHNlKQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQo
aXNEcmFnZ2luZywgSXNEcmFnZ2luZyk7CkBAIC05OTksNyArOTk1LDYgQEAgcHJpdmF0ZToKICAg
ICAgICAgLy8gRnJvbSBSZW5kZXJFbGVtZW50CiAgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxE
KGlzUmVnaXN0ZXJlZEZvclZpc2libGVJblZpZXdwb3J0Q2FsbGJhY2ssIElzUmVnaXN0ZXJlZEZv
clZpc2libGVJblZpZXdwb3J0Q2FsbGJhY2spOwogICAgICAgICBBRERfRU5VTV9CSVRGSUVMRCh2
aXNpYmxlSW5WaWV3cG9ydFN0YXRlLCBWaXNpYmxlSW5WaWV3cG9ydFN0YXRlLCBWaXNpYmxlSW5W
aWV3cG9ydFN0YXRlLCAyKTsKLSAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNSZWdpc3Rl
cmVkRm9yQXN5bmNJbWFnZURlY29kaW5nQ2FsbGJhY2ssIElzUmVnaXN0ZXJlZEZvckFzeW5jSW1h
Z2VEZWNvZGluZ0NhbGxiYWNrKTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxl
PiBjYWNoZWRGaXJzdExpbmVTdHlsZTsKICAgICB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRleCBkMGRlY2RkNzJmYThkNzljNjY2NjdiOTNlYTdl
ZWZhYzVkYzMwYTI5Li4yYmNjZTdkZjI0OGI5Y2FlMjViMmQ5NDBkYjcwZDUyODMyNDc3NjZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtMzIsNyArMzIs
NiBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgo
U2hvdWxkQ29tcHV0ZVByZWZlcnJlZCA9IENvbXB1dGVBY3R1YWwpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgTGF5b3V0U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAgICAgTGF5b3V0UmVjdCByZXBsYWNlZENvbnRlbnRSZWN0
KGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNS
ZXBsYWNlZExvZ2ljYWxXaWR0aCgpIGNvbnN0OwpAQCAtNDYsNiArNDUsNyBAQCBwcm90ZWN0ZWQ6
CiAKICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwogCisgICAgTGF5b3V0U2l6ZSBpbnRyaW5z
aWNTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAgICAgdm9p
ZCBjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbihGbG9hdFNpemUmIGludHJpbnNpY1Np
emUsIGRvdWJsZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBj
b21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgs
IExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggYTBmYTJhNTFhYTgyNTk2ODJjZjYxYjcyNzBj
NGQ5N2I1NDI3OTI3MS4uM2IxMDcwYjVmODFiMTMwOGNmZTIwMDE3NTdkODQwOWRlNzk1YjEwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMzUsMTMgKzM1LDEw
IEBACiAjaW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElGcmFtZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIK
ICNpbmNsdWRlICJJbWFnZVF1YWxpdHlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm9kZVRyYXZl
cnNhbC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJEZXNjZW5kYW50SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJHZW9tZXRyeU1hcC5oIgotI2luY2x1ZGUgIlJlbmRl
ckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJM
YXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgpAQCAtMTQyNSw0MCArMTQy
Miw2IEBAIHZvaWQgUmVuZGVyVmlldzo6cmVzdW1lUGF1c2VkSW1hZ2VBbmltYXRpb25zSWZOZWVk
ZWQoSW50UmVjdCB2aXNpYmxlUmVjdCkKICAgICAgICAgcmVtb3ZlUmVuZGVyZXJXaXRoUGF1c2Vk
SW1hZ2VBbmltYXRpb25zKCpyZW5kZXJlcik7CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6cmVnaXN0
ZXJGb3JBc3luY0ltYWdlRGVjb2RpbmdDYWxsYmFjayhSZW5kZXJFbGVtZW50JiByZW5kZXJlcikK
LXsKLSAgICBBU1NFUlQoIW1fYXN5bmNEZWNvZGluZ0ltYWdlUmVuZGVyZXJzLmNvbnRhaW5zKCZy
ZW5kZXJlcikpOwotICAgIG1fYXN5bmNEZWNvZGluZ0ltYWdlUmVuZGVyZXJzLmFkZCgmcmVuZGVy
ZXIpOwotfQotCi12b2lkIFJlbmRlclZpZXc6OnVucmVnaXN0ZXJGb3JBc3luY0ltYWdlRGVjb2Rp
bmdDYWxsYmFjayhSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKLXsKLSAgICBBU1NFUlQobV9hc3lu
Y0RlY29kaW5nSW1hZ2VSZW5kZXJlcnMuY29udGFpbnMoJnJlbmRlcmVyKSk7Ci0gICAgbV9hc3lu
Y0RlY29kaW5nSW1hZ2VSZW5kZXJlcnMucmVtb3ZlKCZyZW5kZXJlcik7Ci19Ci0gICAgCi12b2lk
IFJlbmRlclZpZXc6OnJlcXVlc3RBc3luY0RlY29kaW5nRm9ySW1hZ2VzSW5BYnNvbHV0ZVJlY3Qo
Y29uc3QgSW50UmVjdCYgcmVjdCkKLXsKLSAgICBmb3IgKGF1dG8qIHJlbmRlcmVyIDogbV9hc3lu
Y0RlY29kaW5nSW1hZ2VSZW5kZXJlcnMpIHsKLSAgICAgICAgaWYgKCFyZW5kZXJlci0+aW50ZXJz
ZWN0c0Fic29sdXRlUmVjdChyZWN0KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAK
LSAgICAgICAgYXV0byYgcmVuZGVySW1hZ2UgPSBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRl
cmVyKTsKLSAgICAgICAgCi0gICAgICAgIENhY2hlZEltYWdlKiBpbWFnZSA9IHJlbmRlckltYWdl
LmNhY2hlZEltYWdlKCk7Ci0gICAgICAgIGlmICghaW1hZ2UgfHwgIWltYWdlLT5oYXNJbWFnZSgp
KQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgLy8gR2V0IHRoZSBkZXN0aW5hdGlv
biByZWN0YW5nbGUgb2YgdGhlIGltYWdlIHNjYWxlZCBieSB0aGUgYWxsIHRoZSBzY2FsaW5nIGZh
Y3RvcnMKLSAgICAgICAgLy8gdGhhdCB3aWxsIGV2ZW50dWFsbHkgYmUgYXBwbGllZCB0byB0aGUg
Z3JhcGhpY3MgY29udGV4dC4KLSAgICAgICAgTGF5b3V0UmVjdCByZXBsYWNlZENvbnRlbnRSZWN0
ID0gcmVuZGVySW1hZ2UucmVwbGFjZWRDb250ZW50UmVjdChyZW5kZXJJbWFnZS5pbnRyaW5zaWNT
aXplKCkpOwotICAgICAgICBGbG9hdFJlY3QgcmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMo
cmVwbGFjZWRDb250ZW50UmVjdCwgZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAg
ICAgICAgcmVjdC5zY2FsZShmcmFtZSgpLnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkgKiBmcmFt
ZSgpLnBhZ2Vab29tRmFjdG9yKCkgKiBkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwot
Ci0gICAgICAgIGltYWdlLT5pbWFnZSgpLT5yZXF1ZXN0QXN5bmNEZWNvZGluZyhleHBhbmRlZElu
dFNpemUocmVjdC5zaXplKCkpKTsKLSAgICB9Ci19Ci0KIFJlbmRlclZpZXc6OlJlcGFpbnRSZWdp
b25BY2N1bXVsYXRvcjo6UmVwYWludFJlZ2lvbkFjY3VtdWxhdG9yKFJlbmRlclZpZXcqIHZpZXcp
CiAgICAgOiBtX3Jvb3RWaWV3KHZpZXcgPyB2aWV3LT5kb2N1bWVudCgpLnRvcERvY3VtZW50KCku
cmVuZGVyVmlldygpIDogbnVsbHB0cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5oCmluZGV4IGUyYzdlYjc2MTkxNmZmNjc2YWI2NTg4NWMxNzY2NDA2NDkyMGYwNmEuLjJlNTQz
NTVlMDgzYzBhMzM3N2Q1NTVlOTVhZjE1NTA1NzI0NDc0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclZpZXcuaApAQCAtMjMxLDkgKzIzMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
c3VtZVBhdXNlZEltYWdlQW5pbWF0aW9uc0lmTmVlZGVkKEludFJlY3QgdmlzaWJsZVJlY3QpOwog
ICAgIHZvaWQgYWRkUmVuZGVyZXJXaXRoUGF1c2VkSW1hZ2VBbmltYXRpb25zKFJlbmRlckVsZW1l
bnQmKTsKICAgICB2b2lkIHJlbW92ZVJlbmRlcmVyV2l0aFBhdXNlZEltYWdlQW5pbWF0aW9ucyhS
ZW5kZXJFbGVtZW50Jik7Ci0gICAgdm9pZCByZWdpc3RlckZvckFzeW5jSW1hZ2VEZWNvZGluZ0Nh
bGxiYWNrKFJlbmRlckVsZW1lbnQmKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJGb3JBc3luY0ltYWdl
RGVjb2RpbmdDYWxsYmFjayhSZW5kZXJFbGVtZW50Jik7Ci0gICAgdm9pZCByZXF1ZXN0QXN5bmNE
ZWNvZGluZ0ZvckltYWdlc0luQWJzb2x1dGVSZWN0KGNvbnN0IEludFJlY3QmKTsKIAogICAgIGNs
YXNzIFJlcGFpbnRSZWdpb25BY2N1bXVsYXRvciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFJlcGFpbnRSZWdpb25BY2N1bXVsYXRvcik7CkBAIC0zOTEsNyArMzg4LDYgQEAgcHJpdmF0
ZToKIAogICAgIEhhc2hTZXQ8UmVuZGVyRWxlbWVudCo+IG1fcmVuZGVyZXJzV2l0aFBhdXNlZElt
YWdlQW5pbWF0aW9uOwogICAgIEhhc2hTZXQ8UmVuZGVyRWxlbWVudCo+IG1fdmlzaWJsZUluVmll
d3BvcnRSZW5kZXJlcnM7Ci0gICAgSGFzaFNldDxSZW5kZXJFbGVtZW50Kj4gbV9hc3luY0RlY29k
aW5nSW1hZ2VSZW5kZXJlcnM7CiAgICAgVmVjdG9yPFJlZlB0cjxSZW5kZXJXaWRnZXQ+PiBtX3By
b3RlY3RlZFJlbmRlcldpZGdldHM7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRl
eCBiODk5NTU0YjQ1ZTJkMzBhZDIyZTFiOTdmMjI3MDljNzkzNzdiN2Y3Li44ZGEyY2EyMWIyZjFj
ZWZjYjUyZGE0YjA5ZjAwY2IzMWY4YzRiMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xNjkxLDI2ICsxNjkxLDYgQEAgYm9v
bCBXS1ByZWZlcmVuY2VzR2V0TGlua1ByZWxvYWRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXNSZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmxpbmtQcmVs
b2FkRW5hYmxlZCgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5jZXNTZXRMYXJnZUltYWdlQXN5bmNE
ZWNvZGluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFn
KQotewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldExhcmdlSW1hZ2VBc3luY0RlY29k
aW5nRW5hYmxlZChmbGFnKTsKLX0KLQotYm9vbCBXS1ByZWZlcmVuY2VzR2V0TGFyZ2VJbWFnZUFz
eW5jRGVjb2RpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCi17Ci0g
ICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmxhcmdlSW1hZ2VBc3luY0RlY29kaW5n
RW5hYmxlZCgpOwotfQotCi12b2lkIFdLUHJlZmVyZW5jZXNTZXRBbmltYXRlZEltYWdlQXN5bmNE
ZWNvZGluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFn
KQotewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEFuaW1hdGVkSW1hZ2VBc3luY0Rl
Y29kaW5nRW5hYmxlZChmbGFnKTsKLX0KLQotYm9vbCBXS1ByZWZlcmVuY2VzR2V0QW5pbWF0ZWRJ
bWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYp
Ci17Ci0gICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmFuaW1hdGVkSW1hZ2VBc3lu
Y0RlY29kaW5nRW5hYmxlZCgpOwotfQotCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTaG91bGRTdXBw
cmVzc0tleWJvYXJkSW5wdXREdXJpbmdQcm92aXNpb25hbE5hdmlnYXRpb24oV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNl
c1JlZiktPnNldFNob3VsZFN1cHByZXNzS2V5Ym9hcmRJbnB1dER1cmluZ1Byb3Zpc2lvbmFsTmF2
aWdhdGlvbihmbGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggYzVjZGNiYTQ5ZWI5ZjBmMzEyNGU4
ZTI3NDAwODk3OWNkNDEwNTY0Zi4uYWE1NWEwNTNkZWIwNDc3YjM1YzdhOTcxMGM0YzIxMWI3OGNl
YTZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXNSZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKQEAgLTQ2NSwxNCArNDY1LDYgQEAgV0tfRVhQT1JUIGJv
b2wgV0tQcmVmZXJlbmNlc0dldFJlc291cmNlVGltaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
KTsKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTdWJ0bGVDcnlwdG9FbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0U3VidGxlQ3J5cHRvRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIAotLy8gRGVmYXVsdHMg
dG8gdHJ1ZS4KLVdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRMYXJnZUltYWdlQXN5bmNE
ZWNvZGluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFn
KTsKLVdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRMYXJnZUltYWdlQXN5bmNEZWNvZGlu
Z0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7Ci0KLS8vIERlZmF1bHRz
IHRvIHRydWUuCi1XS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0QW5pbWF0ZWRJbWFnZUFz
eW5jRGVjb2RpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wg
ZmxhZyk7Ci1XS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0QW5pbWF0ZWRJbWFnZUFzeW5j
RGVjb2RpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOwotCiAvLyBE
ZWZhdWx0cyB0byBmYWxzZQogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFNob3VsZFN1
cHByZXNzS2V5Ym9hcmRJbnB1dER1cmluZ1Byb3Zpc2lvbmFsTmF2aWdhdGlvbihXS1ByZWZlcmVu
Y2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNob3Vs
ZFN1cHByZXNzS2V5Ym9hcmRJbnB1dER1cmluZ1Byb3Zpc2lvbmFsTmF2aWdhdGlvbihXS1ByZWZl
cmVuY2VzUmVmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA4MDA1ODI4YTZlMTE2NGEzMjBiNjI1MjVjNzMxMTU5NDJmYTA5MDJmLi45NWIzMTg4
ZmM5OTk5YmRiMDM1NDBjZmE0NTRlZTBhOWJlNzhkZDhjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMDMtMTAg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTM2MTguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk0NzUKKworICAgICAgICBTdXNwZWN0IHRoaXMgaXMgdGhl
IGNhdXNlIG9mIGEgbGFyZ2UgbWVtb3J5IHJlZ3Jlc3Npb24KKyAgICAgICAgKFJlcXVlc3RlZCBi
eSBqb25sZWVfIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKwor
ICAgICAgICAiRW5hYmxlIGFzeW5jIGltYWdlIGRlY29kaW5nIGZvciBsYXJnZSBpbWFnZXMiCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUwMzkKKyAg
ICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjEzNjE4CisKIDIwMTctMDMt
MDkgIEJyaWFuIE5pY2hvbHNvbiAgPGJuaWNob2xzb25AbW96aWxsYS5jb20+IGFuZCBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRXhwb3NlIHB1
YmxpYyBBUElzIGZvciBjb250ZW50IGZpbHRlcnMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQppbmRleCBkODk1YTQ0YTQxOThiYzlmMTA4MmIxNGZlNDJmMGNjY2U0
YjM4NmM1Li41MTg3ZDkxNDgxYmMxN2QwMzMxM2ZkMDFmYzk4MDEyMWVlM2YxYjZlIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC05NTYsOCArOTU2LDYg
QEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiAg
ICAgW3ByZWZlcmVuY2VzIHNldEhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxl
ZDpOT107CiAgICAgCiAgICAgW3ByZWZlcmVuY2VzIHNldE1lZGlhU3RyZWFtRW5hYmxlZDpZRVNd
OwotICAgIAotICAgIFtwcmVmZXJlbmNlcyBzZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJs
ZWQ6Tk9dOwogCiAgICAgW1dlYlByZWZlcmVuY2VzIF9jbGVhck5ldHdvcmtMb2FkZXJTZXNzaW9u
XTsKICAgICBbV2ViUHJlZmVyZW5jZXMgX3NldEN1cnJlbnROZXR3b3JrTG9hZGVyU2Vzc2lvbkNv
b2tpZUFjY2VwdFBvbGljeTpOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1
bWVudERvbWFpbl07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDFlY2ExZDI4NGJkZTg3MzAxMDgwMWQ1Mzc5ZjA5YzhhZjlhOTNhMDYuLmExYTQ5NmU4MzY2
ZGI4ODlmYmY2M2JiYTYyZTlmODUyMWVjOGQ1MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC03MTksOCArNzE5LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYg
b3B0aW8KICAgICBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29raWVzKFdLQ29udGV4dEdldENv
b2tpZU1hbmFnZXIobV9jb250ZXh0LmdldCgpKSk7CiAKICAgICBXS1ByZWZlcmVuY2VzU2V0TW9j
a0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgCi0gICAgV0tQ
cmVmZXJlbmNlc1NldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZChwcmVmZXJlbmNlcywg
ZmFsc2UpOwogCiAgICAgcGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVz
KCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>