<?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>190305</bug_id>
          
          <creation_ts>2018-10-04 23:05:21 -0700</creation_ts>
          <short_desc>Web Inspector: allow multiple canvases to be recorded at the same time</short_desc>
          <delta_ts>2018-10-09 10:30:26 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://devinrousso.com/demo/WebKit/canvas.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>173807</blocked>
    
    <blocked>175485</blocked>
    
    <blocked>190306</blocked>
    
    <blocked>190403</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1466622</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-04 23:05:21 -0700</bug_when>
    <thetext>There is no real reason why we can&apos;t support recording multiple canvases at the same time.  The backend is able to handle it without any issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466637</commentid>
    <comment_count>1</comment_count>
      <attachid>351661</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-05 00:53:05 -0700</bug_when>
    <thetext>Created attachment 351661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467143</commentid>
    <comment_count>2</comment_count>
      <attachid>351661</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2018-10-08 12:30:12 -0700</bug_when>
    <thetext>Comment on attachment 351661
Patch

r=me

Is it possible to add a test case that starts multiple canvas recordings, triggers frames then waits for all to be stopped?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467222</commentid>
    <comment_count>3</comment_count>
      <attachid>351822</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-08 15:13:23 -0700</bug_when>
    <thetext>Created attachment 351822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467276</commentid>
    <comment_count>4</comment_count>
      <attachid>351822</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-08 17:14:59 -0700</bug_when>
    <thetext>Comment on attachment 351822
Patch

Clearing flags on attachment: 351822

Committed r236952: &lt;https://trac.webkit.org/changeset/236952&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467277</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-08 17:15:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467278</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-08 17:15:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/45111502&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467401</commentid>
    <comment_count>7</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-10-09 08:29:55 -0700</bug_when>
    <thetext>It looks like https://trac.webkit.org/changeset/236952/webkit

Has caused the test inspector/canvas/shaderProgram-add-remove-webgl.html
to time out constantly.

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=inspector%2Fcanvas%2FshaderProgram-add-remove-webgl.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351661</attachid>
            <date>2018-10-05 00:53:05 -0700</date>
            <delta_ts>2018-10-08 15:13:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190305-20181005005304.patch</filename>
            <type>text/plain</type>
            <size>44139</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDhhMjhjOWVhOGU5ZGE0ZTc0Nzg5YjJlMmFhZmUw
