<?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>67583</bug_id>
          
          <creation_ts>2011-09-04 20:55:04 -0700</creation_ts>
          <short_desc>Make overflowchanged event asynchronous</short_desc>
          <delta_ts>2024-12-15 07:00:55 -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>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218402</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>syoichi</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>462012</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-09-04 20:55:04 -0700</bug_when>
    <thetext>It looks like this is a non-standard event that is the only thing that&apos;s keeping us from ditching a fairly massive chunk of FrameAction/FrameActionSchedule machinery. And it&apos;s the only thing left that can still go bump in the middle of the night. What I mean by this is it&apos;s the only event handler that could still fire while querying properties that cause forced style recalc + layout.

Perhaps we could just remove it altogether?

Anders, you added it back in http://trac.webkit.org/changeset/15191. Do you remember why we need it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462269</commentid>
    <comment_count>1</comment_count>
      <attachid>106362</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-09-05 15:07:58 -0700</bug_when>
    <thetext>Created attachment 106362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462599</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-09-06 09:39:35 -0700</bug_when>
    <thetext>It was added to support a feature in Mail.app. I&apos;ll e-mail someone and check if it&apos;s still used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475567</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-09-29 11:58:43 -0700</bug_when>
    <thetext>It is still used, but it can definitely be made asynchronous!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475594</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-09-29 12:25:10 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; It is still used, but it can definitely be made asynchronous!

Yay!! I thereby humbly request your review, kind sir.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485408</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-10-17 12:51:18 -0700</bug_when>
    <thetext>This seems like a very risky change. Making scroll events asynchronous has irreparably broken apps and websites, even though it had already been asynchronous in other engines, so people assumed that content was not depending on the synchronous nature. overflowchange, however, originated in WebKit, where it had always fired synchronously, so all apps and web content using it expect it to be synchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485538</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-10-17 15:00:49 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; This seems like a very risky change. Making scroll events asynchronous has irreparably broken apps and websites, even though it had already been asynchronous in other engines, so people assumed that content was not depending on the synchronous nature. overflowchange, however, originated in WebKit, where it had always fired synchronously, so all apps and web content using it expect it to be synchronous.

There is only one known client that uses this event, and I&apos;ve verified that this patch doesn&apos;t break the client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811032</commentid>
    <comment_count>7</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-18 14:14:52 -0800</bug_when>
    <thetext>Eric&apos;s reminder of r+&apos;d patches led me back to this patch. Darin, Anders, Dan -- are we doing this or not? Let me know. I&apos;ll rebase/commit or just wontfix the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902104</commentid>
    <comment_count>8</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-09-29 11:09:02 -0700</bug_when>
    <thetext>It seems that this r+ patch didn&apos;t landed in Webkit (checked with Bug ID in Webkit GitHub).

Is it still applicable? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902383</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-09-30 09:55:13 -0700</bug_when>
    <thetext>I don’t know, but think instead we should investigate removing the overflowchanged event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902384</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-09-30 09:57:35 -0700</bug_when>
    <thetext>I believe the only client using this was macOS Mail, and if I am not mistaken it’s no longer used in the new version coming in macOS Ventura. And the TOT WebKit does not need to be compatible with older versions of macOS Mail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902385</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-09-30 09:58:05 -0700</bug_when>
    <thetext>Another alternative that would be helpful but less tidy would be to make sure it’s exposed only in Mail, and not web-exposed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902431</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-09-30 13:11:09 -0700</bug_when>
    <thetext>AFAIK this code path is still runtime switchable. Not sure how long we need to support it (probably needs to be discussed elsewhere).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902467</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-09-30 14:29:40 -0700</bug_when>
    <thetext>If it’s runtime switchable, and off for web browsers by default, then I agree that internal Apple discussion can help us pinpoint when we can remove it entirely and this bug can be closed as &quot;never to be fixed&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2081886</commentid>
    <comment_count>14</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2024-12-15 07:00:55 -0800</bug_when>
    <thetext>Safari 18.2 shipped with overflowchanged event removed successfully. Marking this as `RESOLVED WONTFIX`.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106362</attachid>
            <date>2011-09-05 15:07:58 -0700</date>
            <delta_ts>2011-10-17 12:25:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67583-20110905150757.patch</filename>
            <type>text/plain</type>
            <size>27123</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ1MzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2Nzk1N2U1N2NmN2QxMDA5ZDBmZTFj
