<?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>126669</bug_id>
          
          <creation_ts>2014-01-08 15:38:47 -0800</creation_ts>
          <short_desc>Web Inspector: cycle clicked breakpoints between enabled, auto-continue, and disabled</short_desc>
          <delta_ts>2014-01-10 15:44:58 -0800</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="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>965666</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-01-08 15:38:47 -0800</bug_when>
    <thetext>(when a breakpoint has actions)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965667</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-08 15:39:02 -0800</bug_when>
    <thetext>&lt;rdar://problem/15777071&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966075</commentid>
    <comment_count>2</comment_count>
      <attachid>220771</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-01-09 14:34:02 -0800</bug_when>
    <thetext>Created attachment 220771
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966100</commentid>
    <comment_count>3</comment_count>
      <attachid>220771</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-09 15:43:42 -0800</bug_when>
    <thetext>Comment on attachment 220771
patch

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

Via IRC discussion I think keeping 2 booleans is better then the 3 modes.

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:55
&gt; +    if (modeOrDisabledFlag === true)
&gt; +        this._mode = WebInspector.Breakpoint.Mode.Disabled;
&gt; +    else
&gt; +        this._mode = modeOrDisabledFlag || WebInspector.Breakpoint.Mode.Enabled;

This constructor is probably the grossest in our frontend. The &quot;modeOrDisabledFlag&quot; gets pretty confusing here. I&apos;d prefer if we handled the boolean / non-boolean cases disjointedly:

    if (typeof modeOrDisabledFlag === &quot;boolean&quot;)
        this._mode = modeOrDisabledFlag ? Disabled : Enabled;
    else
        this._mode = modeOrDisabledFlag || Enabled;

This removes the easy to miss significance of &quot;=== true&quot; and cascading logic if that parameter is false.

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:216
&gt; +        if (this._mode === WebInspector.Breakpoint.Mode.Enabled)
&gt; +            return (this._actions.length &gt; 0) ? WebInspector.Breakpoint.Mode.AutoContinue : WebInspector.Breakpoint.Mode.Disabled;
&gt; +        else if (this._mode === WebInspector.Breakpoint.Mode.AutoContinue)
&gt; +            return WebInspector.Breakpoint.Mode.Disabled;
&gt; +        else if (this._mode === WebInspector.Breakpoint.Mode.Disabled)
&gt; +            return WebInspector.Breakpoint.Mode.Enabled;

Style: We prefer if return; if return; if return; over if return; else if return; else if return;
Style: Unnecessary parenthesis around ternary condition on line 212. We prefer dropping it is most cases.

This could just be a switch statement, with:

    default:
        console.assert(false, &quot;Missing mode handling&quot;);

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:250
&gt; +            contextMenu.appendItem(WebInspector.UIString(&quot;Cancel Auto-Continue&quot;), setBreakpointMode.bind(this, WebInspector.Breakpoint.Mode.Enabled));

I think in the UI String we should spell it out. &quot;Cancel Automatic Continue&quot;

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:253
&gt; +         else if (this.mode === WebInspector.Breakpoint.Mode.Disabled)

Style: Uneven leading indent on line 253.

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:257
&gt; +            contextMenu.appendItem(WebInspector.UIString(&quot;Set to Auto-Continue&quot;), setBreakpointMode.bind(this, this.nextMode));

I think in the UI String we should spell it out. &quot;Set to Automatically Continue&quot;

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:371
&gt; -        this.autoContinue = event.target.checked;
&gt; +        this.mode = event.target.checked ? WebInspector.Breakpoint.Mode.AutoContinue : WebInspector.Breakpoint.Mode.Enabled;
&gt; +        this._popover.update();

This can conflict with the enabled/disabled checkbox.

Scenario:

  1. open an edit popover for a disabled breakpoint
  2. check automatically continue checkbox
    =&gt; the Breakpoint model object has enabled, but the popover still show it as disabled

I don&apos;t think there is a good editing experience here. 2 checkboxes makes more sense then a &lt;select&gt; / radio for 3 states. For this reason, I think we should avoid the 3 mode, and instead keep 2 booleans.

We can still keep tri-state clicks Enabled -&gt; AutoContinue -&gt; Disabled. But only enable that behavior happen if Breakpoint.hasActions().

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:527
&gt; +        delete this._popoverOptionsRowElement;
&gt; +        delete this._popoverOptionsCheckboxElement;

Heh, good catch =).

&gt; Source/WebInspectorUI/UserInterface/TextEditor.css:71
&gt; +.text-editor &gt; .CodeMirror .breakpoint-auto-continue .CodeMirror-linenumber::before {
&gt; +    opacity: 0.6;
&gt; +}

Testing this locally it is very difficult to tell if a breakpoint is disabled or auto-continued. We will need a better UI. Can be done in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966167</commentid>
    <comment_count>4</comment_count>
      <attachid>220797</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-01-09 18:38:25 -0800</bug_when>
    <thetext>Created attachment 220797
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966180</commentid>
    <comment_count>5</comment_count>
      <attachid>220797</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-09 19:46:24 -0800</bug_when>
    <thetext>Comment on attachment 220797
patch

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

r- for breaking toggling a generic breakpoint.

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:223
&gt; +        if (!this.disabled &amp;&amp; this.autoContinue) {
&gt; +            this.disabled = true;
&gt; +            return;
&gt; +        }
&gt; +
&gt; +        if (!this.disabled &amp;&amp; this.actions.length) {
&gt; +            this.autoContinue = true;
&gt; +            return;
&gt; +        }

Nit: The !this.disabled checks are both unnecessary after the first if and bail.

Looks like you&apos;re missing a base case. You have:

  if disabled -&gt; enabled
  if autocontinue -&gt; disabled
  if enabled and actions -&gt; auto continue

But if you&apos;re enabled and don&apos;t have actions you should become disabled!

r- for this.

So this method should end with:

  this.disabled = true;

Scenario to test:

  1. Create breakpoint
  2. Toggle by clicking in gutter
    =&gt; should toggle enabled/disabled

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:365
&gt; +        this._popover.update();

Is this true? Will the popover ever need to change size here?

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:377
&gt;      _popoverToggleAutoContinueCheckboxChanged: function(event)
&gt;      {
&gt;          this.autoContinue = event.target.checked;
&gt; +        this._popover.update();
&gt;      },

Is this true? Will the popover ever need to change size here?

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:395
&gt; +        checkboxElement.checked = !this.disabled;

Nit: I&apos;d prefer we use the member variable internally instead of the getter.

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:446
&gt; +            optionsCheckbox.checked = this.autoContinue;

Nit: I&apos;d prefer we use the member variable internally instead of the getter.

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:505
&gt; +        this._popoverOptionsRowElement.classList.remove(WebInspector.Breakpoint.HiddenStyleClassName);
&gt;          this._popoverActionsInsertBreakpointActionView(newBreakpointActionView, index);

Style: I would flip these two lines to match the order of events up above (InsertBreakpointActionView, remove HiddenStyleClass, popover.update).

&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:517
&gt; +            this._popoverOptionsCheckboxElement.checked = false;

I don&apos;t think that this will trigger an onchange event, so if you expect this to set breakpoint.autoContinue = false, that won&apos;t be happening. I would suggest you be explicit here:

    this.autoContinue = false;
    this._popoverOptionsCheckboxElement.checked = false;

You can test this scenario like so:

  1. Create breakpoint
  2. Edit breakpoint
  3. Add action
  4. Enable Automatic Continue
  5. Remove action
    =&gt; checkbox is set to false, but autoContinue hasn&apos;t changed
  6. Add Action
    =&gt; notice autoContinue checkbox is unchecked
  7. Dismiss popover
  8. Edit breakpoint
    =&gt; I would expect checkbox should be unchecked. With this patch I think it will be checked.

Hmm, I just tested locally and it seem to work as expected, I don&apos;t know why though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966385</commentid>
    <comment_count>6</comment_count>
      <attachid>220797</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-01-10 08:58:30 -0800</bug_when>
    <thetext>Comment on attachment 220797
patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:223
&gt;&gt; +        }
&gt; 
&gt; Nit: The !this.disabled checks are both unnecessary after the first if and bail.
&gt; 
&gt; Looks like you&apos;re missing a base case. You have:
&gt; 
&gt;   if disabled -&gt; enabled
&gt;   if autocontinue -&gt; disabled
&gt;   if enabled and actions -&gt; auto continue
&gt; 
&gt; But if you&apos;re enabled and don&apos;t have actions you should become disabled!
&gt; 
&gt; r- for this.
&gt; 
&gt; So this method should end with:
&gt; 
&gt;   this.disabled = true;
&gt; 
&gt; Scenario to test:
&gt; 
&gt;   1. Create breakpoint
&gt;   2. Toggle by clicking in gutter
&gt;     =&gt; should toggle enabled/disabled

Not sure how I didn&apos;t catch this :|

&gt;&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:377
&gt;&gt;      },
&gt; 
&gt; Is this true? Will the popover ever need to change size here?

I think these are left over from the probes changes, will remove.

&gt;&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:395
&gt;&gt; +        checkboxElement.checked = !this.disabled;
&gt; 
&gt; Nit: I&apos;d prefer we use the member variable internally instead of the getter.

OK

&gt;&gt; Source/WebInspectorUI/UserInterface/Breakpoint.js:517
&gt;&gt; +            this._popoverOptionsCheckboxElement.checked = false;
&gt; 
&gt; I don&apos;t think that this will trigger an onchange event, so if you expect this to set breakpoint.autoContinue = false, that won&apos;t be happening. I would suggest you be explicit here:
&gt; 
&gt;     this.autoContinue = false;
&gt;     this._popoverOptionsCheckboxElement.checked = false;
&gt; 
&gt; You can test this scenario like so:
&gt; 
&gt;   1. Create breakpoint
&gt;   2. Edit breakpoint
&gt;   3. Add action
&gt;   4. Enable Automatic Continue
&gt;   5. Remove action
&gt;     =&gt; checkbox is set to false, but autoContinue hasn&apos;t changed
&gt;   6. Add Action
&gt;     =&gt; notice autoContinue checkbox is unchecked
&gt;   7. Dismiss popover
&gt;   8. Edit breakpoint
&gt;     =&gt; I would expect checkbox should be unchecked. With this patch I think it will be checked.
&gt; 
&gt; Hmm, I just tested locally and it seem to work as expected, I don&apos;t know why though.

Inside removeAction, it toggles autoContinue if no more actions exist. I put this code here because the popover doesn&apos;t actually listen for any events, IIRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966402</commentid>
    <comment_count>7</comment_count>
      <attachid>220853</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-01-10 09:32:39 -0800</bug_when>
    <thetext>Created attachment 220853
v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966417</commentid>
    <comment_count>8</comment_count>
      <attachid>220853</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-10 10:11:39 -0800</bug_when>
    <thetext>Comment on attachment 220853
v3

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

r=me

&gt; Source/WebInspectorUI/ChangeLog:31
&gt; +        (WebInspector.Breakpoint.prototype._popoverToggleEnabledCheckboxChanged):
&gt; +        (WebInspector.Breakpoint.prototype._popoverToggleAutoContinueCheckboxChanged):
&gt; +        Update the popover height since this could cause additional content to become visible.

Nit: Stale

&gt; Source/WebInspectorUI/UserInterface/TextEditor.js:1167
&gt; +            if (this._lineNumberWithMousedDownBreakpoint in this._breakpoints &amp;&amp; this._columnNumberWithMousedDownBreakpoint in this._breakpoints[this._lineNumberWithMousedDownBreakpoint] &amp;&amp; delegateImplementsBreakpointClicked)
&gt; +                this._delegate.textEditorBreakpointClicked(this, this._lineNumberWithMousedDownBreakpoint, this._columnNumberWithMousedDownBreakpoint);
&gt;          }

Do we need to update the TextEditor&apos;s this._breakpoints breakpoint info map which was being done before? Or does that eventually get triggered by breakpoint modification events (I suspect it does, because what if the breakpoint was showing in multiple files)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966437</commentid>
    <comment_count>9</comment_count>
      <attachid>220857</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-01-10 10:44:16 -0800</bug_when>
    <thetext>Created attachment 220857
v3 fix changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966563</commentid>
    <comment_count>10</comment_count>
      <attachid>220857</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-10 13:41:03 -0800</bug_when>
    <thetext>Comment on attachment 220857
v3 fix changelog

Rejecting attachment 220857 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 220857, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
0-ab3c-d52691b4dbfc ...
Currently at 161669 = 446d3e266be63cf09c7ddaf95dbb98ea2523e6cc
r161670 = 19009620d163404d4272ce198eaa8d5c7398af37
r161671 = 2a63fbe2cad2cf56d0f7a9329fc9c23e20c2f9f0
r161672 = 732907db7aa77fbc203f8eb4d4c08d70d5b0a738
r161673 = 8996b5b1ffbddee0dc255c150e842cc6bca22464
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.appspot.com/results/6744813554630656</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966625</commentid>
    <comment_count>11</comment_count>
      <attachid>220898</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-01-10 15:30:51 -0800</bug_when>
    <thetext>Created attachment 220898
v3 retry cq</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966654</commentid>
    <comment_count>12</comment_count>
      <attachid>220898</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-10 15:44:56 -0800</bug_when>
    <thetext>Comment on attachment 220898
v3 retry cq

Clearing flags on attachment: 220898

Committed r161687: &lt;http://trac.webkit.org/changeset/161687&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966655</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-10 15:44:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220771</attachid>
            <date>2014-01-09 14:34:02 -0800</date>
            <delta_ts>2014-01-09 18:38:24 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-126669-20140109143401.patch</filename>
            <type>text/plain</type>
            <size>34190</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA5
