<?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>105607</bug_id>
          
          <creation_ts>2012-12-20 20:25:42 -0800</creation_ts>
          <short_desc>Use Python 2.7 unittest syntax in our unittests</short_desc>
          <delta_ts>2013-01-24 16:48:59 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Tim &apos;mithro&apos; Ansell">mithro</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>dpranke</cc>
    
    <cc>jyasskin</cc>
    
    <cc>levin</cc>
    
    <cc>levin+watchlist</cc>
    
    <cc>mithro</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>796096</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-20 20:25:42 -0800</bug_when>
    <thetext>Make it possible to use Python 2.7 unittest syntax in our unittests

It&apos;s long annoyed me that we don&apos;t get to use the fancy new self.assertMultiLineStringEquals and other similar type-aware assert methods in our unittests.  Even assertEquals in python 2.7 is type-aware and does much nicer printing.

It would be nice if we could either add ourselves some sort of unittest shim for python 2.6 and below, or find some other way to make this possible. :)

Please pardon the broad you&apos;re-good-at-python CC, and feel welcome to remove yourself if you&apos;re not interested. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796605</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-21 21:01:32 -0800</bug_when>
    <thetext>unittest2 is a backport of the 2.7 unittest module to 2.3-2.6. We could just install that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804196</commentid>
    <comment_count>2</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-01-10 02:22:38 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; unittest2 is a backport of the 2.7 unittest module to 2.3-2.6. We could just install that.

Done in r139294.
http://trac.webkit.org/changeset/139294

Is there anything else this bug needs doing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804203</commentid>
    <comment_count>3</comment_count>
    <who name="Tim &apos;mithro&apos; Ansell">mithro</who>
    <bug_when>2013-01-10 02:40:17 -0800</bug_when>
    <thetext>We should go through and actually update any tests to use the proper 2.7 methods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804429</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-01-10 09:12:53 -0800</bug_when>
    <thetext>We should probably go through all the files and change unittest to unittest2 so that we&apos;re consistent in the functionality available in the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804473</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-01-10 09:52:49 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; We should probably go through all the files and change unittest to unittest2 so that we&apos;re consistent in the functionality available in the tests.

Just to clear it up, in a recent patch the unittest2 module was not imported from webkitpy.thirdparty.autoinstalled. What&apos;s the stance on this? Could a system-wide unittest2 module be used instead of the one that&apos;s installed by webkitpy? Could this cause problems?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804506</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-10 10:24:30 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; We should probably go through all the files and change unittest to unittest2 so that we&apos;re consistent in the functionality available in the tests.
&gt; 
&gt; Just to clear it up, in a recent patch the unittest2 module was not imported from webkitpy.thirdparty.autoinstalled. What&apos;s the stance on this? Could a system-wide unittest2 module be used instead of the one that&apos;s installed by webkitpy? Could this cause problems?

It appears thirdparty.autoinstalled is added to sys.path these days, for better or worse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804545</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-01-10 11:02:35 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; We should probably go through all the files and change unittest to unittest2 so that we&apos;re consistent in the functionality available in the tests.
&gt; &gt; 
&gt; &gt; Just to clear it up, in a recent patch the unittest2 module was not imported from webkitpy.thirdparty.autoinstalled. What&apos;s the stance on this? Could a system-wide unittest2 module be used instead of the one that&apos;s installed by webkitpy? Could this cause problems?
&gt; 

I suppose it&apos;s possible that it could, but I wouldn&apos;t normally expect it to.

&gt; It appears thirdparty.autoinstalled is added to sys.path these days, for better or worse.

Yes, it needs to, for some of the packages to work (pylint in particular, though I think there&apos;s another as well).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804551</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-10 11:06:47 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; It appears thirdparty.autoinstalled is added to sys.path these days, for better or worse.
&gt; 
&gt; Yes, it needs to, for some of the packages to work (pylint in particular, though I think there&apos;s another as well).

I feel like that didn&apos;t used to be the case.  Mechanize has dependent packages, but I thought we worked aroudn that by manually adding the bits it was expecting to sys.path?  Or maybe I&apos;m mistaken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806625</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-01-14 14:24:20 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; &gt; It appears thirdparty.autoinstalled is added to sys.path these days, for better or worse.
&gt; &gt; 
&gt; &gt; Yes, it needs to, for some of the packages to work (pylint in particular, though I think there&apos;s another as well).
&gt; 
&gt; I feel like that didn&apos;t used to be the case.  Mechanize has dependent packages, but I thought we worked aroudn that by manually adding the bits it was expecting to sys.path?  Or maybe I&apos;m mistaken.

It doesn&apos;t look like mechanize still has any dependent packages now. I&apos;m not actually sure what you mean by &quot;manually adding the bits it was expecting to sys.path&quot;; how is that different from putting webkit.thirdparty.autoinstalled into sys.path?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812591</commentid>
    <comment_count>10</comment_count>
      <attachid>183887</attachid>
    <who name="Tim &apos;mithro&apos; Ansell">mithro</who>
    <bug_when>2013-01-21 21:44:20 -0800</bug_when>
    <thetext>Created attachment 183887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812594</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-21 21:48:14 -0800</bug_when>
    <thetext>Attachment 183887 did not pass style-queue:

Tools/Scripts/webkitpy/tool/commands/queues_unittest.py:159:  [AbstractPatchQueueTest.test_next_patch] Instance of &apos;AbstractPatchQueueTest&apos; has no &apos;assertIsNone&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/style/optparser_unittest.py:148:  [ArgumentParserTest.test_parse_default_arguments] Instance of &apos;ArgumentParserTest&apos; has no &apos;assertIsNone&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py:90:  [MacTest.test_tests_for_other_platforms] Instance of &apos;MacTest&apos; has no &apos;assertIn&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py:91:  [MacTest.test_tests_for_other_platforms] Instance of &apos;MacTest&apos; has no &apos;assertNotIn&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py:92:  [MacTest.test_tests_for_other_platforms] Instance of &apos;MacTest&apos; has no &apos;assertNotIn&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/crashlogs_unittest.py:91:  [CrashLogsTest.test_find_log_darwin] Instance of &apos;CrashLogsTest&apos; has no &apos;assertMutliLineEqual&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/executive_unittest.py:175:  [ExecutiveTest.serial_test_kill_process] Instance of &apos;ExecutiveTest&apos; has no &apos;assertIn&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/executive_unittest.py:179:  [ExecutiveTest.serial_test_kill_process] Instance of &apos;ExecutiveTest&apos; has no &apos;assertIn&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/executive_unittest.py:190:  [ExecutiveTest.serial_test_kill_all] Instance of &apos;ExecutiveTest&apos; has no &apos;assertIsNone&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/executive_unittest.py:199:  [ExecutiveTest.serial_test_kill_all] Instance of &apos;ExecutiveTest&apos; has no &apos;assertIn&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/executive_unittest.py:232:  [ExecutiveTest.serial_test_running_pids] Instance of &apos;ExecutiveTest&apos; has no &apos;assertIn&apos; member  [pylint/E1101] [5]
/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py:393: DeprecationWarning: disable-msg is deprecated, replace it by disable (/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py, line         self.command = self.command_constructor()  # lint warns that command_constructor might not be set, but this is intentional; pylint: disable-msg=E1102
)
  DeprecationWarning)
/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py:393: DeprecationWarning: disable-msg is deprecated, replace it by disable (/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py, line         self.command._write = (lambda msg: self.lines.append(msg))  # pylint bug warning about unnecessary lambda? pylint: disable-msg=W0108
)
  DeprecationWarning)
Tools/Scripts/webkitpy/layout_tests/port/gtk_unittest.py:92:  [GtkPortTest.test_get_crash_log] Instance of &apos;GtkPortTest&apos; has no &apos;assertMultiLineEqual&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/layout_tests/port/gtk_unittest.py:96:  [GtkPortTest.test_get_crash_log] Instance of &apos;GtkPortTest&apos; has no &apos;assertMultiLineEqual&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py:77:  [ChromiumWinTest.test_versions] Instance of &apos;ChromiumWinTest&apos; has no &apos;assertIn&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:50:  [AbstractEarlyWarningSystemTest.test_failing_tests_message] Instance of &apos;AbstractEarlyWarningSystemTest&apos; has no &apos;assertMultiLineEqual&apos; member  [pylint/E1101] [5]
/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py:393: DeprecationWarning: disable-msg is deprecated, replace it by disable (/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/thirdparty/__init___unittest.py, line             # unused-variable, import failures - pylint: disable-msg=W0612,E0611,F0401
)
  DeprecationWarning)
/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py:393: DeprecationWarning: disableFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/Scripts/webkitpy...&quot; exit_code: 1
-msg is deprecated, replace it by disable (/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/thirdparty/__init___unittest.py, line         # unused-variable, import failures - pylint: disable-msg=W0612,E0611,F0401
)
  DeprecationWarning)
Tools/Scripts/webkitpy/tool/commands/roll_unittest.py:60:  [PostRollCommandsTest.test_prepare_state] Instance of &apos;PostRollCommandsTest&apos; has no &apos;assertIsNone&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/checkout/checkout_unittest.py:163:  [CheckoutTest.test_latest_entry_for_changelog_at_revision] Instance of &apos;str&apos; has no &apos;contents&apos; member  [pylint/E1101] [5]
Total errors found: 17 in 154 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812760</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-22 01:17:39 -0800</bug_when>
    <thetext>Should I be concerned by the pycheck failures?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813294</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-01-22 12:03:23 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Should I be concerned by the pycheck failures?

I would be. I&apos;m guessing that pylint is getting confused by the &quot;import ... as&quot;, but we need to get to the bottom of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813516</commentid>
    <comment_count>14</comment_count>
    <who name="Tim &apos;mithro&apos; Ansell">mithro</who>
    <bug_when>2013-01-22 16:07:37 -0800</bug_when>
    <thetext>I think these errors are caused by the pylint not understanding that we are importing unittest2 as unittest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813533</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-22 16:24:52 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; I think these errors are caused by the pylint not understanding that we are importing unittest2 as unittest.

I can imagine that being true.  Is it possible to pass an option to pylint to make it smarter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813534</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-22 16:26:25 -0800</bug_when>
    <thetext>Maybe we need to modify the sys.path when running pylint?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813851</commentid>
    <comment_count>17</comment_count>
      <attachid>184143</attachid>
    <who name="Tim &apos;mithro&apos; Ansell">mithro</who>
    <bug_when>2013-01-22 22:39:17 -0800</bug_when>
    <thetext>Created attachment 184143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813860</commentid>
    <comment_count>18</comment_count>
      <attachid>184143</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-22 22:51:59 -0800</bug_when>
    <thetext>Comment on attachment 184143
Patch

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

Fantastic!  Thank you very much!

&gt; Tools/Scripts/webkitpy/common/system/executive_unittest.py:38
&gt;  # Since we execute this script directly as part of the unit tests, we need to ensure
&gt;  # that Tools/Scripts is in sys.path for the next imports to work correctly.

Huh?  Really?  Oh, I guess it execs itself.  We could totally have a separate simpler script. :p</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813880</commentid>
    <comment_count>19</comment_count>
      <attachid>184143</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 23:14:14 -0800</bug_when>
    <thetext>Comment on attachment 184143
Patch

Clearing flags on attachment: 184143

Committed r140510: &lt;http://trac.webkit.org/changeset/140510&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813881</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 23:14:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814427</commentid>
    <comment_count>21</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-01-23 11:44:29 -0800</bug_when>
    <thetext>I&apos;m a little bit reluctant to rely on the fact that something has put webkitpy.thirdparty.autoinstalled into sys.path already; perhaps it would&apos;ve been better to change things to &apos;from webkitpy.thirdparty.autoinstalled import unittest2 as unittest&apos; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814943</commentid>
    <comment_count>22</comment_count>
    <who name="Tim &apos;mithro&apos; Ansell">mithro</who>
    <bug_when>2013-01-23 18:37:15 -0800</bug_when>
    <thetext>We rely on this functionality for other modules, so I think we should be consistent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815931</commentid>
    <comment_count>23</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-01-24 15:57:28 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; We rely on this functionality for other modules, so I think we should be consistent?

I&apos;m sorry, I don&apos;t understand your comment. What are you referring to with &quot;this functionality&quot; and &quot;be consistent&quot;?

AFAIK, we refer to stuff under webkitpy.thirdparty.autoinstalled explicitly using that path; we should not be assuming (in our code) that that is in sys.path. But perhaps we&apos;re not consistent here and some code does assume you can import those packages directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815946</commentid>
    <comment_count>24</comment_count>
    <who name="Tim &apos;mithro&apos; Ansell">mithro</who>
    <bug_when>2013-01-24 16:19:21 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; We rely on this functionality for other modules, so I think we should be consistent?
&gt; 
&gt; I&apos;m sorry, I don&apos;t understand your comment. What are you referring to with &quot;this functionality&quot; and &quot;be consistent&quot;?
&gt; 
&gt; AFAIK, we refer to stuff under webkitpy.thirdparty.autoinstalled explicitly using that path; we should not be assuming (in our code) that that is in sys.path. But perhaps we&apos;re not consistent here and some code does assume you can import those packages directly?

From what I can see, most code is just importing via the sys.path hack rather than explicitly. eseidel had the same impression you did but this seems to have changed some time ago?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815954</commentid>
    <comment_count>25</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-01-24 16:25:56 -0800</bug_when>
    <thetext>I see. Well, I vote that we should stop relying on webkitpy.thirdparty.autoinstalled being in sys.path, so we should be consistent in the other direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815987</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-24 16:48:59 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; I see. Well, I vote that we should stop relying on webkitpy.thirdparty.autoinstalled being in sys.path, so we should be consistent in the other direction.

Sounds like someone should file a bug with information as to how good or bad we are at this, and we can post patches to switch us fully to one way or the other.

Depending on what order of sys.path, it&apos;s not immediately clear to me if it&apos;s desired behavior that the non-specific paths can fall-back to locally installed modules.  I guess that feels odd, and seems like a reason why we might want to be specific in these paths.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183887</attachid>
            <date>2013-01-21 21:44:20 -0800</date>
            <delta_ts>2013-01-22 22:39:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105607-20130122164114.patch</filename>
            <type>text/plain</type>
            <size>177751</size>
            <attacher name="Tim &apos;mithro&apos; Ansell">mithro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzgwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODIyNjZlMjU3YzA5YTc5MzA2NGU2NzczZGJlZTkxYWFm
NzM4YmRkNC4uZjQ2OTZhZGE4OTc4NDVjMTc2MTU5Y2Y5ZmEyNTllZDA5NjlhZDViMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDEzLTAxLTIxICBUaW0gJ21pdGhybycgQW5zZWxsICA8bWl0aHJvQG1pdGhpcy5jb20+
CisKKyAgICAgICAgVXNlIFB5dGhvbiAyLjcgdW5pdHRlc3Qgc3ludGF4IGluIG91ciB1bml0dGVz
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTYw
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS8qKi8qX3VuaXR0ZXN0LnB5OgorCiAyMDEzLTAxLTIxICBEaXJrIFNjaHVs
emUgIDxkc2NodWx6ZUBhZG9iZS5jb20+CiAKICAgICAgICAgQWRkIGJ1aWxkIGZsYWcgZm9yIENh
bnZhcydzIFBhdGggb2JqZWN0IChkaXNhYmxlZCBieSBkZWZhdWx0KQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvYmFzZWxpbmVvcHRpbWl6ZXJfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9iYXNlbGlu
ZW9wdGltaXplcl91bml0dGVzdC5weQppbmRleCAxNmQ4NjViODk1MjNkMGRlYzIxMzExYTJhMzE2
M2U1YTkzODI1ODEzLi4zMDhmYzE3ODdhODQ0OWIwY2NlMjNmZTQ0MjFiM2ViNGVlMTE0ZDIyIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9iYXNlbGlu
ZW9wdGltaXplcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9iYXNlbGluZW9wdGltaXplcl91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBA
QAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1
bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuYmFz
ZWxpbmVvcHRpbWl6ZXIgaW1wb3J0IEJhc2VsaW5lT3B0aW1pemVyCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdl
bG9nX3VuaXR0ZXN0LnB5CmluZGV4IGZhMjMzOWY0NTY2ZTU0OTRiYzIwZjI0ZDJiNWJiNmYwMjIw
ZTk0YWQuLjljZDI2YTA1YTQ5ZDFhYmQzZTQ4NjUwYzE2YTgxNmMyMzQ3OGEzMTYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZ191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGFu
Z2Vsb2dfdW5pdHRlc3QucHkKQEAgLTI5LDcgKzI5LDcgQEAKIGltcG9ydCBjb2RlY3MKIGltcG9y
dCBvcwogaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIg
YXMgdW5pdHRlc3QKIAogZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KIApAQCAtMjQ2LDcg
KzI0Niw3IEBAIGNsYXNzIENoYW5nZUxvZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlZF9lbnRyaWVzWzRdLnJldmlld2VyX3RleHQoKSwgIkRh
dmlkIEh5YXR0IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1s1XS5y
ZXZpZXdlcl90ZXh0KCksICJBZGFtIFJvYmVuIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
YXJzZWRfZW50cmllc1s2XS5yZXZpZXdlcl90ZXh0KCksICJUb255IENoYW5nIikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1s3XS5yZXZpZXdlcl90ZXh0KCksIE5vbmUp
CisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHBhcnNlZF9lbnRyaWVzWzddLnJldmlld2VyX3Rl
eHQoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1s4XS5yZXZpZXdl
cl90ZXh0KCksICdEYXJpbiBBZGxlcicpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9sb2dfZW50cmll
c19mcm9tX2Fubm90YXRlZF9maWxlKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hlY2tvdXRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGVja291dF91bml0dGVzdC5weQppbmRleCBh
M2I0N2M5NWU5MTY3ZmEwYzJkMzZhZGIwOWFkZWIxNTU2ZjY2NWU1Li43MDM1ODlhOGU1NzAyMTA3
NjAwNzlmMWM1NTgyNzBkZDZlNjAwMTY3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9jaGVja291dF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGVja291dF91bml0dGVzdC5weQpAQCAtMzAs
NyArMzAsNyBAQCBpbXBvcnQgY29kZWNzCiBpbXBvcnQgb3MKIGltcG9ydCBzaHV0aWwKIGltcG9y
dCB0ZW1wZmlsZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0
CiAKIGZyb20gLmNoZWNrb3V0IGltcG9ydCBDaGVja291dAogZnJvbSAuY2hhbmdlbG9nIGltcG9y
dCBDaGFuZ2VMb2dFbnRyeQpAQCAtMTQxLDcgKzE0MSw3IEBAIFNlY29uZCBwYXJ0IG9mIHRoaXMg
Y29tcGxpY2F0ZWQgY2hhbmdlIGJ5IG1lLCBUb3IgQXJuZSBWZXN0Ylx1MDBmOCEKICAgICAgICAg
Y29tbWl0X21lc3NhZ2UgPSBjaGVja291dC5jb21taXRfbWVzc2FnZV9mb3JfdGhpc19jb21taXQo
Z2l0X2NvbW1pdD1Ob25lLCByZXR1cm5fc3RkZXJyPVRydWUpCiAgICAgICAgICMgVGhyb3cgYXdh
eSB0aGUgZmlyc3QgbGluZSAtIGEgd2FybmluZyBhYm91dCB1bmtub3duIFZDUyByb290LgogICAg
ICAgICBjb21taXRfbWVzc2FnZS5tZXNzYWdlX2xpbmVzID0gY29tbWl0X21lc3NhZ2UubWVzc2Fn
ZV9saW5lc1sxOl0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRfbWVzc2FnZS5tZXNz
YWdlKCksIHNlbGYuZXhwZWN0ZWRfY29tbWl0X21lc3NhZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0
TXVsdGlMaW5lRXF1YWwoY29tbWl0X21lc3NhZ2UubWVzc2FnZSgpLCBzZWxmLmV4cGVjdGVkX2Nv
bW1pdF9tZXNzYWdlKQogCiAKIGNsYXNzIENoZWNrb3V0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CkBAIC0xNjAsNyArMTYwLDcgQEAgY2xhc3MgQ2hlY2tvdXRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgY2hlY2tvdXQgPSBzZWxmLl9tYWtlX2NoZWNrb3V0KCkKICAgICAgICAgY2hl
Y2tvdXQuX3NjbS5jb250ZW50c19hdF9yZXZpc2lvbiA9IG1vY2tfY29udGVudHNfYXRfcmV2aXNp
b24KICAgICAgICAgZW50cnkgPSBjaGVja291dC5fbGF0ZXN0X2VudHJ5X2Zvcl9jaGFuZ2Vsb2df
YXRfcmV2aXNpb24oImZvbyIsICJiYXIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVudHJ5
LmNvbnRlbnRzKCksIF9jaGFuZ2Vsb2cxZW50cnkxKQorICAgICAgICBzZWxmLmFzc2VydE11bHRp
TGluZUVxdWFsKGVudHJ5LmNvbnRlbnRzKCksIF9jaGFuZ2Vsb2cxZW50cnkxKQogCiAgICAgIyBG
SVhNRTogVGhpcyB0ZXN0cyBhIGhhY2sgYXJvdW5kIG91ciBjdXJyZW50IGNoYW5nZWRfZmlsZXMg
aGFuZGxpbmcuCiAgICAgIyBSaWdodCBub3cgY2hhbmdlbG9nX2VudHJpZXNfZm9yX3JldmlzaW9u
IHRyaWVzIHRvIGZldGNoIGRlbGV0ZWQgZmlsZXMKQEAgLTE5MSwxMCArMTkxLDEwIEBAIGNsYXNz
IENoZWNrb3V0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29tbWl0aW5mby5idWdfaWQoKSwgMzY2MjkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbWl0aW5mby5hdXRob3JfbmFtZSgpLCB1IlRvciBBcm5lIFZlc3RiXHUwMGY4IikKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRpbmZvLmF1dGhvcl9lbWFpbCgpLCAidmVzdGJvQHdl
YmtpdC5vcmciKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdGluZm8ucmV2aWV3ZXJf
dGV4dCgpLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdGluZm8ucmV2aWV3
ZXIoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY29tbWl0aW5mby5yZXZpZXdl
cl90ZXh0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGNvbW1pdGluZm8ucmV2aWV3ZXIo
KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRpbmZvLmNvbW1pdHRlcl9lbWFpbCgp
LCAiY29tbWl0dGVyQGV4YW1wbGUuY29tIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
aXRpbmZvLmNvbW1pdHRlcigpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShjb21t
aXRpbmZvLmNvbW1pdHRlcigpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdGluZm8u
dG9fanNvbigpLCB7CiAgICAgICAgICAgICAnYnVnX2lkJzogMzY2MjksCiAgICAgICAgICAgICAn
YXV0aG9yX2VtYWlsJzogJ3Zlc3Rib0B3ZWJraXQub3JnJywKQEAgLTIwNyw3ICsyMDcsNyBAQCBj
bGFzcyBDaGVja291dFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICB9KQogCiAgICAg
ICAgIGNoZWNrb3V0LmNoYW5nZWxvZ19lbnRyaWVzX2Zvcl9yZXZpc2lvbiA9IGxhbWJkYSByZXZp
c2lvbiwgY2hhbmdlZF9maWxlcz1Ob25lOiBbXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNo
ZWNrb3V0LmNvbW1pdF9pbmZvX2Zvcl9yZXZpc2lvbigxKSwgTm9uZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRJc05vbmUoY2hlY2tvdXQuY29tbWl0X2luZm9fZm9yX3JldmlzaW9uKDEpKQogCiAgICAg
ZGVmIHRlc3RfYnVnX2lkX2Zvcl9yZXZpc2lvbihzZWxmKToKICAgICAgICAgY2hlY2tvdXQgPSBz
ZWxmLl9tYWtlX2NoZWNrb3V0KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NoZWNrb3V0L2NvbW1pdGluZm9fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jaGVja291dC9jb21taXRpbmZvX3VuaXR0ZXN0LnB5CmluZGV4IGY1OGU2
ZjFlYTgyOWM5YjJkN2RjYjk5NjRjNDhkNTVlYzUxNzE4YjkuLjgyNjY3M2RlNjQwMmNjZDU4ZTdl
MGZhMTNiMzMwNjg2Mzk1ZTU3YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NoZWNrb3V0L2NvbW1pdGluZm9fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY29tbWl0aW5mb191bml0dGVzdC5weQpAQCAtMjYs
NyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0
ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9u
LmNoZWNrb3V0LmNvbW1pdGluZm8gaW1wb3J0IENvbW1pdEluZm8KIGZyb20gd2Via2l0cHkuY29t
bW9uLmNvbmZpZy5jb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXJMaXN0LCBDb21taXR0ZXIsIFJl
dmlld2VyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY20vZGV0ZWN0aW9uX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvc2NtL2RldGVjdGlvbl91bml0dGVzdC5weQppbmRleCAzYTE1NDY2ZmFhNWJm
NWIyZGVkMDljZGY5MTMwZTljMWJmNTVlYTI5Li41OTNmMDkzYzQ2NDQyMDExNWRmOTY3YjBmZDYx
OGMwZjY1NTI0NTUyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
aGVja291dC9zY20vZGV0ZWN0aW9uX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9kZXRlY3Rpb25fdW5pdHRlc3QucHkKQEAgLTQ3LDUg
KzQ3LDUgQEAgTU9DSyBydW5fY29tbWFuZDogWydzdm4nLCAnaW5mbyddLCBjd2Q9LwogTU9DSyBy
dW5fY29tbWFuZDogWydnaXQnLCAncmV2LXBhcnNlJywgJy0taXMtaW5zaWRlLXdvcmstdHJlZSdd
LCBjd2Q9LwogIiIiCiAgICAgICAgIHNjbSA9IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0
cyhzZWxmLCBkZXRlY3Rvci5kZXRlY3Rfc2NtX3N5c3RlbSwgWyIvIl0sIGV4cGVjdGVkX2xvZ3M9
ZXhwZWN0ZWRfbG9ncykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzY20sIE5vbmUpCisgICAg
ICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNjbSkKICAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQg
bWFrZSBhIHN5bnRoZXRpYyB0cmVlIGFuZCB0ZXN0IFNWTiBhbmQgR2l0IGRldGVjdGlvbiBpbiB0
aGF0IHRyZWUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvYnVpbGRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvYnVpbGRfdW5pdHRlc3QucHkKaW5kZXggOTczOTk1ZGM3ZWJjNTA2YjMzMTU4OWEyNDU2NmUw
N2NmYzc5OTA3YS4uZGViN2I5MjMyNTlkOTZkYjM4NzBhN2I4YjBmOWVjYWNhZWI3ZjBlZiAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2J1aWxkX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9idWlsZF91
bml0dGVzdC5weQpAQCAtMjAsNyArMjAsNyBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRl
c3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnIGltcG9ydCBidWlsZAogCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVyc191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJz
X3VuaXR0ZXN0LnB5CmluZGV4IDdmNGY2NzdlNWFlZWI4OTQwZDU2ZTc1MThiZTk5MzY1NmVlN2Jk
MDAuLmNlOTMzNWI3OWI1YzI2OTBhMTY4YmExYzk0M2QwYWFmYzViOWI1NGUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJz
X3VuaXR0ZXN0LnB5CkBAIC0yNSw3ICsyNSw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIGZy
b20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJzIGltcG9ydCBBY2NvdW50LCBDb21t
aXR0ZXJMaXN0LCBDb250cmlidXRvciwgQ29tbWl0dGVyLCBSZXZpZXdlcgogCiBjbGFzcyBDb21t
aXR0ZXJzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIENv
bW1pdHRlcnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBUZXN0IHZhbGlkIGNv
bW1pdHRlciwgcmV2aWV3ZXIgYW5kIGNvbnRyaWJ1dG9yIGxvb2t1cAogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9uYW1lKCJUZXN0IE9uZSIpLCBj
b21taXR0ZXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0dGVyX2xpc3QuY29tbWl0
dGVyX2J5X25hbWUoIlRlc3QgVHdvIiksIHJldmlld2VyKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9uYW1lKCJUZXN0IFRocmVlIiksIE5vbmUp
CisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9u
YW1lKCJUZXN0IFRocmVlIikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0dGVyX2xp
c3QuY29udHJpYnV0b3JfYnlfbmFtZSgiVGVzdCBUaHJlZSIpLCBjb250cmlidXRvcikKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXR0ZXJfbGlzdC5jb250cmlidXRvcl9ieV9uYW1lKCJ0
ZXN0IG9uZSIpLCBjb21taXR0ZXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0dGVy
X2xpc3QuY29udHJpYnV0b3JfYnlfbmFtZSgidGVzdCB0d28iKSwgcmV2aWV3ZXIpCkBAIC02Miwy
MSArNjIsMjEgQEAgY2xhc3MgQ29tbWl0dGVyc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAg
ICAgICAgICMgVGVzdCBsb29rdXAgYnkgbG9naW4gZW1haWwgYWRkcmVzcwogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1pdHRlcl9saXN0LmFjY291bnRfYnlfbG9naW4oJ3plcm9AdGVzdC5j
b20nKSwgYWNjb3VudCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXR0ZXJfbGlzdC5h
Y2NvdW50X2J5X2xvZ2luKCd6ZXJvQGdtYWlsLmNvbScpLCBOb25lKQorICAgICAgICBzZWxmLmFz
c2VydElzTm9uZShjb21taXR0ZXJfbGlzdC5hY2NvdW50X2J5X2xvZ2luKCd6ZXJvQGdtYWlsLmNv
bScpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHRlcl9saXN0LmFjY291bnRfYnlf
bG9naW4oJ29uZUB0ZXN0LmNvbScpLCBjb21taXR0ZXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29tbWl0dGVyX2xpc3QuYWNjb3VudF9ieV9sb2dpbigndHdvQHRlc3QuY29tJyksIHJldmll
d2VyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHRlcl9saXN0LmFjY291bnRfYnlf
bG9naW4oJ1R3b0ByYWQuY29tJyksIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29t
bWl0dGVyX2xpc3QuYWNjb3VudF9ieV9sb2dpbignc29fdHdvQGdtYWlsLmNvbScpLCBOb25lKQor
ICAgICAgICBzZWxmLmFzc2VydElzTm9uZShjb21taXR0ZXJfbGlzdC5hY2NvdW50X2J5X2xvZ2lu
KCdUd29AcmFkLmNvbScpKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShjb21taXR0ZXJfbGlz
dC5hY2NvdW50X2J5X2xvZ2luKCdzb190d29AZ21haWwuY29tJykpCiAKICAgICAgICAgIyBUZXN0
IHRoYXQgYSBrbm93biBjb21taXR0ZXIgaXMgbm90IHJldHVybmVkIGR1cmluZyByZXZpZXdlciBs
b29rdXAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXR0ZXJfbGlzdC5yZXZpZXdlcl9i
eV9lbWFpbCgnb25lQHRlc3QuY29tJyksIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbWl0dGVyX2xpc3QucmV2aWV3ZXJfYnlfZW1haWwoJ3RocmVlQHRlc3QuY29tJyksIE5vbmUp
CisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGNvbW1pdHRlcl9saXN0LnJldmlld2VyX2J5X2Vt
YWlsKCdvbmVAdGVzdC5jb20nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY29tbWl0dGVy
X2xpc3QucmV2aWV3ZXJfYnlfZW1haWwoJ3RocmVlQHRlc3QuY29tJykpCiAgICAgICAgICMgYW5k
IGxpa2V3aXNlIHRoYXQgYSBrbm93biBjb250cmlidXRvciBpcyBub3QgcmV0dXJuZWQgZm9yIGNv
bW1pdHRlciBsb29rdXAuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0dGVyX2xpc3Qu
Y29tbWl0dGVyX2J5X2VtYWlsKCd0aHJlZUB0ZXN0LmNvbScpLCBOb25lKQorICAgICAgICBzZWxm
LmFzc2VydElzTm9uZShjb21taXR0ZXJfbGlzdC5jb21taXR0ZXJfYnlfZW1haWwoJ3RocmVlQHRl
c3QuY29tJykpCiAKICAgICAgICAgIyBUZXN0IHRoYXQgdW5rbm93biBlbWFpbCBhZGRyZXNzIGZh
aWwgYm90aCBjb21taXR0ZXIgYW5kIHJldmlld2VyIGxvb2t1cAotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9lbWFpbCgnYmFyQGJhci5jb20nKSwg
Tm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXR0ZXJfbGlzdC5yZXZpZXdlcl9i
eV9lbWFpbCgnYmFyQGJhci5jb20nKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUo
Y29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5X2VtYWlsKCdiYXJAYmFyLmNvbScpKQorICAgICAg
ICBzZWxmLmFzc2VydElzTm9uZShjb21taXR0ZXJfbGlzdC5yZXZpZXdlcl9ieV9lbWFpbCgnYmFy
QGJhci5jb20nKSkKIAogICAgICAgICAjIFRlc3QgdGhhdCBlbWFpbHMgcmV0dXJucyBhIGxpc3Qu
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0dGVyLmVtYWlscywgWydvbmVAdGVzdC5j
b20nXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9j
b21taXR0ZXJ2YWxpZGF0b3JfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvY29tbWl0dGVydmFsaWRhdG9yX3VuaXR0ZXN0LnB5CmluZGV4IDIzMmYwNzcx
ZTA5MzJkZTFkMzU3MTA3ZmY1NTQ1ZDYzOGRmODhhYmIuLmU4YWE4ODcyMTZmYWRmNDM0NzFiMDYx
MzlkNTY1ZmVhNjA5NDgzNmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9jb21taXR0ZXJ2YWxpZGF0b3JfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnZhbGlkYXRvcl91bml0dGVzdC5w
eQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1w
b3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0
cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gLmNvbW1pdHRlcnZhbGlk
YXRvciBpbXBvcnQgQ29tbWl0dGVyVmFsaWRhdG9yCkBAIC00MSw0ICs0MSw0IEBAIGNsYXNzIENv
bW1pdHRlclZhbGlkYXRvclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogLSBJZiB5b3UgZG8gbm90
IGhhdmUgcmV2aWV3IHJpZ2h0cyBwbGVhc2UgcmVhZCBodHRwOi8vd2Via2l0Lm9yZy9jb2Rpbmcv
Y29udHJpYnV0aW5nLmh0bWwgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gdXNlIGJ1Z3ppbGxh
IGZsYWdzLgogCiAtIElmIHlvdSBoYXZlIHJldmlldyByaWdodHMgcGxlYXNlIGNvcnJlY3QgdGhl
IGVycm9yIGluIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJz
LnB5IGJ5IGFkZGluZyB5b3Vyc2VsZiB0byB0aGUgZmlsZSAobm8gcmV2aWV3IG5lZWRlZCkuICBU
aGUgY29tbWl0LXF1ZXVlIHJlc3RhcnRzIGl0c2VsZiBldmVyeSAyIGhvdXJzLiAgQWZ0ZXIgcmVz
dGFydCB0aGUgY29tbWl0LXF1ZXVlIHdpbGwgY29ycmVjdGx5IHJlc3BlY3QgeW91ciByZXZpZXcg
cmlnaHRzLiIiIgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZhbGlkYXRvci5fZmxhZ19wZXJt
aXNzaW9uX3JlamVjdGlvbl9tZXNzYWdlKCJmb29AZm9vLmNvbSIsICJyZXZpZXciKSwgZXhwZWN0
ZWRfbWVzc3NhZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwodmFsaWRhdG9y
Ll9mbGFnX3Blcm1pc3Npb25fcmVqZWN0aW9uX21lc3NhZ2UoImZvb0Bmb28uY29tIiwgInJldmll
dyIpLCBleHBlY3RlZF9tZXNzc2FnZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9jb250cmlidXRpb25hcmVhc191bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb250cmlidXRpb25hcmVhc191bml0dGVzdC5w
eQppbmRleCBjMzk2MGQ5YzFmNmQzOTEzOWI3MjExYThmZTlkNzliYWU2ZGYyYmM2Li4xN2Q0ZmU3
MTg0OWI2OTY0N2NiYmYxZjhhMmY1MGI5Y2VhYTBiYzNhIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29udHJpYnV0aW9uYXJlYXNfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbnRyaWJ1dGlvbmFy
ZWFzX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QK
IAogZnJvbSAuY29udHJpYnV0aW9uYXJlYXMgaW1wb3J0IF9JbnRlcnNlY3Rpb24KIGZyb20gLmNv
bnRyaWJ1dGlvbmFyZWFzIGltcG9ydCBfQXJlYQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CmluZGV4IGQyMDUxNDI3OGIw
YTRlMjI0OTUyOTA4MTI2YWUzN2ZmNWZkOWMxYzguLmE0MzQyMTFiM2IzZDYwYzU0MzdiODIxZWI2
MGFiNTYwY2IzYTJkOTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NvbmZpZy9wb3J0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0
MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcucG9ydHMgaW1wb3J0
ICoKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Vy
bHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvdXJs
c191bml0dGVzdC5weQppbmRleCBiNGJmODk3OGFhMTQzMGIxZjg4ZmExOWQ0MzUzMTRlNjNlOTM2
NTk5Li5jMWEwODJjY2JkOTU0MmNmYTRjMzRhZjRhMWIxNTJjNjM4Mjc2MWU3IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvdXJsc191bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvdXJsc191bml0dGVzdC5w
eQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1w
b3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gLnVybHMg
aW1wb3J0IHBhcnNlX2J1Z19pZCwgcGFyc2VfYXR0YWNobWVudF9pZAogCkBAIC00MiwxMiArNDIs
MTIgQEAgY2xhc3MgVVJMc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDEyMzQ1LCBwYXJzZV9idWdfaWQoImh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMzQ1ZXhjbHVkZWZpZWxkPWF0dGFjaG1lbnRkYXRhJmN0eXBlPXhtbCIp
KQogCiAgICAgICAgICMgT3VyIHVybCBwYXJzZXIgaXMgc3VwZXItZnJhZ2lsZSwgYnV0IGF0IGxl
YXN0IHdlJ3JlIHRlc3RpbmcgaXQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcGFy
c2VfYnVnX2lkKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvYi8xMjM0NSIpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIHBhcnNlX2J1Z19pZCgiaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/Y3R5cGU9eG1sJmlkPTEyMzQ1IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoTm9uZSwgcGFyc2VfYnVnX2lkKCJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9jdHlwZT14bWwmaWQ9MTIzNDUmZXhjbHVkZWZpZWxkPWF0dGFjaG1lbnRkYXRhIikpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcGFyc2VfYnVnX2lkKCJodHRwOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9jdHlwZT14bWwmZXhjbHVkZWZpZWxkPWF0dGFjaG1lbnRkYXRh
JmlkPTEyMzQ1IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcGFyc2VfYnVnX2lk
KCJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9leGNsdWRlZmllbGQ9YXR0YWNo
bWVudGRhdGEmY3R5cGU9eG1sJmlkPTEyMzQ1IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgcGFyc2VfYnVnX2lkKCJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9l
eGNsdWRlZmllbGQ9YXR0YWNobWVudGRhdGEmaWQ9MTIzNDUmY3R5cGU9eG1sIikpCisgICAgICAg
IHNlbGYuYXNzZXJ0SXNOb25lKHBhcnNlX2J1Z19pZCgiaHR0cDovL3d3dy53ZWJraXQub3JnL2Iv
MTIzNDUiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocGFyc2VfYnVnX2lkKCJodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9jdHlwZT14bWwmaWQ9MTIzNDUiKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRJc05vbmUocGFyc2VfYnVnX2lkKCJodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9jdHlwZT14bWwmaWQ9MTIzNDUmZXhjbHVkZWZpZWxkPWF0dGFjaG1lbnRk
YXRhIikpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHBhcnNlX2J1Z19pZCgiaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/Y3R5cGU9eG1sJmV4Y2x1ZGVmaWVsZD1hdHRhY2ht
ZW50ZGF0YSZpZD0xMjM0NSIpKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwYXJzZV9idWdf
aWQoImh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2V4Y2x1ZGVmaWVsZD1hdHRh
Y2htZW50ZGF0YSZjdHlwZT14bWwmaWQ9MTIzNDUiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05v
bmUocGFyc2VfYnVnX2lkKCJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9leGNs
dWRlZmllbGQ9YXR0YWNobWVudGRhdGEmaWQ9MTIzNDUmY3R5cGU9eG1sIikpCiAKICAgICBkZWYg
dGVzdF9wYXJzZV9hdHRhY2htZW50X2lkKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEyMzQ1LCBwYXJzZV9hdHRhY2htZW50X2lkKCJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRh
Y2htZW50LmNnaT9pZD0xMjM0NSZhY3Rpb249cmV2aWV3IikpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9lZGl0ZGlzdGFuY2VfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9lZGl0ZGlzdGFuY2VfdW5pdHRlc3QucHkKaW5kZXggNGFl
NjQ0MWJmMzNkMzk0ZjQ3ZDYxMDA0YTFjZTkzMTA2MmM1YmQwMi4uMWY2NzU3MmI0NjBjOGI2MjNj
ZGVlYjE1NDAwN2M1N2EzYzU2MzAwOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vZWRpdGRpc3RhbmNlX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2VkaXRkaXN0YW5jZV91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAog
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQg
dW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmVkaXRkaXN0YW5j
ZSBpbXBvcnQgZWRpdF9kaXN0YW5jZQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9maW5kX2ZpbGVzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vZmluZF9maWxlc191bml0dGVzdC5weQppbmRleCBmMGZlMDFjNTZjODY0Yjc5YjYx
NjAzNTA3ZTcyNGJiMDkyOWViNDA4Li40YzBhN2NkYzRlOWE4MmQyYWQ2MjA0NTRjYzU5NTUwMmMz
YjYxNGFkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9maW5kX2Zp
bGVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2ZpbmRf
ZmlsZXNfdW5pdHRlc3QucHkKQEAgLTI3LDcgKzI3LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1w
b3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVt
CiBpbXBvcnQgZmluZF9maWxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbHJ1X2NhY2hlX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbHJ1X2NhY2hlX3VuaXR0ZXN0LnB5CmluZGV4IDk0NDI3NjQyNGIzMDgyODdiYTljNWNmNzli
YzA5YWY4NDk1NmU1Y2MuLjk2Y2EyMDk1Y2VkNmFmOTJjNzU2YzVmM2MwMTU3Mzg2Zjk0MTY4YzMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2xydV9jYWNoZV91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9scnVfY2FjaGVfdW5p
dHRlc3QucHkKQEAgLTI0LDcgKzI0LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogCi1pbXBvcnQgdW5p
dHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21t
b24gaW1wb3J0IGxydV9jYWNoZQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9tZW1vaXplZF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL21lbW9pemVkX3VuaXR0ZXN0LnB5CmluZGV4IGRkN2M3OTNkOGQ3NjljYWQ2YTA5M2NkYmNh
NjBkOTc4MmU1NDQ3YWEuLmFmNDA2ZGZlYWVmOTgwMmQ4NTgyZmI5MzU3OWQ5NzY5YmRkZTU3NDUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lbW9pemVkX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lbW9pemVkX3VuaXR0
ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
Ci1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3
ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWdfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnX3VuaXR0ZXN0
LnB5CmluZGV4IGYyMGM2MDEwYzgzNzYyZmRjNTg5YzM5Yzg5YmRjNjhiYWYyZjRiNjQuLjljOWZk
OWRmZmRkMTEyYTk5N2UyZGZhNzdiZmU1MGM0NmYzNjBmY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWdfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z191bml0dGVzdC5w
eQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1w
b3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gLmJ1ZyBp
bXBvcnQgQnVnCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9idWd6aWxsYS9idWd6aWxsYV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9idWd6aWxsYS9idWd6aWxsYV91bml0dGVzdC5weQppbmRleCA5MGU0YzgzZmM0
NWQ2ZGNjMzBiMWFlNzM1ODVkODM4ZDYxM2JjZjY2Li4wOWVmYmVlYmUzMmMxNDQ1ODNhOTAyYTNl
MDg1ZjI5YjgwNDc2N2U5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvYnVnemlsbGEvYnVnemlsbGFfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CkBAIC0yNiw3
ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRl
c3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIGltcG9ydCBkYXRldGltZQogaW1wb3J0
IFN0cmluZ0lPCiAKQEAgLTg1LDkgKzg1LDkgQEAgY2xhc3MgQnVnemlsbGFUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF91cmxfY3JlYXRpb24oc2VsZik6CiAgICAgICAgICMg
RklYTUU6IFRoZXNlIHdvdWxkIGJlIGFsbCBiZXR0ZXIgYXMgZG9jdGVzdHMKICAgICAgICAgYnVn
cyA9IEJ1Z3ppbGxhKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBidWdzLmJ1Z191
cmxfZm9yX2J1Z19pZChOb25lKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBidWdz
LnNob3J0X2J1Z191cmxfZm9yX2J1Z19pZChOb25lKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCBidWdzLmF0dGFjaG1lbnRfdXJsX2Zvcl9pZChOb25lKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRJc05vbmUoYnVncy5idWdfdXJsX2Zvcl9idWdfaWQoTm9uZSkpCisgICAgICAgIHNlbGYu
YXNzZXJ0SXNOb25lKGJ1Z3Muc2hvcnRfYnVnX3VybF9mb3JfYnVnX2lkKE5vbmUpKQorICAgICAg
ICBzZWxmLmFzc2VydElzTm9uZShidWdzLmF0dGFjaG1lbnRfdXJsX2Zvcl9pZChOb25lKSkKIAog
ICAgIGRlZiB0ZXN0X3BhcnNlX2J1Z19pZChzZWxmKToKICAgICAgICAgIyBUZXN0IHRoYXQgd2Ug
Y2FuIHBhcnNlIHRoZSB1cmxzIHdlIHByb2R1Y2UuCkBAIC0xOTgsNyArMTk4LDcgQEAgSWdub3Jl
IHRoaXMgYnVnLiAgSnVzdCBmb3IgdGVzdGluZyBmYWlsdXJlIG1vZGVzIG9mIHdlYmtpdC1wYXRj
aCBhbmQgdGhlIGNvbW1pdC0KICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBtb3ZlIHRvIGEgY2Vu
dHJhbCBsb2NhdGlvbiBhbmQgYmUgc2hhcmVkIGJ5IG1vcmUgdW5pdCB0ZXN0cy4KICAgICBkZWYg
X2Fzc2VydF9kaWN0aW9uYXJpZXNfZXF1YWwoc2VsZiwgYWN0dWFsLCBleHBlY3RlZCk6CiAgICAg
ICAgICMgTWFrZSBzdXJlIHdlIGFyZW4ndCBwYXJzaW5nIG1vcmUgb3IgbGVzcyB0aGFuIHdlIGV4
cGVjdAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChhY3R1YWwua2V5cygpKSwgc29y
dGVkKGV4cGVjdGVkLmtleXMoKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChhY3R1
YWwua2V5cygpLCBleHBlY3RlZC5rZXlzKCkpCiAKICAgICAgICAgZm9yIGtleSwgZXhwZWN0ZWRf
dmFsdWUgaW4gZXhwZWN0ZWQuaXRlbXMoKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YWN0dWFsW2tleV0sIGV4cGVjdGVkX3ZhbHVlLCAoIkZhaWx1cmUgZm9yIGtleTogJXM6IEFjdHVh
bD0nJXMnIEV4cGVjdGVkPSclcyciICUgKGtleSwgYWN0dWFsW2tleV0sIGV4cGVjdGVkX3ZhbHVl
KSkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRi
b3QvYnVpbGRib3RfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHkKaW5kZXggOThjY2ZjZGE5MWVhYjIwOGYz
YzhmNGFiYjE5MjQ3M2E2NzlhMGY3Ni4uMjZiN2I5Nzk5ZjE3YWRlZTgxYWY4MmZiYmE5ZTkzYmM1
NWJlMDFjZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1
aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBA
QAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBv
cnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlv
dXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5idWlsZGJvdCBpbXBvcnQgQnVpbGRCb3QsIEJ1aWxkZXIsIEJ1aWxkCkBAIC03MSwx
NCArNzEsMTQgQEAgY2xhc3MgQnVpbGRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlZ3Jlc3Npb25fd2luZG93LmZhaWxpbmdfYnVpbGQoKS5yZXZp
c2lvbigpLCAxMDA0KQogCiAgICAgICAgIHJlZ3Jlc3Npb25fd2luZG93ID0gc2VsZi5idWlsZGVy
LmZpbmRfcmVncmVzc2lvbl93aW5kb3coc2VsZi5idWlsZGVyLmJ1aWxkKDEwKSwgbG9va19iYWNr
X2xpbWl0PTIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVncmVzc2lvbl93aW5kb3cuYnVp
bGRfYmVmb3JlX2ZhaWx1cmUoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVn
cmVzc2lvbl93aW5kb3cuYnVpbGRfYmVmb3JlX2ZhaWx1cmUoKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChyZWdyZXNzaW9uX3dpbmRvdy5mYWlsaW5nX2J1aWxkKCkucmV2aXNpb24oKSwgMTAw
OCkKIAogICAgIGRlZiB0ZXN0X25vbmVfYnVpbGQoc2VsZik6CiAgICAgICAgIHNlbGYuYnVpbGRl
ci5fZmV0Y2hfYnVpbGQgPSBsYW1iZGEgYnVpbGRfbnVtYmVyOiBOb25lCiAgICAgICAgIHJlZ3Jl
c3Npb25fd2luZG93ID0gc2VsZi5idWlsZGVyLmZpbmRfcmVncmVzc2lvbl93aW5kb3coc2VsZi5i
dWlsZGVyLmJ1aWxkKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWdyZXNzaW9uX3dp
bmRvdy5idWlsZF9iZWZvcmVfZmFpbHVyZSgpLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJlZ3Jlc3Npb25fd2luZG93LmZhaWxpbmdfYnVpbGQoKSwgTm9uZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRJc05vbmUocmVncmVzc2lvbl93aW5kb3cuYnVpbGRfYmVmb3JlX2ZhaWx1cmUoKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVncmVzc2lvbl93aW5kb3cuZmFpbGluZ19idWls
ZCgpKQogCiAgICAgZGVmIHRlc3RfZmxha3lfdGVzdHMoc2VsZik6CiAgICAgICAgIHNlbGYuX2lu
c3RhbGxfZmV0Y2hfYnVpbGQobGFtYmRhIGJ1aWxkX251bWJlcjogWyJ0ZXN0MSJdIGlmIGJ1aWxk
X251bWJlciAlIDIgZWxzZSBbInRlc3QyIl0pCkBAIC0xMDYsMTIgKzEwNiwxMiBAQCBjbGFzcyBC
dWlsZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9maW5kX2JsYW1l
d29ydGh5X3JlZ3Jlc3Npb25fd2luZG93KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuYnVpbGRlci5maW5kX2JsYW1ld29ydGh5X3JlZ3Jlc3Npb25fd2luZG93KDEwKS5yZXZp
c2lvbnMoKSwgWzEwMDRdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuYnVpbGRlci5m
aW5kX2JsYW1ld29ydGh5X3JlZ3Jlc3Npb25fd2luZG93KDEwLCBsb29rX2JhY2tfbGltaXQ9Miks
IE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYuYnVpbGRlci5maW5kX2JsYW1l
d29ydGh5X3JlZ3Jlc3Npb25fd2luZG93KDEwLCBsb29rX2JhY2tfbGltaXQ9MikpCiAgICAgICAg
ICMgRmxha2V5IHRlc3QgYXZvaWRhbmNlIHJlcXVpcmVzIGF0IGxlYXN0IDIgcmVkIGJ1aWxkczoK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmJ1aWxkZXIuZmluZF9ibGFtZXdvcnRoeV9y
ZWdyZXNzaW9uX3dpbmRvdyg0KSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2Vs
Zi5idWlsZGVyLmZpbmRfYmxhbWV3b3J0aHlfcmVncmVzc2lvbl93aW5kb3coNCkpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5idWlsZGVyLmZpbmRfYmxhbWV3b3J0aHlfcmVncmVzc2lv
bl93aW5kb3coNCwgYXZvaWRfZmxha2V5X3Rlc3RzPUZhbHNlKS5yZXZpc2lvbnMoKSwgWzEwMDRd
KQogICAgICAgICAjIEdyZWVuIGJ1aWxkZXI6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vs
Zi5idWlsZGVyLmZpbmRfYmxhbWV3b3J0aHlfcmVncmVzc2lvbl93aW5kb3coMyksIE5vbmUpCisg
ICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYuYnVpbGRlci5maW5kX2JsYW1ld29ydGh5X3Jl
Z3Jlc3Npb25fd2luZG93KDMpKQogCiAgICAgZGVmIHRlc3RfYnVpbGRfY2FjaGluZyhzZWxmKToK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmJ1aWxkZXIuYnVpbGQoMTApLCBzZWxmLmJ1
aWxkZXIuYnVpbGQoMTApKQpAQCAtMTQ4LDcgKzE0OCw3IEBAIGNsYXNzIEJ1aWxkZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBidWls
ZF9kaWN0aW9uYXJ5CiAgICAgICAgIGJ1aWxkYm90Ll9mZXRjaF9idWlsZF9kaWN0aW9uYXJ5ID0g
bW9ja19mZXRjaF9idWlsZF9kaWN0aW9uYXJ5Ci0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwo
YnVpbGRlci5fZmV0Y2hfYnVpbGQoMSksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3RO
b25lKGJ1aWxkZXIuX2ZldGNoX2J1aWxkKDEpKQogCiAKIGNsYXNzIEJ1aWxkVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CkBAIC0xNTgsNyArMTU4LDcgQEAgY2xhc3MgQnVpbGRUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgYnVpbGRlci5fZmV0Y2hfZmlsZV9mcm9tX3Jlc3VsdHMgPSBs
YW1iZGEgcmVzdWx0c191cmwsIGZpbGVfbmFtZTogTm9uZQogICAgICAgICBidWlsZCA9IEJ1aWxk
KGJ1aWxkZXIsIE5vbmUsIE5vbmUsIE5vbmUpCiAgICAgICAgICMgVGVzdCB0aGF0IGxheW91dF90
ZXN0X3Jlc3VsdHMoKSByZXR1cm5zIE5vbmUgaWYgdGhlIGZldGNoIGZhaWxzLgotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGJ1aWxkLmxheW91dF90ZXN0X3Jlc3VsdHMoKSwgTm9uZSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRJc05vbmUoYnVpbGQubGF5b3V0X3Rlc3RfcmVzdWx0cygpKQogCiAKIGNs
YXNzIEJ1aWxkQm90VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC0yNjMsMTYgKzI2MywxNiBA
QCBjbGFzcyBCdWlsZEJvdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGJ1aWxkLnVybCgpLCAiaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMv
VGVzdCUyMEJ1aWxkZXIvYnVpbGRzLzEwIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWls
ZC5yZXN1bHRzX3VybCgpLCAiaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvcmVzdWx0cy9UZXN0JTIw
QnVpbGRlci9yMjAlMjAlMjgxMCUyOSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGQu
cmV2aXNpb24oKSwgMjApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGQuaXNfZ3JlZW4o
KSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1aWxkLmlzX2dyZWVuKCkpCiAKICAg
ICAgICAgYnVpbGQgPSBidWlsZC5wcmV2aW91c19idWlsZCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoYnVpbGQuYnVpbGRlcigpLCBidWlsZGVyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGJ1aWxkLnVybCgpLCAiaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvVGVzdCUyMEJ1
aWxkZXIvYnVpbGRzLzkiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkLnJlc3VsdHNf
dXJsKCksICJodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9yZXN1bHRzL1Rlc3QlMjBCdWlsZGVyL3Ix
OCUyMCUyODklMjkiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkLnJldmlzaW9uKCks
IDE4KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkLmlzX2dyZWVuKCksIEZhbHNlKQor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJ1aWxkLmlzX2dyZWVuKCkpCiAKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChidWlsZGVyLmJ1aWxkKE5vbmUpLCBOb25lKQorICAgICAgICBzZWxmLmFz
c2VydElzTm9uZShidWlsZGVyLmJ1aWxkKE5vbmUpKQogCiAgICAgX2V4YW1wbGVfZGlyZWN0b3J5
X2xpc3RpbmcgPSAnJycKIDxoMT5EaXJlY3RvcnkgbGlzdGluZyBmb3IgL3Jlc3VsdHMvU25vd0xl
b3BhcmQgSW50ZWwgTGVha3MvPC9oMT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weQppbmRleCA0MzQ5NzQ4NmNj
MWFhZDZkYTkxNDgxZjVjNzk5ZTUyYjg5Y2QzYTAzLi5iZWFmYTU4ODA4ZjYyZTg2ODg3M2NkYTQ3
ZjNiNWE2YmI0NjhiOTAyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvY3JlZGVudGlhbHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2NyZWRlbnRpYWxzX3VuaXR0ZXN0LnB5CkBAIC0yOCw3ICsyOCw3IEBACiAK
IGltcG9ydCBvcwogaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0
dGVzdDIgYXMgdW5pdHRlc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5jcmVkZW50aWFscyBp
bXBvcnQgQ3JlZGVudGlhbHMKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUg
aW1wb3J0IEV4ZWN1dGl2ZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1
cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKQEAgLTkyLDcgKzkyLDcgQEAgcGFzc3dvcmQ6ICJTRUNS
RVRTQVVDRSIKICAgICAgICAgICAgIGRlZiBfaXNfbWFjX29zX3goc2VsZik6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGNyZWRlbnRpYWxzID0gRmFrZUNyZWRlbnRpYWxz
KCJidWdzLndlYmtpdC5vcmciKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNyZWRlbnRpYWxz
Ll9pc19tYWNfb3NfeCgpLCBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjcmVkZW50
aWFscy5faXNfbWFjX29zX3goKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcmVkZW50aWFs
cy5fY3JlZGVudGlhbHNfZnJvbV9rZXljaGFpbigiZm9vIiksIFsiZm9vIiwgTm9uZV0pCiAKICAg
ICBkZWYgdGVzdF9zZWN1cml0eV9vdXRwdXRfcGFyc2Uoc2VsZik6CkBAIC0xMDksNyArMTA5LDcg
QEAgcGFzc3dvcmQ6ICJTRUNSRVRTQVVDRSIKICAgICAgICAgIyBieSB0aGUgdGVzdCBjYXNlIENy
ZWRlbnRpYWxzVGVzdC5fYXNzZXJ0X3NlY3VyaXR5X2NhbGwgKGJlbG93KS4KICAgICAgICAgb3V0
cHV0Q2FwdHVyZSA9IE91dHB1dENhcHR1cmUoKQogICAgICAgICBvdXRwdXRDYXB0dXJlLmNhcHR1
cmVfb3V0cHV0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcmVkZW50aWFscy5fcnVuX3Nl
Y3VyaXR5X3Rvb2woKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY3JlZGVudGlh
bHMuX3J1bl9zZWN1cml0eV90b29sKCkpCiAgICAgICAgIG91dHB1dENhcHR1cmUucmVzdG9yZV9v
dXRwdXQoKQogCiAgICAgZGVmIF9hc3NlcnRfc2VjdXJpdHlfY2FsbChzZWxmLCB1c2VybmFtZT1O
b25lKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9mYWls
dXJlbWFwX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2Zh
aWx1cmVtYXBfdW5pdHRlc3QucHkKaW5kZXggYmQ0MTAzMmNiYTQ5NDk5NzFkNjE4NGYzN2M5NDll
YmM0YmUxZjIwZS4uMGJlZGU5N2U2Y2U1NTI5Mjc4YTMxZDY0NjQxNTcxOWUwNTI1MTBjMiAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2ZhaWx1cmVtYXBfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2ZhaWx1cmVt
YXBfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAog
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVpbGRib3QgaW1wb3J0IEJ1aWxkCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5uZXQuZmFpbHVyZW1hcCBpbXBvcnQgKgpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2h0ZGlnZXN0cGFyc2VyX3VuaXR0ZXN0LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2h0ZGlnZXN0cGFyc2VyX3VuaXR0ZXN0
LnB5CmluZGV4IGEyYTRhYzkzODU5MDRmYTZjZmNmOTY1YjM3NzAzN2NlZDc1OGJlYmIuLjM2N2M4
NjI2OGU3YzZmNWIyOTVhNmFiMGMzMjFkOGVhZWMwYjQ5ODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9odGRpZ2VzdHBhcnNlcl91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvaHRkaWdlc3RwYXJzZXJfdW5pdHRl
c3QucHkKQEAgLTIyLDcgKzIyLDcgQEAKIAogaW1wb3J0IFN0cmluZ0lPCiBpbXBvcnQgb3MKLWlt
cG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQuaHRkaWdlc3RwYXJzZXIgaW1wb3J0IEhURGlnZXN0UGFyc2VyCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9pcmMvaXJjcHJveHlf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvaXJjL2lyY3By
b3h5X3VuaXR0ZXN0LnB5CmluZGV4IGJjZTlkODU1ZDViZDE4NjFmMmRiN2JlNWNhMGE0MzY0ZjRk
YTNiODIuLjYzOTk3OWEwMjhmMzMxYzg3ZDg3NGRiYjEzOGM3NTAzNTRlNDVhYzggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9pcmMvaXJjcHJveHlfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2lyYy9pcmNwcm94
eV91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5pcmMuaXJjcHJveHkgaW1wb3J0IElSQ1Byb3h5CiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2Fw
dHVyZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91
dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CmluZGV4IGZjMDIzNzJmMDA1NjAyM2Fm
ZDQxNDVhZWMyYjI1NGU4ODI2MWUyOTYuLmVhNGU5MjczZjhjNTgyMmY1ZDE0OWY3NzhiMzliYzA2
NGYyYTU3NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9s
YXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcg
QEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1w
b3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5
b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQpAQCAtMzgsMTAg
KzM4LDEwIEBAIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5CZWF1dGlmdWxTb3VwIGltcG9ydCBC
ZWF1dGlmdWxTb3VwCiBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgIGRlZiB0ZXN0X3NldF9mYWlsdXJlX2xpbWl0X2NvdW50KHNlbGYpOgogICAgICAg
ICByZXN1bHRzID0gTGF5b3V0VGVzdFJlc3VsdHMoW10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0SXNOb25lKHJlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpKQogICAgICAgICByZXN1bHRz
LnNldF9mYWlsdXJlX2xpbWl0X2NvdW50KDEwKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJl
c3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpLCAxMCkKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHNf
ZnJvbV9zdHJpbmcoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTGF5b3V0VGVzdFJl
c3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhOb25lKSwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChMYXlvdXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKCIiKSwgTm9uZSkK
KyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoTGF5b3V0VGVzdFJlc3VsdHMucmVzdWx0c19mcm9t
X3N0cmluZyhOb25lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoTGF5b3V0VGVzdFJlc3Vs
dHMucmVzdWx0c19mcm9tX3N0cmluZygiIikpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvbmV0d29ya3RyYW5zYWN0aW9uX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L25ldHdvcmt0cmFuc2FjdGlvbl91bml0dGVzdC5w
eQppbmRleCAzMzAyZGVjODBlMzQ3NWQzMjljODU4MDJkOWNkOTRkZmVlNDE3ZWI3Li42NzQzOWYw
OTQ0ZjRkZTU2ZTk4ZTVjMDA5Y2QyNjNkNDYwMTBjODRmIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbmV0d29ya3RyYW5zYWN0aW9uX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9uZXR3b3JrdHJhbnNhY3Rpb25f
dW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubmV0d29ya3RyYW5zYWN0aW9uIGltcG9ydCBOZXR3b3Jr
VHJhbnNhY3Rpb24sIE5ldHdvcmtUaW1lb3V0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
bG9ndGVzdGluZyBpbXBvcnQgTG9nZ2luZ1Rlc3RDYXNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvb21haGFwcm94eV91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9vbWFoYXByb3h5X3VuaXR0ZXN0LnB5CmluZGV4IDNh
YTU4YjZjZTYwY2MzNjViMmUwYjBmMzJjZjVkNGMyYjQzNzQ3ODguLjgwYmE5ODJlOTE1MjIwZmE5
MDM2OGE1ZDg3NTI3NmJmOGIwZDBkOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9vbWFoYXByb3h5X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9vbWFoYXByb3h5X3VuaXR0ZXN0LnB5CkBAIC0yOSw3ICsyOSw3
IEBACiAKICMgVW5pdCB0ZXN0IGZvciBvbWFoYXByb3h5LnB5CiAKLWltcG9ydCB1bml0dGVzdAor
aW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQu
b21haGFwcm94eSBpbXBvcnQgT21haGFQcm94eQogCkBAIC0xMjgsOSArMTI4LDkgQEAgY2xhc3Mg
T21haGFQcm94eVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICByZXZpc2lvbnMgPSBv
bWFoYXByb3h5LmdldF9yZXZpc2lvbnMoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihy
ZXZpc2lvbnMpLCA1KQogICAgICAgICBmb3IgcmV2aXNpb24gaW4gcmV2aXNpb25zOgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKCJjb21taXQiIGluIHJldmlzaW9uKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKCJjaGFubmVsIiBpbiByZXZpc2lvbikKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgicGxhdGZvcm0iIGluIHJldmlzaW9uKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKCJkYXRlIiBpbiByZXZpc2lvbikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oImNv
bW1pdCIsIHJldmlzaW9uKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigiY2hhbm5lbCIsIHJl
dmlzaW9uKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigicGxhdGZvcm0iLCByZXZpc2lvbikK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oImRhdGUiLCByZXZpc2lvbikKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJldmlzaW9uLmtleXMoKSksIDQpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocmV2aXNpb25zLCBzZWxmLmV4cGVjdGVkX3JldmlzaW9ucykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91
bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNv
bnBhcnNlcl91bml0dGVzdC5weQppbmRleCA4NjczNzlmOTIxYTg3OGZiOTM1ZjdjMmI4YmE2ZjNh
NWEyYTU2MmQ4Li5hYWViNWRjNmQ5NmFiZjZjNTE3MWZkNDY2ZjQ3ZjFiOTVjYWM4ZDE3IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJz
ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jl
c3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIg
YXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnJlc3VsdHNqc29ucGFyc2Vy
IGltcG9ydCBSZXN1bHRzSlNPTlBhcnNlcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9k
ZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9zdGF0dXNzZXJ2ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvc3RhdHVzc2VydmVyX3VuaXR0ZXN0LnB5CmluZGV4IDFmMGFmZDA1
YmI3YzAwMDllOGEzNGZkYmRiYTE3MTc4N2JjMmE2NjEuLjkxYTQyYzkzZTk1NWUxYWJiNDE3OWJj
YTEwODEzYTY2MmU3NGViNTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9zdGF0dXNzZXJ2ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L3N0YXR1c3NlcnZlcl91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBA
QAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBv
cnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5zdGF0
dXNzZXJ2ZXIgaW1wb3J0IFN0YXR1c1NlcnZlcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
Lm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmVUZXN0Q2FzZUJhc2UKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC91bml0dGVzdHJlc3VsdHNfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvdW5pdHRlc3RyZXN1
bHRzX3VuaXR0ZXN0LnB5CmluZGV4IDA3MDgzOTFhZjg0YWM3MWZhYjg1ZDc2MmE4MDM1YjQ5ZTk0
NTM3N2IuLjIyNzEzOTI3MWViZmY0MTZmYzdkNTlkYWNjNjM3YzljNjg3MzM0MTEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC91bml0dGVzdHJlc3VsdHNfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3VuaXR0ZXN0
cmVzdWx0c191bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0
ZXN0CiAKIGZyb20gdW5pdHRlc3RyZXN1bHRzIGltcG9ydCBVbml0VGVzdFJlc3VsdHMKIApAQCAt
MzQsMTAgKzM0LDEwIEBAIGZyb20gdW5pdHRlc3RyZXN1bHRzIGltcG9ydCBVbml0VGVzdFJlc3Vs
dHMKIGNsYXNzIFVuaXRUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAg
ZGVmIHRlc3Rfbm9zdHJpbmcoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
VW5pdFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoTm9uZSkpCisgICAgICAgIHNlbGYu
YXNzZXJ0SXNOb25lKFVuaXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKE5vbmUpKQog
CiAgICAgZGVmIHRlc3RfZW1wdHlzdHJpbmcoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoTm9uZSwgVW5pdFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoIiIpKQorICAgICAg
ICBzZWxmLmFzc2VydElzTm9uZShVbml0VGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZygi
IikpCiAKICAgICBkZWYgdGVzdF9ub2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICBub19mYWlsdXJl
c194bWwgPSAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV3c3RyaW5naW9fdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXdzdHJpbmdpb191bml0dGVzdC5w
eQppbmRleCAyYTFkYmE4M2I5M2I4Mjk0YmQzNDY5N2ExMDk5N2I0Mzg2ZWI5OTgzLi42NzA0NzIy
MDQ3N2QxNmU5MjI2MjY5NTk5Nzc3MTRiZTA2MzM3ZWQzIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXdzdHJpbmdpb191bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXdzdHJpbmdpb191bml0dGVzdC5weQpAQCAtMjgsNyAr
MjgsNyBAQAogCiAiIiJVbml0IHRlc3RzIGZvciBuZXdzdHJpbmdpbyBtb2R1bGUuIiIiCiAKLWlt
cG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBpbXBvcnQgbmV3
c3RyaW5naW8KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vcHJl
dHR5cGF0Y2hfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9wcmV0
dHlwYXRjaF91bml0dGVzdC5weQppbmRleCAzN2ZhODQ0ZmQ1YmJiYzkwMjIzODVkYjhhMmE1ZGEx
MjRkYTc5ZGUyLi4zYWUxYzQzZmFhMDIyYWNjM2RkNzJiZjBlMTgyMWQ3ODBmODZmYjc1IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9wcmV0dHlwYXRjaF91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9wcmV0dHlwYXRjaF91bml0
dGVzdC5weQpAQCAtMjgsNyArMjgsNyBAQAogCiBpbXBvcnQgb3MucGF0aAogaW1wb3J0IHN5cwot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZQogZnJvbSB3ZWJr
aXRweS5jb21tb24ucHJldHR5cGF0Y2ggaW1wb3J0IFByZXR0eVBhdGNoCkBAIC03Nyw3ICs3Nyw3
IEBAIEluZGV4OiBsYXRpbjFfdGVzdAogICAgICAgICBwcmV0dHlfcGF0Y2ggPSBQcmV0dHlQYXRj
aChFeGVjdXRpdmUoKSwgc2VsZi5fd2Via2l0X3Jvb3QoKSkKICAgICAgICAgcHJldHR5ID0gcHJl
dHR5X3BhdGNoLnByZXR0eV9kaWZmKHNlbGYuX2RpZmZfd2l0aF9tdWx0aXBsZV9lbmNvZGluZ3Mp
CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwcmV0dHkpICAjIFdlIGdvdCBzb21lIG91dHB1dAot
ICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShwcmV0dHksIHN0cikpICAjIEl0J3Mg
YSBieXRlIGFycmF5LCBub3QgdW5pY29kZQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uo
cHJldHR5LCBzdHIpICAjIEl0J3MgYSBieXRlIGFycmF5LCBub3QgdW5pY29kZQogCiAgICAgZGVm
IHRlc3RfcHJldHR5X3ByaW50X2VtcHR5X3N0cmluZyhzZWxmKToKICAgICAgICAgaWYgbm90IHNl
bGYuY2hlY2tfcnVieSgpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vcmVhZF9jaGVja3N1bV9mcm9tX3BuZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3JlYWRfY2hlY2tzdW1fZnJvbV9wbmdfdW5pdHRlc3QucHkKaW5kZXggOWY5
MjBmZjhkY2I3YWUxM2E3OWJmZGJjYjhlYWY3NDc2MWQzODQ5ZC4uNzUxZjdhZjkwNzVjYzJjMmE1
ZjdjMjZhOWNlZDQ2NWY0NDRiMDYxOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vcmVhZF9jaGVja3N1bV9mcm9tX3BuZ191bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9yZWFkX2NoZWNrc3VtX2Zyb21fcG5nX3VuaXR0ZXN0LnB5
CkBAIC0yMiw3ICsyMiw3IEBACiAjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBTdHJpbmdJTwotaW1wb3J0
IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiBmcm9tIHdlYmtpdHB5LmNv
bW1vbiBpbXBvcnQgcmVhZF9jaGVja3N1bV9mcm9tX3BuZwogCiAKQEAgLTM2LDQgKzM2LDQgQEAg
Y2xhc3MgUmVhZENoZWNrc3VtRnJvbVBuZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICAjIFRlc3QgYSBmaWxlIHdpdGhvdXQgdGhlIGNvbW1lbnQuCiAgICAgICAgIGZpbGVoYW5kbGUg
PSBTdHJpbmdJTy5TdHJpbmdJTygnJydceDg5UE5HXHJcblx4MWFcblx4MDBceDAwXHgwMFxySUhE
Ulx4MDBceDAwXHgwMyBceDAwXHgwMFx4MDJYXHgwOFx4MDJceDAwXHgwMFx4MDBceDE1XHgxNFx4
MTUnXHgwMFx4MDBceDE2XHhmZUlEQVR4XHg5Y1x4ZWRceGRkW1x4OGNVXHhlNVx4YzFceGZmXHhm
MTVUXHgxOFx4MGVhLClceGE2XHg4MFhaPFx4MTBcblx4ZDZIXHhjNFZceDg4fVx4YjVceGE5XHhk
NnJceGQ1XHgwYmtpMFx4YTZceGI1aWhceGQyXHhkZVx4OThQSHpceGQxXHgwMj1cXHEjXHgwMVx4
OGJceGE1ckpceDhiXHg4OGlceGFjTVx4YzVoXHg4Y2JNayhceDFlekAhXHgwY1x4ZDVceGQyXHhj
Mlx4YjQ0XHgxY1x4ODQ4XHgxZEYoXHhlYlx4N2ZceGIxXHhmZlx4ZDlceGVmfmdceGQ2XHhkZTNc
eGUwb1x4MTBceGVjXHhlN3NhNntceGQ2elx4ZDZceGIzXHhkN1x4ZjNceGE4XzdceGRiTVtZXHg5
Nlx4MDVceDAwXHgwMDlceGMzXHhkZVx4ZWJcdFx4MDBceDAwXHhiY1x4ZGZceDA4LFx4MDBceDgw
MFx4ODFceDA1XHgwMFx4MTAmXHhiMFx4MDBceDAwXHhjMlx4MDRceDE2XHgwMEBceDk4XHhjMFx4
MDJceDAwXHgwOFx4MTNYXHgwMFx4MDBhXHgwMlx4MGJceDAwIEwceDAxXHgwMFx4ODRcdCxceDAw
XHg4MDBceDgxXHgwNVx4MDBceDEwXHhkNjRceGIwXHhkYVx4OWFceGRiXHhiNm1ceGRiXHhiNGlc
eGQzXHhmYVx4OWZyXHhmM1x4Y2Q3XHgwZlx4ZTVUXHgwN1x4ZTVceGQ0XHhhOVNceDhiXHgxNy9c
eDFlP35ceGZjXHhmOFx4ZjFceGUzXHhlZlx4YmZceGZmXHhmZVx4Zjd6Ok01XHhiYlx4ODdceDE3
XHhjYlVaXHg4ZnxWXHhkN1x4YmRceDEwXHhiNlx4Y2R7Ylx4ODhceGY2alx4YjNceDliP1x4MTRc
eDliXHhhMT5ceGU2XHhmOVx4ZDlceGNmXHgwMFx4MTdceDkzJycnKQogICAgICAgICBjaGVja3N1
bSA9IHJlYWRfY2hlY2tzdW1fZnJvbV9wbmcucmVhZF9jaGVja3N1bShmaWxlaGFuZGxlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGNoZWNrc3VtKQorICAgICAgICBzZWxmLmFzc2Vy
dElzTm9uZShjaGVja3N1bSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9jcmFzaGxvZ3NfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vY3Jhc2hsb2dzX3VuaXR0ZXN0LnB5CmluZGV4IDFmNWM0MGEwOWJlY2Zk
NjNjMTMxZWM3MDljOWZlNWMwYzg0ZjY3MTQuLmFkYzE5MTFmZGViZTNmMDViMjE2OTQ4NWQ4YTZl
ZTliZjgwYTc2NjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9jcmFzaGxvZ3NfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL2NyYXNobG9nc191bml0dGVzdC5weQpAQCAtMjEsNyArMjEsNyBAQAogIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKICMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5p
dHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5jcmFzaGxv
Z3MgaW1wb3J0IENyYXNoTG9ncwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0
ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KQEAgLTY5LDEzICs2OSw2IEBAIFNlcmlhbCBB
VEEgRGV2aWNlOiBPUFRJQVJDIERWRCBSVyBBRC01NjcwUwogIiIiLmZvcm1hdChwcm9jZXNzX25h
bWU9cHJvY2Vzc19uYW1lLCBwaWQ9cGlkKQogCiBjbGFzcyBDcmFzaExvZ3NUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKLSAgICBkZWYgYXNzZXJ0TGluZXNFcXVhbChzZWxmLCBhLCBiKToKLSAgICAg
ICAgaWYgaGFzYXR0cihzZWxmLCAnYXNzZXJ0TXVsdGlMaW5lRXF1YWwnKToKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoYSwgYikKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5zcGxpdGxpbmVzKCksIGIuc3BsaXRsaW5lcygpKQotCi0K
ICAgICBkZWYgdGVzdF9maW5kX2xvZ19kYXJ3aW4oc2VsZik6CiAgICAgICAgIGlmIG5vdCBTeXN0
ZW1Ib3N0KCkucGxhdGZvcm0uaXNfbWFjKCk6CiAgICAgICAgICAgICByZXR1cm4KQEAgLTk1LDE1
ICs4OCwxNSBAQCBjbGFzcyBDcmFzaExvZ3NUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgZmlsZXN5c3RlbSA9IE1vY2tGaWxlU3lzdGVtKGZpbGVzKQogICAgICAgICBjcmFzaF9sb2dz
ID0gQ3Jhc2hMb2dzKE1vY2tTeXN0ZW1Ib3N0KGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSkpCiAgICAg
ICAgIGxvZyA9IGNyYXNoX2xvZ3MuZmluZF9uZXdlc3RfbG9nKCJEdW1wUmVuZGVyVHJlZSIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0TGluZXNFcXVhbChsb2csIG5ld2VyX21vY2tfY3Jhc2hfcmVwb3J0
KQorICAgICAgICBzZWxmLmFzc2VydE11dGxpTGluZUVxdWFsKGxvZywgbmV3ZXJfbW9ja19jcmFz
aF9yZXBvcnQpCiAgICAgICAgIGxvZyA9IGNyYXNoX2xvZ3MuZmluZF9uZXdlc3RfbG9nKCJEdW1w
UmVuZGVyVHJlZSIsIDI4NTI5KQotICAgICAgICBzZWxmLmFzc2VydExpbmVzRXF1YWwobG9nLCBu
ZXdlcl9tb2NrX2NyYXNoX3JlcG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVh
bChsb2csIG5ld2VyX21vY2tfY3Jhc2hfcmVwb3J0KQogICAgICAgICBsb2cgPSBjcmFzaF9sb2dz
LmZpbmRfbmV3ZXN0X2xvZygiRHVtcFJlbmRlclRyZWUiLCAyODUzMCkKLSAgICAgICAgc2VsZi5h
c3NlcnRMaW5lc0VxdWFsKGxvZywgbW9ja19jcmFzaF9yZXBvcnQpCisgICAgICAgIHNlbGYuYXNz
ZXJ0TXVsdGlMaW5lRXF1YWwobG9nLCBtb2NrX2NyYXNoX3JlcG9ydCkKICAgICAgICAgbG9nID0g
Y3Jhc2hfbG9ncy5maW5kX25ld2VzdF9sb2coIkR1bXBSZW5kZXJUcmVlIiwgMjg1MzEpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9nLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9u
ZShsb2cpCiAgICAgICAgIGxvZyA9IGNyYXNoX2xvZ3MuZmluZF9uZXdlc3RfbG9nKCJEdW1wUmVu
ZGVyVHJlZSIsIG5ld2VyX3RoYW49MS4wKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvZywg
Tm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobG9nKQogCiAgICAgICAgIGRlZiBiYWRf
cmVhZChwYXRoKToKICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoJ0lPRXJyb3I6IE5vIHN1Y2gg
ZmlsZSBvciBkaXJlY3RvcnknKQpAQCAtMTEzLDEwICsxMDYsMTAgQEAgY2xhc3MgQ3Jhc2hMb2dz
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAgICAgZmlsZXN5c3RlbS5yZWFkX3RleHRf
ZmlsZSA9IGJhZF9yZWFkCiAgICAgICAgIGxvZyA9IGNyYXNoX2xvZ3MuZmluZF9uZXdlc3RfbG9n
KCJEdW1wUmVuZGVyVHJlZSIsIDI4NTMxLCBpbmNsdWRlX2Vycm9ycz1UcnVlKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoJ0lPRXJyb3I6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnknIGluIGxv
ZykKKyAgICAgICAgc2VsZi5hc3NlcnRJbignSU9FcnJvcjogTm8gc3VjaCBmaWxlIG9yIGRpcmVj
dG9yeScsIGxvZykKIAogICAgICAgICBmaWxlc3lzdGVtID0gTW9ja0ZpbGVTeXN0ZW0oZmlsZXMp
CiAgICAgICAgIGNyYXNoX2xvZ3MgPSBDcmFzaExvZ3MoTW9ja1N5c3RlbUhvc3QoZmlsZXN5c3Rl
bT1maWxlc3lzdGVtKSkKICAgICAgICAgZmlsZXN5c3RlbS5tdGltZSA9IGJhZF9tdGltZQogICAg
ICAgICBsb2cgPSBjcmFzaF9sb2dzLmZpbmRfbmV3ZXN0X2xvZygiRHVtcFJlbmRlclRyZWUiLCBu
ZXdlcl90aGFuPTEuMCwgaW5jbHVkZV9lcnJvcnM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKCdPU0Vycm9yOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5JyBpbiBsb2cpCisgICAgICAg
IHNlbGYuYXNzZXJ0SW4oJ09TRXJyb3I6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnknLCBsb2cp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZW52aXJv
bm1lbnRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
ZW52aXJvbm1lbnRfdW5pdHRlc3QucHkKaW5kZXggNjU1OGI1MWRmYjhhMmJlODIzMjliYWEyMjU0
NzY2ZTBlMTEzZjRmYy4uMjg2OGE2NWQyYmZjMmM2YjNmMDBlN2I1ZjA3YzQxZTUzNmVhYTA0YSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2Vudmlyb25t
ZW50X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9lbnZpcm9ubWVudF91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFz
IHVuaXR0ZXN0CiAKIGZyb20gLmVudmlyb25tZW50IGltcG9ydCBFbnZpcm9ubWVudAogCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2
ZV91bml0dGVzdC5weQppbmRleCBjYTI4MTk3NTE3ZjA3MjY2YzUzMjk5YWY4NTU0YTI0NjZmYmJm
YWQ0Li45YmEwNDUzZTdjYzRmNzExYTgzYzk3NDVlYmNiNDA3M2QwZGMxZjc3IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVf
dW5pdHRlc3QucHkKQEAgLTE3MiwxMSArMTcyLDExIEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKICAg
ICAgICAgICAgICMgRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NDc5MAogICAgICAgICAgICAgIyBXZSBzZWVtIHRvIGdldCBlaXRoZXIgMCBvciAxIGhlcmUg
Zm9yIHNvbWUgcmVhc29uLgotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHByb2Nlc3Mud2Fp
dCgpIGluICgwLCAxKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4ocHJvY2Vzcy53YWl0KCks
ICgwLCAxKSkKICAgICAgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gImN5Z3dpbiI6CiAgICAgICAg
ICAgICAjIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgx
OTYKICAgICAgICAgICAgICMgY3lnd2luIHNlZW1zIHRvIGdpdmUgdXMgZWl0aGVyIFNJR0FCUlQg
b3IgU0lHS0lMTAotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHByb2Nlc3Mud2FpdCgpIGlu
ICgtc2lnbmFsLlNJR0FCUlQsIC1zaWduYWwuU0lHS0lMTCkpCisgICAgICAgICAgICBzZWxmLmFz
c2VydEluKHByb2Nlc3Mud2FpdCgpLCAoLXNpZ25hbC5TSUdBQlJULCAtc2lnbmFsLlNJR0tJTEwp
KQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZXhwZWN0ZWRfZXhpdF9jb2RlID0gLXNpZ25h
bC5TSUdLSUxMCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCBl
eHBlY3RlZF9leGl0X2NvZGUpCkBAIC0xODcsNyArMTg3LDcgQEAgY2xhc3MgRXhlY3V0aXZlVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNlcmlhbF90ZXN0X2tpbGxfYWxsKHNlbGYp
OgogICAgICAgICBleGVjdXRpdmUgPSBFeGVjdXRpdmUoKQogICAgICAgICBwcm9jZXNzID0gc3Vi
cHJvY2Vzcy5Qb3BlbihuZXZlcl9lbmRpbmdfY29tbWFuZCgpLCBzdGRvdXQ9c3VicHJvY2Vzcy5Q
SVBFKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3MucG9sbCgpLCBOb25lKSAgIyBQ
cm9jZXNzIGlzIHJ1bm5pbmcKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzcy5wb2xs
KCkpICAjIFByb2Nlc3MgaXMgcnVubmluZwogICAgICAgICBleGVjdXRpdmUua2lsbF9hbGwobmV2
ZXJfZW5kaW5nX2NvbW1hbmQoKVswXSkKICAgICAgICAgIyBOb3RlOiBDYW4ndCB1c2UgYSB0ZXJu
YXJ5IHNpbmNlIHNpZ25hbC5TSUdURVJNIGlzIHVuZGVmaW5lZCBmb3Igc3lzLnBsYXRmb3JtID09
ICJ3aW4zMiIKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJjeWd3aW4iOgpAQCAtMTk2LDcg
KzE5Niw3IEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBlbGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgogICAgICAgICAgICAgIyBGSVhNRTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NzkwCiAgICAgICAgICAgICAj
IFdlIHNlZW0gdG8gZ2V0IGVpdGhlciAwIG9yIDEgaGVyZSBmb3Igc29tZSByZWFzb24uCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydFRydWUocHJvY2Vzcy53YWl0KCkgaW4gKDAsIDEpKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRJbihwcm9jZXNzLndhaXQoKSwgKDAsIDEpKQogICAgICAgICBlbHNl
OgogICAgICAgICAgICAgZXhwZWN0ZWRfZXhpdF9jb2RlID0gLXNpZ25hbC5TSUdURVJNCiAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCBleHBlY3RlZF9leGl0X2Nv
ZGUpCkBAIC0yMjksNyArMjI5LDcgQEAgY2xhc3MgRXhlY3V0aXZlVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAKICAgICAgICAgZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKICAgICAgICAgcGlkcyA9
IGV4ZWN1dGl2ZS5ydW5uaW5nX3BpZHMoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUob3MuZ2V0
cGlkKCkgaW4gcGlkcykKKyAgICAgICAgc2VsZi5hc3NlcnRJbihvcy5nZXRwaWQoKSwgcGlkcykK
IAogICAgIGRlZiBzZXJpYWxfdGVzdF9ydW5faW5fcGFyYWxsZWwoc2VsZik6CiAgICAgICAgICMg
V2UgcnVuIHRoaXMgdGVzdCBzZXJpYWxseSB0byBhdm9pZCBvdmVybG9hZGluZyB0aGUgbWFjaGlu
ZSBhbmQgdGhyb3dpbmcgb2ZmIHRoZSB0aW1pbmcuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrX3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9ja191bml0dGVz
dC5weQppbmRleCBhOTBjNjBkY2UxOWVmN2Y0YTVkYWM4MjdiYjJhZTU1MmRmM2EyNGMyLi5hNTk4
MzMyMGEyNWYzN2YwZjhkMTI0ZGMyODc4MTA1NWM5MmYyMTY2IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21v
Y2tfdW5pdHRlc3QucHkKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW1wb3J0IG9zCiBpbXBvcnQgcmUK
LWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiAKIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgZmlsZXN5c3RlbV9tb2NrCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3Vu
aXR0ZXN0LnB5CmluZGV4IDA3MTgzMTczYTUyNmJiNDUwNWNhYTU3ZjQxN2JmN2EzNGI5NWVlMGEu
LjI2Mzg5ZTc4YjY1M2MyZTU1NTMwY2U4ZDBhMWVmMDI4N2ZkNjQ0OTkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3Vu
aXR0ZXN0LnB5CkBAIC0zNSw3ICszNSw3IEBAIGltcG9ydCBvcwogaW1wb3J0IHN0YXQKIGltcG9y
dCBzeXMKIGltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3Qy
IGFzIHVuaXR0ZXN0CiAKIGZyb20gZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQogCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHNfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHNf
dW5pdHRlc3QucHkKaW5kZXggNmQ3Y2M0ZGE0ZjQyNDczZjg4MTkzOGEwY2Q0YTM4NTJlMzIxZmQy
Mi4uMjUyZWJmNGNjMjQ0YjU5YjljNTAyMzQzYWJlODM4NTc3Y2ViMDU3NCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2xvZ3V0aWxzX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d1dGlsc191bml0
dGVzdC5weQpAQCAtMjQsNyArMjQsNyBAQAogCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCi1p
bXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmxvZ3Rlc3RpbmcgaW1wb3J0IExvZ1Rlc3RpbmcKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5sb2d0ZXN0aW5nIGltcG9ydCBUZXN0TG9nU3RyZWFtCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vb3V0cHV0Y2FwdHVy
ZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRw
dXRjYXB0dXJlX3VuaXR0ZXN0LnB5CmluZGV4IGRhNDM0N2M4ZDEwOGIzNTQ3MDlmZGIyZWNjMDc1
NTA5MjI4NTMyODguLjdlZjJlMjQ3YTEwNmQ5OGY0OTc3MzZkYWIwMWMwMDg0ZDBhNThmYTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXRjYXB0
dXJlX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9vdXRwdXRjYXB0dXJlX3VuaXR0ZXN0LnB5CkBAIC0yMSw3ICsyMSw3IEBACiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKIGltcG9ydCBsb2dnaW5nCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIg
YXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUg
aW1wb3J0IE91dHB1dENhcHR1cmUKIApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBPdXRwdXRDYXB0
dXJlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGFjdHVhbF9zdGRvdXQsIGFjdHVh
bF9zdGRlcnIsIGFjdHVhbF9sb2dzID0gc2VsZi5vdXRwdXQucmVzdG9yZV9vdXRwdXQoKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBhY3R1YWxfc3Rkb3V0KQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCcnLCBhY3R1YWxfc3RkZXJyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4
cGVjdGVkX2xvZ3MsIGFjdHVhbF9sb2dzKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVx
dWFsKGV4cGVjdGVkX2xvZ3MsIGFjdHVhbF9sb2dzKQogCiAgICAgZGVmIHRlc3RfaW5pdGlhbF9s
b2dfbGV2ZWwoc2VsZik6CiAgICAgICAgIHNlbGYub3V0cHV0LmNhcHR1cmVfb3V0cHV0KCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXR0ZWVf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vb3V0cHV0
dGVlX3VuaXR0ZXN0LnB5CmluZGV4IDZhNTA5ZjBjMjE5YWNlNGJlZDhlZjExMzQxODM0N2EzOWE3
ZDczMTkuLjhkMDY5MTZmOGI1MDA0YjZiYzBkODAyNjlhOWQzOGFhNDdlMzVhNDIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXR0ZWVfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL291dHB1dHRl
ZV91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQg
U3RyaW5nSU8KLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAog
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0dGVlIGltcG9ydCBUZWUsIE91dHB1
dFRlZQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
cGF0aF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9w
YXRoX3VuaXR0ZXN0LnB5CmluZGV4IDdhNzE5NTg0ZGY0ODE1MmYzZDFjZWExOWRlMGIxMDUzMTk4
YjY2NDcuLjExODU0NmU2OGM0NmRmMGI0OGYzOWE3MDJjNDM0OTExYjdhN2M5NmIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wYXRoX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wYXRoX3VuaXR0ZXN0
LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1p
bXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIGltcG9ydCBzeXMK
IAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5c3RlbUhv
c3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm9fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vcGxhdGZvcm1pbmZvX3VuaXR0ZXN0LnB5CmluZGV4IDZiNjcxZTJlZWIzNGE2Yjg3NTVlODMw
NTE1NDYxNDUyZmFkNjU4MmMuLmJkYjBmODY2MTRkOTg0OTFmMTczYWEyZTJkNGU4Mzc2YWY0M2Rm
ODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm9fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBAQAogCiBpbXBv
cnQgcGxhdGZvcm0KIGltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0
MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBFeGVjdXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9j
ayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZSwgTW9ja0V4ZWN1dGl2ZTIKQEAgLTc5LDEyICs3OSwxMiBA
QCBjbGFzcyBUZXN0UGxhdGZvcm1JbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnROb3RFcXVhbHMoaW5mby5vc192ZXJzaW9uLCAnJykKICAgICAgICAgc2VsZi5hc3Nl
cnROb3RFcXVhbHMoaW5mby5kaXNwbGF5X25hbWUoKSwgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShpbmZvLmlzX21hYygpIG9yIGluZm8uaXNfd2luKCkgb3IgaW5mby5pc19saW51eCgpIG9y
IGluZm8uaXNfZnJlZWJzZCgpKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFscyhpbmZvLnRl
cm1pbmFsX3dpZHRoKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKGluZm8u
dGVybWluYWxfd2lkdGgoKSkKIAogICAgICAgICBpZiBpbmZvLmlzX21hYygpOgogICAgICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGluZm8udG90YWxfYnl0ZXNfbWVtb3J5KCkgPiAwKQogICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmZvLnRvdGFsX2J5dGVzX21l
bW9yeSgpLCBOb25lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoaW5mby50b3RhbF9i
eXRlc19tZW1vcnkoKSkKIAogICAgIGRlZiB0ZXN0X29zX25hbWVfYW5kX3dyYXBwZXJzKHNlbGYp
OgogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2xpbnV4MicpKQpAQCAt
MTcyLDEwICsxNzIsMTAgQEAgY2xhc3MgVGVzdFBsYXRmb3JtSW5mbyh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mby50b3RhbF9ieXRlc19tZW1vcnkoKSwg
MTIzNCkKIAogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ3dpbjMyJywg
dHVwbGUoWzYsIDEsIDc2MDBdKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mby50b3Rh
bF9ieXRlc19tZW1vcnkoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoaW5mby50
b3RhbF9ieXRlc19tZW1vcnkoKSkKIAogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFr
ZV9zeXMoJ2xpbnV4MicpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZm8udG90YWxfYnl0
ZXNfbWVtb3J5KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGluZm8udG90YWxf
Ynl0ZXNfbWVtb3J5KCkpCiAKICAgICAgICAgaW5mbyA9IHNlbGYubWFrZV9pbmZvKGZha2Vfc3lz
KCdmcmVlYnNkOScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZm8udG90YWxfYnl0ZXNf
bWVtb3J5KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGluZm8udG90YWxfYnl0
ZXNfbWVtb3J5KCkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vcHJvZmlsZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vcHJvZmlsZXJfdW5pdHRlc3QucHkKaW5kZXggZWQ4NTY3ZmJmYTA1MDk1MDNiMzAx
Yzk3ZGZmNmJhZmJkOTBmYjk0ZS4uMTdiZTZkYjQzYTEzMmQwNDMzNjZiZTk2ZDIyOGY0M2QyZjdi
MmY5NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3By
b2ZpbGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9wcm9maWxlcl91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFz
IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5wbGF0Zm9ybWluZm9fbW9j
ayBpbXBvcnQgTW9ja1BsYXRmb3JtSW5mbwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5
c3RlbWhvc3RfbW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlsc191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlsc191bml0dGVzdC5w
eQppbmRleCA2MjVhY2YyYjNiM2YzMTQ5MmI2M2Q4Y2EwODYxODI1Y2Q5NWRkMjY2Li4zMDUwYWRj
OTkxZWI2MTI2NzJhODQ4M2M3OTg4N2ZlMjQyZmRjYzVlIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3RhY2tfdXRpbHNfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N0YWNrX3V0aWxzX3VuaXR0ZXN0
LnB5CkBAIC0yNyw3ICsyNyw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBzeXMKLWltcG9y
dCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IG91dHB1dGNhcHR1cmUKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbSBpbXBvcnQgc3RhY2tfdXRpbHMKQEAgLTQyLDExICs0MiwxMSBAQCBjbGFzcyBTdGFj
a1V0aWxzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfZmluZF90aHJlYWRf
c3RhY2tfZm91bmQoc2VsZik6CiAgICAgICAgIHRocmVhZF9pZCA9IGN1cnJlbnRfdGhyZWFkX2lk
KCkKICAgICAgICAgZm91bmRfc3RhY2sgPSBzdGFja191dGlscy5fZmluZF90aHJlYWRfc3RhY2so
dGhyZWFkX2lkKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGZvdW5kX3N0YWNrLCBOb25l
KQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShmb3VuZF9zdGFjaykKIAogICAgIGRlZiB0
ZXN0X2ZpbmRfdGhyZWFkX3N0YWNrX25vdF9mb3VuZChzZWxmKToKICAgICAgICAgZm91bmRfc3Rh
Y2sgPSBzdGFja191dGlscy5fZmluZF90aHJlYWRfc3RhY2soMCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChmb3VuZF9zdGFjaywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZm91
bmRfc3RhY2spCiAKICAgICBkZWYgdGVzdF9sb2dfdGhyZWFkX3N0YXRlKHNlbGYpOgogICAgICAg
ICBtc2dzID0gW10KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS91c2VyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL3VzZXJfdW5pdHRlc3QucHkKaW5kZXggYmQ4NmQyMjhmNTMyZTFiMmMwMDQ1ZWI4YjMxMjJj
Zjg5NTg4NjM3Ny4uNDk4MTBiMmUwNjFkNzM5OTg1YzhjMDRjMDNhOTJiN2ViZDAyMWUwMCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXJfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXJfdW5p
dHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVy
ZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXIgaW1wb3J0IFVzZXIKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS93b3Jrc3BhY2VfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vd29ya3NwYWNlX3Vu
aXR0ZXN0LnB5CmluZGV4IGVjYTM4NmFjMzM0ODM4MTdkZDdiZjAzOGY2Y2ZlY2NmNTc3MTEwZmMu
LjlmNDAwYzdkODVmMTM1MGIzMzIyYWJmZGNhOWNmZTM1NmQzNTA5YzEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS93b3Jrc3BhY2VfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3dvcmtzcGFjZV91bml0
dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lz
dGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0
cHV0Q2FwdHVyZQpAQCAtNjksNCArNjksNCBAQCBNT0NLIG91dHB1dCBvZiBjaGlsZCBwcm9jZXNz
CiAgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCk6CiAgICAgICAgICAgICAgICAg
c2VsZi5maWxlbmFtZSA9IHBhdGgKICAgICAgICAgYXJjaGl2ZSA9IE91dHB1dENhcHR1cmUoKS5h
c3NlcnRfb3V0cHV0cyhzZWxmLCB3b3Jrc3BhY2UuY3JlYXRlX3ppcCwgWyIvemlwL3BhdGgiLCAi
L3NvdXJjZS9wYXRoIiwgTW9ja1ppcEZpbGVdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3Mp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJjaGl2ZSwgTm9uZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRJc05vbmUoYXJjaGl2ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS96aXBmaWxlc2V0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL3ppcGZpbGVzZXRfdW5pdHRlc3QucHkKaW5kZXggOTE4ZTIzYTFh
NGQzMDA1MDAxMTljMGYwNWFlOWEyNjRmMjY2OGZmNy4uMWEwNjAzYzllY2Q2YTM0NzRhMzRiYTIz
MTUwZjIxMzgyNzQyMTA5MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL3ppcGZpbGVzZXRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL3ppcGZpbGVzZXRfdW5pdHRlc3QucHkKQEAgLTIzLDcgKzIzLDcg
QEAKIAogaW1wb3J0IHNodXRpbAogaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKK2lt
cG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIGltcG9ydCB6aXBmaWxlCiAKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aHJlYWQvbWVzc2FnZXB1
bXBfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aHJlYWQvbWVz
c2FnZXB1bXBfdW5pdHRlc3QucHkKaW5kZXggZjczMWRiMmIyMmYyMWVhYmYxYWU1NWQ0ZTViMDky
Y2VjYjc3NzJhZC4uMWE0Njc3MjMwMWI4NmRmNDEwZWI4NjQ1YzEzMjhjNjQzODMxOGU1NiAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGhyZWFkL21lc3NhZ2VwdW1w
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RocmVhZC9t
ZXNzYWdlcHVtcF91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVu
aXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnRocmVhZC5tZXNzYWdlcHVtcCBpbXBvcnQg
TWVzc2FnZVB1bXAsIE1lc3NhZ2VQdW1wRGVsZWdhdGUKIGZyb20gd2Via2l0cHkuY29tbW9uLnRo
cmVhZC50aHJlYWRlZG1lc3NhZ2VxdWV1ZSBpbXBvcnQgVGhyZWFkZWRNZXNzYWdlUXVldWUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RocmVhZC90aHJlYWRlZG1l
c3NhZ2VxdWV1ZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3Ro
cmVhZC90aHJlYWRlZG1lc3NhZ2VxdWV1ZV91bml0dGVzdC5weQppbmRleCBjYjY3YzFlODJlNGY3
YjQzMDQyYWRkMTVjZmE3NTc3YThmNWJhMzBmLi5kYmI4YTJlNDIwNjBhNmY0N2U1NWE3NzE4MmY2
NzM1ZTAwN2U0ODhjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90
aHJlYWQvdGhyZWFkZWRtZXNzYWdlcXVldWVfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vdGhyZWFkL3RocmVhZGVkbWVzc2FnZXF1ZXVlX3VuaXR0ZXN0LnB5
CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBv
cnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRw
eS5jb21tb24udGhyZWFkLnRocmVhZGVkbWVzc2FnZXF1ZXVlIGltcG9ydCBUaHJlYWRlZE1lc3Nh
Z2VRdWV1ZQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRj
aGxpc3QvYW1vdW50Y2hhbmdlZHBhdHRlcm5fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi93YXRjaGxpc3QvYW1vdW50Y2hhbmdlZHBhdHRlcm5fdW5pdHRlc3QucHkK
aW5kZXggN2FlNDVmYTNmODU3OWM5ZmMxOTI4Nzc0OGNlYTY3NzYxNDk1ZmM3Yi4uYjIyMmQzYTUw
MzIxYjNhMGQxNjE1MDkyZWFlOTlmNDQwYTU3N2JjMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vd2F0Y2hsaXN0L2Ftb3VudGNoYW5nZWRwYXR0ZXJuX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC9hbW91bnRj
aGFuZ2VkcGF0dGVybl91bml0dGVzdC5weQpAQCAtMzEsNyArMzEsNyBAQAogCiAKIGltcG9ydCBy
ZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIAogZnJv
bSB3ZWJraXRweS5jb21tb24ud2F0Y2hsaXN0LmFtb3VudGNoYW5nZWRwYXR0ZXJuIGltcG9ydCBB
bW91bnRDaGFuZ2VkUGF0dGVybgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vd2F0Y2hsaXN0L2NoYW5nZWRsaW5lcGF0dGVybl91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC9jaGFuZ2VkbGluZXBhdHRlcm5fdW5pdHRl
c3QucHkKaW5kZXggMWYyYWVkYTIzN2E5MjZhYWVjNjA1MjU0N2YzMjQ1ODUwYmI2ZDRmZS4uMmY1
ZmQ2OGJlYjVjZDcxMTc4OTRjZTYwNzIzOTE2N2Q3MDEwNmE1MSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vd2F0Y2hsaXN0L2NoYW5nZWRsaW5lcGF0dGVybl91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3QvY2hh
bmdlZGxpbmVwYXR0ZXJuX3VuaXR0ZXN0LnB5CkBAIC0yOSw3ICsyOSw3IEBACiAnJydVbml0IHRl
c3RzIGZvciBjaGFuZ2VkbGluZXBhdHRlcm4ucHkuJycnCiAKIGltcG9ydCByZQotaW1wb3J0IHVu
aXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIAogZnJvbSB3ZWJraXRweS5j
b21tb24ud2F0Y2hsaXN0LmNoYW5nZWRsaW5lcGF0dGVybiBpbXBvcnQgQ2hhbmdlZExpbmVQYXR0
ZXJuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3Qv
ZmlsZW5hbWVwYXR0ZXJuX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vd2F0Y2hsaXN0L2ZpbGVuYW1lcGF0dGVybl91bml0dGVzdC5weQppbmRleCAwYWZkZjMwMDU5
NzY1OWMwNWE2NzBlODk0NDNkNWZmMmI3ZTFkODA4Li4yYjUxZGQ2OGZmYjVkNzAzZGNjYjRlZTNl
YjNmYjQzZTI5ODNiOTBlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi93YXRjaGxpc3QvZmlsZW5hbWVwYXR0ZXJuX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC9maWxlbmFtZXBhdHRlcm5fdW5pdHRlc3QucHkK
QEAgLTI3LDcgKzI3LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IHJlCi1pbXBvcnQgdW5p
dHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi53YXRjaGxpc3QuZmlsZW5hbWVwYXR0ZXJuIGltcG9ydCBGaWxlbmFtZVBhdHRlcm4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC93YXRjaGxp
c3RfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3Qv
d2F0Y2hsaXN0X3VuaXR0ZXN0LnB5CmluZGV4IDY3ZmYzYjAxYWNmYTUyNmE2MmI3OTI2MTlhOTc5
NmVlYzA0N2U5NzMuLmRkN2IwODNlYTI3YTU4NzIyMjcxMjZjNzg0MzI0Yjc3MGQ4MjJhZjYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC93YXRjaGxp
c3RfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vd2F0Y2hs
aXN0L3dhdGNobGlzdF91bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBAQAogCiAnJydVbml0IHRl
c3RzIGZvciB3YXRjaGxpc3QucHkuJycnCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0
ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5kaWZmX3Rl
c3RfZGF0YSBpbXBvcnQgRElGRl9URVNUX0RBVEEKIGZyb20gd2Via2l0cHkuY29tbW9uLndhdGNo
bGlzdC53YXRjaGxpc3RwYXJzZXIgaW1wb3J0IFdhdGNoTGlzdFBhcnNlcgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vd2F0Y2hsaXN0L3dhdGNobGlzdHJ1bGVfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3Qvd2F0Y2hs
aXN0cnVsZV91bml0dGVzdC5weQppbmRleCA5MmFhZjM0YWIxODdhNzgxNTc5ZmQ1NzRhYjEyYjli
N2Q1NTM3NTI0Li5kOTI2ODg3ZTU2YWRhYTEwZDJiMzJiZDU3ODU1YjNmNGU0YTk0MDc4IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3Qvd2F0Y2hsaXN0
cnVsZV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRj
aGxpc3Qvd2F0Y2hsaXN0cnVsZV91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVz
dAogZnJvbSB3ZWJraXRweS5jb21tb24ud2F0Y2hsaXN0LndhdGNobGlzdHJ1bGUgaW1wb3J0IFdh
dGNoTGlzdFJ1bGUKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9y
dW5uZXJfdW5pdHRlc3QucHkKaW5kZXggYzg2ZTlhMjk5MWRkODIzZjdiZWJiMGNhNjRlMTQxZTky
OTg2ZmJhMy4uMzYyNzQ3ZGU0Y2M4MTExYzc0Mzg5N2I0ZGM1OTcxMTM2OGM2MTIxNiAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5
b3V0X3Rlc3RfcnVubmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lcl91bml0dGVzdC5weQpA
QCAtMjcsNyArMjcsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0
IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHku
Y29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5zeXN0ZW1ob3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxl
cnMvbWFuYWdlcl91bml0dGVzdC5weQppbmRleCBhYWQyYjMwODcyODQwMjIxMGYxMjQxNGYwZmYw
NTVlMGQzOGE3NjkwLi40YTgxNTQ4NzhiYjcyMjU4NmU4MDc4NjIzOWE3ZTBjMjkxNTMwODA2IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKQEAgLTMxLDcgKzMxLDcgQEAK
IAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0
ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0
IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5tYW5hZ2Vy
IGltcG9ydCBNYW5hZ2VyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93
cml0ZXJfdW5pdHRlc3QucHkKaW5kZXggM2EyZWYzZDFhNzgzYTA1Y2UxZDRhNTExOWE3NGViYjY1
YzBiMmU0OC4uNDExNjU5ODhiZDk1MTI1YzU4MjhkZmJhNzdlZWUxMDZiZTIzNDA5MyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVz
dF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRlcl91bml0dGVzdC5weQpA
QCAtMjMsNyArMjMsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0
IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHku
Y29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLmNvbnRyb2xsZXJzIGltcG9ydCB0ZXN0X3Jlc3VsdF93cml0ZXIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2pzb25fcmVz
dWx0c19nZW5lcmF0b3JfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX3Jlc3VsdHNfZ2VuZXJhdG9yX3VuaXR0ZXN0LnB5
CmluZGV4IGM1YzJiMjRlNWQ4NjdkNTlmYjFjZDdmYTIzOGU0YjkxM2FjZjI3MDYuLmZmZDdmMjA5
MTBkNTAzZWJlMzliOGQxOGMzNmJlNjFkODFmZjJkMTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2pzb25fcmVzdWx0c19nZW5l
cmF0b3JfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvanNvbl9yZXN1bHRzX2dlbmVyYXRvcl91bml0dGVzdC5weQpAQCAt
MjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVu
aXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiBpbXBvcnQganNvbgogaW1wb3J0
IG9wdHBhcnNlCiBpbXBvcnQgcmFuZG9tCkBAIC0xMjMsMTIgKzEyMywxMiBAQCBjbGFzcyBKU09O
R2VuZXJhdG9yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICMgQWxpYXNpbmcgdG8g
YSBzaG9ydCBuYW1lIGZvciBiZXR0ZXIgYWNjZXNzIHRvIGl0cyBjb25zdGFudHMuCiAgICAgICAg
IEpSRyA9IGpzb25fcmVzdWx0c19nZW5lcmF0b3IuSlNPTlJlc3VsdHNHZW5lcmF0b3JCYXNlCiAK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKEpSRy5WRVJTSU9OX0tFWSBpbiBqc29uKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoc2VsZi5idWlsZGVyX25hbWUgaW4ganNvbikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRJbihKUkcuVkVSU0lPTl9LRVksIGpzb24pCisgICAgICAgIHNlbGYuYXNzZXJ0SW4o
c2VsZi5idWlsZGVyX25hbWUsIGpzb24pCiAKICAgICAgICAgYnVpbGRpbmZvID0ganNvbltzZWxm
LmJ1aWxkZXJfbmFtZV0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKEpSRy5GSVhBQkxFIGluIGJ1
aWxkaW5mbykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKEpSRy5URVNUUyBpbiBidWlsZGluZm8p
CisgICAgICAgIHNlbGYuYXNzZXJ0SW4oSlJHLkZJWEFCTEUsIGJ1aWxkaW5mbykKKyAgICAgICAg
c2VsZi5hc3NlcnRJbihKUkcuVEVTVFMsIGJ1aWxkaW5mbykKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsZW4oYnVpbGRpbmZvW0pSRy5CVUlMRF9OVU1CRVJTXSksIG51bV9ydW5zKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkaW5mb1tKUkcuQlVJTERfTlVNQkVSU11bMF0sIHNlbGYu
YnVpbGRfbnVtYmVyKQogCkBAIC0xODEsNyArMTgxLDcgQEAgY2xhc3MgSlNPTkdlbmVyYXRvclRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBub2RlcyA9IHBhdGguc3BsaXQoIi8iKQog
ICAgICAgICBzdWJfdHJpZSA9IHRyaWUKICAgICAgICAgZm9yIG5vZGUgaW4gbm9kZXM6Ci0gICAg
ICAgICAgICBzZWxmLmFzc2VydFRydWUobm9kZSBpbiBzdWJfdHJpZSkKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0SW4obm9kZSwgc3ViX3RyaWUpCiAgICAgICAgICAgICBzdWJfdHJpZSA9IHN1Yl90
cmllW25vZGVdCiAgICAgICAgIHJldHVybiBzdWJfdHJpZQogCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9saW50X3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGludF90ZXN0X2V4
cGVjdGF0aW9uc191bml0dGVzdC5weQppbmRleCAzMmVhOGI5Y2QxYjljOTRlZDlhNDJlMTUxMjgy
ZTk1MWRhZjQxYmQzLi44OWFkZTE5MzMxMGJmMDE1YWUzZDY4YTg3MGUwNjMyZjY1M2ZlZTIyIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9saW50X3Rlc3Rf
ZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xpbnRfdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTI4LDcgKzI4
LDcgQEAKIAogaW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgU3RyaW5nSU8KLWltcG9ydCB1bml0dGVz
dAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5o
b3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cyBpbXBv
cnQgbGludF90ZXN0X2V4cGVjdGF0aW9ucwpAQCAtMTAwLDcgKzEwMCw3IEBAIGNsYXNzIExpbnRU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmVzID0gbGludF90ZXN0X2V4cGVjdGF0
aW9ucy5saW50KGhvc3QsIG9wdGlvbnMsIGxvZ2dpbmdfc3RyZWFtKQogCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocmVzLCAwKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ0xpbnQgc3VjY2Vl
ZGVkJyBpbiBsb2dnaW5nX3N0cmVhbS5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydElu
KCdMaW50IHN1Y2NlZWRlZCcsIGxvZ2dpbmdfc3RyZWFtLmdldHZhbHVlKCkpCiAKICAgICBkZWYg
dGVzdF9saW50X3Rlc3RfZmlsZXNfX2Vycm9ycyhzZWxmKToKICAgICAgICAgb3B0aW9ucyA9IG9w
dHBhcnNlLlZhbHVlcyh7J3BsYXRmb3JtJzogJ3Rlc3QnLCAnZGVidWdfcnd0X2xvZ2dpbmcnOiBG
YWxzZX0pCkBAIC0xMTgsOSArMTE4LDkgQEAgY2xhc3MgTGludFRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICByZXMgPSBsaW50X3Rlc3RfZXhwZWN0YXRpb25zLmxpbnQoaG9zdCwgb3B0
aW9ucywgbG9nZ2luZ19zdHJlYW0pCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIC0x
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ0xpbnQgZmFpbGVkJyBpbiBsb2dnaW5nX3N0cmVh
bS5nZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2ZvbzoxJyBpbiBsb2dnaW5n
X3N0cmVhbS5nZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2JhcjoxJyBpbiBs
b2dnaW5nX3N0cmVhbS5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEluKCdMaW50IGZh
aWxlZCcsIGxvZ2dpbmdfc3RyZWFtLmdldHZhbHVlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4o
J2ZvbzoxJywgbG9nZ2luZ19zdHJlYW0uZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJ
bignYmFyOjEnLCBsb2dnaW5nX3N0cmVhbS5nZXR2YWx1ZSgpKQogCiAKIGNsYXNzIE1haW5UZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRpb25fdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9jb25maWd1cmF0aW9u
X3VuaXR0ZXN0LnB5CmluZGV4IGVjOTljZjZiNDdlZGM1ZDIwNGIyZDE0YzZjMmM2NmYxMjExNzM1
YTYuLjFhN2QzNzVmMjFkZjJhYmQzZmI5M2YyOWQzNWU0YmM1NmQzZDRiNDkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3Vy
YXRpb25fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbl91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBA
QAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBv
cnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1v
ZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0ICoKIApAQCAtNzEsMTUgKzcxLDE1IEBAIGNs
YXNzIFRlc3RDb25maWd1cmF0aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRl
c3RfaGFzaChzZWxmKToKICAgICAgICAgY29uZmlnX2RpY3QgPSB7fQogICAgICAgICBjb25maWdf
ZGljdFtUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnKV0gPSBUcnVlCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3Jl
bGVhc2UnKSBpbiBjb25maWdfZGljdCkKKyAgICAgICAgc2VsZi5hc3NlcnRJbihUZXN0Q29uZmln
dXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnKSwgY29uZmlnX2RpY3QpCiAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShjb25maWdfZGljdFtUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2Jywg
J3JlbGVhc2UnKV0pCiAKICAgICAgICAgZGVmIHF1ZXJ5X3Vua25vd25fa2V5KCk6CiAgICAgICAg
ICAgICByZXR1cm4gY29uZmlnX2RpY3RbVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdk
ZWJ1ZycpXQogCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBxdWVyeV91bmtu
b3duX2tleSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFRlc3RDb25maWd1cmF0aW9uKCd4cCcs
ICd4ODYnLCAncmVsZWFzZScpIGluIGNvbmZpZ19kaWN0KQotICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAnZGVidWcnKSBpbiBjb25maWdfZGlj
dCkKKyAgICAgICAgc2VsZi5hc3NlcnRJbihUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2Jywg
J3JlbGVhc2UnKSwgY29uZmlnX2RpY3QpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oVGVzdENv
bmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdkZWJ1ZycpLCBjb25maWdfZGljdCkKICAgICAgICAg
Y29uZmlnc19saXN0ID0gW1Rlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScp
LCBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ2RlYnVnJyksIFRlc3RDb25maWd1cmF0
aW9uKCd4cCcsICd4ODYnLCAnZGVidWcnKV0KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4o
Y29uZmlnc19saXN0KSwgMykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2V0KGNvbmZp
Z3NfbGlzdCkpLCAyKQpAQCAtMTAzLDcgKzEwMyw3IEBAIGNsYXNzIFNwZWNpZmllclNvcnRlclRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfaW5pdChzZWxmKToKICAgICAg
ICAgc29ydGVyID0gU3BlY2lmaWVyU29ydGVyKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
b3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcignY29udHJvbCcpLCBOb25lKQorICAgICAgICBz
ZWxmLmFzc2VydElzTm9uZShzb3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcignY29udHJvbCcp
KQogICAgICAgICBzb3J0ZXIgPSBTcGVjaWZpZXJTb3J0ZXIoc2VsZi5fYWxsX3Rlc3RfY29uZmln
dXJhdGlvbnMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVyLmNhdGVnb3J5X2Zvcl9z
cGVjaWZpZXIoJ3hwJyksICd2ZXJzaW9uJykKICAgICAgICAgc29ydGVyID0gU3BlY2lmaWVyU29y
dGVyKHNlbGYuX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zLCBNT0NLX01BQ1JPUykKQEAgLTExMSw3
ICsxMTEsNyBAQCBjbGFzcyBTcGVjaWZpZXJTb3J0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
IAogICAgIGRlZiB0ZXN0X2FkZF9zcGVjaWZpZXIoc2VsZik6CiAgICAgICAgIHNvcnRlciA9IFNw
ZWNpZmllclNvcnRlcigpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVyLmNhdGVnb3J5
X2Zvcl9zcGVjaWZpZXIoJ2NvbnRyb2wnKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05v
bmUoc29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ2NvbnRyb2wnKSkKICAgICAgICAgc29y
dGVyLmFkZF9zcGVjaWZpZXIoJ3ZlcnNpb24nLCAnY29udHJvbCcpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ2NvbnRyb2wnKSwgJ3ZlcnNp
b24nKQogICAgICAgICBzb3J0ZXIuYWRkX3NwZWNpZmllcigndmVyc2lvbicsICdvbmUnKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3Rf
ZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CmluZGV4IGVhZTI1NDM3
NTRkYjI5OWU3MjQ4MDQ3M2I0YjAwZDM0MzEwY2IzMmMuLjk2NmE0YTY4ZWZlMTU5YzY1ZWY2MWFk
MDgwOTYwNzQwZTc3YWRmNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNf
dW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0CiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3Rf
ZmFpbHVyZXNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9mYWlsdXJlc191bml0dGVzdC5weQppbmRleCA3NGVmOGNiYjQ0NmExNzU0
MjQwYWVlNGI4MmI5NTE3M2VlNTcwMjA1Li5lYTlhMmU4MmRjNTZlMTg1MjAyMWQzMDMxMjBjNzhk
NzYwOTg2YWZlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9mYWlsdXJlc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlc191bml0dGVzdC5weQpAQCAt
MjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVu
aXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkubGF5
b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2ZhaWx1cmVzIGltcG9ydCAqCiAKQEAgLTM2LDcgKzM2LDcg
QEAgY2xhc3MgVGVzdEZhaWx1cmVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGZh
aWx1cmVfb2JqID0gY2xzKCkKICAgICAgICAgcyA9IGZhaWx1cmVfb2JqLmR1bXBzKCkKICAgICAg
ICAgbmV3X2ZhaWx1cmVfb2JqID0gVGVzdEZhaWx1cmUubG9hZHMocykKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGlzaW5zdGFuY2UobmV3X2ZhaWx1cmVfb2JqLCBjbHMpKQorICAgICAgICBzZWxm
LmFzc2VydElzSW5zdGFuY2UobmV3X2ZhaWx1cmVfb2JqLCBjbHMpCiAKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmYWlsdXJlX29iaiwgbmV3X2ZhaWx1cmVfb2JqKQogCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rl
c3RfcmVzdWx0c191bml0dGVzdC5weQppbmRleCA4MGQ4YTQ3NGUyZTVkNDc1ZjA5NDRmYTQwMjA3
NjgwN2VlNTA1MGE5Li5lMWJiMmYyN2EyOTM3OTNhMTUwZTlkYTMwMTNmNWFjNWViNzY0NGVkIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9yZXN1bHRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL21vZGVscy90ZXN0X3Jlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAK
ICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0
IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2Rl
bHMudGVzdF9yZXN1bHRzIGltcG9ydCBUZXN0UmVzdWx0CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xh
c3MgVGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X3J1bl90aW1lPTEuMSkKICAgICAgICAgcyA9IHJlc3VsdC5kdW1wcygp
CiAgICAgICAgIG5ld19yZXN1bHQgPSBUZXN0UmVzdWx0LmxvYWRzKHMpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShpc2luc3RhbmNlKG5ld19yZXN1bHQsIFRlc3RSZXN1bHQpKQorICAgICAgICBz
ZWxmLmFzc2VydElzSW5zdGFuY2UobmV3X3Jlc3VsdCwgVGVzdFJlc3VsdCkKIAogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG5ld19yZXN1bHQsIHJlc3VsdCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9ydW5fcmVzdWx0c191bml0dGVzdC5weQppbmRleCBkMzM3YzU3YjA1ZjZlZjU1OTIxZjk0NmMz
NTQyZjYyZmRhOTM4OTgwLi5kYTM1NDUyYjFmYzRlODQxYWVmZDU2OTE5M2Y4NzNmMDE0NTA5ZThk
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMv
dGVzdF9ydW5fcmVzdWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0c191bml0dGVzdC5weQpAQCAtMjYs
NyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0
ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9u
Lmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1v
ZGVscyBpbXBvcnQgdGVzdF9leHBlY3RhdGlvbnMKQEAgLTk3LDIyICs5NywyMiBAQCBjbGFzcyBJ
bnRlcnByZXRUZXN0RmFpbHVyZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0ZXN0X2RpY3RbJ2ltYWdlX2RpZmZfcGVyY2VudCddLCAwLjQyKQogCiAg
ICAgICAgIHRlc3RfZGljdCA9IHRlc3RfcnVuX3Jlc3VsdHMuX2ludGVycHJldF90ZXN0X2ZhaWx1
cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2goc2VsZi5wb3J0LmFic3Bh
dGhfZm9yX3Rlc3QoJ2Zvby9yZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnKSldKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUoJ2ltYWdlX2RpZmZfcGVyY2VudCcgaW4gdGVzdF9kaWN0KQorICAgICAgICBz
ZWxmLmFzc2VydEluKCdpbWFnZV9kaWZmX3BlcmNlbnQnLCB0ZXN0X2RpY3QpCiAKICAgICAgICAg
dGVzdF9kaWN0ID0gdGVzdF9ydW5fcmVzdWx0cy5faW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMoW3Rl
c3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaERpZE5vdE9jY3VyKHNlbGYucG9ydC5h
YnNwYXRoX2Zvcl90ZXN0KCdmb28vcmVmdGVzdC1leHBlY3RlZC1taXNtYXRjaC5odG1sJykpXSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGVzdF9kaWN0KSwgMCkKIAogICAgICAgICB0
ZXN0X2RpY3QgPSB0ZXN0X3J1bl9yZXN1bHRzLl9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhbdGVz
dF9mYWlsdXJlcy5GYWlsdXJlTWlzc2luZ0F1ZGlvKCldKQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUoJ2lzX21pc3NpbmdfYXVkaW8nIGluIHRlc3RfZGljdCkKKyAgICAgICAgc2VsZi5hc3NlcnRJ
bignaXNfbWlzc2luZ19hdWRpbycsIHRlc3RfZGljdCkKIAogICAgICAgICB0ZXN0X2RpY3QgPSB0
ZXN0X3J1bl9yZXN1bHRzLl9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhbdGVzdF9mYWlsdXJlcy5G
YWlsdXJlTWlzc2luZ1Jlc3VsdCgpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdpc19taXNz
aW5nX3RleHQnIGluIHRlc3RfZGljdCkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignaXNfbWlzc2lu
Z190ZXh0JywgdGVzdF9kaWN0KQogCiAgICAgICAgIHRlc3RfZGljdCA9IHRlc3RfcnVuX3Jlc3Vs
dHMuX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVNaXNzaW5n
SW1hZ2UoKV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnaXNfbWlzc2luZ19pbWFnZScgaW4g
dGVzdF9kaWN0KQorICAgICAgICBzZWxmLmFzc2VydEluKCdpc19taXNzaW5nX2ltYWdlJywgdGVz
dF9kaWN0KQogCiAgICAgICAgIHRlc3RfZGljdCA9IHRlc3RfcnVuX3Jlc3VsdHMuX2ludGVycHJl
dF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVNaXNzaW5nSW1hZ2VIYXNoKCld
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2lzX21pc3NpbmdfaW1hZ2UnIGluIHRlc3RfZGlj
dCkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignaXNfbWlzc2luZ19pbWFnZScsIHRlc3RfZGljdCkK
IAogCiBjbGFzcyBTdW1tYXJpemVkUmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAt
MTIyLDcgKzEyMiw3IEBAIGNsYXNzIFN1bW1hcml6ZWRSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9ub19zdm5fcmV2aXNpb24oc2VsZik6CiAgICAgICAgIHN1
bW1hcnkgPSBzdW1tYXJpemVkX3Jlc3VsdHMoc2VsZi5wb3J0LCBleHBlY3RlZD1GYWxzZSwgcGFz
c2luZz1GYWxzZSwgZmxha3k9RmFsc2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgncmV2aXNp
b24nIG5vdCBpbiBzdW1tYXJ5KQorICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdyZXZpc2lvbics
IHN1bW1hcnkpCiAKICAgICBkZWYgdGVzdF9zdm5fcmV2aXNpb24oc2VsZik6CiAgICAgICAgIHNl
bGYucG9ydC5fb3B0aW9ucy5idWlsZGVyX25hbWUgPSAnZHVtbXkgYnVpbGRlcicKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0
dGVzdC5weQppbmRleCAwZWM2YmU5NjUxNTRkMWQ3ZjEzY2I4ZDMyZTU2MDZmNmY0YTZlYzI5Li43
Njg1Njk1NDUzMWMzM2NjNWM2NjI4M2M0MjY2ZDg1ZjIzMjk3YTI5IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0
LnB5CkBAIC0zMCw3ICszMCw3IEBAIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3B0cGFyc2UKIGlt
cG9ydCBzeXMKIGltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRl
c3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUg
aW1wb3J0IEV4ZWN1dGl2ZSwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bSBpbXBvcnQgZXhlY3V0aXZlX21vY2sKQEAgLTU3LDcgKzU3LDcgQEAgY2xhc3MgUG9ydFRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZGVmYXVsdF9jaGlsZF9wcm9jZXNz
ZXMoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCi0gICAgICAgIHNlbGYu
YXNzZXJ0Tm90RXF1YWxzKHBvcnQuZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMoKSwgTm9uZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocG9ydC5kZWZhdWx0X2NoaWxkX3Byb2Nlc3Nlcygp
KQogCiAgICAgZGVmIHRlc3RfZm9ybWF0X3dkaWZmX291dHB1dF9hc19odG1sKHNlbGYpOgogICAg
ICAgICBvdXRwdXQgPSAiT1VUUFVUICVzICVzICVzIiAlIChQb3J0Ll9XRElGRl9ERUwsIFBvcnQu
X1dESUZGX0FERCwgUG9ydC5fV0RJRkZfRU5EKQpAQCAtMTgwLDExICsxODAsMTEgQEAgY2xhc3Mg
UG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgICMgQW5kIG1ha2Ugc3VyZSB3
ZSBhY3R1YWxseSBnZXQgZGlmZiBvdXRwdXQuCiAgICAgICAgIGRpZmYgPSBwb3J0LmRpZmZfdGV4
dCgnZm9vJywgJ2JhcicsICdleHAudHh0JywgJ2FjdC50eHQnKQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoJ2ZvbycgaW4gZGlmZikKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdiYXInIGluIGRp
ZmYpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnZXhwLnR4dCcgaW4gZGlmZikKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKCdhY3QudHh0JyBpbiBkaWZmKQotICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKCdub3N1Y2h0aGluZycgaW4gZGlmZikKKyAgICAgICAgc2VsZi5hc3NlcnRJbignZm9vJywg
ZGlmZikKKyAgICAgICAgc2VsZi5hc3NlcnRJbignYmFyJywgZGlmZikKKyAgICAgICAgc2VsZi5h
c3NlcnRJbignZXhwLnR4dCcsIGRpZmYpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2FjdC50eHQn
LCBkaWZmKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdub3N1Y2h0aGluZycsIGRpZmYpCiAK
ICAgICBkZWYgdGVzdF9zZXR1cF90ZXN0X3J1bihzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYu
bWFrZV9wb3J0KCkKQEAgLTE5Niw4ICsxOTYsOCBAQCBjbGFzcyBQb3J0VGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQuaG9zdC5maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShw
b3J0LmxheW91dF90ZXN0c19kaXIoKSArICcvY2FudmFzL3Rlc3QnLCAnJykKICAgICAgICAgcG9y
dC5ob3N0LmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHBvcnQubGF5b3V0X3Rlc3RzX2Rpcigp
ICsgJy9jc3MyLjEvdGVzdCcsICcnKQogICAgICAgICBkaXJzID0gcG9ydC50ZXN0X2RpcnMoKQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2NhbnZhcycgaW4gZGlycykKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKCdjc3MyLjEnIGluIGRpcnMpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2NhbnZh
cycsIGRpcnMpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2NzczIuMScsIGRpcnMpCiAKICAgICBk
ZWYgdGVzdF9za2lwcGVkX3BlcmZfdGVzdHMoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1h
a2VfcG9ydCgpCkBAIC0yMjMsNyArMjIzLDcgQEAgY2xhc3MgUG9ydFRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogCiAgICAgZGVmIHRlc3RfZ2V0X29wdGlvbl9fdW5zZXQoc2VsZik6CiAgICAgICAg
IHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5n
ZXRfb3B0aW9uKCdmb28nKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocG9ydC5n
ZXRfb3B0aW9uKCdmb28nKSkKIAogICAgIGRlZiB0ZXN0X2dldF9vcHRpb25fX2RlZmF1bHQoc2Vs
Zik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCkBAIC0zMjAsNyArMzIwLDcgQEAg
Y2xhc3MgUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2ZpbmRfd2l0
aF9za2lwcGVkX2RpcmVjdG9yaWVzKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3Bv
cnQod2l0aF90ZXN0cz1UcnVlKQogICAgICAgICB0ZXN0cyA9IHBvcnQudGVzdHMoWyd1c2Vyc2Ny
aXB0cyddKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3VzZXJzY3JpcHRzL3Jlc291cmNlcy9p
ZnJhbWUuaHRtbCcgbm90IGluIHRlc3RzKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluKCd1c2Vy
c2NyaXB0cy9yZXNvdXJjZXMvaWZyYW1lLmh0bWwnLCB0ZXN0cykKIAogICAgIGRlZiB0ZXN0X2Zp
bmRfd2l0aF9za2lwcGVkX2RpcmVjdG9yaWVzXzIoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxm
Lm1ha2VfcG9ydCh3aXRoX3Rlc3RzPVRydWUpCkBAIC00MzIsMjAgKzQzMiwyMCBAQCBjbGFzcyBQ
b3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfdGVzdHMoc2VsZik6CiAg
ICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCh3aXRoX3Rlc3RzPVRydWUpCiAgICAgICAgIHRl
c3RzID0gcG9ydC50ZXN0cyhbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdwYXNzZXMvdGV4
dC5odG1sJyBpbiB0ZXN0cykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCd2aXJ0dWFsL3Bhc3Nl
cy90ZXh0Lmh0bWwnIGluIHRlc3RzKQorICAgICAgICBzZWxmLmFzc2VydEluKCdwYXNzZXMvdGV4
dC5odG1sJywgdGVzdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3ZpcnR1YWwvcGFzc2VzL3Rl
eHQuaHRtbCcsIHRlc3RzKQogCiAgICAgICAgIHRlc3RzID0gcG9ydC50ZXN0cyhbJ3Bhc3Nlcydd
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3Bhc3Nlcy90ZXh0Lmh0bWwnIGluIHRlc3RzKQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3Bhc3Nlcy9wYXNzZXMvdGVzdC12aXJ0dWFsLXBhc3Nl
cy5odG1sJyBpbiB0ZXN0cykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgndmlydHVhbC9wYXNz
ZXMvdGV4dC5odG1sJyBpbiB0ZXN0cykKKyAgICAgICAgc2VsZi5hc3NlcnRJbigncGFzc2VzL3Rl
eHQuaHRtbCcsIHRlc3RzKQorICAgICAgICBzZWxmLmFzc2VydEluKCdwYXNzZXMvcGFzc2VzL3Rl
c3QtdmlydHVhbC1wYXNzZXMuaHRtbCcsIHRlc3RzKQorICAgICAgICBzZWxmLmFzc2VydE5vdElu
KCd2aXJ0dWFsL3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0cykKIAogICAgICAgICB0ZXN0cyA9IHBv
cnQudGVzdHMoWyd2aXJ0dWFsL3Bhc3NlcyddKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdw
YXNzZXMvdGV4dC5odG1sJyBpbiB0ZXN0cykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCd2aXJ0
dWFsL3Bhc3Nlcy90ZXN0LXZpcnR1YWwtcGFzc2VzLmh0bWwnIGluIHRlc3RzKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoJ3ZpcnR1YWwvcGFzc2VzL3Bhc3Nlcy90ZXN0LXZpcnR1YWwtcGFzc2Vz
Lmh0bWwnIGluIHRlc3RzKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCd2aXJ0dWFsL3Bhc3Nl
cy90ZXN0LXZpcnR1YWwtdmlydHVhbC9wYXNzZXMuaHRtbCcgaW4gdGVzdHMpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoJ3ZpcnR1YWwvcGFzc2VzL3ZpcnR1YWwvcGFzc2VzL3Rlc3QtdmlydHVh
bC1wYXNzZXMuaHRtbCcgaW4gdGVzdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ3Bhc3Nl
cy90ZXh0Lmh0bWwnLCB0ZXN0cykKKyAgICAgICAgc2VsZi5hc3NlcnRJbigndmlydHVhbC9wYXNz
ZXMvdGVzdC12aXJ0dWFsLXBhc3Nlcy5odG1sJywgdGVzdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0
SW4oJ3ZpcnR1YWwvcGFzc2VzL3Bhc3Nlcy90ZXN0LXZpcnR1YWwtcGFzc2VzLmh0bWwnLCB0ZXN0
cykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbigndmlydHVhbC9wYXNzZXMvdGVzdC12aXJ0dWFs
LXZpcnR1YWwvcGFzc2VzLmh0bWwnLCB0ZXN0cykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbign
dmlydHVhbC9wYXNzZXMvdmlydHVhbC9wYXNzZXMvdGVzdC12aXJ0dWFsLXBhc3Nlcy5odG1sJywg
dGVzdHMpCiAKICAgICBkZWYgdGVzdF9idWlsZF9wYXRoKHNlbGYpOgogICAgICAgICBwb3J0ID0g
c2VsZi5tYWtlX3BvcnQob3B0aW9ucz1vcHRwYXJzZS5WYWx1ZXMoeydidWlsZF9kaXJlY3Rvcnkn
OiAnL215LWJ1aWxkLWRpcmVjdG9yeS8nfSkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2J1aWxkZXJzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9idWlsZGVyc191bml0dGVzdC5weQppbmRl
eCA1OTk3ZjU0Y2VjZTAyNjhjYjEwNDdlZjE3MmY3NzZjMzk5YjkyODViLi43NzU1MWI5ODNiMmNh
NGFlYWNlZDIwZDE4N2VkNjQ3ODRkYWU0ODIzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2J1aWxkZXJzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYnVpbGRlcnNfdW5pdHRlc3QucHkK
QEAgLTI3LDcgKzI3LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IGJ1aWxkZXJzCi1pbXBv
cnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogCiBjbGFzcyBCdWls
ZGVyc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkX3VuaXR0ZXN0LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lk
X3VuaXR0ZXN0LnB5CmluZGV4IDJmZWE2NTgwYTVkOGQ2NGUyZmM3MGYxZWQxY2YyZjhlZjRjNDgz
MTMuLmYzNGJiY2QwMDM5NTczZWFhNjI1YzFlNjQxZGVhZThhMDVjNjYwYmYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9p
ZF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX2FuZHJvaWRfdW5pdHRlc3QucHkKQEAgLTI5LDcgKzI5LDcgQEAKIGltcG9y
dCBvcHRwYXJzZQogaW1wb3J0IFN0cmluZ0lPCiBpbXBvcnQgdGltZQotaW1wb3J0IHVuaXR0ZXN0
CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiBpbXBvcnQgc3lzCiAKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgZXhlY3V0aXZlX21vY2sKQEAgLTIzOSwxNSArMjM5LDE1
IEBAIGNsYXNzIENocm9taXVtQW5kcm9pZERyaXZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
CiAgICAgZGVmIHRlc3RfZHJ0X2NtZF9saW5lKHNlbGYpOgogICAgICAgICBjbWRfbGluZSA9IHNl
bGYuZHJpdmVyLl9kcnRfY21kX2xpbmUoVHJ1ZSwgWyctLWEnXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKCctLWEnIGluIGNtZF9saW5lKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJy0tY3Jl
YXRlLXN0ZGluLWZpZm8nIGluIGNtZF9saW5lKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJy0t
c2VwYXJhdGUtc3RkZXJyLWZpZm8nIGluIGNtZF9saW5lKQorICAgICAgICBzZWxmLmFzc2VydElu
KCctLWEnLCBjbWRfbGluZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignLS1jcmVhdGUtc3RkaW4t
ZmlmbycsIGNtZF9saW5lKQorICAgICAgICBzZWxmLmFzc2VydEluKCctLXNlcGFyYXRlLXN0ZGVy
ci1maWZvJywgY21kX2xpbmUpCiAKICAgICBkZWYgdGVzdF9yZWFkX3Byb21wdChzZWxmKToKICAg
ICAgICAgc2VsZi5kcml2ZXIuX3NlcnZlcl9wcm9jZXNzID0gZHJpdmVyX3VuaXR0ZXN0Lk1vY2tT
ZXJ2ZXJQcm9jZXNzKGxpbmVzPVsncm9vdEBhbmRyb2lkOi8gIyAnXSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLmRyaXZlci5fcmVhZF9wcm9tcHQodGltZS50aW1lKCkgKyAxKSwgTm9u
ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2VsZi5kcml2ZXIuX3JlYWRfcHJvbXB0KHRp
bWUudGltZSgpICsgMSkpCiAgICAgICAgIHNlbGYuZHJpdmVyLl9zZXJ2ZXJfcHJvY2VzcyA9IGRy
aXZlcl91bml0dGVzdC5Nb2NrU2VydmVyUHJvY2VzcyhsaW5lcz1bJyQgJ10pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5kcml2ZXIuX3JlYWRfcHJvbXB0KHRpbWUudGltZSgpICsgMSks
IE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYuZHJpdmVyLl9yZWFkX3Byb21w
dCh0aW1lLnRpbWUoKSArIDEpKQogCiAgICAgZGVmIHRlc3RfY29tbWFuZF9mcm9tX2RyaXZlcl9p
bnB1dChzZWxmKToKICAgICAgICAgZHJpdmVyX2lucHV0ID0gZHJpdmVyLkRyaXZlcklucHV0KCdm
b28vYmFyL3Rlc3QuaHRtbCcsIDEwLCAnY2hlY2tzdW0nLCBUcnVlKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eF91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fbGludXhfdW5pdHRlc3QucHkKaW5kZXggZWRiMWU2Mjk4OGQ1ZWNkOTUzODIwM2UwNDMzNzVm
ZmMxNTRjOGMyNC4uMzA4ZDAyZjkxZTg4OGI4YTcxZjc5ZTQ5YzM5NGYxYTRiYzZmZmExYyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9saW51eF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1
bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9y
dCBleGVjdXRpdmVfbW9jawogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3Rf
bW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3Qu
cHkKaW5kZXggYWZmMzc0MWQyZmIxMjk2Yzc1MmQ1YTI2MTRmMjhjMTMzMWNmMDA4MS4uYmYyZmY4
ZjhjOWZmMDcxMWM2YWVhMGZkYmI1Yjg2MmY4MDFiMDkwOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9t
YWNfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAog
CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBjaHJvbWl1bV9tYWMKIGZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IGNocm9taXVtX3BvcnRfdGVzdGNh
c2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CmluZGV4IDQxNDk4MWY4MmY4NTk5MzRlYjk4YjY1
NGFiZGRjZmM3MzhiNWMxOTAuLmM2YzUwZGZjMTkzNjBhMzI5MjMxMmM3ODNlNjM5MmZlM2I2MTRm
ODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNiBAQAogCiBpbXBv
cnQgU3RyaW5nSU8KIGltcG9ydCB0aW1lCi1pbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtIGltcG9ydCBsb2d0ZXN0aW5nCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUyCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fd2luX3VuaXR0ZXN0LnB5CmluZGV4IGI4ZjU5MjlhNmQ5NjM4MmI2NTM3Y2U3NDk3NzBhM2M5
NDA5ZmVmZjkuLjNjY2Y5NDA0NWU4N2ZhYzQyMjAwMDBjMGMxMDkxMTI4MGJiZjBjYjEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
d2luX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5CkBAIC0yNyw3ICsyNyw3IEBACiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKIGltcG9ydCBvcwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFz
IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgb3V0cHV0Y2Fw
dHVyZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBN
b2NrRXhlY3V0aXZlCkBAIC03NCw3ICs3NCw3IEBAIGNsYXNzIENocm9taXVtV2luVGVzdChjaHJv
bWl1bV9wb3J0X3Rlc3RjYXNlLkNocm9taXVtUG9ydFRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0
X3ZlcnNpb25zKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUocG9ydC5uYW1lKCkgaW4gKCdjaHJvbWl1bS13aW4teHAnLCAnY2hy
b21pdW0td2luLXdpbjcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbihwb3J0Lm5hbWUoKSwgKCdj
aHJvbWl1bS13aW4teHAnLCAnY2hyb21pdW0td2luLXdpbjcnKSkKIAogICAgICAgICBzZWxmLmFz
c2VydF9uYW1lKE5vbmUsICd4cCcsICdjaHJvbWl1bS13aW4teHAnKQogICAgICAgICBzZWxmLmFz
c2VydF9uYW1lKCdjaHJvbWl1bS13aW4nLCAneHAnLCAnY2hyb21pdW0td2luLXhwJykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY29uZmlnX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jb25m
aWdfdW5pdHRlc3QucHkKaW5kZXggMzRiY2M2OGE4NzFhZDdhOGI2MDUwNjdlMjgwM2Y1M2NjZDRl
NTFjYi4uMjdjODNlZWRjNzUxZWI5NjIyYjkyMGY3Mzg3MDFiNTMyMThkNzAwNyAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jb25maWdfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jb25m
aWdfdW5pdHRlc3QucHkKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW1wb3J0IG9zCiBpbXBvcnQgc3lz
Ci1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlLCBTY3JpcHRF
cnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBN
b2NrRXhlY3V0aXZlMgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9kcml2ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2RyaXZlcl91bml0dGVzdC5weQppbmRleCBmNjBkYzNkNDEyNTZiZWI5
Mzc1YThjMDRmZWU0Mjk1NTUwMzM3YzI0Li4zMjE3M2E4ODE3ZmZiMmQ2NjU1YjdlODYyMmFmMjhm
NWI3NDEzMTMzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2RyaXZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2RyaXZlcl91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5p
dHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1o
b3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZWZsX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9lZmxfdW5pdHRlc3QucHkKaW5kZXggOTRi
ZTQ4YmJhNWE2Njc2YTNhNzIwYzU1NDMyMzZjN2M1MTIzMmI0My4uNTAzYWZkYTI5M2QyNDk0OGJj
NzlkYjRhOWYwNzU3YmI0ODBhZmU1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9lZmxfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9lZmxfdW5pdHRlc3QucHkKQEAgLTI0LDcgKzI0LDcg
QEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1w
b3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5p
dHRlc3QucHkKaW5kZXggYTg3MDRmOWFlMWFmODNmNjhlMTVjMzgxMmM0OWIwMjU0YmM5ZGEzOS4u
MzYzYjdiOTk1MWFlNmZhODliNDdiYWEyMGFjZDBmMzJiYzU3OTdlNSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeV91
bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZy
b20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0CkBA
IC01NCw3ICs1NCw3IEBAIGNsYXNzIEZhY3RvcnlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICBkZWYgYXNzZXJ0X3BvcnQoc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9zX25hbWU9Tm9uZSwgb3Nf
dmVyc2lvbj1Ob25lLCBvcHRpb25zPU5vbmUsIGNscz1Ob25lKToKICAgICAgICAgaG9zdCA9IE1v
Y2tTeXN0ZW1Ib3N0KG9zX25hbWU9b3NfbmFtZSwgb3NfdmVyc2lvbj1vc192ZXJzaW9uKQogICAg
ICAgICBwb3J0ID0gZmFjdG9yeS5Qb3J0RmFjdG9yeShob3N0KS5nZXQocG9ydF9uYW1lLCBvcHRp
b25zPW9wdGlvbnMpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKHBvcnQsIGNs
cykpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShwb3J0LCBjbHMpCiAKICAgICBkZWYg
dGVzdF9tYWMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQocG9ydF9uYW1lPSdtYWMt
bGlvbicsIGNscz1tYWMuTWFjUG9ydCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGtfdW5pdHRlc3QucHkKaW5kZXggZGJiMTg1MjhmZDVm
MWZiYzI5YjkxZDUzYzgyNzIxOGZhNTYzNTVlMS4uODBkMzEyYWY1Zjc2NmQ4YjE0YTdkOWNhMzc2
MGIzY2FlZWNlMjRhNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9ndGtfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9ndGtfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0
ZXN0MiBhcyB1bml0dGVzdAogaW1wb3J0IHN5cwogaW1wb3J0IG9zCiAKQEAgLTY3LDEyICs2Nyw2
IEBAIGNsYXNzIEd0a1BvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGNv
bmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZGVmYXVsdF90aW1lb3V0X21zKCksIDYwMDApCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1Nb2NrT3B0aW9ucyhj
b25maWd1cmF0aW9uPSdEZWJ1ZycpKS5kZWZhdWx0X3RpbWVvdXRfbXMoKSwgMTIwMDApCiAKLSAg
ICBkZWYgYXNzZXJ0TGluZXNFcXVhbChzZWxmLCBhLCBiKToKLSAgICAgICAgaWYgaGFzYXR0cihz
ZWxmLCAnYXNzZXJ0TXVsdGlMaW5lRXF1YWwnKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0TXVs
dGlMaW5lRXF1YWwoYSwgYikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoYS5zcGxpdGxpbmVzKCksIGIuc3BsaXRsaW5lcygpKQotCiAgICAgZGVmIHRlc3RfZ2V0
X2NyYXNoX2xvZyhzZWxmKToKICAgICAgICAgY29yZV9kaXJlY3RvcnkgPSBvcy5lbnZpcm9uLmdl
dCgnV0VCS0lUX0NPUkVfRFVNUFNfRElSRUNUT1JZJywgJy9wYXRoL3RvL2NvcmVkdW1wcycpCiAg
ICAgICAgIGNvcmVfcGF0dGVybiA9IG9zLnBhdGguam9pbihjb3JlX2RpcmVjdG9yeSwgImNvcmUt
cGlkXyVwLV8tcHJvY2Vzc18lZSIpCkBAIC05NSw4ICs4OSw4IEBAIFNUREVSUjogPGVtcHR5PiIi
IiAlIGxvY2FscygpCiAgICAgICAgIHBvcnQuX2dldF9nZGJfb3V0cHV0ID0gbW9ja19lbXB0eV9j
cmFzaF9sb2cKICAgICAgICAgc3RkZXJyLCBsb2cgPSBwb3J0Ll9nZXRfY3Jhc2hfbG9nKCJEdW1w
UmVuZGVyVHJlZSIsIDI4NTI5LCAiIiwgIiIsIG5ld2VyX3RoYW49Tm9uZSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdGRlcnIsICIiKQotICAgICAgICBzZWxmLmFzc2VydExpbmVzRXF1YWwo
bG9nLCBtb2NrX2VtcHR5X2NyYXNoX2xvZykKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVF
cXVhbChsb2csIG1vY2tfZW1wdHlfY3Jhc2hfbG9nKQogCiAgICAgICAgIHN0ZGVyciwgbG9nID0g
cG9ydC5fZ2V0X2NyYXNoX2xvZygiRHVtcFJlbmRlclRyZWUiLCAyODUyOSwgIiIsICIiLCBuZXdl
cl90aGFuPTAuMCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGRlcnIsICIiKQotICAgICAg
ICBzZWxmLmFzc2VydExpbmVzRXF1YWwobG9nLCBtb2NrX2VtcHR5X2NyYXNoX2xvZykKKyAgICAg
ICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChsb2csIG1vY2tfZW1wdHlfY3Jhc2hfbG9nKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRw
X2xvY2tfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2h0dHBfbG9ja191bml0dGVzdC5weQppbmRleCA5NGNlNWY5OTZjMTk1ZWVkM2YzMWRiN2Q0
Yzk2YTZkOTU5NmQ5OWY4Li4yNWFmMTJmYWIxZWYzNWU2YzgwNmFkYzIxYmI4YmVjZTcxYmU4OTlj
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0
dHBfbG9ja191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2h0dHBfbG9ja191bml0dGVzdC5weQpAQCAtMjUsNyArMjUsNyBAQAogCiBmcm9t
IGh0dHBfbG9jayBpbXBvcnQgSHR0cExvY2sKIGltcG9ydCBvcyAgIyBVc2VkIGZvciBvcy5nZXRw
aWQoKQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxl
U3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0
IE1vY2tFeGVjdXRpdmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvaW1hZ2VfZGlmZl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaW1hZ2VfZGlmZl91bml0dGVzdC5weQppbmRleCAwZTVmMGEw
ZmZmMGIxYmMzMDgwNTkyMTA4M2NkNmM4NDU4ZGI1MWU5Li5iNWI0MjdiNzJjYTAzMjRhYzRmZDMz
MzQ5MGE3ZDVjZThiNmNkNTUwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2ltYWdlX2RpZmZfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9pbWFnZV9kaWZmX3VuaXR0ZXN0LnB5CkBAIC0y
OCw3ICsyOCw3IEBACiAKICIiIlVuaXQgdGVzdGluZyBiYXNlIGNsYXNzIGZvciBQb3J0IGltcGxl
bWVudGF0aW9ucy4iIiIKIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVu
aXR0ZXN0CiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuc2VydmVyX3Byb2Nlc3Nf
bW9jayBpbXBvcnQgTW9ja1NlcnZlclByb2Nlc3MKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
LnBvcnQuaW1hZ2VfZGlmZiBpbXBvcnQgSW1hZ2VEaWZmZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbGVha2RldGVjdG9yX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3Jf
dW5pdHRlc3QucHkKaW5kZXggMDlkMzdkNzExYTRiN2IyZTNjYzYyYzFmMDVmMjIyN2E1NjAzYzQw
Mi4uZjJkYWVjOTM3ZTliMGFjODkzNWJkOWJiMzE2NGFjZWJkMjhhYzJhZiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9s
ZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1
bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmxlYWtkZXRlY3RvciBp
bXBvcnQgTGVha0RldGVjdG9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3Rl
bV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weQppbmRleCA3ODg0ZjI0
ZWMxZGMzNTQyNTZmYTEwNmIxOTcxNjMyMjM0YjA2NGEyLi4zNGVmZTQwNTFmMDE3ZmMzYTM1OGZl
NjNlNTQyMzUxYmVkMGFjZGVhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weQpAQCAtODcsOSArODcsOSBAQCBq
YXZhLwogICAgICAgICBwb3J0Ll9maWxlc3lzdGVtID0gTW9ja0ZpbGVTeXN0ZW0oZGlycz1wbGF0
Zm9ybV9kaXJfcGF0aHMpCiAKICAgICAgICAgZGlyc190b19za2lwID0gcG9ydC5fdGVzdHNfZm9y
X290aGVyX3BsYXRmb3JtcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgncGxhdGZvcm0vY2hy
b21pdW0tbGludXgnIGluIGRpcnNfdG9fc2tpcCkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgn
cGxhdGZvcm0vbWFjJyBpbiBkaXJzX3RvX3NraXApCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
J3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZCcgaW4gZGlyc190b19za2lwKQorICAgICAgICBzZWxm
LmFzc2VydEluKCdwbGF0Zm9ybS9jaHJvbWl1bS1saW51eCcsIGRpcnNfdG9fc2tpcCkKKyAgICAg
ICAgc2VsZi5hc3NlcnROb3RJbigncGxhdGZvcm0vbWFjJywgZGlyc190b19za2lwKQorICAgICAg
ICBzZWxmLmFzc2VydE5vdEluKCdwbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQnLCBkaXJzX3RvX3Nr
aXApCiAKICAgICBkZWYgdGVzdF92ZXJzaW9uKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5t
YWtlX3BvcnQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9tb2NrX2RydF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnRfdW5pdHRlc3QucHkKaW5kZXggYjQ4NTU3NGJmMzg3MjQw
NTg0NzM3ZGRjZjY4MDU0MTZlZWFmM2Q0ZS4uYmQyODVlZmM3NjgwNDE0ZjgzZTI3NjRjMTlhYzRm
MGIzYjdjMGEyNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9tb2NrX2RydF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0X3VuaXR0ZXN0LnB5CkBAIC0yOSw3ICsyOSw3IEBA
CiAiIiJVbml0IHRlc3RzIGZvciBNb2NrRFJULiIiIgogCiBpbXBvcnQgc3lzCi1pbXBvcnQgdW5p
dHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21t
b24gaW1wb3J0IG5ld3N0cmluZ2lvCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVt
aG9zdF9tb2NrIGltcG9ydCBNb2NrU3lzdGVtSG9zdApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdF91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXRfdW5pdHRlc3QucHkKaW5kZXggM2QzYzhm
ZWEzN2Q0MDNmYmI4YjViNDExOTQxOWMyMjczYjEwMjIwNi4uMzhlZGYwYWY2NGVkODNjNjNhOTYx
NjUwNzExOWIyMzY5MjAyYTkzMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9xdF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3F0X3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1
bml0dGVzdDIgYXMgdW5pdHRlc3QKIGltcG9ydCBvcwogZnJvbSBjb3B5IGltcG9ydCBkZWVwY29w
eQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3NlcnZlcl9wcm9jZXNzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9zZXJ2ZXJfcHJvY2Vzc191bml0dGVzdC5weQppbmRleCBjZDFkYjFmOTZh
OTM4NDUwYmU2NTkwMDBmOTc1ZGUyZWM4NzYyNmIzLi45NzM3NmFhZmZjOTc0NjBmYmRkZmRhOGE4
YWQ4Nzk3Yjg5ZjkyMjg0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3NlcnZlcl9wcm9jZXNzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvc2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkK
QEAgLTI4LDcgKzI4LDcgQEAKIAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKLWltcG9ydCB1bml0
dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5wb3J0LmZhY3RvcnkgaW1wb3J0IFBvcnRGYWN0b3J5CiBmcm9tIHdlYmtpdHB5Lmxh
eW91dF90ZXN0cy5wb3J0IGltcG9ydCBzZXJ2ZXJfcHJvY2VzcwpAQCAtMTQwLDEzICsxNDAsMTMg
QEAgY2xhc3MgVGVzdFNlcnZlclByb2Nlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBz
ZXJ2ZXJfcHJvY2VzcyA9IEZha2VTZXJ2ZXJQcm9jZXNzKHBvcnRfb2JqPXBvcnRfb2JqLCBuYW1l
PSJ0ZXN0IiwgY21kPVsidGVzdCJdKQogICAgICAgICBzZXJ2ZXJfcHJvY2Vzcy53cml0ZSgic2hv
dWxkIGJyZWFrIikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlcnZlcl9wcm9jZXNzLmhhc19j
cmFzaGVkKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWxzKHNlcnZlcl9wcm9jZXNzLnBp
ZCgpLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlcl9wcm9jZXNzLl9wcm9j
LCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShzZXJ2ZXJfcHJvY2Vzcy5waWQo
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2VydmVyX3Byb2Nlc3MuX3Byb2MpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyX3Byb2Nlc3MuYnJva2VuX3BpcGVzLCBbc2VydmVy
X3Byb2Nlc3Muc3RkaW5dKQogCiAgICAgICAgIHBvcnRfb2JqLmhvc3QucGxhdGZvcm0ub3NfbmFt
ZSA9ICdtYWMnCiAgICAgICAgIHNlcnZlcl9wcm9jZXNzID0gRmFrZVNlcnZlclByb2Nlc3MocG9y
dF9vYmo9cG9ydF9vYmosIG5hbWU9InRlc3QiLCBjbWQ9WyJ0ZXN0Il0pCiAgICAgICAgIHNlcnZl
cl9wcm9jZXNzLndyaXRlKCJzaG91bGQgYnJlYWsiKQogICAgICAgICBzZWxmLmFzc2VydFRydWUo
c2VydmVyX3Byb2Nlc3MuaGFzX2NyYXNoZWQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
ZXJ2ZXJfcHJvY2Vzcy5fcHJvYywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2Vy
dmVyX3Byb2Nlc3MuX3Byb2MpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyX3Byb2Nl
c3MuYnJva2VuX3BpcGVzLCBbc2VydmVyX3Byb2Nlc3Muc3RkaW5dKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW5fdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5weQpp
bmRleCA5ZGVmNzI0NmE3OGU4MTM3MzYwMmUzNGQ2MzQ4MzM0NzQ1MzAyYjljLi45MDI3Y2ViYjEw
MjRkM2VkYzcyNDI0ODNjZWJiNTEyODgxZmQ2NzA3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5weQpAQCAtMjcs
NyArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgU3RyaW5nSU8KLWltcG9ydCB1bml0
dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlLCBNb2NrRXhlY3V0
aXZlMgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5CmluZGV4IDQ3MTdkZGVhMWY0ZjA5OWQ0
ZGM3ZGU2NTM1MDJiMGRiYTdjNzc0YjUuLjRjNWQzMzgwNDU4NGM0NmIzZDRiNTZiZGIzYzI1ODIy
ZGE4NTc2ZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQveHZmYmRyaXZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXJfdW5pdHRlc3QucHkKQEAgLTI3LDcgKzI3LDcg
QEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCB1bml0dGVzdAoraW1w
b3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlMgpAQCAtMTMxLDUg
KzEzMSw1IEBAIGNsYXNzIFh2ZmJEcml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgZXhwZWN0ZWRfbG9ncyA9ICJNT0NLIGtpbGxfcHJvY2VzcyBwaWQ6IDEyMzRcbiIKICAgICAg
ICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGRyaXZlci5zdG9wLCBbXSwg
ZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZHJpdmVyLl94dmZiX3Byb2Nlc3MsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGRy
aXZlci5feHZmYl9wcm9jZXNzKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBvcnQuX2ZpbGVz
eXN0ZW0uZXhpc3RzKGRyaXZlci5fbG9ja19maWxlKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlZnRlc3RzL2V4dHJhY3RfcmVmZXJlbmNlX2xpbmtf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWZ0ZXN0
cy9leHRyYWN0X3JlZmVyZW5jZV9saW5rX3VuaXR0ZXN0LnB5CmluZGV4IDEyNjZhMzNmMTUxYzg0
NTljODFmZWU2NDFlNDhkNzc5ZTg1NDZkYzcuLjg1YjE4ZTJiMTBhMTM3MWE5ZGQyMDU5MGEwMTZj
MWUzMDNhYTNjZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3JlZnRlc3RzL2V4dHJhY3RfcmVmZXJlbmNlX2xpbmtfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVmdGVzdHMvZXh0cmFjdF9yZWZlcmVu
Y2VfbGlua191bml0dGVzdC5weQpAQCAtMjMsNyArMjMsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0
ZXN0CiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnJlZnRlc3RzIGltcG9ydCBleHRyYWN0
X3JlZmVyZW5jZV9saW5rCiAKQEAgLTU1LDEwICs1NSwxMCBAQCBDT05URU5UIE9GIFRFU1QKIDwv
aHRtbD4KICIiIgogICAgICAgICBtYXRjaGVzLCBtaXNtYXRjaGVzID0gZXh0cmFjdF9yZWZlcmVu
Y2VfbGluay5nZXRfcmVmZXJlbmNlX2xpbmsoaHRtbF8xKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG1hdGNoZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgWyJncmVlbi1ib3gtcmVmLnho
dCIsICJibHVlLWJveC1yZWYueGh0Il0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWlzbWF0
Y2hlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICBbInJlZC1ib3gtbm90cmVmLnhodCIsICJy
ZWQtYm94LW5vdHJlZi54aHQiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKG1hdGNo
ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImdyZWVuLWJveC1yZWYueGh0Iiwg
ImJsdWUtYm94LXJlZi54aHQiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKG1pc21h
dGNoZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInJlZC1ib3gtbm90cmVmLnho
dCIsICJyZWQtYm94LW5vdHJlZi54aHQiXSkKIAogICAgICAgICBodG1sXzIgPSAiIgogICAgICAg
ICBlbXB0eV90dXBsZV8xID0gZXh0cmFjdF9yZWZlcmVuY2VfbGluay5nZXRfcmVmZXJlbmNlX2xp
bmsoaHRtbF8yKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvc2VydmVycy9hcGFjaGVfaHR0cF9zZXJ2ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlcl91bml0dGVz
dC5weQppbmRleCBmM2NhNmExYTg2Y2MwNWE5NGMwMzlmZjcxM2RlNTgxOGFlODNmZjQ2Li41Y2Ew
MjdmMjNjZGQ5OTdkZmVlNDgzMDM0ZmY4YTRhYTBlOWM0ZGNlIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlcl91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2
ZXJzL2FwYWNoZV9odHRwX3NlcnZlcl91bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBAQAogCiBp
bXBvcnQgcmUKIGltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBh
cyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sg
aW1wb3J0IE1vY2tFeGVjdXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRj
YXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCkBAIC02NCw3ICs2NCw3IEBAIGNsYXNzIFRlc3RM
YXlvdXRUZXN0QXBhY2hlSHR0cGQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2Vy
dmVyLnN0b3AoKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgXywgXywgbG9ncyA9IG9j
LnJlc3RvcmVfb3V0cHV0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCJTdGFydFNlcnZlcnMg
NCIgaW4gbG9ncykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCJNaW5TcGFyZVNlcnZlcnMgNCIg
aW4gbG9ncykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCJNYXhTcGFyZVNlcnZlcnMgNCIgaW4g
bG9ncykKKyAgICAgICAgc2VsZi5hc3NlcnRJbigiU3RhcnRTZXJ2ZXJzIDQiLCBsb2dzKQorICAg
ICAgICBzZWxmLmFzc2VydEluKCJNaW5TcGFyZVNlcnZlcnMgNCIsIGxvZ3MpCisgICAgICAgIHNl
bGYuYXNzZXJ0SW4oIk1heFNwYXJlU2VydmVycyA0IiwgbG9ncykKICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGhvc3QuZmlsZXN5c3RlbS5leGlzdHMoIi9tb2NrL291dHB1dF9kaXIvaHR0cGQuY29u
ZiIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2Vy
dmVycy9odHRwX3NlcnZlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXJfdW5pdHRlc3QucHkKaW5kZXggMDI0Nzg4ZjVk
NzM4NzEwMzA3NmU4YjJhNzFhMDE1MWUxYzdhZDZjOC4uMjU2ZDFjNzVmMDhiYWI0YWUxOTI5ZmZi
Y2YxOGY3MDVhNjhiNzZmNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0dHBfc2VydmVyX3VuaXR0ZXN0LnB5
CkBAIC0yOCw3ICsyOCw3IEBACiAKIGltcG9ydCByZQogaW1wb3J0IHN5cwotaW1wb3J0IHVuaXR0
ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9u
Lmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBv
cnQgaW1wb3J0IHRlc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3ZpZXdzL2J1aWxkYm90X3Jlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzX3VuaXR0ZXN0LnB5
CmluZGV4IDA3NmQ1Yzg5NThiYmMzYTk1NTU3ZmFlODBhZWIyOTFhZDQ5ZmE2OGEuLjVjZTE1YzFk
YzU2OTFkZmNjOGRhODk4NjAyOGI2MTNhYTMzYWQ5OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL2J1aWxkYm90X3Jlc3VsdHNfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRi
b3RfcmVzdWx0c191bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBAQAogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiBpbXBvcnQgU3RyaW5nSU8KLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1
bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdz
L21ldGVyZWRfc3RyZWFtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW1fdW5pdHRlc3QucHkKaW5kZXggZWJhNDM2ZGQz
MzVjNDUwYmU1M2M0NGI4ZTA1ZDRmY2UzN2ZiNmZkNC4uMGVhZWMyZGI5YWRjODhhYjU1MDEyYjdh
NDQ2Yjk1OGFjNjgyZDZiZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW1fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW1fdW5pdHRlc3Qu
cHkKQEAgLTI5LDcgKzI5LDcgQEAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgcmUKIGltcG9ydCBT
dHJpbmdJTwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAK
IGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnZpZXdzLm1ldGVyZWRfc3RyZWFtIGltcG9ydCBN
ZXRlcmVkU3RyZWFtCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkKaW5kZXggMzQ0OGY1ZmM5
ZmIyMWQ1MjNmZTU2Yzc1YTBmMjU4NjRjNTk2OWRkMC4uNzFlNzg4ODE3MGE4MjUwNGEzZThlZmEz
Yzg4MDQyY2JhODhhOWJhZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkKQEAgLTMyLDcg
KzMyLDcgQEAgaW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgU3RyaW5nSU8KIGltcG9ydCBzeXMKIGlt
cG9ydCB0aW1lCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QK
IAogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAogCkBAIC01
NCw3ICs1NCw3IEBAIGRlZiBnZXRfb3B0aW9ucyhhcmdzKToKIGNsYXNzIFRlc3RVdGlsaXR5RnVu
Y3Rpb25zKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9wcmludF9vcHRpb25zKHNl
bGYpOgogICAgICAgICBvcHRpb25zLCBhcmdzID0gZ2V0X29wdGlvbnMoW10pCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShvcHRpb25zIGlzIG5vdCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElz
Tm90Tm9uZShvcHRpb25zKQogCiAKIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2Fz
ZSk6CkBAIC0xMDgsMTkgKzEwOCwxOSBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBwcmludGVyLl9vcHRpb25zLnRpbWVfb3V0X21zID0gNjAwMAogICAg
ICAgICBwcmludGVyLl9vcHRpb25zLnNsb3dfdGltZV9vdXRfbXMgPSAxMjAwMAogICAgICAgICBw
cmludGVyLnByaW50X2NvbmZpZygnL3RtcCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiVXNp
bmcgcG9ydCAndGVzdC1tYWMtbGVvcGFyZCciIGluIGVyci5nZXR2YWx1ZSgpKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoJ1Rlc3QgY29uZmlndXJhdGlvbjogPGxlb3BhcmQsIHg4NiwgcmVsZWFz
ZT4nIGluIGVyci5nZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1BsYWNpbmcg
dGVzdCByZXN1bHRzIGluIC90bXAnIGluIGVyci5nZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUoJ0Jhc2VsaW5lIHNlYXJjaCBwYXRoOiB0ZXN0LW1hYy1sZW9wYXJkIC0+IHRlc3Qt
bWFjLXNub3dsZW9wYXJkIC0+IGdlbmVyaWMnIGluIGVyci5nZXR2YWx1ZSgpKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoJ1VzaW5nIFJlbGVhc2UgYnVpbGQnIGluIGVyci5nZXR2YWx1ZSgpKQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1BpeGVsIHRlc3RzIGVuYWJsZWQnIGluIGVyci5nZXR2
YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ0NvbW1hbmQgbGluZTonIGluIGVyci5n
ZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1JlZ3VsYXIgdGltZW91dDogJyBp
biBlcnIuZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbigiVXNpbmcgcG9ydCAndGVz
dC1tYWMtbGVvcGFyZCciLCBlcnIuZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbign
VGVzdCBjb25maWd1cmF0aW9uOiA8bGVvcGFyZCwgeDg2LCByZWxlYXNlPicsIGVyci5nZXR2YWx1
ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEluKCdQbGFjaW5nIHRlc3QgcmVzdWx0cyBpbiAvdG1w
JywgZXJyLmdldHZhbHVlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0Jhc2VsaW5lIHNlYXJj
aCBwYXRoOiB0ZXN0LW1hYy1sZW9wYXJkIC0+IHRlc3QtbWFjLXNub3dsZW9wYXJkIC0+IGdlbmVy
aWMnLCBlcnIuZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignVXNpbmcgUmVsZWFz
ZSBidWlsZCcsIGVyci5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEluKCdQaXhlbCB0
ZXN0cyBlbmFibGVkJywgZXJyLmdldHZhbHVlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0Nv
bW1hbmQgbGluZTonLCBlcnIuZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignUmVn
dWxhciB0aW1lb3V0OiAnLCBlcnIuZ2V0dmFsdWUoKSkKIAogICAgICAgICBzZWxmLnJlc2V0KGVy
cikKICAgICAgICAgcHJpbnRlci5fb3B0aW9ucy5xdWlldCA9IFRydWUKICAgICAgICAgcHJpbnRl
ci5wcmludF9jb25maWcoJy90bXAnKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdCYXNlbGlu
ZSBzZWFyY2ggcGF0aDogdGVzdC1tYWMtbGVvcGFyZCAtPiB0ZXN0LW1hYy1zbm93bGVvcGFyZCAt
PiBnZW5lcmljJyBpbiBlcnIuZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbign
QmFzZWxpbmUgc2VhcmNoIHBhdGg6IHRlc3QtbWFjLWxlb3BhcmQgLT4gdGVzdC1tYWMtc25vd2xl
b3BhcmQgLT4gZ2VuZXJpYycsIGVyci5nZXR2YWx1ZSgpKQogCiAgICAgZGVmIHRlc3RfcHJpbnRf
b25lX2xpbmVfc3VtbWFyeShzZWxmKToKICAgICAgICAgcHJpbnRlciwgZXJyID0gc2VsZi5nZXRf
cHJpbnRlcigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNl
X3Rlc3RzL3BlcmZ0ZXN0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJm
b3JtYW5jZV90ZXN0cy9wZXJmdGVzdF91bml0dGVzdC5weQppbmRleCBiZDU1ZjRjZjI5MDQ1NzQx
Y2E5MjA0MTBiZWI2NjRhMDY1MWUxYjY3Li4wMTBkMzI4N2Q3Y2RkMDJmYTk5MDM5YzYzZGNhNzgz
OTQxOWRjODA2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNl
X3Rlc3RzL3BlcmZ0ZXN0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5pdHRlc3QucHkKQEAgLTI5LDcgKzI5LDcgQEAK
IGltcG9ydCBTdHJpbmdJTwogaW1wb3J0IGpzb24KIGltcG9ydCBtYXRoCi1pbXBvcnQgdW5pdHRl
c3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24u
aG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91
dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKQEAgLTg5LDcgKzg5LDcgQEAgY2xhc3Mg
VGVzdFBlcmZUZXN0TWV0cmljKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHJldHVy
biBqc29uLmxvYWRzKGpzb24uZHVtcHMoc3RhdGlzdGljcykpCiAKICAgICAgICAgc3RhdGlzdGlj
cyA9IGNvbXB1dGVfc3RhdGlzdGljcyhbMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDIw
LCAxOSwgMTgsIDE3LCAxNiwgMTUsIDE0LCAxMywgMTIsIDExXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzb3J0ZWQoc3RhdGlzdGljcy5rZXlzKCkpLCBbJ2F2ZycsICdtYXgnLCAnbWVkaWFu
JywgJ21pbicsICdzdGRldiddKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc3RhdGlz
dGljcy5rZXlzKCksIFsnYXZnJywgJ21heCcsICdtZWRpYW4nLCAnbWluJywgJ3N0ZGV2J10pCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RhdGlzdGljc1snYXZnJ10sIDEwLjUpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc3RhdGlzdGljc1snbWluJ10sIDEpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc3RhdGlzdGljc1snbWF4J10sIDIwKQpAQCAtMTExLDcgKzExMSw3IEBAIGNsYXNz
IFRlc3RQZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBhcnNlZF9yZXN1bHRz
ID0gdGVzdC5wYXJzZV9vdXRwdXQob3V0cHV0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihwYXJzZWRfcmVzdWx0cyksIDEpCiAgICAgICAgIHNvbWVfdGVzdF9yZXN1bHRzID0gcGFyc2Vk
X3Jlc3VsdHNbMF0udG9fZGljdCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKHNv
bWVfdGVzdF9yZXN1bHRzLmtleXMoKSksIFsnYXZnJywgJ21heCcsICdtZWRpYW4nLCAnbWluJywg
J3N0ZGV2JywgJ3VuaXQnLCAndmFsdWVzJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVh
bChzb21lX3Rlc3RfcmVzdWx0cy5rZXlzKCksIFsnYXZnJywgJ21heCcsICdtZWRpYW4nLCAnbWlu
JywgJ3N0ZGV2JywgJ3VuaXQnLCAndmFsdWVzJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c29tZV90ZXN0X3Jlc3VsdHNbJ3ZhbHVlcyddLCBbMTA4MCwgMTEyMCwgMTA5NSwgMTEwMSwgMTEw
NF0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZV90ZXN0X3Jlc3VsdHNbJ21pbiddLCAx
MDgwKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvbWVfdGVzdF9yZXN1bHRzWydtYXgnXSwg
MTEyMCkKQEAgLTE2NCw3ICsxNjQsNyBAQCBtYXggMTEyMCBtcwogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICB0ZXN0ID0gUGVyZlRlc3QoTW9ja1BvcnQoKSwgJ3NvbWUtdGVzdCcsICcvcGF0aC9z
b21lLWRpci9zb21lLXRlc3QnKQogICAgICAgICAgICAgdGVzdC5fZmlsdGVyX291dHB1dChvdXRw
dXQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3QucGFyc2Vfb3V0cHV0KG91dHB1
dCksIE5vbmUpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZSh0ZXN0LnBhcnNlX291dHB1
dChvdXRwdXQpKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgYWN0dWFsX3N0ZG91dCwg
YWN0dWFsX3N0ZGVyciwgYWN0dWFsX2xvZ3MgPSBvdXRwdXRfY2FwdHVyZS5yZXN0b3JlX291dHB1
dCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3N0ZG91dCwgJycpCkBAIC0zMDcs
NyArMzA3LDcgQEAgY2xhc3MgVGVzdFBhZ2VMb2FkaW5nUGVyZlRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICAgICAgcG9ydCA9IE1vY2tQb3J0KCkKICAgICAgICAgICAgIHRlc3QgPSBQ
YWdlTG9hZGluZ1BlcmZUZXN0KHBvcnQsICdzb21lLXRlc3QnLCAnL3BhdGgvc29tZS1kaXIvc29t
ZS10ZXN0JykKICAgICAgICAgICAgIGRyaXZlciA9IFRlc3RQYWdlTG9hZGluZ1BlcmZUZXN0Lk1v
Y2tEcml2ZXIoWzEsIDIsIDMsIDQsIDUsIDYsIDcsICdzb21lIGVycm9yJywgOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwXSwgdGVzdCkKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGVzdC5fcnVuX3dpdGhfZHJpdmVyKGRyaXZlciwgTm9uZSksIE5vbmUp
CisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZSh0ZXN0Ll9ydW5fd2l0aF9kcml2ZXIoZHJp
dmVyLCBOb25lKSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIGFjdHVhbF9zdGRvdXQs
IGFjdHVhbF9zdGRlcnIsIGFjdHVhbF9sb2dzID0gb3V0cHV0X2NhcHR1cmUucmVzdG9yZV9vdXRw
dXQoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9zdGRvdXQsICcnKQpAQCAtNDYx
LDcgKzQ2MSw3IEBAIGNsYXNzIFRlc3RSZXBsYXlQZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHRlc3QsIHBvcnQgPSBzZWxmLl9zZXR1cF90ZXN0KHJ1bl90ZXN0KQogCiAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5wcmVwYXJlKHRpbWVf
b3V0X21zPTEwMCksIFRydWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGVzdC5wcmVw
YXJlKHRpbWVfb3V0X21zPTEwMCkpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBhY3R1
YWxfc3Rkb3V0LCBhY3R1YWxfc3RkZXJyLCBhY3R1YWxfbG9ncyA9IG91dHB1dF9jYXB0dXJlLnJl
c3RvcmVfb3V0cHV0KCkKIApAQCAtNDg1LDcgKzQ4NSw3IEBAIGNsYXNzIFRlc3RSZXBsYXlQZXJm
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRlc3QucnVuX3NpbmdsZSA9IHJ1bl9z
aW5nbGUKIAogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3Qu
cHJlcGFyZSh0aW1lX291dF9tcz0xMDApLCBGYWxzZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UodGVzdC5wcmVwYXJlKHRpbWVfb3V0X21zPTEwMCkpCiAgICAgICAgIGZpbmFsbHk6CiAg
ICAgICAgICAgICBhY3R1YWxfc3Rkb3V0LCBhY3R1YWxfc3RkZXJyLCBhY3R1YWxfbG9ncyA9IG91
dHB1dF9jYXB0dXJlLnJlc3RvcmVfb3V0cHV0KCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNh
bGxlZFswXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2Vf
dGVzdHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXJfdW5pdHRlc3QucHkKaW5kZXggYmY4
YzcwNDVhZDkwNjA4ZWMxOTczYWU5NWEyYmFiODY3ZmI5MTM3Yy4uZmNjMzRhMzE5YTBhNDI5MWY5
ODE3NTM1Y2Y1MGNiNTc0NDY5NGJiMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXJfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXJfdW5p
dHRlc3QucHkKQEAgLTMxLDcgKzMxLDcgQEAKIGltcG9ydCBTdHJpbmdJTwogaW1wb3J0IGpzb24K
IGltcG9ydCByZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0
CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQudGVzdCBpbXBvcnQgVGVzdFBvcnQKQEAgLTcyLDcg
KzcyLDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBhZGRf
ZmlsZSgndGVzdDIuaHRtbCcpCiAgICAgICAgIGFkZF9maWxlKCd0ZXN0My5odG1sJykKICAgICAg
ICAgcG9ydC5ob3N0LmZpbGVzeXN0ZW0uY2hkaXIocnVubmVyLl9wb3J0LnBlcmZfdGVzdHNfZGly
KClbOnJ1bm5lci5fcG9ydC5wZXJmX3Rlc3RzX2RpcigpLnJmaW5kKHJ1bm5lci5faG9zdC5maWxl
c3lzdGVtLnNlcCldKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2NvbGxlY3RfdGVz
dHNfYW5kX3NvcnRfdGVzdF9uYW1lKHJ1bm5lciksIFsndGVzdDEuaHRtbCcsICd0ZXN0Mi5odG1s
J10pCisgICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzZWxmLl9jb2xsZWN0X3Rlc3RzX2Fu
ZF9zb3J0X3Rlc3RfbmFtZShydW5uZXIpLCBbJ3Rlc3QxLmh0bWwnLCAndGVzdDIuaHRtbCddKQog
CiAgICAgZGVmIHRlc3RfY29sbGVjdF90ZXN0c193aXRoX3NraXBwZWRfbGlzdChzZWxmKToKICAg
ICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVubmVyKCkKQEAgLTgzLDcgKzgzLDcg
QEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLl9hZGRf
ZmlsZShydW5uZXIsICdpbnNwZWN0b3IvcmVzb3VyY2VzJywgJ3Jlc291cmNlX2ZpbGUuaHRtbCcp
CiAgICAgICAgIHNlbGYuX2FkZF9maWxlKHJ1bm5lciwgJ3Vuc3VwcG9ydGVkJywgJ3Vuc3VwcG9y
dGVkX3Rlc3QyLmh0bWwnKQogICAgICAgICBwb3J0LnNraXBwZWRfcGVyZl90ZXN0cyA9IGxhbWJk
YTogWydpbnNwZWN0b3IvdW5zdXBwb3J0ZWRfdGVzdDEuaHRtbCcsICd1bnN1cHBvcnRlZCddCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fY29sbGVjdF90ZXN0c19hbmRfc29ydF90ZXN0
X25hbWUocnVubmVyKSwgWydpbnNwZWN0b3IvdGVzdDEuaHRtbCcsICdpbnNwZWN0b3IvdGVzdDIu
aHRtbCddKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2VsZi5fY29sbGVjdF90ZXN0
c19hbmRfc29ydF90ZXN0X25hbWUocnVubmVyKSwgWydpbnNwZWN0b3IvdGVzdDEuaHRtbCcsICdp
bnNwZWN0b3IvdGVzdDIuaHRtbCddKQogCiAgICAgZGVmIHRlc3RfY29sbGVjdF90ZXN0c193aXRo
X3NraXBwZWRfbGlzdF9hbmRfZmlsZXMoc2VsZik6CiAgICAgICAgIHJ1bm5lciwgcG9ydCA9IHNl
bGYuY3JlYXRlX3J1bm5lcihhcmdzPVsnU3VpdGUvVGVzdDEuaHRtbCcsICdTdWl0ZS9Ta2lwcGVk
VGVzdDEuaHRtbCcsICdTa2lwcGVkU3VpdGUvVGVzdDEuaHRtbCddKQpAQCAtOTUsNyArOTUsNyBA
QCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuX2FkZF9m
aWxlKHJ1bm5lciwgJ1N1aXRlJywgJ1NraXBwZWRUZXN0MS5odG1sJykKICAgICAgICAgc2VsZi5f
YWRkX2ZpbGUocnVubmVyLCAnU3VpdGUnLCAnU2tpcHBlZFRlc3QyLmh0bWwnKQogICAgICAgICBw
b3J0LnNraXBwZWRfcGVyZl90ZXN0cyA9IGxhbWJkYTogWydTdWl0ZS9Ta2lwcGVkVGVzdDEuaHRt
bCcsICdTdWl0ZS9Ta2lwcGVkVGVzdDEuaHRtbCcsICdTa2lwcGVkU3VpdGUnXQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHNlbGYuX2NvbGxlY3RfdGVzdHNfYW5kX3NvcnRfdGVzdF9uYW1lKHJ1
bm5lciksCisgICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzZWxmLl9jb2xsZWN0X3Rlc3Rz
X2FuZF9zb3J0X3Rlc3RfbmFtZShydW5uZXIpLAogICAgICAgICAgICAgWydTa2lwcGVkU3VpdGUv
VGVzdDEuaHRtbCcsICdTdWl0ZS9Ta2lwcGVkVGVzdDEuaHRtbCcsICdTdWl0ZS9UZXN0MS5odG1s
J10pCiAKICAgICBkZWYgdGVzdF9jb2xsZWN0X3Rlc3RzX3dpdGhfaWdub3JlZF9za2lwcGVkX2xp
c3Qoc2VsZik6CkBAIC0xMDcsMTIgKzEwNywxMiBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuX2FkZF9maWxlKHJ1bm5lciwgJ2luc3BlY3Rvci9yZXNv
dXJjZXMnLCAncmVzb3VyY2VfZmlsZS5odG1sJykKICAgICAgICAgc2VsZi5fYWRkX2ZpbGUocnVu
bmVyLCAndW5zdXBwb3J0ZWQnLCAndW5zdXBwb3J0ZWRfdGVzdDIuaHRtbCcpCiAgICAgICAgIHBv
cnQuc2tpcHBlZF9wZXJmX3Rlc3RzID0gbGFtYmRhOiBbJ2luc3BlY3Rvci91bnN1cHBvcnRlZF90
ZXN0MS5odG1sJywgJ3Vuc3VwcG9ydGVkJ10KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxm
Ll9jb2xsZWN0X3Rlc3RzX2FuZF9zb3J0X3Rlc3RfbmFtZShydW5uZXIpLCBbJ2luc3BlY3Rvci90
ZXN0MS5odG1sJywgJ2luc3BlY3Rvci90ZXN0Mi5odG1sJywgJ2luc3BlY3Rvci91bnN1cHBvcnRl
ZF90ZXN0MS5odG1sJywgJ3Vuc3VwcG9ydGVkL3Vuc3VwcG9ydGVkX3Rlc3QyLmh0bWwnXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHNlbGYuX2NvbGxlY3RfdGVzdHNfYW5kX3NvcnRf
dGVzdF9uYW1lKHJ1bm5lciksIFsnaW5zcGVjdG9yL3Rlc3QxLmh0bWwnLCAnaW5zcGVjdG9yL3Rl
c3QyLmh0bWwnLCAnaW5zcGVjdG9yL3Vuc3VwcG9ydGVkX3Rlc3QxLmh0bWwnLCAndW5zdXBwb3J0
ZWQvdW5zdXBwb3J0ZWRfdGVzdDIuaHRtbCddKQogCiAgICAgZGVmIHRlc3RfY29sbGVjdF90ZXN0
c19zaG91bGRfaWdub3JlX3JlcGxheV90ZXN0c19ieV9kZWZhdWx0KHNlbGYpOgogICAgICAgICBy
dW5uZXIsIHBvcnQgPSBzZWxmLmNyZWF0ZV9ydW5uZXIoKQogICAgICAgICBzZWxmLl9hZGRfZmls
ZShydW5uZXIsICdSZXBsYXknLCAnd3d3LndlYmtpdC5vcmcucmVwbGF5JykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChydW5uZXIuX2NvbGxlY3RfdGVzdHMoKSwgW10pCisgICAgICAgIHNlbGYu
YXNzZXJ0SXRlbXNFcXVhbChydW5uZXIuX2NvbGxlY3RfdGVzdHMoKSwgW10pCiAKICAgICBkZWYg
dGVzdF9jb2xsZWN0X3Rlc3RzX3dpdGhfcmVwbGF5X3Rlc3RzKHNlbGYpOgogICAgICAgICBydW5u
ZXIsIHBvcnQgPSBzZWxmLmNyZWF0ZV9ydW5uZXIoYXJncz1bJy0tcmVwbGF5J10pCkBAIC0xMzUs
MTUgKzEzNSwxNSBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
ICAgICAgICAgJy0tc2xhdmUtY29uZmlnLWpzb24tcGF0aD1hL3NvdXJjZS5qc29uJywKICAgICAg
ICAgICAgICAgICAnLS10ZXN0LXJlc3VsdHMtc2VydmVyPXNvbWVob3N0JywKICAgICAgICAgICAg
ICAgICAnLS1kZWJ1ZyddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuYnVpbGQs
IFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcHRpb25zLmJ1aWxkKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuYnVpbGRfZGlyZWN0b3J5LCAnZm9sZGVyNDInKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMucGxhdGZvcm0sICdwbGF0Zm9ybTQyJykKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmJ1aWxkZXJfbmFtZSwgJ3dlYmtpdC1tYWMt
MScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5idWlsZF9udW1iZXIsICc1Nicp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy50aW1lX291dF9tcywgJzQyJykKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmNvbmZpZ3VyYXRpb24sICdEZWJ1ZycpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5zaG93X3Jlc3VsdHMsIEZhbHNlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMucmVzZXRfcmVzdWx0cywgVHJ1ZSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShvcHRpb25zLnNob3dfcmVzdWx0cykKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG9wdGlvbnMucmVzZXRfcmVzdWx0cykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChvcHRpb25zLm91dHB1dF9qc29uX3BhdGgsICdhL291dHB1dC5qc29uJykKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChvcHRpb25zLnNsYXZlX2NvbmZpZ19qc29uX3BhdGgsICdhL3NvdXJjZS5q
c29uJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLnRlc3RfcmVzdWx0c19zZXJ2
ZXIsICdzb21laG9zdCcpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXJfdW5pdHRlc3QucHkKaW5kZXggNzQ1MjRkNWExZTM1NWE1Y2FjZjZkZDVmMTQwN2U3ODBiOWIx
NDY2MS4uOWExMzljN2M4NTYzNDAxZjdiZDc0M2U4OTllY2EwNGUxN2Y3NzU0OCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQpAQCAtMzUs
NyArMzUsNyBAQAogCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCi1pbXBvcnQgdW5pdHRlc3QK
K2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogaW1wb3J0IGNoZWNrZXIgYXMgc3R5bGUK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d0ZXN0aW5nIGltcG9ydCBMb2dUZXN0aW5n
LCBUZXN0TG9nU3RyZWFtCkBAIC0xNzMsNyArMTczLDcgQEAgY2xhc3MgR2xvYmFsVmFyaWFibGVz
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAjIGJlZ2luIHdpdGggLS4KICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShydWxlLnN0YXJ0c3dpdGgoJy0nKSkKICAgICAgICAg
ICAgICMgQ2hlY2sgbm8gcnVsZSBvY2N1cnMgdHdpY2UuCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKHJ1bGUgaW4gYWxyZWFkeV9zZWVuKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJ
bihydWxlLCBhbHJlYWR5X3NlZW4pCiAgICAgICAgICAgICBhbHJlYWR5X3NlZW4uYXBwZW5kKHJ1
bGUpCiAKICAgICBkZWYgdGVzdF9kZWZhdWx0cyhzZWxmKToKQEAgLTI3NCw4ICsyNzQsOCBAQCBj
bGFzcyBHbG9iYWxWYXJpYWJsZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIiIi
Q2hlY2sgdGhhdCBfTUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZIGlzIHZhbGlkLiIiIgogICAgICAg
ICBhbGxfY2F0ZWdvcmllcyA9IHNlbGYuX2FsbF9jYXRlZ29yaWVzKCkKICAgICAgICAgZm9yIGNh
dGVnb3J5IGluIF9NQVhfUkVQT1JUU19QRVJfQ0FURUdPUlkuaXRlcmtleXMoKToKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShjYXRlZ29yeSBpbiBhbGxfY2F0ZWdvcmllcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnS2V5ICIlcyIgaXMgbm90IGEgY2F0ZWdvcnknICUgY2F0ZWdv
cnkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKGNhdGVnb3J5LCBhbGxfY2F0ZWdvcmllcywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgJ0tleSAiJXMiIGlzIG5vdCBhIGNhdGVnb3J5JyAl
IGNhdGVnb3J5KQogCiAKIGNsYXNzIENoZWNrV2ViS2l0U3R5bGVGdW5jdGlvblRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgpAQCAtMzk2LDcgKzM5Niw3IEBAIGNsYXNzIENoZWNrZXJEaXNwYXRjaGVy
RGlzcGF0Y2hUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgYXNzZXJ0X2NoZWNrZXJf
bm9uZShzZWxmLCBmaWxlX3BhdGgpOgogICAgICAgICAiIiJBc3NlcnQgdGhhdCB0aGUgZGlzcGF0
Y2hlZCBjaGVja2VyIGlzIE5vbmUuIiIiCiAgICAgICAgIGNoZWNrZXIgPSBzZWxmLmRpc3BhdGNo
KGZpbGVfcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNoZWNrZXIgaXMgTm9uZSwgJ0No
ZWNraW5nOiAiJXMiJyAlIGZpbGVfcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY2hl
Y2tlciwgJ0NoZWNraW5nOiAiJXMiJyAlIGZpbGVfcGF0aCkKIAogICAgIGRlZiBhc3NlcnRfY2hl
Y2tlcihzZWxmLCBmaWxlX3BhdGgsIGV4cGVjdGVkX2NsYXNzKToKICAgICAgICAgIiIiQXNzZXJ0
IHRoZSB0eXBlIG9mIHRoZSBkaXNwYXRjaGVkIGNoZWNrZXIuIiIiCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5nZWxvZ191bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY2hhbmdlbG9nX3VuaXR0ZXN0
LnB5CmluZGV4IGE4Y2ZmZDNiZTFhNzhlZTZmNTZiNTE1MTRkOThkOTIxMThkMGQxZmYuLjBlYzBl
YzJkYWIwMzI0YWZiOTMwODQwOTJmZDQzNDlkNTNmMDIzZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY2hhbmdlbG9nX3VuaXR0ZXN0
LnB5CkBAIC0yNCw3ICsyNCw3IEBACiAiIiJVbml0IHRlc3QgZm9yIGNoYW5nZWxvZy5weS4iIiIK
IAogaW1wb3J0IGNoYW5nZWxvZwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFz
IHVuaXR0ZXN0CiAKIAogY2xhc3MgQ2hhbmdlTG9nQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9j
bWFrZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMv
Y21ha2VfdW5pdHRlc3QucHkKaW5kZXggZjlmZWVkY2M2MzZkYmIwNTljNzQ3YjMxMzRiZmM1ZWQx
Y2U5MzQzNC4uN2IyY2RhZjBlMDZiZWNhMGY0NGExNTk5ZTYyNTk5NDNjNjBmNDBiOSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jbWFrZV91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NtYWtlX3Vu
aXR0ZXN0LnB5CkBAIC0yMiw3ICsyMiw3IEBACiAKICIiIlVuaXQgdGVzdCBmb3IgY21ha2UucHku
IiIiCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBm
cm9tIGNtYWtlIGltcG9ydCBDTWFrZUNoZWNrZXIKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jb21tb25fdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbW1vbl91bml0dGVzdC5weQppbmRleCA2Zjg3
ZGNkYWU2ZjQ3OTllZDg1ZWRjZjZlZTFmNTlkMDQyMDQxYzdkLi44NDQ5Yjk4OWJhM2Q0MmI4YTQ2
ZjIwYjhiMzA3MjNhZGZmZDhkZGEwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL2NvbW1vbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbW1vbl91bml0dGVzdC5weQpAQCAtMjIsNyArMjIsNyBA
QAogCiAiIiJVbml0IHRlc3RzIGZvciBjb21tb24ucHkuIiIiCiAKLWltcG9ydCB1bml0dGVzdAor
aW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIGNvbW1vbiBpbXBvcnQgQ2Fycmlh
Z2VSZXR1cm5DaGVja2VyCiBmcm9tIGNvbW1vbiBpbXBvcnQgVGFiQ2hlY2tlcgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQpp
bmRleCBjMzNhYzZkYTdmZDk1MGZiYWJlOTc0N2Q4MmQzYTM3NjAwMGMwYWUyLi44ZGU5OWRmN2U3
MDg2N2Q3MTYwMGZiMzJlYzk3NGYxNzYyNTc4ZmZkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQpAQCAtMzksNyArMzks
NyBAQCBpbXBvcnQgY29kZWNzCiBpbXBvcnQgb3MKIGltcG9ydCByYW5kb20KIGltcG9ydCByZQot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiBpbXBvcnQgY3Bw
IGFzIGNwcF9zdHlsZQogZnJvbSBjcHAgaW1wb3J0IENwcENoZWNrZXIKIGZyb20gLi5maWx0ZXIg
aW1wb3J0IEZpbHRlckNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMvanNvbmNoZWNrZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2pzb25jaGVja2VyX3VuaXR0ZXN0LnB5CmluZGV4
IGFmMWY0N2M2OGZmNTdhYjAxY2I4ZWJmZTRjOThjMzg5NzZhMTA3MGYuLjYyYTA3OTNjNDc5OGM1
M2MwYzE3ZDc5YzM3ZTk1MjBmYmY0MWFkMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMvanNvbmNoZWNrZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9qc29uY2hlY2tlcl91bml0dGVzdC5weQpA
QCAtMjIsNyArMjIsNyBAQAogCiAiIiJVbml0IHRlc3QgZm9yIGpzb25jaGVja2VyLnB5LiIiIgog
Ci1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogaW1wb3J0
IGpzb25jaGVja2VyCiAKQEAgLTY3LDcgKzY3LDcgQEAgY2xhc3MgSlNPTkNoZWNrZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIG1vY2tfZXJyb3JfaGFuZGxlci5oYWRfZXJy
b3IgPSBUcnVlCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX2xpbmVfbnVt
YmVyLCBsaW5lX251bWJlcikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRf
Y2F0ZWdvcnksIGNhdGVnb3J5KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNhdGVnb3J5
IGluIGpzb25jaGVja2VyLkpTT05DaGVja2VyLmNhdGVnb3JpZXMpCisgICAgICAgICAgICBzZWxm
LmFzc2VydEluKGNhdGVnb3J5LCBqc29uY2hlY2tlci5KU09OQ2hlY2tlci5jYXRlZ29yaWVzKQog
CiAgICAgICAgIGVycm9yX2hhbmRsZXIgPSBNb2NrRXJyb3JIYW5kbGVyKGhhbmRsZV9zdHlsZV9l
cnJvcikKICAgICAgICAgZXJyb3JfaGFuZGxlci5oYWRfZXJyb3IgPSBGYWxzZQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9wbmdfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZ191bml0dGVzdC5weQpp
bmRleCBhYzUxYjlkYjE0YjcyNmIzYWE2NWI4NzZjNWYyMjY4OGNlN2QwMmVkLi5hNzFhNDQxZjE1
ZmJiY2JhZjE3NGIzMjFiMTFhZGQ4ZmZjMDdkMTYyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZ191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZ191bml0dGVzdC5weQpAQCAtMjMsNyArMjMs
NyBAQAogCiAiIiJVbml0IHRlc3QgZm9yIHBuZy5weS4iIiIKIAotaW1wb3J0IHVuaXR0ZXN0Citp
bXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiBmcm9tIHBuZyBpbXBvcnQgUE5HQ2hlY2tlcgog
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0Zp
bGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0X21vY2sgaW1w
b3J0IE1vY2tTeXN0ZW1Ib3N0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL3B5dGhvbl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMvcHl0aG9uX3VuaXR0ZXN0LnB5CmluZGV4IDczYmRhNzZlMmQwOTBjNTI5
ODNkMGI0YjBkNzM5MTE1ZTQ5MjJhZGUuLmQ1MmUzZjNiYzBkZDYyNDlhYTg2MzJkMDM0NWQzZGQ0
NWZlMjNhZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
cnMvcHl0aG9uX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvcHl0aG9uX3VuaXR0ZXN0LnB5CkBAIC0yMyw3ICsyMyw3IEBACiAiIiJVbml0IHRl
c3RzIGZvciBweXRob24ucHkuIiIiCiAKIGltcG9ydCBvcwotaW1wb3J0IHVuaXR0ZXN0CitpbXBv
cnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gcHl0aG9uIGltcG9ydCBQeXRob25DaGVj
a2VyCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMv
dGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CmluZGV4IDRmNGE0ZTRm
OTM4NTkzNjQ5NGVjMWMwODE5YjkzNTFiMjUxZTRmYzYuLjQzZWY4MzYzYmQ1N2E2YzM0YTJmMTI5
YjgwNDJiNTBmYTE2NTYwNDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5w
eQpAQCAtMjgsNyArMjgsNyBAQAogCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKLWltcG9ydCB1bml0
dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHRlc3RfZXhwZWN0YXRp
b25zIGltcG9ydCBUZXN0RXhwZWN0YXRpb25zQ2hlY2tlcgogZnJvbSB3ZWJraXRweS5jb21tb24u
aG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdApAQCAtNzAsNyArNzAsNyBAQCBjbGFzcyBUZXN0RXhw
ZWN0YXRpb25zVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBpZiBwb3J0Ogog
ICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQubmFtZSgpLnN0YXJ0c3dpdGgoZXhwZWN0
ZWRfcG9ydF9pbXBsZW1lbnRhdGlvbikpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIGV4cGVjdGVkX3BvcnRfaW1wbGVtZW50YXRpb24pCisgICAgICAg
ICAgICBzZWxmLmFzc2VydElzTm9uZShleHBlY3RlZF9wb3J0X2ltcGxlbWVudGF0aW9uKQogCiAg
ICAgZGVmIHRlc3RfZGV0ZXJtaW5lX3BvcnRfZnJvbV9leHBlY3RhdGlvbnNfcGF0aChzZWxmKToK
ICAgICAgICAgc2VsZi5fZXhwZWN0X3BvcnRfZm9yX2V4cGVjdGF0aW9uc19wYXRoKE5vbmUsICcv
JykKQEAgLTk0LDcgKzk0LDcgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uc1Rlc3RDYXNlKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX2Vycm9yX2NvbGxlY3RvciwgaG9zdD1ob3N0KQogCiAgICAgICAgICMgV2Ugc2hvdWxk
IGhhdmUgZmFpbGVkIHRvIGZpbmQgYSB2YWxpZCBwb3J0IG9iamVjdCBmb3IgdGhhdCBwYXRoLgot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoZWNrZXIuX3BvcnRfb2JqLCBOb25lKQorICAgICAg
ICBzZWxmLmFzc2VydElzTm9uZShjaGVja2VyLl9wb3J0X29iaikKIAogICAgICAgICAjIE5vdyB1
c2UgYSB0ZXN0IHBvcnQgc28gd2UgY2FuIGNoZWNrIHRoZSBsaW5lcy4KICAgICAgICAgY2hlY2tl
ci5fcG9ydF9vYmogPSBob3N0LnBvcnRfZmFjdG9yeS5nZXQoJ3Rlc3QtbWFjLWxlb3BhcmQnKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXh0X3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXh0X3Vu
aXR0ZXN0LnB5CmluZGV4IGFhOTc2NmI3ZDIzNWJkMDRhY2E0MDg2YzExNmNkYTMyZjI5N2ExNWYu
LjAxZTM3M2FiYzQ3ZWJjYzUwMDFmODFiNWViMTg5YjIwNDg2YzkxNTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGV4dF91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3RleHRfdW5pdHRlc3QucHkK
QEAgLTI4LDcgKzI4LDcgQEAKIAogIiIiVW5pdCB0ZXN0IGZvciB0ZXh0X3N0eWxlLnB5LiIiIgog
Ci1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogaW1wb3J0
IHRleHQgYXMgdGV4dF9zdHlsZQogZnJvbSB0ZXh0IGltcG9ydCBUZXh0Q2hlY2tlcgpAQCAtNDUs
NyArNDUsNyBAQCBjbGFzcyBUZXh0U3R5bGVUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgICAgICBzZWxmLmhhZF9lcnJvciA9IFRydWUKIAogICAgICAgICB0ZXh0X3N0eWxlLnBy
b2Nlc3NfZmlsZV9kYXRhKCcnLCBsaW5lcywgZXJyb3JfZm9yX3Rlc3QpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShub3Qgc2VsZi5oYWRfZXJyb3IsICclcyBzaG91bGQgbm90IGhhdmUgYW55IGVy
cm9ycy4nICUgbGluZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5oYWRfZXJyb3Is
ICclcyBzaG91bGQgbm90IGhhdmUgYW55IGVycm9ycy4nICUgbGluZXMpCiAKICAgICBkZWYgYXNz
ZXJ0RXJyb3Ioc2VsZiwgbGluZXMsIGV4cGVjdGVkX2xpbmVfbnVtYmVyKToKICAgICAgICAgIiIi
QXNzZXJ0cyB0aGF0IHRoZSBzcGVjaWZpZWQgbGluZXMgaGFzIGFuIGVycm9yLiIiIgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy93YXRjaGxpc3RfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3dhdGNobGlz
dF91bml0dGVzdC5weQppbmRleCBjYjUxOGRkZTUwNWRjOWQ0ZWUzZWVmZDgwNDBjN2EzNWI3ZmMz
MGI1Li45MDk1MGM5ZjkwMTUyYTMzMThjMzYzODg2ZTU0MGQ3OTBlMDBhOThkIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3dhdGNobGlzdF91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3dhdGNobGlz
dF91bml0dGVzdC5weQpAQCAtMzEsNyArMzEsNyBAQAogJycnVW5pdCB0ZXN0cyBmb3Igd2F0Y2hs
aXN0LnB5LicnJwogCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0
dGVzdAogCiAKIGltcG9ydCB3YXRjaGxpc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94Y29kZXByb2pfdW5pdHRlc3QucHkKaW5kZXggNzcw
NzEzZmQyNTk4Y2U4ODgwNWY4OWIzYzBiZTA0NDA3NzlhMDRlNC4uMzZhMWE0MWRhNTNjMzJmMjQx
MDMzZTdjYjFkZmI3Y2IyNGNiNGYwMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2Vycy94Y29kZXByb2pfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94Y29kZXByb2pfdW5pdHRlc3QucHkKQEAgLTI0LDcg
KzI0LDcgQEAKICIiIlVuaXQgdGVzdCBmb3IgeGNvZGVwcm9qLnB5LiIiIgogCiBpbXBvcnQgeGNv
ZGVwcm9qCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAog
CiBjbGFzcyBUZXN0RXJyb3JIYW5kbGVyKG9iamVjdCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3htbF91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMveG1sX3VuaXR0ZXN0LnB5CmluZGV4IDEzYWRkNDA4
YzUxMjY1NzlkNWFlZDZmOTE0MDc3MmEzMTM2MmUzZDEuLmEyMjRkZTNmMDk4M2FjMjM5OGViYzAx
ZjllMjA4ODk3MGVkYWRmYzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMveG1sX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMveG1sX3VuaXR0ZXN0LnB5CkBAIC0yMiw3ICsyMiw3IEBACiAKICIiIlVu
aXQgdGVzdCBmb3IgeG1sLnB5LiIiIgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVz
dDIgYXMgdW5pdHRlc3QKIAogaW1wb3J0IHhtbAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weQppbmRleCBjMDIxNDMx
Nzg1N2IyMzJiMzYyZWI3ZGMyMzIzYzljMDdmOTc4NmI1Li4wYjRjMzU1OTY3Mjg2NmNmNjc0ZDBl
MDEzOGE2Yzc3ZGEzYTFhZjk5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3QucHkKQEAgLTIzLDcgKzIzLDcgQEAKICIi
IlVuaXQgdGVzdHMgZm9yIGVycm9yX2hhbmRsZXJzLnB5LiIiIgogCiAKLWltcG9ydCB1bml0dGVz
dAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIGNoZWNrZXIgaW1wb3J0IFN0
eWxlUHJvY2Vzc29yQ29uZmlndXJhdGlvbgogZnJvbSBlcnJvcl9oYW5kbGVycyBpbXBvcnQgRGVm
YXVsdFN0eWxlRXJyb3JIYW5kbGVyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2ZpbGVyZWFkZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2ZpbGVyZWFkZXJfdW5pdHRlc3QucHkKaW5kZXggZDcyOGM0NjNhYTNmZDk4ZDM5ZDYwM2Fh
MGEzYjdmNjIyZjAxOWM3OS4uMmM1MDZlYzIwZDkzOWZkMGM0NjU4ZTAyN2RlN2U0Nzc3NjZhOGU2
OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWxlcmVhZGVyX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsZXJlYWRlcl91
bml0dGVzdC5weQpAQCAtMjAsNyArMjAsNyBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRl
c3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVT
eXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d0ZXN0aW5nIGltcG9ydCBMb2dn
aW5nVGVzdENhc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmls
dGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5p
dHRlc3QucHkKaW5kZXggYzIwZDk5ODFhNDZkYzZjMTQ1MzAxM2RkNzIzYTgwZmE4MzhhODUyMy4u
YjRkZDdiYzdjYjNjYTI4ODUyYTExNGYxMmMwZWE0ZWJiZWNmYWY1MCAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5pdHRlc3QucHkKQEAgLTIyLDcgKzIyLDcg
QEAKIAogIiIiVW5pdCB0ZXN0cyBmb3IgZmlsdGVyLnB5LiIiIgogCi1pbXBvcnQgdW5pdHRlc3QK
K2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSBmaWx0ZXIgaW1wb3J0IF9DYXRl
Z29yeUZpbHRlciBhcyBDYXRlZ29yeUZpbHRlcgogZnJvbSBmaWx0ZXIgaW1wb3J0IHZhbGlkYXRl
X2ZpbHRlcl9ydWxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9t
YWluX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9tYWluX3VuaXR0
ZXN0LnB5CmluZGV4IGUwMTkxNjg3YTJmNTY0MzlhNjhhNTg2MDkwMTg5ZTVlZTBlNGVlYmQuLmRi
ZmM3YzgzYWE0MGIzMDdjOTY5ZGVjZDlkZjdiMDhmN2MwNWY3N2EgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvbWFpbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL21haW5fdW5pdHRlc3QucHkKQEAgLTIwLDcgKzIwLDcgQEAKICMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0Citp
bXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gbWFpbiBpbXBvcnQgY2hhbmdlX2Rp
cmVjdG9yeQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBv
cnQgTW9ja0ZpbGVTeXN0ZW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvb3B0cGFyc2VyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9v
cHRwYXJzZXJfdW5pdHRlc3QucHkKaW5kZXggOTc5YjMxZDFhMjAxNzUwM2IwMmEzOGMxMGI3Zjhh
ZjYxNjU3NTU3OS4uMGM5MDAyYWRmZTNiZjVlNWM3MTllZDMyMjIzZDI3NTZmNTFjNDhjNyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9vcHRwYXJzZXJfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9vcHRwYXJzZXJfdW5pdHRlc3Qu
cHkKQEAgLTIyLDcgKzIyLDcgQEAKIAogIiIiVW5pdCB0ZXN0cyBmb3IgcGFyc2VyLnB5LiIiIgog
Ci1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtLmxvZ3Rlc3RpbmcgaW1wb3J0IExvZ2dpbmdUZXN0Q2FzZQog
ZnJvbSB3ZWJraXRweS5zdHlsZS5vcHRwYXJzZXIgaW1wb3J0IEFyZ3VtZW50UGFyc2VyCkBAIC0x
NDUsOSArMTQ1LDkgQEAgY2xhc3MgQXJndW1lbnRQYXJzZXJUZXN0KExvZ2dpbmdUZXN0Q2FzZSk6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXMsIFtdKQogCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwob3B0aW9ucy5maWx0ZXJfcnVsZXMsIFtdKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG9wdGlvbnMuZ2l0X2NvbW1pdCwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChv
cHRpb25zLmRpZmZfZmlsZXMsIEZhbHNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlv
bnMuaXNfdmVyYm9zZSwgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKG9wdGlvbnMu
Z2l0X2NvbW1pdCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcHRpb25zLmRpZmZfZmlsZXMp
CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucy5pc192ZXJib3NlKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMubWluX2NvbmZpZGVuY2UsIDMpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwob3B0aW9ucy5vdXRwdXRfZm9ybWF0LCAndnM3JykKIApAQCAtMTY2LDkgKzE2
Niw5IEBAIGNsYXNzIEFyZ3VtZW50UGFyc2VyVGVzdChMb2dnaW5nVGVzdENhc2UpOgogICAgICAg
ICAoZmlsZXMsIG9wdGlvbnMpID0gcGFyc2UoWyctLWdpdC1kaWZmPWNvbW1pdCddKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuZ2l0X2NvbW1pdCwgJ2NvbW1pdCcpCiAgICAgICAg
IChmaWxlcywgb3B0aW9ucykgPSBwYXJzZShbJy0tdmVyYm9zZSddKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG9wdGlvbnMuaXNfdmVyYm9zZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG9wdGlvbnMuaXNfdmVyYm9zZSkKICAgICAgICAgKGZpbGVzLCBvcHRpb25zKSA9IHBhcnNl
KFsnLS1kaWZmLWZpbGVzJywgJ2ZpbGUudHh0J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
b3B0aW9ucy5kaWZmX2ZpbGVzLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3B0aW9u
cy5kaWZmX2ZpbGVzKQogCiAgICAgICAgICMgUGFzcyB1c2VyX3J1bGVzLgogICAgICAgICAoZmls
ZXMsIG9wdGlvbnMpID0gcGFyc2UoWyctLWZpbHRlcj0rYnVpbGQsLXdoaXRlc3BhY2UnXSkKQEAg
LTIwMCw4ICsyMDAsOCBAQCBjbGFzcyBDb21tYW5kT3B0aW9uVmFsdWVzVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgICMgQ2hlY2sgZGVmYXVsdCBwYXJhbWV0ZXJzLgogICAgICAgICBv
cHRpb25zID0gUHJvY2Vzc29yT3B0aW9ucygpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0
aW9ucy5maWx0ZXJfcnVsZXMsIFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMu
Z2l0X2NvbW1pdCwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmlzX3Zl
cmJvc2UsIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShvcHRpb25zLmdpdF9jb21t
aXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucy5pc192ZXJib3NlKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMubWluX2NvbmZpZGVuY2UsIDEpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5vdXRwdXRfZm9ybWF0LCAiZW1hY3MiKQogCkBAIC0yMjIs
NyArMjIyLDcgQEAgY2xhc3MgQ29tbWFuZE9wdGlvblZhbHVlc1Rlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfZm9ybWF0PSJ2
czciKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuZmlsdGVyX3J1bGVzLCBbIisi
XSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmdpdF9jb21taXQsICJjb21taXQi
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuaXNfdmVyYm9zZSwgVHJ1ZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wdGlvbnMuaXNfdmVyYm9zZSkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChvcHRpb25zLm1pbl9jb25maWRlbmNlLCAzKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKG9wdGlvbnMub3V0cHV0X2Zvcm1hdCwgInZzNyIpCiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcGF0Y2hyZWFkZXJfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL3BhdGNocmVhZGVyX3VuaXR0ZXN0LnB5CmluZGV4IDA1ZDM2
ZDlmZTVhMzcwNjQ4OGZmOGZjNWFmYWRjYzJkZDk1NzRjY2IuLmY3MzY4ZWMyYjQ3NzVhYWY4YmIw
YWMzYjM4YWM2NWJlOWNlNDY3YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvcGF0Y2hyZWFkZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9wYXRjaHJlYWRlcl91bml0dGVzdC5weQpAQCAtMjksNyArMjksNyBAQAogIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRl
c3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVt
X21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LnN0eWxlLnBhdGNocmVh
ZGVyIGltcG9ydCBQYXRjaFJlYWRlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90ZXN0L2ZpbmRlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9m
aW5kZXJfdW5pdHRlc3QucHkKaW5kZXggOTFiM2ZlZDVhZGQzOTUxZjU2YzQ5NjNlMTc0YTc5ZjRh
M2VhMDVjYy4uZjEyNTllZjQ5MjRlMjIwZjVmZDk2OTQ5Y2M3NjMzYjZhODhjYzZmYSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L2ZpbmRlcl91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvZmluZGVyX3VuaXR0ZXN0LnB5CkBAIC0yMSw3
ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBsb2dnaW5nCi1pbXBvcnQgdW5pdHRl
c3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCkBAIC0x
MTIsNyArMTEyLDcgQEAgY2xhc3MgRmluZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgICAgICBzZWxmLmNoZWNrX25hbWVzKFsnL3RtcC9hbm90aGVyX3VuaXR0ZXN0LnB5J10sIFtd
KQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgXywgXywgbG9ncyA9IG9jLnJlc3RvcmVf
b3V0cHV0KCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnYW5vdGhlcl91bml0dGVzdC5w
eScgaW4gbG9ncykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2Fub3RoZXJfdW5pdHRlc3Qu
cHknLCBsb2dzKQogCiAgICAgICAgICMgUGF0aHMgdGhhdCBkb24ndCBleGlzdCBhcmUgZXJyb3Jz
LgogICAgICAgICBvYy5jYXB0dXJlX291dHB1dCgpCkBAIC0xMjAsNyArMTIwLDcgQEAgY2xhc3Mg
RmluZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmNoZWNrX25h
bWVzKFsnL2Zvby9iYXIvbm90ZXhpc3RfdW5pdHRlc3QucHknXSwgW10pCiAgICAgICAgIGZpbmFs
bHk6CiAgICAgICAgICAgICBfLCBfLCBsb2dzID0gb2MucmVzdG9yZV9vdXRwdXQoKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKCdub3RleGlzdF91bml0dGVzdC5weScgaW4gbG9ncykKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ25vdGV4aXN0X3VuaXR0ZXN0LnB5JywgbG9ncykKIAog
ICAgICAgICAjIE5hbWVzIHRoYXQgZG9uJ3QgZXhpc3QgYXJlIGNhdWdodCBsYXRlciwgYXQgbG9h
ZCB0aW1lLgogICAgICAgICBzZWxmLmNoZWNrX25hbWVzKFsnYmFyLm5vdGV4aXN0X3VuaXR0ZXN0
J10sIFsnYmFyLm5vdGV4aXN0X3VuaXR0ZXN0J10pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rlc3QvbWFpbl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dGVzdC9tYWluX3VuaXR0ZXN0LnB5CmluZGV4IDAzMWFiZDY1YjRlNDcwNDM1M2JjNjA1YTA4ZmUx
NTdmNWI2ODA1NGEuLjhhMWI1NmQyOTVhZmUzYWJmNTc1YmE5ZDZjYTI0ODhiNWM2MDhlNTggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5CkBAIC0yMiw3
ICsyMiw3IEBACiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QK
K2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQpAQCAtNzAs
OCArNzAsOCBAQCBjbGFzcyBUZXN0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
ICAgIF8sIF8sIGxvZ3MgPSBvYy5yZXN0b3JlX291dHB1dCgpCiAgICAgICAgICAgICByb290X2xv
Z2dlci5oYW5kbGVycyA9IHJvb3RfaGFuZGxlcnMKIAotICAgICAgICBzZWxmLmFzc2VydFRydWUo
J05vIHRlc3RzIHRvIHJ1bicgaW4gZXJyb3JzLmdldHZhbHVlKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgnTm8gdGVzdHMgdG8gcnVuJyBpbiBsb2dzKQorICAgICAgICBzZWxmLmFzc2VydElu
KCdObyB0ZXN0cyB0byBydW4nLCBlcnJvcnMuZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRJbignTm8gdGVzdHMgdG8gcnVuJywgbG9ncykKIAogICAgIGRlZiBfZmluZF90ZXN0X25hbWVz
KHNlbGYsIGFyZ3MpOgogICAgICAgICB0ZXN0ZXIgPSBUZXN0ZXIoKQpAQCAtMTE0LDQgKzExNCw0
IEBAIGNsYXNzIFRlc3RlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBvdXQsIF8g
PSBwcm9jLmNvbW11bmljYXRlKCkKICAgICAgICAgcmV0Y29kZSA9IHByb2MucmV0dXJuY29kZQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldGNvZGUsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgnQ292ZXInIGluIG91dCkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignQ292ZXInLCBvdXQp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvcnVubmVyX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3J1bm5lcl91bml0dGVzdC5weQppbmRl
eCBjYWZjOTgxM2UzMWRmYmM1NWM4MTZlYzRkZjk2MGJhZjY4ODc4MzY3Li40NmE5NTA3ZmRhZmNj
NTliODVkODk0OWI1NWY1OTEwNmZjOTVhMWU5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rlc3QvcnVubmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdGVzdC9ydW5uZXJfdW5pdHRlc3QucHkKQEAgLTIzLDcgKzIzLDcgQEAKIGltcG9ydCBsb2dn
aW5nCiBpbXBvcnQgcmUKIGltcG9ydCBTdHJpbmdJTwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQg
dW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBv
cnQgTW9ja09wdGlvbnMKIGZyb20gd2Via2l0cHkudGVzdC5wcmludGVyIGltcG9ydCBQcmludGVy
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcF91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9za2lwX3VuaXR0ZXN0LnB5CmluZGV4IDJm
ODQ3ZDYzNTkxYjUzNTYyZTk0OGRlN2VmNDE0ZGNhNTgxYmMwYjcuLmJmY2I2YTY3YzJjYzkyY2E1
ODg5NGIwNTA0OGVmN2E3OTMxNjI1ZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdGVzdC9za2lwX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVz
dC9za2lwX3VuaXR0ZXN0LnB5CkBAIC0yMiw3ICsyMiw3IEBACiAKIGltcG9ydCBTdHJpbmdJTwog
aW1wb3J0IGxvZ2dpbmcKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0
dGVzdAogCiBmcm9tIHdlYmtpdHB5LnRlc3Quc2tpcCBpbXBvcnQgc2tpcF9pZgogCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X19fdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X19fdW5pdHRlc3Qu
cHkKaW5kZXggZmFiOTk1MmU4N2QzMmNkMjIwM2RiNDI2NzBiNjE5NjEzMGIxNTQ5Zi4uZjY4N2Fl
MDA5ZmM3NzUyYTNhYWQ1MzhiMjllNGUwMjU0MWE5YzA2MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfX191bml0dGVzdC5weQpAQCAtMjcs
NyArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QK
K2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5
IGltcG9ydCBBdXRvaW5zdGFsbEltcG9ydEhvb2sKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b19iZV9tb3ZlZC91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RvX2JlX21vdmVkL3VwZGF0ZV93ZWJn
bF9jb25mb3JtYW5jZV90ZXN0c191bml0dGVzdC5weQppbmRleCBiMzdiOTkxMTM3NWRlMDQ4ZTZj
ZmE1MzIzNGQ0NmY3NmQ0MThkMzExLi4wMjhhNGM2ZjI4MTA2MmY3ZGU3NTAwMzhkYjI2ZmI4NmRl
MjYxYWJjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RvX2JlX21vdmVkL3Vw
ZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3RvX2JlX21vdmVkL3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0c191
bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBAQAogCiAiIiJVbml0IHRlc3RzIGZvciB1cGRhdGVf
d2ViZ2xfY29uZm9ybWFuY2VfdGVzdHMuIiIiCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVu
aXR0ZXN0MiBhcyB1bml0dGVzdAogZnJvbSB3ZWJraXRweS50b19iZV9tb3ZlZCBpbXBvcnQgdXBk
YXRlX3dlYmdsX2NvbmZvcm1hbmNlX3Rlc3RzIGFzIHdlYmdsCiAKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9ib3RpbmZvX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9ib3RpbmZvX3VuaXR0ZXN0LnB5CmluZGV4IDgyMGZm
NTU5ZWYwOTExMGE3ZGRiZjE2NjU2YTMzYzk0OWQ2Yjc4ZmQuLjE4NTQ1YTg0NzIxZTEyYzljZTQz
NWIzYjU5ODVmMzgyYWE5MDc0OGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvYm90aW5mb191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2JvdGluZm9fdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0
MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmJvdGluZm8gaW1wb3J0IEJv
dEluZm8KIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRh
c2tfdW5pdHRlc3QucHkKaW5kZXggM2UzZmE4OGY1M2Q5YTkwMDE2NjM1YzI3ODEzY2UzMDYyNTU3
YWQ5Yy4uYmE5MjU0YjAyYjMyYzdhMTFjZGI0MTkwOTkzNzZmODc5NTZhZWRkOCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRh
c2tfdW5pdHRlc3QucHkKQEAgLTI4LDcgKzI4LDcgQEAKIAogZnJvbSBkYXRldGltZSBpbXBvcnQg
ZGF0ZXRpbWUKIGltcG9ydCBsb2dnaW5nCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVz
dDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0IGltcG9ydCBidWd6aWxs
YQogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlv
dXRUZXN0UmVzdWx0cwpAQCAtMzcyLDcgKzM3Miw3IEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJl
X21lc3NhZ2U9J1BhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMnIHNjcmlwdF9lcnJvcj0nTU9DSyB0
CiAgICAgICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCiAgICAg
ICAgIHRhc2sgPSBDb21taXRRdWV1ZVRhc2soY29tbWl0X3F1ZXVlLCBwYXRjaCkKICAgICAgICAg
c3VjY2VzcyA9IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCB0YXNrLnJ1biwg
ZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1
Y2Nlc3MsIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHN1Y2Nlc3MpCiAKICAgICBk
ZWYgdGVzdF90ZXN0X2ZhaWx1cmUoc2VsZik6CiAgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tD
b21taXRRdWV1ZShbCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkKaW5kZXggM2NlZTNmMDU5NDQ2NTg3
OTI3NzMxODBlZjhjZDE3OTNhMmMyMzVlZC4uYjYzOTg1NmYzYjhmMDk4YjM3MTMyMGYzMmQ2YThm
M2I3M2U3OTk5MSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9l
eHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAog
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQg
dW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkudG9vbC5ib3QuZXhwZWN0ZWRm
YWlsdXJlcyBpbXBvcnQgRXhwZWN0ZWRGYWlsdXJlcwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZlZWRlcnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2ZlZWRlcnNfdW5pdHRlc3QucHkKaW5kZXggY2IwNGUxOTg5ODQz
ZWI3ZjA3ZTdhMTgzOWQ1OWQ2NWFjMGRlZjJmNC4uYjcwYTYzNzFlNWNhOTlhOGRkYWJmNWM5YTlj
MDYzODhmMzdkYzgzMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9mZWVkZXJzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvZmVlZGVyc191bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQg
dW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRw
dXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHku
bW9jayBpbXBvcnQgTW9jawpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9mbGFreXRlc3RyZXBvcnRlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvZmxha3l0ZXN0cmVwb3J0ZXJfdW5pdHRlc3QucHkKaW5kZXggNDhjNTExMjgx
OTUzZjJjOWZjZmQ1N2ZjYzVkMjIwMjk3MjFkOWMyYy4uM2ZiM2M4M2ViYTViNjRhNzg2ZDRjOWZh
MTMxZmU5OGJkZTc4NThlYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9mbGFreXRlc3RyZXBvcnRlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJlcG9ydGVyX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsy
Niw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QK
K2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29u
ZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRlcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmRfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kX3VuaXR0ZXN0LnB5Cmlu
ZGV4IGEzMzI2MGYwNzc2NTIxMzJkYzA3MDY4NGE0MzhlMjhmYjE0YTUyOWMuLmI2NThlZmYyNDBj
M2M0YjA1MGI3NWU2MWQ5MGRlN2EzYmU4MDRjMGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFuZF91bml0dGVzdC5weQpAQCAtMjcsNyAr
MjcsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgb3MKLWltcG9ydCB1bml0dGVzdAoraW1w
b3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
b3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS50b29sLmJv
dC5pcmNfY29tbWFuZCBpbXBvcnQgKgpAQCAtOTcsNyArOTcsNyBAQCBjbGFzcyBJUkNDb21tYW5k
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9yb2xsX2Nocm9taXVtX2Rl
cHMoc2VsZik6CiAgICAgICAgIHJvbGwgPSBSb2xsQ2hyb21pdW1ERVBTKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCByb2xsLl9wYXJzZV9hcmdzKFtdKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRJc05vbmUocm9sbC5fcGFyc2VfYXJncyhbXSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoIjEyMzQiLCByb2xsLl9wYXJzZV9hcmdzKFsiMTIzNCJdKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnIkFsYW4gQ3V0dGVyIiA8YWxhbmN1dHRlckBjaHJvbWl1bS5vcmc+Jywgcm9sbC5f
ZXhwYW5kX2lyY19uaWNrbmFtZSgiYWxhbmN1dHRlciIpKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCJ1bmtub3duX2lyY19uaWNrbmFtZSIsIHJvbGwuX2V4cGFuZF9pcmNfbmlja25hbWUoInVu
a25vd25faXJjX25pY2tuYW1lIikpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2lyY2JvdF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvaXJjYm90X3VuaXR0ZXN0LnB5CmluZGV4IGM3OGViODBlNzZjODE2MWNmNDc3ZDlmN2U0
NzljNmM4NmZiZDRkYzYuLjIzODA3MTEzMmQwNDUzZmVmZDQwMDRjY2U5YWQ2Y2U2ZWY4NDRjNjQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjYm90X3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjYm90X3VuaXR0
ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
Ci1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIGltcG9ydCBy
YW5kb20KIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0
IE91dHB1dENhcHR1cmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5CmluZGV4
IGI2ZTg5ZGZjNDUxNDFjZjYwZjFiZGZjOGNmOThkZDZmMDMxNzI0NTAuLjE4ZGU3ZWM0MWNjZWZm
Y2FkNjgyNTQ0M2JiMjUzNmUyYTViNjU1MmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlcl91
bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxl
U3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQg
T3V0cHV0Q2FwdHVyZQpAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1Jl
YWRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJ
T0Vycm9yLCBob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUsIGxheW91dF90ZXN0c19yZXN1
bHRzX3BhdGgpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGhvc3QuZmlsZXN5
c3RlbS5yZWFkX3RleHRfZmlsZSwgdW5pdF90ZXN0c19yZXN1bHRzX3BhdGgpCiAgICAgICAgICMg
bGF5b3V0X3Rlc3RfcmVzdWx0cyBzaG91bGRuJ3QgcmFpc2UgZXZlbiBpZiB0aGUgcmVzdWx0cy5q
c29uIGZpbGUgaXMgbWlzc2luZy4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWFkZXIucmVz
dWx0cygpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZWFkZXIucmVzdWx0cygp
KQogCiAgICAgZGVmIHRlc3RfY3JlYXRlX3VuaXRfdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAg
ICBob3N0ID0gTW9ja0hvc3QoKQpAQCAtNzEsMTkgKzcxLDE5IEBAIGNsYXNzIExheW91dFRlc3RS
ZXN1bHRzUmVhZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJlYWRlci5fY3Jl
YXRlX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRzKFtdKQog
ICAgICAgICByZWFkZXIuX2NyZWF0ZV91bml0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTogTm9uZQog
ICAgICAgICAjIGxheW91dF90ZXN0X3Jlc3VsdHMgc2hvdWxkbid0IHJhaXNlIGV2ZW4gaWYgdGhl
IHVuaXQgdGVzdHMgeG1sIGZpbGUgaXMgbWlzc2luZy4KLSAgICAgICAgc2VsZi5hc3NlcnROb3RF
cXVhbHMocmVhZGVyLnJlc3VsdHMoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5v
bmUocmVhZGVyLnJlc3VsdHMoKSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWFk
ZXIucmVzdWx0cygpLmZhaWxpbmdfdGVzdHMoKSwgW10pCiAKIAogICAgIGRlZiB0ZXN0X2xheW91
dF90ZXN0X3Jlc3VsdHMoc2VsZik6CiAgICAgICAgIHJlYWRlciA9IExheW91dFRlc3RSZXN1bHRz
UmVhZGVyKE1vY2tIb3N0KCksICIvbW9jay1yZXN1bHRzIiwgIi92YXIvbG9ncyIpCiAgICAgICAg
IHJlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzID0gbGFtYmRhIHBhdGg6IE5vbmUKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChyZWFkZXIucmVzdWx0cygpLCBOb25lKQorICAgICAgICBzZWxmLmFz
c2VydElzTm9uZShyZWFkZXIucmVzdWx0cygpKQogICAgICAgICByZWFkZXIuX3JlYWRfZmlsZV9j
b250ZW50cyA9IGxhbWJkYSBwYXRoOiAiIgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlYWRl
ci5yZXN1bHRzKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJlYWRlci5yZXN1
bHRzKCkpCiAgICAgICAgIHJlYWRlci5fY3JlYXRlX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBsYW1i
ZGE6IExheW91dFRlc3RSZXN1bHRzKFtdKQogICAgICAgICByZXN1bHRzID0gcmVhZGVyLnJlc3Vs
dHMoKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFscyhyZXN1bHRzLCBOb25lKQorICAgICAg
ICBzZWxmLmFzc2VydElzTm90Tm9uZShyZXN1bHRzKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpLCAzMCkgICMgVGhpcyB2YWx1ZSBtYXRjaGVz
IFJ1blRlc3RzLk5PTl9JTlRFUkFDVElWRV9GQUlMVVJFX0xJTUlUX0NPVU5UCiAKICAgICBkZWYg
dGVzdF9hcmNoaXZlX2xhc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cyhzZWxmKToKQEAgLTk1LDEwICs5
NSwxMCBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICAjIFNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHJlc3VsdHNfZGlyZWN0b3J5
IGRvZXMgbm90IGV4aXN0LgogICAgICAgICBleHBlY3RlZF9sb2dzID0gIi9tb2NrLXJlc3VsdHMg
ZG9lcyBub3QgZXhpc3QsIG5vdCBhcmNoaXZpbmcuXG4iCiAgICAgICAgIGFyY2hpdmUgPSBPdXRw
dXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgcmVhZGVyLmFyY2hpdmUsIFtwYXRjaF0s
IGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChh
cmNoaXZlLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShhcmNoaXZlKQogCiAgICAg
ICAgIGhvc3QuZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShyZXN1bHRzX2RpcmVjdG9y
eSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhvc3QuZmlsZXN5c3RlbS5leGlzdHMocmVzdWx0
c19kaXJlY3RvcnkpKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwocmVhZGVyLmFyY2hp
dmUocGF0Y2gpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZWFkZXIuYXJj
aGl2ZShwYXRjaCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaG9zdC5maWxlc3lzdGVtLmV4
aXN0cyhyZXN1bHRzX2RpcmVjdG9yeSkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2JvdC9xdWV1ZWVuZ2luZV91bml0dGVzdC5weQppbmRleCA5MzRiOWNlYmI0ZWFi
OGM4NjkwYWZmMzQ3NTBiZmU5NmFkMmE2OTgzLi4xYmExM2IxYWIxMjI2MmIwYmIzN2NhZWI0MWI1
ODIxZDc2YTA3OGEzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L3F1ZXVlZW5naW5lX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvcXVldWVlbmdpbmVfdW5pdHRlc3QucHkKQEAgLTMxLDcgKzMxLDcgQEAgaW1wb3J0IG9z
CiBpbXBvcnQgc2h1dGlsCiBpbXBvcnQgdGVtcGZpbGUKIGltcG9ydCB0aHJlYWRpbmcKLWltcG9y
dCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKQEAgLTE2
OCw3ICsxNjgsNyBAQCBjbGFzcyBRdWV1ZUVuZ2luZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgIGRlZiB0ZXN0X25vdyhzZWxmKToKICAgICAgICAgIiIiTWFrZSBzdXJlIHRoZXJlIGFyZSBu
byB0eXBvcyBpbiB0aGUgUXVldWVFbmdpbmUubm93KCkgbWV0aG9kLiIiIgogICAgICAgICBlbmdp
bmUgPSBRdWV1ZUVuZ2luZSgidGVzdCIsIE5vbmUsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShpc2luc3RhbmNlKGVuZ2luZS5fbm93KCksIGRhdGV0aW1lLmRhdGV0aW1lKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGVuZ2luZS5fbm93KCksIGRhdGV0aW1lLmRhdGV0aW1l
KQogCiAgICAgZGVmIHRlc3Rfc2xlZXBfbWVzc2FnZShzZWxmKToKICAgICAgICAgZW5naW5lID0g
UXVldWVFbmdpbmUoInRlc3QiLCBOb25lLCBOb25lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9zaGVyaWZmX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9zaGVyaWZmX3VuaXR0ZXN0LnB5CmluZGV4IDAyZmMwMzYwODNkYTgy
Mjk2ZDVkZjUyNWViMmQwMzNhYjYwYWU5OWUuLmNmOTg5YzljZWY0ZjRjODI4MTg4ZDFhZmVhMWRj
YzRmODk2YjE3OGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
c2hlcmlmZl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L3NoZXJpZmZfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0
dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVpbGRib3QgaW1wb3J0IEJ1aWxkZXIK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRD
YXB0dXJlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKaW5kZXggMTRiZjJjZTVlNDUwNjllZWRjNGYxZTFlODI4
NDlhOGVjNjFiNmU1Ny4uY2JlYzExY2U0M2VkYzZlNGY2NjY0Y2RhYjA1NDRkZDBmYzI0YmNkMCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2Fk
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9k
b3dubG9hZF91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0
ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBP
dXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkubW9jayBpbXBvcnQgTW9jawpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fy
bmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKaW5kZXggMjcxN2UwNjcyZWQ5NGI0
NzhhMzI3YWQ4MmQxNTQyMGYzZGJhMWUzNC4uNWYwYjgwNmNhMzhlMjJkYzFmNGFlZjg4NGZkNjdi
NDNiM2UzMzZlZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CkBAIC00
Nyw3ICs0Nyw3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNU
ZXN0KToKICAgICAgICAgZXdzLl9leHBlY3RlZF9mYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVz
X29ic2VydmVkID0gbGFtYmRhIHJlc3VsdHM6IHNldChbImZvby5odG1sIiwgImJhci5odG1sIl0p
CiAgICAgICAgIHRhc2sgPSBNb2NrKCkKICAgICAgICAgcGF0Y2ggPSBld3MuX3Rvb2wuYnVncy5m
ZXRjaF9hdHRhY2htZW50KDEwMDAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV3cy5fZmFp
bGluZ190ZXN0c19tZXNzYWdlKHRhc2ssIHBhdGNoKSwgIk5ldyBmYWlsaW5nIHRlc3RzOlxuYmFy
Lmh0bWxcbmZvby5odG1sIikKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChld3Mu
X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCksICJOZXcgZmFpbGluZyB0ZXN0czpc
bmJhci5odG1sXG5mb28uaHRtbCIpCiAKIAogY2xhc3MgRWFybHlXYXJuaW5nU3l0ZW1UZXN0KFF1
ZXVlc1Rlc3QpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL3BlcmZhbGl6ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcGVyZmFsaXplcl91bml0dGVzdC5weQppbmRleCBmZWI3YjA1YjMxZDMxZjYxOGNj
ZmE3NTYwZTMzNGM4M2E4MjczMDAwLi4xNDIxMWU0MGI0NjNlZmY3MGJjYWQyM2JlYmY0YzcyNTc4
MDBiZGZhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cGVyZmFsaXplcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcGVyZmFsaXplcl91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRl
c3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWlsZGJvdCBpbXBv
cnQgQnVpbGRlcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQg
U2NyaXB0RXJyb3IKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9xdWVyaWVzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3F1ZXJpZXNfdW5pdHRlc3QucHkKaW5kZXggMDJmYTAzMDc5ZGYyNjNlNTA1OGIyMDBl
NDU2OTZmMTRlNzZlNTViYi4uMWY0YjM3ZTY4NDI5N2I2MzZiOTQ2N2Y0MTFhMmFlNWVjNWY0OTcy
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJp
ZXNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3F1ZXJpZXNfdW5pdHRlc3QucHkKQEAgLTI3LDcgKzI3LDcgQEAKICMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0
dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQg
T3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhIGltcG9ydCBC
dWd6aWxsYQpAQCAtMTczLDcgKzE3Myw3IEBAIGNsYXNzIFByaW50RXhwZWN0YXRpb25zVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBjb21tYW5kLmV4ZWN1dGUob3B0aW9ucywg
dGVzdHMsIHRvb2wpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzdGRvdXQsIF8sIF8g
PSBvYy5yZXN0b3JlX291dHB1dCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LCBl
eHBlY3RlZF9zdGRvdXQpCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoc3Rkb3V0
LCBleHBlY3RlZF9zdGRvdXQpCiAKICAgICBkZWYgdGVzdF9iYXNpYyhzZWxmKToKICAgICAgICAg
c2VsZi5ydW5fdGVzdChbJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsICdmYWlsdXJlcy9l
eHBlY3RlZC9pbWFnZS5odG1sJ10sCkBAIC0yNjMsNyArMjYzLDcgQEAgY2xhc3MgUHJpbnRCYXNl
bGluZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5jYXB0dXJlX291dHB1
dCgpCiAgICAgICAgIGNvbW1hbmQuZXhlY3V0ZShNb2NrT3B0aW9ucyhhbGw9RmFsc2UsIGluY2x1
ZGVfdmlydHVhbF90ZXN0cz1GYWxzZSwgY3N2PUZhbHNlLCBwbGF0Zm9ybT1Ob25lKSwgWydwYXNz
ZXMvdGV4dC5odG1sJ10sIHNlbGYudG9vbCkKICAgICAgICAgc3Rkb3V0LCBfLCBfID0gc2VsZi5y
ZXN0b3JlX291dHB1dCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LAorICAgICAg
ICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKHN0ZG91dCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCcvLyBGb3IgdGVzdC13aW4teHBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdwYXNzZXMvdGV4dC1leHBlY3RlZC5wbmdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdwYXNzZXMvdGV4dC1leHBlY3RlZC50eHRcbicpKQpAQCAtMjc0LDcgKzI3NCw3IEBAIGNsYXNz
IFByaW50QmFzZWxpbmVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuY2Fw
dHVyZV9vdXRwdXQoKQogICAgICAgICBjb21tYW5kLmV4ZWN1dGUoTW9ja09wdGlvbnMoYWxsPUZh
bHNlLCBpbmNsdWRlX3ZpcnR1YWxfdGVzdHM9RmFsc2UsIGNzdj1GYWxzZSwgcGxhdGZvcm09J3Rl
c3Qtd2luLSonKSwgWydwYXNzZXMvdGV4dC5odG1sJ10sIHNlbGYudG9vbCkKICAgICAgICAgc3Rk
b3V0LCBfLCBfID0gc2VsZi5yZXN0b3JlX291dHB1dCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3Rkb3V0LAorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKHN0ZG91dCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCcvLyBGb3IgdGVzdC13aW4tdmlzdGFcbicKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdwYXNzZXMvdGV4dC1leHBlY3RlZC5wbmdcbicKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdwYXNzZXMvdGV4dC1leHBlY3RlZC50eHRcbicKQEAgLTI5
Myw2ICsyOTMsNiBAQCBjbGFzcyBQcmludEJhc2VsaW5lc1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBzZWxmLmNhcHR1cmVfb3V0cHV0KCkKICAgICAgICAgY29tbWFuZC5leGVjdXRl
KE1vY2tPcHRpb25zKGFsbD1GYWxzZSwgcGxhdGZvcm09Jyp4cCcsIGNzdj1UcnVlLCBpbmNsdWRl
X3ZpcnR1YWxfdGVzdHM9RmFsc2UpLCBbJ3Bhc3Nlcy90ZXh0Lmh0bWwnXSwgc2VsZi50b29sKQog
ICAgICAgICBzdGRvdXQsIF8sIF8gPSBzZWxmLnJlc3RvcmVfb3V0cHV0KCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdGRvdXQsCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwo
c3Rkb3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3Rlc3Qtd2luLXhwLHBhc3Nlcy90
ZXh0Lmh0bWwsTm9uZSxwbmcscGFzc2VzL3RleHQtZXhwZWN0ZWQucG5nLE5vbmVcbicKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICd0ZXN0LXdpbi14cCxwYXNzZXMvdGV4dC5odG1sLE5vbmUs
dHh0LHBhc3Nlcy90ZXh0LWV4cGVjdGVkLnR4dCxOb25lXG4nKSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CmluZGV4
IDEwYTBmYmQ3YmM1YWFkOTlmMDNiNWQzYzk2MjkxY2ZmOTM1ODdhMzguLmFmOWZkMDQ3MGU5MmNm
ZDAzNjhiNTJkOTM2ZjA2OGQxNTUyZTYyODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQpAQCAtMTU2LDcgKzE1
Niw3IEBAIGNsYXNzIEFic3RyYWN0UGF0Y2hRdWV1ZVRlc3QoQ29tbWFuZHNUZXN0KToKICAgICAg
ICAgcXVldWUuYmluZF90b190b29sKHRvb2wpCiAgICAgICAgIHF1ZXVlLl9vcHRpb25zID0gTW9j
aygpCiAgICAgICAgIHF1ZXVlLl9vcHRpb25zLnBvcnQgPSBOb25lCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocXVldWUuX25leHRfcGF0Y2goKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJ
c05vbmUocXVldWUuX25leHRfcGF0Y2goKSkKICAgICAgICAgdG9vbC5zdGF0dXNfc2VydmVyID0g
TW9ja1N0YXR1c1NlcnZlcih3b3JrX2l0ZW1zPVsyLCAxMDAwMCwgMTAwMDFdKQogICAgICAgICBl
eHBlY3RlZF9zdGRvdXQgPSAiTU9DSzogZmV0Y2hfYXR0YWNobWVudDogMiBpcyBub3QgYSBrbm93
biBhdHRhY2htZW50IGlkXG4iICAjIEEgbW9jay1vbmx5IG1lc3NhZ2UgdG8gcHJldmVudCB1cyBm
cm9tIG1ha2luZyBtaXN0YWtlcy4KICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICJNT0NLOiByZWxl
YXNlX3dvcmtfaXRlbTogTm9uZSAyXG4iCkBAIC0zODIsOSArMzgyLDkgQEAgTU9DSzogdXBkYXRl
X3N0YXR1czogY29tbWl0LXF1ZXVlIFRlc3RzIHBhc3NlZCwgYnV0IGNvbW1pdCBmYWlsZWQgKGNo
ZWNrb3V0IG91dAogICAgICAgICBzdGF0ZSA9IHsncGF0Y2gnOiBOb25lfQogICAgICAgICBPdXRw
dXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc2VxdWVuY2UucnVuX2FuZF9oYW5kbGVf
ZXJyb3JzLCBbdG9vbCwgb3B0aW9ucywgc3RhdGVdLCBleHBlY3RlZF9leGNlcHRpb249VHJ5QWdh
aW4sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG9wdGlvbnMudXBkYXRlLCBUcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlv
bnMuYnVpbGQsIEZhbHNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMudGVzdCwg
RmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcHRpb25zLnVwZGF0ZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShvcHRpb25zLmJ1aWxkKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KG9wdGlvbnMudGVzdCkKIAogICAgIGRlZiB0ZXN0X21hbnVhbF9yZWplY3RfZHVyaW5nX3Byb2Nl
c3Npbmcoc2VsZik6CiAgICAgICAgIHF1ZXVlID0gU2Vjb25kVGhvdWdodHNDb21taXRRdWV1ZShN
b2NrVG9vbCgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL3JlYmFzZWxpbmVfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcmViYXNlbGluZV91bml0dGVzdC5weQppbmRleCA0NWNhNWUyOGIyNzQxNmY5NGYy
OTZkYjNiZjk3MjFlNThjY2U2OTkyLi40NmI5ZmZiNjE0ODEyMDUyMDUwNjE2Y2ViMmM3Y2NjMzZk
NGQ3YWM5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cmViYXNlbGluZV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcmViYXNlbGluZV91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRl
c3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0
dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5i
YXNlbGluZW9wdGltaXplciBpbXBvcnQgQmFzZWxpbmVPcHRpbWl6ZXIKQEAgLTgzLDE1ICs4Mywx
NSBAQCBjbGFzcyBUZXN0UmViYXNlbGluZVRlc3QoX0Jhc2VUZXN0Q2FzZSk6CiAKICAgICBkZWYg
dGVzdF9iYXNlbGluZV9kaXJlY3Rvcnkoc2VsZik6CiAgICAgICAgIGNvbW1hbmQgPSBzZWxmLmNv
bW1hbmQKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tYW5kLl9iYXNlbGluZV9kaXJlY3Rv
cnkoIkFwcGxlIFdpbiBYUCBEZWJ1ZyAoVGVzdHMpIiksICIvbW9jay1jaGVja291dC9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4teHAiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1hbmQu
X2Jhc2VsaW5lX2RpcmVjdG9yeSgiQXBwbGUgV2luIDcgUmVsZWFzZSAoVGVzdHMpIiksICIvbW9j
ay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4iKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1hbmQuX2Jhc2VsaW5lX2RpcmVjdG9yeSgiQXBwbGUgTGlvbiBSZWxlYXNlIFdL
MSAoVGVzdHMpIiksICIvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlv
biIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWFuZC5fYmFzZWxpbmVfZGlyZWN0b3J5
KCJBcHBsZSBMaW9uIFJlbGVhc2UgV0syIChUZXN0cykiKSwgIi9tb2NrLWNoZWNrb3V0L0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1h
bmQuX2Jhc2VsaW5lX2RpcmVjdG9yeSgiR1RLIExpbnV4IDMyLWJpdCBSZWxlYXNlIiksICIvbW9j
ay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsiKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1hbmQuX2Jhc2VsaW5lX2RpcmVjdG9yeSgiRUZMIExpbnV4IDY0LWJpdCBSZWxl
YXNlIFdLMiIpLCAiL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMiIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWFuZC5fYmFzZWxpbmVfZGlyZWN0b3J5KCJR
dCBMaW51eCBSZWxlYXNlIiksICIvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWFuZC5fYmFzZWxpbmVfZGlyZWN0b3J5
KCJXZWJLaXQgTWFjMTAuNyIpLCAiL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbWFjLWxpb24iKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1hbmQuX2Jh
c2VsaW5lX2RpcmVjdG9yeSgiV2ViS2l0IE1hYzEwLjYiKSwgIi9tb2NrLWNoZWNrb3V0L0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZCIpCisgICAgICAgIHNlbGYu
YXNzZXJ0TXVsdGlMaW5lRXF1YWwoY29tbWFuZC5fYmFzZWxpbmVfZGlyZWN0b3J5KCJBcHBsZSBX
aW4gWFAgRGVidWcgKFRlc3RzKSIpLCAiL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luLXhwIikKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChjb21tYW5kLl9i
YXNlbGluZV9kaXJlY3RvcnkoIkFwcGxlIFdpbiA3IFJlbGVhc2UgKFRlc3RzKSIpLCAiL21vY2st
Y2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luIikKKyAgICAgICAgc2VsZi5hc3NlcnRN
dWx0aUxpbmVFcXVhbChjb21tYW5kLl9iYXNlbGluZV9kaXJlY3RvcnkoIkFwcGxlIExpb24gUmVs
ZWFzZSBXSzEgKFRlc3RzKSIpLCAiL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxpb24iKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGNvbW1hbmQuX2Jh
c2VsaW5lX2RpcmVjdG9yeSgiQXBwbGUgTGlvbiBSZWxlYXNlIFdLMiAoVGVzdHMpIiksICIvbW9j
ay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syIikKKyAgICAgICAgc2VsZi5h
c3NlcnRNdWx0aUxpbmVFcXVhbChjb21tYW5kLl9iYXNlbGluZV9kaXJlY3RvcnkoIkdUSyBMaW51
eCAzMi1iaXQgUmVsZWFzZSIpLCAiL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrIikKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChjb21tYW5kLl9iYXNlbGlu
ZV9kaXJlY3RvcnkoIkVGTCBMaW51eCA2NC1iaXQgUmVsZWFzZSBXSzIiKSwgIi9tb2NrLWNoZWNr
b3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIiKQorICAgICAgICBzZWxmLmFzc2VydE11
bHRpTGluZUVxdWFsKGNvbW1hbmQuX2Jhc2VsaW5lX2RpcmVjdG9yeSgiUXQgTGludXggUmVsZWFz
ZSIpLCAiL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQiKQorICAgICAgICBz
ZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGNvbW1hbmQuX2Jhc2VsaW5lX2RpcmVjdG9yeSgiV2Vi
S2l0IE1hYzEwLjciKSwgIi9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLW1hYy1saW9uIikKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChjb21tYW5k
Ll9iYXNlbGluZV9kaXJlY3RvcnkoIldlYktpdCBNYWMxMC42IiksICIvbW9jay1jaGVja291dC9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQiKQogCiAgICAgZGVm
IHRlc3RfcmViYXNlbGluZV91cGRhdGVzX2V4cGVjdGF0aW9uc19maWxlX25vb3Aoc2VsZik6CiAg
ICAgICAgIHNlbGYuX3plcm9fb3V0X3Rlc3RfZXhwZWN0YXRpb25zKCkKQEAgLTEwNSwxMiArMTA1
LDEyIEBAIEJ1ZyhBKSBbIERlYnVnIF0gOiBmYXN0L2Nzcy9sYXJnZS1saXN0LW9mLXJ1bGVzLWNy
YXNoLmh0bWwgWyBGYWlsdXJlIF0KICAgICAgICAgc2VsZi5vcHRpb25zLnN1ZmZpeGVzID0gInBu
Zyx3YXYsdHh0IgogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdF9hbmRfdXBk
YXRlX2V4cGVjdGF0aW9ucyhzZWxmLm9wdGlvbnMpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLnRvb2wud2ViLnVybHNfZmV0Y2hlZCwKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0Vx
dWFsKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVkLAogICAgICAgICAgICAgW3NlbGYuV0VCX1BS
RUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC5wbmcnLAogICAgICAgICAg
ICAgIHNlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC53
YXYnLAogICAgICAgICAgICAgIHNlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhl
ci10ZXN0LWFjdHVhbC50eHQnXSkKICAgICAgICAgbmV3X2V4cGVjdGF0aW9ucyA9IHNlbGYuX3Jl
YWQoc2VsZi5saW9uX2V4cGVjdGF0aW9uc19wYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG5ld19leHBlY3RhdGlvbnMsICIiIkJ1ZyhCKSBbIE1hYyBMaW51eCBYUCBEZWJ1ZyBdIGZhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRt
bCBbIFBhc3MgXQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKG5ld19leHBlY3Rh
dGlvbnMsICIiIkJ1ZyhCKSBbIE1hYyBMaW51eCBYUCBEZWJ1ZyBdIGZhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbCBbIFBhc3MgXQog
QnVnKEEpIFsgRGVidWcgXSA6IGZhc3QvY3NzL2xhcmdlLWxpc3Qtb2YtcnVsZXMtY3Jhc2guaHRt
bCBbIEZhaWx1cmUgXQogIiIiKQogCkBAIC0xMjEsMTIgKzEyMSwxMiBAQCBCdWcoQSkgWyBEZWJ1
ZyBdIDogZmFzdC9jc3MvbGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sIFsgRmFpbHVyZSBd
CiAgICAgICAgIHNlbGYub3B0aW9ucy5zdWZmaXhlcyA9ICdwbmcsd2F2LHR4dCcKICAgICAgICAg
c2VsZi5jb21tYW5kLl9yZWJhc2VsaW5lX3Rlc3RfYW5kX3VwZGF0ZV9leHBlY3RhdGlvbnMoc2Vs
Zi5vcHRpb25zKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50b29sLndlYi51cmxz
X2ZldGNoZWQsCisgICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzZWxmLnRvb2wud2ViLnVy
bHNfZmV0Y2hlZCwKICAgICAgICAgICAgIFtzZWxmLldFQl9QUkVGSVggKyAnL3VzZXJzY3JpcHRz
L2Fub3RoZXItdGVzdC1hY3R1YWwucG5nJywKICAgICAgICAgICAgICBzZWxmLldFQl9QUkVGSVgg
KyAnL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwud2F2JywKICAgICAgICAgICAgICBz
ZWxmLldFQl9QUkVGSVggKyAnL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwudHh0J10p
CiAgICAgICAgIG5ld19leHBlY3RhdGlvbnMgPSBzZWxmLl9yZWFkKHNlbGYubGlvbl9leHBlY3Rh
dGlvbnNfcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdfZXhwZWN0YXRpb25zLCAi
QnVnKHgpIFsgTW91bnRhaW5MaW9uIFNub3dMZW9wYXJkIF0gdXNlcnNjcmlwdHMvYW5vdGhlci10
ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbmJ1Zyh6KSBbIExpbnV4IF0gdXNlcnNjcmlw
dHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbiIpCisgICAgICAgIHNl
bGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwobmV3X2V4cGVjdGF0aW9ucywgIkJ1Zyh4KSBbIE1vdW50
YWluTGlvbiBTbm93TGVvcGFyZCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdXG5idWcoeikgWyBMaW51eCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVz
dC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdXG4iKQogCiAgICAgZGVmIHRlc3RfcmViYXNlbGlu
ZV9kb2VzX25vdF9pbmNsdWRlX292ZXJyaWRlcyhzZWxmKToKICAgICAgICAgc2VsZi5fd3JpdGUo
c2VsZi5saW9uX2V4cGVjdGF0aW9uc19wYXRoLCAiQnVnKHgpIFsgTWFjIF0gdXNlcnNjcmlwdHMv
YW5vdGhlci10ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbkJ1Zyh6KSBbIExpbnV4IF0g
dXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbiIpCkBA
IC0xMzYsMjMgKzEzNiwyMyBAQCBCdWcoQSkgWyBEZWJ1ZyBdIDogZmFzdC9jc3MvbGFyZ2UtbGlz
dC1vZi1ydWxlcy1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiAgICAgICAgIHNlbGYub3B0aW9ucy5z
dWZmaXhlcyA9ICdwbmcsd2F2LHR4dCcKICAgICAgICAgc2VsZi5jb21tYW5kLl9yZWJhc2VsaW5l
X3Rlc3RfYW5kX3VwZGF0ZV9leHBlY3RhdGlvbnMoc2VsZi5vcHRpb25zKQogCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi50b29sLndlYi51cmxzX2ZldGNoZWQsCisgICAgICAgIHNlbGYu
YXNzZXJ0SXRlbXNFcXVhbChzZWxmLnRvb2wud2ViLnVybHNfZmV0Y2hlZCwKICAgICAgICAgICAg
IFtzZWxmLldFQl9QUkVGSVggKyAnL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwucG5n
JywKICAgICAgICAgICAgICBzZWxmLldFQl9QUkVGSVggKyAnL3VzZXJzY3JpcHRzL2Fub3RoZXIt
dGVzdC1hY3R1YWwud2F2JywKICAgICAgICAgICAgICBzZWxmLldFQl9QUkVGSVggKyAnL3VzZXJz
Y3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwudHh0J10pCiAKICAgICAgICAgbmV3X2V4cGVjdGF0
aW9ucyA9IHNlbGYuX3JlYWQoc2VsZi5saW9uX2V4cGVjdGF0aW9uc19wYXRoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG5ld19leHBlY3RhdGlvbnMsICJCdWcoeCkgWyBNb3VudGFpbkxpb24g
U25vd0xlb3BhcmQgXSB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXVxuQnVnKHopIFsgTGludXggXSB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXVxuIikKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVh
bChuZXdfZXhwZWN0YXRpb25zLCAiQnVnKHgpIFsgTW91bnRhaW5MaW9uIFNub3dMZW9wYXJkIF0g
dXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbkJ1Zyh6
KSBbIExpbnV4IF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF1cbiIpCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX3Rlc3Qoc2VsZik6CiAgICAgICAg
IHNlbGYuY29tbWFuZC5fcmViYXNlbGluZV90ZXN0KCJXZWJLaXQgTGludXgiLCAidXNlcnNjcmlw
dHMvYW5vdGhlci10ZXN0Lmh0bWwiLCBOb25lLCAidHh0Iiwgc2VsZi5XRUJfUFJFRklYKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVkLCBbc2VsZi5X
RUJfUFJFRklYICsgJy91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0dWFsLnR4dCddKQorICAg
ICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2VsZi50b29sLndlYi51cmxzX2ZldGNoZWQsIFtz
ZWxmLldFQl9QUkVGSVggKyAnL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwudHh0J10p
CiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX3Rlc3Rfd2l0aF9yZXN1bHRzX2RpcmVjdG9yeShz
ZWxmKToKICAgICAgICAgc2VsZi5fd3JpdGUoc2VsZi5saW9uX2V4cGVjdGF0aW9uc19wYXRoLCAi
QnVnKHgpIFsgTWFjIF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF1cbmJ1Zyh6KSBbIExpbnV4IF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF1cbiIpCiAgICAgICAgIHNlbGYub3B0aW9ucy5yZXN1bHRzX2Rp
cmVjdG9yeSA9ICcvdG1wJwogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdF9h
bmRfdXBkYXRlX2V4cGVjdGF0aW9ucyhzZWxmLm9wdGlvbnMpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc2VsZi50b29sLndlYi51cmxzX2ZldGNoZWQsIFsnZmlsZTovLy90bXAvdXNlcnNjcmlw
dHMvYW5vdGhlci10ZXN0LWFjdHVhbC50eHQnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0Vx
dWFsKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVkLCBbJ2ZpbGU6Ly8vdG1wL3VzZXJzY3JpcHRz
L2Fub3RoZXItdGVzdC1hY3R1YWwudHh0J10pCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX3Rl
c3RfYW5kX3ByaW50X3NjbV9jaGFuZ2VzKHNlbGYpOgogICAgICAgICBzZWxmLmNvbW1hbmQuX3By
aW50X3NjbV9jaGFuZ2VzID0gVHJ1ZQpAQCAtMTYxLDIwICsxNjEsMjAgQEAgQnVnKEEpIFsgRGVi
dWcgXSA6IGZhc3QvY3NzL2xhcmdlLWxpc3Qtb2YtcnVsZXMtY3Jhc2guaHRtbCBbIEZhaWx1cmUg
XQogCiAgICAgICAgIHNlbGYuY29tbWFuZC5fcmViYXNlbGluZV90ZXN0KCJXZWJLaXQgTGludXgi
LCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCBOb25lLCAidHh0IiwgTm9uZSkKIAot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY29tbWFuZC5fc2NtX2NoYW5nZXMsIHsnYWRk
JzogWycvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC91
c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0J10sICdkZWxldGUnOiBbXX0pCisg
ICAgICAgIHNlbGYuYXNzZXJ0RGljdEVxdWFsKHNlbGYuY29tbWFuZC5fc2NtX2NoYW5nZXMsIHsn
YWRkJzogWycvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0J10sICdkZWxldGUnOiBbXX0p
CiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX2FuZF9jb3B5X3Rlc3Qoc2VsZik6CiAgICAgICAg
IHNlbGYuX3dyaXRlKCJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0IiwgImdl
bmVyaWMgcmVzdWx0IikKIAogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdCgi
V2ViS2l0IE1hYzEwLjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCBbImNocm9t
aXVtLW1hYy1zbm93bGVvcGFyZCJdLCAidHh0IiwgTm9uZSkKIAotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNlbGYuX3JlYWQoJ3BsYXRmb3JtL2Nocm9taXVtLW1hYy1saW9uL3VzZXJzY3JpcHRz
L2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQnKSwgc2VsZi5NT0NLX1dFQl9SRVNVTFQpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fcmVhZCgncGxhdGZvcm0vY2hyb21pdW0tbWFjLXNu
b3dsZW9wYXJkL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQnKSwgJ2dlbmVy
aWMgcmVzdWx0JykKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChzZWxmLl9yZWFk
KCdwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtbGlvbi91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhw
ZWN0ZWQudHh0JyksIHNlbGYuTU9DS19XRUJfUkVTVUxUKQorICAgICAgICBzZWxmLmFzc2VydE11
bHRpTGluZUVxdWFsKHNlbGYuX3JlYWQoJ3BsYXRmb3JtL2Nocm9taXVtLW1hYy1zbm93bGVvcGFy
ZC91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0JyksICdnZW5lcmljIHJlc3Vs
dCcpCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX2FuZF9jb3B5X3Rlc3Rfbm9fZXhpc3Rpbmdf
cmVzdWx0KHNlbGYpOgogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdCgiV2Vi
S2l0IE1hYzEwLjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCBbImNocm9taXVt
LW1hYy1zbm93bGVvcGFyZCJdLCAidHh0IiwgTm9uZSkKIAotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHNlbGYuX3JlYWQoJ3BsYXRmb3JtL2Nocm9taXVtLW1hYy1saW9uL3VzZXJzY3JpcHRzL2Fu
b3RoZXItdGVzdC1leHBlY3RlZC50eHQnKSwgc2VsZi5NT0NLX1dFQl9SRVNVTFQpCisgICAgICAg
IHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoc2VsZi5fcmVhZCgncGxhdGZvcm0vY2hyb21pdW0t
bWFjLWxpb24vdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCcpLCBzZWxmLk1P
Q0tfV0VCX1JFU1VMVCkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLnRvb2wuZmlsZXN5
c3RlbS5leGlzdHMoc2VsZi5fZXhwYW5kKCdwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25vd2xlb3Bh
cmQvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCcpKSkKIAogICAgIGRlZiB0
ZXN0X3JlYmFzZWxpbmVfYW5kX2NvcHlfdGVzdF93aXRoX2xpb25fcmVzdWx0KHNlbGYpOgpAQCAt
MTgyLDkgKzE4Miw5IEBAIEJ1ZyhBKSBbIERlYnVnIF0gOiBmYXN0L2Nzcy9sYXJnZS1saXN0LW9m
LXJ1bGVzLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KIAogICAgICAgICBzZWxmLmNvbW1hbmQuX3Jl
YmFzZWxpbmVfdGVzdCgiV2ViS2l0IE1hYzEwLjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0
Lmh0bWwiLCBbImNocm9taXVtLW1hYy1zbm93bGVvcGFyZCJdLCAidHh0Iiwgc2VsZi5XRUJfUFJF
RklYKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50b29sLndlYi51cmxzX2ZldGNo
ZWQsIFtzZWxmLldFQl9QUkVGSVggKyAnL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwu
dHh0J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fcmVhZCgicGxhdGZvcm0vY2hy
b21pdW0tbWFjLXNub3dsZW9wYXJkL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50
eHQiKSwgIm9yaWdpbmFsIGxpb24gcmVzdWx0IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
ZWxmLl9yZWFkKCJwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtbGlvbi91c2Vyc2NyaXB0cy9hbm90aGVy
LXRlc3QtZXhwZWN0ZWQudHh0IiksIHNlbGYuTU9DS19XRUJfUkVTVUxUKQorICAgICAgICBzZWxm
LmFzc2VydEl0ZW1zRXF1YWwoc2VsZi50b29sLndlYi51cmxzX2ZldGNoZWQsIFtzZWxmLldFQl9Q
UkVGSVggKyAnL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwudHh0J10pCisgICAgICAg
IHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoc2VsZi5fcmVhZCgicGxhdGZvcm0vY2hyb21pdW0t
bWFjLXNub3dsZW9wYXJkL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQiKSwg
Im9yaWdpbmFsIGxpb24gcmVzdWx0IikKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVh
bChzZWxmLl9yZWFkKCJwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtbGlvbi91c2Vyc2NyaXB0cy9hbm90
aGVyLXRlc3QtZXhwZWN0ZWQudHh0IiksIHNlbGYuTU9DS19XRUJfUkVTVUxUKQogCiAgICAgZGVm
IHRlc3RfcmViYXNlbGluZV9hbmRfY29weV9ub19vdmVyd3JpdGVfdGVzdChzZWxmKToKICAgICAg
ICAgc2VsZi5fd3JpdGUoInBsYXRmb3JtL2Nocm9taXVtLW1hYy1saW9uL3VzZXJzY3JpcHRzL2Fu
b3RoZXItdGVzdC1leHBlY3RlZC50eHQiLCAib3JpZ2luYWwgbGlvbiByZXN1bHQiKQpAQCAtMTky
LDggKzE5Miw4IEBAIEJ1ZyhBKSBbIERlYnVnIF0gOiBmYXN0L2Nzcy9sYXJnZS1saXN0LW9mLXJ1
bGVzLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KIAogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFz
ZWxpbmVfdGVzdCgiV2ViS2l0IE1hYzEwLjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0
bWwiLCBbImNocm9taXVtLW1hYy1zbm93bGVvcGFyZCJdLCAidHh0IiwgTm9uZSkKIAotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX3JlYWQoInBsYXRmb3JtL2Nocm9taXVtLW1hYy1zbm93
bGVvcGFyZC91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0IiksICJvcmlnaW5h
bCBzbm93bGVvcGFyZCByZXN1bHQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX3Jl
YWQoInBsYXRmb3JtL2Nocm9taXVtLW1hYy1saW9uL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1l
eHBlY3RlZC50eHQiKSwgc2VsZi5NT0NLX1dFQl9SRVNVTFQpCisgICAgICAgIHNlbGYuYXNzZXJ0
TXVsdGlMaW5lRXF1YWwoc2VsZi5fcmVhZCgicGxhdGZvcm0vY2hyb21pdW0tbWFjLXNub3dsZW9w
YXJkL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQiKSwgIm9yaWdpbmFsIHNu
b3dsZW9wYXJkIHJlc3VsdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoc2Vs
Zi5fcmVhZCgicGxhdGZvcm0vY2hyb21pdW0tbWFjLWxpb24vdXNlcnNjcmlwdHMvYW5vdGhlci10
ZXN0LWV4cGVjdGVkLnR4dCIpLCBzZWxmLk1PQ0tfV0VCX1JFU1VMVCkKIAogICAgIGRlZiB0ZXN0
X3JlYmFzZWxpbmVfdGVzdF9pbnRlcm5hbF93aXRoX21vdmVfb3ZlcndyaXR0ZW5fYmFzZWxpbmVz
X3RvKHNlbGYpOgogICAgICAgICBzZWxmLnRvb2wuZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZTIo
KQpAQCAtMjIwLDggKzIyMCw4IEBAIEJ1ZyhBKSBbIERlYnVnIF0gOiBmYXN0L2Nzcy9sYXJnZS1s
aXN0LW9mLXJ1bGVzLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KICAgICAgICAgICAgIG91dCwgXywg
XyA9IG9jLnJlc3RvcmVfb3V0cHV0KCkKICAgICAgICAgICAgIGJ1aWxkZXJzLl9leGFjdF9tYXRj
aGVzID0gb2xkX2V4YWN0X21hdGNoZXMKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYu
X3JlYWQoc2VsZi50b29sLmZpbGVzeXN0ZW0uam9pbihwb3J0LmxheW91dF90ZXN0c19kaXIoKSwg
J3BsYXRmb3JtL3Rlc3QtbWFjLWxlb3BhcmQvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtZXhwZWN0
ZWQudHh0JykpLCAnb3JpZ2luYWwgc25vd2xlb3BhcmQgcmVzdWx0JykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChvdXQsICd7ImFkZCI6IFtdfVxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0
aUxpbmVFcXVhbChzZWxmLl9yZWFkKHNlbGYudG9vbC5maWxlc3lzdGVtLmpvaW4ocG9ydC5sYXlv
dXRfdGVzdHNfZGlyKCksICdwbGF0Zm9ybS90ZXN0LW1hYy1sZW9wYXJkL2ZhaWx1cmVzL2V4cGVj
dGVkL2ltYWdlLWV4cGVjdGVkLnR4dCcpKSwgJ29yaWdpbmFsIHNub3dsZW9wYXJkIHJlc3VsdCcp
CisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwob3V0LCAneyJhZGQiOiBbXX1cbicp
CiAKIAogY2xhc3MgVGVzdFJlYmFzZWxpbmVKc29uKF9CYXNlVGVzdENhc2UpOgpAQCAtMzM1LDgg
KzMzNSw4IEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lRXhwZWN0YXRpb25zKF9CYXNlVGVzdENhc2Up
OgogCiAgICAgICAgICMgRklYTUU6IGNoYW5nZSB0aGlzIHRvIHVzZSB0aGUgdGVzdC0gcG9ydHMu
CiAgICAgICAgIGNhbGxzID0gZmlsdGVyKGxhbWJkYSB4OiB4ICE9IFsncW1ha2UnLCAnLXYnXSwg
c2VsZi50b29sLmV4ZWN1dGl2ZS5jYWxscykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihj
YWxscykgPT0gMSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihjYWxsc1swXSkgPT0gMzYp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNhbGxzKSwgMSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oY2FsbHNbMF0pLCAzNikKIAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmVf
ZXhwZWN0YXRpb25zX25vb3Aoc2VsZik6CiAgICAgICAgIHNlbGYuX3plcm9fb3V0X3Rlc3RfZXhw
ZWN0YXRpb25zKCkKQEAgLTM2Miw3ICszNjIsNyBAQCBjbGFzcyBUZXN0UmViYXNlbGluZUV4cGVj
dGF0aW9ucyhfQmFzZVRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0J1Zyh5
KSB1c2Vyc2NyaXB0cy90ZXN0Lmh0bWwgWyBDcmFzaCBdXG4nKX0KICAgICAgICAgc2VsZi5fd3Jp
dGUoJy91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCcsICcnKQogCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2VsZi5jb21tYW5kLl90ZXN0c190b19yZWJhc2VsaW5lKHNlbGYubGlvbl9w
b3J0KSwgeyd1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCc6IHNldChbJ3BuZycsICd0eHQn
LCAnd2F2J10pfSkKKyAgICAgICAgc2VsZi5hc3NlcnREaWN0RXF1YWwoc2VsZi5jb21tYW5kLl90
ZXN0c190b19yZWJhc2VsaW5lKHNlbGYubGlvbl9wb3J0KSwgeyd1c2Vyc2NyaXB0cy9hbm90aGVy
LXRlc3QuaHRtbCc6IHNldChbJ3BuZycsICd0eHQnLCAnd2F2J10pfSkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLl9yZWFkKHNlbGYubGlvbl9leHBlY3RhdGlvbnNfcGF0aCksICcnKQog
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yb2xs
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JvbGxf
dW5pdHRlc3QucHkKaW5kZXggYmYyOTk2NDJiMWMyMWU3YWVhMGU3MmFmOTUyMmRjMjliNmZiNGNm
My4uZTFjY2MzOGVmOWZmNGI2YzM1YmNlMzFmYWY2NGM0MjNiMjFhNmZiYyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JvbGxfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JvbGxfdW5pdHRlc3QucHkK
QEAgLTU3LDcgKzU3LDcgQEAgY2xhc3MgUG9zdFJvbGxDb21tYW5kc1Rlc3QoQ29tbWFuZHNUZXN0
KToKICAgICAgICAgb3B0aW9ucyA9IE1vY2tPcHRpb25zKCkKICAgICAgICAgdG9vbCA9IE1vY2tU
b29sKCkKICAgICAgICAgbGtncl9zdGF0ZSA9IHBvc3Ryb2xsLl9wcmVwYXJlX3N0YXRlKG9wdGlv
bnMsIFtOb25lLCAibGFzdC1rbm93biBnb29kIHJldmlzaW9uIl0sIHRvb2wpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoTm9uZSwgbGtncl9zdGF0ZVsiY2hyb21pdW1fcmV2aXNpb24iXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRJc05vbmUobGtncl9zdGF0ZVsiY2hyb21pdW1fcmV2aXNpb24iXSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiUm9sbCBDaHJvbWl1bSBERVBTIHRvIGxhc3Qta25v
d24gZ29vZCByZXZpc2lvbiIsIGxrZ3Jfc3RhdGVbImJ1Z190aXRsZSJdKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCJVbnJldmlld2VkLiAgUm9sbGVkIERFUFMuXG5cbiIsIGxrZ3Jfc3RhdGVb
ImNoYW5nZWxvZ19tZXNzYWdlIl0pCiAgICAgICAgIHJldmlzaW9uX3N0YXRlID0gcG9zdHJvbGwu
X3ByZXBhcmVfc3RhdGUob3B0aW9ucywgWyIxMjM0IiwgInIxMjM0IiwgInRlc3QgbWVzc2FnZSJd
LCB0b29sKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2dyYW1tYXJf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvZ3JhbW1hcl91bml0dGVz
dC5weQppbmRleCBhZmM2N2RiMTliMzhiOGQ1NTZkNzExNWZlMGZkNWY5MWMzNTBiNTk4Li5kZDgw
ODFmMzIwZTc1MDA2Yzg1MWQyZGEyMGQ0YzllNTViNTJmOGU2IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvZ3JhbW1hcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvZ3JhbW1hcl91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAog
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQg
dW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkudG9vbC5ncmFtbWFyIGltcG9y
dCBqb2luX3dpdGhfc2VwYXJhdG9ycwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvbW9ja3Rvb2xfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvbW9ja3Rvb2xfdW5pdHRlc3QucHkKaW5kZXggNTExNzkwOTFmNjNjZTlmNDJjNWJjMjk5ZDU0
YzFiMDczODk0NWUyNy4uMzVmZGQzYWFjNmU0NTQ2OWI4OTEyYTczMzFhYWI2NWQzNTBmYzgzNCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbF91bml0dGVzdC5w
eQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1w
b3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gbW9ja3Rv
b2wgaW1wb3J0IE1vY2tPcHRpb25zCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9tdWx0aWNvbW1hbmR0b29sX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL211bHRpY29tbWFuZHRvb2xfdW5pdHRlc3QucHkKaW5kZXggYTAxZTZhZGQxOTBk
ZTcwY2E3YTY0MTBlNzJiMzFmYjcyNWY0MjY4Yy4uNzIzMDIzNWE2OTBlYjU5NzFmZjFhMjQ5Y2Zk
NTNmYWY5MjBlZWIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL211
bHRpY29tbWFuZHRvb2xfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL211bHRpY29tbWFuZHRvb2xfdW5pdHRlc3QucHkKQEAgLTI3LDcgKzI3LDcgQEAKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAogaW1wb3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3Qy
IGFzIHVuaXR0ZXN0CiAKIGZyb20gb3B0cGFyc2UgaW1wb3J0IG1ha2Vfb3B0aW9uCiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZl
cl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRl
bmluZ3NlcnZlcl91bml0dGVzdC5weQppbmRleCA0MzhjYzA1ODNiZTAzNDgyM2MxZmY5YTY1ZjE2
MDJkODAxYzdjMWI5Li40NWJkNGVlNWJkZmZmMzY0OTZkZGVjZDFjYjZhZWY0MzNmNzNiZjQ0IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdz
ZXJ2ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZl
cnMvZ2FyZGVuaW5nc2VydmVyX3VuaXR0ZXN0LnB5CkBAIC0yOCw3ICsyOCw3IEBACiAKIGltcG9y
dCBqc29uCiBpbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMg
dW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1w
b3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0
X2NvbmZpZ3VyYXRpb24gaW1wb3J0ICoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5Cmlu
ZGV4IGY1YzFjYmY1ZTEzNWFlMWM5YmEwYWU5YTNlYWMwOTBiOGUwZGI5YmEuLmZkMTljNGQ0NzAw
YjFhNzMzMjVjZjkwNTQ1NzYyYTEzYWVhMmQ3NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0
dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQganNvbgot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLm5ldCBpbXBvcnQgcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QKIGZyb20g
d2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKQEAgLTIxMSw3ICsyMTEs
NyBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZXJ2ZXIuX3Rlc3RfY29uZmlnID0gZ2V0X3Rlc3RfY29uZmlnKCkKICAgICAgICAgc2VydmVy
Ll9nYXRoZXJfYmFzZWxpbmVzKHJlc3VsdHNfanNvbikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChyZXN1bHRzX2pzb25bJ3Rlc3RzJ11bJ3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEcm9wU2hh
ZG93RWxlbWVudC1kb20tc3RkRGV2aWF0aW9uLWF0dHIuaHRtbCddWydzdGF0ZSddLCAnbmVlZHNf
cmViYXNlbGluZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoJ3Byb3RvdHlwZS1jaG9jb2xh
dGUuaHRtbCcgaW4gcmVzdWx0c19qc29uWyd0ZXN0cyddKQorICAgICAgICBzZWxmLmFzc2VydE5v
dEluKCdwcm90b3R5cGUtY2hvY29sYXRlLmh0bWwnLCByZXN1bHRzX2pzb25bJ3Rlc3RzJ10pCiAK
ICAgICBkZWYgX2Fzc2VydFJlYmFzZWxpbmUoc2VsZiwgdGVzdF9maWxlcywgcmVzdWx0c19maWxl
cywgdGVzdF9uYW1lLCBiYXNlbGluZV90YXJnZXQsIGJhc2VsaW5lX21vdmVfdG8sIGV4cGVjdGVk
X3N1Y2Nlc3MsIGV4cGVjdGVkX2xvZyk6CiAgICAgICAgIGxvZyA9IFtdCkBAIC0yMzQsNyArMjM0
LDcgQEAgY2xhc3MgR2V0QWN0dWFsUmVzdWx0RmlsZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgICAgICdmYXN0L3RleHQyLWFjdHVhbC50eHQnLAogICAgICAgICAgICAgJ2Zhc3Qv
dGV4dC1ub3RhY3R1YWwudHh0JywKICAgICAgICAgKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKAogICAgICAgICAgICAgKCd0ZXh0LWFj
dHVhbC50eHQnLCksCiAgICAgICAgICAgICByZWJhc2VsaW5lc2VydmVyLl9nZXRfYWN0dWFsX3Jl
c3VsdF9maWxlcygKICAgICAgICAgICAgICAgICAnZmFzdC90ZXh0Lmh0bWwnLCB0ZXN0X2NvbmZp
ZykpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWZs
ZWN0aW9uaGFuZGxlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
ZXJ2ZXJzL3JlZmxlY3Rpb25oYW5kbGVyX3VuaXR0ZXN0LnB5CmluZGV4IGQyNjlkZmNmNTAzYjZl
YjUyMzJhMWY2ZGIxZDJmN2Q0NDliMjA5MDQuLmUxZDU2MjM2NGZlYzU2OWFiODNhYjg3OTk2ODQ2
MGMyMDdiMzlkZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL3JlZmxlY3Rpb25oYW5kbGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL3JlZmxlY3Rpb25oYW5kbGVyX3VuaXR0ZXN0LnB5CkBAIC0yNiw3
ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRl
c3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS50b29sLnNl
cnZlcnMucmVmbGVjdGlvbmhhbmRsZXIgaW1wb3J0IFJlZmxlY3Rpb25IYW5kbGVyCiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZv
cnBuZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRz
dm5taW1ldHlwZWZvcnBuZ191bml0dGVzdC5weQppbmRleCA5ZmFiNmY0Mzg2NTE3Y2Q3NGUyZTQ5
ZWI2YTYxNmRiZmQ3MWM1MGQ2Li4xMmJlMGJlZTJiNGY5ZGI3YWQzMmU1MGU5M2ZmZDMyODdkMjQ4
MTMzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3Zu
bWltZXR5cGVmb3JwbmdfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nX3VuaXR0ZXN0LnB5CkBAIC0yMSw3ICsyMSw3
IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2lt
cG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFk
ZHN2bm1pbWV0eXBlZm9ycG5nIGltcG9ydCBBZGRTdm5NaW1ldHlwZUZvclBuZwogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hcHBseXdhdGNo
bGlzdF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hcHBs
eXdhdGNobGlzdF91bml0dGVzdC5weQppbmRleCBhOTc4ZjQxNjQ4NTJjZWFkZWM4NWZmZDI3MDQ2
YTJhNzM4Y2I2ODBmLi5hNzQwYzNkM2NmYTkzOGM0MDc2MzkyY2U1YTU1MzdhODdmNzAzNDQwIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYXBwbHl3YXRjaGxp
c3RfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2Fw
cGx5d2F0Y2hsaXN0X3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMg
dW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1w
b3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9j
a09wdGlvbnMsIE1vY2tUb29sCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvY2xlYW53b3JraW5nZGlyZWN0b3J5X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL2NsZWFud29ya2luZ2RpcmVjdG9yeV91bml0dGVzdC5weQpp
bmRleCAxYTIwOTNkZjJhNDk5YTg1NTQ4NmM3ZDUwYjViZTUzNTA4Yjg1YmVlLi43ZTMxYTliZDg4
MTkwYWU5ZTZmN2I2YmJkMTk1YWZlZjY1ZDU4YTlmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2xlYW53b3JraW5nZGlyZWN0b3J5X3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jbGVhbndvcmtpbmdkaXJlY3Rv
cnlfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAog
CiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkubW9jayBpbXBvcnQgTW9jawogZnJvbSB3ZWJraXRw
eS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucywgTW9ja1Rvb2wKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jbG9zZWJ1Z2ZvcmxhbmRkaWZmX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2Nsb3NlYnVnZm9y
bGFuZGRpZmZfdW5pdHRlc3QucHkKaW5kZXggNjk2OWM0ZTlhMjMwZTQ0N2ZmZDgwNWJiNWVmNjIz
YjZiZDQ5MjQxMi4uYjA0MmQ0MjU4MDRhZTgyNzAxOTRmYmQyZTY3OWFiMzlkMjM2Njk5NSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2Nsb3NlYnVnZm9ybGFu
ZGRpZmZfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L2Nsb3NlYnVnZm9ybGFuZGRpZmZfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0
ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2Fw
dHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGlt
cG9ydCBNb2NrT3B0aW9ucywgTW9ja1Rvb2wKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9jb21taXRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvY29tbWl0X3VuaXR0ZXN0LnB5CmluZGV4IDkzNmUzZWJhYmIyZWRhYjMw
Y2E4NWYwMjA2YWIxMWNhMjYxMDExZjIuLmM2Yjc2YjQyOGVmNzg0YWE3MmNlMDA5ZjY3MmRlYTBk
NGFlYjRmOTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9j
b21taXRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L2NvbW1pdF91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0
ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBP
dXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9y
dCBTY3JpcHRFcnJvcgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL2Rpc2NhcmRsb2NhbGNoYW5nZXNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvZGlzY2FyZGxvY2FsY2hhbmdlc191bml0dGVzdC5weQppbmRleCA2Zjhm
NDJjNWE4YzA5ZTI3YmRhZDIxOWIwODEyMjcxNGIxNzk2NzZmLi5kMzhmYzkyNmMzMjU0M2I3Yzg5
OTU0YTY3YTYxYTA2ODM1MDE0ZDdlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvZGlzY2FyZGxvY2FsY2hhbmdlc191bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvZGlzY2FyZGxvY2FsY2hhbmdlc191bml0dGVzdC5w
eQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1w
b3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0
cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rv
b2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ191bml0dGVzdC5w
eQppbmRleCBmYzMxZDFmYTk2ZTNmNGY4Y2M1NmIzNWM2YWNiZmQ0ODU2YjgzYTMwLi44MTFhMTQ4
Njk0YWQ5MWJiZmQzMDQ1MjBjNTQ0NmY2OWI0YWFiZjc2IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ191bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ191bml0
dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgb3MKLWlt
cG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiAjIERvIG5vdCBp
bXBvcnQgY2hhbmdlbG9nX3VuaXR0ZXN0LkNoYW5nZUxvZ1Rlc3QgZGlyZWN0bHkgYXMgdGhhdCB3
aWxsIGNhdXNlIGl0IHRvIGJlIHJ1biBhZ2Fpbi4KIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNr
b3V0IGltcG9ydCBjaGFuZ2Vsb2dfdW5pdHRlc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nZm9ycmV2ZXJ0X3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dmb3Jy
ZXZlcnRfdW5pdHRlc3QucHkKaW5kZXggYjgyY2I0YWEyMmIzY2RjY2YwZGE0NDA3NmMzYzU2ODhm
ZTMwNTQ5Ny4uYTAxNzk4OGEyZGQxMzIwZDgwYjMzMTQ5Y2NlNzA2MmMxOWI2Y2ZkNyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dm
b3JyZXZlcnRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dmb3JyZXZlcnRfdW5pdHRlc3QucHkKQEAgLTI5LDcgKzI5LDcg
QEAKIGltcG9ydCBjb2RlY3MKIGltcG9ydCBvcwogaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5p
dHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogIyBEbyBub3QgaW1wb3J0IGNo
YW5nZWxvZ191bml0dGVzdC5DaGFuZ2VMb2dUZXN0IGRpcmVjdGx5IGFzIHRoYXQgd2lsbCBjYXVz
ZSBpdCB0byBiZSBydW4gYWdhaW4uCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dCBpbXBv
cnQgY2hhbmdlbG9nX3VuaXR0ZXN0CkBAIC0xMTUsOCArMTE1LDggQEAgY2xhc3MgVXBkYXRlQ2hh
bmdlTG9nc0ZvclJldmVydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBjaGFuZ2Vs
b2cudXBkYXRlX3dpdGhfdW5yZXZpZXdlZF9tZXNzYWdlKFByZXBhcmVDaGFuZ2VMb2dGb3JSZXZl
cnQuX21lc3NhZ2VfZm9yX3JldmVydCgqYXJncykpCiAgICAgICAgIGFjdHVhbF9lbnRyeSA9IGNo
YW5nZWxvZy5sYXRlc3RfZW50cnkoKQogICAgICAgICBvcy5yZW1vdmUoY2hhbmdlbG9nX3BhdGgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2VudHJ5LmNvbnRlbnRzKCksIGV4cGVj
dGVkX2VudHJ5KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9lbnRyeS5yZXZpZXdl
cl90ZXh0KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoYWN0dWFs
X2VudHJ5LmNvbnRlbnRzKCksIGV4cGVjdGVkX2VudHJ5KQorICAgICAgICBzZWxmLmFzc2VydElz
Tm9uZShhY3R1YWxfZW50cnkucmV2aWV3ZXJfdGV4dCgpKQogICAgICAgICAjIFRoZXNlIGNoZWNr
cyBjb3VsZCBiZSByZW1vdmVkIHRvIGFsbG93IHRoaXMgdG8gd29yayBvbiBvdGhlciBlbnRyaWVz
OgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9lbnRyeS5hdXRob3JfbmFtZSgpLCAi
RXJpYyBTZWlkZWwiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9lbnRyeS5hdXRo
b3JfZW1haWwoKSwgImVyaWNAd2Via2l0Lm9yZyIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkKaW5kZXggOTY3NTg1YzA1
MmEyOGZjOWQ1Y2NmYWE1NTAwMjk2MWU2NDFjYjE1ZS4uYjMxNTFlODVjYWM2N2ZkZDgxMDc3OThk
ODllZmUxMzdhZDI4NTgzZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRl
c3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0
dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1w
b3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4IDQxYzc5ODM1NDU4MjIzN2E0YWZm
NzkzYWFiMTU3ZDg5YWRlOTBjMDIuLjQ4ZWUyNmZhMmM3ZjgzYWI2NjY1NjA0ZDQwZTE4N2Q2NTdk
NTJlNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVw
c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3Rl
cHNfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAog
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0
Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLnBvcnRzIGltcG9ydCBEZXByZWNh
dGVkUG9ydApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N1
Z2dlc3RyZXZpZXdlcnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvc3VnZ2VzdHJldmlld2Vyc191bml0dGVzdC5weQppbmRleCA0MjI1NGM4NmJkOTZmYWU2
ZDE5ZTg5ZTViZjMwOGFmNmVmMDBjM2EyLi5mYzA5NmYxMTg3ZTZjMmVmNTYwYTkzZDBkN2JiYjdk
NDU0YTNjMDdkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
c3VnZ2VzdHJldmlld2Vyc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvc3VnZ2VzdHJldmlld2Vyc191bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBA
QAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBv
cnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5v
dXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9j
a3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3VwZGF0ZV91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy91cGRhdGVfdW5pdHRlc3QucHkKaW5kZXggYzFhOTM0ZGI1
ZjZjODM3Zjk3ZjA2YjI1YjNiZjBjNmMxYWQyNzAzYy4uMDg2NmM0YjdkZjY0N2MxOGYxNWI2YmRh
ZDNhYjMyNGFlODdhNWVmNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3VwZGF0ZV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvdXBkYXRlX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIg
YXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLnBvcnRzIGltcG9ydCBD
aHJvbWl1bVBvcnQsIENocm9taXVtQW5kcm9pZFBvcnQsIENocm9taXVtWFZGQlBvcnQKIGZyb20g
d2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMsIE1vY2tUb29sCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvdXBkYXRlY2hhbmdlbG9n
c3dpdGhyZXZpZXdfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvdXBkYXRlY2hhbmdlbG9nc3dpdGhyZXZpZXdfdW5pdHRlc3QucHkKaW5kZXggMzE4MmNmM2Fi
OWJlMTFhOGU5Mzg0NjQ0MmU1MjQwZTQ5NTQ3ZGY0Zi4uZDQzM2UzZjIxMjk3ZDhhZGQ5ODY3NmUx
ZjFlNjNlZGVlYTU2MzIzOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3VwZGF0ZWNoYW5nZWxvZ3N3aXRocmV2aWV3X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy91cGRhdGVjaGFuZ2Vsb2dzd2l0aHJldmlld191
bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0
dXJlCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2Nr
VG9vbApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ZhbGlk
YXRlY2hhbmdlbG9nc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy92YWxpZGF0ZWNoYW5nZWxvZ3NfdW5pdHRlc3QucHkKaW5kZXggYzNiNzIzZWQxNzI4ZWVh
ZWU2ZmIxZDYwZGEzYmE2N2U3NzE3MGY0Yi4uOGEyM2JlNDliNDUzOGUxNWZjNGU0YmNjZWI4N2Ni
MDFiNWYzMDhiZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3ZhbGlkYXRlY2hhbmdlbG9nc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvdmFsaWRhdGVjaGFuZ2Vsb2dzX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsy
Niw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QK
K2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkudGhp
cmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184143</attachid>
            <date>2013-01-22 22:39:17 -0800</date>
            <delta_ts>2013-01-22 23:14:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105607-20130123173609.patch</filename>
            <type>text/plain</type>
            <size>184581</size>
            <attacher name="Tim &apos;mithro&apos; Ansell">mithro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzgwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODIyNjZlMjU3YzA5YTc5MzA2NGU2NzczZGJlZTkxYWFm
NzM4YmRkNC4uZjQ2OTZhZGE4OTc4NDVjMTc2MTU5Y2Y5ZmEyNTllZDA5NjlhZDViMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDEzLTAxLTIxICBUaW0gJ21pdGhybycgQW5zZWxsICA8bWl0aHJvQG1pdGhpcy5jb20+
CisKKyAgICAgICAgVXNlIFB5dGhvbiAyLjcgdW5pdHRlc3Qgc3ludGF4IGluIG91ciB1bml0dGVz
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTYw
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS8qKi8qX3VuaXR0ZXN0LnB5OgorCiAyMDEzLTAxLTIxICBEaXJrIFNjaHVs
emUgIDxkc2NodWx6ZUBhZG9iZS5jb20+CiAKICAgICAgICAgQWRkIGJ1aWxkIGZsYWcgZm9yIENh
bnZhcydzIFBhdGggb2JqZWN0IChkaXNhYmxlZCBieSBkZWZhdWx0KQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvYmFzZWxpbmVvcHRpbWl6ZXJfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9iYXNlbGlu
ZW9wdGltaXplcl91bml0dGVzdC5weQppbmRleCAxNmQ4NjViODk1MjNkMGRlYzIxMzExYTJhMzE2
M2U1YTkzODI1ODEzLi4zMDhmYzE3ODdhODQ0OWIwY2NlMjNmZTQ0MjFiM2ViNGVlMTE0ZDIyIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9iYXNlbGlu
ZW9wdGltaXplcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9iYXNlbGluZW9wdGltaXplcl91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBA
QAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1
bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuYmFz
ZWxpbmVvcHRpbWl6ZXIgaW1wb3J0IEJhc2VsaW5lT3B0aW1pemVyCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdl
bG9nX3VuaXR0ZXN0LnB5CmluZGV4IGZhMjMzOWY0NTY2ZTU0OTRiYzIwZjI0ZDJiNWJiNmYwMjIw
ZTk0YWQuLjljZDI2YTA1YTQ5ZDFhYmQzZTQ4NjUwYzE2YTgxNmMyMzQ3OGEzMTYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZ191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGFu
Z2Vsb2dfdW5pdHRlc3QucHkKQEAgLTI5LDcgKzI5LDcgQEAKIGltcG9ydCBjb2RlY3MKIGltcG9y
dCBvcwogaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIg
YXMgdW5pdHRlc3QKIAogZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KIApAQCAtMjQ2LDcg
KzI0Niw3IEBAIGNsYXNzIENoYW5nZUxvZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlZF9lbnRyaWVzWzRdLnJldmlld2VyX3RleHQoKSwgIkRh
dmlkIEh5YXR0IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1s1XS5y
ZXZpZXdlcl90ZXh0KCksICJBZGFtIFJvYmVuIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
YXJzZWRfZW50cmllc1s2XS5yZXZpZXdlcl90ZXh0KCksICJUb255IENoYW5nIikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1s3XS5yZXZpZXdlcl90ZXh0KCksIE5vbmUp
CisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHBhcnNlZF9lbnRyaWVzWzddLnJldmlld2VyX3Rl
eHQoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1s4XS5yZXZpZXdl
cl90ZXh0KCksICdEYXJpbiBBZGxlcicpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9sb2dfZW50cmll
c19mcm9tX2Fubm90YXRlZF9maWxlKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hlY2tvdXRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGVja291dF91bml0dGVzdC5weQppbmRleCBh
M2I0N2M5NWU5MTY3ZmEwYzJkMzZhZGIwOWFkZWIxNTU2ZjY2NWU1Li44NWUzZGQ0ZGQ2MzZjNDM2
MDYwMDkzYmMxZWU4M2Q1ZGZiMzFlYTYyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9jaGVja291dF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGVja291dF91bml0dGVzdC5weQpAQCAtMzAs
NyArMzAsNyBAQCBpbXBvcnQgY29kZWNzCiBpbXBvcnQgb3MKIGltcG9ydCBzaHV0aWwKIGltcG9y
dCB0ZW1wZmlsZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0
CiAKIGZyb20gLmNoZWNrb3V0IGltcG9ydCBDaGVja291dAogZnJvbSAuY2hhbmdlbG9nIGltcG9y
dCBDaGFuZ2VMb2dFbnRyeQpAQCAtMTQxLDcgKzE0MSw3IEBAIFNlY29uZCBwYXJ0IG9mIHRoaXMg
Y29tcGxpY2F0ZWQgY2hhbmdlIGJ5IG1lLCBUb3IgQXJuZSBWZXN0Ylx1MDBmOCEKICAgICAgICAg
Y29tbWl0X21lc3NhZ2UgPSBjaGVja291dC5jb21taXRfbWVzc2FnZV9mb3JfdGhpc19jb21taXQo
Z2l0X2NvbW1pdD1Ob25lLCByZXR1cm5fc3RkZXJyPVRydWUpCiAgICAgICAgICMgVGhyb3cgYXdh
eSB0aGUgZmlyc3QgbGluZSAtIGEgd2FybmluZyBhYm91dCB1bmtub3duIFZDUyByb290LgogICAg
ICAgICBjb21taXRfbWVzc2FnZS5tZXNzYWdlX2xpbmVzID0gY29tbWl0X21lc3NhZ2UubWVzc2Fn
ZV9saW5lc1sxOl0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRfbWVzc2FnZS5tZXNz
YWdlKCksIHNlbGYuZXhwZWN0ZWRfY29tbWl0X21lc3NhZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0
TXVsdGlMaW5lRXF1YWwoY29tbWl0X21lc3NhZ2UubWVzc2FnZSgpLCBzZWxmLmV4cGVjdGVkX2Nv
bW1pdF9tZXNzYWdlKQogCiAKIGNsYXNzIENoZWNrb3V0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CkBAIC0xNjAsNyArMTYwLDcgQEAgY2xhc3MgQ2hlY2tvdXRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgY2hlY2tvdXQgPSBzZWxmLl9tYWtlX2NoZWNrb3V0KCkKICAgICAgICAgY2hl
Y2tvdXQuX3NjbS5jb250ZW50c19hdF9yZXZpc2lvbiA9IG1vY2tfY29udGVudHNfYXRfcmV2aXNp
b24KICAgICAgICAgZW50cnkgPSBjaGVja291dC5fbGF0ZXN0X2VudHJ5X2Zvcl9jaGFuZ2Vsb2df
YXRfcmV2aXNpb24oImZvbyIsICJiYXIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVudHJ5
LmNvbnRlbnRzKCksIF9jaGFuZ2Vsb2cxZW50cnkxKQorICAgICAgICBzZWxmLmFzc2VydE11bHRp
TGluZUVxdWFsKGVudHJ5LmNvbnRlbnRzKCksIF9jaGFuZ2Vsb2cxZW50cnkxKSAgIyBQeWxpbnQg
aXMgY29uZnVzZWQgYWJvdXQgdGhpcyBsaW5lLCBweWxpbnQ6IGRpc2FibGU9RTExMDEKIAogICAg
ICMgRklYTUU6IFRoaXMgdGVzdHMgYSBoYWNrIGFyb3VuZCBvdXIgY3VycmVudCBjaGFuZ2VkX2Zp
bGVzIGhhbmRsaW5nLgogICAgICMgUmlnaHQgbm93IGNoYW5nZWxvZ19lbnRyaWVzX2Zvcl9yZXZp
c2lvbiB0cmllcyB0byBmZXRjaCBkZWxldGVkIGZpbGVzCkBAIC0xOTEsMTAgKzE5MSwxMCBAQCBj
bGFzcyBDaGVja291dFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1pdGluZm8uYnVnX2lkKCksIDM2NjI5KQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbW1pdGluZm8uYXV0aG9yX25hbWUoKSwgdSJUb3IgQXJuZSBWZXN0Ylx1MDBmOCIpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0aW5mby5hdXRob3JfZW1haWwoKSwgInZlc3Ri
b0B3ZWJraXQub3JnIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRpbmZvLnJldmll
d2VyX3RleHQoKSwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRpbmZvLnJl
dmlld2VyKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGNvbW1pdGluZm8ucmV2
aWV3ZXJfdGV4dCgpKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShjb21taXRpbmZvLnJldmll
d2VyKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0aW5mby5jb21taXR0ZXJfZW1h
aWwoKSwgImNvbW1pdHRlckBleGFtcGxlLmNvbSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbWl0aW5mby5jb21taXR0ZXIoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUo
Y29tbWl0aW5mby5jb21taXR0ZXIoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRp
bmZvLnRvX2pzb24oKSwgewogICAgICAgICAgICAgJ2J1Z19pZCc6IDM2NjI5LAogICAgICAgICAg
ICAgJ2F1dGhvcl9lbWFpbCc6ICd2ZXN0Ym9Ad2Via2l0Lm9yZycsCkBAIC0yMDcsNyArMjA3LDcg
QEAgY2xhc3MgQ2hlY2tvdXRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgfSkKIAog
ICAgICAgICBjaGVja291dC5jaGFuZ2Vsb2dfZW50cmllc19mb3JfcmV2aXNpb24gPSBsYW1iZGEg
cmV2aXNpb24sIGNoYW5nZWRfZmlsZXM9Tm9uZTogW10KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjaGVja291dC5jb21taXRfaW5mb19mb3JfcmV2aXNpb24oMSksIE5vbmUpCisgICAgICAgIHNl
bGYuYXNzZXJ0SXNOb25lKGNoZWNrb3V0LmNvbW1pdF9pbmZvX2Zvcl9yZXZpc2lvbigxKSkKIAog
ICAgIGRlZiB0ZXN0X2J1Z19pZF9mb3JfcmV2aXNpb24oc2VsZik6CiAgICAgICAgIGNoZWNrb3V0
ID0gc2VsZi5fbWFrZV9jaGVja291dCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9jb21taXRpbmZvX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY29tbWl0aW5mb191bml0dGVzdC5weQppbmRleCBm
NThlNmYxZWE4MjljOWIyZDdkY2I5OTY0YzQ4ZDU1ZWM1MTcxOGI5Li44MjY2NzNkZTY0MDJjY2Q1
OGU3ZTBmYTEzYjMzMDY4NjM5NWU1N2JhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9jb21taXRpbmZvX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NvbW1pdGluZm9fdW5pdHRlc3QucHkKQEAg
LTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1
bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5jaGVja291dC5jb21taXRpbmZvIGltcG9ydCBDb21taXRJbmZvCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBpbXBvcnQgQ29tbWl0dGVyTGlzdCwgQ29tbWl0dGVy
LCBSZXZpZXdlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvc2NtL2RldGVjdGlvbl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NoZWNrb3V0L3NjbS9kZXRlY3Rpb25fdW5pdHRlc3QucHkKaW5kZXggM2ExNTQ2NmZh
YTViZjViMmRlZDA5Y2RmOTEzMGU5YzFiZjU1ZWEyOS4uNTkzZjA5M2M0NjQ0MjAxMTVkZjk2N2Iw
ZmQ2MThjMGY2NTUyNDU1MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvc2NtL2RldGVjdGlvbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vZGV0ZWN0aW9uX3VuaXR0ZXN0LnB5CkBAIC00
Nyw1ICs0Nyw1IEBAIE1PQ0sgcnVuX2NvbW1hbmQ6IFsnc3ZuJywgJ2luZm8nXSwgY3dkPS8KIE1P
Q0sgcnVuX2NvbW1hbmQ6IFsnZ2l0JywgJ3Jldi1wYXJzZScsICctLWlzLWluc2lkZS13b3JrLXRy
ZWUnXSwgY3dkPS8KICIiIgogICAgICAgICBzY20gPSBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291
dHB1dHMoc2VsZiwgZGV0ZWN0b3IuZGV0ZWN0X3NjbV9zeXN0ZW0sIFsiLyJdLCBleHBlY3RlZF9s
b2dzPWV4cGVjdGVkX2xvZ3MpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2NtLCBOb25lKQor
ICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzY20pCiAgICAgICAgICMgRklYTUU6IFRoaXMgc2hv
dWxkIG1ha2UgYSBzeW50aGV0aWMgdHJlZSBhbmQgdGVzdCBTVk4gYW5kIEdpdCBkZXRlY3Rpb24g
aW4gdGhhdCB0cmVlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y29uZmlnL2J1aWxkX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y29uZmlnL2J1aWxkX3VuaXR0ZXN0LnB5CmluZGV4IDk3Mzk5NWRjN2ViYzUwNmIzMzE1ODlhMjQ1
NjZlMDdjZmM3OTkwN2EuLmRlYjdiOTIzMjU5ZDk2ZGIzODcwYTdiOGIwZjllY2FjYWViN2YwZWYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9idWlsZF91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvYnVp
bGRfdW5pdHRlc3QucHkKQEAgLTIwLDcgKzIwLDcgQEAKICMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVu
aXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZyBpbXBvcnQgYnVpbGQKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnNf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0
dGVyc191bml0dGVzdC5weQppbmRleCA3ZjRmNjc3ZTVhZWViODk0MGQ1NmU3NTE4YmU5OTM2NTZl
ZTdiZDAwLi5jZTkzMzViNzliNWMyNjkwYTE2OGJhMWM5NDNkMGFhZmM1YjliNTRlIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVyc191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0
dGVyc191bml0dGVzdC5weQpAQCAtMjUsNyArMjUsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBpbXBvcnQgQWNjb3VudCwg
Q29tbWl0dGVyTGlzdCwgQ29udHJpYnV0b3IsIENvbW1pdHRlciwgUmV2aWV3ZXIKIAogY2xhc3Mg
Q29tbWl0dGVyc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtNTEsNyArNTEsNyBAQCBjbGFz
cyBDb21taXR0ZXJzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICMgVGVzdCB2YWxp
ZCBjb21taXR0ZXIsIHJldmlld2VyIGFuZCBjb250cmlidXRvciBsb29rdXAKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21taXR0ZXJfbGlzdC5jb21taXR0ZXJfYnlfbmFtZSgiVGVzdCBPbmUi
KSwgY29tbWl0dGVyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHRlcl9saXN0LmNv
bW1pdHRlcl9ieV9uYW1lKCJUZXN0IFR3byIpLCByZXZpZXdlcikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb21taXR0ZXJfbGlzdC5jb21taXR0ZXJfYnlfbmFtZSgiVGVzdCBUaHJlZSIpLCBO
b25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShjb21taXR0ZXJfbGlzdC5jb21taXR0ZXJf
YnlfbmFtZSgiVGVzdCBUaHJlZSIpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHRl
cl9saXN0LmNvbnRyaWJ1dG9yX2J5X25hbWUoIlRlc3QgVGhyZWUiKSwgY29udHJpYnV0b3IpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0dGVyX2xpc3QuY29udHJpYnV0b3JfYnlfbmFt
ZSgidGVzdCBvbmUiKSwgY29tbWl0dGVyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1p
dHRlcl9saXN0LmNvbnRyaWJ1dG9yX2J5X25hbWUoInRlc3QgdHdvIiksIHJldmlld2VyKQpAQCAt
NjIsMjEgKzYyLDIxIEBAIGNsYXNzIENvbW1pdHRlcnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
IAogICAgICAgICAjIFRlc3QgbG9va3VwIGJ5IGxvZ2luIGVtYWlsIGFkZHJlc3MKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21taXR0ZXJfbGlzdC5hY2NvdW50X2J5X2xvZ2luKCd6ZXJvQHRl
c3QuY29tJyksIGFjY291bnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0dGVyX2xp
c3QuYWNjb3VudF9ieV9sb2dpbignemVyb0BnbWFpbC5jb20nKSwgTm9uZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRJc05vbmUoY29tbWl0dGVyX2xpc3QuYWNjb3VudF9ieV9sb2dpbignemVyb0BnbWFp
bC5jb20nKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXR0ZXJfbGlzdC5hY2NvdW50
X2J5X2xvZ2luKCdvbmVAdGVzdC5jb20nKSwgY29tbWl0dGVyKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1pdHRlcl9saXN0LmFjY291bnRfYnlfbG9naW4oJ3R3b0B0ZXN0LmNvbScpLCBy
ZXZpZXdlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXR0ZXJfbGlzdC5hY2NvdW50
X2J5X2xvZ2luKCdUd29AcmFkLmNvbScpLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbW1pdHRlcl9saXN0LmFjY291bnRfYnlfbG9naW4oJ3NvX3R3b0BnbWFpbC5jb20nKSwgTm9u
ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY29tbWl0dGVyX2xpc3QuYWNjb3VudF9ieV9s
b2dpbignVHdvQHJhZC5jb20nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY29tbWl0dGVy
X2xpc3QuYWNjb3VudF9ieV9sb2dpbignc29fdHdvQGdtYWlsLmNvbScpKQogCiAgICAgICAgICMg
VGVzdCB0aGF0IGEga25vd24gY29tbWl0dGVyIGlzIG5vdCByZXR1cm5lZCBkdXJpbmcgcmV2aWV3
ZXIgbG9va3VwCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0dGVyX2xpc3QucmV2aWV3
ZXJfYnlfZW1haWwoJ29uZUB0ZXN0LmNvbScpLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbW1pdHRlcl9saXN0LnJldmlld2VyX2J5X2VtYWlsKCd0aHJlZUB0ZXN0LmNvbScpLCBO
b25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShjb21taXR0ZXJfbGlzdC5yZXZpZXdlcl9i
eV9lbWFpbCgnb25lQHRlc3QuY29tJykpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGNvbW1p
dHRlcl9saXN0LnJldmlld2VyX2J5X2VtYWlsKCd0aHJlZUB0ZXN0LmNvbScpKQogICAgICAgICAj
IGFuZCBsaWtld2lzZSB0aGF0IGEga25vd24gY29udHJpYnV0b3IgaXMgbm90IHJldHVybmVkIGZv
ciBjb21taXR0ZXIgbG9va3VwLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHRlcl9s
aXN0LmNvbW1pdHRlcl9ieV9lbWFpbCgndGhyZWVAdGVzdC5jb20nKSwgTm9uZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRJc05vbmUoY29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5X2VtYWlsKCd0aHJl
ZUB0ZXN0LmNvbScpKQogCiAgICAgICAgICMgVGVzdCB0aGF0IHVua25vd24gZW1haWwgYWRkcmVz
cyBmYWlsIGJvdGggY29tbWl0dGVyIGFuZCByZXZpZXdlciBsb29rdXAKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjb21taXR0ZXJfbGlzdC5jb21taXR0ZXJfYnlfZW1haWwoJ2JhckBiYXIuY29t
JyksIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0dGVyX2xpc3QucmV2aWV3
ZXJfYnlfZW1haWwoJ2JhckBiYXIuY29tJyksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNO
b25lKGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9lbWFpbCgnYmFyQGJhci5jb20nKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY29tbWl0dGVyX2xpc3QucmV2aWV3ZXJfYnlfZW1haWwo
J2JhckBiYXIuY29tJykpCiAKICAgICAgICAgIyBUZXN0IHRoYXQgZW1haWxzIHJldHVybnMgYSBs
aXN0LgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHRlci5lbWFpbHMsIFsnb25lQHRl
c3QuY29tJ10pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvY29tbWl0dGVydmFsaWRhdG9yX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnZhbGlkYXRvcl91bml0dGVzdC5weQppbmRleCAyMzJm
MDc3MWUwOTMyZGUxZDM1NzEwN2ZmNTU0NWQ2MzhkZjg4YWJiLi5lOGFhODg3MjE2ZmFkZjQzNDcx
YjA2MTM5ZDU2NWZlYTYwOTQ4MzZkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jb25maWcvY29tbWl0dGVydmFsaWRhdG9yX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJ2YWxpZGF0b3JfdW5pdHRl
c3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
LWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0CiBmcm9tIC5jb21taXR0ZXJ2
YWxpZGF0b3IgaW1wb3J0IENvbW1pdHRlclZhbGlkYXRvcgpAQCAtNDEsNCArNDEsNCBAQCBjbGFz
cyBDb21taXR0ZXJWYWxpZGF0b3JUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIC0gSWYgeW91IGRv
IG5vdCBoYXZlIHJldmlldyByaWdodHMgcGxlYXNlIHJlYWQgaHR0cDovL3dlYmtpdC5vcmcvY29k
aW5nL2NvbnRyaWJ1dGluZy5odG1sIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHVzZSBidWd6
aWxsYSBmbGFncy4KIAogLSBJZiB5b3UgaGF2ZSByZXZpZXcgcmlnaHRzIHBsZWFzZSBjb3JyZWN0
IHRoZSBlcnJvciBpbiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0
dGVycy5weSBieSBhZGRpbmcgeW91cnNlbGYgdG8gdGhlIGZpbGUgKG5vIHJldmlldyBuZWVkZWQp
LiAgVGhlIGNvbW1pdC1xdWV1ZSByZXN0YXJ0cyBpdHNlbGYgZXZlcnkgMiBob3Vycy4gIEFmdGVy
IHJlc3RhcnQgdGhlIGNvbW1pdC1xdWV1ZSB3aWxsIGNvcnJlY3RseSByZXNwZWN0IHlvdXIgcmV2
aWV3IHJpZ2h0cy4iIiIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YWxpZGF0b3IuX2ZsYWdf
cGVybWlzc2lvbl9yZWplY3Rpb25fbWVzc2FnZSgiZm9vQGZvby5jb20iLCAicmV2aWV3IiksIGV4
cGVjdGVkX21lc3NzYWdlKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKHZhbGlk
YXRvci5fZmxhZ19wZXJtaXNzaW9uX3JlamVjdGlvbl9tZXNzYWdlKCJmb29AZm9vLmNvbSIsICJy
ZXZpZXciKSwgZXhwZWN0ZWRfbWVzc3NhZ2UpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvY29udHJpYnV0aW9uYXJlYXNfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29udHJpYnV0aW9uYXJlYXNfdW5pdHRl
c3QucHkKaW5kZXggYzM5NjBkOWMxZjZkMzkxMzliNzIxMWE4ZmU5ZDc5YmFlNmRmMmJjNi4uMTdk
NGZlNzE4NDliNjk2NDdjYmJmMWY4YTJmNTBiOWNlYWEwYmMzYSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbnRyaWJ1dGlvbmFyZWFzX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb250cmlidXRp
b25hcmVhc191bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0
ZXN0CiAKIGZyb20gLmNvbnRyaWJ1dGlvbmFyZWFzIGltcG9ydCBfSW50ZXJzZWN0aW9uCiBmcm9t
IC5jb250cmlidXRpb25hcmVhcyBpbXBvcnQgX0FyZWEKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQppbmRleCBkMjA1MTQy
NzhiMGE0ZTIyNDk1MjkwODEyNmFlMzdmZjVmZDljMWM4Li5hNDM0MjExYjNiM2Q2MGM1NDM3Yjgy
MWViNjBhYjU2MGNiM2EyZDkxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0
dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLnBvcnRzIGlt
cG9ydCAqCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy91cmxzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmln
L3VybHNfdW5pdHRlc3QucHkKaW5kZXggYjRiZjg5NzhhYTE0MzBiMWY4OGZhMTlkNDM1MzE0ZTYz
ZTkzNjU5OS4uYzFhMDgyY2NiZDk1NDJjZmE0YzM0YWY0YTFiMTUyYzYzODI3NjFlNyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3VybHNfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3VybHNfdW5pdHRl
c3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
LWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIC51
cmxzIGltcG9ydCBwYXJzZV9idWdfaWQsIHBhcnNlX2F0dGFjaG1lbnRfaWQKIApAQCAtNDIsMTIg
KzQyLDEyIEBAIGNsYXNzIFVSTHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxMjM0NSwgcGFyc2VfYnVnX2lkKCJodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjM0NWV4Y2x1ZGVmaWVsZD1hdHRhY2htZW50ZGF0YSZjdHlwZT14
bWwiKSkKIAogICAgICAgICAjIE91ciB1cmwgcGFyc2VyIGlzIHN1cGVyLWZyYWdpbGUsIGJ1dCBh
dCBsZWFzdCB3ZSdyZSB0ZXN0aW5nIGl0LgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUs
IHBhcnNlX2J1Z19pZCgiaHR0cDovL3d3dy53ZWJraXQub3JnL2IvMTIzNDUiKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCBwYXJzZV9idWdfaWQoImh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2N0eXBlPXhtbCZpZD0xMjM0NSIpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIHBhcnNlX2J1Z19pZCgiaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/Y3R5cGU9eG1sJmlkPTEyMzQ1JmV4Y2x1ZGVmaWVsZD1hdHRhY2htZW50ZGF0YSIpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHBhcnNlX2J1Z19pZCgiaHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/Y3R5cGU9eG1sJmV4Y2x1ZGVmaWVsZD1hdHRhY2htZW50
ZGF0YSZpZD0xMjM0NSIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHBhcnNlX2J1
Z19pZCgiaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/ZXhjbHVkZWZpZWxkPWF0
dGFjaG1lbnRkYXRhJmN0eXBlPXhtbCZpZD0xMjM0NSIpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIHBhcnNlX2J1Z19pZCgiaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/ZXhjbHVkZWZpZWxkPWF0dGFjaG1lbnRkYXRhJmlkPTEyMzQ1JmN0eXBlPXhtbCIpKQorICAg
ICAgICBzZWxmLmFzc2VydElzTm9uZShwYXJzZV9idWdfaWQoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy9iLzEyMzQ1IikpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHBhcnNlX2J1Z19pZCgiaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/Y3R5cGU9eG1sJmlkPTEyMzQ1IikpCisg
ICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHBhcnNlX2J1Z19pZCgiaHR0cDovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/Y3R5cGU9eG1sJmlkPTEyMzQ1JmV4Y2x1ZGVmaWVsZD1hdHRhY2ht
ZW50ZGF0YSIpKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwYXJzZV9idWdfaWQoImh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2N0eXBlPXhtbCZleGNsdWRlZmllbGQ9YXR0
YWNobWVudGRhdGEmaWQ9MTIzNDUiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocGFyc2Vf
YnVnX2lkKCJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9leGNsdWRlZmllbGQ9
YXR0YWNobWVudGRhdGEmY3R5cGU9eG1sJmlkPTEyMzQ1IikpCisgICAgICAgIHNlbGYuYXNzZXJ0
SXNOb25lKHBhcnNlX2J1Z19pZCgiaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
ZXhjbHVkZWZpZWxkPWF0dGFjaG1lbnRkYXRhJmlkPTEyMzQ1JmN0eXBlPXhtbCIpKQogCiAgICAg
ZGVmIHRlc3RfcGFyc2VfYXR0YWNobWVudF9pZChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgxMjM0NSwgcGFyc2VfYXR0YWNobWVudF9pZCgiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
YXR0YWNobWVudC5jZ2k/aWQ9MTIzNDUmYWN0aW9uPXJldmlldyIpKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vZWRpdGRpc3RhbmNlX3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vZWRpdGRpc3RhbmNlX3VuaXR0ZXN0LnB5CmluZGV4
IDRhZTY0NDFiZjMzZDM5NGY0N2Q2MTAwNGExY2U5MzEwNjJjNWJkMDIuLjFmNjc1NzJiNDYwYzhi
NjIzY2RlZWIxNTQwMDdjNTdhM2M1NjMwMDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2VkaXRkaXN0YW5jZV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9lZGl0ZGlzdGFuY2VfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcg
QEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1w
b3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5lZGl0ZGlz
dGFuY2UgaW1wb3J0IGVkaXRfZGlzdGFuY2UKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vZmluZF9maWxlc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2ZpbmRfZmlsZXNfdW5pdHRlc3QucHkKaW5kZXggZjBmZTAxYzU2Yzg2NGI3
OWI2MTYwMzUwN2U3MjRiYjA5MjllYjQwOC4uNGMwYTdjZGM0ZTlhODJkMmFkNjIwNDU0Y2M1OTU1
MDJjM2I2MTRhZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vZmlu
ZF9maWxlc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9m
aW5kX2ZpbGVzX3VuaXR0ZXN0LnB5CkBAIC0yNyw3ICsyNyw3IEBACiAjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
IGltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVz
dAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5
c3RlbQogaW1wb3J0IGZpbmRfZmlsZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2xydV9jYWNoZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2xydV9jYWNoZV91bml0dGVzdC5weQppbmRleCA5NDQyNzY0MjRiMzA4Mjg3YmE5YzVj
Zjc5YmMwOWFmODQ5NTZlNWNjLi45NmNhMjA5NWNlZDZhZjkyYzc1NmM1ZjNjMDE1NzM4NmY5NDE2
OGMzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9scnVfY2FjaGVf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbHJ1X2NhY2hl
X3VuaXR0ZXN0LnB5CkBAIC0yNCw3ICsyNCw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIAotaW1wb3J0
IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHku
Y29tbW9uIGltcG9ydCBscnVfY2FjaGUKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbWVtb2l6ZWRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9tZW1vaXplZF91bml0dGVzdC5weQppbmRleCBkZDdjNzkzZDhkNzY5Y2FkNmEwOTNj
ZGJjYTYwZDk3ODJlNTQ0N2FhLi5hZjQwNmRmZWFlZjk4MDJkODU4MmZiOTM1NzlkOTc2OWJkZGU1
NzQ1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tZW1vaXplZF91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tZW1vaXplZF91
bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZy
b20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z191bml0
dGVzdC5weQppbmRleCBmMjBjNjAxMGM4Mzc2MmZkYzU4OWMzOWM4OWJkYzY4YmFmMmY0YjY0Li45
YzlmZDlkZmZkZDExMmE5OTdlMmRmYTc3YmZlNTBjNDZmMzYwZmNkIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWdfdW5pdHRl
c3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
LWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIC5i
dWcgaW1wb3J0IEJ1ZwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvYnVnemlsbGEvYnVnemlsbGFfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFfdW5pdHRlc3QucHkKaW5kZXggOTBlNGM4
M2ZjNDVkNmRjYzMwYjFhZTczNTg1ZDgzOGQ2MTNiY2Y2Ni4uMDllZmJlZWJlMzJjMTQ0NTgzYTkw
MmEzZTA4NWYyOWI4MDQ3NjdlOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWd6aWxsYV91bml0dGVzdC5weQpAQCAt
MjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVu
aXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiBpbXBvcnQgZGF0ZXRpbWUKIGlt
cG9ydCBTdHJpbmdJTwogCkBAIC04NSw5ICs4NSw5IEBAIGNsYXNzIEJ1Z3ppbGxhVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfdXJsX2NyZWF0aW9uKHNlbGYpOgogICAgICAg
ICAjIEZJWE1FOiBUaGVzZSB3b3VsZCBiZSBhbGwgYmV0dGVyIGFzIGRvY3Rlc3RzCiAgICAgICAg
IGJ1Z3MgPSBCdWd6aWxsYSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgYnVncy5i
dWdfdXJsX2Zvcl9idWdfaWQoTm9uZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
YnVncy5zaG9ydF9idWdfdXJsX2Zvcl9idWdfaWQoTm9uZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgYnVncy5hdHRhY2htZW50X3VybF9mb3JfaWQoTm9uZSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0SXNOb25lKGJ1Z3MuYnVnX3VybF9mb3JfYnVnX2lkKE5vbmUpKQorICAgICAgICBz
ZWxmLmFzc2VydElzTm9uZShidWdzLnNob3J0X2J1Z191cmxfZm9yX2J1Z19pZChOb25lKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRJc05vbmUoYnVncy5hdHRhY2htZW50X3VybF9mb3JfaWQoTm9uZSkp
CiAKICAgICBkZWYgdGVzdF9wYXJzZV9idWdfaWQoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0
IHdlIGNhbiBwYXJzZSB0aGUgdXJscyB3ZSBwcm9kdWNlLgpAQCAtMTk4LDcgKzE5OCw3IEBAIEln
bm9yZSB0aGlzIGJ1Zy4gIEp1c3QgZm9yIHRlc3RpbmcgZmFpbHVyZSBtb2RlcyBvZiB3ZWJraXQt
cGF0Y2ggYW5kIHRoZSBjb21taXQtCiAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgbW92ZSB0byBh
IGNlbnRyYWwgbG9jYXRpb24gYW5kIGJlIHNoYXJlZCBieSBtb3JlIHVuaXQgdGVzdHMuCiAgICAg
ZGVmIF9hc3NlcnRfZGljdGlvbmFyaWVzX2VxdWFsKHNlbGYsIGFjdHVhbCwgZXhwZWN0ZWQpOgog
ICAgICAgICAjIE1ha2Ugc3VyZSB3ZSBhcmVuJ3QgcGFyc2luZyBtb3JlIG9yIGxlc3MgdGhhbiB3
ZSBleHBlY3QKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQoYWN0dWFsLmtleXMoKSks
IHNvcnRlZChleHBlY3RlZC5rZXlzKCkpKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwo
YWN0dWFsLmtleXMoKSwgZXhwZWN0ZWQua2V5cygpKQogCiAgICAgICAgIGZvciBrZXksIGV4cGVj
dGVkX3ZhbHVlIGluIGV4cGVjdGVkLml0ZW1zKCk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGFjdHVhbFtrZXldLCBleHBlY3RlZF92YWx1ZSwgKCJGYWlsdXJlIGZvciBrZXk6ICVzOiBB
Y3R1YWw9JyVzJyBFeHBlY3RlZD0nJXMnIiAlIChrZXksIGFjdHVhbFtrZXldLCBleHBlY3RlZF92
YWx1ZSkpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1
aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5CmluZGV4IDk4Y2NmY2RhOTFlYWIy
MDhmM2M4ZjRhYmIxOTI0NzNhNjc5YTBmNzYuLjI2YjdiOTc5OWYxN2FkZWU4MWFmODJmYmJhOWU5
M2JjNTViZTAxY2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2
LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAor
aW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQu
bGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQuYnVpbGRib3QgaW1wb3J0IEJ1aWxkQm90LCBCdWlsZGVyLCBCdWlsZApAQCAt
NzEsMTQgKzcxLDE0IEBAIGNsYXNzIEJ1aWxkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWdyZXNzaW9uX3dpbmRvdy5mYWlsaW5nX2J1aWxkKCku
cmV2aXNpb24oKSwgMTAwNCkKIAogICAgICAgICByZWdyZXNzaW9uX3dpbmRvdyA9IHNlbGYuYnVp
bGRlci5maW5kX3JlZ3Jlc3Npb25fd2luZG93KHNlbGYuYnVpbGRlci5idWlsZCgxMCksIGxvb2tf
YmFja19saW1pdD0yKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlZ3Jlc3Npb25fd2luZG93
LmJ1aWxkX2JlZm9yZV9mYWlsdXJlKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25l
KHJlZ3Jlc3Npb25fd2luZG93LmJ1aWxkX2JlZm9yZV9mYWlsdXJlKCkpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocmVncmVzc2lvbl93aW5kb3cuZmFpbGluZ19idWlsZCgpLnJldmlzaW9uKCks
IDEwMDgpCiAKICAgICBkZWYgdGVzdF9ub25lX2J1aWxkKHNlbGYpOgogICAgICAgICBzZWxmLmJ1
aWxkZXIuX2ZldGNoX2J1aWxkID0gbGFtYmRhIGJ1aWxkX251bWJlcjogTm9uZQogICAgICAgICBy
ZWdyZXNzaW9uX3dpbmRvdyA9IHNlbGYuYnVpbGRlci5maW5kX3JlZ3Jlc3Npb25fd2luZG93KHNl
bGYuYnVpbGRlci5idWlsZCgxMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVncmVzc2lv
bl93aW5kb3cuYnVpbGRfYmVmb3JlX2ZhaWx1cmUoKSwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChyZWdyZXNzaW9uX3dpbmRvdy5mYWlsaW5nX2J1aWxkKCksIE5vbmUpCisgICAgICAg
IHNlbGYuYXNzZXJ0SXNOb25lKHJlZ3Jlc3Npb25fd2luZG93LmJ1aWxkX2JlZm9yZV9mYWlsdXJl
KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJlZ3Jlc3Npb25fd2luZG93LmZhaWxpbmdf
YnVpbGQoKSkKIAogICAgIGRlZiB0ZXN0X2ZsYWt5X3Rlc3RzKHNlbGYpOgogICAgICAgICBzZWxm
Ll9pbnN0YWxsX2ZldGNoX2J1aWxkKGxhbWJkYSBidWlsZF9udW1iZXI6IFsidGVzdDEiXSBpZiBi
dWlsZF9udW1iZXIgJSAyIGVsc2UgWyJ0ZXN0MiJdKQpAQCAtMTA2LDEyICsxMDYsMTIgQEAgY2xh
c3MgQnVpbGRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZmluZF9i
bGFtZXdvcnRoeV9yZWdyZXNzaW9uX3dpbmRvdyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLmJ1aWxkZXIuZmluZF9ibGFtZXdvcnRoeV9yZWdyZXNzaW9uX3dpbmRvdygxMCku
cmV2aXNpb25zKCksIFsxMDA0XSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmJ1aWxk
ZXIuZmluZF9ibGFtZXdvcnRoeV9yZWdyZXNzaW9uX3dpbmRvdygxMCwgbG9va19iYWNrX2xpbWl0
PTIpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzZWxmLmJ1aWxkZXIuZmluZF9i
bGFtZXdvcnRoeV9yZWdyZXNzaW9uX3dpbmRvdygxMCwgbG9va19iYWNrX2xpbWl0PTIpKQogICAg
ICAgICAjIEZsYWtleSB0ZXN0IGF2b2lkYW5jZSByZXF1aXJlcyBhdCBsZWFzdCAyIHJlZCBidWls
ZHM6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5idWlsZGVyLmZpbmRfYmxhbWV3b3J0
aHlfcmVncmVzc2lvbl93aW5kb3coNCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25l
KHNlbGYuYnVpbGRlci5maW5kX2JsYW1ld29ydGh5X3JlZ3Jlc3Npb25fd2luZG93KDQpKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuYnVpbGRlci5maW5kX2JsYW1ld29ydGh5X3JlZ3Jl
c3Npb25fd2luZG93KDQsIGF2b2lkX2ZsYWtleV90ZXN0cz1GYWxzZSkucmV2aXNpb25zKCksIFsx
MDA0XSkKICAgICAgICAgIyBHcmVlbiBidWlsZGVyOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuYnVpbGRlci5maW5kX2JsYW1ld29ydGh5X3JlZ3Jlc3Npb25fd2luZG93KDMpLCBOb25l
KQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzZWxmLmJ1aWxkZXIuZmluZF9ibGFtZXdvcnRo
eV9yZWdyZXNzaW9uX3dpbmRvdygzKSkKIAogICAgIGRlZiB0ZXN0X2J1aWxkX2NhY2hpbmcoc2Vs
Zik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5idWlsZGVyLmJ1aWxkKDEwKSwgc2Vs
Zi5idWlsZGVyLmJ1aWxkKDEwKSkKQEAgLTE0OCw3ICsxNDgsNyBAQCBjbGFzcyBCdWlsZGVyVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4g
YnVpbGRfZGljdGlvbmFyeQogICAgICAgICBidWlsZGJvdC5fZmV0Y2hfYnVpbGRfZGljdGlvbmFy
eSA9IG1vY2tfZmV0Y2hfYnVpbGRfZGljdGlvbmFyeQotICAgICAgICBzZWxmLmFzc2VydE5vdEVx
dWFsKGJ1aWxkZXIuX2ZldGNoX2J1aWxkKDEpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElz
Tm90Tm9uZShidWlsZGVyLl9mZXRjaF9idWlsZCgxKSkKIAogCiBjbGFzcyBCdWlsZFRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgpAQCAtMTU4LDcgKzE1OCw3IEBAIGNsYXNzIEJ1aWxkVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGJ1aWxkZXIuX2ZldGNoX2ZpbGVfZnJvbV9yZXN1bHRz
ID0gbGFtYmRhIHJlc3VsdHNfdXJsLCBmaWxlX25hbWU6IE5vbmUKICAgICAgICAgYnVpbGQgPSBC
dWlsZChidWlsZGVyLCBOb25lLCBOb25lLCBOb25lKQogICAgICAgICAjIFRlc3QgdGhhdCBsYXlv
dXRfdGVzdF9yZXN1bHRzKCkgcmV0dXJucyBOb25lIGlmIHRoZSBmZXRjaCBmYWlscy4KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5sYXlvdXRfdGVzdF9yZXN1bHRzKCksIE5vbmUpCisg
ICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGJ1aWxkLmxheW91dF90ZXN0X3Jlc3VsdHMoKSkKIAog
CiBjbGFzcyBCdWlsZEJvdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtMjYzLDE2ICsyNjMs
MTYgQEAgY2xhc3MgQnVpbGRCb3RUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChidWlsZC51cmwoKSwgImh0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxk
ZXJzL1Rlc3QlMjBCdWlsZGVyL2J1aWxkcy8xMCIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YnVpbGQucmVzdWx0c191cmwoKSwgImh0dHA6Ly9idWlsZC53ZWJraXQub3JnL3Jlc3VsdHMvVGVz
dCUyMEJ1aWxkZXIvcjIwJTIwJTI4MTAlMjkiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1
aWxkLnJldmlzaW9uKCksIDIwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkLmlzX2dy
ZWVuKCksIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShidWlsZC5pc19ncmVlbigpKQog
CiAgICAgICAgIGJ1aWxkID0gYnVpbGQucHJldmlvdXNfYnVpbGQoKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGJ1aWxkLmJ1aWxkZXIoKSwgYnVpbGRlcikKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChidWlsZC51cmwoKSwgImh0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL1Rlc3Ql
MjBCdWlsZGVyL2J1aWxkcy85IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5yZXN1
bHRzX3VybCgpLCAiaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvcmVzdWx0cy9UZXN0JTIwQnVpbGRl
ci9yMTglMjAlMjg5JTI5IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5yZXZpc2lv
bigpLCAxOCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5pc19ncmVlbigpLCBGYWxz
ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShidWlsZC5pc19ncmVlbigpKQogCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5idWlsZChOb25lKSwgTm9uZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRJc05vbmUoYnVpbGRlci5idWlsZChOb25lKSkKIAogICAgIF9leGFtcGxlX2RpcmVj
dG9yeV9saXN0aW5nID0gJycnCiA8aDE+RGlyZWN0b3J5IGxpc3RpbmcgZm9yIC9yZXN1bHRzL1Nu
b3dMZW9wYXJkIEludGVsIExlYWtzLzwvaDE+CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvY3JlZGVudGlhbHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvY3JlZGVudGlhbHNfdW5pdHRlc3QucHkKaW5kZXggNDM0OTc0
ODZjYzFhYWQ2ZGE5MTQ4MWY1Yzc5OWU1MmI4OWNkM2EwMy4uYmVhZmE1ODgwOGY2MmU4Njg4NzNj
ZGE0N2YzYjVhNmJiNDY4YjkwMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2NyZWRlbnRpYWxzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBA
QAogCiBpbXBvcnQgb3MKIGltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQg
dW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuY3JlZGVudGlh
bHMgaW1wb3J0IENyZWRlbnRpYWxzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0
aXZlIGltcG9ydCBFeGVjdXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRj
YXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCkBAIC05Miw3ICs5Miw3IEBAIHBhc3N3b3JkOiAi
U0VDUkVUU0FVQ0UiCiAgICAgICAgICAgICBkZWYgX2lzX21hY19vc194KHNlbGYpOgogICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBjcmVkZW50aWFscyA9IEZha2VDcmVkZW50
aWFscygiYnVncy53ZWJraXQub3JnIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcmVkZW50
aWFscy5faXNfbWFjX29zX3goKSwgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoY3Jl
ZGVudGlhbHMuX2lzX21hY19vc194KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3JlZGVu
dGlhbHMuX2NyZWRlbnRpYWxzX2Zyb21fa2V5Y2hhaW4oImZvbyIpLCBbImZvbyIsIE5vbmVdKQog
CiAgICAgZGVmIHRlc3Rfc2VjdXJpdHlfb3V0cHV0X3BhcnNlKHNlbGYpOgpAQCAtMTA5LDcgKzEw
OSw3IEBAIHBhc3N3b3JkOiAiU0VDUkVUU0FVQ0UiCiAgICAgICAgICMgYnkgdGhlIHRlc3QgY2Fz
ZSBDcmVkZW50aWFsc1Rlc3QuX2Fzc2VydF9zZWN1cml0eV9jYWxsIChiZWxvdykuCiAgICAgICAg
IG91dHB1dENhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkKICAgICAgICAgb3V0cHV0Q2FwdHVyZS5j
YXB0dXJlX291dHB1dCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3JlZGVudGlhbHMuX3J1
bl9zZWN1cml0eV90b29sKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGNyZWRl
bnRpYWxzLl9ydW5fc2VjdXJpdHlfdG9vbCgpKQogICAgICAgICBvdXRwdXRDYXB0dXJlLnJlc3Rv
cmVfb3V0cHV0KCkKIAogICAgIGRlZiBfYXNzZXJ0X3NlY3VyaXR5X2NhbGwoc2VsZiwgdXNlcm5h
bWU9Tm9uZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQv
ZmFpbHVyZW1hcF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9mYWlsdXJlbWFwX3VuaXR0ZXN0LnB5CmluZGV4IGJkNDEwMzJjYmE0OTQ5OTcxZDYxODRmMzdj
OTQ5ZWJjNGJlMWYyMGUuLjBiZWRlOTdlNmNlNTUyOTI3OGEzMWQ2NDY0MTU3MTllMDUyNTEwYzIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9mYWlsdXJlbWFw
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9mYWls
dXJlbWFwX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRl
c3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1aWxkYm90IGltcG9ydCBCdWlsZAogZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmZhaWx1cmVtYXAgaW1wb3J0ICoKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9odGRpZ2VzdHBhcnNlcl91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9odGRpZ2VzdHBhcnNlcl91bml0
dGVzdC5weQppbmRleCBhMmE0YWM5Mzg1OTA0ZmE2Y2ZjZjk2NWIzNzcwMzdjZWQ3NThiZWJiLi4z
NjdjODYyNjhlN2M2ZjViMjk1YTZhYjBjMzIxZDhlYWVjMGI0OTg2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvaHRkaWdlc3RwYXJzZXJfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2h0ZGlnZXN0cGFyc2VyX3Vu
aXR0ZXN0LnB5CkBAIC0yMiw3ICsyMiw3IEBACiAKIGltcG9ydCBTdHJpbmdJTwogaW1wb3J0IG9z
Ci1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0Lmh0ZGlnZXN0cGFyc2VyIGltcG9ydCBIVERpZ2VzdFBhcnNlcgog
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvaXJjL2lyY3By
b3h5X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2lyYy9p
cmNwcm94eV91bml0dGVzdC5weQppbmRleCBiY2U5ZDg1NWQ1YmQxODYxZjJkYjdiZTVjYTBhNDM2
NGY0ZGEzYjgyLi42Mzk5NzlhMDI4ZjMzMWM4N2Q4NzRkYmIxMzhjNzUwMzU0ZTQ1YWM4IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvaXJjL2lyY3Byb3h5X3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9pcmMvaXJj
cHJveHlfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVz
dAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuaXJjLmlyY3Byb3h5IGltcG9ydCBJUkNQcm94
eQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1
dENhcHR1cmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9s
YXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQppbmRleCBmYzAyMzcyZjAwNTYw
MjNhZmQ0MTQ1YWVjMmIyNTRlODgyNjFlMjk2Li5lYTRlOTI3M2Y4YzU4MjJmNWQxNDlmNzc4YjM5
YmMwNjRmMmE1NzY2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsy
Niw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QK
K2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0
LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKQEAgLTM4
LDEwICszOCwxMCBAQCBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkuQmVhdXRpZnVsU291cCBpbXBv
cnQgQmVhdXRpZnVsU291cAogY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICBkZWYgdGVzdF9zZXRfZmFpbHVyZV9saW1pdF9jb3VudChzZWxmKToKICAg
ICAgICAgcmVzdWx0cyA9IExheW91dFRlc3RSZXN1bHRzKFtdKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHJlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpLCBOb25lKQorICAgICAgICBzZWxm
LmFzc2VydElzTm9uZShyZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSkKICAgICAgICAgcmVz
dWx0cy5zZXRfZmFpbHVyZV9saW1pdF9jb3VudCgxMCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChyZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSwgMTApCiAKICAgICBkZWYgdGVzdF9yZXN1
bHRzX2Zyb21fc3RyaW5nKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKExheW91dFRl
c3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoTm9uZSksIE5vbmUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTGF5b3V0VGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZygiIiksIE5v
bmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKExheW91dFRlc3RSZXN1bHRzLnJlc3VsdHNf
ZnJvbV9zdHJpbmcoTm9uZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKExheW91dFRlc3RS
ZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoIiIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L25ldHdvcmt0cmFuc2FjdGlvbl91bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9uZXR3b3JrdHJhbnNhY3Rpb25fdW5pdHRl
c3QucHkKaW5kZXggMzMwMmRlYzgwZTM0NzVkMzI5Yzg1ODAyZDljZDk0ZGZlZTQxN2ViNy4uNjc0
MzlmMDk0NGY0ZGU1NmU5OGU1YzAwOWNkMjYzZDQ2MDEwYzg0ZiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L25ldHdvcmt0cmFuc2FjdGlvbl91bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbmV0d29ya3RyYW5zYWN0
aW9uX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QK
IAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0Lm5ldHdvcmt0cmFuc2FjdGlvbiBpbXBvcnQgTmV0
d29ya1RyYW5zYWN0aW9uLCBOZXR3b3JrVGltZW91dAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLmxvZ3Rlc3RpbmcgaW1wb3J0IExvZ2dpbmdUZXN0Q2FzZQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L29tYWhhcHJveHlfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvb21haGFwcm94eV91bml0dGVzdC5weQppbmRl
eCAzYWE1OGI2Y2U2MGNjMzY1YjJlMGIwZjMyY2Y1ZDRjMmI0Mzc0Nzg4Li44MGJhOTgyZTkxNTIy
MGZhOTAzNjhhNWQ4NzUyNzZiZjhiMGQwZDk2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvb21haGFwcm94eV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvb21haGFwcm94eV91bml0dGVzdC5weQpAQCAtMjksNyAr
MjksNyBAQAogCiAjIFVuaXQgdGVzdCBmb3Igb21haGFwcm94eS5weQogCi1pbXBvcnQgdW5pdHRl
c3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24u
bmV0Lm9tYWhhcHJveHkgaW1wb3J0IE9tYWhhUHJveHkKIApAQCAtMTI4LDkgKzEyOCw5IEBAIGNs
YXNzIE9tYWhhUHJveHlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmV2aXNpb25z
ID0gb21haGFwcm94eS5nZXRfcmV2aXNpb25zKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
ZW4ocmV2aXNpb25zKSwgNSkKICAgICAgICAgZm9yIHJldmlzaW9uIGluIHJldmlzaW9uczoKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiY29tbWl0IiBpbiByZXZpc2lvbikKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiY2hhbm5lbCIgaW4gcmV2aXNpb24pCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydFRydWUoInBsYXRmb3JtIiBpbiByZXZpc2lvbikKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgiZGF0ZSIgaW4gcmV2aXNpb24pCisgICAgICAgICAgICBzZWxmLmFzc2VydElu
KCJjb21taXQiLCByZXZpc2lvbikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oImNoYW5uZWwi
LCByZXZpc2lvbikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oInBsYXRmb3JtIiwgcmV2aXNp
b24pCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCJkYXRlIiwgcmV2aXNpb24pCiAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXZpc2lvbi5rZXlzKCkpLCA0KQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJldmlzaW9ucywgc2VsZi5leHBlY3RlZF9yZXZpc2lvbnMpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJz
ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0
c2pzb25wYXJzZXJfdW5pdHRlc3QucHkKaW5kZXggODY3Mzc5ZjkyMWE4NzhmYjkzNWY3YzJiOGJh
NmYzYTVhMmE1NjJkOC4uYWFlYjVkYzZkOTZhYmY2YzUxNzFmZDQ2NmY0N2YxYjk1Y2FjOGQxNyAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29u
cGFyc2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRl
c3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5yZXN1bHRzanNvbnBh
cnNlciBpbXBvcnQgUmVzdWx0c0pTT05QYXJzZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
Lm1vZGVscyBpbXBvcnQgdGVzdF9yZXN1bHRzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvc3RhdHVzc2VydmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L3N0YXR1c3NlcnZlcl91bml0dGVzdC5weQppbmRleCAxZjBh
ZmQwNWJiN2MwMDA5ZThhMzRmZGJkYmExNzE3ODdiYzJhNjYxLi45MWE0MmM5M2U5NTVlMWFiYjQx
NzliY2ExMDgxM2E2NjJlNzRlYjUxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvc3RhdHVzc2VydmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9zdGF0dXNzZXJ2ZXJfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2
LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAor
aW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQu
c3RhdHVzc2VydmVyIGltcG9ydCBTdGF0dXNTZXJ2ZXIKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlVGVzdENhc2VCYXNlCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvdW5pdHRlc3RyZXN1bHRz
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3VuaXR0ZXN0
cmVzdWx0c191bml0dGVzdC5weQppbmRleCAwNzA4MzkxYWY4NGFjNzFmYWI4NWQ3NjJhODAzNWI0
OWU5NDUzNzdiLi4yMjcxMzkyNzFlYmZmNDE2ZmM3ZDU5ZGFjYzYzN2M5YzY4NzMzNDExIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvdW5pdHRlc3RyZXN1bHRz
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC91bml0
dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1
bml0dGVzdAogCiBmcm9tIHVuaXR0ZXN0cmVzdWx0cyBpbXBvcnQgVW5pdFRlc3RSZXN1bHRzCiAK
QEAgLTM0LDEwICszNCwxMCBAQCBmcm9tIHVuaXR0ZXN0cmVzdWx0cyBpbXBvcnQgVW5pdFRlc3RS
ZXN1bHRzCiBjbGFzcyBVbml0VGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAog
ICAgIGRlZiB0ZXN0X25vc3RyaW5nKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIFVuaXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKE5vbmUpKQorICAgICAgICBz
ZWxmLmFzc2VydElzTm9uZShVbml0VGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhOb25l
KSkKIAogICAgIGRlZiB0ZXN0X2VtcHR5c3RyaW5nKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIFVuaXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKCIiKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRJc05vbmUoVW5pdFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJp
bmcoIiIpKQogCiAgICAgZGVmIHRlc3Rfbm9mYWlsdXJlcyhzZWxmKToKICAgICAgICAgbm9fZmFp
bHVyZXNfeG1sID0gIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ld3N0cmluZ2lvX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV3c3RyaW5naW9fdW5pdHRl
c3QucHkKaW5kZXggMmExZGJhODNiOTNiODI5NGJkMzQ2OTdhMTA5OTdiNDM4NmViOTk4My4uNjcw
NDcyMjA0NzdkMTZlOTIyNjI2OTU5OTc3NzE0YmUwNjMzN2VkMyAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV3c3RyaW5naW9fdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV3c3RyaW5naW9fdW5pdHRlc3QucHkKQEAgLTI4
LDcgKzI4LDcgQEAKIAogIiIiVW5pdCB0ZXN0cyBmb3IgbmV3c3RyaW5naW8gbW9kdWxlLiIiIgog
Ci1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogaW1wb3J0
IG5ld3N0cmluZ2lvCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3ByZXR0eXBhdGNoX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
cHJldHR5cGF0Y2hfdW5pdHRlc3QucHkKaW5kZXggMzdmYTg0NGZkNWJiYmM5MDIyMzg1ZGI4YTJh
NWRhMTI0ZGE3OWRlMi4uM2FlMWM0M2ZhYTAyMmFjYzNkZDcyYmYwZTE4MjFkNzgwZjg2ZmI3NSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vcHJldHR5cGF0Y2hfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vcHJldHR5cGF0Y2hf
dW5pdHRlc3QucHkKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW1wb3J0IG9zLnBhdGgKIGltcG9ydCBz
eXMKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUKIGZyb20g
d2Via2l0cHkuY29tbW9uLnByZXR0eXBhdGNoIGltcG9ydCBQcmV0dHlQYXRjaApAQCAtNzcsNyAr
NzcsNyBAQCBJbmRleDogbGF0aW4xX3Rlc3QKICAgICAgICAgcHJldHR5X3BhdGNoID0gUHJldHR5
UGF0Y2goRXhlY3V0aXZlKCksIHNlbGYuX3dlYmtpdF9yb290KCkpCiAgICAgICAgIHByZXR0eSA9
IHByZXR0eV9wYXRjaC5wcmV0dHlfZGlmZihzZWxmLl9kaWZmX3dpdGhfbXVsdGlwbGVfZW5jb2Rp
bmdzKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocHJldHR5KSAgIyBXZSBnb3Qgc29tZSBvdXRw
dXQKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UocHJldHR5LCBzdHIpKSAgIyBJ
dCdzIGEgYnl0ZSBhcnJheSwgbm90IHVuaWNvZGUKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3Rh
bmNlKHByZXR0eSwgc3RyKSAgIyBJdCdzIGEgYnl0ZSBhcnJheSwgbm90IHVuaWNvZGUKIAogICAg
IGRlZiB0ZXN0X3ByZXR0eV9wcmludF9lbXB0eV9zdHJpbmcoc2VsZik6CiAgICAgICAgIGlmIG5v
dCBzZWxmLmNoZWNrX3J1YnkoKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3JlYWRfY2hlY2tzdW1fZnJvbV9wbmdfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9yZWFkX2NoZWNrc3VtX2Zyb21fcG5nX3VuaXR0ZXN0LnB5CmluZGV4
IDlmOTIwZmY4ZGNiN2FlMTNhNzliZmRiY2I4ZWFmNzQ3NjFkMzg0OWQuLjc1MWY3YWY5MDc1Y2My
YzJhNWY3YzI2YTljZWQ0NjVmNDQ0YjA2MTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3JlYWRfY2hlY2tzdW1fZnJvbV9wbmdfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vcmVhZF9jaGVja3N1bV9mcm9tX3BuZ191bml0dGVz
dC5weQpAQCAtMjIsNyArMjIsNyBAQAogIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgU3RyaW5nSU8KLWlt
cG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogZnJvbSB3ZWJraXRw
eS5jb21tb24gaW1wb3J0IHJlYWRfY2hlY2tzdW1fZnJvbV9wbmcKIAogCkBAIC0zNiw0ICszNiw0
IEBAIGNsYXNzIFJlYWRDaGVja3N1bUZyb21QbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgIyBUZXN0IGEgZmlsZSB3aXRob3V0IHRoZSBjb21tZW50LgogICAgICAgICBmaWxlaGFu
ZGxlID0gU3RyaW5nSU8uU3RyaW5nSU8oJycnXHg4OVBOR1xyXG5ceDFhXG5ceDAwXHgwMFx4MDBc
cklIRFJceDAwXHgwMFx4MDMgXHgwMFx4MDBceDAyWFx4MDhceDAyXHgwMFx4MDBceDAwXHgxNVx4
MTRceDE1J1x4MDBceDAwXHgxNlx4ZmVJREFUeFx4OWNceGVkXHhkZFtceDhjVVx4ZTVceGMxXHhm
Zlx4ZjE1VFx4MThceDBlYSwpXHhhNlx4ODBYWjxceDEwXG5ceGQ2SFx4YzRWXHg4OH1ceGI1XHhh
OVx4ZDZyXHhkNVx4MGJraTBceGE2XHhiNWloXHhkMlx4ZGVceDk4UEh6XHhkMVx4MDI9XFxxI1x4
MDFceDhiXHhhNXJKXHg4Ylx4ODhpXHhhY01ceGM1aFx4OGNiTWsoXHgxZXpAIVx4MGNceGQ1XHhk
Mlx4YzJceGI0NFx4MWNceDg0OFx4MWRGKFx4ZWJceDdmXHhiMVx4ZmZceGQ5XHhlZn5nXHhkNlx4
ZGUzXHhlMG9ceDEwXHhlY1x4ZTdzYTZ7XHhkNnpceGQ2XHhiM1x4ZDdceGYzXHhhOF83XHhkYk1b
WVx4OTZceDA1XHgwMFx4MDA5XHhjM1x4ZGVceGViXHRceDAwXHgwMFx4YmNceGRmXHgwOCxceDAw
XHg4MDBceDgxXHgwNVx4MDBceDEwJlx4YjBceDAwXHgwMFx4YzJceDA0XHgxNlx4MDBAXHg5OFx4
YzBceDAyXHgwMFx4MDhceDEzWFx4MDBceDAwYVx4MDJceDBiXHgwMCBMHHgwMVx4MDBceDg0XHQs
XHgwMFx4ODAwXHg4MVx4MDVceDAwXHgxMFx4ZDY0XHhiMFx4ZGFceDlhXHhkYlx4YjZtXHhkYlx4
YjRpXHhkM1x4ZmFceDlmclx4ZjNceGNkN1x4MGZceGU1VFx4MDdceGU1XHhkNFx4YTlTXHg4Ylx4
MTcvXHgxZT9+XHhmY1x4ZjhceGYxXHhlM1x4ZWZceGJmXHhmZlx4ZmVceGY3ejpNNVx4YmJceDg3
XHgxN1x4Y2JVWlx4OGZ8Vlx4ZDdceGJkXHgxMFx4YjZceGNke2JceDg4XHhmNmpceGIzXHg5Yj9c
eDE0XHg5Ylx4YTE+XHhlNlx4ZjlceGQ5XHhjZlx4MDBceDE3XHg5MycnJykKICAgICAgICAgY2hl
Y2tzdW0gPSByZWFkX2NoZWNrc3VtX2Zyb21fcG5nLnJlYWRfY2hlY2tzdW0oZmlsZWhhbmRsZSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBjaGVja3N1bSkKKyAgICAgICAgc2VsZi5h
c3NlcnRJc05vbmUoY2hlY2tzdW0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vY3Jhc2hsb2dzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9nc191bml0dGVzdC5weQppbmRleCAxZjVjNDBhMDli
ZWNmZDYzYzEzMWVjNzA5YzlmZTVjMGM4NGY2NzE0Li5hZGE1ZDBlNzc5NmNiMGFjOTFjYzMxNjU3
MWM2Y2FkNjQ2OGI4NjlkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vY3Jhc2hsb2dzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3NfdW5pdHRlc3QucHkKQEAgLTIxLDcgKzIxLDcgQEAK
ICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCiAjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0
IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uY3Jh
c2hsb2dzIGltcG9ydCBDcmFzaExvZ3MKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxl
c3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCkBAIC02OSwxMyArNjksNiBAQCBTZXJp
YWwgQVRBIERldmljZTogT1BUSUFSQyBEVkQgUlcgQUQtNTY3MFMKICIiIi5mb3JtYXQocHJvY2Vz
c19uYW1lPXByb2Nlc3NfbmFtZSwgcGlkPXBpZCkKIAogY2xhc3MgQ3Jhc2hMb2dzVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZGVmIGFzc2VydExpbmVzRXF1YWwoc2VsZiwgYSwgYik6Ci0g
ICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2Fzc2VydE11bHRpTGluZUVxdWFsJyk6Ci0gICAgICAg
ICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGEsIGIpCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuc3BsaXRsaW5lcygpLCBiLnNwbGl0bGluZXMoKSkK
LQotCiAgICAgZGVmIHRlc3RfZmluZF9sb2dfZGFyd2luKHNlbGYpOgogICAgICAgICBpZiBub3Qg
U3lzdGVtSG9zdCgpLnBsYXRmb3JtLmlzX21hYygpOgogICAgICAgICAgICAgcmV0dXJuCkBAIC05
NSwxNSArODgsMTUgQEAgY2xhc3MgQ3Jhc2hMb2dzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIGZpbGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3RlbShmaWxlcykKICAgICAgICAgY3Jhc2hf
bG9ncyA9IENyYXNoTG9ncyhNb2NrU3lzdGVtSG9zdChmaWxlc3lzdGVtPWZpbGVzeXN0ZW0pKQog
ICAgICAgICBsb2cgPSBjcmFzaF9sb2dzLmZpbmRfbmV3ZXN0X2xvZygiRHVtcFJlbmRlclRyZWUi
KQotICAgICAgICBzZWxmLmFzc2VydExpbmVzRXF1YWwobG9nLCBuZXdlcl9tb2NrX2NyYXNoX3Jl
cG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChsb2csIG5ld2VyX21vY2tf
Y3Jhc2hfcmVwb3J0KQogICAgICAgICBsb2cgPSBjcmFzaF9sb2dzLmZpbmRfbmV3ZXN0X2xvZygi
RHVtcFJlbmRlclRyZWUiLCAyODUyOSkKLSAgICAgICAgc2VsZi5hc3NlcnRMaW5lc0VxdWFsKGxv
ZywgbmV3ZXJfbW9ja19jcmFzaF9yZXBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5l
RXF1YWwobG9nLCBuZXdlcl9tb2NrX2NyYXNoX3JlcG9ydCkKICAgICAgICAgbG9nID0gY3Jhc2hf
bG9ncy5maW5kX25ld2VzdF9sb2coIkR1bXBSZW5kZXJUcmVlIiwgMjg1MzApCi0gICAgICAgIHNl
bGYuYXNzZXJ0TGluZXNFcXVhbChsb2csIG1vY2tfY3Jhc2hfcmVwb3J0KQorICAgICAgICBzZWxm
LmFzc2VydE11bHRpTGluZUVxdWFsKGxvZywgbW9ja19jcmFzaF9yZXBvcnQpCiAgICAgICAgIGxv
ZyA9IGNyYXNoX2xvZ3MuZmluZF9uZXdlc3RfbG9nKCJEdW1wUmVuZGVyVHJlZSIsIDI4NTMxKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvZywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJ
c05vbmUobG9nKQogICAgICAgICBsb2cgPSBjcmFzaF9sb2dzLmZpbmRfbmV3ZXN0X2xvZygiRHVt
cFJlbmRlclRyZWUiLCBuZXdlcl90aGFuPTEuMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
b2csIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGxvZykKIAogICAgICAgICBkZWYg
YmFkX3JlYWQocGF0aCk6CiAgICAgICAgICAgICByYWlzZSBJT0Vycm9yKCdJT0Vycm9yOiBObyBz
dWNoIGZpbGUgb3IgZGlyZWN0b3J5JykKQEAgLTExMywxMCArMTA2LDEwIEBAIGNsYXNzIENyYXNo
TG9nc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIGZpbGVzeXN0ZW0ucmVhZF90
ZXh0X2ZpbGUgPSBiYWRfcmVhZAogICAgICAgICBsb2cgPSBjcmFzaF9sb2dzLmZpbmRfbmV3ZXN0
X2xvZygiRHVtcFJlbmRlclRyZWUiLCAyODUzMSwgaW5jbHVkZV9lcnJvcnM9VHJ1ZSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKCdJT0Vycm9yOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5JyBp
biBsb2cpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0lPRXJyb3I6IE5vIHN1Y2ggZmlsZSBvciBk
aXJlY3RvcnknLCBsb2cpCiAKICAgICAgICAgZmlsZXN5c3RlbSA9IE1vY2tGaWxlU3lzdGVtKGZp
bGVzKQogICAgICAgICBjcmFzaF9sb2dzID0gQ3Jhc2hMb2dzKE1vY2tTeXN0ZW1Ib3N0KGZpbGVz
eXN0ZW09ZmlsZXN5c3RlbSkpCiAgICAgICAgIGZpbGVzeXN0ZW0ubXRpbWUgPSBiYWRfbXRpbWUK
ICAgICAgICAgbG9nID0gY3Jhc2hfbG9ncy5maW5kX25ld2VzdF9sb2coIkR1bXBSZW5kZXJUcmVl
IiwgbmV3ZXJfdGhhbj0xLjAsIGluY2x1ZGVfZXJyb3JzPVRydWUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgnT1NFcnJvcjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeScgaW4gbG9nKQorICAg
ICAgICBzZWxmLmFzc2VydEluKCdPU0Vycm9yOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Jywg
bG9nKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2Vu
dmlyb25tZW50X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL2Vudmlyb25tZW50X3VuaXR0ZXN0LnB5CmluZGV4IDY1NThiNTFkZmI4YTJiZTgyMzI5YmFh
MjI1NDc2NmUwZTExM2Y0ZmMuLjI4NjhhNjVkMmJmYzJjNmIzZjAwZTdiNWYwN2M0MWU1MzZlYWEw
NGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9lbnZp
cm9ubWVudF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vZW52aXJvbm1lbnRfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0
MiBhcyB1bml0dGVzdAogCiBmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgRW52aXJvbm1lbnQKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2
ZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVj
dXRpdmVfdW5pdHRlc3QucHkKaW5kZXggY2EyODE5NzUxN2YwNzI2NmM1MzI5OWFmODU1NGEyNDY2
ZmJiZmFkNC4uYzViNjUxZGY5YzdiZTg5YTkyN2NiZGU2OGI4OTFhYjk3YmZlMGZjMCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0
aXZlX3VuaXR0ZXN0LnB5CkBAIC0zMywxMyArMzMsMTcgQEAgaW1wb3J0IHNpZ25hbAogaW1wb3J0
IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCi1pbXBvcnQgdW5pdHRlc3QKIAog
IyBTaW5jZSB3ZSBleGVjdXRlIHRoaXMgc2NyaXB0IGRpcmVjdGx5IGFzIHBhcnQgb2YgdGhlIHVu
aXQgdGVzdHMsIHdlIG5lZWQgdG8gZW5zdXJlCiAjIHRoYXQgVG9vbHMvU2NyaXB0cyBpcyBpbiBz
eXMucGF0aCBmb3IgdGhlIG5leHQgaW1wb3J0cyB0byB3b3JrIGNvcnJlY3RseS4KIHNjcmlwdF9k
aXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5w
YXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkpKSkKIGlmIHNjcmlwdF9kaXIg
bm90IGluIHN5cy5wYXRoOgogICAgIHN5cy5wYXRoLmFwcGVuZChzY3JpcHRfZGlyKQordGhpcmRf
cGFydHlfcHkgPSBvcy5wYXRoLmpvaW4oc2NyaXB0X2RpciwgIndlYmtpdHB5IiwgInRoaXJkcGFy
dHkiLCAiYXV0b2luc3RhbGxlZCIpCitpZiB0aGlyZF9wYXJ0eV9weSBub3QgaW4gc3lzLnBhdGg6
CisgICAgc3lzLnBhdGguYXBwZW5kKHRoaXJkX3BhcnR5X3B5KQorCitpbXBvcnQgdW5pdHRlc3Qy
IGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1w
b3J0IEV4ZWN1dGl2ZSwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5m
aWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCkBAIC0xNzIsMTEgKzE3NiwxMSBA
QCBjbGFzcyBFeGVjdXRpdmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaWYgc3lz
LnBsYXRmb3JtID09ICJ3aW4zMiI6CiAgICAgICAgICAgICAjIEZJWE1FOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ3OTAKICAgICAgICAgICAgICMgV2Ugc2VlbSB0
byBnZXQgZWl0aGVyIDAgb3IgMSBoZXJlIGZvciBzb21lIHJlYXNvbi4KLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShwcm9jZXNzLndhaXQoKSBpbiAoMCwgMSkpCisgICAgICAgICAgICBzZWxm
LmFzc2VydEluKHByb2Nlc3Mud2FpdCgpLCAoMCwgMSkpCiAgICAgICAgIGVsaWYgc3lzLnBsYXRm
b3JtID09ICJjeWd3aW4iOgogICAgICAgICAgICAgIyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MTk2CiAgICAgICAgICAgICAjIGN5Z3dpbiBzZWVtcyB0
byBnaXZlIHVzIGVpdGhlciBTSUdBQlJUIG9yIFNJR0tJTEwKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShwcm9jZXNzLndhaXQoKSBpbiAoLXNpZ25hbC5TSUdBQlJULCAtc2lnbmFsLlNJR0tJ
TEwpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihwcm9jZXNzLndhaXQoKSwgKC1zaWduYWwu
U0lHQUJSVCwgLXNpZ25hbC5TSUdLSUxMKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGV4
cGVjdGVkX2V4aXRfY29kZSA9IC1zaWduYWwuU0lHS0lMTAogICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwcm9jZXNzLndhaXQoKSwgZXhwZWN0ZWRfZXhpdF9jb2RlKQpAQCAtMTg3LDcgKzE5
MSw3IEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBz
ZXJpYWxfdGVzdF9raWxsX2FsbChzZWxmKToKICAgICAgICAgZXhlY3V0aXZlID0gRXhlY3V0aXZl
KCkKICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4obmV2ZXJfZW5kaW5nX2NvbW1h
bmQoKSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
cm9jZXNzLnBvbGwoKSwgTm9uZSkgICMgUHJvY2VzcyBpcyBydW5uaW5nCisgICAgICAgIHNlbGYu
YXNzZXJ0SXNOb25lKHByb2Nlc3MucG9sbCgpKSAgIyBQcm9jZXNzIGlzIHJ1bm5pbmcKICAgICAg
ICAgZXhlY3V0aXZlLmtpbGxfYWxsKG5ldmVyX2VuZGluZ19jb21tYW5kKClbMF0pCiAgICAgICAg
ICMgTm90ZTogQ2FuJ3QgdXNlIGEgdGVybmFyeSBzaW5jZSBzaWduYWwuU0lHVEVSTSBpcyB1bmRl
ZmluZWQgZm9yIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiCiAgICAgICAgIGlmIHN5cy5wbGF0Zm9y
bSA9PSAiY3lnd2luIjoKQEAgLTE5Niw3ICsyMDAsNyBAQCBjbGFzcyBFeGVjdXRpdmVUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoK
ICAgICAgICAgICAgICMgRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NDc5MAogICAgICAgICAgICAgIyBXZSBzZWVtIHRvIGdldCBlaXRoZXIgMCBvciAxIGhl
cmUgZm9yIHNvbWUgcmVhc29uLgotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHByb2Nlc3Mu
d2FpdCgpIGluICgwLCAxKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4ocHJvY2Vzcy53YWl0
KCksICgwLCAxKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGV4cGVjdGVkX2V4aXRfY29k
ZSA9IC1zaWduYWwuU0lHVEVSTQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNz
LndhaXQoKSwgZXhwZWN0ZWRfZXhpdF9jb2RlKQpAQCAtMjI5LDcgKzIzMyw3IEBAIGNsYXNzIEV4
ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIGV4ZWN1dGl2ZSA9IEV4
ZWN1dGl2ZSgpCiAgICAgICAgIHBpZHMgPSBleGVjdXRpdmUucnVubmluZ19waWRzKCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG9zLmdldHBpZCgpIGluIHBpZHMpCisgICAgICAgIHNlbGYuYXNz
ZXJ0SW4ob3MuZ2V0cGlkKCksIHBpZHMpCiAKICAgICBkZWYgc2VyaWFsX3Rlc3RfcnVuX2luX3Bh
cmFsbGVsKHNlbGYpOgogICAgICAgICAjIFdlIHJ1biB0aGlzIHRlc3Qgc2VyaWFsbHkgdG8gYXZv
aWQgb3ZlcmxvYWRpbmcgdGhlIG1hY2hpbmUgYW5kIHRocm93aW5nIG9mZiB0aGUgdGltaW5nLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVfbG9j
a19pbnRlZ3JhdGlvbnRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vZmlsZV9sb2NrX2ludGVncmF0aW9udGVzdC5weQppbmRleCBiNjYxYTAxZjI5MjZhMGE0NjNm
MDI3NzRiYzkwNzg0ZmU4NzMxNTI2Li43YjFiNDI2OTU0M2E0ODFmYzdmYTQyZWEwYTI3YWRmZjgx
NjU3YWNkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
ZmlsZV9sb2NrX2ludGVncmF0aW9udGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vZmlsZV9sb2NrX2ludGVncmF0aW9udGVzdC5weQpAQCAtMjUsNyArMjUs
NyBAQAogCiBpbXBvcnQgb3MKIGltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBv
cnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5m
aWxlX2xvY2sgaW1wb3J0IEZpbGVMb2NrCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2tfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrX3VuaXR0ZXN0LnB5
CmluZGV4IGE5MGM2MGRjZTE5ZWY3ZjRhNWRhYzgyN2JiMmFlNTUyZGYzYTI0YzIuLmE1OTgzMzIw
YTI1ZjM3ZjBmOGQxMjRkYzI4NzgxMDU1YzkyZjIxNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2tfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9ja191
bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBAQAogCiBpbXBvcnQgb3MKIGltcG9ydCByZQotaW1w
b3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIAogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBmaWxlc3lzdGVtX21vY2sKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRl
c3QucHkKaW5kZXggMDcxODMxNzNhNTI2YmI0NTA1Y2FhNTdmNDE3YmY3YTM0Yjk1ZWUwYS4uMjYz
ODllNzhiNjUzYzJlNTU1MzBjZThkMGExZWYwMjg3ZmQ2NDQ5OSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRl
c3QucHkKQEAgLTM1LDcgKzM1LDcgQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3RhdAogaW1wb3J0IHN5
cwogaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMg
dW5pdHRlc3QKIAogZnJvbSBmaWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d0ZXN0aW5nLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2xvZ3Rlc3RpbmcucHkKaW5kZXgg
MGNmYTZjYjBhYjI2ZDkwMzVlNjAxOTVmNGVjYTg2NDRlNzMyMDJhOC4uMWFiYTE3MjZhMjQzMTNj
Y2Q1ZmQzZGFlMjkwZmU1MGYwMmYyZTc3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2xvZ3Rlc3RpbmcucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2xvZ3Rlc3RpbmcucHkKQEAgLTMyLDcgKzMyLDcgQEAgc2VlIHRo
ZSBUZXN0TG9nU3RyZWFtIGNsYXNzLCBhbmQgcGVyaGFwcyBhbHNvIHRoZSBMb2dUZXN0aW5nIGNs
YXNzLgogIiIiCiAKIGltcG9ydCBsb2dnaW5nCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0
dGVzdDIgYXMgdW5pdHRlc3QKIAogCiBjbGFzcyBUZXN0TG9nU3RyZWFtKG9iamVjdCk6CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHNfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHNf
dW5pdHRlc3QucHkKaW5kZXggNmQ3Y2M0ZGE0ZjQyNDczZjg4MTkzOGEwY2Q0YTM4NTJlMzIxZmQy
Mi4uMjUyZWJmNGNjMjQ0YjU5YjljNTAyMzQzYWJlODM4NTc3Y2ViMDU3NCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2xvZ3V0aWxzX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d1dGlsc191bml0
dGVzdC5weQpAQCAtMjQsNyArMjQsNyBAQAogCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCi1p
bXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmxvZ3Rlc3RpbmcgaW1wb3J0IExvZ1Rlc3RpbmcKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5sb2d0ZXN0aW5nIGltcG9ydCBUZXN0TG9nU3RyZWFtCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vb3V0cHV0Y2FwdHVy
ZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRw
dXRjYXB0dXJlX3VuaXR0ZXN0LnB5CmluZGV4IGRhNDM0N2M4ZDEwOGIzNTQ3MDlmZGIyZWNjMDc1
NTA5MjI4NTMyODguLjdlZjJlMjQ3YTEwNmQ5OGY0OTc3MzZkYWIwMWMwMDg0ZDBhNThmYTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXRjYXB0
dXJlX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9vdXRwdXRjYXB0dXJlX3VuaXR0ZXN0LnB5CkBAIC0yMSw3ICsyMSw3IEBACiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKIGltcG9ydCBsb2dnaW5nCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIg
YXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUg
aW1wb3J0IE91dHB1dENhcHR1cmUKIApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBPdXRwdXRDYXB0
dXJlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGFjdHVhbF9zdGRvdXQsIGFjdHVh
bF9zdGRlcnIsIGFjdHVhbF9sb2dzID0gc2VsZi5vdXRwdXQucmVzdG9yZV9vdXRwdXQoKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBhY3R1YWxfc3Rkb3V0KQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCcnLCBhY3R1YWxfc3RkZXJyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4
cGVjdGVkX2xvZ3MsIGFjdHVhbF9sb2dzKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVx
dWFsKGV4cGVjdGVkX2xvZ3MsIGFjdHVhbF9sb2dzKQogCiAgICAgZGVmIHRlc3RfaW5pdGlhbF9s
b2dfbGV2ZWwoc2VsZik6CiAgICAgICAgIHNlbGYub3V0cHV0LmNhcHR1cmVfb3V0cHV0KCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXR0ZWVf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vb3V0cHV0
dGVlX3VuaXR0ZXN0LnB5CmluZGV4IDZhNTA5ZjBjMjE5YWNlNGJlZDhlZjExMzQxODM0N2EzOWE3
ZDczMTkuLjhkMDY5MTZmOGI1MDA0YjZiYzBkODAyNjlhOWQzOGFhNDdlMzVhNDIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXR0ZWVfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL291dHB1dHRl
ZV91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQg
U3RyaW5nSU8KLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAog
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0dGVlIGltcG9ydCBUZWUsIE91dHB1
dFRlZQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
cGF0aF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9w
YXRoX3VuaXR0ZXN0LnB5CmluZGV4IDdhNzE5NTg0ZGY0ODE1MmYzZDFjZWExOWRlMGIxMDUzMTk4
YjY2NDcuLjExODU0NmU2OGM0NmRmMGI0OGYzOWE3MDJjNDM0OTExYjdhN2M5NmIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wYXRoX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wYXRoX3VuaXR0ZXN0
LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1p
bXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIGltcG9ydCBzeXMK
IAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5c3RlbUhv
c3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm9fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vcGxhdGZvcm1pbmZvX3VuaXR0ZXN0LnB5CmluZGV4IDZiNjcxZTJlZWIzNGE2Yjg3NTVlODMw
NTE1NDYxNDUyZmFkNjU4MmMuLmJkYjBmODY2MTRkOTg0OTFmMTczYWEyZTJkNGU4Mzc2YWY0M2Rm
ODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm9fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBAQAogCiBpbXBv
cnQgcGxhdGZvcm0KIGltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0
MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBFeGVjdXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9j
ayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZSwgTW9ja0V4ZWN1dGl2ZTIKQEAgLTc5LDEyICs3OSwxMiBA
QCBjbGFzcyBUZXN0UGxhdGZvcm1JbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnROb3RFcXVhbHMoaW5mby5vc192ZXJzaW9uLCAnJykKICAgICAgICAgc2VsZi5hc3Nl
cnROb3RFcXVhbHMoaW5mby5kaXNwbGF5X25hbWUoKSwgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShpbmZvLmlzX21hYygpIG9yIGluZm8uaXNfd2luKCkgb3IgaW5mby5pc19saW51eCgpIG9y
IGluZm8uaXNfZnJlZWJzZCgpKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFscyhpbmZvLnRl
cm1pbmFsX3dpZHRoKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKGluZm8u
dGVybWluYWxfd2lkdGgoKSkKIAogICAgICAgICBpZiBpbmZvLmlzX21hYygpOgogICAgICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGluZm8udG90YWxfYnl0ZXNfbWVtb3J5KCkgPiAwKQogICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmZvLnRvdGFsX2J5dGVzX21l
bW9yeSgpLCBOb25lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoaW5mby50b3RhbF9i
eXRlc19tZW1vcnkoKSkKIAogICAgIGRlZiB0ZXN0X29zX25hbWVfYW5kX3dyYXBwZXJzKHNlbGYp
OgogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2xpbnV4MicpKQpAQCAt
MTcyLDEwICsxNzIsMTAgQEAgY2xhc3MgVGVzdFBsYXRmb3JtSW5mbyh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mby50b3RhbF9ieXRlc19tZW1vcnkoKSwg
MTIzNCkKIAogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ3dpbjMyJywg
dHVwbGUoWzYsIDEsIDc2MDBdKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mby50b3Rh
bF9ieXRlc19tZW1vcnkoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoaW5mby50
b3RhbF9ieXRlc19tZW1vcnkoKSkKIAogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFr
ZV9zeXMoJ2xpbnV4MicpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZm8udG90YWxfYnl0
ZXNfbWVtb3J5KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGluZm8udG90YWxf
Ynl0ZXNfbWVtb3J5KCkpCiAKICAgICAgICAgaW5mbyA9IHNlbGYubWFrZV9pbmZvKGZha2Vfc3lz
KCdmcmVlYnNkOScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZm8udG90YWxfYnl0ZXNf
bWVtb3J5KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGluZm8udG90YWxfYnl0
ZXNfbWVtb3J5KCkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vcHJvZmlsZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vcHJvZmlsZXJfdW5pdHRlc3QucHkKaW5kZXggZWQ4NTY3ZmJmYTA1MDk1MDNiMzAx
Yzk3ZGZmNmJhZmJkOTBmYjk0ZS4uMTdiZTZkYjQzYTEzMmQwNDMzNjZiZTk2ZDIyOGY0M2QyZjdi
MmY5NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3By
b2ZpbGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9wcm9maWxlcl91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFz
IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5wbGF0Zm9ybWluZm9fbW9j
ayBpbXBvcnQgTW9ja1BsYXRmb3JtSW5mbwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5
c3RlbWhvc3RfbW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlsc191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlsc191bml0dGVzdC5w
eQppbmRleCA2MjVhY2YyYjNiM2YzMTQ5MmI2M2Q4Y2EwODYxODI1Y2Q5NWRkMjY2Li4zMDUwYWRj
OTkxZWI2MTI2NzJhODQ4M2M3OTg4N2ZlMjQyZmRjYzVlIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3RhY2tfdXRpbHNfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N0YWNrX3V0aWxzX3VuaXR0ZXN0
LnB5CkBAIC0yNyw3ICsyNyw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBzeXMKLWltcG9y
dCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IG91dHB1dGNhcHR1cmUKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbSBpbXBvcnQgc3RhY2tfdXRpbHMKQEAgLTQyLDExICs0MiwxMSBAQCBjbGFzcyBTdGFj
a1V0aWxzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfZmluZF90aHJlYWRf
c3RhY2tfZm91bmQoc2VsZik6CiAgICAgICAgIHRocmVhZF9pZCA9IGN1cnJlbnRfdGhyZWFkX2lk
KCkKICAgICAgICAgZm91bmRfc3RhY2sgPSBzdGFja191dGlscy5fZmluZF90aHJlYWRfc3RhY2so
dGhyZWFkX2lkKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGZvdW5kX3N0YWNrLCBOb25l
KQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShmb3VuZF9zdGFjaykKIAogICAgIGRlZiB0
ZXN0X2ZpbmRfdGhyZWFkX3N0YWNrX25vdF9mb3VuZChzZWxmKToKICAgICAgICAgZm91bmRfc3Rh
Y2sgPSBzdGFja191dGlscy5fZmluZF90aHJlYWRfc3RhY2soMCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChmb3VuZF9zdGFjaywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZm91
bmRfc3RhY2spCiAKICAgICBkZWYgdGVzdF9sb2dfdGhyZWFkX3N0YXRlKHNlbGYpOgogICAgICAg
ICBtc2dzID0gW10KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS91c2VyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL3VzZXJfdW5pdHRlc3QucHkKaW5kZXggYmQ4NmQyMjhmNTMyZTFiMmMwMDQ1ZWI4YjMxMjJj
Zjg5NTg4NjM3Ny4uNDk4MTBiMmUwNjFkNzM5OTg1YzhjMDRjMDNhOTJiN2ViZDAyMWUwMCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXJfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXJfdW5p
dHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVy
ZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXIgaW1wb3J0IFVzZXIKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS93b3Jrc3BhY2VfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vd29ya3NwYWNlX3Vu
aXR0ZXN0LnB5CmluZGV4IGVjYTM4NmFjMzM0ODM4MTdkZDdiZjAzOGY2Y2ZlY2NmNTc3MTEwZmMu
LjlmNDAwYzdkODVmMTM1MGIzMzIyYWJmZGNhOWNmZTM1NmQzNTA5YzEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS93b3Jrc3BhY2VfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3dvcmtzcGFjZV91bml0
dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lz
dGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0
cHV0Q2FwdHVyZQpAQCAtNjksNCArNjksNCBAQCBNT0NLIG91dHB1dCBvZiBjaGlsZCBwcm9jZXNz
CiAgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCk6CiAgICAgICAgICAgICAgICAg
c2VsZi5maWxlbmFtZSA9IHBhdGgKICAgICAgICAgYXJjaGl2ZSA9IE91dHB1dENhcHR1cmUoKS5h
c3NlcnRfb3V0cHV0cyhzZWxmLCB3b3Jrc3BhY2UuY3JlYXRlX3ppcCwgWyIvemlwL3BhdGgiLCAi
L3NvdXJjZS9wYXRoIiwgTW9ja1ppcEZpbGVdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3Mp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJjaGl2ZSwgTm9uZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRJc05vbmUoYXJjaGl2ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS96aXBmaWxlc2V0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL3ppcGZpbGVzZXRfdW5pdHRlc3QucHkKaW5kZXggOTE4ZTIzYTFh
NGQzMDA1MDAxMTljMGYwNWFlOWEyNjRmMjY2OGZmNy4uMWEwNjAzYzllY2Q2YTM0NzRhMzRiYTIz
MTUwZjIxMzgyNzQyMTA5MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL3ppcGZpbGVzZXRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL3ppcGZpbGVzZXRfdW5pdHRlc3QucHkKQEAgLTIzLDcgKzIzLDcg
QEAKIAogaW1wb3J0IHNodXRpbAogaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKK2lt
cG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIGltcG9ydCB6aXBmaWxlCiAKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aHJlYWQvbWVzc2FnZXB1
bXBfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aHJlYWQvbWVz
c2FnZXB1bXBfdW5pdHRlc3QucHkKaW5kZXggZjczMWRiMmIyMmYyMWVhYmYxYWU1NWQ0ZTViMDky
Y2VjYjc3NzJhZC4uMWE0Njc3MjMwMWI4NmRmNDEwZWI4NjQ1YzEzMjhjNjQzODMxOGU1NiAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGhyZWFkL21lc3NhZ2VwdW1w
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RocmVhZC9t
ZXNzYWdlcHVtcF91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVu
aXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnRocmVhZC5tZXNzYWdlcHVtcCBpbXBvcnQg
TWVzc2FnZVB1bXAsIE1lc3NhZ2VQdW1wRGVsZWdhdGUKIGZyb20gd2Via2l0cHkuY29tbW9uLnRo
cmVhZC50aHJlYWRlZG1lc3NhZ2VxdWV1ZSBpbXBvcnQgVGhyZWFkZWRNZXNzYWdlUXVldWUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RocmVhZC90aHJlYWRlZG1l
c3NhZ2VxdWV1ZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3Ro
cmVhZC90aHJlYWRlZG1lc3NhZ2VxdWV1ZV91bml0dGVzdC5weQppbmRleCBjYjY3YzFlODJlNGY3
YjQzMDQyYWRkMTVjZmE3NTc3YThmNWJhMzBmLi5kYmI4YTJlNDIwNjBhNmY0N2U1NWE3NzE4MmY2
NzM1ZTAwN2U0ODhjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90
aHJlYWQvdGhyZWFkZWRtZXNzYWdlcXVldWVfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vdGhyZWFkL3RocmVhZGVkbWVzc2FnZXF1ZXVlX3VuaXR0ZXN0LnB5
CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBv
cnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRw
eS5jb21tb24udGhyZWFkLnRocmVhZGVkbWVzc2FnZXF1ZXVlIGltcG9ydCBUaHJlYWRlZE1lc3Nh
Z2VRdWV1ZQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRj
aGxpc3QvYW1vdW50Y2hhbmdlZHBhdHRlcm5fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi93YXRjaGxpc3QvYW1vdW50Y2hhbmdlZHBhdHRlcm5fdW5pdHRlc3QucHkK
aW5kZXggN2FlNDVmYTNmODU3OWM5ZmMxOTI4Nzc0OGNlYTY3NzYxNDk1ZmM3Yi4uYjIyMmQzYTUw
MzIxYjNhMGQxNjE1MDkyZWFlOTlmNDQwYTU3N2JjMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vd2F0Y2hsaXN0L2Ftb3VudGNoYW5nZWRwYXR0ZXJuX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC9hbW91bnRj
aGFuZ2VkcGF0dGVybl91bml0dGVzdC5weQpAQCAtMzEsNyArMzEsNyBAQAogCiAKIGltcG9ydCBy
ZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIAogZnJv
bSB3ZWJraXRweS5jb21tb24ud2F0Y2hsaXN0LmFtb3VudGNoYW5nZWRwYXR0ZXJuIGltcG9ydCBB
bW91bnRDaGFuZ2VkUGF0dGVybgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vd2F0Y2hsaXN0L2NoYW5nZWRsaW5lcGF0dGVybl91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC9jaGFuZ2VkbGluZXBhdHRlcm5fdW5pdHRl
c3QucHkKaW5kZXggMWYyYWVkYTIzN2E5MjZhYWVjNjA1MjU0N2YzMjQ1ODUwYmI2ZDRmZS4uMmY1
ZmQ2OGJlYjVjZDcxMTc4OTRjZTYwNzIzOTE2N2Q3MDEwNmE1MSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vd2F0Y2hsaXN0L2NoYW5nZWRsaW5lcGF0dGVybl91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3QvY2hh
bmdlZGxpbmVwYXR0ZXJuX3VuaXR0ZXN0LnB5CkBAIC0yOSw3ICsyOSw3IEBACiAnJydVbml0IHRl
c3RzIGZvciBjaGFuZ2VkbGluZXBhdHRlcm4ucHkuJycnCiAKIGltcG9ydCByZQotaW1wb3J0IHVu
aXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIAogZnJvbSB3ZWJraXRweS5j
b21tb24ud2F0Y2hsaXN0LmNoYW5nZWRsaW5lcGF0dGVybiBpbXBvcnQgQ2hhbmdlZExpbmVQYXR0
ZXJuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3Qv
ZmlsZW5hbWVwYXR0ZXJuX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vd2F0Y2hsaXN0L2ZpbGVuYW1lcGF0dGVybl91bml0dGVzdC5weQppbmRleCAwYWZkZjMwMDU5
NzY1OWMwNWE2NzBlODk0NDNkNWZmMmI3ZTFkODA4Li4yYjUxZGQ2OGZmYjVkNzAzZGNjYjRlZTNl
YjNmYjQzZTI5ODNiOTBlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi93YXRjaGxpc3QvZmlsZW5hbWVwYXR0ZXJuX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC9maWxlbmFtZXBhdHRlcm5fdW5pdHRlc3QucHkK
QEAgLTI3LDcgKzI3LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IHJlCi1pbXBvcnQgdW5p
dHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi53YXRjaGxpc3QuZmlsZW5hbWVwYXR0ZXJuIGltcG9ydCBGaWxlbmFtZVBhdHRlcm4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC93YXRjaGxp
c3RfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3Qv
d2F0Y2hsaXN0X3VuaXR0ZXN0LnB5CmluZGV4IDY3ZmYzYjAxYWNmYTUyNmE2MmI3OTI2MTlhOTc5
NmVlYzA0N2U5NzMuLmRkN2IwODNlYTI3YTU4NzIyMjcxMjZjNzg0MzI0Yjc3MGQ4MjJhZjYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC93YXRjaGxp
c3RfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vd2F0Y2hs
aXN0L3dhdGNobGlzdF91bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBAQAogCiAnJydVbml0IHRl
c3RzIGZvciB3YXRjaGxpc3QucHkuJycnCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0
ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5kaWZmX3Rl
c3RfZGF0YSBpbXBvcnQgRElGRl9URVNUX0RBVEEKIGZyb20gd2Via2l0cHkuY29tbW9uLndhdGNo
bGlzdC53YXRjaGxpc3RwYXJzZXIgaW1wb3J0IFdhdGNoTGlzdFBhcnNlcgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vd2F0Y2hsaXN0L3dhdGNobGlzdHJ1bGVfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3Qvd2F0Y2hs
aXN0cnVsZV91bml0dGVzdC5weQppbmRleCA5MmFhZjM0YWIxODdhNzgxNTc5ZmQ1NzRhYjEyYjli
N2Q1NTM3NTI0Li5kOTI2ODg3ZTU2YWRhYTEwZDJiMzJiZDU3ODU1YjNmNGU0YTk0MDc4IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3Qvd2F0Y2hsaXN0
cnVsZV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRj
aGxpc3Qvd2F0Y2hsaXN0cnVsZV91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVz
dAogZnJvbSB3ZWJraXRweS5jb21tb24ud2F0Y2hsaXN0LndhdGNobGlzdHJ1bGUgaW1wb3J0IFdh
dGNoTGlzdFJ1bGUKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi93ZWJraXR1bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dlYmtp
dHVuaXR0ZXN0LnB5CmluZGV4IDdiNjUwYTFlYjMyZmU0NGUzYjBmOTExYzQxYTYyNTg3ZGEwZmFm
ZWEuLmRkNjE1MjM3OTUyZTJhNjA1ZmQ3ZTJkOTM4ZWRjNDdlODc2Y2M1NTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dlYmtpdHVuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dlYmtpdHVuaXR0ZXN0LnB5CkBAIC0yOSw3ICsy
OSw3IEBACiAnJydCYXNpYyB1bml0IHRlc3QgZnVuY3Rpb25hbGl0eS4nJycKIAogaW1wb3J0IHJl
Ci1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogCiBjbGFz
cyBUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkKaW5kZXggYzg2ZTlhMjk5MWRkODIzZjdi
ZWJiMGNhNjRlMTQxZTkyOTg2ZmJhMy4uMzYyNzQ3ZGU0Y2M4MTExYzc0Mzg5N2I0ZGM1OTcxMTM2
OGM2MTIxNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5l
cl91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQppbmRleCBhYWQyYjMwODcyODQw
MjIxMGYxMjQxNGYwZmYwNTVlMGQzOGE3NjkwLi40YTgxNTQ4NzhiYjcyMjU4NmU4MDc4NjIzOWE3
ZTBjMjkxNTMwODA2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKQEAg
LTMxLDcgKzMxLDcgQEAKIAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKLWltcG9ydCB1bml0dGVz
dAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5o
b3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250
cm9sbGVycy5tYW5hZ2VyIGltcG9ydCBNYW5hZ2VyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHkKaW5kZXggM2EyZWYzZDFhNzgzYTA1Y2Ux
ZDRhNTExOWE3NGViYjY1YzBiMmU0OC4uNDExNjU5ODhiZDk1MTI1YzU4MjhkZmJhNzdlZWUxMDZi
ZTIzNDA5MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRl
cl91bml0dGVzdC5weQpAQCAtMjMsNyArMjMsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzIGltcG9ydCB0ZXN0X3Jlc3VsdF93cml0ZXIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9w
YWNrYWdlL2pzb25fcmVzdWx0c19nZW5lcmF0b3JfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX3Jlc3VsdHNfZ2VuZXJh
dG9yX3VuaXR0ZXN0LnB5CmluZGV4IGM1YzJiMjRlNWQ4NjdkNTlmYjFjZDdmYTIzOGU0YjkxM2Fj
ZjI3MDYuLmZmZDdmMjA5MTBkNTAzZWJlMzliOGQxOGMzNmJlNjFkODFmZjJkMTIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2pz
b25fcmVzdWx0c19nZW5lcmF0b3JfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvanNvbl9yZXN1bHRzX2dlbmVyYXRvcl91
bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiBpbXBv
cnQganNvbgogaW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgcmFuZG9tCkBAIC0xMjMsMTIgKzEyMywx
MiBAQCBjbGFzcyBKU09OR2VuZXJhdG9yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
ICMgQWxpYXNpbmcgdG8gYSBzaG9ydCBuYW1lIGZvciBiZXR0ZXIgYWNjZXNzIHRvIGl0cyBjb25z
dGFudHMuCiAgICAgICAgIEpSRyA9IGpzb25fcmVzdWx0c19nZW5lcmF0b3IuSlNPTlJlc3VsdHNH
ZW5lcmF0b3JCYXNlCiAKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKEpSRy5WRVJTSU9OX0tFWSBp
biBqc29uKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5idWlsZGVyX25hbWUgaW4ganNv
bikKKyAgICAgICAgc2VsZi5hc3NlcnRJbihKUkcuVkVSU0lPTl9LRVksIGpzb24pCisgICAgICAg
IHNlbGYuYXNzZXJ0SW4oc2VsZi5idWlsZGVyX25hbWUsIGpzb24pCiAKICAgICAgICAgYnVpbGRp
bmZvID0ganNvbltzZWxmLmJ1aWxkZXJfbmFtZV0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKEpS
Ry5GSVhBQkxFIGluIGJ1aWxkaW5mbykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKEpSRy5URVNU
UyBpbiBidWlsZGluZm8pCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oSlJHLkZJWEFCTEUsIGJ1aWxk
aW5mbykKKyAgICAgICAgc2VsZi5hc3NlcnRJbihKUkcuVEVTVFMsIGJ1aWxkaW5mbykKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYnVpbGRpbmZvW0pSRy5CVUlMRF9OVU1CRVJTXSksIG51
bV9ydW5zKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkaW5mb1tKUkcuQlVJTERfTlVN
QkVSU11bMF0sIHNlbGYuYnVpbGRfbnVtYmVyKQogCkBAIC0xODEsNyArMTgxLDcgQEAgY2xhc3Mg
SlNPTkdlbmVyYXRvclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBub2RlcyA9IHBh
dGguc3BsaXQoIi8iKQogICAgICAgICBzdWJfdHJpZSA9IHRyaWUKICAgICAgICAgZm9yIG5vZGUg
aW4gbm9kZXM6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobm9kZSBpbiBzdWJfdHJpZSkK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4obm9kZSwgc3ViX3RyaWUpCiAgICAgICAgICAgICBz
dWJfdHJpZSA9IHN1Yl90cmllW25vZGVdCiAgICAgICAgIHJldHVybiBzdWJfdHJpZQogCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9saW50X3Rlc3RfZXhw
ZWN0YXRpb25zX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGludF90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQppbmRleCAzMmVhOGI5Y2QxYjlj
OTRlZDlhNDJlMTUxMjgyZTk1MWRhZjQxYmQzLi44OWFkZTE5MzMxMGJmMDE1YWUzZDY4YTg3MGUw
NjMyZjY1M2ZlZTIyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9saW50X3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xpbnRfdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3Qu
cHkKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgU3RyaW5nSU8K
LWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5Lmxh
eW91dF90ZXN0cyBpbXBvcnQgbGludF90ZXN0X2V4cGVjdGF0aW9ucwpAQCAtMTAwLDcgKzEwMCw3
IEBAIGNsYXNzIExpbnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmVzID0gbGlu
dF90ZXN0X2V4cGVjdGF0aW9ucy5saW50KGhvc3QsIG9wdGlvbnMsIGxvZ2dpbmdfc3RyZWFtKQog
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAwKQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUoJ0xpbnQgc3VjY2VlZGVkJyBpbiBsb2dnaW5nX3N0cmVhbS5nZXR2YWx1ZSgpKQorICAgICAg
ICBzZWxmLmFzc2VydEluKCdMaW50IHN1Y2NlZWRlZCcsIGxvZ2dpbmdfc3RyZWFtLmdldHZhbHVl
KCkpCiAKICAgICBkZWYgdGVzdF9saW50X3Rlc3RfZmlsZXNfX2Vycm9ycyhzZWxmKToKICAgICAg
ICAgb3B0aW9ucyA9IG9wdHBhcnNlLlZhbHVlcyh7J3BsYXRmb3JtJzogJ3Rlc3QnLCAnZGVidWdf
cnd0X2xvZ2dpbmcnOiBGYWxzZX0pCkBAIC0xMTgsOSArMTE4LDkgQEAgY2xhc3MgTGludFRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICByZXMgPSBsaW50X3Rlc3RfZXhwZWN0YXRpb25z
LmxpbnQoaG9zdCwgb3B0aW9ucywgbG9nZ2luZ19zdHJlYW0pCiAKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChyZXMsIC0xKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ0xpbnQgZmFpbGVkJyBp
biBsb2dnaW5nX3N0cmVhbS5nZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2Zv
bzoxJyBpbiBsb2dnaW5nX3N0cmVhbS5nZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUoJ2JhcjoxJyBpbiBsb2dnaW5nX3N0cmVhbS5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFz
c2VydEluKCdMaW50IGZhaWxlZCcsIGxvZ2dpbmdfc3RyZWFtLmdldHZhbHVlKCkpCisgICAgICAg
IHNlbGYuYXNzZXJ0SW4oJ2ZvbzoxJywgbG9nZ2luZ19zdHJlYW0uZ2V0dmFsdWUoKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRJbignYmFyOjEnLCBsb2dnaW5nX3N0cmVhbS5nZXR2YWx1ZSgpKQogCiAK
IGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRpb25fdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9jb25maWd1cmF0aW9uX3VuaXR0ZXN0LnB5CmluZGV4IGVjOTljZjZiNDdlZGM1ZDIwNGIyZDE0
YzZjMmM2NmYxMjExNzM1YTYuLjFhN2QzNzVmMjFkZjJhYmQzZmI5M2YyOWQzNWU0YmM1NmQzZDRi
NDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVs
cy90ZXN0X2NvbmZpZ3VyYXRpb25fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbl91bml0dGVzdC5weQpA
QCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0
IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0ICoKIApAQCAtNzEs
MTUgKzcxLDE1IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgZGVmIHRlc3RfaGFzaChzZWxmKToKICAgICAgICAgY29uZmlnX2RpY3QgPSB7fQog
ICAgICAgICBjb25maWdfZGljdFtUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVh
c2UnKV0gPSBUcnVlCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShUZXN0Q29uZmlndXJhdGlvbign
eHAnLCAneDg2JywgJ3JlbGVhc2UnKSBpbiBjb25maWdfZGljdCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRJbihUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnKSwgY29uZmlnX2Rp
Y3QpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb25maWdfZGljdFtUZXN0Q29uZmlndXJhdGlv
bigneHAnLCAneDg2JywgJ3JlbGVhc2UnKV0pCiAKICAgICAgICAgZGVmIHF1ZXJ5X3Vua25vd25f
a2V5KCk6CiAgICAgICAgICAgICByZXR1cm4gY29uZmlnX2RpY3RbVGVzdENvbmZpZ3VyYXRpb24o
J3hwJywgJ3g4NicsICdkZWJ1ZycpXQogCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVy
cm9yLCBxdWVyeV91bmtub3duX2tleSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFRlc3RDb25m
aWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScpIGluIGNvbmZpZ19kaWN0KQotICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAnZGVidWcn
KSBpbiBjb25maWdfZGljdCkKKyAgICAgICAgc2VsZi5hc3NlcnRJbihUZXN0Q29uZmlndXJhdGlv
bigneHAnLCAneDg2JywgJ3JlbGVhc2UnKSwgY29uZmlnX2RpY3QpCisgICAgICAgIHNlbGYuYXNz
ZXJ0Tm90SW4oVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdkZWJ1ZycpLCBjb25maWdf
ZGljdCkKICAgICAgICAgY29uZmlnc19saXN0ID0gW1Rlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4
ODYnLCAncmVsZWFzZScpLCBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ2RlYnVnJyks
IFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAnZGVidWcnKV0KICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oY29uZmlnc19saXN0KSwgMykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChsZW4oc2V0KGNvbmZpZ3NfbGlzdCkpLCAyKQpAQCAtMTAzLDcgKzEwMyw3IEBAIGNsYXNzIFNw
ZWNpZmllclNvcnRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfaW5p
dChzZWxmKToKICAgICAgICAgc29ydGVyID0gU3BlY2lmaWVyU29ydGVyKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzb3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcignY29udHJvbCcpLCBO
b25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzb3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNp
ZmllcignY29udHJvbCcpKQogICAgICAgICBzb3J0ZXIgPSBTcGVjaWZpZXJTb3J0ZXIoc2VsZi5f
YWxsX3Rlc3RfY29uZmlndXJhdGlvbnMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVy
LmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ3hwJyksICd2ZXJzaW9uJykKICAgICAgICAgc29ydGVy
ID0gU3BlY2lmaWVyU29ydGVyKHNlbGYuX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zLCBNT0NLX01B
Q1JPUykKQEAgLTExMSw3ICsxMTEsNyBAQCBjbGFzcyBTcGVjaWZpZXJTb3J0ZXJUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2FkZF9zcGVjaWZpZXIoc2VsZik6CiAgICAg
ICAgIHNvcnRlciA9IFNwZWNpZmllclNvcnRlcigpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ2NvbnRyb2wnKSwgTm9uZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRJc05vbmUoc29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ2NvbnRyb2wn
KSkKICAgICAgICAgc29ydGVyLmFkZF9zcGVjaWZpZXIoJ3ZlcnNpb24nLCAnY29udHJvbCcpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ2Nv
bnRyb2wnKSwgJ3ZlcnNpb24nKQogICAgICAgICBzb3J0ZXIuYWRkX3NwZWNpZmllcigndmVyc2lv
bicsICdvbmUnKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5
CmluZGV4IGVhZTI1NDM3NTRkYjI5OWU3MjQ4MDQ3M2I0YjAwZDM0MzEwY2IzMmMuLjk2NmE0YTY4
ZWZlMTU5YzY1ZWY2MWFkMDgwOTYwNzQwZTc3YWRmNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBh
cyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tI
b3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0
cHV0Q2FwdHVyZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfZmFpbHVyZXNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlc191bml0dGVzdC5weQppbmRleCA3
NGVmOGNiYjQ0NmExNzU0MjQwYWVlNGI4MmI5NTE3M2VlNTcwMjA1Li5lYTlhMmU4MmRjNTZlMTg1
MjAyMWQzMDMxMjBjNzhkNzYwOTg2YWZlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlc191bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlc191
bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2ZhaWx1cmVzIGltcG9ydCAqCiAK
QEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgVGVzdEZhaWx1cmVzVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIGZhaWx1cmVfb2JqID0gY2xzKCkKICAgICAgICAgcyA9IGZhaWx1cmVfb2Jq
LmR1bXBzKCkKICAgICAgICAgbmV3X2ZhaWx1cmVfb2JqID0gVGVzdEZhaWx1cmUubG9hZHMocykK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UobmV3X2ZhaWx1cmVfb2JqLCBjbHMp
KQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobmV3X2ZhaWx1cmVfb2JqLCBjbHMpCiAK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlX29iaiwgbmV3X2ZhaWx1cmVfb2JqKQog
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMv
dGVzdF9yZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0c191bml0dGVzdC5weQppbmRleCA4MGQ4YTQ3NGUyZTVk
NDc1ZjA5NDRmYTQwMjA3NjgwN2VlNTA1MGE5Li5lMWJiMmYyN2EyOTM3OTNhMTUwZTlkYTMwMTNm
NWFjNWViNzY0NGVkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3Jlc3VsdHNfdW5pdHRlc3QucHkKQEAg
LTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1
bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5Lmxh
eW91dF90ZXN0cy5tb2RlbHMudGVzdF9yZXN1bHRzIGltcG9ydCBUZXN0UmVzdWx0CiAKQEAgLTQ0
LDcgKzQ0LDcgQEAgY2xhc3MgVGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3J1bl90aW1lPTEuMSkKICAgICAgICAgcyA9
IHJlc3VsdC5kdW1wcygpCiAgICAgICAgIG5ld19yZXN1bHQgPSBUZXN0UmVzdWx0LmxvYWRzKHMp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKG5ld19yZXN1bHQsIFRlc3RSZXN1
bHQpKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobmV3X3Jlc3VsdCwgVGVzdFJlc3Vs
dCkKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19yZXN1bHQsIHJlc3VsdCkKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3Rf
cnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0c191bml0dGVzdC5weQppbmRleCBkMzM3YzU3YjA1
ZjZlZjU1OTIxZjk0NmMzNTQyZjYyZmRhOTM4OTgwLi5kYTM1NDUyYjFmYzRlODQxYWVmZDU2OTE5
M2Y4NzNmMDE0NTA5ZThkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0c191bml0
dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20g
d2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9leHBlY3RhdGlvbnMKQEAgLTk3LDIyICs5
NywyMiBAQCBjbGFzcyBJbnRlcnByZXRUZXN0RmFpbHVyZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0X2RpY3RbJ2ltYWdlX2RpZmZfcGVyY2Vu
dCddLCAwLjQyKQogCiAgICAgICAgIHRlc3RfZGljdCA9IHRlc3RfcnVuX3Jlc3VsdHMuX2ludGVy
cHJldF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2go
c2VsZi5wb3J0LmFic3BhdGhfZm9yX3Rlc3QoJ2Zvby9yZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnKSld
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2ltYWdlX2RpZmZfcGVyY2VudCcgaW4gdGVzdF9k
aWN0KQorICAgICAgICBzZWxmLmFzc2VydEluKCdpbWFnZV9kaWZmX3BlcmNlbnQnLCB0ZXN0X2Rp
Y3QpCiAKICAgICAgICAgdGVzdF9kaWN0ID0gdGVzdF9ydW5fcmVzdWx0cy5faW50ZXJwcmV0X3Rl
c3RfZmFpbHVyZXMoW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaERpZE5vdE9j
Y3VyKHNlbGYucG9ydC5hYnNwYXRoX2Zvcl90ZXN0KCdmb28vcmVmdGVzdC1leHBlY3RlZC1taXNt
YXRjaC5odG1sJykpXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGVzdF9kaWN0KSwg
MCkKIAogICAgICAgICB0ZXN0X2RpY3QgPSB0ZXN0X3J1bl9yZXN1bHRzLl9pbnRlcnByZXRfdGVz
dF9mYWlsdXJlcyhbdGVzdF9mYWlsdXJlcy5GYWlsdXJlTWlzc2luZ0F1ZGlvKCldKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoJ2lzX21pc3NpbmdfYXVkaW8nIGluIHRlc3RfZGljdCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRJbignaXNfbWlzc2luZ19hdWRpbycsIHRlc3RfZGljdCkKIAogICAgICAg
ICB0ZXN0X2RpY3QgPSB0ZXN0X3J1bl9yZXN1bHRzLl9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhb
dGVzdF9mYWlsdXJlcy5GYWlsdXJlTWlzc2luZ1Jlc3VsdCgpXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKCdpc19taXNzaW5nX3RleHQnIGluIHRlc3RfZGljdCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRJbignaXNfbWlzc2luZ190ZXh0JywgdGVzdF9kaWN0KQogCiAgICAgICAgIHRlc3RfZGljdCA9
IHRlc3RfcnVuX3Jlc3VsdHMuX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVz
LkZhaWx1cmVNaXNzaW5nSW1hZ2UoKV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnaXNfbWlz
c2luZ19pbWFnZScgaW4gdGVzdF9kaWN0KQorICAgICAgICBzZWxmLmFzc2VydEluKCdpc19taXNz
aW5nX2ltYWdlJywgdGVzdF9kaWN0KQogCiAgICAgICAgIHRlc3RfZGljdCA9IHRlc3RfcnVuX3Jl
c3VsdHMuX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVNaXNz
aW5nSW1hZ2VIYXNoKCldKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2lzX21pc3NpbmdfaW1h
Z2UnIGluIHRlc3RfZGljdCkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignaXNfbWlzc2luZ19pbWFn
ZScsIHRlc3RfZGljdCkKIAogCiBjbGFzcyBTdW1tYXJpemVkUmVzdWx0c1Rlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgpAQCAtMTIyLDcgKzEyMiw3IEBAIGNsYXNzIFN1bW1hcml6ZWRSZXN1bHRzVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9ub19zdm5fcmV2aXNpb24oc2Vs
Zik6CiAgICAgICAgIHN1bW1hcnkgPSBzdW1tYXJpemVkX3Jlc3VsdHMoc2VsZi5wb3J0LCBleHBl
Y3RlZD1GYWxzZSwgcGFzc2luZz1GYWxzZSwgZmxha3k9RmFsc2UpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgncmV2aXNpb24nIG5vdCBpbiBzdW1tYXJ5KQorICAgICAgICBzZWxmLmFzc2VydE5v
dEluKCdyZXZpc2lvbicsIHN1bW1hcnkpCiAKICAgICBkZWYgdGVzdF9zdm5fcmV2aXNpb24oc2Vs
Zik6CiAgICAgICAgIHNlbGYucG9ydC5fb3B0aW9ucy5idWlsZGVyX25hbWUgPSAnZHVtbXkgYnVp
bGRlcicKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZV91bml0dGVzdC5weQppbmRleCAwZWM2YmU5NjUxNTRkMWQ3ZjEzY2I4ZDMyZTU2
MDZmNmY0YTZlYzI5Li43Njg1Njk1NDUzMWMzM2NjNWM2NjI4M2M0MjY2ZDg1ZjIzMjk3YTI5IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2Vf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9iYXNlX3VuaXR0ZXN0LnB5CkBAIC0zMCw3ICszMCw3IEBAIGltcG9ydCBsb2dnaW5nCiBpbXBv
cnQgb3B0cGFyc2UKIGltcG9ydCBzeXMKIGltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IHVuaXR0ZXN0
CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgZXhlY3V0aXZlX21vY2sKQEAgLTU3LDcgKzU3LDcgQEAg
Y2xhc3MgUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZGVmYXVs
dF9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWxzKHBvcnQuZGVmYXVsdF9jaGlsZF9wcm9jZXNz
ZXMoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocG9ydC5kZWZhdWx0X2No
aWxkX3Byb2Nlc3NlcygpKQogCiAgICAgZGVmIHRlc3RfZm9ybWF0X3dkaWZmX291dHB1dF9hc19o
dG1sKHNlbGYpOgogICAgICAgICBvdXRwdXQgPSAiT1VUUFVUICVzICVzICVzIiAlIChQb3J0Ll9X
RElGRl9ERUwsIFBvcnQuX1dESUZGX0FERCwgUG9ydC5fV0RJRkZfRU5EKQpAQCAtMTgwLDExICsx
ODAsMTEgQEAgY2xhc3MgUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgICMg
QW5kIG1ha2Ugc3VyZSB3ZSBhY3R1YWxseSBnZXQgZGlmZiBvdXRwdXQuCiAgICAgICAgIGRpZmYg
PSBwb3J0LmRpZmZfdGV4dCgnZm9vJywgJ2JhcicsICdleHAudHh0JywgJ2FjdC50eHQnKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUoJ2ZvbycgaW4gZGlmZikKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKCdiYXInIGluIGRpZmYpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnZXhwLnR4dCcgaW4g
ZGlmZikKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdhY3QudHh0JyBpbiBkaWZmKQotICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKCdub3N1Y2h0aGluZycgaW4gZGlmZikKKyAgICAgICAgc2VsZi5h
c3NlcnRJbignZm9vJywgZGlmZikKKyAgICAgICAgc2VsZi5hc3NlcnRJbignYmFyJywgZGlmZikK
KyAgICAgICAgc2VsZi5hc3NlcnRJbignZXhwLnR4dCcsIGRpZmYpCisgICAgICAgIHNlbGYuYXNz
ZXJ0SW4oJ2FjdC50eHQnLCBkaWZmKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdub3N1Y2h0
aGluZycsIGRpZmYpCiAKICAgICBkZWYgdGVzdF9zZXR1cF90ZXN0X3J1bihzZWxmKToKICAgICAg
ICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKQEAgLTE5Niw4ICsxOTYsOCBAQCBjbGFzcyBQb3J0
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQuaG9zdC5maWxlc3lzdGVtLndy
aXRlX3RleHRfZmlsZShwb3J0LmxheW91dF90ZXN0c19kaXIoKSArICcvY2FudmFzL3Rlc3QnLCAn
JykKICAgICAgICAgcG9ydC5ob3N0LmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHBvcnQubGF5
b3V0X3Rlc3RzX2RpcigpICsgJy9jc3MyLjEvdGVzdCcsICcnKQogICAgICAgICBkaXJzID0gcG9y
dC50ZXN0X2RpcnMoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2NhbnZhcycgaW4gZGlycykK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdjc3MyLjEnIGluIGRpcnMpCisgICAgICAgIHNlbGYu
YXNzZXJ0SW4oJ2NhbnZhcycsIGRpcnMpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2NzczIuMScs
IGRpcnMpCiAKICAgICBkZWYgdGVzdF9za2lwcGVkX3BlcmZfdGVzdHMoc2VsZik6CiAgICAgICAg
IHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCkBAIC0yMjMsNyArMjIzLDcgQEAgY2xhc3MgUG9ydFRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZ2V0X29wdGlvbl9fdW5zZXQo
c2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5nZXRfb3B0aW9uKCdmb28nKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRJc05vbmUocG9ydC5nZXRfb3B0aW9uKCdmb28nKSkKIAogICAgIGRlZiB0ZXN0X2dldF9vcHRp
b25fX2RlZmF1bHQoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCkBAIC0z
MjAsNyArMzIwLDcgQEAgY2xhc3MgUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRl
ZiB0ZXN0X2ZpbmRfd2l0aF9za2lwcGVkX2RpcmVjdG9yaWVzKHNlbGYpOgogICAgICAgICBwb3J0
ID0gc2VsZi5tYWtlX3BvcnQod2l0aF90ZXN0cz1UcnVlKQogICAgICAgICB0ZXN0cyA9IHBvcnQu
dGVzdHMoWyd1c2Vyc2NyaXB0cyddKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3VzZXJzY3Jp
cHRzL3Jlc291cmNlcy9pZnJhbWUuaHRtbCcgbm90IGluIHRlc3RzKQorICAgICAgICBzZWxmLmFz
c2VydE5vdEluKCd1c2Vyc2NyaXB0cy9yZXNvdXJjZXMvaWZyYW1lLmh0bWwnLCB0ZXN0cykKIAog
ICAgIGRlZiB0ZXN0X2ZpbmRfd2l0aF9za2lwcGVkX2RpcmVjdG9yaWVzXzIoc2VsZik6CiAgICAg
ICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCh3aXRoX3Rlc3RzPVRydWUpCkBAIC00MzIsMjAgKzQz
MiwyMCBAQCBjbGFzcyBQb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3Rf
dGVzdHMoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCh3aXRoX3Rlc3RzPVRy
dWUpCiAgICAgICAgIHRlc3RzID0gcG9ydC50ZXN0cyhbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKCdwYXNzZXMvdGV4dC5odG1sJyBpbiB0ZXN0cykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KCd2aXJ0dWFsL3Bhc3Nlcy90ZXh0Lmh0bWwnIGluIHRlc3RzKQorICAgICAgICBzZWxmLmFzc2Vy
dEluKCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3Zp
cnR1YWwvcGFzc2VzL3RleHQuaHRtbCcsIHRlc3RzKQogCiAgICAgICAgIHRlc3RzID0gcG9ydC50
ZXN0cyhbJ3Bhc3NlcyddKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3Bhc3Nlcy90ZXh0Lmh0
bWwnIGluIHRlc3RzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3Bhc3Nlcy9wYXNzZXMvdGVz
dC12aXJ0dWFsLXBhc3Nlcy5odG1sJyBpbiB0ZXN0cykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZSgndmlydHVhbC9wYXNzZXMvdGV4dC5odG1sJyBpbiB0ZXN0cykKKyAgICAgICAgc2VsZi5hc3Nl
cnRJbigncGFzc2VzL3RleHQuaHRtbCcsIHRlc3RzKQorICAgICAgICBzZWxmLmFzc2VydEluKCdw
YXNzZXMvcGFzc2VzL3Rlc3QtdmlydHVhbC1wYXNzZXMuaHRtbCcsIHRlc3RzKQorICAgICAgICBz
ZWxmLmFzc2VydE5vdEluKCd2aXJ0dWFsL3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0cykKIAogICAg
ICAgICB0ZXN0cyA9IHBvcnQudGVzdHMoWyd2aXJ0dWFsL3Bhc3NlcyddKQotICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKCdwYXNzZXMvdGV4dC5odG1sJyBpbiB0ZXN0cykKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKCd2aXJ0dWFsL3Bhc3Nlcy90ZXN0LXZpcnR1YWwtcGFzc2VzLmh0bWwnIGluIHRl
c3RzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3ZpcnR1YWwvcGFzc2VzL3Bhc3Nlcy90ZXN0
LXZpcnR1YWwtcGFzc2VzLmh0bWwnIGluIHRlc3RzKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KCd2aXJ0dWFsL3Bhc3Nlcy90ZXN0LXZpcnR1YWwtdmlydHVhbC9wYXNzZXMuaHRtbCcgaW4gdGVz
dHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoJ3ZpcnR1YWwvcGFzc2VzL3ZpcnR1YWwvcGFz
c2VzL3Rlc3QtdmlydHVhbC1wYXNzZXMuaHRtbCcgaW4gdGVzdHMpCisgICAgICAgIHNlbGYuYXNz
ZXJ0Tm90SW4oJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0cykKKyAgICAgICAgc2VsZi5hc3NlcnRJ
bigndmlydHVhbC9wYXNzZXMvdGVzdC12aXJ0dWFsLXBhc3Nlcy5odG1sJywgdGVzdHMpCisgICAg
ICAgIHNlbGYuYXNzZXJ0SW4oJ3ZpcnR1YWwvcGFzc2VzL3Bhc3Nlcy90ZXN0LXZpcnR1YWwtcGFz
c2VzLmh0bWwnLCB0ZXN0cykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbigndmlydHVhbC9wYXNz
ZXMvdGVzdC12aXJ0dWFsLXZpcnR1YWwvcGFzc2VzLmh0bWwnLCB0ZXN0cykKKyAgICAgICAgc2Vs
Zi5hc3NlcnROb3RJbigndmlydHVhbC9wYXNzZXMvdmlydHVhbC9wYXNzZXMvdGVzdC12aXJ0dWFs
LXBhc3Nlcy5odG1sJywgdGVzdHMpCiAKICAgICBkZWYgdGVzdF9idWlsZF9wYXRoKHNlbGYpOgog
ICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1vcHRwYXJzZS5WYWx1ZXMoeydi
dWlsZF9kaXJlY3RvcnknOiAnL215LWJ1aWxkLWRpcmVjdG9yeS8nfSkpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2J1aWxkZXJzX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9idWlsZGVyc191
bml0dGVzdC5weQppbmRleCA1OTk3ZjU0Y2VjZTAyNjhjYjEwNDdlZjE3MmY3NzZjMzk5YjkyODVi
Li43NzU1MWI5ODNiMmNhNGFlYWNlZDIwZDE4N2VkNjQ3ODRkYWU0ODIzIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2J1aWxkZXJzX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYnVpbGRl
cnNfdW5pdHRlc3QucHkKQEAgLTI3LDcgKzI3LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0
IGJ1aWxkZXJzCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QK
IAogCiBjbGFzcyBCdWlsZGVyc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lk
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV9hbmRyb2lkX3VuaXR0ZXN0LnB5CmluZGV4IDJmZWE2NTgwYTVkOGQ2NGUyZmM3MGYx
ZWQxY2YyZjhlZjRjNDgzMTMuLmYzNGJiY2QwMDM5NTczZWFhNjI1YzFlNjQxZGVhZThhMDVjNjYw
YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fYW5kcm9pZF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWRfdW5pdHRlc3QucHkKQEAgLTI5LDcg
KzI5LDcgQEAKIGltcG9ydCBvcHRwYXJzZQogaW1wb3J0IFN0cmluZ0lPCiBpbXBvcnQgdGltZQot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiBpbXBvcnQgc3lz
CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgZXhlY3V0aXZlX21vY2sKQEAg
LTIzOSwxNSArMjM5LDE1IEBAIGNsYXNzIENocm9taXVtQW5kcm9pZERyaXZlclRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZHJ0X2NtZF9saW5lKHNlbGYpOgogICAgICAg
ICBjbWRfbGluZSA9IHNlbGYuZHJpdmVyLl9kcnRfY21kX2xpbmUoVHJ1ZSwgWyctLWEnXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKCctLWEnIGluIGNtZF9saW5lKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUoJy0tY3JlYXRlLXN0ZGluLWZpZm8nIGluIGNtZF9saW5lKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUoJy0tc2VwYXJhdGUtc3RkZXJyLWZpZm8nIGluIGNtZF9saW5lKQorICAgICAg
ICBzZWxmLmFzc2VydEluKCctLWEnLCBjbWRfbGluZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbign
LS1jcmVhdGUtc3RkaW4tZmlmbycsIGNtZF9saW5lKQorICAgICAgICBzZWxmLmFzc2VydEluKCct
LXNlcGFyYXRlLXN0ZGVyci1maWZvJywgY21kX2xpbmUpCiAKICAgICBkZWYgdGVzdF9yZWFkX3By
b21wdChzZWxmKToKICAgICAgICAgc2VsZi5kcml2ZXIuX3NlcnZlcl9wcm9jZXNzID0gZHJpdmVy
X3VuaXR0ZXN0Lk1vY2tTZXJ2ZXJQcm9jZXNzKGxpbmVzPVsncm9vdEBhbmRyb2lkOi8gIyAnXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRyaXZlci5fcmVhZF9wcm9tcHQodGltZS50
aW1lKCkgKyAxKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2VsZi5kcml2ZXIu
X3JlYWRfcHJvbXB0KHRpbWUudGltZSgpICsgMSkpCiAgICAgICAgIHNlbGYuZHJpdmVyLl9zZXJ2
ZXJfcHJvY2VzcyA9IGRyaXZlcl91bml0dGVzdC5Nb2NrU2VydmVyUHJvY2VzcyhsaW5lcz1bJyQg
J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kcml2ZXIuX3JlYWRfcHJvbXB0KHRp
bWUudGltZSgpICsgMSksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYuZHJp
dmVyLl9yZWFkX3Byb21wdCh0aW1lLnRpbWUoKSArIDEpKQogCiAgICAgZGVmIHRlc3RfY29tbWFu
ZF9mcm9tX2RyaXZlcl9pbnB1dChzZWxmKToKICAgICAgICAgZHJpdmVyX2lucHV0ID0gZHJpdmVy
LkRyaXZlcklucHV0KCdmb28vYmFyL3Rlc3QuaHRtbCcsIDEwLCAnY2hlY2tzdW0nLCBUcnVlKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9saW51eF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fbGludXhfdW5pdHRlc3QucHkKaW5kZXggZWRiMWU2Mjk4OGQ1ZWNk
OTUzODIwM2UwNDMzNzVmZmMxNTRjOGMyNC4uMzA4ZDAyZjkxZTg4OGI4YTcxZjc5ZTQ5YzM5NGYx
YTRiYzZmZmExYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9saW51eF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5CkBAIC0y
Niw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5p
dHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtIGltcG9ydCBleGVjdXRpdmVfbW9jawogZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLnN5c3RlbWhvc3RfbW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9tYWNfdW5pdHRlc3QucHkKaW5kZXggYWZmMzc0MWQyZmIxMjk2Yzc1MmQ1YTI2MTRmMjhjMTMz
MWNmMDA4MS4uYmYyZmY4ZjhjOWZmMDcxMWM2YWVhMGZkYmI1Yjg2MmY4MDFiMDkwOCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9t
YWNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0
MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBj
aHJvbWl1bV9tYWMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IGNocm9t
aXVtX3BvcnRfdGVzdGNhc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fcG9ydF90ZXN0Y2FzZS5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fcG9ydF90ZXN0Y2FzZS5weQppbmRl
eCBkOWUzOTdlNDkzZTAxOWM5MzYyZTcxNTU2MzgwODc0ZWQ1ODdmZTdiLi40ODE2ZjUzZWMwODdj
ZGVmOGQzODdlZDU4NjBjNDFiOWJmNGMyMTYyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3BvcnRfdGVzdGNhc2UucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9wb3J0X3Rl
c3RjYXNlLnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBsb2d0ZXN0aW5nCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUyCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV91bml0dGVzdC5weQppbmRleCA0MTQ5ODFmODJmODU5OTM0ZWI5OGI2NTRhYmRkY2Zj
NzM4YjVjMTkwLi5jNmM1MGRmYzE5MzYwYTMyOTIzMTJjNzgzZTYzOTJmZTNiNjE0Zjg5IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fdW5pdHRlc3QucHkKQEAgLTI4LDcgKzI4LDYgQEAKIAogaW1wb3J0IFN0cmlu
Z0lPCiBpbXBvcnQgdGltZQotaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbSBpbXBvcnQgbG9ndGVzdGluZwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4
ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlMgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91
bml0dGVzdC5weQppbmRleCBiOGY1OTI5YTZkOTYzODJiNjUzN2NlNzQ5NzcwYTNjOTQwOWZlZmY5
Li4zY2NmOTQwNDVlODdmYWM0MjIwMDAwYzBjMTA5MTEyODBiYmYwY2IxIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX3dpbl91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiBpbXBvcnQgb3MKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVz
dAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IG91dHB1dGNhcHR1cmUKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBvcnQgTW9ja0V4ZWN1
dGl2ZQpAQCAtNzQsNyArNzQsNyBAQCBjbGFzcyBDaHJvbWl1bVdpblRlc3QoY2hyb21pdW1fcG9y
dF90ZXN0Y2FzZS5DaHJvbWl1bVBvcnRUZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF92ZXJzaW9u
cyhzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHBvcnQubmFtZSgpIGluICgnY2hyb21pdW0td2luLXhwJywgJ2Nocm9taXVtLXdp
bi13aW43JykpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4ocG9ydC5uYW1lKCksICgnY2hyb21pdW0t
d2luLXhwJywgJ2Nocm9taXVtLXdpbi13aW43JykpCiAKICAgICAgICAgc2VsZi5hc3NlcnRfbmFt
ZShOb25lLCAneHAnLCAnY2hyb21pdW0td2luLXhwJykKICAgICAgICAgc2VsZi5hc3NlcnRfbmFt
ZSgnY2hyb21pdW0td2luJywgJ3hwJywgJ2Nocm9taXVtLXdpbi14cCcpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2NvbmZpZ19zdGFuZGFsb25l
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jb25maWdfc3Rh
bmRhbG9uZS5weQppbmRleCA1YjA0ODMxNDUyMGM4OTk0NTRjZmRlMTZlNmM5MzMyZTJmZTI1OTNm
Li4yNzRhMDdiMzM3MWQyNDg1MjNkZTRmYjlkZWNjMDYxN2E0ZGFmZTdmIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2NvbmZpZ19zdGFuZGFsb25l
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY29uZmln
X3N0YW5kYWxvbmUucHkKQEAgLTMzLDcgKzMzLDYgQEAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWc/aWQ9NDkzNjAgZm9yIHRoZSBtb3RpdmF0aW9uLiBXZSBjYW4gcmVtb3ZlCiB0aGlz
IHRlc3Qgd2hlbiB3ZSByZW1vdmUgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uIGNhY2hlIGluIGNv
bmZpZy5weS4iIiIKIAogaW1wb3J0IG9zCi1pbXBvcnQgdW5pdHRlc3QKIGltcG9ydCBzeXMKIAog
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nv
bmZpZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY29uZmlnX3VuaXR0ZXN0LnB5CmluZGV4IDM0YmNjNjhhODcxYWQ3YThiNjA1MDY3ZTI4MDNm
NTNjY2Q0ZTUxY2IuLjI3YzgzZWVkYzc1MWViOTYyMmI5MjBmNzM4NzAxYjUzMjE4ZDcwMDcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY29uZmln
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY29uZmlnX3VuaXR0ZXN0LnB5CkBAIC0yOCw3ICsyOCw3IEBACiAKIGltcG9ydCBvcwogaW1w
b3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwg
U2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBp
bXBvcnQgTW9ja0V4ZWN1dGl2ZTIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXJfdW5pdHRlc3QucHkKaW5kZXggZjYwZGMzZDQx
MjU2YmViOTM3NWE4YzA0ZmVlNDI5NTU1MDMzN2MyNC4uMzIxNzNhODgxN2ZmYjJkNjY1NWI3ZTg2
MjJhZjI4ZjViNzQxMzEzMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9kcml2ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXJfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcg
QEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1w
b3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
c3lzdGVtaG9zdF9tb2NrIGltcG9ydCBNb2NrU3lzdGVtSG9zdAogCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2VmbF91bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZWZsX3VuaXR0ZXN0LnB5Cmlu
ZGV4IDk0YmU0OGJiYTVhNjY3NmEzYTcyMGM1NTQzMjM2YzdjNTEyMzJiNDMuLjUwM2FmZGEyOTNk
MjQ5NDhiYzc5ZGI0YTlmMDc1N2JiNDgwYWZlNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZWZsX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZWZsX3VuaXR0ZXN0LnB5CkBAIC0yNCw3
ICsyNCw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRl
c3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5X3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0
b3J5X3VuaXR0ZXN0LnB5CmluZGV4IGE4NzA0ZjlhZTFhZjgzZjY4ZTE1YzM4MTJjNDliMDI1NGJj
OWRhMzkuLjM2M2I3Yjk5NTFhZTZmYTg5YjQ3YmFhMjBhY2QwZjMyYmM1Nzk3ZTUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeV91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Zh
Y3RvcnlfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVz
dAogCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdF9tb2NrIGltcG9ydCBNb2NrU3lzdGVt
SG9zdApAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBGYWN0b3J5VGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgZGVmIGFzc2VydF9wb3J0KHNlbGYsIHBvcnRfbmFtZT1Ob25lLCBvc19uYW1lPU5v
bmUsIG9zX3ZlcnNpb249Tm9uZSwgb3B0aW9ucz1Ob25lLCBjbHM9Tm9uZSk6CiAgICAgICAgIGhv
c3QgPSBNb2NrU3lzdGVtSG9zdChvc19uYW1lPW9zX25hbWUsIG9zX3ZlcnNpb249b3NfdmVyc2lv
bikKICAgICAgICAgcG9ydCA9IGZhY3RvcnkuUG9ydEZhY3RvcnkoaG9zdCkuZ2V0KHBvcnRfbmFt
ZSwgb3B0aW9ucz1vcHRpb25zKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShw
b3J0LCBjbHMpKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocG9ydCwgY2xzKQogCiAg
ICAgZGVmIHRlc3RfbWFjKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9wb3J0KHBvcnRfbmFt
ZT0nbWFjLWxpb24nLCBjbHM9bWFjLk1hY1BvcnQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0a191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrX3VuaXR0ZXN0LnB5CmluZGV4IGRiYjE4
NTI4ZmQ1ZjFmYmMyOWI5MWQ1M2M4MjcyMThmYTU2MzU1ZTEuLjgwZDMxMmFmNWY3NjZkOGIxNGE3
ZDljYTM3NjBiM2NhZWVjZTI0YTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvZ3RrX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBA
CiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9y
dCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIGltcG9ydCBzeXMKIGltcG9ydCBvcwogCkBAIC02Nywx
MiArNjcsNiBAQCBjbGFzcyBHdGtQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1Nb2NrT3B0
aW9ucyhjb25maWd1cmF0aW9uPSdSZWxlYXNlJykpLmRlZmF1bHRfdGltZW91dF9tcygpLCA2MDAw
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09w
dGlvbnMoY29uZmlndXJhdGlvbj0nRGVidWcnKSkuZGVmYXVsdF90aW1lb3V0X21zKCksIDEyMDAw
KQogCi0gICAgZGVmIGFzc2VydExpbmVzRXF1YWwoc2VsZiwgYSwgYik6Ci0gICAgICAgIGlmIGhh
c2F0dHIoc2VsZiwgJ2Fzc2VydE11bHRpTGluZUVxdWFsJyk6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydE11bHRpTGluZUVxdWFsKGEsIGIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGEuc3BsaXRsaW5lcygpLCBiLnNwbGl0bGluZXMoKSkKLQogICAgIGRlZiB0
ZXN0X2dldF9jcmFzaF9sb2coc2VsZik6CiAgICAgICAgIGNvcmVfZGlyZWN0b3J5ID0gb3MuZW52
aXJvbi5nZXQoJ1dFQktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWScsICcvcGF0aC90by9jb3JlZHVt
cHMnKQogICAgICAgICBjb3JlX3BhdHRlcm4gPSBvcy5wYXRoLmpvaW4oY29yZV9kaXJlY3Rvcnks
ICJjb3JlLXBpZF8lcC1fLXByb2Nlc3NfJWUiKQpAQCAtOTUsOCArODksOCBAQCBTVERFUlI6IDxl
bXB0eT4iIiIgJSBsb2NhbHMoKQogICAgICAgICBwb3J0Ll9nZXRfZ2RiX291dHB1dCA9IG1vY2tf
ZW1wdHlfY3Jhc2hfbG9nCiAgICAgICAgIHN0ZGVyciwgbG9nID0gcG9ydC5fZ2V0X2NyYXNoX2xv
ZygiRHVtcFJlbmRlclRyZWUiLCAyODUyOSwgIiIsICIiLCBuZXdlcl90aGFuPU5vbmUpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RkZXJyLCAiIikKLSAgICAgICAgc2VsZi5hc3NlcnRMaW5l
c0VxdWFsKGxvZywgbW9ja19lbXB0eV9jcmFzaF9sb2cpCisgICAgICAgIHNlbGYuYXNzZXJ0TXVs
dGlMaW5lRXF1YWwobG9nLCBtb2NrX2VtcHR5X2NyYXNoX2xvZykKIAogICAgICAgICBzdGRlcnIs
IGxvZyA9IHBvcnQuX2dldF9jcmFzaF9sb2coIkR1bXBSZW5kZXJUcmVlIiwgMjg1MjksICIiLCAi
IiwgbmV3ZXJfdGhhbj0wLjApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RkZXJyLCAiIikK
LSAgICAgICAgc2VsZi5hc3NlcnRMaW5lc0VxdWFsKGxvZywgbW9ja19lbXB0eV9jcmFzaF9sb2cp
CisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwobG9nLCBtb2NrX2VtcHR5X2NyYXNo
X2xvZykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvaHR0cF9sb2NrX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9odHRwX2xvY2tfdW5pdHRlc3QucHkKaW5kZXggOTRjZTVmOTk2YzE5NWVlZDNm
MzFkYjdkNGM5NmE2ZDk1OTZkOTlmOC4uMjVhZjEyZmFiMWVmMzVlNmM4MDZhZGMyMWJiOGJlY2U3
MWJlODk5YyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9odHRwX2xvY2tfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9odHRwX2xvY2tfdW5pdHRlc3QucHkKQEAgLTI1LDcgKzI1LDcgQEAK
IAogZnJvbSBodHRwX2xvY2sgaW1wb3J0IEh0dHBMb2NrCiBpbXBvcnQgb3MgICMgVXNlZCBmb3Ig
b3MuZ2V0cGlkKCkKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVz
dAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBN
b2NrRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2Nr
IGltcG9ydCBNb2NrRXhlY3V0aXZlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2ltYWdlX2RpZmZfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ltYWdlX2RpZmZfdW5pdHRlc3QucHkKaW5kZXgg
MGU1ZjBhMGZmZjBiMWJjMzA4MDU5MjEwODNjZDZjODQ1OGRiNTFlOS4uYjViNDI3YjcyY2EwMzI0
YWM0ZmQzMzM0OTBhN2Q1Y2U4YjZjZDU1MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9pbWFnZV9kaWZmX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaW1hZ2VfZGlmZl91bml0dGVzdC5w
eQpAQCAtMjgsNyArMjgsNyBAQAogCiAiIiJVbml0IHRlc3RpbmcgYmFzZSBjbGFzcyBmb3IgUG9y
dCBpbXBsZW1lbnRhdGlvbnMuIiIiCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0
MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LnNlcnZlcl9w
cm9jZXNzX21vY2sgaW1wb3J0IE1vY2tTZXJ2ZXJQcm9jZXNzCiBmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5wb3J0LmltYWdlX2RpZmYgaW1wb3J0IEltYWdlRGlmZmVyCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2xlYWtkZXRlY3Rvcl91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbGVha2Rl
dGVjdG9yX3VuaXR0ZXN0LnB5CmluZGV4IDA5ZDM3ZDcxMWE0YjdiMmUzY2M2MmMxZjA1ZjIyMjdh
NTYwM2M0MDIuLmYyZGFlYzkzN2U5YjBhYzg5MzViZDliYjMxNjRhY2ViZDI4YWMyYWYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbGVha2RldGVj
dG9yX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvbGVha2RldGVjdG9yX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVz
dDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5sZWFrZGV0
ZWN0b3IgaW1wb3J0IExlYWtEZXRlY3RvcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZp
bGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKaW5kZXgg
Nzg4NGYyNGVjMWRjMzU0MjU2ZmExMDZiMTk3MTYzMjIzNGIwNjRhMi4uMzRlZmU0MDUxZjAxN2Zj
M2EzNThmZTYzZTU0MjM1MWJlZDBhY2RlYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKQEAgLTg3LDkgKzg3
LDkgQEAgamF2YS8KICAgICAgICAgcG9ydC5fZmlsZXN5c3RlbSA9IE1vY2tGaWxlU3lzdGVtKGRp
cnM9cGxhdGZvcm1fZGlyX3BhdGhzKQogCiAgICAgICAgIGRpcnNfdG9fc2tpcCA9IHBvcnQuX3Rl
c3RzX2Zvcl9vdGhlcl9wbGF0Zm9ybXMoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4JyBpbiBkaXJzX3RvX3NraXApCi0gICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoJ3BsYXRmb3JtL21hYycgaW4gZGlyc190b19za2lwKQotICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKCdwbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQnIGluIGRpcnNfdG9fc2tpcCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRJbigncGxhdGZvcm0vY2hyb21pdW0tbGludXgnLCBkaXJzX3RvX3NraXAp
CisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ3BsYXRmb3JtL21hYycsIGRpcnNfdG9fc2tpcCkK
KyAgICAgICAgc2VsZi5hc3NlcnROb3RJbigncGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkJywgZGly
c190b19za2lwKQogCiAgICAgZGVmIHRlc3RfdmVyc2lvbihzZWxmKToKICAgICAgICAgcG9ydCA9
IHNlbGYubWFrZV9wb3J0KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0X3VuaXR0ZXN0LnB5CmluZGV4IGI0ODU1NzRi
ZjM4NzI0MDU4NDczN2RkY2Y2ODA1NDE2ZWVhZjNkNGUuLmJkMjg1ZWZjNzY4MDQxNGY4M2UyNzY0
YzE5YWM0ZjBiM2I3YzBhMjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydF91bml0dGVzdC5weQpAQCAtMjksNyAr
MjksNyBAQAogIiIiVW5pdCB0ZXN0cyBmb3IgTW9ja0RSVC4iIiIKIAogaW1wb3J0IHN5cwotaW1w
b3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0
cHkuY29tbW9uIGltcG9ydCBuZXdzdHJpbmdpbwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LnN5c3RlbWhvc3RfbW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weQpp
bmRleCA5OTU3ZThmMTQzN2NiZjgxYjdkZWRlM2IwZDc3MGFmNzRlMDlkODhlLi41NmY4NjlhN2Ji
NzczMzA4ZTEyNWFlNDY2YTJmMzg4Y2JmZDYzMjRmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CkBAIC0z
NCw3ICszNCw3IEBAIGltcG9ydCBvcwogaW1wb3J0IHNvY2tldAogaW1wb3J0IHN5cwogaW1wb3J0
IHRpbWUKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVj
dXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0
IE1vY2tGaWxlU3lzdGVtCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3F0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9xdF91bml0dGVzdC5weQppbmRleCAzZDNjOGZlYTM3ZDQwM2ZiYjhiNWI0
MTE5NDE5YzIyNzNiMTAyMjA2Li4zOGVkZjBhZjY0ZWQ4M2M2M2E5NjE2NTA3MTE5YjIzNjkyMDJh
OTMxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3F0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvcXRfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0
dGVzdAogaW1wb3J0IG9zCiBmcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvc2VydmVyX3Byb2Nlc3Nf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Nl
cnZlcl9wcm9jZXNzX3VuaXR0ZXN0LnB5CmluZGV4IGNkMWRiMWY5NmE5Mzg0NTBiZTY1OTAwMGY5
NzVkZTJlYzg3NjI2YjMuLjk3Mzc2YWFmZmM5NzQ2MGZiZGRmZGE4YThhZDg3OTdiODlmOTIyODQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvc2Vy
dmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9zZXJ2ZXJfcHJvY2Vzc191bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBA
QAogCiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5p
dHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuZmFj
dG9yeSBpbXBvcnQgUG9ydEZhY3RvcnkKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQg
aW1wb3J0IHNlcnZlcl9wcm9jZXNzCkBAIC0xNDAsMTMgKzE0MCwxMyBAQCBjbGFzcyBUZXN0U2Vy
dmVyUHJvY2Vzcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlcnZlcl9wcm9jZXNzID0g
RmFrZVNlcnZlclByb2Nlc3MocG9ydF9vYmo9cG9ydF9vYmosIG5hbWU9InRlc3QiLCBjbWQ9WyJ0
ZXN0Il0pCiAgICAgICAgIHNlcnZlcl9wcm9jZXNzLndyaXRlKCJzaG91bGQgYnJlYWsiKQogICAg
ICAgICBzZWxmLmFzc2VydFRydWUoc2VydmVyX3Byb2Nlc3MuaGFzX2NyYXNoZWQoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnROb3RFcXVhbHMoc2VydmVyX3Byb2Nlc3MucGlkKCksIE5vbmUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyX3Byb2Nlc3MuX3Byb2MsIE5vbmUpCisgICAgICAg
IHNlbGYuYXNzZXJ0SXNOb3ROb25lKHNlcnZlcl9wcm9jZXNzLnBpZCgpKQorICAgICAgICBzZWxm
LmFzc2VydElzTm9uZShzZXJ2ZXJfcHJvY2Vzcy5fcHJvYykKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZXJ2ZXJfcHJvY2Vzcy5icm9rZW5fcGlwZXMsIFtzZXJ2ZXJfcHJvY2Vzcy5zdGRpbl0p
CiAKICAgICAgICAgcG9ydF9vYmouaG9zdC5wbGF0Zm9ybS5vc19uYW1lID0gJ21hYycKICAgICAg
ICAgc2VydmVyX3Byb2Nlc3MgPSBGYWtlU2VydmVyUHJvY2Vzcyhwb3J0X29iaj1wb3J0X29iaiwg
bmFtZT0idGVzdCIsIGNtZD1bInRlc3QiXSkKICAgICAgICAgc2VydmVyX3Byb2Nlc3Mud3JpdGUo
InNob3VsZCBicmVhayIpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZXJ2ZXJfcHJvY2Vzcy5o
YXNfY3Jhc2hlZCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlcl9wcm9jZXNzLl9w
cm9jLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzZXJ2ZXJfcHJvY2Vzcy5fcHJv
YykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXJfcHJvY2Vzcy5icm9rZW5fcGlwZXMs
IFtzZXJ2ZXJfcHJvY2Vzcy5zdGRpbl0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0LnB5CmluZGV4IDlkZWY3MjQ2YTc4
ZTgxMzczNjAyZTM0ZDYzNDgzMzQ3NDUzMDJiOWMuLjkwMjdjZWJiMTAyNGQzZWRjNzI0MjQ4M2Nl
YmI1MTI4ODFmZDY3MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0LnB5CkBAIC0yNyw3ICsyNyw3IEBACiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKIGltcG9ydCBTdHJpbmdJTwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5p
dHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRp
dmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0
aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUsIE1vY2tFeGVjdXRpdmUyCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXJfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJk
cml2ZXJfdW5pdHRlc3QucHkKaW5kZXggNDcxN2RkZWExZjRmMDk5ZDRkYzdkZTY1MzUwMmIwZGJh
N2M3NzRiNS4uNGM1ZDMzODA0NTg0YzQ2YjNkNGI1NmJkYjNjMjU4MjJkYTg1NzZmOCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVy
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQveHZmYmRyaXZlcl91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCiBpbXBvcnQgbG9nZ2luZwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFz
IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sg
aW1wb3J0IE1vY2tGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0
aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUyCkBAIC0xMzEsNSArMTMxLDUgQEAgY2xhc3Mg
WHZmYkRyaXZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBleHBlY3RlZF9sb2dz
ID0gIk1PQ0sga2lsbF9wcm9jZXNzIHBpZDogMTIzNFxuIgogICAgICAgICBPdXRwdXRDYXB0dXJl
KCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgZHJpdmVyLnN0b3AsIFtdLCBleHBlY3RlZF9sb2dzPWV4
cGVjdGVkX2xvZ3MpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIuX3h2ZmJfcHJv
Y2VzcywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZHJpdmVyLl94dmZiX3Byb2Nl
c3MpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocG9ydC5fZmlsZXN5c3RlbS5leGlzdHMoZHJp
dmVyLl9sb2NrX2ZpbGUpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcmVmdGVzdHMvZXh0cmFjdF9yZWZlcmVuY2VfbGlua191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlZnRlc3RzL2V4dHJhY3RfcmVmZXJl
bmNlX2xpbmtfdW5pdHRlc3QucHkKaW5kZXggMTI2NmEzM2YxNTFjODQ1OWM4MWZlZTY0MWU0OGQ3
NzllODU0NmRjNy4uODViMThlMmIxMGExMzcxYTlkZDIwNTkwYTAxNmMxZTMwM2FhM2NmMSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVmdGVzdHMvZXh0
cmFjdF9yZWZlcmVuY2VfbGlua191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWZ0ZXN0cy9leHRyYWN0X3JlZmVyZW5jZV9saW5rX3VuaXR0ZXN0
LnB5CkBAIC0yMyw3ICsyMyw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1p
bXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMucmVmdGVzdHMgaW1wb3J0IGV4dHJhY3RfcmVmZXJlbmNlX2xpbmsK
IApAQCAtNTUsMTAgKzU1LDEwIEBAIENPTlRFTlQgT0YgVEVTVAogPC9odG1sPgogIiIiCiAgICAg
ICAgIG1hdGNoZXMsIG1pc21hdGNoZXMgPSBleHRyYWN0X3JlZmVyZW5jZV9saW5rLmdldF9yZWZl
cmVuY2VfbGluayhodG1sXzEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWF0Y2hlcywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBbImdyZWVuLWJveC1yZWYueGh0IiwgImJsdWUtYm94LXJl
Zi54aHQiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtaXNtYXRjaGVzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIFsicmVkLWJveC1ub3RyZWYueGh0IiwgInJlZC1ib3gtbm90cmVmLnho
dCJdKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwobWF0Y2hlcywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsiZ3JlZW4tYm94LXJlZi54aHQiLCAiYmx1ZS1ib3gtcmVmLnho
dCJdKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwobWlzbWF0Y2hlcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsicmVkLWJveC1ub3RyZWYueGh0IiwgInJlZC1ib3gtbm90
cmVmLnhodCJdKQogCiAgICAgICAgIGh0bWxfMiA9ICIiCiAgICAgICAgIGVtcHR5X3R1cGxlXzEg
PSBleHRyYWN0X3JlZmVyZW5jZV9saW5rLmdldF9yZWZlcmVuY2VfbGluayhodG1sXzIpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CmluZGV4IGVhYTgwYzliYmY3
OGVmM2U1ZjFiNDJmNzgzZmJlODk5YTYzZGYwMmQuLmQ4NWEwYTRiY2Y4OGQ0NDYwZmM1YjhhNDc2
NmFlZWZjMWY1MWZmZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250
ZXN0LnB5CkBAIC00MCw3ICs0MCw3IEBAIGltcG9ydCBzeXMKIGltcG9ydCB0aHJlYWQKIGltcG9y
dCB0aW1lCiBpbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVz
dDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBvdXRw
dXRjYXB0dXJlLCBwYXRoCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uY3Jhc2hsb2dzX3Vu
aXR0ZXN0IGltcG9ydCBtYWtlX21vY2tfY3Jhc2hfcmVwb3J0X2RhcndpbgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9hcGFjaGVfaHR0cF9z
ZXJ2ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9z
ZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlcl91bml0dGVzdC5weQppbmRleCBmM2NhNmExYTg2Y2Mw
NWE5NGMwMzlmZjcxM2RlNTgxOGFlODNmZjQ2Li41Y2EwMjdmMjNjZGQ5OTdkZmVlNDgzMDM0ZmY4
YTRhYTBlOWM0ZGNlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlcl91
bml0dGVzdC5weQpAQCAtMjgsNyArMjgsNyBAQAogCiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKLWlt
cG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0
dXJlCkBAIC02NCw3ICs2NCw3IEBAIGNsYXNzIFRlc3RMYXlvdXRUZXN0QXBhY2hlSHR0cGQodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VydmVyLnN0b3AoKQogICAgICAgICBmaW5h
bGx5OgogICAgICAgICAgICAgXywgXywgbG9ncyA9IG9jLnJlc3RvcmVfb3V0cHV0KCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKCJTdGFydFNlcnZlcnMgNCIgaW4gbG9ncykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKCJNaW5TcGFyZVNlcnZlcnMgNCIgaW4gbG9ncykKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKCJNYXhTcGFyZVNlcnZlcnMgNCIgaW4gbG9ncykKKyAgICAgICAgc2VsZi5hc3Nl
cnRJbigiU3RhcnRTZXJ2ZXJzIDQiLCBsb2dzKQorICAgICAgICBzZWxmLmFzc2VydEluKCJNaW5T
cGFyZVNlcnZlcnMgNCIsIGxvZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oIk1heFNwYXJlU2Vy
dmVycyA0IiwgbG9ncykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhvc3QuZmlsZXN5c3RlbS5l
eGlzdHMoIi9tb2NrL291dHB1dF9kaXIvaHR0cGQuY29uZiIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl9pbnRlZ3Jh
dGlvbnRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJz
L2h0dHBfc2VydmVyX2ludGVncmF0aW9udGVzdC5weQppbmRleCAzN2ZhYTY0Mjk0YjMzZGU0MTZl
OGMyYmZhZTk0MTIxOGNmYjUxOWNmLi5hYTZlNTlkYzVmYmRiYzhkM2Q0OTA5ZDhlMTY4YmViYzRl
MWRlY2ZjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9z
ZXJ2ZXJzL2h0dHBfc2VydmVyX2ludGVncmF0aW9udGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0dHBfc2VydmVyX2ludGVncmF0aW9udGVz
dC5weQpAQCAtMzYsNyArMzYsNyBAQCBpbXBvcnQgc29ja2V0CiBpbXBvcnQgc3VicHJvY2Vzcwog
aW1wb3J0IHN5cwogaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0
dGVzdDIgYXMgdW5pdHRlc3QKIAogCiBjbGFzcyBCYXNlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJz
L2h0dHBfc2VydmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl91bml0dGVzdC5weQppbmRleCAwMjQ3ODhmNWQ3Mzg3
MTAzMDc2ZThiMmE3MWEwMTUxZTFjN2FkNmM4Li4yNTZkMWM3NWYwOGJhYjRhZTE5MjlmZmJjZjE4
ZjcwNWE2OGI3NmY2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL2h0dHBfc2VydmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXJfdW5pdHRlc3QucHkKQEAg
LTI4LDcgKzI4LDcgQEAKIAogaW1wb3J0IHJlCiBpbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QK
K2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uaG9z
dF9tb2NrIGltcG9ydCBNb2NrSG9zdAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBp
bXBvcnQgdGVzdApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdmlld3MvYnVpbGRib3RfcmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL2J1aWxkYm90X3Jlc3VsdHNfdW5pdHRlc3QucHkKaW5k
ZXggMDc2ZDVjODk1OGJiYzNhOTU1NTdmYWU4MGFlYjI5MWFkNDlmYTY4YS4uNWNlMTVjMWRjNTY5
MWRmY2M4ZGE4OTg2MDI4YjYxM2FhMzNhZDk5MSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3RfcmVzdWx0c191bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9idWlsZGJvdF9y
ZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0yOCw3ICsyOCw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGlt
cG9ydCBTdHJpbmdJTwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0
ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0
ZXJlZF9zdHJlYW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbV91bml0dGVzdC5weQppbmRleCBlYmE0MzZkZDMzNWM0
NTBiZTUzYzQ0YjhlMDVkNGZjZTM3ZmI2ZmQ0Li4wZWFlYzJkYjlhZGM4OGFiNTUwMTJiN2E0NDZi
OTU4YWM2ODJkNmJlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbV91bml0dGVzdC5weQpA
QCAtMjksNyArMjksNyBAQAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCByZQogaW1wb3J0IFN0cmlu
Z0lPCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMudmlld3MubWV0ZXJlZF9zdHJlYW0gaW1wb3J0IE1ldGVy
ZWRTdHJlYW0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQppbmRleCAzNDQ4ZjVmYzlmYjIx
ZDUyM2ZlNTZjNzVhMGYyNTg2NGM1OTY5ZGQwLi43MWU3ODg4MTcwYTgyNTA0YTNlOGVmYTNjODgw
NDJjYmE4OGE5YmFkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQpAQCAtMzIsNyArMzIs
NyBAQCBpbXBvcnQgb3B0cGFyc2UKIGltcG9ydCBTdHJpbmdJTwogaW1wb3J0IHN5cwogaW1wb3J0
IHRpbWUKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0CiAKQEAgLTU0LDcg
KzU0LDcgQEAgZGVmIGdldF9vcHRpb25zKGFyZ3MpOgogY2xhc3MgVGVzdFV0aWxpdHlGdW5jdGlv
bnModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3ByaW50X29wdGlvbnMoc2VsZik6
CiAgICAgICAgIG9wdGlvbnMsIGFyZ3MgPSBnZXRfb3B0aW9ucyhbXSkKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG9wdGlvbnMgaXMgbm90IE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3RO
b25lKG9wdGlvbnMpCiAKIAogY2xhc3MgIFRlc3RwcmludGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToK
QEAgLTEwOCwxOSArMTA4LDE5IEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIHByaW50ZXIuX29wdGlvbnMudGltZV9vdXRfbXMgPSA2MDAwCiAgICAgICAg
IHByaW50ZXIuX29wdGlvbnMuc2xvd190aW1lX291dF9tcyA9IDEyMDAwCiAgICAgICAgIHByaW50
ZXIucHJpbnRfY29uZmlnKCcvdG1wJykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCJVc2luZyBw
b3J0ICd0ZXN0LW1hYy1sZW9wYXJkJyIgaW4gZXJyLmdldHZhbHVlKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgnVGVzdCBjb25maWd1cmF0aW9uOiA8bGVvcGFyZCwgeDg2LCByZWxlYXNlPicg
aW4gZXJyLmdldHZhbHVlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnUGxhY2luZyB0ZXN0
IHJlc3VsdHMgaW4gL3RtcCcgaW4gZXJyLmdldHZhbHVlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgnQmFzZWxpbmUgc2VhcmNoIHBhdGg6IHRlc3QtbWFjLWxlb3BhcmQgLT4gdGVzdC1tYWMt
c25vd2xlb3BhcmQgLT4gZ2VuZXJpYycgaW4gZXJyLmdldHZhbHVlKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgnVXNpbmcgUmVsZWFzZSBidWlsZCcgaW4gZXJyLmdldHZhbHVlKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnUGl4ZWwgdGVzdHMgZW5hYmxlZCcgaW4gZXJyLmdldHZhbHVl
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnQ29tbWFuZCBsaW5lOicgaW4gZXJyLmdldHZh
bHVlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnUmVndWxhciB0aW1lb3V0OiAnIGluIGVy
ci5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEluKCJVc2luZyBwb3J0ICd0ZXN0LW1h
Yy1sZW9wYXJkJyIsIGVyci5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEluKCdUZXN0
IGNvbmZpZ3VyYXRpb246IDxsZW9wYXJkLCB4ODYsIHJlbGVhc2U+JywgZXJyLmdldHZhbHVlKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ1BsYWNpbmcgdGVzdCByZXN1bHRzIGluIC90bXAnLCBl
cnIuZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignQmFzZWxpbmUgc2VhcmNoIHBh
dGg6IHRlc3QtbWFjLWxlb3BhcmQgLT4gdGVzdC1tYWMtc25vd2xlb3BhcmQgLT4gZ2VuZXJpYycs
IGVyci5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEluKCdVc2luZyBSZWxlYXNlIGJ1
aWxkJywgZXJyLmdldHZhbHVlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ1BpeGVsIHRlc3Rz
IGVuYWJsZWQnLCBlcnIuZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignQ29tbWFu
ZCBsaW5lOicsIGVyci5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEluKCdSZWd1bGFy
IHRpbWVvdXQ6ICcsIGVyci5nZXR2YWx1ZSgpKQogCiAgICAgICAgIHNlbGYucmVzZXQoZXJyKQog
ICAgICAgICBwcmludGVyLl9vcHRpb25zLnF1aWV0ID0gVHJ1ZQogICAgICAgICBwcmludGVyLnBy
aW50X2NvbmZpZygnL3RtcCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoJ0Jhc2VsaW5lIHNl
YXJjaCBwYXRoOiB0ZXN0LW1hYy1sZW9wYXJkIC0+IHRlc3QtbWFjLXNub3dsZW9wYXJkIC0+IGdl
bmVyaWMnIGluIGVyci5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdCYXNl
bGluZSBzZWFyY2ggcGF0aDogdGVzdC1tYWMtbGVvcGFyZCAtPiB0ZXN0LW1hYy1zbm93bGVvcGFy
ZCAtPiBnZW5lcmljJywgZXJyLmdldHZhbHVlKCkpCiAKICAgICBkZWYgdGVzdF9wcmludF9vbmVf
bGluZV9zdW1tYXJ5KHNlbGYpOgogICAgICAgICBwcmludGVyLCBlcnIgPSBzZWxmLmdldF9wcmlu
dGVyKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVz
dHMvcGVyZnRlc3RfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1h
bmNlX3Rlc3RzL3BlcmZ0ZXN0X3VuaXR0ZXN0LnB5CmluZGV4IGJkNTVmNGNmMjkwNDU3NDFjYTky
MDQxMGJlYjY2NGEwNjUxZTFiNjcuLjAxMGQzMjg3ZDdjZGQwMmZhOTkwMzljNjNkY2E3ODM5NDE5
ZGM4MDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVz
dHMvcGVyZnRlc3RfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJm
b3JtYW5jZV90ZXN0cy9wZXJmdGVzdF91bml0dGVzdC5weQpAQCAtMjksNyArMjksNyBAQAogaW1w
b3J0IFN0cmluZ0lPCiBpbXBvcnQganNvbgogaW1wb3J0IG1hdGgKLWltcG9ydCB1bml0dGVzdAor
aW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0
X21vY2sgaW1wb3J0IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0
Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQpAQCAtODksNyArODksNyBAQCBjbGFzcyBUZXN0
UGVyZlRlc3RNZXRyaWModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgcmV0dXJuIGpz
b24ubG9hZHMoanNvbi5kdW1wcyhzdGF0aXN0aWNzKSkKIAogICAgICAgICBzdGF0aXN0aWNzID0g
Y29tcHV0ZV9zdGF0aXN0aWNzKFsxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMjAsIDE5
LCAxOCwgMTcsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTFdKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHNvcnRlZChzdGF0aXN0aWNzLmtleXMoKSksIFsnYXZnJywgJ21heCcsICdtZWRpYW4nLCAn
bWluJywgJ3N0ZGV2J10pCisgICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzdGF0aXN0aWNz
LmtleXMoKSwgWydhdmcnLCAnbWF4JywgJ21lZGlhbicsICdtaW4nLCAnc3RkZXYnXSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0aXN0aWNzWydhdmcnXSwgMTAuNSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdGF0aXN0aWNzWydtaW4nXSwgMSkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzdGF0aXN0aWNzWydtYXgnXSwgMjApCkBAIC0xMTEsNyArMTExLDcgQEAgY2xhc3MgVGVz
dFBlcmZUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcGFyc2VkX3Jlc3VsdHMgPSB0
ZXN0LnBhcnNlX291dHB1dChvdXRwdXQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHBh
cnNlZF9yZXN1bHRzKSwgMSkKICAgICAgICAgc29tZV90ZXN0X3Jlc3VsdHMgPSBwYXJzZWRfcmVz
dWx0c1swXS50b19kaWN0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQoc29tZV90
ZXN0X3Jlc3VsdHMua2V5cygpKSwgWydhdmcnLCAnbWF4JywgJ21lZGlhbicsICdtaW4nLCAnc3Rk
ZXYnLCAndW5pdCcsICd2YWx1ZXMnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHNv
bWVfdGVzdF9yZXN1bHRzLmtleXMoKSwgWydhdmcnLCAnbWF4JywgJ21lZGlhbicsICdtaW4nLCAn
c3RkZXYnLCAndW5pdCcsICd2YWx1ZXMnXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb21l
X3Rlc3RfcmVzdWx0c1sndmFsdWVzJ10sIFsxMDgwLCAxMTIwLCAxMDk1LCAxMTAxLCAxMTA0XSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb21lX3Rlc3RfcmVzdWx0c1snbWluJ10sIDEwODAp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZV90ZXN0X3Jlc3VsdHNbJ21heCddLCAxMTIw
KQpAQCAtMTY0LDcgKzE2NCw3IEBAIG1heCAxMTIwIG1zCiAgICAgICAgIHRyeToKICAgICAgICAg
ICAgIHRlc3QgPSBQZXJmVGVzdChNb2NrUG9ydCgpLCAnc29tZS10ZXN0JywgJy9wYXRoL3NvbWUt
ZGlyL3NvbWUtdGVzdCcpCiAgICAgICAgICAgICB0ZXN0Ll9maWx0ZXJfb3V0cHV0KG91dHB1dCkK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5wYXJzZV9vdXRwdXQob3V0cHV0KSwg
Tm9uZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHRlc3QucGFyc2Vfb3V0cHV0KG91
dHB1dCkpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBhY3R1YWxfc3Rkb3V0LCBhY3R1
YWxfc3RkZXJyLCBhY3R1YWxfbG9ncyA9IG91dHB1dF9jYXB0dXJlLnJlc3RvcmVfb3V0cHV0KCkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfc3Rkb3V0LCAnJykKQEAgLTMwNyw3ICsz
MDcsNyBAQCBjbGFzcyBUZXN0UGFnZUxvYWRpbmdQZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgICAgICBwb3J0ID0gTW9ja1BvcnQoKQogICAgICAgICAgICAgdGVzdCA9IFBhZ2VM
b2FkaW5nUGVyZlRlc3QocG9ydCwgJ3NvbWUtdGVzdCcsICcvcGF0aC9zb21lLWRpci9zb21lLXRl
c3QnKQogICAgICAgICAgICAgZHJpdmVyID0gVGVzdFBhZ2VMb2FkaW5nUGVyZlRlc3QuTW9ja0Ry
aXZlcihbMSwgMiwgMywgNCwgNSwgNiwgNywgJ3NvbWUgZXJyb3InLCA5LCAxMCwgMTEsIDEyLCAx
MywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjBdLCB0ZXN0KQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh0ZXN0Ll9ydW5fd2l0aF9kcml2ZXIoZHJpdmVyLCBOb25lKSwgTm9uZSkKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHRlc3QuX3J1bl93aXRoX2RyaXZlcihkcml2ZXIs
IE5vbmUpKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgYWN0dWFsX3N0ZG91dCwgYWN0
dWFsX3N0ZGVyciwgYWN0dWFsX2xvZ3MgPSBvdXRwdXRfY2FwdHVyZS5yZXN0b3JlX291dHB1dCgp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3N0ZG91dCwgJycpCkBAIC00NjEsNyAr
NDYxLDcgQEAgY2xhc3MgVGVzdFJlcGxheVBlcmZUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgdGVzdCwgcG9ydCA9IHNlbGYuX3NldHVwX3Rlc3QocnVuX3Rlc3QpCiAKICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0LnByZXBhcmUodGltZV9vdXRf
bXM9MTAwKSwgVHJ1ZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0ZXN0LnByZXBhcmUo
dGltZV9vdXRfbXM9MTAwKSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIGFjdHVhbF9z
dGRvdXQsIGFjdHVhbF9zdGRlcnIsIGFjdHVhbF9sb2dzID0gb3V0cHV0X2NhcHR1cmUucmVzdG9y
ZV9vdXRwdXQoKQogCkBAIC00ODUsNyArNDg1LDcgQEAgY2xhc3MgVGVzdFJlcGxheVBlcmZUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgdGVzdC5ydW5fc2luZ2xlID0gcnVuX3Npbmds
ZQogCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5wcmVw
YXJlKHRpbWVfb3V0X21zPTEwMCksIEZhbHNlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZSh0ZXN0LnByZXBhcmUodGltZV9vdXRfbXM9MTAwKSkKICAgICAgICAgZmluYWxseToKICAgICAg
ICAgICAgIGFjdHVhbF9zdGRvdXQsIGFjdHVhbF9zdGRlcnIsIGFjdHVhbF9sb2dzID0gb3V0cHV0
X2NhcHR1cmUucmVzdG9yZV9vdXRwdXQoKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoY2FsbGVk
WzBdKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0
cy9wZXJmdGVzdHNydW5uZXJfaW50ZWdyYXRpb250ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXJfaW50ZWdyYXRpb250ZXN0LnB5
CmluZGV4IDgyMzJhODYwYTAwMmY1NWU5MjVlMmM4YWIxZjkxZDNiYzhiMjQ3YzguLjUzNDEwNGNi
YjY2OTI1ZDVkNDgzM2UwOTE1MGZmNzA1MmYzZmM4YjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX2ludGVncmF0aW9u
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3Bl
cmZ0ZXN0c3J1bm5lcl9pbnRlZ3JhdGlvbnRlc3QucHkKQEAgLTMxLDcgKzMxLDcgQEAKIGltcG9y
dCBTdHJpbmdJTwogaW1wb3J0IGpzb24KIGltcG9ydCByZQotaW1wb3J0IHVuaXR0ZXN0CitpbXBv
cnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9j
ayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0
dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lcl91bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0
ZXN0LnB5CmluZGV4IGJmOGM3MDQ1YWQ5MDYwOGVjMTk3M2FlOTVhMmJhYjg2N2ZiOTEzN2MuLmZj
YzM0YTMxOWEwYTQyOTFmOTgxNzUzNWNmNTBjYjU3NDQ2OTRiYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVy
ZnRlc3RzcnVubmVyX3VuaXR0ZXN0LnB5CkBAIC0zMSw3ICszMSw3IEBACiBpbXBvcnQgU3RyaW5n
SU8KIGltcG9ydCBqc29uCiBpbXBvcnQgcmUKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0
ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0
IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LnRlc3QgaW1wb3J0IFRl
c3RQb3J0CkBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgYWRkX2ZpbGUoJ3Rlc3QyLmh0bWwnKQogICAgICAgICBhZGRfZmlsZSgndGVz
dDMuaHRtbCcpCiAgICAgICAgIHBvcnQuaG9zdC5maWxlc3lzdGVtLmNoZGlyKHJ1bm5lci5fcG9y
dC5wZXJmX3Rlc3RzX2RpcigpWzpydW5uZXIuX3BvcnQucGVyZl90ZXN0c19kaXIoKS5yZmluZChy
dW5uZXIuX2hvc3QuZmlsZXN5c3RlbS5zZXApXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
ZWxmLl9jb2xsZWN0X3Rlc3RzX2FuZF9zb3J0X3Rlc3RfbmFtZShydW5uZXIpLCBbJ3Rlc3QxLmh0
bWwnLCAndGVzdDIuaHRtbCddKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2VsZi5f
Y29sbGVjdF90ZXN0c19hbmRfc29ydF90ZXN0X25hbWUocnVubmVyKSwgWyd0ZXN0MS5odG1sJywg
J3Rlc3QyLmh0bWwnXSkKIAogICAgIGRlZiB0ZXN0X2NvbGxlY3RfdGVzdHNfd2l0aF9za2lwcGVk
X2xpc3Qoc2VsZik6CiAgICAgICAgIHJ1bm5lciwgcG9ydCA9IHNlbGYuY3JlYXRlX3J1bm5lcigp
CkBAIC04Myw3ICs4Myw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgc2VsZi5fYWRkX2ZpbGUocnVubmVyLCAnaW5zcGVjdG9yL3Jlc291cmNlcycsICdyZXNv
dXJjZV9maWxlLmh0bWwnKQogICAgICAgICBzZWxmLl9hZGRfZmlsZShydW5uZXIsICd1bnN1cHBv
cnRlZCcsICd1bnN1cHBvcnRlZF90ZXN0Mi5odG1sJykKICAgICAgICAgcG9ydC5za2lwcGVkX3Bl
cmZfdGVzdHMgPSBsYW1iZGE6IFsnaW5zcGVjdG9yL3Vuc3VwcG9ydGVkX3Rlc3QxLmh0bWwnLCAn
dW5zdXBwb3J0ZWQnXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2NvbGxlY3RfdGVz
dHNfYW5kX3NvcnRfdGVzdF9uYW1lKHJ1bm5lciksIFsnaW5zcGVjdG9yL3Rlc3QxLmh0bWwnLCAn
aW5zcGVjdG9yL3Rlc3QyLmh0bWwnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHNl
bGYuX2NvbGxlY3RfdGVzdHNfYW5kX3NvcnRfdGVzdF9uYW1lKHJ1bm5lciksIFsnaW5zcGVjdG9y
L3Rlc3QxLmh0bWwnLCAnaW5zcGVjdG9yL3Rlc3QyLmh0bWwnXSkKIAogICAgIGRlZiB0ZXN0X2Nv
bGxlY3RfdGVzdHNfd2l0aF9za2lwcGVkX2xpc3RfYW5kX2ZpbGVzKHNlbGYpOgogICAgICAgICBy
dW5uZXIsIHBvcnQgPSBzZWxmLmNyZWF0ZV9ydW5uZXIoYXJncz1bJ1N1aXRlL1Rlc3QxLmh0bWwn
LCAnU3VpdGUvU2tpcHBlZFRlc3QxLmh0bWwnLCAnU2tpcHBlZFN1aXRlL1Rlc3QxLmh0bWwnXSkK
QEAgLTk1LDcgKzk1LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICBzZWxmLl9hZGRfZmlsZShydW5uZXIsICdTdWl0ZScsICdTa2lwcGVkVGVzdDEuaHRtbCcp
CiAgICAgICAgIHNlbGYuX2FkZF9maWxlKHJ1bm5lciwgJ1N1aXRlJywgJ1NraXBwZWRUZXN0Mi5o
dG1sJykKICAgICAgICAgcG9ydC5za2lwcGVkX3BlcmZfdGVzdHMgPSBsYW1iZGE6IFsnU3VpdGUv
U2tpcHBlZFRlc3QxLmh0bWwnLCAnU3VpdGUvU2tpcHBlZFRlc3QxLmh0bWwnLCAnU2tpcHBlZFN1
aXRlJ10KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9jb2xsZWN0X3Rlc3RzX2FuZF9z
b3J0X3Rlc3RfbmFtZShydW5uZXIpLAorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2Vs
Zi5fY29sbGVjdF90ZXN0c19hbmRfc29ydF90ZXN0X25hbWUocnVubmVyKSwKICAgICAgICAgICAg
IFsnU2tpcHBlZFN1aXRlL1Rlc3QxLmh0bWwnLCAnU3VpdGUvU2tpcHBlZFRlc3QxLmh0bWwnLCAn
U3VpdGUvVGVzdDEuaHRtbCddKQogCiAgICAgZGVmIHRlc3RfY29sbGVjdF90ZXN0c193aXRoX2ln
bm9yZWRfc2tpcHBlZF9saXN0KHNlbGYpOgpAQCAtMTA3LDEyICsxMDcsMTIgQEAgY2xhc3MgTWFp
blRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLl9hZGRfZmlsZShydW5uZXIs
ICdpbnNwZWN0b3IvcmVzb3VyY2VzJywgJ3Jlc291cmNlX2ZpbGUuaHRtbCcpCiAgICAgICAgIHNl
bGYuX2FkZF9maWxlKHJ1bm5lciwgJ3Vuc3VwcG9ydGVkJywgJ3Vuc3VwcG9ydGVkX3Rlc3QyLmh0
bWwnKQogICAgICAgICBwb3J0LnNraXBwZWRfcGVyZl90ZXN0cyA9IGxhbWJkYTogWydpbnNwZWN0
b3IvdW5zdXBwb3J0ZWRfdGVzdDEuaHRtbCcsICd1bnN1cHBvcnRlZCddCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2VsZi5fY29sbGVjdF90ZXN0c19hbmRfc29ydF90ZXN0X25hbWUocnVubmVy
KSwgWydpbnNwZWN0b3IvdGVzdDEuaHRtbCcsICdpbnNwZWN0b3IvdGVzdDIuaHRtbCcsICdpbnNw
ZWN0b3IvdW5zdXBwb3J0ZWRfdGVzdDEuaHRtbCcsICd1bnN1cHBvcnRlZC91bnN1cHBvcnRlZF90
ZXN0Mi5odG1sJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzZWxmLl9jb2xsZWN0
X3Rlc3RzX2FuZF9zb3J0X3Rlc3RfbmFtZShydW5uZXIpLCBbJ2luc3BlY3Rvci90ZXN0MS5odG1s
JywgJ2luc3BlY3Rvci90ZXN0Mi5odG1sJywgJ2luc3BlY3Rvci91bnN1cHBvcnRlZF90ZXN0MS5o
dG1sJywgJ3Vuc3VwcG9ydGVkL3Vuc3VwcG9ydGVkX3Rlc3QyLmh0bWwnXSkKIAogICAgIGRlZiB0
ZXN0X2NvbGxlY3RfdGVzdHNfc2hvdWxkX2lnbm9yZV9yZXBsYXlfdGVzdHNfYnlfZGVmYXVsdChz
ZWxmKToKICAgICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVubmVyKCkKICAgICAg
ICAgc2VsZi5fYWRkX2ZpbGUocnVubmVyLCAnUmVwbGF5JywgJ3d3dy53ZWJraXQub3JnLnJlcGxh
eScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnVubmVyLl9jb2xsZWN0X3Rlc3RzKCksIFtd
KQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwocnVubmVyLl9jb2xsZWN0X3Rlc3RzKCks
IFtdKQogCiAgICAgZGVmIHRlc3RfY29sbGVjdF90ZXN0c193aXRoX3JlcGxheV90ZXN0cyhzZWxm
KToKICAgICAgICAgcnVubmVyLCBwb3J0ID0gc2VsZi5jcmVhdGVfcnVubmVyKGFyZ3M9WyctLXJl
cGxheSddKQpAQCAtMTM1LDE1ICsxMzUsMTUgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICAgICAgICAgICctLXNsYXZlLWNvbmZpZy1qc29uLXBhdGg9YS9zb3Vy
Y2UuanNvbicsCiAgICAgICAgICAgICAgICAgJy0tdGVzdC1yZXN1bHRzLXNlcnZlcj1zb21laG9z
dCcsCiAgICAgICAgICAgICAgICAgJy0tZGVidWcnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChvcHRpb25zLmJ1aWxkLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3B0aW9ucy5i
dWlsZCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmJ1aWxkX2RpcmVjdG9yeSwg
J2ZvbGRlcjQyJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLnBsYXRmb3JtLCAn
cGxhdGZvcm00MicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5idWlsZGVyX25h
bWUsICd3ZWJraXQtbWFjLTEnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuYnVp
bGRfbnVtYmVyLCAnNTYnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMudGltZV9v
dXRfbXMsICc0MicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5jb25maWd1cmF0
aW9uLCAnRGVidWcnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuc2hvd19yZXN1
bHRzLCBGYWxzZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLnJlc2V0X3Jlc3Vs
dHMsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucy5zaG93X3Jlc3VsdHMp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcHRpb25zLnJlc2V0X3Jlc3VsdHMpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5vdXRwdXRfanNvbl9wYXRoLCAnYS9vdXRwdXQuanNv
bicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5zbGF2ZV9jb25maWdfanNvbl9w
YXRoLCAnYS9zb3VyY2UuanNvbicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy50
ZXN0X3Jlc3VsdHNfc2VydmVyLCAnc29tZWhvc3QnKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CmluZGV4IDc0NTI0ZDVhMWUzNTVhNWNhY2Y2
ZGQ1ZjE0MDdlNzgwYjliMTQ2NjEuLjlhMTM5YzdjODU2MzQwMWY3YmQ3NDNlODk5ZWNhMDRlMTdm
Nzc1NDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5p
dHRlc3QucHkKQEAgLTM1LDcgKzM1LDcgQEAKIAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGltcG9ydCBj
aGVja2VyIGFzIHN0eWxlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ubG9ndGVzdGluZyBp
bXBvcnQgTG9nVGVzdGluZywgVGVzdExvZ1N0cmVhbQpAQCAtMTczLDcgKzE3Myw3IEBAIGNsYXNz
IEdsb2JhbFZhcmlhYmxlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgIyBi
ZWdpbiB3aXRoIC0uCiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocnVsZS5zdGFydHN3aXRo
KCctJykpCiAgICAgICAgICAgICAjIENoZWNrIG5vIHJ1bGUgb2NjdXJzIHR3aWNlLgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShydWxlIGluIGFscmVhZHlfc2VlbikKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0Tm90SW4ocnVsZSwgYWxyZWFkeV9zZWVuKQogICAgICAgICAgICAgYWxyZWFk
eV9zZWVuLmFwcGVuZChydWxlKQogCiAgICAgZGVmIHRlc3RfZGVmYXVsdHMoc2VsZik6CkBAIC0y
NzQsOCArMjc0LDggQEAgY2xhc3MgR2xvYmFsVmFyaWFibGVzVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgICIiIkNoZWNrIHRoYXQgX01BWF9SRVBPUlRTX1BFUl9DQVRFR09SWSBpcyB2
YWxpZC4iIiIKICAgICAgICAgYWxsX2NhdGVnb3JpZXMgPSBzZWxmLl9hbGxfY2F0ZWdvcmllcygp
CiAgICAgICAgIGZvciBjYXRlZ29yeSBpbiBfTUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZLml0ZXJr
ZXlzKCk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoY2F0ZWdvcnkgaW4gYWxsX2NhdGVn
b3JpZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0tleSAiJXMiIGlzIG5vdCBhIGNh
dGVnb3J5JyAlIGNhdGVnb3J5KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihjYXRlZ29yeSwg
YWxsX2NhdGVnb3JpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdLZXkgIiVzIiBpcyBu
b3QgYSBjYXRlZ29yeScgJSBjYXRlZ29yeSkKIAogCiBjbGFzcyBDaGVja1dlYktpdFN0eWxlRnVu
Y3Rpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTM5Niw3ICszOTYsNyBAQCBjbGFzcyBD
aGVja2VyRGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVm
IGFzc2VydF9jaGVja2VyX25vbmUoc2VsZiwgZmlsZV9wYXRoKToKICAgICAgICAgIiIiQXNzZXJ0
IHRoYXQgdGhlIGRpc3BhdGNoZWQgY2hlY2tlciBpcyBOb25lLiIiIgogICAgICAgICBjaGVja2Vy
ID0gc2VsZi5kaXNwYXRjaChmaWxlX3BhdGgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjaGVj
a2VyIGlzIE5vbmUsICdDaGVja2luZzogIiVzIicgJSBmaWxlX3BhdGgpCisgICAgICAgIHNlbGYu
YXNzZXJ0SXNOb25lKGNoZWNrZXIsICdDaGVja2luZzogIiVzIicgJSBmaWxlX3BhdGgpCiAKICAg
ICBkZWYgYXNzZXJ0X2NoZWNrZXIoc2VsZiwgZmlsZV9wYXRoLCBleHBlY3RlZF9jbGFzcyk6CiAg
ICAgICAgICIiIkFzc2VydCB0aGUgdHlwZSBvZiB0aGUgZGlzcGF0Y2hlZCBjaGVja2VyLiIiIgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jaGFuZ2Vs
b2dfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2No
YW5nZWxvZ191bml0dGVzdC5weQppbmRleCBhOGNmZmQzYmUxYTc4ZWU2ZjU2YjUxNTE0ZDk4ZDky
MTE4ZDBkMWZmLi4wZWMwZWMyZGFiMDMyNGFmYjkzMDg0MDkyZmQ0MzQ5ZDUzZjAyM2RiIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5nZWxvZ191
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2No
YW5nZWxvZ191bml0dGVzdC5weQpAQCAtMjQsNyArMjQsNyBAQAogIiIiVW5pdCB0ZXN0IGZvciBj
aGFuZ2Vsb2cucHkuIiIiCiAKIGltcG9ydCBjaGFuZ2Vsb2cKLWltcG9ydCB1bml0dGVzdAoraW1w
b3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiAKIGNsYXNzIENoYW5nZUxvZ0NoZWNrZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMvY21ha2VfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL2NtYWtlX3VuaXR0ZXN0LnB5CmluZGV4IGY5ZmVlZGNjNjM2ZGJiMDU5
Yzc0N2IzMTM0YmZjNWVkMWNlOTM0MzQuLjdiMmNkYWYwZTA2YmVjYTBmNDRhMTU5OWU2MjU5OTQz
YzYwZjQwYjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
cnMvY21ha2VfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy9jbWFrZV91bml0dGVzdC5weQpAQCAtMjIsNyArMjIsNyBAQAogCiAiIiJVbml0IHRl
c3QgZm9yIGNtYWtlLnB5LiIiIgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIg
YXMgdW5pdHRlc3QKIAogZnJvbSBjbWFrZSBpbXBvcnQgQ01ha2VDaGVja2VyCiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY29tbW9uX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jb21tb25fdW5pdHRl
c3QucHkKaW5kZXggNmY4N2RjZGFlNmY0Nzk5ZWQ4NWVkY2Y2ZWUxZjU5ZDA0MjA0MWM3ZC4uODQ0
OWI5ODliYTNkNDJiOGE0NmYyMGI4YjMwNzIzYWRmZmQ4ZGRhMCAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jb21tb25fdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jb21tb25fdW5pdHRlc3QucHkK
QEAgLTIyLDcgKzIyLDcgQEAKIAogIiIiVW5pdCB0ZXN0cyBmb3IgY29tbW9uLnB5LiIiIgogCi1p
bXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSBjb21t
b24gaW1wb3J0IENhcnJpYWdlUmV0dXJuQ2hlY2tlcgogZnJvbSBjb21tb24gaW1wb3J0IFRhYkNo
ZWNrZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMv
Y3BwX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9j
cHBfdW5pdHRlc3QucHkKaW5kZXggYzMzYWM2ZGE3ZmQ5NTBmYmFiZTk3NDdkODJkM2EzNzYwMDBj
MGFlMi4uOGRlOTlkZjdlNzA4NjdkNzE2MDBmYjMyZWM5NzRmMTc2MjU3OGZmZCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3Qu
cHkKQEAgLTM5LDcgKzM5LDcgQEAgaW1wb3J0IGNvZGVjcwogaW1wb3J0IG9zCiBpbXBvcnQgcmFu
ZG9tCiBpbXBvcnQgcmUKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0
dGVzdAogaW1wb3J0IGNwcCBhcyBjcHBfc3R5bGUKIGZyb20gY3BwIGltcG9ydCBDcHBDaGVja2Vy
CiBmcm9tIC4uZmlsdGVyIGltcG9ydCBGaWx0ZXJDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2pzb25jaGVja2VyX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9qc29uY2hlY2tlcl91
bml0dGVzdC5weQppbmRleCBhZjFmNDdjNjhmZjU3YWIwMWNiOGViZmU0Yzk4YzM4OTc2YTEwNzBm
Li42MmEwNzkzYzQ3OThjNTNjMGMxN2Q3OWMzN2U5NTIwZmJmNDFhZDExIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2pzb25jaGVja2VyX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvanNvbmNoZWNr
ZXJfdW5pdHRlc3QucHkKQEAgLTIyLDcgKzIyLDcgQEAKIAogIiIiVW5pdCB0ZXN0IGZvciBqc29u
Y2hlY2tlci5weS4iIiIKIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVu
aXR0ZXN0CiAKIGltcG9ydCBqc29uY2hlY2tlcgogCkBAIC02Nyw3ICs2Nyw3IEBAIGNsYXNzIEpT
T05DaGVja2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBtb2NrX2Vycm9y
X2hhbmRsZXIuaGFkX2Vycm9yID0gVHJ1ZQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
eHBlY3RlZF9saW5lX251bWJlciwgbGluZV9udW1iZXIpCiAgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGV4cGVjdGVkX2NhdGVnb3J5LCBjYXRlZ29yeSkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShjYXRlZ29yeSBpbiBqc29uY2hlY2tlci5KU09OQ2hlY2tlci5jYXRlZ29yaWVzKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihjYXRlZ29yeSwganNvbmNoZWNrZXIuSlNPTkNoZWNr
ZXIuY2F0ZWdvcmllcykKIAogICAgICAgICBlcnJvcl9oYW5kbGVyID0gTW9ja0Vycm9ySGFuZGxl
cihoYW5kbGVfc3R5bGVfZXJyb3IpCiAgICAgICAgIGVycm9yX2hhbmRsZXIuaGFkX2Vycm9yID0g
RmFsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMv
cG5nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9w
bmdfdW5pdHRlc3QucHkKaW5kZXggYWM1MWI5ZGIxNGI3MjZiM2FhNjViODc2YzVmMjI2ODhjZTdk
MDJlZC4uYTcxYTQ0MWYxNWZiYmNiYWYxNzRiMzIxYjExYWRkOGZmYzA3ZDE2MiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9wbmdfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9wbmdfdW5pdHRlc3Qu
cHkKQEAgLTIzLDcgKzIzLDcgQEAKIAogIiIiVW5pdCB0ZXN0IGZvciBwbmcucHkuIiIiCiAKLWlt
cG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogZnJvbSBwbmcgaW1w
b3J0IFBOR0NoZWNrZXIKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21v
Y2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lz
dGVtaG9zdF9tb2NrIGltcG9ydCBNb2NrU3lzdGVtSG9zdApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9weXRob25fdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3B5dGhvbl91bml0dGVzdC5weQppbmRleCA3
M2JkYTc2ZTJkMDkwYzUyOTgzZDBiNGIwZDczOTExNWU0OTIyYWRlLi5kNTJlM2YzYmMwZGQ2MjQ5
YWE4NjMyZDAzNDVkM2RkNDVmZTIzYWUzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL3B5dGhvbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3B5dGhvbl91bml0dGVzdC5weQpAQCAtMjMsNyArMjMs
NyBAQAogIiIiVW5pdCB0ZXN0cyBmb3IgcHl0aG9uLnB5LiIiIgogCiBpbXBvcnQgb3MKLWltcG9y
dCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHB5dGhvbiBp
bXBvcnQgUHl0aG9uQ2hlY2tlcgogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5w
eQppbmRleCA0ZjRhNGU0ZjkzODU5MzY0OTRlYzFjMDgxOWI5MzUxYjI1MWU0ZmM2Li40M2VmODM2
M2JkNTdhNmMzNGEyZjEyOWI4MDQyYjUwZmExNjU2MDQ3IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9leHBlY3Rh
dGlvbnNfdW5pdHRlc3QucHkKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW1wb3J0IG9zCiBpbXBvcnQg
c3lzCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJv
bSB0ZXN0X2V4cGVjdGF0aW9ucyBpbXBvcnQgVGVzdEV4cGVjdGF0aW9uc0NoZWNrZXIKIGZyb20g
d2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKQEAgLTcwLDcgKzcwLDcg
QEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uc1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgaWYgcG9ydDoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Lm5hbWUoKS5z
dGFydHN3aXRoKGV4cGVjdGVkX3BvcnRfaW1wbGVtZW50YXRpb24pKQogICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBleHBlY3RlZF9wb3J0X2ltcGxlbWVu
dGF0aW9uKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZXhwZWN0ZWRfcG9ydF9pbXBs
ZW1lbnRhdGlvbikKIAogICAgIGRlZiB0ZXN0X2RldGVybWluZV9wb3J0X2Zyb21fZXhwZWN0YXRp
b25zX3BhdGgoc2VsZik6CiAgICAgICAgIHNlbGYuX2V4cGVjdF9wb3J0X2Zvcl9leHBlY3RhdGlv
bnNfcGF0aChOb25lLCAnLycpCkBAIC05NCw3ICs5NCw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlv
bnNUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9lcnJvcl9jb2xsZWN0b3IsIGhvc3Q9aG9zdCkKIAogICAg
ICAgICAjIFdlIHNob3VsZCBoYXZlIGZhaWxlZCB0byBmaW5kIGEgdmFsaWQgcG9ydCBvYmplY3Qg
Zm9yIHRoYXQgcGF0aC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjaGVja2VyLl9wb3J0X29i
aiwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY2hlY2tlci5fcG9ydF9vYmopCiAK
ICAgICAgICAgIyBOb3cgdXNlIGEgdGVzdCBwb3J0IHNvIHdlIGNhbiBjaGVjayB0aGUgbGluZXMu
CiAgICAgICAgIGNoZWNrZXIuX3BvcnRfb2JqID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KCd0ZXN0
LW1hYy1sZW9wYXJkJykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvdGV4dF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvdGV4dF91bml0dGVzdC5weQppbmRleCBhYTk3NjZiN2QyMzViZDA0YWNhNDA4NmMx
MTZjZGEzMmYyOTdhMTVmLi4wMWUzNzNhYmM0N2ViY2M1MDAxZjgxYjVlYjE4OWIyMDQ4NmM5MTU2
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3RleHRf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90
ZXh0X3VuaXR0ZXN0LnB5CkBAIC0yOCw3ICsyOCw3IEBACiAKICIiIlVuaXQgdGVzdCBmb3IgdGV4
dF9zdHlsZS5weS4iIiIKIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVu
aXR0ZXN0CiAKIGltcG9ydCB0ZXh0IGFzIHRleHRfc3R5bGUKIGZyb20gdGV4dCBpbXBvcnQgVGV4
dENoZWNrZXIKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgVGV4dFN0eWxlVGVzdENhc2UodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5oYWRfZXJyb3IgPSBUcnVlCiAKICAgICAg
ICAgdGV4dF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YSgnJywgbGluZXMsIGVycm9yX2Zvcl90ZXN0
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IHNlbGYuaGFkX2Vycm9yLCAnJXMgc2hvdWxk
IG5vdCBoYXZlIGFueSBlcnJvcnMuJyAlIGxpbmVzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KHNlbGYuaGFkX2Vycm9yLCAnJXMgc2hvdWxkIG5vdCBoYXZlIGFueSBlcnJvcnMuJyAlIGxpbmVz
KQogCiAgICAgZGVmIGFzc2VydEVycm9yKHNlbGYsIGxpbmVzLCBleHBlY3RlZF9saW5lX251bWJl
cik6CiAgICAgICAgICIiIkFzc2VydHMgdGhhdCB0aGUgc3BlY2lmaWVkIGxpbmVzIGhhcyBhbiBl
cnJvci4iIiIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
cnMvd2F0Y2hsaXN0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy93YXRjaGxpc3RfdW5pdHRlc3QucHkKaW5kZXggY2I1MThkZGU1MDVkYzlkNGVlM2Vl
ZmQ4MDQwYzdhMzViN2ZjMzBiNS4uOTA5NTBjOWY5MDE1MmEzMzE4YzM2Mzg4NmU1NDBkNzkwZTAw
YTk4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy93
YXRjaGxpc3RfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy93YXRjaGxpc3RfdW5pdHRlc3QucHkKQEAgLTMxLDcgKzMxLDcgQEAKICcnJ1VuaXQg
dGVzdHMgZm9yIHdhdGNobGlzdC5weS4nJycKIAogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1
bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogCiBpbXBvcnQgd2F0Y2hsaXN0CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3hjb2RlcHJval91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0
ZXN0LnB5CmluZGV4IDc3MDcxM2ZkMjU5OGNlODg4MDVmODliM2MwYmUwNDQwNzc5YTA0ZTQuLjM2
YTFhNDFkYTUzYzMyZjI0MTAzM2U3Y2IxZGZiN2NiMjRjYjRmMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0
ZXN0LnB5CkBAIC0yNCw3ICsyNCw3IEBACiAiIiJVbml0IHRlc3QgZm9yIHhjb2RlcHJvai5weS4i
IiIKIAogaW1wb3J0IHhjb2RlcHJvagotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3Qy
IGFzIHVuaXR0ZXN0CiAKIAogY2xhc3MgVGVzdEVycm9ySGFuZGxlcihvYmplY3QpOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94bWxfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3htbF91bml0dGVzdC5w
eQppbmRleCAxM2FkZDQwOGM1MTI2NTc5ZDVhZWQ2ZjkxNDA3NzJhMzEzNjJlM2QxLi5hMjI0ZGUz
ZjA5ODNhYzIzOThlYmMwMWY5ZTIwODg5NzBlZGFkZmM1IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3htbF91bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3htbF91bml0dGVzdC5weQpAQCAtMjIsNyAr
MjIsNyBAQAogCiAiIiJVbml0IHRlc3QgZm9yIHhtbC5weS4iIiIKIAotaW1wb3J0IHVuaXR0ZXN0
CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGltcG9ydCB4bWwKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3Qu
cHkKaW5kZXggYzAyMTQzMTc4NTdiMjMyYjM2MmViN2RjMjMyM2M5YzA3Zjk3ODZiNS4uMGI0YzM1
NTk2NzI4NjZjZjY3NGQwZTAxMzhhNmM3N2RhM2ExYWY5OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0ZXN0LnB5CkBAIC0y
Myw3ICsyMyw3IEBACiAiIiJVbml0IHRlc3RzIGZvciBlcnJvcl9oYW5kbGVycy5weS4iIiIKIAog
Ci1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSBj
aGVja2VyIGltcG9ydCBTdHlsZVByb2Nlc3NvckNvbmZpZ3VyYXRpb24KIGZyb20gZXJyb3JfaGFu
ZGxlcnMgaW1wb3J0IERlZmF1bHRTdHlsZUVycm9ySGFuZGxlcgpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWxlcmVhZGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9maWxlcmVhZGVyX3VuaXR0ZXN0LnB5CmluZGV4IGQ3MjhjNDYz
YWEzZmQ5OGQzOWQ2MDNhYTBhM2I3ZjYyMmYwMTljNzkuLjJjNTA2ZWMyMGQ5MzlmZDBjNDY1OGUw
MjdkZTdlNDc3NzY2YThlNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvZmlsZXJlYWRlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2ZpbGVyZWFkZXJfdW5pdHRlc3QucHkKQEAgLTIwLDcgKzIwLDcgQEAKICMgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5p
dHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lz
dGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ubG9ndGVz
dGluZyBpbXBvcnQgTG9nZ2luZ1Rlc3RDYXNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2ZpbHRlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvZmlsdGVyX3VuaXR0ZXN0LnB5CmluZGV4IGMyMGQ5OTgxYTQ2ZGM2YzE0NTMwMTNkZDcy
M2E4MGZhODM4YTg1MjMuLmI0ZGQ3YmM3Y2IzY2EyODg1MmExMTRmMTJjMGVhNGViYmVjZmFmNTAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyX3VuaXR0ZXN0LnB5
CkBAIC0yMiw3ICsyMiw3IEBACiAKICIiIlVuaXQgdGVzdHMgZm9yIGZpbHRlci5weS4iIiIKIAot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gZmls
dGVyIGltcG9ydCBfQ2F0ZWdvcnlGaWx0ZXIgYXMgQ2F0ZWdvcnlGaWx0ZXIKIGZyb20gZmlsdGVy
IGltcG9ydCB2YWxpZGF0ZV9maWx0ZXJfcnVsZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvbWFpbl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvbWFpbl91bml0dGVzdC5weQppbmRleCBlMDE5MTY4N2EyZjU2NDM5YTY4YTU4NjA5MDE4
OWU1ZWUwZTRlZWJkLi5kYmZjN2M4M2FhNDBiMzA3Yzk2OWRlY2Q5ZGY3YjA4ZjdjMDVmNzdhIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL21haW5fdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9tYWluX3VuaXR0ZXN0LnB5CkBAIC0y
MCw3ICsyMCw3IEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWlt
cG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIG1haW4g
aW1wb3J0IGNoYW5nZV9kaXJlY3RvcnkKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxl
c3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL29wdHBhcnNlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvb3B0cGFyc2VyX3VuaXR0ZXN0LnB5CmluZGV4IDk3OWIzMWQxYTIwMTc1
MDNiMDJhMzhjMTBiN2Y4YWY2MTY1NzU1NzkuLjBjOTAwMmFkZmUzYmY1ZTVjNzE5ZWQzMjIyM2Qy
NzU2ZjUxYzQ4YzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvb3B0
cGFyc2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvb3B0
cGFyc2VyX3VuaXR0ZXN0LnB5CkBAIC0yMiw3ICsyMiw3IEBACiAKICIiIlVuaXQgdGVzdHMgZm9y
IHBhcnNlci5weS4iIiIKIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVu
aXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d0ZXN0aW5nIGltcG9ydCBM
b2dnaW5nVGVzdENhc2UKIGZyb20gd2Via2l0cHkuc3R5bGUub3B0cGFyc2VyIGltcG9ydCBBcmd1
bWVudFBhcnNlcgpAQCAtMTQ1LDkgKzE0NSw5IEBAIGNsYXNzIEFyZ3VtZW50UGFyc2VyVGVzdChM
b2dnaW5nVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzLCBbXSkKIAog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuZmlsdGVyX3J1bGVzLCBbXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmdpdF9jb21taXQsIE5vbmUpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5kaWZmX2ZpbGVzLCBGYWxzZSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChvcHRpb25zLmlzX3ZlcmJvc2UsIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2Vy
dElzTm9uZShvcHRpb25zLmdpdF9jb21taXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0
aW9ucy5kaWZmX2ZpbGVzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9wdGlvbnMuaXNfdmVy
Ym9zZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLm1pbl9jb25maWRlbmNlLCAz
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMub3V0cHV0X2Zvcm1hdCwgJ3ZzNycp
CiAKQEAgLTE2Niw5ICsxNjYsOSBAQCBjbGFzcyBBcmd1bWVudFBhcnNlclRlc3QoTG9nZ2luZ1Rl
c3RDYXNlKToKICAgICAgICAgKGZpbGVzLCBvcHRpb25zKSA9IHBhcnNlKFsnLS1naXQtZGlmZj1j
b21taXQnXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmdpdF9jb21taXQsICdj
b21taXQnKQogICAgICAgICAoZmlsZXMsIG9wdGlvbnMpID0gcGFyc2UoWyctLXZlcmJvc2UnXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmlzX3ZlcmJvc2UsIFRydWUpCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcHRpb25zLmlzX3ZlcmJvc2UpCiAgICAgICAgIChmaWxlcywg
b3B0aW9ucykgPSBwYXJzZShbJy0tZGlmZi1maWxlcycsICdmaWxlLnR4dCddKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuZGlmZl9maWxlcywgVHJ1ZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG9wdGlvbnMuZGlmZl9maWxlcykKIAogICAgICAgICAjIFBhc3MgdXNlcl9ydWxl
cy4KICAgICAgICAgKGZpbGVzLCBvcHRpb25zKSA9IHBhcnNlKFsnLS1maWx0ZXI9K2J1aWxkLC13
aGl0ZXNwYWNlJ10pCkBAIC0yMDAsOCArMjAwLDggQEAgY2xhc3MgQ29tbWFuZE9wdGlvblZhbHVl
c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAjIENoZWNrIGRlZmF1bHQgcGFyYW1l
dGVycy4KICAgICAgICAgb3B0aW9ucyA9IFByb2Nlc3Nvck9wdGlvbnMoKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKG9wdGlvbnMuZmlsdGVyX3J1bGVzLCBbXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChvcHRpb25zLmdpdF9jb21taXQsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwob3B0aW9ucy5pc192ZXJib3NlLCBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUo
b3B0aW9ucy5naXRfY29tbWl0KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9wdGlvbnMuaXNf
dmVyYm9zZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLm1pbl9jb25maWRlbmNl
LCAxKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMub3V0cHV0X2Zvcm1hdCwgImVt
YWNzIikKIApAQCAtMjIyLDcgKzIyMiw3IEBAIGNsYXNzIENvbW1hbmRPcHRpb25WYWx1ZXNUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3V0cHV0X2Zvcm1hdD0idnM3IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmZp
bHRlcl9ydWxlcywgWyIrIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5naXRf
Y29tbWl0LCAiY29tbWl0IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmlzX3Zl
cmJvc2UsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcHRpb25zLmlzX3ZlcmJvc2Up
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5taW5fY29uZmlkZW5jZSwgMykKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLm91dHB1dF9mb3JtYXQsICJ2czciKQogCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3BhdGNocmVhZGVyX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9wYXRjaHJlYWRlcl91bml0dGVz
dC5weQppbmRleCAwNWQzNmQ5ZmU1YTM3MDY0ODhmZjhmYzVhZmFkY2MyZGQ5NTc0Y2NiLi5mNzM2
OGVjMmI0Nzc1YWFmOGJiMGFjM2IzOGFjNjViZTljZTQ2N2E2IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL3BhdGNocmVhZGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcGF0Y2hyZWFkZXJfdW5pdHRlc3QucHkKQEAgLTI5LDcg
KzI5LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVz
dAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRw
eS5zdHlsZS5wYXRjaHJlYWRlciBpbXBvcnQgUGF0Y2hSZWFkZXIKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdGVzdC9maW5kZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rlc3QvZmluZGVyX3VuaXR0ZXN0LnB5CmluZGV4IDkxYjNmZWQ1YWRkMzk1MWY1
NmM0OTYzZTE3NGE3OWY0YTNlYTA1Y2MuLmYxMjU5ZWY0OTI0ZTIyMGY1ZmQ5Njk0OWNjNzYzM2I2
YTg4Y2M2ZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9maW5kZXJf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L2ZpbmRlcl91bml0
dGVzdC5weQpAQCAtMjEsNyArMjEsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgbG9nZ2lu
ZwotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lz
dGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0
cHV0Q2FwdHVyZQpAQCAtMTEyLDcgKzExMiw3IEBAIGNsYXNzIEZpbmRlclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5jaGVja19uYW1lcyhbJy90bXAvYW5vdGhlcl91
bml0dGVzdC5weSddLCBbXSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIF8sIF8sIGxv
Z3MgPSBvYy5yZXN0b3JlX291dHB1dCgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2Fu
b3RoZXJfdW5pdHRlc3QucHknIGluIGxvZ3MpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCdh
bm90aGVyX3VuaXR0ZXN0LnB5JywgbG9ncykKIAogICAgICAgICAjIFBhdGhzIHRoYXQgZG9uJ3Qg
ZXhpc3QgYXJlIGVycm9ycy4KICAgICAgICAgb2MuY2FwdHVyZV9vdXRwdXQoKQpAQCAtMTIwLDcg
KzEyMCw3IEBAIGNsYXNzIEZpbmRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAg
ICAgc2VsZi5jaGVja19uYW1lcyhbJy9mb28vYmFyL25vdGV4aXN0X3VuaXR0ZXN0LnB5J10sIFtd
KQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgXywgXywgbG9ncyA9IG9jLnJlc3RvcmVf
b3V0cHV0KCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnbm90ZXhpc3RfdW5pdHRlc3Qu
cHknIGluIGxvZ3MpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCdub3RleGlzdF91bml0dGVz
dC5weScsIGxvZ3MpCiAKICAgICAgICAgIyBOYW1lcyB0aGF0IGRvbid0IGV4aXN0IGFyZSBjYXVn
aHQgbGF0ZXIsIGF0IGxvYWQgdGltZS4KICAgICAgICAgc2VsZi5jaGVja19uYW1lcyhbJ2Jhci5u
b3RleGlzdF91bml0dGVzdCddLCBbJ2Jhci5ub3RleGlzdF91bml0dGVzdCddKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21haW5fdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbl91bml0dGVzdC5weQppbmRleCAwMzFhYmQ2NWI0ZTQ3
MDQzNTNiYzYwNWEwOGZlMTU3ZjViNjgwNTRhLi44YTFiNTZkMjk1YWZlM2FiZjU3NWJhOWQ2Y2Ey
NDg4YjVjNjA4ZTU4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFp
bl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbl91bml0
dGVzdC5weQpAQCAtMjIsNyArMjIsNyBAQAogCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHN5cwot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiBpbXBvcnQgU3Ry
aW5nSU8KIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZp
bGVTeXN0ZW0KQEAgLTcwLDggKzcwLDggQEAgY2xhc3MgVGVzdGVyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgICAgICBfLCBfLCBsb2dzID0gb2MucmVzdG9yZV9vdXRwdXQoKQogICAg
ICAgICAgICAgcm9vdF9sb2dnZXIuaGFuZGxlcnMgPSByb290X2hhbmRsZXJzCiAKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKCdObyB0ZXN0cyB0byBydW4nIGluIGVycm9ycy5nZXR2YWx1ZSgpKQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUoJ05vIHRlc3RzIHRvIHJ1bicgaW4gbG9ncykKKyAgICAg
ICAgc2VsZi5hc3NlcnRJbignTm8gdGVzdHMgdG8gcnVuJywgZXJyb3JzLmdldHZhbHVlKCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0SW4oJ05vIHRlc3RzIHRvIHJ1bicsIGxvZ3MpCiAKICAgICBkZWYg
X2ZpbmRfdGVzdF9uYW1lcyhzZWxmLCBhcmdzKToKICAgICAgICAgdGVzdGVyID0gVGVzdGVyKCkK
QEAgLTExNCw0ICsxMTQsNCBAQCBjbGFzcyBUZXN0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgb3V0LCBfID0gcHJvYy5jb21tdW5pY2F0ZSgpCiAgICAgICAgIHJldGNvZGUgPSBw
cm9jLnJldHVybmNvZGUKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXRjb2RlLCAwKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUoJ0NvdmVyJyBpbiBvdXQpCisgICAgICAgIHNlbGYuYXNzZXJ0
SW4oJ0NvdmVyJywgb3V0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0
L3J1bm5lcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9ydW5uZXJf
dW5pdHRlc3QucHkKaW5kZXggY2FmYzk4MTNlMzFkZmJjNTVjODE2ZWM0ZGY5NjBiYWY2ODg3ODM2
Ny4uNDZhOTUwN2ZkYWZjYzU5Yjg1ZDg5NDliNTVmNTkxMDZmYzk1YTFlOSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3J1bm5lcl91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvcnVubmVyX3VuaXR0ZXN0LnB5CkBAIC0yMyw3ICsyMyw3
IEBACiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHJlCiBpbXBvcnQgU3RyaW5nSU8KLWltcG9ydCB1
bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LnRv
b2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCiBmcm9tIHdlYmtpdHB5LnRlc3QucHJpbnRl
ciBpbXBvcnQgUHJpbnRlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0
L3NraXBfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcF91bml0
dGVzdC5weQppbmRleCAyZjg0N2Q2MzU5MWI1MzU2MmU5NDhkZTdlZjQxNGRjYTU4MWJjMGI3Li5i
ZmNiNmE2N2MyY2M5MmNhNTg4OTRiMDUwNDhlZjdhNzkzMTYyNWZmIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcF91bml0dGVzdC5weQpAQCAtMjIsNyArMjIsNyBAQAogCiBp
bXBvcnQgU3RyaW5nSU8KIGltcG9ydCBsb2dnaW5nCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1
bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS50ZXN0LnNraXAgaW1wb3J0IHNr
aXBfaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19f
aW5pdF9fX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19f
aW5pdF9fX3VuaXR0ZXN0LnB5CmluZGV4IGZhYjk5NTJlODdkMzJjZDIyMDNkYjQyNjcwYjYxOTYx
MzBiMTU0OWYuLmY2ODdhZTAwOWZjNzc1MmEzYWFkNTM4YjI5ZTRlMDI1NDFhOWMwNjAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfX191bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X19fdW5p
dHRlc3QucHkKQEAgLTI3LDcgKzI3LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IHN5cwot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Vi
a2l0cHkudGhpcmRwYXJ0eSBpbXBvcnQgQXV0b2luc3RhbGxJbXBvcnRIb29rCiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9fYmVfbW92ZWQvdXBkYXRlX3dlYmdsX2NvbmZv
cm1hbmNlX3Rlc3RzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b19iZV9t
b3ZlZC91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfdW5pdHRlc3QucHkKaW5kZXggYjM3
Yjk5MTEzNzVkZTA0OGU2Y2ZhNTMyMzRkNDZmNzZkNDE4ZDMxMS4uMDI4YTRjNmYyODEwNjJmN2Rl
NzUwMDM4ZGIyNmZiODZkZTI2MWFiYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b19iZV9tb3ZlZC91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b19iZV9tb3ZlZC91cGRhdGVfd2ViZ2xfY29u
Zm9ybWFuY2VfdGVzdHNfdW5pdHRlc3QucHkKQEAgLTI4LDcgKzI4LDcgQEAKIAogIiIiVW5pdCB0
ZXN0cyBmb3IgdXBkYXRlX3dlYmdsX2NvbmZvcm1hbmNlX3Rlc3RzLiIiIgogCi1pbXBvcnQgdW5p
dHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIGZyb20gd2Via2l0cHkudG9fYmVf
bW92ZWQgaW1wb3J0IHVwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0cyBhcyB3ZWJnbAogCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvYm90aW5mb191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvYm90aW5mb191bml0dGVz
dC5weQppbmRleCA4MjBmZjU1OWVmMDkxMTBhN2RkYmYxNjY1NmEzM2M5NDlkNmI3OGZkLi4xODU0
NWE4NDcyMWUxMmM5Y2U0MzViM2I1OTg1ZjM4MmFhOTA3NDhkIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2JvdGluZm9fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9ib3RpbmZvX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsy
Niw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QK
K2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS50b29sLmJvdC5i
b3RpbmZvIGltcG9ydCBCb3RJbmZvCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0
IE1vY2tUb29sCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Nv
bW1pdHF1ZXVldGFza191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CmluZGV4IDNlM2ZhODhmNTNkOWE5MDAxNjYz
NWMyNzgxM2NlMzA2MjU1N2FkOWMuLmJhOTI1NGIwMmIzMmM3YTExY2RiNDE5MDk5Mzc2Zjg3OTU2
YWVkZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0
cXVldWV0YXNrX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CkBAIC0yOCw3ICsyOCw3IEBACiAKIGZyb20g
ZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgbG9nZ2luZwotaW1wb3J0IHVuaXR0ZXN0
CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm5l
dCBpbXBvcnQgYnVnemlsbGEKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVz
dWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKQEAgLTM3Miw3ICszNzIsNyBAQCBjb21tYW5k
X2ZhaWxlZDogZmFpbHVyZV9tZXNzYWdlPSdQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzJyBzY3Jp
cHRfZXJyb3I9J01PQ0sgdAogICAgICAgICBwYXRjaCA9IHRvb2wuYnVncy5mZXRjaF9hdHRhY2ht
ZW50KDEwMDAwKQogICAgICAgICB0YXNrID0gQ29tbWl0UXVldWVUYXNrKGNvbW1pdF9xdWV1ZSwg
cGF0Y2gpCiAgICAgICAgIHN1Y2Nlc3MgPSBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgdGFzay5ydW4sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdWNjZXNzLCBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShz
dWNjZXNzKQogCiAgICAgZGVmIHRlc3RfdGVzdF9mYWlsdXJlKHNlbGYpOgogICAgICAgICBjb21t
aXRfcXVldWUgPSBNb2NrQ29tbWl0UXVldWUoWwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5CmluZGV4
IDNjZWUzZjA1OTQ0NjU4NzkyNzczMTgwZWY4Y2QxNzkzYTJjMjM1ZWQuLmI2Mzk4NTZmM2I4ZjA5
OGIzNzEzMjBmMzJkNmE4ZjNiNzNlNzk5OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkKQEAg
LTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1
bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LnRv
b2wuYm90LmV4cGVjdGVkZmFpbHVyZXMgaW1wb3J0IEV4cGVjdGVkRmFpbHVyZXMKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mZWVkZXJzX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mZWVkZXJzX3VuaXR0ZXN0LnB5Cmlu
ZGV4IGNiMDRlMTk4OTg0M2ViN2YwN2U3YTE4MzlkNTlkNjVhYzBkZWYyZjQuLmI3MGE2MzcxZTVj
YTk5YThkZGFiZjVjOWE5YzA2Mzg4ZjM3ZGM4MzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvZmVlZGVyc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2ZlZWRlcnNfdW5pdHRlc3QucHkKQEAgLTI3LDcgKzI3LDcgQEAK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKLWltcG9ydCB1
bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJr
aXRweS50aGlyZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvZmxha3l0ZXN0cmVwb3J0ZXJfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJlcG9ydGVyX3VuaXR0ZXN0LnB5
CmluZGV4IDQ4YzUxMTI4MTk1M2YyYzlmY2ZkNTdmY2M1ZDIyMDI5NzIxZDljMmMuLjNmYjNjODNl
YmE1YjY0YTc4NmQ0YzlmYTEzMWZlOThiZGU3ODU4ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvZmxha3l0ZXN0cmVwb3J0ZXJfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mbGFreXRlc3RyZXBvcnRlcl91bml0dGVz
dC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXIKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVt
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5k
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFu
ZF91bml0dGVzdC5weQppbmRleCBhMzMyNjBmMDc3NjUyMTMyZGMwNzA2ODRhNDM4ZTI4ZmIxNGE1
MjljLi5iNjU4ZWZmMjQwYzNjNGIwNTBiNzVlNjFkOTBkZTdhM2JlODA0YzBkIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmRfdW5pdHRl
c3QucHkKQEAgLTI3LDcgKzI3LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IG9zCi1pbXBv
cnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20g
d2Via2l0cHkudG9vbC5ib3QuaXJjX2NvbW1hbmQgaW1wb3J0ICoKQEAgLTk3LDcgKzk3LDcgQEAg
Y2xhc3MgSVJDQ29tbWFuZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3Rf
cm9sbF9jaHJvbWl1bV9kZXBzKHNlbGYpOgogICAgICAgICByb2xsID0gUm9sbENocm9taXVtREVQ
UygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcm9sbC5fcGFyc2VfYXJncyhbXSkp
CisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJvbGwuX3BhcnNlX2FyZ3MoW10pKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCIxMjM0Iiwgcm9sbC5fcGFyc2VfYXJncyhbIjEyMzQiXSkpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyJBbGFuIEN1dHRlciIgPGFsYW5jdXR0ZXJAY2hyb21p
dW0ub3JnPicsIHJvbGwuX2V4cGFuZF9pcmNfbmlja25hbWUoImFsYW5jdXR0ZXIiKSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgidW5rbm93bl9pcmNfbmlja25hbWUiLCByb2xsLl9leHBhbmRf
aXJjX25pY2tuYW1lKCJ1bmtub3duX2lyY19uaWNrbmFtZSIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNib3RfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY2JvdF91bml0dGVzdC5weQppbmRleCBjNzhlYjgwZTc2
YzgxNjFjZjQ3N2Q5ZjdlNDc5YzZjODZmYmQ0ZGM2Li4yMzgwNzExMzJkMDQ1M2ZlZmQ0MDA0Y2Nl
OWFkNmNlNmVmODQ0YzY0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2lyY2JvdF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2lyY2JvdF91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVu
aXR0ZXN0CiBpbXBvcnQgcmFuZG9tCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRw
dXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlcl91
bml0dGVzdC5weQppbmRleCBiNmU4OWRmYzQ1MTQxY2Y2MGYxYmRmYzhjZjk4ZGQ2ZjAzMTcyNDUw
Li4xOGRlN2VjNDFjY2VmZmNhZDY4MjU0NDNiYjI1MzZlMmE1YjY1NTJkIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVz
dHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBh
cyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2Nr
IGltcG9ydCBNb2NrRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1
dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgTGF5
b3V0VGVzdFJlc3VsdHNSZWFkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlLCBs
YXlvdXRfdGVzdHNfcmVzdWx0c19wYXRoKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vy
cm9yLCBob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUsIHVuaXRfdGVzdHNfcmVzdWx0c19w
YXRoKQogICAgICAgICAjIGxheW91dF90ZXN0X3Jlc3VsdHMgc2hvdWxkbid0IHJhaXNlIGV2ZW4g
aWYgdGhlIHJlc3VsdHMuanNvbiBmaWxlIGlzIG1pc3NpbmcuCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocmVhZGVyLnJlc3VsdHMoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUo
cmVhZGVyLnJlc3VsdHMoKSkKIAogICAgIGRlZiB0ZXN0X2NyZWF0ZV91bml0X3Rlc3RfcmVzdWx0
cyhzZWxmKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKQEAgLTcxLDE5ICs3MSwxOSBAQCBj
bGFzcyBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICByZWFkZXIuX2NyZWF0ZV9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRU
ZXN0UmVzdWx0cyhbXSkKICAgICAgICAgcmVhZGVyLl9jcmVhdGVfdW5pdF90ZXN0X3Jlc3VsdHMg
PSBsYW1iZGE6IE5vbmUKICAgICAgICAgIyBsYXlvdXRfdGVzdF9yZXN1bHRzIHNob3VsZG4ndCBy
YWlzZSBldmVuIGlmIHRoZSB1bml0IHRlc3RzIHhtbCBmaWxlIGlzIG1pc3NpbmcuCi0gICAgICAg
IHNlbGYuYXNzZXJ0Tm90RXF1YWxzKHJlYWRlci5yZXN1bHRzKCksIE5vbmUpCisgICAgICAgIHNl
bGYuYXNzZXJ0SXNOb3ROb25lKHJlYWRlci5yZXN1bHRzKCksIE5vbmUpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocmVhZGVyLnJlc3VsdHMoKS5mYWlsaW5nX3Rlc3RzKCksIFtdKQogCiAKICAg
ICBkZWYgdGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAgICByZWFkZXIgPSBM
YXlvdXRUZXN0UmVzdWx0c1JlYWRlcihNb2NrSG9zdCgpLCAiL21vY2stcmVzdWx0cyIsICIvdmFy
L2xvZ3MiKQogICAgICAgICByZWFkZXIuX3JlYWRfZmlsZV9jb250ZW50cyA9IGxhbWJkYSBwYXRo
OiBOb25lCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVhZGVyLnJlc3VsdHMoKSwgTm9uZSkK
KyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVhZGVyLnJlc3VsdHMoKSkKICAgICAgICAgcmVh
ZGVyLl9yZWFkX2ZpbGVfY29udGVudHMgPSBsYW1iZGEgcGF0aDogIiIKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChyZWFkZXIucmVzdWx0cygpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElz
Tm9uZShyZWFkZXIucmVzdWx0cygpKQogICAgICAgICByZWFkZXIuX2NyZWF0ZV9sYXlvdXRfdGVz
dF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKICAgICAgICAgcmVzdWx0
cyA9IHJlYWRlci5yZXN1bHRzKCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbHMocmVzdWx0
cywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmVzdWx0cykKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChyZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSwgMzApICAjIFRo
aXMgdmFsdWUgbWF0Y2hlcyBSdW5UZXN0cy5OT05fSU5URVJBQ1RJVkVfRkFJTFVSRV9MSU1JVF9D
T1VOVAogCiAgICAgZGVmIHRlc3RfYXJjaGl2ZV9sYXN0X2xheW91dF90ZXN0X3Jlc3VsdHMoc2Vs
Zik6CkBAIC05NSwxMCArOTUsMTAgQEAgY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBTaG91bGQgZmFpbCBiZWNhdXNlIHRoZSBy
ZXN1bHRzX2RpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4KICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9
ICIvbW9jay1yZXN1bHRzIGRvZXMgbm90IGV4aXN0LCBub3QgYXJjaGl2aW5nLlxuIgogICAgICAg
ICBhcmNoaXZlID0gT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHJlYWRlci5h
cmNoaXZlLCBbcGF0Y2hdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoYXJjaGl2ZSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUo
YXJjaGl2ZSkKIAogICAgICAgICBob3N0LmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3Rvcnko
cmVzdWx0c19kaXJlY3RvcnkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShob3N0LmZpbGVzeXN0
ZW0uZXhpc3RzKHJlc3VsdHNfZGlyZWN0b3J5KSkKIAotICAgICAgICBzZWxmLmFzc2VydE5vdEVx
dWFsKHJlYWRlci5hcmNoaXZlKHBhdGNoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05v
dE5vbmUocmVhZGVyLmFyY2hpdmUocGF0Y2gpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhv
c3QuZmlsZXN5c3RlbS5leGlzdHMocmVzdWx0c19kaXJlY3RvcnkpKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9xdWV1ZWVuZ2luZV91bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcXVldWVlbmdpbmVfdW5pdHRlc3QucHkKaW5k
ZXggOTM0YjljZWJiNGVhYjhjODY5MGFmZjM0NzUwYmZlOTZhZDJhNjk4My4uMWJhMTNiMWFiMTIy
NjJiMGJiMzdjYWViNDFiNTgyMWQ3NmEwNzhhMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9xdWV1ZWVuZ2luZV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lX3VuaXR0ZXN0LnB5CkBAIC0zMSw3ICsz
MSw3IEBAIGltcG9ydCBvcwogaW1wb3J0IHNodXRpbAogaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQg
dGhyZWFkaW5nCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QK
IAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJy
b3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRw
dXRDYXB0dXJlCkBAIC0xNjgsNyArMTY4LDcgQEAgY2xhc3MgUXVldWVFbmdpbmVUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9ub3coc2VsZik6CiAgICAgICAgICIiIk1ha2Ug
c3VyZSB0aGVyZSBhcmUgbm8gdHlwb3MgaW4gdGhlIFF1ZXVlRW5naW5lLm5vdygpIG1ldGhvZC4i
IiIKICAgICAgICAgZW5naW5lID0gUXVldWVFbmdpbmUoInRlc3QiLCBOb25lLCBOb25lKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShlbmdpbmUuX25vdygpLCBkYXRldGltZS5k
YXRldGltZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShlbmdpbmUuX25vdygpLCBk
YXRldGltZS5kYXRldGltZSkKIAogICAgIGRlZiB0ZXN0X3NsZWVwX21lc3NhZ2Uoc2VsZik6CiAg
ICAgICAgIGVuZ2luZSA9IFF1ZXVlRW5naW5lKCJ0ZXN0IiwgTm9uZSwgTm9uZSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qvc2hlcmlmZl91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qvc2hlcmlmZl91bml0dGVzdC5weQppbmRl
eCAwMmZjMDM2MDgzZGE4MjI5NmQ1ZGY1MjVlYjJkMDMzYWI2MGFlOTllLi5jZjk4OWM5Y2VmNGY0
YzgyODE4OGQxYWZlYTFkY2M0Zjg5NmIxNzhkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L3NoZXJpZmZfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9zaGVyaWZmX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1
bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1aWxkYm90
IGltcG9ydCBCdWlsZGVyCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVy
ZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CmluZGV4IDE0YmYyY2U1ZTQ1
MDY5ZWVkYzRmMWUxZTgyODQ5YThlYzYxYjZlNTcuLmNiZWMxMWNlNDNlZGM2ZTRmNjY2NGNkYWIw
NTQ0ZGQwZmMyNGJjZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVu
aXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0
Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5Lm1v
Y2sgaW1wb3J0IE1vY2sKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CmluZGV4
IDI3MTdlMDY3MmVkOTRiNDc4YTMyN2FkODJkMTU0MjBmM2RiYTFlMzQuLjVmMGI4MDZjYTM4ZTIy
ZGMxZjRhZWY4ODRmZDY3YjQzYjNlMzM2ZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91
bml0dGVzdC5weQpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAgIGV3cy5fZXhwZWN0ZWRfZmFpbHVyZXMudW5l
eHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCA9IGxhbWJkYSByZXN1bHRzOiBzZXQoWyJmb28uaHRt
bCIsICJiYXIuaHRtbCJdKQogICAgICAgICB0YXNrID0gTW9jaygpCiAgICAgICAgIHBhdGNoID0g
ZXdzLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChld3MuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCksICJOZXcgZmFp
bGluZyB0ZXN0czpcbmJhci5odG1sXG5mb28uaHRtbCIpCisgICAgICAgIHNlbGYuYXNzZXJ0TXVs
dGlMaW5lRXF1YWwoZXdzLl9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UodGFzaywgcGF0Y2gpLCAiTmV3
IGZhaWxpbmcgdGVzdHM6XG5iYXIuaHRtbFxuZm9vLmh0bWwiKQogCiAKIGNsYXNzIEVhcmx5V2Fy
bmluZ1N5dGVtVGVzdChRdWV1ZXNUZXN0KToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9wZXJmYWxpemVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3BlcmZhbGl6ZXJfdW5pdHRlc3QucHkKaW5kZXggZmVi
N2IwNWIzMWQzMWY2MThjY2ZhNzU2MGUzMzRjODNhODI3MzAwMC4uMTQyMTFlNDBiNDYzZWZmNzBi
Y2FkMjNiZWJmNGM3MjU3ODAwYmRmYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3BlcmZhbGl6ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3BlcmZhbGl6ZXJfdW5pdHRlc3QucHkKQEAgLTI2LDcg
KzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVz
dAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5u
ZXQuYnVpbGRib3QgaW1wb3J0IEJ1aWxkZXIKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5l
eGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzX3VuaXR0ZXN0LnB5CmluZGV4IDAyZmEwMzA3
OWRmMjYzZTUwNThiMjAwZTQ1Njk2ZjE0ZTc2ZTU1YmIuLjFmNGIzN2U2ODQyOTdiNjM2Yjk0Njdm
NDExYTJhZTVlYzVmNDk3MmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9xdWVyaWVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzX3VuaXR0ZXN0LnB5CkBAIC0yNyw3ICsyNyw3IEBACiAj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1
bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1
dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5i
dWd6aWxsYSBpbXBvcnQgQnVnemlsbGEKQEAgLTE3Myw3ICsxNzMsNyBAQCBjbGFzcyBQcmludEV4
cGVjdGF0aW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgY29tbWFuZC5l
eGVjdXRlKG9wdGlvbnMsIHRlc3RzLCB0b29sKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAg
ICAgc3Rkb3V0LCBfLCBfID0gb2MucmVzdG9yZV9vdXRwdXQoKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHN0ZG91dCwgZXhwZWN0ZWRfc3Rkb3V0KQorICAgICAgICBzZWxmLmFzc2VydE11bHRp
TGluZUVxdWFsKHN0ZG91dCwgZXhwZWN0ZWRfc3Rkb3V0KQogCiAgICAgZGVmIHRlc3RfYmFzaWMo
c2VsZik6CiAgICAgICAgIHNlbGYucnVuX3Rlc3QoWydmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0
bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCddLApAQCAtMjYzLDcgKzI2Myw3IEBA
IGNsYXNzIFByaW50QmFzZWxpbmVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNl
bGYuY2FwdHVyZV9vdXRwdXQoKQogICAgICAgICBjb21tYW5kLmV4ZWN1dGUoTW9ja09wdGlvbnMo
YWxsPUZhbHNlLCBpbmNsdWRlX3ZpcnR1YWxfdGVzdHM9RmFsc2UsIGNzdj1GYWxzZSwgcGxhdGZv
cm09Tm9uZSksIFsncGFzc2VzL3RleHQuaHRtbCddLCBzZWxmLnRvb2wpCiAgICAgICAgIHN0ZG91
dCwgXywgXyA9IHNlbGYucmVzdG9yZV9vdXRwdXQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHN0ZG91dCwKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChzdGRvdXQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgnLy8gRm9yIHRlc3Qtd2luLXhwXG4nCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAncGFzc2VzL3RleHQtZXhwZWN0ZWQucG5nXG4nCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAncGFzc2VzL3RleHQtZXhwZWN0ZWQudHh0XG4nKSkKQEAgLTI3NCw3
ICsyNzQsNyBAQCBjbGFzcyBQcmludEJhc2VsaW5lc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBzZWxmLmNhcHR1cmVfb3V0cHV0KCkKICAgICAgICAgY29tbWFuZC5leGVjdXRlKE1v
Y2tPcHRpb25zKGFsbD1GYWxzZSwgaW5jbHVkZV92aXJ0dWFsX3Rlc3RzPUZhbHNlLCBjc3Y9RmFs
c2UsIHBsYXRmb3JtPSd0ZXN0LXdpbi0qJyksIFsncGFzc2VzL3RleHQuaHRtbCddLCBzZWxmLnRv
b2wpCiAgICAgICAgIHN0ZG91dCwgXywgXyA9IHNlbGYucmVzdG9yZV9vdXRwdXQoKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHN0ZG91dCwKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVF
cXVhbChzdGRvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgnLy8gRm9yIHRlc3Qtd2lu
LXZpc3RhXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc2VzL3RleHQtZXhwZWN0
ZWQucG5nXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc2VzL3RleHQtZXhwZWN0
ZWQudHh0XG4nCkBAIC0yOTMsNiArMjkzLDYgQEAgY2xhc3MgUHJpbnRCYXNlbGluZXNUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5jYXB0dXJlX291dHB1dCgpCiAgICAgICAg
IGNvbW1hbmQuZXhlY3V0ZShNb2NrT3B0aW9ucyhhbGw9RmFsc2UsIHBsYXRmb3JtPScqeHAnLCBj
c3Y9VHJ1ZSwgaW5jbHVkZV92aXJ0dWFsX3Rlc3RzPUZhbHNlKSwgWydwYXNzZXMvdGV4dC5odG1s
J10sIHNlbGYudG9vbCkKICAgICAgICAgc3Rkb3V0LCBfLCBfID0gc2VsZi5yZXN0b3JlX291dHB1
dCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LAorICAgICAgICBzZWxmLmFzc2Vy
dE11bHRpTGluZUVxdWFsKHN0ZG91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCd0ZXN0
LXdpbi14cCxwYXNzZXMvdGV4dC5odG1sLE5vbmUscG5nLHBhc3Nlcy90ZXh0LWV4cGVjdGVkLnBu
ZyxOb25lXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGVzdC13aW4teHAscGFzc2Vz
L3RleHQuaHRtbCxOb25lLHR4dCxwYXNzZXMvdGV4dC1leHBlY3RlZC50eHQsTm9uZVxuJykpCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191
bml0dGVzdC5weQppbmRleCAxMGEwZmJkN2JjNWFhZDk5ZjAzYjVkM2M5NjI5MWNmZjkzNTg3YTM4
Li5hZjlmZDA0NzBlOTJjZmQwMzY4YjUyZDkzNmYwNjhkMTU1MmU2Mjg1IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3Qu
cHkKQEAgLTE1Niw3ICsxNTYsNyBAQCBjbGFzcyBBYnN0cmFjdFBhdGNoUXVldWVUZXN0KENvbW1h
bmRzVGVzdCk6CiAgICAgICAgIHF1ZXVlLmJpbmRfdG9fdG9vbCh0b29sKQogICAgICAgICBxdWV1
ZS5fb3B0aW9ucyA9IE1vY2soKQogICAgICAgICBxdWV1ZS5fb3B0aW9ucy5wb3J0ID0gTm9uZQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHF1ZXVlLl9uZXh0X3BhdGNoKCksIE5vbmUpCisgICAg
ICAgIHNlbGYuYXNzZXJ0SXNOb25lKHF1ZXVlLl9uZXh0X3BhdGNoKCkpCiAgICAgICAgIHRvb2wu
c3RhdHVzX3NlcnZlciA9IE1vY2tTdGF0dXNTZXJ2ZXIod29ya19pdGVtcz1bMiwgMTAwMDAsIDEw
MDAxXSkKICAgICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0gIk1PQ0s6IGZldGNoX2F0dGFjaG1lbnQ6
IDIgaXMgbm90IGEga25vd24gYXR0YWNobWVudCBpZFxuIiAgIyBBIG1vY2stb25seSBtZXNzYWdl
IHRvIHByZXZlbnQgdXMgZnJvbSBtYWtpbmcgbWlzdGFrZXMuCiAgICAgICAgIGV4cGVjdGVkX2xv
Z3MgPSAiTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IE5vbmUgMlxuIgpAQCAtMzgyLDkgKzM4Miw5
IEBAIE1PQ0s6IHVwZGF0ZV9zdGF0dXM6IGNvbW1pdC1xdWV1ZSBUZXN0cyBwYXNzZWQsIGJ1dCBj
b21taXQgZmFpbGVkIChjaGVja291dCBvdXQKICAgICAgICAgc3RhdGUgPSB7J3BhdGNoJzogTm9u
ZX0KICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHNlcXVlbmNl
LnJ1bl9hbmRfaGFuZGxlX2Vycm9ycywgW3Rvb2wsIG9wdGlvbnMsIHN0YXRlXSwgZXhwZWN0ZWRf
ZXhjZXB0aW9uPVRyeUFnYWluLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLnVwZGF0ZSwgVHJ1ZSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChvcHRpb25zLmJ1aWxkLCBGYWxzZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChvcHRpb25zLnRlc3QsIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3B0aW9ucy51
cGRhdGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucy5idWlsZCkKKyAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShvcHRpb25zLnRlc3QpCiAKICAgICBkZWYgdGVzdF9tYW51YWxfcmVq
ZWN0X2R1cmluZ19wcm9jZXNzaW5nKHNlbGYpOgogICAgICAgICBxdWV1ZSA9IFNlY29uZFRob3Vn
aHRzQ29tbWl0UXVldWUoTW9ja1Rvb2woKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXN0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3F1ZXVlc3Rlc3QucHkKaW5kZXggMGY3YzRlY2Q0MmYyNWJiN2ZjZWY4
OWQyYmViMWI1NzczMzYwYjQ0Ny4uYmU5ZjY5MzExZGQxOGY2YzE0ZDkwMDJmMWRkMzllODc5MGNm
MDczZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1
ZXVlc3Rlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1
ZXVlc3Rlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVnemlsbGEgaW1wb3J0IEF0dGFjaG1lbnQKIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJl
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNl
bGluZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9y
ZWJhc2VsaW5lX3VuaXR0ZXN0LnB5CmluZGV4IDQ1Y2E1ZTI4YjI3NDE2Zjk0ZjI5NmRiM2JmOTcy
MWU1OGNjZTY5OTIuLjQ2YjlmZmI2MTQ4MTIwNTIwNTA2MTZjZWIyYzdjY2MzNmQ0ZDdhYzkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5l
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9y
ZWJhc2VsaW5lX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQog
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5p
dHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0
IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmJhc2VsaW5lb3B0
aW1pemVyIGltcG9ydCBCYXNlbGluZU9wdGltaXplcgpAQCAtODMsMTUgKzgzLDE1IEBAIGNsYXNz
IFRlc3RSZWJhc2VsaW5lVGVzdChfQmFzZVRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2Jhc2Vs
aW5lX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAgY29tbWFuZCA9IHNlbGYuY29tbWFuZAotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1hbmQuX2Jhc2VsaW5lX2RpcmVjdG9yeSgiQXBwbGUg
V2luIFhQIERlYnVnIChUZXN0cykiKSwgIi9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi14cCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWFuZC5fYmFzZWxpbmVf
ZGlyZWN0b3J5KCJBcHBsZSBXaW4gNyBSZWxlYXNlIChUZXN0cykiKSwgIi9tb2NrLWNoZWNrb3V0
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29t
bWFuZC5fYmFzZWxpbmVfZGlyZWN0b3J5KCJBcHBsZSBMaW9uIFJlbGVhc2UgV0sxIChUZXN0cyki
KSwgIi9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uIikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21tYW5kLl9iYXNlbGluZV9kaXJlY3RvcnkoIkFwcGxlIExp
b24gUmVsZWFzZSBXSzIgKFRlc3RzKSIpLCAiL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWFuZC5fYmFzZWxp
bmVfZGlyZWN0b3J5KCJHVEsgTGludXggMzItYml0IFJlbGVhc2UiKSwgIi9tb2NrLWNoZWNrb3V0
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ayIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29t
bWFuZC5fYmFzZWxpbmVfZGlyZWN0b3J5KCJFRkwgTGludXggNjQtYml0IFJlbGVhc2UgV0syIiks
ICIvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syIikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tYW5kLl9iYXNlbGluZV9kaXJlY3RvcnkoIlF0IExpbnV4IFJl
bGVhc2UiKSwgIi9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0IikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21tYW5kLl9iYXNlbGluZV9kaXJlY3RvcnkoIldlYktpdCBN
YWMxMC43IiksICIvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1t
YWMtbGlvbiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWFuZC5fYmFzZWxpbmVfZGly
ZWN0b3J5KCJXZWJLaXQgTWFjMTAuNiIpLCAiL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkIikKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0
aUxpbmVFcXVhbChjb21tYW5kLl9iYXNlbGluZV9kaXJlY3RvcnkoIkFwcGxlIFdpbiBYUCBEZWJ1
ZyAoVGVzdHMpIiksICIvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4teHAi
KQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGNvbW1hbmQuX2Jhc2VsaW5lX2Rp
cmVjdG9yeSgiQXBwbGUgV2luIDcgUmVsZWFzZSAoVGVzdHMpIiksICIvbW9jay1jaGVja291dC9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4iKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVx
dWFsKGNvbW1hbmQuX2Jhc2VsaW5lX2RpcmVjdG9yeSgiQXBwbGUgTGlvbiBSZWxlYXNlIFdLMSAo
VGVzdHMpIiksICIvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbiIp
CisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoY29tbWFuZC5fYmFzZWxpbmVfZGly
ZWN0b3J5KCJBcHBsZSBMaW9uIFJlbGVhc2UgV0syIChUZXN0cykiKSwgIi9tb2NrLWNoZWNrb3V0
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIiKQorICAgICAgICBzZWxmLmFzc2VydE11bHRp
TGluZUVxdWFsKGNvbW1hbmQuX2Jhc2VsaW5lX2RpcmVjdG9yeSgiR1RLIExpbnV4IDMyLWJpdCBS
ZWxlYXNlIiksICIvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsiKQorICAg
ICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGNvbW1hbmQuX2Jhc2VsaW5lX2RpcmVjdG9y
eSgiRUZMIExpbnV4IDY0LWJpdCBSZWxlYXNlIFdLMiIpLCAiL21vY2stY2hlY2tvdXQvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsLXdrMiIpCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1
YWwoY29tbWFuZC5fYmFzZWxpbmVfZGlyZWN0b3J5KCJRdCBMaW51eCBSZWxlYXNlIiksICIvbW9j
ay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0
TXVsdGlMaW5lRXF1YWwoY29tbWFuZC5fYmFzZWxpbmVfZGlyZWN0b3J5KCJXZWJLaXQgTWFjMTAu
NyIpLCAiL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjLWxp
b24iKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGNvbW1hbmQuX2Jhc2VsaW5l
X2RpcmVjdG9yeSgiV2ViS2l0IE1hYzEwLjYiKSwgIi9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZCIpCiAKICAgICBkZWYgdGVzdF9yZWJh
c2VsaW5lX3VwZGF0ZXNfZXhwZWN0YXRpb25zX2ZpbGVfbm9vcChzZWxmKToKICAgICAgICAgc2Vs
Zi5femVyb19vdXRfdGVzdF9leHBlY3RhdGlvbnMoKQpAQCAtMTA1LDEyICsxMDUsMTIgQEAgQnVn
KEEpIFsgRGVidWcgXSA6IGZhc3QvY3NzL2xhcmdlLWxpc3Qtb2YtcnVsZXMtY3Jhc2guaHRtbCBb
IEZhaWx1cmUgXQogICAgICAgICBzZWxmLm9wdGlvbnMuc3VmZml4ZXMgPSAicG5nLHdhdix0eHQi
CiAgICAgICAgIHNlbGYuY29tbWFuZC5fcmViYXNlbGluZV90ZXN0X2FuZF91cGRhdGVfZXhwZWN0
YXRpb25zKHNlbGYub3B0aW9ucykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudG9v
bC53ZWIudXJsc19mZXRjaGVkLAorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2VsZi50
b29sLndlYi51cmxzX2ZldGNoZWQsCiAgICAgICAgICAgICBbc2VsZi5XRUJfUFJFRklYICsgJy91
c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0dWFsLnBuZycsCiAgICAgICAgICAgICAgc2VsZi5X
RUJfUFJFRklYICsgJy91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0dWFsLndhdicsCiAgICAg
ICAgICAgICAgc2VsZi5XRUJfUFJFRklYICsgJy91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0
dWFsLnR4dCddKQogICAgICAgICBuZXdfZXhwZWN0YXRpb25zID0gc2VsZi5fcmVhZChzZWxmLmxp
b25fZXhwZWN0YXRpb25zX3BhdGgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X2V4cGVj
dGF0aW9ucywgIiIiQnVnKEIpIFsgTWFjIExpbnV4IFhQIERlYnVnIF0gZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5odG1sIFsgUGFzcyBd
CisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwobmV3X2V4cGVjdGF0aW9ucywgIiIi
QnVnKEIpIFsgTWFjIExpbnV4IFhQIERlYnVnIF0gZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0
bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5odG1sIFsgUGFzcyBdCiBCdWcoQSkgWyBE
ZWJ1ZyBdIDogZmFzdC9jc3MvbGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sIFsgRmFpbHVy
ZSBdCiAiIiIpCiAKQEAgLTEyMSwxMiArMTIxLDEyIEBAIEJ1ZyhBKSBbIERlYnVnIF0gOiBmYXN0
L2Nzcy9sYXJnZS1saXN0LW9mLXJ1bGVzLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KICAgICAgICAg
c2VsZi5vcHRpb25zLnN1ZmZpeGVzID0gJ3BuZyx3YXYsdHh0JwogICAgICAgICBzZWxmLmNvbW1h
bmQuX3JlYmFzZWxpbmVfdGVzdF9hbmRfdXBkYXRlX2V4cGVjdGF0aW9ucyhzZWxmLm9wdGlvbnMp
CiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnRvb2wud2ViLnVybHNfZmV0Y2hlZCwK
KyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVk
LAogICAgICAgICAgICAgW3NlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10
ZXN0LWFjdHVhbC5wbmcnLAogICAgICAgICAgICAgIHNlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNj
cmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC53YXYnLAogICAgICAgICAgICAgIHNlbGYuV0VCX1BS
RUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC50eHQnXSkKICAgICAgICAg
bmV3X2V4cGVjdGF0aW9ucyA9IHNlbGYuX3JlYWQoc2VsZi5saW9uX2V4cGVjdGF0aW9uc19wYXRo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19leHBlY3RhdGlvbnMsICJCdWcoeCkgWyBN
b3VudGFpbkxpb24gU25vd0xlb3BhcmQgXSB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXVxuYnVnKHopIFsgTGludXggXSB1c2Vyc2NyaXB0cy9hbm90aGVy
LXRlc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXVxuIikKKyAgICAgICAgc2VsZi5hc3NlcnRN
dWx0aUxpbmVFcXVhbChuZXdfZXhwZWN0YXRpb25zLCAiQnVnKHgpIFsgTW91bnRhaW5MaW9uIFNu
b3dMZW9wYXJkIF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF1cbmJ1Zyh6KSBbIExpbnV4IF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF1cbiIpCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX2RvZXNfbm90
X2luY2x1ZGVfb3ZlcnJpZGVzKHNlbGYpOgogICAgICAgICBzZWxmLl93cml0ZShzZWxmLmxpb25f
ZXhwZWN0YXRpb25zX3BhdGgsICJCdWcoeCkgWyBNYWMgXSB1c2Vyc2NyaXB0cy9hbm90aGVyLXRl
c3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXVxuQnVnKHopIFsgTGludXggXSB1c2Vyc2NyaXB0
cy9hbm90aGVyLXRlc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXVxuIikKQEAgLTEzNiwyMyAr
MTM2LDIzIEBAIEJ1ZyhBKSBbIERlYnVnIF0gOiBmYXN0L2Nzcy9sYXJnZS1saXN0LW9mLXJ1bGVz
LWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KICAgICAgICAgc2VsZi5vcHRpb25zLnN1ZmZpeGVzID0g
J3BuZyx3YXYsdHh0JwogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdF9hbmRf
dXBkYXRlX2V4cGVjdGF0aW9ucyhzZWxmLm9wdGlvbnMpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLnRvb2wud2ViLnVybHNfZmV0Y2hlZCwKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVt
c0VxdWFsKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVkLAogICAgICAgICAgICAgW3NlbGYuV0VC
X1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC5wbmcnLAogICAgICAg
ICAgICAgIHNlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVh
bC53YXYnLAogICAgICAgICAgICAgIHNlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5v
dGhlci10ZXN0LWFjdHVhbC50eHQnXSkKIAogICAgICAgICBuZXdfZXhwZWN0YXRpb25zID0gc2Vs
Zi5fcmVhZChzZWxmLmxpb25fZXhwZWN0YXRpb25zX3BhdGgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobmV3X2V4cGVjdGF0aW9ucywgIkJ1Zyh4KSBbIE1vdW50YWluTGlvbiBTbm93TGVvcGFy
ZCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdXG5C
dWcoeikgWyBMaW51eCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdXG4iKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKG5ld19leHBl
Y3RhdGlvbnMsICJCdWcoeCkgWyBNb3VudGFpbkxpb24gU25vd0xlb3BhcmQgXSB1c2Vyc2NyaXB0
cy9hbm90aGVyLXRlc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXVxuQnVnKHopIFsgTGludXgg
XSB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXVxuIikK
IAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmVfdGVzdChzZWxmKToKICAgICAgICAgc2VsZi5jb21t
YW5kLl9yZWJhc2VsaW5lX3Rlc3QoIldlYktpdCBMaW51eCIsICJ1c2Vyc2NyaXB0cy9hbm90aGVy
LXRlc3QuaHRtbCIsIE5vbmUsICJ0eHQiLCBzZWxmLldFQl9QUkVGSVgpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2VsZi50b29sLndlYi51cmxzX2ZldGNoZWQsIFtzZWxmLldFQl9QUkVGSVgg
KyAnL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwudHh0J10pCisgICAgICAgIHNlbGYu
YXNzZXJ0SXRlbXNFcXVhbChzZWxmLnRvb2wud2ViLnVybHNfZmV0Y2hlZCwgW3NlbGYuV0VCX1BS
RUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC50eHQnXSkKIAogICAgIGRl
ZiB0ZXN0X3JlYmFzZWxpbmVfdGVzdF93aXRoX3Jlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgogICAg
ICAgICBzZWxmLl93cml0ZShzZWxmLmxpb25fZXhwZWN0YXRpb25zX3BhdGgsICJCdWcoeCkgWyBN
YWMgXSB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXVxu
YnVnKHopIFsgTGludXggXSB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXVxuIikKICAgICAgICAgc2VsZi5vcHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5ID0g
Jy90bXAnCiAgICAgICAgIHNlbGYuY29tbWFuZC5fcmViYXNlbGluZV90ZXN0X2FuZF91cGRhdGVf
ZXhwZWN0YXRpb25zKHNlbGYub3B0aW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxm
LnRvb2wud2ViLnVybHNfZmV0Y2hlZCwgWydmaWxlOi8vL3RtcC91c2Vyc2NyaXB0cy9hbm90aGVy
LXRlc3QtYWN0dWFsLnR4dCddKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2VsZi50
b29sLndlYi51cmxzX2ZldGNoZWQsIFsnZmlsZTovLy90bXAvdXNlcnNjcmlwdHMvYW5vdGhlci10
ZXN0LWFjdHVhbC50eHQnXSkKIAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmVfdGVzdF9hbmRfcHJp
bnRfc2NtX2NoYW5nZXMoc2VsZik6CiAgICAgICAgIHNlbGYuY29tbWFuZC5fcHJpbnRfc2NtX2No
YW5nZXMgPSBUcnVlCkBAIC0xNjEsMjAgKzE2MSwyMCBAQCBCdWcoQSkgWyBEZWJ1ZyBdIDogZmFz
dC9jc3MvbGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiAKICAgICAg
ICAgc2VsZi5jb21tYW5kLl9yZWJhc2VsaW5lX3Rlc3QoIldlYktpdCBMaW51eCIsICJ1c2Vyc2Ny
aXB0cy9hbm90aGVyLXRlc3QuaHRtbCIsIE5vbmUsICJ0eHQiLCBOb25lKQogCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5jb21tYW5kLl9zY21fY2hhbmdlcywgeydhZGQnOiBbJy9tb2Nr
LWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3VzZXJzY3JpcHRz
L2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQnXSwgJ2RlbGV0ZSc6IFtdfSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnREaWN0RXF1YWwoc2VsZi5jb21tYW5kLl9zY21fY2hhbmdlcywgeydhZGQnOiBbJy9t
b2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3VzZXJzY3Jp
cHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQnXSwgJ2RlbGV0ZSc6IFtdfSkKIAogICAgIGRl
ZiB0ZXN0X3JlYmFzZWxpbmVfYW5kX2NvcHlfdGVzdChzZWxmKToKICAgICAgICAgc2VsZi5fd3Jp
dGUoInVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQiLCAiZ2VuZXJpYyByZXN1
bHQiKQogCiAgICAgICAgIHNlbGYuY29tbWFuZC5fcmViYXNlbGluZV90ZXN0KCJXZWJLaXQgTWFj
MTAuNyIsICJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIsIFsiY2hyb21pdW0tbWFjLXNu
b3dsZW9wYXJkIl0sICJ0eHQiLCBOb25lKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vs
Zi5fcmVhZCgncGxhdGZvcm0vY2hyb21pdW0tbWFjLWxpb24vdXNlcnNjcmlwdHMvYW5vdGhlci10
ZXN0LWV4cGVjdGVkLnR4dCcpLCBzZWxmLk1PQ0tfV0VCX1JFU1VMVCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLl9yZWFkKCdwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQv
dXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCcpLCAnZ2VuZXJpYyByZXN1bHQn
KQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKHNlbGYuX3JlYWQoJ3BsYXRmb3Jt
L2Nocm9taXVtLW1hYy1saW9uL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQn
KSwgc2VsZi5NT0NLX1dFQl9SRVNVTFQpCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1
YWwoc2VsZi5fcmVhZCgncGxhdGZvcm0vY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkL3VzZXJzY3Jp
cHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQnKSwgJ2dlbmVyaWMgcmVzdWx0JykKIAogICAg
IGRlZiB0ZXN0X3JlYmFzZWxpbmVfYW5kX2NvcHlfdGVzdF9ub19leGlzdGluZ19yZXN1bHQoc2Vs
Zik6CiAgICAgICAgIHNlbGYuY29tbWFuZC5fcmViYXNlbGluZV90ZXN0KCJXZWJLaXQgTWFjMTAu
NyIsICJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIsIFsiY2hyb21pdW0tbWFjLXNub3ds
ZW9wYXJkIl0sICJ0eHQiLCBOb25lKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5f
cmVhZCgncGxhdGZvcm0vY2hyb21pdW0tbWFjLWxpb24vdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0
LWV4cGVjdGVkLnR4dCcpLCBzZWxmLk1PQ0tfV0VCX1JFU1VMVCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRNdWx0aUxpbmVFcXVhbChzZWxmLl9yZWFkKCdwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtbGlvbi91
c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0JyksIHNlbGYuTU9DS19XRUJfUkVT
VUxUKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYudG9vbC5maWxlc3lzdGVtLmV4aXN0
cyhzZWxmLl9leHBhbmQoJ3BsYXRmb3JtL2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZC91c2Vyc2Ny
aXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0JykpKQogCiAgICAgZGVmIHRlc3RfcmViYXNl
bGluZV9hbmRfY29weV90ZXN0X3dpdGhfbGlvbl9yZXN1bHQoc2VsZik6CkBAIC0xODIsOSArMTgy
LDkgQEAgQnVnKEEpIFsgRGVidWcgXSA6IGZhc3QvY3NzL2xhcmdlLWxpc3Qtb2YtcnVsZXMtY3Jh
c2guaHRtbCBbIEZhaWx1cmUgXQogCiAgICAgICAgIHNlbGYuY29tbWFuZC5fcmViYXNlbGluZV90
ZXN0KCJXZWJLaXQgTWFjMTAuNyIsICJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIsIFsi
Y2hyb21pdW0tbWFjLXNub3dsZW9wYXJkIl0sICJ0eHQiLCBzZWxmLldFQl9QUkVGSVgpCiAKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnRvb2wud2ViLnVybHNfZmV0Y2hlZCwgW3NlbGYu
V0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC50eHQnXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9yZWFkKCJwbGF0Zm9ybS9jaHJvbWl1bS1tYWMt
c25vd2xlb3BhcmQvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCIpLCAib3Jp
Z2luYWwgbGlvbiByZXN1bHQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX3JlYWQo
InBsYXRmb3JtL2Nocm9taXVtLW1hYy1saW9uL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBl
Y3RlZC50eHQiKSwgc2VsZi5NT0NLX1dFQl9SRVNVTFQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXRl
bXNFcXVhbChzZWxmLnRvb2wud2ViLnVybHNfZmV0Y2hlZCwgW3NlbGYuV0VCX1BSRUZJWCArICcv
dXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC50eHQnXSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRNdWx0aUxpbmVFcXVhbChzZWxmLl9yZWFkKCJwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25vd2xl
b3BhcmQvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCIpLCAib3JpZ2luYWwg
bGlvbiByZXN1bHQiKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKHNlbGYuX3Jl
YWQoInBsYXRmb3JtL2Nocm9taXVtLW1hYy1saW9uL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1l
eHBlY3RlZC50eHQiKSwgc2VsZi5NT0NLX1dFQl9SRVNVTFQpCiAKICAgICBkZWYgdGVzdF9yZWJh
c2VsaW5lX2FuZF9jb3B5X25vX292ZXJ3cml0ZV90ZXN0KHNlbGYpOgogICAgICAgICBzZWxmLl93
cml0ZSgicGxhdGZvcm0vY2hyb21pdW0tbWFjLWxpb24vdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0
LWV4cGVjdGVkLnR4dCIsICJvcmlnaW5hbCBsaW9uIHJlc3VsdCIpCkBAIC0xOTIsOCArMTkyLDgg
QEAgQnVnKEEpIFsgRGVidWcgXSA6IGZhc3QvY3NzL2xhcmdlLWxpc3Qtb2YtcnVsZXMtY3Jhc2gu
aHRtbCBbIEZhaWx1cmUgXQogCiAgICAgICAgIHNlbGYuY29tbWFuZC5fcmViYXNlbGluZV90ZXN0
KCJXZWJLaXQgTWFjMTAuNyIsICJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIsIFsiY2hy
b21pdW0tbWFjLXNub3dsZW9wYXJkIl0sICJ0eHQiLCBOb25lKQogCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc2VsZi5fcmVhZCgicGxhdGZvcm0vY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkL3Vz
ZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQiKSwgIm9yaWdpbmFsIHNub3dsZW9w
YXJkIHJlc3VsdCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fcmVhZCgicGxhdGZv
cm0vY2hyb21pdW0tbWFjLWxpb24vdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4
dCIpLCBzZWxmLk1PQ0tfV0VCX1JFU1VMVCkKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVF
cXVhbChzZWxmLl9yZWFkKCJwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQvdXNlcnNj
cmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCIpLCAib3JpZ2luYWwgc25vd2xlb3BhcmQg
cmVzdWx0IikKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChzZWxmLl9yZWFkKCJw
bGF0Zm9ybS9jaHJvbWl1bS1tYWMtbGlvbi91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0
ZWQudHh0IiksIHNlbGYuTU9DS19XRUJfUkVTVUxUKQogCiAgICAgZGVmIHRlc3RfcmViYXNlbGlu
ZV90ZXN0X2ludGVybmFsX3dpdGhfbW92ZV9vdmVyd3JpdHRlbl9iYXNlbGluZXNfdG8oc2VsZik6
CiAgICAgICAgIHNlbGYudG9vbC5leGVjdXRpdmUgPSBNb2NrRXhlY3V0aXZlMigpCkBAIC0yMjAs
OCArMjIwLDggQEAgQnVnKEEpIFsgRGVidWcgXSA6IGZhc3QvY3NzL2xhcmdlLWxpc3Qtb2YtcnVs
ZXMtY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQogICAgICAgICAgICAgb3V0LCBfLCBfID0gb2MucmVz
dG9yZV9vdXRwdXQoKQogICAgICAgICAgICAgYnVpbGRlcnMuX2V4YWN0X21hdGNoZXMgPSBvbGRf
ZXhhY3RfbWF0Y2hlcwogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fcmVhZChzZWxm
LnRvb2wuZmlsZXN5c3RlbS5qb2luKHBvcnQubGF5b3V0X3Rlc3RzX2RpcigpLCAncGxhdGZvcm0v
dGVzdC1tYWMtbGVvcGFyZC9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1leHBlY3RlZC50eHQnKSks
ICdvcmlnaW5hbCBzbm93bGVvcGFyZCByZXN1bHQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG91dCwgJ3siYWRkIjogW119XG4nKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFs
KHNlbGYuX3JlYWQoc2VsZi50b29sLmZpbGVzeXN0ZW0uam9pbihwb3J0LmxheW91dF90ZXN0c19k
aXIoKSwgJ3BsYXRmb3JtL3Rlc3QtbWFjLWxlb3BhcmQvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2Ut
ZXhwZWN0ZWQudHh0JykpLCAnb3JpZ2luYWwgc25vd2xlb3BhcmQgcmVzdWx0JykKKyAgICAgICAg
c2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChvdXQsICd7ImFkZCI6IFtdfVxuJykKIAogCiBjbGFz
cyBUZXN0UmViYXNlbGluZUpzb24oX0Jhc2VUZXN0Q2FzZSk6CkBAIC0zMzUsOCArMzM1LDggQEAg
Y2xhc3MgVGVzdFJlYmFzZWxpbmVFeHBlY3RhdGlvbnMoX0Jhc2VUZXN0Q2FzZSk6CiAKICAgICAg
ICAgIyBGSVhNRTogY2hhbmdlIHRoaXMgdG8gdXNlIHRoZSB0ZXN0LSBwb3J0cy4KICAgICAgICAg
Y2FsbHMgPSBmaWx0ZXIobGFtYmRhIHg6IHggIT0gWydxbWFrZScsICctdiddLCBzZWxmLnRvb2wu
ZXhlY3V0aXZlLmNhbGxzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKGNhbGxzKSA9PSAx
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKGNhbGxzWzBdKSA9PSAzNikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsZW4oY2FsbHMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxlbihjYWxsc1swXSksIDM2KQogCiAgICAgZGVmIHRlc3RfcmViYXNlbGluZV9leHBlY3RhdGlv
bnNfbm9vcChzZWxmKToKICAgICAgICAgc2VsZi5femVyb19vdXRfdGVzdF9leHBlY3RhdGlvbnMo
KQpAQCAtMzYyLDcgKzM2Miw3IEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lRXhwZWN0YXRpb25zKF9C
YXNlVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAnQnVnKHkpIHVzZXJzY3Jp
cHRzL3Rlc3QuaHRtbCBbIENyYXNoIF1cbicpfQogICAgICAgICBzZWxmLl93cml0ZSgnL3VzZXJz
Y3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJywgJycpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLmNvbW1hbmQuX3Rlc3RzX3RvX3JlYmFzZWxpbmUoc2VsZi5saW9uX3BvcnQpLCB7J3Vz
ZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJzogc2V0KFsncG5nJywgJ3R4dCcsICd3YXYnXSl9
KQorICAgICAgICBzZWxmLmFzc2VydERpY3RFcXVhbChzZWxmLmNvbW1hbmQuX3Rlc3RzX3RvX3Jl
YmFzZWxpbmUoc2VsZi5saW9uX3BvcnQpLCB7J3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1s
Jzogc2V0KFsncG5nJywgJ3R4dCcsICd3YXYnXSl9KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuX3JlYWQoc2VsZi5saW9uX2V4cGVjdGF0aW9uc19wYXRoKSwgJycpCiAKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JvbGxfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcm9sbF91bml0dGVzdC5w
eQppbmRleCBiZjI5OTY0MmIxYzIxZTdhZWEwZTcyYWY5NTIyZGMyOWI2ZmI0Y2YzLi5lMWNjYzM4
ZWY5ZmY0YjZjMzViY2UzMWZhZjY0YzQyM2IyMWE2ZmJjIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcm9sbF91bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcm9sbF91bml0dGVzdC5weQpAQCAtNTcsNyAr
NTcsNyBAQCBjbGFzcyBQb3N0Um9sbENvbW1hbmRzVGVzdChDb21tYW5kc1Rlc3QpOgogICAgICAg
ICBvcHRpb25zID0gTW9ja09wdGlvbnMoKQogICAgICAgICB0b29sID0gTW9ja1Rvb2woKQogICAg
ICAgICBsa2dyX3N0YXRlID0gcG9zdHJvbGwuX3ByZXBhcmVfc3RhdGUob3B0aW9ucywgW05vbmUs
ICJsYXN0LWtub3duIGdvb2QgcmV2aXNpb24iXSwgdG9vbCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChOb25lLCBsa2dyX3N0YXRlWyJjaHJvbWl1bV9yZXZpc2lvbiJdKQorICAgICAgICBzZWxm
LmFzc2VydElzTm9uZShsa2dyX3N0YXRlWyJjaHJvbWl1bV9yZXZpc2lvbiJdKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCJSb2xsIENocm9taXVtIERFUFMgdG8gbGFzdC1rbm93biBnb29kIHJl
dmlzaW9uIiwgbGtncl9zdGF0ZVsiYnVnX3RpdGxlIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoIlVucmV2aWV3ZWQuICBSb2xsZWQgREVQUy5cblxuIiwgbGtncl9zdGF0ZVsiY2hhbmdlbG9n
X21lc3NhZ2UiXSkKICAgICAgICAgcmV2aXNpb25fc3RhdGUgPSBwb3N0cm9sbC5fcHJlcGFyZV9z
dGF0ZShvcHRpb25zLCBbIjEyMzQiLCAicjEyMzQiLCAidGVzdCBtZXNzYWdlIl0sIHRvb2wpCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvZ3JhbW1hcl91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ncmFtbWFyX3VuaXR0ZXN0LnB5CmluZGV4
IGFmYzY3ZGIxOWIzOGI4ZDU1NmQ3MTE1ZmUwZmQ1ZjkxYzM1MGI1OTguLmRkODA4MWYzMjBlNzUw
MDZjODUxZDJkYTIwZDRjOWU1NWI1MmY4ZTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ncmFtbWFyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ncmFtbWFyX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIg
YXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS50b29sLmdyYW1tYXIgaW1wb3J0IGpvaW5fd2l0
aF9zZXBhcmF0b3JzCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9t
b2NrdG9vbF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9v
bF91bml0dGVzdC5weQppbmRleCA1MTE3OTA5MWY2M2NlOWY0MmM1YmMyOTlkNTRjMWIwNzM4OTQ1
ZTI3Li4zNWZkZDNhYWM2ZTQ1NDY5Yjg5MTJhNzMzMWFhYjY1ZDM1MGZjODM0IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2xfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sX3VuaXR0ZXN0LnB5CkBAIC0yNiw3
ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRl
c3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSBtb2NrdG9vbCBpbXBvcnQg
TW9ja09wdGlvbnMKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL211
bHRpY29tbWFuZHRvb2xfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
bXVsdGljb21tYW5kdG9vbF91bml0dGVzdC5weQppbmRleCBhMDFlNmFkZDE5MGRlNzBjYTdhNjQx
MGU3MmIzMWZiNzI1ZjQyNjhjLi43MjMwMjM1YTY5MGViNTk3MWZmMWEyNDljZmQ1M2ZhZjkyMGVl
YjNmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbXVsdGljb21tYW5k
dG9vbF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbXVsdGlj
b21tYW5kdG9vbF91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiBpbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRl
c3QKIAogZnJvbSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9vcHRpb24KIApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVy
X3VuaXR0ZXN0LnB5CmluZGV4IDQzOGNjMDU4M2JlMDM0ODIzYzFmZjlhNjVmMTYwMmQ4MDFjN2Mx
YjkuLjQ1YmQ0ZWU1YmRmZmYzNjQ5NmRkZWNkMWNiNmFlZjQzM2Y3M2JmNDQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlcl91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5p
bmdzZXJ2ZXJfdW5pdHRlc3QucHkKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW1wb3J0IGpzb24KIGlt
cG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAog
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0
Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfY29uZmlndXJh
dGlvbiBpbXBvcnQgKgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHkKaW5kZXggZjVjMWNi
ZjVlMTM1YWUxYzliYTBhZTlhM2VhYzA5MGI4ZTBkYjliYS4uZmQxOWM0ZDQ3MDBiMWE3MzMyNWNm
OTA1NDU3NjJhMTNhZWEyZDc2NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5CkBA
IC0yNyw3ICsyNyw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBqc29uCi1pbXBvcnQgdW5p
dHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21t
b24ubmV0IGltcG9ydCByZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdAogZnJvbSB3ZWJraXRweS5j
b21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdApAQCAtMjExLDcgKzIxMSw3IEBAIGNsYXNz
IFJlYmFzZWxpbmVUZXN0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlcnZlci5f
dGVzdF9jb25maWcgPSBnZXRfdGVzdF9jb25maWcoKQogICAgICAgICBzZXJ2ZXIuX2dhdGhlcl9i
YXNlbGluZXMocmVzdWx0c19qc29uKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdHNf
anNvblsndGVzdHMnXVsnc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURyb3BTaGFkb3dFbGVtZW50
LWRvbS1zdGREZXZpYXRpb24tYXR0ci5odG1sJ11bJ3N0YXRlJ10sICduZWVkc19yZWJhc2VsaW5l
JykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgncHJvdG90eXBlLWNob2NvbGF0ZS5odG1sJyBp
biByZXN1bHRzX2pzb25bJ3Rlc3RzJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ3Byb3Rv
dHlwZS1jaG9jb2xhdGUuaHRtbCcsIHJlc3VsdHNfanNvblsndGVzdHMnXSkKIAogICAgIGRlZiBf
YXNzZXJ0UmViYXNlbGluZShzZWxmLCB0ZXN0X2ZpbGVzLCByZXN1bHRzX2ZpbGVzLCB0ZXN0X25h
bWUsIGJhc2VsaW5lX3RhcmdldCwgYmFzZWxpbmVfbW92ZV90bywgZXhwZWN0ZWRfc3VjY2Vzcywg
ZXhwZWN0ZWRfbG9nKToKICAgICAgICAgbG9nID0gW10KQEAgLTIzNCw3ICsyMzQsNyBAQCBjbGFz
cyBHZXRBY3R1YWxSZXN1bHRGaWxlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAg
ICAgJ2Zhc3QvdGV4dDItYWN0dWFsLnR4dCcsCiAgICAgICAgICAgICAnZmFzdC90ZXh0LW5vdGFj
dHVhbC50eHQnLAogICAgICAgICApKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAg
ICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoCiAgICAgICAgICAgICAoJ3RleHQtYWN0dWFsLnR4dCcs
KSwKICAgICAgICAgICAgIHJlYmFzZWxpbmVzZXJ2ZXIuX2dldF9hY3R1YWxfcmVzdWx0X2ZpbGVz
KAogICAgICAgICAgICAgICAgICdmYXN0L3RleHQuaHRtbCcsIHRlc3RfY29uZmlnKSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL3JlZmxlY3Rpb25oYW5k
bGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvcmVm
bGVjdGlvbmhhbmRsZXJfdW5pdHRlc3QucHkKaW5kZXggZDI2OWRmY2Y1MDNiNmViNTIzMmExZjZk
YjFkMmY3ZDQ0OWIyMDkwNC4uZTFkNTYyMzY0ZmVjNTY5YWI4M2FiODc5OTY4NDYwYzIwN2IzOWRm
YyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvcmVmbGVj
dGlvbmhhbmRsZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3NlcnZlcnMvcmVmbGVjdGlvbmhhbmRsZXJfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAK
ICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0
IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LnRvb2wuc2VydmVycy5yZWZs
ZWN0aW9uaGFuZGxlciBpbXBvcnQgUmVmbGVjdGlvbkhhbmRsZXIKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBl
Zm9ycG5nX3VuaXR0ZXN0LnB5CmluZGV4IDlmYWI2ZjQzODY1MTdjZDc0ZTJlNDllYjZhNjE2ZGJm
ZDcxYzUwZDYuLjEyYmUwYmVlMmI0ZjlkYjdhZDMyZTUwZTkzZmZkMzI4N2QyNDgxMzMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZv
cnBuZ191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
YWRkc3ZubWltZXR5cGVmb3JwbmdfdW5pdHRlc3QucHkKQEAgLTIxLDcgKzIxLDcgQEAKICMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0
ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWRkc3ZubWltZXR5
cGVmb3JwbmcgaW1wb3J0IEFkZFN2bk1pbWV0eXBlRm9yUG5nCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FwcGx5d2F0Y2hsaXN0X3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FwcGx5d2F0Y2hsaXN0
X3VuaXR0ZXN0LnB5CmluZGV4IGE5NzhmNDE2NDg1MmNlYWRlYzg1ZmZkMjcwNDZhMmE3MzhjYjY4
MGYuLmE3NDBjM2QzY2ZhOTM4YzQwNzYzOTJjZTVhNTUzN2E4N2Y3MDM0NDAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hcHBseXdhdGNobGlzdF91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYXBwbHl3YXRjaGxp
c3RfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAog
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0
Q2FwdHVyZQogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucywg
TW9ja1Rvb2wKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9j
bGVhbndvcmtpbmdkaXJlY3RvcnlfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvY2xlYW53b3JraW5nZGlyZWN0b3J5X3VuaXR0ZXN0LnB5CmluZGV4IDFhMjA5
M2RmMmE0OTlhODU1NDg2YzdkNTBiNWJlNTM1MDhiODViZWUuLjdlMzFhOWJkODgxOTBhZTllNmY3
YjZiYmQxOTVhZmVmNjVkNThhOWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9jbGVhbndvcmtpbmdkaXJlY3RvcnlfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NsZWFud29ya2luZ2RpcmVjdG9yeV91bml0dGVz
dC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Vi
a2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9j
a3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2Nsb3NlYnVnZm9ybGFuZGRpZmZfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2xvc2VidWdmb3JsYW5kZGlmZl91
bml0dGVzdC5weQppbmRleCA2OTY5YzRlOWEyMzBlNDQ3ZmZkODA1YmI1ZWY2MjNiNmJkNDkyNDEy
Li5iMDQyZDQyNTgwNGFlODI3MDE5NGZiZDJlNjc5YWIzOWQyMzY2OTk1IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2xvc2VidWdmb3JsYW5kZGlmZl91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2xvc2VidWdm
b3JsYW5kZGlmZl91bml0dGVzdC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVu
aXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9y
dCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tP
cHRpb25zLCBNb2NrVG9vbApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2NvbW1pdF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9jb21taXRfdW5pdHRlc3QucHkKaW5kZXggOTM2ZTNlYmFiYjJlZGFiMzBjYTg1ZjAyMDZh
YjExY2EyNjEwMTFmMi4uYzZiNzZiNDI4ZWY3ODRhYTcyY2UwMDlmNjcyZGVhMGQ0YWViNGY5OCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NvbW1pdF91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY29tbWl0X3Vu
aXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1
cmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVy
cm9yCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvZGlzY2Fy
ZGxvY2FsY2hhbmdlc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9kaXNjYXJkbG9jYWxjaGFuZ2VzX3VuaXR0ZXN0LnB5CmluZGV4IDZmOGY0MmM1YThjMDll
MjdiZGFkMjE5YjA4MTIyNzE0YjE3OTY3NmYuLmQzOGZjOTI2YzMyNTQzYjdjODk5NTRhNjdhNjFh
MDY4MzUwMTRkN2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9kaXNjYXJkbG9jYWxjaGFuZ2VzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9kaXNjYXJkbG9jYWxjaGFuZ2VzX3VuaXR0ZXN0LnB5CkBAIC0yNiw3
ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRl
c3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS50aGlyZHBh
cnR5Lm1vY2sgaW1wb3J0IE1vY2sKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQg
TW9ja09wdGlvbnMsIE1vY2tUb29sCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CmluZGV4IGZj
MzFkMWZhOTZlM2Y0ZjhjYzU2YjM1YzZhY2JmZDQ4NTZiODNhMzAuLjgxMWExNDg2OTRhZDkxYmJm
ZDMwNDUyMGM1NDQ2ZjY5YjRhYWJmNzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CkBA
IC0yNyw3ICsyNyw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBvcwotaW1wb3J0IHVuaXR0
ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKICMgRG8gbm90IGltcG9ydCBjaGFu
Z2Vsb2dfdW5pdHRlc3QuQ2hhbmdlTG9nVGVzdCBkaXJlY3RseSBhcyB0aGF0IHdpbGwgY2F1c2Ug
aXQgdG8gYmUgcnVuIGFnYWluLgogZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQgaW1wb3J0
IGNoYW5nZWxvZ191bml0dGVzdApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dmb3JyZXZlcnRfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ2ZvcnJldmVydF91bml0
dGVzdC5weQppbmRleCBiODJjYjRhYTIyYjNjZGNjZjBkYTQ0MDc2YzNjNTY4OGZlMzA1NDk3Li5h
MDE3OTg4YTJkZDEzMjBkODBiMzMxNDljY2U3MDYyYzE5YjZjZmQ3IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ2ZvcnJldmVydF91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFy
ZWNoYW5nZWxvZ2ZvcnJldmVydF91bml0dGVzdC5weQpAQCAtMjksNyArMjksNyBAQAogaW1wb3J0
IGNvZGVjcwogaW1wb3J0IG9zCiBpbXBvcnQgdGVtcGZpbGUKLWltcG9ydCB1bml0dGVzdAoraW1w
b3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiAjIERvIG5vdCBpbXBvcnQgY2hhbmdlbG9nX3Vu
aXR0ZXN0LkNoYW5nZUxvZ1Rlc3QgZGlyZWN0bHkgYXMgdGhhdCB3aWxsIGNhdXNlIGl0IHRvIGJl
IHJ1biBhZ2Fpbi4KIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0IGltcG9ydCBjaGFuZ2Vs
b2dfdW5pdHRlc3QKQEAgLTExNSw4ICsxMTUsOCBAQCBjbGFzcyBVcGRhdGVDaGFuZ2VMb2dzRm9y
UmV2ZXJ0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGNoYW5nZWxvZy51cGRhdGVf
d2l0aF91bnJldmlld2VkX21lc3NhZ2UoUHJlcGFyZUNoYW5nZUxvZ0ZvclJldmVydC5fbWVzc2Fn
ZV9mb3JfcmV2ZXJ0KCphcmdzKSkKICAgICAgICAgYWN0dWFsX2VudHJ5ID0gY2hhbmdlbG9nLmxh
dGVzdF9lbnRyeSgpCiAgICAgICAgIG9zLnJlbW92ZShjaGFuZ2Vsb2dfcGF0aCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfZW50cnkuY29udGVudHMoKSwgZXhwZWN0ZWRfZW50cnkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2VudHJ5LnJldmlld2VyX3RleHQoKSwg
Tm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChhY3R1YWxfZW50cnkuY29u
dGVudHMoKSwgZXhwZWN0ZWRfZW50cnkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGFjdHVh
bF9lbnRyeS5yZXZpZXdlcl90ZXh0KCkpCiAgICAgICAgICMgVGhlc2UgY2hlY2tzIGNvdWxkIGJl
IHJlbW92ZWQgdG8gYWxsb3cgdGhpcyB0byB3b3JrIG9uIG90aGVyIGVudHJpZXM6CiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2VudHJ5LmF1dGhvcl9uYW1lKCksICJFcmljIFNlaWRl
bCIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2VudHJ5LmF1dGhvcl9lbWFpbCgp
LCAiZXJpY0B3ZWJraXQub3JnIikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weQppbmRleCA5Njc1ODVjMDUyYTI4ZmM5ZDVj
Y2ZhYTU1MDAyOTYxZTY0MWNiMTVlLi5iMzE1MWU4NWNhYzY3ZmRkODEwNzc5OGQ4OWVmZTEzN2Fk
Mjg1ODNkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVu
dGVzdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3J1bnRlc3RzX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQog
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5p
dHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0
IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09w
dGlvbnMsIE1vY2tUb29sCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvc3RlcHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvc3RlcHNfdW5pdHRlc3QucHkKaW5kZXggNDFjNzk4MzU0NTgyMjM3YTRhZmY3OTNhYWIxNTdk
ODlhZGU5MGMwMi4uNDhlZTI2ZmEyYzdmODNhYjY2NjU2MDRkNDBlMTg3ZDY1N2Q1MmU3NCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVz
dC5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAot
aW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CiAKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcucG9ydHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3VnZ2VzdHJldmll
d2Vyc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdWdn
ZXN0cmV2aWV3ZXJzX3VuaXR0ZXN0LnB5CmluZGV4IDQyMjU0Yzg2YmQ5NmZhZTZkMTllODllNWJm
MzA4YWY2ZWYwMGMzYTIuLmZjMDk2ZjExODdlNmMyZWY1NjBhOTNkMGQ3YmJiN2Q0NTRhM2MwN2Qg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdWdnZXN0cmV2
aWV3ZXJzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9zdWdnZXN0cmV2aWV3ZXJzX3VuaXR0ZXN0LnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVz
dDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1
cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBv
cnQgTW9ja09wdGlvbnMsIE1vY2tUb29sCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvdXBkYXRlX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3VwZGF0ZV91bml0dGVzdC5weQppbmRleCBjMWE5MzRkYjVmNmM4MzdmOTdm
MDZiMjViM2JmMGM2YzFhZDI3MDNjLi4wODY2YzRiN2RmNjQ3YzE4ZjE1YjZiZGFkM2FiMzI0YWU4
N2E1ZWY3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvdXBk
YXRlX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy91
cGRhdGVfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVz
dAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcucG9ydHMgaW1wb3J0IENocm9taXVtUG9y
dCwgQ2hyb21pdW1BbmRyb2lkUG9ydCwgQ2hyb21pdW1YVkZCUG9ydAogZnJvbSB3ZWJraXRweS50
b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucywgTW9ja1Rvb2wKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy91cGRhdGVjaGFuZ2Vsb2dzd2l0aHJldmll
d191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy91cGRhdGVj
aGFuZ2Vsb2dzd2l0aHJldmlld191bml0dGVzdC5weQppbmRleCAzMTgyY2YzYWI5YmUxMWE4ZTkz
ODQ2NDQyZTUyNDBlNDk1NDdkZjRmLi5kNDMzZTNmMjEyOTdkOGFkZDk4Njc2ZTFmMWU2M2VkZWVh
NTYzMjM5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvdXBk
YXRlY2hhbmdlbG9nc3dpdGhyZXZpZXdfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3VwZGF0ZWNoYW5nZWxvZ3N3aXRocmV2aWV3X3VuaXR0ZXN0LnB5
CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBv
cnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20g
d2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMsIE1vY2tUb29sCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvdmFsaWRhdGVjaGFuZ2Vs
b2dzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ZhbGlk
YXRlY2hhbmdlbG9nc191bml0dGVzdC5weQppbmRleCBjM2I3MjNlZDE3MjhlZWFlZTZmYjFkNjBk
YTNiYTY3ZTc3MTcwZjRiLi44YTIzYmU0OWI0NTM4ZTE1ZmM0ZTRiY2NlYjg3Y2IwMWI1ZjMwOGJm
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvdmFsaWRhdGVj
aGFuZ2Vsb2dzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy92YWxpZGF0ZWNoYW5nZWxvZ3NfdW5pdHRlc3QucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVu
aXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0
Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5Lm1v
Y2sgaW1wb3J0IE1vY2sK
</data>

          </attachment>
      

    </bug>

</bugzilla>