<?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>109014</bug_id>
          
          <creation_ts>2013-02-05 23:57:47 -0800</creation_ts>
          <short_desc>REGRESSION(r141964): caused performance regression (Requested by hayato on #webkit).</short_desc>
          <delta_ts>2013-02-06 00:01:54 -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>528+ (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>107777</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>dglazkov</cc>
    
    <cc>hayato</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826129</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 23:57:47 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/141964 broke the build:
caused performance regression (Requested by hayato 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>826131</commentid>
    <comment_count>1</comment_count>
      <attachid>186770</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 23:58:22 -0800</bug_when>
    <thetext>Created attachment 186770
ROLLOUT of r141964

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>826136</commentid>
    <comment_count>2</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-06 00:01:31 -0800</bug_when>
    <thetext>It seems that the patch caused a performance regression.

Let me paste URLs rniwa game me in #webkit.

http://build.chromium.org/f/chromium/perf/chromium-rel-win7-webkit/intl2/report.html?history=150&amp;rev=-1

http://webkit-perf.appspot.com/graph.html#tests=[[3395411,2001,3001],[3395402,2001,3001],[3630247,2001,3001]]&amp;sel=1360097136438.8433,1360136808728,328.6474501108647,364.56762749445676&amp;displayrange=7&amp;datatype=running


The patch should be just a factoring and should not cause any regression.
Let me revert it at first. Then let me investigate the cause without any pressure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826139</commentid>
    <comment_count>3</comment_count>
      <attachid>186770</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 00:01:51 -0800</bug_when>
    <thetext>Comment on attachment 186770
ROLLOUT of r141964

Clearing flags on attachment: 186770

Committed r141973: &lt;http://trac.webkit.org/changeset/141973&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826140</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 00:01:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186770</attachid>
            <date>2013-02-05 23:58:22 -0800</date>
            <delta_ts>2013-02-06 00:01:51 -0800</delta_ts>
            <desc>ROLLOUT of r141964</desc>
            <filename>bug-109014-20130206075459.patch</filename>
            <type>text/plain</type>
            <size>38628</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ4NGI0NTZkYzk4NTNm
OWY4MTc1MzVmODg5ZTJiMTVjMDExOTVjZS4uNjBlYWMzNWE3MDk3MTY0MTNkNDg5NmVlMzQzMWVj
NmM2OWRjODQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEzLTAyLTA1ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTQxOTY0LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNDE5NjQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwOTAxNAorCisgICAgICAgIGNhdXNlZCBwZXJmb3JtYW5jZSByZWdyZXNzaW9u
IChSZXF1ZXN0ZWQgYnkgaGF5YXRvIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0FsbEluT25lLmNw
cDoKKyAgICAgICAgKiBjc3MvRG9jdW1lbnRSdWxlU2V0cy5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogY3NzL0RvY3VtZW50UnVsZVNldHMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29s
dmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RSdWxlc0Zyb21V
c2VyU3R5bGVTaGVldHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpt
YWtlUnVsZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpyZXNldEF1dGhv
clN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFwcGVuZEF1dGhvclN0
eWxlU2hlZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6Om1hdGNoQXV0aG9y
UnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6bWF0Y2hVc2VyUnVsZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y2xhc3NOYW1lc0FmZmVjdGVkQnlS
dWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpsb2NhdGVDb3VzaW5MaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpsb2NhdGVTaGFyZWRTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNoZWNrUmVnaW9uU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJlc29sdmVyOjpjb2xsZWN0RmVhdHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
ZXNvbHZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVy
Lmg6CisgICAgICAgIChTdHlsZVJlc29sdmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVz
b2x2ZXI6OnVzZXNTaWJsaW5nUnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZl
cjo6dXNlc0ZpcnN0TGluZVJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OnVzZXNCZWZvcmVBZnRlclJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
Omhhc1NlbGVjdG9yRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2
ZXI6Omhhc1NlbGVjdG9yRm9yQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZl
cjo6aGFzU2VsZWN0b3JGb3JJZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50U3R5bGVTaGVldENv
bGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVj
dGlvbjo6dXBkYXRlQWN0aXZlU3R5bGVTaGVldHMpOgorCiAyMDEzLTAyLTA1ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgI2lmIFVTRShWOCkgdG8g
Tm9kZTo6VjhDb2xsZWN0YWJsZUR1cmluZ01pbm9yR0NGbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDg5MzFkZjMwOWE4YzFkNjBjNGExNjBkNTYwYjQ1ZWVhYjg2NThmNjMuLmVjMjg2YmJkZDJh
MWEyZGVlNWI5YWNlNDE0OTY0ODM0YWZlMGUxZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MDcwLDcgKzEwNzAsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3NzL0NTU1ZhbHVlLmNw
cAogICAgIGNzcy9DU1NWYWx1ZUxpc3QuY3BwCiAgICAgY3NzL0NTU1ZhbHVlUG9vbC5jcHAKLSAg
ICBjc3MvRG9jdW1lbnRSdWxlU2V0cy5jcHAKICAgICBjc3MvRm9udEZlYXR1cmVWYWx1ZS5jcHAK
ICAgICBjc3MvRm9udFZhbHVlLmNwcAogICAgIGNzcy9JbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNTcxNTc1YTg1ODdiYWE0N2ZhZGI5
NjU3NzA5ZGZlMDRjMmZjYTg5OS4uYWFlNWMzYjhlZWExZTg0NGQ5YWEzNDQ4YWMzYjlkNzM5MDk1
MGRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yNjIwLDggKzI2MjAsNiBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wu
aCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlVmFsdWUuaCBcCiAJU291cmNlL1dl
YkNvcmUvY3NzL0Rhc2hib2FyZFJlZ2lvbi5oIFwKLQlTb3VyY2UvV2ViQ29yZS9jc3MvRG9jdW1l
bnRSdWxlU2V0cy5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2Nzcy9Eb2N1bWVudFJ1bGVTZXRzLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRW
YWx1ZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggOTRlNmUxYjk2ZTFhNzRiYWY1OTNhMjE0ZDJhMTgz
NjM5Y2FmNzk0Ni4uNTI5M2NhZDU0Y2IxZmNhZTY4ZWRhYzliYWNkMWVkNTk2MGIxNzBlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCkBAIC0zMDcsNyArMzA3LDYgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL0NTU1Zh
bHVlLmNwcCBcCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5jcHAgXAogICAgIGNzcy9DU1NWYWx1ZVBv
b2wuY3BwIFwKLSAgICBjc3MvRG9jdW1lbnRSdWxlU2V0cy5jcHAgXAogICAgIGNzcy9Gb250RmVh
dHVyZVZhbHVlLmNwcCBcCiAgICAgY3NzL0ZvbnRWYWx1ZS5jcHAgXAogICAgIGNzcy9JbnNwZWN0
b3JDU1NPTVdyYXBwZXJzLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzVhZGMwMTk0NWU3NTBk
MDhiY2ViNzRjNDdiODQxNmY4ZWRiZGY2My4uZmMxMTU1Y2EwNmRlNzIxOTZiZjUzYTU3ZWE5YWVl
MTBhNDQ5NTQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTU0NSw4ICsxNTQ1LDYgQEAKICAgICAg
ICAgICAgICdjc3MvQ1NTVmFyaWFibGVWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvQ291bnRl
ci5oJywKICAgICAgICAgICAgICdjc3MvRGFzaGJvYXJkUmVnaW9uLmgnLAotICAgICAgICAgICAg
J2Nzcy9Eb2N1bWVudFJ1bGVTZXRzLmNwcCcsCi0gICAgICAgICAgICAnY3NzL0RvY3VtZW50UnVs
ZVNldHMuaCcsCiAgICAgICAgICAgICAnY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwJywKICAgICAg
ICAgICAgICdjc3MvRm9udEZlYXR1cmVWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvRm9udFZh
bHVlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMjI3MWE3NjYyNGM1ZTEyNmI1ZTFjNTkwNmI1ZWY4NmU2ZTAzZGY0Ny4u
YzJhZmVmZGUxNTk1OTVhZDVlYzdhMzkzMDNhMWZlYTBlYzY5YjlmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQzNyw4ICsx
NDM3LDYgQEAKIAkJNEExRTcxQTYxNEUxMDZBQzAwNjI2RjlEIC8qIEpTU2hhZG93Um9vdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEExRTcxQTQxNEUx
MDZBQzAwNjI2RjlEIC8qIEpTU2hhZG93Um9vdC5oICovOyB9OwogCQk0QTM4QkY1MDE0RkUxQzA5
MDA2MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTM4QkY0RTE0RkUxQzA5MDA2MTI1MTIgLyog
V2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAgKi87IH07CiAJCTRBMzhCRjUxMTRGRTFDMDkwMDYx
MjUxMiAvKiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTM4QkY0RjE0RkUxQzA5MDA2MTI1MTIgLyogV2ViU29j
a2V0RGVmbGF0ZUZyYW1lci5oICovOyB9OwotCQk0QTRGNDhBOTE2QjBERkMwMDBFREJCMjkgLyog
RG9jdW1lbnRSdWxlU2V0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0QTRGNDhBNzE2QjBERkMwMDBFREJCMjkgLyogRG9jdW1lbnRSdWxlU2V0cy5j
cHAgKi87IH07Ci0JCTRBNEY0OEFBMTZCMERGQzAwMEVEQkIyOSAvKiBEb2N1bWVudFJ1bGVTZXRz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTRGNDhB
ODE2QjBERkMwMDBFREJCMjkgLyogRG9jdW1lbnRSdWxlU2V0cy5oICovOyB9OwogCQk0QTVBMkFE
QjE2MUU3RTAwMDA1ODg5REQgLyogV2ViU29ja2V0RXh0ZW5zaW9uUGFyc2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNUEyQUQ5MTYxRTdFMDAw
MDU4ODlERCAvKiBXZWJTb2NrZXRFeHRlbnNpb25QYXJzZXIuY3BwICovOyB9OwogCQk0QTVBMkFE
QzE2MUU3RTAwMDA1ODg5REQgLyogV2ViU29ja2V0RXh0ZW5zaW9uUGFyc2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTVBMkFEQTE2MUU3RTAwMDA1
ODg5REQgLyogV2ViU29ja2V0RXh0ZW5zaW9uUGFyc2VyLmggKi87IH07CiAJCTRBNkEwQzVCMTUy
MzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2QTBDNTkxNTIzMkYyNDAwQjA5
QzZFIC8qIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgKi87IH07CkBAIC04ODE5LDggKzg4
MTcsNiBAQAogCQk0QTFFNzFBNDE0RTEwNkFDMDA2MjZGOUQgLyogSlNTaGFkb3dSb290LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2hhZG93Um9vdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0QTM4QkY0RTE0RkUxQzA5MDA2MTI1MTIgLyogV2ViU29ja2V0
RGVmbGF0ZUZyYW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcDsgcGF0aCA9IE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXREZWZsYXRlRnJhbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEEz
OEJGNEYxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tldERlZmxhdGVGcmFtZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oOyBwYXRo
ID0gTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEE0RjQ4QTcxNkIwREZDMDAwRURCQjI5IC8qIERvY3VtZW50
UnVsZVNldHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1l
bnRSdWxlU2V0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRBNEY0OEE4MTZC
MERGQzAwMEVEQkIyOSAvKiBEb2N1bWVudFJ1bGVTZXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERvY3VtZW50UnVsZVNldHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEE1QTJBRDkxNjFFN0UwMDAwNTg4OUREIC8qIFdlYlNvY2tldEV4dGVuc2lvblBhcnNl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXRFeHRl
bnNpb25QYXJzZXIuY3BwOyBwYXRoID0gTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVu
c2lvblBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNUEyQURBMTYx
RTdFMDAwMDU4ODlERCAvKiBXZWJTb2NrZXRFeHRlbnNpb25QYXJzZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0RXh0ZW5zaW9uUGFyc2VyLmg7IHBhdGggPSBN
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uUGFyc2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTRBNkEwQzU5MTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIxODQ2LDggKzIxODQyLDYgQEAKIAkJCQlFNDlCRDlGOTEzMUZEMkVEMDAzQzU2RjAgLyog
Q1NTVmFsdWVQb29sLmggKi8sCiAJCQkJQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIxIC8qIENTU1Zh
cmlhYmxlVmFsdWUuaCAqLywKIAkJCQlBODBFNkNFMTBBMTk4OUNBMDA3RkI4QzUgLyogRGFzaGJv
YXJkUmVnaW9uLmggKi8sCi0JCQkJNEE0RjQ4QTcxNkIwREZDMDAwRURCQjI5IC8qIERvY3VtZW50
UnVsZVNldHMuY3BwICovLAotCQkJCTRBNEY0OEE4MTZCMERGQzAwMEVEQkIyOSAvKiBEb2N1bWVu
dFJ1bGVTZXRzLmggKi8sCiAJCQkJNEE2RTlGQzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0
dXJlVmFsdWUuY3BwICovLAogCQkJCTRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVh
dHVyZVZhbHVlLmggKi8sCiAJCQkJQTgwRTZDQzcwQTE5ODlDQTAwN0ZCOEM1IC8qIEZvbnRWYWx1
ZS5jcHAgKi8sCkBAIC0yMzQyNCw3ICsyMzQxOCw2IEBACiAJCQkJQ0UwNTdGQTYxMjIwNzMxMTAw
QTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MTQ5NDdGRkUxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNDRkJBRTgwQjUxNTJFRDAwMDFGMUQ3IC8qIERvY3VtZW50UGFyc2VyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0QTRGNDhBQTE2QjBERkMwMDBFREJCMjkgLyogRG9jdW1lbnRS
dWxlU2V0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ2RTcxQUQxNjY4ODk5RDAwMzIwQzEzIC8q
IERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3RTI3NjUx
NjAzNkVEMjAwRUUyQUZCIC8qIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBCOTA1NjFBMEYyNTc4QkYwMDk1RkY2QSAvKiBEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwNjgsNyArMjcwNjEsNiBAQAogCQkJCUNF
MDU3RkE1MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTQ5NDdGRkQxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3Jk
ZXJlZE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEMyMjgwRTExRDRBNTk3MDBENUE3RDMg
LyogRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNEE0RjQ4QTkxNkIwREZD
MDAwRURCQjI5IC8qIERvY3VtZW50UnVsZVNldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUQ2
RTcxQUMxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFNDdFMjc2ODE2MDM2RURDMDBFRTJBRkIgLyogRG9jdW1lbnRTdHls
ZVNoZWV0Q29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwQjkwNTYxOTBGMjU3OEJF
MDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NBbGxJbk9uZS5jcHAKaW5kZXggZTczZTM1OGIyNzA5NDA4N2ExODk2YmE2
YzEwNjRiNTM2ZjU1NjEyMS4uYzgxYzNiMjFmOThkOTZkMTQzYzkyY2JhZWMxMzkwODVjYWRmMGYx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCkBAIC02OSw3ICs2OSw2IEBACiAjaW5j
bHVkZSAiQ1NTVmFsdWUuY3BwIgogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5jcHAiCiAjaW5jbHVk
ZSAiQ1NTVmFsdWVQb29sLmNwcCIKLSNpbmNsdWRlICJEb2N1bWVudFJ1bGVTZXRzLmNwcCIKICNp
bmNsdWRlICJJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCIKICNpbmNsdWRlICJSdWxlRmVhdHVy
ZS5jcHAiCiAjaW5jbHVkZSAiUnVsZVNldC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRG9jdW1lbnRSdWxlU2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRG9jdW1lbnRS
dWxlU2V0cy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwNTk3Y2I1N2Q3MDMx
NDg4ODk1YTk5YjJhNTQ0OTY0NTBmYjE2YmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RvY3VtZW50UnVsZVNldHMuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDE5
OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqICAgICAgICAgICAoQykgMjAwNC0yMDA1
IEFsbGFuIFNhbmRmZWxkIEplbnNlbiAoa2RlQGNhcmV3b2xmLmNvbSkKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNyBOaWNob2xhcyBTaGFua3MgKHdlYmtpdEBuaWNrc2hhbmtzLmNvbSkKLSAq
IENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDcgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykg
MjAwNywgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRw
Oi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTEsIENvZGUgQXVy
b3JhIEZvcnVtLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJEb2N1bWVudFJ1bGVTZXRzLmgiCi0KLSNpbmNsdWRlICJDU1NE
ZWZhdWx0U3R5bGVTaGVldHMuaCIKLSNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oIgotI2luY2x1ZGUgIk1lZGlhUXVlcnlF
dmFsdWF0b3IuaCIKLSNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCi0jaW5jbHVkZSAiU3R5bGVT
aGVldENvbnRlbnRzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRG9jdW1lbnRSdWxlU2V0
czo6RG9jdW1lbnRSdWxlU2V0cygpCi17Ci19Ci0KLURvY3VtZW50UnVsZVNldHM6On5Eb2N1bWVu
dFJ1bGVTZXRzKCkKLXsKLX0KLQotdm9pZCBEb2N1bWVudFJ1bGVTZXRzOjppbml0VXNlclN0eWxl
KERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24qIHN0eWxlU2hlZXRDb2xsZWN0aW9uLCBjb25z
dCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBtZWRpdW0sIFN0eWxlUmVzb2x2ZXImIHJlc29sdmVyKQot
ewotICAgIE93blB0cjxSdWxlU2V0PiB0ZW1wVXNlclN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCk7
Ci0gICAgaWYgKENTU1N0eWxlU2hlZXQqIHBhZ2VVc2VyU2hlZXQgPSBzdHlsZVNoZWV0Q29sbGVj
dGlvbi0+cGFnZVVzZXJTaGVldCgpKQotICAgICAgICB0ZW1wVXNlclN0eWxlLT5hZGRSdWxlc0Zy
b21TaGVldChwYWdlVXNlclNoZWV0LT5jb250ZW50cygpLCBtZWRpdW0sICZyZXNvbHZlcik7Ci0g
ICAgY29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNoZWV0cyhzdHlsZVNoZWV0Q29sbGVjdGlvbi0+
aW5qZWN0ZWRVc2VyU3R5bGVTaGVldHMoKSwgKnRlbXBVc2VyU3R5bGUsIG1lZGl1bSwgcmVzb2x2
ZXIpOwotICAgIGNvbGxlY3RSdWxlc0Zyb21Vc2VyU3R5bGVTaGVldHMoc3R5bGVTaGVldENvbGxl
Y3Rpb24tPmRvY3VtZW50VXNlclN0eWxlU2hlZXRzKCksICp0ZW1wVXNlclN0eWxlLCBtZWRpdW0s
IHJlc29sdmVyKTsKLSAgICBpZiAodGVtcFVzZXJTdHlsZS0+bV9ydWxlQ291bnQgPiAwIHx8IHRl
bXBVc2VyU3R5bGUtPm1fcGFnZVJ1bGVzLnNpemUoKSA+IDApCi0gICAgICAgIG1fdXNlclN0eWxl
ID0gdGVtcFVzZXJTdHlsZS5yZWxlYXNlKCk7Ci19Ci0KLXZvaWQgRG9jdW1lbnRSdWxlU2V0czo6
Y29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0
eWxlU2hlZXQ+ID4mIHVzZXJTaGVldHMsIFJ1bGVTZXQmIHVzZXJTdHlsZSwgY29uc3QgTWVkaWFR
dWVyeUV2YWx1YXRvciYgbWVkaXVtLCBTdHlsZVJlc29sdmVyJiByZXNvbHZlcikKLXsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdXNlclNoZWV0cy5zaXplKCk7ICsraSkgewotICAgICAg
ICBBU1NFUlQodXNlclNoZWV0c1tpXS0+Y29udGVudHMoKS0+aXNVc2VyU3R5bGVTaGVldCgpKTsK
LSAgICAgICAgdXNlclN0eWxlLmFkZFJ1bGVzRnJvbVNoZWV0KHVzZXJTaGVldHNbaV0tPmNvbnRl
bnRzKCksIG1lZGl1bSwgJnJlc29sdmVyKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBQYXNzT3duUHRy
PFJ1bGVTZXQ+IG1ha2VSdWxlU2V0KGNvbnN0IFZlY3RvcjxSdWxlRmVhdHVyZT4mIHJ1bGVzKQot
ewotICAgIHNpemVfdCBzaXplID0gcnVsZXMuc2l6ZSgpOwotICAgIGlmICghc2l6ZSkKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgT3duUHRyPFJ1bGVTZXQ+IHJ1bGVTZXQgPSBSdWxlU2V0
OjpjcmVhdGUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAg
ICAgcnVsZVNldC0+YWRkUnVsZShydWxlc1tpXS5ydWxlLCBydWxlc1tpXS5zZWxlY3RvckluZGV4
LCBydWxlc1tpXS5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luID8gUnVsZUhhc0RvY3VtZW50U2Vj
dXJpdHlPcmlnaW4gOiBSdWxlSGFzTm9TcGVjaWFsU3RhdGUpOwotICAgIHJ1bGVTZXQtPnNocmlu
a1RvRml0KCk7Ci0gICAgcmV0dXJuIHJ1bGVTZXQucmVsZWFzZSgpOwotfQotCi12b2lkIERvY3Vt
ZW50UnVsZVNldHM6OnJlc2V0QXV0aG9yU3R5bGUoKQotewotICAgIG1fYXV0aG9yU3R5bGUgPSBS
dWxlU2V0OjpjcmVhdGUoKTsKLSAgICBtX2F1dGhvclN0eWxlLT5kaXNhYmxlQXV0b1Nocmlua1Rv
Rml0KCk7Ci19Ci0KLXZvaWQgRG9jdW1lbnRSdWxlU2V0czo6YXBwZW5kQXV0aG9yU3R5bGVTaGVl
dHModW5zaWduZWQgZmlyc3ROZXcsIGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4g
PiYgc3R5bGVTaGVldHMsIE1lZGlhUXVlcnlFdmFsdWF0b3IqIG1lZGl1bSwgSW5zcGVjdG9yQ1NT
T01XcmFwcGVycyYgaW5zcGVjdG9yQ1NTT01XcmFwcGVycywgYm9vbCBpc1ZpZXdTb3VyY2UsIFN0
eWxlUmVzb2x2ZXIqIHJlc29sdmVyKQotewotICAgIC8vIFRoaXMgaGFuZGxlcyBzaGVldHMgYWRk
ZWQgdG8gdGhlIGVuZCBvZiB0aGUgc3R5bGVzaGVldCBsaXN0IG9ubHkuIEluIG90aGVyIGNhc2Vz
IHRoZSBzdHlsZSByZXNvbHZlcgotICAgIC8vIG5lZWRzIHRvIGJlIHJlY29uc3RydWN0ZWQuIFRv
IGhhbmRsZSBpbnNlcnRpb25zIHRvbyB0aGUgcnVsZSBvcmRlciBudW1iZXJzIHdvdWxkIG5lZWQg
dG8gYmUgdXBkYXRlZC4KLSAgICB1bnNpZ25lZCBzaXplID0gc3R5bGVTaGVldHMuc2l6ZSgpOwot
ICAgIGZvciAodW5zaWduZWQgaSA9IGZpcnN0TmV3OyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAg
IENTU1N0eWxlU2hlZXQqIGNzc1NoZWV0ID0gc3R5bGVTaGVldHNbaV0uZ2V0KCk7Ci0gICAgICAg
IEFTU0VSVCghY3NzU2hlZXQtPmRpc2FibGVkKCkpOwotICAgICAgICBpZiAoY3NzU2hlZXQtPm1l
ZGlhUXVlcmllcygpICYmICFtZWRpdW0tPmV2YWwoY3NzU2hlZXQtPm1lZGlhUXVlcmllcygpLCBy
ZXNvbHZlcikpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgU3R5bGVTaGVldENvbnRl
bnRzKiBzaGVldCA9IGNzc1NoZWV0LT5jb250ZW50cygpOwotI2lmIEVOQUJMRShTVFlMRV9TQ09Q
RUQpIHx8IEVOQUJMRShTSEFET1dfRE9NKQotICAgICAgICBpZiAoY29uc3QgQ29udGFpbmVyTm9k
ZSogc2NvcGUgPSBTdHlsZVNjb3BlUmVzb2x2ZXI6OnNjb3BlRm9yKGNzc1NoZWV0KSkgewotICAg
ICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSBhIGRlcGVuZGVuY3kgdG8gY2FsbGluZyBhIFN0eWxl
UmVzb2x2ZXIncyBtZW1iZXIgZnVuY3Rpb24uCi0gICAgICAgICAgICAvLyBJZiB3ZSBjYW4gYXZv
aWQgY2FsbGluZyByZXNvbHZlci0+ZW5zdXJlU2NvcGVSZXNvbHZlcigpIGhlcmUsIHdlIGRvbid0
IGhhdmUgdG8gaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIi4KLSAgICAgICAgICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4OTAKLSAgICAgICAgICAgIHJl
c29sdmVyLT5lbnN1cmVTY29wZVJlc29sdmVyKCktPmVuc3VyZVJ1bGVTZXRGb3Ioc2NvcGUpLT5h
ZGRSdWxlc0Zyb21TaGVldChzaGVldCwgKm1lZGl1bSwgcmVzb2x2ZXIsIHNjb3BlKTsKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgbV9hdXRob3JTdHls
ZS0+YWRkUnVsZXNGcm9tU2hlZXQoc2hlZXQsICptZWRpdW0sIHJlc29sdmVyKTsKLSAgICAgICAg
aW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jb2xsZWN0RnJvbVN0eWxlU2hlZXRJZk5lZWRlZChjc3NT
aGVldCk7Ci0gICAgfQotICAgIG1fYXV0aG9yU3R5bGUtPnNocmlua1RvRml0KCk7Ci0gICAgY29s
bGVjdEZlYXR1cmVzKGlzVmlld1NvdXJjZSwgcmVzb2x2ZXItPnNjb3BlUmVzb2x2ZXIoKSk7Ci19
Ci0KLXZvaWQgRG9jdW1lbnRSdWxlU2V0czo6Y29sbGVjdEZlYXR1cmVzKGJvb2wgaXNWaWV3U291
cmNlLCBTdHlsZVNjb3BlUmVzb2x2ZXIqIHNjb3BlUmVzb2x2ZXIpCi17Ci0gICAgbV9mZWF0dXJl
cy5jbGVhcigpOwotICAgIC8vIENvbGxlY3QgYWxsIGlkcyBhbmQgcnVsZXMgdXNpbmcgc2libGlu
ZyBzZWxlY3RvcnMgKDpmaXJzdC1jaGlsZCBhbmQgc2ltaWxhcikKLSAgICAvLyBpbiB0aGUgY3Vy
cmVudCBzZXQgb2Ygc3R5bGVzaGVldHMuIFN0eWxlIHNoYXJpbmcgY29kZSB1c2VzIHRoaXMgaW5m
b3JtYXRpb24gdG8gcmVqZWN0Ci0gICAgLy8gc2hhcmluZyBjYW5kaWRhdGVzLgotICAgIGlmIChD
U1NEZWZhdWx0U3R5bGVTaGVldHM6OmRlZmF1bHRTdHlsZSkKLSAgICAgICAgbV9mZWF0dXJlcy5h
ZGQoQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpkZWZhdWx0U3R5bGUtPmZlYXR1cmVzKCkpOwotICAg
IGlmIChtX2F1dGhvclN0eWxlKQotICAgICAgICBtX2ZlYXR1cmVzLmFkZChtX2F1dGhvclN0eWxl
LT5mZWF0dXJlcygpKTsKLSAgICBpZiAoaXNWaWV3U291cmNlKQotICAgICAgICBtX2ZlYXR1cmVz
LmFkZChDU1NEZWZhdWx0U3R5bGVTaGVldHM6OnZpZXdTb3VyY2VTdHlsZSgpLT5mZWF0dXJlcygp
KTsKLQotICAgIGlmIChzY29wZVJlc29sdmVyKQotICAgICAgICBzY29wZVJlc29sdmVyLT5jb2xs
ZWN0RmVhdHVyZXNUbyhtX2ZlYXR1cmVzKTsKLSAgICBpZiAobV91c2VyU3R5bGUpCi0gICAgICAg
IG1fZmVhdHVyZXMuYWRkKG1fdXNlclN0eWxlLT5mZWF0dXJlcygpKTsKLQotICAgIG1fc2libGlu
Z1J1bGVTZXQgPSBtYWtlUnVsZVNldChtX2ZlYXR1cmVzLnNpYmxpbmdSdWxlcyk7Ci0gICAgbV91
bmNvbW1vbkF0dHJpYnV0ZVJ1bGVTZXQgPSBtYWtlUnVsZVNldChtX2ZlYXR1cmVzLnVuY29tbW9u
QXR0cmlidXRlUnVsZXMpOwotfQotCi12b2lkIERvY3VtZW50UnVsZVNldHM6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Ci17Ci0gICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkTWVtYmVyKG1fYXV0aG9yU3R5bGUpOwotICAgIGlu
Zm8uYWRkTWVtYmVyKG1fdXNlclN0eWxlKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX2ZlYXR1cmVz
KTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX3NpYmxpbmdSdWxlU2V0KTsKLSAgICBpbmZvLmFkZE1l
bWJlcihtX3VuY29tbW9uQXR0cmlidXRlUnVsZVNldCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Eb2N1bWVudFJ1bGVTZXRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvRG9jdW1lbnRSdWxlU2V0cy5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0NmE1MGZjNDUzOThjOWQzZGM1NTcyYmY4Y2Q5YmVkOGNmYzk4MzZiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Eb2N1bWVudFJ1bGVTZXRzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIERv
Y3VtZW50UnVsZVNldHNfaAotI2RlZmluZSBEb2N1bWVudFJ1bGVTZXRzX2gKLQotI2luY2x1ZGUg
IlJ1bGVGZWF0dXJlLmgiCi0KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBDU1NTdHlsZVJ1bGU7Ci1jbGFzcyBDU1NTdHlsZVNoZWV0OwotY2xhc3MgRG9j
dW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjsKLWNsYXNzIEluc3BlY3RvckNTU09NV3JhcHBlcnM7
Ci1jbGFzcyBNZWRpYVF1ZXJ5RXZhbHVhdG9yOwotY2xhc3MgUnVsZVNldDsKLWNsYXNzIFN0eWxl
UmVzb2x2ZXI7Ci1jbGFzcyBTdHlsZVNjb3BlUmVzb2x2ZXI7Ci0KLWNsYXNzIERvY3VtZW50UnVs
ZVNldHMgewotcHVibGljOgotICAgIERvY3VtZW50UnVsZVNldHMoKTsKLSAgICB+RG9jdW1lbnRS
dWxlU2V0cygpOwotICAgIFJ1bGVTZXQqIGF1dGhvclN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9h
dXRob3JTdHlsZS5nZXQoKTsgfQotICAgIFJ1bGVTZXQqIHVzZXJTdHlsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdXNlclN0eWxlLmdldCgpOyB9Ci0gICAgUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKCkg
eyByZXR1cm4gbV9mZWF0dXJlczsgfQotICAgIGNvbnN0IFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJl
cygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXM7IH0KLSAgICBSdWxlU2V0KiBzaWJsaW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9zaWJsaW5nUnVsZVNldC5nZXQoKTsgfQotICAgIFJ1bGVTZXQqIHVu
Y29tbW9uQXR0cmlidXRlKCkgY29uc3QgeyByZXR1cm4gbV91bmNvbW1vbkF0dHJpYnV0ZVJ1bGVT
ZXQuZ2V0KCk7IH0KLQotICAgIHZvaWQgaW5pdFVzZXJTdHlsZShEb2N1bWVudFN0eWxlU2hlZXRD
b2xsZWN0aW9uKiwgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYsIFN0eWxlUmVzb2x2ZXImKTsK
LSAgICB2b2lkIHJlc2V0QXV0aG9yU3R5bGUoKTsKLSAgICB2b2lkIGFwcGVuZEF1dGhvclN0eWxl
U2hlZXRzKHVuc2lnbmVkIGZpcnN0TmV3LCBjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hl
ZXQ+ID4mLCBNZWRpYVF1ZXJ5RXZhbHVhdG9yKiwgSW5zcGVjdG9yQ1NTT01XcmFwcGVycyYsIGJv
b2wgaXNWaWV3U291cmNlLCBTdHlsZVJlc29sdmVyKik7Ci0KLSAgICB2b2lkIGNvbGxlY3RGZWF0
dXJlcyhib29sIGlzVmlld1NvdXJjZSwgU3R5bGVTY29wZVJlc29sdmVyKik7Ci0gICAgdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0g
ICAgdm9pZCBjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8Q1NTU3R5bGVTaGVldD4gPiYsIFJ1bGVTZXQmIHVzZXJTdHlsZSwgY29uc3QgTWVkaWFRdWVy
eUV2YWx1YXRvciYsIFN0eWxlUmVzb2x2ZXImKTsKLSAgICBPd25QdHI8UnVsZVNldD4gbV9hdXRo
b3JTdHlsZTsKLSAgICBPd25QdHI8UnVsZVNldD4gbV91c2VyU3R5bGU7Ci0gICAgUnVsZUZlYXR1
cmVTZXQgbV9mZWF0dXJlczsKLSAgICBPd25QdHI8UnVsZVNldD4gbV9zaWJsaW5nUnVsZVNldDsK
LSAgICBPd25QdHI8UnVsZVNldD4gbV91bmNvbW1vbkF0dHJpYnV0ZVJ1bGVTZXQ7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEb2N1bWVudFJ1bGVTZXRzX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA5NzA1MDBjNmYxYWY0MTlmOWEzY2Fi
ZjRiZWE3MDc3MTY5ZDg5OTEzLi4xODI5MGYzODU2NDg5NTM3NmU1ODk2YWNhMjQwYTgwMDc3MjYy
NzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNTksMTAgKzI1OSwx
NiBAQCBTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3VtZW50KiBkb2N1bWVudCwgYm9v
bCBtYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCiAgICAgaWYgKG1fcm9vdERlZmF1bHRTdHlsZSAm
JiB2aWV3KQogICAgICAgICBtX21lZGl1bSA9IGFkb3B0UHRyKG5ldyBNZWRpYVF1ZXJ5RXZhbHVh
dG9yKHZpZXctPm1lZGlhVHlwZSgpLCB2aWV3LT5mcmFtZSgpLCBtX3Jvb3REZWZhdWx0U3R5bGUu
Z2V0KCkpKTsKIAotICAgIG1fcnVsZVNldHMucmVzZXRBdXRob3JTdHlsZSgpOworICAgIHJlc2V0
QXV0aG9yU3R5bGUoKTsKIAogICAgIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24qIHN0eWxl
U2hlZXRDb2xsZWN0aW9uID0gZG9jdW1lbnQtPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCk7Ci0gICAg
bV9ydWxlU2V0cy5pbml0VXNlclN0eWxlKHN0eWxlU2hlZXRDb2xsZWN0aW9uLCAqbV9tZWRpdW0s
ICp0aGlzKTsKKyAgICBPd25QdHI8UnVsZVNldD4gdGVtcFVzZXJTdHlsZSA9IFJ1bGVTZXQ6OmNy
ZWF0ZSgpOworICAgIGlmIChDU1NTdHlsZVNoZWV0KiBwYWdlVXNlclNoZWV0ID0gc3R5bGVTaGVl
dENvbGxlY3Rpb24tPnBhZ2VVc2VyU2hlZXQoKSkKKyAgICAgICAgdGVtcFVzZXJTdHlsZS0+YWRk
UnVsZXNGcm9tU2hlZXQocGFnZVVzZXJTaGVldC0+Y29udGVudHMoKSwgKm1fbWVkaXVtLCB0aGlz
KTsKKyAgICBjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKHN0eWxlU2hlZXRDb2xsZWN0
aW9uLT5pbmplY3RlZFVzZXJTdHlsZVNoZWV0cygpLCAqdGVtcFVzZXJTdHlsZSk7CisgICAgY29s
bGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNoZWV0cyhzdHlsZVNoZWV0Q29sbGVjdGlvbi0+ZG9jdW1l
bnRVc2VyU3R5bGVTaGVldHMoKSwgKnRlbXBVc2VyU3R5bGUpOworICAgIGlmICh0ZW1wVXNlclN0
eWxlLT5tX3J1bGVDb3VudCA+IDAgfHwgdGVtcFVzZXJTdHlsZS0+bV9wYWdlUnVsZXMuc2l6ZSgp
ID4gMCkKKyAgICAgICAgbV91c2VyU3R5bGUgPSB0ZW1wVXNlclN0eWxlLnJlbGVhc2UoKTsKIAog
I2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKGRvY3VtZW50LT5zdmdFeHRlbnNpb25zKCkp
IHsKQEAgLTI3Niw5ICsyODIsNTYgQEAgU3R5bGVSZXNvbHZlcjo6U3R5bGVSZXNvbHZlcihEb2N1
bWVudCogZG9jdW1lbnQsIGJvb2wgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzKQogICAgIGFwcGVu
ZEF1dGhvclN0eWxlU2hlZXRzKDAsIHN0eWxlU2hlZXRDb2xsZWN0aW9uLT5hY3RpdmVBdXRob3JT
dHlsZVNoZWV0cygpKTsKIH0KIAordm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0UnVsZXNGcm9t
VXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiYgdXNl
clNoZWV0cywgUnVsZVNldCYgdXNlclN0eWxlKQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCB1c2VyU2hlZXRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEFTU0VSVCh1c2VyU2hlZXRz
W2ldLT5jb250ZW50cygpLT5pc1VzZXJTdHlsZVNoZWV0KCkpOworICAgICAgICB1c2VyU3R5bGUu
YWRkUnVsZXNGcm9tU2hlZXQodXNlclNoZWV0c1tpXS0+Y29udGVudHMoKSwgKm1fbWVkaXVtLCB0
aGlzKTsKKyAgICB9Cit9CisKK3N0YXRpYyBQYXNzT3duUHRyPFJ1bGVTZXQ+IG1ha2VSdWxlU2V0
KGNvbnN0IFZlY3RvcjxSdWxlRmVhdHVyZT4mIHJ1bGVzKQoreworICAgIHNpemVfdCBzaXplID0g
cnVsZXMuc2l6ZSgpOworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgT3duUHRyPFJ1bGVTZXQ+IHJ1bGVTZXQgPSBSdWxlU2V0OjpjcmVhdGUoKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgcnVsZVNldC0+YWRkUnVsZShy
dWxlc1tpXS5ydWxlLCBydWxlc1tpXS5zZWxlY3RvckluZGV4LCBydWxlc1tpXS5oYXNEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luID8gUnVsZUhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gOiBSdWxlSGFz
Tm9TcGVjaWFsU3RhdGUpOworICAgIHJ1bGVTZXQtPnNocmlua1RvRml0KCk7CisgICAgcmV0dXJu
IHJ1bGVTZXQucmVsZWFzZSgpOworfQorCit2b2lkIFN0eWxlUmVzb2x2ZXI6OnJlc2V0QXV0aG9y
U3R5bGUoKQoreworICAgIG1fYXV0aG9yU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKTsKKyAgICBt
X2F1dGhvclN0eWxlLT5kaXNhYmxlQXV0b1Nocmlua1RvRml0KCk7Cit9CisKIHZvaWQgU3R5bGVS
ZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHModW5zaWduZWQgZmlyc3ROZXcsIGNvbnN0
IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiYgc3R5bGVTaGVldHMpCiB7Ci0gICAgbV9y
dWxlU2V0cy5hcHBlbmRBdXRob3JTdHlsZVNoZWV0cyhmaXJzdE5ldywgc3R5bGVTaGVldHMsIG1f
bWVkaXVtLmdldCgpLCBtX2luc3BlY3RvckNTU09NV3JhcHBlcnMsIGRvY3VtZW50KCktPmlzVmll
d1NvdXJjZSgpLCB0aGlzKTsKKyAgICAvLyBUaGlzIGhhbmRsZXMgc2hlZXRzIGFkZGVkIHRvIHRo
ZSBlbmQgb2YgdGhlIHN0eWxlc2hlZXQgbGlzdCBvbmx5LiBJbiBvdGhlciBjYXNlcyB0aGUgc3R5
bGUgcmVzb2x2ZXIKKyAgICAvLyBuZWVkcyB0byBiZSByZWNvbnN0cnVjdGVkLiBUbyBoYW5kbGUg
aW5zZXJ0aW9ucyB0b28gdGhlIHJ1bGUgb3JkZXIgbnVtYmVycyB3b3VsZCBuZWVkIHRvIGJlIHVw
ZGF0ZWQuCisgICAgdW5zaWduZWQgc2l6ZSA9IHN0eWxlU2hlZXRzLnNpemUoKTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBmaXJzdE5ldzsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBDU1NTdHls
ZVNoZWV0KiBjc3NTaGVldCA9IHN0eWxlU2hlZXRzW2ldLmdldCgpOworICAgICAgICBBU1NFUlQo
IWNzc1NoZWV0LT5kaXNhYmxlZCgpKTsKKyAgICAgICAgaWYgKGNzc1NoZWV0LT5tZWRpYVF1ZXJp
ZXMoKSAmJiAhbV9tZWRpdW0tPmV2YWwoY3NzU2hlZXQtPm1lZGlhUXVlcmllcygpLCB0aGlzKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBTdHlsZVNoZWV0Q29udGVudHMqIHNoZWV0
ID0gY3NzU2hlZXQtPmNvbnRlbnRzKCk7CisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkgfHwgRU5B
QkxFKFNIQURPV19ET00pCisgICAgICAgIGlmIChjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9
IFN0eWxlU2NvcGVSZXNvbHZlcjo6c2NvcGVGb3IoY3NzU2hlZXQpKSB7CisgICAgICAgICAgICBl
bnN1cmVTY29wZVJlc29sdmVyKCktPmVuc3VyZVJ1bGVTZXRGb3Ioc2NvcGUpLT5hZGRSdWxlc0Zy
b21TaGVldChzaGVldCwgKm1fbWVkaXVtLCB0aGlzLCBzY29wZSk7CisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQorI2VuZGlmCisKKyAgICAgICAgbV9hdXRob3JTdHlsZS0+YWRkUnVs
ZXNGcm9tU2hlZXQoc2hlZXQsICptX21lZGl1bSwgdGhpcyk7CisgICAgICAgIG1faW5zcGVjdG9y
Q1NTT01XcmFwcGVycy5jb2xsZWN0RnJvbVN0eWxlU2hlZXRJZk5lZWRlZChjc3NTaGVldCk7Cisg
ICAgfQorICAgIG1fYXV0aG9yU3R5bGUtPnNocmlua1RvRml0KCk7CisgICAgY29sbGVjdEZlYXR1
cmVzKCk7CisgICAgCiAgICAgaWYgKGRvY3VtZW50KCktPnJlbmRlcmVyKCkgJiYgZG9jdW1lbnQo
KS0+cmVuZGVyZXIoKS0+c3R5bGUoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+cmVuZGVyZXIoKS0+
c3R5bGUoKS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IoKSk7CiAKQEAgLTU4Niw3ICs2Mzks
NyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1hdGNoQXV0aG9yUnVsZXMoTWF0Y2hSZXN1bHQmIHJl
c3VsdCwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBN
YXRjaCBnbG9iYWwgYXV0aG9yIHJ1bGVzLgotICAgIE1hdGNoUmVxdWVzdCBtYXRjaFJlcXVlc3Qo
bV9ydWxlU2V0cy5hdXRob3JTdHlsZSgpLCBpbmNsdWRlRW1wdHlSdWxlcyk7CisgICAgTWF0Y2hS
ZXF1ZXN0IG1hdGNoUmVxdWVzdChtX2F1dGhvclN0eWxlLmdldCgpLCBpbmNsdWRlRW1wdHlSdWxl
cyk7CiAgICAgUnVsZVJhbmdlIHJ1bGVSYW5nZSA9IHJlc3VsdC5yYW5nZXMuYXV0aG9yUnVsZVJh
bmdlKCk7CiAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXMobWF0Y2hSZXF1ZXN0LCBydWxlUmFuZ2Up
OwogICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKG1hdGNoUmVxdWVzdCwgcnVsZVJh
bmdlKTsKQEAgLTU5NywxMyArNjUwLDEzIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hBdXRo
b3JSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzCiAKIHZv
aWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hVc2VyUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9v
bCBpbmNsdWRlRW1wdHlSdWxlcykKIHsKLSAgICBpZiAoIW1fcnVsZVNldHMudXNlclN0eWxlKCkp
CisgICAgaWYgKCFtX3VzZXJTdHlsZSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIG1fc3Rh
dGUubWF0Y2hlZFJ1bGVzLmNsZWFyKCk7CiAKICAgICByZXN1bHQucmFuZ2VzLmxhc3RVc2VyUnVs
ZSA9IHJlc3VsdC5tYXRjaGVkUHJvcGVydGllcy5zaXplKCkgLSAxOwotICAgIE1hdGNoUmVxdWVz
dCBtYXRjaFJlcXVlc3QobV9ydWxlU2V0cy51c2VyU3R5bGUoKSwgaW5jbHVkZUVtcHR5UnVsZXMp
OworICAgIE1hdGNoUmVxdWVzdCBtYXRjaFJlcXVlc3QobV91c2VyU3R5bGUuZ2V0KCksIGluY2x1
ZGVFbXB0eVJ1bGVzKTsKICAgICBSdWxlUmFuZ2UgcnVsZVJhbmdlID0gcmVzdWx0LnJhbmdlcy51
c2VyUnVsZVJhbmdlKCk7CiAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXMobWF0Y2hSZXF1ZXN0LCBy
dWxlUmFuZ2UpOwogICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKG1hdGNoUmVxdWVz
dCwgcnVsZVJhbmdlKTsKQEAgLTczOSw3ICs3OTIsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1h
dGNoQWxsUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNsdWRlU01JTFByb3BlcnRp
ZQogYm9vbCBTdHlsZVJlc29sdmVyOjpjbGFzc05hbWVzQWZmZWN0ZWRCeVJ1bGVzKGNvbnN0IFNw
YWNlU3BsaXRTdHJpbmcmIGNsYXNzTmFtZXMpIGNvbnN0CiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGNsYXNzTmFtZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKG1fcnVsZVNl
dHMuZmVhdHVyZXMoKS5jbGFzc2VzSW5SdWxlcy5jb250YWlucyhjbGFzc05hbWVzW2ldLmltcGwo
KSkpCisgICAgICAgIGlmIChtX2ZlYXR1cmVzLmNsYXNzZXNJblJ1bGVzLmNvbnRhaW5zKGNsYXNz
TmFtZXNbaV0uaW1wbCgpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC04MTQsNyArODY3LDcgQEAgTm9kZSogU3R5bGVSZXNvbHZlcjo6bG9j
YXRlQ291c2luTGlzdChFbGVtZW50KiBwYXJlbnQsIHVuc2lnbmVkJiB2aXNpdGVkTm9kZUNvdW4K
ICAgICBpZiAocC0+aXNTVkdFbGVtZW50KCkgJiYgc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KHAp
LT5hbmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMoKSkKICAgICAgICAgcmV0dXJuIDA7CiAjZW5k
aWYKLSAgICBpZiAocC0+aGFzSUQoKSAmJiBtX3J1bGVTZXRzLmZlYXR1cmVzKCkuaWRzSW5SdWxl
cy5jb250YWlucyhwLT5pZEZvclN0eWxlUmVzb2x1dGlvbigpLmltcGwoKSkpCisgICAgaWYgKHAt
Pmhhc0lEKCkgJiYgbV9mZWF0dXJlcy5pZHNJblJ1bGVzLmNvbnRhaW5zKHAtPmlkRm9yU3R5bGVS
ZXNvbHV0aW9uKCkuaW1wbCgpKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZW5kZXJTdHls
ZSogcGFyZW50U3R5bGUgPSBwLT5yZW5kZXJTdHlsZSgpOwpAQCAtOTk2LDcgKzEwNDksNyBAQCBi
b29sIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChTdHlsZWRFbGVtZW50
KiBlbGVtZW50KSBjb25zdAogICAgIGlmIChlbGVtZW50LT5hZGRpdGlvbmFsUHJlc2VudGF0aW9u
QXR0cmlidXRlU3R5bGUoKSAhPSBzdGF0ZS5zdHlsZWRFbGVtZW50LT5hZGRpdGlvbmFsUHJlc2Vu
dGF0aW9uQXR0cmlidXRlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYg
KGVsZW1lbnQtPmhhc0lEKCkgJiYgbV9ydWxlU2V0cy5mZWF0dXJlcygpLmlkc0luUnVsZXMuY29u
dGFpbnMoZWxlbWVudC0+aWRGb3JTdHlsZVJlc29sdXRpb24oKS5pbXBsKCkpKQorICAgIGlmIChl
bGVtZW50LT5oYXNJRCgpICYmIG1fZmVhdHVyZXMuaWRzSW5SdWxlcy5jb250YWlucyhlbGVtZW50
LT5pZEZvclN0eWxlUmVzb2x1dGlvbigpLmltcGwoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICBpZiAoZWxlbWVudC0+aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMTA3OSw3ICsxMTMyLDcgQEAgUmVuZGVyU3R5bGUqIFN0eWxlUmVzb2x2
ZXI6OmxvY2F0ZVNoYXJlZFN0eWxlKCkKICAgICAgICAgcmV0dXJuIDA7CiAjZW5kaWYKICAgICAv
LyBJZHMgc3RvcCBzdHlsZSBzaGFyaW5nIGlmIHRoZXkgc2hvdyB1cCBpbiB0aGUgc3R5bGVzaGVl
dHMuCi0gICAgaWYgKHN0YXRlLnN0eWxlZEVsZW1lbnQtPmhhc0lEKCkgJiYgbV9ydWxlU2V0cy5m
ZWF0dXJlcygpLmlkc0luUnVsZXMuY29udGFpbnMoc3RhdGUuc3R5bGVkRWxlbWVudC0+aWRGb3JT
dHlsZVJlc29sdXRpb24oKS5pbXBsKCkpKQorICAgIGlmIChzdGF0ZS5zdHlsZWRFbGVtZW50LT5o
YXNJRCgpICYmIG1fZmVhdHVyZXMuaWRzSW5SdWxlcy5jb250YWlucyhzdGF0ZS5zdHlsZWRFbGVt
ZW50LT5pZEZvclN0eWxlUmVzb2x1dGlvbigpLmltcGwoKSkpCiAgICAgICAgIHJldHVybiAwOwog
ICAgIGlmIChwYXJlbnRFbGVtZW50UHJldmVudHNTaGFyaW5nKHN0YXRlLmVsZW1lbnQtPnBhcmVu
dEVsZW1lbnQoKSkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMTExMSwxMCArMTE2NCwxMCBAQCBS
ZW5kZXJTdHlsZSogU3R5bGVSZXNvbHZlcjo6bG9jYXRlU2hhcmVkU3R5bGUoKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIC8vIENhbid0IHNoYXJlIGlmIHNpYmxpbmcgcnVsZXMgYXBwbHkuIFRo
aXMgaXMgY2hlY2tlZCBhdCB0aGUgZW5kIGFzIGl0IHNob3VsZCByYXJlbHkgZmFpbC4KLSAgICBp
ZiAoc3R5bGVTaGFyaW5nQ2FuZGlkYXRlTWF0Y2hlc1J1bGVTZXQobV9ydWxlU2V0cy5zaWJsaW5n
KCkpKQorICAgIGlmIChzdHlsZVNoYXJpbmdDYW5kaWRhdGVNYXRjaGVzUnVsZVNldChtX3NpYmxp
bmdSdWxlU2V0LmdldCgpKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgLy8gQ2FuJ3Qgc2hhcmUg
aWYgYXR0cmlidXRlIHJ1bGVzIGFwcGx5LgotICAgIGlmIChzdHlsZVNoYXJpbmdDYW5kaWRhdGVN
YXRjaGVzUnVsZVNldChtX3J1bGVTZXRzLnVuY29tbW9uQXR0cmlidXRlKCkpKQorICAgIGlmIChz
dHlsZVNoYXJpbmdDYW5kaWRhdGVNYXRjaGVzUnVsZVNldChtX3VuY29tbW9uQXR0cmlidXRlUnVs
ZVNldC5nZXQoKSkpCiAgICAgICAgIHJldHVybiAwOwogICAgIC8vIENhbid0IHNoYXJlIGlmIEBo
b3N0IEAtcnVsZXMgYXBwbHkuCiAgICAgaWYgKHN0eWxlU2hhcmluZ0NhbmRpZGF0ZU1hdGNoZXNI
b3N0UnVsZXMoKSkKQEAgLTEzODMsNyArMTQzNiw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJT
CiAgICAgYm9vbCBuZWVkc0NvbGxlY3Rpb24gPSBmYWxzZTsKICAgICBDU1NEZWZhdWx0U3R5bGVT
aGVldHM6OmVuc3VyZURlZmF1bHRTdHlsZVNoZWV0c0ZvckVsZW1lbnQoZWxlbWVudCwgbmVlZHND
b2xsZWN0aW9uKTsKICAgICBpZiAobmVlZHNDb2xsZWN0aW9uKQotICAgICAgICBtX3J1bGVTZXRz
LmNvbGxlY3RGZWF0dXJlcyhkb2N1bWVudCgpLT5pc1ZpZXdTb3VyY2UoKSwgbV9zY29wZVJlc29s
dmVyLmdldCgpKTsKKyAgICAgICAgY29sbGVjdEZlYXR1cmVzKCk7CiAKICAgICBNYXRjaFJlc3Vs
dCBtYXRjaFJlc3VsdDsKICAgICBpZiAobWF0Y2hpbmdCZWhhdmlvciA9PSBNYXRjaE9ubHlVc2Vy
QWdlbnRSdWxlcykKQEAgLTE1ODQsOSArMTYzNyw5IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KQogICAgIAogICAgIE1h
dGNoUmVzdWx0IHJlc3VsdDsKICAgICBtYXRjaFBhZ2VSdWxlcyhyZXN1bHQsIENTU0RlZmF1bHRT
dHlsZVNoZWV0czo6ZGVmYXVsdFByaW50U3R5bGUsIGlzTGVmdCwgaXNGaXJzdCwgcGFnZSk7Ci0g
ICAgbWF0Y2hQYWdlUnVsZXMocmVzdWx0LCBtX3J1bGVTZXRzLnVzZXJTdHlsZSgpLCBpc0xlZnQs
IGlzRmlyc3QsIHBhZ2UpOworICAgIG1hdGNoUGFnZVJ1bGVzKHJlc3VsdCwgbV91c2VyU3R5bGUu
Z2V0KCksIGlzTGVmdCwgaXNGaXJzdCwgcGFnZSk7CiAgICAgLy8gT25seSBjb25zaWRlciB0aGUg
Z2xvYmFsIGF1dGhvciBSdWxlU2V0IGZvciBAcGFnZSBydWxlcywgYXMgcGVyIHRoZSBIVE1MNSBz
cGVjLgotICAgIG1hdGNoUGFnZVJ1bGVzKHJlc3VsdCwgbV9ydWxlU2V0cy5hdXRob3JTdHlsZSgp
LCBpc0xlZnQsIGlzRmlyc3QsIHBhZ2UpOworICAgIG1hdGNoUGFnZVJ1bGVzKHJlc3VsdCwgbV9h
dXRob3JTdHlsZS5nZXQoKSwgaXNMZWZ0LCBpc0ZpcnN0LCBwYWdlKTsKICAgICBtX3N0YXRlLmxp
bmVIZWlnaHRWYWx1ZSA9IDA7CiAgICAgYm9vbCBpbmhlcml0ZWRPbmx5ID0gZmFsc2U7CiAjaWYg
RU5BQkxFKENTU19WQVJJQUJMRVMpCkBAIC0xOTU2LDE4ICsyMDA5LDE4IEBAIGJvb2wgU3R5bGVS
ZXNvbHZlcjo6Y2hlY2tSZWdpb25TdHlsZShFbGVtZW50KiByZWdpb25FbGVtZW50KQogICAgIC8v
IEZJWE1FIChCVUcgNzI0NzIpOiBXZSBkb24ndCBhZGQgQC13ZWJraXQtcmVnaW9uIHJ1bGVzIG9m
IHNjb3BlZCBzdHlsZSBzaGVldHMgZm9yIHRoZSBtb21lbnQsCiAgICAgLy8gc28gYWxsIHJlZ2lv
biBydWxlcyBhcmUgZ2xvYmFsIGJ5IGRlZmF1bHQuIFZlcmlmeSB3aGV0aGVyIHRoYXQgY2FuIHN0
YW5kIG9yIG5lZWRzIGNoYW5naW5nLgogCi0gICAgdW5zaWduZWQgcnVsZXNTaXplID0gbV9ydWxl
U2V0cy5hdXRob3JTdHlsZSgpLT5tX3JlZ2lvblNlbGVjdG9yc0FuZFJ1bGVTZXRzLnNpemUoKTsK
KyAgICB1bnNpZ25lZCBydWxlc1NpemUgPSBtX2F1dGhvclN0eWxlLT5tX3JlZ2lvblNlbGVjdG9y
c0FuZFJ1bGVTZXRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcnVsZXNT
aXplOyArK2kpIHsKLSAgICAgICAgQVNTRVJUKG1fcnVsZVNldHMuYXV0aG9yU3R5bGUoKS0+bV9y
ZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cy5hdChpKS5ydWxlU2V0LmdldCgpKTsKLSAgICAgICAg
aWYgKGNoZWNrUmVnaW9uU2VsZWN0b3IobV9ydWxlU2V0cy5hdXRob3JTdHlsZSgpLT5tX3JlZ2lv
blNlbGVjdG9yc0FuZFJ1bGVTZXRzLmF0KGkpLnNlbGVjdG9yLCByZWdpb25FbGVtZW50KSkKKyAg
ICAgICAgQVNTRVJUKG1fYXV0aG9yU3R5bGUtPm1fcmVnaW9uU2VsZWN0b3JzQW5kUnVsZVNldHMu
YXQoaSkucnVsZVNldC5nZXQoKSk7CisgICAgICAgIGlmIChjaGVja1JlZ2lvblNlbGVjdG9yKG1f
YXV0aG9yU3R5bGUtPm1fcmVnaW9uU2VsZWN0b3JzQW5kUnVsZVNldHMuYXQoaSkuc2VsZWN0b3Is
IHJlZ2lvbkVsZW1lbnQpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAg
aWYgKG1fcnVsZVNldHMudXNlclN0eWxlKCkpIHsKLSAgICAgICAgcnVsZXNTaXplID0gbV9ydWxl
U2V0cy51c2VyU3R5bGUoKS0+bV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cy5zaXplKCk7Cisg
ICAgaWYgKG1fdXNlclN0eWxlKSB7CisgICAgICAgIHJ1bGVzU2l6ZSA9IG1fdXNlclN0eWxlLT5t
X3JlZ2lvblNlbGVjdG9yc0FuZFJ1bGVTZXRzLnNpemUoKTsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHJ1bGVzU2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBBU1NFUlQobV9ydWxl
U2V0cy51c2VyU3R5bGUoKS0+bV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cy5hdChpKS5ydWxl
U2V0LmdldCgpKTsKLSAgICAgICAgICAgIGlmIChjaGVja1JlZ2lvblNlbGVjdG9yKG1fcnVsZVNl
dHMudXNlclN0eWxlKCktPm1fcmVnaW9uU2VsZWN0b3JzQW5kUnVsZVNldHMuYXQoaSkuc2VsZWN0
b3IsIHJlZ2lvbkVsZW1lbnQpKQorICAgICAgICAgICAgQVNTRVJUKG1fdXNlclN0eWxlLT5tX3Jl
Z2lvblNlbGVjdG9yc0FuZFJ1bGVTZXRzLmF0KGkpLnJ1bGVTZXQuZ2V0KCkpOworICAgICAgICAg
ICAgaWYgKGNoZWNrUmVnaW9uU2VsZWN0b3IobV91c2VyU3R5bGUtPm1fcmVnaW9uU2VsZWN0b3Jz
QW5kUnVsZVNldHMuYXQoaSkuc2VsZWN0b3IsIHJlZ2lvbkVsZW1lbnQpKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMjgzMSw3ICsyODg0LDcgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1Zh
bHVlKiB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc3R5bGUtPnNldENvbnRlbnQo
dmFsdWUuaXNOdWxsKCkgPyBlbXB0eUF0b20gOiB2YWx1ZS5pbXBsKCksIGRpZFNldCk7CiAgICAg
ICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIC8vIHJl
Z2lzdGVyIHRoZSBmYWN0IHRoYXQgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBhZmZlY3RzIHRoZSBzdHls
ZQotICAgICAgICAgICAgICAgICAgICBtX3J1bGVTZXRzLmZlYXR1cmVzKCkuYXR0cnNJblJ1bGVz
LmFkZChhdHRyLmxvY2FsTmFtZSgpLmltcGwoKSk7CisgICAgICAgICAgICAgICAgICAgIG1fZmVh
dHVyZXMuYXR0cnNJblJ1bGVzLmFkZChhdHRyLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VmFsdWUtPmlzQ291bnRlcigpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIENvdW50ZXIqIGNvdW50ZXJWYWx1ZSA9IGNvbnRlbnRWYWx1ZS0+Z2V0Q291
bnRlclZhbHVlKCk7CiAgICAgICAgICAgICAgICAgICAgIEVMaXN0U3R5bGVUeXBlIGxpc3RTdHls
ZVR5cGUgPSBOb25lTGlzdFN0eWxlOwpAQCAtNTExMyw2ICs1MTY2LDI4IEBAIHZvaWQgU3R5bGVS
ZXNvbHZlcjo6bG9hZFBlbmRpbmdSZXNvdXJjZXMoKQogI2VuZGlmCiB9CiAKK3ZvaWQgU3R5bGVS
ZXNvbHZlcjo6Y29sbGVjdEZlYXR1cmVzKCkKK3sKKyAgICBtX2ZlYXR1cmVzLmNsZWFyKCk7Cisg
ICAgLy8gQ29sbGVjdCBhbGwgaWRzIGFuZCBydWxlcyB1c2luZyBzaWJsaW5nIHNlbGVjdG9ycyAo
OmZpcnN0LWNoaWxkIGFuZCBzaW1pbGFyKQorICAgIC8vIGluIHRoZSBjdXJyZW50IHNldCBvZiBz
dHlsZXNoZWV0cy4gU3R5bGUgc2hhcmluZyBjb2RlIHVzZXMgdGhpcyBpbmZvcm1hdGlvbiB0byBy
ZWplY3QKKyAgICAvLyBzaGFyaW5nIGNhbmRpZGF0ZXMuCisgICAgaWYgKENTU0RlZmF1bHRTdHls
ZVNoZWV0czo6ZGVmYXVsdFN0eWxlKQorICAgICAgICBtX2ZlYXR1cmVzLmFkZChDU1NEZWZhdWx0
U3R5bGVTaGVldHM6OmRlZmF1bHRTdHlsZS0+ZmVhdHVyZXMoKSk7CisgICAgaWYgKG1fYXV0aG9y
U3R5bGUpCisgICAgICAgIG1fZmVhdHVyZXMuYWRkKG1fYXV0aG9yU3R5bGUtPmZlYXR1cmVzKCkp
OworICAgIGlmIChkb2N1bWVudCgpLT5pc1ZpZXdTb3VyY2UoKSkKKyAgICAgICAgbV9mZWF0dXJl
cy5hZGQoQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjp2aWV3U291cmNlU3R5bGUoKS0+ZmVhdHVyZXMo
KSk7CisKKyAgICBpZiAobV9zY29wZVJlc29sdmVyKQorICAgICAgICBtX3Njb3BlUmVzb2x2ZXIt
PmNvbGxlY3RGZWF0dXJlc1RvKG1fZmVhdHVyZXMpOworICAgIGlmIChtX3VzZXJTdHlsZSkKKyAg
ICAgICAgbV9mZWF0dXJlcy5hZGQobV91c2VyU3R5bGUtPmZlYXR1cmVzKCkpOworCisgICAgbV9z
aWJsaW5nUnVsZVNldCA9IG1ha2VSdWxlU2V0KG1fZmVhdHVyZXMuc2libGluZ1J1bGVzKTsKKyAg
ICBtX3VuY29tbW9uQXR0cmlidXRlUnVsZVNldCA9IG1ha2VSdWxlU2V0KG1fZmVhdHVyZXMudW5j
b21tb25BdHRyaWJ1dGVSdWxlcyk7Cit9CisKIHZvaWQgU3R5bGVSZXNvbHZlcjo6TWF0Y2hlZFBy
b3BlcnRpZXM6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwpAQCAtNTEzNyw3ICs1MjEyLDExIEBA
IHZvaWQgTWVkaWFRdWVyeVJlc3VsdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkTWVtYmVyKG1fcnVsZVNldHMsICJydWxlU2V0cyIp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fYXV0aG9yU3R5bGUsICJhdXRob3JTdHlsZSIpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fdXNlclN0eWxlLCAidXNlclN0eWxlIik7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9mZWF0dXJlcywgImZlYXR1cmVzIik7CisgICAgaW5mby5hZGRNZW1iZXIobV9zaWJs
aW5nUnVsZVNldCwgInNpYmxpbmdSdWxlU2V0Iik7CisgICAgaW5mby5hZGRNZW1iZXIobV91bmNv
bW1vbkF0dHJpYnV0ZVJ1bGVTZXQsICJ1bmNvbW1vbkF0dHJpYnV0ZVJ1bGVTZXQiKTsKICAgICBp
bmZvLmFkZE1lbWJlcihtX2tleWZyYW1lc1J1bGVNYXAsICJrZXlmcmFtZXNSdWxlTWFwIik7CiAg
ICAgaW5mby5hZGRNZW1iZXIobV9tYXRjaGVkUHJvcGVydGllc0NhY2hlLCAibWF0Y2hlZFByb3Bl
cnRpZXNDYWNoZSIpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWF0Y2hlZFByb3BlcnRpZXNDYWNo
ZVN3ZWVwVGltZXIsICJtYXRjaGVkUHJvcGVydGllc0NhY2hlU3dlZXBUaW1lciIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggZThjYTNjMDdkM2QxMjAwNDM4ZmIzOWM5ZTAyOTUw
ZTJiMzgxNGRlMS4uODRjM2NkMWZjMDM3ZGFiMGRmZDc1YThmZmQ3ZDhiOWE1YzQ5NzNmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAi
Q1NTUnVsZUxpc3QuaCIKICNpbmNsdWRlICJDU1NUb1N0eWxlTWFwLmgiCiAjaW5jbHVkZSAiQ1NT
VmFsdWVMaXN0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRSdWxlU2V0cy5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckNTU09NV3JhcHBlcnMuaCIKICNpbmNsdWRlICJMaW5rSGFzaC5oIgogI2luY2x1ZGUg
Ik1lZGlhUXVlcnlFeHAuaCIKQEAgLTE3MCw3ICsxNjksNiBAQCBwdWJsaWM6CiAgICAgUmVuZGVy
U3R5bGUqIHJvb3RFbGVtZW50U3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLnJvb3RFbGVt
ZW50U3R5bGU7IH0KICAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0
ZS5lbGVtZW50OyB9CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9k
b2N1bWVudDsgfQotICAgIFN0eWxlU2NvcGVSZXNvbHZlciogc2NvcGVSZXNvbHZlcigpIGNvbnN0
IHsgcmV0dXJuIG1fc2NvcGVSZXNvbHZlci5nZXQoKTsgfQogICAgIGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aW9uKCkgeyByZXR1cm4gc3R5bGUoKS0+Zm9udERlc2NyaXB0aW9u
KCk7IH0KICAgICBjb25zdCBGb250RGVzY3JpcHRpb24mIHBhcmVudEZvbnREZXNjcmlwdGlvbigp
IHsgcmV0dXJuIHBhcmVudFN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpOyB9CiAgICAgdm9pZCBz
ZXRGb250RGVzY3JpcHRpb24oY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24p
IHsgbV9zdGF0ZS5mb250RGlydHkgfD0gc3R5bGUoKS0+c2V0Rm9udERlc2NyaXB0aW9uKGZvbnRE
ZXNjcmlwdGlvbik7IH0KQEAgLTE4MSwxMyArMTc5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFRleHRPcmllbnRhdGlvbihUZXh0T3JpZW50YXRpb24gdGV4dE9yaWVudGF0aW9uKSB7IG1fc3Rh
dGUuZm9udERpcnR5IHw9IHN0eWxlKCktPnNldFRleHRPcmllbnRhdGlvbih0ZXh0T3JpZW50YXRp
b24pOyB9CiAgICAgYm9vbCBoYXNQYXJlbnROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5w
YXJlbnROb2RlOyB9CiAKLSAgICAvLyBGSVhNRTogSXQgY291bGQgYmUgYmV0dGVyIHRvIGNhbGwg
bV9ydWxlU2V0cy5hcHBlbmRBdXRob3JTdHlsZVNoZWV0cygpIGRpcmVjdGx5IGFmdGVyIHdlIGZh
Y3RvciBTdHlsZVJzb2x2ZXIgZnVydGhlci4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4ODkwCisgICAgdm9pZCByZXNldEF1dGhvclN0eWxlKCk7CiAg
ICAgdm9pZCBhcHBlbmRBdXRob3JTdHlsZVNoZWV0cyh1bnNpZ25lZCBmaXJzdE5ldywgY29uc3Qg
VmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0PiA+Jik7CiAKLSAgICBEb2N1bWVudFJ1bGVTZXRz
JiBydWxlU2V0cygpIHsgcmV0dXJuIG1fcnVsZVNldHM7IH0KLSAgICBjb25zdCBEb2N1bWVudFJ1
bGVTZXRzJiBydWxlU2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fcnVsZVNldHM7IH0KLQorcHJpdmF0
ZToKICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKSB8fCBFTkFCTEUoU0hBRE9XX0RPTSkKICAgICBT
dHlsZVNjb3BlUmVzb2x2ZXIqIGVuc3VyZVNjb3BlUmVzb2x2ZXIoKQogICAgIHsKQEAgLTIwNiw5
ICsyMDEsOSBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAKLXByaXZhdGU6CiAgICAgdm9pZCBp
bml0Rm9yU3R5bGVSZXNvbHZlKEVsZW1lbnQqLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSAw
LCBQc2V1ZG9JZCA9IE5PUFNFVURPKTsKICAgICB2b2lkIGluaXRFbGVtZW50KEVsZW1lbnQqKTsK
KyAgICB2b2lkIGNvbGxlY3RGZWF0dXJlcygpOwogICAgIFJlbmRlclN0eWxlKiBsb2NhdGVTaGFy
ZWRTdHlsZSgpOwogICAgIGJvb2wgc3R5bGVTaGFyaW5nQ2FuZGlkYXRlTWF0Y2hlc1J1bGVTZXQo
UnVsZVNldCopOwogICAgIGJvb2wgc3R5bGVTaGFyaW5nQ2FuZGlkYXRlTWF0Y2hlc0hvc3RSdWxl
cygpOwpAQCAtMjc2LDkgKzI3MSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgY2hlY2tSZWdpb25T
dHlsZShFbGVtZW50KiByZWdpb25FbGVtZW50KTsKIAotICAgIGJvb2wgdXNlc1NpYmxpbmdSdWxl
cygpIGNvbnN0IHsgcmV0dXJuICFtX3J1bGVTZXRzLmZlYXR1cmVzKCkuc2libGluZ1J1bGVzLmlz
RW1wdHkoKTsgfQotICAgIGJvb2wgdXNlc0ZpcnN0TGluZVJ1bGVzKCkgY29uc3QgeyByZXR1cm4g
bV9ydWxlU2V0cy5mZWF0dXJlcygpLnVzZXNGaXJzdExpbmVSdWxlczsgfQotICAgIGJvb2wgdXNl
c0JlZm9yZUFmdGVyUnVsZXMoKSBjb25zdCB7IHJldHVybiBtX3J1bGVTZXRzLmZlYXR1cmVzKCku
dXNlc0JlZm9yZUFmdGVyUnVsZXM7IH0KKyAgICBib29sIHVzZXNTaWJsaW5nUnVsZXMoKSBjb25z
dCB7IHJldHVybiAhbV9mZWF0dXJlcy5zaWJsaW5nUnVsZXMuaXNFbXB0eSgpOyB9CisgICAgYm9v
bCB1c2VzRmlyc3RMaW5lUnVsZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVzLnVzZXNGaXJz
dExpbmVSdWxlczsgfQorICAgIGJvb2wgdXNlc0JlZm9yZUFmdGVyUnVsZXMoKSBjb25zdCB7IHJl
dHVybiBtX2ZlYXR1cmVzLnVzZXNCZWZvcmVBZnRlclJ1bGVzOyB9CiAKICAgICBzdGF0aWMgYm9v
bCBjcmVhdGVUcmFuc2Zvcm1PcGVyYXRpb25zKENTU1ZhbHVlKiBpblZhbHVlLCBSZW5kZXJTdHls
ZSogaW5TdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgVHJhbnNmb3JtT3BlcmF0aW9ucyYg
b3V0T3BlcmF0aW9ucyk7CiAgICAgCkBAIC00MTcsNyArNDEyLDEyIEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBpc0ZpcnN0UGFnZShpbnQgcGFnZUluZGV4KSBjb25zdDsKICAgICBTdHJpbmcgcGFnZU5h
bWUoaW50IHBhZ2VJbmRleCkgY29uc3Q7CiAKLSAgICBEb2N1bWVudFJ1bGVTZXRzIG1fcnVsZVNl
dHM7CisgICAgT3duUHRyPFJ1bGVTZXQ+IG1fYXV0aG9yU3R5bGU7CisgICAgT3duUHRyPFJ1bGVT
ZXQ+IG1fdXNlclN0eWxlOworCisgICAgUnVsZUZlYXR1cmVTZXQgbV9mZWF0dXJlczsKKyAgICBP
d25QdHI8UnVsZVNldD4gbV9zaWJsaW5nUnVsZVNldDsKKyAgICBPd25QdHI8UnVsZVNldD4gbV91
bmNvbW1vbkF0dHJpYnV0ZVJ1bGVTZXQ7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3Ry
aW5nSW1wbCosIFJlZlB0cjxTdHlsZVJ1bGVLZXlmcmFtZXM+ID4gS2V5ZnJhbWVzUnVsZU1hcDsK
ICAgICBLZXlmcmFtZXNSdWxlTWFwIG1fa2V5ZnJhbWVzUnVsZU1hcDsKQEAgLTUyNCw2ICs1MjQs
OCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0YXRpYyBSZW5kZXJTdHlsZSogc19zdHlsZU5v
dFlldEF2YWlsYWJsZTsKIAorICAgIHZvaWQgY29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNoZWV0
cyhjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+ID4mLCBSdWxlU2V0JiB1c2VyU3R5
bGUpOworCiAgICAgdm9pZCBjYWNoZUJvcmRlckFuZEJhY2tncm91bmQoKTsKIAogcHJpdmF0ZToK
QEAgLTYwMSwxOSArNjAzLDE5IEBAIHByaXZhdGU6CiBpbmxpbmUgYm9vbCBTdHlsZVJlc29sdmVy
OjpoYXNTZWxlY3RvckZvckF0dHJpYnV0ZShjb25zdCBBdG9taWNTdHJpbmcgJmF0dHJpYnV0ZU5h
bWUpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFhdHRyaWJ1dGVOYW1lLmlzRW1wdHkoKSk7Ci0gICAg
cmV0dXJuIG1fcnVsZVNldHMuZmVhdHVyZXMoKS5hdHRyc0luUnVsZXMuY29udGFpbnMoYXR0cmli
dXRlTmFtZS5pbXBsKCkpOworICAgIHJldHVybiBtX2ZlYXR1cmVzLmF0dHJzSW5SdWxlcy5jb250
YWlucyhhdHRyaWJ1dGVOYW1lLmltcGwoKSk7CiB9CiAKIGlubGluZSBib29sIFN0eWxlUmVzb2x2
ZXI6Omhhc1NlbGVjdG9yRm9yQ2xhc3MoY29uc3QgQXRvbWljU3RyaW5nJiBjbGFzc1ZhbHVlKSBj
b25zdAogewogICAgIEFTU0VSVCghY2xhc3NWYWx1ZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBt
X3J1bGVTZXRzLmZlYXR1cmVzKCkuY2xhc3Nlc0luUnVsZXMuY29udGFpbnMoY2xhc3NWYWx1ZS5p
bXBsKCkpOworICAgIHJldHVybiBtX2ZlYXR1cmVzLmNsYXNzZXNJblJ1bGVzLmNvbnRhaW5zKGNs
YXNzVmFsdWUuaW1wbCgpKTsKIH0KIAogaW5saW5lIGJvb2wgU3R5bGVSZXNvbHZlcjo6aGFzU2Vs
ZWN0b3JGb3JJZChjb25zdCBBdG9taWNTdHJpbmcmIGlkVmFsdWUpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKCFpZFZhbHVlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIG1fcnVsZVNldHMuZmVhdHVyZXMo
KS5pZHNJblJ1bGVzLmNvbnRhaW5zKGlkVmFsdWUuaW1wbCgpKTsKKyAgICByZXR1cm4gbV9mZWF0
dXJlcy5pZHNJblJ1bGVzLmNvbnRhaW5zKGlkVmFsdWUuaW1wbCgpKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5
bGVTaGVldENvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVT
aGVldENvbGxlY3Rpb24uY3BwCmluZGV4IDNhYzFmNWVjNGM3ODJmMzY2MTAxZDRmMTIzOTgwZDA5
OWMzN2NjOTMuLjYzMmZhOTRhYTMzNWNhYjBlZTQxNGRmYmFkYmQ3YzcyZmMzMGM3N2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5j
cHAKQEAgLTQ3OCw3ICs0NzgsNyBAQCBib29sIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246
OnVwZGF0ZUFjdGl2ZVN0eWxlU2hlZXRzKFVwZGF0ZUZsYWcgdXBkYXRlRmxhZwogICAgIGVsc2Ug
ewogICAgICAgICBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyID0gbV9kb2N1bWVudC0+c3R5
bGVSZXNvbHZlcigpOwogICAgICAgICBpZiAoc3R5bGVSZXNvbHZlclVwZGF0ZVR5cGUgPT0gUmVz
ZXQpIHsKLSAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnJ1bGVTZXRzKCkucmVzZXRBdXRob3JT
dHlsZSgpOworICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+cmVzZXRBdXRob3JTdHlsZSgpOwog
ICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMoMCwgYWN0
aXZlQ1NTU3R5bGVTaGVldHMpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQVNTRVJU
KHN0eWxlUmVzb2x2ZXJVcGRhdGVUeXBlID09IEFkZGl0aXZlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>