M2ViZWI2ODZmZWZhZDcyMGVjM2YyZWJlZTlhMjJlODk0YTI1YzhlLi43NWY4ODJiMDRhYzE3MDFj
YWZlZTM1YWRhNGExZDg4OTVkZjk2ODAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OCBAQAorMjAxNC0wMS0wOSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjeWNsZSBjbGlja2VkIGJyZWFrcG9pbnRzIGJldHdlZW4g
ZW5hYmxlZCwgYXV0by1jb250aW51ZSwgYW5kIGRpc2FibGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY2NjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHb2luZyBpbiBhbmQgb3V0IG9mIGF1dG8tY29u
dGludWUgZm9yIGEgc3BlY2lmaWMgYnJlYWtwb2ludCBpcyB0ZWRpb3VzLiBUaGlzIHBhdGNoCisg
ICAgICAgIGNoYW5nZXMgYnJlYWtwb2ludHMgdG8gaGF2ZSBhICdtb2RlJywgd2hpY2ggaXMgZW5h
YmxlZCwgYXV0by1jb250aW51ZSwgb3IgZGlzYWJsZWQuCisgICAgICAgIFRoaXMgdW5pZmljYXRp
b24gaXMgb25seSBwcmVzZW50IG9uIHRoZSBmcm9udGVuZDsgdGhlIGJhY2tlbmQgY29udGludWVz
IHRvIHVzZQorICAgICAgICBhIHNwZWNpYWwgZmxhZyBmb3IgYXV0by1jb250aW51ZS4KKworICAg
ICAgICBDbGlja2luZyBvbiBicmVha3BvaW50IHdpZGdldHMgY3ljbGVzIGJldHdlZW4gdGhlc2Ug
bW9kZXMsIGFuZCBza2lwcyBhdXRvLWNvbnRpbnVlCisgICAgICAgIGlmIHRoZSBicmVha3BvaW50
IGhhcyBubyBhY3Rpb25zLiBUaGUgYnJlYWtwb2ludCBlZGl0b3IgcG9wdXAgYW5kIGNvbnRleHQg
bWVudQorICAgICAgICB0b29sdGlwcyBoYXZlIGJlZW4gdXBkYXRlZCB0byBzaG93IHNlbnNpYmxl
IG9wdGlvbnMgd2hlbiBicmVha3BvaW50cyBoYXZlIGFjdGlvbnMuCisKKyAgICAgICAgKiBMb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9CcmVha3BvaW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQp
OiBDb25zdHJ1Y3RvciBjYW4gdGFrZSBkaXNhYmxlZCBib29sZWFuIG9yIEJyZWFrcG9pbnQgbW9k
ZS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZS5nZXQgbW9kZSk6
IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLnNldCBt
b2RlKTogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUu
Z2V0IGRpc2FibGVkKTogRm9yd2FyZCB0byBnZXQgbW9kZSgpLgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLmdldCBhdXRvQ29udGludWUpOiBGb3J3YXJkIHRvIGdl
dCBtb2RlKCkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUuZ2V0
IG9wdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLmdl
dCBpbmZvKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZS5nZXQg
bmV4dE1vZGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3Rv
dHlwZS5zZXRCcmVha3BvaW50TW9kZSk6IFJlbmFtZWQgZnJvbSB0b2dnbGVCcmVha3BvaW50Lgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLmFwcGVuZENvbnRleHRN
ZW51SXRlbXMpOiBBZGQgc2Vuc2libGUgaXRlbXMKKyAgICAgICAgZm9yIGF1dG8tY29udGludWUu
CisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZS5jbGVhckFjdGlv
bnMpOiBBZGRlZC4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBl
Ll9wb3BvdmVyVG9nZ2xlRW5hYmxlZENoZWNrYm94Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUuX3BvcG92ZXJUb2dnbGVBdXRvQ29udGludWVDaGVj
a2JveENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBl
Ll9lZGl0QnJlYWtwb2ludFBvcG92ZXJDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUuX3BvcG92ZXJBY3Rpb25zQWRkQWN0aW9uQnV0dG9u
Q2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUuYnJl
YWtwb2ludEFjdGlvblZpZXdBcHBlbmRBY3Rpb25WaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50LnByb3RvdHlwZS5icmVha3BvaW50QWN0aW9uVmlld1JlbW92ZUFjdGlvblZp
ZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLndpbGxEaXNt
aXNzUG9wb3Zlcik6CisKKyAgICAgICAgTWFrZSB0aGUgYnJlYWtwb2ludCBlZGl0b3IgZGlhbG9n
IG9ubHkgc2hvdyBvcHRpb25zIHRoYXQgaGF2ZSBhbiBlZmZlY3QuIEhpZGUKKyAgICAgICAgdGhl
IGF1dG8tY29udGludWUgcm93IHdoZW4gdGhlcmUgYXJlIG5vIGFjdGlvbnMuCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5jc3M6CisgICAgICAgICguaXRl
bS5icmVha3BvaW50IC5zdGF0dXMgPiAuc3RhdHVzLWltYWdlLmF1dG8tY29udGludWUpOgorICAg
ICAgICAoLml0ZW0uYnJlYWtwb2ludCAuc3RhdHVzID4gLnN0YXR1cy1pbWFnZS5kaXNhYmxlZCk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9CcmVha3BvaW50VHJlZUVsZW1lbnQuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQucHJvdG90eXBlLm9uZW50ZXIpOiBDeWNsZSBp
bnN0ZWFkIG9mIHRvZ2dsZS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVs
ZW1lbnQucHJvdG90eXBlLm9uc3BhY2UpOiBDeWNsZSBpbnN0ZWFkIG9mIHRvZ2dsZS4KKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQucHJvdG90eXBlLl91cGRhdGVT
dGF0dXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90
b3R5cGUuX2JyZWFrcG9pbnRMb2NhdGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhdHVzSW1hZ2VFbGVtZW50Q2xp
Y2tlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9EZWJ1Z2dlck1hbmFnZXIuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLnJlbW92ZUJyZWFrcG9pbnQpOiBTZXQgbW9kZSB0
byBkaXNhYmxlZAorICAgICAgICBhbmQgZXhwbGljaXRseSByZW1vdmUgYnJlYWtwb2ludCBhY3Rp
b25zIHRvIGF2b2lkIHJlLWFkZGluZyBicmVha3BvaW50LgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuX2JyZWFrcG9pbnRNb2RlRGlkQ2hhbmdlKTogUmVu
YW1lZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9i
cmVha3BvaW50RWRpdGFibGVQcm9wZXJ0eURpZENoYW5nZS5zZXROZXdCcmVha3BvaW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9icmVha3BvaW50
RWRpdGFibGVQcm9wZXJ0eURpZENoYW5nZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Tb3Vy
Y2VDb2RlVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4
dEVkaXRvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJv
dG90eXBlLmNsb3NlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRv
ci5wcm90b3R5cGUuX2JyZWFrcG9pbnRJbmZvRm9yQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlLnRvZ2dsZUJyZWFrcG9pbnRz
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUu
dGV4dEVkaXRvckd1dHRlckNvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUudGV4dEVkaXRvckJyZWFrcG9pbnRUb2dnbGVkKToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1RleHRFZGl0b3IuY3NzOgorICAgICAgICAoLnRleHQt
ZWRpdG9yID4gLkNvZGVNaXJyb3IgLmJyZWFrcG9pbnQtYXV0by1jb250aW51ZSAuQ29kZU1pcnJv
ci1saW5lbnVtYmVyOjpiZWZvcmUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGV4dEVkaXRv
ci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fc2V0QnJl
YWtwb2ludFN0eWxlc09uTGluZS51cGRhdGVTdHlsZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3IucHJvdG90eXBlLl9zZXRCcmVha3BvaW50U3R5bGVzT25MaW5lKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS51cGRhdGVTdHlsZXMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl9yZW1vdmVCcmVha3BvaW50
RnJvbUxpbmVBbmRDb2x1bW4pOgorCiAyMDE0LTAxLTA3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVHlwbyAiY2xpcGJvYXJQ
cmVmaXhTdHJpbmciCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCBkMTM4ZWNj
MWJiYzY4MjdiOTZiYmY2OTIwYjgzNDExZGViNzI4NmIyLi45YTE4Yzc1MTBiOTYxZDMyOWNjNmVl
YTNmM2RkMTE3NTI5NjQ1NDMzIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDE4Nwp6Y21a
MjhmcUJPeTxfK1p2IU8wQSUzXkAhNjQyfSQ/Mz8mVHQ0N3Y9P0tyIz09JklGUkJLdl5ZKlNmSVF1
NUd3KVkKejVgbSV3Xmh7UHopMVVsU2ZvRjVRTFBldXVEJHBuZXUrY2F5blM1Y3NzM0hNMTQ1Z0RE
SHRLS3d6UiorKzAwJUtECkElSyFpWAoKZGVsdGEgMTkKYmNtZGxuaUZ3VGc8Xytadm9CdHtfRztV
XklZXm53VFNsdEwmCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQnJlYWtwb2ludC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0JyZWFrcG9pbnQuanMKaW5kZXggYTJhMDgxOTNlNTYzMmQwOWJkNGI1NmU1ZGQwZDY0NDU1MjA2
OWFhMC4uZmMxNzZjYzQzODdlZjRmNzA3Yzk2ZWZmMjVmYTRkYjMxYzhiMTNkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2ludC5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50LmpzCkBAIC0y
Myw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQgPSBmdW5jdGlvbihzb3VyY2VDb2RlTG9jYXRpb25Pcklu
Zm8sIGRpc2FibGVkLCBjb25kaXRpb24pCitXZWJJbnNwZWN0b3IuQnJlYWtwb2ludCA9IGZ1bmN0
aW9uKHNvdXJjZUNvZGVMb2NhdGlvbk9ySW5mbywgbW9kZU9yRGlzYWJsZWRGbGFnLCBjb25kaXRp
b24pCiB7CiAgICAgV2ViSW5zcGVjdG9yLk9iamVjdC5jYWxsKHRoaXMpOwogCkBAIC0zNywyMSAr
MzcsMjIgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQgPSBmdW5jdGlvbihzb3VyY2VDb2RlTG9j
YXRpb25PckluZm8sIGRpc2FibGVkLCBjb25kaXRpb24KICAgICAgICAgdmFyIGxpbmVOdW1iZXIg
PSBzb3VyY2VDb2RlTG9jYXRpb25PckluZm8ubGluZU51bWJlciB8fCAwOwogICAgICAgICB2YXIg
Y29sdW1uTnVtYmVyID0gc291cmNlQ29kZUxvY2F0aW9uT3JJbmZvLmNvbHVtbk51bWJlciB8fCAw
OwogICAgICAgICB2YXIgbG9jYXRpb24gPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVMb2Nh
dGlvbihudWxsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwotICAgICAgICB2YXIgYXV0b0Nv
bnRpbnVlID0gc291cmNlQ29kZUxvY2F0aW9uT3JJbmZvLmF1dG9Db250aW51ZSB8fCBmYWxzZTsK
ICAgICAgICAgdmFyIGFjdGlvbnMgPSBzb3VyY2VDb2RlTG9jYXRpb25PckluZm8uYWN0aW9ucyB8
fCBbXTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3Rpb25zLmxlbmd0aDsgKytpKQog
ICAgICAgICAgICAgYWN0aW9uc1tpXSA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludEFjdGlv
bih0aGlzLCBhY3Rpb25zW2ldKTsKLSAgICAgICAgZGlzYWJsZWQgPSBzb3VyY2VDb2RlTG9jYXRp
b25PckluZm8uZGlzYWJsZWQ7CiAgICAgICAgIGNvbmRpdGlvbiA9IHNvdXJjZUNvZGVMb2NhdGlv
bk9ySW5mby5jb25kaXRpb247CisgICAgICAgIG1vZGVPckRpc2FibGVkRmxhZyA9IHNvdXJjZUNv
ZGVMb2NhdGlvbk9ySW5mby5tb2RlOwogICAgIH0gZWxzZQogICAgICAgICBjb25zb2xlLmVycm9y
KCJVbmV4cGVjdGVkIHR5cGUgcGFzc2VkIHRvIFdlYkluc3BlY3Rvci5CcmVha3BvaW50Iiwgc291
cmNlQ29kZUxvY2F0aW9uT3JJbmZvKTsKIAogICAgIHRoaXMuX2lkID0gbnVsbDsKICAgICB0aGlz
Ll91cmwgPSB1cmwgfHwgbnVsbDsKICAgICB0aGlzLl9zY3JpcHRJZGVudGlmaWVyID0gc2NyaXB0
SWRlbnRpZmllciB8fCBudWxsOwotICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQgfHwgZmFs
c2U7CiAgICAgdGhpcy5fY29uZGl0aW9uID0gY29uZGl0aW9uIHx8ICIiOwotICAgIHRoaXMuX2F1
dG9Db250aW51ZSA9IGF1dG9Db250aW51ZSB8fCBmYWxzZTsKKyAgICBpZiAobW9kZU9yRGlzYWJs
ZWRGbGFnID09PSB0cnVlKQorICAgICAgICB0aGlzLl9tb2RlID0gV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnQuTW9kZS5EaXNhYmxlZDsKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX21vZGUgPSBtb2Rl
T3JEaXNhYmxlZEZsYWcgfHwgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuTW9kZS5FbmFibGVkOwog
ICAgIHRoaXMuX2FjdGlvbnMgPSBhY3Rpb25zIHx8IFtdOwogICAgIHRoaXMuX3Jlc29sdmVkID0g
ZmFsc2U7CiAKQEAgLTY2LDYgKzY3LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuUG9wb3Zl
ckNsYXNzTmFtZSA9ICJlZGl0LWJyZWFrcG9pbnQtcG9wb3Zlci1jb250ZW50IjsKIFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50LldpZGVQb3BvdmVyQ2xhc3NOYW1lID0gIndpZGUiOwogV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnQuUG9wb3ZlckNvbmRpdGlvbklucHV0SWQgPSAiZWRpdC1icmVha3BvaW50
LXBvcG92ZXItY29uZGl0aW9uIjsKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LlBvcG92ZXJPcHRp
b25zQXV0b0NvbnRpbnVlSW5wdXRJZCA9ICJlZGl0LWJyZWFrcG9pbnQtcG9wb292ZXItYXV0by1j
b250aW51ZSI7CitXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5IaWRkZW5TdHlsZUNsYXNzTmFtZSA9
ICJoaWRkZW4iOwogCiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5EZWZhdWx0QnJlYWtwb2ludEFj
dGlvblR5cGUgPSBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludEFjdGlvbi5UeXBlLkxvZzsKIApAQCAt
NzQsMTIgKzc2LDE3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LlVSTENvb2tpZUtleSA9ICJi
cmVha3BvaW50LXVybCI7CiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5MaW5lTnVtYmVyQ29va2ll
S2V5ID0gImJyZWFrcG9pbnQtbGluZS1udW1iZXIiOwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQu
Q29sdW1uTnVtYmVyQ29va2llS2V5ID0gImJyZWFrcG9pbnQtY29sdW1uLW51bWJlciI7CiAKK1dl
Ykluc3BlY3Rvci5CcmVha3BvaW50Lk1vZGUgPSB7CisgICAgRW5hYmxlZDogImJyZWFrcG9pbnQt
bW9kZS1lbmFibGVkIiwKKyAgICBBdXRvQ29udGludWU6ICJicmVha3BvaW50LW1vZGUtYXV0by1j
b250aW51ZSIsCisgICAgRGlzYWJsZWQ6ICJicmVha3BvaW50LW1vZGUtZGlzYWJsZWQiCit9Owor
CiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudCA9IHsKLSAgICBEaXNhYmxlZFN0YXRlRGlk
Q2hhbmdlOiAiYnJlYWtwb2ludC1kaXNhYmxlZC1zdGF0ZS1kaWQtY2hhbmdlIiwKICAgICBSZXNv
bHZlZFN0YXRlRGlkQ2hhbmdlOiAiYnJlYWtwb2ludC1yZXNvbHZlZC1zdGF0ZS1kaWQtY2hhbmdl
IiwKKyAgICBNb2RlRGlkQ2hhbmdlOiAiYnJlYWtwb2ludC1tb2RlLWRpZC1jaGFuZ2UiLAogICAg
IENvbmRpdGlvbkRpZENoYW5nZTogImJyZWFrcG9pbnQtY29uZGl0aW9uLWRpZC1jaGFuZ2UiLAog
ICAgIEFjdGlvbnNEaWRDaGFuZ2U6ICJicmVha3BvaW50LWFjdGlvbnMtZGlkLWNoYW5nZSIsCi0g
ICAgQXV0b0NvbnRpbnVlRGlkQ2hhbmdlOiAiYnJlYWtwb2ludC1hdXRvLWNvbnRpbnVlLWRpZC1j
aGFuZ2UiLAogICAgIExvY2F0aW9uRGlkQ2hhbmdlOiAiYnJlYWtwb2ludC1sb2NhdGlvbi1kaWQt
Y2hhbmdlIiwKICAgICBEaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2U6ICJicmVha3BvaW50LWRpc3Bs
YXktbG9jYXRpb24tZGlkLWNoYW5nZSIsCiB9OwpAQCAtMTI5LDE5ICsxMzYsMjYgQEAgV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5SZXNvbHZlZFN0YXRl
RGlkQ2hhbmdlKTsKICAgICB9LAogCi0gICAgZ2V0IGRpc2FibGVkKCkKKyAgICBnZXQgbW9kZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7CisgICAgICAgIHJldHVybiB0
aGlzLl9tb2RlOwogICAgIH0sCiAKLSAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQpCisgICAgc2V0
IG1vZGUobW9kZSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCA9PT0gZGlzYWJs
ZWQpCisgICAgICAgIGlmICh0aGlzLl9tb2RlID09PSBtb2RlKQogICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQgfHwgZmFsc2U7CisgICAgICAg
IGlmICghbW9kZSB8fCAobW9kZSA9PT0gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuTW9kZS5BdXRv
Q29udGludWUgJiYgIXRoaXMuYWN0aW9ucy5sZW5ndGgpKQorICAgICAgICAgICAgbW9kZSA9IFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50Lk1vZGUuRW5hYmxlZDsKIAotICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5EaXNhYmxl
ZFN0YXRlRGlkQ2hhbmdlKTsKKyAgICAgICAgdGhpcy5fbW9kZSA9IG1vZGU7CisgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50
Lk1vZGVEaWRDaGFuZ2UpOworICAgIH0sCisKKyAgICBnZXQgZGlzYWJsZWQoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX21vZGUgPT09IFdlYkluc3BlY3Rvci5CcmVha3BvaW50Lk1vZGUu
RGlzYWJsZWQ7CiAgICAgfSwKIAogICAgIGdldCBjb25kaXRpb24oKQpAQCAtMTYxLDE3ICsxNzUs
NyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAKICAgICBnZXQgYXV0
b0NvbnRpbnVlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9hdXRvQ29udGludWU7Ci0g
ICAgfSwKLQotICAgIHNldCBhdXRvQ29udGludWUoY29udCkKLSAgICB7Ci0gICAgICAgIGlmICh0
aGlzLl9hdXRvQ29udGludWUgPT09IGNvbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgdGhpcy5fYXV0b0NvbnRpbnVlID0gY29udDsKLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5BdXRvQ29udGludWVE
aWRDaGFuZ2UpOworICAgICAgICByZXR1cm4gdGhpcy5fbW9kZSA9PT0gV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnQuTW9kZS5BdXRvQ29udGludWU7CiAgICAgfSwKIAogICAgIGdldCBhY3Rpb25zKCkK
QEAgLTE4Myw4ICsxODcsOSBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7
CiAgICAgewogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgY29uZGl0aW9uOiB0aGlzLl9j
b25kaXRpb24sCi0gICAgICAgICAgICBhY3Rpb25zOiB0aGlzLl9zZXJpYWxpemFibGVBY3Rpb25z
KCksCi0gICAgICAgICAgICBhdXRvQ29udGludWU6IHRoaXMuX2F1dG9Db250aW51ZQorICAgICAg
ICAgICAgLy8gVGhpcyBhdHRyaWJ1dGUgaXMgc3ludGhlc2l6ZWQgdG8gYXZvaWQgYmFja2VuZCBk
ZWJ1Z2dlciBjaGFuZ2VzLgorICAgICAgICAgICAgYXV0b0NvbnRpbnVlOiB0aGlzLm1vZGUgPT09
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50Lk1vZGUuQXV0b0NvbnRpbnVlLAorICAgICAgICAgICAg
YWN0aW9uczogdGhpcy5fc2VyaWFsaXphYmxlQWN0aW9ucygpCiAgICAgICAgIH07CiAgICAgfSwK
IApAQCAtMTk1LDEzICsyMDAsMjIgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgdXJsOiB0aGlzLl91cmwsCiAgICAgICAgICAgICBsaW5lTnVtYmVy
OiB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24ubGluZU51bWJlciwKICAgICAgICAgICAgIGNvbHVt
bk51bWJlcjogdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLmNvbHVtbk51bWJlciwKLSAgICAgICAg
ICAgIGRpc2FibGVkOiB0aGlzLl9kaXNhYmxlZCwKKyAgICAgICAgICAgIG1vZGU6IHRoaXMuX21v
ZGUsCiAgICAgICAgICAgICBjb25kaXRpb246IHRoaXMuX2NvbmRpdGlvbiwKLSAgICAgICAgICAg
IGFjdGlvbnM6IHRoaXMuX3NlcmlhbGl6YWJsZUFjdGlvbnMoKSwKLSAgICAgICAgICAgIGF1dG9D
b250aW51ZTogdGhpcy5fYXV0b0NvbnRpbnVlCisgICAgICAgICAgICBhY3Rpb25zOiB0aGlzLl9z
ZXJpYWxpemFibGVBY3Rpb25zKCkKICAgICAgICAgfTsKICAgICB9LAogCisgICAgZ2V0IG5leHRN
b2RlKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9tb2RlID09PSBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludC5Nb2RlLkVuYWJsZWQpCisgICAgICAgICAgICByZXR1cm4gKHRoaXMuX2FjdGlvbnMu
bGVuZ3RoID4gMCkgPyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5Nb2RlLkF1dG9Db250aW51ZSA6
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50Lk1vZGUuRGlzYWJsZWQ7CisgICAgICAgIGVsc2UgaWYg
KHRoaXMuX21vZGUgPT09IFdlYkluc3BlY3Rvci5CcmVha3BvaW50Lk1vZGUuQXV0b0NvbnRpbnVl
KQorICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5CcmVha3BvaW50Lk1vZGUuRGlzYWJs
ZWQ7CisgICAgICAgIGVsc2UgaWYgKHRoaXMuX21vZGUgPT09IFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50Lk1vZGUuRGlzYWJsZWQpCisgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnQuTW9kZS5FbmFibGVkOworICAgIH0sCisKICAgICBhcHBlbmRDb250ZXh0TWVudUl0ZW1z
OiBmdW5jdGlvbihjb250ZXh0TWVudSwgYnJlYWtwb2ludERpc3BsYXlFbGVtZW50KQogICAgIHsK
ICAgICAgICAgY29uc29sZS5hc3NlcnQoZG9jdW1lbnQuYm9keS5jb250YWlucyhicmVha3BvaW50
RGlzcGxheUVsZW1lbnQpLCAiYnJlYWtwb2ludCBwb3BvdmVyIGRpc3BsYXkgZWxlbWVudCBtdXN0
IGJlIGluIHRoZSBET00iKTsKQEAgLTIxOCw5ICsyMzIsOSBAQCBXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLnJlbW92ZUJyZWFrcG9pbnQodGhpcyk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlv
biB0b2dnbGVCcmVha3BvaW50KCkKKyAgICAgICAgZnVuY3Rpb24gc2V0QnJlYWtwb2ludE1vZGUo
bW9kZSkKICAgICAgICAgewotICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICF0aGlzLmRpc2Fi
bGVkOworICAgICAgICAgICAgdGhpcy5tb2RlID0gbW9kZTsKICAgICAgICAgfQogCiAgICAgICAg
IGZ1bmN0aW9uIHJldmVhbE9yaWdpbmFsU291cmNlQ29kZUxvY2F0aW9uKCkKQEAgLTIzMSwxMCAr
MjQ1LDE2IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
aWYgKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuaXNCcmVha3BvaW50RWRpdGFibGUodGhp
cykpCiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRWRpdCBCcmVha3BvaW504oCmIiksIGVkaXRCcmVha3BvaW50LmJpbmQodGhpcykpOwog
Ci0gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCkKLSAgICAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbmFibGUgQnJlYWtwb2ludCIpLCB0b2dn
bGVCcmVha3BvaW50LmJpbmQodGhpcykpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb250
ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGlzYWJsZSBCcmVha3Bv
aW50IiksIHRvZ2dsZUJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CisgICAgICAgIGlmICh0aGlzLm1v
ZGUgPT09IFdlYkluc3BlY3Rvci5CcmVha3BvaW50Lk1vZGUuQXV0b0NvbnRpbnVlKSB7CisgICAg
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGlz
YWJsZSBCcmVha3BvaW50IiksIHNldEJyZWFrcG9pbnRNb2RlLmJpbmQodGhpcywgV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnQuTW9kZS5EaXNhYmxlZCkpOworICAgICAgICAgICAgY29udGV4dE1lbnUu
YXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhbmNlbCBBdXRvLUNvbnRpbnVlIiks
IHNldEJyZWFrcG9pbnRNb2RlLmJpbmQodGhpcywgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuTW9k
ZS5FbmFibGVkKSk7CisgICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlID09PSBXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludC5Nb2RlLkVuYWJsZWQpCisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBl
bmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGlzYWJsZSBCcmVha3BvaW50IiksIHNldEJy
ZWFrcG9pbnRNb2RlLmJpbmQodGhpcywgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuTW9kZS5EaXNh
YmxlZCkpOworICAgICAgICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludC5Nb2RlLkRpc2FibGVkKQorICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRl
bShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVuYWJsZSBCcmVha3BvaW50IiksIHNldEJyZWFrcG9p
bnRNb2RlLmJpbmQodGhpcywgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuTW9kZS5FbmFibGVkKSk7
CisKKyAgICAgICAgaWYgKHRoaXMubmV4dE1vZGUgPT09IFdlYkluc3BlY3Rvci5CcmVha3BvaW50
Lk1vZGUuQXV0b0NvbnRpbnVlKQorICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNldCB0byBBdXRvLUNvbnRpbnVlIiksIHNldEJyZWFrcG9p
bnRNb2RlLmJpbmQodGhpcywgdGhpcy5uZXh0TW9kZSkpOwogCiAgICAgICAgIGlmIChXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmlzQnJlYWtwb2ludFJlbW92YWJsZSh0aGlzKSkgewogICAg
ICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CkBAIC0zMDIsNiArMzIyLDEy
IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgY29va2ll
W1dlYkluc3BlY3Rvci5CcmVha3BvaW50LkNvbHVtbk51bWJlckNvb2tpZUtleV0gPSB0aGlzLnNv
dXJjZUNvZGVMb2NhdGlvbi5jb2x1bW5OdW1iZXI7CiAgICAgfSwKIAorICAgIGNsZWFyQWN0aW9u
czogZnVuY3Rpb24oYWN0aW9uKQorICAgIHsKKyAgICAgICAgdGhpcy5fYWN0aW9ucyA9IFtdOwor
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludC5FdmVudC5BY3Rpb25zRGlkQ2hhbmdlKTsKKyAgICB9LAorCiAgICAgLy8gUHJvdGVjdGVk
IChDYWxsZWQgYnkgQnJlYWtwb2ludEFjdGlvbikKIAogICAgIGJyZWFrcG9pbnRBY3Rpb25EaWRD
aGFuZ2U6IGZ1bmN0aW9uKGFjdGlvbikKQEAgLTMyNiw3ICszNTIsMTIgQEAgV2ViSW5zcGVjdG9y
LkJyZWFrcG9pbnQucHJvdG90eXBlID0gewogCiAgICAgX3BvcG92ZXJUb2dnbGVFbmFibGVkQ2hl
Y2tib3hDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuZGlzYWJs
ZWQgPSAhZXZlbnQudGFyZ2V0LmNoZWNrZWQ7CisgICAgICAgIGlmICghZXZlbnQudGFyZ2V0LmNo
ZWNrZWQpCisgICAgICAgICAgICB0aGlzLm1vZGUgPSBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5N
b2RlLkRpc2FibGVkOworICAgICAgICBlbHNlIGlmICh0aGlzLl9wb3BvdmVyT3B0aW9uc0NoZWNr
Ym94RWxlbWVudC5jaGVja2VkKQorICAgICAgICAgICAgdGhpcy5tb2RlID0gV2ViSW5zcGVjdG9y
LkJyZWFrcG9pbnQuTW9kZS5BdXRvQ29udGludWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRoaXMubW9kZSA9IFdlYkluc3BlY3Rvci5CcmVha3BvaW50Lk1vZGUuRW5hYmxlZDsKICAgICB9
LAogCiAgICAgX3BvcG92ZXJDb25kaXRpb25JbnB1dENoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQpA
QCAtMzM2LDcgKzM2Nyw4IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsK
IAogICAgIF9wb3BvdmVyVG9nZ2xlQXV0b0NvbnRpbnVlQ2hlY2tib3hDaGFuZ2VkOiBmdW5jdGlv
bihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuYXV0b0NvbnRpbnVlID0gZXZlbnQudGFyZ2V0
LmNoZWNrZWQ7CisgICAgICAgIHRoaXMubW9kZSA9IGV2ZW50LnRhcmdldC5jaGVja2VkID8gV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQuTW9kZS5BdXRvQ29udGludWUgOiBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludC5Nb2RlLkVuYWJsZWQ7CisgICAgICAgIHRoaXMuX3BvcG92ZXIudXBkYXRlKCk7CiAg
ICAgfSwKIAogICAgIF9wb3BvdmVyQ29uZGl0aW9uSW5wdXRLZXlEb3duOiBmdW5jdGlvbihldmVu
dCkKQEAgLTM1NSw3ICszODcsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgdmFyIGNoZWNrYm94RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlucHV0Iik7CiAgICAgICAgIGNoZWNrYm94RWxlbWVudC50eXBlID0gImNoZWNrYm94IjsK
LSAgICAgICAgY2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSAhdGhpcy5fZGlzYWJsZWQ7CisgICAg
ICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gIXRoaXMuZGlzYWJsZWQ7CiAgICAgICAgIGNo
ZWNrYm94RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl9wb3BvdmVyVG9n
Z2xlRW5hYmxlZENoZWNrYm94Q2hhbmdlZC5iaW5kKHRoaXMpKTsKIAogICAgICAgICB2YXIgY2hl
Y2tib3hMYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7CkBAIC0zOTYsMTUg
KzQyOCwxNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICB2YXIgb3B0aW9uc1JvdyA9
IHRhYmxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIikpOworICAgICAg
ICAgICAgdmFyIG9wdGlvbnNSb3cgPSB0aGlzLl9wb3BvdmVyT3B0aW9uc1Jvd0VsZW1lbnQgPSB0
YWJsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpKTsKKyAgICAgICAg
ICAgIGlmICghdGhpcy5fYWN0aW9ucy5sZW5ndGgpCisgICAgICAgICAgICAgICAgb3B0aW9uc1Jv
dy5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkhpZGRlblN0eWxlQ2xhc3NO
YW1lKTsKICAgICAgICAgICAgIHZhciBvcHRpb25zSGVhZGVyID0gb3B0aW9uc1Jvdy5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpKTsKICAgICAgICAgICAgIHZhciBvcHRp
b25zRGF0YSA9IG9wdGlvbnNSb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
dGQiKSk7CiAgICAgICAgICAgICB2YXIgb3B0aW9uc0xhYmVsID0gb3B0aW9uc0hlYWRlci5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpKTsKLSAgICAgICAgICAgIHZh
ciBvcHRpb25zQ2hlY2tib3ggPSBvcHRpb25zRGF0YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbnB1dCIpKTsKKyAgICAgICAgICAgIHZhciBvcHRpb25zQ2hlY2tib3ggPSB0
aGlzLl9wb3BvdmVyT3B0aW9uc0NoZWNrYm94RWxlbWVudCA9IG9wdGlvbnNEYXRhLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOwogICAgICAgICAgICAgdmFyIG9w
dGlvbnNDaGVja2JveExhYmVsID0gb3B0aW9uc0RhdGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibGFiZWwiKSk7CiAgICAgICAgICAgICBvcHRpb25zQ2hlY2tib3guaWQgPSBX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5Qb3BvdmVyT3B0aW9uc0F1dG9Db250aW51ZUlucHV0SWQ7
CiAgICAgICAgICAgICBvcHRpb25zQ2hlY2tib3gudHlwZSA9ICJjaGVja2JveCI7Ci0gICAgICAg
ICAgICBvcHRpb25zQ2hlY2tib3guY2hlY2tlZCA9IHRoaXMuX2F1dG9Db250aW51ZTsKKyAgICAg
ICAgICAgIG9wdGlvbnNDaGVja2JveC5jaGVja2VkID0gdGhpcy5tb2RlID09PSBXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludC5Nb2RlLkF1dG9Db250aW51ZTsKICAgICAgICAgICAgIG9wdGlvbnNDaGVj
a2JveC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl9wb3BvdmVyVG9nZ2xlQXV0b0Nv
bnRpbnVlQ2hlY2tib3hDaGFuZ2VkLmJpbmQodGhpcykpOwogICAgICAgICAgICAgb3B0aW9uc0xh
YmVsLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPcHRpb25zIik7CiAgICAg
ICAgICAgICBvcHRpb25zQ2hlY2tib3hMYWJlbC5zZXRBdHRyaWJ1dGUoImZvciIsIG9wdGlvbnND
aGVja2JveC5pZCk7CkBAIC00MzUsNyArNDY5LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQu
cHJvdG90eXBlID0gewogICAgICAgICB2YXIgbmV3QWN0aW9uID0gdGhpcy5jcmVhdGVBY3Rpb24o
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRGVmYXVsdEJyZWFrcG9pbnRBY3Rpb25UeXBlKTsKICAg
ICAgICAgdmFyIG5ld0JyZWFrcG9pbnRBY3Rpb25WaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50QWN0aW9uVmlldyhuZXdBY3Rpb24sIHRoaXMpOwogICAgICAgICB0aGlzLl9wb3BvdmVy
QWN0aW9uc0luc2VydEJyZWFrcG9pbnRBY3Rpb25WaWV3KG5ld0JyZWFrcG9pbnRBY3Rpb25WaWV3
LCAtMSk7Ci0KKyAgICAgICAgdGhpcy5fcG9wb3Zlck9wdGlvbnNSb3dFbGVtZW50LmNsYXNzTGlz
dC5yZW1vdmUoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuSGlkZGVuU3R5bGVDbGFzc05hbWUpOwog
ICAgICAgICB0aGlzLl9wb3BvdmVyLnVwZGF0ZSgpOwogICAgIH0sCiAKQEAgLTQ2Miw2ICs0OTYs
NyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9wb3BvdmVyT3B0aW9uc1Jvd0VsZW1lbnQuY2xh
c3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5IaWRkZW5TdHlsZUNsYXNzTmFt
ZSk7CiAgICAgICAgIHRoaXMuX3BvcG92ZXJBY3Rpb25zSW5zZXJ0QnJlYWtwb2ludEFjdGlvblZp
ZXcobmV3QnJlYWtwb2ludEFjdGlvblZpZXcsIGluZGV4KTsKIAogICAgICAgICB0aGlzLl9wb3Bv
dmVyLnVwZGF0ZSgpOwpAQCAtNDcxLDggKzUwNiwxMCBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBicmVha3BvaW50QWN0aW9uVmlldy5lbGVt
ZW50LnJlbW92ZSgpOwogCi0gICAgICAgIGlmICghdGhpcy5fYWN0aW9uc0NvbnRhaW5lci5jaGls
ZHJlbi5sZW5ndGgpCisgICAgICAgIGlmICghdGhpcy5fYWN0aW9uc0NvbnRhaW5lci5jaGlsZHJl
bi5sZW5ndGgpIHsKICAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJBY3Rpb25zQ3JlYXRlQWRkQWN0
aW9uQnV0dG9uKCk7CisgICAgICAgICAgICB0aGlzLl9wb3BvdmVyT3B0aW9uc1Jvd0VsZW1lbnQu
Y2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5IaWRkZW5TdHlsZUNsYXNzTmFt
ZSk7CisgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9wb3BvdmVyLnVwZGF0ZSgpOwogICAgIH0s
CkBAIC00ODYsNiArNTIzLDggQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0g
ewogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcG9wb3ZlciA9PT0gcG9wb3Zl
cik7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9wb3BvdmVyQ29udGVudEVsZW1lbnQ7CisgICAgICAg
IGRlbGV0ZSB0aGlzLl9wb3BvdmVyT3B0aW9uc1Jvd0VsZW1lbnQ7CisgICAgICAgIGRlbGV0ZSB0
aGlzLl9wb3BvdmVyT3B0aW9uc0NoZWNrYm94RWxlbWVudDsKICAgICAgICAgZGVsZXRlIHRoaXMu
X2FjdGlvbnNDb250YWluZXI7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9wb3BvdmVyOwogICAgIH0s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3Bv
aW50VHJlZUVsZW1lbnQuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QnJlYWtwb2ludFRyZWVFbGVtZW50LmNzcwppbmRleCBiNTU5MWYyYzRlYTJkY2IzOTI2MWQ0Y2Zk
OWU1ZDI5NWVlNmNkZmUyLi44ZTI4MmU3ZTc1MjYxMmU3NDAxNzZmNTE4YTg5MDI4YTAxZmQ3MzMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3Bv
aW50VHJlZUVsZW1lbnQuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5jc3MKQEAgLTM0LDggKzM0LDEyIEBACiAgICAgY29u
dGVudDogdXJsKEltYWdlcy9CcmVha3BvaW50QnV0dG9uLnN2Zyk7CiB9CiAKKy5pdGVtLmJyZWFr
cG9pbnQgLnN0YXR1cyA+IC5zdGF0dXMtaW1hZ2UuYXV0by1jb250aW51ZSB7CisgICAgb3BhY2l0
eTogMC42OworfQorCiAuaXRlbS5icmVha3BvaW50IC5zdGF0dXMgPiAuc3RhdHVzLWltYWdlLmRp
c2FibGVkIHsKLSAgICBvcGFjaXR5OiAwLjQ1OworICAgIG9wYWNpdHk6IDAuMzU7CiB9CiAKIC5p
dGVtLmJyZWFrcG9pbnQgLnN1YnRpdGxlLmZvcm1hdHRlZC1sb2NhdGlvbiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50VHJlZUVsZW1l
bnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50VHJl
ZUVsZW1lbnQuanMKaW5kZXggYWRlZGNhZDMyMTBjZTc0ZWFlODY0ZDM3ZjA4OGY0N2MyOGMzMTI3
MC4uN2RiODI2ZWVlY2ZhMTAzMGU0ZDNjOTM2NmFkM2U3Y2I0MzdiOTlhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2ludFRyZWVFbGVtZW50
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRU
cmVlRWxlbWVudC5qcwpAQCAtMzYsNyArMzYsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRy
ZWVFbGVtZW50ID0gZnVuY3Rpb24oYnJlYWtwb2ludCwgY2xhc3NOYW1lLCB0aXRsZSkKIAogICAg
IGlmICghdGl0bGUpCiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5fYnJl
YWtwb2ludExvY2F0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKLSAgICB0aGlzLl9icmVha3BvaW50LmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuRGlzYWJsZWRTdGF0
ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKKyAgICB0aGlzLl9icmVha3Bv
aW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuTW9kZURp
ZENoYW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKICAgICB0aGlzLl9icmVha3BvaW50
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuUmVzb2x2ZWRT
dGF0ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKIAogICAgIHRoaXMuX3N0
YXR1c0ltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwpAQCAtNTYs
NiArNTYsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LkdlbmVyaWNMaW5l
SWNvblN0eWxlQ2xhc3NOYW1lID0gImJyZWFrcG9pbnQtZwogV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnRUcmVlRWxlbWVudC5TdHlsZUNsYXNzTmFtZSA9ICJicmVha3BvaW50IjsKIFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50VHJlZUVsZW1lbnQuU3RhdHVzSW1hZ2VFbGVtZW50U3R5bGVDbGFzc05hbWUg
PSAic3RhdHVzLWltYWdlIjsKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuU3Rh
dHVzSW1hZ2VSZXNvbHZlZFN0eWxlQ2xhc3NOYW1lID0gInJlc29sdmVkIjsKK1dlYkluc3BlY3Rv
ci5CcmVha3BvaW50VHJlZUVsZW1lbnQuU3RhdHVzSW1hZ2VBdXRvQ29udGludWVTdHlsZUNsYXNz
TmFtZSA9ICJhdXRvLWNvbnRpbnVlIjsKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1l
bnQuU3RhdHVzSW1hZ2VEaXNhYmxlZFN0eWxlQ2xhc3NOYW1lID0gImRpc2FibGVkIjsKIFdlYklu
c3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuRm9ybWF0dGVkTG9jYXRpb25TdHlsZUNsYXNz
TmFtZSA9ICJmb3JtYXR0ZWQtbG9jYXRpb24iOwogCkBAIC04MCwxMyArODEsMTMgQEAgV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBvbmVudGVy
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9icmVha3BvaW50LmRpc2FibGVkID0g
IXRoaXMuX2JyZWFrcG9pbnQuZGlzYWJsZWQ7CisgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQubW9k
ZSA9IHRoaXMuX2JyZWFrcG9pbnQubmV4dE1vZGU7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0sCiAKICAgICBvbnNwYWNlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9icmVh
a3BvaW50LmRpc2FibGVkID0gIXRoaXMuX2JyZWFrcG9pbnQuZGlzYWJsZWQ7CisgICAgICAgIHRo
aXMuX2JyZWFrcG9pbnQubW9kZSA9IHRoaXMuX2JyZWFrcG9pbnQubmV4dE1vZGU7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0sCiAKQEAgLTEyNCwxMSArMTI1LDE2IEBAIFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgX3VwZGF0ZVN0YXR1
czogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2JyZWFrcG9pbnQuZGlzYWJs
ZWQpCisgICAgICAgIGlmICh0aGlzLl9icmVha3BvaW50Lm1vZGUgPT09IFdlYkluc3BlY3Rvci5C
cmVha3BvaW50Lk1vZGUuRGlzYWJsZWQpCiAgICAgICAgICAgICB0aGlzLl9zdGF0dXNJbWFnZUVs
ZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LlN0
YXR1c0ltYWdlRGlzYWJsZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHRoaXMuX3N0YXR1c0ltYWdlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50VHJlZUVsZW1lbnQuU3RhdHVzSW1hZ2VEaXNhYmxlZFN0eWxlQ2xhc3NOYW1l
KTsKIAorICAgICAgICBpZiAodGhpcy5fYnJlYWtwb2ludC5tb2RlID09PSBXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludC5Nb2RlLkF1dG9Db250aW51ZSkKKyAgICAgICAgICAgIHRoaXMuX3N0YXR1c0lt
YWdlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1l
bnQuU3RhdHVzSW1hZ2VBdXRvQ29udGludWVTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRoaXMuX3N0YXR1c0ltYWdlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuU3RhdHVzSW1hZ2VBdXRvQ29udGludWVT
dHlsZUNsYXNzTmFtZSk7CisKICAgICAgICAgaWYgKHRoaXMuX2JyZWFrcG9pbnQucmVzb2x2ZWQp
CiAgICAgICAgICAgICB0aGlzLl9zdGF0dXNJbWFnZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LlN0YXR1c0ltYWdlUmVzb2x2ZWRTdHlsZUNs
YXNzTmFtZSk7CiAgICAgICAgIGVsc2UKQEAgLTE0Miw3ICsxNDgsNyBAQCBXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gVGhlIEJyZWFr
cG9pbnQgaGFzIGEgbmV3IGRpc3BsYXkgU291cmNlQ29kZS4gVGhlIHNpZGViYXIgd2lsbCByZW1v
dmUgdXMuIFN0b3AgbGlzdGVuaW5nIHRvIHRoZSBicmVha3BvaW50LgogICAgICAgICBpZiAoZXZl
bnQuZGF0YS5vbGREaXNwbGF5U291cmNlQ29kZSA9PT0gdGhpcy5fYnJlYWtwb2ludC5kaXNwbGF5
U291cmNlQ29kZSkgewogICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkxvY2F0aW9uRGlkQ2hhbmdlLCB0aGlz
Ll9icmVha3BvaW50TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMpOwotICAgICAgICAgICAgdGhpcy5f
YnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50
LkRpc2FibGVkU3RhdGVEaWRDaGFuZ2UsIHRoaXMuX3VwZGF0ZVN0YXR1cywgdGhpcyk7CisgICAg
ICAgICAgICB0aGlzLl9icmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnQuRXZlbnQuTW9kZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsK
ICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludC5FdmVudC5SZXNvbHZlZFN0YXRlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVT
dGF0dXMsIHRoaXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xNTgsNyAr
MTY0LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7
CiAKICAgICBfc3RhdHVzSW1hZ2VFbGVtZW50Q2xpY2tlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAg
ewotICAgICAgICB0aGlzLl9icmVha3BvaW50LmRpc2FibGVkID0gIXRoaXMuX2JyZWFrcG9pbnQu
ZGlzYWJsZWQ7CisgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQubW9kZSA9IHRoaXMuX2JyZWFrcG9p
bnQubmV4dE1vZGU7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvRGVidWdnZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvRGVidWdnZXJNYW5hZ2VyLmpzCmluZGV4IDQyZTAxZTI5NGFiNjQw
OGMzM2M1ZDg0OWQzMDEzZWE0ZWQzMDcyY2QuLjVhM2YzZTc4N2I0YmZhYjFiNWU1MzQyZDMyYzkz
YTA1MjI0OTM4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0RlYnVnZ2VyTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9EZWJ1Z2dlck1hbmFnZXIuanMKQEAgLTMwLDkgKzMwLDggQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTWFuYWdlciA9IGZ1bmN0aW9uKCkKICAgICBEZWJ1Z2dlckFnZW50LmVuYWJsZSgp
OwogCiAgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludC5FdmVudC5EaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMuX2Jy
ZWFrcG9pbnREaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZl
bnQuRGlzYWJsZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5fYnJlYWtwb2ludERpc2FibGVkU3RhdGVE
aWRDaGFuZ2UsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuTW9kZURpZENoYW5nZSwgdGhpcy5f
YnJlYWtwb2ludE1vZGVEaWRDaGFuZ2UsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuQ29uZGl0
aW9uRGlkQ2hhbmdlLCB0aGlzLl9icmVha3BvaW50RWRpdGFibGVQcm9wZXJ0eURpZENoYW5nZSwg
dGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5BdXRvQ29udGludWVEaWRDaGFuZ2UsIHRoaXMuX2Jy
ZWFrcG9pbnRFZGl0YWJsZVByb3BlcnR5RGlkQ2hhbmdlLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2
ZW50LkFjdGlvbnNEaWRDaGFuZ2UsIHRoaXMuX2JyZWFrcG9pbnRFZGl0YWJsZVByb3BlcnR5RGlk
Q2hhbmdlLCB0aGlzKTsKIAogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIs
IHRoaXMuX2luc3BlY3RvckNsb3NpbmcuYmluZCh0aGlzKSk7CkBAIC0yNzksNiArMjc4LDEwIEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAg
fQogICAgICAgICB9CiAKKyAgICAgICAgLy8gRmlyc3QgZGlzYWJsZSBpdCwgc28gcmVtb3Zpbmcg
YnJlYWtwb2ludCBhY3Rpb25zIGRvZXNuJ3QgcmUtYWRkIHRoZSBicmVha3BvaW50LgorICAgICAg
ICBicmVha3BvaW50Lm1vZGUgPSBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5Nb2RlLkRpc2FibGVk
OworICAgICAgICBicmVha3BvaW50LmNsZWFyQWN0aW9ucygpOworCiAgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQu
QnJlYWtwb2ludFJlbW92ZWQsIHticmVha3BvaW50OiBicmVha3BvaW50fSk7CiAgICAgfSwKIApA
QCAtNTkwLDcgKzU5Myw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBl
ID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIF9icmVha3BvaW50RGlzYWJsZWRTdGF0ZURp
ZENoYW5nZTogZnVuY3Rpb24oZXZlbnQpCisgICAgX2JyZWFrcG9pbnRNb2RlRGlkQ2hhbmdlOiBm
dW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQudGFy
Z2V0OwogCkBAIC02MDYsMjkgKzYwOSwzMiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2Vy
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAg
IGlmIChicmVha3BvaW50LmRpc2FibGVkKQotICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtw
b2ludChicmVha3BvaW50KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5fc2V0QnJl
YWtwb2ludChicmVha3BvaW50KTsKKyAgICAgICAgLy8gQ2F1c2UgdGhlIGJyZWFrcG9pbnQgdG8g
YmUgcmVtb3ZlZCBhbmQgcG9zc2libHkgcmUtYWRkZWQuCisgICAgICAgIHRoaXMuX2JyZWFrcG9p
bnRFZGl0YWJsZVByb3BlcnR5RGlkQ2hhbmdlKGV2ZW50KTsKICAgICB9LAogCiAgICAgX2JyZWFr
cG9pbnRFZGl0YWJsZVByb3BlcnR5RGlkQ2hhbmdlOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAg
ICAgICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQudGFyZ2V0OwotICAgICAgICBpZiAoYnJlYWtw
b2ludC5kaXNhYmxlZCkKLSAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBjb25zb2xlLmFz
c2VydCh0aGlzLmlzQnJlYWtwb2ludEVkaXRhYmxlKGJyZWFrcG9pbnQpKTsKICAgICAgICAgaWYg
KCF0aGlzLmlzQnJlYWtwb2ludEVkaXRhYmxlKGJyZWFrcG9pbnQpKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIC8vIFJlbW92ZSB0aGUgYnJlYWtwb2ludCB3aXRoIGl0cyBvbGQgaWQu
Ci0gICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgYnJlYWtwb2ludFJl
bW92ZWQuYmluZCh0aGlzKSk7CisgICAgICAgIC8vIElmIHRoZSBicmVha3BvaW50IGV4aXN0cyBp
biB0aGUgYmFja2VuZCwgcmVtb3ZlIGl0LgorICAgICAgICAvLyBGSVhNRTogc2V2ZXJhbCBvdXRz
dGFuZGluZyBtb2RpZmljYXRpb25zIG1heSByYWNlIGFzIHRoZSBmaXJzdAorICAgICAgICAvLyBv
bmUgdHJpZ2dlcnMgcmVtb3ZhbCBvZiB0aGUgYnJlYWtwb2ludC5pZCwgYW5kIHN1YnNlcXVlbnQK
KyAgICAgICAgLy8gbW9kaWZpY2F0aW9ucyB0YWtlIHRoZSBlbHNlIGJyYW5jaCBhbmQgc2V0IHRo
ZSAnbmV3JyBicmVha3BvaW50IGZpcnN0LgorICAgICAgICBpZiAoYnJlYWtwb2ludC5pZCkKKyAg
ICAgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgc2V0TmV3QnJlYWtw
b2ludC5iaW5kKHRoaXMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0TmV3QnJlYWtw
b2ludC5jYWxsKHRoaXMpOwogCi0gICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZW1vdmVkKCkK
KyAgICAgICAgZnVuY3Rpb24gc2V0TmV3QnJlYWtwb2ludCgpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIC8vIEFkZCB0aGUgYnJlYWtwb2ludCB3aXRoIGl0cyBuZXcgY29uZGl0aW9uIGFuZCBnZXQg
YSBuZXcgaWQuCi0gICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50KGJyZWFrcG9pbnQpOwor
ICAgICAgICAgICAgaWYgKCFicmVha3BvaW50LmRpc2FibGVkKQorICAgICAgICAgICAgICAgIHRo
aXMuX3NldEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CiAgICAgICAgIH0KICAgICB9LAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4
dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NvdXJjZUNv
ZGVUZXh0RWRpdG9yLmpzCmluZGV4IGFlYWZkM2Q1ZDg5ZmI0MzQ0NDExNjUwMjg1YzY0NGM1NTQz
Yjc1MzguLjdmODAyYTkxMDc1MmUyNDVlNTM1MjI0ODgzNmRlYzMwMDYzZWExZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NvdXJjZUNvZGVUZXh0RWRp
dG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NvdXJjZUNv
ZGVUZXh0RWRpdG9yLmpzCkBAIC00Miw3ICs0Miw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2Rl
VGV4dEVkaXRvciA9IGZ1bmN0aW9uKHNvdXJjZUNvZGUpCiAgICAgdGhpcy5lbGVtZW50LmNsYXNz
TGlzdC5hZGQoV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRpdG9yLlN0eWxlQ2xhc3NOYW1l
KTsKIAogICAgIGlmICh0aGlzLl9zdXBwb3J0c0RlYnVnZ2luZykgewotICAgICAgICBXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50
LkV2ZW50LkRpc2FibGVkU3RhdGVEaWRDaGFuZ2UsIHRoaXMuX3VwZGF0ZUJyZWFrcG9pbnRTdGF0
dXMsIHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50Lk1vZGVEaWRDaGFuZ2UsIHRoaXMuX3Vw
ZGF0ZUJyZWFrcG9pbnRTdGF0dXMsIHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LlJlc29s
dmVkU3RhdGVEaWRDaGFuZ2UsIHRoaXMuX3VwZGF0ZUJyZWFrcG9pbnRTdGF0dXMsIHRoaXMpOwog
ICAgICAgICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50LkV2ZW50LkxvY2F0aW9uRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVCcmVh
a3BvaW50TG9jYXRpb24sIHRoaXMpOwogCkBAIC0xMTEsNyArMTExLDcgQEAgV2ViSW5zcGVjdG9y
LlNvdXJjZUNvZGVUZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICBjbG9zZTogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3N1cHBvcnRzRGVidWdnaW5nKSB7Ci0gICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50LkV2ZW50LkRpc2FibGVkU3RhdGVEaWRDaGFuZ2UsIHRoaXMuX3VwZGF0
ZUJyZWFrcG9pbnRTdGF0dXMsIHRoaXMpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5N
b2RlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVCcmVha3BvaW50U3RhdHVzLCB0aGlzKTsKICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuUmVzb2x2ZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5fdXBk
YXRlQnJlYWtwb2ludFN0YXR1cywgdGhpcyk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50
LkxvY2F0aW9uRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVCcmVha3BvaW50TG9jYXRpb24sIHRoaXMp
OwogCkBAIC03MTAsNyArNzEwLDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRpdG9y
LnByb3RvdHlwZSA9IHsKIAogICAgIF9icmVha3BvaW50SW5mb0ZvckJyZWFrcG9pbnQ6IGZ1bmN0
aW9uKGJyZWFrcG9pbnQpCiAgICAgewotICAgICAgICByZXR1cm4ge3Jlc29sdmVkOiBicmVha3Bv
aW50LnJlc29sdmVkLCBkaXNhYmxlZDogYnJlYWtwb2ludC5kaXNhYmxlZH07CisgICAgICAgIHJl
dHVybiB7cmVzb2x2ZWQ6IGJyZWFrcG9pbnQucmVzb2x2ZWQsIG1vZGU6IGJyZWFrcG9pbnQubW9k
ZX07CiAgICAgfSwKIAogICAgIGdldCBfc3VwcG9ydHNEZWJ1Z2dpbmcoKQpAQCAtODI2LDcgKzgy
Niw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGZ1bmN0aW9uIHRvZ2dsZUJyZWFrcG9pbnRzKCkKICAgICAgICAgewogICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3BvaW50cy5sZW5ndGg7ICsraSkKLSAgICAgICAg
ICAgICAgICBicmVha3BvaW50c1tpXS5kaXNhYmxlZCA9IHNob3VsZERpc2FibGU7CisgICAgICAg
ICAgICAgICAgYnJlYWtwb2ludHNbaV0ubW9kZSA9IHNob3VsZERpc2FibGUgPyBXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludC5Nb2RlLkRpc2FibGVkIDogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuTW9k
ZS5FbmFibGVkOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHNob3VsZERpc2FibGUpCkBAIC05
MTksNyArOTE5LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRpdG9yLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgaWYgKCFicmVha3BvaW50KQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIGJyZWFrcG9pbnQuZGlzYWJsZWQgPSBkaXNhYmxlZDsKKyAgICAgICAgYnJlYWtwb2lu
dC5tb2RlID0gYnJlYWtwb2ludC5uZXh0TW9kZTsKICAgICB9LAogCiAgICAgdGV4dEVkaXRvclVw
ZGF0ZWRGb3JtYXR0aW5nOiBmdW5jdGlvbih0ZXh0RWRpdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmNzcwppbmRleCBjOWRmYmI0Mzlk
NzIzZjAzY2I5MmQ2OThkYjhkZTM3ZjJmYmRmOTdlLi4xNDVjMTMzNmY0ZjYzZWJhMDY3OGVlYWQ3
OWVjNTFmMTBmMjk5NjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXh0RWRpdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXh0RWRpdG9yLmNzcwpAQCAtNjYsNiArNjYsMTAgQEAKICAgICBib3JkZXItaW1h
Z2Utc291cmNlOiAtd2Via2l0LWltYWdlLXNldCh1cmwoSW1hZ2VzL0JyZWFrcG9pbnQucG5nKSAx
eCwgdXJsKEltYWdlcy9CcmVha3BvaW50QDJ4LnBuZykgMngpOwogfQogCisudGV4dC1lZGl0b3Ig
PiAuQ29kZU1pcnJvciAuYnJlYWtwb2ludC1hdXRvLWNvbnRpbnVlIC5Db2RlTWlycm9yLWxpbmVu
dW1iZXI6OmJlZm9yZSB7CisgICAgb3BhY2l0eTogMC42OworfQorCiAudGV4dC1lZGl0b3IgPiAu
Q29kZU1pcnJvciAuYnJlYWtwb2ludC1kaXNhYmxlZCAuQ29kZU1pcnJvci1saW5lbnVtYmVyOjpi
ZWZvcmUgewogICAgIG9wYWNpdHk6IDAuMzU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5qcwppbmRleCA4YzBhNWE4ZWVlMjA1OTE3MGYy
NzM0YjRhMTkwNTA2ZDY0YTY0YjdlLi5hOTU5OWYxZTA2ZjZkYTgzOTAxN2Q1MTBkMTRlOTBmNDE1
NGRmZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rl
eHRFZGl0b3IuanMKQEAgLTc2LDYgKzc2LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuSGln
aGxpZ2h0ZWRTdHlsZUNsYXNzTmFtZSA9ICJoaWdobGlnaHRlZCI7CiBXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvci5TZWFyY2hSZXN1bHRTdHlsZUNsYXNzTmFtZSA9ICJzZWFyY2gtcmVzdWx0IjsKIFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yLkhhc0JyZWFrcG9pbnRTdHlsZUNsYXNzTmFtZSA9ICJoYXMt
YnJlYWtwb2ludCI7CiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50UmVzb2x2ZWRT
dHlsZUNsYXNzTmFtZSA9ICJicmVha3BvaW50LXJlc29sdmVkIjsKK1dlYkluc3BlY3Rvci5UZXh0
RWRpdG9yLkJyZWFrcG9pbnRBdXRvQ29udGludWVTdHlsZUNsYXNzTmFtZSA9ICJicmVha3BvaW50
LWF1dG8tY29udGludWUiOwogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuQnJlYWtwb2ludERpc2Fi
bGVkU3R5bGVDbGFzc05hbWUgPSAiYnJlYWtwb2ludC1kaXNhYmxlZCI7CiBXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvci5NdWx0aXBsZUJyZWFrcG9pbnRzU3R5bGVDbGFzc05hbWUgPSAibXVsdGlwbGUt
YnJlYWtwb2ludHMiOwogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuRXhlY3V0aW9uTGluZVN0eWxl
Q2xhc3NOYW1lID0gImV4ZWN1dGlvbi1saW5lIjsKQEAgLTkwNiwxMSArOTA3LDE0IEBAIFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgYWxsRGlzYWJs
ZWQgPSB0cnVlOwogICAgICAgICB2YXIgYWxsUmVzb2x2ZWQgPSB0cnVlOworICAgICAgICB2YXIg
YWxsQXV0b0NvbnRpbnVlID0gdHJ1ZTsKICAgICAgICAgdmFyIG11bHRpcGxlID0gT2JqZWN0Lmtl
eXMoY29sdW1uQnJlYWtwb2ludHMpLmxlbmd0aCA+IDE7CiAgICAgICAgIGZvciAodmFyIGNvbHVt
bk51bWJlciBpbiBjb2x1bW5CcmVha3BvaW50cykgewogICAgICAgICAgICAgdmFyIGJyZWFrcG9p
bnRJbmZvID0gY29sdW1uQnJlYWtwb2ludHNbY29sdW1uTnVtYmVyXTsKLSAgICAgICAgICAgIGlm
ICghYnJlYWtwb2ludEluZm8uZGlzYWJsZWQpCisgICAgICAgICAgICBpZiAoYnJlYWtwb2ludElu
Zm8ubW9kZSAhPT0gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuTW9kZS5EaXNhYmxlZCkKICAgICAg
ICAgICAgICAgICBhbGxEaXNhYmxlZCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKGJyZWFrcG9p
bnRJbmZvLm1vZGUgIT09IFdlYkluc3BlY3Rvci5CcmVha3BvaW50Lk1vZGUuQXV0b0NvbnRpbnVl
KQorICAgICAgICAgICAgICAgIGFsbEF1dG9Db250aW51ZSA9IGZhbHNlOwogICAgICAgICAgICAg
aWYgKCFicmVha3BvaW50SW5mby5yZXNvbHZlZCkKICAgICAgICAgICAgICAgICBhbGxSZXNvbHZl
ZCA9IGZhbHNlOwogICAgICAgICB9CkBAIC05MzUsNiArOTM5LDExIEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICB0aGlzLl9jb2RlTWlycm9yLnJlbW92ZUxpbmVDbGFzcyhsaW5lSGFuZGxlLCAid3JhcCIsIFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yLkJyZWFrcG9pbnREaXNhYmxlZFN0eWxlQ2xhc3NOYW1lKTsK
IAorICAgICAgICAgICAgaWYgKGFsbEF1dG9Db250aW51ZSkKKyAgICAgICAgICAgICAgICB0aGlz
Ll9jb2RlTWlycm9yLmFkZExpbmVDbGFzcyhsaW5lSGFuZGxlLCAid3JhcCIsIFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yLkJyZWFrcG9pbnRBdXRvQ29udGludWVTdHlsZUNsYXNzTmFtZSk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZW1vdmVMaW5l
Q2xhc3MobGluZUhhbmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3Bv
aW50QXV0b0NvbnRpbnVlU3R5bGVDbGFzc05hbWUpOworCiAgICAgICAgICAgICBpZiAobXVsdGlw
bGUpCiAgICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5hZGRMaW5lQ2xhc3MobGluZUhh
bmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5NdWx0aXBsZUJyZWFrcG9pbnRz
U3R5bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgZWxzZQpAQCAtOTc1LDYgKzk4NCw3IEBAIFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2Nv
ZGVNaXJyb3IucmVtb3ZlTGluZUNsYXNzKGxpbmVIYW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3IuSGFzQnJlYWtwb2ludFN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgICAgIHRo
aXMuX2NvZGVNaXJyb3IucmVtb3ZlTGluZUNsYXNzKGxpbmVIYW5kbGUsICJ3cmFwIiwgV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3IuQnJlYWtwb2ludFJlc29sdmVkU3R5bGVDbGFzc05hbWUpOwogICAg
ICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZW1vdmVMaW5lQ2xhc3MobGluZUhhbmRsZSwgIndy
YXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50RGlzYWJsZWRTdHlsZUNsYXNz
TmFtZSk7CisgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnJlbW92ZUxpbmVDbGFzcyhsaW5l
SGFuZGxlLCAid3JhcCIsIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkJyZWFrcG9pbnRBdXRvQ29u
dGludWVTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnJlbW92
ZUxpbmVDbGFzcyhsaW5lSGFuZGxlLCAid3JhcCIsIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLk11
bHRpcGxlQnJlYWtwb2ludHNTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220797</attachid>
            <date>2014-01-09 18:38:25 -0800</date>
            <delta_ts>2014-01-10 09:32:37 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-126669-20140109183824.patch</filename>
            <type>text/plain</type>
            <size>25657</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAw
