<?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>108183</bug_id>
          
          <creation_ts>2013-01-29 05:27:59 -0800</creation_ts>
          <short_desc>Web Inspector: Create a container class for SidebarPane instances</short_desc>
          <delta_ts>2013-02-04 10:21:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vladislav Kaznacheev">kaznacheev</reporter>
          <assigned_to name="Vladislav Kaznacheev">kaznacheev</assigned_to>
          <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rniwa</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>818854</commentid>
    <comment_count>0</comment_count>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-01-29 05:27:59 -0800</bug_when>
    <thetext>Although WebInspector.SidebarPane has been recently converted to inherit from WebInspector.View there are still some things that are wrong with it:
1. Some inheritors of WebInspector.SidebarPane do lazy initialization in some strange places (such as expand method), not in wasShown as a decent View should.
2. The client code directly inserts SidebarPane instances into DOM, then these instances change their appearance in expand/collapse methods.

There is a better way:
1. SidebarPane instances should live in a dedicated container (SidebarPaneStack).
2. SidebarPaneStack should take care of displaying pane title text, title buttons and collapse/expand behavior (calling show/detach).

This should make for a cleaner code and simplify further refactoring (replacing SidebarPaneStack with a special kind of a tabbed pane when the sidebar width &gt; height).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821476</commentid>
    <comment_count>1</comment_count>
      <attachid>185770</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-01-31 06:26:55 -0800</bug_when>
    <thetext>Created attachment 185770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821484</commentid>
    <comment_count>2</comment_count>
      <attachid>185772</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-01-31 06:34:53 -0800</bug_when>
    <thetext>Created attachment 185772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821612</commentid>
    <comment_count>3</comment_count>
      <attachid>185772</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-31 10:07:44 -0800</bug_when>
    <thetext>Comment on attachment 185772
Patch

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

Overall looks good. We&apos;ll need to go through the sidebars to check whether it regressed anything UI-wise.

&gt; Source/WebCore/ChangeLog:9
&gt; +        SidebarPane&apos;s are inserted into DOM lazily and can belong to more than one container.

SidebarPanes are...

&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:89
&gt; +    this.sidebarPanes.styles.setShowCallback(this.updateStyles.bind(this));

Might be a good time to introduce WebInspector.View.Events.WasShown event. Could be a part of separate change though.

&gt; Source/WebCore/inspector/front-end/SidebarPane.js:38
&gt; +//    this.titleElement = document.createElement(&quot;div&quot;);

Remove this line.

&gt; Source/WebCore/inspector/front-end/SidebarPane.js:39
&gt; +    this.titleElement = document.createDocumentFragment();

this._auxTitleFragment. Btw, what is the point of using fragment here?

&gt; Source/WebCore/inspector/front-end/SidebarPane.js:43
&gt; +    this._expanded = false;

It is weird that we still have this._expanded.

&gt; Source/WebCore/inspector/front-end/SidebarPane.js:91
&gt; +    setExpandCallback: function(callback)

Please annotate these

&gt; Source/WebCore/inspector/front-end/SidebarPane.js:132
&gt; +    addPane: function(pane)

Here and below: please annotate.

&gt; Source/WebCore/inspector/front-end/inspector.css:1788
&gt; +.pane-title + .pane-title, .pane:not(.visible) + .pane-title, .pane-title:first-of-type {

We&apos;ll need to test this thoroughly since there is a lot of minor features associated with the titles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822663</commentid>
    <comment_count>4</comment_count>
      <attachid>185772</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-02-01 05:24:46 -0800</bug_when>
    <thetext>Comment on attachment 185772
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        SidebarPane&apos;s are inserted into DOM lazily and can belong to more than one container.
&gt; 
&gt; SidebarPanes are...

Done

&gt;&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:89
&gt;&gt; +    this.sidebarPanes.styles.setShowCallback(this.updateStyles.bind(this));
&gt; 
&gt; Might be a good time to introduce WebInspector.View.Events.WasShown event. Could be a part of separate change though.

Will file a bug for that.

&gt;&gt; Source/WebCore/inspector/front-end/SidebarPane.js:39
&gt;&gt; +    this.titleElement = document.createDocumentFragment();
&gt; 
&gt; this._auxTitleFragment. Btw, what is the point of using fragment here?

Removed the comment. The fragment is used here because the 5 of the SidebarPane inheritors actively use this.titleElement.appendChild and I did not want to change their code.

&gt;&gt; Source/WebCore/inspector/front-end/SidebarPane.js:43
&gt;&gt; +    this._expanded = false;
&gt; 
&gt; It is weird that we still have this._expanded.

Got rid of _expanded. The expand state is now stored only in SidebarPaneStack

&gt;&gt; Source/WebCore/inspector/front-end/SidebarPane.js:91
&gt;&gt; +    setExpandCallback: function(callback)
&gt; 
&gt; Please annotate these

Done

&gt;&gt; Source/WebCore/inspector/front-end/SidebarPane.js:132
&gt;&gt; +    addPane: function(pane)
&gt; 
&gt; Here and below: please annotate.

Done

&gt;&gt; Source/WebCore/inspector/front-end/inspector.css:1788
&gt;&gt; +.pane-title + .pane-title, .pane:not(.visible) + .pane-title, .pane-title:first-of-type {
&gt; 
&gt; We&apos;ll need to test this thoroughly since there is a lot of minor features associated with the titles.

Oh, I have and I will again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822664</commentid>
    <comment_count>5</comment_count>
      <attachid>186021</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-02-01 05:25:48 -0800</bug_when>
    <thetext>Created attachment 186021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822749</commentid>
    <comment_count>6</comment_count>
      <attachid>186041</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-02-01 07:22:20 -0800</bug_when>
    <thetext>Created attachment 186041
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822798</commentid>
    <comment_count>7</comment_count>
      <attachid>186050</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-02-01 08:07:55 -0800</bug_when>
    <thetext>Created attachment 186050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822981</commentid>
    <comment_count>8</comment_count>
      <attachid>186050</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 11:01:40 -0800</bug_when>
    <thetext>Comment on attachment 186050
Patch

Attachment 186050 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16297939

New failing tests:
inspector/extensions/extensions-events.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823093</commentid>
    <comment_count>9</comment_count>
      <attachid>186050</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 12:02:03 -0800</bug_when>
    <thetext>Comment on attachment 186050
Patch

Attachment 186050 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16293938

New failing tests:
inspector/extensions/extensions-events.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824276</commentid>
    <comment_count>10</comment_count>
      <attachid>186050</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-04 05:31:39 -0800</bug_when>
    <thetext>Comment on attachment 186050
Patch

Please resolve tests issues prior to landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824394</commentid>
    <comment_count>11</comment_count>
      <attachid>186388</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-02-04 08:37:43 -0800</bug_when>
    <thetext>Created attachment 186388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824510</commentid>
    <comment_count>12</comment_count>
      <attachid>186388</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 10:21:08 -0800</bug_when>
    <thetext>Comment on attachment 186388
Patch

Clearing flags on attachment: 186388

Committed r141777: &lt;http://trac.webkit.org/changeset/141777&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824511</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 10:21:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185770</attachid>
            <date>2013-01-31 06:26:55 -0800</date>
            <delta_ts>2013-01-31 06:34:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108183-20130131182339.patch</filename>
            <type>text/plain</type>
            <size>36104</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFjOWI5YzY3OGM2YWYx
OWRiM2EzM2FjZjk3ZTkzNTA4OWIyZTYxMi4uODg1NzU4NmI1N2U0NzUyY2M1ZWExNjA4NDBkOGE2
YTc2YmU3NTU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEzLTAxLTMxICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENyZWF0ZSBhIGNvbnRhaW5lciBjbGFzcyBmb3IgU2lkZWJhclBhbmUgaW5z
dGFuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDgxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
aWRlYmFyUGFuZVN0YWNrIGlzIHJlc3BvbnNpYmxlIGZvciBwYW5lIHRpdGxlIGJhciBhbmQgZXhw
YW5kL2NvbGxhcHNlIGJlaGF2aW9yIChwcmV2aW91c2x5IGhhbmRsZWQgYnkgU2lkZWJhclBhbmUp
LgorICAgICAgICBTaWRlYmFyUGFuZSdzIGFyZSBpbnNlcnRlZCBpbnRvIERPTSBsYXppbHkgYW5k
IGNhbiBiZWxvbmcgdG8gbW9yZSB0aGFuIG9uZSBjb250YWluZXIuCisgICAgICAgIFNpZGViYXJQ
YW5lIGlzIHJlYWR5IHRvIGJlIGRpc3BsYXllZCBpbiBvdGhlciB0eXBlcyBvZiBjb250YWluZXJz
IChzdWNoIGFzIHRhYmJlZCBwYW5lIGFzIHJlcXVlc3RlZCBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NTUyKS4KKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIG5v
IHZpc2libGUgY2hhbmdlcy4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRS
ZXN1bHRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UmVzdWx0Vmlldyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0V4dGVuc2lvblBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNp
ZGViYXJQYW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZl
ci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9v
bkNyZWF0ZVNpZGViYXJQYW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2lkZWJhclBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnBy
b3RvdHlwZS50aXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90
eXBlLmV4cGFuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBl
LmNvbGxhcHNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUu
c2V0RXhwYW5kQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnBy
b3RvdHlwZS5zZXRTaG93Q2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQ
YW5lLnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBh
bmVTdGFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5
cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJv
dG90eXBlLmFkZFBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2su
cHJvdG90eXBlLl9hZGRUaXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVT
dGFjay5wcm90b3R5cGUuX3Nob3dQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFy
UGFuZVN0YWNrLnByb3RvdHlwZS5fc3luY0V4cGFuZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZS5fb25UaXRsZUtleURvd24pOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLnBhbmUtdGl0bGUgKyAu
cGFuZS10aXRsZSwgLnBhbmU6bm90KC52aXNpYmxlKSArIC5wYW5lLXRpdGxlLCAucGFuZS10aXRs
ZTpmaXJzdC1vZi10eXBlKToKKyAgICAgICAgKC5wYW5lLXRpdGxlKToKKyAgICAgICAgKC5wYW5l
LXRpdGxlOmFjdGl2ZSk6CisgICAgICAgICgucGFuZS10aXRsZTo6YmVmb3JlKToKKyAgICAgICAg
KC5wYW5lLXRpdGxlLmV4cGFuZGVkOjpiZWZvcmUpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiBz
ZWxlY3QpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiBzZWxlY3Q6aG92ZXIpOgorICAgICAgICAo
LnBhbmUtdGl0bGUgPiBzZWxlY3Q6YWN0aXZlKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gc2Vs
ZWN0LnNlbGVjdC1zZXR0aW5ncyk6CisgICAgICAgICgucGFuZS10aXRsZSA+IHNlbGVjdC5zZWxl
Y3QtZmlsdGVyKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gc2VsZWN0ID4gb3B0aW9uLCAucGFu
ZS10aXRsZSA+IHNlbGVjdCA+IGhyKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0
bGUtYnV0dG9uKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmhv
dmVyKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmFjdGl2ZSwg
LnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24udG9nZ2xlZCk6CisgICAgICAgICgucGFu
ZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5hZGQpOgorICAgICAgICAoLnBhbmUtdGl0bGUg
PiAucGFuZS10aXRsZS1idXR0b24uZWxlbWVudC1zdGF0ZSk6CisgICAgICAgICgucGFuZS10aXRs
ZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5yZWZyZXNoKToKKyAgICAgICAgKC5wYW5lLnZpc2libGUg
PiAuYm9keSk6CisgICAgICAgICgucGFuZTpudGgtbGFzdC1vZi10eXBlKDEpKToKKyAgICAgICAg
KC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmUt
dGl0bGUtYnV0dG9uLCBidXR0b24uc2hvdy1hbGwtbm9kZXMpOgorICAgICAgICAoLnBhbmVsLWVu
YWJsZXItdmlldyBidXR0b246YWN0aXZlOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmUtdGl0
bGUtYnV0dG9uOmFjdGl2ZSwgYnV0dG9uLnNob3ctYWxsLW5vZGVzOmFjdGl2ZSk6CisgICAgICAg
IChib2R5LmluYWN0aXZlIC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOm5vdCguc3RhdHVzLWJh
ci1pdGVtKSwgLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246ZGlzYWJsZWQ6bm90KC5zdGF0dXMt
YmFyLWl0ZW0pLCBib2R5LmluYWN0aXZlIC5wYW5lLXRpdGxlLWJ1dHRvbiwgLnBhbmUtdGl0bGUt
YnV0dG9uOmRpc2FibGVkLCBib2R5LmluYWN0aXZlIGJ1dHRvbi5zaG93LWFsbC1ub2Rlcyk6CisK
IDIwMTMtMDEtMzEgIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogW1Byb2ZpbGVzXSBzaG93IGxhdW5jaGVyIHZpZXcgdXBvbiBk
ZWxldGluZyBsYXN0IHByb2ZpbGUgdHlwZSdzIGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJlc3VsdFZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UmVzdWx0Vmlldy5qcwppbmRleCBmMjgwZWY2
NDMzMjlmMTRhMTZiNWU0Mzg4NmIyOTg0NmZkNzEyMTVkLi40NGYzNzhjMmEwZjA5MGZiMTlmYmE4
YTMyMTgyZWRjMzIxYzFkNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0F1ZGl0UmVzdWx0Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0F1ZGl0UmVzdWx0Vmlldy5qcwpAQCAtMzAsMjQgKzMwLDI0IEBACiAKIC8q
KgogICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CisgKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2t9CiAgKiBAcGFyYW0geyFBcnJh
eS48IVdlYkluc3BlY3Rvci5BdWRpdENhdGVnb3J5UmVzdWx0Pn0gY2F0ZWdvcnlSZXN1bHRzCiAg
Ki8KIFdlYkluc3BlY3Rvci5BdWRpdFJlc3VsdFZpZXcgPSBmdW5jdGlvbihjYXRlZ29yeVJlc3Vs
dHMpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKLSAgICB0aGlzLmVsZW1l
bnQuY2xhc3NOYW1lID0gImF1ZGl0LXJlc3VsdC12aWV3IjsKKyAgICBXZWJJbnNwZWN0b3IuU2lk
ZWJhclBhbmVTdGFjay5jYWxsKHRoaXMpOworICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNz
KCJhdWRpdC1yZXN1bHQtdmlldyIpOwogCiAgICAgZnVuY3Rpb24gY2F0ZWdvcnlTb3J0ZXIoYSwg
YikgewogICAgICAgICByZXR1cm4gKGEudGl0bGUgfHwgIiIpLmxvY2FsZUNvbXBhcmUoYi50aXRs
ZSB8fCAiIik7CiAgICAgfQogICAgIGNhdGVnb3J5UmVzdWx0cy5zb3J0KGNhdGVnb3J5U29ydGVy
KTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGVnb3J5UmVzdWx0cy5sZW5ndGg7ICsraSkK
LSAgICAgICAgbmV3IFdlYkluc3BlY3Rvci5BdWRpdENhdGVnb3J5UmVzdWx0UGFuZShjYXRlZ29y
eVJlc3VsdHNbaV0pLnNob3codGhpcy5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5hZGRQYW5lKG5l
dyBXZWJJbnNwZWN0b3IuQXVkaXRDYXRlZ29yeVJlc3VsdFBhbmUoY2F0ZWdvcnlSZXN1bHRzW2ld
KSk7CiB9CiAKIFdlYkluc3BlY3Rvci5BdWRpdFJlc3VsdFZpZXcucHJvdG90eXBlID0gewotICAg
IF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlCisgICAgX19wcm90b19fOiBX
ZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUKIH0KIAogLyoqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5k
ZXggNmQyNzA2NTU0MWE5Y2I5ZDc1YzBkMmUwY2NmZmZhZDM4MThlMTBmMi4uODgzNmQwN2E1ZTVj
MjNkZjc1NWU0YTViOTMyZWE1ZjMxYjkyYzFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtODYsMTAgKzg2LDEwIEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuc2lkZWJh
clBhbmVzLmRvbUJyZWFrcG9pbnRzID0gV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRzU2lkZWJh
clBhbmU7CiAgICAgdGhpcy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMgPSBuZXcgV2ViSW5z
cGVjdG9yLkV2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUoKTsKIAotICAgIHRoaXMuc2lkZWJhclBh
bmVzLnN0eWxlcy5vbmV4cGFuZCA9IHRoaXMudXBkYXRlU3R5bGVzLmJpbmQodGhpcyk7Ci0gICAg
dGhpcy5zaWRlYmFyUGFuZXMubWV0cmljcy5vbmV4cGFuZCA9IHRoaXMudXBkYXRlTWV0cmljcy5i
aW5kKHRoaXMpOwotICAgIHRoaXMuc2lkZWJhclBhbmVzLnByb3BlcnRpZXMub25leHBhbmQgPSB0
aGlzLnVwZGF0ZVByb3BlcnRpZXMuYmluZCh0aGlzKTsKLSAgICB0aGlzLnNpZGViYXJQYW5lcy5l
dmVudExpc3RlbmVycy5vbmV4cGFuZCA9IHRoaXMudXBkYXRlRXZlbnRMaXN0ZW5lcnMuYmluZCh0
aGlzKTsKKyAgICB0aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2V0U2hvd0NhbGxiYWNrKHRoaXMu
dXBkYXRlU3R5bGVzLmJpbmQodGhpcykpOworICAgIHRoaXMuc2lkZWJhclBhbmVzLm1ldHJpY3Mu
c2V0U2hvd0NhbGxiYWNrKHRoaXMudXBkYXRlTWV0cmljcy5iaW5kKHRoaXMpKTsKKyAgICB0aGlz
LnNpZGViYXJQYW5lcy5wcm9wZXJ0aWVzLnNldFNob3dDYWxsYmFjayh0aGlzLnVwZGF0ZVByb3Bl
cnRpZXMuYmluZCh0aGlzKSk7CisgICAgdGhpcy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMu
c2V0U2hvd0NhbGxiYWNrKHRoaXMudXBkYXRlRXZlbnRMaXN0ZW5lcnMuYmluZCh0aGlzKSk7CiAK
ICAgICB0aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuZXhwYW5kZWQgPSB0cnVlOwogCkBAIC05Nyw4
ICs5NywxMCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0
aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuYWRkRXZlbnRMaXN0ZW5lcigic3R5bGUgcHJvcGVydHkg
dG9nZ2xlZCIsIHRoaXMuX3N0eWxlc1BhbmVFZGl0ZWQsIHRoaXMpOwogICAgIHRoaXMuc2lkZWJh
clBhbmVzLm1ldHJpY3MuYWRkRXZlbnRMaXN0ZW5lcigibWV0cmljcyBlZGl0ZWQiLCB0aGlzLl9t
ZXRyaWNzUGFuZUVkaXRlZCwgdGhpcyk7CiAKKyAgICB0aGlzLnNpZGViYXJQYW5lVmlldyA9IG5l
dyBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjaygpOwogICAgIGZvciAodmFyIHBhbmUgaW4g
dGhpcy5zaWRlYmFyUGFuZXMpCi0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVzW3BhbmVdLnNob3co
dGhpcy5zaWRlYmFyRWxlbWVudCk7CisgICAgICAgIHRoaXMuc2lkZWJhclBhbmVWaWV3LmFkZFBh
bmUodGhpcy5zaWRlYmFyUGFuZXNbcGFuZV0pOworICAgIHRoaXMuc2lkZWJhclBhbmVWaWV3LnNo
b3codGhpcy5zaWRlYmFyRWxlbWVudCk7CiAKICAgICB0aGlzLl9wb3BvdmVySGVscGVyID0gbmV3
IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVudCwgdGhpcy5fZ2V0UG9wb3Zl
ckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5iaW5kKHRoaXMpKTsKICAgICB0
aGlzLl9wb3BvdmVySGVscGVyLnNldFRpbWVvdXQoMCk7CkBAIC0xNDMsOCArMTQ1LDYgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIGlmICghdGhp
cy50cmVlT3V0bGluZS5yb290RE9NTm9kZSkKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC5yZXF1ZXN0RG9jdW1lbnQoKTsKLQotICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5kb21C
cmVha3BvaW50cy5zaG93KHRoaXMuc2lkZWJhckVsZW1lbnQsIHRoaXMuc2lkZWJhclBhbmVzLmV2
ZW50TGlzdGVuZXJzLmVsZW1lbnQpOwogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNp
b25QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9u
UGFuZWwuanMKaW5kZXggMDQzYmNjMTYyNDRmYWEyYTgxNWVmMGEwZTVhMzFmY2JhYTk4YTJjYy4u
MDlhNGQ2YjE5NTdkMDZhYzU1OTg3MGJiZGNlYjU2ZDI1Mzg2Y2I1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCkBAIC0x
NDAsNiArMTQwLDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvbkJ1dHRvbi5wcm90b3R5cGUgPSB7
CiBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2lkZWJhclBhbmUgPSBmdW5jdGlvbih0aXRsZSwgaWQp
CiB7CiAgICAgV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLmNhbGwodGhpcywgdGl0bGUpOworICAg
IHRoaXMuc2V0SGlkZU9uRGV0YWNoKCk7CiAgICAgdGhpcy5faWQgPSBpZDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5q
cwppbmRleCA3NjhiODYxYTZkNTZlNTA3MzZkMGFhODZiNmRhYzRmNzFmMzMxOTMyLi5jMTE2MWJl
MjhkMTY4ZDQ0NjE4M2Y3NTFhNWJjOWU0MjIyOWI5NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtMjMxLDEz
ICsyMzEsMTMgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbChtZXNzYWdlLnBhbmVsKTsKICAg
ICAgICAgaWYgKCFwYW5lbCkKICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9OT1RG
T1VORChtZXNzYWdlLnBhbmVsKTsKLSAgICAgICAgaWYgKCFwYW5lbC5zaWRlYmFyRWxlbWVudCB8
fCAhcGFuZWwuc2lkZWJhclBhbmVzKQorICAgICAgICBpZiAoIXBhbmVsLnNpZGViYXJQYW5lVmll
dyB8fCAhcGFuZWwuc2lkZWJhclBhbmVzKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1
cy5FX05PVFNVUFBPUlRFRCgpOwogICAgICAgICB2YXIgaWQgPSBtZXNzYWdlLmlkOwogICAgICAg
ICB2YXIgc2lkZWJhciA9IG5ldyBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2lkZWJhclBhbmUobWVz
c2FnZS50aXRsZSwgbWVzc2FnZS5pZCk7CiAgICAgICAgIHRoaXMuX2NsaWVudE9iamVjdHNbaWRd
ID0gc2lkZWJhcjsKICAgICAgICAgcGFuZWwuc2lkZWJhclBhbmVzW2lkXSA9IHNpZGViYXI7Ci0g
ICAgICAgIHNpZGViYXIuc2hvdyhwYW5lbC5zaWRlYmFyRWxlbWVudCk7CisgICAgICAgIHBhbmVs
LnNpZGViYXJQYW5lVmlldy5hZGRQYW5lKHNpZGViYXIpOwogCiAgICAgICAgIHJldHVybiB0aGlz
Ll9zdGF0dXMuT0soKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCBhNTNlMDA0ZmM0MTYyZGE0MzA3YTE5NDE0
OWU2ZjIzZTdmMjY0YmRiLi5lMWUxMmM1ODdjMzNhZjgzNTJkZWNlOGQwNzYzYTg2NzAzMzYyYTA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQ
YW5lbC5qcwpAQCAtMTIyLDE1ICsxMjIsMTEgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9
IGZ1bmN0aW9uKHdvcmtzcGFjZUZvclRlc3QpCiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLndv
cmtlckxpc3QgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZShXZWJJbnNwZWN0
b3Iud29ya2VyTWFuYWdlcik7CiAgICAgfQogCi0gICAgdGhpcy5fZGVidWdTaWRlYmFyQ29udGVu
dHNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5fZGVi
dWdTaWRlYmFyQ29udGVudHNFbGVtZW50LmlkID0gInNjcmlwdHMtZGVidWctc2lkZWJhci1jb250
ZW50cyI7Ci0gICAgdGhpcy5zaWRlYmFyRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kZWJ1Z1Np
ZGViYXJDb250ZW50c0VsZW1lbnQpOwotCi0gICAgZm9yICh2YXIgcGFuZSBpbiB0aGlzLnNpZGVi
YXJQYW5lcykgewotICAgICAgICBpZiAodGhpcy5zaWRlYmFyUGFuZXNbcGFuZV0gPT09IHRoaXMu
c2lkZWJhclBhbmVzLmRvbUJyZWFrcG9pbnRzKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgIHRoaXMuc2lkZWJhclBhbmVzW3BhbmVdLnNob3codGhpcy5fZGVidWdTaWRlYmFyQ29udGVu
dHNFbGVtZW50KTsKLSAgICB9CisgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcgPSBuZXcgV2ViSW5z
cGVjdG9yLlNpZGViYXJQYW5lU3RhY2soKTsKKyAgICB0aGlzLnNpZGViYXJQYW5lVmlldy5lbGVt
ZW50LmlkID0gInNjcmlwdHMtZGVidWctc2lkZWJhci1jb250ZW50cyI7CisgICAgZm9yICh2YXIg
cGFuZSBpbiB0aGlzLnNpZGViYXJQYW5lcykKKyAgICAgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcu
YWRkUGFuZSh0aGlzLnNpZGViYXJQYW5lc1twYW5lXSk7CisgICAgdGhpcy5zaWRlYmFyUGFuZVZp
ZXcuc2hvdyh0aGlzLnNpZGViYXJFbGVtZW50KTsKIAogICAgIHRoaXMuc2lkZWJhclBhbmVzLmNh
bGxzdGFjay5leHBhbmRlZCA9IHRydWU7CiAKQEAgLTIxNSw4ICsyMTEsNiBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxs
KHRoaXMpOwotICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5kb21CcmVha3BvaW50cy5zaG93KHRo
aXMuX2RlYnVnU2lkZWJhckNvbnRlbnRzRWxlbWVudCwgdGhpcy5zaWRlYmFyUGFuZXMueGhyQnJl
YWtwb2ludHMuZWxlbWVudCk7Ci0KICAgICAgICAgdGhpcy5fbmF2aWdhdG9yQ29udHJvbGxlci53
YXNTaG93bigpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NpZGViYXJQYW5lLmpzCmluZGV4IGVkM2RiYTNjNmRlMTAxNDQ0YjViYTVhY2Y1NWI0
MDkyZTMxZjM4Y2MuLjI4NGY3YjU5MGNiOGM1ZDI0NDljMGQzZjM2OWUwNTg0OTUwZDIyNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclBhbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyUGFuZS5q
cwpAQCAtMzYsNTkgKzM2LDIxIEBAIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZSA9IGZ1bmN0aW9u
KHRpdGxlKQogICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAicGFuZSI7CiAKICAgICB0aGlz
LnRpdGxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMu
dGl0bGVFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aXRsZSI7Ci0gICAgdGhpcy50aXRsZUVsZW1lbnQu
dGFiSW5kZXggPSAwOwotICAgIHRoaXMudGl0bGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy50b2dnbGVFeHBhbmRlZC5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0gICAgdGhpcy50
aXRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX29uVGl0bGVLZXlE
b3duLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLmJvZHlFbGVtZW50ID0gdGhpcy5lbGVt
ZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiYm9keSIpOwogCi0gICAgdGhpcy5ib2R5RWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuYm9keUVsZW1lbnQuY2xh
c3NOYW1lID0gImJvZHkiOworICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7CisgICAgdGhpcy5fZXhw
YW5kZWQgPSBmYWxzZTsKIAotICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnRpdGxl
RWxlbWVudCk7Ci0gICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuYm9keUVsZW1lbnQp
OwotCi0gICAgdGhpcy50aXRsZSA9IHRpdGxlOwotICAgIHRoaXMuZ3Jvd2JhclZpc2libGUgPSBm
YWxzZTsKLSAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7CisgICAgdGhpcy5fZXhwYW5kQ2FsbGJh
Y2sgPSBudWxsOworICAgIHRoaXMuX3Nob3dDYWxsYmFjayA9IG51bGw7CiB9CiAKIFdlYkluc3Bl
Y3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IHRpdGxlKCkKKyAgICB0aXRs
ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlOwogICAgIH0s
CiAKLSAgICBzZXQgdGl0bGUoeCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90aXRsZSA9PT0g
eCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fdGl0bGUgPSB4OwotICAgICAg
ICB0aGlzLnRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHg7Ci0gICAgfSwKLQotICAgIGdldCBn
cm93YmFyVmlzaWJsZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZ3Jvd2JhclZpc2li
bGU7Ci0gICAgfSwKLQotICAgIHNldCBncm93YmFyVmlzaWJsZSh4KQotICAgIHsKLSAgICAgICAg
aWYgKHRoaXMuX2dyb3diYXJWaXNpYmxlID09PSB4KQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIHRoaXMuX2dyb3diYXJWaXNpYmxlID0geDsKLQotICAgICAgICBpZiAoeCAmJiAhdGhp
cy5fZ3Jvd2JhckVsZW1lbnQpIHsKLSAgICAgICAgICAgIHRoaXMuX2dyb3diYXJFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICB0aGlzLl9ncm93YmFy
RWxlbWVudC5jbGFzc05hbWUgPSAiZ3Jvd2JhciI7Ci0gICAgICAgICAgICB0aGlzLmVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fZ3Jvd2JhckVsZW1lbnQpOwotICAgICAgICB9IGVsc2UgaWYgKCF4
ICYmIHRoaXMuX2dyb3diYXJFbGVtZW50KSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fZ3Jvd2Jh
ckVsZW1lbnQucGFyZW50Tm9kZSkKLSAgICAgICAgICAgICAgICB0aGlzLl9ncm93YmFyRWxlbWVu
dC5wYXJlbnROb2RlKHRoaXMuX2dyb3diYXJFbGVtZW50KTsKLSAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl9ncm93YmFyRWxlbWVudDsKLSAgICAgICAgfQotICAgIH0sCi0KICAgICBnZXQgZXhwYW5k
ZWQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkOwpAQCAtMTA3LDEyICs2
OSw4IEBAIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlm
ICh0aGlzLl9leHBhbmRlZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdGhpcy5fZXhw
YW5kZWQgPSB0cnVlOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZXhwYW5k
ZWQiKTsKLSAgICAgICAgdGhpcy5vbmV4cGFuZCgpOwotICAgIH0sCi0KLSAgICBvbmV4cGFuZDog
ZnVuY3Rpb24oKQotICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2V4cGFuZENhbGxiYWNrKQorICAg
ICAgICAgICAgdGhpcy5fZXhwYW5kQ2FsbGJhY2soKTsKICAgICB9LAogCiAgICAgY29sbGFwc2U6
IGZ1bmN0aW9uKCkKQEAgLTEyMCw3ICs3OCw4IEBAIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5fZXhwYW5kZWQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIHRoaXMuX2V4cGFuZGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuZWxl
bWVudC5yZW1vdmVTdHlsZUNsYXNzKCJleHBhbmRlZCIpOworICAgICAgICBpZiAodGhpcy5fZXhw
YW5kQ2FsbGJhY2spCisgICAgICAgICAgICB0aGlzLl9leHBhbmRDYWxsYmFjaygpOwogICAgIH0s
CiAKICAgICB0b2dnbGVFeHBhbmRlZDogZnVuY3Rpb24oKQpAQCAtMTI4LDEwICs4Nyw5NSBAQCBX
ZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmV4cGFu
ZGVkID0gIXRoaXMuZXhwYW5kZWQ7CiAgICAgfSwKIAotICAgIF9vblRpdGxlS2V5RG93bjogZnVu
Y3Rpb24oZXZlbnQpCisgICAgc2V0RXhwYW5kQ2FsbGJhY2s6IGZ1bmN0aW9uKGNhbGxiYWNrKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fZXhwYW5kQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICB9LAor
CisgICAgc2V0U2hvd0NhbGxiYWNrOiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7CisgICAgICAg
IHRoaXMuX3Nob3dDYWxsYmFjayA9IGNhbGxiYWNrOworICAgIH0sCisKKyAgICB3YXNTaG93bjog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndh
c1Nob3duLmNhbGwodGhpcyk7CisgICAgICAgIGlmICh0aGlzLl9zaG93Q2FsbGJhY2spCisgICAg
ICAgICAgICB0aGlzLl9zaG93Q2FsbGJhY2soKTsKKyAgICB9LAorCisgICAgX19wcm90b19fOiBX
ZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUKK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30KKyAqLworV2ViSW5zcGVjdG9yLlNpZGViYXJQ
YW5lU3RhY2sgPSBmdW5jdGlvbigpCit7CisgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlz
KTsKKyAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gInNpZGViYXItcGFuZS1zdGFjayBmaWxs
IjsKKworICAgIHRoaXMuX3RpdGxlcyA9IFtdOworICAgIHRoaXMuX3BhbmVzID0gW107Cit9CisK
K1dlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZSA9IHsKKyAgICB3YXNTaG93
bjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBl
Lndhc1Nob3duLmNhbGwodGhpcyk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5f
cGFuZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0aGlzLl9zaG93UGFuZShpKTsKKyAgICB9
LAorCisgICAgYWRkUGFuZTogZnVuY3Rpb24ocGFuZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3Bh
bmVzLnB1c2gocGFuZSk7CisgICAgICAgIHRoaXMuX2FkZFRpdGxlKHBhbmUpOworICAgICAgICBp
ZiAodGhpcy5pc1Nob3dpbmcoKSkKKyAgICAgICAgICAgIHRoaXMuX3Nob3dQYW5lKHRoaXMuX3Bh
bmVzLmxlbmd0aCAtIDEpOworICAgIH0sCisKKyAgICBfYWRkVGl0bGU6IGZ1bmN0aW9uKHBhbmUp
CisgICAgeworICAgICAgICB2YXIgdGl0bGUgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRp
diIsICJwYW5lLXRpdGxlIik7CisgICAgICAgIHRpdGxlLnRleHRDb250ZW50ID0gcGFuZS50aXRs
ZSgpOworICAgICAgICB0aXRsZS50YWJJbmRleCA9IDA7CisgICAgICAgIHRpdGxlLmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgcGFuZS50b2dnbGVFeHBhbmRlZC5iaW5kKHBhbmUpLCBmYWxzZSk7
CisgICAgICAgIHRpdGxlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9vblRpdGxl
S2V5RG93bi5iaW5kKHRoaXMsIHBhbmUpLCBmYWxzZSk7CisgICAgICAgIHdoaWxlIChwYW5lLnRp
dGxlRWxlbWVudC5maXJzdENoaWxkKSB7CisgICAgICAgICAgICB2YXIgY2hpbGQgPSBwYW5lLnRp
dGxlRWxlbWVudC5maXJzdENoaWxkOworICAgICAgICAgICAgcGFuZS50aXRsZUVsZW1lbnQucmVt
b3ZlQ2hpbGQoY2hpbGQpOworICAgICAgICAgICAgdGl0bGUuYXBwZW5kQ2hpbGQoY2hpbGQpOwor
ICAgICAgICB9CisgICAgICAgIHRoaXMuX3RpdGxlcy5wdXNoKHRpdGxlKTsKKyAgICB9LAorCisg
ICAgX3Nob3dQYW5lOiBmdW5jdGlvbihpbmRleCkKKyAgICB7CisgICAgICAgIHZhciBwYW5lID0g
dGhpcy5fcGFuZXNbaW5kZXhdOworICAgICAgICBwYW5lLnNldEV4cGFuZENhbGxiYWNrKHRoaXMu
X3N5bmNFeHBhbmRlZC5iaW5kKHRoaXMsIGluZGV4KSk7CisgICAgICAgIHRoaXMuX3N5bmNFeHBh
bmRlZChpbmRleCk7CisgICAgfSwKKworICAgIF9zeW5jRXhwYW5kZWQ6IGZ1bmN0aW9uKGluZGV4
KQorICAgIHsKKyAgICAgICAgdmFyIHBhbmUgPSB0aGlzLl9wYW5lc1tpbmRleF07CisgICAgICAg
IHZhciB0aXRsZSA9IHRoaXMuX3RpdGxlc1tpbmRleF07CisgICAgICAgIGlmIChwYW5lLmV4cGFu
ZGVkKSB7CisgICAgICAgICAgICB0aXRsZS5hZGRTdHlsZUNsYXNzKCJleHBhbmRlZCIpOworICAg
ICAgICAgICAgcGFuZS5zaG93KHRoaXMuZWxlbWVudCwgdGl0bGUubmV4dFNpYmxpbmcpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGl0bGUucmVtb3ZlU3R5bGVDbGFzcygiZXhwYW5k
ZWQiKTsKKyAgICAgICAgICAgIGlmIChwYW5lLmVsZW1lbnQucGFyZW50Tm9kZSA9PSB0aGlzLmVs
ZW1lbnQpCisgICAgICAgICAgICAgICAgcGFuZS5kZXRhY2goKTsKKyAgICAgICAgfQorICAgIH0s
CisKKyAgICBfb25UaXRsZUtleURvd246IGZ1bmN0aW9uKHBhbmUsIGV2ZW50KQogICAgIHsKICAg
ICAgICAgaWYgKGlzRW50ZXJLZXkoZXZlbnQpIHx8IGV2ZW50LmtleUNvZGUgPT09IFdlYkluc3Bl
Y3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuU3BhY2UuY29kZSkKLSAgICAgICAgICAgIHRoaXMu
dG9nZ2xlRXhwYW5kZWQoKTsKKyAgICAgICAgICAgIHBhbmUudG9nZ2xlRXhwYW5kZWQoKTsKICAg
ICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBh
bmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQ
YW5lLmpzCmluZGV4IDdiMGQyNGFjNTM1ZmUyZjVmNGE5NDNhOTNlMGM1MDY0Yjk4ZTcyZGYuLjc0
YWIyMDNjZDEwMWI5MWI1NTcxNjk1OTBhNmIxNzA5MDQ2ZGQ3MDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwpA
QCAtODAwLDcgKzgwMCw3IEBAIFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlU2lkZWJhclBhbmUg
PSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlU2lkZWJhclBhbmUucHJv
dG90eXBlID0gewogCi0gICAgLy8gT3ZlcnJpZGluZyBleHBhbmQoKSByYXRoZXIgdGhhbiBvbmV4
cGFuZCgpIHRvIGVsaW1pbmF0ZSB0aGUgdmlzdWFsIHNsb3duZXNzIGR1ZSB0byBhIHBvc3NpYmxl
IGJhY2tlbmQgdHJpcC4KKyAgICAvLyBPdmVycmlkaW5nIGV4cGFuZCgpIHJhdGhlciB0aGFuIHdh
c1Nob3duKCkgdG8gZWxpbWluYXRlIHRoZSB2aXN1YWwgc2xvd25lc3MgZHVlIHRvIGEgcG9zc2li
bGUgYmFja2VuZCB0cmlwLgogICAgIGV4cGFuZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
ZnVuY3Rpb24gY2FsbGJhY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IDU3ZGIwZWE3YTcxZjdjMDlmZTI4MDg4NDAwZjUyYjlh
NjNlNWI3NTIuLjZjM2MzZTQ3YzdlM2UyZTk0NGMwMzZkNTFiNzIwOWJjNWRlOTA2NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAg
LTE3ODUsMTEgKzE3ODUsMTEgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5lZGl0aW5nIC5lbmFi
bGVkLWJ1dHRvbiwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQKICAgICBib3JkZXI6
IDFweCBzb2xpZCByZ2JhKDY0LCA2NCwgNjQsIDAuOCk7CiB9CiAKLS5wYW5lOm5vdCguZXhwYW5k
ZWQpICsgLnBhbmUsIC5wYW5lOmZpcnN0LW9mLXR5cGUgeworLnBhbmUtdGl0bGUgKyAucGFuZS10
aXRsZSwgLnBhbmU6bm90KC52aXNpYmxlKSArIC5wYW5lLXRpdGxlLCAucGFuZS10aXRsZTpmaXJz
dC1vZi10eXBlIHsKICAgICBtYXJnaW4tdG9wOiAtMXB4OwogfQogCi0ucGFuZSA+IC50aXRsZSB7
CisucGFuZS10aXRsZSB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChs
aW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjQzLCAyNDMsIDI0MykpLCBj
b2xvci1zdG9wKDAuMDUsIHJnYigyNDMsIDI0MywgMjQzKSksIGNvbG9yLXN0b3AoMC4wNSwgcmdi
KDIzMCwgMjMwLCAyMzApKSwgdG8ocmdiKDIwOSwgMjA5LCAyMDkpKSk7CiAgICAgaGVpZ2h0OiAy
MHB4OwogICAgIHBhZGRpbmc6IDAgNXB4OwpAQCAtMTgwNCwxMyArMTgwNCwxMyBAQCBsaS5lZGl0
aW5nIC5zd2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGkuZWRpdGluZy1zdWIt
cGFydCAuZGVsZXRlLWJ1dAogICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nOwog
fQogCi0ucGFuZSA+IC50aXRsZTphY3RpdmUgeworLnBhbmUtdGl0bGU6YWN0aXZlIHsKICAgICBi
YWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQg
Ym90dG9tLCBmcm9tKHJnYigyMzEsIDIzMSwgMjMxKSksIGNvbG9yLXN0b3AoMC4wNSwgcmdiKDIz
MSwgMjMxLCAyMzEpKSwgY29sb3Itc3RvcCgwLjA1LCByZ2IoMjA3LCAyMDcsIDIwNykpLCB0byhy
Z2IoMTg2LCAxODYsIDE4NikpKTsKICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiKDE3OCwg
MTc4LCAxNzgpOwogICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMTc4LCAxNzgsIDE3
OCk7CiB9CiAKLS5wYW5lID4gLnRpdGxlOjpiZWZvcmUgeworLnBhbmUtdGl0bGU6OmJlZm9yZSB7
CiAgICAgY29udGVudDogdXJsKEltYWdlcy9kaXNjbG9zdXJlVHJpYW5nbGVTbWFsbFJpZ2h0Qmxh
Y2sucG5nKTsKICAgICBmbG9hdDogbGVmdDsKICAgICB3aWR0aDogMTFweDsKQEAgLTE4MTksMTEg
KzE4MTksMTEgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5lZGl0aW5nIC5lbmFibGVkLWJ1dHRv
biwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQKICAgICBtYXJnaW4tdG9wOiAxcHg7
CiB9CiAKLS5wYW5lLmV4cGFuZGVkID4gLnRpdGxlOjpiZWZvcmUgeworLnBhbmUtdGl0bGUuZXhw
YW5kZWQ6OmJlZm9yZSB7CiAgICAgY29udGVudDogdXJsKEltYWdlcy9kaXNjbG9zdXJlVHJpYW5n
bGVTbWFsbERvd25CbGFjay5wbmcpOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IHNlbGVjdCB7Cisu
cGFuZS10aXRsZSA+IHNlbGVjdCB7CiAgICAgZmxvYXQ6IHJpZ2h0OwogICAgIHdpZHRoOiAyM3B4
OwogICAgIGhlaWdodDogMTdweDsKQEAgLTE4MzcsMjcgKzE4MzcsMjcgQEAgbGkuZWRpdGluZyAu
c3dhdGNoLCBsaS5lZGl0aW5nIC5lbmFibGVkLWJ1dHRvbiwgIGxpLmVkaXRpbmctc3ViLXBhcnQg
LmRlbGV0ZS1idXQKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiB9CiAKLS5wYW5lID4g
LnRpdGxlID4gc2VsZWN0OmhvdmVyIHsKKy5wYW5lLXRpdGxlID4gc2VsZWN0OmhvdmVyIHsKICAg
ICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjNweCAwcHg7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4g
c2VsZWN0OmFjdGl2ZSB7CisucGFuZS10aXRsZSA+IHNlbGVjdDphY3RpdmUgewogICAgIGJhY2tn
cm91bmQtcG9zaXRpb246IC00NnB4IDBweDsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiBzZWxlY3Qu
c2VsZWN0LXNldHRpbmdzIHsKKy5wYW5lLXRpdGxlID4gc2VsZWN0LnNlbGVjdC1zZXR0aW5ncyB7
CiAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKEltYWdlcy9wYW5lU2V0dGluZ3NCdXR0b25zLnBu
Zyk7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gc2VsZWN0LnNlbGVjdC1maWx0ZXIgeworLnBhbmUt
dGl0bGUgPiBzZWxlY3Quc2VsZWN0LWZpbHRlciB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJs
KEltYWdlcy9wYW5lRmlsdGVyQnV0dG9ucy5wbmcpOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IHNl
bGVjdCA+IG9wdGlvbiwgLnBhbmUgPiAudGl0bGUgPiBzZWxlY3QgPiBociB7CisucGFuZS10aXRs
ZSA+IHNlbGVjdCA+IG9wdGlvbiwgLnBhbmUtdGl0bGUgPiBzZWxlY3QgPiBociB7CiAgICAgY29s
b3I6IGJsYWNrOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbiB7Cisu
cGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbiB7CiAgICAgZmxvYXQ6IHJpZ2h0OwogICAg
IHdpZHRoOiAyM3B4OwogICAgIGhlaWdodDogMTdweDsKQEAgLTE4NzEsMjMgKzE4NzEsMjMgQEAg
bGkuZWRpdGluZyAuc3dhdGNoLCBsaS5lZGl0aW5nIC5lbmFibGVkLWJ1dHRvbiwgIGxpLmVkaXRp
bmctc3ViLXBhcnQgLmRlbGV0ZS1idXQKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiB9
CiAKLS5wYW5lID4gLnRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmhvdmVyIHsKKy5wYW5lLXRp
dGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmhvdmVyIHsKICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAtMjNweCAwcHg7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmFj
dGl2ZSwgLnBhbmUgPiAudGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24udG9nZ2xlZCB7CisucGFu
ZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbjphY3RpdmUsIC5wYW5lLXRpdGxlID4gLnBhbmUt
dGl0bGUtYnV0dG9uLnRvZ2dsZWQgewogICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00NnB4IDBw
eDsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24uYWRkIHsKKy5wYW5l
LXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uLmFkZCB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTog
dXJsKEltYWdlcy9wYW5lQWRkQnV0dG9ucy5wbmcpOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IC5w
YW5lLXRpdGxlLWJ1dHRvbi5lbGVtZW50LXN0YXRlIHsKKy5wYW5lLXRpdGxlID4gLnBhbmUtdGl0
bGUtYnV0dG9uLmVsZW1lbnQtc3RhdGUgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFn
ZXMvcGFuZUVsZW1lbnRTdGF0ZUJ1dHRvbnMucG5nKTsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiAu
cGFuZS10aXRsZS1idXR0b24ucmVmcmVzaCB7CisucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1
dHRvbi5yZWZyZXNoIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL3BhbmVSZWZy
ZXNoQnV0dG9ucy5wbmcpOwogfQogCkBAIC0xOTExLDcgKzE5MTEsNyBAQCBsaS5lZGl0aW5nIC5z
d2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGkuZWRpdGluZy1zdWItcGFydCAu
ZGVsZXRlLWJ1dAogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMTk0KTsKIH0K
IAotLnBhbmUuZXhwYW5kZWQgPiAuYm9keSwgLnBhbmUuZXhwYW5kZWQgPiAuZ3Jvd2JhciB7Cisu
cGFuZS52aXNpYmxlID4gLmJvZHkgewogICAgIGRpc3BsYXk6IGJsb2NrOwogfQogCkBAIC0xOTMx
LDE4ICsxOTMxLDEwIEBAIGxpLmVkaXRpbmcgLnN3YXRjaCwgbGkuZWRpdGluZyAuZW5hYmxlZC1i
dXR0b24sICBsaS5lZGl0aW5nLXN1Yi1wYXJ0IC5kZWxldGUtYnV0CiAgICAgYm9yZGVyOiAxcHgg
c29saWQgcmdiKDY2JSwgNjYlLCA2NiUpOwogfQogCi0ucGFuZS5leHBhbmRlZDpudGgtbGFzdC1v
Zi10eXBlKDEpIHsKKy5wYW5lOm50aC1sYXN0LW9mLXR5cGUoMSkgewogICAgIGJvcmRlci1ib3R0
b206IDFweCBzb2xpZCByZ2IoMTg5LCAxODksIDE4OSk7CiB9CiAKLS5wYW5lID4gLmdyb3diYXIg
ewotICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKEltYWdlcy9w
YW5lR3Jvd0hhbmRsZUxpbmUucG5nKSwgdXJsKEltYWdlcy9wYW5lQm90dG9tR3Jvdy5wbmcpOwot
ICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdC14OwotICAgIGJhY2tncm91
bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXIsIGJvdHRvbTsKLSAgICBoZWlnaHQ6IDVweDsKLX0K
LQogLnNpZGViYXItcGFuZS1zdWJ0aXRsZSB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAg
IHJpZ2h0OiAwOwpAQCAtMTk3Miw3ICsxOTY0LDcgQEAgYm9keS5pbmFjdGl2ZSAuc2lkZWJhciB7
CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMiwgMjMyLCAyMzIpOwogfQogCi0ucGFuZWwt
ZW5hYmxlci12aWV3IGJ1dHRvbjpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5lIGJ1dHRvbiwg
YnV0dG9uLnNob3ctYWxsLW5vZGVzIHsKKy5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOm5vdCgu
c3RhdHVzLWJhci1pdGVtKSwgLnBhbmUtdGl0bGUtYnV0dG9uLCBidXR0b24uc2hvdy1hbGwtbm9k
ZXMgewogICAgIGNvbG9yOiByZ2IoNiwgNiwgNik7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJh
bnNwYXJlbnQ7CiAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDE2NSwgMTY1LCAxNjUpOwpAQCAt
MTk4OSwxNyArMTk4MSwxMiBAQCBidXR0b24uc2hvdy1hbGwtbm9kZXMgewogICAgIGhlaWdodDog
MjBweDsKIH0KIAotLnBhbmUgYnV0dG9uIHsKLSAgICBtYXJnaW46IDZweCAwIDZweCAzcHg7Ci0g
ICAgcGFkZGluZzogMnB4IDlweDsKLX0KLQotLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246YWN0
aXZlOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmUgYnV0dG9uOmFjdGl2ZSwgYnV0dG9uLnNo
b3ctYWxsLW5vZGVzOmFjdGl2ZSB7CisucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjphY3RpdmU6
bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZS10aXRsZS1idXR0b246YWN0aXZlLCBidXR0b24u
c2hvdy1hbGwtbm9kZXM6YWN0aXZlIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE1LCAy
MTUsIDIxNSk7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIs
IGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMTk0LCAxOTQsIDE5NCkpLCB0byhyZ2Io
MjM5LCAyMzksIDIzOSkpKTsKIH0KIAotYm9keS5pbmFjdGl2ZSAucGFuZWwtZW5hYmxlci12aWV3
IGJ1dHRvbjpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9u
OmRpc2FibGVkOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgYm9keS5pbmFjdGl2ZSAucGFuZSBidXR0
b24sIC5wYW5lIGJ1dHRvbjpkaXNhYmxlZCwgYm9keS5pbmFjdGl2ZSBidXR0b24uc2hvdy1hbGwt
bm9kZXMgeworYm9keS5pbmFjdGl2ZSAucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpub3QoLnN0
YXR1cy1iYXItaXRlbSksIC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOmRpc2FibGVkOm5vdCgu
c3RhdHVzLWJhci1pdGVtKSwgYm9keS5pbmFjdGl2ZSAucGFuZS10aXRsZS1idXR0b24sIC5wYW5l
LXRpdGxlLWJ1dHRvbjpkaXNhYmxlZCwgYm9keS5pbmFjdGl2ZSBidXR0b24uc2hvdy1hbGwtbm9k
ZXMgewogICAgIGNvbG9yOiByZ2IoMTMwLCAxMzAsIDEzMCk7CiAgICAgYm9yZGVyLWNvbG9yOiBy
Z2IoMjEyLCAyMTIsIDIxMik7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOSwgMjM5LCAy
MzkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDU3NzY3MmY4Y2RkNjVlYTA5N2ViZTJiYWMzYzg1MTczMTZhY2NjNTUuLjU4
M2FkMTZhZTliOTMwN2RiYzVmNjIzZjYwZDUzZjVjOGFlNDEzMWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAxMy0wMS0zMSAgVmxhZGlzbGF2IEthem5hY2hlZXYgIDxrYXpuYWNoZWV2QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDcmVhdGUgYSBjb250YWluZXIgY2xh
c3MgZm9yIFNpZGViYXJQYW5lIGluc3RhbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5j
dGlvbmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1w
YW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhwcmVzc2lvbnMuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGllcy1zcGVjaWFsLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXBhbmVsLXN3aXRjaC5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBh
bnNpb24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1
ZGl0cy1hcGktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1zaWRlYmFyLmh0bWw6CisKIDIw
MTMtMDEtMzEgIEZsb3JpbiBNYWxpdGEgIDxmbWFsaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4
cGVjdGVkLnR4dAppbmRleCA1MmY0N2M2YWYxYTkzNDhkODZlY2JjMTk2YzIzN2JiYzQ0YmViNDZj
Li4zZjJjYjY3OTc0ZDA0NDlkYjVkMWE0ZDU0MGU2YWIxMDE2MmJiNjZhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1m
dW5jdGlvbmFsLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIFRlc3RzIGF1ZGl0IHJ1bGVz
LiAgICAgCiBQYWdlIHJlbG9hZGVkLgotICBOZXR3b3JrIFV0aWxpemF0aW9uCisgTmV0d29yayBV
dGlsaXphdGlvbgogICAgIENvbWJpbmUgZXh0ZXJuYWwgSmF2YVNjcmlwdCAoNCkKICAgICAgVGhl
cmUgYXJlIG11bHRpcGxlIHJlc291cmNlcyBzZXJ2ZWQgZnJvbSBzYW1lIGRvbWFpbi4gQ29uc2lk
ZXIgY29tYmluaW5nIHRoZW0gaW50byBhcyBmZXcgZmlsZXMgYXMgcG9zc2libGUuCiAgICAgICA0
IEphdmFTY3JpcHQgcmVzb3VyY2VzIHNlcnZlZCBmcm9tIFtkb21haW5dLgpAQCAtOCw3ICs4LDcg
QEAgUGFnZSByZWxvYWRlZC4KICAgICAgQSB3aWR0aCBhbmQgaGVpZ2h0IHNob3VsZCBiZSBzcGVj
aWZpZWQgZm9yIGFsbCBpbWFnZXMgaW4gb3JkZXIgdG8gc3BlZWQgdXAgcGFnZSBkaXNwbGF5LiBU
aGUgZm9sbG93aW5nIGltYWdlKHMpIGFyZSBtaXNzaW5nIGEgd2lkdGggYW5kL29yIGhlaWdodDoK
ICAgICAgICBmb28xLmpwZwogICAgICAgIGZvbzIuanBnCi0gIFdlYiBQYWdlIFBlcmZvcm1hbmNl
CisgV2ViIFBhZ2UgUGVyZm9ybWFuY2UKICAgICBPcHRpbWl6ZSB0aGUgb3JkZXIgb2Ygc3R5bGVz
IGFuZCBzY3JpcHRzICgyKQogICAgICBUaGUgZm9sbG93aW5nIGV4dGVybmFsIENTUyBmaWxlcyB3
ZXJlIGluY2x1ZGVkIGFmdGVyIGFuIGV4dGVybmFsIEphdmFTY3JpcHQgZmlsZSBpbiB0aGUgZG9j
dW1lbnQgaGVhZC4gVG8gZW5zdXJlIENTUyBmaWxlcyBhcmUgZG93bmxvYWRlZCBpbiBwYXJhbGxl
bCwgYWx3YXlzIGluY2x1ZGUgZXh0ZXJuYWwgQ1NTIGJlZm9yZSBleHRlcm5hbCBKYXZhU2NyaXB0
LgogICAgICAgIGF1ZGl0cy1zdHlsZTEuY3NzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1
bmN0aW9uYWwtZXhwZWN0ZWQudHh0CmluZGV4IDlkYzdhMTU5MDBlZGVhNzdhYzczZDZkMjJiMjUx
MDRlNTdkMWFjYTcuLmVmZmMyYTMyYWMyZDg0MzIwNzcyYjdlMzljNzcyOTM0MjhlODY3MzEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1h
Z2VzLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9h
dWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CkBAIC0x
LDEwICsxLDEwIEBACiBUZXN0cyBhdWRpdCBydWxlcyBvbiBhIHBhZ2Ugd2l0aG91dCBpbWFnZXMu
CiBQYWdlIHJlbG9hZGVkLgotICBOZXR3b3JrIFV0aWxpemF0aW9uCisgTmV0d29yayBVdGlsaXph
dGlvbgogICAgIENvbWJpbmUgZXh0ZXJuYWwgSmF2YVNjcmlwdCAoNCkKICAgICAgVGhlcmUgYXJl
IG11bHRpcGxlIHJlc291cmNlcyBzZXJ2ZWQgZnJvbSBzYW1lIGRvbWFpbi4gQ29uc2lkZXIgY29t
YmluaW5nIHRoZW0gaW50byBhcyBmZXcgZmlsZXMgYXMgcG9zc2libGUuCiAgICAgICA0IEphdmFT
Y3JpcHQgcmVzb3VyY2VzIHNlcnZlZCBmcm9tIFtkb21haW5dLgotICBXZWIgUGFnZSBQZXJmb3Jt
YW5jZQorIFdlYiBQYWdlIFBlcmZvcm1hbmNlCiAgICAgT3B0aW1pemUgdGhlIG9yZGVyIG9mIHN0
eWxlcyBhbmQgc2NyaXB0cyAoMikKICAgICAgVGhlIGZvbGxvd2luZyBleHRlcm5hbCBDU1MgZmls
ZXMgd2VyZSBpbmNsdWRlZCBhZnRlciBhbiBleHRlcm5hbCBKYXZhU2NyaXB0IGZpbGUgaW4gdGhl
IGRvY3VtZW50IGhlYWQuIFRvIGVuc3VyZSBDU1MgZmlsZXMgYXJlIGRvd25sb2FkZWQgaW4gcGFy
YWxsZWwsIGFsd2F5cyBpbmNsdWRlIGV4dGVybmFsIENTUyBiZWZvcmUgZXh0ZXJuYWwgSmF2YVNj
cmlwdC4KICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2Vycm9yLWluLXdhdGNoLWV4cHJlc3Npb25zLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhwcmVzc2lvbnMuaHRt
bAppbmRleCBhM2YxNGYzNThmMTVhN2E5MzEwODRmYTY5ZGZiZjNmZTYyMDBmNDBjLi5kOGZkODYx
YjY2MzZmY2QxZTkwNDAwZjQyNTY0ZWNjYTc4ZWY4OGM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhwcmVzc2lvbnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhwcmVzc2lv
bnMuaHRtbApAQCAtMTAsNyArMTAsMTAgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAgICAgLy8g
V2UgbmVlZCB0byBpbml0aWFsaXplIHNjcmlwdHMgcGFuZWwgc28gdGhhdCB3YXRjaCBleHByZXNz
aW9ucyBzZWN0aW9uIGlzIGNyZWF0ZWQuCiAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2Ny
aXB0cyIpOwogCi0gICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0gV2ViSW5zcGVjdG9y
LnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zLnNlY3Rpb247Cisg
ICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNQYW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRz
LnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zOworICAgIHdhdGNoRXhwcmVzc2lvbnNQYW5l
LmV4cGFuZCgpOworCisgICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0gd2F0Y2hFeHBy
ZXNzaW9uc1BhbmUuc2VjdGlvbjsKICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4
cHJlc3Npb25zID0gW107CiAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNz
aW9ucy5wdXNoKCIjJCUiKTsKICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi51cGRhdGUoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNw
ZWNpYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNw
ZWNpYWwuaHRtbAppbmRleCBiYWQzNmVjNDgyYmFiZmNlN2RlOGIyZTljMzQ4OTg3ZTE2YWFjOGU3
Li5jZGE4M2RhMTdmZDI2NmQxZmMwODEzZWI0YzcxMTI1ZjAwZGE3YjI3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGllcy1zcGVjaWFsLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1s
CkBAIC0yMyw3ICsyMywxMCBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgLy8gV2Ug
bmVlZCB0byBpbml0aWFsaXplIHNjcmlwdHMgcGFuZWwgc28gdGhhdCB3YXRjaCBleHByZXNzaW9u
cyBzZWN0aW9uIGlzIGNyZWF0ZWQuCiAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNj
cmlwdHMiKTsKIAotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5zZWN0aW9uOwor
ICAgICAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1BhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNj
cmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnM7CisgICAgICAgIHdhdGNoRXhwcmVz
c2lvbnNQYW5lLmV4cGFuZCgpOworCisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0g
d2F0Y2hFeHByZXNzaW9uc1BhbmUuc2VjdGlvbjsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1Nl
Y3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwogICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2Vj
dGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIk9iamVjdCh0cnVlKSIpOwogICAgICAgICB3YXRj
aEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIihmdW5jdGlvbihhLGIp
IHsgcmV0dXJuIGEgKyBiOyB9KSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXBhbmVsLXN3aXRjaC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXBhbmVsLXN3aXRjaC5odG1s
CmluZGV4IDQ3M2MzNDE1ODliNzlhOTA3ZmU5YjUxOWFmNWIzMDc4ODM2YzlmZGIuLjdmZDVmZDJl
ZTA2MTBlOWVmYzY1N2U5NzNkZDVkMTYwYzVmODNkZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wYW5lbC1zd2l0Y2guaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFu
ZWwtc3dpdGNoLmh0bWwKQEAgLTIzLDcgKzIzLDEwIEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQog
ICAgICAgICAvLyBXZSBuZWVkIHRvIGluaXRpYWxpemUgc2NyaXB0cyBwYW5lbCBzbyB0aGF0IHdh
dGNoIGV4cHJlc3Npb25zIHNlY3Rpb24gaXMgY3JlYXRlZC4KICAgICAgICAgV2ViSW5zcGVjdG9y
LnNob3dQYW5lbCgic2NyaXB0cyIpOwogCi0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9u
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Np
b25zLnNlY3Rpb247CisgICAgICAgIHZhciB3YXRjaEV4cHJlc3Npb25zUGFuZSA9IFdlYkluc3Bl
Y3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9uczsKKyAgICAg
ICAgd2F0Y2hFeHByZXNzaW9uc1BhbmUuZXhwYW5kKCk7CisKKyAgICAgICAgd2F0Y2hFeHByZXNz
aW9uc1NlY3Rpb24gPSB3YXRjaEV4cHJlc3Npb25zUGFuZS5zZWN0aW9uOwogICAgICAgICB3YXRj
aEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zID0gW107CiAgICAgICAgIHdhdGNo
RXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgid2luZG93LmRvY3VtZW50
Iik7CiAgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVz
aCgid2luZG93YS5kb2N1bWVudCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4cGFuc2lvbi5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4
cGFuc2lvbi5odG1sCmluZGV4IDc3MzU1Njc5OTFiZjg5YTU4ZGYzOGJkMmY4YjEyYjFhOWNhYWZl
MDUuLjIyNGJiY2NjNzNiNzA1NDFhZDM5YjM1NjViMzAwYWE0MzQzM2IyNTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2
ZS1leHBhbnNpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0
Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhwYW5zaW9uLmh0bWwKQEAgLTI0LDcgKzI0LDEwIEBA
IHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogCiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKLSAg
ICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24gPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlw
dHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnMuc2VjdGlvbjsKKyAgICAgICAgdmFyIHdh
dGNoRXhwcmVzc2lvbnNQYW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQ
YW5lcy53YXRjaEV4cHJlc3Npb25zOworICAgICAgICB3YXRjaEV4cHJlc3Npb25zUGFuZS5leHBh
bmQoKTsKKworICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IHdhdGNoRXhwcmVzc2lv
bnNQYW5lLnNlY3Rpb247CiAgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhw
cmVzc2lvbnMgPSBbXTsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHBy
ZXNzaW9ucy5wdXNoKCJnbG9iYWxPYmplY3QiKTsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1Nl
Y3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJ3aW5kb3dBbGlhcyIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
YXVkaXRzLWFwaS1leHBlY3RlZC50eHQKaW5kZXggODUyOWY4NWQ1NDkxNjE2ZDc3MGY2ZWE0ZWJi
YjYxM2Q3MGVjZTJiYy4uZjVkZWVhZmNjNGVjYmMwNTA4ZmJiMGMwNjg0YWU5NGM2MDliM2FiMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1h
dWRpdHMtYXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0CkBAIC0zNiw2ICszNiw2IEBA
IGNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVkLCByZXN1bHRzIGR1bXAgZm9sbG93czoKICAg
ICB9CiAgICAgZXhwYW5kZWQgOiBmYWxzZQogfQotICBFeHRlbnNpb24gYXVkaXRzCisgRXh0ZW5z
aW9uIGF1ZGl0cwogQWxsIHRlc3RzIGRvbmUuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVk
aXRzLWNvbnRlbnQtc2NyaXB0LWV4cGVjdGVkLnR4dAppbmRleCAxNWFhZDEzYjZhYTRkZmZjODM2
MzgzMjE2MDMwYmMxZDBlN2U5ZGYwLi5mODU4MjllODI4MzRhMGI5MWQ3ZDhjMzcwNDdjZWM0NTUy
YzQwMGZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQt
ZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBUZXN0cyBhdWRpdCBmb3JtYXR0ZXJzIHBlcmZv
cm1pbmcgZXZhbHMgb24gY29udGVudCBzY3JpcHRzIGluIFdlYkluc3BlY3RvciBFeHRlbgogIFN0
YXJ0ZWQgZXh0ZW5zaW9uLgogUnVubmluZyB0ZXN0cy4uLgogUlVOTklORyBURVNUOiBleHRlbnNp
b25fdGVzdEF1ZGl0cwotICBFeHRlbnNpb24gYXVkaXRzCisgRXh0ZW5zaW9uIGF1ZGl0cwogICAg
IFJ1bGUgd2l0aCBkZXRhaWxzIHN1YnRyZWUgKDEpCiAgICAgICBUZXN0IEZvcm1hdHRlcnMKICAg
ICAgICAgICAgbWFpbiB3b3JsZCBvYmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVjdGVkLnR4dApp
bmRleCBkMzM0ZWEzMDIyMTcxZDQ1ZWU4MzdkYTRiNzRjOWU4OTc4MmVhYmM4Li4xMzYxMTM0OGJh
YTQzMDEzNjljOWFlMWNjOGEzOTRkYjUzN2FlYWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0
ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBSdW5uaW5nIHRlc3RzLi4uCiBSVU5OSU5HIFRFU1Q6IGV4
dGVuc2lvbl90ZXN0QXVkaXRzCiBQcm9ncmVzczogNTAlCiBQcm9ncmVzczogNzUlCi0gIEV4dGVu
c2lvbiBhdWRpdHMKKyBFeHRlbnNpb24gYXVkaXRzCiAgICAgRmFpbGVkIHJ1bGUgKDQyKQogICAg
ICB0aGlzIHJ1bGUgYWx3YXlzIGZhaWxzCiAgICAgUnVsZSB3aXRoIGRldGFpbHMgc3VidHJlZSAo
MSkKQEAgLTQzLDcgKzQzLDcgQEAgUHJvZ3Jlc3M6IDc1JQogICAgICAgICAgZXh0ZW5zaW9ucy1h
dWRpdHMuaHRtbDoyMAogICAgIFBhc3NlZCBydWxlCiAgICAgIHRoaXMgcnVsZSBhbHdheXMgcGFz
c2VzIG9rCi0gIEV4dGVuc2lvbiBhdWRpdHMgdGhhdCBmYWlsCisgRXh0ZW5zaW9uIGF1ZGl0cyB0
aGF0IGZhaWwKIGNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVkCiBmYWlsZWRDYXRlZ29yeS5v
bkF1ZGl0U3RhcnRlZCBmaXJlZCwgdGhyb3dpbmcgZXhjZXB0aW9uCiBBbGwgdGVzdHMgZG9uZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
c2lkZWJhci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9u
cy1zaWRlYmFyLmh0bWwKaW5kZXggMmQ1NDk1ZDFkMTY1YzdjNzhhY2QzYmI2OWZlNmU1ODVlMWIz
ZGUwNC4uMDBlNzI1NmQ4ZDliZjU5Yzg5MjZlMWQ2NGNjZmJhMGJhMTZhNWQ3MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1zaWRlYmFyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1zaWRl
YmFyLmh0bWwKQEAgLTgsMTQgKzgsMjggQEAgZnVuY3Rpb24gaW5pdGlhbGl6ZV9leHRlbnNpb25z
U2lkZWJhclRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3QuZHVtcFNpZGViYXJDb250ZW50ID0g
ZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIgc2lkZWJhclBhbmVzID0gV2Vi
SW5zcGVjdG9yLnBhbmVsKCJlbGVtZW50cyIpLnNpZGViYXJQYW5lczsKLSAgICAgICAgLy8gdGhl
IHNpZGViYXIgb2YgaW50ZXJlc3QgaXMgcHJlc3VtZWQgdG8gYWx3YXlzIGJlIGxhc3QuCi0gICAg
ICAgIHZhciBzaWRlYmFyID0gc2lkZWJhclBhbmVzW09iamVjdC5rZXlzKHNpZGViYXJQYW5lcyku
cG9wKCldOworICAgICAgICB2YXIgc2lkZWJhciA9IEluc3BlY3RvclRlc3QuX2V4dGVuc2lvblNp
ZGViYXIoKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVz
KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNpZGVi
YXIgY29udGVudDogIiArIHNpZGViYXIuYm9keUVsZW1lbnQudGV4dENvbnRlbnQpOwogICAgICAg
ICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfSk7CiAgICAgfQorCisgICAgSW5zcGVjdG9yVGVz
dC5leHBhbmRTaWRlYmFyID0gZnVuY3Rpb24oY2FsbGJhY2spCisgICAgeworICAgICAgICB2YXIg
c2lkZWJhciA9IEluc3BlY3RvclRlc3QuX2V4dGVuc2lvblNpZGViYXIoKTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgc2lkZWJhci5leHBhbmQoKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuX2V4dGVuc2lvblNpZGViYXIgPSBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB2YXIgc2lkZWJhclBhbmVzID0gV2ViSW5zcGVjdG9yLnBh
bmVsKCJlbGVtZW50cyIpLnNpZGViYXJQYW5lczsKKyAgICAgICAgLy8gdGhlIHNpZGViYXIgb2Yg
aW50ZXJlc3QgaXMgcHJlc3VtZWQgdG8gYWx3YXlzIGJlIGxhc3QuCisgICAgICAgIHJldHVybiBz
aWRlYmFyUGFuZXNbT2JqZWN0LmtleXMoc2lkZWJhclBhbmVzKS5wb3AoKV07CisgICAgfQogfQog
CiBmdW5jdGlvbiBleHRlbnNpb25fdGVzdFNpZGViYXJTZXRQYWdlKG5leHRUZXN0KQpAQCAtMzIs
NyArNDYsNyBAQCBmdW5jdGlvbiBleHRlbnNpb25fdGVzdFNpZGViYXJTZXRQYWdlKG5leHRUZXN0
KQogICAgICAgICBzaWRlYmFyLm9uU2hvd24uYWRkTGlzdGVuZXIob25TaG93bik7CiAgICAgICAg
IHZhciBiYXNlUGF0aCA9IGxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1wvW14vXSokLywgIi8i
KTsKICAgICAgICAgc2lkZWJhci5zZXRQYWdlKGJhc2VQYXRoICsgImV4dGVuc2lvbi1zaWRlYmFy
Lmh0bWwiKTsKLSAgICAgICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZWxlbWVudHMiKTsKKyAgICAg
ICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZWxlbWVudHMiLCBleHRlbnNpb25fZXhwYW5kU2lkZWJh
cik7CiAgICAgfQogICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuY3JlYXRlU2lkZWJh
clBhbmUoIlRlc3QgU2lkZWJhciIsIG9uU2lkZWJhckNyZWF0ZWQpOwogfQpAQCAtNDIsNiArNTYs
MTEgQEAgZnVuY3Rpb24gZXh0ZW5zaW9uX2R1bXBTaWRlYmFyQ29udGVudChuZXh0VGVzdCkKICAg
ICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3BlY3RvclRlc3QuZHVtcFNpZGViYXJDb250ZW50KHJl
cGx5KTsiLCBuZXh0VGVzdCk7CiB9CiAKK2Z1bmN0aW9uIGV4dGVuc2lvbl9leHBhbmRTaWRlYmFy
KGNhbGxiYWNrKQoreworICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5leHBh
bmRTaWRlYmFyKHJlcGx5KTsiLCBjYWxsYmFjayk7Cit9CisKIGZ1bmN0aW9uIGV4dGVuc2lvbl90
ZXN0U2lkZWJhclNldE9iamVjdChuZXh0VGVzdCkKIHsKICAgICBmdW5jdGlvbiBvblNpZGViYXJD
cmVhdGVkKHNpZGViYXIpCkBAIC0xMDUsNyArMTI0LDcgQEAgZnVuY3Rpb24gZXh0ZW5zaW9uX3Rl
c3RTaWRlYmFyUGFnZVJlcGxhY2VkV2l0aE9iamVjdChuZXh0VGVzdCkKICAgICAgICAgIHNpZGVi
YXIgPSBhU2lkZWJhcjsKICAgICAgICAgIHNpZGViYXIub25TaG93bi5hZGRMaXN0ZW5lcihvblNo
b3duKTsKICAgICAgICAgIHNpZGViYXIuc2V0UGFnZShiYXNlUGF0aCArICJleHRlbnNpb24tc2lk
ZWJhci5odG1sIik7Ci0gICAgICAgICBleHRlbnNpb25fc2hvd1BhbmVsKCJlbGVtZW50cyIpOwor
ICAgICAgICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZWxlbWVudHMiLCBleHRlbnNpb25fZXhwYW5k
U2lkZWJhcik7CiAgICAgIH0KICAgICAgdmFyIGRpZFNldE9iamVjdCA9IGZhbHNlOwogICAgICBm
dW5jdGlvbiBvblNob3duKGZyYW1lKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185772</attachid>
            <date>2013-01-31 06:34:53 -0800</date>
            <delta_ts>2013-02-01 05:25:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108183-20130131183136.patch</filename>
            <type>text/plain</type>
            <size>36108</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFjOWI5YzY3OGM2YWYx
OWRiM2EzM2FjZjk3ZTkzNTA4OWIyZTYxMi4uODg1NzU4NmI1N2U0NzUyY2M1ZWExNjA4NDBkOGE2
YTc2YmU3NTU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEzLTAxLTMxICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENyZWF0ZSBhIGNvbnRhaW5lciBjbGFzcyBmb3IgU2lkZWJhclBhbmUgaW5z
dGFuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDgxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
aWRlYmFyUGFuZVN0YWNrIGlzIHJlc3BvbnNpYmxlIGZvciBwYW5lIHRpdGxlIGJhciBhbmQgZXhw
YW5kL2NvbGxhcHNlIGJlaGF2aW9yIChwcmV2aW91c2x5IGhhbmRsZWQgYnkgU2lkZWJhclBhbmUp
LgorICAgICAgICBTaWRlYmFyUGFuZSdzIGFyZSBpbnNlcnRlZCBpbnRvIERPTSBsYXppbHkgYW5k
IGNhbiBiZWxvbmcgdG8gbW9yZSB0aGFuIG9uZSBjb250YWluZXIuCisgICAgICAgIFNpZGViYXJQ
YW5lIGlzIHJlYWR5IHRvIGJlIGRpc3BsYXllZCBpbiBvdGhlciB0eXBlcyBvZiBjb250YWluZXJz
IChzdWNoIGFzIHRhYmJlZCBwYW5lIGFzIHJlcXVlc3RlZCBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NTUyKS4KKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIG5v
IHZpc2libGUgY2hhbmdlcy4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRS
ZXN1bHRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UmVzdWx0Vmlldyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0V4dGVuc2lvblBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNp
ZGViYXJQYW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZl
ci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9v
bkNyZWF0ZVNpZGViYXJQYW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2lkZWJhclBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnBy
b3RvdHlwZS50aXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90
eXBlLmV4cGFuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBl
LmNvbGxhcHNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUu
c2V0RXhwYW5kQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnBy
b3RvdHlwZS5zZXRTaG93Q2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQ
YW5lLnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBh
bmVTdGFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5
cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJv
dG90eXBlLmFkZFBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2su
cHJvdG90eXBlLl9hZGRUaXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVT
dGFjay5wcm90b3R5cGUuX3Nob3dQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFy
UGFuZVN0YWNrLnByb3RvdHlwZS5fc3luY0V4cGFuZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZS5fb25UaXRsZUtleURvd24pOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLnBhbmUtdGl0bGUgKyAu
cGFuZS10aXRsZSwgLnBhbmU6bm90KC52aXNpYmxlKSArIC5wYW5lLXRpdGxlLCAucGFuZS10aXRs
ZTpmaXJzdC1vZi10eXBlKToKKyAgICAgICAgKC5wYW5lLXRpdGxlKToKKyAgICAgICAgKC5wYW5l
LXRpdGxlOmFjdGl2ZSk6CisgICAgICAgICgucGFuZS10aXRsZTo6YmVmb3JlKToKKyAgICAgICAg
KC5wYW5lLXRpdGxlLmV4cGFuZGVkOjpiZWZvcmUpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiBz
ZWxlY3QpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiBzZWxlY3Q6aG92ZXIpOgorICAgICAgICAo
LnBhbmUtdGl0bGUgPiBzZWxlY3Q6YWN0aXZlKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gc2Vs
ZWN0LnNlbGVjdC1zZXR0aW5ncyk6CisgICAgICAgICgucGFuZS10aXRsZSA+IHNlbGVjdC5zZWxl
Y3QtZmlsdGVyKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gc2VsZWN0ID4gb3B0aW9uLCAucGFu
ZS10aXRsZSA+IHNlbGVjdCA+IGhyKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0
bGUtYnV0dG9uKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmhv
dmVyKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmFjdGl2ZSwg
LnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24udG9nZ2xlZCk6CisgICAgICAgICgucGFu
ZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5hZGQpOgorICAgICAgICAoLnBhbmUtdGl0bGUg
PiAucGFuZS10aXRsZS1idXR0b24uZWxlbWVudC1zdGF0ZSk6CisgICAgICAgICgucGFuZS10aXRs
ZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5yZWZyZXNoKToKKyAgICAgICAgKC5wYW5lLnZpc2libGUg
PiAuYm9keSk6CisgICAgICAgICgucGFuZTpudGgtbGFzdC1vZi10eXBlKDEpKToKKyAgICAgICAg
KC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmUt
dGl0bGUtYnV0dG9uLCBidXR0b24uc2hvdy1hbGwtbm9kZXMpOgorICAgICAgICAoLnBhbmVsLWVu
YWJsZXItdmlldyBidXR0b246YWN0aXZlOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmUtdGl0
bGUtYnV0dG9uOmFjdGl2ZSwgYnV0dG9uLnNob3ctYWxsLW5vZGVzOmFjdGl2ZSk6CisgICAgICAg
IChib2R5LmluYWN0aXZlIC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOm5vdCguc3RhdHVzLWJh
ci1pdGVtKSwgLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246ZGlzYWJsZWQ6bm90KC5zdGF0dXMt
YmFyLWl0ZW0pLCBib2R5LmluYWN0aXZlIC5wYW5lLXRpdGxlLWJ1dHRvbiwgLnBhbmUtdGl0bGUt
YnV0dG9uOmRpc2FibGVkLCBib2R5LmluYWN0aXZlIGJ1dHRvbi5zaG93LWFsbC1ub2Rlcyk6CisK
IDIwMTMtMDEtMzEgIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogW1Byb2ZpbGVzXSBzaG93IGxhdW5jaGVyIHZpZXcgdXBvbiBk
ZWxldGluZyBsYXN0IHByb2ZpbGUgdHlwZSdzIGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJlc3VsdFZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UmVzdWx0Vmlldy5qcwppbmRleCBmMjgwZWY2
NDMzMjlmMTRhMTZiNWU0Mzg4NmIyOTg0NmZkNzEyMTVkLi40NGYzNzhjMmEwZjA5MGZiMTlmYmE4
YTMyMTgyZWRjMzIxYzFkNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0F1ZGl0UmVzdWx0Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0F1ZGl0UmVzdWx0Vmlldy5qcwpAQCAtMzAsMjQgKzMwLDI0IEBACiAKIC8q
KgogICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CisgKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2t9CiAgKiBAcGFyYW0geyFBcnJh
eS48IVdlYkluc3BlY3Rvci5BdWRpdENhdGVnb3J5UmVzdWx0Pn0gY2F0ZWdvcnlSZXN1bHRzCiAg
Ki8KIFdlYkluc3BlY3Rvci5BdWRpdFJlc3VsdFZpZXcgPSBmdW5jdGlvbihjYXRlZ29yeVJlc3Vs
dHMpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKLSAgICB0aGlzLmVsZW1l
bnQuY2xhc3NOYW1lID0gImF1ZGl0LXJlc3VsdC12aWV3IjsKKyAgICBXZWJJbnNwZWN0b3IuU2lk
ZWJhclBhbmVTdGFjay5jYWxsKHRoaXMpOworICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNz
KCJhdWRpdC1yZXN1bHQtdmlldyIpOwogCiAgICAgZnVuY3Rpb24gY2F0ZWdvcnlTb3J0ZXIoYSwg
YikgewogICAgICAgICByZXR1cm4gKGEudGl0bGUgfHwgIiIpLmxvY2FsZUNvbXBhcmUoYi50aXRs
ZSB8fCAiIik7CiAgICAgfQogICAgIGNhdGVnb3J5UmVzdWx0cy5zb3J0KGNhdGVnb3J5U29ydGVy
KTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGVnb3J5UmVzdWx0cy5sZW5ndGg7ICsraSkK
LSAgICAgICAgbmV3IFdlYkluc3BlY3Rvci5BdWRpdENhdGVnb3J5UmVzdWx0UGFuZShjYXRlZ29y
eVJlc3VsdHNbaV0pLnNob3codGhpcy5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5hZGRQYW5lKG5l
dyBXZWJJbnNwZWN0b3IuQXVkaXRDYXRlZ29yeVJlc3VsdFBhbmUoY2F0ZWdvcnlSZXN1bHRzW2ld
KSk7CiB9CiAKIFdlYkluc3BlY3Rvci5BdWRpdFJlc3VsdFZpZXcucHJvdG90eXBlID0gewotICAg
IF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlCisgICAgX19wcm90b19fOiBX
ZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUKIH0KIAogLyoqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5k
ZXggNmQyNzA2NTU0MWE5Y2I5ZDc1YzBkMmUwY2NmZmZhZDM4MThlMTBmMi4uODgzNmQwN2E1ZTVj
MjNkZjc1NWU0YTViOTMyZWE1ZjMxYjkyYzFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtODYsMTAgKzg2LDEwIEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuc2lkZWJh
clBhbmVzLmRvbUJyZWFrcG9pbnRzID0gV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRzU2lkZWJh
clBhbmU7CiAgICAgdGhpcy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMgPSBuZXcgV2ViSW5z
cGVjdG9yLkV2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUoKTsKIAotICAgIHRoaXMuc2lkZWJhclBh
bmVzLnN0eWxlcy5vbmV4cGFuZCA9IHRoaXMudXBkYXRlU3R5bGVzLmJpbmQodGhpcyk7Ci0gICAg
dGhpcy5zaWRlYmFyUGFuZXMubWV0cmljcy5vbmV4cGFuZCA9IHRoaXMudXBkYXRlTWV0cmljcy5i
aW5kKHRoaXMpOwotICAgIHRoaXMuc2lkZWJhclBhbmVzLnByb3BlcnRpZXMub25leHBhbmQgPSB0
aGlzLnVwZGF0ZVByb3BlcnRpZXMuYmluZCh0aGlzKTsKLSAgICB0aGlzLnNpZGViYXJQYW5lcy5l
dmVudExpc3RlbmVycy5vbmV4cGFuZCA9IHRoaXMudXBkYXRlRXZlbnRMaXN0ZW5lcnMuYmluZCh0
aGlzKTsKKyAgICB0aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2V0U2hvd0NhbGxiYWNrKHRoaXMu
dXBkYXRlU3R5bGVzLmJpbmQodGhpcykpOworICAgIHRoaXMuc2lkZWJhclBhbmVzLm1ldHJpY3Mu
c2V0U2hvd0NhbGxiYWNrKHRoaXMudXBkYXRlTWV0cmljcy5iaW5kKHRoaXMpKTsKKyAgICB0aGlz
LnNpZGViYXJQYW5lcy5wcm9wZXJ0aWVzLnNldFNob3dDYWxsYmFjayh0aGlzLnVwZGF0ZVByb3Bl
cnRpZXMuYmluZCh0aGlzKSk7CisgICAgdGhpcy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMu
c2V0U2hvd0NhbGxiYWNrKHRoaXMudXBkYXRlRXZlbnRMaXN0ZW5lcnMuYmluZCh0aGlzKSk7CiAK
ICAgICB0aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuZXhwYW5kZWQgPSB0cnVlOwogCkBAIC05Nyw4
ICs5NywxMCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0
aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuYWRkRXZlbnRMaXN0ZW5lcigic3R5bGUgcHJvcGVydHkg
dG9nZ2xlZCIsIHRoaXMuX3N0eWxlc1BhbmVFZGl0ZWQsIHRoaXMpOwogICAgIHRoaXMuc2lkZWJh
clBhbmVzLm1ldHJpY3MuYWRkRXZlbnRMaXN0ZW5lcigibWV0cmljcyBlZGl0ZWQiLCB0aGlzLl9t
ZXRyaWNzUGFuZUVkaXRlZCwgdGhpcyk7CiAKKyAgICB0aGlzLnNpZGViYXJQYW5lVmlldyA9IG5l
dyBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjaygpOwogICAgIGZvciAodmFyIHBhbmUgaW4g
dGhpcy5zaWRlYmFyUGFuZXMpCi0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVzW3BhbmVdLnNob3co
dGhpcy5zaWRlYmFyRWxlbWVudCk7CisgICAgICAgIHRoaXMuc2lkZWJhclBhbmVWaWV3LmFkZFBh
bmUodGhpcy5zaWRlYmFyUGFuZXNbcGFuZV0pOworICAgIHRoaXMuc2lkZWJhclBhbmVWaWV3LnNo
b3codGhpcy5zaWRlYmFyRWxlbWVudCk7CiAKICAgICB0aGlzLl9wb3BvdmVySGVscGVyID0gbmV3
IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVudCwgdGhpcy5fZ2V0UG9wb3Zl
ckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5iaW5kKHRoaXMpKTsKICAgICB0
aGlzLl9wb3BvdmVySGVscGVyLnNldFRpbWVvdXQoMCk7CkBAIC0xNDMsOCArMTQ1LDYgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIGlmICghdGhp
cy50cmVlT3V0bGluZS5yb290RE9NTm9kZSkKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC5yZXF1ZXN0RG9jdW1lbnQoKTsKLQotICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5kb21C
cmVha3BvaW50cy5zaG93KHRoaXMuc2lkZWJhckVsZW1lbnQsIHRoaXMuc2lkZWJhclBhbmVzLmV2
ZW50TGlzdGVuZXJzLmVsZW1lbnQpOwogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNp
b25QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9u
UGFuZWwuanMKaW5kZXggMDQzYmNjMTYyNDRmYWEyYTgxNWVmMGEwZTVhMzFmY2JhYTk4YTJjYy4u
MDlhNGQ2YjE5NTdkMDZhYzU1OTg3MGJiZGNlYjU2ZDI1Mzg2Y2I1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCkBAIC0x
NDAsNiArMTQwLDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvbkJ1dHRvbi5wcm90b3R5cGUgPSB7
CiBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2lkZWJhclBhbmUgPSBmdW5jdGlvbih0aXRsZSwgaWQp
CiB7CiAgICAgV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLmNhbGwodGhpcywgdGl0bGUpOworICAg
IHRoaXMuc2V0SGlkZU9uRGV0YWNoKCk7CiAgICAgdGhpcy5faWQgPSBpZDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5q
cwppbmRleCA3NjhiODYxYTZkNTZlNTA3MzZkMGFhODZiNmRhYzRmNzFmMzMxOTMyLi5jMTE2MWJl
MjhkMTY4ZDQ0NjE4M2Y3NTFhNWJjOWU0MjIyOWI5NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtMjMxLDEz
ICsyMzEsMTMgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbChtZXNzYWdlLnBhbmVsKTsKICAg
ICAgICAgaWYgKCFwYW5lbCkKICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9OT1RG
T1VORChtZXNzYWdlLnBhbmVsKTsKLSAgICAgICAgaWYgKCFwYW5lbC5zaWRlYmFyRWxlbWVudCB8
fCAhcGFuZWwuc2lkZWJhclBhbmVzKQorICAgICAgICBpZiAoIXBhbmVsLnNpZGViYXJQYW5lVmll
dyB8fCAhcGFuZWwuc2lkZWJhclBhbmVzKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1
cy5FX05PVFNVUFBPUlRFRCgpOwogICAgICAgICB2YXIgaWQgPSBtZXNzYWdlLmlkOwogICAgICAg
ICB2YXIgc2lkZWJhciA9IG5ldyBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2lkZWJhclBhbmUobWVz
c2FnZS50aXRsZSwgbWVzc2FnZS5pZCk7CiAgICAgICAgIHRoaXMuX2NsaWVudE9iamVjdHNbaWRd
ID0gc2lkZWJhcjsKICAgICAgICAgcGFuZWwuc2lkZWJhclBhbmVzW2lkXSA9IHNpZGViYXI7Ci0g
ICAgICAgIHNpZGViYXIuc2hvdyhwYW5lbC5zaWRlYmFyRWxlbWVudCk7CisgICAgICAgIHBhbmVs
LnNpZGViYXJQYW5lVmlldy5hZGRQYW5lKHNpZGViYXIpOwogCiAgICAgICAgIHJldHVybiB0aGlz
Ll9zdGF0dXMuT0soKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCBhNTNlMDA0ZmM0MTYyZGE0MzA3YTE5NDE0
OWU2ZjIzZTdmMjY0YmRiLi5lMWUxMmM1ODdjMzNhZjgzNTJkZWNlOGQwNzYzYTg2NzAzMzYyYTA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQ
YW5lbC5qcwpAQCAtMTIyLDE1ICsxMjIsMTEgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9
IGZ1bmN0aW9uKHdvcmtzcGFjZUZvclRlc3QpCiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLndv
cmtlckxpc3QgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZShXZWJJbnNwZWN0
b3Iud29ya2VyTWFuYWdlcik7CiAgICAgfQogCi0gICAgdGhpcy5fZGVidWdTaWRlYmFyQ29udGVu
dHNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5fZGVi
dWdTaWRlYmFyQ29udGVudHNFbGVtZW50LmlkID0gInNjcmlwdHMtZGVidWctc2lkZWJhci1jb250
ZW50cyI7Ci0gICAgdGhpcy5zaWRlYmFyRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kZWJ1Z1Np
ZGViYXJDb250ZW50c0VsZW1lbnQpOwotCi0gICAgZm9yICh2YXIgcGFuZSBpbiB0aGlzLnNpZGVi
YXJQYW5lcykgewotICAgICAgICBpZiAodGhpcy5zaWRlYmFyUGFuZXNbcGFuZV0gPT09IHRoaXMu
c2lkZWJhclBhbmVzLmRvbUJyZWFrcG9pbnRzKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgIHRoaXMuc2lkZWJhclBhbmVzW3BhbmVdLnNob3codGhpcy5fZGVidWdTaWRlYmFyQ29udGVu
dHNFbGVtZW50KTsKLSAgICB9CisgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcgPSBuZXcgV2ViSW5z
cGVjdG9yLlNpZGViYXJQYW5lU3RhY2soKTsKKyAgICB0aGlzLnNpZGViYXJQYW5lVmlldy5lbGVt
ZW50LmlkID0gInNjcmlwdHMtZGVidWctc2lkZWJhci1jb250ZW50cyI7CisgICAgZm9yICh2YXIg
cGFuZSBpbiB0aGlzLnNpZGViYXJQYW5lcykKKyAgICAgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcu
YWRkUGFuZSh0aGlzLnNpZGViYXJQYW5lc1twYW5lXSk7CisgICAgdGhpcy5zaWRlYmFyUGFuZVZp
ZXcuc2hvdyh0aGlzLnNpZGViYXJFbGVtZW50KTsKIAogICAgIHRoaXMuc2lkZWJhclBhbmVzLmNh
bGxzdGFjay5leHBhbmRlZCA9IHRydWU7CiAKQEAgLTIxNSw4ICsyMTEsNiBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxs
KHRoaXMpOwotICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5kb21CcmVha3BvaW50cy5zaG93KHRo
aXMuX2RlYnVnU2lkZWJhckNvbnRlbnRzRWxlbWVudCwgdGhpcy5zaWRlYmFyUGFuZXMueGhyQnJl
YWtwb2ludHMuZWxlbWVudCk7Ci0KICAgICAgICAgdGhpcy5fbmF2aWdhdG9yQ29udHJvbGxlci53
YXNTaG93bigpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NpZGViYXJQYW5lLmpzCmluZGV4IGVkM2RiYTNjNmRlMTAxNDQ0YjViYTVhY2Y1NWI0
MDkyZTMxZjM4Y2MuLmE5OTFmYWM1YTM3ZjA5M2E3MTVhOWY3NTcwZmRiYzA5MzhiZGExNzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclBhbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyUGFuZS5q
cwpAQCAtMzUsNjAgKzM1LDIzIEBAIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZSA9IGZ1bmN0aW9u
KHRpdGxlKQogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CiAgICAgdGhpcy5lbGVt
ZW50LmNsYXNzTmFtZSA9ICJwYW5lIjsKIAotICAgIHRoaXMudGl0bGVFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy50aXRsZUVsZW1lbnQuY2xhc3NOYW1l
ID0gInRpdGxlIjsKLSAgICB0aGlzLnRpdGxlRWxlbWVudC50YWJJbmRleCA9IDA7Ci0gICAgdGhp
cy50aXRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLnRvZ2dsZUV4cGFu
ZGVkLmJpbmQodGhpcyksIGZhbHNlKTsKLSAgICB0aGlzLnRpdGxlRWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fb25UaXRsZUtleURvd24uYmluZCh0aGlzKSwgZmFsc2Up
OworLy8gICAgdGhpcy50aXRsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICB0aGlzLnRpdGxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKTsKKyAgICB0aGlzLmJvZHlFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJk
aXYiLCAiYm9keSIpOwogCi0gICAgdGhpcy5ib2R5RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwotICAgIHRoaXMuYm9keUVsZW1lbnQuY2xhc3NOYW1lID0gImJvZHkiOwor
ICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7CisgICAgdGhpcy5fZXhwYW5kZWQgPSBmYWxzZTsKIAot
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnRpdGxlRWxlbWVudCk7Ci0gICAgdGhp
cy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuYm9keUVsZW1lbnQpOwotCi0gICAgdGhpcy50aXRs
ZSA9IHRpdGxlOwotICAgIHRoaXMuZ3Jvd2JhclZpc2libGUgPSBmYWxzZTsKLSAgICB0aGlzLmV4
cGFuZGVkID0gZmFsc2U7CisgICAgdGhpcy5fZXhwYW5kQ2FsbGJhY2sgPSBudWxsOworICAgIHRo
aXMuX3Nob3dDYWxsYmFjayA9IG51bGw7CiB9CiAKIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5w
cm90b3R5cGUgPSB7Ci0gICAgZ2V0IHRpdGxlKCkKKyAgICB0aXRsZTogZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlOwogICAgIH0sCiAKLSAgICBzZXQgdGl0bGUo
eCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90aXRsZSA9PT0geCkKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgdGhpcy5fdGl0bGUgPSB4OwotICAgICAgICB0aGlzLnRpdGxlRWxlbWVu
dC50ZXh0Q29udGVudCA9IHg7Ci0gICAgfSwKLQotICAgIGdldCBncm93YmFyVmlzaWJsZSgpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZ3Jvd2JhclZpc2libGU7Ci0gICAgfSwKLQotICAg
IHNldCBncm93YmFyVmlzaWJsZSh4KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2dyb3diYXJW
aXNpYmxlID09PSB4KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX2dyb3di
YXJWaXNpYmxlID0geDsKLQotICAgICAgICBpZiAoeCAmJiAhdGhpcy5fZ3Jvd2JhckVsZW1lbnQp
IHsKLSAgICAgICAgICAgIHRoaXMuX2dyb3diYXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Ci0gICAgICAgICAgICB0aGlzLl9ncm93YmFyRWxlbWVudC5jbGFzc05hbWUg
PSAiZ3Jvd2JhciI7Ci0gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
Z3Jvd2JhckVsZW1lbnQpOwotICAgICAgICB9IGVsc2UgaWYgKCF4ICYmIHRoaXMuX2dyb3diYXJF
bGVtZW50KSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fZ3Jvd2JhckVsZW1lbnQucGFyZW50Tm9k
ZSkKLSAgICAgICAgICAgICAgICB0aGlzLl9ncm93YmFyRWxlbWVudC5wYXJlbnROb2RlKHRoaXMu
X2dyb3diYXJFbGVtZW50KTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9ncm93YmFyRWxlbWVu
dDsKLSAgICAgICAgfQotICAgIH0sCi0KICAgICBnZXQgZXhwYW5kZWQoKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkOwpAQCAtMTA3LDEyICs3MCw4IEBAIFdlYkluc3BlY3Rv
ci5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlzLl9leHBhbmRlZCkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdGhpcy5fZXhwYW5kZWQgPSB0cnVlOwotICAg
ICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZXhwYW5kZWQiKTsKLSAgICAgICAgdGhp
cy5vbmV4cGFuZCgpOwotICAgIH0sCi0KLSAgICBvbmV4cGFuZDogZnVuY3Rpb24oKQotICAgIHsK
KyAgICAgICAgaWYgKHRoaXMuX2V4cGFuZENhbGxiYWNrKQorICAgICAgICAgICAgdGhpcy5fZXhw
YW5kQ2FsbGJhY2soKTsKICAgICB9LAogCiAgICAgY29sbGFwc2U6IGZ1bmN0aW9uKCkKQEAgLTEy
MCw3ICs3OSw4IEBAIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIGlmICghdGhpcy5fZXhwYW5kZWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRo
aXMuX2V4cGFuZGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVTdHlsZUNs
YXNzKCJleHBhbmRlZCIpOworICAgICAgICBpZiAodGhpcy5fZXhwYW5kQ2FsbGJhY2spCisgICAg
ICAgICAgICB0aGlzLl9leHBhbmRDYWxsYmFjaygpOwogICAgIH0sCiAKICAgICB0b2dnbGVFeHBh
bmRlZDogZnVuY3Rpb24oKQpAQCAtMTI4LDEwICs4OCw5MSBAQCBXZWJJbnNwZWN0b3IuU2lkZWJh
clBhbmUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5k
ZWQ7CiAgICAgfSwKIAotICAgIF9vblRpdGxlS2V5RG93bjogZnVuY3Rpb24oZXZlbnQpCisgICAg
c2V0RXhwYW5kQ2FsbGJhY2s6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdGhp
cy5fZXhwYW5kQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICB9LAorCisgICAgc2V0U2hvd0NhbGxi
YWNrOiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHRoaXMuX3Nob3dDYWxsYmFj
ayA9IGNhbGxiYWNrOworICAgIH0sCisKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7
CisgICAgICAgIGlmICh0aGlzLl9zaG93Q2FsbGJhY2spCisgICAgICAgICAgICB0aGlzLl9zaG93
Q2FsbGJhY2soKTsKKyAgICB9LAorCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuVmlldy5w
cm90b3R5cGUKK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNw
ZWN0b3IuVmlld30KKyAqLworV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sgPSBmdW5jdGlv
bigpCit7CisgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKKyAgICB0aGlzLmVsZW1l
bnQuY2xhc3NOYW1lID0gInNpZGViYXItcGFuZS1zdGFjayBmaWxsIjsKKworICAgIHRoaXMuX3Rp
dGxlcyA9IFtdOworICAgIHRoaXMuX3BhbmVzID0gW107Cit9CisKK1dlYkluc3BlY3Rvci5TaWRl
YmFyUGFuZVN0YWNrLnByb3RvdHlwZSA9IHsKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhp
cyk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fcGFuZXMubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICB0aGlzLl9zaG93UGFuZShpKTsKKyAgICB9LAorCisgICAgYWRkUGFuZTog
ZnVuY3Rpb24ocGFuZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3BhbmVzLnB1c2gocGFuZSk7Cisg
ICAgICAgIHRoaXMuX2FkZFRpdGxlKHBhbmUpOworICAgICAgICBpZiAodGhpcy5pc1Nob3dpbmco
KSkKKyAgICAgICAgICAgIHRoaXMuX3Nob3dQYW5lKHRoaXMuX3BhbmVzLmxlbmd0aCAtIDEpOwor
ICAgIH0sCisKKyAgICBfYWRkVGl0bGU6IGZ1bmN0aW9uKHBhbmUpCisgICAgeworICAgICAgICB2
YXIgdGl0bGUgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJwYW5lLXRpdGxlIik7
CisgICAgICAgIHRpdGxlLnRleHRDb250ZW50ID0gcGFuZS50aXRsZSgpOworICAgICAgICB0aXRs
ZS50YWJJbmRleCA9IDA7CisgICAgICAgIHRpdGxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
cGFuZS50b2dnbGVFeHBhbmRlZC5iaW5kKHBhbmUpLCBmYWxzZSk7CisgICAgICAgIHRpdGxlLmFk
ZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9vblRpdGxlS2V5RG93bi5iaW5kKHRoaXMs
IHBhbmUpLCBmYWxzZSk7CisgICAgICAgIHRpdGxlLmFwcGVuZENoaWxkKHBhbmUudGl0bGVFbGVt
ZW50KTsKKyAgICAgICAgdGhpcy5fdGl0bGVzLnB1c2godGl0bGUpOworICAgIH0sCisKKyAgICBf
c2hvd1BhbmU6IGZ1bmN0aW9uKGluZGV4KQorICAgIHsKKyAgICAgICAgdmFyIHBhbmUgPSB0aGlz
Ll9wYW5lc1tpbmRleF07CisgICAgICAgIHBhbmUuc2V0RXhwYW5kQ2FsbGJhY2sodGhpcy5fc3lu
Y0V4cGFuZGVkLmJpbmQodGhpcywgaW5kZXgpKTsKKyAgICAgICAgdGhpcy5fc3luY0V4cGFuZGVk
KGluZGV4KTsKKyAgICB9LAorCisgICAgX3N5bmNFeHBhbmRlZDogZnVuY3Rpb24oaW5kZXgpCisg
ICAgeworICAgICAgICB2YXIgcGFuZSA9IHRoaXMuX3BhbmVzW2luZGV4XTsKKyAgICAgICAgdmFy
IHRpdGxlID0gdGhpcy5fdGl0bGVzW2luZGV4XTsKKyAgICAgICAgaWYgKHBhbmUuZXhwYW5kZWQp
IHsKKyAgICAgICAgICAgIHRpdGxlLmFkZFN0eWxlQ2xhc3MoImV4cGFuZGVkIik7CisgICAgICAg
ICAgICBwYW5lLnNob3codGhpcy5lbGVtZW50LCB0aXRsZS5uZXh0U2libGluZyk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICB0aXRsZS5yZW1vdmVTdHlsZUNsYXNzKCJleHBhbmRlZCIp
OworICAgICAgICAgICAgaWYgKHBhbmUuZWxlbWVudC5wYXJlbnROb2RlID09IHRoaXMuZWxlbWVu
dCkKKyAgICAgICAgICAgICAgICBwYW5lLmRldGFjaCgpOworICAgICAgICB9CisgICAgfSwKKwor
ICAgIF9vblRpdGxlS2V5RG93bjogZnVuY3Rpb24ocGFuZSwgZXZlbnQpCiAgICAgewogICAgICAg
ICBpZiAoaXNFbnRlcktleShldmVudCkgfHwgZXZlbnQua2V5Q29kZSA9PT0gV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQuS2V5cy5TcGFjZS5jb2RlKQotICAgICAgICAgICAgdGhpcy50b2dn
bGVFeHBhbmRlZCgpOworICAgICAgICAgICAgcGFuZS50b2dnbGVFeHBhbmRlZCgpOwogICAgIH0s
CiAKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUu
anMKaW5kZXggN2IwZDI0YWM1MzVmZTJmNWY0YTk0M2E5M2UwYzUwNjRiOThlNzJkZi4uNzRhYjIw
M2NkMTAxYjkxYjU1NzE2OTU5MGE2YjE3MDkwNDZkZDcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC04
MDAsNyArODAwLDcgQEAgV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVTaWRlYmFyUGFuZSA9IGZ1
bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVTaWRlYmFyUGFuZS5wcm90b3R5
cGUgPSB7CiAKLSAgICAvLyBPdmVycmlkaW5nIGV4cGFuZCgpIHJhdGhlciB0aGFuIG9uZXhwYW5k
KCkgdG8gZWxpbWluYXRlIHRoZSB2aXN1YWwgc2xvd25lc3MgZHVlIHRvIGEgcG9zc2libGUgYmFj
a2VuZCB0cmlwLgorICAgIC8vIE92ZXJyaWRpbmcgZXhwYW5kKCkgcmF0aGVyIHRoYW4gd2FzU2hv
d24oKSB0byBlbGltaW5hdGUgdGhlIHZpc3VhbCBzbG93bmVzcyBkdWUgdG8gYSBwb3NzaWJsZSBi
YWNrZW5kIHRyaXAuCiAgICAgZXhwYW5kOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjaygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5jc3MKaW5kZXggNTdkYjBlYTdhNzFmN2MwOWZlMjgwODg0MDBmNTJiOWE2M2U1
Yjc1Mi4uZTEzNDQyZjBhMTY0N2Y4Y2M3NDU3ODJiMGZjOTJhZTFkNGEzM2NiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwpAQCAtMTc4
NSwxMSArMTc4NSwxMSBAQCBsaS5lZGl0aW5nIC5zd2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQt
YnV0dG9uLCAgbGkuZWRpdGluZy1zdWItcGFydCAuZGVsZXRlLWJ1dAogICAgIGJvcmRlcjogMXB4
IHNvbGlkIHJnYmEoNjQsIDY0LCA2NCwgMC44KTsKIH0KIAotLnBhbmU6bm90KC5leHBhbmRlZCkg
KyAucGFuZSwgLnBhbmU6Zmlyc3Qtb2YtdHlwZSB7CisucGFuZS10aXRsZSArIC5wYW5lLXRpdGxl
LCAucGFuZTpub3QoLnZpc2libGUpICsgLnBhbmUtdGl0bGUsIC5wYW5lLXRpdGxlOmZpcnN0LW9m
LXR5cGUgewogICAgIG1hcmdpbi10b3A6IC0xcHg7CiB9CiAKLS5wYW5lID4gLnRpdGxlIHsKKy5w
YW5lLXRpdGxlIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVh
ciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYigyNDMsIDI0MywgMjQzKSksIGNvbG9y
LXN0b3AoMC4wNSwgcmdiKDI0MywgMjQzLCAyNDMpKSwgY29sb3Itc3RvcCgwLjA1LCByZ2IoMjMw
LCAyMzAsIDIzMCkpLCB0byhyZ2IoMjA5LCAyMDksIDIwOSkpKTsKICAgICBoZWlnaHQ6IDIwcHg7
CiAgICAgcGFkZGluZzogMCA1cHg7CkBAIC0xODA0LDEzICsxODA0LDEzIEBAIGxpLmVkaXRpbmcg
LnN3YXRjaCwgbGkuZWRpdGluZyAuZW5hYmxlZC1idXR0b24sICBsaS5lZGl0aW5nLXN1Yi1wYXJ0
IC5kZWxldGUtYnV0CiAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmc7CiB9CiAK
LS5wYW5lID4gLnRpdGxlOmFjdGl2ZSB7CisucGFuZS10aXRsZTphY3RpdmUgewogICAgIGJhY2tn
cm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0
b20sIGZyb20ocmdiKDIzMSwgMjMxLCAyMzEpKSwgY29sb3Itc3RvcCgwLjA1LCByZ2IoMjMxLCAy
MzEsIDIzMSkpLCBjb2xvci1zdG9wKDAuMDUsIHJnYigyMDcsIDIwNywgMjA3KSksIHRvKHJnYigx
ODYsIDE4NiwgMTg2KSkpOwogICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2IoMTc4LCAxNzgs
IDE3OCk7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigxNzgsIDE3OCwgMTc4KTsK
IH0KIAotLnBhbmUgPiAudGl0bGU6OmJlZm9yZSB7CisucGFuZS10aXRsZTo6YmVmb3JlIHsKICAg
ICBjb250ZW50OiB1cmwoSW1hZ2VzL2Rpc2Nsb3N1cmVUcmlhbmdsZVNtYWxsUmlnaHRCbGFjay5w
bmcpOwogICAgIGZsb2F0OiBsZWZ0OwogICAgIHdpZHRoOiAxMXB4OwpAQCAtMTgxOSwxMSArMTgx
OSwxMSBAQCBsaS5lZGl0aW5nIC5zd2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAg
bGkuZWRpdGluZy1zdWItcGFydCAuZGVsZXRlLWJ1dAogICAgIG1hcmdpbi10b3A6IDFweDsKIH0K
IAotLnBhbmUuZXhwYW5kZWQgPiAudGl0bGU6OmJlZm9yZSB7CisucGFuZS10aXRsZS5leHBhbmRl
ZDo6YmVmb3JlIHsKICAgICBjb250ZW50OiB1cmwoSW1hZ2VzL2Rpc2Nsb3N1cmVUcmlhbmdsZVNt
YWxsRG93bkJsYWNrLnBuZyk7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gc2VsZWN0IHsKKy5wYW5l
LXRpdGxlID4gc2VsZWN0IHsKICAgICBmbG9hdDogcmlnaHQ7CiAgICAgd2lkdGg6IDIzcHg7CiAg
ICAgaGVpZ2h0OiAxN3B4OwpAQCAtMTgzNywyNyArMTgzNywyNyBAQCBsaS5lZGl0aW5nIC5zd2F0
Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGkuZWRpdGluZy1zdWItcGFydCAuZGVs
ZXRlLWJ1dAogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKIH0KIAotLnBhbmUgPiAudGl0
bGUgPiBzZWxlY3Q6aG92ZXIgeworLnBhbmUtdGl0bGUgPiBzZWxlY3Q6aG92ZXIgewogICAgIGJh
Y2tncm91bmQtcG9zaXRpb246IC0yM3B4IDBweDsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiBzZWxl
Y3Q6YWN0aXZlIHsKKy5wYW5lLXRpdGxlID4gc2VsZWN0OmFjdGl2ZSB7CiAgICAgYmFja2dyb3Vu
ZC1wb3NpdGlvbjogLTQ2cHggMHB4OwogfQogCi0ucGFuZSA+IC50aXRsZSA+IHNlbGVjdC5zZWxl
Y3Qtc2V0dGluZ3MgeworLnBhbmUtdGl0bGUgPiBzZWxlY3Quc2VsZWN0LXNldHRpbmdzIHsKICAg
ICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL3BhbmVTZXR0aW5nc0J1dHRvbnMucG5nKTsK
IH0KIAotLnBhbmUgPiAudGl0bGUgPiBzZWxlY3Quc2VsZWN0LWZpbHRlciB7CisucGFuZS10aXRs
ZSA+IHNlbGVjdC5zZWxlY3QtZmlsdGVyIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1h
Z2VzL3BhbmVGaWx0ZXJCdXR0b25zLnBuZyk7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gc2VsZWN0
ID4gb3B0aW9uLCAucGFuZSA+IC50aXRsZSA+IHNlbGVjdCA+IGhyIHsKKy5wYW5lLXRpdGxlID4g
c2VsZWN0ID4gb3B0aW9uLCAucGFuZS10aXRsZSA+IHNlbGVjdCA+IGhyIHsKICAgICBjb2xvcjog
YmxhY2s7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uIHsKKy5wYW5l
LXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uIHsKICAgICBmbG9hdDogcmlnaHQ7CiAgICAgd2lk
dGg6IDIzcHg7CiAgICAgaGVpZ2h0OiAxN3B4OwpAQCAtMTg3MSwyMyArMTg3MSwyMyBAQCBsaS5l
ZGl0aW5nIC5zd2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGkuZWRpdGluZy1z
dWItcGFydCAuZGVsZXRlLWJ1dAogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKIH0KIAot
LnBhbmUgPiAudGl0bGUgPiAucGFuZS10aXRsZS1idXR0b246aG92ZXIgeworLnBhbmUtdGl0bGUg
PiAucGFuZS10aXRsZS1idXR0b246aG92ZXIgewogICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0y
M3B4IDBweDsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiAucGFuZS10aXRsZS1idXR0b246YWN0aXZl
LCAucGFuZSA+IC50aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi50b2dnbGVkIHsKKy5wYW5lLXRp
dGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmFjdGl2ZSwgLnBhbmUtdGl0bGUgPiAucGFuZS10aXRs
ZS1idXR0b24udG9nZ2xlZCB7CiAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ2cHggMHB4Owog
fQogCi0ucGFuZSA+IC50aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5hZGQgeworLnBhbmUtdGl0
bGUgPiAucGFuZS10aXRsZS1idXR0b24uYWRkIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
SW1hZ2VzL3BhbmVBZGRCdXR0b25zLnBuZyk7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gLnBhbmUt
dGl0bGUtYnV0dG9uLmVsZW1lbnQtc3RhdGUgeworLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1i
dXR0b24uZWxlbWVudC1zdGF0ZSB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKEltYWdlcy9w
YW5lRWxlbWVudFN0YXRlQnV0dG9ucy5wbmcpOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IC5wYW5l
LXRpdGxlLWJ1dHRvbi5yZWZyZXNoIHsKKy5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9u
LnJlZnJlc2ggewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFnZXMvcGFuZVJlZnJlc2hC
dXR0b25zLnBuZyk7CiB9CiAKQEAgLTE5MTEsNyArMTkxMSw3IEBAIGxpLmVkaXRpbmcgLnN3YXRj
aCwgbGkuZWRpdGluZyAuZW5hYmxlZC1idXR0b24sICBsaS5lZGl0aW5nLXN1Yi1wYXJ0IC5kZWxl
dGUtYnV0CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAxOTQpOwogfQogCi0u
cGFuZS5leHBhbmRlZCA+IC5ib2R5LCAucGFuZS5leHBhbmRlZCA+IC5ncm93YmFyIHsKKy5wYW5l
LnZpc2libGUgPiAuYm9keSB7CiAgICAgZGlzcGxheTogYmxvY2s7CiB9CiAKQEAgLTE5MzEsMTgg
KzE5MzEsMTAgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5lZGl0aW5nIC5lbmFibGVkLWJ1dHRv
biwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQKICAgICBib3JkZXI6IDFweCBzb2xp
ZCByZ2IoNjYlLCA2NiUsIDY2JSk7CiB9CiAKLS5wYW5lLmV4cGFuZGVkOm50aC1sYXN0LW9mLXR5
cGUoMSkgeworLnBhbmUudmlzaWJsZTpudGgtbGFzdC1vZi10eXBlKDEpIHsKICAgICBib3JkZXIt
Ym90dG9tOiAxcHggc29saWQgcmdiKDE4OSwgMTg5LCAxODkpOwogfQogCi0ucGFuZSA+IC5ncm93
YmFyIHsKLSAgICBkaXNwbGF5OiBub25lOwotICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFn
ZXMvcGFuZUdyb3dIYW5kbGVMaW5lLnBuZyksIHVybChJbWFnZXMvcGFuZUJvdHRvbUdyb3cucG5n
KTsKLSAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQteDsKLSAgICBiYWNr
Z3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyLCBib3R0b207Ci0gICAgaGVpZ2h0OiA1cHg7
Ci19Ci0KIC5zaWRlYmFyLXBhbmUtc3VidGl0bGUgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
ICAgICByaWdodDogMDsKQEAgLTE5NzIsNyArMTk2NCw3IEBAIGJvZHkuaW5hY3RpdmUgLnNpZGVi
YXIgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzIsIDIzMiwgMjMyKTsKIH0KIAotLnBh
bmVsLWVuYWJsZXItdmlldyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZSBidXR0
b24sIGJ1dHRvbi5zaG93LWFsbC1ub2RlcyB7CisucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpu
b3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5lLXRpdGxlLWJ1dHRvbiwgYnV0dG9uLnNob3ctYWxs
LW5vZGVzIHsKICAgICBjb2xvcjogcmdiKDYsIDYsIDYpOwogICAgIGJhY2tncm91bmQtY29sb3I6
IHRyYW5zcGFyZW50OwogICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNjUsIDE2NSwgMTY1KTsK
QEAgLTE5ODksMTcgKzE5ODEsMTIgQEAgYnV0dG9uLnNob3ctYWxsLW5vZGVzIHsKICAgICBoZWln
aHQ6IDIwcHg7CiB9CiAKLS5wYW5lIGJ1dHRvbiB7Ci0gICAgbWFyZ2luOiA2cHggMCA2cHggM3B4
OwotICAgIHBhZGRpbmc6IDJweCA5cHg7Ci19Ci0KLS5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9u
OmFjdGl2ZTpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5lIGJ1dHRvbjphY3RpdmUsIGJ1dHRv
bi5zaG93LWFsbC1ub2RlczphY3RpdmUgeworLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246YWN0
aXZlOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmUtdGl0bGUtYnV0dG9uOmFjdGl2ZSwgYnV0
dG9uLnNob3ctYWxsLW5vZGVzOmFjdGl2ZSB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIx
NSwgMjE1LCAyMTUpOwogICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGlu
ZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiKDE5NCwgMTk0LCAxOTQpKSwgdG8o
cmdiKDIzOSwgMjM5LCAyMzkpKSk7CiB9CiAKLWJvZHkuaW5hY3RpdmUgLnBhbmVsLWVuYWJsZXIt
dmlldyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZWwtZW5hYmxlci12aWV3IGJ1
dHRvbjpkaXNhYmxlZDpub3QoLnN0YXR1cy1iYXItaXRlbSksIGJvZHkuaW5hY3RpdmUgLnBhbmUg
YnV0dG9uLCAucGFuZSBidXR0b246ZGlzYWJsZWQsIGJvZHkuaW5hY3RpdmUgYnV0dG9uLnNob3ct
YWxsLW5vZGVzIHsKK2JvZHkuaW5hY3RpdmUgLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246bm90
KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpkaXNhYmxlZDpu
b3QoLnN0YXR1cy1iYXItaXRlbSksIGJvZHkuaW5hY3RpdmUgLnBhbmUtdGl0bGUtYnV0dG9uLCAu
cGFuZS10aXRsZS1idXR0b246ZGlzYWJsZWQsIGJvZHkuaW5hY3RpdmUgYnV0dG9uLnNob3ctYWxs
LW5vZGVzIHsKICAgICBjb2xvcjogcmdiKDEzMCwgMTMwLCAxMzApOwogICAgIGJvcmRlci1jb2xv
cjogcmdiKDIxMiwgMjEyLCAyMTIpOwogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzksIDIz
OSwgMjM5KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA1Nzc2NzJmOGNkZDY1ZWEwOTdlYmUyYmFjM2M4NTE3MzE2YWNjYzU1
Li41ODNhZDE2YWU5YjkzMDdkYmM1ZjYyM2Y2MGQ1M2Y1YzhhZTQxMzFhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTMtMDEtMzEgIFZsYWRpc2xhdiBLYXpuYWNoZWV2ICA8a2F6bmFjaGVldkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ3JlYXRlIGEgY29udGFpbmVy
IGNsYXNzIGZvciBTaWRlYmFyUGFuZSBpbnN0YW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwt
ZnVuY3Rpb25hbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2F1ZGl0cy9hdWRp
dHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL2Vycm9yLWluLXdhdGNoLWV4cHJlc3Npb25zLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wYW5lbC1zd2l0Y2guaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUt
ZXhwYW5zaW9uLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9u
cy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtc2lkZWJhci5odG1sOgor
CiAyMDEzLTAxLTMxICBGbG9yaW4gTWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25h
bC1leHBlY3RlZC50eHQKaW5kZXggNTJmNDdjNmFmMWE5MzQ4ZDg2ZWNiYzE5NmMyMzdiYmM0NGJl
YjQ2Yy4uM2YyY2I2Nzk3NGQwNDQ5ZGI1ZDFhNGQ1NDBlNmFiMTAxNjJiYjY2YSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFu
ZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiBUZXN0cyBhdWRpdCBy
dWxlcy4gICAgIAogUGFnZSByZWxvYWRlZC4KLSAgTmV0d29yayBVdGlsaXphdGlvbgorIE5ldHdv
cmsgVXRpbGl6YXRpb24KICAgICBDb21iaW5lIGV4dGVybmFsIEphdmFTY3JpcHQgKDQpCiAgICAg
IFRoZXJlIGFyZSBtdWx0aXBsZSByZXNvdXJjZXMgc2VydmVkIGZyb20gc2FtZSBkb21haW4uIENv
bnNpZGVyIGNvbWJpbmluZyB0aGVtIGludG8gYXMgZmV3IGZpbGVzIGFzIHBvc3NpYmxlLgogICAg
ICAgNCBKYXZhU2NyaXB0IHJlc291cmNlcyBzZXJ2ZWQgZnJvbSBbZG9tYWluXS4KQEAgLTgsNyAr
OCw3IEBAIFBhZ2UgcmVsb2FkZWQuCiAgICAgIEEgd2lkdGggYW5kIGhlaWdodCBzaG91bGQgYmUg
c3BlY2lmaWVkIGZvciBhbGwgaW1hZ2VzIGluIG9yZGVyIHRvIHNwZWVkIHVwIHBhZ2UgZGlzcGxh
eS4gVGhlIGZvbGxvd2luZyBpbWFnZShzKSBhcmUgbWlzc2luZyBhIHdpZHRoIGFuZC9vciBoZWln
aHQ6CiAgICAgICAgZm9vMS5qcGcKICAgICAgICBmb28yLmpwZwotICBXZWIgUGFnZSBQZXJmb3Jt
YW5jZQorIFdlYiBQYWdlIFBlcmZvcm1hbmNlCiAgICAgT3B0aW1pemUgdGhlIG9yZGVyIG9mIHN0
eWxlcyBhbmQgc2NyaXB0cyAoMikKICAgICAgVGhlIGZvbGxvd2luZyBleHRlcm5hbCBDU1MgZmls
ZXMgd2VyZSBpbmNsdWRlZCBhZnRlciBhbiBleHRlcm5hbCBKYXZhU2NyaXB0IGZpbGUgaW4gdGhl
IGRvY3VtZW50IGhlYWQuIFRvIGVuc3VyZSBDU1MgZmlsZXMgYXJlIGRvd25sb2FkZWQgaW4gcGFy
YWxsZWwsIGFsd2F5cyBpbmNsdWRlIGV4dGVybmFsIENTUyBiZWZvcmUgZXh0ZXJuYWwgSmF2YVNj
cmlwdC4KICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdl
cy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAppbmRleCA5ZGM3YTE1OTAwZWRlYTc3YWM3M2Q2ZDIy
YjI1MTA0ZTU3ZDFhY2E3Li5lZmZjMmEzMmFjMmQ4NDMyMDc3MmI3ZTM5Yzc3MjkzNDI4ZTg2NzMx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1u
b2ltYWdlcy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dApA
QCAtMSwxMCArMSwxMCBAQAogVGVzdHMgYXVkaXQgcnVsZXMgb24gYSBwYWdlIHdpdGhvdXQgaW1h
Z2VzLgogUGFnZSByZWxvYWRlZC4KLSAgTmV0d29yayBVdGlsaXphdGlvbgorIE5ldHdvcmsgVXRp
bGl6YXRpb24KICAgICBDb21iaW5lIGV4dGVybmFsIEphdmFTY3JpcHQgKDQpCiAgICAgIFRoZXJl
IGFyZSBtdWx0aXBsZSByZXNvdXJjZXMgc2VydmVkIGZyb20gc2FtZSBkb21haW4uIENvbnNpZGVy
IGNvbWJpbmluZyB0aGVtIGludG8gYXMgZmV3IGZpbGVzIGFzIHBvc3NpYmxlLgogICAgICAgNCBK
YXZhU2NyaXB0IHJlc291cmNlcyBzZXJ2ZWQgZnJvbSBbZG9tYWluXS4KLSAgV2ViIFBhZ2UgUGVy
Zm9ybWFuY2UKKyBXZWIgUGFnZSBQZXJmb3JtYW5jZQogICAgIE9wdGltaXplIHRoZSBvcmRlciBv
ZiBzdHlsZXMgYW5kIHNjcmlwdHMgKDIpCiAgICAgIFRoZSBmb2xsb3dpbmcgZXh0ZXJuYWwgQ1NT
IGZpbGVzIHdlcmUgaW5jbHVkZWQgYWZ0ZXIgYW4gZXh0ZXJuYWwgSmF2YVNjcmlwdCBmaWxlIGlu
IHRoZSBkb2N1bWVudCBoZWFkLiBUbyBlbnN1cmUgQ1NTIGZpbGVzIGFyZSBkb3dubG9hZGVkIGlu
IHBhcmFsbGVsLCBhbHdheXMgaW5jbHVkZSBleHRlcm5hbCBDU1MgYmVmb3JlIGV4dGVybmFsIEph
dmFTY3JpcHQuCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1leHByZXNzaW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Vycm9yLWluLXdhdGNoLWV4cHJlc3Npb25z
Lmh0bWwKaW5kZXggYTNmMTRmMzU4ZjE1YTdhOTMxMDg0ZmE2OWRmYmYzZmU2MjAwZjQwYy4uZDhm
ZDg2MWI2NjM2ZmNkMWU5MDQwMGY0MjU2NGVjY2E3OGVmODhjOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Vycm9yLWluLXdhdGNoLWV4cHJlc3Npb25zLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Vycm9yLWluLXdhdGNoLWV4cHJl
c3Npb25zLmh0bWwKQEAgLTEwLDcgKzEwLDEwIEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogICAg
IC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRzIHBhbmVsIHNvIHRoYXQgd2F0Y2ggZXhw
cmVzc2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgogICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwo
InNjcmlwdHMiKTsKIAotICAgIHZhciB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IFdlYkluc3Bl
Y3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5zZWN0aW9u
OworICAgIHZhciB3YXRjaEV4cHJlc3Npb25zUGFuZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2Ny
aXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9uczsKKyAgICB3YXRjaEV4cHJlc3Npb25z
UGFuZS5leHBhbmQoKTsKKworICAgIHZhciB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IHdhdGNo
RXhwcmVzc2lvbnNQYW5lLnNlY3Rpb247CiAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0
Y2hFeHByZXNzaW9ucyA9IFtdOwogICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhw
cmVzc2lvbnMucHVzaCgiIyQlIik7CiAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24udXBkYXRl
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGll
cy1zcGVjaWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGll
cy1zcGVjaWFsLmh0bWwKaW5kZXggYmFkMzZlYzQ4MmJhYmZjZTdkZThiMmU5YzM0ODk4N2UxNmFh
YzhlNy4uY2RhODNkYTE3ZmQyNjZkMWZjMDgxM2ViNGM3MTEyNWYwMGRhN2IyNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwu
aHRtbApAQCAtMjMsNyArMjMsMTAgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAgICAgICAgIC8v
IFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRzIHBhbmVsIHNvIHRoYXQgd2F0Y2ggZXhwcmVz
c2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgogICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
KCJzY3JpcHRzIik7CiAKLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24gPSBXZWJJbnNw
ZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnMuc2VjdGlv
bjsKKyAgICAgICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNQYW5lID0gV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zOworICAgICAgICB3YXRjaEV4
cHJlc3Npb25zUGFuZS5leHBhbmQoKTsKKworICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlv
biA9IHdhdGNoRXhwcmVzc2lvbnNQYW5lLnNlY3Rpb247CiAgICAgICAgIHdhdGNoRXhwcmVzc2lv
bnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9u
c1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJPYmplY3QodHJ1ZSkiKTsKICAgICAgICAg
d2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCIoZnVuY3Rpb24o
YSxiKSB7IHJldHVybiBhICsgYjsgfSkiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wYW5lbC1zd2l0Y2guaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wYW5lbC1zd2l0Y2gu
aHRtbAppbmRleCA0NzNjMzQxNTg5Yjc5YTkwN2ZlOWI1MTlhZjViMzA3ODgzNmM5ZmRiLi43ZmQ1
ZmQyZWUwNjEwZTllZmM2NTdlOTczZGQ1ZDE2MGM1ZjgzZGU3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dpdGNoLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25z
LXBhbmVsLXN3aXRjaC5odG1sCkBAIC0yMyw3ICsyMywxMCBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgLy8gV2UgbmVlZCB0byBpbml0aWFsaXplIHNjcmlwdHMgcGFuZWwgc28gdGhh
dCB3YXRjaCBleHByZXNzaW9ucyBzZWN0aW9uIGlzIGNyZWF0ZWQuCiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKIAotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2Vj
dGlvbiA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHBy
ZXNzaW9ucy5zZWN0aW9uOworICAgICAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1BhbmUgPSBXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnM7Cisg
ICAgICAgIHdhdGNoRXhwcmVzc2lvbnNQYW5lLmV4cGFuZCgpOworCisgICAgICAgIHdhdGNoRXhw
cmVzc2lvbnNTZWN0aW9uID0gd2F0Y2hFeHByZXNzaW9uc1BhbmUuc2VjdGlvbjsKICAgICAgICAg
d2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwogICAgICAgICB3
YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIndpbmRvdy5kb2N1
bWVudCIpOwogICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25z
LnB1c2goIndpbmRvd2EuZG9jdW1lbnQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24uaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2
ZS1leHBhbnNpb24uaHRtbAppbmRleCA3NzM1NTY3OTkxYmY4OWE1OGRmMzhiZDJmOGIxMmIxYTlj
YWFmZTA1Li4yMjRiYmNjYzczYjcwNTQxYWQzOWIzNTY1YjMwMGFhNDM0MzNiMjU4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJl
c2VydmUtZXhwYW5zaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4cGFuc2lvbi5odG1sCkBAIC0yNCw3ICsyNCwx
MCBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7
Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5z
Y3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zLnNlY3Rpb247CisgICAgICAgIHZh
ciB3YXRjaEV4cHJlc3Npb25zUGFuZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRl
YmFyUGFuZXMud2F0Y2hFeHByZXNzaW9uczsKKyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1BhbmUu
ZXhwYW5kKCk7CisKKyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24gPSB3YXRjaEV4cHJl
c3Npb25zUGFuZS5zZWN0aW9uOwogICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRj
aEV4cHJlc3Npb25zID0gW107CiAgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNo
RXhwcmVzc2lvbnMucHVzaCgiZ2xvYmFsT2JqZWN0Iik7CiAgICAgICAgIHdhdGNoRXhwcmVzc2lv
bnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgid2luZG93QWxpYXMiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWFw
aS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0CmluZGV4IDg1MjlmODVkNTQ5MTYxNmQ3NzBmNmVh
NGViYmI2MTNkNzBlY2UyYmMuLmY1ZGVlYWZjYzRlY2JjMDUwOGZiYjBjMDY4NGFlOTRjNjA5YjNh
YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dApAQCAtMzYsNiArMzYs
NiBAQCBjYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZCwgcmVzdWx0cyBkdW1wIGZvbGxvd3M6
CiAgICAgfQogICAgIGV4cGFuZGVkIDogZmFsc2UKIH0KLSAgRXh0ZW5zaW9uIGF1ZGl0cworIEV4
dGVuc2lvbiBhdWRpdHMKIEFsbCB0ZXN0cyBkb25lLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWF1ZGl0cy1jb250ZW50LXNjcmlwdC1leHBlY3RlZC50eHQKaW5kZXggMTVhYWQxM2I2YWE0ZGZm
YzgzNjM4MzIxNjAzMGJjMWQwZTdlOWRmMC4uZjg1ODI5ZTgyODM0YTBiOTFkN2Q4YzM3MDQ3Y2Vj
NDU1MmM0MDBmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2Ny
aXB0LWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGVzdHMgYXVkaXQgZm9ybWF0dGVycyBw
ZXJmb3JtaW5nIGV2YWxzIG9uIGNvbnRlbnQgc2NyaXB0cyBpbiBXZWJJbnNwZWN0b3IgRXh0ZW4K
ICBTdGFydGVkIGV4dGVuc2lvbi4KIFJ1bm5pbmcgdGVzdHMuLi4KIFJVTk5JTkcgVEVTVDogZXh0
ZW5zaW9uX3Rlc3RBdWRpdHMKLSAgRXh0ZW5zaW9uIGF1ZGl0cworIEV4dGVuc2lvbiBhdWRpdHMK
ICAgICBSdWxlIHdpdGggZGV0YWlscyBzdWJ0cmVlICgxKQogICAgICAgVGVzdCBGb3JtYXR0ZXJz
CiAgICAgICAgICAgIG1haW4gd29ybGQgb2JqZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1leHBlY3RlZC50
eHQKaW5kZXggZDMzNGVhMzAyMjE3MWQ0NWVlODM3ZGE0Yjc0YzllODk3ODJlYWJjOC4uMTM2MTEz
NDhiYWE0MzAxMzY5YzlhZTFjYzhhMzk0ZGI1MzdhZWFhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWV4
cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgUnVubmluZyB0ZXN0cy4uLgogUlVOTklORyBURVNU
OiBleHRlbnNpb25fdGVzdEF1ZGl0cwogUHJvZ3Jlc3M6IDUwJQogUHJvZ3Jlc3M6IDc1JQotICBF
eHRlbnNpb24gYXVkaXRzCisgRXh0ZW5zaW9uIGF1ZGl0cwogICAgIEZhaWxlZCBydWxlICg0MikK
ICAgICAgdGhpcyBydWxlIGFsd2F5cyBmYWlscwogICAgIFJ1bGUgd2l0aCBkZXRhaWxzIHN1YnRy
ZWUgKDEpCkBAIC00Myw3ICs0Myw3IEBAIFByb2dyZXNzOiA3NSUKICAgICAgICAgIGV4dGVuc2lv
bnMtYXVkaXRzLmh0bWw6MjAKICAgICBQYXNzZWQgcnVsZQogICAgICB0aGlzIHJ1bGUgYWx3YXlz
IHBhc3NlcyBvawotICBFeHRlbnNpb24gYXVkaXRzIHRoYXQgZmFpbAorIEV4dGVuc2lvbiBhdWRp
dHMgdGhhdCBmYWlsCiBjYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZAogZmFpbGVkQ2F0ZWdv
cnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQsIHRocm93aW5nIGV4Y2VwdGlvbgogQWxsIHRlc3RzIGRv
bmUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLXNpZGViYXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtc2lkZWJhci5odG1sCmluZGV4IDJkNTQ5NWQxZDE2NWM3Yzc4YWNkM2JiNjlmZTZlNTg1
ZTFiM2RlMDQuLjAwZTcyNTZkOGQ5YmY1OWM4OTI2ZTFkNjRjY2ZiYTBiYTE2YTVkNzAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtc2lkZWJh
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
c2lkZWJhci5odG1sCkBAIC04LDE0ICs4LDI4IEBAIGZ1bmN0aW9uIGluaXRpYWxpemVfZXh0ZW5z
aW9uc1NpZGViYXJUZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTaWRlYmFyQ29udGVu
dCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIHNpZGViYXJQYW5lcyA9
IFdlYkluc3BlY3Rvci5wYW5lbCgiZWxlbWVudHMiKS5zaWRlYmFyUGFuZXM7Ci0gICAgICAgIC8v
IHRoZSBzaWRlYmFyIG9mIGludGVyZXN0IGlzIHByZXN1bWVkIHRvIGFsd2F5cyBiZSBsYXN0Lgot
ICAgICAgICB2YXIgc2lkZWJhciA9IHNpZGViYXJQYW5lc1tPYmplY3Qua2V5cyhzaWRlYmFyUGFu
ZXMpLnBvcCgpXTsKKyAgICAgICAgdmFyIHNpZGViYXIgPSBJbnNwZWN0b3JUZXN0Ll9leHRlbnNp
b25TaWRlYmFyKCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0
Y2hlcyhmdW5jdGlvbigpIHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJT
aWRlYmFyIGNvbnRlbnQ6ICIgKyBzaWRlYmFyLmJvZHlFbGVtZW50LnRleHRDb250ZW50KTsKICAg
ICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0pOwogICAgIH0KKworICAgIEluc3BlY3Rv
clRlc3QuZXhwYW5kU2lkZWJhciA9IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAg
dmFyIHNpZGViYXIgPSBJbnNwZWN0b3JUZXN0Ll9leHRlbnNpb25TaWRlYmFyKCk7CisgICAgICAg
IEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIHNpZGViYXIuZXhwYW5kKCk7CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0Ll9leHRlbnNpb25TaWRlYmFyID0g
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHNpZGViYXJQYW5lcyA9IFdlYkluc3BlY3Rv
ci5wYW5lbCgiZWxlbWVudHMiKS5zaWRlYmFyUGFuZXM7CisgICAgICAgIC8vIHRoZSBzaWRlYmFy
IG9mIGludGVyZXN0IGlzIHByZXN1bWVkIHRvIGFsd2F5cyBiZSBsYXN0LgorICAgICAgICByZXR1
cm4gc2lkZWJhclBhbmVzW09iamVjdC5rZXlzKHNpZGViYXJQYW5lcykucG9wKCldOworICAgIH0K
IH0KIAogZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0UGFnZShuZXh0VGVzdCkKQEAg
LTMyLDcgKzQ2LDcgQEAgZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0UGFnZShuZXh0
VGVzdCkKICAgICAgICAgc2lkZWJhci5vblNob3duLmFkZExpc3RlbmVyKG9uU2hvd24pOwogICAg
ICAgICB2YXIgYmFzZVBhdGggPSBsb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9cL1teL10qJC8s
ICIvIik7CiAgICAgICAgIHNpZGViYXIuc2V0UGFnZShiYXNlUGF0aCArICJleHRlbnNpb24tc2lk
ZWJhci5odG1sIik7Ci0gICAgICAgIGV4dGVuc2lvbl9zaG93UGFuZWwoImVsZW1lbnRzIik7Cisg
ICAgICAgIGV4dGVuc2lvbl9zaG93UGFuZWwoImVsZW1lbnRzIiwgZXh0ZW5zaW9uX2V4cGFuZFNp
ZGViYXIpOwogICAgIH0KICAgICB3ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLmNyZWF0ZVNp
ZGViYXJQYW5lKCJUZXN0IFNpZGViYXIiLCBvblNpZGViYXJDcmVhdGVkKTsKIH0KQEAgLTQyLDYg
KzU2LDExIEBAIGZ1bmN0aW9uIGV4dGVuc2lvbl9kdW1wU2lkZWJhckNvbnRlbnQobmV4dFRlc3Qp
CiAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LmR1bXBTaWRlYmFyQ29udGVu
dChyZXBseSk7IiwgbmV4dFRlc3QpOwogfQogCitmdW5jdGlvbiBleHRlbnNpb25fZXhwYW5kU2lk
ZWJhcihjYWxsYmFjaykKK3sKKyAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3BlY3RvclRlc3Qu
ZXhwYW5kU2lkZWJhcihyZXBseSk7IiwgY2FsbGJhY2spOworfQorCiBmdW5jdGlvbiBleHRlbnNp
b25fdGVzdFNpZGViYXJTZXRPYmplY3QobmV4dFRlc3QpCiB7CiAgICAgZnVuY3Rpb24gb25TaWRl
YmFyQ3JlYXRlZChzaWRlYmFyKQpAQCAtMTA1LDcgKzEyNCw3IEBAIGZ1bmN0aW9uIGV4dGVuc2lv
bl90ZXN0U2lkZWJhclBhZ2VSZXBsYWNlZFdpdGhPYmplY3QobmV4dFRlc3QpCiAgICAgICAgICBz
aWRlYmFyID0gYVNpZGViYXI7CiAgICAgICAgICBzaWRlYmFyLm9uU2hvd24uYWRkTGlzdGVuZXIo
b25TaG93bik7CiAgICAgICAgICBzaWRlYmFyLnNldFBhZ2UoYmFzZVBhdGggKyAiZXh0ZW5zaW9u
LXNpZGViYXIuaHRtbCIpOwotICAgICAgICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZWxlbWVudHMi
KTsKKyAgICAgICAgIGV4dGVuc2lvbl9zaG93UGFuZWwoImVsZW1lbnRzIiwgZXh0ZW5zaW9uX2V4
cGFuZFNpZGViYXIpOwogICAgICB9CiAgICAgIHZhciBkaWRTZXRPYmplY3QgPSBmYWxzZTsKICAg
ICAgZnVuY3Rpb24gb25TaG93bihmcmFtZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186021</attachid>
            <date>2013-02-01 05:25:48 -0800</date>
            <delta_ts>2013-02-01 07:22:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108183-20130201172230.patch</filename>
            <type>text/plain</type>
            <size>46104</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFjOWI5YzY3OGM2YWYx
OWRiM2EzM2FjZjk3ZTkzNTA4OWIyZTYxMi4uZTA1OTM0NjcwMjU5MjY3NjZjN2IzYmQwNWZkZTBk
MTFjNWUwZTQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEzLTAyLTAxICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENyZWF0ZSBhIGNvbnRhaW5lciBjbGFzcyBmb3IgU2lkZWJhclBhbmUgaW5z
dGFuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDgxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
aWRlYmFyUGFuZVN0YWNrIGlzIHJlc3BvbnNpYmxlIGZvciBwYW5lIHRpdGxlIGJhciBhbmQgZXhw
YW5kL2NvbGxhcHNlIGJlaGF2aW9yIChwcmV2aW91c2x5IGhhbmRsZWQgYnkgU2lkZWJhclBhbmUp
LgorICAgICAgICBTaWRlYmFyUGFuZXMgYXJlIGluc2VydGVkIGludG8gRE9NIGxhemlseSBhbmQg
Y2FuIGJlbG9uZyB0byBtb3JlIHRoYW4gb25lIGNvbnRhaW5lci4KKyAgICAgICAgU2lkZWJhclBh
bmUgaXMgcmVhZHkgdG8gYmUgZGlzcGxheWVkIGluIG90aGVyIHR5cGVzIG9mIGNvbnRhaW5lcnMg
KHN1Y2ggYXMgdGFiYmVkIHBhbmUgYXMgcmVxdWVzdGVkIGluIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1NTIpLgorICAgICAgICBUaGVyZSBzaG91bGQgYmUgbm8g
dmlzaWJsZSBjaGFuZ2VzIGV4Y2VwdCBmb3Igb25lOiBET00gYnJlYWtwb2ludCBwYW5lIGV4cGFu
ZC9jb2xsYXBzZSBzdGF0ZSBpcyBubyBsb25nZXIKKyAgICAgICAgc2hhcmVkIGJldHdlZW4gRWxl
bWVudHMgYW5kIFNvdXJjZXMgc2lkZWJhcnMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UmVzdWx0Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJlc3Vs
dFZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFy
UGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRl
YmFyUGFuZS5wcm90b3R5cGUuX2FkZEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlhIUkJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLmhpZ2hsaWdodEJyZWFrcG9pbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVha3BvaW50c1NpZGViYXJQ
YW5lLnByb3RvdHlwZS5oaWdobGlnaHRCcmVha3BvaW50KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuaGlnaGxpZ2h0QnJlYWtw
b2ludCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS51cGRhdGVTdHlsZXMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZU1ldHJpY3MpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZVByb3BlcnRpZXMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZUV2
ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBh
bmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNpZGViYXJQYW5lKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkNyZWF0ZVNpZGViYXJQ
YW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBh
bmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZS50aXRsZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBlLmV4cGFuZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBlLnNldEV4cGFuZENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUuc2V0U2hv
d0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUu
d2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2spOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJvdG90eXBlLndhc1Nob3duKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZS5hZGRQYW5l
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZS5fYWRk
VGl0bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJvdG90eXBl
Ll9hdHRhY2hUb1BhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2su
cHJvdG90eXBlLl9pc0V4cGFuZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFu
ZVN0YWNrLnByb3RvdHlwZS5fc2V0RXhwYW5kZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNp
ZGViYXJQYW5lU3RhY2sucHJvdG90eXBlLl9vblBhbmVFeHBhbmRlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUuX2NvbGxhcHNlUGFuZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUuX3RvZ2dsZVBhbmUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJvdG90eXBlLl9vblRp
dGxlS2V5RG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFy
UGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5
cGUuX3JlZnJlc2hVcGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQ
YW5lLnByb3RvdHlwZS5fcmVidWlsZFVwZGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5
bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLnNldCBfY3JlYXRlTmV3UnVsZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLnByb3RvdHlwZS5h
ZGRFeHByZXNzaW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25zU2lk
ZWJhclBhbmUucHJvdG90eXBlLl9hZGRCdXR0b25DbGlja2VkKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6CisgICAgICAgICgucGFuZS10aXRsZSArIC5wYW5l
LXRpdGxlLCAucGFuZTpub3QoLnZpc2libGUpICsgLnBhbmUtdGl0bGUsIC5wYW5lLXRpdGxlOmZp
cnN0LW9mLXR5cGUpOgorICAgICAgICAoLnBhbmUtdGl0bGUpOgorICAgICAgICAoLnBhbmUtdGl0
bGU6YWN0aXZlKToKKyAgICAgICAgKC5wYW5lLXRpdGxlOjpiZWZvcmUpOgorICAgICAgICAoLnBh
bmUtdGl0bGUuZXhwYW5kZWQ6OmJlZm9yZSk6CisgICAgICAgICgucGFuZS10aXRsZSA+IHNlbGVj
dCk6CisgICAgICAgICgucGFuZS10aXRsZSA+IHNlbGVjdDpob3Zlcik6CisgICAgICAgICgucGFu
ZS10aXRsZSA+IHNlbGVjdDphY3RpdmUpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiBzZWxlY3Qu
c2VsZWN0LXNldHRpbmdzKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gc2VsZWN0LnNlbGVjdC1m
aWx0ZXIpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiBzZWxlY3QgPiBvcHRpb24sIC5wYW5lLXRp
dGxlID4gc2VsZWN0ID4gaHIpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1i
dXR0b24pOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b246aG92ZXIp
OgorICAgICAgICAoLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b246YWN0aXZlLCAucGFu
ZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi50b2dnbGVkKToKKyAgICAgICAgKC5wYW5lLXRp
dGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uLmFkZCk6CisgICAgICAgICgucGFuZS10aXRsZSA+IC5w
YW5lLXRpdGxlLWJ1dHRvbi5lbGVtZW50LXN0YXRlKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4g
LnBhbmUtdGl0bGUtYnV0dG9uLnJlZnJlc2gpOgorICAgICAgICAoLnBhbmUudmlzaWJsZSA+IC5i
b2R5KToKKyAgICAgICAgKC5wYW5lLnZpc2libGU6bnRoLWxhc3Qtb2YtdHlwZSgxKSk6CisgICAg
ICAgICgucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5w
YW5lLXRpdGxlLWJ1dHRvbiwgYnV0dG9uLnNob3ctYWxsLW5vZGVzKToKKyAgICAgICAgKC5wYW5l
bC1lbmFibGVyLXZpZXcgYnV0dG9uOmFjdGl2ZTpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5l
LXRpdGxlLWJ1dHRvbjphY3RpdmUsIGJ1dHRvbi5zaG93LWFsbC1ub2RlczphY3RpdmUpOgorICAg
ICAgICAoYm9keS5pbmFjdGl2ZSAucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpub3QoLnN0YXR1
cy1iYXItaXRlbSksIC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOmRpc2FibGVkOm5vdCguc3Rh
dHVzLWJhci1pdGVtKSwgYm9keS5pbmFjdGl2ZSAucGFuZS10aXRsZS1idXR0b24sIC5wYW5lLXRp
dGxlLWJ1dHRvbjpkaXNhYmxlZCwgYm9keS5pbmFjdGl2ZSBidXR0b24uc2hvdy1hbGwtbm9kZXMp
OgorCiAyMDEzLTAxLTMxICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtQcm9maWxlc10gc2hvdyBsYXVuY2hlciB2aWV3IHVw
b24gZGVsZXRpbmcgbGFzdCBwcm9maWxlIHR5cGUncyBoZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSZXN1bHRWaWV3LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJlc3VsdFZpZXcuanMKaW5kZXggZjI4
MGVmNjQzMzI5ZjE0YTE2YjVlNDM4ODZiMjk4NDZmZDcxMjE1ZC4uNDRmMzc4YzJhMGYwOTBmYjE5
ZmJhOGEzMjE4MmVkYzMyMWMxZDc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9BdWRpdFJlc3VsdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BdWRpdFJlc3VsdFZpZXcuanMKQEAgLTMwLDI0ICszMCwyNCBAQAog
CiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQor
ICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrfQogICogQHBhcmFtIHsh
QXJyYXkuPCFXZWJJbnNwZWN0b3IuQXVkaXRDYXRlZ29yeVJlc3VsdD59IGNhdGVnb3J5UmVzdWx0
cwogICovCiBXZWJJbnNwZWN0b3IuQXVkaXRSZXN1bHRWaWV3ID0gZnVuY3Rpb24oY2F0ZWdvcnlS
ZXN1bHRzKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7Ci0gICAgdGhpcy5l
bGVtZW50LmNsYXNzTmFtZSA9ICJhdWRpdC1yZXN1bHQtdmlldyI7CisgICAgV2ViSW5zcGVjdG9y
LlNpZGViYXJQYW5lU3RhY2suY2FsbCh0aGlzKTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVD
bGFzcygiYXVkaXQtcmVzdWx0LXZpZXciKTsKIAogICAgIGZ1bmN0aW9uIGNhdGVnb3J5U29ydGVy
KGEsIGIpIHsKICAgICAgICAgcmV0dXJuIChhLnRpdGxlIHx8ICIiKS5sb2NhbGVDb21wYXJlKGIu
dGl0bGUgfHwgIiIpOwogICAgIH0KICAgICBjYXRlZ29yeVJlc3VsdHMuc29ydChjYXRlZ29yeVNv
cnRlcik7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRlZ29yeVJlc3VsdHMubGVuZ3RoOyAr
K2kpCi0gICAgICAgIG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRDYXRlZ29yeVJlc3VsdFBhbmUoY2F0
ZWdvcnlSZXN1bHRzW2ldKS5zaG93KHRoaXMuZWxlbWVudCk7CisgICAgICAgIHRoaXMuYWRkUGFu
ZShuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcnlSZXN1bHRQYW5lKGNhdGVnb3J5UmVzdWx0
c1tpXSkpOwogfQogCiBXZWJJbnNwZWN0b3IuQXVkaXRSZXN1bHRWaWV3LnByb3RvdHlwZSA9IHsK
LSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZQorICAgIF9fcHJvdG9f
XzogV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJvdG90eXBlCiB9CiAKIC8qKgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1Np
ZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3Bv
aW50c1NpZGViYXJQYW5lLmpzCmluZGV4IGYyMGFiNWQ5MzVhYTRmZjYxNjU4ZGQ4MmJiNWEyZWMy
ZDhkZjFjMGIuLmFhNDc3ODNkYWU2MjI0NmQwODQ3ZTM0Nzg0NTUxYzc2YWFmMzllN2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRl
YmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFr
cG9pbnRzU2lkZWJhclBhbmUuanMKQEAgLTEzMCw4ICsxMzAsNyBAQCBXZWJJbnNwZWN0b3IuSmF2
YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICBicmVh
a3BvaW50SXRlbS5jaGVja2JveCA9IGNoZWNrYm94OwogICAgICAgICB0aGlzLl9pdGVtcy5wdXQo
YnJlYWtwb2ludCwgYnJlYWtwb2ludEl0ZW0pOwogCi0gICAgICAgIGlmICghdGhpcy5leHBhbmRl
ZCkKLSAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlOworICAgICAgICB0aGlzLmV4cGFu
ZCgpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTMwNSw3ICszMDQsNyBAQCBXZWJJbnNwZWN0b3Iu
WEhSQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChldmVu
dCkKICAgICAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKIAotICAgICAgICB0aGlzLmV4cGFuZGVk
ID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5leHBhbmQoKTsKIAogICAgICAgICB2YXIgaW5wdXRFbGVt
ZW50Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwogICAgICAgICBpbnB1
dEVsZW1lbnRDb250YWluZXIuY2xhc3NOYW1lID0gImJyZWFrcG9pbnQtY29uZGl0aW9uIjsKQEAg
LTQzOCw3ICs0MzcsNyBAQCBXZWJJbnNwZWN0b3IuWEhSQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy5fYnJlYWtwb2ludEVsZW1l
bnRzW3VybF07CiAgICAgICAgIGlmICghZWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CisgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAgICAg
ICAgIGVsZW1lbnQuYWRkU3R5bGVDbGFzcygiYnJlYWtwb2ludC1oaXQiKTsKICAgICAgICAgdGhp
cy5faGlnaGxpZ2h0ZWRFbGVtZW50ID0gZWxlbWVudDsKICAgICB9LApAQCAtNjM2LDcgKzYzNSw3
IEBAIFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciBicmVha3BvaW50SXRlbSA9IHRoaXMuX2JyZWFrcG9pbnRJ
dGVtc1tldmVudE5hbWVdOwogICAgICAgICBpZiAoIWJyZWFrcG9pbnRJdGVtKQogICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5l
eHBhbmQoKTsKICAgICAgICAgYnJlYWtwb2ludEl0ZW0ucGFyZW50LmVsZW1lbnQuZXhwYW5kKCk7
CiAgICAgICAgIGJyZWFrcG9pbnRJdGVtLmVsZW1lbnQubGlzdEl0ZW1FbGVtZW50LmFkZFN0eWxl
Q2xhc3MoImJyZWFrcG9pbnQtaGl0Iik7CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVkRWxlbWVu
dCA9IGJyZWFrcG9pbnRJdGVtLmVsZW1lbnQubGlzdEl0ZW1FbGVtZW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01CcmVha3BvaW50c1NpZGViYXJQ
YW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01CcmVha3BvaW50
c1NpZGViYXJQYW5lLmpzCmluZGV4IGFkYmI0N2NlZGVlNDBhNTZjY2ZhNzJkYzUyNzU2MDg3ZTg4
Y2QzMjMuLmFkMDVhYTg3Zjk0N2VhZTZiNDBmZjk4NTI3MDc4MTFkYWYxYzg2NDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQnJlYWtwb2ludHNTaWRl
YmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUJy
ZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKQEAgLTI2Miw3ICsyNjIsNyBAQCBXZWJJbnNwZWN0b3Iu
RE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBlbGVt
ZW50ID0gdGhpcy5fYnJlYWtwb2ludEVsZW1lbnRzW2JyZWFrcG9pbnRJZF07CiAgICAgICAgIGlm
ICghZWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5leHBhbmRlZCA9
IHRydWU7CisgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAgICAgICAgIGVsZW1lbnQuYWRkU3R5bGVD
bGFzcygiYnJlYWtwb2ludC1oaXQiKTsKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWRFbGVtZW50
ID0gZWxlbWVudDsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDZkMjcwNjU1NDFhOWNiOWQ3NWMwZDJlMGNj
ZmZmYWQzODE4ZTEwZjIuLmRiNDNmODY3MTRhYmRjZjI1MDc5MWI0MGI4OTgyMTY2YWNkOWVlNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
UGFuZWwuanMKQEAgLTg2LDE5ICs4NiwyMSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbCA9
IGZ1bmN0aW9uKCkKICAgICB0aGlzLnNpZGViYXJQYW5lcy5kb21CcmVha3BvaW50cyA9IFdlYklu
c3BlY3Rvci5kb21CcmVha3BvaW50c1NpZGViYXJQYW5lOwogICAgIHRoaXMuc2lkZWJhclBhbmVz
LmV2ZW50TGlzdGVuZXJzID0gbmV3IFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyc1NpZGViYXJQ
YW5lKCk7CiAKLSAgICB0aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMub25leHBhbmQgPSB0aGlzLnVw
ZGF0ZVN0eWxlcy5iaW5kKHRoaXMpOwotICAgIHRoaXMuc2lkZWJhclBhbmVzLm1ldHJpY3Mub25l
eHBhbmQgPSB0aGlzLnVwZGF0ZU1ldHJpY3MuYmluZCh0aGlzKTsKLSAgICB0aGlzLnNpZGViYXJQ
YW5lcy5wcm9wZXJ0aWVzLm9uZXhwYW5kID0gdGhpcy51cGRhdGVQcm9wZXJ0aWVzLmJpbmQodGhp
cyk7Ci0gICAgdGhpcy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMub25leHBhbmQgPSB0aGlz
LnVwZGF0ZUV2ZW50TGlzdGVuZXJzLmJpbmQodGhpcyk7CisgICAgdGhpcy5zaWRlYmFyUGFuZXMu
c3R5bGVzLnNldFNob3dDYWxsYmFjayh0aGlzLnVwZGF0ZVN0eWxlcy5iaW5kKHRoaXMpKTsKKyAg
ICB0aGlzLnNpZGViYXJQYW5lcy5tZXRyaWNzLnNldFNob3dDYWxsYmFjayh0aGlzLnVwZGF0ZU1l
dHJpY3MuYmluZCh0aGlzKSk7CisgICAgdGhpcy5zaWRlYmFyUGFuZXMucHJvcGVydGllcy5zZXRT
aG93Q2FsbGJhY2sodGhpcy51cGRhdGVQcm9wZXJ0aWVzLmJpbmQodGhpcykpOworICAgIHRoaXMu
c2lkZWJhclBhbmVzLmV2ZW50TGlzdGVuZXJzLnNldFNob3dDYWxsYmFjayh0aGlzLnVwZGF0ZUV2
ZW50TGlzdGVuZXJzLmJpbmQodGhpcykpOwogCi0gICAgdGhpcy5zaWRlYmFyUGFuZXMuc3R5bGVz
LmV4cGFuZGVkID0gdHJ1ZTsKKyAgICB0aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuZXhwYW5kKCk7
CiAKICAgICB0aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuYWRkRXZlbnRMaXN0ZW5lcigic3R5bGUg
ZWRpdGVkIiwgdGhpcy5fc3R5bGVzUGFuZUVkaXRlZCwgdGhpcyk7CiAgICAgdGhpcy5zaWRlYmFy
UGFuZXMuc3R5bGVzLmFkZEV2ZW50TGlzdGVuZXIoInN0eWxlIHByb3BlcnR5IHRvZ2dsZWQiLCB0
aGlzLl9zdHlsZXNQYW5lRWRpdGVkLCB0aGlzKTsKICAgICB0aGlzLnNpZGViYXJQYW5lcy5tZXRy
aWNzLmFkZEV2ZW50TGlzdGVuZXIoIm1ldHJpY3MgZWRpdGVkIiwgdGhpcy5fbWV0cmljc1BhbmVF
ZGl0ZWQsIHRoaXMpOwogCisgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcgPSBuZXcgV2ViSW5zcGVj
dG9yLlNpZGViYXJQYW5lU3RhY2soKTsKICAgICBmb3IgKHZhciBwYW5lIGluIHRoaXMuc2lkZWJh
clBhbmVzKQotICAgICAgICB0aGlzLnNpZGViYXJQYW5lc1twYW5lXS5zaG93KHRoaXMuc2lkZWJh
ckVsZW1lbnQpOworICAgICAgICB0aGlzLnNpZGViYXJQYW5lVmlldy5hZGRQYW5lKHRoaXMuc2lk
ZWJhclBhbmVzW3BhbmVdKTsKKyAgICB0aGlzLnNpZGViYXJQYW5lVmlldy5zaG93KHRoaXMuc2lk
ZWJhckVsZW1lbnQpOwogCiAgICAgdGhpcy5fcG9wb3ZlckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0
b3IuUG9wb3ZlckhlbHBlcih0aGlzLmVsZW1lbnQsIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmlu
ZCh0aGlzKSwgdGhpcy5fc2hvd1BvcG92ZXIuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcG9wb3Zl
ckhlbHBlci5zZXRUaW1lb3V0KDApOwpAQCAtMTQzLDggKzE0NSw2IEBAIFdlYkluc3BlY3Rvci5F
bGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAoIXRoaXMudHJlZU91dGxp
bmUucm9vdERPTU5vZGUpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVxdWVz
dERvY3VtZW50KCk7Ci0KLSAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuZG9tQnJlYWtwb2ludHMu
c2hvdyh0aGlzLnNpZGViYXJFbGVtZW50LCB0aGlzLnNpZGViYXJQYW5lcy5ldmVudExpc3RlbmVy
cy5lbGVtZW50KTsKICAgICB9LAogCiAgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKQEAgLTk3Myw3
ICs5NzMsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ewogICAgICAgICB2YXIgc3R5bGVzU2lkZWJhclBhbmUgPSB0aGlzLnNpZGViYXJQYW5lcy5zdHls
ZXM7CiAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlUGFuZSA9IHRoaXMuc2lkZWJhclBhbmVzLmNv
bXB1dGVkU3R5bGU7Ci0gICAgICAgIGlmICgoIXN0eWxlc1NpZGViYXJQYW5lLmV4cGFuZGVkICYm
ICFjb21wdXRlZFN0eWxlUGFuZS5leHBhbmRlZCkgfHwgIXN0eWxlc1NpZGViYXJQYW5lLm5lZWRz
VXBkYXRlKQorICAgICAgICBpZiAoKCFzdHlsZXNTaWRlYmFyUGFuZS5pc1Nob3dpbmcoKSAmJiAh
Y29tcHV0ZWRTdHlsZVBhbmUuaXNTaG93aW5nKCkpIHx8ICFzdHlsZXNTaWRlYmFyUGFuZS5uZWVk
c1VwZGF0ZSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBzdHlsZXNTaWRlYmFyUGFu
ZS51cGRhdGUodGhpcy5zZWxlY3RlZERPTU5vZGUoKSwgZm9yY2VVcGRhdGUpOwpAQCAtOTgzLDcg
Kzk4Myw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB1
cGRhdGVNZXRyaWNzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgbWV0cmljc1NpZGVi
YXJQYW5lID0gdGhpcy5zaWRlYmFyUGFuZXMubWV0cmljczsKLSAgICAgICAgaWYgKCFtZXRyaWNz
U2lkZWJhclBhbmUuZXhwYW5kZWQgfHwgIW1ldHJpY3NTaWRlYmFyUGFuZS5uZWVkc1VwZGF0ZSkK
KyAgICAgICAgaWYgKCFtZXRyaWNzU2lkZWJhclBhbmUuaXNTaG93aW5nKCkgfHwgIW1ldHJpY3NT
aWRlYmFyUGFuZS5uZWVkc1VwZGF0ZSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBt
ZXRyaWNzU2lkZWJhclBhbmUudXBkYXRlKHRoaXMuc2VsZWN0ZWRET01Ob2RlKCkpOwpAQCAtOTkz
LDcgKzk5Myw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICB1cGRhdGVQcm9wZXJ0aWVzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgcHJvcGVy
dGllc1NpZGViYXJQYW5lID0gdGhpcy5zaWRlYmFyUGFuZXMucHJvcGVydGllczsKLSAgICAgICAg
aWYgKCFwcm9wZXJ0aWVzU2lkZWJhclBhbmUuZXhwYW5kZWQgfHwgIXByb3BlcnRpZXNTaWRlYmFy
UGFuZS5uZWVkc1VwZGF0ZSkKKyAgICAgICAgaWYgKCFwcm9wZXJ0aWVzU2lkZWJhclBhbmUuaXNT
aG93aW5nKCkgfHwgIXByb3BlcnRpZXNTaWRlYmFyUGFuZS5uZWVkc1VwZGF0ZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBwcm9wZXJ0aWVzU2lkZWJhclBhbmUudXBkYXRlKHRoaXMu
c2VsZWN0ZWRET01Ob2RlKCkpOwpAQCAtMTAwMyw3ICsxMDAzLDcgQEAgV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHVwZGF0ZUV2ZW50TGlzdGVuZXJzOiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICB2YXIgZXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZSA9IHRo
aXMuc2lkZWJhclBhbmVzLmV2ZW50TGlzdGVuZXJzOwotICAgICAgICBpZiAoIWV2ZW50TGlzdGVu
ZXJzU2lkZWJhclBhbmUuZXhwYW5kZWQgfHwgIWV2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUubmVl
ZHNVcGRhdGUpCisgICAgICAgIGlmICghZXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5pc1Nob3dp
bmcoKSB8fCAhZXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5uZWVkc1VwZGF0ZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBldmVudExpc3RlbmVyc1NpZGViYXJQYW5lLnVwZGF0ZSh0
aGlzLnNlbGVjdGVkRE9NTm9kZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCmluZGV4IDA0M2JjYzE2MjQ0ZmFhMmE4MTVl
ZjBhMGU1YTMxZmNiYWE5OGEyY2MuLjA5YTRkNmIxOTU3ZDA2YWM1NTk4NzBiYmRjZWI1NmQyNTM4
NmNiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0
ZW5zaW9uUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
eHRlbnNpb25QYW5lbC5qcwpAQCAtMTQwLDYgKzE0MCw3IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNp
b25CdXR0b24ucHJvdG90eXBlID0gewogV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNpZGViYXJQYW5l
ID0gZnVuY3Rpb24odGl0bGUsIGlkKQogewogICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5j
YWxsKHRoaXMsIHRpdGxlKTsKKyAgICB0aGlzLnNldEhpZGVPbkRldGFjaCgpOwogICAgIHRoaXMu
X2lkID0gaWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5kZXggNzY4Yjg2MWE2ZDU2ZTUwNzM2ZDBhYTg2YjZk
YWM0ZjcxZjMzMTkzMi4uYzExNjFiZTI4ZDE2OGQ0NDYxODNmNzUxYTViYzllNDIyMjliOTY0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25T
ZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNp
b25TZXJ2ZXIuanMKQEAgLTIzMSwxMyArMjMxLDEzIEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
ZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3IucGFu
ZWwobWVzc2FnZS5wYW5lbCk7CiAgICAgICAgIGlmICghcGFuZWwpCiAgICAgICAgICAgICByZXR1
cm4gdGhpcy5fc3RhdHVzLkVfTk9URk9VTkQobWVzc2FnZS5wYW5lbCk7Ci0gICAgICAgIGlmICgh
cGFuZWwuc2lkZWJhckVsZW1lbnQgfHwgIXBhbmVsLnNpZGViYXJQYW5lcykKKyAgICAgICAgaWYg
KCFwYW5lbC5zaWRlYmFyUGFuZVZpZXcgfHwgIXBhbmVsLnNpZGViYXJQYW5lcykKICAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9OT1RTVVBQT1JURUQoKTsKICAgICAgICAgdmFyIGlk
ID0gbWVzc2FnZS5pZDsKICAgICAgICAgdmFyIHNpZGViYXIgPSBuZXcgV2ViSW5zcGVjdG9yLkV4
dGVuc2lvblNpZGViYXJQYW5lKG1lc3NhZ2UudGl0bGUsIG1lc3NhZ2UuaWQpOwogICAgICAgICB0
aGlzLl9jbGllbnRPYmplY3RzW2lkXSA9IHNpZGViYXI7CiAgICAgICAgIHBhbmVsLnNpZGViYXJQ
YW5lc1tpZF0gPSBzaWRlYmFyOwotICAgICAgICBzaWRlYmFyLnNob3cocGFuZWwuc2lkZWJhckVs
ZW1lbnQpOworICAgICAgICBwYW5lbC5zaWRlYmFyUGFuZVZpZXcuYWRkUGFuZShzaWRlYmFyKTsK
IAogICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzLk9LKCk7CiAgICAgfSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggYTUz
ZTAwNGZjNDE2MmRhNDMwN2ExOTQxNDllNmYyM2U3ZjI2NGJkYi4uZTNjZmI1MDc3NzA2MTJiOThm
MzYzZWJhYmZlNzVmYmI5YjFjZWFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTEyMiwyMCArMTIyLDE1IEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbih3b3Jrc3BhY2VGb3JUZXN0KQogICAgICAg
ICB0aGlzLnNpZGViYXJQYW5lcy53b3JrZXJMaXN0ID0gbmV3IFdlYkluc3BlY3Rvci5Xb3JrZXJz
U2lkZWJhclBhbmUoV2ViSW5zcGVjdG9yLndvcmtlck1hbmFnZXIpOwogICAgIH0KIAotICAgIHRo
aXMuX2RlYnVnU2lkZWJhckNvbnRlbnRzRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwotICAgIHRoaXMuX2RlYnVnU2lkZWJhckNvbnRlbnRzRWxlbWVudC5pZCA9ICJzY3Jp
cHRzLWRlYnVnLXNpZGViYXItY29udGVudHMiOwotICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fZGVidWdTaWRlYmFyQ29udGVudHNFbGVtZW50KTsKLQotICAgIGZvciAo
dmFyIHBhbmUgaW4gdGhpcy5zaWRlYmFyUGFuZXMpIHsKLSAgICAgICAgaWYgKHRoaXMuc2lkZWJh
clBhbmVzW3BhbmVdID09PSB0aGlzLnNpZGViYXJQYW5lcy5kb21CcmVha3BvaW50cykKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB0aGlzLnNpZGViYXJQYW5lc1twYW5lXS5zaG93KHRo
aXMuX2RlYnVnU2lkZWJhckNvbnRlbnRzRWxlbWVudCk7Ci0gICAgfQotCi0gICAgdGhpcy5zaWRl
YmFyUGFuZXMuY2FsbHN0YWNrLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICB0aGlzLnNpZGViYXJQYW5l
VmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjaygpOworICAgIHRoaXMuc2lk
ZWJhclBhbmVWaWV3LmVsZW1lbnQuaWQgPSAic2NyaXB0cy1kZWJ1Zy1zaWRlYmFyLWNvbnRlbnRz
IjsKKyAgICBmb3IgKHZhciBwYW5lIGluIHRoaXMuc2lkZWJhclBhbmVzKQorICAgICAgICB0aGlz
LnNpZGViYXJQYW5lVmlldy5hZGRQYW5lKHRoaXMuc2lkZWJhclBhbmVzW3BhbmVdKTsKKyAgICB0
aGlzLnNpZGViYXJQYW5lVmlldy5zaG93KHRoaXMuc2lkZWJhckVsZW1lbnQpOwogCi0gICAgdGhp
cy5zaWRlYmFyUGFuZXMuc2NvcGVjaGFpbi5leHBhbmRlZCA9IHRydWU7Ci0gICAgdGhpcy5zaWRl
YmFyUGFuZXMuanNCcmVha3BvaW50cy5leHBhbmRlZCA9IHRydWU7CisgICAgdGhpcy5zaWRlYmFy
UGFuZXMuY2FsbHN0YWNrLmV4cGFuZCgpOworICAgIHRoaXMuc2lkZWJhclBhbmVzLnNjb3BlY2hh
aW4uZXhwYW5kKCk7CisgICAgdGhpcy5zaWRlYmFyUGFuZXMuanNCcmVha3BvaW50cy5leHBhbmQo
KTsKIAogICAgIHRoaXMuc2lkZWJhclBhbmVzLmNhbGxzdGFjay5yZWdpc3RlclNob3J0Y3V0cyh0
aGlzLnJlZ2lzdGVyU2hvcnRjdXRzLmJpbmQodGhpcykpOwogICAgIHRoaXMucmVnaXN0ZXJTaG9y
dGN1dHMoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbERlc2NyaXB0b3IuU2hvcnRjdXRLZXlzLkV2
YWx1YXRlU2VsZWN0aW9uSW5Db25zb2xlLCB0aGlzLl9ldmFsdWF0ZVNlbGVjdGlvbkluQ29uc29s
ZS5iaW5kKHRoaXMpKTsKQEAgLTIxNSw4ICsyMTAsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwotICAg
ICAgICB0aGlzLnNpZGViYXJQYW5lcy5kb21CcmVha3BvaW50cy5zaG93KHRoaXMuX2RlYnVnU2lk
ZWJhckNvbnRlbnRzRWxlbWVudCwgdGhpcy5zaWRlYmFyUGFuZXMueGhyQnJlYWtwb2ludHMuZWxl
bWVudCk7Ci0KICAgICAgICAgdGhpcy5fbmF2aWdhdG9yQ29udHJvbGxlci53YXNTaG93bigpOwog
ICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpZGVi
YXJQYW5lLmpzCmluZGV4IGVkM2RiYTNjNmRlMTAxNDQ0YjViYTVhY2Y1NWI0MDkyZTMxZjM4Y2Mu
LjkxMWYxZGQxMzIzYjJmZjZmODZjMTg4NTJkMWZhNWM0ZWQyNThiNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclBhbmUuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyUGFuZS5qcwpAQCAtMzUsMTAz
ICszNSwxODAgQEAgV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lID0gZnVuY3Rpb24odGl0bGUpCiAg
ICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKICAgICB0aGlzLmVsZW1lbnQuY2xhc3NO
YW1lID0gInBhbmUiOwogCi0gICAgdGhpcy50aXRsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLnRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAidGl0bGUi
OwotICAgIHRoaXMudGl0bGVFbGVtZW50LnRhYkluZGV4ID0gMDsKLSAgICB0aGlzLnRpdGxlRWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMudG9nZ2xlRXhwYW5kZWQuYmluZCh0
aGlzKSwgZmFsc2UpOwotICAgIHRoaXMudGl0bGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtl
eWRvd24iLCB0aGlzLl9vblRpdGxlS2V5RG93bi5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhp
cy50aXRsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAg
dGhpcy5ib2R5RWxlbWVudCA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImJvZHki
KTsKIAotICAgIHRoaXMuYm9keUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKLSAgICB0aGlzLmJvZHlFbGVtZW50LmNsYXNzTmFtZSA9ICJib2R5IjsKKyAgICB0aGlzLl90
aXRsZSA9IHRpdGxlOwogCi0gICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMudGl0bGVF
bGVtZW50KTsKLSAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5ib2R5RWxlbWVudCk7
Ci0KLSAgICB0aGlzLnRpdGxlID0gdGl0bGU7Ci0gICAgdGhpcy5ncm93YmFyVmlzaWJsZSA9IGZh
bHNlOwotICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTsKKyAgICB0aGlzLl9leHBhbmRDYWxsYmFj
ayA9IG51bGw7CisgICAgdGhpcy5fc2hvd0NhbGxiYWNrID0gbnVsbDsKIH0KIAogV2ViSW5zcGVj
dG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKLSAgICBnZXQgdGl0bGUoKQorICAgIHRpdGxl
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGU7CiAgICAgfSwK
IAotICAgIHNldCB0aXRsZSh4KQorICAgIGV4cGFuZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMuX3RpdGxlID09PSB4KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0
aGlzLl90aXRsZSA9IHg7Ci0gICAgICAgIHRoaXMudGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0g
eDsKKyAgICAgICAgaWYgKHRoaXMuX2V4cGFuZENhbGxiYWNrKQorICAgICAgICAgICAgdGhpcy5f
ZXhwYW5kQ2FsbGJhY2soKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fZXhwYW5k
UGVuZGluZyA9IHRydWU7CiAgICAgfSwKIAotICAgIGdldCBncm93YmFyVmlzaWJsZSgpCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sKKyAgICAgKiBAcmV0dXJuIHti
b29sZWFufQorICAgICAqLworICAgIHNldEV4cGFuZENhbGxiYWNrOiBmdW5jdGlvbihjYWxsYmFj
aykKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9ncm93YmFyVmlzaWJsZTsKKyAgICAgICAg
dGhpcy5fZXhwYW5kQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICAgICAgdmFyIHBlbmRpbmcgPSB0
aGlzLl9leHBhbmRQZW5kaW5nOworICAgICAgICBkZWxldGUgdGhpcy5fZXhwYW5kUGVuZGluZzsK
KyAgICAgICAgcmV0dXJuIHBlbmRpbmc7CiAgICAgfSwKIAotICAgIHNldCBncm93YmFyVmlzaWJs
ZSh4KQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrCisgICAgICov
CisgICAgc2V0U2hvd0NhbGxiYWNrOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAgICAg
IGlmICh0aGlzLl9ncm93YmFyVmlzaWJsZSA9PT0geCkKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICB0aGlzLl9ncm93YmFyVmlzaWJsZSA9IHg7Ci0KLSAgICAgICAgaWYgKHggJiYgIXRo
aXMuX2dyb3diYXJFbGVtZW50KSB7Ci0gICAgICAgICAgICB0aGlzLl9ncm93YmFyRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAgdGhpcy5fZ3Jvd2Jh
ckVsZW1lbnQuY2xhc3NOYW1lID0gImdyb3diYXIiOwotICAgICAgICAgICAgdGhpcy5lbGVtZW50
LmFwcGVuZENoaWxkKHRoaXMuX2dyb3diYXJFbGVtZW50KTsKLSAgICAgICAgfSBlbHNlIGlmICgh
eCAmJiB0aGlzLl9ncm93YmFyRWxlbWVudCkgewotICAgICAgICAgICAgaWYgKHRoaXMuX2dyb3di
YXJFbGVtZW50LnBhcmVudE5vZGUpCi0gICAgICAgICAgICAgICAgdGhpcy5fZ3Jvd2JhckVsZW1l
bnQucGFyZW50Tm9kZSh0aGlzLl9ncm93YmFyRWxlbWVudCk7Ci0gICAgICAgICAgICBkZWxldGUg
dGhpcy5fZ3Jvd2JhckVsZW1lbnQ7Ci0gICAgICAgIH0KKyAgICAgICAgdGhpcy5fc2hvd0NhbGxi
YWNrID0gY2FsbGJhY2s7CiAgICAgfSwKIAotICAgIGdldCBleHBhbmRlZCgpCisgICAgd2FzU2hv
d246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9leHBhbmRlZDsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7Cisg
ICAgICAgIGlmICh0aGlzLl9zaG93Q2FsbGJhY2spCisgICAgICAgICAgICB0aGlzLl9zaG93Q2Fs
bGJhY2soKTsKICAgICB9LAogCi0gICAgc2V0IGV4cGFuZGVkKHgpCisgICAgX19wcm90b19fOiBX
ZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUKK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30KKyAqLworV2ViSW5zcGVjdG9yLlNpZGViYXJQ
YW5lU3RhY2sgPSBmdW5jdGlvbigpCit7CisgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlz
KTsKKyAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gInNpZGViYXItcGFuZS1zdGFjayBmaWxs
IjsKKworICAgIHRoaXMuX3RpdGxlcyA9IFtdOworICAgIHRoaXMuX3BhbmVzID0gW107Cit9CisK
K1dlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZSA9IHsKKyAgICB3YXNTaG93
bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHgpCi0gICAgICAgICAgICB0aGlzLmV4
cGFuZCgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3BhbmVzLmxlbmd0aDsgaSsrKQorICAgICAg
ICAgICAgdGhpcy5fYXR0YWNoVG9QYW5lKGkpOwogICAgIH0sCiAKLSAgICBleHBhbmQ6IGZ1bmN0
aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TaWRlYmFyUGFuZX0g
cGFuZQorICAgICAqLworICAgIGFkZFBhbmU6IGZ1bmN0aW9uKHBhbmUpCisgICAgeworICAgICAg
ICB2YXIgaW5kZXggPSB0aGlzLl9wYW5lcy5sZW5ndGg7IAorICAgICAgICB0aGlzLl9wYW5lcy5w
dXNoKHBhbmUpOworICAgICAgICB0aGlzLl9hZGRUaXRsZShwYW5lLCBpbmRleCk7CisgICAgICAg
IGlmICh0aGlzLmlzU2hvd2luZygpKQorICAgICAgICAgICAgdGhpcy5fYXR0YWNoVG9QYW5lKGlu
ZGV4KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2lk
ZWJhclBhbmV9IHBhbmUKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgKKyAgICAgKi8KKyAg
ICBfYWRkVGl0bGU6IGZ1bmN0aW9uKHBhbmUsIGluZGV4KQorICAgIHsKKyAgICAgICAgdmFyIHRp
dGxlID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAicGFuZS10aXRsZSIpOworICAg
ICAgICB0aXRsZS50ZXh0Q29udGVudCA9IHBhbmUudGl0bGUoKTsKKyAgICAgICAgdGl0bGUudGFi
SW5kZXggPSAwOworICAgICAgICB0aXRsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMu
X3RvZ2dsZVBhbmUuYmluZCh0aGlzLCBpbmRleCksIGZhbHNlKTsKKyAgICAgICAgdGl0bGUuYWRk
RXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX29uVGl0bGVLZXlEb3duLmJpbmQodGhpcywg
aW5kZXgpLCBmYWxzZSk7CisgICAgICAgIHRpdGxlLmFwcGVuZENoaWxkKHBhbmUudGl0bGVFbGVt
ZW50KTsKKyAgICAgICAgdGhpcy5fdGl0bGVzLnB1c2godGl0bGUpOworICAgIH0sCisKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgKKyAgICAgKi8KKyAgICBfYXR0YWNoVG9Q
YW5lOiBmdW5jdGlvbihpbmRleCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9leHBhbmRlZCkK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fZXhwYW5kZWQgPSB0cnVlOwotICAg
ICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZXhwYW5kZWQiKTsKLSAgICAgICAgdGhp
cy5vbmV4cGFuZCgpOworICAgICAgICB2YXIgcGFuZSA9IHRoaXMuX3BhbmVzW2luZGV4XTsKKyAg
ICAgICAgdmFyIHRpdGxlID0gdGhpcy5fdGl0bGVzW2luZGV4XTsKKyAgICAgICAgdmFyIGV4cGFu
ZFBlbmRpbmcgPSBwYW5lLnNldEV4cGFuZENhbGxiYWNrKHRoaXMuX29uUGFuZUV4cGFuZGVkLmJp
bmQodGhpcywgaW5kZXgpKTsKKyAgICAgICAgdGhpcy5fc2V0RXhwYW5kZWQoaW5kZXgsIHRoaXMu
X2lzRXhwYW5kZWQoaW5kZXgpIHx8IGV4cGFuZFBlbmRpbmcpOwogICAgIH0sCiAKLSAgICBvbmV4
cGFuZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAor
ICAgICAqLworICAgIF9pc0V4cGFuZGVkOiBmdW5jdGlvbihpbmRleCkKICAgICB7CisgICAgICAg
IHZhciB0aXRsZSA9IHRoaXMuX3RpdGxlc1tpbmRleF07CisgICAgICAgIHJldHVybiB0aXRsZS5o
YXNTdHlsZUNsYXNzKCJleHBhbmRlZCIpOwogICAgIH0sCiAKLSAgICBjb2xsYXBzZTogZnVuY3Rp
b24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAgICAqIEBwYXJh
bSB7Ym9vbGVhbn0gb24KKyAgICAgKi8KKyAgICBfc2V0RXhwYW5kZWQ6IGZ1bmN0aW9uKGluZGV4
LCBvbikKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fZXhwYW5kZWQpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIHRoaXMuX2V4cGFuZGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuZWxl
bWVudC5yZW1vdmVTdHlsZUNsYXNzKCJleHBhbmRlZCIpOworICAgICAgICBpZiAob24pCisgICAg
ICAgICAgICB0aGlzLl9wYW5lc1tpbmRleF0uZXhwYW5kKCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRoaXMuX2NvbGxhcHNlUGFuZShpbmRleCk7CiAgICAgfSwKIAotICAgIHRvZ2dsZUV4
cGFuZGVkOiBmdW5jdGlvbigpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4
CisgICAgICovCisgICAgX29uUGFuZUV4cGFuZGVkOiBmdW5jdGlvbihpbmRleCkKICAgICB7Ci0g
ICAgICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDsKKyAgICAgICAgdmFyIHBhbmUg
PSB0aGlzLl9wYW5lc1tpbmRleF07CisgICAgICAgIHZhciB0aXRsZSA9IHRoaXMuX3RpdGxlc1tp
bmRleF07CisgICAgICAgIHRpdGxlLmFkZFN0eWxlQ2xhc3MoImV4cGFuZGVkIik7CisgICAgICAg
IHBhbmUuc2hvdyh0aGlzLmVsZW1lbnQsIHRpdGxlLm5leHRTaWJsaW5nKTsKICAgICB9LAogCi0g
ICAgX29uVGl0bGVLZXlEb3duOiBmdW5jdGlvbihldmVudCkKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge251bWJlcn0gaW5kZXgKKyAgICAgKi8KKyAgICBfY29sbGFwc2VQYW5lOiBmdW5jdGlvbihp
bmRleCkKKyAgICB7CisgICAgICAgIHZhciBwYW5lID0gdGhpcy5fcGFuZXNbaW5kZXhdOworICAg
ICAgICB2YXIgdGl0bGUgPSB0aGlzLl90aXRsZXNbaW5kZXhdOworICAgICAgICB0aXRsZS5yZW1v
dmVTdHlsZUNsYXNzKCJleHBhbmRlZCIpOworICAgICAgICBpZiAocGFuZS5lbGVtZW50LnBhcmVu
dE5vZGUgPT0gdGhpcy5lbGVtZW50KQorICAgICAgICAgICAgcGFuZS5kZXRhY2goKTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4CisgICAgICogQHByaXZh
dGUKKyAgICAgKi8KKyAgICBfdG9nZ2xlUGFuZTogZnVuY3Rpb24oaW5kZXgpCisgICAgeworICAg
ICAgICB0aGlzLl9zZXRFeHBhbmRlZChpbmRleCwgIXRoaXMuX2lzRXhwYW5kZWQoaW5kZXgpKTsK
KyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAg
ICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50CisgICAgICogQHByaXZhdGUKKyAgICAgKi8KKyAgICBf
b25UaXRsZUtleURvd246IGZ1bmN0aW9uKGluZGV4LCBldmVudCkKICAgICB7CiAgICAgICAgIGlm
IChpc0VudGVyS2V5KGV2ZW50KSB8fCBldmVudC5rZXlDb2RlID09PSBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5LZXlzLlNwYWNlLmNvZGUpCi0gICAgICAgICAgICB0aGlzLnRvZ2dsZUV4
cGFuZGVkKCk7CisgICAgICAgICAgICB0aGlzLl90b2dnbGVQYW5lKGluZGV4KTsKICAgICB9LAog
CiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpz
CmluZGV4IDdiMGQyNGFjNTM1ZmUyZjVmNGE5NDNhOTNlMGM1MDY0Yjk4ZTcyZGYuLjU0YzYwMzI1
N2JiNjUxNmJkNWRiODNiMGJiYzc3NjhmMTM1MjYyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwpAQCAtMjM5
LDcgKzIzOSw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKCk7CiAgICAgICAgIH0KIAotICAgICAgICBp
ZiAodGhpcy5fY29tcHV0ZWRTdHlsZVBhbmUuZXhwYW5kZWQgfHwgZm9yY2VGZXRjaENvbXB1dGVk
U3R5bGUpIHsKKyAgICAgICAgaWYgKHRoaXMuX2NvbXB1dGVkU3R5bGVQYW5lLmlzU2hvd2luZygp
IHx8IGZvcmNlRmV0Y2hDb21wdXRlZFN0eWxlKSB7CiAgICAgICAgICAgICB0aGlzLl9yZWZyZXNo
VXBkYXRlSW5Qcm9ncmVzcyA9IHRydWU7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9k
ZWwuZ2V0Q29tcHV0ZWRTdHlsZUFzeW5jKG5vZGUuaWQsIGNvbXB1dGVkU3R5bGVDYWxsYmFjay5i
aW5kKHRoaXMpKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTMwMiw3ICszMDIsNyBAQCBXZWJJbnNw
ZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmVzdWx0
U3R5bGVzLmNvbXB1dGVkU3R5bGUgPSBjb21wdXRlZFN0eWxlOwogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKHRoaXMuX2NvbXB1dGVkU3R5bGVQYW5lLmV4cGFuZGVkKQorICAgICAgICBpZiAodGhp
cy5fY29tcHV0ZWRTdHlsZVBhbmUuaXNTaG93aW5nKCkpCiAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuY3NzTW9kZWwuZ2V0Q29tcHV0ZWRTdHlsZUFzeW5jKG5vZGUuaWQsIGNvbXB1dGVkQ2FsbGJh
Y2suYmluZCh0aGlzKSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRJbmxpbmVT
dHlsZXNBc3luYyhub2RlLmlkLCBpbmxpbmVDYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICAgICAg
V2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldE1hdGNoZWRTdHlsZXNBc3luYyhub2RlLmlkLCB0cnVl
LCB0cnVlLCBzdHlsZXNDYWxsYmFjay5iaW5kKHRoaXMpKTsKQEAgLTY3MSw3ICs2NzEsNyBAQCBX
ZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgIF9jcmVhdGVO
ZXdSdWxlOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsK
LSAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CisgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAg
ICAgICAgIHRoaXMuYWRkQmxhbmtTZWN0aW9uKCkuc3RhcnRFZGl0aW5nU2VsZWN0b3IoKTsKICAg
ICB9LAogCkBAIC04MDAsNyArODAwLDcgQEAgV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVTaWRl
YmFyUGFuZSA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVTaWRlYmFy
UGFuZS5wcm90b3R5cGUgPSB7CiAKLSAgICAvLyBPdmVycmlkaW5nIGV4cGFuZCgpIHJhdGhlciB0
aGFuIG9uZXhwYW5kKCkgdG8gZWxpbWluYXRlIHRoZSB2aXN1YWwgc2xvd25lc3MgZHVlIHRvIGEg
cG9zc2libGUgYmFja2VuZCB0cmlwLgorICAgIC8vIE92ZXJyaWRpbmcgZXhwYW5kKCkgcmF0aGVy
IHRoYW4gd2FzU2hvd24oKSB0byBlbGltaW5hdGUgdGhlIHZpc3VhbCBzbG93bmVzcyBkdWUgdG8g
YSBwb3NzaWJsZSBiYWNrZW5kIHRyaXAuCiAgICAgZXhwYW5kOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5l
LmpzCmluZGV4IDM0Yjk2OWUyNDdiYmZiODM0YWUzNzczNWNjYjQwMTgxMDNhOWY0YmIuLjI4MDll
Y2VhOTAzZjcwYWQyMmQxMjlmMWZkMGIwYjVhZGVjYmMyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9u
c1NpZGViYXJQYW5lLmpzCkBAIC02Myw3ICs2Myw3IEBAIFdlYkluc3BlY3Rvci5XYXRjaEV4cHJl
c3Npb25zU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZXF1aXJlc1Vw
ZGF0ZSA9IHRydWU7CiAKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5zZXR0aW5ncy53YXRjaEV4
cHJlc3Npb25zLmdldCgpLmxlbmd0aCA+IDApCi0gICAgICAgICAgICB0aGlzLmV4cGFuZGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAgICAgfSwKIAogICAgIHJlc2V0OiBm
dW5jdGlvbigpCkBAIC04MCw3ICs4MCw3IEBAIFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25z
U2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgIGFkZEV4cHJlc3Npb246IGZ1bmN0aW9uKGV4
cHJlc3Npb24pCiAgICAgewogICAgICAgICB0aGlzLnNlY3Rpb24uYWRkRXhwcmVzc2lvbihleHBy
ZXNzaW9uKTsKLSAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CisgICAgICAgIHRoaXMuZXhw
YW5kKCk7CiAgICAgfSwKIAogICAgIF9yZWZyZXNoRXhwcmVzc2lvbnNJZk5lZWRlZDogZnVuY3Rp
b24oKQpAQCAtOTUsNyArOTUsNyBAQCBXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NpZGVi
YXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICBfYWRkQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewogICAgICAgICBldmVudC5jb25zdW1lKCk7Ci0gICAgICAgIHRoaXMuZXhwYW5k
ZWQgPSB0cnVlOworICAgICAgICB0aGlzLmV4cGFuZCgpOwogICAgICAgICB0aGlzLnNlY3Rpb24u
YWRkTmV3RXhwcmVzc2lvbkFuZEVkaXQoKTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggNTdkYjBlYTdhNzFmN2Mw
OWZlMjgwODg0MDBmNTJiOWE2M2U1Yjc1Mi4uZTEzNDQyZjBhMTY0N2Y4Y2M3NDU3ODJiMGZjOTJh
ZTFkNGEzM2NiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmNzcwpAQCAtMTc4NSwxMSArMTc4NSwxMSBAQCBsaS5lZGl0aW5nIC5zd2F0Y2gs
IGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGkuZWRpdGluZy1zdWItcGFydCAuZGVsZXRl
LWJ1dAogICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNjQsIDY0LCA2NCwgMC44KTsKIH0KIAot
LnBhbmU6bm90KC5leHBhbmRlZCkgKyAucGFuZSwgLnBhbmU6Zmlyc3Qtb2YtdHlwZSB7CisucGFu
ZS10aXRsZSArIC5wYW5lLXRpdGxlLCAucGFuZTpub3QoLnZpc2libGUpICsgLnBhbmUtdGl0bGUs
IC5wYW5lLXRpdGxlOmZpcnN0LW9mLXR5cGUgewogICAgIG1hcmdpbi10b3A6IC0xcHg7CiB9CiAK
LS5wYW5lID4gLnRpdGxlIHsKKy5wYW5lLXRpdGxlIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiAt
d2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYigy
NDMsIDI0MywgMjQzKSksIGNvbG9yLXN0b3AoMC4wNSwgcmdiKDI0MywgMjQzLCAyNDMpKSwgY29s
b3Itc3RvcCgwLjA1LCByZ2IoMjMwLCAyMzAsIDIzMCkpLCB0byhyZ2IoMjA5LCAyMDksIDIwOSkp
KTsKICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgcGFkZGluZzogMCA1cHg7CkBAIC0xODA0LDEzICsx
ODA0LDEzIEBAIGxpLmVkaXRpbmcgLnN3YXRjaCwgbGkuZWRpdGluZyAuZW5hYmxlZC1idXR0b24s
ICBsaS5lZGl0aW5nLXN1Yi1wYXJ0IC5kZWxldGUtYnV0CiAgICAgLXdlYmtpdC1iYWNrZ3JvdW5k
LWNsaXA6IHBhZGRpbmc7CiB9CiAKLS5wYW5lID4gLnRpdGxlOmFjdGl2ZSB7CisucGFuZS10aXRs
ZTphY3RpdmUgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFy
LCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiKDIzMSwgMjMxLCAyMzEpKSwgY29sb3It
c3RvcCgwLjA1LCByZ2IoMjMxLCAyMzEsIDIzMSkpLCBjb2xvci1zdG9wKDAuMDUsIHJnYigyMDcs
IDIwNywgMjA3KSksIHRvKHJnYigxODYsIDE4NiwgMTg2KSkpOwogICAgIGJvcmRlci10b3A6IDFw
eCBzb2xpZCByZ2IoMTc4LCAxNzgsIDE3OCk7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlk
IHJnYigxNzgsIDE3OCwgMTc4KTsKIH0KIAotLnBhbmUgPiAudGl0bGU6OmJlZm9yZSB7CisucGFu
ZS10aXRsZTo6YmVmb3JlIHsKICAgICBjb250ZW50OiB1cmwoSW1hZ2VzL2Rpc2Nsb3N1cmVUcmlh
bmdsZVNtYWxsUmlnaHRCbGFjay5wbmcpOwogICAgIGZsb2F0OiBsZWZ0OwogICAgIHdpZHRoOiAx
MXB4OwpAQCAtMTgxOSwxMSArMTgxOSwxMSBAQCBsaS5lZGl0aW5nIC5zd2F0Y2gsIGxpLmVkaXRp
bmcgLmVuYWJsZWQtYnV0dG9uLCAgbGkuZWRpdGluZy1zdWItcGFydCAuZGVsZXRlLWJ1dAogICAg
IG1hcmdpbi10b3A6IDFweDsKIH0KIAotLnBhbmUuZXhwYW5kZWQgPiAudGl0bGU6OmJlZm9yZSB7
CisucGFuZS10aXRsZS5leHBhbmRlZDo6YmVmb3JlIHsKICAgICBjb250ZW50OiB1cmwoSW1hZ2Vz
L2Rpc2Nsb3N1cmVUcmlhbmdsZVNtYWxsRG93bkJsYWNrLnBuZyk7CiB9CiAKLS5wYW5lID4gLnRp
dGxlID4gc2VsZWN0IHsKKy5wYW5lLXRpdGxlID4gc2VsZWN0IHsKICAgICBmbG9hdDogcmlnaHQ7
CiAgICAgd2lkdGg6IDIzcHg7CiAgICAgaGVpZ2h0OiAxN3B4OwpAQCAtMTgzNywyNyArMTgzNywy
NyBAQCBsaS5lZGl0aW5nIC5zd2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGku
ZWRpdGluZy1zdWItcGFydCAuZGVsZXRlLWJ1dAogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9u
ZTsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiBzZWxlY3Q6aG92ZXIgeworLnBhbmUtdGl0bGUgPiBz
ZWxlY3Q6aG92ZXIgewogICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yM3B4IDBweDsKIH0KIAot
LnBhbmUgPiAudGl0bGUgPiBzZWxlY3Q6YWN0aXZlIHsKKy5wYW5lLXRpdGxlID4gc2VsZWN0OmFj
dGl2ZSB7CiAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ2cHggMHB4OwogfQogCi0ucGFuZSA+
IC50aXRsZSA+IHNlbGVjdC5zZWxlY3Qtc2V0dGluZ3MgeworLnBhbmUtdGl0bGUgPiBzZWxlY3Qu
c2VsZWN0LXNldHRpbmdzIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL3BhbmVT
ZXR0aW5nc0J1dHRvbnMucG5nKTsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiBzZWxlY3Quc2VsZWN0
LWZpbHRlciB7CisucGFuZS10aXRsZSA+IHNlbGVjdC5zZWxlY3QtZmlsdGVyIHsKICAgICBiYWNr
Z3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL3BhbmVGaWx0ZXJCdXR0b25zLnBuZyk7CiB9CiAKLS5w
YW5lID4gLnRpdGxlID4gc2VsZWN0ID4gb3B0aW9uLCAucGFuZSA+IC50aXRsZSA+IHNlbGVjdCA+
IGhyIHsKKy5wYW5lLXRpdGxlID4gc2VsZWN0ID4gb3B0aW9uLCAucGFuZS10aXRsZSA+IHNlbGVj
dCA+IGhyIHsKICAgICBjb2xvcjogYmxhY2s7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gLnBhbmUt
dGl0bGUtYnV0dG9uIHsKKy5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uIHsKICAgICBm
bG9hdDogcmlnaHQ7CiAgICAgd2lkdGg6IDIzcHg7CiAgICAgaGVpZ2h0OiAxN3B4OwpAQCAtMTg3
MSwyMyArMTg3MSwyMyBAQCBsaS5lZGl0aW5nIC5zd2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQt
YnV0dG9uLCAgbGkuZWRpdGluZy1zdWItcGFydCAuZGVsZXRlLWJ1dAogICAgIC13ZWJraXQtYXBw
ZWFyYW5jZTogbm9uZTsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiAucGFuZS10aXRsZS1idXR0b246
aG92ZXIgeworLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b246aG92ZXIgewogICAgIGJh
Y2tncm91bmQtcG9zaXRpb246IC0yM3B4IDBweDsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiAucGFu
ZS10aXRsZS1idXR0b246YWN0aXZlLCAucGFuZSA+IC50aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRv
bi50b2dnbGVkIHsKKy5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmFjdGl2ZSwgLnBh
bmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24udG9nZ2xlZCB7CiAgICAgYmFja2dyb3VuZC1w
b3NpdGlvbjogLTQ2cHggMHB4OwogfQogCi0ucGFuZSA+IC50aXRsZSA+IC5wYW5lLXRpdGxlLWJ1
dHRvbi5hZGQgeworLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24uYWRkIHsKICAgICBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL3BhbmVBZGRCdXR0b25zLnBuZyk7CiB9CiAKLS5w
YW5lID4gLnRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uLmVsZW1lbnQtc3RhdGUgeworLnBhbmUt
dGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24uZWxlbWVudC1zdGF0ZSB7CiAgICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKEltYWdlcy9wYW5lRWxlbWVudFN0YXRlQnV0dG9ucy5wbmcpOwogfQogCi0u
cGFuZSA+IC50aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5yZWZyZXNoIHsKKy5wYW5lLXRpdGxl
ID4gLnBhbmUtdGl0bGUtYnV0dG9uLnJlZnJlc2ggewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVy
bChJbWFnZXMvcGFuZVJlZnJlc2hCdXR0b25zLnBuZyk7CiB9CiAKQEAgLTE5MTEsNyArMTkxMSw3
IEBAIGxpLmVkaXRpbmcgLnN3YXRjaCwgbGkuZWRpdGluZyAuZW5hYmxlZC1idXR0b24sICBsaS5l
ZGl0aW5nLXN1Yi1wYXJ0IC5kZWxldGUtYnV0CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1
NSwgMjU1LCAxOTQpOwogfQogCi0ucGFuZS5leHBhbmRlZCA+IC5ib2R5LCAucGFuZS5leHBhbmRl
ZCA+IC5ncm93YmFyIHsKKy5wYW5lLnZpc2libGUgPiAuYm9keSB7CiAgICAgZGlzcGxheTogYmxv
Y2s7CiB9CiAKQEAgLTE5MzEsMTggKzE5MzEsMTAgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5l
ZGl0aW5nIC5lbmFibGVkLWJ1dHRvbiwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQK
ICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoNjYlLCA2NiUsIDY2JSk7CiB9CiAKLS5wYW5lLmV4
cGFuZGVkOm50aC1sYXN0LW9mLXR5cGUoMSkgeworLnBhbmUudmlzaWJsZTpudGgtbGFzdC1vZi10
eXBlKDEpIHsKICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDE4OSwgMTg5LCAxODkp
OwogfQogCi0ucGFuZSA+IC5ncm93YmFyIHsKLSAgICBkaXNwbGF5OiBub25lOwotICAgIGJhY2tn
cm91bmQtaW1hZ2U6IHVybChJbWFnZXMvcGFuZUdyb3dIYW5kbGVMaW5lLnBuZyksIHVybChJbWFn
ZXMvcGFuZUJvdHRvbUdyb3cucG5nKTsKLSAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0
LCByZXBlYXQteDsKLSAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyLCBib3R0
b207Ci0gICAgaGVpZ2h0OiA1cHg7Ci19Ci0KIC5zaWRlYmFyLXBhbmUtc3VidGl0bGUgewogICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICByaWdodDogMDsKQEAgLTE5NzIsNyArMTk2NCw3IEBA
IGJvZHkuaW5hY3RpdmUgLnNpZGViYXIgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzIs
IDIzMiwgMjMyKTsKIH0KIAotLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246bm90KC5zdGF0dXMt
YmFyLWl0ZW0pLCAucGFuZSBidXR0b24sIGJ1dHRvbi5zaG93LWFsbC1ub2RlcyB7CisucGFuZWwt
ZW5hYmxlci12aWV3IGJ1dHRvbjpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5lLXRpdGxlLWJ1
dHRvbiwgYnV0dG9uLnNob3ctYWxsLW5vZGVzIHsKICAgICBjb2xvcjogcmdiKDYsIDYsIDYpOwog
ICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgIGJvcmRlcjogMXB4IHNvbGlk
IHJnYigxNjUsIDE2NSwgMTY1KTsKQEAgLTE5ODksMTcgKzE5ODEsMTIgQEAgYnV0dG9uLnNob3ct
YWxsLW5vZGVzIHsKICAgICBoZWlnaHQ6IDIwcHg7CiB9CiAKLS5wYW5lIGJ1dHRvbiB7Ci0gICAg
bWFyZ2luOiA2cHggMCA2cHggM3B4OwotICAgIHBhZGRpbmc6IDJweCA5cHg7Ci19Ci0KLS5wYW5l
bC1lbmFibGVyLXZpZXcgYnV0dG9uOmFjdGl2ZTpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5l
IGJ1dHRvbjphY3RpdmUsIGJ1dHRvbi5zaG93LWFsbC1ub2RlczphY3RpdmUgeworLnBhbmVsLWVu
YWJsZXItdmlldyBidXR0b246YWN0aXZlOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmUtdGl0
bGUtYnV0dG9uOmFjdGl2ZSwgYnV0dG9uLnNob3ctYWxsLW5vZGVzOmFjdGl2ZSB7CiAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiKDIxNSwgMjE1LCAyMTUpOwogICAgIGJhY2tncm91bmQtaW1hZ2U6
IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdi
KDE5NCwgMTk0LCAxOTQpKSwgdG8ocmdiKDIzOSwgMjM5LCAyMzkpKSk7CiB9CiAKLWJvZHkuaW5h
Y3RpdmUgLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAu
cGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpkaXNhYmxlZDpub3QoLnN0YXR1cy1iYXItaXRlbSks
IGJvZHkuaW5hY3RpdmUgLnBhbmUgYnV0dG9uLCAucGFuZSBidXR0b246ZGlzYWJsZWQsIGJvZHku
aW5hY3RpdmUgYnV0dG9uLnNob3ctYWxsLW5vZGVzIHsKK2JvZHkuaW5hY3RpdmUgLnBhbmVsLWVu
YWJsZXItdmlldyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZWwtZW5hYmxlci12
aWV3IGJ1dHRvbjpkaXNhYmxlZDpub3QoLnN0YXR1cy1iYXItaXRlbSksIGJvZHkuaW5hY3RpdmUg
LnBhbmUtdGl0bGUtYnV0dG9uLCAucGFuZS10aXRsZS1idXR0b246ZGlzYWJsZWQsIGJvZHkuaW5h
Y3RpdmUgYnV0dG9uLnNob3ctYWxsLW5vZGVzIHsKICAgICBjb2xvcjogcmdiKDEzMCwgMTMwLCAx
MzApOwogICAgIGJvcmRlci1jb2xvcjogcmdiKDIxMiwgMjEyLCAyMTIpOwogICAgIGJhY2tncm91
bmQtY29sb3I6IHJnYigyMzksIDIzOSwgMjM5KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1Nzc2NzJmOGNkZDY1ZWEwOTdl
YmUyYmFjM2M4NTE3MzE2YWNjYzU1Li5lMjc5YjMwZTFjNDU2N2JiYzVjNjAyYzlkMGViYzNhOGU0
NWEyMzVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDItMDEgIFZsYWRpc2xhdiBLYXpu
YWNoZWV2ICA8a2F6bmFjaGVldkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQ3JlYXRlIGEgY29udGFpbmVyIGNsYXNzIGZvciBTaWRlYmFyUGFuZSBpbnN0YW5jZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9y
L2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Vycm9yLWluLXdhdGNoLWV4cHJl
c3Npb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3Bl
Y2lhbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9u
cy1wYW5lbC1zd2l0Y2guaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gt
ZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhwYW5zaW9uLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1h
dWRpdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtc2lkZWJhci5odG1sOgorCiAyMDEzLTAxLTMxICBGbG9yaW4gTWFsaXRhICA8Zm1hbGl0
YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRlbmlu
Zy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVs
LWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9h
dWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKaW5kZXggNTJmNDdjNmFmMWE5MzQ4
ZDg2ZWNiYzE5NmMyMzdiYmM0NGJlYjQ2Yy4uM2YyY2I2Nzk3NGQwNDQ5ZGI1ZDFhNGQ1NDBlNmFi
MTAxNjJiYjY2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRp
dHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSw2IEBACiBUZXN0cyBhdWRpdCBydWxlcy4gICAgIAogUGFnZSByZWxvYWRlZC4KLSAgTmV0d29y
ayBVdGlsaXphdGlvbgorIE5ldHdvcmsgVXRpbGl6YXRpb24KICAgICBDb21iaW5lIGV4dGVybmFs
IEphdmFTY3JpcHQgKDQpCiAgICAgIFRoZXJlIGFyZSBtdWx0aXBsZSByZXNvdXJjZXMgc2VydmVk
IGZyb20gc2FtZSBkb21haW4uIENvbnNpZGVyIGNvbWJpbmluZyB0aGVtIGludG8gYXMgZmV3IGZp
bGVzIGFzIHBvc3NpYmxlLgogICAgICAgNCBKYXZhU2NyaXB0IHJlc291cmNlcyBzZXJ2ZWQgZnJv
bSBbZG9tYWluXS4KQEAgLTgsNyArOCw3IEBAIFBhZ2UgcmVsb2FkZWQuCiAgICAgIEEgd2lkdGgg
YW5kIGhlaWdodCBzaG91bGQgYmUgc3BlY2lmaWVkIGZvciBhbGwgaW1hZ2VzIGluIG9yZGVyIHRv
IHNwZWVkIHVwIHBhZ2UgZGlzcGxheS4gVGhlIGZvbGxvd2luZyBpbWFnZShzKSBhcmUgbWlzc2lu
ZyBhIHdpZHRoIGFuZC9vciBoZWlnaHQ6CiAgICAgICAgZm9vMS5qcGcKICAgICAgICBmb28yLmpw
ZwotICBXZWIgUGFnZSBQZXJmb3JtYW5jZQorIFdlYiBQYWdlIFBlcmZvcm1hbmNlCiAgICAgT3B0
aW1pemUgdGhlIG9yZGVyIG9mIHN0eWxlcyBhbmQgc2NyaXB0cyAoMikKICAgICAgVGhlIGZvbGxv
d2luZyBleHRlcm5hbCBDU1MgZmlsZXMgd2VyZSBpbmNsdWRlZCBhZnRlciBhbiBleHRlcm5hbCBK
YXZhU2NyaXB0IGZpbGUgaW4gdGhlIGRvY3VtZW50IGhlYWQuIFRvIGVuc3VyZSBDU1MgZmlsZXMg
YXJlIGRvd25sb2FkZWQgaW4gcGFyYWxsZWwsIGFsd2F5cyBpbmNsdWRlIGV4dGVybmFsIENTUyBi
ZWZvcmUgZXh0ZXJuYWwgSmF2YVNjcmlwdC4KICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFn
ZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRz
L2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAppbmRleCA5ZGM3
YTE1OTAwZWRlYTc3YWM3M2Q2ZDIyYjI1MTA0ZTU3ZDFhY2E3Li5lZmZjMmEzMmFjMmQ4NDMyMDc3
MmI3ZTM5Yzc3MjkzNDI4ZTg2NzMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
YXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5j
dGlvbmFsLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMCBAQAogVGVzdHMgYXVkaXQgcnVsZXMg
b24gYSBwYWdlIHdpdGhvdXQgaW1hZ2VzLgogUGFnZSByZWxvYWRlZC4KLSAgTmV0d29yayBVdGls
aXphdGlvbgorIE5ldHdvcmsgVXRpbGl6YXRpb24KICAgICBDb21iaW5lIGV4dGVybmFsIEphdmFT
Y3JpcHQgKDQpCiAgICAgIFRoZXJlIGFyZSBtdWx0aXBsZSByZXNvdXJjZXMgc2VydmVkIGZyb20g
c2FtZSBkb21haW4uIENvbnNpZGVyIGNvbWJpbmluZyB0aGVtIGludG8gYXMgZmV3IGZpbGVzIGFz
IHBvc3NpYmxlLgogICAgICAgNCBKYXZhU2NyaXB0IHJlc291cmNlcyBzZXJ2ZWQgZnJvbSBbZG9t
YWluXS4KLSAgV2ViIFBhZ2UgUGVyZm9ybWFuY2UKKyBXZWIgUGFnZSBQZXJmb3JtYW5jZQogICAg
IE9wdGltaXplIHRoZSBvcmRlciBvZiBzdHlsZXMgYW5kIHNjcmlwdHMgKDIpCiAgICAgIFRoZSBm
b2xsb3dpbmcgZXh0ZXJuYWwgQ1NTIGZpbGVzIHdlcmUgaW5jbHVkZWQgYWZ0ZXIgYW4gZXh0ZXJu
YWwgSmF2YVNjcmlwdCBmaWxlIGluIHRoZSBkb2N1bWVudCBoZWFkLiBUbyBlbnN1cmUgQ1NTIGZp
bGVzIGFyZSBkb3dubG9hZGVkIGluIHBhcmFsbGVsLCBhbHdheXMgaW5jbHVkZSBleHRlcm5hbCBD
U1MgYmVmb3JlIGV4dGVybmFsIEphdmFTY3JpcHQuCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRj
aC1leHByZXNzaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Vycm9y
LWluLXdhdGNoLWV4cHJlc3Npb25zLmh0bWwKaW5kZXggYTNmMTRmMzU4ZjE1YTdhOTMxMDg0ZmE2
OWRmYmYzZmU2MjAwZjQwYy4uZDhmZDg2MWI2NjM2ZmNkMWU5MDQwMGY0MjU2NGVjY2E3OGVmODhj
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Vycm9yLWluLXdh
dGNoLWV4cHJlc3Npb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2Vycm9yLWluLXdhdGNoLWV4cHJlc3Npb25zLmh0bWwKQEAgLTEwLDcgKzEwLDEwIEBAIHZhciB0
ZXN0ID0gZnVuY3Rpb24oKQogICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRzIHBh
bmVsIHNvIHRoYXQgd2F0Y2ggZXhwcmVzc2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgogICAgIFdl
Ykluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKIAotICAgIHZhciB3YXRjaEV4cHJlc3Np
b25zU2VjdGlvbiA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0
Y2hFeHByZXNzaW9ucy5zZWN0aW9uOworICAgIHZhciB3YXRjaEV4cHJlc3Npb25zUGFuZSA9IFdl
Ykluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9uczsK
KyAgICB3YXRjaEV4cHJlc3Npb25zUGFuZS5leHBhbmQoKTsKKworICAgIHZhciB3YXRjaEV4cHJl
c3Npb25zU2VjdGlvbiA9IHdhdGNoRXhwcmVzc2lvbnNQYW5lLnNlY3Rpb247CiAgICAgd2F0Y2hF
eHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwogICAgIHdhdGNoRXhwcmVz
c2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgiIyQlIik7CiAgICAgd2F0Y2hFeHBy
ZXNzaW9uc1NlY3Rpb24udXBkYXRlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvcHJvcGVydGllcy1zcGVjaWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvcHJvcGVydGllcy1zcGVjaWFsLmh0bWwKaW5kZXggYmFkMzZlYzQ4MmJhYmZj
ZTdkZThiMmU5YzM0ODk4N2UxNmFhYzhlNy4uY2RhODNkYTE3ZmQyNjZkMWZjMDgxM2ViNGM3MTEy
NWYwMGRhN2IyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3By
b3BlcnRpZXMtc3BlY2lhbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbApAQCAtMjMsNyArMjMsMTAgQEAgdmFyIHRlc3QgPSBm
dW5jdGlvbigpCiAgICAgICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRzIHBhbmVs
IHNvIHRoYXQgd2F0Y2ggZXhwcmVzc2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgogICAgICAgICBX
ZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7CiAKLSAgICAgICAgd2F0Y2hFeHByZXNz
aW9uc1NlY3Rpb24gPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLndh
dGNoRXhwcmVzc2lvbnMuc2VjdGlvbjsKKyAgICAgICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNQYW5l
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Np
b25zOworICAgICAgICB3YXRjaEV4cHJlc3Npb25zUGFuZS5leHBhbmQoKTsKKworICAgICAgICB3
YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IHdhdGNoRXhwcmVzc2lvbnNQYW5lLnNlY3Rpb247CiAg
ICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKICAg
ICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJPYmpl
Y3QodHJ1ZSkiKTsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNz
aW9ucy5wdXNoKCIoZnVuY3Rpb24oYSxiKSB7IHJldHVybiBhICsgYjsgfSkiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wYW5l
bC1zd2l0Y2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHBy
ZXNzaW9ucy1wYW5lbC1zd2l0Y2guaHRtbAppbmRleCA0NzNjMzQxNTg5Yjc5YTkwN2ZlOWI1MTlh
ZjViMzA3ODgzNmM5ZmRiLi43ZmQ1ZmQyZWUwNjEwZTllZmM2NTdlOTczZGQ1ZDE2MGM1ZjgzZGU3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVz
c2lvbnMtcGFuZWwtc3dpdGNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3dhdGNoLWV4cHJlc3Npb25zLXBhbmVsLXN3aXRjaC5odG1sCkBAIC0yMyw3ICsyMywxMCBA
QCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgLy8gV2UgbmVlZCB0byBpbml0aWFsaXpl
IHNjcmlwdHMgcGFuZWwgc28gdGhhdCB3YXRjaCBleHByZXNzaW9ucyBzZWN0aW9uIGlzIGNyZWF0
ZWQuCiAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKIAotICAgICAg
ICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5z
aWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5zZWN0aW9uOworICAgICAgICB2YXIgd2F0Y2hF
eHByZXNzaW9uc1BhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVz
LndhdGNoRXhwcmVzc2lvbnM7CisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNQYW5lLmV4cGFuZCgp
OworCisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0gd2F0Y2hFeHByZXNzaW9uc1Bh
bmUuc2VjdGlvbjsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNz
aW9ucyA9IFtdOwogICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Np
b25zLnB1c2goIndpbmRvdy5kb2N1bWVudCIpOwogICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2Vj
dGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIndpbmRvd2EuZG9jdW1lbnQiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVz
ZXJ2ZS1leHBhbnNpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRj
aC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24uaHRtbAppbmRleCA3NzM1NTY3OTkxYmY4
OWE1OGRmMzhiZDJmOGIxMmIxYTljYWFmZTA1Li4yMjRiYmNjYzczYjcwNTQxYWQzOWIzNTY1YjMw
MGFhNDM0MzNiMjU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
d2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhwYW5zaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4cGFuc2lv
bi5odG1sCkBAIC0yNCw3ICsyNCwxMCBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIAogICAgIGZ1
bmN0aW9uIHN0ZXAxKCkKICAgICB7Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0g
V2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25z
LnNlY3Rpb247CisgICAgICAgIHZhciB3YXRjaEV4cHJlc3Npb25zUGFuZSA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9uczsKKyAgICAgICAg
d2F0Y2hFeHByZXNzaW9uc1BhbmUuZXhwYW5kKCk7CisKKyAgICAgICAgd2F0Y2hFeHByZXNzaW9u
c1NlY3Rpb24gPSB3YXRjaEV4cHJlc3Npb25zUGFuZS5zZWN0aW9uOwogICAgICAgICB3YXRjaEV4
cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zID0gW107CiAgICAgICAgIHdhdGNoRXhw
cmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgiZ2xvYmFsT2JqZWN0Iik7CiAg
ICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgid2lu
ZG93QWxpYXMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0CmluZGV4IDg1
MjlmODVkNTQ5MTYxNmQ3NzBmNmVhNGViYmI2MTNkNzBlY2UyYmMuLmY1ZGVlYWZjYzRlY2JjMDUw
OGZiYjBjMDY4NGFlOTRjNjA5YjNhYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVj
dGVkLnR4dApAQCAtMzYsNiArMzYsNiBAQCBjYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZCwg
cmVzdWx0cyBkdW1wIGZvbGxvd3M6CiAgICAgfQogICAgIGV4cGFuZGVkIDogZmFsc2UKIH0KLSAg
RXh0ZW5zaW9uIGF1ZGl0cworIEV4dGVuc2lvbiBhdWRpdHMKIEFsbCB0ZXN0cyBkb25lLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1
ZGl0cy1jb250ZW50LXNjcmlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC1leHBlY3RlZC50eHQK
aW5kZXggMTVhYWQxM2I2YWE0ZGZmYzgzNjM4MzIxNjAzMGJjMWQwZTdlOWRmMC4uZjg1ODI5ZTgy
ODM0YTBiOTFkN2Q4YzM3MDQ3Y2VjNDU1MmM0MDBmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0LWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGVz
dHMgYXVkaXQgZm9ybWF0dGVycyBwZXJmb3JtaW5nIGV2YWxzIG9uIGNvbnRlbnQgc2NyaXB0cyBp
biBXZWJJbnNwZWN0b3IgRXh0ZW4KICBTdGFydGVkIGV4dGVuc2lvbi4KIFJ1bm5pbmcgdGVzdHMu
Li4KIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RBdWRpdHMKLSAgRXh0ZW5zaW9uIGF1ZGl0
cworIEV4dGVuc2lvbiBhdWRpdHMKICAgICBSdWxlIHdpdGggZGV0YWlscyBzdWJ0cmVlICgxKQog
ICAgICAgVGVzdCBGb3JtYXR0ZXJzCiAgICAgICAgICAgIG1haW4gd29ybGQgb2JqZWN0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWF1ZGl0cy1leHBlY3RlZC50eHQKaW5kZXggZDMzNGVhMzAyMjE3MWQ0NWVlODM3ZGE0Yjc0
YzllODk3ODJlYWJjOC4uMTM2MTEzNDhiYWE0MzAxMzY5YzlhZTFjYzhhMzk0ZGI1MzdhZWFhZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1h
dWRpdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgUnVubmluZyB0
ZXN0cy4uLgogUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEF1ZGl0cwogUHJvZ3Jlc3M6IDUw
JQogUHJvZ3Jlc3M6IDc1JQotICBFeHRlbnNpb24gYXVkaXRzCisgRXh0ZW5zaW9uIGF1ZGl0cwog
ICAgIEZhaWxlZCBydWxlICg0MikKICAgICAgdGhpcyBydWxlIGFsd2F5cyBmYWlscwogICAgIFJ1
bGUgd2l0aCBkZXRhaWxzIHN1YnRyZWUgKDEpCkBAIC00Myw3ICs0Myw3IEBAIFByb2dyZXNzOiA3
NSUKICAgICAgICAgIGV4dGVuc2lvbnMtYXVkaXRzLmh0bWw6MjAKICAgICBQYXNzZWQgcnVsZQog
ICAgICB0aGlzIHJ1bGUgYWx3YXlzIHBhc3NlcyBvawotICBFeHRlbnNpb24gYXVkaXRzIHRoYXQg
ZmFpbAorIEV4dGVuc2lvbiBhdWRpdHMgdGhhdCBmYWlsCiBjYXRlZ29yeS5vbkF1ZGl0U3RhcnRl
ZCBmaXJlZAogZmFpbGVkQ2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQsIHRocm93aW5nIGV4
Y2VwdGlvbgogQWxsIHRlc3RzIGRvbmUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXNpZGViYXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtc2lkZWJhci5odG1sCmluZGV4IDJkNTQ5NWQxZDE2
NWM3Yzc4YWNkM2JiNjlmZTZlNTg1ZTFiM2RlMDQuLjAwZTcyNTZkOGQ5YmY1OWM4OTI2ZTFkNjRj
Y2ZiYTBiYTE2YTVkNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNp
b25zL2V4dGVuc2lvbnMtc2lkZWJhci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtc2lkZWJhci5odG1sCkBAIC04LDE0ICs4LDI4IEBAIGZ1bmN0
aW9uIGluaXRpYWxpemVfZXh0ZW5zaW9uc1NpZGViYXJUZXN0KCkKIHsKICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBTaWRlYmFyQ29udGVudCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKLSAgICAg
ICAgdmFyIHNpZGViYXJQYW5lcyA9IFdlYkluc3BlY3Rvci5wYW5lbCgiZWxlbWVudHMiKS5zaWRl
YmFyUGFuZXM7Ci0gICAgICAgIC8vIHRoZSBzaWRlYmFyIG9mIGludGVyZXN0IGlzIHByZXN1bWVk
IHRvIGFsd2F5cyBiZSBsYXN0LgotICAgICAgICB2YXIgc2lkZWJhciA9IHNpZGViYXJQYW5lc1tP
YmplY3Qua2V5cyhzaWRlYmFyUGFuZXMpLnBvcCgpXTsKKyAgICAgICAgdmFyIHNpZGViYXIgPSBJ
bnNwZWN0b3JUZXN0Ll9leHRlbnNpb25TaWRlYmFyKCk7CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
cnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhmdW5jdGlvbigpIHsKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJTaWRlYmFyIGNvbnRlbnQ6ICIgKyBzaWRlYmFyLmJvZHlFbGVt
ZW50LnRleHRDb250ZW50KTsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0pOwog
ICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuZXhwYW5kU2lkZWJhciA9IGZ1bmN0aW9uKGNhbGxi
YWNrKQorICAgIHsKKyAgICAgICAgdmFyIHNpZGViYXIgPSBJbnNwZWN0b3JUZXN0Ll9leHRlbnNp
b25TaWRlYmFyKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0
Y2hlcyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNpZGViYXIuZXhwYW5kKCk7CisgICAgICAg
ICAgICBjYWxsYmFjaygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0
Ll9leHRlbnNpb25TaWRlYmFyID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHNpZGVi
YXJQYW5lcyA9IFdlYkluc3BlY3Rvci5wYW5lbCgiZWxlbWVudHMiKS5zaWRlYmFyUGFuZXM7Cisg
ICAgICAgIC8vIHRoZSBzaWRlYmFyIG9mIGludGVyZXN0IGlzIHByZXN1bWVkIHRvIGFsd2F5cyBi
ZSBsYXN0LgorICAgICAgICByZXR1cm4gc2lkZWJhclBhbmVzW09iamVjdC5rZXlzKHNpZGViYXJQ
YW5lcykucG9wKCldOworICAgIH0KIH0KIAogZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFy
U2V0UGFnZShuZXh0VGVzdCkKQEAgLTMyLDcgKzQ2LDcgQEAgZnVuY3Rpb24gZXh0ZW5zaW9uX3Rl
c3RTaWRlYmFyU2V0UGFnZShuZXh0VGVzdCkKICAgICAgICAgc2lkZWJhci5vblNob3duLmFkZExp
c3RlbmVyKG9uU2hvd24pOwogICAgICAgICB2YXIgYmFzZVBhdGggPSBsb2NhdGlvbi5wYXRobmFt
ZS5yZXBsYWNlKC9cL1teL10qJC8sICIvIik7CiAgICAgICAgIHNpZGViYXIuc2V0UGFnZShiYXNl
UGF0aCArICJleHRlbnNpb24tc2lkZWJhci5odG1sIik7Ci0gICAgICAgIGV4dGVuc2lvbl9zaG93
UGFuZWwoImVsZW1lbnRzIik7CisgICAgICAgIGV4dGVuc2lvbl9zaG93UGFuZWwoImVsZW1lbnRz
IiwgZXh0ZW5zaW9uX2V4cGFuZFNpZGViYXIpOwogICAgIH0KICAgICB3ZWJJbnNwZWN0b3IucGFu
ZWxzLmVsZW1lbnRzLmNyZWF0ZVNpZGViYXJQYW5lKCJUZXN0IFNpZGViYXIiLCBvblNpZGViYXJD
cmVhdGVkKTsKIH0KQEAgLTQyLDYgKzU2LDExIEBAIGZ1bmN0aW9uIGV4dGVuc2lvbl9kdW1wU2lk
ZWJhckNvbnRlbnQobmV4dFRlc3QpCiAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JU
ZXN0LmR1bXBTaWRlYmFyQ29udGVudChyZXBseSk7IiwgbmV4dFRlc3QpOwogfQogCitmdW5jdGlv
biBleHRlbnNpb25fZXhwYW5kU2lkZWJhcihjYWxsYmFjaykKK3sKKyAgICBldmFsdWF0ZU9uRnJv
bnRlbmQoIkluc3BlY3RvclRlc3QuZXhwYW5kU2lkZWJhcihyZXBseSk7IiwgY2FsbGJhY2spOwor
fQorCiBmdW5jdGlvbiBleHRlbnNpb25fdGVzdFNpZGViYXJTZXRPYmplY3QobmV4dFRlc3QpCiB7
CiAgICAgZnVuY3Rpb24gb25TaWRlYmFyQ3JlYXRlZChzaWRlYmFyKQpAQCAtMTA1LDcgKzEyNCw3
IEBAIGZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0U2lkZWJhclBhZ2VSZXBsYWNlZFdpdGhPYmplY3Qo
bmV4dFRlc3QpCiAgICAgICAgICBzaWRlYmFyID0gYVNpZGViYXI7CiAgICAgICAgICBzaWRlYmFy
Lm9uU2hvd24uYWRkTGlzdGVuZXIob25TaG93bik7CiAgICAgICAgICBzaWRlYmFyLnNldFBhZ2Uo
YmFzZVBhdGggKyAiZXh0ZW5zaW9uLXNpZGViYXIuaHRtbCIpOwotICAgICAgICAgZXh0ZW5zaW9u
X3Nob3dQYW5lbCgiZWxlbWVudHMiKTsKKyAgICAgICAgIGV4dGVuc2lvbl9zaG93UGFuZWwoImVs
ZW1lbnRzIiwgZXh0ZW5zaW9uX2V4cGFuZFNpZGViYXIpOwogICAgICB9CiAgICAgIHZhciBkaWRT
ZXRPYmplY3QgPSBmYWxzZTsKICAgICAgZnVuY3Rpb24gb25TaG93bihmcmFtZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186041</attachid>
            <date>2013-02-01 07:22:20 -0800</date>
            <delta_ts>2013-02-01 08:07:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108183-20130201191902.patch</filename>
            <type>text/plain</type>
            <size>46663</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFjOWI5YzY3OGM2YWYx
OWRiM2EzM2FjZjk3ZTkzNTA4OWIyZTYxMi4uMTM4MTZjMjgxOTc2YTlhZTkyYjUzNTgyYmMwMWI3
MmQ2NjYyNTRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEzLTAyLTAxICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENyZWF0ZSBhIGNvbnRhaW5lciBjbGFzcyBmb3IgU2lkZWJhclBhbmUgaW5z
dGFuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDgxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
aWRlYmFyUGFuZVN0YWNrIGlzIHJlc3BvbnNpYmxlIGZvciBwYW5lIHRpdGxlIGJhciBhbmQgZXhw
YW5kL2NvbGxhcHNlIGJlaGF2aW9yIChwcmV2aW91c2x5IGhhbmRsZWQgYnkgU2lkZWJhclBhbmUp
LgorICAgICAgICBTaWRlYmFyUGFuZXMgYXJlIGluc2VydGVkIGludG8gRE9NIGxhemlseSBhbmQg
Y2FuIGJlbG9uZyB0byBtb3JlIHRoYW4gb25lIGNvbnRhaW5lci4KKyAgICAgICAgU2lkZWJhclBh
bmUgaXMgcmVhZHkgdG8gYmUgZGlzcGxheWVkIGluIG90aGVyIHR5cGVzIG9mIGNvbnRhaW5lcnMg
KHN1Y2ggYXMgdGFiYmVkIHBhbmUgYXMgcmVxdWVzdGVkIGluIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1NTIpLgorICAgICAgICBUaGVyZSBzaG91bGQgYmUgbm8g
dmlzaWJsZSBjaGFuZ2VzIGV4Y2VwdCBmb3Igb25lOiBET00gYnJlYWtwb2ludCBwYW5lIGV4cGFu
ZC9jb2xsYXBzZSBzdGF0ZSBpcyBubyBsb25nZXIKKyAgICAgICAgc2hhcmVkIGJldHdlZW4gRWxl
bWVudHMgYW5kIFNvdXJjZXMgc2lkZWJhcnMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UmVzdWx0Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJlc3Vs
dFZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFy
UGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRl
YmFyUGFuZS5wcm90b3R5cGUuX2FkZEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlhIUkJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLmhpZ2hsaWdodEJyZWFrcG9pbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVha3BvaW50c1NpZGViYXJQ
YW5lLnByb3RvdHlwZS5oaWdobGlnaHRCcmVha3BvaW50KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuaGlnaGxpZ2h0QnJlYWtw
b2ludCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS51cGRhdGVTdHlsZXMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZU1ldHJpY3MpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZVByb3BlcnRpZXMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZUV2
ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBh
bmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNpZGViYXJQYW5lKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkNyZWF0ZVNpZGViYXJQ
YW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBh
bmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZS50aXRsZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBlLnByZXBhcmVDb250
ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUuZXhwYW5k
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUuc2V0RXhwYW5k
Q2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZS5z
ZXRTaG93Q2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3Rv
dHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjayk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUud2FzU2hv
d24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJvdG90eXBlLmFk
ZFBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJvdG90eXBl
Ll9hZGRUaXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90
b3R5cGUuX2F0dGFjaFRvUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVT
dGFjay5wcm90b3R5cGUuX2lzRXhwYW5kZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGVi
YXJQYW5lU3RhY2sucHJvdG90eXBlLl9zZXRFeHBhbmRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUuX29uUGFuZUV4cGFuZGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZS5fY29sbGFwc2VQYW5lKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZS5fdG9nZ2xl
UGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUu
X29uVGl0bGVLZXlEb3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1Np
ZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnBy
b3RvdHlwZS5fcmVmcmVzaFVwZGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lk
ZWJhclBhbmUucHJvdG90eXBlLl9yZWJ1aWxkVXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuc2V0IF9jcmVhdGVOZXdSdWxlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlU2lkZWJhclBhbmUucHJvdG90eXBlLnByZXBh
cmVDb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lv
bnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25z
U2lkZWJhclBhbmUucHJvdG90eXBlLmFkZEV4cHJlc3Npb24pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2FkZEJ1dHRvbkNsaWNr
ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzczoKKyAgICAg
ICAgKC5wYW5lLXRpdGxlICsgLnBhbmUtdGl0bGUsIC5wYW5lOm5vdCgudmlzaWJsZSkgKyAucGFu
ZS10aXRsZSwgLnBhbmUtdGl0bGU6Zmlyc3Qtb2YtdHlwZSk6CisgICAgICAgICgucGFuZS10aXRs
ZSk6CisgICAgICAgICgucGFuZS10aXRsZTphY3RpdmUpOgorICAgICAgICAoLnBhbmUtdGl0bGU6
OmJlZm9yZSk6CisgICAgICAgICgucGFuZS10aXRsZS5leHBhbmRlZDo6YmVmb3JlKToKKyAgICAg
ICAgKC5wYW5lLXRpdGxlID4gc2VsZWN0KToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gc2VsZWN0
OmhvdmVyKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gc2VsZWN0OmFjdGl2ZSk6CisgICAgICAg
ICgucGFuZS10aXRsZSA+IHNlbGVjdC5zZWxlY3Qtc2V0dGluZ3MpOgorICAgICAgICAoLnBhbmUt
dGl0bGUgPiBzZWxlY3Quc2VsZWN0LWZpbHRlcik6CisgICAgICAgICgucGFuZS10aXRsZSA+IHNl
bGVjdCA+IG9wdGlvbiwgLnBhbmUtdGl0bGUgPiBzZWxlY3QgPiBocik6CisgICAgICAgICgucGFu
ZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbik6CisgICAgICAgICgucGFuZS10aXRsZSA+IC5w
YW5lLXRpdGxlLWJ1dHRvbjpob3Zlcik6CisgICAgICAgICgucGFuZS10aXRsZSA+IC5wYW5lLXRp
dGxlLWJ1dHRvbjphY3RpdmUsIC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uLnRvZ2ds
ZWQpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24uYWRkKToKKyAg
ICAgICAgKC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uLmVsZW1lbnQtc3RhdGUpOgor
ICAgICAgICAoLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24ucmVmcmVzaCk6CisgICAg
ICAgICgucGFuZS52aXNpYmxlID4gLmJvZHkpOgorICAgICAgICAoLnBhbmUudmlzaWJsZTpudGgt
bGFzdC1vZi10eXBlKDEpKToKKyAgICAgICAgKC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOm5v
dCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmUtdGl0bGUtYnV0dG9uLCBidXR0b24uc2hvdy1hbGwt
bm9kZXMpOgorICAgICAgICAoLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246YWN0aXZlOm5vdCgu
c3RhdHVzLWJhci1pdGVtKSwgLnBhbmUtdGl0bGUtYnV0dG9uOmFjdGl2ZSwgYnV0dG9uLnNob3ct
YWxsLW5vZGVzOmFjdGl2ZSk6CisgICAgICAgIChib2R5LmluYWN0aXZlIC5wYW5lbC1lbmFibGVy
LXZpZXcgYnV0dG9uOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmVsLWVuYWJsZXItdmlldyBi
dXR0b246ZGlzYWJsZWQ6bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCBib2R5LmluYWN0aXZlIC5wYW5l
LXRpdGxlLWJ1dHRvbiwgLnBhbmUtdGl0bGUtYnV0dG9uOmRpc2FibGVkLCBib2R5LmluYWN0aXZl
IGJ1dHRvbi5zaG93LWFsbC1ub2Rlcyk6CisKIDIwMTMtMDEtMzEgIEFuZHJleSBBZGFpa2luICA8
YWFuZHJleUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1Byb2ZpbGVz
XSBzaG93IGxhdW5jaGVyIHZpZXcgdXBvbiBkZWxldGluZyBsYXN0IHByb2ZpbGUgdHlwZSdzIGhl
YWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRp
dFJlc3VsdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0
UmVzdWx0Vmlldy5qcwppbmRleCBmMjgwZWY2NDMzMjlmMTRhMTZiNWU0Mzg4NmIyOTg0NmZkNzEy
MTVkLi40NGYzNzhjMmEwZjA5MGZiMTlmYmE4YTMyMTgyZWRjMzIxYzFkNzk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UmVzdWx0Vmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UmVzdWx0Vmlldy5q
cwpAQCAtMzAsMjQgKzMwLDI0IEBACiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5k
cyB7V2ViSW5zcGVjdG9yLlZpZXd9CisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNpZGViYXJQ
YW5lU3RhY2t9CiAgKiBAcGFyYW0geyFBcnJheS48IVdlYkluc3BlY3Rvci5BdWRpdENhdGVnb3J5
UmVzdWx0Pn0gY2F0ZWdvcnlSZXN1bHRzCiAgKi8KIFdlYkluc3BlY3Rvci5BdWRpdFJlc3VsdFZp
ZXcgPSBmdW5jdGlvbihjYXRlZ29yeVJlc3VsdHMpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlZpZXcu
Y2FsbCh0aGlzKTsKLSAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gImF1ZGl0LXJlc3VsdC12
aWV3IjsKKyAgICBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5jYWxsKHRoaXMpOworICAg
IHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJhdWRpdC1yZXN1bHQtdmlldyIpOwogCiAgICAg
ZnVuY3Rpb24gY2F0ZWdvcnlTb3J0ZXIoYSwgYikgewogICAgICAgICByZXR1cm4gKGEudGl0bGUg
fHwgIiIpLmxvY2FsZUNvbXBhcmUoYi50aXRsZSB8fCAiIik7CiAgICAgfQogICAgIGNhdGVnb3J5
UmVzdWx0cy5zb3J0KGNhdGVnb3J5U29ydGVyKTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNh
dGVnb3J5UmVzdWx0cy5sZW5ndGg7ICsraSkKLSAgICAgICAgbmV3IFdlYkluc3BlY3Rvci5BdWRp
dENhdGVnb3J5UmVzdWx0UGFuZShjYXRlZ29yeVJlc3VsdHNbaV0pLnNob3codGhpcy5lbGVtZW50
KTsKKyAgICAgICAgdGhpcy5hZGRQYW5lKG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRDYXRlZ29yeVJl
c3VsdFBhbmUoY2F0ZWdvcnlSZXN1bHRzW2ldKSk7CiB9CiAKIFdlYkluc3BlY3Rvci5BdWRpdFJl
c3VsdFZpZXcucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlZpZXcu
cHJvdG90eXBlCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5w
cm90b3R5cGUKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKaW5kZXggZjIwYWI1ZDkz
NWFhNGZmNjE2NThkZDgyYmI1YTJlYzJkOGRmMWMwYi4uYWE0Nzc4M2RhZTYyMjQ2ZDA4NDdlMzQ3
ODQ1NTFjNzZhYWYzOWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwpAQCAtMTMwLDggKzEz
MCw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGJyZWFrcG9pbnRJdGVtLmNoZWNrYm94ID0gY2hlY2tib3g7CiAg
ICAgICAgIHRoaXMuX2l0ZW1zLnB1dChicmVha3BvaW50LCBicmVha3BvaW50SXRlbSk7CiAKLSAg
ICAgICAgaWYgKCF0aGlzLmV4cGFuZGVkKQotICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRy
dWU7CisgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzA1LDcg
KzMwNCw3IEBAIFdlYkluc3BlY3Rvci5YSFJCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgaWYgKGV2ZW50KQogICAgICAgICAgICAgZXZlbnQuY29uc3VtZSgpOwog
Ci0gICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlOworICAgICAgICB0aGlzLmV4cGFuZCgpOwog
CiAgICAgICAgIHZhciBpbnB1dEVsZW1lbnRDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJwIik7CiAgICAgICAgIGlucHV0RWxlbWVudENvbnRhaW5lci5jbGFzc05hbWUgPSAiYnJl
YWtwb2ludC1jb25kaXRpb24iOwpAQCAtNDM4LDcgKzQzNyw3IEBAIFdlYkluc3BlY3Rvci5YSFJC
cmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGVsZW1lbnQg
PSB0aGlzLl9icmVha3BvaW50RWxlbWVudHNbdXJsXTsKICAgICAgICAgaWYgKCFlbGVtZW50KQog
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICAg
ICAgdGhpcy5leHBhbmQoKTsKICAgICAgICAgZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJicmVha3Bv
aW50LWhpdCIpOwogICAgICAgICB0aGlzLl9oaWdobGlnaHRlZEVsZW1lbnQgPSBlbGVtZW50Owog
ICAgIH0sCkBAIC02MzYsNyArNjM1LDcgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVh
a3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGJyZWFrcG9pbnRJ
dGVtID0gdGhpcy5fYnJlYWtwb2ludEl0ZW1zW2V2ZW50TmFtZV07CiAgICAgICAgIGlmICghYnJl
YWtwb2ludEl0ZW0pCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuZXhwYW5kZWQg
PSB0cnVlOworICAgICAgICB0aGlzLmV4cGFuZCgpOwogICAgICAgICBicmVha3BvaW50SXRlbS5w
YXJlbnQuZWxlbWVudC5leHBhbmQoKTsKICAgICAgICAgYnJlYWtwb2ludEl0ZW0uZWxlbWVudC5s
aXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiYnJlYWtwb2ludC1oaXQiKTsKICAgICAgICAg
dGhpcy5faGlnaGxpZ2h0ZWRFbGVtZW50ID0gYnJlYWtwb2ludEl0ZW0uZWxlbWVudC5saXN0SXRl
bUVsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKaW5kZXggYWRiYjQ3Y2VkZWU0
MGE1NmNjZmE3MmRjNTI3NTYwODdlODhjZDMyMy4uYWQwNWFhODdmOTQ3ZWFlNmI0MGZmOTg1Mjcw
NzgxMWRhZjFjODY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9ET01CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwpAQCAtMjYyLDcg
KzI2Miw3IEBAIFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLl9icmVha3BvaW50RWxlbWVudHNbYnJl
YWtwb2ludElkXTsKICAgICAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5leHBhbmQoKTsKICAg
ICAgICAgZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJicmVha3BvaW50LWhpdCIpOwogICAgICAgICB0
aGlzLl9oaWdobGlnaHRlZEVsZW1lbnQgPSBlbGVtZW50OwogICAgIH0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggNmQy
NzA2NTU0MWE5Y2I5ZDc1YzBkMmUwY2NmZmZhZDM4MThlMTBmMi4uZGI0M2Y4NjcxNGFiZGNmMjUw
NzkxYjQwYjg5ODIxNjZhY2Q5ZWU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtODYsMTkgKzg2LDIxIEBAIFdlYklu
c3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuc2lkZWJhclBhbmVz
LmRvbUJyZWFrcG9pbnRzID0gV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRzU2lkZWJhclBhbmU7
CiAgICAgdGhpcy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMgPSBuZXcgV2ViSW5zcGVjdG9y
LkV2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUoKTsKIAotICAgIHRoaXMuc2lkZWJhclBhbmVzLnN0
eWxlcy5vbmV4cGFuZCA9IHRoaXMudXBkYXRlU3R5bGVzLmJpbmQodGhpcyk7Ci0gICAgdGhpcy5z
aWRlYmFyUGFuZXMubWV0cmljcy5vbmV4cGFuZCA9IHRoaXMudXBkYXRlTWV0cmljcy5iaW5kKHRo
aXMpOwotICAgIHRoaXMuc2lkZWJhclBhbmVzLnByb3BlcnRpZXMub25leHBhbmQgPSB0aGlzLnVw
ZGF0ZVByb3BlcnRpZXMuYmluZCh0aGlzKTsKLSAgICB0aGlzLnNpZGViYXJQYW5lcy5ldmVudExp
c3RlbmVycy5vbmV4cGFuZCA9IHRoaXMudXBkYXRlRXZlbnRMaXN0ZW5lcnMuYmluZCh0aGlzKTsK
KyAgICB0aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2V0U2hvd0NhbGxiYWNrKHRoaXMudXBkYXRl
U3R5bGVzLmJpbmQodGhpcykpOworICAgIHRoaXMuc2lkZWJhclBhbmVzLm1ldHJpY3Muc2V0U2hv
d0NhbGxiYWNrKHRoaXMudXBkYXRlTWV0cmljcy5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLnNpZGVi
YXJQYW5lcy5wcm9wZXJ0aWVzLnNldFNob3dDYWxsYmFjayh0aGlzLnVwZGF0ZVByb3BlcnRpZXMu
YmluZCh0aGlzKSk7CisgICAgdGhpcy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMuc2V0U2hv
d0NhbGxiYWNrKHRoaXMudXBkYXRlRXZlbnRMaXN0ZW5lcnMuYmluZCh0aGlzKSk7CiAKLSAgICB0
aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuZXhwYW5kZWQgPSB0cnVlOworICAgIHRoaXMuc2lkZWJh
clBhbmVzLnN0eWxlcy5leHBhbmQoKTsKIAogICAgIHRoaXMuc2lkZWJhclBhbmVzLnN0eWxlcy5h
ZGRFdmVudExpc3RlbmVyKCJzdHlsZSBlZGl0ZWQiLCB0aGlzLl9zdHlsZXNQYW5lRWRpdGVkLCB0
aGlzKTsKICAgICB0aGlzLnNpZGViYXJQYW5lcy5zdHlsZXMuYWRkRXZlbnRMaXN0ZW5lcigic3R5
bGUgcHJvcGVydHkgdG9nZ2xlZCIsIHRoaXMuX3N0eWxlc1BhbmVFZGl0ZWQsIHRoaXMpOwogICAg
IHRoaXMuc2lkZWJhclBhbmVzLm1ldHJpY3MuYWRkRXZlbnRMaXN0ZW5lcigibWV0cmljcyBlZGl0
ZWQiLCB0aGlzLl9tZXRyaWNzUGFuZUVkaXRlZCwgdGhpcyk7CiAKKyAgICB0aGlzLnNpZGViYXJQ
YW5lVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjaygpOwogICAgIGZvciAo
dmFyIHBhbmUgaW4gdGhpcy5zaWRlYmFyUGFuZXMpCi0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVz
W3BhbmVdLnNob3codGhpcy5zaWRlYmFyRWxlbWVudCk7CisgICAgICAgIHRoaXMuc2lkZWJhclBh
bmVWaWV3LmFkZFBhbmUodGhpcy5zaWRlYmFyUGFuZXNbcGFuZV0pOworICAgIHRoaXMuc2lkZWJh
clBhbmVWaWV3LnNob3codGhpcy5zaWRlYmFyRWxlbWVudCk7CiAKICAgICB0aGlzLl9wb3BvdmVy
SGVscGVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVudCwgdGhp
cy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5iaW5kKHRo
aXMpKTsKICAgICB0aGlzLl9wb3BvdmVySGVscGVyLnNldFRpbWVvdXQoMCk7CkBAIC0xNDMsOCAr
MTQ1LDYgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAg
ICAgIGlmICghdGhpcy50cmVlT3V0bGluZS5yb290RE9NTm9kZSkKICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoKTsKLQotICAgICAgICB0aGlzLnNpZGVi
YXJQYW5lcy5kb21CcmVha3BvaW50cy5zaG93KHRoaXMuc2lkZWJhckVsZW1lbnQsIHRoaXMuc2lk
ZWJhclBhbmVzLmV2ZW50TGlzdGVuZXJzLmVsZW1lbnQpOwogICAgIH0sCiAKICAgICB3aWxsSGlk
ZTogZnVuY3Rpb24oKQpAQCAtOTczLDcgKzk3Myw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBzdHlsZXNTaWRlYmFyUGFuZSA9
IHRoaXMuc2lkZWJhclBhbmVzLnN0eWxlczsKICAgICAgICAgdmFyIGNvbXB1dGVkU3R5bGVQYW5l
ID0gdGhpcy5zaWRlYmFyUGFuZXMuY29tcHV0ZWRTdHlsZTsKLSAgICAgICAgaWYgKCghc3R5bGVz
U2lkZWJhclBhbmUuZXhwYW5kZWQgJiYgIWNvbXB1dGVkU3R5bGVQYW5lLmV4cGFuZGVkKSB8fCAh
c3R5bGVzU2lkZWJhclBhbmUubmVlZHNVcGRhdGUpCisgICAgICAgIGlmICgoIXN0eWxlc1NpZGVi
YXJQYW5lLmlzU2hvd2luZygpICYmICFjb21wdXRlZFN0eWxlUGFuZS5pc1Nob3dpbmcoKSkgfHwg
IXN0eWxlc1NpZGViYXJQYW5lLm5lZWRzVXBkYXRlKQogICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgIHN0eWxlc1NpZGViYXJQYW5lLnVwZGF0ZSh0aGlzLnNlbGVjdGVkRE9NTm9kZSgpLCBm
b3JjZVVwZGF0ZSk7CkBAIC05ODMsNyArOTgzLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFu
ZWwucHJvdG90eXBlID0gewogICAgIHVwZGF0ZU1ldHJpY3M6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIHZhciBtZXRyaWNzU2lkZWJhclBhbmUgPSB0aGlzLnNpZGViYXJQYW5lcy5tZXRyaWNz
OwotICAgICAgICBpZiAoIW1ldHJpY3NTaWRlYmFyUGFuZS5leHBhbmRlZCB8fCAhbWV0cmljc1Np
ZGViYXJQYW5lLm5lZWRzVXBkYXRlKQorICAgICAgICBpZiAoIW1ldHJpY3NTaWRlYmFyUGFuZS5p
c1Nob3dpbmcoKSB8fCAhbWV0cmljc1NpZGViYXJQYW5lLm5lZWRzVXBkYXRlKQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIG1ldHJpY3NTaWRlYmFyUGFuZS51cGRhdGUodGhpcy5zZWxl
Y3RlZERPTU5vZGUoKSk7CkBAIC05OTMsNyArOTkzLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
UGFuZWwucHJvdG90eXBlID0gewogICAgIHVwZGF0ZVByb3BlcnRpZXM6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIHZhciBwcm9wZXJ0aWVzU2lkZWJhclBhbmUgPSB0aGlzLnNpZGViYXJQYW5l
cy5wcm9wZXJ0aWVzOwotICAgICAgICBpZiAoIXByb3BlcnRpZXNTaWRlYmFyUGFuZS5leHBhbmRl
ZCB8fCAhcHJvcGVydGllc1NpZGViYXJQYW5lLm5lZWRzVXBkYXRlKQorICAgICAgICBpZiAoIXBy
b3BlcnRpZXNTaWRlYmFyUGFuZS5pc1Nob3dpbmcoKSB8fCAhcHJvcGVydGllc1NpZGViYXJQYW5l
Lm5lZWRzVXBkYXRlKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHByb3BlcnRpZXNT
aWRlYmFyUGFuZS51cGRhdGUodGhpcy5zZWxlY3RlZERPTU5vZGUoKSk7CkBAIC0xMDAzLDcgKzEw
MDMsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgdXBk
YXRlRXZlbnRMaXN0ZW5lcnM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBldmVudExp
c3RlbmVyc1NpZGViYXJQYW5lID0gdGhpcy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnM7Ci0g
ICAgICAgIGlmICghZXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5leHBhbmRlZCB8fCAhZXZlbnRM
aXN0ZW5lcnNTaWRlYmFyUGFuZS5uZWVkc1VwZGF0ZSkKKyAgICAgICAgaWYgKCFldmVudExpc3Rl
bmVyc1NpZGViYXJQYW5lLmlzU2hvd2luZygpIHx8ICFldmVudExpc3RlbmVyc1NpZGViYXJQYW5l
Lm5lZWRzVXBkYXRlKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGV2ZW50TGlzdGVu
ZXJzU2lkZWJhclBhbmUudXBkYXRlKHRoaXMuc2VsZWN0ZWRET01Ob2RlKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKaW5k
ZXggMDQzYmNjMTYyNDRmYWEyYTgxNWVmMGEwZTVhMzFmY2JhYTk4YTJjYy4uMDlhNGQ2YjE5NTdk
MDZhYzU1OTg3MGJiZGNlYjU2ZDI1Mzg2Y2I1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCkBAIC0xNDAsNiArMTQwLDcg
QEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvbkJ1dHRvbi5wcm90b3R5cGUgPSB7CiBXZWJJbnNwZWN0
b3IuRXh0ZW5zaW9uU2lkZWJhclBhbmUgPSBmdW5jdGlvbih0aXRsZSwgaWQpCiB7CiAgICAgV2Vi
SW5zcGVjdG9yLlNpZGViYXJQYW5lLmNhbGwodGhpcywgdGl0bGUpOworICAgIHRoaXMuc2V0SGlk
ZU9uRGV0YWNoKCk7CiAgICAgdGhpcy5faWQgPSBpZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwppbmRleCA3Njhi
ODYxYTZkNTZlNTA3MzZkMGFhODZiNmRhYzRmNzFmMzMxOTMyLi5jMTE2MWJlMjhkMTY4ZDQ0NjE4
M2Y3NTFhNWJjOWU0MjIyOWI5NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtMjMxLDEzICsyMzEsMTMgQEAg
V2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBw
YW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbChtZXNzYWdlLnBhbmVsKTsKICAgICAgICAgaWYgKCFw
YW5lbCkKICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9OT1RGT1VORChtZXNzYWdl
LnBhbmVsKTsKLSAgICAgICAgaWYgKCFwYW5lbC5zaWRlYmFyRWxlbWVudCB8fCAhcGFuZWwuc2lk
ZWJhclBhbmVzKQorICAgICAgICBpZiAoIXBhbmVsLnNpZGViYXJQYW5lVmlldyB8fCAhcGFuZWwu
c2lkZWJhclBhbmVzKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cy5FX05PVFNVUFBP
UlRFRCgpOwogICAgICAgICB2YXIgaWQgPSBtZXNzYWdlLmlkOwogICAgICAgICB2YXIgc2lkZWJh
ciA9IG5ldyBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2lkZWJhclBhbmUobWVzc2FnZS50aXRsZSwg
bWVzc2FnZS5pZCk7CiAgICAgICAgIHRoaXMuX2NsaWVudE9iamVjdHNbaWRdID0gc2lkZWJhcjsK
ICAgICAgICAgcGFuZWwuc2lkZWJhclBhbmVzW2lkXSA9IHNpZGViYXI7Ci0gICAgICAgIHNpZGVi
YXIuc2hvdyhwYW5lbC5zaWRlYmFyRWxlbWVudCk7CisgICAgICAgIHBhbmVsLnNpZGViYXJQYW5l
Vmlldy5hZGRQYW5lKHNpZGViYXIpOwogCiAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuT0so
KTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNQYW5lbC5qcwppbmRleCBhNTNlMDA0ZmM0MTYyZGE0MzA3YTE5NDE0OWU2ZjIzZTdmMjY0
YmRiLi5lM2NmYjUwNzc3MDYxMmI5OGYzNjNlYmFiZmU3NWZiYjliMWNlYWVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAt
MTIyLDIwICsxMjIsMTUgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKHdv
cmtzcGFjZUZvclRlc3QpCiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLndvcmtlckxpc3QgPSBu
ZXcgV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZShXZWJJbnNwZWN0b3Iud29ya2VyTWFu
YWdlcik7CiAgICAgfQogCi0gICAgdGhpcy5fZGVidWdTaWRlYmFyQ29udGVudHNFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5fZGVidWdTaWRlYmFyQ29u
dGVudHNFbGVtZW50LmlkID0gInNjcmlwdHMtZGVidWctc2lkZWJhci1jb250ZW50cyI7Ci0gICAg
dGhpcy5zaWRlYmFyRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kZWJ1Z1NpZGViYXJDb250ZW50
c0VsZW1lbnQpOwotCi0gICAgZm9yICh2YXIgcGFuZSBpbiB0aGlzLnNpZGViYXJQYW5lcykgewot
ICAgICAgICBpZiAodGhpcy5zaWRlYmFyUGFuZXNbcGFuZV0gPT09IHRoaXMuc2lkZWJhclBhbmVz
LmRvbUJyZWFrcG9pbnRzKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHRoaXMuc2lk
ZWJhclBhbmVzW3BhbmVdLnNob3codGhpcy5fZGVidWdTaWRlYmFyQ29udGVudHNFbGVtZW50KTsK
LSAgICB9Ci0KLSAgICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2suZXhwYW5kZWQgPSB0cnVl
OworICAgIHRoaXMuc2lkZWJhclBhbmVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5TaWRlYmFyUGFu
ZVN0YWNrKCk7CisgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcuZWxlbWVudC5pZCA9ICJzY3JpcHRz
LWRlYnVnLXNpZGViYXItY29udGVudHMiOworICAgIGZvciAodmFyIHBhbmUgaW4gdGhpcy5zaWRl
YmFyUGFuZXMpCisgICAgICAgIHRoaXMuc2lkZWJhclBhbmVWaWV3LmFkZFBhbmUodGhpcy5zaWRl
YmFyUGFuZXNbcGFuZV0pOworICAgIHRoaXMuc2lkZWJhclBhbmVWaWV3LnNob3codGhpcy5zaWRl
YmFyRWxlbWVudCk7CiAKLSAgICB0aGlzLnNpZGViYXJQYW5lcy5zY29wZWNoYWluLmV4cGFuZGVk
ID0gdHJ1ZTsKLSAgICB0aGlzLnNpZGViYXJQYW5lcy5qc0JyZWFrcG9pbnRzLmV4cGFuZGVkID0g
dHJ1ZTsKKyAgICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2suZXhwYW5kKCk7CisgICAgdGhp
cy5zaWRlYmFyUGFuZXMuc2NvcGVjaGFpbi5leHBhbmQoKTsKKyAgICB0aGlzLnNpZGViYXJQYW5l
cy5qc0JyZWFrcG9pbnRzLmV4cGFuZCgpOwogCiAgICAgdGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0
YWNrLnJlZ2lzdGVyU2hvcnRjdXRzKHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMuYmluZCh0aGlzKSk7
CiAgICAgdGhpcy5yZWdpc3RlclNob3J0Y3V0cyhXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsRGVz
Y3JpcHRvci5TaG9ydGN1dEtleXMuRXZhbHVhdGVTZWxlY3Rpb25JbkNvbnNvbGUsIHRoaXMuX2V2
YWx1YXRlU2VsZWN0aW9uSW5Db25zb2xlLmJpbmQodGhpcykpOwpAQCAtMjE1LDggKzIxMCw2IEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHdhc1Nob3duOiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLndh
c1Nob3duLmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmRvbUJyZWFrcG9p
bnRzLnNob3codGhpcy5fZGVidWdTaWRlYmFyQ29udGVudHNFbGVtZW50LCB0aGlzLnNpZGViYXJQ
YW5lcy54aHJCcmVha3BvaW50cy5lbGVtZW50KTsKLQogICAgICAgICB0aGlzLl9uYXZpZ2F0b3JD
b250cm9sbGVyLndhc1Nob3duKCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclBhbmUuanMKaW5kZXggZWQzZGJhM2M2ZGUxMDE0NDRi
NWJhNWFjZjU1YjQwOTJlMzFmMzhjYy4uOGRkNTEyZjU0OWU0ZjhkZjYwZTg3NTQ5NzIwMTJkZDIz
MWY4ZmFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
aWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Np
ZGViYXJQYW5lLmpzCkBAIC0zNSwxMDMgKzM1LDE4OCBAQCBXZWJJbnNwZWN0b3IuU2lkZWJhclBh
bmUgPSBmdW5jdGlvbih0aXRsZSkKICAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwog
ICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAicGFuZSI7CiAKLSAgICB0aGlzLnRpdGxlRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMudGl0bGVFbGVt
ZW50LmNsYXNzTmFtZSA9ICJ0aXRsZSI7Ci0gICAgdGhpcy50aXRsZUVsZW1lbnQudGFiSW5kZXgg
PSAwOwotICAgIHRoaXMudGl0bGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhp
cy50b2dnbGVFeHBhbmRlZC5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0gICAgdGhpcy50aXRsZUVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX29uVGl0bGVLZXlEb3duLmJpbmQo
dGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLnRpdGxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKTsKKyAgICB0aGlzLmJvZHlFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNy
ZWF0ZUNoaWxkKCJkaXYiLCAiYm9keSIpOwogCi0gICAgdGhpcy5ib2R5RWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuYm9keUVsZW1lbnQuY2xhc3NOYW1l
ID0gImJvZHkiOworICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7CiAKLSAgICB0aGlzLmVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy50aXRsZUVsZW1lbnQpOwotICAgIHRoaXMuZWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLmJvZHlFbGVtZW50KTsKLQotICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKLSAgICB0
aGlzLmdyb3diYXJWaXNpYmxlID0gZmFsc2U7Ci0gICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlOwor
ICAgIHRoaXMuX2V4cGFuZENhbGxiYWNrID0gbnVsbDsKKyAgICB0aGlzLl9zaG93Q2FsbGJhY2sg
PSBudWxsOwogfQogCiBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBlID0gewotICAg
IGdldCB0aXRsZSgpCisgICAgdGl0bGU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHJldHVy
biB0aGlzLl90aXRsZTsKICAgICB9LAogCi0gICAgc2V0IHRpdGxlKHgpCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBwcmVwYXJlQ29udGVu
dDogZnVuY3Rpb24oY2FsbGJhY2spCisgICAgeworICAgICAgICBjYWxsYmFjaygpOworICAgIH0s
CisKKyAgICBleHBhbmQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90aXRs
ZSA9PT0geCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fdGl0bGUgPSB4Owot
ICAgICAgICB0aGlzLnRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHg7CisgICAgICAgIGlmICh0
aGlzLl9leHBhbmRDYWxsYmFjaykKKyAgICAgICAgICAgIHRoaXMucHJlcGFyZUNvbnRlbnQodGhp
cy5fZXhwYW5kQ2FsbGJhY2spOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9leHBh
bmRQZW5kaW5nID0gdHJ1ZTsKICAgICB9LAogCi0gICAgZ2V0IGdyb3diYXJWaXNpYmxlKCkKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjaworICAgICAqIEByZXR1cm4g
e2Jvb2xlYW59CisgICAgICovCisgICAgc2V0RXhwYW5kQ2FsbGJhY2s6IGZ1bmN0aW9uKGNhbGxi
YWNrKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2dyb3diYXJWaXNpYmxlOworICAgICAg
ICB0aGlzLl9leHBhbmRDYWxsYmFjayA9IGNhbGxiYWNrOworICAgICAgICB2YXIgcGVuZGluZyA9
IHRoaXMuX2V4cGFuZFBlbmRpbmc7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9leHBhbmRQZW5kaW5n
OworICAgICAgICByZXR1cm4gcGVuZGluZzsKICAgICB9LAogCi0gICAgc2V0IGdyb3diYXJWaXNp
YmxlKHgpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sKKyAgICAg
Ki8KKyAgICBzZXRTaG93Q2FsbGJhY2s6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMuX2dyb3diYXJWaXNpYmxlID09PSB4KQotICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB0aGlzLl9zaG93Q2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICB9LAorCisgICAgd2Fz
U2hvd246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOworICAgICAgICBpZiAodGhpcy5fc2hvd0NhbGxiYWNr
KQorICAgICAgICAgICAgdGhpcy5fc2hvd0NhbGxiYWNrKCk7CisgICAgfSwKKworICAgIF9fcHJv
dG9fXzogV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlCit9CisKKy8qKgorICogQGNvbnN0cnVj
dG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CisgKi8KK1dlYkluc3BlY3Rvci5T
aWRlYmFyUGFuZVN0YWNrID0gZnVuY3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rvci5WaWV3LmNh
bGwodGhpcyk7CisgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJzaWRlYmFyLXBhbmUtc3Rh
Y2sgZmlsbCI7CiAKLSAgICAgICAgdGhpcy5fZ3Jvd2JhclZpc2libGUgPSB4OworICAgIHRoaXMu
X3RpdGxlcyA9IFtdOworICAgIHRoaXMuX3BhbmVzID0gW107Cit9CiAKLSAgICAgICAgaWYgKHgg
JiYgIXRoaXMuX2dyb3diYXJFbGVtZW50KSB7Ci0gICAgICAgICAgICB0aGlzLl9ncm93YmFyRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAgdGhpcy5f
Z3Jvd2JhckVsZW1lbnQuY2xhc3NOYW1lID0gImdyb3diYXIiOwotICAgICAgICAgICAgdGhpcy5l
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2dyb3diYXJFbGVtZW50KTsKLSAgICAgICAgfSBlbHNl
IGlmICgheCAmJiB0aGlzLl9ncm93YmFyRWxlbWVudCkgewotICAgICAgICAgICAgaWYgKHRoaXMu
X2dyb3diYXJFbGVtZW50LnBhcmVudE5vZGUpCi0gICAgICAgICAgICAgICAgdGhpcy5fZ3Jvd2Jh
ckVsZW1lbnQucGFyZW50Tm9kZSh0aGlzLl9ncm93YmFyRWxlbWVudCk7Ci0gICAgICAgICAgICBk
ZWxldGUgdGhpcy5fZ3Jvd2JhckVsZW1lbnQ7Ci0gICAgICAgIH0KK1dlYkluc3BlY3Rvci5TaWRl
YmFyUGFuZVN0YWNrLnByb3RvdHlwZSA9IHsKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhp
cyk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fcGFuZXMubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICB0aGlzLl9hdHRhY2hUb1BhbmUoaSk7CiAgICAgfSwKIAotICAgIGdldCBl
eHBhbmRlZCgpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2lkZWJhclBh
bmV9IHBhbmUKKyAgICAgKi8KKyAgICBhZGRQYW5lOiBmdW5jdGlvbihwYW5lKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkOworICAgICAgICB2YXIgaW5kZXggPSB0aGlzLl9w
YW5lcy5sZW5ndGg7IAorICAgICAgICB0aGlzLl9wYW5lcy5wdXNoKHBhbmUpOworICAgICAgICB0
aGlzLl9hZGRUaXRsZShwYW5lLCBpbmRleCk7CisgICAgICAgIGlmICh0aGlzLmlzU2hvd2luZygp
KQorICAgICAgICAgICAgdGhpcy5fYXR0YWNoVG9QYW5lKGluZGV4KTsKICAgICB9LAogCi0gICAg
c2V0IGV4cGFuZGVkKHgpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2lk
ZWJhclBhbmV9IHBhbmUKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgKKyAgICAgKi8KKyAg
ICBfYWRkVGl0bGU6IGZ1bmN0aW9uKHBhbmUsIGluZGV4KQogICAgIHsKLSAgICAgICAgaWYgKHgp
Ci0gICAgICAgICAgICB0aGlzLmV4cGFuZCgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0
aGlzLmNvbGxhcHNlKCk7CisgICAgICAgIHZhciB0aXRsZSA9IHRoaXMuZWxlbWVudC5jcmVhdGVD
aGlsZCgiZGl2IiwgInBhbmUtdGl0bGUiKTsKKyAgICAgICAgdGl0bGUudGV4dENvbnRlbnQgPSBw
YW5lLnRpdGxlKCk7CisgICAgICAgIHRpdGxlLnRhYkluZGV4ID0gMDsKKyAgICAgICAgdGl0bGUu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVQYW5lLmJpbmQodGhpcywgaW5k
ZXgpLCBmYWxzZSk7CisgICAgICAgIHRpdGxlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0
aGlzLl9vblRpdGxlS2V5RG93bi5iaW5kKHRoaXMsIGluZGV4KSwgZmFsc2UpOworICAgICAgICB0
aXRsZS5hcHBlbmRDaGlsZChwYW5lLnRpdGxlRWxlbWVudCk7CisgICAgICAgIHRoaXMuX3RpdGxl
cy5wdXNoKHRpdGxlKTsKICAgICB9LAogCi0gICAgZXhwYW5kOiBmdW5jdGlvbigpCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4CisgICAgICovCisgICAgX2F0dGFjaFRvUGFu
ZTogZnVuY3Rpb24oaW5kZXgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWQpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuX2V4cGFuZGVkID0gdHJ1ZTsKLSAgICAg
ICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImV4cGFuZGVkIik7Ci0gICAgICAgIHRoaXMu
b25leHBhbmQoKTsKKyAgICAgICAgdmFyIHBhbmUgPSB0aGlzLl9wYW5lc1tpbmRleF07CisgICAg
ICAgIHZhciB0aXRsZSA9IHRoaXMuX3RpdGxlc1tpbmRleF07CisgICAgICAgIHZhciBleHBhbmRQ
ZW5kaW5nID0gcGFuZS5zZXRFeHBhbmRDYWxsYmFjayh0aGlzLl9vblBhbmVFeHBhbmRlZC5iaW5k
KHRoaXMsIGluZGV4KSk7CisgICAgICAgIHRoaXMuX3NldEV4cGFuZGVkKGluZGV4LCB0aGlzLl9p
c0V4cGFuZGVkKGluZGV4KSB8fCBleHBhbmRQZW5kaW5nKTsKICAgICB9LAogCi0gICAgb25leHBh
bmQ6IGZ1bmN0aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgKKyAg
ICAgKi8KKyAgICBfaXNFeHBhbmRlZDogZnVuY3Rpb24oaW5kZXgpCiAgICAgeworICAgICAgICB2
YXIgdGl0bGUgPSB0aGlzLl90aXRsZXNbaW5kZXhdOworICAgICAgICByZXR1cm4gdGl0bGUuaGFz
U3R5bGVDbGFzcygiZXhwYW5kZWQiKTsKICAgICB9LAogCi0gICAgY29sbGFwc2U6IGZ1bmN0aW9u
KCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgKKyAgICAgKiBAcGFyYW0g
e2Jvb2xlYW59IG9uCisgICAgICovCisgICAgX3NldEV4cGFuZGVkOiBmdW5jdGlvbihpbmRleCwg
b24pCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2V4cGFuZGVkKQotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB0aGlzLl9leHBhbmRlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLmVsZW1l
bnQucmVtb3ZlU3R5bGVDbGFzcygiZXhwYW5kZWQiKTsKKyAgICAgICAgaWYgKG9uKQorICAgICAg
ICAgICAgdGhpcy5fcGFuZXNbaW5kZXhdLnByZXBhcmVDb250ZW50KHRoaXMuX29uUGFuZUV4cGFu
ZGVkLmJpbmQodGhpcywgaW5kZXgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5f
Y29sbGFwc2VQYW5lKGluZGV4KTsKICAgICB9LAogCi0gICAgdG9nZ2xlRXhwYW5kZWQ6IGZ1bmN0
aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgKKyAgICAgKi8KKyAg
ICBfb25QYW5lRXhwYW5kZWQ6IGZ1bmN0aW9uKGluZGV4KQogICAgIHsKLSAgICAgICAgdGhpcy5l
eHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkOworICAgICAgICB2YXIgcGFuZSA9IHRoaXMuX3BhbmVz
W2luZGV4XTsKKyAgICAgICAgdmFyIHRpdGxlID0gdGhpcy5fdGl0bGVzW2luZGV4XTsKKyAgICAg
ICAgdGl0bGUuYWRkU3R5bGVDbGFzcygiZXhwYW5kZWQiKTsKKyAgICAgICAgcGFuZS5zaG93KHRo
aXMuZWxlbWVudCwgdGl0bGUubmV4dFNpYmxpbmcpOwogICAgIH0sCiAKLSAgICBfb25UaXRsZUtl
eURvd246IGZ1bmN0aW9uKGV2ZW50KQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBp
bmRleAorICAgICAqLworICAgIF9jb2xsYXBzZVBhbmU6IGZ1bmN0aW9uKGluZGV4KQorICAgIHsK
KyAgICAgICAgdmFyIHBhbmUgPSB0aGlzLl9wYW5lc1tpbmRleF07CisgICAgICAgIHZhciB0aXRs
ZSA9IHRoaXMuX3RpdGxlc1tpbmRleF07CisgICAgICAgIHRpdGxlLnJlbW92ZVN0eWxlQ2xhc3Mo
ImV4cGFuZGVkIik7CisgICAgICAgIGlmIChwYW5lLmVsZW1lbnQucGFyZW50Tm9kZSA9PSB0aGlz
LmVsZW1lbnQpCisgICAgICAgICAgICBwYW5lLmRldGFjaCgpOworICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgKKyAgICAgKiBAcHJpdmF0ZQorICAgICAqLwor
ICAgIF90b2dnbGVQYW5lOiBmdW5jdGlvbihpbmRleCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Nl
dEV4cGFuZGVkKGluZGV4LCAhdGhpcy5faXNFeHBhbmRlZChpbmRleCkpOworICAgIH0sCisgICAg
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4CisgICAgICogQHBhcmFtIHtF
dmVudH0gZXZlbnQKKyAgICAgKiBAcHJpdmF0ZQorICAgICAqLworICAgIF9vblRpdGxlS2V5RG93
bjogZnVuY3Rpb24oaW5kZXgsIGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKGlzRW50ZXJLZXko
ZXZlbnQpIHx8IGV2ZW50LmtleUNvZGUgPT09IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
LktleXMuU3BhY2UuY29kZSkKLSAgICAgICAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWQoKTsKKyAg
ICAgICAgICAgIHRoaXMuX3RvZ2dsZVBhbmUoaW5kZXgpOwogICAgIH0sCiAKICAgICBfX3Byb3Rv
X186IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKaW5kZXggN2IwZDI0
YWM1MzVmZTJmNWY0YTk0M2E5M2UwYzUwNjRiOThlNzJkZi4uZGIzOGM4NGFlYmFjNmNhM2Q5ZWI1
M2Y0MjU4ZjcyMzQyNzhmZjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC0yMzksNyArMjM5LDcgQEAg
V2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICB1c2VyQ2FsbGJhY2soKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICh0aGlzLl9jb21w
dXRlZFN0eWxlUGFuZS5leHBhbmRlZCB8fCBmb3JjZUZldGNoQ29tcHV0ZWRTdHlsZSkgeworICAg
ICAgICBpZiAodGhpcy5fY29tcHV0ZWRTdHlsZVBhbmUuaXNTaG93aW5nKCkgfHwgZm9yY2VGZXRj
aENvbXB1dGVkU3R5bGUpIHsKICAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hVcGRhdGVJblByb2dy
ZXNzID0gdHJ1ZTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRDb21wdXRl
ZFN0eWxlQXN5bmMobm9kZS5pZCwgY29tcHV0ZWRTdHlsZUNhbGxiYWNrLmJpbmQodGhpcykpOwog
ICAgICAgICB9IGVsc2UgewpAQCAtMzAyLDcgKzMwMiw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZXNT
aWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXN1bHRTdHlsZXMuY29tcHV0
ZWRTdHlsZSA9IGNvbXB1dGVkU3R5bGU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodGhpcy5f
Y29tcHV0ZWRTdHlsZVBhbmUuZXhwYW5kZWQpCisgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZFN0
eWxlUGFuZS5pc1Nob3dpbmcoKSkKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5n
ZXRDb21wdXRlZFN0eWxlQXN5bmMobm9kZS5pZCwgY29tcHV0ZWRDYWxsYmFjay5iaW5kKHRoaXMp
KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldElubGluZVN0eWxlc0FzeW5jKG5v
ZGUuaWQsIGlubGluZUNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgICAgICBXZWJJbnNwZWN0b3Iu
Y3NzTW9kZWwuZ2V0TWF0Y2hlZFN0eWxlc0FzeW5jKG5vZGUuaWQsIHRydWUsIHRydWUsIHN0eWxl
c0NhbGxiYWNrLmJpbmQodGhpcykpOwpAQCAtNjcxLDcgKzY3MSw3IEBAIFdlYkluc3BlY3Rvci5T
dHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgX2NyZWF0ZU5ld1J1bGU6IGZ1bmN0
aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgZXZlbnQuY29uc3VtZSgpOwotICAgICAgICB0aGlz
LmV4cGFuZGVkID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5leHBhbmQoKTsKICAgICAgICAgdGhpcy5h
ZGRCbGFua1NlY3Rpb24oKS5zdGFydEVkaXRpbmdTZWxlY3RvcigpOwogICAgIH0sCiAKQEAgLTgw
MCwxNSArODAwLDkgQEAgV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVTaWRlYmFyUGFuZSA9IGZ1
bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVTaWRlYmFyUGFuZS5wcm90b3R5
cGUgPSB7CiAKLSAgICAvLyBPdmVycmlkaW5nIGV4cGFuZCgpIHJhdGhlciB0aGFuIG9uZXhwYW5k
KCkgdG8gZWxpbWluYXRlIHRoZSB2aXN1YWwgc2xvd25lc3MgZHVlIHRvIGEgcG9zc2libGUgYmFj
a2VuZCB0cmlwLgotICAgIGV4cGFuZDogZnVuY3Rpb24oKQorICAgIHByZXBhcmVDb250ZW50OiBm
dW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZS5l
eHBhbmQuY2FsbCh0aGlzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3N0eWxlc1NpZGVi
YXJQYW5lLl9yZWZyZXNoVXBkYXRlKG51bGwsIHRydWUsIGNhbGxiYWNrLmJpbmQodGhpcykpOwor
ICAgICAgICB0aGlzLl9zdHlsZXNTaWRlYmFyUGFuZS5fcmVmcmVzaFVwZGF0ZShudWxsLCB0cnVl
LCBjYWxsYmFjayk7CiAgICAgfSwKIAogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlNpZGVi
YXJQYW5lLnByb3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcwppbmRleCAz
NGI5NjllMjQ3YmJmYjgzNGFlMzc3MzVjY2I0MDE4MTAzYTlmNGJiLi4yODA5ZWNlYTkwM2Y3MGFk
MjJkMTI5ZjFmZDBiMGI1YWRlY2JjMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFu
ZS5qcwpAQCAtNjMsNyArNjMsNyBAQCBXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NpZGVi
YXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcmVxdWlyZXNVcGRhdGUgPSB0cnVl
OwogCiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mud2F0Y2hFeHByZXNzaW9ucy5n
ZXQoKS5sZW5ndGggPiAwKQotICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CisgICAg
ICAgICAgICB0aGlzLmV4cGFuZCgpOwogICAgIH0sCiAKICAgICByZXNldDogZnVuY3Rpb24oKQpA
QCAtODAsNyArODAsNyBAQCBXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5l
LnByb3RvdHlwZSA9IHsKICAgICBhZGRFeHByZXNzaW9uOiBmdW5jdGlvbihleHByZXNzaW9uKQog
ICAgIHsKICAgICAgICAgdGhpcy5zZWN0aW9uLmFkZEV4cHJlc3Npb24oZXhwcmVzc2lvbik7Ci0g
ICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlOworICAgICAgICB0aGlzLmV4cGFuZCgpOwogICAg
IH0sCiAKICAgICBfcmVmcmVzaEV4cHJlc3Npb25zSWZOZWVkZWQ6IGZ1bmN0aW9uKCkKQEAgLTk1
LDcgKzk1LDcgQEAgV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgX2FkZEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
ICAgICAgICAgZXZlbnQuY29uc3VtZSgpOwotICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTsK
KyAgICAgICAgdGhpcy5leHBhbmQoKTsKICAgICAgICAgdGhpcy5zZWN0aW9uLmFkZE5ld0V4cHJl
c3Npb25BbmRFZGl0KCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IDU3ZGIwZWE3YTcxZjdjMDlmZTI4MDg4NDAw
ZjUyYjlhNjNlNWI3NTIuLmUxMzQ0MmYwYTE2NDdmOGNjNzQ1NzgyYjBmYzkyYWUxZDRhMzNjYjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5j
c3MKQEAgLTE3ODUsMTEgKzE3ODUsMTEgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5lZGl0aW5n
IC5lbmFibGVkLWJ1dHRvbiwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQKICAgICBi
b3JkZXI6IDFweCBzb2xpZCByZ2JhKDY0LCA2NCwgNjQsIDAuOCk7CiB9CiAKLS5wYW5lOm5vdCgu
ZXhwYW5kZWQpICsgLnBhbmUsIC5wYW5lOmZpcnN0LW9mLXR5cGUgeworLnBhbmUtdGl0bGUgKyAu
cGFuZS10aXRsZSwgLnBhbmU6bm90KC52aXNpYmxlKSArIC5wYW5lLXRpdGxlLCAucGFuZS10aXRs
ZTpmaXJzdC1vZi10eXBlIHsKICAgICBtYXJnaW4tdG9wOiAtMXB4OwogfQogCi0ucGFuZSA+IC50
aXRsZSB7CisucGFuZS10aXRsZSB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFk
aWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjQzLCAyNDMsIDI0
MykpLCBjb2xvci1zdG9wKDAuMDUsIHJnYigyNDMsIDI0MywgMjQzKSksIGNvbG9yLXN0b3AoMC4w
NSwgcmdiKDIzMCwgMjMwLCAyMzApKSwgdG8ocmdiKDIwOSwgMjA5LCAyMDkpKSk7CiAgICAgaGVp
Z2h0OiAyMHB4OwogICAgIHBhZGRpbmc6IDAgNXB4OwpAQCAtMTgwNCwxMyArMTgwNCwxMyBAQCBs
aS5lZGl0aW5nIC5zd2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGkuZWRpdGlu
Zy1zdWItcGFydCAuZGVsZXRlLWJ1dAogICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBwYWRk
aW5nOwogfQogCi0ucGFuZSA+IC50aXRsZTphY3RpdmUgeworLnBhbmUtdGl0bGU6YWN0aXZlIHsK
ICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3As
IGxlZnQgYm90dG9tLCBmcm9tKHJnYigyMzEsIDIzMSwgMjMxKSksIGNvbG9yLXN0b3AoMC4wNSwg
cmdiKDIzMSwgMjMxLCAyMzEpKSwgY29sb3Itc3RvcCgwLjA1LCByZ2IoMjA3LCAyMDcsIDIwNykp
LCB0byhyZ2IoMTg2LCAxODYsIDE4NikpKTsKICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdi
KDE3OCwgMTc4LCAxNzgpOwogICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMTc4LCAx
NzgsIDE3OCk7CiB9CiAKLS5wYW5lID4gLnRpdGxlOjpiZWZvcmUgeworLnBhbmUtdGl0bGU6OmJl
Zm9yZSB7CiAgICAgY29udGVudDogdXJsKEltYWdlcy9kaXNjbG9zdXJlVHJpYW5nbGVTbWFsbFJp
Z2h0QmxhY2sucG5nKTsKICAgICBmbG9hdDogbGVmdDsKICAgICB3aWR0aDogMTFweDsKQEAgLTE4
MTksMTEgKzE4MTksMTEgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5lZGl0aW5nIC5lbmFibGVk
LWJ1dHRvbiwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQKICAgICBtYXJnaW4tdG9w
OiAxcHg7CiB9CiAKLS5wYW5lLmV4cGFuZGVkID4gLnRpdGxlOjpiZWZvcmUgeworLnBhbmUtdGl0
bGUuZXhwYW5kZWQ6OmJlZm9yZSB7CiAgICAgY29udGVudDogdXJsKEltYWdlcy9kaXNjbG9zdXJl
VHJpYW5nbGVTbWFsbERvd25CbGFjay5wbmcpOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IHNlbGVj
dCB7CisucGFuZS10aXRsZSA+IHNlbGVjdCB7CiAgICAgZmxvYXQ6IHJpZ2h0OwogICAgIHdpZHRo
OiAyM3B4OwogICAgIGhlaWdodDogMTdweDsKQEAgLTE4MzcsMjcgKzE4MzcsMjcgQEAgbGkuZWRp
dGluZyAuc3dhdGNoLCBsaS5lZGl0aW5nIC5lbmFibGVkLWJ1dHRvbiwgIGxpLmVkaXRpbmctc3Vi
LXBhcnQgLmRlbGV0ZS1idXQKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiB9CiAKLS5w
YW5lID4gLnRpdGxlID4gc2VsZWN0OmhvdmVyIHsKKy5wYW5lLXRpdGxlID4gc2VsZWN0OmhvdmVy
IHsKICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjNweCAwcHg7CiB9CiAKLS5wYW5lID4gLnRp
dGxlID4gc2VsZWN0OmFjdGl2ZSB7CisucGFuZS10aXRsZSA+IHNlbGVjdDphY3RpdmUgewogICAg
IGJhY2tncm91bmQtcG9zaXRpb246IC00NnB4IDBweDsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiBz
ZWxlY3Quc2VsZWN0LXNldHRpbmdzIHsKKy5wYW5lLXRpdGxlID4gc2VsZWN0LnNlbGVjdC1zZXR0
aW5ncyB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKEltYWdlcy9wYW5lU2V0dGluZ3NCdXR0
b25zLnBuZyk7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gc2VsZWN0LnNlbGVjdC1maWx0ZXIgewor
LnBhbmUtdGl0bGUgPiBzZWxlY3Quc2VsZWN0LWZpbHRlciB7CiAgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKEltYWdlcy9wYW5lRmlsdGVyQnV0dG9ucy5wbmcpOwogfQogCi0ucGFuZSA+IC50aXRs
ZSA+IHNlbGVjdCA+IG9wdGlvbiwgLnBhbmUgPiAudGl0bGUgPiBzZWxlY3QgPiBociB7CisucGFu
ZS10aXRsZSA+IHNlbGVjdCA+IG9wdGlvbiwgLnBhbmUtdGl0bGUgPiBzZWxlY3QgPiBociB7CiAg
ICAgY29sb3I6IGJsYWNrOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRv
biB7CisucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbiB7CiAgICAgZmxvYXQ6IHJpZ2h0
OwogICAgIHdpZHRoOiAyM3B4OwogICAgIGhlaWdodDogMTdweDsKQEAgLTE4NzEsMjMgKzE4NzEs
MjMgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5lZGl0aW5nIC5lbmFibGVkLWJ1dHRvbiwgIGxp
LmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5v
bmU7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmhvdmVyIHsKKy5w
YW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmhvdmVyIHsKICAgICBiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAtMjNweCAwcHg7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gLnBhbmUtdGl0bGUtYnV0
dG9uOmFjdGl2ZSwgLnBhbmUgPiAudGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24udG9nZ2xlZCB7
CisucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbjphY3RpdmUsIC5wYW5lLXRpdGxlID4g
LnBhbmUtdGl0bGUtYnV0dG9uLnRvZ2dsZWQgewogICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00
NnB4IDBweDsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24uYWRkIHsK
Ky5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uLmFkZCB7CiAgICAgYmFja2dyb3VuZC1p
bWFnZTogdXJsKEltYWdlcy9wYW5lQWRkQnV0dG9ucy5wbmcpOwogfQogCi0ucGFuZSA+IC50aXRs
ZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5lbGVtZW50LXN0YXRlIHsKKy5wYW5lLXRpdGxlID4gLnBh
bmUtdGl0bGUtYnV0dG9uLmVsZW1lbnQtc3RhdGUgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVy
bChJbWFnZXMvcGFuZUVsZW1lbnRTdGF0ZUJ1dHRvbnMucG5nKTsKIH0KIAotLnBhbmUgPiAudGl0
bGUgPiAucGFuZS10aXRsZS1idXR0b24ucmVmcmVzaCB7CisucGFuZS10aXRsZSA+IC5wYW5lLXRp
dGxlLWJ1dHRvbi5yZWZyZXNoIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL3Bh
bmVSZWZyZXNoQnV0dG9ucy5wbmcpOwogfQogCkBAIC0xOTExLDcgKzE5MTEsNyBAQCBsaS5lZGl0
aW5nIC5zd2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGkuZWRpdGluZy1zdWIt
cGFydCAuZGVsZXRlLWJ1dAogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMTk0
KTsKIH0KIAotLnBhbmUuZXhwYW5kZWQgPiAuYm9keSwgLnBhbmUuZXhwYW5kZWQgPiAuZ3Jvd2Jh
ciB7CisucGFuZS52aXNpYmxlID4gLmJvZHkgewogICAgIGRpc3BsYXk6IGJsb2NrOwogfQogCkBA
IC0xOTMxLDE4ICsxOTMxLDEwIEBAIGxpLmVkaXRpbmcgLnN3YXRjaCwgbGkuZWRpdGluZyAuZW5h
YmxlZC1idXR0b24sICBsaS5lZGl0aW5nLXN1Yi1wYXJ0IC5kZWxldGUtYnV0CiAgICAgYm9yZGVy
OiAxcHggc29saWQgcmdiKDY2JSwgNjYlLCA2NiUpOwogfQogCi0ucGFuZS5leHBhbmRlZDpudGgt
bGFzdC1vZi10eXBlKDEpIHsKKy5wYW5lLnZpc2libGU6bnRoLWxhc3Qtb2YtdHlwZSgxKSB7CiAg
ICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigxODksIDE4OSwgMTg5KTsKIH0KIAotLnBh
bmUgPiAuZ3Jvd2JhciB7Ci0gICAgZGlzcGxheTogbm9uZTsKLSAgICBiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoSW1hZ2VzL3BhbmVHcm93SGFuZGxlTGluZS5wbmcpLCB1cmwoSW1hZ2VzL3BhbmVCb3R0
b21Hcm93LnBuZyk7Ci0gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0LXg7
Ci0gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlciwgYm90dG9tOwotICAgIGhl
aWdodDogNXB4OwotfQotCiAuc2lkZWJhci1wYW5lLXN1YnRpdGxlIHsKICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CiAgICAgcmlnaHQ6IDA7CkBAIC0xOTcyLDcgKzE5NjQsNyBAQCBib2R5LmluYWN0
aXZlIC5zaWRlYmFyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMyLCAyMzIsIDIzMik7
CiB9CiAKLS5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOm5vdCguc3RhdHVzLWJhci1pdGVtKSwg
LnBhbmUgYnV0dG9uLCBidXR0b24uc2hvdy1hbGwtbm9kZXMgeworLnBhbmVsLWVuYWJsZXItdmll
dyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZS10aXRsZS1idXR0b24sIGJ1dHRv
bi5zaG93LWFsbC1ub2RlcyB7CiAgICAgY29sb3I6IHJnYig2LCA2LCA2KTsKICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTY1LCAx
NjUsIDE2NSk7CkBAIC0xOTg5LDE3ICsxOTgxLDEyIEBAIGJ1dHRvbi5zaG93LWFsbC1ub2RlcyB7
CiAgICAgaGVpZ2h0OiAyMHB4OwogfQogCi0ucGFuZSBidXR0b24gewotICAgIG1hcmdpbjogNnB4
IDAgNnB4IDNweDsKLSAgICBwYWRkaW5nOiAycHggOXB4OwotfQotCi0ucGFuZWwtZW5hYmxlci12
aWV3IGJ1dHRvbjphY3RpdmU6bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZSBidXR0b246YWN0
aXZlLCBidXR0b24uc2hvdy1hbGwtbm9kZXM6YWN0aXZlIHsKKy5wYW5lbC1lbmFibGVyLXZpZXcg
YnV0dG9uOmFjdGl2ZTpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5lLXRpdGxlLWJ1dHRvbjph
Y3RpdmUsIGJ1dHRvbi5zaG93LWFsbC1ub2RlczphY3RpdmUgewogICAgIGJhY2tncm91bmQtY29s
b3I6IHJnYigyMTUsIDIxNSwgMjE1KTsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdy
YWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYigxOTQsIDE5NCwg
MTk0KSksIHRvKHJnYigyMzksIDIzOSwgMjM5KSkpOwogfQogCi1ib2R5LmluYWN0aXZlIC5wYW5l
bC1lbmFibGVyLXZpZXcgYnV0dG9uOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmVsLWVuYWJs
ZXItdmlldyBidXR0b246ZGlzYWJsZWQ6bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCBib2R5LmluYWN0
aXZlIC5wYW5lIGJ1dHRvbiwgLnBhbmUgYnV0dG9uOmRpc2FibGVkLCBib2R5LmluYWN0aXZlIGJ1
dHRvbi5zaG93LWFsbC1ub2RlcyB7Citib2R5LmluYWN0aXZlIC5wYW5lbC1lbmFibGVyLXZpZXcg
YnV0dG9uOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246
ZGlzYWJsZWQ6bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCBib2R5LmluYWN0aXZlIC5wYW5lLXRpdGxl
LWJ1dHRvbiwgLnBhbmUtdGl0bGUtYnV0dG9uOmRpc2FibGVkLCBib2R5LmluYWN0aXZlIGJ1dHRv
bi5zaG93LWFsbC1ub2RlcyB7CiAgICAgY29sb3I6IHJnYigxMzAsIDEzMCwgMTMwKTsKICAgICBi
b3JkZXItY29sb3I6IHJnYigyMTIsIDIxMiwgMjEyKTsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2IoMjM5LCAyMzksIDIzOSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTc3NjcyZjhjZGQ2NWVhMDk3ZWJlMmJhYzNjODUx
NzMxNmFjY2M1NS4uZTI3OWIzMGUxYzQ1NjdiYmM1YzYwMmM5ZDBlYmMzYThlNDVhMjM1ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAyLTAxICBWbGFkaXNsYXYgS2F6bmFjaGVldiAgPGth
em5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENyZWF0ZSBh
IGNvbnRhaW5lciBjbGFzcyBmb3IgU2lkZWJhclBhbmUgaW5zdGFuY2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxODMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9hdWRpdHMvYXVk
aXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9h
dWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1leHByZXNzaW9ucy5odG1s
OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dp
dGNoLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25z
LXByZXNlcnZlLWV4cGFuc2lvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXNpZGVi
YXIuaHRtbDoKKwogMjAxMy0wMS0zMSAgRmxvcmluIE1hbGl0YSAgPGZtYWxpdGFAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFs
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVs
LWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CmluZGV4IDUyZjQ3YzZhZjFhOTM0OGQ4NmVjYmMxOTZj
MjM3YmJjNDRiZWI0NmMuLjNmMmNiNjc5NzRkMDQ0OWRiNWQxYTRkNTQwZTZhYjEwMTYyYmI2NmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1
bmN0aW9uYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMv
YXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogVGVz
dHMgYXVkaXQgcnVsZXMuICAgICAKIFBhZ2UgcmVsb2FkZWQuCi0gIE5ldHdvcmsgVXRpbGl6YXRp
b24KKyBOZXR3b3JrIFV0aWxpemF0aW9uCiAgICAgQ29tYmluZSBleHRlcm5hbCBKYXZhU2NyaXB0
ICg0KQogICAgICBUaGVyZSBhcmUgbXVsdGlwbGUgcmVzb3VyY2VzIHNlcnZlZCBmcm9tIHNhbWUg
ZG9tYWluLiBDb25zaWRlciBjb21iaW5pbmcgdGhlbSBpbnRvIGFzIGZldyBmaWxlcyBhcyBwb3Nz
aWJsZS4KICAgICAgIDQgSmF2YVNjcmlwdCByZXNvdXJjZXMgc2VydmVkIGZyb20gW2RvbWFpbl0u
CkBAIC04LDcgKzgsNyBAQCBQYWdlIHJlbG9hZGVkLgogICAgICBBIHdpZHRoIGFuZCBoZWlnaHQg
c2hvdWxkIGJlIHNwZWNpZmllZCBmb3IgYWxsIGltYWdlcyBpbiBvcmRlciB0byBzcGVlZCB1cCBw
YWdlIGRpc3BsYXkuIFRoZSBmb2xsb3dpbmcgaW1hZ2UocykgYXJlIG1pc3NpbmcgYSB3aWR0aCBh
bmQvb3IgaGVpZ2h0OgogICAgICAgIGZvbzEuanBnCiAgICAgICAgZm9vMi5qcGcKLSAgV2ViIFBh
Z2UgUGVyZm9ybWFuY2UKKyBXZWIgUGFnZSBQZXJmb3JtYW5jZQogICAgIE9wdGltaXplIHRoZSBv
cmRlciBvZiBzdHlsZXMgYW5kIHNjcmlwdHMgKDIpCiAgICAgIFRoZSBmb2xsb3dpbmcgZXh0ZXJu
YWwgQ1NTIGZpbGVzIHdlcmUgaW5jbHVkZWQgYWZ0ZXIgYW4gZXh0ZXJuYWwgSmF2YVNjcmlwdCBm
aWxlIGluIHRoZSBkb2N1bWVudCBoZWFkLiBUbyBlbnN1cmUgQ1NTIGZpbGVzIGFyZSBkb3dubG9h
ZGVkIGluIHBhcmFsbGVsLCBhbHdheXMgaW5jbHVkZSBleHRlcm5hbCBDU1MgYmVmb3JlIGV4dGVy
bmFsIEphdmFTY3JpcHQuCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9u
YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFu
ZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKaW5kZXggOWRjN2ExNTkwMGVkZWE3
N2FjNzNkNmQyMmIyNTEwNGU1N2QxYWNhNy4uZWZmYzJhMzJhYzJkODQzMjA3NzJiN2UzOWM3NzI5
MzQyOGU4NjczMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRp
dHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBl
Y3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIFRlc3RzIGF1ZGl0IHJ1bGVzIG9uIGEgcGFnZSB3
aXRob3V0IGltYWdlcy4KIFBhZ2UgcmVsb2FkZWQuCi0gIE5ldHdvcmsgVXRpbGl6YXRpb24KKyBO
ZXR3b3JrIFV0aWxpemF0aW9uCiAgICAgQ29tYmluZSBleHRlcm5hbCBKYXZhU2NyaXB0ICg0KQog
ICAgICBUaGVyZSBhcmUgbXVsdGlwbGUgcmVzb3VyY2VzIHNlcnZlZCBmcm9tIHNhbWUgZG9tYWlu
LiBDb25zaWRlciBjb21iaW5pbmcgdGhlbSBpbnRvIGFzIGZldyBmaWxlcyBhcyBwb3NzaWJsZS4K
ICAgICAgIDQgSmF2YVNjcmlwdCByZXNvdXJjZXMgc2VydmVkIGZyb20gW2RvbWFpbl0uCi0gIFdl
YiBQYWdlIFBlcmZvcm1hbmNlCisgV2ViIFBhZ2UgUGVyZm9ybWFuY2UKICAgICBPcHRpbWl6ZSB0
aGUgb3JkZXIgb2Ygc3R5bGVzIGFuZCBzY3JpcHRzICgyKQogICAgICBUaGUgZm9sbG93aW5nIGV4
dGVybmFsIENTUyBmaWxlcyB3ZXJlIGluY2x1ZGVkIGFmdGVyIGFuIGV4dGVybmFsIEphdmFTY3Jp
cHQgZmlsZSBpbiB0aGUgZG9jdW1lbnQgaGVhZC4gVG8gZW5zdXJlIENTUyBmaWxlcyBhcmUgZG93
bmxvYWRlZCBpbiBwYXJhbGxlbCwgYWx3YXlzIGluY2x1ZGUgZXh0ZXJuYWwgQ1NTIGJlZm9yZSBl
eHRlcm5hbCBKYXZhU2NyaXB0LgogICAgICAgIGF1ZGl0cy1zdHlsZTEuY3NzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhwcmVzc2lv
bnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1l
eHByZXNzaW9ucy5odG1sCmluZGV4IGEzZjE0ZjM1OGYxNWE3YTkzMTA4NGZhNjlkZmJmM2ZlNjIw
MGY0MGMuLmQ4ZmQ4NjFiNjYzNmZjZDFlOTA0MDBmNDI1NjRlY2NhNzhlZjg4YzggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1leHByZXNz
aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13
YXRjaC1leHByZXNzaW9ucy5odG1sCkBAIC0xMCw3ICsxMCwxMCBAQCB2YXIgdGVzdCA9IGZ1bmN0
aW9uKCkKICAgICAvLyBXZSBuZWVkIHRvIGluaXRpYWxpemUgc2NyaXB0cyBwYW5lbCBzbyB0aGF0
IHdhdGNoIGV4cHJlc3Npb25zIHNlY3Rpb24gaXMgY3JlYXRlZC4KICAgICBXZWJJbnNwZWN0b3Iu
c2hvd1BhbmVsKCJzY3JpcHRzIik7CiAKLSAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24g
PSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lv
bnMuc2VjdGlvbjsKKyAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1BhbmUgPSBXZWJJbnNwZWN0b3Iu
cGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnM7CisgICAgd2F0Y2hF
eHByZXNzaW9uc1BhbmUuZXhwYW5kKCk7CisKKyAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1NlY3Rp
b24gPSB3YXRjaEV4cHJlc3Npb25zUGFuZS5zZWN0aW9uOwogICAgIHdhdGNoRXhwcmVzc2lvbnNT
ZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlv
bi53YXRjaEV4cHJlc3Npb25zLnB1c2goIiMkJSIpOwogICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0
aW9uLnVwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sCmluZGV4IGJhZDM2ZWM0ODJiYWJmY2U3ZGU4YjJlOWMz
NDg5ODdlMTZhYWM4ZTcuLmNkYTgzZGExN2ZkMjY2ZDFmYzA4MTNlYjRjNzExMjVmMDBkYTdiMjcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNw
ZWNpYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGll
cy1zcGVjaWFsLmh0bWwKQEAgLTIzLDcgKzIzLDEwIEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQog
ICAgICAgICAvLyBXZSBuZWVkIHRvIGluaXRpYWxpemUgc2NyaXB0cyBwYW5lbCBzbyB0aGF0IHdh
dGNoIGV4cHJlc3Npb25zIHNlY3Rpb24gaXMgY3JlYXRlZC4KICAgICAgICAgV2ViSW5zcGVjdG9y
LnNob3dQYW5lbCgic2NyaXB0cyIpOwogCi0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9u
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Np
b25zLnNlY3Rpb247CisgICAgICAgIHZhciB3YXRjaEV4cHJlc3Npb25zUGFuZSA9IFdlYkluc3Bl
Y3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9uczsKKyAgICAg
ICAgd2F0Y2hFeHByZXNzaW9uc1BhbmUuZXhwYW5kKCk7CisKKyAgICAgICAgd2F0Y2hFeHByZXNz
aW9uc1NlY3Rpb24gPSB3YXRjaEV4cHJlc3Npb25zUGFuZS5zZWN0aW9uOwogICAgICAgICB3YXRj
aEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zID0gW107CiAgICAgICAgIHdhdGNo
RXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgiT2JqZWN0KHRydWUpIik7
CiAgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgi
KGZ1bmN0aW9uKGEsYikgeyByZXR1cm4gYSArIGI7IH0pIik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dpdGNoLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFu
ZWwtc3dpdGNoLmh0bWwKaW5kZXggNDczYzM0MTU4OWI3OWE5MDdmZTliNTE5YWY1YjMwNzg4MzZj
OWZkYi4uN2ZkNWZkMmVlMDYxMGU5ZWZjNjU3ZTk3M2RkNWQxNjBjNWY4M2RlNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXBhbmVs
LXN3aXRjaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1l
eHByZXNzaW9ucy1wYW5lbC1zd2l0Y2guaHRtbApAQCAtMjMsNyArMjMsMTAgQEAgdmFyIHRlc3Qg
PSBmdW5jdGlvbigpCiAgICAgICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRzIHBh
bmVsIHNvIHRoYXQgd2F0Y2ggZXhwcmVzc2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgogICAgICAg
ICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7CiAKLSAgICAgICAgd2F0Y2hFeHBy
ZXNzaW9uc1NlY3Rpb24gPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVz
LndhdGNoRXhwcmVzc2lvbnMuc2VjdGlvbjsKKyAgICAgICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNQ
YW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJl
c3Npb25zOworICAgICAgICB3YXRjaEV4cHJlc3Npb25zUGFuZS5leHBhbmQoKTsKKworICAgICAg
ICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IHdhdGNoRXhwcmVzc2lvbnNQYW5lLnNlY3Rpb247
CiAgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBbXTsK
ICAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJ3
aW5kb3cuZG9jdW1lbnQiKTsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hF
eHByZXNzaW9ucy5wdXNoKCJ3aW5kb3dhLmRvY3VtZW50Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhwYW5z
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lv
bnMtcHJlc2VydmUtZXhwYW5zaW9uLmh0bWwKaW5kZXggNzczNTU2Nzk5MWJmODlhNThkZjM4YmQy
ZjhiMTJiMWE5Y2FhZmUwNS4uMjI0YmJjY2M3M2I3MDU0MWFkMzliMzU2NWIzMDBhYTQzNDMzYjI1
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJl
c3Npb25zLXByZXNlcnZlLWV4cGFuc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24uaHRtbApAQCAt
MjQsNyArMjQsMTAgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAKICAgICBmdW5jdGlvbiBzdGVw
MSgpCiAgICAgewotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5zZWN0aW9uOwor
ICAgICAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1BhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNj
cmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnM7CisgICAgICAgIHdhdGNoRXhwcmVz
c2lvbnNQYW5lLmV4cGFuZCgpOworCisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0g
d2F0Y2hFeHByZXNzaW9uc1BhbmUuc2VjdGlvbjsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1Nl
Y3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwogICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2Vj
dGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goImdsb2JhbE9iamVjdCIpOwogICAgICAgICB3YXRj
aEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIndpbmRvd0FsaWFzIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dAppbmRleCA4NTI5Zjg1ZDU0OTE2
MTZkNzcwZjZlYTRlYmJiNjEzZDcwZWNlMmJjLi5mNWRlZWFmY2M0ZWNiYzA1MDhmYmIwYzA2ODRh
ZTk0YzYwOWIzYWIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQKQEAg
LTM2LDYgKzM2LDYgQEAgY2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQsIHJlc3VsdHMgZHVt
cCBmb2xsb3dzOgogICAgIH0KICAgICBleHBhbmRlZCA6IGZhbHNlCiB9Ci0gIEV4dGVuc2lvbiBh
dWRpdHMKKyBFeHRlbnNpb24gYXVkaXRzCiBBbGwgdGVzdHMgZG9uZS4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVu
dC1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0CmluZGV4IDE1YWFk
MTNiNmFhNGRmZmM4MzYzODMyMTYwMzBiYzFkMGU3ZTlkZjAuLmY4NTgyOWU4MjgzNGEwYjkxZDdk
OGMzNzA0N2NlYzQ1NTJjNDAwZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1j
b250ZW50LXNjcmlwdC1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRlc3RzIGF1ZGl0IGZv
cm1hdHRlcnMgcGVyZm9ybWluZyBldmFscyBvbiBjb250ZW50IHNjcmlwdHMgaW4gV2ViSW5zcGVj
dG9yIEV4dGVuCiAgU3RhcnRlZCBleHRlbnNpb24uCiBSdW5uaW5nIHRlc3RzLi4uCiBSVU5OSU5H
IFRFU1Q6IGV4dGVuc2lvbl90ZXN0QXVkaXRzCi0gIEV4dGVuc2lvbiBhdWRpdHMKKyBFeHRlbnNp
b24gYXVkaXRzCiAgICAgUnVsZSB3aXRoIGRldGFpbHMgc3VidHJlZSAoMSkKICAgICAgIFRlc3Qg
Rm9ybWF0dGVycwogICAgICAgICAgICBtYWluIHdvcmxkIG9iamVjdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMt
ZXhwZWN0ZWQudHh0CmluZGV4IGQzMzRlYTMwMjIxNzFkNDVlZTgzN2RhNGI3NGM5ZTg5NzgyZWFi
YzguLjEzNjExMzQ4YmFhNDMwMTM2OWM5YWUxY2M4YTM5NGRiNTM3YWVhYWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWF1ZGl0cy1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3IEBAIFJ1bm5pbmcgdGVzdHMuLi4KIFJV
Tk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RBdWRpdHMKIFByb2dyZXNzOiA1MCUKIFByb2dyZXNz
OiA3NSUKLSAgRXh0ZW5zaW9uIGF1ZGl0cworIEV4dGVuc2lvbiBhdWRpdHMKICAgICBGYWlsZWQg
cnVsZSAoNDIpCiAgICAgIHRoaXMgcnVsZSBhbHdheXMgZmFpbHMKICAgICBSdWxlIHdpdGggZGV0
YWlscyBzdWJ0cmVlICgxKQpAQCAtNDMsNyArNDMsNyBAQCBQcm9ncmVzczogNzUlCiAgICAgICAg
ICBleHRlbnNpb25zLWF1ZGl0cy5odG1sOjIwCiAgICAgUGFzc2VkIHJ1bGUKICAgICAgdGhpcyBy
dWxlIGFsd2F5cyBwYXNzZXMgb2sKLSAgRXh0ZW5zaW9uIGF1ZGl0cyB0aGF0IGZhaWwKKyBFeHRl
bnNpb24gYXVkaXRzIHRoYXQgZmFpbAogY2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQKIGZh
aWxlZENhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVkLCB0aHJvd2luZyBleGNlcHRpb24KIEFs
bCB0ZXN0cyBkb25lLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1zaWRlYmFyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLXNpZGViYXIuaHRtbAppbmRleCAyZDU0OTVkMWQxNjVjN2M3OGFjZDNi
YjY5ZmU2ZTU4NWUxYjNkZTA0Li4wMGU3MjU2ZDhkOWJmNTljODkyNmUxZDY0Y2NmYmEwYmExNmE1
ZDcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLXNpZGViYXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9l
eHRlbnNpb25zLXNpZGViYXIuaHRtbApAQCAtOCwxNCArOCwyOCBAQCBmdW5jdGlvbiBpbml0aWFs
aXplX2V4dGVuc2lvbnNTaWRlYmFyVGVzdCgpCiB7CiAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2lk
ZWJhckNvbnRlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHZhciBzaWRl
YmFyUGFuZXMgPSBXZWJJbnNwZWN0b3IucGFuZWwoImVsZW1lbnRzIikuc2lkZWJhclBhbmVzOwot
ICAgICAgICAvLyB0aGUgc2lkZWJhciBvZiBpbnRlcmVzdCBpcyBwcmVzdW1lZCB0byBhbHdheXMg
YmUgbGFzdC4KLSAgICAgICAgdmFyIHNpZGViYXIgPSBzaWRlYmFyUGFuZXNbT2JqZWN0LmtleXMo
c2lkZWJhclBhbmVzKS5wb3AoKV07CisgICAgICAgIHZhciBzaWRlYmFyID0gSW5zcGVjdG9yVGVz
dC5fZXh0ZW5zaW9uU2lkZWJhcigpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVu
ZGluZ0Rpc3BhdGNoZXMoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiU2lkZWJhciBjb250ZW50OiAiICsgc2lkZWJhci5ib2R5RWxlbWVudC50ZXh0Q29u
dGVudCk7CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICB9KTsKICAgICB9CisKKyAg
ICBJbnNwZWN0b3JUZXN0LmV4cGFuZFNpZGViYXIgPSBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7
CisgICAgICAgIHZhciBzaWRlYmFyID0gSW5zcGVjdG9yVGVzdC5fZXh0ZW5zaW9uU2lkZWJhcigp
OworICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBzaWRlYmFyLmV4cGFuZCgpOworICAgICAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5fZXh0ZW5zaW9u
U2lkZWJhciA9IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBzaWRlYmFyUGFuZXMgPSBX
ZWJJbnNwZWN0b3IucGFuZWwoImVsZW1lbnRzIikuc2lkZWJhclBhbmVzOworICAgICAgICAvLyB0
aGUgc2lkZWJhciBvZiBpbnRlcmVzdCBpcyBwcmVzdW1lZCB0byBhbHdheXMgYmUgbGFzdC4KKyAg
ICAgICAgcmV0dXJuIHNpZGViYXJQYW5lc1tPYmplY3Qua2V5cyhzaWRlYmFyUGFuZXMpLnBvcCgp
XTsKKyAgICB9CiB9CiAKIGZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0U2lkZWJhclNldFBhZ2UobmV4
dFRlc3QpCkBAIC0zMiw3ICs0Niw3IEBAIGZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0U2lkZWJhclNl
dFBhZ2UobmV4dFRlc3QpCiAgICAgICAgIHNpZGViYXIub25TaG93bi5hZGRMaXN0ZW5lcihvblNo
b3duKTsKICAgICAgICAgdmFyIGJhc2VQYXRoID0gbG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgv
XC9bXi9dKiQvLCAiLyIpOwogICAgICAgICBzaWRlYmFyLnNldFBhZ2UoYmFzZVBhdGggKyAiZXh0
ZW5zaW9uLXNpZGViYXIuaHRtbCIpOwotICAgICAgICBleHRlbnNpb25fc2hvd1BhbmVsKCJlbGVt
ZW50cyIpOworICAgICAgICBleHRlbnNpb25fc2hvd1BhbmVsKCJlbGVtZW50cyIsIGV4dGVuc2lv
bl9leHBhbmRTaWRlYmFyKTsKICAgICB9CiAgICAgd2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50
cy5jcmVhdGVTaWRlYmFyUGFuZSgiVGVzdCBTaWRlYmFyIiwgb25TaWRlYmFyQ3JlYXRlZCk7CiB9
CkBAIC00Miw2ICs1NiwxMSBAQCBmdW5jdGlvbiBleHRlbnNpb25fZHVtcFNpZGViYXJDb250ZW50
KG5leHRUZXN0KQogICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5kdW1wU2lk
ZWJhckNvbnRlbnQocmVwbHkpOyIsIG5leHRUZXN0KTsKIH0KIAorZnVuY3Rpb24gZXh0ZW5zaW9u
X2V4cGFuZFNpZGViYXIoY2FsbGJhY2spCit7CisgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNw
ZWN0b3JUZXN0LmV4cGFuZFNpZGViYXIocmVwbHkpOyIsIGNhbGxiYWNrKTsKK30KKwogZnVuY3Rp
b24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0T2JqZWN0KG5leHRUZXN0KQogewogICAgIGZ1bmN0
aW9uIG9uU2lkZWJhckNyZWF0ZWQoc2lkZWJhcikKQEAgLTEwNSw3ICsxMjQsNyBAQCBmdW5jdGlv
biBleHRlbnNpb25fdGVzdFNpZGViYXJQYWdlUmVwbGFjZWRXaXRoT2JqZWN0KG5leHRUZXN0KQog
ICAgICAgICAgc2lkZWJhciA9IGFTaWRlYmFyOwogICAgICAgICAgc2lkZWJhci5vblNob3duLmFk
ZExpc3RlbmVyKG9uU2hvd24pOwogICAgICAgICAgc2lkZWJhci5zZXRQYWdlKGJhc2VQYXRoICsg
ImV4dGVuc2lvbi1zaWRlYmFyLmh0bWwiKTsKLSAgICAgICAgIGV4dGVuc2lvbl9zaG93UGFuZWwo
ImVsZW1lbnRzIik7CisgICAgICAgICBleHRlbnNpb25fc2hvd1BhbmVsKCJlbGVtZW50cyIsIGV4
dGVuc2lvbl9leHBhbmRTaWRlYmFyKTsKICAgICAgfQogICAgICB2YXIgZGlkU2V0T2JqZWN0ID0g
ZmFsc2U7CiAgICAgIGZ1bmN0aW9uIG9uU2hvd24oZnJhbWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186050</attachid>
            <date>2013-02-01 08:07:55 -0800</date>
            <delta_ts>2013-02-04 08:37:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108183-20130201200437.patch</filename>
            <type>text/plain</type>
            <size>48601</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFjOWI5YzY3OGM2YWYx
OWRiM2EzM2FjZjk3ZTkzNTA4OWIyZTYxMi4uNzg0NmQyNzM3MDBiZTI0Y2Q4NjQ3YmUzNDk5NGEz
Zjg0MjUzYTczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEzLTAyLTAxICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENyZWF0ZSBhIGNvbnRhaW5lciBjbGFzcyBmb3IgU2lkZWJhclBhbmUgaW5z
dGFuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDgxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
aWRlYmFyUGFuZVN0YWNrIGlzIHJlc3BvbnNpYmxlIGZvciBwYW5lIHRpdGxlIGJhciBhbmQgZXhw
YW5kL2NvbGxhcHNlIGJlaGF2aW9yIChwcmV2aW91c2x5IGhhbmRsZWQgYnkgU2lkZWJhclBhbmUp
LgorICAgICAgICBTaWRlYmFyUGFuZXMgYXJlIGluc2VydGVkIGludG8gRE9NIGxhemlseSBhbmQg
Y2FuIGJlbG9uZyB0byBtb3JlIHRoYW4gb25lIGNvbnRhaW5lci4KKyAgICAgICAgU2lkZWJhclBh
bmUgaXMgcmVhZHkgdG8gYmUgZGlzcGxheWVkIGluIG90aGVyIHR5cGVzIG9mIGNvbnRhaW5lcnMg
KHN1Y2ggYXMgdGFiYmVkIHBhbmUgYXMgcmVxdWVzdGVkIGluIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1NTIpLgorICAgICAgICBUaGVyZSBzaG91bGQgYmUgbm8g
dmlzaWJsZSBjaGFuZ2VzIGV4Y2VwdCBmb3Igb25lOiBET00gYnJlYWtwb2ludCBwYW5lIGV4cGFu
ZC9jb2xsYXBzZSBzdGF0ZSBpcyBubyBsb25nZXIKKyAgICAgICAgc2hhcmVkIGJldHdlZW4gRWxl
bWVudHMgYW5kIFNvdXJjZXMgc2lkZWJhcnMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UmVzdWx0Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJlc3Vs
dFZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFy
UGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRl
YmFyUGFuZS5wcm90b3R5cGUuX2FkZEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlhIUkJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLmhpZ2hsaWdodEJyZWFrcG9pbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVha3BvaW50c1NpZGViYXJQ
YW5lLnByb3RvdHlwZS5oaWdobGlnaHRCcmVha3BvaW50KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuaGlnaGxpZ2h0QnJlYWtw
b2ludCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS51cGRhdGVTdHlsZXMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZU1ldHJpY3MpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZVByb3BlcnRpZXMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZUV2
ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBh
bmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNpZGViYXJQYW5lKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkNyZWF0ZVNpZGViYXJQ
YW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBh
bmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZS50aXRsZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBlLnByZXBhcmVDb250
ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUuZXhwYW5k
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUub25Db250ZW50
UmVhZHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZS5zZXRF
eHBhbmRDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90
eXBlLnNldFNob3dDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUu
cHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0
YWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZS53
YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5
cGUuYWRkUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90
b3R5cGUuX2FkZFRpdGxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNr
LnByb3RvdHlwZS5fYXR0YWNoVG9QYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFy
UGFuZVN0YWNrLnByb3RvdHlwZS5faXNFeHBhbmRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUuX3NldEV4cGFuZGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZS5fb25QYW5lRXhwYW5kZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJvdG90eXBlLl9jb2xsYXBzZVBh
bmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJvdG90eXBlLl90
b2dnbGVQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnByb3Rv
dHlwZS5fb25UaXRsZUtleURvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5
bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBh
bmUucHJvdG90eXBlLl9yZWZyZXNoVXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHls
ZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX3JlYnVpbGRVcGRhdGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZS5zZXQgX2NyZWF0ZU5ld1J1bGUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVTaWRlYmFyUGFuZS5wcm90b3R5cGUu
cHJlcGFyZUNvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHBy
ZXNzaW9uc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVz
c2lvbnNTaWRlYmFyUGFuZS5wcm90b3R5cGUuYWRkRXhwcmVzc2lvbik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLnByb3RvdHlwZS5fYWRkQnV0dG9u
Q2xpY2tlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgor
ICAgICAgICAoLnBhbmUtdGl0bGUgKyAucGFuZS10aXRsZSwgLnBhbmU6bm90KC52aXNpYmxlKSAr
IC5wYW5lLXRpdGxlLCAucGFuZS10aXRsZTpmaXJzdC1vZi10eXBlKToKKyAgICAgICAgKC5wYW5l
LXRpdGxlKToKKyAgICAgICAgKC5wYW5lLXRpdGxlOmFjdGl2ZSk6CisgICAgICAgICgucGFuZS10
aXRsZTo6YmVmb3JlKToKKyAgICAgICAgKC5wYW5lLXRpdGxlLmV4cGFuZGVkOjpiZWZvcmUpOgor
ICAgICAgICAoLnBhbmUtdGl0bGUgPiBzZWxlY3QpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiBz
ZWxlY3Q6aG92ZXIpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiBzZWxlY3Q6YWN0aXZlKToKKyAg
ICAgICAgKC5wYW5lLXRpdGxlID4gc2VsZWN0LnNlbGVjdC1zZXR0aW5ncyk6CisgICAgICAgICgu
cGFuZS10aXRsZSA+IHNlbGVjdC5zZWxlY3QtZmlsdGVyKToKKyAgICAgICAgKC5wYW5lLXRpdGxl
ID4gc2VsZWN0ID4gb3B0aW9uLCAucGFuZS10aXRsZSA+IHNlbGVjdCA+IGhyKToKKyAgICAgICAg
KC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uKToKKyAgICAgICAgKC5wYW5lLXRpdGxl
ID4gLnBhbmUtdGl0bGUtYnV0dG9uOmhvdmVyKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gLnBh
bmUtdGl0bGUtYnV0dG9uOmFjdGl2ZSwgLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24u
dG9nZ2xlZCk6CisgICAgICAgICgucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5hZGQp
OgorICAgICAgICAoLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24uZWxlbWVudC1zdGF0
ZSk6CisgICAgICAgICgucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5yZWZyZXNoKToK
KyAgICAgICAgKC5wYW5lLnZpc2libGUgPiAuYm9keSk6CisgICAgICAgICgucGFuZS52aXNpYmxl
Om50aC1sYXN0LW9mLXR5cGUoMSkpOgorICAgICAgICAoLnBhbmVsLWVuYWJsZXItdmlldyBidXR0
b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZS10aXRsZS1idXR0b24sIGJ1dHRvbi5zaG93
LWFsbC1ub2Rlcyk6CisgICAgICAgICgucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjphY3RpdmU6
bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZS10aXRsZS1idXR0b246YWN0aXZlLCBidXR0b24u
c2hvdy1hbGwtbm9kZXM6YWN0aXZlKToKKyAgICAgICAgKGJvZHkuaW5hY3RpdmUgLnBhbmVsLWVu
YWJsZXItdmlldyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZWwtZW5hYmxlci12
aWV3IGJ1dHRvbjpkaXNhYmxlZDpub3QoLnN0YXR1cy1iYXItaXRlbSksIGJvZHkuaW5hY3RpdmUg
LnBhbmUtdGl0bGUtYnV0dG9uLCAucGFuZS10aXRsZS1idXR0b246ZGlzYWJsZWQsIGJvZHkuaW5h
Y3RpdmUgYnV0dG9uLnNob3ctYWxsLW5vZGVzKToKKwogMjAxMy0wMS0zMSAgQW5kcmV5IEFkYWlr
aW4gIDxhYW5kcmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbUHJv
ZmlsZXNdIHNob3cgbGF1bmNoZXIgdmlldyB1cG9uIGRlbGV0aW5nIGxhc3QgcHJvZmlsZSB0eXBl
J3MgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0F1ZGl0UmVzdWx0Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
QXVkaXRSZXN1bHRWaWV3LmpzCmluZGV4IGYyODBlZjY0MzMyOWYxNGExNmI1ZTQzODg2YjI5ODQ2
ZmQ3MTIxNWQuLjQ0ZjM3OGMyYTBmMDkwZmIxOWZiYThhMzIxODJlZGMzMjFjMWQ3OTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSZXN1bHRWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSZXN1bHRW
aWV3LmpzCkBAIC0zMCwyNCArMzAsMjQgQEAKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30KKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2lk
ZWJhclBhbmVTdGFja30KICAqIEBwYXJhbSB7IUFycmF5LjwhV2ViSW5zcGVjdG9yLkF1ZGl0Q2F0
ZWdvcnlSZXN1bHQ+fSBjYXRlZ29yeVJlc3VsdHMKICAqLwogV2ViSW5zcGVjdG9yLkF1ZGl0UmVz
dWx0VmlldyA9IGZ1bmN0aW9uKGNhdGVnb3J5UmVzdWx0cykKIHsKLSAgICBXZWJJbnNwZWN0b3Iu
Vmlldy5jYWxsKHRoaXMpOwotICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAiYXVkaXQtcmVz
dWx0LXZpZXciOworICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLmNhbGwodGhpcyk7
CisgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImF1ZGl0LXJlc3VsdC12aWV3Iik7CiAK
ICAgICBmdW5jdGlvbiBjYXRlZ29yeVNvcnRlcihhLCBiKSB7CiAgICAgICAgIHJldHVybiAoYS50
aXRsZSB8fCAiIikubG9jYWxlQ29tcGFyZShiLnRpdGxlIHx8ICIiKTsKICAgICB9CiAgICAgY2F0
ZWdvcnlSZXN1bHRzLnNvcnQoY2F0ZWdvcnlTb3J0ZXIpOwogICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgY2F0ZWdvcnlSZXN1bHRzLmxlbmd0aDsgKytpKQotICAgICAgICBuZXcgV2ViSW5zcGVjdG9y
LkF1ZGl0Q2F0ZWdvcnlSZXN1bHRQYW5lKGNhdGVnb3J5UmVzdWx0c1tpXSkuc2hvdyh0aGlzLmVs
ZW1lbnQpOworICAgICAgICB0aGlzLmFkZFBhbmUobmV3IFdlYkluc3BlY3Rvci5BdWRpdENhdGVn
b3J5UmVzdWx0UGFuZShjYXRlZ29yeVJlc3VsdHNbaV0pKTsKIH0KIAogV2ViSW5zcGVjdG9yLkF1
ZGl0UmVzdWx0Vmlldy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0
YWNrLnByb3RvdHlwZQogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwppbmRleCBmMjBh
YjVkOTM1YWE0ZmY2MTY1OGRkODJiYjVhMmVjMmQ4ZGYxYzBiLi5hYTQ3NzgzZGFlNjIyNDZkMDg0
N2UzNDc4NDU1MWM3NmFhZjM5ZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCkBAIC0xMzAs
OCArMTMwLDcgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5l
LnByb3RvdHlwZSA9IHsKICAgICAgICAgYnJlYWtwb2ludEl0ZW0uY2hlY2tib3ggPSBjaGVja2Jv
eDsKICAgICAgICAgdGhpcy5faXRlbXMucHV0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnRJdGVtKTsK
IAotICAgICAgICBpZiAoIXRoaXMuZXhwYW5kZWQpCi0gICAgICAgICAgICB0aGlzLmV4cGFuZGVk
ID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5leHBhbmQoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0z
MDUsNyArMzA0LDcgQEAgV2ViSW5zcGVjdG9yLlhIUkJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJv
dG90eXBlID0gewogICAgICAgICBpZiAoZXZlbnQpCiAgICAgICAgICAgICBldmVudC5jb25zdW1l
KCk7CiAKLSAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CisgICAgICAgIHRoaXMuZXhwYW5k
KCk7CiAKICAgICAgICAgdmFyIGlucHV0RWxlbWVudENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInAiKTsKICAgICAgICAgaW5wdXRFbGVtZW50Q29udGFpbmVyLmNsYXNzTmFtZSA9
ICJicmVha3BvaW50LWNvbmRpdGlvbiI7CkBAIC00MzgsNyArNDM3LDcgQEAgV2ViSW5zcGVjdG9y
LlhIUkJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgZWxl
bWVudCA9IHRoaXMuX2JyZWFrcG9pbnRFbGVtZW50c1t1cmxdOwogICAgICAgICBpZiAoIWVsZW1l
bnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlOwor
ICAgICAgICB0aGlzLmV4cGFuZCgpOwogICAgICAgICBlbGVtZW50LmFkZFN0eWxlQ2xhc3MoImJy
ZWFrcG9pbnQtaGl0Iik7CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVkRWxlbWVudCA9IGVsZW1l
bnQ7CiAgICAgfSwKQEAgLTYzNiw3ICs2MzUsNyBAQCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5l
ckJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgYnJlYWtw
b2ludEl0ZW0gPSB0aGlzLl9icmVha3BvaW50SXRlbXNbZXZlbnROYW1lXTsKICAgICAgICAgaWYg
KCFicmVha3BvaW50SXRlbSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5leHBh
bmRlZCA9IHRydWU7CisgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAgICAgICAgIGJyZWFrcG9pbnRJ
dGVtLnBhcmVudC5lbGVtZW50LmV4cGFuZCgpOwogICAgICAgICBicmVha3BvaW50SXRlbS5lbGVt
ZW50Lmxpc3RJdGVtRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJicmVha3BvaW50LWhpdCIpOwogICAg
ICAgICB0aGlzLl9oaWdobGlnaHRlZEVsZW1lbnQgPSBicmVha3BvaW50SXRlbS5lbGVtZW50Lmxp
c3RJdGVtRWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwppbmRleCBhZGJiNDdj
ZWRlZTQwYTU2Y2NmYTcyZGM1Mjc1NjA4N2U4OGNkMzIzLi5hZDA1YWE4N2Y5NDdlYWU2YjQwZmY5
ODUyNzA3ODExZGFmMWM4NjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCkBAIC0y
NjIsNyArMjYyLDcgQEAgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJv
dG90eXBlID0gewogICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMuX2JyZWFrcG9pbnRFbGVtZW50
c1ticmVha3BvaW50SWRdOwogICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlOworICAgICAgICB0aGlzLmV4cGFuZCgp
OwogICAgICAgICBlbGVtZW50LmFkZFN0eWxlQ2xhc3MoImJyZWFrcG9pbnQtaGl0Iik7CiAgICAg
ICAgIHRoaXMuX2hpZ2hsaWdodGVkRWxlbWVudCA9IGVsZW1lbnQ7CiAgICAgfSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRl
eCA2ZDI3MDY1NTQxYTljYjlkNzVjMGQyZTBjY2ZmZmFkMzgxOGUxMGYyLi5kYjQzZjg2NzE0YWJk
Y2YyNTA3OTFiNDBiODk4MjE2NmFjZDllZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC04NiwxOSArODYsMjEgQEAg
V2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5zaWRlYmFy
UGFuZXMuZG9tQnJlYWtwb2ludHMgPSBXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2ludHNTaWRlYmFy
UGFuZTsKICAgICB0aGlzLnNpZGViYXJQYW5lcy5ldmVudExpc3RlbmVycyA9IG5ldyBXZWJJbnNw
ZWN0b3IuRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZSgpOwogCi0gICAgdGhpcy5zaWRlYmFyUGFu
ZXMuc3R5bGVzLm9uZXhwYW5kID0gdGhpcy51cGRhdGVTdHlsZXMuYmluZCh0aGlzKTsKLSAgICB0
aGlzLnNpZGViYXJQYW5lcy5tZXRyaWNzLm9uZXhwYW5kID0gdGhpcy51cGRhdGVNZXRyaWNzLmJp
bmQodGhpcyk7Ci0gICAgdGhpcy5zaWRlYmFyUGFuZXMucHJvcGVydGllcy5vbmV4cGFuZCA9IHRo
aXMudXBkYXRlUHJvcGVydGllcy5iaW5kKHRoaXMpOwotICAgIHRoaXMuc2lkZWJhclBhbmVzLmV2
ZW50TGlzdGVuZXJzLm9uZXhwYW5kID0gdGhpcy51cGRhdGVFdmVudExpc3RlbmVycy5iaW5kKHRo
aXMpOworICAgIHRoaXMuc2lkZWJhclBhbmVzLnN0eWxlcy5zZXRTaG93Q2FsbGJhY2sodGhpcy51
cGRhdGVTdHlsZXMuYmluZCh0aGlzKSk7CisgICAgdGhpcy5zaWRlYmFyUGFuZXMubWV0cmljcy5z
ZXRTaG93Q2FsbGJhY2sodGhpcy51cGRhdGVNZXRyaWNzLmJpbmQodGhpcykpOworICAgIHRoaXMu
c2lkZWJhclBhbmVzLnByb3BlcnRpZXMuc2V0U2hvd0NhbGxiYWNrKHRoaXMudXBkYXRlUHJvcGVy
dGllcy5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLnNpZGViYXJQYW5lcy5ldmVudExpc3RlbmVycy5z
ZXRTaG93Q2FsbGJhY2sodGhpcy51cGRhdGVFdmVudExpc3RlbmVycy5iaW5kKHRoaXMpKTsKIAot
ICAgIHRoaXMuc2lkZWJhclBhbmVzLnN0eWxlcy5leHBhbmRlZCA9IHRydWU7CisgICAgdGhpcy5z
aWRlYmFyUGFuZXMuc3R5bGVzLmV4cGFuZCgpOwogCiAgICAgdGhpcy5zaWRlYmFyUGFuZXMuc3R5
bGVzLmFkZEV2ZW50TGlzdGVuZXIoInN0eWxlIGVkaXRlZCIsIHRoaXMuX3N0eWxlc1BhbmVFZGl0
ZWQsIHRoaXMpOwogICAgIHRoaXMuc2lkZWJhclBhbmVzLnN0eWxlcy5hZGRFdmVudExpc3RlbmVy
KCJzdHlsZSBwcm9wZXJ0eSB0b2dnbGVkIiwgdGhpcy5fc3R5bGVzUGFuZUVkaXRlZCwgdGhpcyk7
CiAgICAgdGhpcy5zaWRlYmFyUGFuZXMubWV0cmljcy5hZGRFdmVudExpc3RlbmVyKCJtZXRyaWNz
IGVkaXRlZCIsIHRoaXMuX21ldHJpY3NQYW5lRWRpdGVkLCB0aGlzKTsKIAorICAgIHRoaXMuc2lk
ZWJhclBhbmVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrKCk7CiAgICAg
Zm9yICh2YXIgcGFuZSBpbiB0aGlzLnNpZGViYXJQYW5lcykKLSAgICAgICAgdGhpcy5zaWRlYmFy
UGFuZXNbcGFuZV0uc2hvdyh0aGlzLnNpZGViYXJFbGVtZW50KTsKKyAgICAgICAgdGhpcy5zaWRl
YmFyUGFuZVZpZXcuYWRkUGFuZSh0aGlzLnNpZGViYXJQYW5lc1twYW5lXSk7CisgICAgdGhpcy5z
aWRlYmFyUGFuZVZpZXcuc2hvdyh0aGlzLnNpZGViYXJFbGVtZW50KTsKIAogICAgIHRoaXMuX3Bv
cG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIodGhpcy5lbGVtZW50
LCB0aGlzLl9nZXRQb3BvdmVyQW5jaG9yLmJpbmQodGhpcyksIHRoaXMuX3Nob3dQb3BvdmVyLmJp
bmQodGhpcykpOwogICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuc2V0VGltZW91dCgwKTsKQEAgLTE0
Myw4ICsxNDUsNiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAK
ICAgICAgICAgaWYgKCF0aGlzLnRyZWVPdXRsaW5lLnJvb3RET01Ob2RlKQogICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LnJlcXVlc3REb2N1bWVudCgpOwotCi0gICAgICAgIHRoaXMu
c2lkZWJhclBhbmVzLmRvbUJyZWFrcG9pbnRzLnNob3codGhpcy5zaWRlYmFyRWxlbWVudCwgdGhp
cy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMuZWxlbWVudCk7CiAgICAgfSwKIAogICAgIHdp
bGxIaWRlOiBmdW5jdGlvbigpCkBAIC05NzMsNyArOTczLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1l
bnRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIHN0eWxlc1NpZGViYXJQ
YW5lID0gdGhpcy5zaWRlYmFyUGFuZXMuc3R5bGVzOwogICAgICAgICB2YXIgY29tcHV0ZWRTdHls
ZVBhbmUgPSB0aGlzLnNpZGViYXJQYW5lcy5jb21wdXRlZFN0eWxlOwotICAgICAgICBpZiAoKCFz
dHlsZXNTaWRlYmFyUGFuZS5leHBhbmRlZCAmJiAhY29tcHV0ZWRTdHlsZVBhbmUuZXhwYW5kZWQp
IHx8ICFzdHlsZXNTaWRlYmFyUGFuZS5uZWVkc1VwZGF0ZSkKKyAgICAgICAgaWYgKCghc3R5bGVz
U2lkZWJhclBhbmUuaXNTaG93aW5nKCkgJiYgIWNvbXB1dGVkU3R5bGVQYW5lLmlzU2hvd2luZygp
KSB8fCAhc3R5bGVzU2lkZWJhclBhbmUubmVlZHNVcGRhdGUpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgc3R5bGVzU2lkZWJhclBhbmUudXBkYXRlKHRoaXMuc2VsZWN0ZWRET01Ob2Rl
KCksIGZvcmNlVXBkYXRlKTsKQEAgLTk4Myw3ICs5ODMsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgdXBkYXRlTWV0cmljczogZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgdmFyIG1ldHJpY3NTaWRlYmFyUGFuZSA9IHRoaXMuc2lkZWJhclBhbmVzLm1l
dHJpY3M7Ci0gICAgICAgIGlmICghbWV0cmljc1NpZGViYXJQYW5lLmV4cGFuZGVkIHx8ICFtZXRy
aWNzU2lkZWJhclBhbmUubmVlZHNVcGRhdGUpCisgICAgICAgIGlmICghbWV0cmljc1NpZGViYXJQ
YW5lLmlzU2hvd2luZygpIHx8ICFtZXRyaWNzU2lkZWJhclBhbmUubmVlZHNVcGRhdGUpCiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgbWV0cmljc1NpZGViYXJQYW5lLnVwZGF0ZSh0aGlz
LnNlbGVjdGVkRE9NTm9kZSgpKTsKQEAgLTk5Myw3ICs5OTMsNyBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgdXBkYXRlUHJvcGVydGllczogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgdmFyIHByb3BlcnRpZXNTaWRlYmFyUGFuZSA9IHRoaXMuc2lkZWJh
clBhbmVzLnByb3BlcnRpZXM7Ci0gICAgICAgIGlmICghcHJvcGVydGllc1NpZGViYXJQYW5lLmV4
cGFuZGVkIHx8ICFwcm9wZXJ0aWVzU2lkZWJhclBhbmUubmVlZHNVcGRhdGUpCisgICAgICAgIGlm
ICghcHJvcGVydGllc1NpZGViYXJQYW5lLmlzU2hvd2luZygpIHx8ICFwcm9wZXJ0aWVzU2lkZWJh
clBhbmUubmVlZHNVcGRhdGUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgcHJvcGVy
dGllc1NpZGViYXJQYW5lLnVwZGF0ZSh0aGlzLnNlbGVjdGVkRE9NTm9kZSgpKTsKQEAgLTEwMDMs
NyArMTAwMyw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICB1cGRhdGVFdmVudExpc3RlbmVyczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIGV2
ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUgPSB0aGlzLnNpZGViYXJQYW5lcy5ldmVudExpc3RlbmVy
czsKLSAgICAgICAgaWYgKCFldmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmV4cGFuZGVkIHx8ICFl
dmVudExpc3RlbmVyc1NpZGViYXJQYW5lLm5lZWRzVXBkYXRlKQorICAgICAgICBpZiAoIWV2ZW50
TGlzdGVuZXJzU2lkZWJhclBhbmUuaXNTaG93aW5nKCkgfHwgIWV2ZW50TGlzdGVuZXJzU2lkZWJh
clBhbmUubmVlZHNVcGRhdGUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgZXZlbnRM
aXN0ZW5lcnNTaWRlYmFyUGFuZS51cGRhdGUodGhpcy5zZWxlY3RlZERPTU5vZGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVs
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5q
cwppbmRleCAwNDNiY2MxNjI0NGZhYTJhODE1ZWYwYTBlNWEzMWZjYmFhOThhMmNjLi4wOWE0ZDZi
MTk1N2QwNmFjNTU5ODcwYmJkY2ViNTZkMjUzODZjYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKQEAgLTE0MCw2ICsx
NDAsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uQnV0dG9uLnByb3RvdHlwZSA9IHsKIFdlYklu
c3BlY3Rvci5FeHRlbnNpb25TaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKHRpdGxlLCBpZCkKIHsKICAg
ICBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUuY2FsbCh0aGlzLCB0aXRsZSk7CisgICAgdGhpcy5z
ZXRIaWRlT25EZXRhY2goKTsKICAgICB0aGlzLl9pZCA9IGlkOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCmluZGV4
IDc2OGI4NjFhNmQ1NmU1MDczNmQwYWE4NmI2ZGFjNGY3MWYzMzE5MzIuLmMxMTYxYmUyOGQxNjhk
NDQ2MTgzZjc1MWE1YmM5ZTQyMjI5Yjk2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC0yMzEsMTMgKzIzMSwx
MyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVsKG1lc3NhZ2UucGFuZWwpOwogICAgICAgICBp
ZiAoIXBhbmVsKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cy5FX05PVEZPVU5EKG1l
c3NhZ2UucGFuZWwpOwotICAgICAgICBpZiAoIXBhbmVsLnNpZGViYXJFbGVtZW50IHx8ICFwYW5l
bC5zaWRlYmFyUGFuZXMpCisgICAgICAgIGlmICghcGFuZWwuc2lkZWJhclBhbmVWaWV3IHx8ICFw
YW5lbC5zaWRlYmFyUGFuZXMpCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzLkVfTk9U
U1VQUE9SVEVEKCk7CiAgICAgICAgIHZhciBpZCA9IG1lc3NhZ2UuaWQ7CiAgICAgICAgIHZhciBz
aWRlYmFyID0gbmV3IFdlYkluc3BlY3Rvci5FeHRlbnNpb25TaWRlYmFyUGFuZShtZXNzYWdlLnRp
dGxlLCBtZXNzYWdlLmlkKTsKICAgICAgICAgdGhpcy5fY2xpZW50T2JqZWN0c1tpZF0gPSBzaWRl
YmFyOwogICAgICAgICBwYW5lbC5zaWRlYmFyUGFuZXNbaWRdID0gc2lkZWJhcjsKLSAgICAgICAg
c2lkZWJhci5zaG93KHBhbmVsLnNpZGViYXJFbGVtZW50KTsKKyAgICAgICAgcGFuZWwuc2lkZWJh
clBhbmVWaWV3LmFkZFBhbmUoc2lkZWJhcik7CiAKICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1
cy5PSygpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGE1M2UwMDRmYzQxNjJkYTQzMDdhMTk0MTQ5ZTZmMjNl
N2YyNjRiZGIuLmUzY2ZiNTA3NzcwNjEyYjk4ZjM2M2ViYWJmZTc1ZmJiOWIxY2VhZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CkBAIC0xMjIsMjAgKzEyMiwxNSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rp
b24od29ya3NwYWNlRm9yVGVzdCkKICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMud29ya2VyTGlz
dCA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5lKFdlYkluc3BlY3Rvci53b3Jr
ZXJNYW5hZ2VyKTsKICAgICB9CiAKLSAgICB0aGlzLl9kZWJ1Z1NpZGViYXJDb250ZW50c0VsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLl9kZWJ1Z1NpZGVi
YXJDb250ZW50c0VsZW1lbnQuaWQgPSAic2NyaXB0cy1kZWJ1Zy1zaWRlYmFyLWNvbnRlbnRzIjsK
LSAgICB0aGlzLnNpZGViYXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RlYnVnU2lkZWJhckNv
bnRlbnRzRWxlbWVudCk7Ci0KLSAgICBmb3IgKHZhciBwYW5lIGluIHRoaXMuc2lkZWJhclBhbmVz
KSB7Ci0gICAgICAgIGlmICh0aGlzLnNpZGViYXJQYW5lc1twYW5lXSA9PT0gdGhpcy5zaWRlYmFy
UGFuZXMuZG9tQnJlYWtwb2ludHMpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgdGhp
cy5zaWRlYmFyUGFuZXNbcGFuZV0uc2hvdyh0aGlzLl9kZWJ1Z1NpZGViYXJDb250ZW50c0VsZW1l
bnQpOwotICAgIH0KLQotICAgIHRoaXMuc2lkZWJhclBhbmVzLmNhbGxzdGFjay5leHBhbmRlZCA9
IHRydWU7CisgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlNpZGVi
YXJQYW5lU3RhY2soKTsKKyAgICB0aGlzLnNpZGViYXJQYW5lVmlldy5lbGVtZW50LmlkID0gInNj
cmlwdHMtZGVidWctc2lkZWJhci1jb250ZW50cyI7CisgICAgZm9yICh2YXIgcGFuZSBpbiB0aGlz
LnNpZGViYXJQYW5lcykKKyAgICAgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcuYWRkUGFuZSh0aGlz
LnNpZGViYXJQYW5lc1twYW5lXSk7CisgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcuc2hvdyh0aGlz
LnNpZGViYXJFbGVtZW50KTsKIAotICAgIHRoaXMuc2lkZWJhclBhbmVzLnNjb3BlY2hhaW4uZXhw
YW5kZWQgPSB0cnVlOwotICAgIHRoaXMuc2lkZWJhclBhbmVzLmpzQnJlYWtwb2ludHMuZXhwYW5k
ZWQgPSB0cnVlOworICAgIHRoaXMuc2lkZWJhclBhbmVzLmNhbGxzdGFjay5leHBhbmQoKTsKKyAg
ICB0aGlzLnNpZGViYXJQYW5lcy5zY29wZWNoYWluLmV4cGFuZCgpOworICAgIHRoaXMuc2lkZWJh
clBhbmVzLmpzQnJlYWtwb2ludHMuZXhwYW5kKCk7CiAKICAgICB0aGlzLnNpZGViYXJQYW5lcy5j
YWxsc3RhY2sucmVnaXN0ZXJTaG9ydGN1dHModGhpcy5yZWdpc3RlclNob3J0Y3V0cy5iaW5kKHRo
aXMpKTsKICAgICB0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5FdmFsdWF0ZVNlbGVjdGlvbkluQ29uc29sZSwgdGhp
cy5fZXZhbHVhdGVTZWxlY3Rpb25JbkNvbnNvbGUuYmluZCh0aGlzKSk7CkBAIC0yMTUsOCArMjEw
LDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgd2FzU2hv
d246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5
cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKLSAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuZG9tQnJl
YWtwb2ludHMuc2hvdyh0aGlzLl9kZWJ1Z1NpZGViYXJDb250ZW50c0VsZW1lbnQsIHRoaXMuc2lk
ZWJhclBhbmVzLnhockJyZWFrcG9pbnRzLmVsZW1lbnQpOwotCiAgICAgICAgIHRoaXMuX25hdmln
YXRvckNvbnRyb2xsZXIud2FzU2hvd24oKTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyUGFuZS5qcwppbmRleCBlZDNkYmEzYzZkZTEw
MTQ0NGI1YmE1YWNmNTViNDA5MmUzMWYzOGNjLi40NWEzOWE5YmU1MjFmNWIxM2E3MWViOTA1NTlk
ZWNiNWUxNDJmN2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2lkZWJhclBhbmUuanMKQEAgLTM1LDEwMyArMzUsMTkzIEBAIFdlYkluc3BlY3Rvci5TaWRl
YmFyUGFuZSA9IGZ1bmN0aW9uKHRpdGxlKQogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhp
cyk7CiAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJwYW5lIjsKIAotICAgIHRoaXMudGl0
bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy50aXRs
ZUVsZW1lbnQuY2xhc3NOYW1lID0gInRpdGxlIjsKLSAgICB0aGlzLnRpdGxlRWxlbWVudC50YWJJ
bmRleCA9IDA7Ci0gICAgdGhpcy50aXRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCB0aGlzLnRvZ2dsZUV4cGFuZGVkLmJpbmQodGhpcyksIGZhbHNlKTsKLSAgICB0aGlzLnRpdGxl
RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fb25UaXRsZUtleURvd24u
YmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMudGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRG9jdW1lbnRGcmFnbWVudCgpOworICAgIHRoaXMuYm9keUVsZW1lbnQgPSB0aGlzLmVsZW1l
bnQuY3JlYXRlQ2hpbGQoImRpdiIsICJib2R5Iik7CiAKLSAgICB0aGlzLmJvZHlFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5ib2R5RWxlbWVudC5jbGFz
c05hbWUgPSAiYm9keSI7CisgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTsKIAotICAgIHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLnRpdGxlRWxlbWVudCk7Ci0gICAgdGhpcy5lbGVtZW50LmFw
cGVuZENoaWxkKHRoaXMuYm9keUVsZW1lbnQpOwotCi0gICAgdGhpcy50aXRsZSA9IHRpdGxlOwot
ICAgIHRoaXMuZ3Jvd2JhclZpc2libGUgPSBmYWxzZTsKLSAgICB0aGlzLmV4cGFuZGVkID0gZmFs
c2U7CisgICAgdGhpcy5fZXhwYW5kQ2FsbGJhY2sgPSBudWxsOworICAgIHRoaXMuX3Nob3dDYWxs
YmFjayA9IG51bGw7CiB9CiAKIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7
Ci0gICAgZ2V0IHRpdGxlKCkKKyAgICB0aXRsZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
cmV0dXJuIHRoaXMuX3RpdGxlOwogICAgIH0sCiAKLSAgICBzZXQgdGl0bGUoeCkKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjaworICAgICAqLworICAgIHByZXBhcmVD
b250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90aXRs
ZSA9PT0geCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fdGl0bGUgPSB4Owot
ICAgICAgICB0aGlzLnRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHg7CisgICAgICAgIGNhbGxi
YWNrKCk7CiAgICAgfSwKIAotICAgIGdldCBncm93YmFyVmlzaWJsZSgpCisgICAgZXhwYW5kOiBm
dW5jdGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZ3Jvd2JhclZpc2libGU7Cisg
ICAgICAgIGlmICh0aGlzLl9leHBhbmRDYWxsYmFjaykKKyAgICAgICAgICAgIHRoaXMucHJlcGFy
ZUNvbnRlbnQodGhpcy5vbkNvbnRlbnRSZWFkeS5iaW5kKHRoaXMpKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGhpcy5fZXhwYW5kUGVuZGluZyA9IHRydWU7CiAgICAgfSwKIAotICAgIHNl
dCBncm93YmFyVmlzaWJsZSh4KQorICAgIG9uQ29udGVudFJlYWR5OiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBpZiAodGhpcy5fZ3Jvd2JhclZpc2libGUgPT09IHgpCi0gICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIHRoaXMuX2V4cGFuZENhbGxiYWNrKCk7CisgICAgfSwKIAotICAgICAg
ICB0aGlzLl9ncm93YmFyVmlzaWJsZSA9IHg7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5j
dGlvbn0gY2FsbGJhY2sKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIHNl
dEV4cGFuZENhbGxiYWNrOiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHRoaXMu
X2V4cGFuZENhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgICAgIHZhciBwZW5kaW5nID0gdGhpcy5f
ZXhwYW5kUGVuZGluZzsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2V4cGFuZFBlbmRpbmc7CisgICAg
ICAgIHJldHVybiBwZW5kaW5nOworICAgIH0sCiAKLSAgICAgICAgaWYgKHggJiYgIXRoaXMuX2dy
b3diYXJFbGVtZW50KSB7Ci0gICAgICAgICAgICB0aGlzLl9ncm93YmFyRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAgdGhpcy5fZ3Jvd2JhckVsZW1l
bnQuY2xhc3NOYW1lID0gImdyb3diYXIiOwotICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVu
ZENoaWxkKHRoaXMuX2dyb3diYXJFbGVtZW50KTsKLSAgICAgICAgfSBlbHNlIGlmICgheCAmJiB0
aGlzLl9ncm93YmFyRWxlbWVudCkgewotICAgICAgICAgICAgaWYgKHRoaXMuX2dyb3diYXJFbGVt
ZW50LnBhcmVudE5vZGUpCi0gICAgICAgICAgICAgICAgdGhpcy5fZ3Jvd2JhckVsZW1lbnQucGFy
ZW50Tm9kZSh0aGlzLl9ncm93YmFyRWxlbWVudCk7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5f
Z3Jvd2JhckVsZW1lbnQ7Ci0gICAgICAgIH0KKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Z1bmN0
aW9ufSBjYWxsYmFjaworICAgICAqLworICAgIHNldFNob3dDYWxsYmFjazogZnVuY3Rpb24oY2Fs
bGJhY2spCisgICAgeworICAgICAgICB0aGlzLl9zaG93Q2FsbGJhY2sgPSBjYWxsYmFjazsKICAg
ICB9LAogCi0gICAgZ2V0IGV4cGFuZGVkKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkOworICAgICAgICBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKKyAgICAgICAgaWYgKHRoaXMuX3No
b3dDYWxsYmFjaykKKyAgICAgICAgICAgIHRoaXMuX3Nob3dDYWxsYmFjaygpOwogICAgIH0sCiAK
LSAgICBzZXQgZXhwYW5kZWQoeCkKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5WaWV3LnBy
b3RvdHlwZQorfQorCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3Bl
Y3Rvci5WaWV3fQorICovCitXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjayA9IGZ1bmN0aW9u
KCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworICAgIHRoaXMuZWxlbWVu
dC5jbGFzc05hbWUgPSAic2lkZWJhci1wYW5lLXN0YWNrIGZpbGwiOworCisgICAgdGhpcy5fdGl0
bGVzID0gW107CisgICAgdGhpcy5fcGFuZXMgPSBbXTsKK30KKworV2ViSW5zcGVjdG9yLlNpZGVi
YXJQYW5lU3RhY2sucHJvdG90eXBlID0geworICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBpZiAoeCkKLSAgICAgICAgICAgIHRoaXMuZXhwYW5kKCk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZp
ZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdGhpcy5fcGFuZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0aGlzLl9hdHRhY2hU
b1BhbmUoaSk7CiAgICAgfSwKIAotICAgIGV4cGFuZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lfSBwYW5lCisgICAgICovCisgICAg
YWRkUGFuZTogZnVuY3Rpb24ocGFuZSkKKyAgICB7CisgICAgICAgIHZhciBpbmRleCA9IHRoaXMu
X3BhbmVzLmxlbmd0aDsgCisgICAgICAgIHRoaXMuX3BhbmVzLnB1c2gocGFuZSk7CisgICAgICAg
IHRoaXMuX2FkZFRpdGxlKHBhbmUsIGluZGV4KTsKKyAgICAgICAgaWYgKHRoaXMuaXNTaG93aW5n
KCkpCisgICAgICAgICAgICB0aGlzLl9hdHRhY2hUb1BhbmUoaW5kZXgpOworICAgIH0sCisKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TaWRlYmFyUGFuZX0gcGFuZQorICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAgICAqLworICAgIF9hZGRUaXRsZTogZnVuY3Rp
b24ocGFuZSwgaW5kZXgpCisgICAgeworICAgICAgICB2YXIgdGl0bGUgPSB0aGlzLmVsZW1lbnQu
Y3JlYXRlQ2hpbGQoImRpdiIsICJwYW5lLXRpdGxlIik7CisgICAgICAgIHRpdGxlLnRleHRDb250
ZW50ID0gcGFuZS50aXRsZSgpOworICAgICAgICB0aXRsZS50YWJJbmRleCA9IDA7CisgICAgICAg
IHRpdGxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlUGFuZS5iaW5kKHRo
aXMsIGluZGV4KSwgZmFsc2UpOworICAgICAgICB0aXRsZS5hZGRFdmVudExpc3RlbmVyKCJrZXlk
b3duIiwgdGhpcy5fb25UaXRsZUtleURvd24uYmluZCh0aGlzLCBpbmRleCksIGZhbHNlKTsKKyAg
ICAgICAgdGl0bGUuYXBwZW5kQ2hpbGQocGFuZS50aXRsZUVsZW1lbnQpOworICAgICAgICB0aGlz
Ll90aXRsZXMucHVzaCh0aXRsZSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7
bnVtYmVyfSBpbmRleAorICAgICAqLworICAgIF9hdHRhY2hUb1BhbmU6IGZ1bmN0aW9uKGluZGV4
KQorICAgIHsKKyAgICAgICAgdmFyIHBhbmUgPSB0aGlzLl9wYW5lc1tpbmRleF07CisgICAgICAg
IHZhciB0aXRsZSA9IHRoaXMuX3RpdGxlc1tpbmRleF07CisgICAgICAgIHZhciBleHBhbmRQZW5k
aW5nID0gcGFuZS5zZXRFeHBhbmRDYWxsYmFjayh0aGlzLl9vblBhbmVFeHBhbmRlZC5iaW5kKHRo
aXMsIGluZGV4KSk7CisgICAgICAgIHRoaXMuX3NldEV4cGFuZGVkKGluZGV4LCB0aGlzLl9pc0V4
cGFuZGVkKGluZGV4KSB8fCBleHBhbmRQZW5kaW5nKTsKKyAgICB9LAorCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtudW1iZXJ9IGluZGV4CisgICAgICovCisgICAgX2lzRXhwYW5kZWQ6IGZ1bmN0
aW9uKGluZGV4KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2V4cGFuZGVkKQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB0aGlzLl9leHBhbmRlZCA9IHRydWU7Ci0gICAgICAgIHRoaXMu
ZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJleHBhbmRlZCIpOwotICAgICAgICB0aGlzLm9uZXhwYW5k
KCk7CisgICAgICAgIHZhciB0aXRsZSA9IHRoaXMuX3RpdGxlc1tpbmRleF07CisgICAgICAgIHJl
dHVybiB0aXRsZS5oYXNTdHlsZUNsYXNzKCJleHBhbmRlZCIpOwogICAgIH0sCiAKLSAgICBvbmV4
cGFuZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAor
ICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gb24KKyAgICAgKi8KKyAgICBfc2V0RXhwYW5kZWQ6IGZ1
bmN0aW9uKGluZGV4LCBvbikKICAgICB7CisgICAgICAgIGlmIChvbikKKyAgICAgICAgICAgIHRo
aXMuX3BhbmVzW2luZGV4XS5wcmVwYXJlQ29udGVudCh0aGlzLl9vblBhbmVFeHBhbmRlZC5iaW5k
KHRoaXMsIGluZGV4KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2NvbGxhcHNl
UGFuZShpbmRleCk7CiAgICAgfSwKIAotICAgIGNvbGxhcHNlOiBmdW5jdGlvbigpCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4CisgICAgICovCisgICAgX29uUGFuZUV4cGFu
ZGVkOiBmdW5jdGlvbihpbmRleCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fZXhwYW5kZWQp
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuX2V4cGFuZGVkID0gZmFsc2U7Ci0g
ICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJleHBhbmRlZCIpOworICAgICAg
ICB2YXIgcGFuZSA9IHRoaXMuX3BhbmVzW2luZGV4XTsKKyAgICAgICAgdmFyIHRpdGxlID0gdGhp
cy5fdGl0bGVzW2luZGV4XTsKKyAgICAgICAgdGl0bGUuYWRkU3R5bGVDbGFzcygiZXhwYW5kZWQi
KTsKKyAgICAgICAgcGFuZS5zaG93KHRoaXMuZWxlbWVudCwgdGl0bGUubmV4dFNpYmxpbmcpOwog
ICAgIH0sCiAKLSAgICB0b2dnbGVFeHBhbmRlZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAq
IEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAgICAqLworICAgIF9jb2xsYXBzZVBhbmU6IGZ1bmN0
aW9uKGluZGV4KQogICAgIHsKLSAgICAgICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVk
OworICAgICAgICB2YXIgcGFuZSA9IHRoaXMuX3BhbmVzW2luZGV4XTsKKyAgICAgICAgdmFyIHRp
dGxlID0gdGhpcy5fdGl0bGVzW2luZGV4XTsKKyAgICAgICAgdGl0bGUucmVtb3ZlU3R5bGVDbGFz
cygiZXhwYW5kZWQiKTsKKyAgICAgICAgaWYgKHBhbmUuZWxlbWVudC5wYXJlbnROb2RlID09IHRo
aXMuZWxlbWVudCkKKyAgICAgICAgICAgIHBhbmUuZGV0YWNoKCk7CiAgICAgfSwKIAotICAgIF9v
blRpdGxlS2V5RG93bjogZnVuY3Rpb24oZXZlbnQpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtu
dW1iZXJ9IGluZGV4CisgICAgICogQHByaXZhdGUKKyAgICAgKi8KKyAgICBfdG9nZ2xlUGFuZTog
ZnVuY3Rpb24oaW5kZXgpCisgICAgeworICAgICAgICB0aGlzLl9zZXRFeHBhbmRlZChpbmRleCwg
IXRoaXMuX2lzRXhwYW5kZWQoaW5kZXgpKTsKKyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAq
IEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50CisgICAg
ICogQHByaXZhdGUKKyAgICAgKi8KKyAgICBfb25UaXRsZUtleURvd246IGZ1bmN0aW9uKGluZGV4
LCBldmVudCkKICAgICB7CiAgICAgICAgIGlmIChpc0VudGVyS2V5KGV2ZW50KSB8fCBldmVudC5r
ZXlDb2RlID09PSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlNwYWNlLmNvZGUp
Ci0gICAgICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKCk7CisgICAgICAgICAgICB0aGlzLl90
b2dnbGVQYW5lKGluZGV4KTsKICAgICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCmluZGV4IDdiMGQyNGFjNTM1ZmUyZjVmNGE5NDNh
OTNlMGM1MDY0Yjk4ZTcyZGYuLmRiMzhjODRhZWJhYzZjYTNkOWViNTNmNDI1OGY3MjM0Mjc4ZmY4
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVz
U2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
dHlsZXNTaWRlYmFyUGFuZS5qcwpAQCAtMjM5LDcgKzIzOSw3IEBAIFdlYkluc3BlY3Rvci5TdHls
ZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNr
KCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodGhpcy5fY29tcHV0ZWRTdHlsZVBhbmUuZXhw
YW5kZWQgfHwgZm9yY2VGZXRjaENvbXB1dGVkU3R5bGUpIHsKKyAgICAgICAgaWYgKHRoaXMuX2Nv
bXB1dGVkU3R5bGVQYW5lLmlzU2hvd2luZygpIHx8IGZvcmNlRmV0Y2hDb21wdXRlZFN0eWxlKSB7
CiAgICAgICAgICAgICB0aGlzLl9yZWZyZXNoVXBkYXRlSW5Qcm9ncmVzcyA9IHRydWU7CiAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuZ2V0Q29tcHV0ZWRTdHlsZUFzeW5jKG5vZGUu
aWQsIGNvbXB1dGVkU3R5bGVDYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICAgICAgfSBlbHNlIHsK
QEAgLTMwMiw3ICszMDIsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90
eXBlID0gewogICAgICAgICAgICAgcmVzdWx0U3R5bGVzLmNvbXB1dGVkU3R5bGUgPSBjb21wdXRl
ZFN0eWxlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMuX2NvbXB1dGVkU3R5bGVQYW5l
LmV4cGFuZGVkKQorICAgICAgICBpZiAodGhpcy5fY29tcHV0ZWRTdHlsZVBhbmUuaXNTaG93aW5n
KCkpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuZ2V0Q29tcHV0ZWRTdHlsZUFz
eW5jKG5vZGUuaWQsIGNvbXB1dGVkQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgICAgIFdlYklu
c3BlY3Rvci5jc3NNb2RlbC5nZXRJbmxpbmVTdHlsZXNBc3luYyhub2RlLmlkLCBpbmxpbmVDYWxs
YmFjay5iaW5kKHRoaXMpKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldE1hdGNo
ZWRTdHlsZXNBc3luYyhub2RlLmlkLCB0cnVlLCB0cnVlLCBzdHlsZXNDYWxsYmFjay5iaW5kKHRo
aXMpKTsKQEAgLTY3MSw3ICs2NzEsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUu
cHJvdG90eXBlID0gewogICAgIF9jcmVhdGVOZXdSdWxlOiBmdW5jdGlvbihldmVudCkKICAgICB7
CiAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKLSAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7
CisgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAgICAgICAgIHRoaXMuYWRkQmxhbmtTZWN0aW9uKCku
c3RhcnRFZGl0aW5nU2VsZWN0b3IoKTsKICAgICB9LAogCkBAIC04MDAsMTUgKzgwMCw5IEBAIFdl
Ykluc3BlY3Rvci5Db21wdXRlZFN0eWxlU2lkZWJhclBhbmUgPSBmdW5jdGlvbigpCiAKIFdlYklu
c3BlY3Rvci5Db21wdXRlZFN0eWxlU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogCi0gICAgLy8g
T3ZlcnJpZGluZyBleHBhbmQoKSByYXRoZXIgdGhhbiBvbmV4cGFuZCgpIHRvIGVsaW1pbmF0ZSB0
aGUgdmlzdWFsIHNsb3duZXNzIGR1ZSB0byBhIHBvc3NpYmxlIGJhY2tlbmQgdHJpcC4KLSAgICBl
eHBhbmQ6IGZ1bmN0aW9uKCkKKyAgICBwcmVwYXJlQ29udGVudDogZnVuY3Rpb24oY2FsbGJhY2sp
CiAgICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUuZXhwYW5kLmNhbGwodGhpcyk7
Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9zdHlsZXNTaWRlYmFyUGFuZS5fcmVmcmVzaFVw
ZGF0ZShudWxsLCB0cnVlLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fc3R5
bGVzU2lkZWJhclBhbmUuX3JlZnJlc2hVcGRhdGUobnVsbCwgdHJ1ZSwgY2FsbGJhY2spOwogICAg
IH0sCiAKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHBy
ZXNzaW9uc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKaW5kZXggMzRiOTY5ZTI0N2JiZmI4MzRh
ZTM3NzM1Y2NiNDAxODEwM2E5ZjRiYi4uMjgwOWVjZWE5MDNmNzBhZDIyZDEyOWYxZmQwYjBiNWFk
ZWNiYzI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9X
YXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKQEAgLTYzLDcgKzYz
LDcgQEAgV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRoaXMuX3JlcXVpcmVzVXBkYXRlID0gdHJ1ZTsKIAogICAgICAgICBpZiAo
V2ViSW5zcGVjdG9yLnNldHRpbmdzLndhdGNoRXhwcmVzc2lvbnMuZ2V0KCkubGVuZ3RoID4gMCkK
LSAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlOworICAgICAgICAgICAgdGhpcy5leHBh
bmQoKTsKICAgICB9LAogCiAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKQEAgLTgwLDcgKzgwLDcgQEAg
V2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAg
ICAgYWRkRXhwcmVzc2lvbjogZnVuY3Rpb24oZXhwcmVzc2lvbikKICAgICB7CiAgICAgICAgIHRo
aXMuc2VjdGlvbi5hZGRFeHByZXNzaW9uKGV4cHJlc3Npb24pOwotICAgICAgICB0aGlzLmV4cGFu
ZGVkID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5leHBhbmQoKTsKICAgICB9LAogCiAgICAgX3JlZnJl
c2hFeHByZXNzaW9uc0lmTmVlZGVkOiBmdW5jdGlvbigpCkBAIC05NSw3ICs5NSw3IEBAIFdlYklu
c3BlY3Rvci5XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgIF9h
ZGRCdXR0b25DbGlja2VkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIGV2ZW50LmNv
bnN1bWUoKTsKLSAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CisgICAgICAgIHRoaXMuZXhw
YW5kKCk7CiAgICAgICAgIHRoaXMuc2VjdGlvbi5hZGROZXdFeHByZXNzaW9uQW5kRWRpdCgpOwog
ICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmNzcwppbmRleCA1N2RiMGVhN2E3MWY3YzA5ZmUyODA4ODQwMGY1MmI5YTYzZTViNzUyLi5l
MTM0NDJmMGExNjQ3ZjhjYzc0NTc4MmIwZmM5MmFlMWQ0YTMzY2I2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0xNzg1LDExICsx
Nzg1LDExIEBAIGxpLmVkaXRpbmcgLnN3YXRjaCwgbGkuZWRpdGluZyAuZW5hYmxlZC1idXR0b24s
ICBsaS5lZGl0aW5nLXN1Yi1wYXJ0IC5kZWxldGUtYnV0CiAgICAgYm9yZGVyOiAxcHggc29saWQg
cmdiYSg2NCwgNjQsIDY0LCAwLjgpOwogfQogCi0ucGFuZTpub3QoLmV4cGFuZGVkKSArIC5wYW5l
LCAucGFuZTpmaXJzdC1vZi10eXBlIHsKKy5wYW5lLXRpdGxlICsgLnBhbmUtdGl0bGUsIC5wYW5l
Om5vdCgudmlzaWJsZSkgKyAucGFuZS10aXRsZSwgLnBhbmUtdGl0bGU6Zmlyc3Qtb2YtdHlwZSB7
CiAgICAgbWFyZ2luLXRvcDogLTFweDsKIH0KIAotLnBhbmUgPiAudGl0bGUgeworLnBhbmUtdGl0
bGUgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0
IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiKDI0MywgMjQzLCAyNDMpKSwgY29sb3Itc3RvcCgw
LjA1LCByZ2IoMjQzLCAyNDMsIDI0MykpLCBjb2xvci1zdG9wKDAuMDUsIHJnYigyMzAsIDIzMCwg
MjMwKSksIHRvKHJnYigyMDksIDIwOSwgMjA5KSkpOwogICAgIGhlaWdodDogMjBweDsKICAgICBw
YWRkaW5nOiAwIDVweDsKQEAgLTE4MDQsMTMgKzE4MDQsMTMgQEAgbGkuZWRpdGluZyAuc3dhdGNo
LCBsaS5lZGl0aW5nIC5lbmFibGVkLWJ1dHRvbiwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0
ZS1idXQKICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogcGFkZGluZzsKIH0KIAotLnBhbmUg
PiAudGl0bGU6YWN0aXZlIHsKKy5wYW5lLXRpdGxlOmFjdGl2ZSB7CiAgICAgYmFja2dyb3VuZC1p
bWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJv
bShyZ2IoMjMxLCAyMzEsIDIzMSkpLCBjb2xvci1zdG9wKDAuMDUsIHJnYigyMzEsIDIzMSwgMjMx
KSksIGNvbG9yLXN0b3AoMC4wNSwgcmdiKDIwNywgMjA3LCAyMDcpKSwgdG8ocmdiKDE4NiwgMTg2
LCAxODYpKSk7CiAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYigxNzgsIDE3OCwgMTc4KTsK
ICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDE3OCwgMTc4LCAxNzgpOwogfQogCi0u
cGFuZSA+IC50aXRsZTo6YmVmb3JlIHsKKy5wYW5lLXRpdGxlOjpiZWZvcmUgewogICAgIGNvbnRl
bnQ6IHVybChJbWFnZXMvZGlzY2xvc3VyZVRyaWFuZ2xlU21hbGxSaWdodEJsYWNrLnBuZyk7CiAg
ICAgZmxvYXQ6IGxlZnQ7CiAgICAgd2lkdGg6IDExcHg7CkBAIC0xODE5LDExICsxODE5LDExIEBA
IGxpLmVkaXRpbmcgLnN3YXRjaCwgbGkuZWRpdGluZyAuZW5hYmxlZC1idXR0b24sICBsaS5lZGl0
aW5nLXN1Yi1wYXJ0IC5kZWxldGUtYnV0CiAgICAgbWFyZ2luLXRvcDogMXB4OwogfQogCi0ucGFu
ZS5leHBhbmRlZCA+IC50aXRsZTo6YmVmb3JlIHsKKy5wYW5lLXRpdGxlLmV4cGFuZGVkOjpiZWZv
cmUgewogICAgIGNvbnRlbnQ6IHVybChJbWFnZXMvZGlzY2xvc3VyZVRyaWFuZ2xlU21hbGxEb3du
QmxhY2sucG5nKTsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiBzZWxlY3QgeworLnBhbmUtdGl0bGUg
PiBzZWxlY3QgewogICAgIGZsb2F0OiByaWdodDsKICAgICB3aWR0aDogMjNweDsKICAgICBoZWln
aHQ6IDE3cHg7CkBAIC0xODM3LDI3ICsxODM3LDI3IEBAIGxpLmVkaXRpbmcgLnN3YXRjaCwgbGku
ZWRpdGluZyAuZW5hYmxlZC1idXR0b24sICBsaS5lZGl0aW5nLXN1Yi1wYXJ0IC5kZWxldGUtYnV0
CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IHNl
bGVjdDpob3ZlciB7CisucGFuZS10aXRsZSA+IHNlbGVjdDpob3ZlciB7CiAgICAgYmFja2dyb3Vu
ZC1wb3NpdGlvbjogLTIzcHggMHB4OwogfQogCi0ucGFuZSA+IC50aXRsZSA+IHNlbGVjdDphY3Rp
dmUgeworLnBhbmUtdGl0bGUgPiBzZWxlY3Q6YWN0aXZlIHsKICAgICBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAtNDZweCAwcHg7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gc2VsZWN0LnNlbGVjdC1zZXR0
aW5ncyB7CisucGFuZS10aXRsZSA+IHNlbGVjdC5zZWxlY3Qtc2V0dGluZ3MgewogICAgIGJhY2tn
cm91bmQtaW1hZ2U6IHVybChJbWFnZXMvcGFuZVNldHRpbmdzQnV0dG9ucy5wbmcpOwogfQogCi0u
cGFuZSA+IC50aXRsZSA+IHNlbGVjdC5zZWxlY3QtZmlsdGVyIHsKKy5wYW5lLXRpdGxlID4gc2Vs
ZWN0LnNlbGVjdC1maWx0ZXIgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFnZXMvcGFu
ZUZpbHRlckJ1dHRvbnMucG5nKTsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiBzZWxlY3QgPiBvcHRp
b24sIC5wYW5lID4gLnRpdGxlID4gc2VsZWN0ID4gaHIgeworLnBhbmUtdGl0bGUgPiBzZWxlY3Qg
PiBvcHRpb24sIC5wYW5lLXRpdGxlID4gc2VsZWN0ID4gaHIgewogICAgIGNvbG9yOiBibGFjazsK
IH0KIAotLnBhbmUgPiAudGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24geworLnBhbmUtdGl0bGUg
PiAucGFuZS10aXRsZS1idXR0b24gewogICAgIGZsb2F0OiByaWdodDsKICAgICB3aWR0aDogMjNw
eDsKICAgICBoZWlnaHQ6IDE3cHg7CkBAIC0xODcxLDIzICsxODcxLDIzIEBAIGxpLmVkaXRpbmcg
LnN3YXRjaCwgbGkuZWRpdGluZyAuZW5hYmxlZC1idXR0b24sICBsaS5lZGl0aW5nLXN1Yi1wYXJ0
IC5kZWxldGUtYnV0CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogfQogCi0ucGFuZSA+
IC50aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbjpob3ZlciB7CisucGFuZS10aXRsZSA+IC5wYW5l
LXRpdGxlLWJ1dHRvbjpob3ZlciB7CiAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIzcHggMHB4
OwogfQogCi0ucGFuZSA+IC50aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbjphY3RpdmUsIC5wYW5l
ID4gLnRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uLnRvZ2dsZWQgeworLnBhbmUtdGl0bGUgPiAu
cGFuZS10aXRsZS1idXR0b246YWN0aXZlLCAucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRv
bi50b2dnbGVkIHsKICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDZweCAwcHg7CiB9CiAKLS5w
YW5lID4gLnRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uLmFkZCB7CisucGFuZS10aXRsZSA+IC5w
YW5lLXRpdGxlLWJ1dHRvbi5hZGQgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFnZXMv
cGFuZUFkZEJ1dHRvbnMucG5nKTsKIH0KIAotLnBhbmUgPiAudGl0bGUgPiAucGFuZS10aXRsZS1i
dXR0b24uZWxlbWVudC1zdGF0ZSB7CisucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5l
bGVtZW50LXN0YXRlIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL3BhbmVFbGVt
ZW50U3RhdGVCdXR0b25zLnBuZyk7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gLnBhbmUtdGl0bGUt
YnV0dG9uLnJlZnJlc2ggeworLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24ucmVmcmVz
aCB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKEltYWdlcy9wYW5lUmVmcmVzaEJ1dHRvbnMu
cG5nKTsKIH0KIApAQCAtMTkxMSw3ICsxOTExLDcgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5l
ZGl0aW5nIC5lbmFibGVkLWJ1dHRvbiwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQK
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDE5NCk7CiB9CiAKLS5wYW5lLmV4
cGFuZGVkID4gLmJvZHksIC5wYW5lLmV4cGFuZGVkID4gLmdyb3diYXIgeworLnBhbmUudmlzaWJs
ZSA+IC5ib2R5IHsKICAgICBkaXNwbGF5OiBibG9jazsKIH0KIApAQCAtMTkzMSwxOCArMTkzMSwx
MCBAQCBsaS5lZGl0aW5nIC5zd2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGku
ZWRpdGluZy1zdWItcGFydCAuZGVsZXRlLWJ1dAogICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYig2
NiUsIDY2JSwgNjYlKTsKIH0KIAotLnBhbmUuZXhwYW5kZWQ6bnRoLWxhc3Qtb2YtdHlwZSgxKSB7
CisucGFuZS52aXNpYmxlOm50aC1sYXN0LW9mLXR5cGUoMSkgewogICAgIGJvcmRlci1ib3R0b206
IDFweCBzb2xpZCByZ2IoMTg5LCAxODksIDE4OSk7CiB9CiAKLS5wYW5lID4gLmdyb3diYXIgewot
ICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKEltYWdlcy9wYW5l
R3Jvd0hhbmRsZUxpbmUucG5nKSwgdXJsKEltYWdlcy9wYW5lQm90dG9tR3Jvdy5wbmcpOwotICAg
IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdC14OwotICAgIGJhY2tncm91bmQt
cG9zaXRpb246IGNlbnRlciBjZW50ZXIsIGJvdHRvbTsKLSAgICBoZWlnaHQ6IDVweDsKLX0KLQog
LnNpZGViYXItcGFuZS1zdWJ0aXRsZSB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIHJp
Z2h0OiAwOwpAQCAtMTk3Miw3ICsxOTY0LDcgQEAgYm9keS5pbmFjdGl2ZSAuc2lkZWJhciB7CiAg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMiwgMjMyLCAyMzIpOwogfQogCi0ucGFuZWwtZW5h
Ymxlci12aWV3IGJ1dHRvbjpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5lIGJ1dHRvbiwgYnV0
dG9uLnNob3ctYWxsLW5vZGVzIHsKKy5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOm5vdCguc3Rh
dHVzLWJhci1pdGVtKSwgLnBhbmUtdGl0bGUtYnV0dG9uLCBidXR0b24uc2hvdy1hbGwtbm9kZXMg
ewogICAgIGNvbG9yOiByZ2IoNiwgNiwgNik7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNw
YXJlbnQ7CiAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDE2NSwgMTY1LCAxNjUpOwpAQCAtMTk4
OSwxNyArMTk4MSwxMiBAQCBidXR0b24uc2hvdy1hbGwtbm9kZXMgewogICAgIGhlaWdodDogMjBw
eDsKIH0KIAotLnBhbmUgYnV0dG9uIHsKLSAgICBtYXJnaW46IDZweCAwIDZweCAzcHg7Ci0gICAg
cGFkZGluZzogMnB4IDlweDsKLX0KLQotLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246YWN0aXZl
Om5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmUgYnV0dG9uOmFjdGl2ZSwgYnV0dG9uLnNob3ct
YWxsLW5vZGVzOmFjdGl2ZSB7CisucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjphY3RpdmU6bm90
KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFuZS10aXRsZS1idXR0b246YWN0aXZlLCBidXR0b24uc2hv
dy1hbGwtbm9kZXM6YWN0aXZlIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE1LCAyMTUs
IDIxNSk7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxl
ZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMTk0LCAxOTQsIDE5NCkpLCB0byhyZ2IoMjM5
LCAyMzksIDIzOSkpKTsKIH0KIAotYm9keS5pbmFjdGl2ZSAucGFuZWwtZW5hYmxlci12aWV3IGJ1
dHRvbjpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOmRp
c2FibGVkOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgYm9keS5pbmFjdGl2ZSAucGFuZSBidXR0b24s
IC5wYW5lIGJ1dHRvbjpkaXNhYmxlZCwgYm9keS5pbmFjdGl2ZSBidXR0b24uc2hvdy1hbGwtbm9k
ZXMgeworYm9keS5pbmFjdGl2ZSAucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpub3QoLnN0YXR1
cy1iYXItaXRlbSksIC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOmRpc2FibGVkOm5vdCguc3Rh
dHVzLWJhci1pdGVtKSwgYm9keS5pbmFjdGl2ZSAucGFuZS10aXRsZS1idXR0b24sIC5wYW5lLXRp
dGxlLWJ1dHRvbjpkaXNhYmxlZCwgYm9keS5pbmFjdGl2ZSBidXR0b24uc2hvdy1hbGwtbm9kZXMg
ewogICAgIGNvbG9yOiByZ2IoMTMwLCAxMzAsIDEzMCk7CiAgICAgYm9yZGVyLWNvbG9yOiByZ2Io
MjEyLCAyMTIsIDIxMik7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOSwgMjM5LCAyMzkp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDU3NzY3MmY4Y2RkNjVlYTA5N2ViZTJiYWMzYzg1MTczMTZhY2NjNTUuLmVhNDIw
Njk3N2M4NzRhNzk5MzZlNWY4OWViZGU3YmQ2YTQwODNiZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBA
QAorMjAxMy0wMi0wMSAgVmxhZGlzbGF2IEthem5hY2hlZXYgIDxrYXpuYWNoZWV2QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDcmVhdGUgYSBjb250YWluZXIgY2xhc3Mg
Zm9yIFNpZGViYXJQYW5lIGluc3RhbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0Lmpz
OgorICAgICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5zdHlsZXNDYWxsYmFjayk6CisgICAg
ICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdh
aXRGb3JTdHlsZXNXaXRoQ29tcHV0ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9hdWRpdHMvYXVk
aXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9h
dWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1leHByZXNzaW9ucy5odG1s
OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dp
dGNoLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25z
LXByZXNlcnZlLWV4cGFuc2lvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXNpZGVi
YXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2xhenktY29tcHV0ZWQtc3R5bGUu
aHRtbDoKKwogMjAxMy0wMS0zMSAgRmxvcmluIE1hbGl0YSAgPGZtYWxpdGFAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcwppbmRleCA4YWYz
Y2M2MTUyMGY1MjNhMDNjMDZkZDQyODg4MmFiNGNkMThiMDA4Li42MWY2NmY5MzczMDQyNTYwMDg2
OGRjNjY2MWVmNjc1NDNmNmI3NmQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKQEAgLTExMSw3ICsxMTEsNyBAQCBJbnNwZWN0b3JU
ZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzV2l0aENvbXB1dGVkID0gZnVuY3Rpb24oaWRW
YWx1ZSwgY2FsbGJhYwogCiAgICAgZnVuY3Rpb24gc3R5bGVzQ2FsbGJhY2sodGFyZ2V0Tm9kZSkK
ICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU2lk
ZWJhclBhbmUucHJvdG90eXBlLCAiZXhwYW5kIiwgY2FsbGJhY2spOworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZSwgIm9u
Q29udGVudFJlYWR5IiwgY2FsbGJhY2spOwogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVs
ZW1lbnRzLnNpZGViYXJQYW5lcy5jb21wdXRlZFN0eWxlLmV4cGFuZCgpOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rp
b25hbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1w
YW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAppbmRleCA1MmY0N2M2YWYxYTkzNDhkODZlY2Jj
MTk2YzIzN2JiYzQ0YmViNDZjLi4zZjJjYjY3OTc0ZDA0NDlkYjVkMWE0ZDU0MGU2YWIxMDE2MmJi
NjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5l
bC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVk
aXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAK
IFRlc3RzIGF1ZGl0IHJ1bGVzLiAgICAgCiBQYWdlIHJlbG9hZGVkLgotICBOZXR3b3JrIFV0aWxp
emF0aW9uCisgTmV0d29yayBVdGlsaXphdGlvbgogICAgIENvbWJpbmUgZXh0ZXJuYWwgSmF2YVNj
cmlwdCAoNCkKICAgICAgVGhlcmUgYXJlIG11bHRpcGxlIHJlc291cmNlcyBzZXJ2ZWQgZnJvbSBz
YW1lIGRvbWFpbi4gQ29uc2lkZXIgY29tYmluaW5nIHRoZW0gaW50byBhcyBmZXcgZmlsZXMgYXMg
cG9zc2libGUuCiAgICAgICA0IEphdmFTY3JpcHQgcmVzb3VyY2VzIHNlcnZlZCBmcm9tIFtkb21h
aW5dLgpAQCAtOCw3ICs4LDcgQEAgUGFnZSByZWxvYWRlZC4KICAgICAgQSB3aWR0aCBhbmQgaGVp
Z2h0IHNob3VsZCBiZSBzcGVjaWZpZWQgZm9yIGFsbCBpbWFnZXMgaW4gb3JkZXIgdG8gc3BlZWQg
dXAgcGFnZSBkaXNwbGF5LiBUaGUgZm9sbG93aW5nIGltYWdlKHMpIGFyZSBtaXNzaW5nIGEgd2lk
dGggYW5kL29yIGhlaWdodDoKICAgICAgICBmb28xLmpwZwogICAgICAgIGZvbzIuanBnCi0gIFdl
YiBQYWdlIFBlcmZvcm1hbmNlCisgV2ViIFBhZ2UgUGVyZm9ybWFuY2UKICAgICBPcHRpbWl6ZSB0
aGUgb3JkZXIgb2Ygc3R5bGVzIGFuZCBzY3JpcHRzICgyKQogICAgICBUaGUgZm9sbG93aW5nIGV4
dGVybmFsIENTUyBmaWxlcyB3ZXJlIGluY2x1ZGVkIGFmdGVyIGFuIGV4dGVybmFsIEphdmFTY3Jp
cHQgZmlsZSBpbiB0aGUgZG9jdW1lbnQgaGVhZC4gVG8gZW5zdXJlIENTUyBmaWxlcyBhcmUgZG93
bmxvYWRlZCBpbiBwYXJhbGxlbCwgYWx3YXlzIGluY2x1ZGUgZXh0ZXJuYWwgQ1NTIGJlZm9yZSBl
eHRlcm5hbCBKYXZhU2NyaXB0LgogICAgICAgIGF1ZGl0cy1zdHlsZTEuY3NzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5j
dGlvbmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRz
LXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CmluZGV4IDlkYzdhMTU5MDBl
ZGVhNzdhYzczZDZkMjJiMjUxMDRlNTdkMWFjYTcuLmVmZmMyYTMyYWMyZDg0MzIwNzcyYjdlMzlj
NzcyOTM0MjhlODY3MzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMv
YXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwt
ZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDEwIEBACiBUZXN0cyBhdWRpdCBydWxlcyBvbiBhIHBh
Z2Ugd2l0aG91dCBpbWFnZXMuCiBQYWdlIHJlbG9hZGVkLgotICBOZXR3b3JrIFV0aWxpemF0aW9u
CisgTmV0d29yayBVdGlsaXphdGlvbgogICAgIENvbWJpbmUgZXh0ZXJuYWwgSmF2YVNjcmlwdCAo
NCkKICAgICAgVGhlcmUgYXJlIG11bHRpcGxlIHJlc291cmNlcyBzZXJ2ZWQgZnJvbSBzYW1lIGRv
bWFpbi4gQ29uc2lkZXIgY29tYmluaW5nIHRoZW0gaW50byBhcyBmZXcgZmlsZXMgYXMgcG9zc2li
bGUuCiAgICAgICA0IEphdmFTY3JpcHQgcmVzb3VyY2VzIHNlcnZlZCBmcm9tIFtkb21haW5dLgot
ICBXZWIgUGFnZSBQZXJmb3JtYW5jZQorIFdlYiBQYWdlIFBlcmZvcm1hbmNlCiAgICAgT3B0aW1p
emUgdGhlIG9yZGVyIG9mIHN0eWxlcyBhbmQgc2NyaXB0cyAoMikKICAgICAgVGhlIGZvbGxvd2lu
ZyBleHRlcm5hbCBDU1MgZmlsZXMgd2VyZSBpbmNsdWRlZCBhZnRlciBhbiBleHRlcm5hbCBKYXZh
U2NyaXB0IGZpbGUgaW4gdGhlIGRvY3VtZW50IGhlYWQuIFRvIGVuc3VyZSBDU1MgZmlsZXMgYXJl
IGRvd25sb2FkZWQgaW4gcGFyYWxsZWwsIGFsd2F5cyBpbmNsdWRlIGV4dGVybmFsIENTUyBiZWZv
cmUgZXh0ZXJuYWwgSmF2YVNjcmlwdC4KICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Vycm9yLWluLXdhdGNoLWV4cHJl
c3Npb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0
Y2gtZXhwcmVzc2lvbnMuaHRtbAppbmRleCBhM2YxNGYzNThmMTVhN2E5MzEwODRmYTY5ZGZiZjNm
ZTYyMDBmNDBjLi5kOGZkODYxYjY2MzZmY2QxZTkwNDAwZjQyNTY0ZWNjYTc4ZWY4OGM4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhw
cmVzc2lvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJyb3It
aW4td2F0Y2gtZXhwcmVzc2lvbnMuaHRtbApAQCAtMTAsNyArMTAsMTAgQEAgdmFyIHRlc3QgPSBm
dW5jdGlvbigpCiAgICAgLy8gV2UgbmVlZCB0byBpbml0aWFsaXplIHNjcmlwdHMgcGFuZWwgc28g
dGhhdCB3YXRjaCBleHByZXNzaW9ucyBzZWN0aW9uIGlzIGNyZWF0ZWQuCiAgICAgV2ViSW5zcGVj
dG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwogCi0gICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNTZWN0
aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJl
c3Npb25zLnNlY3Rpb247CisgICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNQYW5lID0gV2ViSW5zcGVj
dG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zOworICAgIHdh
dGNoRXhwcmVzc2lvbnNQYW5lLmV4cGFuZCgpOworCisgICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNT
ZWN0aW9uID0gd2F0Y2hFeHByZXNzaW9uc1BhbmUuc2VjdGlvbjsKICAgICB3YXRjaEV4cHJlc3Np
b25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zID0gW107CiAgICAgd2F0Y2hFeHByZXNzaW9uc1Nl
Y3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCIjJCUiKTsKICAgICB3YXRjaEV4cHJlc3Npb25z
U2VjdGlvbi51cGRhdGUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbAppbmRleCBiYWQzNmVjNDgyYmFiZmNlN2RlOGIy
ZTljMzQ4OTg3ZTE2YWFjOGU3Li5jZGE4M2RhMTdmZDI2NmQxZmMwODEzZWI0YzcxMTI1ZjAwZGE3
YjI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGll
cy1zcGVjaWFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3Bl
cnRpZXMtc3BlY2lhbC5odG1sCkBAIC0yMyw3ICsyMywxMCBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgLy8gV2UgbmVlZCB0byBpbml0aWFsaXplIHNjcmlwdHMgcGFuZWwgc28gdGhh
dCB3YXRjaCBleHByZXNzaW9ucyBzZWN0aW9uIGlzIGNyZWF0ZWQuCiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKIAotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2Vj
dGlvbiA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHBy
ZXNzaW9ucy5zZWN0aW9uOworICAgICAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1BhbmUgPSBXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnM7Cisg
ICAgICAgIHdhdGNoRXhwcmVzc2lvbnNQYW5lLmV4cGFuZCgpOworCisgICAgICAgIHdhdGNoRXhw
cmVzc2lvbnNTZWN0aW9uID0gd2F0Y2hFeHByZXNzaW9uc1BhbmUuc2VjdGlvbjsKICAgICAgICAg
d2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwogICAgICAgICB3
YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIk9iamVjdCh0cnVl
KSIpOwogICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1
c2goIihmdW5jdGlvbihhLGIpIHsgcmV0dXJuIGEgKyBiOyB9KSIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXBhbmVsLXN3aXRj
aC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25z
LXBhbmVsLXN3aXRjaC5odG1sCmluZGV4IDQ3M2MzNDE1ODliNzlhOTA3ZmU5YjUxOWFmNWIzMDc4
ODM2YzlmZGIuLjdmZDVmZDJlZTA2MTBlOWVmYzY1N2U5NzNkZDVkMTYwYzVmODNkZTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1w
YW5lbC1zd2l0Y2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0
Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dpdGNoLmh0bWwKQEAgLTIzLDcgKzIzLDEwIEBAIHZhciB0
ZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICAvLyBXZSBuZWVkIHRvIGluaXRpYWxpemUgc2NyaXB0
cyBwYW5lbCBzbyB0aGF0IHdhdGNoIGV4cHJlc3Npb25zIHNlY3Rpb24gaXMgY3JlYXRlZC4KICAg
ICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwogCi0gICAgICAgIHdhdGNo
RXhwcmVzc2lvbnNTZWN0aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQ
YW5lcy53YXRjaEV4cHJlc3Npb25zLnNlY3Rpb247CisgICAgICAgIHZhciB3YXRjaEV4cHJlc3Np
b25zUGFuZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hF
eHByZXNzaW9uczsKKyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1BhbmUuZXhwYW5kKCk7CisKKyAg
ICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24gPSB3YXRjaEV4cHJlc3Npb25zUGFuZS5zZWN0
aW9uOwogICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zID0g
W107CiAgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVz
aCgid2luZG93LmRvY3VtZW50Iik7CiAgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndh
dGNoRXhwcmVzc2lvbnMucHVzaCgid2luZG93YS5kb2N1bWVudCIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4
cGFuc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJl
c3Npb25zLXByZXNlcnZlLWV4cGFuc2lvbi5odG1sCmluZGV4IDc3MzU1Njc5OTFiZjg5YTU4ZGYz
OGJkMmY4YjEyYjFhOWNhYWZlMDUuLjIyNGJiY2NjNzNiNzA1NDFhZDM5YjM1NjViMzAwYWE0MzQz
M2IyNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1l
eHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhwYW5zaW9uLmh0bWwK
QEAgLTI0LDcgKzI0LDEwIEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogCiAgICAgZnVuY3Rpb24g
c3RlcDEoKQogICAgIHsKLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24gPSBXZWJJbnNw
ZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnMuc2VjdGlv
bjsKKyAgICAgICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNQYW5lID0gV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zOworICAgICAgICB3YXRjaEV4
cHJlc3Npb25zUGFuZS5leHBhbmQoKTsKKworICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlv
biA9IHdhdGNoRXhwcmVzc2lvbnNQYW5lLnNlY3Rpb247CiAgICAgICAgIHdhdGNoRXhwcmVzc2lv
bnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9u
c1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJnbG9iYWxPYmplY3QiKTsKICAgICAgICAg
d2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJ3aW5kb3dBbGlh
cyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQKaW5kZXggODUyOWY4NWQ1
NDkxNjE2ZDc3MGY2ZWE0ZWJiYjYxM2Q3MGVjZTJiYy4uZjVkZWVhZmNjNGVjYmMwNTA4ZmJiMGMw
Njg0YWU5NGM2MDliM2FiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0
CkBAIC0zNiw2ICszNiw2IEBAIGNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVkLCByZXN1bHRz
IGR1bXAgZm9sbG93czoKICAgICB9CiAgICAgZXhwYW5kZWQgOiBmYWxzZQogfQotICBFeHRlbnNp
b24gYXVkaXRzCisgRXh0ZW5zaW9uIGF1ZGl0cwogQWxsIHRlc3RzIGRvbmUuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNv
bnRlbnQtc2NyaXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNp
b25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0LWV4cGVjdGVkLnR4dAppbmRleCAx
NWFhZDEzYjZhYTRkZmZjODM2MzgzMjE2MDMwYmMxZDBlN2U5ZGYwLi5mODU4MjllODI4MzRhMGI5
MWQ3ZDhjMzcwNDdjZWM0NTUyYzQwMGZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRp
dHMtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBUZXN0cyBhdWRp
dCBmb3JtYXR0ZXJzIHBlcmZvcm1pbmcgZXZhbHMgb24gY29udGVudCBzY3JpcHRzIGluIFdlYklu
c3BlY3RvciBFeHRlbgogIFN0YXJ0ZWQgZXh0ZW5zaW9uLgogUnVubmluZyB0ZXN0cy4uLgogUlVO
TklORyBURVNUOiBleHRlbnNpb25fdGVzdEF1ZGl0cwotICBFeHRlbnNpb24gYXVkaXRzCisgRXh0
ZW5zaW9uIGF1ZGl0cwogICAgIFJ1bGUgd2l0aCBkZXRhaWxzIHN1YnRyZWUgKDEpCiAgICAgICBU
ZXN0IEZvcm1hdHRlcnMKICAgICAgICAgICAgbWFpbiB3b3JsZCBvYmplY3QKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVk
aXRzLWV4cGVjdGVkLnR4dAppbmRleCBkMzM0ZWEzMDIyMTcxZDQ1ZWU4MzdkYTRiNzRjOWU4OTc4
MmVhYmM4Li4xMzYxMTM0OGJhYTQzMDEzNjljOWFlMWNjOGEzOTRkYjUzN2FlYWFlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1hdWRpdHMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBSdW5uaW5nIHRlc3RzLi4u
CiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0QXVkaXRzCiBQcm9ncmVzczogNTAlCiBQcm9n
cmVzczogNzUlCi0gIEV4dGVuc2lvbiBhdWRpdHMKKyBFeHRlbnNpb24gYXVkaXRzCiAgICAgRmFp
bGVkIHJ1bGUgKDQyKQogICAgICB0aGlzIHJ1bGUgYWx3YXlzIGZhaWxzCiAgICAgUnVsZSB3aXRo
IGRldGFpbHMgc3VidHJlZSAoMSkKQEAgLTQzLDcgKzQzLDcgQEAgUHJvZ3Jlc3M6IDc1JQogICAg
ICAgICAgZXh0ZW5zaW9ucy1hdWRpdHMuaHRtbDoyMAogICAgIFBhc3NlZCBydWxlCiAgICAgIHRo
aXMgcnVsZSBhbHdheXMgcGFzc2VzIG9rCi0gIEV4dGVuc2lvbiBhdWRpdHMgdGhhdCBmYWlsCisg
RXh0ZW5zaW9uIGF1ZGl0cyB0aGF0IGZhaWwKIGNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVk
CiBmYWlsZWRDYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZCwgdGhyb3dpbmcgZXhjZXB0aW9u
CiBBbGwgdGVzdHMgZG9uZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zL2V4dGVuc2lvbnMtc2lkZWJhci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1zaWRlYmFyLmh0bWwKaW5kZXggMmQ1NDk1ZDFkMTY1YzdjNzhh
Y2QzYmI2OWZlNmU1ODVlMWIzZGUwNC4uMDBlNzI1NmQ4ZDliZjU5Yzg5MjZlMWQ2NGNjZmJhMGJh
MTZhNWQ3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0
ZW5zaW9ucy1zaWRlYmFyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1zaWRlYmFyLmh0bWwKQEAgLTgsMTQgKzgsMjggQEAgZnVuY3Rpb24gaW5p
dGlhbGl6ZV9leHRlbnNpb25zU2lkZWJhclRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3QuZHVt
cFNpZGViYXJDb250ZW50ID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIg
c2lkZWJhclBhbmVzID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJlbGVtZW50cyIpLnNpZGViYXJQYW5l
czsKLSAgICAgICAgLy8gdGhlIHNpZGViYXIgb2YgaW50ZXJlc3QgaXMgcHJlc3VtZWQgdG8gYWx3
YXlzIGJlIGxhc3QuCi0gICAgICAgIHZhciBzaWRlYmFyID0gc2lkZWJhclBhbmVzW09iamVjdC5r
ZXlzKHNpZGViYXJQYW5lcykucG9wKCldOworICAgICAgICB2YXIgc2lkZWJhciA9IEluc3BlY3Rv
clRlc3QuX2V4dGVuc2lvblNpZGViYXIoKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRl
clBlbmRpbmdEaXNwYXRjaGVzKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIlNpZGViYXIgY29udGVudDogIiArIHNpZGViYXIuYm9keUVsZW1lbnQudGV4
dENvbnRlbnQpOwogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfSk7CiAgICAgfQor
CisgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRTaWRlYmFyID0gZnVuY3Rpb24oY2FsbGJhY2spCisg
ICAgeworICAgICAgICB2YXIgc2lkZWJhciA9IEluc3BlY3RvclRlc3QuX2V4dGVuc2lvblNpZGVi
YXIoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgc2lkZWJhci5leHBhbmQoKTsKKyAgICAgICAgICAgIGNh
bGxiYWNrKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuX2V4dGVu
c2lvblNpZGViYXIgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgc2lkZWJhclBhbmVz
ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJlbGVtZW50cyIpLnNpZGViYXJQYW5lczsKKyAgICAgICAg
Ly8gdGhlIHNpZGViYXIgb2YgaW50ZXJlc3QgaXMgcHJlc3VtZWQgdG8gYWx3YXlzIGJlIGxhc3Qu
CisgICAgICAgIHJldHVybiBzaWRlYmFyUGFuZXNbT2JqZWN0LmtleXMoc2lkZWJhclBhbmVzKS5w
b3AoKV07CisgICAgfQogfQogCiBmdW5jdGlvbiBleHRlbnNpb25fdGVzdFNpZGViYXJTZXRQYWdl
KG5leHRUZXN0KQpAQCAtMzIsNyArNDYsNyBAQCBmdW5jdGlvbiBleHRlbnNpb25fdGVzdFNpZGVi
YXJTZXRQYWdlKG5leHRUZXN0KQogICAgICAgICBzaWRlYmFyLm9uU2hvd24uYWRkTGlzdGVuZXIo
b25TaG93bik7CiAgICAgICAgIHZhciBiYXNlUGF0aCA9IGxvY2F0aW9uLnBhdGhuYW1lLnJlcGxh
Y2UoL1wvW14vXSokLywgIi8iKTsKICAgICAgICAgc2lkZWJhci5zZXRQYWdlKGJhc2VQYXRoICsg
ImV4dGVuc2lvbi1zaWRlYmFyLmh0bWwiKTsKLSAgICAgICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgi
ZWxlbWVudHMiKTsKKyAgICAgICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZWxlbWVudHMiLCBleHRl
bnNpb25fZXhwYW5kU2lkZWJhcik7CiAgICAgfQogICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuZWxl
bWVudHMuY3JlYXRlU2lkZWJhclBhbmUoIlRlc3QgU2lkZWJhciIsIG9uU2lkZWJhckNyZWF0ZWQp
OwogfQpAQCAtNDIsNiArNTYsMTEgQEAgZnVuY3Rpb24gZXh0ZW5zaW9uX2R1bXBTaWRlYmFyQ29u
dGVudChuZXh0VGVzdCkKICAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3BlY3RvclRlc3QuZHVt
cFNpZGViYXJDb250ZW50KHJlcGx5KTsiLCBuZXh0VGVzdCk7CiB9CiAKK2Z1bmN0aW9uIGV4dGVu
c2lvbl9leHBhbmRTaWRlYmFyKGNhbGxiYWNrKQoreworICAgIGV2YWx1YXRlT25Gcm9udGVuZCgi
SW5zcGVjdG9yVGVzdC5leHBhbmRTaWRlYmFyKHJlcGx5KTsiLCBjYWxsYmFjayk7Cit9CisKIGZ1
bmN0aW9uIGV4dGVuc2lvbl90ZXN0U2lkZWJhclNldE9iamVjdChuZXh0VGVzdCkKIHsKICAgICBm
dW5jdGlvbiBvblNpZGViYXJDcmVhdGVkKHNpZGViYXIpCkBAIC0xMDUsNyArMTI0LDcgQEAgZnVu
Y3Rpb24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyUGFnZVJlcGxhY2VkV2l0aE9iamVjdChuZXh0VGVz
dCkKICAgICAgICAgIHNpZGViYXIgPSBhU2lkZWJhcjsKICAgICAgICAgIHNpZGViYXIub25TaG93
bi5hZGRMaXN0ZW5lcihvblNob3duKTsKICAgICAgICAgIHNpZGViYXIuc2V0UGFnZShiYXNlUGF0
aCArICJleHRlbnNpb24tc2lkZWJhci5odG1sIik7Ci0gICAgICAgICBleHRlbnNpb25fc2hvd1Bh
bmVsKCJlbGVtZW50cyIpOworICAgICAgICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZWxlbWVudHMi
LCBleHRlbnNpb25fZXhwYW5kU2lkZWJhcik7CiAgICAgIH0KICAgICAgdmFyIGRpZFNldE9iamVj
dCA9IGZhbHNlOwogICAgICBmdW5jdGlvbiBvblNob3duKGZyYW1lKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9sYXp5LWNvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2xhenktY29tcHV0ZWQtc3R5bGUuaHRtbAppbmRleCBj
ZTRkNGY4MmM4ZjY5NjNmZDJlZDhkMmUzYzM1YTNlMjg5NzcwM2U0Li44YWIwZDI5NTNlYTJlODdl
NjY5OTM0ZWJhNDQwMTQxY2VhMGY4ODkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL2xhenktY29tcHV0ZWQtc3R5bGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL2xhenktY29tcHV0ZWQtc3R5bGUuaHRtbApAQCAtMjksNyArMjksNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9
PT09IEFsbCBzdHlsZXMgKHNob3VsZCBiZSBubyBjb21wdXRlZCkgPT09PSIpOwogICAgICAgICBJ
bnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXMoZmFsc2UsIGZhbHNlKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5w
cm90b3R5cGUsICJleHBhbmQiLCBzdGVwMik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBlLCAib25Db250ZW50UmVhZHki
LCBzdGVwMik7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBh
bmVzLmNvbXB1dGVkU3R5bGUuZXhwYW5kKCk7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186388</attachid>
            <date>2013-02-04 08:37:43 -0800</date>
            <delta_ts>2013-02-04 10:21:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108183-20130204203421.patch</filename>
            <type>text/plain</type>
            <size>52608</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNmOGNlMjM2ZGY3N2Y3
MTc2YTY0YWVhMGJhMzI2OWY1YjM0ZjgxNi4uMDQzYTA2ZDgyOTA3YmVjMGYyYmE0ZmIyM2MwZjIz
YjdmNTUxMmRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEzLTAyLTA0ICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENyZWF0ZSBhIGNvbnRhaW5lciBjbGFzcyBmb3IgU2lkZWJhclBhbmUgaW5z
dGFuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDgxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
aWRlYmFyUGFuZVN0YWNrIGlzIHJlc3BvbnNpYmxlIGZvciBwYW5lIHRpdGxlIGJhciBhbmQgZXhw
YW5kL2NvbGxhcHNlIGJlaGF2aW9yIChwcmV2aW91c2x5IGhhbmRsZWQgYnkgU2lkZWJhclBhbmUp
LgorICAgICAgICBTaWRlYmFyUGFuZXMgYXJlIGluc2VydGVkIGludG8gRE9NIGxhemlseSBhbmQg
Y2FuIGJlbG9uZyB0byBtb3JlIHRoYW4gb25lIGNvbnRhaW5lci4KKyAgICAgICAgU2lkZWJhclBh
bmUgaXMgcmVhZHkgdG8gYmUgZGlzcGxheWVkIGluIG90aGVyIHR5cGVzIG9mIGNvbnRhaW5lcnMg
KHN1Y2ggYXMgdGFiYmVkIHBhbmUgYXMgcmVxdWVzdGVkIGluIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1NTIpLgorICAgICAgICBUaGVyZSBzaG91bGQgYmUgbm8g
dmlzaWJsZSBjaGFuZ2VzIGV4Y2VwdCBmb3Igb25lOiBET00gYnJlYWtwb2ludCBwYW5lIGV4cGFu
ZC9jb2xsYXBzZSBzdGF0ZSBpcyBubyBsb25nZXIKKyAgICAgICAgc2hhcmVkIGJldHdlZW4gRWxl
bWVudHMgYW5kIFNvdXJjZXMgc2lkZWJhcnMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UmVzdWx0Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJlc3Vs
dFZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFy
UGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRl
YmFyUGFuZS5wcm90b3R5cGUuX2FkZEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlhIUkJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLmhpZ2hsaWdodEJyZWFrcG9pbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVha3BvaW50c1NpZGViYXJQ
YW5lLnByb3RvdHlwZS5oaWdobGlnaHRCcmVha3BvaW50KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuaGlnaGxpZ2h0QnJlYWtw
b2ludCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS51cGRhdGVTdHlsZXMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZU1ldHJpY3MpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZVByb3BlcnRpZXMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnVwZGF0ZUV2
ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBh
bmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNpZGViYXJQYW5lKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkNyZWF0ZVNpZGViYXJQ
YW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNpZGViYXJQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFu
ZS5wcm90b3R5cGUudGl0bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnBy
b3RvdHlwZS5wcmVwYXJlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBh
bmUucHJvdG90eXBlLmV4cGFuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUu
cHJvdG90eXBlLm9uQ29udGVudFJlYWR5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFy
UGFuZS5wcm90b3R5cGUuc2V0RXhwYW5kQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNpZGViYXJQYW5lLnByb3RvdHlwZS5zZXRTaG93Q2FsbGJhY2spOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2lkZWJhclBhbmVTdGFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBh
bmVTdGFjay5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGVi
YXJQYW5lU3RhY2sucHJvdG90eXBlLmFkZFBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNp
ZGViYXJQYW5lU3RhY2sucHJvdG90eXBlLl9hZGRUaXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUuX2F0dGFjaFRvUGFuZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUuX2lzRXhwYW5kZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJvdG90eXBlLl9zZXRFeHBhbmRl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjay5wcm90b3R5cGUuX29u
UGFuZUV4cGFuZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnBy
b3RvdHlwZS5fY29sbGFwc2VQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFu
ZVN0YWNrLnByb3RvdHlwZS5fdG9nZ2xlUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lk
ZWJhclBhbmVTdGFjay5wcm90b3R5cGUuX29uVGl0bGVLZXlEb3duKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZS5fcmVmcmVzaFVwZGF0ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLl9yZWJ1aWxkVXBkYXRl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuc2V0
IF9jcmVhdGVOZXdSdWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlU2lk
ZWJhclBhbmUucHJvdG90eXBlLnByZXBhcmVDb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5wcm90b3R5cGUud2FzU2hvd24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5wcm90b3R5cGUu
YWRkRXhwcmVzc2lvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1Np
ZGViYXJQYW5lLnByb3RvdHlwZS5fYWRkQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLnBhbmUtdGl0bGUgKyAucGFu
ZS10aXRsZSwgLnBhbmU6bm90KC52aXNpYmxlKSArIC5wYW5lLXRpdGxlLCAucGFuZS10aXRsZTpm
aXJzdC1vZi10eXBlKToKKyAgICAgICAgKC5wYW5lLXRpdGxlKToKKyAgICAgICAgKC5wYW5lLXRp
dGxlOmFjdGl2ZSk6CisgICAgICAgICgucGFuZS10aXRsZTo6YmVmb3JlKToKKyAgICAgICAgKC5w
YW5lLXRpdGxlLmV4cGFuZGVkOjpiZWZvcmUpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiBzZWxl
Y3QpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiBzZWxlY3Q6aG92ZXIpOgorICAgICAgICAoLnBh
bmUtdGl0bGUgPiBzZWxlY3Q6YWN0aXZlKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gc2VsZWN0
LnNlbGVjdC1zZXR0aW5ncyk6CisgICAgICAgICgucGFuZS10aXRsZSA+IHNlbGVjdC5zZWxlY3Qt
ZmlsdGVyKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gc2VsZWN0ID4gb3B0aW9uLCAucGFuZS10
aXRsZSA+IHNlbGVjdCA+IGhyKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUt
YnV0dG9uKToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmhvdmVy
KToKKyAgICAgICAgKC5wYW5lLXRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uOmFjdGl2ZSwgLnBh
bmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24udG9nZ2xlZCk6CisgICAgICAgICgucGFuZS10
aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5hZGQpOgorICAgICAgICAoLnBhbmUtdGl0bGUgPiAu
cGFuZS10aXRsZS1idXR0b24uZWxlbWVudC1zdGF0ZSk6CisgICAgICAgICgucGFuZS10aXRsZSA+
IC5wYW5lLXRpdGxlLWJ1dHRvbi5yZWZyZXNoKToKKyAgICAgICAgKC5wYW5lLnZpc2libGUgPiAu
Ym9keSk6CisgICAgICAgICgucGFuZS52aXNpYmxlOm50aC1sYXN0LW9mLXR5cGUoMSkpOgorICAg
ICAgICAoLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAu
cGFuZS10aXRsZS1idXR0b24sIGJ1dHRvbi5zaG93LWFsbC1ub2Rlcyk6CisgICAgICAgICgucGFu
ZWwtZW5hYmxlci12aWV3IGJ1dHRvbjphY3RpdmU6bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAucGFu
ZS10aXRsZS1idXR0b246YWN0aXZlLCBidXR0b24uc2hvdy1hbGwtbm9kZXM6YWN0aXZlKToKKyAg
ICAgICAgKGJvZHkuaW5hY3RpdmUgLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246bm90KC5zdGF0
dXMtYmFyLWl0ZW0pLCAucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpkaXNhYmxlZDpub3QoLnN0
YXR1cy1iYXItaXRlbSksIGJvZHkuaW5hY3RpdmUgLnBhbmUtdGl0bGUtYnV0dG9uLCAucGFuZS10
aXRsZS1idXR0b246ZGlzYWJsZWQsIGJvZHkuaW5hY3RpdmUgYnV0dG9uLnNob3ctYWxsLW5vZGVz
KToKKwogMjAxMy0wMi0wNCAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHN5bmMgbGlzdCBvZiBjb25zb2xlIEFQSSBtZXRob2Rz
IHRvIHRoYXQgdXNlZCBieSBhdXRvLWNvbXBsZXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UmVzdWx0Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSZXN1bHRWaWV3LmpzCmluZGV4IGYyODBlZjY0MzMy
OWYxNGExNmI1ZTQzODg2YjI5ODQ2ZmQ3MTIxNWQuLjQ0ZjM3OGMyYTBmMDkwZmIxOWZiYThhMzIx
ODJlZGMzMjFjMWQ3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQXVkaXRSZXN1bHRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQXVkaXRSZXN1bHRWaWV3LmpzCkBAIC0zMCwyNCArMzAsMjQgQEAKIAogLyoqCiAg
KiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30KKyAqIEBleHRl
bmRzIHtXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFja30KICAqIEBwYXJhbSB7IUFycmF5Ljwh
V2ViSW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcnlSZXN1bHQ+fSBjYXRlZ29yeVJlc3VsdHMKICAqLwog
V2ViSW5zcGVjdG9yLkF1ZGl0UmVzdWx0VmlldyA9IGZ1bmN0aW9uKGNhdGVnb3J5UmVzdWx0cykK
IHsKLSAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwotICAgIHRoaXMuZWxlbWVudC5j
bGFzc05hbWUgPSAiYXVkaXQtcmVzdWx0LXZpZXciOworICAgIFdlYkluc3BlY3Rvci5TaWRlYmFy
UGFuZVN0YWNrLmNhbGwodGhpcyk7CisgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImF1
ZGl0LXJlc3VsdC12aWV3Iik7CiAKICAgICBmdW5jdGlvbiBjYXRlZ29yeVNvcnRlcihhLCBiKSB7
CiAgICAgICAgIHJldHVybiAoYS50aXRsZSB8fCAiIikubG9jYWxlQ29tcGFyZShiLnRpdGxlIHx8
ICIiKTsKICAgICB9CiAgICAgY2F0ZWdvcnlSZXN1bHRzLnNvcnQoY2F0ZWdvcnlTb3J0ZXIpOwog
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0ZWdvcnlSZXN1bHRzLmxlbmd0aDsgKytpKQotICAg
ICAgICBuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcnlSZXN1bHRQYW5lKGNhdGVnb3J5UmVz
dWx0c1tpXSkuc2hvdyh0aGlzLmVsZW1lbnQpOworICAgICAgICB0aGlzLmFkZFBhbmUobmV3IFdl
Ykluc3BlY3Rvci5BdWRpdENhdGVnb3J5UmVzdWx0UGFuZShjYXRlZ29yeVJlc3VsdHNbaV0pKTsK
IH0KIAogV2ViSW5zcGVjdG9yLkF1ZGl0UmVzdWx0Vmlldy5wcm90b3R5cGUgPSB7Ci0gICAgX19w
cm90b19fOiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUKKyAgICBfX3Byb3RvX186IFdlYklu
c3BlY3Rvci5TaWRlYmFyUGFuZVN0YWNrLnByb3RvdHlwZQogfQogCiAvKioKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFu
ZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRl
YmFyUGFuZS5qcwppbmRleCBmMjBhYjVkOTM1YWE0ZmY2MTY1OGRkODJiYjVhMmVjMmQ4ZGYxYzBi
Li5hYTQ3NzgzZGFlNjIyNDZkMDg0N2UzNDc4NDU1MWM3NmFhZjM5ZTdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1Np
ZGViYXJQYW5lLmpzCkBAIC0xMzAsOCArMTMwLDcgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRC
cmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgYnJlYWtwb2ludEl0
ZW0uY2hlY2tib3ggPSBjaGVja2JveDsKICAgICAgICAgdGhpcy5faXRlbXMucHV0KGJyZWFrcG9p
bnQsIGJyZWFrcG9pbnRJdGVtKTsKIAotICAgICAgICBpZiAoIXRoaXMuZXhwYW5kZWQpCi0gICAg
ICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5leHBhbmQoKTsKICAg
ICB9LAogCiAgICAgLyoqCkBAIC0zMDUsNyArMzA0LDcgQEAgV2ViSW5zcGVjdG9yLlhIUkJyZWFr
cG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICBpZiAoZXZlbnQpCiAgICAg
ICAgICAgICBldmVudC5jb25zdW1lKCk7CiAKLSAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7
CisgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAKICAgICAgICAgdmFyIGlucHV0RWxlbWVudENvbnRh
aW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKICAgICAgICAgaW5wdXRFbGVtZW50
Q29udGFpbmVyLmNsYXNzTmFtZSA9ICJicmVha3BvaW50LWNvbmRpdGlvbiI7CkBAIC00MzgsNyAr
NDM3LDcgQEAgV2ViSW5zcGVjdG9yLlhIUkJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBl
ID0gewogICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMuX2JyZWFrcG9pbnRFbGVtZW50c1t1cmxd
OwogICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRo
aXMuZXhwYW5kZWQgPSB0cnVlOworICAgICAgICB0aGlzLmV4cGFuZCgpOwogICAgICAgICBlbGVt
ZW50LmFkZFN0eWxlQ2xhc3MoImJyZWFrcG9pbnQtaGl0Iik7CiAgICAgICAgIHRoaXMuX2hpZ2hs
aWdodGVkRWxlbWVudCA9IGVsZW1lbnQ7CiAgICAgfSwKQEAgLTYzNiw3ICs2MzUsNyBAQCBXZWJJ
bnNwZWN0b3IuRXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0g
ewogICAgICAgICB2YXIgYnJlYWtwb2ludEl0ZW0gPSB0aGlzLl9icmVha3BvaW50SXRlbXNbZXZl
bnROYW1lXTsKICAgICAgICAgaWYgKCFicmVha3BvaW50SXRlbSkKICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CisgICAgICAgIHRoaXMuZXhwYW5kKCk7
CiAgICAgICAgIGJyZWFrcG9pbnRJdGVtLnBhcmVudC5lbGVtZW50LmV4cGFuZCgpOwogICAgICAg
ICBicmVha3BvaW50SXRlbS5lbGVtZW50Lmxpc3RJdGVtRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJi
cmVha3BvaW50LWhpdCIpOwogICAgICAgICB0aGlzLl9oaWdobGlnaHRlZEVsZW1lbnQgPSBicmVh
a3BvaW50SXRlbS5lbGVtZW50Lmxpc3RJdGVtRWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQnJlYWtwb2ludHNTaWRlYmFy
UGFuZS5qcwppbmRleCBhZGJiNDdjZWRlZTQwYTU2Y2NmYTcyZGM1Mjc1NjA4N2U4OGNkMzIzLi5h
ZDA1YWE4N2Y5NDdlYWU2YjQwZmY5ODUyNzA3ODExZGFmMWM4NjQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01CcmVha3BvaW50
c1NpZGViYXJQYW5lLmpzCkBAIC0yNjIsNyArMjYyLDcgQEAgV2ViSW5zcGVjdG9yLkRPTUJyZWFr
cG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgZWxlbWVudCA9IHRo
aXMuX2JyZWFrcG9pbnRFbGVtZW50c1ticmVha3BvaW50SWRdOwogICAgICAgICBpZiAoIWVsZW1l
bnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlOwor
ICAgICAgICB0aGlzLmV4cGFuZCgpOwogICAgICAgICBlbGVtZW50LmFkZFN0eWxlQ2xhc3MoImJy
ZWFrcG9pbnQtaGl0Iik7CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVkRWxlbWVudCA9IGVsZW1l
bnQ7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RWxlbWVudHNQYW5lbC5qcwppbmRleCA2ZDI3MDY1NTQxYTljYjlkNzVjMGQyZTBjY2ZmZmFkMzgx
OGUxMGYyLi5kYjQzZjg2NzE0YWJkY2YyNTA3OTFiNDBiODk4MjE2NmFjZDllZTZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpz
CkBAIC04NiwxOSArODYsMjEgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwgPSBmdW5jdGlv
bigpCiAgICAgdGhpcy5zaWRlYmFyUGFuZXMuZG9tQnJlYWtwb2ludHMgPSBXZWJJbnNwZWN0b3Iu
ZG9tQnJlYWtwb2ludHNTaWRlYmFyUGFuZTsKICAgICB0aGlzLnNpZGViYXJQYW5lcy5ldmVudExp
c3RlbmVycyA9IG5ldyBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZSgpOwog
Ci0gICAgdGhpcy5zaWRlYmFyUGFuZXMuc3R5bGVzLm9uZXhwYW5kID0gdGhpcy51cGRhdGVTdHls
ZXMuYmluZCh0aGlzKTsKLSAgICB0aGlzLnNpZGViYXJQYW5lcy5tZXRyaWNzLm9uZXhwYW5kID0g
dGhpcy51cGRhdGVNZXRyaWNzLmJpbmQodGhpcyk7Ci0gICAgdGhpcy5zaWRlYmFyUGFuZXMucHJv
cGVydGllcy5vbmV4cGFuZCA9IHRoaXMudXBkYXRlUHJvcGVydGllcy5iaW5kKHRoaXMpOwotICAg
IHRoaXMuc2lkZWJhclBhbmVzLmV2ZW50TGlzdGVuZXJzLm9uZXhwYW5kID0gdGhpcy51cGRhdGVF
dmVudExpc3RlbmVycy5iaW5kKHRoaXMpOworICAgIHRoaXMuc2lkZWJhclBhbmVzLnN0eWxlcy5z
ZXRTaG93Q2FsbGJhY2sodGhpcy51cGRhdGVTdHlsZXMuYmluZCh0aGlzKSk7CisgICAgdGhpcy5z
aWRlYmFyUGFuZXMubWV0cmljcy5zZXRTaG93Q2FsbGJhY2sodGhpcy51cGRhdGVNZXRyaWNzLmJp
bmQodGhpcykpOworICAgIHRoaXMuc2lkZWJhclBhbmVzLnByb3BlcnRpZXMuc2V0U2hvd0NhbGxi
YWNrKHRoaXMudXBkYXRlUHJvcGVydGllcy5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLnNpZGViYXJQ
YW5lcy5ldmVudExpc3RlbmVycy5zZXRTaG93Q2FsbGJhY2sodGhpcy51cGRhdGVFdmVudExpc3Rl
bmVycy5iaW5kKHRoaXMpKTsKIAotICAgIHRoaXMuc2lkZWJhclBhbmVzLnN0eWxlcy5leHBhbmRl
ZCA9IHRydWU7CisgICAgdGhpcy5zaWRlYmFyUGFuZXMuc3R5bGVzLmV4cGFuZCgpOwogCiAgICAg
dGhpcy5zaWRlYmFyUGFuZXMuc3R5bGVzLmFkZEV2ZW50TGlzdGVuZXIoInN0eWxlIGVkaXRlZCIs
IHRoaXMuX3N0eWxlc1BhbmVFZGl0ZWQsIHRoaXMpOwogICAgIHRoaXMuc2lkZWJhclBhbmVzLnN0
eWxlcy5hZGRFdmVudExpc3RlbmVyKCJzdHlsZSBwcm9wZXJ0eSB0b2dnbGVkIiwgdGhpcy5fc3R5
bGVzUGFuZUVkaXRlZCwgdGhpcyk7CiAgICAgdGhpcy5zaWRlYmFyUGFuZXMubWV0cmljcy5hZGRF
dmVudExpc3RlbmVyKCJtZXRyaWNzIGVkaXRlZCIsIHRoaXMuX21ldHJpY3NQYW5lRWRpdGVkLCB0
aGlzKTsKIAorICAgIHRoaXMuc2lkZWJhclBhbmVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5TaWRl
YmFyUGFuZVN0YWNrKCk7CiAgICAgZm9yICh2YXIgcGFuZSBpbiB0aGlzLnNpZGViYXJQYW5lcykK
LSAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXNbcGFuZV0uc2hvdyh0aGlzLnNpZGViYXJFbGVtZW50
KTsKKyAgICAgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcuYWRkUGFuZSh0aGlzLnNpZGViYXJQYW5l
c1twYW5lXSk7CisgICAgdGhpcy5zaWRlYmFyUGFuZVZpZXcuc2hvdyh0aGlzLnNpZGViYXJFbGVt
ZW50KTsKIAogICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92
ZXJIZWxwZXIodGhpcy5lbGVtZW50LCB0aGlzLl9nZXRQb3BvdmVyQW5jaG9yLmJpbmQodGhpcyks
IHRoaXMuX3Nob3dQb3BvdmVyLmJpbmQodGhpcykpOwogICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIu
c2V0VGltZW91dCgwKTsKQEAgLTE0Myw4ICsxNDUsNiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgaWYgKCF0aGlzLnRyZWVPdXRsaW5lLnJvb3RE
T01Ob2RlKQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnJlcXVlc3REb2N1bWVu
dCgpOwotCi0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmRvbUJyZWFrcG9pbnRzLnNob3codGhp
cy5zaWRlYmFyRWxlbWVudCwgdGhpcy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMuZWxlbWVu
dCk7CiAgICAgfSwKIAogICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCkBAIC05NzMsNyArOTczLDcg
QEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAg
ICAgdmFyIHN0eWxlc1NpZGViYXJQYW5lID0gdGhpcy5zaWRlYmFyUGFuZXMuc3R5bGVzOwogICAg
ICAgICB2YXIgY29tcHV0ZWRTdHlsZVBhbmUgPSB0aGlzLnNpZGViYXJQYW5lcy5jb21wdXRlZFN0
eWxlOwotICAgICAgICBpZiAoKCFzdHlsZXNTaWRlYmFyUGFuZS5leHBhbmRlZCAmJiAhY29tcHV0
ZWRTdHlsZVBhbmUuZXhwYW5kZWQpIHx8ICFzdHlsZXNTaWRlYmFyUGFuZS5uZWVkc1VwZGF0ZSkK
KyAgICAgICAgaWYgKCghc3R5bGVzU2lkZWJhclBhbmUuaXNTaG93aW5nKCkgJiYgIWNvbXB1dGVk
U3R5bGVQYW5lLmlzU2hvd2luZygpKSB8fCAhc3R5bGVzU2lkZWJhclBhbmUubmVlZHNVcGRhdGUp
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgc3R5bGVzU2lkZWJhclBhbmUudXBkYXRl
KHRoaXMuc2VsZWN0ZWRET01Ob2RlKCksIGZvcmNlVXBkYXRlKTsKQEAgLTk4Myw3ICs5ODMsNyBA
QCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgdXBkYXRlTWV0
cmljczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIG1ldHJpY3NTaWRlYmFyUGFuZSA9
IHRoaXMuc2lkZWJhclBhbmVzLm1ldHJpY3M7Ci0gICAgICAgIGlmICghbWV0cmljc1NpZGViYXJQ
YW5lLmV4cGFuZGVkIHx8ICFtZXRyaWNzU2lkZWJhclBhbmUubmVlZHNVcGRhdGUpCisgICAgICAg
IGlmICghbWV0cmljc1NpZGViYXJQYW5lLmlzU2hvd2luZygpIHx8ICFtZXRyaWNzU2lkZWJhclBh
bmUubmVlZHNVcGRhdGUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbWV0cmljc1Np
ZGViYXJQYW5lLnVwZGF0ZSh0aGlzLnNlbGVjdGVkRE9NTm9kZSgpKTsKQEAgLTk5Myw3ICs5OTMs
NyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgdXBkYXRl
UHJvcGVydGllczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHByb3BlcnRpZXNTaWRl
YmFyUGFuZSA9IHRoaXMuc2lkZWJhclBhbmVzLnByb3BlcnRpZXM7Ci0gICAgICAgIGlmICghcHJv
cGVydGllc1NpZGViYXJQYW5lLmV4cGFuZGVkIHx8ICFwcm9wZXJ0aWVzU2lkZWJhclBhbmUubmVl
ZHNVcGRhdGUpCisgICAgICAgIGlmICghcHJvcGVydGllc1NpZGViYXJQYW5lLmlzU2hvd2luZygp
IHx8ICFwcm9wZXJ0aWVzU2lkZWJhclBhbmUubmVlZHNVcGRhdGUpCiAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgcHJvcGVydGllc1NpZGViYXJQYW5lLnVwZGF0ZSh0aGlzLnNlbGVjdGVk
RE9NTm9kZSgpKTsKQEAgLTEwMDMsNyArMTAwMyw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICB1cGRhdGVFdmVudExpc3RlbmVyczogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdmFyIGV2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUgPSB0aGlzLnNpZGVi
YXJQYW5lcy5ldmVudExpc3RlbmVyczsKLSAgICAgICAgaWYgKCFldmVudExpc3RlbmVyc1NpZGVi
YXJQYW5lLmV4cGFuZGVkIHx8ICFldmVudExpc3RlbmVyc1NpZGViYXJQYW5lLm5lZWRzVXBkYXRl
KQorICAgICAgICBpZiAoIWV2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuaXNTaG93aW5nKCkgfHwg
IWV2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUubmVlZHNVcGRhdGUpCiAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgZXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS51cGRhdGUodGhpcy5zZWxl
Y3RlZERPTU5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25QYW5lbC5qcwppbmRleCAwNDNiY2MxNjI0NGZhYTJhODE1ZWYwYTBlNWEz
MWZjYmFhOThhMmNjLi4wOWE0ZDZiMTk1N2QwNmFjNTU5ODcwYmJkY2ViNTZkMjUzODZjYjUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9u
UGFuZWwuanMKQEAgLTE0MCw2ICsxNDAsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uQnV0dG9u
LnByb3RvdHlwZSA9IHsKIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TaWRlYmFyUGFuZSA9IGZ1bmN0
aW9uKHRpdGxlLCBpZCkKIHsKICAgICBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUuY2FsbCh0aGlz
LCB0aXRsZSk7CisgICAgdGhpcy5zZXRIaWRlT25EZXRhY2goKTsKICAgICB0aGlzLl9pZCA9IGlk
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4
dGVuc2lvblNlcnZlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0
ZW5zaW9uU2VydmVyLmpzCmluZGV4IDc2OGI4NjFhNmQ1NmU1MDczNmQwYWE4NmI2ZGFjNGY3MWYz
MzE5MzIuLmMxMTYxYmUyOGQxNjhkNDQ2MTgzZjc1MWE1YmM5ZTQyMjI5Yjk2NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVy
LmpzCkBAIC0yMzEsMTMgKzIzMSwxMyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVsKG1lc3Nh
Z2UucGFuZWwpOwogICAgICAgICBpZiAoIXBhbmVsKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X3N0YXR1cy5FX05PVEZPVU5EKG1lc3NhZ2UucGFuZWwpOwotICAgICAgICBpZiAoIXBhbmVsLnNp
ZGViYXJFbGVtZW50IHx8ICFwYW5lbC5zaWRlYmFyUGFuZXMpCisgICAgICAgIGlmICghcGFuZWwu
c2lkZWJhclBhbmVWaWV3IHx8ICFwYW5lbC5zaWRlYmFyUGFuZXMpCiAgICAgICAgICAgICByZXR1
cm4gdGhpcy5fc3RhdHVzLkVfTk9UU1VQUE9SVEVEKCk7CiAgICAgICAgIHZhciBpZCA9IG1lc3Nh
Z2UuaWQ7CiAgICAgICAgIHZhciBzaWRlYmFyID0gbmV3IFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
aWRlYmFyUGFuZShtZXNzYWdlLnRpdGxlLCBtZXNzYWdlLmlkKTsKICAgICAgICAgdGhpcy5fY2xp
ZW50T2JqZWN0c1tpZF0gPSBzaWRlYmFyOwogICAgICAgICBwYW5lbC5zaWRlYmFyUGFuZXNbaWRd
ID0gc2lkZWJhcjsKLSAgICAgICAgc2lkZWJhci5zaG93KHBhbmVsLnNpZGViYXJFbGVtZW50KTsK
KyAgICAgICAgcGFuZWwuc2lkZWJhclBhbmVWaWV3LmFkZFBhbmUoc2lkZWJhcik7CiAKICAgICAg
ICAgcmV0dXJuIHRoaXMuX3N0YXR1cy5PSygpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDQ1OTczNGI3YTcz
MGRjOTZhMTQ3YzZiNGU5MWVhOGRhODU4MTdkZGEuLjRiMDFhYzYzY2ZlM2UxODRmNjRhMTE4YmY2
MDE1Mzk3Mjk0MWNmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0xMjIsMjAgKzEyMiwxOCBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsID0gZnVuY3Rpb24od29ya3NwYWNlRm9yVGVzdCkKICAgICAgICAgdGhpcy5z
aWRlYmFyUGFuZXMud29ya2VyTGlzdCA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya2Vyc1NpZGViYXJQ
YW5lKFdlYkluc3BlY3Rvci53b3JrZXJNYW5hZ2VyKTsKICAgICB9CiAKLSAgICB0aGlzLl9kZWJ1
Z1NpZGViYXJDb250ZW50c0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
LSAgICB0aGlzLl9kZWJ1Z1NpZGViYXJDb250ZW50c0VsZW1lbnQuaWQgPSAic2NyaXB0cy1kZWJ1
Zy1zaWRlYmFyLWNvbnRlbnRzIjsKLSAgICB0aGlzLnNpZGViYXJFbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX2RlYnVnU2lkZWJhckNvbnRlbnRzRWxlbWVudCk7Ci0KLSAgICBmb3IgKHZhciBwYW5l
IGluIHRoaXMuc2lkZWJhclBhbmVzKSB7Ci0gICAgICAgIGlmICh0aGlzLnNpZGViYXJQYW5lc1tw
YW5lXSA9PT0gdGhpcy5zaWRlYmFyUGFuZXMuZG9tQnJlYWtwb2ludHMpCi0gICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXNbcGFuZV0uc2hvdyh0aGlzLl9kZWJ1
Z1NpZGViYXJDb250ZW50c0VsZW1lbnQpOwotICAgIH0KKyAgICB0aGlzLnNpZGViYXJQYW5lVmll
dyA9IG5ldyBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmVTdGFjaygpOworICAgIHRoaXMuc2lkZWJh
clBhbmVWaWV3LmVsZW1lbnQuaWQgPSAic2NyaXB0cy1kZWJ1Zy1zaWRlYmFyLWNvbnRlbnRzIjsK
KyAgICBmb3IgKHZhciBwYW5lIGluIHRoaXMuc2lkZWJhclBhbmVzKQorICAgICAgICB0aGlzLnNp
ZGViYXJQYW5lVmlldy5hZGRQYW5lKHRoaXMuc2lkZWJhclBhbmVzW3BhbmVdKTsKKyAgICB0aGlz
LnNpZGViYXJQYW5lVmlldy5zaG93KHRoaXMuc2lkZWJhckVsZW1lbnQpOwogCi0gICAgdGhpcy5z
aWRlYmFyUGFuZXMuY2FsbHN0YWNrLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICBpZiAoV2ViSW5zcGVj
dG9yLnNldHRpbmdzLndhdGNoRXhwcmVzc2lvbnMuZ2V0KCkubGVuZ3RoID4gMCkKKyAgICAgICAg
dGhpcy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5leHBhbmQoKTsKIAotICAgIHRoaXMu
c2lkZWJhclBhbmVzLnNjb3BlY2hhaW4uZXhwYW5kZWQgPSB0cnVlOwotICAgIHRoaXMuc2lkZWJh
clBhbmVzLmpzQnJlYWtwb2ludHMuZXhwYW5kZWQgPSB0cnVlOworICAgIHRoaXMuc2lkZWJhclBh
bmVzLmNhbGxzdGFjay5leHBhbmQoKTsKKyAgICB0aGlzLnNpZGViYXJQYW5lcy5zY29wZWNoYWlu
LmV4cGFuZCgpOworICAgIHRoaXMuc2lkZWJhclBhbmVzLmpzQnJlYWtwb2ludHMuZXhwYW5kKCk7
CiAKICAgICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2sucmVnaXN0ZXJTaG9ydGN1dHModGhp
cy5yZWdpc3RlclNob3J0Y3V0cy5iaW5kKHRoaXMpKTsKICAgICB0aGlzLnJlZ2lzdGVyU2hvcnRj
dXRzKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5FdmFs
dWF0ZVNlbGVjdGlvbkluQ29uc29sZSwgdGhpcy5fZXZhbHVhdGVTZWxlY3Rpb25JbkNvbnNvbGUu
YmluZCh0aGlzKSk7CkBAIC0yMTUsOCArMjEzLDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKLSAgICAg
ICAgdGhpcy5zaWRlYmFyUGFuZXMuZG9tQnJlYWtwb2ludHMuc2hvdyh0aGlzLl9kZWJ1Z1NpZGVi
YXJDb250ZW50c0VsZW1lbnQsIHRoaXMuc2lkZWJhclBhbmVzLnhockJyZWFrcG9pbnRzLmVsZW1l
bnQpOwotCiAgICAgICAgIHRoaXMuX25hdmlnYXRvckNvbnRyb2xsZXIud2FzU2hvd24oKTsKICAg
ICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Np
ZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFy
UGFuZS5qcwppbmRleCBlZDNkYmEzYzZkZTEwMTQ0NGI1YmE1YWNmNTViNDA5MmUzMWYzOGNjLi40
NWEzOWE5YmU1MjFmNWIxM2E3MWViOTA1NTlkZWNiNWUxNDJmN2E5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclBhbmUuanMKQEAgLTM1LDEwMyAr
MzUsMTkzIEBAIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKHRpdGxlKQogICAg
IFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CiAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFt
ZSA9ICJwYW5lIjsKIAotICAgIHRoaXMudGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Ci0gICAgdGhpcy50aXRsZUVsZW1lbnQuY2xhc3NOYW1lID0gInRpdGxlIjsK
LSAgICB0aGlzLnRpdGxlRWxlbWVudC50YWJJbmRleCA9IDA7Ci0gICAgdGhpcy50aXRsZUVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLnRvZ2dsZUV4cGFuZGVkLmJpbmQodGhp
cyksIGZhbHNlKTsKLSAgICB0aGlzLnRpdGxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlk
b3duIiwgdGhpcy5fb25UaXRsZUtleURvd24uYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMu
dGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOworICAgIHRo
aXMuYm9keUVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJib2R5Iik7
CiAKLSAgICB0aGlzLmJvZHlFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
Ci0gICAgdGhpcy5ib2R5RWxlbWVudC5jbGFzc05hbWUgPSAiYm9keSI7CisgICAgdGhpcy5fdGl0
bGUgPSB0aXRsZTsKIAotICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnRpdGxlRWxl
bWVudCk7Ci0gICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuYm9keUVsZW1lbnQpOwot
Ci0gICAgdGhpcy50aXRsZSA9IHRpdGxlOwotICAgIHRoaXMuZ3Jvd2JhclZpc2libGUgPSBmYWxz
ZTsKLSAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7CisgICAgdGhpcy5fZXhwYW5kQ2FsbGJhY2sg
PSBudWxsOworICAgIHRoaXMuX3Nob3dDYWxsYmFjayA9IG51bGw7CiB9CiAKIFdlYkluc3BlY3Rv
ci5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IHRpdGxlKCkKKyAgICB0aXRsZTog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlOwogICAgIH0sCiAK
LSAgICBzZXQgdGl0bGUoeCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxs
YmFjaworICAgICAqLworICAgIHByZXBhcmVDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl90aXRsZSA9PT0geCkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgdGhpcy5fdGl0bGUgPSB4OwotICAgICAgICB0aGlzLnRpdGxlRWxlbWVudC50ZXh0
Q29udGVudCA9IHg7CisgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgfSwKIAotICAgIGdldCBncm93
YmFyVmlzaWJsZSgpCisgICAgZXhwYW5kOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICByZXR1
cm4gdGhpcy5fZ3Jvd2JhclZpc2libGU7CisgICAgICAgIGlmICh0aGlzLl9leHBhbmRDYWxsYmFj
aykKKyAgICAgICAgICAgIHRoaXMucHJlcGFyZUNvbnRlbnQodGhpcy5vbkNvbnRlbnRSZWFkeS5i
aW5kKHRoaXMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fZXhwYW5kUGVuZGlu
ZyA9IHRydWU7CiAgICAgfSwKIAotICAgIHNldCBncm93YmFyVmlzaWJsZSh4KQorICAgIG9uQ29u
dGVudFJlYWR5OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fZ3Jvd2JhclZp
c2libGUgPT09IHgpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuX2V4cGFuZENh
bGxiYWNrKCk7CisgICAgfSwKIAotICAgICAgICB0aGlzLl9ncm93YmFyVmlzaWJsZSA9IHg7Cisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sKKyAgICAgKiBAcmV0dXJu
IHtib29sZWFufQorICAgICAqLworICAgIHNldEV4cGFuZENhbGxiYWNrOiBmdW5jdGlvbihjYWxs
YmFjaykKKyAgICB7CisgICAgICAgIHRoaXMuX2V4cGFuZENhbGxiYWNrID0gY2FsbGJhY2s7Cisg
ICAgICAgIHZhciBwZW5kaW5nID0gdGhpcy5fZXhwYW5kUGVuZGluZzsKKyAgICAgICAgZGVsZXRl
IHRoaXMuX2V4cGFuZFBlbmRpbmc7CisgICAgICAgIHJldHVybiBwZW5kaW5nOworICAgIH0sCiAK
LSAgICAgICAgaWYgKHggJiYgIXRoaXMuX2dyb3diYXJFbGVtZW50KSB7Ci0gICAgICAgICAgICB0
aGlzLl9ncm93YmFyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAg
ICAgICAgICAgdGhpcy5fZ3Jvd2JhckVsZW1lbnQuY2xhc3NOYW1lID0gImdyb3diYXIiOwotICAg
ICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2dyb3diYXJFbGVtZW50KTsK
LSAgICAgICAgfSBlbHNlIGlmICgheCAmJiB0aGlzLl9ncm93YmFyRWxlbWVudCkgewotICAgICAg
ICAgICAgaWYgKHRoaXMuX2dyb3diYXJFbGVtZW50LnBhcmVudE5vZGUpCi0gICAgICAgICAgICAg
ICAgdGhpcy5fZ3Jvd2JhckVsZW1lbnQucGFyZW50Tm9kZSh0aGlzLl9ncm93YmFyRWxlbWVudCk7
Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fZ3Jvd2JhckVsZW1lbnQ7Ci0gICAgICAgIH0KKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjaworICAgICAqLworICAgIHNl
dFNob3dDYWxsYmFjazogZnVuY3Rpb24oY2FsbGJhY2spCisgICAgeworICAgICAgICB0aGlzLl9z
aG93Q2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICB9LAogCi0gICAgZ2V0IGV4cGFuZGVkKCkKKyAg
ICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFu
ZGVkOworICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0
aGlzKTsKKyAgICAgICAgaWYgKHRoaXMuX3Nob3dDYWxsYmFjaykKKyAgICAgICAgICAgIHRoaXMu
X3Nob3dDYWxsYmFjaygpOwogICAgIH0sCiAKLSAgICBzZXQgZXhwYW5kZWQoeCkKKyAgICBfX3By
b3RvX186IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZQorfQorCisvKioKKyAqIEBjb25zdHJ1
Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQorICovCitXZWJJbnNwZWN0b3Iu
U2lkZWJhclBhbmVTdGFjayA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5j
YWxsKHRoaXMpOworICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAic2lkZWJhci1wYW5lLXN0
YWNrIGZpbGwiOworCisgICAgdGhpcy5fdGl0bGVzID0gW107CisgICAgdGhpcy5fcGFuZXMgPSBb
XTsKK30KKworV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lU3RhY2sucHJvdG90eXBlID0geworICAg
IHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAoeCkKLSAgICAgICAgICAg
IHRoaXMuZXhwYW5kKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuY29sbGFwc2Uo
KTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhp
cyk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fcGFuZXMubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICB0aGlzLl9hdHRhY2hUb1BhbmUoaSk7CiAgICAgfSwKIAotICAgIGV4cGFu
ZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNpZGVi
YXJQYW5lfSBwYW5lCisgICAgICovCisgICAgYWRkUGFuZTogZnVuY3Rpb24ocGFuZSkKKyAgICB7
CisgICAgICAgIHZhciBpbmRleCA9IHRoaXMuX3BhbmVzLmxlbmd0aDsgCisgICAgICAgIHRoaXMu
X3BhbmVzLnB1c2gocGFuZSk7CisgICAgICAgIHRoaXMuX2FkZFRpdGxlKHBhbmUsIGluZGV4KTsK
KyAgICAgICAgaWYgKHRoaXMuaXNTaG93aW5nKCkpCisgICAgICAgICAgICB0aGlzLl9hdHRhY2hU
b1BhbmUoaW5kZXgpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5TaWRlYmFyUGFuZX0gcGFuZQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAg
ICAqLworICAgIF9hZGRUaXRsZTogZnVuY3Rpb24ocGFuZSwgaW5kZXgpCisgICAgeworICAgICAg
ICB2YXIgdGl0bGUgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJwYW5lLXRpdGxl
Iik7CisgICAgICAgIHRpdGxlLnRleHRDb250ZW50ID0gcGFuZS50aXRsZSgpOworICAgICAgICB0
aXRsZS50YWJJbmRleCA9IDA7CisgICAgICAgIHRpdGxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgdGhpcy5fdG9nZ2xlUGFuZS5iaW5kKHRoaXMsIGluZGV4KSwgZmFsc2UpOworICAgICAgICB0
aXRsZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fb25UaXRsZUtleURvd24uYmlu
ZCh0aGlzLCBpbmRleCksIGZhbHNlKTsKKyAgICAgICAgdGl0bGUuYXBwZW5kQ2hpbGQocGFuZS50
aXRsZUVsZW1lbnQpOworICAgICAgICB0aGlzLl90aXRsZXMucHVzaCh0aXRsZSk7CisgICAgfSwK
KworICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAgICAqLworICAgIF9h
dHRhY2hUb1BhbmU6IGZ1bmN0aW9uKGluZGV4KQorICAgIHsKKyAgICAgICAgdmFyIHBhbmUgPSB0
aGlzLl9wYW5lc1tpbmRleF07CisgICAgICAgIHZhciB0aXRsZSA9IHRoaXMuX3RpdGxlc1tpbmRl
eF07CisgICAgICAgIHZhciBleHBhbmRQZW5kaW5nID0gcGFuZS5zZXRFeHBhbmRDYWxsYmFjayh0
aGlzLl9vblBhbmVFeHBhbmRlZC5iaW5kKHRoaXMsIGluZGV4KSk7CisgICAgICAgIHRoaXMuX3Nl
dEV4cGFuZGVkKGluZGV4LCB0aGlzLl9pc0V4cGFuZGVkKGluZGV4KSB8fCBleHBhbmRQZW5kaW5n
KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4CisgICAg
ICovCisgICAgX2lzRXhwYW5kZWQ6IGZ1bmN0aW9uKGluZGV4KQogICAgIHsKLSAgICAgICAgaWYg
KHRoaXMuX2V4cGFuZGVkKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLl9leHBh
bmRlZCA9IHRydWU7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJleHBhbmRl
ZCIpOwotICAgICAgICB0aGlzLm9uZXhwYW5kKCk7CisgICAgICAgIHZhciB0aXRsZSA9IHRoaXMu
X3RpdGxlc1tpbmRleF07CisgICAgICAgIHJldHVybiB0aXRsZS5oYXNTdHlsZUNsYXNzKCJleHBh
bmRlZCIpOwogICAgIH0sCiAKLSAgICBvbmV4cGFuZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gb24KKyAg
ICAgKi8KKyAgICBfc2V0RXhwYW5kZWQ6IGZ1bmN0aW9uKGluZGV4LCBvbikKICAgICB7CisgICAg
ICAgIGlmIChvbikKKyAgICAgICAgICAgIHRoaXMuX3BhbmVzW2luZGV4XS5wcmVwYXJlQ29udGVu
dCh0aGlzLl9vblBhbmVFeHBhbmRlZC5iaW5kKHRoaXMsIGluZGV4KSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRoaXMuX2NvbGxhcHNlUGFuZShpbmRleCk7CiAgICAgfSwKIAotICAgIGNv
bGxhcHNlOiBmdW5jdGlvbigpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4
CisgICAgICovCisgICAgX29uUGFuZUV4cGFuZGVkOiBmdW5jdGlvbihpbmRleCkKICAgICB7Ci0g
ICAgICAgIGlmICghdGhpcy5fZXhwYW5kZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IHRoaXMuX2V4cGFuZGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVTdHls
ZUNsYXNzKCJleHBhbmRlZCIpOworICAgICAgICB2YXIgcGFuZSA9IHRoaXMuX3BhbmVzW2luZGV4
XTsKKyAgICAgICAgdmFyIHRpdGxlID0gdGhpcy5fdGl0bGVzW2luZGV4XTsKKyAgICAgICAgdGl0
bGUuYWRkU3R5bGVDbGFzcygiZXhwYW5kZWQiKTsKKyAgICAgICAgcGFuZS5zaG93KHRoaXMuZWxl
bWVudCwgdGl0bGUubmV4dFNpYmxpbmcpOwogICAgIH0sCiAKLSAgICB0b2dnbGVFeHBhbmRlZDog
ZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAgICAq
LworICAgIF9jb2xsYXBzZVBhbmU6IGZ1bmN0aW9uKGluZGV4KQogICAgIHsKLSAgICAgICAgdGhp
cy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkOworICAgICAgICB2YXIgcGFuZSA9IHRoaXMuX3Bh
bmVzW2luZGV4XTsKKyAgICAgICAgdmFyIHRpdGxlID0gdGhpcy5fdGl0bGVzW2luZGV4XTsKKyAg
ICAgICAgdGl0bGUucmVtb3ZlU3R5bGVDbGFzcygiZXhwYW5kZWQiKTsKKyAgICAgICAgaWYgKHBh
bmUuZWxlbWVudC5wYXJlbnROb2RlID09IHRoaXMuZWxlbWVudCkKKyAgICAgICAgICAgIHBhbmUu
ZGV0YWNoKCk7CiAgICAgfSwKIAotICAgIF9vblRpdGxlS2V5RG93bjogZnVuY3Rpb24oZXZlbnQp
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4CisgICAgICogQHByaXZhdGUK
KyAgICAgKi8KKyAgICBfdG9nZ2xlUGFuZTogZnVuY3Rpb24oaW5kZXgpCisgICAgeworICAgICAg
ICB0aGlzLl9zZXRFeHBhbmRlZChpbmRleCwgIXRoaXMuX2lzRXhwYW5kZWQoaW5kZXgpKTsKKyAg
ICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAgICAq
IEBwYXJhbSB7RXZlbnR9IGV2ZW50CisgICAgICogQHByaXZhdGUKKyAgICAgKi8KKyAgICBfb25U
aXRsZUtleURvd246IGZ1bmN0aW9uKGluZGV4LCBldmVudCkKICAgICB7CiAgICAgICAgIGlmIChp
c0VudGVyS2V5KGV2ZW50KSB8fCBldmVudC5rZXlDb2RlID09PSBXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dC5LZXlzLlNwYWNlLmNvZGUpCi0gICAgICAgICAgICB0aGlzLnRvZ2dsZUV4cGFu
ZGVkKCk7CisgICAgICAgICAgICB0aGlzLl90b2dnbGVQYW5lKGluZGV4KTsKICAgICB9LAogCiAg
ICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCmlu
ZGV4IDdiMGQyNGFjNTM1ZmUyZjVmNGE5NDNhOTNlMGM1MDY0Yjk4ZTcyZGYuLmRiMzhjODRhZWJh
YzZjYTNkOWViNTNmNDI1OGY3MjM0Mjc4ZmY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwpAQCAtMjM5LDcg
KzIzOSw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAo
dGhpcy5fY29tcHV0ZWRTdHlsZVBhbmUuZXhwYW5kZWQgfHwgZm9yY2VGZXRjaENvbXB1dGVkU3R5
bGUpIHsKKyAgICAgICAgaWYgKHRoaXMuX2NvbXB1dGVkU3R5bGVQYW5lLmlzU2hvd2luZygpIHx8
IGZvcmNlRmV0Y2hDb21wdXRlZFN0eWxlKSB7CiAgICAgICAgICAgICB0aGlzLl9yZWZyZXNoVXBk
YXRlSW5Qcm9ncmVzcyA9IHRydWU7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwu
Z2V0Q29tcHV0ZWRTdHlsZUFzeW5jKG5vZGUuaWQsIGNvbXB1dGVkU3R5bGVDYWxsYmFjay5iaW5k
KHRoaXMpKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTMwMiw3ICszMDIsNyBAQCBXZWJJbnNwZWN0
b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmVzdWx0U3R5
bGVzLmNvbXB1dGVkU3R5bGUgPSBjb21wdXRlZFN0eWxlOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKHRoaXMuX2NvbXB1dGVkU3R5bGVQYW5lLmV4cGFuZGVkKQorICAgICAgICBpZiAodGhpcy5f
Y29tcHV0ZWRTdHlsZVBhbmUuaXNTaG93aW5nKCkpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
Y3NzTW9kZWwuZ2V0Q29tcHV0ZWRTdHlsZUFzeW5jKG5vZGUuaWQsIGNvbXB1dGVkQ2FsbGJhY2su
YmluZCh0aGlzKSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRJbmxpbmVTdHls
ZXNBc3luYyhub2RlLmlkLCBpbmxpbmVDYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLmNzc01vZGVsLmdldE1hdGNoZWRTdHlsZXNBc3luYyhub2RlLmlkLCB0cnVlLCB0
cnVlLCBzdHlsZXNDYWxsYmFjay5iaW5kKHRoaXMpKTsKQEAgLTY3MSw3ICs2NzEsNyBAQCBXZWJJ
bnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgIF9jcmVhdGVOZXdS
dWxlOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKLSAg
ICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CisgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAgICAg
ICAgIHRoaXMuYWRkQmxhbmtTZWN0aW9uKCkuc3RhcnRFZGl0aW5nU2VsZWN0b3IoKTsKICAgICB9
LAogCkBAIC04MDAsMTUgKzgwMCw5IEBAIFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlU2lkZWJh
clBhbmUgPSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlU2lkZWJhclBh
bmUucHJvdG90eXBlID0gewogCi0gICAgLy8gT3ZlcnJpZGluZyBleHBhbmQoKSByYXRoZXIgdGhh
biBvbmV4cGFuZCgpIHRvIGVsaW1pbmF0ZSB0aGUgdmlzdWFsIHNsb3duZXNzIGR1ZSB0byBhIHBv
c3NpYmxlIGJhY2tlbmQgdHJpcC4KLSAgICBleHBhbmQ6IGZ1bmN0aW9uKCkKKyAgICBwcmVwYXJl
Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICBmdW5jdGlvbiBjYWxs
YmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5w
cm90b3R5cGUuZXhwYW5kLmNhbGwodGhpcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9z
dHlsZXNTaWRlYmFyUGFuZS5fcmVmcmVzaFVwZGF0ZShudWxsLCB0cnVlLCBjYWxsYmFjay5iaW5k
KHRoaXMpKTsKKyAgICAgICAgdGhpcy5fc3R5bGVzU2lkZWJhclBhbmUuX3JlZnJlc2hVcGRhdGUo
bnVsbCwgdHJ1ZSwgY2FsbGJhY2spOwogICAgIH0sCiAKICAgICBfX3Byb3RvX186IFdlYkluc3Bl
Y3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUu
anMKaW5kZXggMzRiOTY5ZTI0N2JiZmI4MzRhZTM3NzM1Y2NiNDAxODEwM2E5ZjRiYi4uMWE1MDk4
Njg1NTkyMDBkZDY4Y2I2NzMzNDBhN2EzMmEzYzE2Y2NhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25z
U2lkZWJhclBhbmUuanMKQEAgLTM1LDM1ICszNSwyOSBAQAogV2ViSW5zcGVjdG9yLldhdGNoRXhw
cmVzc2lvbnNTaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKCkKIHsKICAgICBXZWJJbnNwZWN0b3IuU2lk
ZWJhclBhbmUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldhdGNoIEV4cHJlc3Np
b25zIikpOwotfQogCi1XZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLnBy
b3RvdHlwZSA9IHsKLSAgICB3YXNTaG93bjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgLy8g
RXhwYW5kIGFuZCB1cGRhdGUgd2F0Y2hlcyBmaXJzdCB0aW1lIHRoZXkgYXJlIHNob3duLgotICAg
ICAgICBpZiAodGhpcy5zZWN0aW9uKSB7Ci0gICAgICAgICAgICB0aGlzLl9yZWZyZXNoRXhwcmVz
c2lvbnNJZk5lZWRlZCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgdGhp
cy5zZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25zU2VjdGlvbigpOwor
ICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zZWN0aW9uLmVsZW1lbnQpOwog
Ci0gICAgICAgIHRoaXMuc2VjdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9u
c1NlY3Rpb24oKTsKLSAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnNl
Y3Rpb24uZWxlbWVudCk7CisgICAgdmFyIHJlZnJlc2hCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJidXR0b24iKTsKKyAgICByZWZyZXNoQnV0dG9uLmNsYXNzTmFtZSA9ICJwYW5lLXRp
dGxlLWJ1dHRvbiByZWZyZXNoIjsKKyAgICByZWZyZXNoQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgdGhpcy5fcmVmcmVzaEJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwor
ICAgIHJlZnJlc2hCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlZnJlc2gi
KTsKKyAgICB0aGlzLnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZChyZWZyZXNoQnV0dG9uKTsKIAot
ICAgICAgICB2YXIgcmVmcmVzaEJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRv
biIpOwotICAgICAgICByZWZyZXNoQnV0dG9uLmNsYXNzTmFtZSA9ICJwYW5lLXRpdGxlLWJ1dHRv
biByZWZyZXNoIjsKLSAgICAgICAgcmVmcmVzaEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIHRoaXMuX3JlZnJlc2hCdXR0b25DbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKLSAgICAg
ICAgcmVmcmVzaEJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVmcmVzaCIp
OwotICAgICAgICB0aGlzLnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZChyZWZyZXNoQnV0dG9uKTsK
KyAgICB2YXIgYWRkQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7Cisg
ICAgYWRkQnV0dG9uLmNsYXNzTmFtZSA9ICJwYW5lLXRpdGxlLWJ1dHRvbiBhZGQiOworICAgIGFk
ZEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2FkZEJ1dHRvbkNsaWNrZWQu
YmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMudGl0bGVFbGVtZW50LmFwcGVuZENoaWxkKGFk
ZEJ1dHRvbik7CisgICAgYWRkQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJB
ZGQgd2F0Y2ggZXhwcmVzc2lvbiIpOwogCi0gICAgICAgIHZhciBhZGRCdXR0b24gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKLSAgICAgICAgYWRkQnV0dG9uLmNsYXNzTmFtZSA9
ICJwYW5lLXRpdGxlLWJ1dHRvbiBhZGQiOwotICAgICAgICBhZGRCdXR0b24uYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl9hZGRCdXR0b25DbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsK
LSAgICAgICAgdGhpcy50aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoYWRkQnV0dG9uKTsKLSAgICAg
ICAgYWRkQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJBZGQgd2F0Y2ggZXhw
cmVzc2lvbiIpOwotICAgICAgICB0aGlzLl9yZXF1aXJlc1VwZGF0ZSA9IHRydWU7CisgICAgdGhp
cy5fcmVxdWlyZXNVcGRhdGUgPSB0cnVlOworfQogCi0gICAgICAgIGlmIChXZWJJbnNwZWN0b3Iu
c2V0dGluZ3Mud2F0Y2hFeHByZXNzaW9ucy5nZXQoKS5sZW5ndGggPiAwKQotICAgICAgICAgICAg
dGhpcy5leHBhbmRlZCA9IHRydWU7CitXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NpZGVi
YXJQYW5lLnByb3RvdHlwZSA9IHsKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fcmVmcmVzaEV4cHJlc3Npb25zSWZOZWVkZWQoKTsKICAgICB9LAogCiAgICAg
cmVzZXQ6IGZ1bmN0aW9uKCkKQEAgLTgwLDcgKzc0LDcgQEAgV2ViSW5zcGVjdG9yLldhdGNoRXhw
cmVzc2lvbnNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgYWRkRXhwcmVzc2lvbjogZnVu
Y3Rpb24oZXhwcmVzc2lvbikKICAgICB7CiAgICAgICAgIHRoaXMuc2VjdGlvbi5hZGRFeHByZXNz
aW9uKGV4cHJlc3Npb24pOwotICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICAgICAg
dGhpcy5leHBhbmQoKTsKICAgICB9LAogCiAgICAgX3JlZnJlc2hFeHByZXNzaW9uc0lmTmVlZGVk
OiBmdW5jdGlvbigpCkBAIC05NSw3ICs4OSw3IEBAIFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Np
b25zU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgIF9hZGRCdXR0b25DbGlja2VkOiBmdW5j
dGlvbihldmVudCkKICAgICB7CiAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKLSAgICAgICAgdGhp
cy5leHBhbmRlZCA9IHRydWU7CisgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAgICAgICAgIHRoaXMu
c2VjdGlvbi5hZGROZXdFeHByZXNzaW9uQW5kRWRpdCgpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCBhYjg0YWJl
MDExMzc4NDg5OGIwNzRmNTU3YTRlMTViOGI2MzNlMTIzLi5iZjRiMGRhNDc1NzczNDdhZTcyODFl
MzEwY2UzOWJlNTA2MTU4ZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0xNzgyLDExICsxNzgyLDExIEBAIGxpLmVkaXRpbmcg
LnN3YXRjaCwgbGkuZWRpdGluZyAuZW5hYmxlZC1idXR0b24sICBsaS5lZGl0aW5nLXN1Yi1wYXJ0
IC5kZWxldGUtYnV0CiAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg2NCwgNjQsIDY0LCAwLjgp
OwogfQogCi0ucGFuZTpub3QoLmV4cGFuZGVkKSArIC5wYW5lLCAucGFuZTpmaXJzdC1vZi10eXBl
IHsKKy5wYW5lLXRpdGxlICsgLnBhbmUtdGl0bGUsIC5wYW5lOm5vdCgudmlzaWJsZSkgKyAucGFu
ZS10aXRsZSwgLnBhbmUtdGl0bGU6Zmlyc3Qtb2YtdHlwZSB7CiAgICAgbWFyZ2luLXRvcDogLTFw
eDsKIH0KIAotLnBhbmUgPiAudGl0bGUgeworLnBhbmUtdGl0bGUgewogICAgIGJhY2tncm91bmQt
aW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZy
b20ocmdiKDI0MywgMjQzLCAyNDMpKSwgY29sb3Itc3RvcCgwLjA1LCByZ2IoMjQzLCAyNDMsIDI0
MykpLCBjb2xvci1zdG9wKDAuMDUsIHJnYigyMzAsIDIzMCwgMjMwKSksIHRvKHJnYigyMDksIDIw
OSwgMjA5KSkpOwogICAgIGhlaWdodDogMjBweDsKICAgICBwYWRkaW5nOiAwIDVweDsKQEAgLTE4
MDEsMTMgKzE4MDEsMTMgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5lZGl0aW5nIC5lbmFibGVk
LWJ1dHRvbiwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQKICAgICAtd2Via2l0LWJh
Y2tncm91bmQtY2xpcDogcGFkZGluZzsKIH0KIAotLnBhbmUgPiAudGl0bGU6YWN0aXZlIHsKKy5w
YW5lLXRpdGxlOmFjdGl2ZSB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVu
dChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjMxLCAyMzEsIDIzMSkp
LCBjb2xvci1zdG9wKDAuMDUsIHJnYigyMzEsIDIzMSwgMjMxKSksIGNvbG9yLXN0b3AoMC4wNSwg
cmdiKDIwNywgMjA3LCAyMDcpKSwgdG8ocmdiKDE4NiwgMTg2LCAxODYpKSk7CiAgICAgYm9yZGVy
LXRvcDogMXB4IHNvbGlkIHJnYigxNzgsIDE3OCwgMTc4KTsKICAgICBib3JkZXItYm90dG9tOiAx
cHggc29saWQgcmdiKDE3OCwgMTc4LCAxNzgpOwogfQogCi0ucGFuZSA+IC50aXRsZTo6YmVmb3Jl
IHsKKy5wYW5lLXRpdGxlOjpiZWZvcmUgewogICAgIGNvbnRlbnQ6IHVybChJbWFnZXMvZGlzY2xv
c3VyZVRyaWFuZ2xlU21hbGxSaWdodEJsYWNrLnBuZyk7CiAgICAgZmxvYXQ6IGxlZnQ7CiAgICAg
d2lkdGg6IDExcHg7CkBAIC0xODE2LDExICsxODE2LDExIEBAIGxpLmVkaXRpbmcgLnN3YXRjaCwg
bGkuZWRpdGluZyAuZW5hYmxlZC1idXR0b24sICBsaS5lZGl0aW5nLXN1Yi1wYXJ0IC5kZWxldGUt
YnV0CiAgICAgbWFyZ2luLXRvcDogMXB4OwogfQogCi0ucGFuZS5leHBhbmRlZCA+IC50aXRsZTo6
YmVmb3JlIHsKKy5wYW5lLXRpdGxlLmV4cGFuZGVkOjpiZWZvcmUgewogICAgIGNvbnRlbnQ6IHVy
bChJbWFnZXMvZGlzY2xvc3VyZVRyaWFuZ2xlU21hbGxEb3duQmxhY2sucG5nKTsKIH0KIAotLnBh
bmUgPiAudGl0bGUgPiBzZWxlY3QgeworLnBhbmUtdGl0bGUgPiBzZWxlY3QgewogICAgIGZsb2F0
OiByaWdodDsKICAgICB3aWR0aDogMjNweDsKICAgICBoZWlnaHQ6IDE3cHg7CkBAIC0xODM0LDI3
ICsxODM0LDI3IEBAIGxpLmVkaXRpbmcgLnN3YXRjaCwgbGkuZWRpdGluZyAuZW5hYmxlZC1idXR0
b24sICBsaS5lZGl0aW5nLXN1Yi1wYXJ0IC5kZWxldGUtYnV0CiAgICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBub25lOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IHNlbGVjdDpob3ZlciB7CisucGFuZS10
aXRsZSA+IHNlbGVjdDpob3ZlciB7CiAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIzcHggMHB4
OwogfQogCi0ucGFuZSA+IC50aXRsZSA+IHNlbGVjdDphY3RpdmUgeworLnBhbmUtdGl0bGUgPiBz
ZWxlY3Q6YWN0aXZlIHsKICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDZweCAwcHg7CiB9CiAK
LS5wYW5lID4gLnRpdGxlID4gc2VsZWN0LnNlbGVjdC1zZXR0aW5ncyB7CisucGFuZS10aXRsZSA+
IHNlbGVjdC5zZWxlY3Qtc2V0dGluZ3MgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFn
ZXMvcGFuZVNldHRpbmdzQnV0dG9ucy5wbmcpOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IHNlbGVj
dC5zZWxlY3QtZmlsdGVyIHsKKy5wYW5lLXRpdGxlID4gc2VsZWN0LnNlbGVjdC1maWx0ZXIgewog
ICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFnZXMvcGFuZUZpbHRlckJ1dHRvbnMucG5nKTsK
IH0KIAotLnBhbmUgPiAudGl0bGUgPiBzZWxlY3QgPiBvcHRpb24sIC5wYW5lID4gLnRpdGxlID4g
c2VsZWN0ID4gaHIgeworLnBhbmUtdGl0bGUgPiBzZWxlY3QgPiBvcHRpb24sIC5wYW5lLXRpdGxl
ID4gc2VsZWN0ID4gaHIgewogICAgIGNvbG9yOiBibGFjazsKIH0KIAotLnBhbmUgPiAudGl0bGUg
PiAucGFuZS10aXRsZS1idXR0b24geworLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24g
ewogICAgIGZsb2F0OiByaWdodDsKICAgICB3aWR0aDogMjNweDsKICAgICBoZWlnaHQ6IDE3cHg7
CkBAIC0xODY4LDIzICsxODY4LDIzIEBAIGxpLmVkaXRpbmcgLnN3YXRjaCwgbGkuZWRpdGluZyAu
ZW5hYmxlZC1idXR0b24sICBsaS5lZGl0aW5nLXN1Yi1wYXJ0IC5kZWxldGUtYnV0CiAgICAgLXdl
YmtpdC1hcHBlYXJhbmNlOiBub25lOwogfQogCi0ucGFuZSA+IC50aXRsZSA+IC5wYW5lLXRpdGxl
LWJ1dHRvbjpob3ZlciB7CisucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbjpob3ZlciB7
CiAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIzcHggMHB4OwogfQogCi0ucGFuZSA+IC50aXRs
ZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbjphY3RpdmUsIC5wYW5lID4gLnRpdGxlID4gLnBhbmUtdGl0
bGUtYnV0dG9uLnRvZ2dsZWQgeworLnBhbmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b246YWN0
aXZlLCAucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi50b2dnbGVkIHsKICAgICBiYWNr
Z3JvdW5kLXBvc2l0aW9uOiAtNDZweCAwcHg7CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gLnBhbmUt
dGl0bGUtYnV0dG9uLmFkZCB7CisucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5hZGQg
ewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFnZXMvcGFuZUFkZEJ1dHRvbnMucG5nKTsK
IH0KIAotLnBhbmUgPiAudGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24uZWxlbWVudC1zdGF0ZSB7
CisucGFuZS10aXRsZSA+IC5wYW5lLXRpdGxlLWJ1dHRvbi5lbGVtZW50LXN0YXRlIHsKICAgICBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL3BhbmVFbGVtZW50U3RhdGVCdXR0b25zLnBuZyk7
CiB9CiAKLS5wYW5lID4gLnRpdGxlID4gLnBhbmUtdGl0bGUtYnV0dG9uLnJlZnJlc2ggeworLnBh
bmUtdGl0bGUgPiAucGFuZS10aXRsZS1idXR0b24ucmVmcmVzaCB7CiAgICAgYmFja2dyb3VuZC1p
bWFnZTogdXJsKEltYWdlcy9wYW5lUmVmcmVzaEJ1dHRvbnMucG5nKTsKIH0KIApAQCAtMTkwOCw3
ICsxOTA4LDcgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5lZGl0aW5nIC5lbmFibGVkLWJ1dHRv
biwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQKICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2IoMjU1LCAyNTUsIDE5NCk7CiB9CiAKLS5wYW5lLmV4cGFuZGVkID4gLmJvZHksIC5wYW5l
LmV4cGFuZGVkID4gLmdyb3diYXIgeworLnBhbmUudmlzaWJsZSA+IC5ib2R5IHsKICAgICBkaXNw
bGF5OiBibG9jazsKIH0KIApAQCAtMTkyOCwxOCArMTkyOCwxMCBAQCBsaS5lZGl0aW5nIC5zd2F0
Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGkuZWRpdGluZy1zdWItcGFydCAuZGVs
ZXRlLWJ1dAogICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYig2NiUsIDY2JSwgNjYlKTsKIH0KIAot
LnBhbmUuZXhwYW5kZWQ6bnRoLWxhc3Qtb2YtdHlwZSgxKSB7CisucGFuZS52aXNpYmxlOm50aC1s
YXN0LW9mLXR5cGUoMSkgewogICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMTg5LCAx
ODksIDE4OSk7CiB9CiAKLS5wYW5lID4gLmdyb3diYXIgewotICAgIGRpc3BsYXk6IG5vbmU7Ci0g
ICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKEltYWdlcy9wYW5lR3Jvd0hhbmRsZUxpbmUucG5nKSwg
dXJsKEltYWdlcy9wYW5lQm90dG9tR3Jvdy5wbmcpOwotICAgIGJhY2tncm91bmQtcmVwZWF0OiBu
by1yZXBlYXQsIHJlcGVhdC14OwotICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50
ZXIsIGJvdHRvbTsKLSAgICBoZWlnaHQ6IDVweDsKLX0KLQogLnNpZGViYXItcGFuZS1zdWJ0aXRs
ZSB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIHJpZ2h0OiAwOwpAQCAtMTk2OSw3ICsx
OTYxLDcgQEAgYm9keS5pbmFjdGl2ZSAuc2lkZWJhciB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmdiKDIzMiwgMjMyLCAyMzIpOwogfQogCi0ucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpub3Qo
LnN0YXR1cy1iYXItaXRlbSksIC5wYW5lIGJ1dHRvbiwgYnV0dG9uLnNob3ctYWxsLW5vZGVzIHsK
Ky5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgLnBhbmUt
dGl0bGUtYnV0dG9uLCBidXR0b24uc2hvdy1hbGwtbm9kZXMgewogICAgIGNvbG9yOiByZ2IoNiwg
NiwgNik7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgYm9yZGVyOiAx
cHggc29saWQgcmdiKDE2NSwgMTY1LCAxNjUpOwpAQCAtMTk4NiwxNyArMTk3OCwxMiBAQCBidXR0
b24uc2hvdy1hbGwtbm9kZXMgewogICAgIGhlaWdodDogMjBweDsKIH0KIAotLnBhbmUgYnV0dG9u
IHsKLSAgICBtYXJnaW46IDZweCAwIDZweCAzcHg7Ci0gICAgcGFkZGluZzogMnB4IDlweDsKLX0K
LQotLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246YWN0aXZlOm5vdCguc3RhdHVzLWJhci1pdGVt
KSwgLnBhbmUgYnV0dG9uOmFjdGl2ZSwgYnV0dG9uLnNob3ctYWxsLW5vZGVzOmFjdGl2ZSB7Cisu
cGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjphY3RpdmU6bm90KC5zdGF0dXMtYmFyLWl0ZW0pLCAu
cGFuZS10aXRsZS1idXR0b246YWN0aXZlLCBidXR0b24uc2hvdy1hbGwtbm9kZXM6YWN0aXZlIHsK
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE1LCAyMTUsIDIxNSk7CiAgICAgYmFja2dyb3Vu
ZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwg
ZnJvbShyZ2IoMTk0LCAxOTQsIDE5NCkpLCB0byhyZ2IoMjM5LCAyMzksIDIzOSkpKTsKIH0KIAot
Ym9keS5pbmFjdGl2ZSAucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpub3QoLnN0YXR1cy1iYXIt
aXRlbSksIC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOmRpc2FibGVkOm5vdCguc3RhdHVzLWJh
ci1pdGVtKSwgYm9keS5pbmFjdGl2ZSAucGFuZSBidXR0b24sIC5wYW5lIGJ1dHRvbjpkaXNhYmxl
ZCwgYm9keS5pbmFjdGl2ZSBidXR0b24uc2hvdy1hbGwtbm9kZXMgeworYm9keS5pbmFjdGl2ZSAu
cGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpub3QoLnN0YXR1cy1iYXItaXRlbSksIC5wYW5lbC1l
bmFibGVyLXZpZXcgYnV0dG9uOmRpc2FibGVkOm5vdCguc3RhdHVzLWJhci1pdGVtKSwgYm9keS5p
bmFjdGl2ZSAucGFuZS10aXRsZS1idXR0b24sIC5wYW5lLXRpdGxlLWJ1dHRvbjpkaXNhYmxlZCwg
Ym9keS5pbmFjdGl2ZSBidXR0b24uc2hvdy1hbGwtbm9kZXMgewogICAgIGNvbG9yOiByZ2IoMTMw
LCAxMzAsIDEzMCk7CiAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjEyLCAyMTIsIDIxMik7CiAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOSwgMjM5LCAyMzkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDczYzM1NzU3NTBm
NjY5ZDNkYmY1ZTExMTI3YzJmMTc5YWZjYmMzYjAuLjg2ZWVkN2VkNDdmMzdjMGFjYzJkZWEwZDMy
OGVhYTUzOGRiODc2ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMy0wMi0wNCAgVmxhZGlz
bGF2IEthem5hY2hlZXYgIDxrYXpuYWNoZWV2QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBDcmVhdGUgYSBjb250YWluZXIgY2xhc3MgZm9yIFNpZGViYXJQYW5lIGluc3Rh
bmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4
MTgzCisKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanM6CisgICAgICAgIChpbml0aWFs
aXplX0VsZW1lbnRUZXN0LnN0eWxlc0NhbGxiYWNrKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxl
bWVudFRlc3QuSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlc1dpdGhDb21w
dXRlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25h
bC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwt
bm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL2Vycm9yLWluLXdhdGNoLWV4cHJlc3Npb25zLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wYW5lbC1zd2l0Y2guaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhwYW5zaW9u
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMt
YXBpLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZlbnRzLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1zaWRlYmFyLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL3N0eWxlcy9sYXp5LWNvbXB1dGVkLXN0eWxlLmh0bWw6CisKIDIwMTMtMDItMDQg
IFpvbHRhbiBBcnZhaSAgPHphcnZhaUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0XSBV
bnJldmlld2VkIGdhcmRlbmluZy4gU2tpcHBpbmcgZmFpbGluZyB0ZXN0cy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzCmluZGV4IDhhZjNj
YzYxNTIwZjUyM2EwM2MwNmRkNDI4ODgyYWI0Y2QxOGIwMDguLjYxZjY2ZjkzNzMwNDI1NjAwODY4
ZGM2NjYxZWY2NzU0M2Y2Yjc2ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcwpAQCAtMTExLDcgKzExMSw3IEBAIEluc3BlY3RvclRl
c3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXNXaXRoQ29tcHV0ZWQgPSBmdW5jdGlvbihpZFZh
bHVlLCBjYWxsYmFjCiAKICAgICBmdW5jdGlvbiBzdHlsZXNDYWxsYmFjayh0YXJnZXROb2RlKQog
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5TaWRl
YmFyUGFuZS5wcm90b3R5cGUsICJleHBhbmQiLCBjYWxsYmFjayk7CisgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJvdG90eXBlLCAib25D
b250ZW50UmVhZHkiLCBjYWxsYmFjayk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxl
bWVudHMuc2lkZWJhclBhbmVzLmNvbXB1dGVkU3R5bGUuZXhwYW5kKCk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlv
bmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBh
bmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CmluZGV4IDUyZjQ3YzZhZjFhOTM0OGQ4NmVjYmMx
OTZjMjM3YmJjNDRiZWI0NmMuLjNmMmNiNjc5NzRkMDQ0OWRiNWQxYTRkNTQwZTZhYjEwMTYyYmI2
NmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVs
LWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRp
dHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAog
VGVzdHMgYXVkaXQgcnVsZXMuICAgICAKIFBhZ2UgcmVsb2FkZWQuCi0gIE5ldHdvcmsgVXRpbGl6
YXRpb24KKyBOZXR3b3JrIFV0aWxpemF0aW9uCiAgICAgQ29tYmluZSBleHRlcm5hbCBKYXZhU2Ny
aXB0ICg0KQogICAgICBUaGVyZSBhcmUgbXVsdGlwbGUgcmVzb3VyY2VzIHNlcnZlZCBmcm9tIHNh
bWUgZG9tYWluLiBDb25zaWRlciBjb21iaW5pbmcgdGhlbSBpbnRvIGFzIGZldyBmaWxlcyBhcyBw
b3NzaWJsZS4KICAgICAgIDQgSmF2YVNjcmlwdCByZXNvdXJjZXMgc2VydmVkIGZyb20gW2RvbWFp
bl0uCkBAIC04LDcgKzgsNyBAQCBQYWdlIHJlbG9hZGVkLgogICAgICBBIHdpZHRoIGFuZCBoZWln
aHQgc2hvdWxkIGJlIHNwZWNpZmllZCBmb3IgYWxsIGltYWdlcyBpbiBvcmRlciB0byBzcGVlZCB1
cCBwYWdlIGRpc3BsYXkuIFRoZSBmb2xsb3dpbmcgaW1hZ2UocykgYXJlIG1pc3NpbmcgYSB3aWR0
aCBhbmQvb3IgaGVpZ2h0OgogICAgICAgIGZvbzEuanBnCiAgICAgICAgZm9vMi5qcGcKLSAgV2Vi
IFBhZ2UgUGVyZm9ybWFuY2UKKyBXZWIgUGFnZSBQZXJmb3JtYW5jZQogICAgIE9wdGltaXplIHRo
ZSBvcmRlciBvZiBzdHlsZXMgYW5kIHNjcmlwdHMgKDIpCiAgICAgIFRoZSBmb2xsb3dpbmcgZXh0
ZXJuYWwgQ1NTIGZpbGVzIHdlcmUgaW5jbHVkZWQgYWZ0ZXIgYW4gZXh0ZXJuYWwgSmF2YVNjcmlw
dCBmaWxlIGluIHRoZSBkb2N1bWVudCBoZWFkLiBUbyBlbnN1cmUgQ1NTIGZpbGVzIGFyZSBkb3du
bG9hZGVkIGluIHBhcmFsbGVsLCBhbHdheXMgaW5jbHVkZSBleHRlcm5hbCBDU1MgYmVmb3JlIGV4
dGVybmFsIEphdmFTY3JpcHQuCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0
aW9uYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMt
cGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKaW5kZXggOWRjN2ExNTkwMGVk
ZWE3N2FjNzNkNmQyMmIyNTEwNGU1N2QxYWNhNy4uZWZmYzJhMzJhYzJkODQzMjA3NzJiN2UzOWM3
NzI5MzQyOGU4NjczMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9h
dWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1l
eHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIFRlc3RzIGF1ZGl0IHJ1bGVzIG9uIGEgcGFn
ZSB3aXRob3V0IGltYWdlcy4KIFBhZ2UgcmVsb2FkZWQuCi0gIE5ldHdvcmsgVXRpbGl6YXRpb24K
KyBOZXR3b3JrIFV0aWxpemF0aW9uCiAgICAgQ29tYmluZSBleHRlcm5hbCBKYXZhU2NyaXB0ICg0
KQogICAgICBUaGVyZSBhcmUgbXVsdGlwbGUgcmVzb3VyY2VzIHNlcnZlZCBmcm9tIHNhbWUgZG9t
YWluLiBDb25zaWRlciBjb21iaW5pbmcgdGhlbSBpbnRvIGFzIGZldyBmaWxlcyBhcyBwb3NzaWJs
ZS4KICAgICAgIDQgSmF2YVNjcmlwdCByZXNvdXJjZXMgc2VydmVkIGZyb20gW2RvbWFpbl0uCi0g
IFdlYiBQYWdlIFBlcmZvcm1hbmNlCisgV2ViIFBhZ2UgUGVyZm9ybWFuY2UKICAgICBPcHRpbWl6
ZSB0aGUgb3JkZXIgb2Ygc3R5bGVzIGFuZCBzY3JpcHRzICgyKQogICAgICBUaGUgZm9sbG93aW5n
IGV4dGVybmFsIENTUyBmaWxlcyB3ZXJlIGluY2x1ZGVkIGFmdGVyIGFuIGV4dGVybmFsIEphdmFT
Y3JpcHQgZmlsZSBpbiB0aGUgZG9jdW1lbnQgaGVhZC4gVG8gZW5zdXJlIENTUyBmaWxlcyBhcmUg
ZG93bmxvYWRlZCBpbiBwYXJhbGxlbCwgYWx3YXlzIGluY2x1ZGUgZXh0ZXJuYWwgQ1NTIGJlZm9y
ZSBleHRlcm5hbCBKYXZhU2NyaXB0LgogICAgICAgIGF1ZGl0cy1zdHlsZTEuY3NzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhwcmVz
c2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRj
aC1leHByZXNzaW9ucy5odG1sCmluZGV4IGEzZjE0ZjM1OGYxNWE3YTkzMTA4NGZhNjlkZmJmM2Zl
NjIwMGY0MGMuLmQ4ZmQ4NjFiNjYzNmZjZDFlOTA0MDBmNDI1NjRlY2NhNzhlZjg4YzggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1leHBy
ZXNzaW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1p
bi13YXRjaC1leHByZXNzaW9ucy5odG1sCkBAIC0xMCw3ICsxMCwxMCBAQCB2YXIgdGVzdCA9IGZ1
bmN0aW9uKCkKICAgICAvLyBXZSBuZWVkIHRvIGluaXRpYWxpemUgc2NyaXB0cyBwYW5lbCBzbyB0
aGF0IHdhdGNoIGV4cHJlc3Npb25zIHNlY3Rpb24gaXMgY3JlYXRlZC4KICAgICBXZWJJbnNwZWN0
b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7CiAKLSAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1NlY3Rp
b24gPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVz
c2lvbnMuc2VjdGlvbjsKKyAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1BhbmUgPSBXZWJJbnNwZWN0
b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnM7CisgICAgd2F0
Y2hFeHByZXNzaW9uc1BhbmUuZXhwYW5kKCk7CisKKyAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1Nl
Y3Rpb24gPSB3YXRjaEV4cHJlc3Npb25zUGFuZS5zZWN0aW9uOwogICAgIHdhdGNoRXhwcmVzc2lv
bnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKICAgICB3YXRjaEV4cHJlc3Npb25zU2Vj
dGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIiMkJSIpOwogICAgIHdhdGNoRXhwcmVzc2lvbnNT
ZWN0aW9uLnVwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sCmluZGV4IGJhZDM2ZWM0ODJiYWJmY2U3ZGU4YjJl
OWMzNDg5ODdlMTZhYWM4ZTcuLmNkYTgzZGExN2ZkMjY2ZDFmYzA4MTNlYjRjNzExMjVmMDBkYTdi
MjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVz
LXNwZWNpYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVy
dGllcy1zcGVjaWFsLmh0bWwKQEAgLTIzLDcgKzIzLDEwIEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24o
KQogICAgICAgICAvLyBXZSBuZWVkIHRvIGluaXRpYWxpemUgc2NyaXB0cyBwYW5lbCBzbyB0aGF0
IHdhdGNoIGV4cHJlc3Npb25zIHNlY3Rpb24gaXMgY3JlYXRlZC4KICAgICAgICAgV2ViSW5zcGVj
dG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwogCi0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0
aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJl
c3Npb25zLnNlY3Rpb247CisgICAgICAgIHZhciB3YXRjaEV4cHJlc3Npb25zUGFuZSA9IFdlYklu
c3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9uczsKKyAg
ICAgICAgd2F0Y2hFeHByZXNzaW9uc1BhbmUuZXhwYW5kKCk7CisKKyAgICAgICAgd2F0Y2hFeHBy
ZXNzaW9uc1NlY3Rpb24gPSB3YXRjaEV4cHJlc3Npb25zUGFuZS5zZWN0aW9uOwogICAgICAgICB3
YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zID0gW107CiAgICAgICAgIHdh
dGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgiT2JqZWN0KHRydWUp
Iik7CiAgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVz
aCgiKGZ1bmN0aW9uKGEsYikgeyByZXR1cm4gYSArIGI7IH0pIik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dpdGNo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMt
cGFuZWwtc3dpdGNoLmh0bWwKaW5kZXggNDczYzM0MTU4OWI3OWE5MDdmZTliNTE5YWY1YjMwNzg4
MzZjOWZkYi4uN2ZkNWZkMmVlMDYxMGU5ZWZjNjU3ZTk3M2RkNWQxNjBjNWY4M2RlNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXBh
bmVsLXN3aXRjaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRj
aC1leHByZXNzaW9ucy1wYW5lbC1zd2l0Y2guaHRtbApAQCAtMjMsNyArMjMsMTAgQEAgdmFyIHRl
c3QgPSBmdW5jdGlvbigpCiAgICAgICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRz
IHBhbmVsIHNvIHRoYXQgd2F0Y2ggZXhwcmVzc2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgogICAg
ICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7CiAKLSAgICAgICAgd2F0Y2hF
eHByZXNzaW9uc1NlY3Rpb24gPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBh
bmVzLndhdGNoRXhwcmVzc2lvbnMuc2VjdGlvbjsKKyAgICAgICAgdmFyIHdhdGNoRXhwcmVzc2lv
bnNQYW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4
cHJlc3Npb25zOworICAgICAgICB3YXRjaEV4cHJlc3Npb25zUGFuZS5leHBhbmQoKTsKKworICAg
ICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IHdhdGNoRXhwcmVzc2lvbnNQYW5lLnNlY3Rp
b247CiAgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBb
XTsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNo
KCJ3aW5kb3cuZG9jdW1lbnQiKTsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0
Y2hFeHByZXNzaW9ucy5wdXNoKCJ3aW5kb3dhLmRvY3VtZW50Iik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhw
YW5zaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVz
c2lvbnMtcHJlc2VydmUtZXhwYW5zaW9uLmh0bWwKaW5kZXggNzczNTU2Nzk5MWJmODlhNThkZjM4
YmQyZjhiMTJiMWE5Y2FhZmUwNS4uMjI0YmJjY2M3M2I3MDU0MWFkMzliMzU2NWIzMDBhYTQzNDMz
YjI1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4
cHJlc3Npb25zLXByZXNlcnZlLWV4cGFuc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24uaHRtbApA
QCAtMjQsNyArMjQsMTAgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAKICAgICBmdW5jdGlvbiBz
dGVwMSgpCiAgICAgewotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IFdlYkluc3Bl
Y3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5zZWN0aW9u
OworICAgICAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1BhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxz
LnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnM7CisgICAgICAgIHdhdGNoRXhw
cmVzc2lvbnNQYW5lLmV4cGFuZCgpOworCisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9u
ID0gd2F0Y2hFeHByZXNzaW9uc1BhbmUuc2VjdGlvbjsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9u
c1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwogICAgICAgICB3YXRjaEV4cHJlc3Npb25z
U2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goImdsb2JhbE9iamVjdCIpOwogICAgICAgICB3
YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIndpbmRvd0FsaWFz
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dAppbmRleCA4NTI5Zjg1ZDU0
OTE2MTZkNzcwZjZlYTRlYmJiNjEzZDcwZWNlMmJjLi5mNWRlZWFmY2M0ZWNiYzA1MDhmYmIwYzA2
ODRhZTk0YzYwOWIzYWIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQK
QEAgLTM2LDYgKzM2LDYgQEAgY2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQsIHJlc3VsdHMg
ZHVtcCBmb2xsb3dzOgogICAgIH0KICAgICBleHBhbmRlZCA6IGZhbHNlCiB9Ci0gIEV4dGVuc2lv
biBhdWRpdHMKKyBFeHRlbnNpb24gYXVkaXRzCiBBbGwgdGVzdHMgZG9uZS4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29u
dGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0CmluZGV4IDE1
YWFkMTNiNmFhNGRmZmM4MzYzODMyMTYwMzBiYzFkMGU3ZTlkZjAuLmY4NTgyOWU4MjgzNGEwYjkx
ZDdkOGMzNzA0N2NlYzQ1NTJjNDAwZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0
cy1jb250ZW50LXNjcmlwdC1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRlc3RzIGF1ZGl0
IGZvcm1hdHRlcnMgcGVyZm9ybWluZyBldmFscyBvbiBjb250ZW50IHNjcmlwdHMgaW4gV2ViSW5z
cGVjdG9yIEV4dGVuCiAgU3RhcnRlZCBleHRlbnNpb24uCiBSdW5uaW5nIHRlc3RzLi4uCiBSVU5O
SU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0QXVkaXRzCi0gIEV4dGVuc2lvbiBhdWRpdHMKKyBFeHRl
bnNpb24gYXVkaXRzCiAgICAgUnVsZSB3aXRoIGRldGFpbHMgc3VidHJlZSAoMSkKICAgICAgIFRl
c3QgRm9ybWF0dGVycwogICAgICAgICAgICBtYWluIHdvcmxkIG9iamVjdApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRp
dHMtZXhwZWN0ZWQudHh0CmluZGV4IGQzMzRlYTMwMjIxNzFkNDVlZTgzN2RhNGI3NGM5ZTg5Nzgy
ZWFiYzguLjEzNjExMzQ4YmFhNDMwMTM2OWM5YWUxY2M4YTM5NGRiNTM3YWVhYWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWF1ZGl0cy1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3IEBAIFJ1bm5pbmcgdGVzdHMuLi4K
IFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RBdWRpdHMKIFByb2dyZXNzOiA1MCUKIFByb2dy
ZXNzOiA3NSUKLSAgRXh0ZW5zaW9uIGF1ZGl0cworIEV4dGVuc2lvbiBhdWRpdHMKICAgICBGYWls
ZWQgcnVsZSAoNDIpCiAgICAgIHRoaXMgcnVsZSBhbHdheXMgZmFpbHMKICAgICBSdWxlIHdpdGgg
ZGV0YWlscyBzdWJ0cmVlICgxKQpAQCAtNDMsNyArNDMsNyBAQCBQcm9ncmVzczogNzUlCiAgICAg
ICAgICBleHRlbnNpb25zLWF1ZGl0cy5odG1sOjIwCiAgICAgUGFzc2VkIHJ1bGUKICAgICAgdGhp
cyBydWxlIGFsd2F5cyBwYXNzZXMgb2sKLSAgRXh0ZW5zaW9uIGF1ZGl0cyB0aGF0IGZhaWwKKyBF
eHRlbnNpb24gYXVkaXRzIHRoYXQgZmFpbAogY2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQK
IGZhaWxlZENhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVkLCB0aHJvd2luZyBleGNlcHRpb24K
IEFsbCB0ZXN0cyBkb25lLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zL2V4dGVuc2lvbnMtZXZlbnRzLmh0bWwKaW5kZXggMGMyZDkwYWEzYjRmZjIyNTBiN2Iz
OWQ4YzI5OTVkZjk4N2EzZmM2Ny4uZDZhZWRmMjMyZWRlMDQ5NDNkZmYyOTg1YTAxMWM2OTFiNTEz
MWZmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1ldmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9l
eHRlbnNpb25zLWV2ZW50cy5odG1sCkBAIC00LDYgKzQsMzAgQEAKIDxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogCitmdW5jdGlvbiBpbml0aWFsaXplX2V4dGVu
c2lvbnNTaWRlYmFyVGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRTaWRlYmFyID0g
ZnVuY3Rpb24oY2FsbGJhY2spCisgICAgeworICAgICAgICB2YXIgc2lkZWJhciA9IEluc3BlY3Rv
clRlc3QuX2V4dGVuc2lvblNpZGViYXIoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRl
clBlbmRpbmdEaXNwYXRjaGVzKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2lkZWJhci5leHBh
bmQoKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IEluc3BlY3RvclRlc3QuX2V4dGVuc2lvblNpZGViYXIgPSBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB2YXIgc2lkZWJhclBhbmVzID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJlbGVtZW50cyIpLnNp
ZGViYXJQYW5lczsKKyAgICAgICAgLy8gdGhlIHNpZGViYXIgb2YgaW50ZXJlc3QgaXMgcHJlc3Vt
ZWQgdG8gYWx3YXlzIGJlIGxhc3QuCisgICAgICAgIHJldHVybiBzaWRlYmFyUGFuZXNbT2JqZWN0
LmtleXMoc2lkZWJhclBhbmVzKS5wb3AoKV07CisgICAgfQorfQorCitmdW5jdGlvbiBleHRlbnNp
b25fZXhwYW5kU2lkZWJhcihjYWxsYmFjaykKK3sKKyAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIklu
c3BlY3RvclRlc3QuZXhwYW5kU2lkZWJhcihyZXBseSk7IiwgY2FsbGJhY2spOworfQorCiBmdW5j
dGlvbiBleHRlbnNpb25fdGVzdE9uU2VsZWN0aW9uQ2hhbmdlZChuZXh0VGVzdCkKIHsKICAgICBm
dW5jdGlvbiBvblNlbGVjdGlvbkNoYW5nZWQoKQpAQCAtMTA1LDcgKzEyOSw3IEBAIGZ1bmN0aW9u
IGV4dGVuc2lvbl90ZXN0Vmlld1Nob3dIaWRlKG5leHRUZXN0KQogICAgICAgICBhZGRMaXN0ZW5l
cihzaWRlYmFyLCAic2lkZWJhciIsICJvblNob3duIik7CiAgICAgICAgIHNpZGViYXIuc2V0UGFn
ZShiYXNlUGF0aCArICJleHRlbnNpb24tc2lkZWJhci5odG1sIik7CiAgICAgfQotICAgIGV4dGVu
c2lvbl9zaG93UGFuZWwoImVsZW1lbnRzIik7CisgICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZWxl
bWVudHMiLCBleHRlbnNpb25fZXhwYW5kU2lkZWJhcik7CiAgICAgdmFyIGJhc2VQYXRoID0gbG9j
YXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXC9bXi9dKiQvLCAiLyIpOwogICAgIGZ1bmN0aW9uIG9u
U2lkZWJhckNyZWF0ZWQoc2lkZWJhclBhbmUpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1zaWRlYmFyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXNpZGViYXIuaHRtbAppbmRleCAy
ZDU0OTVkMWQxNjVjN2M3OGFjZDNiYjY5ZmU2ZTU4NWUxYjNkZTA0Li4wMGU3MjU2ZDhkOWJmNTlj
ODkyNmUxZDY0Y2NmYmEwYmExNmE1ZDcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXNpZGViYXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXNpZGViYXIuaHRtbApAQCAtOCwxNCArOCwy
OCBAQCBmdW5jdGlvbiBpbml0aWFsaXplX2V4dGVuc2lvbnNTaWRlYmFyVGVzdCgpCiB7CiAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wU2lkZWJhckNvbnRlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykKICAg
ICB7Ci0gICAgICAgIHZhciBzaWRlYmFyUGFuZXMgPSBXZWJJbnNwZWN0b3IucGFuZWwoImVsZW1l
bnRzIikuc2lkZWJhclBhbmVzOwotICAgICAgICAvLyB0aGUgc2lkZWJhciBvZiBpbnRlcmVzdCBp
cyBwcmVzdW1lZCB0byBhbHdheXMgYmUgbGFzdC4KLSAgICAgICAgdmFyIHNpZGViYXIgPSBzaWRl
YmFyUGFuZXNbT2JqZWN0LmtleXMoc2lkZWJhclBhbmVzKS5wb3AoKV07CisgICAgICAgIHZhciBz
aWRlYmFyID0gSW5zcGVjdG9yVGVzdC5fZXh0ZW5zaW9uU2lkZWJhcigpOwogICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2lkZWJhciBjb250ZW50OiAiICsgc2lkZWJh
ci5ib2R5RWxlbWVudC50ZXh0Q29udGVudCk7CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAg
ICAgICB9KTsKICAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFNpZGViYXIgPSBmdW5j
dGlvbihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHZhciBzaWRlYmFyID0gSW5zcGVjdG9yVGVz
dC5fZXh0ZW5zaW9uU2lkZWJhcigpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVu
ZGluZ0Rpc3BhdGNoZXMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBzaWRlYmFyLmV4cGFuZCgp
OworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgSW5z
cGVjdG9yVGVzdC5fZXh0ZW5zaW9uU2lkZWJhciA9IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IHZhciBzaWRlYmFyUGFuZXMgPSBXZWJJbnNwZWN0b3IucGFuZWwoImVsZW1lbnRzIikuc2lkZWJh
clBhbmVzOworICAgICAgICAvLyB0aGUgc2lkZWJhciBvZiBpbnRlcmVzdCBpcyBwcmVzdW1lZCB0
byBhbHdheXMgYmUgbGFzdC4KKyAgICAgICAgcmV0dXJuIHNpZGViYXJQYW5lc1tPYmplY3Qua2V5
cyhzaWRlYmFyUGFuZXMpLnBvcCgpXTsKKyAgICB9CiB9CiAKIGZ1bmN0aW9uIGV4dGVuc2lvbl90
ZXN0U2lkZWJhclNldFBhZ2UobmV4dFRlc3QpCkBAIC0zMiw3ICs0Niw3IEBAIGZ1bmN0aW9uIGV4
dGVuc2lvbl90ZXN0U2lkZWJhclNldFBhZ2UobmV4dFRlc3QpCiAgICAgICAgIHNpZGViYXIub25T
aG93bi5hZGRMaXN0ZW5lcihvblNob3duKTsKICAgICAgICAgdmFyIGJhc2VQYXRoID0gbG9jYXRp
b24ucGF0aG5hbWUucmVwbGFjZSgvXC9bXi9dKiQvLCAiLyIpOwogICAgICAgICBzaWRlYmFyLnNl
dFBhZ2UoYmFzZVBhdGggKyAiZXh0ZW5zaW9uLXNpZGViYXIuaHRtbCIpOwotICAgICAgICBleHRl
bnNpb25fc2hvd1BhbmVsKCJlbGVtZW50cyIpOworICAgICAgICBleHRlbnNpb25fc2hvd1BhbmVs
KCJlbGVtZW50cyIsIGV4dGVuc2lvbl9leHBhbmRTaWRlYmFyKTsKICAgICB9CiAgICAgd2ViSW5z
cGVjdG9yLnBhbmVscy5lbGVtZW50cy5jcmVhdGVTaWRlYmFyUGFuZSgiVGVzdCBTaWRlYmFyIiwg
b25TaWRlYmFyQ3JlYXRlZCk7CiB9CkBAIC00Miw2ICs1NiwxMSBAQCBmdW5jdGlvbiBleHRlbnNp
b25fZHVtcFNpZGViYXJDb250ZW50KG5leHRUZXN0KQogICAgIGV2YWx1YXRlT25Gcm9udGVuZCgi
SW5zcGVjdG9yVGVzdC5kdW1wU2lkZWJhckNvbnRlbnQocmVwbHkpOyIsIG5leHRUZXN0KTsKIH0K
IAorZnVuY3Rpb24gZXh0ZW5zaW9uX2V4cGFuZFNpZGViYXIoY2FsbGJhY2spCit7CisgICAgZXZh
bHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LmV4cGFuZFNpZGViYXIocmVwbHkpOyIsIGNh
bGxiYWNrKTsKK30KKwogZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0T2JqZWN0KG5l
eHRUZXN0KQogewogICAgIGZ1bmN0aW9uIG9uU2lkZWJhckNyZWF0ZWQoc2lkZWJhcikKQEAgLTEw
NSw3ICsxMjQsNyBAQCBmdW5jdGlvbiBleHRlbnNpb25fdGVzdFNpZGViYXJQYWdlUmVwbGFjZWRX
aXRoT2JqZWN0KG5leHRUZXN0KQogICAgICAgICAgc2lkZWJhciA9IGFTaWRlYmFyOwogICAgICAg
ICAgc2lkZWJhci5vblNob3duLmFkZExpc3RlbmVyKG9uU2hvd24pOwogICAgICAgICAgc2lkZWJh
ci5zZXRQYWdlKGJhc2VQYXRoICsgImV4dGVuc2lvbi1zaWRlYmFyLmh0bWwiKTsKLSAgICAgICAg
IGV4dGVuc2lvbl9zaG93UGFuZWwoImVsZW1lbnRzIik7CisgICAgICAgICBleHRlbnNpb25fc2hv
d1BhbmVsKCJlbGVtZW50cyIsIGV4dGVuc2lvbl9leHBhbmRTaWRlYmFyKTsKICAgICAgfQogICAg
ICB2YXIgZGlkU2V0T2JqZWN0ID0gZmFsc2U7CiAgICAgIGZ1bmN0aW9uIG9uU2hvd24oZnJhbWUp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2xhenktY29tcHV0ZWQt
c3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbGF6eS1jb21wdXRlZC1z
dHlsZS5odG1sCmluZGV4IGNlNGQ0ZjgyYzhmNjk2M2ZkMmVkOGQyZTNjMzVhM2UyODk3NzAzZTQu
LjhhYjBkMjk1M2VhMmU4N2U2Njk5MzRlYmE0NDAxNDFjZWEwZjg4OTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbGF6eS1jb21wdXRlZC1zdHlsZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbGF6eS1jb21wdXRlZC1zdHlsZS5odG1sCkBA
IC0yOSw3ICsyOSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIj09PT0gQWxsIHN0eWxlcyAoc2hvdWxkIGJlIG5vIGNvbXB1dGVkKSA9
PT09Iik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyhm
YWxzZSwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVj
dG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZSwgImV4cGFuZCIsIHN0ZXAyKTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGUs
ICJvbkNvbnRlbnRSZWFkeSIsIHN0ZXAyKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5l
bGVtZW50cy5zaWRlYmFyUGFuZXMuY29tcHV0ZWRTdHlsZS5leHBhbmQoKTsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>