<?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>240721</bug_id>
          
          <creation_ts>2022-05-20 10:39:07 -0700</creation_ts>
          <short_desc>RenderObject::containerForRepaint should be able to tell if a full repaint has already been scheduled.</short_desc>
          <delta_ts>2022-05-23 17:02:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>240728</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1870747</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-05-20 10:39:07 -0700</bug_when>
    <thetext>so that we don&apos;t issue redundant repaints</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870748</commentid>
    <comment_count>1</comment_count>
      <attachid>459620</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-05-20 10:51:21 -0700</bug_when>
    <thetext>Created attachment 459620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870749</commentid>
    <comment_count>2</comment_count>
      <attachid>459621</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-05-20 10:52:12 -0700</bug_when>
    <thetext>Created attachment 459621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870763</commentid>
    <comment_count>3</comment_count>
      <attachid>459621</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-20 11:45:14 -0700</bug_when>
    <thetext>Comment on attachment 459621
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=459621&amp;action=review

&gt; Source/WebCore/rendering/RenderView.cpp:452
&gt;      repaintUsingContainer(repaintContainer, computeRectForRepaint(layoutOverflowRect(), repaintContainer));

Can repaintUsingContainer take a RenderElement&amp; after this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870784</commentid>
    <comment_count>4</comment_count>
      <attachid>459625</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-05-20 12:52:41 -0700</bug_when>
    <thetext>Created attachment 459625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870812</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-05-20 14:19:03 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 459621 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459621&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderView.cpp:452
&gt; &gt;      repaintUsingContainer(repaintContainer, computeRectForRepaint(layoutOverflowRect(), repaintContainer));
&gt; 
&gt; Can repaintUsingContainer take a RenderElement&amp; after this change?
Yeah, I&apos;ve been considering that change for a while, but I don&apos;t think we are there yet. After https://bugs.webkit.org/attachment.cgi?id=459627&amp;action=prettypatch, where both repaint and repaintRectangle start replacing null_ptr repaint container with the view(), I think it should be relatively easy to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871037</commentid>
    <comment_count>6</comment_count>
      <attachid>459651</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-05-22 15:32:32 -0700</bug_when>
    <thetext>Created attachment 459651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871352</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-23 17:01:06 -0700</bug_when>
    <thetext>Committed r294699 (250898@main): &lt;https://commits.webkit.org/250898@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459651.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871353</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-23 17:02:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/93793768&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459620</attachid>
            <date>2022-05-20 10:51:21 -0700</date>
            <delta_ts>2022-05-20 10:52:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>24484</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IDJkYTM4ZjZjODIwZDU5ODQ3OGI0NWE5ODhmN2M2ZmMwOTlkNmJiOGEKQXV0aG9yOiBB
bGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiAgIEZyaSBNYXkgMjAgMTA6NDg6MTQg
MjAyMiAtMDcwMAoKICAgIFJlbmRlck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCBzaG91bGQg
YmUgYWJsZSB0byB0ZWxsIGlmIGEgZnVsbCByZXBhaW50IGhhcyBhbHJlYWR5IGJlZW4gc2NoZWR1
bGVkLgogICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDcyMQog
ICAgCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAgVGhpcyBwYXRjaCBp
cyBpbiBwcmVwYXJhdGlvbiBmb3IgcmVkdWNpbmcgcmVkdW5kYW50IHJlcGFpbnRzIHdoZW4gYW4g
YW5jZXN0b3IgbGF5ZXIgKGJldHdlZW4KICAgIHRoZSByZW5kZXJlciBhbmQgdGhlIHJlcGFpbnQg
Y29udGFpbmVyKSBoYXMgYWxyZWFkeSBiZWVuIHNjaGVkdWxlZCBmb3Igb25lLgogICAgCiAgICAq
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5jcHA6CiAg
ICAoV2ViQ29yZTo6U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRkUXVhZCk6CiAgICAoV2Vi
Q29yZTo6U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRkR2FwUmVjdHMpOgogICAgKiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuaDoKICAgICogU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwOgogICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
aXNFbmNsb3NlZEluQ29tcG9zaXRpbmdMYXllciBjb25zdCk6CiAgICAqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwOgogICAgKFdlYkNvcmU6OkxheW91dFJlcGFp
bnRlcjo6TGF5b3V0UmVwYWludGVyKToKICAgIChXZWJDb3JlOjpMYXlvdXRSZXBhaW50ZXI6OnJl
cGFpbnRBZnRlckxheW91dCk6CiAgICAqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRS
ZXBhaW50ZXIuaDoKICAgICogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlv
dXQuY3BwOgogICAgKFdlYkNvcmU6OkxlZ2FjeUxpbmVMYXlvdXQ6OmxheW91dFJ1bnNBbmRGbG9h
dHMpOgogICAgKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CiAg
ICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6aXNzdWVSZXBhaW50Rm9yT3V0bGluZUF1dG8pOgog
ICAgKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwOgog
ICAgKFdlYkNvcmU6OlJlbmRlckZyYWdtZW50ZWRGbG93OjptYXBMb2NhbFRvQ29udGFpbmVyIGNv
bnN0KToKICAgICogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcDoK
ICAgIChXZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6bGF5b3V0KToKICAgICogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
cmVjdXJzaXZlVXBkYXRlTGF5ZXJQb3NpdGlvbnMpOgogICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojpjb21wdXRlUmVwYWludFJlY3RzSW5jbHVkaW5nRGVzY2VuZGFudHMpOgogICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpyZWN1cnNpdmVVcGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsKToK
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2V0SGFzVmlzaWJsZUNvbnRlbnQpOgogICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgogICAgKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKICAgICogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CiAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpyZXBhaW50T25Db21wb3NpdGluZ0NoYW5nZSk6CiAgICAqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoKICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZURpZENoYW5nZSk6CiAgICAqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcDoKICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzY3JvbGxUbyk6CiAgICAqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgogICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCBjb25zdCk6CiAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0OjpyZXBhaW50IGNvbnN0KToKICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFp
bnRSZWN0YW5nbGUgY29uc3QpOgogICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6cmVwYWludFNs
b3dSZXBhaW50T2JqZWN0IGNvbnN0KToKICAgICogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oOgogICAgKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0
aW9uSW5mby5jcHA6CiAgICAoV2ViQ29yZTo6UmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2U6OlJlbmRl
clNlbGVjdGlvbkluZm9CYXNlKToKICAgICogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNlbGVjdGlvbkluZm8uaDoKICAgIChXZWJDb3JlOjpSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZTo6
cmVwYWludENvbnRhaW5lciBjb25zdCk6CiAgICAqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcDoKICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Um9vdENvbnRl
bnRzKToKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkdlb21l
dHJ5R2F0aGVyZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRy
eUdhdGhlcmVyLmNwcAppbmRleCAwZDg3MmM3ZTFkNzMuLmJjMmVjNjExODM2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3Bw
CkBAIC00MywxMyArNDMsMTMgQEAgU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6U2VsZWN0aW9u
R2VvbWV0cnlHYXRoZXJlcihSZW5kZXJWaWV3JiByZW5kZXJWaWV3KQogewogfQogCi12b2lkIFNl
bGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmFkZFF1YWQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAq
cmVwYWludENvbnRhaW5lciwgY29uc3QgRmxvYXRRdWFkJiBxdWFkKQordm9pZCBTZWxlY3Rpb25H
ZW9tZXRyeUdhdGhlcmVyOjphZGRRdWFkKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKIHsKICAgICBpZiAoIXF1YWQu
Ym91bmRpbmdCb3hJc0VtcHR5KCkpCiAgICAgICAgIG1fcXVhZHMuYXBwZW5kKHJlcGFpbnRDb250
YWluZXIgPyByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHF1YWQpIDogcXVh
ZCk7CiB9CiAKLXZvaWQgU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRkR2FwUmVjdHMoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENvbnRhaW5lciwgY29uc3QgR2FwUmVjdHMmIHJl
Y3RzKQordm9pZCBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjphZGRHYXBSZWN0cyhjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBHYXBSZWN0cyYg
cmVjdHMpCiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIpIHsKICAgICAgICAgR2FwUmVjdHMg
YWJzb2x1dGVHYXBSZWN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2Vs
ZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rp
b25HZW9tZXRyeUdhdGhlcmVyLmgKaW5kZXggMjJiZjBhMjNmMzUwLi5kMGE0Mjc3MjM0YjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJl
ci5oCkBAIC00NSw4ICs0NSw4IEBAIGNsYXNzIFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIgewog
cHVibGljOgogICAgIFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIoUmVuZGVyVmlldyYpOwogCi0g
ICAgdm9pZCBhZGRRdWFkKFJlbmRlckxheWVyTW9kZWxPYmplY3QgKnJlcGFpbnRDb250YWluZXIs
IGNvbnN0IEZsb2F0UXVhZCYpOwotICAgIHZvaWQgYWRkR2FwUmVjdHMoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCAqcmVwYWludENvbnRhaW5lciwgY29uc3QgR2FwUmVjdHMmKTsKKyAgICB2b2lkIGFk
ZFF1YWQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENvbnRhaW5lciwgY29u
c3QgRmxvYXRRdWFkJik7CisgICAgdm9pZCBhZGRHYXBSZWN0cyhjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0ICpyZXBhaW50Q29udGFpbmVyLCBjb25zdCBHYXBSZWN0cyYpOwogICAgIHZvaWQg
c2V0VGV4dE9ubHkoYm9vbCBpc1RleHRPbmx5KSB7IG1faXNUZXh0T25seSA9IGlzVGV4dE9ubHk7
IH0KICAgICBib29sIGlzVGV4dE9ubHkoKSBjb25zdCB7IHJldHVybiBtX2lzVGV4dE9ubHk7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDczZGExNmUzODViMC4uZGZkYzZiZjk5
N2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xMTg1LDcgKzExODUsNyBAQCB2
b2lkIEZyYW1lVmlldzo6ZW50ZXJDb21wb3NpdGluZ01vZGUoKQogYm9vbCBGcmFtZVZpZXc6Omlz
RW5jbG9zZWRJbkNvbXBvc2l0aW5nTGF5ZXIoKSBjb25zdAogewogICAgIGF1dG8gZnJhbWVPd25l
clJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCk7Ci0gICAgaWYgKGZyYW1lT3duZXJS
ZW5kZXJlciAmJiBmcmFtZU93bmVyUmVuZGVyZXItPmNvbnRhaW5lckZvclJlcGFpbnQoKSkKKyAg
ICBpZiAoZnJhbWVPd25lclJlbmRlcmVyICYmIGZyYW1lT3duZXJSZW5kZXJlci0+Y29udGFpbmVy
Rm9yUmVwYWludCgpLnJlbmRlcmVyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChG
cmFtZVZpZXcqIHBhcmVudFZpZXcgPSBwYXJlbnRGcmFtZVZpZXcoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5jcHAKaW5kZXggOGQ1ZWJkYjExZGNlLi5iNTdk
ZjcyZTg3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBh
aW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIu
Y3BwCkBAIC0zMCwyMSArMzAsMjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1MYXlvdXRS
ZXBhaW50ZXI6OkxheW91dFJlcGFpbnRlcihSZW5kZXJFbGVtZW50JiBvYmplY3QsIGJvb2wgY2hl
Y2tGb3JSZXBhaW50KQotICAgIDogbV9vYmplY3Qob2JqZWN0KQotICAgICwgbV9yZXBhaW50Q29u
dGFpbmVyKDApCitMYXlvdXRSZXBhaW50ZXI6OkxheW91dFJlcGFpbnRlcihSZW5kZXJFbGVtZW50
JiByZW5kZXJlciwgYm9vbCBjaGVja0ZvclJlcGFpbnQpCisgICAgOiBtX3JlbmRlcmVyKHJlbmRl
cmVyKQogICAgICwgbV9jaGVja0ZvclJlcGFpbnQoY2hlY2tGb3JSZXBhaW50KQogewogICAgIGlm
IChtX2NoZWNrRm9yUmVwYWludCkgewotICAgICAgICBtX3JlcGFpbnRDb250YWluZXIgPSBtX29i
amVjdC5jb250YWluZXJGb3JSZXBhaW50KCk7Ci0gICAgICAgIG1fb2xkQm91bmRzID0gbV9vYmpl
Y3QuY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQobV9yZXBhaW50Q29udGFpbmVyKTsKLSAg
ICAgICAgbV9vbGRPdXRsaW5lQm94ID0gbV9vYmplY3Qub3V0bGluZUJvdW5kc0ZvclJlcGFpbnQo
bV9yZXBhaW50Q29udGFpbmVyKTsKKyAgICAgICAgbV9yZXBhaW50Q29udGFpbmVyID0gbV9yZW5k
ZXJlci5jb250YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXI7CisgICAgICAgIG1fb2xkQm91bmRz
ID0gbV9yZW5kZXJlci5jbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChtX3JlcGFpbnRDb250
YWluZXIpOworICAgICAgICBtX29sZE91dGxpbmVCb3ggPSBtX3JlbmRlcmVyLm91dGxpbmVCb3Vu
ZHNGb3JSZXBhaW50KG1fcmVwYWludENvbnRhaW5lcik7CiAgICAgfQogfQogCiBib29sIExheW91
dFJlcGFpbnRlcjo6cmVwYWludEFmdGVyTGF5b3V0KCkKIHsKLSAgICByZXR1cm4gbV9jaGVja0Zv
clJlcGFpbnQgPyBtX29iamVjdC5yZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChtX3JlcGFpbnRD
b250YWluZXIsIG1fb2xkQm91bmRzLCBtX29sZE91dGxpbmVCb3gpIDogZmFsc2U7CisgICAgcmV0
dXJuIG1fY2hlY2tGb3JSZXBhaW50ID8gbV9yZW5kZXJlci5yZXBhaW50QWZ0ZXJMYXlvdXRJZk5l
ZWRlZChtX3JlcGFpbnRDb250YWluZXIsIG1fb2xkQm91bmRzLCBtX29sZE91dGxpbmVCb3gpIDog
ZmFsc2U7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MYXlvdXRSZXBhaW50ZXIuaAppbmRleCA5ZGRmYzEyZDFlNzkuLmFiYWYwNDc1NjczZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuaApAQCAtNDIsOCAr
NDIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCByZXBhaW50QWZ0ZXJMYXlvdXQoKTsKIAogcHJpdmF0
ZToKLSAgICBSZW5kZXJFbGVtZW50JiBtX29iamVjdDsKLSAgICBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiBtX3JlcGFpbnRDb250YWluZXI7CisgICAgUmVuZGVyRWxlbWVudCYgbV9yZW5kZXJlcjsK
KyAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBtX3JlcGFpbnRDb250YWluZXIgeyBu
dWxscHRyIH07CiAgICAgLy8gV2Ugc3RvcmUgdGhlc2UgdmFsdWVzIGFzIExheW91dFJlY3RzLCBi
dXQgdGhlIGZpbmFsIGludmFsaWRhdGlvbnMgd2lsbCBiZSBwaXhlbCBzbmFwcGVkCiAgICAgTGF5
b3V0UmVjdCBtX29sZEJvdW5kczsKICAgICBMYXlvdXRSZWN0IG1fb2xkT3V0bGluZUJveDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCBlZjg5
NjI2NDdlNTkuLjJjMWFkYzRmNjA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
ZWdhY3lMaW5lTGF5b3V0LmNwcApAQCAtMTM0Nyw3ICsxMzQ3LDcgQEAgdm9pZCBMZWdhY3lMaW5l
TGF5b3V0OjpsYXlvdXRSdW5zQW5kRmxvYXRzKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUs
IGJvb2wgaGEKICAgICAgICAgICAgIC8vIHRoYXQgdGhlIGJsb2NrIHJlYWxseSBuZWVkZWQgYSBm
dWxsIGxheW91dCwgd2UgbWlzc2VkIG91ciBjaGFuY2UgdG8gcmVwYWludCB0aGUgbGF5ZXIKICAg
ICAgICAgICAgIC8vIGJlZm9yZSBsYXlvdXQgc3RhcnRlZC4gTHVja2lseSB0aGUgbGF5ZXIgaGFz
IGNhY2hlZCB0aGUgcmVwYWludCByZWN0IGZvciBpdHMgb3JpZ2luYWwKICAgICAgICAgICAgIC8v
IHBvc2l0aW9uIGFuZCBzaXplLCBhbmQgc28gd2UgY2FuIHVzZSB0aGF0IHRvIG1ha2UgYSByZXBh
aW50IGhhcHBlbiBub3cuCi0gICAgICAgICAgICBtX2Zsb3cucmVwYWludFVzaW5nQ29udGFpbmVy
KG1fZmxvdy5jb250YWluZXJGb3JSZXBhaW50KCksIG1fZmxvdy5sYXllclJlcGFpbnRSZWN0cygp
LT5jbGlwcGVkT3ZlcmZsb3dSZWN0KTsKKyAgICAgICAgICAgIG1fZmxvdy5yZXBhaW50VXNpbmdD
b250YWluZXIobV9mbG93LmNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlciwgbV9mbG93Lmxh
eWVyUmVwYWludFJlY3RzKCktPmNsaXBwZWRPdmVyZmxvd1JlY3QpOwogICAgICAgICB9CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggMzVk
ZmZkZTk4ODliLi4zODhhN2M5NDQ3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHAKQEAgLTIxMTIsNyArMjExMiw3IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6
aXNzdWVSZXBhaW50Rm9yT3V0bGluZUF1dG8oZmxvYXQgb3V0bGluZVNpemUpCiB7CiAgICAgTGF5
b3V0UmVjdCByZXBhaW50UmVjdDsKICAgICBWZWN0b3I8TGF5b3V0UmVjdD4gZm9jdXNSaW5nUmVj
dHM7Ci0gICAgYWRkRm9jdXNSaW5nUmVjdHMoZm9jdXNSaW5nUmVjdHMsIExheW91dFBvaW50KCks
IGNvbnRhaW5lckZvclJlcGFpbnQoKSk7CisgICAgYWRkRm9jdXNSaW5nUmVjdHMoZm9jdXNSaW5n
UmVjdHMsIExheW91dFBvaW50KCksIGNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlcik7CiAg
ICAgZm9yIChhdXRvIHJlY3QgOiBmb2N1c1JpbmdSZWN0cykgewogICAgICAgICByZWN0LmluZmxh
dGUob3V0bGluZVNpemUpOwogICAgICAgICByZXBhaW50UmVjdC51bml0ZShyZWN0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwCmluZGV4
IDI2NWI4OTRmMzNmMi4uZWFiOTkwNThjYjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAKQEAgLTk0OCw3ICs5NDgsNyBAQCB2b2lk
IFJlbmRlckZyYWdtZW50ZWRGbG93OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIGFuYwogCiAgICAgICAgIC8vIElmIHRoZSByZXBhaW50IGNvbnRhaW5l
ciBpcyBudWxscHRyLCB3ZSBoYXZlIHRvIGNsaW1iIHVwIHRvIHRoZSBSZW5kZXJWaWV3LCBvdGhl
cndpc2Ugc3dhcAogICAgICAgICAvLyBpdCB3aXRoIHRoZSBmcmFnbWVudCdzIHJlcGFpbnQgY29u
dGFpbmVyLgotICAgICAgICBhbmNlc3RvckNvbnRhaW5lciA9IGFuY2VzdG9yQ29udGFpbmVyID8g
ZnJhZ21lbnQtPmNvbnRhaW5lckZvclJlcGFpbnQoKSA6IG51bGxwdHI7CisgICAgICAgIGFuY2Vz
dG9yQ29udGFpbmVyID0gYW5jZXN0b3JDb250YWluZXIgPyBmcmFnbWVudC0+Y29udGFpbmVyRm9y
UmVwYWludCgpLnJlbmRlcmVyIDogbnVsbHB0cjsKIAogICAgICAgICBpZiAoUmVuZGVyRnJhZ21l
bnRlZEZsb3cqIGZyYWdtZW50RnJhZ21lbnRlZEZsb3cgPSBmcmFnbWVudC0+ZW5jbG9zaW5nRnJh
Z21lbnRlZEZsb3coKSkgewogICAgICAgICAgICAgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIHN0
YXJ0RnJhZ21lbnQgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYW1lU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
cmFtZVNldC5jcHAKaW5kZXggMGI0OGQ5MzZiMjM1Li4xNTU4YzgzM2Q4NmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcApAQCAtNDM2LDkgKzQzNiw5IEBA
IHZvaWQgUmVuZGVyRnJhbWVTZXQ6OmxheW91dCgpCiAKICAgICBib29sIGRvRnVsbFJlcGFpbnQg
PSBzZWxmTmVlZHNMYXlvdXQoKSAmJiBjaGVja0ZvclJlcGFpbnREdXJpbmdMYXlvdXQoKTsKICAg
ICBMYXlvdXRSZWN0IG9sZEJvdW5kczsKLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyID0gMDsKKyAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyID0gbnVsbHB0cjsKICAgICBpZiAoZG9GdWxsUmVwYWludCkgewotICAgICAg
ICByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWludCgpOworICAgICAgICByZXBh
aW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyOwogICAgICAgICBv
bGRCb3VuZHMgPSBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVy
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4
IGNmNzk4NTAzMTllZi4uNTE0MWY0MjE2NTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKQEAgLTk5MCw3ICs5OTAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpyZWN1
cnNpdmVVcGRhdGVMYXllclBvc2l0aW9ucyhSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0cnlNYXAs
CiAgICAgICAgIC8vIExheW91dFN0YXRlIG91dHNpZGUgdGhlIGxheW91dCgpIHBoYXNlIGFuZCB1
c2UgaXQgaGVyZS4KICAgICAgICAgQVNTRVJUKCFyZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXco
KS5sYXlvdXRDb250ZXh0KCkuaXNQYWludE9mZnNldENhY2hlRW5hYmxlZCgpKTsKIAotICAgICAg
ICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gcmVuZGVyZXIoKS5j
b250YWluZXJGb3JSZXBhaW50KCk7CisgICAgICAgIGF1dG8qIHJlcGFpbnRDb250YWluZXIgPSBy
ZW5kZXJlcigpLmNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlcjsKICAgICAgICAgCiAgICAg
ICAgIGF1dG8gb2xkUmVjdHMgPSByZXBhaW50UmVjdHMoKTsKICAgICAgICAgY29tcHV0ZVJlcGFp
bnRSZWN0cyhyZXBhaW50Q29udGFpbmVyLCBnZW9tZXRyeU1hcCk7CkBAIC0xMTQ1LDcgKzExNDUs
NyBAQCB2b2lkIFJlbmRlckxheWVyOjpjb21wdXRlUmVwYWludFJlY3RzSW5jbHVkaW5nRGVzY2Vu
ZGFudHMoKQogICAgIC8vIEZJWE1FOiBjb21wdXRlUmVwYWludFJlY3RzKCkgaGFzIHRvIHdhbGsg
dXAgdGhlIHBhcmVudCBjaGFpbiBmb3IgZXZlcnkgbGF5ZXIgdG8gY29tcHV0ZSB0aGUgcmVjdHMu
CiAgICAgLy8gV2Ugc2hvdWxkIG1ha2UgdGhpcyBtb3JlIGVmZmljaWVudC4KICAgICAvLyBGSVhN
RTogaXQncyB3cm9uZyB0byBjYWxsIHRoaXMgd2hlbiBsYXlvdXQgaXMgbm90IHVwLXRvLWRhdGUs
IHdoaWNoIHdlIGRvLgotICAgIGNvbXB1dGVSZXBhaW50UmVjdHMocmVuZGVyZXIoKS5jb250YWlu
ZXJGb3JSZXBhaW50KCkpOworICAgIGNvbXB1dGVSZXBhaW50UmVjdHMocmVuZGVyZXIoKS5jb250
YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXIpOwogCiAgICAgZm9yIChSZW5kZXJMYXllciogbGF5
ZXIgPSBmaXJzdENoaWxkKCk7IGxheWVyOyBsYXllciA9IGxheWVyLT5uZXh0U2libGluZygpKQog
ICAgICAgICBsYXllci0+Y29tcHV0ZVJlcGFpbnRSZWN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7
CkBAIC0xMjIyLDEzICsxMjIyLDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0
ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwoUmVuZGVyR2VvbWV0cnlNYXAqIGdlCiAgICAgICAg
IGlmIChpc1Zpc3VhbGx5RW1wdHkpCiAgICAgICAgICAgICBjbGVhclJlcGFpbnRSZWN0cygpOwog
ICAgICAgICBlbHNlIC8vIEZJWE1FOiBXZSBjb3VsZCB0cmFjayB0aGUgcmVwYWludCBjb250YWlu
ZXIgYXMgd2Ugd2FsayBkb3duIHRoZSB0cmVlLgotICAgICAgICAgICAgY29tcHV0ZVJlcGFpbnRS
ZWN0cyhyZW5kZXJlcigpLmNvbnRhaW5lckZvclJlcGFpbnQoKSwgZ2VvbWV0cnlNYXApOworICAg
ICAgICAgICAgY29tcHV0ZVJlcGFpbnRSZWN0cyhyZW5kZXJlcigpLmNvbnRhaW5lckZvclJlcGFp
bnQoKS5yZW5kZXJlciwgZ2VvbWV0cnlNYXApOwogICAgIH0gZWxzZSBpZiAoIXJlbmRlcmVyKCku
dmlldygpLmZyYW1lVmlldygpLnBsYXRmb3JtV2lkZ2V0KCkpIHsKICAgICAgICAgLy8gV2hlbiBT
Y3JvbGxWaWV3J3MgbV9wYWludHNFbnRpcmVDb250ZW50cyBmbGFnIGZsaXBzIGR1ZSB0byBsYXll
ciBiYWNraW5nIGNoYW5nZXMsIHRoZSByZXBhaW50IGFyZWEgdHJhbnNpdGlvbnMgZnJvbQogICAg
ICAgICAvLyB2aXN1YWwgdG8gbGF5b3V0IG92ZXJmbG93LiBXaGVuIHRoaXMgaGFwcGVucyB0aGUg
Y2FjaGVkIHJlcGFpbnQgcmVjdHMgYmVjb21lIGludmFsaWQgYW5kIHRoZXkgbmVlZCB0byBiZSBy
ZWNvbXB1dGVkIChzZWUgd2Via2l0Lm9yZy9iLzE4ODEyMSkuCiAgICAgICAgIC8vIENoZWNrIHRo
YXQgb3VyIGNhY2hlZCByZWN0cyBhcmUgY29ycmVjdC4KLSAgICAgICAgQVNTRVJUX0lNUExJRVMo
bV9yZXBhaW50UmVjdHNWYWxpZCwgbV9yZXBhaW50UmVjdHMuY2xpcHBlZE92ZXJmbG93UmVjdCA9
PSByZW5kZXJlcigpLmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHJlbmRlcmVyKCkuY29u
dGFpbmVyRm9yUmVwYWludCgpKSk7Ci0gICAgICAgIEFTU0VSVF9JTVBMSUVTKG1fcmVwYWludFJl
Y3RzVmFsaWQsIG1fcmVwYWludFJlY3RzLm91dGxpbmVCb3VuZHNSZWN0ID09IHJlbmRlcmVyKCku
b3V0bGluZUJvdW5kc0ZvclJlcGFpbnQocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkp
KTsKKyAgICAgICAgQVNTRVJUX0lNUExJRVMobV9yZXBhaW50UmVjdHNWYWxpZCwgbV9yZXBhaW50
UmVjdHMuY2xpcHBlZE92ZXJmbG93UmVjdCA9PSByZW5kZXJlcigpLmNsaXBwZWRPdmVyZmxvd1Jl
Y3RGb3JSZXBhaW50KHJlbmRlcmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyKSk7
CisgICAgICAgIEFTU0VSVF9JTVBMSUVTKG1fcmVwYWludFJlY3RzVmFsaWQsIG1fcmVwYWludFJl
Y3RzLm91dGxpbmVCb3VuZHNSZWN0ID09IHJlbmRlcmVyKCkub3V0bGluZUJvdW5kc0ZvclJlcGFp
bnQocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXIpKTsKICAgICB9CiAg
ICAgCiAgICAgZm9yIChSZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQpAQCAtMTUwNiw3ICsxNTA2LDcgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6c2V0SGFzVmlzaWJsZUNvbnRlbnQoKQogCiAgICAgbV92aXNpYmxlQ29udGVu
dFN0YXR1c0RpcnR5ID0gZmFsc2U7IAogICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSB0cnVlOwot
ICAgIGNvbXB1dGVSZXBhaW50UmVjdHMocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkp
OworICAgIGNvbXB1dGVSZXBhaW50UmVjdHMocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50
KCkucmVuZGVyZXIpOwogICAgIGlmICghaXNOb3JtYWxGbG93T25seSgpKSB7CiAgICAgICAgIC8v
IFdlIGRvbid0IGNvbGxlY3QgaW52aXNpYmxlIGxheWVycyBpbiB6LW9yZGVyIGxpc3RzIGlmIHdl
IGFyZSBub3QgaW4gY29tcG9zaXRpbmcgbW9kZS4KICAgICAgICAgLy8gQXMgd2UgYmVjYW1lIHZp
c2libGUsIHdlIG5lZWQgdG8gZGlydHkgb3VyIHN0YWNraW5nIGNvbnRhaW5lcnMgYW5jZXN0b3Jz
IHRvIGJlIHByb3Blcmx5CkBAIC01MzI4LDcgKzUzMjgsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpz
ZXRCYWNraW5nTmVlZHNSZXBhaW50SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHIsIEdyYXBoaWNz
TGF5ZQogfQogCiAvLyBTaW5jZSB3ZSdyZSBvbmx5IHBhaW50aW5nIG5vbi1jb21wb3NpdGVkIGxh
eWVycywgd2Uga25vdyB0aGF0IHRoZXkgYWxsIHNoYXJlIHRoZSBzYW1lIHJlcGFpbnRDb250YWlu
ZXIuCi12b2lkIFJlbmRlckxheWVyOjpyZXBhaW50SW5jbHVkaW5nTm9uQ29tcG9zaXRpbmdEZXNj
ZW5kYW50cyhSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKQordm9pZCBS
ZW5kZXJMYXllcjo6cmVwYWludEluY2x1ZGluZ05vbkNvbXBvc2l0aW5nRGVzY2VuZGFudHMoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikKIHsKICAgICBhdXRv
IGNsaXBwZWRPdmVyZmxvd1JlY3QgPSBtX3JlcGFpbnRSZWN0c1ZhbGlkID8gbV9yZXBhaW50UmVj
dHMuY2xpcHBlZE92ZXJmbG93UmVjdCA6IHJlbmRlcmVyKCkuY2xpcHBlZE92ZXJmbG93UmVjdEZv
clJlcGFpbnQocmVwYWludENvbnRhaW5lcik7CiAgICAgcmVuZGVyZXIoKS5yZXBhaW50VXNpbmdD
b250YWluZXIocmVwYWludENvbnRhaW5lciwgY2xpcHBlZE92ZXJmbG93UmVjdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGU1MWUzMWE5MDIxNi4uMzJhODQxOWNl
MWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDI4LDcgKzQy
OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSByZWN0IGlzIGluIHRoZSBjb29yZGluYXRlIHNw
YWNlIG9mIHRoZSBsYXllcidzIHJlbmRlciBvYmplY3QuCiAgICAgdm9pZCBzZXRCYWNraW5nTmVl
ZHNSZXBhaW50SW5SZWN0KGNvbnN0IExheW91dFJlY3QmLCBHcmFwaGljc0xheWVyOjpTaG91bGRD
bGlwVG9MYXllciA9IEdyYXBoaWNzTGF5ZXI6OkNsaXBUb0xheWVyKTsKLSAgICB2b2lkIHJlcGFp
bnRJbmNsdWRpbmdOb25Db21wb3NpdGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIpOworICAgIHZvaWQgcmVwYWludEluY2x1ZGluZ05vbkNvbXBv
c2l0aW5nRGVzY2VuZGFudHMoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lcik7CiAKICAgICB2b2lkIHN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2UsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggYzM4ODlmODE0NmMwLi5hMDE1ZDlm
MGY1MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCkBAIC0xOTM5LDcgKzE5MzksNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6cmVwYWludE9uQ29tcG9zaXRpbmdDaGFuZ2UoUmVuZGVyTGF5ZXImIGxheWVyKQogICAg
IGlmICgmbGF5ZXIucmVuZGVyZXIoKSAhPSAmbV9yZW5kZXJWaWV3ICYmICFsYXllci5yZW5kZXJl
cigpLnBhcmVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvKiByZXBhaW50Q29udGFp
bmVyID0gbGF5ZXIucmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCk7CisgICAgYXV0byog
cmVwYWludENvbnRhaW5lciA9IGxheWVyLnJlbmRlcmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgp
LnJlbmRlcmVyOwogICAgIGlmICghcmVwYWludENvbnRhaW5lcikKICAgICAgICAgcmVwYWludENv
bnRhaW5lciA9ICZtX3JlbmRlclZpZXc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAppbmRleCBiNmRjOTUyZDhhMWEuLjQ3Yjlj
MWZkMTMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ck1vZGVsT2JqZWN0LmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRl
clN0CiAKICAgICAgICAgLy8gUmVwYWludCB0aGUgYWJvdXQgdG8gYmUgZGVzdHJveWVkIHNlbGYt
cGFpbnRpbmcgbGF5ZXIgd2hlbiBzdHlsZSBjaGFuZ2UgYWxzbyB0cmlnZ2VycyByZXBhaW50Lgog
ICAgICAgICBpZiAobGF5ZXIoKS0+aXNTZWxmUGFpbnRpbmdMYXllcigpICYmIGxheWVyKCktPnJl
cGFpbnRTdGF0dXMoKSA9PSBOZWVkc0Z1bGxSZXBhaW50ICYmIGxheWVyKCktPnJlcGFpbnRSZWN0
cygpKQotICAgICAgICAgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKGNvbnRhaW5lckZvclJlcGFp
bnQoKSwgbGF5ZXIoKS0+cmVwYWludFJlY3RzKCktPmNsaXBwZWRPdmVyZmxvd1JlY3QpOworICAg
ICAgICAgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKGNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5k
ZXJlciwgbGF5ZXIoKS0+cmVwYWludFJlY3RzKCktPmNsaXBwZWRPdmVyZmxvd1JlY3QpOwogCiAg
ICAgICAgIGxheWVyKCktPnJlbW92ZU9ubHlUaGlzTGF5ZXIoUmVuZGVyTGF5ZXI6OkxheWVyQ2hh
bmdlVGltaW5nOjpTdHlsZUNoYW5nZSk7IC8vIGNhbGxzIGRlc3Ryb3lMYXllcigpIHdoaWNoIGNs
ZWFycyBtX2xheWVyCiAgICAgICAgIGlmIChzX3dhc0Zsb2F0aW5nICYmIGlzRmxvYXRpbmcoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFi
bGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFi
bGVBcmVhLmNwcAppbmRleCBiYzk5MDliNmZkNjQuLmYwNjU0ZGI0NGVjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNw
cApAQCAtMzYxLDcgKzM2MSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2Ny
b2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uKQogICAgIH0KIAogICAgIEZyYW1l
JiBmcmFtZSA9IHJlbmRlcmVyLmZyYW1lKCk7Ci0gICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciA9IHJlbmRlcmVyLmNvbnRhaW5lckZvclJlcGFpbnQoKTsKKyAgICBh
dXRvKiByZXBhaW50Q29udGFpbmVyID0gcmVuZGVyZXIuY29udGFpbmVyRm9yUmVwYWludCgpLnJl
bmRlcmVyOwogICAgIC8vIFRoZSBjYXJldCByZWN0IG5lZWRzIHRvIGJlIGludmFsaWRhdGVkIGFm
dGVyIHNjcm9sbGluZwogICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldENhcmV0UmVjdE5lZWRzVXBk
YXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXgg
NWVhNzNlY2UzYTY5Li45MDAxYmUyOGI2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCkBAIC04NTcsNyArODU3LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJPYmpl
Y3Q6OnBhaW50aW5nUm9vdFJlY3QoTGF5b3V0UmVjdCYgdG9wTGV2ZWxSZWN0KQogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLVJlbmRlckxheWVyTW9kZWxPYmplY3QqIFJlbmRlck9iamVjdDo6Y29u
dGFpbmVyRm9yUmVwYWludCgpIGNvbnN0CitSZW5kZXJPYmplY3Q6OlJlcGFpbnRDb250YWluZXJT
dGF0dXMgUmVuZGVyT2JqZWN0Ojpjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3QKIHsKICAgICBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gbnVsbHB0cjsKIApAQCAt
ODcyLDcgKzg3Miw3IEBAIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIFJlbmRlck9iamVjdDo6Y29u
dGFpbmVyRm9yUmVwYWludCgpIGNvbnN0CiAgICAgICAgIGlmIChSZW5kZXJMYXllciogcGFyZW50
TGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpKSB7CiAgICAgICAgICAgICBSZW5kZXJMYXllciogZW5j
bG9zaW5nRmlsdGVyTGF5ZXIgPSBwYXJlbnRMYXllci0+ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoKTsK
ICAgICAgICAgICAgIGlmIChlbmNsb3NpbmdGaWx0ZXJMYXllcikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gJmVuY2xvc2luZ0ZpbHRlckxheWVyLT5yZW5kZXJlcigpOworICAgICAgICAgICAgICAg
IHJldHVybiB7IGZhbHNlLCAmZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJlbmRlcmVyKCkgfTsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtODg3LDcgKzg4Nyw3IEBAIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIFJlbmRlck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCgpIGNvbnN0CiAgICAgICAgIGlm
ICghcmVwYWludENvbnRhaW5lckZyYWdtZW50ZWRGbG93IHx8IHJlcGFpbnRDb250YWluZXJGcmFn
bWVudGVkRmxvdyAhPSBwYXJlbnRSZW5kZXJGcmFnbWVudGVkRmxvdykKICAgICAgICAgICAgIHJl
cGFpbnRDb250YWluZXIgPSBwYXJlbnRSZW5kZXJGcmFnbWVudGVkRmxvdzsKICAgICB9Ci0gICAg
cmV0dXJuIHJlcGFpbnRDb250YWluZXI7CisgICAgcmV0dXJuIHsgZmFsc2UsIHJlcGFpbnRDb250
YWluZXIgfTsKIH0KIAogdm9pZCBSZW5kZXJPYmplY3Q6OnByb3BhZ2F0ZVJlcGFpbnRUb1BhcmVu
dFdpdGhPdXRsaW5lQXV0b0lmTmVlZGVkKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJl
cGFpbnRDb250YWluZXIsIGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KSBjb25zdApAQCAt
OTcxLDggKzk3MSwxMiBAQCB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludCgpIGNvbnN0CiAgICAg
aWYgKHZpZXcucHJpbnRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5lckZvclJlcGFpbnQoKTsKLSAg
ICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciwgY2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lcikpOworICAgIGF1dG8gcmVwYWludENvbnRh
aW5lciA9IGNvbnRhaW5lckZvclJlcGFpbnQoKTsKKyAgICBpZiAoIXJlcGFpbnRDb250YWluZXIu
cmVuZGVyZXIpCisgICAgICAgIHJlcGFpbnRDb250YWluZXIucmVuZGVyZXIgPSAmdmlldzsKKwor
ICAgIGlmICghcmVwYWludENvbnRhaW5lci5mdWxsUmVwYWludElzU2NoZWR1bGVkKQorICAgICAg
ICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lci5yZW5kZXJlciwgY2xpcHBl
ZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lci5yZW5kZXJlcikpOwogfQog
CiB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiBy
LCBib29sIHNob3VsZENsaXBUb0xheWVyKSBjb25zdApAQCAtOTkwLDggKzk5NCwxMiBAQCB2b2lk
IFJlbmRlck9iamVjdDo6cmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByLCBib29s
IHNob3VsZENsaXBUb0xheWVyKQogICAgIC8vIHJlcGFpbnQgY29udGFpbmVycy4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzA4CiAgICAgZGlydHlSZWN0Lm1vdmUo
dmlldy5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0RGVsdGEoKSk7CiAKLSAgICBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVw
YWludCgpOwotICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBjb21w
dXRlUmVjdEZvclJlcGFpbnQoZGlydHlSZWN0LCByZXBhaW50Q29udGFpbmVyKSwgc2hvdWxkQ2xp
cFRvTGF5ZXIpOworICAgIGF1dG8gcmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5lckZvclJlcGFp
bnQoKTsKKyAgICBpZiAoIXJlcGFpbnRDb250YWluZXIucmVuZGVyZXIpCisgICAgICAgIHJlcGFp
bnRDb250YWluZXIucmVuZGVyZXIgPSAmdmlldzsKKworICAgIGlmIChyZXBhaW50Q29udGFpbmVy
LmZ1bGxSZXBhaW50SXNTY2hlZHVsZWQpCisgICAgICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihy
ZXBhaW50Q29udGFpbmVyLnJlbmRlcmVyLCBjb21wdXRlUmVjdEZvclJlcGFpbnQoZGlydHlSZWN0
LCByZXBhaW50Q29udGFpbmVyLnJlbmRlcmVyKSwgc2hvdWxkQ2xpcFRvTGF5ZXIpOwogfQogCiB2
b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFNsb3dSZXBhaW50T2JqZWN0KCkgY29uc3QKQEAgLTEw
MDQsNyArMTAxMiw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50U2xvd1JlcGFpbnRPYmpl
Y3QoKSBjb25zdAogICAgIGlmICh2aWV3LnByaW50aW5nKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBjb250
YWluZXJGb3JSZXBhaW50KCk7CisgICAgYXV0byogcmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5l
ckZvclJlcGFpbnQoKS5yZW5kZXJlcjsKIAogICAgIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIgPSB0
cnVlOwogICAgIEludFJlY3QgcmVwYWludFJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgKaW5kZXggY2JjZmY2NzEzYWJmLi5hN2YyNTBhZGJjMmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTYyOCw3ICs2MjgsMTEgQEAgcHVibGlj
OgogCiAgICAgLy8gUmV0dXJuIHRoZSBSZW5kZXJMYXllck1vZGVsT2JqZWN0IGluIHRoZSBjb250
YWluZXIgY2hhaW4gd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHBhaW50aW5nIHRoaXMgb2JqZWN0
LCBvciBudWxscHRyCiAgICAgLy8gaWYgcGFpbnRpbmcgaXMgcm9vdC1yZWxhdGl2ZS4gVGhpcyBp
cyB0aGUgY29udGFpbmVyIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB0byB0aGUgJ2ZvclJlcGFpbnQn
IGZ1bmN0aW9ucy4KLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBjb250YWluZXJGb3JSZXBh
aW50KCkgY29uc3Q7CisgICAgc3RydWN0IFJlcGFpbnRDb250YWluZXJTdGF0dXMgeworICAgICAg
ICBib29sIGZ1bGxSZXBhaW50SXNTY2hlZHVsZWQgeyBmYWxzZSB9OyAvLyBFaXRoZXIgdGhlIHJl
cGFpbnQgY29udGFpbmVyIG9yIGEgbGF5ZXIgaW4tYmV0d2VlbiBoYXMgYWxlYWR5IGJlZW4gc2No
ZWR1bGVkIGZvciBmdWxsIHJlcGFpbnQuCisgICAgICAgIGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlbmRlcmVyIHsgbnVsbHB0ciB9OworICAgIH07CisgICAgUmVwYWludENvbnRhaW5l
clN0YXR1cyBjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3Q7CiAgICAgLy8gQWN0dWFsbHkgZG8g
dGhlIHJlcGFpbnQgb2YgcmVjdCByIGZvciB0aGlzIG9iamVjdCB3aGljaCBoYXMgYmVlbiBjb21w
dXRlZCBpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZQogICAgIC8vIG9mIHJlcGFpbnRDb250YWluZXIu
IElmIHJlcGFpbnRDb250YWluZXIgaXMgbnVsbHB0ciwgcmVwYWludCB2aWEgdGhlIHZpZXcuCiAg
ICAgdm9pZCByZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgc2hvdWxkQ2xpcFRv
TGF5ZXIgPSB0cnVlKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTZWxlY3Rpb25JbmZvLmNwcAppbmRleCBjZGI4ZTRmZmNjMjEuLjE2YjMyYWYyODAyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNwcApA
QCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNlbGVjdGlvbklu
Zm9CYXNlOjpSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZShSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQog
ICAgIDogbV9yZW5kZXJlcihyZW5kZXJlcikKLSAgICAsIG1fcmVwYWludENvbnRhaW5lcihyZW5k
ZXJlci5jb250YWluZXJGb3JSZXBhaW50KCkpCisgICAgLCBtX3JlcGFpbnRDb250YWluZXIocmVu
ZGVyZXIuY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyKQogICAgICwgbV9zdGF0ZShyZW5k
ZXJlci5zZWxlY3Rpb25TdGF0ZSgpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTZWxlY3Rpb25JbmZvLmgKaW5kZXggNWE0MmE0YTU0YmM1Li40MjY5MDMwYmIzM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZv
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaApA
QCAtMzQsMTQgKzM0LDE0IEBAIGNsYXNzIFJlbmRlclNlbGVjdGlvbkluZm9CYXNlIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZSk7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclNlbGVjdGlvbkluZm9C
YXNlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpOwotICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIoKSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRDb250YWluZXI7IH0K
KyAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKCkgY29u
c3QgeyByZXR1cm4gbV9yZXBhaW50Q29udGFpbmVyOyB9CiAgICAgUmVuZGVyT2JqZWN0OjpIaWdo
bGlnaHRTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KIAogcHJvdGVjdGVk
OgogICAgIHZvaWQgcmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVj
dCk7CiAKICAgICBSZW5kZXJPYmplY3QmIG1fcmVuZGVyZXI7Ci0gICAgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogbV9yZXBhaW50Q29udGFpbmVyOworICAgIGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIG1fcmVwYWludENvbnRhaW5lcjsKIAogcHJpdmF0ZToKICAgICBSZW5kZXJPYmplY3Q6
OkhpZ2hsaWdodFN0YXRlIG1fc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKaW5kZXggYzU2Mzg0OTBmYWNhLi4wMzFiNWNlNGU5YjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTQ0OCw3ICs0NDgsNyBAQCB2b2lkIFJlbmRlclZp
ZXc6OnJlcGFpbnRSb290Q29udGVudHMoKQogCiAgICAgLy8gQWx3YXlzIHVzZSBsYXlvdXRPdmVy
Zmxvd1JlY3QoKSB0byBmaXggcmRhcjovL3Byb2JsZW0vMjcxODIyNjcuCiAgICAgLy8gVGhpcyBz
aG91bGQgYmUgY2xlYW5lZCB1cCB2aWEgd2Via2l0Lm9yZy9iLzE1OTkxMyBhbmQgd2Via2l0Lm9y
Zy9iLzE1OTkxNC4KLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
ID0gY29udGFpbmVyRm9yUmVwYWludCgpOworICAgIGF1dG8qIHJlcGFpbnRDb250YWluZXIgPSBj
b250YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXI7CiAgICAgcmVwYWludFVzaW5nQ29udGFpbmVy
KHJlcGFpbnRDb250YWluZXIsIGNvbXB1dGVSZWN0Rm9yUmVwYWludChsYXlvdXRPdmVyZmxvd1Jl
Y3QoKSwgcmVwYWludENvbnRhaW5lcikpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459621</attachid>
            <date>2022-05-20 10:52:12 -0700</date>
            <delta_ts>2022-05-20 13:53:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240721-20220520105212.patch</filename>
            <type>text/plain</type>
            <size>25495</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAyZGEzOGY2YzgyMGQ1OTg0NzhiNDVhOTg4ZjdjNmZjMDk5ZDZiYjhhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDIwIE1heSAyMDIyIDEwOjQ4OjE0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gUmVuZGVyT2Jq