OTBlY2Q4MGVmM2EuLmE0N2U5OTBmZmYzOGNjZmRmNWVhZDJlMmQ2M2MzNTZkZTk0NjRiMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTA1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
bGxvdyBtdWx0aXBsZSBjYW52YXNlcyB0byBiZSByZWNvcmRlZCBhdCB0aGUgc2FtZSB0aW1lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAzMDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCB0aGUg
bG9naWMgZm9yIG1haW50YWluaW5nIHdoZXRoZXIgYSBjYW52YXMgaXMgYWN0aXZlbHkgcmVjb3Jk
aW5nIGZyb20KKyAgICAgICAgYFdJLkNhbnZhc01hbmFnZXJgIHRvIGBXSS5DYW52YXNgLCBtZWFu
aW5nIHRoYXQgZWFjaCBjYW52YXMgY2FuIG5vdyByZWNvcmQgaW5kZXBlbmRlbnRseSBvZgorICAg
ICAgICBldmVyeSBvdGhlciBjYW52YXMgaW4gdGhlIHBhZ2UuIElmIG11bHRpcGxlIHJlY29yZGlu
Z3MgYXJlIGFsbCBmaW5pc2hlZCBzaW11bHRhbmVvdXNseSwgb25seQorICAgICAgICBzaG93IHRo
ZSBmaXJzdCBvbmUgdG8gYmUgcmVjaWV2ZWQgYnkgdGhlIGZyb250ZW5kLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgorICAgICAgICAoV0ku
Q2FudmFzTWFuYWdlcik6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5yZWNv
cmRpbmdQcm9ncmVzcyk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5yZWNv
cmRpbmdGaW5pc2hlZCk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5wcm9n
cmFtQ3JlYXRlZCk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5wcm9ncmFt
RGVsZXRlZCk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5fcmVtb3ZlQ2Fu
dmFzKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLl9tYWluUmVzb3VyY2VE
aWRDaGFuZ2UpOgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuZ2V0IHJlY29y
ZGluZ0NhbnZhcyk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlw
ZS5zdGFydFJlY29yZGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnBy
b3RvdHlwZS5zdG9wUmVjb3JkaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc01hbmFn
ZXIucHJvdG90eXBlLl9kaXNwYXRjaFNoYWRlclByb2dyYW1SZW1vdmVkKTogRGVsZXRlZC4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qczoKKyAgICAgICAgKFdJLkNh
bnZhcy5wcm90b3R5cGUuZ2V0IHJlY29yZGluZ0ZyYW1lQ291bnQpOiBBZGRlZC4KKyAgICAgICAg
KFdJLkNhbnZhcy5wcm90b3R5cGUuZ2V0IHJlY29yZGluZ0J1ZmZlclVzZWQpOiBBZGRlZC4KKyAg
ICAgICAgKFdJLkNhbnZhcy5wcm90b3R5cGUuZ2V0IHJlY29yZGluZ0FjdGl2ZSk6IEFkZGVkLgor
ICAgICAgICAoV0kuQ2FudmFzLnByb3RvdHlwZS5nZXQgaXNSZWNvcmRpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoV0kuQ2FudmFzLnByb3RvdHlwZS5zdGFydFJlY29yZGluZyk6IEFkZGVkLgorICAg
ICAgICAoV0kuQ2FudmFzLnByb3RvdHlwZS5zdG9wUmVjb3JkaW5nKTogQWRkZWQuCisgICAgICAg
IChXSS5DYW52YXMucHJvdG90eXBlLnJlY29yZGluZ1Byb2dyZXNzKTogQWRkZWQuCisgICAgICAg
IChXSS5DYW52YXMucHJvdG90eXBlLnJlY29yZGluZ0ZpbmlzaGVkKTogQWRkZWQuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzOgorICAgICAg
ICAoV0kuQ2FudmFzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAg
KFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChX
SS5DYW52YXNUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuX3JlY29yZGluZ0ltcG9ydGVkT3JTdG9w
cGVkKToKKyAgICAgICAgKFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxl
U3BhY2UpOgorICAgICAgICAoV0kuQ2FudmFzVGFiQ29udGVudFZpZXcpOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzczoKKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJl
Y29yZGluZy1hY3RpdmUpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIpOiBB
ZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlKTog
QWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRs
ZSk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpob3ZlciwgLnJlY29yZGluZy1hY3RpdmUp
ID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1h
Y3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0
b3AuZGlzYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIg
PiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVk
KTpob3Zlcik6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5u
YXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmFj
dGl2ZSk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWUpOiBBZGRl
ZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJldmlldyk6IEFkZGVkLgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5n
LWFjdGl2ZSk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlcik6IEFkZGVkLgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOiBBZGRl
ZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzLmlzLXJlY29yZGluZyk6IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5pcy1yZWNvcmRpbmcgPiBoZWFkZXIp
OiBEZWxldGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMuaXMtcmVjb3JkaW5nID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSk6
IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhcy5pcy1yZWNvcmRpbmcgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxl
KTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzLmlzLXJlY29yZGluZyA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+
IC5pdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhvdmVyLCAuaXMtcmVjb3JkaW5nKSA+IGhl
YWRlciA+IC5uYXZpZ2F0aW9uLWJhcik6IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLmlzLXJlY29yZGluZykg
PiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNh
YmxlZCk6IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhczpub3QoLmlzLXJlY29yZGluZykgPiBoZWFkZXIgPiAubmF2aWdh
dGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTpob3Zlcik6
IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhczpub3QoLmlzLXJlY29yZGluZykgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTphY3RpdmUpOiBEZWxl
dGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMuaXMtcmVjb3JkaW5nID4gLnByb2dyZXNzLXZpZSk6IERlbGV0ZWQuCisgICAgICAg
ICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5pcy1y
ZWNvcmRpbmcgPiAucHJldmlldyk6IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5pcy1yZWNvcmRpbmcpOiBEZWxldGVk
LgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMuaXMtcmVjb3JkaW5nID4gaGVhZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLmlzLXJlY29yZGluZyA+
IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOiBEZWxldGVkLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNhbnZh
c0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5DYW52YXNDb250
ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZp
ZXcucHJvdG90eXBlLl90b2dnbGVSZWNvcmRpbmcpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVu
dFZpZXcucHJvdG90eXBlLl9yZWNvcmRpbmdQcm9ncmVzcyk6CisgICAgICAgIChXSS5DYW52YXND
b250ZW50Vmlldy5wcm90b3R5cGUuX3JlY29yZGluZ1N0b3BwZWQpOgorICAgICAgICAoV0kuQ2Fu
dmFzQ29udGVudFZpZXcucHJvdG90eXBlLl9zaGFkZXJQcm9ncmFtQWRkZWQpOgorICAgICAgICAo
V0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLl9zaGFkZXJQcm9ncmFtUmVtb3ZlZCk6Cisg
ICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuX3VwZGF0ZVJlY29yZE5hdmln
YXRpb25JdGVtKToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBk
YXRlUHJvZ3Jlc3NWaWV3KToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
U2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0kuQ2FudmFzU2lkZWJhclBhbmVsKToKKyAgICAg
ICAgKFdJLkNhbnZhc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuc2V0IGNhbnZhcyk6CisgICAgICAg
IChXSS5DYW52YXNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl90b2dnbGVSZWNvcmRpbmcpOgorICAg
ICAgICAoV0kuQ2FudmFzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fdXBkYXRlUmVjb3JkTmF2aWdh
dGlvbkl0ZW0pOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUcmVlRWxl
bWVudC5qczoKKyAgICAgICAgKFdJLkNhbnZhc1RyZWVFbGVtZW50KToKKyAgICAgICAgKFdJLkNh
bnZhc1RyZWVFbGVtZW50LnByb3RvdHlwZS5fdXBkYXRlU3RhdHVzKToKKwogMjAxOC0xMC0wNCAg
TWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogUkVHUkVTU0lPTiAocjIzNjc2Nik6IFN0b3JhZ2UgdGFiIG5vIGxvbmdlciB1cGRhdGVzIGFm
dGVyIG1haW4gZnJhbWUgbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMK
aW5kZXggNTQ3ZWIyN2M1YjE3OTk5ZTc3NGI2OGIxMTkzMzMwNjcyYThhZThmNS4uMGMyMmM0Yjc3
ODE4Y2FjZTIwNjU0NWE0ODg3OWRmNmQ0MjBiMzQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNN
YW5hZ2VyLmpzCkBAIC0zNCw5ICszNCw2IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52
YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZp
ZXJNYXAgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1h
cCA9IG5ldyBNYXA7CiAKLSAgICAgICAgdGhpcy5fcmVjb3JkaW5nQ2FudmFzID0gbnVsbDsKLSAg
ICAgICAgdGhpcy5fcmVjb3JkaW5nRnJhbWVNYXAgPSBuZXcgTWFwOwotCiAgICAgICAgIGlmICh3
aW5kb3cuQ2FudmFzQWdlbnQpCiAgICAgICAgICAgICBDYW52YXNBZ2VudC5lbmFibGUoKTsKICAg
ICB9CkBAIC01Myw4ICs1MCw2IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5h
Z2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJldHVybiBbLi4udGhpcy5fc2hhZGVyUHJv
Z3JhbUlkZW50aWZpZXJNYXAudmFsdWVzKCldOwogICAgIH0KIAotICAgIGdldCByZWNvcmRpbmdD
YW52YXMoKSB7IHJldHVybiB0aGlzLl9yZWNvcmRpbmdDYW52YXM7IH0KLQogICAgIGltcG9ydFJl
Y29yZGluZygpCiAgICAgewogICAgICAgICBXSS5sb2FkRGF0YUZyb21GaWxlKChkYXRhLCBmaWxl
bmFtZSkgPT4gewpAQCAtODQsNDMgKzc5LDYgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENh
bnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAg
c3RhcnRSZWNvcmRpbmcoY2FudmFzLCBzaW5nbGVGcmFtZSkKLSAgICB7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCF0aGlzLl9yZWNvcmRpbmdDYW52YXMsICJSZWNvcmRpbmcgYWxyZWFkeSBzdGFy
dGVkLiIpOwotICAgICAgICBpZiAodGhpcy5fcmVjb3JkaW5nQ2FudmFzKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3JlY29yZGluZ0NhbnZhcyA9IGNhbnZhczsKLQotICAg
ICAgICBDYW52YXNBZ2VudC5zdGFydFJlY29yZGluZyhjYW52YXMuaWRlbnRpZmllciwgc2luZ2xl
RnJhbWUsIChlcnJvcikgPT4gewotICAgICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAg
ICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7Ci0gICAgICAgICAgICAgICAgdGhpcy5fcmVjb3Jk
aW5nQ2FudmFzID0gbnVsbDsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQuUmVjb3JkaW5nU3RhcnRlZCwge2NhbnZhc30pOwotICAgICAgICB9KTsKLSAg
ICB9Ci0KLSAgICBzdG9wUmVjb3JkaW5nKCkKLSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHRoaXMuX3JlY29yZGluZ0NhbnZhcywgIk5vIHJlY29yZGluZyBzdGFydGVkLiIpOwotICAgICAg
ICBpZiAoIXRoaXMuX3JlY29yZGluZ0NhbnZhcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBsZXQgY2FudmFzID0gdGhpcy5fcmVjb3JkaW5nQ2FudmFzOwotCi0gICAgICAgIENhbnZh
c0FnZW50LnN0b3BSZWNvcmRpbmcoY2FudmFzLmlkZW50aWZpZXIsIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgaWYgKCFlcnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwotICAgICAgICAgICAgdGhpcy5fcmVjb3JkaW5nQ2Fu
dmFzID0gbnVsbDsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJ
LkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwge2NhbnZhcywgcmVjb3JkaW5n
OiBudWxsfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQogICAgIGNhbnZhc0FkZGVkKGNhbnZhc1Bh
eWxvYWQpCiAgICAgewogICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5DYW52YXNPYnNlcnZlci4K
QEAgLTE3OCwxOSArMTM2LDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFn
ZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgbGV0IGV4aXN0aW5nRnJhbWVzID0gdGhpcy5fcmVjb3JkaW5nRnJh
bWVNYXAuZ2V0KGNhbnZhc0lkZW50aWZpZXIpOwotICAgICAgICBpZiAoIWV4aXN0aW5nRnJhbWVz
KSB7Ci0gICAgICAgICAgICBleGlzdGluZ0ZyYW1lcyA9IFtdOwotICAgICAgICAgICAgdGhpcy5f
cmVjb3JkaW5nRnJhbWVNYXAuc2V0KGNhbnZhc0lkZW50aWZpZXIsIGV4aXN0aW5nRnJhbWVzKTsK
LSAgICAgICAgfQotCi0gICAgICAgIGV4aXN0aW5nRnJhbWVzLnB1c2goLi4uZnJhbWVzUGF5bG9h
ZC5tYXAoV0kuUmVjb3JkaW5nRnJhbWUuZnJvbVBheWxvYWQpKTsKLQotICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1By
b2dyZXNzLCB7Ci0gICAgICAgICAgICBjYW52YXMsCi0gICAgICAgICAgICBmcmFtZUNvdW50OiBl
eGlzdGluZ0ZyYW1lcy5sZW5ndGgsCi0gICAgICAgICAgICBidWZmZXJVc2VkLAotICAgICAgICB9
KTsKKyAgICAgICAgY2FudmFzLnJlY29yZGluZ1Byb2dyZXNzKGZyYW1lc1BheWxvYWQsIGJ1ZmZl
clVzZWQpOwogICAgIH0KIAogICAgIHJlY29yZGluZ0ZpbmlzaGVkKGNhbnZhc0lkZW50aWZpZXIs
IHJlY29yZGluZ1BheWxvYWQpCkBAIC0xOTksMjQgKzE0NSwxMCBAQCBXSS5DYW52YXNNYW5hZ2Vy
ID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgICAgIGxldCBj
YW52YXMgPSB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmdldChjYW52YXNJZGVudGlmaWVyKTsK
ICAgICAgICAgY29uc29sZS5hc3NlcnQoY2FudmFzKTsKLQotICAgICAgICBsZXQgZnJvbUNvbnNv
bGUgPSBjYW52YXMgIT09IHRoaXMuX3JlY29yZGluZ0NhbnZhczsKLSAgICAgICAgaWYgKCFmcm9t
Q29uc29sZSkKLSAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZ0NhbnZhcyA9IG51bGw7Ci0KICAg
ICAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbGV0IGZy
YW1lcyA9IHRoaXMuX3JlY29yZGluZ0ZyYW1lTWFwLnRha2UoY2FudmFzSWRlbnRpZmllcik7Ci0g
ICAgICAgIGxldCByZWNvcmRpbmcgPSByZWNvcmRpbmdQYXlsb2FkID8gV0kuUmVjb3JkaW5nLmZy
b21QYXlsb2FkKHJlY29yZGluZ1BheWxvYWQsIGZyYW1lcykgOiBudWxsOwotICAgICAgICBpZiAo
cmVjb3JkaW5nKSB7Ci0gICAgICAgICAgICByZWNvcmRpbmcuc291cmNlID0gY2FudmFzOwotICAg
ICAgICAgICAgcmVjb3JkaW5nLmNyZWF0ZURpc3BsYXlOYW1lKHJlY29yZGluZ1BheWxvYWQubmFt
ZSk7Ci0KLSAgICAgICAgICAgIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uLmFkZChyZWNvcmRp
bmcpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB7Y2FudmFzLCByZWNvcmRp
bmcsIGZyb21Db25zb2xlfSk7CisgICAgICAgIGNhbnZhcy5yZWNvcmRpbmdGaW5pc2hlZChyZWNv
cmRpbmdQYXlsb2FkKTsKICAgICB9CiAKICAgICBleHRlbnNpb25FbmFibGVkKGNhbnZhc0lkZW50
aWZpZXIsIGV4dGVuc2lvbikKQEAgLTI0Niw4ICsxNzgsNiBAQCBXSS5DYW52YXNNYW5hZ2VyID0g
Y2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9zaGFk
ZXJQcm9ncmFtSWRlbnRpZmllck1hcC5zZXQocHJvZ3JhbS5pZGVudGlmaWVyLCBwcm9ncmFtKTsK
IAogICAgICAgICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uYWRkKHByb2dyYW0pOwot
Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFnZXIu
RXZlbnQuU2hhZGVyUHJvZ3JhbUFkZGVkLCB7cHJvZ3JhbX0pOwogICAgIH0KIAogICAgIHByb2dy
YW1EZWxldGVkKHByb2dyYW1JZGVudGlmaWVyKQpAQCAtMjYwLDE4ICsxOTAsMTQgQEAgV0kuQ2Fu
dmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAg
ICAgICAgIHJldHVybjsKIAogICAgICAgICBwcm9ncmFtLmNhbnZhcy5zaGFkZXJQcm9ncmFtQ29s
bGVjdGlvbi5yZW1vdmUocHJvZ3JhbSk7Ci0KLSAgICAgICAgdGhpcy5fZGlzcGF0Y2hTaGFkZXJQ
cm9ncmFtUmVtb3ZlZChwcm9ncmFtKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCiAKICAgICBf
cmVtb3ZlQ2FudmFzKGNhbnZhcykKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHByb2dyYW0gb2Yg
Y2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uKSB7CisgICAgICAgIGZvciAobGV0IHByb2dy
YW0gb2YgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uKQogICAgICAgICAgICAgdGhpcy5f
c2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuZGVsZXRlKHByb2dyYW0uaWRlbnRpZmllcik7Ci0g
ICAgICAgICAgICB0aGlzLl9kaXNwYXRjaFNoYWRlclByb2dyYW1SZW1vdmVkKHByb2dyYW0pOwot
ICAgICAgICB9CiAKICAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZhcy5yZWNvcmRp
bmdDb2xsZWN0aW9uKSB7CiAgICAgICAgICAgICByZWNvcmRpbmcuc291cmNlID0gbnVsbDsKQEAg
LTI5NSwyMCArMjIxLDEwIEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2Vy
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVy
TWFwLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuY2xlYXIoKTsK
ICAgICB9Ci0KLSAgICBfZGlzcGF0Y2hTaGFkZXJQcm9ncmFtUmVtb3ZlZChwcm9ncmFtKQotICAg
IHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdl
ci5FdmVudC5TaGFkZXJQcm9ncmFtUmVtb3ZlZCwge3Byb2dyYW19KTsKLSAgICB9CiB9OwogCiBX
SS5DYW52YXNNYW5hZ2VyLkV2ZW50ID0gewogICAgIENhbnZhc0FkZGVkOiAiY2FudmFzLW1hbmFn
ZXItY2FudmFzLXdhcy1hZGRlZCIsCiAgICAgQ2FudmFzUmVtb3ZlZDogImNhbnZhcy1tYW5hZ2Vy
LWNhbnZhcy13YXMtcmVtb3ZlZCIsCiAgICAgUmVjb3JkaW5nSW1wb3J0ZWQ6ICJjYW52YXMtbWFu
YWdlci1yZWNvcmRpbmctaW1wb3J0ZWQiLAotICAgIFJlY29yZGluZ1N0YXJ0ZWQ6ICJjYW52YXMt
bWFuYWdlci1yZWNvcmRpbmctc3RhcnRlZCIsCi0gICAgUmVjb3JkaW5nUHJvZ3Jlc3M6ICJjYW52
YXMtbWFuYWdlci1yZWNvcmRpbmctcHJvZ3Jlc3MiLAotICAgIFJlY29yZGluZ1N0b3BwZWQ6ICJj
YW52YXMtbWFuYWdlci1yZWNvcmRpbmctc3RvcHBlZCIsCi0gICAgU2hhZGVyUHJvZ3JhbUFkZGVk
OiAiY2FudmFzLW1hbmFnZXItc2hhZGVyLXByb2dyYW0tYWRkZWQiLAotICAgIFNoYWRlclByb2dy
YW1SZW1vdmVkOiAiY2FudmFzLW1hbmFnZXItc2hhZGVyLXByb2dyYW0tcmVtb3ZlZCIsCiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0Nh
bnZhcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52
YXMuanMKaW5kZXggNGVmZGM1MTJlYjg1YmE2NGZjMzRjZDViMTA2NTZlZWZiMWRiNWRjNC4uNGJi
ZWI0YTFiZjE3OTFlNjJiNWM2Mzk1NWFiMDlmYzQ4MTYxOTRkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCkBAIC00OCw2
ICs0OCwxMCBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyID0gMTsKIAogICAgICAg
ICB0aGlzLl9yZXF1ZXN0Tm9kZVByb21pc2UgPSBudWxsOworCisgICAgICAgIHRoaXMuX3JlY29y
ZGluZ1N0YXRlID0gV0kuQ2FudmFzLlJlY29yZGluZ1N0YXRlLkluYWN0aXZlOworICAgICAgICB0
aGlzLl9yZWNvcmRpbmdGcmFtZXMgPSBbXTsKKyAgICAgICAgdGhpcy5fcmVjb3JkaW5nQnVmZmVy
VXNlZCA9IDA7CiAgICAgfQogCiAgICAgLy8gU3RhdGljCkBAIC0xMTcsMTAgKzEyMSwxMiBAQCBX
SS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICBnZXQgYmFja3Ry
YWNlKCkgeyByZXR1cm4gdGhpcy5fYmFja3RyYWNlOyB9CiAgICAgZ2V0IHNoYWRlclByb2dyYW1D
b2xsZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5fc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb247IH0KICAg
ICBnZXQgcmVjb3JkaW5nQ29sbGVjdGlvbigpIHsgcmV0dXJuIHRoaXMuX3JlY29yZGluZ0NvbGxl
Y3Rpb247IH0KKyAgICBnZXQgcmVjb3JkaW5nRnJhbWVDb3VudCgpIHsgcmV0dXJuIHRoaXMuX3Jl
Y29yZGluZ0ZyYW1lcy5sZW5ndGg7IH0KKyAgICBnZXQgcmVjb3JkaW5nQnVmZmVyVXNlZCgpIHsg
cmV0dXJuIHRoaXMuX3JlY29yZGluZ0J1ZmZlclVzZWQ7IH0KIAotICAgIGdldCBpc1JlY29yZGlu
ZygpCisgICAgZ2V0IHJlY29yZGluZ0FjdGl2ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gV0ku
Y2FudmFzTWFuYWdlci5yZWNvcmRpbmdDYW52YXMgPT09IHRoaXM7CisgICAgICAgIHJldHVybiB0
aGlzLl9yZWNvcmRpbmdTdGF0ZSAhPT0gV0kuQ2FudmFzLlJlY29yZGluZ1N0YXRlLkluYWN0aXZl
OwogICAgIH0KIAogICAgIGdldCBtZW1vcnlDb3N0KCkKQEAgLTI1Nyw2ICsyNjMsMzAgQEAgV0ku
Q2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIH0pOwogICAg
IH0KIAorICAgIHN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZyYW1lKQorICAgIHsKKyAgICAgICAgQ2Fu
dmFzQWdlbnQuc3RhcnRSZWNvcmRpbmcodGhpcy5faWRlbnRpZmllciwgc2luZ2xlRnJhbWUsIChl
cnJvcikgPT4geworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgY29u
c29sZS5lcnJvcihlcnJvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICB0aGlzLl9yZWNvcmRpbmdTdGF0ZSA9IFdJLkNhbnZhcy5SZWNvcmRp
bmdTdGF0ZS5BY3RpdmU7CisgICAgICAgICAgICB0aGlzLl9yZWNvcmRpbmdGcmFtZXMgPSBbXTsK
KyAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZ0J1ZmZlclVzZWQgPSAwOworCisgICAgICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5n
U3RhcnRlZCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHN0b3BSZWNvcmRpbmcoKQorICAg
IHsKKyAgICAgICAgQ2FudmFzQWdlbnQuc3RvcFJlY29yZGluZyh0aGlzLl9pZGVudGlmaWVyLCAo
ZXJyb3IpID0+IHsKKyAgICAgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgICAgICBjb25z
b2xlLmVycm9yKGVycm9yKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgc2F2ZUlkZW50aXR5
VG9Db29raWUoY29va2llKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2Nzc0NhbnZhc05hbWUp
CkBAIC0yODcsNiArMzE3LDM4IEBAIFdJLkNhbnZhcyA9IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJ
Lk9iamVjdAogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXMu
RXZlbnQuQ1NTQ2FudmFzQ2xpZW50Tm9kZXNDaGFuZ2VkKTsKICAgICB9CiAKKyAgICByZWNvcmRp
bmdQcm9ncmVzcyhmcmFtZXNQYXlsb2FkLCBidWZmZXJVc2VkKQorICAgIHsKKyAgICAgICAgLy8g
Q2FsbGVkIGZyb20gV0kuQ2FudmFzTWFuYWdlci4KKworICAgICAgICB0aGlzLl9yZWNvcmRpbmdG
cmFtZXMucHVzaCguLi5mcmFtZXNQYXlsb2FkLm1hcChXSS5SZWNvcmRpbmdGcmFtZS5mcm9tUGF5
bG9hZCkpOworCisgICAgICAgIHRoaXMuX3JlY29yZGluZ0J1ZmZlclVzZWQgPSBidWZmZXJVc2Vk
OworCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhcy5FdmVu
dC5SZWNvcmRpbmdQcm9ncmVzcyk7CisgICAgfQorCisgICAgcmVjb3JkaW5nRmluaXNoZWQocmVj
b3JkaW5nUGF5bG9hZCkKKyAgICB7CisgICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLkNhbnZhc01h
bmFnZXIuCisKKyAgICAgICAgbGV0IGZyb21Db25zb2xlID0gIXRoaXMucmVjb3JkaW5nQWN0aXZl
OworCisgICAgICAgIGxldCByZWNvcmRpbmcgPSByZWNvcmRpbmdQYXlsb2FkID8gV0kuUmVjb3Jk
aW5nLmZyb21QYXlsb2FkKHJlY29yZGluZ1BheWxvYWQsIHRoaXMuX3JlY29yZGluZ0ZyYW1lcykg
OiBudWxsOworICAgICAgICBpZiAocmVjb3JkaW5nKSB7CisgICAgICAgICAgICByZWNvcmRpbmcu
c291cmNlID0gdGhpczsKKyAgICAgICAgICAgIHJlY29yZGluZy5jcmVhdGVEaXNwbGF5TmFtZShy
ZWNvcmRpbmdQYXlsb2FkLm5hbWUpOworCisgICAgICAgICAgICB0aGlzLl9yZWNvcmRpbmdDb2xs
ZWN0aW9uLmFkZChyZWNvcmRpbmcpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fcmVjb3Jk
aW5nU3RhdGUgPSBXSS5DYW52YXMuUmVjb3JkaW5nU3RhdGUuSW5hY3RpdmU7CisgICAgICAgIHRo
aXMuX3JlY29yZGluZ0ZyYW1lcyA9IFtdOworICAgICAgICB0aGlzLl9yZWNvcmRpbmdCdWZmZXJV
c2VkID0gMDsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52
YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwge3JlY29yZGluZywgZnJvbUNvbnNvbGV9KTsKKyAg
ICB9CisKICAgICBuZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIoKQogICAgIHsKICAgICAg
ICAgLy8gQ2FsbGVkIGZyb20gV0kuU2hhZGVyUHJvZ3JhbS4KQEAgLTMwOCw4ICszNzAsMTYgQEAg
V0kuQ2FudmFzLkNvbnRleHRUeXBlID0gewogICAgIFdlYkdQVTogIndlYmdwdSIsCiB9OwogCitX
SS5DYW52YXMuUmVjb3JkaW5nU3RhdGUgPSB7CisgICAgSW5hY3RpdmU6ICJjYW52YXMtcmVjb3Jk
aW5nLXN0YXRlLWluYWN0aXZlIiwKKyAgICBBY3RpdmU6ICJjYW52YXMtcmVjb3JkaW5nLXN0YXRl
LWFjdGl2ZSIsCit9OworCiBXSS5DYW52YXMuRXZlbnQgPSB7CiAgICAgTWVtb3J5Q2hhbmdlZDog
ImNhbnZhcy1tZW1vcnktY2hhbmdlZCIsCiAgICAgRXh0ZW5zaW9uRW5hYmxlZDogImNhbnZhcy1l
eHRlbnNpb24tZW5hYmxlZCIsCiAgICAgQ1NTQ2FudmFzQ2xpZW50Tm9kZXNDaGFuZ2VkOiAiY2Fu
dmFzLWNzcy1jYW52YXMtY2xpZW50LW5vZGVzLWNoYW5nZWQiLAorICAgIFJlY29yZGluZ1N0YXJ0
ZWQ6ICJjYW52YXMtcmVjb3JkaW5nLXN0YXJ0ZWQiLAorICAgIFJlY29yZGluZ1Byb2dyZXNzOiAi
Y2FudmFzLXJlY29yZGluZy1wcm9ncmVzcyIsCisgICAgUmVjb3JkaW5nU3RvcHBlZDogImNhbnZh
cy1yZWNvcmRpbmctc3RvcHBlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcwppbmRl
eCAyMjY4ZjI2ZWEwOTM3NTI5ZTRmN2JjN2VmMWVkNDlkYmMyN2YwMmM2Li43N2NhNmY0MzQ1MTNl
NmNiYjBiMjBiM2Y5ODRiZjU0ZTRhOGNjYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5q
cwpAQCAtMTk1LDYgKzE5NSwxMSBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZh
c0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgc3VwZXIuYXR0YWNo
ZWQoKTsKIAogICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIo
V0kuQ2FudmFzLkV2ZW50Lk1lbW9yeUNoYW5nZWQsIHRoaXMuX3VwZGF0ZU1lbW9yeUNvc3QsIHRo
aXMpOworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0ku
Q2FudmFzLkV2ZW50LlJlY29yZGluZ1N0YXJ0ZWQsIHRoaXMuX3JlY29yZGluZ1N0YXJ0ZWQsIHRo
aXMpOworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0ku
Q2FudmFzLkV2ZW50LlJlY29yZGluZ1Byb2dyZXNzLCB0aGlzLl9yZWNvcmRpbmdQcm9ncmVzcywg
dGhpcyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihX
SS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5fcmVjb3JkaW5nU3RvcHBlZCwg
dGhpcyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2hhZGVyUHJvZ3JhbUNvbGxl
Y3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhp
cy5fc2hhZGVyUHJvZ3JhbUFkZGVkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rp
b24uRXZlbnQuSXRlbVJlbW92ZWQsIHRoaXMuX3NoYWRlclByb2dyYW1SZW1vdmVkLCB0aGlzKTsK
IAogICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3ROb2RlKCkudGhlbigobm9k
ZSkgPT4gewogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2NhbnZhc05vZGUgfHwg
dGhpcy5fY2FudmFzTm9kZSA9PT0gbm9kZSk7CkBAIC0yMDYsMjUgKzIxMSwxOSBAQCBXSS5DYW52
YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVu
dFZpZXcKICAgICAgICAgICAgIHRoaXMuX2NhbnZhc05vZGUuYWRkRXZlbnRMaXN0ZW5lcihXSS5E
T01Ob2RlLkV2ZW50LkF0dHJpYnV0ZVJlbW92ZWQsIHRoaXMuX3JlZnJlc2hQaXhlbFNpemUsIHRo
aXMpOwogICAgICAgICB9KTsKIAotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTdGFydGVkLCB0aGlzLl9yZWNv
cmRpbmdTdGFydGVkLCB0aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nUHJvZ3Jlc3MsIHRoaXMuX3Jl
Y29yZGluZ1Byb2dyZXNzLCB0aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5f
cmVjb3JkaW5nU3RvcHBlZCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZl
bnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlNoYWRlclByb2dyYW1BZGRlZCwgdGhp
cy5fc2hhZGVyUHJvZ3JhbUFkZGVkLCB0aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5h
ZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuU2hhZGVyUHJvZ3JhbVJlbW92
ZWQsIHRoaXMuX3NoYWRlclByb2dyYW1SZW1vdmVkLCB0aGlzKTsKLQogICAgICAgICBXSS5zZXR0
aW5ncy5zaG93SW1hZ2VHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFu
Z2VkLCB0aGlzLl91cGRhdGVJbWFnZUdyaWQsIHRoaXMpOwogICAgIH0KIAogICAgIGRldGFjaGVk
KCkKICAgICB7CiAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0
ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5z
aGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRo
aXMpOwogCiAgICAgICAgIGlmICh0aGlzLl9jYW52YXNOb2RlKSB7CiAgICAgICAgICAgICB0aGlz
Ll9jYW52YXNOb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAgICAg
ICAgICAgICB0aGlzLl9jYW52YXNOb2RlID0gbnVsbDsKICAgICAgICAgfQogCi0gICAgICAgIFdJ
LmNhbnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKICAg
ICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5yZW1vdmVFdmVudExpc3RlbmVyKG51bGws
IG51bGwsIHRoaXMpOwogCiAgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CkBAIC0yNDgsMTEgKzI0
NywxMSBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIF90b2dnbGVSZWNvcmRpbmcoZXZlbnQpCiAgICAg
ewotICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5pc1JlY29yZGluZykKLSAgICAg
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc3RvcFJlY29yZGluZygpOwotICAgICAgICBlbHNlIGlm
ICghV0kuY2FudmFzTWFuYWdlci5yZWNvcmRpbmdDYW52YXMpIHsKKyAgICAgICAgaWYgKHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QucmVjb3JkaW5nQWN0aXZlKQorICAgICAgICAgICAgdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5zdG9wUmVjb3JkaW5nKCk7CisgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgbGV0IHNpbmdsZUZyYW1lID0gZXZlbnQuZGF0YS5uYXRpdmVFdmVudC5zaGlmdEtleTsKLSAg
ICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc3RhcnRSZWNvcmRpbmcodGhpcy5yZXByZXNlbnRl
ZE9iamVjdCwgc2luZ2xlRnJhbWUpOworICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVj
dC5zdGFydFJlY29yZGluZyhzaW5nbGVGcmFtZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI2
NCw0MSArMjYzLDIzIEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVu
dFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgX3JlY29yZGluZ1Byb2dyZXNzKGV2
ZW50KQogICAgIHsKLSAgICAgICAgbGV0IHtjYW52YXMsIGZyYW1lQ291bnQsIGJ1ZmZlclVzZWR9
ID0gZXZlbnQuZGF0YTsKLSAgICAgICAgaWYgKGNhbnZhcyAhPT0gdGhpcy5yZXByZXNlbnRlZE9i
amVjdCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl91cGRhdGVQcm9ncmVz
c1ZpZXcoZnJhbWVDb3VudCwgYnVmZmVyVXNlZCk7CisgICAgICAgIHRoaXMuX3VwZGF0ZVByb2dy
ZXNzVmlldygpOwogICAgIH0KIAogICAgIF9yZWNvcmRpbmdTdG9wcGVkKGV2ZW50KQogICAgIHsK
ICAgICAgICAgdGhpcy5fdXBkYXRlUmVjb3JkTmF2aWdhdGlvbkl0ZW0oKTsKLQotICAgICAgICBs
ZXQge2NhbnZhc30gPSBldmVudC5kYXRhOwotICAgICAgICBpZiAoY2FudmFzICE9PSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0KQotICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVByb2dyZXNzVmlldygpOwotCiAgICAgICAgIHRoaXMuX3VwZGF0ZVZpZXdSZWxhdGVkSXRl
bXMoKTsKICAgICB9CiAKICAgICBfc2hhZGVyUHJvZ3JhbUFkZGVkKGV2ZW50KQogICAgIHsKLSAg
ICAgICAgbGV0IHtzaGFkZXJQcm9ncmFtfSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmICghc2hh
ZGVyUHJvZ3JhbSB8fCBzaGFkZXJQcm9ncmFtLmNhbnZhcyAhPT0gdGhpcy5yZXByZXNlbnRlZE9i
amVjdCkKLSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICB0aGlzLl91cGRhdGVWaWV3UmVs
YXRlZEl0ZW1zKCk7CiAgICAgfQogCiAgICAgX3NoYWRlclByb2dyYW1SZW1vdmVkKGV2ZW50KQog
ICAgIHsKLSAgICAgICAgbGV0IHtzaGFkZXJQcm9ncmFtfSA9IGV2ZW50LmRhdGE7Ci0gICAgICAg
IGlmICghc2hhZGVyUHJvZ3JhbSB8fCBzaGFkZXJQcm9ncmFtLmNhbnZhcyAhPT0gdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdCkKLSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICB0aGlzLl91cGRh
dGVWaWV3UmVsYXRlZEl0ZW1zKCk7CiAgICAgfQogCkBAIC0zODIsMTggKzM2MywxNSBAQCBXSS5D
YW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29u
dGVudFZpZXcKICAgICAgICAgaWYgKCF0aGlzLl9yZWNvcmRCdXR0b25OYXZpZ2F0aW9uSXRlbSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBsZXQgaXNSZWNvcmRpbmcgPSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LmlzUmVjb3JkaW5nOwotICAgICAgICB0aGlzLl9yZWNvcmRCdXR0b25O
YXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gaXNSZWNvcmRpbmcgfHwgIVdJLmNhbnZhc01hbmFnZXIu
cmVjb3JkaW5nQ2FudmFzOwotICAgICAgICB0aGlzLl9yZWNvcmRCdXR0b25OYXZpZ2F0aW9uSXRl
bS50b2dnbGVkID0gaXNSZWNvcmRpbmc7Ci0KLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5h
dmlnYXRpb25JdGVtLmVuYWJsZWQgPSAhaXNSZWNvcmRpbmc7Ci0KLSAgICAgICAgdGhpcy5lbGVt
ZW50LmNsYXNzTGlzdC50b2dnbGUoImlzLXJlY29yZGluZyIsIGlzUmVjb3JkaW5nKTsKKyAgICAg
ICAgbGV0IHJlY29yZGluZ0FjdGl2ZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVjb3JkaW5n
QWN0aXZlOworICAgICAgICB0aGlzLl9yZWNvcmRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b2dnbGVk
ID0gcmVjb3JkaW5nQWN0aXZlOworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uZW5hYmxlZCA9ICFyZWNvcmRpbmdBY3RpdmU7CisgICAgICAgIHRoaXMuZWxlbWVudC5j
bGFzc0xpc3QudG9nZ2xlKCJyZWNvcmRpbmctYWN0aXZlIiwgcmVjb3JkaW5nQWN0aXZlKTsKICAg
ICB9CiAKLSAgICBfdXBkYXRlUHJvZ3Jlc3NWaWV3KGZyYW1lQ291bnQsIGJ1ZmZlclVzZWQpCisg
ICAgX3VwZGF0ZVByb2dyZXNzVmlldygpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMucmVwcmVz
ZW50ZWRPYmplY3QuaXNSZWNvcmRpbmcpIHsKKyAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnJlY29yZGluZ0FjdGl2ZSkgewogICAgICAgICAgICAgaWYgKHRoaXMuX3Byb2dyZXNz
VmlldyAmJiB0aGlzLl9wcm9ncmVzc1ZpZXcucGFyZW50VmlldykgewogICAgICAgICAgICAgICAg
IHRoaXMucmVtb3ZlU3Vidmlldyh0aGlzLl9wcm9ncmVzc1ZpZXcpOwogICAgICAgICAgICAgICAg
IHRoaXMuX3Byb2dyZXNzVmlldyA9IG51bGw7CkBAIC00MDcsMTUgKzM4NSwxNSBAQCBXSS5DYW52
YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVu
dFZpZXcKICAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9wcm9ncmVzc1ZpZXcpOwog
ICAgICAgICB9CiAKLSAgICAgICAgbGV0IHRpdGxlOwotICAgICAgICBpZiAoZnJhbWVDb3VudCkg
ewotICAgICAgICAgICAgbGV0IGZvcm1hdFN0cmluZyA9IGZyYW1lQ291bnQgPT09IDEgPyBXSS5V
SVN0cmluZygiJWQgRnJhbWUiKSA6IFdJLlVJU3RyaW5nKCIlZCBGcmFtZXMiKTsKLSAgICAgICAg
ICAgIHRpdGxlID0gZm9ybWF0U3RyaW5nLmZvcm1hdChmcmFtZUNvdW50KTsKKyAgICAgICAgbGV0
IHRpdGxlID0gbnVsbDsKKyAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVjb3Jk
aW5nRnJhbWVDb3VudCkgeworICAgICAgICAgICAgbGV0IGZvcm1hdFN0cmluZyA9IHRoaXMucmVw
cmVzZW50ZWRPYmplY3QucmVjb3JkaW5nRnJhbWVDb3VudCA9PT0gMSA/IFdJLlVJU3RyaW5nKCIl
ZCBGcmFtZSIpIDogV0kuVUlTdHJpbmcoIiVkIEZyYW1lcyIpOworICAgICAgICAgICAgdGl0bGUg
PSBmb3JtYXRTdHJpbmcuZm9ybWF0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVjb3JkaW5nRnJh
bWVDb3VudCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgdGl0bGUgPSBXSS5VSVN0cmlu
ZygiV2FpdGluZyBmb3IgZnJhbWVz4oCmIik7CiAKICAgICAgICAgdGhpcy5fcHJvZ3Jlc3NWaWV3
LnRpdGxlID0gdGl0bGU7Ci0gICAgICAgIHRoaXMuX3Byb2dyZXNzVmlldy5zdWJ0aXRsZSA9IGJ1
ZmZlclVzZWQgPyBOdW1iZXIuYnl0ZXNUb1N0cmluZyhidWZmZXJVc2VkKSA6ICIiOworICAgICAg
ICB0aGlzLl9wcm9ncmVzc1ZpZXcuc3VidGl0bGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJl
Y29yZGluZ0J1ZmZlclVzZWQgPyBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnJlY29yZGluZ0J1ZmZlclVzZWQpIDogIiI7CiAgICAgfQogCiAgICAgX3VwZGF0ZVZp
ZXdSZWxhdGVkSXRlbXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
LmNzcwppbmRleCA1ZjU0NjNhMDlkZDRjY2U3YjljYjc0MGRiNjE1N2I2ZWM2Nzc1ODgzLi4zOWU4
NzZkMDIyYjAwZmY2NmJkZjJmZWI5MTIzZjU3Y2FmZjVlMmM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcwpAQCAtNDMsNyArNDMsNyBAQAogICAgIGN1cnNv
cjogcG9pbnRlcjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMuaXMtcmVjb3JkaW5nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgewogICAgIGJvcmRlci1jb2xv
cjogcmVkOwogfQogCkBAIC02Miw3ICs2Miw3IEBACiAgICAgZm9udC1zaXplOiAxM3B4OwogfQog
Ci0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5pcy1y
ZWNvcmRpbmcgPiBoZWFkZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CiAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOwogfQogCkBAIC04NCwxNSArODQsMTUgQEAKICAgICBjb250ZW50OiAiIOKA
lCAiOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcy5pcy1yZWNvcmRpbmcgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3Rp
dmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKICAgICBjb2xvcjogd2hpdGU7CiB9CiAK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLmlzLXJl
Y29yZGluZyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhl
YWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgewogICAgIGNvbG9yOiB2YXIoLS1zZWxlY3RlZC1z
ZWNvbmRhcnktdGV4dC1jb2xvcik7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzLmlzLXJlY29yZGluZyA+IGhlYWRlciA+IC5uYXZpZ2F0aW9u
LWJhciA+IC5pdGVtIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAu
aXRlbSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgpOwogfQogCkBAIC0xMDMs
MzAgKzEwMywzMCBAQAogICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7
CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
Om1hdGNoZXMoOmhvdmVyLCAuaXMtcmVjb3JkaW5nKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJh
ciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpt
YXRjaGVzKDpob3ZlciwgLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24t
YmFyIHsKICAgICBvcGFjaXR5OiAxOwogICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFz
ZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzOm5vdCguaXMtcmVjb3JkaW5nKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+
IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wLmRpc2FibGVkIHsKKy5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBo
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxl
ZCB7CiAgICAgZmlsdGVyOiBncmF5c2NhbGUoKTsKICAgICBvcGFjaXR5OiAwLjU7CiB9CiAKLS5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCguaXMt
cmVjb3JkaW5nKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFy
dC1zdG9wOm5vdCguZGlzYWJsZWQpOmhvdmVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIg
PiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVk
KTpob3ZlciB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDk1JSk7CiB9CiAKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCguaXMtcmVjb3JkaW5n
KSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5v
dCguZGlzYWJsZWQpOmFjdGl2ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmln
YXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6YWN0aXZl
IHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoODAlKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuaXMtcmVjb3JkaW5nID4gLnByb2dyZXNz
LXZpZXcsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXcsCiAuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3IHsKICAgICBoZWlnaHQ6
IDI4MHB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcy5pcy1yZWNvcmRpbmcgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByZXZpZXcg
ewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAKQEAgLTE5NiwxMiArMTk2LDEyIEBACiAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3Itc2Vjb25kYXJ5KTsKICAg
ICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcy5pcy1yZWNvcmRpbmcgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgewogICAgICAgICAtLXJlY29yZGlu
Zy1jb2xvcjogaHNsKDAsIDEwMCUsIDM5JSk7CiAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0t
cmVjb3JkaW5nLWNvbG9yKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcy5pcy1yZWNvcmRpbmcgPiBoZWFkZXIgeworICAgIC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGlu
Zy1hY3RpdmUgPiBoZWFkZXIgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yZWNv
cmRpbmctY29sb3IpOwogICAgIH0KIApAQCAtMjE4LDcgKzIxOCw3IEBACiAgICAgICAgIGZpbHRl
cjogaW52ZXJ0KCk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMuaXMtcmVjb3JkaW5nID4gaGVhZGVyID4gLnRpdGxlcyA+IC5z
dWJ0aXRsZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUg
ewogICAgICAgICBjb2xvcjogdW5zZXQ7CiAgICAgICAgIG9wYWNpdHk6IDAuNQogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcwppbmRleCA4ODVlZTRmZDk4NzQ1NjcxM2JkNDZiMjBm
NjJiOTUyYTFlYTVhNDE4Li5jZDdjYTkzNmE3ZTUxZWIxYjdkMjQ5NzVkNTBmNmRjM2QxYjcxZDI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCkBAIC02NSw5ICs2NSw2IEBAIFdJLkNh
bnZhc1NpZGViYXJQYW5lbCA9IGNsYXNzIENhbnZhc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5h
dmlnYXRpb25TaWRlYmFyUGFuCiAgICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmFkZEV2
ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlz
Ll90cmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgIHRoaXMuX3Jl
Y29yZGluZ1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQu
U2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl90cmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSwg
dGhpcyk7CiAKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNh
bnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU3RhcnRlZCwgdGhpcy5fdXBkYXRlUmVjb3JkTmF2
aWdhdGlvbkl0ZW0sIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl91cGRh
dGVSZWNvcmROYXZpZ2F0aW9uSXRlbSwgdGhpcyk7Ci0KICAgICAgICAgdGhpcy5fcmVjb3JkaW5n
UHJvY2Vzc2luZ09wdGlvbnNDb250YWluZXIgPSBudWxsOwogCiAgICAgICAgIHRoaXMuX3NlbGVj
dGVkUmVjb3JkaW5nQWN0aW9uSW5kZXggPSBOYU47CkBAIC04NSwxMSArODIsMTUgQEAgV0kuQ2Fu
dmFzU2lkZWJhclBhbmVsID0gY2xhc3MgQ2FudmFzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuTmF2
aWdhdGlvblNpZGViYXJQYW4KICAgICAgICAgaWYgKHRoaXMuX2NhbnZhcyA9PT0gY2FudmFzKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICh0aGlzLl9jYW52YXMpCisgICAgICAg
IGlmICh0aGlzLl9jYW52YXMpIHsKKyAgICAgICAgICAgIHRoaXMuX2NhbnZhcy5yZW1vdmVFdmVu
dExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogICAgICAgICAgICAgdGhpcy5fY2FudmFzLnJl
Y29yZGluZ0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsK
KyAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX2NhbnZhcyA9IGNhbnZhczsKICAgICAgICAgaWYg
KHRoaXMuX2NhbnZhcykgeworICAgICAgICAgICAgdGhpcy5fY2FudmFzLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0YXJ0ZWQsIHRoaXMuX3VwZGF0ZVJlY29yZE5h
dmlnYXRpb25JdGVtLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2NhbnZhcy5hZGRFdmVudExp
c3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl91cGRhdGVSZWNv
cmROYXZpZ2F0aW9uSXRlbSwgdGhpcyk7CiAgICAgICAgICAgICB0aGlzLl9jYW52YXMucmVjb3Jk
aW5nQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFk
ZGVkLCB0aGlzLl9yZWNvcmRpbmdBZGRlZCwgdGhpcyk7CiAgICAgICAgICAgICB0aGlzLl9jYW52
YXMucmVjb3JkaW5nQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZl
bnQuSXRlbVJlbW92ZWQsIHRoaXMuX3JlY29yZGluZ1JlbW92ZWQsIHRoaXMpOwogICAgICAgICB9
CkBAIC0yODMsMTEgKzI4NCwxMSBAQCBXSS5DYW52YXNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDYW52
YXNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhclBhbgogICAgICAgICBp
ZiAoIXRoaXMuX2NhbnZhcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAodGhp
cy5fY2FudmFzLmlzUmVjb3JkaW5nKQotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zdG9w
UmVjb3JkaW5nKCk7Ci0gICAgICAgIGVsc2UgaWYgKCFXSS5jYW52YXNNYW5hZ2VyLnJlY29yZGlu
Z0NhbnZhcykgeworICAgICAgICBpZiAodGhpcy5fY2FudmFzLnJlY29yZGluZ0FjdGl2ZSkKKyAg
ICAgICAgICAgIHRoaXMuX2NhbnZhcy5zdG9wUmVjb3JkaW5nKCk7CisgICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAgbGV0IHNpbmdsZUZyYW1lID0gZXZlbnQuZGF0YS5uYXRpdmVFdmVudC5zaGlm
dEtleTsKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc3RhcnRSZWNvcmRpbmcodGhpcy5f
Y2FudmFzLCBzaW5nbGVGcmFtZSk7CisgICAgICAgICAgICB0aGlzLl9jYW52YXMuc3RhcnRSZWNv
cmRpbmcoc2luZ2xlRnJhbWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00NDUsOSArNDQ2LDcg
QEAgV0kuQ2FudmFzU2lkZWJhclBhbmVsID0gY2xhc3MgQ2FudmFzU2lkZWJhclBhbmVsIGV4dGVu
ZHMgV0kuTmF2aWdhdGlvblNpZGViYXJQYW4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogCi0gICAgICAgIGxldCBpc1JlY29yZGluZyA9IHRoaXMuX2NhbnZhcy5pc1JlY29yZGluZzsK
LSAgICAgICAgdGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGlzUmVj
b3JkaW5nIHx8ICFXSS5jYW52YXNNYW5hZ2VyLnJlY29yZGluZ0NhbnZhczsKLSAgICAgICAgdGhp
cy5fcmVjb3JkQnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9nZ2xlZCA9IGlzUmVjb3JkaW5nOworICAg
ICAgICB0aGlzLl9yZWNvcmRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b2dnbGVkID0gdGhpcy5fY2Fu
dmFzLnJlY29yZGluZ0FjdGl2ZTsKICAgICB9CiAKICAgICBfdXBkYXRlUmVjb3JkaW5nU2NvcGVC
YXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcwppbmRleCBjYWMyYTJlOWQ1MjQ1
ZDc3ZWYzYzEyYzEzMDFhZjk1MDE2MjA3ODAxLi5mMGY1YWQ1YjcxMjZhZmIyZWZlYzdhYmMxNTli
ZDU3MDg2YzFiMzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcwpAQCAtMTI1
LDcgKzEyNSw3IEBAIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzVGFiQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhCiAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVk
LCB0aGlzLl9oYW5kbGVDYW52YXNBZGRlZCwgdGhpcyk7CiAgICAgICAgIFdJLmNhbnZhc01hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQs
IHRoaXMuX2hhbmRsZUNhbnZhc1JlbW92ZWQsIHRoaXMpOwogICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdJbXBv
cnRlZCwgdGhpcy5fcmVjb3JkaW5nSW1wb3J0ZWRPclN0b3BwZWQsIHRoaXMpOwotICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5S
ZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl9yZWNvcmRpbmdJbXBvcnRlZE9yU3RvcHBlZCwgdGhpcyk7
CisgICAgICAgIFdJLkNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNv
cmRpbmdTdG9wcGVkLCB0aGlzLl9yZWNvcmRpbmdJbXBvcnRlZE9yU3RvcHBlZCwgdGhpcyk7CiAK
ICAgICAgICAgbGV0IGNhbnZhc2VzID0gbmV3IFNldChbLi4udGhpcy5fY2FudmFzQ29sbGVjdGlv
biwgLi4uV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc10pOwogCkBAIC0xNDIsOCArMTQyLDggQEAg
V0kuQ2FudmFzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNUYWJDb250ZW50VmlldyBleHRl
bmRzIFdJLkNvbnRlbnRCcm93c2VyVGEKIAogICAgIGRldGFjaGVkKCkKICAgICB7CisgICAgICAg
IFdJLkNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7
Ci0gICAgICAgIFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3LnJlbW92ZUV2ZW50TGlzdGVuZXIobnVs
bCwgbnVsbCwgdGhpcyk7CiAKICAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKICAgICB9CkBAIC0y
MTQsNyArMjE0LDcgQEAgV0kuQ2FudmFzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNUYWJD
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGEKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICB0aGlzLl9yZWNvcmRpbmdBZGRlZChyZWNvcmRpbmcsIHsKLSAgICAgICAg
ICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogZXZlbnQuZGF0YS5mcm9tQ29uc29sZSwKKyAgICAg
ICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogZXZlbnQuZGF0YS5mcm9tQ29uc29sZSB8fCB0
aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRSZXByZXNlbnRlZE9iamVjdHMuc29tZSgocmVwcmVz
ZW50ZWRPYmplY3QpID0+IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5n
KSwKICAgICAgICAgfSk7CiAgICAgfQogCkBAIC0yNDMsMTEgKzI0MywxMSBAQCBXSS5DYW52YXNU
YWJDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29u
dGVudEJyb3dzZXJUYQogICAgICAgICBpZiAoIWNhbnZhcykKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBpZiAoY2FudmFzLmlzUmVjb3JkaW5nKQotICAgICAgICAgICAgV0kuY2FudmFz
TWFuYWdlci5zdG9wUmVjb3JkaW5nKCk7Ci0gICAgICAgIGVsc2UgaWYgKCFXSS5jYW52YXNNYW5h
Z2VyLnJlY29yZGluZ0NhbnZhcykgeworICAgICAgICBpZiAoY2FudmFzLnJlY29yZGluZ0FjdGl2
ZSkKKyAgICAgICAgICAgIGNhbnZhcy5zdG9wUmVjb3JkaW5nKCk7CisgICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAgbGV0IHNpbmdsZUZyYW1lID0gISFldmVudC5zaGlmdEtleTsKLSAgICAgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuc3RhcnRSZWNvcmRpbmcoY2FudmFzLCBzaW5nbGVGcmFtZSk7
CisgICAgICAgICAgICBjYW52YXMuc3RhcnRSZWNvcmRpbmcoc2luZ2xlRnJhbWUpOwogICAgICAg
ICB9CiAKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVHJlZUVs
ZW1lbnQuanMKaW5kZXggZWJlMTg2YjBmZTQyZTRmMjI0YzgzYzkwZTY5M2ZkZjQ0NjExMjI2OC4u
MTQ0ZDQyYTFkN2FiOWVjM2NlMzcwNDU3NWI2NDQxMmVlMGU2MDgzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVHJlZUVsZW1lbnQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
VHJlZUVsZW1lbnQuanMKQEAgLTM0LDkgKzM0LDggQEAgV0kuQ2FudmFzVHJlZUVsZW1lbnQgPSBj
bGFzcyBDYW52YXNUcmVlRWxlbWVudCBleHRlbmRzIFdJLkZvbGRlcml6ZWRUcmVlRWxlbWVudAog
CiAgICAgICAgIHRoaXMucmVnaXN0ZXJGb2xkZXJpemVTZXR0aW5ncygic2hhZGVyLXByb2dyYW1z
IiwgV0kuVUlTdHJpbmcoIlNoYWRlciBQcm9ncmFtcyIpLCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLCBXSS5TaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQpOwog
Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5h
Z2VyLkV2ZW50LlJlY29yZGluZ1N0YXJ0ZWQsIHRoaXMuX3VwZGF0ZVN0YXR1cywgdGhpcyk7Ci0g
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2Vy
LkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX3VwZGF0ZVN0YXR1cywgdGhpcyk7Ci0KKyAg
ICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5F
dmVudC5SZWNvcmRpbmdTdGFydGVkLCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOworICAgICAg
ICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50
LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX3VwZGF0ZVN0YXR1cywgdGhpcyk7CiAgICAgICAgIHRo
aXMucmVwcmVzZW50ZWRPYmplY3Quc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uYWRkRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlSXRlbUFkZGVk
LCB0aGlzKTsKICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaGFkZXJQcm9ncmFtQ29s
bGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQs
IHRoaXMuX2hhbmRsZUl0ZW1SZW1vdmVkLCB0aGlzKTsKIApAQCAtMTM3LDE0ICsxMzYsMTQgQEAg
V0kuQ2FudmFzVHJlZUVsZW1lbnQgPSBjbGFzcyBDYW52YXNUcmVlRWxlbWVudCBleHRlbmRzIFdJ
LkZvbGRlcml6ZWRUcmVlRWxlbWVudAogCiAgICAgX3VwZGF0ZVN0YXR1cygpCiAgICAgewotICAg
ICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5pc1JlY29yZGluZykgewotICAgICAgICAg
ICAgaWYgKCF0aGlzLnN0YXR1cyB8fCAhdGhpcy5zdGF0dXNbV0kuQ2FudmFzVHJlZUVsZW1lbnQu
U3Bpbm5lclN5bWJvbF0pIHsKKyAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVj
b3JkaW5nQWN0aXZlKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdHVzIHx8ICF0aGlzLnN0
YXR1cy5fX3Nob3dpbmdTcGlubmVyKSB7CiAgICAgICAgICAgICAgICAgbGV0IHNwaW5uZXIgPSBu
ZXcgV0kuSW5kZXRlcm1pbmF0ZVByb2dyZXNzU3Bpbm5lcjsKICAgICAgICAgICAgICAgICB0aGlz
LnN0YXR1cyA9IHNwaW5uZXIuZWxlbWVudDsKLSAgICAgICAgICAgICAgICB0aGlzLnN0YXR1c1tX
SS5DYW52YXNUcmVlRWxlbWVudC5TcGlubmVyU3ltYm9sXSA9IHRydWU7CisgICAgICAgICAgICAg
ICAgdGhpcy5zdGF0dXMuX19zaG93aW5nU3Bpbm5lciA9IHRydWU7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5zdGF0dXMgJiYgdGhpcy5zdGF0
dXNbV0kuQ2FudmFzVHJlZUVsZW1lbnQuU3Bpbm5lclN5bWJvbF0pCisgICAgICAgICAgICBpZiAo
dGhpcy5zdGF0dXMgJiYgdGhpcy5zdGF0dXMuX19zaG93aW5nU3Bpbm5lcikKICAgICAgICAgICAg
ICAgICB0aGlzLnN0YXR1cyA9ICIiOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU5ZGU2YzVk
MDU2NWQwMGM1OWQwN2JlYjNkNjE0NTgzYjM0ZTFmMzguLjk0MWM4NzFiNjAzMTNiNjA2YTNmNDkz
MGI5MDI1NTExZmNhYTc3YzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0xMC0wNSAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgbXVsdGlwbGUgY2FudmFzZXMgdG8gYmUgcmVjb3JkZWQgYXQgdGhlIHNhbWUgdGltZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMzA1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy0yZC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
cmVjb3JkaW5nLWJpdG1hcHJlbmRlcmVyLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZh
cy9yZWNvcmRpbmctd2ViZ2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291
cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJ
bml0aWFsaXplci53aW5kb3cuc3RhcnRSZWNvcmRpbmcuaGFuZGxlUmVjb3JkaW5nUHJvZ3Jlc3Mp
OgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci53aW5kb3cuc3RhcnRSZWNv
cmRpbmcpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci53aW5kb3cuY29u
c29sZVJlY29yZCk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKToKKwog
MjAxOC0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEEg
RG9jdW1lbnQgLyBXaW5kb3cgc2hvdWxkIGxvc2UgaXRzIGJyb3dzaW5nIGNvbnRleHQgYXMgc29v
biBhcyBpdHMgaWZyYW1lIGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLTJkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC5odG1sCmluZGV4IDdkMzcyNWE4MGE1
OTU0MjY1MGM3N2IzZTNkNGI4ZWIzMDhjOTFjMWQuLmNmYmE5ODAxYzljMDA4NjkyYTVmYzliMDFl
Mjk1M2ZkYjVkNjlhYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVjb3JkaW5nLTJkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNv
cmRpbmctMmQuaHRtbApAQCAtNDUyLDcgKzQ1Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAg
ICAgIG5hbWU6ICJDYW52YXMucmVjb3JkaW5nMkQuQ29uc29sZSIsCiAgICAgICAgIGRlc2NyaXB0
aW9uOiAiQ2hlY2sgdGhhdCBhIHJlY29yZGluZyBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGNvbnNvbGUu
cmVjb3JkKCkuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAg
IGNvbnNvbGVSZWNvcmQocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIGNvbnNvbGVSZWNv
cmQoV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJELCByZXNvbHZlLCByZWplY3QpOwogICAg
ICAgICB9LAogICAgIH0pOwogCkBAIC00NjYsNyArNDY2LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFdJ
LmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGlu
Z1N0b3BwZWQpCisgICAgICAgICAgICBjYW52YXMuYXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQu
UmVjb3JkaW5nU3RvcHBlZCkKICAgICAgICAgICAgIC50aGVuKChldmVudCkgPT4gewogICAgICAg
ICAgICAgICAgIGxldCByZWNvcmRpbmcgPSBldmVudC5kYXRhLnJlY29yZGluZy50b0pTT04oKTsK
IApAQCAtNTA0LDI2ICs1MDQsMjUgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIAogICAgICAgICAgICAg
bGV0IGV2ZW50Q291bnQgPSAwOwogICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxlUmVjb3JkaW5n
U3RvcHBlZChldmVudCkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2
ZW50LmRhdGEuY2FudmFzID09PSBjYW52YXMsICJXZSBzaG91bGQgaGF2ZSBzdG9wcGVkIHJlY29y
ZGluZyB0aGUgc2VsZWN0ZWQgY2FudmFzLiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KCFldmVudC5kYXRhLnJlY29yZGluZywgIlRoZSByZWNvcmRpbmcgcGF5bG9hZCBz
aG91bGQgYmUgbnVsbC4iKTsKIAogICAgICAgICAgICAgICAgICsrZXZlbnRDb3VudDsKICAgICAg
ICAgICAgICAgICBpZiAoZXZlbnRDb3VudCA9PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QucGFzcygiQSByZWNvcmRpbmcgc2hvdWxkIGhhdmUgYmVlbiBzdGFydGVkIGFu
ZCBzdG9wcGVkIG9uY2UuIik7CiAKLSAgICAgICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdl
ci5zdGFydFJlY29yZGluZyhjYW52YXMpOwotICAgICAgICAgICAgICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLnN0b3BSZWNvcmRpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFzLnN0YXJ0
UmVjb3JkaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5zdG9wUmVjb3JkaW5nKCk7
CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudENvdW50ID49IDIpIHsKICAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJBIHJlY29yZGluZyBzaG91bGQgaGF2ZSBi
ZWVuIHN0YXJ0ZWQgYW5kIHN0b3BwZWQgdHdpY2UuIik7CiAKLSAgICAgICAgICAgICAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKGhhbmRsZVJlY29yZGluZ1N0b3Bw
ZWQpOworICAgICAgICAgICAgICAgICAgICBjYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5D
YW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgaGFuZGxlUmVjb3JkaW5nU3RvcHBlZCk7CiAg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
Q2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCBoYW5kbGVSZWNvcmRpbmdTdG9w
cGVkKTsKKyAgICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVu
dC5SZWNvcmRpbmdTdG9wcGVkLCBoYW5kbGVSZWNvcmRpbmdTdG9wcGVkKTsKIAotICAgICAgICAg
ICAgV0kuY2FudmFzTWFuYWdlci5zdGFydFJlY29yZGluZyhjYW52YXMpOwotICAgICAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5zdG9wUmVjb3JkaW5nKCk7CisgICAgICAgICAgICBjYW52YXMuc3Rh
cnRSZWNvcmRpbmcoKTsKKyAgICAgICAgICAgIGNhbnZhcy5zdG9wUmVjb3JkaW5nKCk7CiAgICAg
ICAgIH0sCiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVjb3JkaW5nLWJpdG1hcHJlbmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3JlY29yZGluZy1iaXRtYXByZW5kZXJlci5odG1sCmluZGV4IDExNjlkZWQzNTAwZDQ2
YWJmYzMzMjdkZGY3N2UzY2I0ZTBlODkyZTAuLjExMmFlYTcyOTQxYTRkZGJlOTRkZWMyZmZmNWU1
NWZjOWJmZGIwN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVj
b3JkaW5nLWJpdG1hcHJlbmRlcmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZWNvcmRpbmctYml0bWFwcmVuZGVyZXIuaHRtbApAQCAtMTIwLDcgKzEyMCw3IEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVjb3JkaW5nQml0bWFwUmVu
ZGVyZXIuQ29uc29sZSIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBhIHJlY29y
ZGluZyBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGNvbnNvbGUucmVjb3JkKCkuIiwKICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGNvbnNvbGVSZWNvcmQocmVzb2x2ZSwg
cmVqZWN0KTsKKyAgICAgICAgICAgIGNvbnNvbGVSZWNvcmQoV0kuQ2FudmFzLkNvbnRleHRUeXBl
LkJpdG1hcFJlbmRlcmVyLCByZXNvbHZlLCByZWplY3QpOwogICAgICAgICB9LAogICAgIH0pOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJn
bC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wuaHRt
bAppbmRleCA5Y2Q5ZTM2OTkwNmRmNzUyYTRjMTgyMzgzNGQ1MTIzYjc3YmRiNGI4Li41MWI2MWU3
NTdlNTZiNzY3NDI3YzkwYWVhODZkNTQyOTQ3ZjUyMWFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLmh0bWwKQEAgLTU0Niw3ICs1NDYsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlY29yZGluZ1dlYkdM
LkNvbnNvbGUiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYSByZWNvcmRpbmcg
Y2FuIGJlIHRyaWdnZXJlZCBieSBjb25zb2xlLnJlY29yZCgpLiIsCiAgICAgICAgIHRlc3QocmVz
b2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBjb25zb2xlUmVjb3JkKHJlc29sdmUsIHJlamVj
dCk7CisgICAgICAgICAgICBjb25zb2xlUmVjb3JkKFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJH
TCwgcmVzb2x2ZSwgcmVqZWN0KTsKICAgICAgICAgfSwKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGll
cy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11
dGlsaXRpZXMuanMKaW5kZXggYmZlMjJjODA0OGIwNjQ1NmJjMTczNTRlNWQ5ZmE1MjNmY2RiMDhm
Yy4uZWNiODkwMDRhMDg4MGVhZTEzMWRiOGNlZGI3NGY4MTYzMGQ0YmU0MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGll
cy5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRp
bmctdXRpbGl0aWVzLmpzCkBAIC04NCwxNiArODQsMTYgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0
aWFsaXplcigoKSA9PiB7CiAgICAgICAgIGxldCBidWZmZXJVc2VkID0gMDsKICAgICAgICAgbGV0
IGZyYW1lQ291bnQgPSAwOwogICAgICAgICBmdW5jdGlvbiBoYW5kbGVSZWNvcmRpbmdQcm9ncmVz
cyhldmVudCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5m
cmFtZUNvdW50ID4gZnJhbWVDb3VudCwgIkFkZGl0aW9uYWwgZnJhbWVzIHdlcmUgY2FwdHVyZWQg
Zm9yIHRoaXMgcHJvZ3Jlc3MgZXZlbnQuIik7Ci0gICAgICAgICAgICBmcmFtZUNvdW50ID0gZXZl
bnQuZGF0YS5mcmFtZUNvdW50OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2Fu
dmFzLnJlY29yZGluZ0ZyYW1lQ291bnQgPiBmcmFtZUNvdW50LCAiQWRkaXRpb25hbCBmcmFtZXMg
d2VyZSBjYXB0dXJlZCBmb3IgdGhpcyBwcm9ncmVzcyBldmVudC4iKTsKKyAgICAgICAgICAgIGZy
YW1lQ291bnQgPSBjYW52YXMucmVjb3JkaW5nRnJhbWVDb3VudDsKIAotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5idWZmZXJVc2VkID4gYnVmZmVyVXNlZCwgIlRv
dGFsIG1lbW9yeSB1c2FnZSBpbmNyZWFzZXMgd2l0aCBlYWNoIHByb2dyZXNzIGV2ZW50LiIpOwot
ICAgICAgICAgICAgYnVmZmVyVXNlZCA9IGV2ZW50LmRhdGEuYnVmZmVyVXNlZDsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcy5yZWNvcmRpbmdCdWZmZXJVc2VkID4gYnVm
ZmVyVXNlZCwgIlRvdGFsIG1lbW9yeSB1c2FnZSBpbmNyZWFzZXMgd2l0aCBlYWNoIHByb2dyZXNz
IGV2ZW50LiIpOworICAgICAgICAgICAgYnVmZmVyVXNlZCA9IGNhbnZhcy5yZWNvcmRpbmdCdWZm
ZXJVc2VkOwogICAgICAgICB9Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1Byb2dyZXNzLCBoYW5kbGVSZWNv
cmRpbmdQcm9ncmVzcyk7CisgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZh
cy5FdmVudC5SZWNvcmRpbmdQcm9ncmVzcywgaGFuZGxlUmVjb3JkaW5nUHJvZ3Jlc3MpOwogCi0g
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50
LlJlY29yZGluZ1N0b3BwZWQpLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNv
cmRpbmdQcm9ncmVzcywgaGFuZGxlUmVjb3JkaW5nUHJvZ3Jlc3MpOworICAgICAgICBjYW52YXMu
YXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCkudGhlbigoZXZlbnQp
ID0+IHsKKyAgICAgICAgICAgIGNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5F
dmVudC5SZWNvcmRpbmdQcm9ncmVzcywgaGFuZGxlUmVjb3JkaW5nUHJvZ3Jlc3MpOwogCiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjYW5jZWxBY3Rpb25zKClgKTsK
IApAQCAtMTIwLDkgKzEyMCwyMCBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+
IHsKICAgICAgICAgcmV0dXJuIGNhbnZhczsKICAgICB9OwogCi0gICAgd2luZG93LmNvbnNvbGVS
ZWNvcmQgPSBmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgV0kuY2FudmFzTWFu
YWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCku
dGhlbigoZXZlbnQpID0+IHsKKyAgICB3aW5kb3cuY29uc29sZVJlY29yZCA9IGZ1bmN0aW9uKHR5
cGUsIHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICBsZXQgY2FudmFzID0gZ2V0Q2FudmFzKHR5
cGUpOworICAgICAgICBpZiAoIWNhbnZhcykgeworICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5n
IGNhbnZhcyB3aXRoIHR5cGUgIiR7dHlwZX0iLmApOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgY2FudmFzLmF3YWl0RXZlbnQoV0kuQ2FudmFzLkV2ZW50LlJlY29y
ZGluZ1N0b3BwZWQpLnRoZW4oKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICBsZXQgcmVjb3JkaW5n
ID0gZXZlbnQuZGF0YS5yZWNvcmRpbmc7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KHJlY29yZGluZy5zb3VyY2UgPT09IGNhbnZhcywgIlJlY29yZGluZyBzaG91bGQgYmUgb2Yg
dGhlIGdpdmVuIGNhbnZhcy4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHJl
Y29yZGluZy5zb3VyY2UuY29udGV4dFR5cGUgPT09IHR5cGUsIGBSZWNvcmRpbmcgc2hvdWxkIGJl
IG9mIGEgY2FudmFzIHdpdGggdHlwZSAiJHt0eXBlfSIuYCk7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChyZWNvcmRpbmcuc291cmNlLnJlY29yZGluZ0NvbGxlY3Rpb24uaGFzKHJl
Y29yZGluZyksICJSZWNvcmRpbmcgc2hvdWxkIGJlIGluIHRoZSBjYW52YXMnIGxpc3Qgb2YgcmVj
b3JkaW5ncy4iKTsKKwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZWNv
cmRpbmcuZGlzcGxheU5hbWUsICJURVNUIiwgIlRoZSByZWNvcmRpbmcgc2hvdWxkIGhhdmUgdGhl
IG5hbWUgXCJURVNUXCIuIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KHJlY29yZGluZy5mcmFtZXMubGVuZ3RoLCAxLCAiVGhlIHJlY29yZGluZyBzaG91bGQgaGF2ZSBv
bmUgZnJhbWUuIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlY29y
ZGluZy5mcmFtZXNbMF0uYWN0aW9ucy5sZW5ndGgsIDEsICJUaGUgZmlyc3QgZnJhbWUgc2hvdWxk
IGhhdmUgb25lIGFjdGlvbi4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351822</attachid>
            <date>2018-10-08 15:13:23 -0700</date>
            <delta_ts>2018-10-08 17:14:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190305-20181008151323.patch</filename>
            <type>text/plain</type>
            <size>48344</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDhkM2ZhMGJiNTAwYTllMWM5MDkxYWQ0YjliMGJh