YmNlNDllMTk5NDRlZjU0NTEyMTgwYmFjMWUxY2Q0YjFkNzdhNGI1Li4zZmExZDM3NGEzMGI0ZDkw
YWJkYTExODA2Njc0MzVlYmNhNTdiZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NCBAQAorMjAxNC0wMS0wOSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjeWNsZSBjbGlja2VkIGJyZWFrcG9pbnRzIGJldHdlZW4g
ZW5hYmxlZCwgYXV0by1jb250aW51ZSwgYW5kIGRpc2FibGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY2NjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIHRpbWUtY29uc3VtaW5nIHRvIGNoYW5n
ZSBhIGJyZWFrcG9pbnQncyBhdXRvLWNvbnRpbnVlIHNldHRpbmcgdGhyb3VnaCB0aGUKKyAgICAg
ICAgYnJlYWtwb2ludCBlZGl0b3IgcG9wdXAuIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgdXNlciB0
byB0b2dnbGUgYmV0d2VlbiBlbmFibGVkLAorICAgICAgICBhdXRvLWNvbnRpbnVlLCBhbmQgZGlz
YWJsZWQgYnkgY2xpY2tpbmcgb24gdGhlIGJyZWFrcG9pbnQgd2VkZ2UgaW4gdGhlIHNpZGViYXIK
KyAgICAgICAgdHJlZSBhbmQgaW4gdGhlIHNvdXJjZSB0ZXh0IGVkaXRvciBndXR0ZXIuIFRoZSBh
dXRvLWNvbnRpbnVlIG9wdGlvbiBpcyBvbmx5CisgICAgICAgIGN5Y2xlZCB3aGVuIHRoZSBicmVh
a3BvaW50IGhhcyBhc3NvY2lhdGVkIGFjdGlvbnMuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGJy
ZWFrcG9pbnQgZWRpdG9yIGRpYWxvZyBzbyBpdCBoaWRlcyBpcnJlbGV2YW50IG9wdGlvbnMgd2hl
bgorICAgICAgICBubyBicmVha3BvaW50IGFjdGlvbnMgaGF2ZSBiZWVuIGFkZGVkLgorCisgICAg
ICAgIEF1dG9tYXRpY2FsbHkgdW5zZXQgYXV0by1jb250aW51ZSB3aGVuIHRoZSBsYXN0IGJyZWFr
cG9pbnQgYWN0aW9uIGlzIHJlbW92ZWQuCisKKyAgICAgICAgUmVuYW1lIHRoZSBkZWxlZ2F0ZSB0
ZXh0RWRpdG9yQnJlYWtwb2ludFRvZ2dsZWQgdG8gdGV4dEVkaXRvckJyZWFrcG9pbnRDbGlja2Vk
LCBzaW5jZQorICAgICAgICB0aGUgYmVoYXZpb3Igb2YgdGhlIGNsaWNrIGRlcGVuZHMgb24gYnJl
YWtwb2ludCBzdGF0ZSBub3QgYXZhaWxhYmxlIGluIHRoZSB0ZXh0IGVkaXRvci4KKworICAgICAg
ICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL0JyZWFrcG9pbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludC5wcm90b3R5cGUuY3ljbGVUb05leHRNb2RlKTogQWRkZWQuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUudG9nZ2xlQXV0b0NvbnRpbnVlKTogQWRkZWQu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUuYXBwZW5kQ29udGV4
dE1lbnVJdGVtcyk6IEFkZCBhdXRvLWNvbnRpbnVlIG9wdGlvbnMuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUucmVtb3ZlQWN0aW9uKToKKworICAgICAgICAoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLl9wb3BvdmVyVG9nZ2xlRW5hYmxlZENoZWNr
Ym94Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUu
X3BvcG92ZXJUb2dnbGVBdXRvQ29udGludWVDaGVja2JveENoYW5nZWQpOgorICAgICAgICBVcGRh
dGUgdGhlIHBvcG92ZXIgaGVpZ2h0IHNpbmNlIHRoaXMgY291bGQgY2F1c2UgYWRkaXRpb25hbCBj
b250ZW50IHRvIGJlY29tZSB2aXNpYmxlLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludC5wcm90b3R5cGUuX2VkaXRCcmVha3BvaW50UG9wb3ZlckNvbnRlbnRFbGVtZW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZS5fcG9wb3ZlckFjdGlvbnNB
ZGRBY3Rpb25CdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50
LnByb3RvdHlwZS5icmVha3BvaW50QWN0aW9uVmlld0FwcGVuZEFjdGlvblZpZXcpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLmJyZWFrcG9pbnRBY3Rpb25WaWV3
UmVtb3ZlQWN0aW9uVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90
b3R5cGUud2lsbERpc21pc3NQb3BvdmVyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0JyZWFr
cG9pbnRUcmVlRWxlbWVudC5jc3M6CisgICAgICAgICguaXRlbS5icmVha3BvaW50IC5zdGF0dXMg
PiAuc3RhdHVzLWltYWdlLmF1dG8tY29udGludWUpOgorICAgICAgICAoLml0ZW0uYnJlYWtwb2lu
dCAuc3RhdHVzID4gLnN0YXR1cy1pbWFnZS5kaXNhYmxlZCk6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9CcmVha3BvaW50VHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludFRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJl
ZUVsZW1lbnQucHJvdG90eXBlLm9uZW50ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUub25zcGFjZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZS5fdXBkYXRlU3RhdHVzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQucHJvdG90eXBlLl9icmVha3Bv
aW50TG9jYXRpb25EaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRU
cmVlRWxlbWVudC5wcm90b3R5cGUuX3N0YXR1c0ltYWdlRWxlbWVudENsaWNrZWQpOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvU291cmNlQ29kZVRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUNvZGVUZXh0RWRpdG9yLnByb3RvdHlwZS5jbG9zZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlLl9icmVha3BvaW50SW5mb0ZvckJyZWFr
cG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRpdG9yLnByb3Rv
dHlwZS50ZXh0RWRpdG9yQnJlYWtwb2ludENsaWNrZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVGV4dEVkaXRvci5jc3M6CisgICAgICAgICgudGV4dC1lZGl0b3IgPiAuQ29kZU1pcnJvciAu
YnJlYWtwb2ludC1hdXRvLWNvbnRpbnVlOm5vdCguYnJlYWtwb2ludC1kaXNhYmxlZCkgLkNvZGVN
aXJyb3ItbGluZW51bWJlcjo6YmVmb3JlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1RleHRF
ZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUuX3Nl
dEJyZWFrcG9pbnRTdHlsZXNPbkxpbmUudXBkYXRlU3R5bGVzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fc2V0QnJlYWtwb2ludFN0eWxlc09uTGluZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUudXBkYXRlU3R5bGVzKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fcmVtb3ZlQnJlYWtw
b2ludEZyb21MaW5lQW5kQ29sdW1uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
LnByb3RvdHlwZS5fZG9jdW1lbnRNb3VzZVVwKToKKwogMjAxNC0wMS0wOSAgU2Vva2p1IEt3b24g
IDxzZW9ranVAd2Via2l0Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdW51
c2VkIG92ZXJyaWRpbmcgcHJvdG9jb2xzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
aW5kZXggZDEzOGVjYzFiYmM2ODI3Yjk2YmJmNjkyMGI4MzQxMWRlYjcyODZiMi4uZTU2ODU1ZTMw
MGIxMTY3NzI4ZDZhNzE3MzZmN2M3NzYwNjI2Yjg4OSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApk
ZWx0YSAxOTUKemNtWjI4ZiUoSEU8Xytadj5CJFZLM15AITY0Mn0kPzM/JlR0NDdtKTZLc3U4bDg3
U3JxPG1aOFRjfGg0ejF8XjFBCnpwcnxibkQqQCNhZnBTRmFvfilwektsIVohJipwbENpYm4yS3By
SHoyPmw3eD41dHJwZ3ZTeyohYEokWEN2YjsjTApRNDVnRERIdEtLd3pSKisrMElFUFBKcGNkegoK
ZGVsdGEgMjcKamNtZXdgaUZ3VGc8XytadmxmQF5DUENrJiZ4bWpOXnNkMk9RVnBCQiRxdmlfeAoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9p
bnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50Lmpz
CmluZGV4IGEyYTA4MTkzZTU2MzJkMDliZDRiNTZlNWRkMGQ2NDQ1NTIwNjlhYTAuLjQyMTk2OWE4
ZTc1ZDc5YjYyYzkxODVhNDFlZGU4ZDgwZWQwMjRkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnQuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2ludC5qcwpAQCAtNjYsNiArNjYsNyBAQCBX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5Qb3BvdmVyQ2xhc3NOYW1lID0gImVkaXQtYnJlYWtwb2lu
dC1wb3BvdmVyLWNvbnRlbnQiOwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuV2lkZVBvcG92ZXJD
bGFzc05hbWUgPSAid2lkZSI7CiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5Qb3BvdmVyQ29uZGl0
aW9uSW5wdXRJZCA9ICJlZGl0LWJyZWFrcG9pbnQtcG9wb3Zlci1jb25kaXRpb24iOwogV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQuUG9wb3Zlck9wdGlvbnNBdXRvQ29udGludWVJbnB1dElkID0gImVk
aXQtYnJlYWtwb2ludC1wb3Bvb3Zlci1hdXRvLWNvbnRpbnVlIjsKK1dlYkluc3BlY3Rvci5CcmVh
a3BvaW50LkhpZGRlblN0eWxlQ2xhc3NOYW1lID0gImhpZGRlbiI7CiAKIFdlYkluc3BlY3Rvci5C
cmVha3BvaW50LkRlZmF1bHRCcmVha3BvaW50QWN0aW9uVHlwZSA9IFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50QWN0aW9uLlR5cGUuTG9nOwogCkBAIC0yMDIsNiArMjAzLDI2IEBAIFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgfTsKICAgICB9LAogCisgICAgY3lj
bGVUb05leHRNb2RlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5kaXNhYmxl
ZCkgeworICAgICAgICAgICAgLy8gV2hlbiBjeWNsaW5nLCBjbGVhciBhdXRvLWNvbnRpbnVlIHdo
ZW4gZ29pbmcgZnJvbSBkaXNhYmxlZCB0byBlbmFibGVkLgorICAgICAgICAgICAgdGhpcy5hdXRv
Q29udGludWUgPSBmYWxzZTsKKyAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdGhpcy5kaXNhYmxl
ZCAmJiB0aGlzLmF1dG9Db250aW51ZSkgeworICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRy
dWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXRoaXMu
ZGlzYWJsZWQgJiYgdGhpcy5hY3Rpb25zLmxlbmd0aCkgeworICAgICAgICAgICAgdGhpcy5hdXRv
Q29udGludWUgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfSwK
KwogICAgIGFwcGVuZENvbnRleHRNZW51SXRlbXM6IGZ1bmN0aW9uKGNvbnRleHRNZW51LCBicmVh
a3BvaW50RGlzcGxheUVsZW1lbnQpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChkb2N1
bWVudC5ib2R5LmNvbnRhaW5zKGJyZWFrcG9pbnREaXNwbGF5RWxlbWVudCksICJicmVha3BvaW50
IHBvcG92ZXIgZGlzcGxheSBlbGVtZW50IG11c3QgYmUgaW4gdGhlIERPTSIpOwpAQCAtMjIzLDYg
KzI0NCwxMSBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICB0aGlzLmRpc2FibGVkID0gIXRoaXMuZGlzYWJsZWQ7CiAgICAgICAgIH0KIAorICAgICAg
ICBmdW5jdGlvbiB0b2dnbGVBdXRvQ29udGludWUoKQorICAgICAgICB7CisgICAgICAgICAgICB0
aGlzLmF1dG9Db250aW51ZSA9ICF0aGlzLmF1dG9Db250aW51ZTsKKyAgICAgICAgfQorCiAgICAg
ICAgIGZ1bmN0aW9uIHJldmVhbE9yaWdpbmFsU291cmNlQ29kZUxvY2F0aW9uKCkKICAgICAgICAg
ewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlU2lkZWJhclBhbmVsLnNob3dPcmln
aW5hbE9yRm9ybWF0dGVkU291cmNlQ29kZUxvY2F0aW9uKHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlv
bik7CkBAIC0yMzEsMTAgKzI1NywxNiBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmlzQnJlYWtw
b2ludEVkaXRhYmxlKHRoaXMpKQogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVkaXQgQnJlYWtwb2ludOKApiIpLCBlZGl0QnJlYWtwb2lu
dC5iaW5kKHRoaXMpKTsKIAotICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQpCi0gICAgICAgICAg
ICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW5hYmxlIEJy
ZWFrcG9pbnQiKSwgdG9nZ2xlQnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKLSAgICAgICAgZWxzZQor
ICAgICAgICBpZiAodGhpcy5hdXRvQ29udGludWUgJiYgIXRoaXMuZGlzYWJsZWQpIHsKKyAgICAg
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEaXNh
YmxlIEJyZWFrcG9pbnQiKSwgdG9nZ2xlQnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKyAgICAgICAg
ICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYW5jZWwg
QXV0b21hdGljIENvbnRpbnVlIiksIHRvZ2dsZUF1dG9Db250aW51ZS5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgfSBlbHNlIGlmICghdGhpcy5kaXNhYmxlZCkKICAgICAgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEaXNhYmxlIEJyZWFrcG9pbnQiKSwg
dG9nZ2xlQnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Y29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVuYWJsZSBCcmVh
a3BvaW50IiksIHRvZ2dsZUJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CisKKyAgICAgICAgaWYgKCF0
aGlzLmF1dG9Db250aW51ZSAmJiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmFjdGlvbnMubGVuZ3Ro
KQorICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlNldCB0byBBdXRvbWF0aWNhbGx5IENvbnRpbnVlIiksIHRvZ2dsZUF1dG9Db250aW51ZS5i
aW5kKHRoaXMpKTsKIAogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5p
c0JyZWFrcG9pbnRSZW1vdmFibGUodGhpcykpIHsKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZFNlcGFyYXRvcigpOwpAQCAtMjkyLDYgKzMyNCw5IEBAIFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9hY3Rpb25zLnNwbGljZShpbmRleCwg
MSk7CiAKKyAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25zLmxlbmd0aCkKKyAgICAgICAgICAgIHRo
aXMuYXV0b0NvbnRpbnVlID0gZmFsc2U7CisKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuQWN0aW9uc0RpZENoYW5nZSk7
CiAgICAgfSwKIApAQCAtMzI3LDYgKzM2Miw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnBy
b3RvdHlwZSA9IHsKICAgICBfcG9wb3ZlclRvZ2dsZUVuYWJsZWRDaGVja2JveENoYW5nZWQ6IGZ1
bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICFldmVudC50YXJn
ZXQuY2hlY2tlZDsKKyAgICAgICAgdGhpcy5fcG9wb3Zlci51cGRhdGUoKTsKICAgICB9LAogCiAg
ICAgX3BvcG92ZXJDb25kaXRpb25JbnB1dENoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMzM3
LDYgKzM3Myw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICBf
cG9wb3ZlclRvZ2dsZUF1dG9Db250aW51ZUNoZWNrYm94Q2hhbmdlZDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewogICAgICAgICB0aGlzLmF1dG9Db250aW51ZSA9IGV2ZW50LnRhcmdldC5jaGVja2Vk
OworICAgICAgICB0aGlzLl9wb3BvdmVyLnVwZGF0ZSgpOwogICAgIH0sCiAKICAgICBfcG9wb3Zl
ckNvbmRpdGlvbklucHV0S2V5RG93bjogZnVuY3Rpb24oZXZlbnQpCkBAIC0zNTUsNyArMzkyLDcg
QEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBj
aGVja2JveEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgICAg
ICBjaGVja2JveEVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7Ci0gICAgICAgIGNoZWNrYm94RWxl
bWVudC5jaGVja2VkID0gIXRoaXMuX2Rpc2FibGVkOworICAgICAgICBjaGVja2JveEVsZW1lbnQu
Y2hlY2tlZCA9ICF0aGlzLmRpc2FibGVkOwogICAgICAgICBjaGVja2JveEVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fcG9wb3ZlclRvZ2dsZUVuYWJsZWRDaGVja2JveENo
YW5nZWQuYmluZCh0aGlzKSk7CiAKICAgICAgICAgdmFyIGNoZWNrYm94TGFiZWwgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwpAQCAtMzk2LDE1ICs0MzMsMTcgQEAgV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgdmFyIG9wdGlvbnNSb3cgPSB0YWJsZS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpKTsKKyAgICAgICAgICAgIHZhciBvcHRpb25zUm93
ID0gdGhpcy5fcG9wb3Zlck9wdGlvbnNSb3dFbGVtZW50ID0gdGFibGUuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKSk7CisgICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlv
bnMubGVuZ3RoKQorICAgICAgICAgICAgICAgIG9wdGlvbnNSb3cuY2xhc3NMaXN0LmFkZChXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludC5IaWRkZW5TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB2
YXIgb3B0aW9uc0hlYWRlciA9IG9wdGlvbnNSb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgidGgiKSk7CiAgICAgICAgICAgICB2YXIgb3B0aW9uc0RhdGEgPSBvcHRpb25zUm93
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIikpOwogICAgICAgICAgICAg
dmFyIG9wdGlvbnNMYWJlbCA9IG9wdGlvbnNIZWFkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibGFiZWwiKSk7Ci0gICAgICAgICAgICB2YXIgb3B0aW9uc0NoZWNrYm94ID0g
b3B0aW9uc0RhdGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSk7
CisgICAgICAgICAgICB2YXIgb3B0aW9uc0NoZWNrYm94ID0gdGhpcy5fcG9wb3Zlck9wdGlvbnND
aGVja2JveEVsZW1lbnQgPSBvcHRpb25zRGF0YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbnB1dCIpKTsKICAgICAgICAgICAgIHZhciBvcHRpb25zQ2hlY2tib3hMYWJlbCA9
IG9wdGlvbnNEYXRhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIikp
OwogICAgICAgICAgICAgb3B0aW9uc0NoZWNrYm94LmlkID0gV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnQuUG9wb3Zlck9wdGlvbnNBdXRvQ29udGludWVJbnB1dElkOwogICAgICAgICAgICAgb3B0aW9u
c0NoZWNrYm94LnR5cGUgPSAiY2hlY2tib3giOwotICAgICAgICAgICAgb3B0aW9uc0NoZWNrYm94
LmNoZWNrZWQgPSB0aGlzLl9hdXRvQ29udGludWU7CisgICAgICAgICAgICBvcHRpb25zQ2hlY2ti
b3guY2hlY2tlZCA9IHRoaXMuYXV0b0NvbnRpbnVlOwogICAgICAgICAgICAgb3B0aW9uc0NoZWNr
Ym94LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIHRoaXMuX3BvcG92ZXJUb2dnbGVBdXRvQ29u
dGludWVDaGVja2JveENoYW5nZWQuYmluZCh0aGlzKSk7CiAgICAgICAgICAgICBvcHRpb25zTGFi
ZWwudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk9wdGlvbnMiKTsKICAgICAg
ICAgICAgIG9wdGlvbnNDaGVja2JveExhYmVsLnNldEF0dHJpYnV0ZSgiZm9yIiwgb3B0aW9uc0No
ZWNrYm94LmlkKTsKQEAgLTQzNSw3ICs0NzQsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBuZXdBY3Rpb24gPSB0aGlzLmNyZWF0ZUFjdGlvbihX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5EZWZhdWx0QnJlYWtwb2ludEFjdGlvblR5cGUpOwogICAg
ICAgICB2YXIgbmV3QnJlYWtwb2ludEFjdGlvblZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRBY3Rpb25WaWV3KG5ld0FjdGlvbiwgdGhpcyk7CiAgICAgICAgIHRoaXMuX3BvcG92ZXJB
Y3Rpb25zSW5zZXJ0QnJlYWtwb2ludEFjdGlvblZpZXcobmV3QnJlYWtwb2ludEFjdGlvblZpZXcs
IC0xKTsKLQorICAgICAgICB0aGlzLl9wb3BvdmVyT3B0aW9uc1Jvd0VsZW1lbnQuY2xhc3NMaXN0
LnJlbW92ZShXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5IaWRkZW5TdHlsZUNsYXNzTmFtZSk7CiAg
ICAgICAgIHRoaXMuX3BvcG92ZXIudXBkYXRlKCk7CiAgICAgfSwKIApAQCAtNDYyLDYgKzUwMSw3
IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX3BvcG92ZXJPcHRpb25zUm93RWxlbWVudC5jbGFz
c0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkhpZGRlblN0eWxlQ2xhc3NOYW1l
KTsKICAgICAgICAgdGhpcy5fcG9wb3ZlckFjdGlvbnNJbnNlcnRCcmVha3BvaW50QWN0aW9uVmll
dyhuZXdCcmVha3BvaW50QWN0aW9uVmlldywgaW5kZXgpOwogCiAgICAgICAgIHRoaXMuX3BvcG92
ZXIudXBkYXRlKCk7CkBAIC00NzEsOCArNTExLDExIEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50
LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGJyZWFrcG9pbnRBY3Rpb25WaWV3LmVsZW1l
bnQucmVtb3ZlKCk7CiAKLSAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25zQ29udGFpbmVyLmNoaWxk
cmVuLmxlbmd0aCkKKyAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25zQ29udGFpbmVyLmNoaWxkcmVu
Lmxlbmd0aCkgewogICAgICAgICAgICAgdGhpcy5fcG9wb3ZlckFjdGlvbnNDcmVhdGVBZGRBY3Rp
b25CdXR0b24oKTsKKyAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJPcHRpb25zUm93RWxlbWVudC5j
bGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkhpZGRlblN0eWxlQ2xhc3NOYW1l
KTsKKyAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJPcHRpb25zQ2hlY2tib3hFbGVtZW50LmNoZWNr
ZWQgPSBmYWxzZTsKKyAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3BvcG92ZXIudXBkYXRlKCk7
CiAgICAgfSwKQEAgLTQ4Niw2ICs1MjksOCBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90
b3R5cGUgPSB7CiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9wb3BvdmVyID09
PSBwb3BvdmVyKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3BvcG92ZXJDb250ZW50RWxlbWVudDsK
KyAgICAgICAgZGVsZXRlIHRoaXMuX3BvcG92ZXJPcHRpb25zUm93RWxlbWVudDsKKyAgICAgICAg
ZGVsZXRlIHRoaXMuX3BvcG92ZXJPcHRpb25zQ2hlY2tib3hFbGVtZW50OwogICAgICAgICBkZWxl
dGUgdGhpcy5fYWN0aW9uc0NvbnRhaW5lcjsKICAgICAgICAgZGVsZXRlIHRoaXMuX3BvcG92ZXI7
CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0JyZWFrcG9pbnRUcmVlRWxlbWVudC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9CcmVha3BvaW50VHJlZUVsZW1lbnQuY3NzCmluZGV4IGI1NTkxZjJjNGVhMmRjYjM5
MjYxZDRjZmQ5ZTVkMjk1ZWU2Y2RmZTIuLjhlMjgyZTdlNzUyNjEyZTc0MDE3NmY1MThhODkwMjhh
MDFmZDczMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0JyZWFrcG9pbnRUcmVlRWxlbWVudC5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQnJlYWtwb2ludFRyZWVFbGVtZW50LmNzcwpAQCAtMzQsOCArMzQsMTIgQEAK
ICAgICBjb250ZW50OiB1cmwoSW1hZ2VzL0JyZWFrcG9pbnRCdXR0b24uc3ZnKTsKIH0KIAorLml0
ZW0uYnJlYWtwb2ludCAuc3RhdHVzID4gLnN0YXR1cy1pbWFnZS5hdXRvLWNvbnRpbnVlIHsKKyAg
ICBvcGFjaXR5OiAwLjY7Cit9CisKIC5pdGVtLmJyZWFrcG9pbnQgLnN0YXR1cyA+IC5zdGF0dXMt
aW1hZ2UuZGlzYWJsZWQgewotICAgIG9wYWNpdHk6IDAuNDU7CisgICAgb3BhY2l0eTogMC4zNTsK
IH0KIAogLml0ZW0uYnJlYWtwb2ludCAuc3VidGl0bGUuZm9ybWF0dGVkLWxvY2F0aW9uIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRU
cmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFr
cG9pbnRUcmVlRWxlbWVudC5qcwppbmRleCBhZGVkY2FkMzIxMGNlNzRlYWU4NjRkMzdmMDg4ZjQ3
YzI4YzMxMjcwLi5kYTM5Y2RiZDk4ODZiNmNlZWQ3NWQ4OTdjZGU4ZTNiNDUwN2M3ZTRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50VHJl
ZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJl
YWtwb2ludFRyZWVFbGVtZW50LmpzCkBAIC0zNyw2ICszNyw3IEBAIFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihicmVha3BvaW50LCBjbGFzc05hbWUsIHRpdGxl
KQogICAgIGlmICghdGl0bGUpCiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhp
cy5fYnJlYWtwb2ludExvY2F0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKICAgICB0aGlzLl9icmVha3Bv
aW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuRGlzYWJs
ZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKKyAgICB0aGlzLl9i
cmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQu
QXV0b0NvbnRpbnVlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOwogICAgIHRo
aXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5F
dmVudC5SZXNvbHZlZFN0YXRlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOwog
CiAgICAgdGhpcy5fc3RhdHVzSW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW1nIik7CkBAIC01Niw2ICs1Nyw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1l
bnQuR2VuZXJpY0xpbmVJY29uU3R5bGVDbGFzc05hbWUgPSAiYnJlYWtwb2ludC1nCiBXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LlN0eWxlQ2xhc3NOYW1lID0gImJyZWFrcG9pbnQi
OwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFnZUVsZW1lbnRT
dHlsZUNsYXNzTmFtZSA9ICJzdGF0dXMtaW1hZ2UiOwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRU
cmVlRWxlbWVudC5TdGF0dXNJbWFnZVJlc29sdmVkU3R5bGVDbGFzc05hbWUgPSAicmVzb2x2ZWQi
OworV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFnZUF1dG9Db250
aW51ZVN0eWxlQ2xhc3NOYW1lID0gImF1dG8tY29udGludWUiOwogV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFnZURpc2FibGVkU3R5bGVDbGFzc05hbWUgPSAiZGlz
YWJsZWQiOwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5Gb3JtYXR0ZWRMb2Nh
dGlvblN0eWxlQ2xhc3NOYW1lID0gImZvcm1hdHRlZC1sb2NhdGlvbiI7CiAKQEAgLTgwLDEzICs4
MiwxMyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsK
IAogICAgIG9uZW50ZXI6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9p
bnQuZGlzYWJsZWQgPSAhdGhpcy5fYnJlYWtwb2ludC5kaXNhYmxlZDsKKyAgICAgICAgdGhpcy5f
YnJlYWtwb2ludC5jeWNsZVRvTmV4dE1vZGUoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fSwKIAogICAgIG9uc3BhY2U6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2JyZWFr
cG9pbnQuZGlzYWJsZWQgPSAhdGhpcy5fYnJlYWtwb2ludC5kaXNhYmxlZDsKKyAgICAgICAgdGhp
cy5fYnJlYWtwb2ludC5jeWNsZVRvTmV4dE1vZGUoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfSwKIApAQCAtMTI5LDYgKzEzMSwxMSBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVF
bGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpcy5fc3Rh
dHVzSW1hZ2VFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRU
cmVlRWxlbWVudC5TdGF0dXNJbWFnZURpc2FibGVkU3R5bGVDbGFzc05hbWUpOwogCisgICAgICAg
IGlmICh0aGlzLl9icmVha3BvaW50LmF1dG9Db250aW51ZSkKKyAgICAgICAgICAgIHRoaXMuX3N0
YXR1c0ltYWdlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJl
ZUVsZW1lbnQuU3RhdHVzSW1hZ2VBdXRvQ29udGludWVTdHlsZUNsYXNzTmFtZSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3N0YXR1c0ltYWdlRWxlbWVudC5jbGFzc0xpc3QucmVt
b3ZlKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuU3RhdHVzSW1hZ2VBdXRvQ29u
dGludWVTdHlsZUNsYXNzTmFtZSk7CisKICAgICAgICAgaWYgKHRoaXMuX2JyZWFrcG9pbnQucmVz
b2x2ZWQpCiAgICAgICAgICAgICB0aGlzLl9zdGF0dXNJbWFnZUVsZW1lbnQuY2xhc3NMaXN0LmFk
ZChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LlN0YXR1c0ltYWdlUmVzb2x2ZWRT
dHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGVsc2UKQEAgLTE0Myw2ICsxNTAsNyBAQCBXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKGV2
ZW50LmRhdGEub2xkRGlzcGxheVNvdXJjZUNvZGUgPT09IHRoaXMuX2JyZWFrcG9pbnQuZGlzcGxh
eVNvdXJjZUNvZGUpIHsKICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhp
cy5fYnJlYWtwb2ludExvY2F0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKICAgICAgICAgICAgIHRoaXMu
X2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVu
dC5EaXNhYmxlZFN0YXRlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOworICAg
ICAgICAgICAgdGhpcy5fYnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5C
cmVha3BvaW50LkV2ZW50LkF1dG9Db250aW51ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVz
LCB0aGlzKTsKICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5SZXNvbHZlZFN0YXRlRGlkQ2hhbmdlLCB0aGlz
Ll91cGRhdGVTdGF0dXMsIHRoaXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBA
IC0xNTgsNyArMTY2LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90
b3R5cGUgPSB7CiAKICAgICBfc3RhdHVzSW1hZ2VFbGVtZW50Q2xpY2tlZDogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewotICAgICAgICB0aGlzLl9icmVha3BvaW50LmRpc2FibGVkID0gIXRoaXMuX2Jy
ZWFrcG9pbnQuZGlzYWJsZWQ7CisgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuY3ljbGVUb05leHRN
b2RlKCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvU291cmNlQ29kZVRleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qcwppbmRleCBhZWFmZDNkNWQ4
OWZiNDM0NDQxMTY1MDI4NWM2NDRjNTU0M2I3NTM4Li43Y2IzNTRiZGY1M2EwN2U1YmRkZTY5NDJl
MmZiMGVmZmViYTZjMzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qcwpAQCAtNDMsNiArNDMsNyBA
QCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IgPSBmdW5jdGlvbihzb3VyY2VDb2Rl
KQogCiAgICAgaWYgKHRoaXMuX3N1cHBvcnRzRGVidWdnaW5nKSB7CiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQu
RXZlbnQuRGlzYWJsZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2ludFN0YXR1
cywgdGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuQXV0b0NvbnRpbnVlRGlkQ2hhbmdlLCB0
aGlzLl91cGRhdGVCcmVha3BvaW50U3RhdHVzLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9y
LkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVu
dC5SZXNvbHZlZFN0YXRlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVCcmVha3BvaW50U3RhdHVzLCB0
aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5fdXBk
YXRlQnJlYWtwb2ludExvY2F0aW9uLCB0aGlzKTsKIApAQCAtMTEyLDYgKzExMyw3IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAg
ICBpZiAodGhpcy5fc3VwcG9ydHNEZWJ1Z2dpbmcpIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQu
RXZlbnQuRGlzYWJsZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2ludFN0YXR1
cywgdGhpcyk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5yZW1vdmVFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkF1dG9Db250aW51ZURpZENo
YW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2ludFN0YXR1cywgdGhpcyk7CiAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5C
cmVha3BvaW50LkV2ZW50LlJlc29sdmVkU3RhdGVEaWRDaGFuZ2UsIHRoaXMuX3VwZGF0ZUJyZWFr
cG9pbnRTdGF0dXMsIHRoaXMpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5Mb2NhdGlv
bkRpZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2ludExvY2F0aW9uLCB0aGlzKTsKIApAQCAt
NzEwLDcgKzcxMiw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5
cGUgPSB7CiAKICAgICBfYnJlYWtwb2ludEluZm9Gb3JCcmVha3BvaW50OiBmdW5jdGlvbihicmVh
a3BvaW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHtyZXNvbHZlZDogYnJlYWtwb2ludC5yZXNv
bHZlZCwgZGlzYWJsZWQ6IGJyZWFrcG9pbnQuZGlzYWJsZWR9OworICAgICAgICByZXR1cm4ge3Jl
c29sdmVkOiBicmVha3BvaW50LnJlc29sdmVkLCBkaXNhYmxlZDogYnJlYWtwb2ludC5kaXNhYmxl
ZCwgYXV0b0NvbnRpbnVlOiBicmVha3BvaW50LmF1dG9Db250aW51ZX07CiAgICAgfSwKIAogICAg
IGdldCBfc3VwcG9ydHNEZWJ1Z2dpbmcoKQpAQCAtOTA4LDcgKzkxMCw3IEBAIFdlYkluc3BlY3Rv
ci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLnVw
ZGF0ZUJyZWFrcG9pbnRMaW5lQW5kQ29sdW1uKG5ld0xpbmVJbmZvLmxpbmVOdW1iZXIsIG5ld0xp
bmVJbmZvLmNvbHVtbk51bWJlciwgYWNjdXJhdGVOZXdMaW5lSW5mby5saW5lTnVtYmVyLCBhY2N1
cmF0ZU5ld0xpbmVJbmZvLmNvbHVtbk51bWJlcik7CiAgICAgfSwKIAotICAgIHRleHRFZGl0b3JC
cmVha3BvaW50VG9nZ2xlZDogZnVuY3Rpb24odGV4dEVkaXRvciwgbGluZU51bWJlciwgY29sdW1u
TnVtYmVyLCBkaXNhYmxlZCkKKyAgICB0ZXh0RWRpdG9yQnJlYWtwb2ludENsaWNrZWQ6IGZ1bmN0
aW9uKHRleHRFZGl0b3IsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKICAgICB7CiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3N1cHBvcnRzRGVidWdnaW5nKTsKICAgICAgICAgaWYgKCF0
aGlzLl9zdXBwb3J0c0RlYnVnZ2luZykKQEAgLTkxOSw3ICs5MjEsNyBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIWJyZWFrcG9p
bnQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYnJlYWtwb2ludC5kaXNhYmxlZCA9
IGRpc2FibGVkOworICAgICAgICBicmVha3BvaW50LmN5Y2xlVG9OZXh0TW9kZSgpOwogICAgIH0s
CiAKICAgICB0ZXh0RWRpdG9yVXBkYXRlZEZvcm1hdHRpbmc6IGZ1bmN0aW9uKHRleHRFZGl0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRp
dG9yLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRFZGl0b3Iu
Y3NzCmluZGV4IGM5ZGZiYjQzOWQ3MjNmMDNjYjkyZDY5OGRiOGRlMzdmMmZiZGY5N2UuLmE2NWFl
YTMwNmE1OGNjY2Y4ZTFjYzEyNmJlNDg0ZTUxYWMzZDNhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRFZGl0b3IuY3NzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRFZGl0b3IuY3NzCkBAIC02Niw2ICs2Niwx
MCBAQAogICAgIGJvcmRlci1pbWFnZS1zb3VyY2U6IC13ZWJraXQtaW1hZ2Utc2V0KHVybChJbWFn
ZXMvQnJlYWtwb2ludC5wbmcpIDF4LCB1cmwoSW1hZ2VzL0JyZWFrcG9pbnRAMngucG5nKSAyeCk7
CiB9CiAKKy50ZXh0LWVkaXRvciA+IC5Db2RlTWlycm9yIC5icmVha3BvaW50LWF1dG8tY29udGlu
dWU6bm90KC5icmVha3BvaW50LWRpc2FibGVkKSAuQ29kZU1pcnJvci1saW5lbnVtYmVyOjpiZWZv
cmUgeworICAgIG9wYWNpdHk6IDAuNjsKK30KKwogLnRleHQtZWRpdG9yID4gLkNvZGVNaXJyb3Ig
LmJyZWFrcG9pbnQtZGlzYWJsZWQgLkNvZGVNaXJyb3ItbGluZW51bWJlcjo6YmVmb3JlIHsKICAg
ICBvcGFjaXR5OiAwLjM1OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1RleHRFZGl0b3IuanMKaW5kZXggOGMwYTVhOGVlZTIwNTkxNzBmMjczNGI0YTE5MDUw
NmQ2NGE2NGI3ZS4uMGU5MmViMTA4NDliODg4MzFmOTdlMWY2NTYwYWU4NDZlNGI3MDhkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmpz
CkBAIC03Niw2ICs3Niw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkhpZ2hsaWdodGVkU3R5
bGVDbGFzc05hbWUgPSAiaGlnaGxpZ2h0ZWQiOwogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuU2Vh
cmNoUmVzdWx0U3R5bGVDbGFzc05hbWUgPSAic2VhcmNoLXJlc3VsdCI7CiBXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvci5IYXNCcmVha3BvaW50U3R5bGVDbGFzc05hbWUgPSAiaGFzLWJyZWFrcG9pbnQi
OwogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuQnJlYWtwb2ludFJlc29sdmVkU3R5bGVDbGFzc05h
bWUgPSAiYnJlYWtwb2ludC1yZXNvbHZlZCI7CitXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVh
a3BvaW50QXV0b0NvbnRpbnVlU3R5bGVDbGFzc05hbWUgPSAiYnJlYWtwb2ludC1hdXRvLWNvbnRp
bnVlIjsKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkJyZWFrcG9pbnREaXNhYmxlZFN0eWxlQ2xh
c3NOYW1lID0gImJyZWFrcG9pbnQtZGlzYWJsZWQiOwogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3Iu
TXVsdGlwbGVCcmVha3BvaW50c1N0eWxlQ2xhc3NOYW1lID0gIm11bHRpcGxlLWJyZWFrcG9pbnRz
IjsKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkV4ZWN1dGlvbkxpbmVTdHlsZUNsYXNzTmFtZSA9
ICJleGVjdXRpb24tbGluZSI7CkBAIC05MDYsNiArOTA3LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3IucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBhbGxEaXNhYmxlZCA9IHRydWU7CiAg
ICAgICAgIHZhciBhbGxSZXNvbHZlZCA9IHRydWU7CisgICAgICAgIHZhciBhbGxBdXRvQ29udGlu
dWUgPSB0cnVlOwogICAgICAgICB2YXIgbXVsdGlwbGUgPSBPYmplY3Qua2V5cyhjb2x1bW5CcmVh
a3BvaW50cykubGVuZ3RoID4gMTsKICAgICAgICAgZm9yICh2YXIgY29sdW1uTnVtYmVyIGluIGNv
bHVtbkJyZWFrcG9pbnRzKSB7CiAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludEluZm8gPSBjb2x1
bW5CcmVha3BvaW50c1tjb2x1bW5OdW1iZXJdOwpAQCAtOTEzLDYgKzkxNSw4IEBAIFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBhbGxEaXNhYmxl
ZCA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKCFicmVha3BvaW50SW5mby5yZXNvbHZlZCkKICAg
ICAgICAgICAgICAgICBhbGxSZXNvbHZlZCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKCFicmVh
a3BvaW50SW5mby5hdXRvQ29udGludWUpCisgICAgICAgICAgICAgICAgYWxsQXV0b0NvbnRpbnVl
ID0gZmFsc2U7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiB1cGRhdGVTdHlsZXMoKQpA
QCAtOTM1LDYgKzkzOSwxMSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZW1v
dmVMaW5lQ2xhc3MobGluZUhhbmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5C
cmVha3BvaW50RGlzYWJsZWRTdHlsZUNsYXNzTmFtZSk7CiAKKyAgICAgICAgICAgIGlmIChhbGxB
dXRvQ29udGludWUpCisgICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5hZGRMaW5lQ2xh
c3MobGluZUhhbmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50
QXV0b0NvbnRpbnVlU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRoaXMuX2NvZGVNaXJyb3IucmVtb3ZlTGluZUNsYXNzKGxpbmVIYW5kbGUsICJ3cmFw
IiwgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuQnJlYWtwb2ludEF1dG9Db250aW51ZVN0eWxlQ2xh
c3NOYW1lKTsKKwogICAgICAgICAgICAgaWYgKG11bHRpcGxlKQogICAgICAgICAgICAgICAgIHRo
aXMuX2NvZGVNaXJyb3IuYWRkTGluZUNsYXNzKGxpbmVIYW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3IuTXVsdGlwbGVCcmVha3BvaW50c1N0eWxlQ2xhc3NOYW1lKTsKICAgICAg
ICAgICAgIGVsc2UKQEAgLTk3NSw2ICs5ODQsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnJlbW92ZUxpbmVDbGFz
cyhsaW5lSGFuZGxlLCAid3JhcCIsIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkhhc0JyZWFrcG9p
bnRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnJlbW92ZUxp
bmVDbGFzcyhsaW5lSGFuZGxlLCAid3JhcCIsIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkJyZWFr
cG9pbnRSZXNvbHZlZFN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgICAgIHRoaXMuX2NvZGVNaXJy
b3IucmVtb3ZlTGluZUNsYXNzKGxpbmVIYW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3IuQnJlYWtwb2ludERpc2FibGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgdGhp
cy5fY29kZU1pcnJvci5yZW1vdmVMaW5lQ2xhc3MobGluZUhhbmRsZSwgIndyYXAiLCBXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50QXV0b0NvbnRpbnVlU3R5bGVDbGFzc05hbWUpOwog
ICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZW1vdmVMaW5lQ2xhc3MobGluZUhhbmRsZSwg
IndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5NdWx0aXBsZUJyZWFrcG9pbnRzU3R5bGVD
bGFzc05hbWUpOwogICAgICAgICB9CiAKQEAgLTExMTYsNyArMTEyNiw3IEBAIFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRM
aXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fZG9jdW1lbnRNb3VzZU1vdmVkRXZlbnRMaXN0ZW5l
ciwgdHJ1ZSk7CiAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAi
LCB0aGlzLl9kb2N1bWVudE1vdXNlVXBFdmVudExpc3RlbmVyLCB0cnVlKTsKIAotICAgICAgICBj
b25zdCBkZWxlZ2F0ZUltcGxlbWVudHNCcmVha3BvaW50VG9nZ2xlZCA9IHRoaXMuX2RlbGVnYXRl
ICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS50ZXh0RWRpdG9yQnJlYWtwb2ludFRvZ2dsZWQgPT09
ICJmdW5jdGlvbiI7CisgICAgICAgIGNvbnN0IGRlbGVnYXRlSW1wbGVtZW50c0JyZWFrcG9pbnRD
bGlja2VkID0gdGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLnRleHRFZGl0
b3JCcmVha3BvaW50Q2xpY2tlZCA9PT0gImZ1bmN0aW9uIjsKICAgICAgICAgY29uc3QgZGVsZWdh
dGVJbXBsZW1lbnRzQnJlYWtwb2ludFJlbW92ZWQgPSB0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2Yg
dGhpcy5fZGVsZWdhdGUudGV4dEVkaXRvckJyZWFrcG9pbnRSZW1vdmVkID09PSAiZnVuY3Rpb24i
OwogICAgICAgICBjb25zdCBkZWxlZ2F0ZUltcGxlbWVudHNCcmVha3BvaW50TW92ZWQgPSB0aGlz
Ll9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUudGV4dEVkaXRvckJyZWFrcG9pbnRN
b3ZlZCA9PT0gImZ1bmN0aW9uIjsKIApAQCAtMTE1MiwxMSArMTE2Miw4IEBAIFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIC8vIFRvZ2dsZSB0aGUgZGlz
YWJsZWQgc3RhdGUgb2YgdGhlIGJyZWFrcG9pbnQuCiAgICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50IGluIHRoaXMuX2JyZWFr
cG9pbnRzKTsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NvbHVtbk51bWJlcldp
dGhNb3VzZWREb3duQnJlYWtwb2ludCBpbiB0aGlzLl9icmVha3BvaW50c1t0aGlzLl9saW5lTnVt
YmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50XSk7Ci0gICAgICAgICAgICBpZiAodGhpcy5fbGlu
ZU51bWJlcldpdGhNb3VzZWREb3duQnJlYWtwb2ludCBpbiB0aGlzLl9icmVha3BvaW50cyAmJiB0
aGlzLl9jb2x1bW5OdW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnQgaW4gdGhpcy5fYnJlYWtw
b2ludHNbdGhpcy5fbGluZU51bWJlcldpdGhNb3VzZWREb3duQnJlYWtwb2ludF0gJiYgZGVsZWdh
dGVJbXBsZW1lbnRzQnJlYWtwb2ludFRvZ2dsZWQpIHsKLSAgICAgICAgICAgICAgICB2YXIgZGlz
YWJsZWQgPSB0aGlzLl9jb2RlTWlycm9yLnRvZ2dsZUxpbmVDbGFzcyh0aGlzLl9saW5lTnVtYmVy
V2l0aE1vdXNlZERvd25CcmVha3BvaW50LCAid3JhcCIsIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
LkJyZWFrcG9pbnREaXNhYmxlZFN0eWxlQ2xhc3NOYW1lKTsKLSAgICAgICAgICAgICAgICB0aGlz
Ll9icmVha3BvaW50c1t0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50XVt0
aGlzLl9jb2x1bW5OdW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnRdLmRpc2FibGVkID0gZGlz
YWJsZWQ7Ci0gICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUudGV4dEVkaXRvckJyZWFrcG9p
bnRUb2dnbGVkKHRoaXMsIHRoaXMuX2xpbmVOdW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnQs
IHRoaXMuX2NvbHVtbk51bWJlcldpdGhNb3VzZWREb3duQnJlYWtwb2ludCwgZGlzYWJsZWQpOwot
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRoaXMuX2xpbmVOdW1iZXJXaXRoTW91c2Vk
RG93bkJyZWFrcG9pbnQgaW4gdGhpcy5fYnJlYWtwb2ludHMgJiYgdGhpcy5fY29sdW1uTnVtYmVy
V2l0aE1vdXNlZERvd25CcmVha3BvaW50IGluIHRoaXMuX2JyZWFrcG9pbnRzW3RoaXMuX2xpbmVO
dW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnRdICYmIGRlbGVnYXRlSW1wbGVtZW50c0JyZWFr
cG9pbnRDbGlja2VkKQorICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnRleHRFZGl0b3JC
cmVha3BvaW50Q2xpY2tlZCh0aGlzLCB0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVh
a3BvaW50LCB0aGlzLl9jb2x1bW5OdW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnQpOwogICAg
ICAgICB9CiAKICAgICAgICAgZGVsZXRlIHRoaXMuX2RvY3VtZW50TW91c2VNb3ZlZEV2ZW50TGlz
dGVuZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220853</attachid>
            <date>2014-01-10 09:32:39 -0800</date>
            <delta_ts>2014-01-10 10:44:13 -0800</delta_ts>
            <desc>v3</desc>
            <filename>bug-126669-20140110093240.patch</filename>
            <type>text/plain</type>
            <size>24281</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAw
YmNlNDllMTk5NDRlZjU0NTEyMTgwYmFjMWUxY2Q0YjFkNzdhNGI1Li4zZmExZDM3NGEzMGI0ZDkw
YWJkYTExODA2Njc0MzVlYmNhNTdiZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NCBAQAorMjAxNC0wMS0wOSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjeWNsZSBjbGlja2VkIGJyZWFrcG9pbnRzIGJldHdlZW4g
ZW5hYmxlZCwgYXV0by1jb250aW51ZSwgYW5kIGRpc2FibGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY2NjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIHRpbWUtY29uc3VtaW5nIHRvIGNoYW5n
ZSBhIGJyZWFrcG9pbnQncyBhdXRvLWNvbnRpbnVlIHNldHRpbmcgdGhyb3VnaCB0aGUKKyAgICAg
ICAgYnJlYWtwb2ludCBlZGl0b3IgcG9wdXAuIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgdXNlciB0
byB0b2dnbGUgYmV0d2VlbiBlbmFibGVkLAorICAgICAgICBhdXRvLWNvbnRpbnVlLCBhbmQgZGlz
YWJsZWQgYnkgY2xpY2tpbmcgb24gdGhlIGJyZWFrcG9pbnQgd2VkZ2UgaW4gdGhlIHNpZGViYXIK
KyAgICAgICAgdHJlZSBhbmQgaW4gdGhlIHNvdXJjZSB0ZXh0IGVkaXRvciBndXR0ZXIuIFRoZSBh
dXRvLWNvbnRpbnVlIG9wdGlvbiBpcyBvbmx5CisgICAgICAgIGN5Y2xlZCB3aGVuIHRoZSBicmVh
a3BvaW50IGhhcyBhc3NvY2lhdGVkIGFjdGlvbnMuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGJy
ZWFrcG9pbnQgZWRpdG9yIGRpYWxvZyBzbyBpdCBoaWRlcyBpcnJlbGV2YW50IG9wdGlvbnMgd2hl
bgorICAgICAgICBubyBicmVha3BvaW50IGFjdGlvbnMgaGF2ZSBiZWVuIGFkZGVkLgorCisgICAg
ICAgIEF1dG9tYXRpY2FsbHkgdW5zZXQgYXV0by1jb250aW51ZSB3aGVuIHRoZSBsYXN0IGJyZWFr
cG9pbnQgYWN0aW9uIGlzIHJlbW92ZWQuCisKKyAgICAgICAgUmVuYW1lIHRoZSBkZWxlZ2F0ZSB0
ZXh0RWRpdG9yQnJlYWtwb2ludFRvZ2dsZWQgdG8gdGV4dEVkaXRvckJyZWFrcG9pbnRDbGlja2Vk
LCBzaW5jZQorICAgICAgICB0aGUgYmVoYXZpb3Igb2YgdGhlIGNsaWNrIGRlcGVuZHMgb24gYnJl
YWtwb2ludCBzdGF0ZSBub3QgYXZhaWxhYmxlIGluIHRoZSB0ZXh0IGVkaXRvci4KKworICAgICAg
ICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL0JyZWFrcG9pbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludC5wcm90b3R5cGUuY3ljbGVUb05leHRNb2RlKTogQWRkZWQuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUudG9nZ2xlQXV0b0NvbnRpbnVlKTogQWRkZWQu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUuYXBwZW5kQ29udGV4
dE1lbnVJdGVtcyk6IEFkZCBhdXRvLWNvbnRpbnVlIG9wdGlvbnMuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUucmVtb3ZlQWN0aW9uKToKKworICAgICAgICAoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLl9wb3BvdmVyVG9nZ2xlRW5hYmxlZENoZWNr
Ym94Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUu
X3BvcG92ZXJUb2dnbGVBdXRvQ29udGludWVDaGVja2JveENoYW5nZWQpOgorICAgICAgICBVcGRh
dGUgdGhlIHBvcG92ZXIgaGVpZ2h0IHNpbmNlIHRoaXMgY291bGQgY2F1c2UgYWRkaXRpb25hbCBj
b250ZW50IHRvIGJlY29tZSB2aXNpYmxlLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludC5wcm90b3R5cGUuX2VkaXRCcmVha3BvaW50UG9wb3ZlckNvbnRlbnRFbGVtZW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZS5fcG9wb3ZlckFjdGlvbnNB
ZGRBY3Rpb25CdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50
LnByb3RvdHlwZS5icmVha3BvaW50QWN0aW9uVmlld0FwcGVuZEFjdGlvblZpZXcpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLmJyZWFrcG9pbnRBY3Rpb25WaWV3
UmVtb3ZlQWN0aW9uVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90
b3R5cGUud2lsbERpc21pc3NQb3BvdmVyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0JyZWFr
cG9pbnRUcmVlRWxlbWVudC5jc3M6CisgICAgICAgICguaXRlbS5icmVha3BvaW50IC5zdGF0dXMg
PiAuc3RhdHVzLWltYWdlLmF1dG8tY29udGludWUpOgorICAgICAgICAoLml0ZW0uYnJlYWtwb2lu
dCAuc3RhdHVzID4gLnN0YXR1cy1pbWFnZS5kaXNhYmxlZCk6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9CcmVha3BvaW50VHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludFRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJl
ZUVsZW1lbnQucHJvdG90eXBlLm9uZW50ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUub25zcGFjZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZS5fdXBkYXRlU3RhdHVzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQucHJvdG90eXBlLl9icmVha3Bv
aW50TG9jYXRpb25EaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRU
cmVlRWxlbWVudC5wcm90b3R5cGUuX3N0YXR1c0ltYWdlRWxlbWVudENsaWNrZWQpOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvU291cmNlQ29kZVRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUNvZGVUZXh0RWRpdG9yLnByb3RvdHlwZS5jbG9zZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlLl9icmVha3BvaW50SW5mb0ZvckJyZWFr
cG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRpdG9yLnByb3Rv
dHlwZS50ZXh0RWRpdG9yQnJlYWtwb2ludENsaWNrZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVGV4dEVkaXRvci5jc3M6CisgICAgICAgICgudGV4dC1lZGl0b3IgPiAuQ29kZU1pcnJvciAu
YnJlYWtwb2ludC1hdXRvLWNvbnRpbnVlOm5vdCguYnJlYWtwb2ludC1kaXNhYmxlZCkgLkNvZGVN
aXJyb3ItbGluZW51bWJlcjo6YmVmb3JlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1RleHRF
ZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUuX3Nl
dEJyZWFrcG9pbnRTdHlsZXNPbkxpbmUudXBkYXRlU3R5bGVzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fc2V0QnJlYWtwb2ludFN0eWxlc09uTGluZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUudXBkYXRlU3R5bGVzKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fcmVtb3ZlQnJlYWtw
b2ludEZyb21MaW5lQW5kQ29sdW1uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
LnByb3RvdHlwZS5fZG9jdW1lbnRNb3VzZVVwKToKKwogMjAxNC0wMS0wOSAgU2Vva2p1IEt3b24g
IDxzZW9ranVAd2Via2l0Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdW51
c2VkIG92ZXJyaWRpbmcgcHJvdG9jb2xzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
aW5kZXggZDEzOGVjYzFiYmM2ODI3Yjk2YmJmNjkyMGI4MzQxMWRlYjcyODZiMi4uZTU2ODU1ZTMw
MGIxMTY3NzI4ZDZhNzE3MzZmN2M3NzYwNjI2Yjg4OSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApk
ZWx0YSAxOTUKemNtWjI4ZiUoSEU8Xytadj5CJFZLM15AITY0Mn0kPzM/JlR0NDdtKTZLc3U4bDg3
U3JxPG1aOFRjfGg0ejF8XjFBCnpwcnxibkQqQCNhZnBTRmFvfilwektsIVohJipwbENpYm4yS3By
SHoyPmw3eD41dHJwZ3ZTeyohYEokWEN2YjsjTApRNDVnRERIdEtLd3pSKisrMElFUFBKcGNkegoK
ZGVsdGEgMjcKamNtZXdgaUZ3VGc8XytadmxmQF5DUENrJiZ4bWpOXnNkMk9RVnBCQiRxdmlfeAoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9p
bnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50Lmpz
CmluZGV4IGEyYTA4MTkzZTU2MzJkMDliZDRiNTZlNWRkMGQ2NDQ1NTIwNjlhYTAuLjI5MDczZDkx
MWRkZTNhNTRiMzgwMzIxYjUzYzA4NjFlNzhhNmQ2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnQuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2ludC5qcwpAQCAtNjYsNiArNjYsNyBAQCBX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5Qb3BvdmVyQ2xhc3NOYW1lID0gImVkaXQtYnJlYWtwb2lu
dC1wb3BvdmVyLWNvbnRlbnQiOwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuV2lkZVBvcG92ZXJD
bGFzc05hbWUgPSAid2lkZSI7CiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5Qb3BvdmVyQ29uZGl0
aW9uSW5wdXRJZCA9ICJlZGl0LWJyZWFrcG9pbnQtcG9wb3Zlci1jb25kaXRpb24iOwogV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQuUG9wb3Zlck9wdGlvbnNBdXRvQ29udGludWVJbnB1dElkID0gImVk
aXQtYnJlYWtwb2ludC1wb3Bvb3Zlci1hdXRvLWNvbnRpbnVlIjsKK1dlYkluc3BlY3Rvci5CcmVh
a3BvaW50LkhpZGRlblN0eWxlQ2xhc3NOYW1lID0gImhpZGRlbiI7CiAKIFdlYkluc3BlY3Rvci5C
cmVha3BvaW50LkRlZmF1bHRCcmVha3BvaW50QWN0aW9uVHlwZSA9IFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50QWN0aW9uLlR5cGUuTG9nOwogCkBAIC0yMDIsNiArMjAzLDI4IEBAIFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgfTsKICAgICB9LAogCisgICAgY3lj
bGVUb05leHRNb2RlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5kaXNhYmxl
ZCkgeworICAgICAgICAgICAgLy8gV2hlbiBjeWNsaW5nLCBjbGVhciBhdXRvLWNvbnRpbnVlIHdo
ZW4gZ29pbmcgZnJvbSBkaXNhYmxlZCB0byBlbmFibGVkLgorICAgICAgICAgICAgdGhpcy5hdXRv
Q29udGludWUgPSBmYWxzZTsKKyAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlzLmF1dG9Db250
aW51ZSkgeworICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5hY3Rpb25zLmxlbmd0aCkgewor
ICAgICAgICAgICAgdGhpcy5hdXRvQ29udGludWUgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7CisgICAgfSwKKwog
ICAgIGFwcGVuZENvbnRleHRNZW51SXRlbXM6IGZ1bmN0aW9uKGNvbnRleHRNZW51LCBicmVha3Bv
aW50RGlzcGxheUVsZW1lbnQpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChkb2N1bWVu
dC5ib2R5LmNvbnRhaW5zKGJyZWFrcG9pbnREaXNwbGF5RWxlbWVudCksICJicmVha3BvaW50IHBv
cG92ZXIgZGlzcGxheSBlbGVtZW50IG11c3QgYmUgaW4gdGhlIERPTSIpOwpAQCAtMjIzLDYgKzI0
NiwxMSBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICB0aGlzLmRpc2FibGVkID0gIXRoaXMuZGlzYWJsZWQ7CiAgICAgICAgIH0KIAorICAgICAgICBm
dW5jdGlvbiB0b2dnbGVBdXRvQ29udGludWUoKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlz
LmF1dG9Db250aW51ZSA9ICF0aGlzLmF1dG9Db250aW51ZTsKKyAgICAgICAgfQorCiAgICAgICAg
IGZ1bmN0aW9uIHJldmVhbE9yaWdpbmFsU291cmNlQ29kZUxvY2F0aW9uKCkKICAgICAgICAgewog
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlU2lkZWJhclBhbmVsLnNob3dPcmlnaW5h
bE9yRm9ybWF0dGVkU291cmNlQ29kZUxvY2F0aW9uKHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbik7
CkBAIC0yMzEsMTAgKzI1OSwxNiBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmlzQnJlYWtwb2lu
dEVkaXRhYmxlKHRoaXMpKQogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkVkaXQgQnJlYWtwb2ludOKApiIpLCBlZGl0QnJlYWtwb2ludC5i
aW5kKHRoaXMpKTsKIAotICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQpCi0gICAgICAgICAgICBj
b250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW5hYmxlIEJyZWFr
cG9pbnQiKSwgdG9nZ2xlQnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKLSAgICAgICAgZWxzZQorICAg
ICAgICBpZiAodGhpcy5hdXRvQ29udGludWUgJiYgIXRoaXMuZGlzYWJsZWQpIHsKKyAgICAgICAg
ICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEaXNhYmxl
IEJyZWFrcG9pbnQiKSwgdG9nZ2xlQnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAg
IGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYW5jZWwgQXV0
b21hdGljIENvbnRpbnVlIiksIHRvZ2dsZUF1dG9Db250aW51ZS5iaW5kKHRoaXMpKTsKKyAgICAg
ICAgfSBlbHNlIGlmICghdGhpcy5kaXNhYmxlZCkKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEaXNhYmxlIEJyZWFrcG9pbnQiKSwgdG9n
Z2xlQnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVuYWJsZSBCcmVha3Bv
aW50IiksIHRvZ2dsZUJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CisKKyAgICAgICAgaWYgKCF0aGlz
LmF1dG9Db250aW51ZSAmJiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmFjdGlvbnMubGVuZ3RoKQor
ICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlNldCB0byBBdXRvbWF0aWNhbGx5IENvbnRpbnVlIiksIHRvZ2dsZUF1dG9Db250aW51ZS5iaW5k
KHRoaXMpKTsKIAogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5pc0Jy
ZWFrcG9pbnRSZW1vdmFibGUodGhpcykpIHsKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVu
ZFNlcGFyYXRvcigpOwpAQCAtMjkyLDYgKzMyNiw5IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9hY3Rpb25zLnNwbGljZShpbmRleCwgMSk7
CiAKKyAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25zLmxlbmd0aCkKKyAgICAgICAgICAgIHRoaXMu
YXV0b0NvbnRpbnVlID0gZmFsc2U7CisKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuQWN0aW9uc0RpZENoYW5nZSk7CiAg
ICAgfSwKIApAQCAtMzk2LDExICs0MzMsMTMgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJv
dG90eXBlID0gewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgdmFyIG9wdGlvbnNSb3cgPSB0YWJsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJ0ciIpKTsKKyAgICAgICAgICAgIHZhciBvcHRpb25zUm93ID0gdGhpcy5fcG9wb3Zlck9w
dGlvbnNSb3dFbGVtZW50ID0gdGFibGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgidHIiKSk7CisgICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbnMubGVuZ3RoKQorICAgICAg
ICAgICAgICAgIG9wdGlvbnNSb3cuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dC5IaWRkZW5TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB2YXIgb3B0aW9uc0hlYWRlciA9
IG9wdGlvbnNSb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGgiKSk7CiAg
ICAgICAgICAgICB2YXIgb3B0aW9uc0RhdGEgPSBvcHRpb25zUm93LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInRkIikpOwogICAgICAgICAgICAgdmFyIG9wdGlvbnNMYWJlbCA9
IG9wdGlvbnNIZWFkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwi
KSk7Ci0gICAgICAgICAgICB2YXIgb3B0aW9uc0NoZWNrYm94ID0gb3B0aW9uc0RhdGEuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSk7CisgICAgICAgICAgICB2YXIg
b3B0aW9uc0NoZWNrYm94ID0gdGhpcy5fcG9wb3Zlck9wdGlvbnNDaGVja2JveEVsZW1lbnQgPSBv
cHRpb25zRGF0YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKTsK
ICAgICAgICAgICAgIHZhciBvcHRpb25zQ2hlY2tib3hMYWJlbCA9IG9wdGlvbnNEYXRhLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIikpOwogICAgICAgICAgICAgb3B0
aW9uc0NoZWNrYm94LmlkID0gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuUG9wb3Zlck9wdGlvbnNB
dXRvQ29udGludWVJbnB1dElkOwogICAgICAgICAgICAgb3B0aW9uc0NoZWNrYm94LnR5cGUgPSAi
Y2hlY2tib3giOwpAQCAtNDM1LDcgKzQ3NCw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5ld0FjdGlvbiA9IHRoaXMuY3JlYXRlQWN0aW9uKFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50LkRlZmF1bHRCcmVha3BvaW50QWN0aW9uVHlwZSk7CiAgICAg
ICAgIHZhciBuZXdCcmVha3BvaW50QWN0aW9uVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludEFjdGlvblZpZXcobmV3QWN0aW9uLCB0aGlzKTsKICAgICAgICAgdGhpcy5fcG9wb3ZlckFj
dGlvbnNJbnNlcnRCcmVha3BvaW50QWN0aW9uVmlldyhuZXdCcmVha3BvaW50QWN0aW9uVmlldywg
LTEpOwotCisgICAgICAgIHRoaXMuX3BvcG92ZXJPcHRpb25zUm93RWxlbWVudC5jbGFzc0xpc3Qu
cmVtb3ZlKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkhpZGRlblN0eWxlQ2xhc3NOYW1lKTsKICAg
ICAgICAgdGhpcy5fcG9wb3Zlci51cGRhdGUoKTsKICAgICB9LAogCkBAIC00NjMsNiArNTAyLDcg
QEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAg
ICAgICAgdGhpcy5fcG9wb3ZlckFjdGlvbnNJbnNlcnRCcmVha3BvaW50QWN0aW9uVmlldyhuZXdC
cmVha3BvaW50QWN0aW9uVmlldywgaW5kZXgpOworICAgICAgICB0aGlzLl9wb3BvdmVyT3B0aW9u
c1Jvd0VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5IaWRk
ZW5TdHlsZUNsYXNzTmFtZSk7CiAKICAgICAgICAgdGhpcy5fcG9wb3Zlci51cGRhdGUoKTsKICAg
ICB9LApAQCAtNDcxLDggKzUxMSwxMSBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5
cGUgPSB7CiAgICAgewogICAgICAgICBicmVha3BvaW50QWN0aW9uVmlldy5lbGVtZW50LnJlbW92
ZSgpOwogCi0gICAgICAgIGlmICghdGhpcy5fYWN0aW9uc0NvbnRhaW5lci5jaGlsZHJlbi5sZW5n
dGgpCisgICAgICAgIGlmICghdGhpcy5fYWN0aW9uc0NvbnRhaW5lci5jaGlsZHJlbi5sZW5ndGgp
IHsKICAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJBY3Rpb25zQ3JlYXRlQWRkQWN0aW9uQnV0dG9u
KCk7CisgICAgICAgICAgICB0aGlzLl9wb3BvdmVyT3B0aW9uc1Jvd0VsZW1lbnQuY2xhc3NMaXN0
LmFkZChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5IaWRkZW5TdHlsZUNsYXNzTmFtZSk7CisgICAg
ICAgICAgICB0aGlzLl9wb3BvdmVyT3B0aW9uc0NoZWNrYm94RWxlbWVudC5jaGVja2VkID0gZmFs
c2U7CisgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9wb3BvdmVyLnVwZGF0ZSgpOwogICAgIH0s
CkBAIC00ODYsNiArNTI5LDggQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0g
ewogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcG9wb3ZlciA9PT0gcG9wb3Zl
cik7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9wb3BvdmVyQ29udGVudEVsZW1lbnQ7CisgICAgICAg
IGRlbGV0ZSB0aGlzLl9wb3BvdmVyT3B0aW9uc1Jvd0VsZW1lbnQ7CisgICAgICAgIGRlbGV0ZSB0
aGlzLl9wb3BvdmVyT3B0aW9uc0NoZWNrYm94RWxlbWVudDsKICAgICAgICAgZGVsZXRlIHRoaXMu
X2FjdGlvbnNDb250YWluZXI7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9wb3BvdmVyOwogICAgIH0s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3Bv
aW50VHJlZUVsZW1lbnQuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QnJlYWtwb2ludFRyZWVFbGVtZW50LmNzcwppbmRleCBiNTU5MWYyYzRlYTJkY2IzOTI2MWQ0Y2Zk
OWU1ZDI5NWVlNmNkZmUyLi44ZTI4MmU3ZTc1MjYxMmU3NDAxNzZmNTE4YTg5MDI4YTAxZmQ3MzMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3Bv
aW50VHJlZUVsZW1lbnQuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5jc3MKQEAgLTM0LDggKzM0LDEyIEBACiAgICAgY29u
dGVudDogdXJsKEltYWdlcy9CcmVha3BvaW50QnV0dG9uLnN2Zyk7CiB9CiAKKy5pdGVtLmJyZWFr
cG9pbnQgLnN0YXR1cyA+IC5zdGF0dXMtaW1hZ2UuYXV0by1jb250aW51ZSB7CisgICAgb3BhY2l0
eTogMC42OworfQorCiAuaXRlbS5icmVha3BvaW50IC5zdGF0dXMgPiAuc3RhdHVzLWltYWdlLmRp
c2FibGVkIHsKLSAgICBvcGFjaXR5OiAwLjQ1OworICAgIG9wYWNpdHk6IDAuMzU7CiB9CiAKIC5p
dGVtLmJyZWFrcG9pbnQgLnN1YnRpdGxlLmZvcm1hdHRlZC1sb2NhdGlvbiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50VHJlZUVsZW1l
bnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50VHJl
ZUVsZW1lbnQuanMKaW5kZXggYWRlZGNhZDMyMTBjZTc0ZWFlODY0ZDM3ZjA4OGY0N2MyOGMzMTI3
MC4uZGEzOWNkYmQ5ODg2YjZjZWVkNzVkODk3Y2RlOGUzYjQ1MDdjN2U0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2ludFRyZWVFbGVtZW50
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRU
cmVlRWxlbWVudC5qcwpAQCAtMzcsNiArMzcsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRy
ZWVFbGVtZW50ID0gZnVuY3Rpb24oYnJlYWtwb2ludCwgY2xhc3NOYW1lLCB0aXRsZSkKICAgICBp
ZiAoIXRpdGxlKQogICAgICAgICB0aGlzLl9icmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuTG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMuX2JyZWFr
cG9pbnRMb2NhdGlvbkRpZENoYW5nZSwgdGhpcyk7CiAgICAgdGhpcy5fYnJlYWtwb2ludC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkRpc2FibGVkU3RhdGVE
aWRDaGFuZ2UsIHRoaXMuX3VwZGF0ZVN0YXR1cywgdGhpcyk7CisgICAgdGhpcy5fYnJlYWtwb2lu
dC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkF1dG9Db250
aW51ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKICAgICB0aGlzLl9icmVh
a3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuUmVz
b2x2ZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKIAogICAgIHRo
aXMuX3N0YXR1c0ltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwpA
QCAtNTYsNiArNTcsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LkdlbmVy
aWNMaW5lSWNvblN0eWxlQ2xhc3NOYW1lID0gImJyZWFrcG9pbnQtZwogV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnRUcmVlRWxlbWVudC5TdHlsZUNsYXNzTmFtZSA9ICJicmVha3BvaW50IjsKIFdlYklu
c3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuU3RhdHVzSW1hZ2VFbGVtZW50U3R5bGVDbGFz
c05hbWUgPSAic3RhdHVzLWltYWdlIjsKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1l
bnQuU3RhdHVzSW1hZ2VSZXNvbHZlZFN0eWxlQ2xhc3NOYW1lID0gInJlc29sdmVkIjsKK1dlYklu
c3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuU3RhdHVzSW1hZ2VBdXRvQ29udGludWVTdHls
ZUNsYXNzTmFtZSA9ICJhdXRvLWNvbnRpbnVlIjsKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJl
ZUVsZW1lbnQuU3RhdHVzSW1hZ2VEaXNhYmxlZFN0eWxlQ2xhc3NOYW1lID0gImRpc2FibGVkIjsK
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuRm9ybWF0dGVkTG9jYXRpb25TdHls
ZUNsYXNzTmFtZSA9ICJmb3JtYXR0ZWQtbG9jYXRpb24iOwogCkBAIC04MCwxMyArODIsMTMgQEAg
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBv
bmVudGVyOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9icmVha3BvaW50LmRpc2Fi
bGVkID0gIXRoaXMuX2JyZWFrcG9pbnQuZGlzYWJsZWQ7CisgICAgICAgIHRoaXMuX2JyZWFrcG9p
bnQuY3ljbGVUb05leHRNb2RlKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKICAg
ICBvbnNwYWNlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9icmVha3BvaW50LmRp
c2FibGVkID0gIXRoaXMuX2JyZWFrcG9pbnQuZGlzYWJsZWQ7CisgICAgICAgIHRoaXMuX2JyZWFr
cG9pbnQuY3ljbGVUb05leHRNb2RlKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAK
QEAgLTEyOSw2ICsxMzEsMTEgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX3N0YXR1c0ltYWdl
RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1l
bnQuU3RhdHVzSW1hZ2VEaXNhYmxlZFN0eWxlQ2xhc3NOYW1lKTsKIAorICAgICAgICBpZiAodGhp
cy5fYnJlYWtwb2ludC5hdXRvQ29udGludWUpCisgICAgICAgICAgICB0aGlzLl9zdGF0dXNJbWFn
ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50
LlN0YXR1c0ltYWdlQXV0b0NvbnRpbnVlU3R5bGVDbGFzc05hbWUpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0aGlzLl9zdGF0dXNJbWFnZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LlN0YXR1c0ltYWdlQXV0b0NvbnRpbnVlU3R5
bGVDbGFzc05hbWUpOworCiAgICAgICAgIGlmICh0aGlzLl9icmVha3BvaW50LnJlc29sdmVkKQog
ICAgICAgICAgICAgdGhpcy5fc3RhdHVzSW1hZ2VFbGVtZW50LmNsYXNzTGlzdC5hZGQoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFnZVJlc29sdmVkU3R5bGVDbGFz
c05hbWUpOwogICAgICAgICBlbHNlCkBAIC0xNDMsNiArMTUwLDcgQEAgV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChldmVudC5kYXRh
Lm9sZERpc3BsYXlTb3VyY2VDb2RlID09PSB0aGlzLl9icmVha3BvaW50LmRpc3BsYXlTb3VyY2VD
b2RlKSB7CiAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuTG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMuX2JyZWFr
cG9pbnRMb2NhdGlvbkRpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgICAgICB0aGlzLl9icmVha3Bv
aW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuRGlzYWJs
ZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKKyAgICAgICAgICAg
IHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dC5FdmVudC5BdXRvQ29udGludWVEaWRDaGFuZ2UsIHRoaXMuX3VwZGF0ZVN0YXR1cywgdGhpcyk7
CiAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnQuRXZlbnQuUmVzb2x2ZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRl
U3RhdHVzLCB0aGlzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTU4LDcg
KzE2Niw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQucHJvdG90eXBlID0g
ewogCiAgICAgX3N0YXR1c0ltYWdlRWxlbWVudENsaWNrZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHsKLSAgICAgICAgdGhpcy5fYnJlYWtwb2ludC5kaXNhYmxlZCA9ICF0aGlzLl9icmVha3BvaW50
LmRpc2FibGVkOworICAgICAgICB0aGlzLl9icmVha3BvaW50LmN5Y2xlVG9OZXh0TW9kZSgpOwog
ICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvU291cmNlQ29kZVRleHRFZGl0b3IuanMKaW5kZXggYWVhZmQzZDVkODlmYjQzNDQ0
MTE2NTAyODVjNjQ0YzU1NDNiNzUzOC4uN2NiMzU0YmRmNTNhMDdlNWJkZGU2OTQyZTJmYjBlZmZl
YmE2YzM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
U291cmNlQ29kZVRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvU291cmNlQ29kZVRleHRFZGl0b3IuanMKQEAgLTQzLDYgKzQzLDcgQEAgV2ViSW5z
cGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRpdG9yID0gZnVuY3Rpb24oc291cmNlQ29kZSkKIAogICAg
IGlmICh0aGlzLl9zdXBwb3J0c0RlYnVnZ2luZykgewogICAgICAgICBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkRp
c2FibGVkU3RhdGVEaWRDaGFuZ2UsIHRoaXMuX3VwZGF0ZUJyZWFrcG9pbnRTdGF0dXMsIHRoaXMp
OworICAgICAgICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkF1dG9Db250aW51ZURpZENoYW5nZSwgdGhpcy5fdXBk
YXRlQnJlYWtwb2ludFN0YXR1cywgdGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuUmVzb2x2
ZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2ludFN0YXR1cywgdGhpcyk7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnQuRXZlbnQuTG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMuX3VwZGF0ZUJyZWFr
cG9pbnRMb2NhdGlvbiwgdGhpcyk7CiAKQEAgLTExMiw2ICsxMTMsNyBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKHRo
aXMuX3N1cHBvcnRzRGVidWdnaW5nKSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkRp
c2FibGVkU3RhdGVEaWRDaGFuZ2UsIHRoaXMuX3VwZGF0ZUJyZWFrcG9pbnRTdGF0dXMsIHRoaXMp
OworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucmVtb3ZlRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5BdXRvQ29udGludWVEaWRDaGFuZ2UsIHRo
aXMuX3VwZGF0ZUJyZWFrcG9pbnRTdGF0dXMsIHRoaXMpOwogICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dC5FdmVudC5SZXNvbHZlZFN0YXRlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVCcmVha3BvaW50U3Rh
dHVzLCB0aGlzKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnJlbW92ZUV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuTG9jYXRpb25EaWRDaGFu
Z2UsIHRoaXMuX3VwZGF0ZUJyZWFrcG9pbnRMb2NhdGlvbiwgdGhpcyk7CiAKQEAgLTcxMCw3ICs3
MTIsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlID0gewog
CiAgICAgX2JyZWFrcG9pbnRJbmZvRm9yQnJlYWtwb2ludDogZnVuY3Rpb24oYnJlYWtwb2ludCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiB7cmVzb2x2ZWQ6IGJyZWFrcG9pbnQucmVzb2x2ZWQsIGRp
c2FibGVkOiBicmVha3BvaW50LmRpc2FibGVkfTsKKyAgICAgICAgcmV0dXJuIHtyZXNvbHZlZDog
YnJlYWtwb2ludC5yZXNvbHZlZCwgZGlzYWJsZWQ6IGJyZWFrcG9pbnQuZGlzYWJsZWQsIGF1dG9D
b250aW51ZTogYnJlYWtwb2ludC5hdXRvQ29udGludWV9OwogICAgIH0sCiAKICAgICBnZXQgX3N1
cHBvcnRzRGVidWdnaW5nKCkKQEAgLTkwOCw3ICs5MTAsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNl
Q29kZVRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy51cGRhdGVCcmVh
a3BvaW50TGluZUFuZENvbHVtbihuZXdMaW5lSW5mby5saW5lTnVtYmVyLCBuZXdMaW5lSW5mby5j
b2x1bW5OdW1iZXIsIGFjY3VyYXRlTmV3TGluZUluZm8ubGluZU51bWJlciwgYWNjdXJhdGVOZXdM
aW5lSW5mby5jb2x1bW5OdW1iZXIpOwogICAgIH0sCiAKLSAgICB0ZXh0RWRpdG9yQnJlYWtwb2lu
dFRvZ2dsZWQ6IGZ1bmN0aW9uKHRleHRFZGl0b3IsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwg
ZGlzYWJsZWQpCisgICAgdGV4dEVkaXRvckJyZWFrcG9pbnRDbGlja2VkOiBmdW5jdGlvbih0ZXh0
RWRpdG9yLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCiAgICAgewogICAgICAgICBjb25zb2xl
LmFzc2VydCh0aGlzLl9zdXBwb3J0c0RlYnVnZ2luZyk7CiAgICAgICAgIGlmICghdGhpcy5fc3Vw
cG9ydHNEZWJ1Z2dpbmcpCkBAIC05MTksNyArOTIxLDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNv
ZGVUZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCFicmVha3BvaW50KQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGJyZWFrcG9pbnQuZGlzYWJsZWQgPSBkaXNhYmxl
ZDsKKyAgICAgICAgYnJlYWtwb2ludC5jeWNsZVRvTmV4dE1vZGUoKTsKICAgICB9LAogCiAgICAg
dGV4dEVkaXRvclVwZGF0ZWRGb3JtYXR0aW5nOiBmdW5jdGlvbih0ZXh0RWRpdG9yKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5jc3Mg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmNzcwppbmRl
eCBjOWRmYmI0MzlkNzIzZjAzY2I5MmQ2OThkYjhkZTM3ZjJmYmRmOTdlLi5hNjVhZWEzMDZhNThj
Y2NmOGUxY2MxMjZiZTQ4NGU1MWFjM2QzYWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmNzcwpAQCAtNjYsNiArNjYsMTAgQEAKICAg
ICBib3JkZXItaW1hZ2Utc291cmNlOiAtd2Via2l0LWltYWdlLXNldCh1cmwoSW1hZ2VzL0JyZWFr
cG9pbnQucG5nKSAxeCwgdXJsKEltYWdlcy9CcmVha3BvaW50QDJ4LnBuZykgMngpOwogfQogCisu
dGV4dC1lZGl0b3IgPiAuQ29kZU1pcnJvciAuYnJlYWtwb2ludC1hdXRvLWNvbnRpbnVlOm5vdCgu
YnJlYWtwb2ludC1kaXNhYmxlZCkgLkNvZGVNaXJyb3ItbGluZW51bWJlcjo6YmVmb3JlIHsKKyAg
ICBvcGFjaXR5OiAwLjY7Cit9CisKIC50ZXh0LWVkaXRvciA+IC5Db2RlTWlycm9yIC5icmVha3Bv
aW50LWRpc2FibGVkIC5Db2RlTWlycm9yLWxpbmVudW1iZXI6OmJlZm9yZSB7CiAgICAgb3BhY2l0
eTogMC4zNTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1RleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXh0RWRpdG9yLmpzCmluZGV4IDhjMGE1YThlZWUyMDU5MTcwZjI3MzRiNGExOTA1MDZkNjRhNjRi
N2UuLjBlOTJlYjEwODQ5Yjg4ODMxZjk3ZTFmNjU2MGFlODQ2ZTRiNzA4ZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRFZGl0b3IuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5qcwpAQCAtNzYs
NiArNzYsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5IaWdobGlnaHRlZFN0eWxlQ2xhc3NO
YW1lID0gImhpZ2hsaWdodGVkIjsKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLlNlYXJjaFJlc3Vs
dFN0eWxlQ2xhc3NOYW1lID0gInNlYXJjaC1yZXN1bHQiOwogV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3IuSGFzQnJlYWtwb2ludFN0eWxlQ2xhc3NOYW1lID0gImhhcy1icmVha3BvaW50IjsKIFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yLkJyZWFrcG9pbnRSZXNvbHZlZFN0eWxlQ2xhc3NOYW1lID0gImJy
ZWFrcG9pbnQtcmVzb2x2ZWQiOworV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuQnJlYWtwb2ludEF1
dG9Db250aW51ZVN0eWxlQ2xhc3NOYW1lID0gImJyZWFrcG9pbnQtYXV0by1jb250aW51ZSI7CiBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50RGlzYWJsZWRTdHlsZUNsYXNzTmFtZSA9
ICJicmVha3BvaW50LWRpc2FibGVkIjsKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLk11bHRpcGxl
QnJlYWtwb2ludHNTdHlsZUNsYXNzTmFtZSA9ICJtdWx0aXBsZS1icmVha3BvaW50cyI7CiBXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvci5FeGVjdXRpb25MaW5lU3R5bGVDbGFzc05hbWUgPSAiZXhlY3V0
aW9uLWxpbmUiOwpAQCAtOTA2LDYgKzkwNyw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnBy
b3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgYWxsRGlzYWJsZWQgPSB0cnVlOwogICAgICAgICB2
YXIgYWxsUmVzb2x2ZWQgPSB0cnVlOworICAgICAgICB2YXIgYWxsQXV0b0NvbnRpbnVlID0gdHJ1
ZTsKICAgICAgICAgdmFyIG11bHRpcGxlID0gT2JqZWN0LmtleXMoY29sdW1uQnJlYWtwb2ludHMp
Lmxlbmd0aCA+IDE7CiAgICAgICAgIGZvciAodmFyIGNvbHVtbk51bWJlciBpbiBjb2x1bW5CcmVh
a3BvaW50cykgewogICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRJbmZvID0gY29sdW1uQnJlYWtw
b2ludHNbY29sdW1uTnVtYmVyXTsKQEAgLTkxMyw2ICs5MTUsOCBAQCBXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgYWxsRGlzYWJsZWQgPSBmYWxz
ZTsKICAgICAgICAgICAgIGlmICghYnJlYWtwb2ludEluZm8ucmVzb2x2ZWQpCiAgICAgICAgICAg
ICAgICAgYWxsUmVzb2x2ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmICghYnJlYWtwb2ludElu
Zm8uYXV0b0NvbnRpbnVlKQorICAgICAgICAgICAgICAgIGFsbEF1dG9Db250aW51ZSA9IGZhbHNl
OwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gdXBkYXRlU3R5bGVzKCkKQEAgLTkzNSw2
ICs5MzksMTEgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3IucmVtb3ZlTGluZUNs
YXNzKGxpbmVIYW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuQnJlYWtwb2lu
dERpc2FibGVkU3R5bGVDbGFzc05hbWUpOwogCisgICAgICAgICAgICBpZiAoYWxsQXV0b0NvbnRp
bnVlKQorICAgICAgICAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3IuYWRkTGluZUNsYXNzKGxpbmVI
YW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuQnJlYWtwb2ludEF1dG9Db250
aW51ZVN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0
aGlzLl9jb2RlTWlycm9yLnJlbW92ZUxpbmVDbGFzcyhsaW5lSGFuZGxlLCAid3JhcCIsIFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yLkJyZWFrcG9pbnRBdXRvQ29udGludWVTdHlsZUNsYXNzTmFtZSk7
CisKICAgICAgICAgICAgIGlmIChtdWx0aXBsZSkKICAgICAgICAgICAgICAgICB0aGlzLl9jb2Rl
TWlycm9yLmFkZExpbmVDbGFzcyhsaW5lSGFuZGxlLCAid3JhcCIsIFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yLk11bHRpcGxlQnJlYWtwb2ludHNTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICBl
bHNlCkBAIC05NzUsNiArOTg0LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZW1vdmVMaW5lQ2xhc3MobGluZUhh
bmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5IYXNCcmVha3BvaW50U3R5bGVD
bGFzc05hbWUpOwogICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZW1vdmVMaW5lQ2xhc3Mo
bGluZUhhbmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50UmVz
b2x2ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnJlbW92
ZUxpbmVDbGFzcyhsaW5lSGFuZGxlLCAid3JhcCIsIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkJy
ZWFrcG9pbnREaXNhYmxlZFN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIHRoaXMuX2NvZGVN
aXJyb3IucmVtb3ZlTGluZUNsYXNzKGxpbmVIYW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3IuQnJlYWtwb2ludEF1dG9Db250aW51ZVN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAg
ICAgIHRoaXMuX2NvZGVNaXJyb3IucmVtb3ZlTGluZUNsYXNzKGxpbmVIYW5kbGUsICJ3cmFwIiwg
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuTXVsdGlwbGVCcmVha3BvaW50c1N0eWxlQ2xhc3NOYW1l
KTsKICAgICAgICAgfQogCkBAIC0xMTE2LDcgKzExMjYsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIo
Im1vdXNlbW92ZSIsIHRoaXMuX2RvY3VtZW50TW91c2VNb3ZlZEV2ZW50TGlzdGVuZXIsIHRydWUp
OwogICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgdGhpcy5f
ZG9jdW1lbnRNb3VzZVVwRXZlbnRMaXN0ZW5lciwgdHJ1ZSk7CiAKLSAgICAgICAgY29uc3QgZGVs
ZWdhdGVJbXBsZW1lbnRzQnJlYWtwb2ludFRvZ2dsZWQgPSB0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBl
b2YgdGhpcy5fZGVsZWdhdGUudGV4dEVkaXRvckJyZWFrcG9pbnRUb2dnbGVkID09PSAiZnVuY3Rp
b24iOworICAgICAgICBjb25zdCBkZWxlZ2F0ZUltcGxlbWVudHNCcmVha3BvaW50Q2xpY2tlZCA9
IHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS50ZXh0RWRpdG9yQnJlYWtw
b2ludENsaWNrZWQgPT09ICJmdW5jdGlvbiI7CiAgICAgICAgIGNvbnN0IGRlbGVnYXRlSW1wbGVt
ZW50c0JyZWFrcG9pbnRSZW1vdmVkID0gdGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2Rl
bGVnYXRlLnRleHRFZGl0b3JCcmVha3BvaW50UmVtb3ZlZCA9PT0gImZ1bmN0aW9uIjsKICAgICAg
ICAgY29uc3QgZGVsZWdhdGVJbXBsZW1lbnRzQnJlYWtwb2ludE1vdmVkID0gdGhpcy5fZGVsZWdh
dGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLnRleHRFZGl0b3JCcmVha3BvaW50TW92ZWQgPT09
ICJmdW5jdGlvbiI7CiAKQEAgLTExNTIsMTEgKzExNjIsOCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAvLyBUb2dnbGUgdGhlIGRpc2FibGVkIHN0
YXRlIG9mIHRoZSBicmVha3BvaW50LgogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5f
bGluZU51bWJlcldpdGhNb3VzZWREb3duQnJlYWtwb2ludCBpbiB0aGlzLl9icmVha3BvaW50cyk7
CiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9jb2x1bW5OdW1iZXJXaXRoTW91c2Vk
RG93bkJyZWFrcG9pbnQgaW4gdGhpcy5fYnJlYWtwb2ludHNbdGhpcy5fbGluZU51bWJlcldpdGhN
b3VzZWREb3duQnJlYWtwb2ludF0pOwotICAgICAgICAgICAgaWYgKHRoaXMuX2xpbmVOdW1iZXJX
aXRoTW91c2VkRG93bkJyZWFrcG9pbnQgaW4gdGhpcy5fYnJlYWtwb2ludHMgJiYgdGhpcy5fY29s
dW1uTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50IGluIHRoaXMuX2JyZWFrcG9pbnRzW3Ro
aXMuX2xpbmVOdW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnRdICYmIGRlbGVnYXRlSW1wbGVt
ZW50c0JyZWFrcG9pbnRUb2dnbGVkKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGRpc2FibGVkID0g
dGhpcy5fY29kZU1pcnJvci50b2dnbGVMaW5lQ2xhc3ModGhpcy5fbGluZU51bWJlcldpdGhNb3Vz
ZWREb3duQnJlYWtwb2ludCwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3Bv
aW50RGlzYWJsZWRTdHlsZUNsYXNzTmFtZSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtw
b2ludHNbdGhpcy5fbGluZU51bWJlcldpdGhNb3VzZWREb3duQnJlYWtwb2ludF1bdGhpcy5fY29s
dW1uTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50XS5kaXNhYmxlZCA9IGRpc2FibGVkOwot
ICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnRleHRFZGl0b3JCcmVha3BvaW50VG9nZ2xl
ZCh0aGlzLCB0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50LCB0aGlzLl9j
b2x1bW5OdW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnQsIGRpc2FibGVkKTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmICh0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVh
a3BvaW50IGluIHRoaXMuX2JyZWFrcG9pbnRzICYmIHRoaXMuX2NvbHVtbk51bWJlcldpdGhNb3Vz
ZWREb3duQnJlYWtwb2ludCBpbiB0aGlzLl9icmVha3BvaW50c1t0aGlzLl9saW5lTnVtYmVyV2l0
aE1vdXNlZERvd25CcmVha3BvaW50XSAmJiBkZWxlZ2F0ZUltcGxlbWVudHNCcmVha3BvaW50Q2xp
Y2tlZCkKKyAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS50ZXh0RWRpdG9yQnJlYWtwb2lu
dENsaWNrZWQodGhpcywgdGhpcy5fbGluZU51bWJlcldpdGhNb3VzZWREb3duQnJlYWtwb2ludCwg
dGhpcy5fY29sdW1uTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50KTsKICAgICAgICAgfQog
CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9kb2N1bWVudE1vdXNlTW92ZWRFdmVudExpc3RlbmVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220857</attachid>
            <date>2014-01-10 10:44:16 -0800</date>
            <delta_ts>2014-01-10 15:30:49 -0800</delta_ts>
            <desc>v3 fix changelog</desc>
            <filename>bug-126669-20140110104416.patch</filename>
            <type>text/plain</type>
            <size>24040</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA5