ZWN0Ojpjb250YWluZXJGb3JSZXBhaW50IHNob3VsZCBiZSBhYmxlIHRvIHRlbGwgaWYgYQogZnVs
bCByZXBhaW50IGhhcyBhbHJlYWR5IGJlZW4gc2NoZWR1bGVkLgogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDcyMQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgpUaGlzIHBhdGNoIGlzIGluIHByZXBhcmF0aW9uIGZvciByZWR1Y2luZyByZWR1bmRhbnQgcmVw
YWludHMgd2hlbiBhbiBhbmNlc3RvciBsYXllciAoYmV0d2Vlbgp0aGUgcmVuZGVyZXIgYW5kIHRo
ZSByZXBhaW50IGNvbnRhaW5lcikgaGFzIGFscmVhZHkgYmVlbiBzY2hlZHVsZWQgZm9yIG9uZS4K
CiogU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcDoK
KFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmFkZFF1YWQpOgooV2ViQ29yZTo6
U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRkR2FwUmVjdHMpOgoqIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6aXNFbmNsb3NlZEluQ29tcG9z
aXRpbmdMYXllciBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFp
bnRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXRSZXBhaW50ZXI6OkxheW91dFJlcGFpbnRlcik6CihX
ZWJDb3JlOjpMYXlvdXRSZXBhaW50ZXI6OnJlcGFpbnRBZnRlckxheW91dCk6CiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcDoKKFdlYkNvcmU6OkxlZ2FjeUxpbmVMYXlvdXQ6Omxh
eW91dFJ1bnNBbmRGbG9hdHMpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcDoKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6Omlzc3VlUmVwYWludEZvck91dGxpbmVB
dXRvKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3Bw
OgooV2ViQ29yZTo6UmVuZGVyRnJhZ21lbnRlZEZsb3c6Om1hcExvY2FsVG9Db250YWluZXIgY29u
c3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJGcmFtZVNldDo6bGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxh
eWVyUG9zaXRpb25zKToKKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjb21wdXRlUmVwYWludFJlY3Rz
SW5jbHVkaW5nRGVzY2VuZGFudHMpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVw
ZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNl
dEhhc1Zpc2libGVDb250ZW50KToKKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlw
UmVjdHMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXBhaW50T25Db21wb3NpdGluZ0NoYW5nZSk6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgoo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UpOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcDoKKFdlYkNv
cmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvKToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29u
dGFpbmVyRm9yUmVwYWludCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnQg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlIGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6cmVwYWludFNsb3dSZXBhaW50T2JqZWN0IGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwOgooV2ViQ29yZTo6UmVuZGVyU2Vs
ZWN0aW9uSW5mb0Jhc2U6OlJlbmRlclNlbGVjdGlvbkluZm9CYXNlKToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oOgooV2ViQ29yZTo6UmVuZGVyU2VsZWN0
aW9uSW5mb0Jhc2U6OnJlcGFpbnRDb250YWluZXIgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKFdlYkNvcmU6OlJlbmRlclZpZXc6OnJlcGFpbnRSb290
Q29udGVudHMpOgotLS0KIC4uLi9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3Bw
ICAgICB8ICA0ICsrLS0KIC4uLi9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuaCAg
ICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAg
ICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0UmVwYWludGVyLmNw
cCAgfCAxMyArKysrKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0UmVwYWlu
dGVyLmggICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxh
eW91dC5jcHAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwICAgIHwgIDIgKy0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwICAg
ICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3Bw
ICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAg
ICAgfCAxNCArKysrKy0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmggICAgICAgIHwgIDIgKy0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cCAgICAgICB8ICAyICstCiAuLi4vcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3Bw
ICAgICAgfCAgMiArLQogLi4uL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNw
cCAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAg
ICB8IDI0ICsrKysrKysrKysrKy0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaCAgICAgICB8ICA2ICsrKystCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2VsZWN0aW9uSW5mby5jcHAgfCAgMiArLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNl
bGVjdGlvbkluZm8uaCAgIHwgIDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwICAgICAgIHwgIDIgKy0KIDE5IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMo
KyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nl
bGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3BwCmluZGV4IDBkODcyYzdlMWQ3My4uYmMyZWM2MTE4
MzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5
R2F0aGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0
cnlHYXRoZXJlci5jcHAKQEAgLTQzLDEzICs0MywxMyBAQCBTZWxlY3Rpb25HZW9tZXRyeUdhdGhl
cmVyOjpTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyKFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCiB7
CiB9CiAKLXZvaWQgU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRkUXVhZChSZW5kZXJMYXll
ck1vZGVsT2JqZWN0ICpyZXBhaW50Q29udGFpbmVyLCBjb25zdCBGbG9hdFF1YWQmIHF1YWQpCit2
b2lkIFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmFkZFF1YWQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgRmxvYXRRdWFkJiBxdWFkKQogewog
ICAgIGlmICghcXVhZC5ib3VuZGluZ0JveElzRW1wdHkoKSkKICAgICAgICAgbV9xdWFkcy5hcHBl
bmQocmVwYWludENvbnRhaW5lciA/IHJlcGFpbnRDb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZVF1
YWQocXVhZCkgOiBxdWFkKTsKIH0KIAotdm9pZCBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjph
ZGRHYXBSZWN0cyhSZW5kZXJMYXllck1vZGVsT2JqZWN0ICpyZXBhaW50Q29udGFpbmVyLCBjb25z
dCBHYXBSZWN0cyYgcmVjdHMpCit2b2lkIFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmFkZEdh
cFJlY3RzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNv
bnN0IEdhcFJlY3RzJiByZWN0cykKIHsKICAgICBpZiAocmVwYWludENvbnRhaW5lcikgewogICAg
ICAgICBHYXBSZWN0cyBhYnNvbHV0ZUdhcFJlY3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuaAppbmRleCAyMmJmMGEyM2YzNTAuLmQw
YTQyNzcyMzRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25H
ZW9tZXRyeUdhdGhlcmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25H
ZW9tZXRyeUdhdGhlcmVyLmgKQEAgLTQ1LDggKzQ1LDggQEAgY2xhc3MgU2VsZWN0aW9uR2VvbWV0
cnlHYXRoZXJlciB7CiBwdWJsaWM6CiAgICAgU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcihSZW5k
ZXJWaWV3Jik7CiAKLSAgICB2b2lkIGFkZFF1YWQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVw
YWludENvbnRhaW5lciwgY29uc3QgRmxvYXRRdWFkJik7Ci0gICAgdm9pZCBhZGRHYXBSZWN0cyhS
ZW5kZXJMYXllck1vZGVsT2JqZWN0ICpyZXBhaW50Q29udGFpbmVyLCBjb25zdCBHYXBSZWN0cyYp
OworICAgIHZvaWQgYWRkUXVhZChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0ICpyZXBhaW50
Q29udGFpbmVyLCBjb25zdCBGbG9hdFF1YWQmKTsKKyAgICB2b2lkIGFkZEdhcFJlY3RzKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QgKnJlcGFpbnRDb250YWluZXIsIGNvbnN0IEdhcFJlY3Rz
Jik7CiAgICAgdm9pZCBzZXRUZXh0T25seShib29sIGlzVGV4dE9ubHkpIHsgbV9pc1RleHRPbmx5
ID0gaXNUZXh0T25seTsgfQogICAgIGJvb2wgaXNUZXh0T25seSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNUZXh0T25seTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNzNkYTE2ZTM4
NWIwLi5kZmRjNmJmOTk3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTExODUs
NyArMTE4NSw3IEBAIHZvaWQgRnJhbWVWaWV3OjplbnRlckNvbXBvc2l0aW5nTW9kZSgpCiBib29s
IEZyYW1lVmlldzo6aXNFbmNsb3NlZEluQ29tcG9zaXRpbmdMYXllcigpIGNvbnN0CiB7CiAgICAg
YXV0byBmcmFtZU93bmVyUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKLSAgICBp
ZiAoZnJhbWVPd25lclJlbmRlcmVyICYmIGZyYW1lT3duZXJSZW5kZXJlci0+Y29udGFpbmVyRm9y
UmVwYWludCgpKQorICAgIGlmIChmcmFtZU93bmVyUmVuZGVyZXIgJiYgZnJhbWVPd25lclJlbmRl
cmVyLT5jb250YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXIpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCiAgICAgaWYgKEZyYW1lVmlldyogcGFyZW50VmlldyA9IHBhcmVudEZyYW1lVmlldygpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0UmVwYWludGVyLmNwcAppbmRleCA4ZDVl
YmRiMTFkY2UuLmI1N2RmNzJlODc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xheW91dFJlcGFpbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eW91dFJlcGFpbnRlci5jcHAKQEAgLTMwLDIxICszMCwyMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUxheW91dFJlcGFpbnRlcjo6TGF5b3V0UmVwYWludGVyKFJlbmRlckVsZW1lbnQmIG9i
amVjdCwgYm9vbCBjaGVja0ZvclJlcGFpbnQpCi0gICAgOiBtX29iamVjdChvYmplY3QpCi0gICAg
LCBtX3JlcGFpbnRDb250YWluZXIoMCkKK0xheW91dFJlcGFpbnRlcjo6TGF5b3V0UmVwYWludGVy
KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBib29sIGNoZWNrRm9yUmVwYWludCkKKyAgICA6IG1f
cmVuZGVyZXIocmVuZGVyZXIpCiAgICAgLCBtX2NoZWNrRm9yUmVwYWludChjaGVja0ZvclJlcGFp
bnQpCiB7CiAgICAgaWYgKG1fY2hlY2tGb3JSZXBhaW50KSB7Ci0gICAgICAgIG1fcmVwYWludENv
bnRhaW5lciA9IG1fb2JqZWN0LmNvbnRhaW5lckZvclJlcGFpbnQoKTsKLSAgICAgICAgbV9vbGRC
b3VuZHMgPSBtX29iamVjdC5jbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChtX3JlcGFpbnRD
b250YWluZXIpOwotICAgICAgICBtX29sZE91dGxpbmVCb3ggPSBtX29iamVjdC5vdXRsaW5lQm91
bmRzRm9yUmVwYWludChtX3JlcGFpbnRDb250YWluZXIpOworICAgICAgICBtX3JlcGFpbnRDb250
YWluZXIgPSBtX3JlbmRlcmVyLmNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlcjsKKyAgICAg
ICAgbV9vbGRCb3VuZHMgPSBtX3JlbmRlcmVyLmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50
KG1fcmVwYWludENvbnRhaW5lcik7CisgICAgICAgIG1fb2xkT3V0bGluZUJveCA9IG1fcmVuZGVy
ZXIub3V0bGluZUJvdW5kc0ZvclJlcGFpbnQobV9yZXBhaW50Q29udGFpbmVyKTsKICAgICB9CiB9
CiAKIGJvb2wgTGF5b3V0UmVwYWludGVyOjpyZXBhaW50QWZ0ZXJMYXlvdXQoKQogewotICAgIHJl
dHVybiBtX2NoZWNrRm9yUmVwYWludCA/IG1fb2JqZWN0LnJlcGFpbnRBZnRlckxheW91dElmTmVl
ZGVkKG1fcmVwYWludENvbnRhaW5lciwgbV9vbGRCb3VuZHMsIG1fb2xkT3V0bGluZUJveCkgOiBm
YWxzZTsKKyAgICByZXR1cm4gbV9jaGVja0ZvclJlcGFpbnQgPyBtX3JlbmRlcmVyLnJlcGFpbnRB
ZnRlckxheW91dElmTmVlZGVkKG1fcmVwYWludENvbnRhaW5lciwgbV9vbGRCb3VuZHMsIG1fb2xk
T3V0bGluZUJveCkgOiBmYWxzZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5oCmluZGV4IDlkZGZjMTJkMWU3OS4u
YWJhZjA0NzU2NzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0
UmVwYWludGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRl
ci5oCkBAIC00Miw4ICs0Miw4IEBAIHB1YmxpYzoKICAgICBib29sIHJlcGFpbnRBZnRlckxheW91
dCgpOwogCiBwcml2YXRlOgotICAgIFJlbmRlckVsZW1lbnQmIG1fb2JqZWN0OwotICAgIFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIG1fcmVwYWludENvbnRhaW5lcjsKKyAgICBSZW5kZXJFbGVtZW50
JiBtX3JlbmRlcmVyOworICAgIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIG1fcmVwYWlu
dENvbnRhaW5lciB7IG51bGxwdHIgfTsKICAgICAvLyBXZSBzdG9yZSB0aGVzZSB2YWx1ZXMgYXMg
TGF5b3V0UmVjdHMsIGJ1dCB0aGUgZmluYWwgaW52YWxpZGF0aW9ucyB3aWxsIGJlIHBpeGVsIHNu
YXBwZWQKICAgICBMYXlvdXRSZWN0IG1fb2xkQm91bmRzOwogICAgIExheW91dFJlY3QgbV9vbGRP
dXRsaW5lQm94OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxp
bmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQu
Y3BwCmluZGV4IGVmODk2MjY0N2U1OS4uMmMxYWRjNGY2MDY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCkBAIC0xMzQ3LDcgKzEzNDcsNyBAQCB2
b2lkIExlZ2FjeUxpbmVMYXlvdXQ6OmxheW91dFJ1bnNBbmRGbG9hdHMoTGluZUxheW91dFN0YXRl
JiBsYXlvdXRTdGF0ZSwgYm9vbCBoYQogICAgICAgICAgICAgLy8gdGhhdCB0aGUgYmxvY2sgcmVh
bGx5IG5lZWRlZCBhIGZ1bGwgbGF5b3V0LCB3ZSBtaXNzZWQgb3VyIGNoYW5jZSB0byByZXBhaW50
IHRoZSBsYXllcgogICAgICAgICAgICAgLy8gYmVmb3JlIGxheW91dCBzdGFydGVkLiBMdWNraWx5
IHRoZSBsYXllciBoYXMgY2FjaGVkIHRoZSByZXBhaW50IHJlY3QgZm9yIGl0cyBvcmlnaW5hbAog
ICAgICAgICAgICAgLy8gcG9zaXRpb24gYW5kIHNpemUsIGFuZCBzbyB3ZSBjYW4gdXNlIHRoYXQg
dG8gbWFrZSBhIHJlcGFpbnQgaGFwcGVuIG5vdy4KLSAgICAgICAgICAgIG1fZmxvdy5yZXBhaW50
VXNpbmdDb250YWluZXIobV9mbG93LmNvbnRhaW5lckZvclJlcGFpbnQoKSwgbV9mbG93LmxheWVy
UmVwYWludFJlY3RzKCktPmNsaXBwZWRPdmVyZmxvd1JlY3QpOworICAgICAgICAgICAgbV9mbG93
LnJlcGFpbnRVc2luZ0NvbnRhaW5lcihtX2Zsb3cuY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRl
cmVyLCBtX2Zsb3cubGF5ZXJSZXBhaW50UmVjdHMoKS0+Y2xpcHBlZE92ZXJmbG93UmVjdCk7CiAg
ICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcAppbmRleCAzNWRmZmRlOTg4OWIuLjM4OGE3Yzk0NDdiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMjExMiw3ICsyMTEyLDcgQEAgdm9pZCBS
ZW5kZXJFbGVtZW50Ojppc3N1ZVJlcGFpbnRGb3JPdXRsaW5lQXV0byhmbG9hdCBvdXRsaW5lU2l6
ZSkKIHsKICAgICBMYXlvdXRSZWN0IHJlcGFpbnRSZWN0OwogICAgIFZlY3RvcjxMYXlvdXRSZWN0
PiBmb2N1c1JpbmdSZWN0czsKLSAgICBhZGRGb2N1c1JpbmdSZWN0cyhmb2N1c1JpbmdSZWN0cywg
TGF5b3V0UG9pbnQoKSwgY29udGFpbmVyRm9yUmVwYWludCgpKTsKKyAgICBhZGRGb2N1c1JpbmdS
ZWN0cyhmb2N1c1JpbmdSZWN0cywgTGF5b3V0UG9pbnQoKSwgY29udGFpbmVyRm9yUmVwYWludCgp
LnJlbmRlcmVyKTsKICAgICBmb3IgKGF1dG8gcmVjdCA6IGZvY3VzUmluZ1JlY3RzKSB7CiAgICAg
ICAgIHJlY3QuaW5mbGF0ZShvdXRsaW5lU2l6ZSk7CiAgICAgICAgIHJlcGFpbnRSZWN0LnVuaXRl
KHJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdt
ZW50ZWRGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVk
Rmxvdy5jcHAKaW5kZXggMjY1Yjg5NGYzM2YyLi5lYWI5OTA1OGNiNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmNwcApAQCAtOTQ4LDcg
Kzk0OCw3IEBAIHZvaWQgUmVuZGVyRnJhZ21lbnRlZEZsb3c6Om1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jCiAKICAgICAgICAgLy8gSWYgdGhlIHJl
cGFpbnQgY29udGFpbmVyIGlzIG51bGxwdHIsIHdlIGhhdmUgdG8gY2xpbWIgdXAgdG8gdGhlIFJl
bmRlclZpZXcsIG90aGVyd2lzZSBzd2FwCiAgICAgICAgIC8vIGl0IHdpdGggdGhlIGZyYWdtZW50
J3MgcmVwYWludCBjb250YWluZXIuCi0gICAgICAgIGFuY2VzdG9yQ29udGFpbmVyID0gYW5jZXN0
b3JDb250YWluZXIgPyBmcmFnbWVudC0+Y29udGFpbmVyRm9yUmVwYWludCgpIDogbnVsbHB0cjsK
KyAgICAgICAgYW5jZXN0b3JDb250YWluZXIgPSBhbmNlc3RvckNvbnRhaW5lciA/IGZyYWdtZW50
LT5jb250YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXIgOiBudWxscHRyOwogCiAgICAgICAgIGlm
IChSZW5kZXJGcmFnbWVudGVkRmxvdyogZnJhZ21lbnRGcmFnbWVudGVkRmxvdyA9IGZyYWdtZW50
LT5lbmNsb3NpbmdGcmFnbWVudGVkRmxvdygpKSB7CiAgICAgICAgICAgICBSZW5kZXJGcmFnbWVu
dENvbnRhaW5lciogc3RhcnRGcmFnbWVudCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcAppbmRleCAwYjQ4ZDkzNmIyMzUuLjE1NThjODMzZDg2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCkBAIC00
MzYsOSArNDM2LDkgQEAgdm9pZCBSZW5kZXJGcmFtZVNldDo6bGF5b3V0KCkKIAogICAgIGJvb2wg
ZG9GdWxsUmVwYWludCA9IHNlbGZOZWVkc0xheW91dCgpICYmIGNoZWNrRm9yUmVwYWludER1cmlu
Z0xheW91dCgpOwogICAgIExheW91dFJlY3Qgb2xkQm91bmRzOwotICAgIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSAwOworICAgIGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBudWxscHRyOwogICAgIGlmIChkb0Z1bGxSZXBh
aW50KSB7Ci0gICAgICAgIHJlcGFpbnRDb250YWluZXIgPSBjb250YWluZXJGb3JSZXBhaW50KCk7
CisgICAgICAgIHJlcGFpbnRDb250YWluZXIgPSBjb250YWluZXJGb3JSZXBhaW50KCkucmVuZGVy
ZXI7CiAgICAgICAgIG9sZEJvdW5kcyA9IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHJl
cGFpbnRDb250YWluZXIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKaW5kZXggY2Y3OTg1MDMxOWVmLi41MTQxZjQyMTY1NDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtOTkwLDcgKzk5MCw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zKFJlbmRlckdlb21ldHJ5TWFw
KiBnZW9tZXRyeU1hcCwKICAgICAgICAgLy8gTGF5b3V0U3RhdGUgb3V0c2lkZSB0aGUgbGF5b3V0
KCkgcGhhc2UgYW5kIHVzZSBpdCBoZXJlLgogICAgICAgICBBU1NFUlQoIXJlbmRlcmVyKCkudmll
dygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc1BhaW50T2Zmc2V0Q2FjaGVFbmFibGVk
KCkpOwogCi0gICAgICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIg
PSByZW5kZXJlcigpLmNvbnRhaW5lckZvclJlcGFpbnQoKTsKKyAgICAgICAgYXV0byogcmVwYWlu
dENvbnRhaW5lciA9IHJlbmRlcmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyOwog
ICAgICAgICAKICAgICAgICAgYXV0byBvbGRSZWN0cyA9IHJlcGFpbnRSZWN0cygpOwogICAgICAg
ICBjb21wdXRlUmVwYWludFJlY3RzKHJlcGFpbnRDb250YWluZXIsIGdlb21ldHJ5TWFwKTsKQEAg
LTExNDUsNyArMTE0NSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbXB1dGVSZXBhaW50UmVjdHNJ
bmNsdWRpbmdEZXNjZW5kYW50cygpCiAgICAgLy8gRklYTUU6IGNvbXB1dGVSZXBhaW50UmVjdHMo
KSBoYXMgdG8gd2FsayB1cCB0aGUgcGFyZW50IGNoYWluIGZvciBldmVyeSBsYXllciB0byBjb21w
dXRlIHRoZSByZWN0cy4KICAgICAvLyBXZSBzaG91bGQgbWFrZSB0aGlzIG1vcmUgZWZmaWNpZW50
LgogICAgIC8vIEZJWE1FOiBpdCdzIHdyb25nIHRvIGNhbGwgdGhpcyB3aGVuIGxheW91dCBpcyBu
b3QgdXAtdG8tZGF0ZSwgd2hpY2ggd2UgZG8uCi0gICAgY29tcHV0ZVJlcGFpbnRSZWN0cyhyZW5k
ZXJlcigpLmNvbnRhaW5lckZvclJlcGFpbnQoKSk7CisgICAgY29tcHV0ZVJlcGFpbnRSZWN0cyhy
ZW5kZXJlcigpLmNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlcik7CiAKICAgICBmb3IgKFJl
bmRlckxheWVyKiBsYXllciA9IGZpcnN0Q2hpbGQoKTsgbGF5ZXI7IGxheWVyID0gbGF5ZXItPm5l
eHRTaWJsaW5nKCkpCiAgICAgICAgIGxheWVyLT5jb21wdXRlUmVwYWludFJlY3RzSW5jbHVkaW5n
RGVzY2VuZGFudHMoKTsKQEAgLTEyMjIsMTMgKzEyMjIsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cmVjdXJzaXZlVXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbChSZW5kZXJHZW9tZXRyeU1h
cCogZ2UKICAgICAgICAgaWYgKGlzVmlzdWFsbHlFbXB0eSkKICAgICAgICAgICAgIGNsZWFyUmVw
YWludFJlY3RzKCk7CiAgICAgICAgIGVsc2UgLy8gRklYTUU6IFdlIGNvdWxkIHRyYWNrIHRoZSBy
ZXBhaW50IGNvbnRhaW5lciBhcyB3ZSB3YWxrIGRvd24gdGhlIHRyZWUuCi0gICAgICAgICAgICBj
b21wdXRlUmVwYWludFJlY3RzKHJlbmRlcmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgpLCBnZW9t
ZXRyeU1hcCk7CisgICAgICAgICAgICBjb21wdXRlUmVwYWludFJlY3RzKHJlbmRlcmVyKCkuY29u
dGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyLCBnZW9tZXRyeU1hcCk7CiAgICAgfSBlbHNlIGlm
ICghcmVuZGVyZXIoKS52aWV3KCkuZnJhbWVWaWV3KCkucGxhdGZvcm1XaWRnZXQoKSkgewogICAg
ICAgICAvLyBXaGVuIFNjcm9sbFZpZXcncyBtX3BhaW50c0VudGlyZUNvbnRlbnRzIGZsYWcgZmxp
cHMgZHVlIHRvIGxheWVyIGJhY2tpbmcgY2hhbmdlcywgdGhlIHJlcGFpbnQgYXJlYSB0cmFuc2l0
aW9ucyBmcm9tCiAgICAgICAgIC8vIHZpc3VhbCB0byBsYXlvdXQgb3ZlcmZsb3cuIFdoZW4gdGhp
cyBoYXBwZW5zIHRoZSBjYWNoZWQgcmVwYWludCByZWN0cyBiZWNvbWUgaW52YWxpZCBhbmQgdGhl
eSBuZWVkIHRvIGJlIHJlY29tcHV0ZWQgKHNlZSB3ZWJraXQub3JnL2IvMTg4MTIxKS4KICAgICAg
ICAgLy8gQ2hlY2sgdGhhdCBvdXIgY2FjaGVkIHJlY3RzIGFyZSBjb3JyZWN0LgotICAgICAgICBB
U1NFUlRfSU1QTElFUyhtX3JlcGFpbnRSZWN0c1ZhbGlkLCBtX3JlcGFpbnRSZWN0cy5jbGlwcGVk
T3ZlcmZsb3dSZWN0ID09IHJlbmRlcmVyKCkuY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
cmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkpKTsKLSAgICAgICAgQVNTRVJUX0lNUExJ
RVMobV9yZXBhaW50UmVjdHNWYWxpZCwgbV9yZXBhaW50UmVjdHMub3V0bGluZUJvdW5kc1JlY3Qg
PT0gcmVuZGVyZXIoKS5vdXRsaW5lQm91bmRzRm9yUmVwYWludChyZW5kZXJlcigpLmNvbnRhaW5l
ckZvclJlcGFpbnQoKSkpOworICAgICAgICBBU1NFUlRfSU1QTElFUyhtX3JlcGFpbnRSZWN0c1Zh
bGlkLCBtX3JlcGFpbnRSZWN0cy5jbGlwcGVkT3ZlcmZsb3dSZWN0ID09IHJlbmRlcmVyKCkuY2xp
cHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50
KCkucmVuZGVyZXIpKTsKKyAgICAgICAgQVNTRVJUX0lNUExJRVMobV9yZXBhaW50UmVjdHNWYWxp
ZCwgbV9yZXBhaW50UmVjdHMub3V0bGluZUJvdW5kc1JlY3QgPT0gcmVuZGVyZXIoKS5vdXRsaW5l
Qm91bmRzRm9yUmVwYWludChyZW5kZXJlcigpLmNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJl
cikpOwogICAgIH0KICAgICAKICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCkBAIC0xNTA2LDcgKzE1
MDYsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRIYXNWaXNpYmxlQ29udGVudCgpCiAKICAgICBt
X3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkgPSBmYWxzZTsgCiAgICAgbV9oYXNWaXNpYmxlQ29u
dGVudCA9IHRydWU7Ci0gICAgY29tcHV0ZVJlcGFpbnRSZWN0cyhyZW5kZXJlcigpLmNvbnRhaW5l
ckZvclJlcGFpbnQoKSk7CisgICAgY29tcHV0ZVJlcGFpbnRSZWN0cyhyZW5kZXJlcigpLmNvbnRh
aW5lckZvclJlcGFpbnQoKS5yZW5kZXJlcik7CiAgICAgaWYgKCFpc05vcm1hbEZsb3dPbmx5KCkp
IHsKICAgICAgICAgLy8gV2UgZG9uJ3QgY29sbGVjdCBpbnZpc2libGUgbGF5ZXJzIGluIHotb3Jk
ZXIgbGlzdHMgaWYgd2UgYXJlIG5vdCBpbiBjb21wb3NpdGluZyBtb2RlLgogICAgICAgICAvLyBB
cyB3ZSBiZWNhbWUgdmlzaWJsZSwgd2UgbmVlZCB0byBkaXJ0eSBvdXIgc3RhY2tpbmcgY29udGFp
bmVycyBhbmNlc3RvcnMgdG8gYmUgcHJvcGVybHkKQEAgLTUzMjgsNyArNTMyOCw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnNldEJhY2tpbmdOZWVkc1JlcGFpbnRJblJlY3QoY29uc3QgTGF5b3V0UmVj
dCYgciwgR3JhcGhpY3NMYXllCiB9CiAKIC8vIFNpbmNlIHdlJ3JlIG9ubHkgcGFpbnRpbmcgbm9u
LWNvbXBvc2l0ZWQgbGF5ZXJzLCB3ZSBrbm93IHRoYXQgdGhleSBhbGwgc2hhcmUgdGhlIHNhbWUg
cmVwYWludENvbnRhaW5lci4KLXZvaWQgUmVuZGVyTGF5ZXI6OnJlcGFpbnRJbmNsdWRpbmdOb25D
b21wb3NpdGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpCit2b2lkIFJlbmRlckxheWVyOjpyZXBhaW50SW5jbHVkaW5nTm9uQ29tcG9zaXRpbmdE
ZXNjZW5kYW50cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
KQogewogICAgIGF1dG8gY2xpcHBlZE92ZXJmbG93UmVjdCA9IG1fcmVwYWludFJlY3RzVmFsaWQg
PyBtX3JlcGFpbnRSZWN0cy5jbGlwcGVkT3ZlcmZsb3dSZWN0IDogcmVuZGVyZXIoKS5jbGlwcGVk
T3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyKTsKICAgICByZW5kZXJlcigp
LnJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBjbGlwcGVkT3ZlcmZsb3dS
ZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggZTUxZTMxYTkw
MjE2Li4zMmE4NDE5Y2UxYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CkBAIC00MjgsNyArNDI4LDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhlIHJlY3QgaXMgaW4gdGhl
IGNvb3JkaW5hdGUgc3BhY2Ugb2YgdGhlIGxheWVyJ3MgcmVuZGVyIG9iamVjdC4KICAgICB2b2lk
IHNldEJhY2tpbmdOZWVkc1JlcGFpbnRJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYsIEdyYXBoaWNz
TGF5ZXI6OlNob3VsZENsaXBUb0xheWVyID0gR3JhcGhpY3NMYXllcjo6Q2xpcFRvTGF5ZXIpOwot
ICAgIHZvaWQgcmVwYWludEluY2x1ZGluZ05vbkNvbXBvc2l0aW5nRGVzY2VuZGFudHMoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7CisgICAgdm9pZCByZXBhaW50SW5j
bHVkaW5nTm9uQ29tcG9zaXRpbmdEZXNjZW5kYW50cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyKTsKIAogICAgIHZvaWQgc3R5bGVDaGFuZ2VkKFN0eWxlRGlm
ZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBjMzg4OWY4
MTQ2YzAuLmEwMTVkOWYwZjUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTE5MzksNyArMTkzOSw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXBhaW50T25Db21wb3NpdGluZ0NoYW5nZShSZW5kZXJMYXll
ciYgbGF5ZXIpCiAgICAgaWYgKCZsYXllci5yZW5kZXJlcigpICE9ICZtX3JlbmRlclZpZXcgJiYg
IWxheWVyLnJlbmRlcmVyKCkucGFyZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8q
IHJlcGFpbnRDb250YWluZXIgPSBsYXllci5yZW5kZXJlcigpLmNvbnRhaW5lckZvclJlcGFpbnQo
KTsKKyAgICBhdXRvKiByZXBhaW50Q29udGFpbmVyID0gbGF5ZXIucmVuZGVyZXIoKS5jb250YWlu
ZXJGb3JSZXBhaW50KCkucmVuZGVyZXI7CiAgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyKQogICAg
ICAgICByZXBhaW50Q29udGFpbmVyID0gJm1fcmVuZGVyVmlldzsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IGI2ZGM5
NTJkOGExYS4uNDdiOWMxZmQxMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlm
ZiwgY29uc3QgUmVuZGVyU3QKIAogICAgICAgICAvLyBSZXBhaW50IHRoZSBhYm91dCB0byBiZSBk
ZXN0cm95ZWQgc2VsZi1wYWludGluZyBsYXllciB3aGVuIHN0eWxlIGNoYW5nZSBhbHNvIHRyaWdn
ZXJzIHJlcGFpbnQuCiAgICAgICAgIGlmIChsYXllcigpLT5pc1NlbGZQYWludGluZ0xheWVyKCkg
JiYgbGF5ZXIoKS0+cmVwYWludFN0YXR1cygpID09IE5lZWRzRnVsbFJlcGFpbnQgJiYgbGF5ZXIo
KS0+cmVwYWludFJlY3RzKCkpCi0gICAgICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIoY29u
dGFpbmVyRm9yUmVwYWludCgpLCBsYXllcigpLT5yZXBhaW50UmVjdHMoKS0+Y2xpcHBlZE92ZXJm
bG93UmVjdCk7CisgICAgICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIoY29udGFpbmVyRm9y
UmVwYWludCgpLnJlbmRlcmVyLCBsYXllcigpLT5yZXBhaW50UmVjdHMoKS0+Y2xpcHBlZE92ZXJm
bG93UmVjdCk7CiAKICAgICAgICAgbGF5ZXIoKS0+cmVtb3ZlT25seVRoaXNMYXllcihSZW5kZXJM
YXllcjo6TGF5ZXJDaGFuZ2VUaW1pbmc6OlN0eWxlQ2hhbmdlKTsgLy8gY2FsbHMgZGVzdHJveUxh
eWVyKCkgd2hpY2ggY2xlYXJzIG1fbGF5ZXIKICAgICAgICAgaWYgKHNfd2FzRmxvYXRpbmcgJiYg
aXNGbG9hdGluZygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGJjOTkwOWI2ZmQ2NC4uZjA2NTRkYjQ0ZWM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWEuY3BwCkBAIC0zNjEsNyArMzYxLDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOjpzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAg
fQogCiAgICAgRnJhbWUmIGZyYW1lID0gcmVuZGVyZXIuZnJhbWUoKTsKLSAgICBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gcmVuZGVyZXIuY29udGFpbmVyRm9yUmVw
YWludCgpOworICAgIGF1dG8qIHJlcGFpbnRDb250YWluZXIgPSByZW5kZXJlci5jb250YWluZXJG
b3JSZXBhaW50KCkucmVuZGVyZXI7CiAgICAgLy8gVGhlIGNhcmV0IHJlY3QgbmVlZHMgdG8gYmUg
aW52YWxpZGF0ZWQgYWZ0ZXIgc2Nyb2xsaW5nCiAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0Q2Fy
ZXRSZWN0TmVlZHNVcGRhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCA1ZWE3M2VjZTNhNjkuLjkwMDFiZTI4YjZkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTg1Nyw3ICs4NTcsNyBAQCBMYXlvdXRS
ZWN0IFJlbmRlck9iamVjdDo6cGFpbnRpbmdSb290UmVjdChMYXlvdXRSZWN0JiB0b3BMZXZlbFJl
Y3QpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogUmVu
ZGVyT2JqZWN0Ojpjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3QKK1JlbmRlck9iamVjdDo6UmVw
YWludENvbnRhaW5lclN0YXR1cyBSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBj
b25zdAogewogICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBu
dWxscHRyOwogCkBAIC04NzIsNyArODcyLDcgQEAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogUmVu
ZGVyT2JqZWN0Ojpjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3QKICAgICAgICAgaWYgKFJlbmRl
ckxheWVyKiBwYXJlbnRMYXllciA9IGVuY2xvc2luZ0xheWVyKCkpIHsKICAgICAgICAgICAgIFJl
bmRlckxheWVyKiBlbmNsb3NpbmdGaWx0ZXJMYXllciA9IHBhcmVudExheWVyLT5lbmNsb3NpbmdG
aWx0ZXJMYXllcigpOwogICAgICAgICAgICAgaWYgKGVuY2xvc2luZ0ZpbHRlckxheWVyKQotICAg
ICAgICAgICAgICAgIHJldHVybiAmZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJlbmRlcmVyKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHsgZmFsc2UsICZlbmNsb3NpbmdGaWx0ZXJMYXllci0+cmVu
ZGVyZXIoKSB9OwogICAgICAgICB9CiAgICAgfQogCkBAIC04ODcsNyArODg3LDcgQEAgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogUmVuZGVyT2JqZWN0Ojpjb250YWluZXJGb3JSZXBhaW50KCkgY29u
c3QKICAgICAgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyRnJhZ21lbnRlZEZsb3cgfHwgcmVwYWlu
dENvbnRhaW5lckZyYWdtZW50ZWRGbG93ICE9IHBhcmVudFJlbmRlckZyYWdtZW50ZWRGbG93KQog
ICAgICAgICAgICAgcmVwYWludENvbnRhaW5lciA9IHBhcmVudFJlbmRlckZyYWdtZW50ZWRGbG93
OwogICAgIH0KLSAgICByZXR1cm4gcmVwYWludENvbnRhaW5lcjsKKyAgICByZXR1cm4geyBmYWxz
ZSwgcmVwYWludENvbnRhaW5lciB9OwogfQogCiB2b2lkIFJlbmRlck9iamVjdDo6cHJvcGFnYXRl
UmVwYWludFRvUGFyZW50V2l0aE91dGxpbmVBdXRvSWZOZWVkZWQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCYgcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJl
Y3QpIGNvbnN0CkBAIC05NzEsOCArOTcxLDEyIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50
KCkgY29uc3QKICAgICBpZiAodmlldy5wcmludGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9y
UmVwYWludCgpOwotICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBj
bGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyKSk7CisgICAgYXV0
byByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWludCgpOworICAgIGlmICghcmVw
YWludENvbnRhaW5lci5yZW5kZXJlcikKKyAgICAgICAgcmVwYWludENvbnRhaW5lci5yZW5kZXJl
ciA9ICZ2aWV3OworCisgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyLmZ1bGxSZXBhaW50SXNTY2hl
ZHVsZWQpCisgICAgICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLnJl
bmRlcmVyLCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLnJl
bmRlcmVyKSk7CiB9CiAKIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0
IExheW91dFJlY3QmIHIsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIpIGNvbnN0CkBAIC05OTAsOCAr
OTk0LDEyIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91
dFJlY3QmIHIsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIpCiAgICAgLy8gcmVwYWludCBjb250YWlu
ZXJzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMDgKICAgICBk
aXJ0eVJlY3QubW92ZSh2aWV3LmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXREZWx0
YSgpKTsKIAotICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBj
b250YWluZXJGb3JSZXBhaW50KCk7Ci0gICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRD
b250YWluZXIsIGNvbXB1dGVSZWN0Rm9yUmVwYWludChkaXJ0eVJlY3QsIHJlcGFpbnRDb250YWlu
ZXIpLCBzaG91bGRDbGlwVG9MYXllcik7CisgICAgYXV0byByZXBhaW50Q29udGFpbmVyID0gY29u
dGFpbmVyRm9yUmVwYWludCgpOworICAgIGlmICghcmVwYWludENvbnRhaW5lci5yZW5kZXJlcikK
KyAgICAgICAgcmVwYWludENvbnRhaW5lci5yZW5kZXJlciA9ICZ2aWV3OworCisgICAgaWYgKHJl
cGFpbnRDb250YWluZXIuZnVsbFJlcGFpbnRJc1NjaGVkdWxlZCkKKyAgICAgICAgcmVwYWludFVz
aW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIucmVuZGVyZXIsIGNvbXB1dGVSZWN0Rm9yUmVw
YWludChkaXJ0eVJlY3QsIHJlcGFpbnRDb250YWluZXIucmVuZGVyZXIpLCBzaG91bGRDbGlwVG9M
YXllcik7CiB9CiAKIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50U2xvd1JlcGFpbnRPYmplY3Qo
KSBjb25zdApAQCAtMTAwNCw3ICsxMDEyLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRT
bG93UmVwYWludE9iamVjdCgpIGNvbnN0CiAgICAgaWYgKHZpZXcucHJpbnRpbmcoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciA9IGNvbnRhaW5lckZvclJlcGFpbnQoKTsKKyAgICBhdXRvKiByZXBhaW50Q29udGFp
bmVyID0gY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyOwogCiAgICAgYm9vbCBzaG91bGRD
bGlwVG9MYXllciA9IHRydWU7CiAgICAgSW50UmVjdCByZXBhaW50UmVjdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCBjYmNmZjY3MTNhYmYuLmE3ZjI1MGFkYmMy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNjI4LDcgKzYy
OCwxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBSZXR1cm4gdGhlIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QgaW4gdGhlIGNvbnRhaW5lciBjaGFpbiB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgcGFpbnRp
bmcgdGhpcyBvYmplY3QsIG9yIG51bGxwdHIKICAgICAvLyBpZiBwYWludGluZyBpcyByb290LXJl
bGF0aXZlLiBUaGlzIGlzIHRoZSBjb250YWluZXIgdGhhdCBzaG91bGQgYmUgcGFzc2VkIHRvIHRo
ZSAnZm9yUmVwYWludCcgZnVuY3Rpb25zLgotICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGNv
bnRhaW5lckZvclJlcGFpbnQoKSBjb25zdDsKKyAgICBzdHJ1Y3QgUmVwYWludENvbnRhaW5lclN0
YXR1cyB7CisgICAgICAgIGJvb2wgZnVsbFJlcGFpbnRJc1NjaGVkdWxlZCB7IGZhbHNlIH07IC8v
IEVpdGhlciB0aGUgcmVwYWludCBjb250YWluZXIgb3IgYSBsYXllciBpbi1iZXR3ZWVuIGhhcyBh
bGVhZHkgYmVlbiBzY2hlZHVsZWQgZm9yIGZ1bGwgcmVwYWludC4KKyAgICAgICAgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVuZGVyZXIgeyBudWxscHRyIH07CisgICAgfTsKKyAgICBS
ZXBhaW50Q29udGFpbmVyU3RhdHVzIGNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdDsKICAgICAv
LyBBY3R1YWxseSBkbyB0aGUgcmVwYWludCBvZiByZWN0IHIgZm9yIHRoaXMgb2JqZWN0IHdoaWNo
IGhhcyBiZWVuIGNvbXB1dGVkIGluIHRoZSBjb29yZGluYXRlIHNwYWNlCiAgICAgLy8gb2YgcmVw
YWludENvbnRhaW5lci4gSWYgcmVwYWludENvbnRhaW5lciBpcyBudWxscHRyLCByZXBhaW50IHZp
YSB0aGUgdmlldy4KICAgICB2b2lkIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0JiwgYm9v
bCBzaG91bGRDbGlwVG9MYXllciA9IHRydWUpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwCmluZGV4IGNkYjhlNGZmY2MyMS4uMTZi
MzJhZjI4MDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vs
ZWN0aW9uSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVj
dGlvbkluZm8uY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVu
ZGVyU2VsZWN0aW9uSW5mb0Jhc2U6OlJlbmRlclNlbGVjdGlvbkluZm9CYXNlKFJlbmRlck9iamVj
dCYgcmVuZGVyZXIpCiAgICAgOiBtX3JlbmRlcmVyKHJlbmRlcmVyKQotICAgICwgbV9yZXBhaW50
Q29udGFpbmVyKHJlbmRlcmVyLmNvbnRhaW5lckZvclJlcGFpbnQoKSkKKyAgICAsIG1fcmVwYWlu
dENvbnRhaW5lcihyZW5kZXJlci5jb250YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXIpCiAgICAg
LCBtX3N0YXRlKHJlbmRlcmVyLnNlbGVjdGlvblN0YXRlKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaAppbmRleCA1YTQyYTRhNTRiYzUu
LjQyNjkwMzBiYjMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNlbGVjdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oCkBAIC0zNCwxNCArMzQsMTQgQEAgY2xhc3MgUmVuZGVyU2VsZWN0aW9uSW5m
b0Jhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbmRlclNlbGVjdGlvbkluZm9CYXNl
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVy
U2VsZWN0aW9uSW5mb0Jhc2UoUmVuZGVyT2JqZWN0JiByZW5kZXJlcik7Ci0gICAgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWlu
dENvbnRhaW5lcjsgfQorICAgIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIoKSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRDb250YWluZXI7IH0KICAgICBSZW5k
ZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJl
Y3QmIHJlcGFpbnRSZWN0KTsKIAogICAgIFJlbmRlck9iamVjdCYgbV9yZW5kZXJlcjsKLSAgICBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBtX3JlcGFpbnRDb250YWluZXI7CisgICAgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogbV9yZXBhaW50Q29udGFpbmVyOwogCiBwcml2YXRlOgogICAg
IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgbV9zdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCBjNTYzODQ5MGZhY2EuLjAzMWI1Y2U0ZTliMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNDQ4LDcgKzQ0OCw3IEBA
IHZvaWQgUmVuZGVyVmlldzo6cmVwYWludFJvb3RDb250ZW50cygpCiAKICAgICAvLyBBbHdheXMg
dXNlIGxheW91dE92ZXJmbG93UmVjdCgpIHRvIGZpeCByZGFyOi8vcHJvYmxlbS8yNzE4MjI2Ny4K
ICAgICAvLyBUaGlzIHNob3VsZCBiZSBjbGVhbmVkIHVwIHZpYSB3ZWJraXQub3JnL2IvMTU5OTEz
IGFuZCB3ZWJraXQub3JnL2IvMTU5OTE0LgotICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIgPSBjb250YWluZXJGb3JSZXBhaW50KCk7CisgICAgYXV0byogcmVwYWlu
dENvbnRhaW5lciA9IGNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlcjsKICAgICByZXBhaW50
VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciwgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGxh
eW91dE92ZXJmbG93UmVjdCgpLCByZXBhaW50Q29udGFpbmVyKSk7CiB9CiAKLS0gCjIuMzIuMCAo
QXBwbGUgR2l0LTEzMikKCg==
</data>
<flag name="commit-queue"
          id="488733"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459625</attachid>
            <date>2022-05-20 12:52:41 -0700</date>
            <delta_ts>2022-05-22 15:32:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240721-20220520125240.patch</filename>
            <type>text/plain</type>
            <size>25353</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5YjZiZTJjYzEyOWVlNDE2MTYzYjNkYTc4NDdmMjNkMTMxYzY2OTA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDIwIE1heSAyMDIyIDEwOjQ4OjE0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gUmVuZGVyT2Jq
