<?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>135965</bug_id>
          
          <creation_ts>2014-08-14 18:07:03 -0700</creation_ts>
          <short_desc>Web Inspector: Inspector frequently restores wrong view when opened (often Timelines instead of Resource)</short_desc>
          <delta_ts>2014-09-08 17:09:28 -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>528+ (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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1029278</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-08-14 18:07:03 -0700</bug_when>
    <thetext>* SUMMARY
Inspector frequently restores wrong view when opened (often Timelines instead of Resources / DOM Tree)

* STEPS TO REPRODUCE
1. Inspect bogojoker.com
2. Select Timelines sidebar
3. Select Network timeline
4. Close Inspector
5. Develop &gt; Show Web Inspector (inspector opens to Timelines View, good)
6. Select Resources sidebar
7. Select an Image resource in the sidebar
8. Close Inspector
9. Develop &gt; Show Web Inspector
  =&gt; Inspector opens to Timelines view instead of the images view in Resources sidebar

* NOTES
- Inspector listens for window &quot;pagehide&quot; events to save the state of the last view you had open. Unfortunately this does not get called until you re-open the inspector. This is way late and we re-ran a restore of the previous, wrong state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029279</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-08-14 18:07:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/18026767&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029280</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-08-14 18:09:28 -0700</bug_when>
    <thetext>So, we could investigate why pagehide doesn&apos;t happen at the right time. But we could also investigate a workaround. For example, always update our cookie whenever the ContentView changes or navigation sidebar changes, instead of relying on pagehide. That kind of stinks, but at least it should fix this issue in common cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029281</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-08-14 18:23:05 -0700</bug_when>
    <thetext>A workaround still doesn&apos;t seem like enough. There is another actual bug here.

It looks like _loadNewRecording is triggering the Timelines panel to be the selected panel:

&gt;    Resources/Views/Sidebar.js:143:20: CONSOLE LOG setting timeline
&gt;    Resources/Views/Sidebar.js:144:22: CONSOLE TRACE
&gt;    0: selectedSidebarPanel(Resources/Views/Sidebar.js:144:22)
&gt;    1: _contentBrowserCurrentContentViewDidChange(Resources/Base/Main.js:1096:31)
&gt;    2: dispatch(Resources/Base/Object.js:141:55)
&gt;    3: dispatchEventToListeners(Resources/Base/Object.js:148:17)
&gt;    4: _currentContentViewDidChange(Resources/Views/ContentBrowser.js:509:38)
&gt;    5: dispatch(Resources/Base/Object.js:141:55)
&gt;    6: dispatchEventToListeners(Resources/Base/Object.js:148:17)
&gt;    7: showBackForwardEntryForIndex(Resources/Views/ContentViewContainer.js:207:38)
&gt;    8: showContentView(Resources/Views/ContentViewContainer.js:179:42)
&gt;    9: showContentView(Resources/Views/ContentBrowser.js:172:58)
&gt;    10: _recordingLoaded(Resources/Views/TimelineSidebarPanel.js:436:52)
&gt;    11: dispatch(Resources/Base/Object.js:141:55)
&gt;    12: dispatchEventToListeners(Resources/Base/Object.js:148:17)
&gt;    13: _loadNewRecording(Resources/Controllers/TimelineManager.js:421:38)
&gt;    14: delayedWork(Resources/Controllers/TimelineManager.js:44:31)
&gt;    15: delayedWork([native code])</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029289</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-08-14 18:57:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; A workaround still doesn&apos;t seem like enough. There is another actual bug here.
&gt; 
&gt; It looks like _loadNewRecording is triggering the Timelines panel to be the selected panel:

Ugh, and even fixing that we run into another issue.

1. Open inspector
2. Switch to Timelines sidebar (puts a TimelineContentView into back forward history)
3. Switch to Resources sidebar
4. Select any resource (puts a ResourceView into back forward history)
5. Cmd+R to reload
  =&gt; ends up with Timelines sidebar selected

So again, looking at a Resource in the Resources sidebar, suddenly we get the Resource in Timelines.

The issue here is because of the back forward history:

  - ResourceViews are torn down
    =&gt; last valid view in the back forward list is selected, that is the TimelineContentView
    =&gt; timelines sidebar becomes selected
  - Page loads the old resource
  - Resource is restored
    =&gt; state restoration checks if timelines is a valid sidebar for this resource, it is.

We can&apos;t really fix one of these issues without fixing all of them. Each is easy to reproduce.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029448</commentid>
    <comment_count>5</comment_count>
      <attachid>236673</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-08-15 13:24:28 -0700</bug_when>
    <thetext>Created attachment 236673
[PATCH] Debugging Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029478</commentid>
    <comment_count>6</comment_count>
      <attachid>236678</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-08-15 15:25:53 -0700</bug_when>
    <thetext>Created attachment 236678
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030070</commentid>
    <comment_count>7</comment_count>
      <attachid>236678</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-08-19 11:20:00 -0700</bug_when>
    <thetext>Comment on attachment 236678
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:871
&gt;  WebInspector._pageHidden = function(event)
&gt;  {
&gt; -    this._updateCookieForInspectorViewState();
&gt; +    // FIXME: pagehide events are not firing at the correct time.
&gt; +    // Ignore the event for now, and instead update view state
&gt; +    // every time the ContentView changes instead of only when we close.
&gt; +    // this._updateCookieForInspectorViewState();
&gt;  }

Unregister the event, remove the function and just file a bug?

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:926
&gt; +    // FIXME: Selecting a CallFrameTreeElement selects the resource, does the code below work?

Good catch. For the Debugger sidebar panel, which has two content tree outlines, selectedSidebarPanel.contentTreeOutline.processingSelectionChange is the wrong check.

The check should iterate over _visibleContentTreeOutlines and look for processingSelectionChange on any of them.

&gt; Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js:684
&gt; +        if (!this._pendingViewStateCookie) {
&gt; +            if (this._viewStateCookieMatchingRepresentedObject &amp;&amp; !Array.isArray(treeElements) &amp;&amp; treeElements.representedObject === this._viewStateCookieMatchingRepresentedObject) {
&gt; +                treeElements.revealAndSelect();
&gt; +                delete this._viewStateCookieMatchingRepresentedObject;
&gt; +            }
&gt;              return;
&gt; +        }

We talked about a better fox for this in FrameTreeElement.

&gt; Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js:735
&gt; +            // FIXME: Due to the order of tree elements getting inserted and onpopulate
&gt; +            // getting called on the FrameTreeElement, this tree element could get
&gt; +            // immediately removed and re-inserted. At which point, it will not
&gt; +            // get its selected state restored. This is a workaround for that particular
&gt; +            // chain of events. We should fix this in a cleaner way.
&gt; +            this._viewStateCookieMatchingRepresentedObject = matchedElement.representedObject;

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js:741
&gt; +                delete this._viewStateCookieMatchingRepresentedObject;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033948</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-09-08 14:25:37 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 236678 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236678&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Base/Main.js:871
&gt; &gt;  WebInspector._pageHidden = function(event)
&gt; &gt;  {
&gt; &gt; -    this._updateCookieForInspectorViewState();
&gt; &gt; +    // FIXME: pagehide events are not firing at the correct time.
&gt; &gt; +    // Ignore the event for now, and instead update view state
&gt; &gt; +    // every time the ContentView changes instead of only when we close.
&gt; &gt; +    // this._updateCookieForInspectorViewState();
&gt; &gt;  }
&gt; 
&gt; Unregister the event, remove the function and just file a bug?

Hmm, interestingly this is working for me now. I decided to keep this and NOT update view state on every content view change. Things are working well for now.


&gt; &gt; Source/WebInspectorUI/UserInterface/Base/Main.js:926
&gt; &gt; +    // FIXME: Selecting a CallFrameTreeElement selects the resource, does the code below work?
&gt; 
&gt; Good catch. For the Debugger sidebar panel, which has two content tree outlines, selectedSidebarPanel.contentTreeOutline.processingSelectionChange is the wrong check.

I&apos;ll take a look at this now.


&gt; The check should iterate over _visibleContentTreeOutlines and look for processingSelectionChange on any of them.
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js:684
&gt; &gt; +        if (!this._pendingViewStateCookie) {
&gt; &gt; +            if (this._viewStateCookieMatchingRepresentedObject &amp;&amp; !Array.isArray(treeElements) &amp;&amp; treeElements.representedObject === this._viewStateCookieMatchingRepresentedObject) {
&gt; &gt; +                treeElements.revealAndSelect();
&gt; &gt; +                delete this._viewStateCookieMatchingRepresentedObject;
&gt; &gt; +            }
&gt; &gt;              return;
&gt; &gt; +        }
&gt; 
&gt; We talked about a better fox for this in FrameTreeElement.

Yep, this is much nicer. It does less work too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033958</commentid>
    <comment_count>9</comment_count>
      <attachid>237811</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-09-08 14:36:39 -0700</bug_when>
    <thetext>Created attachment 237811
[PATCH] Proposed Fix

Addresses Tim&apos;s comments. Also fixes the CallFrame issue, good suggestion Tim!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033992</commentid>
    <comment_count>10</comment_count>
      <attachid>237811</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-08 17:02:22 -0700</bug_when>
    <thetext>Comment on attachment 237811
[PATCH] Proposed Fix

Clearing flags on attachment: 237811

Committed r173407: &lt;http://trac.webkit.org/changeset/173407&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033993</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-08 17:02:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033994</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-08 17:09:28 -0700</bug_when>
    <thetext>Yay!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236673</attachid>
            <date>2014-08-15 13:24:28 -0700</date>
            <delta_ts>2014-08-15 15:25:53 -0700</delta_ts>
            <desc>[PATCH] Debugging Patch</desc>
            <filename>debugging-patch.patch</filename>
            <type>text/plain</type>
            <size>11789</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFp
bi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpp
bmRleCBiMzQ5YTg0Li4xNTE0ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC03NzUsNiArNzc1LDkgQEAgV2ViSW5zcGVjdG9y
Ll9tYWluUmVzb3VyY2VEaWRDaGFuZ2UgPSBmdW5jdGlvbihldmVudCkKICAgICBpZiAoIWV2ZW50
LnRhcmdldC5pc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICB0aGlzLl9pblBy
b3Zpc2lvbmFsTG9hZCA9IGZhbHNlOworICAgIGNvbnNvbGUubG9nKCIoKCgoKCgoKCgoKCgoKCgo
KCgoKCggUFJPVklTSU9OQUwgRU5EICkpKSkpKSkpKSkpKSkpKSkpKSkpKSIpOworCiAgICAgdGhp
cy5fcmVzdG9yZUluc3BlY3RvclZpZXdTdGF0ZUZyb21Db29raWUodGhpcy5fbGFzdEluc3BlY3Rv
clZpZXdTdGF0ZUNvb2tpZVNldHRpbmcudmFsdWUsIHRydWUpOwogCiAgICAgdGhpcy51cGRhdGVX
aW5kb3dUaXRsZSgpOwpAQCAtNzg2LDYgKzc4OSw5IEBAIFdlYkluc3BlY3Rvci5fcHJvdmlzaW9u
YWxMb2FkU3RhcnRlZCA9IGZ1bmN0aW9uKGV2ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICB0
aGlzLl91cGRhdGVDb29raWVGb3JJbnNwZWN0b3JWaWV3U3RhdGUoKTsKKworICAgIGNvbnNvbGUu
bG9nKCIoKCgoKCgoKCgoKCgoKCgoKCgoKCggUFJPVklTSU9OQUwgU1RBUlQgKSkpKSkpKSkpKSkp
KSkpKSkpKSkpIik7CisgICAgdGhpcy5faW5Qcm92aXNpb25hbExvYWQgPSB0cnVlOwogfQogCiBX
ZWJJbnNwZWN0b3IuX3dpbmRvd0ZvY3VzZWQgPSBmdW5jdGlvbihldmVudCkKQEAgLTg1MCw3ICs4
NTYsOSBAQCBXZWJJbnNwZWN0b3IuX21vdXNlTW92ZWQgPSBmdW5jdGlvbihldmVudCkKIAogV2Vi
SW5zcGVjdG9yLl9wYWdlSGlkZGVuID0gZnVuY3Rpb24oZXZlbnQpCiB7Ci0gICAgdGhpcy5fdXBk
YXRlQ29va2llRm9ySW5zcGVjdG9yVmlld1N0YXRlKCk7CisgICAgLy8gRklYTUU6IFRoaXMgaXMg
c28gYnJva2VuIHRoYXQgaXMgaXMgb25seSBwcm9ibGVtYXRpYyBpZiB3ZSB1c2UgaXQuCisgICAg
Ly8gY29uc29sZS5sb2coIldlYkluc3BlY3Rvci5fcGFnZUhpZGRlbiIpOworICAgIC8vIHRoaXMu
X3VwZGF0ZUNvb2tpZUZvckluc3BlY3RvclZpZXdTdGF0ZSgpOwogfQogCiBXZWJJbnNwZWN0b3Iu
X3VuZG9jayA9IGZ1bmN0aW9uKGV2ZW50KQpAQCAtOTA2LDYgKzkxNCw4IEBAIFdlYkluc3BlY3Rv
ci5fcmV2ZWFsQW5kU2VsZWN0UmVwcmVzZW50ZWRPYmplY3RJbk5hdmlnYXRpb25TaWRlYmFyID0g
ZnVuY3Rpb24ocmVwCiAgICAgaWYgKCFzZWxlY3RlZFNpZGViYXJQYW5lbCkKICAgICAgICAgcmV0
dXJuOwogCisgICAgLy8gRklYTUU6IEFwcGFyZW50bHkgdGhpcyBkb2Vzbid0IHdvcmsgYW55bW9y
ZS4gZS5nLiBTZWxlY3RpbmcgYSBDYWxsRnJhbWVUcmVlRWxlbWVudCBzZWxlY3RzIHRoZSByZXNv
dXJjZS4uLgorICAgICAgICAKICAgICAvLyBJZiB0aGUgdHJlZSBvdXRsaW5lIGlzIHByb2Nlc3Np
bmcgYSBzZWxlY3Rpb24gY3VycmVudGx5IHRoZW4gd2UgY2FuIGFzc3VtZSB0aGUgc2VsZWN0aW9u
IGRvZXMgbm90CiAgICAgLy8gbmVlZCB0byBiZSBjaGFuZ2VkLiBUaGlzIGlzIG5lZWRlZCB0byBh
bGxvdyBicmVha3BvaW50cyB0cmVlIGVsZW1lbnRzIHRvIGJlIHNlbGVjdGVkIHdpdGhvdXQganVt
cGluZwogICAgIC8vIGJhY2sgdG8gc2VsZWN0aW5nIHRoZSByZXNvdXJjZSB0cmVlIGVsZW1lbnQu
CkBAIC0xMDQ0LDYgKzEwNTQsMTIgQEAgV2ViSW5zcGVjdG9yLl91cGRhdGVDb29raWVGb3JJbnNw
ZWN0b3JWaWV3U3RhdGUgPSBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAg
ICAvLyBJZ25vcmUgc2F2aW5nIHRoZSBzaWRlYmFyIHN0YXRlIGZvciBwcm92aXNpb25hbCBsb2Fk
cy4gVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzaWRlYmFyCisgICAgLy8gbWF5IGhhdmUgYmVlbiB0
aGUgcmVzdWx0IG9mIGNvbnRlbnQgdmlld3MgY2xvc2luZyBhcyBhIHJlc3VsdCBvZiBhIHBhZ2Ug
bmF2aWdhdGlvbiwKKyAgICAvLyBidXQgdGhvc2UgY29udGVudCB2aWV3cyBtYXkgY29tZSBiYWNr
IHZlcnkgc29vbi4KKyAgICBpZiAodGhpcy5faW5Qcm92aXNpb25hbExvYWQpCisgICAgICAgIHJl
dHVybjsKKwogICAgIHZhciBzZWxlY3RlZFNpZGViYXJQYW5lbCA9IHRoaXMubmF2aWdhdGlvblNp
ZGViYXIuc2VsZWN0ZWRTaWRlYmFyUGFuZWw7CiAgICAgaWYgKCFzZWxlY3RlZFNpZGViYXJQYW5l
bCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA1Myw2ICsxMDY5LDEwIEBAIFdlYkluc3BlY3Rvci5f
dXBkYXRlQ29va2llRm9ySW5zcGVjdG9yVmlld1N0YXRlID0gZnVuY3Rpb24oKQogICAgIC8vIHNv
bGVseSBiYXNlZCBvbiB3aGljaCBjb250ZW50IHZpZXcgaXMgdmlzaWJsZSwgb3IgbXVsdGlwbGUg
bmF2aWdhdGlvbiBzaWRlYmFycyBjb3VsZCBiZSBzaG93bi4KICAgICBjb29raWVbV2ViSW5zcGVj
dG9yLlNlbGVjdGVkU2lkZWJhclBhbmVsQ29va2llS2V5XSA9IHNlbGVjdGVkU2lkZWJhclBhbmVs
LmlkZW50aWZpZXI7CiAgICAgc2VsZWN0ZWRTaWRlYmFyUGFuZWwuc2F2ZVN0YXRlVG9Db29raWUo
Y29va2llKTsKKyAgICBjb25zb2xlLmxvZygiLS0tLS0tLS0tIik7CisgICAgY29uc29sZS5sb2co
IlNBVklORyBDT09LSUUiLCBKU09OLnN0cmluZ2lmeShjb29raWUpKTsKKyAgICBjb25zb2xlLnRy
YWNlKCk7CisgICAgY29uc29sZS5sb2coIi0tLS0tLS0tLSIpOwogICAgIHRoaXMuX2xhc3RJbnNw
ZWN0b3JWaWV3U3RhdGVDb29raWVTZXR0aW5nLnZhbHVlID0gY29va2llOwogfQogCkBAIC0xMDg5
LDYgKzExMDksNyBAQCBXZWJJbnNwZWN0b3IuX2NvbnRlbnRCcm93c2VyQ3VycmVudENvbnRlbnRW
aWV3RGlkQ2hhbmdlID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgIGN1cnJlbnRDb250ZW50Vmll
dy5fX2xhc3ROYXZpZ2F0aW9uU2lkZWJhclBhbmVsSWRlbnRpZmVyID0gc2VsZWN0ZWRTaWRlYmFy
UGFuZWxJZGVudGlmaWVyOwogCiAgICAgdGhpcy5fcmV2ZWFsQW5kU2VsZWN0UmVwcmVzZW50ZWRP
YmplY3RJbk5hdmlnYXRpb25TaWRlYmFyKGN1cnJlbnRDb250ZW50Vmlldy5yZXByZXNlbnRlZE9i
amVjdCk7CisgICAgdGhpcy5fdXBkYXRlQ29va2llRm9ySW5zcGVjdG9yVmlld1N0YXRlKCk7CiB9
CiAKIFdlYkluc3BlY3Rvci5fY29udGVudEJyb3dzZXJSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFu
Z2UgPSBmdW5jdGlvbihldmVudCkKQEAgLTExNTEsNiArMTE3Miw3IEBAIFdlYkluc3BlY3Rvci5f
Y29udGVudEJyb3dzZXJSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UgPSBmdW5jdGlvbihldmVu
dCkKIAogV2ViSW5zcGVjdG9yLl9yZXN0b3JlSW5zcGVjdG9yVmlld1N0YXRlRnJvbUNvb2tpZSA9
IGZ1bmN0aW9uKGNvb2tpZSwgY2F1c2VkQnlSZWxvYWQpCiB7CisgICAgY29uc29sZS5sb2coIj4+
PiBSRVNUT1JFIFZJRVcgU1RBVEUgRlJPTSBDT09LSUUiLCBKU09OLnN0cmluZ2lmeShjb29raWUp
KTsKICAgICBpZiAoIWNvb2tpZSkgewogICAgICAgICB0aGlzLm5hdmlnYXRpb25TaWRlYmFyLnNl
bGVjdGVkU2lkZWJhclBhbmVsID0gdGhpcy5yZXNvdXJjZVNpZGViYXJQYW5lbDsKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKaW5kZXggNTljZjhl
Yi4uYWE0MDBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCkBAIC0y
MzMsNiArMjMzLDggQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90
eXBlID0gewogICAgIC8vIFRoaXMgY2FuIGJlIHN1cHBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRo
YXQgYWRtaXQgYSBzaW1wbGVyIHN0cmF0ZWd5IGZvciBzdGF0aWMgdHJlZSBlbGVtZW50cy4KICAg
ICByZXN0b3JlU3RhdGVGcm9tQ29va2llOiBmdW5jdGlvbihjb29raWUsIHJlbGF4ZWRNYXRjaERl
bGF5KQogICAgIHsKKyAgICAgICAgY29uc29sZS5sb2coIk5hdmlnYXRpb25TaWRlYmFyUGFuZWwu
cmVzdG9yZVN0YXRlRnJvbUNvb2tpZSIpOworCiAgICAgICAgIHRoaXMuX3BlbmRpbmdWaWV3U3Rh
dGVDb29raWUgPSBjb29raWU7CiAgICAgICAgIHRoaXMuX3Jlc3RvcmluZ1N0YXRlID0gdHJ1ZTsK
IApAQCAtNTQwLDcgKzU0Miw5IEBAIFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uU2lkZWJhclBhbmVs
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9jaGVja0ZvckVtcHR5RmlsdGVyUmVzdWx0
cygpOwogICAgICAgICB0aGlzLl91cGRhdGVDb250ZW50T3ZlcmZsb3dTaGFkb3dWaXNpYmlsaXR5
U29vbigpOwotICAgICAgICB0aGlzLl9jaGVja0VsZW1lbnRzRm9yUGVuZGluZ1ZpZXdTdGF0ZUNv
b2tpZSh0cmVlRWxlbWVudCk7CisKKyAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQpCisgICAgICAg
ICAgICB0aGlzLl9jaGVja0VsZW1lbnRzRm9yUGVuZGluZ1ZpZXdTdGF0ZUNvb2tpZSh0cmVlRWxl
bWVudCk7CiAgICAgfSwKIAogICAgIF90cmVlRWxlbWVudEV4cGFuZGVkT3JDb2xsYXBzZWQ6IGZ1
bmN0aW9uKHRyZWVFbGVtZW50KQpAQCAtNjczLDggKzY3NywxMyBAQCBXZWJJbnNwZWN0b3IuTmF2
aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBfY2hlY2tFbGVtZW50c0Zv
clBlbmRpbmdWaWV3U3RhdGVDb29raWU6IGZ1bmN0aW9uKHRyZWVFbGVtZW50cywgbWF0Y2hUeXBl
T25seSkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fcGVuZGluZ1ZpZXdTdGF0ZUNvb2tpZSkK
KyAgICAgICAgaWYgKCF0aGlzLl9wZW5kaW5nVmlld1N0YXRlQ29va2llKSB7CisgICAgICAgICAg
ICBpZiAodGhpcy5fdmlld1N0YXRlQ29va2llTWF0Y2hpbmdSZXByZXNlbnRlZE9iamVjdCAmJiAh
QXJyYXkuaXNBcnJheSh0cmVlRWxlbWVudHMpICYmIHRyZWVFbGVtZW50cy5yZXByZXNlbnRlZE9i
amVjdCA9PT0gdGhpcy5fdmlld1N0YXRlQ29va2llTWF0Y2hpbmdSZXByZXNlbnRlZE9iamVjdCkg
eworICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50cy5yZXZlYWxBbmRTZWxlY3QoKTsKKyAgICAg
ICAgICAgICAgICBkZWxldGUgdGhpcy5fdmlld1N0YXRlQ29va2llTWF0Y2hpbmdSZXByZXNlbnRl
ZE9iamVjdDsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
CiAgICAgICAgIHZhciBjb29raWUgPSB0aGlzLl9wZW5kaW5nVmlld1N0YXRlQ29va2llOwogCkBA
IC03MTYsMTQgKzcyNSwyNiBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIH0sIHRoaXMpOwogCiAgICAgICAgIGlmIChtYXRjaGVkRWxl
bWVudCkgewotICAgICAgICAgICAgbWF0Y2hlZEVsZW1lbnQucmV2ZWFsQW5kU2VsZWN0KHRydWUs
IGZhbHNlKTsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCI9PT09PT09PT0iKTsKKyAgICAgICAg
ICAgIGNvbnNvbGUubG9nKCJOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIFJFU1RPUklORyIsIG1hdGNo
ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0LCBtYXRjaGVkRWxlbWVudC5yZXByZXNlbnRlZE9i
amVjdC51cmwpOworICAgICAgICAgICAgY29uc29sZS5sb2coIj09PT09PT09PSIpOworCisgICAg
ICAgICAgICBtYXRjaGVkRWxlbWVudC5yZXZlYWxBbmRTZWxlY3QoKTsKIAogICAgICAgICAgICAg
ZGVsZXRlIHRoaXMuX3BlbmRpbmdWaWV3U3RhdGVDb29raWU7CiAKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiBEdWUgdG8gdGhlIG9yZGVyIG9mIHRyZWUgZWxlbWVudHMgZ2V0dGluZyBpbnNlcnRlZCBh
bmQgb25wb3B1bGF0ZQorICAgICAgICAgICAgLy8gZ2V0dGluZyBjYWxsZWQgb24gdGhlIEZyYW1l
VHJlZUVsZW1lbnQsIHRoaXMgdHJlZSBlbGVtZW50IGNvdWxkIGdldAorICAgICAgICAgICAgLy8g
aW1tZWRpYXRlbHkgcmVtb3ZlZCBhbmQgcmUtaW5zZXJ0ZWQuIEF0IHdoaWNoIHBvaW50LCBpdCB3
aWxsIG5vdAorICAgICAgICAgICAgLy8gZ2V0IGl0cyBzZWxlY3RlZCBzdGF0ZSByZXN0b3JlZC4g
VGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIHRoYXQgcGFydGljdWxhcgorICAgICAgICAgICAgLy8g
Y2hhaW4gb2YgZXZlbnRzLgorICAgICAgICAgICAgdGhpcy5fdmlld1N0YXRlQ29va2llTWF0Y2hp
bmdSZXByZXNlbnRlZE9iamVjdCA9IG1hdGNoZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0Owor
CiAgICAgICAgICAgICAvLyBEZWxheSBjbGVhcmluZyB0aGUgcmVzdG9yaW5nU3RhdGUgZmxhZyB1
bnRpbCB0aGUgbmV4dCBydW5sb29wIHNvIGxpc3RlbmVycwogICAgICAgICAgICAgLy8gY2hlY2tp
bmcgZm9yIGl0IGluIHRoaXMgcnVubG9vcCBzdGlsbCBrbm93IHN0YXRlIHdhcyBiZWluZyByZXN0
b3JlZC4KICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX3Jlc3RvcmluZ1N0YXRlOworICAgICAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl92aWV3U3RhdGVDb29raWVNYXRjaGluZ1JlcHJlc2VudGVkT2JqZWN0OwogICAgICAgICAg
ICAgfS5iaW5kKHRoaXMpKTsKIAogICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbmFsQXR0ZW1wdFRv
UmVzdG9yZVZpZXdTdGF0ZVRpbWVvdXQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwu
anMKaW5kZXggODFkYTc5ZC4uNDM2ZDU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFu
ZWwuanMKQEAgLTU1Myw5ICs1NTMsMTIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9tYWluRnJhbWVNYWluUmVzb3VyY2VEaWRDaGFuZ2U6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKKyAgICAgICAgdmFyIHdhc1Nob3dpbmdSZXNvdXJjZVNp
ZGViYXIgPSB0aGlzLnNlbGVjdGVkOwogICAgICAgICB2YXIgY3VycmVudENvbnRlbnRWaWV3ID0g
V2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKICAgICAgICAg
dmFyIHdhc1Nob3dpbmdSZXNvdXJjZUNvbnRlbnRWaWV3ID0gY3VycmVudENvbnRlbnRWaWV3IGlu
c3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlQ29udGVudFZpZXcKLSAgICAgICAgICAgIHx8
IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5GcmFtZUNvbnRlbnRW
aWV3IHx8IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHRD
b250ZW50VmlldzsKKyAgICAgICAgICAgIHx8IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9m
IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNsdXN0ZXJDb250ZW50VmlldworICAgICAgICAgICAgfHwg
Y3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkZyYW1lQ29udGVudFZp
ZXcKKyAgICAgICAgICAgIHx8IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5TY3JpcHRDb250ZW50VmlldzsKIAogICAgICAgICAvLyBDbG9zZSBhbGwgcmVzb3VyY2Ug
YW5kIGZyYW1lIGNvbnRlbnQgdmlld3Mgc2luY2UgdGhlIG1haW4gZnJhbWUgaGFzIG5hdmlnYXRl
ZCBhbmQgYWxsIHJlc291cmNlcyBhcmUgY2xlYXJlZC4KICAgICAgICAgV2ViSW5zcGVjdG9yLmNv
bnRlbnRCcm93c2VyLmNvbnRlbnRWaWV3Q29udGFpbmVyLmNsb3NlQWxsQ29udGVudFZpZXdzT2ZQ
cm90b3R5cGUoV2ViSW5zcGVjdG9yLlJlc291cmNlQ2x1c3RlckNvbnRlbnRWaWV3KTsKQEAgLTU2
NSw5ICs1NjgsMTkgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgZnVuY3Rpb24gZGVsYXllZFdvcmsoKQogICAgICAgICB7CiAgICAgICAg
ICAgICAvLyBTaG93IHRoZSBtYWluIGZyYW1lIHNpbmNlIHRoZXJlIGlzIG5vIGNvbnRlbnQgdmll
dyBzaG93aW5nIG9yIHdlIHdlcmUgc2hvd2luZyBhIHJlc291cmNlIGJlZm9yZS4KLSAgICAgICAg
ICAgIC8vIEZJWE1FOiBXZSBjb3VsZCB0cnkgdG8gc2VsZWN0IHRoZSBzYW1lIHJlc291cmNlIHRo
YXQgd2FzIHNlbGVjdGVkIGJlZm9yZSBpbiB0aGUgY2FzZSBvZiBhIHJlbG9hZC4KLSAgICAgICAg
ICAgIGlmICghV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldyB8
fCB3YXNTaG93aW5nUmVzb3VyY2VDb250ZW50VmlldykKLSAgICAgICAgICAgICAgICB0aGlzLl9t
YWluRnJhbWVUcmVlRWxlbWVudC5yZXZlYWxBbmRTZWxlY3QodHJ1ZSwgZmFsc2UpOworICAgICAg
ICAgICAgLy8gQ29va2llIHJlc3RvcmF0aW9uIHdpbGwgYXR0ZW1wdCB0byByZS1zZWxlY3QgdGhl
IHJlc291cmNlIHdlIHdlcmUgc2hvd2luZy4KKyAgICAgICAgICAgIGlmICghV2ViSW5zcGVjdG9y
LmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldyB8fCB3YXNTaG93aW5nUmVzb3VyY2VD
b250ZW50VmlldykgeworCisgICAgICAgICAgICAgICAgLy8gRklYTUU6IElmIHdlIHdlcmUgc2hv
d2luZyBhIHJlc291cmNlIGluc2lkZSBvZiB0aGUgUmVzb3VyY2VTaWRlYmFyLCB3ZSBzaG91bGQK
KyAgICAgICAgICAgICAgICAvLyByZS1zaG93IHRoZSByZXNvdXJjZSBpbnNpZGUgb2YgdGhlIHJl
c291cmNlIHNpZGViYXIuIEl0IGlzIHBvc3NpYmxlIHRoYXQKKyAgICAgICAgICAgICAgICAvLyB0
aGUgc2lkZWJhciBwYW5lbCBjb3VsZCBoYXZlIHN3aXRjaGVkIHRvIGFub3RoZXIgdmlldyBpbiB0
aGUgYmFjay1mb3J3YXJkIGxpc3QuCisgICAgICAgICAgICAgICAgaWYgKHdhc1Nob3dpbmdSZXNv
dXJjZVNpZGViYXIpCisgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5uYXZpZ2F0aW9u
U2lkZWJhci5zZWxlY3RlZFNpZGViYXJQYW5lbCA9IHRoaXM7CisKKyAgICAgICAgICAgICAgICAv
LyBOT1RFOiBUaGlzIHNlbGVjdGlvbiwgZHVyaW5nIHByb3Zpc2lvbmFsIGxvYWRpbmcsIHdvbid0
IGJlIHNhdmVkLCBzbyBpdCBpcworICAgICAgICAgICAgICAgIC8vIHNhZmUgdG8gZG8gYW5kIG5v
dC1jbG9iYmVyIGNvb2tpZSByZXN0b3JhdGlvbi4KKyAgICAgICAgICAgICAgICAvLyB0aGlzLl9t
YWluRnJhbWVUcmVlRWxlbWVudC5yZXZlYWxBbmRTZWxlY3QodHJ1ZSwgZmFsc2UpOworICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgLy8gRGVsYXkgdGhpcyB3b3JrIGJlY2F1c2Ug
b3RoZXIgbGlzdGVuZXJzIG9mIHRoaXMgZXZlbnQgbWlnaHQgbm90IGhhdmUgZmlyZWQgeWV0LiBT
byBzZWxlY3RpbmcgdGhlIG1haW4gZnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NpZGViYXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9TaWRlYmFyLmpzCmluZGV4IDliMDg3MmMuLjkyMGIxNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Np
ZGViYXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U2lkZWJhci5qcwpAQCAtMTQxLDYgKzE0MSwxMiBAQCBXZWJJbnNwZWN0b3IuU2lkZWJhci5wcm90
b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTaWRlYmFyUGFuZWwgPSBzaWRlYmFy
UGFuZWwgfHwgbnVsbDsKIAorICAgICAgICBpZiAodGhpcyA9PT0gV2ViSW5zcGVjdG9yLm5hdmln
YXRpb25TaWRlYmFyKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiPj4+IC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8iKQorICAgICAgICAgICAgY29uc29sZS5sb2coIj4+PiBTRUxFQ1RFRCBOQVZJ
R0FUSU9OIFNJREVCQVIiLCB0aGlzLl9zZWxlY3RlZFNpZGViYXJQYW5lbCA/IHRoaXMuX3NlbGVj
dGVkU2lkZWJhclBhbmVsLmlkZW50aWZpZXIgOiBudWxsKTsKKyAgICAgICAgICAgIGNvbnNvbGUu
bG9nKCI+Pj4gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyIpCisgICAgICAgIH0KKwogICAgICAgICBp
ZiAodGhpcy5fc2VsZWN0ZWRTaWRlYmFyUGFuZWwpIHsKICAgICAgICAgICAgIHRoaXMuX3NlbGVj
dGVkU2lkZWJhclBhbmVsLnNlbGVjdGVkID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVTaWRlYmFyUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVNpZGVi
YXJQYW5lbC5qcwppbmRleCBhY2I1MzVhLi4xNjRiODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVNpZGViYXJQYW5lbC5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVNp
ZGViYXJQYW5lbC5qcwpAQCAtMzM0LDYgKzMzNCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVNp
ZGViYXJQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICByZXN0b3JlU3RhdGVGcm9tQ29va2llOiBm
dW5jdGlvbihjb29raWUsIHJlbGF4ZWRNYXRjaERlbGF5KQogICAgIHsKKyAgICAgICAgY29uc29s
ZS5sb2coIlRpbWVsaW5lU2lkZWJhclBhbmVsLnJlc3RvcmVTdGF0ZUZyb21Db29raWUiKTsKICAg
ICAgICAgY29uc29sZS5hc3NlcnQoY29va2llKTsKIAogICAgICAgICAvLyBUaGUgX2FjdGl2ZUNv
bnRlbnRWaWV3IGlzIG5vdCByZWFkeSBvbiBpbml0aWFsIGxvYWQsIHNvIGRlbGF5IHRoZSByZXN0
b3JlLgpAQCAtNDMzLDcgKzQzNCw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgX3JlY29yZGluZ0xvYWRlZDogZnVuY3Rpb24oKQogICAgIHsK
ICAgICAgICAgdGhpcy5fYWN0aXZlQ29udGVudFZpZXcgPSBXZWJJbnNwZWN0b3IuY29udGVudEJy
b3dzZXIuY29udGVudFZpZXdGb3JSZXByZXNlbnRlZE9iamVjdChXZWJJbnNwZWN0b3IudGltZWxp
bmVNYW5hZ2VyLmFjdGl2ZVJlY29yZGluZyk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jb250ZW50
QnJvd3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fYWN0aXZlQ29udGVudFZpZXcpOworCisgICAg
ICAgIGlmICh0aGlzLnNlbGVjdGVkKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnRlbnRC
cm93c2VyLnNob3dDb250ZW50Vmlldyh0aGlzLl9hY3RpdmVDb250ZW50Vmlldyk7CiAgICAgfSwK
IAogICAgIF9yZWNvcmRHbHlwaE1vdXNlZE92ZXI6IGZ1bmN0aW9uKGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236678</attachid>
            <date>2014-08-15 15:25:53 -0700</date>
            <delta_ts>2014-09-08 14:36:39 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>oh-noes.patch</filename>
            <type>text/plain</type>
            <size>15964</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGM4ZmUzMDMuLjU3YTE1MjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDE0LTA4LTE1ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogSW5zcGVj
dG9yIGZyZXF1ZW50bHkgcmVzdG9yZXMgd3JvbmcgdmlldyB3aGVuIG9wZW5lZCAob2Z0ZW4gVGlt
ZWxpbmVzIGluc3RlYWQgb2YgUmVzb3VyY2UpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU5NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGVyZSB3ZXJlIG51bWVyb3VzIHN1YnRsZSByYWNlIGNvbmRp
dGlvbnMgaW4gc3RhdGUgcmVzdG9yYXRpb24uCisgICAgICAgIFRoaXMgcGF0Y2ggaW50ZW5kcyB0
byBmaXggYSBudW1iZXIgb2YgdGhlbSB0byBnZXQgd2hhdCBmZWVscworICAgICAgICBsaWtlIHNh
bmUgYmVoYXZpb3IgZm9yIHNlbGVjdGVkIHNpZGViYXIgc3RhdGUgcmVzdG9yYXRpb24uCisKKyAg
ICAgICAgMS4gU2F2ZSB2aWV3IHJlc3RvcmF0aW9uIHN0YXRlIG9uIGV2ZXJ5IENvbnRlbnRWaWV3
IGNoYW5nZS4KKyAgICAgICAgVGhpcyB3YXMgYmVjYXVzZSBwYWdlaGlkZSBldmVudHMgZG8gbm90
IHRyaWdnZXIgd2hlbiB3ZSB3YW50IHRoZW0sCisgICAgICAgIHNvIHdlIHdlcmUgbmV2ZXIgc2F2
aW5nIHRoZSBzdGF0ZSB3ZSB3YW50IHRvIHJlc3RvcmUhCisKKyAgICAgICAgMi4gU3RhcnRpbmcg
YSBUaW1lbGluZSByZWNvcmRpbmcgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8g
dGhlIFRpbWVsaW5lQ29udGVudFZpZXcuCisgICAgICAgIFRoaXMgd2FzIG1ha2luZyBldmVyeSBy
ZWxvYWQgc3dpdGNoIHRvIFRpbWVsaW5lcy4gSWYgeW91IGhhZAorICAgICAgICBhIHJlc291cmNl
IHNlbGVjdGVkIChlLmcuIHRoZSBET00gVHJlZSkgd2Ugc2hvdWxkIGdvIGJhY2sKKyAgICAgICAg
dG8gc2hvd2luZyB0aGUgRE9NIHRyZWUuCisKKyAgICAgICAgMy4gQmFja2dyb3VuZCBzaWRlYmFy
cyBzaG91bGQgbm90IHJldmVhbCBhbmQgc2VsZWN0IHRyZWUgZWxlbWVudHMuCisgICAgICAgIFRo
aXMgd2FzIG1ha2luZyByZXNvdXJjZXMgZ2V0IHNlbGVjdGVkIGluIFRpbWVsaW5lcyB3aGVuIHJl
bG9hZGluZyB0aGUgcGFnZQorICAgICAgICBiZWNhdXNlIHRoZSBiYWNrZ3JvdW5kIFJlc291cmNl
cyBzaWRlYmFyIHdhcyByZXN0b3Jpbmcgc2VsZWN0aW9uIG9mIHRoZSByZXNvdXJjZS4KKyAgICAg
ICAgVGhhdCBpcyBhbiB1bmV4cGVjdGVkIHNlbGVjdGlvbiBhbmQgYnJlYWtzIHRoZSBleHBlcmll
bmNlIG9mIFRpbWVsaW5lcy4KKworICAgICAgICA0LiBDb250ZW50VmlldyBjaGFuZ2VzIGR1cmlu
ZyBwYWdlIG5hdmlnYXRpb24gLyByZWxvYWQgc2hvdWxkIGJlIHNhdmVkLCBhbmQgaW1wcm92ZSBS
ZXNvdXJjZSByZXN0b3JhdGlvbi4KKyAgICAgICAgSWYgYSBUaW1lbGluZUNvbnRlbnRWaWV3IHdh
cyBpbiB0aGUgQ29udGVudEJyb3dzZXIgYmFjay9mb3J3YXJkIGhpc3RvcnksCisgICAgICAgIGEg
cmVsb2FkIHdpdGggYSByZXNvdXJjZSBzZWxlY3RlZCBpbiB0aGUgUmVzb3VyY2VzIHNpZGViYXIg
d291bGQgZW5kIHVwCisgICAgICAgIHNob3dpbmcgdGhlIFRpbWVsaW5lcyBzaWRlYmFyLiBUaGlz
IHdhcyBiZWNhdXNlIHdoZW4gQ29udGVudFZpZXdzIGFyZQorICAgICAgICBjbG9zZWQgZHVyaW5n
IHRoZSBuYXZpZ2F0aW9uLCB0aGUgQ29udGVudEJyb3dzZXIgd291bGQgZmFsbCBiYWNrIHRvIHRo
ZQorICAgICAgICByZW1haW5pbmcgVGltZWxpbmVDb250ZW50VmlldyBhbmQgc3dpdGNoIHRvIGl0
cyBvbmx5IGFsbG93ZWQgc2lkZWJhcgorICAgICAgICAoVGltZWxpbmVzKS4gUmVzb3VyY2VTaWRl
YmFyUGFuZWwsIGtub3dpbmcgYSByZXNvdXJjZSB3YXMgc2VsZWN0ZWQsCisgICAgICAgIHdvdWxk
IHNlbGVjdCB0aGUgTWFpbkZyYW1lIGludGVuZGluZyB0byBzdGF5IGluIHRoZSBSZXNvdXJjZSBz
aWRlYmFyLAorICAgICAgICBidXQgdGhlIHJlc291cmNlIGlzIG9rYXkgd2l0aCBzaG93aW5nIGlu
IGFueSBzaWRlYmFyLCBzbyB3ZSBzdGF5IG9uIFRpbWVsaW5lcy4KKworICAgICAgICA1LiBSZXNv
dXJjZSBzaWRlYmFyIHN0YXRlIHJlc3RvcmF0aW9uIHNob3VsZCB0cnkgaGFyZGVyIHRvIHJlc3Rv
cmUgc2VsZWN0aW9uLgorICAgICAgICBPbiByZWxvYWQsIHN0YXRlIHJlc3RvcmF0aW9uIHdvdWxk
IGtub3cgdGhlIHJlc291cmNlIHRvIHJlLXNlbGVjdCBpbiB0aGUKKyAgICAgICAgUmVzb3VyY2Vz
IHNpZGViYXIuIEFzIFJlc291cmNlVHJlZUVsZW1lbnRzIGFyZSBhZGRlZCB0byB0aGUgc2lkZWJh
cgorICAgICAgICB0aGV5IGFyZSBjaGVja2VkIGFnYWluc3QgdGhlIHN0YXRlIHJlc3RvcmF0aW9u
IGNvb2tpZS4gSWYgdGhleSBtYXRjaCwKKyAgICAgICAgdGhleSB3b3VsZCBzZWxlY3QgdGhlIGVs
ZW1lbnQgYW5kIGRlbGV0ZSB0aGUgY29va2llLiBVbmZvcnR1bmF0ZWx5LAorICAgICAgICBpZiB0
aGlzIHdhcyB0aGUgZmlyc3QgVHJlZUVsZW1lbnQgY2hpbGQgYmVpbmcgYWRkZWQgdG8gYSBGcmFt
ZVRyZWVFbGVtZW50LAorICAgICAgICB0aGUgRnJhbWVUcmVlRWxlbWVudCBvbnBvcHVsYXRlIHdv
dWxkIHJlbW92ZSBhbGwgY2hpbGRyZW4gYW5kIHJlLWFkZAorICAgICAgICB0aGVtIGluIGEgdW5p
cXVlIHdheS4gVW5mb3J0dW5hdGVseSB0aGlzIG1lYW5zIHRoZSBUcmVlRWxlbWVudCB3ZQorICAg
ICAgICBzZWxlY3RlZCBiYXNlZCBvbiB0aGUgY29va2llLCBpbW1lZGlhdGVseSBnb3QgdGhyb3du
IGF3YXkgYW5kIHJlY3JlYXRlZCwKKyAgICAgICAgYW5kIHdlIG5vIGxvbmdlciByZXZlYWwgYW5k
IHNlbGVjdCBpdC4gUHV0IGluIGEgd29ya2Fyb3VuZCBoZXJlLCBidXQKKyAgICAgICAgd2Ugc2hv
dWxkIHJlYWxseSBhZGRyZXNzIHRoZSBvcmRlciBvZiBvcGVyYXRpb25zIGhlcmUsIG9yIGNoYW5n
ZQorICAgICAgICBob3cgRnJhbWVUcmVlRWxlbWVudCBwb3B1bGF0aW9uIHdvcmtzLiBUaGlzIHNl
ZW1lZCBsaWtlIGEgc2FmZSB3b3JrYXJvdW5kLgorCisgICAgICAgIDYuIFNob3cgRXJyb3IgQ29u
c29sZSB0cmlnZ2VyaW5nIGVhcmx5LCBjb3VsZCBoYXZlIHVuZXhwZWN0ZWQgc2lkZWJhciBiZWhh
dmlvci4KKyAgICAgICAgT3BlbmluZyBXZWIgSW5zcGVjdG9yIGRpcmVjdGx5IHRvIHRoZSBjb25z
b2xlIGNhbiBydW4gYmVmb3JlCisgICAgICAgIFdlYkluc3BlY3Rvci5jb250ZW50TG9hZGVkIChE
T01Db250ZW50TG9hZGVkKS4gU28gaW4gdGhhdCBjYXNlCisgICAgICAgIFdlYkluc3BlY3Rvci5z
aG93RnVsbEhlaWdodENvbnNvbGUgd2FzIG5vdCBoYW5kbGluZyBpZiB0aGUgY29udGVudEJyb3dz
ZXIKKyAgICAgICAgaGFkIG5vIGNvbnRlbnQgdmlldyB5ZXQsIGFuZCB0aGUgc2lkZWJhciBtaWdo
dCBiZS1yZW9wZW5lZCBsYXRlciBvbgorICAgICAgICBpbiBjb250ZW50TG9hZGVkIGJhc2VkIG9u
IHRoZSBzZXR0aW5nIHZhbHVlLgorICAgICAgICAKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jh
c2UvTWFpbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5jb250ZW50TG9hZGVkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5zaG93RnVsbEhlaWdodENvbnNvbGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLnRvZ2dsZUNvbnNvbGVWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fbWFpblJl
c291cmNlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fcHJvdmlzaW9uYWxMb2Fk
U3RhcnRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX3BhZ2VIaWRkZW4pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLl9yZXZlYWxBbmRTZWxlY3RSZXByZXNlbnRlZE9iamVjdEluTmF2aWdhdGlv
blNpZGViYXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl91cGRhdGVDb29raWVGb3JJbnNwZWN0
b3JWaWV3U3RhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9jb250ZW50QnJvd3NlckN1cnJl
bnRDb250ZW50Vmlld0RpZENoYW5nZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9O
YXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRp
b25TaWRlYmFyUGFuZWwucHJvdG90eXBlLl90cmVlRWxlbWVudEFkZGVkT3JDaGFuZ2VkKToKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fbWFpbkZy
YW1lTWFpblJlc291cmNlRGlkQ2hhbmdlLmRlbGF5ZWRXb3JrKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUuX21haW5GcmFtZU1haW5SZXNvdXJj
ZURpZENoYW5nZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVNpZGVi
YXJQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbC5w
cm90b3R5cGUuX3JlY29yZGluZ0xvYWRlZCk6CisKIDIwMTQtMDgtMTQgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBEcmFnZ2lu
ZyBVbmRvY2tlZCBpbnNwZWN0b3IgYnkgd2luZG93IHRpdGxlIGhhcyBicm9rZW4gYmVoYXZpb3IK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFp
bi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpp
bmRleCBiMzQ5YTg0Li5jYmJiZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC0zNDUsNiArMzQ1LDggQEAgV2ViSW5zcGVjdG9y
LmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigpCiAKICAgICBpZiAodGhpcy5fc2hvd2luZ1NwbGl0
Q29uc29sZVNldHRpbmcudmFsdWUpCiAgICAgICAgIHRoaXMuc2hvd1NwbGl0Q29uc29sZSgpOwor
CisgICAgdGhpcy5fY29udGVudExvYWRlZCA9IHRydWU7CiB9CiAKIFdlYkluc3BlY3Rvci5zaWRl
YmFyUGFuZWxGb3JDdXJyZW50Q29udGVudFZpZXcgPSBmdW5jdGlvbigpCkBAIC02MjMsNyArNjI1
LDcgQEAgV2ViSW5zcGVjdG9yLnNob3dGdWxsSGVpZ2h0Q29uc29sZSA9IGZ1bmN0aW9uKHNjb3Bl
KQogCiAgICAgdGhpcy5jb25zb2xlQ29udGVudFZpZXcuc2NvcGVCYXIuaXRlbShzY29wZSkuc2Vs
ZWN0ZWQgPSB0cnVlOwogCi0gICAgaWYgKHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRl
bnRWaWV3ICE9PSB0aGlzLmNvbnNvbGVDb250ZW50VmlldykgeworICAgIGlmICghdGhpcy5jb250
ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXcgfHwgdGhpcy5jb250ZW50QnJvd3Nlci5jdXJy
ZW50Q29udGVudFZpZXcgIT09IHRoaXMuY29uc29sZUNvbnRlbnRWaWV3KSB7CiAgICAgICAgIHRo
aXMuX3dhc1Nob3dpbmdOYXZpZ2F0aW9uU2lkZWJhckJlZm9yZUZ1bGxIZWlnaHRDb25zb2xlID0g
IXRoaXMubmF2aWdhdGlvblNpZGViYXIuY29sbGFwc2VkOwogCiAgICAgICAgIC8vIENvbGxhcHNl
IHRoZSBzaWRlYmFyIGJlZm9yZSBzaG93aW5nIHRoZSBjb25zb2xlIHZpZXcsIHNvIHRoZSBjaGVj
ayBmb3IgdGhlIGNvbGxhcHNlZCBzdGF0ZSBpbgpAQCAtNjMxLDYgKzYzMywxMSBAQCBXZWJJbnNw
ZWN0b3Iuc2hvd0Z1bGxIZWlnaHRDb25zb2xlID0gZnVuY3Rpb24oc2NvcGUpCiAgICAgICAgIC8v
IHRyZWUgZWxlbWVudHMgaW4gdGhlIGN1cnJlbnQgc2lkZWJhci4KICAgICAgICAgdGhpcy5uYXZp
Z2F0aW9uU2lkZWJhci5jb2xsYXBzZWQgPSB0cnVlOwogCisgICAgICAgIC8vIElmIHRoaXMgaXMg
YmVmb3JlIHRoZSBjb250ZW50IGhhcyBmaW5pc2hlZCBsb2FkaW5nIHVwZGF0ZSB0aGUgY29sbGFw
c2VkIHZhbHVlIHNldHRpbmcKKyAgICAgICAgLy8gb3Vyc2VsdmVzIHNvIHRoYXQgd2UgZG9uJ3Qg
dW5jb2xsYXBzZSB0aGUgbmF2aWdhdGlvbiBzaWRlYmFyIHdoZW4gaXQgaXMgbG9hZGVkLgorICAg
ICAgICBpZiAoIXRoaXMuX2NvbnRlbnRMb2FkZWQpCisgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0
aW9uU2lkZWJhckNvbGxhcHNlZFNldHRpbmcudmFsdWUgPSB0cnVlOworCiAgICAgICAgIC8vIEJl
IHN1cmUgdG8gY2xvc2UgYW55IGV4aXN0aW5nIGxvZyB2aWV3IGluIHRoZSBzcGxpdCBjb250ZW50
IGJyb3dzZXIgYmVmb3JlIHNob3dpbmcgaXQgaW4gdGhlCiAgICAgICAgIC8vIG1haW4gY29udGVu
dCBicm93c2VyLiBXZSBjYW4gb25seSBzaG93IGEgY29udGVudCB2aWV3IGluIG9uZSBicm93c2Vy
IGF0IGEgdGltZS4KICAgICAgICAgdGhpcy5zcGxpdENvbnRlbnRCcm93c2VyLmNvbnRlbnRWaWV3
Q29udGFpbmVyLmNsb3NlQWxsQ29udGVudFZpZXdzT2ZQcm90b3R5cGUoV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3KTsKQEAgLTY1OCw4ICs2NjUsMTEgQEAgV2ViSW5zcGVjdG9yLnRvZ2dsZUNv
bnNvbGVWaWV3ID0gZnVuY3Rpb24oKQogICAgIGlmICh0aGlzLmlzU2hvd2luZ0NvbnNvbGVWaWV3
KCkpIHsKICAgICAgICAgaWYgKHRoaXMuY29udGVudEJyb3dzZXIuY2FuR29CYWNrKCkpCiAgICAg
ICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLmdvQmFjaygpOwotICAgICAgICBlbHNlCisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRpb25TaWRlYmFyLnNlbGVj
dGVkU2lkZWJhclBhbmVsKQorICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblNpZGViYXIu
c2VsZWN0ZWRTaWRlYmFyUGFuZWwgPSB0aGlzLnJlc291cmNlU2lkZWJhclBhbmVsOwogICAgICAg
ICAgICAgdGhpcy5yZXNvdXJjZVNpZGViYXJQYW5lbC5zaG93RGVmYXVsdENvbnRlbnRWaWV3KCk7
CisgICAgICAgIH0KIAogICAgICAgICBpZiAodGhpcy5fd2FzU2hvd2luZ05hdmlnYXRpb25TaWRl
YmFyQmVmb3JlRnVsbEhlaWdodENvbnNvbGUpCiAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25T
aWRlYmFyLmNvbGxhcHNlZCA9IGZhbHNlOwpAQCAtNzc1LDYgKzc4NSw4IEBAIFdlYkluc3BlY3Rv
ci5fbWFpblJlc291cmNlRGlkQ2hhbmdlID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgaWYgKCFldmVu
dC50YXJnZXQuaXNNYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdGhpcy5faW5Q
cm92aXNpb25hbExvYWQgPSBmYWxzZTsKKwogICAgIHRoaXMuX3Jlc3RvcmVJbnNwZWN0b3JWaWV3
U3RhdGVGcm9tQ29va2llKHRoaXMuX2xhc3RJbnNwZWN0b3JWaWV3U3RhdGVDb29raWVTZXR0aW5n
LnZhbHVlLCB0cnVlKTsKIAogICAgIHRoaXMudXBkYXRlV2luZG93VGl0bGUoKTsKQEAgLTc4Niw2
ICs3OTgsOCBAQCBXZWJJbnNwZWN0b3IuX3Byb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQgPSBmdW5jdGlv
bihldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdGhpcy5fdXBkYXRlQ29va2llRm9ySW5z
cGVjdG9yVmlld1N0YXRlKCk7CisKKyAgICB0aGlzLl9pblByb3Zpc2lvbmFsTG9hZCA9IHRydWU7
CiB9CiAKIFdlYkluc3BlY3Rvci5fd2luZG93Rm9jdXNlZCA9IGZ1bmN0aW9uKGV2ZW50KQpAQCAt
ODUwLDcgKzg2NCwxMCBAQCBXZWJJbnNwZWN0b3IuX21vdXNlTW92ZWQgPSBmdW5jdGlvbihldmVu
dCkKIAogV2ViSW5zcGVjdG9yLl9wYWdlSGlkZGVuID0gZnVuY3Rpb24oZXZlbnQpCiB7Ci0gICAg
dGhpcy5fdXBkYXRlQ29va2llRm9ySW5zcGVjdG9yVmlld1N0YXRlKCk7CisgICAgLy8gRklYTUU6
IHBhZ2VoaWRlIGV2ZW50cyBhcmUgbm90IGZpcmluZyBhdCB0aGUgY29ycmVjdCB0aW1lLgorICAg
IC8vIElnbm9yZSB0aGUgZXZlbnQgZm9yIG5vdywgYW5kIGluc3RlYWQgdXBkYXRlIHZpZXcgc3Rh
dGUKKyAgICAvLyBldmVyeSB0aW1lIHRoZSBDb250ZW50VmlldyBjaGFuZ2VzIGluc3RlYWQgb2Yg
b25seSB3aGVuIHdlIGNsb3NlLgorICAgIC8vIHRoaXMuX3VwZGF0ZUNvb2tpZUZvckluc3BlY3Rv
clZpZXdTdGF0ZSgpOwogfQogCiBXZWJJbnNwZWN0b3IuX3VuZG9jayA9IGZ1bmN0aW9uKGV2ZW50
KQpAQCAtOTA2LDYgKzkyMyw4IEBAIFdlYkluc3BlY3Rvci5fcmV2ZWFsQW5kU2VsZWN0UmVwcmVz
ZW50ZWRPYmplY3RJbk5hdmlnYXRpb25TaWRlYmFyID0gZnVuY3Rpb24ocmVwCiAgICAgaWYgKCFz
ZWxlY3RlZFNpZGViYXJQYW5lbCkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRklYTUU6IFNl
bGVjdGluZyBhIENhbGxGcmFtZVRyZWVFbGVtZW50IHNlbGVjdHMgdGhlIHJlc291cmNlLCBkb2Vz
IHRoZSBjb2RlIGJlbG93IHdvcms/CisgICAgICAgIAogICAgIC8vIElmIHRoZSB0cmVlIG91dGxp
bmUgaXMgcHJvY2Vzc2luZyBhIHNlbGVjdGlvbiBjdXJyZW50bHkgdGhlbiB3ZSBjYW4gYXNzdW1l
IHRoZSBzZWxlY3Rpb24gZG9lcyBub3QKICAgICAvLyBuZWVkIHRvIGJlIGNoYW5nZWQuIFRoaXMg
aXMgbmVlZGVkIHRvIGFsbG93IGJyZWFrcG9pbnRzIHRyZWUgZWxlbWVudHMgdG8gYmUgc2VsZWN0
ZWQgd2l0aG91dCBqdW1waW5nCiAgICAgLy8gYmFjayB0byBzZWxlY3RpbmcgdGhlIHJlc291cmNl
IHRyZWUgZWxlbWVudC4KQEAgLTEwNDQsNiArMTA2MywxMiBAQCBXZWJJbnNwZWN0b3IuX3VwZGF0
ZUNvb2tpZUZvckluc3BlY3RvclZpZXdTdGF0ZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAorICAgIC8vIElnbm9yZSBzYXZpbmcgdGhlIHNpZGViYXIgc3RhdGUgZm9yIHBy
b3Zpc2lvbmFsIGxvYWRzLiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHNpZGViYXIKKyAgICAvLyBt
YXkgaGF2ZSBiZWVuIHRoZSByZXN1bHQgb2YgY29udGVudCB2aWV3cyBjbG9zaW5nIGFzIGEgcmVz
dWx0IG9mIGEgcGFnZSBuYXZpZ2F0aW9uLAorICAgIC8vIGJ1dCB0aG9zZSBjb250ZW50IHZpZXdz
IG1heSBjb21lIGJhY2sgdmVyeSBzb29uLgorICAgIGlmICh0aGlzLl9pblByb3Zpc2lvbmFsTG9h
ZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgdmFyIHNlbGVjdGVkU2lkZWJhclBhbmVsID0gdGhp
cy5uYXZpZ2F0aW9uU2lkZWJhci5zZWxlY3RlZFNpZGViYXJQYW5lbDsKICAgICBpZiAoIXNlbGVj
dGVkU2lkZWJhclBhbmVsKQogICAgICAgICByZXR1cm47CkBAIC0xMDg5LDYgKzExMTQsNyBAQCBX
ZWJJbnNwZWN0b3IuX2NvbnRlbnRCcm93c2VyQ3VycmVudENvbnRlbnRWaWV3RGlkQ2hhbmdlID0g
ZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgIGN1cnJlbnRDb250ZW50Vmlldy5fX2xhc3ROYXZpZ2F0
aW9uU2lkZWJhclBhbmVsSWRlbnRpZmVyID0gc2VsZWN0ZWRTaWRlYmFyUGFuZWxJZGVudGlmaWVy
OwogCiAgICAgdGhpcy5fcmV2ZWFsQW5kU2VsZWN0UmVwcmVzZW50ZWRPYmplY3RJbk5hdmlnYXRp
b25TaWRlYmFyKGN1cnJlbnRDb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdCk7CisgICAgdGhp
cy5fdXBkYXRlQ29va2llRm9ySW5zcGVjdG9yVmlld1N0YXRlKCk7CiB9CiAKIFdlYkluc3BlY3Rv
ci5fY29udGVudEJyb3dzZXJSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UgPSBmdW5jdGlvbihl
dmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCmluZGV4IDU5Y2Y4ZWIu
Ljg2N2RhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpAQCAtNTQw
LDcgKzU0MCw5IEBAIFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlw
ZSA9IHsKIAogICAgICAgICB0aGlzLl9jaGVja0ZvckVtcHR5RmlsdGVyUmVzdWx0cygpOwogICAg
ICAgICB0aGlzLl91cGRhdGVDb250ZW50T3ZlcmZsb3dTaGFkb3dWaXNpYmlsaXR5U29vbigpOwot
ICAgICAgICB0aGlzLl9jaGVja0VsZW1lbnRzRm9yUGVuZGluZ1ZpZXdTdGF0ZUNvb2tpZSh0cmVl
RWxlbWVudCk7CisKKyAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQpCisgICAgICAgICAgICB0aGlz
Ll9jaGVja0VsZW1lbnRzRm9yUGVuZGluZ1ZpZXdTdGF0ZUNvb2tpZSh0cmVlRWxlbWVudCk7CiAg
ICAgfSwKIAogICAgIF90cmVlRWxlbWVudEV4cGFuZGVkT3JDb2xsYXBzZWQ6IGZ1bmN0aW9uKHRy
ZWVFbGVtZW50KQpAQCAtNjczLDggKzY3NSwxMyBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNp
ZGViYXJQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBfY2hlY2tFbGVtZW50c0ZvclBlbmRpbmdW
aWV3U3RhdGVDb29raWU6IGZ1bmN0aW9uKHRyZWVFbGVtZW50cywgbWF0Y2hUeXBlT25seSkKICAg
ICB7Ci0gICAgICAgIGlmICghdGhpcy5fcGVuZGluZ1ZpZXdTdGF0ZUNvb2tpZSkKKyAgICAgICAg
aWYgKCF0aGlzLl9wZW5kaW5nVmlld1N0YXRlQ29va2llKSB7CisgICAgICAgICAgICBpZiAodGhp
cy5fdmlld1N0YXRlQ29va2llTWF0Y2hpbmdSZXByZXNlbnRlZE9iamVjdCAmJiAhQXJyYXkuaXNB
cnJheSh0cmVlRWxlbWVudHMpICYmIHRyZWVFbGVtZW50cy5yZXByZXNlbnRlZE9iamVjdCA9PT0g
dGhpcy5fdmlld1N0YXRlQ29va2llTWF0Y2hpbmdSZXByZXNlbnRlZE9iamVjdCkgeworICAgICAg
ICAgICAgICAgIHRyZWVFbGVtZW50cy5yZXZlYWxBbmRTZWxlY3QoKTsKKyAgICAgICAgICAgICAg
ICBkZWxldGUgdGhpcy5fdmlld1N0YXRlQ29va2llTWF0Y2hpbmdSZXByZXNlbnRlZE9iamVjdDsK
KyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAg
IHZhciBjb29raWUgPSB0aGlzLl9wZW5kaW5nVmlld1N0YXRlQ29va2llOwogCkBAIC03MTYsMTQg
KzcyMywyMiBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIH0sIHRoaXMpOwogCiAgICAgICAgIGlmIChtYXRjaGVkRWxlbWVudCkgewot
ICAgICAgICAgICAgbWF0Y2hlZEVsZW1lbnQucmV2ZWFsQW5kU2VsZWN0KHRydWUsIGZhbHNlKTsK
KyAgICAgICAgICAgIG1hdGNoZWRFbGVtZW50LnJldmVhbEFuZFNlbGVjdCgpOwogCiAgICAgICAg
ICAgICBkZWxldGUgdGhpcy5fcGVuZGluZ1ZpZXdTdGF0ZUNvb2tpZTsKIAorICAgICAgICAgICAg
Ly8gRklYTUU6IER1ZSB0byB0aGUgb3JkZXIgb2YgdHJlZSBlbGVtZW50cyBnZXR0aW5nIGluc2Vy
dGVkIGFuZCBvbnBvcHVsYXRlCisgICAgICAgICAgICAvLyBnZXR0aW5nIGNhbGxlZCBvbiB0aGUg
RnJhbWVUcmVlRWxlbWVudCwgdGhpcyB0cmVlIGVsZW1lbnQgY291bGQgZ2V0CisgICAgICAgICAg
ICAvLyBpbW1lZGlhdGVseSByZW1vdmVkIGFuZCByZS1pbnNlcnRlZC4gQXQgd2hpY2ggcG9pbnQs
IGl0IHdpbGwgbm90CisgICAgICAgICAgICAvLyBnZXQgaXRzIHNlbGVjdGVkIHN0YXRlIHJlc3Rv
cmVkLiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgdGhhdCBwYXJ0aWN1bGFyCisgICAgICAgICAg
ICAvLyBjaGFpbiBvZiBldmVudHMuIFdlIHNob3VsZCBmaXggdGhpcyBpbiBhIGNsZWFuZXIgd2F5
LgorICAgICAgICAgICAgdGhpcy5fdmlld1N0YXRlQ29va2llTWF0Y2hpbmdSZXByZXNlbnRlZE9i
amVjdCA9IG1hdGNoZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OworCiAgICAgICAgICAgICAv
LyBEZWxheSBjbGVhcmluZyB0aGUgcmVzdG9yaW5nU3RhdGUgZmxhZyB1bnRpbCB0aGUgbmV4dCBy
dW5sb29wIHNvIGxpc3RlbmVycwogICAgICAgICAgICAgLy8gY2hlY2tpbmcgZm9yIGl0IGluIHRo
aXMgcnVubG9vcCBzdGlsbCBrbm93IHN0YXRlIHdhcyBiZWluZyByZXN0b3JlZC4KICAgICAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X3Jlc3RvcmluZ1N0YXRlOworICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl92aWV3U3RhdGVD
b29raWVNYXRjaGluZ1JlcHJlc2VudGVkT2JqZWN0OwogICAgICAgICAgICAgfS5iaW5kKHRoaXMp
KTsKIAogICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbmFsQXR0ZW1wdFRvUmVzdG9yZVZpZXdTdGF0
ZVRpbWVvdXQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKaW5kZXggODFkYTc5
ZC4uYjQzYzAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKQEAgLTU1Myw5
ICs1NTMsMTIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsLnByb3RvdHlwZSA9
IHsKIAogICAgIF9tYWluRnJhbWVNYWluUmVzb3VyY2VEaWRDaGFuZ2U6IGZ1bmN0aW9uKGV2ZW50
KQogICAgIHsKKyAgICAgICAgdmFyIHdhc1Nob3dpbmdSZXNvdXJjZVNpZGViYXIgPSB0aGlzLnNl
bGVjdGVkOwogICAgICAgICB2YXIgY3VycmVudENvbnRlbnRWaWV3ID0gV2ViSW5zcGVjdG9yLmNv
bnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKICAgICAgICAgdmFyIHdhc1Nob3dpbmdS
ZXNvdXJjZUNvbnRlbnRWaWV3ID0gY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV2ViSW5z
cGVjdG9yLlJlc291cmNlQ29udGVudFZpZXcKLSAgICAgICAgICAgIHx8IGN1cnJlbnRDb250ZW50
VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5GcmFtZUNvbnRlbnRWaWV3IHx8IGN1cnJlbnRD
b250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHRDb250ZW50VmlldzsKKyAg
ICAgICAgICAgIHx8IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZUNsdXN0ZXJDb250ZW50VmlldworICAgICAgICAgICAgfHwgY3VycmVudENvbnRlbnRW
aWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkZyYW1lQ29udGVudFZpZXcKKyAgICAgICAgICAg
IHx8IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHRDb250
ZW50VmlldzsKIAogICAgICAgICAvLyBDbG9zZSBhbGwgcmVzb3VyY2UgYW5kIGZyYW1lIGNvbnRl
bnQgdmlld3Mgc2luY2UgdGhlIG1haW4gZnJhbWUgaGFzIG5hdmlnYXRlZCBhbmQgYWxsIHJlc291
cmNlcyBhcmUgY2xlYXJlZC4KICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLmNv
bnRlbnRWaWV3Q29udGFpbmVyLmNsb3NlQWxsQ29udGVudFZpZXdzT2ZQcm90b3R5cGUoV2ViSW5z
cGVjdG9yLlJlc291cmNlQ2x1c3RlckNvbnRlbnRWaWV3KTsKQEAgLTU2NSw5ICs1NjgsMTggQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ZnVuY3Rpb24gZGVsYXllZFdvcmsoKQogICAgICAgICB7CiAgICAgICAgICAgICAvLyBTaG93IHRo
ZSBtYWluIGZyYW1lIHNpbmNlIHRoZXJlIGlzIG5vIGNvbnRlbnQgdmlldyBzaG93aW5nIG9yIHdl
IHdlcmUgc2hvd2luZyBhIHJlc291cmNlIGJlZm9yZS4KLSAgICAgICAgICAgIC8vIEZJWE1FOiBX
ZSBjb3VsZCB0cnkgdG8gc2VsZWN0IHRoZSBzYW1lIHJlc291cmNlIHRoYXQgd2FzIHNlbGVjdGVk
IGJlZm9yZSBpbiB0aGUgY2FzZSBvZiBhIHJlbG9hZC4KLSAgICAgICAgICAgIGlmICghV2ViSW5z
cGVjdG9yLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldyB8fCB3YXNTaG93aW5nUmVz
b3VyY2VDb250ZW50VmlldykKKyAgICAgICAgICAgIC8vIENvb2tpZSByZXN0b3JhdGlvbiB3aWxs
IGF0dGVtcHQgdG8gcmUtc2VsZWN0IHRoZSByZXNvdXJjZSB3ZSB3ZXJlIHNob3dpbmcuCisgICAg
ICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZp
ZXcgfHwgd2FzU2hvd2luZ1Jlc291cmNlQ29udGVudFZpZXcpIHsKKyAgICAgICAgICAgICAgICAv
LyBJZiB3ZSB3ZXJlIHNob3dpbmcgYSByZXNvdXJjZSBpbnNpZGUgb2YgdGhlIFJlc291cmNlU2lk
ZWJhciwgd2Ugc2hvdWxkCisgICAgICAgICAgICAgICAgLy8gcmUtc2hvdyB0aGUgcmVzb3VyY2Ug
aW5zaWRlIG9mIHRoZSByZXNvdXJjZSBzaWRlYmFyLiBJdCBpcyBwb3NzaWJsZSB0aGF0CisgICAg
ICAgICAgICAgICAgLy8gdGhlIHNpZGViYXIgcGFuZWwgY291bGQgaGF2ZSBzd2l0Y2hlZCB0byBh
bm90aGVyIHZpZXcgaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0LgorICAgICAgICAgICAgICAgIGlm
ICh3YXNTaG93aW5nUmVzb3VyY2VTaWRlYmFyKQorICAgICAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IubmF2aWdhdGlvblNpZGViYXIuc2VsZWN0ZWRTaWRlYmFyUGFuZWwgPSB0aGlzOworCisg
ICAgICAgICAgICAgICAgLy8gTk9URTogVGhpcyBzZWxlY3Rpb24sIGR1cmluZyBwcm92aXNpb25h
bCBsb2FkaW5nLCB3b24ndCBiZSBzYXZlZCwgc28gaXQgaXMKKyAgICAgICAgICAgICAgICAvLyBz
YWZlIHRvIGRvIGFuZCBub3QtY2xvYmJlciBjb29raWUgcmVzdG9yYXRpb24uCiAgICAgICAgICAg
ICAgICAgdGhpcy5fbWFpbkZyYW1lVHJlZUVsZW1lbnQucmV2ZWFsQW5kU2VsZWN0KHRydWUsIGZh
bHNlKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8vIERlbGF5IHRoaXMg
d29yayBiZWNhdXNlIG90aGVyIGxpc3RlbmVycyBvZiB0aGlzIGV2ZW50IG1pZ2h0IG5vdCBoYXZl
IGZpcmVkIHlldC4gU28gc2VsZWN0aW5nIHRoZSBtYWluIGZyYW1lCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVNpZGViYXJQYW5l
bC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5l
U2lkZWJhclBhbmVsLmpzCmluZGV4IGFjYjUzNWEuLjllMzMyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lU2lkZWJhclBhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVs
aW5lU2lkZWJhclBhbmVsLmpzCkBAIC00MzMsNyArNDMzLDkgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lU2lkZWJhclBhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfcmVjb3JkaW5nTG9hZGVkOiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9hY3RpdmVDb250ZW50VmlldyA9IFdlYkluc3Bl
Y3Rvci5jb250ZW50QnJvd3Nlci5jb250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0KFdlYklu
c3BlY3Rvci50aW1lbGluZU1hbmFnZXIuYWN0aXZlUmVjb3JkaW5nKTsKLSAgICAgICAgV2ViSW5z
cGVjdG9yLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyh0aGlzLl9hY3RpdmVDb250ZW50
Vmlldyk7CisKKyAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQpCisgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX2FjdGl2ZUNvbnRlbnRW
aWV3KTsKICAgICB9LAogCiAgICAgX3JlY29yZEdseXBoTW91c2VkT3ZlcjogZnVuY3Rpb24oZXZl
bnQpCg==
</data>
<flag name="review"
          id="261350"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237811</attachid>
            <date>2014-09-08 14:36:39 -0700</date>
            <delta_ts>2014-09-08 17:02:17 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>yay-restoration.patch</filename>
            <type>text/plain</type>
            <size>15241</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGY4YzBjNmMuLmFhZDljODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDE0LTA5LTA4ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogSW5zcGVj
dG9yIGZyZXF1ZW50bHkgcmVzdG9yZXMgd3JvbmcgdmlldyB3aGVuIG9wZW5lZCAob2Z0ZW4gVGlt
ZWxpbmVzIGluc3RlYWQgb2YgUmVzb3VyY2UpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU5NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGVyZSB3ZXJlIG51bWVyb3VzIHN1YnRsZSByYWNlIGNvbmRp
dGlvbnMgaW4gc3RhdGUgcmVzdG9yYXRpb24uCisgICAgICAgIFRoaXMgcGF0Y2ggaW50ZW5kcyB0
byBmaXggYSBudW1iZXIgb2YgdGhlbSB0byBnZXQgd2hhdCBmZWVscworICAgICAgICBsaWtlIHNh
bmUgYmVoYXZpb3IgZm9yIHNlbGVjdGVkIHNpZGViYXIgc3RhdGUgcmVzdG9yYXRpb24uCisKKyAg
ICAgICAgMS4gU3RhcnRpbmcgYSBUaW1lbGluZSByZWNvcmRpbmcgbm8gbG9uZ2VyIGF1dG9tYXRp
Y2FsbHkgc3dpdGNoZXMgdG8gdGhlIFRpbWVsaW5lQ29udGVudFZpZXcuCisgICAgICAgIFRoaXMg
d2FzIG1ha2luZyBldmVyeSByZWxvYWQgc3dpdGNoIHRvIFRpbWVsaW5lcy4gSWYgeW91IGhhZAor
ICAgICAgICBhIHJlc291cmNlIHNlbGVjdGVkIChlLmcuIHRoZSBET00gVHJlZSkgd2Ugc2hvdWxk
IGdvIGJhY2sKKyAgICAgICAgdG8gc2hvd2luZyB0aGUgRE9NIHRyZWUuCisKKyAgICAgICAgMi4g
QmFja2dyb3VuZCBzaWRlYmFycyBzaG91bGQgbm90IHJldmVhbCBhbmQgc2VsZWN0IHRyZWUgZWxl
bWVudHMuCisgICAgICAgIFRoaXMgd2FzIG1ha2luZyByZXNvdXJjZXMgZ2V0IHNlbGVjdGVkIGlu
IFRpbWVsaW5lcyB3aGVuIHJlbG9hZGluZyB0aGUgcGFnZQorICAgICAgICBiZWNhdXNlIHRoZSBi
YWNrZ3JvdW5kIFJlc291cmNlcyBzaWRlYmFyIHdhcyByZXN0b3Jpbmcgc2VsZWN0aW9uIG9mIHRo
ZSByZXNvdXJjZS4KKyAgICAgICAgVGhhdCBpcyBhbiB1bmV4cGVjdGVkIHNlbGVjdGlvbiBhbmQg
YnJlYWtzIHRoZSBleHBlcmllbmNlIG9mIFRpbWVsaW5lcy4KKworICAgICAgICAzLiBDb250ZW50
VmlldyBjaGFuZ2VzIGR1cmluZyBwYWdlIG5hdmlnYXRpb24gLyByZWxvYWQgc2hvdWxkIG5vdCBi
ZSBzYXZlZCwgYW5kIGltcHJvdmUgUmVzb3VyY2UgcmVzdG9yYXRpb24uCisgICAgICAgIElmIGEg
VGltZWxpbmVDb250ZW50VmlldyB3YXMgaW4gdGhlIENvbnRlbnRCcm93c2VyIGJhY2svZm9yd2Fy
ZCBoaXN0b3J5LAorICAgICAgICBhIHJlbG9hZCB3aXRoIGEgcmVzb3VyY2Ugc2VsZWN0ZWQgaW4g
dGhlIFJlc291cmNlcyBzaWRlYmFyIHdvdWxkIGVuZCB1cAorICAgICAgICBzaG93aW5nIHRoZSBU
aW1lbGluZXMgc2lkZWJhci4gVGhpcyB3YXMgYmVjYXVzZSB3aGVuIENvbnRlbnRWaWV3cyBhcmUK
KyAgICAgICAgY2xvc2VkIGR1cmluZyB0aGUgbmF2aWdhdGlvbiwgdGhlIENvbnRlbnRCcm93c2Vy
IHdvdWxkIGZhbGwgYmFjayB0byB0aGUKKyAgICAgICAgcmVtYWluaW5nIFRpbWVsaW5lQ29udGVu
dFZpZXcgYW5kIHN3aXRjaCB0byBpdHMgb25seSBhbGxvd2VkIHNpZGViYXIKKyAgICAgICAgKFRp
bWVsaW5lcykuIFJlc291cmNlU2lkZWJhclBhbmVsLCBrbm93aW5nIGEgcmVzb3VyY2Ugd2FzIHNl
bGVjdGVkLAorICAgICAgICB3b3VsZCBzZWxlY3QgdGhlIE1haW5GcmFtZSBpbnRlbmRpbmcgdG8g
c3RheSBpbiB0aGUgUmVzb3VyY2Ugc2lkZWJhciwKKyAgICAgICAgYnV0IHRoZSByZXNvdXJjZSBp
cyBva2F5IHdpdGggc2hvd2luZyBpbiBhbnkgc2lkZWJhciwgc28gd2Ugc3RheSBvbiBUaW1lbGlu
ZXMuCisKKyAgICAgICAgNC4gUmVzb3VyY2Ugc2lkZWJhciBzdGF0ZSByZXN0b3JhdGlvbiBzaG91
bGQgcHJvcGVydGx5IHJlc3RvcmUgc2VsZWN0aW9uLgorICAgICAgICBPbiByZWxvYWQsIHN0YXRl
IHJlc3RvcmF0aW9uIHdvdWxkIGtub3cgdGhlIHJlc291cmNlIHRvIHJlLXNlbGVjdCBpbiB0aGUK
KyAgICAgICAgUmVzb3VyY2VzIHNpZGViYXIuIEFzIFJlc291cmNlVHJlZUVsZW1lbnRzIGFyZSBh
ZGRlZCB0byB0aGUgc2lkZWJhcgorICAgICAgICB0aGV5IGFyZSBjaGVja2VkIGFnYWluc3QgdGhl
IHN0YXRlIHJlc3RvcmF0aW9uIGNvb2tpZS4gSWYgdGhleSBtYXRjaCwKKyAgICAgICAgdGhleSB3
b3VsZCBzZWxlY3QgdGhlIGVsZW1lbnQgYW5kIGRlbGV0ZSB0aGUgY29va2llLiBVbmZvcnR1bmF0
ZWx5LAorICAgICAgICBpZiB0aGlzIHdhcyB0aGUgZmlyc3QgVHJlZUVsZW1lbnQgY2hpbGQgYmVp
bmcgYWRkZWQgdG8gYSBGcmFtZVRyZWVFbGVtZW50LAorICAgICAgICB0aGUgRnJhbWVUcmVlRWxl
bWVudCBvbnBvcHVsYXRlIHdvdWxkIHJlbW92ZSBhbGwgY2hpbGRyZW4gYW5kIHJlLWFkZAorICAg
ICAgICB0aGVtIGluIGEgdW5pcXVlIHdheS4gVW5mb3J0dW5hdGVseSB0aGlzIG1lYW5zIHRoZSBU
cmVlRWxlbWVudCB3ZQorICAgICAgICBzZWxlY3RlZCBiYXNlZCBvbiB0aGUgY29va2llLCBpbW1l
ZGlhdGVseSBnb3QgdGhyb3duIGF3YXkgYW5kIHJlY3JlYXRlZCwKKyAgICAgICAgYW5kIHdlIG5v
IGxvbmdlciByZXZlYWwgYW5kIHNlbGVjdCBpdC4gVGhpcyBpcyBhIHNwZWNpYWwgY2FzZSBmb3IK
KyAgICAgICAgRnJhbWVUcmVlRWxlbWVudHMgd2hpY2ggdXNlIHRoZSBvbnBvcHVsYXRlIFNQSS4g
U28sIGluc3RlYWQgb2Ygc3RhcnRpbmcKKyAgICAgICAgcHJvY2Vzc2luZyB0aGUgbmV3IGVsZW1l
bnQgcXVldWUsIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUganVzdCB0cmlnZ2VyCisgICAgICAg
IHRoZSBvbnBvcHVsYXRlIGFuZCBlbGVtZW50cyBhcmUgbWFkZSBqdXN0IG9uY2UuCisKKyAgICAg
ICAgNS4gU2hvdyBFcnJvciBDb25zb2xlIHRyaWdnZXJpbmcgZWFybHksIGNvdWxkIGhhdmUgdW5l
eHBlY3RlZCBzaWRlYmFyIGJlaGF2aW9yLgorICAgICAgICBPcGVuaW5nIFdlYiBJbnNwZWN0b3Ig
ZGlyZWN0bHkgdG8gdGhlIGNvbnNvbGUgY2FuIHJ1biBiZWZvcmUKKyAgICAgICAgV2ViSW5zcGVj
dG9yLmNvbnRlbnRMb2FkZWQgKERPTUNvbnRlbnRMb2FkZWQpLiBTbyBpbiB0aGF0IGNhc2UKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLnNob3dGdWxsSGVpZ2h0Q29uc29sZSB3YXMgbm90IGhhbmRsaW5n
IGlmIHRoZSBjb250ZW50QnJvd3NlcgorICAgICAgICBoYWQgbm8gY29udGVudCB2aWV3IHlldCwg
YW5kIHRoZSBzaWRlYmFyIG1pZ2h0IGJlLXJlb3BlbmVkIGxhdGVyIG9uCisgICAgICAgIGluIGNv
bnRlbnRMb2FkZWQgYmFzZWQgb24gdGhlIHNldHRpbmcgdmFsdWUuCisKKyAgICAgICAgNi4gSW1w
cm92ZSBhdXRvbWF0aWMgcmVzb3VyY2Ugc2VsZWN0aW9uIGZvciBzaWRlYmFycyB3aXRoIG11bHRp
cGxlIHRyZWUgb3V0bGluZXMuCisgICAgICAgIFNlbGVjdGluZyBhIGNhbGwgZnJhbWUgdHJlZSBl
bGVtZW50IHdhcyB1bmV4cGVjdGVkbHkgY2hhbmdpbmcgdGhlCisgICAgICAgIHNlbGVjdGlvbiB0
byBhIFJlc291cmNlIHdoZXJlIHRoZSBicmVha3BvaW50IHdhcyBzZXQuIFRoaXMgd2FzCisgICAg
ICAgIGJlY2F1c2Ugd2Ugd2VyZSBvbmx5IGxvb2tpbmcgYXQgb25lIG9mIHBvdGVudGlhbGx5IG1h
bnkgY29udGVudAorICAgICAgICB0cmVlIG91dGxpbmVzIGluIHRoZSBzaWRlYmFyIHRvIHNlZSBp
ZiB0aGVyZSB3YXMgYSB1c2VyIGFjdGlvbi4KKyAgICAgICAgCisgICAgICAgICogVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuY29udGVudExvYWRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3Iuc2hvd0Z1bGxIZWlnaHRDb25zb2xlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci50b2dnbGVDb25zb2xlVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
X21haW5SZXNvdXJjZURpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX3Byb3Zpc2lv
bmFsTG9hZFN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9yZXZlYWxBbmRTZWxlY3RS
ZXByZXNlbnRlZE9iamVjdEluTmF2aWdhdGlvblNpZGViYXIpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLl91cGRhdGVDb29raWVGb3JJbnNwZWN0b3JWaWV3U3RhdGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLl9jb250ZW50QnJvd3NlckN1cnJlbnRDb250ZW50Vmlld0RpZENoYW5nZSk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLl90cmVl
RWxlbWVudEFkZGVkT3JDaGFuZ2VkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
c291cmNlU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5fbWFpbkZyYW1lTWFpblJlc291cmNlRGlkQ2hhbmdlLmRlbGF5
ZWRXb3JrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90
b3R5cGUuX21haW5GcmFtZU1haW5SZXNvdXJjZURpZENoYW5nZSk6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZVNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlY29yZGluZ0xvYWRlZCk6CisK
IDIwMTQtMDktMDcgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVzZSBhIDxjaXJjbGU+IGluc3RlYWQgb2YgYSA8cGF0aD4gaW4gRG93bmxvYWRBcnJvdy5z
dmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNl
L01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4u
anMKaW5kZXggZjU1YWY0Ny4uMGQyYjg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMzQ2LDYgKzM0Niw4IEBAIFdlYkluc3Bl
Y3Rvci5jb250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogCiAgICAgaWYgKHRoaXMuX3Nob3dpbmdT
cGxpdENvbnNvbGVTZXR0aW5nLnZhbHVlKQogICAgICAgICB0aGlzLnNob3dTcGxpdENvbnNvbGUo
KTsKKworICAgIHRoaXMuX2NvbnRlbnRMb2FkZWQgPSB0cnVlOwogfQogCiBXZWJJbnNwZWN0b3Iu
c2lkZWJhclBhbmVsRm9yQ3VycmVudENvbnRlbnRWaWV3ID0gZnVuY3Rpb24oKQpAQCAtNjEwLDcg
KzYxMiw3IEBAIFdlYkluc3BlY3Rvci5zaG93RnVsbEhlaWdodENvbnNvbGUgPSBmdW5jdGlvbihz
Y29wZSkKIAogICAgIHRoaXMuY29uc29sZUNvbnRlbnRWaWV3LnNjb3BlQmFyLml0ZW0oc2NvcGUp
LnNlbGVjdGVkID0gdHJ1ZTsKIAotICAgIGlmICh0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRD
b250ZW50VmlldyAhPT0gdGhpcy5jb25zb2xlQ29udGVudFZpZXcpIHsKKyAgICBpZiAoIXRoaXMu
Y29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3IHx8IHRoaXMuY29udGVudEJyb3dzZXIu
Y3VycmVudENvbnRlbnRWaWV3ICE9PSB0aGlzLmNvbnNvbGVDb250ZW50VmlldykgewogICAgICAg
ICB0aGlzLl93YXNTaG93aW5nTmF2aWdhdGlvblNpZGViYXJCZWZvcmVGdWxsSGVpZ2h0Q29uc29s
ZSA9ICF0aGlzLm5hdmlnYXRpb25TaWRlYmFyLmNvbGxhcHNlZDsKIAogICAgICAgICAvLyBDb2xs
YXBzZSB0aGUgc2lkZWJhciBiZWZvcmUgc2hvd2luZyB0aGUgY29uc29sZSB2aWV3LCBzbyB0aGUg
Y2hlY2sgZm9yIHRoZSBjb2xsYXBzZWQgc3RhdGUgaW4KQEAgLTYxOCw2ICs2MjAsMTEgQEAgV2Vi
SW5zcGVjdG9yLnNob3dGdWxsSGVpZ2h0Q29uc29sZSA9IGZ1bmN0aW9uKHNjb3BlKQogICAgICAg
ICAvLyB0cmVlIGVsZW1lbnRzIGluIHRoZSBjdXJyZW50IHNpZGViYXIuCiAgICAgICAgIHRoaXMu
bmF2aWdhdGlvblNpZGViYXIuY29sbGFwc2VkID0gdHJ1ZTsKIAorICAgICAgICAvLyBJZiB0aGlz
IGlzIGJlZm9yZSB0aGUgY29udGVudCBoYXMgZmluaXNoZWQgbG9hZGluZyB1cGRhdGUgdGhlIGNv
bGxhcHNlZCB2YWx1ZSBzZXR0aW5nCisgICAgICAgIC8vIG91cnNlbHZlcyBzbyB0aGF0IHdlIGRv
bid0IHVuY29sbGFwc2UgdGhlIG5hdmlnYXRpb24gc2lkZWJhciB3aGVuIGl0IGlzIGxvYWRlZC4K
KyAgICAgICAgaWYgKCF0aGlzLl9jb250ZW50TG9hZGVkKQorICAgICAgICAgICAgdGhpcy5fbmF2
aWdhdGlvblNpZGViYXJDb2xsYXBzZWRTZXR0aW5nLnZhbHVlID0gdHJ1ZTsKKwogICAgICAgICAv
LyBCZSBzdXJlIHRvIGNsb3NlIGFueSBleGlzdGluZyBsb2cgdmlldyBpbiB0aGUgc3BsaXQgY29u
dGVudCBicm93c2VyIGJlZm9yZSBzaG93aW5nIGl0IGluIHRoZQogICAgICAgICAvLyBtYWluIGNv
bnRlbnQgYnJvd3Nlci4gV2UgY2FuIG9ubHkgc2hvdyBhIGNvbnRlbnQgdmlldyBpbiBvbmUgYnJv
d3NlciBhdCBhIHRpbWUuCiAgICAgICAgIHRoaXMuc3BsaXRDb250ZW50QnJvd3Nlci5jb250ZW50
Vmlld0NvbnRhaW5lci5jbG9zZUFsbENvbnRlbnRWaWV3c09mUHJvdG90eXBlKFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50Vmlldyk7CkBAIC02NDUsOCArNjUyLDExIEBAIFdlYkluc3BlY3Rvci50b2dn
bGVDb25zb2xlVmlldyA9IGZ1bmN0aW9uKCkKICAgICBpZiAodGhpcy5pc1Nob3dpbmdDb25zb2xl
VmlldygpKSB7CiAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRCcm93c2VyLmNhbkdvQmFjaygpKQog
ICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5nb0JhY2soKTsKLSAgICAgICAgZWxzZQor
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5uYXZpZ2F0aW9uU2lkZWJhci5z
ZWxlY3RlZFNpZGViYXJQYW5lbCkKKyAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25TaWRl
YmFyLnNlbGVjdGVkU2lkZWJhclBhbmVsID0gdGhpcy5yZXNvdXJjZVNpZGViYXJQYW5lbDsKICAg
ICAgICAgICAgIHRoaXMucmVzb3VyY2VTaWRlYmFyUGFuZWwuc2hvd0RlZmF1bHRDb250ZW50Vmll
dygpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKHRoaXMuX3dhc1Nob3dpbmdOYXZpZ2F0aW9u
U2lkZWJhckJlZm9yZUZ1bGxIZWlnaHRDb25zb2xlKQogICAgICAgICAgICAgdGhpcy5uYXZpZ2F0
aW9uU2lkZWJhci5jb2xsYXBzZWQgPSBmYWxzZTsKQEAgLTc2Miw2ICs3NzIsOCBAQCBXZWJJbnNw
ZWN0b3IuX21haW5SZXNvdXJjZURpZENoYW5nZSA9IGZ1bmN0aW9uKGV2ZW50KQogICAgIGlmICgh
ZXZlbnQudGFyZ2V0LmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHRoaXMu
X2luUHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7CisKICAgICB0aGlzLl9yZXN0b3JlSW5zcGVjdG9y
Vmlld1N0YXRlRnJvbUNvb2tpZSh0aGlzLl9sYXN0SW5zcGVjdG9yVmlld1N0YXRlQ29va2llU2V0
dGluZy52YWx1ZSwgdHJ1ZSk7CiAKICAgICB0aGlzLnVwZGF0ZVdpbmRvd1RpdGxlKCk7CkBAIC03
NzMsNiArNzg1LDggQEAgV2ViSW5zcGVjdG9yLl9wcm92aXNpb25hbExvYWRTdGFydGVkID0gZnVu
Y3Rpb24oZXZlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIHRoaXMuX3VwZGF0ZUNvb2tpZUZv
ckluc3BlY3RvclZpZXdTdGF0ZSgpOworCisgICAgdGhpcy5faW5Qcm92aXNpb25hbExvYWQgPSB0
cnVlOwogfQogCiBXZWJJbnNwZWN0b3IuX3dpbmRvd0ZvY3VzZWQgPSBmdW5jdGlvbihldmVudCkK
QEAgLTg5MywxMSArOTA3LDEzIEBAIFdlYkluc3BlY3Rvci5fcmV2ZWFsQW5kU2VsZWN0UmVwcmVz
ZW50ZWRPYmplY3RJbk5hdmlnYXRpb25TaWRlYmFyID0gZnVuY3Rpb24ocmVwCiAgICAgaWYgKCFz
ZWxlY3RlZFNpZGViYXJQYW5lbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gSWYgdGhlIHRy
ZWUgb3V0bGluZSBpcyBwcm9jZXNzaW5nIGEgc2VsZWN0aW9uIGN1cnJlbnRseSB0aGVuIHdlIGNh
biBhc3N1bWUgdGhlIHNlbGVjdGlvbiBkb2VzIG5vdAotICAgIC8vIG5lZWQgdG8gYmUgY2hhbmdl
ZC4gVGhpcyBpcyBuZWVkZWQgdG8gYWxsb3cgYnJlYWtwb2ludHMgdHJlZSBlbGVtZW50cyB0byBi
ZSBzZWxlY3RlZCB3aXRob3V0IGp1bXBpbmcKLSAgICAvLyBiYWNrIHRvIHNlbGVjdGluZyB0aGUg
cmVzb3VyY2UgdHJlZSBlbGVtZW50LgotICAgIGlmIChzZWxlY3RlZFNpZGViYXJQYW5lbC5jb250
ZW50VHJlZU91dGxpbmUucHJvY2Vzc2luZ1NlbGVjdGlvbkNoYW5nZSkKLSAgICAgICAgcmV0dXJu
OworICAgIC8vIElmIGEgdHJlZSBvdXRsaW5lIGlzIHByb2Nlc3NpbmcgYSBzZWxlY3Rpb24gY3Vy
cmVudGx5IHRoZW4gd2UgY2FuIGFzc3VtZSB0aGUgc2VsZWN0aW9uIGRvZXMgbm90CisgICAgLy8g
bmVlZCB0byBiZSBjaGFuZ2VkLiBUaGlzIGlzIG5lZWRlZCB0byBhbGxvdyBicmVha3BvaW50IGFu
ZCBjYWxsIGZyYW1lIHRyZWUgZWxlbWVudHMgdG8gYmUgc2VsZWN0ZWQKKyAgICAvLyB3aXRob3V0
IGp1bXBpbmcgYmFjayB0byBzZWxlY3RpbmcgdGhlIHJlc291cmNlIHRyZWUgZWxlbWVudC4KKyAg
ICBmb3IgKHZhciBjb250ZW50VHJlZU91dGxpbmUgb2Ygc2VsZWN0ZWRTaWRlYmFyUGFuZWwudmlz
aWJsZUNvbnRlbnRUcmVlT3V0bGluZXMpIHsKKyAgICAgICAgaWYgKGNvbnRlbnRUcmVlT3V0bGlu
ZS5wcm9jZXNzaW5nU2VsZWN0aW9uQ2hhbmdlKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0K
IAogICAgIHZhciB0cmVlRWxlbWVudCA9IHNlbGVjdGVkU2lkZWJhclBhbmVsLnRyZWVFbGVtZW50
Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOwogCkBAIC0xMDMxLDYgKzEw
NDcsMTIgQEAgV2ViSW5zcGVjdG9yLl91cGRhdGVDb29raWVGb3JJbnNwZWN0b3JWaWV3U3RhdGUg
PSBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICAvLyBJZ25vcmUgc2F2
aW5nIHRoZSBzaWRlYmFyIHN0YXRlIGZvciBwcm92aXNpb25hbCBsb2Fkcy4gVGhlIGN1cnJlbnRs
eSBzZWxlY3RlZCBzaWRlYmFyCisgICAgLy8gbWF5IGhhdmUgYmVlbiB0aGUgcmVzdWx0IG9mIGNv
bnRlbnQgdmlld3MgY2xvc2luZyBhcyBhIHJlc3VsdCBvZiBhIHBhZ2UgbmF2aWdhdGlvbiwKKyAg
ICAvLyBidXQgdGhvc2UgY29udGVudCB2aWV3cyBtYXkgY29tZSBiYWNrIHZlcnkgc29vbi4KKyAg
ICBpZiAodGhpcy5faW5Qcm92aXNpb25hbExvYWQpCisgICAgICAgIHJldHVybjsKKwogICAgIHZh
ciBzZWxlY3RlZFNpZGViYXJQYW5lbCA9IHRoaXMubmF2aWdhdGlvblNpZGViYXIuc2VsZWN0ZWRT
aWRlYmFyUGFuZWw7CiAgICAgaWYgKCFzZWxlY3RlZFNpZGViYXJQYW5lbCkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvRnJhbWVUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0ZyYW1lVHJlZUVsZW1lbnQuanMKaW5kZXggMGFlZGU4OS4uODY3ZmFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRnJhbWVU
cmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9GcmFtZVRyZWVFbGVtZW50LmpzCkBAIC0zMDQsNiArMzA0LDEyIEBAIFdlYkluc3BlY3Rv
ci5GcmFtZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgIF9wb3B1bGF0ZUZyb21OZXdD
aGlsZFF1ZXVlOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMuY2hpbGRyZW4u
bGVuZ3RoKSB7CisgICAgICAgICAgICB0aGlzLl91cGRhdGVQYXJlbnRTdGF0dXMoKTsKKyAgICAg
ICAgICAgIHRoaXMuc2hvdWxkUmVmcmVzaENoaWxkcmVuID0gdHJ1ZTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fbmV3
Q2hpbGRRdWV1ZS5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuX2FkZENoaWxkRm9yUmVw
cmVzZW50ZWRPYmplY3QodGhpcy5fbmV3Q2hpbGRRdWV1ZVtpXSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25TaWRlYmFy
UGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OYXZp
Z2F0aW9uU2lkZWJhclBhbmVsLmpzCmluZGV4IGJhNWM4ZTguLmNlM2FkNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25TaWRl
YmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpAQCAtMTQ3LDYgKzE0NywxMSBAQCBXZWJJbnNw
ZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVy
biB0aGlzLl9jb250ZW50VHJlZU91dGxpbmU7CiAgICAgfSwKIAorICAgIGdldCB2aXNpYmxlQ29u
dGVudFRyZWVPdXRsaW5lcygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUNv
bnRlbnRUcmVlT3V0bGluZXM7CisgICAgfSwKKwogICAgIGdldCBoYXNTZWxlY3RlZEVsZW1lbnQo
KQogICAgIHsKICAgICAgICAgcmV0dXJuICEhdGhpcy5fY29udGVudFRyZWVPdXRsaW5lLnNlbGVj
dGVkVHJlZUVsZW1lbnQ7CkBAIC01MzMsNyArNTM4LDkgQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRp
b25TaWRlYmFyUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX2NoZWNrRm9yRW1w
dHlGaWx0ZXJSZXN1bHRzKCk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRPdmVyZmxvd1No
YWRvd1Zpc2liaWxpdHlTb29uKCk7Ci0gICAgICAgIHRoaXMuX2NoZWNrRWxlbWVudHNGb3JQZW5k
aW5nVmlld1N0YXRlQ29va2llKHRyZWVFbGVtZW50KTsKKworICAgICAgICBpZiAodGhpcy5zZWxl
Y3RlZCkKKyAgICAgICAgICAgIHRoaXMuX2NoZWNrRWxlbWVudHNGb3JQZW5kaW5nVmlld1N0YXRl
Q29va2llKHRyZWVFbGVtZW50KTsKICAgICB9LAogCiAgICAgX3RyZWVFbGVtZW50RXhwYW5kZWRP
ckNvbGxhcHNlZDogZnVuY3Rpb24odHJlZUVsZW1lbnQpCkBAIC03MDksNyArNzE2LDcgQEAgV2Vi
SW5zcGVjdG9yLk5hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB9
LCB0aGlzKTsKIAogICAgICAgICBpZiAobWF0Y2hlZEVsZW1lbnQpIHsKLSAgICAgICAgICAgIG1h
dGNoZWRFbGVtZW50LnJldmVhbEFuZFNlbGVjdCh0cnVlLCBmYWxzZSk7CisgICAgICAgICAgICBt
YXRjaGVkRWxlbWVudC5yZXZlYWxBbmRTZWxlY3QoKTsKIAogICAgICAgICAgICAgZGVsZXRlIHRo
aXMuX3BlbmRpbmdWaWV3U3RhdGVDb29raWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFu
ZWwuanMKaW5kZXggODFkYTc5ZC4uYjQzYzAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFy
UGFuZWwuanMKQEAgLTU1Myw5ICs1NTMsMTIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJh
clBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9tYWluRnJhbWVNYWluUmVzb3VyY2VEaWRDaGFu
Z2U6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKKyAgICAgICAgdmFyIHdhc1Nob3dpbmdSZXNvdXJj
ZVNpZGViYXIgPSB0aGlzLnNlbGVjdGVkOwogICAgICAgICB2YXIgY3VycmVudENvbnRlbnRWaWV3
ID0gV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKICAgICAg
ICAgdmFyIHdhc1Nob3dpbmdSZXNvdXJjZUNvbnRlbnRWaWV3ID0gY3VycmVudENvbnRlbnRWaWV3
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlQ29udGVudFZpZXcKLSAgICAgICAgICAg
IHx8IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5GcmFtZUNvbnRl
bnRWaWV3IHx8IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3Jp
cHRDb250ZW50VmlldzsKKyAgICAgICAgICAgIHx8IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5j
ZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNsdXN0ZXJDb250ZW50VmlldworICAgICAgICAgICAg
fHwgY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkZyYW1lQ29udGVu
dFZpZXcKKyAgICAgICAgICAgIHx8IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYklu
c3BlY3Rvci5TY3JpcHRDb250ZW50VmlldzsKIAogICAgICAgICAvLyBDbG9zZSBhbGwgcmVzb3Vy
Y2UgYW5kIGZyYW1lIGNvbnRlbnQgdmlld3Mgc2luY2UgdGhlIG1haW4gZnJhbWUgaGFzIG5hdmln
YXRlZCBhbmQgYWxsIHJlc291cmNlcyBhcmUgY2xlYXJlZC4KICAgICAgICAgV2ViSW5zcGVjdG9y
LmNvbnRlbnRCcm93c2VyLmNvbnRlbnRWaWV3Q29udGFpbmVyLmNsb3NlQWxsQ29udGVudFZpZXdz
T2ZQcm90b3R5cGUoV2ViSW5zcGVjdG9yLlJlc291cmNlQ2x1c3RlckNvbnRlbnRWaWV3KTsKQEAg
LTU2NSw5ICs1NjgsMTggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24gZGVsYXllZFdvcmsoKQogICAgICAgICB7CiAgICAg
ICAgICAgICAvLyBTaG93IHRoZSBtYWluIGZyYW1lIHNpbmNlIHRoZXJlIGlzIG5vIGNvbnRlbnQg
dmlldyBzaG93aW5nIG9yIHdlIHdlcmUgc2hvd2luZyBhIHJlc291cmNlIGJlZm9yZS4KLSAgICAg
ICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCB0cnkgdG8gc2VsZWN0IHRoZSBzYW1lIHJlc291cmNl
IHRoYXQgd2FzIHNlbGVjdGVkIGJlZm9yZSBpbiB0aGUgY2FzZSBvZiBhIHJlbG9hZC4KLSAgICAg
ICAgICAgIGlmICghV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50Vmll
dyB8fCB3YXNTaG93aW5nUmVzb3VyY2VDb250ZW50VmlldykKKyAgICAgICAgICAgIC8vIENvb2tp
ZSByZXN0b3JhdGlvbiB3aWxsIGF0dGVtcHQgdG8gcmUtc2VsZWN0IHRoZSByZXNvdXJjZSB3ZSB3
ZXJlIHNob3dpbmcuCisgICAgICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5jb250ZW50QnJvd3Nl
ci5jdXJyZW50Q29udGVudFZpZXcgfHwgd2FzU2hvd2luZ1Jlc291cmNlQ29udGVudFZpZXcpIHsK
KyAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3ZXJlIHNob3dpbmcgYSByZXNvdXJjZSBpbnNpZGUg
b2YgdGhlIFJlc291cmNlU2lkZWJhciwgd2Ugc2hvdWxkCisgICAgICAgICAgICAgICAgLy8gcmUt
c2hvdyB0aGUgcmVzb3VyY2UgaW5zaWRlIG9mIHRoZSByZXNvdXJjZSBzaWRlYmFyLiBJdCBpcyBw
b3NzaWJsZSB0aGF0CisgICAgICAgICAgICAgICAgLy8gdGhlIHNpZGViYXIgcGFuZWwgY291bGQg
aGF2ZSBzd2l0Y2hlZCB0byBhbm90aGVyIHZpZXcgaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0Lgor
ICAgICAgICAgICAgICAgIGlmICh3YXNTaG93aW5nUmVzb3VyY2VTaWRlYmFyKQorICAgICAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IubmF2aWdhdGlvblNpZGViYXIuc2VsZWN0ZWRTaWRlYmFy
UGFuZWwgPSB0aGlzOworCisgICAgICAgICAgICAgICAgLy8gTk9URTogVGhpcyBzZWxlY3Rpb24s
IGR1cmluZyBwcm92aXNpb25hbCBsb2FkaW5nLCB3b24ndCBiZSBzYXZlZCwgc28gaXQgaXMKKyAg
ICAgICAgICAgICAgICAvLyBzYWZlIHRvIGRvIGFuZCBub3QtY2xvYmJlciBjb29raWUgcmVzdG9y
YXRpb24uCiAgICAgICAgICAgICAgICAgdGhpcy5fbWFpbkZyYW1lVHJlZUVsZW1lbnQucmV2ZWFs
QW5kU2VsZWN0KHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAg
ICAgIC8vIERlbGF5IHRoaXMgd29yayBiZWNhdXNlIG90aGVyIGxpc3RlbmVycyBvZiB0aGlzIGV2
ZW50IG1pZ2h0IG5vdCBoYXZlIGZpcmVkIHlldC4gU28gc2VsZWN0aW5nIHRoZSBtYWluIGZyYW1l
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9U
aW1lbGluZVNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1RpbWVsaW5lU2lkZWJhclBhbmVsLmpzCmluZGV4IDI3ZGZkYzkuLmM1N2FkZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Rp
bWVsaW5lU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lU2lkZWJhclBhbmVsLmpzCkBAIC00MTcsNyArNDE3LDkgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lU2lkZWJhclBhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfcmVj
b3JkaW5nTG9hZGVkOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9hY3RpdmVDb250
ZW50VmlldyA9IFdlYkluc3BlY3Rvci5jb250ZW50QnJvd3Nlci5jb250ZW50Vmlld0ZvclJlcHJl
c2VudGVkT2JqZWN0KFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuYWN0aXZlUmVjb3JkaW5n
KTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyh0
aGlzLl9hY3RpdmVDb250ZW50Vmlldyk7CisKKyAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQpCisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRo
aXMuX2FjdGl2ZUNvbnRlbnRWaWV3KTsKICAgICB9LAogCiAgICAgX3JlY29yZEdseXBoTW91c2Vk
T3ZlcjogZnVuY3Rpb24oZXZlbnQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>