<?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>199332</bug_id>
          
          <creation_ts>2019-06-28 11:58:42 -0700</creation_ts>
          <short_desc>Web Inspector: DOM Debugger: descendant breakpoints should be able to be enabled/disabled/deleted from a collapsed parent</short_desc>
          <delta_ts>2019-07-02 09:17:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>mattbaker</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1548904</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-28 11:58:42 -0700</bug_when>
    <thetext># STEPS TO REPRODUCE:
1. inspect any page
2. set a DOM breakpoint on a child of some node
3. collapse the parent node of the child node from step 2 in the DOM tree
4. right-click on the breakpoint icon in the &quot;gutter&quot; of the DOM tree
 =&gt; &quot;Enabled Breakpoints&quot;/&quot;Disable Breakpoints&quot; and &quot;Delete Breakpoints&quot; missing

NOTE: if you set a breakpoint on the parent node (from step 3) itself, then those menu items appear, but then the &quot;Reveal Breakpoint&quot; item disappears.

It should also be possible to click to toggle _all_ child breakpoints on/off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548905</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-28 11:59:26 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #0)
&gt; It should also be possible to click to toggle _all_ child breakpoints on/off.
Actually, maybe not, as the current UI is a &quot;hollow&quot; breakpoint, which just indicates that there are children breakpoints, not their state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548951</commentid>
    <comment_count>2</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-06-28 14:57:07 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #1)
