<?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>105856</bug_id>
          
          <creation_ts>2012-12-29 03:51:38 -0800</creation_ts>
          <short_desc>Web Inspector: Workspace should support several projects and should not have temporary UISourceCodes.</short_desc>
          <delta_ts>2013-01-11 09:32:38 -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="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</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>798107</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-12-29 03:51:38 -0800</bug_when>
    <thetext>Workspace now supports several projects with the networkProject being a main one.
Replaced temporary UISourceCodes with specific projects (debugger and liveedit).
The concept of workspace reset on navigation is now replaced with project reset concept instead.
Introduced snippets project (that is not reset on navigation).
Script mappings are now reset on GlobalObjectCleared event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798110</commentid>
    <comment_count>1</comment_count>
      <attachid>180933</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-12-29 04:14:39 -0800</bug_when>
    <thetext>Created attachment 180933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798111</commentid>
    <comment_count>2</comment_count>
      <attachid>180933</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-12-29 04:34:26 -0800</bug_when>
    <thetext>Comment on attachment 180933
Patch

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

&gt; Source/WebCore/inspector/front-end/BreakpointManager.js:239
&gt; +                    this._breakpoints.remove(breakpoint);

This might be a bit more expensive than maintaining buckets for breakpoints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798112</commentid>
    <comment_count>3</comment_count>
      <attachid>180933</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-12-29 04:36:42 -0800</bug_when>
    <thetext>Comment on attachment 180933
Patch

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

&gt; Source/WebCore/inspector/front-end/Workspace.js:45
&gt; +        WebInspector.cssModel.resetSourceMappings();

This does not sound right - controller should not depend on providers.

&gt; Source/WebCore/inspector/front-end/inspector.js:434
&gt; +    this.networkWorkspaceProvider = new WebInspector.NetworkWorkspaceProvider();

Move this somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803270</commentid>
    <comment_count>4</comment_count>
      <attachid>181905</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-09 06:05:11 -0800</bug_when>
    <thetext>Created attachment 181905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803367</commentid>
    <comment_count>5</comment_count>
      <attachid>181905</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-09 09:01:45 -0800</bug_when>
    <thetext>Comment on attachment 181905
Patch

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

New failing tests:
inspector/debugger/watch-expressions-preserve-expansion.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805094</commentid>
    <comment_count>6</comment_count>
      <attachid>182302</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-11 02:22:03 -0800</bug_when>
    <thetext>Created attachment 182302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805116</commentid>
    <comment_count>7</comment_count>
      <attachid>182302</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-11 03:04:17 -0800</bug_when>
    <thetext>Comment on attachment 182302
Patch

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

New failing tests:
inspector/debugger/watch-expressions-preserve-expansion.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805131</commentid>
    <comment_count>8</comment_count>
      <attachid>182302</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-11 03:23:40 -0800</bug_when>
    <thetext>Comment on attachment 182302
Patch

Attachment 182302 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15811243

New failing tests:
inspector/debugger/live-edit-breakpoints.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805142</commentid>
    <comment_count>9</comment_count>
      <attachid>182302</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-11 03:41:18 -0800</bug_when>
    <thetext>Comment on attachment 182302
Patch

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

&gt; Source/WebCore/inspector/front-end/BreakpointManager.js:230
&gt; +        var project = event.data;

Cast annotation?

&gt; Source/WebCore/inspector/front-end/CSSStyleModel.js:485
&gt; +    _inspectedURLChanged: function(event)

This little refactoring looks like a separate change.

&gt; Source/WebCore/inspector/front-end/FilteredItemSelectionDialog.js:622
&gt; +        if (projectName === WebInspector.projectNames.Debugger || projectName === WebInspector.projectNames.LiveEdit)

project.isServiceProject()

&gt; Source/WebCore/inspector/front-end/LiveEditSupport.js:157
&gt; +        this.addFile(uniqueURI, url, contentProvider, isEditable);

I would do that in the call site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805151</commentid>
    <comment_count>10</comment_count>
      <attachid>182302</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-11 03:59:52 -0800</bug_when>
    <thetext>Comment on attachment 182302
Patch

Attachment 182302 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15802371

New failing tests:
inspector/debugger/live-edit-breakpoints.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805277</commentid>
    <comment_count>11</comment_count>
      <attachid>182346</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-11 08:25:44 -0800</bug_when>
    <thetext>Created attachment 182346
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805328</commentid>
    <comment_count>12</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-11 09:32:38 -0800</bug_when>
    <thetext>Committed r139454: &lt;http://trac.webkit.org/changeset/139454&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180933</attachid>
            <date>2012-12-29 04:14:39 -0800</date>
            <delta_ts>2013-01-09 06:05:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105856-20121229161148.patch</filename>
            <type>text/plain</type>
            <size>83879</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGU1ZGUzY2FiNjI1YjJk
N2I5ZTk5OTkzN2NiN2JiOWYwZjY5YWVlNS4uYWM4MTljYzc3M2NjOWIyMTdlMWQwNDU0YWI1NDIy
MjQ0ZmFjZjNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEyLTEyLTI5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFdvcmtzcGFjZSBzaG91bGQgc3VwcG9ydCBzZXZlcmFsIHByb2plY3RzIGFuZCBzaG91bGQg
bm90IGhhdmUgdGVtcG9yYXJ5IFVJU291cmNlQ29kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3Jrc3BhY2Ugbm93IHN1cHBvcnRzIHNldmVyYWwg
cHJvamVjdHMgd2l0aCB0aGUgbmV0d29ya1Byb2plY3QgYmVpbmcgYSBtYWluIG9uZS4KKyAgICAg
ICAgUmVwbGFjZWQgdGVtcG9yYXJ5IFVJU291cmNlQ29kZXMgd2l0aCBzcGVjaWZpYyBwcm9qZWN0
cyAoZGVidWdnZXIgYW5kIGxpdmVlZGl0KS4KKyAgICAgICAgVGhlIGNvbmNlcHQgb2Ygd29ya3Nw
YWNlIHJlc2V0IG9uIG5hdmlnYXRpb24gaXMgbm93IHJlcGxhY2VkIHdpdGggcHJvamVjdCByZXNl
dCBjb25jZXB0IGluc3RlYWQuCisgICAgICAgIEludHJvZHVjZWQgc25pcHBldHMgcHJvamVjdCAo
dGhhdCBpcyBub3QgcmVzZXQgb24gbmF2aWdhdGlvbikuCisgICAgICAgIFNjcmlwdCBtYXBwaW5n
cyBhcmUgbm93IHJlc2V0IG9uIEdsb2JhbE9iamVjdENsZWFyZWQgZXZlbnQuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50TWFuYWdlci5wcm90b3R5cGUuX3Byb2plY3RXaWxsUmVzZXQuZ2V0IGZvcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLl9wcm9qZWN0V2ls
bFJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFw
cGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2Rl
YnVnZ2VyUmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFNjcmlw
dE1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlwdE1hcHBpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5h
ZGRTY3JpcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBwaW5nLnBy
b3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJX
b3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUuYWRkRGVidWdnZXJGaWxlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkdldFBhZ2VSZXNvdXJjZXMpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJjZURpYWxvZy5zaG93KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0xpdmVFZGl0U3VwcG9ydC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxpdmVF
ZGl0U3VwcG9ydC5wcm90b3R5cGUudWlTb3VyY2VDb2RlRm9yTGl2ZUVkaXQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkxpdmVFZGl0U3VwcG9ydC5wcm90b3R5cGUuX2RlYnVnZ2VyUmVzZXQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBl
LmFkZExpdmVFZGl0RmlsZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3Jr
VUlTb3VyY2VDb2RlUHJvdmlkZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1VJ
U291cmNlQ29kZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3Vy
Y2VDb2RlUHJvdmlkZXIucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db250ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUucmVzZXQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlQWRk
ZWRUb1dvcmtzcGFjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBw
aW5nLnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJldmlz
aW9uSGlzdG9yeVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJldmlzaW9uSGlzdG9yeVZp
ZXcucHJvdG90eXBlLl9wcm9qZWN0V2lsbFJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3Jp
cHRTbmlwcGV0TW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2Rl
bC5wcm90b3R5cGUuX2FkZFNjcmlwdFNuaXBwZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0c05hdmlnYXRvci5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2FkZFVJU291
cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5f
dWlTb3VyY2VDb2RlUmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fcmVtb3ZlVUlTb3VyY2VDb2Rlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJXYXNEaXNhYmxlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcHJvamVjdFdpbGxSZXNl
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5jYW5TaG93
QW5jaG9yTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUuX3JldmVhbEV4ZWN1dGlvbkxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuc2hvd0dvVG9Tb3VyY2VEaWFsb2cpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNT
b3VyY2VNYXBwaW5nLnByb3RvdHlwZS5fcHJvamVjdFdpbGxSZXNldCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5wcm9qZWN0KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2VDb250cm9sbGVyLnByb3RvdHlwZS5fbWFpbkZyYW1lTmF2aWdhdGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Qcm9qZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3Rv
dHlwZS5uYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3RvdHlwZS5fcmVz
ZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS51aVNvdXJjZUNvZGVGb3JVUkwpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUudWlTb3VyY2VDb2RlRm9yVVJJKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlLmFkZFByb2plY3QpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUucHJvamVjdCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS5wcm9qZWN0cyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS51aVNvdXJjZUNvZGVzKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlLnByb2plY3RGb3JVSVNvdXJjZUNvZGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUucmVxdWVzdEZpbGVD
b250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlLnNldEZp
bGVDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlLnNl
YXJjaEluRmlsZUNvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJu
cy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKwogMjAx
Mi0xMi0yOCAgTm8nYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJF
R1JFU1NJT046IHIxMzg1NTUgYXNzZXJ0cyBvbiBMaW51eCBFRkwvUXQgZGVidWcgYnVpbGRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRN
YW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50
TWFuYWdlci5qcwppbmRleCBhOWZkNmVmZTdkN2EyZWNkOGFjMzQyODNhYTJmOTA5YWJiYTlkOTNl
Li42N2UxYzEzMTZhYjY3M2NmYTE3OTQ3NjBiNjYzOWJjZDVmZWE2NWY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIu
anMKQEAgLTQ3LDkgKzQ3LDggQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyID0gZnVu
Y3Rpb24oYnJlYWtwb2ludFN0b3JhZ2UsIGRlYnVnZ2VyTW9kZWwsIHdvcmsKICAgICB0aGlzLl9z
b3VyY2VGaWxlc1dpdGhSZXN0b3JlZEJyZWFrcG9pbnRzID0ge307CiAKICAgICB0aGlzLl9kZWJ1
Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZl
bnRzLkJyZWFrcG9pbnRSZXNvbHZlZCwgdGhpcy5fYnJlYWtwb2ludFJlc29sdmVkLCB0aGlzKTsK
LSAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3Nw
YWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl93b3Jrc3BhY2VSZXNldCwgdGhpcyk7
CisgICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtz
cGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcHJvamVjdFdpbGxSZXNldCwgdGhp
cyk7CiAgICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdGhpcy5fdWlTb3Vy
Y2VDb2RlQWRkZWQsIHRoaXMpOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3Vy
Y2VDb2RlQWRkZWQsIHRoaXMuX3VpU291cmNlQ29kZUFkZGVkLCB0aGlzKTsKIH0KIAogV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkV2ZW50cyA9IHsKQEAgLTIyNiwxNiArMjI1LDI2IEBA
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRo
aXMuX3NvdXJjZUZpbGVzV2l0aFJlc3RvcmVkQnJlYWtwb2ludHMgPSB7fTsKICAgICB9LAogCi0g
ICAgX3dvcmtzcGFjZVJlc2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgYnJlYWtw
b2ludHMgPSB0aGlzLl9icmVha3BvaW50cy5zbGljZSgpOwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBicmVha3BvaW50
c1tpXS5fcmVzZXRMb2NhdGlvbnMoKTsKLSAgICAgICAgICAgIGJyZWFrcG9pbnRzW2ldLl9pc1By
b3Zpc2lvbmFsID0gdHJ1ZTsKKyAgICBfcHJvamVjdFdpbGxSZXNldDogZnVuY3Rpb24oZXZlbnQp
CisgICAgeworICAgICAgICB2YXIgcHJvamVjdCA9IGV2ZW50LmRhdGE7CisgICAgICAgIHZhciB1
aVNvdXJjZUNvZGVzID0gcHJvamVjdC51aVNvdXJjZUNvZGVzKCk7CisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFy
IHVpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZXNbaV07CisgICAgICAgICAgICB2YXIgYnJlYWtw
b2ludHMgPSB0aGlzLl9icmVha3BvaW50c0ZvclVJU291cmNlQ29kZS5nZXQodWlTb3VyY2VDb2Rl
KSB8fCBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgaW4gYnJlYWtwb2ludHMp
IHsKKyAgICAgICAgICAgICAgICB2YXIgbGluZUJyZWFrcG9pbnRzID0gYnJlYWtwb2ludHNbbGlu
ZU51bWJlcl07CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsaW5lQnJlYWtw
b2ludHMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQg
PSBsaW5lQnJlYWtwb2ludHNbal07CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9p
bnRzLnJlbW92ZShicmVha3BvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5f
cmVzZXRMb2NhdGlvbnMoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5faXNQcm92
aXNpb25hbCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICAgICAgdGhpcy5fYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUucmVtb3ZlKHVpU291cmNlQ29k
ZSk7CisgICAgICAgICAgICB2YXIgc291cmNlRmlsZUlkID0gV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnRNYW5hZ2VyLnNvdXJjZUZpbGVJZCh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgZGVsZXRl
IHRoaXMuX3NvdXJjZUZpbGVzV2l0aFJlc3RvcmVkQnJlYWtwb2ludHNbc291cmNlRmlsZUlkXTsK
ICAgICAgICAgfQotICAgICAgICB0aGlzLl9icmVha3BvaW50cyA9IFtdOwotICAgICAgICB0aGlz
Ll9icmVha3BvaW50c0ZvclVJU291cmNlQ29kZS5jbGVhcigpOwotICAgICAgICB0aGlzLl9zb3Vy
Y2VGaWxlc1dpdGhSZXN0b3JlZEJyZWFrcG9pbnRzID0ge307CiAgICAgfSwKIAogICAgIF9icmVh
a3BvaW50UmVzb2x2ZWQ6IGZ1bmN0aW9uKGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcwppbmRl
eCBiYTM2MmU4MDg3MzFhYmJkNjkyYTYwMGJmMjEwN2IxMTkwOGE4MGQ2Li41OTMyYzAxMmRkNTYw
N2Y3MmRhY2MxZGY4NDY3NWI3ZjBlZDYxYTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcwpAQCAt
NDUsNyArNDUsNyBAQCBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nID0gZnVuY3Rp
b24od29ya3NwYWNlLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZQogICAgIHRoaXMuX3NjcmlwdEZv
clNvdXJjZU1hcCA9IG5ldyBNYXAoKTsKICAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBX
ZWJJbnNwZWN0b3IuUG9zaXRpb25CYXNlZFNvdXJjZU1hcD59ICovCiAgICAgdGhpcy5fc291cmNl
TWFwRm9yVVJMID0ge307Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcmVzZXQs
IHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkdsb2JhbE9iamVjdENsZWFyZWQsIHRo
aXMuX2RlYnVnZ2VyUmVzZXQsIHRoaXMpOwogfQogCiBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3Jp
cHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKQEAgLTE0MSw3ICsxNDEsNyBAQCBXZWJJbnNwZWN0b3Iu
Q29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHNvdXJj
ZU1hcDsKICAgICB9LAogCi0gICAgX3Jlc2V0OiBmdW5jdGlvbigpCisgICAgX2RlYnVnZ2VyUmVz
ZXQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3NvdXJjZU1hcEZvclNvdXJjZU1h
cFVSTCA9IHt9OwogICAgICAgICB0aGlzLl9zb3VyY2VNYXBGb3JTY3JpcHRJZCA9IHt9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0U2NyaXB0
TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFNj
cmlwdE1hcHBpbmcuanMKaW5kZXggOTA4MTU2MmExMzgyYjc5MjYzM2Q0MGMwOGM3NDJkZmNjN2Uy
OTQxOS4uM2E5ZjM2MzhjZWMwNjQxNTc2YjNmNGU2NDg3ZDZkNTRjYzJhOWFjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0U2NyaXB0TWFwcGlu
Zy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRTY3Jp
cHRNYXBwaW5nLmpzCkBAIC0zOCw4ICszOCw4IEBAIFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0
TWFwcGluZyA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlCiB7
CiAgICAgdGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlOwogICAgIHRoaXMuX2RlYnVnZ2VyV29y
a3NwYWNlUHJvdmlkZXIgPSBkZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyOwotICAgIHRoaXMuX3dv
cmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlBy
b2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKLSAgICB0aGlzLl9yZXNldCgpOwor
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkdsb2JhbE9iamVjdENsZWFyZWQsIHRoaXMuX2RlYnVn
Z2VyUmVzZXQsIHRoaXMpOworICAgIHRoaXMuX2RlYnVnZ2VyUmVzZXQoKTsKIH0KIAogV2ViSW5z
cGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKQEAgLTc2LDcgKzc2LDgg
QEAgV2ViSW5zcGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICBh
ZGRTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKICAgICB7CiAgICAgICAgIHZhciBjb250ZW50UHJv
dmlkZXIgPSBzY3JpcHQuaXNJbmxpbmVTY3JpcHQoKSA/IG5ldyBXZWJJbnNwZWN0b3IuQ29uY2F0
ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRlcihbc2NyaXB0XSkgOiBzY3JpcHQ7Ci0gICAgICAg
IHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl9kZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyLmFkZERl
YnVnZ2VyRmlsZShzY3JpcHQuc291cmNlVVJMLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKKyAg
ICAgICAgdmFyIHVyaSA9IHRoaXMuX2RlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIuYWRkRGVidWdn
ZXJGaWxlKHNjcmlwdC5zb3VyY2VVUkwsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UsIHNjcmlwdC5p
c0NvbnRlbnRTY3JpcHQpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3Nw
YWNlLnVpU291cmNlQ29kZUZvclVSSSh1cmkpOwogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVG
b3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdID0gdWlTb3VyY2VDb2RlOwogICAgICAgICB0aGlz
Ll9zY3JpcHRJZEZvclVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzY3JpcHQuc2NyaXB0
SWQpOwogICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U291cmNlTWFwcGluZyh0aGlzKTsKQEAgLTk1
LDEyICs5NiwxMyBAQCBXZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlwdE1hcHBpbmcucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHRJZF0uYWRk
UmV2aXNpb24oY29udGVudCk7CiAgICAgfSwKIAotICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAg
IF9kZWJ1Z2dlclJlc2V0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICAvKiogQHR5cGUge09i
amVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0gKi8KICAgICAgICAgdGhp
cy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKICAgICAgICAgdGhpcy5fc2NyaXB0SWRG
b3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7Ci0gICAgfSwKKyAgICAgICAgdGhpcy5fZGVidWdn
ZXJXb3Jrc3BhY2VQcm92aWRlci5yZXNldCgpOworICAgIH0KIH0KIAogLyoqCkBAIC0xMTgsMTYg
KzEyMCwxNSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5
cGUgPSB7CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAogICAgICAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVudFByb3ZpZGVyCiAgICAgICogQHBhcmFtIHti
b29sZWFufSBpc0VkaXRhYmxlCi0gICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZX0KKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzQ29udGVudFNjcmlwdAorICAgICAqIEBy
ZXR1cm4ge3N0cmluZ30KICAgICAgKi8KLSAgICBhZGREZWJ1Z2dlckZpbGU6IGZ1bmN0aW9uKHVy
bCwgY29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlKQorICAgIGFkZERlYnVnZ2VyRmlsZTogZnVu
Y3Rpb24odXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUsIGlzQ29udGVudFNjcmlwdCkK
ICAgICB7CiAgICAgICAgIHZhciB1cmkgPSAiZGVidWdnZXI6IiArIFdlYkluc3BlY3Rvci5Db250
ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlci51cmlGb3JVUkwodXJsKTsKICAgICAgICAgdmFy
IHVuaXF1ZVVSSSA9IHRoaXMudW5pcXVlVVJJKHVyaSk7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSB0aGlzLl93b3Jrc3BhY2UuYWRkVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKHVuaXF1ZVVSSSwg
dXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUpOwotICAgICAgICAvLyBGSVhNRTogdGhp
cyBpcyBhIHRlbXBvcmFyeSBoYWNrIHRvIGJlIHJlbW92ZWQgb25jZSBEZWZhdWx0U2NyaXB0TWFw
cGluZyB1aVNvdXJjZUNvZGUgYmVjb21lIHBhcnQgb2YgdGhlIHdvcmtzcGFjZS4KLSAgICAgICAg
dGhpcy5fY29udGVudFByb3ZpZGVyc1t1bmlxdWVVUkldID0gdWlTb3VyY2VDb2RlOwotICAgICAg
ICByZXR1cm4gdWlTb3VyY2VDb2RlOworICAgICAgICB0aGlzLmFkZEZpbGUodW5pcXVlVVJJLCB1
cmwsIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSwgaXNDb250ZW50U2NyaXB0KTsKKyAgICAg
ICAgcmV0dXJuIHVuaXF1ZVVSSTsKICAgICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0
b3IuQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBlCkBAIC0xMzcsMyAr
MTM4LDQgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBl
ID0gewogICogQHR5cGUgez9XZWJJbnNwZWN0b3IuRGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlcn0K
ICAqLwogV2ViSW5zcGVjdG9yLmRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIgPSBudWxsOworCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNl
cnZlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2Vy
dmVyLmpzCmluZGV4IDZkMDU1ODkwMGJlMTIzZWZjOTc4MDAxNjUyZGE1ZTA5YjE1M2I2YzkuLjk0
MGFmOGE4NmI3Y2VkM2U2ZjczNzMwOGM2Mjg1MzQxYmI3MjNkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC00
NDYsNyArNDQ2LDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICBpZiAoIXJlc291cmNlc1tjb250ZW50UHJvdmlkZXIuY29udGVudFVSTCgp
XSkKICAgICAgICAgICAgICAgICByZXNvdXJjZXNbY29udGVudFByb3ZpZGVyLmNvbnRlbnRVUkwo
KV0gPSB0aGlzLl9tYWtlUmVzb3VyY2UoY29udGVudFByb3ZpZGVyKTsKICAgICAgICAgfQotICAg
ICAgICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLnVpU291cmNlQ29kZXMoKS5mb3JFYWNoKHB1c2hS
ZXNvdXJjZURhdGEuYmluZCh0aGlzKSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrUHJv
amVjdC51aVNvdXJjZUNvZGVzKCkuZm9yRWFjaChwdXNoUmVzb3VyY2VEYXRhLmJpbmQodGhpcykp
OwogICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZm9yQWxsUmVzb3VyY2Vz
KHB1c2hSZXNvdXJjZURhdGEuYmluZCh0aGlzKSk7CiAgICAgICAgIHJldHVybiBPYmplY3QudmFs
dWVzKHJlc291cmNlcyk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMK
aW5kZXggNmQ2Y2I0YjU4MTIzYTA2NjkzNjU0NDNiZTY3NTZlM2Q1ZDFiNTc2My4uNDZjOWNmZDc1
OTMwODcwNmY1MjIwNDM2ZjhmYTNmNDgyZTQzMzFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rp
b25EaWFsb2cuanMKQEAgLTYwOSwxNCArNjA5LDE5IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0
T3V0bGluZURpYWxvZy5wcm90b3R5cGUgPSB7CiAgKiBAY29uc3RydWN0b3IKICAqIEBpbXBsZW1l
bnRzIHtXZWJJbnNwZWN0b3IuU2VsZWN0aW9uRGlhbG9nQ29udGVudFByb3ZpZGVyfQogICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsfSBwYW5lbAotICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXJ9IHVpU291cmNlQ29kZVByb3ZpZGVyCiAgKi8KLVdl
Ykluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cgPSBmdW5jdGlvbihwYW5lbCwgdWlTb3VyY2VD
b2RlUHJvdmlkZXIpCitXZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nID0gZnVuY3Rpb24o
cGFuZWwpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlNlbGVjdGlvbkRpYWxvZ0NvbnRlbnRQcm92aWRl
ci5jYWxsKHRoaXMpOwogICAgIHRoaXMuX3BhbmVsID0gcGFuZWw7CiAKLSAgICB0aGlzLl91aVNv
dXJjZUNvZGVzID0gdWlTb3VyY2VDb2RlUHJvdmlkZXIudWlTb3VyY2VDb2RlcygpOworICAgIHZh
ciBwcm9qZWN0cyA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UucHJvamVjdHMoKTsKKyAgICB0aGlz
Ll91aVNvdXJjZUNvZGVzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9qZWN0cy5s
ZW5ndGg7ICsraSkgeworICAgICAgICBpZiAocHJvamVjdHNbaV0gPT09IFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlclByb2plY3QgfHwgcHJvamVjdHNbaV0gPT09IFdlYkluc3BlY3Rvci5saXZlRWRpdFBy
b2plY3QpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2Rl
cyA9IHRoaXMuX3VpU291cmNlQ29kZXMuY29uY2F0KHByb2plY3RzW2ldLnVpU291cmNlQ29kZXMo
KSk7CisgICAgfQogCiAgICAgZnVuY3Rpb24gZmlsdGVyT3V0RW1wdHlVUkxzKHVpU291cmNlQ29k
ZSkKICAgICB7CkBAIC03MTQsMTQgKzcxOSwxMyBAQCBXZWJJbnNwZWN0b3IuT3BlblJlc291cmNl
RGlhbG9nLnByb3RvdHlwZSA9IHsKIAogLyoqCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWx9IHBhbmVsCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92
aWRlcn0gdWlTb3VyY2VDb2RlUHJvdmlkZXIKICAqIEBwYXJhbSB7RWxlbWVudH0gcmVsYXRpdmVU
b0VsZW1lbnQKICAqLwotV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJjZURpYWxvZy5zaG93ID0gZnVu
Y3Rpb24ocGFuZWwsIHVpU291cmNlQ29kZVByb3ZpZGVyLCByZWxhdGl2ZVRvRWxlbWVudCkKK1dl
Ykluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cuc2hvdyA9IGZ1bmN0aW9uKHBhbmVsLCByZWxh
dGl2ZVRvRWxlbWVudCkKIHsKICAgICBpZiAoV2ViSW5zcGVjdG9yLkRpYWxvZy5jdXJyZW50SW5z
dGFuY2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdmFyIGZpbHRlcmVkSXRlbVNlbGVjdGlv
bkRpYWxvZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nKG5l
dyBXZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nKHBhbmVsLCB1aVNvdXJjZUNvZGVQcm92
aWRlcikpOworICAgIHZhciBmaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cgPSBuZXcgV2ViSW5z
cGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyhuZXcgV2ViSW5zcGVjdG9yLk9wZW5S
ZXNvdXJjZURpYWxvZyhwYW5lbCkpOwogICAgIFdlYkluc3BlY3Rvci5EaWFsb2cuc2hvdyhyZWxh
dGl2ZVRvRWxlbWVudCwgZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTGl2ZUVkaXRTdXBwb3J0Lmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9MaXZlRWRpdFN1cHBvcnQuanMK
aW5kZXggNzVhNTk2M2E4YmM3ZWRhMjgyZmVlM2U1NWEwMzAwOWY2NmQ0NzA5Ni4uMDFkMmE0OWE5
ZjUwMzYxODBlZWI2ZjQ4MjM0ZWUzMmZhOGRlZjQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9MaXZlRWRpdFN1cHBvcnQuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9MaXZlRWRpdFN1cHBvcnQuanMKQEAgLTMxLDEzICsz
MSwxNCBAQAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldv
cmtzcGFjZX0gd29ya3NwYWNlCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5MaXZlRWRpdFdvcmtz
cGFjZVByb3ZpZGVyfSBsaXZlRWRpdFdvcmtzcGFjZVByb3ZpZGVyCiAgKi8KLVdlYkluc3BlY3Rv
ci5MaXZlRWRpdFN1cHBvcnQgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCitXZWJJbnNwZWN0b3IuTGl2
ZUVkaXRTdXBwb3J0ID0gZnVuY3Rpb24od29ya3NwYWNlLCBsaXZlRWRpdFdvcmtzcGFjZVByb3Zp
ZGVyKQogewogICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKLSAgICB0aGlzLl9saXZl
RWRpdFdvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5MaXZlRWRpdFdvcmtzcGFj
ZVByb3ZpZGVyKHdvcmtzcGFjZSk7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5f
cmVzZXQsIHRoaXMpOwotICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgdGhpcy5fbGl2ZUVkaXRXb3Jr
c3BhY2VQcm92aWRlciA9IGxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXI7CisgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJN
b2RlbC5FdmVudHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCwgdGhpcy5fZGVidWdnZXJSZXNldCwgdGhp
cyk7CisgICAgdGhpcy5fZGVidWdnZXJSZXNldCgpOwogfQogCiBXZWJJbnNwZWN0b3IuTGl2ZUVk
aXRTdXBwb3J0LnByb3RvdHlwZSA9IHsKQEAgLTU3LDIxICs1OCwyMyBAQCBXZWJJbnNwZWN0b3Iu
TGl2ZUVkaXRTdXBwb3J0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybiB1aUxvY2F0
aW9uLnVpU291cmNlQ29kZTsKICAgICAgICAgaWYgKHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlw
dElkW3NjcmlwdC5zY3JpcHRJZF0pCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdWlTb3VyY2VD
b2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXTsKLSAgICAgICAgCisKICAgICAgICAgY29u
c29sZS5hc3NlcnQoIXNjcmlwdC5pc0lubGluZVNjcmlwdCgpKTsKLSAgICAgICAgdmFyIHVyaSA9
IHVpU291cmNlQ29kZS51cmkoKTsKLSAgICAgICAgdmFyIGxpdmVFZGl0VUlTb3VyY2VDb2RlID0g
dGhpcy5fbGl2ZUVkaXRXb3Jrc3BhY2VQcm92aWRlci5hZGRMaXZlRWRpdEZpbGUodWlTb3VyY2VD
b2RlLnVybCwgc2NyaXB0LCB0cnVlKTsKKyAgICAgICAgdmFyIHVyaSA9IHRoaXMuX2xpdmVFZGl0
V29ya3NwYWNlUHJvdmlkZXIuYWRkTGl2ZUVkaXRGaWxlKHVpU291cmNlQ29kZS51cmwsIHNjcmlw
dCwgdHJ1ZSk7CisgICAgICAgIHZhciBsaXZlRWRpdFVJU291cmNlQ29kZSA9IHRoaXMuX3dvcmtz
cGFjZS51aVNvdXJjZUNvZGVGb3JVUkkodXJpKTsKICAgICAgICAgbGl2ZUVkaXRVSVNvdXJjZUNv
ZGUuc2V0U2NyaXB0RmlsZShuZXcgV2ViSW5zcGVjdG9yLkxpdmVFZGl0U2NyaXB0RmlsZSh1aVNv
dXJjZUNvZGUsIGxpdmVFZGl0VUlTb3VyY2VDb2RlLCBzY3JpcHQuc2NyaXB0SWQpKTsKICAgICAg
ICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9IGxpdmVF
ZGl0VUlTb3VyY2VDb2RlOwogICAgICAgICB0aGlzLl9zY3JpcHRJZEZvclVJU291cmNlQ29kZS5w
dXQobGl2ZUVkaXRVSVNvdXJjZUNvZGUsIHNjcmlwdC5zY3JpcHRJZCk7CiAgICAgICAgIHJldHVy
biBsaXZlRWRpdFVJU291cmNlQ29kZTsKICAgICB9LAogCi0gICAgX3Jlc2V0OiBmdW5jdGlvbigp
CisgICAgX2RlYnVnZ2VyUmVzZXQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIC8qKiBAdHlw
ZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fSAqLwogICAgICAg
ICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZCA9IHt9OwogICAgICAgICB0aGlzLl9zY3Jp
cHRJZEZvclVJU291cmNlQ29kZSA9IG5ldyBNYXAoKTsKKworICAgICAgICB0aGlzLl9saXZlRWRp
dFdvcmtzcGFjZVByb3ZpZGVyLnJlc2V0KCk7CiAgICAgfSwKIH0KIApAQCAtMTQ3LDE1ICsxNTAs
MTQgQEAgV2ViSW5zcGVjdG9yLkxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBlID0g
ewogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5Db250ZW50UHJvdmlkZXJ9IGNvbnRlbnRQcm92aWRlcgogICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gaXNFZGl0YWJsZQotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9
CisgICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICAqLwogICAgIGFkZExpdmVFZGl0RmlsZTog
ZnVuY3Rpb24odXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUpCiAgICAgewogICAgICAg
ICB2YXIgdXJpID0gImxpdmVlZGl0OiIgKyBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyV29y
a3NwYWNlUHJvdmlkZXIudXJpRm9yVVJMKHVybCk7CiAgICAgICAgIHZhciB1bmlxdWVVUkkgPSB0
aGlzLnVuaXF1ZVVSSSh1cmkpOwotICAgICAgICAvLyBGSVhNRTogdGhpcyBpcyBhIHRlbXBvcmFy
eSBoYWNrIHRvIGJlIHJlbW92ZWQgb25jZSBMaXZlRWRpdCB1aVNvdXJjZUNvZGUgYmVjb21lIHBh
cnQgb2YgdGhlIHdvcmtzcGFjZS4KLSAgICAgICAgdGhpcy5fY29udGVudFByb3ZpZGVyc1t1bmlx
dWVVUkldID0gbnVsbDsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzcGFjZS5hZGRUZW1wb3Jh
cnlVSVNvdXJjZUNvZGUodW5pcXVlVVJJLCB1cmwsIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJs
ZSk7CisgICAgICAgIHRoaXMuYWRkRmlsZSh1bmlxdWVVUkksIHVybCwgY29udGVudFByb3ZpZGVy
LCBpc0VkaXRhYmxlKTsKKyAgICAgICAgcmV0dXJuIHVuaXF1ZVVSSTsKICAgICB9LAogCiAgICAg
X19wcm90b19fOiBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXIu
cHJvdG90eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L05ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCmluZGV4IDFkYjRiYmZk
ZDJmZTFhMzQxMTc4MGQ3NWE3MTQxZDI4MTg3ZDExMGEuLjhiNDBmYThjNjk3NzhkZTc5MjcwNzA5
YTQzNDk3YWFlM2VlMWZjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCkBA
IC0zOCw4ICszOCw2IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIg
PSBmdW5jdGlvbih3b3Jrc3BhY2UsIG5ldHdvcmtXb3Jrc3BhY2VQCiAgICAgdGhpcy5fd29ya3Nw
YWNlID0gd29ya3NwYWNlOwogICAgIHRoaXMuX25ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5l
dHdvcmtXb3Jrc3BhY2VQcm92aWRlcjsKICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRU
eXBlcy5SZXNvdXJjZUFkZGVkLCB0aGlzLl9yZXNvdXJjZUFkZGVkLCB0aGlzKTsKLSAgICB0aGlz
Ll93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50
cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9wcm9qZWN0V2lsbFJlc2V0LCB0aGlzKTsKLSAgICB0
aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2
ZW50cy5Qcm9qZWN0RGlkUmVzZXQsIHRoaXMuX3Byb2plY3REaWRSZXNldCwgdGhpcyk7CiAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5FdmVudHMuUGFyc2VkU2NyaXB0U291cmNlLCB0aGlzLl9wYXJzZWRTY3Jp
cHRTb3VyY2UsIHRoaXMpOwogCiAgICAgdGhpcy5fcHJvY2Vzc2VkVVJMcyA9IHt9OwpAQCAtMTE3
LDE0ICsxMTUsMTYgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX25ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGRO
ZXR3b3JrRmlsZSh1cmwsIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSwgaXNDb250ZW50U2Ny
aXB0KTsKICAgICB9LAogCi0gICAgX3Byb2plY3RXaWxsUmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBy
ZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fcHJvY2Vzc2VkVVJMcyA9IHt9
OwogICAgICAgICB0aGlzLl9sYXN0RHluYW1pY0Fub255bW91c1NjcmlwdEluZGV4Rm9yVVJMID0g
e307Ci0gICAgfSwKLQotICAgIF9wcm9qZWN0RGlkUmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7Cisg
ICAgICAgIHRoaXMuX25ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5yZXNldCgpOwogICAgICAgICB0
aGlzLl9wb3B1bGF0ZSgpOwogICAgIH0KIH0KKworLyoqCisgKiBAdHlwZSB7P1dlYkluc3BlY3Rv
ci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXJ9CisgKi8KK1dlYkluc3BlY3Rvci5uZXR3b3JrVUlT
b3VyY2VDb2RlUHJvdmlkZXIgPSBudWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5qcwppbmRl
eCA5MmY1YWZlNDZiMTJlMTA3N2I2YWUyNTY4YzZlYzIxZjdjMzFkMzNjLi41NDkxZjRmMDA4MjJl
YzM5NmRhZmQ2ODZkODQ3ZWM0YjYxNmMzYzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5q
cwpAQCAtMTIyLDYgKzEyMiw3IEBAIFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3Bh
Y2VQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIHRoaXMuX2NvbnRlbnRQcm92aWRlcnMgPSB7fTsKKyAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLldvcmtzcGFjZVByb3ZpZGVyLkV2ZW50cy5S
ZXNldCwgbnVsbCk7CiAgICAgfSwKICAgICAKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5P
YmplY3QucHJvdG90eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlU2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCmluZGV4IDc4MDI4NTBlYzM3Mjk1
YmU0YjdhMTMwMmIzZWFjNzdhZjhlNWJhN2YuLjg1MmQyYjQ1ODVmZjk4ZWZkNzE5OTE5NGNmNzg3
MmFhYWE4NTg5MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCkBAIC0zNiwxMCArMzYsMTAgQEAK
IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbih3b3Jrc3BhY2Up
CiB7CiAgICAgdGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlOwotICAgIHRoaXMuX3dvcmtzcGFj
ZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RX
aWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291
cmNlQ29kZUFkZGVkLCB0aGlzLl91aVNvdXJjZUNvZGVBZGRlZFRvV29ya3NwYWNlLCB0aGlzKTsK
IAotICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuR2xvYmFsT2Jq
ZWN0Q2xlYXJlZCwgdGhpcy5fZGVidWdnZXJSZXNldCwgdGhpcyk7CisgICAgdGhpcy5fZGVidWdn
ZXJSZXNldCgpOwogfQogCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3Rv
dHlwZSA9IHsKQEAgLTkzLDcgKzkzLDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUgPSB7CiAgICAgX3VpU291cmNlQ29kZUFkZGVkVG9Xb3Jrc3BhY2U6IGZ1
bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IC8qKiBAdHlw
ZSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gKi8gKGV2ZW50LmRhdGEpOwotICAgICAgICBj
b25zb2xlLmFzc2VydCghIXVpU291cmNlQ29kZS51cmwpOworICAgICAgICBpZiAoIXVpU291cmNl
Q29kZS51cmwpCisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIHNjcmlwdHMgPSB0
aGlzLl9zY3JpcHRzRm9yVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CiAgICAgICAgIGlmICgh
c2NyaXB0cy5sZW5ndGgpCkBAIC0xNzUsNyArMTc2LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
U2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3Vy
Y2VNYXBwaW5nKHRoaXMpOwogICAgIH0sCiAKLSAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBf
ZGVidWdnZXJSZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgLyoqIEB0eXBlIHshT2Jq
ZWN0LjxzdHJpbmcsICFBcnJheS48IVdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+Pn0gKi8KICAg
ICAgICAgdGhpcy5faW5saW5lU2NyaXB0c0ZvclNvdXJjZVVSTCA9IHt9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3Lmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3
LmpzCmluZGV4IDQ1OTJlNGFkNTExODk5OTc0YjA3MWVkYmNmMzYwYTIzZjZjNGY3OTQuLmRlODg1
YWRkZmU1NWExMTU1MzFmZDY4YjNiOTI0OTk3NDk1YThkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25IaXN0b3J5Vmlldy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcuanMK
QEAgLTU2LDggKzU2LDcgQEAgV2ViSW5zcGVjdG9yLlJldmlzaW9uSGlzdG9yeVZpZXcgPSBmdW5j
dGlvbigpCiAgICAgV2ViSW5zcGVjdG9yLndvcmtzcGFjZS51aVNvdXJjZUNvZGVzKCkuZm9yRWFj
aChwb3B1bGF0ZVJldmlzaW9ucy5iaW5kKHRoaXMpKTsKICAgICBXZWJJbnNwZWN0b3Iud29ya3Nw
YWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuVUlTb3Vy
Y2VDb2RlQ29udGVudENvbW1pdHRlZCwgdGhpcy5fcmV2aXNpb25BZGRlZCwgdGhpcyk7CiAgICAg
V2ViSW5zcGVjdG9yLndvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcy5fdWlTb3Vy
Y2VDb2RlUmVtb3ZlZCwgdGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLndvcmtzcGFjZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVGVtcG9y
YXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcy5fdWlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcyk7
Ci0gICAgV2ViSW5zcGVjdG9yLndvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsK
KyAgICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcHJvamVjdFdpbGxSZXNl
dCwgdGhpcyk7CiAKICAgICB0aGlzLl9zdGF0dXNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic3BhbiIpOwogICAgIHRoaXMuX3N0YXR1c0VsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkxvY2FsIG1vZGlmaWNhdGlvbnMiKTsKQEAgLTE3MiwxMCArMTcx
LDEwIEBAIFdlYkluc3BlY3Rvci5SZXZpc2lvbkhpc3RvcnlWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlSXRlbXMucmVtb3ZlKHVpU291cmNlQ29kZSk7CiAgICAg
fSwKIAotICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIF9wcm9qZWN0V2lsbFJlc2V0OiBmdW5j
dGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lLnJlbW92ZUNoaWxk
cmVuKCk7Ci0gICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUl0ZW1zLmNsZWFyKCk7CisgICAgICAg
IHZhciBwcm9qZWN0ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgcHJvamVjdC51aVNvdXJjZUNvZGVz
KCkuZm9yRWFjaCh0aGlzLl9yZW1vdmVVSVNvdXJjZUNvZGUuYmluZCh0aGlzKSk7CiAgICAgfSwK
IAogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVs
LmpzCmluZGV4IDllM2YwMzE3ZTg4MDg2MzZlY2IxMmU5ODk3Mzk3ODU4YWE5YzUzZWEuLjRmNzVh
NmZlM2Q4YzRmNThjZjZmNzMwNDYzNGU3Y2U5MThmMTgwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzCkBA
IC0zMiwxMiArMzIsMTIgQEAKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3Bl
Y3Rvci5PYmplY3R9CiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2V9IHdvcmtzcGFj
ZQotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyfSBuZXR3
b3JrV29ya3NwYWNlUHJvdmlkZXIKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92
aWRlcldvcmtzcGFjZVByb3ZpZGVyfSBzbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIKICAqLwotV2Vi
SW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbCA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgbmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyKQorV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbCA9IGZ1
bmN0aW9uKHdvcmtzcGFjZSwgc25pcHBldFdvcmtzcGFjZVByb3ZpZGVyKQogewogICAgIHRoaXMu
X3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKLSAgICB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlk
ZXIgPSBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXI7CisgICAgdGhpcy5fc25pcHBldFdvcmtzcGFj
ZVByb3ZpZGVyID0gc25pcHBldFdvcmtzcGFjZVByb3ZpZGVyOwogICAgIHRoaXMuX3VpU291cmNl
Q29kZUZvclNjcmlwdElkID0ge307CiAgICAgdGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlID0g
bmV3IE1hcCgpOwogICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNuaXBwZXRJZCA9IHt9OwpAQCAt
NDYsOSArNDYsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsID0gZnVuY3Rpb24o
d29ya3NwYWNlLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpCiAgICAgdGhpcy5fc25pcHBldFN0
b3JhZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRTdG9yYWdlKCJzY3JpcHQiLCAiU2NyaXB0
IHNuaXBwZXQgIyIpOwogICAgIHRoaXMuX2xhc3RTbmlwcGV0RXZhbHVhdGlvbkluZGV4U2V0dGlu
ZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKCJsYXN0U25pcHBldEV2YWx1
YXRpb25JbmRleCIsIDApOwogICAgIHRoaXMuX3NuaXBwZXRTY3JpcHRNYXBwaW5nID0gbmV3IFdl
Ykluc3BlY3Rvci5TbmlwcGV0U2NyaXB0TWFwcGluZyh0aGlzKTsKLSAgICB0aGlzLl93b3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0
V2lsbFJlc2V0LCB0aGlzLl9wcm9qZWN0V2lsbFJlc2V0LCB0aGlzKTsKLSAgICB0aGlzLl93b3Jr
c3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9q
ZWN0RGlkUmVzZXQsIHRoaXMuX3Byb2plY3REaWRSZXNldCwgdGhpcyk7Ci0gICAgdGhpcy5fbG9h
ZFNuaXBwZXRzKCk7CisgICAgdGhpcy5yZXNldCgpOwogfQogCiBXZWJJbnNwZWN0b3IuU2NyaXB0
U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKQEAgLTgyLDggKzgwLDggQEAgV2ViSW5zcGVjdG9y
LlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2FkZFNjcmlw
dFNuaXBwZXQ6IGZ1bmN0aW9uKHNuaXBwZXQpCiAgICAgewotICAgICAgICB0aGlzLl9uZXR3b3Jr
V29ya3NwYWNlUHJvdmlkZXIuYWRkTmV0d29ya0ZpbGUoc25pcHBldC5uYW1lLCBuZXcgV2ViSW5z
cGVjdG9yLlNuaXBwZXRDb250ZW50UHJvdmlkZXIoc25pcHBldCksIHRydWUsIGZhbHNlLCB0cnVl
KTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZS51aVNvdXJjZUNv
ZGVGb3JVUkwoc25pcHBldC5uYW1lKTsKKyAgICAgICAgdGhpcy5fc25pcHBldFdvcmtzcGFjZVBy
b3ZpZGVyLmFkZEZpbGUoc25pcHBldC5uYW1lLCBzbmlwcGV0Lm5hbWUsIG5ldyBXZWJJbnNwZWN0
b3IuU25pcHBldENvbnRlbnRQcm92aWRlcihzbmlwcGV0KSwgdHJ1ZSwgZmFsc2UsIHRydWUpOwor
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnByb2plY3QoInNuaXBw
ZXRzIikudWlTb3VyY2VDb2RlRm9yVVJJKHNuaXBwZXQubmFtZSk7CiAgICAgICAgIHZhciBzY3Jp
cHRGaWxlID0gbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0RmlsZSh0aGlzLCB1aVNvdXJj
ZUNvZGUpOwogICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U2NyaXB0RmlsZShzY3JpcHRGaWxlKTsK
ICAgICAgICAgdGhpcy5fc25pcHBldElkRm9yVUlTb3VyY2VDb2RlLnB1dCh1aVNvdXJjZUNvZGUs
IHNuaXBwZXQuaWQpOwpAQCAtMTA0LDcgKzEwMiw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlw
cGV0TW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZWxlYXNlU25pcHBldFNjcmlw
dCh1aVNvdXJjZUNvZGUpOwogICAgICAgICBkZWxldGUgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU25p
cHBldElkW3NuaXBwZXQuaWRdOwogICAgICAgICB0aGlzLl9zbmlwcGV0SWRGb3JVSVNvdXJjZUNv
ZGUucmVtb3ZlKHVpU291cmNlQ29kZSk7Ci0gICAgICAgIHRoaXMuX25ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlci5yZW1vdmVGaWxlKHNuaXBwZXQubmFtZSk7CisgICAgICAgIHRoaXMuX3NuaXBwZXRX
b3Jrc3BhY2VQcm92aWRlci5yZW1vdmVGaWxlKHNuaXBwZXQubmFtZSk7CiAgICAgfSwKIAogICAg
IC8qKgpAQCAtMzcwLDE2ICszNjgsMTUgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBzbmlwcGV0SWQ7CiAgICAgfSwKIAotICAg
IF9wcm9qZWN0V2lsbFJlc2V0OiBmdW5jdGlvbigpCisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAg
ICB7CisgICAgICAgIC8qKiBAdHlwZSB7IU9iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlPn0gKi8KICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7
fTsKICAgICAgICAgdGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOworICAg
ICAgICAvKiogQHR5cGUgeyFPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZT59ICovCiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNuaXBwZXRJZCA9IHt9OwogICAg
ICAgICB0aGlzLl9zbmlwcGV0SWRGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7Ci0gICAgfSwK
LQotICAgIF9wcm9qZWN0RGlkUmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7CisgICAgICAgIHRoaXMu
X3NuaXBwZXRXb3Jrc3BhY2VQcm92aWRlci5yZXNldCgpOwogICAgICAgICB0aGlzLl9sb2FkU25p
cHBldHMoKTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMKaW5kZXggNmU0ODYwOTIwZjhkM2Y2NDEzZDc4
Njk1ODYyM2IyNzJiMzA4ZjUxMy4uYzBlMTZlYTAwMDY0NmU3MzUyYWY3N2IyZDRkNTgyY2Q4YmZk
MDNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRzTmF2aWdhdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c05hdmlnYXRvci5qcwpAQCAtMTcwLDEzICsxNzAsNiBAQCBXZWJJbnNwZWN0b3IuU2Ny
aXB0c05hdmlnYXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRzTmF2aWdhdG9yLkV2ZW50cy5TbmlwcGV0Q3Jl
YXRpb25SZXF1ZXN0ZWQsIGV2ZW50LmRhdGEpOwogICAgIH0sCiAKLSAgICByZXNldDogZnVuY3Rp
b24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2NyaXB0c1ZpZXcucmVzZXQoKTsKLSAgICAgICAg
dGhpcy5fY29udGVudFNjcmlwdHNWaWV3LnJlc2V0KCk7Ci0gICAgICAgIHRoaXMuX3NuaXBwZXRz
Vmlldy5yZXNldCgpOwotICAgIH0sCi0KICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmpl
Y3QucHJvdG90eXBlCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggNzM1NTBlM2UyNGZlZjBkZjk1NmQ1OGJlYmYwMzNj
MzQ1YmQ0N2EwOC4uNzY5MWRmMDU3Y2I5NzY5ZDlhMDUwNDIxZTkyMWQ1NmE4ZmRjYzU3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anMKQEAgLTE5MCw4ICsxOTAsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rp
b24od29ya3NwYWNlRm9yVGVzdCkKIAogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2Rl
QWRkZWQsIHRoaXMuX3VpU291cmNlQ29kZUFkZGVkLCB0aGlzKTsKICAgICB0aGlzLl93b3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZl
bnRzLlVJU291cmNlQ29kZVJlbW92ZWQsIHRoaXMuX3VpU291cmNlQ29kZVJlbW92ZWQsIHRoaXMp
OwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGVQcm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhp
cy5fdWlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcyk7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNl
dCwgdGhpcy5fcmVzZXQuYmluZCh0aGlzKSwgdGhpcyk7CisgICAgdGhpcy5fd29ya3NwYWNlLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxS
ZXNldCwgdGhpcy5fcHJvamVjdFdpbGxSZXNldC5iaW5kKHRoaXMpLCB0aGlzKTsKKyAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVkLCB0aGlzLl9kZWJ1Z2dlclJlc2V0
LCB0aGlzKTsKIAogICAgIFdlYkluc3BlY3Rvci5hZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIucmVn
aXN0ZXJTZWFyY2hTY29wZShuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZSh0aGlz
Ll93b3Jrc3BhY2UpKTsKIH0KQEAgLTI0MywxMiArMjQzLDEzIEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3RvZ2dsZUZv
cm1hdFNvdXJjZUJ1dHRvbi50b2dnbGVkKQogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldEZv
cm1hdHRlZCh0cnVlKTsKLQorICAgICAgICBpZiAodWlTb3VyY2VDb2RlLnByb2plY3QoKSA9PT0g
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJvamVjdCB8fCB1aVNvdXJjZUNvZGUucHJvamVjdCgpID09
PSBXZWJJbnNwZWN0b3IubGl2ZUVkaXRQcm9qZWN0KQorICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB0aGlzLl9lZGl0b3JDb250YWluZXIuYWRkVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7
CiAgICAgICAgIHRoaXMuX25hdmlnYXRvci5hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsK
ICAgICAgICAgLy8gUmVwbGFjZSBkZWJ1Z2dlciBzY3JpcHQtYmFzZWQgdWlTb3VyY2VDb2RlIHdp
dGggYSBuZXR3b3JrLWJhc2VkIG9uZS4KLSAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRVSVNvdXJj
ZUNvZGUgJiYgdGhpcy5fY3VycmVudFVJU291cmNlQ29kZS5pc1RlbXBvcmFyeSAmJiB0aGlzLl9j
dXJyZW50VUlTb3VyY2VDb2RlICE9PSB1aVNvdXJjZUNvZGUgJiYgdGhpcy5fY3VycmVudFVJU291
cmNlQ29kZS51cmwgPT09IHVpU291cmNlQ29kZS51cmwpIHsKLSAgICAgICAgICAgIHZhciBjdXJy
ZW50VUlTb3VyY2VDb2RlID0gdGhpcy5fY3VycmVudFVJU291cmNlQ29kZTsKKyAgICAgICAgdmFy
IGN1cnJlbnRVSVNvdXJjZUNvZGUgPSB0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlOworICAgICAg
ICBpZiAoY3VycmVudFVJU291cmNlQ29kZSAmJiBjdXJyZW50VUlTb3VyY2VDb2RlLnByb2plY3Qo
KSA9PT0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJvamVjdCAmJiBjdXJyZW50VUlTb3VyY2VDb2Rl
ICE9PSB1aVNvdXJjZUNvZGUgJiYgY3VycmVudFVJU291cmNlQ29kZS51cmwgPT09IHVpU291cmNl
Q29kZS51cmwpIHsKICAgICAgICAgICAgIHRoaXMuX3Nob3dGaWxlKHVpU291cmNlQ29kZSk7CiAg
ICAgICAgICAgICB0aGlzLl9lZGl0b3JDb250YWluZXIucmVtb3ZlVUlTb3VyY2VDb2RlKGN1cnJl
bnRVSVNvdXJjZUNvZGUpOwogICAgICAgICB9CkBAIC0yNTcsOSArMjU4LDE5IEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIF91aVNvdXJjZUNvZGVSZW1vdmVk
OiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSAvKiog
QHR5cGUge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9ICovIChldmVudC5kYXRhKTsKLSAgICAg
ICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLnJlbW92ZVVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUp
OwotICAgICAgICB0aGlzLl9uYXZpZ2F0b3IucmVtb3ZlVUlTb3VyY2VDb2RlKHVpU291cmNlQ29k
ZSk7Ci0gICAgICAgIHRoaXMuX3JlbW92ZVNvdXJjZUZyYW1lKHVpU291cmNlQ29kZSk7CisgICAg
ICAgIHRoaXMuX3JlbW92ZVVJU291cmNlQ29kZXMoW3VpU291cmNlQ29kZV0pOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
Pn0gdWlTb3VyY2VDb2RlcworICAgICAqLworICAgIF9yZW1vdmVVSVNvdXJjZUNvZGVzOiBmdW5j
dGlvbih1aVNvdXJjZUNvZGVzKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1
aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0b3Iu
cmVtb3ZlVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZXNbaV0pOworICAgICAgICAgICAgdGhpcy5f
cmVtb3ZlU291cmNlRnJhbWUodWlTb3VyY2VDb2Rlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAg
dGhpcy5fZWRpdG9yQ29udGFpbmVyLnJlbW92ZVVJU291cmNlQ29kZXModWlTb3VyY2VDb2Rlcyk7
CiAgICAgfSwKIAogICAgIF9jb25zb2xlQ29tbWFuZEV2YWx1YXRlZEluU2VsZWN0ZWRDYWxsRnJh
bWU6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMzM2LDI2ICszNDcsMjIgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBfZGVidWdnZXJXYXNEaXNhYmxlZDogZnVu
Y3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVzZXQoKTsKKyAgICAgICAgdGhpcy5fZGVi
dWdnZXJSZXNldCgpOwogICAgIH0sCiAKLSAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBfZGVi
dWdnZXJSZXNldDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgZGVsZXRlIHRoaXMuY3VycmVu
dFF1ZXJ5OwotICAgICAgICB0aGlzLnNlYXJjaENhbmNlbGVkKCk7Ci0KICAgICAgICAgdGhpcy5f
ZGVidWdnZXJSZXN1bWVkKCk7Ci0KLSAgICAgICAgZGVsZXRlIHRoaXMuX2N1cnJlbnRVSVNvdXJj
ZUNvZGU7Ci0gICAgICAgIHRoaXMuX25hdmlnYXRvci5yZXNldCgpOwotICAgICAgICB0aGlzLl9l
ZGl0b3JDb250YWluZXIucmVzZXQoKTsKLSAgICAgICAgdGhpcy5fdXBkYXRlU2NyaXB0Vmlld1N0
YXR1c0Jhckl0ZW1zKCk7Ci0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmpzQnJlYWtwb2ludHMu
cmVzZXQoKTsKICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5yZXNl
dCgpOworICAgIH0sCiAKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlzLl93b3Jrc3Bh
Y2UudWlTb3VyY2VDb2RlcygpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNl
Q29kZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVTb3VyY2VGcmFtZSh1
aVNvdXJjZUNvZGVzW2ldKTsKKyAgICBfcHJvamVjdFdpbGxSZXNldDogZnVuY3Rpb24oZXZlbnQp
CisgICAgeworICAgICAgICB2YXIgcHJvamVjdCA9IGV2ZW50LmRhdGE7CisgICAgICAgIHZhciB1
aVNvdXJjZUNvZGVzID0gcHJvamVjdC51aVNvdXJjZUNvZGVzKCk7CisgICAgICAgIHRoaXMuX3Jl
bW92ZVVJU291cmNlQ29kZXModWlTb3VyY2VDb2Rlcyk7CisgICAgICAgIGlmIChwcm9qZWN0ID09
PSBXZWJJbnNwZWN0b3IubmV0d29ya1Byb2plY3QpCisgICAgICAgICAgICB0aGlzLl9lZGl0b3JD
b250YWluZXIucmVzZXQoKTsKICAgICB9LAogCiAgICAgZ2V0IHZpc2libGVWaWV3KCkKQEAgLTM3
OSw3ICszODYsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICB7CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5kZWJ1Z2dlckVuYWJs
ZWQoKSAmJiBhbmNob3IudWlTb3VyY2VDb2RlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZXMo
KTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBXZWJJbnNwZWN0b3IubmV0d29ya1Byb2pl
Y3QudWlTb3VyY2VDb2RlcygpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNl
Q29kZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGlmICh1aVNvdXJjZUNvZGVzW2ldLnVy
bCA9PT0gYW5jaG9yLmhyZWYpIHsKICAgICAgICAgICAgICAgICBhbmNob3IudWlTb3VyY2VDb2Rl
ID0gdWlTb3VyY2VDb2Rlc1tpXTsKQEAgLTUxOSwxMyArNTI2LDEwIEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IHVpTG9jYXRpb24udWlTb3VyY2VDb2RlOwogICAgICAgICAvLyBTb21lIHNjcmlwdHMgKGFu
b255bW91cyBhbmQgc25pcHBldHMgZXZhbHVhdGlvbnMpIGFyZSBub3QgYWRkZWQgdG8gZmlsZXMg
c2VsZWN0IGJ5IGRlZmF1bHQuCi0gICAgICAgIGlmICh1aVNvdXJjZUNvZGUuaXNUZW1wb3Jhcnkp
IHsKLSAgICAgICAgICAgIGlmICh0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlICYmIHRoaXMuX2N1
cnJlbnRVSVNvdXJjZUNvZGUuc2NyaXB0RmlsZSgpICYmIHRoaXMuX2N1cnJlbnRVSVNvdXJjZUNv
ZGUuc2NyaXB0RmlsZSgpLmlzRGl2ZXJnaW5nRnJvbVZNKCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLmFkZFVJU291cmNlQ29kZSh1
aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgaWYgKHVpU291cmNlQ29kZS5mb3JtYXR0ZWQoKSAh
PT0gdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLnRvZ2dsZWQpCi0gICAgICAgICAgICAg
ICAgdWlTb3VyY2VDb2RlLnNldEZvcm1hdHRlZCh0aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VCdXR0
b24udG9nZ2xlZCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRVSVNvdXJj
ZUNvZGUgJiYgdGhpcy5fY3VycmVudFVJU291cmNlQ29kZS5zY3JpcHRGaWxlKCkgJiYgdGhpcy5f
Y3VycmVudFVJU291cmNlQ29kZS5zY3JpcHRGaWxlKCkuaXNEaXZlcmdpbmdGcm9tVk0oKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUJ1
dHRvbi50b2dnbGVkICYmICF1aVNvdXJjZUNvZGUuZm9ybWF0dGVkKCkpCisgICAgICAgICAgICB1
aVNvdXJjZUNvZGUuc2V0Rm9ybWF0dGVkKHRydWUpOwogICAgICAgICB2YXIgc291cmNlRnJhbWUg
PSB0aGlzLl9zaG93RmlsZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICBzb3VyY2VGcmFtZS5yZXZl
YWxMaW5lKHVpTG9jYXRpb24ubGluZU51bWJlcik7CiAgICAgICAgIHNvdXJjZUZyYW1lLmZvY3Vz
KCk7CkBAIC0xMTU3LDcgKzExNjEsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZSA9IHsKIAogICAgIHNob3dHb1RvU291cmNlRGlhbG9nOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBXZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nLnNob3codGhpcywgdGhpcy5f
d29ya3NwYWNlLCB0aGlzLmVkaXRvclZpZXcubWFpbkVsZW1lbnQpOworICAgICAgICBXZWJJbnNw
ZWN0b3IuT3BlblJlc291cmNlRGlhbG9nLnNob3codGhpcywgdGhpcy5lZGl0b3JWaWV3Lm1haW5F
bGVtZW50KTsKICAgICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuUGFuZWwucHJv
dG90eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0
eWxlc1NvdXJjZU1hcHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlc1NvdXJjZU1hcHBpbmcuanMKaW5kZXggYmQ3ZTI2YzJhZjc0NDU2NDcxM2ZhZTgwNGMw
YjY4M2NjMTEwZDJkOS4uZmE4NmFjYmM0ZGYwYTE0ZTYzYzY0MWVhNGE0ZTk2MzkwZGY3ZjUwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTb3Vy
Y2VNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5
bGVzU291cmNlTWFwcGluZy5qcwpAQCAtMzYsNyArMzYsNyBAQAogV2ViSW5zcGVjdG9yLlN0eWxl
c1NvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCiB7CiAgICAgdGhpcy5fd29ya3Nw
YWNlID0gd29ya3NwYWNlOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0
LCB0aGlzKTsKKyAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9wcm9qZWN0V2lsbFJl
c2V0LCB0aGlzKTsKICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlz
Ll91aVNvdXJjZUNvZGVBZGRlZFRvV29ya3NwYWNlLCB0aGlzKTsKIAogICAgIHRoaXMuX3VpU291
cmNlQ29kZUZvclVSTCA9IHt9OwpAQCAtOTAsMTAgKzkwLDEyIEBAIFdlYkluc3BlY3Rvci5TdHls
ZXNTb3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01v
ZGVsLnNldFNvdXJjZU1hcHBpbmcodWlTb3VyY2VDb2RlLnVybCwgdGhpcyk7CiAgICAgfSwKIAot
ICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIF9wcm9qZWN0V2lsbFJlc2V0OiBmdW5jdGlvbihl
dmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclVSTCA9IHt9OwotICAg
ICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVzZXRTb3VyY2VNYXBwaW5ncygpOworICAgICAg
ICB2YXIgcHJvamVjdCA9IGV2ZW50LmRhdGE7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0g
cHJvamVjdC51aVNvdXJjZUNvZGVzKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlT
b3VyY2VDb2RlczsgKytpKQorICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3VpU291cmNlQ29kZUZv
clVSTFt1aVNvdXJjZUNvZGVzW2ldLnVybF07CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkRWRpdG9yQ29udGFpbmVy
LmpzCmluZGV4IDJiYWFkNTE2MDZlYmVlNGVjMWM3MzliMjI5ZGUwZDU5NGVjOWMwMTIuLjFjMzVh
ZTU5ODJiMzA4MmI1NWJiOWQ5NDJiNDE3ZDFkMDYzYTJhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkRWRpdG9yQ29udGFpbmVyLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkRWRpdG9yQ29udGFpbmVy
LmpzCkBAIC0yMjMsNiArMjIzLDcgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5l
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB0YWJJZHMgPSBbXTsKICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2Rlc1tpXTsKKyAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl9sb2FkZWRVUklzW3VpU291cmNlQ29kZS51cmkoKV07CiAgICAgICAgICAgICB2YXIgdGFi
SWQgPSB0aGlzLl90YWJJZHMuZ2V0KHVpU291cmNlQ29kZSk7CiAgICAgICAgICAgICBpZiAodGFi
SWQpCiAgICAgICAgICAgICAgICAgdGFiSWRzLnB1c2godGFiSWQpOwpAQCAtMzkxLDEyICszOTIs
NyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKIAog
ICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl90YWJiZWRQYW5lLmNs
b3NlQWxsVGFicygpOwotICAgICAgICB0aGlzLl90YWJJZHMgPSBuZXcgTWFwKCk7Ci0gICAgICAg
IHRoaXMuX2ZpbGVzID0ge307Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50RmlsZTsKICAg
ICAgICAgZGVsZXRlIHRoaXMuX3VzZXJTZWxlY3RlZEZpbGVzOwotICAgICAgICB0aGlzLl9sb2Fk
ZWRVUklzID0ge307CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcwppbmRleCBlNmNhY2JhMDI0OWMzNWI4
MWJmOTA0NzM4NzE5NTZmMjFjYjAyMDk3Li43YmM4YzdjMjljMGNjMjQ5OGUyZDJmZDcyNTU2MzQ3
NTUwNzE5NTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1VJU291cmNlQ29kZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1VJU291cmNlQ29kZS5qcwpAQCAtMTY0LDYgKzE2NCwxNCBAQCBXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHJldHVybiB7
V2ViSW5zcGVjdG9yLlByb2plY3R9CisgICAgICovCisgICAgcHJvamVjdDogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0Rm9yVUlTb3VyY2VD
b2RlKHRoaXMpOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9z
dHJpbmcsYm9vbGVhbixzdHJpbmcpfSBjYWxsYmFjawogICAgICAqLwogICAgIHJlcXVlc3RDb250
ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKQEAgLTYwNiw4ICs2MTQsNiBAQCBXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGVQcm92aWRlci5FdmVudHMgPSB7CiAgICAgVUlTb3VyY2VDb2RlQWRkZWQ6ICJVSVNvdXJj
ZUNvZGVBZGRlZCIsCi0gICAgVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWQ6ICJUZW1wb3JhcnlV
SVNvdXJjZUNvZGVBZGRlZCIsCi0gICAgVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZDogIlRl
bXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQiLAogICAgIFVJU291cmNlQ29kZVJlbW92ZWQ6ICJV
SVNvdXJjZUNvZGVSZW1vdmVkIgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV29ya3NwYWNlLmpzCmluZGV4IDZmZjQxMTdiMjQ3MzQ5NDkzNjhiNzRmZWJjMWI4
ZDI2ZGVkODM5NmQuLjg1MDVhNjU1MDc1ZmQyMmUxNjcyZDgzNGI1ZGM1MmI3NzkyNWYwYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpzCkBA
IC00MiwxMCArNDIsOCBAQCBXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJvbGxlci5wcm90b3R5
cGUgPSB7CiAgICAgX21haW5GcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLlJldmlzaW9uLmZpbHRlck91dFN0YWxlUmV2aXNpb25zKCk7Ci0gICAg
ICAgIHRoaXMuX3dvcmtzcGFjZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9y
LldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fd29ya3NwYWNlLnByb2pl
Y3QoKSk7Ci0gICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkucmVzZXQoKTsKLSAgICAg
ICAgdGhpcy5fd29ya3NwYWNlLnJlc2V0KCk7Ci0gICAgICAgIHRoaXMuX3dvcmtzcGFjZS5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVj
dERpZFJlc2V0LCB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgpKTsKKyAgICAgICAgV2ViSW5zcGVj
dG9yLmNzc01vZGVsLnJlc2V0U291cmNlTWFwcGluZ3MoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
Lm5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5yZXNldCgpOwogICAgIH0sCiAKICAgICBfZnJh
bWVBZGRlZDogZnVuY3Rpb24oZXZlbnQpCkBAIC04Miw3ICs4MCw4IEBAIFdlYkluc3BlY3Rvci5X
b3Jrc3BhY2VQcm92aWRlciA9IGZ1bmN0aW9uKCkgeyB9CiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2VQcm92aWRlci5FdmVudHMgPSB7CiAgICAgRmlsZUFkZGVkOiAiRmlsZUFkZGVkIiwKLSAgICBG
aWxlUmVtb3ZlZDogIkZpbGVSZW1vdmVkIgorICAgIEZpbGVSZW1vdmVkOiAiRmlsZVJlbW92ZWQi
LAorICAgIFJlc2V0OiAiUmVzZXQiLAogfQogCiBXZWJJbnNwZWN0b3IuV29ya3NwYWNlUHJvdmlk
ZXIucHJvdG90eXBlID0gewpAQCAtMTMwLDIzICsxMjksMjggQEAgV2ViSW5zcGVjdG9yLndvcmtz
cGFjZUNvbnRyb2xsZXIgPSBudWxsOwogCiAvKioKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldv
cmtzcGFjZX0gd29ya3NwYWNlCisgKiBAcGFyYW0ge3N0cmluZ30gbmFtZQogICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuV29ya3NwYWNlUHJvdmlkZXJ9IHdvcmtzcGFjZVByb3ZpZGVyCiAgKiBAY29u
c3RydWN0b3IKICAqLwotV2ViSW5zcGVjdG9yLlByb2plY3QgPSBmdW5jdGlvbih3b3Jrc3BhY2Us
IHdvcmtzcGFjZVByb3ZpZGVyKQorV2ViSW5zcGVjdG9yLlByb2plY3QgPSBmdW5jdGlvbih3b3Jr
c3BhY2UsIG5hbWUsIHdvcmtzcGFjZVByb3ZpZGVyKQogeworICAgIHRoaXMuX25hbWUgPSBuYW1l
OwogICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSBbXTsKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3
b3Jrc3BhY2U7CiAgICAgdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIgPSB3b3Jrc3BhY2VQcm92aWRl
cjsKICAgICB0aGlzLl93b3Jrc3BhY2VQcm92aWRlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2VQcm92aWRlci5FdmVudHMuRmlsZUFkZGVkLCB0aGlzLl9maWxlQWRkZWQs
IHRoaXMpOwogICAgIHRoaXMuX3dvcmtzcGFjZVByb3ZpZGVyLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLldvcmtzcGFjZVByb3ZpZGVyLkV2ZW50cy5GaWxlUmVtb3ZlZCwgdGhpcy5fZmls
ZVJlbW92ZWQsIHRoaXMpOworICAgIHRoaXMuX3dvcmtzcGFjZVByb3ZpZGVyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZVByb3ZpZGVyLkV2ZW50cy5SZXNldCwgdGhpcy5f
cmVzZXQsIHRoaXMpOwogfQogCiBXZWJJbnNwZWN0b3IuUHJvamVjdC5wcm90b3R5cGUgPSB7Ci0g
ICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Cisg
ICAgICovCisgICAgbmFtZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fd29ya3Nw
YWNlUHJvdmlkZXIucmVzZXQoKTsKLSAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9IFtdOwor
ICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTsKICAgICB9LAogCiAgICAgX2ZpbGVBZGRlZDogZnVu
Y3Rpb24oZXZlbnQpCkBAIC0xNzQsNiArMTc4LDEyIEBAIFdlYkluc3BlY3Rvci5Qcm9qZWN0LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fd29ya3NwYWNlLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29k
ZVJlbW92ZWQsIHVpU291cmNlQ29kZSk7CiAgICAgfSwKIAorICAgIF9yZXNldDogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgdGhpcy5fd29ya3NwYWNlLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzKTsK
KyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9IFtdOworICAgIH0sCisKICAgICAvKioKICAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCiAgICAgICogQHJldHVybiB7P1dlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGV9CkBAIC0yNDcsMTYgKzI1NywxMyBAQCBXZWJJbnNwZWN0b3IuUHJvamVjdC5w
cm90b3R5cGUgPSB7CiAgKi8KIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UgPSBmdW5jdGlvbigpCiB7
Ci0gICAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92
aWRlcj59ICovCi0gICAgdGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVycyA9IHt9OwotICAg
IC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fSAq
LwotICAgIHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZXMgPSB7fTsKKyAgICAvKiogQHR5cGUg
eyFPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlByb2plY3Q+fSAqLworICAgIHRoaXMuX3By
b2plY3RzID0ge307CiB9CiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzID0gewogICAg
IFVJU291cmNlQ29kZUNvbnRlbnRDb21taXR0ZWQ6ICJVSVNvdXJjZUNvZGVDb250ZW50Q29tbWl0
dGVkIiwKLSAgICBQcm9qZWN0V2lsbFJlc2V0OiAiUHJvamVjdFdpbGxSZXNldCIsCi0gICAgUHJv
amVjdERpZFJlc2V0OiAiUHJvamVjdERpZFJlc2V0IgorICAgIFByb2plY3RXaWxsUmVzZXQ6ICJQ
cm9qZWN0V2lsbFJlc2V0IgogfQogCiBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZSA9
IHsKQEAgLTI2Niw3ICsyNzMsNyBAQCBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZSA9
IHsKICAgICAgKi8KICAgICB1aVNvdXJjZUNvZGVGb3JVUkw6IGZ1bmN0aW9uKHVybCkKICAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcm9qZWN0LnVpU291cmNlQ29kZUZvclVSTCh1cmwpOwor
ICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdHNbIm5ldHdvcmsiXS51aVNvdXJjZUNvZGVGb3JV
UkwodXJsKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0yNzUsNjEgKzI4Miw2NyBAQCBXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB1aVNvdXJjZUNvZGVG
b3JVUkk6IGZ1bmN0aW9uKHVyaSkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl90ZW1wb3Jh
cnlVSVNvdXJjZUNvZGVzW3VyaV0gfHwgdGhpcy5fcHJvamVjdC51aVNvdXJjZUNvZGVGb3JVUkko
dXJpKTsKKyAgICAgICAgZm9yICh2YXIgcHJvamVjdE5hbWUgaW4gdGhpcy5fcHJvamVjdHMpIHsK
KyAgICAgICAgICAgIHZhciBwcm9qZWN0ID0gdGhpcy5fcHJvamVjdHNbcHJvamVjdE5hbWVdOwor
ICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHByb2plY3QudWlTb3VyY2VDb2RlRm9yVVJJ
KHVyaSk7CisgICAgICAgICAgICBpZiAodWlTb3VyY2VDb2RlKQorICAgICAgICAgICAgICAgIHJl
dHVybiB1aVNvdXJjZUNvZGU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CiAgICAg
fSwKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9qZWN0TmFtZQogICAgICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZVByb3ZpZGVyfSB3b3Jrc3BhY2VQcm92aWRl
cgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5Qcm9qZWN0fQogICAgICAqLwogICAgIGFk
ZFByb2plY3Q6IGZ1bmN0aW9uKHByb2plY3ROYW1lLCB3b3Jrc3BhY2VQcm92aWRlcikKICAgICB7
Ci0gICAgICAgIC8vIEZJWE1FOiBzdXBwb3J0IG11bHRpcGxlIHByb2plY3RzIGlkZW50aWZpZWQg
YnkgcHJvamVjdCBuYW1lLgotICAgICAgICB0aGlzLl9wcm9qZWN0ID0gbmV3IFdlYkluc3BlY3Rv
ci5Qcm9qZWN0KHRoaXMsIHdvcmtzcGFjZVByb3ZpZGVyKTsKKyAgICAgICAgdGhpcy5fcHJvamVj
dHNbcHJvamVjdE5hbWVdID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9qZWN0KHRoaXMsIHByb2plY3RO
YW1lLCB3b3Jrc3BhY2VQcm92aWRlcik7CisgICAgICAgIHJldHVybiB0aGlzLl9wcm9qZWN0c1tw
cm9qZWN0TmFtZV07CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBw
cm9qZWN0TmFtZQogICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5Qcm9qZWN0fQogICAgICAq
LwotICAgIHByb2plY3Q6IGZ1bmN0aW9uKCkKKyAgICBwcm9qZWN0OiBmdW5jdGlvbihwcm9qZWN0
TmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcm9qZWN0OworICAgICAgICByZXR1
cm4gdGhpcy5fcHJvamVjdHNbcHJvamVjdE5hbWVdOwogICAgIH0sCiAKICAgICAvKioKLSAgICAg
KiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59CisgICAgICogQHJl
dHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5Qcm9qZWN0Pn0KICAgICAgKi8KLSAgICB1aVNvdXJj
ZUNvZGVzOiBmdW5jdGlvbigpCisgICAgcHJvamVjdHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9wcm9qZWN0LnVpU291cmNlQ29kZXMoKTsKKyAgICAgICAgcmV0dXJu
IE9iamVjdC52YWx1ZXModGhpcy5fcHJvamVjdHMpOwogICAgIH0sCiAKICAgICAvKioKLSAgICAg
KiBAcGFyYW0ge3N0cmluZ30gdXJpCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAotICAgICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVudFByb3ZpZGVyCi0g
ICAgICogQHBhcmFtIHtib29sZWFufSBpc0VkaXRhYmxlCi0gICAgICogQHBhcmFtIHtib29sZWFu
PX0gaXNDb250ZW50U2NyaXB0CisgICAgICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGU+fQogICAgICAqLwotICAgIGFkZFRlbXBvcmFyeVVJU291cmNlQ29kZTogZnVu
Y3Rpb24odXJpLCB1cmwsIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSwgaXNDb250ZW50U2Ny
aXB0KQorICAgIHVpU291cmNlQ29kZXM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh0aGlzLCB1cmksIHVy
bCwgY29udGVudFByb3ZpZGVyLmNvbnRlbnRUeXBlKCksIGlzRWRpdGFibGUpOwotICAgICAgICB0
aGlzLl90ZW1wb3JhcnlDb250ZW50UHJvdmlkZXJzW3VyaV0gPSBjb250ZW50UHJvdmlkZXI7Ci0g
ICAgICAgIHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZXNbdXJpXSA9IHVpU291cmNlQ29kZTsK
LSAgICAgICAgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCA9IGlzQ29udGVudFNjcmlwdDsK
LSAgICAgICAgdWlTb3VyY2VDb2RlLmlzVGVtcG9yYXJ5ID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVy
LkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlKTsKLSAgICAg
ICAgcmV0dXJuIHVpU291cmNlQ29kZTsKKyAgICAgICAgdmFyIHJlc3VsdCA9IFtdOworICAgICAg
ICBmb3IgKHZhciBwcm9qZWN0TmFtZSBpbiB0aGlzLl9wcm9qZWN0cykgeworICAgICAgICAgICAg
dmFyIHByb2plY3QgPSB0aGlzLl9wcm9qZWN0c1twcm9qZWN0TmFtZV07CisgICAgICAgICAgICBy
ZXN1bHQgPSByZXN1bHQuY29uY2F0KHByb2plY3QudWlTb3VyY2VDb2RlcygpKTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQorICAgICAqIEByZXR1
cm4gez9XZWJJbnNwZWN0b3IuUHJvamVjdH0KICAgICAgKi8KLSAgICByZW1vdmVUZW1wb3JhcnlV
SVNvdXJjZUNvZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKKyAgICBwcm9qZWN0Rm9yVUlTb3Vy
Y2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewotICAgICAgICBkZWxldGUgdGhp
cy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyc1t1aVNvdXJjZUNvZGUudXJpKCldOwotICAgICAg
ICBkZWxldGUgdGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2Rlc1t1aVNvdXJjZUNvZGUudXJpKCld
OwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQsIHVp
U291cmNlQ29kZSk7CisgICAgICAgIGZvciAodmFyIHByb2plY3ROYW1lIGluIHRoaXMuX3Byb2pl
Y3RzKSB7CisgICAgICAgICAgICB2YXIgcHJvamVjdCA9IHRoaXMuX3Byb2plY3RzW3Byb2plY3RO
YW1lXTsKKyAgICAgICAgICAgIGlmIChwcm9qZWN0LnVpU291cmNlQ29kZUZvclVSSSh1aVNvdXJj
ZUNvZGUudXJpKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBwcm9qZWN0OworICAgICAgICB9
CisgICAgICAgIHJldHVybiBudWxsOwogICAgIH0sCiAKICAgICAvKioKQEAgLTMzOCwxMiArMzUx
LDggQEAgV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAg
cmVxdWVzdEZpbGVDb250ZW50OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGNhbGxiYWNrKQogICAg
IHsKLSAgICAgICAgdmFyIHRlbXBvcmFyeUNvbnRlbnRQcm92aWRlciA9IHRoaXMuX3RlbXBvcmFy
eUNvbnRlbnRQcm92aWRlcnNbdWlTb3VyY2VDb2RlLnVyaSgpXTsKLSAgICAgICAgaWYgKHRlbXBv
cmFyeUNvbnRlbnRQcm92aWRlcikgewotICAgICAgICAgICAgdGVtcG9yYXJ5Q29udGVudFByb3Zp
ZGVyLnJlcXVlc3RDb250ZW50KGNhbGxiYWNrKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotICAgICAgICB0aGlzLl9wcm9qZWN0LnJlcXVlc3RGaWxlQ29udGVudCh1aVNvdXJjZUNv
ZGUudXJpKCksIGNhbGxiYWNrKTsKKyAgICAgICAgdmFyIHByb2plY3QgPSB0aGlzLnByb2plY3RG
b3JVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgcHJvamVjdC5yZXF1ZXN0Rmls
ZUNvbnRlbnQodWlTb3VyY2VDb2RlLnVyaSgpLCBjYWxsYmFjayk7CiAgICAgfSwKIAogICAgIC8q
KgpAQCAtMzUzLDkgKzM2Miw4IEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlID0g
ewogICAgICAqLwogICAgIHNldEZpbGVDb250ZW50OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIG5l
d0NvbnRlbnQsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3RlbXBvcmFyeUNv
bnRlbnRQcm92aWRlcnNbdWlTb3VyY2VDb2RlLnVyaSgpXSkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgdGhpcy5fcHJvamVjdC5zZXRGaWxlQ29udGVudCh1aVNvdXJjZUNvZGUudXJsLCBu
ZXdDb250ZW50LCBjYWxsYmFjayk7CisgICAgICAgIHZhciBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0
Rm9yVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgIHByb2plY3Quc2V0RmlsZUNv
bnRlbnQodWlTb3VyY2VDb2RlLnVyaSgpLCBuZXdDb250ZW50LCBjYWxsYmFjayk7CiAgICAgfSwK
IAogICAgIC8qKgpAQCAtMzY3LDE4ICszNzUsOCBAQCBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnBy
b3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBzZWFyY2hJbkZpbGVDb250ZW50OiBmdW5jdGlvbih1
aVNvdXJjZUNvZGUsIHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxsYmFjaykKICAg
ICB7Ci0gICAgICAgIHZhciB0ZW1wb3JhcnlDb250ZW50UHJvdmlkZXIgPSB0aGlzLl90ZW1wb3Jh
cnlDb250ZW50UHJvdmlkZXJzW3VpU291cmNlQ29kZS51cmkoKV07Ci0gICAgICAgIGlmICh0ZW1w
b3JhcnlDb250ZW50UHJvdmlkZXIpIHsKLSAgICAgICAgICAgIHRlbXBvcmFyeUNvbnRlbnRQcm92
aWRlci5zZWFyY2hJbkNvbnRlbnQocXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxi
YWNrKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB0aGlzLl9wcm9q
ZWN0LnNlYXJjaEluRmlsZUNvbnRlbnQodWlTb3VyY2VDb2RlLnVyaSgpLCBxdWVyeSwgY2FzZVNl
bnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spOwotICAgIH0sCi0KLSAgICByZXNldDogZnVuY3Rp
b24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVycyA9IHt9
OwotICAgICAgICB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVzID0ge307CisgICAgICAgIHZh
ciBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0Rm9yVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7Cisg
ICAgICAgIHByb2plY3Quc2VhcmNoSW5GaWxlQ29udGVudCh1aVNvdXJjZUNvZGUudXJpKCksIHF1
ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxsYmFjayk7CiAgICAgfSwKIAogICAgIF9f
cHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcwppbmRleCAxM2I4M2ZlMWQwODZlZGEwMDQ1
ZGU3MWQ4YTAyMjZlMmUwNmMwNDVkLi4yMjIzOGMxNDhhMmQyNTRmODlkMTY0YjIxNWJlMzhiMGE4
MWQzODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4
dGVybnMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5z
LmpzCkBAIC0zMTIsMyArMzEyLDIyIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlVVJMUmVnRXhwID0g
IiI7CiAKIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi8KIHdpbmRvdy5kaXNwYXRjaFN0YW5kYWxvbmVU
ZXN0UnVubmVyTWVzc2FnZXM7CisKKy8qKgorICogQHR5cGUgez9XZWJJbnNwZWN0b3IuUHJvamVj
dH0KKyAqLworV2ViSW5zcGVjdG9yLm5ldHdvcmtQcm9qZWN0ID0gbnVsbDsKKy8qKgorICogQHR5
cGUgez9XZWJJbnNwZWN0b3IuUHJvamVjdH0KKyAqLworV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJv
amVjdCA9IG51bGw7CisKKy8qKgorICogQHR5cGUgez9XZWJJbnNwZWN0b3IuUHJvamVjdH0KKyAq
LworV2ViSW5zcGVjdG9yLnNuaXBwZXRzUHJvamVjdCA9IG51bGw7CisKKy8qKgorICogQHR5cGUg
ez9XZWJJbnNwZWN0b3IuUHJvamVjdH0KKyAqLworV2ViSW5zcGVjdG9yLmxpdmVFZGl0UHJvamVj
dCA9IG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCmluZGV4IDg3NDZjYjU4ZGMyM2ZiYTBlMTM0ODQzOTRiYjdlMmNjOTMxM2ZlNDEuLjJh
MDkzYTdhZDI4NWY2YjJjOWQzYWY0ZGRkN2M0MTNlNWM5YzAxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC00MzAsMTkgKzQzMCwy
NCBAQCBXZWJJbnNwZWN0b3IuX2RvTG9hZGVkRG9uZVdpdGhDYXBhYmlsaXRpZXMgPSBmdW5jdGlv
bigpCiAgICAgdGhpcy5vcGVuQW5jaG9yTG9jYXRpb25SZWdpc3RyeSA9IG5ldyBXZWJJbnNwZWN0
b3IuSGFuZGxlclJlZ2lzdHJ5KG9wZW5BbmNob3JMb2NhdGlvblNldHRpbmcpOwogICAgIHRoaXMu
b3BlbkFuY2hvckxvY2F0aW9uUmVnaXN0cnkucmVnaXN0ZXJIYW5kbGVyKGF1dG9zZWxlY3RQYW5l
bCwgZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfSk7CiAKLSAgICB0aGlzLm5ldHdvcmtXb3Jr
c3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVy
KCk7CiAgICAgdGhpcy53b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgpOwot
ICAgIHRoaXMuZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJXb3Jrc3BhY2VQcm92aWRlcih0aGlzLndvcmtzcGFjZSk7Ci0gICAgdGhpcy53b3Jrc3Bh
Y2UuYWRkUHJvamVjdCgibmV0d29yayIsIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsK
KyAgICB0aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0
d29ya1dvcmtzcGFjZVByb3ZpZGVyKCk7CisgICAgdGhpcy5uZXR3b3JrUHJvamVjdCA9IHRoaXMu
d29ya3NwYWNlLmFkZFByb2plY3QoIm5ldHdvcmsiLCB0aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92
aWRlcik7CisgICAgdGhpcy5kZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyKCk7CisgICAgdGhpcy5kZWJ1Z2dlclByb2pl
Y3QgPSB0aGlzLndvcmtzcGFjZS5hZGRQcm9qZWN0KCJkZWJ1Z2dlciIsIHRoaXMuZGVidWdnZXJX
b3Jrc3BhY2VQcm92aWRlcik7CisgICAgdGhpcy5zbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcldvcmtzcGFjZVByb3ZpZGVyKCk7CisgICAg
dGhpcy5zbmlwcGV0c1Byb2plY3QgPSB0aGlzLndvcmtzcGFjZS5hZGRQcm9qZWN0KCJzbmlwcGV0
cyIsIHRoaXMuc25pcHBldFdvcmtzcGFjZVByb3ZpZGVyKTsKICAgICB0aGlzLndvcmtzcGFjZUNv
bnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZUNvbnRyb2xsZXIodGhpcy53b3Jr
c3BhY2UpOwogCiAgICAgdGhpcy5icmVha3BvaW50TWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludE1hbmFnZXIoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmJyZWFrcG9pbnRzLCB0aGlz
LmRlYnVnZ2VyTW9kZWwsIHRoaXMud29ya3NwYWNlKTsKIAotICAgIHRoaXMuc2NyaXB0U25pcHBl
dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwodGhpcy53b3Jrc3Bh
Y2UsIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKKyAgICB0aGlzLnNjcmlwdFNuaXBw
ZXRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsKHRoaXMud29ya3Nw
YWNlLCB0aGlzLnNuaXBwZXRXb3Jrc3BhY2VQcm92aWRlcik7CiAgICAgbmV3IFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcodGhpcy53b3Jrc3BhY2UsIHRoaXMuZGVidWdnZXJXb3Jr
c3BhY2VQcm92aWRlciwgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwotICAgIHRoaXMu
bGl2ZUVkaXRTdXBwb3J0ID0gbmV3IFdlYkluc3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQodGhpcy53
b3Jrc3BhY2UpOworICAgIHRoaXMubGl2ZUVkaXRXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJ
bnNwZWN0b3IuTGl2ZUVkaXRXb3Jrc3BhY2VQcm92aWRlcigpOworICAgIHRoaXMubGl2ZUVkaXRQ
cm9qZWN0ID0gdGhpcy53b3Jrc3BhY2UuYWRkUHJvamVjdCgibGl2ZWVkaXQiLCB0aGlzLmxpdmVF
ZGl0V29ya3NwYWNlUHJvdmlkZXIpOworICAgIHRoaXMubGl2ZUVkaXRTdXBwb3J0ID0gbmV3IFdl
Ykluc3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQodGhpcy53b3Jrc3BhY2UsIHRoaXMubGl2ZUVkaXRX
b3Jrc3BhY2VQcm92aWRlcik7CiAgICAgdGhpcy5zdHlsZUNvbnRlbnRCaW5kaW5nID0gbmV3IFdl
Ykluc3BlY3Rvci5TdHlsZUNvbnRlbnRCaW5kaW5nKHRoaXMuY3NzTW9kZWwpOwotICAgIG5ldyBX
ZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKHRoaXMud29ya3NwYWNlLCB0
aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CisgICAgdGhpcy5uZXR3b3JrVUlTb3VyY2VD
b2RlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRl
cih0aGlzLndvcmtzcGFjZSwgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwogICAgIG5l
dyBXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZyh0aGlzLndvcmtzcGFjZSk7CiAgICAg
aWYgKFdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLnNhc3MuaXNFbmFibGVkKCkpCiAg
ICAgICAgIG5ldyBXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcodGhpcy53b3Jrc3BhY2Us
IHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YjMzNzQyZjViNTJkMjAy
ZjlhYmNkZjQxYjlhYmE3YjI1YWM1NTI5Li45NTFiNDc0ZTM4NDIyZjJkNjRlMzFhODY2NDkxZDNk
NjI3OWRhMzc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTItMjkgIFZzZXZvbG9kIFZs
YXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV29y
a3NwYWNlIHNob3VsZCBzdXBwb3J0IHNldmVyYWwgcHJvamVjdHMgYW5kIHNob3VsZCBub3QgaGF2
ZSB0ZW1wb3JhcnkgVUlTb3VyY2VDb2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNTg1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5hbWlj
LXNjcmlwdHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1z
Y3JpcHQtbWFwcGluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvbmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVf
V29ya3NwYWNlVGVzdC5JbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBl
dC1tb2RlbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVs
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5l
bC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci91aXNvdXJjZWNvZGUtcmV2aXNpb25zLmh0bWw6
CisKIDIwMTItMTItMjggIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCByZWJhc2VsaW5lLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5hbWljLXNjcmlwdHMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZHluYW1pYy1zY3JpcHRzLmh0bWwKaW5k
ZXggYWU3ODk2NWQ0YWMwYTczOGRlMjJlNzYyYjJmODJlODAwOTNlOWNjOC4uZTE2OTgyNDllYzQ2
YWMyNTJiN2I2ZTljMTI3MTczNmY0YWE2YmQyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5hbWljLXNjcmlwdHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2R5bmFtaWMtc2NyaXB0cy5odG1s
CkBAIC01MSw3ICs1MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0aW9uIHN0ZXAzKCkK
ICAgICB7CiAgICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlw
dHMiKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBXZWJJbnNwZWN0b3Iud29ya3NwYWNl
LnVpU291cmNlQ29kZXMoKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBXZWJJbnNwZWN0
b3IubmV0d29ya1Byb2plY3QudWlTb3VyY2VDb2RlcygpOwogICAgICAgICB2YXIgdXJscyA9IHVp
U291cmNlQ29kZXMubWFwKGZ1bmN0aW9uKHVpU291cmNlQ29kZSkgeyByZXR1cm4gdWlTb3VyY2VD
b2RlLnBhcnNlZFVSTC5sYXN0UGF0aENvbXBvbmVudDsgfSk7CiAgICAgICAgIHVybHMuc29ydCgp
OwogICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sCmluZGV4IDMzMGE2ODM1YjJiMDli
YzE4MjY2MWZkZGFlZGRmMjc0OWFhNGU5NTEuLmFlY2FmMjk5NjBmNWE5ZGVlNzZkOTJmN2Y4NjVm
ZjJmYTdhNmQzYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbApAQCAtMTQ3LDcgKzE0Nyw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNl
VGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVk
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJj
ZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQpOwogICAgICAgICAgICAg
ICAgIHNjcmlwdCA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jaygiY29tcGlsZWQuanMi
LCAwLCAwLCB0cnVlLCAiIik7CiAgICAgICAgICAgICAgICAgc2NyaXB0LnNvdXJjZU1hcFVSTCA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9zb3VyY2UtbWFwLmpz
b24iOwogICAgICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3Jp
cHQpOwpAQCAtMjE1LDcgKzIxNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBm
dW5jdGlvbiBzdGVwMSgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC53YWl0Rm9yV29ya3NwYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWRFdmVudChmdW5j
dGlvbigpIHsgfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3Nw
YWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChmdW5jdGlvbigpIHsgfSk7CiAgICAgICAgICAgICAg
ICAgc2NyaXB0ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKCJjb21waWxlZC5qcyIs
IDAsIDAsIHRydWUsICIiKTsKICAgICAgICAgICAgICAgICBzY3JpcHQuc291cmNlTWFwVVJMID0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJjZS1tYXAuanNv
biI7CiAgICAgICAgICAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlw
dCk7CkBAIC0yNzgsNyArMjc4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAg
InNvdXJjZXNDb250ZW50IjpbIjxzb3VyY2UgY29udGVudD4iXQogICAgICAgICAgICAgfTsKICAg
ICAgICAgICAgIHNjcmlwdC5zb3VyY2VNYXBVUkwgPSAiZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jh
c2U2NCwiICsgYnRvYShKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkRXZl
bnQob3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VD
b2RlQWRkZWQpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBvcmlnaW5hbFVJU291cmNlQ29kZUFk
ZGVkKHVpU291cmNlQ29kZSkKICAgICAgICAgICAgIHsKQEAgLTMwOSwxMCArMzA5LDExIEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGlu
Z3Muc291cmNlTWFwc0VuYWJsZWQuc2V0KHRydWUpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuX3Jlc2V0KCk7Ci0gICAgICAgICAgICB2YXIgbmV0d29ya1dvcmtzcGFj
ZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsK
ICAgICAgICAgICAgIHZhciB3b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgp
OwotICAgICAgICAgICAgdmFyIGRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIod29ya3NwYWNlKTsKKyAgICAgICAgICAg
IHZhciBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtX
b3Jrc3BhY2VQcm92aWRlcigpOwogICAgICAgICAgICAgd29ya3NwYWNlLmFkZFByb2plY3QoIm5l
dHdvcmsiLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOworICAgICAgICAgICAgdmFyIGRlYnVn
Z2VyV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNl
UHJvdmlkZXIod29ya3NwYWNlKTsKKyAgICAgICAgICAgIHdvcmtzcGFjZS5hZGRQcm9qZWN0KCJk
ZWJ1Z2dlciIsIGRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIpOwogICAgICAgICAgICAgdmFyIGRl
YnVnZ2VyU2NyaXB0TWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBw
aW5nKHdvcmtzcGFjZSwgZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlciwgbmV0d29ya1dvcmtzcGFj
ZVByb3ZpZGVyKTsKIAogICAgICAgICAgICAgdmFyIHNjcmlwdCA9IEluc3BlY3RvclRlc3QuY3Jl
YXRlU2NyaXB0TW9jaygiY29tcGlsZWQuanMiLCAwLCAwLCB0cnVlLCAiIik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcmVxdWVz
dC1yZXZpc2lvbi1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50Lmh0bWwKaW5kZXggMTU1
M2M0YWI2MjA0ZDIxM2RjOGE2MjY0Y2EwYmRmZTE3M2UxYWIzZS4uNjU5MGNkMzg2YzlkNTdmNDA5
YTI2MTg0YWRmZmQ0NThkMjQ0ZWRkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXJlcXVlc3QtcmV2aXNpb24tY29udGVudC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1y
ZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRtbApAQCAtMTksNiArMTksOSBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICB2YXIgcmVzb3VyY2U7CiAgICAgZnVuY3Rpb24gc3RlcDIoZXZlbnQpCiAgICAg
eworICAgICAgICB2YXIgZXZlbnRVSVNvdXJjZUNvZGUgPSBldmVudC5kYXRhOworICAgICAgICBp
ZiAoZXZlbnRVSVNvdXJjZUNvZGUudXJsLmluZGV4T2YoInN0eWxlLmNzcyIpID09IC0xKQorICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB2YXIgcmVxdWVzdCA9IFdlYkluc3BlY3Rvci5wYW5l
bCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVl
c3RzLmxlbmd0aCAtIDFdOwogICAgICAgICB1aVNvdXJjZUNvZGUgPSBXZWJJbnNwZWN0b3Iud29y
a3NwYWNlLnVpU291cmNlQ29kZUZvclVSTChyZXF1ZXN0LnVybCk7CiAgICAgICAgIGlmICghdWlT
b3VyY2VDb2RlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
d29ya3NwYWNlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jr
c3BhY2UtdGVzdC5qcwppbmRleCA3NDY5ZjM2MDIwYjQ2MzlmZTI5OWZhOTk1NGJmNWNmYmI4ZDVi
OTk5Li42MzNlNWYxNWFmMmE5OWJjMTcwNTUxMTRkYzVhOGM4NjkyMDY5YmJmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcworKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcwpAQCAt
MywxNCArMywxMyBAQCB2YXIgaW5pdGlhbGl6ZV9Xb3Jrc3BhY2VUZXN0ID0gZnVuY3Rpb24oKSB7
CiBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2U7CiBJbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtz
cGFjZSA9IGZ1bmN0aW9uKCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3Nw
YWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcigp
OwogICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29y
a3NwYWNlKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC50ZXN0RGVidWdnZXJXb3Jrc3BhY2VQcm92aWRl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlcihJbnNwZWN0b3JU
ZXN0LnRlc3RXb3Jrc3BhY2UpOworICAgIEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3Bh
Y2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKCk7
CiAgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZFByb2plY3QoIm5ldHdvcmsiLCBJ
bnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOworICAgIEluc3BlY3Rv
clRlc3QudGVzdERlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIoSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlKTsKKyAg
ICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkUHJvamVjdCgiZGVidWdnZXIiLCBJbnNw
ZWN0b3JUZXN0LnRlc3REZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyKTsKICAgICBJbnNwZWN0b3JU
ZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCBJbnNwZWN0b3JUZXN0Ll9kZWZh
dWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwogICAgIEluc3BlY3RvclRlc3Qu
dGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQ
cm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVtb3ZlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVs
dFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICBJbnNwZWN0b3JUZXN0LnRl
c3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJv
dmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkLCBJbnNwZWN0b3JUZXN0Ll9k
ZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwotICAgIEluc3BlY3RvclRl
c3QudGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGVQcm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZCwgSW5zcGVjdG9y
VGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKIH0KIAogSW5z
cGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCA9IGZ1bmN0
aW9uKGNhbGxiYWNrKQpAQCAtMjYsMzIgKzI1LDYgQEAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29y
a3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIH0K
IH0KIAotSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2Rl
QWRkZWRFdmVudCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotewotICAgIEluc3BlY3RvclRlc3QudGVz
dFdvcmtzcGFjZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQ
cm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWQsIEluc3BlY3RvclRlc3Qu
X2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7Ci0gICAgSW5zcGVjdG9y
VGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCwgdGVtcG9yYXJ5
VUlTb3VyY2VDb2RlQWRkZWQpOwotCi0gICAgZnVuY3Rpb24gdGVtcG9yYXJ5VUlTb3VyY2VDb2Rl
QWRkZWQoZXZlbnQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2Uu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZl
bnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkLCB0ZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRl
ZCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3Vy
Y2VDb2RlQWRkZWQsIEluc3BlY3RvclRlc3QuX2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2
ZW50SGFuZGxlcik7Ci0gICAgICAgIGNhbGxiYWNrKGV2ZW50LmRhdGEpOwotICAgIH0KLX0KLQot
SW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3Zl
ZEV2ZW50ID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgSW5zcGVjdG9yVGVzdC50ZXN0V29y
a3NwYWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3Zp
ZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkLCBJbnNwZWN0b3JUZXN0Ll9k
ZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwotICAgIEluc3BlY3RvclRl
c3QudGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGVQcm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZCwgdGVtcG9yYXJ5
VUlTb3VyY2VDb2RlUmVtb3ZlZCk7Ci0KLSAgICBmdW5jdGlvbiB0ZW1wb3JhcnlVSVNvdXJjZUNv
ZGVSZW1vdmVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3Nw
YWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVy
LkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkLCB0ZW1wb3JhcnlVSVNvdXJjZUNv
ZGVSZW1vdmVkKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3Jh
cnlVSVNvdXJjZUNvZGVSZW1vdmVkLCBJbnNwZWN0b3JUZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2Rl
UHJvdmlkZXJFdmVudEhhbmRsZXIpOwotICAgICAgICBjYWxsYmFjayhldmVudC5kYXRhKTsKLSAg
ICB9Ci19Ci0KIEluc3BlY3RvclRlc3QuYWRkTW9ja1VJU291cmNlQ29kZVRvV29ya3NwYWNlID0g
ZnVuY3Rpb24odXJsLCB0eXBlLCBjb250ZW50KQogewogICAgIHZhciBpc0RvY3VtZW50ID0gdHlw
ZSA9PT0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuRG9jdW1lbnQ7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKaW5k
ZXggMjM2NGFlNWNlZjM3MjIwMGY2OWU5M2Y1MDIxYjNmYmZiMzY1OTNkYS4uNmIyNjQ2YWM5OTky
ZDllNzk5OWQ5MTVjOGNjZjVhNzk3ZTdmM2ZjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbApAQCAtMTI4LDcgKzEy
OCw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBfYWRkVGVtcG9yYXJ5VUlTb3VyY2VDb2Rl
OiBmdW5jdGlvbih1cmwpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh0aGlzLCAidGVtcG9yYXJ5OiIgKyB1cmws
IHVybCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCBmYWxzZSk7Ci0gICAgICAg
ICAgICB1aVNvdXJjZUNvZGUuaXNUZW1wb3JhcnkgPSB0cnVlOwogICAgICAgICAgICAgdWlTb3Vy
Y2VDb2RlLnNldFNvdXJjZU1hcHBpbmcoZGVmYXVsdE1hcHBpbmcpOwogICAgICAgICAgICAgdWlT
b3VyY2VDb2Rlc1t1cmxdID0gdWlTb3VyY2VDb2RlOwogICAgICAgICAgICAgdGVtcG9yYXJ5VUlT
b3VyY2VDb2Rlc1t1cmxdID0gdWlTb3VyY2VDb2RlOwpAQCAtMTUxLDcgKzE1MCwxMyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICAgICAgewogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgUmVzZXR0aW5nIHdvcmtzcGFjZS4iKTsK
LSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5X
b3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQpOworICAgICAgICAgICAgdmFyIHNlbGYg
PSB0aGlzOworICAgICAgICAgICAgdmFyIG1vY2tQcm9qZWN0ID0ge307CisgICAgICAgICAgICBt
b2NrUHJvamVjdC51aVNvdXJjZUNvZGVzID0gZnVuY3Rpb24oKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIHJldHVybiBzZWxmLnVpU291cmNlQ29kZXMoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5X
b3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIG1vY2tQcm9qZWN0KTsKICAgICAgICAg
fQogICAgIH0KICAgICBXb3Jrc3BhY2VNb2NrLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMuaHRtbAppbmRleCBiMmM5M2U1NmRiY2ZhOTE3NjEyZTk4
ZmM3ZjgyM2UzOGVhZmI5YWNkLi5iODdlYjExZmZlYTU1MjBhYzM1NmFhYzgxZTAyZWIyOWFmNzQ1
NWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1z
Y3JpcHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMt
c2NyaXB0cy5odG1sCkBAIC00OCw3ICs0OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0
aW9uIHN0ZXAzKCkKICAgICB7CiAgICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5zaG93
UGFuZWwoInNjcmlwdHMiKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBXZWJJbnNwZWN0
b3Iud29ya3NwYWNlLnVpU291cmNlQ29kZXMoKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZXMg
PSBXZWJJbnNwZWN0b3IubmV0d29ya1Byb2plY3QudWlTb3VyY2VDb2RlcygpOwogICAgICAgICB2
YXIgdXJscyA9IHVpU291cmNlQ29kZXMubWFwKGZ1bmN0aW9uKHVpU291cmNlQ29kZSkgeyByZXR1
cm4gdWlTb3VyY2VDb2RlLnBhcnNlZFVSTC5sYXN0UGF0aENvbXBvbmVudDsgfSk7CiAgICAgICAg
IHVybHMuc29ydCgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CmluZGV4IGJm
OTQ3YWNiNDUxN2YwODNhMjMyN2RkNDYwZWQ0OTIyNTU1ZWNmNWIuLjUxYzg5ZjA5MTA4ZDJkMTRk
NjIxZmUxNGEwOTRlZDY0NWNmNGM4ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMtZXhwZWN0ZWQu
dHh0CkBAIC05LDcgKzksNyBAQCBTZXR0aW5nIGJyZWFrcG9pbnQ6CiAgICAgRHVtcGluZyBicmVh
a3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKICAgICBE
dW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS5qcywgbGlu
ZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IGZhbHNlCisgICAgICAgIHVybDogZWRpdC1tZS5qcywg
bGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBuZXR3b3JrCiBFZGl0aW5nIHNvdXJjZToKICAg
ICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IHRydWUpCkBAIC0x
Nyw3ICsxNyw3IEBAIEVkaXRpbmcgc291cmNlOgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9y
YWdlCiAgICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVh
a3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIs
IGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjog
MiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgogVW5kb2luZyBzb3VyY2UgZWRpdGluZzoKICAgICBP
cmlnaW5hbFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBU
ZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCkBAIC0yNiw3ICsyNiw3
IEBAIFVuZG9pbmcgc291cmNlIGVkaXRpbmc6CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3Jh
Z2UKICAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFr
cG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwg
aXNUZW1wb3Jhcnk6IGZhbHNlCisgICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjog
MiwgcHJvamVjdCBuYW1lOiBuZXR3b3JrCiBGaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6CiAg
ICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIER1bXBp
bmcgYnJlYWtwb2ludCBzdG9yYWdlCkBAIC0zOCw3ICszOCw3IEBAIFNldHRpbmcgYnJlYWtwb2lu
dDoKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgICAgICBlZGl0LW1lLmpzOjIs
IGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAg
dXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogZmFsc2UKKyAgICAg
ICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IG5ldHdvcmsK
IEVkaXRpbmcgc291cmNlOgogICAgIE9yaWdpbmFsVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxp
bmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJl
YWtwb2ludChsaW5lTnVtYmVyID0gMikKQEAgLTQ2LDcgKzQ2LDcgQEAgRWRpdGluZyBzb3VyY2U6
CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1tZS5qczoyLCBl
bmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVy
bDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAgICAg
dXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBD
b21taXR0aW5nIGVkaXRlZCBzb3VyY2U6CiAgICAgT3JpZ2luYWxUZXh0RWRpdG9yLnJlbW92ZUJy
ZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50
KGxpbmVOdW1iZXIgPSAyKQpAQCAtNTUsNyArNTUsNyBAQCBDb21taXR0aW5nIGVkaXRlZCBzb3Vy
Y2U6CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1tZS5qczoy
LCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAg
IHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IGZhbHNlCisgICAg
ICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBuZXR3b3Jr
CiBGaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVh
a3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCkBA
IC02Nyw3ICs2Nyw3IEBAIFNldHRpbmcgYnJlYWtwb2ludDoKICAgICBEdW1waW5nIGJyZWFrcG9p
bnQgc3RvcmFnZQogICAgICAgICBlZGl0LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBp
bmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVt
YmVyOiAyLCBpc1RlbXBvcmFyeTogZmFsc2UKKyAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5l
TnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IG5ldHdvcmsKIEVkaXRpbmcgc291cmNlOgogICAgIE9y
aWdpbmFsVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9
IGZhbHNlKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikK
QEAgLTc1LDE3ICs3NSwxNyBAQCBFZGl0aW5nIHNvdXJjZToKICAgICBEdW1waW5nIGJyZWFrcG9p
bnQgc3RvcmFnZQogICAgICAgICBlZGl0LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBp
bmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVt
YmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVO
dW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIENvbW1pdHRpbmcgZWRpdGVkIHNvdXJj
ZToKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgICAgICBlZGl0LW1lLmpzOjIs
IGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAg
dXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAgICAg
ICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIK
IEVkaXRpbmcgc291cmNlIGFnYWluIHNvIHRoYXQgbGl2ZSBlZGl0IGNvdWxkIHN1Y2NlZWQ6CiAg
ICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFi
bGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDog
ZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAgICAgdXJs
OiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBDb21t
aXR0aW5nIGVkaXRlZCBzb3VyY2UgYWdhaW46CiAgICAgT3JpZ2luYWxUZXh0RWRpdG9yLnJlbW92
ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3Bv
aW50KGxpbmVOdW1iZXIgPSAyKQpAQCAtOTQsNyArOTQsNyBAQCBDb21taXR0aW5nIGVkaXRlZCBz
b3VyY2UgYWdhaW46CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRp
dC1tZS5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25z
Ci0gICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IGZh
bHNlCisgICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1l
OiBuZXR3b3JrCiBGaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVkaXRvci5y
ZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBz
dG9yYWdlCkBAIC0xMDYsNyArMTA2LDcgQEAgU2V0dGluZyBicmVha3BvaW50OgogICAgIER1bXBp
bmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVl
CiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUu
anMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiBmYWxzZQorICAgICAgICB1cmw6IGVkaXQt
bWUuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogbmV0d29yawogRWRpdGluZyBzb3Vy
Y2U6CiAgICAgT3JpZ2luYWxUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIs
IGRpc2FibGVkID0gZmFsc2UpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVO
dW1iZXIgPSAyKQpAQCAtMTE0LDE3ICsxMTQsMTcgQEAgRWRpdGluZyBzb3VyY2U6CiAgICAgRHVt
cGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRy
dWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1t
ZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAgICAgdXJsOiBlZGl0
LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBDb21taXR0aW5n
IGVkaXRlZCBzb3VyY2U6CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAg
ZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRp
b25zCi0gICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6
IHRydWUKKyAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5h
bWU6IGRlYnVnZ2VyCiBVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOgogICAgIER1bXBpbmcgYnJlYWtw
b2ludCBzdG9yYWdlCiAgICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVt
cGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVO
dW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogZWRpdC1tZS5qcywgbGlu
ZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgogQ29tbWl0dGluZyBlZGl0ZWQgc291
cmNlIGFnYWluOgogICAgIE9yaWdpbmFsVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVO
dW1iZXIgPSAyKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0g
MikKQEAgLTEzMyw3ICsxMzMsNyBAQCBDb21taXR0aW5nIGVkaXRlZCBzb3VyY2UgYWdhaW46CiAg
ICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFi
bGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDog
ZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IGZhbHNlCisgICAgICAgIHVy
bDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBuZXR3b3JrCiBGaW5h
bGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50
KGxpbmVOdW1iZXIgPSAyKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCkBAIC0xNDgs
MTUgKzE0OCwxNSBAQCBTZXR0aW5nIGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVkaXRvci5hZGRCcmVh
a3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIER1bXBpbmcgYnJl
YWtwb2ludCBzdG9yYWdlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAg
ICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAgICAgdXJsOiAs
IGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIEVkaXRpbmcgc291cmNlOgog
ICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxv
Y2F0aW9ucwotICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUK
KyAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIFVu
ZG9pbmcgc291cmNlIGVkaXRpbmc6CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogLCBsaW5lTnVtYmVy
OiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgcHJv
amVjdCBuYW1lOiBkZWJ1Z2dlcgogRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OgogICAgIFRl
eHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBEdW1waW5nIGJy
ZWFrcG9pbnQgc3RvcmFnZQpAQCAtMTcxLDE1ICsxNzEsMTUgQEAgU2V0dGluZyBicmVha3BvaW50
OgogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQg
PSBmYWxzZSkKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgIER1bXBpbmcgYnJl
YWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9y
YXJ5OiB0cnVlCisgICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRl
YnVnZ2VyCiBFZGl0aW5nIHNvdXJjZToKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQog
ICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1i
ZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBw
cm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOgogICAgIER1bXBp
bmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwot
ICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAgICAg
dXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIEZpbmFsbHkgcmVt
b3ZpbmcgYnJlYWtwb2ludDoKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51
bWJlciA9IDIpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMuaHRt
bAppbmRleCBmMDUxM2UyMjViNTFiZGFkYTc1NGFiYTZjYTAyMWMxNzk3ZjNmOWY1Li44N2VjZDZk
NmNiNDk0NWY4NzI1MTFkMzQ0YjAzMWM4NjYwNTU0MGJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy5odG1sCkBA
IC00MSw3ICs0MSw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGxvY2F0aW9ucy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHVpTG9jYXRpb24g
PSBsb2NhdGlvbnNbaV0udWlMb2NhdGlvbjsKICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSB1aUxvY2F0aW9uLnVpU291cmNlQ29kZTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCIgICAgICAgIHVybDogIiArIHBhdGhUb0ZpbGVOYW1lKHVpU291cmNlQ29kZS51cmwp
ICsgIiwgbGluZU51bWJlcjogIiArIHVpTG9jYXRpb24ubGluZU51bWJlciArICIsIGlzVGVtcG9y
YXJ5OiAiICsgISF1aVNvdXJjZUNvZGUuaXNUZW1wb3JhcnkpOworICAgICAgICAgICAgdmFyIHBy
b2plY3QgPSBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLnByb2plY3RGb3JVSVNvdXJjZUNvZGUodWlT
b3VyY2VDb2RlKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgICAg
IHVybDogIiArIHBhdGhUb0ZpbGVOYW1lKHVpU291cmNlQ29kZS51cmwpICsgIiwgbGluZU51bWJl
cjogIiArIHVpTG9jYXRpb24ubGluZU51bWJlciArICIsIHByb2plY3QgbmFtZTogIiArIHByb2pl
Y3QubmFtZSgpKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1l
eHBlY3RlZC50eHQKaW5kZXggYWEzNTg0YWQ3MTAwNTc5M2NmMzA4ODY2NWQ2YWMwYWM1YTJmNGJm
My4uM2RhYjI5ZjI1YTg0MDc4NzA2MDg2MjIyNjE1OWJkMmNlM2U0MmE0OCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Ut
c2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBSdW5uaW5nOiB0ZXN0
U2NyaXB0V2l0aFBlbmRpbmdSZXNvdXJjZQogQWRkaW5nIHNjcmlwdCBmb3IgcGVuZGluZyByZXF1
ZXN0LgogVUlTb3VyY2VDb2RlOiBmb28uanMKIFVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFs
c2UKLVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKK1VJU291cmNlQ29kZSBp
cyBjb250ZW50IHNjcmlwdDogdHJ1ZQogTWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKIFVJU291
cmNlQ29kZSBjb250ZW50OiA8Y29udGVudCBzY3JpcHQgc291cmNlPgogQWRkaW5nIHVpU291cmNl
Q29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy5odG1sCmluZGV4IDI3
MDU4YjBjOWU3M2NkNGYwNmIzZDNhNzVmZDQyZTljZmM1NDNiYzUuLmZjYzQzZmNiNjUwOWY4NjQ2
ZDFmNmI3ODE2MGI2YjY0ZWE5MmQ0NDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy5odG1sCkBAIC0yOSw3
ICsyOSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVl
c3QuIik7CiAgICAgICAgICAgICAgICAgc2NyaXB0ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVTY3Jp
cHRNb2NrKHVybCwgMCwgMCwgdHJ1ZSwgIjxjb250ZW50IHNjcmlwdCBzb3VyY2U+Iik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVGVtcG9yYXJ5VUlTb3Vy
Y2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50
KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQpOwogICAgICAgICAgICAgICAgIGRlZmF1bHRTY3Jp
cHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQpOwogICAgICAgICAgICAgICAgIHJlc291cmNlU2Ny
aXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKICAgICAgICAgICAgICAgICAKQEAgLTQ5LDcg
KzQ5LDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCiAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFk
ZGluZyB1aVNvdXJjZUNvZGUgZm9yIGZpbmlzaGVkIHJlc291cmNlLiIpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29kZVJl
bW92ZWRFdmVudChmdW5jdGlvbigpIHsgfSk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCh1aVNvdXJjZUNvZGVBZGRl
ZCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9X
b3Jrc3BhY2UodXJsLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsICI8Y29udGVu
dCBzY3JpcHQgcmVzb3VyY2UgY29udGVudD4iKTsKIApAQCAtMTEwLDcgKzEwOSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJBZGRpbmcgZmlyc3Qgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuIik7CiAg
ICAgICAgICAgICAgICAgc2NyaXB0MSA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jayh1
cmwsIDAsIDEwLCBmYWxzZSwgIjxzY3JpcHQgc291cmNlIDE+Iik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWRF
dmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlT
b3VyY2VDb2RlQWRkZWQpOwogICAgICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLmFk
ZFNjcmlwdChzY3JpcHQxKTsKICAgICAgICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcu
YWRkU2NyaXB0KHNjcmlwdDEpOwogICAgICAgICAgICAgICAgIApAQCAtMTMwLDcgKzEyOSw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgc2Vjb25kIHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0
LiIpOwogICAgICAgICAgICAgICAgIHNjcmlwdDIgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlw
dE1vY2sodXJsLCAwLCA0NSwgZmFsc2UsICI8c2NyaXB0IHNvdXJjZSAyPiIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29k
ZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmln
aW5hbFVJU291cmNlQ29kZUFkZGVkKTsKICAgICAgICAgICAgICAgICBkZWZhdWx0U2NyaXB0TWFw
cGluZy5hZGRTY3JpcHQoc2NyaXB0Mik7CiAgICAgICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRN
YXBwaW5nLmFkZFNjcmlwdChzY3JpcHQyKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC1leHBlY3RlZC50
eHQKaW5kZXggZTQ4M2M4ZTcwMmVhMzBmNDk1ZWM2MTJkNzU2ZjA0MGQ0Yjc2ZjFhNy4uNzg3ZTUw
Y2NkYmMwOGU3ZDg1NjY3MWY4YzMwNmNhNDhjZGU4MjhjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwt
ZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBEZWJ1Z2dlciB3YXMgZW5hYmxlZC4KIFJ1bm5p
bmc6IHRlc3RXb3Jrc3BhY2VSZXNldAogU25pcHBldCBjcmVhdGVkLgogUmVzZXR0aW5nIHNuaXBw
ZXQgc2NyaXB0IG1hcHBpbmcuCi1TbmlwcGV0IHVpU291cmNlQ29kZSB3YXMgcmVjcmVhdGVkLgor
U25pcHBldCB1aVNvdXJjZUNvZGUgaXMgc3RpbGwgcHJlc2VudC4KIAogUnVubmluZzogdGVzdEV2
YWx1YXRlCiBMYXN0IGV2YWx1YXRpb24gc291cmNlIHVybCBmb3Igc25pcHBldDogc25pcHBldHM6
Ly8vMV8xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
LXNuaXBwZXQtbW9kZWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHQtc25pcHBldC1tb2RlbC5odG1sCmluZGV4IDg1YmJlNzNhODAyNjAzODcxYjNmMjhlMzliYzk1
NmY0YjI3Mjc1MTUuLjAwNzY0YjRkM2NmNTJhM2MzNWYzMDhkNDU5YjFhOTcxNzA3ZWVmNGQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1t
b2RlbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25p
cHBldC1tb2RlbC5odG1sCkBAIC0xNCwxMiArMTQsMTEgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
Ly8gRklYTUU6IFJlbW92ZSBvbmNlIHNuaXBwZXRzIGFyZSB0YWtlbiBvdXQgb2YgZXhwZXJpbWVu
dHMuCiAgICAgV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Muc25pcHBldHNTdXBwb3J0
ID0ge307CiAgICAgV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Muc25pcHBldHNTdXBw
b3J0LmlzRW5hYmxlZCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfTsKLSAgICB2YXIgbmV0
d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNl
UHJvdmlkZXIoKTsKICAgICB2YXIgd29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UoKTsKLSAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdCgibmV0d29yayIsIG5ldHdvcmtXb3Jrc3Bh
Y2VQcm92aWRlcik7CisgICAgdmFyIHNuaXBwZXRXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJ
bnNwZWN0b3IuQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXIoKTsKKyAgICB3b3Jrc3Bh
Y2UuYWRkUHJvamVjdCgic25pcHBldHMiLCBzbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIpOwogICAg
IHZhciB3b3Jrc3BhY2VDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VDb250
cm9sbGVyKHdvcmtzcGFjZSk7Ci0gICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbCA9
IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsKHdvcmtzcGFjZSwgbmV0d29ya1dv
cmtzcGFjZVByb3ZpZGVyKTsKLSAgICAKKyAgICBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1v
ZGVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwod29ya3NwYWNlLCBzbmlw
cGV0V29ya3NwYWNlUHJvdmlkZXIpOwogICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0
U3VpdGUoWwogICAgICAgICBmdW5jdGlvbiB0ZXN0V29ya3NwYWNlUmVzZXQobmV4dCkKICAgICAg
ICAgewpAQCAtMjgsMjAgKzI3LDE0IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFy
IHNuaXBwZXROYW1lID0gIlRlc3RTbmlwcGV0IiArIE1hdGgucmFuZG9tKCk7CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCBjcmVhdGVkLiIpOwogICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5yZW5hbWVTY3JpcHRTbmlwcGV0KHVp
U291cmNlQ29kZSwgc25pcHBldE5hbWUpOwotICAgICAgICAgICAgd29ya3NwYWNlLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJj
ZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlQWRkZWQpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIlJlc2V0dGluZyBzbmlwcGV0IHNjcmlwdCBtYXBwaW5nLiIpOwogICAgICAg
ICAgICAgd29ya3NwYWNlQ29udHJvbGxlci5fbWFpbkZyYW1lTmF2aWdhdGVkKCk7Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKGV2ZW50KQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHdvcmtzcGFjZS51
aVNvdXJjZUNvZGVzKCkubGVuZ3RoLCAiT25seSBvbmUgc25pcHBldCB1aVNvdXJjZUNvZGUgc2hv
dWxkIGJlIHByZXNlbnQgYWZ0ZXIgcHJvamVjdCBuYXZpZ2F0aW9uLiIpOwotICAgICAgICAgICAg
ICAgIHZhciB1aVNvdXJjZUNvZGUgPSBldmVudC5kYXRhOwotICAgICAgICAgICAgICAgIGlmICh1
aVNvdXJjZUNvZGUudXJsLmluZGV4T2Yoc25pcHBldE5hbWUpID09PSAtMSkKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJTbmlwcGV0IHVpU291cmNlQ29kZSB3YXMgcmVjcmVhdGVkLiIpOwotICAgICAgICAgICAgICAg
IHdvcmtzcGFjZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQ
cm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFkZGVkKTsKLSAg
ICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscygxLCB3b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpLmxlbmd0aCwg
Ik9ubHkgb25lIHNuaXBwZXQgdWlTb3VyY2VDb2RlIHNob3VsZCBiZSBwcmVzZW50IGFmdGVyIHBy
b2plY3QgbmF2aWdhdGlvbi4iKTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB3b3Jr
c3BhY2UudWlTb3VyY2VDb2RlcygpWzBdOworICAgICAgICAgICAgaWYgKHVpU291cmNlQ29kZS51
cmwuaW5kZXhPZihzbmlwcGV0TmFtZSkgPT09IC0xKQorICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IHVpU291cmNlQ29k
ZSBpcyBzdGlsbCBwcmVzZW50LiIpOworICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9LAog
CiAgICAgICAgIGZ1bmN0aW9uIHRlc3RFdmFsdWF0ZShuZXh0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGNkYjY4MmUzNjE1N2FmZjkzOTRiYjljZTIyNzhlZTBlZDVjODQ4NTkuLjVhYzIxY2JhNWQ0
ZjUzMmQ2NTBjYWM2NGYzZjI2ZjhjZDEzNmNjMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50eHQKQEAgLTIx
LDcgKzIxLDcgQEAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CiAgIGJh
ci5qcwogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKIAot
UnVubmluZzogdGVzdFRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkQW5kUmVtb3ZlZAorUnVubmlu
ZzogdGVzdERlYnVnZ2VyVUlTb3VyY2VDb2RlQWRkZWRBbmRSZW1vdmVkCiBEdW1waW5nIFNjcmlw
dHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKICAgZm9vLmpzCiBEdW1waW5nIFNjcmlwdHNOYXZp
Z2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKaW5kZXggZGZhNmI3MmNkYmNkMDhjNThlMTIy
MTM3Mjc5OTllZTJlZDBhYWZkNS4uOTVkNTIzNDBjYzNjMzVjNjNhYjE4MGUwZTk1NGQxN2EwMWYx
NDE0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMt
cGFuZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1w
YW5lbC5odG1sCkBAIC0xOSwxMCArMTksMTAgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5j
dGlvbiBjcmVhdGVNb2NrV29ya3NwYWNlKCkKICAgICB7Ci0gICAgICAgIHZhciBuZXR3b3JrV29y
a3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92aWRl
cigpOwogICAgICAgICB2YXIgd29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2Uo
KTsKLSAgICAgICAgd29ya3NwYWNlLmRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIod29ya3NwYWNlKTsKKyAgICAgICAg
dmFyIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1dv
cmtzcGFjZVByb3ZpZGVyKCk7CiAgICAgICAgIHdvcmtzcGFjZS5hZGRQcm9qZWN0KCJuZXR3b3Jr
IiwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKKyAgICAgICAgd29ya3NwYWNlLmRlYnVnZ2Vy
V29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJv
dmlkZXIod29ya3NwYWNlKTsKICAgICAgICAgd29ya3NwYWNlLnJlcXVlc3RGaWxlQ29udGVudCA9
IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgY2FsbGJhY2spCiAgICAgICAgIHsKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTb3VyY2UgcmVxdWVzdGVkIGZvciAiICsgdWlTb3Vy
Y2VDb2RlLnVybCk7CkBAIC02OCw3ICs2OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKHBhbmVsLl9uYXZpZ2F0b3Ip
OwogCi0gICAgICAgICAgICB3b3Jrc3BhY2VDb250cm9sbGVyLl9tYWluRnJhbWVOYXZpZ2F0ZWQo
KTsKKyAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIucmVzZXQo
KTsKICAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkTmV0
d29ya0ZpbGUoImJhci5qcyIsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOwogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5fbmF2aWdhdG9yKTsKIApA
QCAtNzYsMTQgKzc2LDE0IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgbmV4dCgpOwog
ICAgICAgICB9LAogCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RUZW1wb3JhcnlVSVNvdXJjZUNvZGVB
ZGRlZEFuZFJlbW92ZWQobmV4dCkKKyAgICAgICAgZnVuY3Rpb24gdGVzdERlYnVnZ2VyVUlTb3Vy
Y2VDb2RlQWRkZWRBbmRSZW1vdmVkKG5leHQpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciB3
b3Jrc3BhY2UgPSBjcmVhdGVNb2NrV29ya3NwYWNlKCk7CiAgICAgICAgICAgICB2YXIgcGFuZWwg
PSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCh3b3Jrc3BhY2UpOwogICAgICAgICAgICAg
cGFuZWwuc2hvdygpOwogCiAgICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVBy
b3ZpZGVyLmFkZE5ldHdvcmtGaWxlKCJmb28uanMiLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsK
LSAgICAgICAgICAgIHZhciB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUgPSB3b3Jrc3BhY2UuZGVidWdn
ZXJXb3Jrc3BhY2VQcm92aWRlci5hZGREZWJ1Z2dlckZpbGUoImNvbXBpbGVkLmpzIiwgY29udGVu
dFByb3ZpZGVyKTsKKyAgICAgICAgICAgIHdvcmtzcGFjZS5kZWJ1Z2dlcldvcmtzcGFjZVByb3Zp
ZGVyLmFkZERlYnVnZ2VyRmlsZSgiY29tcGlsZWQuanMiLCBjb250ZW50UHJvdmlkZXIpOwogCiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKHBhbmVsLl9uYXZp
Z2F0b3IpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlzb3VyY2Vjb2Rl
LXJldmlzaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vpc291cmNlY29kZS1yZXZp
c2lvbnMuaHRtbAppbmRleCA3MDI1YWQ5YjFkMDg5OTAyMjc0OTcwZmYxZmY3MGVkNGMyYjE4MDQ4
Li42YjhjZjgwNDdlODAwZWNiNDVkNjczYzQ3YTFhMGUxNWIwZTU4OWMzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9ucy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci91aXNvdXJjZWNvZGUtcmV2aXNpb25zLmh0bWwKQEAgLTgsMTMg
KzgsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBjcmVhdGVNb2NrV29ya3Nw
YWNlKCkKICAgICB7Ci0gICAgICAgIHZhciBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcg
V2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcigpOwogICAgICAgICB2YXIgd29y
a3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UoKTsKKyAgICAgICAgdmFyIG5ldHdv
cmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVBy
b3ZpZGVyKCk7CiAgICAgICAgIHdvcmtzcGFjZS5hZGRQcm9qZWN0KCJuZXR3b3JrIiwgbmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyKTsKLSAgICAgICAgd29ya3NwYWNlLnJlcXVlc3RGaWxlQ29udGVu
dCA9IGZ1bmN0aW9uKHBhdGgsIGNhbGxiYWNrKQorICAgICAgICB3b3Jrc3BhY2UucmVxdWVzdEZp
bGVDb250ZW50ID0gZnVuY3Rpb24odXJpLCBjYWxsYmFjaykKICAgICAgICAgewogICAgICAgICAg
ICAgY2FsbGJhY2soIjxzY3JpcHQgY29udGVudD4iLCBmYWxzZSwgInRleHQvamF2YXNjcmlwdCIp
OwogICAgICAgICB9CisgICAgICAgIHdvcmtzcGFjZS5zZXRGaWxlQ29udGVudCA9IGZ1bmN0aW9u
KHVyaSwgbmV3Q29udGVudCwgY2FsbGJhY2spCisgICAgICAgIHsKKyAgICAgICAgfQorCiAgICAg
ICAgIHJldHVybiB3b3Jrc3BhY2U7CiAgICAgfQogIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181905</attachid>
            <date>2013-01-09 06:05:11 -0800</date>
            <delta_ts>2013-01-11 02:21:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105856-20130109180213.patch</filename>
            <type>text/plain</type>
            <size>88956</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2U1MzhlMjdmM2E4N2I3
NDRjN2VjMmYyZmY5OTI4YmFlMzMzOWFhYy4uMWM2NmE4MjQ5N2I5MWFmNjkyOGY1OGE3MjRmNzY3
NWMyZmZiZWI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMCBAQAorMjAxMy0wMS0wOSAgVnNl
dm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBXb3Jrc3BhY2Ugc2hvdWxkIHN1cHBvcnQgc2V2ZXJhbCBwcm9qZWN0cyBhbmQgc2hvdWxk
IG5vdCBoYXZlIHRlbXBvcmFyeSBVSVNvdXJjZUNvZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1ODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV29ya3NwYWNlIG5vdyBzdXBwb3J0cyBzZXZlcmFs
IHByb2plY3RzIHdpdGggdGhlIG5ldHdvcmtQcm9qZWN0IGJlaW5nIGEgbWFpbiBvbmUuCisgICAg
ICAgIFJlcGxhY2VkIHRlbXBvcmFyeSBVSVNvdXJjZUNvZGVzIHdpdGggc3BlY2lmaWMgcHJvamVj
dHMgKGRlYnVnZ2VyIGFuZCBsaXZlZWRpdCkuCisgICAgICAgIFRoZSBjb25jZXB0IG9mIHdvcmtz
cGFjZSByZXNldCBvbiBuYXZpZ2F0aW9uIGlzIG5vdyByZXBsYWNlZCB3aXRoIHByb2plY3QgcmVz
ZXQgY29uY2VwdCBpbnN0ZWFkLgorICAgICAgICBJbnRyb2R1Y2VkIHNuaXBwZXRzIHByb2plY3Qg
KHRoYXQgaXMgbm90IHJlc2V0IG9uIG5hdmlnYXRpb24pLgorICAgICAgICBTY3JpcHQgbWFwcGlu
Z3MgYXJlIG5vdyByZXNldCBvbiBHbG9iYWxPYmplY3RDbGVhcmVkIGV2ZW50LgorCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludE1hbmFnZXIucHJvdG90eXBlLl9wcm9qZWN0V2lsbFJlc2V0LmdldCBmb3IpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS5fcHJvamVjdFdp
bGxSZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLl9pbnNwZWN0ZWRVUkxDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fcmVzZXRTb3VyY2VN
YXBwaW5ncyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmlu
ZGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmluZGlu
Zy5wcm90b3R5cGUuX3ZpYUluc3BlY3RvclJlc291cmNlVVJMKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZS5fcmVzZXQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0U2NyaXB0TWFwcGluZy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0TWFwcGluZyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlwdE1hcHBpbmcucHJvdG90eXBlLmFkZFNjcmlwdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9kZWJ1
Z2dlclJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVByb3Zp
ZGVyLnByb3RvdHlwZS5hZGREZWJ1Z2dlckZpbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lv
blNlcnZlci5wcm90b3R5cGUuX29uR2V0UGFnZVJlc291cmNlcyk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nLnNob3cpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvTGl2ZUVkaXRTdXBwb3J0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxp
dmVFZGl0U3VwcG9ydCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTdXBwb3J0LnBy
b3RvdHlwZS51aVNvdXJjZUNvZGVGb3JMaXZlRWRpdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TGl2ZUVkaXRTdXBwb3J0LnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTGl2ZUVkaXRXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUuYWRkTGl2ZUVkaXRG
aWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtVSVNvdXJjZUNvZGVQ
cm92aWRlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJv
dmlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRl
ci5wcm90b3R5cGUuX2luc3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5
cGUucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRN
YXBwaW5nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5f
dWlTb3VyY2VDb2RlQWRkZWRUb1dvcmtzcGFjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJldmlzaW9uSGlzdG9yeVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
dmlzaW9uSGlzdG9yeVZpZXcucHJvdG90eXBlLl9wcm9qZWN0V2lsbFJlc2V0KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX2FkZFNjcmlwdFNuaXBwZXQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUucmVzZXQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05hdmlnYXRvci5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUuX2FkZFVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlUmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcmVtb3ZlVUlTb3VyY2VDb2Rlcyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJXYXNEaXNhYmxl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZGVidWdn
ZXJSZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5f
cHJvamVjdFdpbGxSZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZS5jYW5TaG93QW5jaG9yTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUuX3JldmVhbEV4ZWN1dGlvbkxpbmUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuc2hvd0dvVG9Tb3VyY2VEaWFsb2cpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFwcGluZy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5fcHJvamVjdFdpbGxSZXNldCk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5y
ZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5wcm9qZWN0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Xb3Jrc3BhY2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jr
c3BhY2VDb250cm9sbGVyLnByb3RvdHlwZS5faW5zcGVjdGVkVVJMQ2hhbmdlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUHJvamVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvamVjdC5w
cm90b3R5cGUubmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvamVjdC5wcm90b3R5cGUu
X3Jlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUudWlTb3VyY2VDb2RlRm9yVVJMKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlLnVpU291cmNlQ29kZUZvclVSSSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS5hZGRQcm9qZWN0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlLnByb2plY3QpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUucHJvamVjdHMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUudWlTb3VyY2VDb2Rlcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS5wcm9qZWN0Rm9yVUlTb3VyY2VD
b2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlLnJlcXVlc3RG
aWxlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS5z
ZXRGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlw
ZS5zZWFyY2hJbkZpbGVDb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2V4
dGVybnMuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisK
IDIwMTMtMDEtMDggIEFycGl0YSBCYWh1Z3VuYSAgPGFycGl0YWJhaHVndW5hQGdtYWlsLmNvbT4K
IAogICAgICAgICBDYXJldCBpcyBpbmNvcnJlY3RseSBwYWludGVkIGZvciBhIGNvbnRlbnRlZGl0
YWJsZSA8ZGl2PiBjb250YWluaW5nIGEgPGJyPiBpbiB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1h
bmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRN
YW5hZ2VyLmpzCmluZGV4IGE5ZmQ2ZWZlN2Q3YTJlY2Q4YWMzNDI4M2FhMmY5MDlhYmJhOWQ5M2Uu
LjY3ZTFjMTMxNmFiNjczY2ZhMTc5NDc2MGI2NjM5YmNkNWZlYTY1ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5q
cwpAQCAtNDcsOSArNDcsOCBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIgPSBmdW5j
dGlvbihicmVha3BvaW50U3RvcmFnZSwgZGVidWdnZXJNb2RlbCwgd29yawogICAgIHRoaXMuX3Nv
dXJjZUZpbGVzV2l0aFJlc3RvcmVkQnJlYWtwb2ludHMgPSB7fTsKIAogICAgIHRoaXMuX2RlYnVn
Z2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVu
dHMuQnJlYWtwb2ludFJlc29sdmVkLCB0aGlzLl9icmVha3BvaW50UmVzb2x2ZWQsIHRoaXMpOwot
ICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3dvcmtzcGFjZVJlc2V0LCB0aGlzKTsK
KyAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3Nw
YWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9wcm9qZWN0V2lsbFJlc2V0LCB0aGlz
KTsKICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlzLl91aVNvdXJj
ZUNvZGVBZGRlZCwgdGhpcyk7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJj
ZUNvZGVBZGRlZCwgdGhpcy5fdWlTb3VyY2VDb2RlQWRkZWQsIHRoaXMpOwogfQogCiBXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuRXZlbnRzID0gewpAQCAtMjI2LDE2ICsyMjUsMjYgQEAg
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fc291cmNlRmlsZXNXaXRoUmVzdG9yZWRCcmVha3BvaW50cyA9IHt9OwogICAgIH0sCiAKLSAg
ICBfd29ya3NwYWNlUmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBicmVha3Bv
aW50cyA9IHRoaXMuX2JyZWFrcG9pbnRzLnNsaWNlKCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgYnJlYWtwb2ludHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGJyZWFrcG9pbnRz
W2ldLl9yZXNldExvY2F0aW9ucygpOwotICAgICAgICAgICAgYnJlYWtwb2ludHNbaV0uX2lzUHJv
dmlzaW9uYWwgPSB0cnVlOworICAgIF9wcm9qZWN0V2lsbFJlc2V0OiBmdW5jdGlvbihldmVudCkK
KyAgICB7CisgICAgICAgIHZhciBwcm9qZWN0ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdmFyIHVp
U291cmNlQ29kZXMgPSBwcm9qZWN0LnVpU291cmNlQ29kZXMoKTsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2Rlc1tpXTsKKyAgICAgICAgICAgIHZhciBicmVha3Bv
aW50cyA9IHRoaXMuX2JyZWFrcG9pbnRzRm9yVUlTb3VyY2VDb2RlLmdldCh1aVNvdXJjZUNvZGUp
IHx8IFtdOworICAgICAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBpbiBicmVha3BvaW50cykg
eworICAgICAgICAgICAgICAgIHZhciBsaW5lQnJlYWtwb2ludHMgPSBicmVha3BvaW50c1tsaW5l
TnVtYmVyXTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxpbmVCcmVha3Bv
aW50cy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9
IGxpbmVCcmVha3BvaW50c1tqXTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2lu
dHMucmVtb3ZlKGJyZWFrcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50Ll9y
ZXNldExvY2F0aW9ucygpOworICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50Ll9pc1Byb3Zp
c2lvbmFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICB0aGlzLl9icmVha3BvaW50c0ZvclVJU291cmNlQ29kZS5yZW1vdmUodWlTb3VyY2VDb2Rl
KTsKKyAgICAgICAgICAgIHZhciBzb3VyY2VGaWxlSWQgPSBXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dE1hbmFnZXIuc291cmNlRmlsZUlkKHVpU291cmNlQ29kZSk7CisgICAgICAgICAgICBkZWxldGUg
dGhpcy5fc291cmNlRmlsZXNXaXRoUmVzdG9yZWRCcmVha3BvaW50c1tzb3VyY2VGaWxlSWRdOwog
ICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzID0gW107Ci0gICAgICAgIHRoaXMu
X2JyZWFrcG9pbnRzRm9yVUlTb3VyY2VDb2RlLmNsZWFyKCk7Ci0gICAgICAgIHRoaXMuX3NvdXJj
ZUZpbGVzV2l0aFJlc3RvcmVkQnJlYWtwb2ludHMgPSB7fTsKICAgICB9LAogCiAgICAgX2JyZWFr
cG9pbnRSZXNvbHZlZDogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKaW5kZXggMjg0ZmJkODdlOGQ4OTlk
OTk1OGI3OWNjNWU1NzRhZWFlMTIzYTg2MS4uMDZjY2RkMTE0NmM5MjI0Y2Q2YWJhZTQxMmVlMGQ3
YjEwZjQzNWY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9DU1NTdHlsZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ1NTU3R5bGVNb2RlbC5qcwpAQCAtNDEsNiArNDEsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVNb2RlbCA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLlVuZG9SZWRvUmVxdWVzdGVkLCB0
aGlzLl91bmRvUmVkb1JlcXVlc3RlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5VbmRvUmVkb0Nv
bXBsZXRlZCwgdGhpcy5fdW5kb1JlZG9Db21wbGV0ZWQsIHRoaXMpOwogICAgIHRoaXMuX3Jlc291
cmNlQmluZGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmluZGlu
ZygpOworICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkluc3BlY3RlZFVSTENo
YW5nZWQsIHRoaXMuX2luc3BlY3RlZFVSTENoYW5nZWQsIHRoaXMpOwogICAgIHRoaXMuX25hbWVk
Rmxvd0NvbGxlY3Rpb25zID0ge307CiAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5Eb2N1bWVudFVwZGF0ZWQsIHRo
aXMuX3Jlc2V0TmFtZWRGbG93Q29sbGVjdGlvbnMsIHRoaXMpOwogICAgIEluc3BlY3RvckJhY2tl
bmQucmVnaXN0ZXJDU1NEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuQ1NTRGlzcGF0Y2hlcih0
aGlzKSk7CkBAIC00NzksNiArNDgwLDE1IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnBy
b3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX2luc3BlY3RlZFVSTENoYW5nZWQ6IGZ1bmN0
aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVzZXRTb3VyY2VNYXBwaW5ncygpOwor
ICAgICAgICB0aGlzLl9yZXNvdXJjZUJpbmRpbmcuX3Jlc2V0KCk7CisgICAgfSwKKworICAgIC8q
KgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5Tb3VyY2VNYXBwaW5nfSBzb3VyY2VNYXBwaW5nCiAgICAgICovCkBAIC00ODgsNyArNDk4LDcg
QEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll91cGRhdGVMb2NhdGlvbnMoKTsKICAgICB9LAogCi0gICAgcmVzZXRTb3VyY2VNYXBwaW5nczog
ZnVuY3Rpb24oKQorICAgIF9yZXNldFNvdXJjZU1hcHBpbmdzOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB0aGlzLl9zb3VyY2VNYXBwaW5ncyA9IHt9OwogICAgIH0sCkBAIC0xMTczLDkgKzEx
ODMsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUgPSB7CiAgKi8KIFdl
Ykluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nID0gZnVuY3Rpb24oKQogewot
ICAgIHRoaXMuX2ZyYW1lQW5kVVJMVG9TdHlsZVNoZWV0SWQgPSB7fTsKLSAgICB0aGlzLl9zdHls
ZVNoZWV0SWRUb0hlYWRlciA9IHt9OwotICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2Rl
bC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5
cGVzLkluc3BlY3RlZFVSTENoYW5nZWQsIHRoaXMuX2luc3BlY3RlZFVSTENoYW5nZWQsIHRoaXMp
OworICAgIHRoaXMuX3Jlc2V0KCk7CiB9CiAKIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVz
b3VyY2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKQEAgLTEyMzYsMTYgKzEyNDQsNiBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUgPSB7CiAgICAgfSwK
IAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAotICAg
ICAqLwotICAgIF9pbnNwZWN0ZWRVUkxDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0g
ICAgICAgIC8vIE1haW4gZnJhbWUgbmF2aWdhdGlvbiAtIGNsZWFyIGhpc3RvcnkuCi0gICAgICAg
IHRoaXMuX2ZyYW1lQW5kVVJMVG9TdHlsZVNoZWV0SWQgPSB7fTsKLSAgICAgICAgdGhpcy5fc3R5
bGVTaGVldElkVG9IZWFkZXIgPSB7fTsKLSAgICB9LAotCi0gICAgLyoqCiAgICAgICogQHBhcmFt
IHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKICAgICAgKi8KICAgICBfbG9hZFN0eWxlU2hl
ZXRIZWFkZXJzOiBmdW5jdGlvbihjYWxsYmFjaykKQEAgLTEzNDgsNiArMTM0NiwxMyBAQCBXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBmYWtlVVJMICs9ICIvIjsKICAgICAgICAgZmFrZVVSTCArPSAiaW5zcGVjdG9yLXN0
eWxlc2hlZXQiOwogICAgICAgICByZXR1cm4gZmFrZVVSTDsKKyAgICB9LAorCisgICAgX3Jlc2V0
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICAvLyBNYWluIGZyYW1lIG5hdmlnYXRpb24gLSBj
bGVhciBoaXN0b3J5LgorICAgICAgICB0aGlzLl9mcmFtZUFuZFVSTFRvU3R5bGVTaGVldElkID0g
e307CisgICAgICAgIHRoaXMuX3N0eWxlU2hlZXRJZFRvSGVhZGVyID0ge307CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVy
U2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29t
cGlsZXJTY3JpcHRNYXBwaW5nLmpzCmluZGV4IGJhMzYyZTgwODczMWFiYmQ2OTJhNjAwYmYyMTA3
YjExOTA4YTgwZDYuLjU5MzJjMDEyZGQ1NjA3ZjcyZGFjYzFkZjg0Njc1YjdmMGVkNjFhM2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3Jp
cHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29t
cGlsZXJTY3JpcHRNYXBwaW5nLmpzCkBAIC00NSw3ICs0NSw3IEBAIFdlYkluc3BlY3Rvci5Db21w
aWxlclNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbih3b3Jrc3BhY2UsIG5ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlCiAgICAgdGhpcy5fc2NyaXB0Rm9yU291cmNlTWFwID0gbmV3IE1hcCgpOwogICAgIC8q
KiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5Qb3NpdGlvbkJhc2VkU291cmNl
TWFwPn0gKi8KICAgICB0aGlzLl9zb3VyY2VNYXBGb3JVUkwgPSB7fTsKLSAgICB0aGlzLl93b3Jr
c3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9q
ZWN0V2lsbFJlc2V0LCB0aGlzLl9yZXNldCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVu
dHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCwgdGhpcy5fZGVidWdnZXJSZXNldCwgdGhpcyk7CiB9CiAK
IFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewpAQCAtMTQx
LDcgKzE0MSw3IEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBl
ID0gewogICAgICAgICByZXR1cm4gc291cmNlTWFwOwogICAgIH0sCiAKLSAgICBfcmVzZXQ6IGZ1
bmN0aW9uKCkKKyAgICBfZGVidWdnZXJSZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
dGhpcy5fc291cmNlTWFwRm9yU291cmNlTWFwVVJMID0ge307CiAgICAgICAgIHRoaXMuX3NvdXJj
ZU1hcEZvclNjcmlwdElkID0ge307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RlZmF1bHRTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0U2NyaXB0TWFwcGluZy5qcwppbmRleCA5MDgxNTYyYTEz
ODJiNzkyNjMzZDQwYzA4Yzc0MmRmY2M3ZTI5NDE5Li4zYTlmMzYzOGNlYzA2NDE1NzZiM2Y0ZTY0
ODdkNmQ1NGNjMmE5YWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RlZmF1bHRTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVmYXVsdFNjcmlwdE1hcHBpbmcuanMKQEAgLTM4LDggKzM4LDggQEAg
V2ViSW5zcGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBwaW5nID0gZnVuY3Rpb24od29ya3NwYWNlLCBk
ZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGUKIHsKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3Bh
Y2U7CiAgICAgdGhpcy5fZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlciA9IGRlYnVnZ2VyV29ya3Nw
YWNlUHJvdmlkZXI7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcmVzZXQsIHRo
aXMpOwotICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuR2xvYmFs
T2JqZWN0Q2xlYXJlZCwgdGhpcy5fZGVidWdnZXJSZXNldCwgdGhpcyk7CisgICAgdGhpcy5fZGVi
dWdnZXJSZXNldCgpOwogfQogCiBXZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlwdE1hcHBpbmcucHJv
dG90eXBlID0gewpAQCAtNzYsNyArNzYsOCBAQCBXZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlwdE1h
cHBpbmcucHJvdG90eXBlID0gewogICAgIGFkZFNjcmlwdDogZnVuY3Rpb24oc2NyaXB0KQogICAg
IHsKICAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IHNjcmlwdC5pc0lubGluZVNjcmlwdCgp
ID8gbmV3IFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyKFtz
Y3JpcHRdKSA6IHNjcmlwdDsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX2RlYnVn
Z2VyV29ya3NwYWNlUHJvdmlkZXIuYWRkRGVidWdnZXJGaWxlKHNjcmlwdC5zb3VyY2VVUkwsIGNv
bnRlbnRQcm92aWRlciwgZmFsc2UpOworICAgICAgICB2YXIgdXJpID0gdGhpcy5fZGVidWdnZXJX
b3Jrc3BhY2VQcm92aWRlci5hZGREZWJ1Z2dlckZpbGUoc2NyaXB0LnNvdXJjZVVSTCwgY29udGVu
dFByb3ZpZGVyLCBmYWxzZSwgc2NyaXB0LmlzQ29udGVudFNjcmlwdCk7CisgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJJKHVyaSk7CiAg
ICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF0gPSB1
aVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMuX3NjcmlwdElkRm9yVUlTb3VyY2VDb2RlLnB1dCh1
aVNvdXJjZUNvZGUsIHNjcmlwdC5zY3JpcHRJZCk7CiAgICAgICAgIHVpU291cmNlQ29kZS5zZXRT
b3VyY2VNYXBwaW5nKHRoaXMpOwpAQCAtOTUsMTIgKzk2LDEzIEBAIFdlYkluc3BlY3Rvci5EZWZh
dWx0U2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29k
ZUZvclNjcmlwdElkW3NjcmlwdElkXS5hZGRSZXZpc2lvbihjb250ZW50KTsKICAgICB9LAogCi0g
ICAgX3Jlc2V0OiBmdW5jdGlvbigpCisgICAgX2RlYnVnZ2VyUmVzZXQ6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGU+fSAqLwogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZCA9IHt9
OwogICAgICAgICB0aGlzLl9zY3JpcHRJZEZvclVJU291cmNlQ29kZSA9IG5ldyBNYXAoKTsKLSAg
ICB9LAorICAgICAgICB0aGlzLl9kZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyLnJlc2V0KCk7Cisg
ICAgfQogfQogCiAvKioKQEAgLTExOCwxNiArMTIwLDE1IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
cldvcmtzcGFjZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge3N0cmluZ30g
dXJsCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyfSBjb250ZW50
UHJvdmlkZXIKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzRWRpdGFibGUKLSAgICAgKiBAcmV0
dXJuIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0g
aXNDb250ZW50U2NyaXB0CisgICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICAqLwotICAgIGFk
ZERlYnVnZ2VyRmlsZTogZnVuY3Rpb24odXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUp
CisgICAgYWRkRGVidWdnZXJGaWxlOiBmdW5jdGlvbih1cmwsIGNvbnRlbnRQcm92aWRlciwgaXNF
ZGl0YWJsZSwgaXNDb250ZW50U2NyaXB0KQogICAgIHsKICAgICAgICAgdmFyIHVyaSA9ICJkZWJ1
Z2dlcjoiICsgV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcldvcmtzcGFjZVByb3ZpZGVyLnVy
aUZvclVSTCh1cmwpOwogICAgICAgICB2YXIgdW5pcXVlVVJJID0gdGhpcy51bmlxdWVVUkkodXJp
KTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZS5hZGRUZW1wb3Jh
cnlVSVNvdXJjZUNvZGUodW5pcXVlVVJJLCB1cmwsIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJs
ZSk7Ci0gICAgICAgIC8vIEZJWE1FOiB0aGlzIGlzIGEgdGVtcG9yYXJ5IGhhY2sgdG8gYmUgcmVt
b3ZlZCBvbmNlIERlZmF1bHRTY3JpcHRNYXBwaW5nIHVpU291cmNlQ29kZSBiZWNvbWUgcGFydCBv
ZiB0aGUgd29ya3NwYWNlLgotICAgICAgICB0aGlzLl9jb250ZW50UHJvdmlkZXJzW3VuaXF1ZVVS
SV0gPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAgIHJldHVybiB1aVNvdXJjZUNvZGU7CisgICAgICAg
IHRoaXMuYWRkRmlsZSh1bmlxdWVVUkksIHVybCwgY29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxl
LCBpc0NvbnRlbnRTY3JpcHQpOworICAgICAgICByZXR1cm4gdW5pcXVlVVJJOwogICAgIH0sCiAK
ICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92
aWRlci5wcm90b3R5cGUKQEAgLTEzNywzICsxMzgsNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJX
b3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgKiBAdHlwZSB7P1dlYkluc3BlY3Rvci5E
ZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyfQogICovCiBXZWJJbnNwZWN0b3IuZGVidWdnZXJXb3Jr
c3BhY2VQcm92aWRlciA9IG51bGw7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5kZXggNmQwNTU4OTAwYmUxMjNlZmM5
NzgwMDE2NTJkYTVlMDliMTUzYjZjOS4uOTQwYWY4YTg2YjdjZWQzZTZmNzM3MzA4YzYyODUzNDFi
YjcyM2QwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
eHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FeHRlbnNpb25TZXJ2ZXIuanMKQEAgLTQ0Niw3ICs0NDYsNyBAQCBXZWJJbnNwZWN0b3IuRXh0
ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICghcmVzb3VyY2VzW2Nv
bnRlbnRQcm92aWRlci5jb250ZW50VVJMKCldKQogICAgICAgICAgICAgICAgIHJlc291cmNlc1tj
b250ZW50UHJvdmlkZXIuY29udGVudFVSTCgpXSA9IHRoaXMuX21ha2VSZXNvdXJjZShjb250ZW50
UHJvdmlkZXIpOwogICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci53b3Jrc3BhY2UudWlT
b3VyY2VDb2RlcygpLmZvckVhY2gocHVzaFJlc291cmNlRGF0YS5iaW5kKHRoaXMpKTsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLm5ldHdvcmtQcm9qZWN0LnVpU291cmNlQ29kZXMoKS5mb3JFYWNoKHB1
c2hSZXNvdXJjZURhdGEuYmluZCh0aGlzKSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVRyZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXMocHVzaFJlc291cmNlRGF0YS5iaW5kKHRoaXMpKTsK
ICAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocmVzb3VyY2VzKTsKICAgICB9LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRl
cmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcwppbmRleCA2ZDZjYjRiNTgxMjNhMDY2OTM2NTQ0M2Jl
Njc1NmUzZDVkMWI1NzYzLi40NmM5Y2ZkNzU5MzA4NzA2ZjUyMjA0MzZmOGZhM2Y0ODJlNDMzMWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVk
SXRlbVNlbGVjdGlvbkRpYWxvZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcwpAQCAtNjA5LDE0ICs2MDksMTkg
QEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZSA9IHsKICAq
IEBjb25zdHJ1Y3RvcgogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFs
b2dDb250ZW50UHJvdmlkZXJ9CiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWx9
IHBhbmVsCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcn0gdWlT
b3VyY2VDb2RlUHJvdmlkZXIKICAqLwotV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJjZURpYWxvZyA9
IGZ1bmN0aW9uKHBhbmVsLCB1aVNvdXJjZUNvZGVQcm92aWRlcikKK1dlYkluc3BlY3Rvci5PcGVu
UmVzb3VyY2VEaWFsb2cgPSBmdW5jdGlvbihwYW5lbCkKIHsKICAgICBXZWJJbnNwZWN0b3IuU2Vs
ZWN0aW9uRGlhbG9nQ29udGVudFByb3ZpZGVyLmNhbGwodGhpcyk7CiAgICAgdGhpcy5fcGFuZWwg
PSBwYW5lbDsKIAotICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSB1aVNvdXJjZUNvZGVQcm92aWRl
ci51aVNvdXJjZUNvZGVzKCk7CisgICAgdmFyIHByb2plY3RzID0gV2ViSW5zcGVjdG9yLndvcmtz
cGFjZS5wcm9qZWN0cygpOworICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSBbXTsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHByb2plY3RzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmIChwcm9q
ZWN0c1tpXSA9PT0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJvamVjdCB8fCBwcm9qZWN0c1tpXSA9
PT0gV2ViSW5zcGVjdG9yLmxpdmVFZGl0UHJvamVjdCkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0gdGhpcy5fdWlTb3VyY2VDb2Rlcy5jb25jYXQo
cHJvamVjdHNbaV0udWlTb3VyY2VDb2RlcygpKTsKKyAgICB9CiAKICAgICBmdW5jdGlvbiBmaWx0
ZXJPdXRFbXB0eVVSTHModWlTb3VyY2VDb2RlKQogICAgIHsKQEAgLTcxNCwxNCArNzE5LDEzIEBA
IFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cucHJvdG90eXBlID0gewogCiAvKioKICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbH0gcGFuZWwKLSAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyfSB1aVNvdXJjZUNvZGVQcm92aWRlcgogICog
QHBhcmFtIHtFbGVtZW50fSByZWxhdGl2ZVRvRWxlbWVudAogICovCi1XZWJJbnNwZWN0b3IuT3Bl
blJlc291cmNlRGlhbG9nLnNob3cgPSBmdW5jdGlvbihwYW5lbCwgdWlTb3VyY2VDb2RlUHJvdmlk
ZXIsIHJlbGF0aXZlVG9FbGVtZW50KQorV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJjZURpYWxvZy5z
aG93ID0gZnVuY3Rpb24ocGFuZWwsIHJlbGF0aXZlVG9FbGVtZW50KQogewogICAgIGlmIChXZWJJ
bnNwZWN0b3IuRGlhbG9nLmN1cnJlbnRJbnN0YW5jZSgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICB2YXIgZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0
ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cobmV3IFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFs
b2cocGFuZWwsIHVpU291cmNlQ29kZVByb3ZpZGVyKSk7CisgICAgdmFyIGZpbHRlcmVkSXRlbVNl
bGVjdGlvbkRpYWxvZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlh
bG9nKG5ldyBXZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nKHBhbmVsKSk7CiAgICAgV2Vi
SW5zcGVjdG9yLkRpYWxvZy5zaG93KHJlbGF0aXZlVG9FbGVtZW50LCBmaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9MaXZlRWRpdFN1cHBvcnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0xpdmVFZGl0U3VwcG9ydC5qcwppbmRleCA3NWE1OTYzYThiYzdlZGEyODJmZWUzZTU1
YTAzMDA5ZjY2ZDQ3MDk2Li4wMWQyYTQ5YTlmNTAzNjE4MGVlYjZmNDgyMzRlZTMyZmE4ZGVmNDM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0xpdmVFZGl0
U3VwcG9ydC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0xpdmVF
ZGl0U3VwcG9ydC5qcwpAQCAtMzEsMTMgKzMxLDE0IEBACiAvKioKICAqIEBjb25zdHJ1Y3Rvcgog
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29ya3NwYWNlfSB3b3Jrc3BhY2UKKyAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLkxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXJ9IGxpdmVFZGl0V29ya3NwYWNl
UHJvdmlkZXIKICAqLwotV2ViSW5zcGVjdG9yLkxpdmVFZGl0U3VwcG9ydCA9IGZ1bmN0aW9uKHdv
cmtzcGFjZSkKK1dlYkluc3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQgPSBmdW5jdGlvbih3b3Jrc3Bh
Y2UsIGxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIpCiB7CiAgICAgdGhpcy5fd29ya3NwYWNlID0g
d29ya3NwYWNlOwotICAgIHRoaXMuX2xpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLkxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIod29ya3NwYWNlKTsKLSAgICB0aGlz
Ll93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50
cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9yZXNldCwgdGhpcyk7Ci0gICAgdGhpcy5fcmVzZXQo
KTsKKyAgICB0aGlzLl9saXZlRWRpdFdvcmtzcGFjZVByb3ZpZGVyID0gbGl2ZUVkaXRXb3Jrc3Bh
Y2VQcm92aWRlcjsKKyAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVk
LCB0aGlzLl9kZWJ1Z2dlclJlc2V0LCB0aGlzKTsKKyAgICB0aGlzLl9kZWJ1Z2dlclJlc2V0KCk7
CiB9CiAKIFdlYkluc3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQucHJvdG90eXBlID0gewpAQCAtNTcs
MjEgKzU4LDIzIEBAIFdlYkluc3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgcmV0dXJuIHVpTG9jYXRpb24udWlTb3VyY2VDb2RlOwogICAgICAgICBpZiAo
dGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSkKICAgICAgICAg
ICAgIHJldHVybiB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRd
OwotICAgICAgICAKKwogICAgICAgICBjb25zb2xlLmFzc2VydCghc2NyaXB0LmlzSW5saW5lU2Ny
aXB0KCkpOwotICAgICAgICB2YXIgdXJpID0gdWlTb3VyY2VDb2RlLnVyaSgpOwotICAgICAgICB2
YXIgbGl2ZUVkaXRVSVNvdXJjZUNvZGUgPSB0aGlzLl9saXZlRWRpdFdvcmtzcGFjZVByb3ZpZGVy
LmFkZExpdmVFZGl0RmlsZSh1aVNvdXJjZUNvZGUudXJsLCBzY3JpcHQsIHRydWUpOworICAgICAg
ICB2YXIgdXJpID0gdGhpcy5fbGl2ZUVkaXRXb3Jrc3BhY2VQcm92aWRlci5hZGRMaXZlRWRpdEZp
bGUodWlTb3VyY2VDb2RlLnVybCwgc2NyaXB0LCB0cnVlKTsKKyAgICAgICAgdmFyIGxpdmVFZGl0
VUlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSSSh1cmkpOwog
ICAgICAgICBsaXZlRWRpdFVJU291cmNlQ29kZS5zZXRTY3JpcHRGaWxlKG5ldyBXZWJJbnNwZWN0
b3IuTGl2ZUVkaXRTY3JpcHRGaWxlKHVpU291cmNlQ29kZSwgbGl2ZUVkaXRVSVNvdXJjZUNvZGUs
IHNjcmlwdC5zY3JpcHRJZCkpOwogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJ
ZFtzY3JpcHQuc2NyaXB0SWRdID0gbGl2ZUVkaXRVSVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMu
X3NjcmlwdElkRm9yVUlTb3VyY2VDb2RlLnB1dChsaXZlRWRpdFVJU291cmNlQ29kZSwgc2NyaXB0
LnNjcmlwdElkKTsKICAgICAgICAgcmV0dXJuIGxpdmVFZGl0VUlTb3VyY2VDb2RlOwogICAgIH0s
CiAKLSAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBfZGVidWdnZXJSZXNldDogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZT59ICovCiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElk
ID0ge307CiAgICAgICAgIHRoaXMuX3NjcmlwdElkRm9yVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgp
OworCisgICAgICAgIHRoaXMuX2xpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIucmVzZXQoKTsKICAg
ICB9LAogfQogCkBAIC0xNDcsMTUgKzE1MCwxNCBAQCBXZWJJbnNwZWN0b3IuTGl2ZUVkaXRXb3Jr
c3BhY2VQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAog
ICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVudFByb3Zp
ZGVyCiAgICAgICogQHBhcmFtIHtib29sZWFufSBpc0VkaXRhYmxlCi0gICAgICogQHJldHVybiB7
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAg
ICovCiAgICAgYWRkTGl2ZUVkaXRGaWxlOiBmdW5jdGlvbih1cmwsIGNvbnRlbnRQcm92aWRlciwg
aXNFZGl0YWJsZSkKICAgICB7CiAgICAgICAgIHZhciB1cmkgPSAibGl2ZWVkaXQ6IiArIFdlYklu
c3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlci51cmlGb3JVUkwodXJsKTsK
ICAgICAgICAgdmFyIHVuaXF1ZVVSSSA9IHRoaXMudW5pcXVlVVJJKHVyaSk7Ci0gICAgICAgIC8v
IEZJWE1FOiB0aGlzIGlzIGEgdGVtcG9yYXJ5IGhhY2sgdG8gYmUgcmVtb3ZlZCBvbmNlIExpdmVF
ZGl0IHVpU291cmNlQ29kZSBiZWNvbWUgcGFydCBvZiB0aGUgd29ya3NwYWNlLgotICAgICAgICB0
aGlzLl9jb250ZW50UHJvdmlkZXJzW3VuaXF1ZVVSSV0gPSBudWxsOwotICAgICAgICByZXR1cm4g
dGhpcy5fd29ya3NwYWNlLmFkZFRlbXBvcmFyeVVJU291cmNlQ29kZSh1bmlxdWVVUkksIHVybCwg
Y29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlKTsKKyAgICAgICAgdGhpcy5hZGRGaWxlKHVuaXF1
ZVVSSSwgdXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUpOworICAgICAgICByZXR1cm4g
dW5pcXVlVVJJOwogICAgIH0sCiAKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5Db250ZW50
UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2Rl
UHJvdmlkZXIuanMKaW5kZXggMWRiNGJiZmRkMmZlMWEzNDExNzgwZDc1YTcxNDFkMjgxODdkMTEw
YS4uYTJkYzc5NTFlZGFjYWNlMDdhYmY5NGU0MmFjNjc0ZmJlMzJiYzA4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJv
dmlkZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3Jr
VUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKQEAgLTM4LDggKzM4LDcgQEAgV2ViSW5zcGVjdG9yLk5l
dHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlciA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgbmV0d29ya1dv
cmtzcGFjZVAKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7CiAgICAgdGhpcy5fbmV0
d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyOwogICAgIFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX3Jlc291
cmNlQWRkZWQsIHRoaXMpOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Byb2pl
Y3RXaWxsUmVzZXQsIHRoaXMpOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3REaWRSZXNldCwgdGhpcy5fcHJv
amVjdERpZFJlc2V0LCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBl
cy5NYWluRnJhbWVOYXZpZ2F0ZWQsIHRoaXMuX21haW5GcmFtZU5hdmlnYXRlZCwgdGhpcyk7CiAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUGFyc2VkU2NyaXB0U291cmNlLCB0aGlzLl9wYXJzZWRT
Y3JpcHRTb3VyY2UsIHRoaXMpOwogCiAgICAgdGhpcy5fcHJvY2Vzc2VkVVJMcyA9IHt9OwpAQCAt
MTAxLDYgKzEwMCwxNCBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVy
LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX21haW5GcmFtZU5hdmlnYXRlZDogZnVu
Y3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZXNldCgpOworICAgIH0sCisKKyAg
ICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCiAgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuQ29udGVudFByb3ZpZGVyfSBjb250ZW50UHJvdmlkZXIKICAgICAgKiBAcGFyYW0ge2Jv
b2xlYW49fSBpc0NvbnRlbnRTY3JpcHQKQEAgLTExNywxNCArMTI0LDE2IEBAIFdlYkluc3BlY3Rv
ci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkTmV0d29ya0ZpbGUodXJsLCBjb250ZW50UHJv
dmlkZXIsIGlzRWRpdGFibGUsIGlzQ29udGVudFNjcmlwdCk7CiAgICAgfSwKIAotICAgIF9wcm9q
ZWN0V2lsbFJlc2V0OiBmdW5jdGlvbigpCisgICAgX3Jlc2V0OiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB0aGlzLl9wcm9jZXNzZWRVUkxzID0ge307CiAgICAgICAgIHRoaXMuX2xhc3REeW5h
bWljQW5vbnltb3VzU2NyaXB0SW5kZXhGb3JVUkwgPSB7fTsKLSAgICB9LAotCi0gICAgX3Byb2pl
Y3REaWRSZXNldDogZnVuY3Rpb24oKQotICAgIHsKKyAgICAgICAgdGhpcy5fbmV0d29ya1dvcmtz
cGFjZVByb3ZpZGVyLnJlc2V0KCk7CiAgICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7CiAgICAgfQog
fQorCisvKioKKyAqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92aWRl
cn0KKyAqLworV2ViSW5zcGVjdG9yLm5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlciA9IG51bGw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtX
b3Jrc3BhY2VQcm92aWRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmpzCmluZGV4IDkyZjVhZmU0NmIxMmUxMDc3YjZhZTI1
NjhjNmVjMjFmN2MzMWQzM2MuLjU0OTFmNGYwMDgyMmVjMzk2ZGFmZDY4NmQ4NDdlYzRiNjE2YzNj
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmpzCkBAIC0xMjIsNiArMTIyLDcgQEAgV2Vi
SW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcldvcmtzcGFjZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsK
ICAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fY29udGVudFByb3Zp
ZGVycyA9IHt9OworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlUHJvdmlkZXIuRXZlbnRzLlJlc2V0LCBudWxsKTsKICAgICB9LAogICAg
IAogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBw
aW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlw
dE1hcHBpbmcuanMKaW5kZXggNzgwMjg1MGVjMzcyOTViZTRiN2ExMzAyYjNlYWM3N2FmOGU1YmE3
Zi4uODUyZDJiNDU4NWZmOThlZmQ3MTk5MTk0Y2Y3ODcyYWFhYTg1ODkxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlw
dE1hcHBpbmcuanMKQEAgLTM2LDEwICszNiwxMCBAQAogV2ViSW5zcGVjdG9yLlJlc291cmNlU2Ny
aXB0TWFwcGluZyA9IGZ1bmN0aW9uKHdvcmtzcGFjZSkKIHsKICAgICB0aGlzLl93b3Jrc3BhY2Ug
PSB3b3Jrc3BhY2U7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcmVzZXQsIHRo
aXMpOwogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHRoaXMuX3VpU291
cmNlQ29kZUFkZGVkVG9Xb3Jrc3BhY2UsIHRoaXMpOwogCi0gICAgdGhpcy5fcmVzZXQoKTsKKyAg
ICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVkLCB0aGlzLl9kZWJ1Z2dl
clJlc2V0LCB0aGlzKTsKKyAgICB0aGlzLl9kZWJ1Z2dlclJlc2V0KCk7CiB9CiAKIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewpAQCAtOTMsNyArOTMsOCBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICBf
dWlTb3VyY2VDb2RlQWRkZWRUb1dvcmtzcGFjZTogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlfSAqLyAoZXZlbnQuZGF0YSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCEhdWlTb3VyY2VD
b2RlLnVybCk7CisgICAgICAgIGlmICghdWlTb3VyY2VDb2RlLnVybCkKKyAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICB2YXIgc2NyaXB0cyA9IHRoaXMuX3NjcmlwdHNGb3JVSVNvdXJjZUNv
ZGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgaWYgKCFzY3JpcHRzLmxlbmd0aCkKQEAgLTE3NSw3
ICsxNzYsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNvdXJjZU1hcHBpbmcodGhpcyk7CiAgICAgfSwK
IAotICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIF9kZWJ1Z2dlclJlc2V0OiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICAvKiogQHR5cGUgeyFPYmplY3QuPHN0cmluZywgIUFycmF5LjwhV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZT4+fSAqLwogICAgICAgICB0aGlzLl9pbmxpbmVTY3JpcHRz
Rm9yU291cmNlVVJMID0ge307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcuanMKaW5kZXggNDU5MmU0YWQ1MTE4OTk5
NzRiMDcxZWRiY2YzNjBhMjNmNmM0Zjc5NC4uZGU4ODVhZGRmZTU1YTExNTUzMWZkNjhiM2I5MjQ5
OTc0OTVhOGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmV2aXNpb25IaXN0b3J5Vmlldy5qcwpAQCAtNTYsOCArNTYsNyBAQCBXZWJJbnNw
ZWN0b3IuUmV2aXNpb25IaXN0b3J5VmlldyA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNwZWN0b3Iu
d29ya3NwYWNlLnVpU291cmNlQ29kZXMoKS5mb3JFYWNoKHBvcHVsYXRlUmV2aXNpb25zLmJpbmQo
dGhpcykpOwogICAgIFdlYkluc3BlY3Rvci53b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5VSVNvdXJjZUNvZGVDb250ZW50Q29tbWl0dGVkLCB0
aGlzLl9yZXZpc2lvbkFkZGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5V
SVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzLl91aVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzKTsKLSAg
ICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkLCB0
aGlzLl91aVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzKTsKLSAgICBXZWJJbnNwZWN0b3Iud29ya3Nw
YWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVj
dFdpbGxSZXNldCwgdGhpcy5fcmVzZXQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci53b3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0
V2lsbFJlc2V0LCB0aGlzLl9wcm9qZWN0V2lsbFJlc2V0LCB0aGlzKTsKIAogICAgIHRoaXMuX3N0
YXR1c0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgdGhpcy5f
c3RhdHVzRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9jYWwg
bW9kaWZpY2F0aW9ucyIpOwpAQCAtMTcyLDEwICsxNzEsMTAgQEAgV2ViSW5zcGVjdG9yLlJldmlz
aW9uSGlzdG9yeVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVJ
dGVtcy5yZW1vdmUodWlTb3VyY2VDb2RlKTsKICAgICB9LAogCi0gICAgX3Jlc2V0OiBmdW5jdGlv
bigpCisgICAgX3Byb2plY3RXaWxsUmVzZXQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAg
ICAgdGhpcy5fdHJlZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdGhpcy5fdWlT
b3VyY2VDb2RlSXRlbXMuY2xlYXIoKTsKKyAgICAgICAgdmFyIHByb2plY3QgPSBldmVudC5kYXRh
OworICAgICAgICBwcm9qZWN0LnVpU291cmNlQ29kZXMoKS5mb3JFYWNoKHRoaXMuX3JlbW92ZVVJ
U291cmNlQ29kZS5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNw
ZWN0b3IuVmlldy5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKaW5kZXggOWUzZjAzMTdlODgwODYz
NmVjYjEyZTk4OTczOTc4NThhYTljNTNlYS4uNGY3NWE2ZmUzZDhjNGY1OGNmNmY3MzA0NjM0ZTdj
ZTkxOGYxODBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKQEAgLTMyLDEyICszMiwxMiBAQAogICogQGNv
bnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLldvcmtzcGFjZX0gd29ya3NwYWNlCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXJ9IG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcgorICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXJ9IHNu
aXBwZXRXb3Jrc3BhY2VQcm92aWRlcgogICovCi1XZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1v
ZGVsID0gZnVuY3Rpb24od29ya3NwYWNlLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpCitXZWJJ
bnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsID0gZnVuY3Rpb24od29ya3NwYWNlLCBzbmlwcGV0
V29ya3NwYWNlUHJvdmlkZXIpCiB7CiAgICAgdGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlOwot
ICAgIHRoaXMuX25ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldHdvcmtXb3Jrc3BhY2VQcm92
aWRlcjsKKyAgICB0aGlzLl9zbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIgPSBzbmlwcGV0V29ya3Nw
YWNlUHJvdmlkZXI7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKICAg
ICB0aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5fdWlT
b3VyY2VDb2RlRm9yU25pcHBldElkID0ge307CkBAIC00Niw5ICs0Niw3IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRTbmlwcGV0TW9kZWwgPSBmdW5jdGlvbih3b3Jrc3BhY2UsIG5ldHdvcmtXb3Jrc3Bh
Y2VQcm92aWRlcikKICAgICB0aGlzLl9zbmlwcGV0U3RvcmFnZSA9IG5ldyBXZWJJbnNwZWN0b3Iu
U25pcHBldFN0b3JhZ2UoInNjcmlwdCIsICJTY3JpcHQgc25pcHBldCAjIik7CiAgICAgdGhpcy5f
bGFzdFNuaXBwZXRFdmFsdWF0aW9uSW5kZXhTZXR0aW5nID0gV2ViSW5zcGVjdG9yLnNldHRpbmdz
LmNyZWF0ZVNldHRpbmcoImxhc3RTbmlwcGV0RXZhbHVhdGlvbkluZGV4IiwgMCk7CiAgICAgdGhp
cy5fc25pcHBldFNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRTY3JpcHRN
YXBwaW5nKHRoaXMpOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Byb2plY3RX
aWxsUmVzZXQsIHRoaXMpOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3REaWRSZXNldCwgdGhpcy5fcHJvamVj
dERpZFJlc2V0LCB0aGlzKTsKLSAgICB0aGlzLl9sb2FkU25pcHBldHMoKTsKKyAgICB0aGlzLnJl
c2V0KCk7CiB9CiAKIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlID0g
ewpAQCAtODIsOCArODAsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3Rv
dHlwZSA9IHsKICAgICAgKi8KICAgICBfYWRkU2NyaXB0U25pcHBldDogZnVuY3Rpb24oc25pcHBl
dCkKICAgICB7Ci0gICAgICAgIHRoaXMuX25ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGROZXR3
b3JrRmlsZShzbmlwcGV0Lm5hbWUsIG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldENvbnRlbnRQcm92
aWRlcihzbmlwcGV0KSwgdHJ1ZSwgZmFsc2UsIHRydWUpOwotICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSTChzbmlwcGV0Lm5hbWUpOwor
ICAgICAgICB0aGlzLl9zbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZShzbmlwcGV0Lm5h
bWUsIHNuaXBwZXQubmFtZSwgbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0Q29udGVudFByb3ZpZGVy
KHNuaXBwZXQpLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgic25pcHBldHMiKS51aVNvdXJjZUNvZGVGb3JVUkko
c25pcHBldC5uYW1lKTsKICAgICAgICAgdmFyIHNjcmlwdEZpbGUgPSBuZXcgV2ViSW5zcGVjdG9y
LlNuaXBwZXRTY3JpcHRGaWxlKHRoaXMsIHVpU291cmNlQ29kZSk7CiAgICAgICAgIHVpU291cmNl
Q29kZS5zZXRTY3JpcHRGaWxlKHNjcmlwdEZpbGUpOwogICAgICAgICB0aGlzLl9zbmlwcGV0SWRG
b3JVSVNvdXJjZUNvZGUucHV0KHVpU291cmNlQ29kZSwgc25pcHBldC5pZCk7CkBAIC0xMDQsNyAr
MTAyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX3JlbGVhc2VTbmlwcGV0U2NyaXB0KHVpU291cmNlQ29kZSk7CiAgICAgICAg
IGRlbGV0ZSB0aGlzLl91aVNvdXJjZUNvZGVGb3JTbmlwcGV0SWRbc25pcHBldC5pZF07CiAgICAg
ICAgIHRoaXMuX3NuaXBwZXRJZEZvclVJU291cmNlQ29kZS5yZW1vdmUodWlTb3VyY2VDb2RlKTsK
LSAgICAgICAgdGhpcy5fbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLnJlbW92ZUZpbGUoc25pcHBl
dC5uYW1lKTsKKyAgICAgICAgdGhpcy5fc25pcHBldFdvcmtzcGFjZVByb3ZpZGVyLnJlbW92ZUZp
bGUoc25pcHBldC5uYW1lKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0zNzAsMTYgKzM2OCwxNSBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmV0dXJuIHNuaXBwZXRJZDsKICAgICB9LAogCi0gICAgX3Byb2plY3RXaWxsUmVzZXQ6IGZ1bmN0
aW9uKCkKKyAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgLyoqIEB0eXBlIHsh
T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fSAqLwogICAgICAgICB0
aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZCA9IHt9OwogICAgICAgICB0aGlzLl9zY3JpcHRG
b3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7CisgICAgICAgIC8qKiBAdHlwZSB7IU9iamVjdC48
c3RyaW5nLCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0gKi8KICAgICAgICAgdGhpcy5fdWlT
b3VyY2VDb2RlRm9yU25pcHBldElkID0ge307CiAgICAgICAgIHRoaXMuX3NuaXBwZXRJZEZvclVJ
U291cmNlQ29kZSA9IG5ldyBNYXAoKTsKLSAgICB9LAotCi0gICAgX3Byb2plY3REaWRSZXNldDog
ZnVuY3Rpb24oKQotICAgIHsKKyAgICAgICAgdGhpcy5fc25pcHBldFdvcmtzcGFjZVByb3ZpZGVy
LnJlc2V0KCk7CiAgICAgICAgIHRoaXMuX2xvYWRTbmlwcGV0cygpOwogICAgIH0sCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05hdmlnYXRv
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05hdmlnYXRv
ci5qcwppbmRleCA2ZTQ4NjA5MjBmOGQzZjY0MTNkNzg2OTU4NjIzYjI3MmIzMDhmNTEzLi5jMGUx
NmVhMDAwNjQ2ZTczNTJhZjc3YjJkNGQ1ODJjZDhiZmQwM2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpzCkBAIC0x
NzAsMTMgKzE3MCw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzTmF2aWdhdG9yLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNj
cmlwdHNOYXZpZ2F0b3IuRXZlbnRzLlNuaXBwZXRDcmVhdGlvblJlcXVlc3RlZCwgZXZlbnQuZGF0
YSk7CiAgICAgfSwKIAotICAgIHJlc2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlz
Ll9zY3JpcHRzVmlldy5yZXNldCgpOwotICAgICAgICB0aGlzLl9jb250ZW50U2NyaXB0c1ZpZXcu
cmVzZXQoKTsKLSAgICAgICAgdGhpcy5fc25pcHBldHNWaWV3LnJlc2V0KCk7Ci0gICAgfSwKLQog
ICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRl
eCA3MzU1MGUzZTI0ZmVmMGRmOTU2ZDU4YmViZjAzM2MzNDViZDQ3YTA4Li43NjkxZGYwNTdjYjk3
NjlkOWEwNTA0MjFlOTIxZDU2YThmZGNjNTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMTkwLDggKzE5MCw4IEBAIFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbih3b3Jrc3BhY2VGb3JUZXN0KQogCiAg
ICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdGhpcy5fdWlTb3VyY2VDb2Rl
QWRkZWQsIHRoaXMpOwogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVtb3ZlZCwg
dGhpcy5fdWlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcyk7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5U
ZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzLl91aVNvdXJjZUNvZGVSZW1vdmVkLCB0
aGlzKTsKLSAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9yZXNldC5iaW5kKHRoaXMp
LCB0aGlzKTsKKyAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9wcm9qZWN0V2lsbFJl
c2V0LmJpbmQodGhpcyksIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkdsb2JhbE9i
amVjdENsZWFyZWQsIHRoaXMuX2RlYnVnZ2VyUmVzZXQsIHRoaXMpOwogCiAgICAgV2ViSW5zcGVj
dG9yLmFkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5yZWdpc3RlclNlYXJjaFNjb3BlKG5ldyBXZWJJ
bnNwZWN0b3IuU2NyaXB0c1NlYXJjaFNjb3BlKHRoaXMuX3dvcmtzcGFjZSkpOwogfQpAQCAtMjQz
LDEyICsyNDMsMTMgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgewogICAgICAgICBpZiAodGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLnRvZ2dsZWQp
CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0Rm9ybWF0dGVkKHRydWUpOwotCisgICAgICAg
IGlmICh1aVNvdXJjZUNvZGUucHJvamVjdCgpID09PSBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcm9q
ZWN0IHx8IHVpU291cmNlQ29kZS5wcm9qZWN0KCkgPT09IFdlYkluc3BlY3Rvci5saXZlRWRpdFBy
b2plY3QpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5l
ci5hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgdGhpcy5fbmF2aWdhdG9y
LmFkZFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICAvLyBSZXBsYWNlIGRlYnVn
Z2VyIHNjcmlwdC1iYXNlZCB1aVNvdXJjZUNvZGUgd2l0aCBhIG5ldHdvcmstYmFzZWQgb25lLgot
ICAgICAgICBpZiAodGhpcy5fY3VycmVudFVJU291cmNlQ29kZSAmJiB0aGlzLl9jdXJyZW50VUlT
b3VyY2VDb2RlLmlzVGVtcG9yYXJ5ICYmIHRoaXMuX2N1cnJlbnRVSVNvdXJjZUNvZGUgIT09IHVp
U291cmNlQ29kZSAmJiB0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlLnVybCA9PT0gdWlTb3VyY2VD
b2RlLnVybCkgewotICAgICAgICAgICAgdmFyIGN1cnJlbnRVSVNvdXJjZUNvZGUgPSB0aGlzLl9j
dXJyZW50VUlTb3VyY2VDb2RlOworICAgICAgICB2YXIgY3VycmVudFVJU291cmNlQ29kZSA9IHRo
aXMuX2N1cnJlbnRVSVNvdXJjZUNvZGU7CisgICAgICAgIGlmIChjdXJyZW50VUlTb3VyY2VDb2Rl
ICYmIGN1cnJlbnRVSVNvdXJjZUNvZGUucHJvamVjdCgpID09PSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJQcm9qZWN0ICYmIGN1cnJlbnRVSVNvdXJjZUNvZGUgIT09IHVpU291cmNlQ29kZSAmJiBjdXJy
ZW50VUlTb3VyY2VDb2RlLnVybCA9PT0gdWlTb3VyY2VDb2RlLnVybCkgewogICAgICAgICAgICAg
dGhpcy5fc2hvd0ZpbGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgICAgIHRoaXMuX2VkaXRvckNv
bnRhaW5lci5yZW1vdmVVSVNvdXJjZUNvZGUoY3VycmVudFVJU291cmNlQ29kZSk7CiAgICAgICAg
IH0KQEAgLTI1Nyw5ICsyNTgsMTkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgX3VpU291cmNlQ29kZVJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
ICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZX0gKi8gKGV2ZW50LmRhdGEpOwotICAgICAgICB0aGlzLl9lZGl0b3JDb250YWluZXIu
cmVtb3ZlVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7Ci0gICAgICAgIHRoaXMuX25hdmlnYXRv
ci5yZW1vdmVVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdGhpcy5fcmVtb3Zl
U291cmNlRnJhbWUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5fcmVtb3ZlVUlTb3VyY2VD
b2RlcyhbdWlTb3VyY2VDb2RlXSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7
QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fSB1aVNvdXJjZUNvZGVzCisgICAgICov
CisgICAgX3JlbW92ZVVJU291cmNlQ29kZXM6IGZ1bmN0aW9uKHVpU291cmNlQ29kZXMpCisgICAg
eworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgIHRoaXMuX25hdmlnYXRvci5yZW1vdmVVSVNvdXJjZUNvZGUodWlTb3Vy
Y2VDb2Rlc1tpXSk7CisgICAgICAgICAgICB0aGlzLl9yZW1vdmVTb3VyY2VGcmFtZSh1aVNvdXJj
ZUNvZGVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9lZGl0b3JDb250YWluZXIucmVt
b3ZlVUlTb3VyY2VDb2Rlcyh1aVNvdXJjZUNvZGVzKTsKICAgICB9LAogCiAgICAgX2NvbnNvbGVD
b21tYW5kRXZhbHVhdGVkSW5TZWxlY3RlZENhbGxGcmFtZTogZnVuY3Rpb24oZXZlbnQpCkBAIC0z
MzYsMjYgKzM0NywyMiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsK
IAogICAgIF9kZWJ1Z2dlcldhc0Rpc2FibGVkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0
aGlzLl9yZXNldCgpOworICAgICAgICB0aGlzLl9kZWJ1Z2dlclJlc2V0KCk7CiAgICAgfSwKIAot
ICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIF9kZWJ1Z2dlclJlc2V0OiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICBkZWxldGUgdGhpcy5jdXJyZW50UXVlcnk7Ci0gICAgICAgIHRoaXMuc2Vh
cmNoQ2FuY2VsZWQoKTsKLQogICAgICAgICB0aGlzLl9kZWJ1Z2dlclJlc3VtZWQoKTsKLQotICAg
ICAgICBkZWxldGUgdGhpcy5fY3VycmVudFVJU291cmNlQ29kZTsKLSAgICAgICAgdGhpcy5fbmF2
aWdhdG9yLnJlc2V0KCk7Ci0gICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5lci5yZXNldCgpOwot
ICAgICAgICB0aGlzLl91cGRhdGVTY3JpcHRWaWV3U3RhdHVzQmFySXRlbXMoKTsKLSAgICAgICAg
dGhpcy5zaWRlYmFyUGFuZXMuanNCcmVha3BvaW50cy5yZXNldCgpOwogICAgICAgICB0aGlzLnNp
ZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zLnJlc2V0KCk7CisgICAgfSwKIAotICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlcyA9IHRoaXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVzKCk7Ci0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkKLSAgICAg
ICAgICAgIHRoaXMuX3JlbW92ZVNvdXJjZUZyYW1lKHVpU291cmNlQ29kZXNbaV0pOworICAgIF9w
cm9qZWN0V2lsbFJlc2V0OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBwcm9q
ZWN0ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBwcm9qZWN0LnVp
U291cmNlQ29kZXMoKTsKKyAgICAgICAgdGhpcy5fcmVtb3ZlVUlTb3VyY2VDb2Rlcyh1aVNvdXJj
ZUNvZGVzKTsKKyAgICAgICAgaWYgKHByb2plY3QgPT09IFdlYkluc3BlY3Rvci5uZXR3b3JrUHJv
amVjdCkKKyAgICAgICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5lci5yZXNldCgpOwogICAgIH0s
CiAKICAgICBnZXQgdmlzaWJsZVZpZXcoKQpAQCAtMzc5LDcgKzM4Niw3IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLmRlYnVnZ2VyRW5hYmxlZCgpICYmIGFuY2hvci51aVNvdXJjZUNv
ZGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMg
PSB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpOworICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlcyA9IFdlYkluc3BlY3Rvci5uZXR3b3JrUHJvamVjdC51aVNvdXJjZUNvZGVzKCk7CiAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkgewogICAg
ICAgICAgICAgaWYgKHVpU291cmNlQ29kZXNbaV0udXJsID09PSBhbmNob3IuaHJlZikgewogICAg
ICAgICAgICAgICAgIGFuY2hvci51aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGVzW2ldOwpAQCAt
NTE5LDEzICs1MjYsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgewogICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdWlMb2NhdGlvbi51aVNvdXJjZUNv
ZGU7CiAgICAgICAgIC8vIFNvbWUgc2NyaXB0cyAoYW5vbnltb3VzIGFuZCBzbmlwcGV0cyBldmFs
dWF0aW9ucykgYXJlIG5vdCBhZGRlZCB0byBmaWxlcyBzZWxlY3QgYnkgZGVmYXVsdC4KLSAgICAg
ICAgaWYgKHVpU291cmNlQ29kZS5pc1RlbXBvcmFyeSkgewotICAgICAgICAgICAgaWYgKHRoaXMu
X2N1cnJlbnRVSVNvdXJjZUNvZGUgJiYgdGhpcy5fY3VycmVudFVJU291cmNlQ29kZS5zY3JpcHRG
aWxlKCkgJiYgdGhpcy5fY3VycmVudFVJU291cmNlQ29kZS5zY3JpcHRGaWxlKCkuaXNEaXZlcmdp
bmdGcm9tVk0oKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB0aGlzLl9l
ZGl0b3JDb250YWluZXIuYWRkVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAg
ICBpZiAodWlTb3VyY2VDb2RlLmZvcm1hdHRlZCgpICE9PSB0aGlzLl90b2dnbGVGb3JtYXRTb3Vy
Y2VCdXR0b24udG9nZ2xlZCkKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0Rm9ybWF0
dGVkKHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUJ1dHRvbi50b2dnbGVkKTsKLSAgICAgICAgfQor
ICAgICAgICBpZiAodGhpcy5fY3VycmVudFVJU291cmNlQ29kZSAmJiB0aGlzLl9jdXJyZW50VUlT
b3VyY2VDb2RlLnNjcmlwdEZpbGUoKSAmJiB0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlLnNjcmlw
dEZpbGUoKS5pc0RpdmVyZ2luZ0Zyb21WTSgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBpZiAodGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLnRvZ2dsZWQgJiYgIXVpU291cmNl
Q29kZS5mb3JtYXR0ZWQoKSkKKyAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRGb3JtYXR0ZWQo
dHJ1ZSk7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3Nob3dGaWxlKHVpU291cmNl
Q29kZSk7CiAgICAgICAgIHNvdXJjZUZyYW1lLnJldmVhbExpbmUodWlMb2NhdGlvbi5saW5lTnVt
YmVyKTsKICAgICAgICAgc291cmNlRnJhbWUuZm9jdXMoKTsKQEAgLTExNTcsNyArMTE2MSw3IEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgc2hvd0dvVG9T
b3VyY2VEaWFsb2c6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5PcGVu
UmVzb3VyY2VEaWFsb2cuc2hvdyh0aGlzLCB0aGlzLl93b3Jrc3BhY2UsIHRoaXMuZWRpdG9yVmll
dy5tYWluRWxlbWVudCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cu
c2hvdyh0aGlzLCB0aGlzLmVkaXRvclZpZXcubWFpbkVsZW1lbnQpOwogICAgIH0sCiAKICAgICBf
X3Byb3RvX186IFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFwcGluZy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFwcGluZy5qcwpp
bmRleCBiZDdlMjZjMmFmNzQ0NTY0NzEzZmFlODA0YzBiNjgzY2MxMTBkMmQ5Li5mYTg2YWNiYzRk
ZjBhMTRlNjNjNjQxZWE0YTRlOTYzOTBkZjdmNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTb3VyY2VNYXBwaW5nLmpzCkBAIC0z
Niw3ICszNiw3IEBACiBXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZyA9IGZ1bmN0aW9u
KHdvcmtzcGFjZSkKIHsKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7Ci0gICAgdGhp
cy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVu
dHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcmVzZXQsIHRoaXMpOworICAgIHRoaXMuX3dvcmtz
cGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2pl
Y3RXaWxsUmVzZXQsIHRoaXMuX3Byb2plY3RXaWxsUmVzZXQsIHRoaXMpOwogICAgIHRoaXMuX3dv
cmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRl
ci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHRoaXMuX3VpU291cmNlQ29kZUFkZGVkVG9Xb3Jr
c3BhY2UsIHRoaXMpOwogCiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yVVJMID0ge307CkBAIC05
MCwxMCArOTAsMTIgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NvdXJjZU1hcHBpbmcucHJvdG90eXBl
ID0gewogICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuc2V0U291cmNlTWFwcGluZyh1aVNv
dXJjZUNvZGUudXJsLCB0aGlzKTsKICAgICB9LAogCi0gICAgX3Jlc2V0OiBmdW5jdGlvbigpCisg
ICAgX3Byb2plY3RXaWxsUmVzZXQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhp
cy5fdWlTb3VyY2VDb2RlRm9yVVJMID0ge307Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2Rl
bC5yZXNldFNvdXJjZU1hcHBpbmdzKCk7CisgICAgICAgIHZhciBwcm9qZWN0ID0gZXZlbnQuZGF0
YTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBwcm9qZWN0LnVpU291cmNlQ29kZXMoKTsK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzOyArK2kpCisgICAgICAg
ICAgICBkZWxldGUgdGhpcy5fdWlTb3VyY2VDb2RlRm9yVVJMW3VpU291cmNlQ29kZXNbaV0udXJs
XTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGFiYmVkRWRpdG9yQ29udGFpbmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMKaW5kZXggMmJhYWQ1MTYwNmViZWU0
ZWMxYzczOWIyMjlkZTBkNTk0ZWM5YzAxMi4uMWMzNWFlNTk4MmIzMDgyYjU1YmI5ZDk0MmI0MTdk
MWQwNjNhMmE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMKQEAgLTIyMyw2ICsyMjMsNyBAQCBX
ZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dmFyIHRhYklkcyA9IFtdOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29k
ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB1aVNvdXJj
ZUNvZGVzW2ldOworICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2xvYWRlZFVSSXNbdWlTb3VyY2VD
b2RlLnVyaSgpXTsKICAgICAgICAgICAgIHZhciB0YWJJZCA9IHRoaXMuX3RhYklkcy5nZXQodWlT
b3VyY2VDb2RlKTsKICAgICAgICAgICAgIGlmICh0YWJJZCkKICAgICAgICAgICAgICAgICB0YWJJ
ZHMucHVzaCh0YWJJZCk7CkBAIC0zOTEsMTIgKzM5Miw3IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRF
ZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogCiAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuX3RhYmJlZFBhbmUuY2xvc2VBbGxUYWJzKCk7Ci0gICAgICAgIHRo
aXMuX3RhYklkcyA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fZmlsZXMgPSB7fTsKLSAgICAg
ICAgZGVsZXRlIHRoaXMuX2N1cnJlbnRGaWxlOwogICAgICAgICBkZWxldGUgdGhpcy5fdXNlclNl
bGVjdGVkRmlsZXM7Ci0gICAgICAgIHRoaXMuX2xvYWRlZFVSSXMgPSB7fTsKICAgICB9LAogCiAg
ICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJ
U291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3Vy
Y2VDb2RlLmpzCmluZGV4IGU2Y2FjYmEwMjQ5YzM1YjgxYmY5MDQ3Mzg3MTk1NmYyMWNiMDIwOTcu
LjdiYzhjN2MyOWMwY2MyNDk4ZTJkMmZkNzI1NTYzNDc1NTA3MTk1MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCkBAIC0xNjQs
NiArMTY0LDE0IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewogICAg
IH0sCiAKICAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUHJvamVjdH0KKyAg
ICAgKi8KKyAgICBwcm9qZWN0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5fd29ya3NwYWNlLnByb2plY3RGb3JVSVNvdXJjZUNvZGUodGhpcyk7CisgICAgfSwKKworICAg
IC8qKgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyxib29sZWFuLHN0cmluZyl9IGNh
bGxiYWNrCiAgICAgICovCiAgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQpA
QCAtNjA2LDggKzYxNCw2IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlciA9IGZ1
bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cyA9IHsK
ICAgICBVSVNvdXJjZUNvZGVBZGRlZDogIlVJU291cmNlQ29kZUFkZGVkIiwKLSAgICBUZW1wb3Jh
cnlVSVNvdXJjZUNvZGVBZGRlZDogIlRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkIiwKLSAgICBU
ZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkOiAiVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3Zl
ZCIsCiAgICAgVUlTb3VyY2VDb2RlUmVtb3ZlZDogIlVJU291cmNlQ29kZVJlbW92ZWQiCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNl
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMKaW5k
ZXggNmZmNDExN2IyNDczNDk0OTM2OGI3NGZlYmMxYjhkMjZkZWQ4Mzk2ZC4uNTk4MDhlMDhlZjgy
YzlhMzU1NjZhM2MwMWU5YmNjMTFmZDk1YzRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMKQEAgLTM0LDI1ICszNCwxNiBAQAogV2ViSW5z
cGVjdG9yLldvcmtzcGFjZUNvbnRyb2xsZXIgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCiB7CiAgICAg
dGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlOwotICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRy
ZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5F
dmVudFR5cGVzLk1haW5GcmFtZU5hdmlnYXRlZCwgdGhpcy5fbWFpbkZyYW1lTmF2aWdhdGVkLCB0
aGlzKTsKLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZUFkZGVkLCB0
aGlzLl9mcmFtZUFkZGVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRU
eXBlcy5JbnNwZWN0ZWRVUkxDaGFuZ2VkLCB0aGlzLl9pbnNwZWN0ZWRVUkxDaGFuZ2VkLCB0aGlz
KTsKIH0KIAogV2ViSW5zcGVjdG9yLldvcmtzcGFjZUNvbnRyb2xsZXIucHJvdG90eXBlID0gewot
ICAgIF9tYWluRnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfaW5zcGVjdGVkVVJM
Q2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuUmV2
aXNpb24uZmlsdGVyT3V0U3RhbGVSZXZpc2lvbnMoKTsKLSAgICAgICAgdGhpcy5fd29ya3NwYWNl
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Q
cm9qZWN0V2lsbFJlc2V0LCB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgpKTsKLSAgICAgICAgdGhp
cy5fd29ya3NwYWNlLnByb2plY3QoKS5yZXNldCgpOwotICAgICAgICB0aGlzLl93b3Jrc3BhY2Uu
cmVzZXQoKTsKLSAgICAgICAgdGhpcy5fd29ya3NwYWNlLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0RGlkUmVzZXQsIHRoaXMuX3dv
cmtzcGFjZS5wcm9qZWN0KCkpOwotICAgIH0sCi0KLSAgICBfZnJhbWVBZGRlZDogZnVuY3Rpb24o
ZXZlbnQpCi0gICAgewotICAgICAgICB2YXIgZnJhbWUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVGcmFtZX0gKi8gKGV2ZW50LmRhdGEpOwotICAgICAgICBpZiAoZnJhbWUu
aXNNYWluRnJhbWUoKSkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5SZXZpc2lvbi5maWx0ZXJP
dXRTdGFsZVJldmlzaW9ucygpOwogICAgIH0KIH0KIApAQCAtODIsNyArNzMsOCBAQCBXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlUHJvdmlkZXIgPSBmdW5jdGlvbigpIHsgfQogCiBXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlUHJvdmlkZXIuRXZlbnRzID0gewogICAgIEZpbGVBZGRlZDogIkZpbGVBZGRlZCIs
Ci0gICAgRmlsZVJlbW92ZWQ6ICJGaWxlUmVtb3ZlZCIKKyAgICBGaWxlUmVtb3ZlZDogIkZpbGVS
ZW1vdmVkIiwKKyAgICBSZXNldDogIlJlc2V0IiwKIH0KIAogV2ViSW5zcGVjdG9yLldvcmtzcGFj
ZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKQEAgLTEzMCwyMyArMTIyLDI4IEBAIFdlYkluc3BlY3Rv
ci53b3Jrc3BhY2VDb250cm9sbGVyID0gbnVsbDsKIAogLyoqCiAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2V9IHdvcmtzcGFjZQorICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZVByb3ZpZGVyfSB3b3Jrc3BhY2VQcm92aWRlcgog
ICogQGNvbnN0cnVjdG9yCiAgKi8KLVdlYkluc3BlY3Rvci5Qcm9qZWN0ID0gZnVuY3Rpb24od29y
a3NwYWNlLCB3b3Jrc3BhY2VQcm92aWRlcikKK1dlYkluc3BlY3Rvci5Qcm9qZWN0ID0gZnVuY3Rp
b24od29ya3NwYWNlLCBuYW1lLCB3b3Jrc3BhY2VQcm92aWRlcikKIHsKKyAgICB0aGlzLl9uYW1l
ID0gbmFtZTsKICAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0gW107CiAgICAgdGhpcy5fd29ya3Nw
YWNlID0gd29ya3NwYWNlOwogICAgIHRoaXMuX3dvcmtzcGFjZVByb3ZpZGVyID0gd29ya3NwYWNl
UHJvdmlkZXI7CiAgICAgdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuV29ya3NwYWNlUHJvdmlkZXIuRXZlbnRzLkZpbGVBZGRlZCwgdGhpcy5fZmls
ZUFkZGVkLCB0aGlzKTsKICAgICB0aGlzLl93b3Jrc3BhY2VQcm92aWRlci5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92aWRlci5FdmVudHMuRmlsZVJlbW92ZWQsIHRo
aXMuX2ZpbGVSZW1vdmVkLCB0aGlzKTsKKyAgICB0aGlzLl93b3Jrc3BhY2VQcm92aWRlci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92aWRlci5FdmVudHMuUmVzZXQs
IHRoaXMuX3Jlc2V0LCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBl
ID0gewotICAgIHJlc2V0OiBmdW5jdGlvbigpCisgICAgLyoqCisgICAgICogQHJldHVybiB7c3Ry
aW5nfQorICAgICAqLworICAgIG5hbWU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMu
X3dvcmtzcGFjZVByb3ZpZGVyLnJlc2V0KCk7Ci0gICAgICAgIHRoaXMuX3VpU291cmNlQ29kZXMg
PSBbXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7CiAgICAgfSwKIAogICAgIF9maWxlQWRk
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMTc0LDYgKzE3MSwxMiBAQCBXZWJJbnNwZWN0b3IuUHJv
amVjdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNv
dXJjZUNvZGVSZW1vdmVkLCB1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKKyAgICBfcmVzZXQ6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwg
dGhpcyk7CisgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSBbXTsKKyAgICB9LAorCiAgICAg
LyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAogICAgICAqIEByZXR1cm4gez9XZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlfQpAQCAtMjQ3LDE2ICsyNTAsMTMgQEAgV2ViSW5zcGVjdG9yLlBy
b2plY3QucHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0b3IuV29ya3NwYWNlID0gZnVuY3Rp
b24oKQogewotICAgIC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5Db250
ZW50UHJvdmlkZXI+fSAqLwotICAgIHRoaXMuX3RlbXBvcmFyeUNvbnRlbnRQcm92aWRlcnMgPSB7
fTsKLSAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlPn0gKi8KLSAgICB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVzID0ge307CisgICAgLyoq
IEB0eXBlIHshT2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5Qcm9qZWN0Pn0gKi8KKyAgICB0
aGlzLl9wcm9qZWN0cyA9IHt9OwogfQogCiBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cyA9
IHsKICAgICBVSVNvdXJjZUNvZGVDb250ZW50Q29tbWl0dGVkOiAiVUlTb3VyY2VDb2RlQ29udGVu
dENvbW1pdHRlZCIsCi0gICAgUHJvamVjdFdpbGxSZXNldDogIlByb2plY3RXaWxsUmVzZXQiLAot
ICAgIFByb2plY3REaWRSZXNldDogIlByb2plY3REaWRSZXNldCIKKyAgICBQcm9qZWN0V2lsbFJl
c2V0OiAiUHJvamVjdFdpbGxSZXNldCIKIH0KIAogV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90
b3R5cGUgPSB7CkBAIC0yNjYsNyArMjY2LDcgQEAgV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90
b3R5cGUgPSB7CiAgICAgICovCiAgICAgdWlTb3VyY2VDb2RlRm9yVVJMOiBmdW5jdGlvbih1cmwp
CiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdC51aVNvdXJjZUNvZGVGb3JVUkwo
dXJsKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2plY3RzWyJuZXR3b3JrIl0udWlTb3VyY2VD
b2RlRm9yVVJMKHVybCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMjc1LDYxICsyNzUsNjcgQEAg
V2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgdWlTb3Vy
Y2VDb2RlRm9yVVJJOiBmdW5jdGlvbih1cmkpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5f
dGVtcG9yYXJ5VUlTb3VyY2VDb2Rlc1t1cmldIHx8IHRoaXMuX3Byb2plY3QudWlTb3VyY2VDb2Rl
Rm9yVVJJKHVyaSk7CisgICAgICAgIGZvciAodmFyIHByb2plY3ROYW1lIGluIHRoaXMuX3Byb2pl
Y3RzKSB7CisgICAgICAgICAgICB2YXIgcHJvamVjdCA9IHRoaXMuX3Byb2plY3RzW3Byb2plY3RO
YW1lXTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBwcm9qZWN0LnVpU291cmNlQ29k
ZUZvclVSSSh1cmkpOworICAgICAgICAgICAgaWYgKHVpU291cmNlQ29kZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdWlTb3VyY2VDb2RlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxs
OwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvamVjdE5hbWUK
ICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92aWRlcn0gd29ya3NwYWNl
UHJvdmlkZXIKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUHJvamVjdH0KICAgICAgKi8K
ICAgICBhZGRQcm9qZWN0OiBmdW5jdGlvbihwcm9qZWN0TmFtZSwgd29ya3NwYWNlUHJvdmlkZXIp
CiAgICAgewotICAgICAgICAvLyBGSVhNRTogc3VwcG9ydCBtdWx0aXBsZSBwcm9qZWN0cyBpZGVu
dGlmaWVkIGJ5IHByb2plY3QgbmFtZS4KLSAgICAgICAgdGhpcy5fcHJvamVjdCA9IG5ldyBXZWJJ
bnNwZWN0b3IuUHJvamVjdCh0aGlzLCB3b3Jrc3BhY2VQcm92aWRlcik7CisgICAgICAgIHRoaXMu
X3Byb2plY3RzW3Byb2plY3ROYW1lXSA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvamVjdCh0aGlzLCBw
cm9qZWN0TmFtZSwgd29ya3NwYWNlUHJvdmlkZXIpOworICAgICAgICByZXR1cm4gdGhpcy5fcHJv
amVjdHNbcHJvamVjdE5hbWVdOwogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0
cmluZ30gcHJvamVjdE5hbWUKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUHJvamVjdH0K
ICAgICAgKi8KLSAgICBwcm9qZWN0OiBmdW5jdGlvbigpCisgICAgcHJvamVjdDogZnVuY3Rpb24o
cHJvamVjdE5hbWUpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdDsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX3Byb2plY3RzW3Byb2plY3ROYW1lXTsKICAgICB9LAogCiAgICAgLyoq
Ci0gICAgICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQorICAg
ICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuUHJvamVjdD59CiAgICAgICovCi0gICAg
dWlTb3VyY2VDb2RlczogZnVuY3Rpb24oKQorICAgIHByb2plY3RzOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdC51aVNvdXJjZUNvZGVzKCk7CisgICAgICAg
IHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX3Byb2plY3RzKTsKICAgICB9LAogCiAgICAgLyoq
Ci0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVyaQotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwK
LSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9IGNvbnRlbnRQcm92
aWRlcgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNFZGl0YWJsZQotICAgICAqIEBwYXJhbSB7
Ym9vbGVhbj19IGlzQ29udGVudFNjcmlwdAorICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlPn0KICAgICAgKi8KLSAgICBhZGRUZW1wb3JhcnlVSVNvdXJjZUNv
ZGU6IGZ1bmN0aW9uKHVyaSwgdXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUsIGlzQ29u
dGVudFNjcmlwdCkKKyAgICB1aVNvdXJjZUNvZGVzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUodGhpcywg
dXJpLCB1cmwsIGNvbnRlbnRQcm92aWRlci5jb250ZW50VHlwZSgpLCBpc0VkaXRhYmxlKTsKLSAg
ICAgICAgdGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyc1t1cmldID0gY29udGVudFByb3Zp
ZGVyOwotICAgICAgICB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVzW3VyaV0gPSB1aVNvdXJj
ZUNvZGU7Ci0gICAgICAgIHVpU291cmNlQ29kZS5pc0NvbnRlbnRTY3JpcHQgPSBpc0NvbnRlbnRT
Y3JpcHQ7Ci0gICAgICAgIHVpU291cmNlQ29kZS5pc1RlbXBvcmFyeSA9IHRydWU7Ci0gICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQ
cm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZSk7
Ci0gICAgICAgIHJldHVybiB1aVNvdXJjZUNvZGU7CisgICAgICAgIHZhciByZXN1bHQgPSBbXTsK
KyAgICAgICAgZm9yICh2YXIgcHJvamVjdE5hbWUgaW4gdGhpcy5fcHJvamVjdHMpIHsKKyAgICAg
ICAgICAgIHZhciBwcm9qZWN0ID0gdGhpcy5fcHJvamVjdHNbcHJvamVjdE5hbWVdOworICAgICAg
ICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChwcm9qZWN0LnVpU291cmNlQ29kZXMoKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9LAogCiAgICAgLyoqCi0gICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKKyAgICAg
KiBAcmV0dXJuIHs/V2ViSW5zcGVjdG9yLlByb2plY3R9CiAgICAgICovCi0gICAgcmVtb3ZlVGVt
cG9yYXJ5VUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCisgICAgcHJvamVjdEZv
clVJU291cmNlQ29kZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgZGVs
ZXRlIHRoaXMuX3RlbXBvcmFyeUNvbnRlbnRQcm92aWRlcnNbdWlTb3VyY2VDb2RlLnVyaSgpXTsK
LSAgICAgICAgZGVsZXRlIHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZXNbdWlTb3VyY2VDb2Rl
LnVyaSgpXTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1v
dmVkLCB1aVNvdXJjZUNvZGUpOworICAgICAgICBmb3IgKHZhciBwcm9qZWN0TmFtZSBpbiB0aGlz
Ll9wcm9qZWN0cykgeworICAgICAgICAgICAgdmFyIHByb2plY3QgPSB0aGlzLl9wcm9qZWN0c1tw
cm9qZWN0TmFtZV07CisgICAgICAgICAgICBpZiAocHJvamVjdC51aVNvdXJjZUNvZGVGb3JVUkko
dWlTb3VyY2VDb2RlLnVyaSgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvamVjdDsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9LAogCiAgICAgLyoqCkBAIC0zMzgs
MTIgKzM0NCw4IEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlID0gewogICAgICAq
LwogICAgIHJlcXVlc3RGaWxlQ29udGVudDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBjYWxsYmFj
aykKICAgICB7Ci0gICAgICAgIHZhciB0ZW1wb3JhcnlDb250ZW50UHJvdmlkZXIgPSB0aGlzLl90
ZW1wb3JhcnlDb250ZW50UHJvdmlkZXJzW3VpU291cmNlQ29kZS51cmkoKV07Ci0gICAgICAgIGlm
ICh0ZW1wb3JhcnlDb250ZW50UHJvdmlkZXIpIHsKLSAgICAgICAgICAgIHRlbXBvcmFyeUNvbnRl
bnRQcm92aWRlci5yZXF1ZXN0Q29udGVudChjYWxsYmFjayk7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fcHJvamVjdC5yZXF1ZXN0RmlsZUNvbnRlbnQodWlT
b3VyY2VDb2RlLnVyaSgpLCBjYWxsYmFjayk7CisgICAgICAgIHZhciBwcm9qZWN0ID0gdGhpcy5w
cm9qZWN0Rm9yVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgIHByb2plY3QucmVx
dWVzdEZpbGVDb250ZW50KHVpU291cmNlQ29kZS51cmkoKSwgY2FsbGJhY2spOwogICAgIH0sCiAK
ICAgICAvKioKQEAgLTM1Myw5ICszNTUsOCBAQCBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3Rv
dHlwZSA9IHsKICAgICAgKi8KICAgICBzZXRGaWxlQ29udGVudDogZnVuY3Rpb24odWlTb3VyY2VD
b2RlLCBuZXdDb250ZW50LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90ZW1w
b3JhcnlDb250ZW50UHJvdmlkZXJzW3VpU291cmNlQ29kZS51cmkoKV0pCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIHRoaXMuX3Byb2plY3Quc2V0RmlsZUNvbnRlbnQodWlTb3VyY2VDb2Rl
LnVybCwgbmV3Q29udGVudCwgY2FsbGJhY2spOworICAgICAgICB2YXIgcHJvamVjdCA9IHRoaXMu
cHJvamVjdEZvclVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOworICAgICAgICBwcm9qZWN0LnNl
dEZpbGVDb250ZW50KHVpU291cmNlQ29kZS51cmkoKSwgbmV3Q29udGVudCwgY2FsbGJhY2spOwog
ICAgIH0sCiAKICAgICAvKioKQEAgLTM2NywxOCArMzY4LDggQEAgV2ViSW5zcGVjdG9yLldvcmtz
cGFjZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc2VhcmNoSW5GaWxlQ29udGVudDogZnVu
Y3Rpb24odWlTb3VyY2VDb2RlLCBxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJh
Y2spCiAgICAgewotICAgICAgICB2YXIgdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyID0gdGhpcy5f
dGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyc1t1aVNvdXJjZUNvZGUudXJpKCldOwotICAgICAgICBp
ZiAodGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyKSB7Ci0gICAgICAgICAgICB0ZW1wb3JhcnlDb250
ZW50UHJvdmlkZXIuc2VhcmNoSW5Db250ZW50KHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4
LCBjYWxsYmFjayk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdGhp
cy5fcHJvamVjdC5zZWFyY2hJbkZpbGVDb250ZW50KHVpU291cmNlQ29kZS51cmkoKSwgcXVlcnks
IGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKTsKLSAgICB9LAotCi0gICAgcmVzZXQ6
IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3RlbXBvcmFyeUNvbnRlbnRQcm92aWRl
cnMgPSB7fTsKLSAgICAgICAgdGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2RlcyA9IHt9OworICAg
ICAgICB2YXIgcHJvamVjdCA9IHRoaXMucHJvamVjdEZvclVJU291cmNlQ29kZSh1aVNvdXJjZUNv
ZGUpOworICAgICAgICBwcm9qZWN0LnNlYXJjaEluRmlsZUNvbnRlbnQodWlTb3VyY2VDb2RlLnVy
aSgpLCBxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spOwogICAgIH0sCiAK
ICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKaW5kZXggMTNiODNmZTFkMDg2
ZWRhMDA0NWRlNzFkOGEwMjI2ZTJlMDZjMDQ1ZC4uMjIyMzhjMTQ4YTJkMjU0Zjg5ZDE2NGIyMTVi
ZTM4YjBhODFkMzgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9leHRlcm5zLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
ZXh0ZXJucy5qcwpAQCAtMzEyLDMgKzMxMiwyMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZVVSTFJl
Z0V4cCA9ICIiOwogCiAvKiogQHR5cGUge2Jvb2xlYW59ICovCiB3aW5kb3cuZGlzcGF0Y2hTdGFu
ZGFsb25lVGVzdFJ1bm5lck1lc3NhZ2VzOworCisvKioKKyAqIEB0eXBlIHs/V2ViSW5zcGVjdG9y
LlByb2plY3R9CisgKi8KK1dlYkluc3BlY3Rvci5uZXR3b3JrUHJvamVjdCA9IG51bGw7CisvKioK
KyAqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLlByb2plY3R9CisgKi8KK1dlYkluc3BlY3Rvci5kZWJ1
Z2dlclByb2plY3QgPSBudWxsOworCisvKioKKyAqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLlByb2pl
Y3R9CisgKi8KK1dlYkluc3BlY3Rvci5zbmlwcGV0c1Byb2plY3QgPSBudWxsOworCisvKioKKyAq
IEB0eXBlIHs/V2ViSW5zcGVjdG9yLlByb2plY3R9CisgKi8KK1dlYkluc3BlY3Rvci5saXZlRWRp
dFByb2plY3QgPSBudWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcwppbmRleCA4NzQ2Y2I1OGRjMjNmYmEwZTEzNDg0Mzk0YmI3ZTJjYzkzMTNm
ZTQxLi4yYTA5M2E3YWQyODVmNmIyYzlkM2FmNGRkZDdjNDEzZTVjOWMwMTAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtNDMwLDE5
ICs0MzAsMjQgQEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0aWVzID0g
ZnVuY3Rpb24oKQogICAgIHRoaXMub3BlbkFuY2hvckxvY2F0aW9uUmVnaXN0cnkgPSBuZXcgV2Vi
SW5zcGVjdG9yLkhhbmRsZXJSZWdpc3RyeShvcGVuQW5jaG9yTG9jYXRpb25TZXR0aW5nKTsKICAg
ICB0aGlzLm9wZW5BbmNob3JMb2NhdGlvblJlZ2lzdHJ5LnJlZ2lzdGVySGFuZGxlcihhdXRvc2Vs
ZWN0UGFuZWwsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0pOwogCi0gICAgdGhpcy5uZXR3
b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlcigpOwogICAgIHRoaXMud29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UoKTsKLSAgICB0aGlzLmRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIodGhpcy53b3Jrc3BhY2UpOwotICAgIHRoaXMu
d29ya3NwYWNlLmFkZFByb2plY3QoIm5ldHdvcmsiLCB0aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92
aWRlcik7CisgICAgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcigpOworICAgIHRoaXMubmV0d29ya1Byb2plY3Qg
PSB0aGlzLndvcmtzcGFjZS5hZGRQcm9qZWN0KCJuZXR3b3JrIiwgdGhpcy5uZXR3b3JrV29ya3Nw
YWNlUHJvdmlkZXIpOworICAgIHRoaXMuZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlcigpOworICAgIHRoaXMuZGVidWdn
ZXJQcm9qZWN0ID0gdGhpcy53b3Jrc3BhY2UuYWRkUHJvamVjdCgiZGVidWdnZXIiLCB0aGlzLmRl
YnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIpOworICAgIHRoaXMuc25pcHBldFdvcmtzcGFjZVByb3Zp
ZGVyID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlcigp
OworICAgIHRoaXMuc25pcHBldHNQcm9qZWN0ID0gdGhpcy53b3Jrc3BhY2UuYWRkUHJvamVjdCgi
c25pcHBldHMiLCB0aGlzLnNuaXBwZXRXb3Jrc3BhY2VQcm92aWRlcik7CiAgICAgdGhpcy53b3Jr
c3BhY2VDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VDb250cm9sbGVyKHRo
aXMud29ya3NwYWNlKTsKIAogICAgIHRoaXMuYnJlYWtwb2ludE1hbmFnZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5icmVha3BvaW50
cywgdGhpcy5kZWJ1Z2dlck1vZGVsLCB0aGlzLndvcmtzcGFjZSk7CiAKLSAgICB0aGlzLnNjcmlw
dFNuaXBwZXRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsKHRoaXMu
d29ya3NwYWNlLCB0aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CisgICAgdGhpcy5zY3Jp
cHRTbmlwcGV0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbCh0aGlz
LndvcmtzcGFjZSwgdGhpcy5zbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIpOwogICAgIG5ldyBXZWJJ
bnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nKHRoaXMud29ya3NwYWNlLCB0aGlzLmRlYnVn
Z2VyV29ya3NwYWNlUHJvdmlkZXIsIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKLSAg
ICB0aGlzLmxpdmVFZGl0U3VwcG9ydCA9IG5ldyBXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTdXBwb3J0
KHRoaXMud29ya3NwYWNlKTsKKyAgICB0aGlzLmxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLkxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIoKTsKKyAgICB0aGlzLmxp
dmVFZGl0UHJvamVjdCA9IHRoaXMud29ya3NwYWNlLmFkZFByb2plY3QoImxpdmVlZGl0IiwgdGhp
cy5saXZlRWRpdFdvcmtzcGFjZVByb3ZpZGVyKTsKKyAgICB0aGlzLmxpdmVFZGl0U3VwcG9ydCA9
IG5ldyBXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTdXBwb3J0KHRoaXMud29ya3NwYWNlLCB0aGlzLmxp
dmVFZGl0V29ya3NwYWNlUHJvdmlkZXIpOwogICAgIHRoaXMuc3R5bGVDb250ZW50QmluZGluZyA9
IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVDb250ZW50QmluZGluZyh0aGlzLmNzc01vZGVsKTsKLSAg
ICBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlcih0aGlzLndvcmtz
cGFjZSwgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOworICAgIHRoaXMubmV0d29ya1VJ
U291cmNlQ29kZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2Rl
UHJvdmlkZXIodGhpcy53b3Jrc3BhY2UsIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsK
ICAgICBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlc1NvdXJjZU1hcHBpbmcodGhpcy53b3Jrc3BhY2Up
OwogICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5zYXNzLmlzRW5hYmxl
ZCgpKQogICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLlNBU1NTb3VyY2VNYXBwaW5nKHRoaXMud29y
a3NwYWNlLCB0aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjVjMTIwNzUx
ZTI5YWRkNmVlMzU0NjM5M2ZjZDAwNTE3Zjc1ZmNlYi4uYWUyODAwYzk0YjdhMzlhODAwOWNlZGQ3
M2Q3ZjVjMDUzYTRhNmNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAxLTA5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFdvcmtzcGFjZSBzaG91bGQgc3VwcG9ydCBzZXZlcmFsIHByb2plY3RzIGFuZCBzaG91bGQg
bm90IGhhdmUgdGVtcG9yYXJ5IFVJU291cmNlQ29kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQv
ZHluYW1pYy1zY3JpcHRzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29t
cGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50Lmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanM6CisgICAgICAgIChpbml0
aWFsaXplX1dvcmtzcGFjZVRlc3QuSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1t
YXBwaW5nLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0
LW1vZGVsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
LXNuaXBwZXQtbW9kZWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
cy1wYW5lbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dHMtcGFuZWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9u
cy5odG1sOgorCiAyMDEzLTAxLTA4ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNv
bT4KIAogICAgICAgICBVc2Ugd2luZG93LldlYktpdFNoYWRvd1Jvb3QgZm9yIGNoZWNraW5nIHdo
ZXRoZXIgYSBub2RlIGlzIHNoYWRvdyByb290IG9yIG5vdC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZHluYW1pYy1zY3JpcHRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2R5bmFtaWMtc2NyaXB0cy5o
dG1sCmluZGV4IGFlNzg5NjVkNGFjMGE3MzhkZTIyZTc2MmIyZjgyZTgwMDkzZTljYzguLmUxNjk4
MjQ5ZWM0NmFjMjUyYjdiNmU5YzEyNzE3MzZmNGFhNmJkMjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZHluYW1pYy1zY3JpcHRzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5hbWljLXNjcmlw
dHMuaHRtbApAQCAtNTEsNyArNTEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBmdW5jdGlvbiBz
dGVwMygpCiAgICAgewogICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
KCJzY3JpcHRzIik7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gV2ViSW5zcGVjdG9yLndv
cmtzcGFjZS51aVNvdXJjZUNvZGVzKCk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gV2Vi
SW5zcGVjdG9yLm5ldHdvcmtQcm9qZWN0LnVpU291cmNlQ29kZXMoKTsKICAgICAgICAgdmFyIHVy
bHMgPSB1aVNvdXJjZUNvZGVzLm1hcChmdW5jdGlvbih1aVNvdXJjZUNvZGUpIHsgcmV0dXJuIHVp
U291cmNlQ29kZS5wYXJzZWRVUkwubGFzdFBhdGhDb21wb25lbnQ7IH0pOwogICAgICAgICB1cmxz
LnNvcnQoKTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbAppbmRleCAzMzBhNjgz
NWIyYjA5YmMxODI2NjFmZGRhZWRkZjI3NDlhYTRlOTUxLi5hZWNhZjI5OTYwZjVhOWRlZTc2ZDky
ZjdmODY1ZmYyZmE3YTZkM2MzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwKQEAgLTE0Nyw3
ICsxNDcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEo
KQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldv
cmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJjZUNv
ZGVBZGRlZCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNl
VUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKICAgICAg
ICAgICAgICAgICBzY3JpcHQgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2soImNvbXBp
bGVkLmpzIiwgMCwgMCwgdHJ1ZSwgIiIpOwogICAgICAgICAgICAgICAgIHNjcmlwdC5zb3VyY2VN
YXBVUkwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvc291cmNl
LW1hcC5qc29uIjsKICAgICAgICAgICAgICAgICBkZWZhdWx0U2NyaXB0TWFwcGluZy5hZGRTY3Jp
cHQoc2NyaXB0KTsKQEAgLTIxNSw3ICsyMTUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkRXZl
bnQoZnVuY3Rpb24oKSB7IH0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZv
cldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQoZnVuY3Rpb24oKSB7IH0pOwogICAgICAg
ICAgICAgICAgIHNjcmlwdCA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jaygiY29tcGls
ZWQuanMiLCAwLCAwLCB0cnVlLCAiIik7CiAgICAgICAgICAgICAgICAgc2NyaXB0LnNvdXJjZU1h
cFVSTCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9zb3VyY2Ut
bWFwLmpzb24iOwogICAgICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLmFkZFNjcmlw
dChzY3JpcHQpOwpAQCAtMjc4LDcgKzI3OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAg
ICAgICAgICJzb3VyY2VzQ29udGVudCI6WyI8c291cmNlIGNvbnRlbnQ+Il0KICAgICAgICAgICAg
IH07CiAgICAgICAgICAgICBzY3JpcHQuc291cmNlTWFwVVJMID0gImRhdGE6YXBwbGljYXRpb24v
anNvbjtiYXNlNjQsIiArIGJ0b2EoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNvdXJjZUNvZGVB
ZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJ
U291cmNlQ29kZUFkZGVkKTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gb3JpZ2luYWxVSVNvdXJj
ZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUpCiAgICAgICAgICAgICB7CkBAIC0zMDksMTAgKzMwOSwx
MSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LnNldHRpbmdzLnNvdXJjZU1hcHNFbmFibGVkLnNldCh0cnVlKTsKICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLl9yZXNldCgpOwotICAgICAgICAgICAgdmFyIG5ldHdvcmtX
b3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyKCk7CiAgICAgICAgICAgICB2YXIgd29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jr
c3BhY2UoKTsKLSAgICAgICAgICAgIHZhciBkZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyID0gbmV3
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSk7CisgICAg
ICAgICAgICB2YXIgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5O
ZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKICAgICAgICAgICAgIHdvcmtzcGFjZS5hZGRQcm9q
ZWN0KCJuZXR3b3JrIiwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKKyAgICAgICAgICAgIHZh
ciBkZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldv
cmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSk7CisgICAgICAgICAgICB3b3Jrc3BhY2UuYWRkUHJv
amVjdCgiZGVidWdnZXIiLCBkZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyKTsKICAgICAgICAgICAg
IHZhciBkZWJ1Z2dlclNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2Ny
aXB0TWFwcGluZyh3b3Jrc3BhY2UsIGRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIsIG5ldHdvcmtX
b3Jrc3BhY2VQcm92aWRlcik7CiAKICAgICAgICAgICAgIHZhciBzY3JpcHQgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZVNjcmlwdE1vY2soImNvbXBpbGVkLmpzIiwgMCwgMCwgdHJ1ZSwgIiIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3Jr
LXJlcXVlc3QtcmV2aXNpb24tY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXJlcXVlc3QtcmV2aXNpb24tY29udGVudC5odG1sCmlu
ZGV4IDE1NTNjNGFiNjIwNGQyMTNkYzhhNjI2NGNhMGJkZmUxNzNlMWFiM2UuLjY1OTBjZDM4NmM5
ZDU3ZjQwOWEyNjE4NGFkZmZkNDU4ZDI0NGVkZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRl
bnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25l
dHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50Lmh0bWwKQEAgLTE5LDYgKzE5LDkgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgdmFyIHJlc291cmNlOwogICAgIGZ1bmN0aW9uIHN0ZXAyKGV2ZW50
KQogICAgIHsKKyAgICAgICAgdmFyIGV2ZW50VUlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YTsKKyAg
ICAgICAgaWYgKGV2ZW50VUlTb3VyY2VDb2RlLnVybC5pbmRleE9mKCJzdHlsZS5jc3MiKSA9PSAt
MSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0
b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsi
KS5yZXF1ZXN0cy5sZW5ndGggLSAxXTsKICAgICAgICAgdWlTb3VyY2VDb2RlID0gV2ViSW5zcGVj
dG9yLndvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkwocmVxdWVzdC51cmwpOwogICAgICAgICBp
ZiAoIXVpU291cmNlQ29kZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3Ivd29ya3NwYWNlLXRlc3QuanMKaW5kZXggNzQ2OWYzNjAyMGI0NjM5ZmUyOTlmYTk5NTRiZjVj
ZmJiOGQ1Yjk5OS4uNjMzZTVmMTVhZjJhOTliYzE3MDU1MTE0ZGM1YThjODY5MjA2OWJiZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3Qu
anMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3Qu
anMKQEAgLTMsMTQgKzMsMTMgQEAgdmFyIGluaXRpYWxpemVfV29ya3NwYWNlVGVzdCA9IGZ1bmN0
aW9uKCkgewogSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlOwogSW5zcGVjdG9yVGVzdC5jcmVh
dGVXb3Jrc3BhY2UgPSBmdW5jdGlvbigpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC50ZXN0TmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIoKTsKICAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVj
dG9yLldvcmtzcGFjZSgpOwotICAgIEluc3BlY3RvclRlc3QudGVzdERlYnVnZ2VyV29ya3NwYWNl
UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIoSW5z
cGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlKTsKKyAgICBJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3Jr
V29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92
aWRlcigpOwogICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5hZGRQcm9qZWN0KCJuZXR3
b3JrIiwgSW5zcGVjdG9yVGVzdC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKKyAgICBJ
bnNwZWN0b3JUZXN0LnRlc3REZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFj
ZSk7CisgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZFByb2plY3QoImRlYnVnZ2Vy
IiwgSW5zcGVjdG9yVGVzdC50ZXN0RGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlcik7CiAgICAgSW5z
cGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVjdG9yVGVz
dC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKICAgICBJbnNwZWN0
b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlbW92ZWQsIEluc3BlY3RvclRlc3Qu
X2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7Ci0gICAgSW5zcGVjdG9y
VGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVjdG9y
VGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQsIElu
c3BlY3RvclRlc3QuX2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7CiB9
CiAKIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQg
PSBmdW5jdGlvbihjYWxsYmFjaykKQEAgLTI2LDMyICsyNSw2IEBAIEluc3BlY3RvclRlc3Qud2Fp
dEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykK
ICAgICB9CiB9CiAKLUluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291
cmNlQ29kZUFkZGVkRXZlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykKLXsKLSAgICBJbnNwZWN0b3JU
ZXN0LnRlc3RXb3Jrc3BhY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlUHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkLCBJbnNwZWN0
b3JUZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwotICAgIElu
c3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWQsIHRl
bXBvcmFyeVVJU291cmNlQ29kZUFkZGVkKTsKLQotICAgIGZ1bmN0aW9uIHRlbXBvcmFyeVVJU291
cmNlQ29kZUFkZGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29y
a3NwYWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3Zp
ZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCwgdGVtcG9yYXJ5VUlTb3VyY2VD
b2RlQWRkZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFy
eVVJU291cmNlQ29kZUFkZGVkLCBJbnNwZWN0b3JUZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJv
dmlkZXJFdmVudEhhbmRsZXIpOwotICAgICAgICBjYWxsYmFjayhldmVudC5kYXRhKTsKLSAgICB9
Ci19Ci0KLUluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29k
ZVJlbW92ZWRFdmVudCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotewotICAgIEluc3BlY3RvclRlc3Qu
dGVzdFdvcmtzcGFjZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGVQcm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZCwgSW5zcGVjdG9y
VGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQsIHRl
bXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQpOwotCi0gICAgZnVuY3Rpb24gdGVtcG9yYXJ5VUlT
b3VyY2VDb2RlUmVtb3ZlZChldmVudCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QudGVz
dFdvcmtzcGFjZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQ
cm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZCwgdGVtcG9yYXJ5VUlT
b3VyY2VDb2RlUmVtb3ZlZCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMu
VGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVsdFVJU291
cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICAgICAgY2FsbGJhY2soZXZlbnQuZGF0
YSk7Ci0gICAgfQotfQotCiBJbnNwZWN0b3JUZXN0LmFkZE1vY2tVSVNvdXJjZUNvZGVUb1dvcmtz
cGFjZSA9IGZ1bmN0aW9uKHVybCwgdHlwZSwgY29udGVudCkKIHsKICAgICB2YXIgaXNEb2N1bWVu
dCA9IHR5cGUgPT09IFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5o
dG1sCmluZGV4IDIzNjRhZTVjZWYzNzIyMDBmNjllOTNmNTAyMWIzZmJmYjM2NTkzZGEuLjZiMjY0
NmFjOTk5MmQ5ZTc5OTlkOTE1YzhjY2Y1YTc5N2U3ZjNmYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKQEAgLTEy
OCw3ICsxMjgsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgX2FkZFRlbXBvcmFyeVVJU291
cmNlQ29kZTogZnVuY3Rpb24odXJsKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUodGhpcywgInRlbXBvcmFyeToi
ICsgdXJsLCB1cmwsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgZmFsc2UpOwot
ICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmlzVGVtcG9yYXJ5ID0gdHJ1ZTsKICAgICAgICAgICAg
IHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5nKGRlZmF1bHRNYXBwaW5nKTsKICAgICAgICAg
ICAgIHVpU291cmNlQ29kZXNbdXJsXSA9IHVpU291cmNlQ29kZTsKICAgICAgICAgICAgIHRlbXBv
cmFyeVVJU291cmNlQ29kZXNbdXJsXSA9IHVpU291cmNlQ29kZTsKQEAgLTE1MSw3ICsxNTAsMTMg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgIFJlc2V0dGluZyB3b3Jrc3Bh
Y2UuIik7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0KTsKKyAgICAgICAgICAgIHZh
ciBzZWxmID0gdGhpczsKKyAgICAgICAgICAgIHZhciBtb2NrUHJvamVjdCA9IHt9OworICAgICAg
ICAgICAgbW9ja1Byb2plY3QudWlTb3VyY2VDb2RlcyA9IGZ1bmN0aW9uKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi51aVNvdXJjZUNvZGVzKCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCBtb2NrUHJvamVjdCk7CiAg
ICAgICAgIH0KICAgICB9CiAgICAgV29ya3NwYWNlTW9jay5wcm90b3R5cGUuX19wcm90b19fID0g
V2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLmh0bWwKaW5kZXggYjJjOTNlNTZkYmNmYTkx
NzYxMmU5OGZjN2Y4MjNlMzhlYWZiOWFjZC4uYjg3ZWIxMWZmZWE1NTIwYWMzNTZhYWM4MWUwMmVi
MjlhZjc0NTViNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5
bmFtaWMtc2NyaXB0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
eW5hbWljLXNjcmlwdHMuaHRtbApAQCAtNDgsNyArNDgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICBmdW5jdGlvbiBzdGVwMygpCiAgICAgewogICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0
b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gV2Vi
SW5zcGVjdG9yLndvcmtzcGFjZS51aVNvdXJjZUNvZGVzKCk7CisgICAgICAgIHZhciB1aVNvdXJj
ZUNvZGVzID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtQcm9qZWN0LnVpU291cmNlQ29kZXMoKTsKICAg
ICAgICAgdmFyIHVybHMgPSB1aVNvdXJjZUNvZGVzLm1hcChmdW5jdGlvbih1aVNvdXJjZUNvZGUp
IHsgcmV0dXJuIHVpU291cmNlQ29kZS5wYXJzZWRVUkwubGFzdFBhdGhDb21wb25lbnQ7IH0pOwog
ICAgICAgICB1cmxzLnNvcnQoKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dApp
bmRleCBiZjk0N2FjYjQ1MTdmMDgzYTIzMjdkZDQ2MGVkNDkyMjU1NWVjZjViLi41MWM4OWYwOTEw
OGQyZDE0ZDYyMWZlMTRhMDk0ZWQ2NDVjZjRjOGQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4
cGVjdGVkLnR4dApAQCAtOSw3ICs5LDcgQEAgU2V0dGluZyBicmVha3BvaW50OgogICAgIER1bXBp
bmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVl
CiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUu
anMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiBmYWxzZQorICAgICAgICB1cmw6IGVkaXQt
bWUuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogbmV0d29yawogRWRpdGluZyBzb3Vy
Y2U6CiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAg
IFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSB0cnVl
KQpAQCAtMTcsNyArMTcsNyBAQCBFZGl0aW5nIHNvdXJjZToKICAgICBEdW1waW5nIGJyZWFrcG9p
bnQgc3RvcmFnZQogICAgICAgICBlZGl0LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBp
bmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVt
YmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVO
dW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIFVuZG9pbmcgc291cmNlIGVkaXRpbmc6
CiAgICAgT3JpZ2luYWxUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIp
CiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQpAQCAtMjYs
NyArMjYsNyBAQCBVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOgogICAgIER1bXBpbmcgYnJlYWtwb2lu
dCBzdG9yYWdlCiAgICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGlu
ZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1i
ZXI6IDIsIGlzVGVtcG9yYXJ5OiBmYWxzZQorICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVO
dW1iZXI6IDIsIHByb2plY3QgbmFtZTogbmV0d29yawogRmluYWxseSByZW1vdmluZyBicmVha3Bv
aW50OgogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQpAQCAtMzgsNyArMzgsNyBAQCBTZXR0aW5nIGJy
ZWFrcG9pbnQ6CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1t
ZS5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0g
ICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IGZhbHNl
CisgICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBu
ZXR3b3JrCiBFZGl0aW5nIHNvdXJjZToKICAgICBPcmlnaW5hbFRleHRFZGl0b3IuYWRkQnJlYWtw
b2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKICAgICBUZXh0RWRpdG9yLnJl
bW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCkBAIC00Niw3ICs0Niw3IEBAIEVkaXRpbmcg
c291cmNlOgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgICAgIGVkaXQtbWUu
anM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAg
ICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisg
ICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1
Z2dlcgogQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlOgogICAgIE9yaWdpbmFsVGV4dEVkaXRvci5y
ZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJl
YWtwb2ludChsaW5lTnVtYmVyID0gMikKQEAgLTU1LDcgKzU1LDcgQEAgQ29tbWl0dGluZyBlZGl0
ZWQgc291cmNlOgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgICAgIGVkaXQt
bWUuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwot
ICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiBmYWxz
ZQorICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTog
bmV0d29yawogRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OgogICAgIFRleHRFZGl0b3IucmVt
b3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3Rv
cmFnZQpAQCAtNjcsNyArNjcsNyBAQCBTZXR0aW5nIGJyZWFrcG9pbnQ6CiAgICAgRHVtcGluZyBi
cmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKICAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS5qcywg
bGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IGZhbHNlCisgICAgICAgIHVybDogZWRpdC1tZS5q
cywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBuZXR3b3JrCiBFZGl0aW5nIHNvdXJjZToK
ICAgICBPcmlnaW5hbFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlz
YWJsZWQgPSBmYWxzZSkKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJl
ciA9IDIpCkBAIC03NSwxNyArNzUsMTcgQEAgRWRpdGluZyBzb3VyY2U6CiAgICAgRHVtcGluZyBi
cmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKICAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS5qcywg
bGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAgICAgdXJsOiBlZGl0LW1lLmpz
LCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBDb21taXR0aW5nIGVkaXRl
ZCBzb3VyY2U6CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1t
ZS5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0g
ICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUK
KyAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRl
YnVnZ2VyCiBFZGl0aW5nIHNvdXJjZSBhZ2FpbiBzbyB0aGF0IGxpdmUgZWRpdCBjb3VsZCBzdWNj
ZWVkOgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgICAgIGVkaXQtbWUuanM6
MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAg
ICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAg
ICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dl
cgogQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlIGFnYWluOgogICAgIE9yaWdpbmFsVGV4dEVkaXRv
ci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIFRleHRFZGl0b3IucmVtb3Zl
QnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKQEAgLTk0LDcgKzk0LDcgQEAgQ29tbWl0dGluZyBl
ZGl0ZWQgc291cmNlIGFnYWluOgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAg
ICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxv
Y2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9y
YXJ5OiBmYWxzZQorICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIHByb2pl
Y3QgbmFtZTogbmV0d29yawogRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OgogICAgIFRleHRF
ZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBEdW1waW5nIGJyZWFr
cG9pbnQgc3RvcmFnZQpAQCAtMTA2LDcgKzEwNiw3IEBAIFNldHRpbmcgYnJlYWtwb2ludDoKICAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgICAgICBlZGl0LW1lLmpzOjIsIGVuYWJs
ZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBl
ZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogZmFsc2UKKyAgICAgICAgdXJs
OiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IG5ldHdvcmsKIEVkaXRp
bmcgc291cmNlOgogICAgIE9yaWdpbmFsVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1i
ZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2lu
dChsaW5lTnVtYmVyID0gMikKQEAgLTExNCwxNyArMTE0LDE3IEBAIEVkaXRpbmcgc291cmNlOgog
ICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgICAgIGVkaXQtbWUuanM6MiwgZW5h
YmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6
IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVy
bDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgogQ29t
bWl0dGluZyBlZGl0ZWQgc291cmNlOgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAg
ICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50
IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVt
cG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgcHJv
amVjdCBuYW1lOiBkZWJ1Z2dlcgogVW5kb2luZyBzb3VyY2UgZWRpdGluZzoKICAgICBEdW1waW5n
IGJyZWFrcG9pbnQgc3RvcmFnZQogICAgICAgICBlZGl0LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQog
ICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLmpz
LCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6IGVkaXQtbWUu
anMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIENvbW1pdHRpbmcgZWRp
dGVkIHNvdXJjZSBhZ2FpbjoKICAgICBPcmlnaW5hbFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2lu
dChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51
bWJlciA9IDIpCkBAIC0xMzMsNyArMTMzLDcgQEAgQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlIGFn
YWluOgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgICAgIGVkaXQtbWUuanM6
MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAg
ICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiBmYWxzZQorICAg
ICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogbmV0d29y
awogRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OgogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJl
YWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQpA
QCAtMTQ4LDE1ICsxNDgsMTUgQEAgU2V0dGluZyBicmVha3BvaW50OgogICAgIFRleHRFZGl0b3Iu
YWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKICAgICBEdW1w
aW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMK
LSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAg
IHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBFZGl0aW5nIHNv
dXJjZToKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgIER1bXBpbmcgYnJlYWtw
b2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5
OiB0cnVlCisgICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVn
Z2VyCiBVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9y
YWdlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6ICwgbGlu
ZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6
IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIEZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoK
ICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgRHVt
cGluZyBicmVha3BvaW50IHN0b3JhZ2UKQEAgLTE3MSwxNSArMTcxLDE1IEBAIFNldHRpbmcgYnJl
YWtwb2ludDoKICAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRp
c2FibGVkID0gZmFsc2UpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICBEdW1w
aW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBp
c1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgcHJvamVjdCBu
YW1lOiBkZWJ1Z2dlcgogRWRpdGluZyBzb3VyY2U6CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0
b3JhZ2UKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogLCBs
aW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6ICwgbGluZU51bWJl
cjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgogVW5kb2luZyBzb3VyY2UgZWRpdGluZzoKICAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2Nh
dGlvbnMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisg
ICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBGaW5h
bGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50
KGxpbmVOdW1iZXIgPSAyKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9p
bnRzLmh0bWwKaW5kZXggZjA1MTNlMjI1YjUxYmRhZGE3NTRhYmE2Y2EwMjFjMTc5N2YzZjlmNS4u
ODdlY2Q2ZDZjYjQ5NDVmODcyNTExZDM0NGIwMzFjODY2MDU1NDBiZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMu
aHRtbApAQCAtNDEsNyArNDEsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBsb2NhdGlvbnMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciB1aUxv
Y2F0aW9uID0gbG9jYXRpb25zW2ldLnVpTG9jYXRpb247CiAgICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gdWlMb2NhdGlvbi51aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiICAgICAgICB1cmw6ICIgKyBwYXRoVG9GaWxlTmFtZSh1aVNvdXJjZUNv
ZGUudXJsKSArICIsIGxpbmVOdW1iZXI6ICIgKyB1aUxvY2F0aW9uLmxpbmVOdW1iZXIgKyAiLCBp
c1RlbXBvcmFyeTogIiArICEhdWlTb3VyY2VDb2RlLmlzVGVtcG9yYXJ5KTsKKyAgICAgICAgICAg
IHZhciBwcm9qZWN0ID0gV2ViSW5zcGVjdG9yLndvcmtzcGFjZS5wcm9qZWN0Rm9yVUlTb3VyY2VD
b2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
ICAgICAgICB1cmw6ICIgKyBwYXRoVG9GaWxlTmFtZSh1aVNvdXJjZUNvZGUudXJsKSArICIsIGxp
bmVOdW1iZXI6ICIgKyB1aUxvY2F0aW9uLmxpbmVOdW1iZXIgKyAiLCBwcm9qZWN0IG5hbWU6ICIg
KyBwcm9qZWN0Lm5hbWUoKSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1h
cHBpbmctZXhwZWN0ZWQudHh0CmluZGV4IGFhMzU4NGFkNzEwMDU3OTNjZjMwODg2NjVkNmFjMGFj
NWEyZjRiZjMuLjNkYWIyOWYyNWE4NDA3ODcwNjA4NjIyMjYxNTliZDJjZTNlNDJhNDggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFw
cGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jl
c291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgUnVubmlu
ZzogdGVzdFNjcmlwdFdpdGhQZW5kaW5nUmVzb3VyY2UKIEFkZGluZyBzY3JpcHQgZm9yIHBlbmRp
bmcgcmVxdWVzdC4KIFVJU291cmNlQ29kZTogZm9vLmpzCiBVSVNvdXJjZUNvZGUgaXMgZWRpdGFi
bGU6IGZhbHNlCi1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCitVSVNvdXJj
ZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IHRydWUKIE1pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0
CiBVSVNvdXJjZUNvZGUgY29udGVudDogPGNvbnRlbnQgc2NyaXB0IHNvdXJjZT4KIEFkZGluZyB1
aVNvdXJjZUNvZGUgZm9yIGZpbmlzaGVkIHJlc291cmNlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbApp
bmRleCAyNzA1OGIwYzllNzNjZDRmMDZiM2QzYTc1ZmQ0MmU5Y2ZjNTQzYmM1Li5mY2M0M2ZjYjY1
MDlmODY0NmQxZjZiNzgxNjBiNmI2NGVhOTJkNDQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbApA
QCAtMjksNyArMjksNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIHNjcmlwdCBmb3IgcGVuZGlu
ZyByZXF1ZXN0LiIpOwogICAgICAgICAgICAgICAgIHNjcmlwdCA9IEluc3BlY3RvclRlc3QuY3Jl
YXRlU2NyaXB0TW9jayh1cmwsIDAsIDAsIHRydWUsICI8Y29udGVudCBzY3JpcHQgc291cmNlPiIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFy
eVVJU291cmNlQ29kZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRk
ZWRFdmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKICAgICAgICAgICAgICAgICBkZWZh
dWx0U2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKICAgICAgICAgICAgICAgICByZXNv
dXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7CiAgICAgICAgICAgICAgICAgCkBA
IC00OSw3ICs0OSw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgZnVuY3Rpb24gc3Rl
cDIoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJBZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5pc2hlZCByZXNvdXJjZS4iKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNvdXJj
ZUNvZGVSZW1vdmVkRXZlbnQoZnVuY3Rpb24oKSB7IH0pOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQodWlTb3VyY2VD
b2RlQWRkZWQpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkTW9ja1VJU291cmNl
Q29kZVRvV29ya3NwYWNlKHVybCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCAi
PGNvbnRlbnQgc2NyaXB0IHJlc291cmNlIGNvbnRlbnQ+Iik7CiAKQEAgLTExMCw3ICsxMDksNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIGZpcnN0IHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0
LiIpOwogICAgICAgICAgICAgICAgIHNjcmlwdDEgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlw
dE1vY2sodXJsLCAwLCAxMCwgZmFsc2UsICI8c2NyaXB0IHNvdXJjZSAxPiIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29k
ZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmln
aW5hbFVJU291cmNlQ29kZUFkZGVkKTsKICAgICAgICAgICAgICAgICBkZWZhdWx0U2NyaXB0TWFw
cGluZy5hZGRTY3JpcHQoc2NyaXB0MSk7CiAgICAgICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRN
YXBwaW5nLmFkZFNjcmlwdChzY3JpcHQxKTsKICAgICAgICAgICAgICAgICAKQEAgLTEzMCw3ICsx
MjksNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIHNlY29uZCBzY3JpcHQgZm9yIHBlbmRpbmcg
cmVxdWVzdC4iKTsKICAgICAgICAgICAgICAgICBzY3JpcHQyID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVTY3JpcHRNb2NrKHVybCwgMCwgNDUsIGZhbHNlLCAiPHNjcmlwdCBzb3VyY2UgMj4iKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNv
dXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZl
bnQob3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCk7CiAgICAgICAgICAgICAgICAgZGVmYXVsdFNj
cmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdDIpOwogICAgICAgICAgICAgICAgIHJlc291cmNl
U2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0Mik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwtZXhw
ZWN0ZWQudHh0CmluZGV4IGU0ODNjOGU3MDJlYTMwZjQ5NWVjNjEyZDc1NmYwNDBkNGI3NmYxYTcu
LjBjZWU3Y2Y5YWQwZWY4ZGI0NGU3YzhjOTJjYzc3ODVjYzExZjczNzQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0
LW1vZGVsLWV4cGVjdGVkLnR4dApAQCAtMiwxMCArMiw5IEBAIFRlc3RzIHNjcmlwdCBzbmlwcGV0
IG1vZGVsLgogCiBEZWJ1Z2dlciB3YXMgZW5hYmxlZC4KIAotUnVubmluZzogdGVzdFdvcmtzcGFj
ZVJlc2V0CitSdW5uaW5nOiB0ZXN0Q3JlYXRlQW5kUmVuYW1lCiBTbmlwcGV0IGNyZWF0ZWQuCi1S
ZXNldHRpbmcgc25pcHBldCBzY3JpcHQgbWFwcGluZy4KLVNuaXBwZXQgdWlTb3VyY2VDb2RlIHdh
cyByZWNyZWF0ZWQuCitTbmlwcGV0IHVpU291cmNlQ29kZSB1cmwgaXMgY29ycmVjdC4KIAogUnVu
bmluZzogdGVzdEV2YWx1YXRlCiBMYXN0IGV2YWx1YXRpb24gc291cmNlIHVybCBmb3Igc25pcHBl
dDogc25pcHBldHM6Ly8vMV8xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC5odG1sCmluZGV4IDg1YmJlNzNhODAyNjAzODcx
YjNmMjhlMzliYzk1NmY0YjI3Mjc1MTUuLjc3Njk4NDY4Y2RhNDU5ZGNjZDUzOTM3MjBjMDQwYzUx
OTM1N2Q3OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHQtc25pcHBldC1tb2RlbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zY3JpcHQtc25pcHBldC1tb2RlbC5odG1sCkBAIC0xNCwzNCArMTQsMjUgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIHNuaXBwZXRzIGFyZSB0YWtlbiBvdXQg
b2YgZXhwZXJpbWVudHMuCiAgICAgV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Muc25p
cHBldHNTdXBwb3J0ID0ge307CiAgICAgV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Mu
c25pcHBldHNTdXBwb3J0LmlzRW5hYmxlZCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfTsK
LSAgICB2YXIgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3
b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKICAgICB2YXIgd29ya3NwYWNlID0gbmV3IFdlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2UoKTsKLSAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdCgibmV0d29yayIsIG5l
dHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CisgICAgdmFyIHNuaXBwZXRXb3Jrc3BhY2VQcm92aWRl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXIoKTsK
KyAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdCgic25pcHBldHMiLCBzbmlwcGV0V29ya3NwYWNlUHJv
dmlkZXIpOwogICAgIHZhciB3b3Jrc3BhY2VDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5X
b3Jrc3BhY2VDb250cm9sbGVyKHdvcmtzcGFjZSk7Ci0gICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNu
aXBwZXRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsKHdvcmtzcGFj
ZSwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKLSAgICAKKyAgICBXZWJJbnNwZWN0b3Iuc2Ny
aXB0U25pcHBldE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwod29y
a3NwYWNlLCBzbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIpOwogICAgIEluc3BlY3RvclRlc3QucnVu
RGVidWdnZXJUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0V29ya3NwYWNlUmVzZXQo
bmV4dCkKKyAgICAgICAgZnVuY3Rpb24gdGVzdENyZWF0ZUFuZFJlbmFtZShuZXh0KQogICAgICAg
ICB7CiAgICAgICAgICAgICByZXNldFNuaXBwZXRzU2V0dGluZ3MoKTsKICAgICAgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLmNyZWF0ZVNj
cmlwdFNuaXBwZXQoKTsKICAgICAgICAgICAgIHZhciBzbmlwcGV0TmFtZSA9ICJUZXN0U25pcHBl
dCIgKyBNYXRoLnJhbmRvbSgpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlNuaXBwZXQgY3JlYXRlZC4iKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zY3JpcHRTbmlw
cGV0TW9kZWwucmVuYW1lU2NyaXB0U25pcHBldCh1aVNvdXJjZUNvZGUsIHNuaXBwZXROYW1lKTsK
LSAgICAgICAgICAgIHdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFk
ZGVkKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXNldHRpbmcgc25p
cHBldCBzY3JpcHQgbWFwcGluZy4iKTsKLSAgICAgICAgICAgIHdvcmtzcGFjZUNvbnRyb2xsZXIu
X21haW5GcmFtZU5hdmlnYXRlZCgpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNv
ZGVBZGRlZChldmVudCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscygxLCB3b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpLmxlbmd0aCwgIk9u
bHkgb25lIHNuaXBwZXQgdWlTb3VyY2VDb2RlIHNob3VsZCBiZSBwcmVzZW50IGFmdGVyIHByb2pl
Y3QgbmF2aWdhdGlvbi4iKTsKLSAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gZXZl
bnQuZGF0YTsKLSAgICAgICAgICAgICAgICBpZiAodWlTb3VyY2VDb2RlLnVybC5pbmRleE9mKHNu
aXBwZXROYW1lKSA9PT0gLTEpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCB1aVNvdXJjZUNvZGUgd2Fz
IHJlY3JlYXRlZC4iKTsKLSAgICAgICAgICAgICAgICB3b3Jrc3BhY2UucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29k
ZUFkZGVkLCB1aVNvdXJjZUNvZGVBZGRlZCk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAg
ICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgd29y
a3NwYWNlLnVpU291cmNlQ29kZXMoKS5sZW5ndGgsICJPbmx5IG9uZSBzbmlwcGV0IHVpU291cmNl
Q29kZSBzaG91bGQgYmUgcHJlc2VudC4iKTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSB3b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpWzBdOworICAgICAgICAgICAgaWYgKHVpU291cmNl
Q29kZS51cmwuaW5kZXhPZihzbmlwcGV0TmFtZSkgPT09IC0xKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IHVpU291
cmNlQ29kZSB1cmwgaXMgY29ycmVjdC4iKTsKKyAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAg
fSwKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0RXZhbHVhdGUobmV4dCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4
dAppbmRleCBjZGI2ODJlMzYxNTdhZmY5Mzk0YmI5Y2UyMjc4ZWUwZWQ1Yzg0ODU5Li41YWMyMWNi
YTVkNGY1MzJkNjUwY2FjNjRmM2YyNmY4Y2QxMzZjYzBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0CkBA
IC0yMSw3ICsyMSw3IEBAIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgog
ICBiYXIuanMKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6
CiAKLVJ1bm5pbmc6IHRlc3RUZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZEFuZFJlbW92ZWQKK1J1
bm5pbmc6IHRlc3REZWJ1Z2dlclVJU291cmNlQ29kZUFkZGVkQW5kUmVtb3ZlZAogRHVtcGluZyBT
Y3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CiAgIGZvby5qcwogRHVtcGluZyBTY3JpcHRz
TmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCmluZGV4IGRmYTZiNzJjZGJjZDA4YzU4
ZTEyMjEzNzI3OTk5ZWUyZWQwYWFmZDUuLjk1ZDUyMzQwY2MzYzM1YzYzYWIxODBlMGU5NTRkMTdh
MDFmMTQxNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHRzLXBhbmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dHMtcGFuZWwuaHRtbApAQCAtMTksMTAgKzE5LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAg
ZnVuY3Rpb24gY3JlYXRlTW9ja1dvcmtzcGFjZSgpCiAgICAgewotICAgICAgICB2YXIgbmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIoKTsKICAgICAgICAgdmFyIHdvcmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3Nw
YWNlKCk7Ci0gICAgICAgIHdvcmtzcGFjZS5kZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyID0gbmV3
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSk7CisgICAg
ICAgIHZhciBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdv
cmtXb3Jrc3BhY2VQcm92aWRlcigpOwogICAgICAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdCgibmV0
d29yayIsIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CisgICAgICAgIHdvcmtzcGFjZS5kZWJ1
Z2dlcldvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtzcGFj
ZVByb3ZpZGVyKHdvcmtzcGFjZSk7CiAgICAgICAgIHdvcmtzcGFjZS5yZXF1ZXN0RmlsZUNvbnRl
bnQgPSBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGNhbGxiYWNrKQogICAgICAgICB7CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU291cmNlIHJlcXVlc3RlZCBmb3IgIiArIHVp
U291cmNlQ29kZS51cmwpOwpAQCAtNjgsNyArNjgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5fbmF2aWdh
dG9yKTsKIAotICAgICAgICAgICAgd29ya3NwYWNlQ29udHJvbGxlci5fbWFpbkZyYW1lTmF2aWdh
dGVkKCk7CisgICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLnJl
c2V0KCk7CiAgICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFk
ZE5ldHdvcmtGaWxlKCJiYXIuanMiLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmlnYXRvcik7
CiAKQEAgLTc2LDE0ICs3NiwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIG5leHQo
KTsKICAgICAgICAgfSwKIAotICAgICAgICBmdW5jdGlvbiB0ZXN0VGVtcG9yYXJ5VUlTb3VyY2VD
b2RlQWRkZWRBbmRSZW1vdmVkKG5leHQpCisgICAgICAgIGZ1bmN0aW9uIHRlc3REZWJ1Z2dlclVJ
U291cmNlQ29kZUFkZGVkQW5kUmVtb3ZlZChuZXh0KQogICAgICAgICB7CiAgICAgICAgICAgICB2
YXIgd29ya3NwYWNlID0gY3JlYXRlTW9ja1dvcmtzcGFjZSgpOwogICAgICAgICAgICAgdmFyIHBh
bmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwod29ya3NwYWNlKTsKICAgICAgICAg
ICAgIHBhbmVsLnNob3coKTsKIAogICAgICAgICAgICAgd29ya3NwYWNlLm5ldHdvcmtXb3Jrc3Bh
Y2VQcm92aWRlci5hZGROZXR3b3JrRmlsZSgiZm9vLmpzIiwgY29udGVudFByb3ZpZGVyLCBmYWxz
ZSk7Ci0gICAgICAgICAgICB2YXIgdGVtcG9yYXJ5VUlTb3VyY2VDb2RlID0gd29ya3NwYWNlLmRl
YnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIuYWRkRGVidWdnZXJGaWxlKCJjb21waWxlZC5qcyIsIGNv
bnRlbnRQcm92aWRlcik7CisgICAgICAgICAgICB3b3Jrc3BhY2UuZGVidWdnZXJXb3Jrc3BhY2VQ
cm92aWRlci5hZGREZWJ1Z2dlckZpbGUoImNvbXBpbGVkLmpzIiwgY29udGVudFByb3ZpZGVyKTsK
IAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5f
bmF2aWdhdG9yKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vpc291cmNl
Y29kZS1yZXZpc2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91aXNvdXJjZWNvZGUt
cmV2aXNpb25zLmh0bWwKaW5kZXggNzAyNWFkOWIxZDA4OTkwMjI3NDk3MGZmMWZmNzBlZDRjMmIx
ODA0OC4uNmI4Y2Y4MDQ3ZTgwMGVjYjQ1ZDY3M2M0N2ExYTBlMTViMGU1ODljMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vpc291cmNlY29kZS1yZXZpc2lvbnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9ucy5odG1sCkBAIC04
LDEzICs4LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gY3JlYXRlTW9ja1dv
cmtzcGFjZSgpCiAgICAgewotICAgICAgICB2YXIgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0g
bmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKICAgICAgICAgdmFy
IHdvcmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlKCk7CisgICAgICAgIHZhciBu
ZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3Bh
Y2VQcm92aWRlcigpOwogICAgICAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdCgibmV0d29yayIsIG5l
dHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7Ci0gICAgICAgIHdvcmtzcGFjZS5yZXF1ZXN0RmlsZUNv
bnRlbnQgPSBmdW5jdGlvbihwYXRoLCBjYWxsYmFjaykKKyAgICAgICAgd29ya3NwYWNlLnJlcXVl
c3RGaWxlQ29udGVudCA9IGZ1bmN0aW9uKHVyaSwgY2FsbGJhY2spCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGNhbGxiYWNrKCI8c2NyaXB0IGNvbnRlbnQ+IiwgZmFsc2UsICJ0ZXh0L2phdmFzY3Jp
cHQiKTsKICAgICAgICAgfQorICAgICAgICB3b3Jrc3BhY2Uuc2V0RmlsZUNvbnRlbnQgPSBmdW5j
dGlvbih1cmksIG5ld0NvbnRlbnQsIGNhbGxiYWNrKQorICAgICAgICB7CisgICAgICAgIH0KKwog
ICAgICAgICByZXR1cm4gd29ya3NwYWNlOwogICAgIH0KICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182302</attachid>
            <date>2013-01-11 02:22:03 -0800</date>
            <delta_ts>2013-01-11 03:59:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105856-20130111141904.patch</filename>
            <type>text/plain</type>
            <size>92531</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTg3MGFjMzc0OGM5ODli
MmVjNjZjMzRmODZhMzFhZWU4OTczYThmOC4uY2VkZmQ4MzQzZDhiMWM2NTIzYjZhNzFjN2YxNTg3
NGIzNjdiMWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEwMyBAQAogMjAxMy0wMS0xMSAgVnNl
dm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5zcGVj
dG9yOiBXb3Jrc3BhY2Ugc2hvdWxkIHN1cHBvcnQgc2V2ZXJhbCBwcm9qZWN0cyBhbmQgc2hvdWxk
IG5vdCBoYXZlIHRlbXBvcmFyeSBVSVNvdXJjZUNvZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1ODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV29ya3NwYWNlIG5vdyBzdXBwb3J0cyBzZXZlcmFs
IHByb2plY3RzIHdpdGggdGhlIG5ldHdvcmtQcm9qZWN0IGJlaW5nIGEgbWFpbiBvbmUuCisgICAg
ICAgIFJlcGxhY2VkIHRlbXBvcmFyeSBVSVNvdXJjZUNvZGVzIHdpdGggc3BlY2lmaWMgcHJvamVj
dHMgKGRlYnVnZ2VyIGFuZCBsaXZlZWRpdCkuCisgICAgICAgIFRoZSBjb25jZXB0IG9mIHdvcmtz
cGFjZSByZXNldCBvbiBuYXZpZ2F0aW9uIGlzIG5vdyByZXBsYWNlZCB3aXRoIHByb2plY3QgcmVz
ZXQgY29uY2VwdCBpbnN0ZWFkLgorICAgICAgICBJbnRyb2R1Y2VkIHNuaXBwZXRzIHByb2plY3Qg
KHRoYXQgaXMgbm90IHJlc2V0IG9uIG5hdmlnYXRpb24pLgorICAgICAgICBTY3JpcHQgbWFwcGlu
Z3MgYXJlIG5vdyByZXNldCBvbiBHbG9iYWxPYmplY3RDbGVhcmVkIGV2ZW50LgorCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludE1hbmFnZXIucHJvdG90eXBlLl9wcm9qZWN0V2lsbFJlc2V0LmdldCBmb3IpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS5fcHJvamVjdFdp
bGxSZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLl9pbnNwZWN0ZWRVUkxDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fcmVzZXRTb3VyY2VN
YXBwaW5ncyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmlu
ZGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmluZGlu
Zy5wcm90b3R5cGUuX3ZpYUluc3BlY3RvclJlc291cmNlVVJMKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZS5fcmVzZXQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0U2NyaXB0TWFwcGluZy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0TWFwcGluZyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlwdE1hcHBpbmcucHJvdG90eXBlLmFkZFNjcmlwdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9kZWJ1
Z2dlclJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVByb3Zp
ZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyLnBy
b3RvdHlwZS5hZGREZWJ1Z2dlckZpbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RXh0ZW5zaW9uU2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZl
ci5wcm90b3R5cGUuX29uR2V0UGFnZVJlc291cmNlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuT3BlblJlc291cmNlRGlhbG9nLnNob3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvTGl2ZUVkaXRTdXBwb3J0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxpdmVFZGl0
U3VwcG9ydCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTdXBwb3J0LnByb3RvdHlw
ZS51aVNvdXJjZUNvZGVGb3JMaXZlRWRpdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2ZUVk
aXRTdXBwb3J0LnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTGl2ZUVkaXRXb3Jrc3BhY2VQcm92aWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2
ZUVkaXRXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUuYWRkTGl2ZUVkaXRGaWxlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUu
X21haW5GcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291
cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS5fcmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlU2NyaXB0TWFwcGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VT
Y3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlQWRkZWRUb1dvcmtzcGFjZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fZGVi
dWdnZXJSZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3Rv
cnlWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJldmlzaW9uSGlzdG9yeVZpZXcpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJldmlzaW9uSGlzdG9yeVZpZXcucHJvdG90eXBlLl9wcm9q
ZWN0V2lsbFJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBw
ZXRNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX2FkZFNj
cmlwdFNuaXBwZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5w
cm90b3R5cGUucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05h
dmlnYXRvci5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2FkZFVJU291cmNlQ29kZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlUmVtb3Zl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcmVtb3Zl
VUlTb3VyY2VDb2Rlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5fZGVidWdnZXJXYXNEaXNhYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcHJvamVjdFdpbGxSZXNldCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5jYW5TaG93QW5jaG9yTG9jYXRpb24pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3JldmVhbEV4ZWN1
dGlvbkxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUu
c2hvd0dvVG9Tb3VyY2VEaWFsb2cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2lt
cGxlV29ya3NwYWNlUHJvdmlkZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2ltcGxlV29y
a3NwYWNlUHJvdmlkZXIucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5
bGVzU291cmNlTWFwcGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFw
cGluZy5wcm90b3R5cGUuX3Byb2plY3RXaWxsUmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvVGFiYmVkRWRpdG9yQ29udGFpbmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZS5wcm90b3R5cGUucHJvamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9Xb3Jrc3BhY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJvbGxlci5wcm90b3R5
cGUuX2luc3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2plY3Qp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBlLm5hbWUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuV29ya3NwYWNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJv
dG90eXBlLnVpU291cmNlQ29kZUZvclVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3Nw
YWNlLnByb3RvdHlwZS51aVNvdXJjZUNvZGVGb3JVUkkpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LldvcmtzcGFjZS5wcm90b3R5cGUuYWRkUHJvamVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlLnByb3RvdHlwZS5wcm9qZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jr
c3BhY2UucHJvdG90eXBlLnByb2plY3RzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UucHJvdG90eXBlLnVpU291cmNlQ29kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtz
cGFjZS5wcm90b3R5cGUucHJvamVjdEZvclVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS5yZXF1ZXN0RmlsZUNvbnRlbnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUuc2V0RmlsZUNvbnRlbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUuc2VhcmNoSW5GaWxlQ29udGVudCk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisKKzIwMTMtMDEt
MTEgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogUmVmYWN0b3JpbmcsIG1vdmUgTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyIHRv
IE5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcyBhbmQgcmVuYW1lIGl0cyBwYXJlbnQgdG8g
U2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDY2MzUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKaW5kZXggYTlmZDZlZmU3ZDdh
MmVjZDhhYzM0MjgzYWEyZjkwOWFiYmE5ZDkzZS4uNjdlMWMxMzE2YWI2NzNjZmExNzk0NzYwYjY2
MzliY2Q1ZmVhNjVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCkBAIC00Nyw5ICs0Nyw4IEBAIFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50TWFuYWdlciA9IGZ1bmN0aW9uKGJyZWFrcG9pbnRTdG9yYWdlLCBkZWJ1
Z2dlck1vZGVsLCB3b3JrCiAgICAgdGhpcy5fc291cmNlRmlsZXNXaXRoUmVzdG9yZWRCcmVha3Bv
aW50cyA9IHt9OwogCiAgICAgdGhpcy5fZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVzb2x2ZWQsIHRoaXMu
X2JyZWFrcG9pbnRSZXNvbHZlZCwgdGhpcyk7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwg
dGhpcy5fd29ya3NwYWNlUmVzZXQsIHRoaXMpOworICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQs
IHRoaXMuX3Byb2plY3RXaWxsUmVzZXQsIHRoaXMpOwogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlT
b3VyY2VDb2RlQWRkZWQsIHRoaXMuX3VpU291cmNlQ29kZUFkZGVkLCB0aGlzKTsKLSAgICB0aGlz
Ll93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJv
dmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkLCB0aGlzLl91aVNvdXJjZUNv
ZGVBZGRlZCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5FdmVu
dHMgPSB7CkBAIC0yMjYsMTYgKzIyNSwyNiBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFn
ZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9zb3VyY2VGaWxlc1dpdGhSZXN0b3JlZEJy
ZWFrcG9pbnRzID0ge307CiAgICAgfSwKIAotICAgIF93b3Jrc3BhY2VSZXNldDogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludHMuc2xp
Y2UoKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3BvaW50cy5sZW5ndGg7ICsr
aSkgewotICAgICAgICAgICAgYnJlYWtwb2ludHNbaV0uX3Jlc2V0TG9jYXRpb25zKCk7Ci0gICAg
ICAgICAgICBicmVha3BvaW50c1tpXS5faXNQcm92aXNpb25hbCA9IHRydWU7CisgICAgX3Byb2pl
Y3RXaWxsUmVzZXQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHByb2plY3Qg
PSBldmVudC5kYXRhOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHByb2plY3QudWlTb3Vy
Y2VDb2RlcygpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGVz
W2ldOworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludHNGb3JV
SVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29kZSkgfHwgW107CisgICAgICAgICAgICBmb3IgKHZh
ciBsaW5lTnVtYmVyIGluIGJyZWFrcG9pbnRzKSB7CisgICAgICAgICAgICAgICAgdmFyIGxpbmVC
cmVha3BvaW50cyA9IGJyZWFrcG9pbnRzW2xpbmVOdW1iZXJdOworICAgICAgICAgICAgICAgIGZv
ciAodmFyIGogPSAwOyBqIDwgbGluZUJyZWFrcG9pbnRzLmxlbmd0aDsgKytqKSB7CisgICAgICAg
ICAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gbGluZUJyZWFrcG9pbnRzW2pdOworICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50cy5yZW1vdmUoYnJlYWtwb2ludCk7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQuX3Jlc2V0TG9jYXRpb25zKCk7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrcG9pbnQuX2lzUHJvdmlzaW9uYWwgPSB0cnVlOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzRm9yVUlT
b3VyY2VDb2RlLnJlbW92ZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgdmFyIHNvdXJjZUZp
bGVJZCA9IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5zb3VyY2VGaWxlSWQodWlTb3Vy
Y2VDb2RlKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9zb3VyY2VGaWxlc1dpdGhSZXN0b3Jl
ZEJyZWFrcG9pbnRzW3NvdXJjZUZpbGVJZF07CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5fYnJl
YWtwb2ludHMgPSBbXTsKLSAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUu
Y2xlYXIoKTsKLSAgICAgICAgdGhpcy5fc291cmNlRmlsZXNXaXRoUmVzdG9yZWRCcmVha3BvaW50
cyA9IHt9OwogICAgIH0sCiAKICAgICBfYnJlYWtwb2ludFJlc29sdmVkOiBmdW5jdGlvbihldmVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5
bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVN
b2RlbC5qcwppbmRleCAyODRmYmQ4N2U4ZDg5OWQ5OTU4Yjc5Y2M1ZTU3NGFlYWUxMjNhODYxLi4w
NmNjZGQxMTQ2YzkyMjRjZDZhYmFlNDEyZWUwZDdiMTBmNDM1Zjk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC00MSw2
ICs0MSw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsID0gZnVuY3Rpb24oKQogICAgIFdl
Ykluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2Vu
dC5FdmVudHMuVW5kb1JlZG9SZXF1ZXN0ZWQsIHRoaXMuX3VuZG9SZWRvUmVxdWVzdGVkLCB0aGlz
KTsKICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRE9NQWdlbnQuRXZlbnRzLlVuZG9SZWRvQ29tcGxldGVkLCB0aGlzLl91bmRvUmVkb0NvbXBs
ZXRlZCwgdGhpcyk7CiAgICAgdGhpcy5fcmVzb3VyY2VCaW5kaW5nID0gbmV3IFdlYkluc3BlY3Rv
ci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nKCk7CisgICAgV2ViSW5zcGVjdG9yLnJlc291
cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1v
ZGVsLkV2ZW50VHlwZXMuSW5zcGVjdGVkVVJMQ2hhbmdlZCwgdGhpcy5faW5zcGVjdGVkVVJMQ2hh
bmdlZCwgdGhpcyk7CiAgICAgdGhpcy5fbmFtZWRGbG93Q29sbGVjdGlvbnMgPSB7fTsKICAgICBX
ZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdl
bnQuRXZlbnRzLkRvY3VtZW50VXBkYXRlZCwgdGhpcy5fcmVzZXROYW1lZEZsb3dDb2xsZWN0aW9u
cywgdGhpcyk7CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNTU0Rpc3BhdGNoZXIobmV3
IFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyKHRoaXMpKTsKQEAgLTQ3OSw2ICs0ODAsMTUgQEAg
V2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8KKyAg
ICBfaW5zcGVjdGVkVVJMQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0
aGlzLl9yZXNldFNvdXJjZU1hcHBpbmdzKCk7CisgICAgICAgIHRoaXMuX3Jlc291cmNlQmluZGlu
Zy5fcmVzZXQoKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHVy
bAogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmd9IHNvdXJjZU1hcHBp
bmcKICAgICAgKi8KQEAgLTQ4OCw3ICs0OTgsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3VwZGF0ZUxvY2F0aW9ucygpOwogICAgIH0s
CiAKLSAgICByZXNldFNvdXJjZU1hcHBpbmdzOiBmdW5jdGlvbigpCisgICAgX3Jlc2V0U291cmNl
TWFwcGluZ3M6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3NvdXJjZU1hcHBpbmdz
ID0ge307CiAgICAgfSwKQEAgLTExNzMsOSArMTE4Myw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHls
ZVNoZWV0LnByb3RvdHlwZSA9IHsKICAqLwogV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWxSZXNv
dXJjZUJpbmRpbmcgPSBmdW5jdGlvbigpCiB7Ci0gICAgdGhpcy5fZnJhbWVBbmRVUkxUb1N0eWxl
U2hlZXRJZCA9IHt9OwotICAgIHRoaXMuX3N0eWxlU2hlZXRJZFRvSGVhZGVyID0ge307Ci0gICAg
V2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuSW5zcGVjdGVkVVJMQ2hhbmdlZCwgdGhp
cy5faW5zcGVjdGVkVVJMQ2hhbmdlZCwgdGhpcyk7CisgICAgdGhpcy5fcmVzZXQoKTsKIH0KIAog
V2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90eXBlID0gewpA
QCAtMTIzNiwxNiArMTI0NCw2IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VC
aW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50Ci0gICAgICovCi0gICAgX2luc3BlY3RlZFVSTENoYW5n
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgLy8gTWFpbiBmcmFtZSBuYXZpZ2F0
aW9uIC0gY2xlYXIgaGlzdG9yeS4KLSAgICAgICAgdGhpcy5fZnJhbWVBbmRVUkxUb1N0eWxlU2hl
ZXRJZCA9IHt9OwotICAgICAgICB0aGlzLl9zdHlsZVNoZWV0SWRUb0hlYWRlciA9IHt9OwotICAg
IH0sCi0KLSAgICAvKioKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFj
awogICAgICAqLwogICAgIF9sb2FkU3R5bGVTaGVldEhlYWRlcnM6IGZ1bmN0aW9uKGNhbGxiYWNr
KQpAQCAtMTM0OCw2ICsxMzQ2LDEzIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVzb3Vy
Y2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGZha2VVUkwgKz0gIi8iOwogICAg
ICAgICBmYWtlVVJMICs9ICJpbnNwZWN0b3Itc3R5bGVzaGVldCI7CiAgICAgICAgIHJldHVybiBm
YWtlVVJMOworICAgIH0sCisKKyAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IC8vIE1haW4gZnJhbWUgbmF2aWdhdGlvbiAtIGNsZWFyIGhpc3RvcnkuCisgICAgICAgIHRoaXMu
X2ZyYW1lQW5kVVJMVG9TdHlsZVNoZWV0SWQgPSB7fTsKKyAgICAgICAgdGhpcy5fc3R5bGVTaGVl
dElkVG9IZWFkZXIgPSB7fTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKaW5kZXgg
YmEzNjJlODA4NzMxYWJiZDY5MmE2MDBiZjIxMDdiMTE5MDhhODBkNi4uNTkzMmMwMTJkZDU2MDdm
NzJkYWNjMWRmODQ2NzViN2YwZWQ2MWEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKQEAgLTQ1
LDcgKzQ1LDcgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9u
KHdvcmtzcGFjZSwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGUKICAgICB0aGlzLl9zY3JpcHRGb3JT
b3VyY2VNYXAgPSBuZXcgTWFwKCk7CiAgICAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2Vi
SW5zcGVjdG9yLlBvc2l0aW9uQmFzZWRTb3VyY2VNYXA+fSAqLwogICAgIHRoaXMuX3NvdXJjZU1h
cEZvclVSTCA9IHt9OwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0
aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVkLCB0aGlz
Ll9kZWJ1Z2dlclJlc2V0LCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0
TWFwcGluZy5wcm90b3R5cGUgPSB7CkBAIC0xNDEsNyArMTQxLDcgQEAgV2ViSW5zcGVjdG9yLkNv
bXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBzb3VyY2VN
YXA7CiAgICAgfSwKIAotICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIF9kZWJ1Z2dlclJlc2V0
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9zb3VyY2VNYXBGb3JTb3VyY2VNYXBV
UkwgPSB7fTsKICAgICAgICAgdGhpcy5fc291cmNlTWFwRm9yU2NyaXB0SWQgPSB7fTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFNjcmlwdE1h
cHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRTY3Jp
cHRNYXBwaW5nLmpzCmluZGV4IDM5NmRhMDZhZDZhZjg2MGZlZWE5NzQxZWM5NGM4NzRkYTBkZTk2
Y2UuLjc1MDlmMTUxNzcwMDA1YmEyYWQ0OWVkNTA3YmZhZDc1MmVmOTM0NjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFNjcmlwdE1hcHBpbmcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0U2NyaXB0
TWFwcGluZy5qcwpAQCAtMzYsOSArMzYsMTAgQEAKIFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0
TWFwcGluZyA9IGZ1bmN0aW9uKHdvcmtzcGFjZSkKIHsKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3
b3Jrc3BhY2U7Ci0gICAgdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIod29ya3NwYWNlKTsKLSAgICB0aGlzLl93b3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0
V2lsbFJlc2V0LCB0aGlzLl9yZXNldCwgdGhpcyk7Ci0gICAgdGhpcy5fcmVzZXQoKTsKKyAgICB0
aGlzLl93b3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJXb3Jrc3Bh
Y2VQcm92aWRlcigpOworICAgIHdvcmtzcGFjZS5hZGRQcm9qZWN0KFdlYkluc3BlY3Rvci5wcm9q
ZWN0TmFtZXMuRGVidWdnZXIsIHRoaXMuX3dvcmtzcGFjZVByb3ZpZGVyKTsKKyAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVkLCB0aGlzLl9kZWJ1Z2dlclJlc2V0LCB0
aGlzKTsKKyAgICB0aGlzLl9kZWJ1Z2dlclJlc2V0KCk7CiB9CiAKIFdlYkluc3BlY3Rvci5EZWZh
dWx0U2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CkBAIC03NSw3ICs3Niw4IEBAIFdlYkluc3Bl
Y3Rvci5EZWZhdWx0U2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgYWRkU2NyaXB0OiBm
dW5jdGlvbihzY3JpcHQpCiAgICAgewogICAgICAgICB2YXIgY29udGVudFByb3ZpZGVyID0gc2Ny
aXB0LmlzSW5saW5lU2NyaXB0KCkgPyBuZXcgV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlw
dHNDb250ZW50UHJvdmlkZXIoW3NjcmlwdF0pIDogc2NyaXB0OwotICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIuYWRkRGVidWdnZXJGaWxlKHNjcmlwdC5z
b3VyY2VVUkwsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOworICAgICAgICB2YXIgdXJpID0gdGhp
cy5fd29ya3NwYWNlUHJvdmlkZXIuYWRkRGVidWdnZXJGaWxlKHNjcmlwdC5zb3VyY2VVUkwsIGNv
bnRlbnRQcm92aWRlciwgZmFsc2UsIHNjcmlwdC5pc0NvbnRlbnRTY3JpcHQpOworICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSSSh1cmkp
OwogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRd
ID0gdWlTb3VyY2VDb2RlOwogICAgICAgICB0aGlzLl9zY3JpcHRJZEZvclVJU291cmNlQ29kZS5w
dXQodWlTb3VyY2VDb2RlLCBzY3JpcHQuc2NyaXB0SWQpOwogICAgICAgICB1aVNvdXJjZUNvZGUu
c2V0U291cmNlTWFwcGluZyh0aGlzKTsKQEAgLTk0LDIyICs5NiwyMiBAQCBXZWJJbnNwZWN0b3Iu
RGVmYXVsdFNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91aVNvdXJj
ZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHRJZF0uYWRkUmV2aXNpb24oY29udGVudCk7CiAgICAgfSwK
IAotICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIF9kZWJ1Z2dlclJlc2V0OiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlPn0gKi8KICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQg
PSB7fTsKICAgICAgICAgdGhpcy5fc2NyaXB0SWRGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7
Ci0gICAgfSwKKyAgICAgICAgdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIucmVzZXQoKTsKKyAgICB9
CiB9CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNp
bXBsZVdvcmtzcGFjZVByb3ZpZGVyfQogICovCi1XZWJJbnNwZWN0b3IuRGVidWdnZXJXb3Jrc3Bh
Y2VQcm92aWRlciA9IGZ1bmN0aW9uKHdvcmtzcGFjZSkKK1dlYkluc3BlY3Rvci5EZWJ1Z2dlcldv
cmtzcGFjZVByb3ZpZGVyID0gZnVuY3Rpb24oKQogewogICAgIFdlYkluc3BlY3Rvci5TaW1wbGVX
b3Jrc3BhY2VQcm92aWRlci5jYWxsKHRoaXMpOwotICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtz
cGFjZTsKIH0KIAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIucHJvdG90
eXBlID0gewpAQCAtMTE3LDIyICsxMTksMTYgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3Nw
YWNlUHJvdmlkZXIucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKICAg
ICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9IGNvbnRlbnRQcm92aWRl
cgogICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNFZGl0YWJsZQotICAgICAqIEByZXR1cm4ge1dl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGV9CisgICAgICogQHBhcmFtIHtib29sZWFufSBpc0NvbnRl
bnRTY3JpcHQKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgICovCi0gICAgYWRkRGVidWdn
ZXJGaWxlOiBmdW5jdGlvbih1cmwsIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSkKKyAgICBh
ZGREZWJ1Z2dlckZpbGU6IGZ1bmN0aW9uKHVybCwgY29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxl
LCBpc0NvbnRlbnRTY3JpcHQpCiAgICAgewogICAgICAgICB2YXIgdXJpID0gImRlYnVnZ2VyOiIg
KyBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIudXJpRm9yVVJMKHVybCk7CiAg
ICAgICAgIHZhciB1bmlxdWVVUkkgPSB0aGlzLnVuaXF1ZVVSSSh1cmkpOwotICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLmFkZFRlbXBvcmFyeVVJU291cmNlQ29kZSh1
bmlxdWVVUkksIHVybCwgY29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlKTsKLSAgICAgICAgLy8g
RklYTUU6IHRoaXMgaXMgYSB0ZW1wb3JhcnkgaGFjayB0byBiZSByZW1vdmVkIG9uY2UgRGVmYXVs
dFNjcmlwdE1hcHBpbmcgdWlTb3VyY2VDb2RlIGJlY29tZSBwYXJ0IG9mIHRoZSB3b3Jrc3BhY2Uu
Ci0gICAgICAgIHRoaXMuX2NvbnRlbnRQcm92aWRlcnNbdW5pcXVlVVJJXSA9IHVpU291cmNlQ29k
ZTsKLSAgICAgICAgcmV0dXJuIHVpU291cmNlQ29kZTsKKyAgICAgICAgdGhpcy5hZGRGaWxlKHVu
aXF1ZVVSSSwgdXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUsIGlzQ29udGVudFNjcmlw
dCk7CisgICAgICAgIHJldHVybiB1bmlxdWVVUkk7CiAgICAgfSwKIAogICAgIF9fcHJvdG9fXzog
V2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLnByb3RvdHlwZQogfQotCi0vKioK
LSAqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXJ9Ci0gKi8K
LVdlYkluc3BlY3Rvci5kZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyID0gbnVsbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMK
aW5kZXggNmQwNTU4OTAwYmUxMjNlZmM5NzgwMDE2NTJkYTVlMDliMTUzYjZjOS4uYWEyM2RhNTg4
YjU3NDEzNDliNGI2MzE4ODRmNDZhZTY4N2IzOGU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKQEAgLTQ0Niw3ICs0
NDYsOCBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIGlmICghcmVzb3VyY2VzW2NvbnRlbnRQcm92aWRlci5jb250ZW50VVJMKCldKQogICAg
ICAgICAgICAgICAgIHJlc291cmNlc1tjb250ZW50UHJvdmlkZXIuY29udGVudFVSTCgpXSA9IHRo
aXMuX21ha2VSZXNvdXJjZShjb250ZW50UHJvdmlkZXIpOwogICAgICAgICB9Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpLmZvckVhY2gocHVzaFJlc291cmNl
RGF0YS5iaW5kKHRoaXMpKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBXZWJJbnNwZWN0
b3Iud29ya3NwYWNlLnByb2plY3QoV2ViSW5zcGVjdG9yLnByb2plY3ROYW1lcy5OZXR3b3JrKS51
aVNvdXJjZUNvZGVzKCk7CisgICAgICAgIHVpU291cmNlQ29kZXMuZm9yRWFjaChwdXNoUmVzb3Vy
Y2VEYXRhLmJpbmQodGhpcykpOwogICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9k
ZWwuZm9yQWxsUmVzb3VyY2VzKHB1c2hSZXNvdXJjZURhdGEuYmluZCh0aGlzKSk7CiAgICAgICAg
IHJldHVybiBPYmplY3QudmFsdWVzKHJlc291cmNlcyk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlh
bG9nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1T
ZWxlY3Rpb25EaWFsb2cuanMKaW5kZXggNmQ2Y2I0YjU4MTIzYTA2NjkzNjU0NDNiZTY3NTZlM2Q1
ZDFiNTc2My4uODcwOGMzZWJmNDJmMzU5ZTBlZjA2OGEzODkxNjE3YzViNGZhZjhkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9G
aWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMKQEAgLTYwOSwxNCArNjA5LDIwIEBAIFdlYklu
c3BlY3Rvci5KYXZhU2NyaXB0T3V0bGluZURpYWxvZy5wcm90b3R5cGUgPSB7CiAgKiBAY29uc3Ry
dWN0b3IKICAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuU2VsZWN0aW9uRGlhbG9nQ29udGVu
dFByb3ZpZGVyfQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsfSBwYW5lbAot
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXJ9IHVpU291cmNlQ29k
ZVByb3ZpZGVyCiAgKi8KLVdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cgPSBmdW5jdGlv
bihwYW5lbCwgdWlTb3VyY2VDb2RlUHJvdmlkZXIpCitXZWJJbnNwZWN0b3IuT3BlblJlc291cmNl
RGlhbG9nID0gZnVuY3Rpb24ocGFuZWwpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlNlbGVjdGlvbkRp
YWxvZ0NvbnRlbnRQcm92aWRlci5jYWxsKHRoaXMpOwogICAgIHRoaXMuX3BhbmVsID0gcGFuZWw7
CiAKLSAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0gdWlTb3VyY2VDb2RlUHJvdmlkZXIudWlTb3Vy
Y2VDb2RlcygpOworICAgIHZhciBwcm9qZWN0cyA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UucHJv
amVjdHMoKTsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0gW107CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBwcm9qZWN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgcHJvamVjdE5hbWUg
PSBwcm9qZWN0c1tpXS5uYW1lKCk7CisgICAgICAgIGlmIChwcm9qZWN0TmFtZSA9PT0gV2ViSW5z
cGVjdG9yLnByb2plY3ROYW1lcy5EZWJ1Z2dlciB8fCBwcm9qZWN0TmFtZSA9PT0gV2ViSW5zcGVj
dG9yLnByb2plY3ROYW1lcy5MaXZlRWRpdCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB0aGlzLl91aVNvdXJjZUNvZGVzID0gdGhpcy5fdWlTb3VyY2VDb2Rlcy5jb25jYXQocHJvamVj
dHNbaV0udWlTb3VyY2VDb2RlcygpKTsKKyAgICB9CiAKICAgICBmdW5jdGlvbiBmaWx0ZXJPdXRF
bXB0eVVSTHModWlTb3VyY2VDb2RlKQogICAgIHsKQEAgLTcxNCwxNCArNzIwLDEzIEBAIFdlYklu
c3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cucHJvdG90eXBlID0gewogCiAvKioKICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbH0gcGFuZWwKLSAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZVByb3ZpZGVyfSB1aVNvdXJjZUNvZGVQcm92aWRlcgogICogQHBhcmFt
IHtFbGVtZW50fSByZWxhdGl2ZVRvRWxlbWVudAogICovCi1XZWJJbnNwZWN0b3IuT3BlblJlc291
cmNlRGlhbG9nLnNob3cgPSBmdW5jdGlvbihwYW5lbCwgdWlTb3VyY2VDb2RlUHJvdmlkZXIsIHJl
bGF0aXZlVG9FbGVtZW50KQorV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJjZURpYWxvZy5zaG93ID0g
ZnVuY3Rpb24ocGFuZWwsIHJlbGF0aXZlVG9FbGVtZW50KQogewogICAgIGlmIChXZWJJbnNwZWN0
b3IuRGlhbG9nLmN1cnJlbnRJbnN0YW5jZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB2YXIg
ZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0
ZW1TZWxlY3Rpb25EaWFsb2cobmV3IFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cocGFu
ZWwsIHVpU291cmNlQ29kZVByb3ZpZGVyKSk7CisgICAgdmFyIGZpbHRlcmVkSXRlbVNlbGVjdGlv
bkRpYWxvZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nKG5l
dyBXZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nKHBhbmVsKSk7CiAgICAgV2ViSW5zcGVj
dG9yLkRpYWxvZy5zaG93KHJlbGF0aXZlVG9FbGVtZW50LCBmaWx0ZXJlZEl0ZW1TZWxlY3Rpb25E
aWFsb2cpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9MaXZlRWRpdFN1cHBvcnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0xpdmVFZGl0U3VwcG9ydC5qcwppbmRleCBjNjg3NDQyNjc0YzA3ZjIxZDY2YmY3NTllYmQ3ODUw
MWNiYWRmMWFjLi4yNzE2YzVlM2M1NjhmNDlmYmMzZDEzMjEwN2RiMTczYThjYmY5MTA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0xpdmVFZGl0U3VwcG9y
dC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0xpdmVFZGl0U3Vw
cG9ydC5qcwpAQCAtMzUsOSArMzUsMTAgQEAKIFdlYkluc3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQg
PSBmdW5jdGlvbih3b3Jrc3BhY2UpCiB7CiAgICAgdGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNl
OwotICAgIHRoaXMuX3dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5MaXZlRWRp
dFdvcmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSk7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNl
dCwgdGhpcy5fcmVzZXQsIHRoaXMpOwotICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgdGhpcy5fd29y
a3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkxpdmVFZGl0V29ya3NwYWNlUHJvdmlk
ZXIoKTsKKyAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVz
LkxpdmVFZGl0LCB0aGlzLl93b3Jrc3BhY2VQcm92aWRlcik7CisgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5F
dmVudHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCwgdGhpcy5fZGVidWdnZXJSZXNldCwgdGhpcyk7Cisg
ICAgdGhpcy5fZGVidWdnZXJSZXNldCgpOwogfQogCiBXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTdXBw
b3J0LnByb3RvdHlwZSA9IHsKQEAgLTU3LDIwICs1OCwyMiBAQCBXZWJJbnNwZWN0b3IuTGl2ZUVk
aXRTdXBwb3J0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybiB1aUxvY2F0aW9uLnVp
U291cmNlQ29kZTsKICAgICAgICAgaWYgKHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkW3Nj
cmlwdC5zY3JpcHRJZF0pCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdWlTb3VyY2VDb2RlRm9y
U2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXTsKLSAgICAgICAgCisKICAgICAgICAgY29uc29sZS5h
c3NlcnQoIXNjcmlwdC5pc0lubGluZVNjcmlwdCgpKTsKLSAgICAgICAgdmFyIGxpdmVFZGl0VUlT
b3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIuYWRkTGl2ZUVkaXRGaWxlKHVpU291
cmNlQ29kZS51cmwsIHNjcmlwdCwgdHJ1ZSk7CisgICAgICAgIHZhciB1cmkgPSB0aGlzLl93b3Jr
c3BhY2VQcm92aWRlci5hZGRMaXZlRWRpdEZpbGUodWlTb3VyY2VDb2RlLnVybCwgc2NyaXB0LCB0
cnVlKTsKKyAgICAgICAgdmFyIGxpdmVFZGl0VUlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNl
LnVpU291cmNlQ29kZUZvclVSSSh1cmkpOwogICAgICAgICBsaXZlRWRpdFVJU291cmNlQ29kZS5z
ZXRTY3JpcHRGaWxlKG5ldyBXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTY3JpcHRGaWxlKHVpU291cmNl
Q29kZSwgbGl2ZUVkaXRVSVNvdXJjZUNvZGUsIHNjcmlwdC5zY3JpcHRJZCkpOwogICAgICAgICB0
aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdID0gbGl2ZUVkaXRV
SVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMuX3NjcmlwdElkRm9yVUlTb3VyY2VDb2RlLnB1dChs
aXZlRWRpdFVJU291cmNlQ29kZSwgc2NyaXB0LnNjcmlwdElkKTsKICAgICAgICAgcmV0dXJuIGxp
dmVFZGl0VUlTb3VyY2VDb2RlOwogICAgIH0sCiAKLSAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKKyAg
ICBfZGVidWdnZXJSZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgLyoqIEB0eXBlIHtP
YmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59ICovCiAgICAgICAgIHRo
aXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkID0ge307CiAgICAgICAgIHRoaXMuX3NjcmlwdElk
Rm9yVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOworICAgICAgICB0aGlzLl93b3Jrc3BhY2VQcm92
aWRlci5yZXNldCgpOwogICAgIH0sCiB9CiAKQEAgLTEzNSwxMCArMTM4LDkgQEAgV2ViSW5zcGVj
dG9yLmxpdmVFZGl0U3VwcG9ydCA9IG51bGw7CiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRz
IHtXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXJ9CiAgKi8KLVdlYkluc3BlY3Rv
ci5MaXZlRWRpdFdvcmtzcGFjZVByb3ZpZGVyID0gZnVuY3Rpb24od29ya3NwYWNlKQorV2ViSW5z
cGVjdG9yLkxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIgPSBmdW5jdGlvbigpCiB7CiAgICAgV2Vi
SW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmNhbGwodGhpcyk7Ci0gICAgdGhpcy5f
d29ya3NwYWNlID0gd29ya3NwYWNlOwogfQogCiBXZWJJbnNwZWN0b3IuTGl2ZUVkaXRXb3Jrc3Bh
Y2VQcm92aWRlci5wcm90b3R5cGUgPSB7CkBAIC0xNDYsMTUgKzE0OCwxNCBAQCBXZWJJbnNwZWN0
b3IuTGl2ZUVkaXRXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFt
IHtzdHJpbmd9IHVybAogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRl
cn0gY29udGVudFByb3ZpZGVyCiAgICAgICogQHBhcmFtIHtib29sZWFufSBpc0VkaXRhYmxlCi0g
ICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KKyAgICAgKiBAcmV0dXJu
IHtzdHJpbmd9CiAgICAgICovCiAgICAgYWRkTGl2ZUVkaXRGaWxlOiBmdW5jdGlvbih1cmwsIGNv
bnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSkKICAgICB7CiAgICAgICAgIHZhciB1cmkgPSAibGl2
ZWVkaXQ6IiArIFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci51cmlGb3JVUkwo
dXJsKTsKICAgICAgICAgdmFyIHVuaXF1ZVVSSSA9IHRoaXMudW5pcXVlVVJJKHVyaSk7Ci0gICAg
ICAgIC8vIEZJWE1FOiB0aGlzIGlzIGEgdGVtcG9yYXJ5IGhhY2sgdG8gYmUgcmVtb3ZlZCBvbmNl
IExpdmVFZGl0IHVpU291cmNlQ29kZSBiZWNvbWUgcGFydCBvZiB0aGUgd29ya3NwYWNlLgotICAg
ICAgICB0aGlzLl9jb250ZW50UHJvdmlkZXJzW3VuaXF1ZVVSSV0gPSBudWxsOwotICAgICAgICBy
ZXR1cm4gdGhpcy5fd29ya3NwYWNlLmFkZFRlbXBvcmFyeVVJU291cmNlQ29kZSh1bmlxdWVVUkks
IHVybCwgY29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlKTsKKyAgICAgICAgdGhpcy5hZGRGaWxl
KHVuaXF1ZVVSSSwgdXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUpOworICAgICAgICBy
ZXR1cm4gdW5pcXVlVVJJOwogICAgIH0sCiAKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5T
aW1wbGVXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJv
dmlkZXIuanMKaW5kZXggM2I1ZjMxM2NlODI5NjQ4ZGY4MGFiOTIxYjFkNmZjMGUyZDI0MDcxMC4u
NGQ4NzhlMGRlMDE5OTc4YjFiYTgwOTQ5MzkzN2U5ZjkyZTI4ZDEwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlk
ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlT
b3VyY2VDb2RlUHJvdmlkZXIuanMKQEAgLTMxLDE1ICszMSwxNCBAQAogLyoqCiAgKiBAY29uc3Ry
dWN0b3IKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZX0gd29ya3NwYWNlCi0gKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlcn0gbmV0d29ya1dvcmtz
cGFjZVByb3ZpZGVyCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXJ9IG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcgogICovCiBXZWJJbnNwZWN0b3IuTmV0d29y
a1VJU291cmNlQ29kZVByb3ZpZGVyID0gZnVuY3Rpb24od29ya3NwYWNlLCBuZXR3b3JrV29ya3Nw
YWNlUHJvdmlkZXIpCiB7CiAgICAgdGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlOwogICAgIHRo
aXMuX25ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcjsK
ICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5SZXNvdXJjZUFkZGVkLCB0aGlz
Ll9yZXNvdXJjZUFkZGVkLCB0aGlzKTsKLSAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlz
Ll9wcm9qZWN0V2lsbFJlc2V0LCB0aGlzKTsKLSAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0RGlkUmVzZXQsIHRo
aXMuX3Byb2plY3REaWRSZXNldCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJl
ZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2
ZW50VHlwZXMuTWFpbkZyYW1lTmF2aWdhdGVkLCB0aGlzLl9tYWluRnJhbWVOYXZpZ2F0ZWQsIHRo
aXMpOwogICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlBhcnNlZFNjcmlwdFNvdXJjZSwgdGhpcy5f
cGFyc2VkU2NyaXB0U291cmNlLCB0aGlzKTsKIAogICAgIHRoaXMuX3Byb2Nlc3NlZFVSTHMgPSB7
fTsKQEAgLTEwMSw2ICsxMDAsMTQgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQ
cm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAorICAgICAqLworICAgIF9tYWluRnJhbWVOYXZpZ2F0
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVzZXQoKTsKKyAgICB9
LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAogICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVudFByb3ZpZGVyCiAgICAgICogQHBh
cmFtIHtib29sZWFuPX0gaXNDb250ZW50U2NyaXB0CkBAIC0xMTcsMTQgKzEyNCwxMSBAQCBXZWJJ
bnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdvcmtGaWxlKHVybCwgY29u
dGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlLCBpc0NvbnRlbnRTY3JpcHQpOwogICAgIH0sCiAKLSAg
ICBfcHJvamVjdFdpbGxSZXNldDogZnVuY3Rpb24oKQorICAgIF9yZXNldDogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdGhpcy5fcHJvY2Vzc2VkVVJMcyA9IHt9OwogICAgICAgICB0aGlzLl9s
YXN0RHluYW1pY0Fub255bW91c1NjcmlwdEluZGV4Rm9yVVJMID0ge307Ci0gICAgfSwKLQotICAg
IF9wcm9qZWN0RGlkUmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7CisgICAgICAgIHRoaXMuX25ldHdv
cmtXb3Jrc3BhY2VQcm92aWRlci5yZXNldCgpOwogICAgICAgICB0aGlzLl9wb3B1bGF0ZSgpOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKaW5kZXggNzgwMjg1MGVjMzcyOTViZTRiN2Ex
MzAyYjNlYWM3N2FmOGU1YmE3Zi4uODUyZDJiNDU4NWZmOThlZmQ3MTk5MTk0Y2Y3ODcyYWFhYTg1
ODkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZVNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKQEAgLTM2LDEwICszNiwxMCBAQAogV2ViSW5z
cGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9uKHdvcmtzcGFjZSkKIHsKICAg
ICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNl
dCwgdGhpcy5fcmVzZXQsIHRoaXMpOwogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2Rl
QWRkZWQsIHRoaXMuX3VpU291cmNlQ29kZUFkZGVkVG9Xb3Jrc3BhY2UsIHRoaXMpOwogCi0gICAg
dGhpcy5fcmVzZXQoKTsKKyAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVh
cmVkLCB0aGlzLl9kZWJ1Z2dlclJlc2V0LCB0aGlzKTsKKyAgICB0aGlzLl9kZWJ1Z2dlclJlc2V0
KCk7CiB9CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0g
ewpAQCAtOTMsNyArOTMsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnBy
b3RvdHlwZSA9IHsKICAgICBfdWlTb3VyY2VDb2RlQWRkZWRUb1dvcmtzcGFjZTogZnVuY3Rpb24o
ZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gLyoqIEB0eXBlIHtXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlfSAqLyAoZXZlbnQuZGF0YSk7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCEhdWlTb3VyY2VDb2RlLnVybCk7CisgICAgICAgIGlmICghdWlTb3VyY2VDb2RlLnVy
bCkKKyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB2YXIgc2NyaXB0cyA9IHRoaXMuX3Nj
cmlwdHNGb3JVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgaWYgKCFzY3JpcHRz
Lmxlbmd0aCkKQEAgLTE3NSw3ICsxNzYsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRN
YXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNvdXJjZU1hcHBp
bmcodGhpcyk7CiAgICAgfSwKIAotICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIF9kZWJ1Z2dl
clJlc2V0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICAvKiogQHR5cGUgeyFPYmplY3QuPHN0
cmluZywgIUFycmF5LjwhV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT4+fSAqLwogICAgICAgICB0
aGlzLl9pbmxpbmVTY3JpcHRzRm9yU291cmNlVVJMID0ge307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcuanMKaW5k
ZXggNDU5MmU0YWQ1MTE4OTk5NzRiMDcxZWRiY2YzNjBhMjNmNmM0Zjc5NC4uZGU4ODVhZGRmZTU1
YTExNTUzMWZkNjhiM2I5MjQ5OTc0OTVhOGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25IaXN0b3J5Vmlldy5qcwpAQCAtNTYs
OCArNTYsNyBAQCBXZWJJbnNwZWN0b3IuUmV2aXNpb25IaXN0b3J5VmlldyA9IGZ1bmN0aW9uKCkK
ICAgICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLnVpU291cmNlQ29kZXMoKS5mb3JFYWNoKHBvcHVs
YXRlUmV2aXNpb25zLmJpbmQodGhpcykpOwogICAgIFdlYkluc3BlY3Rvci53b3Jrc3BhY2UuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5VSVNvdXJjZUNvZGVD
b250ZW50Q29tbWl0dGVkLCB0aGlzLl9yZXZpc2lvbkFkZGVkLCB0aGlzKTsKICAgICBXZWJJbnNw
ZWN0b3Iud29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzLl91aVNvdXJjZUNvZGVS
ZW1vdmVkLCB0aGlzKTsKLSAgICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNv
dXJjZUNvZGVSZW1vdmVkLCB0aGlzLl91aVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzKTsKLSAgICBX
ZWJJbnNwZWN0b3Iud29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtz
cGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcmVzZXQsIHRoaXMpOworICAgIFdl
Ykluc3BlY3Rvci53b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3Nw
YWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9wcm9qZWN0V2lsbFJlc2V0LCB0aGlz
KTsKIAogICAgIHRoaXMuX3N0YXR1c0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7CiAgICAgdGhpcy5fc3RhdHVzRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiTG9jYWwgbW9kaWZpY2F0aW9ucyIpOwpAQCAtMTcyLDEwICsxNzEsMTAgQEAg
V2ViSW5zcGVjdG9yLlJldmlzaW9uSGlzdG9yeVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl91aVNvdXJjZUNvZGVJdGVtcy5yZW1vdmUodWlTb3VyY2VDb2RlKTsKICAgICB9LAogCi0g
ICAgX3Jlc2V0OiBmdW5jdGlvbigpCisgICAgX3Byb2plY3RXaWxsUmVzZXQ6IGZ1bmN0aW9uKGV2
ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsK
LSAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlSXRlbXMuY2xlYXIoKTsKKyAgICAgICAgdmFyIHBy
b2plY3QgPSBldmVudC5kYXRhOworICAgICAgICBwcm9qZWN0LnVpU291cmNlQ29kZXMoKS5mb3JF
YWNoKHRoaXMuX3JlbW92ZVVJU291cmNlQ29kZS5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAg
X19wcm90b19fOiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKaW5k
ZXggOWUzZjAzMTdlODgwODYzNmVjYjEyZTk4OTczOTc4NThhYTljNTNlYS4uY2ZmNDBlZDY0ZTdh
ZWQ1ZDkzNjUwMTUxMTdkZjY1MDg5ODBjZGEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKQEAgLTMyLDEy
ICszMiwxMCBAQAogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9i
amVjdH0KICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZX0gd29ya3NwYWNlCi0gKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXJ9IG5ldHdvcmtXb3Jr
c3BhY2VQcm92aWRlcgogICovCi1XZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsID0gZnVu
Y3Rpb24od29ya3NwYWNlLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpCitXZWJJbnNwZWN0b3Iu
U2NyaXB0U25pcHBldE1vZGVsID0gZnVuY3Rpb24od29ya3NwYWNlKQogewogICAgIHRoaXMuX3dv
cmtzcGFjZSA9IHdvcmtzcGFjZTsKLSAgICB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIg
PSBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXI7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2Ny
aXB0SWQgPSB7fTsKICAgICB0aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7
CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU25pcHBldElkID0ge307CkBAIC00Niw5ICs0NCw5
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwgPSBmdW5jdGlvbih3b3Jrc3BhY2Us
IG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcikKICAgICB0aGlzLl9zbmlwcGV0U3RvcmFnZSA9IG5l
dyBXZWJJbnNwZWN0b3IuU25pcHBldFN0b3JhZ2UoInNjcmlwdCIsICJTY3JpcHQgc25pcHBldCAj
Iik7CiAgICAgdGhpcy5fbGFzdFNuaXBwZXRFdmFsdWF0aW9uSW5kZXhTZXR0aW5nID0gV2ViSW5z
cGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmcoImxhc3RTbmlwcGV0RXZhbHVhdGlvbkluZGV4
IiwgMCk7CiAgICAgdGhpcy5fc25pcHBldFNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9y
LlNuaXBwZXRTY3JpcHRNYXBwaW5nKHRoaXMpOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQs
IHRoaXMuX3Byb2plY3RXaWxsUmVzZXQsIHRoaXMpOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3REaWRSZXNl
dCwgdGhpcy5fcHJvamVjdERpZFJlc2V0LCB0aGlzKTsKLSAgICB0aGlzLl9sb2FkU25pcHBldHMo
KTsKKyAgICB0aGlzLl93b3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2ltcGxl
V29ya3NwYWNlUHJvdmlkZXIoKTsKKyAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdChXZWJJbnNwZWN0
b3IucHJvamVjdE5hbWVzLlNuaXBwZXRzLCB0aGlzLl93b3Jrc3BhY2VQcm92aWRlcik7CisgICAg
dGhpcy5yZXNldCgpOwogfQogCiBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3Rv
dHlwZSA9IHsKQEAgLTgyLDggKzgwLDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2FkZFNjcmlwdFNuaXBwZXQ6IGZ1bmN0aW9u
KHNuaXBwZXQpCiAgICAgewotICAgICAgICB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIu
YWRkTmV0d29ya0ZpbGUoc25pcHBldC5uYW1lLCBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRDb250
ZW50UHJvdmlkZXIoc25pcHBldCksIHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgdmFyIHVp
U291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkwoc25pcHBldC5u
YW1lKTsKKyAgICAgICAgdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZShzbmlwcGV0Lm5h
bWUsIHNuaXBwZXQubmFtZSwgbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0Q29udGVudFByb3ZpZGVy
KHNuaXBwZXQpLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSB0aGlzLl93b3Jrc3BhY2UucHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVzLlNuaXBw
ZXRzKS51aVNvdXJjZUNvZGVGb3JVUkkoc25pcHBldC5uYW1lKTsKICAgICAgICAgdmFyIHNjcmlw
dEZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRTY3JpcHRGaWxlKHRoaXMsIHVpU291cmNl
Q29kZSk7CiAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTY3JpcHRGaWxlKHNjcmlwdEZpbGUpOwog
ICAgICAgICB0aGlzLl9zbmlwcGV0SWRGb3JVSVNvdXJjZUNvZGUucHV0KHVpU291cmNlQ29kZSwg
c25pcHBldC5pZCk7CkBAIC0xMDQsNyArMTAyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBw
ZXRNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3JlbGVhc2VTbmlwcGV0U2NyaXB0
KHVpU291cmNlQ29kZSk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl91aVNvdXJjZUNvZGVGb3JTbmlw
cGV0SWRbc25pcHBldC5pZF07CiAgICAgICAgIHRoaXMuX3NuaXBwZXRJZEZvclVJU291cmNlQ29k
ZS5yZW1vdmUodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdGhpcy5fbmV0d29ya1dvcmtzcGFjZVBy
b3ZpZGVyLnJlbW92ZUZpbGUoc25pcHBldC5uYW1lKTsKKyAgICAgICAgdGhpcy5fd29ya3NwYWNl
UHJvdmlkZXIucmVtb3ZlRmlsZShzbmlwcGV0Lm5hbWUpOwogICAgIH0sCiAKICAgICAvKioKQEAg
LTM3MCwxNiArMzY4LDE1IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gc25pcHBldElkOwogICAgIH0sCiAKLSAgICBfcHJvamVj
dFdpbGxSZXNldDogZnVuY3Rpb24oKQorICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgeworICAg
ICAgICAvKiogQHR5cGUgeyFPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZT59ICovCiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkID0ge307CiAgICAg
ICAgIHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZSA9IG5ldyBNYXAoKTsKKyAgICAgICAgLyoq
IEB0eXBlIHshT2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fSAqLwog
ICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTbmlwcGV0SWQgPSB7fTsKICAgICAgICAgdGhp
cy5fc25pcHBldElkRm9yVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOwotICAgIH0sCi0KLSAgICBf
cHJvamVjdERpZFJlc2V0OiBmdW5jdGlvbigpCi0gICAgeworICAgICAgICB0aGlzLl93b3Jrc3Bh
Y2VQcm92aWRlci5yZXNldCgpOwogICAgICAgICB0aGlzLl9sb2FkU25pcHBldHMoKTsKICAgICB9
LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNOYXZpZ2F0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNOYXZpZ2F0b3IuanMKaW5kZXggNmU0ODYwOTIwZjhkM2Y2NDEzZDc4Njk1ODYyM2IyNzJiMzA4
ZjUxMy4uYzBlMTZlYTAwMDY0NmU3MzUyYWY3N2IyZDRkNTgyY2Q4YmZkMDNmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05hdmlnYXRv
ci5qcwpAQCAtMTcwLDEzICsxNzAsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c05hdmlnYXRvci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5TY3JpcHRzTmF2aWdhdG9yLkV2ZW50cy5TbmlwcGV0Q3JlYXRpb25SZXF1ZXN0ZWQs
IGV2ZW50LmRhdGEpOwogICAgIH0sCiAKLSAgICByZXNldDogZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fc2NyaXB0c1ZpZXcucmVzZXQoKTsKLSAgICAgICAgdGhpcy5fY29udGVudFNj
cmlwdHNWaWV3LnJlc2V0KCk7Ci0gICAgICAgIHRoaXMuX3NuaXBwZXRzVmlldy5yZXNldCgpOwot
ICAgIH0sCi0KICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMKaW5kZXggMGZkMjhjNGVjZDlhNzFkOTViZjdmMTk3ZWJhMDA4MzhmNDY4YzliMS4uNDI2
YTk3ODkxZWI5ZTFmMjM3OTU0MTYwNWE2MzkzYTRlNTdkZDZmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTE5MCw4ICsx
OTAsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rpb24od29ya3NwYWNlRm9y
VGVzdCkKIAogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHRoaXMuX3Vp
U291cmNlQ29kZUFkZGVkLCB0aGlzKTsKICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29k
ZVJlbW92ZWQsIHRoaXMuX3VpU291cmNlQ29kZVJlbW92ZWQsIHRoaXMpOwotICAgIHRoaXMuX3dv
cmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRl
ci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcy5fdWlTb3VyY2VDb2Rl
UmVtb3ZlZCwgdGhpcyk7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcmVzZXQu
YmluZCh0aGlzKSwgdGhpcyk7CisgICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcHJv
amVjdFdpbGxSZXNldC5iaW5kKHRoaXMpLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50
cy5HbG9iYWxPYmplY3RDbGVhcmVkLCB0aGlzLl9kZWJ1Z2dlclJlc2V0LCB0aGlzKTsKIAogICAg
IFdlYkluc3BlY3Rvci5hZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIucmVnaXN0ZXJTZWFyY2hTY29w
ZShuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZSh0aGlzLl93b3Jrc3BhY2UpKTsK
IH0KQEAgLTI0MywxMiArMjQzLDE0IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUJ1dHRv
bi50b2dnbGVkKQogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldEZvcm1hdHRlZCh0cnVlKTsK
LQorICAgICAgICB2YXIgcHJvamVjdE5hbWUgPSB1aVNvdXJjZUNvZGUucHJvamVjdCgpLm5hbWUo
KTsKKyAgICAgICAgaWYgKHByb2plY3ROYW1lID09PSBXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVz
LkRlYnVnZ2VyIHx8IHByb2plY3ROYW1lID09PSBXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVzLkxp
dmVFZGl0KQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9lZGl0b3JDb250YWlu
ZXIuYWRkVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CiAgICAgICAgIHRoaXMuX25hdmlnYXRv
ci5hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgLy8gUmVwbGFjZSBkZWJ1
Z2dlciBzY3JpcHQtYmFzZWQgdWlTb3VyY2VDb2RlIHdpdGggYSBuZXR3b3JrLWJhc2VkIG9uZS4K
LSAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRVSVNvdXJjZUNvZGUgJiYgdGhpcy5fY3VycmVudFVJ
U291cmNlQ29kZS5pc1RlbXBvcmFyeSAmJiB0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlICE9PSB1
aVNvdXJjZUNvZGUgJiYgdGhpcy5fY3VycmVudFVJU291cmNlQ29kZS51cmwgPT09IHVpU291cmNl
Q29kZS51cmwpIHsKLSAgICAgICAgICAgIHZhciBjdXJyZW50VUlTb3VyY2VDb2RlID0gdGhpcy5f
Y3VycmVudFVJU291cmNlQ29kZTsKKyAgICAgICAgdmFyIGN1cnJlbnRVSVNvdXJjZUNvZGUgPSB0
aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlOworICAgICAgICBpZiAoY3VycmVudFVJU291cmNlQ29k
ZSAmJiBjdXJyZW50VUlTb3VyY2VDb2RlLnByb2plY3QoKS5uYW1lKCkgPT09IFdlYkluc3BlY3Rv
ci5wcm9qZWN0TmFtZXMuRGVidWdnZXIgJiYgY3VycmVudFVJU291cmNlQ29kZSAhPT0gdWlTb3Vy
Y2VDb2RlICYmIGN1cnJlbnRVSVNvdXJjZUNvZGUudXJsID09PSB1aVNvdXJjZUNvZGUudXJsKSB7
CiAgICAgICAgICAgICB0aGlzLl9zaG93RmlsZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICAgICAg
dGhpcy5fZWRpdG9yQ29udGFpbmVyLnJlbW92ZVVJU291cmNlQ29kZShjdXJyZW50VUlTb3VyY2VD
b2RlKTsKICAgICAgICAgfQpAQCAtMjU3LDkgKzI1OSwxOSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfdWlTb3VyY2VDb2RlUmVtb3ZlZDogZnVuY3Rpb24o
ZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gLyoqIEB0eXBlIHtXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlfSAqLyAoZXZlbnQuZGF0YSk7Ci0gICAgICAgIHRoaXMuX2Vk
aXRvckNvbnRhaW5lci5yZW1vdmVVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKLSAgICAgICAg
dGhpcy5fbmF2aWdhdG9yLnJlbW92ZVVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwotICAgICAg
ICB0aGlzLl9yZW1vdmVTb3VyY2VGcmFtZSh1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlzLl9y
ZW1vdmVVSVNvdXJjZUNvZGVzKFt1aVNvdXJjZUNvZGVdKTsKKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59IHVpU291cmNl
Q29kZXMKKyAgICAgKi8KKyAgICBfcmVtb3ZlVUlTb3VyY2VDb2RlczogZnVuY3Rpb24odWlTb3Vy
Y2VDb2RlcykKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rl
cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5fbmF2aWdhdG9yLnJlbW92ZVVJU291
cmNlQ29kZSh1aVNvdXJjZUNvZGVzW2ldKTsKKyAgICAgICAgICAgIHRoaXMuX3JlbW92ZVNvdXJj
ZUZyYW1lKHVpU291cmNlQ29kZXNbaV0pOworICAgICAgICB9CisgICAgICAgIHRoaXMuX2VkaXRv
ckNvbnRhaW5lci5yZW1vdmVVSVNvdXJjZUNvZGVzKHVpU291cmNlQ29kZXMpOwogICAgIH0sCiAK
ICAgICBfY29uc29sZUNvbW1hbmRFdmFsdWF0ZWRJblNlbGVjdGVkQ2FsbEZyYW1lOiBmdW5jdGlv
bihldmVudCkKQEAgLTMzOSwyNiArMzUxLDIyIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlID0gewogCiAgICAgX2RlYnVnZ2VyV2FzRGlzYWJsZWQ6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgICAgIHRoaXMuX2RlYnVnZ2VyUmVzZXQo
KTsKICAgICB9LAogCi0gICAgX3Jlc2V0OiBmdW5jdGlvbigpCisgICAgX2RlYnVnZ2VyUmVzZXQ6
IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRRdWVyeTsKLSAg
ICAgICAgdGhpcy5zZWFyY2hDYW5jZWxlZCgpOwotCiAgICAgICAgIHRoaXMuX2RlYnVnZ2VyUmVz
dW1lZCgpOwotCi0gICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlOwotICAg
ICAgICB0aGlzLl9uYXZpZ2F0b3IucmVzZXQoKTsKLSAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFp
bmVyLnJlc2V0KCk7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVNjcmlwdFZpZXdTdGF0dXNCYXJJdGVt
cygpOwotICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5qc0JyZWFrcG9pbnRzLnJlc2V0KCk7CiAg
ICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnMucmVzZXQoKTsKKyAgICB9
LAogCi0gICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNl
Q29kZXMoKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0
aDsgKytpKQotICAgICAgICAgICAgdGhpcy5fcmVtb3ZlU291cmNlRnJhbWUodWlTb3VyY2VDb2Rl
c1tpXSk7CisgICAgX3Byb2plY3RXaWxsUmVzZXQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgdmFyIHByb2plY3QgPSBldmVudC5kYXRhOworICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
cyA9IHByb2plY3QudWlTb3VyY2VDb2RlcygpOworICAgICAgICB0aGlzLl9yZW1vdmVVSVNvdXJj
ZUNvZGVzKHVpU291cmNlQ29kZXMpOworICAgICAgICBpZiAocHJvamVjdC5uYW1lKCkgPT09IFdl
Ykluc3BlY3Rvci5wcm9qZWN0TmFtZXMuTmV0d29yaykKKyAgICAgICAgICAgIHRoaXMuX2VkaXRv
ckNvbnRhaW5lci5yZXNldCgpOwogICAgIH0sCiAKICAgICBnZXQgdmlzaWJsZVZpZXcoKQpAQCAt
MzgyLDcgKzM5MCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewog
ICAgIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmRlYnVnZ2VyRW5h
YmxlZCgpICYmIGFuY2hvci51aVNvdXJjZUNvZGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2Rl
cygpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0
KFdlYkluc3BlY3Rvci5wcm9qZWN0TmFtZXMuTmV0d29yaykudWlTb3VyY2VDb2RlcygpOwogICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVuZ3RoOyArK2kpIHsKICAg
ICAgICAgICAgIGlmICh1aVNvdXJjZUNvZGVzW2ldLnVybCA9PT0gYW5jaG9yLmhyZWYpIHsKICAg
ICAgICAgICAgICAgICBhbmNob3IudWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2Rlc1tpXTsKQEAg
LTUyMiwxMyArNTMwLDEwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogICAgIHsKICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHVpTG9jYXRpb24udWlTb3VyY2VD
b2RlOwogICAgICAgICAvLyBTb21lIHNjcmlwdHMgKGFub255bW91cyBhbmQgc25pcHBldHMgZXZh
bHVhdGlvbnMpIGFyZSBub3QgYWRkZWQgdG8gZmlsZXMgc2VsZWN0IGJ5IGRlZmF1bHQuCi0gICAg
ICAgIGlmICh1aVNvdXJjZUNvZGUuaXNUZW1wb3JhcnkpIHsKLSAgICAgICAgICAgIGlmICh0aGlz
Ll9jdXJyZW50VUlTb3VyY2VDb2RlICYmIHRoaXMuX2N1cnJlbnRVSVNvdXJjZUNvZGUuc2NyaXB0
RmlsZSgpICYmIHRoaXMuX2N1cnJlbnRVSVNvdXJjZUNvZGUuc2NyaXB0RmlsZSgpLmlzRGl2ZXJn
aW5nRnJvbVZNKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgdGhpcy5f
ZWRpdG9yQ29udGFpbmVyLmFkZFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwotICAgICAgICAg
ICAgaWYgKHVpU291cmNlQ29kZS5mb3JtYXR0ZWQoKSAhPT0gdGhpcy5fdG9nZ2xlRm9ybWF0U291
cmNlQnV0dG9uLnRvZ2dsZWQpCi0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldEZvcm1h
dHRlZCh0aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VCdXR0b24udG9nZ2xlZCk7Ci0gICAgICAgIH0K
KyAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRVSVNvdXJjZUNvZGUgJiYgdGhpcy5fY3VycmVudFVJ
U291cmNlQ29kZS5zY3JpcHRGaWxlKCkgJiYgdGhpcy5fY3VycmVudFVJU291cmNlQ29kZS5zY3Jp
cHRGaWxlKCkuaXNEaXZlcmdpbmdGcm9tVk0oKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgaWYgKHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUJ1dHRvbi50b2dnbGVkICYmICF1aVNvdXJj
ZUNvZGUuZm9ybWF0dGVkKCkpCisgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0Rm9ybWF0dGVk
KHRydWUpOwogICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0aGlzLl9zaG93RmlsZSh1aVNvdXJj
ZUNvZGUpOwogICAgICAgICBzb3VyY2VGcmFtZS5yZXZlYWxMaW5lKHVpTG9jYXRpb24ubGluZU51
bWJlcik7CiAgICAgICAgIHNvdXJjZUZyYW1lLmZvY3VzKCk7CkBAIC0xMTYwLDcgKzExNjUsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIHNob3dHb1Rv
U291cmNlRGlhbG9nOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuT3Bl
blJlc291cmNlRGlhbG9nLnNob3codGhpcywgdGhpcy5fd29ya3NwYWNlLCB0aGlzLmVkaXRvclZp
ZXcubWFpbkVsZW1lbnQpOworICAgICAgICBXZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9n
LnNob3codGhpcywgdGhpcy5lZGl0b3JWaWV3Lm1haW5FbGVtZW50KTsKICAgICB9LAogCiAgICAg
X19wcm90b19fOiBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaW1wbGVXb3Jrc3BhY2VQcm92
aWRlci5qcwppbmRleCAwNTY2OGEyMTI5NjA0ZjhmMzJmZGZmNWU5NmJhZWM4MzZjMzY0Nzc0Li4w
MzA0OWIwNjA4YzgyODY3ZWJiZGNiYzRlODA1ZmVkM2JkMmZhZWFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2ltcGxlV29ya3NwYWNl
UHJvdmlkZXIuanMKQEAgLTEyMiw2ICsxMjIsNyBAQCBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3Nw
YWNlUHJvdmlkZXIucHJvdG90eXBlID0gewogICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB0aGlzLl9jb250ZW50UHJvdmlkZXJzID0ge307CisgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92aWRlci5FdmVudHMu
UmVzZXQsIG51bGwpOwogICAgIH0sCiAgICAgCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3Iu
T2JqZWN0LnByb3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TdHlsZXNTb3VyY2VNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TdHlsZXNTb3VyY2VNYXBwaW5nLmpzCmluZGV4IGJkN2UyNmMyYWY3NDQ1NjQ3
MTNmYWU4MDRjMGI2ODNjYzExMGQyZDkuLmZhODZhY2JjNGRmMGExNGU2M2M2NDFlYTRhNGU5NjM5
MGRmN2Y1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U3R5bGVzU291cmNlTWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanMKQEAgLTM2LDcgKzM2LDcgQEAKIFdlYkluc3Bl
Y3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nID0gZnVuY3Rpb24od29ya3NwYWNlKQogewogICAgIHRo
aXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKLSAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0
aGlzLl9yZXNldCwgdGhpcyk7CisgICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcHJv
amVjdFdpbGxSZXNldCwgdGhpcyk7CiAgICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVB
ZGRlZCwgdGhpcy5fdWlTb3VyY2VDb2RlQWRkZWRUb1dvcmtzcGFjZSwgdGhpcyk7CiAKICAgICB0
aGlzLl91aVNvdXJjZUNvZGVGb3JVUkwgPSB7fTsKQEAgLTkwLDEwICs5MCwxMiBAQCBXZWJJbnNw
ZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5jc3NNb2RlbC5zZXRTb3VyY2VNYXBwaW5nKHVpU291cmNlQ29kZS51cmwsIHRoaXMpOwog
ICAgIH0sCiAKLSAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBfcHJvamVjdFdpbGxSZXNldDog
ZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JVUkwg
PSB7fTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnJlc2V0U291cmNlTWFwcGluZ3Mo
KTsKKyAgICAgICAgdmFyIHByb2plY3QgPSBldmVudC5kYXRhOworICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlcyA9IHByb2plY3QudWlTb3VyY2VDb2RlcygpOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHVpU291cmNlQ29kZXM7ICsraSkKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl91aVNv
dXJjZUNvZGVGb3JVUkxbdWlTb3VyY2VDb2Rlc1tpXS51cmxdOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250
YWluZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRv
ckNvbnRhaW5lci5qcwppbmRleCAyYmFhZDUxNjA2ZWJlZTRlYzFjNzM5YjIyOWRlMGQ1OTRlYzlj
MDEyLi4xYzM1YWU1OTgyYjMwODJiNTViYjlkOTQyYjQxN2QxZDA2M2EyYTUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5l
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRv
ckNvbnRhaW5lci5qcwpAQCAtMjIzLDYgKzIyMyw3IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0
b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAgICAgICB2YXIgdGFiSWRzID0gW107CiAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkgewogICAg
ICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZXNbaV07CisgICAgICAgICAg
ICBkZWxldGUgdGhpcy5fbG9hZGVkVVJJc1t1aVNvdXJjZUNvZGUudXJpKCldOwogICAgICAgICAg
ICAgdmFyIHRhYklkID0gdGhpcy5fdGFiSWRzLmdldCh1aVNvdXJjZUNvZGUpOwogICAgICAgICAg
ICAgaWYgKHRhYklkKQogICAgICAgICAgICAgICAgIHRhYklkcy5wdXNoKHRhYklkKTsKQEAgLTM5
MSwxMiArMzkyLDcgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5
cGUgPSB7CiAKICAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fdGFi
YmVkUGFuZS5jbG9zZUFsbFRhYnMoKTsKLSAgICAgICAgdGhpcy5fdGFiSWRzID0gbmV3IE1hcCgp
OwotICAgICAgICB0aGlzLl9maWxlcyA9IHt9OwotICAgICAgICBkZWxldGUgdGhpcy5fY3VycmVu
dEZpbGU7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl91c2VyU2VsZWN0ZWRGaWxlczsKLSAgICAgICAg
dGhpcy5fbG9hZGVkVVJJcyA9IHt9OwogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggZTZjYWNi
YTAyNDljMzViODFiZjkwNDczODcxOTU2ZjIxY2IwMjA5Ny4uN2JjOGM3YzI5YzBjYzI0OThlMmQy
ZmQ3MjU1NjM0NzU1MDcxOTUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKQEAgLTE2NCw2ICsxNjQsMTQgQEAgV2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAq
IEByZXR1cm4ge1dlYkluc3BlY3Rvci5Qcm9qZWN0fQorICAgICAqLworICAgIHByb2plY3Q6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UucHJvamVjdEZv
clVJU291cmNlQ29kZSh0aGlzKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtm
dW5jdGlvbig/c3RyaW5nLGJvb2xlYW4sc3RyaW5nKX0gY2FsbGJhY2sKICAgICAgKi8KICAgICBy
ZXF1ZXN0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCkBAIC02MDYsOCArNjE0LDYgQEAgV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyID0gZnVuY3Rpb24oKQogCiBXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzID0gewogICAgIFVJU291cmNlQ29kZUFkZGVk
OiAiVUlTb3VyY2VDb2RlQWRkZWQiLAotICAgIFRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkOiAi
VGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWQiLAotICAgIFRlbXBvcmFyeVVJU291cmNlQ29kZVJl
bW92ZWQ6ICJUZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkIiwKICAgICBVSVNvdXJjZUNvZGVS
ZW1vdmVkOiAiVUlTb3VyY2VDb2RlUmVtb3ZlZCIKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5qcwppbmRleCA2ZmY0MTE3YjI0NzM0OTQ5MzY4
Yjc0ZmViYzFiOGQyNmRlZDgzOTZkLi45NTIwZGYwZTU4YTU1MjJjYTM2Y2Y0N2U5NzE1YjFlNWQy
MmQ5ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dv
cmtzcGFjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtz
cGFjZS5qcwpAQCAtMzQsMjUgKzM0LDE2IEBACiBXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJv
bGxlciA9IGZ1bmN0aW9uKHdvcmtzcGFjZSkKIHsKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jr
c3BhY2U7Ci0gICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuTWFpbkZyYW1lTmF2
aWdhdGVkLCB0aGlzLl9tYWluRnJhbWVOYXZpZ2F0ZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lQWRkZWQsIHRoaXMuX2ZyYW1lQWRkZWQsIHRoaXMp
OworICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkluc3BlY3RlZFVSTENoYW5n
ZWQsIHRoaXMuX2luc3BlY3RlZFVSTENoYW5nZWQsIHRoaXMpOwogfQogCiBXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlQ29udHJvbGxlci5wcm90b3R5cGUgPSB7Ci0gICAgX21haW5GcmFtZU5hdmlnYXRl
ZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50
fSBldmVudAorICAgICAqLworICAgIF9pbnNwZWN0ZWRVUkxDaGFuZ2VkOiBmdW5jdGlvbihldmVu
dCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5SZXZpc2lvbi5maWx0ZXJPdXRTdGFsZVJl
dmlzaW9ucygpOwotICAgICAgICB0aGlzLl93b3Jrc3BhY2UuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMu
X3dvcmtzcGFjZS5wcm9qZWN0KCkpOwotICAgICAgICB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgp
LnJlc2V0KCk7Ci0gICAgICAgIHRoaXMuX3dvcmtzcGFjZS5yZXNldCgpOwotICAgICAgICB0aGlz
Ll93b3Jrc3BhY2UuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UuRXZlbnRzLlByb2plY3REaWRSZXNldCwgdGhpcy5fd29ya3NwYWNlLnByb2plY3QoKSk7Ci0g
ICAgfSwKLQotICAgIF9mcmFtZUFkZGVkOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAg
IHZhciBmcmFtZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lfSAq
LyAoZXZlbnQuZGF0YSk7Ci0gICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKQotICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLlJldmlzaW9uLmZpbHRlck91dFN0YWxlUmV2aXNpb25zKCk7CiAg
ICAgfQogfQogCkBAIC04Miw3ICs3Myw4IEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92aWRl
ciA9IGZ1bmN0aW9uKCkgeyB9CiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92aWRlci5FdmVu
dHMgPSB7CiAgICAgRmlsZUFkZGVkOiAiRmlsZUFkZGVkIiwKLSAgICBGaWxlUmVtb3ZlZDogIkZp
bGVSZW1vdmVkIgorICAgIEZpbGVSZW1vdmVkOiAiRmlsZVJlbW92ZWQiLAorICAgIFJlc2V0OiAi
UmVzZXQiLAogfQogCiBXZWJJbnNwZWN0b3IuV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBlID0g
ewpAQCAtMTMwLDIzICsxMjIsMjggQEAgV2ViSW5zcGVjdG9yLndvcmtzcGFjZUNvbnRyb2xsZXIg
PSBudWxsOwogCiAvKioKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZX0gd29ya3Nw
YWNlCisgKiBAcGFyYW0ge3N0cmluZ30gbmFtZQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29y
a3NwYWNlUHJvdmlkZXJ9IHdvcmtzcGFjZVByb3ZpZGVyCiAgKiBAY29uc3RydWN0b3IKICAqLwot
V2ViSW5zcGVjdG9yLlByb2plY3QgPSBmdW5jdGlvbih3b3Jrc3BhY2UsIHdvcmtzcGFjZVByb3Zp
ZGVyKQorV2ViSW5zcGVjdG9yLlByb2plY3QgPSBmdW5jdGlvbih3b3Jrc3BhY2UsIG5hbWUsIHdv
cmtzcGFjZVByb3ZpZGVyKQogeworICAgIHRoaXMuX25hbWUgPSBuYW1lOwogICAgIHRoaXMuX3Vp
U291cmNlQ29kZXMgPSBbXTsKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7CiAgICAg
dGhpcy5fd29ya3NwYWNlUHJvdmlkZXIgPSB3b3Jrc3BhY2VQcm92aWRlcjsKICAgICB0aGlzLl93
b3Jrc3BhY2VQcm92aWRlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQ
cm92aWRlci5FdmVudHMuRmlsZUFkZGVkLCB0aGlzLl9maWxlQWRkZWQsIHRoaXMpOwogICAgIHRo
aXMuX3dvcmtzcGFjZVByb3ZpZGVyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtz
cGFjZVByb3ZpZGVyLkV2ZW50cy5GaWxlUmVtb3ZlZCwgdGhpcy5fZmlsZVJlbW92ZWQsIHRoaXMp
OworICAgIHRoaXMuX3dvcmtzcGFjZVByb3ZpZGVyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLldvcmtzcGFjZVByb3ZpZGVyLkV2ZW50cy5SZXNldCwgdGhpcy5fcmVzZXQsIHRoaXMpOwog
fQogCiBXZWJJbnNwZWN0b3IuUHJvamVjdC5wcm90b3R5cGUgPSB7Ci0gICAgcmVzZXQ6IGZ1bmN0
aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAgbmFt
ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIucmVz
ZXQoKTsKLSAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9IFtdOworICAgICAgICByZXR1cm4g
dGhpcy5fbmFtZTsKICAgICB9LAogCiAgICAgX2ZpbGVBZGRlZDogZnVuY3Rpb24oZXZlbnQpCkBA
IC0xNzQsNiArMTcxLDEyIEBAIFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5fd29ya3NwYWNlLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlbW92ZWQsIHVpU291
cmNlQ29kZSk7CiAgICAgfSwKIAorICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgdGhpcy5fd29ya3NwYWNlLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzKTsKKyAgICAgICAgdGhpcy5f
dWlTb3VyY2VDb2RlcyA9IFtdOworICAgIH0sCisKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0
cmluZ30gdXJsCiAgICAgICogQHJldHVybiB7P1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9CkBA
IC0yNDAsNiArMjQzLDE0IEBAIFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3RvdHlwZSA9IHsKICAg
ICB9CiB9CiAKK1dlYkluc3BlY3Rvci5wcm9qZWN0TmFtZXMgPSB7CisgICAgRGVidWdnZXI6ICJk
ZWJ1Z2dlciIsCisgICAgTGl2ZUVkaXQ6ICJsaXZlZWRpdCIsCisgICAgQ29tcGlsZXI6ICJjb21w
aWxlciIsCisgICAgTmV0d29yazogIm5ldHdvcmsiLAorICAgIFNuaXBwZXRzOiAic25pcHBldHMi
LAorfQorCiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGVQcm92aWRlcn0KQEAgLTI0NywxNiArMjU4LDEzIEBAIFdlYkluc3BlY3Rv
ci5Qcm9qZWN0LnByb3RvdHlwZSA9IHsKICAqLwogV2ViSW5zcGVjdG9yLldvcmtzcGFjZSA9IGZ1
bmN0aW9uKCkKIHsKLSAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3Iu
Q29udGVudFByb3ZpZGVyPn0gKi8KLSAgICB0aGlzLl90ZW1wb3JhcnlDb250ZW50UHJvdmlkZXJz
ID0ge307Ci0gICAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZT59ICovCi0gICAgdGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2RlcyA9IHt9OworICAg
IC8qKiBAdHlwZSB7IU9iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuUHJvamVjdD59ICovCisg
ICAgdGhpcy5fcHJvamVjdHMgPSB7fTsKIH0KIAogV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVu
dHMgPSB7CiAgICAgVUlTb3VyY2VDb2RlQ29udGVudENvbW1pdHRlZDogIlVJU291cmNlQ29kZUNv
bnRlbnRDb21taXR0ZWQiLAotICAgIFByb2plY3RXaWxsUmVzZXQ6ICJQcm9qZWN0V2lsbFJlc2V0
IiwKLSAgICBQcm9qZWN0RGlkUmVzZXQ6ICJQcm9qZWN0RGlkUmVzZXQiCisgICAgUHJvamVjdFdp
bGxSZXNldDogIlByb2plY3RXaWxsUmVzZXQiCiB9CiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2Uu
cHJvdG90eXBlID0gewpAQCAtMjY2LDcgKzI3NCw3IEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2Uu
cHJvdG90eXBlID0gewogICAgICAqLwogICAgIHVpU291cmNlQ29kZUZvclVSTDogZnVuY3Rpb24o
dXJsKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2plY3QudWlTb3VyY2VDb2RlRm9y
VVJMKHVybCk7CisgICAgICAgIHJldHVybiB0aGlzLl9wcm9qZWN0c1tXZWJJbnNwZWN0b3IucHJv
amVjdE5hbWVzLk5ldHdvcmtdLnVpU291cmNlQ29kZUZvclVSTCh1cmwpOwogICAgIH0sCiAKICAg
ICAvKioKQEAgLTI3NSw2MSArMjgzLDY3IEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90
eXBlID0gewogICAgICAqLwogICAgIHVpU291cmNlQ29kZUZvclVSSTogZnVuY3Rpb24odXJpKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZXNbdXJpXSB8
fCB0aGlzLl9wcm9qZWN0LnVpU291cmNlQ29kZUZvclVSSSh1cmkpOworICAgICAgICBmb3IgKHZh
ciBwcm9qZWN0TmFtZSBpbiB0aGlzLl9wcm9qZWN0cykgeworICAgICAgICAgICAgdmFyIHByb2pl
Y3QgPSB0aGlzLl9wcm9qZWN0c1twcm9qZWN0TmFtZV07CisgICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gcHJvamVjdC51aVNvdXJjZUNvZGVGb3JVUkkodXJpKTsKKyAgICAgICAgICAgIGlm
ICh1aVNvdXJjZUNvZGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIHVpU291cmNlQ29kZTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9LAogCiAgICAgLyoqCiAgICAgICog
QHBhcmFtIHtzdHJpbmd9IHByb2plY3ROYW1lCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlUHJvdmlkZXJ9IHdvcmtzcGFjZVByb3ZpZGVyCisgICAgICogQHJldHVybiB7V2Vi
SW5zcGVjdG9yLlByb2plY3R9CiAgICAgICovCiAgICAgYWRkUHJvamVjdDogZnVuY3Rpb24ocHJv
amVjdE5hbWUsIHdvcmtzcGFjZVByb3ZpZGVyKQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IHN1
cHBvcnQgbXVsdGlwbGUgcHJvamVjdHMgaWRlbnRpZmllZCBieSBwcm9qZWN0IG5hbWUuCi0gICAg
ICAgIHRoaXMuX3Byb2plY3QgPSBuZXcgV2ViSW5zcGVjdG9yLlByb2plY3QodGhpcywgd29ya3Nw
YWNlUHJvdmlkZXIpOworICAgICAgICB0aGlzLl9wcm9qZWN0c1twcm9qZWN0TmFtZV0gPSBuZXcg
V2ViSW5zcGVjdG9yLlByb2plY3QodGhpcywgcHJvamVjdE5hbWUsIHdvcmtzcGFjZVByb3ZpZGVy
KTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2plY3RzW3Byb2plY3ROYW1lXTsKICAgICB9LAog
CiAgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHByb2plY3ROYW1lCiAgICAgICogQHJl
dHVybiB7V2ViSW5zcGVjdG9yLlByb2plY3R9CiAgICAgICovCi0gICAgcHJvamVjdDogZnVuY3Rp
b24oKQorICAgIHByb2plY3Q6IGZ1bmN0aW9uKHByb2plY3ROYW1lKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX3Byb2plY3Q7CisgICAgICAgIHJldHVybiB0aGlzLl9wcm9qZWN0c1twcm9q
ZWN0TmFtZV07CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0KKyAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVj
dG9yLlByb2plY3Q+fQogICAgICAqLwotICAgIHVpU291cmNlQ29kZXM6IGZ1bmN0aW9uKCkKKyAg
ICBwcm9qZWN0czogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2pl
Y3QudWlTb3VyY2VDb2RlcygpOworICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLl9w
cm9qZWN0cyk7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmkK
LSAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
Q29udGVudFByb3ZpZGVyfSBjb250ZW50UHJvdmlkZXIKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IGlzRWRpdGFibGUKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBpc0NvbnRlbnRTY3JpcHQKKyAg
ICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59CiAgICAgICov
Ci0gICAgYWRkVGVtcG9yYXJ5VUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1cmksIHVybCwgY29udGVu
dFByb3ZpZGVyLCBpc0VkaXRhYmxlLCBpc0NvbnRlbnRTY3JpcHQpCisgICAgdWlTb3VyY2VDb2Rl
czogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlKHRoaXMsIHVyaSwgdXJsLCBjb250ZW50UHJvdmlkZXIuY29u
dGVudFR5cGUoKSwgaXNFZGl0YWJsZSk7Ci0gICAgICAgIHRoaXMuX3RlbXBvcmFyeUNvbnRlbnRQ
cm92aWRlcnNbdXJpXSA9IGNvbnRlbnRQcm92aWRlcjsKLSAgICAgICAgdGhpcy5fdGVtcG9yYXJ5
VUlTb3VyY2VDb2Rlc1t1cmldID0gdWlTb3VyY2VDb2RlOwotICAgICAgICB1aVNvdXJjZUNvZGUu
aXNDb250ZW50U2NyaXB0ID0gaXNDb250ZW50U2NyaXB0OwotICAgICAgICB1aVNvdXJjZUNvZGUu
aXNUZW1wb3JhcnkgPSB0cnVlOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291
cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGUpOwotICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2Rl
OworICAgICAgICB2YXIgcmVzdWx0ID0gW107CisgICAgICAgIGZvciAodmFyIHByb2plY3ROYW1l
IGluIHRoaXMuX3Byb2plY3RzKSB7CisgICAgICAgICAgICB2YXIgcHJvamVjdCA9IHRoaXMuX3By
b2plY3RzW3Byb2plY3ROYW1lXTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQo
cHJvamVjdC51aVNvdXJjZUNvZGVzKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZX0gdWlTb3VyY2VDb2RlCisgICAgICogQHJldHVybiB7P1dlYkluc3BlY3Rvci5Qcm9q
ZWN0fQogICAgICAqLwotICAgIHJlbW92ZVRlbXBvcmFyeVVJU291cmNlQ29kZTogZnVuY3Rpb24o
dWlTb3VyY2VDb2RlKQorICAgIHByb2plY3RGb3JVSVNvdXJjZUNvZGU6IGZ1bmN0aW9uKHVpU291
cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl90ZW1wb3JhcnlDb250ZW50UHJv
dmlkZXJzW3VpU291cmNlQ29kZS51cmkoKV07Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl90ZW1wb3Jh
cnlVSVNvdXJjZUNvZGVzW3VpU291cmNlQ29kZS51cmkoKV07Ci0gICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVu
dHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZCwgdWlTb3VyY2VDb2RlKTsKKyAgICAgICAg
Zm9yICh2YXIgcHJvamVjdE5hbWUgaW4gdGhpcy5fcHJvamVjdHMpIHsKKyAgICAgICAgICAgIHZh
ciBwcm9qZWN0ID0gdGhpcy5fcHJvamVjdHNbcHJvamVjdE5hbWVdOworICAgICAgICAgICAgaWYg
KHByb2plY3QudWlTb3VyY2VDb2RlRm9yVVJJKHVpU291cmNlQ29kZS51cmkoKSkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHByb2plY3Q7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7
CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzM4LDEyICszNTIsOCBAQCBXZWJJbnNwZWN0b3IuV29y
a3NwYWNlLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZXF1ZXN0RmlsZUNvbnRlbnQ6IGZ1
bmN0aW9uKHVpU291cmNlQ29kZSwgY2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIgdGVtcG9y
YXJ5Q29udGVudFByb3ZpZGVyID0gdGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyc1t1aVNv
dXJjZUNvZGUudXJpKCldOwotICAgICAgICBpZiAodGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyKSB7
Ci0gICAgICAgICAgICB0ZW1wb3JhcnlDb250ZW50UHJvdmlkZXIucmVxdWVzdENvbnRlbnQoY2Fs
bGJhY2spOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX3By
b2plY3QucmVxdWVzdEZpbGVDb250ZW50KHVpU291cmNlQ29kZS51cmkoKSwgY2FsbGJhY2spOwor
ICAgICAgICB2YXIgcHJvamVjdCA9IHRoaXMucHJvamVjdEZvclVJU291cmNlQ29kZSh1aVNvdXJj
ZUNvZGUpOworICAgICAgICBwcm9qZWN0LnJlcXVlc3RGaWxlQ29udGVudCh1aVNvdXJjZUNvZGUu
dXJpKCksIGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0zNTMsOSArMzYzLDggQEAg
V2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc2V0Rmls
ZUNvbnRlbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbmV3Q29udGVudCwgY2FsbGJhY2spCiAg
ICAgewotICAgICAgICBpZiAodGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyc1t1aVNvdXJj
ZUNvZGUudXJpKCldKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLl9wcm9qZWN0
LnNldEZpbGVDb250ZW50KHVpU291cmNlQ29kZS51cmwsIG5ld0NvbnRlbnQsIGNhbGxiYWNrKTsK
KyAgICAgICAgdmFyIHByb2plY3QgPSB0aGlzLnByb2plY3RGb3JVSVNvdXJjZUNvZGUodWlTb3Vy
Y2VDb2RlKTsKKyAgICAgICAgcHJvamVjdC5zZXRGaWxlQ29udGVudCh1aVNvdXJjZUNvZGUudXJp
KCksIG5ld0NvbnRlbnQsIGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0zNjcsMTgg
KzM3Niw4IEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlID0gewogICAgICAqLwog
ICAgIHNlYXJjaEluRmlsZUNvbnRlbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgcXVlcnksIGNh
c2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIHRlbXBv
cmFyeUNvbnRlbnRQcm92aWRlciA9IHRoaXMuX3RlbXBvcmFyeUNvbnRlbnRQcm92aWRlcnNbdWlT
b3VyY2VDb2RlLnVyaSgpXTsKLSAgICAgICAgaWYgKHRlbXBvcmFyeUNvbnRlbnRQcm92aWRlcikg
ewotICAgICAgICAgICAgdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyLnNlYXJjaEluQ29udGVudChx
dWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX3Byb2plY3Quc2VhcmNoSW5GaWxlQ29udGVu
dCh1aVNvdXJjZUNvZGUudXJpKCksIHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxs
YmFjayk7Ci0gICAgfSwKLQotICAgIHJlc2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0
aGlzLl90ZW1wb3JhcnlDb250ZW50UHJvdmlkZXJzID0ge307Ci0gICAgICAgIHRoaXMuX3RlbXBv
cmFyeVVJU291cmNlQ29kZXMgPSB7fTsKKyAgICAgICAgdmFyIHByb2plY3QgPSB0aGlzLnByb2pl
Y3RGb3JVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgcHJvamVjdC5zZWFyY2hJ
bkZpbGVDb250ZW50KHVpU291cmNlQ29kZS51cmkoKSwgcXVlcnksIGNhc2VTZW5zaXRpdmUsIGlz
UmVnZXgsIGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3Iu
T2JqZWN0LnByb3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcwppbmRleCAwNTYwMDJmMzMwN2ZkNWRkMzI3MTYwNDQ5NmIyZWFhZmQ2MjQx
YzgzLi42Y2FhMDhhYjk4YzViMjQyOTFiZjczYTZkN2Y5ZDVjODFjYjhhMzY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtNDMyLDEy
ICs0MzIsMTIgQEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0aWVzID0g
ZnVuY3Rpb24oKQogCiAgICAgdGhpcy53b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtz
cGFjZSgpOwogICAgIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKLSAgICB0aGlzLndvcmtzcGFjZS5hZGRQ
cm9qZWN0KCJuZXR3b3JrIiwgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOworICAgIHRo
aXMud29ya3NwYWNlLmFkZFByb2plY3QoV2ViSW5zcGVjdG9yLnByb2plY3ROYW1lcy5OZXR3b3Jr
LCB0aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CiAgICAgdGhpcy53b3Jrc3BhY2VDb250
cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VDb250cm9sbGVyKHRoaXMud29ya3Nw
YWNlKTsKIAogICAgIHRoaXMuYnJlYWtwb2ludE1hbmFnZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnRNYW5hZ2VyKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5icmVha3BvaW50cywgdGhpcy5k
ZWJ1Z2dlck1vZGVsLCB0aGlzLndvcmtzcGFjZSk7CiAKLSAgICB0aGlzLnNjcmlwdFNuaXBwZXRN
b2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsKHRoaXMud29ya3NwYWNl
LCB0aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CisgICAgdGhpcy5zY3JpcHRTbmlwcGV0
TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbCh0aGlzLndvcmtzcGFj
ZSk7CiAgICAgbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcodGhpcy53b3Jr
c3BhY2UsIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKICAgICB0aGlzLmxpdmVFZGl0
U3VwcG9ydCA9IG5ldyBXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTdXBwb3J0KHRoaXMud29ya3NwYWNl
KTsKICAgICB0aGlzLnN0eWxlQ29udGVudEJpbmRpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxl
Q29udGVudEJpbmRpbmcodGhpcy5jc3NNb2RlbCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTk1YWFjYWY1ZmU4NWZhZTU3
M2ZkMzM2ZWI1MjNkNGRkZmI3ZjgzNC4uNDc1NGQ2OTMzZmQ5NmEwZDcxNDg1ZTExMGZmZDg2NmY5
NzkwMThhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDEzLTAxLTExICBWc2V2b2xvZCBWbGFz
b3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdvcmtz
cGFjZSBzaG91bGQgc3VwcG9ydCBzZXZlcmFsIHByb2plY3RzIGFuZCBzaG91bGQgbm90IGhhdmUg
dGVtcG9yYXJ5IFVJU291cmNlQ29kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDU4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZHluYW1pYy1z
Y3JpcHRzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2Ny
aXB0LW1hcHBpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50Lmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX1dv
cmtzcGFjZVRlc3QuSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2UpOgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQt
bW9kZWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9ucy5odG1sOgor
CisyMDEzLTAxLTExICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlZmFjdG9yaW5nLCBtb3ZlIE5ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlciB0byBOZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMgYW5kIHJlbmFtZSBpdHMg
cGFyZW50IHRvIFNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NjM1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZHluYW1pYy1zY3JpcHRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2R5bmFtaWMtc2NyaXB0cy5o
dG1sCmluZGV4IGFlNzg5NjVkNGFjMGE3MzhkZTIyZTc2MmIyZjgyZTgwMDkzZTljYzguLmJiOTUy
YjU5N2IxZDk1N2JhMWQ3ZjMxNmE5NDE0NTY1YjY1NDY4YTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZHluYW1pYy1zY3JpcHRzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5hbWljLXNjcmlw
dHMuaHRtbApAQCAtNTEsNyArNTEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBmdW5jdGlvbiBz
dGVwMygpCiAgICAgewogICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
KCJzY3JpcHRzIik7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gV2ViSW5zcGVjdG9yLndv
cmtzcGFjZS51aVNvdXJjZUNvZGVzKCk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gV2Vi
SW5zcGVjdG9yLndvcmtzcGFjZS5wcm9qZWN0KFdlYkluc3BlY3Rvci5wcm9qZWN0TmFtZXMuTmV0
d29yaykudWlTb3VyY2VDb2RlcygpOwogICAgICAgICB2YXIgdXJscyA9IHVpU291cmNlQ29kZXMu
bWFwKGZ1bmN0aW9uKHVpU291cmNlQ29kZSkgeyByZXR1cm4gdWlTb3VyY2VDb2RlLnBhcnNlZFVS
TC5sYXN0UGF0aENvbXBvbmVudDsgfSk7CiAgICAgICAgIHVybHMuc29ydCgpOwogICAgICAgICAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNj
cmlwdC1tYXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21w
aWxlci1zY3JpcHQtbWFwcGluZy5odG1sCmluZGV4IDE4ZWJlMzExM2U1ZjIxODFkMjA4NmZkNmU5
NzY4YzE4NmU1MTBjNzQuLjcyODJiMmVjZDFlNmJiNTNhNjE3YjZjMzRhNTlmMWIwMDA2ZWNhNTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNj
cmlwdC1tYXBwaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbApAQCAtMTQ3LDcgKzE0Nyw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVGVtcG9yYXJ5VUlT
b3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2
ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQpOwogICAgICAgICAgICAgICAgIHNjcmlwdCA9
IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jaygiY29tcGlsZWQuanMiLCAwLCAwLCB0cnVl
LCAiIik7CiAgICAgICAgICAgICAgICAgc2NyaXB0LnNvdXJjZU1hcFVSTCA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9zb3VyY2UtbWFwLmpzb24iOwogICAgICAg
ICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQpOwpAQCAtMjE1
LDcgKzIxNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlvbiBzdGVw
MSgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9y
V29ya3NwYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWRFdmVudChmdW5jdGlvbigpIHsgfSk7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VD
b2RlQWRkZWRFdmVudChmdW5jdGlvbigpIHsgfSk7CiAgICAgICAgICAgICAgICAgc2NyaXB0ID0g
SW5zcGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKCJjb21waWxlZC5qcyIsIDAsIDAsIHRydWUs
ICIiKTsKICAgICAgICAgICAgICAgICBzY3JpcHQuc291cmNlTWFwVVJMID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJjZS1tYXAuanNvbiI7CiAgICAgICAg
ICAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7CkBAIC0yNzgs
NyArMjc4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgInNvdXJjZXNDb250
ZW50IjpbIjxzb3VyY2UgY29udGVudD4iXQogICAgICAgICAgICAgfTsKICAgICAgICAgICAgIHNj
cmlwdC5zb3VyY2VNYXBVUkwgPSAiZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwiICsgYnRv
YShKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
d2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkRXZlbnQob3JpZ2luYWxV
SVNvdXJjZUNvZGVBZGRlZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jr
c3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQpOwog
CiAgICAgICAgICAgICBmdW5jdGlvbiBvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKHVpU291cmNl
Q29kZSkKICAgICAgICAgICAgIHsKQEAgLTMwOSwxMCArMzA5LDkgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zb3VyY2VNYXBz
RW5hYmxlZC5zZXQodHJ1ZSk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2Rl
bC5fcmVzZXQoKTsKLSAgICAgICAgICAgIHZhciBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcigpOwogICAgICAgICAgICAg
dmFyIHdvcmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlKCk7Ci0gICAgICAgICAg
ICB2YXIgZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJXb3Jrc3BhY2VQcm92aWRlcih3b3Jrc3BhY2UpOwotICAgICAgICAgICAgd29ya3NwYWNlLmFk
ZFByb2plY3QoIm5ldHdvcmsiLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOworICAgICAgICAg
ICAgdmFyIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyKCk7CisgICAgICAgICAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdChX
ZWJJbnNwZWN0b3IucHJvamVjdE5hbWVzLk5ldHdvcmssIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRl
cik7CiAgICAgICAgICAgICB2YXIgZGVidWdnZXJTY3JpcHRNYXBwaW5nID0gbmV3IFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcod29ya3NwYWNlLCBuZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIpOwogCiAgICAgICAgICAgICB2YXIgc2NyaXB0ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVT
Y3JpcHRNb2NrKCJjb21waWxlZC5qcyIsIDAsIDAsIHRydWUsICIiKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1yZXF1ZXN0LXJl
dmlzaW9uLWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvbmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRtbAppbmRleCAxNTUzYzRh
YjYyMDRkMjEzZGM4YTYyNjRjYTBiZGZlMTczZTFhYjNlLi42NTkwY2QzODZjOWQ1N2Y0MDlhMjYx
ODRhZGZmZDQ1OGQyNDRlZGQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXJlcXVl
c3QtcmV2aXNpb24tY29udGVudC5odG1sCkBAIC0xOSw2ICsxOSw5IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgIHZhciByZXNvdXJjZTsKICAgICBmdW5jdGlvbiBzdGVwMihldmVudCkKICAgICB7Cisg
ICAgICAgIHZhciBldmVudFVJU291cmNlQ29kZSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGlmIChl
dmVudFVJU291cmNlQ29kZS51cmwuaW5kZXhPZigic3R5bGUuY3NzIikgPT0gLTEpCisgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIHZhciByZXF1ZXN0ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJu
ZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMu
bGVuZ3RoIC0gMV07CiAgICAgICAgIHVpU291cmNlQ29kZSA9IFdlYkluc3BlY3Rvci53b3Jrc3Bh
Y2UudWlTb3VyY2VDb2RlRm9yVVJMKHJlcXVlc3QudXJsKTsKICAgICAgICAgaWYgKCF1aVNvdXJj
ZUNvZGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jr
c3BhY2UtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFj
ZS10ZXN0LmpzCmluZGV4IDc0NjlmMzYwMjBiNDYzOWZlMjk5ZmE5OTU0YmY1Y2ZiYjhkNWI5OTku
LjA2OGM5NTk2Yjg2ZTZlN2EwMzljMDc0NjQyOTBhZmJhOTE4NjIyYzEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzCkBAIC0zLDE0
ICszLDExIEBAIHZhciBpbml0aWFsaXplX1dvcmtzcGFjZVRlc3QgPSBmdW5jdGlvbigpIHsKIElu
c3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZTsKIEluc3BlY3RvclRlc3QuY3JlYXRlV29ya3NwYWNl
ID0gZnVuY3Rpb24oKQogewotICAgIEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKCk7CiAg
ICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UoKTsKLSAgICBJbnNwZWN0b3JUZXN0LnRlc3REZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyID0g
bmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyKEluc3BlY3RvclRlc3Qu
dGVzdFdvcmtzcGFjZSk7Ci0gICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZFByb2pl
Y3QoIm5ldHdvcmsiLCBJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIp
OworICAgIEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKCk7CisgICAgSW5zcGVjdG9yVGVz
dC50ZXN0V29ya3NwYWNlLmFkZFByb2plY3QoV2ViSW5zcGVjdG9yLnByb2plY3ROYW1lcy5OZXR3
b3JrLCBJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwogICAgIElu
c3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIEluc3BlY3RvclRl
c3QuX2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7CiAgICAgSW5zcGVj
dG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCBJbnNwZWN0b3JUZXN0
Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwotICAgIEluc3BlY3Rv
clRlc3QudGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGVQcm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWQsIEluc3BlY3Rv
clRlc3QuX2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7Ci0gICAgSW5z
cGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkLCBJ
bnNwZWN0b3JUZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwog
fQogCiBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50
ID0gZnVuY3Rpb24oY2FsbGJhY2spCkBAIC0yNiwzMiArMjMsNiBAQCBJbnNwZWN0b3JUZXN0Lndh
aXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50ID0gZnVuY3Rpb24oY2FsbGJhY2sp
CiAgICAgfQogfQogCi1JbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNv
dXJjZUNvZGVBZGRlZEV2ZW50ID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgSW5zcGVjdG9y
VGVzdC50ZXN0V29ya3NwYWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVj
dG9yVGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICBJ
bnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkLCB0
ZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCk7Ci0KLSAgICBmdW5jdGlvbiB0ZW1wb3JhcnlVSVNv
dXJjZUNvZGVBZGRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QudGVzdFdv
cmtzcGFjZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92
aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWQsIHRlbXBvcmFyeVVJU291cmNl
Q29kZUFkZGVkKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3Jh
cnlVSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVBy
b3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICAgICAgY2FsbGJhY2soZXZlbnQuZGF0YSk7Ci0gICAg
fQotfQotCi1JbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNvdXJjZUNv
ZGVSZW1vdmVkRXZlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykKLXsKLSAgICBJbnNwZWN0b3JUZXN0
LnRlc3RXb3Jrc3BhY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlUHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQsIEluc3BlY3Rv
clRlc3QuX2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7Ci0gICAgSW5z
cGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkLCB0
ZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkKTsKLQotICAgIGZ1bmN0aW9uIHRlbXBvcmFyeVVJ
U291cmNlQ29kZVJlbW92ZWQoZXZlbnQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnRl
c3RXb3Jrc3BhY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
UHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQsIHRlbXBvcmFyeVVJ
U291cmNlQ29kZVJlbW92ZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2Uu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRz
LlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQsIEluc3BlY3RvclRlc3QuX2RlZmF1bHRVSVNv
dXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7Ci0gICAgICAgIGNhbGxiYWNrKGV2ZW50LmRh
dGEpOwotICAgIH0KLX0KLQogSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jr
c3BhY2UgPSBmdW5jdGlvbih1cmwsIHR5cGUsIGNvbnRlbnQpCiB7CiAgICAgdmFyIGlzRG9jdW1l
bnQgPSB0eXBlID09PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudDsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIu
aHRtbAppbmRleCAyMzY0YWU1Y2VmMzcyMjAwZjY5ZTkzZjUwMjFiM2ZiZmIzNjU5M2RhLi42YjI2
NDZhYzk5OTJkOWU3OTk5ZDkxNWM4Y2NmNWE3OTdlN2YzZmM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sCkBAIC0x
MjgsNyArMTI4LDYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIF9hZGRUZW1wb3JhcnlVSVNv
dXJjZUNvZGU6IGZ1bmN0aW9uKHVybCkKICAgICAgICAgewogICAgICAgICAgICAgdmFyIHVpU291
cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKHRoaXMsICJ0ZW1wb3Jhcnk6
IiArIHVybCwgdXJsLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsIGZhbHNlKTsK
LSAgICAgICAgICAgIHVpU291cmNlQ29kZS5pc1RlbXBvcmFyeSA9IHRydWU7CiAgICAgICAgICAg
ICB1aVNvdXJjZUNvZGUuc2V0U291cmNlTWFwcGluZyhkZWZhdWx0TWFwcGluZyk7CiAgICAgICAg
ICAgICB1aVNvdXJjZUNvZGVzW3VybF0gPSB1aVNvdXJjZUNvZGU7CiAgICAgICAgICAgICB0ZW1w
b3JhcnlVSVNvdXJjZUNvZGVzW3VybF0gPSB1aVNvdXJjZUNvZGU7CkBAIC0xNTEsNyArMTUwLDEz
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICByZXNldDogZnVuY3Rpb24oKQogICAgICAgICB7
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICBSZXNldHRpbmcgd29ya3Nw
YWNlLiIpOwotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCk7CisgICAgICAgICAgICB2
YXIgc2VsZiA9IHRoaXM7CisgICAgICAgICAgICB2YXIgbW9ja1Byb2plY3QgPSB7fTsKKyAgICAg
ICAgICAgIG1vY2tQcm9qZWN0LnVpU291cmNlQ29kZXMgPSBmdW5jdGlvbigpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYudWlTb3VyY2VDb2RlcygpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgbW9ja1Byb2plY3QpOwog
ICAgICAgICB9CiAgICAgfQogICAgIFdvcmtzcGFjZU1vY2sucHJvdG90eXBlLl9fcHJvdG9fXyA9
IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy5odG1sCmluZGV4IGIyYzkzZTU2ZGJjZmE5
MTc2MTJlOThmYzdmODIzZTM4ZWFmYjlhY2QuLmU5ZTE4ZmQ0ODJlNWI3ZjQxYWQ3NjEzYzQ0NzI2
MTI0YzAyOTBkNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
eW5hbWljLXNjcmlwdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZHluYW1pYy1zY3JpcHRzLmh0bWwKQEAgLTQ4LDcgKzQ4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgZnVuY3Rpb24gc3RlcDMoKQogICAgIHsKICAgICAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVj
dG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IFdl
Ykluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpOworICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlcyA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UucHJvamVjdChXZWJJbnNwZWN0b3IucHJv
amVjdE5hbWVzLk5ldHdvcmspLnVpU291cmNlQ29kZXMoKTsKICAgICAgICAgdmFyIHVybHMgPSB1
aVNvdXJjZUNvZGVzLm1hcChmdW5jdGlvbih1aVNvdXJjZUNvZGUpIHsgcmV0dXJuIHVpU291cmNl
Q29kZS5wYXJzZWRVUkwubGFzdFBhdGhDb21wb25lbnQ7IH0pOwogICAgICAgICB1cmxzLnNvcnQo
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRp
dC1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAppbmRleCBiZjk0N2FjYjQ1MTdm
MDgzYTIzMjdkZDQ2MGVkNDkyMjU1NWVjZjViLi5hNjliOGE2ZmY3ZDZiN2UxZWRkZWMzNzk0NTVk
MWZiYWEwYzNkZTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
bGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dApAQCAtNywy
NiArNywyNiBAQCBSdW5uaW5nOiB0ZXN0RWRpdFVuZG8KIFNldHRpbmcgYnJlYWtwb2ludDoKICAg
ICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFs
c2UpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS5qczoy
LCBlbmFibGVkOnRydWUKKyAgICAgICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVk
OnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRp
dC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IGZhbHNlCisgICAgICAgIHVybDog
ZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBuZXR3
b3JrCiBFZGl0aW5nIHNvdXJjZToKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGlu
ZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAy
LCBkaXNhYmxlZCA9IHRydWUpCiAgICAgT3JpZ2luYWxUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQo
bGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCiAgICAgRHVtcGluZyBicmVha3BvaW50
IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKKyAgICAgICAgZWRp
dC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9p
bnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNU
ZW1wb3Jhcnk6IHRydWUKKyAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5l
TnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBVbmRvaW5nIHNvdXJjZSBlZGl0aW5n
OgogICAgIE9yaWdpbmFsVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAy
KQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBU
ZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRv
ci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIER1
bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0
cnVlCisgICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAg
RHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxp
bmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiBmYWxzZQorICAgICAgICB1cmw6IGVkaXQtbWUtYnJl
YWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogbmV0d29yawogRmluYWxs
eSByZW1vdmluZyBicmVha3BvaW50OgogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChs
aW5lTnVtYmVyID0gMikKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQpAQCAtMzYsMjYg
KzM2LDI2IEBAIFJ1bm5pbmc6IHRlc3RFZGl0Q29tbWl0CiBTZXR0aW5nIGJyZWFrcG9pbnQ6CiAg
ICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZh
bHNlKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUuanM6
MiwgZW5hYmxlZDp0cnVlCisgICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxl
ZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVk
aXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiBmYWxzZQorICAgICAgICB1cmw6
IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogbmV0
d29yawogRWRpdGluZyBzb3VyY2U6CiAgICAgT3JpZ2luYWxUZXh0RWRpdG9yLmFkZEJyZWFrcG9p
bnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCiAgICAgVGV4dEVkaXRvci5yZW1v
dmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2lu
dChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSB0cnVlKQogICAgIER1bXBpbmcgYnJlYWtwb2lu
dCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCisgICAgICAgIGVk
aXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3Bv
aW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlz
VGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGlu
ZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgogQ29tbWl0dGluZyBlZGl0ZWQgc291
cmNlOgogICAgIE9yaWdpbmFsVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIg
PSAyKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAg
ICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAg
IER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxl
ZDp0cnVlCisgICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCiAg
ICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMs
IGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiBmYWxzZQorICAgICAgICB1cmw6IGVkaXQtbWUt
YnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogbmV0d29yawogRmlu
YWxseSByZW1vdmluZyBicmVha3BvaW50OgogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2lu
dChsaW5lTnVtYmVyID0gMikKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQpAQCAtNjUs
MzYgKzY1LDM2IEBAIFJ1bm5pbmc6IHRlc3RFZGl0Q29tbWl0RmFpbEVkaXRDb21taXQKIFNldHRp
bmcgYnJlYWtwb2ludDoKICAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9
IDIsIGRpc2FibGVkID0gZmFsc2UpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAg
ICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKKyAgICAgICAgZWRpdC1tZS1icmVha3Bv
aW50cy5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25z
Ci0gICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IGZh
bHNlCisgICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwg
cHJvamVjdCBuYW1lOiBuZXR3b3JrCiBFZGl0aW5nIHNvdXJjZToKICAgICBPcmlnaW5hbFRleHRF
ZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKICAg
ICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IHRydWUpCiAgICAg
RHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVk
OnRydWUKKyAgICAgICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKICAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS5qcywg
bGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAgICAgdXJsOiBlZGl0LW1lLWJy
ZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBDb21t
aXR0aW5nIGVkaXRlZCBzb3VyY2U6CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAg
ICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKKyAgICAgICAgZWRpdC1tZS1icmVha3Bv
aW50cy5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25z
Ci0gICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRy
dWUKKyAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBw
cm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBFZGl0aW5nIHNvdXJjZSBhZ2FpbiBzbyB0aGF0IGxpdmUg
ZWRpdCBjb3VsZCBzdWNjZWVkOgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAg
ICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCisgICAgICAgIGVkaXQtbWUtYnJlYWtwb2lu
dHMuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwot
ICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVl
CisgICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJv
amVjdCBuYW1lOiBkZWJ1Z2dlcgogQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlIGFnYWluOgogICAg
IE9yaWdpbmFsVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAg
IFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRp
dG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5hZGRC
cmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIER1bXBpbmcg
YnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCisg
ICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGlu
ZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1i
ZXI6IDIsIGlzVGVtcG9yYXJ5OiBmYWxzZQorICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2lu
dHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogbmV0d29yawogRmluYWxseSByZW1v
dmluZyBicmVha3BvaW50OgogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVt
YmVyID0gMikKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQpAQCAtMTA0LDM2ICsxMDQs
MzYgQEAgUnVubmluZzogdGVzdEVkaXRDb21taXRGYWlsVW5kb0NvbW1pdAogU2V0dGluZyBicmVh
a3BvaW50OgogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlz
YWJsZWQgPSBmYWxzZSkKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBl
ZGl0LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQorICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpz
OjIsIGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAg
ICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogZmFsc2UKKyAg
ICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0
IG5hbWU6IG5ldHdvcmsKIEVkaXRpbmcgc291cmNlOgogICAgIE9yaWdpbmFsVGV4dEVkaXRvci5h
ZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIFRleHRF
ZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRpdG9yLmFk
ZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gdHJ1ZSkKICAgICBEdW1waW5n
IGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQor
ICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBp
bmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVt
YmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2lu
dHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIENvbW1pdHRpbmcg
ZWRpdGVkIHNvdXJjZToKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBl
ZGl0LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQorICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpz
OjIsIGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAg
ICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAg
ICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3Qg
bmFtZTogZGVidWdnZXIKIFVuZG9pbmcgc291cmNlIGVkaXRpbmc6CiAgICAgRHVtcGluZyBicmVh
a3BvaW50IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKKyAgICAg
ICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJy
ZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjog
MiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpz
LCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBDb21taXR0aW5nIGVkaXRl
ZCBzb3VyY2UgYWdhaW46CiAgICAgT3JpZ2luYWxUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQo
bGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1i
ZXIgPSAyKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikK
ICAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0g
ZmFsc2UpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS5q
czoyLCBlbmFibGVkOnRydWUKKyAgICAgICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFi
bGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDog
ZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IGZhbHNlCisgICAgICAgIHVy
bDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBu
ZXR3b3JrCiBGaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVkaXRvci5yZW1v
dmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9y
YWdlCkBAIC0xNDgsMTUgKzE0OCwxNSBAQCBTZXR0aW5nIGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAg
IER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0
aW9ucwotICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAg
ICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIEVkaXRp
bmcgc291cmNlOgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgRHVtcGluZyBi
cmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNUZW1w
b3Jhcnk6IHRydWUKKyAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTog
ZGVidWdnZXIKIFVuZG9pbmcgc291cmNlIGVkaXRpbmc6CiAgICAgRHVtcGluZyBicmVha3BvaW50
IHN0b3JhZ2UKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDog
LCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6ICwgbGluZU51
bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgogRmluYWxseSByZW1vdmluZyBicmVha3Bv
aW50OgogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQpAQCAtMTcxLDE1ICsxNzEsMTUgQEAgU2V0dGlu
ZyBicmVha3BvaW50OgogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0g
MiwgZGlzYWJsZWQgPSBmYWxzZSkKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAg
IER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6
IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9q
ZWN0IG5hbWU6IGRlYnVnZ2VyCiBFZGl0aW5nIHNvdXJjZToKICAgICBEdW1waW5nIGJyZWFrcG9p
bnQgc3RvcmFnZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJs
OiAsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogLCBsaW5l
TnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBVbmRvaW5nIHNvdXJjZSBlZGl0aW5n
OgogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgRHVtcGluZyBicmVha3BvaW50
IGxvY2F0aW9ucwotICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRy
dWUKKyAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIK
IEZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFr
cG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtw
b2ludHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJl
YWtwb2ludHMuaHRtbAppbmRleCBmMDUxM2UyMjViNTFiZGFkYTc1NGFiYTZjYTAyMWMxNzk3ZjNm
OWY1Li43M2EwNDdkMTBhNmM0NjNhYjgwZDRjZmU3MWE4MGQ2MGFlNmQ1MTg5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3Bv
aW50cy5odG1sCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9saXZlLWVkaXQtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2VkaXQtbWUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9lZGl0LW1lLWJyZWFrcG9pbnRzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQ+CiBmdW5jdGlvbiBsb2FkRHluYW1pY0Fub255bW91c1NjcmlwdCgpCiB7CkBAIC0zMCwx
MCArMzAsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2Vy
ID0gV2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyOwogICAgICAgICB2YXIgYnJlYWtwb2lu
dHMgPSBicmVha3BvaW50TWFuYWdlci5fc3RvcmFnZS5fc2V0dGluZy5nZXQoKTsKICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZSIp
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKSB7
Ci0gICAgICAgICAgICB2YXIgdXJsID0gCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJl
YWtwb2ludHMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiICAgICAgICAiICsgcGF0aFRvRmlsZU5hbWUoYnJlYWtwb2ludHNbaV0uc291cmNlRmlsZUlk
KSArICI6IiArIGJyZWFrcG9pbnRzW2ldLmxpbmVOdW1iZXIgKyAiLCBlbmFibGVkOiIgKyBicmVh
a3BvaW50c1tpXS5lbmFibGVkKTsKLSAgICAgICAgfQogCiAgICAgICAgIHZhciBicmVha3BvaW50
TWFuYWdlciA9IFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlcjsKICAgICAgICAgbG9jYXRp
b25zID0gYnJlYWtwb2ludE1hbmFnZXIuYWxsQnJlYWtwb2ludExvY2F0aW9ucygpOwpAQCAtNDEs
NyArMzksOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBs
b2NhdGlvbnMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciB1aUxvY2F0aW9uID0gbG9j
YXRpb25zW2ldLnVpTG9jYXRpb247CiAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdWlM
b2NhdGlvbi51aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiICAgICAgICB1cmw6ICIgKyBwYXRoVG9GaWxlTmFtZSh1aVNvdXJjZUNvZGUudXJsKSArICIs
IGxpbmVOdW1iZXI6ICIgKyB1aUxvY2F0aW9uLmxpbmVOdW1iZXIgKyAiLCBpc1RlbXBvcmFyeTog
IiArICEhdWlTb3VyY2VDb2RlLmlzVGVtcG9yYXJ5KTsKKyAgICAgICAgICAgIHZhciBwcm9qZWN0
ID0gV2ViSW5zcGVjdG9yLndvcmtzcGFjZS5wcm9qZWN0Rm9yVUlTb3VyY2VDb2RlKHVpU291cmNl
Q29kZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICB1cmw6
ICIgKyBwYXRoVG9GaWxlTmFtZSh1aVNvdXJjZUNvZGUudXJsKSArICIsIGxpbmVOdW1iZXI6ICIg
KyB1aUxvY2F0aW9uLmxpbmVOdW1iZXIgKyAiLCBwcm9qZWN0IG5hbWU6ICIgKyBwcm9qZWN0Lm5h
bWUoKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTY2LDcgKzY1LDcgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVp
U291cmNlQ29kZSwgc2NyaXB0LCBvcmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSwgb3JpZ2lu
YWxVSVNvdXJjZUNvZGU7CiAKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNv
dXJjZSgiZWRpdC1tZS5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJlZGl0LW1lLWJyZWFrcG9pbnRzLmpzIiwgZGlk
U2hvd1NjcmlwdFNvdXJjZSk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRT
b3VyY2Uoc291cmNlRnJhbWUpCiAgICAgICAgICAgICB7CkBAIC0xMTgsNyArMTE3LDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBqYXZhU2NyaXB0U291cmNl
RnJhbWUsIHVpU291cmNlQ29kZSwgc2NyaXB0LCBvcmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFt
ZSwgb3JpZ2luYWxVSVNvdXJjZUNvZGU7CiAKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hv
d1NjcmlwdFNvdXJjZSgiZWRpdC1tZS5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJlZGl0LW1lLWJyZWFrcG9pbnRz
LmpzIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNo
b3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCiAgICAgICAgICAgICB7CkBAIC0xNjksNyArMTY4
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBqYXZhU2Ny
aXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29kZSwgc2NyaXB0LCBvcmlnaW5hbEphdmFTY3JpcHRT
b3VyY2VGcmFtZSwgb3JpZ2luYWxVSVNvdXJjZUNvZGU7CiAKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZWRpdC1tZS5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2Up
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJlZGl0LW1lLWJy
ZWFrcG9pbnRzLmpzIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7CiAKICAgICAgICAgICAgIGZ1bmN0
aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCiAgICAgICAgICAgICB7CkBAIC0y
MzMsNyArMjMyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZh
ciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29kZSwgc2NyaXB0LCBvcmlnaW5hbEph
dmFTY3JpcHRTb3VyY2VGcmFtZSwgb3JpZ2luYWxVSVNvdXJjZUNvZGU7CiAKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZWRpdC1tZS5qcyIsIGRpZFNob3dTY3Jp
cHRTb3VyY2UpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJl
ZGl0LW1lLWJyZWFrcG9pbnRzLmpzIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7CiAKICAgICAgICAg
ICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCiAgICAgICAgICAg
ICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Ut
c2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dAppbmRleCBhYTM1ODRhZDcx
MDA1NzkzY2YzMDg4NjY1ZDZhYzBhYzVhMmY0YmYzLi4zZGFiMjlmMjVhODQwNzg3MDYwODYyMjI2
MTU5YmQyY2UzZTQyYTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBlY3RlZC50eHQK
QEAgLTUsNyArNSw3IEBAIFJ1bm5pbmc6IHRlc3RTY3JpcHRXaXRoUGVuZGluZ1Jlc291cmNlCiBB
ZGRpbmcgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuCiBVSVNvdXJjZUNvZGU6IGZvby5qcwog
VUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiBmYWxzZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQg
c2NyaXB0OiBmYWxzZQorVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiB0cnVlCiBNaW1l
IHR5cGU6IHRleHQvamF2YXNjcmlwdAogVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxjb250ZW50IHNj
cmlwdCBzb3VyY2U+CiBBZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5pc2hlZCByZXNvdXJjZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3Jp
cHQtbWFwcGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNl
LXNjcmlwdC1tYXBwaW5nLmh0bWwKaW5kZXggMjYyZTI1MGVjYjg0OTk5YTg0NTUwNDliMDE2YTA4
OWE4MWI1OTU4Mi4uMjRiMzExYmY2ODgwNDBlMmY0Y2Q5N2VmYWExNWFmOWZkNjZjYjlkOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1t
YXBwaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNl
LXNjcmlwdC1tYXBwaW5nLmh0bWwKQEAgLTI5LDcgKzI5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFk
ZGluZyBzY3JpcHQgZm9yIHBlbmRpbmcgcmVxdWVzdC4iKTsKICAgICAgICAgICAgICAgICBzY3Jp
cHQgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2sodXJsLCAwLCAwLCB0cnVlLCAiPGNv
bnRlbnQgc2NyaXB0IHNvdXJjZT4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lndh
aXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlT
b3VyY2VDb2RlQWRkZWQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldv
cmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCk7
CiAgICAgICAgICAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7
CiAgICAgICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQp
OwogICAgICAgICAgICAgICAgIApAQCAtNDksNyArNDksNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNo
ZWQgcmVzb3VyY2UuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29y
a3NwYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZEV2ZW50KGZ1bmN0aW9uKCkgeyB9KTsK
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNv
ZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUFkZGVkKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZE1vY2tVSVNvdXJjZUNvZGVUb1dvcmtzcGFjZSh1cmwsIFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVR5cGVzLlNjcmlwdCwgIjxjb250ZW50IHNjcmlwdCByZXNvdXJjZSBjb250ZW50PiIp
OwogCkBAIC0xMTAsNyArMTA5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyBmaXJzdCBzY3Jp
cHQgZm9yIHBlbmRpbmcgcmVxdWVzdC4iKTsKICAgICAgICAgICAgICAgICBzY3JpcHQxID0gSW5z
cGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKHVybCwgMCwgMTAsIGZhbHNlLCAiPHNjcmlwdCBz
b3VyY2UgMT4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3Bh
Y2VUZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRk
ZWQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291
cmNlQ29kZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCk7CiAgICAgICAgICAg
ICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdDEpOwogICAgICAgICAg
ICAgICAgIHJlc291cmNlU2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0MSk7CiAgICAgICAg
ICAgICAgICAgCkBAIC0xMzAsNyArMTI5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyBzZWNv
bmQgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuIik7CiAgICAgICAgICAgICAgICAgc2NyaXB0
MiA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jayh1cmwsIDAsIDQ1LCBmYWxzZSwgIjxz
Y3JpcHQgc291cmNlIDI+Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9y
V29ya3NwYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNl
Q29kZUFkZGVkKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3Bh
Y2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQpOwogICAg
ICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQyKTsKICAg
ICAgICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdDIpOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBw
ZXQtbW9kZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nj
cmlwdC1zbmlwcGV0LW1vZGVsLWV4cGVjdGVkLnR4dAppbmRleCBlNDgzYzhlNzAyZWEzMGY0OTVl
YzYxMmQ3NTZmMDQwZDRiNzZmMWE3Li4wY2VlN2NmOWFkMGVmOGRiNDRlN2M4YzkyY2M3Nzg1Y2Mx
MWY3Mzc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
LXNuaXBwZXQtbW9kZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC1leHBlY3RlZC50eHQKQEAgLTIsMTAgKzIsOSBA
QCBUZXN0cyBzY3JpcHQgc25pcHBldCBtb2RlbC4KIAogRGVidWdnZXIgd2FzIGVuYWJsZWQuCiAK
LVJ1bm5pbmc6IHRlc3RXb3Jrc3BhY2VSZXNldAorUnVubmluZzogdGVzdENyZWF0ZUFuZFJlbmFt
ZQogU25pcHBldCBjcmVhdGVkLgotUmVzZXR0aW5nIHNuaXBwZXQgc2NyaXB0IG1hcHBpbmcuCi1T
bmlwcGV0IHVpU291cmNlQ29kZSB3YXMgcmVjcmVhdGVkLgorU25pcHBldCB1aVNvdXJjZUNvZGUg
dXJsIGlzIGNvcnJlY3QuCiAKIFJ1bm5pbmc6IHRlc3RFdmFsdWF0ZQogTGFzdCBldmFsdWF0aW9u
IHNvdXJjZSB1cmwgZm9yIHNuaXBwZXQ6IHNuaXBwZXRzOi8vLzFfMQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbApp
bmRleCA4NWJiZTczYTgwMjYwMzg3MWIzZjI4ZTM5YmM5NTZmNGIyNzI3NTE1Li5kMTk1OTMyYzhh
N2RjYmRmMWNjOTYxOThjYzk5MmMzMWQwODQxZDc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbApAQCAtMTQs
MzQgKzE0LDI1IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIEZJWE1FOiBSZW1vdmUgb25jZSBz
bmlwcGV0cyBhcmUgdGFrZW4gb3V0IG9mIGV4cGVyaW1lbnRzLgogICAgIFdlYkluc3BlY3Rvci5l
eHBlcmltZW50c1NldHRpbmdzLnNuaXBwZXRzU3VwcG9ydCA9IHt9OwogICAgIFdlYkluc3BlY3Rv
ci5leHBlcmltZW50c1NldHRpbmdzLnNuaXBwZXRzU3VwcG9ydC5pc0VuYWJsZWQgPSBmdW5jdGlv
bigpIHsgcmV0dXJuIHRydWU7IH07Ci0gICAgdmFyIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9
IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKCk7CiAgICAgdmFyIHdv
cmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlKCk7Ci0gICAgd29ya3NwYWNlLmFk
ZFByb2plY3QoIm5ldHdvcmsiLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOworICAgIHZhciBz
bmlwcGV0V29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFj
ZVByb3ZpZGVyKCk7CisgICAgd29ya3NwYWNlLmFkZFByb2plY3QoV2ViSW5zcGVjdG9yLnByb2pl
Y3ROYW1lcy5TbmlwcGV0cywgc25pcHBldFdvcmtzcGFjZVByb3ZpZGVyKTsKICAgICB2YXIgd29y
a3NwYWNlQ29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJvbGxlcih3
b3Jrc3BhY2UpOwotICAgIFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwgPSBuZXcgV2Vi
SW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbCh3b3Jrc3BhY2UsIG5ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlcik7Ci0gICAgCisgICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbCA9IG5l
dyBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsKHdvcmtzcGFjZSwgc25pcHBldFdvcmtz
cGFjZVByb3ZpZGVyKTsKICAgICBJbnNwZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlKFsK
LSAgICAgICAgZnVuY3Rpb24gdGVzdFdvcmtzcGFjZVJlc2V0KG5leHQpCisgICAgICAgIGZ1bmN0
aW9uIHRlc3RDcmVhdGVBbmRSZW5hbWUobmV4dCkKICAgICAgICAgewogICAgICAgICAgICAgcmVz
ZXRTbmlwcGV0c1NldHRpbmdzKCk7CiAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gV2Vi
SW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5jcmVhdGVTY3JpcHRTbmlwcGV0KCk7CiAgICAg
ICAgICAgICB2YXIgc25pcHBldE5hbWUgPSAiVGVzdFNuaXBwZXQiICsgTWF0aC5yYW5kb20oKTsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGNyZWF0ZWQuIik7
CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLnJlbmFtZVNjcmlw
dFNuaXBwZXQodWlTb3VyY2VDb2RlLCBzbmlwcGV0TmFtZSk7Ci0gICAgICAgICAgICB3b3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZl
bnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGVBZGRlZCk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVzZXR0aW5nIHNuaXBwZXQgc2NyaXB0IG1hcHBpbmcu
Iik7Ci0gICAgICAgICAgICB3b3Jrc3BhY2VDb250cm9sbGVyLl9tYWluRnJhbWVOYXZpZ2F0ZWQo
KTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlQWRkZWQoZXZlbnQpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwg
d29ya3NwYWNlLnVpU291cmNlQ29kZXMoKS5sZW5ndGgsICJPbmx5IG9uZSBzbmlwcGV0IHVpU291
cmNlQ29kZSBzaG91bGQgYmUgcHJlc2VudCBhZnRlciBwcm9qZWN0IG5hdmlnYXRpb24uIik7Ci0g
ICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgICAg
ICAgICAgaWYgKHVpU291cmNlQ29kZS51cmwuaW5kZXhPZihzbmlwcGV0TmFtZSkgPT09IC0xKQot
ICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIlNuaXBwZXQgdWlTb3VyY2VDb2RlIHdhcyByZWNyZWF0ZWQuIik7Ci0gICAg
ICAgICAgICAgICAgd29ya3NwYWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2Rl
QWRkZWQpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHdvcmtzcGFjZS51aVNvdXJjZUNvZGVz
KCkubGVuZ3RoLCAiT25seSBvbmUgc25pcHBldCB1aVNvdXJjZUNvZGUgc2hvdWxkIGJlIHByZXNl
bnQuIik7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gd29ya3NwYWNlLnVpU291cmNl
Q29kZXMoKVswXTsKKyAgICAgICAgICAgIGlmICh1aVNvdXJjZUNvZGUudXJsLmluZGV4T2Yoc25p
cHBldE5hbWUpID09PSAtMSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCB1aVNvdXJjZUNvZGUgdXJsIGlzIGNvcnJl
Y3QuIik7CisgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgIH0sCiAKICAgICAgICAgZnVuY3Rp
b24gdGVzdEV2YWx1YXRlKG5leHQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50eHQKaW5kZXggY2RiNjgyZTM2MTU3
YWZmOTM5NGJiOWNlMjI3OGVlMGVkNWM4NDg1OS4uNWFjMjFjYmE1ZDRmNTMyZDY1MGNhYzY0ZjNm
MjZmOGNkMTM2Y2MwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dApAQCAtMjEsNyArMjEsNyBAQCBEdW1w
aW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKICAgYmFyLmpzCiBEdW1waW5nIFNj
cmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgogCi1SdW5uaW5nOiB0ZXN0VGVt
cG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWRBbmRSZW1vdmVkCitSdW5uaW5nOiB0ZXN0RGVidWdnZXJV
SVNvdXJjZUNvZGVBZGRlZEFuZFJlbW92ZWQKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2Ny
aXB0cycgdGFiOgogICBmb28uanMKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBz
Y3JpcHRzJyB0YWI6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c2NyaXB0cy1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dHMtcGFuZWwuaHRtbAppbmRleCBkZDRkN2UyNDlhZDgxOWZlNTlkN2QwN2VhMDE0MWY5MGUwOGYx
YjMyLi5iZmJjNjUwYTMwMzRiNTZlZjU5MzhmOWIzMTYwZDhjNGMwZDBhYTQzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKQEAgLTIx
LDggKzIxLDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgewogICAgICAgICB2YXIgd29ya3NwYWNl
ID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UoKTsKICAgICAgICAgdmFyIG5ldHdvcmtXb3Jr
c3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVy
KCk7Ci0gICAgICAgIHdvcmtzcGFjZS5hZGRQcm9qZWN0KCJuZXR3b3JrIiwgbmV0d29ya1dvcmtz
cGFjZVByb3ZpZGVyKTsKKyAgICAgICAgd29ya3NwYWNlLmFkZFByb2plY3QoV2ViSW5zcGVjdG9y
LnByb2plY3ROYW1lcy5OZXR3b3JrLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwogICAgICAg
ICB3b3Jrc3BhY2UuZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlcih3b3Jrc3BhY2UpOworICAgICAgICB3b3Jrc3BhY2Uu
YWRkUHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVzLkRlYnVnZ2VyLCB3b3Jrc3BhY2Uu
ZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlcik7CiAgICAgICAgIHdvcmtzcGFjZS5yZXF1ZXN0Rmls
ZUNvbnRlbnQgPSBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGNhbGxiYWNrKQogICAgICAgICB7CiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU291cmNlIHJlcXVlc3RlZCBmb3Ig
IiArIHVpU291cmNlQ29kZS51cmwpOwpAQCAtNjgsNyArNjksNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
IAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5f
bmF2aWdhdG9yKTsKIAotICAgICAgICAgICAgd29ya3NwYWNlQ29udHJvbGxlci5fbWFpbkZyYW1l
TmF2aWdhdGVkKCk7CisgICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyLnJlc2V0KCk7CiAgICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyLmFkZE5ldHdvcmtGaWxlKCJiYXIuanMiLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmln
YXRvcik7CiAKQEAgLTc2LDE0ICs3NywxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
IG5leHQoKTsKICAgICAgICAgfSwKIAotICAgICAgICBmdW5jdGlvbiB0ZXN0VGVtcG9yYXJ5VUlT
b3VyY2VDb2RlQWRkZWRBbmRSZW1vdmVkKG5leHQpCisgICAgICAgIGZ1bmN0aW9uIHRlc3REZWJ1
Z2dlclVJU291cmNlQ29kZUFkZGVkQW5kUmVtb3ZlZChuZXh0KQogICAgICAgICB7CiAgICAgICAg
ICAgICB2YXIgd29ya3NwYWNlID0gY3JlYXRlTW9ja1dvcmtzcGFjZSgpOwogICAgICAgICAgICAg
dmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwod29ya3NwYWNlKTsKICAg
ICAgICAgICAgIHBhbmVsLnNob3coKTsKIAogICAgICAgICAgICAgd29ya3NwYWNlLm5ldHdvcmtX
b3Jrc3BhY2VQcm92aWRlci5hZGROZXR3b3JrRmlsZSgiZm9vLmpzIiwgY29udGVudFByb3ZpZGVy
LCBmYWxzZSk7Ci0gICAgICAgICAgICB2YXIgdGVtcG9yYXJ5VUlTb3VyY2VDb2RlID0gd29ya3Nw
YWNlLmRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIuYWRkRGVidWdnZXJGaWxlKCJjb21waWxlZC5q
cyIsIGNvbnRlbnRQcm92aWRlcik7CisgICAgICAgICAgICB3b3Jrc3BhY2UuZGVidWdnZXJXb3Jr
c3BhY2VQcm92aWRlci5hZGREZWJ1Z2dlckZpbGUoImNvbXBpbGVkLmpzIiwgY29udGVudFByb3Zp
ZGVyKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihw
YW5lbC5fbmF2aWdhdG9yKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vp
c291cmNlY29kZS1yZXZpc2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91aXNvdXJj
ZWNvZGUtcmV2aXNpb25zLmh0bWwKaW5kZXggNzAyNWFkOWIxZDA4OTkwMjI3NDk3MGZmMWZmNzBl
ZDRjMmIxODA0OC4uNTNjM2FlZGYyYmI5ZTU4ZjQzZmI5NWFjZTI0MjExMGEyZWM3ZmQwMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vpc291cmNlY29kZS1yZXZpc2lvbnMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9ucy5odG1s
CkBAIC04LDEzICs4LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gY3JlYXRl
TW9ja1dvcmtzcGFjZSgpCiAgICAgewotICAgICAgICB2YXIgbmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKICAgICAg
ICAgdmFyIHdvcmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlKCk7Ci0gICAgICAg
IHdvcmtzcGFjZS5hZGRQcm9qZWN0KCJuZXR3b3JrIiwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVy
KTsKLSAgICAgICAgd29ya3NwYWNlLnJlcXVlc3RGaWxlQ29udGVudCA9IGZ1bmN0aW9uKHBhdGgs
IGNhbGxiYWNrKQorICAgICAgICB2YXIgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdl
Ykluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKKyAgICAgICAgd29ya3NwYWNl
LmFkZFByb2plY3QoV2ViSW5zcGVjdG9yLnByb2plY3ROYW1lcy5OZXR3b3JrLCBuZXR3b3JrV29y
a3NwYWNlUHJvdmlkZXIpOworICAgICAgICB3b3Jrc3BhY2UucmVxdWVzdEZpbGVDb250ZW50ID0g
ZnVuY3Rpb24odXJpLCBjYWxsYmFjaykKICAgICAgICAgewogICAgICAgICAgICAgY2FsbGJhY2so
IjxzY3JpcHQgY29udGVudD4iLCBmYWxzZSwgInRleHQvamF2YXNjcmlwdCIpOwogICAgICAgICB9
CisgICAgICAgIHdvcmtzcGFjZS5zZXRGaWxlQ29udGVudCA9IGZ1bmN0aW9uKHVyaSwgbmV3Q29u
dGVudCwgY2FsbGJhY2spCisgICAgICAgIHsKKyAgICAgICAgfQorCiAgICAgICAgIHJldHVybiB3
b3Jrc3BhY2U7CiAgICAgfQogIAo=
</data>
<flag name="review"
          id="200253"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="200266"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182346</attachid>
            <date>2013-01-11 08:25:44 -0800</date>
            <delta_ts>2013-01-11 08:26:40 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-105856-20130111202245.patch</filename>
            <type>text/plain</type>
            <size>108425</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJmZjIyZDM0ZGM3N2Q4
YjYwYWY3MzBiY2YzMTFlMjkzZWRiMjFjMC4uZjk3ZjcwOGNkYzEwZGUyZjU1MjVjYmE0MmFkNGFi
MGZlYTNkYjIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBAQAorMjAxMy0wMS0xMSAgVnNl
dm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBXb3Jrc3BhY2Ugc2hvdWxkIHN1cHBvcnQgc2V2ZXJhbCBwcm9qZWN0cyBhbmQgc2hvdWxk
IG5vdCBoYXZlIHRlbXBvcmFyeSBVSVNvdXJjZUNvZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1ODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
UGF2ZWwgRmVsZG1hbi4KKworICAgICAgICBXb3Jrc3BhY2Ugbm93IHN1cHBvcnRzIHNldmVyYWwg
cHJvamVjdHMgd2l0aCB0aGUgbmV0d29ya1Byb2plY3QgYmVpbmcgYSBtYWluIG9uZS4KKyAgICAg
ICAgUmVwbGFjZWQgdGVtcG9yYXJ5IFVJU291cmNlQ29kZXMgd2l0aCBzcGVjaWZpYyBwcm9qZWN0
cyAoZGVidWdnZXIgYW5kIGxpdmVlZGl0KS4KKyAgICAgICAgVGhlIGNvbmNlcHQgb2Ygd29ya3Nw
YWNlIHJlc2V0IG9uIG5hdmlnYXRpb24gaXMgbm93IHJlcGxhY2VkIHdpdGggcHJvamVjdCByZXNl
dCBjb25jZXB0IGluc3RlYWQuCisgICAgICAgIEludHJvZHVjZWQgc25pcHBldHMgcHJvamVjdCAo
dGhhdCBpcyBub3QgcmVzZXQgb24gbmF2aWdhdGlvbikuCisgICAgICAgIFNjcmlwdCBtYXBwaW5n
cyBhcmUgbm93IHJlc2V0IG9uIEdsb2JhbE9iamVjdENsZWFyZWQgZXZlbnQuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50TWFuYWdlci5wcm90b3R5cGUuX2lubmVyU2V0QnJlYWtwb2ludCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLl9maWx0ZXJlZEJyZWFrcG9p
bnRMb2NhdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnBy
b3RvdHlwZS50b2dnbGVBbGxCcmVha3BvaW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludE1hbmFnZXIucHJvdG90eXBlLnJlbW92ZUFsbEJyZWFrcG9pbnRzKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUuX3Byb2plY3RXaWxsUmVz
ZXQuZ2V0IGZvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJv
dG90eXBlLl9wcm9qZWN0V2lsbFJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX2luc3BlY3Rl
ZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90
eXBlLl9yZXNldFNvdXJjZU1hcHBpbmdzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsUmVzb3VyY2VCaW5kaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZS5fdmlhSW5zcGVjdG9yUmVzb3VyY2VVUkwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90
eXBlLl9yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlw
dE1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5n
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBl
Ll9kZWJ1Z2dlclJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
U2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRT
Y3JpcHRNYXBwaW5nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBw
aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0TWFwcGluZy5wcm90b3R5
cGUuYWRkU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0TWFwcGlu
Zy5wcm90b3R5cGUuX2RlYnVnZ2VyUmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRXh0ZW5zaW9uU2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNl
cnZlci5wcm90b3R5cGUuX29uR2V0UGFnZVJlc291cmNlcyk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nLnNob3cpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvTGl2ZUVkaXRTdXBwb3J0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxpdmVF
ZGl0U3VwcG9ydCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTdXBwb3J0LnByb3Rv
dHlwZS51aVNvdXJjZUNvZGVGb3JMaXZlRWRpdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2
ZUVkaXRTdXBwb3J0LnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlLl9tYWluRnJhbWVO
YXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92
aWRlci5wcm90b3R5cGUuX2FkZEZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtV
SVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX3VpU291cmNlQ29kZUFkZGVkVG9Xb3Jrc3BhY2Up
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUu
X2RlYnVnZ2VyUmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25I
aXN0b3J5Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXZpc2lvbkhpc3RvcnlWaWV3
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXZpc2lvbkhpc3RvcnlWaWV3LnByb3RvdHlwZS5f
cHJvamVjdFdpbGxSZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291
cmNlTWFwcGluZy5qczoKKyAgICAgICAgKF9iaW5kVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX2FkZFNjcmlwdFNuaXBwZXQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05hdmlnYXRvci5qczoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUuX2FkZFVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlUmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcmVtb3ZlVUlTb3VyY2VDb2Rlcyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJXYXNEaXNhYmxlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJS
ZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcHJv
amVjdFdpbGxSZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5jYW5TaG93QW5jaG9yTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuX3JldmVhbEV4ZWN1dGlvbkxpbmUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuc2hvd0dvVG9Tb3VyY2VEaWFsb2cpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLnByb3RvdHlwZS5hZGRGaWxlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUu
YWRkRmlsZUZvclVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJv
dmlkZXIucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0
eWxlc1NvdXJjZU1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNl
TWFwcGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZy5wcm90
b3R5cGUuX3Byb2plY3RXaWxsUmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
VGFiYmVkRWRpdG9yQ29udGFpbmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVk
aXRvckNvbnRhaW5lci5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvVUlTb3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZS5wcm90b3R5cGUucHJvamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jr
c3BhY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJvbGxlcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJvbGxlci5wcm90b3R5cGUuX2luc3Bl
Y3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2plY3QpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBlLm5hbWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlByb2plY3QucHJvdG90eXBlLmlzU2VydmljZVByb2plY3QpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuV29ya3NwYWNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBl
LnVpU291cmNlQ29kZUZvclVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnBy
b3RvdHlwZS51aVNvdXJjZUNvZGVGb3JVUkkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtz
cGFjZS5wcm90b3R5cGUuYWRkUHJvamVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3Nw
YWNlLnByb3RvdHlwZS5wcm9qZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2Uu
cHJvdG90eXBlLnByb2plY3RzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJv
dG90eXBlLnVpU291cmNlQ29kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5w
cm90b3R5cGUucHJvamVjdEZvclVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlLnByb3RvdHlwZS5yZXF1ZXN0RmlsZUNvbnRlbnQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUuc2V0RmlsZUNvbnRlbnQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUuc2VhcmNoSW5GaWxlQ29udGVudCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanM6CisKIDIwMTMtMDEtMTEgIEFudG9uIFZheXZvZCAg
PGF2YXl2b2RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRleHQgQXV0b3NpemluZyAtIGVsZW1l
bnRzIG11Y2ggbmFycm93ZXIgdGhhbiBpdHMgcGFyZW50IGF1dG9zaXppbmcgY2x1c3RlcnMgc2hv
dWxkIGJlIGF1dG9zaXplZCBzZXBhcmF0ZWx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKaW5kZXggYTlmZDZlZmU3
ZDdhMmVjZDhhYzM0MjgzYWEyZjkwOWFiYmE5ZDkzZS4uMzJkZTE0NWQwYzlhODQxMWZiNTBhMzc0
NGZkZjM3OTliNzE1Y2Q3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCkBAIC00MSwxNSArNDEsMTQgQEAgV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyID0gZnVuY3Rpb24oYnJlYWtwb2ludFN0b3JhZ2Us
IGRlYnVnZ2VyTW9kZWwsIHdvcmsKICAgICB0aGlzLl9kZWJ1Z2dlck1vZGVsID0gZGVidWdnZXJN
b2RlbDsKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7CiAKLSAgICB0aGlzLl9icmVh
a3BvaW50cyA9IFtdOworICAgIHRoaXMuX2JyZWFrcG9pbnRzID0gbmV3IE1hcCgpOwogICAgIHRo
aXMuX2JyZWFrcG9pbnRGb3JEZWJ1Z2dlcklkID0ge307CiAgICAgdGhpcy5fYnJlYWtwb2ludHNG
b3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5fc291cmNlRmlsZXNXaXRoUmVz
dG9yZWRCcmVha3BvaW50cyA9IHt9OwogCiAgICAgdGhpcy5fZGVidWdnZXJNb2RlbC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVz
b2x2ZWQsIHRoaXMuX2JyZWFrcG9pbnRSZXNvbHZlZCwgdGhpcyk7Ci0gICAgdGhpcy5fd29ya3Nw
YWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVj
dFdpbGxSZXNldCwgdGhpcy5fd29ya3NwYWNlUmVzZXQsIHRoaXMpOworICAgIHRoaXMuX3dvcmtz
cGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2pl
Y3RXaWxsUmVzZXQsIHRoaXMuX3Byb2plY3RXaWxsUmVzZXQsIHRoaXMpOwogICAgIHRoaXMuX3dv
cmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRl
ci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHRoaXMuX3VpU291cmNlQ29kZUFkZGVkLCB0aGlz
KTsKLSAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkLCB0aGlz
Ll91aVNvdXJjZUNvZGVBZGRlZCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50
TWFuYWdlci5FdmVudHMgPSB7CkBAIC0xMzcsNyArMTM2LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybiBicmVha3BvaW50
OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQodGhpcywgdWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBj
b25kaXRpb24sIGVuYWJsZWQpOwotICAgICAgICB0aGlzLl9icmVha3BvaW50cy5wdXNoKGJyZWFr
cG9pbnQpOworICAgICAgICB0aGlzLl9icmVha3BvaW50cy5wdXQoYnJlYWtwb2ludCk7CiAgICAg
ICAgIHJldHVybiBicmVha3BvaW50OwogICAgIH0sCiAKQEAgLTE2MCw4ICsxNTksOSBAQCBXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlID0gewogICAgIF9maWx0ZXJlZEJy
ZWFrcG9pbnRMb2NhdGlvbnM6IGZ1bmN0aW9uKGZpbHRlcikKICAgICB7CiAgICAgICAgIHZhciBy
ZXN1bHQgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9icmVha3BvaW50
cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl9icmVh
a3BvaW50c1tpXTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gLyoqIEB0eXBlIHtBcnJheS48
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQ+fSAqLyB0aGlzLl9icmVh
a3BvaW50cy5rZXlzKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJlYWtwb2ludHMu
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNb
aV07CiAgICAgICAgICAgICBmb3IgKHZhciBzdHJpbmdpZmllZExvY2F0aW9uIGluIGJyZWFrcG9p
bnQuX3VpTG9jYXRpb25zKSB7CiAgICAgICAgICAgICAgICAgdmFyIHVpTG9jYXRpb24gPSBicmVh
a3BvaW50Ll91aUxvY2F0aW9uc1tzdHJpbmdpZmllZExvY2F0aW9uXTsKICAgICAgICAgICAgICAg
ICBpZiAoZmlsdGVyKGJyZWFrcG9pbnQsIHVpTG9jYXRpb24pKQpAQCAtMTk4LDggKzE5OCw5IEBA
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgdG9nZ2xlQWxsQnJlYWtwb2ludHM6IGZ1bmN0aW9uKHRvZ2dsZVN0YXRlKQogICAgIHsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9icmVha3BvaW50cy5sZW5ndGg7ICsraSkg
ewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl9icmVha3BvaW50c1tpXTsKKyAg
ICAgICAgdmFyIGJyZWFrcG9pbnRzID0gLyoqIEB0eXBlIHtBcnJheS48V2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQ+fSAqLyB0aGlzLl9icmVha3BvaW50cy5rZXlzKCk7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJlYWtwb2ludHMubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNbaV07CiAgICAgICAgICAg
ICBpZiAoYnJlYWtwb2ludC5lbmFibGVkKCkgIT0gdG9nZ2xlU3RhdGUpCiAgICAgICAgICAgICAg
ICAgYnJlYWtwb2ludC5zZXRFbmFibGVkKHRvZ2dsZVN0YXRlKTsKICAgICAgICAgfQpAQCAtMjA3
LDcgKzIwOCw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7
CiAKICAgICByZW1vdmVBbGxCcmVha3BvaW50czogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
dmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludHMuc2xpY2UoKTsKKyAgICAgICAgdmFy
IGJyZWFrcG9pbnRzID0gLyoqIEB0eXBlIHtBcnJheS48V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRN
YW5hZ2VyLkJyZWFrcG9pbnQ+fSAqLyB0aGlzLl9icmVha3BvaW50cy5rZXlzKCk7CiAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgYnJlYWtwb2ludHMubGVuZ3RoOyArK2kpCiAgICAgICAgICAg
ICBicmVha3BvaW50c1tpXS5yZW1vdmUoKTsKICAgICB9LApAQCAtMjI2LDE2ICsyMjcsMjYgQEAg
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fc291cmNlRmlsZXNXaXRoUmVzdG9yZWRCcmVha3BvaW50cyA9IHt9OwogICAgIH0sCiAKLSAg
ICBfd29ya3NwYWNlUmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBicmVha3Bv
aW50cyA9IHRoaXMuX2JyZWFrcG9pbnRzLnNsaWNlKCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgYnJlYWtwb2ludHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGJyZWFrcG9pbnRz
W2ldLl9yZXNldExvY2F0aW9ucygpOwotICAgICAgICAgICAgYnJlYWtwb2ludHNbaV0uX2lzUHJv
dmlzaW9uYWwgPSB0cnVlOworICAgIF9wcm9qZWN0V2lsbFJlc2V0OiBmdW5jdGlvbihldmVudCkK
KyAgICB7CisgICAgICAgIHZhciBwcm9qZWN0ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuUHJv
amVjdH0gKi8gKGV2ZW50LmRhdGEpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHByb2pl
Y3QudWlTb3VyY2VDb2RlcygpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNl
Q29kZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB1aVNv
dXJjZUNvZGVzW2ldOworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtw
b2ludHNGb3JVSVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29kZSkgfHwgW107CisgICAgICAgICAg
ICBmb3IgKHZhciBsaW5lTnVtYmVyIGluIGJyZWFrcG9pbnRzKSB7CisgICAgICAgICAgICAgICAg
dmFyIGxpbmVCcmVha3BvaW50cyA9IGJyZWFrcG9pbnRzW2xpbmVOdW1iZXJdOworICAgICAgICAg
ICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGluZUJyZWFrcG9pbnRzLmxlbmd0aDsgKytqKSB7
CisgICAgICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gbGluZUJyZWFrcG9pbnRzW2pd
OworICAgICAgICAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50cy5yZW1vdmUoYnJlYWtwb2lu
dCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQuX3Jlc2V0TG9jYXRpb25zKCk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQuX2lzUHJvdmlzaW9uYWwgPSB0cnVlOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9p
bnRzRm9yVUlTb3VyY2VDb2RlLnJlbW92ZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgdmFy
IHNvdXJjZUZpbGVJZCA9IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5zb3VyY2VGaWxl
SWQodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9zb3VyY2VGaWxlc1dp
dGhSZXN0b3JlZEJyZWFrcG9pbnRzW3NvdXJjZUZpbGVJZF07CiAgICAgICAgIH0KLSAgICAgICAg
dGhpcy5fYnJlYWtwb2ludHMgPSBbXTsKLSAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNGb3JVSVNv
dXJjZUNvZGUuY2xlYXIoKTsKLSAgICAgICAgdGhpcy5fc291cmNlRmlsZXNXaXRoUmVzdG9yZWRC
cmVha3BvaW50cyA9IHt9OwogICAgIH0sCiAKICAgICBfYnJlYWtwb2ludFJlc29sdmVkOiBmdW5j
dGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ1NTU3R5bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q1NTU3R5bGVNb2RlbC5qcwppbmRleCAyODRmYmQ4N2U4ZDg5OWQ5OTU4Yjc5Y2M1ZTU3NGFlYWUx
MjNhODYxLi4wNmNjZGQxMTQ2YzkyMjRjZDZhYmFlNDEyZWUwZDdiMTBmNDM1Zjk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpz
CkBAIC00MSw2ICs0MSw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsID0gZnVuY3Rpb24o
KQogICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5FdmVudHMuVW5kb1JlZG9SZXF1ZXN0ZWQsIHRoaXMuX3VuZG9SZWRvUmVxdWVz
dGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLlVuZG9SZWRvQ29tcGxldGVkLCB0aGlzLl91bmRv
UmVkb0NvbXBsZXRlZCwgdGhpcyk7CiAgICAgdGhpcy5fcmVzb3VyY2VCaW5kaW5nID0gbmV3IFdl
Ykluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nKCk7CisgICAgV2ViSW5zcGVj
dG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291
cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuSW5zcGVjdGVkVVJMQ2hhbmdlZCwgdGhpcy5faW5zcGVj
dGVkVVJMQ2hhbmdlZCwgdGhpcyk7CiAgICAgdGhpcy5fbmFtZWRGbG93Q29sbGVjdGlvbnMgPSB7
fTsKICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRE9NQWdlbnQuRXZlbnRzLkRvY3VtZW50VXBkYXRlZCwgdGhpcy5fcmVzZXROYW1lZEZsb3dD
b2xsZWN0aW9ucywgdGhpcyk7CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNTU0Rpc3Bh
dGNoZXIobmV3IFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyKHRoaXMpKTsKQEAgLTQ3OSw2ICs0
ODAsMTUgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgIH0s
CiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAg
ICAgKi8KKyAgICBfaW5zcGVjdGVkVVJMQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgewor
ICAgICAgICB0aGlzLl9yZXNldFNvdXJjZU1hcHBpbmdzKCk7CisgICAgICAgIHRoaXMuX3Jlc291
cmNlQmluZGluZy5fcmVzZXQoKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtz
dHJpbmd9IHVybAogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmd9IHNv
dXJjZU1hcHBpbmcKICAgICAgKi8KQEAgLTQ4OCw3ICs0OTgsNyBAQCBXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3VwZGF0ZUxvY2F0aW9ucygp
OwogICAgIH0sCiAKLSAgICByZXNldFNvdXJjZU1hcHBpbmdzOiBmdW5jdGlvbigpCisgICAgX3Jl
c2V0U291cmNlTWFwcGluZ3M6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3NvdXJj
ZU1hcHBpbmdzID0ge307CiAgICAgfSwKQEAgLTExNzMsOSArMTE4Myw3IEBAIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZSA9IHsKICAqLwogV2ViSW5zcGVjdG9yLkNTU1N0eWxl
TW9kZWxSZXNvdXJjZUJpbmRpbmcgPSBmdW5jdGlvbigpCiB7Ci0gICAgdGhpcy5fZnJhbWVBbmRV
UkxUb1N0eWxlU2hlZXRJZCA9IHt9OwotICAgIHRoaXMuX3N0eWxlU2hlZXRJZFRvSGVhZGVyID0g
e307Ci0gICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuSW5zcGVjdGVkVVJMQ2hh
bmdlZCwgdGhpcy5faW5zcGVjdGVkVVJMQ2hhbmdlZCwgdGhpcyk7CisgICAgdGhpcy5fcmVzZXQo
KTsKIH0KIAogV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90
eXBlID0gewpAQCAtMTIzNiwxNiArMTI0NCw2IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
UmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50Ci0gICAgICovCi0gICAgX2luc3BlY3Rl
ZFVSTENoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgLy8gTWFpbiBmcmFt
ZSBuYXZpZ2F0aW9uIC0gY2xlYXIgaGlzdG9yeS4KLSAgICAgICAgdGhpcy5fZnJhbWVBbmRVUkxU
b1N0eWxlU2hlZXRJZCA9IHt9OwotICAgICAgICB0aGlzLl9zdHlsZVNoZWV0SWRUb0hlYWRlciA9
IHt9OwotICAgIH0sCi0KLSAgICAvKioKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcp
fSBjYWxsYmFjawogICAgICAqLwogICAgIF9sb2FkU3R5bGVTaGVldEhlYWRlcnM6IGZ1bmN0aW9u
KGNhbGxiYWNrKQpAQCAtMTM0OCw2ICsxMzQ2LDEzIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGZha2VVUkwgKz0g
Ii8iOwogICAgICAgICBmYWtlVVJMICs9ICJpbnNwZWN0b3Itc3R5bGVzaGVldCI7CiAgICAgICAg
IHJldHVybiBmYWtlVVJMOworICAgIH0sCisKKyAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIC8vIE1haW4gZnJhbWUgbmF2aWdhdGlvbiAtIGNsZWFyIGhpc3RvcnkuCisgICAg
ICAgIHRoaXMuX2ZyYW1lQW5kVVJMVG9TdHlsZVNoZWV0SWQgPSB7fTsKKyAgICAgICAgdGhpcy5f
c3R5bGVTaGVldElkVG9IZWFkZXIgPSB7fTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcu
anMKaW5kZXggYmEzNjJlODA4NzMxYWJiZDY5MmE2MDBiZjIxMDdiMTE5MDhhODBkNi4uZWQxNWJi
NjJmZDRmOTNhMDJkYTJjOTEyYjA5YjdiMjA4Y2M3MmJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcu
anMKQEAgLTMyLDcgKzMyLDcgQEAKICAqIEBjb25zdHJ1Y3RvcgogICogQGltcGxlbWVudHMge1dl
Ykluc3BlY3Rvci5TY3JpcHRTb3VyY2VNYXBwaW5nfQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlfSB3b3Jrc3BhY2UKLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jr
c3BhY2VQcm92aWRlcn0gbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyCisgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlcn0gbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVy
CiAgKi8KIFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbih3b3Jr
c3BhY2UsIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcikKIHsKQEAgLTQ1LDcgKzQ1LDcgQEAgV2Vi
SW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgbmV0
d29ya1dvcmtzcGFjZVByb3ZpZGUKICAgICB0aGlzLl9zY3JpcHRGb3JTb3VyY2VNYXAgPSBuZXcg
TWFwKCk7CiAgICAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlBvc2l0
aW9uQmFzZWRTb3VyY2VNYXA+fSAqLwogICAgIHRoaXMuX3NvdXJjZU1hcEZvclVSTCA9IHt9Owot
ICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKKyAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVkLCB0aGlzLl9kZWJ1Z2dlclJlc2V0
LCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5
cGUgPSB7CkBAIC0xMDQsOCArMTA0LDcgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY29udGVudFByb3ZpZGVyID0gbmV3
IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIoV2ViSW5zcGVjdG9yLnJlc291cmNl
VHlwZXMuU2NyaXB0LCBzb3VyY2VDb250ZW50KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICBjb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNl
TWFwcGluZ0NvbnRlbnRQcm92aWRlcihzb3VyY2VVUkwpOwotICAgICAgICAgICAgdGhpcy5fbmV0
d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdvcmtGaWxlKHNvdXJjZVVSTCwgY29udGVudFBy
b3ZpZGVyLCB0cnVlKTsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jr
c3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKHNvdXJjZVVSTCk7CisgICAgICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlID0gdGhpcy5fbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZEZpbGVGb3JVUkwo
c291cmNlVVJMLCBjb250ZW50UHJvdmlkZXIsIHRydWUpOwogICAgICAgICAgICAgdWlTb3VyY2VD
b2RlLnNldFNvdXJjZU1hcHBpbmcodGhpcyk7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuaXND
b250ZW50U2NyaXB0ID0gc2NyaXB0LmlzQ29udGVudFNjcmlwdDsKICAgICAgICAgfQpAQCAtMTQx
LDcgKzE0MCw3IEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBl
ID0gewogICAgICAgICByZXR1cm4gc291cmNlTWFwOwogICAgIH0sCiAKLSAgICBfcmVzZXQ6IGZ1
bmN0aW9uKCkKKyAgICBfZGVidWdnZXJSZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
dGhpcy5fc291cmNlTWFwRm9yU291cmNlTWFwVVJMID0ge307CiAgICAgICAgIHRoaXMuX3NvdXJj
ZU1hcEZvclNjcmlwdElkID0ge307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCmluZGV4IDhmODhiOWQ4
YjYwYTRjZjM0NjMwZjg0YTg1N2E1MTdiYzRjNzI0MWIuLjgyMmRhNWJiN2U0YjNiNzg1MWI0ZjE1
ODkyZmEyMzhkYjBjMjRhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCkBAIC0zMSw3ICszMSw3
IEBACiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29ya3Nw
YWNlfSB3b3Jrc3BhY2UKLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlcn0gbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlcn0gbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyCiAgKi8K
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbih3b3Jrc3BhY2Us
IG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFNjcmlwdE1hcHBpbmcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRTY3JpcHRNYXBwaW5nLmpzCmluZGV4IDM5
NmRhMDZhZDZhZjg2MGZlZWE5NzQxZWM5NGM4NzRkYTBkZTk2Y2UuLmI3YjlkMzc2NDZkNzVlZTBj
MWNmMWJiZDYwMmVmN2QzZDNmM2FkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVmYXVsdFNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0U2NyaXB0TWFwcGluZy5qcwpAQCAtMzYsOSAr
MzYsMTAgQEAKIFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9uKHdv
cmtzcGFjZSkKIHsKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7Ci0gICAgdGhpcy5f
d29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJv
dmlkZXIod29ya3NwYWNlKTsKLSAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9yZXNl
dCwgdGhpcyk7Ci0gICAgdGhpcy5fcmVzZXQoKTsKKyAgICB0aGlzLl93b3Jrc3BhY2VQcm92aWRl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIodGhpcy5fd29ya3Nw
YWNlKTsKKyAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVz
LkRlYnVnZ2VyLCB0aGlzLl93b3Jrc3BhY2VQcm92aWRlcik7CisgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5F
dmVudHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCwgdGhpcy5fZGVidWdnZXJSZXNldCwgdGhpcyk7Cisg
ICAgdGhpcy5fZGVidWdnZXJSZXNldCgpOwogfQogCiBXZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlw
dE1hcHBpbmcucHJvdG90eXBlID0gewpAQCAtNzUsNyArNzYsMTAgQEAgV2ViSW5zcGVjdG9yLkRl
ZmF1bHRTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICBhZGRTY3JpcHQ6IGZ1bmN0aW9u
KHNjcmlwdCkKICAgICB7CiAgICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBzY3JpcHQuaXNJ
bmxpbmVTY3JpcHQoKSA/IG5ldyBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRl
bnRQcm92aWRlcihbc2NyaXB0XSkgOiBzY3JpcHQ7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSB0aGlzLl93b3Jrc3BhY2VQcm92aWRlci5hZGREZWJ1Z2dlckZpbGUoc2NyaXB0LnNvdXJjZVVS
TCwgY29udGVudFByb3ZpZGVyLCBmYWxzZSk7CisgICAgICAgIHZhciB1cmkgPSAiZGVidWdnZXI6
IiArIFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci51cmlGb3JVUkwoc2NyaXB0
LnNvdXJjZVVSTCk7CisgICAgICAgIHZhciB1bmlxdWVVUkkgPSB0aGlzLl93b3Jrc3BhY2VQcm92
aWRlci51bmlxdWVVUkkodXJpKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dv
cmtzcGFjZVByb3ZpZGVyLmFkZEZpbGUodW5pcXVlVVJJLCBzY3JpcHQuc291cmNlVVJMLCBjb250
ZW50UHJvdmlkZXIsIGZhbHNlLCBzY3JpcHQuaXNDb250ZW50U2NyaXB0KTsKKwogICAgICAgICB0
aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdID0gdWlTb3VyY2VD
b2RlOwogICAgICAgICB0aGlzLl9zY3JpcHRJZEZvclVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VD
b2RlLCBzY3JpcHQuc2NyaXB0SWQpOwogICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U291cmNlTWFw
cGluZyh0aGlzKTsKQEAgLTk0LDQ1ICs5OCwxMSBAQCBXZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlw
dE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3Jp
cHRJZFtzY3JpcHRJZF0uYWRkUmV2aXNpb24oY29udGVudCk7CiAgICAgfSwKIAotICAgIF9yZXNl
dDogZnVuY3Rpb24oKQorICAgIF9kZWJ1Z2dlclJlc2V0OiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
Pn0gKi8KICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKICAgICAg
ICAgdGhpcy5fc2NyaXB0SWRGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7Ci0gICAgfSwKLX0K
LQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2ltcGxl
V29ya3NwYWNlUHJvdmlkZXJ9Ci0gKi8KLVdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVBy
b3ZpZGVyID0gZnVuY3Rpb24od29ya3NwYWNlKQotewotICAgIFdlYkluc3BlY3Rvci5TaW1wbGVX
b3Jrc3BhY2VQcm92aWRlci5jYWxsKHRoaXMpOwotICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtz
cGFjZTsKLX0KLQotV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIucHJvdG90
eXBlID0gewotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKLSAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9IGNvbnRlbnRQcm92aWRlcgotICAgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gaXNFZGl0YWJsZQotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGV9Ci0gICAgICovCi0gICAgYWRkRGVidWdnZXJGaWxlOiBmdW5jdGlvbih1
cmwsIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSkKLSAgICB7Ci0gICAgICAgIHZhciB1cmkg
PSAiZGVidWdnZXI6IiArIFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci51cmlG
b3JVUkwodXJsKTsKLSAgICAgICAgdmFyIHVuaXF1ZVVSSSA9IHRoaXMudW5pcXVlVVJJKHVyaSk7
Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2UuYWRkVGVtcG9yYXJ5
VUlTb3VyY2VDb2RlKHVuaXF1ZVVSSSwgdXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUp
OwotICAgICAgICAvLyBGSVhNRTogdGhpcyBpcyBhIHRlbXBvcmFyeSBoYWNrIHRvIGJlIHJlbW92
ZWQgb25jZSBEZWZhdWx0U2NyaXB0TWFwcGluZyB1aVNvdXJjZUNvZGUgYmVjb21lIHBhcnQgb2Yg
dGhlIHdvcmtzcGFjZS4KLSAgICAgICAgdGhpcy5fY29udGVudFByb3ZpZGVyc1t1bmlxdWVVUkld
ID0gdWlTb3VyY2VDb2RlOwotICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2RlOwotICAgIH0sCi0K
LSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5wcm90
b3R5cGUKKyAgICAgICAgdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIucmVzZXQoKTsKKyAgICB9CiB9
Ci0KLS8qKgotICogQHR5cGUgez9XZWJJbnNwZWN0b3IuRGVidWdnZXJXb3Jrc3BhY2VQcm92aWRl
cn0KLSAqLwotV2ViSW5zcGVjdG9yLmRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIgPSBudWxsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25T
ZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNl
cnZlci5qcwppbmRleCA2ZDA1NTg5MDBiZTEyM2VmYzk3ODAwMTY1MmRhNWUwOWIxNTNiNmM5Li5h
YTIzZGE1ODhiNTc0MTM0OWI0YjYzMTg4NGY0NmFlNjg3YjM4ZTlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAt
NDQ2LDcgKzQ0Niw4IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgaWYgKCFyZXNvdXJjZXNbY29udGVudFByb3ZpZGVyLmNvbnRlbnRVUkwo
KV0pCiAgICAgICAgICAgICAgICAgcmVzb3VyY2VzW2NvbnRlbnRQcm92aWRlci5jb250ZW50VVJM
KCldID0gdGhpcy5fbWFrZVJlc291cmNlKGNvbnRlbnRQcm92aWRlcik7CiAgICAgICAgIH0KLSAg
ICAgICAgV2ViSW5zcGVjdG9yLndvcmtzcGFjZS51aVNvdXJjZUNvZGVzKCkuZm9yRWFjaChwdXNo
UmVzb3VyY2VEYXRhLmJpbmQodGhpcykpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IFdl
Ykluc3BlY3Rvci53b3Jrc3BhY2UucHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVzLk5l
dHdvcmspLnVpU291cmNlQ29kZXMoKTsKKyAgICAgICAgdWlTb3VyY2VDb2Rlcy5mb3JFYWNoKHB1
c2hSZXNvdXJjZURhdGEuYmluZCh0aGlzKSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVRyZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXMocHVzaFJlc291cmNlRGF0YS5iaW5kKHRoaXMpKTsK
ICAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocmVzb3VyY2VzKTsKICAgICB9LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRl
cmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcwppbmRleCA2ZDZjYjRiNTgxMjNhMDY2OTM2NTQ0M2Jl
Njc1NmUzZDVkMWI1NzYzLi5hNThlYWJjZTM4OGQyY2U3MWZjYjRiMmUwMDRiNjFkZGI4Y2NjNDA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVk
SXRlbVNlbGVjdGlvbkRpYWxvZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcwpAQCAtNjA5LDE0ICs2MDksMTkg
QEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZSA9IHsKICAq
IEBjb25zdHJ1Y3RvcgogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFs
b2dDb250ZW50UHJvdmlkZXJ9CiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWx9
IHBhbmVsCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcn0gdWlT
b3VyY2VDb2RlUHJvdmlkZXIKICAqLwotV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJjZURpYWxvZyA9
IGZ1bmN0aW9uKHBhbmVsLCB1aVNvdXJjZUNvZGVQcm92aWRlcikKK1dlYkluc3BlY3Rvci5PcGVu
UmVzb3VyY2VEaWFsb2cgPSBmdW5jdGlvbihwYW5lbCkKIHsKICAgICBXZWJJbnNwZWN0b3IuU2Vs
ZWN0aW9uRGlhbG9nQ29udGVudFByb3ZpZGVyLmNhbGwodGhpcyk7CiAgICAgdGhpcy5fcGFuZWwg
PSBwYW5lbDsKIAotICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSB1aVNvdXJjZUNvZGVQcm92aWRl
ci51aVNvdXJjZUNvZGVzKCk7CisgICAgdmFyIHByb2plY3RzID0gV2ViSW5zcGVjdG9yLndvcmtz
cGFjZS5wcm9qZWN0cygpOworICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSBbXTsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHByb2plY3RzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmIChwcm9q
ZWN0c1tpXS5pc1NlcnZpY2VQcm9qZWN0KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9IHRoaXMuX3VpU291cmNlQ29kZXMuY29uY2F0KHByb2pl
Y3RzW2ldLnVpU291cmNlQ29kZXMoKSk7CisgICAgfQogCiAgICAgZnVuY3Rpb24gZmlsdGVyT3V0
RW1wdHlVUkxzKHVpU291cmNlQ29kZSkKICAgICB7CkBAIC03MTQsMTQgKzcxOSwxMyBAQCBXZWJJ
bnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nLnByb3RvdHlwZSA9IHsKIAogLyoqCiAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWx9IHBhbmVsCi0gKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcn0gdWlTb3VyY2VDb2RlUHJvdmlkZXIKICAqIEBwYXJh
bSB7RWxlbWVudH0gcmVsYXRpdmVUb0VsZW1lbnQKICAqLwotV2ViSW5zcGVjdG9yLk9wZW5SZXNv
dXJjZURpYWxvZy5zaG93ID0gZnVuY3Rpb24ocGFuZWwsIHVpU291cmNlQ29kZVByb3ZpZGVyLCBy
ZWxhdGl2ZVRvRWxlbWVudCkKK1dlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cuc2hvdyA9
IGZ1bmN0aW9uKHBhbmVsLCByZWxhdGl2ZVRvRWxlbWVudCkKIHsKICAgICBpZiAoV2ViSW5zcGVj
dG9yLkRpYWxvZy5jdXJyZW50SW5zdGFuY2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdmFy
IGZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsdGVyZWRJ
dGVtU2VsZWN0aW9uRGlhbG9nKG5ldyBXZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nKHBh
bmVsLCB1aVNvdXJjZUNvZGVQcm92aWRlcikpOworICAgIHZhciBmaWx0ZXJlZEl0ZW1TZWxlY3Rp
b25EaWFsb2cgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyhu
ZXcgV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJjZURpYWxvZyhwYW5lbCkpOwogICAgIFdlYkluc3Bl
Y3Rvci5EaWFsb2cuc2hvdyhyZWxhdGl2ZVRvRWxlbWVudCwgZmlsdGVyZWRJdGVtU2VsZWN0aW9u
RGlhbG9nKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTGl2ZUVkaXRTdXBwb3J0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9MaXZlRWRpdFN1cHBvcnQuanMKaW5kZXggYzY4NzQ0MjY3NGMwN2YyMWQ2NmJmNzU5ZWJkNzg1
MDFjYmFkZjFhYy4uNTU2OGFkOTA2NDIwMGZlZDEyNzI5Y2YzODdjMGIzMmZlZWYzMWE1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9MaXZlRWRpdFN1cHBv
cnQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9MaXZlRWRpdFN1
cHBvcnQuanMKQEAgLTM1LDkgKzM1LDEwIEBACiBXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTdXBwb3J0
ID0gZnVuY3Rpb24od29ya3NwYWNlKQogewogICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFj
ZTsKLSAgICB0aGlzLl93b3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTGl2ZUVk
aXRXb3Jrc3BhY2VQcm92aWRlcih3b3Jrc3BhY2UpOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVz
ZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKLSAgICB0aGlzLl9yZXNldCgpOworICAgIHRoaXMuX3dv
cmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRl
cih0aGlzLl93b3Jrc3BhY2UpOworICAgIHdvcmtzcGFjZS5hZGRQcm9qZWN0KFdlYkluc3BlY3Rv
ci5wcm9qZWN0TmFtZXMuTGl2ZUVkaXQsIHRoaXMuX3dvcmtzcGFjZVByb3ZpZGVyKTsKKyAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVkLCB0aGlzLl9kZWJ1Z2dlclJl
c2V0LCB0aGlzKTsKKyAgICB0aGlzLl9kZWJ1Z2dlclJlc2V0KCk7CiB9CiAKIFdlYkluc3BlY3Rv
ci5MaXZlRWRpdFN1cHBvcnQucHJvdG90eXBlID0gewpAQCAtNTcsMjAgKzU4LDI0IEBAIFdlYklu
c3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJu
IHVpTG9jYXRpb24udWlTb3VyY2VDb2RlOwogICAgICAgICBpZiAodGhpcy5fdWlTb3VyY2VDb2Rl
Rm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSkKICAgICAgICAgICAgIHJldHVybiB0aGlzLl91
aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdOwotICAgICAgICAKKwogICAg
ICAgICBjb25zb2xlLmFzc2VydCghc2NyaXB0LmlzSW5saW5lU2NyaXB0KCkpOwotICAgICAgICB2
YXIgbGl2ZUVkaXRVSVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2VQcm92aWRlci5hZGRMaXZl
RWRpdEZpbGUodWlTb3VyY2VDb2RlLnVybCwgc2NyaXB0LCB0cnVlKTsKKyAgICAgICAgdmFyIHVy
aSA9ICJsaXZlZWRpdDoiICsgV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLnVy
aUZvclVSTCh1aVNvdXJjZUNvZGUudXJsKTsKKyAgICAgICAgdmFyIHVuaXF1ZVVSSSA9IHRoaXMu
X3dvcmtzcGFjZVByb3ZpZGVyLnVuaXF1ZVVSSSh1cmkpOworICAgICAgICB2YXIgbGl2ZUVkaXRV
SVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlKHVuaXF1ZVVSSSwg
dWlTb3VyY2VDb2RlLnVybCwgc2NyaXB0LCB0cnVlKTsKKwogICAgICAgICBsaXZlRWRpdFVJU291
cmNlQ29kZS5zZXRTY3JpcHRGaWxlKG5ldyBXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTY3JpcHRGaWxl
KHVpU291cmNlQ29kZSwgbGl2ZUVkaXRVSVNvdXJjZUNvZGUsIHNjcmlwdC5zY3JpcHRJZCkpOwog
ICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdID0g
bGl2ZUVkaXRVSVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMuX3NjcmlwdElkRm9yVUlTb3VyY2VD
b2RlLnB1dChsaXZlRWRpdFVJU291cmNlQ29kZSwgc2NyaXB0LnNjcmlwdElkKTsKICAgICAgICAg
cmV0dXJuIGxpdmVFZGl0VUlTb3VyY2VDb2RlOwogICAgIH0sCiAKLSAgICBfcmVzZXQ6IGZ1bmN0
aW9uKCkKKyAgICBfZGVidWdnZXJSZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgLyoq
IEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59ICovCiAg
ICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkID0ge307CiAgICAgICAgIHRoaXMu
X3NjcmlwdElkRm9yVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOworICAgICAgICB0aGlzLl93b3Jr
c3BhY2VQcm92aWRlci5yZXNldCgpOwogICAgIH0sCiB9CiAKQEAgLTEzMCwzMiArMTM1LDMgQEAg
V2ViSW5zcGVjdG9yLkxpdmVFZGl0U2NyaXB0RmlsZS5wcm90b3R5cGUgPSB7CiAKIC8qKiBAdHlw
ZSB7V2ViSW5zcGVjdG9yLkxpdmVFZGl0U3VwcG9ydH0gKi8KIFdlYkluc3BlY3Rvci5saXZlRWRp
dFN1cHBvcnQgPSBudWxsOwotCi0vKioKLSAqIEBjb25zdHJ1Y3RvcgotICogQGV4dGVuZHMge1dl
Ykluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlcn0KLSAqLwotV2ViSW5zcGVjdG9yLkxp
dmVFZGl0V29ya3NwYWNlUHJvdmlkZXIgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCi17Ci0gICAgV2Vi
SW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmNhbGwodGhpcyk7Ci0gICAgdGhpcy5f
d29ya3NwYWNlID0gd29ya3NwYWNlOwotfQotCi1XZWJJbnNwZWN0b3IuTGl2ZUVkaXRXb3Jrc3Bh
Y2VQcm92aWRlci5wcm90b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9
IHVybAotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVu
dFByb3ZpZGVyCi0gICAgICogQHBhcmFtIHtib29sZWFufSBpc0VkaXRhYmxlCi0gICAgICogQHJl
dHVybiB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KLSAgICAgKi8KLSAgICBhZGRMaXZlRWRp
dEZpbGU6IGZ1bmN0aW9uKHVybCwgY29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlKQotICAgIHsK
LSAgICAgICAgdmFyIHVyaSA9ICJsaXZlZWRpdDoiICsgV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtz
cGFjZVByb3ZpZGVyLnVyaUZvclVSTCh1cmwpOwotICAgICAgICB2YXIgdW5pcXVlVVJJID0gdGhp
cy51bmlxdWVVUkkodXJpKTsKLSAgICAgICAgLy8gRklYTUU6IHRoaXMgaXMgYSB0ZW1wb3Jhcnkg
aGFjayB0byBiZSByZW1vdmVkIG9uY2UgTGl2ZUVkaXQgdWlTb3VyY2VDb2RlIGJlY29tZSBwYXJ0
IG9mIHRoZSB3b3Jrc3BhY2UuCi0gICAgICAgIHRoaXMuX2NvbnRlbnRQcm92aWRlcnNbdW5pcXVl
VVJJXSA9IG51bGw7Ci0gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UuYWRkVGVtcG9yYXJ5
VUlTb3VyY2VDb2RlKHVuaXF1ZVVSSSwgdXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUp
OwotICAgIH0sCi0KLSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQ
cm92aWRlci5wcm90b3R5cGUKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKaW5k
ZXggM2I1ZjMxM2NlODI5NjQ4ZGY4MGFiOTIxYjFkNmZjMGUyZDI0MDcxMC4uOWQ1MTY4MTFhYjRk
MWE5YWMyZDRlMzUxYmE2YjcxOTEyY2M4YzdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJv
dmlkZXIuanMKQEAgLTM4LDggKzM4LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNv
ZGVQcm92aWRlciA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgbmV0d29ya1dvcmtzcGFjZVAKICAgICB0
aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7CiAgICAgdGhpcy5fbmV0d29ya1dvcmtzcGFjZVBy
b3ZpZGVyID0gbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyOwogICAgIFdlYkluc3BlY3Rvci5yZXNv
dXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVN
b2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX3Jlc291cmNlQWRkZWQsIHRoaXMp
OwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jr
c3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Byb2plY3RXaWxsUmVzZXQsIHRo
aXMpOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5X
b3Jrc3BhY2UuRXZlbnRzLlByb2plY3REaWRSZXNldCwgdGhpcy5fcHJvamVjdERpZFJlc2V0LCB0
aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5NYWluRnJhbWVOYXZp
Z2F0ZWQsIHRoaXMuX21haW5GcmFtZU5hdmlnYXRlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5FdmVudHMuUGFyc2VkU2NyaXB0U291cmNlLCB0aGlzLl9wYXJzZWRTY3JpcHRTb3VyY2UsIHRo
aXMpOwogCiAgICAgdGhpcy5fcHJvY2Vzc2VkVVJMcyA9IHt9OwpAQCAtMTAxLDYgKzEwMCwxNCBA
QCBXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsK
ICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2
ZW50CisgICAgICovCisgICAgX21haW5GcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24oZXZlbnQpCisg
ICAgeworICAgICAgICB0aGlzLl9yZXNldCgpOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBA
cGFyYW0ge3N0cmluZ30gdXJsCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ29udGVudFBy
b3ZpZGVyfSBjb250ZW50UHJvdmlkZXIKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBpc0NvbnRl
bnRTY3JpcHQKQEAgLTExNCw0OCArMTIxLDE5IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3Vy
Y2VDb2RlUHJvdmlkZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB0aGlzLl9wcm9jZXNzZWRVUkxzW3VybF0gPSB0cnVlOwogICAgICAgICB2YXIgaXNFZGl0YWJs
ZSA9IHR5cGUgIT09IFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50OwotICAgICAg
ICB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkTmV0d29ya0ZpbGUodXJsLCBjb250
ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUsIGlzQ29udGVudFNjcmlwdCk7CisgICAgICAgIHRoaXMu
X25ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlRm9yVVJMKHVybCwgY29udGVudFByb3Zp
ZGVyLCBpc0VkaXRhYmxlLCBpc0NvbnRlbnRTY3JpcHQpOwogICAgIH0sCiAKLSAgICBfcHJvamVj
dFdpbGxSZXNldDogZnVuY3Rpb24oKQorICAgIF9yZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgdGhpcy5fcHJvY2Vzc2VkVVJMcyA9IHt9OwogICAgICAgICB0aGlzLl9sYXN0RHluYW1p
Y0Fub255bW91c1NjcmlwdEluZGV4Rm9yVVJMID0ge307Ci0gICAgfSwKLQotICAgIF9wcm9qZWN0
RGlkUmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7CisgICAgICAgIHRoaXMuX25ldHdvcmtXb3Jrc3Bh
Y2VQcm92aWRlci5yZXNldCgpOwogICAgICAgICB0aGlzLl9wb3B1bGF0ZSgpOwogICAgIH0KIH0K
IAogLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2ltcGxl
V29ya3NwYWNlUHJvdmlkZXJ9Ci0gKi8KLVdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIgPSBmdW5jdGlvbigpCi17Ci0gICAgV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVBy
b3ZpZGVyLmNhbGwodGhpcyk7Ci19Ci0KLVdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIucHJvdG90eXBlID0gewotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwK
LSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9IGNvbnRlbnRQcm92
aWRlcgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNFZGl0YWJsZQotICAgICAqIEBwYXJhbSB7
Ym9vbGVhbj19IGlzQ29udGVudFNjcmlwdAotICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGlzU25p
cHBldAotICAgICAqLwotICAgIGFkZE5ldHdvcmtGaWxlOiBmdW5jdGlvbih1cmwsIGNvbnRlbnRQ
cm92aWRlciwgaXNFZGl0YWJsZSwgaXNDb250ZW50U2NyaXB0LCBpc1NuaXBwZXQpCi0gICAgewot
ICAgICAgICB2YXIgdXJpID0gV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLnVy
aUZvclVSTCh1cmwpOwotICAgICAgICB0aGlzLmFkZEZpbGUodXJpLCB1cmwsIGNvbnRlbnRQcm92
aWRlciwgaXNFZGl0YWJsZSwgaXNDb250ZW50U2NyaXB0LCBpc1NuaXBwZXQpOwotICAgIH0sCi0K
LSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5wcm90
b3R5cGUKLX0KLQotLyoqCi0gKiBAdHlwZSB7P1dlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNl
UHJvdmlkZXJ9CisgKiBAdHlwZSB7P1dlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRl
cn0KICAqLwogV2ViSW5zcGVjdG9yLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG51bGw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2Ny
aXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VTY3JpcHRNYXBwaW5nLmpzCmluZGV4IDc4MDI4NTBlYzM3Mjk1YmU0YjdhMTMwMmIzZWFjNzdh
ZjhlNWJhN2YuLjg1MmQyYjQ1ODVmZjk4ZWZkNzE5OTE5NGNmNzg3MmFhYWE4NTg5MTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRN
YXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VTY3JpcHRNYXBwaW5nLmpzCkBAIC0zNiwxMCArMzYsMTAgQEAKIFdlYkluc3BlY3Rvci5SZXNv
dXJjZVNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCiB7CiAgICAgdGhpcy5fd29y
a3NwYWNlID0gd29ya3NwYWNlOwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jl
c2V0LCB0aGlzKTsKICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlz
Ll91aVNvdXJjZUNvZGVBZGRlZFRvV29ya3NwYWNlLCB0aGlzKTsKIAotICAgIHRoaXMuX3Jlc2V0
KCk7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCwgdGhpcy5f
ZGVidWdnZXJSZXNldCwgdGhpcyk7CisgICAgdGhpcy5fZGVidWdnZXJSZXNldCgpOwogfQogCiBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKQEAgLTkzLDcg
KzkzLDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7
CiAgICAgX3VpU291cmNlQ29kZUFkZGVkVG9Xb3Jrc3BhY2U6IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHsKICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZX0gKi8gKGV2ZW50LmRhdGEpOwotICAgICAgICBjb25zb2xlLmFzc2VydCghIXVp
U291cmNlQ29kZS51cmwpOworICAgICAgICBpZiAoIXVpU291cmNlQ29kZS51cmwpCisgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIHNjcmlwdHMgPSB0aGlzLl9zY3JpcHRzRm9yVUlT
b3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CiAgICAgICAgIGlmICghc2NyaXB0cy5sZW5ndGgpCkBA
IC0xNzUsNyArMTc2LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5nKHRoaXMpOwog
ICAgIH0sCiAKLSAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBfZGVidWdnZXJSZXNldDogZnVu
Y3Rpb24oKQogICAgIHsKICAgICAgICAgLyoqIEB0eXBlIHshT2JqZWN0LjxzdHJpbmcsICFBcnJh
eS48IVdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+Pn0gKi8KICAgICAgICAgdGhpcy5faW5saW5l
U2NyaXB0c0ZvclNvdXJjZVVSTCA9IHt9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzCmluZGV4IDQ1OTJlNGFk
NTExODk5OTc0YjA3MWVkYmNmMzYwYTIzZjZjNGY3OTQuLmRlODg1YWRkZmU1NWExMTU1MzFmZDY4
YjNiOTI0OTk3NDk1YThkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmV2aXNpb25IaXN0b3J5Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcuanMKQEAgLTU2LDggKzU2LDcgQEAg
V2ViSW5zcGVjdG9yLlJldmlzaW9uSGlzdG9yeVZpZXcgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5z
cGVjdG9yLndvcmtzcGFjZS51aVNvdXJjZUNvZGVzKCkuZm9yRWFjaChwb3B1bGF0ZVJldmlzaW9u
cy5iaW5kKHRoaXMpKTsKICAgICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuVUlTb3VyY2VDb2RlQ29udGVudENvbW1p
dHRlZCwgdGhpcy5fcmV2aXNpb25BZGRlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLndvcmtz
cGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5F
dmVudHMuVUlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcy5fdWlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhp
cyk7Ci0gICAgV2ViSW5zcGVjdG9yLndvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlUmVt
b3ZlZCwgdGhpcy5fdWlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9y
LndvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRz
LlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3Iu
d29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMu
UHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcHJvamVjdFdpbGxSZXNldCwgdGhpcyk7CiAKICAgICB0
aGlzLl9zdGF0dXNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAg
IHRoaXMuX3N0YXR1c0VsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkxvY2FsIG1vZGlmaWNhdGlvbnMiKTsKQEAgLTE3MiwxMCArMTcxLDEwIEBAIFdlYkluc3BlY3Rv
ci5SZXZpc2lvbkhpc3RvcnlWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdWlTb3Vy
Y2VDb2RlSXRlbXMucmVtb3ZlKHVpU291cmNlQ29kZSk7CiAgICAgfSwKIAotICAgIF9yZXNldDog
ZnVuY3Rpb24oKQorICAgIF9wcm9qZWN0V2lsbFJlc2V0OiBmdW5jdGlvbihldmVudCkKICAgICB7
Ci0gICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lLnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIHRo
aXMuX3VpU291cmNlQ29kZUl0ZW1zLmNsZWFyKCk7CisgICAgICAgIHZhciBwcm9qZWN0ID0gZXZl
bnQuZGF0YTsKKyAgICAgICAgcHJvamVjdC51aVNvdXJjZUNvZGVzKCkuZm9yRWFjaCh0aGlzLl9y
ZW1vdmVVSVNvdXJjZUNvZGUuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIF9fcHJvdG9fXzog
V2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NBU1NTb3VyY2VNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcwppbmRleCBkNjdlNmQ2MmZk
NjliODU1MjlkMjYxN2QzNjQ0NDcxYWVmNjE2OWM3Li4yYTY0ZDA5MzM0MDczMjQ5NjZiZWJhMGE2
ZjY0MTAxZjIyYTI3ZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NBU1NTb3VyY2VNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcuanMKQEAgLTMyLDcgKzMyLDcgQEAKICAqIEBj
b25zdHJ1Y3RvcgogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nfQog
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29ya3NwYWNlfSB3b3Jrc3BhY2UKLSAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcn0gbmV0d29ya1dvcmtzcGFjZVBy
b3ZpZGVyCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlcn0g
bmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyCiAgKi8KIFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFw
cGluZyA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKQogewpA
QCAtMTU3LDggKzE1Nyw3IEBAIFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGlmICghdWlTb3VyY2VDb2RlKSB7CiAgICAgICAgICAgICB2YXIgY29u
dGVudCA9IEluc3BlY3RvckZyb250ZW5kSG9zdC5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHVy
bCk7CiAgICAgICAgICAgICB2YXIgY29udGVudFByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5T
dGF0aWNDb250ZW50UHJvdmlkZXIoV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5bGVzaGVl
dCwgY29udGVudCwgInRleHQveC1zY3NzIik7Ci0gICAgICAgICAgICB0aGlzLl9uZXR3b3JrV29y
a3NwYWNlUHJvdmlkZXIuYWRkTmV0d29ya0ZpbGUodXJsLCBjb250ZW50UHJvdmlkZXIsIHRydWUp
OwotICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29k
ZUZvclVSTCh1cmwpOworICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gdGhpcy5fbmV0d29ya1dv
cmtzcGFjZVByb3ZpZGVyLmFkZEZpbGVGb3JVUkwodXJsLCBjb250ZW50UHJvdmlkZXIsIHRydWUp
OwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnNldFNvdXJjZU1hcHBpbmcocmF3
VVJMLCB0aGlzKTsKICAgICAgICAgfQogICAgICAgICB2YXIgcmF3TG9jYXRpb25TdHJpbmcgPSBy
YXdVUkwgKyAiOiIgKyAocmF3TGluZSArIDEpOyAgLy8gTmV4dCBsaW5lIGFmdGVyIG1hcHBpbmcg
bWV0YWluZm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0U25pcHBldE1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKaW5kZXggOWUzZjAzMTdlODgwODYzNmVjYjEyZTk4OTcz
OTc4NThhYTljNTNlYS4uYzJkZGFhY2QwNjEwNzdlMDcwMWJjNjY1MzczZDYzYjNhNjFlNWRmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlw
cGV0TW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRTbmlwcGV0TW9kZWwuanMKQEAgLTMyLDEyICszMiwxMCBAQAogICogQGNvbnN0cnVjdG9yCiAg
KiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LldvcmtzcGFjZX0gd29ya3NwYWNlCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5OZXR3b3JrV29y
a3NwYWNlUHJvdmlkZXJ9IG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcgogICovCi1XZWJJbnNwZWN0
b3IuU2NyaXB0U25pcHBldE1vZGVsID0gZnVuY3Rpb24od29ya3NwYWNlLCBuZXR3b3JrV29ya3Nw
YWNlUHJvdmlkZXIpCitXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsID0gZnVuY3Rpb24o
d29ya3NwYWNlKQogewogICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKLSAgICB0aGlz
Ll9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXI7CiAg
ICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKICAgICB0aGlzLl9zY3JpcHRG
b3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU25p
cHBldElkID0ge307CkBAIC00Niw5ICs0NCw5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0
TW9kZWwgPSBmdW5jdGlvbih3b3Jrc3BhY2UsIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcikKICAg
ICB0aGlzLl9zbmlwcGV0U3RvcmFnZSA9IG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldFN0b3JhZ2Uo
InNjcmlwdCIsICJTY3JpcHQgc25pcHBldCAjIik7CiAgICAgdGhpcy5fbGFzdFNuaXBwZXRFdmFs
dWF0aW9uSW5kZXhTZXR0aW5nID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmco
Imxhc3RTbmlwcGV0RXZhbHVhdGlvbkluZGV4IiwgMCk7CiAgICAgdGhpcy5fc25pcHBldFNjcmlw
dE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRTY3JpcHRNYXBwaW5nKHRoaXMpOwot
ICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Byb2plY3RXaWxsUmVzZXQsIHRoaXMp
OwotICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jr
c3BhY2UuRXZlbnRzLlByb2plY3REaWRSZXNldCwgdGhpcy5fcHJvamVjdERpZFJlc2V0LCB0aGlz
KTsKLSAgICB0aGlzLl9sb2FkU25pcHBldHMoKTsKKyAgICB0aGlzLl93b3Jrc3BhY2VQcm92aWRl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIodGhpcy5fd29ya3Nw
YWNlKTsKKyAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVz
LlNuaXBwZXRzLCB0aGlzLl93b3Jrc3BhY2VQcm92aWRlcik7CisgICAgdGhpcy5yZXNldCgpOwog
fQogCiBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKQEAgLTgy
LDggKzgwLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUgPSB7
CiAgICAgICovCiAgICAgX2FkZFNjcmlwdFNuaXBwZXQ6IGZ1bmN0aW9uKHNuaXBwZXQpCiAgICAg
ewotICAgICAgICB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkTmV0d29ya0ZpbGUo
c25pcHBldC5uYW1lLCBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRDb250ZW50UHJvdmlkZXIoc25p
cHBldCksIHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRo
aXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkwoc25pcHBldC5uYW1lKTsKKyAgICAgICAg
dmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZVByb3ZpZGVyLmFkZEZpbGUoc25pcHBl
dC5uYW1lLCBzbmlwcGV0Lm5hbWUsIG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldENvbnRlbnRQcm92
aWRlcihzbmlwcGV0KSwgdHJ1ZSwgZmFsc2UsIHRydWUpOwogICAgICAgICB2YXIgc2NyaXB0Rmls
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldFNjcmlwdEZpbGUodGhpcywgdWlTb3VyY2VDb2Rl
KTsKICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNjcmlwdEZpbGUoc2NyaXB0RmlsZSk7CiAgICAg
ICAgIHRoaXMuX3NuaXBwZXRJZEZvclVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzbmlw
cGV0LmlkKTsKQEAgLTEwNCw3ICsxMDEsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1v
ZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3JpcHQodWlT
b3VyY2VDb2RlKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3VpU291cmNlQ29kZUZvclNuaXBwZXRJ
ZFtzbmlwcGV0LmlkXTsKICAgICAgICAgdGhpcy5fc25pcHBldElkRm9yVUlTb3VyY2VDb2RlLnJl
bW92ZSh1aVNvdXJjZUNvZGUpOwotICAgICAgICB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlk
ZXIucmVtb3ZlRmlsZShzbmlwcGV0Lm5hbWUpOworICAgICAgICB0aGlzLl93b3Jrc3BhY2VQcm92
aWRlci5yZW1vdmVGaWxlKHNuaXBwZXQubmFtZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzcw
LDE2ICszNjcsMTUgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHJldHVybiBzbmlwcGV0SWQ7CiAgICAgfSwKIAotICAgIF9wcm9qZWN0V2ls
bFJlc2V0OiBmdW5jdGlvbigpCisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAg
IC8qKiBAdHlwZSB7IU9iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0g
Ki8KICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKICAgICAgICAg
dGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOworICAgICAgICAvKiogQHR5
cGUgeyFPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59ICovCiAgICAg
ICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNuaXBwZXRJZCA9IHt9OwogICAgICAgICB0aGlzLl9z
bmlwcGV0SWRGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7Ci0gICAgfSwKLQotICAgIF9wcm9q
ZWN0RGlkUmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7CisgICAgICAgIHRoaXMuX3dvcmtzcGFjZVBy
b3ZpZGVyLnJlc2V0KCk7CiAgICAgICAgIHRoaXMuX2xvYWRTbmlwcGV0cygpOwogICAgIH0sCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05h
dmlnYXRvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05h
dmlnYXRvci5qcwppbmRleCA2ZTQ4NjA5MjBmOGQzZjY0MTNkNzg2OTU4NjIzYjI3MmIzMDhmNTEz
Li5jMGUxNmVhMDAwNjQ2ZTczNTJhZjc3YjJkNGQ1ODJjZDhiZmQwM2ZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpz
CkBAIC0xNzAsMTMgKzE3MCw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzTmF2aWdhdG9yLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLlNjcmlwdHNOYXZpZ2F0b3IuRXZlbnRzLlNuaXBwZXRDcmVhdGlvblJlcXVlc3RlZCwgZXZl
bnQuZGF0YSk7CiAgICAgfSwKIAotICAgIHJlc2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICB0aGlzLl9zY3JpcHRzVmlldy5yZXNldCgpOwotICAgICAgICB0aGlzLl9jb250ZW50U2NyaXB0
c1ZpZXcucmVzZXQoKTsKLSAgICAgICAgdGhpcy5fc25pcHBldHNWaWV3LnJlc2V0KCk7Ci0gICAg
fSwKLQogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5q
cwppbmRleCAwZmQyOGM0ZWNkOWE3MWQ5NWJmN2YxOTdlYmEwMDgzOGY0NjhjOWIxLi5jMjU0Zjcx
ZThhYjI0ZWZlNjI4N2EwNjU5Y2QxYmE2YjBkYzU0NWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMTkwLDggKzE5MCw4
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbih3b3Jrc3BhY2VGb3JUZXN0
KQogCiAgICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdGhpcy5fdWlTb3Vy
Y2VDb2RlQWRkZWQsIHRoaXMpOwogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVt
b3ZlZCwgdGhpcy5fdWlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcyk7Ci0gICAgdGhpcy5fd29ya3Nw
YWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2
ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzLl91aVNvdXJjZUNvZGVSZW1v
dmVkLCB0aGlzKTsKLSAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9yZXNldC5iaW5k
KHRoaXMpLCB0aGlzKTsKKyAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9wcm9qZWN0
V2lsbFJlc2V0LmJpbmQodGhpcyksIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1v
ZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkds
b2JhbE9iamVjdENsZWFyZWQsIHRoaXMuX2RlYnVnZ2VyUmVzZXQsIHRoaXMpOwogCiAgICAgV2Vi
SW5zcGVjdG9yLmFkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5yZWdpc3RlclNlYXJjaFNjb3BlKG5l
dyBXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJjaFNjb3BlKHRoaXMuX3dvcmtzcGFjZSkpOwogfQpA
QCAtMjQzLDEyICsyNDMsMTQgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgewogICAgICAgICBpZiAodGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLnRv
Z2dsZWQpCiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0Rm9ybWF0dGVkKHRydWUpOwotCisg
ICAgICAgIHZhciBwcm9qZWN0TmFtZSA9IHVpU291cmNlQ29kZS5wcm9qZWN0KCkubmFtZSgpOwor
ICAgICAgICBpZiAodWlTb3VyY2VDb2RlLnByb2plY3QoKS5pc1NlcnZpY2VQcm9qZWN0KCkpCisg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5lci5hZGRVSVNv
dXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgdGhpcy5fbmF2aWdhdG9yLmFkZFVJU291
cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICAvLyBSZXBsYWNlIGRlYnVnZ2VyIHNjcmlw
dC1iYXNlZCB1aVNvdXJjZUNvZGUgd2l0aCBhIG5ldHdvcmstYmFzZWQgb25lLgotICAgICAgICBp
ZiAodGhpcy5fY3VycmVudFVJU291cmNlQ29kZSAmJiB0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2Rl
LmlzVGVtcG9yYXJ5ICYmIHRoaXMuX2N1cnJlbnRVSVNvdXJjZUNvZGUgIT09IHVpU291cmNlQ29k
ZSAmJiB0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlLnVybCA9PT0gdWlTb3VyY2VDb2RlLnVybCkg
ewotICAgICAgICAgICAgdmFyIGN1cnJlbnRVSVNvdXJjZUNvZGUgPSB0aGlzLl9jdXJyZW50VUlT
b3VyY2VDb2RlOworICAgICAgICB2YXIgY3VycmVudFVJU291cmNlQ29kZSA9IHRoaXMuX2N1cnJl
bnRVSVNvdXJjZUNvZGU7CisgICAgICAgIGlmIChjdXJyZW50VUlTb3VyY2VDb2RlICYmIGN1cnJl
bnRVSVNvdXJjZUNvZGUucHJvamVjdCgpLmlzU2VydmljZVByb2plY3QoKSAmJiBjdXJyZW50VUlT
b3VyY2VDb2RlICE9PSB1aVNvdXJjZUNvZGUgJiYgY3VycmVudFVJU291cmNlQ29kZS51cmwgPT09
IHVpU291cmNlQ29kZS51cmwpIHsKICAgICAgICAgICAgIHRoaXMuX3Nob3dGaWxlKHVpU291cmNl
Q29kZSk7CiAgICAgICAgICAgICB0aGlzLl9lZGl0b3JDb250YWluZXIucmVtb3ZlVUlTb3VyY2VD
b2RlKGN1cnJlbnRVSVNvdXJjZUNvZGUpOwogICAgICAgICB9CkBAIC0yNTcsOSArMjU5LDE5IEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIF91aVNvdXJjZUNv
ZGVSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9ICovIChldmVudC5kYXRh
KTsKLSAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLnJlbW92ZVVJU291cmNlQ29kZSh1aVNv
dXJjZUNvZGUpOwotICAgICAgICB0aGlzLl9uYXZpZ2F0b3IucmVtb3ZlVUlTb3VyY2VDb2RlKHVp
U291cmNlQ29kZSk7Ci0gICAgICAgIHRoaXMuX3JlbW92ZVNvdXJjZUZyYW1lKHVpU291cmNlQ29k
ZSk7CisgICAgICAgIHRoaXMuX3JlbW92ZVVJU291cmNlQ29kZXMoW3VpU291cmNlQ29kZV0pOwor
ICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlPn0gdWlTb3VyY2VDb2RlcworICAgICAqLworICAgIF9yZW1vdmVVSVNvdXJjZUNv
ZGVzOiBmdW5jdGlvbih1aVNvdXJjZUNvZGVzKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLl9u
YXZpZ2F0b3IucmVtb3ZlVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZXNbaV0pOworICAgICAgICAg
ICAgdGhpcy5fcmVtb3ZlU291cmNlRnJhbWUodWlTb3VyY2VDb2Rlc1tpXSk7CisgICAgICAgIH0K
KyAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLnJlbW92ZVVJU291cmNlQ29kZXModWlTb3Vy
Y2VDb2Rlcyk7CiAgICAgfSwKIAogICAgIF9jb25zb2xlQ29tbWFuZEV2YWx1YXRlZEluU2VsZWN0
ZWRDYWxsRnJhbWU6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMzM5LDI2ICszNTEsMjIgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBfZGVidWdnZXJXYXNEaXNh
YmxlZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVzZXQoKTsKKyAgICAgICAg
dGhpcy5fZGVidWdnZXJSZXNldCgpOwogICAgIH0sCiAKLSAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkK
KyAgICBfZGVidWdnZXJSZXNldDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgZGVsZXRlIHRo
aXMuY3VycmVudFF1ZXJ5OwotICAgICAgICB0aGlzLnNlYXJjaENhbmNlbGVkKCk7Ci0KICAgICAg
ICAgdGhpcy5fZGVidWdnZXJSZXN1bWVkKCk7Ci0KLSAgICAgICAgZGVsZXRlIHRoaXMuX2N1cnJl
bnRVSVNvdXJjZUNvZGU7Ci0gICAgICAgIHRoaXMuX25hdmlnYXRvci5yZXNldCgpOwotICAgICAg
ICB0aGlzLl9lZGl0b3JDb250YWluZXIucmVzZXQoKTsKLSAgICAgICAgdGhpcy5fdXBkYXRlU2Ny
aXB0Vmlld1N0YXR1c0Jhckl0ZW1zKCk7Ci0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmpzQnJl
YWtwb2ludHMucmVzZXQoKTsKICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNz
aW9ucy5yZXNldCgpOworICAgIH0sCiAKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlz
Ll93b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHVpU291cmNlQ29kZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVTb3Vy
Y2VGcmFtZSh1aVNvdXJjZUNvZGVzW2ldKTsKKyAgICBfcHJvamVjdFdpbGxSZXNldDogZnVuY3Rp
b24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgcHJvamVjdCA9IGV2ZW50LmRhdGE7CisgICAg
ICAgIHZhciB1aVNvdXJjZUNvZGVzID0gcHJvamVjdC51aVNvdXJjZUNvZGVzKCk7CisgICAgICAg
IHRoaXMuX3JlbW92ZVVJU291cmNlQ29kZXModWlTb3VyY2VDb2Rlcyk7CisgICAgICAgIGlmIChw
cm9qZWN0Lm5hbWUoKSA9PT0gV2ViSW5zcGVjdG9yLnByb2plY3ROYW1lcy5OZXR3b3JrKQorICAg
ICAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLnJlc2V0KCk7CiAgICAgfSwKIAogICAgIGdl
dCB2aXNpYmxlVmlldygpCkBAIC0zODIsNyArMzkwLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuZGVidWdnZXJFbmFibGVkKCkgJiYgYW5jaG9yLnVpU291cmNlQ29kZSkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHRoaXMuX3dv
cmtzcGFjZS51aVNvdXJjZUNvZGVzKCk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gdGhp
cy5fd29ya3NwYWNlLnByb2plY3QoV2ViSW5zcGVjdG9yLnByb2plY3ROYW1lcy5OZXR3b3JrKS51
aVNvdXJjZUNvZGVzKCk7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rl
cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgaWYgKHVpU291cmNlQ29kZXNbaV0udXJsID09
PSBhbmNob3IuaHJlZikgewogICAgICAgICAgICAgICAgIGFuY2hvci51aVNvdXJjZUNvZGUgPSB1
aVNvdXJjZUNvZGVzW2ldOwpAQCAtNTIyLDEzICs1MzAsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0g
dWlMb2NhdGlvbi51aVNvdXJjZUNvZGU7CiAgICAgICAgIC8vIFNvbWUgc2NyaXB0cyAoYW5vbnlt
b3VzIGFuZCBzbmlwcGV0cyBldmFsdWF0aW9ucykgYXJlIG5vdCBhZGRlZCB0byBmaWxlcyBzZWxl
Y3QgYnkgZGVmYXVsdC4KLSAgICAgICAgaWYgKHVpU291cmNlQ29kZS5pc1RlbXBvcmFyeSkgewot
ICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRVSVNvdXJjZUNvZGUgJiYgdGhpcy5fY3VycmVu
dFVJU291cmNlQ29kZS5zY3JpcHRGaWxlKCkgJiYgdGhpcy5fY3VycmVudFVJU291cmNlQ29kZS5z
Y3JpcHRGaWxlKCkuaXNEaXZlcmdpbmdGcm9tVk0oKSkKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICB0aGlzLl9lZGl0b3JDb250YWluZXIuYWRkVUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZSk7Ci0gICAgICAgICAgICBpZiAodWlTb3VyY2VDb2RlLmZvcm1hdHRlZCgpICE9PSB0
aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VCdXR0b24udG9nZ2xlZCkKLSAgICAgICAgICAgICAgICB1
aVNvdXJjZUNvZGUuc2V0Rm9ybWF0dGVkKHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUJ1dHRvbi50
b2dnbGVkKTsKLSAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5fY3VycmVudFVJU291cmNlQ29k
ZSAmJiB0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKSAmJiB0aGlzLl9jdXJy
ZW50VUlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKS5pc0RpdmVyZ2luZ0Zyb21WTSgpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBpZiAodGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9u
LnRvZ2dsZWQgJiYgIXVpU291cmNlQ29kZS5mb3JtYXR0ZWQoKSkKKyAgICAgICAgICAgIHVpU291
cmNlQ29kZS5zZXRGb3JtYXR0ZWQodHJ1ZSk7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRo
aXMuX3Nob3dGaWxlKHVpU291cmNlQ29kZSk7CiAgICAgICAgIHNvdXJjZUZyYW1lLnJldmVhbExp
bmUodWlMb2NhdGlvbi5saW5lTnVtYmVyKTsKICAgICAgICAgc291cmNlRnJhbWUuZm9jdXMoKTsK
QEAgLTExNjAsNyArMTE2NSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
ID0gewogCiAgICAgc2hvd0dvVG9Tb3VyY2VEaWFsb2c6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cuc2hvdyh0aGlzLCB0aGlzLl93b3Jr
c3BhY2UsIHRoaXMuZWRpdG9yVmlldy5tYWluRWxlbWVudCk7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5PcGVuUmVzb3VyY2VEaWFsb2cuc2hvdyh0aGlzLCB0aGlzLmVkaXRvclZpZXcubWFpbkVsZW1l
bnQpOwogICAgIH0sCiAKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5
cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2ltcGxl
V29ya3NwYWNlUHJvdmlkZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpzCmluZGV4IDA1NjY4YTIxMjk2MDRmOGYzMmZkZmY1
ZTk2YmFlYzgzNmMzNjQ3NzQuLjA3ODg5Yjk5ZmRhZWJlYWU1OGQ5NWQwNjMyN2ExMzQ4MjI2MGQz
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2ltcGxl
V29ya3NwYWNlUHJvdmlkZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5qcwpAQCAtMzMsOCArMzMsOSBAQAogICogQGlt
cGxlbWVudHMge1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92aWRlcn0KICAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuT2JqZWN0fQogICovCi1XZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJv
dmlkZXIgPSBmdW5jdGlvbigpCitXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIg
PSBmdW5jdGlvbih3b3Jrc3BhY2UpCiB7CisgICAgdGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNl
OwogICAgIC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5Db250ZW50UHJv
dmlkZXI+fSAqLwogICAgIHRoaXMuX2NvbnRlbnRQcm92aWRlcnMgPSB7fTsKIH0KQEAgLTk2LDYg
Kzk3LDIwIEBAIFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciBmaWxlRGVzY3JpcHRvciA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZURl
c2NyaXB0b3IodXJpLCB1cmwsIGNvbnRlbnRQcm92aWRlci5jb250ZW50VHlwZSgpLCBpc0VkaXRh
YmxlLCBpc0NvbnRlbnRTY3JpcHQsIGlzU25pcHBldCk7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRQ
cm92aWRlcnNbdXJpXSA9IGNvbnRlbnRQcm92aWRlcjsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLldvcmtzcGFjZVByb3ZpZGVyLkV2ZW50cy5GaWxl
QWRkZWQsIGZpbGVEZXNjcmlwdG9yKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzcGFjZS51
aVNvdXJjZUNvZGVGb3JVUkkodXJpKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFt
IHtzdHJpbmd9IHVybAorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRl
cn0gY29udGVudFByb3ZpZGVyCisgICAgICogQHBhcmFtIHtib29sZWFufSBpc0VkaXRhYmxlCisg
ICAgICogQHBhcmFtIHtib29sZWFuPX0gaXNDb250ZW50U2NyaXB0CisgICAgICogQHBhcmFtIHti
b29sZWFuPX0gaXNTbmlwcGV0CisgICAgICovCisgICAgYWRkRmlsZUZvclVSTDogZnVuY3Rpb24o
dXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUsIGlzQ29udGVudFNjcmlwdCwgaXNTbmlw
cGV0KQorICAgIHsKKyAgICAgICAgdmFyIHVyaSA9IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3Bh
Y2VQcm92aWRlci51cmlGb3JVUkwodXJsKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuYWRkRmlsZSh1
cmksIHVybCwgY29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlLCBpc0NvbnRlbnRTY3JpcHQsIGlz
U25pcHBldCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTIyLDYgKzEzNyw3IEBAIFdlYkluc3Bl
Y3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgcmVzZXQ6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRQcm92aWRlcnMgPSB7fTsKKyAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLldvcmtzcGFj
ZVByb3ZpZGVyLkV2ZW50cy5SZXNldCwgbnVsbCk7CiAgICAgfSwKICAgICAKICAgICBfX3Byb3Rv
X186IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanMKaW5kZXgg
YmQ3ZTI2YzJhZjc0NDU2NDcxM2ZhZTgwNGMwYjY4M2NjMTEwZDJkOS4uZmE4NmFjYmM0ZGYwYTE0
ZTYzYzY0MWVhNGE0ZTk2MzkwZGY3ZjUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTb3VyY2VNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFwcGluZy5qcwpAQCAtMzYsNyAr
MzYsNyBAQAogV2ViSW5zcGVjdG9yLlN0eWxlc1NvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbih3b3Jr
c3BhY2UpCiB7CiAgICAgdGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlOwotICAgIHRoaXMuX3dv
cmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlBy
b2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKKyAgICB0aGlzLl93b3Jrc3BhY2Uu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2ls
bFJlc2V0LCB0aGlzLl9wcm9qZWN0V2lsbFJlc2V0LCB0aGlzKTsKICAgICB0aGlzLl93b3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZl
bnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlzLl91aVNvdXJjZUNvZGVBZGRlZFRvV29ya3NwYWNl
LCB0aGlzKTsKIAogICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclVSTCA9IHt9OwpAQCAtOTAsMTAg
KzkwLDEyIEBAIFdlYkluc3BlY3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnNldFNvdXJjZU1hcHBpbmcodWlTb3VyY2VD
b2RlLnVybCwgdGhpcyk7CiAgICAgfSwKIAotICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIF9w
cm9qZWN0V2lsbFJlc2V0OiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Vp
U291cmNlQ29kZUZvclVSTCA9IHt9OwotICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVz
ZXRTb3VyY2VNYXBwaW5ncygpOworICAgICAgICB2YXIgcHJvamVjdCA9IGV2ZW50LmRhdGE7Cisg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gcHJvamVjdC51aVNvdXJjZUNvZGVzKCk7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2RlczsgKytpKQorICAgICAgICAgICAg
ZGVsZXRlIHRoaXMuX3VpU291cmNlQ29kZUZvclVSTFt1aVNvdXJjZUNvZGVzW2ldLnVybF07CiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGFiYmVkRWRpdG9yQ29udGFpbmVyLmpzCmluZGV4IDJiYWFkNTE2MDZlYmVlNGVjMWM3
MzliMjI5ZGUwZDU5NGVjOWMwMTIuLjFjMzVhZTU5ODJiMzA4MmI1NWJiOWQ5NDJiNDE3ZDFkMDYz
YTJhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFi
YmVkRWRpdG9yQ29udGFpbmVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGFiYmVkRWRpdG9yQ29udGFpbmVyLmpzCkBAIC0yMjMsNiArMjIzLDcgQEAgV2ViSW5z
cGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB0
YWJJZHMgPSBbXTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxl
bmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2Rl
c1tpXTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9sb2FkZWRVUklzW3VpU291cmNlQ29kZS51
cmkoKV07CiAgICAgICAgICAgICB2YXIgdGFiSWQgPSB0aGlzLl90YWJJZHMuZ2V0KHVpU291cmNl
Q29kZSk7CiAgICAgICAgICAgICBpZiAodGFiSWQpCiAgICAgICAgICAgICAgICAgdGFiSWRzLnB1
c2godGFiSWQpOwpAQCAtMzkxLDEyICszOTIsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9y
Q29udGFpbmVyLnByb3RvdHlwZSA9IHsKIAogICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICB0aGlzLl90YWJiZWRQYW5lLmNsb3NlQWxsVGFicygpOwotICAgICAgICB0aGlzLl90
YWJJZHMgPSBuZXcgTWFwKCk7Ci0gICAgICAgIHRoaXMuX2ZpbGVzID0ge307Ci0gICAgICAgIGRl
bGV0ZSB0aGlzLl9jdXJyZW50RmlsZTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3VzZXJTZWxlY3Rl
ZEZpbGVzOwotICAgICAgICB0aGlzLl9sb2FkZWRVUklzID0ge307CiAgICAgfSwKIAogICAgIC8q
KgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJj
ZUNvZGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29k
ZS5qcwppbmRleCBlNmNhY2JhMDI0OWMzNWI4MWJmOTA0NzM4NzE5NTZmMjFjYjAyMDk3Li43YmM4
YzdjMjljMGNjMjQ5OGUyZDJmZDcyNTU2MzQ3NTUwNzE5NTIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcwpAQCAtMTY0LDYgKzE2
NCwxNCBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKICAgICB9LAog
CiAgICAgLyoqCisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlByb2plY3R9CisgICAgICov
CisgICAgcHJvamVjdDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3dv
cmtzcGFjZS5wcm9qZWN0Rm9yVUlTb3VyY2VDb2RlKHRoaXMpOworICAgIH0sCisKKyAgICAvKioK
ICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcsYm9vbGVhbixzdHJpbmcpfSBjYWxsYmFj
awogICAgICAqLwogICAgIHJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKQEAgLTYw
Niw4ICs2MTQsNiBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBmdW5jdGlv
bigpCiAKIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMgPSB7CiAgICAg
VUlTb3VyY2VDb2RlQWRkZWQ6ICJVSVNvdXJjZUNvZGVBZGRlZCIsCi0gICAgVGVtcG9yYXJ5VUlT
b3VyY2VDb2RlQWRkZWQ6ICJUZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCIsCi0gICAgVGVtcG9y
YXJ5VUlTb3VyY2VDb2RlUmVtb3ZlZDogIlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQiLAog
ICAgIFVJU291cmNlQ29kZVJlbW92ZWQ6ICJVSVNvdXJjZUNvZGVSZW1vdmVkIgogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpzCmluZGV4IDZm
ZjQxMTdiMjQ3MzQ5NDkzNjhiNzRmZWJjMWI4ZDI2ZGVkODM5NmQuLjE5OWRmZTdhYzBiZTE3ODYy
MjhjYzA0OTE1MjQwYjEwZmM4OTA0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvV29ya3NwYWNlLmpzCkBAIC0zNCwyNSArMzQsMTYgQEAKIFdlYkluc3BlY3Rv
ci5Xb3Jrc3BhY2VDb250cm9sbGVyID0gZnVuY3Rpb24od29ya3NwYWNlKQogewogICAgIHRoaXMu
X3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRU
eXBlcy5NYWluRnJhbWVOYXZpZ2F0ZWQsIHRoaXMuX21haW5GcmFtZU5hdmlnYXRlZCwgdGhpcyk7
Ci0gICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVBZGRlZCwgdGhpcy5f
ZnJhbWVBZGRlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMu
SW5zcGVjdGVkVVJMQ2hhbmdlZCwgdGhpcy5faW5zcGVjdGVkVVJMQ2hhbmdlZCwgdGhpcyk7CiB9
CiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKLSAgICBf
bWFpbkZyYW1lTmF2aWdhdGVkOiBmdW5jdGlvbigpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX2luc3BlY3RlZFVSTENoYW5n
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlJldmlzaW9u
LmZpbHRlck91dFN0YWxlUmV2aXNpb25zKCk7Ci0gICAgICAgIHRoaXMuX3dvcmtzcGFjZS5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVj
dFdpbGxSZXNldCwgdGhpcy5fd29ya3NwYWNlLnByb2plY3QoKSk7Ci0gICAgICAgIHRoaXMuX3dv
cmtzcGFjZS5wcm9qZWN0KCkucmVzZXQoKTsKLSAgICAgICAgdGhpcy5fd29ya3NwYWNlLnJlc2V0
KCk7Ci0gICAgICAgIHRoaXMuX3dvcmtzcGFjZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdERpZFJlc2V0LCB0aGlzLl93b3Jrc3Bh
Y2UucHJvamVjdCgpKTsKLSAgICB9LAotCi0gICAgX2ZyYW1lQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50
KQotICAgIHsKLSAgICAgICAgdmFyIGZyYW1lID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUcmVlRnJhbWV9ICovIChldmVudC5kYXRhKTsKLSAgICAgICAgaWYgKGZyYW1lLmlzTWFp
bkZyYW1lKCkpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuUmV2aXNpb24uZmlsdGVyT3V0U3Rh
bGVSZXZpc2lvbnMoKTsKICAgICB9CiB9CiAKQEAgLTgyLDcgKzczLDggQEAgV2ViSW5zcGVjdG9y
LldvcmtzcGFjZVByb3ZpZGVyID0gZnVuY3Rpb24oKSB7IH0KIAogV2ViSW5zcGVjdG9yLldvcmtz
cGFjZVByb3ZpZGVyLkV2ZW50cyA9IHsKICAgICBGaWxlQWRkZWQ6ICJGaWxlQWRkZWQiLAotICAg
IEZpbGVSZW1vdmVkOiAiRmlsZVJlbW92ZWQiCisgICAgRmlsZVJlbW92ZWQ6ICJGaWxlUmVtb3Zl
ZCIsCisgICAgUmVzZXQ6ICJSZXNldCIsCiB9CiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92
aWRlci5wcm90b3R5cGUgPSB7CkBAIC0xMzAsMjMgKzEyMiwzNiBAQCBXZWJJbnNwZWN0b3Iud29y
a3NwYWNlQ29udHJvbGxlciA9IG51bGw7CiAKIC8qKgogICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlfSB3b3Jrc3BhY2UKKyAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92aWRlcn0gd29ya3NwYWNlUHJvdmlkZXIKICAqIEBj
b25zdHJ1Y3RvcgogICovCi1XZWJJbnNwZWN0b3IuUHJvamVjdCA9IGZ1bmN0aW9uKHdvcmtzcGFj
ZSwgd29ya3NwYWNlUHJvdmlkZXIpCitXZWJJbnNwZWN0b3IuUHJvamVjdCA9IGZ1bmN0aW9uKHdv
cmtzcGFjZSwgbmFtZSwgd29ya3NwYWNlUHJvdmlkZXIpCiB7CisgICAgdGhpcy5fbmFtZSA9IG5h
bWU7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9IFtdOwogICAgIHRoaXMuX3dvcmtzcGFjZSA9
IHdvcmtzcGFjZTsKICAgICB0aGlzLl93b3Jrc3BhY2VQcm92aWRlciA9IHdvcmtzcGFjZVByb3Zp
ZGVyOwogICAgIHRoaXMuX3dvcmtzcGFjZVByb3ZpZGVyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLldvcmtzcGFjZVByb3ZpZGVyLkV2ZW50cy5GaWxlQWRkZWQsIHRoaXMuX2ZpbGVBZGRl
ZCwgdGhpcyk7CiAgICAgdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuV29ya3NwYWNlUHJvdmlkZXIuRXZlbnRzLkZpbGVSZW1vdmVkLCB0aGlzLl9m
aWxlUmVtb3ZlZCwgdGhpcyk7CisgICAgdGhpcy5fd29ya3NwYWNlUHJvdmlkZXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlUHJvdmlkZXIuRXZlbnRzLlJlc2V0LCB0aGlz
Ll9yZXNldCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3RvdHlwZSA9IHsK
LSAgICByZXNldDogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAqIEByZXR1cm4ge3N0cmluZ30K
KyAgICAgKi8KKyAgICBuYW1lOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl93b3Jr
c3BhY2VQcm92aWRlci5yZXNldCgpOwotICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0gW107
CisgICAgICAgIHJldHVybiB0aGlzLl9uYW1lOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBA
cmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIGlzU2VydmljZVByb2plY3Q6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9uYW1lID09PSBXZWJJbnNwZWN0b3IucHJv
amVjdE5hbWVzLkRlYnVnZ2VyIHx8IHRoaXMuX25hbWUgPT09IFdlYkluc3BlY3Rvci5wcm9qZWN0
TmFtZXMuTGl2ZUVkaXQ7CiAgICAgfSwKIAogICAgIF9maWxlQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50
KQpAQCAtMTc0LDYgKzE3OSwxMiBAQCBXZWJJbnNwZWN0b3IuUHJvamVjdC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCB1
aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKKyAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX3dvcmtzcGFjZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLldvcmtzcGFjZS5FdmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcyk7CisgICAgICAgIHRo
aXMuX3VpU291cmNlQ29kZXMgPSBbXTsKKyAgICB9LAorCiAgICAgLyoqCiAgICAgICogQHBhcmFt
IHtzdHJpbmd9IHVybAogICAgICAqIEByZXR1cm4gez9XZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
fQpAQCAtMjQwLDYgKzI1MSwxNCBAQCBXZWJJbnNwZWN0b3IuUHJvamVjdC5wcm90b3R5cGUgPSB7
CiAgICAgfQogfQogCitXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVzID0geworICAgIERlYnVnZ2Vy
OiAiZGVidWdnZXIiLAorICAgIExpdmVFZGl0OiAibGl2ZWVkaXQiLAorICAgIENvbXBpbGVyOiAi
Y29tcGlsZXIiLAorICAgIE5ldHdvcms6ICJuZXR3b3JrIiwKKyAgICBTbmlwcGV0czogInNuaXBw
ZXRzIiwKK30KKwogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBpbXBsZW1lbnRzIHtXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXJ9CkBAIC0yNDcsMTYgKzI2NiwxMyBAQCBXZWJJbnNw
ZWN0b3IuUHJvamVjdC5wcm90b3R5cGUgPSB7CiAgKi8KIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2Ug
PSBmdW5jdGlvbigpCiB7Ci0gICAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVj
dG9yLkNvbnRlbnRQcm92aWRlcj59ICovCi0gICAgdGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3Zp
ZGVycyA9IHt9OwotICAgIC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGU+fSAqLwotICAgIHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZXMgPSB7fTsK
KyAgICAvKiogQHR5cGUgeyFPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlByb2plY3Q+fSAq
LworICAgIHRoaXMuX3Byb2plY3RzID0ge307CiB9CiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2Uu
RXZlbnRzID0gewogICAgIFVJU291cmNlQ29kZUNvbnRlbnRDb21taXR0ZWQ6ICJVSVNvdXJjZUNv
ZGVDb250ZW50Q29tbWl0dGVkIiwKLSAgICBQcm9qZWN0V2lsbFJlc2V0OiAiUHJvamVjdFdpbGxS
ZXNldCIsCi0gICAgUHJvamVjdERpZFJlc2V0OiAiUHJvamVjdERpZFJlc2V0IgorICAgIFByb2pl
Y3RXaWxsUmVzZXQ6ICJQcm9qZWN0V2lsbFJlc2V0IgogfQogCiBXZWJJbnNwZWN0b3IuV29ya3Nw
YWNlLnByb3RvdHlwZSA9IHsKQEAgLTI2Niw3ICsyODIsNyBAQCBXZWJJbnNwZWN0b3IuV29ya3Nw
YWNlLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB1aVNvdXJjZUNvZGVGb3JVUkw6IGZ1bmN0
aW9uKHVybCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcm9qZWN0LnVpU291cmNlQ29k
ZUZvclVSTCh1cmwpOworICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdHNbV2ViSW5zcGVjdG9y
LnByb2plY3ROYW1lcy5OZXR3b3JrXS51aVNvdXJjZUNvZGVGb3JVUkwodXJsKTsKICAgICB9LAog
CiAgICAgLyoqCkBAIC0yNzUsNjEgKzI5MSw2NyBAQCBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnBy
b3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB1aVNvdXJjZUNvZGVGb3JVUkk6IGZ1bmN0aW9uKHVy
aSkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVzW3Vy
aV0gfHwgdGhpcy5fcHJvamVjdC51aVNvdXJjZUNvZGVGb3JVUkkodXJpKTsKKyAgICAgICAgZm9y
ICh2YXIgcHJvamVjdE5hbWUgaW4gdGhpcy5fcHJvamVjdHMpIHsKKyAgICAgICAgICAgIHZhciBw
cm9qZWN0ID0gdGhpcy5fcHJvamVjdHNbcHJvamVjdE5hbWVdOworICAgICAgICAgICAgdmFyIHVp
U291cmNlQ29kZSA9IHByb2plY3QudWlTb3VyY2VDb2RlRm9yVVJJKHVyaSk7CisgICAgICAgICAg
ICBpZiAodWlTb3VyY2VDb2RlKQorICAgICAgICAgICAgICAgIHJldHVybiB1aVNvdXJjZUNvZGU7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfSwKIAogICAgIC8qKgogICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9qZWN0TmFtZQogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLldvcmtzcGFjZVByb3ZpZGVyfSB3b3Jrc3BhY2VQcm92aWRlcgorICAgICAqIEByZXR1cm4g
e1dlYkluc3BlY3Rvci5Qcm9qZWN0fQogICAgICAqLwogICAgIGFkZFByb2plY3Q6IGZ1bmN0aW9u
KHByb2plY3ROYW1lLCB3b3Jrc3BhY2VQcm92aWRlcikKICAgICB7Ci0gICAgICAgIC8vIEZJWE1F
OiBzdXBwb3J0IG11bHRpcGxlIHByb2plY3RzIGlkZW50aWZpZWQgYnkgcHJvamVjdCBuYW1lLgot
ICAgICAgICB0aGlzLl9wcm9qZWN0ID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9qZWN0KHRoaXMsIHdv
cmtzcGFjZVByb3ZpZGVyKTsKKyAgICAgICAgdGhpcy5fcHJvamVjdHNbcHJvamVjdE5hbWVdID0g
bmV3IFdlYkluc3BlY3Rvci5Qcm9qZWN0KHRoaXMsIHByb2plY3ROYW1lLCB3b3Jrc3BhY2VQcm92
aWRlcik7CisgICAgICAgIHJldHVybiB0aGlzLl9wcm9qZWN0c1twcm9qZWN0TmFtZV07CiAgICAg
fSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9qZWN0TmFtZQogICAgICAq
IEByZXR1cm4ge1dlYkluc3BlY3Rvci5Qcm9qZWN0fQogICAgICAqLwotICAgIHByb2plY3Q6IGZ1
bmN0aW9uKCkKKyAgICBwcm9qZWN0OiBmdW5jdGlvbihwcm9qZWN0TmFtZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9wcm9qZWN0OworICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdHNb
cHJvamVjdE5hbWVdOwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59CisgICAgICogQHJldHVybiB7QXJyYXkuPFdlYklu
c3BlY3Rvci5Qcm9qZWN0Pn0KICAgICAgKi8KLSAgICB1aVNvdXJjZUNvZGVzOiBmdW5jdGlvbigp
CisgICAgcHJvamVjdHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9w
cm9qZWN0LnVpU291cmNlQ29kZXMoKTsKKyAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhp
cy5fcHJvamVjdHMpOwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30g
dXJpCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVudFByb3ZpZGVyCi0gICAgICogQHBhcmFtIHtib29s
ZWFufSBpc0VkaXRhYmxlCi0gICAgICogQHBhcmFtIHtib29sZWFuPX0gaXNDb250ZW50U2NyaXB0
CisgICAgICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQogICAg
ICAqLwotICAgIGFkZFRlbXBvcmFyeVVJU291cmNlQ29kZTogZnVuY3Rpb24odXJpLCB1cmwsIGNv
bnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSwgaXNDb250ZW50U2NyaXB0KQorICAgIHVpU291cmNl
Q29kZXM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcg
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh0aGlzLCB1cmksIHVybCwgY29udGVudFByb3ZpZGVy
LmNvbnRlbnRUeXBlKCksIGlzRWRpdGFibGUpOwotICAgICAgICB0aGlzLl90ZW1wb3JhcnlDb250
ZW50UHJvdmlkZXJzW3VyaV0gPSBjb250ZW50UHJvdmlkZXI7Ci0gICAgICAgIHRoaXMuX3RlbXBv
cmFyeVVJU291cmNlQ29kZXNbdXJpXSA9IHVpU291cmNlQ29kZTsKLSAgICAgICAgdWlTb3VyY2VD
b2RlLmlzQ29udGVudFNjcmlwdCA9IGlzQ29udGVudFNjcmlwdDsKLSAgICAgICAgdWlTb3VyY2VD
b2RlLmlzVGVtcG9yYXJ5ID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlV
SVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlKTsKLSAgICAgICAgcmV0dXJuIHVpU291cmNl
Q29kZTsKKyAgICAgICAgdmFyIHJlc3VsdCA9IFtdOworICAgICAgICBmb3IgKHZhciBwcm9qZWN0
TmFtZSBpbiB0aGlzLl9wcm9qZWN0cykgeworICAgICAgICAgICAgdmFyIHByb2plY3QgPSB0aGlz
Ll9wcm9qZWN0c1twcm9qZWN0TmFtZV07CisgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29u
Y2F0KHByb2plY3QudWlTb3VyY2VDb2RlcygpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQorICAgICAqIEByZXR1cm4gez9XZWJJbnNwZWN0b3Iu
UHJvamVjdH0KICAgICAgKi8KLSAgICByZW1vdmVUZW1wb3JhcnlVSVNvdXJjZUNvZGU6IGZ1bmN0
aW9uKHVpU291cmNlQ29kZSkKKyAgICBwcm9qZWN0Rm9yVUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1
aVNvdXJjZUNvZGUpCiAgICAgewotICAgICAgICBkZWxldGUgdGhpcy5fdGVtcG9yYXJ5Q29udGVu
dFByb3ZpZGVyc1t1aVNvdXJjZUNvZGUudXJpKCldOwotICAgICAgICBkZWxldGUgdGhpcy5fdGVt
cG9yYXJ5VUlTb3VyY2VDb2Rlc1t1aVNvdXJjZUNvZGUudXJpKCldOwotICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIu
RXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQsIHVpU291cmNlQ29kZSk7CisgICAg
ICAgIGZvciAodmFyIHByb2plY3ROYW1lIGluIHRoaXMuX3Byb2plY3RzKSB7CisgICAgICAgICAg
ICB2YXIgcHJvamVjdCA9IHRoaXMuX3Byb2plY3RzW3Byb2plY3ROYW1lXTsKKyAgICAgICAgICAg
IGlmIChwcm9qZWN0LnVpU291cmNlQ29kZUZvclVSSSh1aVNvdXJjZUNvZGUudXJpKCkpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBwcm9qZWN0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBu
dWxsOwogICAgIH0sCiAKICAgICAvKioKQEAgLTMzOCwxMiArMzYwLDggQEAgV2ViSW5zcGVjdG9y
LldvcmtzcGFjZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgcmVxdWVzdEZpbGVDb250ZW50
OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIHRl
bXBvcmFyeUNvbnRlbnRQcm92aWRlciA9IHRoaXMuX3RlbXBvcmFyeUNvbnRlbnRQcm92aWRlcnNb
dWlTb3VyY2VDb2RlLnVyaSgpXTsKLSAgICAgICAgaWYgKHRlbXBvcmFyeUNvbnRlbnRQcm92aWRl
cikgewotICAgICAgICAgICAgdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyLnJlcXVlc3RDb250ZW50
KGNhbGxiYWNrKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB0aGlz
Ll9wcm9qZWN0LnJlcXVlc3RGaWxlQ29udGVudCh1aVNvdXJjZUNvZGUudXJpKCksIGNhbGxiYWNr
KTsKKyAgICAgICAgdmFyIHByb2plY3QgPSB0aGlzLnByb2plY3RGb3JVSVNvdXJjZUNvZGUodWlT
b3VyY2VDb2RlKTsKKyAgICAgICAgcHJvamVjdC5yZXF1ZXN0RmlsZUNvbnRlbnQodWlTb3VyY2VD
b2RlLnVyaSgpLCBjYWxsYmFjayk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzUzLDkgKzM3MSw4
IEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHNl
dEZpbGVDb250ZW50OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIG5ld0NvbnRlbnQsIGNhbGxiYWNr
KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3RlbXBvcmFyeUNvbnRlbnRQcm92aWRlcnNbdWlT
b3VyY2VDb2RlLnVyaSgpXSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fcHJv
amVjdC5zZXRGaWxlQ29udGVudCh1aVNvdXJjZUNvZGUudXJsLCBuZXdDb250ZW50LCBjYWxsYmFj
ayk7CisgICAgICAgIHZhciBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0Rm9yVUlTb3VyY2VDb2RlKHVp
U291cmNlQ29kZSk7CisgICAgICAgIHByb2plY3Quc2V0RmlsZUNvbnRlbnQodWlTb3VyY2VDb2Rl
LnVyaSgpLCBuZXdDb250ZW50LCBjYWxsYmFjayk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzY3
LDE4ICszODQsOCBAQCBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZSA9IHsKICAgICAg
Ki8KICAgICBzZWFyY2hJbkZpbGVDb250ZW50OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIHF1ZXJ5
LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHZhciB0
ZW1wb3JhcnlDb250ZW50UHJvdmlkZXIgPSB0aGlzLl90ZW1wb3JhcnlDb250ZW50UHJvdmlkZXJz
W3VpU291cmNlQ29kZS51cmkoKV07Ci0gICAgICAgIGlmICh0ZW1wb3JhcnlDb250ZW50UHJvdmlk
ZXIpIHsKLSAgICAgICAgICAgIHRlbXBvcmFyeUNvbnRlbnRQcm92aWRlci5zZWFyY2hJbkNvbnRl
bnQocXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB0aGlzLl9wcm9qZWN0LnNlYXJjaEluRmlsZUNv
bnRlbnQodWlTb3VyY2VDb2RlLnVyaSgpLCBxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwg
Y2FsbGJhY2spOwotICAgIH0sCi0KLSAgICByZXNldDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVycyA9IHt9OwotICAgICAgICB0aGlzLl90
ZW1wb3JhcnlVSVNvdXJjZUNvZGVzID0ge307CisgICAgICAgIHZhciBwcm9qZWN0ID0gdGhpcy5w
cm9qZWN0Rm9yVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgIHByb2plY3Quc2Vh
cmNoSW5GaWxlQ29udGVudCh1aVNvdXJjZUNvZGUudXJpKCksIHF1ZXJ5LCBjYXNlU2Vuc2l0aXZl
LCBpc1JlZ2V4LCBjYWxsYmFjayk7CiAgICAgfSwKIAogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVj
dG9yLk9iamVjdC5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggMDU2MDAyZjMzMDdmZDVkZDMyNzE2MDQ0OTZiMmVhYWZk
NjI0MWM4My4uODgwZDE5NmIzMzVhZjY4MjY3Zjk0YTVhZTljMjFjNmYyODE4NmQzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTQz
MSwxMyArNDMxLDEzIEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0aENhcGFiaWxpdGll
cyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLm9wZW5BbmNob3JMb2NhdGlvblJlZ2lzdHJ5LnJlZ2lz
dGVySGFuZGxlcihhdXRvc2VsZWN0UGFuZWwsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0p
OwogCiAgICAgdGhpcy53b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgpOwot
ICAgIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3
b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKLSAgICB0aGlzLndvcmtzcGFjZS5hZGRQcm9qZWN0KCJu
ZXR3b3JrIiwgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOworICAgIHRoaXMubmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92
aWRlcih0aGlzLndvcmtzcGFjZSk7CisgICAgdGhpcy53b3Jrc3BhY2UuYWRkUHJvamVjdChXZWJJ
bnNwZWN0b3IucHJvamVjdE5hbWVzLk5ldHdvcmssIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyKTsKICAgICB0aGlzLndvcmtzcGFjZUNvbnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLldv
cmtzcGFjZUNvbnRyb2xsZXIodGhpcy53b3Jrc3BhY2UpOwogCiAgICAgdGhpcy5icmVha3BvaW50
TWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIoV2ViSW5zcGVjdG9y
LnNldHRpbmdzLmJyZWFrcG9pbnRzLCB0aGlzLmRlYnVnZ2VyTW9kZWwsIHRoaXMud29ya3NwYWNl
KTsKIAotICAgIHRoaXMuc2NyaXB0U25pcHBldE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3Jp
cHRTbmlwcGV0TW9kZWwodGhpcy53b3Jrc3BhY2UsIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyKTsKKyAgICB0aGlzLnNjcmlwdFNuaXBwZXRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2Ny
aXB0U25pcHBldE1vZGVsKHRoaXMud29ya3NwYWNlKTsKICAgICBuZXcgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyU2NyaXB0TWFwcGluZyh0aGlzLndvcmtzcGFjZSwgdGhpcy5uZXR3b3JrV29ya3NwYWNl
UHJvdmlkZXIpOwogICAgIHRoaXMubGl2ZUVkaXRTdXBwb3J0ID0gbmV3IFdlYkluc3BlY3Rvci5M
aXZlRWRpdFN1cHBvcnQodGhpcy53b3Jrc3BhY2UpOwogICAgIHRoaXMuc3R5bGVDb250ZW50Qmlu
ZGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVDb250ZW50QmluZGluZyh0aGlzLmNzc01vZGVs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0
aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMK
aW5kZXggYWVlNzBiYzQ3NzExZmUwNDg4ZTM0OWYyMTBjODNkZWNjN2QzYTBiOC4uY2VhOWY2N2Ix
MDM3Mjk1ZjlmMGEzYThjNmFiOTZiZGM1YmY3ZTdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTY4Niw2ICs2ODYsNyBAQCBNYXAu
X2xhc3RPYmplY3RJZGVudGlmaWVyID0gMDsKIE1hcC5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAg
ICAgICogQHBhcmFtIHtPYmplY3R9IGtleQorICAgICAqIEBwYXJhbSB7Kj19IHZhbHVlCiAgICAg
ICovCiAgICAgcHV0OiBmdW5jdGlvbihrZXksIHZhbHVlKQogICAgIHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMDk0ZDQ2
MDY1NDA0MGNjNzJjNmI3YTNiM2JmYzdlYTNhOGRmZjI2Li5mMWIxNjE2YjM2YWE3NDkzNjliNTZl
M2RmZjRiNzhkNmJlNDA0OGY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTMtMDEtMTEgIFZz
ZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogV29ya3NwYWNlIHNob3VsZCBzdXBwb3J0IHNldmVyYWwgcHJvamVjdHMgYW5kIHNob3Vs
ZCBub3QgaGF2ZSB0ZW1wb3JhcnkgVUlTb3VyY2VDb2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTg1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IFBhdmVsIEZlbGRtYW4uCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVk
L2R5bmFtaWMtc2NyaXB0cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2Nv
bXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLXJlcXVlc3QtcmV2aXNpb24tY29udGVudC5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzOgorICAgICAgICAoaW5p
dGlhbGl6ZV9Xb3Jrc3BhY2VUZXN0Lkluc3BlY3RvclRlc3QuY3JlYXRlV29ya3NwYWNlKToKKyAg
ICAgICAgKGluaXRpYWxpemVfV29ya3NwYWNlVGVzdC5JbnNwZWN0b3JUZXN0LmFkZE1vY2tVSVNv
dXJjZUNvZGVUb1dvcmtzcGFjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtbWFuYWdlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWlj
LXNjcmlwdHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJy
ZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbGl2
ZS1lZGl0LWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jl
c291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvcmVzb3VyY2VzL2VkaXQtbWUtYnJlYWtwb2ludHMuanM6IEFkZGVkLgorICAg
ICAgICAoZik6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1v
ZGVsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNu
aXBwZXQtbW9kZWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1w
YW5lbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMt
cGFuZWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lv
bnMtcHJlc2VydmUtZXhwYW5zaW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhwYW5zaW9uLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL3Vpc291cmNlY29kZS1yZXZpc2lvbnMuaHRtbDoKKwogMjAxMy0wMS0x
MSAgQW50b24gVmF5dm9kICA8YXZheXZvZEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVGV4dCBB
dXRvc2l6aW5nIC0gZWxlbWVudHMgbXVjaCBuYXJyb3dlciB0aGFuIGl0cyBwYXJlbnQgYXV0b3Np
emluZyBjbHVzdGVycyBzaG91bGQgYmUgYXV0b3NpemVkIHNlcGFyYXRlbHkuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2R5bmFtaWMtc2NyaXB0
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5hbWlj
LXNjcmlwdHMuaHRtbAppbmRleCBhZTc4OTY1ZDRhYzBhNzM4ZGUyMmU3NjJiMmY4MmU4MDA5M2U5
Y2M4Li5iYjk1MmI1OTdiMWQ5NTdiYTFkN2YzMTZhOTQxNDU2NWI2NTQ2OGE1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2R5bmFtaWMtc2NyaXB0
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZHlu
YW1pYy1zY3JpcHRzLmh0bWwKQEAgLTUxLDcgKzUxLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
ZnVuY3Rpb24gc3RlcDMoKQogICAgIHsKICAgICAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9y
LnNob3dQYW5lbCgic2NyaXB0cyIpOwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IFdlYklu
c3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpOworICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlcyA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UucHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVj
dE5hbWVzLk5ldHdvcmspLnVpU291cmNlQ29kZXMoKTsKICAgICAgICAgdmFyIHVybHMgPSB1aVNv
dXJjZUNvZGVzLm1hcChmdW5jdGlvbih1aVNvdXJjZUNvZGUpIHsgcmV0dXJuIHVpU291cmNlQ29k
ZS5wYXJzZWRVUkwubGFzdFBhdGhDb21wb25lbnQ7IH0pOwogICAgICAgICB1cmxzLnNvcnQoKTsK
ICAgICAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9j
b21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbAppbmRleCAxOGViZTMxMTNlNWYyMTgx
ZDIwODZmZDZlOTc2OGMxODZlNTEwYzc0Li5mN2E2MmIzNjIzNDAyODFlOWRiMzFlMzY2ZTk4MmZj
MGJlZjM0NTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9j
b21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwKQEAgLTE0Nyw3ICsxNDcsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRl
bXBvcmFyeVVJU291cmNlQ29kZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCk7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VD
b2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKICAgICAgICAgICAgICAg
ICBzY3JpcHQgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2soImNvbXBpbGVkLmpzIiwg
MCwgMCwgdHJ1ZSwgIiIpOwogICAgICAgICAgICAgICAgIHNjcmlwdC5zb3VyY2VNYXBVUkwgPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvc291cmNlLW1hcC5qc29u
IjsKICAgICAgICAgICAgICAgICBkZWZhdWx0U2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0
KTsKQEAgLTIxNSw3ICsyMTUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDEoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkRXZlbnQoZnVuY3Rp
b24oKSB7IH0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFj
ZVVJU291cmNlQ29kZUFkZGVkRXZlbnQoZnVuY3Rpb24oKSB7IH0pOwogICAgICAgICAgICAgICAg
IHNjcmlwdCA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jaygiY29tcGlsZWQuanMiLCAw
LCAwLCB0cnVlLCAiIik7CiAgICAgICAgICAgICAgICAgc2NyaXB0LnNvdXJjZU1hcFVSTCA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9zb3VyY2UtbWFwLmpzb24i
OwogICAgICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQp
OwpAQCAtMjc4LDcgKzI3OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgICJz
b3VyY2VzQ29udGVudCI6WyI8c291cmNlIGNvbnRlbnQ+Il0KICAgICAgICAgICAgIH07CiAgICAg
ICAgICAgICBzY3JpcHQuc291cmNlTWFwVVJMID0gImRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNl
NjQsIiArIGJ0b2EoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZEV2ZW50
KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53
YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNlQ29k
ZUFkZGVkKTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gb3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRl
ZCh1aVNvdXJjZUNvZGUpCiAgICAgICAgICAgICB7CkBAIC0zMDksMTAgKzMwOSw5IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mu
c291cmNlTWFwc0VuYWJsZWQuc2V0KHRydWUpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuX3Jlc2V0KCk7Ci0gICAgICAgICAgICB2YXIgbmV0d29ya1dvcmtzcGFjZVBy
b3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKICAg
ICAgICAgICAgIHZhciB3b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgpOwot
ICAgICAgICAgICAgdmFyIGRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIod29ya3NwYWNlKTsKLSAgICAgICAgICAgIHdv
cmtzcGFjZS5hZGRQcm9qZWN0KCJuZXR3b3JrIiwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsK
KyAgICAgICAgICAgIHZhciBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSk7CisgICAgICAgICAgICB3b3Jr
c3BhY2UuYWRkUHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVzLk5ldHdvcmssIG5ldHdv
cmtXb3Jrc3BhY2VQcm92aWRlcik7CiAgICAgICAgICAgICB2YXIgZGVidWdnZXJTY3JpcHRNYXBw
aW5nID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcod29ya3NwYWNlLCBu
ZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwogCiAgICAgICAgICAgICB2YXIgc2NyaXB0ID0gSW5z
cGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKCJjb21waWxlZC5qcyIsIDAsIDAsIHRydWUsICIi
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQu
aHRtbAppbmRleCAxNTUzYzRhYjYyMDRkMjEzZGM4YTYyNjRjYTBiZGZlMTczZTFhYjNlLi42NTkw
Y2QzODZjOWQ1N2Y0MDlhMjYxODRhZGZmZDQ1OGQyNDRlZGQzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcmVxdWVzdC1yZXZpc2lv
bi1jb250ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLXJlcXVlc3QtcmV2aXNpb24tY29udGVudC5odG1sCkBAIC0xOSw2ICsxOSw5
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHZhciByZXNvdXJjZTsKICAgICBmdW5jdGlvbiBzdGVw
MihldmVudCkKICAgICB7CisgICAgICAgIHZhciBldmVudFVJU291cmNlQ29kZSA9IGV2ZW50LmRh
dGE7CisgICAgICAgIGlmIChldmVudFVJU291cmNlQ29kZS51cmwuaW5kZXhPZigic3R5bGUuY3Nz
IikgPT0gLTEpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciByZXF1ZXN0ID0gV2Vi
SW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJu
ZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07CiAgICAgICAgIHVpU291cmNlQ29kZSA9IFdl
Ykluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKHJlcXVlc3QudXJsKTsKICAg
ICAgICAgaWYgKCF1aVNvdXJjZUNvZGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzCmluZGV4IDc0NjlmMzYwMjBiNDYzOWZlMjk5ZmE5
OTU0YmY1Y2ZiYjhkNWI5OTkuLjEwYzNlYWRlM2RmZjg4YmIxYjQ0YjExOGM4Y2VmNzUwYTViZWQ1
MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFj
ZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFj
ZS10ZXN0LmpzCkBAIC0zLDE0ICszLDExIEBAIHZhciBpbml0aWFsaXplX1dvcmtzcGFjZVRlc3Qg
PSBmdW5jdGlvbigpIHsKIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZTsKIEluc3BlY3RvclRl
c3QuY3JlYXRlV29ya3NwYWNlID0gZnVuY3Rpb24oKQogewotICAgIEluc3BlY3RvclRlc3QudGVz
dE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtz
cGFjZVByb3ZpZGVyKCk7CiAgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlID0gbmV3IFdl
Ykluc3BlY3Rvci5Xb3Jrc3BhY2UoKTsKLSAgICBJbnNwZWN0b3JUZXN0LnRlc3REZWJ1Z2dlcldv
cmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVByb3Zp
ZGVyKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSk7Ci0gICAgSW5zcGVjdG9yVGVzdC50ZXN0
V29ya3NwYWNlLmFkZFByb2plY3QoIm5ldHdvcmsiLCBJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3Jr
V29ya3NwYWNlUHJvdmlkZXIpOworICAgIEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3Bh
Y2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIoSW5z
cGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlKTsKKyAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3Bh
Y2UuYWRkUHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVzLk5ldHdvcmssIEluc3BlY3Rv
clRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CiAgICAgSW5zcGVjdG9yVGVzdC50
ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVBy
b3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVsdFVJ
U291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKICAgICBJbnNwZWN0b3JUZXN0LnRlc3RX
b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlk
ZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlbW92ZWQsIEluc3BlY3RvclRlc3QuX2RlZmF1bHRVSVNv
dXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7Ci0gICAgSW5zcGVjdG9yVGVzdC50ZXN0V29y
a3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVy
LkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVs
dFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICBJbnNwZWN0b3JUZXN0LnRl
c3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJv
dmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQsIEluc3BlY3RvclRlc3Qu
X2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7CiB9CiAKIEluc3BlY3Rv
clRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQgPSBmdW5jdGlvbihj
YWxsYmFjaykKQEAgLTI2LDM3ICsyMywxMSBAQCBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3Bh
Y2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50ID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgfQogfQog
Ci1JbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRl
ZEV2ZW50ID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgSW5zcGVjdG9yVGVzdC50ZXN0V29y
a3NwYWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3Zp
ZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVjdG9yVGVzdC5fZGVm
YXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICBJbnNwZWN0b3JUZXN0
LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
UHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkLCB0ZW1wb3JhcnlVSVNv
dXJjZUNvZGVBZGRlZCk7Ci0KLSAgICBmdW5jdGlvbiB0ZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRl
ZChldmVudCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5yZW1v
dmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMu
VGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWQsIHRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNv
ZGVBZGRlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRI
YW5kbGVyKTsKLSAgICAgICAgY2FsbGJhY2soZXZlbnQuZGF0YSk7Ci0gICAgfQotfQotCi1JbnNw
ZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkRXZl
bnQgPSBmdW5jdGlvbihjYWxsYmFjaykKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3Bh
Y2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIu
RXZlbnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQsIEluc3BlY3RvclRlc3QuX2RlZmF1
bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7Ci0gICAgSW5zcGVjdG9yVGVzdC50
ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVBy
b3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkLCB0ZW1wb3JhcnlVSVNv
dXJjZUNvZGVSZW1vdmVkKTsKLQotICAgIGZ1bmN0aW9uIHRlbXBvcmFyeVVJU291cmNlQ29kZVJl
bW92ZWQoZXZlbnQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2Uu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZl
bnRzLlRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWQsIHRlbXBvcmFyeVVJU291cmNlQ29kZVJl
bW92ZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlRlbXBvcmFyeVVJ
U291cmNlQ29kZVJlbW92ZWQsIEluc3BlY3RvclRlc3QuX2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92
aWRlckV2ZW50SGFuZGxlcik7Ci0gICAgICAgIGNhbGxiYWNrKGV2ZW50LmRhdGEpOwotICAgIH0K
LX0KLQogSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2UgPSBmdW5j
dGlvbih1cmwsIHR5cGUsIGNvbnRlbnQpCiB7CiAgICAgdmFyIGlzRG9jdW1lbnQgPSB0eXBlID09
PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudDsKICAgICB2YXIgbW9ja0NvbnRl
bnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKHR5cGUs
IGNvbnRlbnQpOwotICAgIEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRl
ci5hZGROZXR3b3JrRmlsZSh1cmwsIG1vY2tDb250ZW50UHJvdmlkZXIsICFpc0RvY3VtZW50KTsK
KyAgICBJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZv
clVSTCh1cmwsIG1vY2tDb250ZW50UHJvdmlkZXIsICFpc0RvY3VtZW50KTsKIH0KIAogSW5zcGVj
dG9yVGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyID0gZnVuY3Rp
b24oZXZlbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWtwb2ludC1tYW5hZ2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWtwb2ludC1tYW5hZ2VyLmh0bWwKaW5kZXggMjM2NGFlNWNlZjM3MjIwMGY2OWU5M2Y1MDIxYjNm
YmZiMzY1OTNkYS4uNmIyNjQ2YWM5OTkyZDllNzk5OWQ5MTVjOGNjZjVhNzk3ZTdmM2ZjNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdl
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1h
bmFnZXIuaHRtbApAQCAtMTI4LDcgKzEyOCw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBf
YWRkVGVtcG9yYXJ5VUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1cmwpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh0
aGlzLCAidGVtcG9yYXJ5OiIgKyB1cmwsIHVybCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMu
U2NyaXB0LCBmYWxzZSk7Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUuaXNUZW1wb3JhcnkgPSB0
cnVlOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNvdXJjZU1hcHBpbmcoZGVmYXVsdE1h
cHBpbmcpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2Rlc1t1cmxdID0gdWlTb3VyY2VDb2RlOwog
ICAgICAgICAgICAgdGVtcG9yYXJ5VUlTb3VyY2VDb2Rlc1t1cmxdID0gdWlTb3VyY2VDb2RlOwpA
QCAtMTUxLDcgKzE1MCwxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgcmVzZXQ6IGZ1bmN0
aW9uKCkKICAgICAgICAgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAg
UmVzZXR0aW5nIHdvcmtzcGFjZS4iKTsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQp
OworICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICAgICAgdmFyIG1vY2tQcm9q
ZWN0ID0ge307CisgICAgICAgICAgICBtb2NrUHJvamVjdC51aVNvdXJjZUNvZGVzID0gZnVuY3Rp
b24oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnVpU291cmNl
Q29kZXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQs
IG1vY2tQcm9qZWN0KTsKICAgICAgICAgfQogICAgIH0KICAgICBXb3Jrc3BhY2VNb2NrLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMuaHRtbAppbmRl
eCBiMmM5M2U1NmRiY2ZhOTE3NjEyZTk4ZmM3ZjgyM2UzOGVhZmI5YWNkLi5lOWUxOGZkNDgyZTVi
N2Y0MWFkNzYxM2M0NDcyNjEyNGMwMjkwZDZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy5odG1sCkBAIC00OCw3ICs0OCw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0aW9uIHN0ZXAzKCkKICAgICB7CiAgICAgICAgIHZhciBw
YW5lbCA9IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKLSAgICAgICAgdmFyIHVp
U291cmNlQ29kZXMgPSBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLnVpU291cmNlQ29kZXMoKTsKKyAg
ICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLnByb2plY3Qo
V2ViSW5zcGVjdG9yLnByb2plY3ROYW1lcy5OZXR3b3JrKS51aVNvdXJjZUNvZGVzKCk7CiAgICAg
ICAgIHZhciB1cmxzID0gdWlTb3VyY2VDb2Rlcy5tYXAoZnVuY3Rpb24odWlTb3VyY2VDb2RlKSB7
IHJldHVybiB1aVNvdXJjZUNvZGUucGFyc2VkVVJMLmxhc3RQYXRoQ29tcG9uZW50OyB9KTsKICAg
ICAgICAgdXJscy5zb3J0KCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy1leHBlY3RlZC50eHQKaW5k
ZXggYmY5NDdhY2I0NTE3ZjA4M2EyMzI3ZGQ0NjBlZDQ5MjI1NTVlY2Y1Yi4uYTY5YjhhNmZmN2Q2
YjdlMWVkZGVjMzc5NDU1ZDFmYmFhMGMzZGU5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy1leHBl
Y3RlZC50eHQKQEAgLTcsMjYgKzcsMjYgQEAgUnVubmluZzogdGVzdEVkaXRVbmRvCiBTZXR0aW5n
IGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAy
LCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAg
ICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCisgICAgICAgIGVkaXQtbWUtYnJlYWtwb2lu
dHMuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwot
ICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiBmYWxz
ZQorICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHBy
b2plY3QgbmFtZTogbmV0d29yawogRWRpdGluZyBzb3VyY2U6CiAgICAgVGV4dEVkaXRvci5yZW1v
dmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2lu
dChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSB0cnVlKQogICAgIE9yaWdpbmFsVGV4dEVkaXRv
ci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIER1
bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0
cnVlCisgICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAg
RHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxp
bmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogZWRpdC1tZS1icmVh
a3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgogVW5kb2lu
ZyBzb3VyY2UgZWRpdGluZzoKICAgICBPcmlnaW5hbFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2lu
dChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51
bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAy
KQogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQg
PSBmYWxzZSkKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0LW1l
LmpzOjIsIGVuYWJsZWQ6dHJ1ZQorICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVu
YWJsZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJs
OiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogZmFsc2UKKyAgICAgICAg
dXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6
IG5ldHdvcmsKIEZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoKICAgICBUZXh0RWRpdG9yLnJl
bW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0
b3JhZ2UKQEAgLTM2LDI2ICszNiwyNiBAQCBSdW5uaW5nOiB0ZXN0RWRpdENvbW1pdAogU2V0dGlu
ZyBicmVha3BvaW50OgogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0g
MiwgZGlzYWJsZWQgPSBmYWxzZSkKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAg
ICAgICBlZGl0LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQorICAgICAgICBlZGl0LW1lLWJyZWFrcG9p
bnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMK
LSAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogZmFs
c2UKKyAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBw
cm9qZWN0IG5hbWU6IG5ldHdvcmsKIEVkaXRpbmcgc291cmNlOgogICAgIE9yaWdpbmFsVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAg
IFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRp
dG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gdHJ1ZSkKICAgICBE
dW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0LW1lLmpzOjIsIGVuYWJsZWQ6
dHJ1ZQorICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQogICAg
IER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBs
aW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6IGVkaXQtbWUtYnJl
YWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIENvbW1p
dHRpbmcgZWRpdGVkIHNvdXJjZToKICAgICBPcmlnaW5hbFRleHRFZGl0b3IucmVtb3ZlQnJlYWtw
b2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGlu
ZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIg
PSAyKQogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJs
ZWQgPSBmYWxzZSkKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0
LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQorICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIs
IGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAg
dXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogZmFsc2UKKyAgICAg
ICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5h
bWU6IG5ldHdvcmsKIEZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoKICAgICBUZXh0RWRpdG9y
LnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgRHVtcGluZyBicmVha3BvaW50
IHN0b3JhZ2UKQEAgLTY1LDM2ICs2NSwzNiBAQCBSdW5uaW5nOiB0ZXN0RWRpdENvbW1pdEZhaWxF
ZGl0Q29tbWl0CiBTZXR0aW5nIGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVkaXRvci5hZGRCcmVha3Bv
aW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIER1bXBpbmcgYnJlYWtw
b2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCisgICAgICAg
IGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVh
a3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIs
IGlzVGVtcG9yYXJ5OiBmYWxzZQorICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMs
IGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogbmV0d29yawogRWRpdGluZyBzb3VyY2U6CiAg
ICAgT3JpZ2luYWxUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2Fi
bGVkID0gZmFsc2UpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIg
PSAyKQogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJs
ZWQgPSB0cnVlKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQt
bWUuanM6MiwgZW5hYmxlZDp0cnVlCisgICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6Miwg
ZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1
cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAg
IHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1l
OiBkZWJ1Z2dlcgogQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlOgogICAgIER1bXBpbmcgYnJlYWtw
b2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCisgICAgICAg
IGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVh
a3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIs
IGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywg
bGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgogRWRpdGluZyBzb3VyY2UgYWdh
aW4gc28gdGhhdCBsaXZlIGVkaXQgY291bGQgc3VjY2VlZDoKICAgICBEdW1waW5nIGJyZWFrcG9p
bnQgc3RvcmFnZQotICAgICAgICBlZGl0LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQorICAgICAgICBl
ZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtw
b2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBp
c1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxp
bmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIENvbW1pdHRpbmcgZWRpdGVkIHNv
dXJjZSBhZ2FpbjoKICAgICBPcmlnaW5hbFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5l
TnVtYmVyID0gMikKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9
IDIpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAg
IFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxz
ZSkKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0LW1lLmpzOjIs
IGVuYWJsZWQ6dHJ1ZQorICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6
dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0
LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogZmFsc2UKKyAgICAgICAgdXJsOiBl
ZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IG5ldHdv
cmsKIEZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJy
ZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UK
QEAgLTEwNCwzNiArMTA0LDM2IEBAIFJ1bm5pbmc6IHRlc3RFZGl0Q29tbWl0RmFpbFVuZG9Db21t
aXQKIFNldHRpbmcgYnJlYWtwb2ludDoKICAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGlu
ZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0
b3JhZ2UKLSAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKKyAgICAgICAgZWRpdC1t
ZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQg
bG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1w
b3Jhcnk6IGZhbHNlCisgICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51
bWJlcjogMiwgcHJvamVjdCBuYW1lOiBuZXR3b3JrCiBFZGl0aW5nIHNvdXJjZToKICAgICBPcmln
aW5hbFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBm
YWxzZSkKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAg
ICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IHRy
dWUpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS5qczoy
LCBlbmFibGVkOnRydWUKKyAgICAgICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVk
OnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRp
dC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAgICAgdXJsOiBl
ZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVn
Z2VyCiBDb21taXR0aW5nIGVkaXRlZCBzb3VyY2U6CiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0
b3JhZ2UKLSAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKKyAgICAgICAgZWRpdC1t
ZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQg
bG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwgaXNUZW1w
b3Jhcnk6IHRydWUKKyAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVt
YmVyOiAyLCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOgog
ICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUuanM6MiwgZW5h
YmxlZDp0cnVlCisgICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVl
CiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUu
anMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogZWRpdC1t
ZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgog
Q29tbWl0dGluZyBlZGl0ZWQgc291cmNlIGFnYWluOgogICAgIE9yaWdpbmFsVGV4dEVkaXRvci5y
ZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJl
YWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQo
bGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIg
PSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0g
ICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCisgICAgICAgIGVkaXQtbWUtYnJlYWtw
b2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9u
cwotICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiBm
YWxzZQorICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIs
IHByb2plY3QgbmFtZTogbmV0d29yawogRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OgogICAg
IFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBEdW1waW5n
IGJyZWFrcG9pbnQgc3RvcmFnZQpAQCAtMTQ4LDE1ICsxNDgsMTUgQEAgU2V0dGluZyBicmVha3Bv
aW50OgogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJs
ZWQgPSBmYWxzZSkKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgIER1bXBpbmcg
YnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIGlzVGVt
cG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IG5hbWU6
IGRlYnVnZ2VyCiBFZGl0aW5nIHNvdXJjZToKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFn
ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiAsIGxpbmVO
dW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAy
LCBwcm9qZWN0IG5hbWU6IGRlYnVnZ2VyCiBVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOgogICAgIER1
bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9u
cwotICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6IHRydWUKKyAgICAg
ICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgbmFtZTogZGVidWdnZXIKIEZpbmFsbHkg
cmVtb3ZpbmcgYnJlYWtwb2ludDoKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGlu
ZU51bWJlciA9IDIpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKQEAgLTE3MSwxNSAr
MTcxLDE1IEBAIFNldHRpbmcgYnJlYWtwb2ludDoKICAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9p
bnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCiAgICAgRHVtcGluZyBicmVha3Bv
aW50IHN0b3JhZ2UKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVy
bDogLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICB1cmw6ICwgbGlu
ZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgogRWRpdGluZyBzb3VyY2U6CiAgICAg
RHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRp
b25zCi0gICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorICAg
ICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgcHJvamVjdCBuYW1lOiBkZWJ1Z2dlcgogVW5kb2lu
ZyBzb3VyY2UgZWRpdGluZzoKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgIER1
bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIs
IGlzVGVtcG9yYXJ5OiB0cnVlCisgICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0
IG5hbWU6IGRlYnVnZ2VyCiBGaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVk
aXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIER1bXBpbmcgYnJlYWtw
b2ludCBzdG9yYWdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
bGl2ZS1lZGl0LWJyZWFrcG9pbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLmh0bWwKaW5kZXggZjA1MTNlMjI1YjUxYmRhZGE3NTRh
YmE2Y2EwMjFjMTc5N2YzZjlmNS4uNzNhMDQ3ZDEwYTZjNDYzYWI4MGQ0Y2ZlNzFhODBkNjBhZTZk
NTE4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRp
dC1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9s
aXZlLWVkaXQtYnJlYWtwb2ludHMuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvbGl2ZS1l
ZGl0LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9lZGl0LW1lLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZWRpdC1tZS1icmVha3BvaW50cy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogZnVuY3Rpb24gbG9hZER5bmFtaWNBbm9ueW1vdXNTY3Jp
cHQoKQogewpAQCAtMzAsMTAgKzMwLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHZhciBi
cmVha3BvaW50TWFuYWdlciA9IFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlcjsKICAgICAg
ICAgdmFyIGJyZWFrcG9pbnRzID0gYnJlYWtwb2ludE1hbmFnZXIuX3N0b3JhZ2UuX3NldHRpbmcu
Z2V0KCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgRHVtcGluZyBicmVh
a3BvaW50IHN0b3JhZ2UiKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3BvaW50
cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHVybCA9IAorICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiAgICAgICAgIiArIHBhdGhUb0ZpbGVOYW1lKGJyZWFrcG9pbnRz
W2ldLnNvdXJjZUZpbGVJZCkgKyAiOiIgKyBicmVha3BvaW50c1tpXS5saW5lTnVtYmVyICsgIiwg
ZW5hYmxlZDoiICsgYnJlYWtwb2ludHNbaV0uZW5hYmxlZCk7Ci0gICAgICAgIH0KIAogICAgICAg
ICB2YXIgYnJlYWtwb2ludE1hbmFnZXIgPSBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXI7
CiAgICAgICAgIGxvY2F0aW9ucyA9IGJyZWFrcG9pbnRNYW5hZ2VyLmFsbEJyZWFrcG9pbnRMb2Nh
dGlvbnMoKTsKQEAgLTQxLDcgKzM5LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbG9jYXRpb25zLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIg
dWlMb2NhdGlvbiA9IGxvY2F0aW9uc1tpXS51aUxvY2F0aW9uOwogICAgICAgICAgICAgdmFyIHVp
U291cmNlQ29kZSA9IHVpTG9jYXRpb24udWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiAgICAgICAgdXJsOiAiICsgcGF0aFRvRmlsZU5hbWUodWlTb3Vy
Y2VDb2RlLnVybCkgKyAiLCBsaW5lTnVtYmVyOiAiICsgdWlMb2NhdGlvbi5saW5lTnVtYmVyICsg
IiwgaXNUZW1wb3Jhcnk6ICIgKyAhIXVpU291cmNlQ29kZS5pc1RlbXBvcmFyeSk7CisgICAgICAg
ICAgICB2YXIgcHJvamVjdCA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UucHJvamVjdEZvclVJU291
cmNlQ29kZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIiAgICAgICAgdXJsOiAiICsgcGF0aFRvRmlsZU5hbWUodWlTb3VyY2VDb2RlLnVybCkgKyAi
LCBsaW5lTnVtYmVyOiAiICsgdWlMb2NhdGlvbi5saW5lTnVtYmVyICsgIiwgcHJvamVjdCBuYW1l
OiAiICsgcHJvamVjdC5uYW1lKCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC02Niw3ICs2NSw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgamF2YVNjcmlw
dFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdCwgb3JpZ2luYWxKYXZhU2NyaXB0U291
cmNlRnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwogCi0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUuanMiLCBkaWRTaG93U2NyaXB0U291cmNlKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZWRpdC1tZS1icmVh
a3BvaW50cy5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwogCiAgICAgICAgICAgICBmdW5jdGlv
biBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQogICAgICAgICAgICAgewpAQCAtMTE4
LDcgKzExNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIg
amF2YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdCwgb3JpZ2luYWxKYXZh
U2NyaXB0U291cmNlRnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwogCi0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUuanMiLCBkaWRTaG93U2NyaXB0
U291cmNlKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZWRp
dC1tZS1icmVha3BvaW50cy5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwogCiAgICAgICAgICAg
ICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQogICAgICAgICAgICAg
ewpAQCAtMTY5LDcgKzE2OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAg
ICAgICB2YXIgamF2YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdCwgb3Jp
Z2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwogCi0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUuanMiLCBkaWRT
aG93U2NyaXB0U291cmNlKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNv
dXJjZSgiZWRpdC1tZS1icmVha3BvaW50cy5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwogCiAg
ICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQogICAg
ICAgICAgICAgewpAQCAtMjMzLDcgKzIzMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7
CiAgICAgICAgICAgICB2YXIgamF2YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNj
cmlwdCwgb3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2Rl
OwogCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUu
anMiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hv
d1NjcmlwdFNvdXJjZSgiZWRpdC1tZS1icmVha3BvaW50cy5qcyIsIGRpZFNob3dTY3JpcHRTb3Vy
Y2UpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZy
YW1lKQogICAgICAgICAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBlY3RlZC50eHQK
aW5kZXggYWEzNTg0YWQ3MTAwNTc5M2NmMzA4ODY2NWQ2YWMwYWM1YTJmNGJmMy4uM2RhYjI5ZjI1
YTg0MDc4NzA2MDg2MjIyNjE1OWJkMmNlM2U0MmE0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBp
bmctZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBSdW5uaW5nOiB0ZXN0U2NyaXB0V2l0aFBl
bmRpbmdSZXNvdXJjZQogQWRkaW5nIHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LgogVUlTb3Vy
Y2VDb2RlOiBmb28uanMKIFVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKLVVJU291cmNl
Q29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKK1VJU291cmNlQ29kZSBpcyBjb250ZW50IHNj
cmlwdDogdHJ1ZQogTWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKIFVJU291cmNlQ29kZSBjb250
ZW50OiA8Y29udGVudCBzY3JpcHQgc291cmNlPgogQWRkaW5nIHVpU291cmNlQ29kZSBmb3IgZmlu
aXNoZWQgcmVzb3VyY2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy5odG1sCmluZGV4IDI2MmUyNTBlY2I4NDk5
OWE4NDU1MDQ5YjAxNmEwODlhODFiNTk1ODIuLjI0YjMxMWJmNjg4MDQwZTJmNGNkOTdlZmFhMTVh
ZjlmZDY2Y2I5ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9y
ZXNvdXJjZS1zY3JpcHQtbWFwcGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy5odG1sCkBAIC0yOSw3ICsyOSw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJBZGRpbmcgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuIik7CiAgICAg
ICAgICAgICAgICAgc2NyaXB0ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKHVybCwg
MCwgMCwgdHJ1ZSwgIjxjb250ZW50IHNjcmlwdCBzb3VyY2U+Iik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWRF
dmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlT
b3VyY2VDb2RlQWRkZWQpOwogICAgICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLmFk
ZFNjcmlwdChzY3JpcHQpOwogICAgICAgICAgICAgICAgIHJlc291cmNlU2NyaXB0TWFwcGluZy5h
ZGRTY3JpcHQoc2NyaXB0KTsKICAgICAgICAgICAgICAgICAKQEAgLTQ5LDcgKzQ5LDYgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCiAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyB1aVNvdXJj
ZUNvZGUgZm9yIGZpbmlzaGVkIHJlc291cmNlLiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29kZVJlbW92ZWRFdmVudChm
dW5jdGlvbigpIHsgfSk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29y
a3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCh1aVNvdXJjZUNvZGVBZGRlZCk7CiAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2UodXJs
LCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsICI8Y29udGVudCBzY3JpcHQgcmVz
b3VyY2UgY29udGVudD4iKTsKIApAQCAtMTEwLDcgKzEwOSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJB
ZGRpbmcgZmlyc3Qgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuIik7CiAgICAgICAgICAgICAg
ICAgc2NyaXB0MSA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jayh1cmwsIDAsIDEwLCBm
YWxzZSwgIjxzY3JpcHQgc291cmNlIDE+Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0Rm9yV29ya3NwYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5h
bFVJU291cmNlQ29kZUFkZGVkKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRG
b3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRk
ZWQpOwogICAgICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3Jp
cHQxKTsKICAgICAgICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNj
cmlwdDEpOwogICAgICAgICAgICAgICAgIApAQCAtMTMwLDcgKzEyOSw3IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJBZGRpbmcgc2Vjb25kIHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LiIpOwogICAgICAg
ICAgICAgICAgIHNjcmlwdDIgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2sodXJsLCAw
LCA0NSwgZmFsc2UsICI8c2NyaXB0IHNvdXJjZSAyPiIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkRXZlbnQo
b3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNl
Q29kZUFkZGVkKTsKICAgICAgICAgICAgICAgICBkZWZhdWx0U2NyaXB0TWFwcGluZy5hZGRTY3Jp
cHQoc2NyaXB0Mik7CiAgICAgICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nLmFkZFNj
cmlwdChzY3JpcHQyKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jlc291cmNlcy9lZGl0LW1lLWJyZWFrcG9pbnRzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9lZGl0LW1lLWJyZWFrcG9pbnRzLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM2ZWQzZjg0MjhiNTdkYzliMDU4NWMwODc4M2RlOWQ5MDNjMjBmMmYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2VkaXQtbWUtYnJl
YWtwb2ludHMuanMKQEAgLTAsMCArMSw0IEBACitmdW5jdGlvbiBmKCkKK3sKKyAgICByZXR1cm4g
MDsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQt
c25pcHBldC1tb2RlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwtZXhwZWN0ZWQudHh0CmluZGV4IGU0ODNjOGU3MDJlYTMw
ZjQ5NWVjNjEyZDc1NmYwNDBkNGI3NmYxYTcuLjBjZWU3Y2Y5YWQwZWY4ZGI0NGU3YzhjOTJjYzc3
ODVjYzExZjczNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9z
Y3JpcHQtc25pcHBldC1tb2RlbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLWV4cGVjdGVkLnR4dApAQCAtMiwxMCAr
Miw5IEBAIFRlc3RzIHNjcmlwdCBzbmlwcGV0IG1vZGVsLgogCiBEZWJ1Z2dlciB3YXMgZW5hYmxl
ZC4KIAotUnVubmluZzogdGVzdFdvcmtzcGFjZVJlc2V0CitSdW5uaW5nOiB0ZXN0Q3JlYXRlQW5k
UmVuYW1lCiBTbmlwcGV0IGNyZWF0ZWQuCi1SZXNldHRpbmcgc25pcHBldCBzY3JpcHQgbWFwcGlu
Zy4KLVNuaXBwZXQgdWlTb3VyY2VDb2RlIHdhcyByZWNyZWF0ZWQuCitTbmlwcGV0IHVpU291cmNl
Q29kZSB1cmwgaXMgY29ycmVjdC4KIAogUnVubmluZzogdGVzdEV2YWx1YXRlCiBMYXN0IGV2YWx1
YXRpb24gc291cmNlIHVybCBmb3Igc25pcHBldDogc25pcHBldHM6Ly8vMV8xCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC5o
dG1sCmluZGV4IDg1YmJlNzNhODAyNjAzODcxYjNmMjhlMzliYzk1NmY0YjI3Mjc1MTUuLjU4MjZl
MGI4NjdjOTkzMTE3YzRiMGYwNWVkMDEyZTJkNTUzNmI1ZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC5odG1sCkBA
IC0xNCwzNCArMTQsMjUgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgLy8gRklYTUU6IFJlbW92ZSBv
bmNlIHNuaXBwZXRzIGFyZSB0YWtlbiBvdXQgb2YgZXhwZXJpbWVudHMuCiAgICAgV2ViSW5zcGVj
dG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Muc25pcHBldHNTdXBwb3J0ID0ge307CiAgICAgV2ViSW5z
cGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Muc25pcHBldHNTdXBwb3J0LmlzRW5hYmxlZCA9IGZ1
bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfTsKLSAgICB2YXIgbmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKICAgICB2
YXIgd29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UoKTsKLSAgICB3b3Jrc3Bh
Y2UuYWRkUHJvamVjdCgibmV0d29yayIsIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CisgICAg
dmFyIHNuaXBwZXRXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2ltcGxlV29y
a3NwYWNlUHJvdmlkZXIod29ya3NwYWNlKTsKKyAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdChXZWJJ
bnNwZWN0b3IucHJvamVjdE5hbWVzLlNuaXBwZXRzLCBzbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIp
OwogICAgIHZhciB3b3Jrc3BhY2VDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2VDb250cm9sbGVyKHdvcmtzcGFjZSk7Ci0gICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRN
b2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsKHdvcmtzcGFjZSwgbmV0
d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKLSAgICAKKyAgICBXZWJJbnNwZWN0b3Iuc2NyaXB0U25p
cHBldE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwod29ya3NwYWNl
LCBzbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIpOwogICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdn
ZXJUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0V29ya3NwYWNlUmVzZXQobmV4dCkK
KyAgICAgICAgZnVuY3Rpb24gdGVzdENyZWF0ZUFuZFJlbmFtZShuZXh0KQogICAgICAgICB7CiAg
ICAgICAgICAgICByZXNldFNuaXBwZXRzU2V0dGluZ3MoKTsKICAgICAgICAgICAgIHZhciB1aVNv
dXJjZUNvZGUgPSBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLmNyZWF0ZVNjcmlwdFNu
aXBwZXQoKTsKICAgICAgICAgICAgIHZhciBzbmlwcGV0TmFtZSA9ICJUZXN0U25pcHBldCIgKyBN
YXRoLnJhbmRvbSgpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBw
ZXQgY3JlYXRlZC4iKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9k
ZWwucmVuYW1lU2NyaXB0U25pcHBldCh1aVNvdXJjZUNvZGUsIHNuaXBwZXROYW1lKTsKLSAgICAg
ICAgICAgIHdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFkZGVkKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXNldHRpbmcgc25pcHBldCBz
Y3JpcHQgbWFwcGluZy4iKTsKLSAgICAgICAgICAgIHdvcmtzcGFjZUNvbnRyb2xsZXIuX21haW5G
cmFtZU5hdmlnYXRlZCgpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRl
ZChldmVudCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscygxLCB3b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpLmxlbmd0aCwgIk9ubHkgb25l
IHNuaXBwZXQgdWlTb3VyY2VDb2RlIHNob3VsZCBiZSBwcmVzZW50IGFmdGVyIHByb2plY3QgbmF2
aWdhdGlvbi4iKTsKLSAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gZXZlbnQuZGF0
YTsKLSAgICAgICAgICAgICAgICBpZiAodWlTb3VyY2VDb2RlLnVybC5pbmRleE9mKHNuaXBwZXRO
YW1lKSA9PT0gLTEpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCB1aVNvdXJjZUNvZGUgd2FzIHJlY3Jl
YXRlZC4iKTsKLSAgICAgICAgICAgICAgICB3b3Jrc3BhY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVk
LCB1aVNvdXJjZUNvZGVBZGRlZCk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgd29ya3NwYWNl
LnVpU291cmNlQ29kZXMoKS5sZW5ndGgsICJPbmx5IG9uZSBzbmlwcGV0IHVpU291cmNlQ29kZSBz
aG91bGQgYmUgcHJlc2VudC4iKTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB3b3Jr
c3BhY2UudWlTb3VyY2VDb2RlcygpWzBdOworICAgICAgICAgICAgaWYgKHVpU291cmNlQ29kZS51
cmwuaW5kZXhPZihzbmlwcGV0TmFtZSkgPT09IC0xKQorICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IHVpU291cmNlQ29k
ZSB1cmwgaXMgY29ycmVjdC4iKTsKKyAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgfSwKIAog
ICAgICAgICBmdW5jdGlvbiB0ZXN0RXZhbHVhdGUobmV4dCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dAppbmRl
eCBjZGI2ODJlMzYxNTdhZmY5Mzk0YmI5Y2UyMjc4ZWUwZWQ1Yzg0ODU5Li41YWMyMWNiYTVkNGY1
MzJkNjUwY2FjNjRmM2YyNmY4Y2QxMzZjYzBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0CkBAIC0yMSw3
ICsyMSw3IEBAIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgogICBiYXIu
anMKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6CiAKLVJ1
bm5pbmc6IHRlc3RUZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZEFuZFJlbW92ZWQKK1J1bm5pbmc6
IHRlc3REZWJ1Z2dlclVJU291cmNlQ29kZUFkZGVkQW5kUmVtb3ZlZAogRHVtcGluZyBTY3JpcHRz
TmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CiAgIGZvby5qcwogRHVtcGluZyBTY3JpcHRzTmF2aWdh
dG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCmluZGV4IGRkNGQ3ZTI0OWFkODE5ZmU1OWQ3ZDA3
ZWEwMTQxZjkwZTA4ZjFiMzIuLmMwZGE4OWU1ZGMzN2EwNWY0NjE2NTBkODc5NzZiYjBiMGZhNmMz
YzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBh
bmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFu
ZWwuaHRtbApAQCAtMjAsOSArMjAsMTEgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24g
Y3JlYXRlTW9ja1dvcmtzcGFjZSgpCiAgICAgewogICAgICAgICB2YXIgd29ya3NwYWNlID0gbmV3
IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UoKTsKLSAgICAgICAgdmFyIG5ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKCk7Ci0g
ICAgICAgIHdvcmtzcGFjZS5hZGRQcm9qZWN0KCJuZXR3b3JrIiwgbmV0d29ya1dvcmtzcGFjZVBy
b3ZpZGVyKTsKLSAgICAgICAgd29ya3NwYWNlLmRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIod29ya3NwYWNlKTsKKyAg
ICAgICAgdmFyIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2lt
cGxlV29ya3NwYWNlUHJvdmlkZXIod29ya3NwYWNlKTsKKyAgICAgICAgd29ya3NwYWNlLmFkZFBy
b2plY3QoV2ViSW5zcGVjdG9yLnByb2plY3ROYW1lcy5OZXR3b3JrLCBuZXR3b3JrV29ya3NwYWNl
UHJvdmlkZXIpOworCisgICAgICAgIHdvcmtzcGFjZS5kZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVy
ID0gbmV3IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlcih3b3Jrc3BhY2UpOwor
ICAgICAgICB3b3Jrc3BhY2UuYWRkUHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVzLkRl
YnVnZ2VyLCB3b3Jrc3BhY2UuZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlcik7CiAgICAgICAgIHdv
cmtzcGFjZS5yZXF1ZXN0RmlsZUNvbnRlbnQgPSBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGNhbGxi
YWNrKQogICAgICAgICB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU291
cmNlIHJlcXVlc3RlZCBmb3IgIiArIHVpU291cmNlQ29kZS51cmwpOwpAQCAtMzcsMTQgKzM5LDE0
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgd29ya3NwYWNl
ID0gY3JlYXRlTW9ja1dvcmtzcGFjZSgpOwogCi0gICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdvcmtGaWxlKCJmb29iYXIuanMiLCBjb250ZW50UHJv
dmlkZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIuYWRkRmlsZUZvclVSTCgiZm9vYmFyLmpzIiwgY29udGVudFByb3ZpZGVyLCBmYWxzZSk7
CiAKICAgICAgICAgICAgIHZhciBwYW5lbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
KHdvcmtzcGFjZSk7CiAgICAgICAgICAgICBwYW5lbC5zaG93KCk7CiAKLSAgICAgICAgICAgIHdv
cmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkTmV0d29ya0ZpbGUoImZvby5qcyIs
IGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOwotICAgICAgICAgICAgd29ya3NwYWNlLm5ldHdvcmtX
b3Jrc3BhY2VQcm92aWRlci5hZGROZXR3b3JrRmlsZSgiYmFyLmpzIiwgY29udGVudFByb3ZpZGVy
LCBmYWxzZSk7Ci0gICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVy
LmFkZE5ldHdvcmtGaWxlKCJiYXouanMiLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKKyAgICAg
ICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVSTCgi
Zm9vLmpzIiwgY29udGVudFByb3ZpZGVyLCBmYWxzZSk7CisgICAgICAgICAgICB3b3Jrc3BhY2Uu
bmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZEZpbGVGb3JVUkwoImJhci5qcyIsIGNvbnRlbnRQ
cm92aWRlciwgZmFsc2UpOworICAgICAgICAgICAgd29ya3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlci5hZGRGaWxlRm9yVVJMKCJiYXouanMiLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsK
IAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5f
bmF2aWdhdG9yKTsKIApAQCAtNjIsMzMgKzY0LDMzIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwod29ya3NwYWNl
KTsKICAgICAgICAgICAgIHBhbmVsLnNob3coKTsKIAotICAgICAgICAgICAgd29ya3NwYWNlLm5l
dHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGROZXR3b3JrRmlsZSgiZm9vLmpzIiwgY29udGVudFBy
b3ZpZGVyLCBmYWxzZSk7Ci0gICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVBy
b3ZpZGVyLmFkZE5ldHdvcmtGaWxlKCJiYXIuanMiLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsK
LSAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkTmV0d29y
a0ZpbGUoImJhei5qcyIsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOworICAgICAgICAgICAgd29y
a3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlRm9yVVJMKCJmb28uanMiLCBj
b250ZW50UHJvdmlkZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29y
a3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVSTCgiYmFyLmpzIiwgY29udGVudFByb3ZpZGVyLCBm
YWxzZSk7CisgICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFk
ZEZpbGVGb3JVUkwoImJhei5qcyIsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOwogCiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKHBhbmVsLl9uYXZpZ2F0b3Ip
OwogCi0gICAgICAgICAgICB3b3Jrc3BhY2VDb250cm9sbGVyLl9tYWluRnJhbWVOYXZpZ2F0ZWQo
KTsKLSAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkTmV0
d29ya0ZpbGUoImJhci5qcyIsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOworICAgICAgICAgICAg
d29ya3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5yZXNldCgpOworICAgICAgICAgICAg
d29ya3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlRm9yVVJMKCJiYXIuanMi
LCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmlnYXRvcik7CiAKICAgICAgICAgICAgIHBhbmVs
LmRldGFjaCgpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9LAogCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3RUZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZEFuZFJlbW92ZWQobmV4dCkKKyAg
ICAgICAgZnVuY3Rpb24gdGVzdERlYnVnZ2VyVUlTb3VyY2VDb2RlQWRkZWRBbmRSZW1vdmVkKG5l
eHQpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciB3b3Jrc3BhY2UgPSBjcmVhdGVNb2NrV29y
a3NwYWNlKCk7CiAgICAgICAgICAgICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbCh3b3Jrc3BhY2UpOwogICAgICAgICAgICAgcGFuZWwuc2hvdygpOwogCi0gICAgICAg
ICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdvcmtGaWxlKCJm
b28uanMiLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKLSAgICAgICAgICAgIHZhciB0ZW1wb3Jh
cnlVSVNvdXJjZUNvZGUgPSB3b3Jrc3BhY2UuZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlci5hZGRE
ZWJ1Z2dlckZpbGUoImNvbXBpbGVkLmpzIiwgY29udGVudFByb3ZpZGVyKTsKKyAgICAgICAgICAg
IHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVSTCgiZm9vLmpz
IiwgY29udGVudFByb3ZpZGVyLCBmYWxzZSk7CisgICAgICAgICAgICB3b3Jrc3BhY2UuZGVidWdn
ZXJXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlKCJkZWJ1Z2dlcjpjb21waWxlZC5qcyIsICJjb21w
aWxlZC5qcyIsIGNvbnRlbnRQcm92aWRlcik7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmlnYXRvcik7CiAKICAgICAgICAgICAgIC8v
IFBsdWcgY29tcGlsZXIgc291cmNlIG1hcHBpbmcuCi0gICAgICAgICAgICB3b3Jrc3BhY2UubmV0
d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdvcmtGaWxlKCJzb3VyY2UuanMiLCBjb250ZW50
UHJvdmlkZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNl
UHJvdmlkZXIuYWRkRmlsZUZvclVSTCgic291cmNlLmpzIiwgY29udGVudFByb3ZpZGVyLCBmYWxz
ZSk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFu
ZWwuX25hdmlnYXRvcik7CiAgICAgICAgICAgICBuZXh0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhwYW5z
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1l
eHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24tZXhwZWN0ZWQudHh0CmluZGV4IDZjZjBmMDg1
OThmOTUzZTJkOWUzYmQ2ZjQzNzQ4MTE0OTA0OTIwOTAuLjY5ZjY0NDYyYWY3MzM5NDk4ZGQzOTI2
ZTJhNzJjYzA5ODY1M2ExMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24tZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVz
ZXJ2ZS1leHBhbnNpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNyBAQAogVGVzdCB0aGF0IHdh
dGNoIGV4cHJlc3Npb25zIGV4cGFuc2lvbiBzdGF0ZSBpcyByZXN0b3JlZCBhZnRlciB1cGRhdGUu
CiAKIEJ1ZyA5OTMwNAorRGVidWdnZXIgd2FzIGVuYWJsZWQuCiBXYXRjaCBleHByZXNzaW9ucyBh
ZGRlZC4KIGV4cGFuZGVkIGdsb2JhbE9iamVjdCBbb2JqZWN0IE9iamVjdF0KIGV4cGFuZGVkIGZv
byBbb2JqZWN0IE9iamVjdF0KQEAgLTI2LDQgKzI3LDUgQEAgV2F0Y2ggZXhwcmVzc2lvbnMgYWZ0
ZXIgcGFnZSByZWxvYWQ6CiAgICAgICBfX3Byb3RvX186IE9iamVjdAogICAgIF9fcHJvdG9fXzog
T2JqZWN0CiAgIHdpbmRvd0FsaWFzOiBXaW5kb3cKK0RlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Np
b25zLXByZXNlcnZlLWV4cGFuc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4cGFuc2lvbi5odG1sCmluZGV4IGI5MjM3
OGVkMWYwZTQwMzc1MTA0NjdkMDg1NmIzNjE0NmI0NGE3YzcuLjc3MzU1Njc5OTFiZjg5YTU4ZGYz
OGJkMmY4YjEyYjFhOWNhYWZlMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUt
ZXhwYW5zaW9uLmh0bWwKQEAgLTIwLDE0ICsyMCwxOCBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkK
IAogICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRzIHBhbmVsIHNvIHRoYXQgd2F0
Y2ggZXhwcmVzc2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgogICAgIFdlYkluc3BlY3Rvci5zaG93
UGFuZWwoInNjcmlwdHMiKTsKKyAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0
ZXAxKTsKIAotICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zLnNlY3Rpb247Ci0gICAgd2F0
Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwotICAgIHdhdGNoRXhw
cmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgiZ2xvYmFsT2JqZWN0Iik7Ci0g
ICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJ3aW5kb3dB
bGlhcyIpOworICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICB7CisgICAgICAgIHdhdGNoRXhwcmVz
c2lvbnNTZWN0aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53
YXRjaEV4cHJlc3Npb25zLnNlY3Rpb247CisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9u
LndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKKyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24u
d2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJnbG9iYWxPYmplY3QiKTsKKyAgICAgICAgd2F0Y2hFeHBy
ZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJ3aW5kb3dBbGlhcyIpOwogCi0g
ICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25z
U2VjdGlvbi5wcm90b3R5cGUsICJ1cGRhdGVQcm9wZXJ0aWVzIiwgc3RlcDEpOwotICAgIHdhdGNo
RXhwcmVzc2lvbnNTZWN0aW9uLnVwZGF0ZSgpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNu
aWZmZXIoV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnByb3RvdHlwZSwgInVw
ZGF0ZVByb3BlcnRpZXMiLCBzdGVwMik7CisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9u
LnVwZGF0ZSgpOworICAgIH0KIAogICAgIGZ1bmN0aW9uIGV4cGFuZFByb3BlcnR5KHBhcmVudCwg
cGF0aCwgY2FsbGJhY2spCiAgICAgewpAQCAtNTYsMjAgKzYwLDIwIEBAIHZhciB0ZXN0ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgZHVtcE9iamVjdFByb3BlcnRpZXNUcmVlRWxlbWVudCh0cmVl
RWxlbWVudC5jaGlsZHJlbltpXSwgIiAgIiArIGluZGVudCk7CiAgICAgfQogCi0gICAgZnVuY3Rp
b24gc3RlcDEoKQorICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICB7CiAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJXYXRjaCBleHByZXNzaW9ucyBhZGRlZC4iKTsKLSAgICAgICAgZXhw
YW5kUHJvcGVydHkod2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvcGVydGllc1RyZWVPdXRsaW5l
LCBbImdsb2JhbE9iamVjdCIsICJmb28iLCAiYmFyIl0sIHN0ZXAyKTsKKyAgICAgICAgZXhwYW5k
UHJvcGVydHkod2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvcGVydGllc1RyZWVPdXRsaW5lLCBb
Imdsb2JhbE9iamVjdCIsICJmb28iLCAiYmFyIl0sIHN0ZXAzKTsKICAgICB9CiAKLSAgICBmdW5j
dGlvbiBzdGVwMigpCisgICAgZnVuY3Rpb24gc3RlcDMoKQogICAgIHsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIldhdGNoIGV4cHJlc3Npb25zIGV4cGFuZGVkLiIpOwogICAgICAg
ICBkdW1wT2JqZWN0UHJvcGVydGllc1RyZWVFbGVtZW50KHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9u
LnByb3BlcnRpZXNUcmVlT3V0bGluZSwgIiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9h
ZFBhZ2Uoc3RlcDMpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoc3RlcDQpOwog
ICAgIH0KIAotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICBmdW5jdGlvbiBzdGVwNCgpCiAgICAg
ewogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiV2F0Y2ggZXhwcmVzc2lvbnMgYWZ0
ZXIgcGFnZSByZWxvYWQ6Iik7CiAgICAgICAgIGR1bXBPYmplY3RQcm9wZXJ0aWVzVHJlZUVsZW1l
bnQod2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvcGVydGllc1RyZWVPdXRsaW5lLCAiIik7CkBA
IC03Nyw3ICs4MSw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICAvLyBDbGVhciB3
YXRjaCBleHByZXNzaW9ucyBhZnRlciBleGVjdXRpb24uCiAgICAgICAgIHdhdGNoRXhwcmVzc2lv
bnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKICAgICAgICAgd2F0Y2hFeHByZXNzaW9u
c1NlY3Rpb24udXBkYXRlKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91aXNvdXJjZWNvZGUtcmV2aXNp
b25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9ucy5o
dG1sCmluZGV4IDcwMjVhZDliMWQwODk5MDIyNzQ5NzBmZjFmZjcwZWQ0YzJiMTgwNDguLmY5NmIw
YWMwZTJlMzFhMDE2NjgzMjY5NmU4OGNiMmYyNzFlNjExNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci91aXNvdXJjZWNvZGUtcmV2aXNpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Vpc291cmNlY29kZS1yZXZpc2lvbnMuaHRtbApAQCAtOCwxMyArOCwxNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIGNyZWF0ZU1vY2tXb3Jrc3BhY2UoKQog
ICAgIHsKLSAgICAgICAgdmFyIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKCk7CiAgICAgICAgIHZhciB3b3Jrc3BhY2Ug
PSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgpOwotICAgICAgICB3b3Jrc3BhY2UuYWRkUHJv
amVjdCgibmV0d29yayIsIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7Ci0gICAgICAgIHdvcmtz
cGFjZS5yZXF1ZXN0RmlsZUNvbnRlbnQgPSBmdW5jdGlvbihwYXRoLCBjYWxsYmFjaykKKyAgICAg
ICAgdmFyIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2ltcGxl
V29ya3NwYWNlUHJvdmlkZXIod29ya3NwYWNlKTsKKyAgICAgICAgd29ya3NwYWNlLmFkZFByb2pl
Y3QoV2ViSW5zcGVjdG9yLnByb2plY3ROYW1lcy5OZXR3b3JrLCBuZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIpOworICAgICAgICB3b3Jrc3BhY2UucmVxdWVzdEZpbGVDb250ZW50ID0gZnVuY3Rpb24o
dXJpLCBjYWxsYmFjaykKICAgICAgICAgewogICAgICAgICAgICAgY2FsbGJhY2soIjxzY3JpcHQg
Y29udGVudD4iLCBmYWxzZSwgInRleHQvamF2YXNjcmlwdCIpOwogICAgICAgICB9CisgICAgICAg
IHdvcmtzcGFjZS5zZXRGaWxlQ29udGVudCA9IGZ1bmN0aW9uKHVyaSwgbmV3Q29udGVudCwgY2Fs
bGJhY2spCisgICAgICAgIHsKKyAgICAgICAgfQorCiAgICAgICAgIHJldHVybiB3b3Jrc3BhY2U7
CiAgICAgfQogIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>