ZmUzZDI3YjQxYjAxODc5YjFjYzMzMGQwNjUxMzAyZjk0ZWUxYjIxLi5kNTE4ZTcxMTJlNTRkODdh
Y2JhNTNmNGFlYjllNjQzYzVmZTkyMjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAxNC0wMS0xMCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjeWNsZSBjbGlja2VkIGJyZWFrcG9pbnRzIGJldHdlZW4g
ZW5hYmxlZCwgYXV0by1jb250aW51ZSwgYW5kIGRpc2FibGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY2NjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgSXQncyB0aW1lLWNvbnN1bWluZyB0byBjaGFu
Z2UgYSBicmVha3BvaW50J3MgYXV0by1jb250aW51ZSBzZXR0aW5nIHRocm91Z2ggdGhlCisgICAg
ICAgIGJyZWFrcG9pbnQgZWRpdG9yIHBvcHVwLiBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIHVzZXIg
dG8gdG9nZ2xlIGJldHdlZW4gZW5hYmxlZCwKKyAgICAgICAgYXV0by1jb250aW51ZSwgYW5kIGRp
c2FibGVkIGJ5IGNsaWNraW5nIG9uIHRoZSBicmVha3BvaW50IHdlZGdlIGluIHRoZSBzaWRlYmFy
CisgICAgICAgIHRyZWUgYW5kIGluIHRoZSBzb3VyY2UgdGV4dCBlZGl0b3IgZ3V0dGVyLiBUaGUg
YXV0by1jb250aW51ZSBvcHRpb24gaXMgb25seQorICAgICAgICBjeWNsZWQgd2hlbiB0aGUgYnJl
YWtwb2ludCBoYXMgYXNzb2NpYXRlZCBhY3Rpb25zLgorCisgICAgICAgIENsZWFuIHVwIHRoZSBi
cmVha3BvaW50IGVkaXRvciBkaWFsb2cgc28gaXQgaGlkZXMgaXJyZWxldmFudCBvcHRpb25zIHdo
ZW4KKyAgICAgICAgbm8gYnJlYWtwb2ludCBhY3Rpb25zIGhhdmUgYmVlbiBhZGRlZC4KKworICAg
ICAgICBBdXRvbWF0aWNhbGx5IHVuc2V0IGF1dG8tY29udGludWUgd2hlbiB0aGUgbGFzdCBicmVh
a3BvaW50IGFjdGlvbiBpcyByZW1vdmVkLgorCisgICAgICAgIFJlbmFtZSB0aGUgZGVsZWdhdGUg
dGV4dEVkaXRvckJyZWFrcG9pbnRUb2dnbGVkIHRvIHRleHRFZGl0b3JCcmVha3BvaW50Q2xpY2tl
ZCwgc2luY2UKKyAgICAgICAgdGhlIGJlaGF2aW9yIG9mIHRoZSBjbGljayBkZXBlbmRzIG9uIGJy
ZWFrcG9pbnQgc3RhdGUgbm90IGF2YWlsYWJsZSBpbiB0aGUgdGV4dCBlZGl0b3IuCisKKyAgICAg
ICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9CcmVha3BvaW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnQucHJvdG90eXBlLmN5Y2xlVG9OZXh0TW9kZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLnRvZ2dsZUF1dG9Db250aW51ZSk6IEFkZGVk
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLmFwcGVuZENvbnRl
eHRNZW51SXRlbXMpOiBBZGQgYXV0by1jb250aW51ZSBvcHRpb25zLgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLnJlbW92ZUFjdGlvbik6CisKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZS5fZWRpdEJyZWFrcG9pbnRQb3BvdmVyQ29u
dGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBl
Ll9wb3BvdmVyQWN0aW9uc0FkZEFjdGlvbkJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLmJyZWFrcG9pbnRBY3Rpb25WaWV3QXBwZW5kQWN0
aW9uVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUuYnJl
YWtwb2ludEFjdGlvblZpZXdSZW1vdmVBY3Rpb25WaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50LnByb3RvdHlwZS53aWxsRGlzbWlzc1BvcG92ZXIpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvQnJlYWtwb2ludFRyZWVFbGVtZW50LmNzczoKKyAgICAgICAgKC5pdGVtLmJy
ZWFrcG9pbnQgLnN0YXR1cyA+IC5zdGF0dXMtaW1hZ2UuYXV0by1jb250aW51ZSk6CisgICAgICAg
ICguaXRlbS5icmVha3BvaW50IC5zdGF0dXMgPiAuc3RhdHVzLWltYWdlLmRpc2FibGVkKToKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUub25lbnRlcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNwYWNlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQucHJvdG90eXBlLl91cGRh
dGVTdGF0dXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5w
cm90b3R5cGUuX2JyZWFrcG9pbnRMb2NhdGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhdHVzSW1hZ2VFbGVtZW50
Q2xpY2tlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4dEVkaXRvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlLmNsb3NlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUuX2JyZWFr
cG9pbnRJbmZvRm9yQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlQ29k
ZVRleHRFZGl0b3IucHJvdG90eXBlLnRleHRFZGl0b3JCcmVha3BvaW50Q2xpY2tlZCk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmNzczoKKyAgICAgICAgKC50ZXh0LWVkaXRv
ciA+IC5Db2RlTWlycm9yIC5icmVha3BvaW50LWF1dG8tY29udGludWU6bm90KC5icmVha3BvaW50
LWRpc2FibGVkKSAuQ29kZU1pcnJvci1saW5lbnVtYmVyOjpiZWZvcmUpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRp
dG9yLnByb3RvdHlwZS5fc2V0QnJlYWtwb2ludFN0eWxlc09uTGluZS51cGRhdGVTdHlsZXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl9zZXRCcmVha3BvaW50
U3R5bGVzT25MaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlw
ZS51cGRhdGVTdHlsZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90
eXBlLl9yZW1vdmVCcmVha3BvaW50RnJvbUxpbmVBbmRDb2x1bW4pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl9kb2N1bWVudE1vdXNlVXApOgorCiAyMDE0LTAx
LTEwICBQZXRlciBNb2xuYXIgIDxwbW9sbmFyLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgQWRkIG1pc3NpbmcgZnVuY3Rpb24gc3R1YiBpbiBJbnNwZWN0b3JGcm9udGVu
ZEhvc3RTdHViLmpzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCBkMTM4ZWNj
MWJiYzY4MjdiOTZiYmY2OTIwYjgzNDExZGViNzI4NmIyLi5lNTY4NTVlMzAwYjExNjc3MjhkNmE3
MTczNmY3Yzc3NjA2MjZiODg5IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDE5NQp6Y21a
MjhmJShIRTxfK1p2PkIkVkszXkAhNjQyfSQ/Mz8mVHQ0N20pNktzdThsODdTcnE8bVo4VGN8aDR6
MXxeMUEKenByfGJuRCpAI2FmcFNGYW9+KXB6S2whWiEmKnBsQ2libjJLcHJIejI+bDd4PjV0cnBn
dlN7KiFgSiRYQ3ZiOyNMClE0NWdEREh0S0t3elIqKyswSUVQUEpwY2R6CgpkZWx0YSAyNwpqY21l
d2BpRndUZzxfK1p2bGZAXkNQQ2smJnhtak5ec2QyT1FWcEJCJHF2aV94CgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2ludC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnQuanMKaW5kZXggYTJhMDgx
OTNlNTYzMmQwOWJkNGI1NmU1ZGQwZDY0NDU1MjA2OWFhMC4uMjkwNzNkOTExZGRlM2E1NGIzODAz
MjFiNTNjMDg2MWU3OGE2ZDYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQnJlYWtwb2ludC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CcmVha3BvaW50LmpzCkBAIC02Niw2ICs2Niw3IEBAIFdlYkluc3BlY3Rvci5C
cmVha3BvaW50LlBvcG92ZXJDbGFzc05hbWUgPSAiZWRpdC1icmVha3BvaW50LXBvcG92ZXItY29u
dGVudCI7CiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5XaWRlUG9wb3ZlckNsYXNzTmFtZSA9ICJ3
aWRlIjsKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LlBvcG92ZXJDb25kaXRpb25JbnB1dElkID0g
ImVkaXQtYnJlYWtwb2ludC1wb3BvdmVyLWNvbmRpdGlvbiI7CiBXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludC5Qb3BvdmVyT3B0aW9uc0F1dG9Db250aW51ZUlucHV0SWQgPSAiZWRpdC1icmVha3BvaW50
LXBvcG9vdmVyLWF1dG8tY29udGludWUiOworV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuSGlkZGVu
U3R5bGVDbGFzc05hbWUgPSAiaGlkZGVuIjsKIAogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRGVm
YXVsdEJyZWFrcG9pbnRBY3Rpb25UeXBlID0gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRBY3Rpb24u
VHlwZS5Mb2c7CiAKQEAgLTIwMiw2ICsyMDMsMjggQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQu
cHJvdG90eXBlID0gewogICAgICAgICB9OwogICAgIH0sCiAKKyAgICBjeWNsZVRvTmV4dE1vZGU6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7CisgICAgICAg
ICAgICAvLyBXaGVuIGN5Y2xpbmcsIGNsZWFyIGF1dG8tY29udGludWUgd2hlbiBnb2luZyBmcm9t
IGRpc2FibGVkIHRvIGVuYWJsZWQuCisgICAgICAgICAgICB0aGlzLmF1dG9Db250aW51ZSA9IGZh
bHNlOworICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuYXV0b0NvbnRpbnVlKSB7CisgICAg
ICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh0aGlzLmFjdGlvbnMubGVuZ3RoKSB7CisgICAgICAgICAgICB0
aGlzLmF1dG9Db250aW51ZSA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTsKKyAgICB9LAorCiAgICAgYXBwZW5kQ29u
dGV4dE1lbnVJdGVtczogZnVuY3Rpb24oY29udGV4dE1lbnUsIGJyZWFrcG9pbnREaXNwbGF5RWxl
bWVudCkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvY3VtZW50LmJvZHkuY29udGFp
bnMoYnJlYWtwb2ludERpc3BsYXlFbGVtZW50KSwgImJyZWFrcG9pbnQgcG9wb3ZlciBkaXNwbGF5
IGVsZW1lbnQgbXVzdCBiZSBpbiB0aGUgRE9NIik7CkBAIC0yMjMsNiArMjQ2LDExIEBAIFdlYklu
c3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuZGlzYWJs
ZWQgPSAhdGhpcy5kaXNhYmxlZDsKICAgICAgICAgfQogCisgICAgICAgIGZ1bmN0aW9uIHRvZ2ds
ZUF1dG9Db250aW51ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuYXV0b0NvbnRpbnVl
ID0gIXRoaXMuYXV0b0NvbnRpbnVlOworICAgICAgICB9CisKICAgICAgICAgZnVuY3Rpb24gcmV2
ZWFsT3JpZ2luYWxTb3VyY2VDb2RlTG9jYXRpb24oKQogICAgICAgICB7CiAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VTaWRlYmFyUGFuZWwuc2hvd09yaWdpbmFsT3JGb3JtYXR0ZWRT
b3VyY2VDb2RlTG9jYXRpb24odGhpcy5fc291cmNlQ29kZUxvY2F0aW9uKTsKQEAgLTIzMSwxMCAr
MjU5LDE2IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
aWYgKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuaXNCcmVha3BvaW50RWRpdGFibGUodGhp
cykpCiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRWRpdCBCcmVha3BvaW504oCmIiksIGVkaXRCcmVha3BvaW50LmJpbmQodGhpcykpOwog
Ci0gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCkKLSAgICAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbmFibGUgQnJlYWtwb2ludCIpLCB0b2dn
bGVCcmVha3BvaW50LmJpbmQodGhpcykpOwotICAgICAgICBlbHNlCisgICAgICAgIGlmICh0aGlz
LmF1dG9Db250aW51ZSAmJiAhdGhpcy5kaXNhYmxlZCkgeworICAgICAgICAgICAgY29udGV4dE1l
bnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRpc2FibGUgQnJlYWtwb2ludCIp
LCB0b2dnbGVCcmVha3BvaW50LmJpbmQodGhpcykpOworICAgICAgICAgICAgY29udGV4dE1lbnUu
YXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhbmNlbCBBdXRvbWF0aWMgQ29udGlu
dWUiKSwgdG9nZ2xlQXV0b0NvbnRpbnVlLmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2UgaWYg
KCF0aGlzLmRpc2FibGVkKQogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkRpc2FibGUgQnJlYWtwb2ludCIpLCB0b2dnbGVCcmVha3BvaW50
LmJpbmQodGhpcykpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBl
bmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW5hYmxlIEJyZWFrcG9pbnQiKSwgdG9nZ2xl
QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKworICAgICAgICBpZiAoIXRoaXMuYXV0b0NvbnRpbnVl
ICYmICF0aGlzLmRpc2FibGVkICYmIHRoaXMuYWN0aW9ucy5sZW5ndGgpCisgICAgICAgICAgICBj
b250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2V0IHRvIEF1dG9t
YXRpY2FsbHkgQ29udGludWUiKSwgdG9nZ2xlQXV0b0NvbnRpbnVlLmJpbmQodGhpcykpOwogCiAg
ICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmlzQnJlYWtwb2ludFJlbW92
YWJsZSh0aGlzKSkgewogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7
CkBAIC0yOTIsNiArMzI2LDkgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0g
ewogCiAgICAgICAgIHRoaXMuX2FjdGlvbnMuc3BsaWNlKGluZGV4LCAxKTsKIAorICAgICAgICBp
ZiAoIXRoaXMuX2FjdGlvbnMubGVuZ3RoKQorICAgICAgICAgICAgdGhpcy5hdXRvQ29udGludWUg
PSBmYWxzZTsKKwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludC5FdmVudC5BY3Rpb25zRGlkQ2hhbmdlKTsKICAgICB9LAogCkBAIC0z
OTYsMTEgKzQzMywxMyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICB2YXIgb3B0aW9u
c1JvdyA9IHRhYmxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIikpOwor
ICAgICAgICAgICAgdmFyIG9wdGlvbnNSb3cgPSB0aGlzLl9wb3BvdmVyT3B0aW9uc1Jvd0VsZW1l
bnQgPSB0YWJsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpKTsKKyAg
ICAgICAgICAgIGlmICghdGhpcy5fYWN0aW9ucy5sZW5ndGgpCisgICAgICAgICAgICAgICAgb3B0
aW9uc1Jvdy5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkhpZGRlblN0eWxl
Q2xhc3NOYW1lKTsKICAgICAgICAgICAgIHZhciBvcHRpb25zSGVhZGVyID0gb3B0aW9uc1Jvdy5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpKTsKICAgICAgICAgICAgIHZh
ciBvcHRpb25zRGF0YSA9IG9wdGlvbnNSb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgidGQiKSk7CiAgICAgICAgICAgICB2YXIgb3B0aW9uc0xhYmVsID0gb3B0aW9uc0hlYWRl
ci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpKTsKLSAgICAgICAg
ICAgIHZhciBvcHRpb25zQ2hlY2tib3ggPSBvcHRpb25zRGF0YS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKTsKKyAgICAgICAgICAgIHZhciBvcHRpb25zQ2hlY2ti
b3ggPSB0aGlzLl9wb3BvdmVyT3B0aW9uc0NoZWNrYm94RWxlbWVudCA9IG9wdGlvbnNEYXRhLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOwogICAgICAgICAgICAg
dmFyIG9wdGlvbnNDaGVja2JveExhYmVsID0gb3B0aW9uc0RhdGEuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKSk7CiAgICAgICAgICAgICBvcHRpb25zQ2hlY2tib3gu
aWQgPSBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5Qb3BvdmVyT3B0aW9uc0F1dG9Db250aW51ZUlu
cHV0SWQ7CiAgICAgICAgICAgICBvcHRpb25zQ2hlY2tib3gudHlwZSA9ICJjaGVja2JveCI7CkBA
IC00MzUsNyArNDc0LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0gewog
ICAgICAgICB2YXIgbmV3QWN0aW9uID0gdGhpcy5jcmVhdGVBY3Rpb24oV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnQuRGVmYXVsdEJyZWFrcG9pbnRBY3Rpb25UeXBlKTsKICAgICAgICAgdmFyIG5ld0Jy
ZWFrcG9pbnRBY3Rpb25WaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50QWN0aW9uVmll
dyhuZXdBY3Rpb24sIHRoaXMpOwogICAgICAgICB0aGlzLl9wb3BvdmVyQWN0aW9uc0luc2VydEJy
ZWFrcG9pbnRBY3Rpb25WaWV3KG5ld0JyZWFrcG9pbnRBY3Rpb25WaWV3LCAtMSk7Ci0KKyAgICAg
ICAgdGhpcy5fcG9wb3Zlck9wdGlvbnNSb3dFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQuSGlkZGVuU3R5bGVDbGFzc05hbWUpOwogICAgICAgICB0aGlzLl9w
b3BvdmVyLnVwZGF0ZSgpOwogICAgIH0sCiAKQEAgLTQ2Myw2ICs1MDIsNyBAQCBXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9w
b3BvdmVyQWN0aW9uc0luc2VydEJyZWFrcG9pbnRBY3Rpb25WaWV3KG5ld0JyZWFrcG9pbnRBY3Rp
b25WaWV3LCBpbmRleCk7CisgICAgICAgIHRoaXMuX3BvcG92ZXJPcHRpb25zUm93RWxlbWVudC5j
bGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkhpZGRlblN0eWxlQ2xhc3NO
YW1lKTsKIAogICAgICAgICB0aGlzLl9wb3BvdmVyLnVwZGF0ZSgpOwogICAgIH0sCkBAIC00NzEs
OCArNTExLDExIEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICB7
CiAgICAgICAgIGJyZWFrcG9pbnRBY3Rpb25WaWV3LmVsZW1lbnQucmVtb3ZlKCk7CiAKLSAgICAg
ICAgaWYgKCF0aGlzLl9hY3Rpb25zQ29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aCkKKyAgICAgICAg
aWYgKCF0aGlzLl9hY3Rpb25zQ29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aCkgewogICAgICAgICAg
ICAgdGhpcy5fcG9wb3ZlckFjdGlvbnNDcmVhdGVBZGRBY3Rpb25CdXR0b24oKTsKKyAgICAgICAg
ICAgIHRoaXMuX3BvcG92ZXJPcHRpb25zUm93RWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50LkhpZGRlblN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIHRoaXMu
X3BvcG92ZXJPcHRpb25zQ2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSBmYWxzZTsKKyAgICAgICAg
fQogCiAgICAgICAgIHRoaXMuX3BvcG92ZXIudXBkYXRlKCk7CiAgICAgfSwKQEAgLTQ4Niw2ICs1
MjksOCBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9wb3BvdmVyID09PSBwb3BvdmVyKTsKICAgICAgICAg
ZGVsZXRlIHRoaXMuX3BvcG92ZXJDb250ZW50RWxlbWVudDsKKyAgICAgICAgZGVsZXRlIHRoaXMu
X3BvcG92ZXJPcHRpb25zUm93RWxlbWVudDsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3BvcG92ZXJP
cHRpb25zQ2hlY2tib3hFbGVtZW50OwogICAgICAgICBkZWxldGUgdGhpcy5fYWN0aW9uc0NvbnRh
aW5lcjsKICAgICAgICAgZGVsZXRlIHRoaXMuX3BvcG92ZXI7CiAgICAgfSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVu
dC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50VHJl
ZUVsZW1lbnQuY3NzCmluZGV4IGI1NTkxZjJjNGVhMmRjYjM5MjYxZDRjZmQ5ZTVkMjk1ZWU2Y2Rm
ZTIuLjhlMjgyZTdlNzUyNjEyZTc0MDE3NmY1MThhODkwMjhhMDFmZDczMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVu
dC5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2lu
dFRyZWVFbGVtZW50LmNzcwpAQCAtMzQsOCArMzQsMTIgQEAKICAgICBjb250ZW50OiB1cmwoSW1h
Z2VzL0JyZWFrcG9pbnRCdXR0b24uc3ZnKTsKIH0KIAorLml0ZW0uYnJlYWtwb2ludCAuc3RhdHVz
ID4gLnN0YXR1cy1pbWFnZS5hdXRvLWNvbnRpbnVlIHsKKyAgICBvcGFjaXR5OiAwLjY7Cit9CisK
IC5pdGVtLmJyZWFrcG9pbnQgLnN0YXR1cyA+IC5zdGF0dXMtaW1hZ2UuZGlzYWJsZWQgewotICAg
IG9wYWNpdHk6IDAuNDU7CisgICAgb3BhY2l0eTogMC4zNTsKIH0KIAogLml0ZW0uYnJlYWtwb2lu
dCAuc3VidGl0bGUuZm9ybWF0dGVkLWxvY2F0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qcwpp
bmRleCBhZGVkY2FkMzIxMGNlNzRlYWU4NjRkMzdmMDg4ZjQ3YzI4YzMxMjcwLi5kYTM5Y2RiZDk4
ODZiNmNlZWQ3NWQ4OTdjZGU4ZTNiNDUwN2M3ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50VHJlZUVsZW1lbnQuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2ludFRyZWVFbGVtZW50Lmpz
CkBAIC0zNyw2ICszNyw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQgPSBm
dW5jdGlvbihicmVha3BvaW50LCBjbGFzc05hbWUsIHRpdGxlKQogICAgIGlmICghdGl0bGUpCiAg
ICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludC5FdmVudC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5fYnJlYWtwb2ludExvY2F0aW9u
RGlkQ2hhbmdlLCB0aGlzKTsKICAgICB0aGlzLl9icmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuRGlzYWJsZWRTdGF0ZURpZENoYW5nZSwgdGhp
cy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKKyAgICB0aGlzLl9icmVha3BvaW50LmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuQXV0b0NvbnRpbnVlRGlkQ2hhbmdl
LCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOwogICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5SZXNvbHZlZFN0YXRlRGlk
Q2hhbmdlLCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOwogCiAgICAgdGhpcy5fc3RhdHVzSW1h
Z2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CkBAIC01Niw2ICs1Nyw3
IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuR2VuZXJpY0xpbmVJY29uU3R5
bGVDbGFzc05hbWUgPSAiYnJlYWtwb2ludC1nCiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVF
bGVtZW50LlN0eWxlQ2xhc3NOYW1lID0gImJyZWFrcG9pbnQiOwogV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFnZUVsZW1lbnRTdHlsZUNsYXNzTmFtZSA9ICJzdGF0
dXMtaW1hZ2UiOwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFn
ZVJlc29sdmVkU3R5bGVDbGFzc05hbWUgPSAicmVzb2x2ZWQiOworV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFnZUF1dG9Db250aW51ZVN0eWxlQ2xhc3NOYW1lID0g
ImF1dG8tY29udGludWUiOwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5TdGF0
dXNJbWFnZURpc2FibGVkU3R5bGVDbGFzc05hbWUgPSAiZGlzYWJsZWQiOwogV2ViSW5zcGVjdG9y
LkJyZWFrcG9pbnRUcmVlRWxlbWVudC5Gb3JtYXR0ZWRMb2NhdGlvblN0eWxlQ2xhc3NOYW1lID0g
ImZvcm1hdHRlZC1sb2NhdGlvbiI7CiAKQEAgLTgwLDEzICs4MiwxMyBAQCBXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgIG9uZW50ZXI6IGZ1bmN0
aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuZGlzYWJsZWQgPSAhdGhpcy5f
YnJlYWtwb2ludC5kaXNhYmxlZDsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludC5jeWNsZVRvTmV4
dE1vZGUoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAogICAgIG9uc3BhY2U6IGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuZGlzYWJsZWQgPSAhdGhp
cy5fYnJlYWtwb2ludC5kaXNhYmxlZDsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludC5jeWNsZVRv
TmV4dE1vZGUoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIApAQCAtMTI5LDYgKzEz
MSwxMSBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpcy5fc3RhdHVzSW1hZ2VFbGVtZW50LmNsYXNz
TGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFn
ZURpc2FibGVkU3R5bGVDbGFzc05hbWUpOwogCisgICAgICAgIGlmICh0aGlzLl9icmVha3BvaW50
LmF1dG9Db250aW51ZSkKKyAgICAgICAgICAgIHRoaXMuX3N0YXR1c0ltYWdlRWxlbWVudC5jbGFz
c0xpc3QuYWRkKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuU3RhdHVzSW1hZ2VB
dXRvQ29udGludWVTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRo
aXMuX3N0YXR1c0ltYWdlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50VHJlZUVsZW1lbnQuU3RhdHVzSW1hZ2VBdXRvQ29udGludWVTdHlsZUNsYXNzTmFtZSk7
CisKICAgICAgICAgaWYgKHRoaXMuX2JyZWFrcG9pbnQucmVzb2x2ZWQpCiAgICAgICAgICAgICB0
aGlzLl9zdGF0dXNJbWFnZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludFRyZWVFbGVtZW50LlN0YXR1c0ltYWdlUmVzb2x2ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAg
ICAgIGVsc2UKQEAgLTE0Myw2ICsxNTAsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVF
bGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKGV2ZW50LmRhdGEub2xkRGlzcGxheVNv
dXJjZUNvZGUgPT09IHRoaXMuX2JyZWFrcG9pbnQuZGlzcGxheVNvdXJjZUNvZGUpIHsKICAgICAg
ICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludC5FdmVudC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5fYnJlYWtwb2ludExvY2F0aW9u
RGlkQ2hhbmdlLCB0aGlzKTsKICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5EaXNhYmxlZFN0YXRlRGlkQ2hh
bmdlLCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fYnJlYWtw
b2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkF1dG9D
b250aW51ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKICAgICAgICAgICAg
IHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dC5FdmVudC5SZXNvbHZlZFN0YXRlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xNTgsNyArMTY2LDcgQEAgV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBfc3Rh
dHVzSW1hZ2VFbGVtZW50Q2xpY2tlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB0
aGlzLl9icmVha3BvaW50LmRpc2FibGVkID0gIXRoaXMuX2JyZWFrcG9pbnQuZGlzYWJsZWQ7Cisg
ICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuY3ljbGVUb05leHRNb2RlKCk7CiAgICAgfQogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvU291cmNlQ29k
ZVRleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Tb3Vy
Y2VDb2RlVGV4dEVkaXRvci5qcwppbmRleCBhZWFmZDNkNWQ4OWZiNDM0NDQxMTY1MDI4NWM2NDRj
NTU0M2I3NTM4Li43Y2IzNTRiZGY1M2EwN2U1YmRkZTY5NDJlMmZiMGVmZmViYTZjMzg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4
dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Tb3Vy
Y2VDb2RlVGV4dEVkaXRvci5qcwpAQCAtNDMsNiArNDMsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNl
Q29kZVRleHRFZGl0b3IgPSBmdW5jdGlvbihzb3VyY2VDb2RlKQogCiAgICAgaWYgKHRoaXMuX3N1
cHBvcnRzRGVidWdnaW5nKSB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuRGlzYWJsZWRTdGF0ZURp
ZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2ludFN0YXR1cywgdGhpcyk7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnQuRXZlbnQuQXV0b0NvbnRpbnVlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVCcmVha3BvaW50
U3RhdHVzLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5SZXNvbHZlZFN0YXRlRGlkQ2hh
bmdlLCB0aGlzLl91cGRhdGVCcmVha3BvaW50U3RhdHVzLCB0aGlzKTsKICAgICAgICAgV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dC5FdmVudC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2ludExvY2F0aW9u
LCB0aGlzKTsKIApAQCAtMTEyLDYgKzExMyw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4
dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBpZiAodGhpcy5fc3VwcG9ydHNE
ZWJ1Z2dpbmcpIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnJlbW92ZUV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuRGlzYWJsZWRTdGF0ZURp
ZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2ludFN0YXR1cywgdGhpcyk7CisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50LkV2ZW50LkF1dG9Db250aW51ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJl
YWtwb2ludFN0YXR1cywgdGhpcyk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LlJlc29s
dmVkU3RhdGVEaWRDaGFuZ2UsIHRoaXMuX3VwZGF0ZUJyZWFrcG9pbnRTdGF0dXMsIHRoaXMpOwog
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5fdXBk
YXRlQnJlYWtwb2ludExvY2F0aW9uLCB0aGlzKTsKIApAQCAtNzEwLDcgKzcxMiw3IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAKICAgICBfYnJlYWtw
b2ludEluZm9Gb3JCcmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHtyZXNvbHZlZDogYnJlYWtwb2ludC5yZXNvbHZlZCwgZGlzYWJsZWQ6IGJyZWFr
cG9pbnQuZGlzYWJsZWR9OworICAgICAgICByZXR1cm4ge3Jlc29sdmVkOiBicmVha3BvaW50LnJl
c29sdmVkLCBkaXNhYmxlZDogYnJlYWtwb2ludC5kaXNhYmxlZCwgYXV0b0NvbnRpbnVlOiBicmVh
a3BvaW50LmF1dG9Db250aW51ZX07CiAgICAgfSwKIAogICAgIGdldCBfc3VwcG9ydHNEZWJ1Z2dp
bmcoKQpAQCAtOTA4LDcgKzkxMCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRv
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLnVwZGF0ZUJyZWFrcG9pbnRMaW5lQW5k
Q29sdW1uKG5ld0xpbmVJbmZvLmxpbmVOdW1iZXIsIG5ld0xpbmVJbmZvLmNvbHVtbk51bWJlciwg
YWNjdXJhdGVOZXdMaW5lSW5mby5saW5lTnVtYmVyLCBhY2N1cmF0ZU5ld0xpbmVJbmZvLmNvbHVt
bk51bWJlcik7CiAgICAgfSwKIAotICAgIHRleHRFZGl0b3JCcmVha3BvaW50VG9nZ2xlZDogZnVu
Y3Rpb24odGV4dEVkaXRvciwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBkaXNhYmxlZCkKKyAg
ICB0ZXh0RWRpdG9yQnJlYWtwb2ludENsaWNrZWQ6IGZ1bmN0aW9uKHRleHRFZGl0b3IsIGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlcikKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
X3N1cHBvcnRzRGVidWdnaW5nKTsKICAgICAgICAgaWYgKCF0aGlzLl9zdXBwb3J0c0RlYnVnZ2lu
ZykKQEAgLTkxOSw3ICs5MjEsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3Iu
cHJvdG90eXBlID0gewogICAgICAgICBpZiAoIWJyZWFrcG9pbnQpCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgYnJlYWtwb2ludC5kaXNhYmxlZCA9IGRpc2FibGVkOworICAgICAgICBi
cmVha3BvaW50LmN5Y2xlVG9OZXh0TW9kZSgpOwogICAgIH0sCiAKICAgICB0ZXh0RWRpdG9yVXBk
YXRlZEZvcm1hdHRpbmc6IGZ1bmN0aW9uKHRleHRFZGl0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRFZGl0b3IuY3NzCmluZGV4IGM5ZGZiYjQzOWQ3
MjNmMDNjYjkyZDY5OGRiOGRlMzdmMmZiZGY5N2UuLmE2NWFlYTMwNmE1OGNjY2Y4ZTFjYzEyNmJl
NDg0ZTUxYWMzZDNhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1RleHRFZGl0b3IuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1RleHRFZGl0b3IuY3NzCkBAIC02Niw2ICs2NiwxMCBAQAogICAgIGJvcmRlci1pbWFn
ZS1zb3VyY2U6IC13ZWJraXQtaW1hZ2Utc2V0KHVybChJbWFnZXMvQnJlYWtwb2ludC5wbmcpIDF4
LCB1cmwoSW1hZ2VzL0JyZWFrcG9pbnRAMngucG5nKSAyeCk7CiB9CiAKKy50ZXh0LWVkaXRvciA+
IC5Db2RlTWlycm9yIC5icmVha3BvaW50LWF1dG8tY29udGludWU6bm90KC5icmVha3BvaW50LWRp
c2FibGVkKSAuQ29kZU1pcnJvci1saW5lbnVtYmVyOjpiZWZvcmUgeworICAgIG9wYWNpdHk6IDAu
NjsKK30KKwogLnRleHQtZWRpdG9yID4gLkNvZGVNaXJyb3IgLmJyZWFrcG9pbnQtZGlzYWJsZWQg
LkNvZGVNaXJyb3ItbGluZW51bWJlcjo6YmVmb3JlIHsKICAgICBvcGFjaXR5OiAwLjM1OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRv
ci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRFZGl0b3IuanMK
aW5kZXggOGMwYTVhOGVlZTIwNTkxNzBmMjczNGI0YTE5MDUwNmQ2NGE2NGI3ZS4uMGU5MmViMTA4
NDliODg4MzFmOTdlMWY2NTYwYWU4NDZlNGI3MDhkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmpzCkBAIC03Niw2ICs3Niw3IEBAIFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yLkhpZ2hsaWdodGVkU3R5bGVDbGFzc05hbWUgPSAiaGlnaGxp
Z2h0ZWQiOwogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuU2VhcmNoUmVzdWx0U3R5bGVDbGFzc05h
bWUgPSAic2VhcmNoLXJlc3VsdCI7CiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5IYXNCcmVha3Bv
aW50U3R5bGVDbGFzc05hbWUgPSAiaGFzLWJyZWFrcG9pbnQiOwogV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3IuQnJlYWtwb2ludFJlc29sdmVkU3R5bGVDbGFzc05hbWUgPSAiYnJlYWtwb2ludC1yZXNv
bHZlZCI7CitXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50QXV0b0NvbnRpbnVlU3R5
bGVDbGFzc05hbWUgPSAiYnJlYWtwb2ludC1hdXRvLWNvbnRpbnVlIjsKIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yLkJyZWFrcG9pbnREaXNhYmxlZFN0eWxlQ2xhc3NOYW1lID0gImJyZWFrcG9pbnQt
ZGlzYWJsZWQiOwogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuTXVsdGlwbGVCcmVha3BvaW50c1N0
eWxlQ2xhc3NOYW1lID0gIm11bHRpcGxlLWJyZWFrcG9pbnRzIjsKIFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yLkV4ZWN1dGlvbkxpbmVTdHlsZUNsYXNzTmFtZSA9ICJleGVjdXRpb24tbGluZSI7CkBA
IC05MDYsNiArOTA3LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewog
CiAgICAgICAgIHZhciBhbGxEaXNhYmxlZCA9IHRydWU7CiAgICAgICAgIHZhciBhbGxSZXNvbHZl
ZCA9IHRydWU7CisgICAgICAgIHZhciBhbGxBdXRvQ29udGludWUgPSB0cnVlOwogICAgICAgICB2
YXIgbXVsdGlwbGUgPSBPYmplY3Qua2V5cyhjb2x1bW5CcmVha3BvaW50cykubGVuZ3RoID4gMTsK
ICAgICAgICAgZm9yICh2YXIgY29sdW1uTnVtYmVyIGluIGNvbHVtbkJyZWFrcG9pbnRzKSB7CiAg
ICAgICAgICAgICB2YXIgYnJlYWtwb2ludEluZm8gPSBjb2x1bW5CcmVha3BvaW50c1tjb2x1bW5O
dW1iZXJdOwpAQCAtOTEzLDYgKzkxNSw4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICBhbGxEaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAg
ICAgaWYgKCFicmVha3BvaW50SW5mby5yZXNvbHZlZCkKICAgICAgICAgICAgICAgICBhbGxSZXNv
bHZlZCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKCFicmVha3BvaW50SW5mby5hdXRvQ29udGlu
dWUpCisgICAgICAgICAgICAgICAgYWxsQXV0b0NvbnRpbnVlID0gZmFsc2U7CiAgICAgICAgIH0K
IAogICAgICAgICBmdW5jdGlvbiB1cGRhdGVTdHlsZXMoKQpAQCAtOTM1LDYgKzkzOSwxMSBAQCBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZW1vdmVMaW5lQ2xhc3MobGluZUhhbmRs
ZSwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50RGlzYWJsZWRTdHls
ZUNsYXNzTmFtZSk7CiAKKyAgICAgICAgICAgIGlmIChhbGxBdXRvQ29udGludWUpCisgICAgICAg
ICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5hZGRMaW5lQ2xhc3MobGluZUhhbmRsZSwgIndyYXAi
LCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50QXV0b0NvbnRpbnVlU3R5bGVDbGFz
c05hbWUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRoaXMuX2NvZGVNaXJy
b3IucmVtb3ZlTGluZUNsYXNzKGxpbmVIYW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3IuQnJlYWtwb2ludEF1dG9Db250aW51ZVN0eWxlQ2xhc3NOYW1lKTsKKwogICAgICAgICAg
ICAgaWYgKG11bHRpcGxlKQogICAgICAgICAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3IuYWRkTGlu
ZUNsYXNzKGxpbmVIYW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuTXVsdGlw
bGVCcmVha3BvaW50c1N0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTk3NSw2
ICs5ODQsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICB0aGlzLl9jb2RlTWlycm9yLnJlbW92ZUxpbmVDbGFzcyhsaW5lSGFuZGxlLCAid3JhcCIs
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkhhc0JyZWFrcG9pbnRTdHlsZUNsYXNzTmFtZSk7CiAg
ICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnJlbW92ZUxpbmVDbGFzcyhsaW5lSGFuZGxlLCAi
d3JhcCIsIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkJyZWFrcG9pbnRSZXNvbHZlZFN0eWxlQ2xh
c3NOYW1lKTsKICAgICAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3IucmVtb3ZlTGluZUNsYXNzKGxp
bmVIYW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuQnJlYWtwb2ludERpc2Fi
bGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZW1vdmVM
aW5lQ2xhc3MobGluZUhhbmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVh
a3BvaW50QXV0b0NvbnRpbnVlU3R5bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgdGhpcy5fY29k
ZU1pcnJvci5yZW1vdmVMaW5lQ2xhc3MobGluZUhhbmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvci5NdWx0aXBsZUJyZWFrcG9pbnRzU3R5bGVDbGFzc05hbWUpOwogICAgICAgICB9
CiAKQEAgLTExMTYsNyArMTEyNiw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwg
dGhpcy5fZG9jdW1lbnRNb3VzZU1vdmVkRXZlbnRMaXN0ZW5lciwgdHJ1ZSk7CiAgICAgICAgIGRv
Y3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzLl9kb2N1bWVudE1vdXNl
VXBFdmVudExpc3RlbmVyLCB0cnVlKTsKIAotICAgICAgICBjb25zdCBkZWxlZ2F0ZUltcGxlbWVu
dHNCcmVha3BvaW50VG9nZ2xlZCA9IHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxl
Z2F0ZS50ZXh0RWRpdG9yQnJlYWtwb2ludFRvZ2dsZWQgPT09ICJmdW5jdGlvbiI7CisgICAgICAg
IGNvbnN0IGRlbGVnYXRlSW1wbGVtZW50c0JyZWFrcG9pbnRDbGlja2VkID0gdGhpcy5fZGVsZWdh
dGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLnRleHRFZGl0b3JCcmVha3BvaW50Q2xpY2tlZCA9
PT0gImZ1bmN0aW9uIjsKICAgICAgICAgY29uc3QgZGVsZWdhdGVJbXBsZW1lbnRzQnJlYWtwb2lu
dFJlbW92ZWQgPSB0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUudGV4dEVk
aXRvckJyZWFrcG9pbnRSZW1vdmVkID09PSAiZnVuY3Rpb24iOwogICAgICAgICBjb25zdCBkZWxl
Z2F0ZUltcGxlbWVudHNCcmVha3BvaW50TW92ZWQgPSB0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2Yg
dGhpcy5fZGVsZWdhdGUudGV4dEVkaXRvckJyZWFrcG9pbnRNb3ZlZCA9PT0gImZ1bmN0aW9uIjsK
IApAQCAtMTE1MiwxMSArMTE2Miw4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIC8vIFRvZ2dsZSB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGJy
ZWFrcG9pbnQuCiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9saW5lTnVtYmVyV2l0
aE1vdXNlZERvd25CcmVha3BvaW50IGluIHRoaXMuX2JyZWFrcG9pbnRzKTsKICAgICAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NvbHVtbk51bWJlcldpdGhNb3VzZWREb3duQnJlYWtwb2lu
dCBpbiB0aGlzLl9icmVha3BvaW50c1t0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVh
a3BvaW50XSk7Ci0gICAgICAgICAgICBpZiAodGhpcy5fbGluZU51bWJlcldpdGhNb3VzZWREb3du
QnJlYWtwb2ludCBpbiB0aGlzLl9icmVha3BvaW50cyAmJiB0aGlzLl9jb2x1bW5OdW1iZXJXaXRo
TW91c2VkRG93bkJyZWFrcG9pbnQgaW4gdGhpcy5fYnJlYWtwb2ludHNbdGhpcy5fbGluZU51bWJl
cldpdGhNb3VzZWREb3duQnJlYWtwb2ludF0gJiYgZGVsZWdhdGVJbXBsZW1lbnRzQnJlYWtwb2lu
dFRvZ2dsZWQpIHsKLSAgICAgICAgICAgICAgICB2YXIgZGlzYWJsZWQgPSB0aGlzLl9jb2RlTWly
cm9yLnRvZ2dsZUxpbmVDbGFzcyh0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3Bv
aW50LCAid3JhcCIsIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkJyZWFrcG9pbnREaXNhYmxlZFN0
eWxlQ2xhc3NOYW1lKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50c1t0aGlzLl9s
aW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50XVt0aGlzLl9jb2x1bW5OdW1iZXJXaXRo
TW91c2VkRG93bkJyZWFrcG9pbnRdLmRpc2FibGVkID0gZGlzYWJsZWQ7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5fZGVsZWdhdGUudGV4dEVkaXRvckJyZWFrcG9pbnRUb2dnbGVkKHRoaXMsIHRoaXMu
X2xpbmVOdW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnQsIHRoaXMuX2NvbHVtbk51bWJlcldp
dGhNb3VzZWREb3duQnJlYWtwb2ludCwgZGlzYWJsZWQpOwotICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaWYgKHRoaXMuX2xpbmVOdW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnQgaW4gdGhp
cy5fYnJlYWtwb2ludHMgJiYgdGhpcy5fY29sdW1uTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3Bv
aW50IGluIHRoaXMuX2JyZWFrcG9pbnRzW3RoaXMuX2xpbmVOdW1iZXJXaXRoTW91c2VkRG93bkJy
ZWFrcG9pbnRdICYmIGRlbGVnYXRlSW1wbGVtZW50c0JyZWFrcG9pbnRDbGlja2VkKQorICAgICAg
ICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnRleHRFZGl0b3JCcmVha3BvaW50Q2xpY2tlZCh0aGlz
LCB0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50LCB0aGlzLl9jb2x1bW5O
dW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnQpOwogICAgICAgICB9CiAKICAgICAgICAgZGVs
ZXRlIHRoaXMuX2RvY3VtZW50TW91c2VNb3ZlZEV2ZW50TGlzdGVuZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220898</attachid>
            <date>2014-01-10 15:30:51 -0800</date>
            <delta_ts>2014-01-10 15:44:56 -0800</delta_ts>
            <desc>v3 retry cq</desc>
            <filename>bug-126669-20140110153050.patch</filename>
            <type>text/plain</type>
            <size>23515</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNjc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBj
YWIyYmEyNTMxOGJmYmY4MjBmMWZkYWNlM2QyNDQwNDQzMmJmOGU2Li43MzNjMmY1NDRkZTIwNDFk
NmQzYzBmNjRmYjRkOTM5ZTMwY2E0MTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAxNC0wMS0xMCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjeWNsZSBjbGlja2VkIGJyZWFrcG9pbnRzIGJldHdlZW4g
ZW5hYmxlZCwgYXV0by1jb250aW51ZSwgYW5kIGRpc2FibGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY2NjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgSXQncyB0aW1lLWNvbnN1bWluZyB0byBjaGFu
Z2UgYSBicmVha3BvaW50J3MgYXV0by1jb250aW51ZSBzZXR0aW5nIHRocm91Z2ggdGhlCisgICAg
ICAgIGJyZWFrcG9pbnQgZWRpdG9yIHBvcHVwLiBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIHVzZXIg
dG8gdG9nZ2xlIGJldHdlZW4gZW5hYmxlZCwKKyAgICAgICAgYXV0by1jb250aW51ZSwgYW5kIGRp
c2FibGVkIGJ5IGNsaWNraW5nIG9uIHRoZSBicmVha3BvaW50IHdlZGdlIGluIHRoZSBzaWRlYmFy
CisgICAgICAgIHRyZWUgYW5kIGluIHRoZSBzb3VyY2UgdGV4dCBlZGl0b3IgZ3V0dGVyLiBUaGUg
YXV0by1jb250aW51ZSBvcHRpb24gaXMgb25seQorICAgICAgICBjeWNsZWQgd2hlbiB0aGUgYnJl
YWtwb2ludCBoYXMgYXNzb2NpYXRlZCBhY3Rpb25zLgorCisgICAgICAgIENsZWFuIHVwIHRoZSBi
cmVha3BvaW50IGVkaXRvciBkaWFsb2cgc28gaXQgaGlkZXMgaXJyZWxldmFudCBvcHRpb25zIHdo
ZW4KKyAgICAgICAgbm8gYnJlYWtwb2ludCBhY3Rpb25zIGhhdmUgYmVlbiBhZGRlZC4KKworICAg
ICAgICBBdXRvbWF0aWNhbGx5IHVuc2V0IGF1dG8tY29udGludWUgd2hlbiB0aGUgbGFzdCBicmVh
a3BvaW50IGFjdGlvbiBpcyByZW1vdmVkLgorCisgICAgICAgIFJlbmFtZSB0aGUgZGVsZWdhdGUg
dGV4dEVkaXRvckJyZWFrcG9pbnRUb2dnbGVkIHRvIHRleHRFZGl0b3JCcmVha3BvaW50Q2xpY2tl
ZCwgc2luY2UKKyAgICAgICAgdGhlIGJlaGF2aW9yIG9mIHRoZSBjbGljayBkZXBlbmRzIG9uIGJy
ZWFrcG9pbnQgc3RhdGUgbm90IGF2YWlsYWJsZSBpbiB0aGUgdGV4dCBlZGl0b3IuCisKKyAgICAg
ICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9CcmVha3BvaW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnQucHJvdG90eXBlLmN5Y2xlVG9OZXh0TW9kZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLnRvZ2dsZUF1dG9Db250aW51ZSk6IEFkZGVk
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLmFwcGVuZENvbnRl
eHRNZW51SXRlbXMpOiBBZGQgYXV0by1jb250aW51ZSBvcHRpb25zLgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLnJlbW92ZUFjdGlvbik6CisKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZS5fZWRpdEJyZWFrcG9pbnRQb3BvdmVyQ29u
dGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBl
Ll9wb3BvdmVyQWN0aW9uc0FkZEFjdGlvbkJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlLmJyZWFrcG9pbnRBY3Rpb25WaWV3QXBwZW5kQWN0
aW9uVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUuYnJl
YWtwb2ludEFjdGlvblZpZXdSZW1vdmVBY3Rpb25WaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50LnByb3RvdHlwZS53aWxsRGlzbWlzc1BvcG92ZXIpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvQnJlYWtwb2ludFRyZWVFbGVtZW50LmNzczoKKyAgICAgICAgKC5pdGVtLmJy
ZWFrcG9pbnQgLnN0YXR1cyA+IC5zdGF0dXMtaW1hZ2UuYXV0by1jb250aW51ZSk6CisgICAgICAg
ICguaXRlbS5icmVha3BvaW50IC5zdGF0dXMgPiAuc3RhdHVzLWltYWdlLmRpc2FibGVkKToKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUub25lbnRlcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNwYWNlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQucHJvdG90eXBlLl91cGRh
dGVTdGF0dXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5w
cm90b3R5cGUuX2JyZWFrcG9pbnRMb2NhdGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhdHVzSW1hZ2VFbGVtZW50
Q2xpY2tlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4dEVkaXRvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlLmNsb3NlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUuX2JyZWFr
cG9pbnRJbmZvRm9yQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlQ29k
ZVRleHRFZGl0b3IucHJvdG90eXBlLnRleHRFZGl0b3JCcmVha3BvaW50Q2xpY2tlZCk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmNzczoKKyAgICAgICAgKC50ZXh0LWVkaXRv
ciA+IC5Db2RlTWlycm9yIC5icmVha3BvaW50LWF1dG8tY29udGludWU6bm90KC5icmVha3BvaW50
LWRpc2FibGVkKSAuQ29kZU1pcnJvci1saW5lbnVtYmVyOjpiZWZvcmUpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRp
dG9yLnByb3RvdHlwZS5fc2V0QnJlYWtwb2ludFN0eWxlc09uTGluZS51cGRhdGVTdHlsZXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl9zZXRCcmVha3BvaW50
U3R5bGVzT25MaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlw
ZS51cGRhdGVTdHlsZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90
eXBlLl9yZW1vdmVCcmVha3BvaW50RnJvbUxpbmVBbmRDb2x1bW4pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl9kb2N1bWVudE1vdXNlVXApOgorCiAyMDE0LTAx
LTEwICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVh
biB1cCBzb21lIGFyZWFzIG9mIFRyZWVPdXRsaW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2ludC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnQuanMKaW5kZXggYTJhMDgxOTNlNTYzMmQwOWJk
NGI1NmU1ZGQwZDY0NDU1MjA2OWFhMC4uMjkwNzNkOTExZGRlM2E1NGIzODAzMjFiNTNjMDg2MWU3
OGE2ZDYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QnJlYWtwb2ludC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
cmVha3BvaW50LmpzCkBAIC02Niw2ICs2Niw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LlBv
cG92ZXJDbGFzc05hbWUgPSAiZWRpdC1icmVha3BvaW50LXBvcG92ZXItY29udGVudCI7CiBXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludC5XaWRlUG9wb3ZlckNsYXNzTmFtZSA9ICJ3aWRlIjsKIFdlYklu
c3BlY3Rvci5CcmVha3BvaW50LlBvcG92ZXJDb25kaXRpb25JbnB1dElkID0gImVkaXQtYnJlYWtw
b2ludC1wb3BvdmVyLWNvbmRpdGlvbiI7CiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5Qb3BvdmVy
T3B0aW9uc0F1dG9Db250aW51ZUlucHV0SWQgPSAiZWRpdC1icmVha3BvaW50LXBvcG9vdmVyLWF1
dG8tY29udGludWUiOworV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuSGlkZGVuU3R5bGVDbGFzc05h
bWUgPSAiaGlkZGVuIjsKIAogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRGVmYXVsdEJyZWFrcG9p
bnRBY3Rpb25UeXBlID0gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRBY3Rpb24uVHlwZS5Mb2c7CiAK
QEAgLTIwMiw2ICsyMDMsMjggQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0g
ewogICAgICAgICB9OwogICAgIH0sCiAKKyAgICBjeWNsZVRvTmV4dE1vZGU6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7CisgICAgICAgICAgICAvLyBXaGVu
IGN5Y2xpbmcsIGNsZWFyIGF1dG8tY29udGludWUgd2hlbiBnb2luZyBmcm9tIGRpc2FibGVkIHRv
IGVuYWJsZWQuCisgICAgICAgICAgICB0aGlzLmF1dG9Db250aW51ZSA9IGZhbHNlOworICAgICAg
ICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKHRoaXMuYXV0b0NvbnRpbnVlKSB7CisgICAgICAgICAgICB0aGlz
LmRpc2FibGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICh0aGlzLmFjdGlvbnMubGVuZ3RoKSB7CisgICAgICAgICAgICB0aGlzLmF1dG9Db250
aW51ZSA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0
aGlzLmRpc2FibGVkID0gdHJ1ZTsKKyAgICB9LAorCiAgICAgYXBwZW5kQ29udGV4dE1lbnVJdGVt
czogZnVuY3Rpb24oY29udGV4dE1lbnUsIGJyZWFrcG9pbnREaXNwbGF5RWxlbWVudCkKICAgICB7
CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvY3VtZW50LmJvZHkuY29udGFpbnMoYnJlYWtwb2lu
dERpc3BsYXlFbGVtZW50KSwgImJyZWFrcG9pbnQgcG9wb3ZlciBkaXNwbGF5IGVsZW1lbnQgbXVz
dCBiZSBpbiB0aGUgRE9NIik7CkBAIC0yMjMsNiArMjQ2LDExIEBAIFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSAhdGhpcy5k
aXNhYmxlZDsKICAgICAgICAgfQogCisgICAgICAgIGZ1bmN0aW9uIHRvZ2dsZUF1dG9Db250aW51
ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuYXV0b0NvbnRpbnVlID0gIXRoaXMuYXV0
b0NvbnRpbnVlOworICAgICAgICB9CisKICAgICAgICAgZnVuY3Rpb24gcmV2ZWFsT3JpZ2luYWxT
b3VyY2VDb2RlTG9jYXRpb24oKQogICAgICAgICB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VTaWRlYmFyUGFuZWwuc2hvd09yaWdpbmFsT3JGb3JtYXR0ZWRTb3VyY2VDb2RlTG9j
YXRpb24odGhpcy5fc291cmNlQ29kZUxvY2F0aW9uKTsKQEAgLTIzMSwxMCArMjU5LDE2IEBAIFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIuaXNCcmVha3BvaW50RWRpdGFibGUodGhpcykpCiAgICAgICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRWRpdCBC
cmVha3BvaW504oCmIiksIGVkaXRCcmVha3BvaW50LmJpbmQodGhpcykpOwogCi0gICAgICAgIGlm
ICh0aGlzLl9kaXNhYmxlZCkKLSAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJFbmFibGUgQnJlYWtwb2ludCIpLCB0b2dnbGVCcmVha3BvaW50
LmJpbmQodGhpcykpOwotICAgICAgICBlbHNlCisgICAgICAgIGlmICh0aGlzLmF1dG9Db250aW51
ZSAmJiAhdGhpcy5kaXNhYmxlZCkgeworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRl
bShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRpc2FibGUgQnJlYWtwb2ludCIpLCB0b2dnbGVCcmVh
a3BvaW50LmJpbmQodGhpcykpOworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhbmNlbCBBdXRvbWF0aWMgQ29udGludWUiKSwgdG9nZ2xl
QXV0b0NvbnRpbnVlLmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmRpc2Fi
bGVkKQogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkRpc2FibGUgQnJlYWtwb2ludCIpLCB0b2dnbGVCcmVha3BvaW50LmJpbmQodGhpcykp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYklu
c3BlY3Rvci5VSVN0cmluZygiRW5hYmxlIEJyZWFrcG9pbnQiKSwgdG9nZ2xlQnJlYWtwb2ludC5i
aW5kKHRoaXMpKTsKKworICAgICAgICBpZiAoIXRoaXMuYXV0b0NvbnRpbnVlICYmICF0aGlzLmRp
c2FibGVkICYmIHRoaXMuYWN0aW9ucy5sZW5ndGgpCisgICAgICAgICAgICBjb250ZXh0TWVudS5h
cHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2V0IHRvIEF1dG9tYXRpY2FsbHkgQ29u
dGludWUiKSwgdG9nZ2xlQXV0b0NvbnRpbnVlLmJpbmQodGhpcykpOwogCiAgICAgICAgIGlmIChX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmlzQnJlYWtwb2ludFJlbW92YWJsZSh0aGlzKSkg
ewogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CkBAIC0yOTIsNiAr
MzI2LDkgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0gewogCiAgICAgICAg
IHRoaXMuX2FjdGlvbnMuc3BsaWNlKGluZGV4LCAxKTsKIAorICAgICAgICBpZiAoIXRoaXMuX2Fj
dGlvbnMubGVuZ3RoKQorICAgICAgICAgICAgdGhpcy5hdXRvQ29udGludWUgPSBmYWxzZTsKKwog
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludC5FdmVudC5BY3Rpb25zRGlkQ2hhbmdlKTsKICAgICB9LAogCkBAIC0zOTYsMTEgKzQzMywx
MyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICB2YXIgb3B0aW9uc1JvdyA9IHRhYmxl
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIikpOworICAgICAgICAgICAg
dmFyIG9wdGlvbnNSb3cgPSB0aGlzLl9wb3BvdmVyT3B0aW9uc1Jvd0VsZW1lbnQgPSB0YWJsZS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpKTsKKyAgICAgICAgICAgIGlm
ICghdGhpcy5fYWN0aW9ucy5sZW5ndGgpCisgICAgICAgICAgICAgICAgb3B0aW9uc1Jvdy5jbGFz
c0xpc3QuYWRkKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkhpZGRlblN0eWxlQ2xhc3NOYW1lKTsK
ICAgICAgICAgICAgIHZhciBvcHRpb25zSGVhZGVyID0gb3B0aW9uc1Jvdy5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpKTsKICAgICAgICAgICAgIHZhciBvcHRpb25zRGF0
YSA9IG9wdGlvbnNSb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKSk7
CiAgICAgICAgICAgICB2YXIgb3B0aW9uc0xhYmVsID0gb3B0aW9uc0hlYWRlci5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpKTsKLSAgICAgICAgICAgIHZhciBvcHRp
b25zQ2hlY2tib3ggPSBvcHRpb25zRGF0YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbnB1dCIpKTsKKyAgICAgICAgICAgIHZhciBvcHRpb25zQ2hlY2tib3ggPSB0aGlzLl9w
b3BvdmVyT3B0aW9uc0NoZWNrYm94RWxlbWVudCA9IG9wdGlvbnNEYXRhLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOwogICAgICAgICAgICAgdmFyIG9wdGlvbnND
aGVja2JveExhYmVsID0gb3B0aW9uc0RhdGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgibGFiZWwiKSk7CiAgICAgICAgICAgICBvcHRpb25zQ2hlY2tib3guaWQgPSBXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludC5Qb3BvdmVyT3B0aW9uc0F1dG9Db250aW51ZUlucHV0SWQ7CiAgICAg
ICAgICAgICBvcHRpb25zQ2hlY2tib3gudHlwZSA9ICJjaGVja2JveCI7CkBAIC00MzUsNyArNDc0
LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJvdG90eXBlID0gewogICAgICAgICB2YXIg
bmV3QWN0aW9uID0gdGhpcy5jcmVhdGVBY3Rpb24oV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRGVm
YXVsdEJyZWFrcG9pbnRBY3Rpb25UeXBlKTsKICAgICAgICAgdmFyIG5ld0JyZWFrcG9pbnRBY3Rp
b25WaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50QWN0aW9uVmlldyhuZXdBY3Rpb24s
IHRoaXMpOwogICAgICAgICB0aGlzLl9wb3BvdmVyQWN0aW9uc0luc2VydEJyZWFrcG9pbnRBY3Rp
b25WaWV3KG5ld0JyZWFrcG9pbnRBY3Rpb25WaWV3LCAtMSk7Ci0KKyAgICAgICAgdGhpcy5fcG9w
b3Zlck9wdGlvbnNSb3dFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnQuSGlkZGVuU3R5bGVDbGFzc05hbWUpOwogICAgICAgICB0aGlzLl9wb3BvdmVyLnVwZGF0
ZSgpOwogICAgIH0sCiAKQEAgLTQ2Myw2ICs1MDIsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9wb3BvdmVyQWN0aW9u
c0luc2VydEJyZWFrcG9pbnRBY3Rpb25WaWV3KG5ld0JyZWFrcG9pbnRBY3Rpb25WaWV3LCBpbmRl
eCk7CisgICAgICAgIHRoaXMuX3BvcG92ZXJPcHRpb25zUm93RWxlbWVudC5jbGFzc0xpc3QucmVt
b3ZlKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkhpZGRlblN0eWxlQ2xhc3NOYW1lKTsKIAogICAg
ICAgICB0aGlzLl9wb3BvdmVyLnVwZGF0ZSgpOwogICAgIH0sCkBAIC00NzEsOCArNTExLDExIEBA
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGJy
ZWFrcG9pbnRBY3Rpb25WaWV3LmVsZW1lbnQucmVtb3ZlKCk7CiAKLSAgICAgICAgaWYgKCF0aGlz
Ll9hY3Rpb25zQ29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aCkKKyAgICAgICAgaWYgKCF0aGlzLl9h
Y3Rpb25zQ29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aCkgewogICAgICAgICAgICAgdGhpcy5fcG9w
b3ZlckFjdGlvbnNDcmVhdGVBZGRBY3Rpb25CdXR0b24oKTsKKyAgICAgICAgICAgIHRoaXMuX3Bv
cG92ZXJPcHRpb25zUm93RWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50LkhpZGRlblN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJPcHRp
b25zQ2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSBmYWxzZTsKKyAgICAgICAgfQogCiAgICAgICAg
IHRoaXMuX3BvcG92ZXIudXBkYXRlKCk7CiAgICAgfSwKQEAgLTQ4Niw2ICs1MjksOCBAQCBXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBjb25zb2xl
LmFzc2VydCh0aGlzLl9wb3BvdmVyID09PSBwb3BvdmVyKTsKICAgICAgICAgZGVsZXRlIHRoaXMu
X3BvcG92ZXJDb250ZW50RWxlbWVudDsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3BvcG92ZXJPcHRp
b25zUm93RWxlbWVudDsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3BvcG92ZXJPcHRpb25zQ2hlY2ti
b3hFbGVtZW50OwogICAgICAgICBkZWxldGUgdGhpcy5fYWN0aW9uc0NvbnRhaW5lcjsKICAgICAg
ICAgZGVsZXRlIHRoaXMuX3BvcG92ZXI7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5jc3MgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CcmVha3BvaW50VHJlZUVsZW1lbnQuY3Nz
CmluZGV4IGI1NTkxZjJjNGVhMmRjYjM5MjYxZDRjZmQ5ZTVkMjk1ZWU2Y2RmZTIuLjhlMjgyZTdl
NzUyNjEyZTc0MDE3NmY1MThhODkwMjhhMDFmZDczMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5jc3MKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2ludFRyZWVFbGVtZW50
LmNzcwpAQCAtMzQsOCArMzQsMTIgQEAKICAgICBjb250ZW50OiB1cmwoSW1hZ2VzL0JyZWFrcG9p
bnRCdXR0b24uc3ZnKTsKIH0KIAorLml0ZW0uYnJlYWtwb2ludCAuc3RhdHVzID4gLnN0YXR1cy1p
bWFnZS5hdXRvLWNvbnRpbnVlIHsKKyAgICBvcGFjaXR5OiAwLjY7Cit9CisKIC5pdGVtLmJyZWFr
cG9pbnQgLnN0YXR1cyA+IC5zdGF0dXMtaW1hZ2UuZGlzYWJsZWQgewotICAgIG9wYWNpdHk6IDAu
NDU7CisgICAgb3BhY2l0eTogMC4zNTsKIH0KIAogLml0ZW0uYnJlYWtwb2ludCAuc3VidGl0bGUu
Zm9ybWF0dGVkLWxvY2F0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qcwppbmRleCBhZGVkY2Fk
MzIxMGNlNzRlYWU4NjRkMzdmMDg4ZjQ3YzI4YzMxMjcwLi5kYTM5Y2RiZDk4ODZiNmNlZWQ3NWQ4
OTdjZGU4ZTNiNDUwN2M3ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CcmVha3BvaW50VHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQnJlYWtwb2ludFRyZWVFbGVtZW50LmpzCkBAIC0zNyw2ICsz
Nyw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihicmVh
a3BvaW50LCBjbGFzc05hbWUsIHRpdGxlKQogICAgIGlmICghdGl0bGUpCiAgICAgICAgIHRoaXMu
X2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVu
dC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5fYnJlYWtwb2ludExvY2F0aW9uRGlkQ2hhbmdlLCB0
aGlzKTsKICAgICB0aGlzLl9icmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkJyZWFrcG9pbnQuRXZlbnQuRGlzYWJsZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlU3Rh
dHVzLCB0aGlzKTsKKyAgICB0aGlzLl9icmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuQXV0b0NvbnRpbnVlRGlkQ2hhbmdlLCB0aGlzLl91cGRh
dGVTdGF0dXMsIHRoaXMpOwogICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5SZXNvbHZlZFN0YXRlRGlkQ2hhbmdlLCB0aGlz
Ll91cGRhdGVTdGF0dXMsIHRoaXMpOwogCiAgICAgdGhpcy5fc3RhdHVzSW1hZ2VFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CkBAIC01Niw2ICs1Nyw3IEBAIFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuR2VuZXJpY0xpbmVJY29uU3R5bGVDbGFzc05hbWUg
PSAiYnJlYWtwb2ludC1nCiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LlN0eWxl
Q2xhc3NOYW1lID0gImJyZWFrcG9pbnQiOwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxl
bWVudC5TdGF0dXNJbWFnZUVsZW1lbnRTdHlsZUNsYXNzTmFtZSA9ICJzdGF0dXMtaW1hZ2UiOwog
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFnZVJlc29sdmVkU3R5
bGVDbGFzc05hbWUgPSAicmVzb2x2ZWQiOworV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxl
bWVudC5TdGF0dXNJbWFnZUF1dG9Db250aW51ZVN0eWxlQ2xhc3NOYW1lID0gImF1dG8tY29udGlu
dWUiOwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFnZURpc2Fi
bGVkU3R5bGVDbGFzc05hbWUgPSAiZGlzYWJsZWQiOwogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRU
cmVlRWxlbWVudC5Gb3JtYXR0ZWRMb2NhdGlvblN0eWxlQ2xhc3NOYW1lID0gImZvcm1hdHRlZC1s
b2NhdGlvbiI7CiAKQEAgLTgwLDEzICs4MiwxMyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRy
ZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgIG9uZW50ZXI6IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuZGlzYWJsZWQgPSAhdGhpcy5fYnJlYWtwb2ludC5k
aXNhYmxlZDsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludC5jeWNsZVRvTmV4dE1vZGUoKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAogICAgIG9uc3BhY2U6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuZGlzYWJsZWQgPSAhdGhpcy5fYnJlYWtwb2lu
dC5kaXNhYmxlZDsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludC5jeWNsZVRvTmV4dE1vZGUoKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIApAQCAtMTI5LDYgKzEzMSwxMSBAQCBXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgdGhpcy5fc3RhdHVzSW1hZ2VFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUo
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5TdGF0dXNJbWFnZURpc2FibGVkU3R5
bGVDbGFzc05hbWUpOwogCisgICAgICAgIGlmICh0aGlzLl9icmVha3BvaW50LmF1dG9Db250aW51
ZSkKKyAgICAgICAgICAgIHRoaXMuX3N0YXR1c0ltYWdlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQuU3RhdHVzSW1hZ2VBdXRvQ29udGludWVT
dHlsZUNsYXNzTmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3N0YXR1c0lt
YWdlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVs
ZW1lbnQuU3RhdHVzSW1hZ2VBdXRvQ29udGludWVTdHlsZUNsYXNzTmFtZSk7CisKICAgICAgICAg
aWYgKHRoaXMuX2JyZWFrcG9pbnQucmVzb2x2ZWQpCiAgICAgICAgICAgICB0aGlzLl9zdGF0dXNJ
bWFnZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVt
ZW50LlN0YXR1c0ltYWdlUmVzb2x2ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGVsc2UKQEAg
LTE0Myw2ICsxNTAsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgaWYgKGV2ZW50LmRhdGEub2xkRGlzcGxheVNvdXJjZUNvZGUgPT09
IHRoaXMuX2JyZWFrcG9pbnQuZGlzcGxheVNvdXJjZUNvZGUpIHsKICAgICAgICAgICAgIHRoaXMu
X2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVu
dC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5fYnJlYWtwb2ludExvY2F0aW9uRGlkQ2hhbmdlLCB0
aGlzKTsKICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5EaXNhYmxlZFN0YXRlRGlkQ2hhbmdlLCB0aGlzLl91
cGRhdGVTdGF0dXMsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkF1dG9Db250aW51ZURpZENo
YW5nZSwgdGhpcy5fdXBkYXRlU3RhdHVzLCB0aGlzKTsKICAgICAgICAgICAgIHRoaXMuX2JyZWFr
cG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5SZXNv
bHZlZFN0YXRlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVTdGF0dXMsIHRoaXMpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xNTgsNyArMTY2LDcgQEAgV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBfc3RhdHVzSW1hZ2VFbGVt
ZW50Q2xpY2tlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl9icmVha3Bv
aW50LmRpc2FibGVkID0gIXRoaXMuX2JyZWFrcG9pbnQuZGlzYWJsZWQ7CisgICAgICAgIHRoaXMu
X2JyZWFrcG9pbnQuY3ljbGVUb05leHRNb2RlKCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvU291cmNlQ29kZVRleHRFZGl0b3Iu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4dEVk
aXRvci5qcwppbmRleCBhZWFmZDNkNWQ4OWZiNDM0NDQxMTY1MDI4NWM2NDRjNTU0M2I3NTM4Li43
Y2IzNTRiZGY1M2EwN2U1YmRkZTY5NDJlMmZiMGVmZmViYTZjMzg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4dEVk
aXRvci5qcwpAQCAtNDMsNiArNDMsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0
b3IgPSBmdW5jdGlvbihzb3VyY2VDb2RlKQogCiAgICAgaWYgKHRoaXMuX3N1cHBvcnRzRGVidWdn
aW5nKSB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuRGlzYWJsZWRTdGF0ZURpZENoYW5nZSwgdGhp
cy5fdXBkYXRlQnJlYWtwb2ludFN0YXR1cywgdGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5C
cmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQu
QXV0b0NvbnRpbnVlRGlkQ2hhbmdlLCB0aGlzLl91cGRhdGVCcmVha3BvaW50U3RhdHVzLCB0aGlz
KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5SZXNvbHZlZFN0YXRlRGlkQ2hhbmdlLCB0aGlzLl91
cGRhdGVCcmVha3BvaW50U3RhdHVzLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5Mb2Nh
dGlvbkRpZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2ludExvY2F0aW9uLCB0aGlzKTsKIApA
QCAtMTEyLDYgKzExMyw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90
b3R5cGUgPSB7CiAgICAgewogICAgICAgICBpZiAodGhpcy5fc3VwcG9ydHNEZWJ1Z2dpbmcpIHsK
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LnJlbW92ZUV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuRGlzYWJsZWRTdGF0ZURpZENoYW5nZSwgdGhp
cy5fdXBkYXRlQnJlYWtwb2ludFN0YXR1cywgdGhpcyk7CisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50
LkV2ZW50LkF1dG9Db250aW51ZURpZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2ludFN0YXR1
cywgdGhpcyk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5yZW1vdmVFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LlJlc29sdmVkU3RhdGVEaWRD
aGFuZ2UsIHRoaXMuX3VwZGF0ZUJyZWFrcG9pbnRTdGF0dXMsIHRoaXMpOwogICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludC5FdmVudC5Mb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5fdXBkYXRlQnJlYWtwb2lu
dExvY2F0aW9uLCB0aGlzKTsKIApAQCAtNzEwLDcgKzcxMiw3IEBAIFdlYkluc3BlY3Rvci5Tb3Vy
Y2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAKICAgICBfYnJlYWtwb2ludEluZm9Gb3JC
cmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHty
ZXNvbHZlZDogYnJlYWtwb2ludC5yZXNvbHZlZCwgZGlzYWJsZWQ6IGJyZWFrcG9pbnQuZGlzYWJs
ZWR9OworICAgICAgICByZXR1cm4ge3Jlc29sdmVkOiBicmVha3BvaW50LnJlc29sdmVkLCBkaXNh
YmxlZDogYnJlYWtwb2ludC5kaXNhYmxlZCwgYXV0b0NvbnRpbnVlOiBicmVha3BvaW50LmF1dG9D
b250aW51ZX07CiAgICAgfSwKIAogICAgIGdldCBfc3VwcG9ydHNEZWJ1Z2dpbmcoKQpAQCAtOTA4
LDcgKzkxMCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICB0aGlzLnVwZGF0ZUJyZWFrcG9pbnRMaW5lQW5kQ29sdW1uKG5ld0xp
bmVJbmZvLmxpbmVOdW1iZXIsIG5ld0xpbmVJbmZvLmNvbHVtbk51bWJlciwgYWNjdXJhdGVOZXdM
aW5lSW5mby5saW5lTnVtYmVyLCBhY2N1cmF0ZU5ld0xpbmVJbmZvLmNvbHVtbk51bWJlcik7CiAg
ICAgfSwKIAotICAgIHRleHRFZGl0b3JCcmVha3BvaW50VG9nZ2xlZDogZnVuY3Rpb24odGV4dEVk
aXRvciwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBkaXNhYmxlZCkKKyAgICB0ZXh0RWRpdG9y
QnJlYWtwb2ludENsaWNrZWQ6IGZ1bmN0aW9uKHRleHRFZGl0b3IsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlcikKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3N1cHBvcnRzRGVi
dWdnaW5nKTsKICAgICAgICAgaWYgKCF0aGlzLl9zdXBwb3J0c0RlYnVnZ2luZykKQEAgLTkxOSw3
ICs5MjEsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlID0g
ewogICAgICAgICBpZiAoIWJyZWFrcG9pbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgYnJlYWtwb2ludC5kaXNhYmxlZCA9IGRpc2FibGVkOworICAgICAgICBicmVha3BvaW50LmN5
Y2xlVG9OZXh0TW9kZSgpOwogICAgIH0sCiAKICAgICB0ZXh0RWRpdG9yVXBkYXRlZEZvcm1hdHRp
bmc6IGZ1bmN0aW9uKHRleHRFZGl0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1RleHRFZGl0b3IuY3NzCmluZGV4IGM5ZGZiYjQzOWQ3MjNmMDNjYjkyZDY5
OGRiOGRlMzdmMmZiZGY5N2UuLmE2NWFlYTMwNmE1OGNjY2Y4ZTFjYzEyNmJlNDg0ZTUxYWMzZDNh
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRF
ZGl0b3IuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRF
ZGl0b3IuY3NzCkBAIC02Niw2ICs2NiwxMCBAQAogICAgIGJvcmRlci1pbWFnZS1zb3VyY2U6IC13
ZWJraXQtaW1hZ2Utc2V0KHVybChJbWFnZXMvQnJlYWtwb2ludC5wbmcpIDF4LCB1cmwoSW1hZ2Vz
L0JyZWFrcG9pbnRAMngucG5nKSAyeCk7CiB9CiAKKy50ZXh0LWVkaXRvciA+IC5Db2RlTWlycm9y
IC5icmVha3BvaW50LWF1dG8tY29udGludWU6bm90KC5icmVha3BvaW50LWRpc2FibGVkKSAuQ29k
ZU1pcnJvci1saW5lbnVtYmVyOjpiZWZvcmUgeworICAgIG9wYWNpdHk6IDAuNjsKK30KKwogLnRl
eHQtZWRpdG9yID4gLkNvZGVNaXJyb3IgLmJyZWFrcG9pbnQtZGlzYWJsZWQgLkNvZGVNaXJyb3It
bGluZW51bWJlcjo6YmVmb3JlIHsKICAgICBvcGFjaXR5OiAwLjM1OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRFZGl0b3IuanMKaW5kZXggOGMwYTVh
OGVlZTIwNTkxNzBmMjczNGI0YTE5MDUwNmQ2NGE2NGI3ZS4uMGU5MmViMTA4NDliODg4MzFmOTdl
MWY2NTYwYWU4NDZlNGI3MDhkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9UZXh0RWRpdG9yLmpzCkBAIC03Niw2ICs3Niw3IEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yLkhpZ2hsaWdodGVkU3R5bGVDbGFzc05hbWUgPSAiaGlnaGxpZ2h0ZWQiOwogV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3IuU2VhcmNoUmVzdWx0U3R5bGVDbGFzc05hbWUgPSAic2VhcmNo
LXJlc3VsdCI7CiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5IYXNCcmVha3BvaW50U3R5bGVDbGFz
c05hbWUgPSAiaGFzLWJyZWFrcG9pbnQiOwogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuQnJlYWtw
b2ludFJlc29sdmVkU3R5bGVDbGFzc05hbWUgPSAiYnJlYWtwb2ludC1yZXNvbHZlZCI7CitXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50QXV0b0NvbnRpbnVlU3R5bGVDbGFzc05hbWUg
PSAiYnJlYWtwb2ludC1hdXRvLWNvbnRpbnVlIjsKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkJy
ZWFrcG9pbnREaXNhYmxlZFN0eWxlQ2xhc3NOYW1lID0gImJyZWFrcG9pbnQtZGlzYWJsZWQiOwog
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuTXVsdGlwbGVCcmVha3BvaW50c1N0eWxlQ2xhc3NOYW1l
ID0gIm11bHRpcGxlLWJyZWFrcG9pbnRzIjsKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkV4ZWN1
dGlvbkxpbmVTdHlsZUNsYXNzTmFtZSA9ICJleGVjdXRpb24tbGluZSI7CkBAIC05MDYsNiArOTA3
LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewogCiAgICAgICAgIHZh
ciBhbGxEaXNhYmxlZCA9IHRydWU7CiAgICAgICAgIHZhciBhbGxSZXNvbHZlZCA9IHRydWU7Cisg
ICAgICAgIHZhciBhbGxBdXRvQ29udGludWUgPSB0cnVlOwogICAgICAgICB2YXIgbXVsdGlwbGUg
PSBPYmplY3Qua2V5cyhjb2x1bW5CcmVha3BvaW50cykubGVuZ3RoID4gMTsKICAgICAgICAgZm9y
ICh2YXIgY29sdW1uTnVtYmVyIGluIGNvbHVtbkJyZWFrcG9pbnRzKSB7CiAgICAgICAgICAgICB2
YXIgYnJlYWtwb2ludEluZm8gPSBjb2x1bW5CcmVha3BvaW50c1tjb2x1bW5OdW1iZXJdOwpAQCAt
OTEzLDYgKzkxNSw4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgICAgICBhbGxEaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKCFicmVh
a3BvaW50SW5mby5yZXNvbHZlZCkKICAgICAgICAgICAgICAgICBhbGxSZXNvbHZlZCA9IGZhbHNl
OworICAgICAgICAgICAgaWYgKCFicmVha3BvaW50SW5mby5hdXRvQ29udGludWUpCisgICAgICAg
ICAgICAgICAgYWxsQXV0b0NvbnRpbnVlID0gZmFsc2U7CiAgICAgICAgIH0KIAogICAgICAgICBm
dW5jdGlvbiB1cGRhdGVTdHlsZXMoKQpAQCAtOTM1LDYgKzkzOSwxMSBAQCBXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgdGhpcy5fY29kZU1pcnJvci5yZW1vdmVMaW5lQ2xhc3MobGluZUhhbmRsZSwgIndyYXAiLCBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50RGlzYWJsZWRTdHlsZUNsYXNzTmFtZSk7
CiAKKyAgICAgICAgICAgIGlmIChhbGxBdXRvQ29udGludWUpCisgICAgICAgICAgICAgICAgdGhp
cy5fY29kZU1pcnJvci5hZGRMaW5lQ2xhc3MobGluZUhhbmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvci5CcmVha3BvaW50QXV0b0NvbnRpbnVlU3R5bGVDbGFzc05hbWUpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3IucmVtb3ZlTGlu
ZUNsYXNzKGxpbmVIYW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuQnJlYWtw
b2ludEF1dG9Db250aW51ZVN0eWxlQ2xhc3NOYW1lKTsKKwogICAgICAgICAgICAgaWYgKG11bHRp
cGxlKQogICAgICAgICAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3IuYWRkTGluZUNsYXNzKGxpbmVI
YW5kbGUsICJ3cmFwIiwgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuTXVsdGlwbGVCcmVha3BvaW50
c1N0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTk3NSw2ICs5ODQsNyBAQCBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9j
b2RlTWlycm9yLnJlbW92ZUxpbmVDbGFzcyhsaW5lSGFuZGxlLCAid3JhcCIsIFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yLkhhc0JyZWFrcG9pbnRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB0
aGlzLl9jb2RlTWlycm9yLnJlbW92ZUxpbmVDbGFzcyhsaW5lSGFuZGxlLCAid3JhcCIsIFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yLkJyZWFrcG9pbnRSZXNvbHZlZFN0eWxlQ2xhc3NOYW1lKTsKICAg
ICAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3IucmVtb3ZlTGluZUNsYXNzKGxpbmVIYW5kbGUsICJ3
cmFwIiwgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuQnJlYWtwb2ludERpc2FibGVkU3R5bGVDbGFz
c05hbWUpOworICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZW1vdmVMaW5lQ2xhc3MobGlu
ZUhhbmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5CcmVha3BvaW50QXV0b0Nv
bnRpbnVlU3R5bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZW1v
dmVMaW5lQ2xhc3MobGluZUhhbmRsZSwgIndyYXAiLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5N
dWx0aXBsZUJyZWFrcG9pbnRzU3R5bGVDbGFzc05hbWUpOwogICAgICAgICB9CiAKQEAgLTExMTYs
NyArMTEyNiw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fZG9jdW1l
bnRNb3VzZU1vdmVkRXZlbnRMaXN0ZW5lciwgdHJ1ZSk7CiAgICAgICAgIGRvY3VtZW50LnJlbW92
ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzLl9kb2N1bWVudE1vdXNlVXBFdmVudExpc3Rl
bmVyLCB0cnVlKTsKIAotICAgICAgICBjb25zdCBkZWxlZ2F0ZUltcGxlbWVudHNCcmVha3BvaW50
VG9nZ2xlZCA9IHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS50ZXh0RWRp
dG9yQnJlYWtwb2ludFRvZ2dsZWQgPT09ICJmdW5jdGlvbiI7CisgICAgICAgIGNvbnN0IGRlbGVn
YXRlSW1wbGVtZW50c0JyZWFrcG9pbnRDbGlja2VkID0gdGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9m
IHRoaXMuX2RlbGVnYXRlLnRleHRFZGl0b3JCcmVha3BvaW50Q2xpY2tlZCA9PT0gImZ1bmN0aW9u
IjsKICAgICAgICAgY29uc3QgZGVsZWdhdGVJbXBsZW1lbnRzQnJlYWtwb2ludFJlbW92ZWQgPSB0
aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUudGV4dEVkaXRvckJyZWFrcG9p
bnRSZW1vdmVkID09PSAiZnVuY3Rpb24iOwogICAgICAgICBjb25zdCBkZWxlZ2F0ZUltcGxlbWVu
dHNCcmVha3BvaW50TW92ZWQgPSB0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdh
dGUudGV4dEVkaXRvckJyZWFrcG9pbnRNb3ZlZCA9PT0gImZ1bmN0aW9uIjsKIApAQCAtMTE1Miwx
MSArMTE2Miw4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIC8vIFRvZ2dsZSB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGJyZWFrcG9pbnQuCiAg
ICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25C
cmVha3BvaW50IGluIHRoaXMuX2JyZWFrcG9pbnRzKTsKICAgICAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHRoaXMuX2NvbHVtbk51bWJlcldpdGhNb3VzZWREb3duQnJlYWtwb2ludCBpbiB0aGlzLl9i
cmVha3BvaW50c1t0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50XSk7Ci0g
ICAgICAgICAgICBpZiAodGhpcy5fbGluZU51bWJlcldpdGhNb3VzZWREb3duQnJlYWtwb2ludCBp
biB0aGlzLl9icmVha3BvaW50cyAmJiB0aGlzLl9jb2x1bW5OdW1iZXJXaXRoTW91c2VkRG93bkJy
ZWFrcG9pbnQgaW4gdGhpcy5fYnJlYWtwb2ludHNbdGhpcy5fbGluZU51bWJlcldpdGhNb3VzZWRE
b3duQnJlYWtwb2ludF0gJiYgZGVsZWdhdGVJbXBsZW1lbnRzQnJlYWtwb2ludFRvZ2dsZWQpIHsK
LSAgICAgICAgICAgICAgICB2YXIgZGlzYWJsZWQgPSB0aGlzLl9jb2RlTWlycm9yLnRvZ2dsZUxp
bmVDbGFzcyh0aGlzLl9saW5lTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50LCAid3JhcCIs
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLkJyZWFrcG9pbnREaXNhYmxlZFN0eWxlQ2xhc3NOYW1l
KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50c1t0aGlzLl9saW5lTnVtYmVyV2l0
aE1vdXNlZERvd25CcmVha3BvaW50XVt0aGlzLl9jb2x1bW5OdW1iZXJXaXRoTW91c2VkRG93bkJy
ZWFrcG9pbnRdLmRpc2FibGVkID0gZGlzYWJsZWQ7Ci0gICAgICAgICAgICAgICAgdGhpcy5fZGVs
ZWdhdGUudGV4dEVkaXRvckJyZWFrcG9pbnRUb2dnbGVkKHRoaXMsIHRoaXMuX2xpbmVOdW1iZXJX
aXRoTW91c2VkRG93bkJyZWFrcG9pbnQsIHRoaXMuX2NvbHVtbk51bWJlcldpdGhNb3VzZWREb3du
QnJlYWtwb2ludCwgZGlzYWJsZWQpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRo
aXMuX2xpbmVOdW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnQgaW4gdGhpcy5fYnJlYWtwb2lu
dHMgJiYgdGhpcy5fY29sdW1uTnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50IGluIHRoaXMu
X2JyZWFrcG9pbnRzW3RoaXMuX2xpbmVOdW1iZXJXaXRoTW91c2VkRG93bkJyZWFrcG9pbnRdICYm
IGRlbGVnYXRlSW1wbGVtZW50c0JyZWFrcG9pbnRDbGlja2VkKQorICAgICAgICAgICAgICAgIHRo
aXMuX2RlbGVnYXRlLnRleHRFZGl0b3JCcmVha3BvaW50Q2xpY2tlZCh0aGlzLCB0aGlzLl9saW5l
TnVtYmVyV2l0aE1vdXNlZERvd25CcmVha3BvaW50LCB0aGlzLl9jb2x1bW5OdW1iZXJXaXRoTW91
c2VkRG93bkJyZWFrcG9pbnQpOwogICAgICAgICB9CiAKICAgICAgICAgZGVsZXRlIHRoaXMuX2Rv
Y3VtZW50TW91c2VNb3ZlZEV2ZW50TGlzdGVuZXI7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>