&gt; (In reply to Devin Rousso from comment #0)
&gt; &gt; It should also be possible to click to toggle _all_ child breakpoints on/off.
&gt; Actually, maybe not, as the current UI is a &quot;hollow&quot; breakpoint, which just
&gt; indicates that there are children breakpoints, not their state.

You can also use &quot;Reveal Breakpoint&quot; from the hollow indicator&apos;s context menu to expand the DOM tree to reveal the DOM having the breakpoint.

This works decently for simple cases, but doesn&apos;t scale well to numerous descendant breakpoints.

Also, when the collapsed DOM node itself has a breakpoint, there is no indication when one of its descendants has a breakpoint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548952</commentid>
    <comment_count>3</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-06-28 14:57:42 -0700</bug_when>
    <thetext>(In reply to Matt Baker from comment #2)
&gt; (In reply to Devin Rousso from comment #1)
&gt; &gt; (In reply to Devin Rousso from comment #0)
&gt; &gt; &gt; It should also be possible to click to toggle _all_ child breakpoints on/off.
&gt; &gt; Actually, maybe not, as the current UI is a &quot;hollow&quot; breakpoint, which just
&gt; &gt; indicates that there are children breakpoints, not their state.
&gt; 
&gt; You can also use &quot;Reveal Breakpoint&quot; from the hollow indicator&apos;s context
&gt; menu to expand the DOM tree to reveal the DOM having the breakpoint.
&gt; 
&gt; This works decently for simple cases, but doesn&apos;t scale well to numerous
&gt; descendant breakpoints.
&gt; 
&gt; Also, when the collapsed DOM node itself has a breakpoint, there is no
&gt; indication when one of its descendants has a breakpoint.

There is really only so much state you can reasonably show in the gutter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548987</commentid>
    <comment_count>4</comment_count>
      <attachid>373161</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-28 16:26:23 -0700</bug_when>
    <thetext>Created attachment 373161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549454</commentid>
    <comment_count>5</comment_count>
      <attachid>373161</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-07-01 20:32:56 -0700</bug_when>
    <thetext>Comment on attachment 373161
Patch

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

r-, only because I&apos;m concerned about selecting the descendant DOM nodes when revealing breakpoints. Other than that, this is awesome!

&gt; Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:408
&gt; +localizedStrings[&quot;Enable Descendant Breakpoints&quot;] = &quot;Enable Descendant Breakpoints&quot;;

IMO, having &quot;Descendant&quot; in the context menu items makes the menu appear very busy/cluttered. It&apos;s much more clear though, so I think it is a worthwhile tradeoff.

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:150
&gt; +                resolvedBreakpoints = resolvedBreakpoints.concat(Array.from(domBreakpointNodeIdentifierMap.values()));

Nice cleanup.

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:179
&gt; +        return breakpoints ? Array.from(breakpoints) : [];

Ditto!

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:189
&gt; +            let children = node.children.slice();

Why not `let children = Array.from(node.children)`?

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:454
&gt; +                    console.assert(breakpoint.domNodeIdentifier === nodeIdentifier);

Nice catch! Did you encounter a situation where a DOM breakpoint was resolved more than once?

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:121
&gt; +            this.treeOutline.selectTreeElements(subtreeBreakpointTreeElements);

I don&apos;t think we want to select nodes in the DOM tree for the revealed breakpoints. It could unexpectedly change an existing selection. What about extending the animated highlight to all the revealed tree elements?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549487</commentid>
    <comment_count>6</comment_count>
      <attachid>373161</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-07-02 00:07:11 -0700</bug_when>
    <thetext>Comment on attachment 373161
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:189
&gt;&gt; +            let children = node.children.slice();
&gt; 
&gt; Why not `let children = Array.from(node.children)`?

No real reason.  I&apos;ll change it.

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:454
&gt;&gt; +                    console.assert(breakpoint.domNodeIdentifier === nodeIdentifier);
&gt; 
&gt; Nice catch! Did you encounter a situation where a DOM breakpoint was resolved more than once?

Yeah, if a DOM breakpoint is set and then the page is reloaded, and the node is both added almost immediately after load and is shallow enough in the DOM tree to be requested by default, it would do both of these paths at the same time.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:121
&gt;&gt; +            this.treeOutline.selectTreeElements(subtreeBreakpointTreeElements);
&gt; 
&gt; I don&apos;t think we want to select nodes in the DOM tree for the revealed breakpoints. It could unexpectedly change an existing selection. What about extending the animated highlight to all the revealed tree elements?

I&apos;m fine with not selecting them honestly.  In point of fact, the context menu item just says &quot;Reveal&quot; anyways, and they&apos;re obvious enough from the breakpoint arrow in the left &quot;gutter&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549488</commentid>
    <comment_count>7</comment_count>
      <attachid>373308</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-07-02 00:09:18 -0700</bug_when>
    <thetext>Created attachment 373308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549575</commentid>
    <comment_count>8</comment_count>
      <attachid>373308</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-07-02 08:45:26 -0700</bug_when>
    <thetext>Comment on attachment 373308
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549595</commentid>
    <comment_count>9</comment_count>
      <attachid>373308</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 09:16:01 -0700</bug_when>
    <thetext>Comment on attachment 373308
Patch

Clearing flags on attachment: 373308

Committed r247053: &lt;https://trac.webkit.org/changeset/247053&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549596</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 09:16:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549597</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-02 09:17:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/52526953&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373161</attachid>
            <date>2019-06-28 16:26:23 -0700</date>
            <delta_ts>2019-07-02 00:09:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>199332.diff</filename>
            <type>text/plain</type>
            <size>27930</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDQ3ZDQ3MWMzYmYxLi45NzJmMjVlMGY0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTktMDYtMjggIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IERP
TSBEZWJ1Z2dlcjogZGVzY2VuZGFudCBicmVha3BvaW50cyBzaG91bGQgYmUgYWJsZSB0byBiZSBl
bmFibGVkL2Rpc2FibGVkL2RlbGV0ZWQgZnJvbSBhIGNvbGxhcHNlZCBwYXJlbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTMzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9ET01EZWJ1Z2dlck1hbmFnZXIuanM6CisgICAgICAgIChXSS5ET01EZWJ1Z2dl
ck1hbmFnZXIucHJvdG90eXBlLmdldCBkb21CcmVha3BvaW50cyk6CisgICAgICAgIChXSS5ET01E
ZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLmRvbUJyZWFrcG9pbnRzRm9yTm9kZSk6CisgICAgICAg
IChXSS5ET01EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLmRvbUJyZWFrcG9pbnRzSW5TdWJ0cmVl
KTogQWRkZWQuCisgICAgICAgIChXSS5ET01EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLnJlbW92
ZURPTUJyZWFrcG9pbnQpOgorICAgICAgICAoV0kuRE9NRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlw
ZS5fZGV0YWNoRE9NQnJlYWtwb2ludCk6CisgICAgICAgIChXSS5ET01EZWJ1Z2dlck1hbmFnZXIu
cHJvdG90eXBlLl9kZXRhY2hCcmVha3BvaW50c0ZvckZyYW1lKToKKyAgICAgICAgKFdJLkRPTURl
YnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuX3NwZWN1bGF0aXZlbHlSZXNvbHZlRE9NQnJlYWtwb2lu
dHNGb3JVUkwpOgorICAgICAgICAoV0kuRE9NRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5fcmVz
b2x2ZURPTUJyZWFrcG9pbnQpOgorICAgICAgICBQcm92aWRlIGEgd2F5IG9mIGdldHRpbmcgYSAi
c3VtbWFyeSIgYXJyYXkgb2YgYERPTUJyZWFrcG9pbnRgcyBmb3IgYWxsIGRlc2NlbmRhbnQgbm9k
ZXMuCisgICAgICAgIFJld29yayB0aGUgZGF0YSBzdHJ1Y3R1cmUgZm9yIGhvbGRpbmcgYERPTUJy
ZWFrcG9pbnRgcyB0byB1c2UgYSBgTXVsdGltYXBgIHNvIG5vIGR1cGxpY2F0ZXMKKyAgICAgICAg
Y2FuIGJlIGFkZGVkIChpdCB1c2VzIGEgYFNldGAgaW5zdGVhZCBvZiBhbiBgQXJyYXlgKS4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanM6CisgICAgICAg
IChXSS5ET01UcmVlRWxlbWVudCk6CisgICAgICAgIChXSS5ET01UcmVlRWxlbWVudC5wcm90b3R5
cGUuZ2V0IGhhc0JyZWFrcG9pbnQpOgorICAgICAgICAoV0kuRE9NVHJlZUVsZW1lbnQucHJvdG90
eXBlLnNldCBicmVha3BvaW50U3RhdHVzKToKKyAgICAgICAgKFdJLkRPTVRyZWVFbGVtZW50LnBy
b3RvdHlwZS5iaW5kUmV2ZWFsRGVzY2VuZGFudEJyZWFrcG9pbnRzTWVudUl0ZW1IYW5kbGVyKTog
QWRkZWQuCisgICAgICAgIChXSS5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX3N1YnRyZWVCcmVh
a3BvaW50Q2hhbmdlZCk6IEFkZGVkLgorICAgICAgICAoV0kuRE9NVHJlZUVsZW1lbnQucHJvdG90
eXBlLl91cGRhdGVCcmVha3BvaW50U3RhdHVzKToKKyAgICAgICAgKFdJLkRPTVRyZWVFbGVtZW50
LnByb3RvdHlwZS5fc3RhdHVzSW1hZ2VDb250ZXh0bWVudSk6CisgICAgICAgIChXSS5ET01UcmVl
RWxlbWVudC5wcm90b3R5cGUuc3VidHJlZUJyZWFrcG9pbnRDb3VudERpZENoYW5nZSk6IERlbGV0
ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5qczoKKyAg
ICAgICAgKFdJLkRPTVRyZWVPdXRsaW5lLnByb3RvdHlwZS5wb3B1bGF0ZUNvbnRleHRNZW51KToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzOgor
ICAgICAgICAoV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUpOgorICAgICAgICAo
V0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGVCcmVha3BvaW50cyk6CisgICAgICAg
IEtlZXAgdHJhY2sgb2YgdGhlIGFjdHVhbCBkZXNjZW5kYW50IGBET01Ob2RlVHJlZUVsZW1lbnRg
IHRoYXQgaGF2ZSBicmVha3BvaW50cywgcmF0aGVyIHRoYW4KKyAgICAgICAganVzdCBhIGNvdW50
LCBzbyB0aGF0IHRoZSAiUmV2ZWFsIERlc2NlbmRhbnQgQnJlYWtwb2ludHMiIGFjdGlvbiBpcyBh
YmxlIHRvIGFjY2VzcyB0aGVtLgorICAgICAgICBDaGFuZ2UgIlJldmVhbCBEZXNjZW5kYW50IEJy
ZWFrcG9pbnRzIiB0byByZXZlYWwgYW5kIHNlbGVjdCBhbGwgZGVzY2VuZGFudCBicmVha3BvaW50
cworICAgICAgICBpbnN0ZWFkIG9mIGp1c3QgdGhlIGZpcnN0IG9uZS4KKyAgICAgICAgRHJpdmUt
Ynk6IGRvbid0IHJlbW92ZSBzcGVjaWZpYyAoZXZlbnQpIGxpc3RlbmVyIGJyZWFrcG9pbnRzIHdo
ZW4gaW52b2tpbmcgdGhlCisgICAgICAgICAgICAgICAgICAiRGVsZXRlIERlc2NlbmRhbnQgQnJl
YWtwb2ludHMiIGFjdGlvbiwgYXMgdGhhdCdzIG5vdCBvYnZpb3VzIGZyb20gdGhlIFVJLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9CcmVha3BvaW50UG9wb3ZlckNvbnRy
b2xsZXIuanM6CisgICAgICAgIChXSS5CcmVha3BvaW50UG9wb3ZlckNvbnRyb2xsZXIucHJvdG90
eXBlLmFwcGVuZENvbnRleHRNZW51SXRlbXMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvRE9NQnJlYWtwb2ludFRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuRE9NQnJlYWtwb2lu
dFRyZWVFbGVtZW50LnByb3RvdHlwZS5wb3B1bGF0ZUNvbnRleHRNZW51KToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVUcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLkRP
TU5vZGVUcmVlRWxlbWVudC5wcm90b3R5cGUucG9wdWxhdGVDb250ZXh0TWVudSk6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9FdmVudEJyZWFrcG9pbnRUcmVlRWxlbWVudC5qczoKKyAg
ICAgICAgKFdJLkV2ZW50QnJlYWtwb2ludFRyZWVFbGVtZW50LnByb3RvdHlwZS5wb3B1bGF0ZUNv
bnRleHRNZW51KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1VSTEJyZWFrcG9pbnRU
cmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLlVSTEJyZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90
b3R5cGUucG9wdWxhdGVDb250ZXh0TWVudSk6CisgICAgICAgIFJlbW92ZSB0aGUgc2VwYXJhdG9y
IGJlZm9yZSAiRGVsZXRlIEJyZWFrcG9pbnQiIHNvIGFsbCBicmVha3BvaW50IGFjdGlvbnMgYXJl
IGluIHRoZSBzYW1lIHNlY3Rpb24uCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL011bHRp
bWFwLmpzOgorICAgICAgICAoTXVsdGltYXAucHJvdG90eXBlLmdldCBzaXplKTogQWRkZWQuCisK
IDIwMTktMDYtMTggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IERlYnVnOiAiUmVzZXQgV2ViIEluc3BlY3RvciIgc2hvdWxkIGFsc28g
Y2xlYXIgdGhlIHNhdmVkIHdpbmRvdyBzaXplIGFuZCBhdHRhY2htZW50IHNpZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDI5YzFlYmRiOWFiLi5lM2FjNDJjN2FmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9u
cy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0zMjMsNiArMzIzLDcgQEAgbG9jYWxp
emVkU3RyaW5nc1siRGVmYXVsdCJdID0gIkRlZmF1bHQiOwogbG9jYWxpemVkU3RyaW5nc1siRGVs
ZXRlIl0gPSAiRGVsZXRlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRlbGV0ZSBCcmVha3BvaW50Il0g
PSAiRGVsZXRlIEJyZWFrcG9pbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRGVsZXRlIEJyZWFrcG9p
bnRzIl0gPSAiRGVsZXRlIEJyZWFrcG9pbnRzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkRlbGV0ZSBE
ZXNjZW5kYW50IEJyZWFrcG9pbnRzIl0gPSAiRGVsZXRlIERlc2NlbmRhbnQgQnJlYWtwb2ludHMi
OwogbG9jYWxpemVkU3RyaW5nc1siRGVtbyBBdWRpdCJdID0gIkRlbW8gQXVkaXQiOwogbG9jYWxp
emVkU3RyaW5nc1siRGV0YWNoIGludG8gc2VwYXJhdGUgd2luZG93Il0gPSAiRGV0YWNoIGludG8g
c2VwYXJhdGUgd2luZG93IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRldGFjaGVkIl0gPSAiRGV0YWNo
ZWQiOwpAQCAtMzMyLDYgKzMzMyw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkRpYWdub3NlcyBjb21t
b24gYWNjZXNzaWJpbGl0eSBwcm9ibGVtcyBhZmZlY3Rpbmcgc2NyZWVuIHJlYWRlCiBsb2NhbGl6
ZWRTdHJpbmdzWyJEaW1lbnNpb25zIl0gPSAiRGltZW5zaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJEaXNhYmxlIEJyZWFrcG9pbnQiXSA9ICJEaXNhYmxlIEJyZWFrcG9pbnQiOwogbG9jYWxpemVk
U3RyaW5nc1siRGlzYWJsZSBCcmVha3BvaW50cyJdID0gIkRpc2FibGUgQnJlYWtwb2ludHMiOwor
bG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBEZXNjZW5kYW50IEJyZWFrcG9pbnRzIl0gPSAiRGlz
YWJsZSBEZXNjZW5kYW50IEJyZWFrcG9pbnRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpc2FibGUg
RXZlbnQgTGlzdGVuZXIiXSA9ICJEaXNhYmxlIEV2ZW50IExpc3RlbmVyIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkRpc2FibGUgSUNFIENhbmRpZGF0ZSBSZXN0cmljdGlvbnMiXSA9ICJEaXNhYmxlIElD
RSBDYW5kaWRhdGUgUmVzdHJpY3Rpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpc2FibGUgUHJv
Z3JhbSJdID0gIkRpc2FibGUgUHJvZ3JhbSI7CkBAIC00MDMsNiArNDA1LDcgQEAgbG9jYWxpemVk
U3RyaW5nc1siRWxlbWVudHMiXSA9ICJFbGVtZW50cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbXVs
YXRlIFVzZXIgR2VzdHVyZSJdID0gIkVtdWxhdGUgVXNlciBHZXN0dXJlIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkVuYWJsZSBCcmVha3BvaW50Il0gPSAiRW5hYmxlIEJyZWFrcG9pbnQiOwogbG9jYWxp
emVkU3RyaW5nc1siRW5hYmxlIEJyZWFrcG9pbnRzIl0gPSAiRW5hYmxlIEJyZWFrcG9pbnRzIjsK
K2xvY2FsaXplZFN0cmluZ3NbIkVuYWJsZSBEZXNjZW5kYW50IEJyZWFrcG9pbnRzIl0gPSAiRW5h
YmxlIERlc2NlbmRhbnQgQnJlYWtwb2ludHMiOwogbG9jYWxpemVkU3RyaW5nc1siRW5hYmxlIEV2
ZW50IExpc3RlbmVyIl0gPSAiRW5hYmxlIEV2ZW50IExpc3RlbmVyIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkVuYWJsZSBMYXllcnMgVGFiIl0gPSAiRW5hYmxlIExheWVycyBUYWIiOwogbG9jYWxpemVk
U3RyaW5nc1siRW5hYmxlIE5ldyBUYWIgQmFyIl0gPSAiRW5hYmxlIE5ldyBUYWIgQmFyIjsKQEAg
LTg4MSw3ICs4ODQsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZXR1cm4gc3RyaW5nIG11c3QgYmUg
b25lIG9mICVzIl0gPSAiUmV0dXJuIHN0cmluZyBtdXN0IGJlIG9uZQogbG9jYWxpemVkU3RyaW5n
c1siUmV0dXJuIHR5cGUgZm9yIGFub255bW91cyBmdW5jdGlvbiJdID0gIlJldHVybiB0eXBlIGZv
ciBhbm9ueW1vdXMgZnVuY3Rpb24iOwogbG9jYWxpemVkU3RyaW5nc1siUmV0dXJuIHR5cGUgZm9y
IGZ1bmN0aW9uOiAlcyJdID0gIlJldHVybiB0eXBlIGZvciBmdW5jdGlvbjogJXMiOwogbG9jYWxp
emVkU3RyaW5nc1siUmV0dXJuIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QsIHN0cmluZywgb3IgYm9v
bGVhbiJdID0gIlJldHVybiB2YWx1ZSBpcyBub3QgYW4gb2JqZWN0LCBzdHJpbmcsIG9yIGJvb2xl
YW4iOwotbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIEJyZWFrcG9pbnQiXSA9ICJSZXZlYWwgQnJl
YWtwb2ludCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgRGVzY2VuZGFudCBCcmVha3BvaW50
cyJdID0gIlJldmVhbCBEZXNjZW5kYW50IEJyZWFrcG9pbnRzIjsKIC8qIE9wZW4gRWxlbWVudHMg
dGFiIGFuZCBzZWxlY3QgdGhpcyBub2RlIGluIERPTSB0cmVlICovCiBsb2NhbGl6ZWRTdHJpbmdz
WyJSZXZlYWwgaW4gRE9NIFRyZWUiXSA9ICJSZXZlYWwgaW4gRE9NIFRyZWUiOwogbG9jYWxpemVk
U3RyaW5nc1siUmV2ZWFsIGluIERlYnVnZ2VyIFRhYiJdID0gIlJldmVhbCBpbiBEZWJ1Z2dlciBU
YWIiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFz
ZS9NdWx0aW1hcC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2Uv
TXVsdGltYXAuanMKaW5kZXggNTAwZWFjMGQzOWIuLjNkNjllYjAyOGQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL011bHRpbWFwLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTXVsdGltYXAuanMKQEAg
LTM1LDYgKzM1LDExIEBAIGNsYXNzIE11bHRpbWFwCiAKICAgICAvLyBQdWJsaWMKIAorICAgIGdl
dCBzaXplKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9tYXAuc2l6ZTsKKyAgICB9CisK
ICAgICBoYXMoa2V5LCB2YWx1ZSkKICAgICB7CiAgICAgICAgIGxldCB2YWx1ZVNldCA9IHRoaXMu
X21hcC5nZXQoa2V5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0JyZWFrcG9pbnRQb3BvdmVyQ29udHJvbGxlci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0JyZWFrcG9pbnRQb3Bv
dmVyQ29udHJvbGxlci5qcwppbmRleCAwMjMwNTA3ZWM3MS4uYTIzZmVmNDMyZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0JyZWFr
cG9pbnRQb3BvdmVyQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9CcmVha3BvaW50UG9wb3ZlckNvbnRyb2xsZXIuanMKQEAg
LTg4LDEwICs4OCw4IEBAIFdJLkJyZWFrcG9pbnRQb3BvdmVyQ29udHJvbGxlciA9IGNsYXNzIEJy
ZWFrcG9pbnRQb3BvdmVyQ29udHJvbGxlciBleHRlbmRzIFdJLk9iCiAgICAgICAgIGlmICghYnJl
YWtwb2ludC5hdXRvQ29udGludWUgJiYgIWJyZWFrcG9pbnQuZGlzYWJsZWQgJiYgYnJlYWtwb2lu
dC5hY3Rpb25zLmxlbmd0aCkKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0ku
VUlTdHJpbmcoIlNldCB0byBBdXRvbWF0aWNhbGx5IENvbnRpbnVlIiksIHRvZ2dsZUF1dG9Db250
aW51ZSk7CiAKLSAgICAgICAgaWYgKFdJLmRlYnVnZ2VyTWFuYWdlci5pc0JyZWFrcG9pbnRSZW1v
dmFibGUoYnJlYWtwb2ludCkpIHsKLSAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFy
YXRvcigpOworICAgICAgICBpZiAoV0kuZGVidWdnZXJNYW5hZ2VyLmlzQnJlYWtwb2ludFJlbW92
YWJsZShicmVha3BvaW50KSkKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0ku
VUlTdHJpbmcoIkRlbGV0ZSBCcmVha3BvaW50IiksIHJlbW92ZUJyZWFrcG9pbnQpOwotICAgICAg
ICB9CiAKICAgICAgICAgaWYgKGJyZWFrcG9pbnQuX3NvdXJjZUNvZGVMb2NhdGlvbi5oYXNNYXBw
ZWRMb2NhdGlvbigpKSB7CiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3Io
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0RPTURlYnVnZ2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTURlYnVnZ2VyTWFuYWdlci5qcwppbmRleCA2OWNlNmQx
OTllMi4uMmIwOWZkOWU4YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTURlYnVnZ2VyTWFuYWdlci5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01EZWJ1Z2dlck1hbmFn
ZXIuanMKQEAgLTE0NiwxMCArMTQ2LDggQEAgV0kuRE9NRGVidWdnZXJNYW5hZ2VyID0gY2xhc3Mg
RE9NRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHdoaWxlIChmcmFt
ZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICBsZXQgZnJhbWUgPSBmcmFtZXMuc2hpZnQoKTsKICAg
ICAgICAgICAgIGxldCBkb21CcmVha3BvaW50Tm9kZUlkZW50aWZpZXJNYXAgPSB0aGlzLl9kb21C
cmVha3BvaW50RnJhbWVJZGVudGlmaWVyTWFwLmdldChmcmFtZS5pZCk7Ci0gICAgICAgICAgICBp
ZiAoZG9tQnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFwKSB7Ci0gICAgICAgICAgICAgICAgZm9y
IChsZXQgYnJlYWtwb2ludHMgb2YgZG9tQnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFwLnZhbHVl
cygpKQotICAgICAgICAgICAgICAgICAgICByZXNvbHZlZEJyZWFrcG9pbnRzID0gcmVzb2x2ZWRC
cmVha3BvaW50cy5jb25jYXQoYnJlYWtwb2ludHMpOwotICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKGRvbUJyZWFrcG9pbnROb2RlSWRlbnRpZmllck1hcCkKKyAgICAgICAgICAgICAgICBy
ZXNvbHZlZEJyZWFrcG9pbnRzID0gcmVzb2x2ZWRCcmVha3BvaW50cy5jb25jYXQoQXJyYXkuZnJv
bShkb21CcmVha3BvaW50Tm9kZUlkZW50aWZpZXJNYXAudmFsdWVzKCkpKTsKIAogICAgICAgICAg
ICAgZnJhbWVzLnB1c2goLi4uZnJhbWUuY2hpbGRGcmFtZUNvbGxlY3Rpb24pOwogICAgICAgICB9
CkBAIC0xNzgsNyArMTc2LDI2IEBAIFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURl
YnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgcmV0dXJuIFtdOwog
CiAgICAgICAgIGxldCBicmVha3BvaW50cyA9IGRvbUJyZWFrcG9pbnROb2RlSWRlbnRpZmllck1h
cC5nZXQobm9kZS5pZCk7Ci0gICAgICAgIHJldHVybiBicmVha3BvaW50cyA/IGJyZWFrcG9pbnRz
LnNsaWNlKCkgOiBbXTsKKyAgICAgICAgcmV0dXJuIGJyZWFrcG9pbnRzID8gQXJyYXkuZnJvbShi
cmVha3BvaW50cykgOiBbXTsKKyAgICB9CisKKyAgICBkb21CcmVha3BvaW50c0luU3VidHJlZShu
b2RlKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQobm9kZSBpbnN0YW5jZW9mIFdJLkRP
TU5vZGUpOworCisgICAgICAgIGxldCBicmVha3BvaW50cyA9IFtdOworCisgICAgICAgIGlmIChu
b2RlLmNoaWxkcmVuKSB7CisgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVu
LnNsaWNlKCk7CisgICAgICAgICAgICB3aGlsZSAoY2hpbGRyZW4ubGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgbGV0IGNoaWxkID0gY2hpbGRyZW4ucG9wKCk7CisgICAgICAgICAgICAgICAgaWYg
KGNoaWxkLmNoaWxkcmVuKQorICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVu
LmNvbmNhdChjaGlsZC5jaGlsZHJlbik7CisgICAgICAgICAgICAgICAgYnJlYWtwb2ludHMgPSBi
cmVha3BvaW50cy5jb25jYXQodGhpcy5kb21CcmVha3BvaW50c0Zvck5vZGUoY2hpbGQpKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBicmVha3BvaW50czsKICAg
ICB9CiAKICAgICBhZGRET01CcmVha3BvaW50KGJyZWFrcG9pbnQpCkBAIC0yMTUsMTEgKzIzMiw2
IEBAIFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdlciBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAg
bGV0IG5vZGVJZGVudGlmaWVyID0gYnJlYWtwb2ludC5kb21Ob2RlSWRlbnRpZmllcjsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQobm9kZUlkZW50aWZpZXIsICJDYW5ub3QgcmVtb3ZlIHVucmVzb2x2
ZWQgRE9NIGJyZWFrcG9pbnQuIik7Ci0gICAgICAgIGlmICghbm9kZUlkZW50aWZpZXIpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KICAgICAgICAgdGhpcy5fZGV0YWNoRE9NQnJlYWtwb2ludChicmVh
a3BvaW50KTsKIAogICAgICAgICB0aGlzLl9kb21CcmVha3BvaW50VVJMTWFwLmRlbGV0ZShicmVh
a3BvaW50LnVybCk7CkBAIC0yMjcsNyArMjM5LDcgQEAgV0kuRE9NRGVidWdnZXJNYW5hZ2VyID0g
Y2xhc3MgRE9NRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmICgh
YnJlYWtwb2ludC5kaXNhYmxlZCkgewogICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIGdldCB0aGUg
dGFyZ2V0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZUlkZW50aWZpZXIgb2YgdGhpcyBicmVha3Bv
aW50LgogICAgICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwot
ICAgICAgICAgICAgdGFyZ2V0LkRPTURlYnVnZ2VyQWdlbnQucmVtb3ZlRE9NQnJlYWtwb2ludChu
b2RlSWRlbnRpZmllciwgYnJlYWtwb2ludC50eXBlKTsKKyAgICAgICAgICAgIHRhcmdldC5ET01E
ZWJ1Z2dlckFnZW50LnJlbW92ZURPTUJyZWFrcG9pbnQoYnJlYWtwb2ludC5kb21Ob2RlSWRlbnRp
ZmllciwgYnJlYWtwb2ludC50eXBlKTsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkRPTURlYnVnZ2VyTWFuYWdlci5FdmVudC5ET01CcmVha3Bv
aW50UmVtb3ZlZCwge2JyZWFrcG9pbnR9KTsKQEAgLTQwNiwxNyArNDE4LDcgQEAgV0kuRE9NRGVi
dWdnZXJNYW5hZ2VyID0gY2xhc3MgRE9NRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIGlmICghZG9tQnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFwKQogICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgICAgIGxldCBicmVha3BvaW50cyA9IGRvbUJyZWFrcG9pbnROb2Rl
SWRlbnRpZmllck1hcC5nZXQobm9kZUlkZW50aWZpZXIpOwotICAgICAgICBjb25zb2xlLmFzc2Vy
dChicmVha3BvaW50cywgIk1pc3NpbmcgRE9NIGJyZWFrcG9pbnRzIGZvciBub2RlLiIsIG5vZGUp
OwotICAgICAgICBpZiAoIWJyZWFrcG9pbnRzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIGJyZWFrcG9pbnRzLnJlbW92ZShicmVha3BvaW50LCB0cnVlKTsKLQotICAgICAgICBpZiAo
YnJlYWtwb2ludHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGRvbUJy
ZWFrcG9pbnROb2RlSWRlbnRpZmllck1hcC5kZWxldGUobm9kZUlkZW50aWZpZXIpOworICAgICAg
ICBkb21CcmVha3BvaW50Tm9kZUlkZW50aWZpZXJNYXAuZGVsZXRlKG5vZGVJZGVudGlmaWVyLCBi
cmVha3BvaW50KTsKIAogICAgICAgICBpZiAoIWRvbUJyZWFrcG9pbnROb2RlSWRlbnRpZmllck1h
cC5zaXplKQogICAgICAgICAgICAgdGhpcy5fZG9tQnJlYWtwb2ludEZyYW1lSWRlbnRpZmllck1h
cC5kZWxldGUoZnJhbWVJZGVudGlmaWVyKTsKQEAgLTQzMCwxMCArNDMyLDggQEAgV0kuRE9NRGVi
dWdnZXJNYW5hZ2VyID0gY2xhc3MgRE9NRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAKICAgICAgICAgdGhpcy5fZG9tQnJlYWtwb2ludEZyYW1lSWRlbnRpZmllck1hcC5kZWxldGUo
ZnJhbWUuaWQpOwogCi0gICAgICAgIGZvciAobGV0IGJyZWFrcG9pbnRzIG9mIGRvbUJyZWFrcG9p
bnROb2RlSWRlbnRpZmllck1hcC52YWx1ZXMoKSkgewotICAgICAgICAgICAgZm9yIChsZXQgYnJl
YWtwb2ludCBvZiBicmVha3BvaW50cykKLSAgICAgICAgICAgICAgICBicmVha3BvaW50LmRvbU5v
ZGVJZGVudGlmaWVyID0gbnVsbDsKLSAgICAgICAgfQorICAgICAgICBmb3IgKGxldCBicmVha3Bv
aW50IG9mIGRvbUJyZWFrcG9pbnROb2RlSWRlbnRpZmllck1hcC52YWx1ZXMoKSkKKyAgICAgICAg
ICAgIGJyZWFrcG9pbnQuZG9tTm9kZUlkZW50aWZpZXIgPSBudWxsOwogICAgIH0KIAogICAgIF9z
cGVjdWxhdGl2ZWx5UmVzb2x2ZURPTUJyZWFrcG9pbnRzRm9yVVJMKHVybCkKQEAgLTQ0Nyw2ICs0
NDcsMTQgQEAgV0kuRE9NRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRE9NRGVidWdnZXJNYW5hZ2Vy
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAg
ICAgIFdJLmRvbU1hbmFnZXIucHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKGJyZWFrcG9pbnQucGF0
aCwgKG5vZGVJZGVudGlmaWVyKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQu
ZG9tTm9kZUlkZW50aWZpZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBicmVha3Bv
aW50IG1heSBoYXZlIGJlZW4gcmVzb2x2ZWQgYnkgYSBub2RlIGJlaW5nIGluc2VydGVkIGJlZm9y
ZSB0aGlzCisgICAgICAgICAgICAgICAgICAgIC8vIGNhbGxiYWNrIGlzIGludm9rZWQuICBJZiBz
bywgdGhlIGBub2RlSWRlbnRpZmllcmAgc2hvdWxkIG1hdGNoLCBzbyBkb24ndCB0cnkKKyAgICAg
ICAgICAgICAgICAgICAgLy8gdG8gcmVzb2x2ZSBpdCBhZ2FpbiBhcyBpdCB3b3VsZCd2ZSBhbHJl
YWR5IGJlZW4gcmVzb2x2ZWQuCisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGJy
ZWFrcG9pbnQuZG9tTm9kZUlkZW50aWZpZXIgPT09IG5vZGVJZGVudGlmaWVyKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAg
IGlmIChub2RlSWRlbnRpZmllcikKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVzb2x2ZURP
TUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgbm9kZUlkZW50aWZpZXIpOwogICAgICAgICAgICAgfSk7
CkBAIC00NjMsMTUgKzQ3MSwxMSBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01E
ZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgbGV0IGZyYW1lSWRlbnRp
ZmllciA9IG5vZGUuZnJhbWUuaWQ7CiAgICAgICAgIGxldCBkb21CcmVha3BvaW50Tm9kZUlkZW50
aWZpZXJNYXAgPSB0aGlzLl9kb21CcmVha3BvaW50RnJhbWVJZGVudGlmaWVyTWFwLmdldChmcmFt
ZUlkZW50aWZpZXIpOwogICAgICAgICBpZiAoIWRvbUJyZWFrcG9pbnROb2RlSWRlbnRpZmllck1h
cCkgewotICAgICAgICAgICAgZG9tQnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFwID0gbmV3IE1h
cDsKKyAgICAgICAgICAgIGRvbUJyZWFrcG9pbnROb2RlSWRlbnRpZmllck1hcCA9IG5ldyBNdWx0
aW1hcDsKICAgICAgICAgICAgIHRoaXMuX2RvbUJyZWFrcG9pbnRGcmFtZUlkZW50aWZpZXJNYXAu
c2V0KGZyYW1lSWRlbnRpZmllciwgZG9tQnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFwKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGxldCBicmVha3BvaW50cyA9IGRvbUJyZWFrcG9pbnROb2RlSWRl
bnRpZmllck1hcC5nZXQobm9kZUlkZW50aWZpZXIpOwotICAgICAgICBpZiAoYnJlYWtwb2ludHMp
Ci0gICAgICAgICAgICBicmVha3BvaW50cy5wdXNoKGJyZWFrcG9pbnQpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBkb21CcmVha3BvaW50Tm9kZUlkZW50aWZpZXJNYXAuc2V0KG5vZGVJZGVu
dGlmaWVyLCBbYnJlYWtwb2ludF0pOworICAgICAgICBkb21CcmVha3BvaW50Tm9kZUlkZW50aWZp
ZXJNYXAuYWRkKG5vZGVJZGVudGlmaWVyLCBicmVha3BvaW50KTsKIAogICAgICAgICBicmVha3Bv
aW50LmRvbU5vZGVJZGVudGlmaWVyID0gbm9kZUlkZW50aWZpZXI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0
aWVzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4
dE1lbnVVdGlsaXRpZXMuanMKaW5kZXggM2UzOTVjNTE1YTMuLjVjMjdlMmJlZjUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVu
dVV0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qcwpAQCAtMjI0LDcgKzIyNCw3IEBAIFdJLmFwcGVu
ZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlID0gZnVuY3Rpb24oY29udGV4dE1lbnUsIGRvbU5v
ZGUsIG9wdGlvbnMgPSB7CiAgICAgaWYgKFdJLmRvbURlYnVnZ2VyTWFuYWdlci5zdXBwb3J0ZWQg
JiYgaXNFbGVtZW50ICYmICFkb21Ob2RlLmlzUHNldWRvRWxlbWVudCgpICYmIGF0dGFjaGVkKSB7
CiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwogCi0gICAgICAgIFdJLmFw
cGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlQnJlYWtwb2ludHMoY29udGV4dE1lbnUsIGRv
bU5vZGUpOworICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZUJyZWFr
cG9pbnRzKGNvbnRleHRNZW51LCBkb21Ob2RlLCBvcHRpb25zKTsKICAgICB9CiAKICAgICBjb250
ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKQEAgLTI4NCw0MyArMjg0LDY0IEBAIFdJLmFwcGVu
ZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlID0gZnVuY3Rpb24oY29udGV4dE1lbnUsIGRvbU5v
ZGUsIG9wdGlvbnMgPSB7CiAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CiB9Owog
Ci1XSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZUJyZWFrcG9pbnRzID0gZnVuY3Rp
b24oY29udGV4dE1lbnUsIGRvbU5vZGUsIHthbGxvd0VkaXRpbmd9ID0ge30pCitXSS5hcHBlbmRD
b250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZUJyZWFrcG9pbnRzID0gZnVuY3Rpb24oY29udGV4dE1l
bnUsIGRvbU5vZGUsIG9wdGlvbnMgPSB7fSkKIHsKICAgICBpZiAoY29udGV4dE1lbnUuX19kb21C
cmVha3BvaW50SXRlbXNBZGRlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY29udGV4dE1lbnUu
X19kb21CcmVha3BvaW50SXRlbXNBZGRlZCA9IHRydWU7CiAKLSAgICBsZXQgc3ViTWVudSA9IGNv
bnRleHRNZW51LmFwcGVuZFN1Yk1lbnVJdGVtKFdJLlVJU3RyaW5nKCJCcmVhayBvbiIpKTsKLQog
ICAgIGxldCBicmVha3BvaW50cyA9IFdJLmRvbURlYnVnZ2VyTWFuYWdlci5kb21CcmVha3BvaW50
c0Zvck5vZGUoZG9tTm9kZSk7Ci0gICAgbGV0IGtleVZhbHVlUGFpcnMgPSBicmVha3BvaW50cy5t
YXAoKGJyZWFrcG9pbnQpID0+IFticmVha3BvaW50LnR5cGUsIGJyZWFrcG9pbnRdKTsKLSAgICBs
ZXQgYnJlYWtwb2ludHNCeVR5cGUgPSBuZXcgTWFwKGtleVZhbHVlUGFpcnMpOworCisgICAgY29u
dGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisKKyAgICBsZXQgc3ViTWVudSA9IGNvbnRleHRN
ZW51LmFwcGVuZFN1Yk1lbnVJdGVtKFdJLlVJU3RyaW5nKCJCcmVhayBvbiIpKTsKIAogICAgIGZv
ciAobGV0IHR5cGUgb2YgT2JqZWN0LnZhbHVlcyhXSS5ET01CcmVha3BvaW50LlR5cGUpKSB7CiAg
ICAgICAgIGxldCBsYWJlbCA9IFdJLkRPTUJyZWFrcG9pbnRUcmVlRWxlbWVudC5kaXNwbGF5TmFt
ZUZvclR5cGUodHlwZSk7Ci0gICAgICAgIGxldCBicmVha3BvaW50ID0gYnJlYWtwb2ludHNCeVR5
cGUuZ2V0KHR5cGUpOworICAgICAgICBsZXQgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRzLmZpbmQo
KGJyZWFrcG9pbnQpID0+IGJyZWFrcG9pbnQudHlwZSA9PT0gdHlwZSk7CiAKICAgICAgICAgc3Vi
TWVudS5hcHBlbmRDaGVja2JveEl0ZW0obGFiZWwsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
aWYgKGJyZWFrcG9pbnQpCiAgICAgICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLnJl
bW92ZURPTUJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFkZERPTUJyZWFrcG9pbnQobmV3IFdJLkRP
TUJyZWFrcG9pbnQoZG9tTm9kZSwgdHlwZSkpOwotICAgICAgICB9LCAhIWJyZWFrcG9pbnQsIGZh
bHNlKTsKKyAgICAgICAgfSwgISFicmVha3BvaW50KTsKICAgICB9CiAKLSAgICBpZiAoYWxsb3dF
ZGl0aW5nKSB7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOworICAgIGNv
bnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwogCisgICAgaWYgKGJyZWFrcG9pbnRzLmxlbmd0
aCkgewogICAgICAgICBsZXQgc2hvdWxkRW5hYmxlID0gYnJlYWtwb2ludHMuc29tZSgoYnJlYWtw
b2ludCkgPT4gYnJlYWtwb2ludC5kaXNhYmxlZCk7Ci0gICAgICAgIGxldCBsYWJlbCA9IHNob3Vs
ZEVuYWJsZSA/IFdJLlVJU3RyaW5nKCJFbmFibGUgQnJlYWtwb2ludHMiKSA6IFdJLlVJU3RyaW5n
KCJEaXNhYmxlIEJyZWFrcG9pbnRzIik7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0o
bGFiZWwsICgpID0+IHsKLSAgICAgICAgICAgIGJyZWFrcG9pbnRzLmZvckVhY2goKGJyZWFrcG9p
bnQpID0+IGJyZWFrcG9pbnQuZGlzYWJsZWQgPSAhc2hvdWxkRW5hYmxlKTsKKyAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbShzaG91bGRFbmFibGUgPyBXSS5VSVN0cmluZygiRW5hYmxlIEJy
ZWFrcG9pbnQiKSA6IFdJLlVJU3RyaW5nKCJEaXNhYmxlIEJyZWFrcG9pbnQiKSwgKCkgPT4gewor
ICAgICAgICAgICAgZm9yIChsZXQgYnJlYWtwb2ludCBvZiBicmVha3BvaW50cykKKyAgICAgICAg
ICAgICAgICBicmVha3BvaW50LmRpc2FibGVkID0gIXNob3VsZEVuYWJsZTsKICAgICAgICAgfSk7
CiAKLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiRGVsZXRlIEJy
ZWFrcG9pbnRzIiksIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5h
Z2VyLnJlbW92ZURPTUJyZWFrcG9pbnRzRm9yTm9kZShkb21Ob2RlKTsKLSAgICAgICAgICAgIFdJ
LmRvbU1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzRm9yTm9kZShkb21Ob2Rl
KTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiRGVsZXRlIEJy
ZWFrcG9pbnQiKSwgKCkgPT4geworICAgICAgICAgICAgZm9yIChsZXQgYnJlYWtwb2ludCBvZiBi
cmVha3BvaW50cykKKyAgICAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIucmVtb3Zl
RE9NQnJlYWtwb2ludChicmVha3BvaW50KTsKICAgICAgICAgfSk7CisKKyAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgfQorCisgICAgbGV0IHN1YnRyZWVCcmVha3Bv
aW50cyA9IFdJLmRvbURlYnVnZ2VyTWFuYWdlci5kb21CcmVha3BvaW50c0luU3VidHJlZShkb21O
b2RlKTsKKyAgICBpZiAoc3VidHJlZUJyZWFrcG9pbnRzLmxlbmd0aCkgeworICAgICAgICBpZiAo
b3B0aW9ucy5yZXZlYWxEZXNjZW5kYW50QnJlYWtwb2ludHNNZW51SXRlbUhhbmRsZXIpCisgICAg
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJSZXZlYWwgRGVzY2Vu
ZGFudCBCcmVha3BvaW50cyIpLCBvcHRpb25zLnJldmVhbERlc2NlbmRhbnRCcmVha3BvaW50c01l
bnVJdGVtSGFuZGxlcik7CisKKyAgICAgICAgbGV0IHN1YnRyZWVTaG91bGRFbmFibGUgPSBzdWJ0
cmVlQnJlYWtwb2ludHMuc29tZSgoYnJlYWtwb2ludCkgPT4gYnJlYWtwb2ludC5kaXNhYmxlZCk7
CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oc3VidHJlZVNob3VsZEVuYWJsZSA/IFdJ
LlVJU3RyaW5nKCJFbmFibGUgRGVzY2VuZGFudCBCcmVha3BvaW50cyIpIDogV0kuVUlTdHJpbmco
IkRpc2FibGUgRGVzY2VuZGFudCBCcmVha3BvaW50cyIpLCAoKSA9PiB7CisgICAgICAgICAgICBm
b3IgKGxldCBzdWJ0cmVlQnJlYWtwb2ludCBvZiBzdWJ0cmVlQnJlYWtwb2ludHMpCisgICAgICAg
ICAgICAgICAgc3VidHJlZUJyZWFrcG9pbnQuZGlzYWJsZWQgPSAhc3VidHJlZVNob3VsZEVuYWJs
ZTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0
cmluZygiRGVsZXRlIERlc2NlbmRhbnQgQnJlYWtwb2ludHMiKSwgKCkgPT4geworICAgICAgICAg
ICAgZm9yIChsZXQgc3VidHJlZUJyZWFrcG9pbnQgb2Ygc3VidHJlZUJyZWFrcG9pbnRzKQorICAg
ICAgICAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5yZW1vdmVET01CcmVha3BvaW50KHN1
YnRyZWVCcmVha3BvaW50KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBw
ZW5kU2VwYXJhdG9yKCk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTUJyZWFrcG9pbnRUcmVlRWxlbWVudC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTUJyZWFrcG9pbnRUcmVl
RWxlbWVudC5qcwppbmRleCA5OTFkNzE2ZGI1YS4uYzBjYzVhMWE3YmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTUJyZWFrcG9pbnRUcmVl
RWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9ET01CcmVha3BvaW50VHJlZUVsZW1lbnQuanMKQEAgLTEyNiw3ICsxMjYsNiBAQCBXSS5ET01C
cmVha3BvaW50VHJlZUVsZW1lbnQgPSBjbGFzcyBET01CcmVha3BvaW50VHJlZUVsZW1lbnQgZXh0
ZW5kcyBXSS5HZW5lcmFsVAogICAgICAgICBsZXQgbGFiZWwgPSBicmVha3BvaW50LmRpc2FibGVk
ID8gV0kuVUlTdHJpbmcoIkVuYWJsZSBCcmVha3BvaW50IikgOiBXSS5VSVN0cmluZygiRGlzYWJs
ZSBCcmVha3BvaW50Iik7CiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0obGFiZWwsIHRo
aXMuX3RvZ2dsZUJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CiAKLSAgICAgICAgY29udGV4dE1lbnUu
YXBwZW5kU2VwYXJhdG9yKCk7CiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlT
dHJpbmcoIkRlbGV0ZSBCcmVha3BvaW50IiksIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgV0ku
ZG9tRGVidWdnZXJNYW5hZ2VyLnJlbW92ZURPTUJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CiAgICAg
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NTm9kZVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRE9NTm9kZVRyZWVFbGVtZW50LmpzCmluZGV4IGFkYWZmM2ZhYWU4Li5i
ZjBkOTc5OTNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRE9NTm9kZVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVUcmVlRWxlbWVudC5qcwpAQCAtNTUsOSArNTUs
NyBAQCBXSS5ET01Ob2RlVHJlZUVsZW1lbnQgPSBjbGFzcyBET01Ob2RlVHJlZUVsZW1lbnQgZXh0
ZW5kcyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQKICAgICB7CiAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZFNlcGFyYXRvcigpOwogCi0gICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JE
T01Ob2RlQnJlYWtwb2ludHMoY29udGV4dE1lbnUsIHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIHsK
LSAgICAgICAgICAgIGFsbG93RWRpdGluZzogdHJ1ZSwKLSAgICAgICAgfSk7CisgICAgICAgIFdJ
LmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlQnJlYWtwb2ludHMoY29udGV4dE1lbnUs
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QpOwogCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNl
cGFyYXRvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzCmluZGV4IDliMWIzYjYxY2FhLi43ZGRh
NjNmNWUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMKQEAgLTQ1LDcgKzQ1LDcgQEAgV0kuRE9N
VHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdJLlRyZWVFbGVtZW50
CiAgICAgICAgIHRoaXMuX2FuaW1hdGluZ0hpZ2hsaWdodCA9IGZhbHNlOwogICAgICAgICB0aGlz
Ll9zaG91bGRIaWdobGlnaHRBZnRlclJldmVhbCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9ib3Vu
ZEhpZ2hsaWdodEFuaW1hdGlvbkVuZCA9IHRoaXMuX2hpZ2hsaWdodEFuaW1hdGlvbkVuZC5iaW5k
KHRoaXMpOwotICAgICAgICB0aGlzLl9zdWJ0cmVlQnJlYWtwb2ludENvdW50ID0gMDsKKyAgICAg
ICAgdGhpcy5fc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxlbWVudHMgPSBudWxsOwogCiAgICAgICAg
IHRoaXMuX3Nob3dHb1RvQXJyb3cgPSBmYWxzZTsKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWRB
dHRyaWJ1dGVzID0gbmV3IFNldDsKQEAgLTc2LDcgKzc2LDcgQEAgV0kuRE9NVHJlZUVsZW1lbnQg
PSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdJLlRyZWVFbGVtZW50CiAKICAgICBnZXQg
aGFzQnJlYWtwb2ludCgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludFN0
YXR1cyAhPT0gV0kuRE9NVHJlZUVsZW1lbnQuQnJlYWtwb2ludFN0YXR1cy5Ob25lIHx8IHRoaXMu
X3N1YnRyZWVCcmVha3BvaW50Q291bnQgPiAwOworICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtw
b2ludFN0YXR1cyAhPT0gV0kuRE9NVHJlZUVsZW1lbnQuQnJlYWtwb2ludFN0YXR1cy5Ob25lIHx8
ICh0aGlzLl9zdWJ0cmVlQnJlYWtwb2ludFRyZWVFbGVtZW50cyAmJiB0aGlzLl9zdWJ0cmVlQnJl
YWtwb2ludFRyZWVFbGVtZW50cy5zaXplKTsKICAgICB9CiAKICAgICBnZXQgYnJlYWtwb2ludFN0
YXR1cygpCkBAIC0xMDMsMTEgKzEwMywyNSBAQCBXSS5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERP
TVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuVHJlZUVsZW1lbnQKIAogICAgICAgICBsZXQgcGFyZW50
RWxlbWVudCA9IHRoaXMucGFyZW50OwogICAgICAgICB3aGlsZSAocGFyZW50RWxlbWVudCAmJiAh
cGFyZW50RWxlbWVudC5yb290KSB7Ci0gICAgICAgICAgICBwYXJlbnRFbGVtZW50LnN1YnRyZWVC
cmVha3BvaW50Q291bnREaWRDaGFuZ2UoaW5jcmVtZW50KTsKKyAgICAgICAgICAgIHBhcmVudEVs
ZW1lbnQuX3N1YnRyZWVCcmVha3BvaW50Q2hhbmdlZCh0aGlzKTsKICAgICAgICAgICAgIHBhcmVu
dEVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LnBhcmVudDsKICAgICAgICAgfQogICAgIH0KIAorICAg
IGJpbmRSZXZlYWxEZXNjZW5kYW50QnJlYWtwb2ludHNNZW51SXRlbUhhbmRsZXIoKQorICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLl9zdWJ0cmVlQnJlYWtwb2ludFRyZWVFbGVtZW50cyB8fCAhdGhp
cy5fc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxlbWVudHMuc2l6ZSkKKyAgICAgICAgICAgIHJldHVy
biBudWxsOworCisgICAgICAgIGxldCBzdWJ0cmVlQnJlYWtwb2ludFRyZWVFbGVtZW50cyA9IEFy
cmF5LmZyb20odGhpcy5fc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxlbWVudHMpOworICAgICAgICBy
ZXR1cm4gKCkgPT4geworICAgICAgICAgICAgZm9yIChsZXQgc3VidHJlZUJyZWFrcG9pbnRUcmVl
RWxlbWVudCBvZiBzdWJ0cmVlQnJlYWtwb2ludFRyZWVFbGVtZW50cykKKyAgICAgICAgICAgICAg
ICBzdWJ0cmVlQnJlYWtwb2ludFRyZWVFbGVtZW50LnJldmVhbCgpOworCisgICAgICAgICAgICB0
aGlzLnRyZWVPdXRsaW5lLnNlbGVjdFRyZWVFbGVtZW50cyhzdWJ0cmVlQnJlYWtwb2ludFRyZWVF
bGVtZW50cyk7CisgICAgICAgIH07CisgICAgfQorCiAgICAgZ2V0IGNsb3NlVGFnVHJlZUVsZW1l
bnQoKSB7IHJldHVybiB0aGlzLl9jbG9zZVRhZ1RyZWVFbGVtZW50OyB9CiAKICAgICByZXZlYWxB
bmRIaWdobGlnaHQoKQpAQCAtMTE5LDEyICsxMzMsNiBAQCBXSS5ET01UcmVlRWxlbWVudCA9IGNs
YXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuVHJlZUVsZW1lbnQKICAgICAgICAgdGhpcy5y
ZXZlYWwoKTsKICAgICB9CiAKLSAgICBzdWJ0cmVlQnJlYWtwb2ludENvdW50RGlkQ2hhbmdlKGlu
Y3JlbWVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3N1YnRyZWVCcmVha3BvaW50Q291bnQgKz0g
aW5jcmVtZW50OwotICAgICAgICB0aGlzLl91cGRhdGVCcmVha3BvaW50U3RhdHVzKCk7Ci0gICAg
fQotCiAgICAgaXNDbG9zZVRhZygpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVu
dENsb3NlVGFnOwpAQCAtMTg3Miw2ICsxODgwLDIxIEBAIFdJLkRPTVRyZWVFbGVtZW50ID0gY2xh
c3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5UcmVlRWxlbWVudAogICAgICAgICAgICAgZXZl
bnQucHJldmVudERlZmF1bHQoKTsKICAgICB9CiAKKyAgICBfc3VidHJlZUJyZWFrcG9pbnRDaGFu
Z2VkKHRyZWVFbGVtZW50KQorICAgIHsKKyAgICAgICAgaWYgKHRyZWVFbGVtZW50Lmhhc0JyZWFr
cG9pbnQpIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5fc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxl
bWVudHMpCisgICAgICAgICAgICAgICAgdGhpcy5fc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxlbWVu
dHMgPSBuZXcgU2V0OworICAgICAgICAgICAgdGhpcy5fc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxl
bWVudHMuYWRkKHRyZWVFbGVtZW50KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRo
aXMuX3N1YnRyZWVCcmVha3BvaW50VHJlZUVsZW1lbnRzLmRlbGV0ZSh0cmVlRWxlbWVudCk7Cisg
ICAgICAgICAgICBpZiAoIXRoaXMuX3N1YnRyZWVCcmVha3BvaW50VHJlZUVsZW1lbnRzLnNpemUp
CisgICAgICAgICAgICAgICAgdGhpcy5fc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxlbWVudHMgPSBu
dWxsOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fdXBkYXRlQnJlYWtwb2ludFN0YXR1cygp
OworICAgIH0KKwogICAgIF91cGRhdGVCcmVha3BvaW50U3RhdHVzKCkKICAgICB7CiAgICAgICAg
IGxldCBsaXN0SXRlbUVsZW1lbnQgPSB0aGlzLmxpc3RJdGVtRWxlbWVudDsKQEAgLTE4NzksNyAr
MTkwMiw3IEBAIFdJLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5k
cyBXSS5UcmVlRWxlbWVudAogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGxldCBoYXNC
cmVha3BvaW50ID0gdGhpcy5fYnJlYWtwb2ludFN0YXR1cyAhPT0gV0kuRE9NVHJlZUVsZW1lbnQu
QnJlYWtwb2ludFN0YXR1cy5Ob25lOwotICAgICAgICBsZXQgaGFzU3VidHJlZUJyZWFrcG9pbnRz
ID0gISF0aGlzLl9zdWJ0cmVlQnJlYWtwb2ludENvdW50OworICAgICAgICBsZXQgaGFzU3VidHJl
ZUJyZWFrcG9pbnRzID0gdGhpcy5fc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxlbWVudHMgJiYgdGhp
cy5fc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxlbWVudHMuc2l6ZTsKIAogICAgICAgICBpZiAoIWhh
c0JyZWFrcG9pbnQgJiYgIWhhc1N1YnRyZWVCcmVha3BvaW50cykgewogICAgICAgICAgICAgaWYg
KHRoaXMuX3N0YXR1c0ltYWdlRWxlbWVudCkKQEAgLTE5MjEsMjYgKzE5NDQsMTMgQEAgV0kuRE9N
VHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdJLlRyZWVFbGVtZW50
CiAKICAgICBfc3RhdHVzSW1hZ2VDb250ZXh0bWVudShldmVudCkKICAgICB7Ci0gICAgICAgIGxl
dCBoYXNCcmVha3BvaW50ID0gdGhpcy5fYnJlYWtwb2ludFN0YXR1cyAhPT0gV0kuRE9NVHJlZUVs
ZW1lbnQuQnJlYWtwb2ludFN0YXR1cy5Ob25lOwotICAgICAgICBsZXQgaGFzU3VidHJlZUJyZWFr
cG9pbnRzID0gISF0aGlzLl9zdWJ0cmVlQnJlYWtwb2ludENvdW50OwotICAgICAgICBpZiAoIWhh
c0JyZWFrcG9pbnQgJiYgIWhhc1N1YnRyZWVCcmVha3BvaW50cykKKyAgICAgICAgaWYgKCF0aGlz
Lmhhc0JyZWFrcG9pbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbGV0IGNvbnRl
eHRNZW51ID0gV0kuQ29udGV4dE1lbnUuY3JlYXRlRnJvbUV2ZW50KGV2ZW50KTsKLSAgICAgICAg
aWYgKGhhc0JyZWFrcG9pbnQpIHsKLSAgICAgICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRl
bXNGb3JET01Ob2RlQnJlYWtwb2ludHMoY29udGV4dE1lbnUsIHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QsIHsKLSAgICAgICAgICAgICAgICBhbGxvd0VkaXRpbmc6IHRydWUsCi0gICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogCi0gICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlJldmVhbCBCcmVha3BvaW50IiksICgpID0+IHsKLSAg
ICAgICAgICAgIGxldCBicmVha3BvaW50VHJlZUVsZW1lbnQgPSB0aGlzLnNlbGZPckRlc2NlbmRh
bnQoKHRyZWVFbGVtZW50KSA9PiB0cmVlRWxlbWVudC5icmVha3BvaW50U3RhdHVzICYmIHRyZWVF
bGVtZW50LmJyZWFrcG9pbnRTdGF0dXMgIT09IFdJLkRPTVRyZWVFbGVtZW50LkJyZWFrcG9pbnRT
dGF0dXMuTm9uZSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChicmVha3BvaW50VHJlZUVs
ZW1lbnQsICJNaXNzaW5nIGJyZWFrcG9pbnQgZGVzY2VuZGFudC4iLCB0aGlzKTsKLSAgICAgICAg
ICAgIGlmICghYnJlYWtwb2ludFRyZWVFbGVtZW50KQotICAgICAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICAgICAgYnJlYWtwb2ludFRyZWVFbGVtZW50LnJldmVhbEFuZEhpZ2hsaWdodCgp
OworICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZUJyZWFrcG9pbnRz
KGNvbnRleHRNZW51LCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCB7CisgICAgICAgICAgICByZXZl
YWxEZXNjZW5kYW50QnJlYWtwb2ludHNNZW51SXRlbUhhbmRsZXI6IHRoaXMuYmluZFJldmVhbERl
c2NlbmRhbnRCcmVha3BvaW50c01lbnVJdGVtSGFuZGxlcigpLAogICAgICAgICB9KTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RPTVRyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NVHJlZU91dGxpbmUuanMKaW5kZXggNDA0MDc1ZDdiOWUuLjBkZGIwZDkxMDJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01U
cmVlT3V0bGluZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9ET01UcmVlT3V0bGluZS5qcwpAQCAtMjg5LDYgKzI4OSwxMCBAQCBXSS5ET01UcmVlT3V0
bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuVHJlZU91dGxpbmUKICAgICAg
ICAgICAgIGV4Y2x1ZGVSZXZlYWxFbGVtZW50OiB0aGlzLl9leGNsdWRlUmV2ZWFsRWxlbWVudENv
bnRleHRNZW51LAogICAgICAgICAgICAgY29weVN1Yk1lbnU6IHN1Yk1lbnVzLmNvcHksCiAgICAg
ICAgIH07CisKKyAgICAgICAgaWYgKHRyZWVFbGVtZW50LmJpbmRSZXZlYWxEZXNjZW5kYW50QnJl
YWtwb2ludHNNZW51SXRlbUhhbmRsZXIpCisgICAgICAgICAgICBvcHRpb25zLnJldmVhbERlc2Nl
bmRhbnRCcmVha3BvaW50c01lbnVJdGVtSGFuZGxlciA9IHRyZWVFbGVtZW50LmJpbmRSZXZlYWxE
ZXNjZW5kYW50QnJlYWtwb2ludHNNZW51SXRlbUhhbmRsZXIoKTsKKwogICAgICAgICBXSS5hcHBl
bmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZShjb250ZXh0TWVudSwgdHJlZUVsZW1lbnQucmVw
cmVzZW50ZWRPYmplY3QsIG9wdGlvbnMpOwogCiAgICAgICAgIHN1cGVyLnBvcHVsYXRlQ29udGV4
dE1lbnUoY29udGV4dE1lbnUsIGV2ZW50LCB0cmVlRWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9FdmVudEJyZWFrcG9pbnRUcmVl
RWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0V2
ZW50QnJlYWtwb2ludFRyZWVFbGVtZW50LmpzCmluZGV4IDA0ZGRkYTIzMDhhLi43MjY4MDNkOGUz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RXZlbnRCcmVha3BvaW50VHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRXZlbnRCcmVha3BvaW50VHJlZUVsZW1lbnQuanMKQEAgLTEx
NCw4ICsxMTQsNiBAQCBXSS5FdmVudEJyZWFrcG9pbnRUcmVlRWxlbWVudCA9IGNsYXNzIEV2ZW50
QnJlYWtwb2ludFRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZQogICAgICAgICBsZXQgbGFiZWwg
PSBicmVha3BvaW50LmRpc2FibGVkID8gV0kuVUlTdHJpbmcoIkVuYWJsZSBCcmVha3BvaW50Iikg
OiBXSS5VSVN0cmluZygiRGlzYWJsZSBCcmVha3BvaW50Iik7CiAgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0obGFiZWwsIHRoaXMuX3RvZ2dsZUJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CiAK
LSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7Ci0KICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiRGVsZXRlIEJyZWFrcG9pbnQiKSwgKCkgPT4g
ewogICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQuZXZlbnRMaXN0ZW5lcikKICAgICAgICAgICAg
ICAgICBXSS5kb21NYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnRGb3JFdmVudExpc3RlbmVyKGJyZWFr
cG9pbnQuZXZlbnRMaXN0ZW5lcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9VUkxCcmVha3BvaW50VHJlZUVsZW1lbnQuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9VUkxCcmVha3BvaW50VHJlZUVsZW1l
bnQuanMKaW5kZXggMDViMTgwOGUzNzIuLjU0MTNjMzJiODgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9VUkxCcmVha3BvaW50VHJlZUVsZW1l
bnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVVJM
QnJlYWtwb2ludFRyZWVFbGVtZW50LmpzCkBAIC0xMTQsOCArMTE0LDYgQEAgV0kuVVJMQnJlYWtw
b2ludFRyZWVFbGVtZW50ID0gY2xhc3MgVVJMQnJlYWtwb2ludFRyZWVFbGVtZW50IGV4dGVuZHMg
V0kuR2VuZXJhbFQKICAgICAgICAgbGV0IGxhYmVsID0gYnJlYWtwb2ludC5kaXNhYmxlZCA/IFdJ
LlVJU3RyaW5nKCJFbmFibGUgQnJlYWtwb2ludCIpIDogV0kuVUlTdHJpbmcoIkRpc2FibGUgQnJl
YWtwb2ludCIpOwogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKGxhYmVsLCB0aGlzLl90
b2dnbGVCcmVha3BvaW50LmJpbmQodGhpcykpOwogCi0gICAgICAgIGNvbnRleHRNZW51LmFwcGVu
ZFNlcGFyYXRvcigpOwotCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJp
bmcoIkRlbGV0ZSBCcmVha3BvaW50IiksICgpID0+IHsKICAgICAgICAgICAgIFdJLmRvbURlYnVn
Z2VyTWFuYWdlci5yZW1vdmVVUkxCcmVha3BvaW50KGJyZWFrcG9pbnQpOwogICAgICAgICB9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373308</attachid>
            <date>2019-07-02 00:09:18 -0700</date>
            <delta_ts>2019-07-02 09:16:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199332-20190702000917.patch</filename>
            <type>text/plain</type>
            <size>28468</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDkxNWNjMmU3MzYxOTk3YmVhZGQ0ZDU5ZDBjOGVi
MWRmNGFjZmNlODEuLjIyY2QxMjYzZjQ2NjBiNzgyY2Y1Yzc1MDkwNWJiMWI2ZTI1ZjMzMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE5LTA3LTAyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBE
T00gRGVidWdnZXI6IGRlc2NlbmRhbnQgYnJlYWtwb2ludHMgc2hvdWxkIGJlIGFibGUgdG8gYmUg
ZW5hYmxlZC9kaXNhYmxlZC9kZWxldGVkIGZyb20gYSBjb2xsYXBzZWQgcGFyZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkzMzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvRE9NRGVidWdnZXJNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuRE9NRGVidWdn
ZXJNYW5hZ2VyLnByb3RvdHlwZS5nZXQgZG9tQnJlYWtwb2ludHMpOgorICAgICAgICAoV0kuRE9N
RGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5kb21CcmVha3BvaW50c0Zvck5vZGUpOgorICAgICAg
ICAoV0kuRE9NRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5kb21CcmVha3BvaW50c0luU3VidHJl
ZSk6IEFkZGVkLgorICAgICAgICAoV0kuRE9NRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5yZW1v
dmVET01CcmVha3BvaW50KToKKyAgICAgICAgKFdJLkRPTURlYnVnZ2VyTWFuYWdlci5wcm90b3R5
cGUuX2RldGFjaERPTUJyZWFrcG9pbnQpOgorICAgICAgICAoV0kuRE9NRGVidWdnZXJNYW5hZ2Vy
LnByb3RvdHlwZS5fZGV0YWNoQnJlYWtwb2ludHNGb3JGcmFtZSk6CisgICAgICAgIChXSS5ET01E
ZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9zcGVjdWxhdGl2ZWx5UmVzb2x2ZURPTUJyZWFrcG9p
bnRzRm9yVVJMKToKKyAgICAgICAgKFdJLkRPTURlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuX3Jl
c29sdmVET01CcmVha3BvaW50KToKKyAgICAgICAgUHJvdmlkZSBhIHdheSBvZiBnZXR0aW5nIGEg
InN1bW1hcnkiIGFycmF5IG9mIGBET01CcmVha3BvaW50YHMgZm9yIGFsbCBkZXNjZW5kYW50IG5v
ZGVzLgorICAgICAgICBSZXdvcmsgdGhlIGRhdGEgc3RydWN0dXJlIGZvciBob2xkaW5nIGBET01C
cmVha3BvaW50YHMgdG8gdXNlIGEgYE11bHRpbWFwYCBzbyBubyBkdXBsaWNhdGVzCisgICAgICAg
IGNhbiBiZSBhZGRlZCAoaXQgdXNlcyBhIGBTZXRgIGluc3RlYWQgb2YgYW4gYEFycmF5YCkuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzOgorICAgICAg
ICAoV0kuRE9NVHJlZUVsZW1lbnQpOgorICAgICAgICAoV0kuRE9NVHJlZUVsZW1lbnQucHJvdG90
eXBlLmdldCBoYXNCcmVha3BvaW50KToKKyAgICAgICAgKFdJLkRPTVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5zZXQgYnJlYWtwb2ludFN0YXR1cyk6CisgICAgICAgIChXSS5ET01UcmVlRWxlbWVudC5w
cm90b3R5cGUuYmluZFJldmVhbERlc2NlbmRhbnRCcmVha3BvaW50c01lbnVJdGVtSGFuZGxlcik6
IEFkZGVkLgorICAgICAgICAoV0kuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLl9zdWJ0cmVlQnJl
YWtwb2ludENoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkRPTVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5fdXBkYXRlQnJlYWtwb2ludFN0YXR1cyk6CisgICAgICAgIChXSS5ET01UcmVlRWxlbWVu
dC5wcm90b3R5cGUuX3N0YXR1c0ltYWdlQ29udGV4dG1lbnUpOgorICAgICAgICAoV0kuRE9NVHJl
ZUVsZW1lbnQucHJvdG90eXBlLnN1YnRyZWVCcmVha3BvaW50Q291bnREaWRDaGFuZ2UpOiBEZWxl
dGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanM6Cisg
ICAgICAgIChXSS5ET01UcmVlT3V0bGluZS5wcm90b3R5cGUucG9wdWxhdGVDb250ZXh0TWVudSk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qczoK
KyAgICAgICAgKFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlKToKKyAgICAgICAg
KFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlQnJlYWtwb2ludHMpOgorICAgICAg
ICBLZWVwIHRyYWNrIG9mIHRoZSBhY3R1YWwgZGVzY2VuZGFudCBgRE9NTm9kZVRyZWVFbGVtZW50
YCB0aGF0IGhhdmUgYnJlYWtwb2ludHMsIHJhdGhlciB0aGFuCisgICAgICAgIGp1c3QgYSBjb3Vu
dCwgc28gdGhhdCB0aGUgIlJldmVhbCBEZXNjZW5kYW50IEJyZWFrcG9pbnRzIiBhY3Rpb24gaXMg
YWJsZSB0byBhY2Nlc3MgdGhlbS4KKyAgICAgICAgQ2hhbmdlICJSZXZlYWwgRGVzY2VuZGFudCBC
cmVha3BvaW50cyIgdG8gcmV2ZWFsIGFuZCBzZWxlY3QgYWxsIGRlc2NlbmRhbnQgYnJlYWtwb2lu
dHMKKyAgICAgICAgaW5zdGVhZCBvZiBqdXN0IHRoZSBmaXJzdCBvbmUuCisgICAgICAgIERyaXZl
LWJ5OiBkb24ndCByZW1vdmUgc3BlY2lmaWMgKGV2ZW50KSBsaXN0ZW5lciBicmVha3BvaW50cyB3
aGVuIGludm9raW5nIHRoZQorICAgICAgICAgICAgICAgICAgIkRlbGV0ZSBEZXNjZW5kYW50IEJy
ZWFrcG9pbnRzIiBhY3Rpb24sIGFzIHRoYXQncyBub3Qgb2J2aW91cyBmcm9tIHRoZSBVSS4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQnJlYWtwb2ludFBvcG92ZXJDb250
cm9sbGVyLmpzOgorICAgICAgICAoV0kuQnJlYWtwb2ludFBvcG92ZXJDb250cm9sbGVyLnByb3Rv
dHlwZS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0RPTUJyZWFrcG9pbnRUcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLkRPTUJyZWFrcG9p
bnRUcmVlRWxlbWVudC5wcm90b3R5cGUucG9wdWxhdGVDb250ZXh0TWVudSk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9ET01Ob2RlVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXSS5E
T01Ob2RlVHJlZUVsZW1lbnQucHJvdG90eXBlLnBvcHVsYXRlQ29udGV4dE1lbnUpOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRXZlbnRCcmVha3BvaW50VHJlZUVsZW1lbnQuanM6Cisg
ICAgICAgIChXSS5FdmVudEJyZWFrcG9pbnRUcmVlRWxlbWVudC5wcm90b3R5cGUucG9wdWxhdGVD
b250ZXh0TWVudSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9VUkxCcmVha3BvaW50
VHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXSS5VUkxCcmVha3BvaW50VHJlZUVsZW1lbnQucHJv
dG90eXBlLnBvcHVsYXRlQ29udGV4dE1lbnUpOgorICAgICAgICBSZW1vdmUgdGhlIHNlcGFyYXRv
ciBiZWZvcmUgIkRlbGV0ZSBCcmVha3BvaW50IiBzbyBhbGwgYnJlYWtwb2ludCBhY3Rpb25zIGFy
ZSBpbiB0aGUgc2FtZSBzZWN0aW9uLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9NdWx0
aW1hcC5qczoKKyAgICAgICAgKE11bHRpbWFwLnByb3RvdHlwZS5nZXQgc2l6ZSk6IEFkZGVkLgor
CiAyMDE5LTA2LTI3ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBV
cHN0cmVhbSB1c2Ugb2YgTUFDQ0FUQUxZU1QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
CmluZGV4IDI5YzFlYmRiOWFiZTc1MDlmYjUzNDZjYTIwNDA5NjRkOGMyZmE1ODkuLmUzYWM0MmM3
YWY2YzA1NzY2NjA2MjY5ZDY3YjJjMjY4NmM1NGRjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcwpAQCAtMzIzLDYgKzMyMyw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkRlZmF1bHQi
XSA9ICJEZWZhdWx0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRlbGV0ZSJdID0gIkRlbGV0ZSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJEZWxldGUgQnJlYWtwb2ludCJdID0gIkRlbGV0ZSBCcmVha3BvaW50
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRlbGV0ZSBCcmVha3BvaW50cyJdID0gIkRlbGV0ZSBCcmVh
a3BvaW50cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJEZWxldGUgRGVzY2VuZGFudCBCcmVha3BvaW50
cyJdID0gIkRlbGV0ZSBEZXNjZW5kYW50IEJyZWFrcG9pbnRzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkRlbW8gQXVkaXQiXSA9ICJEZW1vIEF1ZGl0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRldGFjaCBp
bnRvIHNlcGFyYXRlIHdpbmRvdyJdID0gIkRldGFjaCBpbnRvIHNlcGFyYXRlIHdpbmRvdyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJEZXRhY2hlZCJdID0gIkRldGFjaGVkIjsKQEAgLTMzMiw2ICszMzMs
NyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJEaWFnbm9zZXMgY29tbW9uIGFjY2Vzc2liaWxpdHkgcHJv
YmxlbXMgYWZmZWN0aW5nIHNjcmVlbiByZWFkZQogbG9jYWxpemVkU3RyaW5nc1siRGltZW5zaW9u
cyJdID0gIkRpbWVuc2lvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBCcmVha3BvaW50
Il0gPSAiRGlzYWJsZSBCcmVha3BvaW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpc2FibGUgQnJl
YWtwb2ludHMiXSA9ICJEaXNhYmxlIEJyZWFrcG9pbnRzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkRp
c2FibGUgRGVzY2VuZGFudCBCcmVha3BvaW50cyJdID0gIkRpc2FibGUgRGVzY2VuZGFudCBCcmVh
a3BvaW50cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlIEV2ZW50IExpc3RlbmVyIl0gPSAi
RGlzYWJsZSBFdmVudCBMaXN0ZW5lciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlIElDRSBD
YW5kaWRhdGUgUmVzdHJpY3Rpb25zIl0gPSAiRGlzYWJsZSBJQ0UgQ2FuZGlkYXRlIFJlc3RyaWN0
aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlIFByb2dyYW0iXSA9ICJEaXNhYmxlIFBy
b2dyYW0iOwpAQCAtNDAzLDYgKzQwNSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnRzIl0g
PSAiRWxlbWVudHMiOwogbG9jYWxpemVkU3RyaW5nc1siRW11bGF0ZSBVc2VyIEdlc3R1cmUiXSA9
ICJFbXVsYXRlIFVzZXIgR2VzdHVyZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGUgQnJlYWtw
b2ludCJdID0gIkVuYWJsZSBCcmVha3BvaW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuYWJsZSBC
cmVha3BvaW50cyJdID0gIkVuYWJsZSBCcmVha3BvaW50cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJF
bmFibGUgRGVzY2VuZGFudCBCcmVha3BvaW50cyJdID0gIkVuYWJsZSBEZXNjZW5kYW50IEJyZWFr
cG9pbnRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuYWJsZSBFdmVudCBMaXN0ZW5lciJdID0gIkVu
YWJsZSBFdmVudCBMaXN0ZW5lciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGUgTGF5ZXJzIFRh
YiJdID0gIkVuYWJsZSBMYXllcnMgVGFiIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuYWJsZSBOZXcg
VGFiIEJhciJdID0gIkVuYWJsZSBOZXcgVGFiIEJhciI7CkBAIC04ODEsNyArODg0LDcgQEAgbG9j
YWxpemVkU3RyaW5nc1siUmV0dXJuIHN0cmluZyBtdXN0IGJlIG9uZSBvZiAlcyJdID0gIlJldHVy
biBzdHJpbmcgbXVzdCBiZSBvbmUKIGxvY2FsaXplZFN0cmluZ3NbIlJldHVybiB0eXBlIGZvciBh
bm9ueW1vdXMgZnVuY3Rpb24iXSA9ICJSZXR1cm4gdHlwZSBmb3IgYW5vbnltb3VzIGZ1bmN0aW9u
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldHVybiB0eXBlIGZvciBmdW5jdGlvbjogJXMiXSA9ICJS
ZXR1cm4gdHlwZSBmb3IgZnVuY3Rpb246ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldHVybiB2
YWx1ZSBpcyBub3QgYW4gb2JqZWN0LCBzdHJpbmcsIG9yIGJvb2xlYW4iXSA9ICJSZXR1cm4gdmFs
dWUgaXMgbm90IGFuIG9iamVjdCwgc3RyaW5nLCBvciBib29sZWFuIjsKLWxvY2FsaXplZFN0cmlu
Z3NbIlJldmVhbCBCcmVha3BvaW50Il0gPSAiUmV2ZWFsIEJyZWFrcG9pbnQiOworbG9jYWxpemVk
U3RyaW5nc1siUmV2ZWFsIERlc2NlbmRhbnQgQnJlYWtwb2ludHMiXSA9ICJSZXZlYWwgRGVzY2Vu
ZGFudCBCcmVha3BvaW50cyI7CiAvKiBPcGVuIEVsZW1lbnRzIHRhYiBhbmQgc2VsZWN0IHRoaXMg
bm9kZSBpbiBET00gdHJlZSAqLwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIERPTSBUcmVl
Il0gPSAiUmV2ZWFsIGluIERPTSBUcmVlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBE
ZWJ1Z2dlciBUYWIiXSA9ICJSZXZlYWwgaW4gRGVidWdnZXIgVGFiIjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTXVsdGltYXAuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL011bHRpbWFwLmpzCmluZGV4IDUw
MGVhYzBkMzliY2FhODJhOTU1MTY2NDY4YmI1ODkzMjEwYjZkMGYuLjNkNjllYjAyOGQ3OTVhMzJj
MTcwNzI4MmVkY2I5ZDM2NDVkZjBkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvTXVsdGltYXAuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NdWx0aW1hcC5qcwpAQCAtMzUsNiArMzUsMTEgQEAgY2xh
c3MgTXVsdGltYXAKIAogICAgIC8vIFB1YmxpYwogCisgICAgZ2V0IHNpemUoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX21hcC5zaXplOworICAgIH0KKwogICAgIGhhcyhrZXksIHZhbHVl
KQogICAgIHsKICAgICAgICAgbGV0IHZhbHVlU2V0ID0gdGhpcy5fbWFwLmdldChrZXkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
QnJlYWtwb2ludFBvcG92ZXJDb250cm9sbGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQnJlYWtwb2ludFBvcG92ZXJDb250cm9sbGVyLmpzCmlu
ZGV4IDAyMzA1MDdlYzcxOThjNWJlMDcwZTI5MTgxYTMxNWIyYjNkMDM2ZTYuLmEyM2ZlZjQzMmYz
NmRiY2I2OTZmMzAzZTY1MWYwOWUxYzJmYjFmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0JyZWFrcG9pbnRQb3BvdmVyQ29udHJv
bGxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9CcmVha3BvaW50UG9wb3ZlckNvbnRyb2xsZXIuanMKQEAgLTg4LDEwICs4OCw4IEBAIFdJ
LkJyZWFrcG9pbnRQb3BvdmVyQ29udHJvbGxlciA9IGNsYXNzIEJyZWFrcG9pbnRQb3BvdmVyQ29u
dHJvbGxlciBleHRlbmRzIFdJLk9iCiAgICAgICAgIGlmICghYnJlYWtwb2ludC5hdXRvQ29udGlu
dWUgJiYgIWJyZWFrcG9pbnQuZGlzYWJsZWQgJiYgYnJlYWtwb2ludC5hY3Rpb25zLmxlbmd0aCkK
ICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlNldCB0byBB
dXRvbWF0aWNhbGx5IENvbnRpbnVlIiksIHRvZ2dsZUF1dG9Db250aW51ZSk7CiAKLSAgICAgICAg
aWYgKFdJLmRlYnVnZ2VyTWFuYWdlci5pc0JyZWFrcG9pbnRSZW1vdmFibGUoYnJlYWtwb2ludCkp
IHsKLSAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBp
ZiAoV0kuZGVidWdnZXJNYW5hZ2VyLmlzQnJlYWtwb2ludFJlbW92YWJsZShicmVha3BvaW50KSkK
ICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkRlbGV0ZSBC
cmVha3BvaW50IiksIHJlbW92ZUJyZWFrcG9pbnQpOwotICAgICAgICB9CiAKICAgICAgICAgaWYg
KGJyZWFrcG9pbnQuX3NvdXJjZUNvZGVMb2NhdGlvbi5oYXNNYXBwZWRMb2NhdGlvbigpKSB7CiAg
ICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTURlYnVnZ2Vy
TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0RPTURlYnVnZ2VyTWFuYWdlci5qcwppbmRleCA2OWNlNmQxOTllMjNhOTU1NDAxOWVkYWI0
ZGJiZWE2Zjk3OTJkMzE5Li5kZDg4YTYzNTk0M2Q5YjQ3ZTkzODYzODM5Mjc4ODI0NDE4MGQwNzhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9ET01EZWJ1Z2dlck1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NRGVidWdnZXJNYW5hZ2VyLmpzCkBAIC0xNDYsMTAg
KzE0Niw4IEBAIFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdl
ciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB3aGlsZSAoZnJhbWVzLmxlbmd0aCkgewogICAg
ICAgICAgICAgbGV0IGZyYW1lID0gZnJhbWVzLnNoaWZ0KCk7CiAgICAgICAgICAgICBsZXQgZG9t
QnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFwID0gdGhpcy5fZG9tQnJlYWtwb2ludEZyYW1lSWRl
bnRpZmllck1hcC5nZXQoZnJhbWUuaWQpOwotICAgICAgICAgICAgaWYgKGRvbUJyZWFrcG9pbnRO
b2RlSWRlbnRpZmllck1hcCkgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGJyZWFrcG9pbnRz
IG9mIGRvbUJyZWFrcG9pbnROb2RlSWRlbnRpZmllck1hcC52YWx1ZXMoKSkKLSAgICAgICAgICAg
ICAgICAgICAgcmVzb2x2ZWRCcmVha3BvaW50cyA9IHJlc29sdmVkQnJlYWtwb2ludHMuY29uY2F0
KGJyZWFrcG9pbnRzKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkb21CcmVha3Bv
aW50Tm9kZUlkZW50aWZpZXJNYXApCisgICAgICAgICAgICAgICAgcmVzb2x2ZWRCcmVha3BvaW50
cyA9IHJlc29sdmVkQnJlYWtwb2ludHMuY29uY2F0KEFycmF5LmZyb20oZG9tQnJlYWtwb2ludE5v
ZGVJZGVudGlmaWVyTWFwLnZhbHVlcygpKSk7CiAKICAgICAgICAgICAgIGZyYW1lcy5wdXNoKC4u
LmZyYW1lLmNoaWxkRnJhbWVDb2xsZWN0aW9uKTsKICAgICAgICAgfQpAQCAtMTc4LDcgKzE3Niwy
NiBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01EZWJ1Z2dlck1hbmFnZXIgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHJldHVybiBbXTsKIAogICAgICAgICBsZXQgYnJl
YWtwb2ludHMgPSBkb21CcmVha3BvaW50Tm9kZUlkZW50aWZpZXJNYXAuZ2V0KG5vZGUuaWQpOwot
ICAgICAgICByZXR1cm4gYnJlYWtwb2ludHMgPyBicmVha3BvaW50cy5zbGljZSgpIDogW107Cisg
ICAgICAgIHJldHVybiBicmVha3BvaW50cyA/IEFycmF5LmZyb20oYnJlYWtwb2ludHMpIDogW107
CisgICAgfQorCisgICAgZG9tQnJlYWtwb2ludHNJblN1YnRyZWUobm9kZSkKKyAgICB7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KG5vZGUgaW5zdGFuY2VvZiBXSS5ET01Ob2RlKTsKKworICAgICAg
ICBsZXQgYnJlYWtwb2ludHMgPSBbXTsKKworICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikgewor
ICAgICAgICAgICAgbGV0IGNoaWxkcmVuID0gQXJyYXkuZnJvbShub2RlLmNoaWxkcmVuKTsKKyAg
ICAgICAgICAgIHdoaWxlIChjaGlsZHJlbi5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBsZXQg
Y2hpbGQgPSBjaGlsZHJlbi5wb3AoKTsKKyAgICAgICAgICAgICAgICBpZiAoY2hpbGQuY2hpbGRy
ZW4pCisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4uY29uY2F0KGNoaWxk
LmNoaWxkcmVuKTsKKyAgICAgICAgICAgICAgICBicmVha3BvaW50cyA9IGJyZWFrcG9pbnRzLmNv
bmNhdCh0aGlzLmRvbUJyZWFrcG9pbnRzRm9yTm9kZShjaGlsZCkpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJyZWFrcG9pbnRzOwogICAgIH0KIAogICAgIGFk
ZERPTUJyZWFrcG9pbnQoYnJlYWtwb2ludCkKQEAgLTIxNSwxMSArMjMyLDYgQEAgV0kuRE9NRGVi
dWdnZXJNYW5hZ2VyID0gY2xhc3MgRE9NRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBsZXQgbm9kZUlkZW50
aWZpZXIgPSBicmVha3BvaW50LmRvbU5vZGVJZGVudGlmaWVyOwotICAgICAgICBjb25zb2xlLmFz
c2VydChub2RlSWRlbnRpZmllciwgIkNhbm5vdCByZW1vdmUgdW5yZXNvbHZlZCBET00gYnJlYWtw
b2ludC4iKTsKLSAgICAgICAgaWYgKCFub2RlSWRlbnRpZmllcikKLSAgICAgICAgICAgIHJldHVy
bjsKLQogICAgICAgICB0aGlzLl9kZXRhY2hET01CcmVha3BvaW50KGJyZWFrcG9pbnQpOwogCiAg
ICAgICAgIHRoaXMuX2RvbUJyZWFrcG9pbnRVUkxNYXAuZGVsZXRlKGJyZWFrcG9pbnQudXJsKTsK
QEAgLTIyNyw3ICsyMzksNyBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01EZWJ1
Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKCFicmVha3BvaW50LmRp
c2FibGVkKSB7CiAgICAgICAgICAgICAvLyBXZSBzaG91bGQgZ2V0IHRoZSB0YXJnZXQgYXNzb2Np
YXRlZCB3aXRoIHRoZSBub2RlSWRlbnRpZmllciBvZiB0aGlzIGJyZWFrcG9pbnQuCiAgICAgICAg
ICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7Ci0gICAgICAgICAgICB0
YXJnZXQuRE9NRGVidWdnZXJBZ2VudC5yZW1vdmVET01CcmVha3BvaW50KG5vZGVJZGVudGlmaWVy
LCBicmVha3BvaW50LnR5cGUpOworICAgICAgICAgICAgdGFyZ2V0LkRPTURlYnVnZ2VyQWdlbnQu
cmVtb3ZlRE9NQnJlYWtwb2ludChicmVha3BvaW50LmRvbU5vZGVJZGVudGlmaWVyLCBicmVha3Bv
aW50LnR5cGUpOwogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV0kuRE9NRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkRPTUJyZWFrcG9pbnRSZW1vdmVkLCB7
YnJlYWtwb2ludH0pOwpAQCAtNDA2LDE3ICs0MTgsNyBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIg
PSBjbGFzcyBET01EZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYg
KCFkb21CcmVha3BvaW50Tm9kZUlkZW50aWZpZXJNYXApCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgbGV0IGJyZWFrcG9pbnRzID0gZG9tQnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFw
LmdldChub2RlSWRlbnRpZmllcik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGJyZWFrcG9pbnRz
LCAiTWlzc2luZyBET00gYnJlYWtwb2ludHMgZm9yIG5vZGUuIiwgbm9kZSk7Ci0gICAgICAgIGlm
ICghYnJlYWtwb2ludHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYnJlYWtwb2lu
dHMucmVtb3ZlKGJyZWFrcG9pbnQsIHRydWUpOwotCi0gICAgICAgIGlmIChicmVha3BvaW50cy5s
ZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZG9tQnJlYWtwb2ludE5vZGVJ
ZGVudGlmaWVyTWFwLmRlbGV0ZShub2RlSWRlbnRpZmllcik7CisgICAgICAgIGRvbUJyZWFrcG9p
bnROb2RlSWRlbnRpZmllck1hcC5kZWxldGUobm9kZUlkZW50aWZpZXIsIGJyZWFrcG9pbnQpOwog
CiAgICAgICAgIGlmICghZG9tQnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFwLnNpemUpCiAgICAg
ICAgICAgICB0aGlzLl9kb21CcmVha3BvaW50RnJhbWVJZGVudGlmaWVyTWFwLmRlbGV0ZShmcmFt
ZUlkZW50aWZpZXIpOwpAQCAtNDMwLDEwICs0MzIsOCBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIg
PSBjbGFzcyBET01EZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgICAgICB0
aGlzLl9kb21CcmVha3BvaW50RnJhbWVJZGVudGlmaWVyTWFwLmRlbGV0ZShmcmFtZS5pZCk7CiAK
LSAgICAgICAgZm9yIChsZXQgYnJlYWtwb2ludHMgb2YgZG9tQnJlYWtwb2ludE5vZGVJZGVudGlm
aWVyTWFwLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBicmVha3BvaW50IG9mIGJy
ZWFrcG9pbnRzKQotICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQuZG9tTm9kZUlkZW50aWZpZXIg
PSBudWxsOwotICAgICAgICB9CisgICAgICAgIGZvciAobGV0IGJyZWFrcG9pbnQgb2YgZG9tQnJl
YWtwb2ludE5vZGVJZGVudGlmaWVyTWFwLnZhbHVlcygpKQorICAgICAgICAgICAgYnJlYWtwb2lu
dC5kb21Ob2RlSWRlbnRpZmllciA9IG51bGw7CiAgICAgfQogCiAgICAgX3NwZWN1bGF0aXZlbHlS
ZXNvbHZlRE9NQnJlYWtwb2ludHNGb3JVUkwodXJsKQpAQCAtNDQ3LDYgKzQ0NywxNCBAQCBXSS5E
T01EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01EZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5P
YmplY3QKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgV0kuZG9tTWFu
YWdlci5wdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoYnJlYWtwb2ludC5wYXRoLCAobm9kZUlkZW50
aWZpZXIpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoYnJlYWtwb2ludC5kb21Ob2RlSWRlbnRp
ZmllcikgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGJyZWFrcG9pbnQgbWF5IGhhdmUg
YmVlbiByZXNvbHZlZCBieSBhIG5vZGUgYmVpbmcgaW5zZXJ0ZWQgYmVmb3JlIHRoaXMKKyAgICAg
ICAgICAgICAgICAgICAgLy8gY2FsbGJhY2sgaXMgaW52b2tlZC4gIElmIHNvLCB0aGUgYG5vZGVJ
ZGVudGlmaWVyYCBzaG91bGQgbWF0Y2gsIHNvIGRvbid0IHRyeQorICAgICAgICAgICAgICAgICAg
ICAvLyB0byByZXNvbHZlIGl0IGFnYWluIGFzIGl0IHdvdWxkJ3ZlIGFscmVhZHkgYmVlbiByZXNv
bHZlZC4KKyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoYnJlYWtwb2ludC5kb21O
b2RlSWRlbnRpZmllciA9PT0gbm9kZUlkZW50aWZpZXIpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgaWYgKG5vZGVJZGVu
dGlmaWVyKQogICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXNvbHZlRE9NQnJlYWtwb2ludChi
cmVha3BvaW50LCBub2RlSWRlbnRpZmllcik7CiAgICAgICAgICAgICB9KTsKQEAgLTQ2MywxNSAr
NDcxLDExIEBAIFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdl
ciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBsZXQgZnJhbWVJZGVudGlmaWVyID0gbm9kZS5m
cmFtZS5pZDsKICAgICAgICAgbGV0IGRvbUJyZWFrcG9pbnROb2RlSWRlbnRpZmllck1hcCA9IHRo
aXMuX2RvbUJyZWFrcG9pbnRGcmFtZUlkZW50aWZpZXJNYXAuZ2V0KGZyYW1lSWRlbnRpZmllcik7
CiAgICAgICAgIGlmICghZG9tQnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFwKSB7Ci0gICAgICAg
ICAgICBkb21CcmVha3BvaW50Tm9kZUlkZW50aWZpZXJNYXAgPSBuZXcgTWFwOworICAgICAgICAg
ICAgZG9tQnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFwID0gbmV3IE11bHRpbWFwOwogICAgICAg
ICAgICAgdGhpcy5fZG9tQnJlYWtwb2ludEZyYW1lSWRlbnRpZmllck1hcC5zZXQoZnJhbWVJZGVu
dGlmaWVyLCBkb21CcmVha3BvaW50Tm9kZUlkZW50aWZpZXJNYXApOwogICAgICAgICB9CiAKLSAg
ICAgICAgbGV0IGJyZWFrcG9pbnRzID0gZG9tQnJlYWtwb2ludE5vZGVJZGVudGlmaWVyTWFwLmdl
dChub2RlSWRlbnRpZmllcik7Ci0gICAgICAgIGlmIChicmVha3BvaW50cykKLSAgICAgICAgICAg
IGJyZWFrcG9pbnRzLnB1c2goYnJlYWtwb2ludCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGRvbUJyZWFrcG9pbnROb2RlSWRlbnRpZmllck1hcC5zZXQobm9kZUlkZW50aWZpZXIsIFticmVh
a3BvaW50XSk7CisgICAgICAgIGRvbUJyZWFrcG9pbnROb2RlSWRlbnRpZmllck1hcC5hZGQobm9k
ZUlkZW50aWZpZXIsIGJyZWFrcG9pbnQpOwogCiAgICAgICAgIGJyZWFrcG9pbnQuZG9tTm9kZUlk
ZW50aWZpZXIgPSBub2RlSWRlbnRpZmllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGll
cy5qcwppbmRleCAzZTM5NWM1MTVhMzY0YjNmYTEwNTQ0MjlhMzBlNjk5MTRlMjQwMjFhLi41YzI3
ZTJiZWY1MTdhM2Y5ODVlZDIyMjRkNTlkNDhhMWIxNGFiMWY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0
TWVudVV0aWxpdGllcy5qcwpAQCAtMjI0LDcgKzIyNCw3IEBAIFdJLmFwcGVuZENvbnRleHRNZW51
SXRlbXNGb3JET01Ob2RlID0gZnVuY3Rpb24oY29udGV4dE1lbnUsIGRvbU5vZGUsIG9wdGlvbnMg
PSB7CiAgICAgaWYgKFdJLmRvbURlYnVnZ2VyTWFuYWdlci5zdXBwb3J0ZWQgJiYgaXNFbGVtZW50
ICYmICFkb21Ob2RlLmlzUHNldWRvRWxlbWVudCgpICYmIGF0dGFjaGVkKSB7CiAgICAgICAgIGNv
bnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwogCi0gICAgICAgIFdJLmFwcGVuZENvbnRleHRN
ZW51SXRlbXNGb3JET01Ob2RlQnJlYWtwb2ludHMoY29udGV4dE1lbnUsIGRvbU5vZGUpOworICAg
ICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZUJyZWFrcG9pbnRzKGNvbnRl
eHRNZW51LCBkb21Ob2RlLCBvcHRpb25zKTsKICAgICB9CiAKICAgICBjb250ZXh0TWVudS5hcHBl
bmRTZXBhcmF0b3IoKTsKQEAgLTI4NCw0MyArMjg0LDY0IEBAIFdJLmFwcGVuZENvbnRleHRNZW51
SXRlbXNGb3JET01Ob2RlID0gZnVuY3Rpb24oY29udGV4dE1lbnUsIGRvbU5vZGUsIG9wdGlvbnMg
PSB7CiAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CiB9OwogCi1XSS5hcHBlbmRD
b250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZUJyZWFrcG9pbnRzID0gZnVuY3Rpb24oY29udGV4dE1l
bnUsIGRvbU5vZGUsIHthbGxvd0VkaXRpbmd9ID0ge30pCitXSS5hcHBlbmRDb250ZXh0TWVudUl0
ZW1zRm9yRE9NTm9kZUJyZWFrcG9pbnRzID0gZnVuY3Rpb24oY29udGV4dE1lbnUsIGRvbU5vZGUs
IG9wdGlvbnMgPSB7fSkKIHsKICAgICBpZiAoY29udGV4dE1lbnUuX19kb21CcmVha3BvaW50SXRl
bXNBZGRlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY29udGV4dE1lbnUuX19kb21CcmVha3Bv
aW50SXRlbXNBZGRlZCA9IHRydWU7CiAKLSAgICBsZXQgc3ViTWVudSA9IGNvbnRleHRNZW51LmFw
cGVuZFN1Yk1lbnVJdGVtKFdJLlVJU3RyaW5nKCJCcmVhayBvbiIpKTsKLQogICAgIGxldCBicmVh
a3BvaW50cyA9IFdJLmRvbURlYnVnZ2VyTWFuYWdlci5kb21CcmVha3BvaW50c0Zvck5vZGUoZG9t
Tm9kZSk7Ci0gICAgbGV0IGtleVZhbHVlUGFpcnMgPSBicmVha3BvaW50cy5tYXAoKGJyZWFrcG9p
bnQpID0+IFticmVha3BvaW50LnR5cGUsIGJyZWFrcG9pbnRdKTsKLSAgICBsZXQgYnJlYWtwb2lu
dHNCeVR5cGUgPSBuZXcgTWFwKGtleVZhbHVlUGFpcnMpOworCisgICAgY29udGV4dE1lbnUuYXBw
ZW5kU2VwYXJhdG9yKCk7CisKKyAgICBsZXQgc3ViTWVudSA9IGNvbnRleHRNZW51LmFwcGVuZFN1
Yk1lbnVJdGVtKFdJLlVJU3RyaW5nKCJCcmVhayBvbiIpKTsKIAogICAgIGZvciAobGV0IHR5cGUg
b2YgT2JqZWN0LnZhbHVlcyhXSS5ET01CcmVha3BvaW50LlR5cGUpKSB7CiAgICAgICAgIGxldCBs
YWJlbCA9IFdJLkRPTUJyZWFrcG9pbnRUcmVlRWxlbWVudC5kaXNwbGF5TmFtZUZvclR5cGUodHlw
ZSk7Ci0gICAgICAgIGxldCBicmVha3BvaW50ID0gYnJlYWtwb2ludHNCeVR5cGUuZ2V0KHR5cGUp
OworICAgICAgICBsZXQgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRzLmZpbmQoKGJyZWFrcG9pbnQp
ID0+IGJyZWFrcG9pbnQudHlwZSA9PT0gdHlwZSk7CiAKICAgICAgICAgc3ViTWVudS5hcHBlbmRD
aGVja2JveEl0ZW0obGFiZWwsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgaWYgKGJyZWFrcG9p
bnQpCiAgICAgICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLnJlbW92ZURPTUJyZWFr
cG9pbnQoYnJlYWtwb2ludCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgV0ku
ZG9tRGVidWdnZXJNYW5hZ2VyLmFkZERPTUJyZWFrcG9pbnQobmV3IFdJLkRPTUJyZWFrcG9pbnQo
ZG9tTm9kZSwgdHlwZSkpOwotICAgICAgICB9LCAhIWJyZWFrcG9pbnQsIGZhbHNlKTsKKyAgICAg
ICAgfSwgISFicmVha3BvaW50KTsKICAgICB9CiAKLSAgICBpZiAoYWxsb3dFZGl0aW5nKSB7Ci0g
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOworICAgIGNvbnRleHRNZW51LmFw
cGVuZFNlcGFyYXRvcigpOwogCisgICAgaWYgKGJyZWFrcG9pbnRzLmxlbmd0aCkgewogICAgICAg
ICBsZXQgc2hvdWxkRW5hYmxlID0gYnJlYWtwb2ludHMuc29tZSgoYnJlYWtwb2ludCkgPT4gYnJl
YWtwb2ludC5kaXNhYmxlZCk7Ci0gICAgICAgIGxldCBsYWJlbCA9IHNob3VsZEVuYWJsZSA/IFdJ
LlVJU3RyaW5nKCJFbmFibGUgQnJlYWtwb2ludHMiKSA6IFdJLlVJU3RyaW5nKCJEaXNhYmxlIEJy
ZWFrcG9pbnRzIik7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0obGFiZWwsICgpID0+
IHsKLSAgICAgICAgICAgIGJyZWFrcG9pbnRzLmZvckVhY2goKGJyZWFrcG9pbnQpID0+IGJyZWFr
cG9pbnQuZGlzYWJsZWQgPSAhc2hvdWxkRW5hYmxlKTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBw
ZW5kSXRlbShzaG91bGRFbmFibGUgPyBXSS5VSVN0cmluZygiRW5hYmxlIEJyZWFrcG9pbnQiKSA6
IFdJLlVJU3RyaW5nKCJEaXNhYmxlIEJyZWFrcG9pbnQiKSwgKCkgPT4geworICAgICAgICAgICAg
Zm9yIChsZXQgYnJlYWtwb2ludCBvZiBicmVha3BvaW50cykKKyAgICAgICAgICAgICAgICBicmVh
a3BvaW50LmRpc2FibGVkID0gIXNob3VsZEVuYWJsZTsKICAgICAgICAgfSk7CiAKLSAgICAgICAg
Y29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiRGVsZXRlIEJyZWFrcG9pbnRzIiks
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLnJlbW92ZURP
TUJyZWFrcG9pbnRzRm9yTm9kZShkb21Ob2RlKTsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIu
cmVtb3ZlRXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzRm9yTm9kZShkb21Ob2RlKTsKKyAgICAgICAg
Y29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiRGVsZXRlIEJyZWFrcG9pbnQiKSwg
KCkgPT4geworICAgICAgICAgICAgZm9yIChsZXQgYnJlYWtwb2ludCBvZiBicmVha3BvaW50cykK
KyAgICAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRE9NQnJlYWtwb2lu
dChicmVha3BvaW50KTsKICAgICAgICAgfSk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
U2VwYXJhdG9yKCk7CisgICAgfQorCisgICAgbGV0IHN1YnRyZWVCcmVha3BvaW50cyA9IFdJLmRv
bURlYnVnZ2VyTWFuYWdlci5kb21CcmVha3BvaW50c0luU3VidHJlZShkb21Ob2RlKTsKKyAgICBp
ZiAoc3VidHJlZUJyZWFrcG9pbnRzLmxlbmd0aCkgeworICAgICAgICBpZiAob3B0aW9ucy5yZXZl
YWxEZXNjZW5kYW50QnJlYWtwb2ludHNNZW51SXRlbUhhbmRsZXIpCisgICAgICAgICAgICBjb250
ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJSZXZlYWwgRGVzY2VuZGFudCBCcmVha3Bv
aW50cyIpLCBvcHRpb25zLnJldmVhbERlc2NlbmRhbnRCcmVha3BvaW50c01lbnVJdGVtSGFuZGxl
cik7CisKKyAgICAgICAgbGV0IHN1YnRyZWVTaG91bGRFbmFibGUgPSBzdWJ0cmVlQnJlYWtwb2lu
dHMuc29tZSgoYnJlYWtwb2ludCkgPT4gYnJlYWtwb2ludC5kaXNhYmxlZCk7CisgICAgICAgIGNv
bnRleHRNZW51LmFwcGVuZEl0ZW0oc3VidHJlZVNob3VsZEVuYWJsZSA/IFdJLlVJU3RyaW5nKCJF
bmFibGUgRGVzY2VuZGFudCBCcmVha3BvaW50cyIpIDogV0kuVUlTdHJpbmcoIkRpc2FibGUgRGVz
Y2VuZGFudCBCcmVha3BvaW50cyIpLCAoKSA9PiB7CisgICAgICAgICAgICBmb3IgKGxldCBzdWJ0
cmVlQnJlYWtwb2ludCBvZiBzdWJ0cmVlQnJlYWtwb2ludHMpCisgICAgICAgICAgICAgICAgc3Vi
dHJlZUJyZWFrcG9pbnQuZGlzYWJsZWQgPSAhc3VidHJlZVNob3VsZEVuYWJsZTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiRGVsZXRl
IERlc2NlbmRhbnQgQnJlYWtwb2ludHMiKSwgKCkgPT4geworICAgICAgICAgICAgZm9yIChsZXQg
c3VidHJlZUJyZWFrcG9pbnQgb2Ygc3VidHJlZUJyZWFrcG9pbnRzKQorICAgICAgICAgICAgICAg
IFdJLmRvbURlYnVnZ2VyTWFuYWdlci5yZW1vdmVET01CcmVha3BvaW50KHN1YnRyZWVCcmVha3Bv
aW50KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9y
KCk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTUJyZWFrcG9pbnRUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTUJyZWFrcG9pbnRUcmVlRWxlbWVudC5qcwpp
bmRleCA5OTFkNzE2ZGI1YWZhY2E1OGYzNTg4MzQ4YTU4ZGI4MzQ5MWZjOTQ2Li5jMGNjNWExYTdi
ZDNmNmM2ZmI5ZjRhZDY5NjU4ZDQ1Y2U2NjJhMWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01CcmVha3BvaW50VHJlZUVsZW1lbnQuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NQnJlYWtw
b2ludFRyZWVFbGVtZW50LmpzCkBAIC0xMjYsNyArMTI2LDYgQEAgV0kuRE9NQnJlYWtwb2ludFRy
ZWVFbGVtZW50ID0gY2xhc3MgRE9NQnJlYWtwb2ludFRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2Vu
ZXJhbFQKICAgICAgICAgbGV0IGxhYmVsID0gYnJlYWtwb2ludC5kaXNhYmxlZCA/IFdJLlVJU3Ry
aW5nKCJFbmFibGUgQnJlYWtwb2ludCIpIDogV0kuVUlTdHJpbmcoIkRpc2FibGUgQnJlYWtwb2lu
dCIpOwogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKGxhYmVsLCB0aGlzLl90b2dnbGVC
cmVha3BvaW50LmJpbmQodGhpcykpOwogCi0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFy
YXRvcigpOwogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJEZWxl
dGUgQnJlYWtwb2ludCIpLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIFdJLmRvbURlYnVnZ2Vy
TWFuYWdlci5yZW1vdmVET01CcmVha3BvaW50KGJyZWFrcG9pbnQpOwogICAgICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5v
ZGVUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0RPTU5vZGVUcmVlRWxlbWVudC5qcwppbmRleCBhZGFmZjNmYWFlOGYyYjgyNjkxMmIxOWIx
OWYxODgyZThjNTM3ZGUyLi5iZjBkOTc5OTNmMGFiMzFmYzFkM2Y4MjJlN2I4NzgxN2M1Mjg4YTI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9E
T01Ob2RlVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRE9NTm9kZVRyZWVFbGVtZW50LmpzCkBAIC01NSw5ICs1NSw3IEBAIFdJLkRP
TU5vZGVUcmVlRWxlbWVudCA9IGNsYXNzIERPTU5vZGVUcmVlRWxlbWVudCBleHRlbmRzIFdJLkdl
bmVyYWxUcmVlRWxlbWVudAogICAgIHsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJh
dG9yKCk7CiAKLSAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGVCcmVh
a3BvaW50cyhjb250ZXh0TWVudSwgdGhpcy5yZXByZXNlbnRlZE9iamVjdCwgewotICAgICAgICAg
ICAgYWxsb3dFZGl0aW5nOiB0cnVlLAotICAgICAgICB9KTsKKyAgICAgICAgV0kuYXBwZW5kQ29u
dGV4dE1lbnVJdGVtc0ZvckRPTU5vZGVCcmVha3BvaW50cyhjb250ZXh0TWVudSwgdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdCk7CiAKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RPTVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NVHJlZUVsZW1lbnQuanMKaW5kZXggOWIxYjNiNjFjYWFkMjkxZDVkZDNhMzc1OTY5
OWMwYmYwMGZiMjc2MS4uNWYyMGE2OGYzMGVjMjM5M2NkYWM5OGY0OTllNGZlNGU2N2YwY2Y2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9N
VHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NVHJlZUVsZW1lbnQuanMKQEAgLTQ1LDcgKzQ1LDcgQEAgV0kuRE9NVHJlZUVsZW1l
bnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdJLlRyZWVFbGVtZW50CiAgICAgICAg
IHRoaXMuX2FuaW1hdGluZ0hpZ2hsaWdodCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zaG91bGRI
aWdobGlnaHRBZnRlclJldmVhbCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9ib3VuZEhpZ2hsaWdo
dEFuaW1hdGlvbkVuZCA9IHRoaXMuX2hpZ2hsaWdodEFuaW1hdGlvbkVuZC5iaW5kKHRoaXMpOwot
ICAgICAgICB0aGlzLl9zdWJ0cmVlQnJlYWtwb2ludENvdW50ID0gMDsKKyAgICAgICAgdGhpcy5f
c3VidHJlZUJyZWFrcG9pbnRUcmVlRWxlbWVudHMgPSBudWxsOwogCiAgICAgICAgIHRoaXMuX3No
b3dHb1RvQXJyb3cgPSBmYWxzZTsKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWRBdHRyaWJ1dGVz
ID0gbmV3IFNldDsKQEAgLTc2LDcgKzc2LDcgQEAgV0kuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBE
T01UcmVlRWxlbWVudCBleHRlbmRzIFdJLlRyZWVFbGVtZW50CiAKICAgICBnZXQgaGFzQnJlYWtw
b2ludCgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludFN0YXR1cyAhPT0g
V0kuRE9NVHJlZUVsZW1lbnQuQnJlYWtwb2ludFN0YXR1cy5Ob25lIHx8IHRoaXMuX3N1YnRyZWVC
cmVha3BvaW50Q291bnQgPiAwOworICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludFN0YXR1
cyAhPT0gV0kuRE9NVHJlZUVsZW1lbnQuQnJlYWtwb2ludFN0YXR1cy5Ob25lIHx8ICh0aGlzLl9z
dWJ0cmVlQnJlYWtwb2ludFRyZWVFbGVtZW50cyAmJiB0aGlzLl9zdWJ0cmVlQnJlYWtwb2ludFRy
ZWVFbGVtZW50cy5zaXplKTsKICAgICB9CiAKICAgICBnZXQgYnJlYWtwb2ludFN0YXR1cygpCkBA
IC0xMDMsMTEgKzEwMywyMyBAQCBXSS5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVt
ZW50IGV4dGVuZHMgV0kuVHJlZUVsZW1lbnQKIAogICAgICAgICBsZXQgcGFyZW50RWxlbWVudCA9
IHRoaXMucGFyZW50OwogICAgICAgICB3aGlsZSAocGFyZW50RWxlbWVudCAmJiAhcGFyZW50RWxl
bWVudC5yb290KSB7Ci0gICAgICAgICAgICBwYXJlbnRFbGVtZW50LnN1YnRyZWVCcmVha3BvaW50
Q291bnREaWRDaGFuZ2UoaW5jcmVtZW50KTsKKyAgICAgICAgICAgIHBhcmVudEVsZW1lbnQuX3N1
YnRyZWVCcmVha3BvaW50Q2hhbmdlZCh0aGlzKTsKICAgICAgICAgICAgIHBhcmVudEVsZW1lbnQg
PSBwYXJlbnRFbGVtZW50LnBhcmVudDsKICAgICAgICAgfQogICAgIH0KIAorICAgIGJpbmRSZXZl
YWxEZXNjZW5kYW50QnJlYWtwb2ludHNNZW51SXRlbUhhbmRsZXIoKQorICAgIHsKKyAgICAgICAg
aWYgKCF0aGlzLl9zdWJ0cmVlQnJlYWtwb2ludFRyZWVFbGVtZW50cyB8fCAhdGhpcy5fc3VidHJl
ZUJyZWFrcG9pbnRUcmVlRWxlbWVudHMuc2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOwor
CisgICAgICAgIGxldCBzdWJ0cmVlQnJlYWtwb2ludFRyZWVFbGVtZW50cyA9IEFycmF5LmZyb20o
dGhpcy5fc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxlbWVudHMpOworICAgICAgICByZXR1cm4gKCkg
PT4geworICAgICAgICAgICAgZm9yIChsZXQgc3VidHJlZUJyZWFrcG9pbnRUcmVlRWxlbWVudCBv
ZiBzdWJ0cmVlQnJlYWtwb2ludFRyZWVFbGVtZW50cykKKyAgICAgICAgICAgICAgICBzdWJ0cmVl
QnJlYWtwb2ludFRyZWVFbGVtZW50LnJldmVhbCgpOworICAgICAgICB9OworICAgIH0KKwogICAg
IGdldCBjbG9zZVRhZ1RyZWVFbGVtZW50KCkgeyByZXR1cm4gdGhpcy5fY2xvc2VUYWdUcmVlRWxl
bWVudDsgfQogCiAgICAgcmV2ZWFsQW5kSGlnaGxpZ2h0KCkKQEAgLTExOSwxMiArMTMxLDYgQEAg
V0kuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdJLlRyZWVF
bGVtZW50CiAgICAgICAgIHRoaXMucmV2ZWFsKCk7CiAgICAgfQogCi0gICAgc3VidHJlZUJyZWFr
cG9pbnRDb3VudERpZENoYW5nZShpbmNyZW1lbnQpCi0gICAgewotICAgICAgICB0aGlzLl9zdWJ0
cmVlQnJlYWtwb2ludENvdW50ICs9IGluY3JlbWVudDsKLSAgICAgICAgdGhpcy5fdXBkYXRlQnJl
YWtwb2ludFN0YXR1cygpOwotICAgIH0KLQogICAgIGlzQ2xvc2VUYWcoKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRDbG9zZVRhZzsKQEAgLTE4NzIsNiArMTg3OCwyMSBAQCBX
SS5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuVHJlZUVs
ZW1lbnQKICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfQogCisgICAg
X3N1YnRyZWVCcmVha3BvaW50Q2hhbmdlZCh0cmVlRWxlbWVudCkKKyAgICB7CisgICAgICAgIGlm
ICh0cmVlRWxlbWVudC5oYXNCcmVha3BvaW50KSB7CisgICAgICAgICAgICBpZiAoIXRoaXMuX3N1
YnRyZWVCcmVha3BvaW50VHJlZUVsZW1lbnRzKQorICAgICAgICAgICAgICAgIHRoaXMuX3N1YnRy
ZWVCcmVha3BvaW50VHJlZUVsZW1lbnRzID0gbmV3IFNldDsKKyAgICAgICAgICAgIHRoaXMuX3N1
YnRyZWVCcmVha3BvaW50VHJlZUVsZW1lbnRzLmFkZCh0cmVlRWxlbWVudCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICB0aGlzLl9zdWJ0cmVlQnJlYWtwb2ludFRyZWVFbGVtZW50cy5k
ZWxldGUodHJlZUVsZW1lbnQpOworICAgICAgICAgICAgaWYgKCF0aGlzLl9zdWJ0cmVlQnJlYWtw
b2ludFRyZWVFbGVtZW50cy5zaXplKQorICAgICAgICAgICAgICAgIHRoaXMuX3N1YnRyZWVCcmVh
a3BvaW50VHJlZUVsZW1lbnRzID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3Vw
ZGF0ZUJyZWFrcG9pbnRTdGF0dXMoKTsKKyAgICB9CisKICAgICBfdXBkYXRlQnJlYWtwb2ludFN0
YXR1cygpCiAgICAgewogICAgICAgICBsZXQgbGlzdEl0ZW1FbGVtZW50ID0gdGhpcy5saXN0SXRl
bUVsZW1lbnQ7CkBAIC0xODc5LDcgKzE5MDAsNyBAQCBXSS5ET01UcmVlRWxlbWVudCA9IGNsYXNz
IERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuVHJlZUVsZW1lbnQKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBsZXQgaGFzQnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnRTdGF0dXMg
IT09IFdJLkRPTVRyZWVFbGVtZW50LkJyZWFrcG9pbnRTdGF0dXMuTm9uZTsKLSAgICAgICAgbGV0
IGhhc1N1YnRyZWVCcmVha3BvaW50cyA9ICEhdGhpcy5fc3VidHJlZUJyZWFrcG9pbnRDb3VudDsK
KyAgICAgICAgbGV0IGhhc1N1YnRyZWVCcmVha3BvaW50cyA9IHRoaXMuX3N1YnRyZWVCcmVha3Bv
aW50VHJlZUVsZW1lbnRzICYmIHRoaXMuX3N1YnRyZWVCcmVha3BvaW50VHJlZUVsZW1lbnRzLnNp
emU7CiAKICAgICAgICAgaWYgKCFoYXNCcmVha3BvaW50ICYmICFoYXNTdWJ0cmVlQnJlYWtwb2lu
dHMpIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9zdGF0dXNJbWFnZUVsZW1lbnQpCkBAIC0xOTIx
LDI2ICsxOTQyLDEzIEBAIFdJLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQg
ZXh0ZW5kcyBXSS5UcmVlRWxlbWVudAogCiAgICAgX3N0YXR1c0ltYWdlQ29udGV4dG1lbnUoZXZl
bnQpCiAgICAgewotICAgICAgICBsZXQgaGFzQnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnRT
dGF0dXMgIT09IFdJLkRPTVRyZWVFbGVtZW50LkJyZWFrcG9pbnRTdGF0dXMuTm9uZTsKLSAgICAg
ICAgbGV0IGhhc1N1YnRyZWVCcmVha3BvaW50cyA9ICEhdGhpcy5fc3VidHJlZUJyZWFrcG9pbnRD
b3VudDsKLSAgICAgICAgaWYgKCFoYXNCcmVha3BvaW50ICYmICFoYXNTdWJ0cmVlQnJlYWtwb2lu
dHMpCisgICAgICAgIGlmICghdGhpcy5oYXNCcmVha3BvaW50KQogICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIGxldCBjb250ZXh0TWVudSA9IFdJLkNvbnRleHRNZW51LmNyZWF0ZUZyb21F
dmVudChldmVudCk7Ci0gICAgICAgIGlmIChoYXNCcmVha3BvaW50KSB7Ci0gICAgICAgICAgICBX
SS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZUJyZWFrcG9pbnRzKGNvbnRleHRNZW51
LCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCB7Ci0gICAgICAgICAgICAgICAgYWxsb3dFZGl0aW5n
OiB0cnVlLAotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
IAotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJSZXZlYWwgQnJl
YWtwb2ludCIpLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgYnJlYWtwb2ludFRyZWVFbGVtZW50
ID0gdGhpcy5zZWxmT3JEZXNjZW5kYW50KCh0cmVlRWxlbWVudCkgPT4gdHJlZUVsZW1lbnQuYnJl
YWtwb2ludFN0YXR1cyAmJiB0cmVlRWxlbWVudC5icmVha3BvaW50U3RhdHVzICE9PSBXSS5ET01U
cmVlRWxlbWVudC5CcmVha3BvaW50U3RhdHVzLk5vbmUpOwotICAgICAgICAgICAgY29uc29sZS5h
c3NlcnQoYnJlYWtwb2ludFRyZWVFbGVtZW50LCAiTWlzc2luZyBicmVha3BvaW50IGRlc2NlbmRh
bnQuIiwgdGhpcyk7Ci0gICAgICAgICAgICBpZiAoIWJyZWFrcG9pbnRUcmVlRWxlbWVudCkKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGJyZWFrcG9pbnRUcmVlRWxlbWVu
dC5yZXZlYWxBbmRIaWdobGlnaHQoKTsKKyAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVt
c0ZvckRPTU5vZGVCcmVha3BvaW50cyhjb250ZXh0TWVudSwgdGhpcy5yZXByZXNlbnRlZE9iamVj
dCwgeworICAgICAgICAgICAgcmV2ZWFsRGVzY2VuZGFudEJyZWFrcG9pbnRzTWVudUl0ZW1IYW5k
bGVyOiB0aGlzLmJpbmRSZXZlYWxEZXNjZW5kYW50QnJlYWtwb2ludHNNZW51SXRlbUhhbmRsZXIo
KSwKICAgICAgICAgfSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzCmluZGV4IDQwNDA3
NWQ3YjllMWZiNWU1NThjNzRiNGYxODM2MTJhNDg3OGQ1NDMuLjBkZGIwZDkxMDJiNjAyMTVmODg5
NTY2OThiMjcxYzU4MzNiODUwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzCkBAIC0yODksNiAr
Mjg5LDEwIEBAIFdJLkRPTVRyZWVPdXRsaW5lID0gY2xhc3MgRE9NVHJlZU91dGxpbmUgZXh0ZW5k
cyBXSS5UcmVlT3V0bGluZQogICAgICAgICAgICAgZXhjbHVkZVJldmVhbEVsZW1lbnQ6IHRoaXMu
X2V4Y2x1ZGVSZXZlYWxFbGVtZW50Q29udGV4dE1lbnUsCiAgICAgICAgICAgICBjb3B5U3ViTWVu
dTogc3ViTWVudXMuY29weSwKICAgICAgICAgfTsKKworICAgICAgICBpZiAodHJlZUVsZW1lbnQu
YmluZFJldmVhbERlc2NlbmRhbnRCcmVha3BvaW50c01lbnVJdGVtSGFuZGxlcikKKyAgICAgICAg
ICAgIG9wdGlvbnMucmV2ZWFsRGVzY2VuZGFudEJyZWFrcG9pbnRzTWVudUl0ZW1IYW5kbGVyID0g
dHJlZUVsZW1lbnQuYmluZFJldmVhbERlc2NlbmRhbnRCcmVha3BvaW50c01lbnVJdGVtSGFuZGxl
cigpOworCiAgICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlKGNvbnRl
eHRNZW51LCB0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCwgb3B0aW9ucyk7CiAKICAgICAg
ICAgc3VwZXIucG9wdWxhdGVDb250ZXh0TWVudShjb250ZXh0TWVudSwgZXZlbnQsIHRyZWVFbGVt
ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0V2ZW50QnJlYWtwb2ludFRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRXZlbnRCcmVha3BvaW50VHJlZUVsZW1lbnQuanMKaW5kZXgg
MDRkZGRhMjMwOGFmNDIwM2VhM2MxYTIzZDk2MWFlMzRkYWIxYzA1Ny4uNzI2ODAzZDhlMzJmMmM3
ODRiNmVkMzUxMzU0YjMzOWVhNWU1YmZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRXZlbnRCcmVha3BvaW50VHJlZUVsZW1lbnQuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRXZlbnRCcmVha3Bv
aW50VHJlZUVsZW1lbnQuanMKQEAgLTExNCw4ICsxMTQsNiBAQCBXSS5FdmVudEJyZWFrcG9pbnRU
cmVlRWxlbWVudCA9IGNsYXNzIEV2ZW50QnJlYWtwb2ludFRyZWVFbGVtZW50IGV4dGVuZHMgV0ku
R2VuZQogICAgICAgICBsZXQgbGFiZWwgPSBicmVha3BvaW50LmRpc2FibGVkID8gV0kuVUlTdHJp
bmcoIkVuYWJsZSBCcmVha3BvaW50IikgOiBXSS5VSVN0cmluZygiRGlzYWJsZSBCcmVha3BvaW50
Iik7CiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0obGFiZWwsIHRoaXMuX3RvZ2dsZUJy
ZWFrcG9pbnQuYmluZCh0aGlzKSk7CiAKLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJh
dG9yKCk7Ci0KICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiRGVs
ZXRlIEJyZWFrcG9pbnQiKSwgKCkgPT4gewogICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQuZXZl
bnRMaXN0ZW5lcikKICAgICAgICAgICAgICAgICBXSS5kb21NYW5hZ2VyLnJlbW92ZUJyZWFrcG9p
bnRGb3JFdmVudExpc3RlbmVyKGJyZWFrcG9pbnQuZXZlbnRMaXN0ZW5lcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9VUkxCcmVha3BvaW50
VHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9VUkxCcmVha3BvaW50VHJlZUVsZW1lbnQuanMKaW5kZXggMDViMTgwOGUzNzI5YmFlNGY5NWY5
ZGI0MjI5OGU5OTgwNmY4MDk0Ny4uNTQxM2MzMmI4ODE4ZTM1NTc1MThlNmM3ZjQ2MzE3ODNmMDk5
ZTc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVVJMQnJlYWtwb2ludFRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1VSTEJyZWFrcG9pbnRUcmVlRWxlbWVudC5qcwpAQCAtMTE0
LDggKzExNCw2IEBAIFdJLlVSTEJyZWFrcG9pbnRUcmVlRWxlbWVudCA9IGNsYXNzIFVSTEJyZWFr
cG9pbnRUcmVlRWxlbWVudCBleHRlbmRzIFdJLkdlbmVyYWxUCiAgICAgICAgIGxldCBsYWJlbCA9
IGJyZWFrcG9pbnQuZGlzYWJsZWQgPyBXSS5VSVN0cmluZygiRW5hYmxlIEJyZWFrcG9pbnQiKSA6
IFdJLlVJU3RyaW5nKCJEaXNhYmxlIEJyZWFrcG9pbnQiKTsKICAgICAgICAgY29udGV4dE1lbnUu
YXBwZW5kSXRlbShsYWJlbCwgdGhpcy5fdG9nZ2xlQnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKIAot
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKLQogICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJEZWxldGUgQnJlYWtwb2ludCIpLCAoKSA9PiB7
CiAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIucmVtb3ZlVVJMQnJlYWtwb2ludChi
cmVha3BvaW50KTsKICAgICAgICAgfSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>