ZWN0Ojpjb250YWluZXJGb3JSZXBhaW50IHNob3VsZCBiZSBhYmxlIHRvIHRlbGwgaWYgYQogZnVs
bCByZXBhaW50IGhhcyBhbHJlYWR5IGJlZW4gc2NoZWR1bGVkLgogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDcyMQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgpUaGlzIHBhdGNoIGlzIGluIHByZXBhcmF0aW9uIGZvciByZWR1Y2luZyByZWR1bmRhbnQgcmVw
YWludHMgd2hlbiBhbiBhbmNlc3RvciBsYXllciAoYmV0d2Vlbgp0aGUgcmVuZGVyZXIgYW5kIHRo
ZSByZXBhaW50IGNvbnRhaW5lcikgaGFzIGFscmVhZHkgYmVlbiBzY2hlZHVsZWQgZm9yIG9uZS4K
CiogU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcDoK
KFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmFkZFF1YWQpOgooV2ViQ29yZTo6
U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRkR2FwUmVjdHMpOgoqIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6aXNFbmNsb3NlZEluQ29tcG9z
aXRpbmdMYXllciBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFp
bnRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXRSZXBhaW50ZXI6OkxheW91dFJlcGFpbnRlcik6CihX
ZWJDb3JlOjpMYXlvdXRSZXBhaW50ZXI6OnJlcGFpbnRBZnRlckxheW91dCk6CiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcDoKKFdlYkNvcmU6OkxlZ2FjeUxpbmVMYXlvdXQ6Omxh
eW91dFJ1bnNBbmRGbG9hdHMpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcDoKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6Omlzc3VlUmVwYWludEZvck91dGxpbmVB
dXRvKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3Bw
OgooV2ViQ29yZTo6UmVuZGVyRnJhZ21lbnRlZEZsb3c6Om1hcExvY2FsVG9Db250YWluZXIgY29u
c3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJGcmFtZVNldDo6bGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxh
eWVyUG9zaXRpb25zKToKKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjb21wdXRlUmVwYWludFJlY3Rz
SW5jbHVkaW5nRGVzY2VuZGFudHMpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVw
ZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNl
dEhhc1Zpc2libGVDb250ZW50KToKKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlw
UmVjdHMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXBhaW50T25Db21wb3NpdGluZ0NoYW5nZSk6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgoo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UpOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcDoKKFdlYkNv
cmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvKToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29u
dGFpbmVyRm9yUmVwYWludCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnQg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlIGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6cmVwYWludFNsb3dSZXBhaW50T2JqZWN0IGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwOgooV2ViQ29yZTo6UmVuZGVyU2Vs
ZWN0aW9uSW5mb0Jhc2U6OlJlbmRlclNlbGVjdGlvbkluZm9CYXNlKToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oOgooV2ViQ29yZTo6UmVuZGVyU2VsZWN0
aW9uSW5mb0Jhc2U6OnJlcGFpbnRDb250YWluZXIgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKFdlYkNvcmU6OlJlbmRlclZpZXc6OnJlcGFpbnRSb290
Q29udGVudHMpOgotLS0KIC4uLi9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3Bw
ICAgICAgfCAgNCArKy0tCiAuLi4vZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmgg
ICAgICAgIHwgIDQgKystLQogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAg
ICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0UmVwYWludGVy
LmNwcCAgIHwgMTMgKysrKysrLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91
dFJlcGFpbnRlci5oICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdh
Y3lMaW5lTGF5b3V0LmNwcCAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwICAgICB8ICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJh
Z21lbnRlZEZsb3cuY3BwIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
cmFtZVNldC5jcHAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oICAgICAgICAgfCAgMiArLQogLi4uL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwICAgICAgICB8ICAyICstCiAuLi4vcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuY3BwICAgICAgIHwgIDIgKy0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYS5jcHAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAgICAgICB8IDE4ICsrKysrKysrKystLS0tLS0tLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oICAgICAgICB8ICA2ICsrKysrLQogLi4uL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oIHwgIDQgKystLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwICAgICAgICB8ICAyICstCiAxOSBmaWxl
cyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcAppbmRl
eCAwZDg3MmM3ZTFkNzMuLmJjMmVjNjExODM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3BwCkBAIC00MywxMyArNDMsMTMg
QEAgU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcihS
ZW5kZXJWaWV3JiByZW5kZXJWaWV3KQogewogfQogCi12b2lkIFNlbGVjdGlvbkdlb21ldHJ5R2F0
aGVyZXI6OmFkZFF1YWQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENvbnRhaW5lciwg
Y29uc3QgRmxvYXRRdWFkJiBxdWFkKQordm9pZCBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjph
ZGRRdWFkKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNv
bnN0IEZsb2F0UXVhZCYgcXVhZCkKIHsKICAgICBpZiAoIXF1YWQuYm91bmRpbmdCb3hJc0VtcHR5
KCkpCiAgICAgICAgIG1fcXVhZHMuYXBwZW5kKHJlcGFpbnRDb250YWluZXIgPyByZXBhaW50Q29u
dGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHF1YWQpIDogcXVhZCk7CiB9CiAKLXZvaWQgU2Vs
ZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRkR2FwUmVjdHMoUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCAqcmVwYWludENvbnRhaW5lciwgY29uc3QgR2FwUmVjdHMmIHJlY3RzKQordm9pZCBTZWxlY3Rp
b25HZW9tZXRyeUdhdGhlcmVyOjphZGRHYXBSZWN0cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBHYXBSZWN0cyYgcmVjdHMpCiB7CiAgICAgaWYg
KHJlcGFpbnRDb250YWluZXIpIHsKICAgICAgICAgR2FwUmVjdHMgYWJzb2x1dGVHYXBSZWN0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRo
ZXJlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVy
LmgKaW5kZXggMjJiZjBhMjNmMzUwLi5kMGE0Mjc3MjM0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oCkBAIC00NSw4ICs0NSw4
IEBAIGNsYXNzIFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIgewogcHVibGljOgogICAgIFNlbGVj
dGlvbkdlb21ldHJ5R2F0aGVyZXIoUmVuZGVyVmlldyYpOwogCi0gICAgdm9pZCBhZGRRdWFkKFJl
bmRlckxheWVyTW9kZWxPYmplY3QgKnJlcGFpbnRDb250YWluZXIsIGNvbnN0IEZsb2F0UXVhZCYp
OwotICAgIHZvaWQgYWRkR2FwUmVjdHMoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENv
bnRhaW5lciwgY29uc3QgR2FwUmVjdHMmKTsKKyAgICB2b2lkIGFkZFF1YWQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENvbnRhaW5lciwgY29uc3QgRmxvYXRRdWFkJik7Cisg
ICAgdm9pZCBhZGRHYXBSZWN0cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0ICpyZXBhaW50
Q29udGFpbmVyLCBjb25zdCBHYXBSZWN0cyYpOwogICAgIHZvaWQgc2V0VGV4dE9ubHkoYm9vbCBp
c1RleHRPbmx5KSB7IG1faXNUZXh0T25seSA9IGlzVGV4dE9ubHk7IH0KICAgICBib29sIGlzVGV4
dE9ubHkoKSBjb25zdCB7IHJldHVybiBtX2lzVGV4dE9ubHk7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IDczZGExNmUzODViMC4uZGZkYzZiZjk5N2NmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCkBAIC0xMTg1LDcgKzExODUsNyBAQCB2b2lkIEZyYW1lVmlldzo6ZW50
ZXJDb21wb3NpdGluZ01vZGUoKQogYm9vbCBGcmFtZVZpZXc6OmlzRW5jbG9zZWRJbkNvbXBvc2l0
aW5nTGF5ZXIoKSBjb25zdAogewogICAgIGF1dG8gZnJhbWVPd25lclJlbmRlcmVyID0gZnJhbWUo
KS5vd25lclJlbmRlcmVyKCk7Ci0gICAgaWYgKGZyYW1lT3duZXJSZW5kZXJlciAmJiBmcmFtZU93
bmVyUmVuZGVyZXItPmNvbnRhaW5lckZvclJlcGFpbnQoKSkKKyAgICBpZiAoZnJhbWVPd25lclJl
bmRlcmVyICYmIGZyYW1lT3duZXJSZW5kZXJlci0+Y29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRl
cmVyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChGcmFtZVZpZXcqIHBhcmVudFZp
ZXcgPSBwYXJlbnRGcmFtZVZpZXcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91
dFJlcGFpbnRlci5jcHAKaW5kZXggOGQ1ZWJkYjExZGNlLi5iNTdkZjcyZTg3NjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwCkBAIC0zMCwyMSArMzAs
MjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1MYXlvdXRSZXBhaW50ZXI6OkxheW91dFJl
cGFpbnRlcihSZW5kZXJFbGVtZW50JiBvYmplY3QsIGJvb2wgY2hlY2tGb3JSZXBhaW50KQotICAg
IDogbV9vYmplY3Qob2JqZWN0KQotICAgICwgbV9yZXBhaW50Q29udGFpbmVyKDApCitMYXlvdXRS
ZXBhaW50ZXI6OkxheW91dFJlcGFpbnRlcihSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgYm9vbCBj
aGVja0ZvclJlcGFpbnQpCisgICAgOiBtX3JlbmRlcmVyKHJlbmRlcmVyKQogICAgICwgbV9jaGVj
a0ZvclJlcGFpbnQoY2hlY2tGb3JSZXBhaW50KQogewogICAgIGlmIChtX2NoZWNrRm9yUmVwYWlu
dCkgewotICAgICAgICBtX3JlcGFpbnRDb250YWluZXIgPSBtX29iamVjdC5jb250YWluZXJGb3JS
ZXBhaW50KCk7Ci0gICAgICAgIG1fb2xkQm91bmRzID0gbV9vYmplY3QuY2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQobV9yZXBhaW50Q29udGFpbmVyKTsKLSAgICAgICAgbV9vbGRPdXRsaW5l
Qm94ID0gbV9vYmplY3Qub3V0bGluZUJvdW5kc0ZvclJlcGFpbnQobV9yZXBhaW50Q29udGFpbmVy
KTsKKyAgICAgICAgbV9yZXBhaW50Q29udGFpbmVyID0gbV9yZW5kZXJlci5jb250YWluZXJGb3JS
ZXBhaW50KCkucmVuZGVyZXI7CisgICAgICAgIG1fb2xkQm91bmRzID0gbV9yZW5kZXJlci5jbGlw
cGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChtX3JlcGFpbnRDb250YWluZXIpOworICAgICAgICBt
X29sZE91dGxpbmVCb3ggPSBtX3JlbmRlcmVyLm91dGxpbmVCb3VuZHNGb3JSZXBhaW50KG1fcmVw
YWludENvbnRhaW5lcik7CiAgICAgfQogfQogCiBib29sIExheW91dFJlcGFpbnRlcjo6cmVwYWlu
dEFmdGVyTGF5b3V0KCkKIHsKLSAgICByZXR1cm4gbV9jaGVja0ZvclJlcGFpbnQgPyBtX29iamVj
dC5yZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChtX3JlcGFpbnRDb250YWluZXIsIG1fb2xkQm91
bmRzLCBtX29sZE91dGxpbmVCb3gpIDogZmFsc2U7CisgICAgcmV0dXJuIG1fY2hlY2tGb3JSZXBh
aW50ID8gbV9yZW5kZXJlci5yZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChtX3JlcGFpbnRDb250
YWluZXIsIG1fb2xkQm91bmRzLCBtX29sZE91dGxpbmVCb3gpIDogZmFsc2U7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
YXlvdXRSZXBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50
ZXIuaAppbmRleCA5ZGRmYzEyZDFlNzkuLmFiYWYwNDc1NjczZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuaApAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCByZXBhaW50QWZ0ZXJMYXlvdXQoKTsKIAogcHJpdmF0ZToKLSAgICBSZW5kZXJFbGVt
ZW50JiBtX29iamVjdDsKLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBtX3JlcGFpbnRDb250
YWluZXI7CisgICAgUmVuZGVyRWxlbWVudCYgbV9yZW5kZXJlcjsKKyAgICBjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBtX3JlcGFpbnRDb250YWluZXIgeyBudWxscHRyIH07CiAgICAgLy8g
V2Ugc3RvcmUgdGhlc2UgdmFsdWVzIGFzIExheW91dFJlY3RzLCBidXQgdGhlIGZpbmFsIGludmFs
aWRhdGlvbnMgd2lsbCBiZSBwaXhlbCBzbmFwcGVkCiAgICAgTGF5b3V0UmVjdCBtX29sZEJvdW5k
czsKICAgICBMYXlvdXRSZWN0IG1fb2xkT3V0bGluZUJveDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCBlZjg5NjI2NDdlNTkuLjJjMWFkYzRm
NjA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlv
dXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNw
cApAQCAtMTM0Nyw3ICsxMzQ3LDcgQEAgdm9pZCBMZWdhY3lMaW5lTGF5b3V0OjpsYXlvdXRSdW5z
QW5kRmxvYXRzKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGJvb2wgaGEKICAgICAgICAg
ICAgIC8vIHRoYXQgdGhlIGJsb2NrIHJlYWxseSBuZWVkZWQgYSBmdWxsIGxheW91dCwgd2UgbWlz
c2VkIG91ciBjaGFuY2UgdG8gcmVwYWludCB0aGUgbGF5ZXIKICAgICAgICAgICAgIC8vIGJlZm9y
ZSBsYXlvdXQgc3RhcnRlZC4gTHVja2lseSB0aGUgbGF5ZXIgaGFzIGNhY2hlZCB0aGUgcmVwYWlu
dCByZWN0IGZvciBpdHMgb3JpZ2luYWwKICAgICAgICAgICAgIC8vIHBvc2l0aW9uIGFuZCBzaXpl
LCBhbmQgc28gd2UgY2FuIHVzZSB0aGF0IHRvIG1ha2UgYSByZXBhaW50IGhhcHBlbiBub3cuCi0g
ICAgICAgICAgICBtX2Zsb3cucmVwYWludFVzaW5nQ29udGFpbmVyKG1fZmxvdy5jb250YWluZXJG
b3JSZXBhaW50KCksIG1fZmxvdy5sYXllclJlcGFpbnRSZWN0cygpLT5jbGlwcGVkT3ZlcmZsb3dS
ZWN0KTsKKyAgICAgICAgICAgIG1fZmxvdy5yZXBhaW50VXNpbmdDb250YWluZXIobV9mbG93LmNv
bnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlciwgbV9mbG93LmxheWVyUmVwYWludFJlY3RzKCkt
PmNsaXBwZWRPdmVyZmxvd1JlY3QpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggMzVkZmZkZTk4ODliLi4zODhhN2M5
NDQ3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAg
LTIxMTIsNyArMjExMiw3IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6aXNzdWVSZXBhaW50Rm9yT3V0
bGluZUF1dG8oZmxvYXQgb3V0bGluZVNpemUpCiB7CiAgICAgTGF5b3V0UmVjdCByZXBhaW50UmVj
dDsKICAgICBWZWN0b3I8TGF5b3V0UmVjdD4gZm9jdXNSaW5nUmVjdHM7Ci0gICAgYWRkRm9jdXNS
aW5nUmVjdHMoZm9jdXNSaW5nUmVjdHMsIExheW91dFBvaW50KCksIGNvbnRhaW5lckZvclJlcGFp
bnQoKSk7CisgICAgYWRkRm9jdXNSaW5nUmVjdHMoZm9jdXNSaW5nUmVjdHMsIExheW91dFBvaW50
KCksIGNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlcik7CiAgICAgZm9yIChhdXRvIHJlY3Qg
OiBmb2N1c1JpbmdSZWN0cykgewogICAgICAgICByZWN0LmluZmxhdGUob3V0bGluZVNpemUpOwog
ICAgICAgICByZXBhaW50UmVjdC51bml0ZShyZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwCmluZGV4IDI2NWI4OTRmMzNmMi4uZWFi
OTkwNThjYjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJh
Z21lbnRlZEZsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFn
bWVudGVkRmxvdy5jcHAKQEAgLTk0OCw3ICs5NDgsNyBAQCB2b2lkIFJlbmRlckZyYWdtZW50ZWRG
bG93OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
YwogCiAgICAgICAgIC8vIElmIHRoZSByZXBhaW50IGNvbnRhaW5lciBpcyBudWxscHRyLCB3ZSBo
YXZlIHRvIGNsaW1iIHVwIHRvIHRoZSBSZW5kZXJWaWV3LCBvdGhlcndpc2Ugc3dhcAogICAgICAg
ICAvLyBpdCB3aXRoIHRoZSBmcmFnbWVudCdzIHJlcGFpbnQgY29udGFpbmVyLgotICAgICAgICBh
bmNlc3RvckNvbnRhaW5lciA9IGFuY2VzdG9yQ29udGFpbmVyID8gZnJhZ21lbnQtPmNvbnRhaW5l
ckZvclJlcGFpbnQoKSA6IG51bGxwdHI7CisgICAgICAgIGFuY2VzdG9yQ29udGFpbmVyID0gYW5j
ZXN0b3JDb250YWluZXIgPyBmcmFnbWVudC0+Y29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVy
IDogbnVsbHB0cjsKIAogICAgICAgICBpZiAoUmVuZGVyRnJhZ21lbnRlZEZsb3cqIGZyYWdtZW50
RnJhZ21lbnRlZEZsb3cgPSBmcmFnbWVudC0+ZW5jbG9zaW5nRnJhZ21lbnRlZEZsb3coKSkgewog
ICAgICAgICAgICAgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIHN0YXJ0RnJhZ21lbnQgPSBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKaW5kZXgg
MGI0OGQ5MzZiMjM1Li4xNTU4YzgzM2Q4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZyYW1lU2V0LmNwcApAQCAtNDM2LDkgKzQzNiw5IEBAIHZvaWQgUmVuZGVyRnJhbWVT
ZXQ6OmxheW91dCgpCiAKICAgICBib29sIGRvRnVsbFJlcGFpbnQgPSBzZWxmTmVlZHNMYXlvdXQo
KSAmJiBjaGVja0ZvclJlcGFpbnREdXJpbmdMYXlvdXQoKTsKICAgICBMYXlvdXRSZWN0IG9sZEJv
dW5kczsKLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gMDsK
KyAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gbnVs
bHB0cjsKICAgICBpZiAoZG9GdWxsUmVwYWludCkgewotICAgICAgICByZXBhaW50Q29udGFpbmVy
ID0gY29udGFpbmVyRm9yUmVwYWludCgpOworICAgICAgICByZXBhaW50Q29udGFpbmVyID0gY29u
dGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyOwogICAgICAgICBvbGRCb3VuZHMgPSBjbGlwcGVk
T3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGNmNzk4NTAzMTllZi4uNTE0
MWY0MjE2NTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAg
LTk5MCw3ICs5OTAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpyZWN1cnNpdmVVcGRhdGVMYXllclBv
c2l0aW9ucyhSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0cnlNYXAsCiAgICAgICAgIC8vIExheW91
dFN0YXRlIG91dHNpZGUgdGhlIGxheW91dCgpIHBoYXNlIGFuZCB1c2UgaXQgaGVyZS4KICAgICAg
ICAgQVNTRVJUKCFyZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCku
aXNQYWludE9mZnNldENhY2hlRW5hYmxlZCgpKTsKIAotICAgICAgICBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gcmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50
KCk7CisgICAgICAgIGF1dG8qIHJlcGFpbnRDb250YWluZXIgPSByZW5kZXJlcigpLmNvbnRhaW5l
ckZvclJlcGFpbnQoKS5yZW5kZXJlcjsKICAgICAgICAgCiAgICAgICAgIGF1dG8gb2xkUmVjdHMg
PSByZXBhaW50UmVjdHMoKTsKICAgICAgICAgY29tcHV0ZVJlcGFpbnRSZWN0cyhyZXBhaW50Q29u
dGFpbmVyLCBnZW9tZXRyeU1hcCk7CkBAIC0xMTQ1LDcgKzExNDUsNyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpjb21wdXRlUmVwYWludFJlY3RzSW5jbHVkaW5nRGVzY2VuZGFudHMoKQogICAgIC8vIEZJ
WE1FOiBjb21wdXRlUmVwYWludFJlY3RzKCkgaGFzIHRvIHdhbGsgdXAgdGhlIHBhcmVudCBjaGFp
biBmb3IgZXZlcnkgbGF5ZXIgdG8gY29tcHV0ZSB0aGUgcmVjdHMuCiAgICAgLy8gV2Ugc2hvdWxk
IG1ha2UgdGhpcyBtb3JlIGVmZmljaWVudC4KICAgICAvLyBGSVhNRTogaXQncyB3cm9uZyB0byBj
YWxsIHRoaXMgd2hlbiBsYXlvdXQgaXMgbm90IHVwLXRvLWRhdGUsIHdoaWNoIHdlIGRvLgotICAg
IGNvbXB1dGVSZXBhaW50UmVjdHMocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkpOwor
ICAgIGNvbXB1dGVSZXBhaW50UmVjdHMocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCku
cmVuZGVyZXIpOwogCiAgICAgZm9yIChSZW5kZXJMYXllciogbGF5ZXIgPSBmaXJzdENoaWxkKCk7
IGxheWVyOyBsYXllciA9IGxheWVyLT5uZXh0U2libGluZygpKQogICAgICAgICBsYXllci0+Y29t
cHV0ZVJlcGFpbnRSZWN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7CkBAIC0xMjIyLDEzICsxMjIy
LDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0
ZXJTY3JvbGwoUmVuZGVyR2VvbWV0cnlNYXAqIGdlCiAgICAgICAgIGlmIChpc1Zpc3VhbGx5RW1w
dHkpCiAgICAgICAgICAgICBjbGVhclJlcGFpbnRSZWN0cygpOwogICAgICAgICBlbHNlIC8vIEZJ
WE1FOiBXZSBjb3VsZCB0cmFjayB0aGUgcmVwYWludCBjb250YWluZXIgYXMgd2Ugd2FsayBkb3du
IHRoZSB0cmVlLgotICAgICAgICAgICAgY29tcHV0ZVJlcGFpbnRSZWN0cyhyZW5kZXJlcigpLmNv
bnRhaW5lckZvclJlcGFpbnQoKSwgZ2VvbWV0cnlNYXApOworICAgICAgICAgICAgY29tcHV0ZVJl
cGFpbnRSZWN0cyhyZW5kZXJlcigpLmNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlciwgZ2Vv
bWV0cnlNYXApOwogICAgIH0gZWxzZSBpZiAoIXJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygp
LnBsYXRmb3JtV2lkZ2V0KCkpIHsKICAgICAgICAgLy8gV2hlbiBTY3JvbGxWaWV3J3MgbV9wYWlu
dHNFbnRpcmVDb250ZW50cyBmbGFnIGZsaXBzIGR1ZSB0byBsYXllciBiYWNraW5nIGNoYW5nZXMs
IHRoZSByZXBhaW50IGFyZWEgdHJhbnNpdGlvbnMgZnJvbQogICAgICAgICAvLyB2aXN1YWwgdG8g
bGF5b3V0IG92ZXJmbG93LiBXaGVuIHRoaXMgaGFwcGVucyB0aGUgY2FjaGVkIHJlcGFpbnQgcmVj
dHMgYmVjb21lIGludmFsaWQgYW5kIHRoZXkgbmVlZCB0byBiZSByZWNvbXB1dGVkIChzZWUgd2Vi
a2l0Lm9yZy9iLzE4ODEyMSkuCiAgICAgICAgIC8vIENoZWNrIHRoYXQgb3VyIGNhY2hlZCByZWN0
cyBhcmUgY29ycmVjdC4KLSAgICAgICAgQVNTRVJUX0lNUExJRVMobV9yZXBhaW50UmVjdHNWYWxp
ZCwgbV9yZXBhaW50UmVjdHMuY2xpcHBlZE92ZXJmbG93UmVjdCA9PSByZW5kZXJlcigpLmNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHJlbmRlcmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgp
KSk7Ci0gICAgICAgIEFTU0VSVF9JTVBMSUVTKG1fcmVwYWludFJlY3RzVmFsaWQsIG1fcmVwYWlu
dFJlY3RzLm91dGxpbmVCb3VuZHNSZWN0ID09IHJlbmRlcmVyKCkub3V0bGluZUJvdW5kc0ZvclJl
cGFpbnQocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkpKTsKKyAgICAgICAgQVNTRVJU
X0lNUExJRVMobV9yZXBhaW50UmVjdHNWYWxpZCwgbV9yZXBhaW50UmVjdHMuY2xpcHBlZE92ZXJm
bG93UmVjdCA9PSByZW5kZXJlcigpLmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHJlbmRl
cmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyKSk7CisgICAgICAgIEFTU0VSVF9J
TVBMSUVTKG1fcmVwYWludFJlY3RzVmFsaWQsIG1fcmVwYWludFJlY3RzLm91dGxpbmVCb3VuZHNS
ZWN0ID09IHJlbmRlcmVyKCkub3V0bGluZUJvdW5kc0ZvclJlcGFpbnQocmVuZGVyZXIoKS5jb250
YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXIpKTsKICAgICB9CiAgICAgCiAgICAgZm9yIChSZW5k
ZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKQpAQCAtMTUwNiw3ICsxNTA2LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0SGFz
VmlzaWJsZUNvbnRlbnQoKQogCiAgICAgbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5ID0gZmFs
c2U7IAogICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSB0cnVlOwotICAgIGNvbXB1dGVSZXBhaW50
UmVjdHMocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkpOworICAgIGNvbXB1dGVSZXBh
aW50UmVjdHMocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXIpOwogICAg
IGlmICghaXNOb3JtYWxGbG93T25seSgpKSB7CiAgICAgICAgIC8vIFdlIGRvbid0IGNvbGxlY3Qg
aW52aXNpYmxlIGxheWVycyBpbiB6LW9yZGVyIGxpc3RzIGlmIHdlIGFyZSBub3QgaW4gY29tcG9z
aXRpbmcgbW9kZS4KICAgICAgICAgLy8gQXMgd2UgYmVjYW1lIHZpc2libGUsIHdlIG5lZWQgdG8g
ZGlydHkgb3VyIHN0YWNraW5nIGNvbnRhaW5lcnMgYW5jZXN0b3JzIHRvIGJlIHByb3Blcmx5CkBA
IC01MzI4LDcgKzUzMjgsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRCYWNraW5nTmVlZHNSZXBh
aW50SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHIsIEdyYXBoaWNzTGF5ZQogfQogCiAvLyBTaW5j
ZSB3ZSdyZSBvbmx5IHBhaW50aW5nIG5vbi1jb21wb3NpdGVkIGxheWVycywgd2Uga25vdyB0aGF0
IHRoZXkgYWxsIHNoYXJlIHRoZSBzYW1lIHJlcGFpbnRDb250YWluZXIuCi12b2lkIFJlbmRlckxh
eWVyOjpyZXBhaW50SW5jbHVkaW5nTm9uQ29tcG9zaXRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKQordm9pZCBSZW5kZXJMYXllcjo6cmVwYWlu
dEluY2x1ZGluZ05vbkNvbXBvc2l0aW5nRGVzY2VuZGFudHMoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lcikKIHsKICAgICBhdXRvIGNsaXBwZWRPdmVyZmxvd1Jl
Y3QgPSBtX3JlcGFpbnRSZWN0c1ZhbGlkID8gbV9yZXBhaW50UmVjdHMuY2xpcHBlZE92ZXJmbG93
UmVjdCA6IHJlbmRlcmVyKCkuY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVwYWludENv
bnRhaW5lcik7CiAgICAgcmVuZGVyZXIoKS5yZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENv
bnRhaW5lciwgY2xpcHBlZE92ZXJmbG93UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCmluZGV4IGU1MWUzMWE5MDIxNi4uMzJhODQxOWNlMWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDI4LDcgKzQyOCw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIFRoZSByZWN0IGlzIGluIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIHRoZSBsYXllcidz
IHJlbmRlciBvYmplY3QuCiAgICAgdm9pZCBzZXRCYWNraW5nTmVlZHNSZXBhaW50SW5SZWN0KGNv
bnN0IExheW91dFJlY3QmLCBHcmFwaGljc0xheWVyOjpTaG91bGRDbGlwVG9MYXllciA9IEdyYXBo
aWNzTGF5ZXI6OkNsaXBUb0xheWVyKTsKLSAgICB2b2lkIHJlcGFpbnRJbmNsdWRpbmdOb25Db21w
b3NpdGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIpOworICAgIHZvaWQgcmVwYWludEluY2x1ZGluZ05vbkNvbXBvc2l0aW5nRGVzY2VuZGFudHMo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7CiAKICAgICB2
b2lkIHN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRT
dHlsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAKaW5kZXggYzM4ODlmODE0NmMwLi5hMDE1ZDlmMGY1MmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0x
OTM5LDcgKzE5MzksNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVwYWludE9uQ29t
cG9zaXRpbmdDaGFuZ2UoUmVuZGVyTGF5ZXImIGxheWVyKQogICAgIGlmICgmbGF5ZXIucmVuZGVy
ZXIoKSAhPSAmbV9yZW5kZXJWaWV3ICYmICFsYXllci5yZW5kZXJlcigpLnBhcmVudCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvKiByZXBhaW50Q29udGFpbmVyID0gbGF5ZXIucmVuZGVy
ZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCk7CisgICAgYXV0byogcmVwYWludENvbnRhaW5lciA9
IGxheWVyLnJlbmRlcmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyOwogICAgIGlm
ICghcmVwYWludENvbnRhaW5lcikKICAgICAgICAgcmVwYWludENvbnRhaW5lciA9ICZtX3JlbmRl
clZpZXc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ck1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1v
ZGVsT2JqZWN0LmNwcAppbmRleCBiNmRjOTUyZDhhMWEuLjQ3YjljMWZkMTMyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApA
QCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0CiAKICAgICAgICAgLy8g
UmVwYWludCB0aGUgYWJvdXQgdG8gYmUgZGVzdHJveWVkIHNlbGYtcGFpbnRpbmcgbGF5ZXIgd2hl
biBzdHlsZSBjaGFuZ2UgYWxzbyB0cmlnZ2VycyByZXBhaW50LgogICAgICAgICBpZiAobGF5ZXIo
KS0+aXNTZWxmUGFpbnRpbmdMYXllcigpICYmIGxheWVyKCktPnJlcGFpbnRTdGF0dXMoKSA9PSBO
ZWVkc0Z1bGxSZXBhaW50ICYmIGxheWVyKCktPnJlcGFpbnRSZWN0cygpKQotICAgICAgICAgICAg
cmVwYWludFVzaW5nQ29udGFpbmVyKGNvbnRhaW5lckZvclJlcGFpbnQoKSwgbGF5ZXIoKS0+cmVw
YWludFJlY3RzKCktPmNsaXBwZWRPdmVyZmxvd1JlY3QpOworICAgICAgICAgICAgcmVwYWludFVz
aW5nQ29udGFpbmVyKGNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlciwgbGF5ZXIoKS0+cmVw
YWludFJlY3RzKCktPmNsaXBwZWRPdmVyZmxvd1JlY3QpOwogCiAgICAgICAgIGxheWVyKCktPnJl
bW92ZU9ubHlUaGlzTGF5ZXIoUmVuZGVyTGF5ZXI6OkxheWVyQ2hhbmdlVGltaW5nOjpTdHlsZUNo
YW5nZSk7IC8vIGNhbGxzIGRlc3Ryb3lMYXllcigpIHdoaWNoIGNsZWFycyBtX2xheWVyCiAgICAg
ICAgIGlmIChzX3dhc0Zsb2F0aW5nICYmIGlzRmxvYXRpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCBi
Yzk5MDliNmZkNjQuLmYwNjU0ZGI0NGVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcApAQCAtMzYxLDcgKzM2MSw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xs
UG9zaXRpb24mIHBvc2l0aW9uKQogICAgIH0KIAogICAgIEZyYW1lJiBmcmFtZSA9IHJlbmRlcmVy
LmZyYW1lKCk7Ci0gICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9
IHJlbmRlcmVyLmNvbnRhaW5lckZvclJlcGFpbnQoKTsKKyAgICBhdXRvKiByZXBhaW50Q29udGFp
bmVyID0gcmVuZGVyZXIuY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyOwogICAgIC8vIFRo
ZSBjYXJldCByZWN0IG5lZWRzIHRvIGJlIGludmFsaWRhdGVkIGFmdGVyIHNjcm9sbGluZwogICAg
IGZyYW1lLnNlbGVjdGlvbigpLnNldENhcmV0UmVjdE5lZWRzVXBkYXRlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggNWVhNzNlY2UzYTY5Li5lYWVi
NDllN2Y5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBA
IC04NTcsNyArODU3LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJPYmplY3Q6OnBhaW50aW5nUm9vdFJl
Y3QoTGF5b3V0UmVjdCYgdG9wTGV2ZWxSZWN0KQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVJl
bmRlckxheWVyTW9kZWxPYmplY3QqIFJlbmRlck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCgp
IGNvbnN0CitSZW5kZXJPYmplY3Q6OlJlcGFpbnRDb250YWluZXJTdGF0dXMgUmVuZGVyT2JqZWN0
Ojpjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3QKIHsKICAgICBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyID0gbnVsbHB0cjsKIApAQCAtODcyLDcgKzg3Miw3IEBAIFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIFJlbmRlck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCgp
IGNvbnN0CiAgICAgICAgIGlmIChSZW5kZXJMYXllciogcGFyZW50TGF5ZXIgPSBlbmNsb3NpbmdM
YXllcigpKSB7CiAgICAgICAgICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nRmlsdGVyTGF5ZXIg
PSBwYXJlbnRMYXllci0+ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoKTsKICAgICAgICAgICAgIGlmIChl
bmNsb3NpbmdGaWx0ZXJMYXllcikKLSAgICAgICAgICAgICAgICByZXR1cm4gJmVuY2xvc2luZ0Zp
bHRlckxheWVyLT5yZW5kZXJlcigpOworICAgICAgICAgICAgICAgIHJldHVybiB7IGZhbHNlLCAm
ZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJlbmRlcmVyKCkgfTsKICAgICAgICAgfQogICAgIH0KIApA
QCAtODg3LDcgKzg4Nyw3IEBAIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIFJlbmRlck9iamVjdDo6
Y29udGFpbmVyRm9yUmVwYWludCgpIGNvbnN0CiAgICAgICAgIGlmICghcmVwYWludENvbnRhaW5l
ckZyYWdtZW50ZWRGbG93IHx8IHJlcGFpbnRDb250YWluZXJGcmFnbWVudGVkRmxvdyAhPSBwYXJl
bnRSZW5kZXJGcmFnbWVudGVkRmxvdykKICAgICAgICAgICAgIHJlcGFpbnRDb250YWluZXIgPSBw
YXJlbnRSZW5kZXJGcmFnbWVudGVkRmxvdzsKICAgICB9Ci0gICAgcmV0dXJuIHJlcGFpbnRDb250
YWluZXI7CisgICAgcmV0dXJuIHsgZmFsc2UsIHJlcGFpbnRDb250YWluZXIgfTsKIH0KIAogdm9p
ZCBSZW5kZXJPYmplY3Q6OnByb3BhZ2F0ZVJlcGFpbnRUb1BhcmVudFdpdGhPdXRsaW5lQXV0b0lm
TmVlZGVkKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlcGFpbnRDb250YWluZXIsIGNv
bnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KSBjb25zdApAQCAtOTcxLDggKzk3MSw5IEBAIHZv
aWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50KCkgY29uc3QKICAgICBpZiAodmlldy5wcmludGluZygp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWludCgpOwotICAgIHJlcGFpbnRVc2luZ0NvbnRh
aW5lcihyZXBhaW50Q29udGFpbmVyLCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBh
aW50Q29udGFpbmVyKSk7CisgICAgYXV0byByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9y
UmVwYWludCgpOworICAgIGlmICghcmVwYWludENvbnRhaW5lci5mdWxsUmVwYWludElzU2NoZWR1
bGVkKQorICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lci5yZW5k
ZXJlciwgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lci5yZW5k
ZXJlcikpOwogfQogCiB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFJlY3RhbmdsZShjb25zdCBM
YXlvdXRSZWN0JiByLCBib29sIHNob3VsZENsaXBUb0xheWVyKSBjb25zdApAQCAtOTkwLDggKzk5
MSw5IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJl
Y3QmIHIsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIpCiAgICAgLy8gcmVwYWludCBjb250YWluZXJz
LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMDgKICAgICBkaXJ0
eVJlY3QubW92ZSh2aWV3LmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXREZWx0YSgp
KTsKIAotICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBjb250
YWluZXJGb3JSZXBhaW50KCk7Ci0gICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250
YWluZXIsIGNvbXB1dGVSZWN0Rm9yUmVwYWludChkaXJ0eVJlY3QsIHJlcGFpbnRDb250YWluZXIp
LCBzaG91bGRDbGlwVG9MYXllcik7CisgICAgYXV0byByZXBhaW50Q29udGFpbmVyID0gY29udGFp
bmVyRm9yUmVwYWludCgpOworICAgIGlmICghcmVwYWludENvbnRhaW5lci5mdWxsUmVwYWludElz
U2NoZWR1bGVkKQorICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5l
ci5yZW5kZXJlciwgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGRpcnR5UmVjdCwgcmVwYWludENvbnRh
aW5lci5yZW5kZXJlciksIHNob3VsZENsaXBUb0xheWVyKTsKIH0KIAogdm9pZCBSZW5kZXJPYmpl
Y3Q6OnJlcGFpbnRTbG93UmVwYWludE9iamVjdCgpIGNvbnN0CkBAIC0xMDA0LDcgKzEwMDYsNyBA
QCB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFNsb3dSZXBhaW50T2JqZWN0KCkgY29uc3QKICAg
ICBpZiAodmlldy5wcmludGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWlu
dCgpOworICAgIGF1dG8qIHJlcGFpbnRDb250YWluZXIgPSBjb250YWluZXJGb3JSZXBhaW50KCku
cmVuZGVyZXI7CiAKICAgICBib29sIHNob3VsZENsaXBUb0xheWVyID0gdHJ1ZTsKICAgICBJbnRS
ZWN0IHJlcGFpbnRSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmlu
ZGV4IGNiY2ZmNjcxM2FiZi4uYTdmMjUwYWRiYzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCkBAIC02MjgsNyArNjI4LDExIEBAIHB1YmxpYzoKIAogICAgIC8vIFJl
dHVybiB0aGUgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCBpbiB0aGUgY29udGFpbmVyIGNoYWluIHdo
aWNoIGlzIHJlc3BvbnNpYmxlIGZvciBwYWludGluZyB0aGlzIG9iamVjdCwgb3IgbnVsbHB0cgog
ICAgIC8vIGlmIHBhaW50aW5nIGlzIHJvb3QtcmVsYXRpdmUuIFRoaXMgaXMgdGhlIGNvbnRhaW5l
ciB0aGF0IHNob3VsZCBiZSBwYXNzZWQgdG8gdGhlICdmb3JSZXBhaW50JyBmdW5jdGlvbnMuCi0g
ICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogY29udGFpbmVyRm9yUmVwYWludCgpIGNvbnN0Owor
ICAgIHN0cnVjdCBSZXBhaW50Q29udGFpbmVyU3RhdHVzIHsKKyAgICAgICAgYm9vbCBmdWxsUmVw
YWludElzU2NoZWR1bGVkIHsgZmFsc2UgfTsgLy8gRWl0aGVyIHRoZSByZXBhaW50IGNvbnRhaW5l
ciBvciBhIGxheWVyIGluLWJldHdlZW4gaGFzIGFsZWFkeSBiZWVuIHNjaGVkdWxlZCBmb3IgZnVs
bCByZXBhaW50LgorICAgICAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZW5kZXJl
ciB7IG51bGxwdHIgfTsKKyAgICB9OworICAgIFJlcGFpbnRDb250YWluZXJTdGF0dXMgY29udGFp
bmVyRm9yUmVwYWludCgpIGNvbnN0OwogICAgIC8vIEFjdHVhbGx5IGRvIHRoZSByZXBhaW50IG9m
IHJlY3QgciBmb3IgdGhpcyBvYmplY3Qgd2hpY2ggaGFzIGJlZW4gY29tcHV0ZWQgaW4gdGhlIGNv
b3JkaW5hdGUgc3BhY2UKICAgICAvLyBvZiByZXBhaW50Q29udGFpbmVyLiBJZiByZXBhaW50Q29u
dGFpbmVyIGlzIG51bGxwdHIsIHJlcGFpbnQgdmlhIHRoZSB2aWV3LgogICAgIHZvaWQgcmVwYWlu
dFVzaW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGNvbnN0IExheW91dFJlY3QmLCBib29sIHNob3VsZENsaXBUb0xheWVyID0gdHJ1ZSkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0
aW9uSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5m
by5jcHAKaW5kZXggY2RiOGU0ZmZjYzIxLi4xNmIzMmFmMjgwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5jcHAKQEAgLTMyLDcgKzMyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZTo6UmVuZGVy
U2VsZWN0aW9uSW5mb0Jhc2UoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICA6IG1fcmVuZGVy
ZXIocmVuZGVyZXIpCi0gICAgLCBtX3JlcGFpbnRDb250YWluZXIocmVuZGVyZXIuY29udGFpbmVy
Rm9yUmVwYWludCgpKQorICAgICwgbV9yZXBhaW50Q29udGFpbmVyKHJlbmRlcmVyLmNvbnRhaW5l
ckZvclJlcGFpbnQoKS5yZW5kZXJlcikKICAgICAsIG1fc3RhdGUocmVuZGVyZXIuc2VsZWN0aW9u
U3RhdGUoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTZWxlY3Rpb25JbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0
aW9uSW5mby5oCmluZGV4IDVhNDJhNGE1NGJjNS4uNDI2OTAzMGJiMzNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmgKQEAgLTM0LDE0ICszNCwx
NCBAQCBjbGFzcyBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZShSZW5kZXJPYmpl
Y3QmIHJlbmRlcmVyKTsKLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Q29udGFpbmVyOyB9CisgICAgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIG1f
cmVwYWludENvbnRhaW5lcjsgfQogICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIHJl
cGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QpOwogCiAgICAgUmVu
ZGVyT2JqZWN0JiBtX3JlbmRlcmVyOwotICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIG1fcmVw
YWludENvbnRhaW5lcjsKKyAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBtX3JlcGFp
bnRDb250YWluZXI7CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0
ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IGM1
NjM4NDkwZmFjYS4uMDMxYjVjZTRlOWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwCkBAIC00NDgsNyArNDQ4LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50Um9v
dENvbnRlbnRzKCkKIAogICAgIC8vIEFsd2F5cyB1c2UgbGF5b3V0T3ZlcmZsb3dSZWN0KCkgdG8g
Zml4IHJkYXI6Ly9wcm9ibGVtLzI3MTgyMjY3LgogICAgIC8vIFRoaXMgc2hvdWxkIGJlIGNsZWFu
ZWQgdXAgdmlhIHdlYmtpdC5vcmcvYi8xNTk5MTMgYW5kIHdlYmtpdC5vcmcvYi8xNTk5MTQuCi0g
ICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5lckZv
clJlcGFpbnQoKTsKKyAgICBhdXRvKiByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVw
YWludCgpLnJlbmRlcmVyOwogICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFp
bmVyLCBjb21wdXRlUmVjdEZvclJlcGFpbnQobGF5b3V0T3ZlcmZsb3dSZWN0KCksIHJlcGFpbnRD
b250YWluZXIpKTsKIH0KIAotLSAKMi4zMi4wIChBcHBsZSBHaXQtMTMyKQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459651</attachid>
            <date>2022-05-22 15:32:32 -0700</date>
            <delta_ts>2022-05-23 17:01:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240721-20220522153231.patch</filename>
            <type>text/plain</type>
            <size>25353</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5M2MzNmIxN2RjMGRmZGI1NjAxNjk3ZDBmZWYyNDNiMGQzOGNjNDE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBT
