<?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>119446</bug_id>
          
          <creation_ts>2013-08-02 08:24:26 -0700</creation_ts>
          <short_desc>[GTK] Parse Valgrind xml leak files</short_desc>
          <delta_ts>2014-01-14 05:57:19 -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>
          <dependson>118785</dependson>
    
    <dependson>126655</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Brian Holt">brian.holt</reporter>
          <assigned_to name="Brian Holt">brian.holt</assigned_to>
          <cc>alex</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dpranke</cc>
    
    <cc>glenn</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>rniwa</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>914158</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-08-02 08:24:26 -0700</bug_when>
    <thetext>Implement the parsing of the xml files that are generated by Valgrind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914170</commentid>
    <comment_count>1</comment_count>
      <attachid>208024</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-08-02 09:12:38 -0700</bug_when>
    <thetext>Created attachment 208024
Parse Valgrind XML files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914172</commentid>
    <comment_count>2</comment_count>
      <attachid>208025</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-08-02 09:16:56 -0700</bug_when>
    <thetext>Created attachment 208025
Diff of common.py with Chromium trunk

This is a diff (without whitespace) of common.py which has been taken from Chromium.  The code has been reformatted to PEP8/pylint and the LICENSE file has been inserted at the top of the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914173</commentid>
    <comment_count>3</comment_count>
      <attachid>208026</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-08-02 09:20:38 -0700</bug_when>
    <thetext>Created attachment 208026
Diff of gdb_helper.py with Chromium trunk

As above, code has been reformatted to PEP8/pylint and the LICENSE file has been inserted at the top of the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914175</commentid>
    <comment_count>4</comment_count>
      <attachid>208027</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-08-02 09:25:45 -0700</bug_when>
    <thetext>Created attachment 208027
Diff of memcheck_analyze.py with Chromium trunk

As above the code has been reformatted to PEP8/pylint.  There are 2 non-cosmetic changes to this file:

1) a hunk to make suppressions platform dependent has been removed because it was found to break the parsing of suppressions.

2) Leaks_StillReachable, InvalidWrite and InvalidRead are explicitly excluded from the report (these can be added in at a later stage if deemed interesting).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914492</commentid>
    <comment_count>5</comment_count>
      <attachid>208024</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-08-04 17:13:29 -0700</bug_when>
    <thetext>Comment on attachment 208024
Parse Valgrind XML files

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

Quick informal review. Mostly coding style issues and some small issues

&gt; Tools/Scripts/webkitpy/port/common.py:37
&gt; +import logging
&gt; +import platform
&gt; +import os
&gt; +import signal
&gt; +import subprocess
&gt; +import sys
&gt; +import time

Please use alphabetical order

&gt; Tools/Scripts/webkitpy/port/common.py:39
&gt; +

Extra line

&gt; Tools/Scripts/webkitpy/port/common.py:43
&gt; +
&gt; +

Two empty lines here, while one would be enough between definitions. Please fix all across the file (it happens all the time in this patch)

&gt; Tools/Scripts/webkitpy/port/common.py:55
&gt; +    &quot;&quot;&quot; Runs a subprocess, until it finishes or |timeout| is exceeded and the

Extra space before &quot;Runs&quot;

&gt; Tools/Scripts/webkitpy/port/common.py:266
&gt; +    &quot;&quot;&quot; Prints out the list of used suppressions in a format common to all the

Extra space after the &quot;&quot;&quot;

&gt; Tools/Scripts/webkitpy/port/gdb_helper.py:40
&gt; +

Extra line here too

&gt; Tools/Scripts/webkitpy/port/gdb_helper.py:42
&gt; +    &apos;&apos;&apos; Parse the gdb output line, return a pair (file, line num) &apos;&apos;&apos;

You use &apos;&apos;&apos; instead of &quot;&quot;&quot; in this file for documenting functions. Please use &quot;&quot;&quot; always (to be consistent), avoid the extra space at the beginning and the end, and finish the sentence with a period

&gt; Tools/Scripts/webkitpy/port/gdb_helper.py:49
&gt; +
&gt; +

As in the other file, please use one empty line only to mark separation between defined functions

&gt; Tools/Scripts/webkitpy/port/gdb_helper.py:51
&gt; +    &apos;&apos;&apos; For each address, return a pair (file, line num) &apos;&apos;&apos;

Use &quot;&quot;&quot; and period at the end, and avoid the extra spaces for consistency. Please fix further functions in this file too

&gt; Tools/Scripts/webkitpy/port/gtk.py:133
&gt; +        # FIXME: This will include too many leaks in subsequent runs until the results directory is cleared!

Why we don&apos;t just clear the directory automatically each time this logic is run, right at the start?

That way, you would have the results available after one execution as long as you haven&apos;t triggered a new one, giving you time enough to copy them to a safe location in case you want to keep them

&gt; Tools/Scripts/webkitpy/port/gtk_leakdetector.py:35
&gt; +

Extra line

&gt; Tools/Scripts/webkitpy/port/gtk_leakdetector.py:47
&gt; +        self._memcheck_leak_analyzer = MemcheckAnalyzer(port.webkit_base(),
&gt; +                                                        use_gdb=False)

You can make this a single line

&gt; Tools/Scripts/webkitpy/port/gtk_leakdetector.py:54
&gt; +        return self._filesystem.glob(self._filesystem.join(directory,
&gt; +                                                           &quot;*-leaks.xml&quot;))

Likewise

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:63
&gt; +

Extra line

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:75
&gt; +

Extra line. Please fix the rest like this one in this file

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:94
&gt; +    prefixes_to_cut = [&quot;build/src/&quot;, &quot;valgrind/coregrind/&quot;,
&gt; +                       &quot;out/Release/../../&quot;]

This can be made just one line, as in the original version of the file

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:140
&gt; +            # Try using gdb

Missing period at the end

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:245
&gt; +                self._backtraces.append([description,
&gt; +                                         gatherFrames(node, source_dir)])

Make this one single line, as in the original version of the code

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:282
&gt; +                buf += (frame[FUNCTION_NAME] or \
&gt; +                        frame[INSTRUCTION_POINTER]) + &quot;\n&quot;

Make this one single line, as in the original version of the code

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:296
&gt; +                    foo = TheAddressTable.GetFileLine(
&gt; +                        frame[OBJECT_FILE],
&gt; +                        frame[INSTRUCTION_POINTER])

Make this one line

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:302
&gt; +                    output += (&quot; (&quot; + frame[SRC_FILE_DIR] +
&gt; +                               &quot;/&quot; + frame[SRC_FILE_NAME] +
&gt; +                               &quot;:&quot; + frame[SRC_LINE] + &quot;)&quot;)

These three lines can be only one too

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:323
&gt; +        # Widen suppression slightly to make portable between mac and linux
&gt; +        # TODO(timurrrr): Oops, these transformations should happen
&gt; +        # BEFORE calculating the hash!

Missing periods at the end of sentences

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:330
&gt; +        # Split into lines so we can enforce length limits

Missing period

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:406
&gt; +            if prev_line.strip() in [&quot;&lt;/error&gt;&quot;,
&gt; +                                     &quot;&lt;/errorcounts&gt;&quot;,
&gt; +                                     &quot;&lt;/status&gt;&quot;]:

This can be one line too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914657</commentid>
    <comment_count>6</comment_count>
      <attachid>208024</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-08-05 13:00:45 -0700</bug_when>
    <thetext>Comment on attachment 208024
Parse Valgrind XML files

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

I didn&apos;t review everything in this patch yet (in particular, I haven&apos;t looked at memcheck_analyze.py much. However, this code is clearly not written to generally conform to the webkitpy conventions and (IMO) should be cleaned up to do so, first.

You also should write at least some unittests for this.

&gt; Tools/Scripts/webkitpy/port/common.py:35
&gt; +import subprocess

This code  duplicates a lot of the work in webkitpy.common.system and webkitpy.port.server_process . Please use that code instead and/or get rid of the duplicate logic here.

&gt;&gt; Tools/Scripts/webkitpy/port/common.py:43
&gt;&gt; +
&gt; 
&gt; Two empty lines here, while one would be enough between definitions. Please fix all across the file (it happens all the time in this patch)

Actually PEP-8 requires two blanks between top-level definitions.

&gt; Tools/Scripts/webkitpy/port/common.py:219
&gt; +         &quot;_ZN4base8internal15RunnableAdapter*Run*&quot;),

Most of this file is pretty generic, but this routine is clearly pretty specific to one particular caller or purpose. You should rename this to something more indicative. Also, somehow it seems unlikely that the base:: functions will be needed somewhere :).

&gt; Tools/Scripts/webkitpy/port/gdb_helper.py:31
&gt; +&apos;&apos;&apos; A bunch of helper functions for querying gdb.&apos;&apos;&apos;

Again, you should probably be using the routines in webkitpy.system instead.

&gt; Tools/Scripts/webkitpy/port/gtk_leakdetector.py:27
&gt; +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

I would probably just fold these classes into gtk.py rather than create a separate file.

&gt; Tools/Scripts/webkitpy/port/memcheck_analyze.py:666
&gt; +def _main():

Normally people use main() for this rather than _main() . Also, in webkitpy land, we wouldn&apos;t have this at all and would either split this into a separate helper script in Tools/Scripts or a _unittest.py file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914811</commentid>
    <comment_count>7</comment_count>
      <attachid>208024</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-08-06 02:27:56 -0700</bug_when>
    <thetext>Comment on attachment 208024
Parse Valgrind XML files

Thanks for the review and comments.  Obviously my strategy was to import (reviewed) Chromium code but I didn&apos;t realise that quite a bit of the code is already in WebKit.  I will webkitpy&apos;ify this code and submit another patch (with unit tests).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944844</commentid>
    <comment_count>8</comment_count>
      <attachid>215490</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-10-30 03:24:03 -0700</bug_when>
    <thetext>Created attachment 215490
WIP Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944850</commentid>
    <comment_count>9</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-10-30 03:37:42 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=215490) [details]
&gt; WIP Patch 2

As the title suggests, this is a WIP patch but the unit test for the leakdetector passes and if anyone wants to use this its good to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957596</commentid>
    <comment_count>10</comment_count>
      <attachid>218681</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-12-08 04:06:09 -0800</bug_when>
    <thetext>Created attachment 218681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957792</commentid>
    <comment_count>11</comment_count>
      <attachid>218681</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2013-12-09 01:25:26 -0800</bug_when>
    <thetext>Comment on attachment 218681
Patch

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

Patch is looking good, but I would like a pythong reviewer to check it. I like the result it is very useful. I&apos;m also uploading a blocking patch to this one because I found some issue in the gtk.py leak detector. Also I would like to remove the two parameters --leaks and --wrapper=valgrind, at least for the default situation.

&gt; Tools/ChangeLog:7
&gt; +
&gt; +        Need a short description (OOPS!).
&gt; +        Need the bug URL (OOPS!).

You just can remove this.

&gt; Tools/Scripts/webkitpy/port/gtk.py:-163
&gt; -    # FIXME: We should find a way to share this implmentation with Gtk,
&gt; -    # or teach run-launcher how to call run-safari and move this down to Port.

Why are you removing this comment from the show_results_html_file function?

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind_unittest.py:716
&gt; +        files[&apos;/Users/mock/Library/Logs/layout-test-results/drt-28529-db92e4843be411e3bae1d43d7e01ba08-leaks.xml&apos;] = mock_valgrind_output1
&gt; +        files[&apos;/Users/mock/Library/Logs/layout-test-results/drt-28530-dd7213423be411e3aa7fd43d7e01ba08-leaks.xml&apos;] = mock_valgrind_output2
&gt; +        #files[&apos;/Users/mock/Library/Logs/layout-test-results/drt-28531-e8c7d7b83be411e390c9d43d7e01ba08-leaks.xml&apos;] = mock_incomplete_valgrind_output
&gt; +        #files[&apos;/Users/mock/Library/Logs/layout-test-results/drt-28532-ebc9a6c63be411e399d4d43d7e01ba08-leaks.xml&apos;] = None
&gt; +        #files[&apos;/Users/mock/Library/Logs/layout-test-results/drt-28532-fa6d0cd63be411e39c72d43d7e01ba08-leaks.xml&apos;] = misformatted_mock_valgrind_output
&gt; +        filesystem = MockFileSystem(files)

I guess this commented lines mean this is still unfinished? I would add at least a some empty output, broken output and proper output in different  unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957819</commentid>
    <comment_count>12</comment_count>
      <attachid>218681</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-12-09 02:50:47 -0800</bug_when>
    <thetext>Comment on attachment 218681
Patch

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

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:59
&gt; +    return text
&gt; +
&gt; +# Constants that give real names to the abbreviations in valgrind XML output.

Nit: missing a newline here.

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:80
&gt; +def gather_frames(node, source_dir):
&gt; +    frames = []
&gt; +    for frame in node.getElementsByTagName(&quot;frame&quot;):
&gt; +        frame_dict = {
&gt; +            INSTRUCTION_POINTER: get_text_of(frame, INSTRUCTION_POINTER),
&gt; +            OBJECT_FILE: get_text_of(frame, OBJECT_FILE),
&gt; +            FUNCTION_NAME: get_text_of(frame, FUNCTION_NAME),
&gt; +            SRC_FILE_DIR: get_text_of(frame, SRC_FILE_DIR),
&gt; +            SRC_FILE_NAME: get_text_of(frame, SRC_FILE_NAME),
&gt; +            SRC_LINE: get_text_of(frame, SRC_LINE)}
&gt; +
&gt; +        frames += [frame_dict]
&gt; +    return frames

You can put the frame_dict construction inside a lambda function and then simply do &apos;return [frame_dict(frame) for frame in node.getElementsByTagName(&quot;frame&quot;)]&apos;.

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:122
&gt; +        output = &quot;&quot;
&gt; +
&gt; +        output += self._kind + &quot;\n&quot;

You can initialize output straight to self._kind + &quot;\n&quot;.

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:186
&gt; +        output += &quot;\n&quot;.join(supplines) + &quot;\n&quot;
&gt; +
&gt; +        return output

You can go straight to returning the concatenated output and the joined suppression lines.

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:280
&gt; +            os.remove(f)

You should use self._filesystem.remove(f) here.
The os module import can be removed after that.

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind_unittest.py:717
&gt; +        leakdetector_valgrind = LeakDetectorValgrind(filesystem, &apos;/Users/mock/Library/Logs/layout-test-results/&apos;)

Nit: You could use a simpler path for the mock results.

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind_unittest.py:724
&gt; +        oc = OutputCapture()
&gt; +        #output.set_log_level(logging.INFO)
&gt; +        oc.capture_output()
&gt; +        leakdetector_valgrind.parse_and_print_leaks_detail(files)
&gt; +        _, _, logfile = oc.restore_output()
&gt; +        self.assertEqual(logfile, make_mock_valgrind_results())

I think you can use OutputCapture().assert_outputs(...) here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957831</commentid>
    <comment_count>13</comment_count>
      <attachid>218681</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-12-09 03:20:58 -0800</bug_when>
    <thetext>Comment on attachment 218681
Patch

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

So overall it seems like a few small changes and the extra tests and this could get in.  Does the simplicification of --leaks and --wrapper=&quot;valgrind&quot; really block this?  Can I do that in a follow-up patch?

&gt;&gt; Tools/Scripts/webkitpy/port/gtk.py:-163
&gt;&gt; -    # or teach run-launcher how to call run-safari and move this down to Port.
&gt; 
&gt; Why are you removing this comment from the show_results_html_file function?

Because it was copied from mac.py and doesn&apos;t make sense anymore:  why would we want to share this with Gtk when we are in gtk.py?  
Still it is unrelated to the memory leak detection so I can leave that to another patch if you prefer.

&gt;&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind_unittest.py:716
&gt;&gt; +        filesystem = MockFileSystem(files)
&gt; 
&gt; I guess this commented lines mean this is still unfinished? I would add at least a some empty output, broken output and proper output in different  unit tests.

Sure.

&gt;&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind_unittest.py:717
&gt;&gt; +        leakdetector_valgrind = LeakDetectorValgrind(filesystem, &apos;/Users/mock/Library/Logs/layout-test-results/&apos;)
&gt; 
&gt; Nit: You could use a simpler path for the mock results.

Good idea.

&gt;&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind_unittest.py:724
&gt;&gt; +        self.assertEqual(logfile, make_mock_valgrind_results())
&gt; 
&gt; I think you can use OutputCapture().assert_outputs(...) here.

Ok, I&apos;ll look into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957915</commentid>
    <comment_count>14</comment_count>
      <attachid>218767</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-12-09 08:47:48 -0800</bug_when>
    <thetext>Created attachment 218767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957975</commentid>
    <comment_count>15</comment_count>
      <attachid>218767</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-12-09 10:40:09 -0800</bug_when>
    <thetext>Comment on attachment 218767
Patch

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

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:64
&gt; +    return text
&gt; +
&gt; +# Constants that give real names to the abbreviations in valgrind XML output.
&gt; +
&gt; +INSTRUCTION_POINTER = &quot;ip&quot;

I was thinking of the missing newline between the get_CDATA_of return statement and the comment.
No newline required between the comment and the INSTRUCTION_POINTER definition.

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:74
&gt; +def gather_frames(node, source_dir):
&gt; +        frame_dict = lambda frame: {
&gt; +            INSTRUCTION_POINTER: get_text_of(frame, INSTRUCTION_POINTER),

The indentation here is off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957977</commentid>
    <comment_count>16</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-12-09 10:42:00 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 218767 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=218767&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:64
&gt; &gt; +    return text
&gt; &gt; +
&gt; &gt; +# Constants that give real names to the abbreviations in valgrind XML output.
&gt; &gt; +
&gt; &gt; +INSTRUCTION_POINTER = &quot;ip&quot;
&gt; 
&gt; I was thinking of the missing newline between the get_CDATA_of return statement and the comment.
&gt; No newline required between the comment and the INSTRUCTION_POINTER definition.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:74
&gt; &gt; +def gather_frames(node, source_dir):
&gt; &gt; +        frame_dict = lambda frame: {
&gt; &gt; +            INSTRUCTION_POINTER: get_text_of(frame, INSTRUCTION_POINTER),
&gt; 
&gt; The indentation here is off.

Good catch on both of them: the pep8 style checker didn&apos;t get either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957978</commentid>
    <comment_count>17</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-12-09 10:42:50 -0800</bug_when>
    <thetext>dpranke: would you mind taking a look over this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958367</commentid>
    <comment_count>18</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2013-12-10 07:45:24 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 218681 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=218681&amp;action=review
&gt; 
&gt; So overall it seems like a few small changes and the extra tests and this could get in.  Does the simplicification of --leaks and --wrapper=&quot;valgrind&quot; really block this?  Can I do that in a follow-up patch?
&gt; 

Yeah, it is not added with this patch, that behaviour was added in a previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958496</commentid>
    <comment_count>19</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-12-10 13:26:43 -0800</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=125540 created to invoke valgrind with the run-leaks script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962515</commentid>
    <comment_count>20</comment_count>
      <attachid>218767</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2013-12-23 10:44:06 -0800</bug_when>
    <thetext>Comment on attachment 218767
Patch

Brian can you add Zan improvements and upload a new patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963736</commentid>
    <comment_count>21</comment_count>
      <attachid>220221</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-02 05:27:11 -0800</bug_when>
    <thetext>Created attachment 220221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964203</commentid>
    <comment_count>22</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-03 11:42:27 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 218767 [details])
&gt; Brian can you add Zan improvements and upload a new patch?

Alex, did you see the new patch I uploaded with Zan&apos;s changes?  Is there anymore that you think we need or can this be committed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965531</commentid>
    <comment_count>23</comment_count>
      <attachid>220221</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2014-01-08 09:58:46 -0800</bug_when>
    <thetext>Comment on attachment 220221
Patch

LGTM, let&apos;s add it. Thanks for the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965539</commentid>
    <comment_count>24</comment_count>
      <attachid>220221</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 10:26:14 -0800</bug_when>
    <thetext>Comment on attachment 220221
Patch

Clearing flags on attachment: 220221

Committed r161512: &lt;http://trac.webkit.org/changeset/161512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965541</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 10:26:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965590</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-08 12:30:53 -0800</bug_when>
    <thetext>This patch broke webkitpy regression tests on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965598</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 12:35:13 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 126655</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965622</commentid>
    <comment_count>28</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-08 13:39:54 -0800</bug_when>
    <thetext>I wasn&apos;t able to fix all of the introduced problems, so I&apos;ll be rolling out the patch shortly.

Here&apos;s an example buildbot output that has logged both of the failures:
http://build.webkit.org/builders/Apple%20Mavericks%20Debug%20WK2%20%28Tests%29/builds/1429/steps/webkitpy-test/logs/stdio

I was able to fix one of the failures by enforcing LeakDetectorValgrind use only in the case of leak detection option being enabled:
http://trac.webkit.org/changeset/161517
(This will be rolled out as well.)

The other failure is stranger, the output isn&apos;t really helpful, and I have no idea why it would fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965759</commentid>
    <comment_count>29</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-08 19:53:03 -0800</bug_when>
    <thetext>Looks like one of the tests still fails after the rollout :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965762</commentid>
    <comment_count>30</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-08 19:55:41 -0800</bug_when>
    <thetext>Sorry, I was confused - the rollout helped, it&apos;s an unrelated *API* failure that we have now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965829</commentid>
    <comment_count>31</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2014-01-09 03:15:23 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; Sorry, I was confused - the rollout helped, it&apos;s an unrelated *API* failure that we have now.

Thanks cleaning the mess ap, I think zan has some proposals of how to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965866</commentid>
    <comment_count>32</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-09 06:32:25 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965867</commentid>
    <comment_count>33</comment_count>
      <attachid>220722</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-09 06:32:31 -0800</bug_when>
    <thetext>Created attachment 220722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965869</commentid>
    <comment_count>34</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-09 06:38:41 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; Created an attachment (id=220722) [details]
&gt; Patch

As Zan recommended on IRC, I&apos;ve changed from using subprocess.Popen to Executive().run_command.  We&apos;ll confirm that this work on mac before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966345</commentid>
    <comment_count>35</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-10 06:07:49 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966346</commentid>
    <comment_count>36</comment_count>
      <attachid>220837</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-10 06:07:55 -0800</bug_when>
    <thetext>Created attachment 220837
Updated to use Executive and MockExecutive in the unittest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966408</commentid>
    <comment_count>37</comment_count>
      <attachid>220837</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-10 09:49:44 -0800</bug_when>
    <thetext>Comment on attachment 220837
Updated to use Executive and MockExecutive in the unittest

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

Looks good, but left one more advice and another request to make the unit test picklable. More details below.

With the pickle thing fixed, the unit tests pass on Mac as well.

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:143
&gt; +            buf = &quot;&quot;
&gt; +            for frame in backtrace[1]:
&gt; +                buf += (frame[FUNCTION_NAME] or frame[INSTRUCTION_POINTER]) + &quot;\n&quot;
&gt; +
&gt; +            input = buf.encode(&apos;latin-1&apos;).split(&quot;\n&quot;)
&gt; +            demangled_names = [self._executive.run_command([&apos;c++filt&apos;, &apos;-n&apos;, name]) for name in input if name]
&gt; +
&gt; +            i = 0
&gt; +            for frame in backtrace[1]:
&gt; +                output += (&quot;  &quot; + demangled_names[i])
&gt; +                i = i + 1
&gt; +
&gt; +                if frame[SRC_FILE_DIR] != &quot;&quot;:
&gt; +                    output += (&quot; (&quot; + frame[SRC_FILE_DIR] + &quot;/&quot; + frame[SRC_FILE_NAME] +
&gt; +                               &quot;:&quot; + frame[SRC_LINE] + &quot;)&quot;)
&gt; +                else:
&gt; +                    output += &quot; (&quot; + frame[OBJECT_FILE] + &quot;)&quot;
&gt; +                output += &quot;\n&quot;

Can this be turned into one iteration over backtrace[1]?

&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind_unittest.py:820
&gt; +        def mock_run_cppfilt_command(args):
&gt; +            if args[0] == &apos;c++filt&apos;:
&gt; +                return valgrind_output_cppfilt_map[args[2]]
&gt; +            return &quot;&quot;

This should be moved into the top level so it is picklable (i.e. the test case can be serialized and transferred to a different process).
This otherwise throws a PicklingError exception when running the webkitpy tests in parallel.

https://stackoverflow.com/questions/8804830/python-multiprocessing-pickling-error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966426</commentid>
    <comment_count>38</comment_count>
      <attachid>220837</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-10 10:29:59 -0800</bug_when>
    <thetext>Comment on attachment 220837
Updated to use Executive and MockExecutive in the unittest

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

&gt;&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind.py:143
&gt;&gt; +                output += &quot;\n&quot;
&gt; 
&gt; Can this be turned into one iteration over backtrace[1]?

Not sure, but I can try.

&gt;&gt; Tools/Scripts/webkitpy/port/leakdetector_valgrind_unittest.py:820
&gt;&gt; +            return &quot;&quot;
&gt; 
&gt; This should be moved into the top level so it is picklable (i.e. the test case can be serialized and transferred to a different process).
&gt; This otherwise throws a PicklingError exception when running the webkitpy tests in parallel.
&gt; 
&gt; https://stackoverflow.com/questions/8804830/python-multiprocessing-pickling-error

Thanks for pointing that out.  Strangely I noticed that this test runs fine by itself but hangs when run as part of the suite.  Maybe this is the cause...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967271</commentid>
    <comment_count>39</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-13 06:17:48 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967272</commentid>
    <comment_count>40</comment_count>
      <attachid>221033</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-13 06:17:57 -0800</bug_when>
    <thetext>Created attachment 221033
Final version?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967273</commentid>
    <comment_count>41</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-13 06:25:26 -0800</bug_when>
    <thetext>(In reply to comment #40)
&gt; Created an attachment (id=221033) [details]
&gt; Final version?

Zan, would you mind running the unit tests on Mac?  They should work now that the c++filt output is mocked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967365</commentid>
    <comment_count>42</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-13 09:16:00 -0800</bug_when>
    <thetext>(In reply to comment #41)
&gt; (In reply to comment #40)
&gt; &gt; Created an attachment (id=221033) [details] [details]
&gt; &gt; Final version?
&gt; 
&gt; Zan, would you mind running the unit tests on Mac?  They should work now that the c++filt output is mocked.

All webkitpy tests on Mac pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967374</commentid>
    <comment_count>43</comment_count>
      <attachid>221057</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-13 09:54:42 -0800</bug_when>
    <thetext>Created attachment 221057
Diff from previous r+&apos;ed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967390</commentid>
    <comment_count>44</comment_count>
      <attachid>221033</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2014-01-13 10:23:00 -0800</bug_when>
    <thetext>Comment on attachment 221033
Final version?

Thanks Zan for the help with the patch, let&apos;s try it again, recall to land it manually and wait for the bots to show you a happy face ;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967748</commentid>
    <comment_count>45</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-14 03:48:02 -0800</bug_when>
    <thetext>Committed r161956: &lt;http://trac.webkit.org/changeset/161956&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967787</commentid>
    <comment_count>46</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2014-01-14 05:57:19 -0800</bug_when>
    <thetext>All tests passed on Mac.  There are some new layout failures that are unrelated to this change.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208024</attachid>
            <date>2013-08-02 09:12:38 -0700</date>
            <delta_ts>2013-10-30 03:23:36 -0700</delta_ts>
            <desc>Parse Valgrind XML files</desc>
            <filename>bug-119446-20130802171303.patch</filename>
            <type>text/plain</type>
            <size>51208</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNDY4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjk4MWEzMDc5MzljN2FlYmM5YmUyZmQ1NTllZDY0NDY1
YjVjYjQ1NC4uNWQ0ZjJhMjQ3YTdjZjM4MmEzNjU0NjlmMjRlY2RlN2FkNjJiMTA2MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcz
IEBACisyMDEzLTA4LTAyICBCcmlhbiBIb2x0ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbR1RLXSBQYXJzZSBWYWxncmluZCB4bWwgbGVhayBmaWxlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDQ2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBn
ZW5lcmF0ZWQgYnkgVmFsZ3JpbmQgdG8geWllbGQgdXNlZnVsCisgICAgICAgIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBtZW1vcnkgbGVha3MuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvY29tbW9uLnB5OiBBZGRlZC4KKyAgICAgICAgQ29tbW9uIGNvZGUgdG8gc3VwcG9ydCBhbmFs
eXNpcyBvZiBWYWxncmluZCBvdXRwdXQuCisgICAgICAgIChOb3RJbXBsZW1lbnRlZEVycm9yKToK
KyAgICAgICAgKFRpbWVvdXRFcnJvcik6CisgICAgICAgIChSdW5TdWJwcm9jZXNzSW5CYWNrZ3Jv
dW5kKToKKyAgICAgICAgKFJ1blN1YnByb2Nlc3MpOgorICAgICAgICAoSXNMaW51eCk6CisgICAg
ICAgIChJc01hYyk6CisgICAgICAgIChJc1dpbmRvd3MpOgorICAgICAgICAoV2luZG93c1ZlcnNp
b25OYW1lKToKKyAgICAgICAgKFBsYXRmb3JtTmFtZXMpOgorICAgICAgICAoUHV0RW52QW5kTG9n
KToKKyAgICAgICAgKEJvcmluZ0NhbGxlcnMpOgorICAgICAgICAoTm9ybWFsaXplV2luZG93c1Bh
dGgpOgorICAgICAgICAoUHJpbnRVc2VkU3VwcHJlc3Npb25zTGlzdCk6CisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZ2RiX2hlbHBlci5weTogQWRkZWQuCisgICAgICAgIEhlbHBl
ciBmdW5jdGlvbnMgZm9yIHF1ZXJ5aW5nIGdkYi4KKyAgICAgICAgKF9HZGJPdXRwdXRUb0ZpbGVM
aW5lKToKKyAgICAgICAgKFJlc29sdmVBZGRyZXNzZXNXaXRoaW5BQmluYXJ5KToKKyAgICAgICAg
KEFkZHJlc3NUYWJsZSk6CisgICAgICAgIChBZGRyZXNzVGFibGUuX19pbml0X18pOgorICAgICAg
ICAoQWRkcmVzc1RhYmxlLkFkZEJpbmFyeUF0KToKKyAgICAgICAgKEFkZHJlc3NUYWJsZS5BZGQp
OgorICAgICAgICAoQWRkcmVzc1RhYmxlLlJlc29sdmVBbGwpOgorICAgICAgICAoQWRkcmVzc1Rh
YmxlLkdldEZpbGVMaW5lKToKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsu
cHk6CisgICAgICAgIChHdGtQb3J0Ll9faW5pdF9fKToKKyAgICAgICAgKEd0a1BvcnQucHJpbnRf
bGVha3Nfc3VtbWFyeSk6IFBhcnNlIHRoZSBsZWFrcyBvdXRwdXQuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZ3RrX2xlYWtkZXRlY3Rvci5weTogQWRkZWQuCisgICAgICAgIElt
cGxlbWVudCBhIEd0a0xlYWtEZXRlY3RvciB0byBwYXJzZSB0aGUgbGVha3MgZm91bmQgYnkgVmFs
Z3JpbmQuCisgICAgICAgIChHdGtMZWFrRGV0ZWN0b3IpOgorICAgICAgICAoR3RrTGVha0RldGVj
dG9yLl9faW5pdF9fKToKKyAgICAgICAgKEd0a0xlYWtEZXRlY3Rvci5wYXJzZV9sZWFrc19vdXRw
dXQpOgorICAgICAgICAoR3RrTGVha0RldGVjdG9yLmxlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeSk6
CisgICAgICAgIChHdGtMZWFrRGV0ZWN0b3IubGVha3NfZmlsZV9uYW1lKToKKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvcG9ydC9tZW1jaGVja19hbmFseXplLnB5OiBBZGRlZC4KKyAgICAg
ICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBnZW5lcmF0ZWQgYnkgVmFsZ3JpbmQgYW5kIHN1bW1hcmlz
ZSBsZWFrcworICAgICAgICBpbnRvIGFuIGVhc2lseSB1bmRlcnN0YW5kYWJsZSBsaXN0LgorICAg
ICAgICAoZ2V0VGV4dE9mKToKKyAgICAgICAgKGdldENEQVRBT2YpOgorICAgICAgICAoc2hvcnRl
bkZpbGVQYXRoKToKKyAgICAgICAgKGdhdGhlckZyYW1lcyk6CisgICAgICAgIChWYWxncmluZEVy
cm9yKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3IuX19pbml0X18pOgorICAgICAgICAoVmFsZ3Jp
bmRFcnJvci5fX3N0cl9fKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3IuVW5pcXVlU3RyaW5nKToK
KyAgICAgICAgKFZhbGdyaW5kRXJyb3IuRXJyb3JIYXNoKToKKyAgICAgICAgKFZhbGdyaW5kRXJy
b3IuX19oYXNoX18pOgorICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX2VxX18pOgorICAgICAgICAo
bG9nX2lzX2ZpbmlzaGVkKToKKyAgICAgICAgKE1lbWNoZWNrQW5hbHl6ZXIpOgorICAgICAgICAo
TWVtY2hlY2tBbmFseXplci5fX2luaXRfXyk6CisgICAgICAgIChNZW1jaGVja0FuYWx5emVyLlJl
cG9ydCk6CisgICAgICAgIChfbWFpbik6CisgICAgICAgIChfbWFpbi5zaG91bGQpOgorCiAyMDEz
LTA3LTI5ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTUyODYwLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L2NvbW1vbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9jb21tb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDUzMmQzMmNiOWNmMzYwNTlhNzAyOWE3NjUxMTBmNDAx
MWUyMGVlZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9j
b21tb24ucHkKQEAgLTAsMCArMSwyODMgQEAKKyMgT3JpZ2luYWxseSBmcm9tIENocm9taXVtLCBj
b3B5cmlnaHQgYXMgZm9sbG93czoKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1
bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisj
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1w
b3J0IGxvZ2dpbmcKK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IG9zCitpbXBvcnQgc2lnbmFsCitp
bXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHN5cworaW1wb3J0IHRpbWUKKworCitjbGFzcyBOb3RJ
bXBsZW1lbnRlZEVycm9yKEV4Y2VwdGlvbik6CisgICAgcGFzcworCisKK2NsYXNzIFRpbWVvdXRF
cnJvcihFeGNlcHRpb24pOgorICAgIHBhc3MKKworCitkZWYgUnVuU3VicHJvY2Vzc0luQmFja2dy
b3VuZChwcm9jKToKKyAgICAiIiJSdW5zIGEgc3VicHJvY2VzcyBpbiB0aGUgYmFja2dyb3VuZC4g
UmV0dXJucyBhIGhhbmRsZSB0byB0aGUgcHJvY2Vzcy4iIiIKKyAgICBsb2dnaW5nLmluZm8oInJ1
bm5pbmcgJXMgaW4gdGhlIGJhY2tncm91bmQiICUgIiAiLmpvaW4ocHJvYykpCisgICAgcmV0dXJu
IHN1YnByb2Nlc3MuUG9wZW4ocHJvYykKKworCitkZWYgUnVuU3VicHJvY2Vzcyhwcm9jLCB0aW1l
b3V0PTApOgorICAgICIiIiBSdW5zIGEgc3VicHJvY2VzcywgdW50aWwgaXQgZmluaXNoZXMgb3Ig
fHRpbWVvdXR8IGlzIGV4Y2VlZGVkIGFuZCB0aGUKKyAgICBwcm9jZXNzIGlzIGtpbGxlZCB3aXRo
IHRhc2traWxsLiAgQSB8dGltZW91dHwgPD0gMCAgbWVhbnMgbm8gdGltZW91dC4KKworICAgIEFy
Z3M6CisgICAgICAgIHByb2M6IGxpc3Qgb2YgcHJvY2VzcyBjb21wb25lbnRzIChleGUgKyBhcmdz
KQorICAgICAgICB0aW1lb3V0OiBob3cgbG9uZyB0byB3YWl0IGJlZm9yZSBraWxsaW5nLCA8PSAw
IG1lYW5zIHdhaXQgZm9yZXZlcgorICAgICIiIgorCisgICAgbG9nZ2luZy5pbmZvKCJydW5uaW5n
ICVzLCB0aW1lb3V0ICVkIHNlYyIgJSAoIiAiLmpvaW4ocHJvYyksIHRpbWVvdXQpKQorICAgIHN5
cy5zdGRvdXQuZmx1c2goKQorICAgIHN5cy5zdGRlcnIuZmx1c2goKQorCisgICAgIyBNYW51YWxs
eSByZWFkIGFuZCBwcmludCBvdXQgc3Rkb3V0IGFuZCBzdGRlcnIuCisgICAgIyBCeSBkZWZhdWx0
LCB0aGUgc3VicHJvY2VzcyBpcyBzdXBwb3NlZCB0byBpbmhlcml0IHRoZXNlIGZyb20gaXRzIHBh
cmVudCwKKyAgICAjIGhvd2V2ZXIgd2hlbiBydW4gdW5kZXIgYnVpbGRib3QsIGl0IHNlZW1zIHVu
YWJsZSB0byByZWFkIGRhdGEgZnJvbSBhCisgICAgIyBncmFuZGNoaWxkIHByb2Nlc3MsIHNvIHdl
IGhhdmUgdG8gcmVhZCB0aGUgY2hpbGQgYW5kIHByaW50IHRoZSBkYXRhIGFzIGlmCisgICAgIyBp
dCBjYW1lIGZyb20gdXMgZm9yIGJ1aWxkYm90IHRvIHJlYWQgaXQuICBXZSdyZSBub3Qgc3VyZSB3
aHkgdGhpcyBpcworICAgICMgbmVjZXNzYXJ5LgorICAgICMgVE9ETyhlcmlra2F5KTogc2hvdWxk
IHdlIGJ1ZmZlciBzdGRlcnIgYW5kIHN0ZG91dCBzZXBhcmF0ZWx5PworICAgIHAgPSBzdWJwcm9j
ZXNzLlBvcGVuKHByb2MsIHVuaXZlcnNhbF9uZXdsaW5lcz1UcnVlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIGJ1ZnNpemU9MCwgICMgdW5idWZmZXJlZAorICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKKwor
ICAgIGxvZ2dpbmcuaW5mbygic3RhcnRlZCBzdWJwcm9jZXNzIikKKworICAgIGRpZF90aW1lb3V0
ID0gRmFsc2UKKyAgICBpZiB0aW1lb3V0ID4gMDoKKyAgICAgICAgd2FpdF91bnRpbCA9IHRpbWUu
dGltZSgpICsgdGltZW91dAorICAgIHdoaWxlIHAucG9sbCgpIGlzIE5vbmUgYW5kIG5vdCBkaWRf
dGltZW91dDoKKyAgICAgICAgIyBIYXZlIHRvIHVzZSByZWFkbGluZSByYXRoZXIgdGhhbiByZWFk
bGluZXMoKQorICAgICAgICAjIG9yICJmb3IgbGluZSBpbiBwLnN0ZG91dDoiLAorICAgICAgICAj
IG90aGVyd2lzZSB3ZSBnZXQgYnVmZmVyZWQgZXZlbiB3aXRoIGJ1ZnNpemU9MC4KKyAgICAgICAg
bGluZSA9IHAuc3Rkb3V0LnJlYWRsaW5lKCkKKyAgICB3aGlsZSBsaW5lIGFuZCBub3QgZGlkX3Rp
bWVvdXQ6CisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUobGluZSkKKyAgICAgICAgc3lzLnN0ZG91
dC5mbHVzaCgpCisgICAgICAgIGxpbmUgPSBwLnN0ZG91dC5yZWFkbGluZSgpCisgICAgICAgIGlm
IHRpbWVvdXQgPiAwOgorICAgICAgICAgICAgZGlkX3RpbWVvdXQgPSB0aW1lLnRpbWUoKSA+IHdh
aXRfdW50aWwKKworICAgIGlmIGRpZF90aW1lb3V0OgorICAgICAgICBsb2dnaW5nLmluZm8oInBy
b2Nlc3MgdGltZWQgb3V0IikKKyAgICBlbHNlOgorICAgICAgICBsb2dnaW5nLmluZm8oInByb2Nl
c3MgZW5kZWQsIGRpZCBub3QgdGltZSBvdXQiKQorCisgICAgaWYgZGlkX3RpbWVvdXQ6CisgICAg
ICAgIGlmIElzV2luZG93cygpOgorICAgICAgICAgICAgc3VicHJvY2Vzcy5jYWxsKFsidGFza2tp
bGwiLCAiL1QiLCAiL0YiLCAiL1BJRCIsIHN0cihwLnBpZCldKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgIyBEb2VzIHRoaXMga2lsbCBhbGwgY2hpbGRyZW4sIHRvbz8KKyAgICAgICAgICAg
IG9zLmtpbGwocC5waWQsIHNpZ25hbC5TSUdJTlQpCisgICAgICAgIGxvZ2dpbmcuZXJyb3IoIktJ
TExFRCAlZCIgJSBwLnBpZCkKKyAgICAgICAgIyBHaXZlIHRoZSBwcm9jZXNzIGEgY2hhbmNlIHRv
IGFjdHVhbGx5IGRpZSBiZWZvcmUgY29udGludWluZworICAgICAgICAjIHNvIHRoYXQgY2xlYW51
cCBjYW4gaGFwcGVuIHNhZmVseS4KKyAgICAgICAgdGltZS5zbGVlcCgxLjApCisgICAgICAgIGxv
Z2dpbmcuZXJyb3IoIlRJTUVPVVQgd2FpdGluZyBmb3IgJXMiICUgcHJvY1swXSkKKyAgICAgICAg
cmFpc2UgVGltZW91dEVycm9yKHByb2NbMF0pCisgICAgZWxzZToKKyAgICAgICAgZm9yIGxpbmUg
aW4gcC5zdGRvdXQ6CisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKGxpbmUpCisgICAgICAg
IGlmIG5vdCBJc01hYygpOiAgICMgc3Rkb3V0IGZsdXNoIGZhaWxzIG9uIE1hYworICAgICAgICAg
ICAgbG9nZ2luZy5pbmZvKCJmbHVzaGluZyBzdGRvdXQiKQorICAgICAgICAgICAgc3lzLnN0ZG91
dC5mbHVzaCgpCisKKyAgICBsb2dnaW5nLmluZm8oImNvbGxlY3RpbmcgcmVzdWx0IGNvZGUiKQor
ICAgIHJlc3VsdCA9IHAucG9sbCgpCisgICAgaWYgcmVzdWx0OgorICAgICAgICBsb2dnaW5nLmVy
cm9yKCIlcyBleGl0ZWQgd2l0aCBub24temVybyByZXN1bHQgY29kZSAlZCIgJQorICAgICAgICAg
ICAgICAgICAgICAgIChwcm9jWzBdLCByZXN1bHQpKQorICAgIHJldHVybiByZXN1bHQKKworCitk
ZWYgSXNMaW51eCgpOgorICAgIHJldHVybiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgn
KQorCisKK2RlZiBJc01hYygpOgorICAgIHJldHVybiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgn
ZGFyd2luJykKKworCitkZWYgSXNXaW5kb3dzKCk6CisgICAgcmV0dXJuIHN5cy5wbGF0Zm9ybSA9
PSAnY3lnd2luJyBvciBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykKKworCitkZWYgV2lu
ZG93c1ZlcnNpb25OYW1lKCk6CisgICAgIiIiUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgV2luZG93
cyB2ZXJzaW9uIGlmIGl0IGlzIGtub3duLCBvciBOb25lLgorCisgICAgUG9zc2libGUgcmV0dXJu
IHZhbHVlcyBhcmU6IHhwLCB2aXN0YSwgNywgOCwgb3IgTm9uZQorICAgICIiIgorICAgIGlmIHN5
cy5wbGF0Zm9ybSA9PSAnY3lnd2luJzoKKyAgICAgICAgIyBXaW5kb3dzIHZlcnNpb24gbnVtYmVy
IGlzIGhpZGluZyBpbiBzeXN0ZW0gbmFtZS4gIExvb2tzIGxpa2U6CisgICAgICAgICMgQ1lHV0lO
X05ULTYuMS1XT1c2NAorICAgICAgICB0cnk6CisgICAgICAgICAgICB2ZXJzaW9uX3N0ciA9IHBs
YXRmb3JtLnVuYW1lKClbMF0uc3BsaXQoJy0nKVsxXQorICAgICAgICBleGNlcHQ6CisgICAgICAg
ICAgICByZXR1cm4gTm9uZQorICAgIGVsaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicp
OgorICAgICAgICAjIE5vcm1hbCBXaW5kb3dzIHZlcnNpb24gc3RyaW5nLiAgTWluZTogNi4xLjc2
MDEKKyAgICAgICAgdmVyc2lvbl9zdHIgPSBwbGF0Zm9ybS52ZXJzaW9uKCkKKyAgICBlbHNlOgor
ICAgICAgICByZXR1cm4gTm9uZQorCisgICAgcGFydHMgPSB2ZXJzaW9uX3N0ci5zcGxpdCgnLicp
CisgICAgdHJ5OgorICAgICAgICBtYWpvciA9IGludChwYXJ0c1swXSkKKyAgICAgICAgbWlub3Ig
PSBpbnQocGFydHNbMV0pCisgICAgZXhjZXB0OgorICAgICAgICByZXR1cm4gTm9uZSAgIyBDYW4n
dCBwYXJzZSwgdW5rbm93biB2ZXJzaW9uLgorCisgICAgaWYgbWFqb3IgPT0gNToKKyAgICAgICAg
cmV0dXJuICd4cCcKKyAgICBlbGlmIG1ham9yID09IDYgYW5kIG1pbm9yID09IDA6CisgICAgICAg
IHJldHVybiAndmlzdGEnCisgICAgZWxpZiBtYWpvciA9PSA2IGFuZCBtaW5vciA9PSAxOgorICAg
ICAgICByZXR1cm4gJzcnCisgICAgZWxpZiBtYWpvciA9PSA2IGFuZCBtaW5vciA9PSAyOgorICAg
ICAgICByZXR1cm4gJzgnICAjIEZ1dHVyZSBwcm9vZi4gIDspCisgICAgcmV0dXJuIE5vbmUKKwor
CitkZWYgUGxhdGZvcm1OYW1lcygpOgorICAgICIiIlJldHVybiBhbiBhcnJheSBvZiBzdHJpbmcg
dG8gYmUgdXNlZCBpbiBwYXRocyBmb3IgdGhlIHBsYXRmb3JtCisgICAgKGUuZy4gc3VwcHJlc3Np
b25zLCBndGVzdCBmaWx0ZXJzLCBpZ25vcmUgZmlsZXMgZXRjLikKKyAgICBUaGUgZmlyc3QgZWxl
bWVudCBvZiB0aGUgYXJyYXkgZGVzY3JpYmVzIHRoZSAnbWFpbicgcGxhdGZvcm0KKyAgICAiIiIK
KyAgICBpZiBJc0xpbnV4KCk6CisgICAgICAgIHJldHVybiBbJ2xpbnV4J10KKyAgICBpZiBJc01h
YygpOgorICAgICAgICByZXR1cm4gWydtYWMnXQorICAgIGlmIElzV2luZG93cygpOgorICAgICAg
ICBuYW1lcyA9IFsnd2luMzInXQorICAgICAgICB2ZXJzaW9uX25hbWUgPSBXaW5kb3dzVmVyc2lv
bk5hbWUoKQorICAgICAgICBpZiB2ZXJzaW9uX25hbWUgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBuYW1lcy5hcHBlbmQoJ3dpbi0lcycgJSB2ZXJzaW9uX25hbWUpCisgICAgICAgIHJldHVybiBu
YW1lcworICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1Vua25vd24gcGxhdGZvcm0gIiVz
Ii4nICUgc3lzLnBsYXRmb3JtKQorCisKK2RlZiBQdXRFbnZBbmRMb2coZW52X25hbWUsIGVudl92
YWx1ZSk6CisgICAgb3MucHV0ZW52KGVudl9uYW1lLCBlbnZfdmFsdWUpCisgICAgbG9nZ2luZy5p
bmZvKCdleHBvcnQgJXM9JXMnLCBlbnZfbmFtZSwgZW52X3ZhbHVlKQorCisKK2RlZiBCb3JpbmdD
YWxsZXJzKG1hbmdsZWQsIHVzZV9yZV93aWxkY2FyZHMpOgorICAgICIiIlJldHVybiBhIGxpc3Qg
b2YgJ2JvcmluZycgZnVuY3Rpb24gbmFtZXMgKG9wdGluYWxseSBtYW5nbGVkKQorICAgIHdpdGgg
Ki8/IHdpbGRjYXJkcyAob3B0aW9uYWxseSAuKi8uKS4KKyAgICBCb3JpbmcgPSB3ZSBkcm9wIG9m
ZiB0aGUgYm90dG9tIG9mIHN0YWNrIHRyYWNlcyBiZWxvdyBzdWNoIGZ1bmN0aW9ucy4KKyAgICAi
IiIKKworICAgIG5lZWRfbWFuZ2xpbmcgPSBbCisgICAgICAgICMgRG9uJ3Qgc2hvdyBvdXIgdGVz
dGluZyBmcmFtZXdvcms6CisgICAgICAgICgidGVzdGluZzo6VGVzdDo6UnVuIiwgICAgICJfWk43
dGVzdGluZzRUZXN0M1J1bkV2IiksCisgICAgICAgICgidGVzdGluZzo6VGVzdEluZm86OlJ1biIs
ICJfWk43dGVzdGluZzhUZXN0SW5mbzNSdW5FdiIpLAorICAgICAgICAoInRlc3Rpbmc6OmludGVy
bmFsOjpIYW5kbGUqRXhjZXB0aW9uc0luTWV0aG9kSWZTdXBwb3J0ZWQqIiwKKyAgICAgICAgICJf
Wk43dGVzdGluZzhpbnRlcm5hbDM/SGFuZGxlKkV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVk
KiIpLAorCisgICAgICAgICMgRGVwZW5kIG9uIHNjaGVkdWxpbmc6CisgICAgICAgICgiTWVzc2Fn
ZUxvb3A6OlJ1biIsICAgICAiX1pOMTFNZXNzYWdlTG9vcDNSdW5FdiIpLAorICAgICAgICAoIk1l
c3NhZ2VMb29wOjpSdW5UYXNrIiwgIl9aTjExTWVzc2FnZUxvb3A3UnVuVGFzayoiKSwKKyAgICAg
ICAgKCJSdW5uYWJsZU1ldGhvZCoiLCAgICAgICJfWk4xNFJ1bm5hYmxlTWV0aG9kKiIpLAorICAg
ICAgICAoIkRpc3BhdGNoVG9NZXRob2QqIiwgICAgIl9aKjE2RGlzcGF0Y2hUb01ldGhvZCoiKSwK
KyAgICAgICAgKCJiYXNlOjppbnRlcm5hbDo6SW52b2tlcio6OkRvSW52b2tlKiIsCisgICAgICAg
ICAiX1pONGJhc2U4aW50ZXJuYWw4SW52b2tlcipEb0ludm9rZSoiKSwgICMgSW52b2tlcnsxLDIs
M30KKyAgICAgICAgKCJiYXNlOjppbnRlcm5hbDo6UnVubmFibGVBZGFwdGVyKjo6UnVuKiIsCisg
ICAgICAgICAiX1pONGJhc2U4aW50ZXJuYWwxNVJ1bm5hYmxlQWRhcHRlcipSdW4qIiksCisgICAg
XQorCisgICAgcmV0ID0gW10KKyAgICBmb3IgcGFpciBpbiBuZWVkX21hbmdsaW5nOgorICAgICAg
ICByZXQuYXBwZW5kKHBhaXJbMSBpZiBtYW5nbGVkIGVsc2UgMF0pCisKKyAgICByZXQgKz0gWwor
ICAgICAgICAjIEFsc28gZG9uJ3Qgc2hvdyB0aGUgaW50ZXJuYWxzIG9mIGxpYmMvcHRocmVhZC4K
KyAgICAgICAgInN0YXJ0X3RocmVhZCIsCisgICAgICAgICJtYWluIiwKKyAgICAgICAgIkJhc2VU
aHJlYWRJbml0VGh1bmsiLAorICAgIF0KKworICAgIGlmIHVzZV9yZV93aWxkY2FyZHM6CisgICAg
ICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihyZXQpKToKKyAgICAgICAgICAgIHJldFtpXSA9IHJl
dFtpXS5yZXBsYWNlKCcqJywgJy4qJykucmVwbGFjZSgnPycsICcuJykKKworICAgIHJldHVybiBy
ZXQKKworCitkZWYgTm9ybWFsaXplV2luZG93c1BhdGgocGF0aCk6CisgICAgIiIiSWYgd2UncmUg
dXNpbmcgQ3lnd2luIFB5dGhvbiwgdHVybiB0aGUgcGF0aCBpbnRvIGEgV2luZG93cyBwYXRoLgor
CisgICAgRG9uJ3QgdHVybiBmb3J3YXJkIHNsYXNoZXMgaW50byBiYWNrc2xhc2hlcyBmb3IgZWFz
aWVyIGNvcHktcGFzdGluZyBhbmQKKyAgICBlc2NhcGluZy4KKworICAgIFRPRE8ocm5rKTogSWYg
d2UgZXZlciB3YW50IHRvIGN1dCBvdXQgdGhlIHN1YnByb2Nlc3MgaW52b2NhdGlvbiwgd2UgY2Fu
IHVzZQorICAgIF93aW5yZWcgdG8gZ2V0IHRoZSByb290IEN5Z3dpbiBkaXJlY3RvcnkgZnJvbSB0
aGUgcmVnaXN0cnkga2V5OgorICAgIEhLRVlfTE9DQUxfTUFDSElORVxTT0ZUV0FSRVxDeWd3aW5c
c2V0dXBccm9vdGRpci4KKyAgICAiIiIKKyAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgi
Y3lnd2luIik6CisgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKFsiY3lncGF0aCIsICItbSIs
IHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5Q
SVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBF
KQorICAgICAgICAob3V0LCBlcnIpID0gcC5jb21tdW5pY2F0ZSgpCisgICAgICAgIGlmIGVycjoK
KyAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygiV0FSTklORzogY3lncGF0aCBlcnJvcjogJXMi
LCBlcnIpCisgICAgICAgIHJldHVybiBvdXQuc3RyaXAoKQorICAgIGVsc2U6CisgICAgICAgIHJl
dHVybiBwYXRoCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29tbW9uIG91dHB1
dCBmb3JtYXQgY29kZQorCisKK2RlZiBQcmludFVzZWRTdXBwcmVzc2lvbnNMaXN0KHN1cHBjb3Vu
dHMpOgorICAgICIiIiBQcmludHMgb3V0IHRoZSBsaXN0IG9mIHVzZWQgc3VwcHJlc3Npb25zIGlu
IGEgZm9ybWF0IGNvbW1vbiB0byBhbGwgdGhlCisgICAgICAgIG1lbW9yeSB0b29scy4gSWYgdGhl
IGxpc3QgaXMgZW1wdHksIHByaW50cyBub3RoaW5nIGFuZCByZXR1cm5zIEZhbHNlLAorICAgICAg
ICBvdGhlcndpc2UgVHJ1ZS4KKworICAgICAgICBzdXBwY291bnRzOiBhIGRpY3Rpb25hcnkgb2Yg
dXNlZCBzdXBwcmVzc2lvbiBjb3VudHMsCisgICAgICAgICAgICAgICAgICAgIEtleSAtPiBuYW1l
LCBWYWx1ZSAtPiBjb3VudC4KKyAgICAiIiIKKyAgICBpZiBub3Qgc3VwcGNvdW50czoKKyAgICAg
ICAgcmV0dXJuIEZhbHNlCisKKyAgICBwcmludCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCisgICAgcHJpbnQgIlN1cHByZXNzaW9ucyB1c2Vk
OiIKKyAgICBwcmludCAiICBjb3VudCBuYW1lIgorICAgIGZvciAobmFtZSwgY291bnQpIGluIHNv
cnRlZChzdXBwY291bnRzLml0ZW1zKCksIGtleT1sYW1iZGEgKGssIHYpOiAodiwgaykpOgorICAg
ICAgICBwcmludCAiJTdkICVzIiAlIChjb3VudCwgbmFtZSkKKyAgICBwcmludCAiLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCisgICAgc3lzLnN0
ZG91dC5mbHVzaCgpCisgICAgcmV0dXJuIFRydWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9nZGJfaGVscGVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2dkYl9oZWxwZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTUwMmI4MzE0Y2NkYjZhODUxNTkyMjAxMmQwNWJh
MDM1OTMwYzY0YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9nZGJfaGVscGVyLnB5CkBAIC0wLDAgKzEsMTE2IEBACisjIE9yaWdpbmFsbHkgZnJvbSBDaHJv
bWl1bSwgY29weXJpZ2h0IGFzIGZvbGxvd3M6CisjCisjIENvcHlyaWdodCAoYykgMjAxMyBUaGUg
Q2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKycnJyBBIGJ1bmNoIG9mIGhlbHBlciBmdW5jdGlvbnMgZm9yIHF1ZXJ5aW5nIGdkYi4nJycK
KworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgdGVtcGZpbGUK
KworR0RCX0xJTkVfUkUgPSByZS5jb21waWxlKHInTGluZSAoWzAtOV0qKSBvZiAiKFteIl0qKSIu
KicpCisKKworZGVmIF9HZGJPdXRwdXRUb0ZpbGVMaW5lKG91dHB1dF9saW5lKToKKyAgICAnJycg
UGFyc2UgdGhlIGdkYiBvdXRwdXQgbGluZSwgcmV0dXJuIGEgcGFpciAoZmlsZSwgbGluZSBudW0p
ICcnJworICAgIG1hdGNoID0gR0RCX0xJTkVfUkUubWF0Y2gob3V0cHV0X2xpbmUpCisgICAgaWYg
bWF0Y2g6CisgICAgICAgIHJldHVybiBtYXRjaC5ncm91cHMoKVsxXSwgbWF0Y2guZ3JvdXBzKClb
MF0KKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gTm9uZQorCisKK2RlZiBSZXNvbHZlQWRkcmVz
c2VzV2l0aGluQUJpbmFyeShiaW5hcnlfbmFtZSwgbG9hZF9hZGRyZXNzLCBhZGRyZXNzX2xpc3Qp
OgorICAgICcnJyBGb3IgZWFjaCBhZGRyZXNzLCByZXR1cm4gYSBwYWlyIChmaWxlLCBsaW5lIG51
bSkgJycnCisgICAgY29tbWFuZHMgPSB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoKQorICAg
IGNvbW1hbmRzLndyaXRlKCdhZGQtc3ltYm9sLWZpbGUgIiVzIiAlc1xuJyAlIChiaW5hcnlfbmFt
ZSwgbG9hZF9hZGRyZXNzKSkKKyAgICBmb3IgYWRkciBpbiBhZGRyZXNzX2xpc3Q6CisgICAgICAg
IGNvbW1hbmRzLndyaXRlKCdpbmZvIGxpbmUgKiVzXG4nICUgYWRkcikKKyAgICBjb21tYW5kcy53
cml0ZSgncXVpdFxuJykKKyAgICBjb21tYW5kcy5mbHVzaCgpCisgICAgZ2RiX2NvbW1hbmRsaW5l
ID0gJ2dkYiAtYmF0Y2ggLXggJXMgMj4vZGV2L251bGwnICUgY29tbWFuZHMubmFtZQorICAgIGdk
Yl9waXBlID0gb3MucG9wZW4oZ2RiX2NvbW1hbmRsaW5lKQorICAgIHJlc3VsdCA9IGdkYl9waXBl
LnJlYWRsaW5lcygpCisKKyAgICBhZGRyZXNzX2NvdW50ID0gMAorICAgIHJldCA9IHt9CisgICAg
Zm9yIGxpbmUgaW4gcmVzdWx0OgorICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ0xpbmUnKToK
KyAgICAgICAgICAgIHJldFthZGRyZXNzX2xpc3RbYWRkcmVzc19jb3VudF1dID0gX0dkYk91dHB1
dFRvRmlsZUxpbmUobGluZSkKKyAgICAgICAgICAgIGFkZHJlc3NfY291bnQgKz0gMQorICAgICAg
ICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ05vIGxpbmUnKToKKyAgICAgICAgICAgIHJldFthZGRyZXNz
X2xpc3RbYWRkcmVzc19jb3VudF1dID0gKE5vbmUsIE5vbmUpCisgICAgICAgICAgICBhZGRyZXNz
X2NvdW50ICs9IDEKKyAgICBnZGJfcGlwZS5jbG9zZSgpCisgICAgY29tbWFuZHMuY2xvc2UoKQor
ICAgIHJldHVybiByZXQKKworCitjbGFzcyBBZGRyZXNzVGFibGUob2JqZWN0KToKKyAgICAnJycg
T2JqZWN0IHRvIGRvIGJhdGNoZWQgbGluZSBudW1iZXIgbG9va3VwLiAnJycKKyAgICBkZWYgX19p
bml0X18oc2VsZik6CisgICAgICAgIHNlbGYuX2xvYWRfYWRkcmVzc2VzID0ge30KKyAgICAgICAg
c2VsZi5fYmluYXJpZXMgPSB7fQorICAgICAgICBzZWxmLl9hbGxfcmVzb2x2ZWQgPSBGYWxzZQor
CisgICAgZGVmIEFkZEJpbmFyeUF0KHNlbGYsIGJpbmFyeSwgbG9hZF9hZGRyZXNzKToKKyAgICAg
ICAgJycnIFJlZ2lzdGVyIGEgbmV3IHNoYXJlZCBsaWJyYXJ5IG9yIGV4ZWN1dGFibGUuICcnJwor
ICAgICAgICBzZWxmLl9sb2FkX2FkZHJlc3Nlc1tiaW5hcnldID0gbG9hZF9hZGRyZXNzCisKKyAg
ICBkZWYgQWRkKHNlbGYsIGJpbmFyeSwgYWRkcmVzcyk6CisgICAgICAgICcnJyBSZWdpc3RlciBh
IGxvb2t1cCByZXF1ZXN0LiAnJycKKyAgICAgICAgaWYgYmluYXJ5ID09ICcnOgorICAgICAgICAg
ICAgbG9nZ2luZy53YXJuKCdhZGRpbmcgYWRkcmVzcyAlcyBpbiBlbXB0eSBiaW5hcnk/JyAlIGFk
ZHJlc3MpCisgICAgICAgIGlmIGJpbmFyeSBpbiBzZWxmLl9iaW5hcmllczoKKyAgICAgICAgICAg
IHNlbGYuX2JpbmFyaWVzW2JpbmFyeV0uYXBwZW5kKGFkZHJlc3MpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBzZWxmLl9iaW5hcmllc1tiaW5hcnldID0gW2FkZHJlc3NdCisgICAgICAgIHNl
bGYuX2FsbF9yZXNvbHZlZCA9IEZhbHNlCisKKyAgICBkZWYgUmVzb2x2ZUFsbChzZWxmKToKKyAg
ICAgICAgJycnIENhcnJ5IG91dCBhbGwgbG9va3VwIHJlcXVlc3RzLiAnJycKKyAgICAgICAgc2Vs
Zi5fdHJhbnNsYXRpb24gPSB7fQorICAgICAgICBmb3IgYmluYXJ5IGluIHNlbGYuX2JpbmFyaWVz
LmtleXMoKToKKyAgICAgICAgICAgIGlmIGJpbmFyeSAhPSAnJyBhbmQgYmluYXJ5IGluIHNlbGYu
X2xvYWRfYWRkcmVzc2VzOgorICAgICAgICAgICAgICAgIGxvYWRfYWRkcmVzcyA9IHNlbGYuX2xv
YWRfYWRkcmVzc2VzW2JpbmFyeV0KKyAgICAgICAgICAgICAgICBhZGRyID0gUmVzb2x2ZUFkZHJl
c3Nlc1dpdGhpbkFCaW5hcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnksIGxvYWRf
YWRkcmVzcywgc2VsZi5fYmluYXJpZXNbYmluYXJ5XSkKKyAgICAgICAgICAgICAgICBzZWxmLl90
cmFuc2xhdGlvbltiaW5hcnldID0gYWRkcgorICAgICAgICBzZWxmLl9hbGxfcmVzb2x2ZWQgPSBU
cnVlCisKKyAgICBkZWYgR2V0RmlsZUxpbmUoc2VsZiwgYmluYXJ5LCBhZGRyKToKKyAgICAgICAg
JycnIEdldCB0aGUgKGZpbGVuYW1lLCBsaW5lbnVtKSByZXN1bHQgb2YgYSBwcmV2aW91c2x5LXJl
Z2lzdGVyZWQKKyAgICAgICAgbG9va3VwIHJlcXVlc3QuCisgICAgICAgICcnJworICAgICAgICBp
ZiBzZWxmLl9hbGxfcmVzb2x2ZWQ6CisgICAgICAgICAgICBpZiBiaW5hcnkgaW4gc2VsZi5fdHJh
bnNsYXRpb246CisgICAgICAgICAgICAgICAgaWYgYWRkciBpbiBzZWxmLl90cmFuc2xhdGlvblti
aW5hcnldOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fdHJhbnNsYXRpb25bYmlu
YXJ5XVthZGRyXQorICAgICAgICByZXR1cm4gKE5vbmUsIE5vbmUpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2d0ay5weQppbmRleCBiM2YxZjIzZTFlNDQ0ODEzZjFhMGEyYWUwY2QyYWEzNTRkNjllMjc3
Li4wM2Q4MDcyY2E3ZTMzNDQ3ZWRmZDQyZGEwZDYyYmQxMzQ1YzYwMjQ1IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9ndGsucHkKQEAgLTM1LDYgKzM1LDcgQEAgZnJvbSB3ZWJraXRweS5wb3J0LmJh
c2UgaW1wb3J0IFBvcnQKIGZyb20gd2Via2l0cHkucG9ydC5wdWxzZWF1ZGlvX3Nhbml0aXplciBp
bXBvcnQgUHVsc2VBdWRpb1Nhbml0aXplcgogZnJvbSB3ZWJraXRweS5wb3J0Lnh2ZmJkcml2ZXIg
aW1wb3J0IFh2ZmJEcml2ZXIKIGZyb20gd2Via2l0cHkucG9ydC53ZXN0b25kcml2ZXIgaW1wb3J0
IFdlc3RvbkRyaXZlcgorZnJvbSB3ZWJraXRweS5wb3J0Lmd0a19sZWFrZGV0ZWN0b3IgaW1wb3J0
IEd0a0xlYWtEZXRlY3RvcgogCiAKIGNsYXNzIEd0a1BvcnQoUG9ydCk6CkBAIC00NCw2ICs0NSw4
IEBAIGNsYXNzIEd0a1BvcnQoUG9ydCk6CiAgICAgICAgIHN1cGVyKEd0a1BvcnQsIHNlbGYpLl9f
aW5pdF9fKCphcmdzLCAqKmt3YXJncykKICAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6
ZXIgPSBQdWxzZUF1ZGlvU2FuaXRpemVyKCkKIAorICAgICAgICBzZWxmLl9sZWFrX2RldGVjdG9y
ID0gR3RrTGVha0RldGVjdG9yKHNlbGYpCisKICAgICBkZWYgd2Fybl9pZl9idWdfbWlzc2luZ19p
bl90ZXN0X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgcmV0dXJuIG5vdCBzZWxmLmdldF9v
cHRpb24oJ3dlYmtpdF90ZXN0X3J1bm5lcicpCiAKQEAgLTEyMiw4ICsxMjUsMTcgQEAgY2xhc3Mg
R3RrUG9ydChQb3J0KToKICAgICBkZWYgX3BvcnRfc3BlY2lmaWNfZXhwZWN0YXRpb25zX2ZpbGVz
KHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl93ZWJr
aXRfYmFzZWxpbmVfcGF0aChwKSwgJ1Rlc3RFeHBlY3RhdGlvbnMnKSBmb3IgcCBpbiByZXZlcnNl
ZChzZWxmLl9zZWFyY2hfcGF0aHMoKSldCiAKLSAgICAjIEZJWE1FOiBXZSBzaG91bGQgZmluZCBh
IHdheSB0byBzaGFyZSB0aGlzIGltcGxtZW50YXRpb24gd2l0aCBHdGssCi0gICAgIyBvciB0ZWFj
aCBydW4tbGF1bmNoZXIgaG93IHRvIGNhbGwgcnVuLXNhZmFyaSBhbmQgbW92ZSB0aGlzIGRvd24g
dG8gUG9ydC4KKyAgICBkZWYgcHJpbnRfbGVha3Nfc3VtbWFyeShzZWxmKToKKyAgICAgICAgaWYg
bm90IHNlbGYuZ2V0X29wdGlvbignbGVha3MnKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAg
ICAjIFdlJ3JlIGluIHRoZSBtYW5hZ2VyIHByb2Nlc3MsIHNvIHRoZSBsZWFrIGRldGVjdG9yIHdp
bGwgbm90IGhhdmUgYSB2YWxpZCBsaXN0IG9mIGxlYWsgZmlsZXMuCisgICAgICAgICMgRklYTUU6
IFRoaXMgaXMgYSBoYWNrLCBidXQgd2UgZG9uJ3QgaGF2ZSBhIGJldHRlciB3YXkgdG8gZ2V0IHRo
aXMgaW5mb3JtYXRpb24gZnJvbSB0aGUgd29ya2VycyB5ZXQuCisgICAgICAgICMgRklYTUU6IFRo
aXMgd2lsbCBpbmNsdWRlIHRvbyBtYW55IGxlYWtzIGluIHN1YnNlcXVlbnQgcnVucyB1bnRpbCB0
aGUgcmVzdWx0cyBkaXJlY3RvcnkgaXMgY2xlYXJlZCEKKyAgICAgICAgbGVha3NfZmlsZXMgPSBz
ZWxmLl9sZWFrX2RldGVjdG9yLmxlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeShzZWxmLnJlc3VsdHNf
ZGlyZWN0b3J5KCkpCisgICAgICAgIGlmIG5vdCBsZWFrc19maWxlczoKKyAgICAgICAgICAgIHJl
dHVybgorICAgICAgICBzZWxmLl9sZWFrX2RldGVjdG9yLnBhcnNlX2xlYWtzX291dHB1dChsZWFr
c19maWxlcykKKwogICAgIGRlZiBzaG93X3Jlc3VsdHNfaHRtbF9maWxlKHNlbGYsIHJlc3VsdHNf
ZmlsZW5hbWUpOgogICAgICAgICBydW5fbGF1bmNoZXJfYXJncyA9IFsiZmlsZTovLyVzIiAlIHJl
c3VsdHNfZmlsZW5hbWVdCiAgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbignd2Via2l0X3Rlc3Rf
cnVubmVyJyk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrX2xl
YWtkZXRlY3Rvci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGtfbGVha2RldGVj
dG9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcxMzE5ZDBkNWQyNjUzMGNjMGI4MzRkZTNhNGFjOWRhNjg2NDhh
OTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrX2xl
YWtkZXRlY3Rvci5weQpAQCAtMCwwICsxLDU3IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBTYW1z
dW5nIEVsZWN0cm9uaWNzLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2ltcG9ydCBsb2dnaW5nCisKK2Zyb20gd2Via2l0cHkucG9ydC5tZW1jaGVja19hbmFseXpl
IGltcG9ydCBNZW1jaGVja0FuYWx5emVyCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKKworCisjIElmIG90aGVyIHBvcnRzL3BsYXRmb3JtcyBkZWNpZGUgdG8gc3VwcG9ydCAt
LWxlYWtzLCB3ZSBzaG91bGQgc2VlIGFib3V0CisjIHNoYXJpbmcgYXMgbXVjaCBvZiB0aGlzIGNv
ZGUgYXMgcG9zc2libGUuCisjIFRoaXMgY29kZSBpcyBmb3IgdGhlIEd0aysgcG9ydCwgdGFrZW4g
ZnJvbSB0aGUgTWFjIHBvcnQuCisKK2NsYXNzIEd0a0xlYWtEZXRlY3RvcihvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0KToKKyAgICAgICAgIyBXZSBzaG91bGQgb3BlcmF0ZSBv
biBhICJwbGF0Zm9ybSIgbm90IGEgcG9ydCBoZXJlLgorICAgICAgICBzZWxmLl9wb3J0ID0gcG9y
dAorICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBwb3J0Ll9leGVjdXRpdmUKKyAgICAgICAgc2Vs
Zi5fZmlsZXN5c3RlbSA9IHBvcnQuX2ZpbGVzeXN0ZW0KKyAgICAgICAgc2VsZi5fbWVtY2hlY2tf
bGVha19hbmFseXplciA9IE1lbWNoZWNrQW5hbHl6ZXIocG9ydC53ZWJraXRfYmFzZSgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vf
Z2RiPUZhbHNlKQorCisgICAgZGVmIHBhcnNlX2xlYWtzX291dHB1dChzZWxmLCBsZWFrc19maWxl
cyk6CisgICAgICAgIHNlbGYuX21lbWNoZWNrX2xlYWtfYW5hbHl6ZXIuUmVwb3J0KGxlYWtzX2Zp
bGVzLCAgTm9uZSkKKworICAgIGRlZiBsZWFrc19maWxlc19pbl9kaXJlY3Rvcnkoc2VsZiwgZGly
ZWN0b3J5KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uZ2xvYihzZWxmLl9maWxl
c3lzdGVtLmpvaW4oZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiKi1sZWFrcy54bWwiKSkKKworICAgIGRlZiBsZWFr
c19maWxlX25hbWUoc2VsZiwgcHJvY2Vzc19uYW1lLCBwcm9jZXNzX3BpZCk6CisgICAgICAgIHJl
dHVybiAiZHJ0LSVzLWxlYWtzLnhtbCIgJSAocHJvY2Vzc19waWQpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWVtY2hlY2tfYW5hbHl6ZS5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9tZW1jaGVja19hbmFseXplLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMTAyYzQ0
ZWYzNTI1NTExYjM1YTQyZGY2NzgxOWMwNjc2NDg4MWQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWVtY2hlY2tfYW5hbHl6ZS5weQpAQCAtMCwwICsxLDY4
NSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIE9yaWdpbmFsbHkgZnJvbSBDaHJvbWl1bSwg
Y29weXJpZ2h0IGFzIGZvbGxvd3M6CisjCisjIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21p
dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKwor
IyBtZW1jaGVja19hbmFseXplLnB5CisKKycnJyBHaXZlbiBhIHZhbGdyaW5kIFhNTCBmaWxlLCBw
YXJzZXMgZXJyb3JzIGFuZCB1bmlxdWVzIHRoZW0uJycnCisKK2ltcG9ydCBnZGJfaGVscGVyCisK
K2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CitpbXBvcnQgaGFzaGxpYgoraW1w
b3J0IGxvZ2dpbmcKK2ltcG9ydCBvcHRwYXJzZQoraW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9y
dCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitpbXBvcnQgdGltZQorZnJvbSB4bWwuZG9tLm1pbmlk
b20gaW1wb3J0IHBhcnNlCitmcm9tIHhtbC5wYXJzZXJzLmV4cGF0IGltcG9ydCBFeHBhdEVycm9y
CisKK2ltcG9ydCBjb21tb24KKworIyBHbG9iYWwgc3ltYm9sIHRhYmxlICh5dWNrKQorVGhlQWRk
cmVzc1RhYmxlID0gTm9uZQorCisjIFRoZXNlIGFyZSByZWdleHBzIHRoYXQgZGVmaW5lIGZ1bmN0
aW9ucyAodXNpbmcgQysrIG1hbmdsZWQgbmFtZXMpCisjIHdlIGRvbid0IHdhbnQgdG8gc2VlIGlu
IHN0YWNrIHRyYWNlcyB3aGlsZSBwcmV0dHkgcHJpbnRpbmcKKyMgb3IgZ2VuZXJhdGluZyBzdXBw
cmVzc2lvbnMuCisjIEp1c3Qgc3RvcCBwcmludGluZyB0aGUgc3RhY2svc3VwcHJlc3Npb24gZnJh
bWVzIHdoZW4gdGhlIGN1cnJlbnQgb25lCisjIG1hdGNoZXMgYW55IG9mIHRoZXNlLgorX0JPUklO
R19DQUxMRVJTID0gY29tbW9uLkJvcmluZ0NhbGxlcnMobWFuZ2xlZD1UcnVlLCB1c2VfcmVfd2ls
ZGNhcmRzPVRydWUpCisKKworZGVmIGdldFRleHRPZih0b3Bfbm9kZSwgbmFtZSk6CisgICAgJycn
IFJldHVybnMgYWxsIHRleHQgaW4gYWxsIERPTSBub2RlcyB3aXRoIGEgY2VydGFpbiB8bmFtZXwg
dGhhdCBhcmUKKyAgICBjaGlsZHJlbiBvZiB8dG9wX25vZGV8LgorICAgICcnJworCisgICAgdGV4
dCA9ICIiCisgICAgZm9yIG5vZGVzX25hbWVkIGluIHRvcF9ub2RlLmdldEVsZW1lbnRzQnlUYWdO
YW1lKG5hbWUpOgorICAgICAgICB0ZXh0ICs9ICIiLmpvaW4oW25vZGUuZGF0YSBmb3Igbm9kZSBp
biBub2Rlc19uYW1lZC5jaGlsZE5vZGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm9k
ZS5ub2RlVHlwZSA9PSBub2RlLlRFWFRfTk9ERV0pCisgICAgcmV0dXJuIHRleHQKKworCitkZWYg
Z2V0Q0RBVEFPZih0b3Bfbm9kZSwgbmFtZSk6CisgICAgJycnIFJldHVybnMgYWxsIENEQVRBIGlu
IGFsbCBET00gbm9kZXMgd2l0aCBhIGNlcnRhaW4gfG5hbWV8IHRoYXQgYXJlCisgICAgY2hpbGRy
ZW4gb2YgfHRvcF9ub2RlfC4KKyAgICAnJycKKworICAgIHRleHQgPSAiIgorICAgIGZvciBub2Rl
c19uYW1lZCBpbiB0b3Bfbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZShuYW1lKToKKyAgICAgICAg
dGV4dCArPSAiIi5qb2luKFtub2RlLmRhdGEgZm9yIG5vZGUgaW4gbm9kZXNfbmFtZWQuY2hpbGRO
b2RlcworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUubm9kZVR5cGUgPT0gbm9kZS5D
REFUQV9TRUNUSU9OX05PREVdKQorICAgIGlmICh0ZXh0ID09ICIiKToKKyAgICAgICAgcmV0dXJu
IE5vbmUKKyAgICByZXR1cm4gdGV4dAorCisKK2RlZiBzaG9ydGVuRmlsZVBhdGgoc291cmNlX2Rp
ciwgZGlyZWN0b3J5KToKKyAgICAnJydSZXR1cm5zIGEgc3RyaW5nIHdpdGggdGhlIHN0cmluZyBw
cmVmaXggfHNvdXJjZV9kaXJ8IHJlbW92ZWQgZnJvbQorICAgIHxkaXJlY3Rvcnl8LicnJworICAg
IHByZWZpeGVzX3RvX2N1dCA9IFsiYnVpbGQvc3JjLyIsICJ2YWxncmluZC9jb3JlZ3JpbmQvIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIm91dC9SZWxlYXNlLy4uLy4uLyJdCisKKyAgICBpZiBz
b3VyY2VfZGlyOgorICAgICAgICBwcmVmaXhlc190b19jdXQuYXBwZW5kKHNvdXJjZV9kaXIpCisK
KyAgICBmb3IgcCBpbiBwcmVmaXhlc190b19jdXQ6CisgICAgICAgIGluZGV4ID0gZGlyZWN0b3J5
LnJmaW5kKHApCisgICAgICAgIGlmIGluZGV4ICE9IC0xOgorICAgICAgICAgICAgZGlyZWN0b3J5
ID0gZGlyZWN0b3J5W2luZGV4ICsgbGVuKHApOl0KKworICAgIHJldHVybiBkaXJlY3RvcnkKKwor
IyBDb25zdGFudHMgdGhhdCBnaXZlIHJlYWwgbmFtZXMgdG8gdGhlIGFiYnJldmlhdGlvbnMgaW4g
dmFsZ3JpbmQgWE1MIG91dHB1dC4KK0lOU1RSVUNUSU9OX1BPSU5URVIgPSAiaXAiCitPQkpFQ1Rf
RklMRSA9ICJvYmoiCitGVU5DVElPTl9OQU1FID0gImZuIgorU1JDX0ZJTEVfRElSID0gImRpciIK
K1NSQ19GSUxFX05BTUUgPSAiZmlsZSIKK1NSQ19MSU5FID0gImxpbmUiCisKKworZGVmIGdhdGhl
ckZyYW1lcyhub2RlLCBzb3VyY2VfZGlyKToKKyAgICBmcmFtZXMgPSBbXQorICAgIGZvciBmcmFt
ZSBpbiBub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmcmFtZSIpOgorICAgICAgICBmcmFtZV9k
aWN0ID0geworICAgICAgICAgICAgSU5TVFJVQ1RJT05fUE9JTlRFUjogZ2V0VGV4dE9mKGZyYW1l
LCBJTlNUUlVDVElPTl9QT0lOVEVSKSwKKyAgICAgICAgICAgIE9CSkVDVF9GSUxFOiBnZXRUZXh0
T2YoZnJhbWUsIE9CSkVDVF9GSUxFKSwKKyAgICAgICAgICAgIEZVTkNUSU9OX05BTUU6IGdldFRl
eHRPZihmcmFtZSwgRlVOQ1RJT05fTkFNRSksCisgICAgICAgICAgICBTUkNfRklMRV9ESVI6IHNo
b3J0ZW5GaWxlUGF0aCgKKyAgICAgICAgICAgICAgICAgICAgc291cmNlX2RpciwgZ2V0VGV4dE9m
KGZyYW1lLCBTUkNfRklMRV9ESVIpKSwKKyAgICAgICAgICAgIFNSQ19GSUxFX05BTUU6IGdldFRl
eHRPZihmcmFtZSwgU1JDX0ZJTEVfTkFNRSksCisgICAgICAgICAgICBTUkNfTElORTogZ2V0VGV4
dE9mKGZyYW1lLCBTUkNfTElORSl9CisKKyAgICAgICAgIyBJZ25vcmUgdGhpcyBmcmFtZSBhbmQg
YWxsIHRoZSBmb2xsb3dpbmcgaWYgaXQncyBhICJib3JpbmciIGZ1bmN0aW9uLgorICAgICAgICBl
bm91Z2hfZnJhbWVzID0gRmFsc2UKKyAgICAgICAgZm9yIHJlZ2V4cCBpbiBfQk9SSU5HX0NBTExF
UlM6CisgICAgICAgICAgICBpZiByZS5tYXRjaCgiXiVzJCIgJSByZWdleHAsIGZyYW1lX2RpY3Rb
RlVOQ1RJT05fTkFNRV0pOgorICAgICAgICAgICAgICAgIGVub3VnaF9mcmFtZXMgPSBUcnVlCisg
ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgaWYgZW5vdWdoX2ZyYW1lczoKKyAgICAgICAg
ICAgIGJyZWFrCisKKyAgICAgICAgZnJhbWVzICs9IFtmcmFtZV9kaWN0XQorCisgICAgICAgIGds
b2JhbCBUaGVBZGRyZXNzVGFibGUKKyAgICAgICAgaWYgVGhlQWRkcmVzc1RhYmxlICE9IE5vbmUg
YW5kIGZyYW1lX2RpY3RbU1JDX0xJTkVdID09ICIiOgorICAgICAgICAgICAgIyBUcnkgdXNpbmcg
Z2RiCisgICAgICAgICAgICBUaGVBZGRyZXNzVGFibGUuQWRkKGZyYW1lX2RpY3RbT0JKRUNUX0ZJ
TEVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV9kaWN0W0lOU1RSVUNU
SU9OX1BPSU5URVJdKQorICAgIHJldHVybiBmcmFtZXMKKworCitjbGFzcyBWYWxncmluZEVycm9y
OgorICAgICcnJyBUYWtlcyBhIDxET00gRWxlbWVudDogZXJyb3I+IG5vZGUgYW5kIHJlYWRzIGFs
bCB0aGUgZGF0YSBmcm9tIGl0LiBBCisgICAgVmFsZ3JpbmRFcnJvciBpcyBpbW11dGFibGUgYW5k
IGlzIGhhc2hlZCBvbiBpdHMgcHJldHR5IHByaW50ZWQgb3V0cHV0LgorICAgICcnJworCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZV9kaXIsIGVycm9yX25vZGUsIGNvbW1hbmRsaW5lLCB0
ZXN0Y2FzZSk6CisgICAgICAgICcnJyBDb3BpZXMgYWxsIHRoZSByZWxldmFudCBpbmZvcm1hdGlv
biBvdXQgb2YgdGhlIERPTSBhbmQgaW50byBvYmplY3QKKyAgICAgICAgcHJvcGVydGllcy4KKwor
ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZXJyb3Jfbm9kZTogVGhlIDxlcnJvcj48L2Vycm9y
PiBET00gbm9kZSB3ZSdyZSBleHRyYWN0aW5nIGZyb20uCisgICAgICAgICAgICBzb3VyY2VfZGly
OiBQcmVmaXggdGhhdCBzaG91bGQgYmUgc3RyaXBwZWQgZnJvbSB0aGUgPGRpcj4gbm9kZS4KKyAg
ICAgICAgICAgIGNvbW1hbmRsaW5lOiBUaGUgY29tbWFuZCB0aGF0IHdhcyBydW4gdW5kZXIgdmFs
Z3JpbmQKKyAgICAgICAgICAgIHRlc3RjYXNlOiBUaGUgdGVzdCBjYXNlIG5hbWUsIGlmIGtub3du
LgorICAgICAgICAnJycKKworICAgICAgICAjIFZhbGdyaW5kIGVycm9ycyBjb250YWluIG9uZSA8
d2hhdD48c3RhY2s+IHBhaXIsIHBsdXMgYW4gb3B0aW9uYWwKKyAgICAgICAgIyA8YXV4d2hhdD48
c3RhY2s+IHBhaXIsIHBsdXMgYW4gb3B0aW9uYWwgPG9yaWdpbj48d2hhdD48c3RhY2s+PC9vcmln
aW4+LAorICAgICAgICAjIHBsdXMgKHNpbmNlIDMuNS4wKSBhIDxzdXBwcmVzc2lvbj48L3N1cHBy
ZXNzaW9uPiBwYWlyLgorICAgICAgICAjIChPcmlnaW4gaXMgbmljZWx5IGVuY2xvc2VkOyB0b28g
YmFkIHRoZSBvdGhlciB0d28gYXJlbid0LikKKyAgICAgICAgIyBUaGUgbW9zdCBjb21tb24gd2F5
IHRvIHNlZSBhbGwgdGhyZWUgaW4gb25lIHJlcG9ydCBpcworICAgICAgICAjIGEgc3lzY2FsbCB3
aXRoIGEgcGFyYW1ldGVyIHRoYXQgcG9pbnRzIHRvIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCBlLmcu
CisgICAgICAgICMgRm9ybWF0OgorICAgICAgICAjIDxlcnJvcj4KKyAgICAgICAgIyAgIDx1bmlx
dWU+MHg2ZDwvdW5pcXVlPgorICAgICAgICAjICAgPHRpZD4xPC90aWQ+CisgICAgICAgICMgICA8
a2luZD5TeXNjYWxsUGFyYW08L2tpbmQ+CisgICAgICAgICMgICA8d2hhdD5TeXNjYWxsIHBhcmFt
IHdyaXRlKGJ1ZikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKTwvd2hhdD4KKyAgICAg
ICAgIyAgIDxzdGFjaz4KKyAgICAgICAgIyAgICAgPGZyYW1lPgorICAgICAgICAjICAgICAuLi4K
KyAgICAgICAgIyAgICAgPC9mcmFtZT4KKyAgICAgICAgIyAgIDwvc3RhY2s+CisgICAgICAgICMg
ICA8YXV4d2hhdD5BZGRyZXNzIDB4NWM5YWY0ZiBpcyA3IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9m
IC4uLjwvYXV4d2hhdD4KKyAgICAgICAgIyAgIDxzdGFjaz4KKyAgICAgICAgIyAgICAgPGZyYW1l
PgorICAgICAgICAjICAgICAuLi4KKyAgICAgICAgIyAgICAgPC9mcmFtZT4KKyAgICAgICAgIyAg
IDwvc3RhY2s+CisgICAgICAgICMgICA8b3JpZ2luPgorICAgICAgICAjICAgPHdoYXQ+VW5pbml0
aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbjwvd2hhdD4KKyAg
ICAgICAgIyAgIDxzdGFjaz4KKyAgICAgICAgIyAgICAgPGZyYW1lPgorICAgICAgICAjICAgICAu
Li4KKyAgICAgICAgIyAgICAgPC9mcmFtZT4KKyAgICAgICAgIyAgIDwvc3RhY2s+CisgICAgICAg
ICMgICA8L29yaWdpbj4KKyAgICAgICAgIyAgIDxzdXBwcmVzc2lvbj4KKyAgICAgICAgIyAgICAg
PHNuYW1lPmluc2VydF9hX3N1cHByZXNzaW9uX25hbWVfaGVyZTwvc25hbWU+CisgICAgICAgICMg
ICAgIDxza2luZD5NZW1jaGVjazpQYXJhbTwvc2tpbmQ+CisgICAgICAgICMgICAgIDxza2F1eD53
cml0ZShidWYpPC9za2F1eD4KKyAgICAgICAgIyAgICAgPHNmcmFtZT4gPGZ1bj5fX3dyaXRlX25v
Y2FuY2VsPC9mdW4+IDwvc2ZyYW1lPgorICAgICAgICAjICAgICAuLi4KKyAgICAgICAgIyAgICAg
PHNmcmFtZT4gPGZ1bj5tYWluPC9mdW4+IDwvc2ZyYW1lPgorICAgICAgICAjICAgICA8cmF3dGV4
dD4KKyAgICAgICAgIyA8IVtDREFUQVsKKyAgICAgICAgIyB7CisgICAgICAgICMgICAgPGluc2Vy
dF9hX3N1cHByZXNzaW9uX25hbWVfaGVyZT4KKyAgICAgICAgIyAgICBNZW1jaGVjazpQYXJhbQor
ICAgICAgICAjICAgIHdyaXRlKGJ1ZikKKyAgICAgICAgIyAgICBmdW46X193cml0ZV9ub2NhbmNl
bAorICAgICAgICAjICAgIC4uLgorICAgICAgICAjICAgIGZ1bjptYWluCisgICAgICAgICMgfQor
ICAgICAgICAjIF1dPgorICAgICAgICAjICAgICA8L3Jhd3RleHQ+CisgICAgICAgICMgICA8L3N1
cHByZXNzaW9uPgorICAgICAgICAjIDwvZXJyb3I+CisgICAgICAgICMKKyAgICAgICAgIyBFYWNo
IGZyYW1lIGxvb2tzIGxpa2UgdGhpczoKKyAgICAgICAgIyAgPGZyYW1lPgorICAgICAgICAjICAg
IDxpcD4weDgzNzUxQkM8L2lwPgorICAgICAgICAjICAgIDxvYmo+L2RhdGEvZGtlZ2VsL2Nocm9t
ZS1idWlsZC9zcmMvb3V0L1JlbGVhc2UvYmFzZV91bml0dGVzdHM8L29iaj4KKyAgICAgICAgIyAg
ICA8Zm4+X1pON3Rlc3Rpbmc4aW50ZXJuYWwxMlRlc3RJbmZvSW1wbDdSdW5UZXN0RVBOU184VGVz
dEluZm9FPC9mbj4KKyAgICAgICAgIyAgICA8ZGlyPi9kYXRhL2RrZWdlbC9jaHJvbWUtYnVpbGQv
c3JjL3Rlc3RpbmcvZ3Rlc3Qvc3JjPC9kaXI+CisgICAgICAgICMgICAgPGZpbGU+Z3Rlc3QtaW50
ZXJuYWwtaW5sLmg8L2ZpbGU+CisgICAgICAgICMgICAgPGxpbmU+NjU1PC9saW5lPgorICAgICAg
ICAjICA8L2ZyYW1lPgorICAgICAgICAjIGFsdGhvdWdoIHRoZSBkaXIsIGZpbGUsIGFuZCBsaW5l
IGVsZW1lbnRzIGFyZSBtaXNzaW5nIGlmIHRoZXJlIGlzCisgICAgICAgICMgbm8gZGVidWcgaW5m
by4KKworICAgICAgICBzZWxmLl9raW5kID0gZ2V0VGV4dE9mKGVycm9yX25vZGUsICJraW5kIikK
KyAgICAgICAgc2VsZi5fYmFja3RyYWNlcyA9IFtdCisgICAgICAgIHNlbGYuX3N1cHByZXNzaW9u
ID0gTm9uZQorICAgICAgICBzZWxmLl9jb21tYW5kbGluZSA9IGNvbW1hbmRsaW5lCisgICAgICAg
IHNlbGYuX3Rlc3RjYXNlID0gdGVzdGNhc2UKKyAgICAgICAgc2VsZi5fYWRkaXRpb25hbCA9IFtd
CisKKyAgICAgICAgIyBJdGVyYXRlIHRocm91Z2ggdGhlIG5vZGVzLCBwYXJzaW5nIDx3aGF0fGF1
eHdoYXQ+PHN0YWNrPiBwYWlycy4KKyAgICAgICAgZGVzY3JpcHRpb24gPSBOb25lCisgICAgICAg
IGZvciBub2RlIGluIGVycm9yX25vZGUuY2hpbGROb2RlczoKKyAgICAgICAgICAgIGlmIG5vZGUu
bG9jYWxOYW1lID09ICJ3aGF0IiBvciBub2RlLmxvY2FsTmFtZSA9PSAiYXV4d2hhdCI6CisgICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiIi5qb2luKFtuLmRhdGEgZm9yIG4gaW4gbm9kZS5j
aGlsZE5vZGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBuLm5v
ZGVUeXBlID09IG4uVEVYVF9OT0RFXSkKKyAgICAgICAgICAgIGVsaWYgbm9kZS5sb2NhbE5hbWUg
PT0gInh3aGF0IjoKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGdldFRleHRPZihub2Rl
LCAidGV4dCIpCisgICAgICAgICAgICBlbGlmIG5vZGUubG9jYWxOYW1lID09ICJzdGFjayI6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGRlc2NyaXB0aW9uCisgICAgICAgICAgICAgICAgc2VsZi5f
YmFja3RyYWNlcy5hcHBlbmQoW2Rlc2NyaXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnYXRoZXJGcmFtZXMobm9kZSwgc291cmNlX2RpcildKQorICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uID0gTm9uZQorICAgICAgICAgICAgZWxpZiBub2RlLmxvY2Fs
TmFtZSA9PSAib3JpZ2luIjoKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGdldFRleHRP
Zihub2RlLCAid2hhdCIpCisgICAgICAgICAgICAgICAgc3RhY2sgPSBub2RlLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJzdGFjayIpWzBdCisgICAgICAgICAgICAgICAgZnJhbWVzID0gZ2F0aGVyRnJh
bWVzKHN0YWNrLCBzb3VyY2VfZGlyKQorICAgICAgICAgICAgICAgIHNlbGYuX2JhY2t0cmFjZXMu
YXBwZW5kKFtkZXNjcmlwdGlvbiwgZnJhbWVzXSkKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlv
biA9IE5vbmUKKyAgICAgICAgICAgICAgICBzdGFjayA9IE5vbmUKKyAgICAgICAgICAgICAgICBm
cmFtZXMgPSBOb25lCisgICAgICAgICAgICBlbGlmIGRlc2NyaXB0aW9uIGFuZCBub2RlLmxvY2Fs
TmFtZSAhPSBOb25lOgorICAgICAgICAgICAgICAgICMgVGhlIGxhc3Rlc3QgZGVzY3JpcHRpb24g
aGFzIG5vIHN0YWNrLAorICAgICAgICAgICAgICAgICMgZS5nLiAiQWRkcmVzcyAweDI4IGlzIHVu
a25vd24iCisgICAgICAgICAgICAgICAgc2VsZi5fYWRkaXRpb25hbC5hcHBlbmQoZGVzY3JpcHRp
b24pCisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBOb25lCisKKyAgICAgICAgICAgIGlm
IG5vZGUubG9jYWxOYW1lID09ICJzdXBwcmVzc2lvbiI6CisgICAgICAgICAgICAgICAgc2VsZi5f
c3VwcHJlc3Npb24gPSBnZXRDREFUQU9mKG5vZGUsICJyYXd0ZXh0IikKKworICAgIGRlZiBfX3N0
cl9fKHNlbGYpOgorICAgICAgICAnJycgUHJldHR5IHByaW50IHRoZSB0eXBlIGFuZCBiYWNrdHJh
Y2Uocykgb2YgdGhpcyBzcGVjaWZpYyBlcnJvciwKKyAgICAgICAgICAgICAgICBpbmNsdWRpbmcg
c3VwcHJlc3Npb24gKHdoaWNoIGlzIGp1c3QgYSBtYW5nbGVkIGJhY2t0cmFjZSkuJycnCisgICAg
ICAgIG91dHB1dCA9ICIiCisgICAgICAgIGlmIChzZWxmLl9jb21tYW5kbGluZSk6CisgICAgICAg
ICAgICBvdXRwdXQgKz0gc2VsZi5fY29tbWFuZGxpbmUgKyAiXG4iCisKKyAgICAgICAgb3V0cHV0
ICs9IHNlbGYuX2tpbmQgKyAiXG4iCisgICAgICAgIGZvciBiYWNrdHJhY2UgaW4gc2VsZi5fYmFj
a3RyYWNlczoKKyAgICAgICAgICAgIG91dHB1dCArPSBiYWNrdHJhY2VbMF0gKyAiXG4iCisgICAg
ICAgICAgICBmaWx0ZXIgPSBzdWJwcm9jZXNzLlBvcGVuKCJjKytmaWx0IC1uIiwgc3RkaW49c3Vi
cHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRv
dXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNoZWxsPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbG9zZV9mZHM9VHJ1ZSkKKyAgICAgICAgICAgIGJ1ZiA9ICIiCisgICAgICAgICAgICBm
b3IgZnJhbWUgaW4gYmFja3RyYWNlWzFdOgorICAgICAgICAgICAgICAgIGJ1ZiArPSAoZnJhbWVb
RlVOQ1RJT05fTkFNRV0gb3IgXAorICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVbSU5TVFJV
Q1RJT05fUE9JTlRFUl0pICsgIlxuIgorICAgICAgICAgICAgKHN0ZG91dGJ1Ziwgc3RkZXJyYnVm
KSA9IGZpbHRlci5jb21tdW5pY2F0ZShidWYuZW5jb2RlKCdsYXRpbi0xJykpCisgICAgICAgICAg
ICBkZW1hbmdsZWRfbmFtZXMgPSBzdGRvdXRidWYuc3BsaXQoIlxuIikKKworICAgICAgICAgICAg
aSA9IDAKKyAgICAgICAgICAgIGZvciBmcmFtZSBpbiBiYWNrdHJhY2VbMV06CisgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICgiICAgICIgKyBkZW1hbmdsZWRfbmFtZXNbaV0pCisgICAgICAgICAg
ICAgICAgaSA9IGkgKyAxCisKKyAgICAgICAgICAgICAgICBnbG9iYWwgVGhlQWRkcmVzc1RhYmxl
CisgICAgICAgICAgICAgICAgaWYgVGhlQWRkcmVzc1RhYmxlICE9IE5vbmUgYW5kIGZyYW1lW1NS
Q19GSUxFX0RJUl0gPT0gIiI6CisgICAgICAgICAgICAgICAgICAgICMgVHJ5IHVzaW5nIGdkYgor
ICAgICAgICAgICAgICAgICAgICBmb28gPSBUaGVBZGRyZXNzVGFibGUuR2V0RmlsZUxpbmUoCisg
ICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVtPQkpFQ1RfRklMRV0sCisgICAgICAgICAgICAg
ICAgICAgICAgICBmcmFtZVtJTlNUUlVDVElPTl9QT0lOVEVSXSkKKyAgICAgICAgICAgICAgICAg
ICAgaWYgZm9vWzBdICE9IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
KCIgKCIgKyBmb29bMF0gKyAiOiIgKyBmb29bMV0gKyAiKSIpCisgICAgICAgICAgICAgICAgZWxp
ZiBmcmFtZVtTUkNfRklMRV9ESVJdICE9ICIiOgorICAgICAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gKCIgKCIgKyBmcmFtZVtTUkNfRklMRV9ESVJdICsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiLyIgKyBmcmFtZVtTUkNfRklMRV9OQU1FXSArCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjoiICsgZnJhbWVbU1JDX0xJTkVdICsgIikiKQorICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAiICgiICsgZnJhbWVbT0JKRUNU
X0ZJTEVdICsgIikiCisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICJcbiIKKworICAgICAgICBm
b3IgYWRkaXRpb25hbCBpbiBzZWxmLl9hZGRpdGlvbmFsOgorICAgICAgICAgICAgb3V0cHV0ICs9
IGFkZGl0aW9uYWwgKyAiXG4iCisKKyAgICAgICAgYXNzZXJ0IHNlbGYuX3N1cHByZXNzaW9uICE9
IE5vbmUsICJZb3VyIFZhbGdyaW5kIGRvZXNuJ3QgZ2VuZXJhdGUgIiBcCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1cHByZXNzaW9ucyAtIGlzIGl0IHRvbyBv
bGQ/IgorCisgICAgICAgIGlmIHNlbGYuX3Rlc3RjYXNlOgorICAgICAgICAgICAgb3V0cHV0ICs9
ICJUaGUgcmVwb3J0IGNhbWUgZnJvbSB0aGUgYCVzYCB0ZXN0LlxuIiAlIHNlbGYuX3Rlc3RjYXNl
CisgICAgICAgIG91dHB1dCArPSAiU3VwcHJlc3Npb24gKGVycm9yIGhhc2g9IyUwMTZYIyk6XG4i
ICUgc2VsZi5FcnJvckhhc2goKQorICAgICAgICBvdXRwdXQgKz0gKCIgIEZvciBtb3JlIGluZm8g
b24gdXNpbmcgc3VwcHJlc3Npb25zIHNlZSAiCisgICAgICAgICAgICAgICAgICAgICAgImh0dHA6
Ly9kZXYuY2hyb21pdW0ub3JnL2RldmVsb3BlcnMvdHJlZS1zaGVyaWZmcy8iCisgICAgICAgICAg
ICAgICAgICAgICAgInNoZXJpZmYtZGV0YWlscy1jaHJvbWl1bS9tZW1vcnktc2hlcmlmZiMiCisg
ICAgICAgICAgICAgICAgICAgICAgIlRPQy1TdXBwcmVzc2luZy1tZW1vcnktcmVwb3J0cyIpCisK
KyAgICAgICAgIyBXaWRlbiBzdXBwcmVzc2lvbiBzbGlnaHRseSB0byBtYWtlIHBvcnRhYmxlIGJl
dHdlZW4gbWFjIGFuZCBsaW51eAorICAgICAgICAjIFRPRE8odGltdXJycnIpOiBPb3BzLCB0aGVz
ZSB0cmFuc2Zvcm1hdGlvbnMgc2hvdWxkIGhhcHBlbgorICAgICAgICAjIEJFRk9SRSBjYWxjdWxh
dGluZyB0aGUgaGFzaCEKKyAgICAgICAgc3VwcCA9IHNlbGYuX3N1cHByZXNzaW9uCisgICAgICAg
IHN1cHAgPSBzdXBwLnJlcGxhY2UoImZ1bjpfWm53aiIsICJmdW46X1pudyoiKQorICAgICAgICBz
dXBwID0gc3VwcC5yZXBsYWNlKCJmdW46X1pud20iLCAiZnVuOl9abncqIikKKyAgICAgICAgc3Vw
cCA9IHN1cHAucmVwbGFjZSgiZnVuOl9abmFqIiwgImZ1bjpfWm5hKiIpCisgICAgICAgIHN1cHAg
PSBzdXBwLnJlcGxhY2UoImZ1bjpfWm5hbSIsICJmdW46X1puYSoiKQorCisgICAgICAgICMgU3Bs
aXQgaW50byBsaW5lcyBzbyB3ZSBjYW4gZW5mb3JjZSBsZW5ndGggbGltaXRzCisgICAgICAgIHN1
cHBsaW5lcyA9IHN1cHAuc3BsaXQoIlxuIikKKyAgICAgICAgc3VwcCA9IE5vbmUgICMgdG8gYXZv
aWQgcmUtdXNlCisKKyAgICAgICAgIyBUcnVuY2F0ZSBhdCBsaW5lIDI2IChWR19NQVhfU1VQUF9D
QUxMRVJTIHBsdXMgMiBmb3IgbmFtZSBhbmQgdHlwZSkKKyAgICAgICAgIyBvciBhdCB0aGUgZmly
c3QgJ2JvcmluZycgY2FsbGVyLgorICAgICAgICAjIChodHRwczovL2J1Z3Mua2RlLm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk5NDY4IHByb3Bvc2VzIHJhaXNpbmcKKyAgICAgICAgIyBWR19NQVhfU1VQ
UF9DQUxMRVJTLCBidXQgd2UncmUgcHJvYmFibHkgZmluZSB3aXRoIGl0IGFzIGlzLikKKyAgICAg
ICAgbmV3bGVuID0gbWluKDI2LCBsZW4oc3VwcGxpbmVzKSkKKworICAgICAgICAjIERyb3AgYm9y
aW5nIGZyYW1lcyBhbmQgYWxsIHRoZSBmb2xsb3dpbmcuCisgICAgICAgIGVub3VnaF9mcmFtZXMg
PSBGYWxzZQorICAgICAgICBmb3IgZnJhbWVubyBpbiByYW5nZShuZXdsZW4pOgorICAgICAgICAg
ICAgZm9yIGJvcmluZ19jYWxsZXIgaW4gX0JPUklOR19DQUxMRVJTOgorICAgICAgICAgICAgICAg
IGlmIHJlLm1hdGNoKCJeICtmdW46JXMkIiAlIGJvcmluZ19jYWxsZXIsIHN1cHBsaW5lc1tmcmFt
ZW5vXSk6CisgICAgICAgICAgICAgICAgICAgIG5ld2xlbiA9IGZyYW1lbm8KKyAgICAgICAgICAg
ICAgICAgICAgZW5vdWdoX2ZyYW1lcyA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsK
KyAgICAgICAgICAgIGlmIGVub3VnaF9mcmFtZXM6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAg
ICAgICAgaWYgKGxlbihzdXBwbGluZXMpID4gbmV3bGVuKToKKyAgICAgICAgICAgIHN1cHBsaW5l
cyA9IHN1cHBsaW5lc1swOm5ld2xlbl0KKyAgICAgICAgICAgIHN1cHBsaW5lcy5hcHBlbmQoIn0i
KQorCisgICAgICAgIGZvciBmcmFtZSBpbiByYW5nZShsZW4oc3VwcGxpbmVzKSk6CisgICAgICAg
ICAgICAjIFJlcGxhY2UgdGhlIGFsd2F5cy1jaGFuZ2luZyBhbm9ueW1vdXMgbmFtZXNwYWNlIHBy
ZWZpeCB3aXRoICIqIi4KKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCgiKCArZnVuOilfWk4uKl9H
TE9CQUxfX05fLipcLmNjXyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICJbMC05YS1mQS1G
XXs4fV9bMC05YS1mQS1GXXs4fSguKikiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBs
aW5lc1tmcmFtZV0pCisgICAgICAgICAgICBpZiBtOgorICAgICAgICAgICAgICAgIHN1cHBsaW5l
c1tmcmFtZV0gPSAiKiIuam9pbihtLmdyb3VwcygpKQorCisgICAgICAgIG91dHB1dCArPSAiXG4i
LmpvaW4oc3VwcGxpbmVzKSArICJcbiIKKworICAgICAgICByZXR1cm4gb3V0cHV0CisKKyAgICBk
ZWYgVW5pcXVlU3RyaW5nKHNlbGYpOgorICAgICAgICAnJycgU3RyaW5nIHRvIHVzZSBmb3Igb2Jq
ZWN0IGlkZW50aXR5LiBEb24ndCBwcmludCB0aGlzLCB1c2Ugc3RyKG9iaikKKyAgICAgICAgaW5z
dGVhZC4nJycKKyAgICAgICAgcmVwID0gc2VsZi5fa2luZCArICIgIgorICAgICAgICBmb3IgYmFj
a3RyYWNlIGluIHNlbGYuX2JhY2t0cmFjZXM6CisgICAgICAgICAgICBmb3IgZnJhbWUgaW4gYmFj
a3RyYWNlWzFdOgorICAgICAgICAgICAgICAgIHJlcCArPSBmcmFtZVtGVU5DVElPTl9OQU1FXQor
CisgICAgICAgICAgICAgICAgaWYgZnJhbWVbU1JDX0ZJTEVfRElSXSAhPSAiIjoKKyAgICAgICAg
ICAgICAgICAgICAgcmVwICs9IGZyYW1lW1NSQ19GSUxFX0RJUl0gKyAiLyIgKyBmcmFtZVtTUkNf
RklMRV9OQU1FXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJl
cCArPSBmcmFtZVtPQkpFQ1RfRklMRV0KKworICAgICAgICByZXR1cm4gcmVwCisKKyAgICAjIFRo
aXMgaXMgYSBkZXZpY2UtaW5kZXBlbmRlbnQgaGFzaCBpZGVudGlmeWluZyB0aGUgc3VwcHJlc3Np
b24uCisgICAgIyBCeSBwcmludGluZyBvdXQgdGhpcyBoYXNoIHdlIGNhbiBmaW5kIGR1cGxpY2F0
ZSByZXBvcnRzIGJldHdlZW4gdGVzdHMgYW5kCisgICAgIyBkaWZmZXJlbnQgc2hhcmRzIHJ1bm5p
bmcgb24gbXVsdGlwbGUgYnVpbGRib3RzCisgICAgZGVmIEVycm9ySGFzaChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIGludChoYXNobGliLm1kNShzZWxmLlVuaXF1ZVN0cmluZygpKS5oZXhkaWdlc3Qo
KVs6MTZdLCAxNikKKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGhh
c2goc2VsZi5VbmlxdWVTdHJpbmcoKSkKKworICAgIGRlZiBfX2VxX18oc2VsZiwgcmhzKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuVW5pcXVlU3RyaW5nKCkgPT0gcmhzCisKKworZGVmIGxvZ19pc19m
aW5pc2hlZChmLCBmb3JjZV9maW5pc2gpOgorICAgIGYuc2VlaygwKQorICAgIHByZXZfbGluZSA9
ICIiCisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgbGluZSA9IGYucmVhZGxpbmUoKQorICAgICAg
ICBpZiBsaW5lID09ICIiOgorICAgICAgICAgICAgaWYgbm90IGZvcmNlX2ZpbmlzaDoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICMgT2theSwgdGhlIGxvZyBpcyBu
b3QgZmluaXNoZWQgYnV0IHdlIGNhbgorICAgICAgICAgICAgIyBtYWtlIGl0IHVwIHRvIGJlIHBh
cnNlYWJsZToKKyAgICAgICAgICAgIGlmIHByZXZfbGluZS5zdHJpcCgpIGluIFsiPC9lcnJvcj4i
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8L2Vycm9yY291bnRzPiIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwvc3RhdHVzPiJdOgorICAg
ICAgICAgICAgICAgIGYud3JpdGUoIjwvdmFsZ3JpbmRvdXRwdXQ+XG4iKQorICAgICAgICAgICAg
ICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgJzwv
dmFsZ3JpbmRvdXRwdXQ+JyBpbiBsaW5lOgorICAgICAgICAgICAgIyBWYWxncmluZCBvZnRlbiBo
YXMgZ2FyYmFnZSBhZnRlciA8L3ZhbGdyaW5kb3V0cHV0PiB1cG9uIGNyYXNoLgorICAgICAgICAg
ICAgZi50cnVuY2F0ZSgpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBwcmV2X2xp
bmUgPSBsaW5lCisKKworY2xhc3MgTWVtY2hlY2tBbmFseXplcjoKKyAgICAnJycgR2l2ZW4gYSBz
ZXQgb2YgVmFsZ3JpbmQgWE1MIGZpbGVzLCBwYXJzZSBhbGwgdGhlIGVycm9ycyBvdXQgb2YgdGhl
bSwKKyAgICB1bmlxdWUgdGhlbSBhbmQgb3V0cHV0IHRoZSByZXN1bHRzLicnJworCisgICAgU0FO
SVRZX1RFU1RfU1VQUFJFU1NJT05TID0geworICAgICAgICAgICAgIk1lbWNoZWNrIHNhbml0eSB0
ZXN0IDAxIChtZW1vcnkgbGVhaykuIjogMSwKKyAgICAgICAgICAgICJNZW1jaGVjayBzYW5pdHkg
dGVzdCAwMiAobWFsbG9jL3JlYWQgbGVmdCkuIjogMSwKKyAgICAgICAgICAgICJNZW1jaGVjayBz
YW5pdHkgdGVzdCAwMyAobWFsbG9jL3JlYWQgcmlnaHQpLiI6IDEsCisgICAgICAgICAgICAiTWVt
Y2hlY2sgc2FuaXR5IHRlc3QgMDQgKG1hbGxvYy93cml0ZSBsZWZ0KS4iOiAxLAorICAgICAgICAg
ICAgIk1lbWNoZWNrIHNhbml0eSB0ZXN0IDA1IChtYWxsb2Mvd3JpdGUgcmlnaHQpLiI6IDEsCisg
ICAgICAgICAgICAiTWVtY2hlY2sgc2FuaXR5IHRlc3QgMDYgKG5ldy9yZWFkIGxlZnQpLiI6IDEs
CisgICAgICAgICAgICAiTWVtY2hlY2sgc2FuaXR5IHRlc3QgMDcgKG5ldy9yZWFkIHJpZ2h0KS4i
OiAxLAorICAgICAgICAgICAgIk1lbWNoZWNrIHNhbml0eSB0ZXN0IDA4IChuZXcvd3JpdGUgbGVm
dCkuIjogMSwKKyAgICAgICAgICAgICJNZW1jaGVjayBzYW5pdHkgdGVzdCAwOSAobmV3L3dyaXRl
IHJpZ2h0KS4iOiAxLAorICAgICAgICAgICAgIk1lbWNoZWNrIHNhbml0eSB0ZXN0IDEwICh3cml0
ZSBhZnRlciBmcmVlKS4iOiAxLAorICAgICAgICAgICAgIk1lbWNoZWNrIHNhbml0eSB0ZXN0IDEx
ICh3cml0ZSBhZnRlciBkZWxldGUpLiI6IDEsCisgICAgICAgICAgICAiTWVtY2hlY2sgc2FuaXR5
IHRlc3QgMTIgKGFycmF5IGRlbGV0ZWQgd2l0aG91dCBbXSkuIjogMSwKKyAgICAgICAgICAgICJN
ZW1jaGVjayBzYW5pdHkgdGVzdCAxMyAoc2luZ2xlIGVsZW1lbnQgZGVsZXRlZCB3aXRoIFtdKS4i
OiAxLAorICAgICAgICAgICAgIk1lbWNoZWNrIHNhbml0eSB0ZXN0IDE0IChtYWxsb2MvcmVhZCB1
bmluaXQpLiI6IDEsCisgICAgICAgICAgICAiTWVtY2hlY2sgc2FuaXR5IHRlc3QgMTUgKG5ldy9y
ZWFkIHVuaW5pdCkuIjogMSwKKyAgICB9CisKKyAgICAjIE1heCB0aW1lIHRvIHdhaXQgZm9yIG1l
bWNoZWNrIGxvZ3MgdG8gY29tcGxldGUuCisgICAgTE9HX0NPTVBMRVRJT05fVElNRU9VVCA9IDE4
MC4wCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX2Rpciwgc2hvd19hbGxfbGVha3M9
RmFsc2UsIHVzZV9nZGI9RmFsc2UpOgorICAgICAgICAnJydDcmVhdGUgYSBwYXJzZXIgZm9yIE1l
bWNoZWNrIGxvZ3MuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHNvdXJjZV9kaXI6IFBh
dGggdG8gdG9wIG9mIHNvdXJjZSB0cmVlIGZvciB0aGlzIGJ1aWxkCisgICAgICAgICAgICBzaG93
X2FsbF9sZWFrczogV2hldGhlciB0byBzaG93IGV2ZW4gbGVzcyBpbXBvcnRhbnQgbGVha3MKKyAg
ICAgICAgICAgIHVzZV9nZGI6IFdoZXRoZXIgdG8gdXNlIGdkYiB0byByZXNvbHZlIHNvdXJjZSBm
aWxlbmFtZXMgYW5kIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgIG51bWJlcnMgaW4gdGhlIHJl
cG9ydCBzdGFja3RyYWNlcworICAgICAgICAnJycKKyAgICAgICAgc2VsZi5fc291cmNlX2RpciA9
IHNvdXJjZV9kaXIKKyAgICAgICAgc2VsZi5fc2hvd19hbGxfbGVha3MgPSBzaG93X2FsbF9sZWFr
cworICAgICAgICBzZWxmLl91c2VfZ2RiID0gdXNlX2dkYgorCisgICAgICAgICMgQ29udGFpbnMg
dGhlIHNldCBvZiB1bmlxdWUgZXJyb3JzCisgICAgICAgIHNlbGYuX2Vycm9ycyA9IHNldCgpCisK
KyAgICAgICAgIyBDb250YWlucyB0aGUgdGltZSB3aGVuIHRoZSB3ZSBzdGFydGVkIGFuYWx5emlu
ZyB0aGUgZmlyc3QgbG9nIGZpbGUuCisgICAgICAgICMgVGhpcyB2YXJpYWJsZSBpcyB1c2VkIHRv
IHNraXAgaW5jb21wbGV0ZSBsb2dzIGFmdGVyIHNvbWUgdGltZW91dC4KKyAgICAgICAgc2VsZi5f
YW5hbHl6ZV9zdGFydF90aW1lID0gTm9uZQorCisgICAgZGVmIFJlcG9ydChzZWxmLCBmaWxlcywg
dGVzdGNhc2UsIGNoZWNrX3Nhbml0eT1GYWxzZSk6CisgICAgICAgICcnJ1JlYWRzIGluIGEgc2V0
IG9mIGZpbGVzIGFuZCBwcmludHMgTWVtY2hlY2sgcmVwb3J0LgorCisgICAgICAgIEFyZ3M6Cisg
ICAgICAgICAgICBmaWxlczogQSBsaXN0IG9mIGZpbGVuYW1lcy4KKyAgICAgICAgICAgIGNoZWNr
X3Nhbml0eTogaWYgdHJ1ZSwgc2VhcmNoIGZvciBTQU5JVFlfVEVTVF9TVVBQUkVTU0lPTlMKKyAg
ICAgICAgJycnCisgICAgICAgICMgQmV5b25kIHRoZSBkZXRhaWxlZCBlcnJvcnMgcGFyc2VkIGJ5
IFZhbGdyaW5kRXJyb3IgYWJvdmUsCisgICAgICAgICMgdGhlIHhtbCBmaWxlIGNvbnRhaW4gcmVj
b3JkcyBkZXNjcmliaW5nIHN1cHByZXNzaW9ucyB0aGF0IHdlcmUgdXNlZDoKKyAgICAgICAgIyA8
c3VwcGNvdW50cz4KKyAgICAgICAgIyAgPHBhaXI+CisgICAgICAgICMgICAgPGNvdW50PjI4PC9j
b3VudD4KKyAgICAgICAgIyAgICA8bmFtZT5wYW5nb19mb250X2xlYWtfdG9kbzwvbmFtZT4KKyAg
ICAgICAgIyAgPC9wYWlyPgorICAgICAgICAjICA8cGFpcj4KKyAgICAgICAgIyAgICA8Y291bnQ+
Mzc4PC9jb3VudD4KKyAgICAgICAgIyAgICA8bmFtZT5idWdfMTMyNDM8L25hbWU+CisgICAgICAg
ICMgIDwvcGFpcj4KKyAgICAgICAgIyA8L3N1cHBjb3VudHMKKyAgICAgICAgIyBDb2xsZWN0IHRo
ZXNlIGFuZCBwcmludCB0aGVtIGF0IHRoZSBlbmQuCisgICAgICAgICMKKyAgICAgICAgIyBXaXRo
IG91ciBwYXRjaCBmb3IgaHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAw
MCBpbiwKKyAgICAgICAgIyB0aGUgZmlsZSBhbHNvIGluY2x1ZGVzIHJlY29yZHMgb2YgdGhlIGZv
cm0KKyAgICAgICAgIyA8bG9hZF9vYmo+PG9iaj4vdXNyL2xpYi9saWJnY2Nfcy4xLmR5bGliPC9v
Ymo+PGlwPjB4MjcwMDA8L2lwPjwvbG9hZF9vYmo+CisgICAgICAgICMgZ2l2aW5nIHRoZSBmaWxl
bmFtZSBhbmQgbG9hZCBhZGRyZXNzIG9mIGVhY2ggYmluYXJ5IHRoYXQgd2FzIG1hcHBlZAorICAg
ICAgICAjIGludG8gdGhlIHByb2Nlc3MuCisKKyAgICAgICAgZ2xvYmFsIFRoZUFkZHJlc3NUYWJs
ZQorICAgICAgICBpZiBzZWxmLl91c2VfZ2RiOgorICAgICAgICAgICAgVGhlQWRkcmVzc1RhYmxl
ID0gZ2RiX2hlbHBlci5BZGRyZXNzVGFibGUoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
VGhlQWRkcmVzc1RhYmxlID0gTm9uZQorICAgICAgICBjdXJfcmVwb3J0X2Vycm9ycyA9IHNldCgp
CisgICAgICAgIHN1cHBjb3VudHMgPSBkZWZhdWx0ZGljdChpbnQpCisgICAgICAgIGJhZGZpbGVz
ID0gc2V0KCkKKworICAgICAgICBpZiBzZWxmLl9hbmFseXplX3N0YXJ0X3RpbWUgPT0gTm9uZToK
KyAgICAgICAgICAgIHNlbGYuX2FuYWx5emVfc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCisgICAg
ICAgIHN0YXJ0X3RpbWUgPSBzZWxmLl9hbmFseXplX3N0YXJ0X3RpbWUKKworICAgICAgICBwYXJz
ZV9mYWlsZWQgPSBGYWxzZQorICAgICAgICBmb3IgZmlsZSBpbiBmaWxlczoKKyAgICAgICAgICAg
ICMgV2FpdCB1cCB0byB0aHJlZSBtaW51dGVzIGZvciB2YWxncmluZCB0byBmaW5pc2ggd3JpdGlu
ZyBhbGwKKyAgICAgICAgICAgICMgZmlsZXMsIGJ1dCBhZnRlciB0aGF0LCBqdXN0IHNraXAgaW5j
b21wbGV0ZSBmaWxlcyBhbmQgd2Fybi4KKyAgICAgICAgICAgIGYgPSBvcGVuKGZpbGUsICJyKyIp
CisgICAgICAgICAgICBwaWQgPSByZS5tYXRjaCgiLipcLihbMC05XSspJCIsIGZpbGUpCisgICAg
ICAgICAgICBpZiBwaWQ6CisgICAgICAgICAgICAgICAgcGlkID0gcGlkLmdyb3VwcygpWzBdCisg
ICAgICAgICAgICBmb3VuZCA9IEZhbHNlCisgICAgICAgICAgICBydW5uaW5nID0gVHJ1ZQorICAg
ICAgICAgICAgZmlyc3RydW4gPSBUcnVlCisgICAgICAgICAgICBza2lwID0gRmFsc2UKKyAgICAg
ICAgICAgIG9yaWdzaXplID0gb3MucGF0aC5nZXRzaXplKGZpbGUpCisgICAgICAgICAgICB3aGls
ZSAocnVubmluZyBhbmQgbm90IGZvdW5kIGFuZCBub3Qgc2tpcCBhbmQKKyAgICAgICAgICAgICAg
ICAgICAoZmlyc3RydW4gb3IKKyAgICAgICAgICAgICAgICAgICAgKCh0aW1lLnRpbWUoKSAtIHN0
YXJ0X3RpbWUpIDwgc2VsZi5MT0dfQ09NUExFVElPTl9USU1FT1VUKSkpOgorICAgICAgICAgICAg
ICAgIGZpcnN0cnVuID0gRmFsc2UKKyAgICAgICAgICAgICAgICBmLnNlZWsoMCkKKyAgICAgICAg
ICAgICAgICBpZiBwaWQ6CisgICAgICAgICAgICAgICAgICAgICMgTWFrZSBzdXJlIHRoZSBwcm9j
ZXNzIGlzIHN0aWxsIHJ1bm5pbmcgc28gd2UgZG9uJ3Qgd2FpdAorICAgICAgICAgICAgICAgICAg
ICAjIGZvciAzIG1pbnV0ZXMgaWYgaXQgd2FzIGtpbGxlZC4KKyAgICAgICAgICAgICAgICAgICAg
IyBTZWUgaHR0cDovL2NyYnVnLmNvbS8xNzQ1MworICAgICAgICAgICAgICAgICAgICBwc19vdXQg
PSBzdWJwcm9jZXNzLlBvcGVuKCJwcyBwICVzIiAlIHBpZCwgc2hlbGw9VHJ1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5Q
SVBFKS5zdGRvdXQKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKHBzX291dC5yZWFkbGluZXMo
KSkgPCAyOgorICAgICAgICAgICAgICAgICAgICAgICAgcnVubmluZyA9IEZhbHNlCisgICAgICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2tpcCA9IFRydWUKKyAgICAgICAg
ICAgICAgICAgICAgcnVubmluZyA9IEZhbHNlCisgICAgICAgICAgICAgICAgZm91bmQgPSBsb2df
aXNfZmluaXNoZWQoZiwgRmFsc2UpCisgICAgICAgICAgICAgICAgaWYgbm90IHJ1bm5pbmcgYW5k
IG5vdCBmb3VuZDoKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuKCJWYWxncmluZCBw
cm9jZXNzIFBJRCA9ICVzIGlzIG5vdCBydW5uaW5nIGJ1dCIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICIgaXRzIFhNTCBsb2cgaGFzIG5vdCBiZWVuIGZpbmlzaGVkIGNvcnJlY3RseS5cbiIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJNYWtlIGl0IHVwIGJ5IGFkZGluZyBzb21lIGNsb3Npbmcg
dGFncyBtYW51YWxseS4iICUKKyAgICAgICAgICAgICAgICAgICAgICAgIHBpZCkKKyAgICAgICAg
ICAgICAgICAgICAgZm91bmQgPSBsb2dfaXNfZmluaXNoZWQoZiwgbm90IHJ1bm5pbmcpCisgICAg
ICAgICAgICAgICAgaWYgcnVubmluZyBhbmQgbm90IGZvdW5kOgorICAgICAgICAgICAgICAgICAg
ICB0aW1lLnNsZWVwKDEpCisgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgICAgIGlmIG5v
dCBmb3VuZDoKKyAgICAgICAgICAgICAgICBiYWRmaWxlcy5hZGQoZmlsZSkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgbmV3c2l6ZSA9IG9zLnBhdGguZ2V0c2l6ZShmaWxlKQor
ICAgICAgICAgICAgICAgIGlmIG9yaWdzaXplID4gbmV3c2l6ZSArIDE6CisgICAgICAgICAgICAg
ICAgICAgIGxvZ2dpbmcud2FybihzdHIob3JpZ3NpemUgLSBuZXdzaXplKSArCisgICAgICAgICAg
ICAgICAgICAgICAgICAiIGJ5dGVzIG9mIGp1bmsgd2VyZSBhZnRlciA8L3ZhbGdyaW5kb3V0cHV0
PiBpbiAlcyEiICUKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUpCisgICAgICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBwYXJzZWRfZmlsZSA9IHBhcnNlKGZpbGUpCisg
ICAgICAgICAgICAgICAgZXhjZXB0IEV4cGF0RXJyb3IsIGU6CisgICAgICAgICAgICAgICAgICAg
IHBhcnNlX2ZhaWxlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuKCJj
b3VsZCBub3QgcGFyc2UgJXM6ICVzIiAlIChmaWxlLCBlKSkKKyAgICAgICAgICAgICAgICAgICAg
bGluZW5vID0gZS5saW5lbm8gLSAxCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHRfbGluZXMg
PSA1CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHRfc3RhcnQgPSBtYXgoMCwgbGluZW5vIC0g
Y29udGV4dF9saW5lcykKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dF9lbmQgPSBsaW5lbm8g
KyBjb250ZXh0X2xpbmVzICsgMQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0X2ZpbGUgPSBv
cGVuKGZpbGUsICJyIikKKyAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgY29u
dGV4dF9zdGFydCk6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0X2ZpbGUucmVhZGxp
bmUoKQorICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShjb250ZXh0X3N0YXJ0LCBj
b250ZXh0X2VuZCk6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0X2RhdGEgPSBjb250
ZXh0X2ZpbGUucmVhZGxpbmUoKS5yc3RyaXAoKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYg
aSAhPSBsaW5lbm86CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuKCIg
ICVzIiAlIGNvbnRleHRfZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuKCI+ICVzIiAlIGNvbnRleHRfZGF0
YSkKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dF9maWxlLmNsb3NlKCkKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBUaGVBZGRyZXNzVGFibGUgIT0g
Tm9uZToKKyAgICAgICAgICAgICAgICAgICAgbG9hZF9vYmpzID0gcGFyc2VkX2ZpbGUuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImxvYWRfb2JqIikKKyAgICAgICAgICAgICAgICAgICAgZm9yIGxvYWRf
b2JqIGluIGxvYWRfb2JqczoKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iaiA9IGdldFRleHRP
Zihsb2FkX29iaiwgIm9iaiIpCisgICAgICAgICAgICAgICAgICAgICAgICBpcCA9IGdldFRleHRP
Zihsb2FkX29iaiwgImlwIikKKyAgICAgICAgICAgICAgICAgICAgICAgIFRoZUFkZHJlc3NUYWJs
ZS5BZGRCaW5hcnlBdChvYmosIGlwKQorCisgICAgICAgICAgICAgICAgY29tbWFuZGxpbmUgPSBO
b25lCisgICAgICAgICAgICAgICAgcHJlYW1ibGUgPSBwYXJzZWRfZmlsZS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgicHJlYW1ibGUiKVswXQorICAgICAgICAgICAgICAgIGZvciBub2RlIGluIHByZWFt
YmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5lIik6CisgICAgICAgICAgICAgICAgICAgIGlm
IG5vZGUubG9jYWxOYW1lID09ICJsaW5lIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4
IGluIG5vZGUuY2hpbGROb2RlczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB4Lm5v
ZGVUeXBlID09IG5vZGUuVEVYVF9OT0RFIGFuZCBcCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJDb21tYW5kIiBpbiB4LmRhdGE6CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbW1hbmRsaW5lID0geC5kYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICByYXdfZXJyb3JzID0gcGFyc2VkX2ZpbGUuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImVycm9yIikKKyAgICAgICAgICAgICAgICBmb3IgcmF3X2Vycm9y
IGluIHJhd19lcnJvcnM6CisgICAgICAgICAgICAgICAgICAgICMgSWdub3JlICJwb3NzaWJsZSIg
bGVha3MgYW5kIEludmFsaWRSZWFkL1dyaXRlIGJ5IGRlZmF1bHQuCisgICAgICAgICAgICAgICAg
ICAgIGlmIChzZWxmLl9zaG93X2FsbF9sZWFrcyBvciBcCisgICAgICAgICAgICAgICAgICAgICAg
ICAoZ2V0VGV4dE9mKHJhd19lcnJvciwgImtpbmQiKSAhPSAiTGVha19Qb3NzaWJseUxvc3QiKSBh
bmQgXAorICAgICAgICAgICAgICAgICAgICAgICAgKGdldFRleHRPZihyYXdfZXJyb3IsICJraW5k
IikgIT0gIkxlYWtfU3RpbGxSZWFjaGFibGUiKSBhbmQgXAorICAgICAgICAgICAgICAgICAgICAg
ICAgKGdldFRleHRPZihyYXdfZXJyb3IsICJraW5kIikgIT0gIkludmFsaWRXcml0ZSIpIGFuZCBc
CisgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0VGV4dE9mKHJhd19lcnJvciwgImtpbmQiKSAh
PSAiSW52YWxpZFJlYWQiKSk6CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IFZhbGdy
aW5kRXJyb3Ioc2VsZi5fc291cmNlX2RpciwgcmF3X2Vycm9yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRsaW5lLCB0ZXN0Y2FzZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIGVycm9yIG5vdCBpbiBjdXJfcmVwb3J0X2Vycm9yczoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAjIFdlIGhhdmVuJ3Qgc2VlbiBzdWNoIGVycm9ycyBk
b2luZyB0aGlzIHJlcG9ydCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBlcnJv
ciBpbiBzZWxmLl9lcnJvcnM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgLi4u
IGJ1dCB3ZSBzYXcgaXQgaW4gZWFybGllciByZXBvcnRzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAjIGUuZy4gcHJldmlvdXMgVUkgdGVzdAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjdXJfcmVwb3J0X2Vycm9ycy5hZGQoIlRoaXMgZXJyb3Igd2FzIGFscmVhZHkg
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaW50ZWQgaW4gc29tZSBv
dGhlciB0ZXN0LCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VlICdo
YXNoPSMlMDE2WCMnIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy
cm9yLkVycm9ySGFzaCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgLi4uIGFuZCB3ZSBoYXZlbid0IHNlZW4gaXQg
aW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvdGhlciB0ZXN0cyBhcyB3ZWxs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Vycm9ycy5hZGQoZXJyb3Ip
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cl9yZXBvcnRfZXJyb3JzLmFkZChl
cnJvcikKKworICAgICAgICAgICAgICAgIHN1cHBjb3VudGxpc3QgPSBwYXJzZWRfZmlsZS5nZXRF
bGVtZW50c0J5VGFnTmFtZSgic3VwcGNvdW50cyIpCisgICAgICAgICAgICAgICAgaWYgbGVuKHN1
cHBjb3VudGxpc3QpID4gMDoKKyAgICAgICAgICAgICAgICAgICAgc3VwcGNvdW50bGlzdCA9IHN1
cHBjb3VudGxpc3RbMF0KKyAgICAgICAgICAgICAgICAgICAgZm9yIG5vZGUgaW4gc3VwcGNvdW50
bGlzdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFpciIpOgorICAgICAgICAgICAgICAgICAgICAg
ICAgY291bnQgPSBnZXRUZXh0T2Yobm9kZSwgImNvdW50IikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5hbWUgPSBnZXRUZXh0T2Yobm9kZSwgIm5hbWUiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgc3VwcGNvdW50c1tuYW1lXSArPSBpbnQoY291bnQpCisKKyAgICAgICAgaWYgbGVuKGJhZGZp
bGVzKSA+IDA6CisgICAgICAgICAgICBsb2dnaW5nLndhcm4oInZhbGdyaW5kIGRpZG4ndCBmaW5p
c2ggd3JpdGluZyAlZCBmaWxlcz8hIiAlCisgICAgICAgICAgICAgICAgbGVuKGJhZGZpbGVzKSkK
KyAgICAgICAgICAgIGZvciBmaWxlIGluIGJhZGZpbGVzOgorICAgICAgICAgICAgICAgIGxvZ2dp
bmcud2FybigiTGFzdCAyMCBsaW5lcyBvZiAlcyA6IiAlIGZpbGUpCisgICAgICAgICAgICAgICAg
b3Muc3lzdGVtKCJ0YWlsIC1uIDIwICclcycgMT4mMiIgJSBmaWxlKQorCisgICAgICAgIGlmIHBh
cnNlX2ZhaWxlZDoKKyAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoIkZBSUwhIENvdWxkbid0IHBh
cnNlIFZhbGdyaW5kIG91dHB1dCBmaWxlIikKKyAgICAgICAgICAgIHJldHVybiAtMgorCisgICAg
ICAgIGNvbW1vbi5QcmludFVzZWRTdXBwcmVzc2lvbnNMaXN0KHN1cHBjb3VudHMpCisKKyAgICAg
ICAgcmV0Y29kZSA9IDAKKyAgICAgICAgaWYgY3VyX3JlcG9ydF9lcnJvcnM6CisgICAgICAgICAg
ICBsb2dnaW5nLmVycm9yKCJGQUlMISBUaGVyZSB3ZXJlICVzIGVycm9yczogIiAlCisgICAgICAg
ICAgICAgICAgbGVuKGN1cl9yZXBvcnRfZXJyb3JzKSkKKworICAgICAgICAgICAgaWYgVGhlQWRk
cmVzc1RhYmxlICE9IE5vbmU6CisgICAgICAgICAgICAgICAgVGhlQWRkcmVzc1RhYmxlLlJlc29s
dmVBbGwoKQorCisgICAgICAgICAgICBmb3IgZXJyb3IgaW4gY3VyX3JlcG9ydF9lcnJvcnM6Cisg
ICAgICAgICAgICAgICAgbG9nZ2luZy5lcnJvcihlcnJvcikKKworICAgICAgICAgICAgcmV0Y29k
ZSA9IC0xCisKKyAgICAgICAgIyBSZXBvcnQgdG9vbCdzIGluc2FuaXR5IGV2ZW4gaWYgdGhlcmUg
d2VyZSBlcnJvcnMuCisgICAgICAgIGlmIGNoZWNrX3Nhbml0eToKKyAgICAgICAgICAgIHJlbWFp
bmluZ19zYW5pdHlfc3VwcCA9IE1lbWNoZWNrQW5hbHl6ZXIuU0FOSVRZX1RFU1RfU1VQUFJFU1NJ
T05TCisgICAgICAgICAgICBmb3IgKG5hbWUsIGNvdW50KSBpbiBzdXBwY291bnRzLml0ZXJpdGVt
cygpOgorICAgICAgICAgICAgICAgIGlmIChuYW1lIGluIHJlbWFpbmluZ19zYW5pdHlfc3VwcCBh
bmQKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZ19zYW5pdHlfc3VwcFtuYW1lXSA9
PSBjb3VudCk6CisgICAgICAgICAgICAgICAgICAgIGRlbCByZW1haW5pbmdfc2FuaXR5X3N1cHBb
bmFtZV0KKyAgICAgICAgICAgIGlmIHJlbWFpbmluZ19zYW5pdHlfc3VwcDoKKyAgICAgICAgICAg
ICAgICBsb2dnaW5nLmVycm9yKCJGQUlMISBTYW5pdHkgY2hlY2sgZmFpbGVkISIpCisgICAgICAg
ICAgICAgICAgbG9nZ2luZy5pbmZvKCJUaGUgZm9sbG93aW5nIHRlc3QgZXJyb3JzIHdlcmUgbm90
IGhhbmRsZWQ6ICIpCisgICAgICAgICAgICAgICAgZm9yIChuYW1lLCBjb3VudCkgaW4gcmVtYWlu
aW5nX3Nhbml0eV9zdXBwLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgICAgICAgICBsb2dnaW5n
LmluZm8oIiAgKiAlZHggJXMiICUgKGNvdW50LCBuYW1lKSkKKyAgICAgICAgICAgICAgICByZXRj
b2RlID0gLTMKKworICAgICAgICBpZiByZXRjb2RlICE9IDA6CisgICAgICAgICAgICByZXR1cm4g
cmV0Y29kZQorCisgICAgICAgIGxvZ2dpbmcuaW5mbygiUEFTUyEgTm8gZXJyb3JzIGZvdW5kISIp
CisgICAgICAgIHJldHVybiAwCisKKworZGVmIF9tYWluKCk6CisgICAgJycnRm9yIHRlc3Rpbmcg
b25seS4KKyAgICBUaGUgTWVtY2hlY2tBbmFseXplciBjbGFzcyBzaG91bGQgYmUgaW1wb3J0ZWQg
aW5zdGVhZC4KKyAgICAnJycKKyAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoInVz
YWdlOiAlcHJvZyBbb3B0aW9uc10gPGZpbGVzIHRvIGFuYWx5emU+IikKKyAgICBwYXJzZXIuYWRk
X29wdGlvbigiIiwgIi0tc291cmNlX2RpciIsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
cGF0aCB0byB0b3Agb2Ygc291cmNlIHRyZWUgZm9yIHRoaXMgYnVpbGQiCisgICAgICAgICAgICAg
ICAgICAgICAgIih1c2VkIHRvIG5vcm1hbGl6ZSBzb3VyY2UgcGF0aHMgaW4gYmFzZWxpbmUpIikK
KworICAgIChvcHRpb25zLCBhcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKyAgICBpZiBsZW4o
YXJncykgPT0gMDoKKyAgICAgICAgcGFyc2VyLmVycm9yKCJubyBmaWxlbmFtZSBzcGVjaWZpZWQi
KQorICAgIGZpbGVuYW1lcyA9IGFyZ3MKKworICAgIGFuYWx5emVyID0gTWVtY2hlY2tBbmFseXpl
cihvcHRpb25zLnNvdXJjZV9kaXIsIHVzZV9nZGI9VHJ1ZSkKKyAgICByZXR1cm4gYW5hbHl6ZXIu
UmVwb3J0KGZpbGVuYW1lcywgTm9uZSkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgor
ICAgIHN5cy5leGl0KF9tYWluKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208025</attachid>
            <date>2013-08-02 09:16:56 -0700</date>
            <delta_ts>2013-10-30 03:23:40 -0700</delta_ts>
            <desc>Diff of common.py with Chromium trunk</desc>
            <filename>common.py.diff</filename>
            <type>text/plain</type>
            <size>2265</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">MSwzYzEsMjkKPCAjIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KPCAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKPCAjIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCi0tLQo+ICMgT3JpZ2luYWxseSBmcm9tIENocm9taXVtLCBjb3B5cmlnaHQgYXMg
Zm9sbG93czoKPiAjCj4gIyBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4gIwo+ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cj4gIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Cj4gIyBtZXQ6Cj4gIwo+ICMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKPiAjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KPiAjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKPiAjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKPiAjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKPiAjIGRpc3RyaWJ1dGlvbi4KPiAjICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKPiAjIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Cj4gIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgo+ICMKPiAjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKPiAjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCj4gIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKPiAj
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCj4gIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKPiAjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKPiAjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAo+ICMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCj4gIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCj4gIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKPiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCjU4Yzg0LDg1CjwgICAgICMgSGF2ZSB0byB1c2UgcmVhZGxpbmUgcmF0aGVyIHRo
YW4gcmVhZGxpbmVzKCkgb3IgImZvciBsaW5lIGluIHAuc3Rkb3V0OiIsCi0tLQo+ICAgICAgICAg
IyBIYXZlIHRvIHVzZSByZWFkbGluZSByYXRoZXIgdGhhbiByZWFkbGluZXMoKQo+ICAgICAgICAg
IyBvciAiZm9yIGxpbmUgaW4gcC5zdGRvdXQ6IiwKOTVjMTIyLDEyMwo8ICAgICBsb2dnaW5nLmVy
cm9yKCIlcyBleGl0ZWQgd2l0aCBub24temVybyByZXN1bHQgY29kZSAlZCIgJSAocHJvY1swXSwg
cmVzdWx0KSkKLS0tCj4gICAgICAgICBsb2dnaW5nLmVycm9yKCIlcyBleGl0ZWQgd2l0aCBub24t
emVybyByZXN1bHQgY29kZSAlZCIgJQo+ICAgICAgICAgICAgICAgICAgICAgICAocHJvY1swXSwg
cmVzdWx0KSkKMTY4YTE5Nwo+IAoyMDlhMjM5Cj4gCjIzM2EyNjQKPiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208026</attachid>
            <date>2013-08-02 09:20:38 -0700</date>
            <delta_ts>2013-10-30 03:23:46 -0700</delta_ts>
            <desc>Diff of gdb_helper.py with Chromium trunk</desc>
            <filename>gdb_helper.py.diff</filename>
            <type>text/plain</type>
            <size>2075</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">MSwzYzEsMjkKPCAjIENvcHlyaWdodCAoYykgMjAxMSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KPCAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKPCAjIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCi0tLQo+ICMgT3JpZ2luYWxseSBmcm9tIENocm9taXVtLCBjb3B5cmlnaHQgYXMg
Zm9sbG93czoKPiAjCj4gIyBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4gIwo+ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cj4gIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Cj4gIyBtZXQ6Cj4gIwo+ICMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKPiAjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KPiAjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKPiAjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKPiAjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKPiAjIGRpc3RyaWJ1dGlvbi4KPiAjICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKPiAjIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Cj4gIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgo+ICMKPiAjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKPiAjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCj4gIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKPiAj
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCj4gIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKPiAjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKPiAjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAo+ICMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCj4gIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCj4gIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKPiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCjEzYTQwCj4gCjIxYTQ5Cj4gCjQ2YTc1Cj4gCjgwLDgxYzEwOSwxMTAKPCAgICAg
JycnIEdldCB0aGUgKGZpbGVuYW1lLCBsaW5lbnVtKSByZXN1bHQgb2YgYSBwcmV2aW91c2x5LXJl
Z2lzdGVyZWQgbG9va3VwCjwgICAgIHJlcXVlc3QuCi0tLQo+ICAgICAgICAgJycnIEdldCB0aGUg
KGZpbGVuYW1lLCBsaW5lbnVtKSByZXN1bHQgb2YgYSBwcmV2aW91c2x5LXJlZ2lzdGVyZWQKPiAg
ICAgICAgIGxvb2t1cCByZXF1ZXN0Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208027</attachid>
            <date>2013-08-02 09:25:45 -0700</date>
            <delta_ts>2013-10-30 03:23:51 -0700</delta_ts>
            <desc>Diff of memcheck_analyze.py with Chromium trunk</desc>
            <filename>memcheck_analyze.py.diff</filename>
            <type>text/plain</type>
            <size>9857</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">Miw0YzIsMzEKPCAjIENvcHlyaWdodCAoYykgMjAxMSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KPCAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKPCAjIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCi0tLQo+ICMgT3JpZ2luYWxseSBmcm9tIENocm9taXVtLCBjb3B5cmlnaHQgYXMg
Zm9sbG93czoKPiAjCj4gIyBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4gIwo+ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cj4gIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Cj4gIyBtZXQ6Cj4gIwo+ICMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKPiAjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KPiAjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKPiAjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKPiAjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKPiAjIGRpc3RyaWJ1dGlvbi4KPiAjICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKPiAjIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Cj4gIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgo+ICMKPiAjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKPiAjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCj4gIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKPiAj
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCj4gIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKPiAjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKPiAjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAo+ICMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCj4gIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCj4gIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKPiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCj4gCjM1YTYzCj4gCjM3LDM4YzY1LDY2CjwgICAnJycgUmV0dXJucyBhbGwgdGV4
dCBpbiBhbGwgRE9NIG5vZGVzIHdpdGggYSBjZXJ0YWluIHxuYW1lfCB0aGF0IGFyZSBjaGlsZHJl
bgo8ICAgb2YgfHRvcF9ub2RlfC4KLS0tCj4gICAgICcnJyBSZXR1cm5zIGFsbCB0ZXh0IGluIGFs
bCBET00gbm9kZXMgd2l0aCBhIGNlcnRhaW4gfG5hbWV8IHRoYXQgYXJlCj4gICAgIGNoaWxkcmVu
IG9mIHx0b3Bfbm9kZXwuCjQ2YTc1Cj4gCjQ4LDQ5Yzc3LDc4CjwgICAnJycgUmV0dXJucyBhbGwg
Q0RBVEEgaW4gYWxsIERPTSBub2RlcyB3aXRoIGEgY2VydGFpbiB8bmFtZXwgdGhhdCBhcmUgY2hp
bGRyZW4KPCAgIG9mIHx0b3Bfbm9kZXwuCi0tLQo+ICAgICAnJycgUmV0dXJucyBhbGwgQ0RBVEEg
aW4gYWxsIERPTSBub2RlcyB3aXRoIGEgY2VydGFpbiB8bmFtZXwgdGhhdCBhcmUKPiAgICAgY2hp
bGRyZW4gb2YgfHRvcF9ub2RlfC4KNTlhODkKPiAKNjNjOTMsOTQKPCAgIHByZWZpeGVzX3RvX2N1
dCA9IFsiYnVpbGQvc3JjLyIsICJ2YWxncmluZC9jb3JlZ3JpbmQvIiwgIm91dC9SZWxlYXNlLy4u
Ly4uLyJdCi0tLQo+ICAgICBwcmVmaXhlc190b19jdXQgPSBbImJ1aWxkL3NyYy8iLCAidmFsZ3Jp
bmQvY29yZWdyaW5kLyIsCj4gICAgICAgICAgICAgICAgICAgICAgICAib3V0L1JlbGVhc2UvLi4v
Li4vIl0KODJhMTE0Cj4gCjkzLDk0YzEyNQo8ICAgICAgIFNSQ19MSU5FICAgICAgICAgICAgOiBn
ZXRUZXh0T2YoZnJhbWUsIFNSQ19MSU5FKQo8ICAgICB9Ci0tLQo+ICAgICAgICAgICAgIFNSQ19M
SU5FOiBnZXRUZXh0T2YoZnJhbWUsIFNSQ19MSU5FKX0KMTEzYTE0NQo+IAoyMTJjMjQ0LDI0NQo8
ICAgICAgICAgc2VsZi5fYmFja3RyYWNlcy5hcHBlbmQoW2Rlc2NyaXB0aW9uLCBnYXRoZXJGcmFt
ZXMobm9kZSwgc291cmNlX2RpcildKQotLS0KPiAgICAgICAgICAgICAgICAgc2VsZi5fYmFja3Ry
YWNlcy5hcHBlbmQoW2Rlc2NyaXB0aW9uLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2F0aGVyRnJhbWVzKG5vZGUsIHNvdXJjZV9kaXIpXSkKMjIzYzI1NiwyNTcK
PCAgICAgICAgICMgVGhlIGxhc3Rlc3QgZGVzY3JpcHRpb24gaGFzIG5vIHN0YWNrLCBlLmcuICJB
ZGRyZXNzIDB4MjggaXMgdW5rbm93biIKLS0tCj4gICAgICAgICAgICAgICAgICMgVGhlIGxhc3Rl
c3QgZGVzY3JpcHRpb24gaGFzIG5vIHN0YWNrLAo+ICAgICAgICAgICAgICAgICAjIGUuZy4gIkFk
ZHJlc3MgMHgyOCBpcyB1bmtub3duIgoyMjhjMjYyCjwgICAgICAgICBzZWxmLl9zdXBwcmVzc2lv
biA9IGdldENEQVRBT2Yobm9kZSwgInJhd3RleHQiKTsKLS0tCj4gICAgICAgICAgICAgICAgIHNl
bGYuX3N1cHByZXNzaW9uID0gZ2V0Q0RBVEFPZihub2RlLCAicmF3dGV4dCIpCjI0N2MyODEsMjgy
CjwgICAgICAgICBidWYgKz0gIChmcmFtZVtGVU5DVElPTl9OQU1FXSBvciBmcmFtZVtJTlNUUlVD
VElPTl9QT0lOVEVSXSkgKyAiXG4iCi0tLQo+ICAgICAgICAgICAgICAgICBidWYgKz0gKGZyYW1l
W0ZVTkNUSU9OX05BTUVdIG9yIFwKPiAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVtJTlNU
UlVDVElPTl9QT0lOVEVSXSkgKyAiXG4iCjI1OWMyOTQsMjk1CjwgICAgICAgICAgICBmb28gPSBU
aGVBZGRyZXNzVGFibGUuR2V0RmlsZUxpbmUoZnJhbWVbT0JKRUNUX0ZJTEVdLAotLS0KPiAgICAg
ICAgICAgICAgICAgICAgIGZvbyA9IFRoZUFkZHJlc3NUYWJsZS5HZXRGaWxlTGluZSgKPiAgICAg
ICAgICAgICAgICAgICAgICAgICBmcmFtZVtPQkpFQ1RfRklMRV0sCjI2NGMzMDAsMzAxCjwgICAg
ICAgICAgIG91dHB1dCArPSAoIiAoIiArIGZyYW1lW1NSQ19GSUxFX0RJUl0gKyAiLyIgKyBmcmFt
ZVtTUkNfRklMRV9OQU1FXSArCi0tLQo+ICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICgi
ICgiICsgZnJhbWVbU1JDX0ZJTEVfRElSXSArCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIvIiArIGZyYW1lW1NSQ19GSUxFX05BTUVdICsKMjgwYzMxNywzMTkKPCAgICAgICAgICAg
ICAgICAiaHR0cDovL2Rldi5jaHJvbWl1bS5vcmcvZGV2ZWxvcGVycy90cmVlLXNoZXJpZmZzL3No
ZXJpZmYtZGV0YWlscy1jaHJvbWl1bS9tZW1vcnktc2hlcmlmZiNUT0MtU3VwcHJlc3NpbmctbWVt
b3J5LXJlcG9ydHMiKQotLS0KPiAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly9kZXYuY2hy
b21pdW0ub3JnL2RldmVsb3BlcnMvdHJlZS1zaGVyaWZmcy8iCj4gICAgICAgICAgICAgICAgICAg
ICAgICJzaGVyaWZmLWRldGFpbHMtY2hyb21pdW0vbWVtb3J5LXNoZXJpZmYjIgo+ICAgICAgICAg
ICAgICAgICAgICAgICAiVE9DLVN1cHByZXNzaW5nLW1lbW9yeS1yZXBvcnRzIikKMjg1YzMyNAo8
ICAgICBzdXBwID0gc2VsZi5fc3VwcHJlc3Npb247Ci0tLQo+ICAgICAgICAgc3VwcCA9IHNlbGYu
X3N1cHByZXNzaW9uCjI5MSwyOTZkMzI5CjwgICAgICMgTWFrZSBzdXBwcmVzc2lvbnMgZXZlbiBs
ZXNzIHBsYXRmb3JtLWRlcGVuZGVudC4KPCAgICAgZm9yIHN6IGluIFsxLCAyLCA0LCA4XToKPCAg
ICAgICBzdXBwID0gc3VwcC5yZXBsYWNlKCJNZW1jaGVjazpBZGRyJWQiICUgc3osICJNZW1jaGVj
azpVbmFkZHJlc3NhYmxlIikKPCAgICAgICBzdXBwID0gc3VwcC5yZXBsYWNlKCJNZW1jaGVjazpW
YWx1ZSVkIiAlIHN6LCAiTWVtY2hlY2s6VW5pbml0aWFsaXplZCIpCjwgICAgIHN1cHAgPSBzdXBw
LnJlcGxhY2UoIk1lbWNoZWNrOkNvbmQiLCAiTWVtY2hlY2s6VW5pbml0aWFsaXplZCIpCjwgCjMw
NWMzMzgKPCAgICAgbmV3bGVuID0gbWluKDI2LCBsZW4oc3VwcGxpbmVzKSk7Ci0tLQo+ICAgICAg
ICAgbmV3bGVuID0gbWluKDI2LCBsZW4oc3VwcGxpbmVzKSkKMzU1YTM4OQo+IAozNThhMzkzCj4g
CjM2NywzNjhjNDAyLDQwNgo8ICAgICAgICMgT2theSwgdGhlIGxvZyBpcyBub3QgZmluaXNoZWQg
YnV0IHdlIGNhbiBtYWtlIGl0IHVwIHRvIGJlIHBhcnNlYWJsZToKPCAgICAgICBpZiBwcmV2X2xp
bmUuc3RyaXAoKSBpbiBbIjwvZXJyb3I+IiwgIjwvZXJyb3Jjb3VudHM+IiwgIjwvc3RhdHVzPiJd
OgotLS0KPiAgICAgICAgICAgICAjIE9rYXksIHRoZSBsb2cgaXMgbm90IGZpbmlzaGVkIGJ1dCB3
ZSBjYW4KPiAgICAgICAgICAgICAjIG1ha2UgaXQgdXAgdG8gYmUgcGFyc2VhYmxlOgo+ICAgICAg
ICAgICAgIGlmIHByZXZfbGluZS5zdHJpcCgpIGluIFsiPC9lcnJvcj4iLAo+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiPC9lcnJvcmNvdW50cz4iLAo+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiPC9zdGF0dXM+Il06CjM3N2E0MTYKPiAKNDA5LDQx
MGM0NDgsNDQ5CjwgICAgICAgdXNlX2dkYjogV2hldGhlciB0byB1c2UgZ2RiIHRvIHJlc29sdmUg
c291cmNlIGZpbGVuYW1lcyBhbmQgbGluZSBudW1iZXJzCjwgICAgICAgICAgICAgICAgaW4gdGhl
IHJlcG9ydCBzdGFja3RyYWNlcwotLS0KPiAgICAgICAgICAgICB1c2VfZ2RiOiBXaGV0aGVyIHRv
IHVzZSBnZGIgdG8gcmVzb2x2ZSBzb3VyY2UgZmlsZW5hbWVzIGFuZCBsaW5lCj4gICAgICAgICAg
ICAgICAgICAgICAgbnVtYmVycyBpbiB0aGUgcmVwb3J0IHN0YWNrdHJhY2VzCjQyM2Q0NjEKPCAK
NDY2LDQ2N2M1MDQsNTA1CjwgICAgICAgIyBXYWl0IHVwIHRvIHRocmVlIG1pbnV0ZXMgZm9yIHZh
bGdyaW5kIHRvIGZpbmlzaCB3cml0aW5nIGFsbCBmaWxlcywKPCAgICAgICAjIGJ1dCBhZnRlciB0
aGF0LCBqdXN0IHNraXAgaW5jb21wbGV0ZSBmaWxlcyBhbmQgd2Fybi4KLS0tCj4gICAgICAgICAg
ICAgIyBXYWl0IHVwIHRvIHRocmVlIG1pbnV0ZXMgZm9yIHZhbGdyaW5kIHRvIGZpbmlzaCB3cml0
aW5nIGFsbAo+ICAgICAgICAgICAgICMgZmlsZXMsIGJ1dCBhZnRlciB0aGF0LCBqdXN0IHNraXAg
aW5jb21wbGV0ZSBmaWxlcyBhbmQgd2Fybi4KNDgzLDQ4NGM1MjEsNTIzCjwgICAgICAgICAgICMg
TWFrZSBzdXJlIHRoZSBwcm9jZXNzIGlzIHN0aWxsIHJ1bm5pbmcgc28gd2UgZG9uJ3Qgd2FpdCBm
b3IKPCAgICAgICAgICAgIyAzIG1pbnV0ZXMgaWYgaXQgd2FzIGtpbGxlZC4gU2VlIGh0dHA6Ly9j
cmJ1Zy5jb20vMTc0NTMKLS0tCj4gICAgICAgICAgICAgICAgICAgICAjIE1ha2Ugc3VyZSB0aGUg
cHJvY2VzcyBpcyBzdGlsbCBydW5uaW5nIHNvIHdlIGRvbid0IHdhaXQKPiAgICAgICAgICAgICAg
ICAgICAgICMgZm9yIDMgbWludXRlcyBpZiBpdCB3YXMga2lsbGVkLgo+ICAgICAgICAgICAgICAg
ICAgICAgIyBTZWUgaHR0cDovL2NyYnVnLmNvbS8xNzQ1Mwo0OTQsNDk2YzUzMyw1MzYKPCAgICAg
ICAgICAgbG9nZ2luZy53YXJuKCJWYWxncmluZCBwcm9jZXNzIFBJRCA9ICVzIGlzIG5vdCBydW5u
aW5nIGJ1dCBpdHMgIgo8ICAgICAgICAgICAgICAgICAgICAgICAgIlhNTCBsb2cgaGFzIG5vdCBi
ZWVuIGZpbmlzaGVkIGNvcnJlY3RseS5cbiIKPCAgICAgICAgICAgICAgICAgICAgICAgICJNYWtl
IGl0IHVwIGJ5IGFkZGluZyBzb21lIGNsb3NpbmcgdGFncyBtYW51YWxseS4iICUgcGlkKQotLS0K
PiAgICAgICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybigiVmFsZ3JpbmQgcHJvY2VzcyBQSUQg
PSAlcyBpcyBub3QgcnVubmluZyBidXQiCj4gICAgICAgICAgICAgICAgICAgICAgICAgIiBpdHMg
WE1MIGxvZyBoYXMgbm90IGJlZW4gZmluaXNoZWQgY29ycmVjdGx5LlxuIgo+ICAgICAgICAgICAg
ICAgICAgICAgICAgICJNYWtlIGl0IHVwIGJ5IGFkZGluZyBzb21lIGNsb3NpbmcgdGFncyBtYW51
YWxseS4iICUKPiAgICAgICAgICAgICAgICAgICAgICAgICBwaWQpCjUxMGM1NTAKPCAgICAgICAg
ICAgcGFyc2VkX2ZpbGUgPSBwYXJzZShmaWxlKTsKLS0tCj4gICAgICAgICAgICAgICAgICAgICBw
YXJzZWRfZmlsZSA9IHBhcnNlKGZpbGUpCjUzN2M1NzcKPCAgICAgICAgIHByZWFtYmxlID0gcGFy
c2VkX2ZpbGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInByZWFtYmxlIilbMF07Ci0tLQo+ICAgICAg
ICAgICAgICAgICBwcmVhbWJsZSA9IHBhcnNlZF9maWxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJw
cmVhbWJsZSIpWzBdCjU0MWM1ODEsNTgyCjwgICAgICAgICAgICAgICBpZiB4Lm5vZGVUeXBlID09
IG5vZGUuVEVYVF9OT0RFIGFuZCAiQ29tbWFuZCIgaW4geC5kYXRhOgotLS0KPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgeC5ub2RlVHlwZSA9PSBub2RlLlRFWFRfTk9ERSBhbmQgXAo+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbW1hbmQiIGluIHguZGF0YToK
NTQ3LDU1MWM1ODgsNTk1CjwgICAgICAgICAgICMgSWdub3JlICJwb3NzaWJsZSIgbGVha3MgZm9y
IG5vdyBieSBkZWZhdWx0Lgo8ICAgICAgICAgICBpZiAoc2VsZi5fc2hvd19hbGxfbGVha3Mgb3IK
PCAgICAgICAgICAgICAgIGdldFRleHRPZihyYXdfZXJyb3IsICJraW5kIikgIT0gIkxlYWtfUG9z
c2libHlMb3N0Iik6CjwgICAgICAgICAgICAgZXJyb3IgPSBWYWxncmluZEVycm9yKHNlbGYuX3Nv
dXJjZV9kaXIsCjwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd19lcnJvciwg
Y29tbWFuZGxpbmUsIHRlc3RjYXNlKQotLS0KPiAgICAgICAgICAgICAgICAgICAgICMgSWdub3Jl
ICJwb3NzaWJsZSIgbGVha3MgYW5kIEludmFsaWRSZWFkL1dyaXRlIGJ5IGRlZmF1bHQuCj4gICAg
ICAgICAgICAgICAgICAgICBpZiAoc2VsZi5fc2hvd19hbGxfbGVha3Mgb3IgXAo+ICAgICAgICAg
ICAgICAgICAgICAgICAgIChnZXRUZXh0T2YocmF3X2Vycm9yLCAia2luZCIpICE9ICJMZWFrX1Bv
c3NpYmx5TG9zdCIpIGFuZCBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgKGdldFRleHRPZihy
YXdfZXJyb3IsICJraW5kIikgIT0gIkxlYWtfU3RpbGxSZWFjaGFibGUiKSBhbmQgXAo+ICAgICAg
ICAgICAgICAgICAgICAgICAgIChnZXRUZXh0T2YocmF3X2Vycm9yLCAia2luZCIpICE9ICJJbnZh
bGlkV3JpdGUiKSBhbmQgXAo+ICAgICAgICAgICAgICAgICAgICAgICAgIChnZXRUZXh0T2YocmF3
X2Vycm9yLCAia2luZCIpICE9ICJJbnZhbGlkUmVhZCIpKToKPiAgICAgICAgICAgICAgICAgICAg
ICAgICBlcnJvciA9IFZhbGdyaW5kRXJyb3Ioc2VsZi5fc291cmNlX2RpciwgcmF3X2Vycm9yLAo+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kbGlu
ZSwgdGVzdGNhc2UpCjU1M2M1OTcKPCAgICAgICAgICAgICAgICMgV2UgaGF2ZW4ndCBzZWVuIHN1
Y2ggZXJyb3JzIGRvaW5nIHRoaXMgcmVwb3J0IHlldC4uLgotLS0KPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIyBXZSBoYXZlbid0IHNlZW4gc3VjaCBlcnJvcnMgZG9pbmcgdGhpcyByZXBv
cnQgeWV0CjU1NSw1NTdjNTk5LDYwMwo8ICAgICAgICAgICAgICAgICAjIC4uLiBidXQgd2Ugc2F3
IGl0IGluIGVhcmxpZXIgcmVwb3J0cywgZS5nLiBwcmV2aW91cyBVSSB0ZXN0CjwgICAgICAgICAg
ICAgICAgIGN1cl9yZXBvcnRfZXJyb3JzLmFkZCgiVGhpcyBlcnJvciB3YXMgYWxyZWFkeSBwcmlu
dGVkIGluICIKPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb21lIG90
aGVyIHRlc3QsIHNlZSAnaGFzaD0jJTAxNlgjJyIgJSBcCi0tLQo+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIyAuLi4gYnV0IHdlIHNhdyBpdCBpbiBlYXJsaWVyIHJlcG9ydHMsCj4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGUuZy4gcHJldmlvdXMgVUkgdGVzdAo+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyX3JlcG9ydF9lcnJvcnMuYWRkKCJU
aGlzIGVycm9yIHdhcyBhbHJlYWR5ICIKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicHJpbnRlZCBpbiBzb21lIG90aGVyIHRlc3QsICIKPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic2VlICdoYXNoPSMlMDE2WCMnIiAlIFwKNTYwYzYwNiw2MDcKPCAg
ICAgICAgICAgICAgICAgIyAuLi4gYW5kIHdlIGhhdmVuJ3Qgc2VlbiBpdCBpbiBvdGhlciB0ZXN0
cyBhcyB3ZWxsCi0tLQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAuLi4gYW5k
IHdlIGhhdmVuJ3Qgc2VlbiBpdCBpbgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IyBvdGhlciB0ZXN0cyBhcyB3ZWxsCjU2OCw1NjljNjE1LDYxNgo8ICAgICAgICAgICAgIGNvdW50
ID0gZ2V0VGV4dE9mKG5vZGUsICJjb3VudCIpOwo8ICAgICAgICAgICAgIG5hbWUgPSBnZXRUZXh0
T2Yobm9kZSwgIm5hbWUiKTsKLS0tCj4gICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgPSBn
ZXRUZXh0T2Yobm9kZSwgImNvdW50IikKPiAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0g
Z2V0VGV4dE9mKG5vZGUsICJuYW1lIikKNTczYzYyMCw2MjEKPCAgICAgICBsb2dnaW5nLndhcm4o
InZhbGdyaW5kIGRpZG4ndCBmaW5pc2ggd3JpdGluZyAlZCBmaWxlcz8hIiAlIGxlbihiYWRmaWxl
cykpCi0tLQo+ICAgICAgICAgICAgIGxvZ2dpbmcud2FybigidmFsZ3JpbmQgZGlkbid0IGZpbmlz
aCB3cml0aW5nICVkIGZpbGVzPyEiICUKPiAgICAgICAgICAgICAgICAgbGVuKGJhZGZpbGVzKSkK
NTg2YzYzNCw2MzUKPCAgICAgICBsb2dnaW5nLmVycm9yKCJGQUlMISBUaGVyZSB3ZXJlICVzIGVy
cm9yczogIiAlIGxlbihjdXJfcmVwb3J0X2Vycm9ycykpCi0tLQo+ICAgICAgICAgICAgIGxvZ2dp
bmcuZXJyb3IoIkZBSUwhIFRoZXJlIHdlcmUgJXMgZXJyb3JzOiAiICUKPiAgICAgICAgICAgICAg
ICAgbGVuKGN1cl9yZXBvcnRfZXJyb3JzKSkKNjE4YzY2Nyw2NjkKPCAgICcnJ0ZvciB0ZXN0aW5n
IG9ubHkuIFRoZSBNZW1jaGVja0FuYWx5emVyIGNsYXNzIHNob3VsZCBiZSBpbXBvcnRlZCBpbnN0
ZWFkLicnJwotLS0KPiAgICAgJycnRm9yIHRlc3Rpbmcgb25seS4KPiAgICAgVGhlIE1lbWNoZWNr
QW5hbHl6ZXIgY2xhc3Mgc2hvdWxkIGJlIGltcG9ydGVkIGluc3RlYWQuCj4gICAgICcnJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215490</attachid>
            <date>2013-10-30 03:24:03 -0700</date>
            <delta_ts>2013-12-08 04:05:59 -0800</delta_ts>
            <desc>WIP Patch 2</desc>
            <filename>bug-119446-20131030102418.patch</filename>
            <type>text/plain</type>
            <size>55369</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NzkyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmIzMWU3YzBlOTIxZTNhMzM5OGE1N2YyMjIzZTIzMjRm
ZjIxZjQyZC4uMTAwYmNkZDVkZGU3NmJmMTkyNDU2MTI0MTU3YjU3NzM3ODA4YzM2MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDky
IEBACisyMDEzLTEwLTMwICBCcmlhbiBIb2x0ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbR1RLXSBQYXJzZSBWYWxncmluZCB4bWwgbGVhayBmaWxlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDQ2CisKKyAgICAgICAgTmVl
ZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBVUkwg
KE9PUFMhKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQYXJzZSB0aGUgeG1sIGZpbGVzIGdlbmVyYXRlZCBieSBWYWxncmluZCB0byB5aWVsZCB1c2Vm
dWwKKyAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1lbW9yeSBsZWFrcy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHk6CisgICAgICAgIChHdGtQb3J0Ll9faW5p
dF9fKToKKyAgICAgICAgKEd0a1BvcnQuc2V0dXBfdGVzdF9ydW4pOiBDbGVhciB0aGUgcHJldmlv
dXMgb3V0cHV0IGZpbGVzIGJlZm9yZSBuZXcKKyAgICAgICAgcnVuLgorICAgICAgICAoR3RrUG9y
dC5wcmludF9sZWFrc19zdW1tYXJ5KToKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucHk6IEFkZGVkLgorICAgICAgICBQYXJzZSB0aGUgeG1s
IGZpbGVzIGdlbmVyYXRlZCBieSBWYWxncmluZCBhbmQgc3VtbWFyaXNlIGxlYWtzCisgICAgICAg
IGludG8gYW4gZWFzaWx5IHVuZGVyc3RhbmRhYmxlIGxpc3QuCisgICAgICAgIChnZXRfdGV4dF9v
Zik6CisgICAgICAgIChnZXRfQ0RBVEFfb2YpOgorICAgICAgICAoZ2F0aGVyX2ZyYW1lcyk6Cisg
ICAgICAgIChWYWxncmluZEVycm9yKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3IuX19pbml0X18p
OgorICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX3N0cl9fKToKKyAgICAgICAgKFZhbGdyaW5kRXJy
b3IudW5pcXVlX3N0cmluZyk6CisgICAgICAgIChWYWxncmluZEVycm9yLmVycm9yX2hhc2gpOgor
ICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX2hhc2hfXyk6CisgICAgICAgIChWYWxncmluZEVycm9y
Ll9fZXFfXyk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZCk6CisgICAgICAgIChMZWFr
RGV0ZWN0b3JWYWxncmluZC5fX2luaXRfXyk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmlu
ZC5fcGFyc2VfbGVha3Nfb3V0cHV0KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5kLmxl
YWtzX2ZpbGVzX2luX3Jlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZh
bGdyaW5kLmNsZWFuX2xlYWtzX2ZpbGVzX2Zyb21fcmVzdWx0c19kaXJlY3RvcnkpOgorICAgICAg
ICAoTGVha0RldGVjdG9yVmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbCk6CisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5kX3Vu
aXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKG1ha2VfbW9ja192YWxncmluZF9vdXRwdXQpOgor
ICAgICAgICAobWFrZV9tb2NrX2luY29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0KToKKyAgICAgICAg
KG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzKToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdy
aW5kVGVzdCk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9h
bmRfcHJpbnRfbGVha3NfZGV0YWlsKToKKworMjAxMy0wOC0wNSAgQnJpYW4gSG9sdCAgPGJyaWFu
LmhvbHRAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0dUS10gUGFyc2UgVmFsZ3JpbmQgeG1sIGxl
YWsgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExOTQ0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFBhcnNlIHRoZSB4bWwgZmlsZXMgZ2VuZXJhdGVkIGJ5IFZhbGdyaW5kIHRvIHlpZWxkIHVzZWZ1
bAorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWVtb3J5IGxlYWtzLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weToKKyAgICAgICAgKEd0a1BvcnQuX19pbml0
X18pOgorICAgICAgICAoR3RrUG9ydC5zZXR1cF90ZXN0X3J1bik6ICBDbGVhciB0aGUgcHJldmlv
dXMgb3V0cHV0IGZpbGVzIGJlZm9yZSBuZXcKKyAgICAgICAgcnVuLgorICAgICAgICAoR3RrUG9y
dC5wcmludF9sZWFrc19zdW1tYXJ5KTogUGFyc2UgdGhlIGxlYWtzIG91dHB1dC4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGtfbGVha2RldGVjdG9yLnB5OiBBZGRlZC4KKyAg
ICAgICAgKEd0a0xlYWtEZXRlY3Rvcik6CisgICAgICAgIChHdGtMZWFrRGV0ZWN0b3IuX19pbml0
X18pOgorICAgICAgICAoR3RrTGVha0RldGVjdG9yLnBhcnNlX2xlYWtzX291dHB1dCk6CisgICAg
ICAgIChHdGtMZWFrRGV0ZWN0b3IubGVha3NfZmlsZXNfaW5fZGlyZWN0b3J5KToKKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrLnB5OiBBZGRlZC4KKyAgICAgICAgUGFyc2Ug
dGhlIHhtbCBmaWxlcyBnZW5lcmF0ZWQgYnkgVmFsZ3JpbmQgYW5kIHN1bW1hcmlzZSBsZWFrcwor
ICAgICAgICBpbnRvIGFuIGVhc2lseSB1bmRlcnN0YW5kYWJsZSBsaXN0LgorICAgICAgICAoZ2V0
VGV4dE9mKToKKyAgICAgICAgKGdldENEQVRBT2YpOgorICAgICAgICAoc2hvcnRlbkZpbGVQYXRo
KToKKyAgICAgICAgKGdhdGhlckZyYW1lcyk6CisgICAgICAgIChWYWxncmluZEVycm9yKToKKyAg
ICAgICAgKFZhbGdyaW5kRXJyb3IuX19pbml0X18pOgorICAgICAgICAoVmFsZ3JpbmRFcnJvci5f
X3N0cl9fKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3IuVW5pcXVlU3RyaW5nKToKKyAgICAgICAg
KFZhbGdyaW5kRXJyb3IuRXJyb3JIYXNoKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3IuX19oYXNo
X18pOgorICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX2VxX18pOgorICAgICAgICAobG9nX2lzX2Zp
bmlzaGVkKToKKyAgICAgICAgKE1lbWNoZWNrQW5hbHl6ZXIpOgorICAgICAgICAoTWVtY2hlY2tB
bmFseXplci5fX2luaXRfXyk6CisgICAgICAgIChNZW1jaGVja0FuYWx5emVyLlJlcG9ydCk6Cisg
ICAgICAgIChfbWFpbik6CisgICAgICAgIChfbWFpbi5zaG91bGQpOgorCiAyMDEzLTEwLTIxICBU
YW1hcyBHZXJnZWx5ICA8Z2VydG9tQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBSdW4gdGVz
dHMgYXMgaWYgdGhleSBhcmUgZXhwZWN0ZWQgdG8gcGFzcyB3aGVuIC0tZm9yY2UgaXMgZ2l2ZW4u
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weQppbmRleCBmZWZlM2I0MTc0MDI3Zjg2NjU1N2Ri
NDI0ZGJiMWRlYzNjYzFmMTc5Li45M2IwY2VlYjNiNmRlOTZjOGU4YmVmZGJiOTVkNzEyMTcxNGZl
Y2ZlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkKQEAgLTM4LDYgKzM4LDcgQEAgZnJv
bSB3ZWJraXRweS5wb3J0LnB1bHNlYXVkaW9fc2FuaXRpemVyIGltcG9ydCBQdWxzZUF1ZGlvU2Fu
aXRpemVyCiBmcm9tIHdlYmtpdHB5LnBvcnQueHZmYmRyaXZlciBpbXBvcnQgWHZmYkRyaXZlcgog
ZnJvbSB3ZWJraXRweS5wb3J0Lndlc3RvbmRyaXZlciBpbXBvcnQgV2VzdG9uRHJpdmVyCiBmcm9t
IHdlYmtpdHB5LnBvcnQubGludXhfZ2V0X2NyYXNoX2xvZyBpbXBvcnQgR0RCQ3Jhc2hMb2dHZW5l
cmF0b3IKK2Zyb20gd2Via2l0cHkucG9ydC5sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgaW1wb3J0IExl
YWtEZXRlY3RvclZhbGdyaW5kCiAKIAogY2xhc3MgR3RrUG9ydChQb3J0KToKQEAgLTQ2LDYgKzQ3
LDcgQEAgY2xhc3MgR3RrUG9ydChQb3J0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3Ms
ICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoR3RrUG9ydCwgc2VsZikuX19pbml0X18oKmFyZ3Ms
ICoqa3dhcmdzKQogICAgICAgICBzZWxmLl9wdWxzZWF1ZGlvX3Nhbml0aXplciA9IFB1bHNlQXVk
aW9TYW5pdGl6ZXIoKQorICAgICAgICBzZWxmLl9sZWFrZGV0ZWN0b3IgPSBMZWFrRGV0ZWN0b3JW
YWxncmluZChzZWxmLl9maWxlc3lzdGVtLCBzZWxmLnJlc3VsdHNfZGlyZWN0b3J5KCkpCiAKICAg
ICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCJsZWFrcyIpOgogICAgICAgICAgICAgaWYgbm90IHNl
bGYuZ2V0X29wdGlvbigid3JhcHBlciIpOgpAQCAtODEsNiArODMsOSBAQCBjbGFzcyBHdGtQb3J0
KFBvcnQpOgogICAgICAgICBzdXBlcihHdGtQb3J0LCBzZWxmKS5zZXR1cF90ZXN0X3J1bigpCiAg
ICAgICAgIHNlbGYuX3B1bHNlYXVkaW9fc2FuaXRpemVyLnVubG9hZF9wdWxzZWF1ZGlvX21vZHVs
ZSgpCiAKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCJsZWFrcyIpOgorICAgICAgICAgICAg
c2VsZi5fbGVha2RldGVjdG9yLmNsZWFuX2xlYWtzX2ZpbGVzX2Zyb21fcmVzdWx0c19kaXJlY3Rv
cnkoKQorCiAgICAgZGVmIGNsZWFuX3VwX3Rlc3RfcnVuKHNlbGYpOgogICAgICAgICBzdXBlcihH
dGtQb3J0LCBzZWxmKS5jbGVhbl91cF90ZXN0X3J1bigpCiAgICAgICAgIHNlbGYuX3B1bHNlYXVk
aW9fc2FuaXRpemVyLnJlc3RvcmVfcHVsc2VhdWRpb19tb2R1bGUoKQpAQCAtMTU5LDggKzE2NCwx
NiBAQCBjbGFzcyBHdGtQb3J0KFBvcnQpOgogICAgIGRlZiBfcG9ydF9zcGVjaWZpY19leHBlY3Rh
dGlvbnNfZmlsZXMoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2VsZi5fZmlsZXN5c3RlbS5qb2lu
KHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKHApLCAnVGVzdEV4cGVjdGF0aW9ucycpIGZvciBw
IGluIHJldmVyc2VkKHNlbGYuX3NlYXJjaF9wYXRocygpKV0KIAotICAgICMgRklYTUU6IFdlIHNo
b3VsZCBmaW5kIGEgd2F5IHRvIHNoYXJlIHRoaXMgaW1wbG1lbnRhdGlvbiB3aXRoIEd0aywKLSAg
ICAjIG9yIHRlYWNoIHJ1bi1sYXVuY2hlciBob3cgdG8gY2FsbCBydW4tc2FmYXJpIGFuZCBtb3Zl
IHRoaXMgZG93biB0byBQb3J0LgorICAgIGRlZiBwcmludF9sZWFrc19zdW1tYXJ5KHNlbGYpOgor
ICAgICAgICBpZiBub3Qgc2VsZi5nZXRfb3B0aW9uKCdsZWFrcycpOgorICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgICMgRklYTUU6IFRoaXMgaXMgYSBoYWNrLCBidXQgd2UgZG9uJ3QgaGF2ZSBh
IGJldHRlciB3YXkgdG8gZ2V0IHRoaXMgaW5mb3JtYXRpb24gZnJvbSB0aGUgd29ya2VycyB5ZXQK
KyAgICAgICAgIyBiZWNhdXNlIHdlJ3JlIGluIHRoZSBtYW5hZ2VyIHByb2Nlc3MuCisgICAgICAg
IGxlYWtzX2ZpbGVzID0gc2VsZi5fbGVha2RldGVjdG9yLmxlYWtzX2ZpbGVzX2luX3Jlc3VsdHNf
ZGlyZWN0b3J5KCkKKyAgICAgICAgaWYgbm90IGxlYWtzX2ZpbGVzOgorICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgIHNlbGYuX2xlYWtkZXRlY3Rvci5wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0
YWlsKGxlYWtzX2ZpbGVzKQorCiAgICAgZGVmIHNob3dfcmVzdWx0c19odG1sX2ZpbGUoc2VsZiwg
cmVzdWx0c19maWxlbmFtZSk6CiAgICAgICAgIHJ1bl9sYXVuY2hlcl9hcmdzID0gWyJmaWxlOi8v
JXMiICUgcmVzdWx0c19maWxlbmFtZV0KICAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJr
aXRfdGVzdF9ydW5uZXInKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
bGVha2RldGVjdG9yX3ZhbGdyaW5kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmMDFlZjExYTI2ODc0NGNiNWI0
MDI3YjBjOGFkY2ZjYjk1ZjdiYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5kLnB5CkBAIC0wLDAgKzEsMjk3IEBACisj
IENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CitpbXBvcnQgaGFzaGxpYgor
aW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCByZQoraW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2Vzcwor
ZnJvbSB4bWwuZG9tLm1pbmlkb20gaW1wb3J0IHBhcnNlU3RyaW5nCitmcm9tIHhtbC5wYXJzZXJz
LmV4cGF0IGltcG9ydCBFeHBhdEVycm9yCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKKworCitkZWYgZ2V0X3RleHRfb2YodG9wX25vZGUsIG5hbWUpOgorICAgICIiIiBSZXR1
cm5zIGFsbCB0ZXh0IGluIGFsbCBET00gbm9kZXMgd2l0aCBhIGNlcnRhaW4gfG5hbWV8IHRoYXQg
YXJlIGNoaWxkcmVuIG9mIHx0b3Bfbm9kZXwuICIiIgorCisgICAgdGV4dCA9ICIiCisgICAgZm9y
IG5vZGVzX25hbWVkIGluIHRvcF9ub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKG5hbWUpOgorICAg
ICAgICB0ZXh0ICs9ICIiLmpvaW4oW25vZGUuZGF0YSBmb3Igbm9kZSBpbiBub2Rlc19uYW1lZC5j
aGlsZE5vZGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm9kZS5ub2RlVHlwZSA9PSBu
b2RlLlRFWFRfTk9ERV0pCisgICAgcmV0dXJuIHRleHQKKworCitkZWYgZ2V0X0NEQVRBX29mKHRv
cF9ub2RlLCBuYW1lKToKKyAgICAiIiIgUmV0dXJucyBhbGwgQ0RBVEEgaW4gYWxsIERPTSBub2Rl
cyB3aXRoIGEgY2VydGFpbiB8bmFtZXwgdGhhdCBhcmUgY2hpbGRyZW4gb2YgfHRvcF9ub2RlfC4g
IiIiCisKKyAgICB0ZXh0ID0gIiIKKyAgICBmb3Igbm9kZXNfbmFtZWQgaW4gdG9wX25vZGUuZ2V0
RWxlbWVudHNCeVRhZ05hbWUobmFtZSk6CisgICAgICAgIHRleHQgKz0gIiIuam9pbihbbm9kZS5k
YXRhIGZvciBub2RlIGluIG5vZGVzX25hbWVkLmNoaWxkTm9kZXMKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiBub2RlLm5vZGVUeXBlID09IG5vZGUuQ0RBVEFfU0VDVElPTl9OT0RFXSkKKyAg
ICBpZiAodGV4dCA9PSAiIik6CisgICAgICAgIHJldHVybiBOb25lCisgICAgcmV0dXJuIHRleHQK
KworIyBDb25zdGFudHMgdGhhdCBnaXZlIHJlYWwgbmFtZXMgdG8gdGhlIGFiYnJldmlhdGlvbnMg
aW4gdmFsZ3JpbmQgWE1MIG91dHB1dC4KK0lOU1RSVUNUSU9OX1BPSU5URVIgPSAiaXAiCitPQkpF
Q1RfRklMRSA9ICJvYmoiCitGVU5DVElPTl9OQU1FID0gImZuIgorU1JDX0ZJTEVfRElSID0gImRp
ciIKK1NSQ19GSUxFX05BTUUgPSAiZmlsZSIKK1NSQ19MSU5FID0gImxpbmUiCisKKworZGVmIGdh
dGhlcl9mcmFtZXMobm9kZSwgc291cmNlX2Rpcik6CisgICAgZnJhbWVzID0gW10KKyAgICBmb3Ig
ZnJhbWUgaW4gbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZnJhbWUiKToKKyAgICAgICAgZnJh
bWVfZGljdCA9IHsKKyAgICAgICAgICAgIElOU1RSVUNUSU9OX1BPSU5URVI6IGdldF90ZXh0X29m
KGZyYW1lLCBJTlNUUlVDVElPTl9QT0lOVEVSKSwKKyAgICAgICAgICAgIE9CSkVDVF9GSUxFOiBn
ZXRfdGV4dF9vZihmcmFtZSwgT0JKRUNUX0ZJTEUpLAorICAgICAgICAgICAgRlVOQ1RJT05fTkFN
RTogZ2V0X3RleHRfb2YoZnJhbWUsIEZVTkNUSU9OX05BTUUpLAorICAgICAgICAgICAgU1JDX0ZJ
TEVfRElSOiBnZXRfdGV4dF9vZihmcmFtZSwgU1JDX0ZJTEVfRElSKSwKKyAgICAgICAgICAgIFNS
Q19GSUxFX05BTUU6IGdldF90ZXh0X29mKGZyYW1lLCBTUkNfRklMRV9OQU1FKSwKKyAgICAgICAg
ICAgIFNSQ19MSU5FOiBnZXRfdGV4dF9vZihmcmFtZSwgU1JDX0xJTkUpfQorCisgICAgICAgIGZy
YW1lcyArPSBbZnJhbWVfZGljdF0KKyAgICByZXR1cm4gZnJhbWVzCisKKworY2xhc3MgVmFsZ3Jp
bmRFcnJvcjoKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb3VyY2VfZGlyLCBlcnJvcl9ub2Rl
KToKKyAgICAgICAgc2VsZi5fa2luZCA9IGdldF90ZXh0X29mKGVycm9yX25vZGUsICJraW5kIikK
KyAgICAgICAgc2VsZi5fYmFja3RyYWNlcyA9IFtdCisgICAgICAgIHNlbGYuX3N1cHByZXNzaW9u
ID0gTm9uZQorICAgICAgICBzZWxmLl9hZGRpdGlvbmFsID0gW10KKworICAgICAgICAjIEl0ZXJh
dGUgdGhyb3VnaCB0aGUgbm9kZXMsIHBhcnNpbmcgPHdoYXR8YXV4d2hhdD48c3RhY2s+IHBhaXJz
LgorICAgICAgICBkZXNjcmlwdGlvbiA9IE5vbmUKKyAgICAgICAgZm9yIG5vZGUgaW4gZXJyb3Jf
bm9kZS5jaGlsZE5vZGVzOgorICAgICAgICAgICAgaWYgbm9kZS5sb2NhbE5hbWUgPT0gIndoYXQi
IG9yIG5vZGUubG9jYWxOYW1lID09ICJhdXh3aGF0IjoKKyAgICAgICAgICAgICAgICBkZXNjcmlw
dGlvbiA9ICIiLmpvaW4oW24uZGF0YSBmb3IgbiBpbiBub2RlLmNoaWxkTm9kZXMKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG4ubm9kZVR5cGUgPT0gbi5URVhUX05P
REVdKQorICAgICAgICAgICAgZWxpZiBub2RlLmxvY2FsTmFtZSA9PSAieHdoYXQiOgorICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uID0gZ2V0X3RleHRfb2Yobm9kZSwgInRleHQiKQorICAgICAg
ICAgICAgZWxpZiBub2RlLmxvY2FsTmFtZSA9PSAic3RhY2siOgorICAgICAgICAgICAgICAgIGFz
c2VydCBkZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgIHNlbGYuX2JhY2t0cmFjZXMuYXBwZW5k
KFtkZXNjcmlwdGlvbiwgZ2F0aGVyX2ZyYW1lcyhub2RlLCBzb3VyY2VfZGlyKV0pCisgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb24gPSBOb25lCisgICAgICAgICAgICBlbGlmIG5vZGUubG9jYWxO
YW1lID09ICJvcmlnaW4iOgorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gZ2V0X3RleHRf
b2Yobm9kZSwgIndoYXQiKQorICAgICAgICAgICAgICAgIHN0YWNrID0gbm9kZS5nZXRFbGVtZW50
c0J5VGFnTmFtZSgic3RhY2siKVswXQorICAgICAgICAgICAgICAgIGZyYW1lcyA9IGdhdGhlcl9m
cmFtZXMoc3RhY2ssIHNvdXJjZV9kaXIpCisgICAgICAgICAgICAgICAgc2VsZi5fYmFja3RyYWNl
cy5hcHBlbmQoW2Rlc2NyaXB0aW9uLCBmcmFtZXNdKQorICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uID0gTm9uZQorICAgICAgICAgICAgICAgIHN0YWNrID0gTm9uZQorICAgICAgICAgICAgICAg
IGZyYW1lcyA9IE5vbmUKKyAgICAgICAgICAgIGVsaWYgZGVzY3JpcHRpb24gYW5kIG5vZGUubG9j
YWxOYW1lICE9IE5vbmU6CisgICAgICAgICAgICAgICAgIyBUaGUgbGFzdGVzdCBkZXNjcmlwdGlv
biBoYXMgbm8gc3RhY2ssIGUuZy4gIkFkZHJlc3MgMHgyOCBpcyB1bmtub3duIi4KKyAgICAgICAg
ICAgICAgICBzZWxmLl9hZGRpdGlvbmFsLmFwcGVuZChkZXNjcmlwdGlvbikKKyAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbiA9IE5vbmUKKworICAgICAgICAgICAgaWYgbm9kZS5sb2NhbE5hbWUg
PT0gInN1cHByZXNzaW9uIjoKKyAgICAgICAgICAgICAgICBzZWxmLl9zdXBwcmVzc2lvbiA9IGdl
dF9DREFUQV9vZihub2RlLCAicmF3dGV4dCIpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAg
ICAgICAgb3V0cHV0ID0gIiIKKworICAgICAgICBvdXRwdXQgKz0gc2VsZi5fa2luZCArICJcbiIK
KyAgICAgICAgZm9yIGJhY2t0cmFjZSBpbiBzZWxmLl9iYWNrdHJhY2VzOgorICAgICAgICAgICAg
b3V0cHV0ICs9IGJhY2t0cmFjZVswXSArICJcbiIKKyAgICAgICAgICAgIGZpbHRlciA9IHN1YnBy
b2Nlc3MuUG9wZW4oImMrK2ZpbHQgLW4iLCBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNU
RE9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlbGw9VHJ1ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2Zkcz1UcnVlKQor
ICAgICAgICAgICAgYnVmID0gIiIKKyAgICAgICAgICAgIGZvciBmcmFtZSBpbiBiYWNrdHJhY2Vb
MV06CisgICAgICAgICAgICAgICAgYnVmICs9IChmcmFtZVtGVU5DVElPTl9OQU1FXSBvciBmcmFt
ZVtJTlNUUlVDVElPTl9QT0lOVEVSXSkgKyAiXG4iCisgICAgICAgICAgICAoc3Rkb3V0YnVmLCBz
dGRlcnJidWYpID0gZmlsdGVyLmNvbW11bmljYXRlKGJ1Zi5lbmNvZGUoJ2xhdGluLTEnKSkKKyAg
ICAgICAgICAgIGRlbWFuZ2xlZF9uYW1lcyA9IHN0ZG91dGJ1Zi5zcGxpdCgiXG4iKQorCisgICAg
ICAgICAgICBpID0gMAorICAgICAgICAgICAgZm9yIGZyYW1lIGluIGJhY2t0cmFjZVsxXToKKyAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gKCIgICIgKyBkZW1hbmdsZWRfbmFtZXNbaV0pCisgICAg
ICAgICAgICAgICAgaSA9IGkgKyAxCisKKyAgICAgICAgICAgICAgICBpZiBmcmFtZVtTUkNfRklM
RV9ESVJdICE9ICIiOgorICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gKCIgKCIgKyBmcmFt
ZVtTUkNfRklMRV9ESVJdICsgIi8iICsgZnJhbWVbU1JDX0ZJTEVfTkFNRV0gKworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICI6IiArIGZyYW1lW1NSQ19MSU5FXSArICIpIikKKyAgICAg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIiAoIiArIGZy
YW1lW09CSkVDVF9GSUxFXSArICIpIgorICAgICAgICAgICAgICAgIG91dHB1dCArPSAiXG4iCisK
KyAgICAgICAgZm9yIGFkZGl0aW9uYWwgaW4gc2VsZi5fYWRkaXRpb25hbDoKKyAgICAgICAgICAg
IG91dHB1dCArPSBhZGRpdGlvbmFsICsgIlxuIgorCisgICAgICAgIGFzc2VydCBzZWxmLl9zdXBw
cmVzc2lvbiAhPSBOb25lLCAiWW91ciBWYWxncmluZCBkb2Vzbid0IGdlbmVyYXRlICIgXAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXBwcmVzc2lvbnMgLSBp
cyBpdCB0b28gb2xkPyIKKworICAgICAgICBvdXRwdXQgKz0gIlN1cHByZXNzaW9uIChlcnJvciBo
YXNoPSMlMDE2WCMpOlxuIiAlIHNlbGYuZXJyb3JfaGFzaCgpCisKKyAgICAgICAgIyBXaWRlbiB0
aGUgc3VwcHJlc3Npb25zIHNsaWdodGx5LgorICAgICAgICBzdXBwID0gc2VsZi5fc3VwcHJlc3Np
b24KKyAgICAgICAgc3VwcCA9IHN1cHAucmVwbGFjZSgiZnVuOl9abndqIiwgImZ1bjpfWm53KiIp
CisgICAgICAgIHN1cHAgPSBzdXBwLnJlcGxhY2UoImZ1bjpfWm53bSIsICJmdW46X1pudyoiKQor
ICAgICAgICBzdXBwID0gc3VwcC5yZXBsYWNlKCJmdW46X1puYWoiLCAiZnVuOl9abmEqIikKKyAg
ICAgICAgc3VwcCA9IHN1cHAucmVwbGFjZSgiZnVuOl9abmFtIiwgImZ1bjpfWm5hKiIpCisKKyAg
ICAgICAgIyBTcGxpdCBpbnRvIGxpbmVzIHNvIHdlIGNhbiBlbmZvcmNlIGxlbmd0aCBsaW1pdHMu
CisgICAgICAgIHN1cHBsaW5lcyA9IHN1cHAuc3BsaXQoIlxuIikKKyAgICAgICAgc3VwcCA9IE5v
bmUgICMgdG8gYXZvaWQgcmUtdXNlCisKKyAgICAgICAgIyBUcnVuY2F0ZSBhdCBsaW5lIDI2IChW
R19NQVhfU1VQUF9DQUxMRVJTIHBsdXMgMiBmb3IgbmFtZSBhbmQgdHlwZSkKKyAgICAgICAgIyAo
aHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTQ2OCBwcm9wb3NlcyByYWlz
aW5nCisgICAgICAgICMgVkdfTUFYX1NVUFBfQ0FMTEVSUywgYnV0IHdlJ3JlIHByb2JhYmx5IGZp
bmUgd2l0aCBpdCBhcyBpcy4pCisgICAgICAgIG5ld2xlbiA9IG1pbigyNiwgbGVuKHN1cHBsaW5l
cykpCisKKyAgICAgICAgaWYgKGxlbihzdXBwbGluZXMpID4gbmV3bGVuKToKKyAgICAgICAgICAg
IHN1cHBsaW5lcyA9IHN1cHBsaW5lc1swOm5ld2xlbl0KKyAgICAgICAgICAgIHN1cHBsaW5lcy5h
cHBlbmQoIn0iKQorCisgICAgICAgIGZvciBmcmFtZSBpbiByYW5nZShsZW4oc3VwcGxpbmVzKSk6
CisgICAgICAgICAgICAjIFJlcGxhY2UgdGhlIGFsd2F5cy1jaGFuZ2luZyBhbm9ueW1vdXMgbmFt
ZXNwYWNlIHByZWZpeCB3aXRoICIqIi4KKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCgiKCArZnVu
OilfWk4uKl9HTE9CQUxfX05fLipcLmNjXyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICJb
MC05YS1mQS1GXXs4fV9bMC05YS1mQS1GXXs4fSguKikiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIHN1cHBsaW5lc1tmcmFtZV0pCisgICAgICAgICAgICBpZiBtOgorICAgICAgICAgICAgICAg
IHN1cHBsaW5lc1tmcmFtZV0gPSAiKiIuam9pbihtLmdyb3VwcygpKQorCisgICAgICAgIG91dHB1
dCArPSAiXG4iLmpvaW4oc3VwcGxpbmVzKSArICJcbiIKKworICAgICAgICByZXR1cm4gb3V0cHV0
CisKKyAgICBkZWYgdW5pcXVlX3N0cmluZyhzZWxmKToKKyAgICAgICAgcmVwID0gc2VsZi5fa2lu
ZCArICIgIgorICAgICAgICBmb3IgYmFja3RyYWNlIGluIHNlbGYuX2JhY2t0cmFjZXM6CisgICAg
ICAgICAgICBmb3IgZnJhbWUgaW4gYmFja3RyYWNlWzFdOgorICAgICAgICAgICAgICAgIHJlcCAr
PSBmcmFtZVtGVU5DVElPTl9OQU1FXQorCisgICAgICAgICAgICAgICAgaWYgZnJhbWVbU1JDX0ZJ
TEVfRElSXSAhPSAiIjoKKyAgICAgICAgICAgICAgICAgICAgcmVwICs9IGZyYW1lW1NSQ19GSUxF
X0RJUl0gKyAiLyIgKyBmcmFtZVtTUkNfRklMRV9OQU1FXQorICAgICAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgICAgIHJlcCArPSBmcmFtZVtPQkpFQ1RfRklMRV0KKyAgICAgICAg
cmV0dXJuIHJlcAorCisgICAgZGVmIGVycm9yX2hhc2goc2VsZik6CisgICAgICAgICMgVGhpcyBp
cyBhIGRldmljZS1pbmRlcGVuZGVudCBoYXNoIGlkZW50aWZ5aW5nIHRoZSBzdXBwcmVzc2lvbi4K
KyAgICAgICAgIyBCeSBwcmludGluZyBvdXQgdGhpcyBoYXNoIHdlIGNhbiBmaW5kIGR1cGxpY2F0
ZSByZXBvcnRzIGJldHdlZW4gdGVzdHMgYW5kCisgICAgICAgICMgZGlmZmVyZW50IHNoYXJkcyBy
dW5uaW5nIG9uIG11bHRpcGxlIGJ1aWxkYm90cworICAgICAgICByZXR1cm4gaW50KGhhc2hsaWIu
bWQ1KHNlbGYudW5pcXVlX3N0cmluZygpKS5oZXhkaWdlc3QoKVs6MTZdLCAxNikKKworICAgIGRl
ZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGhhc2goc2VsZi51bmlxdWVfc3RyaW5n
KCkpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIHJocyk6CisgICAgICAgIHJldHVybiBzZWxmLnVu
aXF1ZV9zdHJpbmcoKSA9PSByaHMKKworCitjbGFzcyBMZWFrRGV0ZWN0b3JWYWxncmluZChvYmpl
Y3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVzeXN0ZW0sIHNvdXJjZV9kaXIpOgor
ICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gZmlsZXN5c3RlbQorICAgICAgICBzZWxmLl9zb3Vy
Y2VfZGlyID0gc291cmNlX2RpcgorCisgICAgICAgICMgQ29udGFpbnMgdGhlIHNldCBvZiB1bmlx
dWUgZXJyb3JzLgorICAgICAgICBzZWxmLl9lcnJvcnMgPSBzZXQoKQorICAgICAgICAjIENvbnRh
aW5zIGFsbCBzdXBwcmVzc2lvbnMgdXNlZC4KKyAgICAgICAgc2VsZi5fc3VwcHJlc3Npb25zID0g
ZGVmYXVsdGRpY3QoaW50KQorCisgICAgZGVmIF9wYXJzZV9sZWFrc19vdXRwdXQoc2VsZiwgbGVh
a3Nfb3V0cHV0KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGFyc2VkX3N0cmluZyA9IHBh
cnNlU3RyaW5nKGxlYWtzX291dHB1dCkKKyAgICAgICAgZXhjZXB0IEV4cGF0RXJyb3IsIGU6Cisg
ICAgICAgICAgICBwYXJzZV9mYWlsZWQgPSBUcnVlCisgICAgICAgICAgICBfbG9nLmVycm9yKCJj
b3VsZCBub3QgcGFyc2UgJXM6ICVzIiAlIChsZWFrc19vdXRwdXQsIGUpKQorICAgICAgICAgICAg
cmFpc2UgZQorCisgICAgICAgIGN1cl9yZXBvcnRfZXJyb3JzID0gc2V0KCkKKworICAgICAgICBj
b21tYW5kbGluZSA9IE5vbmUKKyAgICAgICAgcHJlYW1ibGUgPSBwYXJzZWRfc3RyaW5nLmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJwcmVhbWJsZSIpWzBdCisgICAgICAgIGZvciBub2RlIGluIHByZWFt
YmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5lIik6CisgICAgICAgICAgICBpZiBub2RlLmxv
Y2FsTmFtZSA9PSAibGluZSI6CisgICAgICAgICAgICAgICAgZm9yIHggaW4gbm9kZS5jaGlsZE5v
ZGVzOgorICAgICAgICAgICAgICAgICAgICBpZiB4Lm5vZGVUeXBlID09IG5vZGUuVEVYVF9OT0RF
IGFuZCAiQ29tbWFuZCIgaW4geC5kYXRhOgorICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFu
ZGxpbmUgPSB4LmRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAg
cmF3X2Vycm9ycyA9IHBhcnNlZF9zdHJpbmcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImVycm9yIikK
KyAgICAgICAgZm9yIHJhd19lcnJvciBpbiByYXdfZXJyb3JzOgorICAgICAgICAgICAgIyBJZ25v
cmUgInBvc3NpYmxlIiBsZWFrcyBhbmQgSW52YWxpZFJlYWQvV3JpdGUgYnkgZGVmYXVsdC4KKyAg
ICAgICAgICAgIGlmIChnZXRfdGV4dF9vZihyYXdfZXJyb3IsICJraW5kIikgIT0gIkxlYWtfUG9z
c2libHlMb3N0IikgYW5kIFwKKyAgICAgICAgICAgICAgICAoZ2V0X3RleHRfb2YocmF3X2Vycm9y
LCAia2luZCIpICE9ICJMZWFrX1N0aWxsUmVhY2hhYmxlIikgYW5kIFwKKyAgICAgICAgICAgICAg
ICAoZ2V0X3RleHRfb2YocmF3X2Vycm9yLCAia2luZCIpICE9ICJJbnZhbGlkV3JpdGUiKSBhbmQg
XAorICAgICAgICAgICAgICAgIChnZXRfdGV4dF9vZihyYXdfZXJyb3IsICJraW5kIikgIT0gIklu
dmFsaWRSZWFkIik6CisgICAgICAgICAgICAgICAgZXJyb3IgPSBWYWxncmluZEVycm9yKHNlbGYu
X3NvdXJjZV9kaXIsIHJhd19lcnJvcikKKyAgICAgICAgICAgICAgICBpZiBlcnJvciBub3QgaW4g
Y3VyX3JlcG9ydF9lcnJvcnM6CisgICAgICAgICAgICAgICAgICAgICMgV2UgaGF2ZW4ndCBzZWVu
IHN1Y2ggZXJyb3JzIGRvaW5nIHRoaXMgcmVwb3J0IHlldC4uLgorICAgICAgICAgICAgICAgICAg
ICBpZiBlcnJvciBpbiBzZWxmLl9lcnJvcnM6CisgICAgICAgICAgICAgICAgICAgICAgICAjIC4u
LiBidXQgd2Ugc2F3IGl0IGluIGVhcmxpZXIgcmVwb3J0cywgZS5nLiBwcmV2aW91cyBVSSB0ZXN0
CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJfcmVwb3J0X2Vycm9ycy5hZGQoIlRoaXMgZXJy
b3Igd2FzIGFscmVhZHkgcHJpbnRlZCBpbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInNvbWUgb3RoZXIgdGVzdCwgc2VlICdoYXNoPSMlMDE2WCMnIiAl
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5lcnJvcl9oYXNoKCkpCisgICAg
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAjIC4uLiBhbmQg
d2UgaGF2ZW4ndCBzZWVuIGl0IGluIG90aGVyIHRlc3RzIGFzIHdlbGwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX2Vycm9ycy5hZGQoZXJyb3IpCisgICAgICAgICAgICAgICAgICAgICAg
ICBjdXJfcmVwb3J0X2Vycm9ycy5hZGQoZXJyb3IpCisKKyAgICAgICAgc3VwcGNvdW50bGlzdCA9
IHBhcnNlZF9zdHJpbmcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN1cHBjb3VudHMiKQorICAgICAg
ICBpZiBsZW4oc3VwcGNvdW50bGlzdCkgPiAwOgorICAgICAgICAgICAgc3VwcGNvdW50bGlzdCA9
IHN1cHBjb3VudGxpc3RbMF0KKyAgICAgICAgICAgIGZvciBub2RlIGluIHN1cHBjb3VudGxpc3Qu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoInBhaXIiKToKKyAgICAgICAgICAgICAgICBjb3VudCA9IGdl
dF90ZXh0X29mKG5vZGUsICJjb3VudCIpCisgICAgICAgICAgICAgICAgbmFtZSA9IGdldF90ZXh0
X29mKG5vZGUsICJuYW1lIikKKyAgICAgICAgICAgICAgICBzZWxmLl9zdXBwcmVzc2lvbnNbbmFt
ZV0gKz0gaW50KGNvdW50KQorCisgICAgICAgIHJldHVybiBjdXJfcmVwb3J0X2Vycm9ycworCisg
ICAgZGVmIGxlYWtzX2ZpbGVzX2luX3Jlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5nbG9iKHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9z
b3VyY2VfZGlyLCAiZHJ0LSotbGVha3MueG1sIikpCisKKyAgICBkZWYgY2xlYW5fbGVha3NfZmls
ZXNfZnJvbV9yZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAgIyBSZW1vdmUgb2xkIFZh
bGdyaW5kIHhtbCBmaWxlcyBiZWZvcmUgc3RhcnRpbmcgdGhpcyBydW4uCisgICAgICAgIGxlYWtz
X2ZpbGVzID0gc2VsZi5sZWFrc19maWxlc19pbl9yZXN1bHRzX2RpcmVjdG9yeSgpCisgICAgICAg
IGZvciBmIGluIGxlYWtzX2ZpbGVzOgorICAgICAgICAgICAgb3MucmVtb3ZlKGYpCisKKyAgICBk
ZWYgcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbChzZWxmLCBsZWFrc19maWxlcyk6CisgICAg
ICAgIGZvciBmIGluIGxlYWtzX2ZpbGVzOgorICAgICAgICAgICAgbGVha3Nfb3V0cHV0ID0gc2Vs
Zi5fZmlsZXN5c3RlbS5yZWFkX2JpbmFyeV9maWxlKGYpCisgICAgICAgICAgICBkZXRlY3RlZF9s
ZWFrcyA9IHNlbGYuX3BhcnNlX2xlYWtzX291dHB1dChsZWFrc19vdXRwdXQpCisKKyAgICAgICAg
X2xvZy5pbmZvKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSIpCisgICAgICAgIF9sb2cuaW5mbygiU3VwcHJlc3Npb25zIHVzZWQ6IikKKyAgICAg
ICAgX2xvZy5pbmZvKCIgIGNvdW50IG5hbWUiKQorICAgICAgICBmb3IgKG5hbWUsIGNvdW50KSBp
biBzb3J0ZWQoc2VsZi5fc3VwcHJlc3Npb25zLml0ZW1zKCksIGtleT1sYW1iZGEgKGssIHYpOiAo
diwgaykpOgorICAgICAgICAgICAgX2xvZy5pbmZvKCIlN2QgJXMiICUgKGNvdW50LCBuYW1lKSkK
KyAgICAgICAgX2xvZy5pbmZvKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSIpCisKKyAgICAgICAgaWYgc2VsZi5fZXJyb3JzOgorICAgICAgICAg
ICAgX2xvZy5pbmZvKCJWYWxncmluZCBkZXRlY3RlZCAlcyBsZWFrczoiICUgbGVuKHNlbGYuX2Vy
cm9ycykpCisgICAgICAgICAgICBmb3IgbGVhayBpbiBzZWxmLl9lcnJvcnM6CisgICAgICAgICAg
ICAgICAgX2xvZy5pbmZvKGxlYWspCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5kX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZF91bml0dGVzdC5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNmE2ZTIxNGIyZTg3NWVkNzBiODRjYjM3N2FlOTk1MTUyMGI3MzllCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZF91
bml0dGVzdC5weQpAQCAtMCwwICsxLDcyNCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3Vu
ZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCB1
bml0dGVzdDIgYXMgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVz
eXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCitmcm9tIHdlYmtpdHB5LnBv
cnQubGVha2RldGVjdG9yX3ZhbGdyaW5kIGltcG9ydCBMZWFrRGV0ZWN0b3JWYWxncmluZAorCisK
K2RlZiBtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KHByb2Nlc3NfbmFtZSwgcGlkLCB1dWlkKToK
KyAgICByZXR1cm4gIiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+CisKKzx2YWxncmluZG91dHB1dD4K
KworPHByb3RvY29sdmVyc2lvbj40PC9wcm90b2NvbHZlcnNpb24+Cis8cHJvdG9jb2x0b29sPm1l
bWNoZWNrPC9wcm90b2NvbHRvb2w+CisKKzxwcmVhbWJsZT4KKyAgPGxpbmU+TWVtY2hlY2ssIGEg
bWVtb3J5IGVycm9yIGRldGVjdG9yPC9saW5lPgorICA8bGluZT5Db3B5cmlnaHQgKEMpIDIwMDIt
MjAxMSwgYW5kIEdOVSBHUEwnZCwgYnkgSnVsaWFuIFNld2FyZCBldCBhbC48L2xpbmU+CisgIDxs
aW5lPlVzaW5nIFZhbGdyaW5kLTMuNy4wIGFuZCBMaWJWRVg7IHJlcnVuIHdpdGggLWggZm9yIGNv
cHlyaWdodCBpbmZvPC9saW5lPgorICA8bGluZT5Db21tYW5kOiAvaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL3twcm9jZXNzX25hbWV9IC08L2xpbmU+Cis8L3By
ZWFtYmxlPgorCis8cGlkPntwaWR9PC9waWQ+Cis8cHBpZD4xODU3NzwvcHBpZD4KKzx0b29sPm1l
bWNoZWNrPC90b29sPgorCis8YXJncz4KKyAgPHZhcmd2PgorICAgIDxleGU+L3Vzci9iaW4vdmFs
Z3JpbmQuYmluPC9leGU+CisgICAgPGFyZz4tLXRvb2w9bWVtY2hlY2s8L2FyZz4KKyAgICA8YXJn
Pi0tbnVtLWNhbGxlcnM9NDA8L2FyZz4KKyAgICA8YXJnPi0tZGVtYW5nbGU9bm88L2FyZz4KKyAg
ICA8YXJnPi0tdHJhY2UtY2hpbGRyZW49bm88L2FyZz4KKyAgICA8YXJnPi0tc21jLWNoZWNrPWFs
bC1ub24tZmlsZTwvYXJnPgorICAgIDxhcmc+LS1sZWFrLWNoZWNrPXllczwvYXJnPgorICAgIDxh
cmc+LS1sZWFrLXJlc29sdXRpb249aGlnaDwvYXJnPgorICAgIDxhcmc+LS1zaG93LXBvc3NpYmx5
LWxvc3Q9bm88L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1yZWFjaGFibGU9bm88L2FyZz4KKyAgICA8
YXJnPi0tbGVhay1jaGVjaz1mdWxsPC9hcmc+CisgICAgPGFyZz4tLXVuZGVmLXZhbHVlLWVycm9y
cz1ubzwvYXJnPgorICAgIDxhcmc+LS1nZW4tc3VwcHJlc3Npb25zPWFsbDwvYXJnPgorICAgIDxh
cmc+LS14bWw9eWVzPC9hcmc+CisgICAgPGFyZz4tLXhtbC1maWxlPS9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGF5b3V0LXRlc3QtcmVzdWx0cy9kcnQte3BpZH0te3V1aWR9
LWxlYWtzLnhtbDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L2hvbWUvdXNlci9XZWJL
aXQvVG9vbHMvU2NyaXB0cy92YWxncmluZC9zdXBwcmVzc2lvbnMudHh0PC9hcmc+CisgICAgPGFy
Zz4tLXN1cHByZXNzaW9ucz0vdXNyL2xpYi92YWxncmluZC9kZWJpYW4tbGliYzYtZGJnLnN1cHA8
L2FyZz4KKyAgPC92YXJndj4KKyAgPGFyZ3Y+CisgICAgPGV4ZT4vaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL3twcm9jZXNzX25hbWV9PC9leGU+CisgICAgPGFy
Zz4tPC9hcmc+CisgIDwvYXJndj4KKzwvYXJncz4KKworPHN0YXR1cz4KKyAgPHN0YXRlPlJVTk5J
Tkc8L3N0YXRlPgorICA8dGltZT4wMDowMDowMDowMC4wMjQgPC90aW1lPgorPC9zdGF0dXM+CisK
KworPHN0YXR1cz4KKyAgPHN0YXRlPkZJTklTSEVEPC9zdGF0ZT4KKyAgPHRpbWU+MDA6MDA6MDA6
NTQuMTg2IDwvdGltZT4KKzwvc3RhdHVzPgorCis8ZXJyb3I+CisgIDx1bmlxdWU+MHgxYTQ8L3Vu
aXF1ZT4KKyAgPHRpZD4xPC90aWQ+CisgIDxraW5kPkxlYWtfRGVmaW5pdGVseUxvc3Q8L2tpbmQ+
CisgIDx4d2hhdD4KKyAgICA8dGV4dD44IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5
IGxvc3QgaW4gbG9zcyByZWNvcmQgNDIxIG9mIDcsOTcyPC90ZXh0PgorICAgIDxsZWFrZWRieXRl
cz44PC9sZWFrZWRieXRlcz4KKyAgICA8bGVha2VkYmxvY2tzPjE8L2xlYWtlZGJsb2Nrcz4KKyAg
PC94d2hhdD4KKyAgPHN0YWNrPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDRDMkFGOEU8L2lw
PgorICAgICAgPG9iaj4vdXNyL2xpYi92YWxncmluZC92Z3ByZWxvYWRfbWVtY2hlY2stYW1kNjQt
bGludXguc288L29iaj4KKyAgICAgIDxmbj5fWm53bTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8
ZnJhbWU+CisgICAgICA8aXA+MHg2ODM5REVDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTku
Mzwvb2JqPgorICAgICAgPGZuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlckla
TjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVS
ZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5T
MV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0Ux
MF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZm4+
CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUU3QjAzPC9pcD4KKyAg
ICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3
ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfcG9saWN5
X2RlY2lzaW9uX25ldzwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+
MHg2MUNCQTZEPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQv
UmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZu
Pl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktOUzFfMTVSZXNv
dXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5jdGlv
bklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+
CisgICAgICA8aXA+MHg2ODNERjUyPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2Jq
PgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Q
b2xpY3lFUktOU18xNVJlc291cmNlUmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEw
UGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFUEZ2UHZTM19TOV9iRVNBXzwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODE3RUZDPC9pcD4KKyAgICAgIDxvYmo+
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIy
bG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9h
ZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRTwvZm4+CisgICAgPC9mcmFt
ZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODE4NzI5PC9pcD4KKyAgICAgIDxvYmo+L2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4w
LnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2Fk
RVBOU18xNERvY3VtZW50TG9hZGVyRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+Cisg
ICAgICA8aXA+MHg2ODE4QTNBPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgor
ICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRS
ZXF1ZXN0RTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUUz
MTQ4PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtp
dF93ZWJfZnJhbWVfbG9hZF91cmk8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAg
ICAgPGlwPjB4NDRDQkM5PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0
QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9a
TDdydW5UZXN0UktTczwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+
MHg0NENFRDY8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9S
ZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+X1pMMjBydW5U
ZXN0aW5nU2VydmVyTG9vcHY8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAg
PGlwPjB4NDNBMkQzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPm1haW48
L2ZuPgorICAgIDwvZnJhbWU+CisgIDwvc3RhY2s+CisgIDxzdXBwcmVzc2lvbj4KKyAgICA8c25h
bWU+aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPC9zbmFtZT4KKyAgICA8c2tpbmQ+TWVt
Y2hlY2s6TGVhazwvc2tpbmQ+CisgICAgPHNmcmFtZT4gPGZ1bj5fWm53bTwvZnVuPiA8L3NmcmFt
ZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdl
cklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFf
MTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRy
SU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVF
X0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lz
aW9uX25ldzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjZXZWJLaXQxN0Zy
YW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25F
UktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNX
VEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGlj
eUFjdGlvbkVFRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3Jl
MTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNlUmVx
dWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRl
RUVFUEZ2UHZTM19TOV9iRVNBXzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9a
TjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1
bWVudExvYWRlckVOU18xM0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1T
dGF0ZUVFRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFG
cmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVyRTwvZnVuPiA8L3NmcmFtZT4KKyAg
ICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFt
ZUxvYWRSZXF1ZXN0RTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93
ZWJfZnJhbWVfbG9hZF91cmk8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWkw3
cnVuVGVzdFJLU3M8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWkwyMHJ1blRl
c3RpbmdTZXJ2ZXJMb29wdjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPm1haW48
L2Z1bj4gPC9zZnJhbWU+CisgICAgPHJhd3RleHQ+Cis8IVtDREFUQVsKK3t7CisgICA8aW5zZXJ0
X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPgorICAgTWVtY2hlY2s6TGVhaworICAgZnVuOl9abndt
CisgICBmdW46X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUx
M1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TMV8xNVJlc291cmNlUmVx
dWVzdEVQTlMxXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3Rh
dGVFRUVQRnZQdlM1X1NCX2JFU0NfRVVsTlMxXzEyUG9saWN5QWN0aW9uRUVfRTEwX01fbWFuYWdl
ckVSU3Q5X0FueV9kYXRhUktTSV9TdDE4X01hbmFnZXJfb3BlcmF0aW9uCisgICBmdW46d2Via2l0
X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3CisgICBmdW46X1pONldlYktpdDE3RnJhbWVMb2FkZXJD
bGllbnQzOWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkVSS043V2ViQ29y
ZTE2TmF2aWdhdGlvbkFjdGlvbkVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVOM1dURjEwUGFzc1Jl
ZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVF
CisgICBmdW46X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGlj
eUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVBOU18xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzlGb3JtU3RhdGVFRUVQRnZQdlMzX1M5X2JFU0FfCisgICBmdW46X1pON1dlYkNv
cmUxMUZyYW1lTG9hZGVyMjJsb2FkV2l0aERvY3VtZW50TG9hZGVyRVBOU18xNERvY3VtZW50TG9h
ZGVyRU5TXzEzRnJhbWVMb2FkVHlwZUVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVF
CisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUE5TXzE0RG9jdW1lbnRMb2Fk
ZXJFCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1lTG9h
ZFJlcXVlc3RFCisgICBmdW46d2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaQorICAgZnVuOl9aTDdy
dW5UZXN0UktTcworICAgZnVuOl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2CisgICBmdW46bWFp
bgorfX0KK11dPgorICAgIDwvcmF3dGV4dD4KKyAgPC9zdXBwcmVzc2lvbj4KKzwvZXJyb3I+CisK
KzxlcnJvcj4KKyAgPHVuaXF1ZT4weDFhNTwvdW5pcXVlPgorICA8dGlkPjE8L3RpZD4KKyAgPGtp
bmQ+TGVha19EZWZpbml0ZWx5TG9zdDwva2luZD4KKyAgPHh3aGF0PgorICAgIDx0ZXh0PjggYnl0
ZXMgaW4gMSBibG9ja3MgYXJlIGRlZmluaXRlbHkgbG9zdCBpbiBsb3NzIHJlY29yZCA0MjIgb2Yg
Nyw5NzI8L3RleHQ+CisgICAgPGxlYWtlZGJ5dGVzPjg8L2xlYWtlZGJ5dGVzPgorICAgIDxsZWFr
ZWRibG9ja3M+MTwvbGVha2VkYmxvY2tzPgorICA8L3h3aGF0PgorICA8c3RhY2s+CisgICAgPGZy
YW1lPgorICAgICAgPGlwPjB4NEMyQUY4RTwvaXA+CisgICAgICA8b2JqPi91c3IvbGliL3ZhbGdy
aW5kL3ZncHJlbG9hZF9tZW1jaGVjay1hbWQ2NC1saW51eC5zbzwvb2JqPgorICAgICAgPGZuPl9a
bndtPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY4MzlEMEM8
L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5s
aWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pOU3QxNF9G
dW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNo
ZWNrQ29udGVudFBvbGljeUVSS05TMV8xNlJlc291cmNlUmVzcG9uc2VFUEZ2UHZOUzFfMTJQb2xp
Y3lBY3Rpb25FRVM2X0VVbFM3X0VfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRhUktTQ19TdDE4
X01hbmFnZXJfb3BlcmF0aW9uPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAg
IDxpcD4weDYxRTdCMDM8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAg
ICA8Zm4+d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3PC9mbj4KKyAgICA8L2ZyYW1lPgor
ICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDYxQ0I1Mjc8L2lwPgorICAgICAgPG9iaj4vaG9tZS91
c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28u
MC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pONldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzMWRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VFUktON1dlYkNvcmUxNlJlc291cmNlUmVzcG9u
c2VFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rp
b25FRUU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgzOUVD
MDwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2Uv
LmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2Vi
Q29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9saWN5RVJLTlNfMTZSZXNvdXJjZVJl
c3BvbnNlRVBGdlB2TlNfMTJQb2xpY3lBY3Rpb25FRVM0XzwvZm4+CisgICAgPC9mcmFtZT4KKyAg
ICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODAyRjZFPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAu
MTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlcjE2cmVzcG9u
c2VSZWNlaXZlZEVQTlNfMTRDYWNoZWRSZXNvdXJjZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUU8
L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjdFNTlFMDwvaXA+
CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMv
bGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTE3
Q2FjaGVkUmF3UmVzb3VyY2UxNnJlc3BvbnNlUmVjZWl2ZWRFUktOU18xNlJlc291cmNlUmVzcG9u
c2VFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY4NEMyMzc8
L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5s
aWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNv
cmUxN1N1YnJlc291cmNlTG9hZGVyMThkaWRSZWNlaXZlUmVzcG9uc2VFUktOU18xNlJlc291cmNl
UmVzcG9uc2VFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDZG
OTU4NDg8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxl
YXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pO
N1dlYkNvcmVMMTlzZW5kUmVxdWVzdENhbGxiYWNrRVA4X0dPYmplY3RQMTNfR0FzeW5jUmVzdWx0
UHY8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4OEUyRDZDQTwv
aXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2ll
cy9Sb290L2xpYjY0L2xpYmdpby0yLjAuc28uMC4zODAwLjA8L29iaj4KKyAgICAgIDxmbj5nX3Rh
c2tfcmV0dXJuX25vdzwvZm4+CisgICAgICA8ZGlyPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2lvPC9kaXI+CisgICAgICA8Zmls
ZT5ndGFzay5jPC9maWxlPgorICAgICAgPGxpbmU+MTEwODwvbGluZT4KKyAgICA8L2ZyYW1lPgor
ICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDhFMkQ2RTg8L2lwPgorICAgICAgPG9iaj4vaG9tZS91
c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvUm9vdC9saWI2NC9saWJnaW8tMi4w
LnNvLjAuMzgwMC4wPC9vYmo+CisgICAgICA8Zm4+Y29tcGxldGVfaW5faWRsZV9jYjwvZm4+Cisg
ICAgICA8ZGlyPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3Vy
Y2UvZ2xpYi0yLjM4LjAvZ2lvPC9kaXI+CisgICAgICA8ZmlsZT5ndGFzay5jPC9maWxlPgorICAg
ICAgPGxpbmU+MTExNzwvbGluZT4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxp
cD4weDkzQTYyRjQ8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXMvUm9vdC9saWI2NC9saWJnbGliLTIuMC5zby4wLjM4MDAuMDwvb2JqPgor
ICAgICAgPGZuPmdfbWFpbl9jb250ZXh0X2Rpc3BhdGNoPC9mbj4KKyAgICAgIDxkaXI+L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIuMzguMC9n
bGliPC9kaXI+CisgICAgICA8ZmlsZT5nbWFpbi5jPC9maWxlPgorICAgICAgPGxpbmU+MzA2NTwv
bGluZT4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDkzQTY2Mzc8L2lw
PgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMv
Um9vdC9saWI2NC9saWJnbGliLTIuMC5zby4wLjM4MDAuMDwvb2JqPgorICAgICAgPGZuPmdfbWFp
bl9jb250ZXh0X2l0ZXJhdGUuaXNyYS4yMzwvZm4+CisgICAgICA8ZGlyPi9ob21lL3VzZXIvV2Vi
S2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2xpYjwvZGly
PgorICAgICAgPGZpbGU+Z21haW4uYzwvZmlsZT4KKyAgICAgIDxsaW5lPjM3MTI8L2xpbmU+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg5M0E2QTk5PC9pcD4KKyAgICAg
IDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGli
NjQvbGliZ2xpYi0yLjAuc28uMC4zODAwLjA8L29iaj4KKyAgICAgIDxmbj5nX21haW5fbG9vcF9y
dW48L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dsaWI8L2Rpcj4KKyAgICAgIDxmaWxlPmdtYWluLmM8
L2ZpbGU+CisgICAgICA8bGluZT4zOTA2PC9saW5lPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1l
PgorICAgICAgPGlwPjB4ODEyMTIwNDwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Sb290L2xpYjY0L2xpYmd0ay0zLnNvLjAuNjAwLjA8
L29iaj4KKyAgICAgIDxmbj5ndGtfbWFpbjwvZm4+CisgICAgICA8ZGlyPi9ob21lL3VzZXIvV2Vi
S2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ3RrKy0zLjYuMC9ndGs8L2Rpcj4K
KyAgICAgIDxmaWxlPmd0a21haW4uYzwvZmlsZT4KKyAgICAgIDxsaW5lPjExNjI8L2xpbmU+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0NENCQ0U8L2lwPgorICAgICAg
PG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBS
ZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+X1pMN3J1blRlc3RSS1NzPC9mbj4KKyAgICA8L2Zy
YW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQ0Q0VENjwvaXA+CisgICAgICA8b2JqPi9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRy
ZWU8L29iaj4KKyAgICAgIDxmbj5fWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdjwvZm4+CisgICAg
PC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0M0EyRDM8L2lwPgorICAgICAgPG9i
aj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5k
ZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+bWFpbjwvZm4+CisgICAgPC9mcmFtZT4KKyAgPC9zdGFj
az4KKyAgPHN1cHByZXNzaW9uPgorICAgIDxzbmFtZT5pbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1l
X2hlcmU8L3NuYW1lPgorICAgIDxza2luZD5NZW1jaGVjazpMZWFrPC9za2luZD4KKyAgICA8c2Zy
YW1lPiA8ZnVuPl9abndtPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pOU3Qx
NF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIx
OGNoZWNrQ29udGVudFBvbGljeUVSS05TMV8xNlJlc291cmNlUmVzcG9uc2VFUEZ2UHZOUzFfMTJQ
b2xpY3lBY3Rpb25FRVM2X0VVbFM3X0VfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRhUktTQ19T
dDE4X01hbmFnZXJfb3BlcmF0aW9uPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+
d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJh
bWU+IDxmdW4+X1pONldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzMWRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VFUktON1dlYkNvcmUxNlJlc291cmNlUmVzcG9uc2VFUktOUzFfMTVSZXNv
dXJjZVJlcXVlc3RFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUU8L2Z1bj4gPC9z
ZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hl
Y2tDb250ZW50UG9saWN5RVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlNfMTJQb2xpY3lB
Y3Rpb25FRVM0XzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3Jl
MTREb2N1bWVudExvYWRlcjE2cmVzcG9uc2VSZWNlaXZlZEVQTlNfMTRDYWNoZWRSZXNvdXJjZUVS
S05TXzE2UmVzb3VyY2VSZXNwb25zZUU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1
bj5fWk43V2ViQ29yZTE3Q2FjaGVkUmF3UmVzb3VyY2UxNnJlc3BvbnNlUmVjZWl2ZWRFUktOU18x
NlJlc291cmNlUmVzcG9uc2VFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pO
N1dlYkNvcmUxN1N1YnJlc291cmNlTG9hZGVyMThkaWRSZWNlaXZlUmVzcG9uc2VFUktOU18xNlJl
c291cmNlUmVzcG9uc2VFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dl
YkNvcmVMMTlzZW5kUmVxdWVzdENhbGxiYWNrRVA4X0dPYmplY3RQMTNfR0FzeW5jUmVzdWx0UHY8
L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5nX3Rhc2tfcmV0dXJuX25vdzwvZnVu
PiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPmNvbXBsZXRlX2luX2lkbGVfY2I8L2Z1bj4g
PC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5nX21haW5fY29udGV4dF9kaXNwYXRjaDwvZnVu
PiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPmdfbWFpbl9jb250ZXh0X2l0ZXJhdGUuaXNy
YS4yMzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPmdfbWFpbl9sb29wX3J1bjwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPmd0a19tYWluPC9mdW4+IDwvc2ZyYW1l
PgorICAgIDxzZnJhbWU+IDxmdW4+X1pMN3J1blRlc3RSS1NzPC9mdW4+IDwvc2ZyYW1lPgorICAg
IDxzZnJhbWU+IDxmdW4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2Z1bj4gPC9zZnJhbWU+
CisgICAgPHNmcmFtZT4gPGZ1bj5tYWluPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxyYXd0ZXh0Pgor
PCFbQ0RBVEFbCit7eworICAgPGluc2VydF9hX3N1cHByZXNzaW9uX25hbWVfaGVyZT4KKyAgIE1l
bWNoZWNrOkxlYWsKKyAgIGZ1bjpfWm53bQorICAgZnVuOl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEz
X0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xp
Y3lFUktOUzFfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEyUG9saWN5QWN0aW9uRUVTNl9F
VWxTN19FX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0NfU3QxOF9NYW5hZ2VyX29wZXJh
dGlvbgorICAgZnVuOndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldworICAgZnVuOl9aTjZX
ZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzFkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
RVJLTjdXZWJDb3JlMTZSZXNvdXJjZVJlc3BvbnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVN0
OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFCisgICBmdW46X1pON1dlYkNvcmUxM1Bv
bGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUVQ
RnZQdk5TXzEyUG9saWN5QWN0aW9uRUVTNF8KKyAgIGZ1bjpfWk43V2ViQ29yZTE0RG9jdW1lbnRM
b2FkZXIxNnJlc3BvbnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFUktOU18xNlJlc291
cmNlUmVzcG9uc2VFCisgICBmdW46X1pON1dlYkNvcmUxN0NhY2hlZFJhd1Jlc291cmNlMTZyZXNw
b25zZVJlY2VpdmVkRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRQorICAgZnVuOl9aTjdXZWJDb3Jl
MTdTdWJyZXNvdXJjZUxvYWRlcjE4ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZSZXNvdXJjZVJl
c3BvbnNlRQorICAgZnVuOl9aTjdXZWJDb3JlTDE5c2VuZFJlcXVlc3RDYWxsYmFja0VQOF9HT2Jq
ZWN0UDEzX0dBc3luY1Jlc3VsdFB2CisgICBmdW46Z190YXNrX3JldHVybl9ub3cKKyAgIGZ1bjpj
b21wbGV0ZV9pbl9pZGxlX2NiCisgICBmdW46Z19tYWluX2NvbnRleHRfZGlzcGF0Y2gKKyAgIGZ1
bjpnX21haW5fY29udGV4dF9pdGVyYXRlLmlzcmEuMjMKKyAgIGZ1bjpnX21haW5fbG9vcF9ydW4K
KyAgIGZ1bjpndGtfbWFpbgorICAgZnVuOl9aTDdydW5UZXN0UktTcworICAgZnVuOl9aTDIwcnVu
VGVzdGluZ1NlcnZlckxvb3B2CisgICBmdW46bWFpbgorfX0KK11dPgorICAgIDwvcmF3dGV4dD4K
KyAgPC9zdXBwcmVzc2lvbj4KKzwvZXJyb3I+CisKKzxlcnJvcj4KKyAgPHVuaXF1ZT4weDFhNjwv
dW5pcXVlPgorICA8dGlkPjE8L3RpZD4KKyAgPGtpbmQ+TGVha19EZWZpbml0ZWx5TG9zdDwva2lu
ZD4KKyAgPHh3aGF0PgorICAgIDx0ZXh0PjggYnl0ZXMgaW4gMSBibG9ja3MgYXJlIGRlZmluaXRl
bHkgbG9zdCBpbiBsb3NzIHJlY29yZCA0MjMgb2YgNyw5NzI8L3RleHQ+CisgICAgPGxlYWtlZGJ5
dGVzPjg8L2xlYWtlZGJ5dGVzPgorICAgIDxsZWFrZWRibG9ja3M+MTwvbGVha2VkYmxvY2tzPgor
ICA8L3h3aGF0PgorICA8c3RhY2s+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NEMyQUY4RTwv
aXA+CisgICAgICA8b2JqPi91c3IvbGliL3ZhbGdyaW5kL3ZncHJlbG9hZF9tZW1jaGVjay1hbWQ2
NC1saW51eC5zbzwvb2JqPgorICAgICAgPGZuPl9abndtPC9mbj4KKyAgICA8L2ZyYW1lPgorICAg
IDxmcmFtZT4KKyAgICAgIDxpcD4weDY4MzlERUM8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2Vy
L1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4x
OS4zPC9vYmo+CisgICAgICA8Zm4+X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2Vy
SVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TMV8x
NVJlc291cmNlUmVxdWVzdEVQTlMxXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJ
TlMxXzlGb3JtU3RhdGVFRUVQRnZQdlM1X1NCX2JFU0NfRVVsTlMxXzEyUG9saWN5QWN0aW9uRUVf
RTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRhUktTSV9TdDE4X01hbmFnZXJfb3BlcmF0aW9uPC9m
bj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDYxRTdCMDM8L2lwPgor
ICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xp
YndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+d2Via2l0X3dlYl9wb2xp
Y3lfZGVjaXNpb25fbmV3PC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxp
cD4weDYxQ0JBNkQ8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8
Zm4+X1pONldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzOWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkVSS043V2ViQ29yZTE2TmF2aWdhdGlvbkFjdGlvbkVSS05TMV8xNVJl
c291cmNlUmVxdWVzdEVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVN0OGZ1bmN0
aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFt
ZT4KKyAgICAgIDxpcD4weDY4M0RGNTI8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktp
dC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9v
Ymo+CisgICAgICA8Zm4+X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlv
blBvbGljeUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVBOU18xNERvY3VtZW50TG9hZGVyRU4zV1RG
MTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUVQRnZQdlMzX1M5X2JFU0FfPC9mbj4KKyAgICA8
L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY4MTdFRkM8L2lwPgorICAgICAgPG9i
aj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0
ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVy
MjJsb2FkV2l0aERvY3VtZW50TG9hZGVyRVBOU18xNERvY3VtZW50TG9hZGVyRU5TXzEzRnJhbWVM
b2FkVHlwZUVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFPC9mbj4KKyAgICA8L2Zy
YW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY4MTg3Mjk8L2lwPgorICAgICAgPG9iaj4v
aG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0z
LjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxv
YWRFUE5TXzE0RG9jdW1lbnRMb2FkZXJFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4K
KyAgICAgIDxpcD4weDY4MThBM0E8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+
CisgICAgICA8Zm4+X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1lTG9h
ZFJlcXVlc3RFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDYx
RTMxNDg8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxl
YXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+d2Vi
a2l0X3dlYl9mcmFtZV9sb2FkX3VyaTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+Cisg
ICAgICA8aXA+MHg0NENDNTA8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJL
aXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+
X1pMN3J1blRlc3RSS1NzPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxp
cD4weDQ0Q0VENjwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxk
L1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5fWkwyMHJ1
blRlc3RpbmdTZXJ2ZXJMb29wdjwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAg
ICA8aXA+MHg0M0EyRDM8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+bWFp
bjwvZm4+CisgICAgPC9mcmFtZT4KKyAgPC9zdGFjaz4KKyAgPHN1cHByZXNzaW9uPgorICAgIDxz
bmFtZT5pbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU8L3NuYW1lPgorICAgIDxza2luZD5N
ZW1jaGVjazpMZWFrPC9za2luZD4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9abndtPC9mdW4+IDwvc2Zy
YW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5h
Z2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05T
MV8xNVJlc291cmNlUmVxdWVzdEVQTlMxXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQ
dHJJTlMxXzlGb3JtU3RhdGVFRUVQRnZQdlM1X1NCX2JFU0NfRVVsTlMxXzEyUG9saWN5QWN0aW9u
RUVfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRhUktTSV9TdDE4X01hbmFnZXJfb3BlcmF0aW9u
PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+d2Via2l0X3dlYl9wb2xpY3lfZGVj
aXNpb25fbmV3PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pONldlYktpdDE3
RnJhbWVMb2FkZXJDbGllbnQzOWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bkVSS043V2ViQ29yZTE2TmF2aWdhdGlvbkFjdGlvbkVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVO
M1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9s
aWN5QWN0aW9uRUVFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNv
cmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TXzE1UmVzb3VyY2VS
ZXF1ZXN0RVBOU18xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3Rh
dGVFRUVQRnZQdlMzX1M5X2JFU0FfPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+
X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjJsb2FkV2l0aERvY3VtZW50TG9hZGVyRVBOU18xNERv
Y3VtZW50TG9hZGVyRU5TXzEzRnJhbWVMb2FkVHlwZUVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9y
bVN0YXRlRUVFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUx
MUZyYW1lTG9hZGVyNGxvYWRFUE5TXzE0RG9jdW1lbnRMb2FkZXJFPC9mdW4+IDwvc2ZyYW1lPgor
ICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZy
YW1lTG9hZFJlcXVlc3RFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+d2Via2l0
X3dlYl9mcmFtZV9sb2FkX3VyaTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9a
TDdydW5UZXN0UktTczwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTDIwcnVu
VGVzdGluZ1NlcnZlckxvb3B2PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+bWFp
bjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8cmF3dGV4dD4KKzwhW0NEQVRBWwore3sKKyAgIDxpbnNl
cnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+CisgICBNZW1jaGVjazpMZWFrCisgICBmdW46X1pu
d20KKyAgIGZ1bjpfWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29y
ZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VS
ZXF1ZXN0RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1T
dGF0ZUVFRVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5h
Z2VyRVJTdDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb24KKyAgIGZ1bjp3ZWJr
aXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcKKyAgIGZ1bjpfWk42V2ViS2l0MTdGcmFtZUxvYWRl
ckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJD
b3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNz
UmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25F
RUUKKyAgIGZ1bjpfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9s
aWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBh
c3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV8KKyAgIGZ1bjpfWk43V2Vi
Q29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9jdW1lbnRM
b2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVF
RUUKKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExv
YWRlckUKKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVM
b2FkUmVxdWVzdEUKKyAgIGZ1bjp3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpCisgICBmdW46X1pM
N3J1blRlc3RSS1NzCisgICBmdW46X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHYKKyAgIGZ1bjpt
YWluCit9fQorXV0+CisgICAgPC9yYXd0ZXh0PgorICA8L3N1cHByZXNzaW9uPgorPC9lcnJvcj4K
KworPGVycm9yY291bnRzPgorPC9lcnJvcmNvdW50cz4KKworPHN1cHBjb3VudHM+CisgIDxwYWly
PgorICAgIDxjb3VudD4xMDc8L2NvdW50PgorICAgIDxuYW1lPkZjQ29uZmlnQXBwRm9udEFkZEZp
bGUgKFRoaXJkIFBhcnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+
MjA5ODwvY291bnQ+CisgICAgPG5hbWU+Z3RrX2luaXRfY2hlY2sgKFRoaXJkIFBhcnR5KTwvbmFt
ZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTwvY291bnQ+CisgICAgPG5hbWU+
Z19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKFRoaXJkIHBhcnR5KTwvbmFtZT4KKyAgPC9wYWly
PgorICA8cGFpcj4KKyAgICA8Y291bnQ+Mjc8L2NvdW50PgorICAgIDxuYW1lPkZjQ29uZmlnUGFy
c2VBbmRMb2FkIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAg
PGNvdW50PjgwPC9jb3VudD4KKyAgICA8bmFtZT53ZWJraXRBY2Nlc3NpYmxlTmV3PC9uYW1lPgor
ICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4xNzc8L2NvdW50PgorICAgIDxuYW1lPmdf
dGhyZWFkX3Byb3h5IChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+Cisg
ICAgPGNvdW50Pjk8L2NvdW50PgorICAgIDxuYW1lPkZjUGF0dGVybk9iamVjdEluc2VydEVsdCAy
IChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjE8
L2NvdW50PgorICAgIDxuYW1lPmd0a193aW5kb3dfcmVhbGl6ZSAoVGhpcmQgUGFydHkpPC9uYW1l
PgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5f
X25zc19kYXRhYmFzZV9sb29rdXAgKFRoaXJkIFBhcnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8
cGFpcj4KKyAgICA8Y291bnQ+MTwvY291bnQ+CisgICAgPG5hbWU+Y2Fpcm9fc2V0X3NvdXJjZV9z
dXJmYWNlIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNv
dW50PjI8L2NvdW50PgorICAgIDxuYW1lPmxpYkdMLnNvIChUaGlyZCBwYXJ0eSk8L25hbWU+Cisg
IDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjE8L2NvdW50PgorICAgIDxuYW1lPmdfdGFz
a19ydW5faW5fdGhyZWFkIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+
CisgICAgPGNvdW50PjI8L2NvdW50PgorICAgIDxuYW1lPldURjo6VGhyZWFkSWRlbnRpZmllckRh
dGE6OmluaXRpYWxpemUoKSAoSW50ZW50aW9uYWwpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWly
PgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5ndGtfY3NzX3Byb3ZpZGVyX2xvYWRf
ZnJvbV9kYXRhIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAg
PGNvdW50PjE8L2NvdW50PgorICAgIDxuYW1lPmxpYmVuY2hhbnQuc28gbmV3IChUaGlyZCBwYXJ0
eSk8L25hbWU+CisgIDwvcGFpcj4KKzwvc3VwcGNvdW50cz4KKworPC92YWxncmluZG91dHB1dD4K
KyIiIi5mb3JtYXQocHJvY2Vzc19uYW1lPXByb2Nlc3NfbmFtZSwgcGlkPXBpZCwgdXVpZD11dWlk
KQorCisKK2RlZiBtYWtlX21vY2tfaW5jb21wbGV0ZV92YWxncmluZF9vdXRwdXQocHJvY2Vzc19u
YW1lLCBwaWQsIHV1aWQpOgorICAgIHJldHVybiAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKwor
PHZhbGdyaW5kb3V0cHV0PgorCis8cHJvdG9jb2x2ZXJzaW9uPjQ8L3Byb3RvY29sdmVyc2lvbj4K
Kzxwcm90b2NvbHRvb2w+bWVtY2hlY2s8L3Byb3RvY29sdG9vbD4KKworPHByZWFtYmxlPgorICA8
bGluZT5NZW1jaGVjaywgYSBtZW1vcnkgZXJyb3IgZGV0ZWN0b3I8L2xpbmU+CisgIDxsaW5lPkNv
cHlyaWdodCAoQykgMjAwMi0yMDExLCBhbmQgR05VIEdQTCdkLCBieSBKdWxpYW4gU2V3YXJkIGV0
IGFsLjwvbGluZT4KKyAgPGxpbmU+VXNpbmcgVmFsZ3JpbmQtMy43LjAgYW5kIExpYlZFWDsgcmVy
dW4gd2l0aCAtaCBmb3IgY29weXJpZ2h0IGluZm88L2xpbmU+CisgIDxsaW5lPkNvbW1hbmQ6IC9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMve3Byb2Nlc3NfbmFt
ZX0gLTwvbGluZT4KKzwvcHJlYW1ibGU+CisKKzxwaWQ+e3BpZH08L3BpZD4KKzxwcGlkPjE4NTc3
PC9wcGlkPgorPHRvb2w+bWVtY2hlY2s8L3Rvb2w+CisKKzxhcmdzPgorICA8dmFyZ3Y+CisgICAg
PGV4ZT4vdXNyL2Jpbi92YWxncmluZC5iaW48L2V4ZT4KKyAgICA8YXJnPi0tdG9vbD1tZW1jaGVj
azwvYXJnPgorICAgIDxhcmc+LS1udW0tY2FsbGVycz00MDwvYXJnPgorICAgIDxhcmc+LS1kZW1h
bmdsZT1ubzwvYXJnPgorICAgIDxhcmc+LS10cmFjZS1jaGlsZHJlbj1ubzwvYXJnPgorICAgIDxh
cmc+LS1zbWMtY2hlY2s9YWxsLW5vbi1maWxlPC9hcmc+CisgICAgPGFyZz4tLWxlYWstY2hlY2s9
eWVzPC9hcmc+CisgICAgPGFyZz4tLWxlYWstcmVzb2x1dGlvbj1oaWdoPC9hcmc+CisgICAgPGFy
Zz4tLXNob3ctcG9zc2libHktbG9zdD1ubzwvYXJnPgorICAgIDxhcmc+LS1zaG93LXJlYWNoYWJs
ZT1ubzwvYXJnPgorICAgIDxhcmc+LS1sZWFrLWNoZWNrPWZ1bGw8L2FyZz4KKyAgICA8YXJnPi0t
dW5kZWYtdmFsdWUtZXJyb3JzPW5vPC9hcmc+CisgICAgPGFyZz4tLWdlbi1zdXBwcmVzc2lvbnM9
YWxsPC9hcmc+CisgICAgPGFyZz4tLXhtbD15ZXM8L2FyZz4KKyAgICA8YXJnPi0teG1sLWZpbGU9
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9sYXlvdXQtdGVzdC1yZXN1bHRz
L2RydC17cGlkfS17dXVpZH0tbGVha3MueG1sPC9hcmc+CisgICAgPGFyZz4tLXN1cHByZXNzaW9u
cz0vaG9tZS91c2VyL1dlYktpdC9Ub29scy9TY3JpcHRzL3ZhbGdyaW5kL3N1cHByZXNzaW9ucy50
eHQ8L2FyZz4KKyAgICA8YXJnPi0tc3VwcHJlc3Npb25zPS91c3IvbGliL3ZhbGdyaW5kL2RlYmlh
bi1saWJjNi1kYmcuc3VwcDwvYXJnPgorICA8L3Zhcmd2PgorICA8YXJndj4KKyAgICA8ZXhlPi9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMve3Byb2Nlc3NfbmFt
ZX08L2V4ZT4KKyAgICA8YXJnPi08L2FyZz4KKyAgPC9hcmd2PgorPC9hcmdzPgorCis8c3RhdHVz
PgorICA8c3RhdGU+UlVOTklORzwvc3RhdGU+CisgIDx0aW1lPjAwOjAwOjAwOjAwLjAyNCA8L3Rp
bWU+Cis8L3N0YXR1cz4KKyIiIi5mb3JtYXQocHJvY2Vzc19uYW1lPXByb2Nlc3NfbmFtZSwgcGlk
PXBpZCwgdXVpZD11dWlkKQorCisKK2RlZiBtYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0cygpOgor
ICAgIHJldHVybiAiIiItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorU3VwcHJlc3Npb25zIHVzZWQ6CisgIGNvdW50IG5hbWUKKyAgICAgIDIgX19u
c3NfZGF0YWJhc2VfbG9va3VwIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgY2Fpcm9fc2V0X3NvdXJj
ZV9zdXJmYWNlIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgZ19xdWFya19mcm9tX3N0YXRpY19zdHJp
bmcgKFRoaXJkIHBhcnR5KQorICAgICAgMiBnX3Rhc2tfcnVuX2luX3RocmVhZCAoVGhpcmQgUGFy
dHkpCisgICAgICAyIGd0a19jc3NfcHJvdmlkZXJfbG9hZF9mcm9tX2RhdGEgKFRoaXJkIFBhcnR5
KQorICAgICAgMiBndGtfd2luZG93X3JlYWxpemUgKFRoaXJkIFBhcnR5KQorICAgICAgMiBsaWJl
bmNoYW50LnNvIG5ldyAoVGhpcmQgcGFydHkpCisgICAgICA0IFdURjo6VGhyZWFkSWRlbnRpZmll
ckRhdGE6OmluaXRpYWxpemUoKSAoSW50ZW50aW9uYWwpCisgICAgICA0IGxpYkdMLnNvIChUaGly
ZCBwYXJ0eSkKKyAgICAgMTggRmNQYXR0ZXJuT2JqZWN0SW5zZXJ0RWx0IDIgKFRoaXJkIFBhcnR5
KQorICAgICA1NCBGY0NvbmZpZ1BhcnNlQW5kTG9hZCAoVGhpcmQgUGFydHkpCisgICAgMTYwIHdl
YmtpdEFjY2Vzc2libGVOZXcKKyAgICAyMTQgRmNDb25maWdBcHBGb250QWRkRmlsZSAoVGhpcmQg
UGFydHkpCisgICAgMzU0IGdfdGhyZWFkX3Byb3h5IChUaGlyZCBQYXJ0eSkKKyAgIDQxOTYgZ3Rr
X2luaXRfY2hlY2sgKFRoaXJkIFBhcnR5KQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1ZhbGdyaW5kIGRldGVjdGVkIDIgbGVha3M6CitMZWFr
X0RlZmluaXRlbHlMb3N0Cis4IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3Qg
aW4gbG9zcyByZWNvcmQgNDIxIG9mIDcsOTcyCisgIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCBsb25n
KSAoL3Vzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX21lbWNoZWNrLWFtZDY0LWxpbnV4LnNvKQor
ICBzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9tYW5hZ2VyPFdlYkNvcmU6OlBvbGljeUNoZWNr
ZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3Qm
LCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3Jt
U3RhdGU+LCB2b2lkICgqKSh2b2lkKiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0Jiwg
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGJvb2wpLCB2b2lkKik6OntsYW1i
ZGEoV2ViQ29yZTo6UG9saWN5QWN0aW9uKSMxfT46Ol9NX21hbmFnZXIoc3RkOjpfQW55X2RhdGEm
LCBzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9tYW5hZ2VyPFdlYkNvcmU6OlBvbGljeUNoZWNr
ZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3Qm
LCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3Jt
U3RhdGU+LCB2b2lkICgqKSh2b2lkKiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0Jiwg
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGJvb2wpLCB2b2lkKik6OntsYW1i
ZGEoV2ViQ29yZTo6UG9saWN5QWN0aW9uKSMxfT4gY29uc3QmLCBzdGQ6Ol9NYW5hZ2VyX29wZXJh
dGlvbikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Vi
a2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIHdlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldyAo
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMykKKyAgV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24gY29u
c3QmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6Rm9ybVN0YXRlPiwgc3RkOjpmdW5jdGlvbjx2b2lkIChXZWJDb3JlOjpQb2xpY3lBY3Rp
b24pPikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Vi
a2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNrTmF2
aWdhdGlvblBvbGljeShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCB2b2lk
ICgqKSh2b2lkKiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGJvb2wpLCB2b2lkKikgKC9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisg
IFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSwgV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6OkZvcm1TdGF0ZT4pICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNl
Ly5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6bG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciopICgvaG9tZS91c2VyL1dlYktpdC9XZWJL
aXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6bG9hZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0IGNvbnN0Jikg
KC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3Rr
LTMuMC5zby4wLjE5LjMpCisgIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmkgKC9ob21lL3VzZXIv
V2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5
LjMpCisgIHJ1blRlc3Qoc3RkOjpiYXNpY19zdHJpbmc8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxj
aGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCYpICgvaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlKQorICBydW5UZXN0aW5n
U2VydmVyTG9vcCgpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dy
YW1zL0R1bXBSZW5kZXJUcmVlKQorICBtYWluICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlKQorU3VwcHJlc3Npb24gKGVycm9yIGhh
c2g9IzA0NDlEM0VEMjUzRkUxRjkjKToKKworeworICAgPGluc2VydF9hX3N1cHByZXNzaW9uX25h
bWVfaGVyZT4KKyAgIE1lbWNoZWNrOkxlYWsKKyAgIGZ1bjpfWm53KgorICAgZnVuOl9aTlN0MTRf
RnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFj
aGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3Vt
ZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9i
RVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJL
U0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbgorICAgZnVuOndlYmtpdF93ZWJfcG9saWN5X2RlY2lz
aW9uX25ldworICAgZnVuOl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rp
b25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3Rh
dGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJD
b3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNl
UmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0
YXRlRUVFUEZ2UHZTM19TOV9iRVNBXworICAgZnVuOl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIy
bG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9h
ZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRQorICAgZnVuOl9aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVyRQorICAgZnVuOl9aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RQorICAgZnVu
OndlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmkKKyAgIGZ1bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1
bjpfWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdgorICAgZnVuOm1haW4KK30KKworCitMZWFrX0Rl
ZmluaXRlbHlMb3N0Cis4IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4g
bG9zcyByZWNvcmQgNDIyIG9mIDcsOTcyCisgIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCBsb25nKSAo
L3Vzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX21lbWNoZWNrLWFtZDY0LWxpbnV4LnNvKQorICBz
dGQ6Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9tYW5hZ2VyPFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6
OmNoZWNrQ29udGVudFBvbGljeShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0Jiwgdm9p
ZCAoKikodm9pZCosIFdlYkNvcmU6OlBvbGljeUFjdGlvbiksIHZvaWQqKTo6e2xhbWJkYShXZWJD
b3JlOjpQb2xpY3lBY3Rpb24pIzF9Pjo6X01fbWFuYWdlcihzdGQ6Ol9BbnlfZGF0YSYsIHN0ZDo6
X0Z1bmN0aW9uX2Jhc2U6Ol9CYXNlX21hbmFnZXI8V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hl
Y2tDb250ZW50UG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmLCB2b2lkICgq
KSh2b2lkKiwgV2ViQ29yZTo6UG9saWN5QWN0aW9uKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6
OlBvbGljeUFjdGlvbikjMX0+IGNvbnN0Jiwgc3RkOjpfTWFuYWdlcl9vcGVyYXRpb24pICgvaG9t
ZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAu
c28uMC4xOS4zKQorICB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcgKC9ob21lL3VzZXIv
V2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5
LjMpCisgIFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCBjb25zdCYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2ViQ29yZTo6UG9saWN5QWN0
aW9uKT4pICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndl
YmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja0Nv
bnRlbnRQb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYsIHZvaWQgKCopKHZv
aWQqLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24pLCB2b2lkKikgKC9ob21lL3VzZXIvV2ViS2l0L1dl
YktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlKiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYpICgvaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4z
KQorICBXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0JikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxk
L1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIFdlYkNvcmU6OlN1
YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSBjb25zdCYpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJz
L2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxi
YWNrKF9HT2JqZWN0KiwgX0dBc3luY1Jlc3VsdCosIHZvaWQqKSAoL2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAg
Z190YXNrX3JldHVybl9ub3cgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVu
Y2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2lvL2d0YXNrLmM6MTEwOCkKKyAgY29tcGxldGVfaW5f
aWRsZV9jYiAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJj
ZS9nbGliLTIuMzguMC9naW8vZ3Rhc2suYzoxMTE3KQorICBnX21haW5fY29udGV4dF9kaXNwYXRj
aCAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGli
LTIuMzguMC9nbGliL2dtYWluLmM6MzA2NSkKKyAgZ19tYWluX2NvbnRleHRfaXRlcmF0ZS5pc3Jh
LjIzICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2ds
aWItMi4zOC4wL2dsaWIvZ21haW4uYzozNzEyKQorICBnX21haW5fbG9vcF9ydW4gKC9ob21lL3Vz
ZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2xp
Yi9nbWFpbi5jOjM5MDYpCisgIGd0a19tYWluICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9EZXBlbmRlbmNpZXMvU291cmNlL2d0aystMy42LjAvZ3RrL2d0a21haW4uYzoxMTYyKQorICBy
dW5UZXN0KHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0
ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZSkKKyAgcnVuVGVzdGluZ1NlcnZlckxv
b3AoKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1w
UmVuZGVyVHJlZSkKKyAgbWFpbiAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZSkKK1N1cHByZXNzaW9uIChlcnJvciBoYXNoPSM4MzEz
REVCMTZCMDY5NDM4Iyk6CisKK3sKKyAgIDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+
CisgICBNZW1jaGVjazpMZWFrCisgICBmdW46X1pudyoKKyAgIGZ1bjpfWk5TdDE0X0Z1bmN0aW9u
X2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250
ZW50UG9saWN5RVJLTlMxXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TMV8xMlBvbGljeUFjdGlv
bkVFUzZfRVVsUzdfRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NDX1N0MThfTWFuYWdl
cl9vcGVyYXRpb24KKyAgIGZ1bjp3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcKKyAgIGZ1
bjpfWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDMxZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZUVSS043V2ViQ29yZTE2UmVzb3VyY2VSZXNwb25zZUVSS05TMV8xNVJlc291cmNlUmVx
dWVzdEVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJD
b3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktOU18xNlJlc291cmNlUmVz
cG9uc2VFUEZ2UHZOU18xMlBvbGljeUFjdGlvbkVFUzRfCisgICBmdW46X1pON1dlYkNvcmUxNERv
Y3VtZW50TG9hZGVyMTZyZXNwb25zZVJlY2VpdmVkRVBOU18xNENhY2hlZFJlc291cmNlRVJLTlNf
MTZSZXNvdXJjZVJlc3BvbnNlRQorICAgZnVuOl9aTjdXZWJDb3JlMTdDYWNoZWRSYXdSZXNvdXJj
ZTE2cmVzcG9uc2VSZWNlaXZlZEVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43
V2ViQ29yZTE3U3VicmVzb3VyY2VMb2FkZXIxOGRpZFJlY2VpdmVSZXNwb25zZUVSS05TXzE2UmVz
b3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43V2ViQ29yZUwxOXNlbmRSZXF1ZXN0Q2FsbGJhY2tF
UDhfR09iamVjdFAxM19HQXN5bmNSZXN1bHRQdgorICAgZnVuOmdfdGFza19yZXR1cm5fbm93Cisg
ICBmdW46Y29tcGxldGVfaW5faWRsZV9jYgorICAgZnVuOmdfbWFpbl9jb250ZXh0X2Rpc3BhdGNo
CisgICBmdW46Z19tYWluX2NvbnRleHRfaXRlcmF0ZS5pc3JhLjIzCisgICBmdW46Z19tYWluX2xv
b3BfcnVuCisgICBmdW46Z3RrX21haW4KKyAgIGZ1bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1bjpf
WkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdgorICAgZnVuOm1haW4KK30KKworCisiIiIKKworCitj
bGFzcyBMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAg
ZGVmIHRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbChzZWxmKToKKyAgICAgICAgbW9j
a192YWxncmluZF9vdXRwdXQxID0gbWFrZV9tb2NrX3ZhbGdyaW5kX291dHB1dCgnRHVtcFJlbmRl
clRyZWUnLCAyODUyOSwgJ2RiOTJlNDg0M2JlNDExZTNiYWUxZDQzZDdlMDFiYTA4JykKKyAgICAg
ICAgbW9ja192YWxncmluZF9vdXRwdXQyID0gbWFrZV9tb2NrX3ZhbGdyaW5kX291dHB1dCgnRHVt
cFJlbmRlclRyZWUnLCAyODUzMCwgJ2RkNzIxMzQyM2JlNDExZTNhYTdmZDQzZDdlMDFiYTA4JykK
KyAgICAgICAgbW9ja19pbmNvbXBsZXRlX3ZhbGdyaW5kX291dHB1dCA9IG1ha2VfbW9ja19pbmNv
bXBsZXRlX3ZhbGdyaW5kX291dHB1dCgnRHVtcFJlbmRlclRyZWUnLCAyODUzMSwgJ2U4YzdkN2I4
M2JlNDExZTM5MGM5ZDQzZDdlMDFiYTA4JykKKyAgICAgICAgbWlzZm9ybWF0dGVkX21vY2tfdmFs
Z3JpbmRfb3V0cHV0ID0gJ0p1bmsgdGhhdCBzaG91bGQgbm90IGFwcGVhciBpbiBhIHZhbGdyaW5k
IHhtbCBmaWxlJyArIG1ha2VfbW9ja192YWxncmluZF9vdXRwdXQoJ0R1bXBSZW5kZXJUcmVlJywg
Mjg1MzIsICdmYTZkMGNkNjNiZTQxMWUzOWM3MmQ0M2Q3ZTAxYmEwOCcpWzIwMDpdCisgICAgICAg
IGZpbGVzID0ge30KKyAgICAgICAgZmlsZXNbJy9Vc2Vycy9tb2NrL0xpYnJhcnkvTG9ncy9sYXlv
dXQtdGVzdC1yZXN1bHRzL2RydC0yODUyOS1kYjkyZTQ4NDNiZTQxMWUzYmFlMWQ0M2Q3ZTAxYmEw
OC1sZWFrcy54bWwnXSA9IG1vY2tfdmFsZ3JpbmRfb3V0cHV0MQorICAgICAgICBmaWxlc1snL1Vz
ZXJzL21vY2svTGlicmFyeS9Mb2dzL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMwLWRkNzIx
MzQyM2JlNDExZTNhYTdmZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gbW9ja192YWxncmluZF9v
dXRwdXQyCisgICAgICAgICNmaWxlc1snL1VzZXJzL21vY2svTGlicmFyeS9Mb2dzL2xheW91dC10
ZXN0LXJlc3VsdHMvZHJ0LTI4NTMxLWU4YzdkN2I4M2JlNDExZTM5MGM5ZDQzZDdlMDFiYTA4LWxl
YWtzLnhtbCddID0gbW9ja19pbmNvbXBsZXRlX3ZhbGdyaW5kX291dHB1dAorICAgICAgICAjZmls
ZXNbJy9Vc2Vycy9tb2NrL0xpYnJhcnkvTG9ncy9sYXlvdXQtdGVzdC1yZXN1bHRzL2RydC0yODUz
Mi1lYmM5YTZjNjNiZTQxMWUzOTlkNGQ0M2Q3ZTAxYmEwOC1sZWFrcy54bWwnXSA9IE5vbmUKKyAg
ICAgICAgI2ZpbGVzWycvVXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3MvbGF5b3V0LXRlc3QtcmVzdWx0
cy9kcnQtMjg1MzItZmE2ZDBjZDYzYmU0MTFlMzljNzJkNDNkN2UwMWJhMDgtbGVha3MueG1sJ10g
PSBtaXNmb3JtYXR0ZWRfbW9ja192YWxncmluZF9vdXRwdXQKKyAgICAgICAgZmlsZXN5c3RlbSA9
IE1vY2tGaWxlU3lzdGVtKGZpbGVzKQorICAgICAgICBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgPSBM
ZWFrRGV0ZWN0b3JWYWxncmluZChmaWxlc3lzdGVtLCAnL1VzZXJzL21vY2svTGlicmFyeS9Mb2dz
L2xheW91dC10ZXN0LXJlc3VsdHMvJykKKworICAgICAgICBvYyA9IE91dHB1dENhcHR1cmUoKQor
ICAgICAgICAjb3V0cHV0LnNldF9sb2dfbGV2ZWwobG9nZ2luZy5JTkZPKQorICAgICAgICBvYy5j
YXB0dXJlX291dHB1dCgpCisgICAgICAgIGxlYWtkZXRlY3Rvcl92YWxncmluZC5wYXJzZV9hbmRf
cHJpbnRfbGVha3NfZGV0YWlsKGZpbGVzKQorICAgICAgICBfLCBfLCBsb2dmaWxlID0gb2MucmVz
dG9yZV9vdXRwdXQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvZ2ZpbGUsIG1ha2VfbW9j
a192YWxncmluZF9yZXN1bHRzKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218681</attachid>
            <date>2013-12-08 04:06:09 -0800</date>
            <delta_ts>2013-12-09 08:47:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119446-20131208130606.patch</filename>
            <type>text/plain</type>
            <size>53927</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMjgzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWUwNjk1Y2ZkZDMxMGExNjhlMTcxYTdkOGFlYjJiMDlm
MTgxZDIyMC4uMWMyN2FhZTI1YmI5NmFjMjc2ZTI2MzRhMWZkM2I3MjNiOTU3NjJmOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5
IEBACisyMDEzLTEwLTMwICBCcmlhbiBIb2x0ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbR1RLXSBQYXJzZSBWYWxncmluZCB4bWwgbGVhayBmaWxlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDQ2CisKKyAgICAgICAgTmVl
ZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBVUkwg
KE9PUFMhKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQYXJzZSB0aGUgeG1sIGZpbGVzIGdlbmVyYXRlZCBieSBWYWxncmluZCB0byB5aWVsZCB1c2Vm
dWwKKyAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1lbW9yeSBsZWFrcy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHk6CisgICAgICAgIChHdGtQb3J0Ll9faW5p
dF9fKToKKyAgICAgICAgKEd0a1BvcnQuc2V0dXBfdGVzdF9ydW4pOiBDbGVhciB0aGUgcHJldmlv
dXMgb3V0cHV0IGZpbGVzIGJlZm9yZSBuZXcKKyAgICAgICAgcnVuLgorICAgICAgICAoR3RrUG9y
dC5wcmludF9sZWFrc19zdW1tYXJ5KToKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucHk6IEFkZGVkLgorICAgICAgICBQYXJzZSB0aGUgeG1s
IGZpbGVzIGdlbmVyYXRlZCBieSBWYWxncmluZCBhbmQgc3VtbWFyaXNlIGxlYWtzCisgICAgICAg
IGludG8gYW4gZWFzaWx5IHVuZGVyc3RhbmRhYmxlIGxpc3QuCisgICAgICAgIChnZXRfdGV4dF9v
Zik6CisgICAgICAgIChnZXRfQ0RBVEFfb2YpOgorICAgICAgICAoZ2F0aGVyX2ZyYW1lcyk6Cisg
ICAgICAgIChWYWxncmluZEVycm9yKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3IuX19pbml0X18p
OgorICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX3N0cl9fKToKKyAgICAgICAgKFZhbGdyaW5kRXJy
b3IudW5pcXVlX3N0cmluZyk6CisgICAgICAgIChWYWxncmluZEVycm9yLmVycm9yX2hhc2gpOgor
ICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX2hhc2hfXyk6CisgICAgICAgIChWYWxncmluZEVycm9y
Ll9fZXFfXyk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZCk6CisgICAgICAgIChMZWFr
RGV0ZWN0b3JWYWxncmluZC5fX2luaXRfXyk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmlu
ZC5fcGFyc2VfbGVha3Nfb3V0cHV0KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5kLmxl
YWtzX2ZpbGVzX2luX3Jlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZh
bGdyaW5kLmNsZWFuX2xlYWtzX2ZpbGVzX2Zyb21fcmVzdWx0c19kaXJlY3RvcnkpOgorICAgICAg
ICAoTGVha0RldGVjdG9yVmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbCk6CisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5kX3Vu
aXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKG1ha2VfbW9ja192YWxncmluZF9vdXRwdXQpOgor
ICAgICAgICAobWFrZV9tb2NrX2luY29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0KToKKyAgICAgICAg
KG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzKToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdy
aW5kVGVzdCk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9h
bmRfcHJpbnRfbGVha3NfZGV0YWlsKToKKwogMjAxMy0xMi0wNyAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtDb2NvYV0gQ29udmVydCBhIGZldyBtb3JlIHBhcnRzIG9m
IE1pbmlCcm93c2VyIG92ZXIgdG8gdGhlIE9iamVjdGl2ZS1DIEFQSQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9ndGsucHkKaW5kZXggZmVmZTNiNDE3NDAyN2Y4NjY1NTdkYjQyNGRiYjFkZWMzY2MxZjE3
OS4uOTNiMGNlZWIzYjZkZTk2YzhlOGJlZmRiYjk1ZDcxMjE3MTRmZWNmZSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvZ3RrLnB5CkBAIC0zOCw2ICszOCw3IEBAIGZyb20gd2Via2l0cHkucG9ydC5w
dWxzZWF1ZGlvX3Nhbml0aXplciBpbXBvcnQgUHVsc2VBdWRpb1Nhbml0aXplcgogZnJvbSB3ZWJr
aXRweS5wb3J0Lnh2ZmJkcml2ZXIgaW1wb3J0IFh2ZmJEcml2ZXIKIGZyb20gd2Via2l0cHkucG9y
dC53ZXN0b25kcml2ZXIgaW1wb3J0IFdlc3RvbkRyaXZlcgogZnJvbSB3ZWJraXRweS5wb3J0Lmxp
bnV4X2dldF9jcmFzaF9sb2cgaW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCitmcm9tIHdlYmtp
dHB5LnBvcnQubGVha2RldGVjdG9yX3ZhbGdyaW5kIGltcG9ydCBMZWFrRGV0ZWN0b3JWYWxncmlu
ZAogCiAKIGNsYXNzIEd0a1BvcnQoUG9ydCk6CkBAIC00Niw2ICs0Nyw3IEBAIGNsYXNzIEd0a1Bv
cnQoUG9ydCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAg
ICAgIHN1cGVyKEd0a1BvcnQsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKICAgICAg
ICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIgPSBQdWxzZUF1ZGlvU2FuaXRpemVyKCkKKyAg
ICAgICAgc2VsZi5fbGVha2RldGVjdG9yID0gTGVha0RldGVjdG9yVmFsZ3JpbmQoc2VsZi5fZmls
ZXN5c3RlbSwgc2VsZi5yZXN1bHRzX2RpcmVjdG9yeSgpKQogCiAgICAgICAgIGlmIHNlbGYuZ2V0
X29wdGlvbigibGVha3MiKToKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmdldF9vcHRpb24oIndy
YXBwZXIiKToKQEAgLTgxLDYgKzgzLDkgQEAgY2xhc3MgR3RrUG9ydChQb3J0KToKICAgICAgICAg
c3VwZXIoR3RrUG9ydCwgc2VsZikuc2V0dXBfdGVzdF9ydW4oKQogICAgICAgICBzZWxmLl9wdWxz
ZWF1ZGlvX3Nhbml0aXplci51bmxvYWRfcHVsc2VhdWRpb19tb2R1bGUoKQogCisgICAgICAgIGlm
IHNlbGYuZ2V0X29wdGlvbigibGVha3MiKToKKyAgICAgICAgICAgIHNlbGYuX2xlYWtkZXRlY3Rv
ci5jbGVhbl9sZWFrc19maWxlc19mcm9tX3Jlc3VsdHNfZGlyZWN0b3J5KCkKKwogICAgIGRlZiBj
bGVhbl91cF90ZXN0X3J1bihzZWxmKToKICAgICAgICAgc3VwZXIoR3RrUG9ydCwgc2VsZikuY2xl
YW5fdXBfdGVzdF9ydW4oKQogICAgICAgICBzZWxmLl9wdWxzZWF1ZGlvX3Nhbml0aXplci5yZXN0
b3JlX3B1bHNlYXVkaW9fbW9kdWxlKCkKQEAgLTE1OSw4ICsxNjQsMTYgQEAgY2xhc3MgR3RrUG9y
dChQb3J0KToKICAgICBkZWYgX3BvcnRfc3BlY2lmaWNfZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYp
OgogICAgICAgICByZXR1cm4gW3NlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl93ZWJraXRfYmFz
ZWxpbmVfcGF0aChwKSwgJ1Rlc3RFeHBlY3RhdGlvbnMnKSBmb3IgcCBpbiByZXZlcnNlZChzZWxm
Ll9zZWFyY2hfcGF0aHMoKSldCiAKLSAgICAjIEZJWE1FOiBXZSBzaG91bGQgZmluZCBhIHdheSB0
byBzaGFyZSB0aGlzIGltcGxtZW50YXRpb24gd2l0aCBHdGssCi0gICAgIyBvciB0ZWFjaCBydW4t
bGF1bmNoZXIgaG93IHRvIGNhbGwgcnVuLXNhZmFyaSBhbmQgbW92ZSB0aGlzIGRvd24gdG8gUG9y
dC4KKyAgICBkZWYgcHJpbnRfbGVha3Nfc3VtbWFyeShzZWxmKToKKyAgICAgICAgaWYgbm90IHNl
bGYuZ2V0X29wdGlvbignbGVha3MnKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAjIEZJ
WE1FOiBUaGlzIGlzIGEgaGFjaywgYnV0IHdlIGRvbid0IGhhdmUgYSBiZXR0ZXIgd2F5IHRvIGdl
dCB0aGlzIGluZm9ybWF0aW9uIGZyb20gdGhlIHdvcmtlcnMgeWV0CisgICAgICAgICMgYmVjYXVz
ZSB3ZSdyZSBpbiB0aGUgbWFuYWdlciBwcm9jZXNzLgorICAgICAgICBsZWFrc19maWxlcyA9IHNl
bGYuX2xlYWtkZXRlY3Rvci5sZWFrc19maWxlc19pbl9yZXN1bHRzX2RpcmVjdG9yeSgpCisgICAg
ICAgIGlmIG5vdCBsZWFrc19maWxlczoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxm
Ll9sZWFrZGV0ZWN0b3IucGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbChsZWFrc19maWxlcykK
KwogICAgIGRlZiBzaG93X3Jlc3VsdHNfaHRtbF9maWxlKHNlbGYsIHJlc3VsdHNfZmlsZW5hbWUp
OgogICAgICAgICBydW5fbGF1bmNoZXJfYXJncyA9IFsiZmlsZTovLyVzIiAlIHJlc3VsdHNfZmls
ZW5hbWVdCiAgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbignd2Via2l0X3Rlc3RfcnVubmVyJyk6
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3Zh
bGdyaW5kLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxn
cmluZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZjAxZWYxMWEyNjg3NDRjYjViNDAyN2IwYzhhZGNmY2I5NWY3
YmMxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtk
ZXRlY3Rvcl92YWxncmluZC5weQpAQCAtMCwwICsxLDI5NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIGNvbGxlY3Rp
b25zIGltcG9ydCBkZWZhdWx0ZGljdAoraW1wb3J0IGhhc2hsaWIKK2ltcG9ydCBsb2dnaW5nCitp
bXBvcnQgcmUKK2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKK2Zyb20geG1sLmRvbS5taW5p
ZG9tIGltcG9ydCBwYXJzZVN0cmluZworZnJvbSB4bWwucGFyc2Vycy5leHBhdCBpbXBvcnQgRXhw
YXRFcnJvcgorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworZGVmIGdl
dF90ZXh0X29mKHRvcF9ub2RlLCBuYW1lKToKKyAgICAiIiIgUmV0dXJucyBhbGwgdGV4dCBpbiBh
bGwgRE9NIG5vZGVzIHdpdGggYSBjZXJ0YWluIHxuYW1lfCB0aGF0IGFyZSBjaGlsZHJlbiBvZiB8
dG9wX25vZGV8LiAiIiIKKworICAgIHRleHQgPSAiIgorICAgIGZvciBub2Rlc19uYW1lZCBpbiB0
b3Bfbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZShuYW1lKToKKyAgICAgICAgdGV4dCArPSAiIi5q
b2luKFtub2RlLmRhdGEgZm9yIG5vZGUgaW4gbm9kZXNfbmFtZWQuY2hpbGROb2RlcworICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIG5vZGUubm9kZVR5cGUgPT0gbm9kZS5URVhUX05PREVdKQor
ICAgIHJldHVybiB0ZXh0CisKKworZGVmIGdldF9DREFUQV9vZih0b3Bfbm9kZSwgbmFtZSk6Cisg
ICAgIiIiIFJldHVybnMgYWxsIENEQVRBIGluIGFsbCBET00gbm9kZXMgd2l0aCBhIGNlcnRhaW4g
fG5hbWV8IHRoYXQgYXJlIGNoaWxkcmVuIG9mIHx0b3Bfbm9kZXwuICIiIgorCisgICAgdGV4dCA9
ICIiCisgICAgZm9yIG5vZGVzX25hbWVkIGluIHRvcF9ub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1l
KG5hbWUpOgorICAgICAgICB0ZXh0ICs9ICIiLmpvaW4oW25vZGUuZGF0YSBmb3Igbm9kZSBpbiBu
b2Rlc19uYW1lZC5jaGlsZE5vZGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm9kZS5u
b2RlVHlwZSA9PSBub2RlLkNEQVRBX1NFQ1RJT05fTk9ERV0pCisgICAgaWYgKHRleHQgPT0gIiIp
OgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiB0ZXh0CisKKyMgQ29uc3RhbnRzIHRo
YXQgZ2l2ZSByZWFsIG5hbWVzIHRvIHRoZSBhYmJyZXZpYXRpb25zIGluIHZhbGdyaW5kIFhNTCBv
dXRwdXQuCitJTlNUUlVDVElPTl9QT0lOVEVSID0gImlwIgorT0JKRUNUX0ZJTEUgPSAib2JqIgor
RlVOQ1RJT05fTkFNRSA9ICJmbiIKK1NSQ19GSUxFX0RJUiA9ICJkaXIiCitTUkNfRklMRV9OQU1F
ID0gImZpbGUiCitTUkNfTElORSA9ICJsaW5lIgorCisKK2RlZiBnYXRoZXJfZnJhbWVzKG5vZGUs
IHNvdXJjZV9kaXIpOgorICAgIGZyYW1lcyA9IFtdCisgICAgZm9yIGZyYW1lIGluIG5vZGUuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImZyYW1lIik6CisgICAgICAgIGZyYW1lX2RpY3QgPSB7CisgICAg
ICAgICAgICBJTlNUUlVDVElPTl9QT0lOVEVSOiBnZXRfdGV4dF9vZihmcmFtZSwgSU5TVFJVQ1RJ
T05fUE9JTlRFUiksCisgICAgICAgICAgICBPQkpFQ1RfRklMRTogZ2V0X3RleHRfb2YoZnJhbWUs
IE9CSkVDVF9GSUxFKSwKKyAgICAgICAgICAgIEZVTkNUSU9OX05BTUU6IGdldF90ZXh0X29mKGZy
YW1lLCBGVU5DVElPTl9OQU1FKSwKKyAgICAgICAgICAgIFNSQ19GSUxFX0RJUjogZ2V0X3RleHRf
b2YoZnJhbWUsIFNSQ19GSUxFX0RJUiksCisgICAgICAgICAgICBTUkNfRklMRV9OQU1FOiBnZXRf
dGV4dF9vZihmcmFtZSwgU1JDX0ZJTEVfTkFNRSksCisgICAgICAgICAgICBTUkNfTElORTogZ2V0
X3RleHRfb2YoZnJhbWUsIFNSQ19MSU5FKX0KKworICAgICAgICBmcmFtZXMgKz0gW2ZyYW1lX2Rp
Y3RdCisgICAgcmV0dXJuIGZyYW1lcworCisKK2NsYXNzIFZhbGdyaW5kRXJyb3I6CisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgc291cmNlX2RpciwgZXJyb3Jfbm9kZSk6CisgICAgICAgIHNlbGYu
X2tpbmQgPSBnZXRfdGV4dF9vZihlcnJvcl9ub2RlLCAia2luZCIpCisgICAgICAgIHNlbGYuX2Jh
Y2t0cmFjZXMgPSBbXQorICAgICAgICBzZWxmLl9zdXBwcmVzc2lvbiA9IE5vbmUKKyAgICAgICAg
c2VsZi5fYWRkaXRpb25hbCA9IFtdCisKKyAgICAgICAgIyBJdGVyYXRlIHRocm91Z2ggdGhlIG5v
ZGVzLCBwYXJzaW5nIDx3aGF0fGF1eHdoYXQ+PHN0YWNrPiBwYWlycy4KKyAgICAgICAgZGVzY3Jp
cHRpb24gPSBOb25lCisgICAgICAgIGZvciBub2RlIGluIGVycm9yX25vZGUuY2hpbGROb2RlczoK
KyAgICAgICAgICAgIGlmIG5vZGUubG9jYWxOYW1lID09ICJ3aGF0IiBvciBub2RlLmxvY2FsTmFt
ZSA9PSAiYXV4d2hhdCI6CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiIi5qb2luKFtu
LmRhdGEgZm9yIG4gaW4gbm9kZS5jaGlsZE5vZGVzCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiBuLm5vZGVUeXBlID09IG4uVEVYVF9OT0RFXSkKKyAgICAgICAgICAg
IGVsaWYgbm9kZS5sb2NhbE5hbWUgPT0gInh3aGF0IjoKKyAgICAgICAgICAgICAgICBkZXNjcmlw
dGlvbiA9IGdldF90ZXh0X29mKG5vZGUsICJ0ZXh0IikKKyAgICAgICAgICAgIGVsaWYgbm9kZS5s
b2NhbE5hbWUgPT0gInN0YWNrIjoKKyAgICAgICAgICAgICAgICBhc3NlcnQgZGVzY3JpcHRpb24K
KyAgICAgICAgICAgICAgICBzZWxmLl9iYWNrdHJhY2VzLmFwcGVuZChbZGVzY3JpcHRpb24sIGdh
dGhlcl9mcmFtZXMobm9kZSwgc291cmNlX2RpcildKQorICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uID0gTm9uZQorICAgICAgICAgICAgZWxpZiBub2RlLmxvY2FsTmFtZSA9PSAib3JpZ2luIjoK
KyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGdldF90ZXh0X29mKG5vZGUsICJ3aGF0IikK
KyAgICAgICAgICAgICAgICBzdGFjayA9IG5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0YWNr
IilbMF0KKyAgICAgICAgICAgICAgICBmcmFtZXMgPSBnYXRoZXJfZnJhbWVzKHN0YWNrLCBzb3Vy
Y2VfZGlyKQorICAgICAgICAgICAgICAgIHNlbGYuX2JhY2t0cmFjZXMuYXBwZW5kKFtkZXNjcmlw
dGlvbiwgZnJhbWVzXSkKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IE5vbmUKKyAgICAg
ICAgICAgICAgICBzdGFjayA9IE5vbmUKKyAgICAgICAgICAgICAgICBmcmFtZXMgPSBOb25lCisg
ICAgICAgICAgICBlbGlmIGRlc2NyaXB0aW9uIGFuZCBub2RlLmxvY2FsTmFtZSAhPSBOb25lOgor
ICAgICAgICAgICAgICAgICMgVGhlIGxhc3Rlc3QgZGVzY3JpcHRpb24gaGFzIG5vIHN0YWNrLCBl
LmcuICJBZGRyZXNzIDB4MjggaXMgdW5rbm93biIuCisgICAgICAgICAgICAgICAgc2VsZi5fYWRk
aXRpb25hbC5hcHBlbmQoZGVzY3JpcHRpb24pCisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24g
PSBOb25lCisKKyAgICAgICAgICAgIGlmIG5vZGUubG9jYWxOYW1lID09ICJzdXBwcmVzc2lvbiI6
CisgICAgICAgICAgICAgICAgc2VsZi5fc3VwcHJlc3Npb24gPSBnZXRfQ0RBVEFfb2Yobm9kZSwg
InJhd3RleHQiKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIG91dHB1dCA9ICIi
CisKKyAgICAgICAgb3V0cHV0ICs9IHNlbGYuX2tpbmQgKyAiXG4iCisgICAgICAgIGZvciBiYWNr
dHJhY2UgaW4gc2VsZi5fYmFja3RyYWNlczoKKyAgICAgICAgICAgIG91dHB1dCArPSBiYWNrdHJh
Y2VbMF0gKyAiXG4iCisgICAgICAgICAgICBmaWx0ZXIgPSBzdWJwcm9jZXNzLlBvcGVuKCJjKytm
aWx0IC1uIiwgc3RkaW49c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWxsPVRydWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9mZHM9VHJ1ZSkKKyAgICAgICAgICAgIGJ1ZiA9
ICIiCisgICAgICAgICAgICBmb3IgZnJhbWUgaW4gYmFja3RyYWNlWzFdOgorICAgICAgICAgICAg
ICAgIGJ1ZiArPSAoZnJhbWVbRlVOQ1RJT05fTkFNRV0gb3IgZnJhbWVbSU5TVFJVQ1RJT05fUE9J
TlRFUl0pICsgIlxuIgorICAgICAgICAgICAgKHN0ZG91dGJ1Ziwgc3RkZXJyYnVmKSA9IGZpbHRl
ci5jb21tdW5pY2F0ZShidWYuZW5jb2RlKCdsYXRpbi0xJykpCisgICAgICAgICAgICBkZW1hbmds
ZWRfbmFtZXMgPSBzdGRvdXRidWYuc3BsaXQoIlxuIikKKworICAgICAgICAgICAgaSA9IDAKKyAg
ICAgICAgICAgIGZvciBmcmFtZSBpbiBiYWNrdHJhY2VbMV06CisgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICgiICAiICsgZGVtYW5nbGVkX25hbWVzW2ldKQorICAgICAgICAgICAgICAgIGkgPSBp
ICsgMQorCisgICAgICAgICAgICAgICAgaWYgZnJhbWVbU1JDX0ZJTEVfRElSXSAhPSAiIjoKKyAg
ICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICgiICgiICsgZnJhbWVbU1JDX0ZJTEVfRElSXSAr
ICIvIiArIGZyYW1lW1NSQ19GSUxFX05BTUVdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiOiIgKyBmcmFtZVtTUkNfTElORV0gKyAiKSIpCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICIgKCIgKyBmcmFtZVtPQkpFQ1RfRklMRV0g
KyAiKSIKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIlxuIgorCisgICAgICAgIGZvciBhZGRp
dGlvbmFsIGluIHNlbGYuX2FkZGl0aW9uYWw6CisgICAgICAgICAgICBvdXRwdXQgKz0gYWRkaXRp
b25hbCArICJcbiIKKworICAgICAgICBhc3NlcnQgc2VsZi5fc3VwcHJlc3Npb24gIT0gTm9uZSwg
IllvdXIgVmFsZ3JpbmQgZG9lc24ndCBnZW5lcmF0ZSAiIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3VwcHJlc3Npb25zIC0gaXMgaXQgdG9vIG9sZD8iCisK
KyAgICAgICAgb3V0cHV0ICs9ICJTdXBwcmVzc2lvbiAoZXJyb3IgaGFzaD0jJTAxNlgjKTpcbiIg
JSBzZWxmLmVycm9yX2hhc2goKQorCisgICAgICAgICMgV2lkZW4gdGhlIHN1cHByZXNzaW9ucyBz
bGlnaHRseS4KKyAgICAgICAgc3VwcCA9IHNlbGYuX3N1cHByZXNzaW9uCisgICAgICAgIHN1cHAg
PSBzdXBwLnJlcGxhY2UoImZ1bjpfWm53aiIsICJmdW46X1pudyoiKQorICAgICAgICBzdXBwID0g
c3VwcC5yZXBsYWNlKCJmdW46X1pud20iLCAiZnVuOl9abncqIikKKyAgICAgICAgc3VwcCA9IHN1
cHAucmVwbGFjZSgiZnVuOl9abmFqIiwgImZ1bjpfWm5hKiIpCisgICAgICAgIHN1cHAgPSBzdXBw
LnJlcGxhY2UoImZ1bjpfWm5hbSIsICJmdW46X1puYSoiKQorCisgICAgICAgICMgU3BsaXQgaW50
byBsaW5lcyBzbyB3ZSBjYW4gZW5mb3JjZSBsZW5ndGggbGltaXRzLgorICAgICAgICBzdXBwbGlu
ZXMgPSBzdXBwLnNwbGl0KCJcbiIpCisgICAgICAgIHN1cHAgPSBOb25lICAjIHRvIGF2b2lkIHJl
LXVzZQorCisgICAgICAgICMgVHJ1bmNhdGUgYXQgbGluZSAyNiAoVkdfTUFYX1NVUFBfQ0FMTEVS
UyBwbHVzIDIgZm9yIG5hbWUgYW5kIHR5cGUpCisgICAgICAgICMgKGh0dHBzOi8vYnVncy5rZGUu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk0NjggcHJvcG9zZXMgcmFpc2luZworICAgICAgICAjIFZH
X01BWF9TVVBQX0NBTExFUlMsIGJ1dCB3ZSdyZSBwcm9iYWJseSBmaW5lIHdpdGggaXQgYXMgaXMu
KQorICAgICAgICBuZXdsZW4gPSBtaW4oMjYsIGxlbihzdXBwbGluZXMpKQorCisgICAgICAgIGlm
IChsZW4oc3VwcGxpbmVzKSA+IG5ld2xlbik6CisgICAgICAgICAgICBzdXBwbGluZXMgPSBzdXBw
bGluZXNbMDpuZXdsZW5dCisgICAgICAgICAgICBzdXBwbGluZXMuYXBwZW5kKCJ9IikKKworICAg
ICAgICBmb3IgZnJhbWUgaW4gcmFuZ2UobGVuKHN1cHBsaW5lcykpOgorICAgICAgICAgICAgIyBS
ZXBsYWNlIHRoZSBhbHdheXMtY2hhbmdpbmcgYW5vbnltb3VzIG5hbWVzcGFjZSBwcmVmaXggd2l0
aCAiKiIuCisgICAgICAgICAgICBtID0gcmUubWF0Y2goIiggK2Z1bjopX1pOLipfR0xPQkFMX19O
Xy4qXC5jY18iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAiWzAtOWEtZkEtRl17OH1fWzAt
OWEtZkEtRl17OH0oLiopIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwbGluZXNbZnJh
bWVdKQorICAgICAgICAgICAgaWYgbToKKyAgICAgICAgICAgICAgICBzdXBwbGluZXNbZnJhbWVd
ID0gIioiLmpvaW4obS5ncm91cHMoKSkKKworICAgICAgICBvdXRwdXQgKz0gIlxuIi5qb2luKHN1
cHBsaW5lcykgKyAiXG4iCisKKyAgICAgICAgcmV0dXJuIG91dHB1dAorCisgICAgZGVmIHVuaXF1
ZV9zdHJpbmcoc2VsZik6CisgICAgICAgIHJlcCA9IHNlbGYuX2tpbmQgKyAiICIKKyAgICAgICAg
Zm9yIGJhY2t0cmFjZSBpbiBzZWxmLl9iYWNrdHJhY2VzOgorICAgICAgICAgICAgZm9yIGZyYW1l
IGluIGJhY2t0cmFjZVsxXToKKyAgICAgICAgICAgICAgICByZXAgKz0gZnJhbWVbRlVOQ1RJT05f
TkFNRV0KKworICAgICAgICAgICAgICAgIGlmIGZyYW1lW1NSQ19GSUxFX0RJUl0gIT0gIiI6Cisg
ICAgICAgICAgICAgICAgICAgIHJlcCArPSBmcmFtZVtTUkNfRklMRV9ESVJdICsgIi8iICsgZnJh
bWVbU1JDX0ZJTEVfTkFNRV0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICByZXAgKz0gZnJhbWVbT0JKRUNUX0ZJTEVdCisgICAgICAgIHJldHVybiByZXAKKworICAg
IGRlZiBlcnJvcl9oYXNoKHNlbGYpOgorICAgICAgICAjIFRoaXMgaXMgYSBkZXZpY2UtaW5kZXBl
bmRlbnQgaGFzaCBpZGVudGlmeWluZyB0aGUgc3VwcHJlc3Npb24uCisgICAgICAgICMgQnkgcHJp
bnRpbmcgb3V0IHRoaXMgaGFzaCB3ZSBjYW4gZmluZCBkdXBsaWNhdGUgcmVwb3J0cyBiZXR3ZWVu
IHRlc3RzIGFuZAorICAgICAgICAjIGRpZmZlcmVudCBzaGFyZHMgcnVubmluZyBvbiBtdWx0aXBs
ZSBidWlsZGJvdHMKKyAgICAgICAgcmV0dXJuIGludChoYXNobGliLm1kNShzZWxmLnVuaXF1ZV9z
dHJpbmcoKSkuaGV4ZGlnZXN0KClbOjE2XSwgMTYpCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6
CisgICAgICAgIHJldHVybiBoYXNoKHNlbGYudW5pcXVlX3N0cmluZygpKQorCisgICAgZGVmIF9f
ZXFfXyhzZWxmLCByaHMpOgorICAgICAgICByZXR1cm4gc2VsZi51bmlxdWVfc3RyaW5nKCkgPT0g
cmhzCisKKworY2xhc3MgTGVha0RldGVjdG9yVmFsZ3JpbmQob2JqZWN0KToKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBmaWxlc3lzdGVtLCBzb3VyY2VfZGlyKToKKyAgICAgICAgc2VsZi5fZmls
ZXN5c3RlbSA9IGZpbGVzeXN0ZW0KKyAgICAgICAgc2VsZi5fc291cmNlX2RpciA9IHNvdXJjZV9k
aXIKKworICAgICAgICAjIENvbnRhaW5zIHRoZSBzZXQgb2YgdW5pcXVlIGVycm9ycy4KKyAgICAg
ICAgc2VsZi5fZXJyb3JzID0gc2V0KCkKKyAgICAgICAgIyBDb250YWlucyBhbGwgc3VwcHJlc3Np
b25zIHVzZWQuCisgICAgICAgIHNlbGYuX3N1cHByZXNzaW9ucyA9IGRlZmF1bHRkaWN0KGludCkK
KworICAgIGRlZiBfcGFyc2VfbGVha3Nfb3V0cHV0KHNlbGYsIGxlYWtzX291dHB1dCk6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHBhcnNlZF9zdHJpbmcgPSBwYXJzZVN0cmluZyhsZWFrc19v
dXRwdXQpCisgICAgICAgIGV4Y2VwdCBFeHBhdEVycm9yLCBlOgorICAgICAgICAgICAgcGFyc2Vf
ZmFpbGVkID0gVHJ1ZQorICAgICAgICAgICAgX2xvZy5lcnJvcigiY291bGQgbm90IHBhcnNlICVz
OiAlcyIgJSAobGVha3Nfb3V0cHV0LCBlKSkKKyAgICAgICAgICAgIHJhaXNlIGUKKworICAgICAg
ICBjdXJfcmVwb3J0X2Vycm9ycyA9IHNldCgpCisKKyAgICAgICAgY29tbWFuZGxpbmUgPSBOb25l
CisgICAgICAgIHByZWFtYmxlID0gcGFyc2VkX3N0cmluZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
cHJlYW1ibGUiKVswXQorICAgICAgICBmb3Igbm9kZSBpbiBwcmVhbWJsZS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgibGluZSIpOgorICAgICAgICAgICAgaWYgbm9kZS5sb2NhbE5hbWUgPT0gImxpbmUi
OgorICAgICAgICAgICAgICAgIGZvciB4IGluIG5vZGUuY2hpbGROb2RlczoKKyAgICAgICAgICAg
ICAgICAgICAgaWYgeC5ub2RlVHlwZSA9PSBub2RlLlRFWFRfTk9ERSBhbmQgIkNvbW1hbmQiIGlu
IHguZGF0YToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRsaW5lID0geC5kYXRhCisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIHJhd19lcnJvcnMgPSBwYXJz
ZWRfc3RyaW5nLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJlcnJvciIpCisgICAgICAgIGZvciByYXdf
ZXJyb3IgaW4gcmF3X2Vycm9yczoKKyAgICAgICAgICAgICMgSWdub3JlICJwb3NzaWJsZSIgbGVh
a3MgYW5kIEludmFsaWRSZWFkL1dyaXRlIGJ5IGRlZmF1bHQuCisgICAgICAgICAgICBpZiAoZ2V0
X3RleHRfb2YocmF3X2Vycm9yLCAia2luZCIpICE9ICJMZWFrX1Bvc3NpYmx5TG9zdCIpIGFuZCBc
CisgICAgICAgICAgICAgICAgKGdldF90ZXh0X29mKHJhd19lcnJvciwgImtpbmQiKSAhPSAiTGVh
a19TdGlsbFJlYWNoYWJsZSIpIGFuZCBcCisgICAgICAgICAgICAgICAgKGdldF90ZXh0X29mKHJh
d19lcnJvciwgImtpbmQiKSAhPSAiSW52YWxpZFdyaXRlIikgYW5kIFwKKyAgICAgICAgICAgICAg
ICAoZ2V0X3RleHRfb2YocmF3X2Vycm9yLCAia2luZCIpICE9ICJJbnZhbGlkUmVhZCIpOgorICAg
ICAgICAgICAgICAgIGVycm9yID0gVmFsZ3JpbmRFcnJvcihzZWxmLl9zb3VyY2VfZGlyLCByYXdf
ZXJyb3IpCisgICAgICAgICAgICAgICAgaWYgZXJyb3Igbm90IGluIGN1cl9yZXBvcnRfZXJyb3Jz
OgorICAgICAgICAgICAgICAgICAgICAjIFdlIGhhdmVuJ3Qgc2VlbiBzdWNoIGVycm9ycyBkb2lu
ZyB0aGlzIHJlcG9ydCB5ZXQuLi4KKyAgICAgICAgICAgICAgICAgICAgaWYgZXJyb3IgaW4gc2Vs
Zi5fZXJyb3JzOgorICAgICAgICAgICAgICAgICAgICAgICAgIyAuLi4gYnV0IHdlIHNhdyBpdCBp
biBlYXJsaWVyIHJlcG9ydHMsIGUuZy4gcHJldmlvdXMgVUkgdGVzdAorICAgICAgICAgICAgICAg
ICAgICAgICAgY3VyX3JlcG9ydF9lcnJvcnMuYWRkKCJUaGlzIGVycm9yIHdhcyBhbHJlYWR5IHBy
aW50ZWQgaW4gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzb21lIG90aGVyIHRlc3QsIHNlZSAnaGFzaD0jJTAxNlgjJyIgJSBcCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXJyb3IuZXJyb3JfaGFzaCgpKQorICAgICAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgIyAuLi4gYW5kIHdlIGhhdmVuJ3Qgc2VlbiBp
dCBpbiBvdGhlciB0ZXN0cyBhcyB3ZWxsCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9l
cnJvcnMuYWRkKGVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgY3VyX3JlcG9ydF9lcnJv
cnMuYWRkKGVycm9yKQorCisgICAgICAgIHN1cHBjb3VudGxpc3QgPSBwYXJzZWRfc3RyaW5nLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJzdXBwY291bnRzIikKKyAgICAgICAgaWYgbGVuKHN1cHBjb3Vu
dGxpc3QpID4gMDoKKyAgICAgICAgICAgIHN1cHBjb3VudGxpc3QgPSBzdXBwY291bnRsaXN0WzBd
CisgICAgICAgICAgICBmb3Igbm9kZSBpbiBzdXBwY291bnRsaXN0LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJwYWlyIik6CisgICAgICAgICAgICAgICAgY291bnQgPSBnZXRfdGV4dF9vZihub2RlLCAi
Y291bnQiKQorICAgICAgICAgICAgICAgIG5hbWUgPSBnZXRfdGV4dF9vZihub2RlLCAibmFtZSIp
CisgICAgICAgICAgICAgICAgc2VsZi5fc3VwcHJlc3Npb25zW25hbWVdICs9IGludChjb3VudCkK
KworICAgICAgICByZXR1cm4gY3VyX3JlcG9ydF9lcnJvcnMKKworICAgIGRlZiBsZWFrc19maWxl
c19pbl9yZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVz
eXN0ZW0uZ2xvYihzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fc291cmNlX2RpciwgImRydC0q
LWxlYWtzLnhtbCIpKQorCisgICAgZGVmIGNsZWFuX2xlYWtzX2ZpbGVzX2Zyb21fcmVzdWx0c19k
aXJlY3Rvcnkoc2VsZik6CisgICAgICAgICMgUmVtb3ZlIG9sZCBWYWxncmluZCB4bWwgZmlsZXMg
YmVmb3JlIHN0YXJ0aW5nIHRoaXMgcnVuLgorICAgICAgICBsZWFrc19maWxlcyA9IHNlbGYubGVh
a3NfZmlsZXNfaW5fcmVzdWx0c19kaXJlY3RvcnkoKQorICAgICAgICBmb3IgZiBpbiBsZWFrc19m
aWxlczoKKyAgICAgICAgICAgIG9zLnJlbW92ZShmKQorCisgICAgZGVmIHBhcnNlX2FuZF9wcmlu
dF9sZWFrc19kZXRhaWwoc2VsZiwgbGVha3NfZmlsZXMpOgorICAgICAgICBmb3IgZiBpbiBsZWFr
c19maWxlczoKKyAgICAgICAgICAgIGxlYWtzX291dHB1dCA9IHNlbGYuX2ZpbGVzeXN0ZW0ucmVh
ZF9iaW5hcnlfZmlsZShmKQorICAgICAgICAgICAgZGV0ZWN0ZWRfbGVha3MgPSBzZWxmLl9wYXJz
ZV9sZWFrc19vdXRwdXQobGVha3Nfb3V0cHV0KQorCisgICAgICAgIF9sb2cuaW5mbygiLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKQorICAgICAg
ICBfbG9nLmluZm8oIlN1cHByZXNzaW9ucyB1c2VkOiIpCisgICAgICAgIF9sb2cuaW5mbygiICBj
b3VudCBuYW1lIikKKyAgICAgICAgZm9yIChuYW1lLCBjb3VudCkgaW4gc29ydGVkKHNlbGYuX3N1
cHByZXNzaW9ucy5pdGVtcygpLCBrZXk9bGFtYmRhIChrLCB2KTogKHYsIGspKToKKyAgICAgICAg
ICAgIF9sb2cuaW5mbygiJTdkICVzIiAlIChjb3VudCwgbmFtZSkpCisgICAgICAgIF9sb2cuaW5m
bygiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0i
KQorCisgICAgICAgIGlmIHNlbGYuX2Vycm9yczoKKyAgICAgICAgICAgIF9sb2cuaW5mbygiVmFs
Z3JpbmQgZGV0ZWN0ZWQgJXMgbGVha3M6IiAlIGxlbihzZWxmLl9lcnJvcnMpKQorICAgICAgICAg
ICAgZm9yIGxlYWsgaW4gc2VsZi5fZXJyb3JzOgorICAgICAgICAgICAgICAgIF9sb2cuaW5mbyhs
ZWFrKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rv
cl92YWxncmluZF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFr
ZGV0ZWN0b3JfdmFsZ3JpbmRfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZhNmUyMTRiMmU4NzVl
ZDcwYjg0Y2IzNzdhZTk5NTE1MjBiNzM5ZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmRfdW5pdHRlc3QucHkKQEAgLTAs
MCArMSw3MjQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1l
dDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyMgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0
ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0
IE1vY2tGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVy
ZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRweS5wb3J0LmxlYWtkZXRlY3Rvcl92
YWxncmluZCBpbXBvcnQgTGVha0RldGVjdG9yVmFsZ3JpbmQKKworCitkZWYgbWFrZV9tb2NrX3Zh
bGdyaW5kX291dHB1dChwcm9jZXNzX25hbWUsIHBpZCwgdXVpZCk6CisgICAgcmV0dXJuICIiIjw/
eG1sIHZlcnNpb249IjEuMCI/PgorCis8dmFsZ3JpbmRvdXRwdXQ+CisKKzxwcm90b2NvbHZlcnNp
b24+NDwvcHJvdG9jb2x2ZXJzaW9uPgorPHByb3RvY29sdG9vbD5tZW1jaGVjazwvcHJvdG9jb2x0
b29sPgorCis8cHJlYW1ibGU+CisgIDxsaW5lPk1lbWNoZWNrLCBhIG1lbW9yeSBlcnJvciBkZXRl
Y3RvcjwvbGluZT4KKyAgPGxpbmU+Q29weXJpZ2h0IChDKSAyMDAyLTIwMTEsIGFuZCBHTlUgR1BM
J2QsIGJ5IEp1bGlhbiBTZXdhcmQgZXQgYWwuPC9saW5lPgorICA8bGluZT5Vc2luZyBWYWxncmlu
ZC0zLjcuMCBhbmQgTGliVkVYOyByZXJ1biB3aXRoIC1oIGZvciBjb3B5cmlnaHQgaW5mbzwvbGlu
ZT4KKyAgPGxpbmU+Q29tbWFuZDogL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS9Qcm9ncmFtcy97cHJvY2Vzc19uYW1lfSAtPC9saW5lPgorPC9wcmVhbWJsZT4KKworPHBpZD57
cGlkfTwvcGlkPgorPHBwaWQ+MTg1Nzc8L3BwaWQ+Cis8dG9vbD5tZW1jaGVjazwvdG9vbD4KKwor
PGFyZ3M+CisgIDx2YXJndj4KKyAgICA8ZXhlPi91c3IvYmluL3ZhbGdyaW5kLmJpbjwvZXhlPgor
ICAgIDxhcmc+LS10b29sPW1lbWNoZWNrPC9hcmc+CisgICAgPGFyZz4tLW51bS1jYWxsZXJzPTQw
PC9hcmc+CisgICAgPGFyZz4tLWRlbWFuZ2xlPW5vPC9hcmc+CisgICAgPGFyZz4tLXRyYWNlLWNo
aWxkcmVuPW5vPC9hcmc+CisgICAgPGFyZz4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L2FyZz4K
KyAgICA8YXJnPi0tbGVhay1jaGVjaz15ZXM8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1yZXNvbHV0
aW9uPWhpZ2g8L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1wb3NzaWJseS1sb3N0PW5vPC9hcmc+Cisg
ICAgPGFyZz4tLXNob3ctcmVhY2hhYmxlPW5vPC9hcmc+CisgICAgPGFyZz4tLWxlYWstY2hlY2s9
ZnVsbDwvYXJnPgorICAgIDxhcmc+LS11bmRlZi12YWx1ZS1lcnJvcnM9bm88L2FyZz4KKyAgICA8
YXJnPi0tZ2VuLXN1cHByZXNzaW9ucz1hbGw8L2FyZz4KKyAgICA8YXJnPi0teG1sPXllczwvYXJn
PgorICAgIDxhcmc+LS14bWwtZmlsZT0vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxl
YXNlL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LXtwaWR9LXt1dWlkfS1sZWFrcy54bWw8L2FyZz4K
KyAgICA8YXJnPi0tc3VwcHJlc3Npb25zPS9ob21lL3VzZXIvV2ViS2l0L1Rvb2xzL1NjcmlwdHMv
dmFsZ3JpbmQvc3VwcHJlc3Npb25zLnR4dDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9
L3Vzci9saWIvdmFsZ3JpbmQvZGViaWFuLWxpYmM2LWRiZy5zdXBwPC9hcmc+CisgIDwvdmFyZ3Y+
CisgIDxhcmd2PgorICAgIDxleGU+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS9Qcm9ncmFtcy97cHJvY2Vzc19uYW1lfTwvZXhlPgorICAgIDxhcmc+LTwvYXJnPgorICA8L2Fy
Z3Y+Cis8L2FyZ3M+CisKKzxzdGF0dXM+CisgIDxzdGF0ZT5SVU5OSU5HPC9zdGF0ZT4KKyAgPHRp
bWU+MDA6MDA6MDA6MDAuMDI0IDwvdGltZT4KKzwvc3RhdHVzPgorCisKKzxzdGF0dXM+CisgIDxz
dGF0ZT5GSU5JU0hFRDwvc3RhdGU+CisgIDx0aW1lPjAwOjAwOjAwOjU0LjE4NiA8L3RpbWU+Cis8
L3N0YXR1cz4KKworPGVycm9yPgorICA8dW5pcXVlPjB4MWE0PC91bmlxdWU+CisgIDx0aWQ+MTwv
dGlkPgorICA8a2luZD5MZWFrX0RlZmluaXRlbHlMb3N0PC9raW5kPgorICA8eHdoYXQ+CisgICAg
PHRleHQ+OCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVj
b3JkIDQyMSBvZiA3LDk3MjwvdGV4dD4KKyAgICA8bGVha2VkYnl0ZXM+ODwvbGVha2VkYnl0ZXM+
CisgICAgPGxlYWtlZGJsb2Nrcz4xPC9sZWFrZWRibG9ja3M+CisgIDwveHdoYXQ+CisgIDxzdGFj
az4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0QzJBRjhFPC9pcD4KKyAgICAgIDxvYmo+L3Vz
ci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX21lbWNoZWNrLWFtZDY0LWxpbnV4LnNvPC9vYmo+Cisg
ICAgICA8Zm4+X1pud208L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlw
PjB4NjgzOURFQzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxk
L1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxm
bj5fWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5
Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBO
UzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBG
dlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlf
QW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb248L2ZuPgorICAgIDwvZnJhbWU+Cisg
ICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFFN0IwMzwvaXA+CisgICAgICA8b2JqPi9ob21lL3Vz
ZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4w
LjE5LjM8L29iaj4KKyAgICAgIDxmbj53ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXc8L2Zu
PgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFDQkE2RDwvaXA+Cisg
ICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGli
d2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk42V2ViS2l0MTdGcmFt
ZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJL
TjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RG
MTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lB
Y3Rpb25FRUU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4Njgz
REY1MjwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVh
c2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43
V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNv
dXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZv
cm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV88L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1l
PgorICAgICAgPGlwPjB4NjgxN0VGQzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29i
aj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRM
b2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzlGb3JtU3RhdGVFRUU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgor
ICAgICAgPGlwPjB4NjgxODcyOTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dl
YktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4K
KyAgICAgIDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExv
YWRlckU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgxOEEz
QTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2Uv
LmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2Vi
Q29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEU8L2ZuPgorICAg
IDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFFMzE0ODwvaXA+CisgICAgICA8
b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0
Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj53ZWJraXRfd2ViX2ZyYW1lX2xvYWRf
dXJpPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQ0Q0JDOTwv
aXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJv
Z3JhbXMvRHVtcFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5fWkw3cnVuVGVzdFJLU3M8L2Zu
PgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDRDRUQ2PC9pcD4KKyAg
ICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9E
dW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2
PC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQzQTJEMzwvaXA+
CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3Jh
bXMvRHVtcFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5tYWluPC9mbj4KKyAgICA8L2ZyYW1l
PgorICA8L3N0YWNrPgorICA8c3VwcHJlc3Npb24+CisgICAgPHNuYW1lPmluc2VydF9hX3N1cHBy
ZXNzaW9uX25hbWVfaGVyZTwvc25hbWU+CisgICAgPHNraW5kPk1lbWNoZWNrOkxlYWs8L3NraW5k
PgorICAgIDxzZnJhbWU+IDxmdW4+X1pud208L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4g
PGZ1bj5fWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9s
aWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0
RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVF
RVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJT
dDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb248L2Z1bj4gPC9zZnJhbWU+Cisg
ICAgPHNmcmFtZT4gPGZ1bj53ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXc8L2Z1bj4gPC9z
ZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZp
Z2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5T
MV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUU8L2Z1bj4g
PC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIx
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1l
bnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVT
QV88L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVM
b2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNG
cmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUU8L2Z1bj4gPC9z
ZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQ
TlNfMTREb2N1bWVudExvYWRlckU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5f
Wk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEU8L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj53ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJp
PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pMN3J1blRlc3RSS1NzPC9mdW4+
IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8
L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5tYWluPC9mdW4+IDwvc2ZyYW1lPgor
ICAgIDxyYXd0ZXh0PgorPCFbQ0RBVEFbCit7eworICAgPGluc2VydF9hX3N1cHByZXNzaW9uX25h
bWVfaGVyZT4KKyAgIE1lbWNoZWNrOkxlYWsKKyAgIGZ1bjpfWm53bQorICAgZnVuOl9aTlN0MTRf
RnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFj
aGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3Vt
ZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9i
RVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJL
U0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbgorICAgZnVuOndlYmtpdF93ZWJfcG9saWN5X2RlY2lz
aW9uX25ldworICAgZnVuOl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rp
b25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3Rh
dGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJD
b3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNl
UmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0
YXRlRUVFUEZ2UHZTM19TOV9iRVNBXworICAgZnVuOl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIy
bG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9h
ZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRQorICAgZnVuOl9aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVyRQorICAgZnVuOl9aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RQorICAgZnVu
OndlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmkKKyAgIGZ1bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1
bjpfWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdgorICAgZnVuOm1haW4KK319CitdXT4KKyAgICA8
L3Jhd3RleHQ+CisgIDwvc3VwcHJlc3Npb24+Cis8L2Vycm9yPgorCis8ZXJyb3I+CisgIDx1bmlx
dWU+MHgxYTU8L3VuaXF1ZT4KKyAgPHRpZD4xPC90aWQ+CisgIDxraW5kPkxlYWtfRGVmaW5pdGVs
eUxvc3Q8L2tpbmQ+CisgIDx4d2hhdD4KKyAgICA8dGV4dD44IGJ5dGVzIGluIDEgYmxvY2tzIGFy
ZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgNDIyIG9mIDcsOTcyPC90ZXh0PgorICAg
IDxsZWFrZWRieXRlcz44PC9sZWFrZWRieXRlcz4KKyAgICA8bGVha2VkYmxvY2tzPjE8L2xlYWtl
ZGJsb2Nrcz4KKyAgPC94d2hhdD4KKyAgPHN0YWNrPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4w
eDRDMkFGOEU8L2lwPgorICAgICAgPG9iaj4vdXNyL2xpYi92YWxncmluZC92Z3ByZWxvYWRfbWVt
Y2hlY2stYW1kNjQtbGludXguc288L29iaj4KKyAgICAgIDxmbj5fWm53bTwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODM5RDBDPC9pcD4KKyAgICAgIDxvYmo+
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jh
c2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lF
UktOUzFfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEyUG9saWN5QWN0aW9uRUVTNl9FVWxT
N19FX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0NfU3QxOF9NYW5hZ2VyX29wZXJhdGlv
bjwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUU3QjAzPC9p
cD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGli
cy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJf
cG9saWN5X2RlY2lzaW9uX25ldzwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAg
ICA8aXA+MHg2MUNCNTI3PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0
QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAg
ICAgPGZuPl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzFkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlRVJLTjdXZWJDb3JlMTZSZXNvdXJjZVJlc3BvbnNlRVJLTlMxXzE1UmVzb3Vy
Y2VSZXF1ZXN0RVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFPC9mbj4KKyAgICA8
L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY4MzlFQzA8L2lwPgorICAgICAgPG9i
aj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0
ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNvcmUxM1BvbGljeUNoZWNr
ZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TXzEy
UG9saWN5QWN0aW9uRUVTNF88L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAg
PGlwPjB4NjgwMkY2RTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1
aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAg
IDxmbj5fWk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxNnJlc3BvbnNlUmVjZWl2ZWRFUE5TXzE0
Q2FjaGVkUmVzb3VyY2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VFPC9mbj4KKyAgICA8L2ZyYW1l
PgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY3RTU5RTA8L2lwPgorICAgICAgPG9iaj4vaG9t
ZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAu
c28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNvcmUxN0NhY2hlZFJhd1Jlc291cmNl
MTZyZXNwb25zZVJlY2VpdmVkRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODRDMjM3PC9pcD4KKyAgICAgIDxvYmo+
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTdTdWJyZXNvdXJjZUxv
YWRlcjE4ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZm4+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2Rjk1ODQ4PC9pcD4KKyAgICAg
IDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJr
aXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlTDE5c2VuZFJl
cXVlc3RDYWxsYmFja0VQOF9HT2JqZWN0UDEzX0dBc3luY1Jlc3VsdFB2PC9mbj4KKyAgICA8L2Zy
YW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDhFMkQ2Q0E8L2lwPgorICAgICAgPG9iaj4v
aG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvUm9vdC9saWI2NC9saWJn
aW8tMi4wLnNvLjAuMzgwMC4wPC9vYmo+CisgICAgICA8Zm4+Z190YXNrX3JldHVybl9ub3c8L2Zu
PgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMv
U291cmNlL2dsaWItMi4zOC4wL2dpbzwvZGlyPgorICAgICAgPGZpbGU+Z3Rhc2suYzwvZmlsZT4K
KyAgICAgIDxsaW5lPjExMDg8L2xpbmU+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAg
ICA8aXA+MHg4RTJENkU4PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0
QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2lvLTIuMC5zby4wLjM4MDAuMDwvb2Jq
PgorICAgICAgPGZuPmNvbXBsZXRlX2luX2lkbGVfY2I8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91
c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dp
bzwvZGlyPgorICAgICAgPGZpbGU+Z3Rhc2suYzwvZmlsZT4KKyAgICAgIDxsaW5lPjExMTc8L2xp
bmU+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg5M0E2MkY0PC9pcD4K
KyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jv
b3QvbGliNjQvbGliZ2xpYi0yLjAuc28uMC4zODAwLjA8L29iaj4KKyAgICAgIDxmbj5nX21haW5f
Y29udGV4dF9kaXNwYXRjaDwvZm4+CisgICAgICA8ZGlyPi9ob21lL3VzZXIvV2ViS2l0L1dlYktp
dEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2xpYjwvZGlyPgorICAgICAg
PGZpbGU+Z21haW4uYzwvZmlsZT4KKyAgICAgIDxsaW5lPjMwNjU8L2xpbmU+CisgICAgPC9mcmFt
ZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg5M0E2NjM3PC9pcD4KKyAgICAgIDxvYmo+L2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2xp
Yi0yLjAuc28uMC4zODAwLjA8L29iaj4KKyAgICAgIDxmbj5nX21haW5fY29udGV4dF9pdGVyYXRl
LmlzcmEuMjM8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dsaWI8L2Rpcj4KKyAgICAgIDxmaWxlPmdt
YWluLmM8L2ZpbGU+CisgICAgICA8bGluZT4zNzEyPC9saW5lPgorICAgIDwvZnJhbWU+CisgICAg
PGZyYW1lPgorICAgICAgPGlwPjB4OTNBNkE5OTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIv
V2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Sb290L2xpYjY0L2xpYmdsaWItMi4wLnNv
LjAuMzgwMC4wPC9vYmo+CisgICAgICA8Zm4+Z19tYWluX2xvb3BfcnVuPC9mbj4KKyAgICAgIDxk
aXI+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGli
LTIuMzguMC9nbGliPC9kaXI+CisgICAgICA8ZmlsZT5nbWFpbi5jPC9maWxlPgorICAgICAgPGxp
bmU+MzkwNjwvbGluZT4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDgx
MjEyMDQ8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBl
bmRlbmNpZXMvUm9vdC9saWI2NC9saWJndGstMy5zby4wLjYwMC4wPC9vYmo+CisgICAgICA8Zm4+
Z3RrX21haW48L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXMvU291cmNlL2d0aystMy42LjAvZ3RrPC9kaXI+CisgICAgICA8ZmlsZT5ndGtt
YWluLmM8L2ZpbGU+CisgICAgICA8bGluZT4xMTYyPC9saW5lPgorICAgIDwvZnJhbWU+CisgICAg
PGZyYW1lPgorICAgICAgPGlwPjB4NDRDQkNFPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgor
ICAgICAgPGZuPl9aTDdydW5UZXN0UktTczwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+
CisgICAgICA8aXA+MHg0NENFRDY8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8
Zm4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZy
YW1lPgorICAgICAgPGlwPjB4NDNBMkQzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJL
aXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAg
ICAgPGZuPm1haW48L2ZuPgorICAgIDwvZnJhbWU+CisgIDwvc3RhY2s+CisgIDxzdXBwcmVzc2lv
bj4KKyAgICA8c25hbWU+aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPC9zbmFtZT4KKyAg
ICA8c2tpbmQ+TWVtY2hlY2s6TGVhazwvc2tpbmQ+CisgICAgPHNmcmFtZT4gPGZ1bj5fWm53bTwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEz
X0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xp
Y3lFUktOUzFfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEyUG9saWN5QWN0aW9uRUVTNl9F
VWxTN19FX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0NfU3QxOF9NYW5hZ2VyX29wZXJh
dGlvbjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfcG9saWN5
X2RlY2lzaW9uX25ldzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjZXZWJL
aXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzFkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlRVJL
TjdXZWJDb3JlMTZSZXNvdXJjZVJlc3BvbnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVN0OGZ1
bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJh
bWU+IDxmdW4+X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVS
S05TXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TXzEyUG9saWN5QWN0aW9uRUVTNF88L2Z1bj4g
PC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIx
NnJlc3BvbnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFUktOU18xNlJlc291cmNlUmVz
cG9uc2VFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxN0Nh
Y2hlZFJhd1Jlc291cmNlMTZyZXNwb25zZVJlY2VpdmVkRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNl
RTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTdTdWJyZXNv
dXJjZUxvYWRlcjE4ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlTDE5c2VuZFJlcXVl
c3RDYWxsYmFja0VQOF9HT2JqZWN0UDEzX0dBc3luY1Jlc3VsdFB2PC9mdW4+IDwvc2ZyYW1lPgor
ICAgIDxzZnJhbWU+IDxmdW4+Z190YXNrX3JldHVybl9ub3c8L2Z1bj4gPC9zZnJhbWU+CisgICAg
PHNmcmFtZT4gPGZ1bj5jb21wbGV0ZV9pbl9pZGxlX2NiPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxz
ZnJhbWU+IDxmdW4+Z19tYWluX2NvbnRleHRfZGlzcGF0Y2g8L2Z1bj4gPC9zZnJhbWU+CisgICAg
PHNmcmFtZT4gPGZ1bj5nX21haW5fY29udGV4dF9pdGVyYXRlLmlzcmEuMjM8L2Z1bj4gPC9zZnJh
bWU+CisgICAgPHNmcmFtZT4gPGZ1bj5nX21haW5fbG9vcF9ydW48L2Z1bj4gPC9zZnJhbWU+Cisg
ICAgPHNmcmFtZT4gPGZ1bj5ndGtfbWFpbjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8
ZnVuPl9aTDdydW5UZXN0UktTczwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9a
TDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxm
dW4+bWFpbjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8cmF3dGV4dD4KKzwhW0NEQVRBWwore3sKKyAg
IDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+CisgICBNZW1jaGVjazpMZWFrCisgICBm
dW46X1pud20KKyAgIGZ1bjpfWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43
V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9saWN5RVJLTlMxXzE2UmVzb3Vy
Y2VSZXNwb25zZUVQRnZQdk5TMV8xMlBvbGljeUFjdGlvbkVFUzZfRVVsUzdfRV9FMTBfTV9tYW5h
Z2VyRVJTdDlfQW55X2RhdGFSS1NDX1N0MThfTWFuYWdlcl9vcGVyYXRpb24KKyAgIGZ1bjp3ZWJr
aXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcKKyAgIGZ1bjpfWk42V2ViS2l0MTdGcmFtZUxvYWRl
ckNsaWVudDMxZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZUVSS043V2ViQ29yZTE2UmVz
b3VyY2VSZXNwb25zZUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVTdDhmdW5jdGlvbklGdk5TMV8x
MlBvbGljeUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVj
a0NvbnRlbnRQb2xpY3lFUktOU18xNlJlc291cmNlUmVzcG9uc2VFUEZ2UHZOU18xMlBvbGljeUFj
dGlvbkVFUzRfCisgICBmdW46X1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVyMTZyZXNwb25zZVJl
Y2VpdmVkRVBOU18xNENhY2hlZFJlc291cmNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRQorICAg
ZnVuOl9aTjdXZWJDb3JlMTdDYWNoZWRSYXdSZXNvdXJjZTE2cmVzcG9uc2VSZWNlaXZlZEVSS05T
XzE2UmVzb3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43V2ViQ29yZTE3U3VicmVzb3VyY2VMb2Fk
ZXIxOGRpZFJlY2VpdmVSZXNwb25zZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpf
Wk43V2ViQ29yZUwxOXNlbmRSZXF1ZXN0Q2FsbGJhY2tFUDhfR09iamVjdFAxM19HQXN5bmNSZXN1
bHRQdgorICAgZnVuOmdfdGFza19yZXR1cm5fbm93CisgICBmdW46Y29tcGxldGVfaW5faWRsZV9j
YgorICAgZnVuOmdfbWFpbl9jb250ZXh0X2Rpc3BhdGNoCisgICBmdW46Z19tYWluX2NvbnRleHRf
aXRlcmF0ZS5pc3JhLjIzCisgICBmdW46Z19tYWluX2xvb3BfcnVuCisgICBmdW46Z3RrX21haW4K
KyAgIGZ1bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1bjpfWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29w
dgorICAgZnVuOm1haW4KK319CitdXT4KKyAgICA8L3Jhd3RleHQ+CisgIDwvc3VwcHJlc3Npb24+
Cis8L2Vycm9yPgorCis8ZXJyb3I+CisgIDx1bmlxdWU+MHgxYTY8L3VuaXF1ZT4KKyAgPHRpZD4x
PC90aWQ+CisgIDxraW5kPkxlYWtfRGVmaW5pdGVseUxvc3Q8L2tpbmQ+CisgIDx4d2hhdD4KKyAg
ICA8dGV4dD44IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyBy
ZWNvcmQgNDIzIG9mIDcsOTcyPC90ZXh0PgorICAgIDxsZWFrZWRieXRlcz44PC9sZWFrZWRieXRl
cz4KKyAgICA8bGVha2VkYmxvY2tzPjE8L2xlYWtlZGJsb2Nrcz4KKyAgPC94d2hhdD4KKyAgPHN0
YWNrPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDRDMkFGOEU8L2lwPgorICAgICAgPG9iaj4v
dXNyL2xpYi92YWxncmluZC92Z3ByZWxvYWRfbWVtY2hlY2stYW1kNjQtbGludXguc288L29iaj4K
KyAgICAgIDxmbj5fWm53bTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8
aXA+MHg2ODM5REVDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAg
PGZuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xp
Y3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RF
UE5TMV8xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVF
UEZ2UHZTNV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0
OV9BbnlfZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZm4+CisgICAgPC9mcmFtZT4K
KyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUU3QjAzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNv
LjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwv
Zm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUNCQTZEPC9pcD4K
KyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9s
aWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjZXZWJLaXQxN0Zy
YW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25F
UktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNX
VEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGlj
eUFjdGlvbkVFRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2
ODNERjUyPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVs
ZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9a
TjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJl
c291cmNlUmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185
Rm9ybVN0YXRlRUVFUEZ2UHZTM19TOV9iRVNBXzwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJh
bWU+CisgICAgICA8aXA+MHg2ODE3RUZDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJL
aXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwv
b2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVu
dExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBh
c3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+
CisgICAgICA8aXA+MHg2ODE4NzI5PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2Jq
PgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50
TG9hZGVyRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODE4
QTNBPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RTwvZm4+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUUzMTQ4PC9pcD4KKyAgICAg
IDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJr
aXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfZnJhbWVfbG9h
ZF91cmk8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDRDQzUw
PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Q
cm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9aTDdydW5UZXN0UktTczwv
Zm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0NENFRDY8L2lwPgor
ICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1z
L0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9v
cHY8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDNBMkQzPC9p
cD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9n
cmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPm1haW48L2ZuPgorICAgIDwvZnJh
bWU+CisgIDwvc3RhY2s+CisgIDxzdXBwcmVzc2lvbj4KKyAgICA8c25hbWU+aW5zZXJ0X2Ffc3Vw
cHJlc3Npb25fbmFtZV9oZXJlPC9zbmFtZT4KKyAgICA8c2tpbmQ+TWVtY2hlY2s6TGVhazwvc2tp
bmQ+CisgICAgPHNmcmFtZT4gPGZ1bj5fWm53bTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1l
PiA8ZnVuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQ
b2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVl
c3RFUE5TMV8xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRl
RUVFUEZ2UHZTNV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJF
UlN0OV9BbnlfZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZnVuPiA8L3NmcmFtZT4K
KyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZnVuPiA8
L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50
MzlkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5h
dmlnYXRpb25BY3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJ
TlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRTwvZnVu
PiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2Vy
MjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNlUmVxdWVzdEVQTlNfMTREb2N1
bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFUEZ2UHZTM19TOV9i
RVNBXzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFGcmFt
ZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18x
M0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRTwvZnVuPiA8
L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2Fk
RVBOU18xNERvY3VtZW50TG9hZGVyRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVu
Pl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RTwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfZnJhbWVfbG9hZF91
cmk8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWkw3cnVuVGVzdFJLU3M8L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29w
djwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPm1haW48L2Z1bj4gPC9zZnJhbWU+
CisgICAgPHJhd3RleHQ+Cis8IVtDREFUQVsKK3t7CisgICA8aW5zZXJ0X2Ffc3VwcHJlc3Npb25f
bmFtZV9oZXJlPgorICAgTWVtY2hlY2s6TGVhaworICAgZnVuOl9abndtCisgICBmdW46X1pOU3Qx
NF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIy
MWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVQTlMxXzE0RG9j
dW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVQRnZQdlM1X1NC
X2JFU0NfRVVsTlMxXzEyUG9saWN5QWN0aW9uRUVfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRh
UktTSV9TdDE4X01hbmFnZXJfb3BlcmF0aW9uCisgICBmdW46d2Via2l0X3dlYl9wb2xpY3lfZGVj
aXNpb25fbmV3CisgICBmdW46X1pONldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzOWRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkVSS043V2ViQ29yZTE2TmF2aWdhdGlvbkFj
dGlvbkVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1T
dGF0ZUVFRVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFCisgICBmdW46X1pON1dl
YkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TXzE1UmVzb3Vy
Y2VSZXF1ZXN0RVBOU18xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3Jt
U3RhdGVFRUVQRnZQdlMzX1M5X2JFU0FfCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVy
MjJsb2FkV2l0aERvY3VtZW50TG9hZGVyRVBOU18xNERvY3VtZW50TG9hZGVyRU5TXzEzRnJhbWVM
b2FkVHlwZUVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFCisgICBmdW46X1pON1dl
YkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUE5TXzE0RG9jdW1lbnRMb2FkZXJFCisgICBmdW46X1pO
N1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1lTG9hZFJlcXVlc3RFCisgICBm
dW46d2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaQorICAgZnVuOl9aTDdydW5UZXN0UktTcworICAg
ZnVuOl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2CisgICBmdW46bWFpbgorfX0KK11dPgorICAg
IDwvcmF3dGV4dD4KKyAgPC9zdXBwcmVzc2lvbj4KKzwvZXJyb3I+CisKKzxlcnJvcmNvdW50cz4K
KzwvZXJyb3Jjb3VudHM+CisKKzxzdXBwY291bnRzPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTA3
PC9jb3VudD4KKyAgICA8bmFtZT5GY0NvbmZpZ0FwcEZvbnRBZGRGaWxlIChUaGlyZCBQYXJ0eSk8
L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjIwOTg8L2NvdW50PgorICAg
IDxuYW1lPmd0a19pbml0X2NoZWNrIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAg
PHBhaXI+CisgICAgPGNvdW50PjE8L2NvdW50PgorICAgIDxuYW1lPmdfcXVhcmtfZnJvbV9zdGF0
aWNfc3RyaW5nIChUaGlyZCBwYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAg
PGNvdW50PjI3PC9jb3VudD4KKyAgICA8bmFtZT5GY0NvbmZpZ1BhcnNlQW5kTG9hZCAoVGhpcmQg
UGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD44MDwvY291bnQ+
CisgICAgPG5hbWU+d2Via2l0QWNjZXNzaWJsZU5ldzwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFp
cj4KKyAgICA8Y291bnQ+MTc3PC9jb3VudD4KKyAgICA8bmFtZT5nX3RocmVhZF9wcm94eSAoVGhp
cmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD45PC9jb3Vu
dD4KKyAgICA8bmFtZT5GY1BhdHRlcm5PYmplY3RJbnNlcnRFbHQgMiAoVGhpcmQgUGFydHkpPC9u
YW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFt
ZT5ndGtfd2luZG93X3JlYWxpemUgKFRoaXJkIFBhcnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8
cGFpcj4KKyAgICA8Y291bnQ+MTwvY291bnQ+CisgICAgPG5hbWU+X19uc3NfZGF0YWJhc2VfbG9v
a3VwIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50
PjE8L2NvdW50PgorICAgIDxuYW1lPmNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZSAoVGhpcmQgUGFy
dHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4yPC9jb3VudD4KKyAg
ICA8bmFtZT5saWJHTC5zbyAoVGhpcmQgcGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWly
PgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5nX3Rhc2tfcnVuX2luX3RocmVhZCAo
VGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4yPC9j
b3VudD4KKyAgICA8bmFtZT5XVEY6OlRocmVhZElkZW50aWZpZXJEYXRhOjppbml0aWFsaXplKCkg
KEludGVudGlvbmFsKTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTwv
Y291bnQ+CisgICAgPG5hbWU+Z3RrX2Nzc19wcm92aWRlcl9sb2FkX2Zyb21fZGF0YSAoVGhpcmQg
UGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4K
KyAgICA8bmFtZT5saWJlbmNoYW50LnNvIG5ldyAoVGhpcmQgcGFydHkpPC9uYW1lPgorICA8L3Bh
aXI+Cis8L3N1cHBjb3VudHM+CisKKzwvdmFsZ3JpbmRvdXRwdXQ+CisiIiIuZm9ybWF0KHByb2Nl
c3NfbmFtZT1wcm9jZXNzX25hbWUsIHBpZD1waWQsIHV1aWQ9dXVpZCkKKworCitkZWYgbWFrZV9t
b2NrX2luY29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0KHByb2Nlc3NfbmFtZSwgcGlkLCB1dWlkKToK
KyAgICByZXR1cm4gIiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+CisKKzx2YWxncmluZG91dHB1dD4K
KworPHByb3RvY29sdmVyc2lvbj40PC9wcm90b2NvbHZlcnNpb24+Cis8cHJvdG9jb2x0b29sPm1l
bWNoZWNrPC9wcm90b2NvbHRvb2w+CisKKzxwcmVhbWJsZT4KKyAgPGxpbmU+TWVtY2hlY2ssIGEg
bWVtb3J5IGVycm9yIGRldGVjdG9yPC9saW5lPgorICA8bGluZT5Db3B5cmlnaHQgKEMpIDIwMDIt
MjAxMSwgYW5kIEdOVSBHUEwnZCwgYnkgSnVsaWFuIFNld2FyZCBldCBhbC48L2xpbmU+CisgIDxs
aW5lPlVzaW5nIFZhbGdyaW5kLTMuNy4wIGFuZCBMaWJWRVg7IHJlcnVuIHdpdGggLWggZm9yIGNv
cHlyaWdodCBpbmZvPC9saW5lPgorICA8bGluZT5Db21tYW5kOiAvaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL3twcm9jZXNzX25hbWV9IC08L2xpbmU+Cis8L3By
ZWFtYmxlPgorCis8cGlkPntwaWR9PC9waWQ+Cis8cHBpZD4xODU3NzwvcHBpZD4KKzx0b29sPm1l
bWNoZWNrPC90b29sPgorCis8YXJncz4KKyAgPHZhcmd2PgorICAgIDxleGU+L3Vzci9iaW4vdmFs
Z3JpbmQuYmluPC9leGU+CisgICAgPGFyZz4tLXRvb2w9bWVtY2hlY2s8L2FyZz4KKyAgICA8YXJn
Pi0tbnVtLWNhbGxlcnM9NDA8L2FyZz4KKyAgICA8YXJnPi0tZGVtYW5nbGU9bm88L2FyZz4KKyAg
ICA8YXJnPi0tdHJhY2UtY2hpbGRyZW49bm88L2FyZz4KKyAgICA8YXJnPi0tc21jLWNoZWNrPWFs
bC1ub24tZmlsZTwvYXJnPgorICAgIDxhcmc+LS1sZWFrLWNoZWNrPXllczwvYXJnPgorICAgIDxh
cmc+LS1sZWFrLXJlc29sdXRpb249aGlnaDwvYXJnPgorICAgIDxhcmc+LS1zaG93LXBvc3NpYmx5
LWxvc3Q9bm88L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1yZWFjaGFibGU9bm88L2FyZz4KKyAgICA8
YXJnPi0tbGVhay1jaGVjaz1mdWxsPC9hcmc+CisgICAgPGFyZz4tLXVuZGVmLXZhbHVlLWVycm9y
cz1ubzwvYXJnPgorICAgIDxhcmc+LS1nZW4tc3VwcHJlc3Npb25zPWFsbDwvYXJnPgorICAgIDxh
cmc+LS14bWw9eWVzPC9hcmc+CisgICAgPGFyZz4tLXhtbC1maWxlPS9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGF5b3V0LXRlc3QtcmVzdWx0cy9kcnQte3BpZH0te3V1aWR9
LWxlYWtzLnhtbDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L2hvbWUvdXNlci9XZWJL
aXQvVG9vbHMvU2NyaXB0cy92YWxncmluZC9zdXBwcmVzc2lvbnMudHh0PC9hcmc+CisgICAgPGFy
Zz4tLXN1cHByZXNzaW9ucz0vdXNyL2xpYi92YWxncmluZC9kZWJpYW4tbGliYzYtZGJnLnN1cHA8
L2FyZz4KKyAgPC92YXJndj4KKyAgPGFyZ3Y+CisgICAgPGV4ZT4vaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL3twcm9jZXNzX25hbWV9PC9leGU+CisgICAgPGFy
Zz4tPC9hcmc+CisgIDwvYXJndj4KKzwvYXJncz4KKworPHN0YXR1cz4KKyAgPHN0YXRlPlJVTk5J
Tkc8L3N0YXRlPgorICA8dGltZT4wMDowMDowMDowMC4wMjQgPC90aW1lPgorPC9zdGF0dXM+Cisi
IiIuZm9ybWF0KHByb2Nlc3NfbmFtZT1wcm9jZXNzX25hbWUsIHBpZD1waWQsIHV1aWQ9dXVpZCkK
KworCitkZWYgbWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHMoKToKKyAgICByZXR1cm4gIiIiLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N1cHBy
ZXNzaW9ucyB1c2VkOgorICBjb3VudCBuYW1lCisgICAgICAyIF9fbnNzX2RhdGFiYXNlX2xvb2t1
cCAoVGhpcmQgUGFydHkpCisgICAgICAyIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZSAoVGhpcmQg
UGFydHkpCisgICAgICAyIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nIChUaGlyZCBwYXJ0eSkK
KyAgICAgIDIgZ190YXNrX3J1bl9pbl90aHJlYWQgKFRoaXJkIFBhcnR5KQorICAgICAgMiBndGtf
Y3NzX3Byb3ZpZGVyX2xvYWRfZnJvbV9kYXRhIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgZ3RrX3dp
bmRvd19yZWFsaXplIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgbGliZW5jaGFudC5zbyBuZXcgKFRo
aXJkIHBhcnR5KQorICAgICAgNCBXVEY6OlRocmVhZElkZW50aWZpZXJEYXRhOjppbml0aWFsaXpl
KCkgKEludGVudGlvbmFsKQorICAgICAgNCBsaWJHTC5zbyAoVGhpcmQgcGFydHkpCisgICAgIDE4
IEZjUGF0dGVybk9iamVjdEluc2VydEVsdCAyIChUaGlyZCBQYXJ0eSkKKyAgICAgNTQgRmNDb25m
aWdQYXJzZUFuZExvYWQgKFRoaXJkIFBhcnR5KQorICAgIDE2MCB3ZWJraXRBY2Nlc3NpYmxlTmV3
CisgICAgMjE0IEZjQ29uZmlnQXBwRm9udEFkZEZpbGUgKFRoaXJkIFBhcnR5KQorICAgIDM1NCBn
X3RocmVhZF9wcm94eSAoVGhpcmQgUGFydHkpCisgICA0MTk2IGd0a19pbml0X2NoZWNrIChUaGly
ZCBQYXJ0eSkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitWYWxncmluZCBkZXRlY3RlZCAyIGxlYWtzOgorTGVha19EZWZpbml0ZWx5TG9zdAor
OCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQy
MSBvZiA3LDk3MgorICBvcGVyYXRvciBuZXcodW5zaWduZWQgbG9uZykgKC91c3IvbGliL3ZhbGdy
aW5kL3ZncHJlbG9hZF9tZW1jaGVjay1hbWQ2NC1saW51eC5zbykKKyAgc3RkOjpfRnVuY3Rpb25f
YmFzZTo6X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRp
b25Qb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKiko
dm9pZCosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpGb3JtU3RhdGU+LCBib29sKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGlj
eUFjdGlvbikjMX0+OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfRnVuY3Rpb25f
YmFzZTo6X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRp
b25Qb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKiko
dm9pZCosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpGb3JtU3RhdGU+LCBib29sKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGlj
eUFjdGlvbikjMX0+IGNvbnN0Jiwgc3RkOjpfTWFuYWdlcl9vcGVyYXRpb24pICgvaG9tZS91c2Vy
L1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4x
OS4zKQorICB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcgKC9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisg
IFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uIGNvbnN0JiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IGNvbnN0JiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4s
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2ViQ29yZTo6UG9saWN5QWN0aW9uKT4pICgvaG9tZS91c2Vy
L1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4x
OS4zKQorICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3Jt
U3RhdGU+LCBib29sKSwgdm9pZCopICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxl
YXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFdl
YkNvcmU6OkZyYW1lTG9hZFR5cGUsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+
KSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRn
dGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8u
bGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCBjb25zdCYpICgvaG9tZS91c2VyL1dlYktp
dC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQor
ICB3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBydW5UZXN0KHN0
ZDo6YmFzaWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0ZDo6YWxsb2Nh
dG9yPGNoYXI+ID4gY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZSkKKyAgcnVuVGVzdGluZ1NlcnZlckxvb3AoKSAoL2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJl
ZSkKKyAgbWFpbiAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFt
cy9EdW1wUmVuZGVyVHJlZSkKK1N1cHByZXNzaW9uIChlcnJvciBoYXNoPSMwNDQ5RDNFRDI1M0ZF
MUY5Iyk6CisKK3sKKyAgIDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+CisgICBNZW1j
aGVjazpMZWFrCisgICBmdW46X1pudyoKKyAgIGZ1bjpfWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19C
YXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9s
aWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dURjEw
UGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xp
Y3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9v
cGVyYXRpb24KKyAgIGZ1bjp3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcKKyAgIGZ1bjpf
Wk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3Vy
Y2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25J
RnZOUzFfMTJQb2xpY3lBY3Rpb25FRUUKKyAgIGZ1bjpfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tl
cjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9j
dW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlf
YkVTQV8KKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRM
b2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzlGb3JtU3RhdGVFRUUKKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0
bG9hZEVQTlNfMTREb2N1bWVudExvYWRlckUKKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2Fk
ZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEUKKyAgIGZ1bjp3ZWJraXRfd2ViX2ZyYW1l
X2xvYWRfdXJpCisgICBmdW46X1pMN3J1blRlc3RSS1NzCisgICBmdW46X1pMMjBydW5UZXN0aW5n
U2VydmVyTG9vcHYKKyAgIGZ1bjptYWluCit9CisKKworTGVha19EZWZpbml0ZWx5TG9zdAorOCBi
eXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQyMiBv
ZiA3LDk3MgorICBvcGVyYXRvciBuZXcodW5zaWduZWQgbG9uZykgKC91c3IvbGliL3ZhbGdyaW5k
L3ZncHJlbG9hZF9tZW1jaGVjay1hbWQ2NC1saW51eC5zbykKKyAgc3RkOjpfRnVuY3Rpb25fYmFz
ZTo6X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja0NvbnRlbnRQb2xp
Y3koV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYsIHZvaWQgKCopKHZvaWQqLCBXZWJD
b3JlOjpQb2xpY3lBY3Rpb24pLCB2b2lkKik6OntsYW1iZGEoV2ViQ29yZTo6UG9saWN5QWN0aW9u
KSMxfT46Ol9NX21hbmFnZXIoc3RkOjpfQW55X2RhdGEmLCBzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpf
QmFzZV9tYW5hZ2VyPFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNrQ29udGVudFBvbGljeShX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0Jiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6
OlBvbGljeUFjdGlvbiksIHZvaWQqKTo6e2xhbWJkYShXZWJDb3JlOjpQb2xpY3lBY3Rpb24pIzF9
PiBjb25zdCYsIHN0ZDo6X01hbmFnZXJfb3BlcmF0aW9uKSAoL2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgd2Vi
a2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3ICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgY29uc3QmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3Qm
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYkNvcmU6OlBvbGljeUFjdGlvbik+KSAoL2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAu
MTkuMykKKyAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tDb250ZW50UG9saWN5KFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmLCB2b2lkICgqKSh2b2lkKiwgV2ViQ29yZTo6UG9s
aWN5QWN0aW9uKSwgdm9pZCopICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNl
Ly5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpEb2N1bWVudExv
YWRlcjo6cmVzcG9uc2VSZWNlaXZlZChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSosIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQv
UmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6Q2Fj
aGVkUmF3UmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSBjb25zdCYpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xp
YndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmKSAoL2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4w
LnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayhfR09iamVjdCosIF9H
QXN5bmNSZXN1bHQqLCB2b2lkKikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVh
c2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIGdfdGFza19yZXR1cm5fbm93
ICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWIt
Mi4zOC4wL2dpby9ndGFzay5jOjExMDgpCisgIGNvbXBsZXRlX2luX2lkbGVfY2IgKC9ob21lL3Vz
ZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2lv
L2d0YXNrLmM6MTExNykKKyAgZ19tYWluX2NvbnRleHRfZGlzcGF0Y2ggKC9ob21lL3VzZXIvV2Vi
S2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2xpYi9nbWFp
bi5jOjMwNjUpCisgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUuaXNyYS4yMyAoL2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIuMzguMC9nbGliL2dt
YWluLmM6MzcxMikKKyAgZ19tYWluX2xvb3BfcnVuICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dsaWIvZ21haW4uYzozOTA2KQor
ICBndGtfbWFpbiAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Nv
dXJjZS9ndGsrLTMuNi4wL2d0ay9ndGttYWluLmM6MTE2MikKKyAgcnVuVGVzdChzdGQ6OmJhc2lj
X3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFy
PiA+IGNvbnN0JikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3Jh
bXMvRHVtcFJlbmRlclRyZWUpCisgIHJ1blRlc3RpbmdTZXJ2ZXJMb29wKCkgKC9ob21lL3VzZXIv
V2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUpCisgIG1h
aW4gKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJl
bmRlclRyZWUpCitTdXBwcmVzc2lvbiAoZXJyb3IgaGFzaD0jODMxM0RFQjE2QjA2OTQzOCMpOgor
Cit7CisgICA8aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPgorICAgTWVtY2hlY2s6TGVh
aworICAgZnVuOl9abncqCisgICBmdW46X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5h
Z2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TMV8x
NlJlc291cmNlUmVzcG9uc2VFUEZ2UHZOUzFfMTJQb2xpY3lBY3Rpb25FRVM2X0VVbFM3X0VfRTEw
X01fbWFuYWdlckVSU3Q5X0FueV9kYXRhUktTQ19TdDE4X01hbmFnZXJfb3BlcmF0aW9uCisgICBm
dW46d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3CisgICBmdW46X1pONldlYktpdDE3RnJh
bWVMb2FkZXJDbGllbnQzMWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VFUktON1dlYkNv
cmUxNlJlc291cmNlUmVzcG9uc2VFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFU3Q4ZnVuY3Rpb25J
RnZOUzFfMTJQb2xpY3lBY3Rpb25FRUUKKyAgIGZ1bjpfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tl
cjE4Y2hlY2tDb250ZW50UG9saWN5RVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlNfMTJQ
b2xpY3lBY3Rpb25FRVM0XworICAgZnVuOl9aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlcjE2cmVz
cG9uc2VSZWNlaXZlZEVQTlNfMTRDYWNoZWRSZXNvdXJjZUVSS05TXzE2UmVzb3VyY2VSZXNwb25z
ZUUKKyAgIGZ1bjpfWk43V2ViQ29yZTE3Q2FjaGVkUmF3UmVzb3VyY2UxNnJlc3BvbnNlUmVjZWl2
ZWRFUktOU18xNlJlc291cmNlUmVzcG9uc2VFCisgICBmdW46X1pON1dlYkNvcmUxN1N1YnJlc291
cmNlTG9hZGVyMThkaWRSZWNlaXZlUmVzcG9uc2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VFCisg
ICBmdW46X1pON1dlYkNvcmVMMTlzZW5kUmVxdWVzdENhbGxiYWNrRVA4X0dPYmplY3RQMTNfR0Fz
eW5jUmVzdWx0UHYKKyAgIGZ1bjpnX3Rhc2tfcmV0dXJuX25vdworICAgZnVuOmNvbXBsZXRlX2lu
X2lkbGVfY2IKKyAgIGZ1bjpnX21haW5fY29udGV4dF9kaXNwYXRjaAorICAgZnVuOmdfbWFpbl9j
b250ZXh0X2l0ZXJhdGUuaXNyYS4yMworICAgZnVuOmdfbWFpbl9sb29wX3J1bgorICAgZnVuOmd0
a19tYWluCisgICBmdW46X1pMN3J1blRlc3RSS1NzCisgICBmdW46X1pMMjBydW5UZXN0aW5nU2Vy
dmVyTG9vcHYKKyAgIGZ1bjptYWluCit9CisKKworIiIiCisKKworY2xhc3MgTGVha0RldGVjdG9y
VmFsZ3JpbmRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X3BhcnNlX2Fu
ZF9wcmludF9sZWFrc19kZXRhaWwoc2VsZik6CisgICAgICAgIG1vY2tfdmFsZ3JpbmRfb3V0cHV0
MSA9IG1ha2VfbW9ja192YWxncmluZF9vdXRwdXQoJ0R1bXBSZW5kZXJUcmVlJywgMjg1MjksICdk
YjkyZTQ4NDNiZTQxMWUzYmFlMWQ0M2Q3ZTAxYmEwOCcpCisgICAgICAgIG1vY2tfdmFsZ3JpbmRf
b3V0cHV0MiA9IG1ha2VfbW9ja192YWxncmluZF9vdXRwdXQoJ0R1bXBSZW5kZXJUcmVlJywgMjg1
MzAsICdkZDcyMTM0MjNiZTQxMWUzYWE3ZmQ0M2Q3ZTAxYmEwOCcpCisgICAgICAgIG1vY2tfaW5j
b21wbGV0ZV92YWxncmluZF9vdXRwdXQgPSBtYWtlX21vY2tfaW5jb21wbGV0ZV92YWxncmluZF9v
dXRwdXQoJ0R1bXBSZW5kZXJUcmVlJywgMjg1MzEsICdlOGM3ZDdiODNiZTQxMWUzOTBjOWQ0M2Q3
ZTAxYmEwOCcpCisgICAgICAgIG1pc2Zvcm1hdHRlZF9tb2NrX3ZhbGdyaW5kX291dHB1dCA9ICdK
dW5rIHRoYXQgc2hvdWxkIG5vdCBhcHBlYXIgaW4gYSB2YWxncmluZCB4bWwgZmlsZScgKyBtYWtl
X21vY2tfdmFsZ3JpbmRfb3V0cHV0KCdEdW1wUmVuZGVyVHJlZScsIDI4NTMyLCAnZmE2ZDBjZDYz
YmU0MTFlMzljNzJkNDNkN2UwMWJhMDgnKVsyMDA6XQorICAgICAgICBmaWxlcyA9IHt9CisgICAg
ICAgIGZpbGVzWycvVXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3MvbGF5b3V0LXRlc3QtcmVzdWx0cy9k
cnQtMjg1MjktZGI5MmU0ODQzYmU0MTFlM2JhZTFkNDNkN2UwMWJhMDgtbGVha3MueG1sJ10gPSBt
b2NrX3ZhbGdyaW5kX291dHB1dDEKKyAgICAgICAgZmlsZXNbJy9Vc2Vycy9tb2NrL0xpYnJhcnkv
TG9ncy9sYXlvdXQtdGVzdC1yZXN1bHRzL2RydC0yODUzMC1kZDcyMTM0MjNiZTQxMWUzYWE3ZmQ0
M2Q3ZTAxYmEwOC1sZWFrcy54bWwnXSA9IG1vY2tfdmFsZ3JpbmRfb3V0cHV0MgorICAgICAgICAj
ZmlsZXNbJy9Vc2Vycy9tb2NrL0xpYnJhcnkvTG9ncy9sYXlvdXQtdGVzdC1yZXN1bHRzL2RydC0y
ODUzMS1lOGM3ZDdiODNiZTQxMWUzOTBjOWQ0M2Q3ZTAxYmEwOC1sZWFrcy54bWwnXSA9IG1vY2tf
aW5jb21wbGV0ZV92YWxncmluZF9vdXRwdXQKKyAgICAgICAgI2ZpbGVzWycvVXNlcnMvbW9jay9M
aWJyYXJ5L0xvZ3MvbGF5b3V0LXRlc3QtcmVzdWx0cy9kcnQtMjg1MzItZWJjOWE2YzYzYmU0MTFl
Mzk5ZDRkNDNkN2UwMWJhMDgtbGVha3MueG1sJ10gPSBOb25lCisgICAgICAgICNmaWxlc1snL1Vz
ZXJzL21vY2svTGlicmFyeS9Mb2dzL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMyLWZhNmQw
Y2Q2M2JlNDExZTM5YzcyZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gbWlzZm9ybWF0dGVkX21v
Y2tfdmFsZ3JpbmRfb3V0cHV0CisgICAgICAgIGZpbGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3RlbShm
aWxlcykKKyAgICAgICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0gTGVha0RldGVjdG9yVmFsZ3Jp
bmQoZmlsZXN5c3RlbSwgJy9Vc2Vycy9tb2NrL0xpYnJhcnkvTG9ncy9sYXlvdXQtdGVzdC1yZXN1
bHRzLycpCisKKyAgICAgICAgb2MgPSBPdXRwdXRDYXB0dXJlKCkKKyAgICAgICAgI291dHB1dC5z
ZXRfbG9nX2xldmVsKGxvZ2dpbmcuSU5GTykKKyAgICAgICAgb2MuY2FwdHVyZV9vdXRwdXQoKQor
ICAgICAgICBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFp
bChmaWxlcykKKyAgICAgICAgXywgXywgbG9nZmlsZSA9IG9jLnJlc3RvcmVfb3V0cHV0KCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2dmaWxlLCBtYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0
cygpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218767</attachid>
            <date>2013-12-09 08:47:48 -0800</date>
            <delta_ts>2014-01-02 05:27:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119446-20131209174746.patch</filename>
            <type>text/plain</type>
            <size>58050</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMjg3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTMwNjZkNzQ2NDdjMGVhODU4ZTRhNTI3ODRiODE1NDMz
MDIzMmQyMi4uODExMmQ5OWNmNzFkMjliZjhlNjhmMTRhOWIxNzY5OTEwYTZmOWVlZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDEzLTEyLTA5ICBCcmlhbiBIb2x0ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbR1RLXSBQYXJzZSBWYWxncmluZCB4bWwgbGVhayBmaWxlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDQ2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBn
ZW5lcmF0ZWQgYnkgVmFsZ3JpbmQgdG8geWllbGQgdXNlZnVsCisgICAgICAgIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBtZW1vcnkgbGVha3MuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZ3RrLnB5OgorICAgICAgICAoR3RrUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChHdGtQb3J0
LnNldHVwX3Rlc3RfcnVuKTogQ2xlYXIgdGhlIHByZXZpb3VzIG91dHB1dCBmaWxlcyBiZWZvcmUg
bmV3CisgICAgICAgIHJ1bi4KKyAgICAgICAgKEd0a1BvcnQucHJpbnRfbGVha3Nfc3VtbWFyeSk6
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5k
LnB5OiBBZGRlZC4KKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBnZW5lcmF0ZWQgYnkgVmFs
Z3JpbmQgYW5kIHN1bW1hcmlzZSBsZWFrcworICAgICAgICBpbnRvIGFuIGVhc2lseSB1bmRlcnN0
YW5kYWJsZSBsaXN0LgorICAgICAgICAoZ2V0X3RleHRfb2YpOgorICAgICAgICAoZ2V0X0NEQVRB
X29mKToKKyAgICAgICAgKGdhdGhlcl9mcmFtZXMpOgorICAgICAgICAoVmFsZ3JpbmRFcnJvcik6
CisgICAgICAgIChWYWxncmluZEVycm9yLl9faW5pdF9fKToKKyAgICAgICAgKFZhbGdyaW5kRXJy
b3IuX19zdHJfXyk6CisgICAgICAgIChWYWxncmluZEVycm9yLnVuaXF1ZV9zdHJpbmcpOgorICAg
ICAgICAoVmFsZ3JpbmRFcnJvci5lcnJvcl9oYXNoKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3Iu
X19oYXNoX18pOgorICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX2VxX18pOgorICAgICAgICAoTGVh
a0RldGVjdG9yVmFsZ3JpbmQpOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmQuX19pbml0
X18pOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmQuX3BhcnNlX2xlYWtzX291dHB1dCk6
CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZC5sZWFrc19maWxlc19pbl9yZXN1bHRzX2Rp
cmVjdG9yeSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZC5jbGVhbl9sZWFrc19maWxl
c19mcm9tX3Jlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5k
LnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwpOgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZF91bml0dGVzdC5weTogQWRkZWQuCisgICAg
ICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KToKKyAgICAgICAgKG1ha2VfbW9ja19pbmNv
bXBsZXRlX3ZhbGdyaW5kX291dHB1dCk6CisgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVz
dWx0cyk6CisgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0c19pbmNvbXBsZXRlKToK
KyAgICAgICAgKG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2VtcHR5KToKKyAgICAgICAgKG1h
a2VfbW9ja192YWxncmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCk6CisgICAgICAgIChMZWFrRGV0
ZWN0b3JWYWxncmluZFRlc3QpOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmRUZXN0LnRl
c3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9wYXNzKToKKyAgICAgICAgKExlYWtEZXRl
Y3RvclZhbGdyaW5kVGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfaW5jb21w
bGV0ZSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9hbmRf
cHJpbnRfbGVha3NfZGV0YWlsX2VtcHR5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5k
VGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfbWlzZm9ybWF0dGVkKToKKyAg
ICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5kVGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFr
c19kZXRhaWxfcGFzcyk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9w
YXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX2luY29tcGxldGUpOgorICAgICAgICAoTGVha0Rl
dGVjdG9yVmFsZ3JpbmRUZXN0LnRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9lbXB0
eSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9hbmRfcHJp
bnRfbGVha3NfZGV0YWlsX21pc2Zvcm1hdHRlZCk6CisKIDIwMTMtMTItMDggIFphbiBEb2JlcnNl
ayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtnZGJdIFVwZGF0ZSBwcmludGVy
cyBmb3IgV1RGOjpDU3RyaW5nLCBKU0M6OkpTU3RyaW5nCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0
ay5weQppbmRleCBmZWZlM2I0MTc0MDI3Zjg2NjU1N2RiNDI0ZGJiMWRlYzNjYzFmMTc5Li4wZDVk
Nzg0OTk0ZDkxZjFjNzU0ODYwYWVjNWE4M2JiNWMyY2FiOTBjIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9ndGsucHkKQEAgLTM4LDYgKzM4LDcgQEAgZnJvbSB3ZWJraXRweS5wb3J0LnB1bHNlYXVk
aW9fc2FuaXRpemVyIGltcG9ydCBQdWxzZUF1ZGlvU2FuaXRpemVyCiBmcm9tIHdlYmtpdHB5LnBv
cnQueHZmYmRyaXZlciBpbXBvcnQgWHZmYkRyaXZlcgogZnJvbSB3ZWJraXRweS5wb3J0Lndlc3Rv
bmRyaXZlciBpbXBvcnQgV2VzdG9uRHJpdmVyCiBmcm9tIHdlYmtpdHB5LnBvcnQubGludXhfZ2V0
X2NyYXNoX2xvZyBpbXBvcnQgR0RCQ3Jhc2hMb2dHZW5lcmF0b3IKK2Zyb20gd2Via2l0cHkucG9y
dC5sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgaW1wb3J0IExlYWtEZXRlY3RvclZhbGdyaW5kCiAKIAog
Y2xhc3MgR3RrUG9ydChQb3J0KToKQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3MgR3RrUG9ydChQb3J0
KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgc3Vw
ZXIoR3RrUG9ydCwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQogICAgICAgICBzZWxm
Ll9wdWxzZWF1ZGlvX3Nhbml0aXplciA9IFB1bHNlQXVkaW9TYW5pdGl6ZXIoKQorICAgICAgICBz
ZWxmLl9sZWFrZGV0ZWN0b3IgPSBMZWFrRGV0ZWN0b3JWYWxncmluZChzZWxmLl9maWxlc3lzdGVt
LCBzZWxmLnJlc3VsdHNfZGlyZWN0b3J5KCkpCiAKICAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9u
KCJsZWFrcyIpOgogICAgICAgICAgICAgaWYgbm90IHNlbGYuZ2V0X29wdGlvbigid3JhcHBlciIp
OgpAQCAtODEsNiArODMsOSBAQCBjbGFzcyBHdGtQb3J0KFBvcnQpOgogICAgICAgICBzdXBlcihH
dGtQb3J0LCBzZWxmKS5zZXR1cF90ZXN0X3J1bigpCiAgICAgICAgIHNlbGYuX3B1bHNlYXVkaW9f
c2FuaXRpemVyLnVubG9hZF9wdWxzZWF1ZGlvX21vZHVsZSgpCiAKKyAgICAgICAgaWYgc2VsZi5n
ZXRfb3B0aW9uKCJsZWFrcyIpOgorICAgICAgICAgICAgc2VsZi5fbGVha2RldGVjdG9yLmNsZWFu
X2xlYWtzX2ZpbGVzX2Zyb21fcmVzdWx0c19kaXJlY3RvcnkoKQorCiAgICAgZGVmIGNsZWFuX3Vw
X3Rlc3RfcnVuKHNlbGYpOgogICAgICAgICBzdXBlcihHdGtQb3J0LCBzZWxmKS5jbGVhbl91cF90
ZXN0X3J1bigpCiAgICAgICAgIHNlbGYuX3B1bHNlYXVkaW9fc2FuaXRpemVyLnJlc3RvcmVfcHVs
c2VhdWRpb19tb2R1bGUoKQpAQCAtMTE0LDcgKzExOSw3IEBAIGNsYXNzIEd0a1BvcnQoUG9ydCk6
CiAgICAgICAgICAgICAgICAgIi0tdW5kZWYtdmFsdWUtZXJyb3JzPW5vICIgXAogICAgICAgICAg
ICAgICAgICItLWdlbi1zdXBwcmVzc2lvbnM9YWxsICIgXAogICAgICAgICAgICAgICAgICItLXht
bD15ZXMgIiBcCi0gICAgICAgICAgICAgICAgIi0teG1sLWZpbGU9XCIlc1wiICIgXAorICAgICAg
ICAgICAgICAgICItLXhtbC1maWxlPSVzICIgXAogICAgICAgICAgICAgICAgICItLXN1cHByZXNz
aW9ucz0lcyIgJSAoeG1sZmlsZSwgc3VwcHJlc3Npb25zZmlsZSkKICAgICAgICAgcmV0dXJuIGVu
dmlyb25tZW50CiAKQEAgLTE1OSw2ICsxNjQsMTYgQEAgY2xhc3MgR3RrUG9ydChQb3J0KToKICAg
ICBkZWYgX3BvcnRfc3BlY2lmaWNfZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYpOgogICAgICAgICBy
ZXR1cm4gW3NlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aChw
KSwgJ1Rlc3RFeHBlY3RhdGlvbnMnKSBmb3IgcCBpbiByZXZlcnNlZChzZWxmLl9zZWFyY2hfcGF0
aHMoKSldCiAKKyAgICBkZWYgcHJpbnRfbGVha3Nfc3VtbWFyeShzZWxmKToKKyAgICAgICAgaWYg
bm90IHNlbGYuZ2V0X29wdGlvbignbGVha3MnKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAg
ICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjaywgYnV0IHdlIGRvbid0IGhhdmUgYSBiZXR0ZXIgd2F5
IHRvIGdldCB0aGlzIGluZm9ybWF0aW9uIGZyb20gdGhlIHdvcmtlcnMgeWV0CisgICAgICAgICMg
YmVjYXVzZSB3ZSdyZSBpbiB0aGUgbWFuYWdlciBwcm9jZXNzLgorICAgICAgICBsZWFrc19maWxl
cyA9IHNlbGYuX2xlYWtkZXRlY3Rvci5sZWFrc19maWxlc19pbl9yZXN1bHRzX2RpcmVjdG9yeSgp
CisgICAgICAgIGlmIG5vdCBsZWFrc19maWxlczoKKyAgICAgICAgICAgIHJldHVybgorICAgICAg
ICBzZWxmLl9sZWFrZGV0ZWN0b3IucGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbChsZWFrc19m
aWxlcykKKwogICAgICMgRklYTUU6IFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHNoYXJlIHRoaXMg
aW1wbG1lbnRhdGlvbiB3aXRoIEd0aywKICAgICAjIG9yIHRlYWNoIHJ1bi1sYXVuY2hlciBob3cg
dG8gY2FsbCBydW4tc2FmYXJpIGFuZCBtb3ZlIHRoaXMgZG93biB0byBQb3J0LgogICAgIGRlZiBz
aG93X3Jlc3VsdHNfaHRtbF9maWxlKHNlbGYsIHJlc3VsdHNfZmlsZW5hbWUpOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDlkOGEwYmJjOTQ5OTQ5YjlkYjEwZjgxNGIyZDUwOTljMDFmNmZmYwotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFs
Z3JpbmQucHkKQEAgLTAsMCArMSwyOTQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcg
RWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIEJhc2VkIG9uIGNvZGUgZnJv
bSBDaHJvbWl1bSwgY29weXJpZ2h0IGFzIGZvbGxvd3M6CisjCisjIENvcHlyaWdodCAoYykgMjAx
MyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIGNvbGxlY3Rp
b25zIGltcG9ydCBkZWZhdWx0ZGljdAoraW1wb3J0IGhhc2hsaWIKK2ltcG9ydCBsb2dnaW5nCitp
bXBvcnQgcmUKK2ltcG9ydCBzdWJwcm9jZXNzCitmcm9tIHhtbC5kb20ubWluaWRvbSBpbXBvcnQg
cGFyc2VTdHJpbmcKK2Zyb20geG1sLnBhcnNlcnMuZXhwYXQgaW1wb3J0IEV4cGF0RXJyb3IKKwor
X2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2RlZiBnZXRfdGV4dF9vZih0
b3Bfbm9kZSwgbmFtZSk6CisgICAgIiIiIFJldHVybnMgYWxsIHRleHQgaW4gYWxsIERPTSBub2Rl
cyB3aXRoIGEgY2VydGFpbiB8bmFtZXwgdGhhdCBhcmUgY2hpbGRyZW4gb2YgfHRvcF9ub2RlfC4g
IiIiCisKKyAgICB0ZXh0ID0gIiIKKyAgICBmb3Igbm9kZXNfbmFtZWQgaW4gdG9wX25vZGUuZ2V0
RWxlbWVudHNCeVRhZ05hbWUobmFtZSk6CisgICAgICAgIHRleHQgKz0gIiIuam9pbihbbm9kZS5k
YXRhIGZvciBub2RlIGluIG5vZGVzX25hbWVkLmNoaWxkTm9kZXMKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiBub2RlLm5vZGVUeXBlID09IG5vZGUuVEVYVF9OT0RFXSkKKyAgICByZXR1cm4g
dGV4dAorCisKK2RlZiBnZXRfQ0RBVEFfb2YodG9wX25vZGUsIG5hbWUpOgorICAgICIiIiBSZXR1
cm5zIGFsbCBDREFUQSBpbiBhbGwgRE9NIG5vZGVzIHdpdGggYSBjZXJ0YWluIHxuYW1lfCB0aGF0
IGFyZSBjaGlsZHJlbiBvZiB8dG9wX25vZGV8LiAiIiIKKworICAgIHRleHQgPSAiIgorICAgIGZv
ciBub2Rlc19uYW1lZCBpbiB0b3Bfbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZShuYW1lKToKKyAg
ICAgICAgdGV4dCArPSAiIi5qb2luKFtub2RlLmRhdGEgZm9yIG5vZGUgaW4gbm9kZXNfbmFtZWQu
Y2hpbGROb2RlcworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUubm9kZVR5cGUgPT0g
bm9kZS5DREFUQV9TRUNUSU9OX05PREVdKQorICAgIGlmICh0ZXh0ID09ICIiKToKKyAgICAgICAg
cmV0dXJuIE5vbmUKKyAgICByZXR1cm4gdGV4dAorCisjIENvbnN0YW50cyB0aGF0IGdpdmUgcmVh
bCBuYW1lcyB0byB0aGUgYWJicmV2aWF0aW9ucyBpbiB2YWxncmluZCBYTUwgb3V0cHV0LgorCitJ
TlNUUlVDVElPTl9QT0lOVEVSID0gImlwIgorT0JKRUNUX0ZJTEUgPSAib2JqIgorRlVOQ1RJT05f
TkFNRSA9ICJmbiIKK1NSQ19GSUxFX0RJUiA9ICJkaXIiCitTUkNfRklMRV9OQU1FID0gImZpbGUi
CitTUkNfTElORSA9ICJsaW5lIgorCisKK2RlZiBnYXRoZXJfZnJhbWVzKG5vZGUsIHNvdXJjZV9k
aXIpOgorICAgICAgICBmcmFtZV9kaWN0ID0gbGFtYmRhIGZyYW1lOiB7CisgICAgICAgICAgICBJ
TlNUUlVDVElPTl9QT0lOVEVSOiBnZXRfdGV4dF9vZihmcmFtZSwgSU5TVFJVQ1RJT05fUE9JTlRF
UiksCisgICAgICAgICAgICBPQkpFQ1RfRklMRTogZ2V0X3RleHRfb2YoZnJhbWUsIE9CSkVDVF9G
SUxFKSwKKyAgICAgICAgICAgIEZVTkNUSU9OX05BTUU6IGdldF90ZXh0X29mKGZyYW1lLCBGVU5D
VElPTl9OQU1FKSwKKyAgICAgICAgICAgIFNSQ19GSUxFX0RJUjogZ2V0X3RleHRfb2YoZnJhbWUs
IFNSQ19GSUxFX0RJUiksCisgICAgICAgICAgICBTUkNfRklMRV9OQU1FOiBnZXRfdGV4dF9vZihm
cmFtZSwgU1JDX0ZJTEVfTkFNRSksCisgICAgICAgICAgICBTUkNfTElORTogZ2V0X3RleHRfb2Yo
ZnJhbWUsIFNSQ19MSU5FKX0KKworICAgICAgICByZXR1cm4gW2ZyYW1lX2RpY3QoZnJhbWUpIGZv
ciBmcmFtZSBpbiBub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmcmFtZSIpXQorCisKK2NsYXNz
IFZhbGdyaW5kRXJyb3I6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX2RpciwgZXJy
b3Jfbm9kZSk6CisgICAgICAgIHNlbGYuX2tpbmQgPSBnZXRfdGV4dF9vZihlcnJvcl9ub2RlLCAi
a2luZCIpCisgICAgICAgIHNlbGYuX2JhY2t0cmFjZXMgPSBbXQorICAgICAgICBzZWxmLl9zdXBw
cmVzc2lvbiA9IE5vbmUKKyAgICAgICAgc2VsZi5fYWRkaXRpb25hbCA9IFtdCisKKyAgICAgICAg
IyBJdGVyYXRlIHRocm91Z2ggdGhlIG5vZGVzLCBwYXJzaW5nIDx3aGF0fGF1eHdoYXQ+PHN0YWNr
PiBwYWlycy4KKyAgICAgICAgZGVzY3JpcHRpb24gPSBOb25lCisgICAgICAgIGZvciBub2RlIGlu
IGVycm9yX25vZGUuY2hpbGROb2RlczoKKyAgICAgICAgICAgIGlmIG5vZGUubG9jYWxOYW1lID09
ICJ3aGF0IiBvciBub2RlLmxvY2FsTmFtZSA9PSAiYXV4d2hhdCI6CisgICAgICAgICAgICAgICAg
ZGVzY3JpcHRpb24gPSAiIi5qb2luKFtuLmRhdGEgZm9yIG4gaW4gbm9kZS5jaGlsZE5vZGVzCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBuLm5vZGVUeXBlID09IG4u
VEVYVF9OT0RFXSkKKyAgICAgICAgICAgIGVsaWYgbm9kZS5sb2NhbE5hbWUgPT0gInh3aGF0IjoK
KyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGdldF90ZXh0X29mKG5vZGUsICJ0ZXh0IikK
KyAgICAgICAgICAgIGVsaWYgbm9kZS5sb2NhbE5hbWUgPT0gInN0YWNrIjoKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgZGVzY3JpcHRpb24KKyAgICAgICAgICAgICAgICBzZWxmLl9iYWNrdHJhY2Vz
LmFwcGVuZChbZGVzY3JpcHRpb24sIGdhdGhlcl9mcmFtZXMobm9kZSwgc291cmNlX2RpcildKQor
ICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gTm9uZQorICAgICAgICAgICAgZWxpZiBub2Rl
LmxvY2FsTmFtZSA9PSAib3JpZ2luIjoKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGdl
dF90ZXh0X29mKG5vZGUsICJ3aGF0IikKKyAgICAgICAgICAgICAgICBzdGFjayA9IG5vZGUuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoInN0YWNrIilbMF0KKyAgICAgICAgICAgICAgICBmcmFtZXMgPSBn
YXRoZXJfZnJhbWVzKHN0YWNrLCBzb3VyY2VfZGlyKQorICAgICAgICAgICAgICAgIHNlbGYuX2Jh
Y2t0cmFjZXMuYXBwZW5kKFtkZXNjcmlwdGlvbiwgZnJhbWVzXSkKKyAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiA9IE5vbmUKKyAgICAgICAgICAgICAgICBzdGFjayA9IE5vbmUKKyAgICAgICAg
ICAgICAgICBmcmFtZXMgPSBOb25lCisgICAgICAgICAgICBlbGlmIGRlc2NyaXB0aW9uIGFuZCBu
b2RlLmxvY2FsTmFtZSAhPSBOb25lOgorICAgICAgICAgICAgICAgICMgVGhlIGxhc3Rlc3QgZGVz
Y3JpcHRpb24gaGFzIG5vIHN0YWNrLCBlLmcuICJBZGRyZXNzIDB4MjggaXMgdW5rbm93biIuCisg
ICAgICAgICAgICAgICAgc2VsZi5fYWRkaXRpb25hbC5hcHBlbmQoZGVzY3JpcHRpb24pCisgICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBOb25lCisKKyAgICAgICAgICAgIGlmIG5vZGUubG9j
YWxOYW1lID09ICJzdXBwcmVzc2lvbiI6CisgICAgICAgICAgICAgICAgc2VsZi5fc3VwcHJlc3Np
b24gPSBnZXRfQ0RBVEFfb2Yobm9kZSwgInJhd3RleHQiKQorCisgICAgZGVmIF9fc3RyX18oc2Vs
Zik6CisgICAgICAgIG91dHB1dCA9IHNlbGYuX2tpbmQgKyAiXG4iCisgICAgICAgIGZvciBiYWNr
dHJhY2UgaW4gc2VsZi5fYmFja3RyYWNlczoKKyAgICAgICAgICAgIG91dHB1dCArPSBiYWNrdHJh
Y2VbMF0gKyAiXG4iCisgICAgICAgICAgICBmaWx0ZXIgPSBzdWJwcm9jZXNzLlBvcGVuKCJjKytm
aWx0IC1uIiwgc3RkaW49c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWxsPVRydWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9mZHM9VHJ1ZSkKKyAgICAgICAgICAgIGJ1ZiA9
ICIiCisgICAgICAgICAgICBmb3IgZnJhbWUgaW4gYmFja3RyYWNlWzFdOgorICAgICAgICAgICAg
ICAgIGJ1ZiArPSAoZnJhbWVbRlVOQ1RJT05fTkFNRV0gb3IgZnJhbWVbSU5TVFJVQ1RJT05fUE9J
TlRFUl0pICsgIlxuIgorICAgICAgICAgICAgKHN0ZG91dGJ1Ziwgc3RkZXJyYnVmKSA9IGZpbHRl
ci5jb21tdW5pY2F0ZShidWYuZW5jb2RlKCdsYXRpbi0xJykpCisgICAgICAgICAgICBkZW1hbmds
ZWRfbmFtZXMgPSBzdGRvdXRidWYuc3BsaXQoIlxuIikKKworICAgICAgICAgICAgaSA9IDAKKyAg
ICAgICAgICAgIGZvciBmcmFtZSBpbiBiYWNrdHJhY2VbMV06CisgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICgiICAiICsgZGVtYW5nbGVkX25hbWVzW2ldKQorICAgICAgICAgICAgICAgIGkgPSBp
ICsgMQorCisgICAgICAgICAgICAgICAgaWYgZnJhbWVbU1JDX0ZJTEVfRElSXSAhPSAiIjoKKyAg
ICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICgiICgiICsgZnJhbWVbU1JDX0ZJTEVfRElSXSAr
ICIvIiArIGZyYW1lW1NSQ19GSUxFX05BTUVdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiOiIgKyBmcmFtZVtTUkNfTElORV0gKyAiKSIpCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICIgKCIgKyBmcmFtZVtPQkpFQ1RfRklMRV0g
KyAiKSIKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIlxuIgorCisgICAgICAgIGZvciBhZGRp
dGlvbmFsIGluIHNlbGYuX2FkZGl0aW9uYWw6CisgICAgICAgICAgICBvdXRwdXQgKz0gYWRkaXRp
b25hbCArICJcbiIKKworICAgICAgICBhc3NlcnQgc2VsZi5fc3VwcHJlc3Npb24gIT0gTm9uZSwg
IllvdXIgVmFsZ3JpbmQgZG9lc24ndCBnZW5lcmF0ZSAiIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3VwcHJlc3Npb25zIC0gaXMgaXQgdG9vIG9sZD8iCisK
KyAgICAgICAgb3V0cHV0ICs9ICJTdXBwcmVzc2lvbiAoZXJyb3IgaGFzaD0jJTAxNlgjKTpcbiIg
JSBzZWxmLmVycm9yX2hhc2goKQorCisgICAgICAgICMgV2lkZW4gdGhlIHN1cHByZXNzaW9ucyBz
bGlnaHRseS4KKyAgICAgICAgc3VwcCA9IHNlbGYuX3N1cHByZXNzaW9uCisgICAgICAgIHN1cHAg
PSBzdXBwLnJlcGxhY2UoImZ1bjpfWm53aiIsICJmdW46X1pudyoiKQorICAgICAgICBzdXBwID0g
c3VwcC5yZXBsYWNlKCJmdW46X1pud20iLCAiZnVuOl9abncqIikKKyAgICAgICAgc3VwcCA9IHN1
cHAucmVwbGFjZSgiZnVuOl9abmFqIiwgImZ1bjpfWm5hKiIpCisgICAgICAgIHN1cHAgPSBzdXBw
LnJlcGxhY2UoImZ1bjpfWm5hbSIsICJmdW46X1puYSoiKQorCisgICAgICAgICMgU3BsaXQgaW50
byBsaW5lcyBzbyB3ZSBjYW4gZW5mb3JjZSBsZW5ndGggbGltaXRzLgorICAgICAgICBzdXBwbGlu
ZXMgPSBzdXBwLnNwbGl0KCJcbiIpCisgICAgICAgIHN1cHAgPSBOb25lICAjIHRvIGF2b2lkIHJl
LXVzZQorCisgICAgICAgICMgVHJ1bmNhdGUgYXQgbGluZSAyNiAoVkdfTUFYX1NVUFBfQ0FMTEVS
UyBwbHVzIDIgZm9yIG5hbWUgYW5kIHR5cGUpCisgICAgICAgICMgKGh0dHBzOi8vYnVncy5rZGUu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk0NjggcHJvcG9zZXMgcmFpc2luZworICAgICAgICAjIFZH
X01BWF9TVVBQX0NBTExFUlMsIGJ1dCB3ZSdyZSBwcm9iYWJseSBmaW5lIHdpdGggaXQgYXMgaXMu
KQorICAgICAgICBuZXdsZW4gPSBtaW4oMjYsIGxlbihzdXBwbGluZXMpKQorCisgICAgICAgIGlm
IChsZW4oc3VwcGxpbmVzKSA+IG5ld2xlbik6CisgICAgICAgICAgICBzdXBwbGluZXMgPSBzdXBw
bGluZXNbMDpuZXdsZW5dCisgICAgICAgICAgICBzdXBwbGluZXMuYXBwZW5kKCJ9IikKKworICAg
ICAgICBmb3IgZnJhbWUgaW4gcmFuZ2UobGVuKHN1cHBsaW5lcykpOgorICAgICAgICAgICAgIyBS
ZXBsYWNlIHRoZSBhbHdheXMtY2hhbmdpbmcgYW5vbnltb3VzIG5hbWVzcGFjZSBwcmVmaXggd2l0
aCAiKiIuCisgICAgICAgICAgICBtID0gcmUubWF0Y2goIiggK2Z1bjopX1pOLipfR0xPQkFMX19O
Xy4qXC5jY18iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAiWzAtOWEtZkEtRl17OH1fWzAt
OWEtZkEtRl17OH0oLiopIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwbGluZXNbZnJh
bWVdKQorICAgICAgICAgICAgaWYgbToKKyAgICAgICAgICAgICAgICBzdXBwbGluZXNbZnJhbWVd
ID0gIioiLmpvaW4obS5ncm91cHMoKSkKKworICAgICAgICByZXR1cm4gb3V0cHV0ICsgIlxuIi5q
b2luKHN1cHBsaW5lcykgKyAiXG4iCisKKyAgICBkZWYgdW5pcXVlX3N0cmluZyhzZWxmKToKKyAg
ICAgICAgcmVwID0gc2VsZi5fa2luZCArICIgIgorICAgICAgICBmb3IgYmFja3RyYWNlIGluIHNl
bGYuX2JhY2t0cmFjZXM6CisgICAgICAgICAgICBmb3IgZnJhbWUgaW4gYmFja3RyYWNlWzFdOgor
ICAgICAgICAgICAgICAgIHJlcCArPSBmcmFtZVtGVU5DVElPTl9OQU1FXQorCisgICAgICAgICAg
ICAgICAgaWYgZnJhbWVbU1JDX0ZJTEVfRElSXSAhPSAiIjoKKyAgICAgICAgICAgICAgICAgICAg
cmVwICs9IGZyYW1lW1NSQ19GSUxFX0RJUl0gKyAiLyIgKyBmcmFtZVtTUkNfRklMRV9OQU1FXQor
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJlcCArPSBmcmFtZVtP
QkpFQ1RfRklMRV0KKyAgICAgICAgcmV0dXJuIHJlcAorCisgICAgZGVmIGVycm9yX2hhc2goc2Vs
Zik6CisgICAgICAgICMgVGhpcyBpcyBhIGRldmljZS1pbmRlcGVuZGVudCBoYXNoIGlkZW50aWZ5
aW5nIHRoZSBzdXBwcmVzc2lvbi4KKyAgICAgICAgIyBCeSBwcmludGluZyBvdXQgdGhpcyBoYXNo
IHdlIGNhbiBmaW5kIGR1cGxpY2F0ZSByZXBvcnRzIGJldHdlZW4gdGVzdHMgYW5kCisgICAgICAg
ICMgZGlmZmVyZW50IHNoYXJkcyBydW5uaW5nIG9uIG11bHRpcGxlIGJ1aWxkYm90cworICAgICAg
ICByZXR1cm4gaW50KGhhc2hsaWIubWQ1KHNlbGYudW5pcXVlX3N0cmluZygpKS5oZXhkaWdlc3Qo
KVs6MTZdLCAxNikKKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGhh
c2goc2VsZi51bmlxdWVfc3RyaW5nKCkpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIHJocyk6Cisg
ICAgICAgIHJldHVybiBzZWxmLnVuaXF1ZV9zdHJpbmcoKSA9PSByaHMKKworCitjbGFzcyBMZWFr
RGV0ZWN0b3JWYWxncmluZChvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVz
eXN0ZW0sIHNvdXJjZV9kaXIpOgorICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gZmlsZXN5c3Rl
bQorICAgICAgICBzZWxmLl9zb3VyY2VfZGlyID0gc291cmNlX2RpcgorCisgICAgICAgICMgQ29u
dGFpbnMgdGhlIHNldCBvZiB1bmlxdWUgZXJyb3JzLgorICAgICAgICBzZWxmLl9lcnJvcnMgPSBz
ZXQoKQorICAgICAgICAjIENvbnRhaW5zIGFsbCBzdXBwcmVzc2lvbnMgdXNlZC4KKyAgICAgICAg
c2VsZi5fc3VwcHJlc3Npb25zID0gZGVmYXVsdGRpY3QoaW50KQorCisgICAgZGVmIF9wYXJzZV9s
ZWFrc19vdXRwdXQoc2VsZiwgbGVha3Nfb3V0cHV0KToKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcGFyc2VkX3N0cmluZyA9IHBhcnNlU3RyaW5nKGxlYWtzX291dHB1dCkKKyAgICAgICAgZXhj
ZXB0IEV4cGF0RXJyb3IsIGU6CisgICAgICAgICAgICBwYXJzZV9mYWlsZWQgPSBUcnVlCisgICAg
ICAgICAgICBfbG9nLmVycm9yKCJjb3VsZCBub3QgcGFyc2UgJXM6ICVzIiAlIChsZWFrc19vdXRw
dXQsIGUpKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgY3VyX3JlcG9ydF9lcnJvcnMg
PSBzZXQoKQorCisgICAgICAgIGNvbW1hbmRsaW5lID0gTm9uZQorICAgICAgICBwcmVhbWJsZSA9
IHBhcnNlZF9zdHJpbmcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInByZWFtYmxlIilbMF0KKyAgICAg
ICAgZm9yIG5vZGUgaW4gcHJlYW1ibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmUiKToKKyAg
ICAgICAgICAgIGlmIG5vZGUubG9jYWxOYW1lID09ICJsaW5lIjoKKyAgICAgICAgICAgICAgICBm
b3IgeCBpbiBub2RlLmNoaWxkTm9kZXM6CisgICAgICAgICAgICAgICAgICAgIGlmIHgubm9kZVR5
cGUgPT0gbm9kZS5URVhUX05PREUgYW5kICJDb21tYW5kIiBpbiB4LmRhdGE6CisgICAgICAgICAg
ICAgICAgICAgICAgICBjb21tYW5kbGluZSA9IHguZGF0YQorICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKKworICAgICAgICByYXdfZXJyb3JzID0gcGFyc2VkX3N0cmluZy5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiZXJyb3IiKQorICAgICAgICBmb3IgcmF3X2Vycm9yIGluIHJhd19lcnJvcnM6
CisgICAgICAgICAgICAjIElnbm9yZSAicG9zc2libGUiIGxlYWtzIGFuZCBJbnZhbGlkUmVhZC9X
cml0ZSBieSBkZWZhdWx0LgorICAgICAgICAgICAgaWYgKGdldF90ZXh0X29mKHJhd19lcnJvciwg
ImtpbmQiKSAhPSAiTGVha19Qb3NzaWJseUxvc3QiKSBhbmQgXAorICAgICAgICAgICAgICAgIChn
ZXRfdGV4dF9vZihyYXdfZXJyb3IsICJraW5kIikgIT0gIkxlYWtfU3RpbGxSZWFjaGFibGUiKSBh
bmQgXAorICAgICAgICAgICAgICAgIChnZXRfdGV4dF9vZihyYXdfZXJyb3IsICJraW5kIikgIT0g
IkludmFsaWRXcml0ZSIpIGFuZCBcCisgICAgICAgICAgICAgICAgKGdldF90ZXh0X29mKHJhd19l
cnJvciwgImtpbmQiKSAhPSAiSW52YWxpZFJlYWQiKToKKyAgICAgICAgICAgICAgICBlcnJvciA9
IFZhbGdyaW5kRXJyb3Ioc2VsZi5fc291cmNlX2RpciwgcmF3X2Vycm9yKQorICAgICAgICAgICAg
ICAgIGlmIGVycm9yIG5vdCBpbiBjdXJfcmVwb3J0X2Vycm9yczoKKyAgICAgICAgICAgICAgICAg
ICAgIyBXZSBoYXZlbid0IHNlZW4gc3VjaCBlcnJvcnMgZG9pbmcgdGhpcyByZXBvcnQgeWV0Li4u
CisgICAgICAgICAgICAgICAgICAgIGlmIGVycm9yIGluIHNlbGYuX2Vycm9yczoKKyAgICAgICAg
ICAgICAgICAgICAgICAgICMgLi4uIGJ1dCB3ZSBzYXcgaXQgaW4gZWFybGllciByZXBvcnRzLCBl
LmcuIHByZXZpb3VzIFVJIHRlc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cl9yZXBvcnRf
ZXJyb3JzLmFkZCgiVGhpcyBlcnJvciB3YXMgYWxyZWFkeSBwcmludGVkIGluICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic29tZSBvdGhlciB0ZXN0LCBz
ZWUgJ2hhc2g9IyUwMTZYIyciICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9y
LmVycm9yX2hhc2goKSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgICMgLi4uIGFuZCB3ZSBoYXZlbid0IHNlZW4gaXQgaW4gb3RoZXIgdGVzdHMgYXMg
d2VsbAorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXJyb3JzLmFkZChlcnJvcikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGN1cl9yZXBvcnRfZXJyb3JzLmFkZChlcnJvcikKKworICAg
ICAgICBzdXBwY291bnRsaXN0ID0gcGFyc2VkX3N0cmluZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
c3VwcGNvdW50cyIpCisgICAgICAgIGlmIGxlbihzdXBwY291bnRsaXN0KSA+IDA6CisgICAgICAg
ICAgICBzdXBwY291bnRsaXN0ID0gc3VwcGNvdW50bGlzdFswXQorICAgICAgICAgICAgZm9yIG5v
ZGUgaW4gc3VwcGNvdW50bGlzdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFpciIpOgorICAgICAg
ICAgICAgICAgIGNvdW50ID0gZ2V0X3RleHRfb2Yobm9kZSwgImNvdW50IikKKyAgICAgICAgICAg
ICAgICBuYW1lID0gZ2V0X3RleHRfb2Yobm9kZSwgIm5hbWUiKQorICAgICAgICAgICAgICAgIHNl
bGYuX3N1cHByZXNzaW9uc1tuYW1lXSArPSBpbnQoY291bnQpCisKKyAgICAgICAgcmV0dXJuIGN1
cl9yZXBvcnRfZXJyb3JzCisKKyAgICBkZWYgbGVha3NfZmlsZXNfaW5fcmVzdWx0c19kaXJlY3Rv
cnkoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVtLmdsb2Ioc2VsZi5fZmls
ZXN5c3RlbS5qb2luKHNlbGYuX3NvdXJjZV9kaXIsICJkcnQtKi1sZWFrcy54bWwiKSkKKworICAg
IGRlZiBjbGVhbl9sZWFrc19maWxlc19mcm9tX3Jlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgorICAg
ICAgICAjIFJlbW92ZSBvbGQgVmFsZ3JpbmQgeG1sIGZpbGVzIGJlZm9yZSBzdGFydGluZyB0aGlz
IHJ1bi4KKyAgICAgICAgbGVha3NfZmlsZXMgPSBzZWxmLmxlYWtzX2ZpbGVzX2luX3Jlc3VsdHNf
ZGlyZWN0b3J5KCkKKyAgICAgICAgZm9yIGYgaW4gbGVha3NfZmlsZXM6CisgICAgICAgICAgICBz
ZWxmLl9maWxlc3lzdGVtLnJlbW92ZShmKQorCisgICAgZGVmIHBhcnNlX2FuZF9wcmludF9sZWFr
c19kZXRhaWwoc2VsZiwgbGVha3NfZmlsZXMpOgorICAgICAgICBmb3IgZiBpbiBsZWFrc19maWxl
czoKKyAgICAgICAgICAgIGxlYWtzX291dHB1dCA9IHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF9iaW5h
cnlfZmlsZShmKQorICAgICAgICAgICAgZGV0ZWN0ZWRfbGVha3MgPSBzZWxmLl9wYXJzZV9sZWFr
c19vdXRwdXQobGVha3Nfb3V0cHV0KQorCisgICAgICAgIF9sb2cuaW5mbygiLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKQorICAgICAgICBfbG9n
LmluZm8oIlN1cHByZXNzaW9ucyB1c2VkOiIpCisgICAgICAgIF9sb2cuaW5mbygiICBjb3VudCBu
YW1lIikKKyAgICAgICAgZm9yIChuYW1lLCBjb3VudCkgaW4gc29ydGVkKHNlbGYuX3N1cHByZXNz
aW9ucy5pdGVtcygpLCBrZXk9bGFtYmRhIChrLCB2KTogKHYsIGspKToKKyAgICAgICAgICAgIF9s
b2cuaW5mbygiJTdkICVzIiAlIChjb3VudCwgbmFtZSkpCisgICAgICAgIF9sb2cuaW5mbygiLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKQorCisg
ICAgICAgIGlmIHNlbGYuX2Vycm9yczoKKyAgICAgICAgICAgIF9sb2cuaW5mbygiVmFsZ3JpbmQg
ZGV0ZWN0ZWQgJXMgbGVha3M6IiAlIGxlbihzZWxmLl9lcnJvcnMpKQorICAgICAgICAgICAgZm9y
IGxlYWsgaW4gc2VsZi5fZXJyb3JzOgorICAgICAgICAgICAgICAgIF9sb2cuaW5mbyhsZWFrKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxn
cmluZF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0
b3JfdmFsZ3JpbmRfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMwZGNiYTUyMTE0ZTc5N2NhZmI2
MTNmYzI5M2Q0YTYzYzNjZjc5NwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmRfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw4
MTIgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMK
KyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CisK
K2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tG
aWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBv
cnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRweS5wb3J0LmxlYWtkZXRlY3Rvcl92YWxncmlu
ZCBpbXBvcnQgTGVha0RldGVjdG9yVmFsZ3JpbmQKKworCitkZWYgbWFrZV9tb2NrX3ZhbGdyaW5k
X291dHB1dChwcm9jZXNzX25hbWUsIHBpZCwgdXVpZCk6CisgICAgcmV0dXJuICIiIjw/eG1sIHZl
cnNpb249IjEuMCI/PgorCis8dmFsZ3JpbmRvdXRwdXQ+CisKKzxwcm90b2NvbHZlcnNpb24+NDwv
cHJvdG9jb2x2ZXJzaW9uPgorPHByb3RvY29sdG9vbD5tZW1jaGVjazwvcHJvdG9jb2x0b29sPgor
Cis8cHJlYW1ibGU+CisgIDxsaW5lPk1lbWNoZWNrLCBhIG1lbW9yeSBlcnJvciBkZXRlY3Rvcjwv
bGluZT4KKyAgPGxpbmU+Q29weXJpZ2h0IChDKSAyMDAyLTIwMTEsIGFuZCBHTlUgR1BMJ2QsIGJ5
IEp1bGlhbiBTZXdhcmQgZXQgYWwuPC9saW5lPgorICA8bGluZT5Vc2luZyBWYWxncmluZC0zLjcu
MCBhbmQgTGliVkVYOyByZXJ1biB3aXRoIC1oIGZvciBjb3B5cmlnaHQgaW5mbzwvbGluZT4KKyAg
PGxpbmU+Q29tbWFuZDogL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9n
cmFtcy97cHJvY2Vzc19uYW1lfSAtPC9saW5lPgorPC9wcmVhbWJsZT4KKworPHBpZD57cGlkfTwv
cGlkPgorPHBwaWQ+MTg1Nzc8L3BwaWQ+Cis8dG9vbD5tZW1jaGVjazwvdG9vbD4KKworPGFyZ3M+
CisgIDx2YXJndj4KKyAgICA8ZXhlPi91c3IvYmluL3ZhbGdyaW5kLmJpbjwvZXhlPgorICAgIDxh
cmc+LS10b29sPW1lbWNoZWNrPC9hcmc+CisgICAgPGFyZz4tLW51bS1jYWxsZXJzPTQwPC9hcmc+
CisgICAgPGFyZz4tLWRlbWFuZ2xlPW5vPC9hcmc+CisgICAgPGFyZz4tLXRyYWNlLWNoaWxkcmVu
PW5vPC9hcmc+CisgICAgPGFyZz4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L2FyZz4KKyAgICA8
YXJnPi0tbGVhay1jaGVjaz15ZXM8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1yZXNvbHV0aW9uPWhp
Z2g8L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1wb3NzaWJseS1sb3N0PW5vPC9hcmc+CisgICAgPGFy
Zz4tLXNob3ctcmVhY2hhYmxlPW5vPC9hcmc+CisgICAgPGFyZz4tLWxlYWstY2hlY2s9ZnVsbDwv
YXJnPgorICAgIDxhcmc+LS11bmRlZi12YWx1ZS1lcnJvcnM9bm88L2FyZz4KKyAgICA8YXJnPi0t
Z2VuLXN1cHByZXNzaW9ucz1hbGw8L2FyZz4KKyAgICA8YXJnPi0teG1sPXllczwvYXJnPgorICAg
IDxhcmc+LS14bWwtZmlsZT0vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xh
eW91dC10ZXN0LXJlc3VsdHMvZHJ0LXtwaWR9LXt1dWlkfS1sZWFrcy54bWw8L2FyZz4KKyAgICA8
YXJnPi0tc3VwcHJlc3Npb25zPS9ob21lL3VzZXIvV2ViS2l0L1Rvb2xzL1NjcmlwdHMvdmFsZ3Jp
bmQvc3VwcHJlc3Npb25zLnR4dDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L3Vzci9s
aWIvdmFsZ3JpbmQvZGViaWFuLWxpYmM2LWRiZy5zdXBwPC9hcmc+CisgIDwvdmFyZ3Y+CisgIDxh
cmd2PgorICAgIDxleGU+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9n
cmFtcy97cHJvY2Vzc19uYW1lfTwvZXhlPgorICAgIDxhcmc+LTwvYXJnPgorICA8L2FyZ3Y+Cis8
L2FyZ3M+CisKKzxzdGF0dXM+CisgIDxzdGF0ZT5SVU5OSU5HPC9zdGF0ZT4KKyAgPHRpbWU+MDA6
MDA6MDA6MDAuMDI0IDwvdGltZT4KKzwvc3RhdHVzPgorCisKKzxzdGF0dXM+CisgIDxzdGF0ZT5G
SU5JU0hFRDwvc3RhdGU+CisgIDx0aW1lPjAwOjAwOjAwOjU0LjE4NiA8L3RpbWU+Cis8L3N0YXR1
cz4KKworPGVycm9yPgorICA8dW5pcXVlPjB4MWE0PC91bmlxdWU+CisgIDx0aWQ+MTwvdGlkPgor
ICA8a2luZD5MZWFrX0RlZmluaXRlbHlMb3N0PC9raW5kPgorICA8eHdoYXQ+CisgICAgPHRleHQ+
OCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQy
MSBvZiA3LDk3MjwvdGV4dD4KKyAgICA8bGVha2VkYnl0ZXM+ODwvbGVha2VkYnl0ZXM+CisgICAg
PGxlYWtlZGJsb2Nrcz4xPC9sZWFrZWRibG9ja3M+CisgIDwveHdoYXQ+CisgIDxzdGFjaz4KKyAg
ICA8ZnJhbWU+CisgICAgICA8aXA+MHg0QzJBRjhFPC9pcD4KKyAgICAgIDxvYmo+L3Vzci9saWIv
dmFsZ3JpbmQvdmdwcmVsb2FkX21lbWNoZWNrLWFtZDY0LWxpbnV4LnNvPC9vYmo+CisgICAgICA8
Zm4+X1pud208L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4Njgz
OURFQzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVh
c2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk5T
dDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tl
cjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTRE
b2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVf
U0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2Rh
dGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb248L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZy
YW1lPgorICAgICAgPGlwPjB4NjFFN0IwMzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2Vi
S2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8
L29iaj4KKyAgICAgIDxmbj53ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXc8L2ZuPgorICAg
IDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFDQkE2RDwvaXA+CisgICAgICA8
b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0
Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk42V2ViS2l0MTdGcmFtZUxvYWRl
ckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJD
b3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNz
UmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25F
RUU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgzREY1Mjwv
aXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxp
YnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29y
ZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJl
cXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0
ZUVFRVBGdlB2UzNfUzlfYkVTQV88L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAg
ICAgPGlwPjB4NjgxN0VGQzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktp
dEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAg
ICAgIDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJF
UE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzlGb3JtU3RhdGVFRUU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAg
PGlwPjB4NjgxODcyOTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1
aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAg
IDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExvYWRlckU8
L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgxOEEzQTwvaXA+
CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMv
bGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTEx
RnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEU8L2ZuPgorICAgIDwvZnJh
bWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFFMzE0ODwvaXA+CisgICAgICA8b2JqPi9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMu
MC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj53ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpPC9m
bj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQ0Q0JDOTwvaXA+Cisg
ICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMv
RHVtcFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5fWkw3cnVuVGVzdFJLU3M8L2ZuPgorICAg
IDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDRDRUQ2PC9pcD4KKyAgICAgIDxv
Ymo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVu
ZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2PC9mbj4K
KyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQzQTJEMzwvaXA+CisgICAg
ICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVt
cFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5tYWluPC9mbj4KKyAgICA8L2ZyYW1lPgorICA8
L3N0YWNrPgorICA8c3VwcHJlc3Npb24+CisgICAgPHNuYW1lPmluc2VydF9hX3N1cHByZXNzaW9u
X25hbWVfaGVyZTwvc25hbWU+CisgICAgPHNraW5kPk1lbWNoZWNrOkxlYWs8L3NraW5kPgorICAg
IDxzZnJhbWU+IDxmdW4+X1pud208L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5f
Wk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hl
Y2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFf
MTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2
UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55
X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb248L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNm
cmFtZT4gPGZ1bj53ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXc8L2Z1bj4gPC9zZnJhbWU+
CisgICAgPHNmcmFtZT4gPGZ1bj5fWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9u
QWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9y
bVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUU8L2Z1bj4gPC9zZnJh
bWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tO
YXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRMb2Fk
ZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV88L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIy
MmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxv
YWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUU8L2Z1bj4gPC9zZnJhbWU+
CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTRE
b2N1bWVudExvYWRlckU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2Vi
Q29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEU8L2Z1bj4gPC9z
ZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj53ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpPC9mdW4+
IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pMN3J1blRlc3RSS1NzPC9mdW4+IDwvc2Zy
YW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2Z1bj4g
PC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5tYWluPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxy
YXd0ZXh0PgorPCFbQ0RBVEFbCit7eworICAgPGluc2VydF9hX3N1cHByZXNzaW9uX25hbWVfaGVy
ZT4KKyAgIE1lbWNoZWNrOkxlYWsKKyAgIGZ1bjpfWm53bQorICAgZnVuOl9aTlN0MTRfRnVuY3Rp
b25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05h
dmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3VtZW50TG9h
ZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9iRVNDX0VV
bE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0lfU3Qx
OF9NYW5hZ2VyX29wZXJhdGlvbgorICAgZnVuOndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25l
dworICAgZnVuOl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktO
UzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVT
dDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJDb3JlMTNQ
b2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNlUmVxdWVz
dEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVF
UEZ2UHZTM19TOV9iRVNBXworICAgZnVuOl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIybG9hZFdp
dGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9hZFR5cGVF
TjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRQorICAgZnVuOl9aTjdXZWJDb3JlMTFG
cmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVyRQorICAgZnVuOl9aTjdXZWJDb3Jl
MTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RQorICAgZnVuOndlYmtp
dF93ZWJfZnJhbWVfbG9hZF91cmkKKyAgIGZ1bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1bjpfWkwy
MHJ1blRlc3RpbmdTZXJ2ZXJMb29wdgorICAgZnVuOm1haW4KK319CitdXT4KKyAgICA8L3Jhd3Rl
eHQ+CisgIDwvc3VwcHJlc3Npb24+Cis8L2Vycm9yPgorCis8ZXJyb3I+CisgIDx1bmlxdWU+MHgx
YTU8L3VuaXF1ZT4KKyAgPHRpZD4xPC90aWQ+CisgIDxraW5kPkxlYWtfRGVmaW5pdGVseUxvc3Q8
L2tpbmQ+CisgIDx4d2hhdD4KKyAgICA8dGV4dD44IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZp
bml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgNDIyIG9mIDcsOTcyPC90ZXh0PgorICAgIDxsZWFr
ZWRieXRlcz44PC9sZWFrZWRieXRlcz4KKyAgICA8bGVha2VkYmxvY2tzPjE8L2xlYWtlZGJsb2Nr
cz4KKyAgPC94d2hhdD4KKyAgPHN0YWNrPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDRDMkFG
OEU8L2lwPgorICAgICAgPG9iaj4vdXNyL2xpYi92YWxncmluZC92Z3ByZWxvYWRfbWVtY2hlY2st
YW1kNjQtbGludXguc288L29iaj4KKyAgICAgIDxmbj5fWm53bTwvZm4+CisgICAgPC9mcmFtZT4K
KyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODM5RDBDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNv
LjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFu
YWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktOUzFf
MTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEyUG9saWN5QWN0aW9uRUVTNl9FVWxTN19FX0Ux
MF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0NfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZm4+
CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUU3QjAzPC9pcD4KKyAg
ICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3
ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfcG9saWN5
X2RlY2lzaW9uX25ldzwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+
MHg2MUNCNTI3PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQv
UmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZu
Pl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzFkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlRVJLTjdXZWJDb3JlMTZSZXNvdXJjZVJlc3BvbnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1
ZXN0RVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFPC9mbj4KKyAgICA8L2ZyYW1l
PgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY4MzlFQzA8L2lwPgorICAgICAgPG9iaj4vaG9t
ZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAu
c28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNo
ZWNrQ29udGVudFBvbGljeUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TXzEyUG9saWN5
QWN0aW9uRUVTNF88L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4
NjgwMkY2RTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1Jl
bGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5f
Wk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxNnJlc3BvbnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVk
UmVzb3VyY2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAg
IDxmcmFtZT4KKyAgICAgIDxpcD4weDY3RTU5RTA8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2Vy
L1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4x
OS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNvcmUxN0NhY2hlZFJhd1Jlc291cmNlMTZyZXNw
b25zZVJlY2VpdmVkRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZm4+CisgICAgPC9mcmFtZT4K
KyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODRDMjM3PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNv
LjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTdTdWJyZXNvdXJjZUxvYWRlcjE4
ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2Rjk1ODQ4PC9pcD4KKyAgICAgIDxvYmo+
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlTDE5c2VuZFJlcXVlc3RD
YWxsYmFja0VQOF9HT2JqZWN0UDEzX0dBc3luY1Jlc3VsdFB2PC9mbj4KKyAgICA8L2ZyYW1lPgor
ICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDhFMkQ2Q0E8L2lwPgorICAgICAgPG9iaj4vaG9tZS91
c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvUm9vdC9saWI2NC9saWJnaW8tMi4w
LnNvLjAuMzgwMC4wPC9vYmo+CisgICAgICA8Zm4+Z190YXNrX3JldHVybl9ub3c8L2ZuPgorICAg
ICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNl
L2dsaWItMi4zOC4wL2dpbzwvZGlyPgorICAgICAgPGZpbGU+Z3Rhc2suYzwvZmlsZT4KKyAgICAg
IDxsaW5lPjExMDg8L2xpbmU+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+
MHg4RTJENkU4PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2lvLTIuMC5zby4wLjM4MDAuMDwvb2JqPgorICAg
ICAgPGZuPmNvbXBsZXRlX2luX2lkbGVfY2I8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dpbzwvZGly
PgorICAgICAgPGZpbGU+Z3Rhc2suYzwvZmlsZT4KKyAgICAgIDxsaW5lPjExMTc8L2xpbmU+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg5M0E2MkY0PC9pcD4KKyAgICAg
IDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGli
NjQvbGliZ2xpYi0yLjAuc28uMC4zODAwLjA8L29iaj4KKyAgICAgIDxmbj5nX21haW5fY29udGV4
dF9kaXNwYXRjaDwvZm4+CisgICAgICA8ZGlyPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2xpYjwvZGlyPgorICAgICAgPGZpbGU+
Z21haW4uYzwvZmlsZT4KKyAgICAgIDxsaW5lPjMwNjU8L2xpbmU+CisgICAgPC9mcmFtZT4KKyAg
ICA8ZnJhbWU+CisgICAgICA8aXA+MHg5M0E2NjM3PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2xpYi0yLjAu
c28uMC4zODAwLjA8L29iaj4KKyAgICAgIDxmbj5nX21haW5fY29udGV4dF9pdGVyYXRlLmlzcmEu
MjM8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dsaWI8L2Rpcj4KKyAgICAgIDxmaWxlPmdtYWluLmM8
L2ZpbGU+CisgICAgICA8bGluZT4zNzEyPC9saW5lPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1l
PgorICAgICAgPGlwPjB4OTNBNkE5OTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Sb290L2xpYjY0L2xpYmdsaWItMi4wLnNvLjAuMzgw
MC4wPC9vYmo+CisgICAgICA8Zm4+Z19tYWluX2xvb3BfcnVuPC9mbj4KKyAgICAgIDxkaXI+L2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIuMzgu
MC9nbGliPC9kaXI+CisgICAgICA8ZmlsZT5nbWFpbi5jPC9maWxlPgorICAgICAgPGxpbmU+Mzkw
NjwvbGluZT4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDgxMjEyMDQ8
L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXMvUm9vdC9saWI2NC9saWJndGstMy5zby4wLjYwMC4wPC9vYmo+CisgICAgICA8Zm4+Z3RrX21h
aW48L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXMvU291cmNlL2d0aystMy42LjAvZ3RrPC9kaXI+CisgICAgICA8ZmlsZT5ndGttYWluLmM8
L2ZpbGU+CisgICAgICA8bGluZT4xMTYyPC9saW5lPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1l
PgorICAgICAgPGlwPjB4NDRDQkNFPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAg
PGZuPl9aTDdydW5UZXN0UktTczwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAg
ICA8aXA+MHg0NENFRDY8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+X1pM
MjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgor
ICAgICAgPGlwPjB4NDNBMkQzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZu
Pm1haW48L2ZuPgorICAgIDwvZnJhbWU+CisgIDwvc3RhY2s+CisgIDxzdXBwcmVzc2lvbj4KKyAg
ICA8c25hbWU+aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPC9zbmFtZT4KKyAgICA8c2tp
bmQ+TWVtY2hlY2s6TGVhazwvc2tpbmQ+CisgICAgPHNmcmFtZT4gPGZ1bj5fWm53bTwvZnVuPiA8
L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2Vf
bWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktO
UzFfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEyUG9saWN5QWN0aW9uRUVTNl9FVWxTN19F
X0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0NfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lz
aW9uX25ldzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjZXZWJLaXQxN0Zy
YW1lTG9hZGVyQ2xpZW50MzFkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlRVJLTjdXZWJD
b3JlMTZSZXNvdXJjZVJlc3BvbnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVN0OGZ1bmN0aW9u
SUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxm
dW4+X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TXzE2
UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TXzEyUG9saWN5QWN0aW9uRUVTNF88L2Z1bj4gPC9zZnJh
bWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxNnJlc3Bv
bnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VF
PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxN0NhY2hlZFJh
d1Jlc291cmNlMTZyZXNwb25zZVJlY2VpdmVkRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZnVu
PiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTdTdWJyZXNvdXJjZUxv
YWRlcjE4ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZnVuPiA8
L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlTDE5c2VuZFJlcXVlc3RDYWxs
YmFja0VQOF9HT2JqZWN0UDEzX0dBc3luY1Jlc3VsdFB2PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxz
ZnJhbWU+IDxmdW4+Z190YXNrX3JldHVybl9ub3c8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFt
ZT4gPGZ1bj5jb21wbGV0ZV9pbl9pZGxlX2NiPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+
IDxmdW4+Z19tYWluX2NvbnRleHRfZGlzcGF0Y2g8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFt
ZT4gPGZ1bj5nX21haW5fY29udGV4dF9pdGVyYXRlLmlzcmEuMjM8L2Z1bj4gPC9zZnJhbWU+Cisg
ICAgPHNmcmFtZT4gPGZ1bj5nX21haW5fbG9vcF9ydW48L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNm
cmFtZT4gPGZ1bj5ndGtfbWFpbjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9a
TDdydW5UZXN0UktTczwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTDIwcnVu
VGVzdGluZ1NlcnZlckxvb3B2PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+bWFp
bjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8cmF3dGV4dD4KKzwhW0NEQVRBWwore3sKKyAgIDxpbnNl
cnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+CisgICBNZW1jaGVjazpMZWFrCisgICBmdW46X1pu
d20KKyAgIGZ1bjpfWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29y
ZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9saWN5RVJLTlMxXzE2UmVzb3VyY2VSZXNw
b25zZUVQRnZQdk5TMV8xMlBvbGljeUFjdGlvbkVFUzZfRVVsUzdfRV9FMTBfTV9tYW5hZ2VyRVJT
dDlfQW55X2RhdGFSS1NDX1N0MThfTWFuYWdlcl9vcGVyYXRpb24KKyAgIGZ1bjp3ZWJraXRfd2Vi
X3BvbGljeV9kZWNpc2lvbl9uZXcKKyAgIGZ1bjpfWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVu
dDMxZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZUVSS043V2ViQ29yZTE2UmVzb3VyY2VS
ZXNwb25zZUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGlj
eUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRl
bnRQb2xpY3lFUktOU18xNlJlc291cmNlUmVzcG9uc2VFUEZ2UHZOU18xMlBvbGljeUFjdGlvbkVF
UzRfCisgICBmdW46X1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVyMTZyZXNwb25zZVJlY2VpdmVk
RVBOU18xNENhY2hlZFJlc291cmNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRQorICAgZnVuOl9a
TjdXZWJDb3JlMTdDYWNoZWRSYXdSZXNvdXJjZTE2cmVzcG9uc2VSZWNlaXZlZEVSS05TXzE2UmVz
b3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43V2ViQ29yZTE3U3VicmVzb3VyY2VMb2FkZXIxOGRp
ZFJlY2VpdmVSZXNwb25zZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43V2Vi
Q29yZUwxOXNlbmRSZXF1ZXN0Q2FsbGJhY2tFUDhfR09iamVjdFAxM19HQXN5bmNSZXN1bHRQdgor
ICAgZnVuOmdfdGFza19yZXR1cm5fbm93CisgICBmdW46Y29tcGxldGVfaW5faWRsZV9jYgorICAg
ZnVuOmdfbWFpbl9jb250ZXh0X2Rpc3BhdGNoCisgICBmdW46Z19tYWluX2NvbnRleHRfaXRlcmF0
ZS5pc3JhLjIzCisgICBmdW46Z19tYWluX2xvb3BfcnVuCisgICBmdW46Z3RrX21haW4KKyAgIGZ1
bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1bjpfWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdgorICAg
ZnVuOm1haW4KK319CitdXT4KKyAgICA8L3Jhd3RleHQ+CisgIDwvc3VwcHJlc3Npb24+Cis8L2Vy
cm9yPgorCis8ZXJyb3I+CisgIDx1bmlxdWU+MHgxYTY8L3VuaXF1ZT4KKyAgPHRpZD4xPC90aWQ+
CisgIDxraW5kPkxlYWtfRGVmaW5pdGVseUxvc3Q8L2tpbmQ+CisgIDx4d2hhdD4KKyAgICA8dGV4
dD44IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQg
NDIzIG9mIDcsOTcyPC90ZXh0PgorICAgIDxsZWFrZWRieXRlcz44PC9sZWFrZWRieXRlcz4KKyAg
ICA8bGVha2VkYmxvY2tzPjE8L2xlYWtlZGJsb2Nrcz4KKyAgPC94d2hhdD4KKyAgPHN0YWNrPgor
ICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDRDMkFGOEU8L2lwPgorICAgICAgPG9iaj4vdXNyL2xp
Yi92YWxncmluZC92Z3ByZWxvYWRfbWVtY2hlY2stYW1kNjQtbGludXguc288L29iaj4KKyAgICAg
IDxmbj5fWm53bTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2
ODM5REVDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVs
ZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9a
TlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVj
a2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8x
NERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZT
NV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9Bbnlf
ZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8
ZnJhbWU+CisgICAgICA8aXA+MHg2MUU3QjAzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTku
Mzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZm4+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUNCQTZEPC9pcD4KKyAgICAg
IDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJr
aXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjZXZWJLaXQxN0ZyYW1lTG9h
ZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dl
YkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBh
c3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlv
bkVFRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODNERjUy
PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8u
bGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJD
b3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNl
UmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0
YXRlRUVFUEZ2UHZTM19TOV9iRVNBXzwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+Cisg
ICAgICA8aXA+MHg2ODE3RUZDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgor
ICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVudExvYWRl
ckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQ
dHJJTlNfOUZvcm1TdGF0ZUVFRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAg
ICA8aXA+MHg2ODE4NzI5PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0
QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAg
ICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVy
RTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODE4QTNBPC9p
cD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGli
cy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3Jl
MTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RTwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUUzMTQ4PC9pcD4KKyAgICAgIDxvYmo+
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmk8
L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDRDQzUwPC9pcD4K
KyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFt
cy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9aTDdydW5UZXN0UktTczwvZm4+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0NENFRDY8L2lwPgorICAgICAg
PG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBS
ZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2Zu
PgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDNBMkQzPC9pcD4KKyAg
ICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9E
dW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPm1haW48L2ZuPgorICAgIDwvZnJhbWU+Cisg
IDwvc3RhY2s+CisgIDxzdXBwcmVzc2lvbj4KKyAgICA8c25hbWU+aW5zZXJ0X2Ffc3VwcHJlc3Np
b25fbmFtZV9oZXJlPC9zbmFtZT4KKyAgICA8c2tpbmQ+TWVtY2hlY2s6TGVhazwvc2tpbmQ+Cisg
ICAgPHNmcmFtZT4gPGZ1bj5fWm53bTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVu
Pl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lD
aGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5T
MV8xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2
UHZTNV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9B
bnlfZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8
c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZnVuPiA8L3NmcmFt
ZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRp
b25BY3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlG
b3JtU3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRTwvZnVuPiA8L3Nm
cmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVj
a05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNlUmVxdWVzdEVQTlNfMTREb2N1bWVudExv
YWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFUEZ2UHZTM19TOV9iRVNBXzwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRl
cjIybG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1l
TG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRTwvZnVuPiA8L3NmcmFt
ZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18x
NERvY3VtZW50TG9hZGVyRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RTwvZnVuPiA8
L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmk8L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWkw3cnVuVGVzdFJLU3M8L2Z1bj4gPC9z
ZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdjwvZnVu
PiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPm1haW48L2Z1bj4gPC9zZnJhbWU+CisgICAg
PHJhd3RleHQ+Cis8IVtDREFUQVsKK3t7CisgICA8aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9o
ZXJlPgorICAgTWVtY2hlY2s6TGVhaworICAgZnVuOl9abndtCisgICBmdW46X1pOU3QxNF9GdW5j
dGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNr
TmF2aWdhdGlvblBvbGljeUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVQTlMxXzE0RG9jdW1lbnRM
b2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVQRnZQdlM1X1NCX2JFU0Nf
RVVsTlMxXzEyUG9saWN5QWN0aW9uRUVfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRhUktTSV9T
dDE4X01hbmFnZXJfb3BlcmF0aW9uCisgICBmdW46d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25f
bmV3CisgICBmdW46X1pONldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzOWRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkVSS043V2ViQ29yZTE2TmF2aWdhdGlvbkFjdGlvbkVS
S05TMV8xNVJlc291cmNlUmVxdWVzdEVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVF
RVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFCisgICBmdW46X1pON1dlYkNvcmUx
M1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TXzE1UmVzb3VyY2VSZXF1
ZXN0RVBOU18xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVF
RUVQRnZQdlMzX1M5X2JFU0FfCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjJsb2Fk
V2l0aERvY3VtZW50TG9hZGVyRVBOU18xNERvY3VtZW50TG9hZGVyRU5TXzEzRnJhbWVMb2FkVHlw
ZUVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFCisgICBmdW46X1pON1dlYkNvcmUx
MUZyYW1lTG9hZGVyNGxvYWRFUE5TXzE0RG9jdW1lbnRMb2FkZXJFCisgICBmdW46X1pON1dlYkNv
cmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1lTG9hZFJlcXVlc3RFCisgICBmdW46d2Vi
a2l0X3dlYl9mcmFtZV9sb2FkX3VyaQorICAgZnVuOl9aTDdydW5UZXN0UktTcworICAgZnVuOl9a
TDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2CisgICBmdW46bWFpbgorfX0KK11dPgorICAgIDwvcmF3
dGV4dD4KKyAgPC9zdXBwcmVzc2lvbj4KKzwvZXJyb3I+CisKKzxlcnJvcmNvdW50cz4KKzwvZXJy
b3Jjb3VudHM+CisKKzxzdXBwY291bnRzPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTA3PC9jb3Vu
dD4KKyAgICA8bmFtZT5GY0NvbmZpZ0FwcEZvbnRBZGRGaWxlIChUaGlyZCBQYXJ0eSk8L25hbWU+
CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjIwOTg8L2NvdW50PgorICAgIDxuYW1l
Pmd0a19pbml0X2NoZWNrIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+
CisgICAgPGNvdW50PjE8L2NvdW50PgorICAgIDxuYW1lPmdfcXVhcmtfZnJvbV9zdGF0aWNfc3Ry
aW5nIChUaGlyZCBwYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50
PjI3PC9jb3VudD4KKyAgICA8bmFtZT5GY0NvbmZpZ1BhcnNlQW5kTG9hZCAoVGhpcmQgUGFydHkp
PC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD44MDwvY291bnQ+CisgICAg
PG5hbWU+d2Via2l0QWNjZXNzaWJsZU5ldzwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAg
ICA8Y291bnQ+MTc3PC9jb3VudD4KKyAgICA8bmFtZT5nX3RocmVhZF9wcm94eSAoVGhpcmQgUGFy
dHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD45PC9jb3VudD4KKyAg
ICA8bmFtZT5GY1BhdHRlcm5PYmplY3RJbnNlcnRFbHQgMiAoVGhpcmQgUGFydHkpPC9uYW1lPgor
ICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5ndGtf
d2luZG93X3JlYWxpemUgKFRoaXJkIFBhcnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4K
KyAgICA8Y291bnQ+MTwvY291bnQ+CisgICAgPG5hbWU+X19uc3NfZGF0YWJhc2VfbG9va3VwIChU
aGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjE8L2Nv
dW50PgorICAgIDxuYW1lPmNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZSAoVGhpcmQgUGFydHkpPC9u
YW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4yPC9jb3VudD4KKyAgICA8bmFt
ZT5saWJHTC5zbyAoVGhpcmQgcGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAg
IDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5nX3Rhc2tfcnVuX2luX3RocmVhZCAoVGhpcmQg
UGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4yPC9jb3VudD4K
KyAgICA8bmFtZT5XVEY6OlRocmVhZElkZW50aWZpZXJEYXRhOjppbml0aWFsaXplKCkgKEludGVu
dGlvbmFsKTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTwvY291bnQ+
CisgICAgPG5hbWU+Z3RrX2Nzc19wcm92aWRlcl9sb2FkX2Zyb21fZGF0YSAoVGhpcmQgUGFydHkp
PC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8
bmFtZT5saWJlbmNoYW50LnNvIG5ldyAoVGhpcmQgcGFydHkpPC9uYW1lPgorICA8L3BhaXI+Cis8
L3N1cHBjb3VudHM+CisKKzwvdmFsZ3JpbmRvdXRwdXQ+CisiIiIuZm9ybWF0KHByb2Nlc3NfbmFt
ZT1wcm9jZXNzX25hbWUsIHBpZD1waWQsIHV1aWQ9dXVpZCkKKworCitkZWYgbWFrZV9tb2NrX2lu
Y29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0KHByb2Nlc3NfbmFtZSwgcGlkLCB1dWlkKToKKyAgICBy
ZXR1cm4gIiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+CisKKzx2YWxncmluZG91dHB1dD4KKworPHBy
b3RvY29sdmVyc2lvbj40PC9wcm90b2NvbHZlcnNpb24+Cis8cHJvdG9jb2x0b29sPm1lbWNoZWNr
PC9wcm90b2NvbHRvb2w+CisKKzxwcmVhbWJsZT4KKyAgPGxpbmU+TWVtY2hlY2ssIGEgbWVtb3J5
IGVycm9yIGRldGVjdG9yPC9saW5lPgorICA8bGluZT5Db3B5cmlnaHQgKEMpIDIwMDItMjAxMSwg
YW5kIEdOVSBHUEwnZCwgYnkgSnVsaWFuIFNld2FyZCBldCBhbC48L2xpbmU+CisgIDxsaW5lPlVz
aW5nIFZhbGdyaW5kLTMuNy4wIGFuZCBMaWJWRVg7IHJlcnVuIHdpdGggLWggZm9yIGNvcHlyaWdo
dCBpbmZvPC9saW5lPgorICA8bGluZT5Db21tYW5kOiAvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9SZWxlYXNlL1Byb2dyYW1zL3twcm9jZXNzX25hbWV9IC08L2xpbmU+Cis8L3ByZWFtYmxl
PgorCis8cGlkPntwaWR9PC9waWQ+Cis8cHBpZD4xODU3NzwvcHBpZD4KKzx0b29sPm1lbWNoZWNr
PC90b29sPgorCis8YXJncz4KKyAgPHZhcmd2PgorICAgIDxleGU+L3Vzci9iaW4vdmFsZ3JpbmQu
YmluPC9leGU+CisgICAgPGFyZz4tLXRvb2w9bWVtY2hlY2s8L2FyZz4KKyAgICA8YXJnPi0tbnVt
LWNhbGxlcnM9NDA8L2FyZz4KKyAgICA8YXJnPi0tZGVtYW5nbGU9bm88L2FyZz4KKyAgICA8YXJn
Pi0tdHJhY2UtY2hpbGRyZW49bm88L2FyZz4KKyAgICA8YXJnPi0tc21jLWNoZWNrPWFsbC1ub24t
ZmlsZTwvYXJnPgorICAgIDxhcmc+LS1sZWFrLWNoZWNrPXllczwvYXJnPgorICAgIDxhcmc+LS1s
ZWFrLXJlc29sdXRpb249aGlnaDwvYXJnPgorICAgIDxhcmc+LS1zaG93LXBvc3NpYmx5LWxvc3Q9
bm88L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1yZWFjaGFibGU9bm88L2FyZz4KKyAgICA8YXJnPi0t
bGVhay1jaGVjaz1mdWxsPC9hcmc+CisgICAgPGFyZz4tLXVuZGVmLXZhbHVlLWVycm9ycz1ubzwv
YXJnPgorICAgIDxhcmc+LS1nZW4tc3VwcHJlc3Npb25zPWFsbDwvYXJnPgorICAgIDxhcmc+LS14
bWw9eWVzPC9hcmc+CisgICAgPGFyZz4tLXhtbC1maWxlPS9ob21lL3VzZXIvV2ViS2l0L1dlYktp
dEJ1aWxkL1JlbGVhc2UvbGF5b3V0LXRlc3QtcmVzdWx0cy9kcnQte3BpZH0te3V1aWR9LWxlYWtz
LnhtbDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L2hvbWUvdXNlci9XZWJLaXQvVG9v
bHMvU2NyaXB0cy92YWxncmluZC9zdXBwcmVzc2lvbnMudHh0PC9hcmc+CisgICAgPGFyZz4tLXN1
cHByZXNzaW9ucz0vdXNyL2xpYi92YWxncmluZC9kZWJpYW4tbGliYzYtZGJnLnN1cHA8L2FyZz4K
KyAgPC92YXJndj4KKyAgPGFyZ3Y+CisgICAgPGV4ZT4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9SZWxlYXNlL1Byb2dyYW1zL3twcm9jZXNzX25hbWV9PC9leGU+CisgICAgPGFyZz4tPC9h
cmc+CisgIDwvYXJndj4KKzwvYXJncz4KKworPHN0YXR1cz4KKyAgPHN0YXRlPlJVTk5JTkc8L3N0
YXRlPgorICA8dGltZT4wMDowMDowMDowMC4wMjQgPC90aW1lPgorPC9zdGF0dXM+CisiIiIuZm9y
bWF0KHByb2Nlc3NfbmFtZT1wcm9jZXNzX25hbWUsIHBpZD1waWQsIHV1aWQ9dXVpZCkKKworCitk
ZWYgbWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHMoKToKKyAgICByZXR1cm4gIiIiLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N1cHByZXNzaW9u
cyB1c2VkOgorICBjb3VudCBuYW1lCisgICAgICAyIF9fbnNzX2RhdGFiYXNlX2xvb2t1cCAoVGhp
cmQgUGFydHkpCisgICAgICAyIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZSAoVGhpcmQgUGFydHkp
CisgICAgICAyIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nIChUaGlyZCBwYXJ0eSkKKyAgICAg
IDIgZ190YXNrX3J1bl9pbl90aHJlYWQgKFRoaXJkIFBhcnR5KQorICAgICAgMiBndGtfY3NzX3By
b3ZpZGVyX2xvYWRfZnJvbV9kYXRhIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgZ3RrX3dpbmRvd19y
ZWFsaXplIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgbGliZW5jaGFudC5zbyBuZXcgKFRoaXJkIHBh
cnR5KQorICAgICAgNCBXVEY6OlRocmVhZElkZW50aWZpZXJEYXRhOjppbml0aWFsaXplKCkgKElu
dGVudGlvbmFsKQorICAgICAgNCBsaWJHTC5zbyAoVGhpcmQgcGFydHkpCisgICAgIDE4IEZjUGF0
dGVybk9iamVjdEluc2VydEVsdCAyIChUaGlyZCBQYXJ0eSkKKyAgICAgNTQgRmNDb25maWdQYXJz
ZUFuZExvYWQgKFRoaXJkIFBhcnR5KQorICAgIDE2MCB3ZWJraXRBY2Nlc3NpYmxlTmV3CisgICAg
MjE0IEZjQ29uZmlnQXBwRm9udEFkZEZpbGUgKFRoaXJkIFBhcnR5KQorICAgIDM1NCBnX3RocmVh
ZF9wcm94eSAoVGhpcmQgUGFydHkpCisgICA0MTk2IGd0a19pbml0X2NoZWNrIChUaGlyZCBQYXJ0
eSkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitWYWxncmluZCBkZXRlY3RlZCAyIGxlYWtzOgorTGVha19EZWZpbml0ZWx5TG9zdAorOCBieXRl
cyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQyMSBvZiA3
LDk3MgorICBvcGVyYXRvciBuZXcodW5zaWduZWQgbG9uZykgKC91c3IvbGliL3ZhbGdyaW5kL3Zn
cHJlbG9hZF9tZW1jaGVjay1hbWQ2NC1saW51eC5zbykKKyAgc3RkOjpfRnVuY3Rpb25fYmFzZTo6
X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xp
Y3koV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCos
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpGb3JtU3RhdGU+LCBib29sKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGljeUFjdGlv
bikjMX0+OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfRnVuY3Rpb25fYmFzZTo6
X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xp
Y3koV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCos
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpGb3JtU3RhdGU+LCBib29sKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGljeUFjdGlv
bikjMX0+IGNvbnN0Jiwgc3RkOjpfTWFuYWdlcl9vcGVyYXRpb24pICgvaG9tZS91c2VyL1dlYktp
dC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQor
ICB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktp
dEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uIGNvbnN0JiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IGNvbnN0JiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoV2ViQ29yZTo6UG9saWN5QWN0aW9uKT4pICgvaG9tZS91c2VyL1dlYktp
dC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQor
ICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+
LCBib29sKSwgdm9pZCopICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5s
aWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
bG9hZFdpdGhEb2N1bWVudExvYWRlcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFdlYkNvcmU6
OkZyYW1lTG9hZFR5cGUsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+KSAoL2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4w
LnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9s
aWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQo
V2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCBjb25zdCYpICgvaG9tZS91c2VyL1dlYktpdC9XZWJL
aXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICB3ZWJr
aXRfd2ViX2ZyYW1lX2xvYWRfdXJpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxl
YXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBydW5UZXN0KHN0ZDo6YmFz
aWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0ZDo6YWxsb2NhdG9yPGNo
YXI+ID4gY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9n
cmFtcy9EdW1wUmVuZGVyVHJlZSkKKyAgcnVuVGVzdGluZ1NlcnZlckxvb3AoKSAoL2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZSkKKyAg
bWFpbiAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1w
UmVuZGVyVHJlZSkKK1N1cHByZXNzaW9uIChlcnJvciBoYXNoPSMwNDQ5RDNFRDI1M0ZFMUY5Iyk6
CisKK3sKKyAgIDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+CisgICBNZW1jaGVjazpM
ZWFrCisgICBmdW46X1pudyoKKyAgIGZ1bjpfWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21h
bmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJL
TlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1Jl
ZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rp
b25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRp
b24KKyAgIGZ1bjp3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcKKyAgIGZ1bjpfWk42V2Vi
S2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1
ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFf
MTJQb2xpY3lBY3Rpb25FRUUKKyAgIGZ1bjpfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hl
Y2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRM
b2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV8K
KyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJF
UE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzlGb3JtU3RhdGVFRUUKKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQ
TlNfMTREb2N1bWVudExvYWRlckUKKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9h
ZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEUKKyAgIGZ1bjp3ZWJraXRfd2ViX2ZyYW1lX2xvYWRf
dXJpCisgICBmdW46X1pMN3J1blRlc3RSS1NzCisgICBmdW46X1pMMjBydW5UZXN0aW5nU2VydmVy
TG9vcHYKKyAgIGZ1bjptYWluCit9CisKKworTGVha19EZWZpbml0ZWx5TG9zdAorOCBieXRlcyBp
biAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQyMiBvZiA3LDk3
MgorICBvcGVyYXRvciBuZXcodW5zaWduZWQgbG9uZykgKC91c3IvbGliL3ZhbGdyaW5kL3ZncHJl
bG9hZF9tZW1jaGVjay1hbWQ2NC1saW51eC5zbykKKyAgc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jh
c2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja0NvbnRlbnRQb2xpY3koV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYsIHZvaWQgKCopKHZvaWQqLCBXZWJDb3JlOjpQ
b2xpY3lBY3Rpb24pLCB2b2lkKik6OntsYW1iZGEoV2ViQ29yZTo6UG9saWN5QWN0aW9uKSMxfT46
Ol9NX21hbmFnZXIoc3RkOjpfQW55X2RhdGEmLCBzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9t
YW5hZ2VyPFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNrQ29udGVudFBvbGljeShXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0Jiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlBvbGlj
eUFjdGlvbiksIHZvaWQqKTo6e2xhbWJkYShXZWJDb3JlOjpQb2xpY3lBY3Rpb24pIzF9PiBjb25z
dCYsIHN0ZDo6X01hbmFnZXJfb3BlcmF0aW9uKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgd2Via2l0X3dl
Yl9wb2xpY3lfZGVjaXNpb25fbmV3ICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxl
YXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgY29uc3QmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQgKFdlYkNvcmU6OlBvbGljeUFjdGlvbik+KSAoL2hvbWUvdXNlci9XZWJL
aXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykK
KyAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tDb250ZW50UG9saWN5KFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgY29uc3QmLCB2b2lkICgqKSh2b2lkKiwgV2ViQ29yZTo6UG9saWN5QWN0
aW9uKSwgdm9pZCopICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJz
L2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
cmVzcG9uc2VSZWNlaXZlZChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSosIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6Q2FjaGVkUmF3
UmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25z
dCYpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtp
dGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmKSAoL2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAu
MTkuMykKKyAgV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayhfR09iamVjdCosIF9HQXN5bmNS
ZXN1bHQqLCB2b2lkKikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxp
YnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIGdfdGFza19yZXR1cm5fbm93ICgvaG9t
ZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4w
L2dpby9ndGFzay5jOjExMDgpCisgIGNvbXBsZXRlX2luX2lkbGVfY2IgKC9ob21lL3VzZXIvV2Vi
S2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2lvL2d0YXNr
LmM6MTExNykKKyAgZ19tYWluX2NvbnRleHRfZGlzcGF0Y2ggKC9ob21lL3VzZXIvV2ViS2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2xpYi9nbWFpbi5jOjMw
NjUpCisgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUuaXNyYS4yMyAoL2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIuMzguMC9nbGliL2dtYWluLmM6
MzcxMikKKyAgZ19tYWluX2xvb3BfcnVuICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dsaWIvZ21haW4uYzozOTA2KQorICBndGtf
bWFpbiAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9n
dGsrLTMuNi4wL2d0ay9ndGttYWluLmM6MTE2MikKKyAgcnVuVGVzdChzdGQ6OmJhc2ljX3N0cmlu
ZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNv
bnN0JikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVt
cFJlbmRlclRyZWUpCisgIHJ1blRlc3RpbmdTZXJ2ZXJMb29wKCkgKC9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUpCisgIG1haW4gKC9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRy
ZWUpCitTdXBwcmVzc2lvbiAoZXJyb3IgaGFzaD0jODMxM0RFQjE2QjA2OTQzOCMpOgorCit7Cisg
ICA8aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPgorICAgTWVtY2hlY2s6TGVhaworICAg
ZnVuOl9abncqCisgICBmdW46X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpO
N1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TMV8xNlJlc291
cmNlUmVzcG9uc2VFUEZ2UHZOUzFfMTJQb2xpY3lBY3Rpb25FRVM2X0VVbFM3X0VfRTEwX01fbWFu
YWdlckVSU3Q5X0FueV9kYXRhUktTQ19TdDE4X01hbmFnZXJfb3BlcmF0aW9uCisgICBmdW46d2Vi
a2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3CisgICBmdW46X1pONldlYktpdDE3RnJhbWVMb2Fk
ZXJDbGllbnQzMWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VFUktON1dlYkNvcmUxNlJl
c291cmNlUmVzcG9uc2VFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFU3Q4ZnVuY3Rpb25JRnZOUzFf
MTJQb2xpY3lBY3Rpb25FRUUKKyAgIGZ1bjpfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hl
Y2tDb250ZW50UG9saWN5RVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlNfMTJQb2xpY3lB
Y3Rpb25FRVM0XworICAgZnVuOl9aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlcjE2cmVzcG9uc2VS
ZWNlaXZlZEVQTlNfMTRDYWNoZWRSZXNvdXJjZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAg
IGZ1bjpfWk43V2ViQ29yZTE3Q2FjaGVkUmF3UmVzb3VyY2UxNnJlc3BvbnNlUmVjZWl2ZWRFUktO
U18xNlJlc291cmNlUmVzcG9uc2VFCisgICBmdW46X1pON1dlYkNvcmUxN1N1YnJlc291cmNlTG9h
ZGVyMThkaWRSZWNlaXZlUmVzcG9uc2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VFCisgICBmdW46
X1pON1dlYkNvcmVMMTlzZW5kUmVxdWVzdENhbGxiYWNrRVA4X0dPYmplY3RQMTNfR0FzeW5jUmVz
dWx0UHYKKyAgIGZ1bjpnX3Rhc2tfcmV0dXJuX25vdworICAgZnVuOmNvbXBsZXRlX2luX2lkbGVf
Y2IKKyAgIGZ1bjpnX21haW5fY29udGV4dF9kaXNwYXRjaAorICAgZnVuOmdfbWFpbl9jb250ZXh0
X2l0ZXJhdGUuaXNyYS4yMworICAgZnVuOmdfbWFpbl9sb29wX3J1bgorICAgZnVuOmd0a19tYWlu
CisgICBmdW46X1pMN3J1blRlc3RSS1NzCisgICBmdW46X1pMMjBydW5UZXN0aW5nU2VydmVyTG9v
cHYKKyAgIGZ1bjptYWluCit9CisKKworIiIiCisKKworZGVmIG1ha2VfbW9ja192YWxncmluZF9y
ZXN1bHRzX2luY29tcGxldGUoKToKKyAgICByZXR1cm4gIiIiY291bGQgbm90IHBhcnNlIDw/eG1s
IHZlcnNpb249IjEuMCI/PgorCis8dmFsZ3JpbmRvdXRwdXQ+CisKKzxwcm90b2NvbHZlcnNpb24+
NDwvcHJvdG9jb2x2ZXJzaW9uPgorPHByb3RvY29sdG9vbD5tZW1jaGVjazwvcHJvdG9jb2x0b29s
PgorCis8cHJlYW1ibGU+CisgIDxsaW5lPk1lbWNoZWNrLCBhIG1lbW9yeSBlcnJvciBkZXRlY3Rv
cjwvbGluZT4KKyAgPGxpbmU+Q29weXJpZ2h0IChDKSAyMDAyLTIwMTEsIGFuZCBHTlUgR1BMJ2Qs
IGJ5IEp1bGlhbiBTZXdhcmQgZXQgYWwuPC9saW5lPgorICA8bGluZT5Vc2luZyBWYWxncmluZC0z
LjcuMCBhbmQgTGliVkVYOyByZXJ1biB3aXRoIC1oIGZvciBjb3B5cmlnaHQgaW5mbzwvbGluZT4K
KyAgPGxpbmU+Q29tbWFuZDogL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Q
cm9ncmFtcy9EdW1wUmVuZGVyVHJlZSAtPC9saW5lPgorPC9wcmVhbWJsZT4KKworPHBpZD4yODUz
MTwvcGlkPgorPHBwaWQ+MTg1Nzc8L3BwaWQ+Cis8dG9vbD5tZW1jaGVjazwvdG9vbD4KKworPGFy
Z3M+CisgIDx2YXJndj4KKyAgICA8ZXhlPi91c3IvYmluL3ZhbGdyaW5kLmJpbjwvZXhlPgorICAg
IDxhcmc+LS10b29sPW1lbWNoZWNrPC9hcmc+CisgICAgPGFyZz4tLW51bS1jYWxsZXJzPTQwPC9h
cmc+CisgICAgPGFyZz4tLWRlbWFuZ2xlPW5vPC9hcmc+CisgICAgPGFyZz4tLXRyYWNlLWNoaWxk
cmVuPW5vPC9hcmc+CisgICAgPGFyZz4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L2FyZz4KKyAg
ICA8YXJnPi0tbGVhay1jaGVjaz15ZXM8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1yZXNvbHV0aW9u
PWhpZ2g8L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1wb3NzaWJseS1sb3N0PW5vPC9hcmc+CisgICAg
PGFyZz4tLXNob3ctcmVhY2hhYmxlPW5vPC9hcmc+CisgICAgPGFyZz4tLWxlYWstY2hlY2s9ZnVs
bDwvYXJnPgorICAgIDxhcmc+LS11bmRlZi12YWx1ZS1lcnJvcnM9bm88L2FyZz4KKyAgICA8YXJn
Pi0tZ2VuLXN1cHByZXNzaW9ucz1hbGw8L2FyZz4KKyAgICA8YXJnPi0teG1sPXllczwvYXJnPgor
ICAgIDxhcmc+LS14bWwtZmlsZT0vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNl
L2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMxLWU4YzdkN2I4M2JlNDExZTM5MGM5ZDQzZDdl
MDFiYTA4LWxlYWtzLnhtbDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L2hvbWUvdXNl
ci9XZWJLaXQvVG9vbHMvU2NyaXB0cy92YWxncmluZC9zdXBwcmVzc2lvbnMudHh0PC9hcmc+Cisg
ICAgPGFyZz4tLXN1cHByZXNzaW9ucz0vdXNyL2xpYi92YWxncmluZC9kZWJpYW4tbGliYzYtZGJn
LnN1cHA8L2FyZz4KKyAgPC92YXJndj4KKyAgPGFyZ3Y+CisgICAgPGV4ZT4vaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9leGU+Cisg
ICAgPGFyZz4tPC9hcmc+CisgIDwvYXJndj4KKzwvYXJncz4KKworPHN0YXR1cz4KKyAgPHN0YXRl
PlJVTk5JTkc8L3N0YXRlPgorICA8dGltZT4wMDowMDowMDowMC4wMjQgPC90aW1lPgorPC9zdGF0
dXM+Cis6IG5vIGVsZW1lbnQgZm91bmQ6IGxpbmUgNDksIGNvbHVtbiAwCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3VwcHJlc3Npb25zIHVz
ZWQ6CisgIGNvdW50IG5hbWUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisiIiIKKworCitkZWYgbWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHNf
ZW1wdHkoKToKKyAgICByZXR1cm4gIiIiY291bGQgbm90IHBhcnNlIDogbm8gZWxlbWVudCBmb3Vu
ZDogbGluZSAxLCBjb2x1bW4gMAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK1N1cHByZXNzaW9ucyB1c2VkOgorICBjb3VudCBuYW1lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiIiCisK
KworZGVmIG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCgpOgorICAgIHJl
dHVybiAiIiJjb3VsZCBub3QgcGFyc2UgSnVuayB0aGF0IHNob3VsZCBub3QgYXBwZWFyIGluIGEg
dmFsZ3JpbmQgeG1sIGZpbGU8P3htbCB2ZXJzaW9uPSIxLjAiPzogc3ludGF4IGVycm9yOiBsaW5l
IDEsIGNvbHVtbiAwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorU3VwcHJlc3Npb25zIHVzZWQ6CisgIGNvdW50IG5hbWUKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIiIKKworCitjbGFz
cyBMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVm
IHRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9wYXNzKHNlbGYpOgorICAgICAgICBt
b2NrX3ZhbGdyaW5kX291dHB1dDEgPSBtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KCdEdW1wUmVu
ZGVyVHJlZScsIDI4NTI5LCAnZGI5MmU0ODQzYmU0MTFlM2JhZTFkNDNkN2UwMWJhMDgnKQorICAg
ICAgICBtb2NrX3ZhbGdyaW5kX291dHB1dDIgPSBtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KCdE
dW1wUmVuZGVyVHJlZScsIDI4NTMwLCAnZGQ3MjEzNDIzYmU0MTFlM2FhN2ZkNDNkN2UwMWJhMDgn
KQorICAgICAgICBmaWxlcyA9IHt9CisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvZHJ0LTI4NTI5LWRiOTJlNDg0M2JlNDExZTNiYWUxZDQzZDdlMDFiYTA4LWxlYWtzLnht
bCddID0gbW9ja192YWxncmluZF9vdXRwdXQxCisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvZHJ0LTI4NTMwLWRkNzIxMzQyM2JlNDExZTNhYTdmZDQzZDdlMDFiYTA4LWxl
YWtzLnhtbCddID0gbW9ja192YWxncmluZF9vdXRwdXQyCisgICAgICAgIGxlYWtkZXRlY3Rvcl92
YWxncmluZCA9IExlYWtEZXRlY3RvclZhbGdyaW5kKE1vY2tGaWxlU3lzdGVtKGZpbGVzKSwgJy90
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy8nKQorCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50X2xl
YWtzX2RldGFpbCwgW2ZpbGVzXSwgZXhwZWN0ZWRfbG9ncz1tYWtlX21vY2tfdmFsZ3JpbmRfcmVz
dWx0cygpKQorCisgICAgZGVmIHRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9pbmNv
bXBsZXRlKHNlbGYpOgorICAgICAgICBtb2NrX2luY29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0ID0g
bWFrZV9tb2NrX2luY29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0KCdEdW1wUmVuZGVyVHJlZScsIDI4
NTMxLCAnZThjN2Q3YjgzYmU0MTFlMzkwYzlkNDNkN2UwMWJhMDgnKQorICAgICAgICBmaWxlcyA9
IHt9CisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMxLWU4
YzdkN2I4M2JlNDExZTM5MGM5ZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gbW9ja19pbmNvbXBs
ZXRlX3ZhbGdyaW5kX291dHB1dAorICAgICAgICBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgPSBMZWFr
RGV0ZWN0b3JWYWxncmluZChNb2NrRmlsZVN5c3RlbShmaWxlcyksICcvdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvJykKKworICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2Vs
ZiwgbGVha2RldGVjdG9yX3ZhbGdyaW5kLnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwsIFtm
aWxlc10sIGV4cGVjdGVkX2xvZ3M9bWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHNfaW5jb21wbGV0
ZSgpKQorCisgICAgZGVmIHRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9lbXB0eShz
ZWxmKToKKyAgICAgICAgZmlsZXMgPSB7fQorICAgICAgICBmaWxlc1snL3RtcC9Mb2dzL2xheW91
dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMyLWViYzlhNmM2M2JlNDExZTM5OWQ0ZDQzZDdlMDFiYTA4
LWxlYWtzLnhtbCddID0gIiIKKyAgICAgICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0gTGVha0Rl
dGVjdG9yVmFsZ3JpbmQoTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpLCAnL3RtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzLycpCisKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYs
IGxlYWtkZXRlY3Rvcl92YWxncmluZC5wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsLCBbZmls
ZXNdLCBleHBlY3RlZF9sb2dzPW1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2VtcHR5KCkpCisK
KyAgICBkZWYgdGVzdF9wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX21pc2Zvcm1hdHRlZChz
ZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtaXNmb3JtYXR0ZWRf
bW9ja192YWxncmluZF9vdXRwdXQgPSAnSnVuayB0aGF0IHNob3VsZCBub3QgYXBwZWFyIGluIGEg
dmFsZ3JpbmQgeG1sIGZpbGUnICsgbWFrZV9tb2NrX3ZhbGdyaW5kX291dHB1dCgnRHVtcFJlbmRl
clRyZWUnLCAyODUzMywgJ2ZhNmQwY2Q2M2JlNDExZTM5YzcyZDQzZDdlMDFiYTA4JylbOjIwXQor
ICAgICAgICBmaWxlcyA9IHt9CisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZHJ0LTI4NTMzLWZhNmQwY2Q2M2JlNDExZTM5YzcyZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCdd
ID0gbWlzZm9ybWF0dGVkX21vY2tfdmFsZ3JpbmRfb3V0cHV0CisgICAgICAgIGxlYWtkZXRlY3Rv
cl92YWxncmluZCA9IExlYWtEZXRlY3RvclZhbGdyaW5kKE1vY2tGaWxlU3lzdGVtKGZpbGVzKSwg
Jy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy8nKQorCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5h
c3NlcnRfb3V0cHV0cyhzZWxmLCBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50
X2xlYWtzX2RldGFpbCwgW2ZpbGVzXSwgZXhwZWN0ZWRfbG9ncz1tYWtlX21vY2tfdmFsZ3JpbmRf
cmVzdWx0c19taXNmb3JtYXR0ZWQoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220221</attachid>
            <date>2014-01-02 05:27:11 -0800</date>
            <delta_ts>2014-01-09 06:32:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119446-20140102132805.patch</filename>
            <type>text/plain</type>
            <size>57690</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMjA2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Y2MmExNTJkODExZTg1NTgxOWQwM2RjOTZmODk4ZjFm
YzQ0YzIzMS4uZjU2ZjU0M2QyMmQ0MWNjYzJkMTZhYzc4Mjc3ZTEyMmQyNTBhMDI1ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDE0LTAxLTAyICBCcmlhbiBIb2x0ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbR1RLXSBQYXJzZSBWYWxncmluZCB4bWwgbGVhayBmaWxlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDQ2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBn
ZW5lcmF0ZWQgYnkgVmFsZ3JpbmQgdG8geWllbGQgdXNlZnVsCisgICAgICAgIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBtZW1vcnkgbGVha3MuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZ3RrLnB5OgorICAgICAgICAoR3RrUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChHdGtQb3J0
LnNldHVwX3Rlc3RfcnVuKTogQ2xlYXIgdGhlIHByZXZpb3VzIG91dHB1dCBmaWxlcyBiZWZvcmUg
bmV3CisgICAgICAgIHJ1bi4KKyAgICAgICAgKEd0a1BvcnQucHJpbnRfbGVha3Nfc3VtbWFyeSk6
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5k
LnB5OiBBZGRlZC4KKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBnZW5lcmF0ZWQgYnkgVmFs
Z3JpbmQgYW5kIHN1bW1hcmlzZSBsZWFrcworICAgICAgICBpbnRvIGFuIGVhc2lseSB1bmRlcnN0
YW5kYWJsZSBsaXN0LgorICAgICAgICAoZ2V0X3RleHRfb2YpOgorICAgICAgICAoZ2V0X0NEQVRB
X29mKToKKyAgICAgICAgKGdhdGhlcl9mcmFtZXMpOgorICAgICAgICAoVmFsZ3JpbmRFcnJvcik6
CisgICAgICAgIChWYWxncmluZEVycm9yLl9faW5pdF9fKToKKyAgICAgICAgKFZhbGdyaW5kRXJy
b3IuX19zdHJfXyk6CisgICAgICAgIChWYWxncmluZEVycm9yLnVuaXF1ZV9zdHJpbmcpOgorICAg
ICAgICAoVmFsZ3JpbmRFcnJvci5lcnJvcl9oYXNoKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3Iu
X19oYXNoX18pOgorICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX2VxX18pOgorICAgICAgICAoTGVh
a0RldGVjdG9yVmFsZ3JpbmQpOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmQuX19pbml0
X18pOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmQuX3BhcnNlX2xlYWtzX291dHB1dCk6
CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZC5sZWFrc19maWxlc19pbl9yZXN1bHRzX2Rp
cmVjdG9yeSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZC5jbGVhbl9sZWFrc19maWxl
c19mcm9tX3Jlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5k
LnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwpOgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZF91bml0dGVzdC5weTogQWRkZWQuCisgICAg
ICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KToKKyAgICAgICAgKG1ha2VfbW9ja19pbmNv
bXBsZXRlX3ZhbGdyaW5kX291dHB1dCk6CisgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVz
dWx0cyk6CisgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0c19pbmNvbXBsZXRlKToK
KyAgICAgICAgKG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2VtcHR5KToKKyAgICAgICAgKG1h
a2VfbW9ja192YWxncmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCk6CisgICAgICAgIChMZWFrRGV0
ZWN0b3JWYWxncmluZFRlc3QpOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmRUZXN0LnRl
c3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9wYXNzKToKKyAgICAgICAgKExlYWtEZXRl
Y3RvclZhbGdyaW5kVGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfaW5jb21w
bGV0ZSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9hbmRf
cHJpbnRfbGVha3NfZGV0YWlsX2VtcHR5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5k
VGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfbWlzZm9ybWF0dGVkKToKKyAg
ICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5kVGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFr
c19kZXRhaWxfcGFzcyk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9w
YXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX2luY29tcGxldGUpOgorICAgICAgICAoTGVha0Rl
dGVjdG9yVmFsZ3JpbmRUZXN0LnRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9lbXB0
eSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9hbmRfcHJp
bnRfbGVha3NfZGV0YWlsX21pc2Zvcm1hdHRlZCk6CisKIDIwMTQtMDEtMDEgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFJlbmFtZSBsaWJ0
ZXN0bmV0c2NhcGVwbHVnaW4gdG8gbGliVGVzdE5ldHNjYXBlUGx1Z2luCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2d0ay5weQppbmRleCAyYjhlMjc4MGRmZWI4MjMxNzlkM2I2ZDJkZTlkNjkwMDI5MWM1
NjljLi4wZDVkNzg0OTk0ZDkxZjFjNzU0ODYwYWVjNWE4M2JiNWMyY2FiOTBjIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9ndGsucHkKQEAgLTM4LDYgKzM4LDcgQEAgZnJvbSB3ZWJraXRweS5wb3J0
LnB1bHNlYXVkaW9fc2FuaXRpemVyIGltcG9ydCBQdWxzZUF1ZGlvU2FuaXRpemVyCiBmcm9tIHdl
YmtpdHB5LnBvcnQueHZmYmRyaXZlciBpbXBvcnQgWHZmYkRyaXZlcgogZnJvbSB3ZWJraXRweS5w
b3J0Lndlc3RvbmRyaXZlciBpbXBvcnQgV2VzdG9uRHJpdmVyCiBmcm9tIHdlYmtpdHB5LnBvcnQu
bGludXhfZ2V0X2NyYXNoX2xvZyBpbXBvcnQgR0RCQ3Jhc2hMb2dHZW5lcmF0b3IKK2Zyb20gd2Vi
a2l0cHkucG9ydC5sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgaW1wb3J0IExlYWtEZXRlY3RvclZhbGdy
aW5kCiAKIAogY2xhc3MgR3RrUG9ydChQb3J0KToKQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3MgR3Rr
UG9ydChQb3J0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKICAg
ICAgICAgc3VwZXIoR3RrUG9ydCwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQogICAg
ICAgICBzZWxmLl9wdWxzZWF1ZGlvX3Nhbml0aXplciA9IFB1bHNlQXVkaW9TYW5pdGl6ZXIoKQor
ICAgICAgICBzZWxmLl9sZWFrZGV0ZWN0b3IgPSBMZWFrRGV0ZWN0b3JWYWxncmluZChzZWxmLl9m
aWxlc3lzdGVtLCBzZWxmLnJlc3VsdHNfZGlyZWN0b3J5KCkpCiAKICAgICAgICAgaWYgc2VsZi5n
ZXRfb3B0aW9uKCJsZWFrcyIpOgogICAgICAgICAgICAgaWYgbm90IHNlbGYuZ2V0X29wdGlvbigi
d3JhcHBlciIpOgpAQCAtODEsNiArODMsOSBAQCBjbGFzcyBHdGtQb3J0KFBvcnQpOgogICAgICAg
ICBzdXBlcihHdGtQb3J0LCBzZWxmKS5zZXR1cF90ZXN0X3J1bigpCiAgICAgICAgIHNlbGYuX3B1
bHNlYXVkaW9fc2FuaXRpemVyLnVubG9hZF9wdWxzZWF1ZGlvX21vZHVsZSgpCiAKKyAgICAgICAg
aWYgc2VsZi5nZXRfb3B0aW9uKCJsZWFrcyIpOgorICAgICAgICAgICAgc2VsZi5fbGVha2RldGVj
dG9yLmNsZWFuX2xlYWtzX2ZpbGVzX2Zyb21fcmVzdWx0c19kaXJlY3RvcnkoKQorCiAgICAgZGVm
IGNsZWFuX3VwX3Rlc3RfcnVuKHNlbGYpOgogICAgICAgICBzdXBlcihHdGtQb3J0LCBzZWxmKS5j
bGVhbl91cF90ZXN0X3J1bigpCiAgICAgICAgIHNlbGYuX3B1bHNlYXVkaW9fc2FuaXRpemVyLnJl
c3RvcmVfcHVsc2VhdWRpb19tb2R1bGUoKQpAQCAtMTU5LDYgKzE2NCwxNiBAQCBjbGFzcyBHdGtQ
b3J0KFBvcnQpOgogICAgIGRlZiBfcG9ydF9zcGVjaWZpY19leHBlY3RhdGlvbnNfZmlsZXMoc2Vs
Zik6CiAgICAgICAgIHJldHVybiBbc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX3dlYmtpdF9i
YXNlbGluZV9wYXRoKHApLCAnVGVzdEV4cGVjdGF0aW9ucycpIGZvciBwIGluIHJldmVyc2VkKHNl
bGYuX3NlYXJjaF9wYXRocygpKV0KIAorICAgIGRlZiBwcmludF9sZWFrc19zdW1tYXJ5KHNlbGYp
OgorICAgICAgICBpZiBub3Qgc2VsZi5nZXRfb3B0aW9uKCdsZWFrcycpOgorICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgICMgRklYTUU6IFRoaXMgaXMgYSBoYWNrLCBidXQgd2UgZG9uJ3QgaGF2
ZSBhIGJldHRlciB3YXkgdG8gZ2V0IHRoaXMgaW5mb3JtYXRpb24gZnJvbSB0aGUgd29ya2VycyB5
ZXQKKyAgICAgICAgIyBiZWNhdXNlIHdlJ3JlIGluIHRoZSBtYW5hZ2VyIHByb2Nlc3MuCisgICAg
ICAgIGxlYWtzX2ZpbGVzID0gc2VsZi5fbGVha2RldGVjdG9yLmxlYWtzX2ZpbGVzX2luX3Jlc3Vs
dHNfZGlyZWN0b3J5KCkKKyAgICAgICAgaWYgbm90IGxlYWtzX2ZpbGVzOgorICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgIHNlbGYuX2xlYWtkZXRlY3Rvci5wYXJzZV9hbmRfcHJpbnRfbGVha3Nf
ZGV0YWlsKGxlYWtzX2ZpbGVzKQorCiAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGZpbmQgYSB3YXkg
dG8gc2hhcmUgdGhpcyBpbXBsbWVudGF0aW9uIHdpdGggR3RrLAogICAgICMgb3IgdGVhY2ggcnVu
LWxhdW5jaGVyIGhvdyB0byBjYWxsIHJ1bi1zYWZhcmkgYW5kIG1vdmUgdGhpcyBkb3duIHRvIFBv
cnQuCiAgICAgZGVmIHNob3dfcmVzdWx0c19odG1sX2ZpbGUoc2VsZiwgcmVzdWx0c19maWxlbmFt
ZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9y
X3ZhbGdyaW5kLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92
YWxncmluZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWM1ZjkyNzJjYTA5N2I0ZjU3NjYxZDhmYzBlMjMwOWIy
ZmU4ZWJmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xl
YWtkZXRlY3Rvcl92YWxncmluZC5weQpAQCAtMCwwICsxLDI5NCBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgQmFz
ZWQgb24gY29kZSBmcm9tIENocm9taXVtLCBjb3B5cmlnaHQgYXMgZm9sbG93czoKKyMKKyMgQ29w
eXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CitpbXBvcnQgaGFzaGxpYgoraW1w
b3J0IGxvZ2dpbmcKK2ltcG9ydCByZQoraW1wb3J0IHN1YnByb2Nlc3MKK2Zyb20geG1sLmRvbS5t
aW5pZG9tIGltcG9ydCBwYXJzZVN0cmluZworZnJvbSB4bWwucGFyc2Vycy5leHBhdCBpbXBvcnQg
RXhwYXRFcnJvcgorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworZGVm
IGdldF90ZXh0X29mKHRvcF9ub2RlLCBuYW1lKToKKyAgICAiIiIgUmV0dXJucyBhbGwgdGV4dCBp
biBhbGwgRE9NIG5vZGVzIHdpdGggYSBjZXJ0YWluIHxuYW1lfCB0aGF0IGFyZSBjaGlsZHJlbiBv
ZiB8dG9wX25vZGV8LiAiIiIKKworICAgIHRleHQgPSAiIgorICAgIGZvciBub2Rlc19uYW1lZCBp
biB0b3Bfbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZShuYW1lKToKKyAgICAgICAgdGV4dCArPSAi
Ii5qb2luKFtub2RlLmRhdGEgZm9yIG5vZGUgaW4gbm9kZXNfbmFtZWQuY2hpbGROb2RlcworICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUubm9kZVR5cGUgPT0gbm9kZS5URVhUX05PREVd
KQorICAgIHJldHVybiB0ZXh0CisKKworZGVmIGdldF9DREFUQV9vZih0b3Bfbm9kZSwgbmFtZSk6
CisgICAgIiIiIFJldHVybnMgYWxsIENEQVRBIGluIGFsbCBET00gbm9kZXMgd2l0aCBhIGNlcnRh
aW4gfG5hbWV8IHRoYXQgYXJlIGNoaWxkcmVuIG9mIHx0b3Bfbm9kZXwuICIiIgorCisgICAgdGV4
dCA9ICIiCisgICAgZm9yIG5vZGVzX25hbWVkIGluIHRvcF9ub2RlLmdldEVsZW1lbnRzQnlUYWdO
YW1lKG5hbWUpOgorICAgICAgICB0ZXh0ICs9ICIiLmpvaW4oW25vZGUuZGF0YSBmb3Igbm9kZSBp
biBub2Rlc19uYW1lZC5jaGlsZE5vZGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm9k
ZS5ub2RlVHlwZSA9PSBub2RlLkNEQVRBX1NFQ1RJT05fTk9ERV0pCisgICAgaWYgKHRleHQgPT0g
IiIpOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiB0ZXh0CisKKworIyBDb25zdGFu
dHMgdGhhdCBnaXZlIHJlYWwgbmFtZXMgdG8gdGhlIGFiYnJldmlhdGlvbnMgaW4gdmFsZ3JpbmQg
WE1MIG91dHB1dC4KK0lOU1RSVUNUSU9OX1BPSU5URVIgPSAiaXAiCitPQkpFQ1RfRklMRSA9ICJv
YmoiCitGVU5DVElPTl9OQU1FID0gImZuIgorU1JDX0ZJTEVfRElSID0gImRpciIKK1NSQ19GSUxF
X05BTUUgPSAiZmlsZSIKK1NSQ19MSU5FID0gImxpbmUiCisKKworZGVmIGdhdGhlcl9mcmFtZXMo
bm9kZSwgc291cmNlX2Rpcik6CisgICAgZnJhbWVfZGljdCA9IGxhbWJkYSBmcmFtZTogeworICAg
ICAgICBJTlNUUlVDVElPTl9QT0lOVEVSOiBnZXRfdGV4dF9vZihmcmFtZSwgSU5TVFJVQ1RJT05f
UE9JTlRFUiksCisgICAgICAgIE9CSkVDVF9GSUxFOiBnZXRfdGV4dF9vZihmcmFtZSwgT0JKRUNU
X0ZJTEUpLAorICAgICAgICBGVU5DVElPTl9OQU1FOiBnZXRfdGV4dF9vZihmcmFtZSwgRlVOQ1RJ
T05fTkFNRSksCisgICAgICAgIFNSQ19GSUxFX0RJUjogZ2V0X3RleHRfb2YoZnJhbWUsIFNSQ19G
SUxFX0RJUiksCisgICAgICAgIFNSQ19GSUxFX05BTUU6IGdldF90ZXh0X29mKGZyYW1lLCBTUkNf
RklMRV9OQU1FKSwKKyAgICAgICAgU1JDX0xJTkU6IGdldF90ZXh0X29mKGZyYW1lLCBTUkNfTElO
RSl9CisKKyAgICByZXR1cm4gW2ZyYW1lX2RpY3QoZnJhbWUpIGZvciBmcmFtZSBpbiBub2RlLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJmcmFtZSIpXQorCisKK2NsYXNzIFZhbGdyaW5kRXJyb3I6CisK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX2RpciwgZXJyb3Jfbm9kZSk6CisgICAgICAg
IHNlbGYuX2tpbmQgPSBnZXRfdGV4dF9vZihlcnJvcl9ub2RlLCAia2luZCIpCisgICAgICAgIHNl
bGYuX2JhY2t0cmFjZXMgPSBbXQorICAgICAgICBzZWxmLl9zdXBwcmVzc2lvbiA9IE5vbmUKKyAg
ICAgICAgc2VsZi5fYWRkaXRpb25hbCA9IFtdCisKKyAgICAgICAgIyBJdGVyYXRlIHRocm91Z2gg
dGhlIG5vZGVzLCBwYXJzaW5nIDx3aGF0fGF1eHdoYXQ+PHN0YWNrPiBwYWlycy4KKyAgICAgICAg
ZGVzY3JpcHRpb24gPSBOb25lCisgICAgICAgIGZvciBub2RlIGluIGVycm9yX25vZGUuY2hpbGRO
b2RlczoKKyAgICAgICAgICAgIGlmIG5vZGUubG9jYWxOYW1lID09ICJ3aGF0IiBvciBub2RlLmxv
Y2FsTmFtZSA9PSAiYXV4d2hhdCI6CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiIi5q
b2luKFtuLmRhdGEgZm9yIG4gaW4gbm9kZS5jaGlsZE5vZGVzCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBuLm5vZGVUeXBlID09IG4uVEVYVF9OT0RFXSkKKyAgICAg
ICAgICAgIGVsaWYgbm9kZS5sb2NhbE5hbWUgPT0gInh3aGF0IjoKKyAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiA9IGdldF90ZXh0X29mKG5vZGUsICJ0ZXh0IikKKyAgICAgICAgICAgIGVsaWYg
bm9kZS5sb2NhbE5hbWUgPT0gInN0YWNrIjoKKyAgICAgICAgICAgICAgICBhc3NlcnQgZGVzY3Jp
cHRpb24KKyAgICAgICAgICAgICAgICBzZWxmLl9iYWNrdHJhY2VzLmFwcGVuZChbZGVzY3JpcHRp
b24sIGdhdGhlcl9mcmFtZXMobm9kZSwgc291cmNlX2RpcildKQorICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uID0gTm9uZQorICAgICAgICAgICAgZWxpZiBub2RlLmxvY2FsTmFtZSA9PSAib3Jp
Z2luIjoKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGdldF90ZXh0X29mKG5vZGUsICJ3
aGF0IikKKyAgICAgICAgICAgICAgICBzdGFjayA9IG5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
InN0YWNrIilbMF0KKyAgICAgICAgICAgICAgICBmcmFtZXMgPSBnYXRoZXJfZnJhbWVzKHN0YWNr
LCBzb3VyY2VfZGlyKQorICAgICAgICAgICAgICAgIHNlbGYuX2JhY2t0cmFjZXMuYXBwZW5kKFtk
ZXNjcmlwdGlvbiwgZnJhbWVzXSkKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IE5vbmUK
KyAgICAgICAgICAgICAgICBzdGFjayA9IE5vbmUKKyAgICAgICAgICAgICAgICBmcmFtZXMgPSBO
b25lCisgICAgICAgICAgICBlbGlmIGRlc2NyaXB0aW9uIGFuZCBub2RlLmxvY2FsTmFtZSAhPSBO
b25lOgorICAgICAgICAgICAgICAgICMgVGhlIGxhc3Rlc3QgZGVzY3JpcHRpb24gaGFzIG5vIHN0
YWNrLCBlLmcuICJBZGRyZXNzIDB4MjggaXMgdW5rbm93biIuCisgICAgICAgICAgICAgICAgc2Vs
Zi5fYWRkaXRpb25hbC5hcHBlbmQoZGVzY3JpcHRpb24pCisgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24gPSBOb25lCisKKyAgICAgICAgICAgIGlmIG5vZGUubG9jYWxOYW1lID09ICJzdXBwcmVz
c2lvbiI6CisgICAgICAgICAgICAgICAgc2VsZi5fc3VwcHJlc3Npb24gPSBnZXRfQ0RBVEFfb2Yo
bm9kZSwgInJhd3RleHQiKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIG91dHB1
dCA9IHNlbGYuX2tpbmQgKyAiXG4iCisgICAgICAgIGZvciBiYWNrdHJhY2UgaW4gc2VsZi5fYmFj
a3RyYWNlczoKKyAgICAgICAgICAgIG91dHB1dCArPSBiYWNrdHJhY2VbMF0gKyAiXG4iCisgICAg
ICAgICAgICBmaWx0ZXIgPSBzdWJwcm9jZXNzLlBvcGVuKCJjKytmaWx0IC1uIiwgc3RkaW49c3Vi
cHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRv
dXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNoZWxsPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbG9zZV9mZHM9VHJ1ZSkKKyAgICAgICAgICAgIGJ1ZiA9ICIiCisgICAgICAgICAgICBm
b3IgZnJhbWUgaW4gYmFja3RyYWNlWzFdOgorICAgICAgICAgICAgICAgIGJ1ZiArPSAoZnJhbWVb
RlVOQ1RJT05fTkFNRV0gb3IgZnJhbWVbSU5TVFJVQ1RJT05fUE9JTlRFUl0pICsgIlxuIgorICAg
ICAgICAgICAgKHN0ZG91dGJ1Ziwgc3RkZXJyYnVmKSA9IGZpbHRlci5jb21tdW5pY2F0ZShidWYu
ZW5jb2RlKCdsYXRpbi0xJykpCisgICAgICAgICAgICBkZW1hbmdsZWRfbmFtZXMgPSBzdGRvdXRi
dWYuc3BsaXQoIlxuIikKKworICAgICAgICAgICAgaSA9IDAKKyAgICAgICAgICAgIGZvciBmcmFt
ZSBpbiBiYWNrdHJhY2VbMV06CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICgiICAiICsgZGVt
YW5nbGVkX25hbWVzW2ldKQorICAgICAgICAgICAgICAgIGkgPSBpICsgMQorCisgICAgICAgICAg
ICAgICAgaWYgZnJhbWVbU1JDX0ZJTEVfRElSXSAhPSAiIjoKKyAgICAgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICgiICgiICsgZnJhbWVbU1JDX0ZJTEVfRElSXSArICIvIiArIGZyYW1lW1NSQ19G
SUxFX05BTUVdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKyBmcmFtZVtT
UkNfTElORV0gKyAiKSIpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICIgKCIgKyBmcmFtZVtPQkpFQ1RfRklMRV0gKyAiKSIKKyAgICAgICAgICAg
ICAgICBvdXRwdXQgKz0gIlxuIgorCisgICAgICAgIGZvciBhZGRpdGlvbmFsIGluIHNlbGYuX2Fk
ZGl0aW9uYWw6CisgICAgICAgICAgICBvdXRwdXQgKz0gYWRkaXRpb25hbCArICJcbiIKKworICAg
ICAgICBhc3NlcnQgc2VsZi5fc3VwcHJlc3Npb24gIT0gTm9uZSwgIllvdXIgVmFsZ3JpbmQgZG9l
c24ndCBnZW5lcmF0ZSAiIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAic3VwcHJlc3Npb25zIC0gaXMgaXQgdG9vIG9sZD8iCisKKyAgICAgICAgb3V0cHV0ICs9
ICJTdXBwcmVzc2lvbiAoZXJyb3IgaGFzaD0jJTAxNlgjKTpcbiIgJSBzZWxmLmVycm9yX2hhc2go
KQorCisgICAgICAgICMgV2lkZW4gdGhlIHN1cHByZXNzaW9ucyBzbGlnaHRseS4KKyAgICAgICAg
c3VwcCA9IHNlbGYuX3N1cHByZXNzaW9uCisgICAgICAgIHN1cHAgPSBzdXBwLnJlcGxhY2UoImZ1
bjpfWm53aiIsICJmdW46X1pudyoiKQorICAgICAgICBzdXBwID0gc3VwcC5yZXBsYWNlKCJmdW46
X1pud20iLCAiZnVuOl9abncqIikKKyAgICAgICAgc3VwcCA9IHN1cHAucmVwbGFjZSgiZnVuOl9a
bmFqIiwgImZ1bjpfWm5hKiIpCisgICAgICAgIHN1cHAgPSBzdXBwLnJlcGxhY2UoImZ1bjpfWm5h
bSIsICJmdW46X1puYSoiKQorCisgICAgICAgICMgU3BsaXQgaW50byBsaW5lcyBzbyB3ZSBjYW4g
ZW5mb3JjZSBsZW5ndGggbGltaXRzLgorICAgICAgICBzdXBwbGluZXMgPSBzdXBwLnNwbGl0KCJc
biIpCisgICAgICAgIHN1cHAgPSBOb25lICAjIHRvIGF2b2lkIHJlLXVzZQorCisgICAgICAgICMg
VHJ1bmNhdGUgYXQgbGluZSAyNiAoVkdfTUFYX1NVUFBfQ0FMTEVSUyBwbHVzIDIgZm9yIG5hbWUg
YW5kIHR5cGUpCisgICAgICAgICMgKGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTk0NjggcHJvcG9zZXMgcmFpc2luZworICAgICAgICAjIFZHX01BWF9TVVBQX0NBTExFUlMs
IGJ1dCB3ZSdyZSBwcm9iYWJseSBmaW5lIHdpdGggaXQgYXMgaXMuKQorICAgICAgICBuZXdsZW4g
PSBtaW4oMjYsIGxlbihzdXBwbGluZXMpKQorCisgICAgICAgIGlmIChsZW4oc3VwcGxpbmVzKSA+
IG5ld2xlbik6CisgICAgICAgICAgICBzdXBwbGluZXMgPSBzdXBwbGluZXNbMDpuZXdsZW5dCisg
ICAgICAgICAgICBzdXBwbGluZXMuYXBwZW5kKCJ9IikKKworICAgICAgICBmb3IgZnJhbWUgaW4g
cmFuZ2UobGVuKHN1cHBsaW5lcykpOgorICAgICAgICAgICAgIyBSZXBsYWNlIHRoZSBhbHdheXMt
Y2hhbmdpbmcgYW5vbnltb3VzIG5hbWVzcGFjZSBwcmVmaXggd2l0aCAiKiIuCisgICAgICAgICAg
ICBtID0gcmUubWF0Y2goIiggK2Z1bjopX1pOLipfR0xPQkFMX19OXy4qXC5jY18iICsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAiWzAtOWEtZkEtRl17OH1fWzAtOWEtZkEtRl17OH0oLiopIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwbGluZXNbZnJhbWVdKQorICAgICAgICAgICAg
aWYgbToKKyAgICAgICAgICAgICAgICBzdXBwbGluZXNbZnJhbWVdID0gIioiLmpvaW4obS5ncm91
cHMoKSkKKworICAgICAgICByZXR1cm4gb3V0cHV0ICsgIlxuIi5qb2luKHN1cHBsaW5lcykgKyAi
XG4iCisKKyAgICBkZWYgdW5pcXVlX3N0cmluZyhzZWxmKToKKyAgICAgICAgcmVwID0gc2VsZi5f
a2luZCArICIgIgorICAgICAgICBmb3IgYmFja3RyYWNlIGluIHNlbGYuX2JhY2t0cmFjZXM6Cisg
ICAgICAgICAgICBmb3IgZnJhbWUgaW4gYmFja3RyYWNlWzFdOgorICAgICAgICAgICAgICAgIHJl
cCArPSBmcmFtZVtGVU5DVElPTl9OQU1FXQorCisgICAgICAgICAgICAgICAgaWYgZnJhbWVbU1JD
X0ZJTEVfRElSXSAhPSAiIjoKKyAgICAgICAgICAgICAgICAgICAgcmVwICs9IGZyYW1lW1NSQ19G
SUxFX0RJUl0gKyAiLyIgKyBmcmFtZVtTUkNfRklMRV9OQU1FXQorICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgIHJlcCArPSBmcmFtZVtPQkpFQ1RfRklMRV0KKyAgICAg
ICAgcmV0dXJuIHJlcAorCisgICAgZGVmIGVycm9yX2hhc2goc2VsZik6CisgICAgICAgICMgVGhp
cyBpcyBhIGRldmljZS1pbmRlcGVuZGVudCBoYXNoIGlkZW50aWZ5aW5nIHRoZSBzdXBwcmVzc2lv
bi4KKyAgICAgICAgIyBCeSBwcmludGluZyBvdXQgdGhpcyBoYXNoIHdlIGNhbiBmaW5kIGR1cGxp
Y2F0ZSByZXBvcnRzIGJldHdlZW4gdGVzdHMgYW5kCisgICAgICAgICMgZGlmZmVyZW50IHNoYXJk
cyBydW5uaW5nIG9uIG11bHRpcGxlIGJ1aWxkYm90cworICAgICAgICByZXR1cm4gaW50KGhhc2hs
aWIubWQ1KHNlbGYudW5pcXVlX3N0cmluZygpKS5oZXhkaWdlc3QoKVs6MTZdLCAxNikKKworICAg
IGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGhhc2goc2VsZi51bmlxdWVfc3Ry
aW5nKCkpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIHJocyk6CisgICAgICAgIHJldHVybiBzZWxm
LnVuaXF1ZV9zdHJpbmcoKSA9PSByaHMKKworCitjbGFzcyBMZWFrRGV0ZWN0b3JWYWxncmluZChv
YmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVzeXN0ZW0sIHNvdXJjZV9kaXIp
OgorICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gZmlsZXN5c3RlbQorICAgICAgICBzZWxmLl9z
b3VyY2VfZGlyID0gc291cmNlX2RpcgorCisgICAgICAgICMgQ29udGFpbnMgdGhlIHNldCBvZiB1
bmlxdWUgZXJyb3JzLgorICAgICAgICBzZWxmLl9lcnJvcnMgPSBzZXQoKQorICAgICAgICAjIENv
bnRhaW5zIGFsbCBzdXBwcmVzc2lvbnMgdXNlZC4KKyAgICAgICAgc2VsZi5fc3VwcHJlc3Npb25z
ID0gZGVmYXVsdGRpY3QoaW50KQorCisgICAgZGVmIF9wYXJzZV9sZWFrc19vdXRwdXQoc2VsZiwg
bGVha3Nfb3V0cHV0KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGFyc2VkX3N0cmluZyA9
IHBhcnNlU3RyaW5nKGxlYWtzX291dHB1dCkKKyAgICAgICAgZXhjZXB0IEV4cGF0RXJyb3IsIGU6
CisgICAgICAgICAgICBwYXJzZV9mYWlsZWQgPSBUcnVlCisgICAgICAgICAgICBfbG9nLmVycm9y
KCJjb3VsZCBub3QgcGFyc2UgJXM6ICVzIiAlIChsZWFrc19vdXRwdXQsIGUpKQorICAgICAgICAg
ICAgcmV0dXJuCisKKyAgICAgICAgY3VyX3JlcG9ydF9lcnJvcnMgPSBzZXQoKQorCisgICAgICAg
IGNvbW1hbmRsaW5lID0gTm9uZQorICAgICAgICBwcmVhbWJsZSA9IHBhcnNlZF9zdHJpbmcuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoInByZWFtYmxlIilbMF0KKyAgICAgICAgZm9yIG5vZGUgaW4gcHJl
YW1ibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmUiKToKKyAgICAgICAgICAgIGlmIG5vZGUu
bG9jYWxOYW1lID09ICJsaW5lIjoKKyAgICAgICAgICAgICAgICBmb3IgeCBpbiBub2RlLmNoaWxk
Tm9kZXM6CisgICAgICAgICAgICAgICAgICAgIGlmIHgubm9kZVR5cGUgPT0gbm9kZS5URVhUX05P
REUgYW5kICJDb21tYW5kIiBpbiB4LmRhdGE6CisgICAgICAgICAgICAgICAgICAgICAgICBjb21t
YW5kbGluZSA9IHguZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAg
ICByYXdfZXJyb3JzID0gcGFyc2VkX3N0cmluZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZXJyb3Ii
KQorICAgICAgICBmb3IgcmF3X2Vycm9yIGluIHJhd19lcnJvcnM6CisgICAgICAgICAgICAjIEln
bm9yZSAicG9zc2libGUiIGxlYWtzIGFuZCBJbnZhbGlkUmVhZC9Xcml0ZSBieSBkZWZhdWx0Lgor
ICAgICAgICAgICAgaWYgKGdldF90ZXh0X29mKHJhd19lcnJvciwgImtpbmQiKSAhPSAiTGVha19Q
b3NzaWJseUxvc3QiKSBhbmQgXAorICAgICAgICAgICAgICAgIChnZXRfdGV4dF9vZihyYXdfZXJy
b3IsICJraW5kIikgIT0gIkxlYWtfU3RpbGxSZWFjaGFibGUiKSBhbmQgXAorICAgICAgICAgICAg
ICAgIChnZXRfdGV4dF9vZihyYXdfZXJyb3IsICJraW5kIikgIT0gIkludmFsaWRXcml0ZSIpIGFu
ZCBcCisgICAgICAgICAgICAgICAgKGdldF90ZXh0X29mKHJhd19lcnJvciwgImtpbmQiKSAhPSAi
SW52YWxpZFJlYWQiKToKKyAgICAgICAgICAgICAgICBlcnJvciA9IFZhbGdyaW5kRXJyb3Ioc2Vs
Zi5fc291cmNlX2RpciwgcmF3X2Vycm9yKQorICAgICAgICAgICAgICAgIGlmIGVycm9yIG5vdCBp
biBjdXJfcmVwb3J0X2Vycm9yczoKKyAgICAgICAgICAgICAgICAgICAgIyBXZSBoYXZlbid0IHNl
ZW4gc3VjaCBlcnJvcnMgZG9pbmcgdGhpcyByZXBvcnQgeWV0Li4uCisgICAgICAgICAgICAgICAg
ICAgIGlmIGVycm9yIGluIHNlbGYuX2Vycm9yczoKKyAgICAgICAgICAgICAgICAgICAgICAgICMg
Li4uIGJ1dCB3ZSBzYXcgaXQgaW4gZWFybGllciByZXBvcnRzLCBlLmcuIHByZXZpb3VzIFVJIHRl
c3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cl9yZXBvcnRfZXJyb3JzLmFkZCgiVGhpcyBl
cnJvciB3YXMgYWxyZWFkeSBwcmludGVkIGluICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic29tZSBvdGhlciB0ZXN0LCBzZWUgJ2hhc2g9IyUwMTZYIyci
ICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLmVycm9yX2hhc2goKSkKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgLi4uIGFu
ZCB3ZSBoYXZlbid0IHNlZW4gaXQgaW4gb3RoZXIgdGVzdHMgYXMgd2VsbAorICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fZXJyb3JzLmFkZChlcnJvcikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGN1cl9yZXBvcnRfZXJyb3JzLmFkZChlcnJvcikKKworICAgICAgICBzdXBwY291bnRsaXN0
ID0gcGFyc2VkX3N0cmluZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3VwcGNvdW50cyIpCisgICAg
ICAgIGlmIGxlbihzdXBwY291bnRsaXN0KSA+IDA6CisgICAgICAgICAgICBzdXBwY291bnRsaXN0
ID0gc3VwcGNvdW50bGlzdFswXQorICAgICAgICAgICAgZm9yIG5vZGUgaW4gc3VwcGNvdW50bGlz
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFpciIpOgorICAgICAgICAgICAgICAgIGNvdW50ID0g
Z2V0X3RleHRfb2Yobm9kZSwgImNvdW50IikKKyAgICAgICAgICAgICAgICBuYW1lID0gZ2V0X3Rl
eHRfb2Yobm9kZSwgIm5hbWUiKQorICAgICAgICAgICAgICAgIHNlbGYuX3N1cHByZXNzaW9uc1tu
YW1lXSArPSBpbnQoY291bnQpCisKKyAgICAgICAgcmV0dXJuIGN1cl9yZXBvcnRfZXJyb3JzCisK
KyAgICBkZWYgbGVha3NfZmlsZXNfaW5fcmVzdWx0c19kaXJlY3Rvcnkoc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLl9maWxlc3lzdGVtLmdsb2Ioc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYu
X3NvdXJjZV9kaXIsICJkcnQtKi1sZWFrcy54bWwiKSkKKworICAgIGRlZiBjbGVhbl9sZWFrc19m
aWxlc19mcm9tX3Jlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgorICAgICAgICAjIFJlbW92ZSBvbGQg
VmFsZ3JpbmQgeG1sIGZpbGVzIGJlZm9yZSBzdGFydGluZyB0aGlzIHJ1bi4KKyAgICAgICAgbGVh
a3NfZmlsZXMgPSBzZWxmLmxlYWtzX2ZpbGVzX2luX3Jlc3VsdHNfZGlyZWN0b3J5KCkKKyAgICAg
ICAgZm9yIGYgaW4gbGVha3NfZmlsZXM6CisgICAgICAgICAgICBzZWxmLl9maWxlc3lzdGVtLnJl
bW92ZShmKQorCisgICAgZGVmIHBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwoc2VsZiwgbGVh
a3NfZmlsZXMpOgorICAgICAgICBmb3IgZiBpbiBsZWFrc19maWxlczoKKyAgICAgICAgICAgIGxl
YWtzX291dHB1dCA9IHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF9iaW5hcnlfZmlsZShmKQorICAgICAg
ICAgICAgZGV0ZWN0ZWRfbGVha3MgPSBzZWxmLl9wYXJzZV9sZWFrc19vdXRwdXQobGVha3Nfb3V0
cHV0KQorCisgICAgICAgIF9sb2cuaW5mbygiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKQorICAgICAgICBfbG9nLmluZm8oIlN1cHByZXNzaW9u
cyB1c2VkOiIpCisgICAgICAgIF9sb2cuaW5mbygiICBjb3VudCBuYW1lIikKKyAgICAgICAgZm9y
IChuYW1lLCBjb3VudCkgaW4gc29ydGVkKHNlbGYuX3N1cHByZXNzaW9ucy5pdGVtcygpLCBrZXk9
bGFtYmRhIChrLCB2KTogKHYsIGspKToKKyAgICAgICAgICAgIF9sb2cuaW5mbygiJTdkICVzIiAl
IChjb3VudCwgbmFtZSkpCisgICAgICAgIF9sb2cuaW5mbygiLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKQorCisgICAgICAgIGlmIHNlbGYuX2Vy
cm9yczoKKyAgICAgICAgICAgIF9sb2cuaW5mbygiVmFsZ3JpbmQgZGV0ZWN0ZWQgJXMgbGVha3M6
IiAlIGxlbihzZWxmLl9lcnJvcnMpKQorICAgICAgICAgICAgZm9yIGxlYWsgaW4gc2VsZi5fZXJy
b3JzOgorICAgICAgICAgICAgICAgIF9sb2cuaW5mbyhsZWFrKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZF91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmRfdW5pdHRl
c3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjMwZGNiYTUyMTE0ZTc5N2NhZmI2MTNmYzI5M2Q0YTYzYzNjZjc5
NwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0
ZWN0b3JfdmFsZ3JpbmRfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw4MTIgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBs
b2dnaW5nCitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCitmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQor
ZnJvbSB3ZWJraXRweS5wb3J0LmxlYWtkZXRlY3Rvcl92YWxncmluZCBpbXBvcnQgTGVha0RldGVj
dG9yVmFsZ3JpbmQKKworCitkZWYgbWFrZV9tb2NrX3ZhbGdyaW5kX291dHB1dChwcm9jZXNzX25h
bWUsIHBpZCwgdXVpZCk6CisgICAgcmV0dXJuICIiIjw/eG1sIHZlcnNpb249IjEuMCI/PgorCis8
dmFsZ3JpbmRvdXRwdXQ+CisKKzxwcm90b2NvbHZlcnNpb24+NDwvcHJvdG9jb2x2ZXJzaW9uPgor
PHByb3RvY29sdG9vbD5tZW1jaGVjazwvcHJvdG9jb2x0b29sPgorCis8cHJlYW1ibGU+CisgIDxs
aW5lPk1lbWNoZWNrLCBhIG1lbW9yeSBlcnJvciBkZXRlY3RvcjwvbGluZT4KKyAgPGxpbmU+Q29w
eXJpZ2h0IChDKSAyMDAyLTIwMTEsIGFuZCBHTlUgR1BMJ2QsIGJ5IEp1bGlhbiBTZXdhcmQgZXQg
YWwuPC9saW5lPgorICA8bGluZT5Vc2luZyBWYWxncmluZC0zLjcuMCBhbmQgTGliVkVYOyByZXJ1
biB3aXRoIC1oIGZvciBjb3B5cmlnaHQgaW5mbzwvbGluZT4KKyAgPGxpbmU+Q29tbWFuZDogL2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy97cHJvY2Vzc19uYW1l
fSAtPC9saW5lPgorPC9wcmVhbWJsZT4KKworPHBpZD57cGlkfTwvcGlkPgorPHBwaWQ+MTg1Nzc8
L3BwaWQ+Cis8dG9vbD5tZW1jaGVjazwvdG9vbD4KKworPGFyZ3M+CisgIDx2YXJndj4KKyAgICA8
ZXhlPi91c3IvYmluL3ZhbGdyaW5kLmJpbjwvZXhlPgorICAgIDxhcmc+LS10b29sPW1lbWNoZWNr
PC9hcmc+CisgICAgPGFyZz4tLW51bS1jYWxsZXJzPTQwPC9hcmc+CisgICAgPGFyZz4tLWRlbWFu
Z2xlPW5vPC9hcmc+CisgICAgPGFyZz4tLXRyYWNlLWNoaWxkcmVuPW5vPC9hcmc+CisgICAgPGFy
Zz4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1jaGVjaz15
ZXM8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1yZXNvbHV0aW9uPWhpZ2g8L2FyZz4KKyAgICA8YXJn
Pi0tc2hvdy1wb3NzaWJseS1sb3N0PW5vPC9hcmc+CisgICAgPGFyZz4tLXNob3ctcmVhY2hhYmxl
PW5vPC9hcmc+CisgICAgPGFyZz4tLWxlYWstY2hlY2s9ZnVsbDwvYXJnPgorICAgIDxhcmc+LS11
bmRlZi12YWx1ZS1lcnJvcnM9bm88L2FyZz4KKyAgICA8YXJnPi0tZ2VuLXN1cHByZXNzaW9ucz1h
bGw8L2FyZz4KKyAgICA8YXJnPi0teG1sPXllczwvYXJnPgorICAgIDxhcmc+LS14bWwtZmlsZT0v
aG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xheW91dC10ZXN0LXJlc3VsdHMv
ZHJ0LXtwaWR9LXt1dWlkfS1sZWFrcy54bWw8L2FyZz4KKyAgICA8YXJnPi0tc3VwcHJlc3Npb25z
PS9ob21lL3VzZXIvV2ViS2l0L1Rvb2xzL1NjcmlwdHMvdmFsZ3JpbmQvc3VwcHJlc3Npb25zLnR4
dDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L3Vzci9saWIvdmFsZ3JpbmQvZGViaWFu
LWxpYmM2LWRiZy5zdXBwPC9hcmc+CisgIDwvdmFyZ3Y+CisgIDxhcmd2PgorICAgIDxleGU+L2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy97cHJvY2Vzc19uYW1l
fTwvZXhlPgorICAgIDxhcmc+LTwvYXJnPgorICA8L2FyZ3Y+Cis8L2FyZ3M+CisKKzxzdGF0dXM+
CisgIDxzdGF0ZT5SVU5OSU5HPC9zdGF0ZT4KKyAgPHRpbWU+MDA6MDA6MDA6MDAuMDI0IDwvdGlt
ZT4KKzwvc3RhdHVzPgorCisKKzxzdGF0dXM+CisgIDxzdGF0ZT5GSU5JU0hFRDwvc3RhdGU+Cisg
IDx0aW1lPjAwOjAwOjAwOjU0LjE4NiA8L3RpbWU+Cis8L3N0YXR1cz4KKworPGVycm9yPgorICA8
dW5pcXVlPjB4MWE0PC91bmlxdWU+CisgIDx0aWQ+MTwvdGlkPgorICA8a2luZD5MZWFrX0RlZmlu
aXRlbHlMb3N0PC9raW5kPgorICA8eHdoYXQ+CisgICAgPHRleHQ+OCBieXRlcyBpbiAxIGJsb2Nr
cyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQyMSBvZiA3LDk3MjwvdGV4dD4K
KyAgICA8bGVha2VkYnl0ZXM+ODwvbGVha2VkYnl0ZXM+CisgICAgPGxlYWtlZGJsb2Nrcz4xPC9s
ZWFrZWRibG9ja3M+CisgIDwveHdoYXQ+CisgIDxzdGFjaz4KKyAgICA8ZnJhbWU+CisgICAgICA8
aXA+MHg0QzJBRjhFPC9pcD4KKyAgICAgIDxvYmo+L3Vzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2Fk
X21lbWNoZWNrLWFtZDY0LWxpbnV4LnNvPC9vYmo+CisgICAgICA8Zm4+X1pud208L2ZuPgorICAg
IDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgzOURFQzwvaXA+CisgICAgICA8
b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0
Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk5TdDE0X0Z1bmN0aW9uX2Jhc2Ux
M19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9u
UG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dU
RjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQ
b2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdl
cl9vcGVyYXRpb248L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4
NjFFN0IwMzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1Jl
bGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj53
ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXc8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZy
YW1lPgorICAgICAgPGlwPjB4NjFDQkE2RDwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2Vi
S2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8
L29iaj4KKyAgICAgIDxmbj5fWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0
aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0
YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUU8L2ZuPgorICAgIDwvZnJh
bWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgzREY1MjwvaXA+CisgICAgICA8b2JqPi9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMu
MC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIx
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1l
bnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVT
QV88L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgxN0VGQzwv
aXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxp
YnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29y
ZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9jdW1lbnRMb2Fk
ZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUU8
L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgxODcyOTwvaXA+
CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMv
bGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTEx
RnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExvYWRlckU8L2ZuPgorICAgIDwvZnJhbWU+
CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgxOEEzQTwvaXA+CisgICAgICA8b2JqPi9ob21l
L3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5z
by4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVS
S05TXzE2RnJhbWVMb2FkUmVxdWVzdEU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgor
ICAgICAgPGlwPjB4NjFFMzE0ODwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dl
YktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4K
KyAgICAgIDxmbj53ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpPC9mbj4KKyAgICA8L2ZyYW1lPgor
ICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQ0Q0JDOTwvaXA+CisgICAgICA8b2JqPi9ob21lL3Vz
ZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWU8L29i
aj4KKyAgICAgIDxmbj5fWkw3cnVuVGVzdFJLU3M8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZy
YW1lPgorICAgICAgPGlwPjB4NDRDRUQ2PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJL
aXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAg
ICAgPGZuPl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2PC9mbj4KKyAgICA8L2ZyYW1lPgorICAg
IDxmcmFtZT4KKyAgICAgIDxpcD4weDQzQTJEMzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIv
V2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWU8L29iaj4K
KyAgICAgIDxmbj5tYWluPC9mbj4KKyAgICA8L2ZyYW1lPgorICA8L3N0YWNrPgorICA8c3VwcHJl
c3Npb24+CisgICAgPHNuYW1lPmluc2VydF9hX3N1cHByZXNzaW9uX25hbWVfaGVyZTwvc25hbWU+
CisgICAgPHNraW5kPk1lbWNoZWNrOkxlYWs8L3NraW5kPgorICAgIDxzZnJhbWU+IDxmdW4+X1pu
d208L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk5TdDE0X0Z1bmN0aW9uX2Jh
c2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0
aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTREb2N1bWVudExvYWRlckVO
M1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFf
MTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NJX1N0MThfTWFu
YWdlcl9vcGVyYXRpb248L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj53ZWJraXRf
d2ViX3BvbGljeV9kZWNpc2lvbl9uZXc8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1
bj5fWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVz
b3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rp
b25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4g
PGZ1bj5fWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJL
TlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQ
dHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV88L2Z1bj4gPC9zZnJhbWU+CisgICAg
PHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRM
b2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzlGb3JtU3RhdGVFRUU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1
bj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExvYWRlckU8L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0
bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFt
ZT4gPGZ1bj53ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxz
ZnJhbWU+IDxmdW4+X1pMN3J1blRlc3RSS1NzPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+
IDxmdW4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNm
cmFtZT4gPGZ1bj5tYWluPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxyYXd0ZXh0PgorPCFbQ0RBVEFb
Cit7eworICAgPGluc2VydF9hX3N1cHByZXNzaW9uX25hbWVfaGVyZT4KKyAgIE1lbWNoZWNrOkxl
YWsKKyAgIGZ1bjpfWm53bQorICAgZnVuOl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFu
YWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktO
UzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVm
UHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlv
bkVFX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlv
bgorICAgZnVuOndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldworICAgZnVuOl9aTjZXZWJL
aXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVl
c3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8x
MlBvbGljeUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVj
a05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNlUmVxdWVzdEVQTlNfMTREb2N1bWVudExv
YWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFUEZ2UHZTM19TOV9iRVNBXwor
ICAgZnVuOl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVudExvYWRlckVQ
TlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJ
TlNfOUZvcm1TdGF0ZUVFRQorICAgZnVuOl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBO
U18xNERvY3VtZW50TG9hZGVyRQorICAgZnVuOl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2Fk
RVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RQorICAgZnVuOndlYmtpdF93ZWJfZnJhbWVfbG9hZF91
cmkKKyAgIGZ1bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1bjpfWkwyMHJ1blRlc3RpbmdTZXJ2ZXJM
b29wdgorICAgZnVuOm1haW4KK319CitdXT4KKyAgICA8L3Jhd3RleHQ+CisgIDwvc3VwcHJlc3Np
b24+Cis8L2Vycm9yPgorCis8ZXJyb3I+CisgIDx1bmlxdWU+MHgxYTU8L3VuaXF1ZT4KKyAgPHRp
ZD4xPC90aWQ+CisgIDxraW5kPkxlYWtfRGVmaW5pdGVseUxvc3Q8L2tpbmQ+CisgIDx4d2hhdD4K
KyAgICA8dGV4dD44IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9z
cyByZWNvcmQgNDIyIG9mIDcsOTcyPC90ZXh0PgorICAgIDxsZWFrZWRieXRlcz44PC9sZWFrZWRi
eXRlcz4KKyAgICA8bGVha2VkYmxvY2tzPjE8L2xlYWtlZGJsb2Nrcz4KKyAgPC94d2hhdD4KKyAg
PHN0YWNrPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDRDMkFGOEU8L2lwPgorICAgICAgPG9i
aj4vdXNyL2xpYi92YWxncmluZC92Z3ByZWxvYWRfbWVtY2hlY2stYW1kNjQtbGludXguc288L29i
aj4KKyAgICAgIDxmbj5fWm53bTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAg
ICA8aXA+MHg2ODM5RDBDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0
QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAg
ICAgPGZuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQ
b2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktOUzFfMTZSZXNvdXJjZVJlc3BvbnNl
RVBGdlB2TlMxXzEyUG9saWN5QWN0aW9uRUVTNl9FVWxTN19FX0UxMF9NX21hbmFnZXJFUlN0OV9B
bnlfZGF0YVJLU0NfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZm4+CisgICAgPC9mcmFtZT4KKyAg
ICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUU3QjAzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAu
MTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZm4+
CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUNCNTI3PC9pcD4KKyAg
ICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3
ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjZXZWJLaXQxN0ZyYW1l
TG9hZGVyQ2xpZW50MzFkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlRVJLTjdXZWJDb3Jl
MTZSZXNvdXJjZVJlc3BvbnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVN0OGZ1bmN0aW9uSUZ2
TlMxXzEyUG9saWN5QWN0aW9uRUVFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAg
ICAgIDxpcD4weDY4MzlFQzA8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJL
aXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+Cisg
ICAgICA8Zm4+X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVS
S05TXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TXzEyUG9saWN5QWN0aW9uRUVTNF88L2ZuPgor
ICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgwMkY2RTwvaXA+CisgICAg
ICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Vi
a2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTE0RG9jdW1l
bnRMb2FkZXIxNnJlc3BvbnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFUktOU18xNlJl
c291cmNlUmVzcG9uc2VFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxp
cD4weDY3RTU5RTA8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8
Zm4+X1pON1dlYkNvcmUxN0NhY2hlZFJhd1Jlc291cmNlMTZyZXNwb25zZVJlY2VpdmVkRVJLTlNf
MTZSZXNvdXJjZVJlc3BvbnNlRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAg
ICA8aXA+MHg2ODRDMjM3PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0
QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAg
ICAgPGZuPl9aTjdXZWJDb3JlMTdTdWJyZXNvdXJjZUxvYWRlcjE4ZGlkUmVjZWl2ZVJlc3BvbnNl
RVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+
CisgICAgICA8aXA+MHg2Rjk1ODQ4PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2Jq
PgorICAgICAgPGZuPl9aTjdXZWJDb3JlTDE5c2VuZFJlcXVlc3RDYWxsYmFja0VQOF9HT2JqZWN0
UDEzX0dBc3luY1Jlc3VsdFB2PC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAg
IDxpcD4weDhFMkQ2Q0E8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXMvUm9vdC9saWI2NC9saWJnaW8tMi4wLnNvLjAuMzgwMC4wPC9vYmo+
CisgICAgICA8Zm4+Z190YXNrX3JldHVybl9ub3c8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2Vy
L1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dpbzwv
ZGlyPgorICAgICAgPGZpbGU+Z3Rhc2suYzwvZmlsZT4KKyAgICAgIDxsaW5lPjExMDg8L2xpbmU+
CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg4RTJENkU4PC9pcD4KKyAg
ICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3Qv
bGliNjQvbGliZ2lvLTIuMC5zby4wLjM4MDAuMDwvb2JqPgorICAgICAgPGZuPmNvbXBsZXRlX2lu
X2lkbGVfY2I8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dpbzwvZGlyPgorICAgICAgPGZpbGU+Z3Rh
c2suYzwvZmlsZT4KKyAgICAgIDxsaW5lPjExMTc8L2xpbmU+CisgICAgPC9mcmFtZT4KKyAgICA8
ZnJhbWU+CisgICAgICA8aXA+MHg5M0E2MkY0PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2xpYi0yLjAuc28u
MC4zODAwLjA8L29iaj4KKyAgICAgIDxmbj5nX21haW5fY29udGV4dF9kaXNwYXRjaDwvZm4+Cisg
ICAgICA8ZGlyPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3Vy
Y2UvZ2xpYi0yLjM4LjAvZ2xpYjwvZGlyPgorICAgICAgPGZpbGU+Z21haW4uYzwvZmlsZT4KKyAg
ICAgIDxsaW5lPjMwNjU8L2xpbmU+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8
aXA+MHg5M0E2NjM3PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2xpYi0yLjAuc28uMC4zODAwLjA8L29iaj4K
KyAgICAgIDxmbj5nX21haW5fY29udGV4dF9pdGVyYXRlLmlzcmEuMjM8L2ZuPgorICAgICAgPGRp
cj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWIt
Mi4zOC4wL2dsaWI8L2Rpcj4KKyAgICAgIDxmaWxlPmdtYWluLmM8L2ZpbGU+CisgICAgICA8bGlu
ZT4zNzEyPC9saW5lPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4OTNB
NkE5OTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llcy9Sb290L2xpYjY0L2xpYmdsaWItMi4wLnNvLjAuMzgwMC4wPC9vYmo+CisgICAgICA8
Zm4+Z19tYWluX2xvb3BfcnVuPC9mbj4KKyAgICAgIDxkaXI+L2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIuMzguMC9nbGliPC9kaXI+CisgICAg
ICA8ZmlsZT5nbWFpbi5jPC9maWxlPgorICAgICAgPGxpbmU+MzkwNjwvbGluZT4KKyAgICA8L2Zy
YW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDgxMjEyMDQ8L2lwPgorICAgICAgPG9iaj4v
aG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvUm9vdC9saWI2NC9saWJn
dGstMy5zby4wLjYwMC4wPC9vYmo+CisgICAgICA8Zm4+Z3RrX21haW48L2ZuPgorICAgICAgPGRp
cj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2d0ayst
My42LjAvZ3RrPC9kaXI+CisgICAgICA8ZmlsZT5ndGttYWluLmM8L2ZpbGU+CisgICAgICA8bGlu
ZT4xMTYyPC9saW5lPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDRD
QkNFPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9aTDdydW5UZXN0UktT
czwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0NENFRDY8L2lw
PgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dy
YW1zL0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+X1pMMjBydW5UZXN0aW5nU2VydmVy
TG9vcHY8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDNBMkQz
PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Q
cm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPm1haW48L2ZuPgorICAgIDwv
ZnJhbWU+CisgIDwvc3RhY2s+CisgIDxzdXBwcmVzc2lvbj4KKyAgICA8c25hbWU+aW5zZXJ0X2Ff
c3VwcHJlc3Npb25fbmFtZV9oZXJlPC9zbmFtZT4KKyAgICA8c2tpbmQ+TWVtY2hlY2s6TGVhazwv
c2tpbmQ+CisgICAgPHNmcmFtZT4gPGZ1bj5fWm53bTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2Zy
YW1lPiA8ZnVuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3Jl
MTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktOUzFfMTZSZXNvdXJjZVJlc3Bv
bnNlRVBGdlB2TlMxXzEyUG9saWN5QWN0aW9uRUVTNl9FVWxTN19FX0UxMF9NX21hbmFnZXJFUlN0
OV9BbnlfZGF0YVJLU0NfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZnVuPiA8L3NmcmFtZT4KKyAg
ICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZnVuPiA8L3Nm
cmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzFk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlRVJLTjdXZWJDb3JlMTZSZXNvdXJjZVJlc3Bv
bnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0
aW9uRUVFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxM1Bv
bGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUVQ
RnZQdk5TXzEyUG9saWN5QWN0aW9uRUVTNF88L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4g
PGZ1bj5fWk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxNnJlc3BvbnNlUmVjZWl2ZWRFUE5TXzE0
Q2FjaGVkUmVzb3VyY2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VFPC9mdW4+IDwvc2ZyYW1lPgor
ICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxN0NhY2hlZFJhd1Jlc291cmNlMTZyZXNwb25z
ZVJlY2VpdmVkRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8
c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTdTdWJyZXNvdXJjZUxvYWRlcjE4ZGlkUmVjZWl2ZVJl
c3BvbnNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2Zy
YW1lPiA8ZnVuPl9aTjdXZWJDb3JlTDE5c2VuZFJlcXVlc3RDYWxsYmFja0VQOF9HT2JqZWN0UDEz
X0dBc3luY1Jlc3VsdFB2PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+Z190YXNr
X3JldHVybl9ub3c8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5jb21wbGV0ZV9p
bl9pZGxlX2NiPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+Z19tYWluX2NvbnRl
eHRfZGlzcGF0Y2g8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5nX21haW5fY29u
dGV4dF9pdGVyYXRlLmlzcmEuMjM8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5n
X21haW5fbG9vcF9ydW48L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5ndGtfbWFp
bjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTDdydW5UZXN0UktTczwvZnVu
PiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2
PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+bWFpbjwvZnVuPiA8L3NmcmFtZT4K
KyAgICA8cmF3dGV4dD4KKzwhW0NEQVRBWwore3sKKyAgIDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9u
YW1lX2hlcmU+CisgICBNZW1jaGVjazpMZWFrCisgICBmdW46X1pud20KKyAgIGZ1bjpfWk5TdDE0
X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4
Y2hlY2tDb250ZW50UG9saWN5RVJLTlMxXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TMV8xMlBv
bGljeUFjdGlvbkVFUzZfRVVsUzdfRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NDX1N0
MThfTWFuYWdlcl9vcGVyYXRpb24KKyAgIGZ1bjp3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9u
ZXcKKyAgIGZ1bjpfWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDMxZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZUVSS043V2ViQ29yZTE2UmVzb3VyY2VSZXNwb25zZUVSS05TMV8xNVJl
c291cmNlUmVxdWVzdEVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRQorICAgZnVu
Ol9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktOU18xNlJl
c291cmNlUmVzcG9uc2VFUEZ2UHZOU18xMlBvbGljeUFjdGlvbkVFUzRfCisgICBmdW46X1pON1dl
YkNvcmUxNERvY3VtZW50TG9hZGVyMTZyZXNwb25zZVJlY2VpdmVkRVBOU18xNENhY2hlZFJlc291
cmNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRQorICAgZnVuOl9aTjdXZWJDb3JlMTdDYWNoZWRS
YXdSZXNvdXJjZTE2cmVzcG9uc2VSZWNlaXZlZEVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAg
IGZ1bjpfWk43V2ViQ29yZTE3U3VicmVzb3VyY2VMb2FkZXIxOGRpZFJlY2VpdmVSZXNwb25zZUVS
S05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43V2ViQ29yZUwxOXNlbmRSZXF1ZXN0
Q2FsbGJhY2tFUDhfR09iamVjdFAxM19HQXN5bmNSZXN1bHRQdgorICAgZnVuOmdfdGFza19yZXR1
cm5fbm93CisgICBmdW46Y29tcGxldGVfaW5faWRsZV9jYgorICAgZnVuOmdfbWFpbl9jb250ZXh0
X2Rpc3BhdGNoCisgICBmdW46Z19tYWluX2NvbnRleHRfaXRlcmF0ZS5pc3JhLjIzCisgICBmdW46
Z19tYWluX2xvb3BfcnVuCisgICBmdW46Z3RrX21haW4KKyAgIGZ1bjpfWkw3cnVuVGVzdFJLU3MK
KyAgIGZ1bjpfWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdgorICAgZnVuOm1haW4KK319CitdXT4K
KyAgICA8L3Jhd3RleHQ+CisgIDwvc3VwcHJlc3Npb24+Cis8L2Vycm9yPgorCis8ZXJyb3I+Cisg
IDx1bmlxdWU+MHgxYTY8L3VuaXF1ZT4KKyAgPHRpZD4xPC90aWQ+CisgIDxraW5kPkxlYWtfRGVm
aW5pdGVseUxvc3Q8L2tpbmQ+CisgIDx4d2hhdD4KKyAgICA8dGV4dD44IGJ5dGVzIGluIDEgYmxv
Y2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgNDIzIG9mIDcsOTcyPC90ZXh0
PgorICAgIDxsZWFrZWRieXRlcz44PC9sZWFrZWRieXRlcz4KKyAgICA8bGVha2VkYmxvY2tzPjE8
L2xlYWtlZGJsb2Nrcz4KKyAgPC94d2hhdD4KKyAgPHN0YWNrPgorICAgIDxmcmFtZT4KKyAgICAg
IDxpcD4weDRDMkFGOEU8L2lwPgorICAgICAgPG9iaj4vdXNyL2xpYi92YWxncmluZC92Z3ByZWxv
YWRfbWVtY2hlY2stYW1kNjQtbGludXguc288L29iaj4KKyAgICAgIDxmbj5fWm53bTwvZm4+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODM5REVDPC9pcD4KKyAgICAg
IDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJr
aXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTlN0MTRfRnVuY3Rpb25fYmFz
ZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRp
b25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3VtZW50TG9hZGVyRU4z
V1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9iRVNDX0VVbE5TMV8x
MlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0lfU3QxOF9NYW5h
Z2VyX29wZXJhdGlvbjwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+
MHg2MUU3QjAzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQv
UmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZu
PndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8
ZnJhbWU+CisgICAgICA8aXA+MHg2MUNCQTZEPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTku
Mzwvb2JqPgorICAgICAgPGZuPl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25B
Y3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3Jt
U3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRTwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODNERjUyPC9pcD4KKyAgICAgIDxvYmo+
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2Vy
MjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNlUmVxdWVzdEVQTlNfMTREb2N1
bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFUEZ2UHZTM19TOV9i
RVNBXzwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODE3RUZD
PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8u
bGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExv
YWRlckVOU18xM0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVF
RTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODE4NzI5PC9p
cD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGli
cy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3Jl
MTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVyRTwvZm4+CisgICAgPC9mcmFt
ZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODE4QTNBPC9pcD4KKyAgICAgIDxvYmo+L2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4w
LnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2Fk
RVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+
CisgICAgICA8aXA+MHg2MUUzMTQ4PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2Jq
PgorICAgICAgPGZuPndlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmk8L2ZuPgorICAgIDwvZnJhbWU+
CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDRDQzUwPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwv
b2JqPgorICAgICAgPGZuPl9aTDdydW5UZXN0UktTczwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8
ZnJhbWU+CisgICAgICA8aXA+MHg0NENFRDY8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9vYmo+Cisg
ICAgICA8Zm4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2ZuPgorICAgIDwvZnJhbWU+Cisg
ICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDNBMkQzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2Jq
PgorICAgICAgPGZuPm1haW48L2ZuPgorICAgIDwvZnJhbWU+CisgIDwvc3RhY2s+CisgIDxzdXBw
cmVzc2lvbj4KKyAgICA8c25hbWU+aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPC9zbmFt
ZT4KKyAgICA8c2tpbmQ+TWVtY2hlY2s6TGVhazwvc2tpbmQ+CisgICAgPHNmcmFtZT4gPGZ1bj5f
Wm53bTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTlN0MTRfRnVuY3Rpb25f
YmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmln
YXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3VtZW50TG9hZGVy
RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9iRVNDX0VVbE5T
MV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0lfU3QxOF9N
YW5hZ2VyX29wZXJhdGlvbjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtp
dF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8
ZnVuPl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktOUzFfMTVS
ZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5j
dGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1l
PiA8ZnVuPl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lF
UktOU18xNVJlc291cmNlUmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1Jl
ZlB0cklOU185Rm9ybVN0YXRlRUVFUEZ2UHZTM19TOV9iRVNBXzwvZnVuPiA8L3NmcmFtZT4KKyAg
ICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVu
dExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBh
c3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8
ZnVuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVyRTwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRl
cjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2Zy
YW1lPiA8ZnVuPndlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmk8L2Z1bj4gPC9zZnJhbWU+CisgICAg
PHNmcmFtZT4gPGZ1bj5fWkw3cnVuVGVzdFJLU3M8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFt
ZT4gPGZ1bj5fWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8
c2ZyYW1lPiA8ZnVuPm1haW48L2Z1bj4gPC9zZnJhbWU+CisgICAgPHJhd3RleHQ+Cis8IVtDREFU
QVsKK3t7CisgICA8aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPgorICAgTWVtY2hlY2s6
TGVhaworICAgZnVuOl9abndtCisgICBmdW46X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9t
YW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVS
S05TMV8xNVJlc291cmNlUmVxdWVzdEVQTlMxXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NS
ZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVQRnZQdlM1X1NCX2JFU0NfRVVsTlMxXzEyUG9saWN5QWN0
aW9uRUVfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRhUktTSV9TdDE4X01hbmFnZXJfb3BlcmF0
aW9uCisgICBmdW46d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3CisgICBmdW46X1pONldl
YktpdDE3RnJhbWVMb2FkZXJDbGllbnQzOWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkVSS043V2ViQ29yZTE2TmF2aWdhdGlvbkFjdGlvbkVSS05TMV8xNVJlc291cmNlUmVx
dWVzdEVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVN0OGZ1bmN0aW9uSUZ2TlMx
XzEyUG9saWN5QWN0aW9uRUVFCisgICBmdW46X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNo
ZWNrTmF2aWdhdGlvblBvbGljeUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVBOU18xNERvY3VtZW50
TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUVQRnZQdlMzX1M5X2JFU0Ff
CisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjJsb2FkV2l0aERvY3VtZW50TG9hZGVy
RVBOU18xNERvY3VtZW50TG9hZGVyRU5TXzEzRnJhbWVMb2FkVHlwZUVOM1dURjEwUGFzc1JlZlB0
cklOU185Rm9ybVN0YXRlRUVFCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRF
UE5TXzE0RG9jdW1lbnRMb2FkZXJFCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxv
YWRFUktOU18xNkZyYW1lTG9hZFJlcXVlc3RFCisgICBmdW46d2Via2l0X3dlYl9mcmFtZV9sb2Fk
X3VyaQorICAgZnVuOl9aTDdydW5UZXN0UktTcworICAgZnVuOl9aTDIwcnVuVGVzdGluZ1NlcnZl
ckxvb3B2CisgICBmdW46bWFpbgorfX0KK11dPgorICAgIDwvcmF3dGV4dD4KKyAgPC9zdXBwcmVz
c2lvbj4KKzwvZXJyb3I+CisKKzxlcnJvcmNvdW50cz4KKzwvZXJyb3Jjb3VudHM+CisKKzxzdXBw
Y291bnRzPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTA3PC9jb3VudD4KKyAgICA8bmFtZT5GY0Nv
bmZpZ0FwcEZvbnRBZGRGaWxlIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBh
aXI+CisgICAgPGNvdW50PjIwOTg8L2NvdW50PgorICAgIDxuYW1lPmd0a19pbml0X2NoZWNrIChU
aGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjE8L2Nv
dW50PgorICAgIDxuYW1lPmdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nIChUaGlyZCBwYXJ0eSk8
L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjI3PC9jb3VudD4KKyAgICA8
bmFtZT5GY0NvbmZpZ1BhcnNlQW5kTG9hZCAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+
CisgIDxwYWlyPgorICAgIDxjb3VudD44MDwvY291bnQ+CisgICAgPG5hbWU+d2Via2l0QWNjZXNz
aWJsZU5ldzwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTc3PC9jb3Vu
dD4KKyAgICA8bmFtZT5nX3RocmVhZF9wcm94eSAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3Bh
aXI+CisgIDxwYWlyPgorICAgIDxjb3VudD45PC9jb3VudD4KKyAgICA8bmFtZT5GY1BhdHRlcm5P
YmplY3RJbnNlcnRFbHQgMiAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWly
PgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5ndGtfd2luZG93X3JlYWxpemUgKFRo
aXJkIFBhcnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTwvY291
bnQ+CisgICAgPG5hbWU+X19uc3NfZGF0YWJhc2VfbG9va3VwIChUaGlyZCBQYXJ0eSk8L25hbWU+
CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjE8L2NvdW50PgorICAgIDxuYW1lPmNh
aXJvX3NldF9zb3VyY2Vfc3VyZmFjZSAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+Cisg
IDxwYWlyPgorICAgIDxjb3VudD4yPC9jb3VudD4KKyAgICA8bmFtZT5saWJHTC5zbyAoVGhpcmQg
cGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4K
KyAgICA8bmFtZT5nX3Rhc2tfcnVuX2luX3RocmVhZCAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8
L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4yPC9jb3VudD4KKyAgICA8bmFtZT5XVEY6OlRo
cmVhZElkZW50aWZpZXJEYXRhOjppbml0aWFsaXplKCkgKEludGVudGlvbmFsKTwvbmFtZT4KKyAg
PC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTwvY291bnQ+CisgICAgPG5hbWU+Z3RrX2Nz
c19wcm92aWRlcl9sb2FkX2Zyb21fZGF0YSAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+
CisgIDxwYWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5saWJlbmNoYW50LnNv
IG5ldyAoVGhpcmQgcGFydHkpPC9uYW1lPgorICA8L3BhaXI+Cis8L3N1cHBjb3VudHM+CisKKzwv
dmFsZ3JpbmRvdXRwdXQ+CisiIiIuZm9ybWF0KHByb2Nlc3NfbmFtZT1wcm9jZXNzX25hbWUsIHBp
ZD1waWQsIHV1aWQ9dXVpZCkKKworCitkZWYgbWFrZV9tb2NrX2luY29tcGxldGVfdmFsZ3JpbmRf
b3V0cHV0KHByb2Nlc3NfbmFtZSwgcGlkLCB1dWlkKToKKyAgICByZXR1cm4gIiIiPD94bWwgdmVy
c2lvbj0iMS4wIj8+CisKKzx2YWxncmluZG91dHB1dD4KKworPHByb3RvY29sdmVyc2lvbj40PC9w
cm90b2NvbHZlcnNpb24+Cis8cHJvdG9jb2x0b29sPm1lbWNoZWNrPC9wcm90b2NvbHRvb2w+CisK
KzxwcmVhbWJsZT4KKyAgPGxpbmU+TWVtY2hlY2ssIGEgbWVtb3J5IGVycm9yIGRldGVjdG9yPC9s
aW5lPgorICA8bGluZT5Db3B5cmlnaHQgKEMpIDIwMDItMjAxMSwgYW5kIEdOVSBHUEwnZCwgYnkg
SnVsaWFuIFNld2FyZCBldCBhbC48L2xpbmU+CisgIDxsaW5lPlVzaW5nIFZhbGdyaW5kLTMuNy4w
IGFuZCBMaWJWRVg7IHJlcnVuIHdpdGggLWggZm9yIGNvcHlyaWdodCBpbmZvPC9saW5lPgorICA8
bGluZT5Db21tYW5kOiAvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dy
YW1zL3twcm9jZXNzX25hbWV9IC08L2xpbmU+Cis8L3ByZWFtYmxlPgorCis8cGlkPntwaWR9PC9w
aWQ+Cis8cHBpZD4xODU3NzwvcHBpZD4KKzx0b29sPm1lbWNoZWNrPC90b29sPgorCis8YXJncz4K
KyAgPHZhcmd2PgorICAgIDxleGU+L3Vzci9iaW4vdmFsZ3JpbmQuYmluPC9leGU+CisgICAgPGFy
Zz4tLXRvb2w9bWVtY2hlY2s8L2FyZz4KKyAgICA8YXJnPi0tbnVtLWNhbGxlcnM9NDA8L2FyZz4K
KyAgICA8YXJnPi0tZGVtYW5nbGU9bm88L2FyZz4KKyAgICA8YXJnPi0tdHJhY2UtY2hpbGRyZW49
bm88L2FyZz4KKyAgICA8YXJnPi0tc21jLWNoZWNrPWFsbC1ub24tZmlsZTwvYXJnPgorICAgIDxh
cmc+LS1sZWFrLWNoZWNrPXllczwvYXJnPgorICAgIDxhcmc+LS1sZWFrLXJlc29sdXRpb249aGln
aDwvYXJnPgorICAgIDxhcmc+LS1zaG93LXBvc3NpYmx5LWxvc3Q9bm88L2FyZz4KKyAgICA8YXJn
Pi0tc2hvdy1yZWFjaGFibGU9bm88L2FyZz4KKyAgICA8YXJnPi0tbGVhay1jaGVjaz1mdWxsPC9h
cmc+CisgICAgPGFyZz4tLXVuZGVmLXZhbHVlLWVycm9ycz1ubzwvYXJnPgorICAgIDxhcmc+LS1n
ZW4tc3VwcHJlc3Npb25zPWFsbDwvYXJnPgorICAgIDxhcmc+LS14bWw9eWVzPC9hcmc+CisgICAg
PGFyZz4tLXhtbC1maWxlPS9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGF5
b3V0LXRlc3QtcmVzdWx0cy9kcnQte3BpZH0te3V1aWR9LWxlYWtzLnhtbDwvYXJnPgorICAgIDxh
cmc+LS1zdXBwcmVzc2lvbnM9L2hvbWUvdXNlci9XZWJLaXQvVG9vbHMvU2NyaXB0cy92YWxncmlu
ZC9zdXBwcmVzc2lvbnMudHh0PC9hcmc+CisgICAgPGFyZz4tLXN1cHByZXNzaW9ucz0vdXNyL2xp
Yi92YWxncmluZC9kZWJpYW4tbGliYzYtZGJnLnN1cHA8L2FyZz4KKyAgPC92YXJndj4KKyAgPGFy
Z3Y+CisgICAgPGV4ZT4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dy
YW1zL3twcm9jZXNzX25hbWV9PC9leGU+CisgICAgPGFyZz4tPC9hcmc+CisgIDwvYXJndj4KKzwv
YXJncz4KKworPHN0YXR1cz4KKyAgPHN0YXRlPlJVTk5JTkc8L3N0YXRlPgorICA8dGltZT4wMDow
MDowMDowMC4wMjQgPC90aW1lPgorPC9zdGF0dXM+CisiIiIuZm9ybWF0KHByb2Nlc3NfbmFtZT1w
cm9jZXNzX25hbWUsIHBpZD1waWQsIHV1aWQ9dXVpZCkKKworCitkZWYgbWFrZV9tb2NrX3ZhbGdy
aW5kX3Jlc3VsdHMoKToKKyAgICByZXR1cm4gIiIiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N1cHByZXNzaW9ucyB1c2VkOgorICBjb3VudCBu
YW1lCisgICAgICAyIF9fbnNzX2RhdGFiYXNlX2xvb2t1cCAoVGhpcmQgUGFydHkpCisgICAgICAy
IGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZSAoVGhpcmQgUGFydHkpCisgICAgICAyIGdfcXVhcmtf
ZnJvbV9zdGF0aWNfc3RyaW5nIChUaGlyZCBwYXJ0eSkKKyAgICAgIDIgZ190YXNrX3J1bl9pbl90
aHJlYWQgKFRoaXJkIFBhcnR5KQorICAgICAgMiBndGtfY3NzX3Byb3ZpZGVyX2xvYWRfZnJvbV9k
YXRhIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgZ3RrX3dpbmRvd19yZWFsaXplIChUaGlyZCBQYXJ0
eSkKKyAgICAgIDIgbGliZW5jaGFudC5zbyBuZXcgKFRoaXJkIHBhcnR5KQorICAgICAgNCBXVEY6
OlRocmVhZElkZW50aWZpZXJEYXRhOjppbml0aWFsaXplKCkgKEludGVudGlvbmFsKQorICAgICAg
NCBsaWJHTC5zbyAoVGhpcmQgcGFydHkpCisgICAgIDE4IEZjUGF0dGVybk9iamVjdEluc2VydEVs
dCAyIChUaGlyZCBQYXJ0eSkKKyAgICAgNTQgRmNDb25maWdQYXJzZUFuZExvYWQgKFRoaXJkIFBh
cnR5KQorICAgIDE2MCB3ZWJraXRBY2Nlc3NpYmxlTmV3CisgICAgMjE0IEZjQ29uZmlnQXBwRm9u
dEFkZEZpbGUgKFRoaXJkIFBhcnR5KQorICAgIDM1NCBnX3RocmVhZF9wcm94eSAoVGhpcmQgUGFy
dHkpCisgICA0MTk2IGd0a19pbml0X2NoZWNrIChUaGlyZCBQYXJ0eSkKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitWYWxncmluZCBkZXRlY3Rl
ZCAyIGxlYWtzOgorTGVha19EZWZpbml0ZWx5TG9zdAorOCBieXRlcyBpbiAxIGJsb2NrcyBhcmUg
ZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQyMSBvZiA3LDk3MgorICBvcGVyYXRvciBu
ZXcodW5zaWduZWQgbG9uZykgKC91c3IvbGliL3ZhbGdyaW5kL3ZncHJlbG9hZF9tZW1jaGVjay1h
bWQ2NC1saW51eC5zbykKKyAgc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxXZWJD
b3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBib29s
KSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGljeUFjdGlvbikjMX0+OjpfTV9tYW5hZ2Vy
KHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxXZWJD
b3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBib29s
KSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGljeUFjdGlvbikjMX0+IGNvbnN0Jiwgc3Rk
OjpfTWFuYWdlcl9vcGVyYXRpb24pICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxl
YXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICB3ZWJraXRfd2ViX3BvbGlj
eV9kZWNpc2lvbl9uZXcgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxp
YnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJDb3JlOjpOYXZp
Z2F0aW9uQWN0aW9uIGNvbnN0JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2Vi
Q29yZTo6UG9saWN5QWN0aW9uKT4pICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxl
YXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpQb2xpY3lD
aGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNv
bnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25z
dCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBib29sKSwgdm9pZCopICgv
aG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0z
LjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExv
YWRlcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUsIFdU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+KSAoL2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSAoL2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNv
LjAuMTkuMykKKyAgV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQoV2ViQ29yZTo6RnJhbWVMb2Fk
UmVxdWVzdCBjb25zdCYpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5s
aWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICB3ZWJraXRfd2ViX2ZyYW1lX2xvYWRf
dXJpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtp
dGd0ay0zLjAuc28uMC4xOS4zKQorICBydW5UZXN0KHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsIHN0
ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QmKSAoL2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJl
ZSkKKyAgcnVuVGVzdGluZ1NlcnZlckxvb3AoKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZSkKKyAgbWFpbiAoL2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZSkKK1N1cHBy
ZXNzaW9uIChlcnJvciBoYXNoPSMwNDQ5RDNFRDI1M0ZFMUY5Iyk6CisKK3sKKyAgIDxpbnNlcnRf
YV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+CisgICBNZW1jaGVjazpMZWFrCisgICBmdW46X1pudyoK
KyAgIGZ1bjpfWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEz
UG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1
ZXN0RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0
ZUVFRVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2Vy
RVJTdDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb24KKyAgIGZ1bjp3ZWJraXRf
d2ViX3BvbGljeV9kZWNpc2lvbl9uZXcKKyAgIGZ1bjpfWk42V2ViS2l0MTdGcmFtZUxvYWRlckNs
aWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJDb3Jl
MTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVm
UHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUUK
KyAgIGZ1bjpfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5
RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NS
ZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV8KKyAgIGZ1bjpfWk43V2ViQ29y
ZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9jdW1lbnRMb2Fk
ZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUUK
KyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExvYWRl
ckUKKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2Fk
UmVxdWVzdEUKKyAgIGZ1bjp3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpCisgICBmdW46X1pMN3J1
blRlc3RSS1NzCisgICBmdW46X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHYKKyAgIGZ1bjptYWlu
Cit9CisKKworTGVha19EZWZpbml0ZWx5TG9zdAorOCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVm
aW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQyMiBvZiA3LDk3MgorICBvcGVyYXRvciBuZXco
dW5zaWduZWQgbG9uZykgKC91c3IvbGliL3ZhbGdyaW5kL3ZncHJlbG9hZF9tZW1jaGVjay1hbWQ2
NC1saW51eC5zbykKKyAgc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxXZWJDb3Jl
OjpQb2xpY3lDaGVja2VyOjpjaGVja0NvbnRlbnRQb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSBjb25zdCYsIHZvaWQgKCopKHZvaWQqLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24pLCB2b2lk
Kik6OntsYW1iZGEoV2ViQ29yZTo6UG9saWN5QWN0aW9uKSMxfT46Ol9NX21hbmFnZXIoc3RkOjpf
QW55X2RhdGEmLCBzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9tYW5hZ2VyPFdlYkNvcmU6OlBv
bGljeUNoZWNrZXI6OmNoZWNrQ29udGVudFBvbGljeShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IGNvbnN0Jiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlBvbGljeUFjdGlvbiksIHZvaWQqKTo6
e2xhbWJkYShXZWJDb3JlOjpQb2xpY3lBY3Rpb24pIzF9PiBjb25zdCYsIHN0ZDo6X01hbmFnZXJf
b3BlcmF0aW9uKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9s
aWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25f
bmV3ICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtp
dGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3Qm
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdl
YkNvcmU6OlBvbGljeUFjdGlvbik+KSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVs
ZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6UG9saWN5
Q2hlY2tlcjo6Y2hlY2tDb250ZW50UG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29u
c3QmLCB2b2lkICgqKSh2b2lkKiwgV2ViQ29yZTo6UG9saWN5QWN0aW9uKSwgdm9pZCopICgvaG9t
ZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAu
c28uMC4xOS4zKQorICBXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSosIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3Qm
KSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRn
dGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OnJlc3BvbnNl
UmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYpICgvaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4z
KQorICBXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6
c2VuZFJlcXVlc3RDYWxsYmFjayhfR09iamVjdCosIF9HQXN5bmNSZXN1bHQqLCB2b2lkKikgKC9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMu
MC5zby4wLjE5LjMpCisgIGdfdGFza19yZXR1cm5fbm93ICgvaG9tZS91c2VyL1dlYktpdC9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dpby9ndGFzay5jOjExMDgp
CisgIGNvbXBsZXRlX2luX2lkbGVfY2IgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0Rl
cGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2lvL2d0YXNrLmM6MTExNykKKyAgZ19tYWlu
X2NvbnRleHRfZGlzcGF0Y2ggKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVu
Y2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2xpYi9nbWFpbi5jOjMwNjUpCisgIGdfbWFpbl9jb250
ZXh0X2l0ZXJhdGUuaXNyYS4yMyAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzL1NvdXJjZS9nbGliLTIuMzguMC9nbGliL2dtYWluLmM6MzcxMikKKyAgZ19tYWluX2xv
b3BfcnVuICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNl
L2dsaWItMi4zOC4wL2dsaWIvZ21haW4uYzozOTA2KQorICBndGtfbWFpbiAoL2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9ndGsrLTMuNi4wL2d0ay9ndGtt
YWluLmM6MTE2MikKKyAgcnVuVGVzdChzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJf
dHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0JikgKC9ob21lL3VzZXIv
V2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUpCisgIHJ1
blRlc3RpbmdTZXJ2ZXJMb29wKCkgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVh
c2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUpCisgIG1haW4gKC9ob21lL3VzZXIvV2ViS2l0L1dl
YktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUpCitTdXBwcmVzc2lvbiAo
ZXJyb3IgaGFzaD0jODMxM0RFQjE2QjA2OTQzOCMpOgorCit7CisgICA8aW5zZXJ0X2Ffc3VwcHJl
c3Npb25fbmFtZV9oZXJlPgorICAgTWVtY2hlY2s6TGVhaworICAgZnVuOl9abncqCisgICBmdW46
X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNo
ZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TMV8xNlJlc291cmNlUmVzcG9uc2VFUEZ2UHZO
UzFfMTJQb2xpY3lBY3Rpb25FRVM2X0VVbFM3X0VfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRh
UktTQ19TdDE4X01hbmFnZXJfb3BlcmF0aW9uCisgICBmdW46d2Via2l0X3dlYl9wb2xpY3lfZGVj
aXNpb25fbmV3CisgICBmdW46X1pONldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzMWRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VFUktON1dlYkNvcmUxNlJlc291cmNlUmVzcG9uc2VFUktO
UzFfMTVSZXNvdXJjZVJlcXVlc3RFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUUK
KyAgIGZ1bjpfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9saWN5RVJL
TlNfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlNfMTJQb2xpY3lBY3Rpb25FRVM0XworICAgZnVu
Ol9aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlcjE2cmVzcG9uc2VSZWNlaXZlZEVQTlNfMTRDYWNo
ZWRSZXNvdXJjZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43V2ViQ29yZTE3
Q2FjaGVkUmF3UmVzb3VyY2UxNnJlc3BvbnNlUmVjZWl2ZWRFUktOU18xNlJlc291cmNlUmVzcG9u
c2VFCisgICBmdW46X1pON1dlYkNvcmUxN1N1YnJlc291cmNlTG9hZGVyMThkaWRSZWNlaXZlUmVz
cG9uc2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VFCisgICBmdW46X1pON1dlYkNvcmVMMTlzZW5k
UmVxdWVzdENhbGxiYWNrRVA4X0dPYmplY3RQMTNfR0FzeW5jUmVzdWx0UHYKKyAgIGZ1bjpnX3Rh
c2tfcmV0dXJuX25vdworICAgZnVuOmNvbXBsZXRlX2luX2lkbGVfY2IKKyAgIGZ1bjpnX21haW5f
Y29udGV4dF9kaXNwYXRjaAorICAgZnVuOmdfbWFpbl9jb250ZXh0X2l0ZXJhdGUuaXNyYS4yMwor
ICAgZnVuOmdfbWFpbl9sb29wX3J1bgorICAgZnVuOmd0a19tYWluCisgICBmdW46X1pMN3J1blRl
c3RSS1NzCisgICBmdW46X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHYKKyAgIGZ1bjptYWluCit9
CisKKworIiIiCisKKworZGVmIG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2luY29tcGxldGUo
KToKKyAgICByZXR1cm4gIiIiY291bGQgbm90IHBhcnNlIDw/eG1sIHZlcnNpb249IjEuMCI/Pgor
Cis8dmFsZ3JpbmRvdXRwdXQ+CisKKzxwcm90b2NvbHZlcnNpb24+NDwvcHJvdG9jb2x2ZXJzaW9u
PgorPHByb3RvY29sdG9vbD5tZW1jaGVjazwvcHJvdG9jb2x0b29sPgorCis8cHJlYW1ibGU+Cisg
IDxsaW5lPk1lbWNoZWNrLCBhIG1lbW9yeSBlcnJvciBkZXRlY3RvcjwvbGluZT4KKyAgPGxpbmU+
Q29weXJpZ2h0IChDKSAyMDAyLTIwMTEsIGFuZCBHTlUgR1BMJ2QsIGJ5IEp1bGlhbiBTZXdhcmQg
ZXQgYWwuPC9saW5lPgorICA8bGluZT5Vc2luZyBWYWxncmluZC0zLjcuMCBhbmQgTGliVkVYOyBy
ZXJ1biB3aXRoIC1oIGZvciBjb3B5cmlnaHQgaW5mbzwvbGluZT4KKyAgPGxpbmU+Q29tbWFuZDog
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVy
VHJlZSAtPC9saW5lPgorPC9wcmVhbWJsZT4KKworPHBpZD4yODUzMTwvcGlkPgorPHBwaWQ+MTg1
Nzc8L3BwaWQ+Cis8dG9vbD5tZW1jaGVjazwvdG9vbD4KKworPGFyZ3M+CisgIDx2YXJndj4KKyAg
ICA8ZXhlPi91c3IvYmluL3ZhbGdyaW5kLmJpbjwvZXhlPgorICAgIDxhcmc+LS10b29sPW1lbWNo
ZWNrPC9hcmc+CisgICAgPGFyZz4tLW51bS1jYWxsZXJzPTQwPC9hcmc+CisgICAgPGFyZz4tLWRl
bWFuZ2xlPW5vPC9hcmc+CisgICAgPGFyZz4tLXRyYWNlLWNoaWxkcmVuPW5vPC9hcmc+CisgICAg
PGFyZz4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1jaGVj
az15ZXM8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1yZXNvbHV0aW9uPWhpZ2g8L2FyZz4KKyAgICA8
YXJnPi0tc2hvdy1wb3NzaWJseS1sb3N0PW5vPC9hcmc+CisgICAgPGFyZz4tLXNob3ctcmVhY2hh
YmxlPW5vPC9hcmc+CisgICAgPGFyZz4tLWxlYWstY2hlY2s9ZnVsbDwvYXJnPgorICAgIDxhcmc+
LS11bmRlZi12YWx1ZS1lcnJvcnM9bm88L2FyZz4KKyAgICA8YXJnPi0tZ2VuLXN1cHByZXNzaW9u
cz1hbGw8L2FyZz4KKyAgICA8YXJnPi0teG1sPXllczwvYXJnPgorICAgIDxhcmc+LS14bWwtZmls
ZT0vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xheW91dC10ZXN0LXJlc3Vs
dHMvZHJ0LTI4NTMxLWU4YzdkN2I4M2JlNDExZTM5MGM5ZDQzZDdlMDFiYTA4LWxlYWtzLnhtbDwv
YXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L2hvbWUvdXNlci9XZWJLaXQvVG9vbHMvU2Ny
aXB0cy92YWxncmluZC9zdXBwcmVzc2lvbnMudHh0PC9hcmc+CisgICAgPGFyZz4tLXN1cHByZXNz
aW9ucz0vdXNyL2xpYi92YWxncmluZC9kZWJpYW4tbGliYzYtZGJnLnN1cHA8L2FyZz4KKyAgPC92
YXJndj4KKyAgPGFyZ3Y+CisgICAgPGV4ZT4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9S
ZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9leGU+CisgICAgPGFyZz4tPC9hcmc+Cisg
IDwvYXJndj4KKzwvYXJncz4KKworPHN0YXR1cz4KKyAgPHN0YXRlPlJVTk5JTkc8L3N0YXRlPgor
ICA8dGltZT4wMDowMDowMDowMC4wMjQgPC90aW1lPgorPC9zdGF0dXM+Cis6IG5vIGVsZW1lbnQg
Zm91bmQ6IGxpbmUgNDksIGNvbHVtbiAwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3VwcHJlc3Npb25zIHVzZWQ6CisgIGNvdW50IG5hbWUK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisi
IiIKKworCitkZWYgbWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHNfZW1wdHkoKToKKyAgICByZXR1
cm4gIiIiY291bGQgbm90IHBhcnNlIDogbm8gZWxlbWVudCBmb3VuZDogbGluZSAxLCBjb2x1bW4g
MAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1N1cHByZXNzaW9ucyB1c2VkOgorICBjb3VudCBuYW1lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiIiCisKKworZGVmIG1ha2VfbW9ja192
YWxncmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCgpOgorICAgIHJldHVybiAiIiJjb3VsZCBub3Qg
cGFyc2UgSnVuayB0aGF0IHNob3VsZCBub3QgYXBwZWFyIGluIGEgdmFsZ3JpbmQgeG1sIGZpbGU8
P3htbCB2ZXJzaW9uPSIxLjAiPzogc3ludGF4IGVycm9yOiBsaW5lIDEsIGNvbHVtbiAwCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3VwcHJl
c3Npb25zIHVzZWQ6CisgIGNvdW50IG5hbWUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIiIKKworCitjbGFzcyBMZWFrRGV0ZWN0b3JWYWxn
cmluZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfcGFyc2VfYW5kX3By
aW50X2xlYWtzX2RldGFpbF9wYXNzKHNlbGYpOgorICAgICAgICBtb2NrX3ZhbGdyaW5kX291dHB1
dDEgPSBtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KCdEdW1wUmVuZGVyVHJlZScsIDI4NTI5LCAn
ZGI5MmU0ODQzYmU0MTFlM2JhZTFkNDNkN2UwMWJhMDgnKQorICAgICAgICBtb2NrX3ZhbGdyaW5k
X291dHB1dDIgPSBtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KCdEdW1wUmVuZGVyVHJlZScsIDI4
NTMwLCAnZGQ3MjEzNDIzYmU0MTFlM2FhN2ZkNDNkN2UwMWJhMDgnKQorICAgICAgICBmaWxlcyA9
IHt9CisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTI5LWRi
OTJlNDg0M2JlNDExZTNiYWUxZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gbW9ja192YWxncmlu
ZF9vdXRwdXQxCisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4
NTMwLWRkNzIxMzQyM2JlNDExZTNhYTdmZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gbW9ja192
YWxncmluZF9vdXRwdXQyCisgICAgICAgIGxlYWtkZXRlY3Rvcl92YWxncmluZCA9IExlYWtEZXRl
Y3RvclZhbGdyaW5kKE1vY2tGaWxlU3lzdGVtKGZpbGVzKSwgJy90bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy8nKQorCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBs
ZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbCwgW2ZpbGVz
XSwgZXhwZWN0ZWRfbG9ncz1tYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0cygpKQorCisgICAgZGVm
IHRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9pbmNvbXBsZXRlKHNlbGYpOgorICAg
ICAgICBtb2NrX2luY29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0ID0gbWFrZV9tb2NrX2luY29tcGxl
dGVfdmFsZ3JpbmRfb3V0cHV0KCdEdW1wUmVuZGVyVHJlZScsIDI4NTMxLCAnZThjN2Q3YjgzYmU0
MTFlMzkwYzlkNDNkN2UwMWJhMDgnKQorICAgICAgICBmaWxlcyA9IHt9CisgICAgICAgIGZpbGVz
WycvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMxLWU4YzdkN2I4M2JlNDExZTM5MGM5
ZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gbW9ja19pbmNvbXBsZXRlX3ZhbGdyaW5kX291dHB1
dAorICAgICAgICBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgPSBMZWFrRGV0ZWN0b3JWYWxncmluZChN
b2NrRmlsZVN5c3RlbShmaWxlcyksICcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvJykKKworICAg
ICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgbGVha2RldGVjdG9yX3Zh
bGdyaW5kLnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwsIFtmaWxlc10sIGV4cGVjdGVkX2xv
Z3M9bWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHNfaW5jb21wbGV0ZSgpKQorCisgICAgZGVmIHRl
c3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9lbXB0eShzZWxmKToKKyAgICAgICAgZmls
ZXMgPSB7fQorICAgICAgICBmaWxlc1snL3RtcC9Mb2dzL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0
LTI4NTMyLWViYzlhNmM2M2JlNDExZTM5OWQ0ZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gIiIK
KyAgICAgICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0gTGVha0RldGVjdG9yVmFsZ3JpbmQoTW9j
a0ZpbGVTeXN0ZW0oZmlsZXMpLCAnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzLycpCisKKyAgICAg
ICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGxlYWtkZXRlY3Rvcl92YWxn
cmluZC5wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsLCBbZmlsZXNdLCBleHBlY3RlZF9sb2dz
PW1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2VtcHR5KCkpCisKKyAgICBkZWYgdGVzdF9wYXJz
ZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX21pc2Zvcm1hdHRlZChzZWxmKToKKyAgICAgICAgc2Vs
Zi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtaXNmb3JtYXR0ZWRfbW9ja192YWxncmluZF9vdXRw
dXQgPSAnSnVuayB0aGF0IHNob3VsZCBub3QgYXBwZWFyIGluIGEgdmFsZ3JpbmQgeG1sIGZpbGUn
ICsgbWFrZV9tb2NrX3ZhbGdyaW5kX291dHB1dCgnRHVtcFJlbmRlclRyZWUnLCAyODUzMywgJ2Zh
NmQwY2Q2M2JlNDExZTM5YzcyZDQzZDdlMDFiYTA4JylbOjIwXQorICAgICAgICBmaWxlcyA9IHt9
CisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMzLWZhNmQw
Y2Q2M2JlNDExZTM5YzcyZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gbWlzZm9ybWF0dGVkX21v
Y2tfdmFsZ3JpbmRfb3V0cHV0CisgICAgICAgIGxlYWtkZXRlY3Rvcl92YWxncmluZCA9IExlYWtE
ZXRlY3RvclZhbGdyaW5kKE1vY2tGaWxlU3lzdGVtKGZpbGVzKSwgJy90bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy8nKQorCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxm
LCBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbCwgW2Zp
bGVzXSwgZXhwZWN0ZWRfbG9ncz1tYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0c19taXNmb3JtYXR0
ZWQoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220722</attachid>
            <date>2014-01-09 06:32:31 -0800</date>
            <delta_ts>2014-01-10 06:07:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119446-20140109143327.patch</filename>
            <type>text/plain</type>
            <size>57594</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMjA2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Y2MmExNTJkODExZTg1NTgxOWQwM2RjOTZmODk4ZjFm
YzQ0YzIzMS4uZjU2ZjU0M2QyMmQ0MWNjYzJkMTZhYzc4Mjc3ZTEyMmQyNTBhMDI1ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDE0LTAxLTAyICBCcmlhbiBIb2x0ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbR1RLXSBQYXJzZSBWYWxncmluZCB4bWwgbGVhayBmaWxlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDQ2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBn
ZW5lcmF0ZWQgYnkgVmFsZ3JpbmQgdG8geWllbGQgdXNlZnVsCisgICAgICAgIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBtZW1vcnkgbGVha3MuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZ3RrLnB5OgorICAgICAgICAoR3RrUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChHdGtQb3J0
LnNldHVwX3Rlc3RfcnVuKTogQ2xlYXIgdGhlIHByZXZpb3VzIG91dHB1dCBmaWxlcyBiZWZvcmUg
bmV3CisgICAgICAgIHJ1bi4KKyAgICAgICAgKEd0a1BvcnQucHJpbnRfbGVha3Nfc3VtbWFyeSk6
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5k
LnB5OiBBZGRlZC4KKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBnZW5lcmF0ZWQgYnkgVmFs
Z3JpbmQgYW5kIHN1bW1hcmlzZSBsZWFrcworICAgICAgICBpbnRvIGFuIGVhc2lseSB1bmRlcnN0
YW5kYWJsZSBsaXN0LgorICAgICAgICAoZ2V0X3RleHRfb2YpOgorICAgICAgICAoZ2V0X0NEQVRB
X29mKToKKyAgICAgICAgKGdhdGhlcl9mcmFtZXMpOgorICAgICAgICAoVmFsZ3JpbmRFcnJvcik6
CisgICAgICAgIChWYWxncmluZEVycm9yLl9faW5pdF9fKToKKyAgICAgICAgKFZhbGdyaW5kRXJy
b3IuX19zdHJfXyk6CisgICAgICAgIChWYWxncmluZEVycm9yLnVuaXF1ZV9zdHJpbmcpOgorICAg
ICAgICAoVmFsZ3JpbmRFcnJvci5lcnJvcl9oYXNoKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3Iu
X19oYXNoX18pOgorICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX2VxX18pOgorICAgICAgICAoTGVh
a0RldGVjdG9yVmFsZ3JpbmQpOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmQuX19pbml0
X18pOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmQuX3BhcnNlX2xlYWtzX291dHB1dCk6
CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZC5sZWFrc19maWxlc19pbl9yZXN1bHRzX2Rp
cmVjdG9yeSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZC5jbGVhbl9sZWFrc19maWxl
c19mcm9tX3Jlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5k
LnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwpOgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZF91bml0dGVzdC5weTogQWRkZWQuCisgICAg
ICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KToKKyAgICAgICAgKG1ha2VfbW9ja19pbmNv
bXBsZXRlX3ZhbGdyaW5kX291dHB1dCk6CisgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVz
dWx0cyk6CisgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0c19pbmNvbXBsZXRlKToK
KyAgICAgICAgKG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2VtcHR5KToKKyAgICAgICAgKG1h
a2VfbW9ja192YWxncmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCk6CisgICAgICAgIChMZWFrRGV0
ZWN0b3JWYWxncmluZFRlc3QpOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmRUZXN0LnRl
c3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9wYXNzKToKKyAgICAgICAgKExlYWtEZXRl
Y3RvclZhbGdyaW5kVGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfaW5jb21w
bGV0ZSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9hbmRf
cHJpbnRfbGVha3NfZGV0YWlsX2VtcHR5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5k
VGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfbWlzZm9ybWF0dGVkKToKKyAg
ICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5kVGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFr
c19kZXRhaWxfcGFzcyk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9w
YXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX2luY29tcGxldGUpOgorICAgICAgICAoTGVha0Rl
dGVjdG9yVmFsZ3JpbmRUZXN0LnRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9lbXB0
eSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9hbmRfcHJp
bnRfbGVha3NfZGV0YWlsX21pc2Zvcm1hdHRlZCk6CisKIDIwMTQtMDEtMDEgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFJlbmFtZSBsaWJ0
ZXN0bmV0c2NhcGVwbHVnaW4gdG8gbGliVGVzdE5ldHNjYXBlUGx1Z2luCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2d0ay5weQppbmRleCAyYjhlMjc4MGRmZWI4MjMxNzlkM2I2ZDJkZTlkNjkwMDI5MWM1
NjljLi4wZDVkNzg0OTk0ZDkxZjFjNzU0ODYwYWVjNWE4M2JiNWMyY2FiOTBjIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9ndGsucHkKQEAgLTM4LDYgKzM4LDcgQEAgZnJvbSB3ZWJraXRweS5wb3J0
LnB1bHNlYXVkaW9fc2FuaXRpemVyIGltcG9ydCBQdWxzZUF1ZGlvU2FuaXRpemVyCiBmcm9tIHdl
YmtpdHB5LnBvcnQueHZmYmRyaXZlciBpbXBvcnQgWHZmYkRyaXZlcgogZnJvbSB3ZWJraXRweS5w
b3J0Lndlc3RvbmRyaXZlciBpbXBvcnQgV2VzdG9uRHJpdmVyCiBmcm9tIHdlYmtpdHB5LnBvcnQu
bGludXhfZ2V0X2NyYXNoX2xvZyBpbXBvcnQgR0RCQ3Jhc2hMb2dHZW5lcmF0b3IKK2Zyb20gd2Vi
a2l0cHkucG9ydC5sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgaW1wb3J0IExlYWtEZXRlY3RvclZhbGdy
aW5kCiAKIAogY2xhc3MgR3RrUG9ydChQb3J0KToKQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3MgR3Rr
UG9ydChQb3J0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKICAg
ICAgICAgc3VwZXIoR3RrUG9ydCwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQogICAg
ICAgICBzZWxmLl9wdWxzZWF1ZGlvX3Nhbml0aXplciA9IFB1bHNlQXVkaW9TYW5pdGl6ZXIoKQor
ICAgICAgICBzZWxmLl9sZWFrZGV0ZWN0b3IgPSBMZWFrRGV0ZWN0b3JWYWxncmluZChzZWxmLl9m
aWxlc3lzdGVtLCBzZWxmLnJlc3VsdHNfZGlyZWN0b3J5KCkpCiAKICAgICAgICAgaWYgc2VsZi5n
ZXRfb3B0aW9uKCJsZWFrcyIpOgogICAgICAgICAgICAgaWYgbm90IHNlbGYuZ2V0X29wdGlvbigi
d3JhcHBlciIpOgpAQCAtODEsNiArODMsOSBAQCBjbGFzcyBHdGtQb3J0KFBvcnQpOgogICAgICAg
ICBzdXBlcihHdGtQb3J0LCBzZWxmKS5zZXR1cF90ZXN0X3J1bigpCiAgICAgICAgIHNlbGYuX3B1
bHNlYXVkaW9fc2FuaXRpemVyLnVubG9hZF9wdWxzZWF1ZGlvX21vZHVsZSgpCiAKKyAgICAgICAg
aWYgc2VsZi5nZXRfb3B0aW9uKCJsZWFrcyIpOgorICAgICAgICAgICAgc2VsZi5fbGVha2RldGVj
dG9yLmNsZWFuX2xlYWtzX2ZpbGVzX2Zyb21fcmVzdWx0c19kaXJlY3RvcnkoKQorCiAgICAgZGVm
IGNsZWFuX3VwX3Rlc3RfcnVuKHNlbGYpOgogICAgICAgICBzdXBlcihHdGtQb3J0LCBzZWxmKS5j
bGVhbl91cF90ZXN0X3J1bigpCiAgICAgICAgIHNlbGYuX3B1bHNlYXVkaW9fc2FuaXRpemVyLnJl
c3RvcmVfcHVsc2VhdWRpb19tb2R1bGUoKQpAQCAtMTU5LDYgKzE2NCwxNiBAQCBjbGFzcyBHdGtQ
b3J0KFBvcnQpOgogICAgIGRlZiBfcG9ydF9zcGVjaWZpY19leHBlY3RhdGlvbnNfZmlsZXMoc2Vs
Zik6CiAgICAgICAgIHJldHVybiBbc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX3dlYmtpdF9i
YXNlbGluZV9wYXRoKHApLCAnVGVzdEV4cGVjdGF0aW9ucycpIGZvciBwIGluIHJldmVyc2VkKHNl
bGYuX3NlYXJjaF9wYXRocygpKV0KIAorICAgIGRlZiBwcmludF9sZWFrc19zdW1tYXJ5KHNlbGYp
OgorICAgICAgICBpZiBub3Qgc2VsZi5nZXRfb3B0aW9uKCdsZWFrcycpOgorICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgICMgRklYTUU6IFRoaXMgaXMgYSBoYWNrLCBidXQgd2UgZG9uJ3QgaGF2
ZSBhIGJldHRlciB3YXkgdG8gZ2V0IHRoaXMgaW5mb3JtYXRpb24gZnJvbSB0aGUgd29ya2VycyB5
ZXQKKyAgICAgICAgIyBiZWNhdXNlIHdlJ3JlIGluIHRoZSBtYW5hZ2VyIHByb2Nlc3MuCisgICAg
ICAgIGxlYWtzX2ZpbGVzID0gc2VsZi5fbGVha2RldGVjdG9yLmxlYWtzX2ZpbGVzX2luX3Jlc3Vs
dHNfZGlyZWN0b3J5KCkKKyAgICAgICAgaWYgbm90IGxlYWtzX2ZpbGVzOgorICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgIHNlbGYuX2xlYWtkZXRlY3Rvci5wYXJzZV9hbmRfcHJpbnRfbGVha3Nf
ZGV0YWlsKGxlYWtzX2ZpbGVzKQorCiAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGZpbmQgYSB3YXkg
dG8gc2hhcmUgdGhpcyBpbXBsbWVudGF0aW9uIHdpdGggR3RrLAogICAgICMgb3IgdGVhY2ggcnVu
LWxhdW5jaGVyIGhvdyB0byBjYWxsIHJ1bi1zYWZhcmkgYW5kIG1vdmUgdGhpcyBkb3duIHRvIFBv
cnQuCiAgICAgZGVmIHNob3dfcmVzdWx0c19odG1sX2ZpbGUoc2VsZiwgcmVzdWx0c19maWxlbmFt
ZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9y
X3ZhbGdyaW5kLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92
YWxncmluZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTJkZTlkOTVmZTRmNmFiOGZhN2ZkZmVlMWVmMzhiY2I1
YzdjN2I4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xl
YWtkZXRlY3Rvcl92YWxncmluZC5weQpAQCAtMCwwICsxLDI5NSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgQmFz
ZWQgb24gY29kZSBmcm9tIENocm9taXVtLCBjb3B5cmlnaHQgYXMgZm9sbG93czoKKyMKKyMgQ29w
eXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CitpbXBvcnQgaGFzaGxpYgoraW1w
b3J0IGxvZ2dpbmcKK2ltcG9ydCByZQoraW1wb3J0IHN1YnByb2Nlc3MKK2Zyb20geG1sLmRvbS5t
aW5pZG9tIGltcG9ydCBwYXJzZVN0cmluZworZnJvbSB4bWwucGFyc2Vycy5leHBhdCBpbXBvcnQg
RXhwYXRFcnJvcgorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9y
dCBFeGVjdXRpdmUKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2Rl
ZiBnZXRfdGV4dF9vZih0b3Bfbm9kZSwgbmFtZSk6CisgICAgIiIiIFJldHVybnMgYWxsIHRleHQg
aW4gYWxsIERPTSBub2RlcyB3aXRoIGEgY2VydGFpbiB8bmFtZXwgdGhhdCBhcmUgY2hpbGRyZW4g
b2YgfHRvcF9ub2RlfC4gIiIiCisKKyAgICB0ZXh0ID0gIiIKKyAgICBmb3Igbm9kZXNfbmFtZWQg
aW4gdG9wX25vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUobmFtZSk6CisgICAgICAgIHRleHQgKz0g
IiIuam9pbihbbm9kZS5kYXRhIGZvciBub2RlIGluIG5vZGVzX25hbWVkLmNoaWxkTm9kZXMKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiBub2RlLm5vZGVUeXBlID09IG5vZGUuVEVYVF9OT0RF
XSkKKyAgICByZXR1cm4gdGV4dAorCisKK2RlZiBnZXRfQ0RBVEFfb2YodG9wX25vZGUsIG5hbWUp
OgorICAgICIiIiBSZXR1cm5zIGFsbCBDREFUQSBpbiBhbGwgRE9NIG5vZGVzIHdpdGggYSBjZXJ0
YWluIHxuYW1lfCB0aGF0IGFyZSBjaGlsZHJlbiBvZiB8dG9wX25vZGV8LiAiIiIKKworICAgIHRl
eHQgPSAiIgorICAgIGZvciBub2Rlc19uYW1lZCBpbiB0b3Bfbm9kZS5nZXRFbGVtZW50c0J5VGFn
TmFtZShuYW1lKToKKyAgICAgICAgdGV4dCArPSAiIi5qb2luKFtub2RlLmRhdGEgZm9yIG5vZGUg
aW4gbm9kZXNfbmFtZWQuY2hpbGROb2RlcworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5v
ZGUubm9kZVR5cGUgPT0gbm9kZS5DREFUQV9TRUNUSU9OX05PREVdKQorICAgIGlmICh0ZXh0ID09
ICIiKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICByZXR1cm4gdGV4dAorCisKKyMgQ29uc3Rh
bnRzIHRoYXQgZ2l2ZSByZWFsIG5hbWVzIHRvIHRoZSBhYmJyZXZpYXRpb25zIGluIHZhbGdyaW5k
IFhNTCBvdXRwdXQuCitJTlNUUlVDVElPTl9QT0lOVEVSID0gImlwIgorT0JKRUNUX0ZJTEUgPSAi
b2JqIgorRlVOQ1RJT05fTkFNRSA9ICJmbiIKK1NSQ19GSUxFX0RJUiA9ICJkaXIiCitTUkNfRklM
RV9OQU1FID0gImZpbGUiCitTUkNfTElORSA9ICJsaW5lIgorCisKK2RlZiBnYXRoZXJfZnJhbWVz
KG5vZGUsIHNvdXJjZV9kaXIpOgorICAgIGZyYW1lX2RpY3QgPSBsYW1iZGEgZnJhbWU6IHsKKyAg
ICAgICAgSU5TVFJVQ1RJT05fUE9JTlRFUjogZ2V0X3RleHRfb2YoZnJhbWUsIElOU1RSVUNUSU9O
X1BPSU5URVIpLAorICAgICAgICBPQkpFQ1RfRklMRTogZ2V0X3RleHRfb2YoZnJhbWUsIE9CSkVD
VF9GSUxFKSwKKyAgICAgICAgRlVOQ1RJT05fTkFNRTogZ2V0X3RleHRfb2YoZnJhbWUsIEZVTkNU
SU9OX05BTUUpLAorICAgICAgICBTUkNfRklMRV9ESVI6IGdldF90ZXh0X29mKGZyYW1lLCBTUkNf
RklMRV9ESVIpLAorICAgICAgICBTUkNfRklMRV9OQU1FOiBnZXRfdGV4dF9vZihmcmFtZSwgU1JD
X0ZJTEVfTkFNRSksCisgICAgICAgIFNSQ19MSU5FOiBnZXRfdGV4dF9vZihmcmFtZSwgU1JDX0xJ
TkUpfQorCisgICAgcmV0dXJuIFtmcmFtZV9kaWN0KGZyYW1lKSBmb3IgZnJhbWUgaW4gbm9kZS5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiZnJhbWUiKV0KKworCitjbGFzcyBWYWxncmluZEVycm9yOgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZV9kaXIsIGVycm9yX25vZGUpOgorICAgICAg
ICBzZWxmLl9raW5kID0gZ2V0X3RleHRfb2YoZXJyb3Jfbm9kZSwgImtpbmQiKQorICAgICAgICBz
ZWxmLl9iYWNrdHJhY2VzID0gW10KKyAgICAgICAgc2VsZi5fc3VwcHJlc3Npb24gPSBOb25lCisg
ICAgICAgIHNlbGYuX2FkZGl0aW9uYWwgPSBbXQorCisgICAgICAgICMgSXRlcmF0ZSB0aHJvdWdo
IHRoZSBub2RlcywgcGFyc2luZyA8d2hhdHxhdXh3aGF0PjxzdGFjaz4gcGFpcnMuCisgICAgICAg
IGRlc2NyaXB0aW9uID0gTm9uZQorICAgICAgICBmb3Igbm9kZSBpbiBlcnJvcl9ub2RlLmNoaWxk
Tm9kZXM6CisgICAgICAgICAgICBpZiBub2RlLmxvY2FsTmFtZSA9PSAid2hhdCIgb3Igbm9kZS5s
b2NhbE5hbWUgPT0gImF1eHdoYXQiOgorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gIiIu
am9pbihbbi5kYXRhIGZvciBuIGluIG5vZGUuY2hpbGROb2RlcworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgbi5ub2RlVHlwZSA9PSBuLlRFWFRfTk9ERV0pCisgICAg
ICAgICAgICBlbGlmIG5vZGUubG9jYWxOYW1lID09ICJ4d2hhdCI6CisgICAgICAgICAgICAgICAg
ZGVzY3JpcHRpb24gPSBnZXRfdGV4dF9vZihub2RlLCAidGV4dCIpCisgICAgICAgICAgICBlbGlm
IG5vZGUubG9jYWxOYW1lID09ICJzdGFjayI6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGRlc2Ny
aXB0aW9uCisgICAgICAgICAgICAgICAgc2VsZi5fYmFja3RyYWNlcy5hcHBlbmQoW2Rlc2NyaXB0
aW9uLCBnYXRoZXJfZnJhbWVzKG5vZGUsIHNvdXJjZV9kaXIpXSkKKyAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiA9IE5vbmUKKyAgICAgICAgICAgIGVsaWYgbm9kZS5sb2NhbE5hbWUgPT0gIm9y
aWdpbiI6CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBnZXRfdGV4dF9vZihub2RlLCAi
d2hhdCIpCisgICAgICAgICAgICAgICAgc3RhY2sgPSBub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJzdGFjayIpWzBdCisgICAgICAgICAgICAgICAgZnJhbWVzID0gZ2F0aGVyX2ZyYW1lcyhzdGFj
aywgc291cmNlX2RpcikKKyAgICAgICAgICAgICAgICBzZWxmLl9iYWNrdHJhY2VzLmFwcGVuZChb
ZGVzY3JpcHRpb24sIGZyYW1lc10pCisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBOb25l
CisgICAgICAgICAgICAgICAgc3RhY2sgPSBOb25lCisgICAgICAgICAgICAgICAgZnJhbWVzID0g
Tm9uZQorICAgICAgICAgICAgZWxpZiBkZXNjcmlwdGlvbiBhbmQgbm9kZS5sb2NhbE5hbWUgIT0g
Tm9uZToKKyAgICAgICAgICAgICAgICAjIFRoZSBsYXN0ZXN0IGRlc2NyaXB0aW9uIGhhcyBubyBz
dGFjaywgZS5nLiAiQWRkcmVzcyAweDI4IGlzIHVua25vd24iLgorICAgICAgICAgICAgICAgIHNl
bGYuX2FkZGl0aW9uYWwuYXBwZW5kKGRlc2NyaXB0aW9uKQorICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uID0gTm9uZQorCisgICAgICAgICAgICBpZiBub2RlLmxvY2FsTmFtZSA9PSAic3VwcHJl
c3Npb24iOgorICAgICAgICAgICAgICAgIHNlbGYuX3N1cHByZXNzaW9uID0gZ2V0X0NEQVRBX29m
KG5vZGUsICJyYXd0ZXh0IikKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBvdXRw
dXQgPSBzZWxmLl9raW5kICsgIlxuIgorICAgICAgICBmb3IgYmFja3RyYWNlIGluIHNlbGYuX2Jh
Y2t0cmFjZXM6CisgICAgICAgICAgICBvdXRwdXQgKz0gYmFja3RyYWNlWzBdICsgIlxuIgorCisg
ICAgICAgICAgICBidWYgPSAiIgorICAgICAgICAgICAgZm9yIGZyYW1lIGluIGJhY2t0cmFjZVsx
XToKKyAgICAgICAgICAgICAgICBidWYgKz0gKGZyYW1lW0ZVTkNUSU9OX05BTUVdIG9yIGZyYW1l
W0lOU1RSVUNUSU9OX1BPSU5URVJdKSArICJcbiIKKworICAgICAgICAgICAgc3Rkb3V0YnVmID0g
RXhlY3V0aXZlKCkucnVuX2NvbW1hbmQoWydjKytmaWx0JywgJy1uJ10sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dD1idWYuZW5jb2RlKCdsYXRp
bi0xJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
cnJvcl9oYW5kbGVyPUV4ZWN1dGl2ZS5pZ25vcmVfZXJyb3IpCisgICAgICAgICAgICBkZW1hbmds
ZWRfbmFtZXMgPSBzdGRvdXRidWYuc3BsaXQoIlxuIikKKworICAgICAgICAgICAgaSA9IDAKKyAg
ICAgICAgICAgIGZvciBmcmFtZSBpbiBiYWNrdHJhY2VbMV06CisgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICgiICAiICsgZGVtYW5nbGVkX25hbWVzW2ldKQorICAgICAgICAgICAgICAgIGkgPSBp
ICsgMQorCisgICAgICAgICAgICAgICAgaWYgZnJhbWVbU1JDX0ZJTEVfRElSXSAhPSAiIjoKKyAg
ICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICgiICgiICsgZnJhbWVbU1JDX0ZJTEVfRElSXSAr
ICIvIiArIGZyYW1lW1NSQ19GSUxFX05BTUVdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiOiIgKyBmcmFtZVtTUkNfTElORV0gKyAiKSIpCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICIgKCIgKyBmcmFtZVtPQkpFQ1RfRklMRV0g
KyAiKSIKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIlxuIgorCisgICAgICAgIGZvciBhZGRp
dGlvbmFsIGluIHNlbGYuX2FkZGl0aW9uYWw6CisgICAgICAgICAgICBvdXRwdXQgKz0gYWRkaXRp
b25hbCArICJcbiIKKworICAgICAgICBhc3NlcnQgc2VsZi5fc3VwcHJlc3Npb24gIT0gTm9uZSwg
IllvdXIgVmFsZ3JpbmQgZG9lc24ndCBnZW5lcmF0ZSAiIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3VwcHJlc3Npb25zIC0gaXMgaXQgdG9vIG9sZD8iCisK
KyAgICAgICAgb3V0cHV0ICs9ICJTdXBwcmVzc2lvbiAoZXJyb3IgaGFzaD0jJTAxNlgjKTpcbiIg
JSBzZWxmLmVycm9yX2hhc2goKQorCisgICAgICAgICMgV2lkZW4gdGhlIHN1cHByZXNzaW9ucyBz
bGlnaHRseS4KKyAgICAgICAgc3VwcCA9IHNlbGYuX3N1cHByZXNzaW9uCisgICAgICAgIHN1cHAg
PSBzdXBwLnJlcGxhY2UoImZ1bjpfWm53aiIsICJmdW46X1pudyoiKQorICAgICAgICBzdXBwID0g
c3VwcC5yZXBsYWNlKCJmdW46X1pud20iLCAiZnVuOl9abncqIikKKyAgICAgICAgc3VwcCA9IHN1
cHAucmVwbGFjZSgiZnVuOl9abmFqIiwgImZ1bjpfWm5hKiIpCisgICAgICAgIHN1cHAgPSBzdXBw
LnJlcGxhY2UoImZ1bjpfWm5hbSIsICJmdW46X1puYSoiKQorCisgICAgICAgICMgU3BsaXQgaW50
byBsaW5lcyBzbyB3ZSBjYW4gZW5mb3JjZSBsZW5ndGggbGltaXRzLgorICAgICAgICBzdXBwbGlu
ZXMgPSBzdXBwLnNwbGl0KCJcbiIpCisgICAgICAgIHN1cHAgPSBOb25lICAjIHRvIGF2b2lkIHJl
LXVzZQorCisgICAgICAgICMgVHJ1bmNhdGUgYXQgbGluZSAyNiAoVkdfTUFYX1NVUFBfQ0FMTEVS
UyBwbHVzIDIgZm9yIG5hbWUgYW5kIHR5cGUpCisgICAgICAgICMgKGh0dHBzOi8vYnVncy5rZGUu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk0NjggcHJvcG9zZXMgcmFpc2luZworICAgICAgICAjIFZH
X01BWF9TVVBQX0NBTExFUlMsIGJ1dCB3ZSdyZSBwcm9iYWJseSBmaW5lIHdpdGggaXQgYXMgaXMu
KQorICAgICAgICBuZXdsZW4gPSBtaW4oMjYsIGxlbihzdXBwbGluZXMpKQorCisgICAgICAgIGlm
IChsZW4oc3VwcGxpbmVzKSA+IG5ld2xlbik6CisgICAgICAgICAgICBzdXBwbGluZXMgPSBzdXBw
bGluZXNbMDpuZXdsZW5dCisgICAgICAgICAgICBzdXBwbGluZXMuYXBwZW5kKCJ9IikKKworICAg
ICAgICBmb3IgZnJhbWUgaW4gcmFuZ2UobGVuKHN1cHBsaW5lcykpOgorICAgICAgICAgICAgIyBS
ZXBsYWNlIHRoZSBhbHdheXMtY2hhbmdpbmcgYW5vbnltb3VzIG5hbWVzcGFjZSBwcmVmaXggd2l0
aCAiKiIuCisgICAgICAgICAgICBtID0gcmUubWF0Y2goIiggK2Z1bjopX1pOLipfR0xPQkFMX19O
Xy4qXC5jY18iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAiWzAtOWEtZkEtRl17OH1fWzAt
OWEtZkEtRl17OH0oLiopIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwbGluZXNbZnJh
bWVdKQorICAgICAgICAgICAgaWYgbToKKyAgICAgICAgICAgICAgICBzdXBwbGluZXNbZnJhbWVd
ID0gIioiLmpvaW4obS5ncm91cHMoKSkKKworICAgICAgICByZXR1cm4gb3V0cHV0ICsgIlxuIi5q
b2luKHN1cHBsaW5lcykgKyAiXG4iCisKKyAgICBkZWYgdW5pcXVlX3N0cmluZyhzZWxmKToKKyAg
ICAgICAgcmVwID0gc2VsZi5fa2luZCArICIgIgorICAgICAgICBmb3IgYmFja3RyYWNlIGluIHNl
bGYuX2JhY2t0cmFjZXM6CisgICAgICAgICAgICBmb3IgZnJhbWUgaW4gYmFja3RyYWNlWzFdOgor
ICAgICAgICAgICAgICAgIHJlcCArPSBmcmFtZVtGVU5DVElPTl9OQU1FXQorCisgICAgICAgICAg
ICAgICAgaWYgZnJhbWVbU1JDX0ZJTEVfRElSXSAhPSAiIjoKKyAgICAgICAgICAgICAgICAgICAg
cmVwICs9IGZyYW1lW1NSQ19GSUxFX0RJUl0gKyAiLyIgKyBmcmFtZVtTUkNfRklMRV9OQU1FXQor
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJlcCArPSBmcmFtZVtP
QkpFQ1RfRklMRV0KKyAgICAgICAgcmV0dXJuIHJlcAorCisgICAgZGVmIGVycm9yX2hhc2goc2Vs
Zik6CisgICAgICAgICMgVGhpcyBpcyBhIGRldmljZS1pbmRlcGVuZGVudCBoYXNoIGlkZW50aWZ5
aW5nIHRoZSBzdXBwcmVzc2lvbi4KKyAgICAgICAgIyBCeSBwcmludGluZyBvdXQgdGhpcyBoYXNo
IHdlIGNhbiBmaW5kIGR1cGxpY2F0ZSByZXBvcnRzIGJldHdlZW4gdGVzdHMgYW5kCisgICAgICAg
ICMgZGlmZmVyZW50IHNoYXJkcyBydW5uaW5nIG9uIG11bHRpcGxlIGJ1aWxkYm90cworICAgICAg
ICByZXR1cm4gaW50KGhhc2hsaWIubWQ1KHNlbGYudW5pcXVlX3N0cmluZygpKS5oZXhkaWdlc3Qo
KVs6MTZdLCAxNikKKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGhh
c2goc2VsZi51bmlxdWVfc3RyaW5nKCkpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIHJocyk6Cisg
ICAgICAgIHJldHVybiBzZWxmLnVuaXF1ZV9zdHJpbmcoKSA9PSByaHMKKworCitjbGFzcyBMZWFr
RGV0ZWN0b3JWYWxncmluZChvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVz
eXN0ZW0sIHNvdXJjZV9kaXIpOgorICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gZmlsZXN5c3Rl
bQorICAgICAgICBzZWxmLl9zb3VyY2VfZGlyID0gc291cmNlX2RpcgorCisgICAgICAgICMgQ29u
dGFpbnMgdGhlIHNldCBvZiB1bmlxdWUgZXJyb3JzLgorICAgICAgICBzZWxmLl9lcnJvcnMgPSBz
ZXQoKQorICAgICAgICAjIENvbnRhaW5zIGFsbCBzdXBwcmVzc2lvbnMgdXNlZC4KKyAgICAgICAg
c2VsZi5fc3VwcHJlc3Npb25zID0gZGVmYXVsdGRpY3QoaW50KQorCisgICAgZGVmIF9wYXJzZV9s
ZWFrc19vdXRwdXQoc2VsZiwgbGVha3Nfb3V0cHV0KToKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcGFyc2VkX3N0cmluZyA9IHBhcnNlU3RyaW5nKGxlYWtzX291dHB1dCkKKyAgICAgICAgZXhj
ZXB0IEV4cGF0RXJyb3IsIGU6CisgICAgICAgICAgICBwYXJzZV9mYWlsZWQgPSBUcnVlCisgICAg
ICAgICAgICBfbG9nLmVycm9yKCJjb3VsZCBub3QgcGFyc2UgJXM6ICVzIiAlIChsZWFrc19vdXRw
dXQsIGUpKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgY3VyX3JlcG9ydF9lcnJvcnMg
PSBzZXQoKQorCisgICAgICAgIGNvbW1hbmRsaW5lID0gTm9uZQorICAgICAgICBwcmVhbWJsZSA9
IHBhcnNlZF9zdHJpbmcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInByZWFtYmxlIilbMF0KKyAgICAg
ICAgZm9yIG5vZGUgaW4gcHJlYW1ibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmUiKToKKyAg
ICAgICAgICAgIGlmIG5vZGUubG9jYWxOYW1lID09ICJsaW5lIjoKKyAgICAgICAgICAgICAgICBm
b3IgeCBpbiBub2RlLmNoaWxkTm9kZXM6CisgICAgICAgICAgICAgICAgICAgIGlmIHgubm9kZVR5
cGUgPT0gbm9kZS5URVhUX05PREUgYW5kICJDb21tYW5kIiBpbiB4LmRhdGE6CisgICAgICAgICAg
ICAgICAgICAgICAgICBjb21tYW5kbGluZSA9IHguZGF0YQorICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKKworICAgICAgICByYXdfZXJyb3JzID0gcGFyc2VkX3N0cmluZy5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiZXJyb3IiKQorICAgICAgICBmb3IgcmF3X2Vycm9yIGluIHJhd19lcnJvcnM6
CisgICAgICAgICAgICAjIElnbm9yZSAicG9zc2libGUiIGxlYWtzIGFuZCBJbnZhbGlkUmVhZC9X
cml0ZSBieSBkZWZhdWx0LgorICAgICAgICAgICAgaWYgKGdldF90ZXh0X29mKHJhd19lcnJvciwg
ImtpbmQiKSAhPSAiTGVha19Qb3NzaWJseUxvc3QiKSBhbmQgXAorICAgICAgICAgICAgICAgIChn
ZXRfdGV4dF9vZihyYXdfZXJyb3IsICJraW5kIikgIT0gIkxlYWtfU3RpbGxSZWFjaGFibGUiKSBh
bmQgXAorICAgICAgICAgICAgICAgIChnZXRfdGV4dF9vZihyYXdfZXJyb3IsICJraW5kIikgIT0g
IkludmFsaWRXcml0ZSIpIGFuZCBcCisgICAgICAgICAgICAgICAgKGdldF90ZXh0X29mKHJhd19l
cnJvciwgImtpbmQiKSAhPSAiSW52YWxpZFJlYWQiKToKKyAgICAgICAgICAgICAgICBlcnJvciA9
IFZhbGdyaW5kRXJyb3Ioc2VsZi5fc291cmNlX2RpciwgcmF3X2Vycm9yKQorICAgICAgICAgICAg
ICAgIGlmIGVycm9yIG5vdCBpbiBjdXJfcmVwb3J0X2Vycm9yczoKKyAgICAgICAgICAgICAgICAg
ICAgIyBXZSBoYXZlbid0IHNlZW4gc3VjaCBlcnJvcnMgZG9pbmcgdGhpcyByZXBvcnQgeWV0Li4u
CisgICAgICAgICAgICAgICAgICAgIGlmIGVycm9yIGluIHNlbGYuX2Vycm9yczoKKyAgICAgICAg
ICAgICAgICAgICAgICAgICMgLi4uIGJ1dCB3ZSBzYXcgaXQgaW4gZWFybGllciByZXBvcnRzLCBl
LmcuIHByZXZpb3VzIFVJIHRlc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cl9yZXBvcnRf
ZXJyb3JzLmFkZCgiVGhpcyBlcnJvciB3YXMgYWxyZWFkeSBwcmludGVkIGluICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic29tZSBvdGhlciB0ZXN0LCBz
ZWUgJ2hhc2g9IyUwMTZYIyciICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9y
LmVycm9yX2hhc2goKSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgICMgLi4uIGFuZCB3ZSBoYXZlbid0IHNlZW4gaXQgaW4gb3RoZXIgdGVzdHMgYXMg
d2VsbAorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXJyb3JzLmFkZChlcnJvcikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGN1cl9yZXBvcnRfZXJyb3JzLmFkZChlcnJvcikKKworICAg
ICAgICBzdXBwY291bnRsaXN0ID0gcGFyc2VkX3N0cmluZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
c3VwcGNvdW50cyIpCisgICAgICAgIGlmIGxlbihzdXBwY291bnRsaXN0KSA+IDA6CisgICAgICAg
ICAgICBzdXBwY291bnRsaXN0ID0gc3VwcGNvdW50bGlzdFswXQorICAgICAgICAgICAgZm9yIG5v
ZGUgaW4gc3VwcGNvdW50bGlzdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFpciIpOgorICAgICAg
ICAgICAgICAgIGNvdW50ID0gZ2V0X3RleHRfb2Yobm9kZSwgImNvdW50IikKKyAgICAgICAgICAg
ICAgICBuYW1lID0gZ2V0X3RleHRfb2Yobm9kZSwgIm5hbWUiKQorICAgICAgICAgICAgICAgIHNl
bGYuX3N1cHByZXNzaW9uc1tuYW1lXSArPSBpbnQoY291bnQpCisKKyAgICAgICAgcmV0dXJuIGN1
cl9yZXBvcnRfZXJyb3JzCisKKyAgICBkZWYgbGVha3NfZmlsZXNfaW5fcmVzdWx0c19kaXJlY3Rv
cnkoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVtLmdsb2Ioc2VsZi5fZmls
ZXN5c3RlbS5qb2luKHNlbGYuX3NvdXJjZV9kaXIsICJkcnQtKi1sZWFrcy54bWwiKSkKKworICAg
IGRlZiBjbGVhbl9sZWFrc19maWxlc19mcm9tX3Jlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgorICAg
ICAgICAjIFJlbW92ZSBvbGQgVmFsZ3JpbmQgeG1sIGZpbGVzIGJlZm9yZSBzdGFydGluZyB0aGlz
IHJ1bi4KKyAgICAgICAgbGVha3NfZmlsZXMgPSBzZWxmLmxlYWtzX2ZpbGVzX2luX3Jlc3VsdHNf
ZGlyZWN0b3J5KCkKKyAgICAgICAgZm9yIGYgaW4gbGVha3NfZmlsZXM6CisgICAgICAgICAgICBz
ZWxmLl9maWxlc3lzdGVtLnJlbW92ZShmKQorCisgICAgZGVmIHBhcnNlX2FuZF9wcmludF9sZWFr
c19kZXRhaWwoc2VsZiwgbGVha3NfZmlsZXMpOgorICAgICAgICBmb3IgZiBpbiBsZWFrc19maWxl
czoKKyAgICAgICAgICAgIGxlYWtzX291dHB1dCA9IHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF9iaW5h
cnlfZmlsZShmKQorICAgICAgICAgICAgZGV0ZWN0ZWRfbGVha3MgPSBzZWxmLl9wYXJzZV9sZWFr
c19vdXRwdXQobGVha3Nfb3V0cHV0KQorCisgICAgICAgIF9sb2cuaW5mbygiLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKQorICAgICAgICBfbG9n
LmluZm8oIlN1cHByZXNzaW9ucyB1c2VkOiIpCisgICAgICAgIF9sb2cuaW5mbygiICBjb3VudCBu
YW1lIikKKyAgICAgICAgZm9yIChuYW1lLCBjb3VudCkgaW4gc29ydGVkKHNlbGYuX3N1cHByZXNz
aW9ucy5pdGVtcygpLCBrZXk9bGFtYmRhIChrLCB2KTogKHYsIGspKToKKyAgICAgICAgICAgIF9s
b2cuaW5mbygiJTdkICVzIiAlIChjb3VudCwgbmFtZSkpCisgICAgICAgIF9sb2cuaW5mbygiLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKQorCisg
ICAgICAgIGlmIHNlbGYuX2Vycm9yczoKKyAgICAgICAgICAgIF9sb2cuaW5mbygiVmFsZ3JpbmQg
ZGV0ZWN0ZWQgJXMgbGVha3M6IiAlIGxlbihzZWxmLl9lcnJvcnMpKQorICAgICAgICAgICAgZm9y
IGxlYWsgaW4gc2VsZi5fZXJyb3JzOgorICAgICAgICAgICAgICAgIF9sb2cuaW5mbyhsZWFrKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxn
cmluZF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0
b3JfdmFsZ3JpbmRfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMwZGNiYTUyMTE0ZTc5N2NhZmI2
MTNmYzI5M2Q0YTYzYzNjZjc5NwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmRfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw4
MTIgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMK
KyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CisK
K2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tG
aWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBv
cnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRweS5wb3J0LmxlYWtkZXRlY3Rvcl92YWxncmlu
ZCBpbXBvcnQgTGVha0RldGVjdG9yVmFsZ3JpbmQKKworCitkZWYgbWFrZV9tb2NrX3ZhbGdyaW5k
X291dHB1dChwcm9jZXNzX25hbWUsIHBpZCwgdXVpZCk6CisgICAgcmV0dXJuICIiIjw/eG1sIHZl
cnNpb249IjEuMCI/PgorCis8dmFsZ3JpbmRvdXRwdXQ+CisKKzxwcm90b2NvbHZlcnNpb24+NDwv
cHJvdG9jb2x2ZXJzaW9uPgorPHByb3RvY29sdG9vbD5tZW1jaGVjazwvcHJvdG9jb2x0b29sPgor
Cis8cHJlYW1ibGU+CisgIDxsaW5lPk1lbWNoZWNrLCBhIG1lbW9yeSBlcnJvciBkZXRlY3Rvcjwv
bGluZT4KKyAgPGxpbmU+Q29weXJpZ2h0IChDKSAyMDAyLTIwMTEsIGFuZCBHTlUgR1BMJ2QsIGJ5
IEp1bGlhbiBTZXdhcmQgZXQgYWwuPC9saW5lPgorICA8bGluZT5Vc2luZyBWYWxncmluZC0zLjcu
MCBhbmQgTGliVkVYOyByZXJ1biB3aXRoIC1oIGZvciBjb3B5cmlnaHQgaW5mbzwvbGluZT4KKyAg
PGxpbmU+Q29tbWFuZDogL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9n
cmFtcy97cHJvY2Vzc19uYW1lfSAtPC9saW5lPgorPC9wcmVhbWJsZT4KKworPHBpZD57cGlkfTwv
cGlkPgorPHBwaWQ+MTg1Nzc8L3BwaWQ+Cis8dG9vbD5tZW1jaGVjazwvdG9vbD4KKworPGFyZ3M+
CisgIDx2YXJndj4KKyAgICA8ZXhlPi91c3IvYmluL3ZhbGdyaW5kLmJpbjwvZXhlPgorICAgIDxh
cmc+LS10b29sPW1lbWNoZWNrPC9hcmc+CisgICAgPGFyZz4tLW51bS1jYWxsZXJzPTQwPC9hcmc+
CisgICAgPGFyZz4tLWRlbWFuZ2xlPW5vPC9hcmc+CisgICAgPGFyZz4tLXRyYWNlLWNoaWxkcmVu
PW5vPC9hcmc+CisgICAgPGFyZz4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L2FyZz4KKyAgICA8
YXJnPi0tbGVhay1jaGVjaz15ZXM8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1yZXNvbHV0aW9uPWhp
Z2g8L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1wb3NzaWJseS1sb3N0PW5vPC9hcmc+CisgICAgPGFy
Zz4tLXNob3ctcmVhY2hhYmxlPW5vPC9hcmc+CisgICAgPGFyZz4tLWxlYWstY2hlY2s9ZnVsbDwv
YXJnPgorICAgIDxhcmc+LS11bmRlZi12YWx1ZS1lcnJvcnM9bm88L2FyZz4KKyAgICA8YXJnPi0t
Z2VuLXN1cHByZXNzaW9ucz1hbGw8L2FyZz4KKyAgICA8YXJnPi0teG1sPXllczwvYXJnPgorICAg
IDxhcmc+LS14bWwtZmlsZT0vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xh
eW91dC10ZXN0LXJlc3VsdHMvZHJ0LXtwaWR9LXt1dWlkfS1sZWFrcy54bWw8L2FyZz4KKyAgICA8
YXJnPi0tc3VwcHJlc3Npb25zPS9ob21lL3VzZXIvV2ViS2l0L1Rvb2xzL1NjcmlwdHMvdmFsZ3Jp
bmQvc3VwcHJlc3Npb25zLnR4dDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L3Vzci9s
aWIvdmFsZ3JpbmQvZGViaWFuLWxpYmM2LWRiZy5zdXBwPC9hcmc+CisgIDwvdmFyZ3Y+CisgIDxh
cmd2PgorICAgIDxleGU+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9n
cmFtcy97cHJvY2Vzc19uYW1lfTwvZXhlPgorICAgIDxhcmc+LTwvYXJnPgorICA8L2FyZ3Y+Cis8
L2FyZ3M+CisKKzxzdGF0dXM+CisgIDxzdGF0ZT5SVU5OSU5HPC9zdGF0ZT4KKyAgPHRpbWU+MDA6
MDA6MDA6MDAuMDI0IDwvdGltZT4KKzwvc3RhdHVzPgorCisKKzxzdGF0dXM+CisgIDxzdGF0ZT5G
SU5JU0hFRDwvc3RhdGU+CisgIDx0aW1lPjAwOjAwOjAwOjU0LjE4NiA8L3RpbWU+Cis8L3N0YXR1
cz4KKworPGVycm9yPgorICA8dW5pcXVlPjB4MWE0PC91bmlxdWU+CisgIDx0aWQ+MTwvdGlkPgor
ICA8a2luZD5MZWFrX0RlZmluaXRlbHlMb3N0PC9raW5kPgorICA8eHdoYXQ+CisgICAgPHRleHQ+
OCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQy
MSBvZiA3LDk3MjwvdGV4dD4KKyAgICA8bGVha2VkYnl0ZXM+ODwvbGVha2VkYnl0ZXM+CisgICAg
PGxlYWtlZGJsb2Nrcz4xPC9sZWFrZWRibG9ja3M+CisgIDwveHdoYXQ+CisgIDxzdGFjaz4KKyAg
ICA8ZnJhbWU+CisgICAgICA8aXA+MHg0QzJBRjhFPC9pcD4KKyAgICAgIDxvYmo+L3Vzci9saWIv
dmFsZ3JpbmQvdmdwcmVsb2FkX21lbWNoZWNrLWFtZDY0LWxpbnV4LnNvPC9vYmo+CisgICAgICA8
Zm4+X1pud208L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4Njgz
OURFQzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVh
c2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk5T
dDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tl
cjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTRE
b2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVf
U0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2Rh
dGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb248L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZy
YW1lPgorICAgICAgPGlwPjB4NjFFN0IwMzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2Vi
S2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8
L29iaj4KKyAgICAgIDxmbj53ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXc8L2ZuPgorICAg
IDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFDQkE2RDwvaXA+CisgICAgICA8
b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0
Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk42V2ViS2l0MTdGcmFtZUxvYWRl
ckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJD
b3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNz
UmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25F
RUU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgzREY1Mjwv
aXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxp
YnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29y
ZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJl
cXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0
ZUVFRVBGdlB2UzNfUzlfYkVTQV88L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAg
ICAgPGlwPjB4NjgxN0VGQzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktp
dEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAg
ICAgIDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJF
UE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzlGb3JtU3RhdGVFRUU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAg
PGlwPjB4NjgxODcyOTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1
aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAg
IDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExvYWRlckU8
L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgxOEEzQTwvaXA+
CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMv
bGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTEx
RnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEU8L2ZuPgorICAgIDwvZnJh
bWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFFMzE0ODwvaXA+CisgICAgICA8b2JqPi9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMu
MC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj53ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpPC9m
bj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQ0Q0JDOTwvaXA+Cisg
ICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMv
RHVtcFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5fWkw3cnVuVGVzdFJLU3M8L2ZuPgorICAg
IDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDRDRUQ2PC9pcD4KKyAgICAgIDxv
Ymo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVu
ZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2PC9mbj4K
KyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQzQTJEMzwvaXA+CisgICAg
ICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVt
cFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5tYWluPC9mbj4KKyAgICA8L2ZyYW1lPgorICA8
L3N0YWNrPgorICA8c3VwcHJlc3Npb24+CisgICAgPHNuYW1lPmluc2VydF9hX3N1cHByZXNzaW9u
X25hbWVfaGVyZTwvc25hbWU+CisgICAgPHNraW5kPk1lbWNoZWNrOkxlYWs8L3NraW5kPgorICAg
IDxzZnJhbWU+IDxmdW4+X1pud208L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5f
Wk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hl
Y2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFf
MTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2
UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55
X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb248L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNm
cmFtZT4gPGZ1bj53ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXc8L2Z1bj4gPC9zZnJhbWU+
CisgICAgPHNmcmFtZT4gPGZ1bj5fWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9u
QWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9y
bVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUU8L2Z1bj4gPC9zZnJh
bWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tO
YXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRMb2Fk
ZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV88L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIy
MmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxv
YWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUU8L2Z1bj4gPC9zZnJhbWU+
CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTRE
b2N1bWVudExvYWRlckU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2Vi
Q29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEU8L2Z1bj4gPC9z
ZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj53ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpPC9mdW4+
IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pMN3J1blRlc3RSS1NzPC9mdW4+IDwvc2Zy
YW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2Z1bj4g
PC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5tYWluPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxy
YXd0ZXh0PgorPCFbQ0RBVEFbCit7eworICAgPGluc2VydF9hX3N1cHByZXNzaW9uX25hbWVfaGVy
ZT4KKyAgIE1lbWNoZWNrOkxlYWsKKyAgIGZ1bjpfWm53bQorICAgZnVuOl9aTlN0MTRfRnVuY3Rp
b25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05h
dmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3VtZW50TG9h
ZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9iRVNDX0VV
bE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0lfU3Qx
OF9NYW5hZ2VyX29wZXJhdGlvbgorICAgZnVuOndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25l
dworICAgZnVuOl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktO
UzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVT
dDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJDb3JlMTNQ
b2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNlUmVxdWVz
dEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVF
UEZ2UHZTM19TOV9iRVNBXworICAgZnVuOl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIybG9hZFdp
dGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9hZFR5cGVF
TjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRQorICAgZnVuOl9aTjdXZWJDb3JlMTFG
cmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVyRQorICAgZnVuOl9aTjdXZWJDb3Jl
MTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RQorICAgZnVuOndlYmtp
dF93ZWJfZnJhbWVfbG9hZF91cmkKKyAgIGZ1bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1bjpfWkwy
MHJ1blRlc3RpbmdTZXJ2ZXJMb29wdgorICAgZnVuOm1haW4KK319CitdXT4KKyAgICA8L3Jhd3Rl
eHQ+CisgIDwvc3VwcHJlc3Npb24+Cis8L2Vycm9yPgorCis8ZXJyb3I+CisgIDx1bmlxdWU+MHgx
YTU8L3VuaXF1ZT4KKyAgPHRpZD4xPC90aWQ+CisgIDxraW5kPkxlYWtfRGVmaW5pdGVseUxvc3Q8
L2tpbmQ+CisgIDx4d2hhdD4KKyAgICA8dGV4dD44IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZp
bml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgNDIyIG9mIDcsOTcyPC90ZXh0PgorICAgIDxsZWFr
ZWRieXRlcz44PC9sZWFrZWRieXRlcz4KKyAgICA8bGVha2VkYmxvY2tzPjE8L2xlYWtlZGJsb2Nr
cz4KKyAgPC94d2hhdD4KKyAgPHN0YWNrPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDRDMkFG
OEU8L2lwPgorICAgICAgPG9iaj4vdXNyL2xpYi92YWxncmluZC92Z3ByZWxvYWRfbWVtY2hlY2st
YW1kNjQtbGludXguc288L29iaj4KKyAgICAgIDxmbj5fWm53bTwvZm4+CisgICAgPC9mcmFtZT4K
KyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODM5RDBDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNv
LjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFu
YWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktOUzFf
MTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEyUG9saWN5QWN0aW9uRUVTNl9FVWxTN19FX0Ux
MF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0NfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZm4+
CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUU3QjAzPC9pcD4KKyAg
ICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3
ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfcG9saWN5
X2RlY2lzaW9uX25ldzwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+
MHg2MUNCNTI3PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQv
UmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZu
Pl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzFkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlRVJLTjdXZWJDb3JlMTZSZXNvdXJjZVJlc3BvbnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1
ZXN0RVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFPC9mbj4KKyAgICA8L2ZyYW1l
PgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY4MzlFQzA8L2lwPgorICAgICAgPG9iaj4vaG9t
ZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAu
c28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNo
ZWNrQ29udGVudFBvbGljeUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TXzEyUG9saWN5
QWN0aW9uRUVTNF88L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4
NjgwMkY2RTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1Jl
bGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5f
Wk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxNnJlc3BvbnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVk
UmVzb3VyY2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAg
IDxmcmFtZT4KKyAgICAgIDxpcD4weDY3RTU5RTA8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2Vy
L1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4x
OS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNvcmUxN0NhY2hlZFJhd1Jlc291cmNlMTZyZXNw
b25zZVJlY2VpdmVkRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZm4+CisgICAgPC9mcmFtZT4K
KyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODRDMjM3PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNv
LjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTdTdWJyZXNvdXJjZUxvYWRlcjE4
ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2Rjk1ODQ4PC9pcD4KKyAgICAgIDxvYmo+
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlTDE5c2VuZFJlcXVlc3RD
YWxsYmFja0VQOF9HT2JqZWN0UDEzX0dBc3luY1Jlc3VsdFB2PC9mbj4KKyAgICA8L2ZyYW1lPgor
ICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDhFMkQ2Q0E8L2lwPgorICAgICAgPG9iaj4vaG9tZS91
c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvUm9vdC9saWI2NC9saWJnaW8tMi4w
LnNvLjAuMzgwMC4wPC9vYmo+CisgICAgICA8Zm4+Z190YXNrX3JldHVybl9ub3c8L2ZuPgorICAg
ICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNl
L2dsaWItMi4zOC4wL2dpbzwvZGlyPgorICAgICAgPGZpbGU+Z3Rhc2suYzwvZmlsZT4KKyAgICAg
IDxsaW5lPjExMDg8L2xpbmU+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+
MHg4RTJENkU4PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQv
RGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2lvLTIuMC5zby4wLjM4MDAuMDwvb2JqPgorICAg
ICAgPGZuPmNvbXBsZXRlX2luX2lkbGVfY2I8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dpbzwvZGly
PgorICAgICAgPGZpbGU+Z3Rhc2suYzwvZmlsZT4KKyAgICAgIDxsaW5lPjExMTc8L2xpbmU+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg5M0E2MkY0PC9pcD4KKyAgICAg
IDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGli
NjQvbGliZ2xpYi0yLjAuc28uMC4zODAwLjA8L29iaj4KKyAgICAgIDxmbj5nX21haW5fY29udGV4
dF9kaXNwYXRjaDwvZm4+CisgICAgICA8ZGlyPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxk
L0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2xpYjwvZGlyPgorICAgICAgPGZpbGU+
Z21haW4uYzwvZmlsZT4KKyAgICAgIDxsaW5lPjMwNjU8L2xpbmU+CisgICAgPC9mcmFtZT4KKyAg
ICA8ZnJhbWU+CisgICAgICA8aXA+MHg5M0E2NjM3PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2xpYi0yLjAu
c28uMC4zODAwLjA8L29iaj4KKyAgICAgIDxmbj5nX21haW5fY29udGV4dF9pdGVyYXRlLmlzcmEu
MjM8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dsaWI8L2Rpcj4KKyAgICAgIDxmaWxlPmdtYWluLmM8
L2ZpbGU+CisgICAgICA8bGluZT4zNzEyPC9saW5lPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1l
PgorICAgICAgPGlwPjB4OTNBNkE5OTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Sb290L2xpYjY0L2xpYmdsaWItMi4wLnNvLjAuMzgw
MC4wPC9vYmo+CisgICAgICA8Zm4+Z19tYWluX2xvb3BfcnVuPC9mbj4KKyAgICAgIDxkaXI+L2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIuMzgu
MC9nbGliPC9kaXI+CisgICAgICA8ZmlsZT5nbWFpbi5jPC9maWxlPgorICAgICAgPGxpbmU+Mzkw
NjwvbGluZT4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDgxMjEyMDQ8
L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXMvUm9vdC9saWI2NC9saWJndGstMy5zby4wLjYwMC4wPC9vYmo+CisgICAgICA8Zm4+Z3RrX21h
aW48L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXMvU291cmNlL2d0aystMy42LjAvZ3RrPC9kaXI+CisgICAgICA8ZmlsZT5ndGttYWluLmM8
L2ZpbGU+CisgICAgICA8bGluZT4xMTYyPC9saW5lPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1l
PgorICAgICAgPGlwPjB4NDRDQkNFPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAg
PGZuPl9aTDdydW5UZXN0UktTczwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAg
ICA8aXA+MHg0NENFRDY8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+X1pM
MjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgor
ICAgICAgPGlwPjB4NDNBMkQzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZu
Pm1haW48L2ZuPgorICAgIDwvZnJhbWU+CisgIDwvc3RhY2s+CisgIDxzdXBwcmVzc2lvbj4KKyAg
ICA8c25hbWU+aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPC9zbmFtZT4KKyAgICA8c2tp
bmQ+TWVtY2hlY2s6TGVhazwvc2tpbmQ+CisgICAgPHNmcmFtZT4gPGZ1bj5fWm53bTwvZnVuPiA8
L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2Vf
bWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktO
UzFfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEyUG9saWN5QWN0aW9uRUVTNl9FVWxTN19F
X0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0NfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lz
aW9uX25ldzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjZXZWJLaXQxN0Zy
YW1lTG9hZGVyQ2xpZW50MzFkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlRVJLTjdXZWJD
b3JlMTZSZXNvdXJjZVJlc3BvbnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVN0OGZ1bmN0aW9u
SUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxm
dW4+X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TXzE2
UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TXzEyUG9saWN5QWN0aW9uRUVTNF88L2Z1bj4gPC9zZnJh
bWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxNnJlc3Bv
bnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VF
PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxN0NhY2hlZFJh
d1Jlc291cmNlMTZyZXNwb25zZVJlY2VpdmVkRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZnVu
PiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTdTdWJyZXNvdXJjZUxv
YWRlcjE4ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZnVuPiA8
L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlTDE5c2VuZFJlcXVlc3RDYWxs
YmFja0VQOF9HT2JqZWN0UDEzX0dBc3luY1Jlc3VsdFB2PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxz
ZnJhbWU+IDxmdW4+Z190YXNrX3JldHVybl9ub3c8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFt
ZT4gPGZ1bj5jb21wbGV0ZV9pbl9pZGxlX2NiPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+
IDxmdW4+Z19tYWluX2NvbnRleHRfZGlzcGF0Y2g8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFt
ZT4gPGZ1bj5nX21haW5fY29udGV4dF9pdGVyYXRlLmlzcmEuMjM8L2Z1bj4gPC9zZnJhbWU+Cisg
ICAgPHNmcmFtZT4gPGZ1bj5nX21haW5fbG9vcF9ydW48L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNm
cmFtZT4gPGZ1bj5ndGtfbWFpbjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9a
TDdydW5UZXN0UktTczwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTDIwcnVu
VGVzdGluZ1NlcnZlckxvb3B2PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+bWFp
bjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8cmF3dGV4dD4KKzwhW0NEQVRBWwore3sKKyAgIDxpbnNl
cnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+CisgICBNZW1jaGVjazpMZWFrCisgICBmdW46X1pu
d20KKyAgIGZ1bjpfWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29y
ZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9saWN5RVJLTlMxXzE2UmVzb3VyY2VSZXNw
b25zZUVQRnZQdk5TMV8xMlBvbGljeUFjdGlvbkVFUzZfRVVsUzdfRV9FMTBfTV9tYW5hZ2VyRVJT
dDlfQW55X2RhdGFSS1NDX1N0MThfTWFuYWdlcl9vcGVyYXRpb24KKyAgIGZ1bjp3ZWJraXRfd2Vi
X3BvbGljeV9kZWNpc2lvbl9uZXcKKyAgIGZ1bjpfWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVu
dDMxZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZUVSS043V2ViQ29yZTE2UmVzb3VyY2VS
ZXNwb25zZUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGlj
eUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRl
bnRQb2xpY3lFUktOU18xNlJlc291cmNlUmVzcG9uc2VFUEZ2UHZOU18xMlBvbGljeUFjdGlvbkVF
UzRfCisgICBmdW46X1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVyMTZyZXNwb25zZVJlY2VpdmVk
RVBOU18xNENhY2hlZFJlc291cmNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRQorICAgZnVuOl9a
TjdXZWJDb3JlMTdDYWNoZWRSYXdSZXNvdXJjZTE2cmVzcG9uc2VSZWNlaXZlZEVSS05TXzE2UmVz
b3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43V2ViQ29yZTE3U3VicmVzb3VyY2VMb2FkZXIxOGRp
ZFJlY2VpdmVSZXNwb25zZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43V2Vi
Q29yZUwxOXNlbmRSZXF1ZXN0Q2FsbGJhY2tFUDhfR09iamVjdFAxM19HQXN5bmNSZXN1bHRQdgor
ICAgZnVuOmdfdGFza19yZXR1cm5fbm93CisgICBmdW46Y29tcGxldGVfaW5faWRsZV9jYgorICAg
ZnVuOmdfbWFpbl9jb250ZXh0X2Rpc3BhdGNoCisgICBmdW46Z19tYWluX2NvbnRleHRfaXRlcmF0
ZS5pc3JhLjIzCisgICBmdW46Z19tYWluX2xvb3BfcnVuCisgICBmdW46Z3RrX21haW4KKyAgIGZ1
bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1bjpfWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdgorICAg
ZnVuOm1haW4KK319CitdXT4KKyAgICA8L3Jhd3RleHQ+CisgIDwvc3VwcHJlc3Npb24+Cis8L2Vy
cm9yPgorCis8ZXJyb3I+CisgIDx1bmlxdWU+MHgxYTY8L3VuaXF1ZT4KKyAgPHRpZD4xPC90aWQ+
CisgIDxraW5kPkxlYWtfRGVmaW5pdGVseUxvc3Q8L2tpbmQ+CisgIDx4d2hhdD4KKyAgICA8dGV4
dD44IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQg
NDIzIG9mIDcsOTcyPC90ZXh0PgorICAgIDxsZWFrZWRieXRlcz44PC9sZWFrZWRieXRlcz4KKyAg
ICA8bGVha2VkYmxvY2tzPjE8L2xlYWtlZGJsb2Nrcz4KKyAgPC94d2hhdD4KKyAgPHN0YWNrPgor
ICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDRDMkFGOEU8L2lwPgorICAgICAgPG9iaj4vdXNyL2xp
Yi92YWxncmluZC92Z3ByZWxvYWRfbWVtY2hlY2stYW1kNjQtbGludXguc288L29iaj4KKyAgICAg
IDxmbj5fWm53bTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2
ODM5REVDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVs
ZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9a
TlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVj
a2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8x
NERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZT
NV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9Bbnlf
ZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8
ZnJhbWU+CisgICAgICA8aXA+MHg2MUU3QjAzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTku
Mzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZm4+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUNCQTZEPC9pcD4KKyAgICAg
IDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJr
aXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjZXZWJLaXQxN0ZyYW1lTG9h
ZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dl
YkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBh
c3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlv
bkVFRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODNERjUy
PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8u
bGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJD
b3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNl
UmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0
YXRlRUVFUEZ2UHZTM19TOV9iRVNBXzwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+Cisg
ICAgICA8aXA+MHg2ODE3RUZDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgor
ICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVudExvYWRl
ckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQ
dHJJTlNfOUZvcm1TdGF0ZUVFRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAg
ICA8aXA+MHg2ODE4NzI5PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0
QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAg
ICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVy
RTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODE4QTNBPC9p
cD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGli
cy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3Jl
MTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RTwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUUzMTQ4PC9pcD4KKyAgICAgIDxvYmo+
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmk8
L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDRDQzUwPC9pcD4K
KyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFt
cy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9aTDdydW5UZXN0UktTczwvZm4+Cisg
ICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0NENFRDY8L2lwPgorICAgICAg
PG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBS
ZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2Zu
PgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDNBMkQzPC9pcD4KKyAg
ICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9E
dW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPm1haW48L2ZuPgorICAgIDwvZnJhbWU+Cisg
IDwvc3RhY2s+CisgIDxzdXBwcmVzc2lvbj4KKyAgICA8c25hbWU+aW5zZXJ0X2Ffc3VwcHJlc3Np
b25fbmFtZV9oZXJlPC9zbmFtZT4KKyAgICA8c2tpbmQ+TWVtY2hlY2s6TGVhazwvc2tpbmQ+Cisg
ICAgPHNmcmFtZT4gPGZ1bj5fWm53bTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVu
Pl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lD
aGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5T
MV8xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2
UHZTNV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9B
bnlfZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8
c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZnVuPiA8L3NmcmFt
ZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRp
b25BY3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlG
b3JtU3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRTwvZnVuPiA8L3Nm
cmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVj
a05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNlUmVxdWVzdEVQTlNfMTREb2N1bWVudExv
YWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFUEZ2UHZTM19TOV9iRVNBXzwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRl
cjIybG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1l
TG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRTwvZnVuPiA8L3NmcmFt
ZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18x
NERvY3VtZW50TG9hZGVyRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RTwvZnVuPiA8
L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmk8L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWkw3cnVuVGVzdFJLU3M8L2Z1bj4gPC9z
ZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdjwvZnVu
PiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPm1haW48L2Z1bj4gPC9zZnJhbWU+CisgICAg
PHJhd3RleHQ+Cis8IVtDREFUQVsKK3t7CisgICA8aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9o
ZXJlPgorICAgTWVtY2hlY2s6TGVhaworICAgZnVuOl9abndtCisgICBmdW46X1pOU3QxNF9GdW5j
dGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNr
TmF2aWdhdGlvblBvbGljeUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVQTlMxXzE0RG9jdW1lbnRM
b2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVQRnZQdlM1X1NCX2JFU0Nf
RVVsTlMxXzEyUG9saWN5QWN0aW9uRUVfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRhUktTSV9T
dDE4X01hbmFnZXJfb3BlcmF0aW9uCisgICBmdW46d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25f
bmV3CisgICBmdW46X1pONldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzOWRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkVSS043V2ViQ29yZTE2TmF2aWdhdGlvbkFjdGlvbkVS
S05TMV8xNVJlc291cmNlUmVxdWVzdEVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVF
RVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFCisgICBmdW46X1pON1dlYkNvcmUx
M1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TXzE1UmVzb3VyY2VSZXF1
ZXN0RVBOU18xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVF
RUVQRnZQdlMzX1M5X2JFU0FfCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjJsb2Fk
V2l0aERvY3VtZW50TG9hZGVyRVBOU18xNERvY3VtZW50TG9hZGVyRU5TXzEzRnJhbWVMb2FkVHlw
ZUVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFCisgICBmdW46X1pON1dlYkNvcmUx
MUZyYW1lTG9hZGVyNGxvYWRFUE5TXzE0RG9jdW1lbnRMb2FkZXJFCisgICBmdW46X1pON1dlYkNv
cmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1lTG9hZFJlcXVlc3RFCisgICBmdW46d2Vi
a2l0X3dlYl9mcmFtZV9sb2FkX3VyaQorICAgZnVuOl9aTDdydW5UZXN0UktTcworICAgZnVuOl9a
TDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2CisgICBmdW46bWFpbgorfX0KK11dPgorICAgIDwvcmF3
dGV4dD4KKyAgPC9zdXBwcmVzc2lvbj4KKzwvZXJyb3I+CisKKzxlcnJvcmNvdW50cz4KKzwvZXJy
b3Jjb3VudHM+CisKKzxzdXBwY291bnRzPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTA3PC9jb3Vu
dD4KKyAgICA8bmFtZT5GY0NvbmZpZ0FwcEZvbnRBZGRGaWxlIChUaGlyZCBQYXJ0eSk8L25hbWU+
CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjIwOTg8L2NvdW50PgorICAgIDxuYW1l
Pmd0a19pbml0X2NoZWNrIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+
CisgICAgPGNvdW50PjE8L2NvdW50PgorICAgIDxuYW1lPmdfcXVhcmtfZnJvbV9zdGF0aWNfc3Ry
aW5nIChUaGlyZCBwYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50
PjI3PC9jb3VudD4KKyAgICA8bmFtZT5GY0NvbmZpZ1BhcnNlQW5kTG9hZCAoVGhpcmQgUGFydHkp
PC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD44MDwvY291bnQ+CisgICAg
PG5hbWU+d2Via2l0QWNjZXNzaWJsZU5ldzwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAg
ICA8Y291bnQ+MTc3PC9jb3VudD4KKyAgICA8bmFtZT5nX3RocmVhZF9wcm94eSAoVGhpcmQgUGFy
dHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD45PC9jb3VudD4KKyAg
ICA8bmFtZT5GY1BhdHRlcm5PYmplY3RJbnNlcnRFbHQgMiAoVGhpcmQgUGFydHkpPC9uYW1lPgor
ICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5ndGtf
d2luZG93X3JlYWxpemUgKFRoaXJkIFBhcnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4K
KyAgICA8Y291bnQ+MTwvY291bnQ+CisgICAgPG5hbWU+X19uc3NfZGF0YWJhc2VfbG9va3VwIChU
aGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjE8L2Nv
dW50PgorICAgIDxuYW1lPmNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZSAoVGhpcmQgUGFydHkpPC9u
YW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4yPC9jb3VudD4KKyAgICA8bmFt
ZT5saWJHTC5zbyAoVGhpcmQgcGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAg
IDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5nX3Rhc2tfcnVuX2luX3RocmVhZCAoVGhpcmQg
UGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4yPC9jb3VudD4K
KyAgICA8bmFtZT5XVEY6OlRocmVhZElkZW50aWZpZXJEYXRhOjppbml0aWFsaXplKCkgKEludGVu
dGlvbmFsKTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTwvY291bnQ+
CisgICAgPG5hbWU+Z3RrX2Nzc19wcm92aWRlcl9sb2FkX2Zyb21fZGF0YSAoVGhpcmQgUGFydHkp
PC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8
bmFtZT5saWJlbmNoYW50LnNvIG5ldyAoVGhpcmQgcGFydHkpPC9uYW1lPgorICA8L3BhaXI+Cis8
L3N1cHBjb3VudHM+CisKKzwvdmFsZ3JpbmRvdXRwdXQ+CisiIiIuZm9ybWF0KHByb2Nlc3NfbmFt
ZT1wcm9jZXNzX25hbWUsIHBpZD1waWQsIHV1aWQ9dXVpZCkKKworCitkZWYgbWFrZV9tb2NrX2lu
Y29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0KHByb2Nlc3NfbmFtZSwgcGlkLCB1dWlkKToKKyAgICBy
ZXR1cm4gIiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+CisKKzx2YWxncmluZG91dHB1dD4KKworPHBy
b3RvY29sdmVyc2lvbj40PC9wcm90b2NvbHZlcnNpb24+Cis8cHJvdG9jb2x0b29sPm1lbWNoZWNr
PC9wcm90b2NvbHRvb2w+CisKKzxwcmVhbWJsZT4KKyAgPGxpbmU+TWVtY2hlY2ssIGEgbWVtb3J5
IGVycm9yIGRldGVjdG9yPC9saW5lPgorICA8bGluZT5Db3B5cmlnaHQgKEMpIDIwMDItMjAxMSwg
YW5kIEdOVSBHUEwnZCwgYnkgSnVsaWFuIFNld2FyZCBldCBhbC48L2xpbmU+CisgIDxsaW5lPlVz
aW5nIFZhbGdyaW5kLTMuNy4wIGFuZCBMaWJWRVg7IHJlcnVuIHdpdGggLWggZm9yIGNvcHlyaWdo
dCBpbmZvPC9saW5lPgorICA8bGluZT5Db21tYW5kOiAvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9SZWxlYXNlL1Byb2dyYW1zL3twcm9jZXNzX25hbWV9IC08L2xpbmU+Cis8L3ByZWFtYmxl
PgorCis8cGlkPntwaWR9PC9waWQ+Cis8cHBpZD4xODU3NzwvcHBpZD4KKzx0b29sPm1lbWNoZWNr
PC90b29sPgorCis8YXJncz4KKyAgPHZhcmd2PgorICAgIDxleGU+L3Vzci9iaW4vdmFsZ3JpbmQu
YmluPC9leGU+CisgICAgPGFyZz4tLXRvb2w9bWVtY2hlY2s8L2FyZz4KKyAgICA8YXJnPi0tbnVt
LWNhbGxlcnM9NDA8L2FyZz4KKyAgICA8YXJnPi0tZGVtYW5nbGU9bm88L2FyZz4KKyAgICA8YXJn
Pi0tdHJhY2UtY2hpbGRyZW49bm88L2FyZz4KKyAgICA8YXJnPi0tc21jLWNoZWNrPWFsbC1ub24t
ZmlsZTwvYXJnPgorICAgIDxhcmc+LS1sZWFrLWNoZWNrPXllczwvYXJnPgorICAgIDxhcmc+LS1s
ZWFrLXJlc29sdXRpb249aGlnaDwvYXJnPgorICAgIDxhcmc+LS1zaG93LXBvc3NpYmx5LWxvc3Q9
bm88L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1yZWFjaGFibGU9bm88L2FyZz4KKyAgICA8YXJnPi0t
bGVhay1jaGVjaz1mdWxsPC9hcmc+CisgICAgPGFyZz4tLXVuZGVmLXZhbHVlLWVycm9ycz1ubzwv
YXJnPgorICAgIDxhcmc+LS1nZW4tc3VwcHJlc3Npb25zPWFsbDwvYXJnPgorICAgIDxhcmc+LS14
bWw9eWVzPC9hcmc+CisgICAgPGFyZz4tLXhtbC1maWxlPS9ob21lL3VzZXIvV2ViS2l0L1dlYktp
dEJ1aWxkL1JlbGVhc2UvbGF5b3V0LXRlc3QtcmVzdWx0cy9kcnQte3BpZH0te3V1aWR9LWxlYWtz
LnhtbDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L2hvbWUvdXNlci9XZWJLaXQvVG9v
bHMvU2NyaXB0cy92YWxncmluZC9zdXBwcmVzc2lvbnMudHh0PC9hcmc+CisgICAgPGFyZz4tLXN1
cHByZXNzaW9ucz0vdXNyL2xpYi92YWxncmluZC9kZWJpYW4tbGliYzYtZGJnLnN1cHA8L2FyZz4K
KyAgPC92YXJndj4KKyAgPGFyZ3Y+CisgICAgPGV4ZT4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9SZWxlYXNlL1Byb2dyYW1zL3twcm9jZXNzX25hbWV9PC9leGU+CisgICAgPGFyZz4tPC9h
cmc+CisgIDwvYXJndj4KKzwvYXJncz4KKworPHN0YXR1cz4KKyAgPHN0YXRlPlJVTk5JTkc8L3N0
YXRlPgorICA8dGltZT4wMDowMDowMDowMC4wMjQgPC90aW1lPgorPC9zdGF0dXM+CisiIiIuZm9y
bWF0KHByb2Nlc3NfbmFtZT1wcm9jZXNzX25hbWUsIHBpZD1waWQsIHV1aWQ9dXVpZCkKKworCitk
ZWYgbWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHMoKToKKyAgICByZXR1cm4gIiIiLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N1cHByZXNzaW9u
cyB1c2VkOgorICBjb3VudCBuYW1lCisgICAgICAyIF9fbnNzX2RhdGFiYXNlX2xvb2t1cCAoVGhp
cmQgUGFydHkpCisgICAgICAyIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZSAoVGhpcmQgUGFydHkp
CisgICAgICAyIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nIChUaGlyZCBwYXJ0eSkKKyAgICAg
IDIgZ190YXNrX3J1bl9pbl90aHJlYWQgKFRoaXJkIFBhcnR5KQorICAgICAgMiBndGtfY3NzX3By
b3ZpZGVyX2xvYWRfZnJvbV9kYXRhIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgZ3RrX3dpbmRvd19y
ZWFsaXplIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgbGliZW5jaGFudC5zbyBuZXcgKFRoaXJkIHBh
cnR5KQorICAgICAgNCBXVEY6OlRocmVhZElkZW50aWZpZXJEYXRhOjppbml0aWFsaXplKCkgKElu
dGVudGlvbmFsKQorICAgICAgNCBsaWJHTC5zbyAoVGhpcmQgcGFydHkpCisgICAgIDE4IEZjUGF0
dGVybk9iamVjdEluc2VydEVsdCAyIChUaGlyZCBQYXJ0eSkKKyAgICAgNTQgRmNDb25maWdQYXJz
ZUFuZExvYWQgKFRoaXJkIFBhcnR5KQorICAgIDE2MCB3ZWJraXRBY2Nlc3NpYmxlTmV3CisgICAg
MjE0IEZjQ29uZmlnQXBwRm9udEFkZEZpbGUgKFRoaXJkIFBhcnR5KQorICAgIDM1NCBnX3RocmVh
ZF9wcm94eSAoVGhpcmQgUGFydHkpCisgICA0MTk2IGd0a19pbml0X2NoZWNrIChUaGlyZCBQYXJ0
eSkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitWYWxncmluZCBkZXRlY3RlZCAyIGxlYWtzOgorTGVha19EZWZpbml0ZWx5TG9zdAorOCBieXRl
cyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQyMSBvZiA3
LDk3MgorICBvcGVyYXRvciBuZXcodW5zaWduZWQgbG9uZykgKC91c3IvbGliL3ZhbGdyaW5kL3Zn
cHJlbG9hZF9tZW1jaGVjay1hbWQ2NC1saW51eC5zbykKKyAgc3RkOjpfRnVuY3Rpb25fYmFzZTo6
X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xp
Y3koV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCos
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpGb3JtU3RhdGU+LCBib29sKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGljeUFjdGlv
bikjMX0+OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfRnVuY3Rpb25fYmFzZTo6
X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xp
Y3koV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCos
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpGb3JtU3RhdGU+LCBib29sKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGljeUFjdGlv
bikjMX0+IGNvbnN0Jiwgc3RkOjpfTWFuYWdlcl9vcGVyYXRpb24pICgvaG9tZS91c2VyL1dlYktp
dC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQor
ICB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktp
dEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uIGNvbnN0JiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IGNvbnN0JiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoV2ViQ29yZTo6UG9saWN5QWN0aW9uKT4pICgvaG9tZS91c2VyL1dlYktp
dC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQor
ICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+
LCBib29sKSwgdm9pZCopICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5s
aWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
bG9hZFdpdGhEb2N1bWVudExvYWRlcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFdlYkNvcmU6
OkZyYW1lTG9hZFR5cGUsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+KSAoL2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4w
LnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9s
aWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQo
V2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCBjb25zdCYpICgvaG9tZS91c2VyL1dlYktpdC9XZWJL
aXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICB3ZWJr
aXRfd2ViX2ZyYW1lX2xvYWRfdXJpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxl
YXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBydW5UZXN0KHN0ZDo6YmFz
aWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0ZDo6YWxsb2NhdG9yPGNo
YXI+ID4gY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9n
cmFtcy9EdW1wUmVuZGVyVHJlZSkKKyAgcnVuVGVzdGluZ1NlcnZlckxvb3AoKSAoL2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZSkKKyAg
bWFpbiAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1w
UmVuZGVyVHJlZSkKK1N1cHByZXNzaW9uIChlcnJvciBoYXNoPSMwNDQ5RDNFRDI1M0ZFMUY5Iyk6
CisKK3sKKyAgIDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+CisgICBNZW1jaGVjazpM
ZWFrCisgICBmdW46X1pudyoKKyAgIGZ1bjpfWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21h
bmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJL
TlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1Jl
ZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rp
b25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRp
b24KKyAgIGZ1bjp3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcKKyAgIGZ1bjpfWk42V2Vi
S2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1
ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFf
MTJQb2xpY3lBY3Rpb25FRUUKKyAgIGZ1bjpfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hl
Y2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRM
b2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV8K
KyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJF
UE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzlGb3JtU3RhdGVFRUUKKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQ
TlNfMTREb2N1bWVudExvYWRlckUKKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9h
ZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEUKKyAgIGZ1bjp3ZWJraXRfd2ViX2ZyYW1lX2xvYWRf
dXJpCisgICBmdW46X1pMN3J1blRlc3RSS1NzCisgICBmdW46X1pMMjBydW5UZXN0aW5nU2VydmVy
TG9vcHYKKyAgIGZ1bjptYWluCit9CisKKworTGVha19EZWZpbml0ZWx5TG9zdAorOCBieXRlcyBp
biAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQyMiBvZiA3LDk3
MgorICBvcGVyYXRvciBuZXcodW5zaWduZWQgbG9uZykgKC91c3IvbGliL3ZhbGdyaW5kL3ZncHJl
bG9hZF9tZW1jaGVjay1hbWQ2NC1saW51eC5zbykKKyAgc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jh
c2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja0NvbnRlbnRQb2xpY3koV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYsIHZvaWQgKCopKHZvaWQqLCBXZWJDb3JlOjpQ
b2xpY3lBY3Rpb24pLCB2b2lkKik6OntsYW1iZGEoV2ViQ29yZTo6UG9saWN5QWN0aW9uKSMxfT46
Ol9NX21hbmFnZXIoc3RkOjpfQW55X2RhdGEmLCBzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9t
YW5hZ2VyPFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNrQ29udGVudFBvbGljeShXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0Jiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlBvbGlj
eUFjdGlvbiksIHZvaWQqKTo6e2xhbWJkYShXZWJDb3JlOjpQb2xpY3lBY3Rpb24pIzF9PiBjb25z
dCYsIHN0ZDo6X01hbmFnZXJfb3BlcmF0aW9uKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgd2Via2l0X3dl
Yl9wb2xpY3lfZGVjaXNpb25fbmV3ICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxl
YXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgY29uc3QmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQgKFdlYkNvcmU6OlBvbGljeUFjdGlvbik+KSAoL2hvbWUvdXNlci9XZWJL
aXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykK
KyAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tDb250ZW50UG9saWN5KFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgY29uc3QmLCB2b2lkICgqKSh2b2lkKiwgV2ViQ29yZTo6UG9saWN5QWN0
aW9uKSwgdm9pZCopICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJz
L2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
cmVzcG9uc2VSZWNlaXZlZChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSosIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6Q2FjaGVkUmF3
UmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25z
dCYpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtp
dGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmKSAoL2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAu
MTkuMykKKyAgV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayhfR09iamVjdCosIF9HQXN5bmNS
ZXN1bHQqLCB2b2lkKikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxp
YnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIGdfdGFza19yZXR1cm5fbm93ICgvaG9t
ZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4w
L2dpby9ndGFzay5jOjExMDgpCisgIGNvbXBsZXRlX2luX2lkbGVfY2IgKC9ob21lL3VzZXIvV2Vi
S2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2lvL2d0YXNr
LmM6MTExNykKKyAgZ19tYWluX2NvbnRleHRfZGlzcGF0Y2ggKC9ob21lL3VzZXIvV2ViS2l0L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2xpYi9nbWFpbi5jOjMw
NjUpCisgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUuaXNyYS4yMyAoL2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIuMzguMC9nbGliL2dtYWluLmM6
MzcxMikKKyAgZ19tYWluX2xvb3BfcnVuICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9E
ZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dsaWIvZ21haW4uYzozOTA2KQorICBndGtf
bWFpbiAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9n
dGsrLTMuNi4wL2d0ay9ndGttYWluLmM6MTE2MikKKyAgcnVuVGVzdChzdGQ6OmJhc2ljX3N0cmlu
ZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNv
bnN0JikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVt
cFJlbmRlclRyZWUpCisgIHJ1blRlc3RpbmdTZXJ2ZXJMb29wKCkgKC9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUpCisgIG1haW4gKC9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRy
ZWUpCitTdXBwcmVzc2lvbiAoZXJyb3IgaGFzaD0jODMxM0RFQjE2QjA2OTQzOCMpOgorCit7Cisg
ICA8aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPgorICAgTWVtY2hlY2s6TGVhaworICAg
ZnVuOl9abncqCisgICBmdW46X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpO
N1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TMV8xNlJlc291
cmNlUmVzcG9uc2VFUEZ2UHZOUzFfMTJQb2xpY3lBY3Rpb25FRVM2X0VVbFM3X0VfRTEwX01fbWFu
YWdlckVSU3Q5X0FueV9kYXRhUktTQ19TdDE4X01hbmFnZXJfb3BlcmF0aW9uCisgICBmdW46d2Vi
a2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3CisgICBmdW46X1pONldlYktpdDE3RnJhbWVMb2Fk
ZXJDbGllbnQzMWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VFUktON1dlYkNvcmUxNlJl
c291cmNlUmVzcG9uc2VFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFU3Q4ZnVuY3Rpb25JRnZOUzFf
MTJQb2xpY3lBY3Rpb25FRUUKKyAgIGZ1bjpfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hl
Y2tDb250ZW50UG9saWN5RVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlNfMTJQb2xpY3lB
Y3Rpb25FRVM0XworICAgZnVuOl9aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlcjE2cmVzcG9uc2VS
ZWNlaXZlZEVQTlNfMTRDYWNoZWRSZXNvdXJjZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAg
IGZ1bjpfWk43V2ViQ29yZTE3Q2FjaGVkUmF3UmVzb3VyY2UxNnJlc3BvbnNlUmVjZWl2ZWRFUktO
U18xNlJlc291cmNlUmVzcG9uc2VFCisgICBmdW46X1pON1dlYkNvcmUxN1N1YnJlc291cmNlTG9h
ZGVyMThkaWRSZWNlaXZlUmVzcG9uc2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VFCisgICBmdW46
X1pON1dlYkNvcmVMMTlzZW5kUmVxdWVzdENhbGxiYWNrRVA4X0dPYmplY3RQMTNfR0FzeW5jUmVz
dWx0UHYKKyAgIGZ1bjpnX3Rhc2tfcmV0dXJuX25vdworICAgZnVuOmNvbXBsZXRlX2luX2lkbGVf
Y2IKKyAgIGZ1bjpnX21haW5fY29udGV4dF9kaXNwYXRjaAorICAgZnVuOmdfbWFpbl9jb250ZXh0
X2l0ZXJhdGUuaXNyYS4yMworICAgZnVuOmdfbWFpbl9sb29wX3J1bgorICAgZnVuOmd0a19tYWlu
CisgICBmdW46X1pMN3J1blRlc3RSS1NzCisgICBmdW46X1pMMjBydW5UZXN0aW5nU2VydmVyTG9v
cHYKKyAgIGZ1bjptYWluCit9CisKKworIiIiCisKKworZGVmIG1ha2VfbW9ja192YWxncmluZF9y
ZXN1bHRzX2luY29tcGxldGUoKToKKyAgICByZXR1cm4gIiIiY291bGQgbm90IHBhcnNlIDw/eG1s
IHZlcnNpb249IjEuMCI/PgorCis8dmFsZ3JpbmRvdXRwdXQ+CisKKzxwcm90b2NvbHZlcnNpb24+
NDwvcHJvdG9jb2x2ZXJzaW9uPgorPHByb3RvY29sdG9vbD5tZW1jaGVjazwvcHJvdG9jb2x0b29s
PgorCis8cHJlYW1ibGU+CisgIDxsaW5lPk1lbWNoZWNrLCBhIG1lbW9yeSBlcnJvciBkZXRlY3Rv
cjwvbGluZT4KKyAgPGxpbmU+Q29weXJpZ2h0IChDKSAyMDAyLTIwMTEsIGFuZCBHTlUgR1BMJ2Qs
IGJ5IEp1bGlhbiBTZXdhcmQgZXQgYWwuPC9saW5lPgorICA8bGluZT5Vc2luZyBWYWxncmluZC0z
LjcuMCBhbmQgTGliVkVYOyByZXJ1biB3aXRoIC1oIGZvciBjb3B5cmlnaHQgaW5mbzwvbGluZT4K
KyAgPGxpbmU+Q29tbWFuZDogL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Q
cm9ncmFtcy9EdW1wUmVuZGVyVHJlZSAtPC9saW5lPgorPC9wcmVhbWJsZT4KKworPHBpZD4yODUz
MTwvcGlkPgorPHBwaWQ+MTg1Nzc8L3BwaWQ+Cis8dG9vbD5tZW1jaGVjazwvdG9vbD4KKworPGFy
Z3M+CisgIDx2YXJndj4KKyAgICA8ZXhlPi91c3IvYmluL3ZhbGdyaW5kLmJpbjwvZXhlPgorICAg
IDxhcmc+LS10b29sPW1lbWNoZWNrPC9hcmc+CisgICAgPGFyZz4tLW51bS1jYWxsZXJzPTQwPC9h
cmc+CisgICAgPGFyZz4tLWRlbWFuZ2xlPW5vPC9hcmc+CisgICAgPGFyZz4tLXRyYWNlLWNoaWxk
cmVuPW5vPC9hcmc+CisgICAgPGFyZz4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L2FyZz4KKyAg
ICA8YXJnPi0tbGVhay1jaGVjaz15ZXM8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1yZXNvbHV0aW9u
PWhpZ2g8L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1wb3NzaWJseS1sb3N0PW5vPC9hcmc+CisgICAg
PGFyZz4tLXNob3ctcmVhY2hhYmxlPW5vPC9hcmc+CisgICAgPGFyZz4tLWxlYWstY2hlY2s9ZnVs
bDwvYXJnPgorICAgIDxhcmc+LS11bmRlZi12YWx1ZS1lcnJvcnM9bm88L2FyZz4KKyAgICA8YXJn
Pi0tZ2VuLXN1cHByZXNzaW9ucz1hbGw8L2FyZz4KKyAgICA8YXJnPi0teG1sPXllczwvYXJnPgor
ICAgIDxhcmc+LS14bWwtZmlsZT0vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNl
L2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMxLWU4YzdkN2I4M2JlNDExZTM5MGM5ZDQzZDdl
MDFiYTA4LWxlYWtzLnhtbDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L2hvbWUvdXNl
ci9XZWJLaXQvVG9vbHMvU2NyaXB0cy92YWxncmluZC9zdXBwcmVzc2lvbnMudHh0PC9hcmc+Cisg
ICAgPGFyZz4tLXN1cHByZXNzaW9ucz0vdXNyL2xpYi92YWxncmluZC9kZWJpYW4tbGliYzYtZGJn
LnN1cHA8L2FyZz4KKyAgPC92YXJndj4KKyAgPGFyZ3Y+CisgICAgPGV4ZT4vaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9leGU+Cisg
ICAgPGFyZz4tPC9hcmc+CisgIDwvYXJndj4KKzwvYXJncz4KKworPHN0YXR1cz4KKyAgPHN0YXRl
PlJVTk5JTkc8L3N0YXRlPgorICA8dGltZT4wMDowMDowMDowMC4wMjQgPC90aW1lPgorPC9zdGF0
dXM+Cis6IG5vIGVsZW1lbnQgZm91bmQ6IGxpbmUgNDksIGNvbHVtbiAwCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3VwcHJlc3Npb25zIHVz
ZWQ6CisgIGNvdW50IG5hbWUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisiIiIKKworCitkZWYgbWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHNf
ZW1wdHkoKToKKyAgICByZXR1cm4gIiIiY291bGQgbm90IHBhcnNlIDogbm8gZWxlbWVudCBmb3Vu
ZDogbGluZSAxLCBjb2x1bW4gMAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK1N1cHByZXNzaW9ucyB1c2VkOgorICBjb3VudCBuYW1lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiIiCisK
KworZGVmIG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCgpOgorICAgIHJl
dHVybiAiIiJjb3VsZCBub3QgcGFyc2UgSnVuayB0aGF0IHNob3VsZCBub3QgYXBwZWFyIGluIGEg
dmFsZ3JpbmQgeG1sIGZpbGU8P3htbCB2ZXJzaW9uPSIxLjAiPzogc3ludGF4IGVycm9yOiBsaW5l
IDEsIGNvbHVtbiAwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorU3VwcHJlc3Npb25zIHVzZWQ6CisgIGNvdW50IG5hbWUKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIiIKKworCitjbGFz
cyBMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVm
IHRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9wYXNzKHNlbGYpOgorICAgICAgICBt
b2NrX3ZhbGdyaW5kX291dHB1dDEgPSBtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KCdEdW1wUmVu
ZGVyVHJlZScsIDI4NTI5LCAnZGI5MmU0ODQzYmU0MTFlM2JhZTFkNDNkN2UwMWJhMDgnKQorICAg
ICAgICBtb2NrX3ZhbGdyaW5kX291dHB1dDIgPSBtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KCdE
dW1wUmVuZGVyVHJlZScsIDI4NTMwLCAnZGQ3MjEzNDIzYmU0MTFlM2FhN2ZkNDNkN2UwMWJhMDgn
KQorICAgICAgICBmaWxlcyA9IHt9CisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvZHJ0LTI4NTI5LWRiOTJlNDg0M2JlNDExZTNiYWUxZDQzZDdlMDFiYTA4LWxlYWtzLnht
bCddID0gbW9ja192YWxncmluZF9vdXRwdXQxCisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvZHJ0LTI4NTMwLWRkNzIxMzQyM2JlNDExZTNhYTdmZDQzZDdlMDFiYTA4LWxl
YWtzLnhtbCddID0gbW9ja192YWxncmluZF9vdXRwdXQyCisgICAgICAgIGxlYWtkZXRlY3Rvcl92
YWxncmluZCA9IExlYWtEZXRlY3RvclZhbGdyaW5kKE1vY2tGaWxlU3lzdGVtKGZpbGVzKSwgJy90
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy8nKQorCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50X2xl
YWtzX2RldGFpbCwgW2ZpbGVzXSwgZXhwZWN0ZWRfbG9ncz1tYWtlX21vY2tfdmFsZ3JpbmRfcmVz
dWx0cygpKQorCisgICAgZGVmIHRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9pbmNv
bXBsZXRlKHNlbGYpOgorICAgICAgICBtb2NrX2luY29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0ID0g
bWFrZV9tb2NrX2luY29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0KCdEdW1wUmVuZGVyVHJlZScsIDI4
NTMxLCAnZThjN2Q3YjgzYmU0MTFlMzkwYzlkNDNkN2UwMWJhMDgnKQorICAgICAgICBmaWxlcyA9
IHt9CisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMxLWU4
YzdkN2I4M2JlNDExZTM5MGM5ZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gbW9ja19pbmNvbXBs
ZXRlX3ZhbGdyaW5kX291dHB1dAorICAgICAgICBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgPSBMZWFr
RGV0ZWN0b3JWYWxncmluZChNb2NrRmlsZVN5c3RlbShmaWxlcyksICcvdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvJykKKworICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2Vs
ZiwgbGVha2RldGVjdG9yX3ZhbGdyaW5kLnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwsIFtm
aWxlc10sIGV4cGVjdGVkX2xvZ3M9bWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHNfaW5jb21wbGV0
ZSgpKQorCisgICAgZGVmIHRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9lbXB0eShz
ZWxmKToKKyAgICAgICAgZmlsZXMgPSB7fQorICAgICAgICBmaWxlc1snL3RtcC9Mb2dzL2xheW91
dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMyLWViYzlhNmM2M2JlNDExZTM5OWQ0ZDQzZDdlMDFiYTA4
LWxlYWtzLnhtbCddID0gIiIKKyAgICAgICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0gTGVha0Rl
dGVjdG9yVmFsZ3JpbmQoTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpLCAnL3RtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzLycpCisKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYs
IGxlYWtkZXRlY3Rvcl92YWxncmluZC5wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsLCBbZmls
ZXNdLCBleHBlY3RlZF9sb2dzPW1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2VtcHR5KCkpCisK
KyAgICBkZWYgdGVzdF9wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX21pc2Zvcm1hdHRlZChz
ZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtaXNmb3JtYXR0ZWRf
bW9ja192YWxncmluZF9vdXRwdXQgPSAnSnVuayB0aGF0IHNob3VsZCBub3QgYXBwZWFyIGluIGEg
dmFsZ3JpbmQgeG1sIGZpbGUnICsgbWFrZV9tb2NrX3ZhbGdyaW5kX291dHB1dCgnRHVtcFJlbmRl
clRyZWUnLCAyODUzMywgJ2ZhNmQwY2Q2M2JlNDExZTM5YzcyZDQzZDdlMDFiYTA4JylbOjIwXQor
ICAgICAgICBmaWxlcyA9IHt9CisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZHJ0LTI4NTMzLWZhNmQwY2Q2M2JlNDExZTM5YzcyZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCdd
ID0gbWlzZm9ybWF0dGVkX21vY2tfdmFsZ3JpbmRfb3V0cHV0CisgICAgICAgIGxlYWtkZXRlY3Rv
cl92YWxncmluZCA9IExlYWtEZXRlY3RvclZhbGdyaW5kKE1vY2tGaWxlU3lzdGVtKGZpbGVzKSwg
Jy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy8nKQorCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5h
c3NlcnRfb3V0cHV0cyhzZWxmLCBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50
X2xlYWtzX2RldGFpbCwgW2ZpbGVzXSwgZXhwZWN0ZWRfbG9ncz1tYWtlX21vY2tfdmFsZ3JpbmRf
cmVzdWx0c19taXNmb3JtYXR0ZWQoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220837</attachid>
            <date>2014-01-10 06:07:55 -0800</date>
            <delta_ts>2014-01-13 06:17:38 -0800</delta_ts>
            <desc>Updated to use Executive and MockExecutive in the unittest</desc>
            <filename>bug-119446-20140110140851.patch</filename>
            <type>text/plain</type>
            <size>62809</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMjA2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Y2MmExNTJkODExZTg1NTgxOWQwM2RjOTZmODk4ZjFm
YzQ0YzIzMS4uZjU2ZjU0M2QyMmQ0MWNjYzJkMTZhYzc4Mjc3ZTEyMmQyNTBhMDI1ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDE0LTAxLTAyICBCcmlhbiBIb2x0ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbR1RLXSBQYXJzZSBWYWxncmluZCB4bWwgbGVhayBmaWxlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDQ2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBn
ZW5lcmF0ZWQgYnkgVmFsZ3JpbmQgdG8geWllbGQgdXNlZnVsCisgICAgICAgIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBtZW1vcnkgbGVha3MuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZ3RrLnB5OgorICAgICAgICAoR3RrUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChHdGtQb3J0
LnNldHVwX3Rlc3RfcnVuKTogQ2xlYXIgdGhlIHByZXZpb3VzIG91dHB1dCBmaWxlcyBiZWZvcmUg
bmV3CisgICAgICAgIHJ1bi4KKyAgICAgICAgKEd0a1BvcnQucHJpbnRfbGVha3Nfc3VtbWFyeSk6
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5k
LnB5OiBBZGRlZC4KKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBnZW5lcmF0ZWQgYnkgVmFs
Z3JpbmQgYW5kIHN1bW1hcmlzZSBsZWFrcworICAgICAgICBpbnRvIGFuIGVhc2lseSB1bmRlcnN0
YW5kYWJsZSBsaXN0LgorICAgICAgICAoZ2V0X3RleHRfb2YpOgorICAgICAgICAoZ2V0X0NEQVRB
X29mKToKKyAgICAgICAgKGdhdGhlcl9mcmFtZXMpOgorICAgICAgICAoVmFsZ3JpbmRFcnJvcik6
CisgICAgICAgIChWYWxncmluZEVycm9yLl9faW5pdF9fKToKKyAgICAgICAgKFZhbGdyaW5kRXJy
b3IuX19zdHJfXyk6CisgICAgICAgIChWYWxncmluZEVycm9yLnVuaXF1ZV9zdHJpbmcpOgorICAg
ICAgICAoVmFsZ3JpbmRFcnJvci5lcnJvcl9oYXNoKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3Iu
X19oYXNoX18pOgorICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX2VxX18pOgorICAgICAgICAoTGVh
a0RldGVjdG9yVmFsZ3JpbmQpOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmQuX19pbml0
X18pOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmQuX3BhcnNlX2xlYWtzX291dHB1dCk6
CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZC5sZWFrc19maWxlc19pbl9yZXN1bHRzX2Rp
cmVjdG9yeSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZC5jbGVhbl9sZWFrc19maWxl
c19mcm9tX3Jlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5k
LnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwpOgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZF91bml0dGVzdC5weTogQWRkZWQuCisgICAg
ICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KToKKyAgICAgICAgKG1ha2VfbW9ja19pbmNv
bXBsZXRlX3ZhbGdyaW5kX291dHB1dCk6CisgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVz
dWx0cyk6CisgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0c19pbmNvbXBsZXRlKToK
KyAgICAgICAgKG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2VtcHR5KToKKyAgICAgICAgKG1h
a2VfbW9ja192YWxncmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCk6CisgICAgICAgIChMZWFrRGV0
ZWN0b3JWYWxncmluZFRlc3QpOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmRUZXN0LnRl
c3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9wYXNzKToKKyAgICAgICAgKExlYWtEZXRl
Y3RvclZhbGdyaW5kVGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfaW5jb21w
bGV0ZSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9hbmRf
cHJpbnRfbGVha3NfZGV0YWlsX2VtcHR5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5k
VGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfbWlzZm9ybWF0dGVkKToKKyAg
ICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5kVGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFr
c19kZXRhaWxfcGFzcyk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9w
YXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX2luY29tcGxldGUpOgorICAgICAgICAoTGVha0Rl
dGVjdG9yVmFsZ3JpbmRUZXN0LnRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9lbXB0
eSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9hbmRfcHJp
bnRfbGVha3NfZGV0YWlsX21pc2Zvcm1hdHRlZCk6CisKIDIwMTQtMDEtMDEgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFJlbmFtZSBsaWJ0
ZXN0bmV0c2NhcGVwbHVnaW4gdG8gbGliVGVzdE5ldHNjYXBlUGx1Z2luCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2d0ay5weQppbmRleCAyYjhlMjc4MGRmZWI4MjMxNzlkM2I2ZDJkZTlkNjkwMDI5MWM1
NjljLi5mM2FmYzRlYzY2ZmYzOWFhOGE4YWYxYTVjMjkxNDM2MmU1NDNjNzlkIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9ndGsucHkKQEAgLTM4LDYgKzM4LDcgQEAgZnJvbSB3ZWJraXRweS5wb3J0
LnB1bHNlYXVkaW9fc2FuaXRpemVyIGltcG9ydCBQdWxzZUF1ZGlvU2FuaXRpemVyCiBmcm9tIHdl
YmtpdHB5LnBvcnQueHZmYmRyaXZlciBpbXBvcnQgWHZmYkRyaXZlcgogZnJvbSB3ZWJraXRweS5w
b3J0Lndlc3RvbmRyaXZlciBpbXBvcnQgV2VzdG9uRHJpdmVyCiBmcm9tIHdlYmtpdHB5LnBvcnQu
bGludXhfZ2V0X2NyYXNoX2xvZyBpbXBvcnQgR0RCQ3Jhc2hMb2dHZW5lcmF0b3IKK2Zyb20gd2Vi
a2l0cHkucG9ydC5sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgaW1wb3J0IExlYWtEZXRlY3RvclZhbGdy
aW5kCiAKIAogY2xhc3MgR3RrUG9ydChQb3J0KToKQEAgLTQ4LDYgKzQ5LDcgQEAgY2xhc3MgR3Rr
UG9ydChQb3J0KToKICAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIgPSBQdWxzZUF1
ZGlvU2FuaXRpemVyKCkKIAogICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oImxlYWtzIik6Cisg
ICAgICAgICAgICBzZWxmLl9sZWFrZGV0ZWN0b3IgPSBMZWFrRGV0ZWN0b3JWYWxncmluZChzZWxm
Ll9leGVjdXRpdmUsIHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYucmVzdWx0c19kaXJlY3RvcnkoKSkK
ICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmdldF9vcHRpb24oIndyYXBwZXIiKToKICAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd1c2UgLS13cmFwcGVyPVwidmFsZ3JpbmRcIiBmb3Ig
bWVtb3J5IGxlYWsgZGV0ZWN0aW9uIG9uIEdUSycpCiAKQEAgLTgxLDYgKzgzLDkgQEAgY2xhc3Mg
R3RrUG9ydChQb3J0KToKICAgICAgICAgc3VwZXIoR3RrUG9ydCwgc2VsZikuc2V0dXBfdGVzdF9y
dW4oKQogICAgICAgICBzZWxmLl9wdWxzZWF1ZGlvX3Nhbml0aXplci51bmxvYWRfcHVsc2VhdWRp
b19tb2R1bGUoKQogCisgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbigibGVha3MiKToKKyAgICAg
ICAgICAgIHNlbGYuX2xlYWtkZXRlY3Rvci5jbGVhbl9sZWFrc19maWxlc19mcm9tX3Jlc3VsdHNf
ZGlyZWN0b3J5KCkKKwogICAgIGRlZiBjbGVhbl91cF90ZXN0X3J1bihzZWxmKToKICAgICAgICAg
c3VwZXIoR3RrUG9ydCwgc2VsZikuY2xlYW5fdXBfdGVzdF9ydW4oKQogICAgICAgICBzZWxmLl9w
dWxzZWF1ZGlvX3Nhbml0aXplci5yZXN0b3JlX3B1bHNlYXVkaW9fbW9kdWxlKCkKQEAgLTE1OSw2
ICsxNjQsMTYgQEAgY2xhc3MgR3RrUG9ydChQb3J0KToKICAgICBkZWYgX3BvcnRfc3BlY2lmaWNf
ZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuX2ZpbGVzeXN0
ZW0uam9pbihzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aChwKSwgJ1Rlc3RFeHBlY3RhdGlvbnMn
KSBmb3IgcCBpbiByZXZlcnNlZChzZWxmLl9zZWFyY2hfcGF0aHMoKSldCiAKKyAgICBkZWYgcHJp
bnRfbGVha3Nfc3VtbWFyeShzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuZ2V0X29wdGlvbign
bGVha3MnKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIGEg
aGFjaywgYnV0IHdlIGRvbid0IGhhdmUgYSBiZXR0ZXIgd2F5IHRvIGdldCB0aGlzIGluZm9ybWF0
aW9uIGZyb20gdGhlIHdvcmtlcnMgeWV0CisgICAgICAgICMgYmVjYXVzZSB3ZSdyZSBpbiB0aGUg
bWFuYWdlciBwcm9jZXNzLgorICAgICAgICBsZWFrc19maWxlcyA9IHNlbGYuX2xlYWtkZXRlY3Rv
ci5sZWFrc19maWxlc19pbl9yZXN1bHRzX2RpcmVjdG9yeSgpCisgICAgICAgIGlmIG5vdCBsZWFr
c19maWxlczoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLl9sZWFrZGV0ZWN0b3Iu
cGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbChsZWFrc19maWxlcykKKwogICAgICMgRklYTUU6
IFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHNoYXJlIHRoaXMgaW1wbG1lbnRhdGlvbiB3aXRoIEd0
aywKICAgICAjIG9yIHRlYWNoIHJ1bi1sYXVuY2hlciBob3cgdG8gY2FsbCBydW4tc2FmYXJpIGFu
ZCBtb3ZlIHRoaXMgZG93biB0byBQb3J0LgogICAgIGRlZiBzaG93X3Jlc3VsdHNfaHRtbF9maWxl
KHNlbGYsIHJlc3VsdHNfZmlsZW5hbWUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA2MThhOTg1OTFk
NzEzM2FjZWQwZjkyOGJlMTM4YThkYzUwM2E0MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucHkKQEAgLTAsMCArMSwy
OTMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIEJhc2VkIG9uIGNvZGUgZnJvbSBDaHJvbWl1bSwgY29weXJpZ2h0
IGFzIGZvbGxvd3M6CisjCisjIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9y
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGlj
dAoraW1wb3J0IGhhc2hsaWIKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgcmUKK2ltcG9ydCBzdWJw
cm9jZXNzCitmcm9tIHhtbC5kb20ubWluaWRvbSBpbXBvcnQgcGFyc2VTdHJpbmcKK2Zyb20geG1s
LnBhcnNlcnMuZXhwYXQgaW1wb3J0IEV4cGF0RXJyb3IKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKF9fbmFtZV9fKQorCisKK2RlZiBnZXRfdGV4dF9vZih0b3Bfbm9kZSwgbmFtZSk6CisgICAg
IiIiIFJldHVybnMgYWxsIHRleHQgaW4gYWxsIERPTSBub2RlcyB3aXRoIGEgY2VydGFpbiB8bmFt
ZXwgdGhhdCBhcmUgY2hpbGRyZW4gb2YgfHRvcF9ub2RlfC4gIiIiCisKKyAgICB0ZXh0ID0gIiIK
KyAgICBmb3Igbm9kZXNfbmFtZWQgaW4gdG9wX25vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUobmFt
ZSk6CisgICAgICAgIHRleHQgKz0gIiIuam9pbihbbm9kZS5kYXRhIGZvciBub2RlIGluIG5vZGVz
X25hbWVkLmNoaWxkTm9kZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub2RlLm5vZGVU
eXBlID09IG5vZGUuVEVYVF9OT0RFXSkKKyAgICByZXR1cm4gdGV4dAorCisKK2RlZiBnZXRfQ0RB
VEFfb2YodG9wX25vZGUsIG5hbWUpOgorICAgICIiIiBSZXR1cm5zIGFsbCBDREFUQSBpbiBhbGwg
RE9NIG5vZGVzIHdpdGggYSBjZXJ0YWluIHxuYW1lfCB0aGF0IGFyZSBjaGlsZHJlbiBvZiB8dG9w
X25vZGV8LiAiIiIKKworICAgIHRleHQgPSAiIgorICAgIGZvciBub2Rlc19uYW1lZCBpbiB0b3Bf
bm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZShuYW1lKToKKyAgICAgICAgdGV4dCArPSAiIi5qb2lu
KFtub2RlLmRhdGEgZm9yIG5vZGUgaW4gbm9kZXNfbmFtZWQuY2hpbGROb2RlcworICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIG5vZGUubm9kZVR5cGUgPT0gbm9kZS5DREFUQV9TRUNUSU9OX05P
REVdKQorICAgIGlmICh0ZXh0ID09ICIiKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICByZXR1
cm4gdGV4dAorCisKKyMgQ29uc3RhbnRzIHRoYXQgZ2l2ZSByZWFsIG5hbWVzIHRvIHRoZSBhYmJy
ZXZpYXRpb25zIGluIHZhbGdyaW5kIFhNTCBvdXRwdXQuCitJTlNUUlVDVElPTl9QT0lOVEVSID0g
ImlwIgorT0JKRUNUX0ZJTEUgPSAib2JqIgorRlVOQ1RJT05fTkFNRSA9ICJmbiIKK1NSQ19GSUxF
X0RJUiA9ICJkaXIiCitTUkNfRklMRV9OQU1FID0gImZpbGUiCitTUkNfTElORSA9ICJsaW5lIgor
CisKK2RlZiBnYXRoZXJfZnJhbWVzKG5vZGUsIHNvdXJjZV9kaXIpOgorICAgIGZyYW1lX2RpY3Qg
PSBsYW1iZGEgZnJhbWU6IHsKKyAgICAgICAgSU5TVFJVQ1RJT05fUE9JTlRFUjogZ2V0X3RleHRf
b2YoZnJhbWUsIElOU1RSVUNUSU9OX1BPSU5URVIpLAorICAgICAgICBPQkpFQ1RfRklMRTogZ2V0
X3RleHRfb2YoZnJhbWUsIE9CSkVDVF9GSUxFKSwKKyAgICAgICAgRlVOQ1RJT05fTkFNRTogZ2V0
X3RleHRfb2YoZnJhbWUsIEZVTkNUSU9OX05BTUUpLAorICAgICAgICBTUkNfRklMRV9ESVI6IGdl
dF90ZXh0X29mKGZyYW1lLCBTUkNfRklMRV9ESVIpLAorICAgICAgICBTUkNfRklMRV9OQU1FOiBn
ZXRfdGV4dF9vZihmcmFtZSwgU1JDX0ZJTEVfTkFNRSksCisgICAgICAgIFNSQ19MSU5FOiBnZXRf
dGV4dF9vZihmcmFtZSwgU1JDX0xJTkUpfQorCisgICAgcmV0dXJuIFtmcmFtZV9kaWN0KGZyYW1l
KSBmb3IgZnJhbWUgaW4gbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZnJhbWUiKV0KKworCitj
bGFzcyBWYWxncmluZEVycm9yOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dGl2ZSwg
c291cmNlX2RpciwgZXJyb3Jfbm9kZSk6CisgICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1
dGl2ZQorICAgICAgICBzZWxmLl9raW5kID0gZ2V0X3RleHRfb2YoZXJyb3Jfbm9kZSwgImtpbmQi
KQorICAgICAgICBzZWxmLl9iYWNrdHJhY2VzID0gW10KKyAgICAgICAgc2VsZi5fc3VwcHJlc3Np
b24gPSBOb25lCisgICAgICAgIHNlbGYuX2FkZGl0aW9uYWwgPSBbXQorCisgICAgICAgICMgSXRl
cmF0ZSB0aHJvdWdoIHRoZSBub2RlcywgcGFyc2luZyA8d2hhdHxhdXh3aGF0PjxzdGFjaz4gcGFp
cnMuCisgICAgICAgIGRlc2NyaXB0aW9uID0gTm9uZQorICAgICAgICBmb3Igbm9kZSBpbiBlcnJv
cl9ub2RlLmNoaWxkTm9kZXM6CisgICAgICAgICAgICBpZiBub2RlLmxvY2FsTmFtZSA9PSAid2hh
dCIgb3Igbm9kZS5sb2NhbE5hbWUgPT0gImF1eHdoYXQiOgorICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uID0gIiIuam9pbihbbi5kYXRhIGZvciBuIGluIG5vZGUuY2hpbGROb2RlcworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbi5ub2RlVHlwZSA9PSBuLlRFWFRf
Tk9ERV0pCisgICAgICAgICAgICBlbGlmIG5vZGUubG9jYWxOYW1lID09ICJ4d2hhdCI6CisgICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBnZXRfdGV4dF9vZihub2RlLCAidGV4dCIpCisgICAg
ICAgICAgICBlbGlmIG5vZGUubG9jYWxOYW1lID09ICJzdGFjayI6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IGRlc2NyaXB0aW9uCisgICAgICAgICAgICAgICAgc2VsZi5fYmFja3RyYWNlcy5hcHBl
bmQoW2Rlc2NyaXB0aW9uLCBnYXRoZXJfZnJhbWVzKG5vZGUsIHNvdXJjZV9kaXIpXSkKKyAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiA9IE5vbmUKKyAgICAgICAgICAgIGVsaWYgbm9kZS5sb2Nh
bE5hbWUgPT0gIm9yaWdpbiI6CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBnZXRfdGV4
dF9vZihub2RlLCAid2hhdCIpCisgICAgICAgICAgICAgICAgc3RhY2sgPSBub2RlLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJzdGFjayIpWzBdCisgICAgICAgICAgICAgICAgZnJhbWVzID0gZ2F0aGVy
X2ZyYW1lcyhzdGFjaywgc291cmNlX2RpcikKKyAgICAgICAgICAgICAgICBzZWxmLl9iYWNrdHJh
Y2VzLmFwcGVuZChbZGVzY3JpcHRpb24sIGZyYW1lc10pCisgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24gPSBOb25lCisgICAgICAgICAgICAgICAgc3RhY2sgPSBOb25lCisgICAgICAgICAgICAg
ICAgZnJhbWVzID0gTm9uZQorICAgICAgICAgICAgZWxpZiBkZXNjcmlwdGlvbiBhbmQgbm9kZS5s
b2NhbE5hbWUgIT0gTm9uZToKKyAgICAgICAgICAgICAgICAjIFRoZSBsYXN0ZXN0IGRlc2NyaXB0
aW9uIGhhcyBubyBzdGFjaywgZS5nLiAiQWRkcmVzcyAweDI4IGlzIHVua25vd24iLgorICAgICAg
ICAgICAgICAgIHNlbGYuX2FkZGl0aW9uYWwuYXBwZW5kKGRlc2NyaXB0aW9uKQorICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uID0gTm9uZQorCisgICAgICAgICAgICBpZiBub2RlLmxvY2FsTmFt
ZSA9PSAic3VwcHJlc3Npb24iOgorICAgICAgICAgICAgICAgIHNlbGYuX3N1cHByZXNzaW9uID0g
Z2V0X0NEQVRBX29mKG5vZGUsICJyYXd0ZXh0IikKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgor
ICAgICAgICBvdXRwdXQgPSBzZWxmLl9raW5kICsgIlxuIgorICAgICAgICBmb3IgYmFja3RyYWNl
IGluIHNlbGYuX2JhY2t0cmFjZXM6CisgICAgICAgICAgICBvdXRwdXQgKz0gYmFja3RyYWNlWzBd
ICsgIlxuIgorCisgICAgICAgICAgICBidWYgPSAiIgorICAgICAgICAgICAgZm9yIGZyYW1lIGlu
IGJhY2t0cmFjZVsxXToKKyAgICAgICAgICAgICAgICBidWYgKz0gKGZyYW1lW0ZVTkNUSU9OX05B
TUVdIG9yIGZyYW1lW0lOU1RSVUNUSU9OX1BPSU5URVJdKSArICJcbiIKKworICAgICAgICAgICAg
aW5wdXQgPSBidWYuZW5jb2RlKCdsYXRpbi0xJykuc3BsaXQoIlxuIikKKyAgICAgICAgICAgIGRl
bWFuZ2xlZF9uYW1lcyA9IFtzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWydjKytmaWx0Jywg
Jy1uJywgbmFtZV0pIGZvciBuYW1lIGluIGlucHV0IGlmIG5hbWVdCisKKyAgICAgICAgICAgIGkg
PSAwCisgICAgICAgICAgICBmb3IgZnJhbWUgaW4gYmFja3RyYWNlWzFdOgorICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAoIiAgIiArIGRlbWFuZ2xlZF9uYW1lc1tpXSkKKyAgICAgICAgICAgICAg
ICBpID0gaSArIDEKKworICAgICAgICAgICAgICAgIGlmIGZyYW1lW1NSQ19GSUxFX0RJUl0gIT0g
IiI6CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAoIiAoIiArIGZyYW1lW1NSQ19GSUxF
X0RJUl0gKyAiLyIgKyBmcmFtZVtTUkNfRklMRV9OQU1FXSArCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjoiICsgZnJhbWVbU1JDX0xJTkVdICsgIikiKQorICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAiICgiICsgZnJhbWVbT0JKRUNU
X0ZJTEVdICsgIikiCisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICJcbiIKKworICAgICAgICBm
b3IgYWRkaXRpb25hbCBpbiBzZWxmLl9hZGRpdGlvbmFsOgorICAgICAgICAgICAgb3V0cHV0ICs9
IGFkZGl0aW9uYWwgKyAiXG4iCisKKyAgICAgICAgYXNzZXJ0IHNlbGYuX3N1cHByZXNzaW9uICE9
IE5vbmUsICJZb3VyIFZhbGdyaW5kIGRvZXNuJ3QgZ2VuZXJhdGUgIiBcCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1cHByZXNzaW9ucyAtIGlzIGl0IHRvbyBv
bGQ/IgorCisgICAgICAgIG91dHB1dCArPSAiU3VwcHJlc3Npb24gKGVycm9yIGhhc2g9IyUwMTZY
Iyk6XG4iICUgc2VsZi5lcnJvcl9oYXNoKCkKKworICAgICAgICAjIFdpZGVuIHRoZSBzdXBwcmVz
c2lvbnMgc2xpZ2h0bHkuCisgICAgICAgIHN1cHAgPSBzZWxmLl9zdXBwcmVzc2lvbgorICAgICAg
ICBzdXBwID0gc3VwcC5yZXBsYWNlKCJmdW46X1pud2oiLCAiZnVuOl9abncqIikKKyAgICAgICAg
c3VwcCA9IHN1cHAucmVwbGFjZSgiZnVuOl9abndtIiwgImZ1bjpfWm53KiIpCisgICAgICAgIHN1
cHAgPSBzdXBwLnJlcGxhY2UoImZ1bjpfWm5haiIsICJmdW46X1puYSoiKQorICAgICAgICBzdXBw
ID0gc3VwcC5yZXBsYWNlKCJmdW46X1puYW0iLCAiZnVuOl9abmEqIikKKworICAgICAgICAjIFNw
bGl0IGludG8gbGluZXMgc28gd2UgY2FuIGVuZm9yY2UgbGVuZ3RoIGxpbWl0cy4KKyAgICAgICAg
c3VwcGxpbmVzID0gc3VwcC5zcGxpdCgiXG4iKQorICAgICAgICBzdXBwID0gTm9uZSAgIyB0byBh
dm9pZCByZS11c2UKKworICAgICAgICAjIFRydW5jYXRlIGF0IGxpbmUgMjYgKFZHX01BWF9TVVBQ
X0NBTExFUlMgcGx1cyAyIGZvciBuYW1lIGFuZCB0eXBlKQorICAgICAgICAjIChodHRwczovL2J1
Z3Mua2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5NDY4IHByb3Bvc2VzIHJhaXNpbmcKKyAgICAg
ICAgIyBWR19NQVhfU1VQUF9DQUxMRVJTLCBidXQgd2UncmUgcHJvYmFibHkgZmluZSB3aXRoIGl0
IGFzIGlzLikKKyAgICAgICAgbmV3bGVuID0gbWluKDI2LCBsZW4oc3VwcGxpbmVzKSkKKworICAg
ICAgICBpZiAobGVuKHN1cHBsaW5lcykgPiBuZXdsZW4pOgorICAgICAgICAgICAgc3VwcGxpbmVz
ID0gc3VwcGxpbmVzWzA6bmV3bGVuXQorICAgICAgICAgICAgc3VwcGxpbmVzLmFwcGVuZCgifSIp
CisKKyAgICAgICAgZm9yIGZyYW1lIGluIHJhbmdlKGxlbihzdXBwbGluZXMpKToKKyAgICAgICAg
ICAgICMgUmVwbGFjZSB0aGUgYWx3YXlzLWNoYW5naW5nIGFub255bW91cyBuYW1lc3BhY2UgcHJl
Zml4IHdpdGggIioiLgorICAgICAgICAgICAgbSA9IHJlLm1hdGNoKCIoICtmdW46KV9aTi4qX0dM
T0JBTF9fTl8uKlwuY2NfIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIlswLTlhLWZBLUZd
ezh9X1swLTlhLWZBLUZdezh9KC4qKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcGxp
bmVzW2ZyYW1lXSkKKyAgICAgICAgICAgIGlmIG06CisgICAgICAgICAgICAgICAgc3VwcGxpbmVz
W2ZyYW1lXSA9ICIqIi5qb2luKG0uZ3JvdXBzKCkpCisKKyAgICAgICAgcmV0dXJuIG91dHB1dCAr
ICJcbiIuam9pbihzdXBwbGluZXMpICsgIlxuIgorCisgICAgZGVmIHVuaXF1ZV9zdHJpbmcoc2Vs
Zik6CisgICAgICAgIHJlcCA9IHNlbGYuX2tpbmQgKyAiICIKKyAgICAgICAgZm9yIGJhY2t0cmFj
ZSBpbiBzZWxmLl9iYWNrdHJhY2VzOgorICAgICAgICAgICAgZm9yIGZyYW1lIGluIGJhY2t0cmFj
ZVsxXToKKyAgICAgICAgICAgICAgICByZXAgKz0gZnJhbWVbRlVOQ1RJT05fTkFNRV0KKworICAg
ICAgICAgICAgICAgIGlmIGZyYW1lW1NSQ19GSUxFX0RJUl0gIT0gIiI6CisgICAgICAgICAgICAg
ICAgICAgIHJlcCArPSBmcmFtZVtTUkNfRklMRV9ESVJdICsgIi8iICsgZnJhbWVbU1JDX0ZJTEVf
TkFNRV0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXAgKz0g
ZnJhbWVbT0JKRUNUX0ZJTEVdCisgICAgICAgIHJldHVybiByZXAKKworICAgIGRlZiBlcnJvcl9o
YXNoKHNlbGYpOgorICAgICAgICAjIFRoaXMgaXMgYSBkZXZpY2UtaW5kZXBlbmRlbnQgaGFzaCBp
ZGVudGlmeWluZyB0aGUgc3VwcHJlc3Npb24uCisgICAgICAgICMgQnkgcHJpbnRpbmcgb3V0IHRo
aXMgaGFzaCB3ZSBjYW4gZmluZCBkdXBsaWNhdGUgcmVwb3J0cyBiZXR3ZWVuIHRlc3RzIGFuZAor
ICAgICAgICAjIGRpZmZlcmVudCBzaGFyZHMgcnVubmluZyBvbiBtdWx0aXBsZSBidWlsZGJvdHMK
KyAgICAgICAgcmV0dXJuIGludChoYXNobGliLm1kNShzZWxmLnVuaXF1ZV9zdHJpbmcoKSkuaGV4
ZGlnZXN0KClbOjE2XSwgMTYpCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgIHJl
dHVybiBoYXNoKHNlbGYudW5pcXVlX3N0cmluZygpKQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBy
aHMpOgorICAgICAgICByZXR1cm4gc2VsZi51bmlxdWVfc3RyaW5nKCkgPT0gcmhzCisKKworY2xh
c3MgTGVha0RldGVjdG9yVmFsZ3JpbmQob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBleGVjdXRpdmUsIGZpbGVzeXN0ZW0sIHNvdXJjZV9kaXIpOgorICAgICAgICBzZWxmLl9leGVj
dXRpdmUgPSBleGVjdXRpdmUKKyAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0K
KyAgICAgICAgc2VsZi5fc291cmNlX2RpciA9IHNvdXJjZV9kaXIKKworICAgICAgICAjIENvbnRh
aW5zIHRoZSBzZXQgb2YgdW5pcXVlIGVycm9ycy4KKyAgICAgICAgc2VsZi5fZXJyb3JzID0gc2V0
KCkKKyAgICAgICAgIyBDb250YWlucyBhbGwgc3VwcHJlc3Npb25zIHVzZWQuCisgICAgICAgIHNl
bGYuX3N1cHByZXNzaW9ucyA9IGRlZmF1bHRkaWN0KGludCkKKworICAgIGRlZiBfcGFyc2VfbGVh
a3Nfb3V0cHV0KHNlbGYsIGxlYWtzX291dHB1dCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHBhcnNlZF9zdHJpbmcgPSBwYXJzZVN0cmluZyhsZWFrc19vdXRwdXQpCisgICAgICAgIGV4Y2Vw
dCBFeHBhdEVycm9yLCBlOgorICAgICAgICAgICAgcGFyc2VfZmFpbGVkID0gVHJ1ZQorICAgICAg
ICAgICAgX2xvZy5lcnJvcigiY291bGQgbm90IHBhcnNlICVzOiAlcyIgJSAobGVha3Nfb3V0cHV0
LCBlKSkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGN1cl9yZXBvcnRfZXJyb3JzID0g
c2V0KCkKKworICAgICAgICBjb21tYW5kbGluZSA9IE5vbmUKKyAgICAgICAgcHJlYW1ibGUgPSBw
YXJzZWRfc3RyaW5nLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwcmVhbWJsZSIpWzBdCisgICAgICAg
IGZvciBub2RlIGluIHByZWFtYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5lIik6CisgICAg
ICAgICAgICBpZiBub2RlLmxvY2FsTmFtZSA9PSAibGluZSI6CisgICAgICAgICAgICAgICAgZm9y
IHggaW4gbm9kZS5jaGlsZE5vZGVzOgorICAgICAgICAgICAgICAgICAgICBpZiB4Lm5vZGVUeXBl
ID09IG5vZGUuVEVYVF9OT0RFIGFuZCAiQ29tbWFuZCIgaW4geC5kYXRhOgorICAgICAgICAgICAg
ICAgICAgICAgICAgY29tbWFuZGxpbmUgPSB4LmRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrCisKKyAgICAgICAgcmF3X2Vycm9ycyA9IHBhcnNlZF9zdHJpbmcuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoImVycm9yIikKKyAgICAgICAgZm9yIHJhd19lcnJvciBpbiByYXdfZXJyb3JzOgor
ICAgICAgICAgICAgIyBJZ25vcmUgInBvc3NpYmxlIiBsZWFrcyBhbmQgSW52YWxpZFJlYWQvV3Jp
dGUgYnkgZGVmYXVsdC4KKyAgICAgICAgICAgIGlmIChnZXRfdGV4dF9vZihyYXdfZXJyb3IsICJr
aW5kIikgIT0gIkxlYWtfUG9zc2libHlMb3N0IikgYW5kIFwKKyAgICAgICAgICAgICAgICAoZ2V0
X3RleHRfb2YocmF3X2Vycm9yLCAia2luZCIpICE9ICJMZWFrX1N0aWxsUmVhY2hhYmxlIikgYW5k
IFwKKyAgICAgICAgICAgICAgICAoZ2V0X3RleHRfb2YocmF3X2Vycm9yLCAia2luZCIpICE9ICJJ
bnZhbGlkV3JpdGUiKSBhbmQgXAorICAgICAgICAgICAgICAgIChnZXRfdGV4dF9vZihyYXdfZXJy
b3IsICJraW5kIikgIT0gIkludmFsaWRSZWFkIik6CisgICAgICAgICAgICAgICAgZXJyb3IgPSBW
YWxncmluZEVycm9yKHNlbGYuX2V4ZWN1dGl2ZSwgc2VsZi5fc291cmNlX2RpciwgcmF3X2Vycm9y
KQorICAgICAgICAgICAgICAgIGlmIGVycm9yIG5vdCBpbiBjdXJfcmVwb3J0X2Vycm9yczoKKyAg
ICAgICAgICAgICAgICAgICAgIyBXZSBoYXZlbid0IHNlZW4gc3VjaCBlcnJvcnMgZG9pbmcgdGhp
cyByZXBvcnQgeWV0Li4uCisgICAgICAgICAgICAgICAgICAgIGlmIGVycm9yIGluIHNlbGYuX2Vy
cm9yczoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgLi4uIGJ1dCB3ZSBzYXcgaXQgaW4gZWFy
bGllciByZXBvcnRzLCBlLmcuIHByZXZpb3VzIFVJIHRlc3QKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGN1cl9yZXBvcnRfZXJyb3JzLmFkZCgiVGhpcyBlcnJvciB3YXMgYWxyZWFkeSBwcmludGVk
IGluICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic29t
ZSBvdGhlciB0ZXN0LCBzZWUgJ2hhc2g9IyUwMTZYIyciICUgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVycm9yLmVycm9yX2hhc2goKSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgICAgICMgLi4uIGFuZCB3ZSBoYXZlbid0IHNlZW4gaXQgaW4g
b3RoZXIgdGVzdHMgYXMgd2VsbAorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXJyb3Jz
LmFkZChlcnJvcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cl9yZXBvcnRfZXJyb3JzLmFk
ZChlcnJvcikKKworICAgICAgICBzdXBwY291bnRsaXN0ID0gcGFyc2VkX3N0cmluZy5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgic3VwcGNvdW50cyIpCisgICAgICAgIGlmIGxlbihzdXBwY291bnRsaXN0
KSA+IDA6CisgICAgICAgICAgICBzdXBwY291bnRsaXN0ID0gc3VwcGNvdW50bGlzdFswXQorICAg
ICAgICAgICAgZm9yIG5vZGUgaW4gc3VwcGNvdW50bGlzdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
cGFpciIpOgorICAgICAgICAgICAgICAgIGNvdW50ID0gZ2V0X3RleHRfb2Yobm9kZSwgImNvdW50
IikKKyAgICAgICAgICAgICAgICBuYW1lID0gZ2V0X3RleHRfb2Yobm9kZSwgIm5hbWUiKQorICAg
ICAgICAgICAgICAgIHNlbGYuX3N1cHByZXNzaW9uc1tuYW1lXSArPSBpbnQoY291bnQpCisKKyAg
ICAgICAgcmV0dXJuIGN1cl9yZXBvcnRfZXJyb3JzCisKKyAgICBkZWYgbGVha3NfZmlsZXNfaW5f
cmVzdWx0c19kaXJlY3Rvcnkoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVt
Lmdsb2Ioc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX3NvdXJjZV9kaXIsICJkcnQtKi1sZWFr
cy54bWwiKSkKKworICAgIGRlZiBjbGVhbl9sZWFrc19maWxlc19mcm9tX3Jlc3VsdHNfZGlyZWN0
b3J5KHNlbGYpOgorICAgICAgICAjIFJlbW92ZSBvbGQgVmFsZ3JpbmQgeG1sIGZpbGVzIGJlZm9y
ZSBzdGFydGluZyB0aGlzIHJ1bi4KKyAgICAgICAgbGVha3NfZmlsZXMgPSBzZWxmLmxlYWtzX2Zp
bGVzX2luX3Jlc3VsdHNfZGlyZWN0b3J5KCkKKyAgICAgICAgZm9yIGYgaW4gbGVha3NfZmlsZXM6
CisgICAgICAgICAgICBzZWxmLl9maWxlc3lzdGVtLnJlbW92ZShmKQorCisgICAgZGVmIHBhcnNl
X2FuZF9wcmludF9sZWFrc19kZXRhaWwoc2VsZiwgbGVha3NfZmlsZXMpOgorICAgICAgICBmb3Ig
ZiBpbiBsZWFrc19maWxlczoKKyAgICAgICAgICAgIGxlYWtzX291dHB1dCA9IHNlbGYuX2ZpbGVz
eXN0ZW0ucmVhZF9iaW5hcnlfZmlsZShmKQorICAgICAgICAgICAgZGV0ZWN0ZWRfbGVha3MgPSBz
ZWxmLl9wYXJzZV9sZWFrc19vdXRwdXQobGVha3Nfb3V0cHV0KQorCisgICAgICAgIF9sb2cuaW5m
bygiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0i
KQorICAgICAgICBfbG9nLmluZm8oIlN1cHByZXNzaW9ucyB1c2VkOiIpCisgICAgICAgIF9sb2cu
aW5mbygiICBjb3VudCBuYW1lIikKKyAgICAgICAgZm9yIChuYW1lLCBjb3VudCkgaW4gc29ydGVk
KHNlbGYuX3N1cHByZXNzaW9ucy5pdGVtcygpLCBrZXk9bGFtYmRhIChrLCB2KTogKHYsIGspKToK
KyAgICAgICAgICAgIF9sb2cuaW5mbygiJTdkICVzIiAlIChjb3VudCwgbmFtZSkpCisgICAgICAg
IF9sb2cuaW5mbygiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0iKQorCisgICAgICAgIGlmIHNlbGYuX2Vycm9yczoKKyAgICAgICAgICAgIF9sb2cu
aW5mbygiVmFsZ3JpbmQgZGV0ZWN0ZWQgJXMgbGVha3M6IiAlIGxlbihzZWxmLl9lcnJvcnMpKQor
ICAgICAgICAgICAgZm9yIGxlYWsgaW4gc2VsZi5fZXJyb3JzOgorICAgICAgICAgICAgICAgIF9s
b2cuaW5mbyhsZWFrKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xl
YWtkZXRlY3Rvcl92YWxncmluZF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmRfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGU4ZDhj
MjU4MzgyZDQ2MWU0MTM1YWY0ZjA3OWU4OWJkMzM2OTlmMQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmRfdW5pdHRlc3Qu
cHkKQEAgLTAsMCArMSw4NDggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisjIG1ldDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdW5pdHRlc3Qy
IGFzIHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9j
ayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZTIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxl
c3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRweS5w
b3J0LmxlYWtkZXRlY3Rvcl92YWxncmluZCBpbXBvcnQgTGVha0RldGVjdG9yVmFsZ3JpbmQKKwor
CitkZWYgbWFrZV9tb2NrX3ZhbGdyaW5kX291dHB1dChwcm9jZXNzX25hbWUsIHBpZCwgdXVpZCk6
CisgICAgcmV0dXJuICIiIjw/eG1sIHZlcnNpb249IjEuMCI/PgorCis8dmFsZ3JpbmRvdXRwdXQ+
CisKKzxwcm90b2NvbHZlcnNpb24+NDwvcHJvdG9jb2x2ZXJzaW9uPgorPHByb3RvY29sdG9vbD5t
ZW1jaGVjazwvcHJvdG9jb2x0b29sPgorCis8cHJlYW1ibGU+CisgIDxsaW5lPk1lbWNoZWNrLCBh
IG1lbW9yeSBlcnJvciBkZXRlY3RvcjwvbGluZT4KKyAgPGxpbmU+Q29weXJpZ2h0IChDKSAyMDAy
LTIwMTEsIGFuZCBHTlUgR1BMJ2QsIGJ5IEp1bGlhbiBTZXdhcmQgZXQgYWwuPC9saW5lPgorICA8
bGluZT5Vc2luZyBWYWxncmluZC0zLjcuMCBhbmQgTGliVkVYOyByZXJ1biB3aXRoIC1oIGZvciBj
b3B5cmlnaHQgaW5mbzwvbGluZT4KKyAgPGxpbmU+Q29tbWFuZDogL2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy97cHJvY2Vzc19uYW1lfSAtPC9saW5lPgorPC9w
cmVhbWJsZT4KKworPHBpZD57cGlkfTwvcGlkPgorPHBwaWQ+MTg1Nzc8L3BwaWQ+Cis8dG9vbD5t
ZW1jaGVjazwvdG9vbD4KKworPGFyZ3M+CisgIDx2YXJndj4KKyAgICA8ZXhlPi91c3IvYmluL3Zh
bGdyaW5kLmJpbjwvZXhlPgorICAgIDxhcmc+LS10b29sPW1lbWNoZWNrPC9hcmc+CisgICAgPGFy
Zz4tLW51bS1jYWxsZXJzPTQwPC9hcmc+CisgICAgPGFyZz4tLWRlbWFuZ2xlPW5vPC9hcmc+Cisg
ICAgPGFyZz4tLXRyYWNlLWNoaWxkcmVuPW5vPC9hcmc+CisgICAgPGFyZz4tLXNtYy1jaGVjaz1h
bGwtbm9uLWZpbGU8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1jaGVjaz15ZXM8L2FyZz4KKyAgICA8
YXJnPi0tbGVhay1yZXNvbHV0aW9uPWhpZ2g8L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1wb3NzaWJs
eS1sb3N0PW5vPC9hcmc+CisgICAgPGFyZz4tLXNob3ctcmVhY2hhYmxlPW5vPC9hcmc+CisgICAg
PGFyZz4tLWxlYWstY2hlY2s9ZnVsbDwvYXJnPgorICAgIDxhcmc+LS11bmRlZi12YWx1ZS1lcnJv
cnM9bm88L2FyZz4KKyAgICA8YXJnPi0tZ2VuLXN1cHByZXNzaW9ucz1hbGw8L2FyZz4KKyAgICA8
YXJnPi0teG1sPXllczwvYXJnPgorICAgIDxhcmc+LS14bWwtZmlsZT0vaG9tZS91c2VyL1dlYktp
dC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LXtwaWR9LXt1dWlk
fS1sZWFrcy54bWw8L2FyZz4KKyAgICA8YXJnPi0tc3VwcHJlc3Npb25zPS9ob21lL3VzZXIvV2Vi
S2l0L1Rvb2xzL1NjcmlwdHMvdmFsZ3JpbmQvc3VwcHJlc3Npb25zLnR4dDwvYXJnPgorICAgIDxh
cmc+LS1zdXBwcmVzc2lvbnM9L3Vzci9saWIvdmFsZ3JpbmQvZGViaWFuLWxpYmM2LWRiZy5zdXBw
PC9hcmc+CisgIDwvdmFyZ3Y+CisgIDxhcmd2PgorICAgIDxleGU+L2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy97cHJvY2Vzc19uYW1lfTwvZXhlPgorICAgIDxh
cmc+LTwvYXJnPgorICA8L2FyZ3Y+Cis8L2FyZ3M+CisKKzxzdGF0dXM+CisgIDxzdGF0ZT5SVU5O
SU5HPC9zdGF0ZT4KKyAgPHRpbWU+MDA6MDA6MDA6MDAuMDI0IDwvdGltZT4KKzwvc3RhdHVzPgor
CisKKzxzdGF0dXM+CisgIDxzdGF0ZT5GSU5JU0hFRDwvc3RhdGU+CisgIDx0aW1lPjAwOjAwOjAw
OjU0LjE4NiA8L3RpbWU+Cis8L3N0YXR1cz4KKworPGVycm9yPgorICA8dW5pcXVlPjB4MWE0PC91
bmlxdWU+CisgIDx0aWQ+MTwvdGlkPgorICA8a2luZD5MZWFrX0RlZmluaXRlbHlMb3N0PC9raW5k
PgorICA8eHdoYXQ+CisgICAgPHRleHQ+OCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVs
eSBsb3N0IGluIGxvc3MgcmVjb3JkIDQyMSBvZiA3LDk3MjwvdGV4dD4KKyAgICA8bGVha2VkYnl0
ZXM+ODwvbGVha2VkYnl0ZXM+CisgICAgPGxlYWtlZGJsb2Nrcz4xPC9sZWFrZWRibG9ja3M+Cisg
IDwveHdoYXQ+CisgIDxzdGFjaz4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0QzJBRjhFPC9p
cD4KKyAgICAgIDxvYmo+L3Vzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX21lbWNoZWNrLWFtZDY0
LWxpbnV4LnNvPC9vYmo+CisgICAgICA8Zm4+X1pud208L2ZuPgorICAgIDwvZnJhbWU+CisgICAg
PGZyYW1lPgorICAgICAgPGlwPjB4NjgzOURFQzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIv
V2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5
LjM8L29iaj4KKyAgICAgIDxmbj5fWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJ
Wk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1
UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklO
UzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9F
MTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb248L2Zu
PgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFFN0IwMzwvaXA+Cisg
ICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGli
d2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj53ZWJraXRfd2ViX3BvbGlj
eV9kZWNpc2lvbl9uZXc8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlw
PjB4NjFDQkE2RDwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxk
L1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxm
bj5fWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVz
b3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rp
b25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1l
PgorICAgICAgPGlwPjB4NjgzREY1MjwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29i
aj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9u
UG9saWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYx
MFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV88L2ZuPgorICAgIDwv
ZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgxN0VGQzwvaXA+CisgICAgICA8b2Jq
Pi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3Rr
LTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIy
MmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxv
YWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUU8L2ZuPgorICAgIDwvZnJh
bWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgxODcyOTwvaXA+CisgICAgICA8b2JqPi9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMu
MC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9h
ZEVQTlNfMTREb2N1bWVudExvYWRlckU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgor
ICAgICAgPGlwPjB4NjgxOEEzQTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dl
YktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4K
KyAgICAgIDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2Fk
UmVxdWVzdEU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFF
MzE0ODwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVh
c2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj53ZWJr
aXRfd2ViX2ZyYW1lX2xvYWRfdXJpPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAg
ICAgIDxpcD4weDQ0Q0JDOTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktp
dEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5f
Wkw3cnVuVGVzdFJLU3M8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlw
PjB4NDRDRUQ2PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQv
UmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9aTDIwcnVu
VGVzdGluZ1NlcnZlckxvb3B2PC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAg
IDxpcD4weDQzQTJEMzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1
aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5tYWlu
PC9mbj4KKyAgICA8L2ZyYW1lPgorICA8L3N0YWNrPgorICA8c3VwcHJlc3Npb24+CisgICAgPHNu
YW1lPmluc2VydF9hX3N1cHByZXNzaW9uX25hbWVfaGVyZTwvc25hbWU+CisgICAgPHNraW5kPk1l
bWNoZWNrOkxlYWs8L3NraW5kPgorICAgIDxzZnJhbWU+IDxmdW4+X1pud208L2Z1bj4gPC9zZnJh
bWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFn
ZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMx
XzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0
cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25F
RV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb248
L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj53ZWJraXRfd2ViX3BvbGljeV9kZWNp
c2lvbl9uZXc8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk42V2ViS2l0MTdG
cmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
RVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4z
V1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xp
Y3lBY3Rpb25FRUU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29y
ZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJl
cXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0
ZUVFRVBGdlB2UzNfUzlfYkVTQV88L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5f
Wk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9j
dW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3Jt
U3RhdGVFRUU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTEx
RnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExvYWRlckU8L2Z1bj4gPC9zZnJhbWU+Cisg
ICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJh
bWVMb2FkUmVxdWVzdEU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj53ZWJraXRf
d2ViX2ZyYW1lX2xvYWRfdXJpPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pM
N3J1blRlc3RSS1NzPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pMMjBydW5U
ZXN0aW5nU2VydmVyTG9vcHY8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5tYWlu
PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxyYXd0ZXh0PgorPCFbQ0RBVEFbCit7eworICAgPGluc2Vy
dF9hX3N1cHByZXNzaW9uX25hbWVfaGVyZT4KKyAgIE1lbWNoZWNrOkxlYWsKKyAgIGZ1bjpfWm53
bQorICAgZnVuOl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3Jl
MTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJl
cXVlc3RFUE5TMV8xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0
YXRlRUVFUEZ2UHZTNV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFn
ZXJFUlN0OV9BbnlfZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbgorICAgZnVuOndlYmtp
dF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldworICAgZnVuOl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVy
Q2xpZW50MzlkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNv
cmUxNk5hdmlnYXRpb25BY3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NS
ZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVF
RQorICAgZnVuOl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xp
Y3lFUktOU18xNVJlc291cmNlUmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFz
c1JlZlB0cklOU185Rm9ybVN0YXRlRUVFUEZ2UHZTM19TOV9iRVNBXworICAgZnVuOl9aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExv
YWRlckVOU18xM0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVF
RQorICAgZnVuOl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9h
ZGVyRQorICAgZnVuOl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxv
YWRSZXF1ZXN0RQorICAgZnVuOndlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmkKKyAgIGZ1bjpfWkw3
cnVuVGVzdFJLU3MKKyAgIGZ1bjpfWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdgorICAgZnVuOm1h
aW4KK319CitdXT4KKyAgICA8L3Jhd3RleHQ+CisgIDwvc3VwcHJlc3Npb24+Cis8L2Vycm9yPgor
Cis8ZXJyb3I+CisgIDx1bmlxdWU+MHgxYTU8L3VuaXF1ZT4KKyAgPHRpZD4xPC90aWQ+CisgIDxr
aW5kPkxlYWtfRGVmaW5pdGVseUxvc3Q8L2tpbmQ+CisgIDx4d2hhdD4KKyAgICA8dGV4dD44IGJ5
dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgNDIyIG9m
IDcsOTcyPC90ZXh0PgorICAgIDxsZWFrZWRieXRlcz44PC9sZWFrZWRieXRlcz4KKyAgICA8bGVh
a2VkYmxvY2tzPjE8L2xlYWtlZGJsb2Nrcz4KKyAgPC94d2hhdD4KKyAgPHN0YWNrPgorICAgIDxm
cmFtZT4KKyAgICAgIDxpcD4weDRDMkFGOEU8L2lwPgorICAgICAgPG9iaj4vdXNyL2xpYi92YWxn
cmluZC92Z3ByZWxvYWRfbWVtY2hlY2stYW1kNjQtbGludXguc288L29iaj4KKyAgICAgIDxmbj5f
Wm53bTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODM5RDBD
PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8u
bGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTlN0MTRf
RnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThj
aGVja0NvbnRlbnRQb2xpY3lFUktOUzFfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEyUG9s
aWN5QWN0aW9uRUVTNl9FVWxTN19FX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0NfU3Qx
OF9NYW5hZ2VyX29wZXJhdGlvbjwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAg
ICA8aXA+MHg2MUU3QjAzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0
QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAg
ICAgPGZuPndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZm4+CisgICAgPC9mcmFtZT4K
KyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUNCNTI3PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNv
LjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzFk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlRVJLTjdXZWJDb3JlMTZSZXNvdXJjZVJlc3Bv
bnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0
aW9uRUVFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY4MzlF
QzA8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNl
Ly5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dl
YkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TXzE2UmVzb3VyY2VS
ZXNwb25zZUVQRnZQdk5TXzEyUG9saWN5QWN0aW9uRUVTNF88L2ZuPgorICAgIDwvZnJhbWU+Cisg
ICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgwMkY2RTwvaXA+CisgICAgICA8b2JqPi9ob21lL3Vz
ZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4w
LjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxNnJlc3Bv
bnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VF
PC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY3RTU5RTA8L2lw
PgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJz
L2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNvcmUx
N0NhY2hlZFJhd1Jlc291cmNlMTZyZXNwb25zZVJlY2VpdmVkRVJLTlNfMTZSZXNvdXJjZVJlc3Bv
bnNlRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODRDMjM3
PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8u
bGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJD
b3JlMTdTdWJyZXNvdXJjZUxvYWRlcjE4ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZSZXNvdXJj
ZVJlc3BvbnNlRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2
Rjk1ODQ4PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVs
ZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9a
TjdXZWJDb3JlTDE5c2VuZFJlcXVlc3RDYWxsYmFja0VQOF9HT2JqZWN0UDEzX0dBc3luY1Jlc3Vs
dFB2PC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDhFMkQ2Q0E8
L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNp
ZXMvUm9vdC9saWI2NC9saWJnaW8tMi4wLnNvLjAuMzgwMC4wPC9vYmo+CisgICAgICA8Zm4+Z190
YXNrX3JldHVybl9ub3c8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dpbzwvZGlyPgorICAgICAgPGZp
bGU+Z3Rhc2suYzwvZmlsZT4KKyAgICAgIDxsaW5lPjExMDg8L2xpbmU+CisgICAgPC9mcmFtZT4K
KyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg4RTJENkU4PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2lvLTIu
MC5zby4wLjM4MDAuMDwvb2JqPgorICAgICAgPGZuPmNvbXBsZXRlX2luX2lkbGVfY2I8L2ZuPgor
ICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291
cmNlL2dsaWItMi4zOC4wL2dpbzwvZGlyPgorICAgICAgPGZpbGU+Z3Rhc2suYzwvZmlsZT4KKyAg
ICAgIDxsaW5lPjExMTc8L2xpbmU+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8
aXA+MHg5M0E2MkY0PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2xpYi0yLjAuc28uMC4zODAwLjA8L29iaj4K
KyAgICAgIDxmbj5nX21haW5fY29udGV4dF9kaXNwYXRjaDwvZm4+CisgICAgICA8ZGlyPi9ob21l
L3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAv
Z2xpYjwvZGlyPgorICAgICAgPGZpbGU+Z21haW4uYzwvZmlsZT4KKyAgICAgIDxsaW5lPjMwNjU8
L2xpbmU+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg5M0E2NjM3PC9p
cD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVz
L1Jvb3QvbGliNjQvbGliZ2xpYi0yLjAuc28uMC4zODAwLjA8L29iaj4KKyAgICAgIDxmbj5nX21h
aW5fY29udGV4dF9pdGVyYXRlLmlzcmEuMjM8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dsaWI8L2Rp
cj4KKyAgICAgIDxmaWxlPmdtYWluLmM8L2ZpbGU+CisgICAgICA8bGluZT4zNzEyPC9saW5lPgor
ICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4OTNBNkE5OTwvaXA+CisgICAg
ICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Sb290L2xp
YjY0L2xpYmdsaWItMi4wLnNvLjAuMzgwMC4wPC9vYmo+CisgICAgICA8Zm4+Z19tYWluX2xvb3Bf
cnVuPC9mbj4KKyAgICAgIDxkaXI+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzL1NvdXJjZS9nbGliLTIuMzguMC9nbGliPC9kaXI+CisgICAgICA8ZmlsZT5nbWFpbi5j
PC9maWxlPgorICAgICAgPGxpbmU+MzkwNjwvbGluZT4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFt
ZT4KKyAgICAgIDxpcD4weDgxMjEyMDQ8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvUm9vdC9saWI2NC9saWJndGstMy5zby4wLjYwMC4w
PC9vYmo+CisgICAgICA8Zm4+Z3RrX21haW48L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2d0aystMy42LjAvZ3RrPC9kaXI+
CisgICAgICA8ZmlsZT5ndGttYWluLmM8L2ZpbGU+CisgICAgICA8bGluZT4xMTYyPC9saW5lPgor
ICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDRDQkNFPC9pcD4KKyAgICAg
IDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1w
UmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9aTDdydW5UZXN0UktTczwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0NENFRDY8L2lwPgorICAgICAgPG9iaj4v
aG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJU
cmVlPC9vYmo+CisgICAgICA8Zm4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8L2ZuPgorICAg
IDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDNBMkQzPC9pcD4KKyAgICAgIDxv
Ymo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVu
ZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPm1haW48L2ZuPgorICAgIDwvZnJhbWU+CisgIDwvc3Rh
Y2s+CisgIDxzdXBwcmVzc2lvbj4KKyAgICA8c25hbWU+aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFt
ZV9oZXJlPC9zbmFtZT4KKyAgICA8c2tpbmQ+TWVtY2hlY2s6TGVhazwvc2tpbmQ+CisgICAgPHNm
cmFtZT4gPGZ1bj5fWm53bTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTlN0
MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2Vy
MThjaGVja0NvbnRlbnRQb2xpY3lFUktOUzFfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEy
UG9saWN5QWN0aW9uRUVTNl9FVWxTN19FX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0Nf
U3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVu
PndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2Zy
YW1lPiA8ZnVuPl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzFkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlRVJLTjdXZWJDb3JlMTZSZXNvdXJjZVJlc3BvbnNlRVJLTlMxXzE1UmVz
b3VyY2VSZXF1ZXN0RVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFPC9mdW4+IDwv
c2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNo
ZWNrQ29udGVudFBvbGljeUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TXzEyUG9saWN5
QWN0aW9uRUVTNF88L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29y
ZTE0RG9jdW1lbnRMb2FkZXIxNnJlc3BvbnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVkUmVzb3VyY2VF
UktOU18xNlJlc291cmNlUmVzcG9uc2VFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxm
dW4+X1pON1dlYkNvcmUxN0NhY2hlZFJhd1Jlc291cmNlMTZyZXNwb25zZVJlY2VpdmVkRVJLTlNf
MTZSZXNvdXJjZVJlc3BvbnNlRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9a
TjdXZWJDb3JlMTdTdWJyZXNvdXJjZUxvYWRlcjE4ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZS
ZXNvdXJjZVJlc3BvbnNlRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdX
ZWJDb3JlTDE5c2VuZFJlcXVlc3RDYWxsYmFja0VQOF9HT2JqZWN0UDEzX0dBc3luY1Jlc3VsdFB2
PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+Z190YXNrX3JldHVybl9ub3c8L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5jb21wbGV0ZV9pbl9pZGxlX2NiPC9mdW4+
IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+Z19tYWluX2NvbnRleHRfZGlzcGF0Y2g8L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5nX21haW5fY29udGV4dF9pdGVyYXRlLmlz
cmEuMjM8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5nX21haW5fbG9vcF9ydW48
L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5ndGtfbWFpbjwvZnVuPiA8L3NmcmFt
ZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTDdydW5UZXN0UktTczwvZnVuPiA8L3NmcmFtZT4KKyAg
ICA8c2ZyYW1lPiA8ZnVuPl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2PC9mdW4+IDwvc2ZyYW1l
PgorICAgIDxzZnJhbWU+IDxmdW4+bWFpbjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8cmF3dGV4dD4K
KzwhW0NEQVRBWwore3sKKyAgIDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+CisgICBN
ZW1jaGVjazpMZWFrCisgICBmdW46X1pud20KKyAgIGZ1bjpfWk5TdDE0X0Z1bmN0aW9uX2Jhc2Ux
M19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9s
aWN5RVJLTlMxXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TMV8xMlBvbGljeUFjdGlvbkVFUzZf
RVVsUzdfRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NDX1N0MThfTWFuYWdlcl9vcGVy
YXRpb24KKyAgIGZ1bjp3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcKKyAgIGZ1bjpfWk42
V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDMxZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZUVSS043V2ViQ29yZTE2UmVzb3VyY2VSZXNwb25zZUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVT
dDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJDb3JlMTNQ
b2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktOU18xNlJlc291cmNlUmVzcG9uc2VF
UEZ2UHZOU18xMlBvbGljeUFjdGlvbkVFUzRfCisgICBmdW46X1pON1dlYkNvcmUxNERvY3VtZW50
TG9hZGVyMTZyZXNwb25zZVJlY2VpdmVkRVBOU18xNENhY2hlZFJlc291cmNlRVJLTlNfMTZSZXNv
dXJjZVJlc3BvbnNlRQorICAgZnVuOl9aTjdXZWJDb3JlMTdDYWNoZWRSYXdSZXNvdXJjZTE2cmVz
cG9uc2VSZWNlaXZlZEVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43V2ViQ29y
ZTE3U3VicmVzb3VyY2VMb2FkZXIxOGRpZFJlY2VpdmVSZXNwb25zZUVSS05TXzE2UmVzb3VyY2VS
ZXNwb25zZUUKKyAgIGZ1bjpfWk43V2ViQ29yZUwxOXNlbmRSZXF1ZXN0Q2FsbGJhY2tFUDhfR09i
amVjdFAxM19HQXN5bmNSZXN1bHRQdgorICAgZnVuOmdfdGFza19yZXR1cm5fbm93CisgICBmdW46
Y29tcGxldGVfaW5faWRsZV9jYgorICAgZnVuOmdfbWFpbl9jb250ZXh0X2Rpc3BhdGNoCisgICBm
dW46Z19tYWluX2NvbnRleHRfaXRlcmF0ZS5pc3JhLjIzCisgICBmdW46Z19tYWluX2xvb3BfcnVu
CisgICBmdW46Z3RrX21haW4KKyAgIGZ1bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1bjpfWkwyMHJ1
blRlc3RpbmdTZXJ2ZXJMb29wdgorICAgZnVuOm1haW4KK319CitdXT4KKyAgICA8L3Jhd3RleHQ+
CisgIDwvc3VwcHJlc3Npb24+Cis8L2Vycm9yPgorCis8ZXJyb3I+CisgIDx1bmlxdWU+MHgxYTY8
L3VuaXF1ZT4KKyAgPHRpZD4xPC90aWQ+CisgIDxraW5kPkxlYWtfRGVmaW5pdGVseUxvc3Q8L2tp
bmQ+CisgIDx4d2hhdD4KKyAgICA8dGV4dD44IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0
ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgNDIzIG9mIDcsOTcyPC90ZXh0PgorICAgIDxsZWFrZWRi
eXRlcz44PC9sZWFrZWRieXRlcz4KKyAgICA8bGVha2VkYmxvY2tzPjE8L2xlYWtlZGJsb2Nrcz4K
KyAgPC94d2hhdD4KKyAgPHN0YWNrPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDRDMkFGOEU8
L2lwPgorICAgICAgPG9iaj4vdXNyL2xpYi92YWxncmluZC92Z3ByZWxvYWRfbWVtY2hlY2stYW1k
NjQtbGludXguc288L29iaj4KKyAgICAgIDxmbj5fWm53bTwvZm4+CisgICAgPC9mcmFtZT4KKyAg
ICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODM5REVDPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAu
MTkuMzwvb2JqPgorICAgICAgPGZuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdl
cklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFf
MTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRy
SU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVF
X0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbjwv
Zm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2MUU3QjAzPC9pcD4K
KyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9s
aWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndlYmtpdF93ZWJfcG9s
aWN5X2RlY2lzaW9uX25ldzwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8
aXA+MHg2MUNCQTZEPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAg
PGZuPl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktOUzFfMTVS
ZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5j
dGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJh
bWU+CisgICAgICA8aXA+MHg2ODNERjUyPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJL
aXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwv
b2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRp
b25Qb2xpY3lFUktOU18xNVJlc291cmNlUmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dU
RjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFUEZ2UHZTM19TOV9iRVNBXzwvZm4+CisgICAg
PC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODE3RUZDPC9pcD4KKyAgICAgIDxv
Ymo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRn
dGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRl
cjIybG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1l
TG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRTwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODE4NzI5PC9pcD4KKyAgICAgIDxvYmo+
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRs
b2FkRVBOU18xNERvY3VtZW50TG9hZGVyRTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+
CisgICAgICA8aXA+MHg2ODE4QTNBPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2Jq
PgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxv
YWRSZXF1ZXN0RTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2
MUUzMTQ4PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVs
ZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPndl
YmtpdF93ZWJfZnJhbWVfbG9hZF91cmk8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgor
ICAgICAgPGlwPjB4NDRDQzUwPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZu
Pl9aTDdydW5UZXN0UktTczwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8
aXA+MHg0NENFRDY8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+X1pMMjBy
dW5UZXN0aW5nU2VydmVyTG9vcHY8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAg
ICAgPGlwPjB4NDNBMkQzPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0
QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPm1h
aW48L2ZuPgorICAgIDwvZnJhbWU+CisgIDwvc3RhY2s+CisgIDxzdXBwcmVzc2lvbj4KKyAgICA8
c25hbWU+aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPC9zbmFtZT4KKyAgICA8c2tpbmQ+
TWVtY2hlY2s6TGVhazwvc2tpbmQ+CisgICAgPHNmcmFtZT4gPGZ1bj5fWm53bTwvZnVuPiA8L3Nm
cmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFu
YWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktO
UzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVm
UHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9iRVNDX0VVbE5TMV8xMlBvbGljeUFjdGlv
bkVFX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlv
bjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtpdF93ZWJfcG9saWN5X2Rl
Y2lzaW9uX25ldzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjZXZWJLaXQx
N0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RF
TjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBv
bGljeUFjdGlvbkVFRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJD
b3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNl
UmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0
YXRlRUVFUEZ2UHZTM19TOV9iRVNBXzwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVu
Pl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTRE
b2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZv
cm1TdGF0ZUVFRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3Jl
MTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVyRTwvZnVuPiA8L3NmcmFtZT4K
KyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZG
cmFtZUxvYWRSZXF1ZXN0RTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPndlYmtp
dF93ZWJfZnJhbWVfbG9hZF91cmk8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5f
Wkw3cnVuVGVzdFJLU3M8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWkwyMHJ1
blRlc3RpbmdTZXJ2ZXJMb29wdjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPm1h
aW48L2Z1bj4gPC9zZnJhbWU+CisgICAgPHJhd3RleHQ+Cis8IVtDREFUQVsKK3t7CisgICA8aW5z
ZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPgorICAgTWVtY2hlY2s6TGVhaworICAgZnVuOl9a
bndtCisgICBmdW46X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNv
cmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TMV8xNVJlc291cmNl
UmVxdWVzdEVQTlMxXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3Jt
U3RhdGVFRUVQRnZQdlM1X1NCX2JFU0NfRVVsTlMxXzEyUG9saWN5QWN0aW9uRUVfRTEwX01fbWFu
YWdlckVSU3Q5X0FueV9kYXRhUktTSV9TdDE4X01hbmFnZXJfb3BlcmF0aW9uCisgICBmdW46d2Vi
a2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3CisgICBmdW46X1pONldlYktpdDE3RnJhbWVMb2Fk
ZXJDbGllbnQzOWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkVSS043V2Vi
Q29yZTE2TmF2aWdhdGlvbkFjdGlvbkVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVOM1dURjEwUGFz
c1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9u
RUVFCisgICBmdW46X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBv
bGljeUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVBOU18xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQ
YXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUVQRnZQdlMzX1M5X2JFU0FfCisgICBmdW46X1pON1dl
YkNvcmUxMUZyYW1lTG9hZGVyMjJsb2FkV2l0aERvY3VtZW50TG9hZGVyRVBOU18xNERvY3VtZW50
TG9hZGVyRU5TXzEzRnJhbWVMb2FkVHlwZUVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRl
RUVFCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUE5TXzE0RG9jdW1lbnRM
b2FkZXJFCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1l
TG9hZFJlcXVlc3RFCisgICBmdW46d2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaQorICAgZnVuOl9a
TDdydW5UZXN0UktTcworICAgZnVuOl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2CisgICBmdW46
bWFpbgorfX0KK11dPgorICAgIDwvcmF3dGV4dD4KKyAgPC9zdXBwcmVzc2lvbj4KKzwvZXJyb3I+
CisKKzxlcnJvcmNvdW50cz4KKzwvZXJyb3Jjb3VudHM+CisKKzxzdXBwY291bnRzPgorICA8cGFp
cj4KKyAgICA8Y291bnQ+MTA3PC9jb3VudD4KKyAgICA8bmFtZT5GY0NvbmZpZ0FwcEZvbnRBZGRG
aWxlIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50
PjIwOTg8L2NvdW50PgorICAgIDxuYW1lPmd0a19pbml0X2NoZWNrIChUaGlyZCBQYXJ0eSk8L25h
bWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjE8L2NvdW50PgorICAgIDxuYW1l
PmdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nIChUaGlyZCBwYXJ0eSk8L25hbWU+CisgIDwvcGFp
cj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjI3PC9jb3VudD4KKyAgICA8bmFtZT5GY0NvbmZpZ1Bh
cnNlQW5kTG9hZCAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAg
IDxjb3VudD44MDwvY291bnQ+CisgICAgPG5hbWU+d2Via2l0QWNjZXNzaWJsZU5ldzwvbmFtZT4K
KyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTc3PC9jb3VudD4KKyAgICA8bmFtZT5n
X3RocmVhZF9wcm94eSAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgor
ICAgIDxjb3VudD45PC9jb3VudD4KKyAgICA8bmFtZT5GY1BhdHRlcm5PYmplY3RJbnNlcnRFbHQg
MiAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4x
PC9jb3VudD4KKyAgICA8bmFtZT5ndGtfd2luZG93X3JlYWxpemUgKFRoaXJkIFBhcnR5KTwvbmFt
ZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTwvY291bnQ+CisgICAgPG5hbWU+
X19uc3NfZGF0YWJhc2VfbG9va3VwIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAg
PHBhaXI+CisgICAgPGNvdW50PjE8L2NvdW50PgorICAgIDxuYW1lPmNhaXJvX3NldF9zb3VyY2Vf
c3VyZmFjZSAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxj
b3VudD4yPC9jb3VudD4KKyAgICA8bmFtZT5saWJHTC5zbyAoVGhpcmQgcGFydHkpPC9uYW1lPgor
ICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5nX3Rh
c2tfcnVuX2luX3RocmVhZCAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWly
PgorICAgIDxjb3VudD4yPC9jb3VudD4KKyAgICA8bmFtZT5XVEY6OlRocmVhZElkZW50aWZpZXJE
YXRhOjppbml0aWFsaXplKCkgKEludGVudGlvbmFsKTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFp
cj4KKyAgICA8Y291bnQ+MTwvY291bnQ+CisgICAgPG5hbWU+Z3RrX2Nzc19wcm92aWRlcl9sb2Fk
X2Zyb21fZGF0YSAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAg
IDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5saWJlbmNoYW50LnNvIG5ldyAoVGhpcmQgcGFy
dHkpPC9uYW1lPgorICA8L3BhaXI+Cis8L3N1cHBjb3VudHM+CisKKzwvdmFsZ3JpbmRvdXRwdXQ+
CisiIiIuZm9ybWF0KHByb2Nlc3NfbmFtZT1wcm9jZXNzX25hbWUsIHBpZD1waWQsIHV1aWQ9dXVp
ZCkKKworCitkZWYgbWFrZV9tb2NrX2luY29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0KHByb2Nlc3Nf
bmFtZSwgcGlkLCB1dWlkKToKKyAgICByZXR1cm4gIiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+CisK
Kzx2YWxncmluZG91dHB1dD4KKworPHByb3RvY29sdmVyc2lvbj40PC9wcm90b2NvbHZlcnNpb24+
Cis8cHJvdG9jb2x0b29sPm1lbWNoZWNrPC9wcm90b2NvbHRvb2w+CisKKzxwcmVhbWJsZT4KKyAg
PGxpbmU+TWVtY2hlY2ssIGEgbWVtb3J5IGVycm9yIGRldGVjdG9yPC9saW5lPgorICA8bGluZT5D
b3B5cmlnaHQgKEMpIDIwMDItMjAxMSwgYW5kIEdOVSBHUEwnZCwgYnkgSnVsaWFuIFNld2FyZCBl
dCBhbC48L2xpbmU+CisgIDxsaW5lPlVzaW5nIFZhbGdyaW5kLTMuNy4wIGFuZCBMaWJWRVg7IHJl
cnVuIHdpdGggLWggZm9yIGNvcHlyaWdodCBpbmZvPC9saW5lPgorICA8bGluZT5Db21tYW5kOiAv
aG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL3twcm9jZXNzX25h
bWV9IC08L2xpbmU+Cis8L3ByZWFtYmxlPgorCis8cGlkPntwaWR9PC9waWQ+Cis8cHBpZD4xODU3
NzwvcHBpZD4KKzx0b29sPm1lbWNoZWNrPC90b29sPgorCis8YXJncz4KKyAgPHZhcmd2PgorICAg
IDxleGU+L3Vzci9iaW4vdmFsZ3JpbmQuYmluPC9leGU+CisgICAgPGFyZz4tLXRvb2w9bWVtY2hl
Y2s8L2FyZz4KKyAgICA8YXJnPi0tbnVtLWNhbGxlcnM9NDA8L2FyZz4KKyAgICA8YXJnPi0tZGVt
YW5nbGU9bm88L2FyZz4KKyAgICA8YXJnPi0tdHJhY2UtY2hpbGRyZW49bm88L2FyZz4KKyAgICA8
YXJnPi0tc21jLWNoZWNrPWFsbC1ub24tZmlsZTwvYXJnPgorICAgIDxhcmc+LS1sZWFrLWNoZWNr
PXllczwvYXJnPgorICAgIDxhcmc+LS1sZWFrLXJlc29sdXRpb249aGlnaDwvYXJnPgorICAgIDxh
cmc+LS1zaG93LXBvc3NpYmx5LWxvc3Q9bm88L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1yZWFjaGFi
bGU9bm88L2FyZz4KKyAgICA8YXJnPi0tbGVhay1jaGVjaz1mdWxsPC9hcmc+CisgICAgPGFyZz4t
LXVuZGVmLXZhbHVlLWVycm9ycz1ubzwvYXJnPgorICAgIDxhcmc+LS1nZW4tc3VwcHJlc3Npb25z
PWFsbDwvYXJnPgorICAgIDxhcmc+LS14bWw9eWVzPC9hcmc+CisgICAgPGFyZz4tLXhtbC1maWxl
PS9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGF5b3V0LXRlc3QtcmVzdWx0
cy9kcnQte3BpZH0te3V1aWR9LWxlYWtzLnhtbDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lv
bnM9L2hvbWUvdXNlci9XZWJLaXQvVG9vbHMvU2NyaXB0cy92YWxncmluZC9zdXBwcmVzc2lvbnMu
dHh0PC9hcmc+CisgICAgPGFyZz4tLXN1cHByZXNzaW9ucz0vdXNyL2xpYi92YWxncmluZC9kZWJp
YW4tbGliYzYtZGJnLnN1cHA8L2FyZz4KKyAgPC92YXJndj4KKyAgPGFyZ3Y+CisgICAgPGV4ZT4v
aG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL3twcm9jZXNzX25h
bWV9PC9leGU+CisgICAgPGFyZz4tPC9hcmc+CisgIDwvYXJndj4KKzwvYXJncz4KKworPHN0YXR1
cz4KKyAgPHN0YXRlPlJVTk5JTkc8L3N0YXRlPgorICA8dGltZT4wMDowMDowMDowMC4wMjQgPC90
aW1lPgorPC9zdGF0dXM+CisiIiIuZm9ybWF0KHByb2Nlc3NfbmFtZT1wcm9jZXNzX25hbWUsIHBp
ZD1waWQsIHV1aWQ9dXVpZCkKKworCitkZWYgbWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHMoKToK
KyAgICByZXR1cm4gIiIiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1N1cHByZXNzaW9ucyB1c2VkOgorICBjb3VudCBuYW1lCisgICAgICAyIF9f
bnNzX2RhdGFiYXNlX2xvb2t1cCAoVGhpcmQgUGFydHkpCisgICAgICAyIGNhaXJvX3NldF9zb3Vy
Y2Vfc3VyZmFjZSAoVGhpcmQgUGFydHkpCisgICAgICAyIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3Ry
aW5nIChUaGlyZCBwYXJ0eSkKKyAgICAgIDIgZ190YXNrX3J1bl9pbl90aHJlYWQgKFRoaXJkIFBh
cnR5KQorICAgICAgMiBndGtfY3NzX3Byb3ZpZGVyX2xvYWRfZnJvbV9kYXRhIChUaGlyZCBQYXJ0
eSkKKyAgICAgIDIgZ3RrX3dpbmRvd19yZWFsaXplIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgbGli
ZW5jaGFudC5zbyBuZXcgKFRoaXJkIHBhcnR5KQorICAgICAgNCBXVEY6OlRocmVhZElkZW50aWZp
ZXJEYXRhOjppbml0aWFsaXplKCkgKEludGVudGlvbmFsKQorICAgICAgNCBsaWJHTC5zbyAoVGhp
cmQgcGFydHkpCisgICAgIDE4IEZjUGF0dGVybk9iamVjdEluc2VydEVsdCAyIChUaGlyZCBQYXJ0
eSkKKyAgICAgNTQgRmNDb25maWdQYXJzZUFuZExvYWQgKFRoaXJkIFBhcnR5KQorICAgIDE2MCB3
ZWJraXRBY2Nlc3NpYmxlTmV3CisgICAgMjE0IEZjQ29uZmlnQXBwRm9udEFkZEZpbGUgKFRoaXJk
IFBhcnR5KQorICAgIDM1NCBnX3RocmVhZF9wcm94eSAoVGhpcmQgUGFydHkpCisgICA0MTk2IGd0
a19pbml0X2NoZWNrIChUaGlyZCBQYXJ0eSkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitWYWxncmluZCBkZXRlY3RlZCAyIGxlYWtzOgorTGVh
a19EZWZpbml0ZWx5TG9zdAorOCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0
IGluIGxvc3MgcmVjb3JkIDQyMSBvZiA3LDk3MgorICBvcGVyYXRvciBuZXcodW5zaWduZWQgbG9u
ZykgKC91c3IvbGliL3ZhbGdyaW5kL3ZncHJlbG9hZF9tZW1jaGVjay1hbWQ2NC1saW51eC5zbykK
KyAgc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0
JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9y
bVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYs
IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBib29sKSwgdm9pZCopOjp7bGFt
YmRhKFdlYkNvcmU6OlBvbGljeUFjdGlvbikjMX0+OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRh
Jiwgc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0
JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9y
bVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYs
IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBib29sKSwgdm9pZCopOjp7bGFt
YmRhKFdlYkNvcmU6OlBvbGljeUFjdGlvbikjMX0+IGNvbnN0Jiwgc3RkOjpfTWFuYWdlcl9vcGVy
YXRpb24pICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndl
YmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcg
KC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3Rr
LTMuMC5zby4wLjE5LjMpCisgIFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uIGNv
bnN0JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6OkZvcm1TdGF0ZT4sIHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2ViQ29yZTo6UG9saWN5QWN0
aW9uKT4pICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndl
YmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05h
dmlnYXRpb25Qb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9p
ZCAoKikodm9pZCosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBib29sKSwgdm9pZCopICgvaG9tZS91c2VyL1dlYktp
dC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQor
ICBXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUsIFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpGb3JtU3RhdGU+KSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSAoL2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCBjb25zdCYp
ICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0
ay0zLjAuc28uMC4xOS4zKQorICB3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpICgvaG9tZS91c2Vy
L1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4x
OS4zKQorICBydW5UZXN0KHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8
Y2hhcj4sIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZSkKKyAgcnVuVGVzdGlu
Z1NlcnZlckxvb3AoKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9n
cmFtcy9EdW1wUmVuZGVyVHJlZSkKKyAgbWFpbiAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZSkKK1N1cHByZXNzaW9uIChlcnJvciBo
YXNoPSMwNDQ5RDNFRDI1M0ZFMUY5Iyk6CisKK3sKKyAgIDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9u
YW1lX2hlcmU+CisgICBNZW1jaGVjazpMZWFrCisgICBmdW46X1pudyoKKyAgIGZ1bjpfWk5TdDE0
X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIx
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTREb2N1
bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVfU0Jf
YkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFS
S1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb24KKyAgIGZ1bjp3ZWJraXRfd2ViX3BvbGljeV9kZWNp
c2lvbl9uZXcKKyAgIGZ1bjpfWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0
aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0
YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUUKKyAgIGZ1bjpfWk43V2Vi
Q29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJj
ZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1T
dGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV8KKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXIy
MmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxv
YWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUUKKyAgIGZ1bjpfWk43V2Vi
Q29yZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExvYWRlckUKKyAgIGZ1bjpfWk43
V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEUKKyAgIGZ1
bjp3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpCisgICBmdW46X1pMN3J1blRlc3RSS1NzCisgICBm
dW46X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHYKKyAgIGZ1bjptYWluCit9CisKKworTGVha19E
ZWZpbml0ZWx5TG9zdAorOCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGlu
IGxvc3MgcmVjb3JkIDQyMiBvZiA3LDk3MgorICBvcGVyYXRvciBuZXcodW5zaWduZWQgbG9uZykg
KC91c3IvbGliL3ZhbGdyaW5kL3ZncHJlbG9hZF9tZW1jaGVjay1hbWQ2NC1saW51eC5zbykKKyAg
c3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2Vy
OjpjaGVja0NvbnRlbnRQb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYsIHZv
aWQgKCopKHZvaWQqLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24pLCB2b2lkKik6OntsYW1iZGEoV2Vi
Q29yZTo6UG9saWN5QWN0aW9uKSMxfT46Ol9NX21hbmFnZXIoc3RkOjpfQW55X2RhdGEmLCBzdGQ6
Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9tYW5hZ2VyPFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNo
ZWNrQ29udGVudFBvbGljeShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0Jiwgdm9pZCAo
Kikodm9pZCosIFdlYkNvcmU6OlBvbGljeUFjdGlvbiksIHZvaWQqKTo6e2xhbWJkYShXZWJDb3Jl
OjpQb2xpY3lBY3Rpb24pIzF9PiBjb25zdCYsIHN0ZDo6X01hbmFnZXJfb3BlcmF0aW9uKSAoL2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4w
LnNvLjAuMTkuMykKKyAgd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3ICgvaG9tZS91c2Vy
L1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4x
OS4zKQorICBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgY29uc3QmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYkNvcmU6OlBvbGljeUFj
dGlvbik+KSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3
ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tD
b250ZW50UG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmLCB2b2lkICgqKSh2
b2lkKiwgV2ViQ29yZTo6UG9saWN5QWN0aW9uKSwgdm9pZCopICgvaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBX
ZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZSosIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmKSAoL2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTku
MykKKyAgV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBXZWJDb3JlOjpT
dWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGli
cy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxs
YmFjayhfR09iamVjdCosIF9HQXN5bmNSZXN1bHQqLCB2b2lkKikgKC9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisg
IGdfdGFza19yZXR1cm5fbm93ICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRl
bmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dpby9ndGFzay5jOjExMDgpCisgIGNvbXBsZXRlX2lu
X2lkbGVfY2IgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3Vy
Y2UvZ2xpYi0yLjM4LjAvZ2lvL2d0YXNrLmM6MTExNykKKyAgZ19tYWluX2NvbnRleHRfZGlzcGF0
Y2ggKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xp
Yi0yLjM4LjAvZ2xpYi9nbWFpbi5jOjMwNjUpCisgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUuaXNy
YS4yMyAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9n
bGliLTIuMzguMC9nbGliL2dtYWluLmM6MzcxMikKKyAgZ19tYWluX2xvb3BfcnVuICgvaG9tZS91
c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2ds
aWIvZ21haW4uYzozOTA2KQorICBndGtfbWFpbiAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9ndGsrLTMuNi4wL2d0ay9ndGttYWluLmM6MTE2MikKKyAg
cnVuVGVzdChzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBz
dGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0JikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1
aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUpCisgIHJ1blRlc3RpbmdTZXJ2ZXJM
b29wKCkgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVt
cFJlbmRlclRyZWUpCisgIG1haW4gKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVh
c2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUpCitTdXBwcmVzc2lvbiAoZXJyb3IgaGFzaD0jODMx
M0RFQjE2QjA2OTQzOCMpOgorCit7CisgICA8aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJl
PgorICAgTWVtY2hlY2s6TGVhaworICAgZnVuOl9abncqCisgICBmdW46X1pOU3QxNF9GdW5jdGlv
bl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29u
dGVudFBvbGljeUVSS05TMV8xNlJlc291cmNlUmVzcG9uc2VFUEZ2UHZOUzFfMTJQb2xpY3lBY3Rp
b25FRVM2X0VVbFM3X0VfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRhUktTQ19TdDE4X01hbmFn
ZXJfb3BlcmF0aW9uCisgICBmdW46d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3CisgICBm
dW46X1pONldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzMWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VFUktON1dlYkNvcmUxNlJlc291cmNlUmVzcG9uc2VFUktOUzFfMTVSZXNvdXJjZVJl
cXVlc3RFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUUKKyAgIGZ1bjpfWk43V2Vi
Q29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9saWN5RVJLTlNfMTZSZXNvdXJjZVJl
c3BvbnNlRVBGdlB2TlNfMTJQb2xpY3lBY3Rpb25FRVM0XworICAgZnVuOl9aTjdXZWJDb3JlMTRE
b2N1bWVudExvYWRlcjE2cmVzcG9uc2VSZWNlaXZlZEVQTlNfMTRDYWNoZWRSZXNvdXJjZUVSS05T
XzE2UmVzb3VyY2VSZXNwb25zZUUKKyAgIGZ1bjpfWk43V2ViQ29yZTE3Q2FjaGVkUmF3UmVzb3Vy
Y2UxNnJlc3BvbnNlUmVjZWl2ZWRFUktOU18xNlJlc291cmNlUmVzcG9uc2VFCisgICBmdW46X1pO
N1dlYkNvcmUxN1N1YnJlc291cmNlTG9hZGVyMThkaWRSZWNlaXZlUmVzcG9uc2VFUktOU18xNlJl
c291cmNlUmVzcG9uc2VFCisgICBmdW46X1pON1dlYkNvcmVMMTlzZW5kUmVxdWVzdENhbGxiYWNr
RVA4X0dPYmplY3RQMTNfR0FzeW5jUmVzdWx0UHYKKyAgIGZ1bjpnX3Rhc2tfcmV0dXJuX25vdwor
ICAgZnVuOmNvbXBsZXRlX2luX2lkbGVfY2IKKyAgIGZ1bjpnX21haW5fY29udGV4dF9kaXNwYXRj
aAorICAgZnVuOmdfbWFpbl9jb250ZXh0X2l0ZXJhdGUuaXNyYS4yMworICAgZnVuOmdfbWFpbl9s
b29wX3J1bgorICAgZnVuOmd0a19tYWluCisgICBmdW46X1pMN3J1blRlc3RSS1NzCisgICBmdW46
X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHYKKyAgIGZ1bjptYWluCit9CisKKworIiIiCisKK3Zh
bGdyaW5kX291dHB1dF9jcHBmaWx0X21hcCA9IHsKKydfWm53bSc6IHUnb3BlcmF0b3IgbmV3KHVu
c2lnbmVkIGxvbmcpJywKKydfWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43
V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVz
b3VyY2VSZXF1ZXN0RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFf
OUZvcm1TdGF0ZUVFRVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBf
TV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb24nOiB1J3N0
ZDo6X0Z1bmN0aW9uX2Jhc2U6Ol9CYXNlX21hbmFnZXI8V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0
ZT4sIHZvaWQgKCopKHZvaWQqLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgYm9vbCksIHZvaWQqKTo6e2xhbWJkYShX
ZWJDb3JlOjpQb2xpY3lBY3Rpb24pIzF9Pjo6X01fbWFuYWdlcihzdGQ6Ol9BbnlfZGF0YSYsIHN0
ZDo6X0Z1bmN0aW9uX2Jhc2U6Ol9CYXNlX21hbmFnZXI8V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0
ZT4sIHZvaWQgKCopKHZvaWQqLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgYm9vbCksIHZvaWQqKTo6e2xhbWJkYShX
ZWJDb3JlOjpQb2xpY3lBY3Rpb24pIzF9PiBjb25zdCYsIHN0ZDo6X01hbmFnZXJfb3BlcmF0aW9u
KScsCisnd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3JzogdSd3ZWJraXRfd2ViX3BvbGlj
eV9kZWNpc2lvbl9uZXcnLAorJ19aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25B
Y3Rpb25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3Jt
U3RhdGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRSc6IHUnV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24gY29uc3QmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgY29uc3QmLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgc3RkOjpmdW5j
dGlvbjx2b2lkIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24pPiknLAorJ19aTjdXZWJDb3JlMTNQb2xp
Y3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNlUmVxdWVzdEVQ
TlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFUEZ2
UHZTM19TOV9iRVNBXyc6IHUnV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9u
UG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIHZvaWQgKCopKHZv
aWQqLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6Rm9ybVN0YXRlPiwgYm9vbCksIHZvaWQqKScsCisnX1pON1dlYkNvcmUxMUZyYW1lTG9h
ZGVyMjJsb2FkV2l0aERvY3VtZW50TG9hZGVyRVBOU18xNERvY3VtZW50TG9hZGVyRU5TXzEzRnJh
bWVMb2FkVHlwZUVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFJzogdSdXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihXZWJDb3JlOjpEb2N1bWVudExv
YWRlciosIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpG
b3JtU3RhdGU+KScsCisnX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUE5TXzE0RG9jdW1l
bnRMb2FkZXJFJzogdSdXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciopJywKKydfWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVM
b2FkUmVxdWVzdEUnOiB1J1dlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKFdlYkNvcmU6OkZyYW1l
TG9hZFJlcXVlc3QgY29uc3QmKScsCisnd2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaSc6IHUnd2Vi
a2l0X3dlYl9mcmFtZV9sb2FkX3VyaScsCisnX1pMN3J1blRlc3RSS1NzJzogdSdydW5UZXN0KHN0
ZDo6YmFzaWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0ZDo6YWxsb2Nh
dG9yPGNoYXI+ID4gY29uc3QmKScsCisnX1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHYnOiB1J3J1
blRlc3RpbmdTZXJ2ZXJMb29wKCknLAorJ21haW4nOiB1J21haW4nLAorJ19aTlN0MTRfRnVuY3Rp
b25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0Nv
bnRlbnRQb2xpY3lFUktOUzFfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEyUG9saWN5QWN0
aW9uRUVTNl9FVWxTN19FX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0NfU3QxOF9NYW5h
Z2VyX29wZXJhdGlvbic6IHUnc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxXZWJD
b3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja0NvbnRlbnRQb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSBjb25zdCYsIHZvaWQgKCopKHZvaWQqLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24pLCB2
b2lkKik6OntsYW1iZGEoV2ViQ29yZTo6UG9saWN5QWN0aW9uKSMxfT46Ol9NX21hbmFnZXIoc3Rk
OjpfQW55X2RhdGEmLCBzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9tYW5hZ2VyPFdlYkNvcmU6
OlBvbGljeUNoZWNrZXI6OmNoZWNrQ29udGVudFBvbGljeShXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIGNvbnN0Jiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlBvbGljeUFjdGlvbiksIHZvaWQq
KTo6e2xhbWJkYShXZWJDb3JlOjpQb2xpY3lBY3Rpb24pIzF9PiBjb25zdCYsIHN0ZDo6X01hbmFn
ZXJfb3BlcmF0aW9uKScsCisnd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3JzogdSd3ZWJr
aXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcnLAorJ19aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xp
ZW50MzFkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlRVJLTjdXZWJDb3JlMTZSZXNvdXJj
ZVJlc3BvbnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9s
aWN5QWN0aW9uRUVFJzogdSdXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYkNvcmU6
OlBvbGljeUFjdGlvbik+KScsCisnX1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29u
dGVudFBvbGljeUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TXzEyUG9saWN5QWN0aW9u
RUVTNF8nOiB1J1dlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNrQ29udGVudFBvbGljeShXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0Jiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlBv
bGljeUFjdGlvbiksIHZvaWQqKScsCisnX1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVyMTZyZXNw
b25zZVJlY2VpdmVkRVBOU18xNENhY2hlZFJlc291cmNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNl
RSc6IHUnV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2UqLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0JiknLAorJ19a
TjdXZWJDb3JlMTdDYWNoZWRSYXdSZXNvdXJjZTE2cmVzcG9uc2VSZWNlaXZlZEVSS05TXzE2UmVz
b3VyY2VSZXNwb25zZUUnOiB1J1dlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpyZXNwb25zZVJl
Y2VpdmVkKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmKScsCisnX1pON1dlYkNvcmUx
N1N1YnJlc291cmNlTG9hZGVyMThkaWRSZWNlaXZlUmVzcG9uc2VFUktOU18xNlJlc291cmNlUmVz
cG9uc2VFJzogdSdXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmKScsCisnX1pON1dlYkNvcmVMMTlzZW5k
UmVxdWVzdENhbGxiYWNrRVA4X0dPYmplY3RQMTNfR0FzeW5jUmVzdWx0UHYnOiB1J1dlYkNvcmU6
OnNlbmRSZXF1ZXN0Q2FsbGJhY2soX0dPYmplY3QqLCBfR0FzeW5jUmVzdWx0Kiwgdm9pZCopJywK
KydnX3Rhc2tfcmV0dXJuX25vdyc6IHUnZ190YXNrX3JldHVybl9ub3cnLAorJ2NvbXBsZXRlX2lu
X2lkbGVfY2InOiB1J2NvbXBsZXRlX2luX2lkbGVfY2InLAorJ2dfbWFpbl9jb250ZXh0X2Rpc3Bh
dGNoJzogdSdnX21haW5fY29udGV4dF9kaXNwYXRjaCcsCisnZ19tYWluX2NvbnRleHRfaXRlcmF0
ZS5pc3JhLjIzJzogdSdnX21haW5fY29udGV4dF9pdGVyYXRlLmlzcmEuMjMnLAorJ2dfbWFpbl9s
b29wX3J1bic6IHUnZ19tYWluX2xvb3BfcnVuJywKKydndGtfbWFpbic6IHUnZ3RrX21haW4nLAor
fQorCisKK2RlZiBtYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0c19pbmNvbXBsZXRlKCk6CisgICAg
cmV0dXJuICIiImNvdWxkIG5vdCBwYXJzZSA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKworPHZhbGdy
aW5kb3V0cHV0PgorCis8cHJvdG9jb2x2ZXJzaW9uPjQ8L3Byb3RvY29sdmVyc2lvbj4KKzxwcm90
b2NvbHRvb2w+bWVtY2hlY2s8L3Byb3RvY29sdG9vbD4KKworPHByZWFtYmxlPgorICA8bGluZT5N
ZW1jaGVjaywgYSBtZW1vcnkgZXJyb3IgZGV0ZWN0b3I8L2xpbmU+CisgIDxsaW5lPkNvcHlyaWdo
dCAoQykgMjAwMi0yMDExLCBhbmQgR05VIEdQTCdkLCBieSBKdWxpYW4gU2V3YXJkIGV0IGFsLjwv
bGluZT4KKyAgPGxpbmU+VXNpbmcgVmFsZ3JpbmQtMy43LjAgYW5kIExpYlZFWDsgcmVydW4gd2l0
aCAtaCBmb3IgY29weXJpZ2h0IGluZm88L2xpbmU+CisgIDxsaW5lPkNvbW1hbmQ6IC9ob21lL3Vz
ZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUgLTwv
bGluZT4KKzwvcHJlYW1ibGU+CisKKzxwaWQ+Mjg1MzE8L3BpZD4KKzxwcGlkPjE4NTc3PC9wcGlk
PgorPHRvb2w+bWVtY2hlY2s8L3Rvb2w+CisKKzxhcmdzPgorICA8dmFyZ3Y+CisgICAgPGV4ZT4v
dXNyL2Jpbi92YWxncmluZC5iaW48L2V4ZT4KKyAgICA8YXJnPi0tdG9vbD1tZW1jaGVjazwvYXJn
PgorICAgIDxhcmc+LS1udW0tY2FsbGVycz00MDwvYXJnPgorICAgIDxhcmc+LS1kZW1hbmdsZT1u
bzwvYXJnPgorICAgIDxhcmc+LS10cmFjZS1jaGlsZHJlbj1ubzwvYXJnPgorICAgIDxhcmc+LS1z
bWMtY2hlY2s9YWxsLW5vbi1maWxlPC9hcmc+CisgICAgPGFyZz4tLWxlYWstY2hlY2s9eWVzPC9h
cmc+CisgICAgPGFyZz4tLWxlYWstcmVzb2x1dGlvbj1oaWdoPC9hcmc+CisgICAgPGFyZz4tLXNo
b3ctcG9zc2libHktbG9zdD1ubzwvYXJnPgorICAgIDxhcmc+LS1zaG93LXJlYWNoYWJsZT1ubzwv
YXJnPgorICAgIDxhcmc+LS1sZWFrLWNoZWNrPWZ1bGw8L2FyZz4KKyAgICA8YXJnPi0tdW5kZWYt
dmFsdWUtZXJyb3JzPW5vPC9hcmc+CisgICAgPGFyZz4tLWdlbi1zdXBwcmVzc2lvbnM9YWxsPC9h
cmc+CisgICAgPGFyZz4tLXhtbD15ZXM8L2FyZz4KKyAgICA8YXJnPi0teG1sLWZpbGU9L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9sYXlvdXQtdGVzdC1yZXN1bHRzL2RydC0y
ODUzMS1lOGM3ZDdiODNiZTQxMWUzOTBjOWQ0M2Q3ZTAxYmEwOC1sZWFrcy54bWw8L2FyZz4KKyAg
ICA8YXJnPi0tc3VwcHJlc3Npb25zPS9ob21lL3VzZXIvV2ViS2l0L1Rvb2xzL1NjcmlwdHMvdmFs
Z3JpbmQvc3VwcHJlc3Npb25zLnR4dDwvYXJnPgorICAgIDxhcmc+LS1zdXBwcmVzc2lvbnM9L3Vz
ci9saWIvdmFsZ3JpbmQvZGViaWFuLWxpYmM2LWRiZy5zdXBwPC9hcmc+CisgIDwvdmFyZ3Y+Cisg
IDxhcmd2PgorICAgIDxleGU+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Q
cm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvZXhlPgorICAgIDxhcmc+LTwvYXJnPgorICA8L2FyZ3Y+
Cis8L2FyZ3M+CisKKzxzdGF0dXM+CisgIDxzdGF0ZT5SVU5OSU5HPC9zdGF0ZT4KKyAgPHRpbWU+
MDA6MDA6MDA6MDAuMDI0IDwvdGltZT4KKzwvc3RhdHVzPgorOiBubyBlbGVtZW50IGZvdW5kOiBs
aW5lIDQ5LCBjb2x1bW4gMAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK1N1cHByZXNzaW9ucyB1c2VkOgorICBjb3VudCBuYW1lCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiIiCisKKwor
ZGVmIG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2VtcHR5KCk6CisgICAgcmV0dXJuICIiImNv
dWxkIG5vdCBwYXJzZSA6IG5vIGVsZW1lbnQgZm91bmQ6IGxpbmUgMSwgY29sdW1uIDAKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTdXBwcmVz
c2lvbnMgdXNlZDoKKyAgY291bnQgbmFtZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIiIgorCisKK2RlZiBtYWtlX21vY2tfdmFsZ3JpbmRf
cmVzdWx0c19taXNmb3JtYXR0ZWQoKToKKyAgICByZXR1cm4gIiIiY291bGQgbm90IHBhcnNlIEp1
bmsgdGhhdCBzaG91bGQgbm90IGFwcGVhciBpbiBhIHZhbGdyaW5kIHhtbCBmaWxlPD94bWwgdmVy
c2lvbj0iMS4wIj86IHN5bnRheCBlcnJvcjogbGluZSAxLCBjb2x1bW4gMAorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N1cHByZXNzaW9ucyB1
c2VkOgorICBjb3VudCBuYW1lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorIiIiCisKKworY2xhc3MgTGVha0RldGVjdG9yVmFsZ3JpbmRUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFr
c19kZXRhaWxfcGFzcyhzZWxmKToKKyAgICAgICAgbW9ja192YWxncmluZF9vdXRwdXQxID0gbWFr
ZV9tb2NrX3ZhbGdyaW5kX291dHB1dCgnRHVtcFJlbmRlclRyZWUnLCAyODUyOSwgJ2RiOTJlNDg0
M2JlNDExZTNiYWUxZDQzZDdlMDFiYTA4JykKKyAgICAgICAgbW9ja192YWxncmluZF9vdXRwdXQy
ID0gbWFrZV9tb2NrX3ZhbGdyaW5kX291dHB1dCgnRHVtcFJlbmRlclRyZWUnLCAyODUzMCwgJ2Rk
NzIxMzQyM2JlNDExZTNhYTdmZDQzZDdlMDFiYTA4JykKKyAgICAgICAgZmlsZXMgPSB7fQorICAg
ICAgICBmaWxlc1snL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2RydC0yODUyOS1kYjkyZTQ4NDNi
ZTQxMWUzYmFlMWQ0M2Q3ZTAxYmEwOC1sZWFrcy54bWwnXSA9IG1vY2tfdmFsZ3JpbmRfb3V0cHV0
MQorICAgICAgICBmaWxlc1snL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2RydC0yODUzMC1kZDcy
MTM0MjNiZTQxMWUzYWE3ZmQ0M2Q3ZTAxYmEwOC1sZWFrcy54bWwnXSA9IG1vY2tfdmFsZ3JpbmRf
b3V0cHV0MgorCisgICAgICAgIGRlZiBtb2NrX3J1bl9jcHBmaWx0X2NvbW1hbmQoYXJncyk6Cisg
ICAgICAgICAgICBpZiBhcmdzWzBdID09ICdjKytmaWx0JzoKKyAgICAgICAgICAgICAgICByZXR1
cm4gdmFsZ3JpbmRfb3V0cHV0X2NwcGZpbHRfbWFwW2FyZ3NbMl1dCisgICAgICAgICAgICByZXR1
cm4gIiIKKworICAgICAgICBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgPSBMZWFrRGV0ZWN0b3JWYWxn
cmluZChNb2NrRXhlY3V0aXZlMihydW5fY29tbWFuZF9mbj1tb2NrX3J1bl9jcHBmaWx0X2NvbW1h
bmQpLCBNb2NrRmlsZVN5c3RlbShmaWxlcyksICcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvJykK
KworICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgbGVha2RldGVj
dG9yX3ZhbGdyaW5kLnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwsIFtmaWxlc10sIGV4cGVj
dGVkX2xvZ3M9bWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHMoKSkKKworICAgIGRlZiB0ZXN0X3Bh
cnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfaW5jb21wbGV0ZShzZWxmKToKKyAgICAgICAgbW9j
a19pbmNvbXBsZXRlX3ZhbGdyaW5kX291dHB1dCA9IG1ha2VfbW9ja19pbmNvbXBsZXRlX3ZhbGdy
aW5kX291dHB1dCgnRHVtcFJlbmRlclRyZWUnLCAyODUzMSwgJ2U4YzdkN2I4M2JlNDExZTM5MGM5
ZDQzZDdlMDFiYTA4JykKKyAgICAgICAgZmlsZXMgPSB7fQorICAgICAgICBmaWxlc1snL3RtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2RydC0yODUzMS1lOGM3ZDdiODNiZTQxMWUzOTBjOWQ0M2Q3ZTAx
YmEwOC1sZWFrcy54bWwnXSA9IG1vY2tfaW5jb21wbGV0ZV92YWxncmluZF9vdXRwdXQKKyAgICAg
ICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0gTGVha0RldGVjdG9yVmFsZ3JpbmQoTW9ja0V4ZWN1
dGl2ZTIoKSwgTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpLCAnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
LycpCisKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGxlYWtk
ZXRlY3Rvcl92YWxncmluZC5wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsLCBbZmlsZXNdLCBl
eHBlY3RlZF9sb2dzPW1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2luY29tcGxldGUoKSkKKwor
ICAgIGRlZiB0ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfZW1wdHkoc2VsZik6Cisg
ICAgICAgIGZpbGVzID0ge30KKyAgICAgICAgZmlsZXNbJy90bXAvTG9ncy9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2RydC0yODUzMi1lYmM5YTZjNjNiZTQxMWUzOTlkNGQ0M2Q3ZTAxYmEwOC1sZWFrcy54
bWwnXSA9ICIiCisgICAgICAgIGxlYWtkZXRlY3Rvcl92YWxncmluZCA9IExlYWtEZXRlY3RvclZh
bGdyaW5kKE1vY2tFeGVjdXRpdmUyKCksIE1vY2tGaWxlU3lzdGVtKGZpbGVzKSwgJy90bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy8nKQorCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0
cHV0cyhzZWxmLCBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50X2xlYWtzX2Rl
dGFpbCwgW2ZpbGVzXSwgZXhwZWN0ZWRfbG9ncz1tYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0c19l
bXB0eSgpKQorCisgICAgZGVmIHRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9taXNm
b3JtYXR0ZWQoc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbWlz
Zm9ybWF0dGVkX21vY2tfdmFsZ3JpbmRfb3V0cHV0ID0gJ0p1bmsgdGhhdCBzaG91bGQgbm90IGFw
cGVhciBpbiBhIHZhbGdyaW5kIHhtbCBmaWxlJyArIG1ha2VfbW9ja192YWxncmluZF9vdXRwdXQo
J0R1bXBSZW5kZXJUcmVlJywgMjg1MzMsICdmYTZkMGNkNjNiZTQxMWUzOWM3MmQ0M2Q3ZTAxYmEw
OCcpWzoyMF0KKyAgICAgICAgZmlsZXMgPSB7fQorICAgICAgICBmaWxlc1snL3RtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2RydC0yODUzMy1mYTZkMGNkNjNiZTQxMWUzOWM3MmQ0M2Q3ZTAxYmEwOC1s
ZWFrcy54bWwnXSA9IG1pc2Zvcm1hdHRlZF9tb2NrX3ZhbGdyaW5kX291dHB1dAorICAgICAgICBs
ZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgPSBMZWFrRGV0ZWN0b3JWYWxncmluZChNb2NrRXhlY3V0aXZl
MigpLCBNb2NrRmlsZVN5c3RlbShmaWxlcyksICcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvJykK
KworICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgbGVha2RldGVj
dG9yX3ZhbGdyaW5kLnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwsIFtmaWxlc10sIGV4cGVj
dGVkX2xvZ3M9bWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHNfbWlzZm9ybWF0dGVkKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221033</attachid>
            <date>2014-01-13 06:17:57 -0800</date>
            <delta_ts>2014-01-13 10:23:00 -0800</delta_ts>
            <desc>Final version?</desc>
            <filename>bug-119446-20140113141852.patch</filename>
            <type>text/plain</type>
            <size>62816</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMjA2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Y2MmExNTJkODExZTg1NTgxOWQwM2RjOTZmODk4ZjFm
YzQ0YzIzMS4uYWQ2ZjdhY2Q3MDYyM2JlYTFlYzI1ZWE0ZTBjZTMzNzdhMTc5YTVjNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDE0LTAxLTAyICBCcmlhbiBIb2x0ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbR1RLXSBQYXJzZSBWYWxncmluZCB4bWwgbGVhayBmaWxlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDQ2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBn
ZW5lcmF0ZWQgYnkgVmFsZ3JpbmQgdG8geWllbGQgdXNlZnVsCisgICAgICAgIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBtZW1vcnkgbGVha3MuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZ3RrLnB5OgorICAgICAgICAoR3RrUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChHdGtQb3J0
LnNldHVwX3Rlc3RfcnVuKTogQ2xlYXIgdGhlIHByZXZpb3VzIG91dHB1dCBmaWxlcyBiZWZvcmUg
bmV3CisgICAgICAgIHJ1bi4KKyAgICAgICAgKEd0a1BvcnQucHJpbnRfbGVha3Nfc3VtbWFyeSk6
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5k
LnB5OiBBZGRlZC4KKyAgICAgICAgUGFyc2UgdGhlIHhtbCBmaWxlcyBnZW5lcmF0ZWQgYnkgVmFs
Z3JpbmQgYW5kIHN1bW1hcmlzZSBsZWFrcworICAgICAgICBpbnRvIGFuIGVhc2lseSB1bmRlcnN0
YW5kYWJsZSBsaXN0LgorICAgICAgICAoZ2V0X3RleHRfb2YpOgorICAgICAgICAoZ2V0X0NEQVRB
X29mKToKKyAgICAgICAgKGdhdGhlcl9mcmFtZXMpOgorICAgICAgICAoVmFsZ3JpbmRFcnJvcik6
CisgICAgICAgIChWYWxncmluZEVycm9yLl9faW5pdF9fKToKKyAgICAgICAgKFZhbGdyaW5kRXJy
b3IuX19zdHJfXyk6CisgICAgICAgIChWYWxncmluZEVycm9yLnVuaXF1ZV9zdHJpbmcpOgorICAg
ICAgICAoVmFsZ3JpbmRFcnJvci5lcnJvcl9oYXNoKToKKyAgICAgICAgKFZhbGdyaW5kRXJyb3Iu
X19oYXNoX18pOgorICAgICAgICAoVmFsZ3JpbmRFcnJvci5fX2VxX18pOgorICAgICAgICAoTGVh
a0RldGVjdG9yVmFsZ3JpbmQpOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmQuX19pbml0
X18pOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmQuX3BhcnNlX2xlYWtzX291dHB1dCk6
CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZC5sZWFrc19maWxlc19pbl9yZXN1bHRzX2Rp
cmVjdG9yeSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZC5jbGVhbl9sZWFrc19maWxl
c19mcm9tX3Jlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5k
LnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWwpOgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZF91bml0dGVzdC5weTogQWRkZWQuCisgICAg
ICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KToKKyAgICAgICAgKG1ha2VfbW9ja19pbmNv
bXBsZXRlX3ZhbGdyaW5kX291dHB1dCk6CisgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVz
dWx0cyk6CisgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0c19pbmNvbXBsZXRlKToK
KyAgICAgICAgKG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2VtcHR5KToKKyAgICAgICAgKG1h
a2VfbW9ja192YWxncmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCk6CisgICAgICAgIChtb2NrX3J1
bl9jcHBmaWx0X2NvbW1hbmQpOgorICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmRUZXN0KToK
KyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5kVGVzdC50ZXN0X3BhcnNlX2FuZF9wcmludF9s
ZWFrc19kZXRhaWxfcGFzcyk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVz
dF9wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX2luY29tcGxldGUpOgorICAgICAgICAoTGVh
a0RldGVjdG9yVmFsZ3JpbmRUZXN0LnRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9l
bXB0eSk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmluZFRlc3QudGVzdF9wYXJzZV9hbmRf
cHJpbnRfbGVha3NfZGV0YWlsX21pc2Zvcm1hdHRlZCk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JW
YWxncmluZFRlc3QudGVzdF9wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX3Bhc3MpOgorICAg
ICAgICAoTGVha0RldGVjdG9yVmFsZ3JpbmRUZXN0LnRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtz
X2RldGFpbF9pbmNvbXBsZXRlKToKKyAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5kVGVzdC50
ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRhaWxfZW1wdHkpOgorICAgICAgICAoTGVha0Rl
dGVjdG9yVmFsZ3JpbmRUZXN0LnRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9taXNm
b3JtYXR0ZWQpOgorCiAyMDE0LTAxLTAxICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZW5hbWUgbGlidGVzdG5ldHNjYXBlcGx1Z2luIHRv
IGxpYlRlc3ROZXRzY2FwZVBsdWdpbgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2d0ay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkKaW5kZXgg
MmI4ZTI3ODBkZmViODIzMTc5ZDNiNmQyZGU5ZDY5MDAyOTFjNTY5Yy4uZjNhZmM0ZWM2NmZmMzlh
YThhOGFmMWE1YzI5MTQzNjJlNTQzYzc5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2d0ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5
CkBAIC0zOCw2ICszOCw3IEBAIGZyb20gd2Via2l0cHkucG9ydC5wdWxzZWF1ZGlvX3Nhbml0aXpl
ciBpbXBvcnQgUHVsc2VBdWRpb1Nhbml0aXplcgogZnJvbSB3ZWJraXRweS5wb3J0Lnh2ZmJkcml2
ZXIgaW1wb3J0IFh2ZmJEcml2ZXIKIGZyb20gd2Via2l0cHkucG9ydC53ZXN0b25kcml2ZXIgaW1w
b3J0IFdlc3RvbkRyaXZlcgogZnJvbSB3ZWJraXRweS5wb3J0LmxpbnV4X2dldF9jcmFzaF9sb2cg
aW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCitmcm9tIHdlYmtpdHB5LnBvcnQubGVha2RldGVj
dG9yX3ZhbGdyaW5kIGltcG9ydCBMZWFrRGV0ZWN0b3JWYWxncmluZAogCiAKIGNsYXNzIEd0a1Bv
cnQoUG9ydCk6CkBAIC00OCw2ICs0OSw3IEBAIGNsYXNzIEd0a1BvcnQoUG9ydCk6CiAgICAgICAg
IHNlbGYuX3B1bHNlYXVkaW9fc2FuaXRpemVyID0gUHVsc2VBdWRpb1Nhbml0aXplcigpCiAKICAg
ICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCJsZWFrcyIpOgorICAgICAgICAgICAgc2VsZi5fbGVh
a2RldGVjdG9yID0gTGVha0RldGVjdG9yVmFsZ3JpbmQoc2VsZi5fZXhlY3V0aXZlLCBzZWxmLl9m
aWxlc3lzdGVtLCBzZWxmLnJlc3VsdHNfZGlyZWN0b3J5KCkpCiAgICAgICAgICAgICBpZiBub3Qg
c2VsZi5nZXRfb3B0aW9uKCJ3cmFwcGVyIik6CiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigndXNlIC0td3JhcHBlcj1cInZhbGdyaW5kXCIgZm9yIG1lbW9yeSBsZWFrIGRldGVjdGlv
biBvbiBHVEsnKQogCkBAIC04MSw2ICs4Myw5IEBAIGNsYXNzIEd0a1BvcnQoUG9ydCk6CiAgICAg
ICAgIHN1cGVyKEd0a1BvcnQsIHNlbGYpLnNldHVwX3Rlc3RfcnVuKCkKICAgICAgICAgc2VsZi5f
cHVsc2VhdWRpb19zYW5pdGl6ZXIudW5sb2FkX3B1bHNlYXVkaW9fbW9kdWxlKCkKIAorICAgICAg
ICBpZiBzZWxmLmdldF9vcHRpb24oImxlYWtzIik6CisgICAgICAgICAgICBzZWxmLl9sZWFrZGV0
ZWN0b3IuY2xlYW5fbGVha3NfZmlsZXNfZnJvbV9yZXN1bHRzX2RpcmVjdG9yeSgpCisKICAgICBk
ZWYgY2xlYW5fdXBfdGVzdF9ydW4oc2VsZik6CiAgICAgICAgIHN1cGVyKEd0a1BvcnQsIHNlbGYp
LmNsZWFuX3VwX3Rlc3RfcnVuKCkKICAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIu
cmVzdG9yZV9wdWxzZWF1ZGlvX21vZHVsZSgpCkBAIC0xNTksNiArMTY0LDE2IEBAIGNsYXNzIEd0
a1BvcnQoUG9ydCk6CiAgICAgZGVmIF9wb3J0X3NwZWNpZmljX2V4cGVjdGF0aW9uc19maWxlcyhz
ZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fd2Via2l0
X2Jhc2VsaW5lX3BhdGgocCksICdUZXN0RXhwZWN0YXRpb25zJykgZm9yIHAgaW4gcmV2ZXJzZWQo
c2VsZi5fc2VhcmNoX3BhdGhzKCkpXQogCisgICAgZGVmIHByaW50X2xlYWtzX3N1bW1hcnkoc2Vs
Zik6CisgICAgICAgIGlmIG5vdCBzZWxmLmdldF9vcHRpb24oJ2xlYWtzJyk6CisgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgIyBGSVhNRTogVGhpcyBpcyBhIGhhY2ssIGJ1dCB3ZSBkb24ndCBo
YXZlIGEgYmV0dGVyIHdheSB0byBnZXQgdGhpcyBpbmZvcm1hdGlvbiBmcm9tIHRoZSB3b3JrZXJz
IHlldAorICAgICAgICAjIGJlY2F1c2Ugd2UncmUgaW4gdGhlIG1hbmFnZXIgcHJvY2Vzcy4KKyAg
ICAgICAgbGVha3NfZmlsZXMgPSBzZWxmLl9sZWFrZGV0ZWN0b3IubGVha3NfZmlsZXNfaW5fcmVz
dWx0c19kaXJlY3RvcnkoKQorICAgICAgICBpZiBub3QgbGVha3NfZmlsZXM6CisgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgc2VsZi5fbGVha2RldGVjdG9yLnBhcnNlX2FuZF9wcmludF9sZWFr
c19kZXRhaWwobGVha3NfZmlsZXMpCisKICAgICAjIEZJWE1FOiBXZSBzaG91bGQgZmluZCBhIHdh
eSB0byBzaGFyZSB0aGlzIGltcGxtZW50YXRpb24gd2l0aCBHdGssCiAgICAgIyBvciB0ZWFjaCBy
dW4tbGF1bmNoZXIgaG93IHRvIGNhbGwgcnVuLXNhZmFyaSBhbmQgbW92ZSB0aGlzIGRvd24gdG8g
UG9ydC4KICAgICBkZWYgc2hvd19yZXN1bHRzX2h0bWxfZmlsZShzZWxmLCByZXN1bHRzX2ZpbGVu
YW1lKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0
b3JfdmFsZ3JpbmQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9y
X3ZhbGdyaW5kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNjE4YTk4NTkxZDcxMzNhY2VkMGY5MjhiZTEzOGE4
ZGM1MDNhNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
bGVha2RldGVjdG9yX3ZhbGdyaW5kLnB5CkBAIC0wLDAgKzEsMjkzIEBACisjIENvcHlyaWdodCAo
QykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBC
YXNlZCBvbiBjb2RlIGZyb20gQ2hyb21pdW0sIGNvcHlyaWdodCBhcyBmb2xsb3dzOgorIworIyBD
b3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKK2ltcG9ydCBoYXNobGliCitp
bXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCitpbXBvcnQgc3VicHJvY2VzcworZnJvbSB4bWwuZG9t
Lm1pbmlkb20gaW1wb3J0IHBhcnNlU3RyaW5nCitmcm9tIHhtbC5wYXJzZXJzLmV4cGF0IGltcG9y
dCBFeHBhdEVycm9yCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitk
ZWYgZ2V0X3RleHRfb2YodG9wX25vZGUsIG5hbWUpOgorICAgICIiIiBSZXR1cm5zIGFsbCB0ZXh0
IGluIGFsbCBET00gbm9kZXMgd2l0aCBhIGNlcnRhaW4gfG5hbWV8IHRoYXQgYXJlIGNoaWxkcmVu
IG9mIHx0b3Bfbm9kZXwuICIiIgorCisgICAgdGV4dCA9ICIiCisgICAgZm9yIG5vZGVzX25hbWVk
IGluIHRvcF9ub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKG5hbWUpOgorICAgICAgICB0ZXh0ICs9
ICIiLmpvaW4oW25vZGUuZGF0YSBmb3Igbm9kZSBpbiBub2Rlc19uYW1lZC5jaGlsZE5vZGVzCisg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm9kZS5ub2RlVHlwZSA9PSBub2RlLlRFWFRfTk9E
RV0pCisgICAgcmV0dXJuIHRleHQKKworCitkZWYgZ2V0X0NEQVRBX29mKHRvcF9ub2RlLCBuYW1l
KToKKyAgICAiIiIgUmV0dXJucyBhbGwgQ0RBVEEgaW4gYWxsIERPTSBub2RlcyB3aXRoIGEgY2Vy
dGFpbiB8bmFtZXwgdGhhdCBhcmUgY2hpbGRyZW4gb2YgfHRvcF9ub2RlfC4gIiIiCisKKyAgICB0
ZXh0ID0gIiIKKyAgICBmb3Igbm9kZXNfbmFtZWQgaW4gdG9wX25vZGUuZ2V0RWxlbWVudHNCeVRh
Z05hbWUobmFtZSk6CisgICAgICAgIHRleHQgKz0gIiIuam9pbihbbm9kZS5kYXRhIGZvciBub2Rl
IGluIG5vZGVzX25hbWVkLmNoaWxkTm9kZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBu
b2RlLm5vZGVUeXBlID09IG5vZGUuQ0RBVEFfU0VDVElPTl9OT0RFXSkKKyAgICBpZiAodGV4dCA9
PSAiIik6CisgICAgICAgIHJldHVybiBOb25lCisgICAgcmV0dXJuIHRleHQKKworCisjIENvbnN0
YW50cyB0aGF0IGdpdmUgcmVhbCBuYW1lcyB0byB0aGUgYWJicmV2aWF0aW9ucyBpbiB2YWxncmlu
ZCBYTUwgb3V0cHV0LgorSU5TVFJVQ1RJT05fUE9JTlRFUiA9ICJpcCIKK09CSkVDVF9GSUxFID0g
Im9iaiIKK0ZVTkNUSU9OX05BTUUgPSAiZm4iCitTUkNfRklMRV9ESVIgPSAiZGlyIgorU1JDX0ZJ
TEVfTkFNRSA9ICJmaWxlIgorU1JDX0xJTkUgPSAibGluZSIKKworCitkZWYgZ2F0aGVyX2ZyYW1l
cyhub2RlLCBzb3VyY2VfZGlyKToKKyAgICBmcmFtZV9kaWN0ID0gbGFtYmRhIGZyYW1lOiB7Cisg
ICAgICAgIElOU1RSVUNUSU9OX1BPSU5URVI6IGdldF90ZXh0X29mKGZyYW1lLCBJTlNUUlVDVElP
Tl9QT0lOVEVSKSwKKyAgICAgICAgT0JKRUNUX0ZJTEU6IGdldF90ZXh0X29mKGZyYW1lLCBPQkpF
Q1RfRklMRSksCisgICAgICAgIEZVTkNUSU9OX05BTUU6IGdldF90ZXh0X29mKGZyYW1lLCBGVU5D
VElPTl9OQU1FKSwKKyAgICAgICAgU1JDX0ZJTEVfRElSOiBnZXRfdGV4dF9vZihmcmFtZSwgU1JD
X0ZJTEVfRElSKSwKKyAgICAgICAgU1JDX0ZJTEVfTkFNRTogZ2V0X3RleHRfb2YoZnJhbWUsIFNS
Q19GSUxFX05BTUUpLAorICAgICAgICBTUkNfTElORTogZ2V0X3RleHRfb2YoZnJhbWUsIFNSQ19M
SU5FKX0KKworICAgIHJldHVybiBbZnJhbWVfZGljdChmcmFtZSkgZm9yIGZyYW1lIGluIG5vZGUu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoImZyYW1lIildCisKKworY2xhc3MgVmFsZ3JpbmRFcnJvcjoK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRpdmUsIHNvdXJjZV9kaXIsIGVycm9yX25v
ZGUpOgorICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBleGVjdXRpdmUKKyAgICAgICAgc2VsZi5f
a2luZCA9IGdldF90ZXh0X29mKGVycm9yX25vZGUsICJraW5kIikKKyAgICAgICAgc2VsZi5fYmFj
a3RyYWNlcyA9IFtdCisgICAgICAgIHNlbGYuX3N1cHByZXNzaW9uID0gTm9uZQorICAgICAgICBz
ZWxmLl9hZGRpdGlvbmFsID0gW10KKworICAgICAgICAjIEl0ZXJhdGUgdGhyb3VnaCB0aGUgbm9k
ZXMsIHBhcnNpbmcgPHdoYXR8YXV4d2hhdD48c3RhY2s+IHBhaXJzLgorICAgICAgICBkZXNjcmlw
dGlvbiA9IE5vbmUKKyAgICAgICAgZm9yIG5vZGUgaW4gZXJyb3Jfbm9kZS5jaGlsZE5vZGVzOgor
ICAgICAgICAgICAgaWYgbm9kZS5sb2NhbE5hbWUgPT0gIndoYXQiIG9yIG5vZGUubG9jYWxOYW1l
ID09ICJhdXh3aGF0IjoKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICIiLmpvaW4oW24u
ZGF0YSBmb3IgbiBpbiBub2RlLmNoaWxkTm9kZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIG4ubm9kZVR5cGUgPT0gbi5URVhUX05PREVdKQorICAgICAgICAgICAg
ZWxpZiBub2RlLmxvY2FsTmFtZSA9PSAieHdoYXQiOgorICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uID0gZ2V0X3RleHRfb2Yobm9kZSwgInRleHQiKQorICAgICAgICAgICAgZWxpZiBub2RlLmxv
Y2FsTmFtZSA9PSAic3RhY2siOgorICAgICAgICAgICAgICAgIGFzc2VydCBkZXNjcmlwdGlvbgor
ICAgICAgICAgICAgICAgIHNlbGYuX2JhY2t0cmFjZXMuYXBwZW5kKFtkZXNjcmlwdGlvbiwgZ2F0
aGVyX2ZyYW1lcyhub2RlLCBzb3VyY2VfZGlyKV0pCisgICAgICAgICAgICAgICAgZGVzY3JpcHRp
b24gPSBOb25lCisgICAgICAgICAgICBlbGlmIG5vZGUubG9jYWxOYW1lID09ICJvcmlnaW4iOgor
ICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gZ2V0X3RleHRfb2Yobm9kZSwgIndoYXQiKQor
ICAgICAgICAgICAgICAgIHN0YWNrID0gbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3RhY2si
KVswXQorICAgICAgICAgICAgICAgIGZyYW1lcyA9IGdhdGhlcl9mcmFtZXMoc3RhY2ssIHNvdXJj
ZV9kaXIpCisgICAgICAgICAgICAgICAgc2VsZi5fYmFja3RyYWNlcy5hcHBlbmQoW2Rlc2NyaXB0
aW9uLCBmcmFtZXNdKQorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gTm9uZQorICAgICAg
ICAgICAgICAgIHN0YWNrID0gTm9uZQorICAgICAgICAgICAgICAgIGZyYW1lcyA9IE5vbmUKKyAg
ICAgICAgICAgIGVsaWYgZGVzY3JpcHRpb24gYW5kIG5vZGUubG9jYWxOYW1lICE9IE5vbmU6Cisg
ICAgICAgICAgICAgICAgIyBUaGUgbGFzdGVzdCBkZXNjcmlwdGlvbiBoYXMgbm8gc3RhY2ssIGUu
Zy4gIkFkZHJlc3MgMHgyOCBpcyB1bmtub3duIi4KKyAgICAgICAgICAgICAgICBzZWxmLl9hZGRp
dGlvbmFsLmFwcGVuZChkZXNjcmlwdGlvbikKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9
IE5vbmUKKworICAgICAgICAgICAgaWYgbm9kZS5sb2NhbE5hbWUgPT0gInN1cHByZXNzaW9uIjoK
KyAgICAgICAgICAgICAgICBzZWxmLl9zdXBwcmVzc2lvbiA9IGdldF9DREFUQV9vZihub2RlLCAi
cmF3dGV4dCIpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgb3V0cHV0ID0gc2Vs
Zi5fa2luZCArICJcbiIKKyAgICAgICAgZm9yIGJhY2t0cmFjZSBpbiBzZWxmLl9iYWNrdHJhY2Vz
OgorICAgICAgICAgICAgb3V0cHV0ICs9IGJhY2t0cmFjZVswXSArICJcbiIKKworICAgICAgICAg
ICAgYnVmID0gIiIKKyAgICAgICAgICAgIGZvciBmcmFtZSBpbiBiYWNrdHJhY2VbMV06CisgICAg
ICAgICAgICAgICAgYnVmICs9IChmcmFtZVtGVU5DVElPTl9OQU1FXSBvciBmcmFtZVtJTlNUUlVD
VElPTl9QT0lOVEVSXSkgKyAiXG4iCisKKyAgICAgICAgICAgIGlucHV0ID0gYnVmLmVuY29kZSgn
bGF0aW4tMScpLnNwbGl0KCJcbiIpCisgICAgICAgICAgICBkZW1hbmdsZWRfbmFtZXMgPSBbc2Vs
Zi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsnYysrZmlsdCcsICctbicsIG5hbWVdKSBmb3IgbmFt
ZSBpbiBpbnB1dCBpZiBuYW1lXQorCisgICAgICAgICAgICBpID0gMAorICAgICAgICAgICAgZm9y
IGZyYW1lIGluIGJhY2t0cmFjZVsxXToKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gKCIgICIg
KyBkZW1hbmdsZWRfbmFtZXNbaV0pCisgICAgICAgICAgICAgICAgaSA9IGkgKyAxCisKKyAgICAg
ICAgICAgICAgICBpZiBmcmFtZVtTUkNfRklMRV9ESVJdICE9ICIiOgorICAgICAgICAgICAgICAg
ICAgICBvdXRwdXQgKz0gKCIgKCIgKyBmcmFtZVtTUkNfRklMRV9ESVJdICsgIi8iICsgZnJhbWVb
U1JDX0ZJTEVfTkFNRV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGZy
YW1lW1NSQ19MSU5FXSArICIpIikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gIiAoIiArIGZyYW1lW09CSkVDVF9GSUxFXSArICIpIgorICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAiXG4iCisKKyAgICAgICAgZm9yIGFkZGl0aW9uYWwgaW4gc2Vs
Zi5fYWRkaXRpb25hbDoKKyAgICAgICAgICAgIG91dHB1dCArPSBhZGRpdGlvbmFsICsgIlxuIgor
CisgICAgICAgIGFzc2VydCBzZWxmLl9zdXBwcmVzc2lvbiAhPSBOb25lLCAiWW91ciBWYWxncmlu
ZCBkb2Vzbid0IGdlbmVyYXRlICIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdXBwcmVzc2lvbnMgLSBpcyBpdCB0b28gb2xkPyIKKworICAgICAgICBvdXRw
dXQgKz0gIlN1cHByZXNzaW9uIChlcnJvciBoYXNoPSMlMDE2WCMpOlxuIiAlIHNlbGYuZXJyb3Jf
aGFzaCgpCisKKyAgICAgICAgIyBXaWRlbiB0aGUgc3VwcHJlc3Npb25zIHNsaWdodGx5LgorICAg
ICAgICBzdXBwID0gc2VsZi5fc3VwcHJlc3Npb24KKyAgICAgICAgc3VwcCA9IHN1cHAucmVwbGFj
ZSgiZnVuOl9abndqIiwgImZ1bjpfWm53KiIpCisgICAgICAgIHN1cHAgPSBzdXBwLnJlcGxhY2Uo
ImZ1bjpfWm53bSIsICJmdW46X1pudyoiKQorICAgICAgICBzdXBwID0gc3VwcC5yZXBsYWNlKCJm
dW46X1puYWoiLCAiZnVuOl9abmEqIikKKyAgICAgICAgc3VwcCA9IHN1cHAucmVwbGFjZSgiZnVu
Ol9abmFtIiwgImZ1bjpfWm5hKiIpCisKKyAgICAgICAgIyBTcGxpdCBpbnRvIGxpbmVzIHNvIHdl
IGNhbiBlbmZvcmNlIGxlbmd0aCBsaW1pdHMuCisgICAgICAgIHN1cHBsaW5lcyA9IHN1cHAuc3Bs
aXQoIlxuIikKKyAgICAgICAgc3VwcCA9IE5vbmUgICMgdG8gYXZvaWQgcmUtdXNlCisKKyAgICAg
ICAgIyBUcnVuY2F0ZSBhdCBsaW5lIDI2IChWR19NQVhfU1VQUF9DQUxMRVJTIHBsdXMgMiBmb3Ig
bmFtZSBhbmQgdHlwZSkKKyAgICAgICAgIyAoaHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTQ2OCBwcm9wb3NlcyByYWlzaW5nCisgICAgICAgICMgVkdfTUFYX1NVUFBfQ0FM
TEVSUywgYnV0IHdlJ3JlIHByb2JhYmx5IGZpbmUgd2l0aCBpdCBhcyBpcy4pCisgICAgICAgIG5l
d2xlbiA9IG1pbigyNiwgbGVuKHN1cHBsaW5lcykpCisKKyAgICAgICAgaWYgKGxlbihzdXBwbGlu
ZXMpID4gbmV3bGVuKToKKyAgICAgICAgICAgIHN1cHBsaW5lcyA9IHN1cHBsaW5lc1swOm5ld2xl
bl0KKyAgICAgICAgICAgIHN1cHBsaW5lcy5hcHBlbmQoIn0iKQorCisgICAgICAgIGZvciBmcmFt
ZSBpbiByYW5nZShsZW4oc3VwcGxpbmVzKSk6CisgICAgICAgICAgICAjIFJlcGxhY2UgdGhlIGFs
d2F5cy1jaGFuZ2luZyBhbm9ueW1vdXMgbmFtZXNwYWNlIHByZWZpeCB3aXRoICIqIi4KKyAgICAg
ICAgICAgIG0gPSByZS5tYXRjaCgiKCArZnVuOilfWk4uKl9HTE9CQUxfX05fLipcLmNjXyIgKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICJbMC05YS1mQS1GXXs4fV9bMC05YS1mQS1GXXs4fSgu
KikiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBsaW5lc1tmcmFtZV0pCisgICAgICAg
ICAgICBpZiBtOgorICAgICAgICAgICAgICAgIHN1cHBsaW5lc1tmcmFtZV0gPSAiKiIuam9pbiht
Lmdyb3VwcygpKQorCisgICAgICAgIHJldHVybiBvdXRwdXQgKyAiXG4iLmpvaW4oc3VwcGxpbmVz
KSArICJcbiIKKworICAgIGRlZiB1bmlxdWVfc3RyaW5nKHNlbGYpOgorICAgICAgICByZXAgPSBz
ZWxmLl9raW5kICsgIiAiCisgICAgICAgIGZvciBiYWNrdHJhY2UgaW4gc2VsZi5fYmFja3RyYWNl
czoKKyAgICAgICAgICAgIGZvciBmcmFtZSBpbiBiYWNrdHJhY2VbMV06CisgICAgICAgICAgICAg
ICAgcmVwICs9IGZyYW1lW0ZVTkNUSU9OX05BTUVdCisKKyAgICAgICAgICAgICAgICBpZiBmcmFt
ZVtTUkNfRklMRV9ESVJdICE9ICIiOgorICAgICAgICAgICAgICAgICAgICByZXAgKz0gZnJhbWVb
U1JDX0ZJTEVfRElSXSArICIvIiArIGZyYW1lW1NSQ19GSUxFX05BTUVdCisgICAgICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmVwICs9IGZyYW1lW09CSkVDVF9GSUxFXQor
ICAgICAgICByZXR1cm4gcmVwCisKKyAgICBkZWYgZXJyb3JfaGFzaChzZWxmKToKKyAgICAgICAg
IyBUaGlzIGlzIGEgZGV2aWNlLWluZGVwZW5kZW50IGhhc2ggaWRlbnRpZnlpbmcgdGhlIHN1cHBy
ZXNzaW9uLgorICAgICAgICAjIEJ5IHByaW50aW5nIG91dCB0aGlzIGhhc2ggd2UgY2FuIGZpbmQg
ZHVwbGljYXRlIHJlcG9ydHMgYmV0d2VlbiB0ZXN0cyBhbmQKKyAgICAgICAgIyBkaWZmZXJlbnQg
c2hhcmRzIHJ1bm5pbmcgb24gbXVsdGlwbGUgYnVpbGRib3RzCisgICAgICAgIHJldHVybiBpbnQo
aGFzaGxpYi5tZDUoc2VsZi51bmlxdWVfc3RyaW5nKCkpLmhleGRpZ2VzdCgpWzoxNl0sIDE2KQor
CisgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICByZXR1cm4gaGFzaChzZWxmLnVuaXF1
ZV9zdHJpbmcoKSkKKworICAgIGRlZiBfX2VxX18oc2VsZiwgcmhzKToKKyAgICAgICAgcmV0dXJu
IHNlbGYudW5pcXVlX3N0cmluZygpID09IHJocworCisKK2NsYXNzIExlYWtEZXRlY3RvclZhbGdy
aW5kKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0aXZlLCBmaWxlc3lz
dGVtLCBzb3VyY2VfZGlyKToKKyAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gZXhlY3V0aXZlCisg
ICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBmaWxlc3lzdGVtCisgICAgICAgIHNlbGYuX3NvdXJj
ZV9kaXIgPSBzb3VyY2VfZGlyCisKKyAgICAgICAgIyBDb250YWlucyB0aGUgc2V0IG9mIHVuaXF1
ZSBlcnJvcnMuCisgICAgICAgIHNlbGYuX2Vycm9ycyA9IHNldCgpCisgICAgICAgICMgQ29udGFp
bnMgYWxsIHN1cHByZXNzaW9ucyB1c2VkLgorICAgICAgICBzZWxmLl9zdXBwcmVzc2lvbnMgPSBk
ZWZhdWx0ZGljdChpbnQpCisKKyAgICBkZWYgX3BhcnNlX2xlYWtzX291dHB1dChzZWxmLCBsZWFr
c19vdXRwdXQpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwYXJzZWRfc3RyaW5nID0gcGFy
c2VTdHJpbmcobGVha3Nfb3V0cHV0KQorICAgICAgICBleGNlcHQgRXhwYXRFcnJvciwgZToKKyAg
ICAgICAgICAgIHBhcnNlX2ZhaWxlZCA9IFRydWUKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoImNv
dWxkIG5vdCBwYXJzZSAlczogJXMiICUgKGxlYWtzX291dHB1dCwgZSkpCisgICAgICAgICAgICBy
ZXR1cm4KKworICAgICAgICBjdXJfcmVwb3J0X2Vycm9ycyA9IHNldCgpCisKKyAgICAgICAgY29t
bWFuZGxpbmUgPSBOb25lCisgICAgICAgIHByZWFtYmxlID0gcGFyc2VkX3N0cmluZy5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgicHJlYW1ibGUiKVswXQorICAgICAgICBmb3Igbm9kZSBpbiBwcmVhbWJs
ZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluZSIpOgorICAgICAgICAgICAgaWYgbm9kZS5sb2Nh
bE5hbWUgPT0gImxpbmUiOgorICAgICAgICAgICAgICAgIGZvciB4IGluIG5vZGUuY2hpbGROb2Rl
czoKKyAgICAgICAgICAgICAgICAgICAgaWYgeC5ub2RlVHlwZSA9PSBub2RlLlRFWFRfTk9ERSBh
bmQgIkNvbW1hbmQiIGluIHguZGF0YToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRs
aW5lID0geC5kYXRhCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIHJh
d19lcnJvcnMgPSBwYXJzZWRfc3RyaW5nLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJlcnJvciIpCisg
ICAgICAgIGZvciByYXdfZXJyb3IgaW4gcmF3X2Vycm9yczoKKyAgICAgICAgICAgICMgSWdub3Jl
ICJwb3NzaWJsZSIgbGVha3MgYW5kIEludmFsaWRSZWFkL1dyaXRlIGJ5IGRlZmF1bHQuCisgICAg
ICAgICAgICBpZiAoZ2V0X3RleHRfb2YocmF3X2Vycm9yLCAia2luZCIpICE9ICJMZWFrX1Bvc3Np
Ymx5TG9zdCIpIGFuZCBcCisgICAgICAgICAgICAgICAgKGdldF90ZXh0X29mKHJhd19lcnJvciwg
ImtpbmQiKSAhPSAiTGVha19TdGlsbFJlYWNoYWJsZSIpIGFuZCBcCisgICAgICAgICAgICAgICAg
KGdldF90ZXh0X29mKHJhd19lcnJvciwgImtpbmQiKSAhPSAiSW52YWxpZFdyaXRlIikgYW5kIFwK
KyAgICAgICAgICAgICAgICAoZ2V0X3RleHRfb2YocmF3X2Vycm9yLCAia2luZCIpICE9ICJJbnZh
bGlkUmVhZCIpOgorICAgICAgICAgICAgICAgIGVycm9yID0gVmFsZ3JpbmRFcnJvcihzZWxmLl9l
eGVjdXRpdmUsIHNlbGYuX3NvdXJjZV9kaXIsIHJhd19lcnJvcikKKyAgICAgICAgICAgICAgICBp
ZiBlcnJvciBub3QgaW4gY3VyX3JlcG9ydF9lcnJvcnM6CisgICAgICAgICAgICAgICAgICAgICMg
V2UgaGF2ZW4ndCBzZWVuIHN1Y2ggZXJyb3JzIGRvaW5nIHRoaXMgcmVwb3J0IHlldC4uLgorICAg
ICAgICAgICAgICAgICAgICBpZiBlcnJvciBpbiBzZWxmLl9lcnJvcnM6CisgICAgICAgICAgICAg
ICAgICAgICAgICAjIC4uLiBidXQgd2Ugc2F3IGl0IGluIGVhcmxpZXIgcmVwb3J0cywgZS5nLiBw
cmV2aW91cyBVSSB0ZXN0CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJfcmVwb3J0X2Vycm9y
cy5hZGQoIlRoaXMgZXJyb3Igd2FzIGFscmVhZHkgcHJpbnRlZCBpbiAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvbWUgb3RoZXIgdGVzdCwgc2VlICdo
YXNoPSMlMDE2WCMnIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5lcnJv
cl9oYXNoKCkpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg
ICAgICAjIC4uLiBhbmQgd2UgaGF2ZW4ndCBzZWVuIGl0IGluIG90aGVyIHRlc3RzIGFzIHdlbGwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Vycm9ycy5hZGQoZXJyb3IpCisgICAgICAg
ICAgICAgICAgICAgICAgICBjdXJfcmVwb3J0X2Vycm9ycy5hZGQoZXJyb3IpCisKKyAgICAgICAg
c3VwcGNvdW50bGlzdCA9IHBhcnNlZF9zdHJpbmcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN1cHBj
b3VudHMiKQorICAgICAgICBpZiBsZW4oc3VwcGNvdW50bGlzdCkgPiAwOgorICAgICAgICAgICAg
c3VwcGNvdW50bGlzdCA9IHN1cHBjb3VudGxpc3RbMF0KKyAgICAgICAgICAgIGZvciBub2RlIGlu
IHN1cHBjb3VudGxpc3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhaXIiKToKKyAgICAgICAgICAg
ICAgICBjb3VudCA9IGdldF90ZXh0X29mKG5vZGUsICJjb3VudCIpCisgICAgICAgICAgICAgICAg
bmFtZSA9IGdldF90ZXh0X29mKG5vZGUsICJuYW1lIikKKyAgICAgICAgICAgICAgICBzZWxmLl9z
dXBwcmVzc2lvbnNbbmFtZV0gKz0gaW50KGNvdW50KQorCisgICAgICAgIHJldHVybiBjdXJfcmVw
b3J0X2Vycm9ycworCisgICAgZGVmIGxlYWtzX2ZpbGVzX2luX3Jlc3VsdHNfZGlyZWN0b3J5KHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5nbG9iKHNlbGYuX2ZpbGVzeXN0
ZW0uam9pbihzZWxmLl9zb3VyY2VfZGlyLCAiZHJ0LSotbGVha3MueG1sIikpCisKKyAgICBkZWYg
Y2xlYW5fbGVha3NfZmlsZXNfZnJvbV9yZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAg
IyBSZW1vdmUgb2xkIFZhbGdyaW5kIHhtbCBmaWxlcyBiZWZvcmUgc3RhcnRpbmcgdGhpcyBydW4u
CisgICAgICAgIGxlYWtzX2ZpbGVzID0gc2VsZi5sZWFrc19maWxlc19pbl9yZXN1bHRzX2RpcmVj
dG9yeSgpCisgICAgICAgIGZvciBmIGluIGxlYWtzX2ZpbGVzOgorICAgICAgICAgICAgc2VsZi5f
ZmlsZXN5c3RlbS5yZW1vdmUoZikKKworICAgIGRlZiBwYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0
YWlsKHNlbGYsIGxlYWtzX2ZpbGVzKToKKyAgICAgICAgZm9yIGYgaW4gbGVha3NfZmlsZXM6Cisg
ICAgICAgICAgICBsZWFrc19vdXRwdXQgPSBzZWxmLl9maWxlc3lzdGVtLnJlYWRfYmluYXJ5X2Zp
bGUoZikKKyAgICAgICAgICAgIGRldGVjdGVkX2xlYWtzID0gc2VsZi5fcGFyc2VfbGVha3Nfb3V0
cHV0KGxlYWtzX291dHB1dCkKKworICAgICAgICBfbG9nLmluZm8oIi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIikKKyAgICAgICAgX2xvZy5pbmZv
KCJTdXBwcmVzc2lvbnMgdXNlZDoiKQorICAgICAgICBfbG9nLmluZm8oIiAgY291bnQgbmFtZSIp
CisgICAgICAgIGZvciAobmFtZSwgY291bnQpIGluIHNvcnRlZChzZWxmLl9zdXBwcmVzc2lvbnMu
aXRlbXMoKSwga2V5PWxhbWJkYSAoaywgdik6ICh2LCBrKSk6CisgICAgICAgICAgICBfbG9nLmlu
Zm8oIiU3ZCAlcyIgJSAoY291bnQsIG5hbWUpKQorICAgICAgICBfbG9nLmluZm8oIi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIikKKworICAgICAg
ICBpZiBzZWxmLl9lcnJvcnM6CisgICAgICAgICAgICBfbG9nLmluZm8oIlZhbGdyaW5kIGRldGVj
dGVkICVzIGxlYWtzOiIgJSBsZW4oc2VsZi5fZXJyb3JzKSkKKyAgICAgICAgICAgIGZvciBsZWFr
IGluIHNlbGYuX2Vycm9yczoKKyAgICAgICAgICAgICAgICBfbG9nLmluZm8obGVhaykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmRf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3Zh
bGdyaW5kX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNmVjYzdlOGRkY2VmZTQ5MzM1MTdmYWEx
ZjdkZTk3NGQ3YTAzOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5kX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsODQ5IEBA
CisjIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisj
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAorCitmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRp
dmUyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBN
b2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUg
aW1wb3J0IE91dHB1dENhcHR1cmUKK2Zyb20gd2Via2l0cHkucG9ydC5sZWFrZGV0ZWN0b3JfdmFs
Z3JpbmQgaW1wb3J0IExlYWtEZXRlY3RvclZhbGdyaW5kCisKKworZGVmIG1ha2VfbW9ja192YWxn
cmluZF9vdXRwdXQocHJvY2Vzc19uYW1lLCBwaWQsIHV1aWQpOgorICAgIHJldHVybiAiIiI8P3ht
bCB2ZXJzaW9uPSIxLjAiPz4KKworPHZhbGdyaW5kb3V0cHV0PgorCis8cHJvdG9jb2x2ZXJzaW9u
PjQ8L3Byb3RvY29sdmVyc2lvbj4KKzxwcm90b2NvbHRvb2w+bWVtY2hlY2s8L3Byb3RvY29sdG9v
bD4KKworPHByZWFtYmxlPgorICA8bGluZT5NZW1jaGVjaywgYSBtZW1vcnkgZXJyb3IgZGV0ZWN0
b3I8L2xpbmU+CisgIDxsaW5lPkNvcHlyaWdodCAoQykgMjAwMi0yMDExLCBhbmQgR05VIEdQTCdk
LCBieSBKdWxpYW4gU2V3YXJkIGV0IGFsLjwvbGluZT4KKyAgPGxpbmU+VXNpbmcgVmFsZ3JpbmQt
My43LjAgYW5kIExpYlZFWDsgcmVydW4gd2l0aCAtaCBmb3IgY29weXJpZ2h0IGluZm88L2xpbmU+
CisgIDxsaW5lPkNvbW1hbmQ6IC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2Uv
UHJvZ3JhbXMve3Byb2Nlc3NfbmFtZX0gLTwvbGluZT4KKzwvcHJlYW1ibGU+CisKKzxwaWQ+e3Bp
ZH08L3BpZD4KKzxwcGlkPjE4NTc3PC9wcGlkPgorPHRvb2w+bWVtY2hlY2s8L3Rvb2w+CisKKzxh
cmdzPgorICA8dmFyZ3Y+CisgICAgPGV4ZT4vdXNyL2Jpbi92YWxncmluZC5iaW48L2V4ZT4KKyAg
ICA8YXJnPi0tdG9vbD1tZW1jaGVjazwvYXJnPgorICAgIDxhcmc+LS1udW0tY2FsbGVycz00MDwv
YXJnPgorICAgIDxhcmc+LS1kZW1hbmdsZT1ubzwvYXJnPgorICAgIDxhcmc+LS10cmFjZS1jaGls
ZHJlbj1ubzwvYXJnPgorICAgIDxhcmc+LS1zbWMtY2hlY2s9YWxsLW5vbi1maWxlPC9hcmc+Cisg
ICAgPGFyZz4tLWxlYWstY2hlY2s9eWVzPC9hcmc+CisgICAgPGFyZz4tLWxlYWstcmVzb2x1dGlv
bj1oaWdoPC9hcmc+CisgICAgPGFyZz4tLXNob3ctcG9zc2libHktbG9zdD1ubzwvYXJnPgorICAg
IDxhcmc+LS1zaG93LXJlYWNoYWJsZT1ubzwvYXJnPgorICAgIDxhcmc+LS1sZWFrLWNoZWNrPWZ1
bGw8L2FyZz4KKyAgICA8YXJnPi0tdW5kZWYtdmFsdWUtZXJyb3JzPW5vPC9hcmc+CisgICAgPGFy
Zz4tLWdlbi1zdXBwcmVzc2lvbnM9YWxsPC9hcmc+CisgICAgPGFyZz4tLXhtbD15ZXM8L2FyZz4K
KyAgICA8YXJnPi0teG1sLWZpbGU9L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS9sYXlvdXQtdGVzdC1yZXN1bHRzL2RydC17cGlkfS17dXVpZH0tbGVha3MueG1sPC9hcmc+Cisg
ICAgPGFyZz4tLXN1cHByZXNzaW9ucz0vaG9tZS91c2VyL1dlYktpdC9Ub29scy9TY3JpcHRzL3Zh
bGdyaW5kL3N1cHByZXNzaW9ucy50eHQ8L2FyZz4KKyAgICA8YXJnPi0tc3VwcHJlc3Npb25zPS91
c3IvbGliL3ZhbGdyaW5kL2RlYmlhbi1saWJjNi1kYmcuc3VwcDwvYXJnPgorICA8L3Zhcmd2Pgor
ICA8YXJndj4KKyAgICA8ZXhlPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2Uv
UHJvZ3JhbXMve3Byb2Nlc3NfbmFtZX08L2V4ZT4KKyAgICA8YXJnPi08L2FyZz4KKyAgPC9hcmd2
PgorPC9hcmdzPgorCis8c3RhdHVzPgorICA8c3RhdGU+UlVOTklORzwvc3RhdGU+CisgIDx0aW1l
PjAwOjAwOjAwOjAwLjAyNCA8L3RpbWU+Cis8L3N0YXR1cz4KKworCis8c3RhdHVzPgorICA8c3Rh
dGU+RklOSVNIRUQ8L3N0YXRlPgorICA8dGltZT4wMDowMDowMDo1NC4xODYgPC90aW1lPgorPC9z
dGF0dXM+CisKKzxlcnJvcj4KKyAgPHVuaXF1ZT4weDFhNDwvdW5pcXVlPgorICA8dGlkPjE8L3Rp
ZD4KKyAgPGtpbmQ+TGVha19EZWZpbml0ZWx5TG9zdDwva2luZD4KKyAgPHh3aGF0PgorICAgIDx0
ZXh0PjggYnl0ZXMgaW4gMSBibG9ja3MgYXJlIGRlZmluaXRlbHkgbG9zdCBpbiBsb3NzIHJlY29y
ZCA0MjEgb2YgNyw5NzI8L3RleHQ+CisgICAgPGxlYWtlZGJ5dGVzPjg8L2xlYWtlZGJ5dGVzPgor
ICAgIDxsZWFrZWRibG9ja3M+MTwvbGVha2VkYmxvY2tzPgorICA8L3h3aGF0PgorICA8c3RhY2s+
CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NEMyQUY4RTwvaXA+CisgICAgICA8b2JqPi91c3Iv
bGliL3ZhbGdyaW5kL3ZncHJlbG9hZF9tZW1jaGVjay1hbWQ2NC1saW51eC5zbzwvb2JqPgorICAg
ICAgPGZuPl9abndtPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4w
eDY4MzlERUM8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9S
ZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+
X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNo
ZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVQTlMx
XzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVQRnZQ
dlM1X1NCX2JFU0NfRVVsTlMxXzEyUG9saWN5QWN0aW9uRUVfRTEwX01fbWFuYWdlckVSU3Q5X0Fu
eV9kYXRhUktTSV9TdDE4X01hbmFnZXJfb3BlcmF0aW9uPC9mbj4KKyAgICA8L2ZyYW1lPgorICAg
IDxmcmFtZT4KKyAgICAgIDxpcD4weDYxRTdCMDM8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2Vy
L1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4x
OS4zPC9vYmo+CisgICAgICA8Zm4+d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3PC9mbj4K
KyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDYxQ0JBNkQ8L2lwPgorICAg
ICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndl
YmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pONldlYktpdDE3RnJhbWVM
b2FkZXJDbGllbnQzOWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkVSS043
V2ViQ29yZTE2TmF2aWdhdGlvbkFjdGlvbkVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVOM1dURjEw
UGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0
aW9uRUVFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY4M0RG
NTI8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNl
Ly5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dl
YkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TXzE1UmVzb3Vy
Y2VSZXF1ZXN0RVBOU18xNERvY3VtZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3Jt
U3RhdGVFRUVQRnZQdlMzX1M5X2JFU0FfPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4K
KyAgICAgIDxpcD4weDY4MTdFRkM8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+
CisgICAgICA8Zm4+X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjJsb2FkV2l0aERvY3VtZW50TG9h
ZGVyRVBOU18xNERvY3VtZW50TG9hZGVyRU5TXzEzRnJhbWVMb2FkVHlwZUVOM1dURjEwUGFzc1Jl
ZlB0cklOU185Rm9ybVN0YXRlRUVFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAg
ICAgIDxpcD4weDY4MTg3Mjk8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJL
aXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+Cisg
ICAgICA8Zm4+X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUE5TXzE0RG9jdW1lbnRMb2Fk
ZXJFPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDY4MThBM0E8
L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5s
aWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+X1pON1dlYkNv
cmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1lTG9hZFJlcXVlc3RFPC9mbj4KKyAgICA8
L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDYxRTMxNDg8L2lwPgorICAgICAgPG9i
aj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0
ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8Zm4+d2Via2l0X3dlYl9mcmFtZV9sb2FkX3Vy
aTwvZm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0NENCQzk8L2lw
PgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dy
YW1zL0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+X1pMN3J1blRlc3RSS1NzPC9mbj4K
KyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQ0Q0VENjwvaXA+CisgICAg
ICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVt
cFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5fWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdjwv
Zm4+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0M0EyRDM8L2lwPgor
ICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1z
L0R1bXBSZW5kZXJUcmVlPC9vYmo+CisgICAgICA8Zm4+bWFpbjwvZm4+CisgICAgPC9mcmFtZT4K
KyAgPC9zdGFjaz4KKyAgPHN1cHByZXNzaW9uPgorICAgIDxzbmFtZT5pbnNlcnRfYV9zdXBwcmVz
c2lvbl9uYW1lX2hlcmU8L3NuYW1lPgorICAgIDxza2luZD5NZW1jaGVjazpMZWFrPC9za2luZD4K
KyAgICA8c2ZyYW1lPiA8ZnVuPl9abndtPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxm
dW4+X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGlj
eUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVQ
TlMxXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVQ
RnZQdlM1X1NCX2JFU0NfRVVsTlMxXzEyUG9saWN5QWN0aW9uRUVfRTEwX01fbWFuYWdlckVSU3Q5
X0FueV9kYXRhUktTSV9TdDE4X01hbmFnZXJfb3BlcmF0aW9uPC9mdW4+IDwvc2ZyYW1lPgorICAg
IDxzZnJhbWU+IDxmdW4+d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3PC9mdW4+IDwvc2Zy
YW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pONldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzOWRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkVSS043V2ViQ29yZTE2TmF2aWdh
dGlvbkFjdGlvbkVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVOM1dURjEwUGFzc1JlZlB0cklOUzFf
OUZvcm1TdGF0ZUVFRVN0OGZ1bmN0aW9uSUZ2TlMxXzEyUG9saWN5QWN0aW9uRUVFPC9mdW4+IDwv
c2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNo
ZWNrTmF2aWdhdGlvblBvbGljeUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVBOU18xNERvY3VtZW50
TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUVQRnZQdlMzX1M5X2JFU0Ff
PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxMUZyYW1lTG9h
ZGVyMjJsb2FkV2l0aERvY3VtZW50TG9hZGVyRVBOU18xNERvY3VtZW50TG9hZGVyRU5TXzEzRnJh
bWVMb2FkVHlwZUVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0YXRlRUVFPC9mdW4+IDwvc2Zy
YW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUE5T
XzE0RG9jdW1lbnRMb2FkZXJFPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pO
N1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1lTG9hZFJlcXVlc3RFPC9mdW4+
IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+d2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaTwv
ZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTDdydW5UZXN0UktTczwvZnVuPiA8
L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2PC9m
dW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+bWFpbjwvZnVuPiA8L3NmcmFtZT4KKyAg
ICA8cmF3dGV4dD4KKzwhW0NEQVRBWwore3sKKyAgIDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1l
X2hlcmU+CisgICBNZW1jaGVjazpMZWFrCisgICBmdW46X1pud20KKyAgIGZ1bjpfWk5TdDE0X0Z1
bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hl
Y2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBOUzFfMTREb2N1bWVu
dExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBGdlB2UzVfU0JfYkVT
Q19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NJ
X1N0MThfTWFuYWdlcl9vcGVyYXRpb24KKyAgIGZ1bjp3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lv
bl9uZXcKKyAgIGZ1bjpfWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9u
RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRl
RUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUUKKyAgIGZ1bjpfWk43V2ViQ29y
ZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJl
cXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0
ZUVFRVBGdlB2UzNfUzlfYkVTQV8KKyAgIGZ1bjpfWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxv
YWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRU
eXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUUKKyAgIGZ1bjpfWk43V2ViQ29y
ZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExvYWRlckUKKyAgIGZ1bjpfWk43V2Vi
Q29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEUKKyAgIGZ1bjp3
ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpCisgICBmdW46X1pMN3J1blRlc3RSS1NzCisgICBmdW46
X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHYKKyAgIGZ1bjptYWluCit9fQorXV0+CisgICAgPC9y
YXd0ZXh0PgorICA8L3N1cHByZXNzaW9uPgorPC9lcnJvcj4KKworPGVycm9yPgorICA8dW5pcXVl
PjB4MWE1PC91bmlxdWU+CisgIDx0aWQ+MTwvdGlkPgorICA8a2luZD5MZWFrX0RlZmluaXRlbHlM
b3N0PC9raW5kPgorICA8eHdoYXQ+CisgICAgPHRleHQ+OCBieXRlcyBpbiAxIGJsb2NrcyBhcmUg
ZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQyMiBvZiA3LDk3MjwvdGV4dD4KKyAgICA8
bGVha2VkYnl0ZXM+ODwvbGVha2VkYnl0ZXM+CisgICAgPGxlYWtlZGJsb2Nrcz4xPC9sZWFrZWRi
bG9ja3M+CisgIDwveHdoYXQ+CisgIDxzdGFjaz4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0
QzJBRjhFPC9pcD4KKyAgICAgIDxvYmo+L3Vzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX21lbWNo
ZWNrLWFtZDY0LWxpbnV4LnNvPC9vYmo+CisgICAgICA8Zm4+X1pud208L2ZuPgorICAgIDwvZnJh
bWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgzOUQwQzwvaXA+CisgICAgICA8b2JqPi9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMu
MC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNl
X21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9saWN5RVJL
TlMxXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TMV8xMlBvbGljeUFjdGlvbkVFUzZfRVVsUzdf
RV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NDX1N0MThfTWFuYWdlcl9vcGVyYXRpb248
L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFFN0IwMzwvaXA+
CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMv
bGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj53ZWJraXRfd2ViX3Bv
bGljeV9kZWNpc2lvbl9uZXc8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAg
PGlwPjB4NjFDQjUyNzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1
aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAg
IDxmbj5fWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDMxZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZUVSS043V2ViQ29yZTE2UmVzb3VyY2VSZXNwb25zZUVSS05TMV8xNVJlc291cmNl
UmVxdWVzdEVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRTwvZm4+CisgICAgPC9m
cmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2ODM5RUMwPC9pcD4KKyAgICAgIDxvYmo+
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGst
My4wLnNvLjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2Vy
MThjaGVja0NvbnRlbnRQb2xpY3lFUktOU18xNlJlc291cmNlUmVzcG9uc2VFUEZ2UHZOU18xMlBv
bGljeUFjdGlvbkVFUzRfPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxp
cD4weDY4MDJGNkU8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zPC9vYmo+CisgICAgICA8
Zm4+X1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVyMTZyZXNwb25zZVJlY2VpdmVkRVBOU18xNENh
Y2hlZFJlc291cmNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRTwvZm4+CisgICAgPC9mcmFtZT4K
KyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg2N0U1OUUwPC9pcD4KKyAgICAgIDxvYmo+L2hvbWUv
dXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNv
LjAuMTkuMzwvb2JqPgorICAgICAgPGZuPl9aTjdXZWJDb3JlMTdDYWNoZWRSYXdSZXNvdXJjZTE2
cmVzcG9uc2VSZWNlaXZlZEVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUU8L2ZuPgorICAgIDwvZnJh
bWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4Njg0QzIzNzwvaXA+CisgICAgICA8b2JqPi9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMu
MC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTE3U3VicmVzb3VyY2VMb2Fk
ZXIxOGRpZFJlY2VpdmVSZXNwb25zZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUU8L2ZuPgorICAg
IDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NkY5NTg0ODwvaXA+CisgICAgICA8
b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0
Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZUwxOXNlbmRSZXF1
ZXN0Q2FsbGJhY2tFUDhfR09iamVjdFAxM19HQXN5bmNSZXN1bHRQdjwvZm4+CisgICAgPC9mcmFt
ZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg4RTJENkNBPC9pcD4KKyAgICAgIDxvYmo+L2hv
bWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Jvb3QvbGliNjQvbGliZ2lv
LTIuMC5zby4wLjM4MDAuMDwvb2JqPgorICAgICAgPGZuPmdfdGFza19yZXR1cm5fbm93PC9mbj4K
KyAgICAgIDxkaXI+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1Nv
dXJjZS9nbGliLTIuMzguMC9naW88L2Rpcj4KKyAgICAgIDxmaWxlPmd0YXNrLmM8L2ZpbGU+Cisg
ICAgICA8bGluZT4xMTA4PC9saW5lPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAg
PGlwPjB4OEUyRDZFODwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1
aWxkL0RlcGVuZGVuY2llcy9Sb290L2xpYjY0L2xpYmdpby0yLjAuc28uMC4zODAwLjA8L29iaj4K
KyAgICAgIDxmbj5jb21wbGV0ZV9pbl9pZGxlX2NiPC9mbj4KKyAgICAgIDxkaXI+L2hvbWUvdXNl
ci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIuMzguMC9naW88
L2Rpcj4KKyAgICAgIDxmaWxlPmd0YXNrLmM8L2ZpbGU+CisgICAgICA8bGluZT4xMTE3PC9saW5l
PgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4OTNBNjJGNDwvaXA+Cisg
ICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Sb290
L2xpYjY0L2xpYmdsaWItMi4wLnNvLjAuMzgwMC4wPC9vYmo+CisgICAgICA8Zm4+Z19tYWluX2Nv
bnRleHRfZGlzcGF0Y2g8L2ZuPgorICAgICAgPGRpcj4vaG9tZS91c2VyL1dlYktpdC9XZWJLaXRC
dWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dsaWI8L2Rpcj4KKyAgICAgIDxm
aWxlPmdtYWluLmM8L2ZpbGU+CisgICAgICA8bGluZT4zMDY1PC9saW5lPgorICAgIDwvZnJhbWU+
CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4OTNBNjYzNzwvaXA+CisgICAgICA8b2JqPi9ob21l
L3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Sb290L2xpYjY0L2xpYmdsaWIt
Mi4wLnNvLjAuMzgwMC4wPC9vYmo+CisgICAgICA8Zm4+Z19tYWluX2NvbnRleHRfaXRlcmF0ZS5p
c3JhLjIzPC9mbj4KKyAgICAgIDxkaXI+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIuMzguMC9nbGliPC9kaXI+CisgICAgICA8ZmlsZT5nbWFp
bi5jPC9maWxlPgorICAgICAgPGxpbmU+MzcxMjwvbGluZT4KKyAgICA8L2ZyYW1lPgorICAgIDxm
cmFtZT4KKyAgICAgIDxpcD4weDkzQTZBOTk8L2lwPgorICAgICAgPG9iaj4vaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvUm9vdC9saWI2NC9saWJnbGliLTIuMC5zby4w
LjM4MDAuMDwvb2JqPgorICAgICAgPGZuPmdfbWFpbl9sb29wX3J1bjwvZm4+CisgICAgICA8ZGly
Pi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0y
LjM4LjAvZ2xpYjwvZGlyPgorICAgICAgPGZpbGU+Z21haW4uYzwvZmlsZT4KKyAgICAgIDxsaW5l
PjM5MDY8L2xpbmU+CisgICAgPC9mcmFtZT4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg4MTIx
MjA0PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5k
ZW5jaWVzL1Jvb3QvbGliNjQvbGliZ3RrLTMuc28uMC42MDAuMDwvb2JqPgorICAgICAgPGZuPmd0
a19tYWluPC9mbj4KKyAgICAgIDxkaXI+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVw
ZW5kZW5jaWVzL1NvdXJjZS9ndGsrLTMuNi4wL2d0azwvZGlyPgorICAgICAgPGZpbGU+Z3RrbWFp
bi5jPC9maWxlPgorICAgICAgPGxpbmU+MTE2MjwvbGluZT4KKyAgICA8L2ZyYW1lPgorICAgIDxm
cmFtZT4KKyAgICAgIDxpcD4weDQ0Q0JDRTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2Vi
S2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWU8L29iaj4KKyAg
ICAgIDxmbj5fWkw3cnVuVGVzdFJLU3M8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgor
ICAgICAgPGlwPjB4NDRDRUQ2PC9pcD4KKyAgICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9EdW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZu
Pl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2PC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFt
ZT4KKyAgICAgIDxpcD4weDQzQTJEMzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWU8L29iaj4KKyAgICAg
IDxmbj5tYWluPC9mbj4KKyAgICA8L2ZyYW1lPgorICA8L3N0YWNrPgorICA8c3VwcHJlc3Npb24+
CisgICAgPHNuYW1lPmluc2VydF9hX3N1cHByZXNzaW9uX25hbWVfaGVyZTwvc25hbWU+CisgICAg
PHNraW5kPk1lbWNoZWNrOkxlYWs8L3NraW5kPgorICAgIDxzZnJhbWU+IDxmdW4+X1pud208L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19C
YXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9saWN5
RVJLTlMxXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TMV8xMlBvbGljeUFjdGlvbkVFUzZfRVVs
UzdfRV9FMTBfTV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NDX1N0MThfTWFuYWdlcl9vcGVyYXRp
b248L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj53ZWJraXRfd2ViX3BvbGljeV9k
ZWNpc2lvbl9uZXc8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk42V2ViS2l0
MTdGcmFtZUxvYWRlckNsaWVudDMxZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZUVSS043
V2ViQ29yZTE2UmVzb3VyY2VSZXNwb25zZUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVTdDhmdW5j
dGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1l
PiA8ZnVuPl9aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktO
U18xNlJlc291cmNlUmVzcG9uc2VFUEZ2UHZOU18xMlBvbGljeUFjdGlvbkVFUzRfPC9mdW4+IDwv
c2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVyMTZy
ZXNwb25zZVJlY2VpdmVkRVBOU18xNENhY2hlZFJlc291cmNlRVJLTlNfMTZSZXNvdXJjZVJlc3Bv
bnNlRTwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVuPl9aTjdXZWJDb3JlMTdDYWNo
ZWRSYXdSZXNvdXJjZTE2cmVzcG9uc2VSZWNlaXZlZEVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUU8
L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTE3U3VicmVzb3Vy
Y2VMb2FkZXIxOGRpZFJlY2VpdmVSZXNwb25zZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUU8L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZUwxOXNlbmRSZXF1ZXN0
Q2FsbGJhY2tFUDhfR09iamVjdFAxM19HQXN5bmNSZXN1bHRQdjwvZnVuPiA8L3NmcmFtZT4KKyAg
ICA8c2ZyYW1lPiA8ZnVuPmdfdGFza19yZXR1cm5fbm93PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxz
ZnJhbWU+IDxmdW4+Y29tcGxldGVfaW5faWRsZV9jYjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2Zy
YW1lPiA8ZnVuPmdfbWFpbl9jb250ZXh0X2Rpc3BhdGNoPC9mdW4+IDwvc2ZyYW1lPgorICAgIDxz
ZnJhbWU+IDxmdW4+Z19tYWluX2NvbnRleHRfaXRlcmF0ZS5pc3JhLjIzPC9mdW4+IDwvc2ZyYW1l
PgorICAgIDxzZnJhbWU+IDxmdW4+Z19tYWluX2xvb3BfcnVuPC9mdW4+IDwvc2ZyYW1lPgorICAg
IDxzZnJhbWU+IDxmdW4+Z3RrX21haW48L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1
bj5fWkw3cnVuVGVzdFJLU3M8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWkwy
MHJ1blRlc3RpbmdTZXJ2ZXJMb29wdjwvZnVuPiA8L3NmcmFtZT4KKyAgICA8c2ZyYW1lPiA8ZnVu
Pm1haW48L2Z1bj4gPC9zZnJhbWU+CisgICAgPHJhd3RleHQ+Cis8IVtDREFUQVsKK3t7CisgICA8
aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPgorICAgTWVtY2hlY2s6TGVhaworICAgZnVu
Ol9abndtCisgICBmdW46X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dl
YkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TMV8xNlJlc291cmNl
UmVzcG9uc2VFUEZ2UHZOUzFfMTJQb2xpY3lBY3Rpb25FRVM2X0VVbFM3X0VfRTEwX01fbWFuYWdl
ckVSU3Q5X0FueV9kYXRhUktTQ19TdDE4X01hbmFnZXJfb3BlcmF0aW9uCisgICBmdW46d2Via2l0
X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3CisgICBmdW46X1pONldlYktpdDE3RnJhbWVMb2FkZXJD
bGllbnQzMWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VFUktON1dlYkNvcmUxNlJlc291
cmNlUmVzcG9uc2VFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQ
b2xpY3lBY3Rpb25FRUUKKyAgIGZ1bjpfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tD
b250ZW50UG9saWN5RVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlNfMTJQb2xpY3lBY3Rp
b25FRVM0XworICAgZnVuOl9aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlcjE2cmVzcG9uc2VSZWNl
aXZlZEVQTlNfMTRDYWNoZWRSZXNvdXJjZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUKKyAgIGZ1
bjpfWk43V2ViQ29yZTE3Q2FjaGVkUmF3UmVzb3VyY2UxNnJlc3BvbnNlUmVjZWl2ZWRFUktOU18x
NlJlc291cmNlUmVzcG9uc2VFCisgICBmdW46X1pON1dlYkNvcmUxN1N1YnJlc291cmNlTG9hZGVy
MThkaWRSZWNlaXZlUmVzcG9uc2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VFCisgICBmdW46X1pO
N1dlYkNvcmVMMTlzZW5kUmVxdWVzdENhbGxiYWNrRVA4X0dPYmplY3RQMTNfR0FzeW5jUmVzdWx0
UHYKKyAgIGZ1bjpnX3Rhc2tfcmV0dXJuX25vdworICAgZnVuOmNvbXBsZXRlX2luX2lkbGVfY2IK
KyAgIGZ1bjpnX21haW5fY29udGV4dF9kaXNwYXRjaAorICAgZnVuOmdfbWFpbl9jb250ZXh0X2l0
ZXJhdGUuaXNyYS4yMworICAgZnVuOmdfbWFpbl9sb29wX3J1bgorICAgZnVuOmd0a19tYWluCisg
ICBmdW46X1pMN3J1blRlc3RSS1NzCisgICBmdW46X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHYK
KyAgIGZ1bjptYWluCit9fQorXV0+CisgICAgPC9yYXd0ZXh0PgorICA8L3N1cHByZXNzaW9uPgor
PC9lcnJvcj4KKworPGVycm9yPgorICA8dW5pcXVlPjB4MWE2PC91bmlxdWU+CisgIDx0aWQ+MTwv
dGlkPgorICA8a2luZD5MZWFrX0RlZmluaXRlbHlMb3N0PC9raW5kPgorICA8eHdoYXQ+CisgICAg
PHRleHQ+OCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVj
b3JkIDQyMyBvZiA3LDk3MjwvdGV4dD4KKyAgICA8bGVha2VkYnl0ZXM+ODwvbGVha2VkYnl0ZXM+
CisgICAgPGxlYWtlZGJsb2Nrcz4xPC9sZWFrZWRibG9ja3M+CisgIDwveHdoYXQ+CisgIDxzdGFj
az4KKyAgICA8ZnJhbWU+CisgICAgICA8aXA+MHg0QzJBRjhFPC9pcD4KKyAgICAgIDxvYmo+L3Vz
ci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX21lbWNoZWNrLWFtZDY0LWxpbnV4LnNvPC9vYmo+Cisg
ICAgICA8Zm4+X1pud208L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlw
PjB4NjgzOURFQzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxk
L1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxm
bj5fWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9saWN5
Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVBO
UzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVBG
dlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJTdDlf
QW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb248L2ZuPgorICAgIDwvZnJhbWU+Cisg
ICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFFN0IwMzwvaXA+CisgICAgICA8b2JqPi9ob21lL3Vz
ZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4w
LjE5LjM8L29iaj4KKyAgICAgIDxmbj53ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXc8L2Zu
PgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFDQkE2RDwvaXA+Cisg
ICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGli
d2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk42V2ViS2l0MTdGcmFt
ZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJL
TjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RG
MTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lB
Y3Rpb25FRUU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4Njgz
REY1MjwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVh
c2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43
V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNv
dXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZv
cm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV88L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1l
PgorICAgICAgPGlwPjB4NjgxN0VGQzwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29i
aj4KKyAgICAgIDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRM
b2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzlGb3JtU3RhdGVFRUU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgor
ICAgICAgPGlwPjB4NjgxODcyOTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dl
YktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4K
KyAgICAgIDxmbj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExv
YWRlckU8L2ZuPgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjgxOEEz
QTwvaXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2Uv
LmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj5fWk43V2Vi
Q29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEU8L2ZuPgorICAg
IDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NjFFMzE0ODwvaXA+CisgICAgICA8
b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0
Z3RrLTMuMC5zby4wLjE5LjM8L29iaj4KKyAgICAgIDxmbj53ZWJraXRfd2ViX2ZyYW1lX2xvYWRf
dXJpPC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQ0Q0M1MDwv
aXA+CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJv
Z3JhbXMvRHVtcFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5fWkw3cnVuVGVzdFJLU3M8L2Zu
PgorICAgIDwvZnJhbWU+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4NDRDRUQ2PC9pcD4KKyAg
ICAgIDxvYmo+L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy9E
dW1wUmVuZGVyVHJlZTwvb2JqPgorICAgICAgPGZuPl9aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2
PC9mbj4KKyAgICA8L2ZyYW1lPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weDQzQTJEMzwvaXA+
CisgICAgICA8b2JqPi9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3Jh
bXMvRHVtcFJlbmRlclRyZWU8L29iaj4KKyAgICAgIDxmbj5tYWluPC9mbj4KKyAgICA8L2ZyYW1l
PgorICA8L3N0YWNrPgorICA8c3VwcHJlc3Npb24+CisgICAgPHNuYW1lPmluc2VydF9hX3N1cHBy
ZXNzaW9uX25hbWVfaGVyZTwvc25hbWU+CisgICAgPHNraW5kPk1lbWNoZWNrOkxlYWs8L3NraW5k
PgorICAgIDxzZnJhbWU+IDxmdW4+X1pud208L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4g
PGZ1bj5fWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFnZXJJWk43V2ViQ29yZTEzUG9s
aWN5Q2hlY2tlcjIxY2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0
RVBOUzFfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVF
RVBGdlB2UzVfU0JfYkVTQ19FVWxOUzFfMTJQb2xpY3lBY3Rpb25FRV9FMTBfTV9tYW5hZ2VyRVJT
dDlfQW55X2RhdGFSS1NJX1N0MThfTWFuYWdlcl9vcGVyYXRpb248L2Z1bj4gPC9zZnJhbWU+Cisg
ICAgPHNmcmFtZT4gPGZ1bj53ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXc8L2Z1bj4gPC9z
ZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZp
Z2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5T
MV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUU8L2Z1bj4g
PC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIx
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1l
bnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVT
QV88L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVM
b2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2FkZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNG
cmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUU8L2Z1bj4gPC9z
ZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVQ
TlNfMTREb2N1bWVudExvYWRlckU8L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5f
Wk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE2RnJhbWVMb2FkUmVxdWVzdEU8L2Z1
bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj53ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJp
PC9mdW4+IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pMN3J1blRlc3RSS1NzPC9mdW4+
IDwvc2ZyYW1lPgorICAgIDxzZnJhbWU+IDxmdW4+X1pMMjBydW5UZXN0aW5nU2VydmVyTG9vcHY8
L2Z1bj4gPC9zZnJhbWU+CisgICAgPHNmcmFtZT4gPGZ1bj5tYWluPC9mdW4+IDwvc2ZyYW1lPgor
ICAgIDxyYXd0ZXh0PgorPCFbQ0RBVEFbCit7eworICAgPGluc2VydF9hX3N1cHByZXNzaW9uX25h
bWVfaGVyZT4KKyAgIE1lbWNoZWNrOkxlYWsKKyAgIGZ1bjpfWm53bQorICAgZnVuOl9aTlN0MTRf
RnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFj
aGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3Vt
ZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9i
RVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJL
U0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbgorICAgZnVuOndlYmtpdF93ZWJfcG9saWN5X2RlY2lz
aW9uX25ldworICAgZnVuOl9aTjZXZWJLaXQxN0ZyYW1lTG9hZGVyQ2xpZW50MzlkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25FUktON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rp
b25FUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3Rh
dGVFRUVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRQorICAgZnVuOl9aTjdXZWJD
b3JlMTNQb2xpY3lDaGVja2VyMjFjaGVja05hdmlnYXRpb25Qb2xpY3lFUktOU18xNVJlc291cmNl
UmVxdWVzdEVQTlNfMTREb2N1bWVudExvYWRlckVOM1dURjEwUGFzc1JlZlB0cklOU185Rm9ybVN0
YXRlRUVFUEZ2UHZTM19TOV9iRVNBXworICAgZnVuOl9aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIy
bG9hZFdpdGhEb2N1bWVudExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9h
ZFR5cGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRQorICAgZnVuOl9aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVyRQorICAgZnVuOl9aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RQorICAgZnVu
OndlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmkKKyAgIGZ1bjpfWkw3cnVuVGVzdFJLU3MKKyAgIGZ1
bjpfWkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdgorICAgZnVuOm1haW4KK319CitdXT4KKyAgICA8
L3Jhd3RleHQ+CisgIDwvc3VwcHJlc3Npb24+Cis8L2Vycm9yPgorCis8ZXJyb3Jjb3VudHM+Cis8
L2Vycm9yY291bnRzPgorCis8c3VwcGNvdW50cz4KKyAgPHBhaXI+CisgICAgPGNvdW50PjEwNzwv
Y291bnQ+CisgICAgPG5hbWU+RmNDb25maWdBcHBGb250QWRkRmlsZSAoVGhpcmQgUGFydHkpPC9u
YW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4yMDk4PC9jb3VudD4KKyAgICA8
bmFtZT5ndGtfaW5pdF9jaGVjayAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxw
YWlyPgorICAgIDxjb3VudD4xPC9jb3VudD4KKyAgICA8bmFtZT5nX3F1YXJrX2Zyb21fc3RhdGlj
X3N0cmluZyAoVGhpcmQgcGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxj
b3VudD4yNzwvY291bnQ+CisgICAgPG5hbWU+RmNDb25maWdQYXJzZUFuZExvYWQgKFRoaXJkIFBh
cnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+ODA8L2NvdW50Pgor
ICAgIDxuYW1lPndlYmtpdEFjY2Vzc2libGVOZXc8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+
CisgICAgPGNvdW50PjE3NzwvY291bnQ+CisgICAgPG5hbWU+Z190aHJlYWRfcHJveHkgKFRoaXJk
IFBhcnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+OTwvY291bnQ+
CisgICAgPG5hbWU+RmNQYXR0ZXJuT2JqZWN0SW5zZXJ0RWx0IDIgKFRoaXJkIFBhcnR5KTwvbmFt
ZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTwvY291bnQ+CisgICAgPG5hbWU+
Z3RrX3dpbmRvd19yZWFsaXplIChUaGlyZCBQYXJ0eSk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBh
aXI+CisgICAgPGNvdW50PjE8L2NvdW50PgorICAgIDxuYW1lPl9fbnNzX2RhdGFiYXNlX2xvb2t1
cCAoVGhpcmQgUGFydHkpPC9uYW1lPgorICA8L3BhaXI+CisgIDxwYWlyPgorICAgIDxjb3VudD4x
PC9jb3VudD4KKyAgICA8bmFtZT5jYWlyb19zZXRfc291cmNlX3N1cmZhY2UgKFRoaXJkIFBhcnR5
KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MjwvY291bnQ+CisgICAg
PG5hbWU+bGliR0wuc28gKFRoaXJkIHBhcnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4K
KyAgICA8Y291bnQ+MTwvY291bnQ+CisgICAgPG5hbWU+Z190YXNrX3J1bl9pbl90aHJlYWQgKFRo
aXJkIFBhcnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MjwvY291
bnQ+CisgICAgPG5hbWU+V1RGOjpUaHJlYWRJZGVudGlmaWVyRGF0YTo6aW5pdGlhbGl6ZSgpIChJ
bnRlbnRpb25hbCk8L25hbWU+CisgIDwvcGFpcj4KKyAgPHBhaXI+CisgICAgPGNvdW50PjE8L2Nv
dW50PgorICAgIDxuYW1lPmd0a19jc3NfcHJvdmlkZXJfbG9hZF9mcm9tX2RhdGEgKFRoaXJkIFBh
cnR5KTwvbmFtZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+MTwvY291bnQ+Cisg
ICAgPG5hbWU+bGliZW5jaGFudC5zbyBuZXcgKFRoaXJkIHBhcnR5KTwvbmFtZT4KKyAgPC9wYWly
PgorPC9zdXBwY291bnRzPgorCis8L3ZhbGdyaW5kb3V0cHV0PgorIiIiLmZvcm1hdChwcm9jZXNz
X25hbWU9cHJvY2Vzc19uYW1lLCBwaWQ9cGlkLCB1dWlkPXV1aWQpCisKKworZGVmIG1ha2VfbW9j
a19pbmNvbXBsZXRlX3ZhbGdyaW5kX291dHB1dChwcm9jZXNzX25hbWUsIHBpZCwgdXVpZCk6Cisg
ICAgcmV0dXJuICIiIjw/eG1sIHZlcnNpb249IjEuMCI/PgorCis8dmFsZ3JpbmRvdXRwdXQ+CisK
Kzxwcm90b2NvbHZlcnNpb24+NDwvcHJvdG9jb2x2ZXJzaW9uPgorPHByb3RvY29sdG9vbD5tZW1j
aGVjazwvcHJvdG9jb2x0b29sPgorCis8cHJlYW1ibGU+CisgIDxsaW5lPk1lbWNoZWNrLCBhIG1l
bW9yeSBlcnJvciBkZXRlY3RvcjwvbGluZT4KKyAgPGxpbmU+Q29weXJpZ2h0IChDKSAyMDAyLTIw
MTEsIGFuZCBHTlUgR1BMJ2QsIGJ5IEp1bGlhbiBTZXdhcmQgZXQgYWwuPC9saW5lPgorICA8bGlu
ZT5Vc2luZyBWYWxncmluZC0zLjcuMCBhbmQgTGliVkVYOyByZXJ1biB3aXRoIC1oIGZvciBjb3B5
cmlnaHQgaW5mbzwvbGluZT4KKyAgPGxpbmU+Q29tbWFuZDogL2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy97cHJvY2Vzc19uYW1lfSAtPC9saW5lPgorPC9wcmVh
bWJsZT4KKworPHBpZD57cGlkfTwvcGlkPgorPHBwaWQ+MTg1Nzc8L3BwaWQ+Cis8dG9vbD5tZW1j
aGVjazwvdG9vbD4KKworPGFyZ3M+CisgIDx2YXJndj4KKyAgICA8ZXhlPi91c3IvYmluL3ZhbGdy
aW5kLmJpbjwvZXhlPgorICAgIDxhcmc+LS10b29sPW1lbWNoZWNrPC9hcmc+CisgICAgPGFyZz4t
LW51bS1jYWxsZXJzPTQwPC9hcmc+CisgICAgPGFyZz4tLWRlbWFuZ2xlPW5vPC9hcmc+CisgICAg
PGFyZz4tLXRyYWNlLWNoaWxkcmVuPW5vPC9hcmc+CisgICAgPGFyZz4tLXNtYy1jaGVjaz1hbGwt
bm9uLWZpbGU8L2FyZz4KKyAgICA8YXJnPi0tbGVhay1jaGVjaz15ZXM8L2FyZz4KKyAgICA8YXJn
Pi0tbGVhay1yZXNvbHV0aW9uPWhpZ2g8L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1wb3NzaWJseS1s
b3N0PW5vPC9hcmc+CisgICAgPGFyZz4tLXNob3ctcmVhY2hhYmxlPW5vPC9hcmc+CisgICAgPGFy
Zz4tLWxlYWstY2hlY2s9ZnVsbDwvYXJnPgorICAgIDxhcmc+LS11bmRlZi12YWx1ZS1lcnJvcnM9
bm88L2FyZz4KKyAgICA8YXJnPi0tZ2VuLXN1cHByZXNzaW9ucz1hbGw8L2FyZz4KKyAgICA8YXJn
Pi0teG1sPXllczwvYXJnPgorICAgIDxhcmc+LS14bWwtZmlsZT0vaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LXtwaWR9LXt1dWlkfS1s
ZWFrcy54bWw8L2FyZz4KKyAgICA8YXJnPi0tc3VwcHJlc3Npb25zPS9ob21lL3VzZXIvV2ViS2l0
L1Rvb2xzL1NjcmlwdHMvdmFsZ3JpbmQvc3VwcHJlc3Npb25zLnR4dDwvYXJnPgorICAgIDxhcmc+
LS1zdXBwcmVzc2lvbnM9L3Vzci9saWIvdmFsZ3JpbmQvZGViaWFuLWxpYmM2LWRiZy5zdXBwPC9h
cmc+CisgIDwvdmFyZ3Y+CisgIDxhcmd2PgorICAgIDxleGU+L2hvbWUvdXNlci9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS9Qcm9ncmFtcy97cHJvY2Vzc19uYW1lfTwvZXhlPgorICAgIDxhcmc+
LTwvYXJnPgorICA8L2FyZ3Y+Cis8L2FyZ3M+CisKKzxzdGF0dXM+CisgIDxzdGF0ZT5SVU5OSU5H
PC9zdGF0ZT4KKyAgPHRpbWU+MDA6MDA6MDA6MDAuMDI0IDwvdGltZT4KKzwvc3RhdHVzPgorIiIi
LmZvcm1hdChwcm9jZXNzX25hbWU9cHJvY2Vzc19uYW1lLCBwaWQ9cGlkLCB1dWlkPXV1aWQpCisK
KworZGVmIG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzKCk6CisgICAgcmV0dXJuICIiIi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTdXBwcmVz
c2lvbnMgdXNlZDoKKyAgY291bnQgbmFtZQorICAgICAgMiBfX25zc19kYXRhYmFzZV9sb29rdXAg
KFRoaXJkIFBhcnR5KQorICAgICAgMiBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UgKFRoaXJkIFBh
cnR5KQorICAgICAgMiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoVGhpcmQgcGFydHkpCisg
ICAgICAyIGdfdGFza19ydW5faW5fdGhyZWFkIChUaGlyZCBQYXJ0eSkKKyAgICAgIDIgZ3RrX2Nz
c19wcm92aWRlcl9sb2FkX2Zyb21fZGF0YSAoVGhpcmQgUGFydHkpCisgICAgICAyIGd0a193aW5k
b3dfcmVhbGl6ZSAoVGhpcmQgUGFydHkpCisgICAgICAyIGxpYmVuY2hhbnQuc28gbmV3IChUaGly
ZCBwYXJ0eSkKKyAgICAgIDQgV1RGOjpUaHJlYWRJZGVudGlmaWVyRGF0YTo6aW5pdGlhbGl6ZSgp
IChJbnRlbnRpb25hbCkKKyAgICAgIDQgbGliR0wuc28gKFRoaXJkIHBhcnR5KQorICAgICAxOCBG
Y1BhdHRlcm5PYmplY3RJbnNlcnRFbHQgMiAoVGhpcmQgUGFydHkpCisgICAgIDU0IEZjQ29uZmln
UGFyc2VBbmRMb2FkIChUaGlyZCBQYXJ0eSkKKyAgICAxNjAgd2Via2l0QWNjZXNzaWJsZU5ldwor
ICAgIDIxNCBGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlIChUaGlyZCBQYXJ0eSkKKyAgICAzNTQgZ190
aHJlYWRfcHJveHkgKFRoaXJkIFBhcnR5KQorICAgNDE5NiBndGtfaW5pdF9jaGVjayAoVGhpcmQg
UGFydHkpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorVmFsZ3JpbmQgZGV0ZWN0ZWQgMiBsZWFrczoKK0xlYWtfRGVmaW5pdGVseUxvc3QKKzgg
Ynl0ZXMgaW4gMSBibG9ja3MgYXJlIGRlZmluaXRlbHkgbG9zdCBpbiBsb3NzIHJlY29yZCA0MjEg
b2YgNyw5NzIKKyAgb3BlcmF0b3IgbmV3KHVuc2lnbmVkIGxvbmcpICgvdXNyL2xpYi92YWxncmlu
ZC92Z3ByZWxvYWRfbWVtY2hlY2stYW1kNjQtbGludXguc28pCisgIHN0ZDo6X0Z1bmN0aW9uX2Jh
c2U6Ol9CYXNlX21hbmFnZXI8V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9u
UG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIHZvaWQgKCopKHZv
aWQqLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6Rm9ybVN0YXRlPiwgYm9vbCksIHZvaWQqKTo6e2xhbWJkYShXZWJDb3JlOjpQb2xpY3lB
Y3Rpb24pIzF9Pjo6X01fbWFuYWdlcihzdGQ6Ol9BbnlfZGF0YSYsIHN0ZDo6X0Z1bmN0aW9uX2Jh
c2U6Ol9CYXNlX21hbmFnZXI8V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9u
UG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIHZvaWQgKCopKHZv
aWQqLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6Rm9ybVN0YXRlPiwgYm9vbCksIHZvaWQqKTo6e2xhbWJkYShXZWJDb3JlOjpQb2xpY3lB
Y3Rpb24pIzF9PiBjb25zdCYsIHN0ZDo6X01hbmFnZXJfb3BlcmF0aW9uKSAoL2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTku
MykKKyAgd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3ICgvaG9tZS91c2VyL1dlYktpdC9X
ZWJLaXRCdWlsZC9SZWxlYXNlLy5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiBjb25zdCYsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBz
dGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYkNvcmU6OlBvbGljeUFjdGlvbik+KSAoL2hvbWUvdXNlci9X
ZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTku
MykKKyAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIHZvaWQgKCopKHZvaWQqLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0
YXRlPiwgYm9vbCksIHZvaWQqKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXZWJD
b3JlOjpGcmFtZUxvYWRUeXBlLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPikg
KC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3Rr
LTMuMC5zby4wLjE5LjMpCisgIFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxp
YnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIFdlYkNvcmU6OkZyYW1lTG9hZGVyOjps
b2FkKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgY29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQv
V2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAg
d2Via2l0X3dlYl9mcmFtZV9sb2FkX3VyaSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQv
UmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgcnVuVGVzdChzdGQ6
OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRv
cjxjaGFyPiA+IGNvbnN0JikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2Uv
UHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUpCisgIHJ1blRlc3RpbmdTZXJ2ZXJMb29wKCkgKC9ob21l
L3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRyZWUp
CisgIG1haW4gKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMv
RHVtcFJlbmRlclRyZWUpCitTdXBwcmVzc2lvbiAoZXJyb3IgaGFzaD0jMDQ0OUQzRUQyNTNGRTFG
OSMpOgorCit7CisgICA8aW5zZXJ0X2Ffc3VwcHJlc3Npb25fbmFtZV9oZXJlPgorICAgTWVtY2hl
Y2s6TGVhaworICAgZnVuOl9abncqCisgICBmdW46X1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFz
ZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlvblBvbGlj
eUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVQTlMxXzE0RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBh
c3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVQRnZQdlM1X1NCX2JFU0NfRVVsTlMxXzEyUG9saWN5
QWN0aW9uRUVfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9kYXRhUktTSV9TdDE4X01hbmFnZXJfb3Bl
cmF0aW9uCisgICBmdW46d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3CisgICBmdW46X1pO
NldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzOWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkVSS043V2ViQ29yZTE2TmF2aWdhdGlvbkFjdGlvbkVSS05TMV8xNVJlc291cmNl
UmVxdWVzdEVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVN0OGZ1bmN0aW9uSUZ2
TlMxXzEyUG9saWN5QWN0aW9uRUVFCisgICBmdW46X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIy
MWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVBOU18xNERvY3Vt
ZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUVQRnZQdlMzX1M5X2JF
U0FfCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjJsb2FkV2l0aERvY3VtZW50TG9h
ZGVyRVBOU18xNERvY3VtZW50TG9hZGVyRU5TXzEzRnJhbWVMb2FkVHlwZUVOM1dURjEwUGFzc1Jl
ZlB0cklOU185Rm9ybVN0YXRlRUVFCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxv
YWRFUE5TXzE0RG9jdW1lbnRMb2FkZXJFCisgICBmdW46X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVy
NGxvYWRFUktOU18xNkZyYW1lTG9hZFJlcXVlc3RFCisgICBmdW46d2Via2l0X3dlYl9mcmFtZV9s
b2FkX3VyaQorICAgZnVuOl9aTDdydW5UZXN0UktTcworICAgZnVuOl9aTDIwcnVuVGVzdGluZ1Nl
cnZlckxvb3B2CisgICBmdW46bWFpbgorfQorCisKK0xlYWtfRGVmaW5pdGVseUxvc3QKKzggYnl0
ZXMgaW4gMSBibG9ja3MgYXJlIGRlZmluaXRlbHkgbG9zdCBpbiBsb3NzIHJlY29yZCA0MjIgb2Yg
Nyw5NzIKKyAgb3BlcmF0b3IgbmV3KHVuc2lnbmVkIGxvbmcpICgvdXNyL2xpYi92YWxncmluZC92
Z3ByZWxvYWRfbWVtY2hlY2stYW1kNjQtbGludXguc28pCisgIHN0ZDo6X0Z1bmN0aW9uX2Jhc2U6
Ol9CYXNlX21hbmFnZXI8V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tDb250ZW50UG9saWN5
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmLCB2b2lkICgqKSh2b2lkKiwgV2ViQ29y
ZTo6UG9saWN5QWN0aW9uKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGljeUFjdGlvbikj
MX0+OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jh
c2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja0NvbnRlbnRQb2xpY3koV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYsIHZvaWQgKCopKHZvaWQqLCBXZWJDb3JlOjpQ
b2xpY3lBY3Rpb24pLCB2b2lkKik6OntsYW1iZGEoV2ViQ29yZTo6UG9saWN5QWN0aW9uKSMxfT4g
Y29uc3QmLCBzdGQ6Ol9NYW5hZ2VyX29wZXJhdGlvbikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktp
dEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIHdlYmtp
dF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldyAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQv
UmVsZWFzZS8ubGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIGNvbnN0JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0Jiwg
c3RkOjpmdW5jdGlvbjx2b2lkIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24pPikgKC9ob21lL3VzZXIv
V2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5
LjMpCisgIFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNrQ29udGVudFBvbGljeShXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0Jiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlBvbGlj
eUFjdGlvbiksIHZvaWQqKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8u
bGlicy9saWJ3ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXI6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UqLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIGNvbnN0JikgKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1Jl
bGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5zby4wLjE5LjMpCisgIFdlYkNvcmU6OkNhY2hl
ZFJhd1Jlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
Y29uc3QmKSAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8ubGlicy9saWJ3
ZWJraXRndGstMy4wLnNvLjAuMTkuMykKKyAgV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0JikgKC9ob21l
L3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvLmxpYnMvbGlid2Via2l0Z3RrLTMuMC5z
by4wLjE5LjMpCisgIFdlYkNvcmU6OnNlbmRSZXF1ZXN0Q2FsbGJhY2soX0dPYmplY3QqLCBfR0Fz
eW5jUmVzdWx0Kiwgdm9pZCopICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNl
Ly5saWJzL2xpYndlYmtpdGd0ay0zLjAuc28uMC4xOS4zKQorICBnX3Rhc2tfcmV0dXJuX25vdyAo
L2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIu
MzguMC9naW8vZ3Rhc2suYzoxMTA4KQorICBjb21wbGV0ZV9pbl9pZGxlX2NiICgvaG9tZS91c2Vy
L1dlYktpdC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dpby9n
dGFzay5jOjExMTcpCisgIGdfbWFpbl9jb250ZXh0X2Rpc3BhdGNoICgvaG9tZS91c2VyL1dlYktp
dC9XZWJLaXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL2dsaWItMi4zOC4wL2dsaWIvZ21haW4u
YzozMDY1KQorICBnX21haW5fY29udGV4dF9pdGVyYXRlLmlzcmEuMjMgKC9ob21lL3VzZXIvV2Vi
S2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2UvZ2xpYi0yLjM4LjAvZ2xpYi9nbWFp
bi5jOjM3MTIpCisgIGdfbWFpbl9sb29wX3J1biAoL2hvbWUvdXNlci9XZWJLaXQvV2ViS2l0QnVp
bGQvRGVwZW5kZW5jaWVzL1NvdXJjZS9nbGliLTIuMzguMC9nbGliL2dtYWluLmM6MzkwNikKKyAg
Z3RrX21haW4gKC9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3Vy
Y2UvZ3RrKy0zLjYuMC9ndGsvZ3RrbWFpbi5jOjExNjIpCisgIHJ1blRlc3Qoc3RkOjpiYXNpY19z
dHJpbmc8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4g
PiBjb25zdCYpICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1z
L0R1bXBSZW5kZXJUcmVlKQorICBydW5UZXN0aW5nU2VydmVyTG9vcCgpICgvaG9tZS91c2VyL1dl
YktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlKQorICBtYWlu
ICgvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5k
ZXJUcmVlKQorU3VwcHJlc3Npb24gKGVycm9yIGhhc2g9IzgzMTNERUIxNkIwNjk0MzgjKToKKwor
eworICAgPGluc2VydF9hX3N1cHByZXNzaW9uX25hbWVfaGVyZT4KKyAgIE1lbWNoZWNrOkxlYWsK
KyAgIGZ1bjpfWm53KgorICAgZnVuOl9aTlN0MTRfRnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdl
cklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktOUzFfMTZS
ZXNvdXJjZVJlc3BvbnNlRVBGdlB2TlMxXzEyUG9saWN5QWN0aW9uRUVTNl9FVWxTN19FX0UxMF9N
X21hbmFnZXJFUlN0OV9BbnlfZGF0YVJLU0NfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbgorICAgZnVu
OndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldworICAgZnVuOl9aTjZXZWJLaXQxN0ZyYW1l
TG9hZGVyQ2xpZW50MzFkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlRVJLTjdXZWJDb3Jl
MTZSZXNvdXJjZVJlc3BvbnNlRVJLTlMxXzE1UmVzb3VyY2VSZXF1ZXN0RVN0OGZ1bmN0aW9uSUZ2
TlMxXzEyUG9saWN5QWN0aW9uRUVFCisgICBmdW46X1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIx
OGNoZWNrQ29udGVudFBvbGljeUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TXzEyUG9s
aWN5QWN0aW9uRUVTNF8KKyAgIGZ1bjpfWk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxNnJlc3Bv
bnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VF
CisgICBmdW46X1pON1dlYkNvcmUxN0NhY2hlZFJhd1Jlc291cmNlMTZyZXNwb25zZVJlY2VpdmVk
RVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRQorICAgZnVuOl9aTjdXZWJDb3JlMTdTdWJyZXNvdXJj
ZUxvYWRlcjE4ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRQorICAg
ZnVuOl9aTjdXZWJDb3JlTDE5c2VuZFJlcXVlc3RDYWxsYmFja0VQOF9HT2JqZWN0UDEzX0dBc3lu
Y1Jlc3VsdFB2CisgICBmdW46Z190YXNrX3JldHVybl9ub3cKKyAgIGZ1bjpjb21wbGV0ZV9pbl9p
ZGxlX2NiCisgICBmdW46Z19tYWluX2NvbnRleHRfZGlzcGF0Y2gKKyAgIGZ1bjpnX21haW5fY29u
dGV4dF9pdGVyYXRlLmlzcmEuMjMKKyAgIGZ1bjpnX21haW5fbG9vcF9ydW4KKyAgIGZ1bjpndGtf
bWFpbgorICAgZnVuOl9aTDdydW5UZXN0UktTcworICAgZnVuOl9aTDIwcnVuVGVzdGluZ1NlcnZl
ckxvb3B2CisgICBmdW46bWFpbgorfQorCisKKyIiIgorCit2YWxncmluZF9vdXRwdXRfY3BwZmls
dF9tYXAgPSB7CisnX1pud20nOiB1J29wZXJhdG9yIG5ldyh1bnNpZ25lZCBsb25nKScsCisnX1pO
U3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpON1dlYkNvcmUxM1BvbGljeUNoZWNr
ZXIyMWNoZWNrTmF2aWdhdGlvblBvbGljeUVSS05TMV8xNVJlc291cmNlUmVxdWVzdEVQTlMxXzE0
RG9jdW1lbnRMb2FkZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlMxXzlGb3JtU3RhdGVFRUVQRnZQdlM1
X1NCX2JFU0NfRVVsTlMxXzEyUG9saWN5QWN0aW9uRUVfRTEwX01fbWFuYWdlckVSU3Q5X0FueV9k
YXRhUktTSV9TdDE4X01hbmFnZXJfb3BlcmF0aW9uJzogdSdzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpf
QmFzZV9tYW5hZ2VyPFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGlj
eShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXZWJDb3JlOjpEb2N1bWVudExvYWRl
ciosIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCB2b2lkICgqKSh2b2lkKiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6
OkZvcm1TdGF0ZT4sIGJvb2wpLCB2b2lkKik6OntsYW1iZGEoV2ViQ29yZTo6UG9saWN5QWN0aW9u
KSMxfT46Ol9NX21hbmFnZXIoc3RkOjpfQW55X2RhdGEmLCBzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpf
QmFzZV9tYW5hZ2VyPFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGlj
eShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXZWJDb3JlOjpEb2N1bWVudExvYWRl
ciosIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCB2b2lkICgqKSh2b2lkKiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6
OkZvcm1TdGF0ZT4sIGJvb2wpLCB2b2lkKik6OntsYW1iZGEoV2ViQ29yZTo6UG9saWN5QWN0aW9u
KSMxfT4gY29uc3QmLCBzdGQ6Ol9NYW5hZ2VyX29wZXJhdGlvbiknLAorJ3dlYmtpdF93ZWJfcG9s
aWN5X2RlY2lzaW9uX25ldyc6IHUnd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3JywKKydf
Wk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDM5ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRVJLTlMxXzE1UmVzb3Vy
Y2VSZXF1ZXN0RU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFU3Q4ZnVuY3Rpb25J
RnZOUzFfMTJQb2xpY3lBY3Rpb25FRUUnOiB1J1dlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJDb3JlOjpOYXZpZ2F0aW9u
QWN0aW9uIGNvbnN0JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2ViQ29yZTo6
UG9saWN5QWN0aW9uKT4pJywKKydfWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjIxY2hlY2tOYXZp
Z2F0aW9uUG9saWN5RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUE5TXzE0RG9jdW1lbnRMb2FkZXJF
TjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRVBGdlB2UzNfUzlfYkVTQV8nOiB1J1dl
YkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgY29uc3QmLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCB2b2lkICgqKSh2b2lkKiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IGNvbnN0JiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGJv
b2wpLCB2b2lkKiknLAorJ19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIybG9hZFdpdGhEb2N1bWVu
dExvYWRlckVQTlNfMTREb2N1bWVudExvYWRlckVOU18xM0ZyYW1lTG9hZFR5cGVFTjNXVEYxMFBh
c3NSZWZQdHJJTlNfOUZvcm1TdGF0ZUVFRSc6IHUnV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRX
aXRoRG9jdW1lbnRMb2FkZXIoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXZWJDb3JlOjpGcmFt
ZUxvYWRUeXBlLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiknLAorJ19aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVBOU18xNERvY3VtZW50TG9hZGVyRSc6IHUnV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKScsCisnX1pON1dl
YkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNkZyYW1lTG9hZFJlcXVlc3RFJzogdSdXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6bG9hZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0IGNvbnN0Jikn
LAorJ3dlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmknOiB1J3dlYmtpdF93ZWJfZnJhbWVfbG9hZF91
cmknLAorJ19aTDdydW5UZXN0UktTcyc6IHUncnVuVGVzdChzdGQ6OmJhc2ljX3N0cmluZzxjaGFy
LCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0Jikn
LAorJ19aTDIwcnVuVGVzdGluZ1NlcnZlckxvb3B2JzogdSdydW5UZXN0aW5nU2VydmVyTG9vcCgp
JywKKydtYWluJzogdSdtYWluJywKKydfWk5TdDE0X0Z1bmN0aW9uX2Jhc2UxM19CYXNlX21hbmFn
ZXJJWk43V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9saWN5RVJLTlMxXzE2
UmVzb3VyY2VSZXNwb25zZUVQRnZQdk5TMV8xMlBvbGljeUFjdGlvbkVFUzZfRVVsUzdfRV9FMTBf
TV9tYW5hZ2VyRVJTdDlfQW55X2RhdGFSS1NDX1N0MThfTWFuYWdlcl9vcGVyYXRpb24nOiB1J3N0
ZDo6X0Z1bmN0aW9uX2Jhc2U6Ol9CYXNlX21hbmFnZXI8V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6
Y2hlY2tDb250ZW50UG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmLCB2b2lk
ICgqKSh2b2lkKiwgV2ViQ29yZTo6UG9saWN5QWN0aW9uKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNv
cmU6OlBvbGljeUFjdGlvbikjMX0+OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpf
RnVuY3Rpb25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVj
a0NvbnRlbnRQb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYsIHZvaWQgKCop
KHZvaWQqLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24pLCB2b2lkKik6OntsYW1iZGEoV2ViQ29yZTo6
UG9saWN5QWN0aW9uKSMxfT4gY29uc3QmLCBzdGQ6Ol9NYW5hZ2VyX29wZXJhdGlvbiknLAorJ3dl
YmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldyc6IHUnd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNp
b25fbmV3JywKKydfWk42V2ViS2l0MTdGcmFtZUxvYWRlckNsaWVudDMxZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZUVSS043V2ViQ29yZTE2UmVzb3VyY2VSZXNwb25zZUVSS05TMV8xNVJl
c291cmNlUmVxdWVzdEVTdDhmdW5jdGlvbklGdk5TMV8xMlBvbGljeUFjdGlvbkVFRSc6IHUnV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IGNvbnN0Jiwgc3RkOjpmdW5jdGlvbjx2b2lkIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24pPiknLAor
J19aTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMThjaGVja0NvbnRlbnRQb2xpY3lFUktOU18xNlJl
c291cmNlUmVzcG9uc2VFUEZ2UHZOU18xMlBvbGljeUFjdGlvbkVFUzRfJzogdSdXZWJDb3JlOjpQ
b2xpY3lDaGVja2VyOjpjaGVja0NvbnRlbnRQb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSBjb25zdCYsIHZvaWQgKCopKHZvaWQqLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24pLCB2b2lkKikn
LAorJ19aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlcjE2cmVzcG9uc2VSZWNlaXZlZEVQTlNfMTRD
YWNoZWRSZXNvdXJjZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUnOiB1J1dlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlKiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYpJywKKydfWk43V2ViQ29yZTE3Q2FjaGVkUmF3
UmVzb3VyY2UxNnJlc3BvbnNlUmVjZWl2ZWRFUktOU18xNlJlc291cmNlUmVzcG9uc2VFJzogdSdX
ZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZChXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIGNvbnN0JiknLAorJ19aTjdXZWJDb3JlMTdTdWJyZXNvdXJjZUxvYWRlcjE4
ZGlkUmVjZWl2ZVJlc3BvbnNlRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRSc6IHUnV2ViQ29yZTo6
U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlIGNvbnN0JiknLAorJ19aTjdXZWJDb3JlTDE5c2VuZFJlcXVlc3RDYWxsYmFja0VQOF9H
T2JqZWN0UDEzX0dBc3luY1Jlc3VsdFB2JzogdSdXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxiYWNr
KF9HT2JqZWN0KiwgX0dBc3luY1Jlc3VsdCosIHZvaWQqKScsCisnZ190YXNrX3JldHVybl9ub3cn
OiB1J2dfdGFza19yZXR1cm5fbm93JywKKydjb21wbGV0ZV9pbl9pZGxlX2NiJzogdSdjb21wbGV0
ZV9pbl9pZGxlX2NiJywKKydnX21haW5fY29udGV4dF9kaXNwYXRjaCc6IHUnZ19tYWluX2NvbnRl
eHRfZGlzcGF0Y2gnLAorJ2dfbWFpbl9jb250ZXh0X2l0ZXJhdGUuaXNyYS4yMyc6IHUnZ19tYWlu
X2NvbnRleHRfaXRlcmF0ZS5pc3JhLjIzJywKKydnX21haW5fbG9vcF9ydW4nOiB1J2dfbWFpbl9s
b29wX3J1bicsCisnZ3RrX21haW4nOiB1J2d0a19tYWluJywKK30KKworCitkZWYgbWFrZV9tb2Nr
X3ZhbGdyaW5kX3Jlc3VsdHNfaW5jb21wbGV0ZSgpOgorICAgIHJldHVybiAiIiJjb3VsZCBub3Qg
cGFyc2UgPD94bWwgdmVyc2lvbj0iMS4wIj8+CisKKzx2YWxncmluZG91dHB1dD4KKworPHByb3Rv
Y29sdmVyc2lvbj40PC9wcm90b2NvbHZlcnNpb24+Cis8cHJvdG9jb2x0b29sPm1lbWNoZWNrPC9w
cm90b2NvbHRvb2w+CisKKzxwcmVhbWJsZT4KKyAgPGxpbmU+TWVtY2hlY2ssIGEgbWVtb3J5IGVy
cm9yIGRldGVjdG9yPC9saW5lPgorICA8bGluZT5Db3B5cmlnaHQgKEMpIDIwMDItMjAxMSwgYW5k
IEdOVSBHUEwnZCwgYnkgSnVsaWFuIFNld2FyZCBldCBhbC48L2xpbmU+CisgIDxsaW5lPlVzaW5n
IFZhbGdyaW5kLTMuNy4wIGFuZCBMaWJWRVg7IHJlcnVuIHdpdGggLWggZm9yIGNvcHlyaWdodCBp
bmZvPC9saW5lPgorICA8bGluZT5Db21tYW5kOiAvaG9tZS91c2VyL1dlYktpdC9XZWJLaXRCdWls
ZC9SZWxlYXNlL1Byb2dyYW1zL0R1bXBSZW5kZXJUcmVlIC08L2xpbmU+Cis8L3ByZWFtYmxlPgor
Cis8cGlkPjI4NTMxPC9waWQ+Cis8cHBpZD4xODU3NzwvcHBpZD4KKzx0b29sPm1lbWNoZWNrPC90
b29sPgorCis8YXJncz4KKyAgPHZhcmd2PgorICAgIDxleGU+L3Vzci9iaW4vdmFsZ3JpbmQuYmlu
PC9leGU+CisgICAgPGFyZz4tLXRvb2w9bWVtY2hlY2s8L2FyZz4KKyAgICA8YXJnPi0tbnVtLWNh
bGxlcnM9NDA8L2FyZz4KKyAgICA8YXJnPi0tZGVtYW5nbGU9bm88L2FyZz4KKyAgICA8YXJnPi0t
dHJhY2UtY2hpbGRyZW49bm88L2FyZz4KKyAgICA8YXJnPi0tc21jLWNoZWNrPWFsbC1ub24tZmls
ZTwvYXJnPgorICAgIDxhcmc+LS1sZWFrLWNoZWNrPXllczwvYXJnPgorICAgIDxhcmc+LS1sZWFr
LXJlc29sdXRpb249aGlnaDwvYXJnPgorICAgIDxhcmc+LS1zaG93LXBvc3NpYmx5LWxvc3Q9bm88
L2FyZz4KKyAgICA8YXJnPi0tc2hvdy1yZWFjaGFibGU9bm88L2FyZz4KKyAgICA8YXJnPi0tbGVh
ay1jaGVjaz1mdWxsPC9hcmc+CisgICAgPGFyZz4tLXVuZGVmLXZhbHVlLWVycm9ycz1ubzwvYXJn
PgorICAgIDxhcmc+LS1nZW4tc3VwcHJlc3Npb25zPWFsbDwvYXJnPgorICAgIDxhcmc+LS14bWw9
eWVzPC9hcmc+CisgICAgPGFyZz4tLXhtbC1maWxlPS9ob21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1
aWxkL1JlbGVhc2UvbGF5b3V0LXRlc3QtcmVzdWx0cy9kcnQtMjg1MzEtZThjN2Q3YjgzYmU0MTFl
MzkwYzlkNDNkN2UwMWJhMDgtbGVha3MueG1sPC9hcmc+CisgICAgPGFyZz4tLXN1cHByZXNzaW9u
cz0vaG9tZS91c2VyL1dlYktpdC9Ub29scy9TY3JpcHRzL3ZhbGdyaW5kL3N1cHByZXNzaW9ucy50
eHQ8L2FyZz4KKyAgICA8YXJnPi0tc3VwcHJlc3Npb25zPS91c3IvbGliL3ZhbGdyaW5kL2RlYmlh
bi1saWJjNi1kYmcuc3VwcDwvYXJnPgorICA8L3Zhcmd2PgorICA8YXJndj4KKyAgICA8ZXhlPi9o
b21lL3VzZXIvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvUHJvZ3JhbXMvRHVtcFJlbmRlclRy
ZWU8L2V4ZT4KKyAgICA8YXJnPi08L2FyZz4KKyAgPC9hcmd2PgorPC9hcmdzPgorCis8c3RhdHVz
PgorICA8c3RhdGU+UlVOTklORzwvc3RhdGU+CisgIDx0aW1lPjAwOjAwOjAwOjAwLjAyNCA8L3Rp
bWU+Cis8L3N0YXR1cz4KKzogbm8gZWxlbWVudCBmb3VuZDogbGluZSA0OSwgY29sdW1uIDAKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTdXBw
cmVzc2lvbnMgdXNlZDoKKyAgY291bnQgbmFtZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIiIgorCisKK2RlZiBtYWtlX21vY2tfdmFsZ3Jp
bmRfcmVzdWx0c19lbXB0eSgpOgorICAgIHJldHVybiAiIiJjb3VsZCBub3QgcGFyc2UgOiBubyBl
bGVtZW50IGZvdW5kOiBsaW5lIDEsIGNvbHVtbiAwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3VwcHJlc3Npb25zIHVzZWQ6CisgIGNvdW50
IG5hbWUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisiIiIKKworCitkZWYgbWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHNfbWlzZm9ybWF0dGVk
KCk6CisgICAgcmV0dXJuICIiImNvdWxkIG5vdCBwYXJzZSBKdW5rIHRoYXQgc2hvdWxkIG5vdCBh
cHBlYXIgaW4gYSB2YWxncmluZCB4bWwgZmlsZTw/eG1sIHZlcnNpb249IjEuMCI/OiBzeW50YXgg
ZXJyb3I6IGxpbmUgMSwgY29sdW1uIDAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTdXBwcmVzc2lvbnMgdXNlZDoKKyAgY291bnQgbmFtZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIi
IgorCisKK2RlZiBtb2NrX3J1bl9jcHBmaWx0X2NvbW1hbmQoYXJncyk6CisgICAgaWYgYXJnc1sw
XSA9PSAnYysrZmlsdCc6CisgICAgICAgIHJldHVybiB2YWxncmluZF9vdXRwdXRfY3BwZmlsdF9t
YXBbYXJnc1syXV0KKyAgICByZXR1cm4gIiIKKworCitjbGFzcyBMZWFrRGV0ZWN0b3JWYWxncmlu
ZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfcGFyc2VfYW5kX3ByaW50
X2xlYWtzX2RldGFpbF9wYXNzKHNlbGYpOgorICAgICAgICBtb2NrX3ZhbGdyaW5kX291dHB1dDEg
PSBtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KCdEdW1wUmVuZGVyVHJlZScsIDI4NTI5LCAnZGI5
MmU0ODQzYmU0MTFlM2JhZTFkNDNkN2UwMWJhMDgnKQorICAgICAgICBtb2NrX3ZhbGdyaW5kX291
dHB1dDIgPSBtYWtlX21vY2tfdmFsZ3JpbmRfb3V0cHV0KCdEdW1wUmVuZGVyVHJlZScsIDI4NTMw
LCAnZGQ3MjEzNDIzYmU0MTFlM2FhN2ZkNDNkN2UwMWJhMDgnKQorICAgICAgICBmaWxlcyA9IHt9
CisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTI5LWRiOTJl
NDg0M2JlNDExZTNiYWUxZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gbW9ja192YWxncmluZF9v
dXRwdXQxCisgICAgICAgIGZpbGVzWycvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMw
LWRkNzIxMzQyM2JlNDExZTNhYTdmZDQzZDdlMDFiYTA4LWxlYWtzLnhtbCddID0gbW9ja192YWxn
cmluZF9vdXRwdXQyCisKKyAgICAgICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0gTGVha0RldGVj
dG9yVmFsZ3JpbmQoTW9ja0V4ZWN1dGl2ZTIocnVuX2NvbW1hbmRfZm49bW9ja19ydW5fY3BwZmls
dF9jb21tYW5kKSwgTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpLCAnL3RtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzLycpCisKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGxl
YWtkZXRlY3Rvcl92YWxncmluZC5wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsLCBbZmlsZXNd
LCBleHBlY3RlZF9sb2dzPW1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzKCkpCisKKyAgICBkZWYg
dGVzdF9wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX2luY29tcGxldGUoc2VsZik6CisgICAg
ICAgIG1vY2tfaW5jb21wbGV0ZV92YWxncmluZF9vdXRwdXQgPSBtYWtlX21vY2tfaW5jb21wbGV0
ZV92YWxncmluZF9vdXRwdXQoJ0R1bXBSZW5kZXJUcmVlJywgMjg1MzEsICdlOGM3ZDdiODNiZTQx
MWUzOTBjOWQ0M2Q3ZTAxYmEwOCcpCisgICAgICAgIGZpbGVzID0ge30KKyAgICAgICAgZmlsZXNb
Jy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9kcnQtMjg1MzEtZThjN2Q3YjgzYmU0MTFlMzkwYzlk
NDNkN2UwMWJhMDgtbGVha3MueG1sJ10gPSBtb2NrX2luY29tcGxldGVfdmFsZ3JpbmRfb3V0cHV0
CisgICAgICAgIGxlYWtkZXRlY3Rvcl92YWxncmluZCA9IExlYWtEZXRlY3RvclZhbGdyaW5kKE1v
Y2tFeGVjdXRpdmUyKCksIE1vY2tGaWxlU3lzdGVtKGZpbGVzKSwgJy90bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy8nKQorCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxm
LCBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbCwgW2Zp
bGVzXSwgZXhwZWN0ZWRfbG9ncz1tYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0c19pbmNvbXBsZXRl
KCkpCisKKyAgICBkZWYgdGVzdF9wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX2VtcHR5KHNl
bGYpOgorICAgICAgICBmaWxlcyA9IHt9CisgICAgICAgIGZpbGVzWycvdG1wL0xvZ3MvbGF5b3V0
LXRlc3QtcmVzdWx0cy9kcnQtMjg1MzItZWJjOWE2YzYzYmU0MTFlMzk5ZDRkNDNkN2UwMWJhMDgt
bGVha3MueG1sJ10gPSAiIgorICAgICAgICBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgPSBMZWFrRGV0
ZWN0b3JWYWxncmluZChNb2NrRXhlY3V0aXZlMigpLCBNb2NrRmlsZVN5c3RlbShmaWxlcyksICcv
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvJykKKworICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNz
ZXJ0X291dHB1dHMoc2VsZiwgbGVha2RldGVjdG9yX3ZhbGdyaW5kLnBhcnNlX2FuZF9wcmludF9s
ZWFrc19kZXRhaWwsIFtmaWxlc10sIGV4cGVjdGVkX2xvZ3M9bWFrZV9tb2NrX3ZhbGdyaW5kX3Jl
c3VsdHNfZW1wdHkoKSkKKworICAgIGRlZiB0ZXN0X3BhcnNlX2FuZF9wcmludF9sZWFrc19kZXRh
aWxfbWlzZm9ybWF0dGVkKHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAg
ICAgIG1pc2Zvcm1hdHRlZF9tb2NrX3ZhbGdyaW5kX291dHB1dCA9ICdKdW5rIHRoYXQgc2hvdWxk
IG5vdCBhcHBlYXIgaW4gYSB2YWxncmluZCB4bWwgZmlsZScgKyBtYWtlX21vY2tfdmFsZ3JpbmRf
b3V0cHV0KCdEdW1wUmVuZGVyVHJlZScsIDI4NTMzLCAnZmE2ZDBjZDYzYmU0MTFlMzljNzJkNDNk
N2UwMWJhMDgnKVs6MjBdCisgICAgICAgIGZpbGVzID0ge30KKyAgICAgICAgZmlsZXNbJy90bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9kcnQtMjg1MzMtZmE2ZDBjZDYzYmU0MTFlMzljNzJkNDNkN2Uw
MWJhMDgtbGVha3MueG1sJ10gPSBtaXNmb3JtYXR0ZWRfbW9ja192YWxncmluZF9vdXRwdXQKKyAg
ICAgICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0gTGVha0RldGVjdG9yVmFsZ3JpbmQoTW9ja0V4
ZWN1dGl2ZTIoKSwgTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpLCAnL3RtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzLycpCisKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGxl
YWtkZXRlY3Rvcl92YWxncmluZC5wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsLCBbZmlsZXNd
LCBleHBlY3RlZF9sb2dzPW1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCgp
KQo=
</data>
<flag name="review"
          id="244877"
          type_id="1"
          status="+"
          setter="alex"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>221057</attachid>
            <date>2014-01-13 09:54:42 -0800</date>
            <delta_ts>2014-01-13 09:54:42 -0800</delta_ts>
            <desc>Diff from previous r+&apos;ed patch</desc>
            <filename>diff_for_Alex.txt</filename>
            <type>text/plain</type>
            <size>12968</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmNmVj
NTI0Li42NDQyNmZjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDQgKzEsNCBAQAotMjAxNC0wMS0xMyAgQnJpYW4gSG9sdCAgPGJyaWFuLmhv
bHRAc2Ftc3VuZy5jb20+CisyMDE0LTAxLTAyICBCcmlhbiBIb2x0ICA8YnJpYW4uaG9sdEBzYW1z
dW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBQYXJzZSBWYWxncmluZCB4bWwgbGVhayBmaWxlcwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDQ2CkBA
IC00MSw2ICs0MSw3IEBACiAgICAgICAgIChtYWtlX21vY2tfdmFsZ3JpbmRfcmVzdWx0c19pbmNv
bXBsZXRlKToKICAgICAgICAgKG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX2VtcHR5KToKICAg
ICAgICAgKG1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCk6CisgICAgICAg
IChtb2NrX3J1bl9jcHBmaWx0X2NvbW1hbmQpOgogICAgICAgICAoTGVha0RldGVjdG9yVmFsZ3Jp
bmRUZXN0KToKICAgICAgICAgKExlYWtEZXRlY3RvclZhbGdyaW5kVGVzdC50ZXN0X3BhcnNlX2Fu
ZF9wcmludF9sZWFrc19kZXRhaWxfcGFzcyk6CiAgICAgICAgIChMZWFrRGV0ZWN0b3JWYWxncmlu
ZFRlc3QudGVzdF9wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsX2luY29tcGxldGUpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9ndGsucHkKaW5kZXggMGQ1ZDc4NC4uZjNhZmM0ZSAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvZ3RrLnB5CkBAIC00Nyw5ICs0Nyw5IEBAIGNsYXNzIEd0a1BvcnQoUG9y
dCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIHN1
cGVyKEd0a1BvcnQsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKICAgICAgICAgc2Vs
Zi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIgPSBQdWxzZUF1ZGlvU2FuaXRpemVyKCkKLSAgICAgICAg
c2VsZi5fbGVha2RldGVjdG9yID0gTGVha0RldGVjdG9yVmFsZ3JpbmQoc2VsZi5fZmlsZXN5c3Rl
bSwgc2VsZi5yZXN1bHRzX2RpcmVjdG9yeSgpKQogCiAgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlv
bigibGVha3MiKToKKyAgICAgICAgICAgIHNlbGYuX2xlYWtkZXRlY3RvciA9IExlYWtEZXRlY3Rv
clZhbGdyaW5kKHNlbGYuX2V4ZWN1dGl2ZSwgc2VsZi5fZmlsZXN5c3RlbSwgc2VsZi5yZXN1bHRz
X2RpcmVjdG9yeSgpKQogICAgICAgICAgICAgaWYgbm90IHNlbGYuZ2V0X29wdGlvbigid3JhcHBl
ciIpOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3VzZSAtLXdyYXBwZXI9XCJ2
YWxncmluZFwiIGZvciBtZW1vcnkgbGVhayBkZXRlY3Rpb24gb24gR1RLJykKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucHkKaW5k
ZXggNDVjNWY5Mi4uZDA2MThhOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2xlYWtkZXRlY3Rvcl92YWxncmluZC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvbGVha2RldGVjdG9yX3ZhbGdyaW5kLnB5CkBAIC04Myw3ICs4Myw4IEBAIGRlZiBnYXRo
ZXJfZnJhbWVzKG5vZGUsIHNvdXJjZV9kaXIpOgogCiBjbGFzcyBWYWxncmluZEVycm9yOgogCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZV9kaXIsIGVycm9yX25vZGUpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBleGVjdXRpdmUsIHNvdXJjZV9kaXIsIGVycm9yX25vZGUpOgorICAgICAg
ICBzZWxmLl9leGVjdXRpdmUgPSBleGVjdXRpdmUKICAgICAgICAgc2VsZi5fa2luZCA9IGdldF90
ZXh0X29mKGVycm9yX25vZGUsICJraW5kIikKICAgICAgICAgc2VsZi5fYmFja3RyYWNlcyA9IFtd
CiAgICAgICAgIHNlbGYuX3N1cHByZXNzaW9uID0gTm9uZQpAQCAtMTIxLDE2ICsxMjIsMTMgQEAg
Y2xhc3MgVmFsZ3JpbmRFcnJvcjoKICAgICAgICAgb3V0cHV0ID0gc2VsZi5fa2luZCArICJcbiIK
ICAgICAgICAgZm9yIGJhY2t0cmFjZSBpbiBzZWxmLl9iYWNrdHJhY2VzOgogICAgICAgICAgICAg
b3V0cHV0ICs9IGJhY2t0cmFjZVswXSArICJcbiIKLSAgICAgICAgICAgIGZpbHRlciA9IHN1YnBy
b2Nlc3MuUG9wZW4oImMrK2ZpbHQgLW4iLCBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNU
RE9VVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlbGw9VHJ1ZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2Zkcz1UcnVlKQor
CiAgICAgICAgICAgICBidWYgPSAiIgogICAgICAgICAgICAgZm9yIGZyYW1lIGluIGJhY2t0cmFj
ZVsxXToKICAgICAgICAgICAgICAgICBidWYgKz0gKGZyYW1lW0ZVTkNUSU9OX05BTUVdIG9yIGZy
YW1lW0lOU1RSVUNUSU9OX1BPSU5URVJdKSArICJcbiIKLSAgICAgICAgICAgIChzdGRvdXRidWYs
IHN0ZGVycmJ1ZikgPSBmaWx0ZXIuY29tbXVuaWNhdGUoYnVmLmVuY29kZSgnbGF0aW4tMScpKQot
ICAgICAgICAgICAgZGVtYW5nbGVkX25hbWVzID0gc3Rkb3V0YnVmLnNwbGl0KCJcbiIpCisKKyAg
ICAgICAgICAgIGlucHV0ID0gYnVmLmVuY29kZSgnbGF0aW4tMScpLnNwbGl0KCJcbiIpCisgICAg
ICAgICAgICBkZW1hbmdsZWRfbmFtZXMgPSBbc2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsn
YysrZmlsdCcsICctbicsIG5hbWVdKSBmb3IgbmFtZSBpbiBpbnB1dCBpZiBuYW1lXQogCiAgICAg
ICAgICAgICBpID0gMAogICAgICAgICAgICAgZm9yIGZyYW1lIGluIGJhY2t0cmFjZVsxXToKQEAg
LTIwOSw3ICsyMDcsOCBAQCBjbGFzcyBWYWxncmluZEVycm9yOgogCiBjbGFzcyBMZWFrRGV0ZWN0
b3JWYWxncmluZChvYmplY3QpOgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVzeXN0ZW0s
IHNvdXJjZV9kaXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRpdmUsIGZpbGVzeXN0
ZW0sIHNvdXJjZV9kaXIpOgorICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBleGVjdXRpdmUKICAg
ICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0KICAgICAgICAgc2VsZi5fc291cmNl
X2RpciA9IHNvdXJjZV9kaXIKIApAQCAtMjQ0LDcgKzI0Myw3IEBAIGNsYXNzIExlYWtEZXRlY3Rv
clZhbGdyaW5kKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgKGdldF90ZXh0X29mKHJhd19lcnJv
ciwgImtpbmQiKSAhPSAiTGVha19TdGlsbFJlYWNoYWJsZSIpIGFuZCBcCiAgICAgICAgICAgICAg
ICAgKGdldF90ZXh0X29mKHJhd19lcnJvciwgImtpbmQiKSAhPSAiSW52YWxpZFdyaXRlIikgYW5k
IFwKICAgICAgICAgICAgICAgICAoZ2V0X3RleHRfb2YocmF3X2Vycm9yLCAia2luZCIpICE9ICJJ
bnZhbGlkUmVhZCIpOgotICAgICAgICAgICAgICAgIGVycm9yID0gVmFsZ3JpbmRFcnJvcihzZWxm
Ll9zb3VyY2VfZGlyLCByYXdfZXJyb3IpCisgICAgICAgICAgICAgICAgZXJyb3IgPSBWYWxncmlu
ZEVycm9yKHNlbGYuX2V4ZWN1dGl2ZSwgc2VsZi5fc291cmNlX2RpciwgcmF3X2Vycm9yKQogICAg
ICAgICAgICAgICAgIGlmIGVycm9yIG5vdCBpbiBjdXJfcmVwb3J0X2Vycm9yczoKICAgICAgICAg
ICAgICAgICAgICAgIyBXZSBoYXZlbid0IHNlZW4gc3VjaCBlcnJvcnMgZG9pbmcgdGhpcyByZXBv
cnQgeWV0Li4uCiAgICAgICAgICAgICAgICAgICAgIGlmIGVycm9yIGluIHNlbGYuX2Vycm9yczoK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFs
Z3JpbmRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVj
dG9yX3ZhbGdyaW5kX3VuaXR0ZXN0LnB5CmluZGV4IDYzMGRjYmEuLjRjNmVjYzcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdmFsZ3JpbmRfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvcl92
YWxncmluZF91bml0dGVzdC5weQpAQCAtMjYsNiArMjYsNyBAQAogaW1wb3J0IGxvZ2dpbmcKIGlt
cG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlMgogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBm
cm9tIHdlYmtpdHB5LnBvcnQubGVha2RldGVjdG9yX3ZhbGdyaW5kIGltcG9ydCBMZWFrRGV0ZWN0
b3JWYWxncmluZApAQCAtNjk5LDYgKzcwMCwzNSBAQCBTdXBwcmVzc2lvbiAoZXJyb3IgaGFzaD0j
ODMxM0RFQjE2QjA2OTQzOCMpOgogCiAiIiIKIAordmFsZ3JpbmRfb3V0cHV0X2NwcGZpbHRfbWFw
ID0geworJ19abndtJzogdSdvcGVyYXRvciBuZXcodW5zaWduZWQgbG9uZyknLAorJ19aTlN0MTRf
RnVuY3Rpb25fYmFzZTEzX0Jhc2VfbWFuYWdlcklaTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyMjFj
aGVja05hdmlnYXRpb25Qb2xpY3lFUktOUzFfMTVSZXNvdXJjZVJlcXVlc3RFUE5TMV8xNERvY3Vt
ZW50TG9hZGVyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Rm9ybVN0YXRlRUVFUEZ2UHZTNV9TQl9i
RVNDX0VVbE5TMV8xMlBvbGljeUFjdGlvbkVFX0UxMF9NX21hbmFnZXJFUlN0OV9BbnlfZGF0YVJL
U0lfU3QxOF9NYW5hZ2VyX29wZXJhdGlvbic6IHUnc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2Vf
bWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3Jt
U3RhdGU+LCBib29sKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGljeUFjdGlvbikjMX0+
OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2Vf
bWFuYWdlcjxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3Jt
U3RhdGU+LCBib29sKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGljeUFjdGlvbikjMX0+
IGNvbnN0Jiwgc3RkOjpfTWFuYWdlcl9vcGVyYXRpb24pJywKKyd3ZWJraXRfd2ViX3BvbGljeV9k
ZWNpc2lvbl9uZXcnOiB1J3dlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldycsCisnX1pONldl
YktpdDE3RnJhbWVMb2FkZXJDbGllbnQzOWRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkVSS043V2ViQ29yZTE2TmF2aWdhdGlvbkFjdGlvbkVSS05TMV8xNVJlc291cmNlUmVx
dWVzdEVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUZvcm1TdGF0ZUVFRVN0OGZ1bmN0aW9uSUZ2TlMx
XzEyUG9saWN5QWN0aW9uRUVFJzogdSdXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biBjb25zdCYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYkNvcmU6OlBvbGlj
eUFjdGlvbik+KScsCisnX1pON1dlYkNvcmUxM1BvbGljeUNoZWNrZXIyMWNoZWNrTmF2aWdhdGlv
blBvbGljeUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVBOU18xNERvY3VtZW50TG9hZGVyRU4zV1RG
MTBQYXNzUmVmUHRySU5TXzlGb3JtU3RhdGVFRUVQRnZQdlMzX1M5X2JFU0FfJzogdSdXZWJDb3Jl
OjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6Rm9ybVN0YXRlPiwgdm9pZCAoKikodm9pZCosIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCBjb25zdCYsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBib29sKSwg
dm9pZCopJywKKydfWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMmxvYWRXaXRoRG9jdW1lbnRMb2Fk
ZXJFUE5TXzE0RG9jdW1lbnRMb2FkZXJFTlNfMTNGcmFtZUxvYWRUeXBlRU4zV1RGMTBQYXNzUmVm
UHRySU5TXzlGb3JtU3RhdGVFRUUnOiB1J1dlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkV2l0aERv
Y3VtZW50TG9hZGVyKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgV2ViQ29yZTo6RnJhbWVMb2Fk
VHlwZSwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4pJywKKydfWk43V2ViQ29y
ZTExRnJhbWVMb2FkZXI0bG9hZEVQTlNfMTREb2N1bWVudExvYWRlckUnOiB1J1dlYkNvcmU6OkZy
YW1lTG9hZGVyOjpsb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiknLAorJ19aTjdXZWJDb3Jl
MTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RSc6IHUnV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCBjb25zdCYpJywKKyd3
ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpJzogdSd3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpJywK
KydfWkw3cnVuVGVzdFJLU3MnOiB1J3J1blRlc3Qoc3RkOjpiYXNpY19zdHJpbmc8Y2hhciwgc3Rk
OjpjaGFyX3RyYWl0czxjaGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCYpJywKKydf
WkwyMHJ1blRlc3RpbmdTZXJ2ZXJMb29wdic6IHUncnVuVGVzdGluZ1NlcnZlckxvb3AoKScsCisn
bWFpbic6IHUnbWFpbicsCisnX1pOU3QxNF9GdW5jdGlvbl9iYXNlMTNfQmFzZV9tYW5hZ2VySVpO
N1dlYkNvcmUxM1BvbGljeUNoZWNrZXIxOGNoZWNrQ29udGVudFBvbGljeUVSS05TMV8xNlJlc291
cmNlUmVzcG9uc2VFUEZ2UHZOUzFfMTJQb2xpY3lBY3Rpb25FRVM2X0VVbFM3X0VfRTEwX01fbWFu
YWdlckVSU3Q5X0FueV9kYXRhUktTQ19TdDE4X01hbmFnZXJfb3BlcmF0aW9uJzogdSdzdGQ6Ol9G
dW5jdGlvbl9iYXNlOjpfQmFzZV9tYW5hZ2VyPFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNr
Q29udGVudFBvbGljeShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIGNvbnN0Jiwgdm9pZCAoKiko
dm9pZCosIFdlYkNvcmU6OlBvbGljeUFjdGlvbiksIHZvaWQqKTo6e2xhbWJkYShXZWJDb3JlOjpQ
b2xpY3lBY3Rpb24pIzF9Pjo6X01fbWFuYWdlcihzdGQ6Ol9BbnlfZGF0YSYsIHN0ZDo6X0Z1bmN0
aW9uX2Jhc2U6Ol9CYXNlX21hbmFnZXI8V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tDb250
ZW50UG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29uc3QmLCB2b2lkICgqKSh2b2lk
KiwgV2ViQ29yZTo6UG9saWN5QWN0aW9uKSwgdm9pZCopOjp7bGFtYmRhKFdlYkNvcmU6OlBvbGlj
eUFjdGlvbikjMX0+IGNvbnN0Jiwgc3RkOjpfTWFuYWdlcl9vcGVyYXRpb24pJywKKyd3ZWJraXRf
d2ViX3BvbGljeV9kZWNpc2lvbl9uZXcnOiB1J3dlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25l
dycsCisnX1pONldlYktpdDE3RnJhbWVMb2FkZXJDbGllbnQzMWRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VFUktON1dlYkNvcmUxNlJlc291cmNlUmVzcG9uc2VFUktOUzFfMTVSZXNvdXJj
ZVJlcXVlc3RFU3Q4ZnVuY3Rpb25JRnZOUzFfMTJQb2xpY3lBY3Rpb25FRUUnOiB1J1dlYktpdDo6
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSBjb25zdCYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25z
dCYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2ViQ29yZTo6UG9saWN5QWN0aW9uKT4pJywKKydfWk43
V2ViQ29yZTEzUG9saWN5Q2hlY2tlcjE4Y2hlY2tDb250ZW50UG9saWN5RVJLTlNfMTZSZXNvdXJj
ZVJlc3BvbnNlRVBGdlB2TlNfMTJQb2xpY3lBY3Rpb25FRVM0Xyc6IHUnV2ViQ29yZTo6UG9saWN5
Q2hlY2tlcjo6Y2hlY2tDb250ZW50UG9saWN5KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29u
c3QmLCB2b2lkICgqKSh2b2lkKiwgV2ViQ29yZTo6UG9saWN5QWN0aW9uKSwgdm9pZCopJywKKydf
Wk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxNnJlc3BvbnNlUmVjZWl2ZWRFUE5TXzE0Q2FjaGVk
UmVzb3VyY2VFUktOU18xNlJlc291cmNlUmVzcG9uc2VFJzogdSdXZWJDb3JlOjpEb2N1bWVudExv
YWRlcjo6cmVzcG9uc2VSZWNlaXZlZChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSosIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgY29uc3QmKScsCisnX1pON1dlYkNvcmUxN0NhY2hlZFJhd1Jlc291
cmNlMTZyZXNwb25zZVJlY2VpdmVkRVJLTlNfMTZSZXNvdXJjZVJlc3BvbnNlRSc6IHUnV2ViQ29y
ZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSBjb25zdCYpJywKKydfWk43V2ViQ29yZTE3U3VicmVzb3VyY2VMb2FkZXIxOGRpZFJl
Y2VpdmVSZXNwb25zZUVSS05TXzE2UmVzb3VyY2VSZXNwb25zZUUnOiB1J1dlYkNvcmU6OlN1YnJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSBjb25zdCYpJywKKydfWk43V2ViQ29yZUwxOXNlbmRSZXF1ZXN0Q2FsbGJhY2tFUDhfR09iamVj
dFAxM19HQXN5bmNSZXN1bHRQdic6IHUnV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayhfR09i
amVjdCosIF9HQXN5bmNSZXN1bHQqLCB2b2lkKiknLAorJ2dfdGFza19yZXR1cm5fbm93JzogdSdn
X3Rhc2tfcmV0dXJuX25vdycsCisnY29tcGxldGVfaW5faWRsZV9jYic6IHUnY29tcGxldGVfaW5f
aWRsZV9jYicsCisnZ19tYWluX2NvbnRleHRfZGlzcGF0Y2gnOiB1J2dfbWFpbl9jb250ZXh0X2Rp
c3BhdGNoJywKKydnX21haW5fY29udGV4dF9pdGVyYXRlLmlzcmEuMjMnOiB1J2dfbWFpbl9jb250
ZXh0X2l0ZXJhdGUuaXNyYS4yMycsCisnZ19tYWluX2xvb3BfcnVuJzogdSdnX21haW5fbG9vcF9y
dW4nLAorJ2d0a19tYWluJzogdSdndGtfbWFpbicsCit9CisKIAogZGVmIG1ha2VfbW9ja192YWxn
cmluZF9yZXN1bHRzX2luY29tcGxldGUoKToKICAgICByZXR1cm4gIiIiY291bGQgbm90IHBhcnNl
IDw/eG1sIHZlcnNpb249IjEuMCI/PgpAQCAtNzc1LDYgKzgwNSwxMiBAQCBTdXBwcmVzc2lvbnMg
dXNlZDoKICIiIgogCiAKK2RlZiBtb2NrX3J1bl9jcHBmaWx0X2NvbW1hbmQoYXJncyk6CisgICAg
aWYgYXJnc1swXSA9PSAnYysrZmlsdCc6CisgICAgICAgIHJldHVybiB2YWxncmluZF9vdXRwdXRf
Y3BwZmlsdF9tYXBbYXJnc1syXV0KKyAgICByZXR1cm4gIiIKKworCiBjbGFzcyBMZWFrRGV0ZWN0
b3JWYWxncmluZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfcGFyc2Vf
YW5kX3ByaW50X2xlYWtzX2RldGFpbF9wYXNzKHNlbGYpOgpAQCAtNzgzLDcgKzgxOSw4IEBAIGNs
YXNzIExlYWtEZXRlY3RvclZhbGdyaW5kVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IGZpbGVzID0ge30KICAgICAgICAgZmlsZXNbJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9kcnQt
Mjg1MjktZGI5MmU0ODQzYmU0MTFlM2JhZTFkNDNkN2UwMWJhMDgtbGVha3MueG1sJ10gPSBtb2Nr
X3ZhbGdyaW5kX291dHB1dDEKICAgICAgICAgZmlsZXNbJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9kcnQtMjg1MzAtZGQ3MjEzNDIzYmU0MTFlM2FhN2ZkNDNkN2UwMWJhMDgtbGVha3MueG1sJ10g
PSBtb2NrX3ZhbGdyaW5kX291dHB1dDIKLSAgICAgICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0g
TGVha0RldGVjdG9yVmFsZ3JpbmQoTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpLCAnL3RtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzLycpCisKKyAgICAgICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0gTGVha0Rl
dGVjdG9yVmFsZ3JpbmQoTW9ja0V4ZWN1dGl2ZTIocnVuX2NvbW1hbmRfZm49bW9ja19ydW5fY3Bw
ZmlsdF9jb21tYW5kKSwgTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpLCAnL3RtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzLycpCiAKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYs
IGxlYWtkZXRlY3Rvcl92YWxncmluZC5wYXJzZV9hbmRfcHJpbnRfbGVha3NfZGV0YWlsLCBbZmls
ZXNdLCBleHBlY3RlZF9sb2dzPW1ha2VfbW9ja192YWxncmluZF9yZXN1bHRzKCkpCiAKQEAgLTc5
MSwxNCArODI4LDE0IEBAIGNsYXNzIExlYWtEZXRlY3RvclZhbGdyaW5kVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIG1vY2tfaW5jb21wbGV0ZV92YWxncmluZF9vdXRwdXQgPSBtYWtl
X21vY2tfaW5jb21wbGV0ZV92YWxncmluZF9vdXRwdXQoJ0R1bXBSZW5kZXJUcmVlJywgMjg1MzEs
ICdlOGM3ZDdiODNiZTQxMWUzOTBjOWQ0M2Q3ZTAxYmEwOCcpCiAgICAgICAgIGZpbGVzID0ge30K
ICAgICAgICAgZmlsZXNbJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9kcnQtMjg1MzEtZThjN2Q3
YjgzYmU0MTFlMzkwYzlkNDNkN2UwMWJhMDgtbGVha3MueG1sJ10gPSBtb2NrX2luY29tcGxldGVf
dmFsZ3JpbmRfb3V0cHV0Ci0gICAgICAgIGxlYWtkZXRlY3Rvcl92YWxncmluZCA9IExlYWtEZXRl
Y3RvclZhbGdyaW5kKE1vY2tGaWxlU3lzdGVtKGZpbGVzKSwgJy90bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy8nKQorICAgICAgICBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQgPSBMZWFrRGV0ZWN0b3JWYWxn
cmluZChNb2NrRXhlY3V0aXZlMigpLCBNb2NrRmlsZVN5c3RlbShmaWxlcyksICcvdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvJykKIAogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1
dHMoc2VsZiwgbGVha2RldGVjdG9yX3ZhbGdyaW5kLnBhcnNlX2FuZF9wcmludF9sZWFrc19kZXRh
aWwsIFtmaWxlc10sIGV4cGVjdGVkX2xvZ3M9bWFrZV9tb2NrX3ZhbGdyaW5kX3Jlc3VsdHNfaW5j
b21wbGV0ZSgpKQogCiAgICAgZGVmIHRlc3RfcGFyc2VfYW5kX3ByaW50X2xlYWtzX2RldGFpbF9l
bXB0eShzZWxmKToKICAgICAgICAgZmlsZXMgPSB7fQogICAgICAgICBmaWxlc1snL3RtcC9Mb2dz
L2xheW91dC10ZXN0LXJlc3VsdHMvZHJ0LTI4NTMyLWViYzlhNmM2M2JlNDExZTM5OWQ0ZDQzZDdl
MDFiYTA4LWxlYWtzLnhtbCddID0gIiIKLSAgICAgICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0g
TGVha0RldGVjdG9yVmFsZ3JpbmQoTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpLCAnL3RtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzLycpCisgICAgICAgIGxlYWtkZXRlY3Rvcl92YWxncmluZCA9IExlYWtEZXRl
Y3RvclZhbGdyaW5kKE1vY2tFeGVjdXRpdmUyKCksIE1vY2tGaWxlU3lzdGVtKGZpbGVzKSwgJy90
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy8nKQogCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBsZWFrZGV0ZWN0b3JfdmFsZ3JpbmQucGFyc2VfYW5kX3ByaW50X2xl
YWtzX2RldGFpbCwgW2ZpbGVzXSwgZXhwZWN0ZWRfbG9ncz1tYWtlX21vY2tfdmFsZ3JpbmRfcmVz
dWx0c19lbXB0eSgpKQogCkBAIC04MDcsNiArODQ0LDYgQEAgY2xhc3MgTGVha0RldGVjdG9yVmFs
Z3JpbmRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgbWlzZm9ybWF0dGVkX21vY2tf
dmFsZ3JpbmRfb3V0cHV0ID0gJ0p1bmsgdGhhdCBzaG91bGQgbm90IGFwcGVhciBpbiBhIHZhbGdy
aW5kIHhtbCBmaWxlJyArIG1ha2VfbW9ja192YWxncmluZF9vdXRwdXQoJ0R1bXBSZW5kZXJUcmVl
JywgMjg1MzMsICdmYTZkMGNkNjNiZTQxMWUzOWM3MmQ0M2Q3ZTAxYmEwOCcpWzoyMF0KICAgICAg
ICAgZmlsZXMgPSB7fQogICAgICAgICBmaWxlc1snL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Ry
dC0yODUzMy1mYTZkMGNkNjNiZTQxMWUzOWM3MmQ0M2Q3ZTAxYmEwOC1sZWFrcy54bWwnXSA9IG1p
c2Zvcm1hdHRlZF9tb2NrX3ZhbGdyaW5kX291dHB1dAotICAgICAgICBsZWFrZGV0ZWN0b3JfdmFs
Z3JpbmQgPSBMZWFrRGV0ZWN0b3JWYWxncmluZChNb2NrRmlsZVN5c3RlbShmaWxlcyksICcvdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvJykKKyAgICAgICAgbGVha2RldGVjdG9yX3ZhbGdyaW5kID0g
TGVha0RldGVjdG9yVmFsZ3JpbmQoTW9ja0V4ZWN1dGl2ZTIoKSwgTW9ja0ZpbGVTeXN0ZW0oZmls
ZXMpLCAnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzLycpCiAKICAgICAgICAgT3V0cHV0Q2FwdHVy
ZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGxlYWtkZXRlY3Rvcl92YWxncmluZC5wYXJzZV9hbmRf
cHJpbnRfbGVha3NfZGV0YWlsLCBbZmlsZXNdLCBleHBlY3RlZF9sb2dzPW1ha2VfbW9ja192YWxn
cmluZF9yZXN1bHRzX21pc2Zvcm1hdHRlZCgpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>