<?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>183627</bug_id>
          
          <creation_ts>2018-03-13 23:00:39 -0700</creation_ts>
          <short_desc>Web Inspector: Styles Redesign: rework Computed panel to use Spreadsheet classes</short_desc>
          <delta_ts>2018-09-20 19:03:39 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=181973</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>189808</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1406357</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-03-13 23:00:39 -0700</bug_when>
    <thetext>It seems very unnecessary to use CodeMirror for the Computed panel, especially since none of it is editable.  This would massively simplify (and lighten the load) of the Computed panel, and remove some bugs in the process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406501</commentid>
    <comment_count>1</comment_count>
      <attachid>335796</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-03-14 14:06:49 -0700</bug_when>
    <thetext>Created attachment 335796
Patch

This is a reviewable patch, but it is missing tabbing support.  Not sure whether it&apos;ll be better to address that in this bug or a followup, as I think it&apos;ll be pretty hefty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454318</commentid>
    <comment_count>2</comment_count>
      <attachid>348275</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-08-28 01:09:00 -0700</bug_when>
    <thetext>Created attachment 348275
Patch

Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459635</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-09-13 19:31:35 -0700</bug_when>
    <thetext>In general I think this looks and feels good. A few things that are different (which may just because that is how it is implemented in the SpreadSheet editor).

    1. Less syntax highlighting (numbers, keywords, etc)
    2. Filtering now matches the entire property + value instead of just the search term
    3. Sometimes when switching between nodes the pseudo class checkboxes are visible where they weren&apos;t before
    4. Text selection of properties where `display`, `width`, or `height` had an implicit value displays poorly
    5. PRO: Color values have color swatches

I also saw multiple existing bugs, which exhibited before and after the patch.

I certainly think this is a step in the right direction to be more consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459641</commentid>
    <comment_count>4</comment_count>
      <attachid>348275</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-09-13 19:46:23 -0700</bug_when>
    <thetext>Comment on attachment 348275
Patch

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

I think this is very close to landing.

I did notice one difference which seems like a bug. Filtering did not behave as expected in the Variables section:

Steps to Reproduce:
1. Inspect the inspector
2. Select an element in inspector²
3. Show Computed styles
4. Filter for &quot;size&quot;
    =&gt; Should show `box-size` in properties, and some variables. Actually shows lots of variables...

Perhaps we should be setting:

    this._variablesTextEditor.hideFilterNonMatchingProperties = true;

&gt; Source/WebInspectorUI/UserInterface/Views/ComputedStyleDetailsPanel.js:141
&gt; +        this._variablesTextEditor = new WI.SpreadsheetCSSStyleDeclarationEditor(this);

Should we enable `hideFilterNonMatchingProperties`?

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:55
&gt; -        if (!this.style.editable)
&gt; +        if (!this._style || !this._style.editable)