YzQyZjg4NDc0MjE2MWY5MDVjLi43YjM5ZjdjMTgwODU4YjZjNzM0YzhhZTllZTRlYTM0OGMzOGRh
MTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMDUgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBNYWtlIG92ZXJmbG93Y2hhbmdlZCBl
dmVudCBhc3luY2hyb25vdXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY3NTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2R5bmFtaWMvcGF1c2VkLWV2ZW50LWRpc3BhdGNoLmh0bWw6IFVwZGF0
ZWQgdGhlIHRlc3QgdG8gYW50aWNpcGF0ZSBhc3luY2hyb25vdXMgb3ZlcmZsb3djaGFuZ2VkIGV2
ZW50LgorICAgICAgICAqIGZhc3QvZXZlbnRzL292ZXJmbG93LWV2ZW50cy5odG1sOiBEaXR0by4K
KwogMjAxMS0wOS0wMiAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBjbGVhbnVwIHNjcmlwdHMtcGFuZWwuaHRtbCB0ZXN0
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL3BhdXNlZC1ldmVudC1kaXNw
YXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL3BhdXNlZC1ldmVudC1kaXNwYXRj
aC5odG1sCmluZGV4IDA0M2FlYzcxMTgwMzViOGY2YWUzNTQ0NmZmNzliZGQyYmRiZmZiNjguLjQy
NzRlZTE4YWQ0YzM1N2YxOTFiM2VlYWZhODBkYjFhZTg2YTUwMjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZHluYW1pYy9wYXVzZWQtZXZlbnQtZGlzcGF0Y2guaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2R5bmFtaWMvcGF1c2VkLWV2ZW50LWRpc3BhdGNoLmh0bWwKQEAgLTMsNiAr
Myw4IEBACiAgICAgZnVuY3Rpb24gb3ZlcmZsb3dDaGFuZ2VkKCkKICAgICB7CiAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lclRleHQgPSAiUEFTUyI7CisgICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gdGVzdCgp
CkBAIC0yOCw4ICszMCw2IEBACiAgICAgZnVuY3Rpb24gZmluaXNoKCkKICAgICB7CiAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWxsQm94Iikuc3R5bGUuaGVpZ2h0ID0gIjUwcHgi
OwotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogICAgIH0KIDwvc2NyaXB0PgogPHA+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vdmVyZmxvdy1ldmVudHMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL292ZXJmbG93LWV2ZW50cy5odG1sCmluZGV4IDZh
NTk1MmZmNDNiYmUwZDBmMGQ4MThlZjY0NWYxYzRiNjY3MDUyYTguLjg1OTBlMjBjNmI5MjdlNDAy
NTA2NTY4N2NkNDZjMGJkNmMwYjFhODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL292ZXJmbG93LWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL292
ZXJmbG93LWV2ZW50cy5odG1sCkBAIC02LDggKzYsMTEgQEAKIAogICAgICAgICBpZiAoJycgKyBy
ZXN1bHQgPT0gdGVzdFJlc3VsdHNbY3VycmVudFRlc3QrK10pCiAgICAgICAgICAgICBudW1TdWNj
ZXNzZnVsICsrOwotICAgICAgICBpZiAodGVzdFJlc3VsdHMubGVuZ3RoID09IG51bVN1Y2Nlc3Nm
dWwpCisgICAgICAgIGlmICh0ZXN0UmVzdWx0cy5sZW5ndGggPT0gbnVtU3VjY2Vzc2Z1bCkgewog
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9
ICJTVUNDRVNTIjsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgZnVuY3Rpb24gZm9yY2VMYXlvdXQoKSB7CkBAIC0xNSw4ICsx
OCwxMCBAQAogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICAgICAgfQogCiAgICAgICAgIHRlc3RSZXN1bHRzID0gW1tPdmVyZmxvd0V2ZW50LkhPUkla
T05UQUwsIHRydWUsIGZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAgICAgW092ZXJmbG93RXZl
bnQuSE9SSVpPTlRBTCwgZmFsc2UsIGZhbHNlXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNWM2
ZTI3MjJiMjViZTJkNDkwY2FhMDdlMTQ0ZmQ0NGM3ZjdhMDBmYS4uNWNiZmEwNmMzNTdhMDBhZGQy
NzNlNzExZjk1ZWU5YTNiMmM1NjVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTk2NCw3ICs5
NjQsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9FdmVudFNvdXJjZS5jcHAKICAg
ICBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0ZyYW1lLmNwcAotICAgIHBhZ2Uv
RnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwCiAgICAgcGFnZS9GcmFtZVRyZWUuY3BwCiAgICAgcGFn
ZS9GcmFtZVZpZXcuY3BwCiAgICAgcGFnZS9HZW9sb2NhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1
NWNlYmQyYTI4NDgxZjRjODEwMWMwZGYzYTIyNjc5ZTE3M2VkNzdjLi4yMDNjYmM4N2EzN2FiOTc3
NGE3YjNkMGEzNzk0OTNhZGFhZmMwMmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIw
MTEtMDktMDUgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAg
ICAgICBNYWtlIG92ZXJmbG93Y2hhbmdlZCBldmVudCBhc3luY2hyb25vdXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTgzCisKKyAgICAgICAgRG9l
cyB0d28gdGhpbmdzOgorICAgICAgICAxKSBNYWtlcyBvdmVyZmxvd2NoYW5nZWQgZXZlbnQgYXN5
bmNocm9ub3VzLiBTaW5jZSBpdCdzIG5vdCBhIHN0YW5kYXJkIGFuZAorICAgICAgICB1bmRvY3Vt
ZW50ZWQgZXZlbnQsIGl0J3Mgc2FmZSB0byBhc3N1bWUgdGhpcyB3b24ndCBicmVhayB0aGUgV2Vi
LiAKKyAgICAgICAgMikgUmVtb3ZlcyBGcmFtZUFjdGlvblNjaGVkdWxlciBhbmQgcmVtYWluaW5n
IHNjaGVkdWxlZCBldmVudHMgbWFjaGluZXJ5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFJlbW92ZWQgRnJhbWVBY3Rp
b25TY2hlZHVsZXIgZnJvbSBidWlsZCBzeXN0ZW0uCisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJDb3JlLnBybzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKTogUmVtb3ZlZCBzY2hlZHVsZWQgZXZlbnRzIG1h
Y2hpbmVyeS4KKyAgICAgICAgKiBwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmg6IFJlbW92ZWQuCisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpG
cmFtZVZpZXcpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6fkZyYW1lVmll
dyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcyk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVPdmVyZmxvd1N0YXR1cyk6
IENoYW5nZWQgb3ZlcmZsb3djaGFuZ2VkIGV2ZW50IHRvIGJlIGFzeW5jLgorICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3Lmg6IFVwZGF0ZWQgZGVjbHMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9W
aXNpYmxlKTogUmVtb3ZlZCBzY2hlZHVsZWQgZXZlbnRzIG1hY2hpbmVyeS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVPdmVyZmxvd1N0YXR1cyk6IENoYW5nZWQgb3ZlcmZs
b3djaGFuZ2VkIGV2ZW50IHRvIGJlIGFzeW5jLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJN
YXJxdWVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnN0YXJ0KTogUmVt
b3ZlZCBzY2hlZHVsZWQgZXZlbnRzIG1hY2hpbmVyeS4KKwogMjAxMS0wOS0wNSAgTGVhbmRybyBH
cmFjaWEgR2lsICA8bGVhbmRyb2dyYWNpYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHRo
ZSByZWdyZXNzaW9uIG9mIGJ1ZyA2NTMzMyBpbnRyb2R1Y2VkIGJ5IDYwMTcwLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggY2M3OTU5YjU3MzRkZmFmNTU4YjJlODM5ZWUwMWJiODA0
ZThlMzQwNC4uZjE5ZjFkMGU0YjIwNGViZWUyMjAxZmM3NmI4MTI1ZWRjNmNiOTU5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMjU5LDggKzIyNTksNiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCBcCiAJU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
aCBcCi0JU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAgXAotCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVRyZWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDBlNjU5MGZjY2VkYTkxYjIyNTI4YTEyNGU1Y2ZlOGQ5NmVhNmFhZjIuLmUzNDBmODNjZTY2
OGJhZjZlOTU0NDFlMDZmZTA4NmY1MTI5ZGMyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI4ODIs
OCArMjg4Miw2IEBACiAgICAgICAgICAgICAncGFnZS9FdmVudFNvdXJjZS5oJywKICAgICAgICAg
ICAgICdwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWUu
Y3BwJywKLSAgICAgICAgICAgICdwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCcsCi0gICAg
ICAgICAgICAncGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oJywKICAgICAgICAgICAgICdwYWdl
L0ZyYW1lVHJlZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWVWaWV3LmNwcCcsCiAgICAg
ICAgICAgICAncGFnZS9HZW9sb2NhdGlvbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAzNGJhYmIz
ZWQxNWUxYjVhZjJlMzMxNzY1ZGJkOWI5OTliZDUzMzZlLi5jMWRhODJjMGZlN2NlMTdjYWY1MTk3
NzA3YjI3NDk0ZTA4Y2NhODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
bworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtOTIzLDcgKzkyMyw2IEBAIFNP
VVJDRVMgKz0gXAogICAgIHBhZ2UvRXZlbnRTb3VyY2UuY3BwIFwKICAgICBwYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAgXAogICAgIHBhZ2UvRnJhbWUuY3BwIFwKLSAgICBwYWdlL0ZyYW1lQWN0aW9u
U2NoZWR1bGVyLmNwcCBcCiAgICAgcGFnZS9GcmFtZVRyZWUuY3BwIFwKICAgICBwYWdlL0ZyYW1l
Vmlldy5jcHAgXAogICAgIHBhZ2UvR2VvbG9jYXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkYjMzMDdjMDYyNDQx
YTVlMzc1NWU2ZDBlYmUwZmZiNjRjZGU0ODdjLi5hZjQ0ZTJiNWRmZDg4Mjg3NWVjYjY2YTk2Nzc0
MzdiZDY4N2JjMWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zMzk0LDggKzMzOTQsNiBAQAogCQlBNzk1NDY0MzBCNUM0Q0I0
MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCAq
LzsgfTsKIAkJQTdBRDJGODcwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUQyRjg1MEVDODlEMDcw
MDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgKi87IH07CiAJCUE3QUQyRjg4MEVDODlEMDcwMDhBQjAw
MiAvKiBMaW5rSGFzaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdBRDJGODYwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTdCMDcwRDIxMzBBNDA5QzAw
QTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjA3MEQwMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgKi87IH07Ci0JCUE3QjA3MEQzMTMwQTQwOUMwMEEzNzYzQyAv
KiBGcmFtZUFjdGlvblNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdCMDcwRDExMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmggKi87IH07CiAJCUE3QjZFNjlGMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNkU2OUQw
QjI5MUE5NjAwRDA1MjlGIC8qIERyYWdEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdCQkUyNjYxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRN
TE1ldGVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0JCRTI2NDExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNw
cCAqLzsgfTsKIAkJQTdCQkUyNjcxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCQkUy
NjUxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oICovOyB9OwpAQCAtMTAw
MjcsOCArMTAwMjUsNiBAQAogCQlBNzk1NDY0MjBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHJhZ0RhdGEuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0FEMkY4NTBFQzg5RDA3MDA4QUIwMDIgLyog
TGlua0hhc2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGlua0hh
c2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0FEMkY4NjBFQzg5RDA3MDA4
QUIwMDIgLyogTGlua0hhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGlu
a0hhc2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdCMDcwRDAxMzBBNDA5QzAw
QTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQTdCMDcwRDExMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QjZFNjlEMEIyOTFBOTYw
MEQwNTI5RiAvKiBEcmFnRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
cmFnRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0JCRTI2NDExQUZCM0Yy
MDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1ldGVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3QkJFMjY1MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWV0ZXJFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDY0Miw4ICsxNDYzOCw2IEBACiAJ
CQkJMDYyMjg3ODMwQjREQjMyMjAwMEMzNERGIC8qIEZvY3VzRGlyZWN0aW9uLmggKi8sCiAJCQkJ
NjVCRjAyMjkwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmNwcCAqLywKIAkJCQk2NUJGMDIyQTA5
NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCAqLywKLQkJCQlBN0IwNzBEMDEzMEE0MDlDMDBBMzc2
M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwICovLAotCQkJCUE3QjA3MEQxMTMwQTQwOUMw
MEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oICovLAogCQkJCTY1QTIxNDgyMDk3QTNG
NTMwMEI5MDUwQSAvKiBGcmFtZVRyZWUuY3BwICovLAogCQkJCTY1QTIxNDgzMDk3QTNGNTMwMEI5
MDUwQSAvKiBGcmFtZVRyZWUuaCAqLywKIAkJCQk2NUNCRkVGNzA5NzRGNjA3MDAxREFDMjUgLyog
RnJhbWVWaWV3LmNwcCAqLywKQEAgLTIxNTY4LDcgKzIxNTYyLDYgQEAKIAkJCQk5MzVDNDc2RDA5
QUM0RDYzMDBBNkFBQjQgLyogRm91bmRhdGlvbkV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTg1MzEyM0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlBN0IwNzBEMzEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rp
b25TY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNDMEFEQkE1REUwMEE0NTU0
RCAvKiBGcmFtZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0UwQURCQTVERTAw
QTQ1NTREIC8qIEZyYW1lTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDAwRUJB
MzExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjQ1MjYsNyArMjQ1MTksNiBAQAogCQkJCTY1NkQzNzNCMEFEQkE1REUwMEE0NTU0
RCAvKiBGb3JtU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4ODVCOTQxMUI2RkRBNjAw
MzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1QkYwMjJF
MDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBN0IwNzBE
MjEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTMyRTE2MDkwQUY1NzgzNDAwMjVGNDA4IC8qIEZyYW1lTG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUQwMDBFQkEyMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0
YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NUJGMDI0NTA5NzQ4MTkwMDBDNDMx
OTYgLyogRnJhbWVNYWMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDEyZjQ0NWI1NTFiN2I2ZDZkMjM5MjRkNmUwNjJiYTZiYTAxNzYyMmYuLmNjNWQ0ODI3Y2Rm
MmY5ODNiNmQyOTVkMTEzMTRlZTI5MmU5ZWVjZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMTUzNCwxMCArMTUzNCw4IEBAIHZvaWQgRG9jdW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hh
bmdlIGNoYW5nZSkKICAgICBSZW5kZXJXaWRnZXQ6OnN1c3BlbmRXaWRnZXRIaWVyYXJjaHlVcGRh
dGVzKCk7CiAgICAgCiAgICAgUmVmUHRyPEZyYW1lVmlldz4gZnJhbWVWaWV3ID0gdmlldygpOwot
ICAgIGlmIChmcmFtZVZpZXcpIHsKLSAgICAgICAgZnJhbWVWaWV3LT5wYXVzZVNjaGVkdWxlZEV2
ZW50cygpOworICAgIGlmIChmcmFtZVZpZXcpCiAgICAgICAgIGZyYW1lVmlldy0+YmVnaW5EZWZl
cnJlZFJlcGFpbnRzKCk7Ci0gICAgfQogCiAgICAgQVNTRVJUKCFyZW5kZXJlcigpIHx8IHJlbmRl
ckFyZW5hKCkpOwogICAgIGlmICghcmVuZGVyZXIoKSB8fCAhcmVuZGVyQXJlbmEoKSkKQEAgLTE1
OTEsMTAgKzE1ODksOCBAQCBiYWlsX291dDoKICAgICAgICAgbV91c2VzTGlua1J1bGVzID0gbV9z
dHlsZVNlbGVjdG9yLT51c2VzTGlua1J1bGVzKCk7CiAgICAgfQogCi0gICAgaWYgKGZyYW1lVmll
dykgewotICAgICAgICBmcmFtZVZpZXctPnJlc3VtZVNjaGVkdWxlZEV2ZW50cygpOworICAgIGlm
IChmcmFtZVZpZXcpCiAgICAgICAgIGZyYW1lVmlldy0+ZW5kRGVmZXJyZWRSZXBhaW50cygpOwot
ICAgIH0KICAgICBSZW5kZXJXaWRnZXQ6OnJlc3VtZVdpZGdldEhpZXJhcmNoeVVwZGF0ZXMoKTsK
ICAgICByZXN1bWVQb3N0QXR0YWNoQ2FsbGJhY2tzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNmMTkzY2M4NGU5NjZlYzQ0NzI1NmM3ZTFhMzU4YWI0MjVlYjlkYTAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJGcmFtZUFjdGlvblNjaGVkdWxl
ci5oIgotCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEV2ZW50RnJhbWVB
Y3Rpb24gOiBwdWJsaWMgRnJhbWVBY3Rpb24gewotcHVibGljOgotICAgIEV2ZW50RnJhbWVBY3Rp
b24oUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0KQotICAg
ICAgICA6IG1fZXZlbnQoZXZlbnQpCi0gICAgICAgICwgbV9ldmVudFRhcmdldCh0YXJnZXQpCi0g
ICAgewotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBmaXJlKCkKLSAgICB7Ci0gICAgICAgIC8v
IE9ubHkgZGlzcGF0Y2ggZXZlbnRzIHRvIG5vZGVzIHRoYXQgYXJlIGluIHRoZSBkb2N1bWVudAot
ICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgaWYgKG1fZXZlbnRUYXJnZXQt
PmluRG9jdW1lbnQoKSkKLSAgICAgICAgICAgIG1fZXZlbnRUYXJnZXQtPmRpc3BhdGNoRXZlbnQo
bV9ldmVudCwgZWMpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RXZlbnQ+IG1fZXZl
bnQ7Ci0gICAgUmVmUHRyPE5vZGU+IG1fZXZlbnRUYXJnZXQ7Ci19OwotCi1GcmFtZUFjdGlvblNj
aGVkdWxlcjo6RnJhbWVBY3Rpb25TY2hlZHVsZXIoKQotICAgIDogbV9lbnF1ZXVlQWN0aW9ucygw
KQotewotfQotCi1GcmFtZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1lQWN0aW9uU2NoZWR1bGVyKCkK
LXsKLSAgICBjbGVhcigpOwotfQotCi1ib29sIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjppc0VtcHR5
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zY2hlZHVsZWRBY3Rpb25zLmlzRW1wdHkoKTsKLX0K
LQotdm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6Y2xlYXIoKQotewotICAgIG1fc2NoZWR1bGVk
QWN0aW9ucy5jbGVhcigpOwotICAgIG1fZW5xdWV1ZUFjdGlvbnMgPSAwOwotfQotCi12b2lkIEZy
YW1lQWN0aW9uU2NoZWR1bGVyOjpwYXVzZSgpCi17Ci0gICAgQVNTRVJUKGlzRW1wdHkoKSB8fCBt
X2VucXVldWVBY3Rpb25zKTsKLSAgICBtX2VucXVldWVBY3Rpb25zKys7Ci19Ci0KLXZvaWQgRnJh
bWVBY3Rpb25TY2hlZHVsZXI6OnJlc3VtZSgpCi17Ci0gICAgbV9lbnF1ZXVlQWN0aW9ucy0tOwot
ICAgIGlmICghbV9lbnF1ZXVlQWN0aW9ucykKLSAgICAgICAgZGlzcGF0Y2goKTsKLSAgICBBU1NF
UlQoaXNFbXB0eSgpIHx8IG1fZW5xdWV1ZUFjdGlvbnMpOwotfQotCi12b2lkIEZyYW1lQWN0aW9u
U2NoZWR1bGVyOjpkaXNwYXRjaCgpCi17Ci0gICAgVmVjdG9yPCBPd25QdHI8RnJhbWVBY3Rpb24+
ID4gc25hcHNob3Q7Ci0gICAgbV9zY2hlZHVsZWRBY3Rpb25zLnN3YXAoc25hcHNob3QpOwotICAg
IAotICAgIGZvciAoVmVjdG9yPCBPd25QdHI8RnJhbWVBY3Rpb24+ID46Oml0ZXJhdG9yIGkgPSBz
bmFwc2hvdC5iZWdpbigpOyBpICE9IHNuYXBzaG90LmVuZCgpOyArK2kpCi0gICAgICAgICgqaSkt
PmZpcmUoKTsKLX0KLQotdm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVBY3Rpb24o
UGFzc093blB0cjxGcmFtZUFjdGlvbj4gYWN0aW9uKQotewotICAgIG1fc2NoZWR1bGVkQWN0aW9u
cy5hcHBlbmQoYWN0aW9uKTsKLX0KLQotdm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6c2NoZWR1
bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgUGFzc1JlZlB0cjxOb2RlPiBldmVudFRh
cmdldCkKLXsKLSAgICBzY2hlZHVsZUFjdGlvbihhZG9wdFB0cihuZXcgRXZlbnRGcmFtZUFjdGlv
bihldmVudCwgZXZlbnRUYXJnZXQpKSk7Ci19Ci0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5NTkwZGU5ZmU0NDE0NjM0YzNmOThjMmYzNjE1MDkzZTM2ZmI3YjM1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDcy
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgT1dORVIgT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEZyYW1lQWN0aW9uU2NoZWR1bGVyX2gKLSNkZWZp
bmUgRnJhbWVBY3Rpb25TY2hlZHVsZXJfaAotCi0jaW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jhc2Uu
aD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgTm9kZTsKLWNsYXNzIEV2ZW50OwotCi1jbGFz
cyBGcmFtZUFjdGlvbiB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoRnJhbWVBY3Rpb24pOwotcHVibGljOgotICAgIEZyYW1lQWN0aW9uKCkg
e30KLSAgICB2aXJ0dWFsIH5GcmFtZUFjdGlvbigpIHt9Ci0gICAgdmlydHVhbCB2b2lkIGZpcmUo
KSA9IDA7Ci19OwotCi1jbGFzcyBGcmFtZUFjdGlvblNjaGVkdWxlciB7Ci1wdWJsaWM6Ci0gICAg
RnJhbWVBY3Rpb25TY2hlZHVsZXIoKTsKLSAgICB+RnJhbWVBY3Rpb25TY2hlZHVsZXIoKTsKLQot
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwotICAgIGJvb2wgaXNTY2hlZHVsZWQoKSBjb25zdCB7
IHJldHVybiAwIDwgbV9lbnF1ZXVlQWN0aW9uczsgfQotICAgIHZvaWQgY2xlYXIoKTsKLSAgICB2
b2lkIHBhdXNlKCk7Ci0gICAgdm9pZCByZXN1bWUoKTsKLQotICAgIHZvaWQgc2NoZWR1bGVBY3Rp
b24oUGFzc093blB0cjxGcmFtZUFjdGlvbj4pOwotICAgIHZvaWQgc2NoZWR1bGVFdmVudChQYXNz
UmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBk
aXNwYXRjaCgpOwotCi0gICAgdW5zaWduZWQgbV9lbnF1ZXVlQWN0aW9uczsKLSAgICBWZWN0b3I8
IE93blB0cjxGcmFtZUFjdGlvbj4gPiBtX3NjaGVkdWxlZEFjdGlvbnM7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBGcmFtZUFjdGlvblNjaGVkdWxlcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNGRiOWZhOWJmZDYwMjA4MmI1NTdiODJlOTE1OTJk
NjNkMTUwNzk0OS4uNWY0ZjM5YTMzODBjYTFmNDQ4MzUzMjBkYTQxZDNkNDA5ZTJlYjc1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzUsMTEgKzM1LDExIEBACiAjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJhbWVBY3Rpb25T
Y2hlZHVsZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCkBAIC0xMjUsNyArMTI1LDYgQEAg
RnJhbWVWaWV3OjpGcmFtZVZpZXcoRnJhbWUqIGZyYW1lKQogICAgICwgbV9pc1RyYW5zcGFyZW50
KGZhbHNlKQogICAgICwgbV9iYXNlQmFja2dyb3VuZENvbG9yKENvbG9yOjp3aGl0ZSkKICAgICAs
IG1fbWVkaWFUeXBlKCJzY3JlZW4iKQotICAgICwgbV9hY3Rpb25TY2hlZHVsZXIoYWRvcHRQdHIo
bmV3IEZyYW1lQWN0aW9uU2NoZWR1bGVyKSkKICAgICAsIG1fb3ZlcmZsb3dTdGF0dXNEaXJ0eSh0
cnVlKQogICAgICwgbV92aWV3cG9ydFJlbmRlcmVyKDApCiAgICAgLCBtX3dhc1Njcm9sbGVkQnlV
c2VyKGZhbHNlKQpAQCAtMTY5LDEwICsxNjgsOCBAQCBQYXNzUmVmUHRyPEZyYW1lVmlldz4gRnJh
bWVWaWV3OjpjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBpbml0aWFsU2l6ZQog
CiBGcmFtZVZpZXc6On5GcmFtZVZpZXcoKQogewotICAgIGlmIChtX2hhc1BlbmRpbmdQb3N0TGF5
b3V0VGFza3MpIHsKKyAgICBpZiAobV9oYXNQZW5kaW5nUG9zdExheW91dFRhc2tzKQogICAgICAg
ICBtX3Bvc3RMYXlvdXRUYXNrc1RpbWVyLnN0b3AoKTsKLSAgICAgICAgbV9hY3Rpb25TY2hlZHVs
ZXItPmNsZWFyKCk7Ci0gICAgfQogICAgIAogICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpICYmIGF4T2JqZWN0Q2FjaGUoKSkKICAgICAgICAgYXhPYmplY3RDYWNo
ZSgpLT5yZW1vdmUodGhpcyk7CkBAIC0xODcsNyArMTg0LDYgQEAgRnJhbWVWaWV3Ojp+RnJhbWVW
aWV3KCkKICAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihmYWxzZSk7CiAgICAgCiAgICAgQVNT
RVJUKCFtX3Njcm9sbENvcm5lcik7Ci0gICAgQVNTRVJUKG1fYWN0aW9uU2NoZWR1bGVyLT5pc0Vt
cHR5KCkpOwogCiAgICAgaWYgKG1fcGFnZSkKICAgICAgICAgbV9wYWdlLT5yZW1vdmVTY3JvbGxh
YmxlQXJlYSh0aGlzKTsKQEAgLTEwNjEsOCArMTA1Nyw2IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlv
dXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAKICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSByb290LT5l
bmNsb3NpbmdMYXllcigpOwogCi0gICAgbV9hY3Rpb25TY2hlZHVsZXItPnBhdXNlKCk7Ci0KICAg
ICB7CiAgICAgICAgIGJvb2wgZGlzYWJsZUxheW91dFN0YXRlID0gZmFsc2U7CiAgICAgICAgIGlm
IChzdWJ0cmVlKSB7CkBAIC0xMTI5LDcgKzExMjMsNiBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0
KGJvb2wgYWxsb3dTdWJ0cmVlKQogICAgICAgICAgICAgICAgIG1fZnJhbWUtPmNvbnRlbnRSZW5k
ZXJlcigpLT51cGRhdGVXaWRnZXRQb3NpdGlvbnMoKTsKICAgICAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgICAgIG1faW5TeW5jaHJvbm91c1Bvc3RMYXlvdXQgPSB0cnVlOwotICAgICAgICAg
ICAgICAgIC8vIENhbGxzIHJlc3VtZVNjaGVkdWxlZEV2ZW50cygpCiAgICAgICAgICAgICAgICAg
cGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpOwogICAgICAgICAgICAgICAgIG1faW5TeW5jaHJvbm91
c1Bvc3RMYXlvdXQgPSBmYWxzZTsKICAgICAgICAgICAgIH0KQEAgLTExNDIsMTMgKzExMzUsOSBA
QCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlKQogICAgICAgICAgICAg
Ly8gd2UgY2FsbCBpdCB0aHJvdWdoIHRoZSB0aW1lciBoZXJlLgogICAgICAgICAgICAgbV9oYXNQ
ZW5kaW5nUG9zdExheW91dFRhc2tzID0gdHJ1ZTsKICAgICAgICAgICAgIG1fcG9zdExheW91dFRh
c2tzVGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgICAgICAgICAgaWYgKG5lZWRzTGF5b3V0KCkp
IHsKLSAgICAgICAgICAgICAgICBtX2FjdGlvblNjaGVkdWxlci0+cGF1c2UoKTsKKyAgICAgICAg
ICAgIGlmIChuZWVkc0xheW91dCgpKQogICAgICAgICAgICAgICAgIGxheW91dCgpOwotICAgICAg
ICAgICAgfQogICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbV9hY3Rpb25TY2hlZHVs
ZXItPnJlc3VtZSgpOwogICAgIH0KIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
TGF5b3V0KGNvb2tpZSk7CkBAIC0yMDUwLDIxICsyMDM5LDYgQEAgYm9vbCBGcmFtZVZpZXc6OnNo
b3VsZFVwZGF0ZShib29sIGltbWVkaWF0ZVJlcXVlc3RlZCkgY29uc3QKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4g
ZXZlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gZXZlbnRUYXJnZXQpCi17Ci0gICAgbV9hY3Rpb25TY2hl
ZHVsZXItPnNjaGVkdWxlRXZlbnQoZXZlbnQsIGV2ZW50VGFyZ2V0KTsKLX0KLQotdm9pZCBGcmFt
ZVZpZXc6OnBhdXNlU2NoZWR1bGVkRXZlbnRzKCkKLXsKLSAgICBtX2FjdGlvblNjaGVkdWxlci0+
cGF1c2UoKTsKLX0KLQotdm9pZCBGcmFtZVZpZXc6OnJlc3VtZVNjaGVkdWxlZEV2ZW50cygpCi17
Ci0gICAgbV9hY3Rpb25TY2hlZHVsZXItPnJlc3VtZSgpOwotfQotCiB2b2lkIEZyYW1lVmlldzo6
c2Nyb2xsVG9BbmNob3IoKQogewogICAgIFJlZlB0cjxOb2RlPiBhbmNob3JOb2RlID0gbV9tYWlu
dGFpblNjcm9sbFBvc2l0aW9uQW5jaG9yOwpAQCAtMjE5NSw4ICsyMTY5LDYgQEAgdm9pZCBGcmFt
ZVZpZXc6OnBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKQogCiAgICAgc2Nyb2xsVG9BbmNob3IoKTsK
IAotICAgIG1fYWN0aW9uU2NoZWR1bGVyLT5yZXN1bWUoKTsKLQogICAgIGlmICghcm9vdC0+cHJp
bnRpbmcoKSkgewogICAgICAgICBMYXlvdXRTaXplIGN1cnJlbnRTaXplID0gTGF5b3V0U2l6ZSh3
aWR0aCgpLCBoZWlnaHQoKSk7CiAgICAgICAgIGZsb2F0IGN1cnJlbnRab29tRmFjdG9yID0gcm9v
dC0+c3R5bGUoKS0+em9vbSgpOwpAQCAtMjIzMiw5ICsyMjA0LDkgQEAgdm9pZCBGcmFtZVZpZXc6
OnVwZGF0ZU92ZXJmbG93U3RhdHVzKGJvb2wgaG9yaXpvbnRhbE92ZXJmbG93LCBib29sIHZlcnRp
Y2FsT3ZlcmYKICAgICAgICAgbV9ob3Jpem9udGFsT3ZlcmZsb3cgPSBob3Jpem9udGFsT3ZlcmZs
b3c7CiAgICAgICAgIG1fdmVydGljYWxPdmVyZmxvdyA9IHZlcnRpY2FsT3ZlcmZsb3c7CiAgICAg
ICAgIAotICAgICAgICBtX2FjdGlvblNjaGVkdWxlci0+c2NoZWR1bGVFdmVudChPdmVyZmxvd0V2
ZW50OjpjcmVhdGUoaG9yaXpvbnRhbE92ZXJmbG93Q2hhbmdlZCwgaG9yaXpvbnRhbE92ZXJmbG93
LAotICAgICAgICAgICAgdmVydGljYWxPdmVyZmxvd0NoYW5nZWQsIHZlcnRpY2FsT3ZlcmZsb3cp
LAotICAgICAgICAgICAgbV92aWV3cG9ydFJlbmRlcmVyLT5ub2RlKCkpOworICAgICAgICBSZWZQ
dHI8RXZlbnQ+IG92ZXJmbG93Q2hhbmdlZEV2ZW50ID0gT3ZlcmZsb3dFdmVudDo6Y3JlYXRlKGhv
cml6b250YWxPdmVyZmxvd0NoYW5nZWQsIGhvcml6b250YWxPdmVyZmxvdywgdmVydGljYWxPdmVy
Zmxvd0NoYW5nZWQsIHZlcnRpY2FsT3ZlcmZsb3cpOworICAgICAgICBvdmVyZmxvd0NoYW5nZWRF
dmVudC0+c2V0VGFyZ2V0KG1fdmlld3BvcnRSZW5kZXJlci0+bm9kZSgpKTsKKyAgICAgICAgZnJh
bWUoKS0+ZG9jdW1lbnQoKS0+ZXZlbnRRdWV1ZSgpLT5lbnF1ZXVlRXZlbnQob3ZlcmZsb3dDaGFu
Z2VkRXZlbnQpOwogICAgIH0KICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDdi
ZTY2NDFiYmFmZTM0Nzc3NDlhMTUxNzUwNThiZGM2NmNkZjdkMzEuLjY5MjMxMWM1YjU4NDdmZjc2
MGJjZjc4YWQ0NDZkNDAzZTJhYmI5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMzks
NyArMzksNiBAQCBjbGFzcyBDb2xvcjsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRmxvYXRTaXplOwog
Y2xhc3MgRnJhbWU7Ci1jbGFzcyBGcmFtZUFjdGlvblNjaGVkdWxlcjsKIGNsYXNzIEtVUkw7CiBj
bGFzcyBOb2RlOwogY2xhc3MgUGFnZTsKQEAgLTIwMSw5ICsyMDAsNiBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHJlc3RvcmVTY3JvbGxiYXIoKTsKIAotICAgIHZvaWQgc2NoZWR1bGVFdmVudChQYXNz
UmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7Ci0gICAgdm9pZCBwYXVzZVNjaGVkdWxl
ZEV2ZW50cygpOwotICAgIHZvaWQgcmVzdW1lU2NoZWR1bGVkRXZlbnRzKCk7CiAgICAgdm9pZCBw
b3N0TGF5b3V0VGltZXJGaXJlZChUaW1lcjxGcmFtZVZpZXc+Kik7CiAKICAgICBib29sIHdhc1Nj
cm9sbGVkQnlVc2VyKCkgY29uc3Q7CkBAIC00MjEsOCArNDE3LDYgQEAgcHJpdmF0ZToKICAgICBT
dHJpbmcgbV9tZWRpYVR5cGU7CiAgICAgU3RyaW5nIG1fbWVkaWFUeXBlV2hlbk5vdFByaW50aW5n
OwogCi0gICAgT3duUHRyPEZyYW1lQWN0aW9uU2NoZWR1bGVyPiBtX2FjdGlvblNjaGVkdWxlcjsK
LQogICAgIGJvb2wgbV9vdmVyZmxvd1N0YXR1c0RpcnR5OwogICAgIGJvb2wgbV9ob3Jpem9udGFs
T3ZlcmZsb3c7CiAgICAgYm9vbCBtX3ZlcnRpY2FsT3ZlcmZsb3c7ICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggOWUwNDE0NjkwYTk0ZGNhYWQwNmNkZmE3
NzIxY2Y4MDUxMGY4YzY1ZC4uMjljZmY2NmQ2YTEzNDU4NjFhZmE4OTY3Y2U1Zjk5NWYwOTMzNTMy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xNDQ2LDgg
KzE0NDYsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExh
eW91dFJlY3QmIHJlY3QsIGNvbnN0IFNjcm9sbEFsaWdubQogICAgIC8vIFdlIG1heSBlbmQgdXAg
cHJvcGFnYXRpbmcgYSBzY3JvbGwgZXZlbnQuIEl0IGlzIGltcG9ydGFudCB0aGF0IHdlIHN1c3Bl
bmQgZXZlbnRzIHVudGlsIAogICAgIC8vIHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9uIHNpbmNlIHRo
ZXkgY291bGQgZGVsZXRlIHRoZSBsYXllciBvciB0aGUgbGF5ZXIncyByZW5kZXJlcigpLgogICAg
IEZyYW1lVmlldyogZnJhbWVWaWV3ID0gcmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS0+dmlldygpOwot
ICAgIGlmIChmcmFtZVZpZXcpCi0gICAgICAgIGZyYW1lVmlldy0+cGF1c2VTY2hlZHVsZWRFdmVu
dHMoKTsKIAogICAgIGJvb2wgcmVzdHJpY3RlZEJ5TGluZUNsYW1wID0gZmFsc2U7CiAgICAgaWYg
KHJlbmRlcmVyKCktPnBhcmVudCgpKSB7CkBAIC0xNTE5LDkgKzE1MTcsNiBAQCB2b2lkIFJlbmRl
ckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0
IFNjcm9sbEFsaWdubQogICAgIAogICAgIGlmIChwYXJlbnRMYXllcikKICAgICAgICAgcGFyZW50
TGF5ZXItPnNjcm9sbFJlY3RUb1Zpc2libGUobmV3UmVjdCwgYWxpZ25YLCBhbGlnblkpOwotCi0g
ICAgaWYgKGZyYW1lVmlldykKLSAgICAgICAgZnJhbWVWaWV3LT5yZXN1bWVTY2hlZHVsZWRFdmVu
dHMoKTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0UmVjdFRvRXhwb3NlKGNvbnN0
IExheW91dFJlY3QgJnZpc2libGVSZWN0LCBjb25zdCBMYXlvdXRSZWN0ICZleHBvc2VSZWN0LCBj
b25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGln
blkpCkBAIC0yMjIwLDE1ICsyMjE1LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU92ZXJm
bG93U3RhdHVzKGJvb2wgaG9yaXpvbnRhbE92ZXJmbG93LCBib29sIHZlcnRpY2FsT3ZlCiAgICAg
Ym9vbCBob3Jpem9udGFsT3ZlcmZsb3dDaGFuZ2VkID0gKG1faG9yaXpvbnRhbE92ZXJmbG93ICE9
IGhvcml6b250YWxPdmVyZmxvdyk7CiAgICAgYm9vbCB2ZXJ0aWNhbE92ZXJmbG93Q2hhbmdlZCA9
IChtX3ZlcnRpY2FsT3ZlcmZsb3cgIT0gdmVydGljYWxPdmVyZmxvdyk7CiAgICAgCi0gICAgaWYg
KGhvcml6b250YWxPdmVyZmxvd0NoYW5nZWQgfHwgdmVydGljYWxPdmVyZmxvd0NoYW5nZWQpIHsK
LSAgICAgICAgbV9ob3Jpem9udGFsT3ZlcmZsb3cgPSBob3Jpem9udGFsT3ZlcmZsb3c7Ci0gICAg
ICAgIG1fdmVydGljYWxPdmVyZmxvdyA9IHZlcnRpY2FsT3ZlcmZsb3c7Ci0gICAgICAgIAotICAg
ICAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSByZW5kZXJlcigpLT5kb2N1bWVudCgpLT52
aWV3KCkpIHsKLSAgICAgICAgICAgIGZyYW1lVmlldy0+c2NoZWR1bGVFdmVudChPdmVyZmxvd0V2
ZW50OjpjcmVhdGUoaG9yaXpvbnRhbE92ZXJmbG93Q2hhbmdlZCwgaG9yaXpvbnRhbE92ZXJmbG93
LCB2ZXJ0aWNhbE92ZXJmbG93Q2hhbmdlZCwgdmVydGljYWxPdmVyZmxvdyksCi0gICAgICAgICAg
ICAgICAgcmVuZGVyZXIoKS0+bm9kZSgpKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBpZiAoIWhv
cml6b250YWxPdmVyZmxvd0NoYW5nZWQgJiYgIXZlcnRpY2FsT3ZlcmZsb3dDaGFuZ2VkKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2hvcml6b250YWxPdmVyZmxvdyA9IGhvcml6b250YWxPdmVy
ZmxvdzsKKyAgICBtX3ZlcnRpY2FsT3ZlcmZsb3cgPSB2ZXJ0aWNhbE92ZXJmbG93OworCisgICAg
UmVmUHRyPEV2ZW50PiBvdmVyZmxvd0NoYW5nZWRFdmVudCA9IE92ZXJmbG93RXZlbnQ6OmNyZWF0
ZShob3Jpem9udGFsT3ZlcmZsb3dDaGFuZ2VkLCBob3Jpem9udGFsT3ZlcmZsb3csIHZlcnRpY2Fs
T3ZlcmZsb3dDaGFuZ2VkLCB2ZXJ0aWNhbE92ZXJmbG93KTsKKyAgICBvdmVyZmxvd0NoYW5nZWRF
dmVudC0+c2V0VGFyZ2V0KHJlbmRlcmVyKCktPm5vZGUoKSk7CisgICAgcmVuZGVyZXIoKS0+ZG9j
dW1lbnQoKS0+ZXZlbnRRdWV1ZSgpLT5lbnF1ZXVlRXZlbnQob3ZlcmZsb3dDaGFuZ2VkRXZlbnQp
OwogfQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwCmluZGV4IDZmNTkzNDA0
YjVjOThiNDdkODYxM2Q5NTA0NWU4ODAxYmQ5M2ZkMmIuLjY1MWU1MDNlYzU0MjRkZDJkNjRmYTVl
ZWYwNzUyYzVjM2RlZWU2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNYXJxdWVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFy
cXVlZS5jcHAKQEAgLTE2MywxMiArMTYzLDYgQEAgdm9pZCBSZW5kZXJNYXJxdWVlOjpzdGFydCgp
CiAgICAgICAgKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBXZSBtYXkgZW5kIHVwIHByb3Bh
Z2F0aW5nIGEgc2Nyb2xsIGV2ZW50LiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBzdXNwZW5kIGV2
ZW50cyB1bnRpbCAKLSAgICAvLyB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbiBzaW5jZSB0aGV5IGNv
dWxkIGRlbGV0ZSB0aGUgbGF5ZXIsIGluY2x1ZGluZyB0aGUgbWFycXVlZS4KLSAgICBGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IG1fbGF5ZXItPnJlbmRlcmVyKCktPmRvY3VtZW50KCktPnZpZXcoKTsK
LSAgICBpZiAoZnJhbWVWaWV3KQotICAgICAgICBmcmFtZVZpZXctPnBhdXNlU2NoZWR1bGVkRXZl
bnRzKCk7Ci0KICAgICBpZiAoIW1fc3VzcGVuZGVkICYmICFtX3N0b3BwZWQpIHsKICAgICAgICAg
aWYgKGlzSG9yaXpvbnRhbCgpKQogICAgICAgICAgICAgbV9sYXllci0+c2Nyb2xsVG9PZmZzZXQo
bV9zdGFydCwgMCk7CkBAIC0xODEsOSArMTc1LDYgQEAgdm9pZCBSZW5kZXJNYXJxdWVlOjpzdGFy
dCgpCiAgICAgfQogCiAgICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhzcGVlZCgpICogMC4wMDEp
OwotCi0gICAgaWYgKGZyYW1lVmlldykKLSAgICAgICAgZnJhbWVWaWV3LT5yZXN1bWVTY2hlZHVs
ZWRFdmVudHMoKTsKIH0KIAogdm9pZCBSZW5kZXJNYXJxdWVlOjpzdXNwZW5kKCkK
</data>
<flag name="review"
          id="102770"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>