dW4sIDIyIE1heSAyMDIyIDE1OjMwOjAyIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gUmVuZGVyT2Jq
ZWN0Ojpjb250YWluZXJGb3JSZXBhaW50IHNob3VsZCBiZSBhYmxlIHRvIHRlbGwgaWYgYQogZnVs
bCByZXBhaW50IGhhcyBhbHJlYWR5IGJlZW4gc2NoZWR1bGVkLgogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDcyMQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgpUaGlzIHBhdGNoIGlzIGluIHByZXBhcmF0aW9uIGZvciByZWR1Y2luZyByZWR1bmRhbnQgcmVw
YWludHMgd2hlbiBhbiBhbmNlc3RvciBsYXllciAoYmV0d2VlbiB0aGUgcmVuZGVyZXIgYW5kIHRo
ZSByZXBhaW50IGNvbnRhaW5lcikgaGFzIGFscmVhZHkgYmVlbiBzY2hlZHVsZWQgZm9yIG9uZS4K
CiogU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcDoK
KFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmFkZFF1YWQpOgooV2ViQ29yZTo6
U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRkR2FwUmVjdHMpOgoqIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6aXNFbmNsb3NlZEluQ29tcG9z
aXRpbmdMYXllciBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFp
bnRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXRSZXBhaW50ZXI6OkxheW91dFJlcGFpbnRlcik6CihX
ZWJDb3JlOjpMYXlvdXRSZXBhaW50ZXI6OnJlcGFpbnRBZnRlckxheW91dCk6CiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcDoKKFdlYkNvcmU6OkxlZ2FjeUxpbmVMYXlvdXQ6Omxh
eW91dFJ1bnNBbmRGbG9hdHMpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcDoKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6Omlzc3VlUmVwYWludEZvck91dGxpbmVB
dXRvKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3Bw
OgooV2ViQ29yZTo6UmVuZGVyRnJhZ21lbnRlZEZsb3c6Om1hcExvY2FsVG9Db250YWluZXIgY29u
c3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJGcmFtZVNldDo6bGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxh
eWVyUG9zaXRpb25zKToKKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjb21wdXRlUmVwYWludFJlY3Rz
SW5jbHVkaW5nRGVzY2VuZGFudHMpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVw
ZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNl
dEhhc1Zpc2libGVDb250ZW50KToKKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlw
UmVjdHMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXBhaW50T25Db21wb3NpdGluZ0NoYW5nZSk6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgoo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UpOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcDoKKFdlYkNv
cmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvKToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29u
dGFpbmVyRm9yUmVwYWludCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnQg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlIGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6cmVwYWludFNsb3dSZXBhaW50T2JqZWN0IGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwOgooV2ViQ29yZTo6UmVuZGVyU2Vs
ZWN0aW9uSW5mb0Jhc2U6OlJlbmRlclNlbGVjdGlvbkluZm9CYXNlKToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oOgooV2ViQ29yZTo6UmVuZGVyU2VsZWN0
aW9uSW5mb0Jhc2U6OnJlcGFpbnRDb250YWluZXIgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKFdlYkNvcmU6OlJlbmRlclZpZXc6OnJlcGFpbnRSb290
Q29udGVudHMpOgotLS0KIC4uLi9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3Bw
ICAgICAgfCAgNCArKy0tCiAuLi4vZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmgg
ICAgICAgIHwgIDQgKystLQogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAg
ICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0UmVwYWludGVy
LmNwcCAgIHwgMTMgKysrKysrLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91
dFJlcGFpbnRlci5oICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdh
Y3lMaW5lTGF5b3V0LmNwcCAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwICAgICB8ICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJh
Z21lbnRlZEZsb3cuY3BwIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
cmFtZVNldC5jcHAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oICAgICAgICAgfCAgMiArLQogLi4uL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwICAgICAgICB8ICAyICstCiAuLi4vcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuY3BwICAgICAgIHwgIDIgKy0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYS5jcHAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAgICAgICB8IDE4ICsrKysrKysrKystLS0tLS0tLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oICAgICAgICB8ICA2ICsrKysrLQogLi4uL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oIHwgIDQgKystLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwICAgICAgICB8ICAyICstCiAxOSBmaWxl
cyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcAppbmRl
eCAwZDg3MmM3ZTFkNzMuLmJjMmVjNjExODM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3BwCkBAIC00MywxMyArNDMsMTMg
QEAgU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcihS
ZW5kZXJWaWV3JiByZW5kZXJWaWV3KQogewogfQogCi12b2lkIFNlbGVjdGlvbkdlb21ldHJ5R2F0
aGVyZXI6OmFkZFF1YWQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENvbnRhaW5lciwg
Y29uc3QgRmxvYXRRdWFkJiBxdWFkKQordm9pZCBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjph
ZGRRdWFkKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNv
bnN0IEZsb2F0UXVhZCYgcXVhZCkKIHsKICAgICBpZiAoIXF1YWQuYm91bmRpbmdCb3hJc0VtcHR5
KCkpCiAgICAgICAgIG1fcXVhZHMuYXBwZW5kKHJlcGFpbnRDb250YWluZXIgPyByZXBhaW50Q29u
dGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHF1YWQpIDogcXVhZCk7CiB9CiAKLXZvaWQgU2Vs
ZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRkR2FwUmVjdHMoUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCAqcmVwYWludENvbnRhaW5lciwgY29uc3QgR2FwUmVjdHMmIHJlY3RzKQordm9pZCBTZWxlY3Rp
b25HZW9tZXRyeUdhdGhlcmVyOjphZGRHYXBSZWN0cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBHYXBSZWN0cyYgcmVjdHMpCiB7CiAgICAgaWYg
KHJlcGFpbnRDb250YWluZXIpIHsKICAgICAgICAgR2FwUmVjdHMgYWJzb2x1dGVHYXBSZWN0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRo
ZXJlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVy
LmgKaW5kZXggMjJiZjBhMjNmMzUwLi5lM2Y1MThhYjdiMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oCkBAIC00NSw4ICs0NSw4
IEBAIGNsYXNzIFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIgewogcHVibGljOgogICAgIFNlbGVj
dGlvbkdlb21ldHJ5R2F0aGVyZXIoUmVuZGVyVmlldyYpOwogCi0gICAgdm9pZCBhZGRRdWFkKFJl
bmRlckxheWVyTW9kZWxPYmplY3QgKnJlcGFpbnRDb250YWluZXIsIGNvbnN0IEZsb2F0UXVhZCYp
OwotICAgIHZvaWQgYWRkR2FwUmVjdHMoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENv
bnRhaW5lciwgY29uc3QgR2FwUmVjdHMmKTsKKyAgICB2b2lkIGFkZFF1YWQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgRmxvYXRRdWFkJik7Cisg
ICAgdm9pZCBhZGRHYXBSZWN0cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBjb25zdCBHYXBSZWN0cyYpOwogICAgIHZvaWQgc2V0VGV4dE9ubHkoYm9vbCBp
c1RleHRPbmx5KSB7IG1faXNUZXh0T25seSA9IGlzVGV4dE9ubHk7IH0KICAgICBib29sIGlzVGV4
dE9ubHkoKSBjb25zdCB7IHJldHVybiBtX2lzVGV4dE9ubHk7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IDczZGExNmUzODViMC4uZGZkYzZiZjk5N2NmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCkBAIC0xMTg1LDcgKzExODUsNyBAQCB2b2lkIEZyYW1lVmlldzo6ZW50
ZXJDb21wb3NpdGluZ01vZGUoKQogYm9vbCBGcmFtZVZpZXc6OmlzRW5jbG9zZWRJbkNvbXBvc2l0
aW5nTGF5ZXIoKSBjb25zdAogewogICAgIGF1dG8gZnJhbWVPd25lclJlbmRlcmVyID0gZnJhbWUo
KS5vd25lclJlbmRlcmVyKCk7Ci0gICAgaWYgKGZyYW1lT3duZXJSZW5kZXJlciAmJiBmcmFtZU93
bmVyUmVuZGVyZXItPmNvbnRhaW5lckZvclJlcGFpbnQoKSkKKyAgICBpZiAoZnJhbWVPd25lclJl
bmRlcmVyICYmIGZyYW1lT3duZXJSZW5kZXJlci0+Y29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRl
cmVyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChGcmFtZVZpZXcqIHBhcmVudFZp
ZXcgPSBwYXJlbnRGcmFtZVZpZXcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91
dFJlcGFpbnRlci5jcHAKaW5kZXggOGQ1ZWJkYjExZGNlLi5iNTdkZjcyZTg3NjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwCkBAIC0zMCwyMSArMzAs
MjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1MYXlvdXRSZXBhaW50ZXI6OkxheW91dFJl
cGFpbnRlcihSZW5kZXJFbGVtZW50JiBvYmplY3QsIGJvb2wgY2hlY2tGb3JSZXBhaW50KQotICAg
IDogbV9vYmplY3Qob2JqZWN0KQotICAgICwgbV9yZXBhaW50Q29udGFpbmVyKDApCitMYXlvdXRS
ZXBhaW50ZXI6OkxheW91dFJlcGFpbnRlcihSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgYm9vbCBj
aGVja0ZvclJlcGFpbnQpCisgICAgOiBtX3JlbmRlcmVyKHJlbmRlcmVyKQogICAgICwgbV9jaGVj
a0ZvclJlcGFpbnQoY2hlY2tGb3JSZXBhaW50KQogewogICAgIGlmIChtX2NoZWNrRm9yUmVwYWlu
dCkgewotICAgICAgICBtX3JlcGFpbnRDb250YWluZXIgPSBtX29iamVjdC5jb250YWluZXJGb3JS
ZXBhaW50KCk7Ci0gICAgICAgIG1fb2xkQm91bmRzID0gbV9vYmplY3QuY2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQobV9yZXBhaW50Q29udGFpbmVyKTsKLSAgICAgICAgbV9vbGRPdXRsaW5l
Qm94ID0gbV9vYmplY3Qub3V0bGluZUJvdW5kc0ZvclJlcGFpbnQobV9yZXBhaW50Q29udGFpbmVy
KTsKKyAgICAgICAgbV9yZXBhaW50Q29udGFpbmVyID0gbV9yZW5kZXJlci5jb250YWluZXJGb3JS
ZXBhaW50KCkucmVuZGVyZXI7CisgICAgICAgIG1fb2xkQm91bmRzID0gbV9yZW5kZXJlci5jbGlw
cGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChtX3JlcGFpbnRDb250YWluZXIpOworICAgICAgICBt
X29sZE91dGxpbmVCb3ggPSBtX3JlbmRlcmVyLm91dGxpbmVCb3VuZHNGb3JSZXBhaW50KG1fcmVw
YWludENvbnRhaW5lcik7CiAgICAgfQogfQogCiBib29sIExheW91dFJlcGFpbnRlcjo6cmVwYWlu
dEFmdGVyTGF5b3V0KCkKIHsKLSAgICByZXR1cm4gbV9jaGVja0ZvclJlcGFpbnQgPyBtX29iamVj
dC5yZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChtX3JlcGFpbnRDb250YWluZXIsIG1fb2xkQm91
bmRzLCBtX29sZE91dGxpbmVCb3gpIDogZmFsc2U7CisgICAgcmV0dXJuIG1fY2hlY2tGb3JSZXBh
aW50ID8gbV9yZW5kZXJlci5yZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChtX3JlcGFpbnRDb250
YWluZXIsIG1fb2xkQm91bmRzLCBtX29sZE91dGxpbmVCb3gpIDogZmFsc2U7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
YXlvdXRSZXBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50
ZXIuaAppbmRleCA5ZGRmYzEyZDFlNzkuLmFiYWYwNDc1NjczZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuaApAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCByZXBhaW50QWZ0ZXJMYXlvdXQoKTsKIAogcHJpdmF0ZToKLSAgICBSZW5kZXJFbGVt
ZW50JiBtX29iamVjdDsKLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBtX3JlcGFpbnRDb250
YWluZXI7CisgICAgUmVuZGVyRWxlbWVudCYgbV9yZW5kZXJlcjsKKyAgICBjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBtX3JlcGFpbnRDb250YWluZXIgeyBudWxscHRyIH07CiAgICAgLy8g
V2Ugc3RvcmUgdGhlc2UgdmFsdWVzIGFzIExheW91dFJlY3RzLCBidXQgdGhlIGZpbmFsIGludmFs
aWRhdGlvbnMgd2lsbCBiZSBwaXhlbCBzbmFwcGVkCiAgICAgTGF5b3V0UmVjdCBtX29sZEJvdW5k
czsKICAgICBMYXlvdXRSZWN0IG1fb2xkT3V0bGluZUJveDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCBjYjE3Njc3NjhkZDMuLmM0M2JjODZm
Yzg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlv
dXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNw
cApAQCAtMTM0OCw3ICsxMzQ4LDcgQEAgdm9pZCBMZWdhY3lMaW5lTGF5b3V0OjpsYXlvdXRSdW5z
QW5kRmxvYXRzKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGJvb2wgaGEKICAgICAgICAg
ICAgIC8vIHRoYXQgdGhlIGJsb2NrIHJlYWxseSBuZWVkZWQgYSBmdWxsIGxheW91dCwgd2UgbWlz
c2VkIG91ciBjaGFuY2UgdG8gcmVwYWludCB0aGUgbGF5ZXIKICAgICAgICAgICAgIC8vIGJlZm9y
ZSBsYXlvdXQgc3RhcnRlZC4gTHVja2lseSB0aGUgbGF5ZXIgaGFzIGNhY2hlZCB0aGUgcmVwYWlu
dCByZWN0IGZvciBpdHMgb3JpZ2luYWwKICAgICAgICAgICAgIC8vIHBvc2l0aW9uIGFuZCBzaXpl
LCBhbmQgc28gd2UgY2FuIHVzZSB0aGF0IHRvIG1ha2UgYSByZXBhaW50IGhhcHBlbiBub3cuCi0g
ICAgICAgICAgICBtX2Zsb3cucmVwYWludFVzaW5nQ29udGFpbmVyKG1fZmxvdy5jb250YWluZXJG
b3JSZXBhaW50KCksIG1fZmxvdy5sYXllclJlcGFpbnRSZWN0cygpLT5jbGlwcGVkT3ZlcmZsb3dS
ZWN0KTsKKyAgICAgICAgICAgIG1fZmxvdy5yZXBhaW50VXNpbmdDb250YWluZXIobV9mbG93LmNv
bnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlciwgbV9mbG93LmxheWVyUmVwYWludFJlY3RzKCkt
PmNsaXBwZWRPdmVyZmxvd1JlY3QpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggMzVkZmZkZTk4ODliLi4zODhhN2M5
NDQ3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAg
LTIxMTIsNyArMjExMiw3IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6aXNzdWVSZXBhaW50Rm9yT3V0
bGluZUF1dG8oZmxvYXQgb3V0bGluZVNpemUpCiB7CiAgICAgTGF5b3V0UmVjdCByZXBhaW50UmVj
dDsKICAgICBWZWN0b3I8TGF5b3V0UmVjdD4gZm9jdXNSaW5nUmVjdHM7Ci0gICAgYWRkRm9jdXNS
aW5nUmVjdHMoZm9jdXNSaW5nUmVjdHMsIExheW91dFBvaW50KCksIGNvbnRhaW5lckZvclJlcGFp
bnQoKSk7CisgICAgYWRkRm9jdXNSaW5nUmVjdHMoZm9jdXNSaW5nUmVjdHMsIExheW91dFBvaW50
KCksIGNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlcik7CiAgICAgZm9yIChhdXRvIHJlY3Qg
OiBmb2N1c1JpbmdSZWN0cykgewogICAgICAgICByZWN0LmluZmxhdGUob3V0bGluZVNpemUpOwog
ICAgICAgICByZXBhaW50UmVjdC51bml0ZShyZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwCmluZGV4IDI2NWI4OTRmMzNmMi4uZWFi
OTkwNThjYjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJh
Z21lbnRlZEZsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFn
bWVudGVkRmxvdy5jcHAKQEAgLTk0OCw3ICs5NDgsNyBAQCB2b2lkIFJlbmRlckZyYWdtZW50ZWRG
bG93OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
YwogCiAgICAgICAgIC8vIElmIHRoZSByZXBhaW50IGNvbnRhaW5lciBpcyBudWxscHRyLCB3ZSBo
YXZlIHRvIGNsaW1iIHVwIHRvIHRoZSBSZW5kZXJWaWV3LCBvdGhlcndpc2Ugc3dhcAogICAgICAg
ICAvLyBpdCB3aXRoIHRoZSBmcmFnbWVudCdzIHJlcGFpbnQgY29udGFpbmVyLgotICAgICAgICBh
bmNlc3RvckNvbnRhaW5lciA9IGFuY2VzdG9yQ29udGFpbmVyID8gZnJhZ21lbnQtPmNvbnRhaW5l
ckZvclJlcGFpbnQoKSA6IG51bGxwdHI7CisgICAgICAgIGFuY2VzdG9yQ29udGFpbmVyID0gYW5j
ZXN0b3JDb250YWluZXIgPyBmcmFnbWVudC0+Y29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVy
IDogbnVsbHB0cjsKIAogICAgICAgICBpZiAoUmVuZGVyRnJhZ21lbnRlZEZsb3cqIGZyYWdtZW50
RnJhZ21lbnRlZEZsb3cgPSBmcmFnbWVudC0+ZW5jbG9zaW5nRnJhZ21lbnRlZEZsb3coKSkgewog
ICAgICAgICAgICAgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIHN0YXJ0RnJhZ21lbnQgPSBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKaW5kZXgg
MGI0OGQ5MzZiMjM1Li4xNTU4YzgzM2Q4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZyYW1lU2V0LmNwcApAQCAtNDM2LDkgKzQzNiw5IEBAIHZvaWQgUmVuZGVyRnJhbWVT
ZXQ6OmxheW91dCgpCiAKICAgICBib29sIGRvRnVsbFJlcGFpbnQgPSBzZWxmTmVlZHNMYXlvdXQo
KSAmJiBjaGVja0ZvclJlcGFpbnREdXJpbmdMYXlvdXQoKTsKICAgICBMYXlvdXRSZWN0IG9sZEJv
dW5kczsKLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gMDsK
KyAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gbnVs
bHB0cjsKICAgICBpZiAoZG9GdWxsUmVwYWludCkgewotICAgICAgICByZXBhaW50Q29udGFpbmVy
ID0gY29udGFpbmVyRm9yUmVwYWludCgpOworICAgICAgICByZXBhaW50Q29udGFpbmVyID0gY29u
dGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyOwogICAgICAgICBvbGRCb3VuZHMgPSBjbGlwcGVk
T3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDI0ZTZhOWU4MjM2YS4uY2Rj
ZDM5YjAyNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAg
LTk5MCw3ICs5OTAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpyZWN1cnNpdmVVcGRhdGVMYXllclBv
c2l0aW9ucyhSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0cnlNYXAsCiAgICAgICAgIC8vIExheW91
dFN0YXRlIG91dHNpZGUgdGhlIGxheW91dCgpIHBoYXNlIGFuZCB1c2UgaXQgaGVyZS4KICAgICAg
ICAgQVNTRVJUKCFyZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCku
aXNQYWludE9mZnNldENhY2hlRW5hYmxlZCgpKTsKIAotICAgICAgICBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gcmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50
KCk7CisgICAgICAgIGF1dG8qIHJlcGFpbnRDb250YWluZXIgPSByZW5kZXJlcigpLmNvbnRhaW5l
ckZvclJlcGFpbnQoKS5yZW5kZXJlcjsKICAgICAgICAgCiAgICAgICAgIGF1dG8gb2xkUmVjdHMg
PSByZXBhaW50UmVjdHMoKTsKICAgICAgICAgY29tcHV0ZVJlcGFpbnRSZWN0cyhyZXBhaW50Q29u
dGFpbmVyLCBnZW9tZXRyeU1hcCk7CkBAIC0xMTQ1LDcgKzExNDUsNyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpjb21wdXRlUmVwYWludFJlY3RzSW5jbHVkaW5nRGVzY2VuZGFudHMoKQogICAgIC8vIEZJ
WE1FOiBjb21wdXRlUmVwYWludFJlY3RzKCkgaGFzIHRvIHdhbGsgdXAgdGhlIHBhcmVudCBjaGFp
biBmb3IgZXZlcnkgbGF5ZXIgdG8gY29tcHV0ZSB0aGUgcmVjdHMuCiAgICAgLy8gV2Ugc2hvdWxk
IG1ha2UgdGhpcyBtb3JlIGVmZmljaWVudC4KICAgICAvLyBGSVhNRTogaXQncyB3cm9uZyB0byBj
YWxsIHRoaXMgd2hlbiBsYXlvdXQgaXMgbm90IHVwLXRvLWRhdGUsIHdoaWNoIHdlIGRvLgotICAg
IGNvbXB1dGVSZXBhaW50UmVjdHMocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkpOwor
ICAgIGNvbXB1dGVSZXBhaW50UmVjdHMocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCku
cmVuZGVyZXIpOwogCiAgICAgZm9yIChSZW5kZXJMYXllciogbGF5ZXIgPSBmaXJzdENoaWxkKCk7
IGxheWVyOyBsYXllciA9IGxheWVyLT5uZXh0U2libGluZygpKQogICAgICAgICBsYXllci0+Y29t
cHV0ZVJlcGFpbnRSZWN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7CkBAIC0xMjIyLDEzICsxMjIy
LDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0
ZXJTY3JvbGwoUmVuZGVyR2VvbWV0cnlNYXAqIGdlCiAgICAgICAgIGlmIChpc1Zpc3VhbGx5RW1w
dHkpCiAgICAgICAgICAgICBjbGVhclJlcGFpbnRSZWN0cygpOwogICAgICAgICBlbHNlIC8vIEZJ
WE1FOiBXZSBjb3VsZCB0cmFjayB0aGUgcmVwYWludCBjb250YWluZXIgYXMgd2Ugd2FsayBkb3du
IHRoZSB0cmVlLgotICAgICAgICAgICAgY29tcHV0ZVJlcGFpbnRSZWN0cyhyZW5kZXJlcigpLmNv
bnRhaW5lckZvclJlcGFpbnQoKSwgZ2VvbWV0cnlNYXApOworICAgICAgICAgICAgY29tcHV0ZVJl
cGFpbnRSZWN0cyhyZW5kZXJlcigpLmNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlciwgZ2Vv
bWV0cnlNYXApOwogICAgIH0gZWxzZSBpZiAoIXJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygp
LnBsYXRmb3JtV2lkZ2V0KCkpIHsKICAgICAgICAgLy8gV2hlbiBTY3JvbGxWaWV3J3MgbV9wYWlu
dHNFbnRpcmVDb250ZW50cyBmbGFnIGZsaXBzIGR1ZSB0byBsYXllciBiYWNraW5nIGNoYW5nZXMs
IHRoZSByZXBhaW50IGFyZWEgdHJhbnNpdGlvbnMgZnJvbQogICAgICAgICAvLyB2aXN1YWwgdG8g
bGF5b3V0IG92ZXJmbG93LiBXaGVuIHRoaXMgaGFwcGVucyB0aGUgY2FjaGVkIHJlcGFpbnQgcmVj
dHMgYmVjb21lIGludmFsaWQgYW5kIHRoZXkgbmVlZCB0byBiZSByZWNvbXB1dGVkIChzZWUgd2Vi
a2l0Lm9yZy9iLzE4ODEyMSkuCiAgICAgICAgIC8vIENoZWNrIHRoYXQgb3VyIGNhY2hlZCByZWN0
cyBhcmUgY29ycmVjdC4KLSAgICAgICAgQVNTRVJUX0lNUExJRVMobV9yZXBhaW50UmVjdHNWYWxp
ZCwgbV9yZXBhaW50UmVjdHMuY2xpcHBlZE92ZXJmbG93UmVjdCA9PSByZW5kZXJlcigpLmNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHJlbmRlcmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgp
KSk7Ci0gICAgICAgIEFTU0VSVF9JTVBMSUVTKG1fcmVwYWludFJlY3RzVmFsaWQsIG1fcmVwYWlu
dFJlY3RzLm91dGxpbmVCb3VuZHNSZWN0ID09IHJlbmRlcmVyKCkub3V0bGluZUJvdW5kc0ZvclJl
cGFpbnQocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkpKTsKKyAgICAgICAgQVNTRVJU
X0lNUExJRVMobV9yZXBhaW50UmVjdHNWYWxpZCwgbV9yZXBhaW50UmVjdHMuY2xpcHBlZE92ZXJm
bG93UmVjdCA9PSByZW5kZXJlcigpLmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHJlbmRl
cmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyKSk7CisgICAgICAgIEFTU0VSVF9J
TVBMSUVTKG1fcmVwYWludFJlY3RzVmFsaWQsIG1fcmVwYWludFJlY3RzLm91dGxpbmVCb3VuZHNS
ZWN0ID09IHJlbmRlcmVyKCkub3V0bGluZUJvdW5kc0ZvclJlcGFpbnQocmVuZGVyZXIoKS5jb250
YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXIpKTsKICAgICB9CiAgICAgCiAgICAgZm9yIChSZW5k
ZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKQpAQCAtMTUwNiw3ICsxNTA2LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0SGFz
VmlzaWJsZUNvbnRlbnQoKQogCiAgICAgbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5ID0gZmFs
c2U7IAogICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSB0cnVlOwotICAgIGNvbXB1dGVSZXBhaW50
UmVjdHMocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkpOworICAgIGNvbXB1dGVSZXBh
aW50UmVjdHMocmVuZGVyZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCkucmVuZGVyZXIpOwogICAg
IGlmICghaXNOb3JtYWxGbG93T25seSgpKSB7CiAgICAgICAgIC8vIFdlIGRvbid0IGNvbGxlY3Qg
aW52aXNpYmxlIGxheWVycyBpbiB6LW9yZGVyIGxpc3RzIGlmIHdlIGFyZSBub3QgaW4gY29tcG9z
aXRpbmcgbW9kZS4KICAgICAgICAgLy8gQXMgd2UgYmVjYW1lIHZpc2libGUsIHdlIG5lZWQgdG8g
ZGlydHkgb3VyIHN0YWNraW5nIGNvbnRhaW5lcnMgYW5jZXN0b3JzIHRvIGJlIHByb3Blcmx5CkBA
IC01MzQ3LDcgKzUzNDcsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRCYWNraW5nTmVlZHNSZXBh
aW50SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHIsIEdyYXBoaWNzTGF5ZQogfQogCiAvLyBTaW5j
ZSB3ZSdyZSBvbmx5IHBhaW50aW5nIG5vbi1jb21wb3NpdGVkIGxheWVycywgd2Uga25vdyB0aGF0
IHRoZXkgYWxsIHNoYXJlIHRoZSBzYW1lIHJlcGFpbnRDb250YWluZXIuCi12b2lkIFJlbmRlckxh
eWVyOjpyZXBhaW50SW5jbHVkaW5nTm9uQ29tcG9zaXRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKQordm9pZCBSZW5kZXJMYXllcjo6cmVwYWlu
dEluY2x1ZGluZ05vbkNvbXBvc2l0aW5nRGVzY2VuZGFudHMoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lcikKIHsKICAgICBhdXRvIGNsaXBwZWRPdmVyZmxvd1Jl
Y3QgPSBtX3JlcGFpbnRSZWN0c1ZhbGlkID8gbV9yZXBhaW50UmVjdHMuY2xpcHBlZE92ZXJmbG93
UmVjdCA6IHJlbmRlcmVyKCkuY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVwYWludENv
bnRhaW5lcik7CiAgICAgcmVuZGVyZXIoKS5yZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENv
bnRhaW5lciwgY2xpcHBlZE92ZXJmbG93UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCmluZGV4IGVlZmFlM2UyYTE2MS4uMmIzNmIyODVkMDBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDI4LDcgKzQyOCw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIFRoZSByZWN0IGlzIGluIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIHRoZSBsYXllcidz
IHJlbmRlciBvYmplY3QuCiAgICAgdm9pZCBzZXRCYWNraW5nTmVlZHNSZXBhaW50SW5SZWN0KGNv
bnN0IExheW91dFJlY3QmLCBHcmFwaGljc0xheWVyOjpTaG91bGRDbGlwVG9MYXllciA9IEdyYXBo
aWNzTGF5ZXI6OkNsaXBUb0xheWVyKTsKLSAgICB2b2lkIHJlcGFpbnRJbmNsdWRpbmdOb25Db21w
b3NpdGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIpOworICAgIHZvaWQgcmVwYWludEluY2x1ZGluZ05vbkNvbXBvc2l0aW5nRGVzY2VuZGFudHMo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7CiAKICAgICB2
b2lkIHN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRT
dHlsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAKaW5kZXggNGRiODBmZWFhZjdjLi4xOTkwNGU3Mjk1MDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0x
OTQwLDcgKzE5NDAsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVwYWludE9uQ29t
cG9zaXRpbmdDaGFuZ2UoUmVuZGVyTGF5ZXImIGxheWVyKQogICAgIGlmICgmbGF5ZXIucmVuZGVy
ZXIoKSAhPSAmbV9yZW5kZXJWaWV3ICYmICFsYXllci5yZW5kZXJlcigpLnBhcmVudCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvKiByZXBhaW50Q29udGFpbmVyID0gbGF5ZXIucmVuZGVy
ZXIoKS5jb250YWluZXJGb3JSZXBhaW50KCk7CisgICAgYXV0byogcmVwYWludENvbnRhaW5lciA9
IGxheWVyLnJlbmRlcmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyOwogICAgIGlm
ICghcmVwYWludENvbnRhaW5lcikKICAgICAgICAgcmVwYWludENvbnRhaW5lciA9ICZtX3JlbmRl
clZpZXc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ck1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1v
ZGVsT2JqZWN0LmNwcAppbmRleCBjNGMyNDVmM2UzYjIuLjEzZTBlY2RiNWU5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApA
QCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0CiAKICAgICAgICAgLy8g
UmVwYWludCB0aGUgYWJvdXQgdG8gYmUgZGVzdHJveWVkIHNlbGYtcGFpbnRpbmcgbGF5ZXIgd2hl
biBzdHlsZSBjaGFuZ2UgYWxzbyB0cmlnZ2VycyByZXBhaW50LgogICAgICAgICBpZiAobGF5ZXIo
KS0+aXNTZWxmUGFpbnRpbmdMYXllcigpICYmIGxheWVyKCktPnJlcGFpbnRTdGF0dXMoKSA9PSBO
ZWVkc0Z1bGxSZXBhaW50ICYmIGxheWVyKCktPnJlcGFpbnRSZWN0cygpKQotICAgICAgICAgICAg
cmVwYWludFVzaW5nQ29udGFpbmVyKGNvbnRhaW5lckZvclJlcGFpbnQoKSwgbGF5ZXIoKS0+cmVw
YWludFJlY3RzKCktPmNsaXBwZWRPdmVyZmxvd1JlY3QpOworICAgICAgICAgICAgcmVwYWludFVz
aW5nQ29udGFpbmVyKGNvbnRhaW5lckZvclJlcGFpbnQoKS5yZW5kZXJlciwgbGF5ZXIoKS0+cmVw
YWludFJlY3RzKCktPmNsaXBwZWRPdmVyZmxvd1JlY3QpOwogCiAgICAgICAgIGxheWVyKCktPnJl
bW92ZU9ubHlUaGlzTGF5ZXIoUmVuZGVyTGF5ZXI6OkxheWVyQ2hhbmdlVGltaW5nOjpTdHlsZUNo
YW5nZSk7IC8vIGNhbGxzIGRlc3Ryb3lMYXllcigpIHdoaWNoIGNsZWFycyBtX2xheWVyCiAgICAg
ICAgIGlmIChzX3dhc0Zsb2F0aW5nICYmIGlzRmxvYXRpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCBi
Yzk5MDliNmZkNjQuLmYwNjU0ZGI0NGVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcApAQCAtMzYxLDcgKzM2MSw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xs
UG9zaXRpb24mIHBvc2l0aW9uKQogICAgIH0KIAogICAgIEZyYW1lJiBmcmFtZSA9IHJlbmRlcmVy
LmZyYW1lKCk7Ci0gICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9
IHJlbmRlcmVyLmNvbnRhaW5lckZvclJlcGFpbnQoKTsKKyAgICBhdXRvKiByZXBhaW50Q29udGFp
bmVyID0gcmVuZGVyZXIuY29udGFpbmVyRm9yUmVwYWludCgpLnJlbmRlcmVyOwogICAgIC8vIFRo
ZSBjYXJldCByZWN0IG5lZWRzIHRvIGJlIGludmFsaWRhdGVkIGFmdGVyIHNjcm9sbGluZwogICAg
IGZyYW1lLnNlbGVjdGlvbigpLnNldENhcmV0UmVjdE5lZWRzVXBkYXRlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggNWVhNzNlY2UzYTY5Li5lYWVi
NDllN2Y5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBA
IC04NTcsNyArODU3LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJPYmplY3Q6OnBhaW50aW5nUm9vdFJl
Y3QoTGF5b3V0UmVjdCYgdG9wTGV2ZWxSZWN0KQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVJl
bmRlckxheWVyTW9kZWxPYmplY3QqIFJlbmRlck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCgp
IGNvbnN0CitSZW5kZXJPYmplY3Q6OlJlcGFpbnRDb250YWluZXJTdGF0dXMgUmVuZGVyT2JqZWN0
Ojpjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3QKIHsKICAgICBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyID0gbnVsbHB0cjsKIApAQCAtODcyLDcgKzg3Miw3IEBAIFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIFJlbmRlck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCgp
IGNvbnN0CiAgICAgICAgIGlmIChSZW5kZXJMYXllciogcGFyZW50TGF5ZXIgPSBlbmNsb3NpbmdM
YXllcigpKSB7CiAgICAgICAgICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nRmlsdGVyTGF5ZXIg
PSBwYXJlbnRMYXllci0+ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoKTsKICAgICAgICAgICAgIGlmIChl
bmNsb3NpbmdGaWx0ZXJMYXllcikKLSAgICAgICAgICAgICAgICByZXR1cm4gJmVuY2xvc2luZ0Zp
bHRlckxheWVyLT5yZW5kZXJlcigpOworICAgICAgICAgICAgICAgIHJldHVybiB7IGZhbHNlLCAm
ZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJlbmRlcmVyKCkgfTsKICAgICAgICAgfQogICAgIH0KIApA
QCAtODg3LDcgKzg4Nyw3IEBAIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIFJlbmRlck9iamVjdDo6
Y29udGFpbmVyRm9yUmVwYWludCgpIGNvbnN0CiAgICAgICAgIGlmICghcmVwYWludENvbnRhaW5l
ckZyYWdtZW50ZWRGbG93IHx8IHJlcGFpbnRDb250YWluZXJGcmFnbWVudGVkRmxvdyAhPSBwYXJl
bnRSZW5kZXJGcmFnbWVudGVkRmxvdykKICAgICAgICAgICAgIHJlcGFpbnRDb250YWluZXIgPSBw
YXJlbnRSZW5kZXJGcmFnbWVudGVkRmxvdzsKICAgICB9Ci0gICAgcmV0dXJuIHJlcGFpbnRDb250
YWluZXI7CisgICAgcmV0dXJuIHsgZmFsc2UsIHJlcGFpbnRDb250YWluZXIgfTsKIH0KIAogdm9p
ZCBSZW5kZXJPYmplY3Q6OnByb3BhZ2F0ZVJlcGFpbnRUb1BhcmVudFdpdGhPdXRsaW5lQXV0b0lm
TmVlZGVkKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlcGFpbnRDb250YWluZXIsIGNv
bnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KSBjb25zdApAQCAtOTcxLDggKzk3MSw5IEBAIHZv
aWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50KCkgY29uc3QKICAgICBpZiAodmlldy5wcmludGluZygp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWludCgpOwotICAgIHJlcGFpbnRVc2luZ0NvbnRh
aW5lcihyZXBhaW50Q29udGFpbmVyLCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBh
aW50Q29udGFpbmVyKSk7CisgICAgYXV0byByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9y
UmVwYWludCgpOworICAgIGlmICghcmVwYWludENvbnRhaW5lci5mdWxsUmVwYWludElzU2NoZWR1
bGVkKQorICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lci5yZW5k
ZXJlciwgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lci5yZW5k
ZXJlcikpOwogfQogCiB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFJlY3RhbmdsZShjb25zdCBM
YXlvdXRSZWN0JiByLCBib29sIHNob3VsZENsaXBUb0xheWVyKSBjb25zdApAQCAtOTkwLDggKzk5
MSw5IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJl
Y3QmIHIsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIpCiAgICAgLy8gcmVwYWludCBjb250YWluZXJz
LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMDgKICAgICBkaXJ0
eVJlY3QubW92ZSh2aWV3LmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXREZWx0YSgp
KTsKIAotICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBjb250
YWluZXJGb3JSZXBhaW50KCk7Ci0gICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250
YWluZXIsIGNvbXB1dGVSZWN0Rm9yUmVwYWludChkaXJ0eVJlY3QsIHJlcGFpbnRDb250YWluZXIp
LCBzaG91bGRDbGlwVG9MYXllcik7CisgICAgYXV0byByZXBhaW50Q29udGFpbmVyID0gY29udGFp
bmVyRm9yUmVwYWludCgpOworICAgIGlmICghcmVwYWludENvbnRhaW5lci5mdWxsUmVwYWludElz
U2NoZWR1bGVkKQorICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5l
ci5yZW5kZXJlciwgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGRpcnR5UmVjdCwgcmVwYWludENvbnRh
aW5lci5yZW5kZXJlciksIHNob3VsZENsaXBUb0xheWVyKTsKIH0KIAogdm9pZCBSZW5kZXJPYmpl
Y3Q6OnJlcGFpbnRTbG93UmVwYWludE9iamVjdCgpIGNvbnN0CkBAIC0xMDA0LDcgKzEwMDYsNyBA
QCB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFNsb3dSZXBhaW50T2JqZWN0KCkgY29uc3QKICAg
ICBpZiAodmlldy5wcmludGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWlu
dCgpOworICAgIGF1dG8qIHJlcGFpbnRDb250YWluZXIgPSBjb250YWluZXJGb3JSZXBhaW50KCku
cmVuZGVyZXI7CiAKICAgICBib29sIHNob3VsZENsaXBUb0xheWVyID0gdHJ1ZTsKICAgICBJbnRS
ZWN0IHJlcGFpbnRSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmlu
ZGV4IGI1YWIyNjc0NDhhMS4uMWQ3MjUwMmQ0MjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCkBAIC02MzAsNyArNjMwLDExIEBAIHB1YmxpYzoKIAogICAgIC8vIFJl
dHVybiB0aGUgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCBpbiB0aGUgY29udGFpbmVyIGNoYWluIHdo
aWNoIGlzIHJlc3BvbnNpYmxlIGZvciBwYWludGluZyB0aGlzIG9iamVjdCwgb3IgbnVsbHB0cgog
ICAgIC8vIGlmIHBhaW50aW5nIGlzIHJvb3QtcmVsYXRpdmUuIFRoaXMgaXMgdGhlIGNvbnRhaW5l
ciB0aGF0IHNob3VsZCBiZSBwYXNzZWQgdG8gdGhlICdmb3JSZXBhaW50JyBmdW5jdGlvbnMuCi0g
ICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogY29udGFpbmVyRm9yUmVwYWludCgpIGNvbnN0Owor
ICAgIHN0cnVjdCBSZXBhaW50Q29udGFpbmVyU3RhdHVzIHsKKyAgICAgICAgYm9vbCBmdWxsUmVw
YWludElzU2NoZWR1bGVkIHsgZmFsc2UgfTsgLy8gRWl0aGVyIHRoZSByZXBhaW50IGNvbnRhaW5l
ciBvciBhIGxheWVyIGluLWJldHdlZW4gaGFzIGFsZWFkeSBiZWVuIHNjaGVkdWxlZCBmb3IgZnVs
bCByZXBhaW50LgorICAgICAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZW5kZXJl
ciB7IG51bGxwdHIgfTsKKyAgICB9OworICAgIFJlcGFpbnRDb250YWluZXJTdGF0dXMgY29udGFp
bmVyRm9yUmVwYWludCgpIGNvbnN0OwogICAgIC8vIEFjdHVhbGx5IGRvIHRoZSByZXBhaW50IG9m
IHJlY3QgciBmb3IgdGhpcyBvYmplY3Qgd2hpY2ggaGFzIGJlZW4gY29tcHV0ZWQgaW4gdGhlIGNv
b3JkaW5hdGUgc3BhY2UKICAgICAvLyBvZiByZXBhaW50Q29udGFpbmVyLiBJZiByZXBhaW50Q29u
dGFpbmVyIGlzIG51bGxwdHIsIHJlcGFpbnQgdmlhIHRoZSB2aWV3LgogICAgIHZvaWQgcmVwYWlu
dFVzaW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGNvbnN0IExheW91dFJlY3QmLCBib29sIHNob3VsZENsaXBUb0xheWVyID0gdHJ1ZSkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0
aW9uSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5m
by5jcHAKaW5kZXggY2RiOGU0ZmZjYzIxLi4xNmIzMmFmMjgwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5jcHAKQEAgLTMyLDcgKzMyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZTo6UmVuZGVy
U2VsZWN0aW9uSW5mb0Jhc2UoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICA6IG1fcmVuZGVy
ZXIocmVuZGVyZXIpCi0gICAgLCBtX3JlcGFpbnRDb250YWluZXIocmVuZGVyZXIuY29udGFpbmVy
Rm9yUmVwYWludCgpKQorICAgICwgbV9yZXBhaW50Q29udGFpbmVyKHJlbmRlcmVyLmNvbnRhaW5l
ckZvclJlcGFpbnQoKS5yZW5kZXJlcikKICAgICAsIG1fc3RhdGUocmVuZGVyZXIuc2VsZWN0aW9u
U3RhdGUoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTZWxlY3Rpb25JbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0
aW9uSW5mby5oCmluZGV4IDVhNDJhNGE1NGJjNS4uNDI2OTAzMGJiMzNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmgKQEAgLTM0LDE0ICszNCwx
NCBAQCBjbGFzcyBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZShSZW5kZXJPYmpl
Y3QmIHJlbmRlcmVyKTsKLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Q29udGFpbmVyOyB9CisgICAgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIG1f
cmVwYWludENvbnRhaW5lcjsgfQogICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIHJl
cGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QpOwogCiAgICAgUmVu
ZGVyT2JqZWN0JiBtX3JlbmRlcmVyOwotICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIG1fcmVw
YWludENvbnRhaW5lcjsKKyAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBtX3JlcGFp
bnRDb250YWluZXI7CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0
ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IGM1
NjM4NDkwZmFjYS4uMDMxYjVjZTRlOWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwCkBAIC00NDgsNyArNDQ4LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50Um9v
dENvbnRlbnRzKCkKIAogICAgIC8vIEFsd2F5cyB1c2UgbGF5b3V0T3ZlcmZsb3dSZWN0KCkgdG8g
Zml4IHJkYXI6Ly9wcm9ibGVtLzI3MTgyMjY3LgogICAgIC8vIFRoaXMgc2hvdWxkIGJlIGNsZWFu
ZWQgdXAgdmlhIHdlYmtpdC5vcmcvYi8xNTk5MTMgYW5kIHdlYmtpdC5vcmcvYi8xNTk5MTQuCi0g
ICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5lckZv
clJlcGFpbnQoKTsKKyAgICBhdXRvKiByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVw
YWludCgpLnJlbmRlcmVyOwogICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFp
bmVyLCBjb21wdXRlUmVjdEZvclJlcGFpbnQobGF5b3V0T3ZlcmZsb3dSZWN0KCksIHJlcGFpbnRD
b250YWluZXIpKTsKIH0KIAotLSAKMi4zMi4wIChBcHBsZSBHaXQtMTMyKQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>