When might this._style be null?

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:202
&gt; +        if (this._style) {

Style: Early return to avoid nesting the entire function.

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:208
&gt; +            if (this._style.type === WI.CSSStyleDeclaration.Type.Computed) {

It is weird that we only apply the `propertyVisibilityMode` and `showsImplicitProperties` filters when the type is Computed. Nothing about those editor properties seems specific to Computed. I know they aren&apos;t used outside of Computed right now though.

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:315
&gt; +                if (this._hideFilterNonMatchingProperties)
&gt; +                    this.element.append(propertyView.element);

Maybe this should avoid calling `append` if `this.element.parentNode` is non-null? Otherwise it might try to remove and re-append at the end?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460261</commentid>
    <comment_count>5</comment_count>
      <attachid>348275</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-09-17 12:22:42 -0700</bug_when>
    <thetext>Comment on attachment 348275
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/ComputedStyleDetailsPanel.js:141
&gt;&gt; +        this._variablesTextEditor = new WI.SpreadsheetCSSStyleDeclarationEditor(this);
&gt; 
&gt; Should we enable `hideFilterNonMatchingProperties`?

Yup!  Oops :P

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:55
&gt;&gt; +        if (!this._style || !this._style.editable)
&gt; 
&gt; When might this._style be null?

When created by the computed tab, they are initialized inside `initialLayout`, meaning that the `refresh` call won&apos;t happen until later, which is where the `style` is set.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:208
&gt;&gt; +            if (this._style.type === WI.CSSStyleDeclaration.Type.Computed) {
&gt; 
&gt; It is weird that we only apply the `propertyVisibilityMode` and `showsImplicitProperties` filters when the type is Computed. Nothing about those editor properties seems specific to Computed. I know they aren&apos;t used outside of Computed right now though.

Agreed.  Will change.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:315
&gt;&gt; +                    this.element.append(propertyView.element);
&gt; 
&gt; Maybe this should avoid calling `append` if `this.element.parentNode` is non-null? Otherwise it might try to remove and re-append at the end?

We don&apos;t want to do that actually, because otherwise previously removed `propertyView` won&apos;t get inserted at the right spot.  By re-adding to the bottom, we effectively keep the same order as before because they ALL get re-added to the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460262</commentid>
    <comment_count>6</comment_count>
      <attachid>349916</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-09-17 12:23:05 -0700</bug_when>
    <thetext>Created attachment 349916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461597</commentid>
    <comment_count>7</comment_count>
      <attachid>349916</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-09-20 16:45:36 -0700</bug_when>
    <thetext>Comment on attachment 349916
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:234
&gt; +
&gt; +

Style: Extra empty line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461604</commentid>
    <comment_count>8</comment_count>
      <attachid>350282</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-09-20 16:52:15 -0700</bug_when>
    <thetext>Created attachment 350282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461652</commentid>
    <comment_count>9</comment_count>
      <attachid>350282</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-20 19:02:21 -0700</bug_when>
    <thetext>Comment on attachment 350282
Patch

Clearing flags on attachment: 350282

Committed r236297: &lt;https://trac.webkit.org/changeset/236297&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461653</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-20 19:02:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461654</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-20 19:03:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/44664917&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335796</attachid>
            <date>2018-03-14 14:06:49 -0700</date>
            <delta_ts>2018-08-28 01:08:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183627-20180314150648.patch</filename>
            <type>text/plain</type>
            <size>33887</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGY5Yjc1NTBmZGZjNTI3ZWFiMTBkOWEzZGM4ZjYx
MTVhMjY1YjVjY2MuLjNhODE4MThjZGIxM2U4NDZlNGU0ZTc3M2JjZTAyNmYxZDA4NTY3NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE4LTAzLTE0ICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFN0eWxlcyBSZWRlc2lnbjogcmV3b3JrIENvbXB1dGVkIHBhbmVsIHRvIHVzZSBTcHJlYWRz
aGVldCBjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODM2MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qczoK
KyAgICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwpOgorICAgICAgICAoV0kuQ29t
cHV0ZWRTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUucmVmcmVzaCk6CisgICAgICAgIChXSS5D
b21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5hcHBseUZpbHRlcik6CisgICAgICAg
IChXSS5Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5zcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZGl0b3JTaG93UHJvcGVydHkpOgorICAgICAgICAoV0kuQ29tcHV0ZWRT
dHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5D
b21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5maWx0ZXJEaWRDaGFuZ2UpOgorICAg
ICAgICAoV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuX2NvbXB1dGVkU3R5
bGVTaG93QWxsQ2hlY2tib3hWYWx1ZUNoYW5nZWQpOgorICAgICAgICAoV0kuQ29tcHV0ZWRTdHls
ZURldGFpbHNQYW5lbC5wcm90b3R5cGUuX2hhbmRsZVByb3BlcnRpZXNTZWN0aW9uQ29sbGFwc2Vk
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwucHJv
dG90eXBlLl9oYW5kbGVWYXJpYWJsZXNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkKToKKyAg
ICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9oYW5kbGVFZGl0
b3JGaWx0ZXJBcHBsaWVkKToKKyAgICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwu
cHJvdG90eXBlLmNzc1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yU2hvd1Byb3BlcnR5LmRlbGVn
YXRlU2hvd1Byb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRh
aWxzUGFuZWwucHJvdG90eXBlLmNzc1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yU2hvd1Byb3Bl
cnR5KTogRGVsZXRlZC4KKyAgICAgICAgUmVwbGFjZSBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVk
aXRvciB3aXRoIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRp
dG9yLmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
KToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90
b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVj
bGFyYXRpb25FZGl0b3IucHJvdG90eXBlLmxheW91dCk6CisgICAgICAgIChXSS5TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLnNldCBzaG93c0ltcGxpY2l0UHJv
cGVydGllcyk6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0
b3IucHJvdG90eXBlLnNldCBhbHdheXNTaG93UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChXSS5T
cHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLnNldCBwcm9wZXJ0
eVZpc2liaWxpdHlNb2RlKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkaXRvci5wcm90b3R5cGUuc2V0IGhpZGVGaWx0ZXJOb25NYXRjaGluZ1Byb3BlcnRpZXMp
OgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3Rv
dHlwZS5nZXQgcHJvcGVydGllc1RvUmVuZGVyKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NT
U3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5cGUuaGlnaGxpZ2h0UHJvcGVydHkpOgorICAg
ICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3RvdHlwZS5h
cHBseUZpbHRlcik6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25F
ZGl0b3IucHJvdG90eXBlLnNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eVNob3dQcm9wZXJ0eSk6Cisg
ICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBl
Ll91cGRhdGVTdHlsZUxvY2spOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xh
cmF0aW9uRWRpdG9yLnByb3RvdHlwZS5nZXQgX3Byb3BlcnRpZXNUb1JlbmRlcik6IERlbGV0ZWQu
CisgICAgICAgIENyZWF0ZSBzZXR0ZXJzIGZvciB0aGUgInNwZWNpYWwiIGZ1bmN0aW9uYWxpdHkg
cmVxdWlyZWQgYnkgdGhlIENvbXB1dGVkIHBhbmVsIGFuZCB0aWUgdGhlbQorICAgICAgICBpbnRv
IHRoZSBsb2dpYyB0aGF0IGRldGVybWluZXMgd2hhdCBwcm9wZXJ0aWVzIGFyZSByZW5kZXJlZC4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5
LmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5fdXBk
YXRlKToKKyAgICAgICAgQ3JlYXRlIGdvLXRvIGFycm93IGlmIHRoZSBwcm9wZXJ0eSBoYXMgYSBz
aG9ydGhhbmQgdmVyc2lvbiBvciBhIHNvdXJjZSBjb2RlIGxvY2F0aW9uLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9HZW5lcmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgor
ICAgICAgICAoV0kuR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5p
dGlhbExheW91dCk6CisgICAgICAgIERvbid0IHJlYXBwbHkgdGhlIGZpbHRlciBhZnRlciByZWZy
ZXNoaW5nLCBhcyB0aGUgY3VycmVudCBwYW5lbCB3aWxsIGhhbmRsZSBhcHBseWluZyBpdC4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5j
c3M6CisgICAgICAgICguZGV0YWlscy1zZWN0aW9uOm1hdGNoZXMoLmNvbXB1dGVkLXN0eWxlLXBy
b3BlcnRpZXMsIC5jb21wdXRlZC1zdHlsZS1ib3gtbW9kZWwpOm5vdCguY29sbGFwc2VkKSA+IDpt
YXRjaGVzKC5oZWFkZXIsIC5jb250ZW50KSk6CisgICAgICAgICguY29tcHV0ZWQtc3R5bGUtcHJv
cGVydGllcyAucHJvcGVydHkgLmdvLXRvLWFycm93KToKKyAgICAgICAgKC5jb21wdXRlZC1zdHls
ZS1wcm9wZXJ0aWVzIC5wcm9wZXJ0eTpob3ZlciAuZ28tdG8tYXJyb3cpOgorICAgICAgICAoLmNv
bXB1dGVkLXN0eWxlLXByb3BlcnRpZXMuZGV0YWlscy1zZWN0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCA+IC5ncm91cCA+IC5yb3cgLkNvZGVNaXJy
b3ItY29kZSBwcmUgLmdvLXRvLWFycm93KTogRGVsZXRlZC4KKyAgICAgICAgKC5kZXRhaWxzLXNl
Y3Rpb24gPiAuY29udGVudCA+IC5ncm91cCA+IC5yb3cgLkNvZGVNaXJyb3ItY29kZSBwcmU6aG92
ZXIgLmdvLXRvLWFycm93KTogRGVsZXRlZC4KKyAgICAgICAgKC5kZXRhaWxzLXNlY3Rpb24uc3R5
bGUtYm94LW1vZGVsOm5vdCguY29sbGFwc2VkKSA+IDptYXRjaGVzKC5oZWFkZXIsIC5jb250ZW50
KSk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlv
bi5jc3M6CisgICAgICAgICguZGV0YWlscy1zZWN0aW9uLmNvbXB1dGVkLXN0eWxlLXByb3BlcnRp
ZXM6bm90KC5jb2xsYXBzZWQpID4gLmhlYWRlcik6IERlbGV0ZWQuCisgICAgICAgIENvbnNvbGlk
YXRlIENvbXB1dGVkIHBhbmVsIHN0eWxlcyB0byBpdCdzIHJlc3BlY3RpdmUgQ1NTIGZpbGUuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkaXRvci5jc3M6CisgICAgICAgICguc3ByZWFkc2hlZXQtc3R5bGUtZGVjbGFyYXRpb24t
ZWRpdG9yKToKKyAgICAgICAgKC5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3Ig
LnByb3BlcnR5Om1hdGNoZXMoLmltcGxpY2l0LCAubm90LWluaGVyaXRlZCkgLmNvbnRlbnQgPiAq
KToKKyAgICAgICAgKC5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IgLnByb3Bl
cnR5Lm5vdC1pbmhlcml0ZWQgLmNvbnRlbnQgPiAqKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3Nz
OgorICAgICAgICAoLnNwcmVhZHNoZWV0LWNzcy1kZWNsYXJhdGlvbik6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9WYXJpYWJsZXMuY3NzOgorICAgICAgICAoOnJvb3QpOgorICAgICAg
ICBNb3ZlIGBjc3MtZGVjbGFyYXRpb25gIHBhZGRpbmcgdmFyaWFibGVzIHNvIHRoZXkgY2FuIGJl
IHVzZWQgYnkgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yCisgICAgICAgIHdp
dGhvdXQgYSBwYXJlbnQgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRSdWxlc1N0eWxlRGV0YWls
c1BhbmVsLmNzczoKKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCAuc3R5bGUtcnVsZSk6IERl
bGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgLnNlbGVjdG9yLWxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0IC5zZWxlY3Rvcik6IERlbGV0ZWQuCisg
ICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgOm1hdGNoZXMoLnNlbGVjdG9yIC5tYXRjaGVkLCAu
c2VsZWN0b3I6Zm9jdXMpKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCAu
bmFtZSk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgLnZhbHVlKTogRGVs
ZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyguc2VsZWN0b3IsIC5u
YW1lLCAudmFsdWUpKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCA6bWF0
Y2hlcyguc2VsZWN0b3IsIC5uYW1lLCAudmFsdWUpOmZvY3VzKTogRGVsZXRlZC4KKyAgICAgICAg
KC5zdHlsZS1zcHJlYWRzaGVldCAuc2VsZWN0b3ItaW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAg
KC5zdHlsZS1zcHJlYWRzaGVldCAucHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoLnN0eWxl
LXNwcmVhZHNoZWV0IC5wcm9wZXJ0eS1kaXNhYmxlZCwpOiBEZWxldGVkLgorICAgICAgICAoLnN0
eWxlLXNwcmVhZHNoZWV0IC5wcm9wZXJ0eS1kaXNhYmxlZCA6bWF0Y2hlcygubmFtZSwgLnZhbHVl
KSk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgLnN0eWxlcy1zb3VyY2Up
OiBEZWxldGVkLgorICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0IDptYXRjaGVzKGEsIC5ub2Rl
LWxpbmspKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyhh
LCAubm9kZS1saW5rKTpob3Zlcik6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hl
ZXQgLmRlY2xhcmF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQg
aW5wdXRbdHlwZT0iY2hlY2tib3giXSk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFk
c2hlZXQgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpub3QoOmNoZWNrZWQpKTogRGVsZXRlZC4KKyAg
ICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCAuZGVjbGFyYXRpb25zOmhvdmVyIGlucHV0W3R5cGU9
ImNoZWNrYm94Il0pOiBEZWxldGVkLgorICAgICAgICBEcml2ZS1ieSBmaXg6IHJlbW92ZSBzdHls
ZXMgdGhhdCBkb24ndCBhcHBseSB0byBhbnl0aGluZy4KKwogMjAxOC0wMy0xMiAgSm9uIERhdmlz
ICA8am9uZEBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHJlZHVu
ZGFudCB0b29sdGlwcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmNz
cwppbmRleCBmN2FlYzA5ZDU2NTZkMzkzODRiZDRkMjk3ZTE0MTU0NTQ2OWNmOTk3Li5kNzU0M2Iw
MjNhOTJmZDMyNjgwNGE2NjkzOWMyYzYyNWI5Y2MwM2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVs
LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21w
dXRlZFN0eWxlRGV0YWlsc1BhbmVsLmNzcwpAQCAtMjMsMTEgKzIzLDExIEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLmNvbXB1dGVkLXN0eWxlLXByb3BlcnRp
ZXMuZGV0YWlscy1zZWN0aW9uIHsKKy5kZXRhaWxzLXNlY3Rpb246bWF0Y2hlcyguY29tcHV0ZWQt
c3R5bGUtcHJvcGVydGllcywgLmNvbXB1dGVkLXN0eWxlLWJveC1tb2RlbCk6bm90KC5jb2xsYXBz
ZWQpID4gOm1hdGNoZXMoLmhlYWRlciwgLmNvbnRlbnQpIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiB3aGl0ZTsKIH0KIAotLmRldGFpbHMtc2VjdGlvbiA+IC5jb250ZW50ID4gLmdyb3VwID4gLnJv
dyAuQ29kZU1pcnJvci1jb2RlIHByZSAuZ28tdG8tYXJyb3cgeworLmNvbXB1dGVkLXN0eWxlLXBy
b3BlcnRpZXMgLnByb3BlcnR5IC5nby10by1hcnJvdyB7CiAgICAgZGlzcGxheTogbm9uZTsKICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgd2lkdGg6IDEycHg7CkBAIC0zNSwxMCArMzUsNiBA
QAogICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTsKIH0KIAotLmRldGFpbHMtc2VjdGlv
biA+IC5jb250ZW50ID4gLmdyb3VwID4gLnJvdyAuQ29kZU1pcnJvci1jb2RlIHByZTpob3ZlciAu
Z28tdG8tYXJyb3cgeworLmNvbXB1dGVkLXN0eWxlLXByb3BlcnRpZXMgLnByb3BlcnR5OmhvdmVy
IC5nby10by1hcnJvdyB7CiAgICAgZGlzcGxheTogaW5pdGlhbDsKIH0KLQotLmRldGFpbHMtc2Vj
dGlvbi5zdHlsZS1ib3gtbW9kZWw6bm90KC5jb2xsYXBzZWQpID4gOm1hdGNoZXMoLmhlYWRlciwg
LmNvbnRlbnQpIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLX0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1dGVkU3R5bGVE
ZXRhaWxzUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmpzCmluZGV4IGZmOTY0NzY5YTk5NmNiNWMxOTYy
MjE0YjQwOGViOWE2ZTg1OTRlZDIuLjA5MTA2NTE3NDQyYTlmZjFiOWEyODkyNzczNzY5NjI3MDk0
MDdjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qcwpAQCAt
MzEsNDggKzMxLDExIEBAIFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBDb21w
dXRlZFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMgV0kuU3R5bGVECiAKICAgICAgICAgdGhpcy5f
Y29tcHV0ZWRTdHlsZVNob3dBbGxTZXR0aW5nID0gbmV3IFdJLlNldHRpbmcoImNvbXB1dGVkLXN0
eWxlLXNob3ctYWxsIiwgZmFsc2UpOwogCi0gICAgICAgIHRoaXMuY3NzU3R5bGVEZWNsYXJhdGlv
blRleHRFZGl0b3JTaG91bGRBZGRQcm9wZXJ0eUdvVG9BcnJvd3MgPSB0cnVlOworICAgICAgICB0
aGlzLl9maWx0ZXJUZXh0ID0gbnVsbDsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKIAotICAgIGNz
c1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yU2hvd1Byb3BlcnR5KHByb3BlcnR5LCBzaG93U291
cmNlKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZGVsZWdhdGVTaG93UHJvcGVydHkoKSB7Ci0g
ICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2RlbGVnYXRlLmNvbXB1dGVkU3R5bGVEZXRhaWxz
UGFuZWxTaG93UHJvcGVydHkgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgdGhpcy5f
ZGVsZWdhdGUuY29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbFNob3dQcm9wZXJ0eShwcm9wZXJ0eSk7
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIXNob3dTb3VyY2UpIHsKLSAgICAgICAgICAgIGRl
bGVnYXRlU2hvd1Byb3BlcnR5LmNhbGwodGhpcyk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICBsZXQgZWZmZWN0aXZlUHJvcGVydHkgPSB0aGlzLl9ub2RlU3R5bGVz
LmVmZmVjdGl2ZVByb3BlcnR5Rm9yTmFtZShwcm9wZXJ0eS5uYW1lKTsKLSAgICAgICAgaWYgKCFl
ZmZlY3RpdmVQcm9wZXJ0eSB8fCAhZWZmZWN0aXZlUHJvcGVydHkuc3R5bGVTaGVldFRleHRSYW5n
ZSkgewotICAgICAgICAgICAgaWYgKCFlZmZlY3RpdmVQcm9wZXJ0eS5yZWxhdGVkU2hvcnRoYW5k
UHJvcGVydHkpIHsKLSAgICAgICAgICAgICAgICBkZWxlZ2F0ZVNob3dQcm9wZXJ0eS5jYWxsKHRo
aXMpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGVmZmVjdGl2ZVByb3BlcnR5ID0gZWZmZWN0aXZlUHJvcGVydHkucmVsYXRlZFNob3J0aGFuZFBy
b3BlcnR5OwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IG93bmVyUnVsZSA9IGVmZmVjdGl2ZVBy
b3BlcnR5Lm93bmVyU3R5bGUub3duZXJSdWxlOwotICAgICAgICBpZiAoIW93bmVyUnVsZSkgewot
ICAgICAgICAgICAgZGVsZWdhdGVTaG93UHJvcGVydHkuY2FsbCh0aGlzKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBzb3VyY2VDb2RlID0gb3duZXJSdWxl
LnNvdXJjZUNvZGVMb2NhdGlvbi5zb3VyY2VDb2RlOwotICAgICAgICBsZXQge3N0YXJ0TGluZSwg
c3RhcnRDb2x1bW59ID0gZWZmZWN0aXZlUHJvcGVydHkuc3R5bGVTaGVldFRleHRSYW5nZTsKLQot
ICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgaWdub3JlTmV0d29ya1RhYjog
dHJ1ZSwKLSAgICAgICAgICAgIGlnbm9yZVNlYXJjaFRhYjogdHJ1ZSwKLSAgICAgICAgfTsKLSAg
ICAgICAgV0kuc2hvd1NvdXJjZUNvZGVMb2NhdGlvbihzb3VyY2VDb2RlLmNyZWF0ZVNvdXJjZUNv
ZGVMb2NhdGlvbihzdGFydExpbmUsIHN0YXJ0Q29sdW1uKSwgb3B0aW9ucyk7Ci0gICAgfQotCiAg
ICAgcmVmcmVzaChzaWduaWZpY2FudENoYW5nZSkKICAgICB7CiAgICAgICAgIC8vIFdlIG9ubHkg
bmVlZCB0byBkbyBhIHJlYnVpbGQgb24gc2lnbmlmaWNhbnQgY2hhbmdlcy4gT3RoZXIgY2hhbmdl
cyBhcmUgaGFuZGxlZApAQCAtODMsMTkgKzQ2LDM2IEBAIFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxz
UGFuZWwgPSBjbGFzcyBDb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMgV0kuU3R5bGVE
CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5zdHlsZSA9
IHRoaXMubm9kZVN0eWxlcy5jb21wdXRlZFN0eWxlOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVz
U2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsICF0aGlzLl9wcm9wZXJ0
aWVzVGV4dEVkaXRvci5wcm9wZXJ0aWVzVG9SZW5kZXIubGVuZ3RoKTsKKwogICAgICAgICB0aGlz
Ll92YXJpYWJsZXNUZXh0RWRpdG9yLnN0eWxlID0gdGhpcy5ub2RlU3R5bGVzLmNvbXB1dGVkU3R5
bGU7CisgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1NlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9n
Z2xlKCJoaWRkZW4iLCAhdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRvci5wcm9wZXJ0aWVzVG9SZW5k
ZXIubGVuZ3RoKTsKKwogICAgICAgICB0aGlzLl9ib3hNb2RlbERpYWdyYW1Sb3cubm9kZVN0eWxl
cyA9IHRoaXMubm9kZVN0eWxlczsKIAorICAgICAgICBpZiAodGhpcy5fZmlsdGVyVGV4dCkKKyAg
ICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIodGhpcy5fZmlsdGVyVGV4dCk7CisKICAgICAgICAg
c3VwZXIucmVmcmVzaCgpOworICAgIH0KKworICAgIGFwcGx5RmlsdGVyKGZpbHRlclRleHQpCisg
ICAgeworICAgICAgICB0aGlzLl9maWx0ZXJUZXh0ID0gZmlsdGVyVGV4dDsKIAotICAgICAgICB0
aGlzLl92YXJpYWJsZXNTZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwg
IXRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3Iuc2hvd25Qcm9wZXJ0aWVzLmxlbmd0aCk7CisgICAg
ICAgIGlmICghdGhpcy5kaWRJbml0aWFsTGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLmFwcGx5RmlsdGVyKGZpbHRlclRleHQp
OworICAgICAgICB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yLmFwcGx5RmlsdGVyKGZpbHRlclRl
eHQpOwogICAgIH0KIAotICAgIGZpbHRlckRpZENoYW5nZShmaWx0ZXJCYXIpCisgICAgLy8gU3By
ZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yIGRlbGVnYXRlCisKKyAgICBzcHJlYWRz
aGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3JTaG93UHJvcGVydHkoZWRpdG9yLCBwcm9wZXJ0
eSkKICAgICB7Ci0gICAgICAgIGxldCBmaWx0ZXJUZXh0ID0gZmlsdGVyQmFyLmZpbHRlcnMudGV4
dDsKLSAgICAgICAgdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IucmVtb3ZlTm9uTWF0Y2hpbmdQ
cm9wZXJ0aWVzKGZpbHRlclRleHQpOwotICAgICAgICB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9y
LnJlbW92ZU5vbk1hdGNoaW5nUHJvcGVydGllcyhmaWx0ZXJUZXh0KTsKKyAgICAgICAgaWYgKHRo
aXMuX2RlbGVnYXRlLmNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWxTaG93UHJvcGVydHkpCisgICAg
ICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5jb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsU2hvd1Byb3Bl
cnR5KHByb3BlcnR5KTsKICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTExMSwyNCArOTEs
MjUgQEAgV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIENvbXB1dGVkU3R5bGVE
ZXRhaWxzUGFuZWwgZXh0ZW5kcyBXSS5TdHlsZUQKICAgICAgICAgdGhpcy5fY29tcHV0ZWRTdHls
ZVNob3dBbGxDaGVja2JveC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl9jb21wdXRl
ZFN0eWxlU2hvd0FsbENoZWNrYm94VmFsdWVDaGFuZ2VkLmJpbmQodGhpcykpOwogICAgICAgICBj
b21wdXRlZFN0eWxlU2hvd0FsbExhYmVsLmFwcGVuZENoaWxkKHRoaXMuX2NvbXB1dGVkU3R5bGVT
aG93QWxsQ2hlY2tib3gpOwogCi0gICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yID0g
bmV3IFdJLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yKHRoaXMpOwotICAgICAgICB0aGlz
Ll9wcm9wZXJ0aWVzVGV4dEVkaXRvci5wcm9wZXJ0eVZpc2liaWxpdHlNb2RlID0gV0kuQ1NTU3R5
bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuUHJvcGVydHlWaXNpYmlsaXR5TW9kZS5IaWRlVmFyaWFi
bGVzOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvciA9IG5ldyBXSS5TcHJlYWRz
aGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IodGhpcyk7CisgICAgICAgIHRoaXMuX3Byb3Bl
cnRpZXNUZXh0RWRpdG9yLnByb3BlcnR5VmlzaWJpbGl0eU1vZGUgPSBXSS5TcHJlYWRzaGVldENT
U1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuUHJvcGVydHlWaXNpYmlsaXR5TW9kZS5IaWRlVmFyaWFi
bGVzOwogICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5zaG93c0ltcGxpY2l0UHJv
cGVydGllcyA9IHRoaXMuX2NvbXB1dGVkU3R5bGVTaG93QWxsU2V0dGluZy52YWx1ZTsKICAgICAg
ICAgdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IuYWx3YXlzU2hvd1Byb3BlcnR5TmFtZXMgPSBb
ImRpc3BsYXkiLCAid2lkdGgiLCAiaGVpZ2h0Il07Ci0gICAgICAgIHRoaXMuX3Byb3BlcnRpZXNU
ZXh0RWRpdG9yLnNvcnRQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fcHJvcGVydGll
c1RleHRFZGl0b3IuaGlkZUZpbHRlck5vbk1hdGNoaW5nUHJvcGVydGllcyA9IHRydWU7CisgICAg
ICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoV0kuU3ByZWFk
c2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLkV2ZW50LkZpbHRlckFwcGxpZWQsIHRoaXMu
X2hhbmRsZUVkaXRvckZpbHRlckFwcGxpZWQsIHRoaXMpOwogCiAgICAgICAgIGxldCBwcm9wZXJ0
aWVzUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwogICAgICAgICBsZXQgcHJvcGVydGll
c0dyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3Byb3BlcnRpZXNSb3ddKTsKLSAg
ICAgICAgbGV0IHByb3BlcnRpZXNTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJjb21w
dXRlZC1zdHlsZS1wcm9wZXJ0aWVzIiwgV0kuVUlTdHJpbmcoIlByb3BlcnRpZXMiKSwgW3Byb3Bl
cnRpZXNHcm91cF0sIGNvbXB1dGVkU3R5bGVTaG93QWxsTGFiZWwpOwotICAgICAgICBwcm9wZXJ0
aWVzU2VjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxh
cHNlZFN0YXRlQ2hhbmdlZCwgdGhpcy5faGFuZGxlUHJvcGVydGllc1NlY3Rpb25Db2xsYXBzZWRT
dGF0ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzU2VjdGlvbiA9IG5l
dyBXSS5EZXRhaWxzU2VjdGlvbigiY29tcHV0ZWQtc3R5bGUtcHJvcGVydGllcyIsIFdJLlVJU3Ry
aW5nKCJQcm9wZXJ0aWVzIiksIFtwcm9wZXJ0aWVzR3JvdXBdLCBjb21wdXRlZFN0eWxlU2hvd0Fs
bExhYmVsKTsKKyAgICAgICAgdGhpcy5fcHJvcGVydGllc1NlY3Rpb24uYWRkRXZlbnRMaXN0ZW5l
cihXSS5EZXRhaWxzU2VjdGlvbi5FdmVudC5Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMuX2hh
bmRsZVByb3BlcnRpZXNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzKTsKIAogICAg
ICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IpOwogCiAgICAg
ICAgIHByb3BlcnRpZXNSb3cuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9wcm9wZXJ0aWVzVGV4
dEVkaXRvci5lbGVtZW50KTsKIAotICAgICAgICB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yID0g
bmV3IFdJLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yKHRoaXMpOwotICAgICAgICB0aGlz
Ll92YXJpYWJsZXNUZXh0RWRpdG9yLnByb3BlcnR5VmlzaWJpbGl0eU1vZGUgPSBXSS5DU1NTdHls
ZURlY2xhcmF0aW9uVGV4dEVkaXRvci5Qcm9wZXJ0eVZpc2liaWxpdHlNb2RlLkhpZGVOb25WYXJp
YWJsZXM7Ci0gICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3Iuc29ydFByb3BlcnRpZXMg
PSB0cnVlOworICAgICAgICB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yID0gbmV3IFdJLlNwcmVh
ZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvcih0aGlzKTsKKyAgICAgICAgdGhpcy5fdmFy
aWFibGVzVGV4dEVkaXRvci5wcm9wZXJ0eVZpc2liaWxpdHlNb2RlID0gV0kuU3ByZWFkc2hlZXRD
U1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLlByb3BlcnR5VmlzaWJpbGl0eU1vZGUuSGlkZU5vblZh
cmlhYmxlczsKKyAgICAgICAgdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRvci5hZGRFdmVudExpc3Rl
bmVyKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5FdmVudC5GaWx0ZXJB
cHBsaWVkLCB0aGlzLl9oYW5kbGVFZGl0b3JGaWx0ZXJBcHBsaWVkLCB0aGlzKTsKIAogICAgICAg
ICBsZXQgdmFyaWFibGVzUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwogICAgICAgICBs
ZXQgdmFyaWFibGVzR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdmFyaWFibGVz
Um93XSk7CkBAIC0xMzksMTcgKzEyMCwyNCBAQCBXSS5Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVs
ID0gY2xhc3MgQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbCBleHRlbmRzIFdJLlN0eWxlRAogCiAg
ICAgICAgIHZhcmlhYmxlc1Jvdy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3ZhcmlhYmxlc1Rl
eHRFZGl0b3IuZWxlbWVudCk7CiAKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXNTZWN0aW9uLmVsZW1lbnQpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fcHJvcGVydGllc1NlY3Rpb24uZWxlbWVudCk7CiAgICAgICAgIHRoaXMuZWxlbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLl92YXJpYWJsZXNTZWN0aW9uLmVsZW1lbnQpOwogCiAgICAgICAg
IHRoaXMuX2JveE1vZGVsRGlhZ3JhbVJvdyA9IG5ldyBXSS5Cb3hNb2RlbERldGFpbHNTZWN0aW9u
Um93OwogCiAgICAgICAgIGxldCBib3hNb2RlbEdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
R3JvdXAoW3RoaXMuX2JveE1vZGVsRGlhZ3JhbVJvd10pOwotICAgICAgICBsZXQgYm94TW9kZWxT
ZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJzdHlsZS1ib3gtbW9kZWwiLCBXSS5VSVN0
cmluZygiQm94IE1vZGVsIiksIFtib3hNb2RlbEdyb3VwXSk7CisgICAgICAgIGxldCBib3hNb2Rl
bFNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImNvbXB1dGVkLXN0eWxlLWJveC1tb2Rl
bCIsIFdJLlVJU3RyaW5nKCJCb3ggTW9kZWwiKSwgW2JveE1vZGVsR3JvdXBdKTsKIAogICAgICAg
ICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoYm94TW9kZWxTZWN0aW9uLmVsZW1lbnQpOwogICAg
IH0KIAorICAgIGZpbHRlckRpZENoYW5nZShmaWx0ZXJCYXIpCisgICAgeworICAgICAgICBzdXBl
ci5maWx0ZXJEaWRDaGFuZ2UoZmlsdGVyQmFyKTsKKworICAgICAgICB0aGlzLmFwcGx5RmlsdGVy
KGZpbHRlckJhci5maWx0ZXJzLnRleHQpOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAogICAg
IF9jb21wdXRlZFN0eWxlU2hvd0FsbENoZWNrYm94VmFsdWVDaGFuZ2VkKGV2ZW50KQpAQCAtMTU3
LDE5ICsxNDUsMzAgQEAgV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIENvbXB1
dGVkU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXSS5TdHlsZUQKICAgICAgICAgbGV0IGNoZWNr
ZWQgPSB0aGlzLl9jb21wdXRlZFN0eWxlU2hvd0FsbENoZWNrYm94LmNoZWNrZWQ7CiAgICAgICAg
IHRoaXMuX2NvbXB1dGVkU3R5bGVTaG93QWxsU2V0dGluZy52YWx1ZSA9IGNoZWNrZWQ7CiAgICAg
ICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLnNob3dzSW1wbGljaXRQcm9wZXJ0aWVzID0g
Y2hlY2tlZDsKLSAgICAgICAgdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IudXBkYXRlTGF5b3V0
KCk7CiAgICAgfQogCiAgICAgX2hhbmRsZVByb3BlcnRpZXNTZWN0aW9uQ29sbGFwc2VkU3RhdGVD
aGFuZ2VkKGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKGV2ZW50ICYmIGV2ZW50LmRhdGEgJiYg
IWV2ZW50LmRhdGEuY29sbGFwc2VkKQotICAgICAgICAgICAgdGhpcy5fcHJvcGVydGllc1RleHRF
ZGl0b3IucmVmcmVzaCgpOworICAgICAgICAgICAgdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3Iu
bmVlZHNMYXlvdXQoKTsKICAgICB9CiAKICAgICBfaGFuZGxlVmFyaWFibGVzU2VjdGlvbkNvbGxh
cHNlZFN0YXRlQ2hhbmdlZChldmVudCkKICAgICB7CiAgICAgICAgIGlmIChldmVudCAmJiBldmVu
dC5kYXRhICYmICFldmVudC5kYXRhLmNvbGxhcHNlZCkKLSAgICAgICAgICAgIHRoaXMuX3Zhcmlh
Ymxlc1RleHRFZGl0b3IucmVmcmVzaCgpOworICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVzVGV4
dEVkaXRvci5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIF9oYW5kbGVFZGl0b3JGaWx0ZXJB
cHBsaWVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHNlY3Rpb24gPSBudWxsOworICAgICAg
ICBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvcikKKyAgICAg
ICAgICAgIHNlY3Rpb24gPSB0aGlzLl9wcm9wZXJ0aWVzU2VjdGlvbjsKKyAgICAgICAgZWxzZSBp
ZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yKQorICAgICAgICAg
ICAgc2VjdGlvbiA9IHRoaXMuX3ZhcmlhYmxlc1NlY3Rpb247CisKKyAgICAgICAgaWYgKHNlY3Rp
b24pCisgICAgICAgICAgICBzZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVu
IiwgIWV2ZW50LmRhdGEubWF0Y2hlcyk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uY3NzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24u
Y3NzCmluZGV4IDQzNWIzNTA4MDlmNDVkYjU5MWU3ZDcxOTgyMmM4ODg4MjM3M2ZhZGEuLjI0YmY5
OWFiZjZhYzk0N2YyNjA4YmJmZjZjNDdlYTA2OGJlZGYzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmNzcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlv
bi5jc3MKQEAgLTEwNywxMCArMTA3LDYgQEAgYm9keVtkaXI9cnRsXSAuZGV0YWlscy1zZWN0aW9u
ID4gLmhlYWRlciA+IC5vcHRpb25zIHsKICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgaHNs
KDAsIDAlLCA4NyUpOwogfQogCi0uZGV0YWlscy1zZWN0aW9uLmNvbXB1dGVkLXN0eWxlLXByb3Bl
cnRpZXM6bm90KC5jb2xsYXBzZWQpID4gLmhlYWRlciB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjog
aHNsKDAsIDAlLCAxMDAlKTsKLX0KLQogLmRldGFpbHMtc2VjdGlvbiA+IC5oZWFkZXI6OmJlZm9y
ZSB7CiAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgd2lkdGg6IDIxcHg7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HZW5lcmFsU3R5bGVEZXRh
aWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCA1YjBmNDU0YjI3
MmRkN2IxNzQ2MTFjYzdkMWQyMjRhYWNkZjY4NTU0Li4wMjhmOWQ4ZGI0MGNhNzQxOWI5MWJlZDdj
NmU3NGU1OTBlMWMyZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9HZW5lcmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dlbmVyYWxTdHlsZURldGFp
bHNTaWRlYmFyUGFuZWwuanMKQEAgLTE1Miw4ICsxNTIsNiBAQCBXSS5HZW5lcmFsU3R5bGVEZXRh
aWxzU2lkZWJhclBhbmVsID0gY2xhc3MgR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCBl
eHRlbgogICAgICAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRo
aXMuX2ZvcmNlZFBzZXVkb0NsYXNzQ29udGFpbmVyKTsKICAgICAgICAgfQogCi0gICAgICAgIHRo
aXMuX3BhbmVsLmFkZEV2ZW50TGlzdGVuZXIoV0kuU3R5bGVEZXRhaWxzUGFuZWwuRXZlbnQuUmVm
cmVzaGVkLCB0aGlzLl9maWx0ZXJEaWRDaGFuZ2UsIHRoaXMpOwotCiAgICAgICAgIHRoaXMuX3No
b3dQYW5lbCh0aGlzLl9wYW5lbCk7CiAKICAgICAgICAgbGV0IG9wdGlvbnNDb250YWluZXIgPSB0
aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJvcHRpb25zLWNvbnRhaW5lciIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFk
c2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRv
ci5jc3MKaW5kZXggNTRmMjk2ZjZkYzIxMGM4ZmE4ZTM5MDkzZTc3ODg2MzdmZWI3YTQ3NS4uYmI2
ZDBlYzAyMmExMjViOTQ2NzNhOWNiNzExZjRkNDM0MzM2ZDA4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURl
Y2xhcmF0aW9uRWRpdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuY3NzCkBAIC0y
Niw2ICsyNiwxMCBAQAogLnNwcmVhZHNoZWV0LXN0eWxlLWRlY2xhcmF0aW9uLWVkaXRvciB7CiAg
ICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgIGNsZWFyOiBib3RoOworICAgIGZvbnQtZmFtaWx5
OiBNZW5sbywgbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTogMTFweDsKKyAgICBjb2xvcjogaHNs
KDAsIDAlLCA3MCUpOworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiB9CiAKIC5zcHJl
YWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IgLnByb3BlcnR5IHsKQEAgLTExNiw3ICsx
MjAsNyBAQAogICAgIC13ZWJraXQtY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDUwJSwgNnB4IDAlLCAx
MDAlIDAlLCAxMDAlIDEwMCUsIDZweCAxMDAlKTsKIH0KIAotLnNwcmVhZHNoZWV0LXN0eWxlLWRl
Y2xhcmF0aW9uLWVkaXRvciAucHJvcGVydHkubm90LWluaGVyaXRlZCAuY29udGVudCA+ICogewor
LnNwcmVhZHNoZWV0LXN0eWxlLWRlY2xhcmF0aW9uLWVkaXRvciAucHJvcGVydHk6bWF0Y2hlcygu
aW1wbGljaXQsIC5ub3QtaW5oZXJpdGVkKSAuY29udGVudCA+ICogewogICAgIG9wYWNpdHk6IDAu
NTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xh
cmF0aW9uRWRpdG9yLmpzCmluZGV4IGI1YzdmMGY3ZWY2NjZhMTlhOWMzYjVmZWU5MTQ0ODUzMWE3
NTYxNTIuLmMyMzc2OThlNGJjYWQ1MGRlNTIzMDVkY2VjMTJkMGJkNDA0NjlkNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0
Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3Iu
anMKQEAgLTM1LDggKzM1LDEzIEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVk
aXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAgICAgICAgIHRo
aXMuc3R5bGUgPSBzdHlsZTsKICAgICAgICAgdGhpcy5fcHJvcGVydHlWaWV3cyA9IFtdOwogCi0g
ICAgICAgIHRoaXMuX2lubGluZVN3YXRjaEFjdGl2ZSA9IGZhbHNlOwogICAgICAgICB0aGlzLl9m
b2N1c2VkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2lubGluZVN3YXRjaEFjdGl2ZSA9IGZhbHNl
OworCisgICAgICAgIHRoaXMuX3Nob3dzSW1wbGljaXRQcm9wZXJ0aWVzID0gZmFsc2U7CisgICAg
ICAgIHRoaXMuX2Fsd2F5c1Nob3dQcm9wZXJ0eU5hbWVzID0gbmV3IFNldDsKKyAgICAgICAgdGhp
cy5fcHJvcGVydHlWaXNpYmlsaXR5TW9kZSA9IFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkaXRvci5Qcm9wZXJ0eVZpc2liaWxpdHlNb2RlLlNob3dBbGw7CisgICAgICAgIHRoaXMu
X2hpZGVGaWx0ZXJOb25NYXRjaGluZ1Byb3BlcnRpZXMgPSBmYWxzZTsKIAogICAgICAgICB0aGlz
Ll9wcm9wZXJ0eVBlbmRpbmdTdGFydEVkaXRpbmcgPSBudWxsOwogICAgICAgICB0aGlzLl9wZW5k
aW5nQWRkQmxhbmtQcm9wZXJ0eUluZGV4T2Zmc2V0ID0gTmFOOwpAQCAtNDcsNyArNTIsNyBAQCBX
SS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZAogCiAgICAgaW5pdGlhbExheW91dCgpCiAgICAgewotICAg
ICAgICBpZiAoIXRoaXMuc3R5bGUuZWRpdGFibGUpCisgICAgICAgIGlmICghdGhpcy5fc3R5bGUg
fHwgIXRoaXMuX3N0eWxlLmVkaXRhYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsICgpID0+IHsgdGhpcy5mb2N1
c2VkID0gdHJ1ZTsgfSwgdHJ1ZSk7CkBAIC02Niw3ICs3MSw3IEBAIFdJLlNwcmVhZHNoZWV0Q1NT
U3R5bGVEZWNsYXJhdGlvbkVkaXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkCiAKICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAKLSAgICAg
ICAgbGV0IHByb3BlcnRpZXMgPSB0aGlzLl9wcm9wZXJ0aWVzVG9SZW5kZXI7CisgICAgICAgIGxl
dCBwcm9wZXJ0aWVzID0gdGhpcy5wcm9wZXJ0aWVzVG9SZW5kZXI7CiAgICAgICAgIHRoaXMuZWxl
bWVudC5jbGFzc0xpc3QudG9nZ2xlKCJuby1wcm9wZXJ0aWVzIiwgIXByb3BlcnRpZXMubGVuZ3Ro
KTsKIAogICAgICAgICAvLyBGSVhNRTogT25seSByZS1sYXlvdXQgcHJvcGVydGllcyB0aGF0IGhh
dmUgYmVlbiBtb2RpZmllZCBhbmQgcHJlc2VydmUgZm9jdXMgd2hlbmV2ZXIgcG9zc2libGUuCkBA
IC0xNDksNiArMTU0LDcwIEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRv
ciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAgICAgICAgIHRoaXMu
X3VwZGF0ZVN0eWxlTG9jaygpOwogICAgIH0KIAorICAgIHNldCBzaG93c0ltcGxpY2l0UHJvcGVy
dGllcyh2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fc2hvd3NJbXBs
aWNpdFByb3BlcnRpZXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fc2hv
d3NJbXBsaWNpdFByb3BlcnRpZXMgPSB2YWx1ZTsKKworICAgICAgICB0aGlzLm5lZWRzTGF5b3V0
KCk7CisgICAgfQorCisgICAgc2V0IGFsd2F5c1Nob3dQcm9wZXJ0eU5hbWVzKHByb3BlcnR5TmFt
ZXMpCisgICAgeworICAgICAgICB0aGlzLl9hbHdheXNTaG93UHJvcGVydHlOYW1lcyA9IG5ldyBT
ZXQocHJvcGVydHlOYW1lcyk7CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0K
KworICAgIHNldCBwcm9wZXJ0eVZpc2liaWxpdHlNb2RlKHByb3BlcnR5VmlzaWJpbGl0eU1vZGUp
CisgICAgeworICAgICAgICBpZiAodGhpcy5fcHJvcGVydHlWaXNpYmlsaXR5TW9kZSA9PT0gcHJv
cGVydHlWaXNpYmlsaXR5TW9kZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlz
Ll9wcm9wZXJ0eVZpc2liaWxpdHlNb2RlID0gcHJvcGVydHlWaXNpYmlsaXR5TW9kZTsKKworICAg
ICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgc2V0IGhpZGVGaWx0ZXJOb25N
YXRjaGluZ1Byb3BlcnRpZXModmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPT09IHRo
aXMuX2hpZGVGaWx0ZXJOb25NYXRjaGluZ1Byb3BlcnRpZXMpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgdGhpcy5faGlkZUZpbHRlck5vbk1hdGNoaW5nUHJvcGVydGllcyA9IHZhbHVl
OworCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICBnZXQgcHJvcGVy
dGllc1RvUmVuZGVyKCkKKyAgICB7CisgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gW107CisgICAg
ICAgIGlmICh0aGlzLl9zdHlsZSkgeworICAgICAgICAgICAgaWYgKHRoaXMuX3N0eWxlLl9zdHls
ZVNoZWV0VGV4dFJhbmdlKQorICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSB0aGlzLl9zdHls
ZS5hbGxWaXNpYmxlUHJvcGVydGllczsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBwcm9wZXJ0aWVzID0gdGhpcy5fc3R5bGUuYWxsUHJvcGVydGllczsKKworICAgICAgICAgICAg
aWYgKHRoaXMuX3N0eWxlLnR5cGUgPT09IFdJLkNTU1N0eWxlRGVjbGFyYXRpb24uVHlwZS5Db21w
dXRlZCkgeworICAgICAgICAgICAgICAgIHByb3BlcnRpZXMuc29ydCgoYSwgYikgPT4gYS5uYW1l
LmV4dGVuZGVkTG9jYWxlQ29tcGFyZShiLm5hbWUpKTsKKworICAgICAgICAgICAgICAgIHByb3Bl
cnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcigocHJvcGVydHkpID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFwcm9wZXJ0eS52YXJpYWJsZSAmJiB0aGlzLl9wcm9wZXJ0eVZpc2liaWxpdHlN
b2RlID09PSBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuUHJvcGVydHlW
aXNpYmlsaXR5TW9kZS5IaWRlTm9uVmFyaWFibGVzKQorICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS52YXJpYWJs
ZSAmJiB0aGlzLl9wcm9wZXJ0eVZpc2liaWxpdHlNb2RlID09PSBXSS5TcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZGl0b3IuUHJvcGVydHlWaXNpYmlsaXR5TW9kZS5IaWRlVmFyaWFibGVz
KQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAhcHJvcGVydHkuaW1wbGljaXQgfHwgdGhpcy5fc2hvd3NJbXBsaWNpdFBy
b3BlcnRpZXMgfHwgdGhpcy5fYWx3YXlzU2hvd1Byb3BlcnR5TmFtZXMuaGFzKHByb3BlcnR5LmNh
bm9uaWNhbE5hbWUpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzOworICAgIH0KKworCiAgICAgc3RhcnRFZGl0
aW5nRmlyc3RQcm9wZXJ0eSgpCiAgICAgewogICAgICAgICBsZXQgZmlyc3RFZGl0YWJsZVByb3Bl
cnR5ID0gdGhpcy5fZWRpdGFibGVQcm9wZXJ0eUFmdGVyKC0xKTsKQEAgLTE5Niw3ICsyNjUsNyBA
QCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRz
aGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICB9OwogCi0gICAgICAgIGZvciAobGV0IGNzc1Byb3BlcnR5IG9mIHRoaXMuc3R5bGUucHJv
cGVydGllcykgeworICAgICAgICBmb3IgKGxldCBjc3NQcm9wZXJ0eSBvZiB0aGlzLl9zdHlsZS5w
cm9wZXJ0aWVzKSB7CiAgICAgICAgICAgICBpZiAocHJvcGVydGllc01hdGNoKGNzc1Byb3BlcnR5
KSkgewogICAgICAgICAgICAgICAgIGxldCBwcm9wZXJ0eVZpZXcgPSBjc3NQcm9wZXJ0eS5fX3By
b3BlcnR5VmlldzsKICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlWaWV3KSB7CkBAIC0yMjUs
NiArMjk0LDI5IEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvciA9IGNs
YXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAgICAgICAgIHRoaXMubmVlZHNM
YXlvdXQoKTsKICAgICB9CiAKKyAgICBhcHBseUZpbHRlcihmaWx0ZXJUZXh0KQorICAgIHsKKyAg
ICAgICAgdGhpcy5fZmlsdGVyVGV4dCA9IGZpbHRlclRleHQ7CisKKyAgICAgICAgaWYgKCF0aGlz
LmRpZEluaXRpYWxMYXlvdXQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IG1h
dGNoZXMgPSBmYWxzZTsKKyAgICAgICAgZm9yIChsZXQgcHJvcGVydHlWaWV3IG9mIHRoaXMuX3By
b3BlcnR5Vmlld3MpIHsKKyAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZpZXcuYXBwbHlGaWx0ZXIo
dGhpcy5fZmlsdGVyVGV4dCkpIHsKKyAgICAgICAgICAgICAgICBtYXRjaGVzID0gdHJ1ZTsKKwor
ICAgICAgICAgICAgICAgIGlmICh0aGlzLl9oaWRlRmlsdGVyTm9uTWF0Y2hpbmdQcm9wZXJ0aWVz
KQorICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHByb3BlcnR5Vmlldy5l
bGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5faGlkZUZpbHRlck5vbk1hdGNo
aW5nUHJvcGVydGllcykKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eVZpZXcuZWxlbWVudC5yZW1v
dmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5FdmVudC5GaWx0ZXJBcHBs
aWVkLCB7bWF0Y2hlc30pOworICAgIH0KKworICAgIC8vIFNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0
eSBkZWxlZ2F0ZQorCiAgICAgc3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5Rm9jdXNNb3ZlZChwcm9w
ZXJ0eVZpZXcsIHtkaXJlY3Rpb24sIHdpbGxSZW1vdmVQcm9wZXJ0eX0pCiAgICAgewogICAgICAg
ICBsZXQgbW92ZWRGcm9tSW5kZXggPSB0aGlzLl9wcm9wZXJ0eVZpZXdzLmluZGV4T2YocHJvcGVy
dHlWaWV3KTsKQEAgLTI2NCw4ICszNTYsNiBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFy
YXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAg
ICAgICB9CiAgICAgfQogCi0gICAgLy8gU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5IGRlbGVnYXRl
Ci0KICAgICBzcHJlYWRzaGVldFN0eWxlUHJvcGVydHlBZGRCbGFua1Byb3BlcnR5U29vbihwcm9w
ZXJ0eVZpZXcsIHtpbmRleH0pCiAgICAgewogICAgICAgICBpZiAoaXNOYU4oaW5kZXgpKQpAQCAt
MjgzLDYgKzM3MywxMiBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3Ig
PSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB0aGlzLl9m
b2N1c2VkID0gZmFsc2U7CiAgICAgfQogCisgICAgc3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5U2hv
d1Byb3BlcnR5KHByb3BlcnR5VmlldywgcHJvcGVydHkpCisgICAgeworICAgICAgICBpZiAodGhp
cy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yU2hvd1Byb3Bl
cnR5KQorICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRDU1NTdHlsZURlY2xh
cmF0aW9uRWRpdG9yU2hvd1Byb3BlcnR5KHRoaXMsIHByb3BlcnR5KTsKKyAgICB9CisKICAgICBz
dHlsZVByb3BlcnR5SW5saW5lU3dhdGNoQWN0aXZhdGVkKCkKICAgICB7CiAgICAgICAgIHRoaXMu
aW5saW5lU3dhdGNoQWN0aXZlID0gdHJ1ZTsKQEAgLTI5MywzMiArMzg5LDggQEAgV0kuU3ByZWFk
c2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHls
ZURlY2xhcmF0aW9uRWQKICAgICAgICAgdGhpcy5pbmxpbmVTd2F0Y2hBY3RpdmUgPSBmYWxzZTsK
ICAgICB9CiAKLSAgICBhcHBseUZpbHRlcihmaWx0ZXJUZXh0KQotICAgIHsKLSAgICAgICAgdGhp
cy5fZmlsdGVyVGV4dCA9IGZpbHRlclRleHQ7Ci0KLSAgICAgICAgaWYgKCF0aGlzLmRpZEluaXRp
YWxMYXlvdXQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IG1hdGNoZXMgPSBm
YWxzZTsKLSAgICAgICAgZm9yIChsZXQgcHJvcGVydHlWaWV3IG9mIHRoaXMuX3Byb3BlcnR5Vmll
d3MpIHsKLSAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZpZXcuYXBwbHlGaWx0ZXIodGhpcy5fZmls
dGVyVGV4dCkpCi0gICAgICAgICAgICAgICAgbWF0Y2hlcyA9IHRydWU7Ci0gICAgICAgIH0KLQot
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5TcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZGl0b3IuRXZlbnQuRmlsdGVyQXBwbGllZCwge21hdGNoZXN9KTsKLSAg
ICB9Ci0KICAgICAvLyBQcml2YXRlCiAKLSAgICBnZXQgX3Byb3BlcnRpZXNUb1JlbmRlcigpCi0g
ICAgewotICAgICAgICBpZiAodGhpcy5fc3R5bGUuX3N0eWxlU2hlZXRUZXh0UmFuZ2UpCi0gICAg
ICAgICAgICByZXR1cm4gdGhpcy5fc3R5bGUuYWxsVmlzaWJsZVByb3BlcnRpZXM7Ci0KLSAgICAg
ICAgcmV0dXJuIHRoaXMuX3N0eWxlLmFsbFByb3BlcnRpZXM7Ci0gICAgfQotCiAgICAgX2VkaXRh
YmxlUHJvcGVydHlBZnRlcihwcm9wZXJ0eUluZGV4KQogICAgIHsKICAgICAgICAgZm9yIChsZXQg
aW5kZXggPSBwcm9wZXJ0eUluZGV4ICsgMTsgaW5kZXggPCB0aGlzLl9wcm9wZXJ0eVZpZXdzLmxl
bmd0aDsgaW5kZXgrKykgewpAQCAtMzUyLDcgKzQyNCwxMCBAQCBXSS5TcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRp
b25FZAogCiAgICAgX3VwZGF0ZVN0eWxlTG9jaygpCiAgICAgewotICAgICAgICB0aGlzLnN0eWxl
LmxvY2tlZCA9IHRoaXMuX2ZvY3VzZWQgfHwgdGhpcy5faW5saW5lU3dhdGNoQWN0aXZlOworICAg
ICAgICBpZiAoIXRoaXMuX3N0eWxlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRo
aXMuX3N0eWxlLmxvY2tlZCA9IHRoaXMuX2ZvY3VzZWQgfHwgdGhpcy5faW5saW5lU3dhdGNoQWN0
aXZlOwogICAgIH0KIH07CiAKQEAgLTM2MSwzICs0MzYsOSBAQCBXSS5TcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZGl0b3IuRXZlbnQgPSB7CiB9OwogCiBXSS5TcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZGl0b3IuU3R5bGVDbGFzc05hbWUgPSAic3ByZWFkc2hlZXQtc3R5bGUt
ZGVjbGFyYXRpb24tZWRpdG9yIjsKKworV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9u
RWRpdG9yLlByb3BlcnR5VmlzaWJpbGl0eU1vZGUgPSB7CisgICAgU2hvd0FsbDogU3ltYm9sKCJ2
YXJpYWJsZS12aXNpYmlsaXR5LXNob3ctYWxsIiksCisgICAgSGlkZVZhcmlhYmxlczogU3ltYm9s
KCJ2YXJpYWJsZS12aXNpYmlsaXR5LWhpZGUtdmFyaWFibGVzIiksCisgICAgSGlkZU5vblZhcmlh
YmxlczogU3ltYm9sKCJ2YXJpYWJsZS12aXNpYmlsaXR5LWhpZGUtbm9uLXZhcmlhYmxlcyIpLAor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3NzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0
aW9uU2VjdGlvbi5jc3MKaW5kZXggNzc3ZmU4ZDQzNzJjN2RhMjU5Y2I2MjEzNjdjYzFlNjMxZTUy
OWYxZS4uYjFjNTljMjVkNzM0MGJhYjdkZGM2Nzk0NmE2NDM4NzljOTE2Zjc3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRD
U1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlv
bi5jc3MKQEAgLTI3LDEzICsyNywxMSBAQAogICAgIG1hcmdpbjogMDsKICAgICBwYWRkaW5nOiAw
IDAgdmFyKC0tY3NzLWRlY2xhcmF0aW9uLXZlcnRpY2FsLXBhZGRpbmcpOwogICAgIGZvbnQtZmFt
aWx5OiBNZW5sbywgbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICBjb2xvcjog
aHNsKDAsIDAlLCA3MCUpOwogICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgIGJvcmRlci1ib3R0
b206IDAuNXB4IHNvbGlkIGhzbGEoMCwgMCUsIDAlLCAwLjIpOwogICAgIC13ZWJraXQtdXNlci1z
ZWxlY3Q6IHRleHQ7Ci0KLSAgICAtLWNzcy1kZWNsYXJhdGlvbi12ZXJ0aWNhbC1wYWRkaW5nOiA0
cHg7Ci0gICAgLS1jc3MtZGVjbGFyYXRpb24taG9yaXpvbnRhbC1wYWRkaW5nOiA2cHg7CiB9CiAK
IC5zcHJlYWRzaGVldC1jc3MtZGVjbGFyYXRpb24gOm1hdGNoZXMoLmhlYWRlciwgLmhlYWRlci1t
ZWRpYSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU3ByZWFkc2hlZXRSdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0UnVsZXNTdHlsZURldGFp
bHNQYW5lbC5jc3MKaW5kZXggOGFhNzdhNjM0N2E2YmQyNGRkMWJhYTcyNjk2MTEyNjk3N2NjN2Vl
My4uNWQ5NGMyODc1NmQ0OGUwNzAzNTIzMjBlNjZlN2M1MjU4ZmQyOWIzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRSdWxl
c1N0eWxlRGV0YWlsc1BhbmVsLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwuY3NzCkBAIC0y
Myw4NSArMjMsNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
LS5zdHlsZS1zcHJlYWRzaGVldCAuc3R5bGUtcnVsZSB7Ci0gICAgZm9udC1mYW1pbHk6IE1lbmxv
LCBtb25vc3BhY2U7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKLSAgICBwYWRkaW5n
OiA0cHggNnB4OwotICAgIG1hcmdpbjogMDsKLQotICAgIGNvbG9yOiBoc2woMCwgMCUsIDcwJSk7
Ci0gICAgYmFja2dyb3VuZDogd2hpdGU7Ci0gICAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQg
aHNsYSgwLCAwJSwgMCUsIDAuMik7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAuc2VsZWN0b3It
bGluZSB7Ci0gICAgZmxvYXQ6IGxlZnQ7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAuc2VsZWN0
b3IgewotICAgIGNvbG9yOiBoc2woMCwgMCUsIDUwJSk7Ci0gICAgd29yZC13cmFwOiBicmVhay13
b3JkOwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgOm1hdGNoZXMoLnNlbGVjdG9yIC5tYXRjaGVk
LCAuc2VsZWN0b3I6Zm9jdXMpIHsKLSAgICBjb2xvcjogYmxhY2s7Ci19Ci0KLS5zdHlsZS1zcHJl
YWRzaGVldCAubmFtZSB7Ci0gICAgY29sb3I6IHZhcigtLXN5bnRheC1oaWdobGlnaHQtYm9vbGVh
bi1jb2xvcik7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAudmFsdWUgewotICAgIGNvbG9yOiBi
bGFjazsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IDptYXRjaGVzKC5zZWxlY3RvciwgLm5hbWUs
IC52YWx1ZSkgewotICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtd3JpdGUtcGxhaW50ZXh0
LW9ubHk7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyguc2VsZWN0b3IsIC5uYW1l
LCAudmFsdWUpOmZvY3VzIHsKLSAgICBvdXRsaW5lOiAxcHggc29saWQgd2hpdGU7Ci0gICAgYm94
LXNoYWRvdzogMCAxcHggMnB4IDFweCBoc2xhKDAsIDAlLCAwJSwgMC42KTsKLX0KLQotLnN0eWxl
LXNwcmVhZHNoZWV0IC5zZWxlY3Rvci1pbmxpbmUgewotICAgIC13ZWJraXQtdXNlci1tb2RpZnk6
IHJlYWQtb25seTsKLSAgICBjb2xvcjogaHNsKDAsIDAlLCA1MCUpOwotICAgIGZvbnQ6IDEycHgg
c2Fucy1zZXJpZjsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IC5wcm9wZXJ0eSB7Ci0gICAgcGFk
ZGluZy1sZWZ0OiAxNnB4OwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgLnByb3BlcnR5LWRpc2Fi
bGVkLAotLnN0eWxlLXNwcmVhZHNoZWV0IC5wcm9wZXJ0eS1kaXNhYmxlZCAqIHsKLSAgICBjb2xv
cjogaHNsKDExOSwgMTAwJSwgMjIlKTsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IC5wcm9wZXJ0
eS1kaXNhYmxlZCA6bWF0Y2hlcygubmFtZSwgLnZhbHVlKSB7Ci0gICAgLXdlYmtpdC11c2VyLW1v
ZGlmeTogcmVhZC1vbmx5OwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgLnN0eWxlcy1zb3VyY2Ug
ewotICAgIGZsb2F0OiByaWdodDsKLSAgICBmb250OiAxMXB4IHNhbnMtc2VyaWY7Ci0gICAgbWF4
LXdpZHRoOiAxMDAlOwotICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwotICAgIHdoaXRlLXNw
YWNlOiBub3dyYXA7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLQotICAgIG1hcmdpbi10b3A6IC0x
cHg7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyhhLCAubm9kZS1saW5rKSB7Ci0g
ICAgY29sb3I6IGhzbCgwLCAwJSwgNTAlKTsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IDptYXRj
aGVzKGEsIC5ub2RlLWxpbmspOmhvdmVyIHsKLSAgICBjb2xvcjogaHNsKDAsIDAlLCAzMyUpOwot
fQotCiAuc3ByZWFkc2hlZXQtc3R5bGUtcGFuZWwgLnNlY3Rpb24taGVhZGVyIHsKICAgICBtYXJn
aW46IDA7CiAgICAgcGFkZGluZzogNHB4IDZweDsKQEAgLTExOCwyNiArMzksMyBAQAogLnNwcmVh
ZHNoZWV0LXN0eWxlLXBhbmVsIC5zZWN0aW9uLWhlYWRlciAubm9kZS1saW5rOmhvdmVyIHsKICAg
ICBjb2xvcjogYmxhY2s7CiB9Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAuZGVjbGFyYXRpb25zIHsK
LSAgICBjbGVhcjogbGVmdDsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0KLS5zdHlsZS1z
cHJlYWRzaGVldCBpbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKLSAgICB2aXNpYmlsaXR5OiBoaWRk
ZW47Ci0KLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgbGVmdDogMDsKLQotICAgIGhlaWdo
dDogMTFweDsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCBpbnB1dFt0
eXBlPSJjaGVja2JveCJdOm5vdCg6Y2hlY2tlZCkgewotICAgIHZpc2liaWxpdHk6IHZpc2libGU7
Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAuZGVjbGFyYXRpb25zOmhvdmVyIGlucHV0W3R5cGU9
ImNoZWNrYm94Il0gewotICAgIHZpc2liaWxpdHk6IHZpc2libGU7Ci19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxl
UHJvcGVydHkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9T
cHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMKaW5kZXggODY2N2RiMmE0Yjk0Mzk0MjI1NTU4Yzhk
MDg1M2Y2M2VmNWQ0NWVkYS4uOTg0ZWU3MDc4M2E3ODA4NzM3MTU2NzgxN2U2Njk0YjZiOGNlNjlm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcwpAQCAtMjMzLDYg
KzIzMywzMyBAQCBXSS5TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgPSBjbGFzcyBTcHJlYWRzaGVl
dFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICB0aGlzLl9jb250ZW50RWxlbWVudC5hcHBlbmQoIiAqLyIpOwogCisgICAgICAgIGlmICgh
dGhpcy5fcHJvcGVydHkuaW1wbGljaXQgJiYgdGhpcy5fcHJvcGVydHkub3duZXJTdHlsZS50eXBl
ID09PSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uLlR5cGUuQ29tcHV0ZWQpIHsKKyAgICAgICAgICAg
IGxldCBlZmZlY3RpdmVQcm9wZXJ0eSA9IHRoaXMuX3Byb3BlcnR5Lm93bmVyU3R5bGUubm9kZVN0
eWxlcy5lZmZlY3RpdmVQcm9wZXJ0eUZvck5hbWUodGhpcy5fcHJvcGVydHkubmFtZSk7CisgICAg
ICAgICAgICBpZiAoZWZmZWN0aXZlUHJvcGVydHkgJiYgIWVmZmVjdGl2ZVByb3BlcnR5LnN0eWxl
U2hlZXRUZXh0UmFuZ2UpCisgICAgICAgICAgICAgICAgZWZmZWN0aXZlUHJvcGVydHkgPSBlZmZl
Y3RpdmVQcm9wZXJ0eS5yZWxhdGVkU2hvcnRoYW5kUHJvcGVydHk7CisKKyAgICAgICAgICAgIGxl
dCBvd25lclJ1bGUgPSBlZmZlY3RpdmVQcm9wZXJ0eSA/IGVmZmVjdGl2ZVByb3BlcnR5Lm93bmVy
U3R5bGUub3duZXJSdWxlIDogbnVsbDsKKworICAgICAgICAgICAgbGV0IGFycm93RWxlbWVudCA9
IHRoaXMuX2NvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKFdJLmNyZWF0ZUdvVG9BcnJvd0J1dHRv
bigpKTsKKyAgICAgICAgICAgIGFycm93RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGlmICghZWZmZWN0aXZlUHJvcGVydHkgfHwg
IW93bmVyUnVsZSB8fCAhZXZlbnQuYWx0S2V5KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0
aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlTaG93UHJvcGVydHkpCisgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVy
dHlTaG93UHJvcGVydHkodGhpcywgdGhpcy5fcHJvcGVydHkpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGV0IHNvdXJj
ZUNvZGUgPSBvd25lclJ1bGUuc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGU7CisgICAgICAg
ICAgICAgICAgbGV0IHtzdGFydExpbmUsIHN0YXJ0Q29sdW1ufSA9IGVmZmVjdGl2ZVByb3BlcnR5
LnN0eWxlU2hlZXRUZXh0UmFuZ2U7CisgICAgICAgICAgICAgICAgV0kuc2hvd1NvdXJjZUNvZGVM
b2NhdGlvbihzb3VyY2VDb2RlLmNyZWF0ZVNvdXJjZUNvZGVMb2NhdGlvbihzdGFydExpbmUsIHN0
YXJ0Q29sdW1uKSwgeworICAgICAgICAgICAgICAgICAgICBpZ25vcmVOZXR3b3JrVGFiOiB0cnVl
LAorICAgICAgICAgICAgICAgICAgICBpZ25vcmVTZWFyY2hUYWI6IHRydWUsCisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaWYgKGVmZmVjdGl2ZVBy
b3BlcnR5ICYmIG93bmVyUnVsZSkKKyAgICAgICAgICAgICAgICBhcnJvd0VsZW1lbnQudGl0bGUg
PSBXSS5VSVN0cmluZygiT3B0aW9uLWNsaWNrIHRvIHNob3cgc291cmNlIik7CisgICAgICAgIH0K
KwogICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1cygpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmFyaWFibGVzLmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1ZhcmlhYmxlcy5jc3MKaW5k
ZXggNDMzOWY2MTJlMjg5MzQ3ZGMyODJlYjE5OTE2OGQxMmZkYTAzMDhlMi4uMTQxNTFmZTdkMmUy
NzU2YjZmYzZlMzA3OGY4NmEwNWFjNmViYTlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmFyaWFibGVzLmNzcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WYXJpYWJsZXMuY3NzCkBAIC0xMjAsNiAr
MTIwLDkgQEAKICAgICAtLW5hdmlnYXRpb24tYmFyLWhlaWdodDogMjlweDsKIAogICAgIC0tc2xp
ZGVyLWhlaWdodDogMTFweDsKKworICAgIC0tY3NzLWRlY2xhcmF0aW9uLXZlcnRpY2FsLXBhZGRp
bmc6IDRweDsKKyAgICAtLWNzcy1kZWNsYXJhdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc6IDZweDsK
IH0KIAogYm9keS53aW5kb3ctaW5hY3RpdmUgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348275</attachid>
            <date>2018-08-28 01:09:00 -0700</date>
            <delta_ts>2018-09-17 12:23:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183627-20180828010859.patch</filename>
            <type>text/plain</type>
            <size>33886</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGFjYTgxZTUwNjA1ZmQxN2YxODRiYmE2Yzk1NTE4
ZWFiMjljNTNhZDAuLjc0OTY2YmYzZTk5Y2MzMzk4N2M5ZGFlZDZkMjQ4Y2QzNWExNGUwNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE4LTA4LTI5ICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFN0eWxlcyBSZWRlc2lnbjogcmV3b3JrIENvbXB1dGVkIHBhbmVsIHRvIHVzZSBTcHJlYWRz
aGVldCBjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODM2MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qczoK
KyAgICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwpOgorICAgICAgICAoV0kuQ29t
cHV0ZWRTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUucmVmcmVzaCk6CisgICAgICAgIChXSS5D
b21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5hcHBseUZpbHRlcik6CisgICAgICAg
IChXSS5Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5zcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZGl0b3JTaG93UHJvcGVydHkpOgorICAgICAgICAoV0kuQ29tcHV0ZWRT
dHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5D
b21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5maWx0ZXJEaWRDaGFuZ2UpOgorICAg
ICAgICAoV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuX2NvbXB1dGVkU3R5
bGVTaG93QWxsQ2hlY2tib3hWYWx1ZUNoYW5nZWQpOgorICAgICAgICAoV0kuQ29tcHV0ZWRTdHls
ZURldGFpbHNQYW5lbC5wcm90b3R5cGUuX2hhbmRsZVByb3BlcnRpZXNTZWN0aW9uQ29sbGFwc2Vk
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwucHJv
dG90eXBlLl9oYW5kbGVWYXJpYWJsZXNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkKToKKyAg
ICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9oYW5kbGVFZGl0
b3JGaWx0ZXJBcHBsaWVkKToKKyAgICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwu
cHJvdG90eXBlLmNzc1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yU2hvd1Byb3BlcnR5LmRlbGVn
YXRlU2hvd1Byb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRh
aWxzUGFuZWwucHJvdG90eXBlLmNzc1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yU2hvd1Byb3Bl
cnR5KTogRGVsZXRlZC4KKyAgICAgICAgUmVwbGFjZSBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVk
aXRvciB3aXRoIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRp
dG9yLmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
KToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90
b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVj
bGFyYXRpb25FZGl0b3IucHJvdG90eXBlLmxheW91dCk6CisgICAgICAgIChXSS5TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLnNldCBzaG93c0ltcGxpY2l0UHJv
cGVydGllcyk6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0
b3IucHJvdG90eXBlLnNldCBhbHdheXNTaG93UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChXSS5T
cHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLnNldCBwcm9wZXJ0
eVZpc2liaWxpdHlNb2RlKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkaXRvci5wcm90b3R5cGUuc2V0IGhpZGVGaWx0ZXJOb25NYXRjaGluZ1Byb3BlcnRpZXMp
OgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3Rv
dHlwZS5nZXQgcHJvcGVydGllc1RvUmVuZGVyKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NT
U3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5cGUuaGlnaGxpZ2h0UHJvcGVydHkpOgorICAg
ICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3RvdHlwZS5h
cHBseUZpbHRlcik6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25F
ZGl0b3IucHJvdG90eXBlLnNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eVNob3dQcm9wZXJ0eSk6Cisg
ICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBl
Ll91cGRhdGVTdHlsZUxvY2spOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xh
cmF0aW9uRWRpdG9yLnByb3RvdHlwZS5nZXQgX3Byb3BlcnRpZXNUb1JlbmRlcik6IERlbGV0ZWQu
CisgICAgICAgIENyZWF0ZSBzZXR0ZXJzIGZvciB0aGUgInNwZWNpYWwiIGZ1bmN0aW9uYWxpdHkg
cmVxdWlyZWQgYnkgdGhlIENvbXB1dGVkIHBhbmVsIGFuZCB0aWUgdGhlbQorICAgICAgICBpbnRv
IHRoZSBsb2dpYyB0aGF0IGRldGVybWluZXMgd2hhdCBwcm9wZXJ0aWVzIGFyZSByZW5kZXJlZC4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5
LmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5fdXBk
YXRlKToKKyAgICAgICAgQ3JlYXRlIGdvLXRvIGFycm93IGlmIHRoZSBwcm9wZXJ0eSBoYXMgYSBz
aG9ydGhhbmQgdmVyc2lvbiBvciBhIHNvdXJjZSBjb2RlIGxvY2F0aW9uLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9HZW5lcmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgor
ICAgICAgICAoV0kuR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5p
dGlhbExheW91dCk6CisgICAgICAgIERvbid0IHJlYXBwbHkgdGhlIGZpbHRlciBhZnRlciByZWZy
ZXNoaW5nLCBhcyB0aGUgY3VycmVudCBwYW5lbCB3aWxsIGhhbmRsZSBhcHBseWluZyBpdC4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5j
c3M6CisgICAgICAgICguZGV0YWlscy1zZWN0aW9uOm1hdGNoZXMoLmNvbXB1dGVkLXN0eWxlLXBy
b3BlcnRpZXMsIC5jb21wdXRlZC1zdHlsZS1ib3gtbW9kZWwpOm5vdCguY29sbGFwc2VkKSA+IDpt
YXRjaGVzKC5oZWFkZXIsIC5jb250ZW50KSk6CisgICAgICAgICguY29tcHV0ZWQtc3R5bGUtcHJv
cGVydGllcyAucHJvcGVydHkgLmdvLXRvLWFycm93KToKKyAgICAgICAgKC5jb21wdXRlZC1zdHls
ZS1wcm9wZXJ0aWVzIC5wcm9wZXJ0eTpob3ZlciAuZ28tdG8tYXJyb3cpOgorICAgICAgICAoLmNv
bXB1dGVkLXN0eWxlLXByb3BlcnRpZXMuZGV0YWlscy1zZWN0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCA+IC5ncm91cCA+IC5yb3cgLkNvZGVNaXJy
b3ItY29kZSBwcmUgLmdvLXRvLWFycm93KTogRGVsZXRlZC4KKyAgICAgICAgKC5kZXRhaWxzLXNl
Y3Rpb24gPiAuY29udGVudCA+IC5ncm91cCA+IC5yb3cgLkNvZGVNaXJyb3ItY29kZSBwcmU6aG92
ZXIgLmdvLXRvLWFycm93KTogRGVsZXRlZC4KKyAgICAgICAgKC5kZXRhaWxzLXNlY3Rpb24uc3R5
bGUtYm94LW1vZGVsOm5vdCguY29sbGFwc2VkKSA+IDptYXRjaGVzKC5oZWFkZXIsIC5jb250ZW50
KSk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlv
bi5jc3M6CisgICAgICAgICguZGV0YWlscy1zZWN0aW9uLmNvbXB1dGVkLXN0eWxlLXByb3BlcnRp
ZXM6bm90KC5jb2xsYXBzZWQpID4gLmhlYWRlcik6IERlbGV0ZWQuCisgICAgICAgIENvbnNvbGlk
YXRlIENvbXB1dGVkIHBhbmVsIHN0eWxlcyB0byBpdCdzIHJlc3BlY3RpdmUgQ1NTIGZpbGUuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkaXRvci5jc3M6CisgICAgICAgICguc3ByZWFkc2hlZXQtc3R5bGUtZGVjbGFyYXRpb24t
ZWRpdG9yKToKKyAgICAgICAgKC5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3Ig
LnByb3BlcnR5Om1hdGNoZXMoLmltcGxpY2l0LCAubm90LWluaGVyaXRlZCkgLmNvbnRlbnQgPiAq
KToKKyAgICAgICAgKC5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IgLnByb3Bl
cnR5Lm5vdC1pbmhlcml0ZWQgLmNvbnRlbnQgPiAqKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3Nz
OgorICAgICAgICAoLnNwcmVhZHNoZWV0LWNzcy1kZWNsYXJhdGlvbik6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9WYXJpYWJsZXMuY3NzOgorICAgICAgICAoOnJvb3QpOgorICAgICAg
ICBNb3ZlIGBjc3MtZGVjbGFyYXRpb25gIHBhZGRpbmcgdmFyaWFibGVzIHNvIHRoZXkgY2FuIGJl
IHVzZWQgYnkgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yCisgICAgICAgIHdp
dGhvdXQgYSBwYXJlbnQgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRSdWxlc1N0eWxlRGV0YWls
c1BhbmVsLmNzczoKKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCAuc3R5bGUtcnVsZSk6IERl
bGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgLnNlbGVjdG9yLWxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0IC5zZWxlY3Rvcik6IERlbGV0ZWQuCisg
ICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgOm1hdGNoZXMoLnNlbGVjdG9yIC5tYXRjaGVkLCAu
c2VsZWN0b3I6Zm9jdXMpKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCAu
bmFtZSk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgLnZhbHVlKTogRGVs
ZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyguc2VsZWN0b3IsIC5u
YW1lLCAudmFsdWUpKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCA6bWF0
Y2hlcyguc2VsZWN0b3IsIC5uYW1lLCAudmFsdWUpOmZvY3VzKTogRGVsZXRlZC4KKyAgICAgICAg
KC5zdHlsZS1zcHJlYWRzaGVldCAuc2VsZWN0b3ItaW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAg
KC5zdHlsZS1zcHJlYWRzaGVldCAucHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoLnN0eWxl
LXNwcmVhZHNoZWV0IC5wcm9wZXJ0eS1kaXNhYmxlZCwpOiBEZWxldGVkLgorICAgICAgICAoLnN0
eWxlLXNwcmVhZHNoZWV0IC5wcm9wZXJ0eS1kaXNhYmxlZCA6bWF0Y2hlcygubmFtZSwgLnZhbHVl
KSk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgLnN0eWxlcy1zb3VyY2Up
OiBEZWxldGVkLgorICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0IDptYXRjaGVzKGEsIC5ub2Rl
LWxpbmspKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyhh
LCAubm9kZS1saW5rKTpob3Zlcik6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hl
ZXQgLmRlY2xhcmF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQg
aW5wdXRbdHlwZT0iY2hlY2tib3giXSk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFk
c2hlZXQgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpub3QoOmNoZWNrZWQpKTogRGVsZXRlZC4KKyAg
ICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCAuZGVjbGFyYXRpb25zOmhvdmVyIGlucHV0W3R5cGU9
ImNoZWNrYm94Il0pOiBEZWxldGVkLgorICAgICAgICBEcml2ZS1ieSBmaXg6IHJlbW92ZSBzdHls
ZXMgdGhhdCBkb24ndCBhcHBseSB0byBhbnl0aGluZy4KKwogMjAxOC0wOC0yNyAgS2VpdGggUm9s
bGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXgg
LS0gZGlzYWJsZSBMVE8gZm9yIHByb2R1Y3Rpb24gYnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1Bh
bmVsLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1
dGVkU3R5bGVEZXRhaWxzUGFuZWwuY3NzCmluZGV4IGY3YWVjMDlkNTY1NmQzOTM4NGJkNGQyOTdl
MTQxNTQ1NDY5Y2Y5OTcuLmQ3NTQzYjAyM2E5MmZkMzI2ODA0YTY2OTM5YzJjNjI1YjljYzAzZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
bXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwuY3NzCkBAIC0yMywx
MSArMjMsMTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0u
Y29tcHV0ZWQtc3R5bGUtcHJvcGVydGllcy5kZXRhaWxzLXNlY3Rpb24geworLmRldGFpbHMtc2Vj
dGlvbjptYXRjaGVzKC5jb21wdXRlZC1zdHlsZS1wcm9wZXJ0aWVzLCAuY29tcHV0ZWQtc3R5bGUt
Ym94LW1vZGVsKTpub3QoLmNvbGxhcHNlZCkgPiA6bWF0Y2hlcyguaGVhZGVyLCAuY29udGVudCkg
ewogICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogfQogCi0uZGV0YWlscy1zZWN0aW9uID4g
LmNvbnRlbnQgPiAuZ3JvdXAgPiAucm93IC5Db2RlTWlycm9yLWNvZGUgcHJlIC5nby10by1hcnJv
dyB7CisuY29tcHV0ZWQtc3R5bGUtcHJvcGVydGllcyAucHJvcGVydHkgLmdvLXRvLWFycm93IHsK
ICAgICBkaXNwbGF5OiBub25lOwogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICB3aWR0aDog
MTJweDsKQEAgLTM1LDEwICszNSw2IEBACiAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9t
OwogfQogCi0uZGV0YWlscy1zZWN0aW9uID4gLmNvbnRlbnQgPiAuZ3JvdXAgPiAucm93IC5Db2Rl
TWlycm9yLWNvZGUgcHJlOmhvdmVyIC5nby10by1hcnJvdyB7CisuY29tcHV0ZWQtc3R5bGUtcHJv
cGVydGllcyAucHJvcGVydHk6aG92ZXIgLmdvLXRvLWFycm93IHsKICAgICBkaXNwbGF5OiBpbml0
aWFsOwogfQotCi0uZGV0YWlscy1zZWN0aW9uLnN0eWxlLWJveC1tb2RlbDpub3QoLmNvbGxhcHNl
ZCkgPiA6bWF0Y2hlcyguaGVhZGVyLCAuY29udGVudCkgewotICAgIGJhY2tncm91bmQtY29sb3I6
IHdoaXRlOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwuanMKaW5k
ZXggYjI0NTA0ZDRhZjA2YzM0MjcyZTk2YzYxNzkzYWU3NGU0NzE5Zjk1Ny4uY2Q5Y2M1YTlhMTlj
NzI3OTc5ZDI5ZTZiYzc3ZTM3MGExNmI5NjM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0
eWxlRGV0YWlsc1BhbmVsLmpzCkBAIC0zMSw0OCArMzEsMTEgQEAgV0kuQ29tcHV0ZWRTdHlsZURl
dGFpbHNQYW5lbCA9IGNsYXNzIENvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXSS5T
dHlsZUQKIAogICAgICAgICB0aGlzLl9jb21wdXRlZFN0eWxlU2hvd0FsbFNldHRpbmcgPSBuZXcg
V0kuU2V0dGluZygiY29tcHV0ZWQtc3R5bGUtc2hvdy1hbGwiLCBmYWxzZSk7CiAKLSAgICAgICAg
dGhpcy5jc3NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvclNob3VsZEFkZFByb3BlcnR5R29Ub0Fy
cm93cyA9IHRydWU7CisgICAgICAgIHRoaXMuX2ZpbHRlclRleHQgPSBudWxsOwogICAgIH0KIAog
ICAgIC8vIFB1YmxpYwogCi0gICAgY3NzU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3JTaG93UHJv
cGVydHkocHJvcGVydHksIHNob3dTb3VyY2UpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBkZWxl
Z2F0ZVNob3dQcm9wZXJ0eSgpIHsKLSAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fZGVsZWdh
dGUuY29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbFNob3dQcm9wZXJ0eSA9PT0gImZ1bmN0aW9uIikK
LSAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5jb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVs
U2hvd1Byb3BlcnR5KHByb3BlcnR5KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghc2hvd1Nv
dXJjZSkgewotICAgICAgICAgICAgZGVsZWdhdGVTaG93UHJvcGVydHkuY2FsbCh0aGlzKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBlZmZlY3RpdmVQcm9w
ZXJ0eSA9IHRoaXMuX25vZGVTdHlsZXMuZWZmZWN0aXZlUHJvcGVydHlGb3JOYW1lKHByb3BlcnR5
Lm5hbWUpOwotICAgICAgICBpZiAoIWVmZmVjdGl2ZVByb3BlcnR5IHx8ICFlZmZlY3RpdmVQcm9w
ZXJ0eS5zdHlsZVNoZWV0VGV4dFJhbmdlKSB7Ci0gICAgICAgICAgICBpZiAoIWVmZmVjdGl2ZVBy
b3BlcnR5LnJlbGF0ZWRTaG9ydGhhbmRQcm9wZXJ0eSkgewotICAgICAgICAgICAgICAgIGRlbGVn
YXRlU2hvd1Byb3BlcnR5LmNhbGwodGhpcyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgZWZmZWN0aXZlUHJvcGVydHkgPSBlZmZlY3RpdmVQcm9w
ZXJ0eS5yZWxhdGVkU2hvcnRoYW5kUHJvcGVydHk7Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQg
b3duZXJSdWxlID0gZWZmZWN0aXZlUHJvcGVydHkub3duZXJTdHlsZS5vd25lclJ1bGU7Ci0gICAg
ICAgIGlmICghb3duZXJSdWxlKSB7Ci0gICAgICAgICAgICBkZWxlZ2F0ZVNob3dQcm9wZXJ0eS5j
YWxsKHRoaXMpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0
IHNvdXJjZUNvZGUgPSBvd25lclJ1bGUuc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGU7Ci0g
ICAgICAgIGxldCB7c3RhcnRMaW5lLCBzdGFydENvbHVtbn0gPSBlZmZlY3RpdmVQcm9wZXJ0eS5z
dHlsZVNoZWV0VGV4dFJhbmdlOwotCi0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAg
ICAgICBpZ25vcmVOZXR3b3JrVGFiOiB0cnVlLAotICAgICAgICAgICAgaWdub3JlU2VhcmNoVGFi
OiB0cnVlLAotICAgICAgICB9OwotICAgICAgICBXSS5zaG93U291cmNlQ29kZUxvY2F0aW9uKHNv
dXJjZUNvZGUuY3JlYXRlU291cmNlQ29kZUxvY2F0aW9uKHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4p
LCBvcHRpb25zKTsKLSAgICB9Ci0KICAgICByZWZyZXNoKHNpZ25pZmljYW50Q2hhbmdlKQogICAg
IHsKICAgICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGRvIGEgcmVidWlsZCBvbiBzaWduaWZpY2Fu
dCBjaGFuZ2VzLiBPdGhlciBjaGFuZ2VzIGFyZSBoYW5kbGVkCkBAIC04MywxOSArNDYsMzYgQEAg
V0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIENvbXB1dGVkU3R5bGVEZXRhaWxz
UGFuZWwgZXh0ZW5kcyBXSS5TdHlsZUQKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3Byb3Bl
cnRpZXNUZXh0RWRpdG9yLnN0eWxlID0gdGhpcy5ub2RlU3R5bGVzLmNvbXB1dGVkU3R5bGU7Cisg
ICAgICAgIHRoaXMuX3Byb3BlcnRpZXNTZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgi
aGlkZGVuIiwgIXRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLnByb3BlcnRpZXNUb1JlbmRlci5s
ZW5ndGgpOworCiAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3Iuc3R5bGUgPSB0aGlz
Lm5vZGVTdHlsZXMuY29tcHV0ZWRTdHlsZTsKKyAgICAgICAgdGhpcy5fdmFyaWFibGVzU2VjdGlv
bi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsICF0aGlzLl92YXJpYWJsZXNUZXh0
RWRpdG9yLnByb3BlcnRpZXNUb1JlbmRlci5sZW5ndGgpOworCiAgICAgICAgIHRoaXMuX2JveE1v
ZGVsRGlhZ3JhbVJvdy5ub2RlU3R5bGVzID0gdGhpcy5ub2RlU3R5bGVzOwogCisgICAgICAgIGlm
ICh0aGlzLl9maWx0ZXJUZXh0KQorICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcih0aGlzLl9m
aWx0ZXJUZXh0KTsKKwogICAgICAgICBzdXBlci5yZWZyZXNoKCk7CisgICAgfQorCisgICAgYXBw
bHlGaWx0ZXIoZmlsdGVyVGV4dCkKKyAgICB7CisgICAgICAgIHRoaXMuX2ZpbHRlclRleHQgPSBm
aWx0ZXJUZXh0OwogCi0gICAgICAgIHRoaXMuX3ZhcmlhYmxlc1NlY3Rpb24uZWxlbWVudC5jbGFz
c0xpc3QudG9nZ2xlKCJoaWRkZW4iLCAhdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRvci5zaG93blBy
b3BlcnRpZXMubGVuZ3RoKTsKKyAgICAgICAgaWYgKCF0aGlzLmRpZEluaXRpYWxMYXlvdXQpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3Iu
YXBwbHlGaWx0ZXIoZmlsdGVyVGV4dCk7CisgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0
b3IuYXBwbHlGaWx0ZXIoZmlsdGVyVGV4dCk7CiAgICAgfQogCi0gICAgZmlsdGVyRGlkQ2hhbmdl
KGZpbHRlckJhcikKKyAgICAvLyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3Ig
ZGVsZWdhdGUKKworICAgIHNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvclNob3dQ
cm9wZXJ0eShlZGl0b3IsIHByb3BlcnR5KQogICAgIHsKLSAgICAgICAgbGV0IGZpbHRlclRleHQg
PSBmaWx0ZXJCYXIuZmlsdGVycy50ZXh0OwotICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVk
aXRvci5yZW1vdmVOb25NYXRjaGluZ1Byb3BlcnRpZXMoZmlsdGVyVGV4dCk7Ci0gICAgICAgIHRo
aXMuX3ZhcmlhYmxlc1RleHRFZGl0b3IucmVtb3ZlTm9uTWF0Y2hpbmdQcm9wZXJ0aWVzKGZpbHRl
clRleHQpOworICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUuY29tcHV0ZWRTdHlsZURldGFpbHNQ
YW5lbFNob3dQcm9wZXJ0eSkKKyAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmNvbXB1dGVkU3R5
bGVEZXRhaWxzUGFuZWxTaG93UHJvcGVydHkocHJvcGVydHkpOwogICAgIH0KIAogICAgIGZvY3Vz
Rmlyc3RTZWN0aW9uKCkKQEAgLTE0MiwyNCArMTIyLDI1IEBAIFdJLkNvbXB1dGVkU3R5bGVEZXRh
aWxzUGFuZWwgPSBjbGFzcyBDb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMgV0kuU3R5
bGVECiAgICAgICAgIHRoaXMuX2NvbXB1dGVkU3R5bGVTaG93QWxsQ2hlY2tib3guYWRkRXZlbnRM
aXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fY29tcHV0ZWRTdHlsZVNob3dBbGxDaGVja2JveFZhbHVl
Q2hhbmdlZC5iaW5kKHRoaXMpKTsKICAgICAgICAgY29tcHV0ZWRTdHlsZVNob3dBbGxMYWJlbC5h
cHBlbmRDaGlsZCh0aGlzLl9jb21wdXRlZFN0eWxlU2hvd0FsbENoZWNrYm94KTsKIAotICAgICAg
ICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvciA9IG5ldyBXSS5DU1NTdHlsZURlY2xhcmF0aW9u
VGV4dEVkaXRvcih0aGlzKTsKLSAgICAgICAgdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IucHJv
cGVydHlWaXNpYmlsaXR5TW9kZSA9IFdJLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLlBy
b3BlcnR5VmlzaWJpbGl0eU1vZGUuSGlkZVZhcmlhYmxlczsKKyAgICAgICAgdGhpcy5fcHJvcGVy
dGllc1RleHRFZGl0b3IgPSBuZXcgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRp
dG9yKHRoaXMpOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5wcm9wZXJ0eVZp
c2liaWxpdHlNb2RlID0gV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLlBy
b3BlcnR5VmlzaWJpbGl0eU1vZGUuSGlkZVZhcmlhYmxlczsKICAgICAgICAgdGhpcy5fcHJvcGVy
dGllc1RleHRFZGl0b3Iuc2hvd3NJbXBsaWNpdFByb3BlcnRpZXMgPSB0aGlzLl9jb21wdXRlZFN0
eWxlU2hvd0FsbFNldHRpbmcudmFsdWU7CiAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRp
dG9yLmFsd2F5c1Nob3dQcm9wZXJ0eU5hbWVzID0gWyJkaXNwbGF5IiwgIndpZHRoIiwgImhlaWdo
dCJdOwotICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5zb3J0UHJvcGVydGllcyA9
IHRydWU7CisgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLmhpZGVGaWx0ZXJOb25N
YXRjaGluZ1Byb3BlcnRpZXMgPSB0cnVlOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVk
aXRvci5hZGRFdmVudExpc3RlbmVyKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVk
aXRvci5FdmVudC5GaWx0ZXJBcHBsaWVkLCB0aGlzLl9oYW5kbGVFZGl0b3JGaWx0ZXJBcHBsaWVk
LCB0aGlzKTsKIAogICAgICAgICBsZXQgcHJvcGVydGllc1JvdyA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvblJvdzsKICAgICAgICAgbGV0IHByb3BlcnRpZXNHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvbkdyb3VwKFtwcm9wZXJ0aWVzUm93XSk7Ci0gICAgICAgIGxldCBwcm9wZXJ0aWVzU2VjdGlv
biA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiY29tcHV0ZWQtc3R5bGUtcHJvcGVydGllcyIsIFdJ
LlVJU3RyaW5nKCJQcm9wZXJ0aWVzIiksIFtwcm9wZXJ0aWVzR3JvdXBdLCBjb21wdXRlZFN0eWxl
U2hvd0FsbExhYmVsKTsKLSAgICAgICAgcHJvcGVydGllc1NlY3Rpb24uYWRkRXZlbnRMaXN0ZW5l
cihXSS5EZXRhaWxzU2VjdGlvbi5FdmVudC5Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMuX2hh
bmRsZVByb3BlcnRpZXNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAg
ICAgdGhpcy5fcHJvcGVydGllc1NlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImNvbXB1
dGVkLXN0eWxlLXByb3BlcnRpZXMiLCBXSS5VSVN0cmluZygiUHJvcGVydGllcyIpLCBbcHJvcGVy
dGllc0dyb3VwXSwgY29tcHV0ZWRTdHlsZVNob3dBbGxMYWJlbCk7CisgICAgICAgIHRoaXMuX3By
b3BlcnRpZXNTZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGV0YWlsc1NlY3Rpb24uRXZlbnQu
Q29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzLl9oYW5kbGVQcm9wZXJ0aWVzU2VjdGlvbkNvbGxh
cHNlZFN0YXRlQ2hhbmdlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMu
X3Byb3BlcnRpZXNUZXh0RWRpdG9yKTsKIAogICAgICAgICBwcm9wZXJ0aWVzUm93LmVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IuZWxlbWVudCk7CiAKLSAgICAg
ICAgdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRvciA9IG5ldyBXSS5DU1NTdHlsZURlY2xhcmF0aW9u
VGV4dEVkaXRvcih0aGlzKTsKLSAgICAgICAgdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRvci5wcm9w
ZXJ0eVZpc2liaWxpdHlNb2RlID0gV0kuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuUHJv
cGVydHlWaXNpYmlsaXR5TW9kZS5IaWRlTm9uVmFyaWFibGVzOwotICAgICAgICB0aGlzLl92YXJp
YWJsZXNUZXh0RWRpdG9yLnNvcnRQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fdmFy
aWFibGVzVGV4dEVkaXRvciA9IG5ldyBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25F
ZGl0b3IodGhpcyk7CisgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3IucHJvcGVydHlW
aXNpYmlsaXR5TW9kZSA9IFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5Q
cm9wZXJ0eVZpc2liaWxpdHlNb2RlLkhpZGVOb25WYXJpYWJsZXM7CisgICAgICAgIHRoaXMuX3Zh
cmlhYmxlc1RleHRFZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcihXSS5TcHJlYWRzaGVldENTU1N0eWxl
RGVjbGFyYXRpb25FZGl0b3IuRXZlbnQuRmlsdGVyQXBwbGllZCwgdGhpcy5faGFuZGxlRWRpdG9y
RmlsdGVyQXBwbGllZCwgdGhpcyk7CiAKICAgICAgICAgbGV0IHZhcmlhYmxlc1JvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblJvdzsKICAgICAgICAgbGV0IHZhcmlhYmxlc0dyb3VwID0gbmV3IFdJ
LkRldGFpbHNTZWN0aW9uR3JvdXAoW3ZhcmlhYmxlc1Jvd10pOwpAQCAtMTcwLDE3ICsxNTEsMjQg
QEAgV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIENvbXB1dGVkU3R5bGVEZXRh
aWxzUGFuZWwgZXh0ZW5kcyBXSS5TdHlsZUQKIAogICAgICAgICB2YXJpYWJsZXNSb3cuZWxlbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yLmVsZW1lbnQpOwogCi0gICAg
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzU2VjdGlvbi5lbGVtZW50KTsK
KyAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Byb3BlcnRpZXNTZWN0aW9u
LmVsZW1lbnQpOwogICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdmFyaWFi
bGVzU2VjdGlvbi5lbGVtZW50KTsKIAogICAgICAgICB0aGlzLl9ib3hNb2RlbERpYWdyYW1Sb3cg
PSBuZXcgV0kuQm94TW9kZWxEZXRhaWxzU2VjdGlvblJvdzsKIAogICAgICAgICBsZXQgYm94TW9k
ZWxHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9ib3hNb2RlbERpYWdy
YW1Sb3ddKTsKLSAgICAgICAgbGV0IGJveE1vZGVsU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvbigic3R5bGUtYm94LW1vZGVsIiwgV0kuVUlTdHJpbmcoIkJveCBNb2RlbCIpLCBbYm94TW9k
ZWxHcm91cF0pOworICAgICAgICBsZXQgYm94TW9kZWxTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNT
ZWN0aW9uKCJjb21wdXRlZC1zdHlsZS1ib3gtbW9kZWwiLCBXSS5VSVN0cmluZygiQm94IE1vZGVs
IiksIFtib3hNb2RlbEdyb3VwXSk7CiAKICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxk
KGJveE1vZGVsU2VjdGlvbi5lbGVtZW50KTsKICAgICB9CiAKKyAgICBmaWx0ZXJEaWRDaGFuZ2Uo
ZmlsdGVyQmFyKQorICAgIHsKKyAgICAgICAgc3VwZXIuZmlsdGVyRGlkQ2hhbmdlKGZpbHRlckJh
cik7CisKKyAgICAgICAgdGhpcy5hcHBseUZpbHRlcihmaWx0ZXJCYXIuZmlsdGVycy50ZXh0KTsK
KyAgICB9CisKICAgICAvLyBQcml2YXRlCiAKICAgICBfY29tcHV0ZWRTdHlsZVNob3dBbGxDaGVj
a2JveFZhbHVlQ2hhbmdlZChldmVudCkKQEAgLTE4OCwxOSArMTc2LDMwIEBAIFdJLkNvbXB1dGVk
U3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBDb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVu
ZHMgV0kuU3R5bGVECiAgICAgICAgIGxldCBjaGVja2VkID0gdGhpcy5fY29tcHV0ZWRTdHlsZVNo
b3dBbGxDaGVja2JveC5jaGVja2VkOwogICAgICAgICB0aGlzLl9jb21wdXRlZFN0eWxlU2hvd0Fs
bFNldHRpbmcudmFsdWUgPSBjaGVja2VkOwogICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVk
aXRvci5zaG93c0ltcGxpY2l0UHJvcGVydGllcyA9IGNoZWNrZWQ7Ci0gICAgICAgIHRoaXMuX3By
b3BlcnRpZXNUZXh0RWRpdG9yLnVwZGF0ZUxheW91dCgpOwogICAgIH0KIAogICAgIF9oYW5kbGVQ
cm9wZXJ0aWVzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZChldmVudCkKICAgICB7CiAgICAg
ICAgIGlmIChldmVudCAmJiBldmVudC5kYXRhICYmICFldmVudC5kYXRhLmNvbGxhcHNlZCkKLSAg
ICAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLnJlZnJlc2goKTsKKyAgICAgICAg
ICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLm5lZWRzTGF5b3V0KCk7CiAgICAgfQogCiAg
ICAgX2hhbmRsZVZhcmlhYmxlc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQoZXZlbnQpCiAg
ICAgewogICAgICAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGF0YSAmJiAhZXZlbnQuZGF0YS5jb2xs
YXBzZWQpCi0gICAgICAgICAgICB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yLnJlZnJlc2goKTsK
KyAgICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3IubmVlZHNMYXlvdXQoKTsKKyAg
ICB9CisKKyAgICBfaGFuZGxlRWRpdG9yRmlsdGVyQXBwbGllZChldmVudCkKKyAgICB7CisgICAg
ICAgIGxldCBzZWN0aW9uID0gbnVsbDsKKyAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhp
cy5fcHJvcGVydGllc1RleHRFZGl0b3IpCisgICAgICAgICAgICBzZWN0aW9uID0gdGhpcy5fcHJv
cGVydGllc1NlY3Rpb247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5f
dmFyaWFibGVzVGV4dEVkaXRvcikKKyAgICAgICAgICAgIHNlY3Rpb24gPSB0aGlzLl92YXJpYWJs
ZXNTZWN0aW9uOworCisgICAgICAgIGlmIChzZWN0aW9uKQorICAgICAgICAgICAgc2VjdGlvbi5l
bGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsICFldmVudC5kYXRhLm1hdGNoZXMpOwog
ICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmNzcwppbmRleCA0MzViMzUwODA5ZjQ1ZGI1
OTFlN2Q3MTk4MjJjODg4ODIzNzNmYWRhLi4yNGJmOTlhYmY2YWM5NDdmMjYwOGJiZmY2YzQ3ZWEw
NjhiZWRmMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uY3NzCkBAIC0xMDcsMTAgKzEwNyw2IEBA
IGJvZHlbZGlyPXJ0bF0gLmRldGFpbHMtc2VjdGlvbiA+IC5oZWFkZXIgPiAub3B0aW9ucyB7CiAg
ICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODclKTsKIH0KIAotLmRldGFp
bHMtc2VjdGlvbi5jb21wdXRlZC1zdHlsZS1wcm9wZXJ0aWVzOm5vdCguY29sbGFwc2VkKSA+IC5o
ZWFkZXIgewotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7Ci19Ci0KIC5k
ZXRhaWxzLXNlY3Rpb24gPiAuaGVhZGVyOjpiZWZvcmUgewogICAgIGRpc3BsYXk6IGJsb2NrOwog
ICAgIHdpZHRoOiAyMXB4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dlbmVyYWxTdHlsZURldGFpbHNT
aWRlYmFyUGFuZWwuanMKaW5kZXggNDA5ODdiYjg3Nzc4YmJjYzk3ZWI5YjI4MDAyNWQxYmQzNDVi
NzE4OC4uOTcwOGVjNWI4N2RkMGE0MTI1MmU2YzhiMzE5YWU0ODUwNTJkMjgyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR2VuZXJhbFN0eWxl
RGV0YWlsc1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9HZW5lcmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC0xNjUs
OCArMTY1LDYgQEAgV0kuR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIEdl
bmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW4KICAgICAgICAgICAgIHRoaXMuY29u
dGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9mb3JjZWRQc2V1ZG9DbGFzc0NvbnRh
aW5lcik7CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9wYW5lbC5hZGRFdmVudExpc3RlbmVy
KFdJLlN0eWxlRGV0YWlsc1BhbmVsLkV2ZW50LlJlZnJlc2hlZCwgdGhpcy5fZmlsdGVyRGlkQ2hh
bmdlLCB0aGlzKTsKLQogICAgICAgICB0aGlzLl9zaG93UGFuZWwodGhpcy5fcGFuZWwpOwogCiAg
ICAgICAgIGxldCBvcHRpb25zQ29udGFpbmVyID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJk
aXYiLCAib3B0aW9ucy1jb250YWluZXIiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVk
aXRvci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJl
YWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuY3NzCmluZGV4IGY4Zjk2MGUyZDdhNDI2
NmFkY2JmMDI5OWNhMTVlMWM4ODVmODU3YzQuLjZiZWJiODU2YjRjZTNhMTRiN2NhYjVmNzgwZjk2
ODE0MGY3ZTg2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5jc3MKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NT
dHlsZURlY2xhcmF0aW9uRWRpdG9yLmNzcwpAQCAtMjYsNiArMjYsMTAgQEAKIC5zcHJlYWRzaGVl
dC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IgewogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAg
ICBjbGVhcjogYm90aDsKKyAgICBmb250LWZhbWlseTogTWVubG8sIG1vbm9zcGFjZTsKKyAgICBm
b250LXNpemU6IDExcHg7CisgICAgY29sb3I6IGhzbCgwLCAwJSwgNzAlKTsKKyAgICAtd2Via2l0
LXVzZXItc2VsZWN0OiB0ZXh0OwogfQogCiAuc3ByZWFkc2hlZXQtc3R5bGUtZGVjbGFyYXRpb24t
ZWRpdG9yIC5wcm9wZXJ0eSB7CkBAIC0xMTYsNyArMTIwLDcgQEAKICAgICAtd2Via2l0LWNsaXAt
cGF0aDogcG9seWdvbigwJSA1MCUsIDZweCAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlLCA2cHggMTAw
JSk7CiB9CiAKLS5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IgLnByb3BlcnR5
Lm5vdC1pbmhlcml0ZWQgLmNvbnRlbnQgPiAqIHsKKy5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJh
dGlvbi1lZGl0b3IgLnByb3BlcnR5Om1hdGNoZXMoLmltcGxpY2l0LCAubm90LWluaGVyaXRlZCkg
LmNvbnRlbnQgPiAqIHsKICAgICBvcGFjaXR5OiAwLjU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVE
ZWNsYXJhdGlvbkVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5qcwppbmRleCBiYzZk
YmI1NDI2Y2U0NmI4YzZmOWU0Njk0Yjk5MjdkNDQzNWE3NzAxLi45MDY0NWMxNjRmMmE2NDc3NjM3
MzVlMjA1ZWZlMTk5MGE3NGZmNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3Iu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFk
c2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLmpzCkBAIC0zNSw4ICszNSwxMyBAQCBXSS5T
cHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENT
U1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB0aGlzLnN0eWxlID0gc3R5bGU7CiAgICAgICAg
IHRoaXMuX3Byb3BlcnR5Vmlld3MgPSBbXTsKIAotICAgICAgICB0aGlzLl9pbmxpbmVTd2F0Y2hB
Y3RpdmUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fZm9jdXNlZCA9IGZhbHNlOworICAgICAgICB0
aGlzLl9pbmxpbmVTd2F0Y2hBY3RpdmUgPSBmYWxzZTsKKworICAgICAgICB0aGlzLl9zaG93c0lt
cGxpY2l0UHJvcGVydGllcyA9IGZhbHNlOworICAgICAgICB0aGlzLl9hbHdheXNTaG93UHJvcGVy
dHlOYW1lcyA9IG5ldyBTZXQ7CisgICAgICAgIHRoaXMuX3Byb3BlcnR5VmlzaWJpbGl0eU1vZGUg
PSBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuUHJvcGVydHlWaXNpYmls
aXR5TW9kZS5TaG93QWxsOworICAgICAgICB0aGlzLl9oaWRlRmlsdGVyTm9uTWF0Y2hpbmdQcm9w
ZXJ0aWVzID0gZmFsc2U7CiAKICAgICAgICAgdGhpcy5fcHJvcGVydHlQZW5kaW5nU3RhcnRFZGl0
aW5nID0gbnVsbDsKICAgICAgICAgdGhpcy5fcGVuZGluZ0FkZEJsYW5rUHJvcGVydHlJbmRleE9m
ZnNldCA9IE5hTjsKQEAgLTQ3LDcgKzUyLDcgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xh
cmF0aW9uRWRpdG9yID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQKIAog
ICAgIGluaXRpYWxMYXlvdXQoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnN0eWxlLmVkaXRh
YmxlKQorICAgICAgICBpZiAoIXRoaXMuX3N0eWxlIHx8ICF0aGlzLl9zdHlsZS5lZGl0YWJsZSkK
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiZm9jdXMiLCAoKSA9PiB7IHRoaXMuZm9jdXNlZCA9IHRydWU7IH0sIHRydWUpOwpAQCAt
NzEsNyArNzYsNyBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBj
bGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogCiAgICAgICAgIHRoaXMuZWxl
bWVudC5yZW1vdmVDaGlsZHJlbigpOwogCi0gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gdGhpcy5f
cHJvcGVydGllc1RvUmVuZGVyOworICAgICAgICBsZXQgcHJvcGVydGllcyA9IHRoaXMucHJvcGVy
dGllc1RvUmVuZGVyOwogICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgibm8t
cHJvcGVydGllcyIsICFwcm9wZXJ0aWVzLmxlbmd0aCk7CiAKICAgICAgICAgLy8gRklYTUU6IE9u
bHkgcmUtbGF5b3V0IHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gbW9kaWZpZWQgYW5kIHByZXNl
cnZlIGZvY3VzIHdoZW5ldmVyIHBvc3NpYmxlLgpAQCAtMTU0LDYgKzE1OSw3MCBAQCBXSS5TcHJl
YWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB0aGlzLl91cGRhdGVTdHlsZUxvY2soKTsKICAgICB9
CiAKKyAgICBzZXQgc2hvd3NJbXBsaWNpdFByb3BlcnRpZXModmFsdWUpCisgICAgeworICAgICAg
ICBpZiAodmFsdWUgPT09IHRoaXMuX3Nob3dzSW1wbGljaXRQcm9wZXJ0aWVzKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX3Nob3dzSW1wbGljaXRQcm9wZXJ0aWVzID0gdmFs
dWU7CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIHNldCBhbHdh
eXNTaG93UHJvcGVydHlOYW1lcyhwcm9wZXJ0eU5hbWVzKQorICAgIHsKKyAgICAgICAgdGhpcy5f
YWx3YXlzU2hvd1Byb3BlcnR5TmFtZXMgPSBuZXcgU2V0KHByb3BlcnR5TmFtZXMpOworCisgICAg
ICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICBzZXQgcHJvcGVydHlWaXNpYmls
aXR5TW9kZShwcm9wZXJ0eVZpc2liaWxpdHlNb2RlKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X3Byb3BlcnR5VmlzaWJpbGl0eU1vZGUgPT09IHByb3BlcnR5VmlzaWJpbGl0eU1vZGUpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcHJvcGVydHlWaXNpYmlsaXR5TW9kZSA9
IHByb3BlcnR5VmlzaWJpbGl0eU1vZGU7CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOwor
ICAgIH0KKworICAgIHNldCBoaWRlRmlsdGVyTm9uTWF0Y2hpbmdQcm9wZXJ0aWVzKHZhbHVlKQor
ICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9oaWRlRmlsdGVyTm9uTWF0Y2hpbmdQ
cm9wZXJ0aWVzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2hpZGVGaWx0
ZXJOb25NYXRjaGluZ1Byb3BlcnRpZXMgPSB2YWx1ZTsKKworICAgICAgICB0aGlzLm5lZWRzTGF5
b3V0KCk7CisgICAgfQorCisgICAgZ2V0IHByb3BlcnRpZXNUb1JlbmRlcigpCisgICAgeworICAg
ICAgICBsZXQgcHJvcGVydGllcyA9IFtdOworICAgICAgICBpZiAodGhpcy5fc3R5bGUpIHsKKyAg
ICAgICAgICAgIGlmICh0aGlzLl9zdHlsZS5fc3R5bGVTaGVldFRleHRSYW5nZSkKKyAgICAgICAg
ICAgICAgICBwcm9wZXJ0aWVzID0gdGhpcy5fc3R5bGUuYWxsVmlzaWJsZVByb3BlcnRpZXM7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcHJvcGVydGllcyA9IHRoaXMuX3N0eWxl
LmFsbFByb3BlcnRpZXM7CisKKyAgICAgICAgICAgIGlmICh0aGlzLl9zdHlsZS50eXBlID09PSBX
SS5DU1NTdHlsZURlY2xhcmF0aW9uLlR5cGUuQ29tcHV0ZWQpIHsKKyAgICAgICAgICAgICAgICBw
cm9wZXJ0aWVzLnNvcnQoKGEsIGIpID0+IGEubmFtZS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYi5u
YW1lKSk7CisKKyAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIo
KHByb3BlcnR5KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHkudmFyaWFi
bGUgJiYgdGhpcy5fcHJvcGVydHlWaXNpYmlsaXR5TW9kZSA9PT0gV0kuU3ByZWFkc2hlZXRDU1NT
dHlsZURlY2xhcmF0aW9uRWRpdG9yLlByb3BlcnR5VmlzaWJpbGl0eU1vZGUuSGlkZU5vblZhcmlh
YmxlcykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAg
ICAgICAgICAgICBpZiAocHJvcGVydHkudmFyaWFibGUgJiYgdGhpcy5fcHJvcGVydHlWaXNpYmls
aXR5TW9kZSA9PT0gV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLlByb3Bl
cnR5VmlzaWJpbGl0eU1vZGUuSGlkZVZhcmlhYmxlcykKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gIXByb3BlcnR5Lmlt
cGxpY2l0IHx8IHRoaXMuX3Nob3dzSW1wbGljaXRQcm9wZXJ0aWVzIHx8IHRoaXMuX2Fsd2F5c1No
b3dQcm9wZXJ0eU5hbWVzLmhhcyhwcm9wZXJ0eS5jYW5vbmljYWxOYW1lKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcHJvcGVy
dGllczsKKyAgICB9CisKKwogICAgIHN0YXJ0RWRpdGluZ0ZpcnN0UHJvcGVydHkoKQogICAgIHsK
ICAgICAgICAgbGV0IGZpcnN0RWRpdGFibGVQcm9wZXJ0eSA9IHRoaXMuX2VkaXRhYmxlUHJvcGVy
dHlBZnRlcigtMSk7CkBAIC0yMDEsNyArMjcwLDcgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURl
Y2xhcmF0aW9uRWRpdG9yID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfTsKIAotICAgICAgICBmb3IgKGxl
dCBjc3NQcm9wZXJ0eSBvZiB0aGlzLnN0eWxlLnByb3BlcnRpZXMpIHsKKyAgICAgICAgZm9yIChs
ZXQgY3NzUHJvcGVydHkgb2YgdGhpcy5fc3R5bGUucHJvcGVydGllcykgewogICAgICAgICAgICAg
aWYgKHByb3BlcnRpZXNNYXRjaChjc3NQcm9wZXJ0eSkpIHsKICAgICAgICAgICAgICAgICBsZXQg
cHJvcGVydHlWaWV3ID0gY3NzUHJvcGVydHkuX19wcm9wZXJ0eVZpZXc7CiAgICAgICAgICAgICAg
ICAgaWYgKHByb3BlcnR5VmlldykgewpAQCAtMjMwLDYgKzI5OSwyOSBAQCBXSS5TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVj
bGFyYXRpb25FZAogICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CiAgICAgfQogCisgICAgYXBw
bHlGaWx0ZXIoZmlsdGVyVGV4dCkKKyAgICB7CisgICAgICAgIHRoaXMuX2ZpbHRlclRleHQgPSBm
aWx0ZXJUZXh0OworCisgICAgICAgIGlmICghdGhpcy5kaWRJbml0aWFsTGF5b3V0KQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBtYXRjaGVzID0gZmFsc2U7CisgICAgICAgIGZv
ciAobGV0IHByb3BlcnR5VmlldyBvZiB0aGlzLl9wcm9wZXJ0eVZpZXdzKSB7CisgICAgICAgICAg
ICBpZiAocHJvcGVydHlWaWV3LmFwcGx5RmlsdGVyKHRoaXMuX2ZpbHRlclRleHQpKSB7CisgICAg
ICAgICAgICAgICAgbWF0Y2hlcyA9IHRydWU7CisKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5f
aGlkZUZpbHRlck5vbk1hdGNoaW5nUHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAgICAgdGhp
cy5lbGVtZW50LmFwcGVuZChwcm9wZXJ0eVZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICB9IGVs
c2UgaWYgKHRoaXMuX2hpZGVGaWx0ZXJOb25NYXRjaGluZ1Byb3BlcnRpZXMpCisgICAgICAgICAg
ICAgICAgcHJvcGVydHlWaWV3LmVsZW1lbnQucmVtb3ZlKCk7CisgICAgICAgIH0KKworICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVj
bGFyYXRpb25FZGl0b3IuRXZlbnQuRmlsdGVyQXBwbGllZCwge21hdGNoZXN9KTsKKyAgICB9CisK
KyAgICAvLyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZGVsZWdhdGUKKwogICAgIHNwcmVhZHNo
ZWV0U3R5bGVQcm9wZXJ0eUZvY3VzTW92ZWQocHJvcGVydHlWaWV3LCB7ZGlyZWN0aW9uLCB3aWxs
UmVtb3ZlUHJvcGVydHl9KQogICAgIHsKICAgICAgICAgdGhpcy5fdXBkYXRlUHJvcGVydGllc1N0
YXR1cygpOwpAQCAtMjc3LDggKzM2OSw2IEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkaXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICAvLyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZGVsZWdhdGUK
LQogICAgIHNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eUFkZEJsYW5rUHJvcGVydHlTb29uKHByb3Bl
cnR5Vmlldywge2luZGV4fSkKICAgICB7CiAgICAgICAgIGlmIChpc05hTihpbmRleCkpCkBAIC0y
OTYsNiArMzg2LDEyIEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvciA9
IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAgICAgICAgIHRoaXMuX2Zv
Y3VzZWQgPSBmYWxzZTsKICAgICB9CiAKKyAgICBzcHJlYWRzaGVldFN0eWxlUHJvcGVydHlTaG93
UHJvcGVydHkocHJvcGVydHlWaWV3LCBwcm9wZXJ0eSkKKyAgICB7CisgICAgICAgIGlmICh0aGlz
Ll9kZWxlZ2F0ZS5zcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3JTaG93UHJvcGVy
dHkpCisgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldENTU1N0eWxlRGVjbGFy
YXRpb25FZGl0b3JTaG93UHJvcGVydHkodGhpcywgcHJvcGVydHkpOworICAgIH0KKwogICAgIHN0
eWxlUHJvcGVydHlJbmxpbmVTd2F0Y2hBY3RpdmF0ZWQoKQogICAgIHsKICAgICAgICAgdGhpcy5p
bmxpbmVTd2F0Y2hBY3RpdmUgPSB0cnVlOwpAQCAtMzA2LDMyICs0MDIsOCBAQCBXSS5TcHJlYWRz
aGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxl
RGVjbGFyYXRpb25FZAogICAgICAgICB0aGlzLmlubGluZVN3YXRjaEFjdGl2ZSA9IGZhbHNlOwog
ICAgIH0KIAotICAgIGFwcGx5RmlsdGVyKGZpbHRlclRleHQpCi0gICAgewotICAgICAgICB0aGlz
Ll9maWx0ZXJUZXh0ID0gZmlsdGVyVGV4dDsKLQotICAgICAgICBpZiAoIXRoaXMuZGlkSW5pdGlh
bExheW91dCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgbWF0Y2hlcyA9IGZh
bHNlOwotICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eVZpZXcgb2YgdGhpcy5fcHJvcGVydHlWaWV3
cykgewotICAgICAgICAgICAgaWYgKHByb3BlcnR5Vmlldy5hcHBseUZpbHRlcih0aGlzLl9maWx0
ZXJUZXh0KSkKLSAgICAgICAgICAgICAgICBtYXRjaGVzID0gdHJ1ZTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlNwcmVhZHNoZWV0Q1NTU3R5
bGVEZWNsYXJhdGlvbkVkaXRvci5FdmVudC5GaWx0ZXJBcHBsaWVkLCB7bWF0Y2hlc30pOwotICAg
IH0KLQogICAgIC8vIFByaXZhdGUKIAotICAgIGdldCBfcHJvcGVydGllc1RvUmVuZGVyKCkKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl9zdHlsZS5fc3R5bGVTaGVldFRleHRSYW5nZSkKLSAgICAg
ICAgICAgIHJldHVybiB0aGlzLl9zdHlsZS5hbGxWaXNpYmxlUHJvcGVydGllczsKLQotICAgICAg
ICByZXR1cm4gdGhpcy5fc3R5bGUuYWxsUHJvcGVydGllczsKLSAgICB9Ci0KICAgICBfZWRpdGFi
bGVQcm9wZXJ0eUFmdGVyKHByb3BlcnR5SW5kZXgpCiAgICAgewogICAgICAgICBmb3IgKGxldCBp
bmRleCA9IHByb3BlcnR5SW5kZXggKyAxOyBpbmRleCA8IHRoaXMuX3Byb3BlcnR5Vmlld3MubGVu
Z3RoOyBpbmRleCsrKSB7CkBAIC0zNzAsNyArNDQyLDEwIEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5
bGVEZWNsYXJhdGlvbkVkaXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlv
bkVkCiAKICAgICBfdXBkYXRlU3R5bGVMb2NrKCkKICAgICB7Ci0gICAgICAgIHRoaXMuc3R5bGUu
bG9ja2VkID0gdGhpcy5fZm9jdXNlZCB8fCB0aGlzLl9pbmxpbmVTd2F0Y2hBY3RpdmU7CisgICAg
ICAgIGlmICghdGhpcy5fc3R5bGUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhp
cy5fc3R5bGUubG9ja2VkID0gdGhpcy5fZm9jdXNlZCB8fCB0aGlzLl9pbmxpbmVTd2F0Y2hBY3Rp
dmU7CiAgICAgfQogfTsKIApAQCAtMzc5LDMgKzQ1NCw5IEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5
bGVEZWNsYXJhdGlvbkVkaXRvci5FdmVudCA9IHsKIH07CiAKIFdJLlNwcmVhZHNoZWV0Q1NTU3R5
bGVEZWNsYXJhdGlvbkVkaXRvci5TdHlsZUNsYXNzTmFtZSA9ICJzcHJlYWRzaGVldC1zdHlsZS1k
ZWNsYXJhdGlvbi1lZGl0b3IiOworCitXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25F
ZGl0b3IuUHJvcGVydHlWaXNpYmlsaXR5TW9kZSA9IHsKKyAgICBTaG93QWxsOiBTeW1ib2woInZh
cmlhYmxlLXZpc2liaWxpdHktc2hvdy1hbGwiKSwKKyAgICBIaWRlVmFyaWFibGVzOiBTeW1ib2wo
InZhcmlhYmxlLXZpc2liaWxpdHktaGlkZS12YXJpYWJsZXMiKSwKKyAgICBIaWRlTm9uVmFyaWFi
bGVzOiBTeW1ib2woInZhcmlhYmxlLXZpc2liaWxpdHktaGlkZS1ub24tdmFyaWFibGVzIiksCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRp
b25TZWN0aW9uLmNzcwppbmRleCA3NzdmZThkNDM3MmM3ZGEyNTljYjYyMTM2N2NjMWU2MzFlNTI5
ZjFlLi5iMWM1OWMyNWQ3MzQwYmFiN2RkYzY3OTQ2YTY0Mzg3OWM5MTZmNzc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENT
U1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9u
LmNzcwpAQCAtMjcsMTMgKzI3LDExIEBACiAgICAgbWFyZ2luOiAwOwogICAgIHBhZGRpbmc6IDAg
MCB2YXIoLS1jc3MtZGVjbGFyYXRpb24tdmVydGljYWwtcGFkZGluZyk7CiAgICAgZm9udC1mYW1p
bHk6IE1lbmxvLCBtb25vc3BhY2U7CisgICAgZm9udC1zaXplOiAxMXB4OwogICAgIGNvbG9yOiBo
c2woMCwgMCUsIDcwJSk7CiAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgYm9yZGVyLWJvdHRv
bTogMC41cHggc29saWQgaHNsYSgwLCAwJSwgMCUsIDAuMik7CiAgICAgLXdlYmtpdC11c2VyLXNl
bGVjdDogdGV4dDsKLQotICAgIC0tY3NzLWRlY2xhcmF0aW9uLXZlcnRpY2FsLXBhZGRpbmc6IDRw
eDsKLSAgICAtLWNzcy1kZWNsYXJhdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc6IDZweDsKIH0KIAog
LnNwcmVhZHNoZWV0LWNzcy1kZWNsYXJhdGlvbiA6bWF0Y2hlcyguaGVhZGVyLCAuaGVhZGVyLW1l
ZGlhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwuY3NzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRSdWxlc1N0eWxlRGV0YWls
c1BhbmVsLmNzcwppbmRleCA4YWE3N2E2MzQ3YTZiZDI0ZGQxYmFhNzI2OTYxMTI2OTc3Y2M3ZWUz
Li41ZDk0YzI4NzU2ZDQ4ZTA3MDM1MjMyMGU2NmU3YzUyNThmZDI5YjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFJ1bGVz
U3R5bGVEZXRhaWxzUGFuZWwuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0UnVsZXNTdHlsZURldGFpbHNQYW5lbC5jc3MKQEAgLTIz
LDg1ICsyMyw2IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
LnN0eWxlLXNwcmVhZHNoZWV0IC5zdHlsZS1ydWxlIHsKLSAgICBmb250LWZhbWlseTogTWVubG8s
IG1vbm9zcGFjZTsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwotICAgIHBhZGRpbmc6
IDRweCA2cHg7Ci0gICAgbWFyZ2luOiAwOwotCi0gICAgY29sb3I6IGhzbCgwLCAwJSwgNzAlKTsK
LSAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKLSAgICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCBo
c2xhKDAsIDAlLCAwJSwgMC4yKTsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IC5zZWxlY3Rvci1s
aW5lIHsKLSAgICBmbG9hdDogbGVmdDsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IC5zZWxlY3Rv
ciB7Ci0gICAgY29sb3I6IGhzbCgwLCAwJSwgNTAlKTsKLSAgICB3b3JkLXdyYXA6IGJyZWFrLXdv
cmQ7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyguc2VsZWN0b3IgLm1hdGNoZWQs
IC5zZWxlY3Rvcjpmb2N1cykgewotICAgIGNvbG9yOiBibGFjazsKLX0KLQotLnN0eWxlLXNwcmVh
ZHNoZWV0IC5uYW1lIHsKLSAgICBjb2xvcjogdmFyKC0tc3ludGF4LWhpZ2hsaWdodC1ib29sZWFu
LWNvbG9yKTsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IC52YWx1ZSB7Ci0gICAgY29sb3I6IGJs
YWNrOwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgOm1hdGNoZXMoLnNlbGVjdG9yLCAubmFtZSwg
LnZhbHVlKSB7Ci0gICAgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC13cml0ZS1wbGFpbnRleHQt
b25seTsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IDptYXRjaGVzKC5zZWxlY3RvciwgLm5hbWUs
IC52YWx1ZSk6Zm9jdXMgewotICAgIG91dGxpbmU6IDFweCBzb2xpZCB3aGl0ZTsKLSAgICBib3gt
c2hhZG93OiAwIDFweCAycHggMXB4IGhzbGEoMCwgMCUsIDAlLCAwLjYpOwotfQotCi0uc3R5bGUt
c3ByZWFkc2hlZXQgLnNlbGVjdG9yLWlubGluZSB7Ci0gICAgLXdlYmtpdC11c2VyLW1vZGlmeTog
cmVhZC1vbmx5OwotICAgIGNvbG9yOiBoc2woMCwgMCUsIDUwJSk7Ci0gICAgZm9udDogMTJweCBz
YW5zLXNlcmlmOwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgLnByb3BlcnR5IHsKLSAgICBwYWRk
aW5nLWxlZnQ6IDE2cHg7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAucHJvcGVydHktZGlzYWJs
ZWQsCi0uc3R5bGUtc3ByZWFkc2hlZXQgLnByb3BlcnR5LWRpc2FibGVkICogewotICAgIGNvbG9y
OiBoc2woMTE5LCAxMDAlLCAyMiUpOwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgLnByb3BlcnR5
LWRpc2FibGVkIDptYXRjaGVzKC5uYW1lLCAudmFsdWUpIHsKLSAgICAtd2Via2l0LXVzZXItbW9k
aWZ5OiByZWFkLW9ubHk7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAuc3R5bGVzLXNvdXJjZSB7
Ci0gICAgZmxvYXQ6IHJpZ2h0OwotICAgIGZvbnQ6IDExcHggc2Fucy1zZXJpZjsKLSAgICBtYXgt
d2lkdGg6IDEwMCU7Ci0gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Ci0gICAgd2hpdGUtc3Bh
Y2U6IG5vd3JhcDsKLSAgICBvdmVyZmxvdzogaGlkZGVuOwotCi0gICAgbWFyZ2luLXRvcDogLTFw
eDsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IDptYXRjaGVzKGEsIC5ub2RlLWxpbmspIHsKLSAg
ICBjb2xvcjogaHNsKDAsIDAlLCA1MCUpOwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgOm1hdGNo
ZXMoYSwgLm5vZGUtbGluayk6aG92ZXIgewotICAgIGNvbG9yOiBoc2woMCwgMCUsIDMzJSk7Ci19
Ci0KIC5zcHJlYWRzaGVldC1zdHlsZS1wYW5lbCAuc2VjdGlvbi1oZWFkZXIgewogICAgIG1hcmdp
bjogMDsKICAgICBwYWRkaW5nOiA0cHggNnB4OwpAQCAtMTE4LDI2ICszOSwzIEBACiAuc3ByZWFk
c2hlZXQtc3R5bGUtcGFuZWwgLnNlY3Rpb24taGVhZGVyIC5ub2RlLWxpbms6aG92ZXIgewogICAg
IGNvbG9yOiBibGFjazsKIH0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IC5kZWNsYXJhdGlvbnMgewot
ICAgIGNsZWFyOiBsZWZ0OwotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotLnN0eWxlLXNw
cmVhZHNoZWV0IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewotICAgIHZpc2liaWxpdHk6IGhpZGRl
bjsKLQotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICBsZWZ0OiAwOwotCi0gICAgaGVpZ2h0
OiAxMXB4OwotICAgIG1hcmdpbjogMDsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IGlucHV0W3R5
cGU9ImNoZWNrYm94Il06bm90KDpjaGVja2VkKSB7Ci0gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsK
LX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IC5kZWNsYXJhdGlvbnM6aG92ZXIgaW5wdXRbdHlwZT0i
Y2hlY2tib3giXSB7Ci0gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQ
cm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nw
cmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcwppbmRleCA3NGYxNWUxMjViNDRkZjRhMjVkZjc3NWNm
YTExMTY1NDdiNTUwODFlLi41YjUwZDNhNzRmNmQzYjg2YjBlMWJiOTM1MWZhMTEyNTczOTRlNWY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9T
cHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzCkBAIC0yMzMsNiAr
MjMzLDMzIEBAIFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSA9IGNsYXNzIFNwcmVhZHNoZWV0
U3R5bGVQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50LmFwcGVuZCgiICovIik7CiAKKyAgICAgICAgaWYgKCF0
aGlzLl9wcm9wZXJ0eS5pbXBsaWNpdCAmJiB0aGlzLl9wcm9wZXJ0eS5vd25lclN0eWxlLnR5cGUg
PT09IFdJLkNTU1N0eWxlRGVjbGFyYXRpb24uVHlwZS5Db21wdXRlZCkgeworICAgICAgICAgICAg
bGV0IGVmZmVjdGl2ZVByb3BlcnR5ID0gdGhpcy5fcHJvcGVydHkub3duZXJTdHlsZS5ub2RlU3R5
bGVzLmVmZmVjdGl2ZVByb3BlcnR5Rm9yTmFtZSh0aGlzLl9wcm9wZXJ0eS5uYW1lKTsKKyAgICAg
ICAgICAgIGlmIChlZmZlY3RpdmVQcm9wZXJ0eSAmJiAhZWZmZWN0aXZlUHJvcGVydHkuc3R5bGVT
aGVldFRleHRSYW5nZSkKKyAgICAgICAgICAgICAgICBlZmZlY3RpdmVQcm9wZXJ0eSA9IGVmZmVj
dGl2ZVByb3BlcnR5LnJlbGF0ZWRTaG9ydGhhbmRQcm9wZXJ0eTsKKworICAgICAgICAgICAgbGV0
IG93bmVyUnVsZSA9IGVmZmVjdGl2ZVByb3BlcnR5ID8gZWZmZWN0aXZlUHJvcGVydHkub3duZXJT
dHlsZS5vd25lclJ1bGUgOiBudWxsOworCisgICAgICAgICAgICBsZXQgYXJyb3dFbGVtZW50ID0g
dGhpcy5fY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoV0kuY3JlYXRlR29Ub0Fycm93QnV0dG9u
KCkpOworICAgICAgICAgICAgYXJyb3dFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKCFlZmZlY3RpdmVQcm9wZXJ0eSB8fCAh
b3duZXJSdWxlIHx8ICFldmVudC5hbHRLZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRo
aXMuX2RlbGVnYXRlLnNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eVNob3dQcm9wZXJ0eSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0
eVNob3dQcm9wZXJ0eSh0aGlzLCB0aGlzLl9wcm9wZXJ0eSk7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsZXQgc291cmNl
Q29kZSA9IG93bmVyUnVsZS5zb3VyY2VDb2RlTG9jYXRpb24uc291cmNlQ29kZTsKKyAgICAgICAg
ICAgICAgICBsZXQge3N0YXJ0TGluZSwgc3RhcnRDb2x1bW59ID0gZWZmZWN0aXZlUHJvcGVydHku
c3R5bGVTaGVldFRleHRSYW5nZTsKKyAgICAgICAgICAgICAgICBXSS5zaG93U291cmNlQ29kZUxv
Y2F0aW9uKHNvdXJjZUNvZGUuY3JlYXRlU291cmNlQ29kZUxvY2F0aW9uKHN0YXJ0TGluZSwgc3Rh
cnRDb2x1bW4pLCB7CisgICAgICAgICAgICAgICAgICAgIGlnbm9yZU5ldHdvcmtUYWI6IHRydWUs
CisgICAgICAgICAgICAgICAgICAgIGlnbm9yZVNlYXJjaFRhYjogdHJ1ZSwKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpZiAoZWZmZWN0aXZlUHJv
cGVydHkgJiYgb3duZXJSdWxlKQorICAgICAgICAgICAgICAgIGFycm93RWxlbWVudC50aXRsZSA9
IFdJLlVJU3RyaW5nKCJPcHRpb24tY2xpY2sgdG8gc2hvdyBzb3VyY2UiKTsKKyAgICAgICAgfQor
CiAgICAgICAgIHRoaXMudXBkYXRlU3RhdHVzKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WYXJpYWJsZXMuY3NzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmFyaWFibGVzLmNzcwppbmRl
eCAyODgzNzJjOTc4MzhjM2MyMjk0MmNiMGM5NGFmODRjNmE1MGNkZjJhLi4yYTc2MjE2NTRiNDg1
OGUwZDgwZjQxM2I1MzBhMDhjZDVkMzc5ZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WYXJpYWJsZXMuY3NzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1ZhcmlhYmxlcy5jc3MKQEAgLTEyMyw2ICsx
MjMsOSBAQAogICAgIC0tbmF2aWdhdGlvbi1iYXItaGVpZ2h0OiAyOXB4OwogCiAgICAgLS1zbGlk
ZXItaGVpZ2h0OiAxMXB4OworCisgICAgLS1jc3MtZGVjbGFyYXRpb24tdmVydGljYWwtcGFkZGlu
ZzogNHB4OworICAgIC0tY3NzLWRlY2xhcmF0aW9uLWhvcml6b250YWwtcGFkZGluZzogNnB4Owog
fQogCiBib2R5LndpbmRvdy1pbmFjdGl2ZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349916</attachid>
            <date>2018-09-17 12:23:05 -0700</date>
            <delta_ts>2018-09-20 16:52:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183627-20180917122304.patch</filename>
            <type>text/plain</type>
            <size>35186</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDM3YzMxODFiZDFlMjZjZjgzOTJlMWQyNTNlNWJl
NTZkN2RhZGQ1MjIuLjljODI0Yjg1MTlkZjk0ZDU0ZDZmYzA3MmI5NWUxYThkOGI5ZTFmOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTA5LTE3ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
dHlsZXMgUmVkZXNpZ246IHJld29yayBDb21wdXRlZCBwYW5lbCB0byB1c2UgU3ByZWFkc2hlZXQg
Y2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwuanM6CisgICAg
ICAgIChXSS5Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsKToKKyAgICAgICAgKFdJLkNvbXB1dGVk
U3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLnJlZnJlc2gpOgorICAgICAgICAoV0kuQ29tcHV0
ZWRTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuYXBwbHlGaWx0ZXIpOgorICAgICAgICAoV0ku
Q29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuc3ByZWFkc2hlZXRDU1NTdHlsZURl
Y2xhcmF0aW9uRWRpdG9yU2hvd1Byb3BlcnR5KToKKyAgICAgICAgKFdJLkNvbXB1dGVkU3R5bGVE
ZXRhaWxzUGFuZWwucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQ29tcHV0
ZWRTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuZmlsdGVyRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9jb21wdXRlZFN0eWxlU2hv
d0FsbENoZWNrYm94VmFsdWVDaGFuZ2VkKToKKyAgICAgICAgKFdJLkNvbXB1dGVkU3R5bGVEZXRh
aWxzUGFuZWwucHJvdG90eXBlLl9oYW5kbGVQcm9wZXJ0aWVzU2VjdGlvbkNvbGxhcHNlZFN0YXRl
Q2hhbmdlZCk6CisgICAgICAgIChXSS5Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlw
ZS5faGFuZGxlVmFyaWFibGVzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAg
IChXSS5Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5faGFuZGxlRWRpdG9yRmls
dGVyQXBwbGllZCk6CisgICAgICAgIChXSS5Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3Rv
dHlwZS5jc3NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvclNob3dQcm9wZXJ0eS5kZWxlZ2F0ZVNo
b3dQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXSS5Db21wdXRlZFN0eWxlRGV0YWlsc1Bh
bmVsLnByb3RvdHlwZS5jc3NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvclNob3dQcm9wZXJ0eSk6
IERlbGV0ZWQuCisgICAgICAgIFJlcGxhY2UgQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3Ig
d2l0aCBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5q
czoKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvcik6Cisg
ICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBl
LmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0
aW9uRWRpdG9yLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NT
dHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3RvdHlwZS5zZXQgc2hvd3NJbXBsaWNpdFByb3BlcnRp
ZXMpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnBy
b3RvdHlwZS5zZXQgYWx3YXlzU2hvd1Byb3BlcnR5TmFtZXMpOgorICAgICAgICAoV0kuU3ByZWFk
c2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3RvdHlwZS5zZXQgcHJvcGVydHlWaXNp
YmlsaXR5TW9kZSk6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25F
ZGl0b3IucHJvdG90eXBlLnNldCBoaWRlRmlsdGVyTm9uTWF0Y2hpbmdQcm9wZXJ0aWVzKToKKyAg
ICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5cGUu
c2V0IHNvcnRQcm9wZXJ0aWVzQnlOYW1lKTogQWRkZWQuCisgICAgICAgIChXSS5TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLmdldCBwcm9wZXJ0aWVzVG9SZW5k
ZXIpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnBy
b3RvdHlwZS5oaWdobGlnaHRQcm9wZXJ0eSk6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLmFwcGx5RmlsdGVyKToKKyAgICAgICAgKFdJ
LlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5cGUuc3ByZWFkc2hl
ZXRTdHlsZVByb3BlcnR5U2hvd1Byb3BlcnR5KToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NT
U3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5cGUuX3VwZGF0ZVN0eWxlTG9jayk6CisgICAg
ICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLmdl
dCBfcHJvcGVydGllc1RvUmVuZGVyKTogRGVsZXRlZC4KKyAgICAgICAgQ3JlYXRlIHNldHRlcnMg
Zm9yIHRoZSAic3BlY2lhbCIgZnVuY3Rpb25hbGl0eSByZXF1aXJlZCBieSB0aGUgQ29tcHV0ZWQg
cGFuZWwgYW5kIHRpZSB0aGVtCisgICAgICAgIGludG8gdGhlIGxvZ2ljIHRoYXQgZGV0ZXJtaW5l
cyB3aGF0IHByb3BlcnRpZXMgYXJlIHJlbmRlcmVkLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanM6CisgICAgICAgIChXSS5TcHJlYWRz
aGVldFN0eWxlUHJvcGVydHkucHJvdG90eXBlLl91cGRhdGUpOgorICAgICAgICBDcmVhdGUgZ28t
dG8gYXJyb3cgaWYgdGhlIHByb3BlcnR5IGhhcyBhIHNob3J0aGFuZCB2ZXJzaW9uIG9yIGEgc291
cmNlIGNvZGUgbG9jYXRpb24uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dlbmVy
YWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXSS5HZW5lcmFsU3R5bGVE
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgRG9u
J3QgcmVhcHBseSB0aGUgZmlsdGVyIGFmdGVyIHJlZnJlc2hpbmcsIGFzIHRoZSBjdXJyZW50IHBh
bmVsIHdpbGwgaGFuZGxlIGFwcGx5aW5nIGl0LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmNzczoKKyAgICAgICAgKC5kZXRhaWxzLXNl
Y3Rpb246bWF0Y2hlcyguY29tcHV0ZWQtc3R5bGUtcHJvcGVydGllcywgLmNvbXB1dGVkLXN0eWxl
LWJveC1tb2RlbCk6bm90KC5jb2xsYXBzZWQpID4gOm1hdGNoZXMoLmhlYWRlciwgLmNvbnRlbnQp
KToKKyAgICAgICAgKC5jb21wdXRlZC1zdHlsZS1wcm9wZXJ0aWVzIC5wcm9wZXJ0eSAuZ28tdG8t
YXJyb3cpOgorICAgICAgICAoLmNvbXB1dGVkLXN0eWxlLXByb3BlcnRpZXMgLnByb3BlcnR5Omhv
dmVyIC5nby10by1hcnJvdyk6CisgICAgICAgICguY29tcHV0ZWQtc3R5bGUtcHJvcGVydGllcy5k
ZXRhaWxzLXNlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoLmRldGFpbHMtc2VjdGlvbiA+IC5j
b250ZW50ID4gLmdyb3VwID4gLnJvdyAuQ29kZU1pcnJvci1jb2RlIHByZSAuZ28tdG8tYXJyb3cp
OiBEZWxldGVkLgorICAgICAgICAoLmRldGFpbHMtc2VjdGlvbiA+IC5jb250ZW50ID4gLmdyb3Vw
ID4gLnJvdyAuQ29kZU1pcnJvci1jb2RlIHByZTpob3ZlciAuZ28tdG8tYXJyb3cpOiBEZWxldGVk
LgorICAgICAgICAoLmRldGFpbHMtc2VjdGlvbi5zdHlsZS1ib3gtbW9kZWw6bm90KC5jb2xsYXBz
ZWQpID4gOm1hdGNoZXMoLmhlYWRlciwgLmNvbnRlbnQpKTogRGVsZXRlZC4KKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmNzczoKKyAgICAgICAgKC5kZXRhaWxz
LXNlY3Rpb24uY29tcHV0ZWQtc3R5bGUtcHJvcGVydGllczpub3QoLmNvbGxhcHNlZCkgPiAuaGVh
ZGVyKTogRGVsZXRlZC4KKyAgICAgICAgQ29uc29saWRhdGUgQ29tcHV0ZWQgcGFuZWwgc3R5bGVz
IHRvIGl0J3MgcmVzcGVjdGl2ZSBDU1MgZmlsZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLmNzczoKKyAgICAgICAg
KC5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IpOgorICAgICAgICAoLnNwcmVh
ZHNoZWV0LXN0eWxlLWRlY2xhcmF0aW9uLWVkaXRvciAucHJvcGVydHk6bWF0Y2hlcyguaW1wbGlj
aXQsIC5ub3QtaW5oZXJpdGVkKSAuY29udGVudCA+ICopOgorICAgICAgICAoLnNwcmVhZHNoZWV0
LXN0eWxlLWRlY2xhcmF0aW9uLWVkaXRvciAucHJvcGVydHkubm90LWluaGVyaXRlZCAuY29udGVu
dCA+ICopOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hl
ZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5jc3M6CisgICAgICAgICguc3ByZWFkc2hlZXQt
Y3NzLWRlY2xhcmF0aW9uKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1ZhcmlhYmxl
cy5jc3M6CisgICAgICAgICg6cm9vdCk6CisgICAgICAgIE1vdmUgYGNzcy1kZWNsYXJhdGlvbmAg
cGFkZGluZyB2YXJpYWJsZXMgc28gdGhleSBjYW4gYmUgdXNlZCBieSBTcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZGl0b3IKKyAgICAgICAgd2l0aG91dCBhIHBhcmVudCBTcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9TcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwuY3NzOgorICAgICAgICAoLnN0
eWxlLXNwcmVhZHNoZWV0IC5zdHlsZS1ydWxlKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1z
cHJlYWRzaGVldCAuc2VsZWN0b3ItbGluZSk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3By
ZWFkc2hlZXQgLnNlbGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVl
dCA6bWF0Y2hlcyguc2VsZWN0b3IgLm1hdGNoZWQsIC5zZWxlY3Rvcjpmb2N1cykpOiBEZWxldGVk
LgorICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0IC5uYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KC5zdHlsZS1zcHJlYWRzaGVldCAudmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoLnN0eWxlLXNw
cmVhZHNoZWV0IDptYXRjaGVzKC5zZWxlY3RvciwgLm5hbWUsIC52YWx1ZSkpOiBEZWxldGVkLgor
ICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0IDptYXRjaGVzKC5zZWxlY3RvciwgLm5hbWUsIC52
YWx1ZSk6Zm9jdXMpOiBEZWxldGVkLgorICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0IC5zZWxl
Y3Rvci1pbmxpbmUpOiBEZWxldGVkLgorICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0IC5wcm9w
ZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgLnByb3BlcnR5LWRp
c2FibGVkLCk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgLnByb3BlcnR5
LWRpc2FibGVkIDptYXRjaGVzKC5uYW1lLCAudmFsdWUpKTogRGVsZXRlZC4KKyAgICAgICAgKC5z
dHlsZS1zcHJlYWRzaGVldCAuc3R5bGVzLXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgICguc3R5
bGUtc3ByZWFkc2hlZXQgOm1hdGNoZXMoYSwgLm5vZGUtbGluaykpOiBEZWxldGVkLgorICAgICAg
ICAoLnN0eWxlLXNwcmVhZHNoZWV0IDptYXRjaGVzKGEsIC5ub2RlLWxpbmspOmhvdmVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCAuZGVjbGFyYXRpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCBpbnB1dFt0eXBlPSJjaGVja2JveCJdKTog
RGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCBpbnB1dFt0eXBlPSJjaGVja2Jv
eCJdOm5vdCg6Y2hlY2tlZCkpOiBEZWxldGVkLgorICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0
IC5kZWNsYXJhdGlvbnM6aG92ZXIgaW5wdXRbdHlwZT0iY2hlY2tib3giXSk6IERlbGV0ZWQuCisg
ICAgICAgIERyaXZlLWJ5IGZpeDogcmVtb3ZlIHN0eWxlcyB0aGF0IGRvbid0IGFwcGx5IHRvIGFu
eXRoaW5nLgorCiAyMDE4LTA5LTE1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSRUdSRVNTSU9OOiBicmVha3BvaW50IGNvbnRleHQg
bWVudSBhcHBlYXJzIHR3aWNlIGluIERPTSB0cmVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1dGVkU3R5
bGVEZXRhaWxzUGFuZWwuY3NzCmluZGV4IGY3YWVjMDlkNTY1NmQzOTM4NGJkNGQyOTdlMTQxNTQ1
NDY5Y2Y5OTcuLmQ3NTQzYjAyM2E5MmZkMzI2ODA0YTY2OTM5YzJjNjI1YjljYzAzZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1dGVk
U3R5bGVEZXRhaWxzUGFuZWwuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwuY3NzCkBAIC0yMywxMSArMjMs
MTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0uY29tcHV0
ZWQtc3R5bGUtcHJvcGVydGllcy5kZXRhaWxzLXNlY3Rpb24geworLmRldGFpbHMtc2VjdGlvbjpt
YXRjaGVzKC5jb21wdXRlZC1zdHlsZS1wcm9wZXJ0aWVzLCAuY29tcHV0ZWQtc3R5bGUtYm94LW1v
ZGVsKTpub3QoLmNvbGxhcHNlZCkgPiA6bWF0Y2hlcyguaGVhZGVyLCAuY29udGVudCkgewogICAg
IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogfQogCi0uZGV0YWlscy1zZWN0aW9uID4gLmNvbnRl
bnQgPiAuZ3JvdXAgPiAucm93IC5Db2RlTWlycm9yLWNvZGUgcHJlIC5nby10by1hcnJvdyB7Cisu
Y29tcHV0ZWQtc3R5bGUtcHJvcGVydGllcyAucHJvcGVydHkgLmdvLXRvLWFycm93IHsKICAgICBk
aXNwbGF5OiBub25lOwogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICB3aWR0aDogMTJweDsK
QEAgLTM1LDEwICszNSw2IEBACiAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tOwogfQog
Ci0uZGV0YWlscy1zZWN0aW9uID4gLmNvbnRlbnQgPiAuZ3JvdXAgPiAucm93IC5Db2RlTWlycm9y
LWNvZGUgcHJlOmhvdmVyIC5nby10by1hcnJvdyB7CisuY29tcHV0ZWQtc3R5bGUtcHJvcGVydGll
cyAucHJvcGVydHk6aG92ZXIgLmdvLXRvLWFycm93IHsKICAgICBkaXNwbGF5OiBpbml0aWFsOwog
fQotCi0uZGV0YWlscy1zZWN0aW9uLnN0eWxlLWJveC1tb2RlbDpub3QoLmNvbGxhcHNlZCkgPiA6
bWF0Y2hlcyguaGVhZGVyLCAuY29udGVudCkgewotICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRl
OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwuanMKaW5kZXggYjI0
NTA0ZDRhZjA2YzM0MjcyZTk2YzYxNzkzYWU3NGU0NzE5Zjk1Ny4uMzhiOGNkODc4NjI0YzI5OWZm
YWM5Y2NlOWQzMDExNWU3MGI0ZDVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0
YWlsc1BhbmVsLmpzCkBAIC0zMSw0OCArMzEsMTEgQEAgV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQ
YW5lbCA9IGNsYXNzIENvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXSS5TdHlsZUQK
IAogICAgICAgICB0aGlzLl9jb21wdXRlZFN0eWxlU2hvd0FsbFNldHRpbmcgPSBuZXcgV0kuU2V0
dGluZygiY29tcHV0ZWQtc3R5bGUtc2hvdy1hbGwiLCBmYWxzZSk7CiAKLSAgICAgICAgdGhpcy5j
c3NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvclNob3VsZEFkZFByb3BlcnR5R29Ub0Fycm93cyA9
IHRydWU7CisgICAgICAgIHRoaXMuX2ZpbHRlclRleHQgPSBudWxsOwogICAgIH0KIAogICAgIC8v
IFB1YmxpYwogCi0gICAgY3NzU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3JTaG93UHJvcGVydHko
cHJvcGVydHksIHNob3dTb3VyY2UpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBkZWxlZ2F0ZVNo
b3dQcm9wZXJ0eSgpIHsKLSAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fZGVsZWdhdGUuY29t
cHV0ZWRTdHlsZURldGFpbHNQYW5lbFNob3dQcm9wZXJ0eSA9PT0gImZ1bmN0aW9uIikKLSAgICAg
ICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5jb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsU2hvd1By
b3BlcnR5KHByb3BlcnR5KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghc2hvd1NvdXJjZSkg
ewotICAgICAgICAgICAgZGVsZWdhdGVTaG93UHJvcGVydHkuY2FsbCh0aGlzKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBlZmZlY3RpdmVQcm9wZXJ0eSA9
IHRoaXMuX25vZGVTdHlsZXMuZWZmZWN0aXZlUHJvcGVydHlGb3JOYW1lKHByb3BlcnR5Lm5hbWUp
OwotICAgICAgICBpZiAoIWVmZmVjdGl2ZVByb3BlcnR5IHx8ICFlZmZlY3RpdmVQcm9wZXJ0eS5z
dHlsZVNoZWV0VGV4dFJhbmdlKSB7Ci0gICAgICAgICAgICBpZiAoIWVmZmVjdGl2ZVByb3BlcnR5
LnJlbGF0ZWRTaG9ydGhhbmRQcm9wZXJ0eSkgewotICAgICAgICAgICAgICAgIGRlbGVnYXRlU2hv
d1Byb3BlcnR5LmNhbGwodGhpcyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgZWZmZWN0aXZlUHJvcGVydHkgPSBlZmZlY3RpdmVQcm9wZXJ0eS5y
ZWxhdGVkU2hvcnRoYW5kUHJvcGVydHk7Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgb3duZXJS
dWxlID0gZWZmZWN0aXZlUHJvcGVydHkub3duZXJTdHlsZS5vd25lclJ1bGU7Ci0gICAgICAgIGlm
ICghb3duZXJSdWxlKSB7Ci0gICAgICAgICAgICBkZWxlZ2F0ZVNob3dQcm9wZXJ0eS5jYWxsKHRo
aXMpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IHNvdXJj
ZUNvZGUgPSBvd25lclJ1bGUuc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGU7Ci0gICAgICAg
IGxldCB7c3RhcnRMaW5lLCBzdGFydENvbHVtbn0gPSBlZmZlY3RpdmVQcm9wZXJ0eS5zdHlsZVNo
ZWV0VGV4dFJhbmdlOwotCi0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBp
Z25vcmVOZXR3b3JrVGFiOiB0cnVlLAotICAgICAgICAgICAgaWdub3JlU2VhcmNoVGFiOiB0cnVl
LAotICAgICAgICB9OwotICAgICAgICBXSS5zaG93U291cmNlQ29kZUxvY2F0aW9uKHNvdXJjZUNv
ZGUuY3JlYXRlU291cmNlQ29kZUxvY2F0aW9uKHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4pLCBvcHRp
b25zKTsKLSAgICB9Ci0KICAgICByZWZyZXNoKHNpZ25pZmljYW50Q2hhbmdlKQogICAgIHsKICAg
ICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGRvIGEgcmVidWlsZCBvbiBzaWduaWZpY2FudCBjaGFu
Z2VzLiBPdGhlciBjaGFuZ2VzIGFyZSBoYW5kbGVkCkBAIC04MywxOSArNDYsMzYgQEAgV0kuQ29t
cHV0ZWRTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIENvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwg
ZXh0ZW5kcyBXSS5TdHlsZUQKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNU
ZXh0RWRpdG9yLnN0eWxlID0gdGhpcy5ub2RlU3R5bGVzLmNvbXB1dGVkU3R5bGU7CisgICAgICAg
IHRoaXMuX3Byb3BlcnRpZXNTZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVu
IiwgIXRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLnByb3BlcnRpZXNUb1JlbmRlci5sZW5ndGgp
OworCiAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3Iuc3R5bGUgPSB0aGlzLm5vZGVT
dHlsZXMuY29tcHV0ZWRTdHlsZTsKKyAgICAgICAgdGhpcy5fdmFyaWFibGVzU2VjdGlvbi5lbGVt
ZW50LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsICF0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9y
LnByb3BlcnRpZXNUb1JlbmRlci5sZW5ndGgpOworCiAgICAgICAgIHRoaXMuX2JveE1vZGVsRGlh
Z3JhbVJvdy5ub2RlU3R5bGVzID0gdGhpcy5ub2RlU3R5bGVzOwogCisgICAgICAgIGlmICh0aGlz
Ll9maWx0ZXJUZXh0KQorICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcih0aGlzLl9maWx0ZXJU
ZXh0KTsKKwogICAgICAgICBzdXBlci5yZWZyZXNoKCk7CisgICAgfQorCisgICAgYXBwbHlGaWx0
ZXIoZmlsdGVyVGV4dCkKKyAgICB7CisgICAgICAgIHRoaXMuX2ZpbHRlclRleHQgPSBmaWx0ZXJU
ZXh0OwogCi0gICAgICAgIHRoaXMuX3ZhcmlhYmxlc1NlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3Qu
dG9nZ2xlKCJoaWRkZW4iLCAhdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRvci5zaG93blByb3BlcnRp
ZXMubGVuZ3RoKTsKKyAgICAgICAgaWYgKCF0aGlzLmRpZEluaXRpYWxMYXlvdXQpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IuYXBwbHlG
aWx0ZXIoZmlsdGVyVGV4dCk7CisgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3IuYXBw
bHlGaWx0ZXIoZmlsdGVyVGV4dCk7CiAgICAgfQogCi0gICAgZmlsdGVyRGlkQ2hhbmdlKGZpbHRl
ckJhcikKKyAgICAvLyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgZGVsZWdh
dGUKKworICAgIHNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvclNob3dQcm9wZXJ0
eShlZGl0b3IsIHByb3BlcnR5KQogICAgIHsKLSAgICAgICAgbGV0IGZpbHRlclRleHQgPSBmaWx0
ZXJCYXIuZmlsdGVycy50ZXh0OwotICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5y
ZW1vdmVOb25NYXRjaGluZ1Byb3BlcnRpZXMoZmlsdGVyVGV4dCk7Ci0gICAgICAgIHRoaXMuX3Zh
cmlhYmxlc1RleHRFZGl0b3IucmVtb3ZlTm9uTWF0Y2hpbmdQcm9wZXJ0aWVzKGZpbHRlclRleHQp
OworICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUuY29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbFNo
b3dQcm9wZXJ0eSkKKyAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmNvbXB1dGVkU3R5bGVEZXRh
aWxzUGFuZWxTaG93UHJvcGVydHkocHJvcGVydHkpOwogICAgIH0KIAogICAgIGZvY3VzRmlyc3RT
ZWN0aW9uKCkKQEAgLTE0MiwyNCArMTIyLDI4IEBAIFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFu
ZWwgPSBjbGFzcyBDb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMgV0kuU3R5bGVECiAg
ICAgICAgIHRoaXMuX2NvbXB1dGVkU3R5bGVTaG93QWxsQ2hlY2tib3guYWRkRXZlbnRMaXN0ZW5l
cigiY2hhbmdlIiwgdGhpcy5fY29tcHV0ZWRTdHlsZVNob3dBbGxDaGVja2JveFZhbHVlQ2hhbmdl
ZC5iaW5kKHRoaXMpKTsKICAgICAgICAgY29tcHV0ZWRTdHlsZVNob3dBbGxMYWJlbC5hcHBlbmRD
aGlsZCh0aGlzLl9jb21wdXRlZFN0eWxlU2hvd0FsbENoZWNrYm94KTsKIAotICAgICAgICB0aGlz
Ll9wcm9wZXJ0aWVzVGV4dEVkaXRvciA9IG5ldyBXSS5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVk
aXRvcih0aGlzKTsKLSAgICAgICAgdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IucHJvcGVydHlW
aXNpYmlsaXR5TW9kZSA9IFdJLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLlByb3BlcnR5
VmlzaWJpbGl0eU1vZGUuSGlkZVZhcmlhYmxlczsKKyAgICAgICAgdGhpcy5fcHJvcGVydGllc1Rl
eHRFZGl0b3IgPSBuZXcgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yKHRo
aXMpOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5wcm9wZXJ0eVZpc2liaWxp
dHlNb2RlID0gV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLlByb3BlcnR5
VmlzaWJpbGl0eU1vZGUuSGlkZVZhcmlhYmxlczsKICAgICAgICAgdGhpcy5fcHJvcGVydGllc1Rl
eHRFZGl0b3Iuc2hvd3NJbXBsaWNpdFByb3BlcnRpZXMgPSB0aGlzLl9jb21wdXRlZFN0eWxlU2hv
d0FsbFNldHRpbmcudmFsdWU7CiAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLmFs
d2F5c1Nob3dQcm9wZXJ0eU5hbWVzID0gWyJkaXNwbGF5IiwgIndpZHRoIiwgImhlaWdodCJdOwot
ICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5zb3J0UHJvcGVydGllcyA9IHRydWU7
CisgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLmhpZGVGaWx0ZXJOb25NYXRjaGlu
Z1Byb3BlcnRpZXMgPSB0cnVlOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5z
b3J0UHJvcGVydGllc0J5TmFtZSA9IHRydWU7CisgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0
RWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9u
RWRpdG9yLkV2ZW50LkZpbHRlckFwcGxpZWQsIHRoaXMuX2hhbmRsZUVkaXRvckZpbHRlckFwcGxp
ZWQsIHRoaXMpOwogCiAgICAgICAgIGxldCBwcm9wZXJ0aWVzUm93ID0gbmV3IFdJLkRldGFpbHNT
ZWN0aW9uUm93OwogICAgICAgICBsZXQgcHJvcGVydGllc0dyb3VwID0gbmV3IFdJLkRldGFpbHNT
ZWN0aW9uR3JvdXAoW3Byb3BlcnRpZXNSb3ddKTsKLSAgICAgICAgbGV0IHByb3BlcnRpZXNTZWN0
aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJjb21wdXRlZC1zdHlsZS1wcm9wZXJ0aWVzIiwg
V0kuVUlTdHJpbmcoIlByb3BlcnRpZXMiKSwgW3Byb3BlcnRpZXNHcm91cF0sIGNvbXB1dGVkU3R5
bGVTaG93QWxsTGFiZWwpOwotICAgICAgICBwcm9wZXJ0aWVzU2VjdGlvbi5hZGRFdmVudExpc3Rl
bmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcy5f
aGFuZGxlUHJvcGVydGllc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMpOworICAg
ICAgICB0aGlzLl9wcm9wZXJ0aWVzU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiY29t
cHV0ZWQtc3R5bGUtcHJvcGVydGllcyIsIFdJLlVJU3RyaW5nKCJQcm9wZXJ0aWVzIiksIFtwcm9w
ZXJ0aWVzR3JvdXBdLCBjb21wdXRlZFN0eWxlU2hvd0FsbExhYmVsKTsKKyAgICAgICAgdGhpcy5f
cHJvcGVydGllc1NlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5EZXRhaWxzU2VjdGlvbi5FdmVu
dC5Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMuX2hhbmRsZVByb3BlcnRpZXNTZWN0aW9uQ29s
bGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhp
cy5fcHJvcGVydGllc1RleHRFZGl0b3IpOwogCiAgICAgICAgIHByb3BlcnRpZXNSb3cuZWxlbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5lbGVtZW50KTsKIAotICAg
ICAgICB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yID0gbmV3IFdJLkNTU1N0eWxlRGVjbGFyYXRp
b25UZXh0RWRpdG9yKHRoaXMpOwotICAgICAgICB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yLnBy
b3BlcnR5VmlzaWJpbGl0eU1vZGUgPSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5Q
cm9wZXJ0eVZpc2liaWxpdHlNb2RlLkhpZGVOb25WYXJpYWJsZXM7Ci0gICAgICAgIHRoaXMuX3Zh
cmlhYmxlc1RleHRFZGl0b3Iuc29ydFByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICB0aGlzLl92
YXJpYWJsZXNUZXh0RWRpdG9yID0gbmV3IFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlv
bkVkaXRvcih0aGlzKTsKKyAgICAgICAgdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRvci5wcm9wZXJ0
eVZpc2liaWxpdHlNb2RlID0gV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
LlByb3BlcnR5VmlzaWJpbGl0eU1vZGUuSGlkZU5vblZhcmlhYmxlczsKKyAgICAgICAgdGhpcy5f
dmFyaWFibGVzVGV4dEVkaXRvci5oaWRlRmlsdGVyTm9uTWF0Y2hpbmdQcm9wZXJ0aWVzID0gdHJ1
ZTsKKyAgICAgICAgdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRvci5zb3J0UHJvcGVydGllc0J5TmFt
ZSA9IHRydWU7CisgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3IuYWRkRXZlbnRMaXN0
ZW5lcihXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuRXZlbnQuRmlsdGVy
QXBwbGllZCwgdGhpcy5faGFuZGxlRWRpdG9yRmlsdGVyQXBwbGllZCwgdGhpcyk7CiAKICAgICAg
ICAgbGV0IHZhcmlhYmxlc1JvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKICAgICAgICAg
bGV0IHZhcmlhYmxlc0dyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3ZhcmlhYmxl
c1Jvd10pOwpAQCAtMTcwLDE3ICsxNTQsMjQgQEAgV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5l
bCA9IGNsYXNzIENvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXSS5TdHlsZUQKIAog
ICAgICAgICB2YXJpYWJsZXNSb3cuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl92YXJpYWJsZXNU
ZXh0RWRpdG9yLmVsZW1lbnQpOwogCi0gICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChw
cm9wZXJ0aWVzU2VjdGlvbi5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX3Byb3BlcnRpZXNTZWN0aW9uLmVsZW1lbnQpOwogICAgICAgICB0aGlzLmVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5fdmFyaWFibGVzU2VjdGlvbi5lbGVtZW50KTsKIAogICAgICAg
ICB0aGlzLl9ib3hNb2RlbERpYWdyYW1Sb3cgPSBuZXcgV0kuQm94TW9kZWxEZXRhaWxzU2VjdGlv
blJvdzsKIAogICAgICAgICBsZXQgYm94TW9kZWxHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
bkdyb3VwKFt0aGlzLl9ib3hNb2RlbERpYWdyYW1Sb3ddKTsKLSAgICAgICAgbGV0IGJveE1vZGVs
U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigic3R5bGUtYm94LW1vZGVsIiwgV0kuVUlT
dHJpbmcoIkJveCBNb2RlbCIpLCBbYm94TW9kZWxHcm91cF0pOworICAgICAgICBsZXQgYm94TW9k
ZWxTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJjb21wdXRlZC1zdHlsZS1ib3gtbW9k
ZWwiLCBXSS5VSVN0cmluZygiQm94IE1vZGVsIiksIFtib3hNb2RlbEdyb3VwXSk7CiAKICAgICAg
ICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGJveE1vZGVsU2VjdGlvbi5lbGVtZW50KTsKICAg
ICB9CiAKKyAgICBmaWx0ZXJEaWRDaGFuZ2UoZmlsdGVyQmFyKQorICAgIHsKKyAgICAgICAgc3Vw
ZXIuZmlsdGVyRGlkQ2hhbmdlKGZpbHRlckJhcik7CisKKyAgICAgICAgdGhpcy5hcHBseUZpbHRl
cihmaWx0ZXJCYXIuZmlsdGVycy50ZXh0KTsKKyAgICB9CisKICAgICAvLyBQcml2YXRlCiAKICAg
ICBfY29tcHV0ZWRTdHlsZVNob3dBbGxDaGVja2JveFZhbHVlQ2hhbmdlZChldmVudCkKQEAgLTE4
OCwxOSArMTc5LDMwIEBAIFdJLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBDb21w
dXRlZFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMgV0kuU3R5bGVECiAgICAgICAgIGxldCBjaGVj
a2VkID0gdGhpcy5fY29tcHV0ZWRTdHlsZVNob3dBbGxDaGVja2JveC5jaGVja2VkOwogICAgICAg
ICB0aGlzLl9jb21wdXRlZFN0eWxlU2hvd0FsbFNldHRpbmcudmFsdWUgPSBjaGVja2VkOwogICAg
ICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5zaG93c0ltcGxpY2l0UHJvcGVydGllcyA9
IGNoZWNrZWQ7Ci0gICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLnVwZGF0ZUxheW91
dCgpOwogICAgIH0KIAogICAgIF9oYW5kbGVQcm9wZXJ0aWVzU2VjdGlvbkNvbGxhcHNlZFN0YXRl
Q2hhbmdlZChldmVudCkKICAgICB7CiAgICAgICAgIGlmIChldmVudCAmJiBldmVudC5kYXRhICYm
ICFldmVudC5kYXRhLmNvbGxhcHNlZCkKLSAgICAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0
RWRpdG9yLnJlZnJlc2goKTsKKyAgICAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9y
Lm5lZWRzTGF5b3V0KCk7CiAgICAgfQogCiAgICAgX2hhbmRsZVZhcmlhYmxlc1NlY3Rpb25Db2xs
YXBzZWRTdGF0ZUNoYW5nZWQoZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoZXZlbnQgJiYgZXZl
bnQuZGF0YSAmJiAhZXZlbnQuZGF0YS5jb2xsYXBzZWQpCi0gICAgICAgICAgICB0aGlzLl92YXJp
YWJsZXNUZXh0RWRpdG9yLnJlZnJlc2goKTsKKyAgICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1Rl
eHRFZGl0b3IubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlRWRpdG9yRmlsdGVy
QXBwbGllZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCBzZWN0aW9uID0gbnVsbDsKKyAgICAg
ICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IpCisgICAg
ICAgICAgICBzZWN0aW9uID0gdGhpcy5fcHJvcGVydGllc1NlY3Rpb247CisgICAgICAgIGVsc2Ug
aWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRvcikKKyAgICAgICAg
ICAgIHNlY3Rpb24gPSB0aGlzLl92YXJpYWJsZXNTZWN0aW9uOworCisgICAgICAgIGlmIChzZWN0
aW9uKQorICAgICAgICAgICAgc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImhpZGRl
biIsICFldmVudC5kYXRhLm1hdGNoZXMpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9u
LmNzcwppbmRleCA0MzViMzUwODA5ZjQ1ZGI1OTFlN2Q3MTk4MjJjODg4ODIzNzNmYWRhLi4yNGJm
OTlhYmY2YWM5NDdmMjYwOGJiZmY2YzQ3ZWEwNjhiZWRmMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5jc3MKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rp
b24uY3NzCkBAIC0xMDcsMTAgKzEwNyw2IEBAIGJvZHlbZGlyPXJ0bF0gLmRldGFpbHMtc2VjdGlv
biA+IC5oZWFkZXIgPiAub3B0aW9ucyB7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhz
bCgwLCAwJSwgODclKTsKIH0KIAotLmRldGFpbHMtc2VjdGlvbi5jb21wdXRlZC1zdHlsZS1wcm9w
ZXJ0aWVzOm5vdCguY29sbGFwc2VkKSA+IC5oZWFkZXIgewotICAgIGJhY2tncm91bmQtY29sb3I6
IGhzbCgwLCAwJSwgMTAwJSk7Ci19Ci0KIC5kZXRhaWxzLXNlY3Rpb24gPiAuaGVhZGVyOjpiZWZv
cmUgewogICAgIGRpc3BsYXk6IGJsb2NrOwogICAgIHdpZHRoOiAyMXB4OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR2VuZXJhbFN0eWxlRGV0
YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0dlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanMKaW5kZXggNDA5ODdiYjg3
Nzc4YmJjYzk3ZWI5YjI4MDAyNWQxYmQzNDViNzE4OC4uOTcwOGVjNWI4N2RkMGE0MTI1MmU2Yzhi
MzE5YWU0ODUwNTJkMjgyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HZW5lcmFsU3R5bGVEZXRh
aWxzU2lkZWJhclBhbmVsLmpzCkBAIC0xNjUsOCArMTY1LDYgQEAgV0kuR2VuZXJhbFN0eWxlRGV0
YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIEdlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwg
ZXh0ZW4KICAgICAgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLl9mb3JjZWRQc2V1ZG9DbGFzc0NvbnRhaW5lcik7CiAgICAgICAgIH0KIAotICAgICAgICB0
aGlzLl9wYW5lbC5hZGRFdmVudExpc3RlbmVyKFdJLlN0eWxlRGV0YWlsc1BhbmVsLkV2ZW50LlJl
ZnJlc2hlZCwgdGhpcy5fZmlsdGVyRGlkQ2hhbmdlLCB0aGlzKTsKLQogICAgICAgICB0aGlzLl9z
aG93UGFuZWwodGhpcy5fcGFuZWwpOwogCiAgICAgICAgIGxldCBvcHRpb25zQ29udGFpbmVyID0g
dGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAib3B0aW9ucy1jb250YWluZXIiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVh
ZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0
b3IuY3NzCmluZGV4IGY4Zjk2MGUyZDdhNDI2NmFkY2JmMDI5OWNhMTVlMWM4ODVmODU3YzQuLjZi
ZWJiODU2YjRjZTNhMTRiN2NhYjVmNzgwZjk2ODE0MGY3ZTg2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVE
ZWNsYXJhdGlvbkVkaXRvci5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLmNzcwpAQCAt
MjYsNiArMjYsMTAgQEAKIC5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3Igewog
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICBjbGVhcjogYm90aDsKKyAgICBmb250LWZhbWls
eTogTWVubG8sIG1vbm9zcGFjZTsKKyAgICBmb250LXNpemU6IDExcHg7CisgICAgY29sb3I6IGhz
bCgwLCAwJSwgNzAlKTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwogfQogCiAuc3By
ZWFkc2hlZXQtc3R5bGUtZGVjbGFyYXRpb24tZWRpdG9yIC5wcm9wZXJ0eSB7CkBAIC0xMTYsNyAr
MTIwLDcgQEAKICAgICAtd2Via2l0LWNsaXAtcGF0aDogcG9seWdvbigwJSA1MCUsIDZweCAwJSwg
MTAwJSAwJSwgMTAwJSAxMDAlLCA2cHggMTAwJSk7CiB9CiAKLS5zcHJlYWRzaGVldC1zdHlsZS1k
ZWNsYXJhdGlvbi1lZGl0b3IgLnByb3BlcnR5Lm5vdC1pbmhlcml0ZWQgLmNvbnRlbnQgPiAqIHsK
Ky5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IgLnByb3BlcnR5Om1hdGNoZXMo
LmltcGxpY2l0LCAubm90LWluaGVyaXRlZCkgLmNvbnRlbnQgPiAqIHsKICAgICBvcGFjaXR5OiAw
LjU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNs
YXJhdGlvbkVkaXRvci5qcwppbmRleCBiYzZkYmI1NDI2Y2U0NmI4YzZmOWU0Njk0Yjk5MjdkNDQz
NWE3NzAxLi4wNzBiZDZjYTY5ZGIzOTc3ODM4M2VhMzVhNzYyZWExNWQ2YjU0NjdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
LmpzCkBAIC0zNSw4ICszNSwxNCBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25F
ZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB0
aGlzLnN0eWxlID0gc3R5bGU7CiAgICAgICAgIHRoaXMuX3Byb3BlcnR5Vmlld3MgPSBbXTsKIAot
ICAgICAgICB0aGlzLl9pbmxpbmVTd2F0Y2hBY3RpdmUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5f
Zm9jdXNlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9pbmxpbmVTd2F0Y2hBY3RpdmUgPSBmYWxz
ZTsKKworICAgICAgICB0aGlzLl9zaG93c0ltcGxpY2l0UHJvcGVydGllcyA9IGZhbHNlOworICAg
ICAgICB0aGlzLl9hbHdheXNTaG93UHJvcGVydHlOYW1lcyA9IG5ldyBTZXQ7CisgICAgICAgIHRo
aXMuX3Byb3BlcnR5VmlzaWJpbGl0eU1vZGUgPSBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFy
YXRpb25FZGl0b3IuUHJvcGVydHlWaXNpYmlsaXR5TW9kZS5TaG93QWxsOworICAgICAgICB0aGlz
Ll9oaWRlRmlsdGVyTm9uTWF0Y2hpbmdQcm9wZXJ0aWVzID0gZmFsc2U7CisgICAgICAgIHRoaXMu
X3NvcnRQcm9wZXJ0aWVzQnlOYW1lID0gZmFsc2U7CiAKICAgICAgICAgdGhpcy5fcHJvcGVydHlQ
ZW5kaW5nU3RhcnRFZGl0aW5nID0gbnVsbDsKICAgICAgICAgdGhpcy5fcGVuZGluZ0FkZEJsYW5r
UHJvcGVydHlJbmRleE9mZnNldCA9IE5hTjsKQEAgLTQ3LDcgKzUzLDcgQEAgV0kuU3ByZWFkc2hl
ZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHlsZURl
Y2xhcmF0aW9uRWQKIAogICAgIGluaXRpYWxMYXlvdXQoKQogICAgIHsKLSAgICAgICAgaWYgKCF0
aGlzLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICBpZiAoIXRoaXMuX3N0eWxlIHx8ICF0aGlzLl9z
dHlsZS5lZGl0YWJsZSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLmVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCAoKSA9PiB7IHRoaXMuZm9jdXNlZCA9IHRydWU7
IH0sIHRydWUpOwpAQCAtNzEsNyArNzcsNyBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFy
YXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogCiAg
ICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogCi0gICAgICAgIGxldCBwcm9w
ZXJ0aWVzID0gdGhpcy5fcHJvcGVydGllc1RvUmVuZGVyOworICAgICAgICBsZXQgcHJvcGVydGll
cyA9IHRoaXMucHJvcGVydGllc1RvUmVuZGVyOwogICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NM
aXN0LnRvZ2dsZSgibm8tcHJvcGVydGllcyIsICFwcm9wZXJ0aWVzLmxlbmd0aCk7CiAKICAgICAg
ICAgLy8gRklYTUU6IE9ubHkgcmUtbGF5b3V0IHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gbW9k
aWZpZWQgYW5kIHByZXNlcnZlIGZvY3VzIHdoZW5ldmVyIHBvc3NpYmxlLgpAQCAtMTU0LDYgKzE2
MCw3OCBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBT
cHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB0aGlzLl91cGRhdGVTdHls
ZUxvY2soKTsKICAgICB9CiAKKyAgICBzZXQgc2hvd3NJbXBsaWNpdFByb3BlcnRpZXModmFsdWUp
CisgICAgeworICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX3Nob3dzSW1wbGljaXRQcm9wZXJ0
aWVzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX3Nob3dzSW1wbGljaXRQ
cm9wZXJ0aWVzID0gdmFsdWU7CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0K
KworICAgIHNldCBhbHdheXNTaG93UHJvcGVydHlOYW1lcyhwcm9wZXJ0eU5hbWVzKQorICAgIHsK
KyAgICAgICAgdGhpcy5fYWx3YXlzU2hvd1Byb3BlcnR5TmFtZXMgPSBuZXcgU2V0KHByb3BlcnR5
TmFtZXMpOworCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICBzZXQg
cHJvcGVydHlWaXNpYmlsaXR5TW9kZShwcm9wZXJ0eVZpc2liaWxpdHlNb2RlKQorICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX3Byb3BlcnR5VmlzaWJpbGl0eU1vZGUgPT09IHByb3BlcnR5VmlzaWJp
bGl0eU1vZGUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcHJvcGVydHlW
aXNpYmlsaXR5TW9kZSA9IHByb3BlcnR5VmlzaWJpbGl0eU1vZGU7CisKKyAgICAgICAgdGhpcy5u
ZWVkc0xheW91dCgpOworICAgIH0KKworICAgIHNldCBoaWRlRmlsdGVyTm9uTWF0Y2hpbmdQcm9w
ZXJ0aWVzKHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9oaWRlRmls
dGVyTm9uTWF0Y2hpbmdQcm9wZXJ0aWVzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHRoaXMuX2hpZGVGaWx0ZXJOb25NYXRjaGluZ1Byb3BlcnRpZXMgPSB2YWx1ZTsKKworICAgICAg
ICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgc2V0IHNvcnRQcm9wZXJ0aWVzQnlO
YW1lKHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9zb3J0UHJvcGVy
dGllc0J5TmFtZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9zb3J0UHJv
cGVydGllc0J5TmFtZSA9IHZhbHVlOworICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAg
fQorCisgICAgZ2V0IHByb3BlcnRpZXNUb1JlbmRlcigpCisgICAgeworICAgICAgICBsZXQgcHJv
cGVydGllcyA9IFtdOworICAgICAgICBpZiAoIXRoaXMuX3N0eWxlKQorICAgICAgICAgICAgcmV0
dXJuIHByb3BlcnRpZXM7CisKKyAgICAgICAgaWYgKHRoaXMuX3N0eWxlLl9zdHlsZVNoZWV0VGV4
dFJhbmdlKQorICAgICAgICAgICAgcHJvcGVydGllcyA9IHRoaXMuX3N0eWxlLmFsbFZpc2libGVQ
cm9wZXJ0aWVzOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcm9wZXJ0aWVzID0gdGhpcy5f
c3R5bGUuYWxsUHJvcGVydGllczsKKworICAgICAgICBpZiAodGhpcy5fc29ydFByb3BlcnRpZXNC
eU5hbWUpCisgICAgICAgICAgICBwcm9wZXJ0aWVzLnNvcnQoKGEsIGIpID0+IGEubmFtZS5leHRl
bmRlZExvY2FsZUNvbXBhcmUoYi5uYW1lKSk7CisKKyAgICAgICAgcmV0dXJuIHByb3BlcnRpZXMu
ZmlsdGVyKChwcm9wZXJ0eSkgPT4geworICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS52YXJpYWJs
ZSAmJiB0aGlzLl9wcm9wZXJ0eVZpc2liaWxpdHlNb2RlID09PSBXSS5TcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZGl0b3IuUHJvcGVydHlWaXNpYmlsaXR5TW9kZS5IaWRlTm9uVmFyaWFi
bGVzKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHBy
b3BlcnR5LnZhcmlhYmxlICYmIHRoaXMuX3Byb3BlcnR5VmlzaWJpbGl0eU1vZGUgPT09IFdJLlNw
cmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5Qcm9wZXJ0eVZpc2liaWxpdHlNb2Rl
LkhpZGVWYXJpYWJsZXMpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg
ICAgICByZXR1cm4gIXByb3BlcnR5LmltcGxpY2l0IHx8IHRoaXMuX3Nob3dzSW1wbGljaXRQcm9w
ZXJ0aWVzIHx8IHRoaXMuX2Fsd2F5c1Nob3dQcm9wZXJ0eU5hbWVzLmhhcyhwcm9wZXJ0eS5jYW5v
bmljYWxOYW1lKTsKKyAgICAgICAgfSk7CisgICAgfQorCisKICAgICBzdGFydEVkaXRpbmdGaXJz
dFByb3BlcnR5KCkKICAgICB7CiAgICAgICAgIGxldCBmaXJzdEVkaXRhYmxlUHJvcGVydHkgPSB0
aGlzLl9lZGl0YWJsZVByb3BlcnR5QWZ0ZXIoLTEpOwpAQCAtMjAxLDcgKzI3OSw3IEBAIFdJLlNw
cmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NT
U3R5bGVEZWNsYXJhdGlvbkVkCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH07
CiAKLSAgICAgICAgZm9yIChsZXQgY3NzUHJvcGVydHkgb2YgdGhpcy5zdHlsZS5wcm9wZXJ0aWVz
KSB7CisgICAgICAgIGZvciAobGV0IGNzc1Byb3BlcnR5IG9mIHRoaXMuX3N0eWxlLnByb3BlcnRp
ZXMpIHsKICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzTWF0Y2goY3NzUHJvcGVydHkpKSB7CiAg
ICAgICAgICAgICAgICAgbGV0IHByb3BlcnR5VmlldyA9IGNzc1Byb3BlcnR5Ll9fcHJvcGVydHlW
aWV3OwogICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZpZXcpIHsKQEAgLTIzMCw2ICszMDgs
MjkgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3MgU3By
ZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQKICAgICAgICAgdGhpcy5uZWVkc0xheW91dCgp
OwogICAgIH0KIAorICAgIGFwcGx5RmlsdGVyKGZpbHRlclRleHQpCisgICAgeworICAgICAgICB0
aGlzLl9maWx0ZXJUZXh0ID0gZmlsdGVyVGV4dDsKKworICAgICAgICBpZiAoIXRoaXMuZGlkSW5p
dGlhbExheW91dCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgbWF0Y2hlcyA9
IGZhbHNlOworICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eVZpZXcgb2YgdGhpcy5fcHJvcGVydHlW
aWV3cykgeworICAgICAgICAgICAgaWYgKHByb3BlcnR5Vmlldy5hcHBseUZpbHRlcih0aGlzLl9m
aWx0ZXJUZXh0KSkgeworICAgICAgICAgICAgICAgIG1hdGNoZXMgPSB0cnVlOworCisgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX2hpZGVGaWx0ZXJOb25NYXRjaGluZ1Byb3BlcnRpZXMpCisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQocHJvcGVydHlWaWV3LmVsZW1lbnQp
OworICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9oaWRlRmlsdGVyTm9uTWF0Y2hpbmdQcm9w
ZXJ0aWVzKQorICAgICAgICAgICAgICAgIHByb3BlcnR5Vmlldy5lbGVtZW50LnJlbW92ZSgpOwor
ICAgICAgICB9CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuU3By
ZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLkV2ZW50LkZpbHRlckFwcGxpZWQsIHtt
YXRjaGVzfSk7CisgICAgfQorCisgICAgLy8gU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5IGRlbGVn
YXRlCisKICAgICBzcHJlYWRzaGVldFN0eWxlUHJvcGVydHlGb2N1c01vdmVkKHByb3BlcnR5Vmll
dywge2RpcmVjdGlvbiwgd2lsbFJlbW92ZVByb3BlcnR5fSkKICAgICB7CiAgICAgICAgIHRoaXMu
X3VwZGF0ZVByb3BlcnRpZXNTdGF0dXMoKTsKQEAgLTI3Nyw4ICszNzgsNiBAQCBXSS5TcHJlYWRz
aGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxl
RGVjbGFyYXRpb25FZAogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gU3ByZWFkc2hlZXRTdHls
ZVByb3BlcnR5IGRlbGVnYXRlCi0KICAgICBzcHJlYWRzaGVldFN0eWxlUHJvcGVydHlBZGRCbGFu
a1Byb3BlcnR5U29vbihwcm9wZXJ0eVZpZXcsIHtpbmRleH0pCiAgICAgewogICAgICAgICBpZiAo
aXNOYU4oaW5kZXgpKQpAQCAtMjk2LDYgKzM5NSwxMiBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxl
RGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25F
ZAogICAgICAgICB0aGlzLl9mb2N1c2VkID0gZmFsc2U7CiAgICAgfQogCisgICAgc3ByZWFkc2hl
ZXRTdHlsZVByb3BlcnR5U2hvd1Byb3BlcnR5KHByb3BlcnR5VmlldywgcHJvcGVydHkpCisgICAg
eworICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0
aW9uRWRpdG9yU2hvd1Byb3BlcnR5KQorICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuc3ByZWFk
c2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yU2hvd1Byb3BlcnR5KHRoaXMsIHByb3BlcnR5
KTsKKyAgICB9CisKICAgICBzdHlsZVByb3BlcnR5SW5saW5lU3dhdGNoQWN0aXZhdGVkKCkKICAg
ICB7CiAgICAgICAgIHRoaXMuaW5saW5lU3dhdGNoQWN0aXZlID0gdHJ1ZTsKQEAgLTMwNiwzMiAr
NDExLDggQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3Mg
U3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQKICAgICAgICAgdGhpcy5pbmxpbmVTd2F0
Y2hBY3RpdmUgPSBmYWxzZTsKICAgICB9CiAKLSAgICBhcHBseUZpbHRlcihmaWx0ZXJUZXh0KQot
ICAgIHsKLSAgICAgICAgdGhpcy5fZmlsdGVyVGV4dCA9IGZpbHRlclRleHQ7Ci0KLSAgICAgICAg
aWYgKCF0aGlzLmRpZEluaXRpYWxMYXlvdXQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgbGV0IG1hdGNoZXMgPSBmYWxzZTsKLSAgICAgICAgZm9yIChsZXQgcHJvcGVydHlWaWV3IG9m
IHRoaXMuX3Byb3BlcnR5Vmlld3MpIHsKLSAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZpZXcuYXBw
bHlGaWx0ZXIodGhpcy5fZmlsdGVyVGV4dCkpCi0gICAgICAgICAgICAgICAgbWF0Y2hlcyA9IHRy
dWU7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
SS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuRXZlbnQuRmlsdGVyQXBwbGll
ZCwge21hdGNoZXN9KTsKLSAgICB9Ci0KICAgICAvLyBQcml2YXRlCiAKLSAgICBnZXQgX3Byb3Bl
cnRpZXNUb1JlbmRlcigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fc3R5bGUuX3N0eWxlU2hl
ZXRUZXh0UmFuZ2UpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy5fc3R5bGUuYWxsVmlzaWJsZVBy
b3BlcnRpZXM7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlLmFsbFByb3BlcnRpZXM7Ci0g
ICAgfQotCiAgICAgX2VkaXRhYmxlUHJvcGVydHlBZnRlcihwcm9wZXJ0eUluZGV4KQogICAgIHsK
ICAgICAgICAgZm9yIChsZXQgaW5kZXggPSBwcm9wZXJ0eUluZGV4ICsgMTsgaW5kZXggPCB0aGlz
Ll9wcm9wZXJ0eVZpZXdzLmxlbmd0aDsgaW5kZXgrKykgewpAQCAtMzcwLDcgKzQ1MSwxMCBAQCBX
SS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZAogCiAgICAgX3VwZGF0ZVN0eWxlTG9jaygpCiAgICAgewot
ICAgICAgICB0aGlzLnN0eWxlLmxvY2tlZCA9IHRoaXMuX2ZvY3VzZWQgfHwgdGhpcy5faW5saW5l
U3dhdGNoQWN0aXZlOworICAgICAgICBpZiAoIXRoaXMuX3N0eWxlKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHRoaXMuX3N0eWxlLmxvY2tlZCA9IHRoaXMuX2ZvY3VzZWQgfHwgdGhp
cy5faW5saW5lU3dhdGNoQWN0aXZlOwogICAgIH0KIH07CiAKQEAgLTM3OSwzICs0NjMsOSBAQCBX
SS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuRXZlbnQgPSB7CiB9OwogCiBX
SS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuU3R5bGVDbGFzc05hbWUgPSAi
c3ByZWFkc2hlZXQtc3R5bGUtZGVjbGFyYXRpb24tZWRpdG9yIjsKKworV0kuU3ByZWFkc2hlZXRD
U1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLlByb3BlcnR5VmlzaWJpbGl0eU1vZGUgPSB7CisgICAg
U2hvd0FsbDogU3ltYm9sKCJ2YXJpYWJsZS12aXNpYmlsaXR5LXNob3ctYWxsIiksCisgICAgSGlk
ZVZhcmlhYmxlczogU3ltYm9sKCJ2YXJpYWJsZS12aXNpYmlsaXR5LWhpZGUtdmFyaWFibGVzIiks
CisgICAgSGlkZU5vblZhcmlhYmxlczogU3ltYm9sKCJ2YXJpYWJsZS12aXNpYmlsaXR5LWhpZGUt
bm9uLXZhcmlhYmxlcyIpLAorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24u
Y3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hl
ZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5jc3MKaW5kZXggNzc3ZmU4ZDQzNzJjN2RhMjU5
Y2I2MjEzNjdjYzFlNjMxZTUyOWYxZS4uYjFjNTljMjVkNzM0MGJhYjdkZGM2Nzk0NmE2NDM4Nzlj
OTE2Zjc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5jc3MKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbi5jc3MKQEAgLTI3LDEzICsyNywxMSBAQAogICAgIG1hcmdpbjog
MDsKICAgICBwYWRkaW5nOiAwIDAgdmFyKC0tY3NzLWRlY2xhcmF0aW9uLXZlcnRpY2FsLXBhZGRp
bmcpOwogICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTog
MTFweDsKICAgICBjb2xvcjogaHNsKDAsIDAlLCA3MCUpOwogICAgIGJhY2tncm91bmQ6IHdoaXRl
OwogICAgIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIGhzbGEoMCwgMCUsIDAlLCAwLjIpOwog
ICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7Ci0KLSAgICAtLWNzcy1kZWNsYXJhdGlvbi12
ZXJ0aWNhbC1wYWRkaW5nOiA0cHg7Ci0gICAgLS1jc3MtZGVjbGFyYXRpb24taG9yaXpvbnRhbC1w
YWRkaW5nOiA2cHg7CiB9CiAKIC5zcHJlYWRzaGVldC1jc3MtZGVjbGFyYXRpb24gOm1hdGNoZXMo
LmhlYWRlciwgLmhlYWRlci1tZWRpYSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRSdWxlc1N0eWxlRGV0YWlsc1BhbmVs
LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNo
ZWV0UnVsZXNTdHlsZURldGFpbHNQYW5lbC5jc3MKaW5kZXggOGFhNzdhNjM0N2E2YmQyNGRkMWJh
YTcyNjk2MTEyNjk3N2NjN2VlMy4uNWQ5NGMyODc1NmQ0OGUwNzAzNTIzMjBlNjZlN2M1MjU4ZmQy
OWIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU3ByZWFkc2hlZXRSdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmNzcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRh
aWxzUGFuZWwuY3NzCkBAIC0yMyw4NSArMjMsNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLS5zdHlsZS1zcHJlYWRzaGVldCAuc3R5bGUtcnVsZSB7Ci0gICAg
Zm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDog
dGV4dDsKLSAgICBwYWRkaW5nOiA0cHggNnB4OwotICAgIG1hcmdpbjogMDsKLQotICAgIGNvbG9y
OiBoc2woMCwgMCUsIDcwJSk7Ci0gICAgYmFja2dyb3VuZDogd2hpdGU7Ci0gICAgYm9yZGVyLWJv
dHRvbTogMC41cHggc29saWQgaHNsYSgwLCAwJSwgMCUsIDAuMik7Ci19Ci0KLS5zdHlsZS1zcHJl
YWRzaGVldCAuc2VsZWN0b3ItbGluZSB7Ci0gICAgZmxvYXQ6IGxlZnQ7Ci19Ci0KLS5zdHlsZS1z
cHJlYWRzaGVldCAuc2VsZWN0b3IgewotICAgIGNvbG9yOiBoc2woMCwgMCUsIDUwJSk7Ci0gICAg
d29yZC13cmFwOiBicmVhay13b3JkOwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgOm1hdGNoZXMo
LnNlbGVjdG9yIC5tYXRjaGVkLCAuc2VsZWN0b3I6Zm9jdXMpIHsKLSAgICBjb2xvcjogYmxhY2s7
Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAubmFtZSB7Ci0gICAgY29sb3I6IHZhcigtLXN5bnRh
eC1oaWdobGlnaHQtYm9vbGVhbi1jb2xvcik7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAudmFs
dWUgewotICAgIGNvbG9yOiBibGFjazsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IDptYXRjaGVz
KC5zZWxlY3RvciwgLm5hbWUsIC52YWx1ZSkgewotICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJl
YWQtd3JpdGUtcGxhaW50ZXh0LW9ubHk7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hl
cyguc2VsZWN0b3IsIC5uYW1lLCAudmFsdWUpOmZvY3VzIHsKLSAgICBvdXRsaW5lOiAxcHggc29s
aWQgd2hpdGU7Ci0gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDFweCBoc2xhKDAsIDAlLCAwJSwg
MC42KTsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IC5zZWxlY3Rvci1pbmxpbmUgewotICAgIC13
ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtb25seTsKLSAgICBjb2xvcjogaHNsKDAsIDAlLCA1MCUp
OwotICAgIGZvbnQ6IDEycHggc2Fucy1zZXJpZjsKLX0KLQotLnN0eWxlLXNwcmVhZHNoZWV0IC5w
cm9wZXJ0eSB7Ci0gICAgcGFkZGluZy1sZWZ0OiAxNnB4OwotfQotCi0uc3R5bGUtc3ByZWFkc2hl
ZXQgLnByb3BlcnR5LWRpc2FibGVkLAotLnN0eWxlLXNwcmVhZHNoZWV0IC5wcm9wZXJ0eS1kaXNh
YmxlZCAqIHsKLSAgICBjb2xvcjogaHNsKDExOSwgMTAwJSwgMjIlKTsKLX0KLQotLnN0eWxlLXNw
cmVhZHNoZWV0IC5wcm9wZXJ0eS1kaXNhYmxlZCA6bWF0Y2hlcygubmFtZSwgLnZhbHVlKSB7Ci0g
ICAgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC1vbmx5OwotfQotCi0uc3R5bGUtc3ByZWFkc2hl
ZXQgLnN0eWxlcy1zb3VyY2UgewotICAgIGZsb2F0OiByaWdodDsKLSAgICBmb250OiAxMXB4IHNh
bnMtc2VyaWY7Ci0gICAgbWF4LXdpZHRoOiAxMDAlOwotICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlw
c2lzOwotICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLQot
ICAgIG1hcmdpbi10b3A6IC0xcHg7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyhh
LCAubm9kZS1saW5rKSB7Ci0gICAgY29sb3I6IGhzbCgwLCAwJSwgNTAlKTsKLX0KLQotLnN0eWxl
LXNwcmVhZHNoZWV0IDptYXRjaGVzKGEsIC5ub2RlLWxpbmspOmhvdmVyIHsKLSAgICBjb2xvcjog
aHNsKDAsIDAlLCAzMyUpOwotfQotCiAuc3ByZWFkc2hlZXQtc3R5bGUtcGFuZWwgLnNlY3Rpb24t
aGVhZGVyIHsKICAgICBtYXJnaW46IDA7CiAgICAgcGFkZGluZzogNHB4IDZweDsKQEAgLTExOCwy
NiArMzksMyBAQAogLnNwcmVhZHNoZWV0LXN0eWxlLXBhbmVsIC5zZWN0aW9uLWhlYWRlciAubm9k
ZS1saW5rOmhvdmVyIHsKICAgICBjb2xvcjogYmxhY2s7CiB9Ci0KLS5zdHlsZS1zcHJlYWRzaGVl
dCAuZGVjbGFyYXRpb25zIHsKLSAgICBjbGVhcjogbGVmdDsKLSAgICBwb3NpdGlvbjogcmVsYXRp
dmU7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCBpbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKLSAg
ICB2aXNpYmlsaXR5OiBoaWRkZW47Ci0KLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgbGVm
dDogMDsKLQotICAgIGhlaWdodDogMTFweDsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLS5zdHlsZS1z
cHJlYWRzaGVldCBpbnB1dFt0eXBlPSJjaGVja2JveCJdOm5vdCg6Y2hlY2tlZCkgewotICAgIHZp
c2liaWxpdHk6IHZpc2libGU7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAuZGVjbGFyYXRpb25z
OmhvdmVyIGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewotICAgIHZpc2liaWxpdHk6IHZpc2libGU7
Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMKaW5kZXggNzRmMTVl
MTI1YjQ0ZGY0YTI1ZGY3NzVjZmExMTE2NTQ3YjU1MDgxZS4uMzA3Y2JjYTlmOTY5ZjA4ZTRmMTk1
NmM0MmIwNmQwMTI5NjNmNTM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9w
ZXJ0eS5qcwpAQCAtMTQ3LDkgKzE0NywxMiBAQCBXSS5TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkg
PSBjbGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICBh
cHBseUZpbHRlcihmaWx0ZXJUZXh0KQogICAgIHsKICAgICAgICAgbGV0IG1hdGNoZXNOYW1lID0g
dGhpcy5fbmFtZUVsZW1lbnQudGV4dENvbnRlbnQuaW5jbHVkZXMoZmlsdGVyVGV4dCk7CisgICAg
ICAgIHRoaXMuX25hbWVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoV0kuR2VuZXJhbFN0eWxlRGV0
YWlsc1NpZGViYXJQYW5lbC5GaWx0ZXJNYXRjaFNlY3Rpb25DbGFzc05hbWUsICEhbWF0Y2hlc05h
bWUpOworCiAgICAgICAgIGxldCBtYXRjaGVzVmFsdWUgPSB0aGlzLl92YWx1ZUVsZW1lbnQudGV4
dENvbnRlbnQuaW5jbHVkZXMoZmlsdGVyVGV4dCk7CisgICAgICAgIHRoaXMuX3ZhbHVlRWxlbWVu
dC5jbGFzc0xpc3QudG9nZ2xlKFdJLkdlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuRmls
dGVyTWF0Y2hTZWN0aW9uQ2xhc3NOYW1lLCAhIW1hdGNoZXNWYWx1ZSk7CisKICAgICAgICAgbGV0
IG1hdGNoZXMgPSBtYXRjaGVzTmFtZSB8fCBtYXRjaGVzVmFsdWU7Ci0gICAgICAgIHRoaXMuX2Nv
bnRlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoV0kuR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGVi
YXJQYW5lbC5GaWx0ZXJNYXRjaFNlY3Rpb25DbGFzc05hbWUsIG1hdGNoZXMpOwogICAgICAgICB0
aGlzLl9jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKFdJLkdlbmVyYWxTdHlsZURldGFp
bHNTaWRlYmFyUGFuZWwuTm9GaWx0ZXJNYXRjaEluUHJvcGVydHlDbGFzc05hbWUsICFtYXRjaGVz
KTsKICAgICAgICAgcmV0dXJuIG1hdGNoZXM7CiAgICAgfQpAQCAtMjMzLDYgKzIzNiwzMyBAQCBX
SS5TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgPSBjbGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVy
dHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICB0aGlzLl9j
b250ZW50RWxlbWVudC5hcHBlbmQoIiAqLyIpOwogCisgICAgICAgIGlmICghdGhpcy5fcHJvcGVy
dHkuaW1wbGljaXQgJiYgdGhpcy5fcHJvcGVydHkub3duZXJTdHlsZS50eXBlID09PSBXSS5DU1NT
dHlsZURlY2xhcmF0aW9uLlR5cGUuQ29tcHV0ZWQpIHsKKyAgICAgICAgICAgIGxldCBlZmZlY3Rp
dmVQcm9wZXJ0eSA9IHRoaXMuX3Byb3BlcnR5Lm93bmVyU3R5bGUubm9kZVN0eWxlcy5lZmZlY3Rp
dmVQcm9wZXJ0eUZvck5hbWUodGhpcy5fcHJvcGVydHkubmFtZSk7CisgICAgICAgICAgICBpZiAo
ZWZmZWN0aXZlUHJvcGVydHkgJiYgIWVmZmVjdGl2ZVByb3BlcnR5LnN0eWxlU2hlZXRUZXh0UmFu
Z2UpCisgICAgICAgICAgICAgICAgZWZmZWN0aXZlUHJvcGVydHkgPSBlZmZlY3RpdmVQcm9wZXJ0
eS5yZWxhdGVkU2hvcnRoYW5kUHJvcGVydHk7CisKKyAgICAgICAgICAgIGxldCBvd25lclJ1bGUg
PSBlZmZlY3RpdmVQcm9wZXJ0eSA/IGVmZmVjdGl2ZVByb3BlcnR5Lm93bmVyU3R5bGUub3duZXJS
dWxlIDogbnVsbDsKKworICAgICAgICAgICAgbGV0IGFycm93RWxlbWVudCA9IHRoaXMuX2NvbnRl
bnRFbGVtZW50LmFwcGVuZENoaWxkKFdJLmNyZWF0ZUdvVG9BcnJvd0J1dHRvbigpKTsKKyAgICAg
ICAgICAgIGFycm93RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIChldmVudCkgPT4g
eworICAgICAgICAgICAgICAgIGlmICghZWZmZWN0aXZlUHJvcGVydHkgfHwgIW93bmVyUnVsZSB8
fCAhZXZlbnQuYWx0S2V5KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0
ZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlTaG93UHJvcGVydHkpCisgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlTaG93UHJvcGVy
dHkodGhpcywgdGhpcy5fcHJvcGVydHkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGV0IHNvdXJjZUNvZGUgPSBvd25l
clJ1bGUuc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGU7CisgICAgICAgICAgICAgICAgbGV0
IHtzdGFydExpbmUsIHN0YXJ0Q29sdW1ufSA9IGVmZmVjdGl2ZVByb3BlcnR5LnN0eWxlU2hlZXRU
ZXh0UmFuZ2U7CisgICAgICAgICAgICAgICAgV0kuc2hvd1NvdXJjZUNvZGVMb2NhdGlvbihzb3Vy
Y2VDb2RlLmNyZWF0ZVNvdXJjZUNvZGVMb2NhdGlvbihzdGFydExpbmUsIHN0YXJ0Q29sdW1uKSwg
eworICAgICAgICAgICAgICAgICAgICBpZ25vcmVOZXR3b3JrVGFiOiB0cnVlLAorICAgICAgICAg
ICAgICAgICAgICBpZ25vcmVTZWFyY2hUYWI6IHRydWUsCisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaWYgKGVmZmVjdGl2ZVByb3BlcnR5ICYmIG93
bmVyUnVsZSkKKyAgICAgICAgICAgICAgICBhcnJvd0VsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmlu
ZygiT3B0aW9uLWNsaWNrIHRvIHNob3cgc291cmNlIik7CisgICAgICAgIH0KKwogICAgICAgICB0
aGlzLnVwZGF0ZVN0YXR1cygpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmFyaWFibGVzLmNzcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1ZhcmlhYmxlcy5jc3MKaW5kZXggMjg4MzcyYzk3
ODM4YzNjMjI5NDJjYjBjOTRhZjg0YzZhNTBjZGYyYS4uMmE3NjIxNjU0YjQ4NThlMGQ4MGY0MTNi
NTMwYTA4Y2Q1ZDM3OWVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmFyaWFibGVzLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9WYXJpYWJsZXMuY3NzCkBAIC0xMjMsNiArMTIzLDkgQEAKICAg
ICAtLW5hdmlnYXRpb24tYmFyLWhlaWdodDogMjlweDsKIAogICAgIC0tc2xpZGVyLWhlaWdodDog
MTFweDsKKworICAgIC0tY3NzLWRlY2xhcmF0aW9uLXZlcnRpY2FsLXBhZGRpbmc6IDRweDsKKyAg
ICAtLWNzcy1kZWNsYXJhdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc6IDZweDsKIH0KIAogYm9keS53
aW5kb3ctaW5hY3RpdmUgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350282</attachid>
            <date>2018-09-20 16:52:15 -0700</date>
            <delta_ts>2018-09-20 19:02:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183627-20180920165214.patch</filename>
            <type>text/plain</type>
            <size>35388</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJjODY3YmUxY2RjMDg3ZWVlOTU0MmE0MDY0YmJm
OTAwMDlkNDFjNzYuLmJjNWM4YTc1ZTI1NTM3MjdiYzY2MmQ2MjQxYjQ2ZDhhZTcwZmJjZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTA5LTIwICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
dHlsZXMgUmVkZXNpZ246IHJld29yayBDb21wdXRlZCBwYW5lbCB0byB1c2UgU3ByZWFkc2hlZXQg
Y2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmpzOgorICAg
ICAgICAoV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbCk6CisgICAgICAgIChXSS5Db21wdXRl
ZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5yZWZyZXNoKToKKyAgICAgICAgKFdJLkNvbXB1
dGVkU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLmFwcGx5RmlsdGVyKToKKyAgICAgICAgKFdJ
LkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLnNwcmVhZHNoZWV0Q1NTU3R5bGVE
ZWNsYXJhdGlvbkVkaXRvclNob3dQcm9wZXJ0eSk6CisgICAgICAgIChXSS5Db21wdXRlZFN0eWxl
RGV0YWlsc1BhbmVsLnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkNvbXB1
dGVkU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLmZpbHRlckRpZENoYW5nZSk6CisgICAgICAg
IChXSS5Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5fY29tcHV0ZWRTdHlsZVNo
b3dBbGxDaGVja2JveFZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXSS5Db21wdXRlZFN0eWxlRGV0
YWlsc1BhbmVsLnByb3RvdHlwZS5faGFuZGxlUHJvcGVydGllc1NlY3Rpb25Db2xsYXBzZWRTdGF0
ZUNoYW5nZWQpOgorICAgICAgICAoV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5
cGUuX2hhbmRsZVZhcmlhYmxlc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQpOgorICAgICAg
ICAoV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuX2hhbmRsZUVkaXRvckZp
bHRlckFwcGxpZWQpOgorICAgICAgICAoV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5wcm90
b3R5cGUuY3NzU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3JTaG93UHJvcGVydHkuZGVsZWdhdGVT
aG93UHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQ
YW5lbC5wcm90b3R5cGUuY3NzU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3JTaG93UHJvcGVydHkp
OiBEZWxldGVkLgorICAgICAgICBSZXBsYWNlIENTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9y
IHdpdGggU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3Iu
anM6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IpOgor
ICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3RvdHlw
ZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkaXRvci5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NT
U3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5cGUuc2V0IHNob3dzSW1wbGljaXRQcm9wZXJ0
aWVzKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5w
cm90b3R5cGUuc2V0IGFsd2F5c1Nob3dQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdJLlNwcmVh
ZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5cGUuc2V0IHByb3BlcnR5Vmlz
aWJpbGl0eU1vZGUpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9u
RWRpdG9yLnByb3RvdHlwZS5zZXQgaGlkZUZpbHRlck5vbk1hdGNoaW5nUHJvcGVydGllcyk6Cisg
ICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBl
LnNldCBzb3J0UHJvcGVydGllc0J5TmFtZSk6IEFkZGVkLgorICAgICAgICAoV0kuU3ByZWFkc2hl
ZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3RvdHlwZS5nZXQgcHJvcGVydGllc1RvUmVu
ZGVyKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5w
cm90b3R5cGUuaGlnaGxpZ2h0UHJvcGVydHkpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NT
dHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3RvdHlwZS5hcHBseUZpbHRlcik6CisgICAgICAgIChX
SS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLnNwcmVhZHNo
ZWV0U3R5bGVQcm9wZXJ0eVNob3dQcm9wZXJ0eSk6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENT
U1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLl91cGRhdGVTdHlsZUxvY2spOgorICAg
ICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3RvdHlwZS5n
ZXQgX3Byb3BlcnRpZXNUb1JlbmRlcik6IERlbGV0ZWQuCisgICAgICAgIENyZWF0ZSBzZXR0ZXJz
IGZvciB0aGUgInNwZWNpYWwiIGZ1bmN0aW9uYWxpdHkgcmVxdWlyZWQgYnkgdGhlIENvbXB1dGVk
IHBhbmVsIGFuZCB0aWUgdGhlbQorICAgICAgICBpbnRvIHRoZSBsb2dpYyB0aGF0IGRldGVybWlu
ZXMgd2hhdCBwcm9wZXJ0aWVzIGFyZSByZW5kZXJlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzOgorICAgICAgICAoV0kuU3ByZWFk
c2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5fdXBkYXRlKToKKyAgICAgICAgQ3JlYXRlIGdv
LXRvIGFycm93IGlmIHRoZSBwcm9wZXJ0eSBoYXMgYSBzaG9ydGhhbmQgdmVyc2lvbiBvciBhIHNv
dXJjZSBjb2RlIGxvY2F0aW9uLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HZW5l
cmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0kuR2VuZXJhbFN0eWxl
RGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIERv
bid0IHJlYXBwbHkgdGhlIGZpbHRlciBhZnRlciByZWZyZXNoaW5nLCBhcyB0aGUgY3VycmVudCBw
YW5lbCB3aWxsIGhhbmRsZSBhcHBseWluZyBpdC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5jc3M6CisgICAgICAgICguZGV0YWlscy1z
ZWN0aW9uOm1hdGNoZXMoLmNvbXB1dGVkLXN0eWxlLXByb3BlcnRpZXMsIC5jb21wdXRlZC1zdHls
ZS1ib3gtbW9kZWwpOm5vdCguY29sbGFwc2VkKSA+IDptYXRjaGVzKC5oZWFkZXIsIC5jb250ZW50
KSk6CisgICAgICAgICguY29tcHV0ZWQtc3R5bGUtcHJvcGVydGllcyAucHJvcGVydHkgLmdvLXRv
LWFycm93KToKKyAgICAgICAgKC5jb21wdXRlZC1zdHlsZS1wcm9wZXJ0aWVzIC5wcm9wZXJ0eTpo
b3ZlciAuZ28tdG8tYXJyb3cpOgorICAgICAgICAoLmNvbXB1dGVkLXN0eWxlLXByb3BlcnRpZXMu
ZGV0YWlscy1zZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKC5kZXRhaWxzLXNlY3Rpb24gPiAu
Y29udGVudCA+IC5ncm91cCA+IC5yb3cgLkNvZGVNaXJyb3ItY29kZSBwcmUgLmdvLXRvLWFycm93
KTogRGVsZXRlZC4KKyAgICAgICAgKC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCA+IC5ncm91
cCA+IC5yb3cgLkNvZGVNaXJyb3ItY29kZSBwcmU6aG92ZXIgLmdvLXRvLWFycm93KTogRGVsZXRl
ZC4KKyAgICAgICAgKC5kZXRhaWxzLXNlY3Rpb24uc3R5bGUtYm94LW1vZGVsOm5vdCguY29sbGFw
c2VkKSA+IDptYXRjaGVzKC5oZWFkZXIsIC5jb250ZW50KSk6IERlbGV0ZWQuCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5jc3M6CisgICAgICAgICguZGV0YWls
cy1zZWN0aW9uLmNvbXB1dGVkLXN0eWxlLXByb3BlcnRpZXM6bm90KC5jb2xsYXBzZWQpID4gLmhl
YWRlcik6IERlbGV0ZWQuCisgICAgICAgIENvbnNvbGlkYXRlIENvbXB1dGVkIHBhbmVsIHN0eWxl
cyB0byBpdCdzIHJlc3BlY3RpdmUgQ1NTIGZpbGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5jc3M6CisgICAgICAg
ICguc3ByZWFkc2hlZXQtc3R5bGUtZGVjbGFyYXRpb24tZWRpdG9yKToKKyAgICAgICAgKC5zcHJl
YWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IgLnByb3BlcnR5Om1hdGNoZXMoLmltcGxp
Y2l0LCAubm90LWluaGVyaXRlZCkgLmNvbnRlbnQgPiAqKToKKyAgICAgICAgKC5zcHJlYWRzaGVl
dC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IgLnByb3BlcnR5Lm5vdC1pbmhlcml0ZWQgLmNvbnRl
bnQgPiAqKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNo
ZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3NzOgorICAgICAgICAoLnNwcmVhZHNoZWV0
LWNzcy1kZWNsYXJhdGlvbik6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WYXJpYWJs
ZXMuY3NzOgorICAgICAgICAoOnJvb3QpOgorICAgICAgICBNb3ZlIGBjc3MtZGVjbGFyYXRpb25g
IHBhZGRpbmcgdmFyaWFibGVzIHNvIHRoZXkgY2FuIGJlIHVzZWQgYnkgU3ByZWFkc2hlZXRDU1NT
dHlsZURlY2xhcmF0aW9uRWRpdG9yCisgICAgICAgIHdpdGhvdXQgYSBwYXJlbnQgU3ByZWFkc2hl
ZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvU3ByZWFkc2hlZXRSdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmNzczoKKyAgICAgICAgKC5z
dHlsZS1zcHJlYWRzaGVldCAuc3R5bGUtcnVsZSk6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUt
c3ByZWFkc2hlZXQgLnNlbGVjdG9yLWxpbmUpOiBEZWxldGVkLgorICAgICAgICAoLnN0eWxlLXNw
cmVhZHNoZWV0IC5zZWxlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hl
ZXQgOm1hdGNoZXMoLnNlbGVjdG9yIC5tYXRjaGVkLCAuc2VsZWN0b3I6Zm9jdXMpKTogRGVsZXRl
ZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCAubmFtZSk6IERlbGV0ZWQuCisgICAgICAg
ICguc3R5bGUtc3ByZWFkc2hlZXQgLnZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1z
cHJlYWRzaGVldCA6bWF0Y2hlcyguc2VsZWN0b3IsIC5uYW1lLCAudmFsdWUpKTogRGVsZXRlZC4K
KyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyguc2VsZWN0b3IsIC5uYW1lLCAu
dmFsdWUpOmZvY3VzKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCAuc2Vs
ZWN0b3ItaW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVldCAucHJv
cGVydHkpOiBEZWxldGVkLgorICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0IC5wcm9wZXJ0eS1k
aXNhYmxlZCwpOiBEZWxldGVkLgorICAgICAgICAoLnN0eWxlLXNwcmVhZHNoZWV0IC5wcm9wZXJ0
eS1kaXNhYmxlZCA6bWF0Y2hlcygubmFtZSwgLnZhbHVlKSk6IERlbGV0ZWQuCisgICAgICAgICgu
c3R5bGUtc3ByZWFkc2hlZXQgLnN0eWxlcy1zb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoLnN0
eWxlLXNwcmVhZHNoZWV0IDptYXRjaGVzKGEsIC5ub2RlLWxpbmspKTogRGVsZXRlZC4KKyAgICAg
ICAgKC5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyhhLCAubm9kZS1saW5rKTpob3Zlcik6IERl
bGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgLmRlY2xhcmF0aW9ucyk6IERlbGV0
ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgaW5wdXRbdHlwZT0iY2hlY2tib3giXSk6
IERlbGV0ZWQuCisgICAgICAgICguc3R5bGUtc3ByZWFkc2hlZXQgaW5wdXRbdHlwZT0iY2hlY2ti
b3giXTpub3QoOmNoZWNrZWQpKTogRGVsZXRlZC4KKyAgICAgICAgKC5zdHlsZS1zcHJlYWRzaGVl
dCAuZGVjbGFyYXRpb25zOmhvdmVyIGlucHV0W3R5cGU9ImNoZWNrYm94Il0pOiBEZWxldGVkLgor
ICAgICAgICBEcml2ZS1ieSBmaXg6IHJlbW92ZSBzdHlsZXMgdGhhdCBkb24ndCBhcHBseSB0byBh
bnl0aGluZy4KKwogMjAxOC0wOS0xOSAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIERhcmtNb2RlLmNzcyBydWxlcyBp
bnRvIGFwcHJvcHJpYXRlIENTUyBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5jc3MgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0
YWlsc1BhbmVsLmNzcwppbmRleCA1MGVkZjA2MGYxM2EyMjU1YWQwMDY1ZjBmNTIyMDA5MGE0NTYy
NTYyLi40Mzc5N2U4OWJjYWQ4NGRmMjNlYmU0OTE5YTgyNjU1OGQ5MDJiM2ZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21wdXRlZFN0eWxl
RGV0YWlsc1BhbmVsLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmNzcwpAQCAtMjMsMTEgKzIzLDExIEBA
CiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLmNvbXB1dGVkLXN0
eWxlLXByb3BlcnRpZXMuZGV0YWlscy1zZWN0aW9uIHsKKy5kZXRhaWxzLXNlY3Rpb246bWF0Y2hl
cyguY29tcHV0ZWQtc3R5bGUtcHJvcGVydGllcywgLmNvbXB1dGVkLXN0eWxlLWJveC1tb2RlbCk6
bm90KC5jb2xsYXBzZWQpID4gOm1hdGNoZXMoLmhlYWRlciwgLmNvbnRlbnQpIHsKICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiB3aGl0ZTsKIH0KIAotLmRldGFpbHMtc2VjdGlvbiA+IC5jb250ZW50ID4g
Lmdyb3VwID4gLnJvdyAuQ29kZU1pcnJvci1jb2RlIHByZSAuZ28tdG8tYXJyb3cgeworLmNvbXB1
dGVkLXN0eWxlLXByb3BlcnRpZXMgLnByb3BlcnR5IC5nby10by1hcnJvdyB7CiAgICAgZGlzcGxh
eTogbm9uZTsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgd2lkdGg6IDEycHg7CkBAIC0z
NSwxNCArMzUsMTAgQEAKICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207CiB9CiAKLS5k
ZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCA+IC5ncm91cCA+IC5yb3cgLkNvZGVNaXJyb3ItY29k
ZSBwcmU6aG92ZXIgLmdvLXRvLWFycm93IHsKKy5jb21wdXRlZC1zdHlsZS1wcm9wZXJ0aWVzIC5w
cm9wZXJ0eTpob3ZlciAuZ28tdG8tYXJyb3cgewogICAgIGRpc3BsYXk6IGluaXRpYWw7CiB9CiAK
LS5kZXRhaWxzLXNlY3Rpb24uc3R5bGUtYm94LW1vZGVsOm5vdCguY29sbGFwc2VkKSA+IDptYXRj
aGVzKC5oZWFkZXIsIC5jb250ZW50KSB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Ci19
Ci0KIEBtZWRpYSAocHJlZmVycy1kYXJrLWludGVyZmFjZSkgewogICAgIC5jb21wdXRlZC1zdHls
ZS1wcm9wZXJ0aWVzLmRldGFpbHMtc2VjdGlvbiB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IHZhcigtLWJhY2tncm91bmQtY29sb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1dGVkU3R5bGVEZXRh
aWxzUGFuZWwuanMKaW5kZXggYjI0NTA0ZDRhZjA2YzM0MjcyZTk2YzYxNzkzYWU3NGU0NzE5Zjk1
Ny4uMzhiOGNkODc4NjI0YzI5OWZmYWM5Y2NlOWQzMDExNWU3MGI0ZDVhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURl
dGFpbHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmpzCkBAIC0zMSw0OCArMzEsMTEgQEAgV0ku
Q29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIENvbXB1dGVkU3R5bGVEZXRhaWxzUGFu
ZWwgZXh0ZW5kcyBXSS5TdHlsZUQKIAogICAgICAgICB0aGlzLl9jb21wdXRlZFN0eWxlU2hvd0Fs
bFNldHRpbmcgPSBuZXcgV0kuU2V0dGluZygiY29tcHV0ZWQtc3R5bGUtc2hvdy1hbGwiLCBmYWxz
ZSk7CiAKLSAgICAgICAgdGhpcy5jc3NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvclNob3VsZEFk
ZFByb3BlcnR5R29Ub0Fycm93cyA9IHRydWU7CisgICAgICAgIHRoaXMuX2ZpbHRlclRleHQgPSBu
dWxsOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwogCi0gICAgY3NzU3R5bGVEZWNsYXJhdGlvblRl
eHRFZGl0b3JTaG93UHJvcGVydHkocHJvcGVydHksIHNob3dTb3VyY2UpCi0gICAgewotICAgICAg
ICBmdW5jdGlvbiBkZWxlZ2F0ZVNob3dQcm9wZXJ0eSgpIHsKLSAgICAgICAgICAgIGlmICh0eXBl
b2YgdGhpcy5fZGVsZWdhdGUuY29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbFNob3dQcm9wZXJ0eSA9
PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5jb21wdXRlZFN0
eWxlRGV0YWlsc1BhbmVsU2hvd1Byb3BlcnR5KHByb3BlcnR5KTsKLSAgICAgICAgfQotCi0gICAg
ICAgIGlmICghc2hvd1NvdXJjZSkgewotICAgICAgICAgICAgZGVsZWdhdGVTaG93UHJvcGVydHku
Y2FsbCh0aGlzKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGxl
dCBlZmZlY3RpdmVQcm9wZXJ0eSA9IHRoaXMuX25vZGVTdHlsZXMuZWZmZWN0aXZlUHJvcGVydHlG
b3JOYW1lKHByb3BlcnR5Lm5hbWUpOwotICAgICAgICBpZiAoIWVmZmVjdGl2ZVByb3BlcnR5IHx8
ICFlZmZlY3RpdmVQcm9wZXJ0eS5zdHlsZVNoZWV0VGV4dFJhbmdlKSB7Ci0gICAgICAgICAgICBp
ZiAoIWVmZmVjdGl2ZVByb3BlcnR5LnJlbGF0ZWRTaG9ydGhhbmRQcm9wZXJ0eSkgewotICAgICAg
ICAgICAgICAgIGRlbGVnYXRlU2hvd1Byb3BlcnR5LmNhbGwodGhpcyk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWZmZWN0aXZlUHJvcGVydHkg
PSBlZmZlY3RpdmVQcm9wZXJ0eS5yZWxhdGVkU2hvcnRoYW5kUHJvcGVydHk7Ci0gICAgICAgIH0K
LQotICAgICAgICBsZXQgb3duZXJSdWxlID0gZWZmZWN0aXZlUHJvcGVydHkub3duZXJTdHlsZS5v
d25lclJ1bGU7Ci0gICAgICAgIGlmICghb3duZXJSdWxlKSB7Ci0gICAgICAgICAgICBkZWxlZ2F0
ZVNob3dQcm9wZXJ0eS5jYWxsKHRoaXMpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgbGV0IHNvdXJjZUNvZGUgPSBvd25lclJ1bGUuc291cmNlQ29kZUxvY2F0aW9u
LnNvdXJjZUNvZGU7Ci0gICAgICAgIGxldCB7c3RhcnRMaW5lLCBzdGFydENvbHVtbn0gPSBlZmZl
Y3RpdmVQcm9wZXJ0eS5zdHlsZVNoZWV0VGV4dFJhbmdlOwotCi0gICAgICAgIGNvbnN0IG9wdGlv
bnMgPSB7Ci0gICAgICAgICAgICBpZ25vcmVOZXR3b3JrVGFiOiB0cnVlLAotICAgICAgICAgICAg
aWdub3JlU2VhcmNoVGFiOiB0cnVlLAotICAgICAgICB9OwotICAgICAgICBXSS5zaG93U291cmNl
Q29kZUxvY2F0aW9uKHNvdXJjZUNvZGUuY3JlYXRlU291cmNlQ29kZUxvY2F0aW9uKHN0YXJ0TGlu
ZSwgc3RhcnRDb2x1bW4pLCBvcHRpb25zKTsKLSAgICB9Ci0KICAgICByZWZyZXNoKHNpZ25pZmlj
YW50Q2hhbmdlKQogICAgIHsKICAgICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGRvIGEgcmVidWls
ZCBvbiBzaWduaWZpY2FudCBjaGFuZ2VzLiBPdGhlciBjaGFuZ2VzIGFyZSBoYW5kbGVkCkBAIC04
MywxOSArNDYsMzYgQEAgV0kuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIENvbXB1
dGVkU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXSS5TdHlsZUQKICAgICAgICAgfQogCiAgICAg
ICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLnN0eWxlID0gdGhpcy5ub2RlU3R5bGVzLmNv
bXB1dGVkU3R5bGU7CisgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNTZWN0aW9uLmVsZW1lbnQuY2xh
c3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwgIXRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLnByb3Bl
cnRpZXNUb1JlbmRlci5sZW5ndGgpOworCiAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0
b3Iuc3R5bGUgPSB0aGlzLm5vZGVTdHlsZXMuY29tcHV0ZWRTdHlsZTsKKyAgICAgICAgdGhpcy5f
dmFyaWFibGVzU2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsICF0aGlz
Ll92YXJpYWJsZXNUZXh0RWRpdG9yLnByb3BlcnRpZXNUb1JlbmRlci5sZW5ndGgpOworCiAgICAg
ICAgIHRoaXMuX2JveE1vZGVsRGlhZ3JhbVJvdy5ub2RlU3R5bGVzID0gdGhpcy5ub2RlU3R5bGVz
OwogCisgICAgICAgIGlmICh0aGlzLl9maWx0ZXJUZXh0KQorICAgICAgICAgICAgdGhpcy5hcHBs
eUZpbHRlcih0aGlzLl9maWx0ZXJUZXh0KTsKKwogICAgICAgICBzdXBlci5yZWZyZXNoKCk7Cisg
ICAgfQorCisgICAgYXBwbHlGaWx0ZXIoZmlsdGVyVGV4dCkKKyAgICB7CisgICAgICAgIHRoaXMu
X2ZpbHRlclRleHQgPSBmaWx0ZXJUZXh0OwogCi0gICAgICAgIHRoaXMuX3ZhcmlhYmxlc1NlY3Rp
b24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCAhdGhpcy5fdmFyaWFibGVzVGV4
dEVkaXRvci5zaG93blByb3BlcnRpZXMubGVuZ3RoKTsKKyAgICAgICAgaWYgKCF0aGlzLmRpZElu
aXRpYWxMYXlvdXQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcHJvcGVy
dGllc1RleHRFZGl0b3IuYXBwbHlGaWx0ZXIoZmlsdGVyVGV4dCk7CisgICAgICAgIHRoaXMuX3Zh
cmlhYmxlc1RleHRFZGl0b3IuYXBwbHlGaWx0ZXIoZmlsdGVyVGV4dCk7CiAgICAgfQogCi0gICAg
ZmlsdGVyRGlkQ2hhbmdlKGZpbHRlckJhcikKKyAgICAvLyBTcHJlYWRzaGVldENTU1N0eWxlRGVj
bGFyYXRpb25FZGl0b3IgZGVsZWdhdGUKKworICAgIHNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkaXRvclNob3dQcm9wZXJ0eShlZGl0b3IsIHByb3BlcnR5KQogICAgIHsKLSAgICAgICAg
bGV0IGZpbHRlclRleHQgPSBmaWx0ZXJCYXIuZmlsdGVycy50ZXh0OwotICAgICAgICB0aGlzLl9w
cm9wZXJ0aWVzVGV4dEVkaXRvci5yZW1vdmVOb25NYXRjaGluZ1Byb3BlcnRpZXMoZmlsdGVyVGV4
dCk7Ci0gICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3IucmVtb3ZlTm9uTWF0Y2hpbmdQ
cm9wZXJ0aWVzKGZpbHRlclRleHQpOworICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUuY29tcHV0
ZWRTdHlsZURldGFpbHNQYW5lbFNob3dQcm9wZXJ0eSkKKyAgICAgICAgICAgIHRoaXMuX2RlbGVn
YXRlLmNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWxTaG93UHJvcGVydHkocHJvcGVydHkpOwogICAg
IH0KIAogICAgIGZvY3VzRmlyc3RTZWN0aW9uKCkKQEAgLTE0MiwyNCArMTIyLDI4IEBAIFdJLkNv
bXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBDb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVs
IGV4dGVuZHMgV0kuU3R5bGVECiAgICAgICAgIHRoaXMuX2NvbXB1dGVkU3R5bGVTaG93QWxsQ2hl
Y2tib3guYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fY29tcHV0ZWRTdHlsZVNob3dB
bGxDaGVja2JveFZhbHVlQ2hhbmdlZC5iaW5kKHRoaXMpKTsKICAgICAgICAgY29tcHV0ZWRTdHls
ZVNob3dBbGxMYWJlbC5hcHBlbmRDaGlsZCh0aGlzLl9jb21wdXRlZFN0eWxlU2hvd0FsbENoZWNr
Ym94KTsKIAotICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvciA9IG5ldyBXSS5DU1NT
dHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvcih0aGlzKTsKLSAgICAgICAgdGhpcy5fcHJvcGVydGll
c1RleHRFZGl0b3IucHJvcGVydHlWaXNpYmlsaXR5TW9kZSA9IFdJLkNTU1N0eWxlRGVjbGFyYXRp
b25UZXh0RWRpdG9yLlByb3BlcnR5VmlzaWJpbGl0eU1vZGUuSGlkZVZhcmlhYmxlczsKKyAgICAg
ICAgdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IgPSBuZXcgV0kuU3ByZWFkc2hlZXRDU1NTdHls
ZURlY2xhcmF0aW9uRWRpdG9yKHRoaXMpOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVk
aXRvci5wcm9wZXJ0eVZpc2liaWxpdHlNb2RlID0gV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xh
cmF0aW9uRWRpdG9yLlByb3BlcnR5VmlzaWJpbGl0eU1vZGUuSGlkZVZhcmlhYmxlczsKICAgICAg
ICAgdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3Iuc2hvd3NJbXBsaWNpdFByb3BlcnRpZXMgPSB0
aGlzLl9jb21wdXRlZFN0eWxlU2hvd0FsbFNldHRpbmcudmFsdWU7CiAgICAgICAgIHRoaXMuX3By
b3BlcnRpZXNUZXh0RWRpdG9yLmFsd2F5c1Nob3dQcm9wZXJ0eU5hbWVzID0gWyJkaXNwbGF5Iiwg
IndpZHRoIiwgImhlaWdodCJdOwotICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5z
b3J0UHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9y
LmhpZGVGaWx0ZXJOb25NYXRjaGluZ1Byb3BlcnRpZXMgPSB0cnVlOworICAgICAgICB0aGlzLl9w
cm9wZXJ0aWVzVGV4dEVkaXRvci5zb3J0UHJvcGVydGllc0J5TmFtZSA9IHRydWU7CisgICAgICAg
IHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoV0kuU3ByZWFkc2hl
ZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLkV2ZW50LkZpbHRlckFwcGxpZWQsIHRoaXMuX2hh
bmRsZUVkaXRvckZpbHRlckFwcGxpZWQsIHRoaXMpOwogCiAgICAgICAgIGxldCBwcm9wZXJ0aWVz
Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwogICAgICAgICBsZXQgcHJvcGVydGllc0dy
b3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3Byb3BlcnRpZXNSb3ddKTsKLSAgICAg
ICAgbGV0IHByb3BlcnRpZXNTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJjb21wdXRl
ZC1zdHlsZS1wcm9wZXJ0aWVzIiwgV0kuVUlTdHJpbmcoIlByb3BlcnRpZXMiKSwgW3Byb3BlcnRp
ZXNHcm91cF0sIGNvbXB1dGVkU3R5bGVTaG93QWxsTGFiZWwpOwotICAgICAgICBwcm9wZXJ0aWVz
U2VjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxhcHNl
ZFN0YXRlQ2hhbmdlZCwgdGhpcy5faGFuZGxlUHJvcGVydGllc1NlY3Rpb25Db2xsYXBzZWRTdGF0
ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzU2VjdGlvbiA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvbigiY29tcHV0ZWQtc3R5bGUtcHJvcGVydGllcyIsIFdJLlVJU3RyaW5n
KCJQcm9wZXJ0aWVzIiksIFtwcm9wZXJ0aWVzR3JvdXBdLCBjb21wdXRlZFN0eWxlU2hvd0FsbExh
YmVsKTsKKyAgICAgICAgdGhpcy5fcHJvcGVydGllc1NlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihX
SS5EZXRhaWxzU2VjdGlvbi5FdmVudC5Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMuX2hhbmRs
ZVByb3BlcnRpZXNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzKTsKIAogICAgICAg
ICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IpOwogCiAgICAgICAg
IHByb3BlcnRpZXNSb3cuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9wcm9wZXJ0aWVzVGV4dEVk
aXRvci5lbGVtZW50KTsKIAotICAgICAgICB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yID0gbmV3
IFdJLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yKHRoaXMpOwotICAgICAgICB0aGlzLl92
YXJpYWJsZXNUZXh0RWRpdG9yLnByb3BlcnR5VmlzaWJpbGl0eU1vZGUgPSBXSS5DU1NTdHlsZURl
Y2xhcmF0aW9uVGV4dEVkaXRvci5Qcm9wZXJ0eVZpc2liaWxpdHlNb2RlLkhpZGVOb25WYXJpYWJs
ZXM7Ci0gICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3Iuc29ydFByb3BlcnRpZXMgPSB0
cnVlOworICAgICAgICB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yID0gbmV3IFdJLlNwcmVhZHNo
ZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvcih0aGlzKTsKKyAgICAgICAgdGhpcy5fdmFyaWFi
bGVzVGV4dEVkaXRvci5wcm9wZXJ0eVZpc2liaWxpdHlNb2RlID0gV0kuU3ByZWFkc2hlZXRDU1NT
dHlsZURlY2xhcmF0aW9uRWRpdG9yLlByb3BlcnR5VmlzaWJpbGl0eU1vZGUuSGlkZU5vblZhcmlh
YmxlczsKKyAgICAgICAgdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRvci5oaWRlRmlsdGVyTm9uTWF0
Y2hpbmdQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fdmFyaWFibGVzVGV4dEVkaXRv
ci5zb3J0UHJvcGVydGllc0J5TmFtZSA9IHRydWU7CisgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1Rl
eHRFZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcihXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRp
b25FZGl0b3IuRXZlbnQuRmlsdGVyQXBwbGllZCwgdGhpcy5faGFuZGxlRWRpdG9yRmlsdGVyQXBw
bGllZCwgdGhpcyk7CiAKICAgICAgICAgbGV0IHZhcmlhYmxlc1JvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblJvdzsKICAgICAgICAgbGV0IHZhcmlhYmxlc0dyb3VwID0gbmV3IFdJLkRldGFpbHNT
ZWN0aW9uR3JvdXAoW3ZhcmlhYmxlc1Jvd10pOwpAQCAtMTcwLDE3ICsxNTQsMjQgQEAgV0kuQ29t
cHV0ZWRTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIENvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwg
ZXh0ZW5kcyBXSS5TdHlsZUQKIAogICAgICAgICB2YXJpYWJsZXNSb3cuZWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yLmVsZW1lbnQpOwogCi0gICAgICAgIHRoaXMu
ZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzU2VjdGlvbi5lbGVtZW50KTsKKyAgICAgICAg
dGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Byb3BlcnRpZXNTZWN0aW9uLmVsZW1lbnQp
OwogICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdmFyaWFibGVzU2VjdGlv
bi5lbGVtZW50KTsKIAogICAgICAgICB0aGlzLl9ib3hNb2RlbERpYWdyYW1Sb3cgPSBuZXcgV0ku
Qm94TW9kZWxEZXRhaWxzU2VjdGlvblJvdzsKIAogICAgICAgICBsZXQgYm94TW9kZWxHcm91cCA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9ib3hNb2RlbERpYWdyYW1Sb3ddKTsK
LSAgICAgICAgbGV0IGJveE1vZGVsU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigic3R5
bGUtYm94LW1vZGVsIiwgV0kuVUlTdHJpbmcoIkJveCBNb2RlbCIpLCBbYm94TW9kZWxHcm91cF0p
OworICAgICAgICBsZXQgYm94TW9kZWxTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJj
b21wdXRlZC1zdHlsZS1ib3gtbW9kZWwiLCBXSS5VSVN0cmluZygiQm94IE1vZGVsIiksIFtib3hN
b2RlbEdyb3VwXSk7CiAKICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGJveE1vZGVs
U2VjdGlvbi5lbGVtZW50KTsKICAgICB9CiAKKyAgICBmaWx0ZXJEaWRDaGFuZ2UoZmlsdGVyQmFy
KQorICAgIHsKKyAgICAgICAgc3VwZXIuZmlsdGVyRGlkQ2hhbmdlKGZpbHRlckJhcik7CisKKyAg
ICAgICAgdGhpcy5hcHBseUZpbHRlcihmaWx0ZXJCYXIuZmlsdGVycy50ZXh0KTsKKyAgICB9CisK
ICAgICAvLyBQcml2YXRlCiAKICAgICBfY29tcHV0ZWRTdHlsZVNob3dBbGxDaGVja2JveFZhbHVl
Q2hhbmdlZChldmVudCkKQEAgLTE4OCwxOSArMTc5LDMwIEBAIFdJLkNvbXB1dGVkU3R5bGVEZXRh
aWxzUGFuZWwgPSBjbGFzcyBDb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMgV0kuU3R5
bGVECiAgICAgICAgIGxldCBjaGVja2VkID0gdGhpcy5fY29tcHV0ZWRTdHlsZVNob3dBbGxDaGVj
a2JveC5jaGVja2VkOwogICAgICAgICB0aGlzLl9jb21wdXRlZFN0eWxlU2hvd0FsbFNldHRpbmcu
dmFsdWUgPSBjaGVja2VkOwogICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzVGV4dEVkaXRvci5zaG93
c0ltcGxpY2l0UHJvcGVydGllcyA9IGNoZWNrZWQ7Ci0gICAgICAgIHRoaXMuX3Byb3BlcnRpZXNU
ZXh0RWRpdG9yLnVwZGF0ZUxheW91dCgpOwogICAgIH0KIAogICAgIF9oYW5kbGVQcm9wZXJ0aWVz
U2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZChldmVudCkKICAgICB7CiAgICAgICAgIGlmIChl
dmVudCAmJiBldmVudC5kYXRhICYmICFldmVudC5kYXRhLmNvbGxhcHNlZCkKLSAgICAgICAgICAg
IHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLnJlZnJlc2goKTsKKyAgICAgICAgICAgIHRoaXMu
X3Byb3BlcnRpZXNUZXh0RWRpdG9yLm5lZWRzTGF5b3V0KCk7CiAgICAgfQogCiAgICAgX2hhbmRs
ZVZhcmlhYmxlc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQoZXZlbnQpCiAgICAgewogICAg
ICAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGF0YSAmJiAhZXZlbnQuZGF0YS5jb2xsYXBzZWQpCi0g
ICAgICAgICAgICB0aGlzLl92YXJpYWJsZXNUZXh0RWRpdG9yLnJlZnJlc2goKTsKKyAgICAgICAg
ICAgIHRoaXMuX3ZhcmlhYmxlc1RleHRFZGl0b3IubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAg
ICBfaGFuZGxlRWRpdG9yRmlsdGVyQXBwbGllZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCBz
ZWN0aW9uID0gbnVsbDsKKyAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fcHJvcGVy
dGllc1RleHRFZGl0b3IpCisgICAgICAgICAgICBzZWN0aW9uID0gdGhpcy5fcHJvcGVydGllc1Nl
Y3Rpb247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fdmFyaWFibGVz
VGV4dEVkaXRvcikKKyAgICAgICAgICAgIHNlY3Rpb24gPSB0aGlzLl92YXJpYWJsZXNTZWN0aW9u
OworCisgICAgICAgIGlmIChzZWN0aW9uKQorICAgICAgICAgICAgc2VjdGlvbi5lbGVtZW50LmNs
YXNzTGlzdC50b2dnbGUoImhpZGRlbiIsICFldmVudC5kYXRhLm1hdGNoZXMpOwogICAgIH0KIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RldGFpbHNTZWN0aW9uLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RldGFpbHNTZWN0aW9uLmNzcwppbmRleCAzYzk4ODNlY2IzZTVkZGIyNDhkZWVmZjY5
MGVlY2U2ZTMzM2VjYjJmLi5jNjJkZGM0NGNlMDZhZDM3MmM2OTc0MzA0MDkzMGQyOWVkNDM5N2Ew
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9E
ZXRhaWxzU2VjdGlvbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uY3NzCkBAIC0xMDcsMTAgKzEwNyw2IEBAIGJvZHlbZGly
PXJ0bF0gLmRldGFpbHMtc2VjdGlvbiA+IC5oZWFkZXIgPiAub3B0aW9ucyB7CiAgICAgYm9yZGVy
LWJvdHRvbTogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODclKTsKIH0KIAotLmRldGFpbHMtc2VjdGlv
bi5jb21wdXRlZC1zdHlsZS1wcm9wZXJ0aWVzOm5vdCguY29sbGFwc2VkKSA+IC5oZWFkZXIgewot
ICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7Ci19Ci0KIC5kZXRhaWxzLXNl
Y3Rpb24gPiAuaGVhZGVyOjpiZWZvcmUgewogICAgIGRpc3BsYXk6IGJsb2NrOwogICAgIHdpZHRo
OiAyMXB4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFu
ZWwuanMKaW5kZXggNDA5ODdiYjg3Nzc4YmJjYzk3ZWI5YjI4MDAyNWQxYmQzNDViNzE4OC4uOTcw
OGVjNWI4N2RkMGE0MTI1MmU2YzhiMzE5YWU0ODUwNTJkMjgyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR2VuZXJhbFN0eWxlRGV0YWlsc1Np
ZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9HZW5lcmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC0xNjUsOCArMTY1LDYg
QEAgV0kuR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIEdlbmVyYWxTdHls
ZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW4KICAgICAgICAgICAgIHRoaXMuY29udGVudFZpZXcu
ZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9mb3JjZWRQc2V1ZG9DbGFzc0NvbnRhaW5lcik7CiAg
ICAgICAgIH0KIAotICAgICAgICB0aGlzLl9wYW5lbC5hZGRFdmVudExpc3RlbmVyKFdJLlN0eWxl
RGV0YWlsc1BhbmVsLkV2ZW50LlJlZnJlc2hlZCwgdGhpcy5fZmlsdGVyRGlkQ2hhbmdlLCB0aGlz
KTsKLQogICAgICAgICB0aGlzLl9zaG93UGFuZWwodGhpcy5fcGFuZWwpOwogCiAgICAgICAgIGxl
dCBvcHRpb25zQ29udGFpbmVyID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAib3B0
aW9ucy1jb250YWluZXIiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5jc3Mg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENT
U1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuY3NzCmluZGV4IDRiN2Y3YTA3MmU5Yzc2OTBiN2Y2MGMy
NGE3NmViMzc5MzA0YTk2MWMuLjJhNDJmMjQxOGVkMTNiNjRiYjM5NDNiYjZhNmUxNzQ4NDJmNTkx
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5jc3MKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xh
cmF0aW9uRWRpdG9yLmNzcwpAQCAtMjYsNiArMjYsMTAgQEAKIC5zcHJlYWRzaGVldC1zdHlsZS1k
ZWNsYXJhdGlvbi1lZGl0b3IgewogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICBjbGVhcjog
Ym90aDsKKyAgICBmb250LWZhbWlseTogTWVubG8sIG1vbm9zcGFjZTsKKyAgICBmb250LXNpemU6
IDExcHg7CisgICAgY29sb3I6IGhzbCgwLCAwJSwgNzAlKTsKKyAgICAtd2Via2l0LXVzZXItc2Vs
ZWN0OiB0ZXh0OwogfQogCiAuc3ByZWFkc2hlZXQtc3R5bGUtZGVjbGFyYXRpb24tZWRpdG9yIC5w
cm9wZXJ0eSB7CkBAIC0xMTYsNyArMTIwLDcgQEAKICAgICAtd2Via2l0LWNsaXAtcGF0aDogcG9s
eWdvbigwJSA1MCUsIDZweCAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlLCA2cHggMTAwJSk7CiB9CiAK
LS5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IgLnByb3BlcnR5Lm5vdC1pbmhl
cml0ZWQgLmNvbnRlbnQgPiAqIHsKKy5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0
b3IgLnByb3BlcnR5Om1hdGNoZXMoLmltcGxpY2l0LCAubm90LWluaGVyaXRlZCkgLmNvbnRlbnQg
PiAqIHsKICAgICBvcGFjaXR5OiAwLjU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlv
bkVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nw
cmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5qcwppbmRleCBiYzZkYmI1NDI2Y2U0
NmI4YzZmOWU0Njk0Yjk5MjdkNDQzNWE3NzAxLi5lODIyN2RjY2JhYTRlYTVmMjNjZGQ1YjE2ZWRh
N2E5MjlhYTRmNjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NT
dHlsZURlY2xhcmF0aW9uRWRpdG9yLmpzCkBAIC0zNSw4ICszNSwxNCBAQCBXSS5TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVj
bGFyYXRpb25FZAogICAgICAgICB0aGlzLnN0eWxlID0gc3R5bGU7CiAgICAgICAgIHRoaXMuX3By
b3BlcnR5Vmlld3MgPSBbXTsKIAotICAgICAgICB0aGlzLl9pbmxpbmVTd2F0Y2hBY3RpdmUgPSBm
YWxzZTsKICAgICAgICAgdGhpcy5fZm9jdXNlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9pbmxp
bmVTd2F0Y2hBY3RpdmUgPSBmYWxzZTsKKworICAgICAgICB0aGlzLl9zaG93c0ltcGxpY2l0UHJv
cGVydGllcyA9IGZhbHNlOworICAgICAgICB0aGlzLl9hbHdheXNTaG93UHJvcGVydHlOYW1lcyA9
IG5ldyBTZXQ7CisgICAgICAgIHRoaXMuX3Byb3BlcnR5VmlzaWJpbGl0eU1vZGUgPSBXSS5TcHJl
YWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuUHJvcGVydHlWaXNpYmlsaXR5TW9kZS5T
aG93QWxsOworICAgICAgICB0aGlzLl9oaWRlRmlsdGVyTm9uTWF0Y2hpbmdQcm9wZXJ0aWVzID0g
ZmFsc2U7CisgICAgICAgIHRoaXMuX3NvcnRQcm9wZXJ0aWVzQnlOYW1lID0gZmFsc2U7CiAKICAg
ICAgICAgdGhpcy5fcHJvcGVydHlQZW5kaW5nU3RhcnRFZGl0aW5nID0gbnVsbDsKICAgICAgICAg
dGhpcy5fcGVuZGluZ0FkZEJsYW5rUHJvcGVydHlJbmRleE9mZnNldCA9IE5hTjsKQEAgLTQ3LDcg
KzUzLDcgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3Mg
U3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQKIAogICAgIGluaXRpYWxMYXlvdXQoKQog
ICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICBpZiAoIXRo
aXMuX3N0eWxlIHx8ICF0aGlzLl9zdHlsZS5lZGl0YWJsZSkKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCAoKSA9PiB7
IHRoaXMuZm9jdXNlZCA9IHRydWU7IH0sIHRydWUpOwpAQCAtNzEsNyArNzcsNyBAQCBXSS5TcHJl
YWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZAogCiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigp
OwogCi0gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gdGhpcy5fcHJvcGVydGllc1RvUmVuZGVyOwor
ICAgICAgICBsZXQgcHJvcGVydGllcyA9IHRoaXMucHJvcGVydGllc1RvUmVuZGVyOwogICAgICAg
ICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgibm8tcHJvcGVydGllcyIsICFwcm9wZXJ0
aWVzLmxlbmd0aCk7CiAKICAgICAgICAgLy8gRklYTUU6IE9ubHkgcmUtbGF5b3V0IHByb3BlcnRp
ZXMgdGhhdCBoYXZlIGJlZW4gbW9kaWZpZWQgYW5kIHByZXNlcnZlIGZvY3VzIHdoZW5ldmVyIHBv
c3NpYmxlLgpAQCAtMTU0LDYgKzE2MCw3NyBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFy
YXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAg
ICAgICB0aGlzLl91cGRhdGVTdHlsZUxvY2soKTsKICAgICB9CiAKKyAgICBzZXQgc2hvd3NJbXBs
aWNpdFByb3BlcnRpZXModmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMu
X3Nob3dzSW1wbGljaXRQcm9wZXJ0aWVzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHRoaXMuX3Nob3dzSW1wbGljaXRQcm9wZXJ0aWVzID0gdmFsdWU7CisKKyAgICAgICAgdGhpcy5u
ZWVkc0xheW91dCgpOworICAgIH0KKworICAgIHNldCBhbHdheXNTaG93UHJvcGVydHlOYW1lcyhw
cm9wZXJ0eU5hbWVzKQorICAgIHsKKyAgICAgICAgdGhpcy5fYWx3YXlzU2hvd1Byb3BlcnR5TmFt
ZXMgPSBuZXcgU2V0KHByb3BlcnR5TmFtZXMpOworCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQo
KTsKKyAgICB9CisKKyAgICBzZXQgcHJvcGVydHlWaXNpYmlsaXR5TW9kZShwcm9wZXJ0eVZpc2li
aWxpdHlNb2RlKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3Byb3BlcnR5VmlzaWJpbGl0eU1v
ZGUgPT09IHByb3BlcnR5VmlzaWJpbGl0eU1vZGUpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgdGhpcy5fcHJvcGVydHlWaXNpYmlsaXR5TW9kZSA9IHByb3BlcnR5VmlzaWJpbGl0eU1v
ZGU7CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIHNldCBoaWRl
RmlsdGVyTm9uTWF0Y2hpbmdQcm9wZXJ0aWVzKHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZh
bHVlID09PSB0aGlzLl9oaWRlRmlsdGVyTm9uTWF0Y2hpbmdQcm9wZXJ0aWVzKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2hpZGVGaWx0ZXJOb25NYXRjaGluZ1Byb3BlcnRp
ZXMgPSB2YWx1ZTsKKworICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAg
c2V0IHNvcnRQcm9wZXJ0aWVzQnlOYW1lKHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVl
ID09PSB0aGlzLl9zb3J0UHJvcGVydGllc0J5TmFtZSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICB0aGlzLl9zb3J0UHJvcGVydGllc0J5TmFtZSA9IHZhbHVlOworICAgICAgICB0aGlz
Lm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgZ2V0IHByb3BlcnRpZXNUb1JlbmRlcigpCisg
ICAgeworICAgICAgICBsZXQgcHJvcGVydGllcyA9IFtdOworICAgICAgICBpZiAoIXRoaXMuX3N0
eWxlKQorICAgICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXM7CisKKyAgICAgICAgaWYgKHRoaXMu
X3N0eWxlLl9zdHlsZVNoZWV0VGV4dFJhbmdlKQorICAgICAgICAgICAgcHJvcGVydGllcyA9IHRo
aXMuX3N0eWxlLmFsbFZpc2libGVQcm9wZXJ0aWVzOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBwcm9wZXJ0aWVzID0gdGhpcy5fc3R5bGUuYWxsUHJvcGVydGllczsKKworICAgICAgICBpZiAo
dGhpcy5fc29ydFByb3BlcnRpZXNCeU5hbWUpCisgICAgICAgICAgICBwcm9wZXJ0aWVzLnNvcnQo
KGEsIGIpID0+IGEubmFtZS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYi5uYW1lKSk7CisKKyAgICAg
ICAgcmV0dXJuIHByb3BlcnRpZXMuZmlsdGVyKChwcm9wZXJ0eSkgPT4geworICAgICAgICAgICAg
aWYgKCFwcm9wZXJ0eS52YXJpYWJsZSAmJiB0aGlzLl9wcm9wZXJ0eVZpc2liaWxpdHlNb2RlID09
PSBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuUHJvcGVydHlWaXNpYmls
aXR5TW9kZS5IaWRlTm9uVmFyaWFibGVzKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICAgICAgaWYgKHByb3BlcnR5LnZhcmlhYmxlICYmIHRoaXMuX3Byb3BlcnR5Vmlz
aWJpbGl0eU1vZGUgPT09IFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5Q
cm9wZXJ0eVZpc2liaWxpdHlNb2RlLkhpZGVWYXJpYWJsZXMpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgICAgICByZXR1cm4gIXByb3BlcnR5LmltcGxpY2l0IHx8IHRo
aXMuX3Nob3dzSW1wbGljaXRQcm9wZXJ0aWVzIHx8IHRoaXMuX2Fsd2F5c1Nob3dQcm9wZXJ0eU5h
bWVzLmhhcyhwcm9wZXJ0eS5jYW5vbmljYWxOYW1lKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAg
ICAgc3RhcnRFZGl0aW5nRmlyc3RQcm9wZXJ0eSgpCiAgICAgewogICAgICAgICBsZXQgZmlyc3RF
ZGl0YWJsZVByb3BlcnR5ID0gdGhpcy5fZWRpdGFibGVQcm9wZXJ0eUFmdGVyKC0xKTsKQEAgLTIw
MSw3ICsyNzgsNyBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBj
bGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICB9OwogCi0gICAgICAgIGZvciAobGV0IGNzc1Byb3BlcnR5IG9mIHRo
aXMuc3R5bGUucHJvcGVydGllcykgeworICAgICAgICBmb3IgKGxldCBjc3NQcm9wZXJ0eSBvZiB0
aGlzLl9zdHlsZS5wcm9wZXJ0aWVzKSB7CiAgICAgICAgICAgICBpZiAocHJvcGVydGllc01hdGNo
KGNzc1Byb3BlcnR5KSkgewogICAgICAgICAgICAgICAgIGxldCBwcm9wZXJ0eVZpZXcgPSBjc3NQ
cm9wZXJ0eS5fX3Byb3BlcnR5VmlldzsKICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlWaWV3
KSB7CkBAIC0yMzAsNiArMzA3LDI5IEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlv
bkVkaXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAgICAgICAg
IHRoaXMubmVlZHNMYXlvdXQoKTsKICAgICB9CiAKKyAgICBhcHBseUZpbHRlcihmaWx0ZXJUZXh0
KQorICAgIHsKKyAgICAgICAgdGhpcy5fZmlsdGVyVGV4dCA9IGZpbHRlclRleHQ7CisKKyAgICAg
ICAgaWYgKCF0aGlzLmRpZEluaXRpYWxMYXlvdXQpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgbGV0IG1hdGNoZXMgPSBmYWxzZTsKKyAgICAgICAgZm9yIChsZXQgcHJvcGVydHlWaWV3
IG9mIHRoaXMuX3Byb3BlcnR5Vmlld3MpIHsKKyAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZpZXcu
YXBwbHlGaWx0ZXIodGhpcy5fZmlsdGVyVGV4dCkpIHsKKyAgICAgICAgICAgICAgICBtYXRjaGVz
ID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9oaWRlRmlsdGVyTm9uTWF0Y2hp
bmdQcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHBy
b3BlcnR5Vmlldy5lbGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5faGlkZUZp
bHRlck5vbk1hdGNoaW5nUHJvcGVydGllcykKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eVZpZXcu
ZWxlbWVudC5yZW1vdmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5FdmVu
dC5GaWx0ZXJBcHBsaWVkLCB7bWF0Y2hlc30pOworICAgIH0KKworICAgIC8vIFNwcmVhZHNoZWV0
U3R5bGVQcm9wZXJ0eSBkZWxlZ2F0ZQorCiAgICAgc3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5Rm9j
dXNNb3ZlZChwcm9wZXJ0eVZpZXcsIHtkaXJlY3Rpb24sIHdpbGxSZW1vdmVQcm9wZXJ0eX0pCiAg
ICAgewogICAgICAgICB0aGlzLl91cGRhdGVQcm9wZXJ0aWVzU3RhdHVzKCk7CkBAIC0yNzcsOCAr
Mzc3LDYgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3Mg
U3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQKICAgICAgICAgfQogICAgIH0KIAotICAg
IC8vIFNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSBkZWxlZ2F0ZQotCiAgICAgc3ByZWFkc2hlZXRT
dHlsZVByb3BlcnR5QWRkQmxhbmtQcm9wZXJ0eVNvb24ocHJvcGVydHlWaWV3LCB7aW5kZXh9KQog
ICAgIHsKICAgICAgICAgaWYgKGlzTmFOKGluZGV4KSkKQEAgLTI5Niw2ICszOTQsMTIgQEAgV0ku
U3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3MgU3ByZWFkc2hlZXRD
U1NTdHlsZURlY2xhcmF0aW9uRWQKICAgICAgICAgdGhpcy5fZm9jdXNlZCA9IGZhbHNlOwogICAg
IH0KIAorICAgIHNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eVNob3dQcm9wZXJ0eShwcm9wZXJ0eVZp
ZXcsIHByb3BlcnR5KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlLnNwcmVhZHNo
ZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvclNob3dQcm9wZXJ0eSkKKyAgICAgICAgICAgIHRo
aXMuX2RlbGVnYXRlLnNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvclNob3dQcm9w
ZXJ0eSh0aGlzLCBwcm9wZXJ0eSk7CisgICAgfQorCiAgICAgc3R5bGVQcm9wZXJ0eUlubGluZVN3
YXRjaEFjdGl2YXRlZCgpCiAgICAgewogICAgICAgICB0aGlzLmlubGluZVN3YXRjaEFjdGl2ZSA9
IHRydWU7CkBAIC0zMDYsMzIgKzQxMCw4IEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkaXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAgICAg
ICAgIHRoaXMuaW5saW5lU3dhdGNoQWN0aXZlID0gZmFsc2U7CiAgICAgfQogCi0gICAgYXBwbHlG
aWx0ZXIoZmlsdGVyVGV4dCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2ZpbHRlclRleHQgPSBmaWx0
ZXJUZXh0OwotCi0gICAgICAgIGlmICghdGhpcy5kaWRJbml0aWFsTGF5b3V0KQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBtYXRjaGVzID0gZmFsc2U7Ci0gICAgICAgIGZvciAo
bGV0IHByb3BlcnR5VmlldyBvZiB0aGlzLl9wcm9wZXJ0eVZpZXdzKSB7Ci0gICAgICAgICAgICBp
ZiAocHJvcGVydHlWaWV3LmFwcGx5RmlsdGVyKHRoaXMuX2ZpbHRlclRleHQpKQotICAgICAgICAg
ICAgICAgIG1hdGNoZXMgPSB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
LkV2ZW50LkZpbHRlckFwcGxpZWQsIHttYXRjaGVzfSk7Ci0gICAgfQotCiAgICAgLy8gUHJpdmF0
ZQogCi0gICAgZ2V0IF9wcm9wZXJ0aWVzVG9SZW5kZXIoKQotICAgIHsKLSAgICAgICAgaWYgKHRo
aXMuX3N0eWxlLl9zdHlsZVNoZWV0VGV4dFJhbmdlKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X3N0eWxlLmFsbFZpc2libGVQcm9wZXJ0aWVzOwotCi0gICAgICAgIHJldHVybiB0aGlzLl9zdHls
ZS5hbGxQcm9wZXJ0aWVzOwotICAgIH0KLQogICAgIF9lZGl0YWJsZVByb3BlcnR5QWZ0ZXIocHJv
cGVydHlJbmRleCkKICAgICB7CiAgICAgICAgIGZvciAobGV0IGluZGV4ID0gcHJvcGVydHlJbmRl
eCArIDE7IGluZGV4IDwgdGhpcy5fcHJvcGVydHlWaWV3cy5sZW5ndGg7IGluZGV4KyspIHsKQEAg
LTM3MCw3ICs0NTAsMTAgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
ID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQKIAogICAgIF91cGRhdGVT
dHlsZUxvY2soKQogICAgIHsKLSAgICAgICAgdGhpcy5zdHlsZS5sb2NrZWQgPSB0aGlzLl9mb2N1
c2VkIHx8IHRoaXMuX2lubGluZVN3YXRjaEFjdGl2ZTsKKyAgICAgICAgaWYgKCF0aGlzLl9zdHls
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9zdHlsZS5sb2NrZWQgPSB0
aGlzLl9mb2N1c2VkIHx8IHRoaXMuX2lubGluZVN3YXRjaEFjdGl2ZTsKICAgICB9CiB9OwogCkBA
IC0zNzksMyArNDYyLDkgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
LkV2ZW50ID0gewogfTsKIAogV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
LlN0eWxlQ2xhc3NOYW1lID0gInNwcmVhZHNoZWV0LXN0eWxlLWRlY2xhcmF0aW9uLWVkaXRvciI7
CisKK1dJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5Qcm9wZXJ0eVZpc2li
aWxpdHlNb2RlID0geworICAgIFNob3dBbGw6IFN5bWJvbCgidmFyaWFibGUtdmlzaWJpbGl0eS1z
aG93LWFsbCIpLAorICAgIEhpZGVWYXJpYWJsZXM6IFN5bWJvbCgidmFyaWFibGUtdmlzaWJpbGl0
eS1oaWRlLXZhcmlhYmxlcyIpLAorICAgIEhpZGVOb25WYXJpYWJsZXM6IFN5bWJvbCgidmFyaWFi
bGUtdmlzaWJpbGl0eS1oaWRlLW5vbi12YXJpYWJsZXMiKSwKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxl
RGVjbGFyYXRpb25TZWN0aW9uLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3NzCmluZGV4
IGFiMjFlOWExYWRhYzM1NDRjMDhiYTA4Y2MyYzZlN2RhMjZmODQ0YjAuLmQ1NGU3MWEyMTk3YTA5
YjhkY2UzNWJkODc5YjgwNTg3ZGQxMDA2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24uY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3NzCkBAIC0yNywxMyArMjcs
MTEgQEAKICAgICBtYXJnaW46IDA7CiAgICAgcGFkZGluZzogMCAwIHZhcigtLWNzcy1kZWNsYXJh
dGlvbi12ZXJ0aWNhbC1wYWRkaW5nKTsKICAgICBmb250LWZhbWlseTogTWVubG8sIG1vbm9zcGFj
ZTsKKyAgICBmb250LXNpemU6IDExcHg7CiAgICAgY29sb3I6IGhzbCgwLCAwJSwgNzAlKTsKICAg
ICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCBoc2xh
KDAsIDAlLCAwJSwgMC4yKTsKICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwotCi0gICAg
LS1jc3MtZGVjbGFyYXRpb24tdmVydGljYWwtcGFkZGluZzogNHB4OwotICAgIC0tY3NzLWRlY2xh
cmF0aW9uLWhvcml6b250YWwtcGFkZGluZzogNnB4OwogfQogCiAuc3ByZWFkc2hlZXQtY3NzLWRl
Y2xhcmF0aW9uIDptYXRjaGVzKC5oZWFkZXIsIC5oZWFkZXItbWVkaWEpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0UnVs
ZXNTdHlsZURldGFpbHNQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwuY3NzCmluZGV4IDAx
MDczOGE4MTEwNWUyZjQ1MjhkMjdiMTc1Nzc5OTJiMGQwMDExYWIuLmY2ODZkYjQxMjMzNTdiYTcy
MTA0NDRlOWU3OTIwN2EwYmI4OTk5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0UnVsZXNTdHlsZURldGFpbHNQYW5lbC5j
c3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFk
c2hlZXRSdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmNzcwpAQCAtMjMsODUgKzIzLDYgQEAKICAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0uc3R5bGUtc3ByZWFkc2hlZXQg
LnN0eWxlLXJ1bGUgewotICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgbW9ub3NwYWNlOwotICAgIC13
ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7Ci0gICAgcGFkZGluZzogNHB4IDZweDsKLSAgICBtYXJn
aW46IDA7Ci0KLSAgICBjb2xvcjogaHNsKDAsIDAlLCA3MCUpOwotICAgIGJhY2tncm91bmQ6IHdo
aXRlOwotICAgIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIGhzbGEoMCwgMCUsIDAlLCAwLjIp
OwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgLnNlbGVjdG9yLWxpbmUgewotICAgIGZsb2F0OiBs
ZWZ0OwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgLnNlbGVjdG9yIHsKLSAgICBjb2xvcjogaHNs
KDAsIDAlLCA1MCUpOwotICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKLX0KLQotLnN0eWxlLXNw
cmVhZHNoZWV0IDptYXRjaGVzKC5zZWxlY3RvciAubWF0Y2hlZCwgLnNlbGVjdG9yOmZvY3VzKSB7
Ci0gICAgY29sb3I6IGJsYWNrOwotfQotCi0uc3R5bGUtc3ByZWFkc2hlZXQgLm5hbWUgewotICAg
IGNvbG9yOiB2YXIoLS1zeW50YXgtaGlnaGxpZ2h0LWJvb2xlYW4tY29sb3IpOwotfQotCi0uc3R5
bGUtc3ByZWFkc2hlZXQgLnZhbHVlIHsKLSAgICBjb2xvcjogYmxhY2s7Ci19Ci0KLS5zdHlsZS1z
cHJlYWRzaGVldCA6bWF0Y2hlcyguc2VsZWN0b3IsIC5uYW1lLCAudmFsdWUpIHsKLSAgICAtd2Vi
a2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlLXBsYWludGV4dC1vbmx5OwotfQotCi0uc3R5bGUt
c3ByZWFkc2hlZXQgOm1hdGNoZXMoLnNlbGVjdG9yLCAubmFtZSwgLnZhbHVlKTpmb2N1cyB7Ci0g
ICAgb3V0bGluZTogMXB4IHNvbGlkIHdoaXRlOwotICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAx
cHggaHNsYSgwLCAwJSwgMCUsIDAuNik7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAuc2VsZWN0
b3ItaW5saW5lIHsKLSAgICAtd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLW9ubHk7Ci0gICAgY29s
b3I6IGhzbCgwLCAwJSwgNTAlKTsKLSAgICBmb250OiAxMnB4IHNhbnMtc2VyaWY7Ci19Ci0KLS5z
dHlsZS1zcHJlYWRzaGVldCAucHJvcGVydHkgewotICAgIHBhZGRpbmctbGVmdDogMTZweDsKLX0K
LQotLnN0eWxlLXNwcmVhZHNoZWV0IC5wcm9wZXJ0eS1kaXNhYmxlZCwKLS5zdHlsZS1zcHJlYWRz
aGVldCAucHJvcGVydHktZGlzYWJsZWQgKiB7Ci0gICAgY29sb3I6IGhzbCgxMTksIDEwMCUsIDIy
JSk7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCAucHJvcGVydHktZGlzYWJsZWQgOm1hdGNoZXMo
Lm5hbWUsIC52YWx1ZSkgewotICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtb25seTsKLX0K
LQotLnN0eWxlLXNwcmVhZHNoZWV0IC5zdHlsZXMtc291cmNlIHsKLSAgICBmbG9hdDogcmlnaHQ7
Ci0gICAgZm9udDogMTFweCBzYW5zLXNlcmlmOwotICAgIG1heC13aWR0aDogMTAwJTsKLSAgICB0
ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKLSAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwotICAgIG92
ZXJmbG93OiBoaWRkZW47Ci0KLSAgICBtYXJnaW4tdG9wOiAtMXB4OwotfQotCi0uc3R5bGUtc3By
ZWFkc2hlZXQgOm1hdGNoZXMoYSwgLm5vZGUtbGluaykgewotICAgIGNvbG9yOiBoc2woMCwgMCUs
IDUwJSk7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCA6bWF0Y2hlcyhhLCAubm9kZS1saW5rKTpo
b3ZlciB7Ci0gICAgY29sb3I6IGhzbCgwLCAwJSwgMzMlKTsKLX0KLQogLnNwcmVhZHNoZWV0LXN0
eWxlLXBhbmVsIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgbWFyZ2luOiAwOwogICAgIHBhZGRpbmc6
IDRweCA2cHg7CkBAIC0xMTksMjkgKzQwLDYgQEAKICAgICBjb2xvcjogYmxhY2s7CiB9CiAKLS5z
dHlsZS1zcHJlYWRzaGVldCAuZGVjbGFyYXRpb25zIHsKLSAgICBjbGVhcjogbGVmdDsKLSAgICBw
b3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCBpbnB1dFt0eXBlPSJj
aGVja2JveCJdIHsKLSAgICB2aXNpYmlsaXR5OiBoaWRkZW47Ci0KLSAgICBwb3NpdGlvbjogYWJz
b2x1dGU7Ci0gICAgbGVmdDogMDsKLQotICAgIGhlaWdodDogMTFweDsKLSAgICBtYXJnaW46IDA7
Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVldCBpbnB1dFt0eXBlPSJjaGVja2JveCJdOm5vdCg6Y2hl
Y2tlZCkgewotICAgIHZpc2liaWxpdHk6IHZpc2libGU7Ci19Ci0KLS5zdHlsZS1zcHJlYWRzaGVl
dCAuZGVjbGFyYXRpb25zOmhvdmVyIGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewotICAgIHZpc2li
aWxpdHk6IHZpc2libGU7Ci19Ci0KIEBtZWRpYSAocHJlZmVycy1kYXJrLWludGVyZmFjZSkgewog
ICAgIC5zcHJlYWRzaGVldC1zdHlsZS1wYW5lbCAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgICBj
b2xvcjogdmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hl
ZXRTdHlsZVByb3BlcnR5LmpzCmluZGV4IDc0ZjE1ZTEyNWI0NGRmNGEyNWRmNzc1Y2ZhMTExNjU0
N2I1NTA4MWUuLjMwN2NiY2E5Zjk2OWYwOGU0ZjE5NTZjNDJiMDZkMDEyOTYzZjUzNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNo
ZWV0U3R5bGVQcm9wZXJ0eS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMKQEAgLTE0Nyw5ICsxNDcsMTIg
QEAgV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5ID0gY2xhc3MgU3ByZWFkc2hlZXRTdHlsZVBy
b3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgYXBwbHlGaWx0ZXIoZmlsdGVyVGV4dCkKICAg
ICB7CiAgICAgICAgIGxldCBtYXRjaGVzTmFtZSA9IHRoaXMuX25hbWVFbGVtZW50LnRleHRDb250
ZW50LmluY2x1ZGVzKGZpbHRlclRleHQpOworICAgICAgICB0aGlzLl9uYW1lRWxlbWVudC5jbGFz
c0xpc3QudG9nZ2xlKFdJLkdlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuRmlsdGVyTWF0
Y2hTZWN0aW9uQ2xhc3NOYW1lLCAhIW1hdGNoZXNOYW1lKTsKKwogICAgICAgICBsZXQgbWF0Y2hl
c1ZhbHVlID0gdGhpcy5fdmFsdWVFbGVtZW50LnRleHRDb250ZW50LmluY2x1ZGVzKGZpbHRlclRl
eHQpOworICAgICAgICB0aGlzLl92YWx1ZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShXSS5HZW5l
cmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLkZpbHRlck1hdGNoU2VjdGlvbkNsYXNzTmFtZSwg
ISFtYXRjaGVzVmFsdWUpOworCiAgICAgICAgIGxldCBtYXRjaGVzID0gbWF0Y2hlc05hbWUgfHwg
bWF0Y2hlc1ZhbHVlOwotICAgICAgICB0aGlzLl9jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9n
Z2xlKFdJLkdlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuRmlsdGVyTWF0Y2hTZWN0aW9u
Q2xhc3NOYW1lLCBtYXRjaGVzKTsKICAgICAgICAgdGhpcy5fY29udGVudEVsZW1lbnQuY2xhc3NM
aXN0LnRvZ2dsZShXSS5HZW5lcmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLk5vRmlsdGVyTWF0
Y2hJblByb3BlcnR5Q2xhc3NOYW1lLCAhbWF0Y2hlcyk7CiAgICAgICAgIHJldHVybiBtYXRjaGVz
OwogICAgIH0KQEAgLTIzMyw2ICsyMzYsMzMgQEAgV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5
ID0gY2xhc3MgU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgdGhpcy5fY29udGVudEVsZW1lbnQuYXBwZW5kKCIgKi8i
KTsKIAorICAgICAgICBpZiAoIXRoaXMuX3Byb3BlcnR5LmltcGxpY2l0ICYmIHRoaXMuX3Byb3Bl
cnR5Lm93bmVyU3R5bGUudHlwZSA9PT0gV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5UeXBlLkNvbXB1
dGVkKSB7CisgICAgICAgICAgICBsZXQgZWZmZWN0aXZlUHJvcGVydHkgPSB0aGlzLl9wcm9wZXJ0
eS5vd25lclN0eWxlLm5vZGVTdHlsZXMuZWZmZWN0aXZlUHJvcGVydHlGb3JOYW1lKHRoaXMuX3By
b3BlcnR5Lm5hbWUpOworICAgICAgICAgICAgaWYgKGVmZmVjdGl2ZVByb3BlcnR5ICYmICFlZmZl
Y3RpdmVQcm9wZXJ0eS5zdHlsZVNoZWV0VGV4dFJhbmdlKQorICAgICAgICAgICAgICAgIGVmZmVj
dGl2ZVByb3BlcnR5ID0gZWZmZWN0aXZlUHJvcGVydHkucmVsYXRlZFNob3J0aGFuZFByb3BlcnR5
OworCisgICAgICAgICAgICBsZXQgb3duZXJSdWxlID0gZWZmZWN0aXZlUHJvcGVydHkgPyBlZmZl
Y3RpdmVQcm9wZXJ0eS5vd25lclN0eWxlLm93bmVyUnVsZSA6IG51bGw7CisKKyAgICAgICAgICAg
IGxldCBhcnJvd0VsZW1lbnQgPSB0aGlzLl9jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZChXSS5j
cmVhdGVHb1RvQXJyb3dCdXR0b24oKSk7CisgICAgICAgICAgICBhcnJvd0VsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoIWVm
ZmVjdGl2ZVByb3BlcnR5IHx8ICFvd25lclJ1bGUgfHwgIWV2ZW50LmFsdEtleSkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5
U2hvd1Byb3BlcnR5KQorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuc3By
ZWFkc2hlZXRTdHlsZVByb3BlcnR5U2hvd1Byb3BlcnR5KHRoaXMsIHRoaXMuX3Byb3BlcnR5KTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIGxldCBzb3VyY2VDb2RlID0gb3duZXJSdWxlLnNvdXJjZUNvZGVMb2NhdGlvbi5z
b3VyY2VDb2RlOworICAgICAgICAgICAgICAgIGxldCB7c3RhcnRMaW5lLCBzdGFydENvbHVtbn0g
PSBlZmZlY3RpdmVQcm9wZXJ0eS5zdHlsZVNoZWV0VGV4dFJhbmdlOworICAgICAgICAgICAgICAg
IFdJLnNob3dTb3VyY2VDb2RlTG9jYXRpb24oc291cmNlQ29kZS5jcmVhdGVTb3VyY2VDb2RlTG9j
YXRpb24oc3RhcnRMaW5lLCBzdGFydENvbHVtbiksIHsKKyAgICAgICAgICAgICAgICAgICAgaWdu
b3JlTmV0d29ya1RhYjogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgaWdub3JlU2VhcmNoVGFi
OiB0cnVlLAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgIGlmIChlZmZlY3RpdmVQcm9wZXJ0eSAmJiBvd25lclJ1bGUpCisgICAgICAgICAgICAgICAg
YXJyb3dFbGVtZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIk9wdGlvbi1jbGljayB0byBzaG93IHNv
dXJjZSIpOworICAgICAgICB9CisKICAgICAgICAgdGhpcy51cGRhdGVTdGF0dXMoKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1ZhcmlhYmxlcy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WYXJpYWJsZXMuY3NzCmluZGV4IGY4NjUyNzBlYTA4MWI0MzgxMGQ1OGRiMTg1ZGY5MDcyNDc2
YzNmZTguLmE3NzRhYzY4MmY2NmYzNzVhZTZhZDA0YzFjYjEwZDI0YzE3ZDEzNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1ZhcmlhYmxlcy5j
c3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmFyaWFi
bGVzLmNzcwpAQCAtMTIzLDYgKzEyMyw5IEBACiAgICAgLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQ6
IDI5cHg7CiAKICAgICAtLXNsaWRlci1oZWlnaHQ6IDExcHg7CisKKyAgICAtLWNzcy1kZWNsYXJh
dGlvbi12ZXJ0aWNhbC1wYWRkaW5nOiA0cHg7CisgICAgLS1jc3MtZGVjbGFyYXRpb24taG9yaXpv
bnRhbC1wYWRkaW5nOiA2cHg7CiB9CiAKIGJvZHkud2luZG93LWluYWN0aXZlIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>