<?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>156663</bug_id>
          
          <creation_ts>2016-04-16 09:50:27 -0700</creation_ts>
          <short_desc>Web Inspector: DataGrid should be virtualized so it only renders visible rows</short_desc>
          <delta_ts>2016-08-01 11:52:02 -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 Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>bburg</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1184358</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-04-16 09:50:27 -0700</bug_when>
    <thetext>We make a large table that is causing major rendering hangs. We should only need to make a table for the visible portion of the table (plus some padding rows to reduce scrolling flashes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184359</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-04-16 09:50:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/25765256&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184879</commentid>
    <comment_count>2</comment_count>
      <attachid>276684</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-04-18 19:50:08 -0700</bug_when>
    <thetext>Created attachment 276684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184883</commentid>
    <comment_count>3</comment_count>
      <attachid>276684</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-04-18 20:15:45 -0700</bug_when>
    <thetext>Comment on attachment 276684
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/DataGrid.js:40
&gt; +        this.rows = [];

This could be _rows, since it&apos;s an implementation detail only accessed by DataGrid and DataGridNode.

&gt; Source/WebInspectorUI/UserInterface/Views/DataGrid.js:547
&gt; +            var dividerElement = headerCellElement.createChild(&quot;div&quot;, &quot;divider&quot;);

let

&gt; Source/WebInspectorUI/UserInterface/Views/DataGrid.js:549
&gt; +            var collapseDiv = headerCellElement.createChild(&quot;div&quot;, &quot;collapser-button&quot;);

let</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185198</commentid>
    <comment_count>4</comment_count>
      <attachid>276766</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-04-19 15:41:30 -0700</bug_when>
    <thetext>Created attachment 276766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185213</commentid>
    <comment_count>5</comment_count>
      <attachid>276766</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-19 16:12:34 -0700</bug_when>
    <thetext>Comment on attachment 276766
Patch

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

r=me

&gt; Source/WebInspectorUI/ChangeLog:12
&gt; +        Call uplateLayoutIfNeeded since we don&apos;t use views here.

Typo: &quot;uplate&quot; in many places in this ChangeLog.

&gt; Source/WebInspectorUI/UserInterface/Views/DataGrid.js:252
&gt; +    set inline(x)

These setters should bail if the value didn&apos;t change.

&gt; Source/WebInspectorUI/UserInterface/Views/DataGrid.js:1089
&gt; +        // A sortable data grid might not be in added to a view, so it needs its layout updated here.

Grammar: &quot;might not be in added&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185214</commentid>
    <comment_count>6</comment_count>
      <attachid>276766</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-19 16:12:53 -0700</bug_when>
    <thetext>Comment on attachment 276766
Patch

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

&gt; Source/WebInspectorUI/ChangeLog:33
&gt; +        when the virtural table starts at an odd row.

Typo: &quot;virtural&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185233</commentid>
    <comment_count>7</comment_count>
      <attachid>276766</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-04-19 16:42:54 -0700</bug_when>
    <thetext>Comment on attachment 276766
Patch

https://trac.webkit.org/changeset/199747</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276684</attachid>
            <date>2016-04-18 19:50:08 -0700</date>
            <delta_ts>2016-04-19 15:41:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156663-20160418195026.patch</filename>
            <type>text/plain</type>
            <size>37983</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5Njc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBl
Y2EyODc4YzAxMGRkZDk2ZTE3NDg4Y2ZjNWExNTFlYWIwZjFkMmMzLi5kOGNkYWJjNTkyZTI0ZmZj
Nzc1NzczYjU0YjdmMjcwYzZhZDAwNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxMTcgQEAKIDIwMTYtMDQtMTggIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUu
Y29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IERhdGFHcmlkIHNob3VsZCBiZSB2aXJ0dWFs
aXplZCBzbyBpdCBvbmx5IHJlbmRlcnMgdmlzaWJsZSByb3dzCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjY2MworICAgICAgICByZGFyOi8vcHJv
YmxlbS8yNTc2NTI1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90
eXBlLnNldCBjb250YWluZXJSZWdpb25zKToKKyAgICAgICAgQ2FsbCB1cGxhdGVMYXlvdXRJZk5l
ZWRlZCBzaW5jZSB3ZSBkb24ndCB1c2Ugdmlld3MgaGVyZS4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlVmlldy5wcm90b3R5cGUuX2Zvcm1hdFBhcmFtZXRlckFzVGFibGUpOgor
ICAgICAgICBTZXQgaW5saW5lIGFuZCB2YXJpYWJsZUhlaWdodFJvd3MgdG8gdHJ1ZSwgcmVtb3Zl
IGRpcmVjdCBjbGFzc0xpc3QgYWRkLiBDYWxsIHVwZGF0ZUxheW91dElmTmVlZGVkIHNpbmNlIHdl
IGRvbid0IHVzZSB2aWV3cyBoZXJlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9E
T01UcmVlRGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZURhdGFHcmlk
KToKKyAgICAgICAgU2V0IGlubGluZSB0byB0cnVlLCByZW1vdmUgZGlyZWN0IGNsYXNzTGlzdCBh
ZGQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkLmNzczoKKyAgICAg
ICAgKC5kYXRhLWdyaWQgdGQpOgorICAgICAgICAoLmRhdGEtZ3JpZCB0YWJsZS5kYXRhKToKKyAg
ICAgICAgKC5kYXRhLWdyaWQ6bm90KC52YXJpYWJsZS1oZWlnaHQtcm93cykgdGFibGUuZGF0YSk6
CisgICAgICAgICguZGF0YS1ncmlkOm5vdCgudmFyaWFibGUtaGVpZ2h0LXJvd3MpIHRhYmxlLmRh
dGEub2RkLWZpcnN0LXplYnJhLXN0cmlwZSk6CisgICAgICAgICguZGF0YS1ncmlkLnZhcmlhYmxl
LWhlaWdodC1yb3dzIHRhYmxlLmRhdGEgdHI6bnRoLWNoaWxkKG9kZCkpOgorICAgICAgICAoLmRh
dGEtZ3JpZC52YXJpYWJsZS1oZWlnaHQtcm93cyB0YWJsZS5kYXRhIHRyOm50aC1jaGlsZChldmVu
KSk6CisgICAgICAgICguZGF0YS1ncmlkLnZhcmlhYmxlLWhlaWdodC1yb3dzLm9kZC1maXJzdC16
ZWJyYS1zdHJpcGUgdGFibGUuZGF0YSB0cjpudGgtY2hpbGQob2RkKSk6CisgICAgICAgICguZGF0
YS1ncmlkLnZhcmlhYmxlLWhlaWdodC1yb3dzLm9kZC1maXJzdC16ZWJyYS1zdHJpcGUgdGFibGUu
ZGF0YSB0cjpudGgtY2hpbGQoZXZlbikpOgorICAgICAgICAoLmRhdGEtZ3JpZC52YXJpYWJsZS1o
ZWlnaHQtcm93cyB0YWJsZS5kYXRhIHRyLmZpbGxlcik6CisgICAgICAgIFVwZGF0ZWQgc3R5bGVz
IHRvIHN1cHBvcnQgdmFyaWFibGUgaGVpZ2h0IHJvd3MgZGlyZWN0bHkgYW5kIGZsaXBwaW5nIHRo
ZSBvcmRlciBvZiB0aGUgc3RyaXBlcworICAgICAgICB3aGVuIHRoZSB2aXJ0dXJhbCB0YWJsZSBz
dGFydHMgYXQgYW4gb2RkIHJvdy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGF0
YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQpOiBBZGRlZCByb3dIZWln
aHQgYW5kIHJvd3MuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLmdl
dCBpbmxpbmUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5
cGUuc2V0IGlubGluZSk6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnBy
b3RvdHlwZS5nZXQgdmFyaWFibGVIZWlnaHRSb3dzKTogQWRkZWQuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLnNldCB2YXJpYWJsZUhlaWdodFJvd3MpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUubGF5b3V0KTogQ2FsbCBf
dXBkYXRlVmlzaWJsZVJvd3MuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90
eXBlLl9ub3RlUm93c0NoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRh
R3JpZC5wcm90b3R5cGUuX3VwZGF0ZVZpc2libGVSb3dzKTogQWRkZWQuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLl9zb3J0Tm9kZXNDYWxsYmFjayk6IFVwZGF0ZSB0
byBub3QgdXNlIHRoZSBET00uCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnBy
b3RvdHlwZS5zZXQgaGFzQ2hpbGRyZW4pOiBDYWxsIG5lZWRzTGF5b3V0LgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRhdGFHcmlkTm9kZS5wcm90b3R5cGUuY29sbGFwc2UpOiBDYWxsIG5lZWRzTGF5
b3V0LgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZS5wcm90b3R5cGUuZXhwYW5k
KTogQ2FsbCBuZWVkc0xheW91dC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUu
cHJvdG90eXBlLl9hdHRhY2gpOiBDYWxsIF9ub3RlUm93c0NoYW5nZWQuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3RvdHlwZS5fZGV0YWNoKTogQ2FsbCBfbm90ZVJvd3ND
aGFuZ2VkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EYXRhYmFzZVVzZXJRdWVy
eVN1Y2Nlc3NWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFiYXNlVXNlclF1ZXJ5
U3VjY2Vzc1ZpZXcpOgorICAgICAgICBTZXQgaW5saW5lIHRvIHRydWUsIHJlbW92ZSBkaXJlY3Qg
Y2xhc3NMaXN0IGFkZC4gQ2FsbCB1cGxhdGVMYXlvdXRJZk5lZWRlZCBzaW5jZSB3ZSBkb24ndCB1
c2Ugdmlld3MgaGVyZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1Nl
Y3Rpb24uY3NzOgorICAgICAgICAoLmRldGFpbHMtc2VjdGlvbiA+IC5jb250ZW50IC5kYXRhLWdy
aWQgdGQudmFsdWUtY29sdW1uKToKKyAgICAgICAgKC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVu
dCAuZGF0YS1ncmlkIHRhYmxlLmRhdGEpOiBEZWxldGVkLgorICAgICAgICAoLmRldGFpbHMtc2Vj
dGlvbiA+IC5jb250ZW50IC5kYXRhLWdyaWQgdHI6bnRoLWNoaWxkKGV2ZW4pKTogRGVsZXRlZC4K
KyAgICAgICAgKC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAuZGF0YS1ncmlkIHRyOm50aC1j
aGlsZChvZGQpKTogRGVsZXRlZC4KKyAgICAgICAgTm93IGhhbmRsZWQgYnkgRGF0YUdyaWQuY3Nz
IGRpcmVjdGx5LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlv
bkRhdGFHcmlkUm93LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uRGF0
YUdyaWRSb3cucHJvdG90eXBlLnNldCBkYXRhR3JpZCk6CisgICAgICAgIFNldCBpbmxpbmUgYW5k
IHZhcmlhYmxlSGVpZ2h0Um93cyB0byB0cnVlLCByZW1vdmUgZGlyZWN0IGNsYXNzTGlzdCBhZGQu
IENhbGwgdXBsYXRlTGF5b3V0SWZOZWVkZWQgc2luY2Ugd2UgZG9uJ3QgdXNlIHZpZXdzIGhlcmUu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBTbmFwc2hvdEluc3RhbmNlc0Nv
bnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5oZWFwLXNuYXBzaG90ID4gLmRhdGEtZ3JpZCB0cjpt
YXRjaGVzKC5zZWxlY3RlZCwgOmhvdmVyKSB0ZCAuZ28tdG8tYXJyb3cpOgorICAgICAgICAoLmhl
YXAtc25hcHNob3QgLmljb24pOgorICAgICAgICBSZW1vdmUgbWFyZ2luLXRvcCB0byBmaXQgaW5z
aWRlIDIwcHggcm93IGluc3RlYWQgb2YgMjFweC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVDb250ZW50Vmlldy5jc3M6CisgICAgICAg
ICguY29udGVudC12aWV3LmluZGV4ZWQtZGF0YWJhc2Utb2JqZWN0LXN0b3JlID4gLmRhdGEtZ3Jp
ZCB0YWJsZS5kYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuaW5kZXhlZC1k
YXRhYmFzZS1vYmplY3Qtc3RvcmUgPiAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgdHI6bnRoLWNoaWxk
KGV2ZW4pKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuaW5kZXhlZC1kYXRhYmFz
ZS1vYmplY3Qtc3RvcmUgPiAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgdHI6bnRoLWNoaWxkKG9kZCkp
OiBEZWxldGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5pbmRleGVkLWRhdGFiYXNlLW9iamVj
dC1zdG9yZSA+IC5kYXRhLWdyaWQgdGFibGUuZGF0YSB0ci5maWxsZXIpOiBEZWxldGVkLgorICAg
ICAgICBOb3cgaGFuZGxlZCBieSBEYXRhR3JpZC5jc3MgZGlyZWN0bHkuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVDb250
ZW50Vmlldyk6CisgICAgICAgIFNldCB2YXJpYWJsZUhlaWdodFJvd3MgdG8gdHJ1ZS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5MYXllclRyZWVEZXRhaWxzU2lkZWJhclBhbmVsLnBy
b3RvdHlwZS5fYnVpbGREYXRhR3JpZFNlY3Rpb24pOgorICAgICAgICBTZXQgaW5saW5lIHRvIHRy
dWUsIHJlbW92ZSBkaXJlY3QgY2xhc3NMaXN0IGFkZC4gQ2FsbCB1cGxhdGVMYXlvdXRJZk5lZWRl
ZCBzaW5jZSB3ZSBkb24ndCB1c2Ugdmlld3MgaGVyZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvTG9nQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnNvbGUtaXRlbSAuZGF0
YS1ncmlkIHRhYmxlLmRhdGEpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtaXRlbSAuZGF0
YS1ncmlkIHRhYmxlLmRhdGEgdHI6bnRoLWNoaWxkKGV2ZW4pKTogRGVsZXRlZC4KKyAgICAgICAg
Tm93IGhhbmRsZWQgYnkgRGF0YUdyaWQuY3NzIGRpcmVjdGx5LgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9OZXR3b3JrR3JpZENvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250
ZW50LXZpZXcubmV0d29yay1ncmlkID4gLmRhdGEtZ3JpZCB0ZCk6IERlbGV0ZWQuCisgICAgICAg
ICguY29udGVudC12aWV3Lm5ldHdvcmstZ3JpZCA+IC5kYXRhLWdyaWQgdGFibGUuZGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIE5vdyBoYW5kbGVkIGJ5IERhdGFHcmlkLmNzcyBkaXJlY3RseS4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVTZXREYXRhR3JpZC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Qcm9iZVNldERhdGFHcmlkKToKKyAgICAgICAgU2V0IGlubGluZSB0
byB0cnVlLCByZW1vdmUgZGlyZWN0IGNsYXNzTGlzdCBhZGQuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVWaWV3LmNzczoKKyAgICAgICAgKC5wcm9maWxlID4gLmRhdGEt
Z3JpZCB0ZCAuaWNvbik6CisgICAgICAgICgucHJvZmlsZSA+IC5kYXRhLWdyaWQgdHI6bWF0Y2hl
cyguc2VsZWN0ZWQsIDpob3ZlcikgLmdvLXRvLWFycm93KToKKyAgICAgICAgUmVtb3ZlIG1hcmdp
bi10b3AgdG8gZml0IGluc2lkZSAyMHB4IHJvdyBpbnN0ZWFkIG9mIDIxcHguCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy50aW1lbGluZS1yZWNvcmRpbmcgPiAuY29udGVudC1icm93
c2VyID4gLmNvbnRlbnQtdmlldy1jb250YWluZXIgPiAudGltZWxpbmUtdmlldyA+IC5kYXRhLWdy
aWQgdGQpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy50aW1lbGluZS1yZWNvcmRp
bmcgPiAuY29udGVudC1icm93c2VyID4gLmNvbnRlbnQtdmlldy1jb250YWluZXIgPiAudGltZWxp
bmUtdmlldyA+IC5kYXRhLWdyaWQgdGFibGUuZGF0YSk6IERlbGV0ZWQuCisgICAgICAgIE5vdyBo
YW5kbGVkIGJ5IERhdGFHcmlkLmNzcyBkaXJlY3RseS4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvVmFyaWFibGVzLmNzczoKKyAgICAgICAgKDpyb290KTogQWRkZWQgemVicmEgc3Ry
aXBlIGNvbG9ycy4KKworMjAxNi0wNC0xOCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBs
ZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogTmF2aWdhdGlvblNpZGViYXJQYW5lbCBk
b2VzIGEgbG90IG9mIHN0eWxlIHJlY2FsYyBhbmQgbGF5b3V0IG9uIGJ1c3kgc2l0ZXMKIAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NzA0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRl
ZFN0eWxlRGV0YWlsc1BhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qcwppbmRleCAxMmNhM2Q2Mzk0OTIz
Y2JkZDU0MmQ5ZDI5ZjM5NTRmZjJjNGZmYzAzLi5kODU0ZjdhZTg0M2M0ZDBmYTM5ODZiY2E4NDA5
ZTBlNjhiZTkxOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwu
anMKQEAgLTE0Nyw2ICsxNDcsOCBAQCBXZWJJbnNwZWN0b3IuQ29tcHV0ZWRTdHlsZURldGFpbHNQ
YW5lbCA9IGNsYXNzIENvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcwogICAgICAgICAg
ICAgdGhpcy5fY29udGFpbmVyUmVnaW9uc0RhdGFHcmlkLmFwcGVuZENoaWxkKG5ldyBXZWJJbnNw
ZWN0b3IuRE9NVHJlZURhdGFHcmlkTm9kZShyZWdpb25Ob2RlKSk7CiAKICAgICAgICAgdGhpcy5f
Y29udGFpbmVyUmVnaW9uc0Zsb3dTZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiaGlk
ZGVuIik7CisKKyAgICAgICAgdGhpcy5fY29udGFpbmVyUmVnaW9uc0RhdGFHcmlkLnVwZGF0ZUxh
eW91dElmTmVlZGVkKCk7CiAgICAgfQogCiAgICAgY3NzU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0
b3JTaG93UHJvcGVydHkocHJvcGVydHksIHNob3dTb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZVZpZXcuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2Fn
ZVZpZXcuanMKaW5kZXggNTZhYjcxNjU5YmY1NTc3MjM2MjU2MGM0YjllMDk3MTFmYTJlY2ZmMC4u
ZjBiNjZlY2UzZjk5NGM1OTRkNTkyOTUxYThiZTQ5NGY3ZjFhODMxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNv
bGVNZXNzYWdlVmlldy5qcwpAQCAtODA0LDkgKzgwNCwxMyBAQCBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2VWaWV3ID0gY2xhc3MgQ29uc29sZU1lc3NhZ2VWaWV3IGV4dGVuZHMgV2ViSW5zcGVj
dG9yLgogICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIG91dHB1dCBzb21ldGhpbmcgZXh0cmEg
aWYgdGhlIHByZXZpZXcgaXMgbG9zc2xlc3M/CiAKICAgICAgICAgdmFyIGRhdGFHcmlkID0gV2Vi
SW5zcGVjdG9yLkRhdGFHcmlkLmNyZWF0ZVNvcnRhYmxlRGF0YUdyaWQoY29sdW1uTmFtZXMsIGZs
YXRWYWx1ZXMpOwotICAgICAgICBkYXRhR3JpZC5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImlubGlu
ZSIpOworICAgICAgICBkYXRhR3JpZC5pbmxpbmUgPSB0cnVlOworICAgICAgICBkYXRhR3JpZC52
YXJpYWJsZUhlaWdodFJvd3MgPSB0cnVlOworCiAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZGF0YUdyaWQuZWxlbWVudCk7CiAKKyAgICAgICAgZGF0YUdyaWQudXBkYXRlTGF5b3V0SWZOZWVk
ZWQoKTsKKwogICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVEYXRhR3JpZC5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVEYXRh
R3JpZC5qcwppbmRleCBiNmRlYmZkMjZhYmZhMDE4MTA2YTU0NmZkM2I1ZTI2YTRiYTVhNWEyLi4w
NDI3NTc1NzI2N2NlOTFjOTFmOGExYTAwMDQ3MjZmNGRlNzk5YzU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRGF0YUdyaWQuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZURh
dGFHcmlkLmpzCkBAIC0zNCw3ICszNCw5IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRGF0YUdyaWQg
PSBjbGFzcyBET01UcmVlRGF0YUdyaWQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuRGF0YUdyCiAKICAg
ICAgICAgdGhpcy5fcHJldmlvdXNIb3ZlcmVkRWxlbWVudCA9IG51bGw7CiAKLSAgICAgICAgdGhp
cy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImlubGluZSIsICJkb20tdHJlZS1kYXRhLWdyaWQiKTsK
KyAgICAgICAgdGhpcy5pbmxpbmUgPSB0cnVlOworCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJkb20tdHJlZS1kYXRhLWdyaWQiKTsKIAogICAgICAgICB0aGlzLmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fb25tb3VzZW1vdmUuYmluZCh0aGlz
KSwgZmFsc2UpOwogICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vv
dXQiLCB0aGlzLl9vbm1vdXNlb3V0LmJpbmQodGhpcyksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkLmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkLmNzcwppbmRl
eCAyMTE4YTQ3YWVlYzYyNDNkMGRjOGI1YjZhYmU0Y2Q5MTRjNTBhMTdkLi4yZjMyMGQwOWI1M2Iy
MjhhZWRjZmJjOTJmMjMzOGE5ZTQxNzY2Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5jc3MKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuY3NzCkBAIC0xMDksMTggKzEw
OSwyMyBAQAogfQogCiAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgewotICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgbGVmdDogMDsKLSAgICB0b3A6IDA7
CiAgICAgcmlnaHQ6IDA7Ci0gICAgYm90dG9tOiAwOwogICAgIGhlaWdodDogMTAwJTsKICAgICBi
b3JkZXItdG9wOiAwIG5vbmUgdHJhbnNwYXJlbnQ7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogbGlu
ZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgd2hpdGUsIHdoaXRlIDUwJSwgaHNsKDIxNCwgNDElLCA5
NiUpIDUwJSwgaHNsKDIxNCwgNDElLCA5NiUpKTsKLSAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUg
NDJweDsKICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOwogfQogCisuZGF0YS1ncmlkOm5vdCgudmFy
aWFibGUtaGVpZ2h0LXJvd3MpIHRhYmxlLmRhdGEgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IGxp
bmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWV2ZW4temVicmEtc3RyaXBlLXJvdy1iYWNr
Z3JvdW5kLWNvbG9yKSwgdmFyKC0tZXZlbi16ZWJyYS1zdHJpcGUtcm93LWJhY2tncm91bmQtY29s
b3IpIDUwJSwgdmFyKC0tb2RkLXplYnJhLXN0cmlwZS1yb3ctYmFja2dyb3VuZC1jb2xvcikgNTAl
LCB2YXIoLS1vZGQtemVicmEtc3RyaXBlLXJvdy1iYWNrZ3JvdW5kLWNvbG9yKSk7CisgICAgYmFj
a2dyb3VuZC1zaXplOiAxMDAlIDQwcHg7Cit9CisKKy5kYXRhLWdyaWQ6bm90KC52YXJpYWJsZS1o
ZWlnaHQtcm93cykgdGFibGUuZGF0YS5vZGQtZmlyc3QtemVicmEtc3RyaXBlIHsKKyAgICBiYWNr
Z3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB2YXIoLS1vZGQtemVicmEt
c3RyaXBlLXJvdy1iYWNrZ3JvdW5kLWNvbG9yKSwgdmFyKC0tb2RkLXplYnJhLXN0cmlwZS1yb3ct
YmFja2dyb3VuZC1jb2xvcikgNTAlLCB2YXIoLS1ldmVuLXplYnJhLXN0cmlwZS1yb3ctYmFja2dy
b3VuZC1jb2xvcikgNTAlLCB2YXIoLS1ldmVuLXplYnJhLXN0cmlwZS1yb3ctYmFja2dyb3VuZC1j
b2xvcikpOworfQorCiAuZGF0YS1ncmlkLmlubGluZSB0YWJsZS5kYXRhIHsKICAgICBwb3NpdGlv
bjogc3RhdGljOwogfQpAQCAtMTMzLDEwICsxMzgsMzEgQEAKICAgICBkaXNwbGF5OiB0YWJsZS1y
b3c7CiB9CiAKKy5kYXRhLWdyaWQudmFyaWFibGUtaGVpZ2h0LXJvd3MgdGFibGUuZGF0YSB0cjpu
dGgtY2hpbGQob2RkKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tb2RkLXplYnJhLXN0
cmlwZS1yb3ctYmFja2dyb3VuZC1jb2xvcik7Cit9CisKKy5kYXRhLWdyaWQudmFyaWFibGUtaGVp
Z2h0LXJvd3MgdGFibGUuZGF0YSB0cjpudGgtY2hpbGQoZXZlbikgeworICAgIGJhY2tncm91bmQt
Y29sb3I6IHZhcigtLWV2ZW4temVicmEtc3RyaXBlLXJvdy1iYWNrZ3JvdW5kLWNvbG9yKTsKK30K
KworLmRhdGEtZ3JpZC52YXJpYWJsZS1oZWlnaHQtcm93cy5vZGQtZmlyc3QtemVicmEtc3RyaXBl
IHRhYmxlLmRhdGEgdHI6bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQtY29sb3I6IHZh
cigtLWV2ZW4temVicmEtc3RyaXBlLXJvdy1iYWNrZ3JvdW5kLWNvbG9yKTsKK30KKworLmRhdGEt
Z3JpZC52YXJpYWJsZS1oZWlnaHQtcm93cy5vZGQtZmlyc3QtemVicmEtc3RyaXBlIHRhYmxlLmRh
dGEgdHI6bnRoLWNoaWxkKGV2ZW4pIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1vZGQt
emVicmEtc3RyaXBlLXJvdy1iYWNrZ3JvdW5kLWNvbG9yKTsKK30KKworLmRhdGEtZ3JpZC52YXJp
YWJsZS1oZWlnaHQtcm93cyB0YWJsZS5kYXRhIHRyLmZpbGxlciB7CisgLyogRklYTUU6IFRoaXMg
c2hvdWxkIHNob3cgYW4gYWx0ZXJuYXRpbmcgc3RyaXBlLCBidXQgaXQgbmVlZHMgdG8ga25vdyBp
ZiB0aGUgbGFzdCByb3cgaXMgZXZlbiBvciBvZGQuICovCisgICAgYmFja2dyb3VuZC1jb2xvcjog
dmFyKC0tZXZlbi16ZWJyYS1zdHJpcGUtcm93LWJhY2tncm91bmQtY29sb3IpOworfQorCiAuZGF0
YS1ncmlkIHRkIHsKICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwotICAgIGhlaWdodDogMTJweDsK
LSAgICBsaW5lLWhlaWdodDogMTdweDsKKyAgICBoZWlnaHQ6IDE2cHg7CisgICAgbGluZS1oZWln
aHQ6IDE2cHg7CiAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICB3aGl0ZS1zcGFjZTogbm93cmFw
OwogICAgIG92ZXJmbG93OiBoaWRkZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkLmpzCmluZGV4IGVhNWQ1M2I2ZWRkYTQ4NzE1
NmM5MDJmMzUyODVjNWFhOTU0YzcxZTAuLmIxY2I1NjllNzQ3NDc2ZDZmM2VmMmQ4MWY2N2YyNTk4
MzRmYjZlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0RhdGFHcmlkLmpzCkBAIC0zNyw2ICszNyw4IEBAIFdlYkluc3BlY3Rvci5EYXRh
R3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAg
dGhpcy5fc29ydE9yZGVyID0gV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRPcmRlci5JbmRldGVy
bWluYXRlOwogICAgICAgICB0aGlzLl9zb3J0T3JkZXJTZXR0aW5nID0gbnVsbDsKIAorICAgICAg
ICB0aGlzLnJvd3MgPSBbXTsKKwogICAgICAgICB0aGlzLmNoaWxkcmVuID0gW107CiAgICAgICAg
IHRoaXMuc2VsZWN0ZWROb2RlID0gbnVsbDsKICAgICAgICAgdGhpcy5leHBhbmROb2Rlc1doZW5B
cnJvd2luZyA9IGZhbHNlOwpAQCAtNDcsNiArNDksNyBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQg
PSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIHRoaXMu
c2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5kYXRhR3JpZCA9IHRoaXM7CiAgICAgICAg
IHRoaXMuaW5kZW50V2lkdGggPSAxNTsKKyAgICAgICAgdGhpcy5yb3dIZWlnaHQgPSAyMDsKICAg
ICAgICAgdGhpcy5yZXNpemVycyA9IFtdOwogICAgICAgICB0aGlzLl9jb2x1bW5XaWR0aHNJbml0
aWFsaXplZCA9IGZhbHNlOwogCkBAIC02Niw4ICs2OSwxNCBAQCBXZWJJbnNwZWN0b3IuRGF0YUdy
aWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIHRo
aXMuX3Njcm9sbENvbnRhaW5lckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKICAgICAgICAgdGhpcy5fc2Nyb2xsQ29udGFpbmVyRWxlbWVudC5jbGFzc05hbWUgPSAiZGF0
YS1jb250YWluZXIiOwogCi0gICAgICAgIHRoaXMuX2RhdGFUYWJsZUVsZW1lbnQgPSB0aGlzLl9z
Y3JvbGxDb250YWluZXJFbGVtZW50LmNyZWF0ZUNoaWxkKCJ0YWJsZSIpOwotICAgICAgICB0aGlz
Ll9kYXRhVGFibGVFbGVtZW50LmNsYXNzTmFtZSA9ICJkYXRhIjsKKyAgICAgICAgdGhpcy5fc2Ny
b2xsTGlzdGVuZXIgPSAoKSA9PiB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgICAgIHRoaXMuX3Nj
cm9sbENvbnRhaW5lckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdGhpcy5fc2Ny
b2xsTGlzdGVuZXIpOworCisgICAgICAgIHRoaXMuX3RvcERhdGFUYWJsZU1hcmdpbkVsZW1lbnQg
PSB0aGlzLl9zY3JvbGxDb250YWluZXJFbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiKTsKKworICAg
ICAgICB0aGlzLl9kYXRhVGFibGVFbGVtZW50ID0gdGhpcy5fc2Nyb2xsQ29udGFpbmVyRWxlbWVu
dC5jcmVhdGVDaGlsZCgidGFibGUiLCAiZGF0YSIpOworCisgICAgICAgIHRoaXMuX2JvdHRvbURh
dGFUYWJsZU1hcmdpbkVsZW1lbnQgPSB0aGlzLl9zY3JvbGxDb250YWluZXJFbGVtZW50LmNyZWF0
ZUNoaWxkKCJkaXYiKTsKIAogICAgICAgICB0aGlzLl9kYXRhVGFibGVFbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX21vdXNlRG93bkluRGF0YVRhYmxlLmJpbmQodGhp
cykpOwogICAgICAgICB0aGlzLl9kYXRhVGFibGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5fY2xpY2tJbkRhdGFUYWJsZS5iaW5kKHRoaXMpKTsKQEAgLTc5LDYgKzg4LDcg
QEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkID0gY2xhc3MgRGF0YUdyaWQgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuVmlldwogICAgICAgICAgICAgdGhpcy5fZGF0YVRhYmxlRWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJkYmxjbGljayIsIHRoaXMuX29uZGJsY2xpY2suYmluZCh0aGlzKSwgZmFsc2UpOwog
ICAgICAgICAgICAgdGhpcy5fZWRpdENhbGxiYWNrID0gZWRpdENhbGxiYWNrOwogICAgICAgICB9
CisKICAgICAgICAgaWYgKGRlbGV0ZUNhbGxiYWNrKQogICAgICAgICAgICAgdGhpcy5fZGVsZXRl
Q2FsbGJhY2sgPSBkZWxldGVDYWxsYmFjazsKIApAQCAtODcsOCArOTcsOCBAQCBXZWJJbnNwZWN0
b3IuRGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAK
ICAgICAgICAgLy8gVGhpcyBlbGVtZW50IGlzIHVzZWQgYnkgRGF0YUdyaWROb2RlcyB0byBtYW5p
cHVsYXRlIHRhYmxlIHJvd3MgYW5kIGNlbGxzLgogICAgICAgICB0aGlzLmRhdGFUYWJsZUJvZHlF
bGVtZW50ID0gdGhpcy5fZGF0YVRhYmxlRWxlbWVudC5jcmVhdGVDaGlsZCgidGJvZHkiKTsKLSAg
ICAgICAgdGhpcy5fZmlsbGVyUm93RWxlbWVudCA9IHRoaXMuZGF0YVRhYmxlQm9keUVsZW1lbnQu
Y3JlYXRlQ2hpbGQoInRyIik7Ci0gICAgICAgIHRoaXMuX2ZpbGxlclJvd0VsZW1lbnQuY2xhc3NO
YW1lID0gImZpbGxlciI7CisKKyAgICAgICAgdGhpcy5fZmlsbGVyUm93RWxlbWVudCA9IHRoaXMu
ZGF0YVRhYmxlQm9keUVsZW1lbnQuY3JlYXRlQ2hpbGQoInRyIiwgImZpbGxlciIpOwogCiAgICAg
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9oZWFkZXJUYWJsZUVsZW1lbnQpOwog
ICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2Nyb2xsQ29udGFpbmVyRWxl
bWVudCk7CkBAIC0yMzcsNiArMjQ3LDM0IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZCA9IGNsYXNz
IERhdGFHcmlkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgICAgIHRoaXMuc29y
dENvbHVtbklkZW50aWZpZXIgPSB0aGlzLl9zb3J0Q29sdW1uSWRlbnRpZmllclNldHRpbmcudmFs
dWU7CiAgICAgfQogCisgICAgZ2V0IGlubGluZSgpIHsgcmV0dXJuIHRoaXMuX2lubGluZTsgfQor
CisgICAgc2V0IGlubGluZSh4KQorICAgIHsKKyAgICAgICAgdGhpcy5faW5saW5lID0geCB8fCBm
YWxzZTsKKworICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImlubGluZSIs
IHRoaXMuX2lubGluZSk7CisKKyAgICAgICAgaWYgKHRoaXMuX2lubGluZSB8fCB0aGlzLl92YXJp
YWJsZUhlaWdodFJvd3MpCisgICAgICAgICAgICB0aGlzLl9zY3JvbGxDb250YWluZXJFbGVtZW50
LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRoaXMuX3Njcm9sbExpc3RlbmVyKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fc2Nyb2xsQ29udGFpbmVyRWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJzY3JvbGwiLCB0aGlzLl9zY3JvbGxMaXN0ZW5lcik7CisgICAgfQorCisg
ICAgZ2V0IHZhcmlhYmxlSGVpZ2h0Um93cygpIHsgcmV0dXJuIHRoaXMuX3ZhcmlhYmxlSGVpZ2h0
Um93czsgfQorCisgICAgc2V0IHZhcmlhYmxlSGVpZ2h0Um93cyh4KQorICAgIHsKKyAgICAgICAg
dGhpcy5fdmFyaWFibGVIZWlnaHRSb3dzID0geCB8fCBmYWxzZTsKKworICAgICAgICB0aGlzLl9l
bGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInZhcmlhYmxlLWhlaWdodC1yb3dzIiwgdGhpcy5fdmFy
aWFibGVIZWlnaHRSb3dzKTsKKworICAgICAgICBpZiAodGhpcy5faW5saW5lIHx8IHRoaXMuX3Zh
cmlhYmxlSGVpZ2h0Um93cykKKyAgICAgICAgICAgIHRoaXMuX3Njcm9sbENvbnRhaW5lckVsZW1l
bnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdGhpcy5fc2Nyb2xsTGlzdGVuZXIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9zY3JvbGxDb250YWluZXJFbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRoaXMuX3Njcm9sbExpc3RlbmVyKTsKKyAgICB9CisK
ICAgICBfdXBkYXRlU29ydGVkQ29sdW1uKG9sZFNvcnRDb2x1bW5JZGVudGlmaWVyKQogICAgIHsK
ICAgICAgICAgaWYgKHRoaXMuX3NvcnRDb2x1bW5JZGVudGlmaWVyU2V0dGluZykKQEAgLTUwNiwx
MSArNTQ0LDkgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkID0gY2xhc3MgRGF0YUdyaWQgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICBpZiAoY29sdW1uWyJjb2xsYXBzZXNHcm91cCJd
KSB7CiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb2x1bW5bImdyb3VwIl0gIT09IGNvbHVt
blsiY29sbGFwc2VzR3JvdXAiXSk7CiAKLSAgICAgICAgICAgIHZhciBkaXZpZGVyRWxlbWVudCA9
IGhlYWRlckNlbGxFbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiKTsKLSAgICAgICAgICAgIGRpdmlk
ZXJFbGVtZW50LmNsYXNzTmFtZSA9ICJkaXZpZGVyIjsKKyAgICAgICAgICAgIHZhciBkaXZpZGVy
RWxlbWVudCA9IGhlYWRlckNlbGxFbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiZGl2aWRlciIp
OwogCi0gICAgICAgICAgICB2YXIgY29sbGFwc2VEaXYgPSBoZWFkZXJDZWxsRWxlbWVudC5jcmVh
dGVDaGlsZCgiZGl2Iik7Ci0gICAgICAgICAgICBjb2xsYXBzZURpdi5jbGFzc05hbWUgPSAiY29s
bGFwc2VyLWJ1dHRvbiI7CisgICAgICAgICAgICB2YXIgY29sbGFwc2VEaXYgPSBoZWFkZXJDZWxs
RWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImNvbGxhcHNlci1idXR0b24iKTsKICAgICAgICAg
ICAgIGNvbGxhcHNlRGl2LnRpdGxlID0gdGhpcy5fY29sbGFwc2VyQnV0dG9uQ29sbGFwc2VDb2x1
bW5zVG9vbFRpcCgpOwogICAgICAgICAgICAgbGlzdGVuZXJzLnJlZ2lzdGVyKGNvbGxhcHNlRGl2
LCAibW91c2VvdmVyIiwgdGhpcy5fbW91c2VvdmVyQ29sdW1uQ29sbGFwc2VyKTsKICAgICAgICAg
ICAgIGxpc3RlbmVycy5yZWdpc3Rlcihjb2xsYXBzZURpdiwgIm1vdXNlb3V0IiwgdGhpcy5fbW91
c2VvdXRDb2x1bW5Db2xsYXBzZXIpOwpAQCAtNjM4LDYgKzY3NCw4IEBAIFdlYkluc3BlY3Rvci5E
YXRhR3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAg
ICAgICAgIHRoaXMuX3Bvc2l0aW9uUmVzaXplckVsZW1lbnRzKCk7CiAgICAgICAgICAgICB0aGlz
Ll9wb3NpdGlvbkhlYWRlclZpZXdzKCk7CiAgICAgICAgIH0KKworICAgICAgICB0aGlzLl91cGRh
dGVWaXNpYmxlUm93cygpOwogICAgIH0KIAogICAgIGNvbHVtbldpZHRoc01hcCgpCkBAIC03OTEs
NiArODI5LDgxIEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgfQogICAgIH0KIAorICAgIF9ub3RlUm93c0No
YW5nZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJldmlvdXNSZXZlYWxlZFJvd0NvdW50ID0g
TmFOOworCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICBfdXBkYXRl
VmlzaWJsZVJvd3MoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2lubGluZSB8fCB0aGlzLl92
YXJpYWJsZUhlaWdodFJvd3MpIHsKKyAgICAgICAgICAgIC8vIElubGluZSBEYXRhR3JpZHMgYWx3
YXlzIHNob3cgYWxsIHRoZWlyIHJvd3MsIHNvIHdlIGNhbid0IHZpcnR1YWxpemUgdGhlbS4KKyAg
ICAgICAgICAgIC8vIEluIGdlbmVyYWwsIGlubGluZSBEYXRhR3JpZHMgdXN1YWxseSBoYXZlIGEg
c21hbGwgbnVtYmVyIG9mIHJvd3MuCisKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEg
c2xvdyBwYXRoIGZvciB2YXJpYWJsZSBoZWlnaHQgcm93cyB0aGF0IGlzIHNpbWlsYXIgdG8gdGhl
IG9sZAorICAgICAgICAgICAgLy8gbm9uLXZpcnR1YWxpemVkIERhdGFHcmlkLiBJZGVhbGx5IHdl
IHdvdWxkIHRyYWNrIHJvdyBoZWlnaHQgcGVyLURhdGFHcmlkTm9kZQorICAgICAgICAgICAgLy8g
YW5kIHRoZW4gd2UgY291bGQgdmlydHVhbGl6ZSBldmVuIHRob3NlIGNhc2VzLiBDdXJyZW50bHkg
dmFyaWFibGUgaGVpZ2h0IHJvdworICAgICAgICAgICAgLy8gRGF0YUdyaWRzIGRvbid0IHVzdWFs
bHkgaGF2ZSBtYW55IHJvd3MsIG90aGVyIHRoYW4gSW5kZXhlZERCLgorCisgICAgICAgICAgICBs
ZXQgbmV4dEVsZW1lbnQgPSB0aGlzLmRhdGFUYWJsZUJvZHlFbGVtZW50Lmxhc3RDaGlsZDsKKyAg
ICAgICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnJvd3MubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkp
IHsKKyAgICAgICAgICAgICAgICBsZXQgcm93RWxlbWVudCA9IHRoaXMucm93c1tpXS5lbGVtZW50
OworICAgICAgICAgICAgICAgIGlmIChyb3dFbGVtZW50Lm5leHRTaWJsaW5nICE9PSBuZXh0RWxl
bWVudCkKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVCb2R5RWxlbWVudC5pbnNl
cnRCZWZvcmUocm93RWxlbWVudCwgbmV4dEVsZW1lbnQpOworICAgICAgICAgICAgICAgIG5leHRF
bGVtZW50ID0gcm93RWxlbWVudDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgbGV0IHJvd0hlaWdodCA9IHRoaXMucm93SGVpZ2h0Owor
ICAgICAgICBsZXQgdXBkYXRlT2Zmc2V0VGhyZXNob2xkID0gcm93SGVpZ2h0ICogNTsKKworICAg
ICAgICBsZXQgcmV2ZWFsZWRSb3dzID0gdGhpcy5yb3dzLmZpbHRlcigocm93KSA9PiByb3cucmV2
ZWFsZWQpOworCisgICAgICAgIGxldCBzY3JvbGxUb3AgPSB0aGlzLl9zY3JvbGxDb250YWluZXJF
bGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgbGV0IHNjcm9sbEhlaWdodCA9IHRoaXMuX3Njcm9s
bENvbnRhaW5lckVsZW1lbnQub2Zmc2V0SGVpZ2h0OworCisgICAgICAgIGxldCBjdXJyZW50VG9w
TWFyZ2luID0gdGhpcy5fdG9wRGF0YVRhYmxlTWFyZ2luRWxlbWVudC5vZmZzZXRIZWlnaHQ7Cisg
ICAgICAgIGxldCBjdXJyZW50Qm90dG9tTWFyZ2luID0gdGhpcy5fYm90dG9tRGF0YVRhYmxlTWFy
Z2luRWxlbWVudC5vZmZzZXRIZWlnaHQ7CisgICAgICAgIGxldCBjdXJyZW50VGFibGVCb3R0b20g
PSBjdXJyZW50VG9wTWFyZ2luICsgdGhpcy5fZGF0YVRhYmxlRWxlbWVudC5vZmZzZXRIZWlnaHQ7
CisKKyAgICAgICAgbGV0IGJlbG93VG9wVGhyZXNob2xkID0gIWN1cnJlbnRUb3BNYXJnaW4gfHwg
c2Nyb2xsVG9wID4gY3VycmVudFRvcE1hcmdpbiArIHVwZGF0ZU9mZnNldFRocmVzaG9sZDsKKyAg
ICAgICAgbGV0IGFib3ZlQm90dG9tVGhyZXNob2xkID0gIWN1cnJlbnRCb3R0b21NYXJnaW4gfHwg
c2Nyb2xsVG9wICsgc2Nyb2xsSGVpZ2h0IDwgY3VycmVudFRhYmxlQm90dG9tIC0gdXBkYXRlT2Zm
c2V0VGhyZXNob2xkOworCisgICAgICAgIGlmIChiZWxvd1RvcFRocmVzaG9sZCAmJiBhYm92ZUJv
dHRvbVRocmVzaG9sZCAmJiB0aGlzLl9wcmV2aW91c1JldmVhbGVkUm93Q291bnQgPT09IHJldmVh
bGVkUm93cy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcHJl
dmlvdXNSZXZlYWxlZFJvd0NvdW50ID0gcmV2ZWFsZWRSb3dzLmxlbmd0aDsKKworICAgICAgICBs
ZXQgb3ZlcmZsb3dQYWRkaW5nID0gdXBkYXRlT2Zmc2V0VGhyZXNob2xkICogMzsKKworICAgICAg
ICBsZXQgdG9wSGlkZGVuUm93Q291bnQgPSBNYXRoLm1heCgwLCBNYXRoLmZsb29yKChzY3JvbGxU
b3AgLSBvdmVyZmxvd1BhZGRpbmcpIC8gcm93SGVpZ2h0KSk7CisgICAgICAgIGxldCB2aXNpYmxl
Um93Q291bnQgPSBNYXRoLmNlaWwoKHNjcm9sbEhlaWdodCArIChvdmVyZmxvd1BhZGRpbmcgKiAy
KSkgLyByb3dIZWlnaHQpOworICAgICAgICBsZXQgYm90dG9tSGlkZGVuUm93Q291bnQgPSBNYXRo
Lm1heCgwLCByZXZlYWxlZFJvd3MubGVuZ3RoIC0gdG9wSGlkZGVuUm93Q291bnQgLSB2aXNpYmxl
Um93Q291bnQpOworCisgICAgICAgIGxldCBtYXJnaW5Ub3AgPSB0b3BIaWRkZW5Sb3dDb3VudCAq
IHJvd0hlaWdodDsKKyAgICAgICAgbGV0IG1hcmdpbkJvdHRvbSA9IGJvdHRvbUhpZGRlblJvd0Nv
dW50ICogcm93SGVpZ2h0OworCisgICAgICAgIHRoaXMuX3RvcERhdGFUYWJsZU1hcmdpbkVsZW1l
bnQuc3R5bGUuaGVpZ2h0ID0gbWFyZ2luVG9wICsgInB4IjsKKyAgICAgICAgdGhpcy5fYm90dG9t
RGF0YVRhYmxlTWFyZ2luRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBtYXJnaW5Cb3R0b20gKyAicHgi
OworCisgICAgICAgIHRoaXMuX2RhdGFUYWJsZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgib2Rk
LWZpcnN0LXplYnJhLXN0cmlwZSIsICEhKHRvcEhpZGRlblJvd0NvdW50ICUgMikpOworCisgICAg
ICAgIHRoaXMuZGF0YVRhYmxlQm9keUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKworICAgICAg
ICBmb3IgKGxldCBpID0gdG9wSGlkZGVuUm93Q291bnQ7IGkgPCB0b3BIaWRkZW5Sb3dDb3VudCAr
IHZpc2libGVSb3dDb3VudDsgKytpKSB7CisgICAgICAgICAgICBsZXQgcm93RGF0YUdyaWROb2Rl
ID0gcmV2ZWFsZWRSb3dzW2ldOworICAgICAgICAgICAgaWYgKCFyb3dEYXRhR3JpZE5vZGUpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB0aGlzLmRhdGFUYWJsZUJvZHlF
bGVtZW50LmFwcGVuZENoaWxkKHJvd0RhdGFHcmlkTm9kZS5lbGVtZW50KTsKKyAgICAgICAgfQor
CisgICAgICAgIHRoaXMuZGF0YVRhYmxlQm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZmls
bGVyUm93RWxlbWVudCk7CisgICAgfQorCiAgICAgYWRkUGxhY2Vob2xkZXJOb2RlKCkKICAgICB7
CiAgICAgICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyTm9kZSkKQEAgLTkzOCwxMCArMTA1MSwxMCBA
QCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5WaWV3CiAKICAgICBfc29ydE5vZGVzQ2FsbGJhY2soY29tcGFyYXRvcikKICAgICB7Ci0g
ICAgICAgIGZ1bmN0aW9uIGNvbXBhcmF0b3JXcmFwcGVyKGFSb3csIGJSb3cpCisgICAgICAgIGZ1
bmN0aW9uIGNvbXBhcmF0b3JXcmFwcGVyKGFOb2RlLCBiTm9kZSkKICAgICAgICAgewotICAgICAg
ICAgICAgdmFyIGFOb2RlID0gYVJvdy5fZGF0YUdyaWROb2RlOwotICAgICAgICAgICAgdmFyIGJO
b2RlID0gYlJvdy5fZGF0YUdyaWROb2RlOworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWFO
b2RlLmhhc0NoaWxkcmVuLCAiVGhpcyBzb3J0IG1ldGhvZCBjYW4ndCBiZSB1c2VkIHdpdGggcGFy
ZW50IG5vZGVzLCBjaGlsZHJlbiB3aWxsIGJlIGRpc3BsYXllZCBvdXQgb2Ygb3JkZXIuIik7Cisg
ICAgICAgICAgICBjb25zb2xlLmFzc2VydCghYk5vZGUuaGFzQ2hpbGRyZW4sICJUaGlzIHNvcnQg
bWV0aG9kIGNhbid0IGJlIHVzZWQgd2l0aCBwYXJlbnQgbm9kZXMsIGNoaWxkcmVuIHdpbGwgYmUg
ZGlzcGxheWVkIG91dCBvZiBvcmRlci4iKTsKIAogICAgICAgICAgICAgaWYgKGFOb2RlLmlzUGxh
Y2Vob2xkZXJOb2RlKQogICAgICAgICAgICAgICAgIHJldHVybiAxOwpAQCAtOTU5LDI5ICsxMDcy
LDIzIEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLlZpZXcKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAg
IHZhciB0Ym9keSA9IHRoaXMuZGF0YVRhYmxlQm9keUVsZW1lbnQ7Ci0gICAgICAgIHZhciBjaGls
ZE5vZGVzID0gdGJvZHkuY2hpbGROb2RlczsKLSAgICAgICAgdmFyIGZpbGxlclJvd0VsZW1lbnQg
PSB0Ym9keS5sYXN0Q2hpbGQ7Ci0KLSAgICAgICAgdmFyIHNvcnRlZFJvd0VsZW1lbnRzID0gQXJy
YXkucHJvdG90eXBlLnNsaWNlLmNhbGwoY2hpbGROb2RlcywgMCwgY2hpbGROb2Rlcy5sZW5ndGgg
LSAxKTsKLSAgICAgICAgc29ydGVkUm93RWxlbWVudHMuc29ydChjb21wYXJhdG9yV3JhcHBlci5i
aW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5yb3dzLnNvcnQoY29tcGFyYXRvcldyYXBwZXIuYmlu
ZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX25vdGVSb3dzQ2hhbmdlZCgpOwogCi0gICAgICAgIHRi
b2R5LnJlbW92ZUNoaWxkcmVuKCk7Ci0KLSAgICAgICAgdmFyIHByZXZpb3VzU2libGluZ05vZGUg
PSBudWxsOwotICAgICAgICBmb3IgKHZhciByb3dFbGVtZW50IG9mIHNvcnRlZFJvd0VsZW1lbnRz
KSB7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IHJvd0VsZW1lbnQuX2RhdGFHcmlkTm9kZTsKKyAg
ICAgICAgbGV0IHByZXZpb3VzU2libGluZ05vZGUgPSBudWxsOworICAgICAgICBmb3IgKGxldCBu
b2RlIG9mIHRoaXMucm93cykgewogICAgICAgICAgICAgbm9kZS5wcmV2aW91c1NpYmxpbmcgPSBw
cmV2aW91c1NpYmxpbmdOb2RlOwogICAgICAgICAgICAgaWYgKHByZXZpb3VzU2libGluZ05vZGUp
CiAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nTm9kZS5uZXh0U2libGluZyA9IG5vZGU7
Ci0gICAgICAgICAgICB0Ym9keS5hcHBlbmRDaGlsZChyb3dFbGVtZW50KTsKICAgICAgICAgICAg
IHByZXZpb3VzU2libGluZ05vZGUgPSBub2RlOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHBy
ZXZpb3VzU2libGluZ05vZGUpCiAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmdOb2RlLm5leHRT
aWJsaW5nID0gbnVsbDsKIAotICAgICAgICB0Ym9keS5hcHBlbmRDaGlsZChmaWxsZXJSb3dFbGVt
ZW50KTsgLy8gV2UgZXhwZWN0IHRvIGZpbmQgYSBmaWxsZXIgcm93IHdoZW4gYXR0YWNoaW5nIG5v
ZGVzLgorICAgICAgICAvLyBBIHNvcnRhYmxlIGRhdGEgZ3JpZCBtaWdodCBub3QgYmUgaW4gYWRk
ZWQgdG8gYSB2aWV3LCBzbyBpdCBuZWVkcyBpdHMgbGF5b3V0IHVwZGF0ZWQgaGVyZS4KKyAgICAg
ICAgaWYgKCF0aGlzLnBhcmVudFZpZXcpCisgICAgICAgICAgICB0aGlzLnVwZGF0ZUxheW91dElm
TmVlZGVkKCk7CiAgICAgfQogCiAgICAgX3RvZ2dsZWRTb3J0T3JkZXIoKQpAQCAtMTYyNSwxNiAr
MTczMiwxMiBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlID0gY2xhc3MgRGF0YUdyaWROb2Rl
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICBpZiAoIXRoaXMuX2VsZW1lbnQp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKHRoaXMuX2hhc0NoaWxkcmVuKQot
ICAgICAgICB7CisgICAgICAgIGlmICh0aGlzLl9oYXNDaGlsZHJlbikgewogICAgICAgICAgICAg
dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJwYXJlbnQiKTsKICAgICAgICAgICAgIGlmICh0
aGlzLmV4cGFuZGVkKQogICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFk
ZCgiZXhwYW5kZWQiKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgIHsKKyAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoInBh
cmVudCIsICJleHBhbmRlZCIpOwotICAgICAgICB9CiAgICAgfQogCiAgICAgZ2V0IGhhc0NoaWxk
cmVuKCkKQEAgLTE4MzgsOCArMTk0MSwxMCBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlID0g
Y2xhc3MgRGF0YUdyaWROb2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJjb2xsYXBzZWQiKTsKIAotICAgICAgICBp
ZiAodGhpcy5kYXRhR3JpZCkKKyAgICAgICAgaWYgKHRoaXMuZGF0YUdyaWQpIHsKICAgICAgICAg
ICAgIHRoaXMuZGF0YUdyaWQuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5E
YXRhR3JpZC5FdmVudC5Db2xsYXBzZWROb2RlLCB7ZGF0YUdyaWROb2RlOiB0aGlzfSk7CisgICAg
ICAgICAgICB0aGlzLmRhdGFHcmlkLm5lZWRzTGF5b3V0KCk7CisgICAgICAgIH0KICAgICB9CiAK
ICAgICBjb2xsYXBzZVJlY3Vyc2l2ZWx5KCkKQEAgLTE4ODYsOCArMTk5MSwxMCBAQCBXZWJJbnNw
ZWN0b3IuRGF0YUdyaWROb2RlID0gY2xhc3MgRGF0YUdyaWROb2RlIGV4dGVuZHMgV2ViSW5zcGVj
dG9yLk9iamVjdAogCiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJleHBh
bmRlZCIpOwogCi0gICAgICAgIGlmICh0aGlzLmRhdGFHcmlkKQorICAgICAgICBpZiAodGhpcy5k
YXRhR3JpZCkgewogICAgICAgICAgICAgdGhpcy5kYXRhR3JpZC5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LkV4cGFuZGVkTm9kZSwge2RhdGFHcmlk
Tm9kZTogdGhpc30pOworICAgICAgICAgICAgdGhpcy5kYXRhR3JpZC5uZWVkc0xheW91dCgpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgZXhwYW5kUmVjdXJzaXZlbHkoKQpAQCAtMjA1NSwyNyAr
MjE2MiwyOCBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlID0gY2xhc3MgRGF0YUdyaWROb2Rl
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgICAgIHRoaXMuX2F0dGFjaGVkID0g
dHJ1ZTsKIAotICAgICAgICB2YXIgbmV4dEVsZW1lbnQgPSBudWxsOworICAgICAgICBsZXQgaW5z
ZXJ0aW9uSW5kZXggPSAtMTsKIAogICAgICAgICBpZiAoIXRoaXMuaXNQbGFjZWhvbGRlck5vZGUp
IHsKICAgICAgICAgICAgIHZhciBwcmV2aW91c0dyaWROb2RlID0gdGhpcy50cmF2ZXJzZVByZXZp
b3VzTm9kZSh0cnVlLCB0cnVlKTsKLSAgICAgICAgICAgIGlmIChwcmV2aW91c0dyaWROb2RlICYm
IHByZXZpb3VzR3JpZE5vZGUuZWxlbWVudC5wYXJlbnROb2RlKQotICAgICAgICAgICAgICAgIG5l
eHRFbGVtZW50ID0gcHJldmlvdXNHcmlkTm9kZS5lbGVtZW50Lm5leHRTaWJsaW5nOwotICAgICAg
ICAgICAgZWxzZSBpZiAoIXByZXZpb3VzR3JpZE5vZGUpCi0gICAgICAgICAgICAgICAgbmV4dEVs
ZW1lbnQgPSB0aGlzLmRhdGFHcmlkLmRhdGFUYWJsZUJvZHlFbGVtZW50LmZpcnN0Q2hpbGQ7Cisg
ICAgICAgICAgICBpbnNlcnRpb25JbmRleCA9IHRoaXMuZGF0YUdyaWQucm93cy5pbmRleE9mKHBy
ZXZpb3VzR3JpZE5vZGUpOworICAgICAgICAgICAgaWYgKGluc2VydGlvbkluZGV4ID09PSAtMSkK
KyAgICAgICAgICAgICAgICBpbnNlcnRpb25JbmRleCA9IDA7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgaW5zZXJ0aW9uSW5kZXgrKzsKICAgICAgICAgfQogCi0gICAgICAgIC8v
IElmIHRoZXJlIGlzIG5vIG5leHQgZ3JpZCBub2RlLCB0aGVuIGFwcGVuZCBiZWZvcmUgdGhlIGxh
c3QgY2hpbGQgc2luY2UgdGhlIGxhc3QgY2hpbGQgaXMgdGhlIGZpbGxlciByb3cuCi0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuZGF0YUdyaWQuZGF0YVRhYmxlQm9keUVsZW1lbnQubGFzdENo
aWxkLmNsYXNzTGlzdC5jb250YWlucygiZmlsbGVyIikpOwotCi0gICAgICAgIGlmICghbmV4dEVs
ZW1lbnQpCi0gICAgICAgICAgICBuZXh0RWxlbWVudCA9IHRoaXMuZGF0YUdyaWQuZGF0YVRhYmxl
Qm9keUVsZW1lbnQubGFzdENoaWxkOworICAgICAgICBpZiAoaW5zZXJ0aW9uSW5kZXggPT09IC0x
KQorICAgICAgICAgICAgdGhpcy5kYXRhR3JpZC5yb3dzLnB1c2godGhpcyk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRoaXMuZGF0YUdyaWQucm93cy5pbnNlcnRBdEluZGV4KHRoaXMsIGlu
c2VydGlvbkluZGV4KTsKIAotICAgICAgICB0aGlzLmRhdGFHcmlkLmRhdGFUYWJsZUJvZHlFbGVt
ZW50Lmluc2VydEJlZm9yZSh0aGlzLmVsZW1lbnQsIG5leHRFbGVtZW50KTsKKyAgICAgICAgdGhp
cy5kYXRhR3JpZC5fbm90ZVJvd3NDaGFuZ2VkKCk7CiAKLSAgICAgICAgaWYgKHRoaXMuZXhwYW5k
ZWQpCisgICAgICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7CiAgICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICAgICAgdGhp
cy5jaGlsZHJlbltpXS5fYXR0YWNoKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBfZGV0YWNo
KCkKQEAgLTIwODUsOCArMjE5Myw4IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUgPSBjbGFz
cyBEYXRhR3JpZE5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICAgICAgdGhp
cy5fYXR0YWNoZWQgPSBmYWxzZTsKIAotICAgICAgICBpZiAodGhpcy5fZWxlbWVudCAmJiB0aGlz
Ll9lbGVtZW50LnBhcmVudE5vZGUpCi0gICAgICAgICAgICB0aGlzLl9lbGVtZW50LnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQodGhpcy5fZWxlbWVudCk7CisgICAgICAgIHRoaXMuZGF0YUdyaWQucm93
cy5yZW1vdmUodGhpcywgdHJ1ZSk7CisgICAgICAgIHRoaXMuZGF0YUdyaWQuX25vdGVSb3dzQ2hh
bmdlZCgpOwogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5n
dGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5baV0uX2RldGFjaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YWJhc2VV
c2VyUXVlcnlTdWNjZXNzVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0RhdGFiYXNlVXNlclF1ZXJ5U3VjY2Vzc1ZpZXcuanMKaW5kZXggZjJkYjZjNGE0
NjNhMTFiMGFiMzI1OTNlOTQwZjhmM2Y5OTJhZDhhZS4uMDk0NGRjOTlmMGJmMGIzY2ExMmE0YmFm
NGY1MTA5NmYwYzFmNGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRGF0YWJhc2VVc2VyUXVlcnlTdWNjZXNzVmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhYmFzZVVzZXJRdWVyeVN1
Y2Nlc3NWaWV3LmpzCkBAIC0zMSw4ICszMSwxMSBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2VVc2Vy
UXVlcnlTdWNjZXNzVmlldyA9IGNsYXNzIERhdGFiYXNlVXNlclF1ZXJ5U3VjY2Vzc1ZpZXcgZQog
CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkID0gV2ViSW5zcGVjdG9yLkRhdGFHcmlkLmNyZWF0ZVNv
cnRhYmxlRGF0YUdyaWQoY29sdW1uTmFtZXMsIHZhbHVlcyk7CiAgICAgICAgIGlmICh0aGlzLl9k
YXRhR3JpZCkgewotICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuZWxlbWVudC5jbGFzc0xpc3Qu
YWRkKCJpbmxpbmUiKTsKKyAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmlubGluZSA9IHRydWU7
CisKICAgICAgICAgICAgIHRoaXMucmVzdWx0RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kYXRh
R3JpZC5lbGVtZW50KTsKKworICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlTGF5b3V0
SWZOZWVkZWQoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMucmVzdWx0RWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJuby1yZXN1bHRzIik7CiAgICAgICAgICAgICB0aGlzLnJlc3Vs
dEVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlF1ZXJ5IHJldHVy
bmVkIG5vIHJlc3VsdHMuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5jc3MKaW5kZXggNWUwMDQ4MjE2
Y2I4M2EzNjYwNjY3YzkxYzdjNjdlMThkNWY1YjVjNS4uNmVmN2QzOTRhMjJjY2Y5NGNjZWMzNzU2
NDI3YWNhYzRmOTYzZWIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmNzcwpAQCAtMjYyLDIyICsy
NjIsMTIgQEAKICAgICBib3JkZXItYm90dG9tOiBub25lOwogfQogCi0uZGV0YWlscy1zZWN0aW9u
ID4gLmNvbnRlbnQgLmRhdGEtZ3JpZCB0YWJsZS5kYXRhIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdl
OiBub25lOwotfQotCi0uZGV0YWlscy1zZWN0aW9uID4gLmNvbnRlbnQgLmRhdGEtZ3JpZCB0cjpu
dGgtY2hpbGQoZXZlbikgewotICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotfQotCi0uZGV0
YWlscy1zZWN0aW9uID4gLmNvbnRlbnQgLmRhdGEtZ3JpZCB0cjpudGgtY2hpbGQob2RkKSB7Ci0g
ICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDIxNCwgNDElLCA5NiUpOwotfQotCiAuZGV0YWlscy1z
ZWN0aW9uID4gLmNvbnRlbnQgLmRhdGEtZ3JpZCB0ZC52YWx1ZS1jb2x1bW4gewogICAgIGhlaWdo
dDogYXV0bzsKICAgICBsaW5lLWhlaWdodDogaW5pdGlhbDsKICAgICB3aGl0ZS1zcGFjZTogbm9y
bWFsOworICAgIHBhZGRpbmctdG9wOiA0cHg7CisgICAgcGFkZGluZy1ib3R0b206IDRweDsKIH0K
IAogLmRldGFpbHMtc2VjdGlvbiA+IC5jb250ZW50IC5kYXRhLWdyaWQgdGQudmFsdWUtY29sdW1u
ID4gZGl2IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RldGFpbHNTZWN0aW9uRGF0YUdyaWRSb3cuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbkRhdGFHcmlkUm93LmpzCmluZGV4
IDk2NGQ2OTI0YmU4MTg2OTc5Y2NkOWJlZDQyNjRhMWU4MzY2ZTUyMmMuLjc5ZjBkMGI4ODk5NDEw
YjgzYWJhMzAyYzI3OGM2ZDk2YTRkMGRmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uRGF0YUdyaWRSb3cuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rp
b25EYXRhR3JpZFJvdy5qcwpAQCAtNDksMTAgKzQ5LDEzIEBAIFdlYkluc3BlY3Rvci5EZXRhaWxz
U2VjdGlvbkRhdGFHcmlkUm93ID0gY2xhc3MgRGV0YWlsc1NlY3Rpb25EYXRhR3JpZFJvdyBleHRl
bmRzCiAgICAgICAgIHRoaXMuX2RhdGFHcmlkID0gZGF0YUdyaWQgfHwgbnVsbDsKIAogICAgICAg
ICBpZiAoZGF0YUdyaWQpIHsKLSAgICAgICAgICAgIGRhdGFHcmlkLmVsZW1lbnQuY2xhc3NMaXN0
LmFkZCgiaW5saW5lIik7CisgICAgICAgICAgICBkYXRhR3JpZC5pbmxpbmUgPSB0cnVlOworICAg
ICAgICAgICAgZGF0YUdyaWQudmFyaWFibGVIZWlnaHRSb3dzID0gdHJ1ZTsKIAogICAgICAgICAg
ICAgdGhpcy5oaWRlRW1wdHlNZXNzYWdlKCk7CiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBw
ZW5kQ2hpbGQoZGF0YUdyaWQuZWxlbWVudCk7CisKKyAgICAgICAgICAgIGRhdGFHcmlkLnVwZGF0
ZUxheW91dElmTmVlZGVkKCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgdGhpcy5zaG93
RW1wdHlNZXNzYWdlKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcFNuYXBzaG90SW5zdGFuY2VzQ29udGVudFZpZXcuY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcFNuYXBzaG90
SW5zdGFuY2VzQ29udGVudFZpZXcuY3NzCmluZGV4IDgyNGQxZWRlZGRmYjJmMDZkNzA1OTllNTYw
YTE3MWUyZmQ3Y2I5ZTUuLjE0NTFhZWQwNzcwZTg0ZmNkMzg0MDU2MDI4YWUzMDk4NTBkMmY2MWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hl
YXBTbmFwc2hvdEluc3RhbmNlc0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25hcHNob3RJbnN0YW5jZXNDb250ZW50Vmll
dy5jc3MKQEAgLTY1LDcgKzY1LDYgQEAKICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgd2lk
dGg6IDE2cHg7CiAgICAgaGVpZ2h0OiAxNnB4OwotICAgIG1hcmdpbi10b3A6IDFweDsKICAgICBt
YXJnaW4tbGVmdDogMnB4OwogfQogCkBAIC03OCw3ICs3Nyw2IEBACiAgICAgcG9zaXRpb246IHJl
bGF0aXZlOwogICAgIHdpZHRoOiAxNnB4OwogICAgIGhlaWdodDogMTZweDsKLSAgICBtYXJnaW4t
dG9wOiAxcHg7CiAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICAgY29udGVudDogdXJsKC4uL0lt
YWdlcy9UeXBlVW5kZWZpbmVkLnN2Zyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRl
bnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lu
ZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcuY3NzCmluZGV4IDM3NjMzYzVhNDU3
Y2I5MWQ4NjUxNmEzZTRlZTJlYmZjMjk0MTBhNjAuLjZiZmMzYTFiZTM1NmMxNGIwOGViOGM2ZDYx
MDFmNWFmNGIzNzQzYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcuY3NzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0luZGV4ZWREYXRh
YmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcuY3NzCkBAIC0zMSwyMyArMzEsNiBAQAogICAgIGJv
dHRvbTogMDsKIH0KIAotLmNvbnRlbnQtdmlldy5pbmRleGVkLWRhdGFiYXNlLW9iamVjdC1zdG9y
ZSA+IC5kYXRhLWdyaWQgdGFibGUuZGF0YSB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsK
LX0KLQotLmNvbnRlbnQtdmlldy5pbmRleGVkLWRhdGFiYXNlLW9iamVjdC1zdG9yZSA+IC5kYXRh
LWdyaWQgdGFibGUuZGF0YSB0cjpudGgtY2hpbGQoZXZlbikgewotICAgIGJhY2tncm91bmQtY29s
b3I6IHdoaXRlOwotfQotCi0uY29udGVudC12aWV3LmluZGV4ZWQtZGF0YWJhc2Utb2JqZWN0LXN0
b3JlID4gLmRhdGEtZ3JpZCB0YWJsZS5kYXRhIHRyOm50aC1jaGlsZChvZGQpIHsKLSAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2woMjE0LCA0MSUsIDk2JSk7Ci19Ci0KLS5jb250ZW50LXZpZXcuaW5k
ZXhlZC1kYXRhYmFzZS1vYmplY3Qtc3RvcmUgPiAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgdHIuZmls
bGVyIHsKLSAvKiBGSVhNRTogVGhpcyBzaG91bGQgc2hvdyBhbiBhbHRlcm5hdGluZyBzdHJpcGUs
IGJ1dCBJIGNvdWxkbid0IG1ha2UgaXQgd29yay4gKi8KLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3
aGl0ZTsKLX0KLQogLmNvbnRlbnQtdmlldy5pbmRleGVkLWRhdGFiYXNlLW9iamVjdC1zdG9yZSA+
IC5kYXRhLWdyaWQgdHIuc2VsZWN0ZWQgewogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMTAs
IDkwJSwgOTAlKSAhaW1wb3J0YW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVDb250ZW50
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0luZGV4
ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcuanMKaW5kZXggYWM4NjA1NDFiYjU2YzAx
M2YzMDJlOGE2OTg2MGI4ZDI1MjQwNjNmZi4uZGY2NmE0NWZmOTQyMzE0ZWNmZGNhOGJkNGEwMTk4
NGNkMzlmZTQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVDb250ZW50Vmlldy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmRleGVkRGF0YWJhc2VP
YmplY3RTdG9yZUNvbnRlbnRWaWV3LmpzCkBAIC02OCw2ICs2OCw3IEBAIFdlYkluc3BlY3Rvci5J
bmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3ID0gY2xhc3MgSW5kZXhlZERhdGFi
YXNlT2JqZWN0CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IG5ldyBXZWJJ
bnNwZWN0b3IuRGF0YUdyaWQoY29sdW1uSW5mbyk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLnZh
cmlhYmxlSGVpZ2h0Um93cyA9IHRydWU7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnNjcm9sbENv
bnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB0aGlzLl9kYXRhR3JpZFNjcm9sbGVk
LmJpbmQodGhpcykpOwogICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fZGF0YUdyaWQpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9M
YXllclRyZWVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCAx
YmU3MTFkMDI1NDA0MzA3OTRmNjVjYWRmYjMyZTJjNzlmYmE1ZTljLi44NTdlZTg0YjYzMTYwYWVi
ODU0NDRmMGE0NTk4Y2Y2Y2RiZDlhMmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllclRyZWVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyVHJlZURl
dGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTEzOCw2ICsxMzgsNyBAQCBXZWJJbnNwZWN0b3IuTGF5
ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyVHJlZURldGFpbHNTaWRlYmFy
UGFuZWwgZQogICAgICAgICBjb2x1bW5zLm1lbW9yeS53aWR0aCA9ICI3MHB4IjsKIAogICAgICAg
ICB0aGlzLl9kYXRhR3JpZCA9IG5ldyBXZWJJbnNwZWN0b3IuRGF0YUdyaWQoY29sdW1ucyk7Cisg
ICAgICAgIHRoaXMuX2RhdGFHcmlkLmlubGluZSA9IHRydWU7CiAgICAgICAgIHRoaXMuX2RhdGFH
cmlkLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LlNvcnRDaGFu
Z2VkLCB0aGlzLl9zb3J0RGF0YUdyaWQsIHRoaXMpOwogICAgICAgICB0aGlzLl9kYXRhR3JpZC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5TZWxlY3RlZE5vZGVD
aGFuZ2VkLCB0aGlzLl9zZWxlY3RlZERhdGFHcmlkTm9kZUNoYW5nZWQsIHRoaXMpOwogCkBAIC0x
NDUsNyArMTQ2LDYgQEAgV2ViSW5zcGVjdG9yLkxheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwg
PSBjbGFzcyBMYXllclRyZWVEZXRhaWxzU2lkZWJhclBhbmVsIGUKICAgICAgICAgdGhpcy5zb3J0
T3JkZXJTZXR0aW5nID0gbmV3IFdlYkluc3BlY3Rvci5TZXR0aW5nKCJsYXllci10cmVlLWRldGFp
bHMtc2lkZWJhci1wYW5lbC1zb3J0LW9yZGVyIiwgV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRP
cmRlci5EZXNjZW5kaW5nKTsKIAogICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMuX2RhdGFHcmlk
LmVsZW1lbnQ7Ci0gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaW5saW5lIik7CiAgICAg
ICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9kYXRhR3JpZEdhaW5l
ZEZvY3VzLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJibHVyIiwgdGhpcy5fZGF0YUdyaWRMb3N0Rm9jdXMuYmluZCh0aGlzKSwgZmFsc2UpOwog
ICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fZGF0YUdyaWRX
YXNDbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzcwppbmRl
eCA1OWMyZWJlZjYyZjQwMzFkZThhOTY5YzNhY2EwZmNkNTM3NjM2ZjdjLi5mZTViOGM4NzVkOTUz
YTM5ODNiMTE1Y2M1ZjNkZGQ1ZGRkZTZmNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5jc3MKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuY3NzCkBA
IC0xMTcsMTUgKzExNyw2IEBACiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDIxMCwgOTAlLCA5
MCUpICFpbXBvcnRhbnQ7CiB9CiAKLS5jb25zb2xlLWl0ZW0gLmRhdGEtZ3JpZCB0YWJsZS5kYXRh
IHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOwotICAgIGJhY2tncm91bmQtY29sb3I6IHdo
aXRlOwotfQotCi0uY29uc29sZS1pdGVtIC5kYXRhLWdyaWQgdGFibGUuZGF0YSB0cjpudGgtY2hp
bGQoZXZlbikgewotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMTQsIDQxJSwgOTYlKTsKLX0K
LQogLmNvbnNvbGUtaXRlbSAuZGF0YS1ncmlkIHRyLnNlbGVjdGVkIHsKICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBoc2woMjEwLCAwJSwgOTAlKSAhaW1wb3J0YW50OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya0dyaWRDb250ZW50
Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3
b3JrR3JpZENvbnRlbnRWaWV3LmNzcwppbmRleCAzMTNhMDI3ZDUzNTA5OTI0N2FjMWI0Y2ZlZjE1
ZmFmNmYwOTA5MTE4Li5lODM4YjRlODUzYjI2MzllZTczYzg2ZTQwNDg0MDhhOWRmMjlhNDBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3
b3JrR3JpZENvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9OZXR3b3JrR3JpZENvbnRlbnRWaWV3LmNzcwpAQCAtMzQsMTMgKzM0LDMg
QEAKIC5jb250ZW50LXZpZXcubmV0d29yay1ncmlkID4gLmRhdGEtZ3JpZCB0aCB7CiAgICAgYm9y
ZGVyLXRvcDogbm9uZTsKIH0KLQotLmNvbnRlbnQtdmlldy5uZXR3b3JrLWdyaWQgPiAuZGF0YS1n
cmlkIHRkIHsKLSAgICBoZWlnaHQ6IDE2cHg7Ci0gICAgbGluZS1oZWlnaHQ6IDE2cHg7Ci19Ci0K
LS5jb250ZW50LXZpZXcubmV0d29yay1ncmlkID4gLmRhdGEtZ3JpZCB0YWJsZS5kYXRhIHsKLSAg
ICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB3aGl0ZSwgd2hp
dGUgNTAlLCBoc2woMCwgMCUsIDk1JSkgNTAlLCBoc2woMCwgMCUsIDk1JSkpOwotICAgIGJhY2tn
cm91bmQtc2l6ZTogMTAwJSA0MHB4OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVTZXREYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2JlU2V0RGF0YUdyaWQuanMKaW5kZXgg
NDNiNjFjYzNlMjg5MTRlNmIyMzRjYTYxMGU5Y2Q1ZWE3NzQ1N2Y2Yi4uNDZlMTNmMTAyMTU3NDIz
ZDc3YTY2ZjM4YTM2ODAxMGJkMDgwOWU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVTZXREYXRhR3JpZC5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9iZVNldERhdGFHcmlkLmpzCkBA
IC00MCw3ICs0MCw3IEBAIFdlYkluc3BlY3Rvci5Qcm9iZVNldERhdGFHcmlkID0gY2xhc3MgUHJv
YmVTZXREYXRhR3JpZCBleHRlbmRzIFdlYkluc3BlY3Rvci5EYXRhCiAKICAgICAgICAgdGhpcy5w
cm9iZVNldCA9IHByb2JlU2V0OwogCi0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJpbmxpbmUiKTsKKyAgICAgICAgdGhpcy5pbmxpbmUgPSB0cnVlOwogCiAgICAgICAgIHRoaXMu
X2ZyYW1lTm9kZXMgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9sYXN0VXBkYXRlZEZyYW1lID0g
bnVsbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Byb2ZpbGVWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Byb2ZpbGVWaWV3LmNzcwppbmRleCBlM2M1NTQ4MGY5Y2VjNjdlOGM0ZDEyM2RmZDU3
NzI2NTFjODc5MWI1Li4yMzcyMzA5OGM1NjYzYjBjYmEwODZkNmQ1YTQ1NjkyYTZkNTRlMDkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9m
aWxlVmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUHJvZmlsZVZpZXcuY3NzCkBAIC0zOSw3ICszOSw2IEBACiAgICAgcG9zaXRpb246IHJlbGF0
aXZlOwogICAgIHdpZHRoOiAxNnB4OwogICAgIGhlaWdodDogMTZweDsKLSAgICBtYXJnaW4tdG9w
OiAxcHg7CiAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7CiB9CiAKQEAgLTc3LDcgKzc2LDYgQEAKICAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgd2lkdGg6IDE2cHg7CiAgICAgaGVpZ2h0OiAxNnB4
OwotICAgIG1hcmdpbi10b3A6IDFweDsKICAgICBtYXJnaW4tbGVmdDogMnB4OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGlu
ZVJlY29yZGluZ0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCmluZGV4IGY3ZmNk
NTFhMTFiN2NmZDNiNDM4MDJkNTlhODU2OGIwYTY2ZTUxYjIuLmZjMmNhY2IwOTJhZjVhZjAzNzEz
OTA5MmJjOGY1YTBkOTk3NWZkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3Jk
aW5nQ29udGVudFZpZXcuY3NzCkBAIC02MSwxMyArNjEsMyBAQAogLmNvbnRlbnQtdmlldy50aW1l
bGluZS1yZWNvcmRpbmcgPiAuY29udGVudC1icm93c2VyID4gLm5hdmlnYXRpb24tYmFyID4gLml0
ZW0uc2NvcGUtYmFyLmRlZmF1bHQtaXRlbS1zZWxlY3RlZCA+IC5tdWx0aXBsZSAuYXJyb3dzIHsK
ICAgICBjb2xvcjogYmxhY2s7CiB9Ci0KLS5jb250ZW50LXZpZXcudGltZWxpbmUtcmVjb3JkaW5n
ID4gLmNvbnRlbnQtYnJvd3NlciA+IC5jb250ZW50LXZpZXctY29udGFpbmVyID4gLnRpbWVsaW5l
LXZpZXcgPiAuZGF0YS1ncmlkIHRkIHsKLSAgICBoZWlnaHQ6IDE2cHg7Ci0gICAgbGluZS1oZWln
aHQ6IDE2cHg7Ci19Ci0KLS5jb250ZW50LXZpZXcudGltZWxpbmUtcmVjb3JkaW5nID4gLmNvbnRl
bnQtYnJvd3NlciA+IC5jb250ZW50LXZpZXctY29udGFpbmVyID4gLnRpbWVsaW5lLXZpZXcgPiAu
ZGF0YS1ncmlkIHRhYmxlLmRhdGEgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFk
aWVudCh0byBib3R0b20sIHdoaXRlLCB3aGl0ZSA1MCUsIGhzbCgwLCAwJSwgOTUlKSA1MCUsIGhz
bCgwLCAwJSwgOTUlKSk7Ci0gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDQwcHg7Ci19CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WYXJpYWJs
ZXMuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmFyaWFi
bGVzLmNzcwppbmRleCA5ODUwZDI3NTQ4YmI2ZDRiNmZhMDQxYTgwNDFhYTdiMzU0ZWE2ZjYyLi5h
OTBlYjg2YmM5MWZjNjQ3ZDYxMTU5ZGM0ZGUwNzNlNzQyNmMxYjMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WYXJpYWJsZXMuY3NzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1ZhcmlhYmxlcy5jc3MK
QEAgLTcwLDYgKzcwLDkgQEAKICAgICAtLW1lbW9yeS1leHRyYS1maWxsLWNvbG9yOiBoc2woMjEx
LCA1MyUsIDcwJSk7CiAgICAgLS1tZW1vcnktZXh0cmEtc3Ryb2tlLWNvbG9yOiBoc2woMjExLCA1
MyUsIDU1JSk7CiAKKyAgICAtLWV2ZW4temVicmEtc3RyaXBlLXJvdy1iYWNrZ3JvdW5kLWNvbG9y
OiB3aGl0ZTsKKyAgICAtLW9kZC16ZWJyYS1zdHJpcGUtcm93LWJhY2tncm91bmQtY29sb3I6IGhz
bCgwLCAwJSwgOTUlKTsKKwogICAgIC0tdG9vbGJhci1oZWlnaHQ6IDM2cHg7CiAgICAgLS10YWIt
YmFyLWhlaWdodDogMjRweDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276766</attachid>
            <date>2016-04-19 15:41:30 -0700</date>
            <delta_ts>2016-04-19 16:42:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Web-Inspector-DataGrid-should-be-virtualized-so-it-o.patch</filename>
            <type>text/plain</type>
            <size>43872</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">RnJvbSA1ZmY2ZWU3NDhhM2FjNWFlYTNmMmMxNmM5OGFhYzAxZWMzYmFkNzM4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW1vdGh5IEhhdGNoZXIgPHRpbW90aHlAYXBwbGUuY29tPgpE
YXRlOiBNb24sIDE4IEFwciAyMDE2IDE5OjQ5OjM0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2Vi
IEluc3BlY3RvcjogRGF0YUdyaWQgc2hvdWxkIGJlIHZpcnR1YWxpemVkIHNvIGl0IG9ubHkKIHJl
bmRlcnMgdmlzaWJsZSByb3dzCgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU2NjYzCnJkYXI6Ly9wcm9ibGVtLzI1NzY1MjU2CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KCiogVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmpz
OgooV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLnNldCBj
b250YWluZXJSZWdpb25zKToKQ2FsbCB1cGxhdGVMYXlvdXRJZk5lZWRlZCBzaW5jZSB3ZSBkb24n
dCB1c2Ugdmlld3MgaGVyZS4KCiogVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZVZp
ZXcuanM6CihXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VWaWV3LnByb3RvdHlwZS5fZm9ybWF0
UGFyYW1ldGVyQXNUYWJsZSk6ClNldCBpbmxpbmUgYW5kIHZhcmlhYmxlSGVpZ2h0Um93cyB0byB0
cnVlLCByZW1vdmUgZGlyZWN0IGNsYXNzTGlzdCBhZGQuIENhbGwgdXBkYXRlTGF5b3V0SWZOZWVk
ZWQgc2luY2Ugd2UgZG9uJ3QgdXNlIHZpZXdzIGhlcmUuCgoqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZURhdGFHcmlkLmpzOgooV2ViSW5zcGVjdG9yLkRPTVRyZWVEYXRhR3JpZCk6ClNldCBp
bmxpbmUgdG8gdHJ1ZSwgcmVtb3ZlIGRpcmVjdCBjbGFzc0xpc3QgYWRkLgoKKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0RhdGFHcmlkLmNzczoKKC5kYXRhLWdyaWQgdGQpOgooLmRhdGEtZ3JpZCB0YWJs
ZS5kYXRhKToKKC5kYXRhLWdyaWQ6bm90KC52YXJpYWJsZS1oZWlnaHQtcm93cykgdGFibGUuZGF0
YSk6CiguZGF0YS1ncmlkOm5vdCgudmFyaWFibGUtaGVpZ2h0LXJvd3MpIHRhYmxlLmRhdGEub2Rk
LWZpcnN0LXplYnJhLXN0cmlwZSk6CiguZGF0YS1ncmlkLnZhcmlhYmxlLWhlaWdodC1yb3dzIHRh
YmxlLmRhdGEgdHI6bnRoLWNoaWxkKG9kZCkpOgooLmRhdGEtZ3JpZC52YXJpYWJsZS1oZWlnaHQt
cm93cyB0YWJsZS5kYXRhIHRyOm50aC1jaGlsZChldmVuKSk6CiguZGF0YS1ncmlkLnZhcmlhYmxl
LWhlaWdodC1yb3dzLm9kZC1maXJzdC16ZWJyYS1zdHJpcGUgdGFibGUuZGF0YSB0cjpudGgtY2hp
bGQob2RkKSk6CiguZGF0YS1ncmlkLnZhcmlhYmxlLWhlaWdodC1yb3dzLm9kZC1maXJzdC16ZWJy
YS1zdHJpcGUgdGFibGUuZGF0YSB0cjpudGgtY2hpbGQoZXZlbikpOgooLmRhdGEtZ3JpZC52YXJp
YWJsZS1oZWlnaHQtcm93cyB0YWJsZS5kYXRhIHRyLmZpbGxlcik6ClVwZGF0ZWQgc3R5bGVzIHRv
IHN1cHBvcnQgdmFyaWFibGUgaGVpZ2h0IHJvd3MgZGlyZWN0bHkgYW5kIGZsaXBwaW5nIHRoZSBv
cmRlciBvZiB0aGUgc3RyaXBlcwp3aGVuIHRoZSB2aXJ0dXJhbCB0YWJsZSBzdGFydHMgYXQgYW4g
b2RkIHJvdy4KCiogVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qczoKKFdlYkluc3BlY3Rv
ci5EYXRhR3JpZCk6IEFkZGVkIHJvd0hlaWdodCBhbmQgcm93cy4KKFdlYkluc3BlY3Rvci5EYXRh
R3JpZC5wcm90b3R5cGUuZ2V0IGlubGluZSk6IEFkZGVkLgooV2ViSW5zcGVjdG9yLkRhdGFHcmlk
LnByb3RvdHlwZS5zZXQgaW5saW5lKTogQWRkZWQuCihXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJv
dG90eXBlLmdldCB2YXJpYWJsZUhlaWdodFJvd3MpOiBBZGRlZC4KKFdlYkluc3BlY3Rvci5EYXRh
R3JpZC5wcm90b3R5cGUuc2V0IHZhcmlhYmxlSGVpZ2h0Um93cyk6IEFkZGVkLgooV2ViSW5zcGVj
dG9yLkRhdGFHcmlkLnByb3RvdHlwZS5sYXlvdXQpOiBDYWxsIF91cGRhdGVWaXNpYmxlUm93cy4K
KFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUuX25vdGVSb3dzQ2hhbmdlZCk6IEFkZGVk
LgooV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZS5fdXBkYXRlVmlzaWJsZVJvd3MpOiBB
ZGRlZC4KKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUuX3NvcnROb2Rlc0NhbGxiYWNr
KTogVXBkYXRlIHRvIG5vdCB1c2UgdGhlIERPTS4KKFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUu
cHJvdG90eXBlLnNldCBoYXNDaGlsZHJlbik6IENhbGwgbmVlZHNMYXlvdXQuCihXZWJJbnNwZWN0
b3IuRGF0YUdyaWROb2RlLnByb3RvdHlwZS5jb2xsYXBzZSk6IENhbGwgbmVlZHNMYXlvdXQuCihX
ZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3RvdHlwZS5leHBhbmQpOiBDYWxsIG5lZWRzTGF5
b3V0LgooV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZS5wcm90b3R5cGUuX2F0dGFjaCk6IENhbGwg
X25vdGVSb3dzQ2hhbmdlZC4KKFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUucHJvdG90eXBlLl9k
ZXRhY2gpOiBDYWxsIF9ub3RlUm93c0NoYW5nZWQuCgoqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGF0
YWJhc2VVc2VyUXVlcnlTdWNjZXNzVmlldy5qczoKKFdlYkluc3BlY3Rvci5EYXRhYmFzZVVzZXJR
dWVyeVN1Y2Nlc3NWaWV3KToKU2V0IGlubGluZSB0byB0cnVlLCByZW1vdmUgZGlyZWN0IGNsYXNz
TGlzdCBhZGQuIENhbGwgdXBsYXRlTGF5b3V0SWZOZWVkZWQgc2luY2Ugd2UgZG9uJ3QgdXNlIHZp
ZXdzIGhlcmUuCgoqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uY3NzOgooLmRl
dGFpbHMtc2VjdGlvbiA+IC5jb250ZW50IC5kYXRhLWdyaWQgdGQudmFsdWUtY29sdW1uKToKKC5k
ZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAuZGF0YS1ncmlkIHRhYmxlLmRhdGEpOiBEZWxldGVk
LgooLmRldGFpbHMtc2VjdGlvbiA+IC5jb250ZW50IC5kYXRhLWdyaWQgdHI6bnRoLWNoaWxkKGV2
ZW4pKTogRGVsZXRlZC4KKC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAuZGF0YS1ncmlkIHRy
Om50aC1jaGlsZChvZGQpKTogRGVsZXRlZC4KTm93IGhhbmRsZWQgYnkgRGF0YUdyaWQuY3NzIGRp
cmVjdGx5LgoKKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uRGF0YUdyaWRSb3cu
anM6CihXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25EYXRhR3JpZFJvdy5wcm90b3R5cGUuc2V0
IGRhdGFHcmlkKToKU2V0IGlubGluZSBhbmQgdmFyaWFibGVIZWlnaHRSb3dzIHRvIHRydWUsIHJl
bW92ZSBkaXJlY3QgY2xhc3NMaXN0IGFkZC4gQ2FsbCB1cGxhdGVMYXlvdXRJZk5lZWRlZCBzaW5j
ZSB3ZSBkb24ndCB1c2Ugdmlld3MgaGVyZS4KCiogVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25h
cHNob3RJbnN0YW5jZXNDb250ZW50Vmlldy5jc3M6CiguaGVhcC1zbmFwc2hvdCA+IC5kYXRhLWdy
aWQgdHI6bWF0Y2hlcyguc2VsZWN0ZWQsIDpob3ZlcikgdGQgLmdvLXRvLWFycm93KToKKC5oZWFw
LXNuYXBzaG90IC5pY29uKToKUmVtb3ZlIG1hcmdpbi10b3AgdG8gZml0IGluc2lkZSAyMHB4IHJv
dyBpbnN0ZWFkIG9mIDIxcHguCgoqIFVzZXJJbnRlcmZhY2UvVmlld3MvSW5kZXhlZERhdGFiYXNl
T2JqZWN0U3RvcmVDb250ZW50Vmlldy5jc3M6CiguY29udGVudC12aWV3LmluZGV4ZWQtZGF0YWJh
c2Utb2JqZWN0LXN0b3JlID4gLmRhdGEtZ3JpZCB0YWJsZS5kYXRhKTogRGVsZXRlZC4KKC5jb250
ZW50LXZpZXcuaW5kZXhlZC1kYXRhYmFzZS1vYmplY3Qtc3RvcmUgPiAuZGF0YS1ncmlkIHRhYmxl
LmRhdGEgdHI6bnRoLWNoaWxkKGV2ZW4pKTogRGVsZXRlZC4KKC5jb250ZW50LXZpZXcuaW5kZXhl
ZC1kYXRhYmFzZS1vYmplY3Qtc3RvcmUgPiAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgdHI6bnRoLWNo
aWxkKG9kZCkpOiBEZWxldGVkLgooLmNvbnRlbnQtdmlldy5pbmRleGVkLWRhdGFiYXNlLW9iamVj
dC1zdG9yZSA+IC5kYXRhLWdyaWQgdGFibGUuZGF0YSB0ci5maWxsZXIpOiBEZWxldGVkLgpOb3cg
aGFuZGxlZCBieSBEYXRhR3JpZC5jc3MgZGlyZWN0bHkuCgoqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
SW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVDb250ZW50Vmlldy5qczoKKFdlYkluc3BlY3Rvci5J
bmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3KToKU2V0IHZhcmlhYmxlSGVpZ2h0
Um93cyB0byB0cnVlLgoKKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyVHJlZURldGFpbHNTaWRl
YmFyUGFuZWwuanM6CihXZWJJbnNwZWN0b3IuTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbC5w
cm90b3R5cGUuX2J1aWxkRGF0YUdyaWRTZWN0aW9uKToKU2V0IGlubGluZSB0byB0cnVlLCByZW1v
dmUgZGlyZWN0IGNsYXNzTGlzdCBhZGQuIENhbGwgdXBsYXRlTGF5b3V0SWZOZWVkZWQgc2luY2Ug
d2UgZG9uJ3QgdXNlIHZpZXdzIGhlcmUuCgoqIFVzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVu
dFZpZXcuY3NzOgooLmNvbnNvbGUtaXRlbSAuZGF0YS1ncmlkIHRhYmxlLmRhdGEpOiBEZWxldGVk
LgooLmNvbnNvbGUtaXRlbSAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgdHI6bnRoLWNoaWxkKGV2ZW4p
KTogRGVsZXRlZC4KTm93IGhhbmRsZWQgYnkgRGF0YUdyaWQuY3NzIGRpcmVjdGx5LgoKKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtHcmlkQ29udGVudFZpZXcuY3NzOgooLmNvbnRlbnQtdmll
dy5uZXR3b3JrLWdyaWQgPiAuZGF0YS1ncmlkIHRkKTogRGVsZXRlZC4KKC5jb250ZW50LXZpZXcu
bmV0d29yay1ncmlkID4gLmRhdGEtZ3JpZCB0YWJsZS5kYXRhKTogRGVsZXRlZC4KTm93IGhhbmRs
ZWQgYnkgRGF0YUdyaWQuY3NzIGRpcmVjdGx5LgoKKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2Jl
U2V0RGF0YUdyaWQuanM6CihXZWJJbnNwZWN0b3IuUHJvYmVTZXREYXRhR3JpZCk6ClNldCBpbmxp
bmUgdG8gdHJ1ZSwgcmVtb3ZlIGRpcmVjdCBjbGFzc0xpc3QgYWRkLgoKKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1Byb2ZpbGVWaWV3LmNzczoKKC5wcm9maWxlID4gLmRhdGEtZ3JpZCB0ZCAuaWNvbik6
CigucHJvZmlsZSA+IC5kYXRhLWdyaWQgdHI6bWF0Y2hlcyguc2VsZWN0ZWQsIDpob3ZlcikgLmdv
LXRvLWFycm93KToKUmVtb3ZlIG1hcmdpbi10b3AgdG8gZml0IGluc2lkZSAyMHB4IHJvdyBpbnN0
ZWFkIG9mIDIxcHguCgoqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250
ZW50Vmlldy5jc3M6CiguY29udGVudC12aWV3LnRpbWVsaW5lLXJlY29yZGluZyA+IC5jb250ZW50
LWJyb3dzZXIgPiAuY29udGVudC12aWV3LWNvbnRhaW5lciA+IC50aW1lbGluZS12aWV3ID4gLmRh
dGEtZ3JpZCB0ZCk6IERlbGV0ZWQuCiguY29udGVudC12aWV3LnRpbWVsaW5lLXJlY29yZGluZyA+
IC5jb250ZW50LWJyb3dzZXIgPiAuY29udGVudC12aWV3LWNvbnRhaW5lciA+IC50aW1lbGluZS12
aWV3ID4gLmRhdGEtZ3JpZCB0YWJsZS5kYXRhKTogRGVsZXRlZC4KTm93IGhhbmRsZWQgYnkgRGF0
YUdyaWQuY3NzIGRpcmVjdGx5LgoKKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1ZhcmlhYmxlcy5jc3M6
Cig6cm9vdCk6IEFkZGVkIHplYnJhIHN0cmlwZSBjb2xvcnMuCi0tLQogU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAxMTIgKysrKysrKysrKysrCiAu
Li4vVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qcyAgICAgICAgICAgICB8ICAgMiAr
CiAuLi4vVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZVZpZXcuanMgICAgICB8ICAg
NiArLQogLi4uL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZURhdGFHcmlkLmpzICAgICAgICAg
fCAgIDQgKy0KIC4uLi9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkLmNzcyAgICAgICAgICAg
ICAgIHwgIDQwICsrKystCiAuLi4vV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9E
YXRhR3JpZC5qcyB8IDIwMCArKysrKysrKysrKysrKysrLS0tLS0KIC4uLi9WaWV3cy9EYXRhYmFz
ZVVzZXJRdWVyeVN1Y2Nlc3NWaWV3LmpzICAgICAgICAgIHwgICA1ICstCiAuLi4vVXNlckludGVy
ZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5jc3MgICAgICAgICB8ICAxNCArLQogLi4uL1ZpZXdz
L0RldGFpbHNTZWN0aW9uRGF0YUdyaWRSb3cuanMgICAgICAgICAgICAgfCAgIDUgKy0KIC4uLi9W
aWV3cy9IZWFwU25hcHNob3RJbnN0YW5jZXNDb250ZW50Vmlldy5jc3MgICAgIHwgICA1ICstCiAu
Li4vSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVDb250ZW50Vmlldy5jc3MgICAgICB8ICAxNyAt
LQogLi4uL1ZpZXdzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcuanMgfCAg
IDEgKwogLi4uL1ZpZXdzL0xheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwuanMgICAgICAgICAg
fCAgIDIgKy0KIC4uLi9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzcyAgICAg
ICAgIHwgICA5IC0KIC4uLi9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtHcmlkQ29udGVudFZp
ZXcuY3NzIHwgIDEwIC0tCiAuLi4vVXNlckludGVyZmFjZS9WaWV3cy9Qcm9iZVNldERhdGFHcmlk
LmpzICAgICAgICB8ICAgMiArLQogLi4uL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvZmlsZVZpZXcu
Y3NzICAgICAgICAgICAgfCAgIDIgLQogLi4uL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVu
dFZpZXcuY3NzICAgICAgICAgfCAgMTAgLS0KIC4uLi9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zhcmlh
Ymxlcy5jc3MgICAgICAgICAgICAgIHwgICAzICsKIDE5IGZpbGVzIGNoYW5nZWQsIDMyNiBpbnNl
cnRpb25zKCspLCAxMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXgg
ZWNhMjg3OC4uZDhjZGFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTE3
IEBACiAyMDE2LTA0LTE4ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBEYXRhR3JpZCBzaG91bGQgYmUgdmlydHVhbGl6ZWQgc28g
aXQgb25seSByZW5kZXJzIHZpc2libGUgcm93cworCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY2NjMKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjU3
NjUyNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5zZXQg
Y29udGFpbmVyUmVnaW9ucyk6CisgICAgICAgIENhbGwgdXBsYXRlTGF5b3V0SWZOZWVkZWQgc2lu
Y2Ugd2UgZG9uJ3QgdXNlIHZpZXdzIGhlcmUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbnNvbGVNZXNzYWdlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xl
TWVzc2FnZVZpZXcucHJvdG90eXBlLl9mb3JtYXRQYXJhbWV0ZXJBc1RhYmxlKToKKyAgICAgICAg
U2V0IGlubGluZSBhbmQgdmFyaWFibGVIZWlnaHRSb3dzIHRvIHRydWUsIHJlbW92ZSBkaXJlY3Qg
Y2xhc3NMaXN0IGFkZC4gQ2FsbCB1cGRhdGVMYXlvdXRJZk5lZWRlZCBzaW5jZSB3ZSBkb24ndCB1
c2Ugdmlld3MgaGVyZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZURh
dGFHcmlkLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVEYXRhR3JpZCk6CisgICAg
ICAgIFNldCBpbmxpbmUgdG8gdHJ1ZSwgcmVtb3ZlIGRpcmVjdCBjbGFzc0xpc3QgYWRkLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5jc3M6CisgICAgICAgICguZGF0
YS1ncmlkIHRkKToKKyAgICAgICAgKC5kYXRhLWdyaWQgdGFibGUuZGF0YSk6CisgICAgICAgICgu
ZGF0YS1ncmlkOm5vdCgudmFyaWFibGUtaGVpZ2h0LXJvd3MpIHRhYmxlLmRhdGEpOgorICAgICAg
ICAoLmRhdGEtZ3JpZDpub3QoLnZhcmlhYmxlLWhlaWdodC1yb3dzKSB0YWJsZS5kYXRhLm9kZC1m
aXJzdC16ZWJyYS1zdHJpcGUpOgorICAgICAgICAoLmRhdGEtZ3JpZC52YXJpYWJsZS1oZWlnaHQt
cm93cyB0YWJsZS5kYXRhIHRyOm50aC1jaGlsZChvZGQpKToKKyAgICAgICAgKC5kYXRhLWdyaWQu
dmFyaWFibGUtaGVpZ2h0LXJvd3MgdGFibGUuZGF0YSB0cjpudGgtY2hpbGQoZXZlbikpOgorICAg
ICAgICAoLmRhdGEtZ3JpZC52YXJpYWJsZS1oZWlnaHQtcm93cy5vZGQtZmlyc3QtemVicmEtc3Ry
aXBlIHRhYmxlLmRhdGEgdHI6bnRoLWNoaWxkKG9kZCkpOgorICAgICAgICAoLmRhdGEtZ3JpZC52
YXJpYWJsZS1oZWlnaHQtcm93cy5vZGQtZmlyc3QtemVicmEtc3RyaXBlIHRhYmxlLmRhdGEgdHI6
bnRoLWNoaWxkKGV2ZW4pKToKKyAgICAgICAgKC5kYXRhLWdyaWQudmFyaWFibGUtaGVpZ2h0LXJv
d3MgdGFibGUuZGF0YSB0ci5maWxsZXIpOgorICAgICAgICBVcGRhdGVkIHN0eWxlcyB0byBzdXBw
b3J0IHZhcmlhYmxlIGhlaWdodCByb3dzIGRpcmVjdGx5IGFuZCBmbGlwcGluZyB0aGUgb3JkZXIg
b2YgdGhlIHN0cmlwZXMKKyAgICAgICAgd2hlbiB0aGUgdmlydHVyYWwgdGFibGUgc3RhcnRzIGF0
IGFuIG9kZCByb3cuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkKTogQWRkZWQgcm93SGVpZ2h0IGFuZCBy
b3dzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZS5nZXQgaW5saW5l
KTogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLnNldCBp
bmxpbmUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUu
Z2V0IHZhcmlhYmxlSGVpZ2h0Um93cyk6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRh
dGFHcmlkLnByb3RvdHlwZS5zZXQgdmFyaWFibGVIZWlnaHRSb3dzKTogQWRkZWQuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLmxheW91dCk6IENhbGwgX3VwZGF0ZVZp
c2libGVSb3dzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZS5fbm90
ZVJvd3NDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJv
dG90eXBlLl91cGRhdGVWaXNpYmxlUm93cyk6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRhdGFHcmlkLnByb3RvdHlwZS5fc29ydE5vZGVzQ2FsbGJhY2spOiBVcGRhdGUgdG8gbm90IHVz
ZSB0aGUgRE9NLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZS5wcm90b3R5cGUu
c2V0IGhhc0NoaWxkcmVuKTogQ2FsbCBuZWVkc0xheW91dC4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EYXRhR3JpZE5vZGUucHJvdG90eXBlLmNvbGxhcHNlKTogQ2FsbCBuZWVkc0xheW91dC4KKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUucHJvdG90eXBlLmV4cGFuZCk6IENhbGwg
bmVlZHNMYXlvdXQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3RvdHlw
ZS5fYXR0YWNoKTogQ2FsbCBfbm90ZVJvd3NDaGFuZ2VkLgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRhdGFHcmlkTm9kZS5wcm90b3R5cGUuX2RldGFjaCk6IENhbGwgX25vdGVSb3dzQ2hhbmdlZC4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGF0YWJhc2VVc2VyUXVlcnlTdWNjZXNz
Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZVVzZXJRdWVyeVN1Y2Nlc3NW
aWV3KToKKyAgICAgICAgU2V0IGlubGluZSB0byB0cnVlLCByZW1vdmUgZGlyZWN0IGNsYXNzTGlz
dCBhZGQuIENhbGwgdXBsYXRlTGF5b3V0SWZOZWVkZWQgc2luY2Ugd2UgZG9uJ3QgdXNlIHZpZXdz
IGhlcmUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmNz
czoKKyAgICAgICAgKC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAuZGF0YS1ncmlkIHRkLnZh
bHVlLWNvbHVtbik6CisgICAgICAgICguZGV0YWlscy1zZWN0aW9uID4gLmNvbnRlbnQgLmRhdGEt
Z3JpZCB0YWJsZS5kYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKC5kZXRhaWxzLXNlY3Rpb24gPiAu
Y29udGVudCAuZGF0YS1ncmlkIHRyOm50aC1jaGlsZChldmVuKSk6IERlbGV0ZWQuCisgICAgICAg
ICguZGV0YWlscy1zZWN0aW9uID4gLmNvbnRlbnQgLmRhdGEtZ3JpZCB0cjpudGgtY2hpbGQob2Rk
KSk6IERlbGV0ZWQuCisgICAgICAgIE5vdyBoYW5kbGVkIGJ5IERhdGFHcmlkLmNzcyBkaXJlY3Rs
eS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25EYXRhR3Jp
ZFJvdy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvbkRhdGFHcmlkUm93
LnByb3RvdHlwZS5zZXQgZGF0YUdyaWQpOgorICAgICAgICBTZXQgaW5saW5lIGFuZCB2YXJpYWJs
ZUhlaWdodFJvd3MgdG8gdHJ1ZSwgcmVtb3ZlIGRpcmVjdCBjbGFzc0xpc3QgYWRkLiBDYWxsIHVw
bGF0ZUxheW91dElmTmVlZGVkIHNpbmNlIHdlIGRvbid0IHVzZSB2aWV3cyBoZXJlLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25hcHNob3RJbnN0YW5jZXNDb250ZW50Vmll
dy5jc3M6CisgICAgICAgICguaGVhcC1zbmFwc2hvdCA+IC5kYXRhLWdyaWQgdHI6bWF0Y2hlcygu
c2VsZWN0ZWQsIDpob3ZlcikgdGQgLmdvLXRvLWFycm93KToKKyAgICAgICAgKC5oZWFwLXNuYXBz
aG90IC5pY29uKToKKyAgICAgICAgUmVtb3ZlIG1hcmdpbi10b3AgdG8gZml0IGluc2lkZSAyMHB4
IHJvdyBpbnN0ZWFkIG9mIDIxcHguCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0lu
ZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5pbmRleGVkLWRhdGFiYXNlLW9iamVjdC1zdG9yZSA+IC5kYXRhLWdyaWQgdGFibGUu
ZGF0YSk6IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmluZGV4ZWQtZGF0YWJhc2Ut
b2JqZWN0LXN0b3JlID4gLmRhdGEtZ3JpZCB0YWJsZS5kYXRhIHRyOm50aC1jaGlsZChldmVuKSk6
IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmluZGV4ZWQtZGF0YWJhc2Utb2JqZWN0
LXN0b3JlID4gLmRhdGEtZ3JpZCB0YWJsZS5kYXRhIHRyOm50aC1jaGlsZChvZGQpKTogRGVsZXRl
ZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuaW5kZXhlZC1kYXRhYmFzZS1vYmplY3Qtc3RvcmUg
PiAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgdHIuZmlsbGVyKTogRGVsZXRlZC4KKyAgICAgICAgTm93
IGhhbmRsZWQgYnkgRGF0YUdyaWQuY3NzIGRpcmVjdGx5LgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkluZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcp
OgorICAgICAgICBTZXQgdmFyaWFibGVIZWlnaHRSb3dzIHRvIHRydWUuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUu
X2J1aWxkRGF0YUdyaWRTZWN0aW9uKToKKyAgICAgICAgU2V0IGlubGluZSB0byB0cnVlLCByZW1v
dmUgZGlyZWN0IGNsYXNzTGlzdCBhZGQuIENhbGwgdXBsYXRlTGF5b3V0SWZOZWVkZWQgc2luY2Ug
d2UgZG9uJ3QgdXNlIHZpZXdzIGhlcmUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0xvZ0NvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb25zb2xlLWl0ZW0gLmRhdGEtZ3JpZCB0
YWJsZS5kYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xlLWl0ZW0gLmRhdGEtZ3JpZCB0
YWJsZS5kYXRhIHRyOm50aC1jaGlsZChldmVuKSk6IERlbGV0ZWQuCisgICAgICAgIE5vdyBoYW5k
bGVkIGJ5IERhdGFHcmlkLmNzcyBkaXJlY3RseS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvTmV0d29ya0dyaWRDb250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3
Lm5ldHdvcmstZ3JpZCA+IC5kYXRhLWdyaWQgdGQpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5uZXR3b3JrLWdyaWQgPiAuZGF0YS1ncmlkIHRhYmxlLmRhdGEpOiBEZWxldGVkLgor
ICAgICAgICBOb3cgaGFuZGxlZCBieSBEYXRhR3JpZC5jc3MgZGlyZWN0bHkuCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2JlU2V0RGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUHJvYmVTZXREYXRhR3JpZCk6CisgICAgICAgIFNldCBpbmxpbmUgdG8gdHJ1ZSwg
cmVtb3ZlIGRpcmVjdCBjbGFzc0xpc3QgYWRkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9Qcm9maWxlVmlldy5jc3M6CisgICAgICAgICgucHJvZmlsZSA+IC5kYXRhLWdyaWQgdGQg
Lmljb24pOgorICAgICAgICAoLnByb2ZpbGUgPiAuZGF0YS1ncmlkIHRyOm1hdGNoZXMoLnNlbGVj
dGVkLCA6aG92ZXIpIC5nby10by1hcnJvdyk6CisgICAgICAgIFJlbW92ZSBtYXJnaW4tdG9wIHRv
IGZpdCBpbnNpZGUgMjBweCByb3cgaW5zdGVhZCBvZiAyMXB4LgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmNzczoKKyAgICAgICAg
KC5jb250ZW50LXZpZXcudGltZWxpbmUtcmVjb3JkaW5nID4gLmNvbnRlbnQtYnJvd3NlciA+IC5j
b250ZW50LXZpZXctY29udGFpbmVyID4gLnRpbWVsaW5lLXZpZXcgPiAuZGF0YS1ncmlkIHRkKTog
RGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcudGltZWxpbmUtcmVjb3JkaW5nID4gLmNv
bnRlbnQtYnJvd3NlciA+IC5jb250ZW50LXZpZXctY29udGFpbmVyID4gLnRpbWVsaW5lLXZpZXcg
PiAuZGF0YS1ncmlkIHRhYmxlLmRhdGEpOiBEZWxldGVkLgorICAgICAgICBOb3cgaGFuZGxlZCBi
eSBEYXRhR3JpZC5jc3MgZGlyZWN0bHkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1ZhcmlhYmxlcy5jc3M6CisgICAgICAgICg6cm9vdCk6IEFkZGVkIHplYnJhIHN0cmlwZSBjb2xv
cnMuCisKKzIwMTYtMDQtMTggIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgor
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgZG9lcyBhIGxv
dCBvZiBzdHlsZSByZWNhbGMgYW5kIGxheW91dCBvbiBidXN5IHNpdGVzCiAKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjcwNApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURl
dGFpbHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwuanMKaW5kZXggMTJjYTNkNi4uZDg1NGY3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0
ZWRTdHlsZURldGFpbHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmpzCkBAIC0xNDcsNiArMTQ3
LDggQEAgV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBDb21w
dXRlZFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMKICAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5l
clJlZ2lvbnNEYXRhR3JpZC5hcHBlbmRDaGlsZChuZXcgV2ViSW5zcGVjdG9yLkRPTVRyZWVEYXRh
R3JpZE5vZGUocmVnaW9uTm9kZSkpOwogCiAgICAgICAgIHRoaXMuX2NvbnRhaW5lclJlZ2lvbnNG
bG93U2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOworCisgICAgICAg
IHRoaXMuX2NvbnRhaW5lclJlZ2lvbnNEYXRhR3JpZC51cGRhdGVMYXlvdXRJZk5lZWRlZCgpOwog
ICAgIH0KIAogICAgIGNzc1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yU2hvd1Byb3BlcnR5KHBy
b3BlcnR5LCBzaG93U291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3LmpzCmluZGV4IDU2
YWI3MTYuLmYwYjY2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNzYWdlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZVZpZXcuanMKQEAgLTgwNCw5
ICs4MDQsMTMgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlVmlldyA9IGNsYXNzIENvbnNv
bGVNZXNzYWdlVmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci4KICAgICAgICAgLy8gRklYTUU6IFNo
b3VsZCB3ZSBvdXRwdXQgc29tZXRoaW5nIGV4dHJhIGlmIHRoZSBwcmV2aWV3IGlzIGxvc3NsZXNz
PwogCiAgICAgICAgIHZhciBkYXRhR3JpZCA9IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5jcmVhdGVT
b3J0YWJsZURhdGFHcmlkKGNvbHVtbk5hbWVzLCBmbGF0VmFsdWVzKTsKLSAgICAgICAgZGF0YUdy
aWQuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpbmxpbmUiKTsKKyAgICAgICAgZGF0YUdyaWQuaW5s
aW5lID0gdHJ1ZTsKKyAgICAgICAgZGF0YUdyaWQudmFyaWFibGVIZWlnaHRSb3dzID0gdHJ1ZTsK
KwogICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGRhdGFHcmlkLmVsZW1lbnQpOwogCisgICAg
ICAgIGRhdGFHcmlkLnVwZGF0ZUxheW91dElmTmVlZGVkKCk7CisKICAgICAgICAgcmV0dXJuIGVs
ZW1lbnQ7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9ET01UcmVlRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRGF0YUdyaWQuanMKaW5kZXggYjZkZWJmZC4uMDQy
NzU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvRE9NVHJlZURhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVRyZWVEYXRhR3JpZC5qcwpAQCAtMzQsNyArMzQsOSBAQCBXZWJJbnNw
ZWN0b3IuRE9NVHJlZURhdGFHcmlkID0gY2xhc3MgRE9NVHJlZURhdGFHcmlkIGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLkRhdGFHcgogCiAgICAgICAgIHRoaXMuX3ByZXZpb3VzSG92ZXJlZEVsZW1lbnQg
PSBudWxsOwogCi0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpbmxpbmUiLCAi
ZG9tLXRyZWUtZGF0YS1ncmlkIik7CisgICAgICAgIHRoaXMuaW5saW5lID0gdHJ1ZTsKKworICAg
ICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZG9tLXRyZWUtZGF0YS1ncmlkIik7CiAK
ICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMu
X29ubW91c2Vtb3ZlLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICAgICAgdGhpcy5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgdGhpcy5fb25tb3VzZW91dC5iaW5kKHRoaXMpLCBm
YWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9EYXRhR3JpZC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9EYXRhR3JpZC5jc3MKaW5kZXggMjExOGE0Ny4uMmYzMjBkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuY3NzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkLmNzcwpA
QCAtMTA5LDE4ICsxMDksMjMgQEAKIH0KIAogLmRhdGEtZ3JpZCB0YWJsZS5kYXRhIHsKLSAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgIGxlZnQ6IDA7
Ci0gICAgdG9wOiAwOwogICAgIHJpZ2h0OiAwOwotICAgIGJvdHRvbTogMDsKICAgICBoZWlnaHQ6
IDEwMCU7CiAgICAgYm9yZGVyLXRvcDogMCBub25lIHRyYW5zcGFyZW50OwotICAgIGJhY2tncm91
bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHdoaXRlLCB3aGl0ZSA1MCUsIGhz
bCgyMTQsIDQxJSwgOTYlKSA1MCUsIGhzbCgyMTQsIDQxJSwgOTYlKSk7Ci0gICAgYmFja2dyb3Vu
ZC1zaXplOiAxMDAlIDQycHg7CiAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDsKIH0KIAorLmRhdGEt
Z3JpZDpub3QoLnZhcmlhYmxlLWhlaWdodC1yb3dzKSB0YWJsZS5kYXRhIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB2YXIoLS1ldmVuLXplYnJhLXN0
cmlwZS1yb3ctYmFja2dyb3VuZC1jb2xvciksIHZhcigtLWV2ZW4temVicmEtc3RyaXBlLXJvdy1i
YWNrZ3JvdW5kLWNvbG9yKSA1MCUsIHZhcigtLW9kZC16ZWJyYS1zdHJpcGUtcm93LWJhY2tncm91
bmQtY29sb3IpIDUwJSwgdmFyKC0tb2RkLXplYnJhLXN0cmlwZS1yb3ctYmFja2dyb3VuZC1jb2xv
cikpOworICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSA0MHB4OworfQorCisuZGF0YS1ncmlkOm5v
dCgudmFyaWFibGUtaGVpZ2h0LXJvd3MpIHRhYmxlLmRhdGEub2RkLWZpcnN0LXplYnJhLXN0cmlw
ZSB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdmFy
KC0tb2RkLXplYnJhLXN0cmlwZS1yb3ctYmFja2dyb3VuZC1jb2xvciksIHZhcigtLW9kZC16ZWJy
YS1zdHJpcGUtcm93LWJhY2tncm91bmQtY29sb3IpIDUwJSwgdmFyKC0tZXZlbi16ZWJyYS1zdHJp
cGUtcm93LWJhY2tncm91bmQtY29sb3IpIDUwJSwgdmFyKC0tZXZlbi16ZWJyYS1zdHJpcGUtcm93
LWJhY2tncm91bmQtY29sb3IpKTsKK30KKwogLmRhdGEtZ3JpZC5pbmxpbmUgdGFibGUuZGF0YSB7
CiAgICAgcG9zaXRpb246IHN0YXRpYzsKIH0KQEAgLTEzMywxMCArMTM4LDMxIEBACiAgICAgZGlz
cGxheTogdGFibGUtcm93OwogfQogCisuZGF0YS1ncmlkLnZhcmlhYmxlLWhlaWdodC1yb3dzIHRh
YmxlLmRhdGEgdHI6bnRoLWNoaWxkKG9kZCkgeworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigt
LW9kZC16ZWJyYS1zdHJpcGUtcm93LWJhY2tncm91bmQtY29sb3IpOworfQorCisuZGF0YS1ncmlk
LnZhcmlhYmxlLWhlaWdodC1yb3dzIHRhYmxlLmRhdGEgdHI6bnRoLWNoaWxkKGV2ZW4pIHsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ldmVuLXplYnJhLXN0cmlwZS1yb3ctYmFja2dyb3Vu
ZC1jb2xvcik7Cit9CisKKy5kYXRhLWdyaWQudmFyaWFibGUtaGVpZ2h0LXJvd3Mub2RkLWZpcnN0
LXplYnJhLXN0cmlwZSB0YWJsZS5kYXRhIHRyOm50aC1jaGlsZChvZGQpIHsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB2YXIoLS1ldmVuLXplYnJhLXN0cmlwZS1yb3ctYmFja2dyb3VuZC1jb2xvcik7
Cit9CisKKy5kYXRhLWdyaWQudmFyaWFibGUtaGVpZ2h0LXJvd3Mub2RkLWZpcnN0LXplYnJhLXN0
cmlwZSB0YWJsZS5kYXRhIHRyOm50aC1jaGlsZChldmVuKSB7CisgICAgYmFja2dyb3VuZC1jb2xv
cjogdmFyKC0tb2RkLXplYnJhLXN0cmlwZS1yb3ctYmFja2dyb3VuZC1jb2xvcik7Cit9CisKKy5k
YXRhLWdyaWQudmFyaWFibGUtaGVpZ2h0LXJvd3MgdGFibGUuZGF0YSB0ci5maWxsZXIgeworIC8q
IEZJWE1FOiBUaGlzIHNob3VsZCBzaG93IGFuIGFsdGVybmF0aW5nIHN0cmlwZSwgYnV0IGl0IG5l
ZWRzIHRvIGtub3cgaWYgdGhlIGxhc3Qgcm93IGlzIGV2ZW4gb3Igb2RkLiAqLworICAgIGJhY2tn
cm91bmQtY29sb3I6IHZhcigtLWV2ZW4temVicmEtc3RyaXBlLXJvdy1iYWNrZ3JvdW5kLWNvbG9y
KTsKK30KKwogLmRhdGEtZ3JpZCB0ZCB7CiAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKLSAgICBo
ZWlnaHQ6IDEycHg7Ci0gICAgbGluZS1oZWlnaHQ6IDE3cHg7CisgICAgaGVpZ2h0OiAxNnB4Owor
ICAgIGxpbmUtaGVpZ2h0OiAxNnB4OwogICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgd2hpdGUt
c3BhY2U6IG5vd3JhcDsKICAgICBvdmVyZmxvdzogaGlkZGVuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwppbmRleCBlYTVk
NTNiLi44YzdhZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9EYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwpAQCAtMzcsNiArMzcsOCBAQCBXZWJJbnNwZWN0b3Iu
RGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAg
ICAgIHRoaXMuX3NvcnRPcmRlciA9IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5Tb3J0T3JkZXIuSW5k
ZXRlcm1pbmF0ZTsKICAgICAgICAgdGhpcy5fc29ydE9yZGVyU2V0dGluZyA9IG51bGw7CiAKKyAg
ICAgICAgdGhpcy5fcm93cyA9IFtdOworCiAgICAgICAgIHRoaXMuY2hpbGRyZW4gPSBbXTsKICAg
ICAgICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBudWxsOwogICAgICAgICB0aGlzLmV4cGFuZE5vZGVz
V2hlbkFycm93aW5nID0gZmFsc2U7CkBAIC00Nyw2ICs0OSw3IEBAIFdlYkluc3BlY3Rvci5EYXRh
R3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAg
dGhpcy5zZWxlY3RlZCA9IGZhbHNlOwogICAgICAgICB0aGlzLmRhdGFHcmlkID0gdGhpczsKICAg
ICAgICAgdGhpcy5pbmRlbnRXaWR0aCA9IDE1OworICAgICAgICB0aGlzLnJvd0hlaWdodCA9IDIw
OwogICAgICAgICB0aGlzLnJlc2l6ZXJzID0gW107CiAgICAgICAgIHRoaXMuX2NvbHVtbldpZHRo
c0luaXRpYWxpemVkID0gZmFsc2U7CiAKQEAgLTY2LDggKzY5LDE0IEBAIFdlYkluc3BlY3Rvci5E
YXRhR3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAg
ICAgdGhpcy5fc2Nyb2xsQ29udGFpbmVyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogICAgICAgICB0aGlzLl9zY3JvbGxDb250YWluZXJFbGVtZW50LmNsYXNzTmFtZSA9
ICJkYXRhLWNvbnRhaW5lciI7CiAKLSAgICAgICAgdGhpcy5fZGF0YVRhYmxlRWxlbWVudCA9IHRo
aXMuX3Njcm9sbENvbnRhaW5lckVsZW1lbnQuY3JlYXRlQ2hpbGQoInRhYmxlIik7Ci0gICAgICAg
IHRoaXMuX2RhdGFUYWJsZUVsZW1lbnQuY2xhc3NOYW1lID0gImRhdGEiOworICAgICAgICB0aGlz
Ll9zY3JvbGxMaXN0ZW5lciA9ICgpID0+IHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICAgICAgdGhp
cy5fc2Nyb2xsQ29udGFpbmVyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB0aGlz
Ll9zY3JvbGxMaXN0ZW5lcik7CisKKyAgICAgICAgdGhpcy5fdG9wRGF0YVRhYmxlTWFyZ2luRWxl
bWVudCA9IHRoaXMuX3Njcm9sbENvbnRhaW5lckVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIpOwor
CisgICAgICAgIHRoaXMuX2RhdGFUYWJsZUVsZW1lbnQgPSB0aGlzLl9zY3JvbGxDb250YWluZXJF
bGVtZW50LmNyZWF0ZUNoaWxkKCJ0YWJsZSIsICJkYXRhIik7CisKKyAgICAgICAgdGhpcy5fYm90
dG9tRGF0YVRhYmxlTWFyZ2luRWxlbWVudCA9IHRoaXMuX3Njcm9sbENvbnRhaW5lckVsZW1lbnQu
Y3JlYXRlQ2hpbGQoImRpdiIpOwogCiAgICAgICAgIHRoaXMuX2RhdGFUYWJsZUVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fbW91c2VEb3duSW5EYXRhVGFibGUuYmlu
ZCh0aGlzKSk7CiAgICAgICAgIHRoaXMuX2RhdGFUYWJsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCB0aGlzLl9jbGlja0luRGF0YVRhYmxlLmJpbmQodGhpcykpOwpAQCAtNzksNiAr
ODgsNyBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdl
Ykluc3BlY3Rvci5WaWV3CiAgICAgICAgICAgICB0aGlzLl9kYXRhVGFibGVFbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgdGhpcy5fb25kYmxjbGljay5iaW5kKHRoaXMpLCBmYWxz
ZSk7CiAgICAgICAgICAgICB0aGlzLl9lZGl0Q2FsbGJhY2sgPSBlZGl0Q2FsbGJhY2s7CiAgICAg
ICAgIH0KKwogICAgICAgICBpZiAoZGVsZXRlQ2FsbGJhY2spCiAgICAgICAgICAgICB0aGlzLl9k
ZWxldGVDYWxsYmFjayA9IGRlbGV0ZUNhbGxiYWNrOwogCkBAIC04Nyw4ICs5Nyw4IEBAIFdlYklu
c3BlY3Rvci5EYXRhR3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZp
ZXcKIAogICAgICAgICAvLyBUaGlzIGVsZW1lbnQgaXMgdXNlZCBieSBEYXRhR3JpZE5vZGVzIHRv
IG1hbmlwdWxhdGUgdGFibGUgcm93cyBhbmQgY2VsbHMuCiAgICAgICAgIHRoaXMuZGF0YVRhYmxl
Qm9keUVsZW1lbnQgPSB0aGlzLl9kYXRhVGFibGVFbGVtZW50LmNyZWF0ZUNoaWxkKCJ0Ym9keSIp
OwotICAgICAgICB0aGlzLl9maWxsZXJSb3dFbGVtZW50ID0gdGhpcy5kYXRhVGFibGVCb2R5RWxl
bWVudC5jcmVhdGVDaGlsZCgidHIiKTsKLSAgICAgICAgdGhpcy5fZmlsbGVyUm93RWxlbWVudC5j
bGFzc05hbWUgPSAiZmlsbGVyIjsKKworICAgICAgICB0aGlzLl9maWxsZXJSb3dFbGVtZW50ID0g
dGhpcy5kYXRhVGFibGVCb2R5RWxlbWVudC5jcmVhdGVDaGlsZCgidHIiLCAiZmlsbGVyIik7CiAK
ICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2hlYWRlclRhYmxlRWxlbWVu
dCk7CiAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zY3JvbGxDb250YWlu
ZXJFbGVtZW50KTsKQEAgLTIzNyw2ICsyNDcsMzQgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkID0g
Y2xhc3MgRGF0YUdyaWQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICAgICAgdGhp
cy5zb3J0Q29sdW1uSWRlbnRpZmllciA9IHRoaXMuX3NvcnRDb2x1bW5JZGVudGlmaWVyU2V0dGlu
Zy52YWx1ZTsKICAgICB9CiAKKyAgICBnZXQgaW5saW5lKCkgeyByZXR1cm4gdGhpcy5faW5saW5l
OyB9CisKKyAgICBzZXQgaW5saW5lKHgpCisgICAgeworICAgICAgICB0aGlzLl9pbmxpbmUgPSB4
IHx8IGZhbHNlOworCisgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5s
aW5lIiwgdGhpcy5faW5saW5lKTsKKworICAgICAgICBpZiAodGhpcy5faW5saW5lIHx8IHRoaXMu
X3ZhcmlhYmxlSGVpZ2h0Um93cykKKyAgICAgICAgICAgIHRoaXMuX3Njcm9sbENvbnRhaW5lckVs
ZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdGhpcy5fc2Nyb2xsTGlzdGVuZXIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9zY3JvbGxDb250YWluZXJFbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRoaXMuX3Njcm9sbExpc3RlbmVyKTsKKyAgICB9
CisKKyAgICBnZXQgdmFyaWFibGVIZWlnaHRSb3dzKCkgeyByZXR1cm4gdGhpcy5fdmFyaWFibGVI
ZWlnaHRSb3dzOyB9CisKKyAgICBzZXQgdmFyaWFibGVIZWlnaHRSb3dzKHgpCisgICAgeworICAg
ICAgICB0aGlzLl92YXJpYWJsZUhlaWdodFJvd3MgPSB4IHx8IGZhbHNlOworCisgICAgICAgIHRo
aXMuX2VsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgidmFyaWFibGUtaGVpZ2h0LXJvd3MiLCB0aGlz
Ll92YXJpYWJsZUhlaWdodFJvd3MpOworCisgICAgICAgIGlmICh0aGlzLl9pbmxpbmUgfHwgdGhp
cy5fdmFyaWFibGVIZWlnaHRSb3dzKQorICAgICAgICAgICAgdGhpcy5fc2Nyb2xsQ29udGFpbmVy
RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB0aGlzLl9zY3JvbGxMaXN0ZW5l
cik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3Njcm9sbENvbnRhaW5lckVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdGhpcy5fc2Nyb2xsTGlzdGVuZXIpOworICAg
IH0KKwogICAgIF91cGRhdGVTb3J0ZWRDb2x1bW4ob2xkU29ydENvbHVtbklkZW50aWZpZXIpCiAg
ICAgewogICAgICAgICBpZiAodGhpcy5fc29ydENvbHVtbklkZW50aWZpZXJTZXR0aW5nKQpAQCAt
NTA2LDExICs1NDQsOSBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBl
eHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIGlmIChjb2x1bW5bImNvbGxhcHNlc0dy
b3VwIl0pIHsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbHVtblsiZ3JvdXAiXSAhPT0g
Y29sdW1uWyJjb2xsYXBzZXNHcm91cCJdKTsKIAotICAgICAgICAgICAgdmFyIGRpdmlkZXJFbGVt
ZW50ID0gaGVhZGVyQ2VsbEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIpOwotICAgICAgICAgICAg
ZGl2aWRlckVsZW1lbnQuY2xhc3NOYW1lID0gImRpdmlkZXIiOworICAgICAgICAgICAgdmFyIGRp
dmlkZXJFbGVtZW50ID0gaGVhZGVyQ2VsbEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJkaXZp
ZGVyIik7CiAKLSAgICAgICAgICAgIHZhciBjb2xsYXBzZURpdiA9IGhlYWRlckNlbGxFbGVtZW50
LmNyZWF0ZUNoaWxkKCJkaXYiKTsKLSAgICAgICAgICAgIGNvbGxhcHNlRGl2LmNsYXNzTmFtZSA9
ICJjb2xsYXBzZXItYnV0dG9uIjsKKyAgICAgICAgICAgIHZhciBjb2xsYXBzZURpdiA9IGhlYWRl
ckNlbGxFbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiY29sbGFwc2VyLWJ1dHRvbiIpOwogICAg
ICAgICAgICAgY29sbGFwc2VEaXYudGl0bGUgPSB0aGlzLl9jb2xsYXBzZXJCdXR0b25Db2xsYXBz
ZUNvbHVtbnNUb29sVGlwKCk7CiAgICAgICAgICAgICBsaXN0ZW5lcnMucmVnaXN0ZXIoY29sbGFw
c2VEaXYsICJtb3VzZW92ZXIiLCB0aGlzLl9tb3VzZW92ZXJDb2x1bW5Db2xsYXBzZXIpOwogICAg
ICAgICAgICAgbGlzdGVuZXJzLnJlZ2lzdGVyKGNvbGxhcHNlRGl2LCAibW91c2VvdXQiLCB0aGlz
Ll9tb3VzZW91dENvbHVtbkNvbGxhcHNlcik7CkBAIC02MzgsNiArNjc0LDggQEAgV2ViSW5zcGVj
dG9yLkRhdGFHcmlkID0gY2xhc3MgRGF0YUdyaWQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwog
ICAgICAgICAgICAgdGhpcy5fcG9zaXRpb25SZXNpemVyRWxlbWVudHMoKTsKICAgICAgICAgICAg
IHRoaXMuX3Bvc2l0aW9uSGVhZGVyVmlld3MoKTsKICAgICAgICAgfQorCisgICAgICAgIHRoaXMu
X3VwZGF0ZVZpc2libGVSb3dzKCk7CiAgICAgfQogCiAgICAgY29sdW1uV2lkdGhzTWFwKCkKQEAg
LTc5MSw2ICs4MjksODEgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkID0gY2xhc3MgRGF0YUdyaWQg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICB9CiAgICAgfQogCisgICAgX25vdGVS
b3dzQ2hhbmdlZCgpCisgICAgeworICAgICAgICB0aGlzLl9wcmV2aW91c1JldmVhbGVkUm93Q291
bnQgPSBOYU47CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIF91
cGRhdGVWaXNpYmxlUm93cygpCisgICAgeworICAgICAgICBpZiAodGhpcy5faW5saW5lIHx8IHRo
aXMuX3ZhcmlhYmxlSGVpZ2h0Um93cykgeworICAgICAgICAgICAgLy8gSW5saW5lIERhdGFHcmlk
cyBhbHdheXMgc2hvdyBhbGwgdGhlaXIgcm93cywgc28gd2UgY2FuJ3QgdmlydHVhbGl6ZSB0aGVt
LgorICAgICAgICAgICAgLy8gSW4gZ2VuZXJhbCwgaW5saW5lIERhdGFHcmlkcyB1c3VhbGx5IGhh
dmUgYSBzbWFsbCBudW1iZXIgb2Ygcm93cy4KKworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
aXMgYSBzbG93IHBhdGggZm9yIHZhcmlhYmxlIGhlaWdodCByb3dzIHRoYXQgaXMgc2ltaWxhciB0
byB0aGUgb2xkCisgICAgICAgICAgICAvLyBub24tdmlydHVhbGl6ZWQgRGF0YUdyaWQuIElkZWFs
bHkgd2Ugd291bGQgdHJhY2sgcm93IGhlaWdodCBwZXItRGF0YUdyaWROb2RlCisgICAgICAgICAg
ICAvLyBhbmQgdGhlbiB3ZSBjb3VsZCB2aXJ0dWFsaXplIGV2ZW4gdGhvc2UgY2FzZXMuIEN1cnJl
bnRseSB2YXJpYWJsZSBoZWlnaHQgcm93CisgICAgICAgICAgICAvLyBEYXRhR3JpZHMgZG9uJ3Qg
dXN1YWxseSBoYXZlIG1hbnkgcm93cywgb3RoZXIgdGhhbiBJbmRleGVkREIuCisKKyAgICAgICAg
ICAgIGxldCBuZXh0RWxlbWVudCA9IHRoaXMuZGF0YVRhYmxlQm9keUVsZW1lbnQubGFzdENoaWxk
OworICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuX3Jvd3MubGVuZ3RoIC0gMTsgaSA+PSAw
OyAtLWkpIHsKKyAgICAgICAgICAgICAgICBsZXQgcm93RWxlbWVudCA9IHRoaXMuX3Jvd3NbaV0u
ZWxlbWVudDsKKyAgICAgICAgICAgICAgICBpZiAocm93RWxlbWVudC5uZXh0U2libGluZyAhPT0g
bmV4dEVsZW1lbnQpCisgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVRhYmxlQm9keUVsZW1l
bnQuaW5zZXJ0QmVmb3JlKHJvd0VsZW1lbnQsIG5leHRFbGVtZW50KTsKKyAgICAgICAgICAgICAg
ICBuZXh0RWxlbWVudCA9IHJvd0VsZW1lbnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCByb3dIZWlnaHQgPSB0aGlzLnJvd0hl
aWdodDsKKyAgICAgICAgbGV0IHVwZGF0ZU9mZnNldFRocmVzaG9sZCA9IHJvd0hlaWdodCAqIDU7
CisKKyAgICAgICAgbGV0IHJldmVhbGVkUm93cyA9IHRoaXMuX3Jvd3MuZmlsdGVyKChyb3cpID0+
IHJvdy5yZXZlYWxlZCk7CisKKyAgICAgICAgbGV0IHNjcm9sbFRvcCA9IHRoaXMuX3Njcm9sbENv
bnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICBsZXQgc2Nyb2xsSGVpZ2h0ID0gdGhp
cy5fc2Nyb2xsQ29udGFpbmVyRWxlbWVudC5vZmZzZXRIZWlnaHQ7CisKKyAgICAgICAgbGV0IGN1
cnJlbnRUb3BNYXJnaW4gPSB0aGlzLl90b3BEYXRhVGFibGVNYXJnaW5FbGVtZW50Lm9mZnNldEhl
aWdodDsKKyAgICAgICAgbGV0IGN1cnJlbnRCb3R0b21NYXJnaW4gPSB0aGlzLl9ib3R0b21EYXRh
VGFibGVNYXJnaW5FbGVtZW50Lm9mZnNldEhlaWdodDsKKyAgICAgICAgbGV0IGN1cnJlbnRUYWJs
ZUJvdHRvbSA9IGN1cnJlbnRUb3BNYXJnaW4gKyB0aGlzLl9kYXRhVGFibGVFbGVtZW50Lm9mZnNl
dEhlaWdodDsKKworICAgICAgICBsZXQgYmVsb3dUb3BUaHJlc2hvbGQgPSAhY3VycmVudFRvcE1h
cmdpbiB8fCBzY3JvbGxUb3AgPiBjdXJyZW50VG9wTWFyZ2luICsgdXBkYXRlT2Zmc2V0VGhyZXNo
b2xkOworICAgICAgICBsZXQgYWJvdmVCb3R0b21UaHJlc2hvbGQgPSAhY3VycmVudEJvdHRvbU1h
cmdpbiB8fCBzY3JvbGxUb3AgKyBzY3JvbGxIZWlnaHQgPCBjdXJyZW50VGFibGVCb3R0b20gLSB1
cGRhdGVPZmZzZXRUaHJlc2hvbGQ7CisKKyAgICAgICAgaWYgKGJlbG93VG9wVGhyZXNob2xkICYm
IGFib3ZlQm90dG9tVGhyZXNob2xkICYmIHRoaXMuX3ByZXZpb3VzUmV2ZWFsZWRSb3dDb3VudCA9
PT0gcmV2ZWFsZWRSb3dzLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0
aGlzLl9wcmV2aW91c1JldmVhbGVkUm93Q291bnQgPSByZXZlYWxlZFJvd3MubGVuZ3RoOworCisg
ICAgICAgIGxldCBvdmVyZmxvd1BhZGRpbmcgPSB1cGRhdGVPZmZzZXRUaHJlc2hvbGQgKiAzOwor
CisgICAgICAgIGxldCB0b3BIaWRkZW5Sb3dDb3VudCA9IE1hdGgubWF4KDAsIE1hdGguZmxvb3Io
KHNjcm9sbFRvcCAtIG92ZXJmbG93UGFkZGluZykgLyByb3dIZWlnaHQpKTsKKyAgICAgICAgbGV0
IHZpc2libGVSb3dDb3VudCA9IE1hdGguY2VpbCgoc2Nyb2xsSGVpZ2h0ICsgKG92ZXJmbG93UGFk
ZGluZyAqIDIpKSAvIHJvd0hlaWdodCk7CisgICAgICAgIGxldCBib3R0b21IaWRkZW5Sb3dDb3Vu
dCA9IE1hdGgubWF4KDAsIHJldmVhbGVkUm93cy5sZW5ndGggLSB0b3BIaWRkZW5Sb3dDb3VudCAt
IHZpc2libGVSb3dDb3VudCk7CisKKyAgICAgICAgbGV0IG1hcmdpblRvcCA9IHRvcEhpZGRlblJv
d0NvdW50ICogcm93SGVpZ2h0OworICAgICAgICBsZXQgbWFyZ2luQm90dG9tID0gYm90dG9tSGlk
ZGVuUm93Q291bnQgKiByb3dIZWlnaHQ7CisKKyAgICAgICAgdGhpcy5fdG9wRGF0YVRhYmxlTWFy
Z2luRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBtYXJnaW5Ub3AgKyAicHgiOworICAgICAgICB0aGlz
Ll9ib3R0b21EYXRhVGFibGVNYXJnaW5FbGVtZW50LnN0eWxlLmhlaWdodCA9IG1hcmdpbkJvdHRv
bSArICJweCI7CisKKyAgICAgICAgdGhpcy5fZGF0YVRhYmxlRWxlbWVudC5jbGFzc0xpc3QudG9n
Z2xlKCJvZGQtZmlyc3QtemVicmEtc3RyaXBlIiwgISEodG9wSGlkZGVuUm93Q291bnQgJSAyKSk7
CisKKyAgICAgICAgdGhpcy5kYXRhVGFibGVCb2R5RWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwor
CisgICAgICAgIGZvciAobGV0IGkgPSB0b3BIaWRkZW5Sb3dDb3VudDsgaSA8IHRvcEhpZGRlblJv
d0NvdW50ICsgdmlzaWJsZVJvd0NvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGxldCByb3dEYXRh
R3JpZE5vZGUgPSByZXZlYWxlZFJvd3NbaV07CisgICAgICAgICAgICBpZiAoIXJvd0RhdGFHcmlk
Tm9kZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHRoaXMuZGF0YVRh
YmxlQm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQocm93RGF0YUdyaWROb2RlLmVsZW1lbnQpOworICAg
ICAgICB9CisKKyAgICAgICAgdGhpcy5kYXRhVGFibGVCb2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLl9maWxsZXJSb3dFbGVtZW50KTsKKyAgICB9CisKICAgICBhZGRQbGFjZWhvbGRlck5vZGUo
KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXJOb2RlKQpAQCAtOTM4LDEwICsx
MDUxLDEwIEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLlZpZXcKIAogICAgIF9zb3J0Tm9kZXNDYWxsYmFjayhjb21wYXJhdG9yKQog
ICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY29tcGFyYXRvcldyYXBwZXIoYVJvdywgYlJvdykKKyAg
ICAgICAgZnVuY3Rpb24gY29tcGFyYXRvcldyYXBwZXIoYU5vZGUsIGJOb2RlKQogICAgICAgICB7
Ci0gICAgICAgICAgICB2YXIgYU5vZGUgPSBhUm93Ll9kYXRhR3JpZE5vZGU7Ci0gICAgICAgICAg
ICB2YXIgYk5vZGUgPSBiUm93Ll9kYXRhR3JpZE5vZGU7CisgICAgICAgICAgICBjb25zb2xlLmFz
c2VydCghYU5vZGUuaGFzQ2hpbGRyZW4sICJUaGlzIHNvcnQgbWV0aG9kIGNhbid0IGJlIHVzZWQg
d2l0aCBwYXJlbnQgbm9kZXMsIGNoaWxkcmVuIHdpbGwgYmUgZGlzcGxheWVkIG91dCBvZiBvcmRl
ci4iKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFiTm9kZS5oYXNDaGlsZHJlbiwgIlRo
aXMgc29ydCBtZXRob2QgY2FuJ3QgYmUgdXNlZCB3aXRoIHBhcmVudCBub2RlcywgY2hpbGRyZW4g
d2lsbCBiZSBkaXNwbGF5ZWQgb3V0IG9mIG9yZGVyLiIpOwogCiAgICAgICAgICAgICBpZiAoYU5v
ZGUuaXNQbGFjZWhvbGRlck5vZGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CkBAIC05NTks
MjkgKzEwNzIsMjMgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkID0gY2xhc3MgRGF0YUdyaWQgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgdmFyIHRib2R5ID0gdGhpcy5kYXRhVGFibGVCb2R5RWxlbWVudDsKLSAgICAgICAg
dmFyIGNoaWxkTm9kZXMgPSB0Ym9keS5jaGlsZE5vZGVzOwotICAgICAgICB2YXIgZmlsbGVyUm93
RWxlbWVudCA9IHRib2R5Lmxhc3RDaGlsZDsKLQotICAgICAgICB2YXIgc29ydGVkUm93RWxlbWVu
dHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjaGlsZE5vZGVzLCAwLCBjaGlsZE5vZGVz
Lmxlbmd0aCAtIDEpOwotICAgICAgICBzb3J0ZWRSb3dFbGVtZW50cy5zb3J0KGNvbXBhcmF0b3JX
cmFwcGVyLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9yb3dzLnNvcnQoY29tcGFyYXRvcldy
YXBwZXIuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX25vdGVSb3dzQ2hhbmdlZCgpOwogCi0g
ICAgICAgIHRib2R5LnJlbW92ZUNoaWxkcmVuKCk7Ci0KLSAgICAgICAgdmFyIHByZXZpb3VzU2li
bGluZ05vZGUgPSBudWxsOwotICAgICAgICBmb3IgKHZhciByb3dFbGVtZW50IG9mIHNvcnRlZFJv
d0VsZW1lbnRzKSB7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IHJvd0VsZW1lbnQuX2RhdGFHcmlk
Tm9kZTsKKyAgICAgICAgbGV0IHByZXZpb3VzU2libGluZ05vZGUgPSBudWxsOworICAgICAgICBm
b3IgKGxldCBub2RlIG9mIHRoaXMuX3Jvd3MpIHsKICAgICAgICAgICAgIG5vZGUucHJldmlvdXNT
aWJsaW5nID0gcHJldmlvdXNTaWJsaW5nTm9kZTsKICAgICAgICAgICAgIGlmIChwcmV2aW91c1Np
YmxpbmdOb2RlKQogICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ05vZGUubmV4dFNpYmxp
bmcgPSBub2RlOwotICAgICAgICAgICAgdGJvZHkuYXBwZW5kQ2hpbGQocm93RWxlbWVudCk7CiAg
ICAgICAgICAgICBwcmV2aW91c1NpYmxpbmdOb2RlID0gbm9kZTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChwcmV2aW91c1NpYmxpbmdOb2RlKQogICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5n
Tm9kZS5uZXh0U2libGluZyA9IG51bGw7CiAKLSAgICAgICAgdGJvZHkuYXBwZW5kQ2hpbGQoZmls
bGVyUm93RWxlbWVudCk7IC8vIFdlIGV4cGVjdCB0byBmaW5kIGEgZmlsbGVyIHJvdyB3aGVuIGF0
dGFjaGluZyBub2Rlcy4KKyAgICAgICAgLy8gQSBzb3J0YWJsZSBkYXRhIGdyaWQgbWlnaHQgbm90
IGJlIGluIGFkZGVkIHRvIGEgdmlldywgc28gaXQgbmVlZHMgaXRzIGxheW91dCB1cGRhdGVkIGhl
cmUuCisgICAgICAgIGlmICghdGhpcy5wYXJlbnRWaWV3KQorICAgICAgICAgICAgdGhpcy51cGRh
dGVMYXlvdXRJZk5lZWRlZCgpOwogICAgIH0KIAogICAgIF90b2dnbGVkU29ydE9yZGVyKCkKQEAg
LTE2MjUsMTYgKzE3MzIsMTIgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZSA9IGNsYXNzIERh
dGFHcmlkTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgaWYgKCF0aGlz
Ll9lbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICh0aGlzLl9oYXND
aGlsZHJlbikKLSAgICAgICAgeworICAgICAgICBpZiAodGhpcy5faGFzQ2hpbGRyZW4pIHsKICAg
ICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgicGFyZW50Iik7CiAgICAgICAg
ICAgICBpZiAodGhpcy5leHBhbmRlZCkKICAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNs
YXNzTGlzdC5hZGQoImV4cGFuZGVkIik7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAg
ICB7CisgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3Qu
cmVtb3ZlKCJwYXJlbnQiLCAiZXhwYW5kZWQiKTsKLSAgICAgICAgfQogICAgIH0KIAogICAgIGdl
dCBoYXNDaGlsZHJlbigpCkBAIC0xODM4LDggKzE5NDEsMTAgQEAgV2ViSW5zcGVjdG9yLkRhdGFH
cmlkTm9kZSA9IGNsYXNzIERhdGFHcmlkTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QK
IAogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygiY29sbGFwc2VkIik7CiAK
LSAgICAgICAgaWYgKHRoaXMuZGF0YUdyaWQpCisgICAgICAgIGlmICh0aGlzLmRhdGFHcmlkKSB7
CiAgICAgICAgICAgICB0aGlzLmRhdGFHcmlkLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuQ29sbGFwc2VkTm9kZSwge2RhdGFHcmlkTm9kZTogdGhp
c30pOworICAgICAgICAgICAgdGhpcy5kYXRhR3JpZC5uZWVkc0xheW91dCgpOworICAgICAgICB9
CiAgICAgfQogCiAgICAgY29sbGFwc2VSZWN1cnNpdmVseSgpCkBAIC0xODg2LDggKzE5OTEsMTAg
QEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZSA9IGNsYXNzIERhdGFHcmlkTm9kZSBleHRlbmRz
IFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycygiZXhwYW5kZWQiKTsKIAotICAgICAgICBpZiAodGhpcy5kYXRhR3JpZCkKKyAgICAgICAg
aWYgKHRoaXMuZGF0YUdyaWQpIHsKICAgICAgICAgICAgIHRoaXMuZGF0YUdyaWQuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5FeHBhbmRlZE5vZGUs
IHtkYXRhR3JpZE5vZGU6IHRoaXN9KTsKKyAgICAgICAgICAgIHRoaXMuZGF0YUdyaWQubmVlZHNM
YXlvdXQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGV4cGFuZFJlY3Vyc2l2ZWx5KCkKQEAg
LTIwNTUsMjcgKzIxNjIsMjggQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZSA9IGNsYXNzIERh
dGFHcmlkTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgICAgICB0aGlzLl9h
dHRhY2hlZCA9IHRydWU7CiAKLSAgICAgICAgdmFyIG5leHRFbGVtZW50ID0gbnVsbDsKKyAgICAg
ICAgbGV0IGluc2VydGlvbkluZGV4ID0gLTE7CiAKICAgICAgICAgaWYgKCF0aGlzLmlzUGxhY2Vo
b2xkZXJOb2RlKSB7CiAgICAgICAgICAgICB2YXIgcHJldmlvdXNHcmlkTm9kZSA9IHRoaXMudHJh
dmVyc2VQcmV2aW91c05vZGUodHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBpZiAocHJldmlvdXNH
cmlkTm9kZSAmJiBwcmV2aW91c0dyaWROb2RlLmVsZW1lbnQucGFyZW50Tm9kZSkKLSAgICAgICAg
ICAgICAgICBuZXh0RWxlbWVudCA9IHByZXZpb3VzR3JpZE5vZGUuZWxlbWVudC5uZXh0U2libGlu
ZzsKLSAgICAgICAgICAgIGVsc2UgaWYgKCFwcmV2aW91c0dyaWROb2RlKQotICAgICAgICAgICAg
ICAgIG5leHRFbGVtZW50ID0gdGhpcy5kYXRhR3JpZC5kYXRhVGFibGVCb2R5RWxlbWVudC5maXJz
dENoaWxkOworICAgICAgICAgICAgaW5zZXJ0aW9uSW5kZXggPSB0aGlzLmRhdGFHcmlkLl9yb3dz
LmluZGV4T2YocHJldmlvdXNHcmlkTm9kZSk7CisgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uSW5k
ZXggPT09IC0xKQorICAgICAgICAgICAgICAgIGluc2VydGlvbkluZGV4ID0gMDsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpbnNlcnRpb25JbmRleCsrOwogICAgICAgICB9CiAK
LSAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gbmV4dCBncmlkIG5vZGUsIHRoZW4gYXBwZW5kIGJl
Zm9yZSB0aGUgbGFzdCBjaGlsZCBzaW5jZSB0aGUgbGFzdCBjaGlsZCBpcyB0aGUgZmlsbGVyIHJv
dy4KLSAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5kYXRhR3JpZC5kYXRhVGFibGVCb2R5RWxl
bWVudC5sYXN0Q2hpbGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaWxsZXIiKSk7Ci0KLSAgICAgICAg
aWYgKCFuZXh0RWxlbWVudCkKLSAgICAgICAgICAgIG5leHRFbGVtZW50ID0gdGhpcy5kYXRhR3Jp
ZC5kYXRhVGFibGVCb2R5RWxlbWVudC5sYXN0Q2hpbGQ7CisgICAgICAgIGlmIChpbnNlcnRpb25J
bmRleCA9PT0gLTEpCisgICAgICAgICAgICB0aGlzLmRhdGFHcmlkLl9yb3dzLnB1c2godGhpcyk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuZGF0YUdyaWQuX3Jvd3MuaW5zZXJ0QXRJ
bmRleCh0aGlzLCBpbnNlcnRpb25JbmRleCk7CiAKLSAgICAgICAgdGhpcy5kYXRhR3JpZC5kYXRh
VGFibGVCb2R5RWxlbWVudC5pbnNlcnRCZWZvcmUodGhpcy5lbGVtZW50LCBuZXh0RWxlbWVudCk7
CisgICAgICAgIHRoaXMuZGF0YUdyaWQuX25vdGVSb3dzQ2hhbmdlZCgpOwogCi0gICAgICAgIGlm
ICh0aGlzLmV4cGFuZGVkKQorICAgICAgICBpZiAodGhpcy5leHBhbmRlZCkgewogICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgKytpKQogICAgICAg
ICAgICAgICAgIHRoaXMuY2hpbGRyZW5baV0uX2F0dGFjaCgpOworICAgICAgICB9CiAgICAgfQog
CiAgICAgX2RldGFjaCgpCkBAIC0yMDg1LDggKzIxOTMsOCBAQCBXZWJJbnNwZWN0b3IuRGF0YUdy
aWROb2RlID0gY2xhc3MgRGF0YUdyaWROb2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAog
CiAgICAgICAgIHRoaXMuX2F0dGFjaGVkID0gZmFsc2U7CiAKLSAgICAgICAgaWYgKHRoaXMuX2Vs
ZW1lbnQgJiYgdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlKQotICAgICAgICAgICAgdGhpcy5fZWxl
bWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX2VsZW1lbnQpOworICAgICAgICB0aGlz
LmRhdGFHcmlkLl9yb3dzLnJlbW92ZSh0aGlzLCB0cnVlKTsKKyAgICAgICAgdGhpcy5kYXRhR3Jp
ZC5fbm90ZVJvd3NDaGFuZ2VkKCk7CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlz
LmNoaWxkcmVuLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgdGhpcy5jaGlsZHJlbltpXS5fZGV0
YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9EYXRhYmFzZVVzZXJRdWVyeVN1Y2Nlc3NWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YWJhc2VVc2VyUXVlcnlTdWNjZXNzVmlldy5qcwpp
bmRleCBmMmRiNmM0Li4wOTQ0ZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9EYXRhYmFzZVVzZXJRdWVyeVN1Y2Nlc3NWaWV3LmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFiYXNlVXNlclF1
ZXJ5U3VjY2Vzc1ZpZXcuanMKQEAgLTMxLDggKzMxLDExIEBAIFdlYkluc3BlY3Rvci5EYXRhYmFz
ZVVzZXJRdWVyeVN1Y2Nlc3NWaWV3ID0gY2xhc3MgRGF0YWJhc2VVc2VyUXVlcnlTdWNjZXNzVmll
dyBlCiAKICAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuY3Jl
YXRlU29ydGFibGVEYXRhR3JpZChjb2x1bW5OYW1lcywgdmFsdWVzKTsKICAgICAgICAgaWYgKHRo
aXMuX2RhdGFHcmlkKSB7Ci0gICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5lbGVtZW50LmNsYXNz
TGlzdC5hZGQoImlubGluZSIpOworICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuaW5saW5lID0g
dHJ1ZTsKKwogICAgICAgICAgICAgdGhpcy5yZXN1bHRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
X2RhdGFHcmlkLmVsZW1lbnQpOworCisgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVM
YXlvdXRJZk5lZWRlZCgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGhpcy5yZXN1
bHRFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm5vLXJlc3VsdHMiKTsKICAgICAgICAgICAgIHRoaXMu
cmVzdWx0RWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUXVlcnkg
cmV0dXJuZWQgbm8gcmVzdWx0cy4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmNzcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmNzcwppbmRleCA1ZTAw
NDgyLi42ZWY3ZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uY3NzCkBAIC0yNjIsMjIgKzI2Miwx
MiBAQAogICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiB9CiAKLS5kZXRhaWxzLXNlY3Rpb24gPiAu
Y29udGVudCAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IG5v
bmU7Ci19Ci0KLS5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAuZGF0YS1ncmlkIHRyOm50aC1j
aGlsZChldmVuKSB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Ci19Ci0KLS5kZXRhaWxz
LXNlY3Rpb24gPiAuY29udGVudCAuZGF0YS1ncmlkIHRyOm50aC1jaGlsZChvZGQpIHsKLSAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBoc2woMjE0LCA0MSUsIDk2JSk7Ci19Ci0KIC5kZXRhaWxzLXNlY3Rp
b24gPiAuY29udGVudCAuZGF0YS1ncmlkIHRkLnZhbHVlLWNvbHVtbiB7CiAgICAgaGVpZ2h0OiBh
dXRvOwogICAgIGxpbmUtaGVpZ2h0OiBpbml0aWFsOwogICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7
CisgICAgcGFkZGluZy10b3A6IDRweDsKKyAgICBwYWRkaW5nLWJvdHRvbTogNHB4OwogfQogCiAu
ZGV0YWlscy1zZWN0aW9uID4gLmNvbnRlbnQgLmRhdGEtZ3JpZCB0ZC52YWx1ZS1jb2x1bW4gPiBk
aXYgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvRGV0YWlsc1NlY3Rpb25EYXRhR3JpZFJvdy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uRGF0YUdyaWRSb3cuanMKaW5kZXggOTY0
ZDY5Mi4uNzlmMGQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25EYXRhR3JpZFJvdy5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbkRhdGFHcmlkUm93
LmpzCkBAIC00OSwxMCArNDksMTMgQEAgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uRGF0YUdy
aWRSb3cgPSBjbGFzcyBEZXRhaWxzU2VjdGlvbkRhdGFHcmlkUm93IGV4dGVuZHMKICAgICAgICAg
dGhpcy5fZGF0YUdyaWQgPSBkYXRhR3JpZCB8fCBudWxsOwogCiAgICAgICAgIGlmIChkYXRhR3Jp
ZCkgewotICAgICAgICAgICAgZGF0YUdyaWQuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpbmxpbmUi
KTsKKyAgICAgICAgICAgIGRhdGFHcmlkLmlubGluZSA9IHRydWU7CisgICAgICAgICAgICBkYXRh
R3JpZC52YXJpYWJsZUhlaWdodFJvd3MgPSB0cnVlOwogCiAgICAgICAgICAgICB0aGlzLmhpZGVF
bXB0eU1lc3NhZ2UoKTsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChkYXRh
R3JpZC5lbGVtZW50KTsKKworICAgICAgICAgICAgZGF0YUdyaWQudXBkYXRlTGF5b3V0SWZOZWVk
ZWQoKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICB0aGlzLnNob3dFbXB0eU1lc3NhZ2Uo
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9IZWFwU25hcHNob3RJbnN0YW5jZXNDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25hcHNob3RJbnN0YW5jZXNDb250
ZW50Vmlldy5jc3MKaW5kZXggODI0ZDFlZC4uOGM0OWQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcFNuYXBzaG90SW5zdGFuY2VzQ29u
dGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0hlYXBTbmFwc2hvdEluc3RhbmNlc0NvbnRlbnRWaWV3LmNzcwpAQCAtNjUsNyArNjUsNiBA
QAogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICB3aWR0aDogMTZweDsKICAgICBoZWlnaHQ6
IDE2cHg7Ci0gICAgbWFyZ2luLXRvcDogMXB4OwogICAgIG1hcmdpbi1sZWZ0OiAycHg7CiB9CiAK
QEAgLTc4LDcgKzc3LDYgQEAKICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgd2lkdGg6IDE2
cHg7CiAgICAgaGVpZ2h0OiAxNnB4OwotICAgIG1hcmdpbi10b3A6IDFweDsKICAgICBtYXJnaW4t
cmlnaHQ6IDRweDsKICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1R5cGVVbmRlZmluZWQuc3Zn
KTsKIH0KQEAgLTEyMiw4ICsxMjAsNyBAQAogLmhlYXAtc25hcHNob3QgPiAuZGF0YS1ncmlkIHRk
IC5mb3JtYXR0ZWQtbm9kZS1wcmV2aWV3LAogLmhlYXAtc25hcHNob3QgPiAuZGF0YS1ncmlkIHRk
IC5vYmplY3QtcHJldmlldyB7CiAgICAgdGV4dC1pbmRlbnQ6IDA7IC8qIERvIG5vdCBpbmhlcml0
IHRoZSBEYXRhR3JpZCdzIGluZGVudC4gKi8KLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci0g
ICAgaGVpZ2h0OiAxNnB4OworICAgIGxpbmUtaGVpZ2h0OiBpbml0aWFsOwogfQogCiAuaGVhcC1z
bmFwc2hvdC1pbnN0YW5jZS1wb3BvdmVyLWNvbnRlbnQgPiAudGl0bGUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5kZXhlZERhdGFiYXNl
T2JqZWN0U3RvcmVDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3LmNzcwpp
bmRleCAzNzYzM2M1Li42YmZjM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3
LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmRl
eGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3LmNzcwpAQCAtMzEsMjMgKzMxLDYgQEAK
ICAgICBib3R0b206IDA7CiB9CiAKLS5jb250ZW50LXZpZXcuaW5kZXhlZC1kYXRhYmFzZS1vYmpl
Y3Qtc3RvcmUgPiAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgewotICAgIGJhY2tncm91bmQtaW1hZ2U6
IG5vbmU7Ci19Ci0KLS5jb250ZW50LXZpZXcuaW5kZXhlZC1kYXRhYmFzZS1vYmplY3Qtc3RvcmUg
PiAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgdHI6bnRoLWNoaWxkKGV2ZW4pIHsKLSAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB3aGl0ZTsKLX0KLQotLmNvbnRlbnQtdmlldy5pbmRleGVkLWRhdGFiYXNlLW9i
amVjdC1zdG9yZSA+IC5kYXRhLWdyaWQgdGFibGUuZGF0YSB0cjpudGgtY2hpbGQob2RkKSB7Ci0g
ICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDIxNCwgNDElLCA5NiUpOwotfQotCi0uY29udGVudC12
aWV3LmluZGV4ZWQtZGF0YWJhc2Utb2JqZWN0LXN0b3JlID4gLmRhdGEtZ3JpZCB0YWJsZS5kYXRh
IHRyLmZpbGxlciB7Ci0gLyogRklYTUU6IFRoaXMgc2hvdWxkIHNob3cgYW4gYWx0ZXJuYXRpbmcg
c3RyaXBlLCBidXQgSSBjb3VsZG4ndCBtYWtlIGl0IHdvcmsuICovCi0gICAgYmFja2dyb3VuZC1j
b2xvcjogd2hpdGU7Ci19Ci0KIC5jb250ZW50LXZpZXcuaW5kZXhlZC1kYXRhYmFzZS1vYmplY3Qt
c3RvcmUgPiAuZGF0YS1ncmlkIHRyLnNlbGVjdGVkIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBo
c2woMjEwLCA5MCUsIDkwJSkgIWltcG9ydGFudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3Jl
Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3LmpzCmluZGV4IGFjODYwNTQu
LmRmNjZhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5kZXhlZERhdGFiYXNlT2Jq
ZWN0U3RvcmVDb250ZW50Vmlldy5qcwpAQCAtNjgsNiArNjgsNyBAQCBXZWJJbnNwZWN0b3IuSW5k
ZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVDb250ZW50VmlldyA9IGNsYXNzIEluZGV4ZWREYXRhYmFz
ZU9iamVjdAogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSBuZXcgV2ViSW5z
cGVjdG9yLkRhdGFHcmlkKGNvbHVtbkluZm8pOworICAgICAgICB0aGlzLl9kYXRhR3JpZC52YXJp
YWJsZUhlaWdodFJvd3MgPSB0cnVlOwogICAgICAgICB0aGlzLl9kYXRhR3JpZC5zY3JvbGxDb250
YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdGhpcy5fZGF0YUdyaWRTY3JvbGxlZC5i
aW5kKHRoaXMpKTsKICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2RhdGFHcmlkKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5
ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0xheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwuanMKaW5kZXggMWJl
NzExZC4uODU3ZWU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllclRyZWVEZXRhaWxzU2lkZWJh
clBhbmVsLmpzCkBAIC0xMzgsNiArMTM4LDcgQEAgV2ViSW5zcGVjdG9yLkxheWVyVHJlZURldGFp
bHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBMYXllclRyZWVEZXRhaWxzU2lkZWJhclBhbmVsIGUKICAg
ICAgICAgY29sdW1ucy5tZW1vcnkud2lkdGggPSAiNzBweCI7CiAKICAgICAgICAgdGhpcy5fZGF0
YUdyaWQgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkKGNvbHVtbnMpOworICAgICAgICB0aGlz
Ll9kYXRhR3JpZC5pbmxpbmUgPSB0cnVlOwogICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5Tb3J0Q2hhbmdlZCwgdGhpcy5f
c29ydERhdGFHcmlkLCB0aGlzKTsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuU2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhp
cy5fc2VsZWN0ZWREYXRhR3JpZE5vZGVDaGFuZ2VkLCB0aGlzKTsKIApAQCAtMTQ1LDcgKzE0Niw2
IEBAIFdlYkluc3BlY3Rvci5MYXllclRyZWVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgTGF5
ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbCBlCiAgICAgICAgIHRoaXMuc29ydE9yZGVyU2V0dGlu
ZyA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZygibGF5ZXItdHJlZS1kZXRhaWxzLXNpZGViYXIt
cGFuZWwtc29ydC1vcmRlciIsIFdlYkluc3BlY3Rvci5EYXRhR3JpZC5Tb3J0T3JkZXIuRGVzY2Vu
ZGluZyk7CiAKICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLl9kYXRhR3JpZC5lbGVtZW50Owot
ICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoImlubGluZSIpOwogICAgICAgICBlbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgdGhpcy5fZGF0YUdyaWRHYWluZWRGb2N1cy5iaW5k
KHRoaXMpLCBmYWxzZSk7CiAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIs
IHRoaXMuX2RhdGFHcmlkTG9zdEZvY3VzLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICAgICAgZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2RhdGFHcmlkV2FzQ2xpY2tlZC5i
aW5kKHRoaXMpLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5jc3MKaW5kZXggNTljMmViZS4u
ZmU1YjhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTG9nQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzcwpAQCAtMTE3LDE1ICsxMTcsNiBAQAog
ICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMTAsIDkwJSwgOTAlKSAhaW1wb3J0YW50OwogfQog
Ci0uY29uc29sZS1pdGVtIC5kYXRhLWdyaWQgdGFibGUuZGF0YSB7Ci0gICAgYmFja2dyb3VuZC1p
bWFnZTogbm9uZTsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLX0KLQotLmNvbnNvbGUt
aXRlbSAuZGF0YS1ncmlkIHRhYmxlLmRhdGEgdHI6bnRoLWNoaWxkKGV2ZW4pIHsKLSAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2woMjE0LCA0MSUsIDk2JSk7Ci19Ci0KIC5jb25zb2xlLWl0ZW0gLmRh
dGEtZ3JpZCB0ci5zZWxlY3RlZCB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDIxMCwgMCUs
IDkwJSkgIWltcG9ydGFudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtHcmlkQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya0dyaWRDb250ZW50Vmlldy5j
c3MKaW5kZXggMzEzYTAyNy4uZTgzOGI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya0dyaWRDb250ZW50Vmlldy5jc3MKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya0dyaWRDb250
ZW50Vmlldy5jc3MKQEAgLTM0LDEzICszNCwzIEBACiAuY29udGVudC12aWV3Lm5ldHdvcmstZ3Jp
ZCA+IC5kYXRhLWdyaWQgdGggewogICAgIGJvcmRlci10b3A6IG5vbmU7CiB9Ci0KLS5jb250ZW50
LXZpZXcubmV0d29yay1ncmlkID4gLmRhdGEtZ3JpZCB0ZCB7Ci0gICAgaGVpZ2h0OiAxNnB4Owot
ICAgIGxpbmUtaGVpZ2h0OiAxNnB4OwotfQotCi0uY29udGVudC12aWV3Lm5ldHdvcmstZ3JpZCA+
IC5kYXRhLWdyaWQgdGFibGUuZGF0YSB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdy
YWRpZW50KHRvIGJvdHRvbSwgd2hpdGUsIHdoaXRlIDUwJSwgaHNsKDAsIDAlLCA5NSUpIDUwJSwg
aHNsKDAsIDAlLCA5NSUpKTsKLSAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgNDBweDsKLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2Jl
U2V0RGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Qcm9iZVNldERhdGFHcmlkLmpzCmluZGV4IDQzYjYxY2MuLjQ2ZTEzZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2JlU2V0RGF0YUdy
aWQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJv
YmVTZXREYXRhR3JpZC5qcwpAQCAtNDAsNyArNDAsNyBAQCBXZWJJbnNwZWN0b3IuUHJvYmVTZXRE
YXRhR3JpZCA9IGNsYXNzIFByb2JlU2V0RGF0YUdyaWQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuRGF0
YQogCiAgICAgICAgIHRoaXMucHJvYmVTZXQgPSBwcm9iZVNldDsKIAotICAgICAgICB0aGlzLmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgiaW5saW5lIik7CisgICAgICAgIHRoaXMuaW5saW5lID0gdHJ1
ZTsKIAogICAgICAgICB0aGlzLl9mcmFtZU5vZGVzID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5f
bGFzdFVwZGF0ZWRGcmFtZSA9IG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9maWxlVmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9maWxlVmlldy5jc3MKaW5kZXggZTNjNTU0OC4u
MjM3MjMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUHJvZmlsZVZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVWaWV3LmNzcwpAQCAtMzksNyArMzksNiBAQAogICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKICAgICB3aWR0aDogMTZweDsKICAgICBoZWlnaHQ6IDE2cHg7Ci0gICAg
bWFyZ2luLXRvcDogMXB4OwogICAgIG1hcmdpbi1yaWdodDogM3B4OwogfQogCkBAIC03Nyw3ICs3
Niw2IEBACiAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgIHdpZHRoOiAxNnB4OwogICAgIGhl
aWdodDogMTZweDsKLSAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgbWFyZ2luLWxlZnQ6IDJweDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmNzcwpp
bmRleCBmN2ZjZDUxLi5mYzJjYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmNzcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29y
ZGluZ0NvbnRlbnRWaWV3LmNzcwpAQCAtNjEsMTMgKzYxLDMgQEAKIC5jb250ZW50LXZpZXcudGlt
ZWxpbmUtcmVjb3JkaW5nID4gLmNvbnRlbnQtYnJvd3NlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5p
dGVtLnNjb3BlLWJhci5kZWZhdWx0LWl0ZW0tc2VsZWN0ZWQgPiAubXVsdGlwbGUgLmFycm93cyB7
CiAgICAgY29sb3I6IGJsYWNrOwogfQotCi0uY29udGVudC12aWV3LnRpbWVsaW5lLXJlY29yZGlu
ZyA+IC5jb250ZW50LWJyb3dzZXIgPiAuY29udGVudC12aWV3LWNvbnRhaW5lciA+IC50aW1lbGlu
ZS12aWV3ID4gLmRhdGEtZ3JpZCB0ZCB7Ci0gICAgaGVpZ2h0OiAxNnB4OwotICAgIGxpbmUtaGVp
Z2h0OiAxNnB4OwotfQotCi0uY29udGVudC12aWV3LnRpbWVsaW5lLXJlY29yZGluZyA+IC5jb250
ZW50LWJyb3dzZXIgPiAuY29udGVudC12aWV3LWNvbnRhaW5lciA+IC50aW1lbGluZS12aWV3ID4g
LmRhdGEtZ3JpZCB0YWJsZS5kYXRhIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3Jh
ZGllbnQodG8gYm90dG9tLCB3aGl0ZSwgd2hpdGUgNTAlLCBoc2woMCwgMCUsIDk1JSkgNTAlLCBo
c2woMCwgMCUsIDk1JSkpOwotICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSA0MHB4OwotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmFyaWFi
bGVzLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zhcmlh
Ymxlcy5jc3MKaW5kZXggOTg1MGQyNy4uYTkwZWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmFyaWFibGVzLmNzcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WYXJpYWJsZXMuY3NzCkBAIC03MCw2
ICs3MCw5IEBACiAgICAgLS1tZW1vcnktZXh0cmEtZmlsbC1jb2xvcjogaHNsKDIxMSwgNTMlLCA3
MCUpOwogICAgIC0tbWVtb3J5LWV4dHJhLXN0cm9rZS1jb2xvcjogaHNsKDIxMSwgNTMlLCA1NSUp
OwogCisgICAgLS1ldmVuLXplYnJhLXN0cmlwZS1yb3ctYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7
CisgICAgLS1vZGQtemVicmEtc3RyaXBlLXJvdy1iYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUs
IDk1JSk7CisKICAgICAtLXRvb2xiYXItaGVpZ2h0OiAzNnB4OwogICAgIC0tdGFiLWJhci1oZWln
aHQ6IDI0cHg7CiB9Ci0tIAoyLjcuNCAoQXBwbGUgR2l0LTY2KQoK
</data>
<flag name="review"
          id="301037"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>