<?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>145466</bug_id>
          
          <creation_ts>2015-05-29 13:22:34 -0700</creation_ts>
          <short_desc>Web Inspector: Activity Viewer does not update on &quot;Clear Log on reload&quot;</short_desc>
          <delta_ts>2015-06-04 13:15:48 -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="Tobias Reiss">tobi+webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</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>1098160</commentid>
    <comment_count>0</comment_count>
    <who name="Tobias Reiss">tobi+webkit</who>
    <bug_when>2015-05-29 13:22:34 -0700</bug_when>
    <thetext>* STEPS TO REPRODUCE
1. Open https://bug-142070-attachments.webkit.org/attachment.cgi?id=247481
2. Go to Console Tab
3. Activity Viewer shows 11 logs
4. Select &quot;Clear Log on Reload&quot;
5. Reload page
6. Activity Viewer shows 22 logs instead of 11 logs

* DESCRIPTION
The Activity Viewer listens on &quot;WebInspector.LogManager.Event.ActiveLogCleared&quot; but the Event isn&apos;t dispatched. That is due to a hack in LogContentView that ignores the `Console.clearMessages` call. The hack tries to workaround a general problem between Backend and Frontend logic as described here rdar://problem/13767079.

* HOW TO FIX
1. Fix rdar://problem/13767079 and let the Backend pass a reason (PAGE_NAVIGATION or CLEAR_COMMAND) why the Console got cleared.
2. Don&apos;t dispatch &quot;ActiveLogCleared&quot; on &quot;PAGE_NAVIGATION&quot; anymore and let Frontend explicitly maintain page navigation (=reload).
3. Remove &quot;_ignoreDidClearMessages&quot; hack from LogContentView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098161</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-29 13:22:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/21164026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098424</commentid>
    <comment_count>2</comment_count>
    <who name="Tobias Reiss">tobi+webkit</who>
    <bug_when>2015-05-31 13:14:46 -0700</bug_when>
    <thetext>Update 1: https://webkit.org/b/145468 is an equivalent of rdar://problem/13767079

Update 2: As noted in 145468, it is not enough to fix the Backend because we need some handling for legacy Backends (iOS 6, 7, 8) that wouldn&apos;t see the new Backend changes. Due to that fact I lost my motivation to touch 145468 since we need a solid solution for legacy Backends anyway.

Update 3: HOW TO FIX:
1. Isolate logic within LogManager and remove hacks/logic from all other files
2. Within LogManager: Differentiate &quot;messagesCleared&quot; calls
 a) that happen as a result of a &quot;requested clear&quot; by Frontend (e.g. Button)
 b) that happen on page reload and install &quot;clear/keep-on-page-reload&quot; logic
 c) that happen on frame navigated, console.clear() or clear()
3. Unify &quot;ActiveLogCleared&quot; and &quot;Cleared&quot; events to &quot;Cleared&quot;

For step 2b and 2c it is important to delay the handling and wait until &quot;_mainResourceDidChange&quot; has determined whether a page reload happened or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098426</commentid>
    <comment_count>3</comment_count>
      <attachid>253983</attachid>
    <who name="Tobias Reiss">tobi+webkit</who>
    <bug_when>2015-05-31 14:24:34 -0700</bug_when>
    <thetext>Created attachment 253983
[Patch] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098956</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-06-02 15:57:03 -0700</bug_when>
    <thetext>&gt; 1. Isolate logic within LogManager and remove hacks/logic from all other
&gt; files
&gt; 2. Within LogManager: Differentiate &quot;messagesCleared&quot; calls
&gt;  a) that happen as a result of a &quot;requested clear&quot; by Frontend (e.g. Button)
&gt;  b) that happen on page reload and install &quot;clear/keep-on-page-reload&quot; logic
&gt;  c) that happen on frame navigated, console.clear() or clear()
&gt; 3. Unify &quot;ActiveLogCleared&quot; and &quot;Cleared&quot; events to &quot;Cleared&quot;
&gt; 
&gt; For step 2b and 2c it is important to delay the handling and wait until
&gt; &quot;_mainResourceDidChange&quot; has determined whether a page reload happened or
&gt; not.

This is excellent. This information should really go in the ChangeLog, so that when someone next works in this area they can see the high level decision making process.

--

Looking at a navigation versus a reload.

    # Navigation

        backend: {&quot;method&quot;:&quot;Page.frameStartedLoading&quot;,...}
        backend: {&quot;method&quot;:&quot;Network.requestWillBeSent&quot;,...}
        backend: {&quot;method&quot;:&quot;Network.responseReceived&quot;,...}
        backend: {&quot;method&quot;:&quot;Network.dataReceived&quot;,...}
        backend: {&quot;method&quot;:&quot;Console.messagesCleared&quot;}
        backend: {&quot;method&quot;:&quot;Page.frameNavigated&quot;,...}

    # Reload

        frontend: {&quot;method&quot;:&quot;Page.reload&quot;,&quot;id&quot;:29}
        backend: {&quot;method&quot;:&quot;Page.frameStartedLoading&quot;,...}
        backend: {&quot;method&quot;:&quot;Network.responseReceived&quot;,...}
        backend: {&quot;method&quot;:&quot;Network.dataReceived&quot;,...}
        backend: {&quot;method&quot;:&quot;Console.messagesCleared&quot;}
        backend: {&quot;method&quot;:&quot;Page.frameNavigated&quot;,...}

So the behavior here is:

    =&gt; messagesCleared
      =&gt; requested?
        =&gt; Cleared
      =&gt; was not requested?
        =&gt; setTimeout(delayed, 0) to determine if the navigation (and thus the type of navigation) or if no navigation then JS clear()

    =&gt; frameNavigated
      =&gt; MainResourceDidChange
        =&gt; mark if reload

    =&gt; timeout trigger
      =&gt; we know if it was a reload or something else

This sounds good!

If we decide to make the backend not send messagesCleared during page navigation, then there is nothing that we need to do here. The drawback is that there will be a setTimeout(0) even though it wouldn&apos;t strictly be necessary. We may be able to address that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098960</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-06-02 16:21:15 -0700</bug_when>
    <thetext>&gt; If we decide to make the backend not send messagesCleared during page
&gt; navigation, then there is nothing that we need to do here.

Actually, not true! Comments to be included in the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098962</commentid>
    <comment_count>6</comment_count>
      <attachid>253983</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-06-02 16:24:09 -0700</bug_when>
    <thetext>Comment on attachment 253983
[Patch] For Landing

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

r=me, but I&apos;d like to see at least an updated ChangeLog.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:154
&gt; +    this.clearLogOnReload = new WebInspector.Setting(&quot;clear-log-on-reload&quot;, true);

If there were multiple LogContentViews, it may have made more sense to keep this Setting per-LogContentView.

However, given the current implementation, this may make more sense on the single LogManager instance instead of WebInspector. Since LogManager seems to make decisions based on this setting or not.

&gt; Source/WebInspectorUI/UserInterface/Controllers/LogManager.js:35
&gt; +        this._clearMessagesRequested = false;
&gt; +        this._isPageReload = false;
&gt;          WebInspector.Frame.addEventListener(WebInspector.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);

Style: Add a newline between the member variable initialization and the event registration.

&gt; Source/WebInspectorUI/UserInterface/Controllers/LogManager.js:64
&gt; +            // Frontend receives unrequested &quot;cleared console&quot; call from Backend.

All the other comments really aren&apos;t that important (and could be removed). But here is where a comment would be most important, because the reason &quot;why&quot; we are delaying is unclear. Something like:

    // Received an unrequested clear console event.
    // This could be for a navigation or other reasons (like console.clear()).
    // If this was a reload, we may not want to dispatch WebInspector.LogManager.Event.Cleared.
    // To detect if this is a reload we wait a turn and check if there was a main resource change reload.

If we then change the backend to no longer send a clear event on navigation we could:

    (1) Add a COMPATIBILITY comment here.
    (2) Have LogManager behave differently and keep this legacy path.

&gt; Source/WebInspectorUI/UserInterface/Controllers/LogManager.js:72
&gt; +            // A page reload happened. Only dispatch if &quot;clear on reload&quot; is enabled. Keep log otherwise.

This comment seems superfluous given the variable names.

&gt; Source/WebInspectorUI/UserInterface/Controllers/LogManager.js:77
&gt; +            // A frame navigated, console.clear() or command line clear() happened

Style: Comments are sentences and should end in a period.

&gt; Source/WebInspectorUI/UserInterface/Controllers/LogManager.js:92
&gt; +        this._clearMessagesRequested = true;
&gt;          ConsoleAgent.clearMessages();