YjJhMDNjMmZkMTUuLjk5NmI4NDJlYWE4MjIxMDE4OGM5ZDAwMGQ0MjkxOTU0Y2MyYzBmMGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTA1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
bGxvdyBtdWx0aXBsZSBjYW52YXNlcyB0byBiZSByZWNvcmRlZCBhdCB0aGUgc2FtZSB0aW1lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAzMDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgIE1vdmVkIHRoZSBsb2dp
YyBmb3IgbWFpbnRhaW5pbmcgd2hldGhlciBhIGNhbnZhcyBpcyBhY3RpdmVseSByZWNvcmRpbmcg
ZnJvbQorICAgICAgICBgV0kuQ2FudmFzTWFuYWdlcmAgdG8gYFdJLkNhbnZhc2AsIG1lYW5pbmcg
dGhhdCBlYWNoIGNhbnZhcyBjYW4gbm93IHJlY29yZCBpbmRlcGVuZGVudGx5IG9mCisgICAgICAg
IGV2ZXJ5IG90aGVyIGNhbnZhcyBpbiB0aGUgcGFnZS4gSWYgbXVsdGlwbGUgcmVjb3JkaW5ncyBh
cmUgYWxsIGZpbmlzaGVkIHNpbXVsdGFuZW91c2x5LCBvbmx5CisgICAgICAgIHNob3cgdGhlIGZp
cnN0IG9uZSB0byBiZSByZWNpZXZlZCBieSB0aGUgZnJvbnRlbmQuCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAgICAgIChXSS5DYW52
YXNNYW5hZ2VyKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnJlY29yZGlu
Z1Byb2dyZXNzKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnJlY29yZGlu
Z0ZpbmlzaGVkKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnByb2dyYW1D
cmVhdGVkKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnByb2dyYW1EZWxl
dGVkKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLl9yZW1vdmVDYW52YXMp
OgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX21haW5SZXNvdXJjZURpZENo
YW5nZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5nZXQgcmVjb3JkaW5n
Q2FudmFzKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnN0
YXJ0UmVjb3JkaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90
eXBlLnN0b3BSZWNvcmRpbmcpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5w
cm90b3R5cGUuX2Rpc3BhdGNoU2hhZGVyUHJvZ3JhbVJlbW92ZWQpOiBEZWxldGVkLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzOgorICAgICAgICAoV0kuQ2FudmFz
LnByb3RvdHlwZS5nZXQgcmVjb3JkaW5nRnJhbWVDb3VudCk6IEFkZGVkLgorICAgICAgICAoV0ku
Q2FudmFzLnByb3RvdHlwZS5nZXQgcmVjb3JkaW5nQnVmZmVyVXNlZCk6IEFkZGVkLgorICAgICAg
ICAoV0kuQ2FudmFzLnByb3RvdHlwZS5nZXQgcmVjb3JkaW5nQWN0aXZlKTogQWRkZWQuCisgICAg
ICAgIChXSS5DYW52YXMucHJvdG90eXBlLmdldCBpc1JlY29yZGluZyk6IERlbGV0ZWQuCisgICAg
ICAgIChXSS5DYW52YXMucHJvdG90eXBlLnN0YXJ0UmVjb3JkaW5nKTogQWRkZWQuCisgICAgICAg
IChXSS5DYW52YXMucHJvdG90eXBlLnN0b3BSZWNvcmRpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkNhbnZhcy5wcm90b3R5cGUucmVjb3JkaW5nUHJvZ3Jlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkNhbnZhcy5wcm90b3R5cGUucmVjb3JkaW5nRmluaXNoZWQpOiBBZGRlZC4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanM6CisgICAgICAgIChX
SS5DYW52YXNUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0ku
Q2FudmFzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkNh
bnZhc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVjb3JkaW5nSW1wb3J0ZWRPclN0b3BwZWQp
OgorICAgICAgICAoV0kuQ2FudmFzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVTcGFj
ZSk6CisgICAgICAgIChXSS5DYW52YXNUYWJDb250ZW50Vmlldyk6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzOgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3Jk
aW5nLWFjdGl2ZSk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlcik6IEFkZGVk
LgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUpOiBBZGRl
ZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlKTog
QWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4g
Lml0ZW0pOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhvdmVyLCAucmVjb3JkaW5nLWFjdGl2ZSkgPiBo
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2
ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5k
aXNhYmxlZCk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5u
YXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmhv
dmVyKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmln
YXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6YWN0aXZl
KTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZSk6IEFkZGVkLgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcmV2aWV3KTogQWRkZWQuCisgICAgICAgICguY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0
aXZlKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyKTogQWRkZWQuCisgICAg
ICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5y
ZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSk6IEFkZGVkLgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMuaXMtcmVjb3JkaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLmlzLXJlY29yZGluZyA+IGhlYWRlcik6IERl
bGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcy5pcy1yZWNvcmRpbmcgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLmlzLXJlY29yZGluZyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOiBE
ZWxldGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMuaXMtcmVjb3JkaW5nID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0
ZW0pOiBEZWxldGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXM6bWF0Y2hlcyg6aG92ZXIsIC5pcy1yZWNvcmRpbmcpID4gaGVhZGVy
ID4gLm5hdmlnYXRpb24tYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCguaXMtcmVjb3JkaW5nKSA+IGhl
YWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wLmRpc2FibGVk
KTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzOm5vdCguaXMtcmVjb3JkaW5nKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9u
LWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmhvdmVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzOm5vdCguaXMtcmVjb3JkaW5nKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+
IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSk6IERlbGV0ZWQu
CisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcy5pcy1yZWNvcmRpbmcgPiAucHJvZ3Jlc3MtdmllKTogRGVsZXRlZC4KKyAgICAgICAgKC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLmlzLXJlY29y
ZGluZyA+IC5wcmV2aWV3KTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLmlzLXJlY29yZGluZyk6IERlbGV0ZWQuCisg
ICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cy5pcy1yZWNvcmRpbmcgPiBoZWFkZXIpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuaXMtcmVjb3JkaW5nID4gaGVh
ZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuQ2FudmFzQ29u
dGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5w
cm90b3R5cGUuX3RvZ2dsZVJlY29yZGluZyk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmll
dy5wcm90b3R5cGUuX3JlY29yZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5fcmVjb3JkaW5nU3RvcHBlZCk6CisgICAgICAgIChXSS5DYW52YXND
b250ZW50Vmlldy5wcm90b3R5cGUuX3NoYWRlclByb2dyYW1BZGRlZCk6CisgICAgICAgIChXSS5D
YW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuX3NoYWRlclByb2dyYW1SZW1vdmVkKToKKyAgICAg
ICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlUmVjb3JkTmF2aWdhdGlv
bkl0ZW0pOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVQ
cm9ncmVzc1ZpZXcpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRl
YmFyUGFuZWwuanM6CisgICAgICAgIChXSS5DYW52YXNTaWRlYmFyUGFuZWwpOgorICAgICAgICAo
V0kuQ2FudmFzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5zZXQgY2FudmFzKToKKyAgICAgICAgKFdJ
LkNhbnZhc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZVJlY29yZGluZyk6CisgICAgICAg
IChXSS5DYW52YXNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl91cGRhdGVSZWNvcmROYXZpZ2F0aW9u
SXRlbSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50
LmpzOgorICAgICAgICAoV0kuQ2FudmFzVHJlZUVsZW1lbnQpOgorICAgICAgICAoV0kuQ2FudmFz
VHJlZUVsZW1lbnQucHJvdG90eXBlLl91cGRhdGVTdGF0dXMpOgorCiAyMDE4LTEwLTA4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBn
cm91cCBtZWRpYSBuZXR3b3JrIGVudHJpZXMgYnkgdGhlIG5vZGUgdGhhdCB0cmlnZ2VyZWQgdGhl
IHJlcXVlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCmluZGV4IDU0N2ViMjdjNWIx
Nzk5OWU3NzRiNjhiMTE5MzMzMDY3MmE4YWU4ZjUuLjBjMjJjNGI3NzgxOGNhY2UyMDY1NDVhNDg4
NzlkZjZkNDIwYjM0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwpAQCAtMzQs
OSArMzQsNiBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwID0gbmV3IE1hcDsK
ICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAgPSBuZXcgTWFwOwogCi0g
ICAgICAgIHRoaXMuX3JlY29yZGluZ0NhbnZhcyA9IG51bGw7Ci0gICAgICAgIHRoaXMuX3JlY29y
ZGluZ0ZyYW1lTWFwID0gbmV3IE1hcDsKLQogICAgICAgICBpZiAod2luZG93LkNhbnZhc0FnZW50
KQogICAgICAgICAgICAgQ2FudmFzQWdlbnQuZW5hYmxlKCk7CiAgICAgfQpAQCAtNTMsOCArNTAs
NiBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICByZXR1cm4gWy4uLnRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFw
LnZhbHVlcygpXTsKICAgICB9CiAKLSAgICBnZXQgcmVjb3JkaW5nQ2FudmFzKCkgeyByZXR1cm4g
dGhpcy5fcmVjb3JkaW5nQ2FudmFzOyB9Ci0KICAgICBpbXBvcnRSZWNvcmRpbmcoKQogICAgIHsK
ICAgICAgICAgV0kubG9hZERhdGFGcm9tRmlsZSgoZGF0YSwgZmlsZW5hbWUpID0+IHsKQEAgLTg0
LDQzICs3OSw2IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVu
ZHMgV0kuT2JqZWN0CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIHN0YXJ0UmVjb3JkaW5nKGNh
bnZhcywgc2luZ2xlRnJhbWUpCi0gICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5f
cmVjb3JkaW5nQ2FudmFzLCAiUmVjb3JkaW5nIGFscmVhZHkgc3RhcnRlZC4iKTsKLSAgICAgICAg
aWYgKHRoaXMuX3JlY29yZGluZ0NhbnZhcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICB0aGlzLl9yZWNvcmRpbmdDYW52YXMgPSBjYW52YXM7Ci0KLSAgICAgICAgQ2FudmFzQWdlbnQu
c3RhcnRSZWNvcmRpbmcoY2FudmFzLmlkZW50aWZpZXIsIHNpbmdsZUZyYW1lLCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJy
b3IoZXJyb3IpOwotICAgICAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZ0NhbnZhcyA9IG51bGw7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29y
ZGluZ1N0YXJ0ZWQsIHtjYW52YXN9KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgc3RvcFJl
Y29yZGluZygpCi0gICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yZWNvcmRpbmdD
YW52YXMsICJObyByZWNvcmRpbmcgc3RhcnRlZC4iKTsKLSAgICAgICAgaWYgKCF0aGlzLl9yZWNv
cmRpbmdDYW52YXMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IGNhbnZhcyA9
IHRoaXMuX3JlY29yZGluZ0NhbnZhczsKLQotICAgICAgICBDYW52YXNBZ2VudC5zdG9wUmVjb3Jk
aW5nKGNhbnZhcy5pZGVudGlmaWVyLCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGlmICghZXJy
b3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBjb25zb2xlLmVycm9y
KGVycm9yKTsKLSAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZ0NhbnZhcyA9IG51bGw7Ci0gICAg
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LlJlY29yZGluZ1N0b3BwZWQsIHtjYW52YXMsIHJlY29yZGluZzogbnVsbH0pOwotICAgICAg
ICB9KTsKLSAgICB9Ci0KICAgICBjYW52YXNBZGRlZChjYW52YXNQYXlsb2FkKQogICAgIHsKICAg
ICAgICAgLy8gQ2FsbGVkIGZyb20gV0kuQ2FudmFzT2JzZXJ2ZXIuCkBAIC0xNzgsMTkgKzEzNiw3
IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgIGlmICghY2FudmFzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IGxldCBleGlzdGluZ0ZyYW1lcyA9IHRoaXMuX3JlY29yZGluZ0ZyYW1lTWFwLmdldChjYW52YXNJ
ZGVudGlmaWVyKTsKLSAgICAgICAgaWYgKCFleGlzdGluZ0ZyYW1lcykgewotICAgICAgICAgICAg
ZXhpc3RpbmdGcmFtZXMgPSBbXTsKLSAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZ0ZyYW1lTWFw
LnNldChjYW52YXNJZGVudGlmaWVyLCBleGlzdGluZ0ZyYW1lcyk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBleGlzdGluZ0ZyYW1lcy5wdXNoKC4uLmZyYW1lc1BheWxvYWQubWFwKFdJLlJlY29yZGlu
Z0ZyYW1lLmZyb21QYXlsb2FkKSk7Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdQcm9ncmVzcywgewotICAgICAg
ICAgICAgY2FudmFzLAotICAgICAgICAgICAgZnJhbWVDb3VudDogZXhpc3RpbmdGcmFtZXMubGVu
Z3RoLAotICAgICAgICAgICAgYnVmZmVyVXNlZCwKLSAgICAgICAgfSk7CisgICAgICAgIGNhbnZh
cy5yZWNvcmRpbmdQcm9ncmVzcyhmcmFtZXNQYXlsb2FkLCBidWZmZXJVc2VkKTsKICAgICB9CiAK
ICAgICByZWNvcmRpbmdGaW5pc2hlZChjYW52YXNJZGVudGlmaWVyLCByZWNvcmRpbmdQYXlsb2Fk
KQpAQCAtMTk5LDI0ICsxNDUsMTAgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01h
bmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5fY2Fu
dmFzSWRlbnRpZmllck1hcC5nZXQoY2FudmFzSWRlbnRpZmllcik7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGNhbnZhcyk7Ci0KLSAgICAgICAgbGV0IGZyb21Db25zb2xlID0gY2FudmFzICE9PSB0
aGlzLl9yZWNvcmRpbmdDYW52YXM7Ci0gICAgICAgIGlmICghZnJvbUNvbnNvbGUpCi0gICAgICAg
ICAgICB0aGlzLl9yZWNvcmRpbmdDYW52YXMgPSBudWxsOwotCiAgICAgICAgIGlmICghY2FudmFz
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxldCBmcmFtZXMgPSB0aGlzLl9yZWNv
cmRpbmdGcmFtZU1hcC50YWtlKGNhbnZhc0lkZW50aWZpZXIpOwotICAgICAgICBsZXQgcmVjb3Jk
aW5nID0gcmVjb3JkaW5nUGF5bG9hZCA/IFdJLlJlY29yZGluZy5mcm9tUGF5bG9hZChyZWNvcmRp
bmdQYXlsb2FkLCBmcmFtZXMpIDogbnVsbDsKLSAgICAgICAgaWYgKHJlY29yZGluZykgewotICAg
ICAgICAgICAgcmVjb3JkaW5nLnNvdXJjZSA9IGNhbnZhczsKLSAgICAgICAgICAgIHJlY29yZGlu
Zy5jcmVhdGVEaXNwbGF5TmFtZShyZWNvcmRpbmdQYXlsb2FkLm5hbWUpOwotCi0gICAgICAgICAg
ICBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbi5hZGQocmVjb3JkaW5nKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFnZXIu
RXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwge2NhbnZhcywgcmVjb3JkaW5nLCBmcm9tQ29uc29sZX0p
OworICAgICAgICBjYW52YXMucmVjb3JkaW5nRmluaXNoZWQocmVjb3JkaW5nUGF5bG9hZCk7CiAg
ICAgfQogCiAgICAgZXh0ZW5zaW9uRW5hYmxlZChjYW52YXNJZGVudGlmaWVyLCBleHRlbnNpb24p
CkBAIC0yNDYsOCArMTc4LDYgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFn
ZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZp
ZXJNYXAuc2V0KHByb2dyYW0uaWRlbnRpZmllciwgcHJvZ3JhbSk7CiAKICAgICAgICAgY2FudmFz
LnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFkZChwcm9ncmFtKTsKLQotICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlNoYWRlclByb2dy
YW1BZGRlZCwge3Byb2dyYW19KTsKICAgICB9CiAKICAgICBwcm9ncmFtRGVsZXRlZChwcm9ncmFt
SWRlbnRpZmllcikKQEAgLTI2MCwxOCArMTkwLDE0IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFz
cyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgcHJvZ3JhbS5jYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24ucmVtb3ZlKHBy
b2dyYW0pOwotCi0gICAgICAgIHRoaXMuX2Rpc3BhdGNoU2hhZGVyUHJvZ3JhbVJlbW92ZWQocHJv
Z3JhbSk7CiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX3JlbW92ZUNhbnZhcyhjYW52
YXMpCiAgICAgewotICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNhbnZhcy5zaGFkZXJQcm9n
cmFtQ29sbGVjdGlvbikgeworICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNhbnZhcy5zaGFk
ZXJQcm9ncmFtQ29sbGVjdGlvbikKICAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVu
dGlmaWVyTWFwLmRlbGV0ZShwcm9ncmFtLmlkZW50aWZpZXIpOwotICAgICAgICAgICAgdGhpcy5f
ZGlzcGF0Y2hTaGFkZXJQcm9ncmFtUmVtb3ZlZChwcm9ncmFtKTsKLSAgICAgICAgfQogCiAgICAg
ICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbikgewog
ICAgICAgICAgICAgcmVjb3JkaW5nLnNvdXJjZSA9IG51bGw7CkBAIC0yOTUsMjAgKzIyMSwxMCBA
QCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVj
dAogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAg
ICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAgfQotCi0gICAgX2Rp
c3BhdGNoU2hhZGVyUHJvZ3JhbVJlbW92ZWQocHJvZ3JhbSkKLSAgICB7Ci0gICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuU2hhZGVyUHJv
Z3JhbVJlbW92ZWQsIHtwcm9ncmFtfSk7Ci0gICAgfQogfTsKIAogV0kuQ2FudmFzTWFuYWdlci5F
dmVudCA9IHsKICAgICBDYW52YXNBZGRlZDogImNhbnZhcy1tYW5hZ2VyLWNhbnZhcy13YXMtYWRk
ZWQiLAogICAgIENhbnZhc1JlbW92ZWQ6ICJjYW52YXMtbWFuYWdlci1jYW52YXMtd2FzLXJlbW92
ZWQiLAogICAgIFJlY29yZGluZ0ltcG9ydGVkOiAiY2FudmFzLW1hbmFnZXItcmVjb3JkaW5nLWlt
cG9ydGVkIiwKLSAgICBSZWNvcmRpbmdTdGFydGVkOiAiY2FudmFzLW1hbmFnZXItcmVjb3JkaW5n
LXN0YXJ0ZWQiLAotICAgIFJlY29yZGluZ1Byb2dyZXNzOiAiY2FudmFzLW1hbmFnZXItcmVjb3Jk
aW5nLXByb2dyZXNzIiwKLSAgICBSZWNvcmRpbmdTdG9wcGVkOiAiY2FudmFzLW1hbmFnZXItcmVj
b3JkaW5nLXN0b3BwZWQiLAotICAgIFNoYWRlclByb2dyYW1BZGRlZDogImNhbnZhcy1tYW5hZ2Vy
LXNoYWRlci1wcm9ncmFtLWFkZGVkIiwKLSAgICBTaGFkZXJQcm9ncmFtUmVtb3ZlZDogImNhbnZh
cy1tYW5hZ2VyLXNoYWRlci1wcm9ncmFtLXJlbW92ZWQiLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCmluZGV4IDRlZmRj
NTEyZWI4NWJhNjRmYzM0Y2Q1YjEwNjU2ZWVmYjFkYjVkYzQuLjRiYmViNGExYmYxNzkxZTYyYjVj
NjM5NTVhYjA5ZmM0ODE2MTk0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcwpAQCAtNDgsNiArNDgsMTAgQEAgV0kuQ2Fu
dmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX25leHRT
aGFkZXJQcm9ncmFtRGlzcGxheU51bWJlciA9IDE7CiAKICAgICAgICAgdGhpcy5fcmVxdWVzdE5v
ZGVQcm9taXNlID0gbnVsbDsKKworICAgICAgICB0aGlzLl9yZWNvcmRpbmdTdGF0ZSA9IFdJLkNh
bnZhcy5SZWNvcmRpbmdTdGF0ZS5JbmFjdGl2ZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkaW5nRnJh
bWVzID0gW107CisgICAgICAgIHRoaXMuX3JlY29yZGluZ0J1ZmZlclVzZWQgPSAwOwogICAgIH0K
IAogICAgIC8vIFN0YXRpYwpAQCAtMTE3LDEwICsxMjEsMTIgQEAgV0kuQ2FudmFzID0gY2xhc3Mg
Q2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgZ2V0IGJhY2t0cmFjZSgpIHsgcmV0dXJuIHRo
aXMuX2JhY2t0cmFjZTsgfQogICAgIGdldCBzaGFkZXJQcm9ncmFtQ29sbGVjdGlvbigpIHsgcmV0
dXJuIHRoaXMuX3NoYWRlclByb2dyYW1Db2xsZWN0aW9uOyB9CiAgICAgZ2V0IHJlY29yZGluZ0Nv
bGxlY3Rpb24oKSB7IHJldHVybiB0aGlzLl9yZWNvcmRpbmdDb2xsZWN0aW9uOyB9CisgICAgZ2V0
IHJlY29yZGluZ0ZyYW1lQ291bnQoKSB7IHJldHVybiB0aGlzLl9yZWNvcmRpbmdGcmFtZXMubGVu
Z3RoOyB9CisgICAgZ2V0IHJlY29yZGluZ0J1ZmZlclVzZWQoKSB7IHJldHVybiB0aGlzLl9yZWNv
cmRpbmdCdWZmZXJVc2VkOyB9CiAKLSAgICBnZXQgaXNSZWNvcmRpbmcoKQorICAgIGdldCByZWNv
cmRpbmdBY3RpdmUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFdJLmNhbnZhc01hbmFnZXIucmVj
b3JkaW5nQ2FudmFzID09PSB0aGlzOworICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkaW5nU3Rh
dGUgIT09IFdJLkNhbnZhcy5SZWNvcmRpbmdTdGF0ZS5JbmFjdGl2ZTsKICAgICB9CiAKICAgICBn
ZXQgbWVtb3J5Q29zdCgpCkBAIC0yNTcsNiArMjYzLDMwIEBAIFdJLkNhbnZhcyA9IGNsYXNzIENh
bnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBzdGFydFJl
Y29yZGluZyhzaW5nbGVGcmFtZSkKKyAgICB7CisgICAgICAgIENhbnZhc0FnZW50LnN0YXJ0UmVj
b3JkaW5nKHRoaXMuX2lkZW50aWZpZXIsIHNpbmdsZUZyYW1lLCAoZXJyb3IpID0+IHsKKyAgICAg
ICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3Ip
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
dGhpcy5fcmVjb3JkaW5nU3RhdGUgPSBXSS5DYW52YXMuUmVjb3JkaW5nU3RhdGUuQWN0aXZlOwor
ICAgICAgICAgICAgdGhpcy5fcmVjb3JkaW5nRnJhbWVzID0gW107CisgICAgICAgICAgICB0aGlz
Ll9yZWNvcmRpbmdCdWZmZXJVc2VkID0gMDsKKworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0YXJ0ZWQpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBzdG9wUmVjb3JkaW5nKCkKKyAgICB7CisgICAgICAgIENhbnZh
c0FnZW50LnN0b3BSZWNvcmRpbmcodGhpcy5faWRlbnRpZmllciwgKGVycm9yKSA9PiB7CisgICAg
ICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7
CisgICAgICAgIH0pOworICAgIH0KKwogICAgIHNhdmVJZGVudGl0eVRvQ29va2llKGNvb2tpZSkK
ICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9jc3NDYW52YXNOYW1lKQpAQCAtMjg3LDYgKzMxNywz
OCBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzLkV2ZW50LkNTU0NhbnZhc0Ns
aWVudE5vZGVzQ2hhbmdlZCk7CiAgICAgfQogCisgICAgcmVjb3JkaW5nUHJvZ3Jlc3MoZnJhbWVz
UGF5bG9hZCwgYnVmZmVyVXNlZCkKKyAgICB7CisgICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLkNh
bnZhc01hbmFnZXIuCisKKyAgICAgICAgdGhpcy5fcmVjb3JkaW5nRnJhbWVzLnB1c2goLi4uZnJh
bWVzUGF5bG9hZC5tYXAoV0kuUmVjb3JkaW5nRnJhbWUuZnJvbVBheWxvYWQpKTsKKworICAgICAg
ICB0aGlzLl9yZWNvcmRpbmdCdWZmZXJVc2VkID0gYnVmZmVyVXNlZDsKKworICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nUHJvZ3Jl
c3MpOworICAgIH0KKworICAgIHJlY29yZGluZ0ZpbmlzaGVkKHJlY29yZGluZ1BheWxvYWQpCisg
ICAgeworICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5DYW52YXNNYW5hZ2VyLgorCisgICAgICAg
IGxldCBmcm9tQ29uc29sZSA9ICF0aGlzLnJlY29yZGluZ0FjdGl2ZTsKKworICAgICAgICBsZXQg
cmVjb3JkaW5nID0gcmVjb3JkaW5nUGF5bG9hZCA/IFdJLlJlY29yZGluZy5mcm9tUGF5bG9hZChy
ZWNvcmRpbmdQYXlsb2FkLCB0aGlzLl9yZWNvcmRpbmdGcmFtZXMpIDogbnVsbDsKKyAgICAgICAg
aWYgKHJlY29yZGluZykgeworICAgICAgICAgICAgcmVjb3JkaW5nLnNvdXJjZSA9IHRoaXM7Cisg
ICAgICAgICAgICByZWNvcmRpbmcuY3JlYXRlRGlzcGxheU5hbWUocmVjb3JkaW5nUGF5bG9hZC5u
YW1lKTsKKworICAgICAgICAgICAgdGhpcy5fcmVjb3JkaW5nQ29sbGVjdGlvbi5hZGQocmVjb3Jk
aW5nKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3JlY29yZGluZ1N0YXRlID0gV0kuQ2Fu
dmFzLlJlY29yZGluZ1N0YXRlLkluYWN0aXZlOworICAgICAgICB0aGlzLl9yZWNvcmRpbmdGcmFt
ZXMgPSBbXTsKKyAgICAgICAgdGhpcy5fcmVjb3JkaW5nQnVmZmVyVXNlZCA9IDA7CisKKyAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGlu
Z1N0b3BwZWQsIHtyZWNvcmRpbmcsIGZyb21Db25zb2xlfSk7CisgICAgfQorCiAgICAgbmV4dFNo
YWRlclByb2dyYW1EaXNwbGF5TnVtYmVyKCkKICAgICB7CiAgICAgICAgIC8vIENhbGxlZCBmcm9t
IFdJLlNoYWRlclByb2dyYW0uCkBAIC0zMDgsOCArMzcwLDE2IEBAIFdJLkNhbnZhcy5Db250ZXh0
VHlwZSA9IHsKICAgICBXZWJHUFU6ICJ3ZWJncHUiLAogfTsKIAorV0kuQ2FudmFzLlJlY29yZGlu
Z1N0YXRlID0geworICAgIEluYWN0aXZlOiAiY2FudmFzLXJlY29yZGluZy1zdGF0ZS1pbmFjdGl2
ZSIsCisgICAgQWN0aXZlOiAiY2FudmFzLXJlY29yZGluZy1zdGF0ZS1hY3RpdmUiLAorfTsKKwog
V0kuQ2FudmFzLkV2ZW50ID0gewogICAgIE1lbW9yeUNoYW5nZWQ6ICJjYW52YXMtbWVtb3J5LWNo
YW5nZWQiLAogICAgIEV4dGVuc2lvbkVuYWJsZWQ6ICJjYW52YXMtZXh0ZW5zaW9uLWVuYWJsZWQi
LAogICAgIENTU0NhbnZhc0NsaWVudE5vZGVzQ2hhbmdlZDogImNhbnZhcy1jc3MtY2FudmFzLWNs
aWVudC1ub2Rlcy1jaGFuZ2VkIiwKKyAgICBSZWNvcmRpbmdTdGFydGVkOiAiY2FudmFzLXJlY29y
ZGluZy1zdGFydGVkIiwKKyAgICBSZWNvcmRpbmdQcm9ncmVzczogImNhbnZhcy1yZWNvcmRpbmct
cHJvZ3Jlc3MiLAorICAgIFJlY29yZGluZ1N0b3BwZWQ6ICJjYW52YXMtcmVjb3JkaW5nLXN0b3Bw
ZWQiLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKaW5kZXggMjI2OGYyNmVhMDkzNzUy
OWU0ZjdiYzdlZjFlZDQ5ZGJjMjdmMDJjNi4uNzdjYTZmNDM0NTEzZTZjYmIwYjIwYjNmOTg0YmY1
NGU0YThjY2E1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKQEAgLTE5NSw2ICsxOTUs
MTEgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRl
bmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CiAKICAgICAgICAg
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5N
ZW1vcnlDaGFuZ2VkLCB0aGlzLl91cGRhdGVNZW1vcnlDb3N0LCB0aGlzKTsKKyAgICAgICAgdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNv
cmRpbmdTdGFydGVkLCB0aGlzLl9yZWNvcmRpbmdTdGFydGVkLCB0aGlzKTsKKyAgICAgICAgdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNv
cmRpbmdQcm9ncmVzcywgdGhpcy5fcmVjb3JkaW5nUHJvZ3Jlc3MsIHRoaXMpOworICAgICAgICB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJl
Y29yZGluZ1N0b3BwZWQsIHRoaXMuX3JlY29yZGluZ1N0b3BwZWQsIHRoaXMpOworICAgICAgICB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFkZEV2ZW50TGlz
dGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIHRoaXMuX3NoYWRlclByb2dyYW1B
ZGRlZCwgdGhpcyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2hhZGVyUHJvZ3Jh
bUNvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1v
dmVkLCB0aGlzLl9zaGFkZXJQcm9ncmFtUmVtb3ZlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0Tm9kZSgpLnRoZW4oKG5vZGUpID0+IHsKICAgICAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9jYW52YXNOb2RlIHx8IHRoaXMuX2NhbnZhc05vZGUg
PT09IG5vZGUpOwpAQCAtMjA2LDI1ICsyMTEsMTkgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAg
ICB0aGlzLl9jYW52YXNOb2RlLmFkZEV2ZW50TGlzdGVuZXIoV0kuRE9NTm9kZS5FdmVudC5BdHRy
aWJ1dGVSZW1vdmVkLCB0aGlzLl9yZWZyZXNoUGl4ZWxTaXplLCB0aGlzKTsKICAgICAgICAgfSk7
CiAKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQuUmVjb3JkaW5nU3RhcnRlZCwgdGhpcy5fcmVjb3JkaW5nU3RhcnRlZCwgdGhp
cyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNN
YW5hZ2VyLkV2ZW50LlJlY29yZGluZ1Byb2dyZXNzLCB0aGlzLl9yZWNvcmRpbmdQcm9ncmVzcywg
dGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52
YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX3JlY29yZGluZ1N0b3BwZWQs
IHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5TaGFkZXJQcm9ncmFtQWRkZWQsIHRoaXMuX3NoYWRlclByb2dyYW1B
ZGRlZCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihX
SS5DYW52YXNNYW5hZ2VyLkV2ZW50LlNoYWRlclByb2dyYW1SZW1vdmVkLCB0aGlzLl9zaGFkZXJQ
cm9ncmFtUmVtb3ZlZCwgdGhpcyk7Ci0KICAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3Jp
ZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5fdXBkYXRl
SW1hZ2VHcmlkLCB0aGlzKTsKICAgICB9CiAKICAgICBkZXRhY2hlZCgpCiAgICAgewogICAgICAg
ICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwg
dGhpcyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2hhZGVyUHJvZ3JhbUNvbGxl
Y3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAgICBp
ZiAodGhpcy5fY2FudmFzTm9kZSkgewogICAgICAgICAgICAgdGhpcy5fY2FudmFzTm9kZS5yZW1v
dmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogICAgICAgICAgICAgdGhpcy5fY2Fu
dmFzTm9kZSA9IG51bGw7CiAgICAgICAgIH0KIAotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJl
bW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAgICAgICAgIFdJLnNldHRpbmdz
LnNob3dJbWFnZUdyaWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAog
ICAgICAgICBzdXBlci5kZXRhY2hlZCgpOwpAQCAtMjQ4LDExICsyNDcsMTEgQEAgV0kuQ2FudmFz
Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRW
aWV3CiAKICAgICBfdG9nZ2xlUmVjb3JkaW5nKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKHRo
aXMucmVwcmVzZW50ZWRPYmplY3QuaXNSZWNvcmRpbmcpCi0gICAgICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLnN0b3BSZWNvcmRpbmcoKTsKLSAgICAgICAgZWxzZSBpZiAoIVdJLmNhbnZhc01hbmFn
ZXIucmVjb3JkaW5nQ2FudmFzKSB7CisgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnJlY29yZGluZ0FjdGl2ZSkKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc3Rv
cFJlY29yZGluZygpOworICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGxldCBzaW5nbGVGcmFt
ZSA9IGV2ZW50LmRhdGEubmF0aXZlRXZlbnQuc2hpZnRLZXk7Ci0gICAgICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLnN0YXJ0UmVjb3JkaW5nKHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIHNpbmdsZUZy
YW1lKTsKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc3RhcnRSZWNvcmRpbmco
c2luZ2xlRnJhbWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNjQsNDEgKzI2MywyMyBAQCBX
SS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29udGVudFZpZXcKIAogICAgIF9yZWNvcmRpbmdQcm9ncmVzcyhldmVudCkKICAgICB7Ci0gICAg
ICAgIGxldCB7Y2FudmFzLCBmcmFtZUNvdW50LCBidWZmZXJVc2VkfSA9IGV2ZW50LmRhdGE7Ci0g
ICAgICAgIGlmIChjYW52YXMgIT09IHRoaXMucmVwcmVzZW50ZWRPYmplY3QpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlUHJvZ3Jlc3NWaWV3KGZyYW1lQ291bnQs
IGJ1ZmZlclVzZWQpOworICAgICAgICB0aGlzLl91cGRhdGVQcm9ncmVzc1ZpZXcoKTsKICAgICB9
CiAKICAgICBfcmVjb3JkaW5nU3RvcHBlZChldmVudCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVJlY29yZE5hdmlnYXRpb25JdGVtKCk7Ci0KLSAgICAgICAgbGV0IHtjYW52YXN9ID0gZXZl
bnQuZGF0YTsKLSAgICAgICAgaWYgKGNhbnZhcyAhPT0gdGhpcy5yZXByZXNlbnRlZE9iamVjdCkK
LSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICB0aGlzLl91cGRhdGVQcm9ncmVzc1ZpZXco
KTsKLQogICAgICAgICB0aGlzLl91cGRhdGVWaWV3UmVsYXRlZEl0ZW1zKCk7CiAgICAgfQogCiAg
ICAgX3NoYWRlclByb2dyYW1BZGRlZChldmVudCkKICAgICB7Ci0gICAgICAgIGxldCB7c2hhZGVy
UHJvZ3JhbX0gPSBldmVudC5kYXRhOwotICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0gfHwgc2hh
ZGVyUHJvZ3JhbS5jYW52YXMgIT09IHRoaXMucmVwcmVzZW50ZWRPYmplY3QpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KICAgICAgICAgdGhpcy5fdXBkYXRlVmlld1JlbGF0ZWRJdGVtcygpOwogICAg
IH0KIAogICAgIF9zaGFkZXJQcm9ncmFtUmVtb3ZlZChldmVudCkKICAgICB7Ci0gICAgICAgIGxl
dCB7c2hhZGVyUHJvZ3JhbX0gPSBldmVudC5kYXRhOwotICAgICAgICBpZiAoIXNoYWRlclByb2dy
YW0gfHwgc2hhZGVyUHJvZ3JhbS5jYW52YXMgIT09IHRoaXMucmVwcmVzZW50ZWRPYmplY3QpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgdGhpcy5fdXBkYXRlVmlld1JlbGF0ZWRJdGVt
cygpOwogICAgIH0KIApAQCAtMzgyLDE4ICszNjMsMTUgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcg
PSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAg
IGlmICghdGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdhdGlvbkl0ZW0pCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgbGV0IGlzUmVjb3JkaW5nID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5p
c1JlY29yZGluZzsKLSAgICAgICAgdGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5h
YmxlZCA9IGlzUmVjb3JkaW5nIHx8ICFXSS5jYW52YXNNYW5hZ2VyLnJlY29yZGluZ0NhbnZhczsK
LSAgICAgICAgdGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9nZ2xlZCA9IGlzUmVj
b3JkaW5nOwotCi0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFi
bGVkID0gIWlzUmVjb3JkaW5nOwotCi0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QudG9n
Z2xlKCJpcy1yZWNvcmRpbmciLCBpc1JlY29yZGluZyk7CisgICAgICAgIGxldCByZWNvcmRpbmdB
Y3RpdmUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlY29yZGluZ0FjdGl2ZTsKKyAgICAgICAg
dGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9nZ2xlZCA9IHJlY29yZGluZ0FjdGl2
ZTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSAh
cmVjb3JkaW5nQWN0aXZlOworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgi
cmVjb3JkaW5nLWFjdGl2ZSIsIHJlY29yZGluZ0FjdGl2ZSk7CiAgICAgfQogCi0gICAgX3VwZGF0
ZVByb2dyZXNzVmlldyhmcmFtZUNvdW50LCBidWZmZXJVc2VkKQorICAgIF91cGRhdGVQcm9ncmVz
c1ZpZXcoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlzUmVj
b3JkaW5nKSB7CisgICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZWNvcmRpbmdB
Y3RpdmUpIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9wcm9ncmVzc1ZpZXcgJiYgdGhpcy5fcHJv
Z3Jlc3NWaWV3LnBhcmVudFZpZXcpIHsKICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZVN1YnZp
ZXcodGhpcy5fcHJvZ3Jlc3NWaWV3KTsKICAgICAgICAgICAgICAgICB0aGlzLl9wcm9ncmVzc1Zp
ZXcgPSBudWxsOwpAQCAtNDA3LDE1ICszODUsMTUgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAg
ICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fcHJvZ3Jlc3NWaWV3KTsKICAgICAgICAgfQogCi0gICAg
ICAgIGxldCB0aXRsZTsKLSAgICAgICAgaWYgKGZyYW1lQ291bnQpIHsKLSAgICAgICAgICAgIGxl
dCBmb3JtYXRTdHJpbmcgPSBmcmFtZUNvdW50ID09PSAxID8gV0kuVUlTdHJpbmcoIiVkIEZyYW1l
IikgOiBXSS5VSVN0cmluZygiJWQgRnJhbWVzIik7Ci0gICAgICAgICAgICB0aXRsZSA9IGZvcm1h
dFN0cmluZy5mb3JtYXQoZnJhbWVDb3VudCk7CisgICAgICAgIGxldCB0aXRsZSA9IG51bGw7Cisg
ICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlY29yZGluZ0ZyYW1lQ291bnQpIHsK
KyAgICAgICAgICAgIGxldCBmb3JtYXRTdHJpbmcgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJl
Y29yZGluZ0ZyYW1lQ291bnQgPT09IDEgPyBXSS5VSVN0cmluZygiJWQgRnJhbWUiKSA6IFdJLlVJ
U3RyaW5nKCIlZCBGcmFtZXMiKTsKKyAgICAgICAgICAgIHRpdGxlID0gZm9ybWF0U3RyaW5nLmZv
cm1hdCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlY29yZGluZ0ZyYW1lQ291bnQpOwogICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIHRpdGxlID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIGZy
YW1lc+KApiIpOwogCiAgICAgICAgIHRoaXMuX3Byb2dyZXNzVmlldy50aXRsZSA9IHRpdGxlOwot
ICAgICAgICB0aGlzLl9wcm9ncmVzc1ZpZXcuc3VidGl0bGUgPSBidWZmZXJVc2VkID8gTnVtYmVy
LmJ5dGVzVG9TdHJpbmcoYnVmZmVyVXNlZCkgOiAiIjsKKyAgICAgICAgdGhpcy5fcHJvZ3Jlc3NW
aWV3LnN1YnRpdGxlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZWNvcmRpbmdCdWZmZXJVc2Vk
ID8gTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZWNvcmRpbmdC
dWZmZXJVc2VkKSA6ICIiOwogICAgIH0KIAogICAgIF91cGRhdGVWaWV3UmVsYXRlZEl0ZW1zKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKaW5kZXggNWY1NDYz
YTA5ZGQ0Y2NlN2I5Y2I3NDBkYjYxNTdiNmVjNjc3NTg4My4uMzllODc2ZDAyMmIwMGZmNjZiZGYy
ZmViOTEyM2Y1N2NhZmY1ZTJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250
ZW50Vmlldy5jc3MKQEAgLTQzLDcgKzQzLDcgQEAKICAgICBjdXJzb3I6IHBvaW50ZXI7CiB9CiAK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLmlzLXJl
Y29yZGluZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKICAgICBib3JkZXItY29sb3I6IHJlZDsKIH0KIApAQCAt
NjIsNyArNjIsNyBAQAogICAgIGZvbnQtc2l6ZTogMTNweDsKIH0KIAotLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuaXMtcmVjb3JkaW5nID4gaGVhZGVy
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJl
Y29yZGluZy1hY3RpdmUgPiBoZWFkZXIgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKIH0K
IApAQCAtODQsMTUgKzg0LDE1IEBACiAgICAgY29udGVudDogIiDigJQgIjsKIH0KIAotLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuaXMtcmVjb3JkaW5n
ID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRp
dGxlcyA+IC50aXRsZSB7CiAgICAgY29sb3I6IHdoaXRlOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5pcy1yZWNvcmRpbmcgPiBoZWFkZXIg
PiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4g
LnN1YnRpdGxlIHsKICAgICBjb2xvcjogdmFyKC0tc2VsZWN0ZWQtc2Vjb25kYXJ5LXRleHQtY29s
b3IpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcy5pcy1yZWNvcmRpbmcgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7Cisu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRp
bmctYWN0aXZlID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gewogICAgIGZpbHRl
cjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoKTsKIH0KIApAQCAtMTAzLDMwICsxMDMsMzAgQEAKICAg
ICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpob3Zlciwg
LmlzLXJlY29yZGluZykgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bWF0Y2hlcyg6aG92ZXIsIC5y
ZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CiAgICAgb3BhY2l0
eTogMTsKICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLmlz
LXJlY29yZGluZykgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3Rh
cnQtc3RvcC5kaXNhYmxlZCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3AuZGlzYWJsZWQgewogICAgIGZpbHRlcjog
Z3JheXNjYWxlKCk7CiAgICAgb3BhY2l0eTogMC41OwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLmlzLXJlY29yZGluZykgPiBoZWFk
ZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2Fi
bGVkKTpob3ZlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6aG92ZXIgewogICAgIGZp
bHRlcjogYnJpZ2h0bmVzcyg5NSUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLmlzLXJlY29yZGluZykgPiBoZWFkZXIgPiAubmF2
aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTphY3Rp
dmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6
bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
LnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSB7CiAgICAgZmlsdGVyOiBi
cmlnaHRuZXNzKDgwJSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzLmlzLXJlY29yZGluZyA+IC5wcm9ncmVzcy12aWV3LAorLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2
ZSA+IC5wcm9ncmVzcy12aWV3LAogLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiAucHJldmlldyB7CiAgICAgaGVpZ2h0OiAyODBweDsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuaXMtcmVjb3Jk
aW5nID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcmV2aWV3IHsKICAgICBkaXNwbGF5OiBu
b25lOwogfQogCkBAIC0xOTYsMTIgKzE5NiwxMiBAQAogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLXNlY29uZGFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuaXMtcmVjb3JkaW5n
IHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlIHsKICAgICAgICAgLS1yZWNvcmRpbmctY29sb3I6IGhzbCgwLCAx
MDAlLCAzOSUpOwogICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xvcik7
CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMuaXMtcmVjb3JkaW5nID4gaGVhZGVyIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVy
IHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmVjb3JkaW5nLWNvbG9yKTsKICAg
ICB9CiAKQEAgLTIxOCw3ICsyMTgsNyBAQAogICAgICAgICBmaWx0ZXI6IGludmVydCgpOwogICAg
IH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzLmlzLXJlY29yZGluZyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworICAgIC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGlu
Zy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKICAgICAgICAgY29sb3I6
IHVuc2V0OwogICAgICAgICBvcGFjaXR5OiAwLjUKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFy
UGFuZWwuanMKaW5kZXggODg1ZWU0ZmQ5ODc0NTY3MTNiZDQ2YjIwZjYyYjk1MmExZWE1YTQxOC4u
Y2Q3Y2E5MzZhN2U1MWViMWI3ZDI0OTc1ZDUwZjZkYzNkMWI3MWQyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c1NpZGViYXJQYW5lbC5qcwpAQCAtNjUsOSArNjUsNiBAQCBXSS5DYW52YXNTaWRlYmFyUGFuZWwg
PSBjbGFzcyBDYW52YXNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhclBh
bgogICAgICAgICB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRy
ZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5fdHJlZU91dGxpbmVTZWxl
Y3Rpb25EaWRDaGFuZ2UsIHRoaXMpOwogICAgICAgICB0aGlzLl9yZWNvcmRpbmdUcmVlT3V0bGlu
ZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5n
ZSwgdGhpcy5fdHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMpOwogCi0gICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50
LlJlY29yZGluZ1N0YXJ0ZWQsIHRoaXMuX3VwZGF0ZVJlY29yZE5hdmlnYXRpb25JdGVtLCB0aGlz
KTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5fdXBkYXRlUmVjb3JkTmF2aWdhdGlv
bkl0ZW0sIHRoaXMpOwotCiAgICAgICAgIHRoaXMuX3JlY29yZGluZ1Byb2Nlc3NpbmdPcHRpb25z
Q29udGFpbmVyID0gbnVsbDsKIAogICAgICAgICB0aGlzLl9zZWxlY3RlZFJlY29yZGluZ0FjdGlv
bkluZGV4ID0gTmFOOwpAQCAtODUsMTEgKzgyLDE1IEBAIFdJLkNhbnZhc1NpZGViYXJQYW5lbCA9
IGNsYXNzIENhbnZhc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRlYmFyUGFu
CiAgICAgICAgIGlmICh0aGlzLl9jYW52YXMgPT09IGNhbnZhcykKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBpZiAodGhpcy5fY2FudmFzKQorICAgICAgICBpZiAodGhpcy5fY2FudmFz
KSB7CisgICAgICAgICAgICB0aGlzLl9jYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBu
dWxsLCB0aGlzKTsKICAgICAgICAgICAgIHRoaXMuX2NhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9u
LnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CisgICAgICAgIH0KIAogICAg
ICAgICB0aGlzLl9jYW52YXMgPSBjYW52YXM7CiAgICAgICAgIGlmICh0aGlzLl9jYW52YXMpIHsK
KyAgICAgICAgICAgIHRoaXMuX2NhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVu
dC5SZWNvcmRpbmdTdGFydGVkLCB0aGlzLl91cGRhdGVSZWNvcmROYXZpZ2F0aW9uSXRlbSwgdGhp
cyk7CisgICAgICAgICAgICB0aGlzLl9jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMu
RXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5fdXBkYXRlUmVjb3JkTmF2aWdhdGlvbkl0ZW0s
IHRoaXMpOwogICAgICAgICAgICAgdGhpcy5fY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24uYWRk
RXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhpcy5fcmVjb3Jk
aW5nQWRkZWQsIHRoaXMpOwogICAgICAgICAgICAgdGhpcy5fY2FudmFzLnJlY29yZGluZ0NvbGxl
Y3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0
aGlzLl9yZWNvcmRpbmdSZW1vdmVkLCB0aGlzKTsKICAgICAgICAgfQpAQCAtMjgzLDExICsyODQs
MTEgQEAgV0kuQ2FudmFzU2lkZWJhclBhbmVsID0gY2xhc3MgQ2FudmFzU2lkZWJhclBhbmVsIGV4
dGVuZHMgV0kuTmF2aWdhdGlvblNpZGViYXJQYW4KICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXMp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKHRoaXMuX2NhbnZhcy5pc1JlY29y
ZGluZykKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc3RvcFJlY29yZGluZygpOwotICAg
ICAgICBlbHNlIGlmICghV0kuY2FudmFzTWFuYWdlci5yZWNvcmRpbmdDYW52YXMpIHsKKyAgICAg
ICAgaWYgKHRoaXMuX2NhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCisgICAgICAgICAgICB0aGlzLl9j
YW52YXMuc3RvcFJlY29yZGluZygpOworICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGxldCBz
aW5nbGVGcmFtZSA9IGV2ZW50LmRhdGEubmF0aXZlRXZlbnQuc2hpZnRLZXk7Ci0gICAgICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLnN0YXJ0UmVjb3JkaW5nKHRoaXMuX2NhbnZhcywgc2luZ2xlRnJh
bWUpOworICAgICAgICAgICAgdGhpcy5fY2FudmFzLnN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZyYW1l
KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDQ1LDkgKzQ0Niw3IEBAIFdJLkNhbnZhc1NpZGVi
YXJQYW5lbCA9IGNsYXNzIENhbnZhc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25T
aWRlYmFyUGFuCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBsZXQg
aXNSZWNvcmRpbmcgPSB0aGlzLl9jYW52YXMuaXNSZWNvcmRpbmc7Ci0gICAgICAgIHRoaXMuX3Jl
Y29yZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBpc1JlY29yZGluZyB8fCAhV0kuY2Fu
dmFzTWFuYWdlci5yZWNvcmRpbmdDYW52YXM7Ci0gICAgICAgIHRoaXMuX3JlY29yZEJ1dHRvbk5h
dmlnYXRpb25JdGVtLnRvZ2dsZWQgPSBpc1JlY29yZGluZzsKKyAgICAgICAgdGhpcy5fcmVjb3Jk
QnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9nZ2xlZCA9IHRoaXMuX2NhbnZhcy5yZWNvcmRpbmdBY3Rp
dmU7CiAgICAgfQogCiAgICAgX3VwZGF0ZVJlY29yZGluZ1Njb3BlQmFyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRl
bnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzVGFiQ29udGVudFZpZXcuanMKaW5kZXggY2FjMmEyZTlkNTI0NWQ3N2VmM2MxMmMxMzAxYWY5
NTAxNjIwNzgwMS4uZjBmNWFkNWI3MTI2YWZiMmVmZWM3YWJjMTU5YmQ1NzA4NmMxYjMyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
VGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMKQEAgLTEyNSw3ICsxMjUsNyBAQCBXSS5D
YW52YXNUYWJDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudEJyb3dzZXJUYQogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgdGhpcy5faGFuZGxlQ2Fu
dmFzQWRkZWQsIHRoaXMpOwogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52
YXNSZW1vdmVkLCB0aGlzKTsKICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nSW1wb3J0ZWQsIHRoaXMuX3JlY29y
ZGluZ0ltcG9ydGVkT3JTdG9wcGVkLCB0aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5h
ZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwg
dGhpcy5fcmVjb3JkaW5nSW1wb3J0ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAgICBXSS5DYW52
YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhp
cy5fcmVjb3JkaW5nSW1wb3J0ZWRPclN0b3BwZWQsIHRoaXMpOwogCiAgICAgICAgIGxldCBjYW52
YXNlcyA9IG5ldyBTZXQoWy4uLnRoaXMuX2NhbnZhc0NvbGxlY3Rpb24sIC4uLldJLmNhbnZhc01h
bmFnZXIuY2FudmFzZXNdKTsKIApAQCAtMTQyLDggKzE0Miw4IEBAIFdJLkNhbnZhc1RhYkNvbnRl
bnRWaWV3ID0gY2xhc3MgQ2FudmFzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJv
d3NlclRhCiAKICAgICBkZXRhY2hlZCgpCiAgICAgeworICAgICAgICBXSS5DYW52YXMucmVtb3Zl
RXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKICAgICAgICAgV0kuY2FudmFzTWFuYWdl
ci5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwotICAgICAgICBXSS5SZWNv
cmRpbmdDb250ZW50Vmlldy5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwog
CiAgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CiAgICAgfQpAQCAtMjE0LDcgKzIxNCw3IEBAIFdJ
LkNhbnZhc1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzVGFiQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS5Db250ZW50QnJvd3NlclRhCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhp
cy5fcmVjb3JkaW5nQWRkZWQocmVjb3JkaW5nLCB7Ci0gICAgICAgICAgICBzdXBwcmVzc1Nob3dS
ZWNvcmRpbmc6IGV2ZW50LmRhdGEuZnJvbUNvbnNvbGUsCisgICAgICAgICAgICBzdXBwcmVzc1No
b3dSZWNvcmRpbmc6IGV2ZW50LmRhdGEuZnJvbUNvbnNvbGUgfHwgdGhpcy5jb250ZW50QnJvd3Nl
ci5jdXJyZW50UmVwcmVzZW50ZWRPYmplY3RzLnNvbWUoKHJlcHJlc2VudGVkT2JqZWN0KSA9PiBy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZyksCiAgICAgICAgIH0pOwog
ICAgIH0KIApAQCAtMjQzLDExICsyNDMsMTEgQEAgV0kuQ2FudmFzVGFiQ29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGEKICAg
ICAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKGNh
bnZhcy5pc1JlY29yZGluZykKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc3RvcFJlY29y
ZGluZygpOwotICAgICAgICBlbHNlIGlmICghV0kuY2FudmFzTWFuYWdlci5yZWNvcmRpbmdDYW52
YXMpIHsKKyAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCisgICAgICAgICAgICBj
YW52YXMuc3RvcFJlY29yZGluZygpOworICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGxldCBz
aW5nbGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7Ci0gICAgICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLnN0YXJ0UmVjb3JkaW5nKGNhbnZhcywgc2luZ2xlRnJhbWUpOworICAgICAgICAgICAgY2Fu
dmFzLnN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZyYW1lKTsKICAgICAgICAgfQogCiAgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50LmpzCmluZGV4IGVi
ZTE4NmIwZmU0MmU0ZjIyNGM4M2M5MGU2OTNmZGY0NDYxMTIyNjguLjE0NGQ0MmExZDdhYjllYzNj
ZTM3MDQ1NzViNjQ0MTJlZTBlNjA4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50LmpzCkBA
IC0zNCw5ICszNCw4IEBAIFdJLkNhbnZhc1RyZWVFbGVtZW50ID0gY2xhc3MgQ2FudmFzVHJlZUVs
ZW1lbnQgZXh0ZW5kcyBXSS5Gb2xkZXJpemVkVHJlZUVsZW1lbnQKIAogICAgICAgICB0aGlzLnJl
Z2lzdGVyRm9sZGVyaXplU2V0dGluZ3MoInNoYWRlci1wcm9ncmFtcyIsIFdJLlVJU3RyaW5nKCJT
aGFkZXIgUHJvZ3JhbXMiKSwgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaGFkZXJQcm9ncmFtQ29s
bGVjdGlvbiwgV0kuU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50KTsKIAotICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRp
bmdTdGFydGVkLCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdT
dG9wcGVkLCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOwotCisgICAgICAgIHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3Rh
cnRlZCwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVk
LCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOwogICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlv
bi5FdmVudC5JdGVtQWRkZWQsIHRoaXMuX2hhbmRsZUl0ZW1BZGRlZCwgdGhpcyk7CiAgICAgICAg
IHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uYWRkRXZlbnRM
aXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9oYW5kbGVJdGVt
UmVtb3ZlZCwgdGhpcyk7CiAKQEAgLTEzNywxNCArMTM2LDE0IEBAIFdJLkNhbnZhc1RyZWVFbGVt
ZW50ID0gY2xhc3MgQ2FudmFzVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5Gb2xkZXJpemVkVHJlZUVs
ZW1lbnQKIAogICAgIF91cGRhdGVTdGF0dXMoKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMucmVw
cmVzZW50ZWRPYmplY3QuaXNSZWNvcmRpbmcpIHsKLSAgICAgICAgICAgIGlmICghdGhpcy5zdGF0
dXMgfHwgIXRoaXMuc3RhdHVzW1dJLkNhbnZhc1RyZWVFbGVtZW50LlNwaW5uZXJTeW1ib2xdKSB7
CisgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlY29yZGluZ0FjdGl2ZSkgewor
ICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXR1cyB8fCAhdGhpcy5zdGF0dXMuX19zaG93aW5nU3Bp
bm5lcikgewogICAgICAgICAgICAgICAgIGxldCBzcGlubmVyID0gbmV3IFdJLkluZGV0ZXJtaW5h
dGVQcm9ncmVzc1NwaW5uZXI7CiAgICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBzcGlubmVy
LmVsZW1lbnQ7Ci0gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXNbV0kuQ2FudmFzVHJlZUVsZW1l
bnQuU3Bpbm5lclN5bWJvbF0gPSB0cnVlOworICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzLl9f
c2hvd2luZ1NwaW5uZXIgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzICYmIHRoaXMuc3RhdHVzW1dJLkNhbnZhc1RyZWVF
bGVtZW50LlNwaW5uZXJTeW1ib2xdKQorICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzICYmIHRo
aXMuc3RhdHVzLl9fc2hvd2luZ1NwaW5uZXIpCiAgICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMg
PSAiIjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5YTQwMDMzZGUwZGU5NWJlN2QwN2M5NTVl
MGQyZmM4ZDQ3ODNjYmY0Li41NDIwMDYyNDM0ZDFmNjU4MzZmMWM0ZTc5ODRhYmI2MmViZmUzMWJj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFsbG93IG11bHRpcGxlIGNh
bnZhc2VzIHRvIGJlIHJlY29yZGVkIGF0IHRoZSBzYW1lIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDMwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEJyaWFuIEJ1cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0y
ZC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWJpdG1hcHJlbmRl
cmVyLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctZXhwZWN0ZWQu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qczoKKyAgICAgICAg
KFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LnN0YXJ0UmVjb3JkaW5nLmhhbmRs
ZVJlY29yZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6
ZXIud2luZG93LnN0YXJ0UmVjb3JkaW5nKToKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5p
dGlhbGl6ZXIud2luZG93LmNvbnNvbGVSZWNvcmQpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0
ZXJJbml0aWFsaXplcik6CisKIDIwMTgtMTAtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdyb3VwIG1lZGlhIG5ldHdvcmsgZW50
cmllcyBieSB0aGUgbm9kZSB0aGF0IHRyaWdnZXJlZCB0aGUgcmVxdWVzdApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctMmQuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLTJkLmh0bWwKaW5kZXggN2QzNzI1YTgwYTU5
NTQyNjUwYzc3YjNlM2Q0YjhlYjMwOGM5MWMxZC4uY2ZiYTk4MDFjOWMwMDg2OTJhNWZjOWIwMWUy
OTUzZmRiNWQ2OWFhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZWNvcmRpbmctMmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29y
ZGluZy0yZC5odG1sCkBAIC00NTIsNyArNDUyLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAg
ICAgbmFtZTogIkNhbnZhcy5yZWNvcmRpbmcyRC5Db25zb2xlIiwKICAgICAgICAgZGVzY3JpcHRp
b246ICJDaGVjayB0aGF0IGEgcmVjb3JkaW5nIGNhbiBiZSB0cmlnZ2VyZWQgYnkgY29uc29sZS5y
ZWNvcmQoKS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAg
Y29uc29sZVJlY29yZChyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgY29uc29sZVJlY29y
ZChXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQsIHJlc29sdmUsIHJlamVjdCk7CiAgICAg
ICAgIH0sCiAgICAgfSk7CiAKQEAgLTQ2Niw3ICs0NjYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5n
U3RvcHBlZCkKKyAgICAgICAgICAgIGNhbnZhcy5hd2FpdEV2ZW50KFdJLkNhbnZhcy5FdmVudC5S
ZWNvcmRpbmdTdG9wcGVkKQogICAgICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7CiAgICAgICAg
ICAgICAgICAgbGV0IHJlY29yZGluZyA9IGV2ZW50LmRhdGEucmVjb3JkaW5nLnRvSlNPTigpOwog
CkBAIC01MDQsMjYgKzUwNCwyNSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogCiAgICAgICAgICAgICBs
ZXQgZXZlbnRDb3VudCA9IDA7CiAgICAgICAgICAgICBmdW5jdGlvbiBoYW5kbGVSZWNvcmRpbmdT
dG9wcGVkKGV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZl
bnQuZGF0YS5jYW52YXMgPT09IGNhbnZhcywgIldlIHNob3VsZCBoYXZlIHN0b3BwZWQgcmVjb3Jk
aW5nIHRoZSBzZWxlY3RlZCBjYW52YXMuIik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoIWV2ZW50LmRhdGEucmVjb3JkaW5nLCAiVGhlIHJlY29yZGluZyBwYXlsb2FkIHNo
b3VsZCBiZSBudWxsLiIpOwogCiAgICAgICAgICAgICAgICAgKytldmVudENvdW50OwogICAgICAg
ICAgICAgICAgIGlmIChldmVudENvdW50ID09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5wYXNzKCJBIHJlY29yZGluZyBzaG91bGQgaGF2ZSBiZWVuIHN0YXJ0ZWQgYW5k
IHN0b3BwZWQgb25jZS4iKTsKIAotICAgICAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2Vy
LnN0YXJ0UmVjb3JkaW5nKGNhbnZhcyk7Ci0gICAgICAgICAgICAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuc3RvcFJlY29yZGluZygpOworICAgICAgICAgICAgICAgICAgICBjYW52YXMuc3RhcnRS
ZWNvcmRpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFzLnN0b3BSZWNvcmRpbmcoKTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50Q291bnQgPj0gMikgewogICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoIkEgcmVjb3JkaW5nIHNob3VsZCBoYXZlIGJl
ZW4gc3RhcnRlZCBhbmQgc3RvcHBlZCB0d2ljZS4iKTsKIAotICAgICAgICAgICAgICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoaGFuZGxlUmVjb3JkaW5nU3RvcHBl
ZCk7CisgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNh
bnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCBoYW5kbGVSZWNvcmRpbmdTdG9wcGVkKTsKICAg
ICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5D
YW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIGhhbmRsZVJlY29yZGluZ1N0b3Bw
ZWQpOworICAgICAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50
LlJlY29yZGluZ1N0b3BwZWQsIGhhbmRsZVJlY29yZGluZ1N0b3BwZWQpOwogCi0gICAgICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLnN0YXJ0UmVjb3JkaW5nKGNhbnZhcyk7Ci0gICAgICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLnN0b3BSZWNvcmRpbmcoKTsKKyAgICAgICAgICAgIGNhbnZhcy5zdGFy
dFJlY29yZGluZygpOworICAgICAgICAgICAgY2FudmFzLnN0b3BSZWNvcmRpbmcoKTsKICAgICAg
ICAgfSwKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZWNvcmRpbmctYml0bWFwcmVuZGVyZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVjb3JkaW5nLWJpdG1hcHJlbmRlcmVyLmh0bWwKaW5kZXggMTE2OWRlZDM1MDBkNDZh
YmZjMzMyN2RkZjc3ZTNjYjRlMGU4OTJlMC4uMTEyYWVhNzI5NDFhNGRkYmU5NGRlYzJmZmY1ZTU1
ZmM5YmZkYjA3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNv
cmRpbmctYml0bWFwcmVuZGVyZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3JlY29yZGluZy1iaXRtYXByZW5kZXJlci5odG1sCkBAIC0xMjAsNyArMTIwLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZWNvcmRpbmdCaXRtYXBSZW5k
ZXJlci5Db25zb2xlIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGEgcmVjb3Jk
aW5nIGNhbiBiZSB0cmlnZ2VyZWQgYnkgY29uc29sZS5yZWNvcmQoKS4iLAogICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgY29uc29sZVJlY29yZChyZXNvbHZlLCBy
ZWplY3QpOworICAgICAgICAgICAgY29uc29sZVJlY29yZChXSS5DYW52YXMuQ29udGV4dFR5cGUu
Qml0bWFwUmVuZGVyZXIsIHJlc29sdmUsIHJlamVjdCk7CiAgICAgICAgIH0sCiAgICAgfSk7CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLWV4cGVjdGVk
LnR4dAppbmRleCAyOGQwOWNkYTA1ZDAwNDZjOTNiOTVhODk3ODczNzI2ODY1OWU2MzA4Li5iYjdl
MGI1OTYzMGZmZmIzY2M1MGM1MzY5Njg0ZDJiMTg5MjhhMjYyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIs
MjEgQEAgVGVzdCBnZW5lcmFsIGNhc2VzIG9mIENhbnZhc0FnZW50IHJlY29yZGluZyBjYWxscy4K
IAogCiA9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZhcy5yZWNvcmRpbmcKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBDYW52YXMubXVsdGlwbGVSZWNvcmRpbmcKK1N0YXJ0aW5nIGEgcmVjb3JkaW5n
IG9mIGNhbnZhcyAxLi4uCitQQVNTOiBSZWNvcmRpbmcgc3RhcnRlZCBvZiBjYW52YXMgMQorU3Rh
cnRpbmcgYSByZWNvcmRpbmcgb2YgY2FudmFzIDIuLi4KK1BBU1M6IFJlY29yZGluZyBzdGFydGVk
IG9mIGNhbnZhcyAyCitQZXJmb3JtaW5nIGFjdGlvbnMuLi4KK1BBU1M6IEFjdGlvbnMgcGVyZm9y
bWVkLgorU3RvcHBpbmcgdGhlIHJlY29yZGluZyBvZiBjYW52YXMgMS4uLgorUEFTUzogVGhlcmUg
c2hvdWxkIGJlIGEgcmVjb3JkaW5nIGZvciBjYW52YXMgMS4KK1N0b3BwaW5nIHRoZSByZWNvcmRp
bmcgb2YgY2FudmFzIDIuLi4KK1BBU1M6IFRoZXJlIHNob3VsZCBiZSBhIHJlY29yZGluZyBmb3Ig
Y2FudmFzIDIuCisKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMuc3RhcnRSZWNvcmRpbmcu
SW52YWxpZENhbnZhc0lkCitFUlJPUjogTm8gYWN0aXZlIHJlY29yZGluZyBmb3IgY2FudmFzCitF
UlJPUjogTm8gYWN0aXZlIHJlY29yZGluZyBmb3IgY2FudmFzCiBQQVNTOiBTaG91bGQgcHJvZHVj
ZSBhbiBlcnJvci4KIEVycm9yOiBObyBjYW52YXMgZm9yIGdpdmVuIGlkZW50aWZpZXIuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC5odG1sCmlu
ZGV4IDljZDllMzY5OTA2ZGY3NTJhNGMxODIzODM0ZDUxMjNiNzdiZGI0YjguLjUxYjYxZTc1N2U1
NmI3Njc0MjdjOTBhZWE4NmQ1NDI5NDdmNTIxYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wuaHRtbApAQCAtNTQ2LDcgKzU0Niw3IEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVjb3JkaW5nV2ViR0wuQ29u
c29sZSIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBhIHJlY29yZGluZyBjYW4g
YmUgdHJpZ2dlcmVkIGJ5IGNvbnNvbGUucmVjb3JkKCkuIiwKICAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKLSAgICAgICAgICAgIGNvbnNvbGVSZWNvcmQocmVzb2x2ZSwgcmVqZWN0KTsK
KyAgICAgICAgICAgIGNvbnNvbGVSZWNvcmQoV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMLCBy
ZXNvbHZlLCByZWplY3QpOwogICAgICAgICB9LAogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbAppbmRleCA4Y2YwMGZlNmUzMjRiOWVhODQ2MGRj
MjQ5ZjlhM2M5ZmUxMWFlODA2Li4zOTIwYmQ0ZjFmODY0NmRiZmVlOWE1ZDRlMjIxZjNhZDQ2ZmIw
NWY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWwKQEAg
LTMsOSArMyw2OSBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Cits
ZXQgY29udGV4dEEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0
KCIyZCIpOworbGV0IGNvbnRleHRCID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiku
Z2V0Q29udGV4dCgiMmQiKTsKKworZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMoKSB7CisgICAgY29u
dGV4dEEuZmlsbCgpOworICAgIGNvbnRleHRCLmZpbGwoKTsKKworICAgIFRlc3RQYWdlLmRpc3Bh
dGNoRXZlbnRUb0Zyb250ZW5kKCJUZXN0UGFnZS1wZXJmb3JtQWN0aW9ucyIpOworfQorCiBmdW5j
dGlvbiB0ZXN0KCkgewogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNT
dWl0ZSgiQ2FudmFzLnJlY29yZGluZyIpOwogCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAg
ICAgICBuYW1lOiAiQ2FudmFzLm11bHRpcGxlUmVjb3JkaW5nIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJDaGVjayB0aGF0IG11bHRpcGxlIHJlY29yZGluZ3MgYXJlIGFibGUgdG8gYmUgc3RhcnRl
ZC9zdG9wcGVkIGF0IHRoZSBzYW1lIHRpbWUuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXM7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09
IDIsICJUaGVyZSBzaG91bGQgYmUgdHdvIGNhbnZhcyBjb250ZXh0cy4iKTsKKworICAgICAgICAg
ICAgY2FudmFzZXNbMV0uYXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBl
ZCkKKyAgICAgICAgICAgIC50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChldmVudC5kYXRhLnJlY29yZGluZywgIlRoZXJlIHNob3VsZCBi
ZSBhIHJlY29yZGluZyBmb3IgY2FudmFzIDIuIik7CisgICAgICAgICAgICB9KQorICAgICAgICAg
ICAgLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKworICAgICAgICAgICAgY2FudmFzZXNbMF0uYXdh
aXRFdmVudChXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCkKKyAgICAgICAgICAgIC50
aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChldmVudC5kYXRhLnJlY29yZGluZywgIlRoZXJlIHNob3VsZCBiZSBhIHJlY29yZGluZyBmb3Ig
Y2FudmFzIDEuIik7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RvcHBp
bmcgdGhlIHJlY29yZGluZyBvZiBjYW52YXMgMi4uLiIpOworICAgICAgICAgICAgICAgIGNhbnZh
c2VzWzFdLnN0b3BSZWNvcmRpbmcoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIlRlc3RQYWdlLXBlcmZvcm1BY3Rpb25zIikKKyAgICAg
ICAgICAgIC50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
cGFzcygiQWN0aW9ucyBwZXJmb3JtZWQuIik7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiU3RvcHBpbmcgdGhlIHJlY29yZGluZyBvZiBjYW52YXMgMS4uLiIpOworICAgICAg
ICAgICAgICAgIGNhbnZhc2VzWzBdLnN0b3BSZWNvcmRpbmcoKTsKKyAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICBjYW52YXNlc1sxXS5hd2FpdEV2ZW50KFdJLkNhbnZhcy5FdmVudC5SZWNv
cmRpbmdTdGFydGVkKQorICAgICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNhbnZhc2VzWzFdLnJlY29yZGluZ0FjdGl2
ZSwgIlJlY29yZGluZyBzdGFydGVkIG9mIGNhbnZhcyAyIik7CisKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiUGVyZm9ybWluZyBhY3Rpb25zLi4uIik7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgcGVyZm9ybUFjdGlvbnMoKWApOworICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGNhbnZhc2VzWzBdLmF3YWl0RXZlbnQoV0kuQ2Fu
dmFzLkV2ZW50LlJlY29yZGluZ1N0YXJ0ZWQpCisgICAgICAgICAgICAudGhlbigoZXZlbnQpID0+
IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY2FudmFzZXNbMF0u
cmVjb3JkaW5nQWN0aXZlLCAiUmVjb3JkaW5nIHN0YXJ0ZWQgb2YgY2FudmFzIDEiKTsKKworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdGFydGluZyBhIHJlY29yZGluZyBvZiBj
YW52YXMgMi4uLiIpOworICAgICAgICAgICAgICAgIGNhbnZhc2VzWzFdLnN0YXJ0UmVjb3JkaW5n
KCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlN0
YXJ0aW5nIGEgcmVjb3JkaW5nIG9mIGNhbnZhcyAxLi4uIik7CisgICAgICAgICAgICBjYW52YXNl
c1swXS5zdGFydFJlY29yZGluZygpOworICAgICAgICB9LAorICAgIH0pOworCiAgICAgc3VpdGUu
YWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiQ2FudmFzLnN0YXJ0UmVjb3JkaW5nLkludmFs
aWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiSW52YWxpZCBjYW52YXMgaWRlbnRp
ZmllcnMgc2hvdWxkIGNhdXNlIGFuIGVycm9yLiIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcwpp
bmRleCBiZmUyMmM4MDQ4YjA2NDU2YmMxNzM1NGU1ZDlmYTUyM2ZjZGIwOGZjLi5lY2I4OTAwNGEw
ODgwZWFlMTMxZGI4Y2VkYjc0ZjgxNjMwZDRiZTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMu
anMKQEAgLTg0LDE2ICs4NCwxNiBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+
IHsKICAgICAgICAgbGV0IGJ1ZmZlclVzZWQgPSAwOwogICAgICAgICBsZXQgZnJhbWVDb3VudCA9
IDA7CiAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVJlY29yZGluZ1Byb2dyZXNzKGV2ZW50KSB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5kYXRhLmZyYW1lQ291bnQgPiBm
cmFtZUNvdW50LCAiQWRkaXRpb25hbCBmcmFtZXMgd2VyZSBjYXB0dXJlZCBmb3IgdGhpcyBwcm9n
cmVzcyBldmVudC4iKTsKLSAgICAgICAgICAgIGZyYW1lQ291bnQgPSBldmVudC5kYXRhLmZyYW1l
Q291bnQ7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMucmVjb3JkaW5n
RnJhbWVDb3VudCA+IGZyYW1lQ291bnQsICJBZGRpdGlvbmFsIGZyYW1lcyB3ZXJlIGNhcHR1cmVk
IGZvciB0aGlzIHByb2dyZXNzIGV2ZW50LiIpOworICAgICAgICAgICAgZnJhbWVDb3VudCA9IGNh
bnZhcy5yZWNvcmRpbmdGcmFtZUNvdW50OwogCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChldmVudC5kYXRhLmJ1ZmZlclVzZWQgPiBidWZmZXJVc2VkLCAiVG90YWwgbWVtb3J5IHVz
YWdlIGluY3JlYXNlcyB3aXRoIGVhY2ggcHJvZ3Jlc3MgZXZlbnQuIik7Ci0gICAgICAgICAgICBi
dWZmZXJVc2VkID0gZXZlbnQuZGF0YS5idWZmZXJVc2VkOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoY2FudmFzLnJlY29yZGluZ0J1ZmZlclVzZWQgPiBidWZmZXJVc2VkLCAiVG90
YWwgbWVtb3J5IHVzYWdlIGluY3JlYXNlcyB3aXRoIGVhY2ggcHJvZ3Jlc3MgZXZlbnQuIik7Cisg
ICAgICAgICAgICBidWZmZXJVc2VkID0gY2FudmFzLnJlY29yZGluZ0J1ZmZlclVzZWQ7CiAgICAg
ICAgIH0KLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZh
c01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nUHJvZ3Jlc3MsIGhhbmRsZVJlY29yZGluZ1Byb2dyZXNz
KTsKKyAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29y
ZGluZ1Byb2dyZXNzLCBoYW5kbGVSZWNvcmRpbmdQcm9ncmVzcyk7CiAKLSAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU3Rv
cHBlZCkudGhlbigoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucmVt
b3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1Byb2dyZXNz
LCBoYW5kbGVSZWNvcmRpbmdQcm9ncmVzcyk7CisgICAgICAgIGNhbnZhcy5hd2FpdEV2ZW50KFdJ
LkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkKS50aGVuKChldmVudCkgPT4geworICAgICAg
ICAgICAgY2FudmFzLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGlu
Z1Byb2dyZXNzLCBoYW5kbGVSZWNvcmRpbmdQcm9ncmVzcyk7CiAKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNhbmNlbEFjdGlvbnMoKWApOwogCkBAIC0xMjAsOSAr
MTIwLDIwIEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAgICBy
ZXR1cm4gY2FudmFzOwogICAgIH07CiAKLSAgICB3aW5kb3cuY29uc29sZVJlY29yZCA9IGZ1bmN0
aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZl
bnQoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTdG9wcGVkKS50aGVuKChldmVudCkg
PT4geworICAgIHdpbmRvdy5jb25zb2xlUmVjb3JkID0gZnVuY3Rpb24odHlwZSwgcmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgIGxldCBjYW52YXMgPSBnZXRDYW52YXModHlwZSk7CisgICAgICAg
IGlmICghY2FudmFzKSB7CisgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgY2FudmFzIHdpdGgg
dHlwZSAiJHt0eXBlfSIuYCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBjYW52YXMuYXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCku
dGhlbigoZXZlbnQpID0+IHsKICAgICAgICAgICAgIGxldCByZWNvcmRpbmcgPSBldmVudC5kYXRh
LnJlY29yZGluZzsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocmVjb3JkaW5n
LnNvdXJjZSA9PT0gY2FudmFzLCAiUmVjb3JkaW5nIHNob3VsZCBiZSBvZiB0aGUgZ2l2ZW4gY2Fu
dmFzLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocmVjb3JkaW5nLnNvdXJj
ZS5jb250ZXh0VHlwZSA9PT0gdHlwZSwgYFJlY29yZGluZyBzaG91bGQgYmUgb2YgYSBjYW52YXMg
d2l0aCB0eXBlICIke3R5cGV9Ii5gKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KHJlY29yZGluZy5zb3VyY2UucmVjb3JkaW5nQ29sbGVjdGlvbi5oYXMocmVjb3JkaW5nKSwgIlJl
Y29yZGluZyBzaG91bGQgYmUgaW4gdGhlIGNhbnZhcycgbGlzdCBvZiByZWNvcmRpbmdzLiIpOwor
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlY29yZGluZy5kaXNwbGF5
TmFtZSwgIlRFU1QiLCAiVGhlIHJlY29yZGluZyBzaG91bGQgaGF2ZSB0aGUgbmFtZSBcIlRFU1Rc
Ii4iKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVjb3JkaW5nLmZy
YW1lcy5sZW5ndGgsIDEsICJUaGUgcmVjb3JkaW5nIHNob3VsZCBoYXZlIG9uZSBmcmFtZS4iKTsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVjb3JkaW5nLmZyYW1lc1sw
XS5hY3Rpb25zLmxlbmd0aCwgMSwgIlRoZSBmaXJzdCBmcmFtZSBzaG91bGQgaGF2ZSBvbmUgYWN0
aW9uLiIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>