<?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>149198</bug_id>
          
          <creation_ts>2015-09-15 17:12:04 -0700</creation_ts>
          <short_desc>Web Inspector: Make Find / Save keyboard shortcuts work better globally</short_desc>
          <delta_ts>2015-09-17 12:29:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>142533</blocked>
    
    <blocked>149275</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</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>1126206</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-09-15 17:12:04 -0700</bug_when>
    <thetext>* SUMMARY
Make Find / Save keyboard shortcuts work better globally.

Currently find/save requires you to have the ContentView in the ContentBrowser focused. This fails if you have focus on the Sidebars. We should consider making these global, like Copy.

* STEPS TO REPRODUCE
1. Inspect &lt;https://webkit.org&gt;
2. Show Resources Tab
3. Select a CSS resource
4. Cmd + F
  =&gt; expected find banner to show for the editor, instead Safari may have shown a find banner if docked, nothing happens if not docked
5. Cmd + S
  =&gt; expected resource save dialog, if docked Safari handles the key event, nothing happens if not docked</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126207</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-09-15 17:12:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/22708645&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126212</commentid>
    <comment_count>2</comment_count>
      <attachid>261268</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-09-15 17:23:29 -0700</bug_when>
    <thetext>Created attachment 261268
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126401</commentid>
    <comment_count>3</comment_count>
      <attachid>261268</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-09-16 10:46:30 -0700</bug_when>
    <thetext>Comment on attachment 261268
[PATCH] Proposed Fix

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

I like this patch and it works a lot better than existing behavior, but r- because save and find don&apos;t do anything if QuickConsole has focus. In fact, the save shortcuts do nothing if any text field has focus, in my testing. I&apos;m fine with the search shortcut doing nothing if a search box is already selected (so it doesn&apos;t switch between LogContentView and the split ContentView).

Focus management seems ripe for extracting into a FocusController class, someday. We might want to do more things with it.

&gt; Source/WebInspectorUI/ChangeLog:7
&gt; +

Please copy the problem/fix description from the bug into here.

&gt; Source/WebInspectorUI/ChangeLog:28
&gt; +        If nothing is focused, default ot the main content browser.

Nit: typo

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:1689
&gt; +    if (this.splitContentBrowser.element.isSelfOrAncestor(this.currentFocusElement) || this.quickConsole.element.isSelfOrAncestor(this.currentFocusElement))

This seems wrong: if quickConsole has focus but the split content browser is not open, then it won&apos;t work.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:1701
&gt; +    var tabContentView = this.tabBrowser.selectedTabContentView;

Nit: let</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126408</commentid>
    <comment_count>4</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-09-16 10:59:08 -0700</bug_when>
    <thetext>While testing this out, I also filed/updated the following bugs:

* https://bugs.webkit.org/show_bug.cgi?id=142533
* https://bugs.webkit.org/show_bug.cgi?id=149223</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126414</commentid>
    <comment_count>5</comment_count>
      <attachid>261268</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-09-16 11:30:42 -0700</bug_when>
    <thetext>Comment on attachment 261268
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:1761
&gt; +    if (!contentView || !contentView.supportsSave)

NIT: From what I can see, any class with supportsSave also has a saveDataToFile function, but would it be safer to also check to see that that function exists?

You have also used &quot;var&quot; instead of &quot;let&quot; in multiple places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126488</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-09-16 15:34:12 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 261268 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=261268&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Base/Main.js:1761
&gt; &gt; +    if (!contentView || !contentView.supportsSave)
&gt; 
&gt; NIT: From what I can see, any class with supportsSave also has a
&gt; saveDataToFile function, but would it be safer to also check to see that
&gt; that function exists?

Some ContentViews may have the ability to save but don&apos;t want to save at the moment. The LogContentView when not visible or in the split console is an example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126536</commentid>
    <comment_count>7</comment_count>
      <attachid>261342</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-09-16 17:40:31 -0700</bug_when>
    <thetext>Created attachment 261342
[PATCH] Proposed Fix

Change this to generically handle Cmd+F / Cmd+S in the QuickConsole when split console is showing/closed.

  - QuickConsole focused and split console CLOSED =&gt; Forward events to the main ContentBrowser/ContentView
  - QuickConsole focused and split console OPEN   =&gt; Forward events to the split ContentBrowser/ContentView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126765</commentid>
    <comment_count>8</comment_count>
      <attachid>261342</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-09-17 11:40:46 -0700</bug_when>
    <thetext>Comment on attachment 261342
[PATCH] Proposed Fix

r=me, but see the blocked bug (which seems like separate work)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126782</commentid>
    <comment_count>9</comment_count>
      <attachid>261342</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-17 12:29:53 -0700</bug_when>
    <thetext>Comment on attachment 261342
[PATCH] Proposed Fix

Clearing flags on attachment: 261342

Committed r189924: &lt;http://trac.webkit.org/changeset/189924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126783</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-17 12:29:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261268</attachid>
            <date>2015-09-15 17:23:29 -0700</date>
            <delta_ts>2015-09-16 17:40:31 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>better-find-save.patch</filename>
            <type>text/plain</type>
            <size>15812</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGRhNTljYjUuLjQ0NjAzZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE1LTA5LTE1ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTWFrZSBG
aW5kIC8gU2F2ZSBrZXlib2FyZCBzaG9ydGN1dHMgd29yayBiZXR0ZXIgZ2xvYmFsbHkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTE5OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuY29udGVudExvYWRlZCk6Cisg
ICAgICAgIEFkZCBnbG9iYWwgZmluZCBhbmQgc2F2ZSBrZXlib2FyZCBzaG9ydGN1dHMuCisKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5fZm9jdXNDaGFuZ2VkKToKKyAgICAgICAgSXQgaXMgb2Z0ZW4g
dXNlZnVsIHRvIGhhdmUgdGhlIGN1cnJlbnRGb2N1c2VkRWxlbWVudCBrbm93IGlmIGl0IGlzCisg
ICAgICAgIGluIGEgVGV4dEVkaXRvciBvciBvdGhlciBDb2RlTWlycm9yIGVkaXRvci4gV2hlbiBl
ZGl0YWJsZSB0aGUgPHRleHRhcmVhPgorICAgICAgICBpcyBzZWxlY3RlZCBhbmQgbm90IHVwZGF0
aW5nIGZvY3VzZWQgZWxlbWVudC4gCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fZm9jdXNlZENv
bnRlbnRCcm93c2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fZm9jdXNlZENvbnRlbnRWaWV3
KToKKyAgICAgICAgUHJvdmlkZSBoZWxwZXJzIGZvciBnZXR0aW5nIGEgZ29vZCBhcHByb3hpbWF0
aW9uIG9mIHRoZSBjdXJyZW50IGZvY3VzZWQKKyAgICAgICAgb3IgdmlzaWJsZSBjb250ZW50IHZp
ZXcgdGhhdCB1c2VycyB3b3VsZCBleHBlY3QgdG8gYmUgaW50ZXJhY3Rpbmcgd2l0aC4KKyAgICAg
ICAgU2luY2UgdGhlIGZvY3VzIGV2ZW50IG1heSBub3QgZmlyZSB3aGVuIGNsaWNraW5nIGFyb3Vu
ZCB0byBlbGVtZW50cworICAgICAgICBsaWtlIHRoZSA8Ym9keT4uIFJhdGhlciB0aGFuIG1ha2Ug
aXQgZXhwbGljaXRseSBmb2N1c2FibGUsIGNoZWNrIHRoZQorICAgICAgICBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LCBhbmQgaWYgaXQgaXMgYm9keSBhaW0gZm9yIHRoZSBtYWluIGNvbnRlbnQKKyAg
ICAgICAgYnJvd3NlciBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50Rm9jdXNlZEVsZW1lbnQgd2hpY2gg
bWF5IGJlIHN0YWxlLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuX2ZvY3VzZWRPclZpc2libGVD
b250ZW50QnJvd3Nlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX2ZvY3VzZWRPclZpc2libGVD
b250ZW50Vmlldyk6CisgICAgICAgIElmIG5vdGhpbmcgaXMgZm9jdXNlZCwgZGVmYXVsdCBvdCB0
aGUgbWFpbiBjb250ZW50IGJyb3dzZXIuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fZmluZCk6
CisgICAgICAgIFBhc3Mgb24gdG8gdGhlIENvbnRlbnRWaWV3IHdoaWNoIHR5cGljYWxseSBoYW5k
bGVzIEZpbmQKKyAgICAgICAgYnkgc2hvd2luZyBpdHMgZmluZCBiYW5uZXIuCisKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5fc2F2ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX3NhdmVBcyk6Cisg
ICAgICAgIENoZWNrIGFuZCBzYXZlIHRoZSBjdXJyZW50IENvbnRlbnRWaWV3IGlmIHN1cHBvcnRl
ZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBzdXBwb3J0
c1NhdmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5z
YXZlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90
b3R5cGUuc2F2ZUFzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0phdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkphdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlci5wcm90b3R5cGUuX3NhdmUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlci5w
cm90b3R5cGUuX3NhdmVBcyk6IERlbGV0ZWQuCisgICAgICAgIFNwZWNpYWwgc2F2ZSBoYW5kbGlu
ZyBpcyBubyBsb25nZXIgbmVlZGVkIGluIHRoZSBsb2cgdmlldyBjb250cm9sbGVyLgorICAgICAg
ICBGaW5kIGhvd2V2ZXIgaXMgc3RpbGwgbmVlZGVkIGJlY2F1c2UgdGhlIExvZ0NvbnRlbnRWaWV3
J3Mgc2VhcmNoIGJhbm5lcgorICAgICAgICBpcyBub3QgcGFydCBvZiB0aGUgQ29udGVudEJyb3dz
ZXIuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5oYW5kbGVGaW5k
RXZlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuX3NhdmUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5f
c2F2ZUFzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3Nlci5w
cm90b3R5cGUuX3Nob3dGaW5kQmFubmVyKTogRGVsZXRlZC4KKyAgICAgICAgU2F2ZSBmdW5jdGlv
bmFsaXR5IG1vdmVkIGdsb2JhbGx5LCBmaW5kIGZ1bmN0aW9uYWxpdHkgbW92ZWQgdG8gYQorICAg
ICAgICBwdWJsaWMgbWV0aG9kIGNhbGxlZCBsaWtlIGNvcHkgZXZlbnQgaGFuZGxpbmcuCisKIDIw
MTUtMDktMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBXYXRjaCBFeHByZXNzaW9ucyB1bmNhdWdodCBleGNlcHRpb25zIG9u
IHBhZ2UgcmVsb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL01haW4uanMKaW5kZXggZGE0YzJkNS4uM2Q0MzNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMjM4LDYgKzIzOCw5IEBA
IFdlYkluc3BlY3Rvci5jb250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogICAgIHRoaXMuZGV0YWls
c1NpZGViYXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2lkZWJhci5FdmVudC5XaWR0
aERpZENoYW5nZSwgdGhpcy5fc2lkZWJhcldpZHRoRGlkQ2hhbmdlLCB0aGlzKTsKIAogICAgIHRo
aXMuc2VhcmNoS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250
cm9sIHwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuU2hpZnQsICJGIiwg
dGhpcy5fZm9jdXNTZWFyY2hGaWVsZC5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9maW5kS2V5Ym9h
cmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sLCAiRiIsIHRoaXMu
X2ZpbmQuYmluZCh0aGlzKSk7CisgICAgdGhpcy5fc2F2ZUtleWJvYXJkU2hvcnRjdXQgPSBuZXcg
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRj
dXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIlMiLCB0aGlzLl9zYXZlLmJpbmQodGhpcykp
OworICAgIHRoaXMuX3NhdmVBc0tleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuU2hp
ZnQgfCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250
cm9sLCAiUyIsIHRoaXMuX3NhdmVBcy5iaW5kKHRoaXMpKTsKIAogICAgIHRoaXMubmF2aWdhdGlv
blNpZGViYXJLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0
Y3V0KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRy
b2wsICIwIiwgdGhpcy50b2dnbGVOYXZpZ2F0aW9uU2lkZWJhci5iaW5kKHRoaXMpKTsKICAgICB0
aGlzLmRldGFpbHNTaWRlYmFyS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21t
YW5kT3JDb250cm9sIHwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuT3B0
aW9uLCAiMCIsIHRoaXMudG9nZ2xlRGV0YWlsc1NpZGViYXIuYmluZCh0aGlzKSk7CkBAIC0xMTA1
LDggKzExMDgsMTUgQEAgV2ViSW5zcGVjdG9yLl9mb2N1c0NoYW5nZWQgPSBmdW5jdGlvbihldmVu
dCkKICAgICAvLyBhIGNhcmV0IHNlbGVjdGlvbiBpbnNpZGUuIFRoaXMgaXMgbmVlZGVkIChhdCBs
ZWFzdCkgdG8gcmVtb3ZlIGNhcmV0IGZyb20gY29uc29sZSB3aGVuIGZvY3VzIGlzIG1vdmVkLgog
ICAgIC8vIFRoZSBzZWxlY3Rpb24gY2hhbmdlIHNob3VsZCBub3QgYXBwbHkgdG8gdGV4dCBmaWVs
ZHMgYW5kIHRleHQgYXJlYXMgZWl0aGVyLgogCi0gICAgaWYgKFdlYkluc3BlY3Rvci5pc0V2ZW50
VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkKKyAgICBpZiAoV2ViSW5zcGVjdG9yLmlzRXZl
bnRUYXJnZXRBbkVkaXRhYmxlRmllbGQoZXZlbnQpKSB7CisgICAgICAgIC8vIFN0aWxsIHVwZGF0
ZSB0aGUgY3VycmVudEZvY3VzRWxlbWVudCBpZiBpbnNpZGUgb2YgYSBDb2RlTWlycm9yIGVkaXRv
ci4KKyAgICAgICAgdmFyIGNvZGVNaXJyb3JFZGl0b3JFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVu
Y2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIkNvZGVNaXJyb3IiKTsKKyAgICAgICAgaWYgKGNv
ZGVNaXJyb3JFZGl0b3JFbGVtZW50ICYmIGNvZGVNaXJyb3JFZGl0b3JFbGVtZW50ICE9PSB0aGlz
LmN1cnJlbnRGb2N1c0VsZW1lbnQpIHsKKyAgICAgICAgICAgIHRoaXMucHJldmlvdXNGb2N1c0Vs
ZW1lbnQgPSB0aGlzLmN1cnJlbnRGb2N1c0VsZW1lbnQ7CisgICAgICAgICAgICB0aGlzLmN1cnJl
bnRGb2N1c0VsZW1lbnQgPSBjb2RlTWlycm9yRWRpdG9yRWxlbWVudDsKKyAgICAgICAgfQogICAg
ICAgICByZXR1cm47CisgICAgfQogCiAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKTsKICAgICBpZiAoIXNlbGVjdGlvbi5pc0NvbGxhcHNlZCkKQEAgLTE2NTIsMTkgKzE2
NjIsNjEgQEAgV2ViSW5zcGVjdG9yLl9mb2N1c0NvbnNvbGVQcm9tcHQgPSBmdW5jdGlvbihldmVu
dCkKICAgICB0aGlzLnF1aWNrQ29uc29sZS5wcm9tcHQuZm9jdXMoKTsKIH07CiAKK1dlYkluc3Bl
Y3Rvci5fZm9jdXNlZENvbnRlbnRCcm93c2VyID0gZnVuY3Rpb24oKQoreworICAgIGlmICh0aGlz
LnRhYkJyb3dzZXIuZWxlbWVudC5pc1NlbGZPckFuY2VzdG9yKHRoaXMuY3VycmVudEZvY3VzRWxl
bWVudCkgfHwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYm9keSkgeworICAg
ICAgICB2YXIgdGFiQ29udGVudFZpZXcgPSB0aGlzLnRhYkJyb3dzZXIuc2VsZWN0ZWRUYWJDb250
ZW50VmlldzsKKyAgICAgICAgaWYgKHRhYkNvbnRlbnRWaWV3IGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLkNvbnRlbnRCcm93c2VyVGFiQ29udGVudFZpZXcpCisgICAgICAgICAgICByZXR1cm4gdGFi
Q29udGVudFZpZXcuY29udGVudEJyb3dzZXI7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0K
KworICAgIGlmICh0aGlzLnNwbGl0Q29udGVudEJyb3dzZXIuZWxlbWVudC5pc1NlbGZPckFuY2Vz
dG9yKHRoaXMuY3VycmVudEZvY3VzRWxlbWVudCkgfHwgdGhpcy5xdWlja0NvbnNvbGUuZWxlbWVu
dC5pc1NlbGZPckFuY2VzdG9yKHRoaXMuY3VycmVudEZvY3VzRWxlbWVudCkpCisgICAgICAgIHJl
dHVybiB0aGlzLnNwbGl0Q29udGVudEJyb3dzZXI7CisKKyAgICByZXR1cm4gbnVsbDsKK307CisK
IFdlYkluc3BlY3Rvci5fZm9jdXNlZENvbnRlbnRWaWV3ID0gZnVuY3Rpb24oKQogewotICAgIGlm
ICh0aGlzLnRhYkJyb3dzZXIuZWxlbWVudC5pc1NlbGZPckFuY2VzdG9yKHRoaXMuY3VycmVudEZv
Y3VzRWxlbWVudCkpIHsKKyAgICBpZiAodGhpcy50YWJCcm93c2VyLmVsZW1lbnQuaXNTZWxmT3JB
bmNlc3Rvcih0aGlzLmN1cnJlbnRGb2N1c0VsZW1lbnQpIHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQgPT09IGRvY3VtZW50LmJvZHkpIHsKICAgICAgICAgdmFyIHRhYkNvbnRlbnRWaWV3ID0gdGhp
cy50YWJCcm93c2VyLnNlbGVjdGVkVGFiQ29udGVudFZpZXc7CiAgICAgICAgIGlmICh0YWJDb250
ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3NlclRhYkNvbnRlbnRW
aWV3KQogICAgICAgICAgICAgcmV0dXJuIHRhYkNvbnRlbnRWaWV3LmNvbnRlbnRCcm93c2VyLmN1
cnJlbnRDb250ZW50VmlldzsKICAgICAgICAgcmV0dXJuIHRhYkNvbnRlbnRWaWV3OwogICAgIH0K
LSAgICBpZiAodGhpcy5zcGxpdENvbnRlbnRCcm93c2VyLmVsZW1lbnQuaXNTZWxmT3JBbmNlc3Rv
cih0aGlzLmN1cnJlbnRGb2N1c0VsZW1lbnQpKQotICAgICAgICByZXR1cm4gIHRoaXMuc3BsaXRD
b250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7CisKKyAgICBpZiAodGhpcy5zcGxpdENv
bnRlbnRCcm93c2VyLmVsZW1lbnQuaXNTZWxmT3JBbmNlc3Rvcih0aGlzLmN1cnJlbnRGb2N1c0Vs
ZW1lbnQpIHx8IHRoaXMucXVpY2tDb25zb2xlLmVsZW1lbnQuaXNTZWxmT3JBbmNlc3Rvcih0aGlz
LmN1cnJlbnRGb2N1c0VsZW1lbnQpKQorICAgICAgICByZXR1cm4gdGhpcy5zcGxpdENvbnRlbnRC
cm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKKwogICAgIHJldHVybiBudWxsOwogfTsKIAorV2Vi
SW5zcGVjdG9yLl9mb2N1c2VkT3JWaXNpYmxlQ29udGVudEJyb3dzZXIgPSBmdW5jdGlvbigpCit7
CisgICAgbGV0IGZvY3VzZWRDb250ZW50QnJvd3NlciA9IHRoaXMuX2ZvY3VzZWRDb250ZW50QnJv
d3NlcigpOworICAgIGlmIChmb2N1c2VkQ29udGVudEJyb3dzZXIpCisgICAgICAgIHJldHVybiBm
b2N1c2VkQ29udGVudEJyb3dzZXI7CisKKyAgICB2YXIgdGFiQ29udGVudFZpZXcgPSB0aGlzLnRh
YkJyb3dzZXIuc2VsZWN0ZWRUYWJDb250ZW50VmlldzsKKyAgICBpZiAodGFiQ29udGVudFZpZXcg
aW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29udGVudEJyb3dzZXJUYWJDb250ZW50VmlldykKKyAg
ICAgICAgcmV0dXJuIHRhYkNvbnRlbnRWaWV3LmNvbnRlbnRCcm93c2VyOworCisgICAgcmV0dXJu
IG51bGw7Cit9OworCitXZWJJbnNwZWN0b3IuX2ZvY3VzZWRPclZpc2libGVDb250ZW50VmlldyA9
IGZ1bmN0aW9uKCkKK3sKKyAgICBsZXQgZm9jdXNlZENvbnRlbnRWaWV3ID0gdGhpcy5fZm9jdXNl
ZENvbnRlbnRWaWV3KCk7CisgICAgaWYgKGZvY3VzZWRDb250ZW50VmlldykKKyAgICAgICAgcmV0
dXJuIGZvY3VzZWRDb250ZW50VmlldzsKKworICAgIHZhciB0YWJDb250ZW50VmlldyA9IHRoaXMu
dGFiQnJvd3Nlci5zZWxlY3RlZFRhYkNvbnRlbnRWaWV3OworICAgIGlmICh0YWJDb250ZW50Vmll
dyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3KQor
ICAgICAgICByZXR1cm4gdGFiQ29udGVudFZpZXcuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRl
bnRWaWV3OworICAgIHJldHVybiB0YWJDb250ZW50VmlldzsKK307CisKIFdlYkluc3BlY3Rvci5f
YmVmb3JlY29weSA9IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIHZhciBzZWxlY3Rpb24gPSB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCk7CkBAIC0xNjk0LDYgKzE3NDYsMzMgQEAgV2ViSW5zcGVjdG9yLl9i
ZWZvcmVjb3B5ID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
IH07CiAKK1dlYkluc3BlY3Rvci5fZmluZCA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIHZhciBj
b250ZW50QnJvd3NlciA9IHRoaXMuX2ZvY3VzZWRPclZpc2libGVDb250ZW50QnJvd3NlcigpOwor
ICAgIGlmICghY29udGVudEJyb3dzZXIgfHwgdHlwZW9mIGNvbnRlbnRCcm93c2VyLmhhbmRsZUZp
bmRFdmVudCAhPT0gImZ1bmN0aW9uIikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGNvbnRl
bnRCcm93c2VyLmhhbmRsZUZpbmRFdmVudChldmVudCk7Cit9OworCitXZWJJbnNwZWN0b3IuX3Nh
dmUgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICB2YXIgY29udGVudFZpZXcgPSB0aGlzLl9mb2N1
c2VkT3JWaXNpYmxlQ29udGVudFZpZXcoKTsKKyAgICBpZiAoIWNvbnRlbnRWaWV3IHx8ICFjb250
ZW50Vmlldy5zdXBwb3J0c1NhdmUpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkluc3BlY3Rv
ci5zYXZlRGF0YVRvRmlsZShjb250ZW50Vmlldy5zYXZlRGF0YSk7Cit9OworCitXZWJJbnNwZWN0
b3IuX3NhdmVBcyA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIHZhciBjb250ZW50VmlldyA9IHRo
aXMuX2ZvY3VzZWRPclZpc2libGVDb250ZW50VmlldygpOworICAgIGlmICghY29udGVudFZpZXcg
fHwgIWNvbnRlbnRWaWV3LnN1cHBvcnRzU2F2ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2Vi
SW5zcGVjdG9yLnNhdmVEYXRhVG9GaWxlKGNvbnRlbnRWaWV3LnNhdmVEYXRhLCB0cnVlKTsKK307
CisKIFdlYkluc3BlY3Rvci5fY29weSA9IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIHZhciBzZWxl
Y3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9KYXZhU2NyaXB0TG9nVmlld0NvbnRy
b2xsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9KYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIuanMKaW5kZXggMzc4NDk2Ny4uMTgwOGZiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxl
ci5qcwpAQCAtNjEsOCArNjEsNiBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExvZ1ZpZXdDb250
cm9sbGVyID0gY2xhc3MgSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyIGV4dAogICAgICAgICB0
aGlzLl9wcm9tcHRGaW5kS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5k
T3JDb250cm9sLCAiRiIsIHRoaXMuX2hhbmRsZUZpbmRTaG9ydGN1dC5iaW5kKHRoaXMpLCB0aGlz
Ll9wcm9tcHQuZWxlbWVudCk7CiAgICAgICAgIHRoaXMuX3Byb21wdEZpbmROZXh0S2V5Ym9hcmRT
aG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0b3Iu
S2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sLCAiRyIsIHRoaXMuX2hh
bmRsZUZpbmROZXh0U2hvcnRjdXQuYmluZCh0aGlzKSwgdGhpcy5fcHJvbXB0LmVsZW1lbnQpOwog
ICAgICAgICB0aGlzLl9wcm9tcHRGaW5kUHJldmlvdXNLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wgfCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dC5Nb2RpZmllci5TaGlmdCwgIkciLCB0aGlzLl9oYW5kbGVGaW5kUHJldmlvdXNTaG9ydGN1dC5i
aW5kKHRoaXMpLCB0aGlzLl9wcm9tcHQuZWxlbWVudCk7Ci0gICAgICAgIHRoaXMuX3Byb21wdFNh
dmVLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wsICJT
IiwgdGhpcy5fc2F2ZS5iaW5kKHRoaXMpLCB0aGlzLl9wcm9tcHQuZWxlbWVudCk7Ci0gICAgICAg
IHRoaXMuX3Byb21wdFNhdmVBc0tleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuU2hp
ZnQgfCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250
cm9sLCAiUyIsIHRoaXMuX3NhdmVBcy5iaW5kKHRoaXMpLCB0aGlzLl9wcm9tcHQuZWxlbWVudCk7
CiAKICAgICAgICAgdGhpcy5zdGFydE5ld1Nlc3Npb24oKTsKICAgICB9CkBAIC0yNTgsMTYgKzI1
Niw2IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIgPSBjbGFzcyBK
YXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIgZXh0CiAgICAgICAgIHRoaXMuZGVsZWdhdGUuaGln
aGxpZ2h0UHJldmlvdXNTZWFyY2hNYXRjaCgpOwogICAgIH0KIAotICAgIF9zYXZlKCkKLSAgICB7
Ci0gICAgICAgIHRoaXMuZGVsZWdhdGUuc2F2ZSgpOwotICAgIH0KLQotICAgIF9zYXZlQXMoKQot
ICAgIHsKLSAgICAgICAgdGhpcy5kZWxlZ2F0ZS5zYXZlQXMoKTsKLSAgICB9Ci0KICAgICBfYXBw
ZW5kQ29uc29sZU1lc3NhZ2VWaWV3KG1lc3NhZ2VWaWV3LCByZXBlYXRDb3VudFdhc0ludGVycnVw
dGVkKQogICAgIHsKICAgICAgICAgdmFyIHdhc1Njcm9sbGVkVG9Cb3R0b20gPSB0aGlzLmlzU2Ny
b2xsZWRUb0JvdHRvbSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwppbmRleCBiODY0YjUzLi43N2Yy
NGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZW50QnJvd3Nlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwpAQCAtNDMsMTAgKzQzLDYgQEAgV2ViSW5zcGVj
dG9yLkNvbnRlbnRCcm93c2VyID0gY2xhc3MgQ29udGVudEJyb3dzZXIgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRmluZEJhbm5lci5FdmVudC5EaWRTaG93LCB0aGlzLl9maW5kQmFubmVyRGlk
U2hvdywgdGhpcyk7CiAgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRmluZEJhbm5lci5FdmVudC5EaWRIaWRlLCB0aGlzLl9maW5kQmFubmVyRGlk
SGlkZSwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5fZmluZEtleWJvYXJkU2hvcnRjdXQgPSBuZXcg
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRj
dXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIkYiLCB0aGlzLl9zaG93RmluZEJhbm5lci5i
aW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKLSAgICAgICAgdGhpcy5fc2F2ZUtleWJvYXJkU2hv
cnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIlMiLCB0aGlzLl9zYXZl
LmJpbmQodGhpcyksIHRoaXMuX2VsZW1lbnQpOwotICAgICAgICB0aGlzLl9zYXZlQXNLZXlib2Fy
ZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rv
ci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0IHwgV2ViSW5zcGVjdG9yLktleWJvYXJk
U2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIlMiLCB0aGlzLl9zYXZlQXMuYmlu
ZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7Ci0KICAgICAgICAgaWYgKCFkaXNhYmxlQmFja0Zvcndh
cmQpIHsKICAgICAgICAgICAgIHRoaXMuX2JhY2tLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYklu
c3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1v
ZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wgfCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5N
b2RpZmllci5Db250cm9sLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuTGVmdCwg
dGhpcy5fYmFja0J1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7CiAgICAg
ICAgICAgICB0aGlzLl9mb3J3YXJkS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3Iu
S2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5D
b21tYW5kT3JDb250cm9sIHwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIu
Q29udHJvbCwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5LlJpZ2h0LCB0aGlzLl9m
b3J3YXJkQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKQEAgLTIxMSw2
ICsyMDcsMTUgQEAgV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyID0gY2xhc3MgQ29udGVudEJy
b3dzZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIC8vIHNvIGl0IGRvZXMg
bm90IG5lZWQgdG8gYmUgY2FsbGVkIGhlcmUuCiAgICAgfQogCisgICAgaGFuZGxlRmluZEV2ZW50
KGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3Vy
cmVudENvbnRlbnRWaWV3OworICAgICAgICBpZiAoIWN1cnJlbnRDb250ZW50VmlldyB8fCAhY3Vy
cmVudENvbnRlbnRWaWV3LnN1cHBvcnRzU2VhcmNoKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIuc2hvdygpOworICAgIH0KKwogICAgIGZpbmRCYW5uZXJQ
ZXJmb3JtU2VhcmNoKGZpbmRCYW5uZXIsIHF1ZXJ5KQogICAgIHsKICAgICAgICAgdmFyIGN1cnJl
bnRDb250ZW50VmlldyA9IHRoaXMuY3VycmVudENvbnRlbnRWaWV3OwpAQCAtMjgyLDMzICsyODcs
NiBAQCBXZWJJbnNwZWN0b3IuQ29udGVudEJyb3dzZXIgPSBjbGFzcyBDb250ZW50QnJvd3NlciBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5nb0ZvcndhcmQoKTsKICAg
ICB9CiAKLSAgICBfc2F2ZShldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciBjdXJyZW50Q29udGVu
dFZpZXcgPSB0aGlzLmN1cnJlbnRDb250ZW50VmlldzsKLSAgICAgICAgaWYgKCFjdXJyZW50Q29u
dGVudFZpZXcgfHwgIWN1cnJlbnRDb250ZW50Vmlldy5zdXBwb3J0c1NhdmUpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLnNhdmVEYXRhVG9GaWxlKGN1cnJlbnRD
b250ZW50Vmlldy5zYXZlRGF0YSk7Ci0gICAgfQotCi0gICAgX3NhdmVBcyhldmVudCkKLSAgICB7
Ci0gICAgICAgIHZhciBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmN1cnJlbnRDb250ZW50Vmll
dzsKLSAgICAgICAgaWYgKCFjdXJyZW50Q29udGVudFZpZXcgfHwgIWN1cnJlbnRDb250ZW50Vmll
dy5zdXBwb3J0c1NhdmUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgV2ViSW5zcGVj
dG9yLnNhdmVEYXRhVG9GaWxlKGN1cnJlbnRDb250ZW50Vmlldy5zYXZlRGF0YSwgdHJ1ZSk7Ci0g
ICAgfQotCi0gICAgX3Nob3dGaW5kQmFubmVyKGV2ZW50KQotICAgIHsKLSAgICAgICAgdmFyIGN1
cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3VycmVudENvbnRlbnRWaWV3OwotICAgICAgICBpZiAo
IWN1cnJlbnRDb250ZW50VmlldyB8fCAhY3VycmVudENvbnRlbnRWaWV3LnN1cHBvcnRzU2VhcmNo
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIuc2hvdygp
OwotICAgIH0KLQogICAgIF9maW5kQmFubmVyRGlkU2hvdyhldmVudCkKICAgICB7CiAgICAgICAg
IHZhciBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmN1cnJlbnRDb250ZW50VmlldzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRl
bnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9n
Q29udGVudFZpZXcuanMKaW5kZXggODVkNjYzZC4uYWM0ZjA5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZp
ZXcuanMKQEAgLTE4MCw2ICsxODAsMTIgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0g
Y2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKIAogICAg
IGdldCBzdXBwb3J0c1NhdmUoKQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5pc1No
b3dpbmdTcGxpdENvbnNvbGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTIwNiwyOCArMjEyLDYgQEAgV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuQ29udGVudFYKICAgICAgICAgdGhpcy5fc2VhcmNoQmFyLmZvY3VzKCk7CiAgICAgfQogCi0g
ICAgc2F2ZSgpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmlzU2hvd2luZ1NwbGl0Q29uc29s
ZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5zYXZlRGF0
YVRvRmlsZSh0aGlzLnNhdmVEYXRhKTsKLSAgICB9Ci0KLSAgICBzYXZlQXMoKQotICAgIHsKLSAg
ICAgICAgaWYgKCF0aGlzLnZpc2libGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
aWYgKFdlYkluc3BlY3Rvci5pc1Nob3dpbmdTcGxpdENvbnNvbGUoKSkKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0ZpbGUodGhpcy5zYXZlRGF0
YSwgdHJ1ZSk7Ci0gICAgfQotCiAgICAgaGlnaGxpZ2h0UHJldmlvdXNTZWFyY2hNYXRjaCgpCiAg
ICAgewogICAgICAgICBpZiAoIXRoaXMuc2VhcmNoSW5Qcm9ncmVzcyB8fCBpc0VtcHR5T2JqZWN0
KHRoaXMuX3NlYXJjaE1hdGNoZXMpKQo=
</data>
<flag name="review"
          id="286477"
          type_id="1"
          status="-"
          setter="bburg"
    />
    <flag name="commit-queue"
          id="286478"
          type_id="3"
          status="-"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261342</attachid>
            <date>2015-09-16 17:40:31 -0700</date>
            <delta_ts>2015-09-17 12:29:53 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>find-2.patch</filename>
            <type>text/plain</type>
            <size>18764</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGM0OTU4YjQuLjhiYmNlNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE1LTA5LTE1ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTWFrZSBG
aW5kIC8gU2F2ZSBrZXlib2FyZCBzaG9ydGN1dHMgd29yayBiZXR0ZXIgZ2xvYmFsbHkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTE5OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgZmlu
ZC9zYXZlIGtleWJvYXJkIHNob3J0Y3V0cyByZXF1aXJlZCB0aGUgdXNlciBoYXZlIHRoZQorICAg
ICAgICBDb250ZW50VmlldyBpbiB0aGUgQ29udGVudEJyb3dzZXIgZm9jdXNlZC4gVGhhdCBtZWFu
cyBub3RoaW5nIHdvdWxkCisgICAgICAgIGhhcHBlbiBpZiB5b3UgY2xpY2tlZCAvIGZvY3VzZWQg
aW4gdGhlIFNpZGViYXJzLiBUaGlzIGNoYW5nZSBjb25zaWRlcnMKKyAgICAgICAgdGhlIGtleWJv
YXJkIHNob3J0Y3V0cyBnbG9iYWxseSwgbGlrZSBDb3B5LgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuY29udGVudExvYWRlZCk6
CisgICAgICAgIEFkZCBnbG9iYWwgZmluZCBhbmQgc2F2ZSBrZXlib2FyZCBzaG9ydGN1dHMuCisK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5fZm9jdXNDaGFuZ2VkKToKKyAgICAgICAgSXQgaXMgb2Z0
ZW4gdXNlZnVsIHRvIGhhdmUgdGhlIGN1cnJlbnRGb2N1c2VkRWxlbWVudCBrbm93IGlmIGl0IGlz
CisgICAgICAgIGluIGEgVGV4dEVkaXRvciBvciBvdGhlciBDb2RlTWlycm9yIGVkaXRvci4gV2hl
biBlZGl0YWJsZSB0aGUgPHRleHRhcmVhPgorICAgICAgICBpcyBzZWxlY3RlZCBhbmQgbm90IHVw
ZGF0aW5nIGZvY3VzZWQgZWxlbWVudC4gCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fZm9jdXNl
ZENvbnRlbnRCcm93c2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fZm9jdXNlZENvbnRlbnRW
aWV3KToKKyAgICAgICAgUHJvdmlkZSBoZWxwZXJzIGZvciBnZXR0aW5nIGEgZ29vZCBhcHByb3hp
bWF0aW9uIG9mIHRoZSBjdXJyZW50IGZvY3VzZWQKKyAgICAgICAgb3IgdmlzaWJsZSBjb250ZW50
IHZpZXcgdGhhdCB1c2VycyB3b3VsZCBleHBlY3QgdG8gYmUgaW50ZXJhY3Rpbmcgd2l0aC4KKyAg
ICAgICAgU2luY2UgdGhlIGZvY3VzIGV2ZW50IG1heSBub3QgZmlyZSB3aGVuIGNsaWNraW5nIGFy
b3VuZCB0byBlbGVtZW50cworICAgICAgICBsaWtlIHRoZSA8Ym9keT4uIFJhdGhlciB0aGFuIG1h
a2UgaXQgZXhwbGljaXRseSBmb2N1c2FibGUsIGNoZWNrIHRoZQorICAgICAgICBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LCBhbmQgaWYgaXQgaXMgYm9keSBhaW0gZm9yIHRoZSBtYWluIGNvbnRlbnQK
KyAgICAgICAgYnJvd3NlciBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50Rm9jdXNlZEVsZW1lbnQgd2hp
Y2ggbWF5IGJlIHN0YWxlLgorICAgICAgICBMaWtld2lzZSwgaWYgdGhlIFF1aWNrQ29uc29sZSBp
cyBmb2N1c2VkIGFuZCB0aGUgc3BsaXQgY29uc29sZSBpcworICAgICAgICBzaG93aW5nLCB0cmVh
dCBpdCBsaWtlIHRoZSBzcGxpdCBicm93c2VyIGlzIGZvY3VzZWQuCisKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5fZm9jdXNlZE9yVmlzaWJsZUNvbnRlbnRCcm93c2VyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5fZm9jdXNlZE9yVmlzaWJsZUNvbnRlbnRWaWV3KToKKyAgICAgICAgSWYgbm90aGlu
ZyBpcyBmb2N1c2VkLCBkZWZhdWx0IHRvIHRoZSBtYWluIGNvbnRlbnQgYnJvd3Nlci4KKworICAg
ICAgICAoV2ViSW5zcGVjdG9yLl9maW5kKToKKyAgICAgICAgUGFzcyBvbiB0byB0aGUgQ29udGVu
dFZpZXcgd2hpY2ggdHlwaWNhbGx5IGhhbmRsZXMgRmluZAorICAgICAgICBieSBzaG93aW5nIGl0
cyBmaW5kIGJhbm5lci4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLl9zYXZlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5fc2F2ZUFzKToKKyAgICAgICAgQ2hlY2sgYW5kIHNhdmUgdGhlIGN1cnJl
bnQgQ29udGVudFZpZXcgaWYgc3VwcG9ydGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9Mb2dDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50
Vmlldy5wcm90b3R5cGUuZ2V0IHN1cHBvcnRzU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlRmluZEV2ZW50KToKKyAgICAgICAgQWRk
IGN1c3RvbSBmaW5kIGhhbmRsaW5nIGZvciBMb2dDb250ZW50VmlldyBmcm9tIHRoZSByb3V0ZWQg
dGhyb3VnaCB0aGUKKyAgICAgICAgQnJvd3NlckNvbnRyb2xsZXIgaW5zdGVhZCBvZiBzcGVjaWFs
IGV2ZW50IGhhbmRsZXJzIGluIHRoZSBjb250cm9sbGVyLgorCisgICAgICAgIChXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBzdXBwb3J0c1NhdmUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5zYXZlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuc2F2ZUFzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRMb2dW
aWV3Q29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0TG9nVmll
d0NvbnRyb2xsZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRM
b2dWaWV3Q29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZUZpbmRTaG9ydGN1dCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyLnByb3Rv
dHlwZS5fc2F2ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExv
Z1ZpZXdDb250cm9sbGVyLnByb3RvdHlwZS5fc2F2ZUFzKTogRGVsZXRlZC4KKyAgICAgICAgU3Bl
Y2lhbCBzYXZlIGhhbmRsaW5nIGlzIG5vIGxvbmdlciBuZWVkZWQgaW4gdGhlIGxvZyB2aWV3IGNv
bnRyb2xsZXIuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2Vy
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5oYW5k
bGVGaW5kRXZlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuX3Nh
dmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyLnByb3Rv
dHlwZS5fc2F2ZUFzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50QnJv
d3Nlci5wcm90b3R5cGUuX3Nob3dGaW5kQmFubmVyKTogRGVsZXRlZC4KKyAgICAgICAgU2F2ZSBm
dW5jdGlvbmFsaXR5IG1vdmVkIGdsb2JhbGx5LCBmaW5kIGZ1bmN0aW9uYWxpdHkgbW92ZWQgdG8g
YQorICAgICAgICBwdWJsaWMgbWV0aG9kIGNhbGxlZCBsaWtlIGNvcHkgZXZlbnQgaGFuZGxpbmcu
CisKIDIwMTUtMDktMTYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaXggY29tbW9uIHR5cG8gInN1cHJlc3MiID0+ICJzdXBw
cmVzcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFp
bi5qcwppbmRleCBjOGM0ZmQ5Li5kMjVmYzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC0yMzgsNiArMjM4LDkgQEAgV2ViSW5z
cGVjdG9yLmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5kZXRhaWxzU2lkZWJh
ci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TaWRlYmFyLkV2ZW50LldpZHRoRGlkQ2hh
bmdlLCB0aGlzLl9zaWRlYmFyV2lkdGhEaWRDaGFuZ2UsIHRoaXMpOwogCiAgICAgdGhpcy5zZWFy
Y2hLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wgfCBX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5TaGlmdCwgIkYiLCB0aGlzLl9m
b2N1c1NlYXJjaEZpZWxkLmJpbmQodGhpcykpOworICAgIHRoaXMuX2ZpbmRLZXlib2FyZFNob3J0
Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wsICJGIiwgdGhpcy5fZmluZC5i
aW5kKHRoaXMpKTsKKyAgICB0aGlzLl9zYXZlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2Rp
Zmllci5Db21tYW5kT3JDb250cm9sLCAiUyIsIHRoaXMuX3NhdmUuYmluZCh0aGlzKSk7CisgICAg
dGhpcy5fc2F2ZUFzS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5TaGlmdCB8IFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wsICJT
IiwgdGhpcy5fc2F2ZUFzLmJpbmQodGhpcykpOwogCiAgICAgdGhpcy5uYXZpZ2F0aW9uU2lkZWJh
cktleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQoV2Vi
SW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIjAi
LCB0aGlzLnRvZ2dsZU5hdmlnYXRpb25TaWRlYmFyLmJpbmQodGhpcykpOwogICAgIHRoaXMuZGV0
YWlsc1NpZGViYXJLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNo
b3J0Y3V0KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNv
bnRyb2wgfCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5PcHRpb24sICIw
IiwgdGhpcy50b2dnbGVEZXRhaWxzU2lkZWJhci5iaW5kKHRoaXMpKTsKQEAgLTExMDksOCArMTEx
MiwxNSBAQCBXZWJJbnNwZWN0b3IuX2ZvY3VzQ2hhbmdlZCA9IGZ1bmN0aW9uKGV2ZW50KQogICAg
IC8vIGEgY2FyZXQgc2VsZWN0aW9uIGluc2lkZS4gVGhpcyBpcyBuZWVkZWQgKGF0IGxlYXN0KSB0
byByZW1vdmUgY2FyZXQgZnJvbSBjb25zb2xlIHdoZW4gZm9jdXMgaXMgbW92ZWQuCiAgICAgLy8g
VGhlIHNlbGVjdGlvbiBjaGFuZ2Ugc2hvdWxkIG5vdCBhcHBseSB0byB0ZXh0IGZpZWxkcyBhbmQg
dGV4dCBhcmVhcyBlaXRoZXIuCiAKLSAgICBpZiAoV2ViSW5zcGVjdG9yLmlzRXZlbnRUYXJnZXRB
bkVkaXRhYmxlRmllbGQoZXZlbnQpKQorICAgIGlmIChXZWJJbnNwZWN0b3IuaXNFdmVudFRhcmdl
dEFuRWRpdGFibGVGaWVsZChldmVudCkpIHsKKyAgICAgICAgLy8gU3RpbGwgdXBkYXRlIHRoZSBj
dXJyZW50Rm9jdXNFbGVtZW50IGlmIGluc2lkZSBvZiBhIENvZGVNaXJyb3IgZWRpdG9yLgorICAg
ICAgICB2YXIgY29kZU1pcnJvckVkaXRvckVsZW1lbnQgPSBldmVudC50YXJnZXQuZW5jbG9zaW5n
Tm9kZU9yU2VsZldpdGhDbGFzcygiQ29kZU1pcnJvciIpOworICAgICAgICBpZiAoY29kZU1pcnJv
ckVkaXRvckVsZW1lbnQgJiYgY29kZU1pcnJvckVkaXRvckVsZW1lbnQgIT09IHRoaXMuY3VycmVu
dEZvY3VzRWxlbWVudCkgeworICAgICAgICAgICAgdGhpcy5wcmV2aW91c0ZvY3VzRWxlbWVudCA9
IHRoaXMuY3VycmVudEZvY3VzRWxlbWVudDsKKyAgICAgICAgICAgIHRoaXMuY3VycmVudEZvY3Vz
RWxlbWVudCA9IGNvZGVNaXJyb3JFZGl0b3JFbGVtZW50OworICAgICAgICB9CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigp
OwogICAgIGlmICghc2VsZWN0aW9uLmlzQ29sbGFwc2VkKQpAQCAtMTY1NiwxOSArMTY2Niw2MyBA
QCBXZWJJbnNwZWN0b3IuX2ZvY3VzQ29uc29sZVByb21wdCA9IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHRoaXMucXVpY2tDb25zb2xlLnByb21wdC5mb2N1cygpOwogfTsKIAorV2ViSW5zcGVjdG9yLl9m
b2N1c2VkQ29udGVudEJyb3dzZXIgPSBmdW5jdGlvbigpCit7CisgICAgaWYgKHRoaXMudGFiQnJv
d3Nlci5lbGVtZW50LmlzU2VsZk9yQW5jZXN0b3IodGhpcy5jdXJyZW50Rm9jdXNFbGVtZW50KSB8
fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5KSB7CisgICAgICAgIHZh
ciB0YWJDb250ZW50VmlldyA9IHRoaXMudGFiQnJvd3Nlci5zZWxlY3RlZFRhYkNvbnRlbnRWaWV3
OworICAgICAgICBpZiAodGFiQ29udGVudFZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29u
dGVudEJyb3dzZXJUYWJDb250ZW50VmlldykKKyAgICAgICAgICAgIHJldHVybiB0YWJDb250ZW50
Vmlldy5jb250ZW50QnJvd3NlcjsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAg
aWYgKHRoaXMuc3BsaXRDb250ZW50QnJvd3Nlci5lbGVtZW50LmlzU2VsZk9yQW5jZXN0b3IodGhp
cy5jdXJyZW50Rm9jdXNFbGVtZW50KQorICAgICAgICB8fCAoV2ViSW5zcGVjdG9yLmlzU2hvd2lu
Z1NwbGl0Q29uc29sZSgpICYmIHRoaXMucXVpY2tDb25zb2xlLmVsZW1lbnQuaXNTZWxmT3JBbmNl
c3Rvcih0aGlzLmN1cnJlbnRGb2N1c0VsZW1lbnQpKSkKKyAgICAgICAgcmV0dXJuIHRoaXMuc3Bs
aXRDb250ZW50QnJvd3NlcjsKKworICAgIHJldHVybiBudWxsOworfTsKKwogV2ViSW5zcGVjdG9y
Ll9mb2N1c2VkQ29udGVudFZpZXcgPSBmdW5jdGlvbigpCiB7Ci0gICAgaWYgKHRoaXMudGFiQnJv
d3Nlci5lbGVtZW50LmlzU2VsZk9yQW5jZXN0b3IodGhpcy5jdXJyZW50Rm9jdXNFbGVtZW50KSkg
eworICAgIGlmICh0aGlzLnRhYkJyb3dzZXIuZWxlbWVudC5pc1NlbGZPckFuY2VzdG9yKHRoaXMu
Y3VycmVudEZvY3VzRWxlbWVudCkgfHwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZG9jdW1l
bnQuYm9keSkgewogICAgICAgICB2YXIgdGFiQ29udGVudFZpZXcgPSB0aGlzLnRhYkJyb3dzZXIu
c2VsZWN0ZWRUYWJDb250ZW50VmlldzsKICAgICAgICAgaWYgKHRhYkNvbnRlbnRWaWV3IGluc3Rh
bmNlb2YgV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyVGFiQ29udGVudFZpZXcpCiAgICAgICAg
ICAgICByZXR1cm4gdGFiQ29udGVudFZpZXcuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRW
aWV3OwogICAgICAgICByZXR1cm4gdGFiQ29udGVudFZpZXc7CiAgICAgfQotICAgIGlmICh0aGlz
LnNwbGl0Q29udGVudEJyb3dzZXIuZWxlbWVudC5pc1NlbGZPckFuY2VzdG9yKHRoaXMuY3VycmVu
dEZvY3VzRWxlbWVudCkpCi0gICAgICAgIHJldHVybiAgdGhpcy5zcGxpdENvbnRlbnRCcm93c2Vy
LmN1cnJlbnRDb250ZW50VmlldzsKKworICAgIGlmICh0aGlzLnNwbGl0Q29udGVudEJyb3dzZXIu
ZWxlbWVudC5pc1NlbGZPckFuY2VzdG9yKHRoaXMuY3VycmVudEZvY3VzRWxlbWVudCkKKyAgICAg
ICAgfHwgKFdlYkluc3BlY3Rvci5pc1Nob3dpbmdTcGxpdENvbnNvbGUoKSAmJiB0aGlzLnF1aWNr
Q29uc29sZS5lbGVtZW50LmlzU2VsZk9yQW5jZXN0b3IodGhpcy5jdXJyZW50Rm9jdXNFbGVtZW50
KSkpCisgICAgICAgIHJldHVybiB0aGlzLnNwbGl0Q29udGVudEJyb3dzZXIuY3VycmVudENvbnRl
bnRWaWV3OworCiAgICAgcmV0dXJuIG51bGw7CiB9OwogCitXZWJJbnNwZWN0b3IuX2ZvY3VzZWRP
clZpc2libGVDb250ZW50QnJvd3NlciA9IGZ1bmN0aW9uKCkKK3sKKyAgICBsZXQgZm9jdXNlZENv
bnRlbnRCcm93c2VyID0gdGhpcy5fZm9jdXNlZENvbnRlbnRCcm93c2VyKCk7CisgICAgaWYgKGZv
Y3VzZWRDb250ZW50QnJvd3NlcikKKyAgICAgICAgcmV0dXJuIGZvY3VzZWRDb250ZW50QnJvd3Nl
cjsKKworICAgIHZhciB0YWJDb250ZW50VmlldyA9IHRoaXMudGFiQnJvd3Nlci5zZWxlY3RlZFRh
YkNvbnRlbnRWaWV3OworICAgIGlmICh0YWJDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3KQorICAgICAgICByZXR1cm4gdGFiQ29u
dGVudFZpZXcuY29udGVudEJyb3dzZXI7CisKKyAgICByZXR1cm4gbnVsbDsKK307CisKK1dlYklu
c3BlY3Rvci5fZm9jdXNlZE9yVmlzaWJsZUNvbnRlbnRWaWV3ID0gZnVuY3Rpb24oKQoreworICAg
IGxldCBmb2N1c2VkQ29udGVudFZpZXcgPSB0aGlzLl9mb2N1c2VkQ29udGVudFZpZXcoKTsKKyAg
ICBpZiAoZm9jdXNlZENvbnRlbnRWaWV3KQorICAgICAgICByZXR1cm4gZm9jdXNlZENvbnRlbnRW
aWV3OworCisgICAgdmFyIHRhYkNvbnRlbnRWaWV3ID0gdGhpcy50YWJCcm93c2VyLnNlbGVjdGVk
VGFiQ29udGVudFZpZXc7CisgICAgaWYgKHRhYkNvbnRlbnRWaWV3IGluc3RhbmNlb2YgV2ViSW5z
cGVjdG9yLkNvbnRlbnRCcm93c2VyVGFiQ29udGVudFZpZXcpCisgICAgICAgIHJldHVybiB0YWJD
b250ZW50Vmlldy5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7CisgICAgcmV0dXJu
IHRhYkNvbnRlbnRWaWV3OworfTsKKwogV2ViSW5zcGVjdG9yLl9iZWZvcmVjb3B5ID0gZnVuY3Rp
b24oZXZlbnQpCiB7CiAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsK
QEAgLTE2OTgsNiArMTc1MiwzMyBAQCBXZWJJbnNwZWN0b3IuX2JlZm9yZWNvcHkgPSBmdW5jdGlv
bihldmVudCkKICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfTsKIAorV2ViSW5zcGVjdG9y
Ll9maW5kID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgdmFyIGNvbnRlbnRCcm93c2VyID0gdGhp
cy5fZm9jdXNlZE9yVmlzaWJsZUNvbnRlbnRCcm93c2VyKCk7CisgICAgaWYgKCFjb250ZW50QnJv
d3NlciB8fCB0eXBlb2YgY29udGVudEJyb3dzZXIuaGFuZGxlRmluZEV2ZW50ICE9PSAiZnVuY3Rp
b24iKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgY29udGVudEJyb3dzZXIuaGFuZGxlRmlu
ZEV2ZW50KGV2ZW50KTsKK307CisKK1dlYkluc3BlY3Rvci5fc2F2ZSA9IGZ1bmN0aW9uKGV2ZW50
KQoreworICAgIHZhciBjb250ZW50VmlldyA9IHRoaXMuX2ZvY3VzZWRPclZpc2libGVDb250ZW50
VmlldygpOworICAgIGlmICghY29udGVudFZpZXcgfHwgIWNvbnRlbnRWaWV3LnN1cHBvcnRzU2F2
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViSW5zcGVjdG9yLnNhdmVEYXRhVG9GaWxlKGNv
bnRlbnRWaWV3LnNhdmVEYXRhKTsKK307CisKK1dlYkluc3BlY3Rvci5fc2F2ZUFzID0gZnVuY3Rp
b24oZXZlbnQpCit7CisgICAgdmFyIGNvbnRlbnRWaWV3ID0gdGhpcy5fZm9jdXNlZE9yVmlzaWJs
ZUNvbnRlbnRWaWV3KCk7CisgICAgaWYgKCFjb250ZW50VmlldyB8fCAhY29udGVudFZpZXcuc3Vw
cG9ydHNTYXZlKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFU
b0ZpbGUoY29udGVudFZpZXcuc2F2ZURhdGEsIHRydWUpOworfTsKKwogV2ViSW5zcGVjdG9yLl9j
b3B5ID0gZnVuY3Rpb24oZXZlbnQpCiB7CiAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlci5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRMb2dWaWV3
Q29udHJvbGxlci5qcwppbmRleCAzNzg0OTY3Li5iZmJlODdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9KYXZhU2NyaXB0TG9nVmll
d0NvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyLmpzCkBAIC01MywxNiArNTMs
MTIgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlciA9IGNsYXNzIEph
dmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlciBleHQKICAgICAgICAgdGhpcy5tZXNzYWdlc0NsZWFy
S2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sLCAiSyIs
IHRoaXMuX2hhbmRsZUNsZWFyU2hvcnRjdXQuYmluZCh0aGlzKSk7CiAgICAgICAgIHRoaXMubWVz
c2FnZXNBbHRlcm5hdGVDbGVhcktleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29u
dHJvbCwgIkwiLCB0aGlzLl9oYW5kbGVDbGVhclNob3J0Y3V0LmJpbmQodGhpcyksIHRoaXMuX2Vs
ZW1lbnQpOwogCi0gICAgICAgIHRoaXMuX21lc3NhZ2VzRmluZEtleWJvYXJkU2hvcnRjdXQgPSBu
ZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hv
cnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIkYiLCB0aGlzLl9oYW5kbGVGaW5kU2hv
cnRjdXQuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7CiAgICAgICAgIHRoaXMuX21lc3NhZ2Vz
RmluZE5leHRLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0
Y3V0KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRy
b2wsICJHIiwgdGhpcy5faGFuZGxlRmluZE5leHRTaG9ydGN1dC5iaW5kKHRoaXMpLCB0aGlzLl9l
bGVtZW50KTsKICAgICAgICAgdGhpcy5fbWVzc2FnZXNGaW5kUHJldmlvdXNLZXlib2FyZFNob3J0
Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wgfCBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5TaGlmdCwgIkciLCB0aGlzLl9oYW5kbGVGaW5kUHJldmlv
dXNTaG9ydGN1dC5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKIAogICAgICAgICB0aGlzLl9w
cm9tcHRBbHRlcm5hdGVDbGVhcktleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29u
dHJvbCwgIkwiLCB0aGlzLl9oYW5kbGVDbGVhclNob3J0Y3V0LmJpbmQodGhpcyksIHRoaXMuX3By
b21wdC5lbGVtZW50KTsKLSAgICAgICAgdGhpcy5fcHJvbXB0RmluZEtleWJvYXJkU2hvcnRjdXQg
PSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJk
U2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIkYiLCB0aGlzLl9oYW5kbGVGaW5k
U2hvcnRjdXQuYmluZCh0aGlzKSwgdGhpcy5fcHJvbXB0LmVsZW1lbnQpOwogICAgICAgICB0aGlz
Ll9wcm9tcHRGaW5kTmV4dEtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJv
YXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFu
ZE9yQ29udHJvbCwgIkciLCB0aGlzLl9oYW5kbGVGaW5kTmV4dFNob3J0Y3V0LmJpbmQodGhpcyks
IHRoaXMuX3Byb21wdC5lbGVtZW50KTsKICAgICAgICAgdGhpcy5fcHJvbXB0RmluZFByZXZpb3Vz
S2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sIHwgV2Vi
SW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuU2hpZnQsICJHIiwgdGhpcy5faGFu
ZGxlRmluZFByZXZpb3VzU2hvcnRjdXQuYmluZCh0aGlzKSwgdGhpcy5fcHJvbXB0LmVsZW1lbnQp
OwotICAgICAgICB0aGlzLl9wcm9tcHRTYXZlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2Rp
Zmllci5Db21tYW5kT3JDb250cm9sLCAiUyIsIHRoaXMuX3NhdmUuYmluZCh0aGlzKSwgdGhpcy5f
cHJvbXB0LmVsZW1lbnQpOwotICAgICAgICB0aGlzLl9wcm9tcHRTYXZlQXNLZXlib2FyZFNob3J0
Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0IHwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRj
dXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIlMiLCB0aGlzLl9zYXZlQXMuYmluZCh0aGlz
KSwgdGhpcy5fcHJvbXB0LmVsZW1lbnQpOwogCiAgICAgICAgIHRoaXMuc3RhcnROZXdTZXNzaW9u
KCk7CiAgICAgfQpAQCAtMjQzLDExICsyMzksNiBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExv
Z1ZpZXdDb250cm9sbGVyID0gY2xhc3MgSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyIGV4dAog
ICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5yZXF1ZXN0Q2xlYXJNZXNzYWdlcygpOwog
ICAgIH0KIAotICAgIF9oYW5kbGVGaW5kU2hvcnRjdXQoKQotICAgIHsKLSAgICAgICAgdGhpcy5k
ZWxlZ2F0ZS5mb2N1c1NlYXJjaEJhcigpOwotICAgIH0KLQogICAgIF9oYW5kbGVGaW5kTmV4dFNo
b3J0Y3V0KCkKICAgICB7CiAgICAgICAgIHRoaXMuZGVsZWdhdGUuaGlnaGxpZ2h0TmV4dFNlYXJj
aE1hdGNoKCk7CkBAIC0yNTgsMTYgKzI0OSw2IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0TG9n
Vmlld0NvbnRyb2xsZXIgPSBjbGFzcyBKYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIgZXh0CiAg
ICAgICAgIHRoaXMuZGVsZWdhdGUuaGlnaGxpZ2h0UHJldmlvdXNTZWFyY2hNYXRjaCgpOwogICAg
IH0KIAotICAgIF9zYXZlKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZGVsZWdhdGUuc2F2ZSgpOwot
ICAgIH0KLQotICAgIF9zYXZlQXMoKQotICAgIHsKLSAgICAgICAgdGhpcy5kZWxlZ2F0ZS5zYXZl
QXMoKTsKLSAgICB9Ci0KICAgICBfYXBwZW5kQ29uc29sZU1lc3NhZ2VWaWV3KG1lc3NhZ2VWaWV3
LCByZXBlYXRDb3VudFdhc0ludGVycnVwdGVkKQogICAgIHsKICAgICAgICAgdmFyIHdhc1Njcm9s
bGVkVG9Cb3R0b20gPSB0aGlzLmlzU2Nyb2xsZWRUb0JvdHRvbSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nl
ci5qcwppbmRleCBiODY0YjUzLi40MTljNjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwpAQCAt
NDMsMTAgKzQzLDYgQEAgV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyID0gY2xhc3MgQ29udGVu
dEJyb3dzZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX2ZpbmRC
YW5uZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5FdmVudC5EaWRT
aG93LCB0aGlzLl9maW5kQmFubmVyRGlkU2hvdywgdGhpcyk7CiAgICAgICAgIHRoaXMuX2ZpbmRC
YW5uZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5FdmVudC5EaWRI
aWRlLCB0aGlzLl9maW5kQmFubmVyRGlkSGlkZSwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5fZmlu
ZEtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQoV2Vi
SW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIkYi
LCB0aGlzLl9zaG93RmluZEJhbm5lci5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKLSAgICAg
ICAgdGhpcy5fc2F2ZUtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJk
U2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9y
Q29udHJvbCwgIlMiLCB0aGlzLl9zYXZlLmJpbmQodGhpcyksIHRoaXMuX2VsZW1lbnQpOwotICAg
ICAgICB0aGlzLl9zYXZlQXNLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0
IHwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJv
bCwgIlMiLCB0aGlzLl9zYXZlQXMuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7Ci0KICAgICAg
ICAgaWYgKCFkaXNhYmxlQmFja0ZvcndhcmQpIHsKICAgICAgICAgICAgIHRoaXMuX2JhY2tLZXli
b2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdlYkluc3Bl
Y3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wgfCBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db250cm9sLCBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5LZXkuTGVmdCwgdGhpcy5fYmFja0J1dHRvbkNsaWNrZWQuYmluZCh0aGlz
KSwgdGhpcy5fZWxlbWVudCk7CiAgICAgICAgICAgICB0aGlzLl9mb3J3YXJkS2V5Ym9hcmRTaG9y
dGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sIHwgV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29udHJvbCwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hv
cnRjdXQuS2V5LlJpZ2h0LCB0aGlzLl9mb3J3YXJkQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCB0
aGlzLl9lbGVtZW50KTsKQEAgLTIxMSw2ICsyMDcsMjEgQEAgV2ViSW5zcGVjdG9yLkNvbnRlbnRC
cm93c2VyID0gY2xhc3MgQ29udGVudEJyb3dzZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0
CiAgICAgICAgIC8vIHNvIGl0IGRvZXMgbm90IG5lZWQgdG8gYmUgY2FsbGVkIGhlcmUuCiAgICAg
fQogCisgICAgaGFuZGxlRmluZEV2ZW50KGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIGN1cnJl
bnRDb250ZW50VmlldyA9IHRoaXMuY3VycmVudENvbnRlbnRWaWV3OworICAgICAgICBpZiAoIWN1
cnJlbnRDb250ZW50VmlldyB8fCAhY3VycmVudENvbnRlbnRWaWV3LnN1cHBvcnRzU2VhcmNoKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIExvZ0NvbnRlbnRWaWV3IGhhcyBjdXN0
b20gc2VhcmNoIGhhbmRsaW5nLgorICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRDb250ZW50Vmll
dy5oYW5kbGVGaW5kRXZlbnQgPT09ICJmdW5jdGlvbiIpIHsKKyAgICAgICAgICAgIGN1cnJlbnRD
b250ZW50Vmlldy5oYW5kbGVGaW5kRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fZmluZEJhbm5lci5zaG93KCk7CisgICAgfQorCiAg
ICAgZmluZEJhbm5lclBlcmZvcm1TZWFyY2goZmluZEJhbm5lciwgcXVlcnkpCiAgICAgewogICAg
ICAgICB2YXIgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jdXJyZW50Q29udGVudFZpZXc7CkBA
IC0yODIsMzMgKzI5Myw2IEBAIFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3NlciA9IGNsYXNzIENv
bnRlbnRCcm93c2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICB0aGlzLmdv
Rm9yd2FyZCgpOwogICAgIH0KIAotICAgIF9zYXZlKGV2ZW50KQotICAgIHsKLSAgICAgICAgdmFy
IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3VycmVudENvbnRlbnRWaWV3OwotICAgICAgICBp
ZiAoIWN1cnJlbnRDb250ZW50VmlldyB8fCAhY3VycmVudENvbnRlbnRWaWV3LnN1cHBvcnRzU2F2
ZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFU
b0ZpbGUoY3VycmVudENvbnRlbnRWaWV3LnNhdmVEYXRhKTsKLSAgICB9Ci0KLSAgICBfc2F2ZUFz
KGV2ZW50KQotICAgIHsKLSAgICAgICAgdmFyIGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3Vy
cmVudENvbnRlbnRWaWV3OwotICAgICAgICBpZiAoIWN1cnJlbnRDb250ZW50VmlldyB8fCAhY3Vy
cmVudENvbnRlbnRWaWV3LnN1cHBvcnRzU2F2ZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0ZpbGUoY3VycmVudENvbnRlbnRWaWV3LnNhdmVE
YXRhLCB0cnVlKTsKLSAgICB9Ci0KLSAgICBfc2hvd0ZpbmRCYW5uZXIoZXZlbnQpCi0gICAgewot
ICAgICAgICB2YXIgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jdXJyZW50Q29udGVudFZpZXc7
Ci0gICAgICAgIGlmICghY3VycmVudENvbnRlbnRWaWV3IHx8ICFjdXJyZW50Q29udGVudFZpZXcu
c3VwcG9ydHNTZWFyY2gpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fZmlu
ZEJhbm5lci5zaG93KCk7Ci0gICAgfQotCiAgICAgX2ZpbmRCYW5uZXJEaWRTaG93KGV2ZW50KQog
ICAgIHsKICAgICAgICAgdmFyIGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3VycmVudENvbnRl
bnRWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwppbmRleCA4NWQ2NjNkLi4yMTg4NmMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Mb2dDb250ZW50Vmlldy5qcwpAQCAtMTc4LDggKzE3OCwyNyBAQCBXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5D
b250ZW50VgogICAgICAgICBXZWJJbnNwZWN0b3IucXVpY2tDb25zb2xlLnVwZGF0ZUxheW91dCgp
OwogICAgIH0KIAorICAgIGdldCBzdXBwb3J0c1NlYXJjaCgpCisgICAgeworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBoYW5kbGVGaW5kRXZlbnQoZXZlbnQpCisgICAgeworICAg
ICAgICBpZiAoIXRoaXMudmlzaWJsZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0
aGlzLl9zZWFyY2hCYXIuZm9jdXMoKTsKKyAgICB9CisKICAgICBnZXQgc3VwcG9ydHNTYXZlKCkK
ICAgICB7CisgICAgICAgIGlmICghdGhpcy52aXNpYmxlKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuaXNTaG93aW5nU3BsaXRDb25zb2xlKCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCkBAIC0xOTgsMzYgKzIxNyw2IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNs
YXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAg
IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfQogCi0gICAgZm9jdXNTZWFyY2hCYXIoKQot
ICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgdGhpcy5fc2VhcmNoQmFyLmZvY3VzKCk7Ci0gICAgfQotCi0gICAgc2F2ZSgpCi0g
ICAgewotICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmlzU2hvd2luZ1NwbGl0Q29uc29sZSgpKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5zYXZlRGF0YVRvRmlsZSh0aGlz
LnNhdmVEYXRhKTsKLSAgICB9Ci0KLSAgICBzYXZlQXMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0
aGlzLnZpc2libGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKFdlYkluc3Bl
Y3Rvci5pc1Nob3dpbmdTcGxpdENvbnNvbGUoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0ZpbGUodGhpcy5zYXZlRGF0YSwgdHJ1ZSk7Ci0g
ICAgfQotCiAgICAgaGlnaGxpZ2h0UHJldmlvdXNTZWFyY2hNYXRjaCgpCiAgICAgewogICAgICAg
ICBpZiAoIXRoaXMuc2VhcmNoSW5Qcm9ncmVzcyB8fCBpc0VtcHR5T2JqZWN0KHRoaXMuX3NlYXJj
aE1hdGNoZXMpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>