Style: Add a newline between these.

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:288
&gt; +        if (WebInspector.clearLogOnReload.value)  {

Style: Extra space by the brace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099299</commentid>
    <comment_count>7</comment_count>
      <attachid>254213</attachid>
    <who name="Tobias Reiss">tobi+webkit</who>
    <bug_when>2015-06-03 15:10:48 -0700</bug_when>
    <thetext>Created attachment 254213
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099303</commentid>
    <comment_count>8</comment_count>
      <attachid>254213</attachid>
    <who name="Tobias Reiss">tobi+webkit</who>
    <bug_when>2015-06-03 15:18:21 -0700</bug_when>
    <thetext>Comment on attachment 254213
[PATCH] For Landing

Thank you for the detailed review! I updated the ChangeLog and also copy/pasted the comments you kindly wrote for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099304</commentid>
    <comment_count>9</comment_count>
      <attachid>254213</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-03 15:20:07 -0700</bug_when>
    <thetext>Comment on attachment 254213
[PATCH] For Landing

Rejecting attachment 254213 from commit-queue.

tobi+webkit@basecode.de does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/contributors.json.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/contributors.json by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099313</commentid>
    <comment_count>10</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-06-03 15:41:49 -0700</bug_when>
    <thetext>This bug looks a lot like &quot;REGRESSION: Web Inspector: Dashboard&apos;s resource count does not reset when main resource navigates&quot; https://bugs.webkit.org/show_bug.cgi?id=144553. If they are related and you know how to fix it right away, please feel free to steal it from me :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099317</commentid>
    <comment_count>11</comment_count>
      <attachid>254218</attachid>
    <who name="Tobias Reiss">tobi+webkit</who>
    <bug_when>2015-06-03 15:59:09 -0700</bug_when>
    <thetext>Created attachment 254218
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099581</commentid>
    <comment_count>12</comment_count>
      <attachid>254218</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-04 13:15:41 -0700</bug_when>
    <thetext>Comment on attachment 254218
[PATCH] For Landing

Clearing flags on attachment: 254218

Committed r185213: &lt;http://trac.webkit.org/changeset/185213&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099582</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-04 13:15:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253983</attachid>
            <date>2015-05-31 14:24:34 -0700</date>
            <delta_ts>2015-06-03 15:10:38 -0700</delta_ts>
            <desc>[Patch] For Landing</desc>
            <filename>bug-145466-20150531232416.patch</filename>
            <type>text/plain</type>
            <size>17804</size>
            <attacher name="Tobias Reiss">tobi+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBl
MGM2YzYyOTI2YmQ5ZGU1Yzg3NmI5NDUzNjYzNGNlODE4ZmVmNzY4Li41MjZlZjg5ZGE2YzE5M2Jl
ZWY3MWMyZGVkY2VkNTBlMTBmNDYzMGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAxNS0wNS0zMSAgVG9iaWFzIFJlaXNzICA8dG9iaSt3ZWJraXRAYmFzZWNv
ZGUuZGU+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWN0aXZpdHkgVmlld2VyIGRvZXMgbm90
IHVwZGF0ZSBvbiAiQ2xlYXIgTG9nIG9uIHJlbG9hZCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTQ2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IubG9hZGVkKToKKyAgICAgICAgU3RvcmUgImNsZWFyLWxvZy1v
bi1yZWxvYWQiIHNldHRpbmcgZ2xvYmFsbHkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0lzc3VlTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1h
bmFnZXIpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0RlZmF1bHREYXNoYm9hcmQu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdERhc2hib2FyZCk6IERlbGV0ZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9PYmplY3RUcmVlVmlldy5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5PYmplY3RUcmVlVmlldy5wcm90b3R5cGUuX3RyYWNrV2Vha0VudHJpZXMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFRyZWVWaWV3LnByb3RvdHlw
ZS5fdW50cmFja1dlYWtFbnRyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5P
YmplY3RUcmVlVmlldyk6IERlbGV0ZWQuCisgICAgICAgIFJlbW92ZSBkZWxldGVkIGV2ZW50cy4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdExvZ1ZpZXdD
b250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRMb2dWaWV3Q29u
dHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZUNsZWFyU2hvcnRjdXQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkphdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlci5wcm90b3R5cGUuY2xlYXIpOiBEZWxl
dGVkLgorICAgICAgICBSZW1vdmUgZGVsZWdhdGUgZnVuY3Rpb24gY2FsbCBhbmQgY2FsbCBMb2dN
YW5hZ2VyIGRpcmVjdGx5LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9M
b2dNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIucHJvdG90eXBlLm1lc3NhZ2VzQ2xlYXJlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5wcm90b3R5cGUuX2RlbGF5ZWRNZXNzYWdl
c0NsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIucHJvdG90eXBlLnJl
cXVlc3RDbGVhck1lc3NhZ2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLnBy
b3RvdHlwZS5fbWFpblJlc291cmNlRGlkQ2hhbmdlKToKKyAgICAgICAgSXNvbGF0ZSAiY2xlYXIg
bG9nIiBsb2dpYywgZXNwZWNpYWxseSBjbGVhci9rZWVwLWxvZy1vbi1yZWxvYWQgbG9naWMuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5M
b2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3Nlc3Npb25TdGFydGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRleHRNZW51RXZlbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fbG9nQ2xl
YXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl90
b2dnbGVDbGVhckxvZ09uUmVsb2FkU2V0dGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcucHJvdG90eXBlLl9jbGVhckxvZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TG9nQ29udGVudFZpZXcucHJvdG90eXBlLmRpZENsZWFyTWVzc2FnZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fc2Vzc2lvbnNDbGVh
cmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90
b3R5cGUuX2FjdGl2ZUxvZ0NsZWFyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fY2xlYXJMb2dJZ25vcmluZ0NsZWFyTWVzc2FnZXMp
OiBEZWxldGVkLgorICAgICAgICBNYWtlIGl0IGEgY29uc3VtZXIgb2YgTG9nTWFuYWdlciBhbmQg
cmVtb3ZlIHNwZWNpYWwgaGFja3MuIFNpbXBsaWZ5IGNvZGUuCisKIDIwMTUtMDUtMjkgIFRpbW90
aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFJlc291cmNlcyB0YWIgbmF2aWdhdGlvbiBzaWRlYmFyIHNob3VsZCBoYXZlIGEgdHlwZSBmaWx0
ZXIgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNl
L01haW4uanMKaW5kZXggOTI5NDY0MGY3ZWNhMDk5NTU5YWY1ZTI4N2RiZTlkNDBjNWEyM2JlNi4u
YjQxYzU1YjUyNGMxNTdkNThhNmNhZjY5MWM0ZjM1ZGMyYzU1MDJiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMTUxLDYgKzE1
MSw3IEBAIFdlYkluc3BlY3Rvci5sb2FkZWQgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLnNob3dT
aGFkb3dET01TZXR0aW5nID0gbmV3IFdlYkluc3BlY3Rvci5TZXR0aW5nKCJzaG93LXNoYWRvdy1k
b20iLCBmYWxzZSk7CiAgICAgdGhpcy5zaG93UmVwbGF5SW50ZXJmYWNlU2V0dGluZyA9IG5ldyBX
ZWJJbnNwZWN0b3IuU2V0dGluZygic2hvdy13ZWItcmVwbGF5IiwgZmFsc2UpOworICAgIHRoaXMu
Y2xlYXJMb2dPblJlbG9hZCA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZygiY2xlYXItbG9nLW9u
LXJlbG9hZCIsIHRydWUpOwogCiAgICAgdGhpcy5zaG93SmF2YVNjcmlwdFR5cGVJbmZvcm1hdGlv
blNldHRpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNldHRpbmcoInNob3ctamF2YXNjcmlwdC10eXBl
LWluZm9ybWF0aW9uIiwgZmFsc2UpOwogICAgIGlmICh0aGlzLnNob3dKYXZhU2NyaXB0VHlwZUlu
Zm9ybWF0aW9uU2V0dGluZy52YWx1ZSAmJiB3aW5kb3cuUnVudGltZUFnZW50ICYmIFJ1bnRpbWVB
Z2VudC5lbmFibGVUeXBlUHJvZmlsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Jc3N1ZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Jc3N1ZU1hbmFnZXIuanMKaW5k
ZXggNWY3MzIwN2ZiMGZmYWEwOTFhZDJkMTZjNmQ0NTZkNGIxYjA2ODQ2Ny4uMWJkZDgzYzQ5YWMw
YzY5MmZlZTYzMjg2YzVmNjYwNTE1M2U3NWFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSXNzdWVNYW5hZ2VyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0lzc3VlTWFuYWdl
ci5qcwpAQCAtMzAsNyArMzAsNyBAQCBXZWJJbnNwZWN0b3IuSXNzdWVNYW5hZ2VyID0gY2xhc3Mg
SXNzdWVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICBzdXBlcigp
OwogCiAgICAgICAgIFdlYkluc3BlY3Rvci5GcmFtZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5GcmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX21haW5SZXNvdXJj
ZURpZENoYW5nZSwgdGhpcyk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuQWN0aXZlTG9nQ2xlYXJl
ZCwgdGhpcy5fYWN0aXZlTG9nQ2xlYXJlZCwgdGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5s
b2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQu
Q2xlYXJlZCwgdGhpcy5fbG9nQ2xlYXJlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5pbml0aWFs
aXplKCk7CiAgICAgfQpAQCAtNzQsNyArNzQsNyBAQCBXZWJJbnNwZWN0b3IuSXNzdWVNYW5hZ2Vy
ID0gY2xhc3MgSXNzdWVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAg
Ly8gUHJpdmF0ZQogCi0gICAgX2FjdGl2ZUxvZ0NsZWFyZWQoZXZlbnQpCisgICAgX2xvZ0NsZWFy
ZWQoZXZlbnQpCiAgICAgewogICAgICAgICB0aGlzLmluaXRpYWxpemUoKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9K
YXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9KYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIuanMKaW5k
ZXggMTVjYmQ3ZDY2MTJjMzU4OTdlYjk1NzY3YTdjODQ0NGE3MmYwNDYxNi4uOWZhNjFmNTQ2ZTg2
Y2ZhY2FlNjdhOTZjNmE4Y2VkMzVjMWEyZGU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9s
bGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0phdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlci5qcwpAQCAtODMsOSArODMsNiBAQCBXZWJJ
bnNwZWN0b3IuSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyID0gY2xhc3MgSmF2YVNjcmlwdExv
Z1ZpZXdDb250cm9sbGVyIGV4dAogICAgICAgICB0aGlzLnN0YXJ0TmV3U2Vzc2lvbih0cnVlKTsK
IAogICAgICAgICB0aGlzLnByb21wdC5mb2N1cygpOwotCi0gICAgICAgIGlmICh0aGlzLmRlbGVn
YXRlICYmIHR5cGVvZiB0aGlzLmRlbGVnYXRlLmRpZENsZWFyTWVzc2FnZXMgPT09ICJmdW5jdGlv
biIpCi0gICAgICAgICAgICB0aGlzLmRlbGVnYXRlLmRpZENsZWFyTWVzc2FnZXMoKTsKICAgICB9
CiAKICAgICBzdGFydE5ld1Nlc3Npb24oY2xlYXJQcmV2aW91c1Nlc3Npb25zKQpAQCAtMjQyLDcg
KzIzOSw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIgPSBjbGFz
cyBKYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIgZXh0CiAKICAgICBfaGFuZGxlQ2xlYXJTaG9y
dGN1dCgpCiAgICAgewotICAgICAgICB0aGlzLmNsZWFyKCk7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5sb2dNYW5hZ2VyLnJlcXVlc3RDbGVhck1lc3NhZ2VzKCk7CiAgICAgfQogCiAgICAgX2hhbmRs
ZUZpbmRTaG9ydGN1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9Mb2dNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvTG9nTWFuYWdlci5qcwppbmRleCBjODYyNmU2MWJj
YThjNzBkZmJiMWRlZWRkMmQ3MWNmZjAzZTI0YjQ2Li4xOWRiNmJhNGY3Mjk3ZTQ5ZmExMDczOGQx
MTVhY2I2Yzk4OTQ4ZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9Mb2dNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0xvZ01hbmFnZXIuanMKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBUb2JpYXMgUmVpc3MgPHRvYmkrd2Via2l0QGJh
c2Vjb2RlLmRlPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICszMCw4
IEBAIFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyID0gY2xhc3MgTG9nTWFuYWdlciBleHRlbmRzIFdl
Ykluc3BlY3Rvci5PYmplY3QKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAKKyAgICAgICAgdGhp
cy5fY2xlYXJNZXNzYWdlc1JlcXVlc3RlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9pc1BhZ2VS
ZWxvYWQgPSBmYWxzZTsKICAgICAgICAgV2ViSW5zcGVjdG9yLkZyYW1lLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkZyYW1lLkV2ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcy5f
bWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzKTsKICAgICB9CiAKQEAgLTUzLDE0ICs1NiwyNyBA
QCBXZWJJbnNwZWN0b3IuTG9nTWFuYWdlciA9IGNsYXNzIExvZ01hbmFnZXIgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVz
dWx0TWVzc2FnZS5jbGVhck1heGltdW1TYXZlZFJlc3VsdEluZGV4KCk7CiAKLSAgICAgICAgLy8g
V2UgZG9uJ3Qgd2FudCB0byBjbGVhciBtZXNzYWdlcyBvbiByZWxvYWRzLiBXZSBjYW4ndCBkZXRl
cm1pbmUgdGhhdCBlYXNpbHkgcmlnaHQgbm93LgotICAgICAgICAvLyBGSVhNRTogPHJkYXI6Ly9w
cm9ibGVtLzEzNzY3MDc5PiBDb25zb2xlLm1lc3NhZ2VzQ2xlYXJlZCBzaG91bGQgaW5jbHVkZSBh
IHJlYXNvbgotICAgICAgICB0aGlzLl9zaG91bGRDbGVhck1lc3NhZ2VzID0gdHJ1ZTsKLSAgICAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRD
bGVhck1lc3NhZ2VzKQotICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LkFjdGl2ZUxvZ0NsZWFyZWQpOwotICAg
ICAgICAgICAgZGVsZXRlIHRoaXMuX3Nob3VsZENsZWFyTWVzc2FnZXM7Ci0gICAgICAgIH0uYmlu
ZCh0aGlzKSwgMCk7CisgICAgICAgIGlmICh0aGlzLl9jbGVhck1lc3NhZ2VzUmVxdWVzdGVkKSB7
CisgICAgICAgICAgICAvLyBGcm9udGVuZCByZXF1ZXN0ZWQgImNsZWFyIGNvbnNvbGUiIGFuZCBC
YWNrZW5kIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQgdGhlIHJlcXVlc3QuCisgICAgICAgICAgICB0
aGlzLl9jbGVhck1lc3NhZ2VzUmVxdWVzdGVkID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5DbGVh
cmVkKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEZyb250ZW5kIHJlY2VpdmVz
IHVucmVxdWVzdGVkICJjbGVhcmVkIGNvbnNvbGUiIGNhbGwgZnJvbSBCYWNrZW5kLgorICAgICAg
ICAgICAgc2V0VGltZW91dCh0aGlzLl9kZWxheWVkTWVzc2FnZXNDbGVhcmVkLmJpbmQodGhpcyks
IDApOworICAgICAgICB9CisgICAgfQorCisgICAgX2RlbGF5ZWRNZXNzYWdlc0NsZWFyZWQoKQor
ICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2lzUGFnZVJlbG9hZCkgeworICAgICAgICAgICAgLy8g
QSBwYWdlIHJlbG9hZCBoYXBwZW5lZC4gT25seSBkaXNwYXRjaCBpZiAiY2xlYXIgb24gcmVsb2Fk
IiBpcyBlbmFibGVkLiBLZWVwIGxvZyBvdGhlcndpc2UuCisgICAgICAgICAgICB0aGlzLl9pc1Bh
Z2VSZWxvYWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuY2xlYXJMb2dP
blJlbG9hZC52YWx1ZSkKKyAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5DbGVhcmVkKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIC8vIEEgZnJhbWUgbmF2aWdhdGVkLCBjb25zb2xlLmNsZWFyKCkg
b3IgY29tbWFuZCBsaW5lIGNsZWFyKCkgaGFwcGVuZWQKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LkNsZWFyZWQp
OworICAgICAgICB9CiAgICAgfQogCiAgICAgbWVzc2FnZVJlcGVhdENvdW50VXBkYXRlZChjb3Vu
dCkKQEAgLTcyLDYgKzg4LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIgPSBjbGFzcyBMb2dN
YW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgcmVxdWVzdENsZWFyTWVz
c2FnZXMoKQogICAgIHsKKyAgICAgICAgdGhpcy5fY2xlYXJNZXNzYWdlc1JlcXVlc3RlZCA9IHRy
dWU7CiAgICAgICAgIENvbnNvbGVBZ2VudC5jbGVhck1lc3NhZ2VzKCk7CiAgICAgfQogCkBAIC04
NCwxNiArMTAxLDEzIEBAIFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyID0gY2xhc3MgTG9nTWFuYWdl
ciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgaWYgKCFldmVudC50YXJnZXQu
aXNNYWluRnJhbWUoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB2YXIgb2xkTWFp
blJlc291cmNlID0gZXZlbnQuZGF0YS5vbGRNYWluUmVzb3VyY2U7Ci0gICAgICAgIHZhciBuZXdN
YWluUmVzb3VyY2UgPSBldmVudC50YXJnZXQubWFpblJlc291cmNlOwotICAgICAgICBpZiAob2xk
TWFpblJlc291cmNlLnVybCAhPT0gbmV3TWFpblJlc291cmNlLnVybCkKLSAgICAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50
LkNsZWFyZWQpOwotICAgICAgICBlbHNlCisgICAgICAgIGlmIChldmVudC5kYXRhLm9sZE1haW5S
ZXNvdXJjZS51cmwgPT09IGV2ZW50LnRhcmdldC5tYWluUmVzb3VyY2UudXJsKSB7CisgICAgICAg
ICAgICB0aGlzLl9pc1BhZ2VSZWxvYWQgPSB0cnVlOwogICAgICAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuU2Vzc2lvblN0
YXJ0ZWQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2lzUGFnZVJlbG9hZCA9
IGZhbHNlOwogCiAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdE1lc3Nh
Z2UuY2xlYXJNYXhpbXVtU2F2ZWRSZXN1bHRJbmRleCgpOwotCi0gICAgICAgIGRlbGV0ZSB0aGlz
Ll9zaG91bGRDbGVhck1lc3NhZ2VzOwogICAgIH0KIH07CiAKQEAgLTEwMSw2ICsxMTUsNSBAQCBX
ZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudCA9IHsKICAgICBTZXNzaW9uU3RhcnRlZDogImxv
Zy1tYW5hZ2VyLXNlc3Npb24td2FzLXN0YXJ0ZWQiLAogICAgIENsZWFyZWQ6ICJsb2ctbWFuYWdl
ci1jbGVhcmVkIiwKICAgICBNZXNzYWdlQWRkZWQ6ICJsb2ctbWFuYWdlci1tZXNzYWdlLWFkZGVk
IiwKLSAgICBBY3RpdmVMb2dDbGVhcmVkOiAibG9nLW1hbmFnZXItY3VycmVudC1sb2ctY2xlYXJl
ZCIsCiAgICAgUHJldmlvdXNNZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkOiAibG9nLW1hbmFnZXIt
cHJldmlvdXMtbWVzc2FnZS1yZXBlYXQtY291bnQtdXBkYXRlZCIKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGVmYXVsdERhc2hib2Fy
ZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9EZWZhdWx0
RGFzaGJvYXJkLmpzCmluZGV4IGU5ZDlkOWM2YzFiNTZmY2Y4NTVjMTI3ZWJjZDBjNjE0M2M2NTdm
OTEuLjVlMmFmMjIwMTkxNWMwZjM5NGM2NDRjNWVkMDMwZDE1NDU5N2UxOTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9EZWZhdWx0RGFzaGJv
YXJkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9E
ZWZhdWx0RGFzaGJvYXJkLmpzCkBAIC0zOCw3ICszOCw2IEBAIFdlYkluc3BlY3Rvci5EZWZhdWx0
RGFzaGJvYXJkID0gY2xhc3MgRGVmYXVsdERhc2hib2FyZCBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplCiAgICAgICAgIC8vIE5lY2Vzc2FyeSBldmVudHMgcmVxdWlyZWQgdG8gdHJhY2sgY29uc29s
ZSBtZXNzYWdlcy4KICAgICAgICAgdmFyIGxvZ01hbmFnZXIgPSBXZWJJbnNwZWN0b3IubG9nTWFu
YWdlcjsKICAgICAgICAgbG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5M
b2dNYW5hZ2VyLkV2ZW50LkNsZWFyZWQsIHRoaXMuX2NvbnNvbGVXYXNDbGVhcmVkLCB0aGlzKTsK
LSAgICAgICAgbG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5h
Z2VyLkV2ZW50LkFjdGl2ZUxvZ0NsZWFyZWQsIHRoaXMuX2NvbnNvbGVXYXNDbGVhcmVkLCB0aGlz
KTsKICAgICAgICAgbG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dN
YW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRlZCwgdGhp
cyk7CiAgICAgICAgIGxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9n
TWFuYWdlci5FdmVudC5QcmV2aW91c01lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQsIHRoaXMuX2Nv
bnNvbGVNZXNzYWdlV2FzUmVwZWF0ZWQsIHRoaXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCmlu
ZGV4IDI2ZWM5MDg4N2QxNTA0NTg3NDdlMGNhMjNkOGI5Zjc4N2JlYjNiMDAuLjJmZDNlMDFhZGE3
MTY1ZDUxNTFhZDUxY2QzYmQ0NTc2NDgwMjRiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCkBA
IC03MSwxOSArNzEsMTYgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gZnVuY3Rpb24o
cmVwcmVzZW50ZWRPYmplY3QpCiAgICAgdGhpcy5fY2xlYXJMb2dOYXZpZ2F0aW9uSXRlbSA9IG5l
dyBXZWJJbnNwZWN0b3IuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImNsZWFyLWxvZyIsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQ2xlYXIgbG9nICglcyBvciAlcykiKS5mb3JtYXQodGhpcy5fbG9nVmll
d0NvbnRyb2xsZXIubWVzc2FnZXNDbGVhcktleWJvYXJkU2hvcnRjdXQuZGlzcGxheU5hbWUsIHRo
aXMuX2xvZ1ZpZXdDb250cm9sbGVyLm1lc3NhZ2VzQWx0ZXJuYXRlQ2xlYXJLZXlib2FyZFNob3J0
Y3V0LmRpc3BsYXlOYW1lKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbVRyYXNoLnN2ZyIsIDE1LCAx
NSk7CiAgICAgdGhpcy5fY2xlYXJMb2dOYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9jbGVh
ckxvZywgdGhpcyk7CiAKLSAgICB0aGlzLl9jbGVhckxvZ09uUmVsb2FkU2V0dGluZyA9IG5ldyBX
ZWJJbnNwZWN0b3IuU2V0dGluZygiY2xlYXItbG9nLW9uLXJlbG9hZCIsIHRydWUpOwotCiAgICAg
dmFyIHRvb2xUaXAgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgY29uc29sZSB0YWIiKTsK
ICAgICB0aGlzLl9zaG93Q29uc29sZVRhYk5hdmlnYXRpb25JdGVtID0gbmV3IFdlYkluc3BlY3Rv
ci5CdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy10YWIiLCB0b29sVGlwLCAiSW1hZ2VzL1NwbGl0
VG9nZ2xlVXAuc3ZnIiwgMTYsIDE2KTsKICAgICB0aGlzLl9zaG93Q29uc29sZVRhYk5hdmlnYXRp
b25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJ1dHRvbk5hdmlnYXRpb25JdGVt
LkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dDb25zb2xlVGFiLCB0aGlzKTsKIAogICAgIHRoaXMu
bWVzc2FnZXNFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5faGFu
ZGxlQ29udGV4dE1lbnVFdmVudC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKLSAgICBXZWJJbnNwZWN0
b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2
ZW50LkNsZWFyZWQsIHRoaXMuX3Nlc3Npb25zQ2xlYXJlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVj
dG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5F
dmVudC5TZXNzaW9uU3RhcnRlZCwgdGhpcy5fc2Vzc2lvblN0YXJ0ZWQsIHRoaXMpOwogICAgIFdl
Ykluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01h
bmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCB0aGlzLl9tZXNzYWdlQWRkZWQsIHRoaXMpOwogICAg
IFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxv
Z01hbmFnZXIuRXZlbnQuUHJldmlvdXNNZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkLCB0aGlzLl9w
cmV2aW91c01lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rv
ci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZl
bnQuQWN0aXZlTG9nQ2xlYXJlZCwgdGhpcy5fYWN0aXZlTG9nQ2xlYXJlZCwgdGhpcyk7CisgICAg
V2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9n
TWFuYWdlci5FdmVudC5DbGVhcmVkLCB0aGlzLl9sb2dDbGVhcmVkLCB0aGlzKTsKIAogICAgIFdl
Ykluc3BlY3Rvci5GcmFtZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZS5FdmVu
dC5Qcm92aXNpb25hbExvYWRTdGFydGVkLCB0aGlzLl9wcm92aXNpb25hbExvYWRTdGFydGVkLCB0
aGlzKTsKIH07CkBAIC0xNTIsMTMgKzE0OSw2IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmll
dy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzRWxlbWVudC5jbGFz
c0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlYXJjaEluUHJvZ3Jl
c3NTdHlsZUNsYXNzTmFtZSk7CiAgICAgfSwKIAotICAgIGRpZENsZWFyTWVzc2FnZXM6IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9pZ25vcmVEaWRDbGVhck1lc3NhZ2VzKQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5yZXF1
ZXN0Q2xlYXJNZXNzYWdlcygpOwotICAgIH0sCi0KICAgICBkaWRBcHBlbmRDb25zb2xlTWVzc2Fn
ZVZpZXc6IGZ1bmN0aW9uKG1lc3NhZ2VWaWV3KQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3Nl
cnQobWVzc2FnZVZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VWaWV3
IHx8IG1lc3NhZ2VWaWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kVmll
dyk7CkBAIC0yOTMsMTcgKzI4Myw5IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBkYXRhOwogICAgIH0sCiAKLSAgICBfc2Vzc2lvbnND
bGVhcmVkOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2lnbm9yZURpZENs
ZWFyTWVzc2FnZXMgPSB0cnVlOwotICAgICAgICB0aGlzLl9sb2dWaWV3Q29udHJvbGxlci5jbGVh
cigpOwotICAgICAgICB0aGlzLl9pZ25vcmVEaWRDbGVhck1lc3NhZ2VzID0gZmFsc2U7Ci0gICAg
fSwKLQogICAgIF9zZXNzaW9uU3RhcnRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAg
ICBpZiAodGhpcy5fY2xlYXJMb2dPblJlbG9hZFNldHRpbmcudmFsdWUpICB7Ci0gICAgICAgICAg
ICB0aGlzLl9jbGVhckxvZ0lnbm9yaW5nQ2xlYXJNZXNzYWdlcygpOworICAgICAgICBpZiAoV2Vi
SW5zcGVjdG9yLmNsZWFyTG9nT25SZWxvYWQudmFsdWUpICB7CiAgICAgICAgICAgICB0aGlzLl9y
ZWFwcGVuZFByb3Zpc2lvbmFsTWVzc2FnZXMoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpAQCAtMzQ0LDcgKzMyNiw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJDbGVhciBMb2ciKSwgdGhpcy5fY2xlYXJMb2cuYmluZCh0aGlzKSk7CiAgICAgICAg
IGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwogCi0gICAgICAgIHZhciBjbGVhckxvZ09u
UmVsb2FkVUlTdHJpbmcgPSB0aGlzLl9jbGVhckxvZ09uUmVsb2FkU2V0dGluZy52YWx1ZSA/IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiS2VlcCBMb2cgb24gUmVsb2FkIikgOiBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkNsZWFyIExvZyBvbiBSZWxvYWQiKTsKKyAgICAgICAgdmFyIGNsZWFyTG9nT25S
ZWxvYWRVSVN0cmluZyA9IFdlYkluc3BlY3Rvci5jbGVhckxvZ09uUmVsb2FkLnZhbHVlID8gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJLZWVwIExvZyBvbiBSZWxvYWQiKSA6IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiQ2xlYXIgTG9nIG9uIFJlbG9hZCIpOwogCiAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oY2xlYXJMb2dPblJlbG9hZFVJU3RyaW5nLCB0aGlzLl90b2dnbGVDbGVhckxvZ09u
UmVsb2FkU2V0dGluZy5iaW5kKHRoaXMpKTsKIApAQCAtNjI0LDE5ICs2MDYsOSBAQCBXZWJJbnNw
ZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9KTsKICAgICB9LAog
Ci0gICAgX2FjdGl2ZUxvZ0NsZWFyZWQ6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAg
dGhpcy5faWdub3JlRGlkQ2xlYXJNZXNzYWdlcyA9IHRydWU7Ci0gICAgICAgIHRoaXMuX2xvZ1Zp
ZXdDb250cm9sbGVyLmNsZWFyKCk7Ci0gICAgICAgIHRoaXMuX2lnbm9yZURpZENsZWFyTWVzc2Fn
ZXMgPSBmYWxzZTsKLSAgICB9LAotCi0gICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcv
Yi8xNDU0NjY+IFdlYiBJbnNwZWN0b3I6IEFjdGl2aXR5IFZpZXdlciBkb2VzIG5vdCB1cGRhdGUg
b24gIkNsZWFyIExvZyBvbiByZWxvYWQiCi0gICAgX2NsZWFyTG9nSWdub3JpbmdDbGVhck1lc3Nh
Z2VzOiBmdW5jdGlvbigpCisgICAgX2xvZ0NsZWFyZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
LSAgICAgICAgdGhpcy5faWdub3JlRGlkQ2xlYXJNZXNzYWdlcyA9IHRydWU7CiAgICAgICAgIHRo
aXMuX2xvZ1ZpZXdDb250cm9sbGVyLmNsZWFyKCk7Ci0gICAgICAgIHRoaXMuX2lnbm9yZURpZENs
ZWFyTWVzc2FnZXMgPSBmYWxzZTsKICAgICB9LAogCiAgICAgX3Nob3dDb25zb2xlVGFiOiBmdW5j
dGlvbigpCkBAIC02NDYsMTIgKzYxOCwxMiBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlID0gewogCiAgICAgX3RvZ2dsZUNsZWFyTG9nT25SZWxvYWRTZXR0aW5nOiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9jbGVhckxvZ09uUmVsb2FkU2V0dGluZy52YWx1
ZSA9ICF0aGlzLl9jbGVhckxvZ09uUmVsb2FkU2V0dGluZy52YWx1ZTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLmNsZWFyTG9nT25SZWxvYWQudmFsdWUgPSAhV2ViSW5zcGVjdG9yLmNsZWFyTG9nT25S
ZWxvYWQudmFsdWU7CiAgICAgfSwKIAogICAgIF9jbGVhckxvZzogZnVuY3Rpb24oKQogICAgIHsK
LSAgICAgICAgdGhpcy5fbG9nVmlld0NvbnRyb2xsZXIuY2xlYXIoKTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLmxvZ01hbmFnZXIucmVxdWVzdENsZWFyTWVzc2FnZXMoKTsKICAgICB9LAogCiAgICAg
X3Njb3BlQmFyU2VsZWN0aW9uRGlkQ2hhbmdlOiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL09iamVjdFRyZWVWaWV3
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0VHJl
ZVZpZXcuanMKaW5kZXggZjhlZTE1MzEzMjYyZGZmNzAwYzg0YjAzZjhmMjhjNDM0MTc2MDE5OC4u
ZTY2OWZmNzFiMzRiZjk0Y2RmODczYWE4YjAzNjJjYzAxNGQwM2VhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0VHJlZVZpZXcuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0VHJl
ZVZpZXcuanMKQEAgLTMzNiw3ICszMzYsNiBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0VHJlZVZpZXcg
PSBjbGFzcyBPYmplY3RUcmVlVmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAg
ICAgICBpZiAodGhpcy5faW5Db25zb2xlKSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IubG9n
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LkNs
ZWFyZWQsIHRoaXMuX3VudHJhY2tXZWFrRW50cmllcywgdGhpcyk7Ci0gICAgICAgICAgICBXZWJJ
bnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5h
Z2VyLkV2ZW50LkFjdGl2ZUxvZ0NsZWFyZWQsIHRoaXMuX3VudHJhY2tXZWFrRW50cmllcywgdGhp
cyk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LlNlc3Npb25TdGFydGVkLCB0aGlzLl91bnRy
YWNrV2Vha0VudHJpZXMsIHRoaXMpOwogICAgICAgICB9CiAgICAgfQpAQCAtMzU1LDcgKzM1NCw2
IEBAIFdlYkluc3BlY3Rvci5PYmplY3RUcmVlVmlldyA9IGNsYXNzIE9iamVjdFRyZWVWaWV3IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgICAgIGlmICh0aGlzLl9pbkNvbnNvbGUp
IHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuQ2xlYXJlZCwgdGhpcy5fdW50cmFja1dl
YWtFbnRyaWVzLCB0aGlzKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLnJl
bW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuQWN0aXZlTG9n
Q2xlYXJlZCwgdGhpcy5fdW50cmFja1dlYWtFbnRyaWVzLCB0aGlzKTsKICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5sb2dNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxv
Z01hbmFnZXIuRXZlbnQuU2Vzc2lvblN0YXJ0ZWQsIHRoaXMuX3VudHJhY2tXZWFrRW50cmllcywg
dGhpcyk7CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254213</attachid>
            <date>2015-06-03 15:10:48 -0700</date>
            <delta_ts>2015-06-03 15:58:59 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>bug-145466-20150604001026.patch</filename>
            <type>text/plain</type>
            <size>18965</size>
            <attacher name="Tobias Reiss">tobi+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBl
OTAxYTA2Mzg4YzJjNWEyYTRlNWJmYzkwNzI2Y2YzN2RkYmMwYTc2Li5mOWYxMDI3NTJlMTQxNGMz
ZGZkMThiZTg3NTY1MGRhZmIxMDVmZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MSBAQAorMjAxNS0wNi0wMyAgVG9iaWFzIFJlaXNzICA8dG9iaSt3ZWJraXRAYmFzZWNv
ZGUuZGU+CisgICAgICAgIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBBY3Rpdml0eSBWaWV3ZXIg
ZG9lcyBub3QgdXBkYXRlIG9uICJDbGVhciBMb2cgb24gcmVsb2FkIgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NDY2CisgICAgICAgIAorICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAxLiBJc29sYXRlIGxvZ2lj
IHdpdGhpbiBMb2dNYW5hZ2VyIGFuZCByZW1vdmUgaGFja3MvbG9naWMgZnJvbSBhbGwgb3RoZXIg
ZmlsZXMKKyAgICAgICAgMi4gV2l0aGluIExvZ01hbmFnZXI6IERpZmZlcmVudGlhdGUgIm1lc3Nh
Z2VzQ2xlYXJlZCIgY2FsbHMKKyAgICAgICAgIGEpIHRoYXQgaGFwcGVuIGFzIGEgcmVzdWx0IG9m
IGEgInJlcXVlc3RlZCBjbGVhciIgYnkgRnJvbnRlbmQgKGUuZy4gQnV0dG9uKQorICAgICAgICAg
YikgdGhhdCBoYXBwZW4gb24gcGFnZSByZWxvYWQgYW5kIGluc3RhbGwgImNsZWFyL2tlZXAtb24t
cGFnZS1yZWxvYWQiIGxvZ2ljCisgICAgICAgICBjKSB0aGF0IGhhcHBlbiBvbiBmcmFtZSBuYXZp
Z2F0ZWQsIGNvbnNvbGUuY2xlYXIoKSBvciBjbGVhcigpCisgICAgICAgIDMuIFVuaWZ5ICJBY3Rp
dmVMb2dDbGVhcmVkIiBhbmQgIkNsZWFyZWQiIGV2ZW50cyB0byAiQ2xlYXJlZCIKKyAgICAgICAg
CisgICAgICAgIEZvciBzdGVwIDJiIGFuZCAyYyBpdCBpcyBpbXBvcnRhbnQgdG8gZGVsYXkgdGhl
IGhhbmRsaW5nIGFuZCB3YWl0IHVudGlsCisgICAgICAgICJfbWFpblJlc291cmNlRGlkQ2hhbmdl
IiBoYXMgZGV0ZXJtaW5lZCB3aGV0aGVyIGEgcGFnZSByZWxvYWQgaGFwcGVuZWQgb3IKKyAgICAg
ICAgbm90LgorICAgICAgICAKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5sb2FkZWQpOgorICAgICAgICBTdG9yZSAiY2xlYXItbG9n
LW9uLXJlbG9hZCIgc2V0dGluZyBnbG9iYWxseS4KKyAgICAgICAgCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9Jc3N1ZU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSXNzdWVNYW5hZ2VyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9EZWZhdWx0
RGFzaGJvYXJkLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlZmF1bHREYXNoYm9hcmQpOiBE
ZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0VHJlZVZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0VHJlZVZpZXcucHJvdG90eXBlLl90cmFja1dl
YWtFbnRyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RUcmVlVmll
dy5wcm90b3R5cGUuX3VudHJhY2tXZWFrRW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuT2JqZWN0VHJlZVZpZXcpOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgZGVsZXRl
ZCBldmVudHMuCisgICAgICAgIAorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
SmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkph
dmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZUNsZWFyU2hvcnRjdXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlci5wcm90
b3R5cGUuY2xlYXIpOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgZGVsZWdhdGUgZnVuY3Rpb24g
Y2FsbCBhbmQgY2FsbCBMb2dNYW5hZ2VyIGRpcmVjdGx5LgorICAgICAgICAKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0xvZ01hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTG9nTWFuYWdlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5wcm90
b3R5cGUubWVzc2FnZXNDbGVhcmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2Vy
LnByb3RvdHlwZS5fZGVsYXllZE1lc3NhZ2VzQ2xlYXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTG9nTWFuYWdlci5wcm90b3R5cGUucmVxdWVzdENsZWFyTWVzc2FnZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIucHJvdG90eXBlLl9tYWluUmVzb3VyY2VEaWRDaGFuZ2Up
OgorICAgICAgICBJc29sYXRlICJjbGVhciBsb2ciIGxvZ2ljLCBlc3BlY2lhbGx5IGNsZWFyL2tl
ZXAtbG9nLW9uLXJlbG9hZCBsb2dpYy4KKyAgICAgICAgCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBl
Ll9zZXNzaW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX2xvZ0NsZWFyZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdG9nZ2xlQ2xlYXJMb2dPblJlbG9hZFNl
dHRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5f
Y2xlYXJMb2cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5kaWRDbGVhck1lc3NhZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dD
b250ZW50Vmlldy5wcm90b3R5cGUuX3Nlc3Npb25zQ2xlYXJlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl9hY3RpdmVMb2dDbGVhcmVk
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5
cGUuX2NsZWFyTG9nSWdub3JpbmdDbGVhck1lc3NhZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgTWFr
ZSBpdCBhIGNvbnN1bWVyIG9mIExvZ01hbmFnZXIgYW5kIHJlbW92ZSBzcGVjaWFsIGhhY2tzLiBT
aW1wbGlmeSBjb2RlLgorCiAyMDE1LTA2LTAzICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZA
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNlYXJjaCBmaWVsZCBib3R0b20g
Ym9yZGVyIGRvZXNuJ3QgbWF0Y2ggdGhlIHJlc3Qgb2YgdGhlIHRvb2xiYXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCA4MWJlYTkz
MGY4NDkwYzUzZjVjZDFiYmUzYzMwZDhkYzdiYTRjN2FmLi42YzJlMzRhZjE0YTM0MmVmOWY0OGRi
NDhhYzdlOTZlMGY1OGExMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC0xNTEsNiArMTUxLDcgQEAgV2ViSW5zcGVjdG9yLmxv
YWRlZCA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuc2hvd1NoYWRvd0RPTVNldHRpbmcgPSBuZXcg
V2ViSW5zcGVjdG9yLlNldHRpbmcoInNob3ctc2hhZG93LWRvbSIsIGZhbHNlKTsKICAgICB0aGlz
LnNob3dSZXBsYXlJbnRlcmZhY2VTZXR0aW5nID0gbmV3IFdlYkluc3BlY3Rvci5TZXR0aW5nKCJz
aG93LXdlYi1yZXBsYXkiLCBmYWxzZSk7CisgICAgdGhpcy5jbGVhckxvZ09uUmVsb2FkID0gbmV3
IFdlYkluc3BlY3Rvci5TZXR0aW5nKCJjbGVhci1sb2ctb24tcmVsb2FkIiwgdHJ1ZSk7CiAKICAg
ICB0aGlzLnNob3dKYXZhU2NyaXB0VHlwZUluZm9ybWF0aW9uU2V0dGluZyA9IG5ldyBXZWJJbnNw
ZWN0b3IuU2V0dGluZygic2hvdy1qYXZhc2NyaXB0LXR5cGUtaW5mb3JtYXRpb24iLCBmYWxzZSk7
CiAgICAgaWYgKHRoaXMuc2hvd0phdmFTY3JpcHRUeXBlSW5mb3JtYXRpb25TZXR0aW5nLnZhbHVl
ICYmIHdpbmRvdy5SdW50aW1lQWdlbnQgJiYgUnVudGltZUFnZW50LmVuYWJsZVR5cGVQcm9maWxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0lzc3VlTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0lzc3VlTWFuYWdlci5qcwppbmRleCA1ZjczMjA3ZmIwZmZhYTA5MWFk
MmQxNmM2ZDQ1NmQ0YjFiMDY4NDY3Li4xYmRkODNjNDlhYzBjNjkyZmVlNjMyODZjNWY2NjA1MTUz
ZTc1YWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9Jc3N1ZU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSXNzdWVNYW5hZ2VyLmpzCkBAIC0zMCw3ICszMCw3IEBA
IFdlYkluc3BlY3Rvci5Jc3N1ZU1hbmFnZXIgPSBjbGFzcyBJc3N1ZU1hbmFnZXIgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAgV2ViSW5zcGVj
dG9yLkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZyYW1lLkV2ZW50Lk1haW5S
ZXNvdXJjZURpZENoYW5nZSwgdGhpcy5fbWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzKTsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuTG9nTWFuYWdlci5FdmVudC5BY3RpdmVMb2dDbGVhcmVkLCB0aGlzLl9hY3RpdmVMb2dDbGVh
cmVkLCB0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5DbGVhcmVkLCB0aGlzLl9sb2dDbGVh
cmVkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLmluaXRpYWxpemUoKTsKICAgICB9CkBAIC03NCw3
ICs3NCw3IEBAIFdlYkluc3BlY3Rvci5Jc3N1ZU1hbmFnZXIgPSBjbGFzcyBJc3N1ZU1hbmFnZXIg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICAvLyBQcml2YXRlCiAKLSAgICBfYWN0
aXZlTG9nQ2xlYXJlZChldmVudCkKKyAgICBfbG9nQ2xlYXJlZChldmVudCkKICAgICB7CiAgICAg
ICAgIHRoaXMuaW5pdGlhbGl6ZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRMb2dWaWV3Q29udHJv
bGxlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L0phdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlci5qcwppbmRleCA3YzUyYTIyOGFhYmQ4M2M1NzQx
OTNjYjEwNTliOGY0Y2I4MTgwY2RkLi4yZmRjZjZlNmI1MzMwNjg0NzYxMzdlOTFiZWZiMDcxY2Uy
OGRjNzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9KYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdExvZ1ZpZXdD
b250cm9sbGVyLmpzCkBAIC04NSw5ICs4NSw2IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0TG9n
Vmlld0NvbnRyb2xsZXIgPSBjbGFzcyBKYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIgZXh0CiAg
ICAgICAgIHRoaXMuc3RhcnROZXdTZXNzaW9uKHRydWUpOwogCiAgICAgICAgIHRoaXMucHJvbXB0
LmZvY3VzKCk7Ci0KLSAgICAgICAgaWYgKHRoaXMuZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuZGVs
ZWdhdGUuZGlkQ2xlYXJNZXNzYWdlcyA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHRoaXMu
ZGVsZWdhdGUuZGlkQ2xlYXJNZXNzYWdlcygpOwogICAgIH0KIAogICAgIHN0YXJ0TmV3U2Vzc2lv
bihjbGVhclByZXZpb3VzU2Vzc2lvbnMpCkBAIC0yNDQsNyArMjQxLDcgQEAgV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlciA9IGNsYXNzIEphdmFTY3JpcHRMb2dWaWV3Q29u
dHJvbGxlciBleHQKIAogICAgIF9oYW5kbGVDbGVhclNob3J0Y3V0KCkKICAgICB7Ci0gICAgICAg
IHRoaXMuY2xlYXIoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIucmVxdWVzdENs
ZWFyTWVzc2FnZXMoKTsKICAgICB9CiAKICAgICBfaGFuZGxlRmluZFNob3J0Y3V0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0xv
Z01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9Mb2dNYW5hZ2VyLmpzCmluZGV4IGM4NjI2ZTYxYmNhOGM3MGRmYmIxZGVlZGQyZDcxY2Zm
MDNlMjRiNDYuLjhhMTAxMDI3ODViNGI1MDdlMGNiNzc0ZmVmZjg1ZDdkMzA3YzM0NjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0xv
Z01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvTG9nTWFuYWdlci5qcwpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1IFRvYmlhcyBSZWlzcyA8dG9iaSt3ZWJraXRAYmFzZWNvZGUuZGU+CiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzMwLDkgQEAgV2ViSW5zcGVjdG9yLkxvZ01h
bmFnZXIgPSBjbGFzcyBMb2dNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAg
IHsKICAgICAgICAgc3VwZXIoKTsKIAorICAgICAgICB0aGlzLl9jbGVhck1lc3NhZ2VzUmVxdWVz
dGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2lzUGFnZVJlbG9hZCA9IGZhbHNlOworCiAgICAg
ICAgIFdlYkluc3BlY3Rvci5GcmFtZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFt
ZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX21haW5SZXNvdXJjZURpZENoYW5n
ZSwgdGhpcyk7CiAgICAgfQogCkBAIC01MywxNCArNTcsMjkgQEAgV2ViSW5zcGVjdG9yLkxvZ01h
bmFnZXIgPSBjbGFzcyBMb2dNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAg
ICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdE1lc3NhZ2UuY2xlYXJNYXhp
bXVtU2F2ZWRSZXN1bHRJbmRleCgpOwogCi0gICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gY2xl
YXIgbWVzc2FnZXMgb24gcmVsb2Fkcy4gV2UgY2FuJ3QgZGV0ZXJtaW5lIHRoYXQgZWFzaWx5IHJp
Z2h0IG5vdy4KLSAgICAgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8xMzc2NzA3OT4gQ29u
c29sZS5tZXNzYWdlc0NsZWFyZWQgc2hvdWxkIGluY2x1ZGUgYSByZWFzb24KLSAgICAgICAgdGhp
cy5fc2hvdWxkQ2xlYXJNZXNzYWdlcyA9IHRydWU7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fc2hvdWxkQ2xlYXJNZXNzYWdlcykKLSAgICAg
ICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuTG9n
TWFuYWdlci5FdmVudC5BY3RpdmVMb2dDbGVhcmVkKTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9zaG91bGRDbGVhck1lc3NhZ2VzOwotICAgICAgICB9LmJpbmQodGhpcyksIDApOworICAgICAg
ICBpZiAodGhpcy5fY2xlYXJNZXNzYWdlc1JlcXVlc3RlZCkgeworICAgICAgICAgICAgLy8gRnJv
bnRlbmQgcmVxdWVzdGVkICJjbGVhciBjb25zb2xlIiBhbmQgQmFja2VuZCBzdWNjZXNzZnVsbHkg
Y29tcGxldGVkIHRoZSByZXF1ZXN0LgorICAgICAgICAgICAgdGhpcy5fY2xlYXJNZXNzYWdlc1Jl
cXVlc3RlZCA9IGZhbHNlOworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuQ2xlYXJlZCk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAvLyBSZWNlaXZlZCBhbiB1bnJlcXVlc3RlZCBjbGVhciBjb25zb2xl
IGV2ZW50LgorICAgICAgICAgICAgLy8gVGhpcyBjb3VsZCBiZSBmb3IgYSBuYXZpZ2F0aW9uIG9y
IG90aGVyIHJlYXNvbnMgKGxpa2UgY29uc29sZS5jbGVhcigpKS4KKyAgICAgICAgICAgIC8vIElm
IHRoaXMgd2FzIGEgcmVsb2FkLCB3ZSBtYXkgbm90IHdhbnQgdG8gZGlzcGF0Y2ggV2ViSW5zcGVj
dG9yLkxvZ01hbmFnZXIuRXZlbnQuQ2xlYXJlZC4KKyAgICAgICAgICAgIC8vIFRvIGRldGVjdCBp
ZiB0aGlzIGlzIGEgcmVsb2FkIHdlIHdhaXQgYSB0dXJuIGFuZCBjaGVjayBpZiB0aGVyZSB3YXMg
YSBtYWluIHJlc291cmNlIGNoYW5nZSByZWxvYWQuCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRo
aXMuX2RlbGF5ZWRNZXNzYWdlc0NsZWFyZWQuYmluZCh0aGlzKSwgMCk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBfZGVsYXllZE1lc3NhZ2VzQ2xlYXJlZCgpCisgICAgeworICAgICAgICBpZiAo
dGhpcy5faXNQYWdlUmVsb2FkKSB7CisgICAgICAgICAgICB0aGlzLl9pc1BhZ2VSZWxvYWQgPSBm
YWxzZTsKKyAgICAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuY2xlYXJMb2dPblJlbG9hZC52YWx1
ZSkKKyAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuTG9nTWFuYWdlci5FdmVudC5DbGVhcmVkKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIC8vIEEgZnJhbWUgbmF2aWdhdGVkLCBjb25zb2xlLmNsZWFyKCkgb3IgY29tbWFuZCBs
aW5lIGNsZWFyKCkgaGFwcGVuZWQuCisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5DbGVhcmVkKTsKKyAgICAgICAg
fQogICAgIH0KIAogICAgIG1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQoY291bnQpCkBAIC03Miw2
ICs5MSw4IEBAIFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyID0gY2xhc3MgTG9nTWFuYWdlciBleHRl
bmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgIHJlcXVlc3RDbGVhck1lc3NhZ2VzKCkKICAg
ICB7CisgICAgICAgIHRoaXMuX2NsZWFyTWVzc2FnZXNSZXF1ZXN0ZWQgPSB0cnVlOworCiAgICAg
ICAgIENvbnNvbGVBZ2VudC5jbGVhck1lc3NhZ2VzKCk7CiAgICAgfQogCkBAIC04NCwxNiArMTA1
LDEzIEBAIFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyID0gY2xhc3MgTG9nTWFuYWdlciBleHRlbmRz
IFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgaWYgKCFldmVudC50YXJnZXQuaXNNYWluRnJh
bWUoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB2YXIgb2xkTWFpblJlc291cmNl
ID0gZXZlbnQuZGF0YS5vbGRNYWluUmVzb3VyY2U7Ci0gICAgICAgIHZhciBuZXdNYWluUmVzb3Vy
Y2UgPSBldmVudC50YXJnZXQubWFpblJlc291cmNlOwotICAgICAgICBpZiAob2xkTWFpblJlc291
cmNlLnVybCAhPT0gbmV3TWFpblJlc291cmNlLnVybCkKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LkNsZWFyZWQp
OwotICAgICAgICBlbHNlCisgICAgICAgIGlmIChldmVudC5kYXRhLm9sZE1haW5SZXNvdXJjZS51
cmwgPT09IGV2ZW50LnRhcmdldC5tYWluUmVzb3VyY2UudXJsKSB7CisgICAgICAgICAgICB0aGlz
Ll9pc1BhZ2VSZWxvYWQgPSB0cnVlOwogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuU2Vzc2lvblN0YXJ0ZWQpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2lzUGFnZVJlbG9hZCA9IGZhbHNlOwog
CiAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdE1lc3NhZ2UuY2xlYXJN
YXhpbXVtU2F2ZWRSZXN1bHRJbmRleCgpOwotCi0gICAgICAgIGRlbGV0ZSB0aGlzLl9zaG91bGRD
bGVhck1lc3NhZ2VzOwogICAgIH0KIH07CiAKQEAgLTEwMSw2ICsxMTksNSBAQCBXZWJJbnNwZWN0
b3IuTG9nTWFuYWdlci5FdmVudCA9IHsKICAgICBTZXNzaW9uU3RhcnRlZDogImxvZy1tYW5hZ2Vy
LXNlc3Npb24td2FzLXN0YXJ0ZWQiLAogICAgIENsZWFyZWQ6ICJsb2ctbWFuYWdlci1jbGVhcmVk
IiwKICAgICBNZXNzYWdlQWRkZWQ6ICJsb2ctbWFuYWdlci1tZXNzYWdlLWFkZGVkIiwKLSAgICBB
Y3RpdmVMb2dDbGVhcmVkOiAibG9nLW1hbmFnZXItY3VycmVudC1sb2ctY2xlYXJlZCIsCiAgICAg
UHJldmlvdXNNZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkOiAibG9nLW1hbmFnZXItcHJldmlvdXMt
bWVzc2FnZS1yZXBlYXQtY291bnQtdXBkYXRlZCIKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGVmYXVsdERhc2hib2FyZC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9EZWZhdWx0RGFzaGJvYXJk
LmpzCmluZGV4IGU5ZDlkOWM2YzFiNTZmY2Y4NTVjMTI3ZWJjZDBjNjE0M2M2NTdmOTEuLjVlMmFm
MjIwMTkxNWMwZjM5NGM2NDRjNWVkMDMwZDE1NDU5N2UxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9EZWZhdWx0RGFzaGJvYXJkLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9EZWZhdWx0RGFz
aGJvYXJkLmpzCkBAIC0zOCw3ICszOCw2IEBAIFdlYkluc3BlY3Rvci5EZWZhdWx0RGFzaGJvYXJk
ID0gY2xhc3MgRGVmYXVsdERhc2hib2FyZCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplCiAgICAg
ICAgIC8vIE5lY2Vzc2FyeSBldmVudHMgcmVxdWlyZWQgdG8gdHJhY2sgY29uc29sZSBtZXNzYWdl
cy4KICAgICAgICAgdmFyIGxvZ01hbmFnZXIgPSBXZWJJbnNwZWN0b3IubG9nTWFuYWdlcjsKICAg
ICAgICAgbG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2Vy
LkV2ZW50LkNsZWFyZWQsIHRoaXMuX2NvbnNvbGVXYXNDbGVhcmVkLCB0aGlzKTsKLSAgICAgICAg
bG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50
LkFjdGl2ZUxvZ0NsZWFyZWQsIHRoaXMuX2NvbnNvbGVXYXNDbGVhcmVkLCB0aGlzKTsKICAgICAg
ICAgbG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2
ZW50Lk1lc3NhZ2VBZGRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRlZCwgdGhpcyk7CiAgICAg
ICAgIGxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5F
dmVudC5QcmV2aW91c01lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQsIHRoaXMuX2NvbnNvbGVNZXNz
YWdlV2FzUmVwZWF0ZWQsIHRoaXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCmluZGV4IDAyN2Ez
ZjY1MTdlYjIzOTMyZjI0MjA4ODMwMDMzYTYzY2VlOGJlZDIuLmI3MjJhZWI3MmY5OGU4NzEyZDg0
MWY5ODZlZTFhMGZlZmRkZTdlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCkBAIC03MSwxOSAr
NzEsMTYgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gZnVuY3Rpb24ocmVwcmVzZW50
ZWRPYmplY3QpCiAgICAgdGhpcy5fY2xlYXJMb2dOYXZpZ2F0aW9uSXRlbSA9IG5ldyBXZWJJbnNw
ZWN0b3IuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImNsZWFyLWxvZyIsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiQ2xlYXIgbG9nICglcyBvciAlcykiKS5mb3JtYXQodGhpcy5fbG9nVmlld0NvbnRyb2xs
ZXIubWVzc2FnZXNDbGVhcktleWJvYXJkU2hvcnRjdXQuZGlzcGxheU5hbWUsIHRoaXMuX2xvZ1Zp
ZXdDb250cm9sbGVyLm1lc3NhZ2VzQWx0ZXJuYXRlQ2xlYXJLZXlib2FyZFNob3J0Y3V0LmRpc3Bs
YXlOYW1lKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbVRyYXNoLnN2ZyIsIDE1LCAxNSk7CiAgICAg
dGhpcy5fY2xlYXJMb2dOYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9jbGVhckxvZywgdGhp
cyk7CiAKLSAgICB0aGlzLl9jbGVhckxvZ09uUmVsb2FkU2V0dGluZyA9IG5ldyBXZWJJbnNwZWN0
b3IuU2V0dGluZygiY2xlYXItbG9nLW9uLXJlbG9hZCIsIHRydWUpOwotCiAgICAgdmFyIHRvb2xU
aXAgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgY29uc29sZSB0YWIiKTsKICAgICB0aGlz
Ll9zaG93Q29uc29sZVRhYk5hdmlnYXRpb25JdGVtID0gbmV3IFdlYkluc3BlY3Rvci5CdXR0b25O
YXZpZ2F0aW9uSXRlbSgic2hvdy10YWIiLCB0b29sVGlwLCAiSW1hZ2VzL1NwbGl0VG9nZ2xlVXAu
c3ZnIiwgMTYsIDE2KTsKICAgICB0aGlzLl9zaG93Q29uc29sZVRhYk5hdmlnYXRpb25JdGVtLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNs
aWNrZWQsIHRoaXMuX3Nob3dDb25zb2xlVGFiLCB0aGlzKTsKIAogICAgIHRoaXMubWVzc2FnZXNF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5faGFuZGxlQ29udGV4
dE1lbnVFdmVudC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKLSAgICBXZWJJbnNwZWN0b3IubG9nTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LkNsZWFy
ZWQsIHRoaXMuX3Nlc3Npb25zQ2xlYXJlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmxvZ01h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5TZXNz
aW9uU3RhcnRlZCwgdGhpcy5fc2Vzc2lvblN0YXJ0ZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rv
ci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZl
bnQuTWVzc2FnZUFkZGVkLCB0aGlzLl9tZXNzYWdlQWRkZWQsIHRoaXMpOwogICAgIFdlYkluc3Bl
Y3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIu
RXZlbnQuUHJldmlvdXNNZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkLCB0aGlzLl9wcmV2aW91c01l
c3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5sb2dNYW5h
Z2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuQWN0aXZl
TG9nQ2xlYXJlZCwgdGhpcy5fYWN0aXZlTG9nQ2xlYXJlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVj
dG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5F
dmVudC5DbGVhcmVkLCB0aGlzLl9sb2dDbGVhcmVkLCB0aGlzKTsKIAogICAgIFdlYkluc3BlY3Rv
ci5GcmFtZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZS5FdmVudC5Qcm92aXNp
b25hbExvYWRTdGFydGVkLCB0aGlzLl9wcm92aXNpb25hbExvYWRTdGFydGVkLCB0aGlzKTsKIH07
CkBAIC0xNTIsMTMgKzE0OSw2IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzRWxlbWVudC5jbGFzc0xpc3QuY29u
dGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlYXJjaEluUHJvZ3Jlc3NTdHlsZUNs
YXNzTmFtZSk7CiAgICAgfSwKIAotICAgIGRpZENsZWFyTWVzc2FnZXM6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl9pZ25vcmVEaWRDbGVhck1lc3NhZ2VzKQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5yZXF1ZXN0Q2xlYXJN
ZXNzYWdlcygpOwotICAgIH0sCi0KICAgICBkaWRBcHBlbmRDb25zb2xlTWVzc2FnZVZpZXc6IGZ1
bmN0aW9uKG1lc3NhZ2VWaWV3KQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQobWVzc2Fn
ZVZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VWaWV3IHx8IG1lc3Nh
Z2VWaWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kVmlldyk7CkBAIC0z
MTgsMTcgKzMwOCw5IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiBkYXRhOwogICAgIH0sCiAKLSAgICBfc2Vzc2lvbnNDbGVhcmVkOiBm
dW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2lnbm9yZURpZENsZWFyTWVzc2Fn
ZXMgPSB0cnVlOwotICAgICAgICB0aGlzLl9sb2dWaWV3Q29udHJvbGxlci5jbGVhcigpOwotICAg
ICAgICB0aGlzLl9pZ25vcmVEaWRDbGVhck1lc3NhZ2VzID0gZmFsc2U7Ci0gICAgfSwKLQogICAg
IF9zZXNzaW9uU3RhcnRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBpZiAodGhp
cy5fY2xlYXJMb2dPblJlbG9hZFNldHRpbmcudmFsdWUpICB7Ci0gICAgICAgICAgICB0aGlzLl9j
bGVhckxvZ0lnbm9yaW5nQ2xlYXJNZXNzYWdlcygpOworICAgICAgICBpZiAoV2ViSW5zcGVjdG9y
LmNsZWFyTG9nT25SZWxvYWQudmFsdWUpIHsKICAgICAgICAgICAgIHRoaXMuX3JlYXBwZW5kUHJv
dmlzaW9uYWxNZXNzYWdlcygpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0z
NjksNyArMzUxLDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNs
ZWFyIExvZyIpLCB0aGlzLl9jbGVhckxvZy5iaW5kKHRoaXMpKTsKICAgICAgICAgY29udGV4dE1l
bnUuYXBwZW5kU2VwYXJhdG9yKCk7CiAKLSAgICAgICAgdmFyIGNsZWFyTG9nT25SZWxvYWRVSVN0
cmluZyA9IHRoaXMuX2NsZWFyTG9nT25SZWxvYWRTZXR0aW5nLnZhbHVlID8gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJLZWVwIExvZyBvbiBSZWxvYWQiKSA6IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
Q2xlYXIgTG9nIG9uIFJlbG9hZCIpOworICAgICAgICB2YXIgY2xlYXJMb2dPblJlbG9hZFVJU3Ry
aW5nID0gV2ViSW5zcGVjdG9yLmNsZWFyTG9nT25SZWxvYWQudmFsdWUgPyBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIktlZXAgTG9nIG9uIFJlbG9hZCIpIDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJD
bGVhciBMb2cgb24gUmVsb2FkIik7CiAKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShj
bGVhckxvZ09uUmVsb2FkVUlTdHJpbmcsIHRoaXMuX3RvZ2dsZUNsZWFyTG9nT25SZWxvYWRTZXR0
aW5nLmJpbmQodGhpcykpOwogCkBAIC02NDksMTkgKzYzMSw5IEBAIFdlYkluc3BlY3Rvci5Mb2dD
b250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0pOwogICAgIH0sCiAKLSAgICBfYWN0
aXZlTG9nQ2xlYXJlZDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9pZ25v
cmVEaWRDbGVhck1lc3NhZ2VzID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fbG9nVmlld0NvbnRyb2xs
ZXIuY2xlYXIoKTsKLSAgICAgICAgdGhpcy5faWdub3JlRGlkQ2xlYXJNZXNzYWdlcyA9IGZhbHNl
OwotICAgIH0sCi0KLSAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0NTQ2Nj4g
V2ViIEluc3BlY3RvcjogQWN0aXZpdHkgVmlld2VyIGRvZXMgbm90IHVwZGF0ZSBvbiAiQ2xlYXIg
TG9nIG9uIHJlbG9hZCIKLSAgICBfY2xlYXJMb2dJZ25vcmluZ0NsZWFyTWVzc2FnZXM6IGZ1bmN0
aW9uKCkKKyAgICBfbG9nQ2xlYXJlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB0
aGlzLl9pZ25vcmVEaWRDbGVhck1lc3NhZ2VzID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fbG9nVmll
d0NvbnRyb2xsZXIuY2xlYXIoKTsKLSAgICAgICAgdGhpcy5faWdub3JlRGlkQ2xlYXJNZXNzYWdl
cyA9IGZhbHNlOwogICAgIH0sCiAKICAgICBfc2hvd0NvbnNvbGVUYWI6IGZ1bmN0aW9uKCkKQEAg
LTY3MSwxMiArNjQzLDEyIEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUg
PSB7CiAKICAgICBfdG9nZ2xlQ2xlYXJMb2dPblJlbG9hZFNldHRpbmc6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuX2NsZWFyTG9nT25SZWxvYWRTZXR0aW5nLnZhbHVlID0gIXRoaXMu
X2NsZWFyTG9nT25SZWxvYWRTZXR0aW5nLnZhbHVlOworICAgICAgICBXZWJJbnNwZWN0b3IuY2xl
YXJMb2dPblJlbG9hZC52YWx1ZSA9ICFXZWJJbnNwZWN0b3IuY2xlYXJMb2dPblJlbG9hZC52YWx1
ZTsKICAgICB9LAogCiAgICAgX2NsZWFyTG9nOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0
aGlzLl9sb2dWaWV3Q29udHJvbGxlci5jbGVhcigpOworICAgICAgICBXZWJJbnNwZWN0b3IubG9n
TWFuYWdlci5yZXF1ZXN0Q2xlYXJNZXNzYWdlcygpOwogICAgIH0sCiAKICAgICBfc2NvcGVCYXJT
ZWxlY3Rpb25EaWRDaGFuZ2U6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtOTc2LDcgKzk0OCw3IEBAIFdl
Ykluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgX2NsZWFyUHJvdmlz
aW9uYWxTdGF0ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fc3RhcnRlZFByb3Zp
c2lvbmFsTG9hZCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9wcm92aXNpb25hbE1lc3NhZ2VzID0g
W107ICAgICAgICAKKyAgICAgICAgdGhpcy5fcHJvdmlzaW9uYWxNZXNzYWdlcyA9IFtdOwogICAg
IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL09iamVjdFRyZWVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvT2JqZWN0VHJlZVZpZXcuanMKaW5kZXggZjhlZTE1MzEzMjYyZGZmNzAwYzg0
YjAzZjhmMjhjNDM0MTc2MDE5OC4uZTY2OWZmNzFiMzRiZjk0Y2RmODczYWE4YjAzNjJjYzAxNGQw
M2VhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvT2JqZWN0VHJlZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvT2JqZWN0VHJlZVZpZXcuanMKQEAgLTMzNiw3ICszMzYsNiBAQCBXZWJJbnNw
ZWN0b3IuT2JqZWN0VHJlZVZpZXcgPSBjbGFzcyBPYmplY3RUcmVlVmlldyBleHRlbmRzIFdlYklu
c3BlY3Rvci5PYmplY3QKIAogICAgICAgICBpZiAodGhpcy5faW5Db25zb2xlKSB7CiAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5Mb2dNYW5hZ2VyLkV2ZW50LkNsZWFyZWQsIHRoaXMuX3VudHJhY2tXZWFrRW50cmllcywgdGhp
cyk7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LkFjdGl2ZUxvZ0NsZWFyZWQsIHRoaXMuX3Vu
dHJhY2tXZWFrRW50cmllcywgdGhpcyk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LlNlc3Np
b25TdGFydGVkLCB0aGlzLl91bnRyYWNrV2Vha0VudHJpZXMsIHRoaXMpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMzU1LDcgKzM1NCw2IEBAIFdlYkluc3BlY3Rvci5PYmplY3RUcmVlVmlldyA9IGNs
YXNzIE9iamVjdFRyZWVWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgICAg
IGlmICh0aGlzLl9pbkNvbnNvbGUpIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5h
Z2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuQ2xl
YXJlZCwgdGhpcy5fdW50cmFja1dlYWtFbnRyaWVzLCB0aGlzKTsKLSAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5sb2dNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01h
bmFnZXIuRXZlbnQuQWN0aXZlTG9nQ2xlYXJlZCwgdGhpcy5fdW50cmFja1dlYWtFbnRyaWVzLCB0
aGlzKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLnJlbW92ZUV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuU2Vzc2lvblN0YXJ0ZWQsIHRoaXMu
X3VudHJhY2tXZWFrRW50cmllcywgdGhpcyk7CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254218</attachid>
            <date>2015-06-03 15:59:09 -0700</date>
            <delta_ts>2015-06-04 13:15:41 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>bug-145466-20150604005847.patch</filename>
            <type>text/plain</type>
            <size>18966</size>
            <attacher name="Tobias Reiss">tobi+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBl
OTAxYTA2Mzg4YzJjNWEyYTRlNWJmYzkwNzI2Y2YzN2RkYmMwYTc2Li5kOWE4YjYwNWE0MzRhYWYw
ZmI2YWQ2ZGQyMzAzYWE4NDI0MjcxOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MSBAQAorMjAxNS0wNi0wMyAgVG9iaWFzIFJlaXNzICA8dG9iaSt3ZWJraXRAYmFzZWNv
ZGUuZGU+CisgICAgICAgIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBBY3Rpdml0eSBWaWV3ZXIg
ZG9lcyBub3QgdXBkYXRlIG9uICJDbGVhciBMb2cgb24gcmVsb2FkIgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NDY2CisgICAgICAgIAorICAgICAg
ICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgMS4gSXNvbGF0ZSBsb2dp
YyB3aXRoaW4gTG9nTWFuYWdlciBhbmQgcmVtb3ZlIGhhY2tzL2xvZ2ljIGZyb20gYWxsIG90aGVy
IGZpbGVzCisgICAgICAgIDIuIFdpdGhpbiBMb2dNYW5hZ2VyOiBEaWZmZXJlbnRpYXRlICJtZXNz
YWdlc0NsZWFyZWQiIGNhbGxzCisgICAgICAgICBhKSB0aGF0IGhhcHBlbiBhcyBhIHJlc3VsdCBv
ZiBhICJyZXF1ZXN0ZWQgY2xlYXIiIGJ5IEZyb250ZW5kIChlLmcuIEJ1dHRvbikKKyAgICAgICAg
IGIpIHRoYXQgaGFwcGVuIG9uIHBhZ2UgcmVsb2FkIGFuZCBpbnN0YWxsICJjbGVhci9rZWVwLW9u
LXBhZ2UtcmVsb2FkIiBsb2dpYworICAgICAgICAgYykgdGhhdCBoYXBwZW4gb24gZnJhbWUgbmF2
aWdhdGVkLCBjb25zb2xlLmNsZWFyKCkgb3IgY2xlYXIoKQorICAgICAgICAzLiBVbmlmeSAiQWN0
aXZlTG9nQ2xlYXJlZCIgYW5kICJDbGVhcmVkIiBldmVudHMgdG8gIkNsZWFyZWQiCisgICAgICAg
IAorICAgICAgICBGb3Igc3RlcCAyYiBhbmQgMmMgaXQgaXMgaW1wb3J0YW50IHRvIGRlbGF5IHRo
ZSBoYW5kbGluZyBhbmQgd2FpdCB1bnRpbAorICAgICAgICAiX21haW5SZXNvdXJjZURpZENoYW5n
ZSIgaGFzIGRldGVybWluZWQgd2hldGhlciBhIHBhZ2UgcmVsb2FkIGhhcHBlbmVkIG9yCisgICAg
ICAgIG5vdC4KKyAgICAgICAgCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IubG9hZGVkKToKKyAgICAgICAgU3RvcmUgImNsZWFyLWxv
Zy1vbi1yZWxvYWQiIHNldHRpbmcgZ2xvYmFsbHkuCisgICAgICAgIAorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvSXNzdWVNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLklzc3VlTWFuYWdlcik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRGVmYXVs
dERhc2hib2FyZC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWZhdWx0RGFzaGJvYXJkKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL09iamVjdFRyZWVWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFRyZWVWaWV3LnByb3RvdHlwZS5fdHJhY2tX
ZWFrRW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0VHJlZVZp
ZXcucHJvdG90eXBlLl91bnRyYWNrV2Vha0VudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk9iamVjdFRyZWVWaWV3KTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlIGRlbGV0
ZWQgZXZlbnRzLgorICAgICAgICAKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L0phdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5K
YXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIucHJvdG90eXBlLl9oYW5kbGVDbGVhclNob3J0Y3V0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIucHJv
dG90eXBlLmNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlIGRlbGVnYXRlIGZ1bmN0aW9u
IGNhbGwgYW5kIGNhbGwgTG9nTWFuYWdlciBkaXJlY3RseS4KKyAgICAgICAgCisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9Mb2dNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkxvZ01hbmFnZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIucHJv
dG90eXBlLm1lc3NhZ2VzQ2xlYXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nTWFuYWdl
ci5wcm90b3R5cGUuX2RlbGF5ZWRNZXNzYWdlc0NsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkxvZ01hbmFnZXIucHJvdG90eXBlLnJlcXVlc3RDbGVhck1lc3NhZ2VzKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLnByb3RvdHlwZS5fbWFpblJlc291cmNlRGlkQ2hhbmdl
KToKKyAgICAgICAgSXNvbGF0ZSAiY2xlYXIgbG9nIiBsb2dpYywgZXNwZWNpYWxseSBjbGVhci9r
ZWVwLWxvZy1vbi1yZWxvYWQgbG9naWMuCisgICAgICAgIAorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvTG9nQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29u
dGVudFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5fc2Vzc2lvblN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3
LnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl9sb2dDbGVhcmVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3RvZ2dsZUNsZWFyTG9nT25SZWxvYWRT
ZXR0aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUu
X2NsZWFyTG9nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5
cGUuZGlkQ2xlYXJNZXNzYWdlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcucHJvdG90eXBlLl9zZXNzaW9uc0NsZWFyZWQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fYWN0aXZlTG9nQ2xlYXJl
ZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90
eXBlLl9jbGVhckxvZ0lnbm9yaW5nQ2xlYXJNZXNzYWdlcyk6IERlbGV0ZWQuCisgICAgICAgIE1h
a2UgaXQgYSBjb25zdW1lciBvZiBMb2dNYW5hZ2VyIGFuZCByZW1vdmUgc3BlY2lhbCBoYWNrcy4g
U2ltcGxpZnkgY29kZS4KKwogMjAxNS0wNi0wMyAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTZWFyY2ggZmllbGQgYm90dG9t
IGJvcmRlciBkb2Vzbid0IG1hdGNoIHRoZSByZXN0IG9mIHRoZSB0b29sYmFyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggODFiZWE5
MzBmODQ5MGM1M2Y1Y2QxYmJlM2MzMGQ4ZGM3YmE0YzdhZi4uNmMyZTM0YWYxNGEzNDJlZjlmNDhk
YjQ4YWM3ZTk2ZTBmNThhMTJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMTUxLDYgKzE1MSw3IEBAIFdlYkluc3BlY3Rvci5s
b2FkZWQgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLnNob3dTaGFkb3dET01TZXR0aW5nID0gbmV3
IFdlYkluc3BlY3Rvci5TZXR0aW5nKCJzaG93LXNoYWRvdy1kb20iLCBmYWxzZSk7CiAgICAgdGhp
cy5zaG93UmVwbGF5SW50ZXJmYWNlU2V0dGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZygi
c2hvdy13ZWItcmVwbGF5IiwgZmFsc2UpOworICAgIHRoaXMuY2xlYXJMb2dPblJlbG9hZCA9IG5l
dyBXZWJJbnNwZWN0b3IuU2V0dGluZygiY2xlYXItbG9nLW9uLXJlbG9hZCIsIHRydWUpOwogCiAg
ICAgdGhpcy5zaG93SmF2YVNjcmlwdFR5cGVJbmZvcm1hdGlvblNldHRpbmcgPSBuZXcgV2ViSW5z
cGVjdG9yLlNldHRpbmcoInNob3ctamF2YXNjcmlwdC10eXBlLWluZm9ybWF0aW9uIiwgZmFsc2Up
OwogICAgIGlmICh0aGlzLnNob3dKYXZhU2NyaXB0VHlwZUluZm9ybWF0aW9uU2V0dGluZy52YWx1
ZSAmJiB3aW5kb3cuUnVudGltZUFnZW50ICYmIFJ1bnRpbWVBZ2VudC5lbmFibGVUeXBlUHJvZmls
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9Jc3N1ZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9Jc3N1ZU1hbmFnZXIuanMKaW5kZXggNWY3MzIwN2ZiMGZmYWEwOTFh
ZDJkMTZjNmQ0NTZkNGIxYjA2ODQ2Ny4uMWJkZDgzYzQ5YWMwYzY5MmZlZTYzMjg2YzVmNjYwNTE1
M2U3NWFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvSXNzdWVNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0lzc3VlTWFuYWdlci5qcwpAQCAtMzAsNyArMzAsNyBA
QCBXZWJJbnNwZWN0b3IuSXNzdWVNYW5hZ2VyID0gY2xhc3MgSXNzdWVNYW5hZ2VyIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5GcmFtZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZS5FdmVudC5NYWlu
UmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX21haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkxvZ01hbmFnZXIuRXZlbnQuQWN0aXZlTG9nQ2xlYXJlZCwgdGhpcy5fYWN0aXZlTG9nQ2xl
YXJlZCwgdGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuQ2xlYXJlZCwgdGhpcy5fbG9nQ2xl
YXJlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7CiAgICAgfQpAQCAtNzQs
NyArNzQsNyBAQCBXZWJJbnNwZWN0b3IuSXNzdWVNYW5hZ2VyID0gY2xhc3MgSXNzdWVNYW5hZ2Vy
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgLy8gUHJpdmF0ZQogCi0gICAgX2Fj
dGl2ZUxvZ0NsZWFyZWQoZXZlbnQpCisgICAgX2xvZ0NsZWFyZWQoZXZlbnQpCiAgICAgewogICAg
ICAgICB0aGlzLmluaXRpYWxpemUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9KYXZhU2NyaXB0TG9nVmlld0NvbnRy
b2xsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9KYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIuanMKaW5kZXggN2M1MmEyMjhhYWJkODNjNTc0
MTkzY2IxMDU5YjhmNGNiODE4MGNkZC4uMmZkY2Y2ZTZiNTMzMDY4NDc2MTM3ZTkxYmVmYjA3MWNl
MjhkYzc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRMb2dWaWV3
Q29udHJvbGxlci5qcwpAQCAtODUsOSArODUsNiBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExv
Z1ZpZXdDb250cm9sbGVyID0gY2xhc3MgSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyIGV4dAog
ICAgICAgICB0aGlzLnN0YXJ0TmV3U2Vzc2lvbih0cnVlKTsKIAogICAgICAgICB0aGlzLnByb21w
dC5mb2N1cygpOwotCi0gICAgICAgIGlmICh0aGlzLmRlbGVnYXRlICYmIHR5cGVvZiB0aGlzLmRl
bGVnYXRlLmRpZENsZWFyTWVzc2FnZXMgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0aGlz
LmRlbGVnYXRlLmRpZENsZWFyTWVzc2FnZXMoKTsKICAgICB9CiAKICAgICBzdGFydE5ld1Nlc3Np
b24oY2xlYXJQcmV2aW91c1Nlc3Npb25zKQpAQCAtMjQ0LDcgKzI0MSw3IEBAIFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0TG9nVmlld0NvbnRyb2xsZXIgPSBjbGFzcyBKYXZhU2NyaXB0TG9nVmlld0Nv
bnRyb2xsZXIgZXh0CiAKICAgICBfaGFuZGxlQ2xlYXJTaG9ydGN1dCgpCiAgICAgewotICAgICAg
ICB0aGlzLmNsZWFyKCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLnJlcXVlc3RD
bGVhck1lc3NhZ2VzKCk7CiAgICAgfQogCiAgICAgX2hhbmRsZUZpbmRTaG9ydGN1dCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9M
b2dNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvTG9nTWFuYWdlci5qcwppbmRleCBjODYyNmU2MWJjYThjNzBkZmJiMWRlZWRkMmQ3MWNm
ZjAzZTI0YjQ2Li44YTEwMTAyNzg1YjRiNTA3ZTBjYjc3NGZlZmY4NWQ3ZDMwN2MzNDY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9M
b2dNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0xvZ01hbmFnZXIuanMKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNSBUb2JpYXMgUmVpc3MgPHRvYmkrd2Via2l0QGJhc2Vjb2RlLmRlPgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICszMCw5IEBAIFdlYkluc3BlY3Rvci5Mb2dN
YW5hZ2VyID0gY2xhc3MgTG9nTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAg
ICB7CiAgICAgICAgIHN1cGVyKCk7CiAKKyAgICAgICAgdGhpcy5fY2xlYXJNZXNzYWdlc1JlcXVl
c3RlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9pc1BhZ2VSZWxvYWQgPSBmYWxzZTsKKwogICAg
ICAgICBXZWJJbnNwZWN0b3IuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRnJh
bWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9tYWluUmVzb3VyY2VEaWRDaGFu
Z2UsIHRoaXMpOwogICAgIH0KIApAQCAtNTMsMTQgKzU3LDI5IEBAIFdlYkluc3BlY3Rvci5Mb2dN
YW5hZ2VyID0gY2xhc3MgTG9nTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAog
ICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmRSZXN1bHRNZXNzYWdlLmNsZWFyTWF4
aW11bVNhdmVkUmVzdWx0SW5kZXgoKTsKIAotICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGNs
ZWFyIG1lc3NhZ2VzIG9uIHJlbG9hZHMuIFdlIGNhbid0IGRldGVybWluZSB0aGF0IGVhc2lseSBy
aWdodCBub3cuCi0gICAgICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMTM3NjcwNzk+IENv
bnNvbGUubWVzc2FnZXNDbGVhcmVkIHNob3VsZCBpbmNsdWRlIGEgcmVhc29uCi0gICAgICAgIHRo
aXMuX3Nob3VsZENsZWFyTWVzc2FnZXMgPSB0cnVlOwotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgaWYgKHRoaXMuX3Nob3VsZENsZWFyTWVzc2FnZXMpCi0gICAg
ICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkxv
Z01hbmFnZXIuRXZlbnQuQWN0aXZlTG9nQ2xlYXJlZCk7Ci0gICAgICAgICAgICBkZWxldGUgdGhp
cy5fc2hvdWxkQ2xlYXJNZXNzYWdlczsKLSAgICAgICAgfS5iaW5kKHRoaXMpLCAwKTsKKyAgICAg
ICAgaWYgKHRoaXMuX2NsZWFyTWVzc2FnZXNSZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIC8vIEZy
b250ZW5kIHJlcXVlc3RlZCAiY2xlYXIgY29uc29sZSIgYW5kIEJhY2tlbmQgc3VjY2Vzc2Z1bGx5
IGNvbXBsZXRlZCB0aGUgcmVxdWVzdC4KKyAgICAgICAgICAgIHRoaXMuX2NsZWFyTWVzc2FnZXNS
ZXF1ZXN0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LkNsZWFyZWQpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgLy8gUmVjZWl2ZWQgYW4gdW5yZXF1ZXN0ZWQgY2xlYXIgY29uc29s
ZSBldmVudC4KKyAgICAgICAgICAgIC8vIFRoaXMgY291bGQgYmUgZm9yIGEgbmF2aWdhdGlvbiBv
ciBvdGhlciByZWFzb25zIChsaWtlIGNvbnNvbGUuY2xlYXIoKSkuCisgICAgICAgICAgICAvLyBJ
ZiB0aGlzIHdhcyBhIHJlbG9hZCwgd2UgbWF5IG5vdCB3YW50IHRvIGRpc3BhdGNoIFdlYkluc3Bl
Y3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LkNsZWFyZWQuCisgICAgICAgICAgICAvLyBUbyBkZXRlY3Qg
aWYgdGhpcyBpcyBhIHJlbG9hZCB3ZSB3YWl0IGEgdHVybiBhbmQgY2hlY2sgaWYgdGhlcmUgd2Fz
IGEgbWFpbiByZXNvdXJjZSBjaGFuZ2UgcmVsb2FkLgorICAgICAgICAgICAgc2V0VGltZW91dCh0
aGlzLl9kZWxheWVkTWVzc2FnZXNDbGVhcmVkLmJpbmQodGhpcyksIDApOworICAgICAgICB9Cisg
ICAgfQorCisgICAgX2RlbGF5ZWRNZXNzYWdlc0NsZWFyZWQoKQorICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuX2lzUGFnZVJlbG9hZCkgeworICAgICAgICAgICAgdGhpcy5faXNQYWdlUmVsb2FkID0g
ZmFsc2U7CisgICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmNsZWFyTG9nT25SZWxvYWQudmFs
dWUpCisgICAgICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuQ2xlYXJlZCk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAvLyBBIGZyYW1lIG5hdmlnYXRlZCwgY29uc29sZS5jbGVhcigpIG9yIGNvbW1hbmQg
bGluZSBjbGVhcigpIGhhcHBlbmVkLgorICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuQ2xlYXJlZCk7CisgICAgICAg
IH0KICAgICB9CiAKICAgICBtZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkKGNvdW50KQpAQCAtNzIs
NiArOTEsOCBAQCBXZWJJbnNwZWN0b3IuTG9nTWFuYWdlciA9IGNsYXNzIExvZ01hbmFnZXIgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICByZXF1ZXN0Q2xlYXJNZXNzYWdlcygpCiAg
ICAgeworICAgICAgICB0aGlzLl9jbGVhck1lc3NhZ2VzUmVxdWVzdGVkID0gdHJ1ZTsKKwogICAg
ICAgICBDb25zb2xlQWdlbnQuY2xlYXJNZXNzYWdlcygpOwogICAgIH0KIApAQCAtODQsMTYgKzEw
NSwxMyBAQCBXZWJJbnNwZWN0b3IuTG9nTWFuYWdlciA9IGNsYXNzIExvZ01hbmFnZXIgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICghZXZlbnQudGFyZ2V0LmlzTWFpbkZy
YW1lKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIG9sZE1haW5SZXNvdXJj
ZSA9IGV2ZW50LmRhdGEub2xkTWFpblJlc291cmNlOwotICAgICAgICB2YXIgbmV3TWFpblJlc291
cmNlID0gZXZlbnQudGFyZ2V0Lm1haW5SZXNvdXJjZTsKLSAgICAgICAgaWYgKG9sZE1haW5SZXNv
dXJjZS51cmwgIT09IG5ld01haW5SZXNvdXJjZS51cmwpCi0gICAgICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5DbGVhcmVk
KTsKLSAgICAgICAgZWxzZQorICAgICAgICBpZiAoZXZlbnQuZGF0YS5vbGRNYWluUmVzb3VyY2Uu
dXJsID09PSBldmVudC50YXJnZXQubWFpblJlc291cmNlLnVybCkgeworICAgICAgICAgICAgdGhp
cy5faXNQYWdlUmVsb2FkID0gdHJ1ZTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LlNlc3Npb25TdGFydGVkKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0aGlzLl9pc1BhZ2VSZWxvYWQgPSBmYWxzZTsK
IAogICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmRSZXN1bHRNZXNzYWdlLmNsZWFy
TWF4aW11bVNhdmVkUmVzdWx0SW5kZXgoKTsKLQotICAgICAgICBkZWxldGUgdGhpcy5fc2hvdWxk
Q2xlYXJNZXNzYWdlczsKICAgICB9CiB9OwogCkBAIC0xMDEsNiArMTE5LDUgQEAgV2ViSW5zcGVj
dG9yLkxvZ01hbmFnZXIuRXZlbnQgPSB7CiAgICAgU2Vzc2lvblN0YXJ0ZWQ6ICJsb2ctbWFuYWdl
ci1zZXNzaW9uLXdhcy1zdGFydGVkIiwKICAgICBDbGVhcmVkOiAibG9nLW1hbmFnZXItY2xlYXJl
ZCIsCiAgICAgTWVzc2FnZUFkZGVkOiAibG9nLW1hbmFnZXItbWVzc2FnZS1hZGRlZCIsCi0gICAg
QWN0aXZlTG9nQ2xlYXJlZDogImxvZy1tYW5hZ2VyLWN1cnJlbnQtbG9nLWNsZWFyZWQiLAogICAg
IFByZXZpb3VzTWVzc2FnZVJlcGVhdENvdW50VXBkYXRlZDogImxvZy1tYW5hZ2VyLXByZXZpb3Vz
LW1lc3NhZ2UtcmVwZWF0LWNvdW50LXVwZGF0ZWQiCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RlZmF1bHREYXNoYm9hcmQuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGVmYXVsdERhc2hib2Fy
ZC5qcwppbmRleCBlOWQ5ZDljNmMxYjU2ZmNmODU1YzEyN2ViY2QwYzYxNDNjNjU3ZjkxLi41ZTJh
ZjIyMDE5MTVjMGYzOTRjNjQ0YzVlZDAzMGQxNTQ1OTdlMTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGVmYXVsdERhc2hib2FyZC5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGVmYXVsdERh
c2hib2FyZC5qcwpAQCAtMzgsNyArMzgsNiBAQCBXZWJJbnNwZWN0b3IuRGVmYXVsdERhc2hib2Fy
ZCA9IGNsYXNzIERlZmF1bHREYXNoYm9hcmQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZQogICAg
ICAgICAvLyBOZWNlc3NhcnkgZXZlbnRzIHJlcXVpcmVkIHRvIHRyYWNrIGNvbnNvbGUgbWVzc2Fn
ZXMuCiAgICAgICAgIHZhciBsb2dNYW5hZ2VyID0gV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXI7CiAg
ICAgICAgIGxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdl
ci5FdmVudC5DbGVhcmVkLCB0aGlzLl9jb25zb2xlV2FzQ2xlYXJlZCwgdGhpcyk7Ci0gICAgICAg
IGxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVu
dC5BY3RpdmVMb2dDbGVhcmVkLCB0aGlzLl9jb25zb2xlV2FzQ2xlYXJlZCwgdGhpcyk7CiAgICAg
ICAgIGxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5F
dmVudC5NZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlQWRkZWQsIHRoaXMpOwogICAg
ICAgICBsb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIu
RXZlbnQuUHJldmlvdXNNZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkLCB0aGlzLl9jb25zb2xlTWVz
c2FnZVdhc1JlcGVhdGVkLCB0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwppbmRleCAwMjdh
M2Y2NTE3ZWIyMzkzMmYyNDIwODgzMDAzM2E2M2NlZThiZWQyLi5iNzIyYWViNzJmOThlODcxMmQ4
NDFmOTg2ZWUxYTBmZWZkZGU3ZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpAQCAtNzEsMTkg
KzcxLDE2IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGZ1bmN0aW9uKHJlcHJlc2Vu
dGVkT2JqZWN0KQogICAgIHRoaXMuX2NsZWFyTG9nTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV2ViSW5z
cGVjdG9yLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJjbGVhci1sb2ciLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkNsZWFyIGxvZyAoJXMgb3IgJXMpIikuZm9ybWF0KHRoaXMuX2xvZ1ZpZXdDb250cm9s
bGVyLm1lc3NhZ2VzQ2xlYXJLZXlib2FyZFNob3J0Y3V0LmRpc3BsYXlOYW1lLCB0aGlzLl9sb2dW
aWV3Q29udHJvbGxlci5tZXNzYWdlc0FsdGVybmF0ZUNsZWFyS2V5Ym9hcmRTaG9ydGN1dC5kaXNw
bGF5TmFtZSksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1UcmFzaC5zdmciLCAxNSwgMTUpOwogICAg
IHRoaXMuX2NsZWFyTG9nTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fY2xlYXJMb2csIHRo
aXMpOwogCi0gICAgdGhpcy5fY2xlYXJMb2dPblJlbG9hZFNldHRpbmcgPSBuZXcgV2ViSW5zcGVj
dG9yLlNldHRpbmcoImNsZWFyLWxvZy1vbi1yZWxvYWQiLCB0cnVlKTsKLQogICAgIHZhciB0b29s
VGlwID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IGNvbnNvbGUgdGFiIik7CiAgICAgdGhp
cy5fc2hvd0NvbnNvbGVUYWJOYXZpZ2F0aW9uSXRlbSA9IG5ldyBXZWJJbnNwZWN0b3IuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0oInNob3ctdGFiIiwgdG9vbFRpcCwgIkltYWdlcy9TcGxpdFRvZ2dsZVVw
LnN2ZyIsIDE2LCAxNik7CiAgICAgdGhpcy5fc2hvd0NvbnNvbGVUYWJOYXZpZ2F0aW9uSXRlbS5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5D
bGlja2VkLCB0aGlzLl9zaG93Q29uc29sZVRhYiwgdGhpcyk7CiAKICAgICB0aGlzLm1lc3NhZ2Vz
RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2hhbmRsZUNvbnRl
eHRNZW51RXZlbnQuYmluZCh0aGlzKSwgZmFsc2UpOwogCi0gICAgV2ViSW5zcGVjdG9yLmxvZ01h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5DbGVh
cmVkLCB0aGlzLl9zZXNzaW9uc0NsZWFyZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5sb2dN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuU2Vz
c2lvblN0YXJ0ZWQsIHRoaXMuX3Nlc3Npb25TdGFydGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0
b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2
ZW50Lk1lc3NhZ2VBZGRlZCwgdGhpcy5fbWVzc2FnZUFkZGVkLCB0aGlzKTsKICAgICBXZWJJbnNw
ZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2Vy
LkV2ZW50LlByZXZpb3VzTWVzc2FnZVJlcGVhdENvdW50VXBkYXRlZCwgdGhpcy5fcHJldmlvdXNN
ZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkLCB0aGlzKTsKLSAgICBXZWJJbnNwZWN0b3IubG9nTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LkFjdGl2
ZUxvZ0NsZWFyZWQsIHRoaXMuX2FjdGl2ZUxvZ0NsZWFyZWQsIHRoaXMpOworICAgIFdlYkluc3Bl
Y3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIu
RXZlbnQuQ2xlYXJlZCwgdGhpcy5fbG9nQ2xlYXJlZCwgdGhpcyk7CiAKICAgICBXZWJJbnNwZWN0
b3IuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRnJhbWUuRXZlbnQuUHJvdmlz
aW9uYWxMb2FkU3RhcnRlZCwgdGhpcy5fcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCwgdGhpcyk7CiB9
OwpAQCAtMTUyLDEzICsxNDksNiBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5tZXNzYWdlc0VsZW1lbnQuY2xhc3NMaXN0LmNv
bnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWFyY2hJblByb2dyZXNzU3R5bGVD
bGFzc05hbWUpOwogICAgIH0sCiAKLSAgICBkaWRDbGVhck1lc3NhZ2VzOiBmdW5jdGlvbigpCi0g
ICAgewotICAgICAgICBpZiAodGhpcy5faWdub3JlRGlkQ2xlYXJNZXNzYWdlcykKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIucmVxdWVzdENsZWFy
TWVzc2FnZXMoKTsKLSAgICB9LAotCiAgICAgZGlkQXBwZW5kQ29uc29sZU1lc3NhZ2VWaWV3OiBm
dW5jdGlvbihtZXNzYWdlVmlldykKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1lc3Nh
Z2VWaWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlVmlldyB8fCBtZXNz
YWdlVmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFZpZXcpOwpAQCAt
MzE4LDE3ICszMDgsOSBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0g
ewogICAgICAgICByZXR1cm4gZGF0YTsKICAgICB9LAogCi0gICAgX3Nlc3Npb25zQ2xlYXJlZDog
ZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9pZ25vcmVEaWRDbGVhck1lc3Nh
Z2VzID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fbG9nVmlld0NvbnRyb2xsZXIuY2xlYXIoKTsKLSAg
ICAgICAgdGhpcy5faWdub3JlRGlkQ2xlYXJNZXNzYWdlcyA9IGZhbHNlOwotICAgIH0sCi0KICAg
ICBfc2Vzc2lvblN0YXJ0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKHRo
aXMuX2NsZWFyTG9nT25SZWxvYWRTZXR0aW5nLnZhbHVlKSAgewotICAgICAgICAgICAgdGhpcy5f
Y2xlYXJMb2dJZ25vcmluZ0NsZWFyTWVzc2FnZXMoKTsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rv
ci5jbGVhckxvZ09uUmVsb2FkLnZhbHVlKSB7CiAgICAgICAgICAgICB0aGlzLl9yZWFwcGVuZFBy
b3Zpc2lvbmFsTWVzc2FnZXMoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
MzY5LDcgKzM1MSw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJD
bGVhciBMb2ciKSwgdGhpcy5fY2xlYXJMb2cuYmluZCh0aGlzKSk7CiAgICAgICAgIGNvbnRleHRN
ZW51LmFwcGVuZFNlcGFyYXRvcigpOwogCi0gICAgICAgIHZhciBjbGVhckxvZ09uUmVsb2FkVUlT
dHJpbmcgPSB0aGlzLl9jbGVhckxvZ09uUmVsb2FkU2V0dGluZy52YWx1ZSA/IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiS2VlcCBMb2cgb24gUmVsb2FkIikgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkNsZWFyIExvZyBvbiBSZWxvYWQiKTsKKyAgICAgICAgdmFyIGNsZWFyTG9nT25SZWxvYWRVSVN0
cmluZyA9IFdlYkluc3BlY3Rvci5jbGVhckxvZ09uUmVsb2FkLnZhbHVlID8gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJLZWVwIExvZyBvbiBSZWxvYWQiKSA6IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
Q2xlYXIgTG9nIG9uIFJlbG9hZCIpOwogCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0o
Y2xlYXJMb2dPblJlbG9hZFVJU3RyaW5nLCB0aGlzLl90b2dnbGVDbGVhckxvZ09uUmVsb2FkU2V0
dGluZy5iaW5kKHRoaXMpKTsKIApAQCAtNjQ5LDE5ICs2MzEsOSBAQCBXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9KTsKICAgICB9LAogCi0gICAgX2Fj
dGl2ZUxvZ0NsZWFyZWQ6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5faWdu
b3JlRGlkQ2xlYXJNZXNzYWdlcyA9IHRydWU7Ci0gICAgICAgIHRoaXMuX2xvZ1ZpZXdDb250cm9s
bGVyLmNsZWFyKCk7Ci0gICAgICAgIHRoaXMuX2lnbm9yZURpZENsZWFyTWVzc2FnZXMgPSBmYWxz
ZTsKLSAgICB9LAotCi0gICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDU0NjY+
IFdlYiBJbnNwZWN0b3I6IEFjdGl2aXR5IFZpZXdlciBkb2VzIG5vdCB1cGRhdGUgb24gIkNsZWFy
IExvZyBvbiByZWxvYWQiCi0gICAgX2NsZWFyTG9nSWdub3JpbmdDbGVhck1lc3NhZ2VzOiBmdW5j
dGlvbigpCisgICAgX2xvZ0NsZWFyZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAg
dGhpcy5faWdub3JlRGlkQ2xlYXJNZXNzYWdlcyA9IHRydWU7CiAgICAgICAgIHRoaXMuX2xvZ1Zp
ZXdDb250cm9sbGVyLmNsZWFyKCk7Ci0gICAgICAgIHRoaXMuX2lnbm9yZURpZENsZWFyTWVzc2Fn
ZXMgPSBmYWxzZTsKICAgICB9LAogCiAgICAgX3Nob3dDb25zb2xlVGFiOiBmdW5jdGlvbigpCkBA
IC02NzEsMTIgKzY0MywxMiBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBl
ID0gewogCiAgICAgX3RvZ2dsZUNsZWFyTG9nT25SZWxvYWRTZXR0aW5nOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICB0aGlzLl9jbGVhckxvZ09uUmVsb2FkU2V0dGluZy52YWx1ZSA9ICF0aGlz
Ll9jbGVhckxvZ09uUmVsb2FkU2V0dGluZy52YWx1ZTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNs
ZWFyTG9nT25SZWxvYWQudmFsdWUgPSAhV2ViSW5zcGVjdG9yLmNsZWFyTG9nT25SZWxvYWQudmFs
dWU7CiAgICAgfSwKIAogICAgIF9jbGVhckxvZzogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
dGhpcy5fbG9nVmlld0NvbnRyb2xsZXIuY2xlYXIoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmxv
Z01hbmFnZXIucmVxdWVzdENsZWFyTWVzc2FnZXMoKTsKICAgICB9LAogCiAgICAgX3Njb3BlQmFy
U2VsZWN0aW9uRGlkQ2hhbmdlOiBmdW5jdGlvbihldmVudCkKQEAgLTk3Niw3ICs5NDgsNyBAQCBX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgIF9jbGVhclByb3Zp
c2lvbmFsU3RhdGU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3N0YXJ0ZWRQcm92
aXNpb25hbExvYWQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcHJvdmlzaW9uYWxNZXNzYWdlcyA9
IFtdOyAgICAgICAgCisgICAgICAgIHRoaXMuX3Byb3Zpc2lvbmFsTWVzc2FnZXMgPSBbXTsKICAg
ICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9PYmplY3RUcmVlVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL09iamVjdFRyZWVWaWV3LmpzCmluZGV4IGY4ZWUxNTMxMzI2MmRmZjcwMGM4
NGIwM2Y4ZjI4YzQzNDE3NjAxOTguLmU2NjlmZjcxYjM0YmY5NGNkZjg3M2FhOGIwMzYyY2MwMTRk
MDNlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL09iamVjdFRyZWVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL09iamVjdFRyZWVWaWV3LmpzCkBAIC0zMzYsNyArMzM2LDYgQEAgV2ViSW5z
cGVjdG9yLk9iamVjdFRyZWVWaWV3ID0gY2xhc3MgT2JqZWN0VHJlZVZpZXcgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAKICAgICAgICAgaWYgKHRoaXMuX2luQ29uc29sZSkgewogICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuTG9nTWFuYWdlci5FdmVudC5DbGVhcmVkLCB0aGlzLl91bnRyYWNrV2Vha0VudHJpZXMsIHRo
aXMpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5BY3RpdmVMb2dDbGVhcmVkLCB0aGlzLl91
bnRyYWNrV2Vha0VudHJpZXMsIHRoaXMpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5TZXNz
aW9uU3RhcnRlZCwgdGhpcy5fdW50cmFja1dlYWtFbnRyaWVzLCB0aGlzKTsKICAgICAgICAgfQog
ICAgIH0KQEAgLTM1NSw3ICszNTQsNiBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0VHJlZVZpZXcgPSBj
bGFzcyBPYmplY3RUcmVlVmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgICAg
ICBpZiAodGhpcy5faW5Db25zb2xlKSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFu
YWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LkNs
ZWFyZWQsIHRoaXMuX3VudHJhY2tXZWFrRW50cmllcywgdGhpcyk7Ci0gICAgICAgICAgICBXZWJJ
bnNwZWN0b3IubG9nTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dN
YW5hZ2VyLkV2ZW50LkFjdGl2ZUxvZ0NsZWFyZWQsIHRoaXMuX3VudHJhY2tXZWFrRW50cmllcywg
dGhpcyk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5yZW1vdmVFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50LlNlc3Npb25TdGFydGVkLCB0aGlz
Ll91bnRyYWNrV2Vha0VudHJpZXMsIHRoaXMpOwogICAgICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>