<?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>84446</bug_id>
          
          <creation_ts>2012-04-20 06:32:18 -0700</creation_ts>
          <short_desc>[GTK] Build and run TestWebKitAPI WebKit2 unit tests</short_desc>
          <delta_ts>2012-04-26 07:47:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>84325</dependson>
          <blocked>84868</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>606544</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-20 06:32:18 -0700</bug_when>
    <thetext>Bug #84325 adds support to build a and run TestWebKitAPI, but it only adds WTF unit tests. We should laso enable all WebKit2 tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606548</commentid>
    <comment_count>1</comment_count>
      <attachid>138083</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-20 06:39:43 -0700</bug_when>
    <thetext>Created attachment 138083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608674</commentid>
    <comment_count>2</comment_count>
      <attachid>138083</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-24 08:09:27 -0700</bug_when>
    <thetext>Comment on attachment 138083
Patch

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

Looks good in general but I&apos;m afraid I missed some things, maybe Martin can do another pass? This patch is quite big :). Anyway, some questions follow:

&gt; Tools/ChangeLog:19
&gt; +        * TestWebKitAPI/JavaScriptTest.cpp: Use
&gt; +        JavaScriptCore/JSContextRef.h instead of
&gt; +        JavaScriptCore/JavaScriptCore.h since it includes JSStringRefCF.h
&gt; +        unconditionally.

Would it make sense to fix JavaScriptCore.h instead?

&gt; Tools/Scripts/run-gtk-tests:83
&gt; +        SkippedTest(&quot;TestWebKitAPI/WebKit2/TestNewFirstVisuallyNonEmptyLayout&quot;,
&gt; +                    &quot;Test times out&quot;),
&gt; +        SkippedTest(&quot;TestWebKitAPI/WebKit2/TestNewFirstVisuallyNonEmptyLayoutForImages&quot;,
&gt; +                    &quot;Test times out&quot;),
&gt; +        SkippedTest(&quot;TestWebKitAPI/WebKit2/TestWKConnectionTest&quot;,
&gt; +                    &quot;Test times out&quot;),
&gt; +        SkippedTest(&quot;TestWebKitAPI/WebKit2/TestRestoreSessionStateContainingFormData&quot;,
&gt; +                    &quot;Session State is not implemented in GTK+ port&quot;),
&gt; +        SkippedTest(&quot;TestWebKitAPI/WebKit2/TestSpacebarScrolling&quot;,
&gt; +                    &quot;Test fails&quot;)

Can these failures be tracked in bugzilla if possible?

&gt; Tools/Scripts/run-gtk-tests:201
&gt; +        self._test_env[&quot;TEST_WEBKIT_API_WEBKIT2_INJECTED_BUNDLE_PATH&quot;] = os.path.abspath(os.path.join(self._get_build_directory(), &quot;Libraries&quot;))

Damn I forgot the &quot;get build directory&quot; is duplicated between this script and common.py. It&apos;d be great to fix that at some point, in another patch.

&gt; Tools/Scripts/run-gtk-tests:265
&gt; +        tester_command = [test, &quot;--gtest_throw_on_failure&quot;]

Maybe that change should go in the other patch?

&gt; Tools/TestWebKitAPI/GNUmakefile.am:61
&gt; +testwebkitapi_wtf_tests_cppflags = \

Ditto

&gt; Tools/TestWebKitAPI/GNUmakefile.am:69
&gt; +testwebkitapi_wtf_tests_ldadd = \

Ditto

&gt; Tools/TestWebKitAPI/GNUmakefile.am:74
&gt; +testwebkitapi_wtf_tests_ldflags = \

Ditto

&gt; Tools/TestWebKitAPI/GNUmakefile.am:172
&gt; -Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_CPPFLAGS = $(testwebkitapi_tests_cppflags)
&gt; -Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_LDADD = $(testwebkitapi_tests_ldadd)
&gt; -Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_LDFLAGS = $(testwebkitapi_tests_ldflags)
&gt; +Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_CPPFLAGS = $(testwebkitapi_wtf_tests_cppflags)
&gt; +Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_LDADD = $(testwebkitapi_wtf_tests_ldadd)
&gt; +Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_LDFLAGS = $(testwebkitapi_wtf_tests_ldflags)

Ok I&apos;m tired of Ditto, you get it I guess :)

&gt; Tools/TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:65
&gt; +    return g_filename_to_utf8(value, -1, 0, &amp;bytesWritten, 0);

I find it a bit strange to use g_filename_to_utf8() here. Maybe some day we&apos;ll have env variables not dealing with file paths. Or maybe it&apos;s just this function that should be renamed :)

&gt; Tools/TestWebKitAPI/gtk/main.cpp:37
&gt; +    bool passed = TestWebKitAPI::TestsController::shared().run(argc, argv);
&gt; +
&gt; +    return passed ? EXIT_SUCCESS : EXIT_FAILURE;

This can be one line maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608703</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-24 08:37:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 138083 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138083&amp;action=review
&gt; 
&gt; Looks good in general but I&apos;m afraid I missed some things, maybe Martin can do another pass? This patch is quite big :). Anyway, some questions follow:

Sure, thanks for reviewing!

&gt; &gt; Tools/ChangeLog:19
&gt; &gt; +        * TestWebKitAPI/JavaScriptTest.cpp: Use
&gt; &gt; +        JavaScriptCore/JSContextRef.h instead of
&gt; &gt; +        JavaScriptCore/JavaScriptCore.h since it includes JSStringRefCF.h
&gt; &gt; +        unconditionally.
&gt; 
&gt; Would it make sense to fix JavaScriptCore.h instead?

Well, it&apos;s a public header, I&apos;m not sure we can change it without breaking existing apps.

&gt; &gt; Tools/Scripts/run-gtk-tests:83
&gt; &gt; +        SkippedTest(&quot;TestWebKitAPI/WebKit2/TestNewFirstVisuallyNonEmptyLayout&quot;,
&gt; &gt; +                    &quot;Test times out&quot;),
&gt; &gt; +        SkippedTest(&quot;TestWebKitAPI/WebKit2/TestNewFirstVisuallyNonEmptyLayoutForImages&quot;,
&gt; &gt; +                    &quot;Test times out&quot;),
&gt; &gt; +        SkippedTest(&quot;TestWebKitAPI/WebKit2/TestWKConnectionTest&quot;,
&gt; &gt; +                    &quot;Test times out&quot;),
&gt; &gt; +        SkippedTest(&quot;TestWebKitAPI/WebKit2/TestRestoreSessionStateContainingFormData&quot;,
&gt; &gt; +                    &quot;Session State is not implemented in GTK+ port&quot;),
&gt; &gt; +        SkippedTest(&quot;TestWebKitAPI/WebKit2/TestSpacebarScrolling&quot;,
&gt; &gt; +                    &quot;Test fails&quot;)
&gt; 
&gt; Can these failures be tracked in bugzilla if possible?

Yes, I haven&apos;t opened bugs for them yet, because they don&apos;t actually exist. It&apos;s chicken-egg problem, so my idea was to update it once bugs are filed.

&gt; &gt; Tools/Scripts/run-gtk-tests:201
&gt; &gt; +        self._test_env[&quot;TEST_WEBKIT_API_WEBKIT2_INJECTED_BUNDLE_PATH&quot;] = os.path.abspath(os.path.join(self._get_build_directory(), &quot;Libraries&quot;))
&gt; 
&gt; Damn I forgot the &quot;get build directory&quot; is duplicated between this script and common.py. It&apos;d be great to fix that at some point, in another patch.
&gt;

Sure.

&gt; &gt; Tools/Scripts/run-gtk-tests:265
&gt; &gt; +        tester_command = [test, &quot;--gtest_throw_on_failure&quot;]
&gt; 
&gt; Maybe that change should go in the other patch?

Yes, I realized when running wk2 tests, because wtf tests didn&apos;t fail.

&gt; &gt; Tools/TestWebKitAPI/GNUmakefile.am:61
&gt; &gt; +testwebkitapi_wtf_tests_cppflags = \
&gt; 
&gt; Ditto

In previous patch there are no other tests, I don&apos;t think it&apos;s a problem to changing it here, but I can do that in the other patch if you want.

&gt; &gt; Tools/TestWebKitAPI/GNUmakefile.am:69
&gt; &gt; +testwebkitapi_wtf_tests_ldadd = \
&gt; 
&gt; Ditto
&gt; 
&gt; &gt; Tools/TestWebKitAPI/GNUmakefile.am:74
&gt; &gt; +testwebkitapi_wtf_tests_ldflags = \
&gt; 
&gt; Ditto
&gt; 
&gt; &gt; Tools/TestWebKitAPI/GNUmakefile.am:172
&gt; &gt; -Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_CPPFLAGS = $(testwebkitapi_tests_cppflags)
&gt; &gt; -Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_LDADD = $(testwebkitapi_tests_ldadd)
&gt; &gt; -Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_LDFLAGS = $(testwebkitapi_tests_ldflags)
&gt; &gt; +Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_CPPFLAGS = $(testwebkitapi_wtf_tests_cppflags)
&gt; &gt; +Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_LDADD = $(testwebkitapi_wtf_tests_ldadd)
&gt; &gt; +Programs_TestWebKitAPI_WTF_TestCheckedArithmeticOperations_LDFLAGS = $(testwebkitapi_wtf_tests_ldflags)
&gt; 
&gt; Ok I&apos;m tired of Ditto, you get it I guess :)

Yes.

&gt; &gt; Tools/TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:65
&gt; &gt; +    return g_filename_to_utf8(value, -1, 0, &amp;bytesWritten, 0);
&gt; 
&gt; I find it a bit strange to use g_filename_to_utf8() here. Maybe some day we&apos;ll have env variables not dealing with file paths. Or maybe it&apos;s just this function that should be renamed :)

I copied this from WTR

&gt; &gt; Tools/TestWebKitAPI/gtk/main.cpp:37
&gt; &gt; +    bool passed = TestWebKitAPI::TestsController::shared().run(argc, argv);
&gt; &gt; +
&gt; &gt; +    return passed ? EXIT_SUCCESS : EXIT_FAILURE;
&gt; 
&gt; This can be one line maybe?

Yes, I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608718</commentid>
    <comment_count>4</comment_count>
      <attachid>138083</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-24 08:46:33 -0700</bug_when>
    <thetext>Comment on attachment 138083
Patch

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

&gt;&gt;&gt; Tools/Scripts/run-gtk-tests:83
&gt;&gt;&gt; +                    &quot;Test fails&quot;)
&gt;&gt; 
&gt;&gt; Can these failures be tracked in bugzilla if possible?
&gt; 
&gt; Yes, I haven&apos;t opened bugs for them yet, because they don&apos;t actually exist. It&apos;s chicken-egg problem, so my idea was to update it once bugs are filed.

It might be good to at least understand why the spacebar test fails. With it failing, it&apos;s hard to know if the code you wrote to support sending key events is working properly.

&gt; Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:76
&gt; +    gtk_main_do_event(event.get());
&gt; +    event-&gt;key.type = GDK_KEY_RELEASE;
&gt; +    gtk_main_do_event(event.get());

Is it okay for this to happen asynchronously or do the tests expect that it be finished by the time the method returns?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608724</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-24 08:56:13 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; 
&gt; &gt; &gt; Tools/TestWebKitAPI/GNUmakefile.am:61
&gt; &gt; &gt; +testwebkitapi_wtf_tests_cppflags = \
&gt; &gt; 
&gt; &gt; Ditto
&gt; 
&gt; In previous patch there are no other tests, I don&apos;t think it&apos;s a problem to changing it here, but I can do that in the other patch if you want.
&gt; 

It&apos;s not technically a problem but it contributes to make this patch bigger and slightly lower reviewer&apos;s motivation (at least in my very personal case) :). Anyway no big deal I guess.

&gt; &gt; &gt; Tools/TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:65
&gt; &gt; &gt; +    return g_filename_to_utf8(value, -1, 0, &amp;bytesWritten, 0);
&gt; &gt; 
&gt; &gt; I find it a bit strange to use g_filename_to_utf8() here. Maybe some day we&apos;ll have env variables not dealing with file paths. Or maybe it&apos;s just this function that should be renamed :)
&gt; 
&gt; I copied this from WTR
&gt; 

Ok but nevertheless :) I was just a bit surprised by the name of this function vs its code using g_file API. It&apos;s probably to keep it as it is but FTR that name doesn&apos;t make much sense to me :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608730</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-24 09:00:54 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 138083 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138083&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Tools/Scripts/run-gtk-tests:83
&gt; &gt;&gt;&gt; +                    &quot;Test fails&quot;)
&gt; &gt;&gt; 
&gt; &gt;&gt; Can these failures be tracked in bugzilla if possible?
&gt; &gt; 
&gt; &gt; Yes, I haven&apos;t opened bugs for them yet, because they don&apos;t actually exist. It&apos;s chicken-egg problem, so my idea was to update it once bugs are filed.
&gt; 
&gt; It might be good to at least understand why the spacebar test fails. With it failing, it&apos;s hard to know if the code you wrote to support sending key events is working properly.

There are other tests using simulateSpacebarKeyPress() that pass. The problem is that test doesn&apos;t fail but hangs. I&apos;ll work on every single test that don&apos;t pass as soon as this patch lands and bug reports are filed for them. 

&gt; &gt; Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:76
&gt; &gt; +    gtk_main_do_event(event.get());
&gt; &gt; +    event-&gt;key.type = GDK_KEY_RELEASE;
&gt; &gt; +    gtk_main_do_event(event.get());
&gt; 
&gt; Is it okay for this to happen asynchronously or do the tests expect that it be finished by the time the method returns?

I&apos;m not sure, why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608733</commentid>
    <comment_count>7</comment_count>
      <attachid>138083</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-24 09:04:49 -0700</bug_when>
    <thetext>Comment on attachment 138083
Patch

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

&gt;&gt;&gt; Tools/TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:65
&gt;&gt;&gt; +    return g_filename_to_utf8(value, -1, 0, &amp;bytesWritten, 0);
&gt;&gt; 
&gt;&gt; I find it a bit strange to use g_filename_to_utf8() here. Maybe some day we&apos;ll have env variables not dealing with file paths. Or maybe it&apos;s just this function that should be renamed :)
&gt; 
&gt; I copied this from WTR

I think the reason this is so confusing is that it&apos;s doing two things (perhaps this is a problem with WebKitTestRunner too). The first thing it does is get a path from an environment variable. The second thing it does is convert the path from the system encoding to UTF-8. Perhaps this should be split into two functions.

const char* getEnvironmentVariable(const char* variableName);
String convertFilenameToString();

Then each call site could call both functions. The reasoning here is that for any environment variable that is not a path, converting from the system encoding is not necessarily the right thing to do.

 Note that I use a String for the return value of convertFilenameToString, to avoid encoding ambiguity. You should have access to String in this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608739</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-24 09:06:48 -0700</bug_when>
    <thetext>(In reply to comment #6)

&gt; &gt; &gt; Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:76
&gt; &gt; &gt; +    gtk_main_do_event(event.get());
&gt; &gt; &gt; +    event-&gt;key.type = GDK_KEY_RELEASE;
&gt; &gt; &gt; +    gtk_main_do_event(event.get());
&gt; &gt; 
&gt; &gt; Is it okay for this to happen asynchronously or do the tests expect that it be finished by the time the method returns?
&gt; 
&gt; I&apos;m not sure, why?

Assuming that gtk_main_do_event works asynchronously (I believe it does, but perhaps I&apos;m misremembering), there is a chance that the event may still be on the event queue. If the code that calls this method expects WebKit to have already processed the event, the test will likely fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608805</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-24 10:22:19 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; 
&gt; &gt; &gt; &gt; Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:76
&gt; &gt; &gt; &gt; +    gtk_main_do_event(event.get());
&gt; &gt; &gt; &gt; +    event-&gt;key.type = GDK_KEY_RELEASE;
&gt; &gt; &gt; &gt; +    gtk_main_do_event(event.get());
&gt; &gt; &gt; 
&gt; &gt; &gt; Is it okay for this to happen asynchronously or do the tests expect that it be finished by the time the method returns?
&gt; &gt; 
&gt; &gt; I&apos;m not sure, why?
&gt; 
&gt; Assuming that gtk_main_do_event works asynchronously (I believe it does, but perhaps I&apos;m misremembering), there is a chance that the event may still be on the event queue. If the code that calls this method expects WebKit to have already processed the event, the test will likely fail.

Ah, don&apos;t worry then, gtk_main_do_event processes the given event synchronously,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608832</commentid>
    <comment_count>10</comment_count>
      <attachid>138595</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-24 10:50:20 -0700</bug_when>
    <thetext>Created attachment 138595
Updated patch

Updated to apply on current git master now that bug #84325 landed, and address review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608846</commentid>
    <comment_count>11</comment_count>
      <attachid>138595</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-24 10:59:20 -0700</bug_when>
    <thetext>Comment on attachment 138595
Updated patch

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

&gt; Tools/TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:66
&gt; +static char* getEnvironmentVariableAsUTF8String(const char* variableName)
&gt; +{
&gt; +    const char* value = g_getenv(variableName);
&gt; +    if (!value) {
&gt; +        g_printerr(&quot;%s environment variable not found\n&quot;, variableName);
&gt; +        exit(1);
&gt; +    }
&gt; +    gsize bytesWritten;
&gt; +    return g_filename_to_utf8(value, -1, 0, &amp;bytesWritten, 0);
&gt; +}

I guess you didn&apos;t want to split this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609482</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-24 23:22:53 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 138595 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138595&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:66
&gt; &gt; +static char* getEnvironmentVariableAsUTF8String(const char* variableName)
&gt; &gt; +{
&gt; &gt; +    const char* value = g_getenv(variableName);
&gt; &gt; +    if (!value) {
&gt; &gt; +        g_printerr(&quot;%s environment variable not found\n&quot;, variableName);
&gt; &gt; +        exit(1);
&gt; &gt; +    }
&gt; &gt; +    gsize bytesWritten;
&gt; &gt; +    return g_filename_to_utf8(value, -1, 0, &amp;bytesWritten, 0);
&gt; &gt; +}
&gt; 
&gt; I guess you didn&apos;t want to split this?

No, sorry, I forgot to reply to your comment. In this file this function is only used to get paths from the environment, and the only use of the convertFilenameToString() function would be from getEnvironmentVariable(). I agree with your reasoning, in general, but in this particular case I think we could just rename the function as something like getFilenameFromEnvironmentVariableAsUTF8(). 

Also note that the code expects a char *, so with your approach we would be converting from utf8 to utf16 to return a String and then again to utf8 to create the WKString.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609488</commentid>
    <comment_count>13</comment_count>
      <attachid>138743</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-24 23:31:01 -0700</bug_when>
    <thetext>Created attachment 138743
Updated patch

Renamed getEnvironmentVariableAsUTF8String to getFilenameFromEnvironmentVariableAsUTF8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609768</commentid>
    <comment_count>14</comment_count>
      <attachid>138743</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-25 08:15:52 -0700</bug_when>
    <thetext>Comment on attachment 138743
Updated patch

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

&gt; Tools/TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:48
&gt; +    g_timeout_add(500, checkTestFinished, done);

This means that every test will be at least 500 milliseconds long, which means that 20 tests will take at least 10 seconds to run. Don&apos;t you think it makes more sense to make this g_idle_add or something similar? Windows and Mac do this test on literally every cycle of the main loop.

&gt; Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:121
&gt; +    GtkWidget* viewWidget = GTK_WIDGET(m_view);
&gt; +    if (!gtk_widget_get_realized(viewWidget))
&gt; +        gtk_widget_show(m_window);
&gt; +    doMouseButtonEvent(viewWidget, GDK_BUTTON_PRESS, x, y, 3);
&gt; +    doMouseButtonEvent(viewWidget, GDK_BUTTON_RELEASE, x, y, 3);

Depending on the design of the context menu API, we may need to add some extra logic here. If we add a default action which opens the context menu on right clicks, we&apos;ll need to block that here in the future. It might be worth putting a small comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609772</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-25 08:20:32 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 138743 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138743&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:48
&gt; &gt; +    g_timeout_add(500, checkTestFinished, done);
&gt; 
&gt; This means that every test will be at least 500 milliseconds long, which means that 20 tests will take at least 10 seconds to run. Don&apos;t you think it makes more sense to make this g_idle_add or something similar? Windows and Mac do this test on literally every cycle of the main loop.

Yes, sure, I&apos;ll use a g_idle instead.

&gt; &gt; Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:121
&gt; &gt; +    GtkWidget* viewWidget = GTK_WIDGET(m_view);
&gt; &gt; +    if (!gtk_widget_get_realized(viewWidget))
&gt; &gt; +        gtk_widget_show(m_window);
&gt; &gt; +    doMouseButtonEvent(viewWidget, GDK_BUTTON_PRESS, x, y, 3);
&gt; &gt; +    doMouseButtonEvent(viewWidget, GDK_BUTTON_RELEASE, x, y, 3);
&gt; 
&gt; Depending on the design of the context menu API, we may need to add some extra logic here. If we add a default action which opens the context menu on right clicks, we&apos;ll need to block that here in the future. It might be worth putting a small comment.

Context menu API doesn&apos;t affect the C API at all. C API users are supposed to add their own implementation of the ContextMenuClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610530</commentid>
    <comment_count>16</comment_count>
      <attachid>138986</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-26 06:17:14 -0700</bug_when>
    <thetext>Created attachment 138986
Updated patch

Rebased to apply on current git master. Use g_idle_add instead of g_timeout_add as suggested by Martin. And build a custom libmain instead of libgtestmain so that all tests use TestsController class that initializes WTF threading to fix bug #84868</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610583</commentid>
    <comment_count>17</comment_count>
      <attachid>138986</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-26 07:19:21 -0700</bug_when>
    <thetext>Comment on attachment 138986
Updated patch

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

Alright, looks good! Please don&apos;t forget to file new bugs for the skipped tests.

&gt; Tools/ChangeLog:18
&gt; +        * TestWebKitAPI/JavaScriptTest.cpp: Use
&gt; +        JavaScriptCore/JSContextRef.h instead of
&gt; +        JavaScriptCore/JavaScriptCore.h since it includes JSStringRefCF.h
&gt; +        unconditionally.

Maybe I&apos;m wrong but I think this issue should still be fixed. JavaScriptCore.h shouldn&apos;t unconditionally include CF headers if it&apos;s meant to be used by non-mac ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610601</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-26 07:47:00 -0700</bug_when>
    <thetext>Committed r115314: &lt;http://trac.webkit.org/changeset/115314&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138083</attachid>
            <date>2012-04-20 06:39:43 -0700</date>
            <delta_ts>2012-04-24 10:50:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-testwebkitapi-wk2.diff</filename>
            <type>text/plain</type>
            <size>51601</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiOTcxYTczLi43NGE1MjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDQtMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEJ1aWxkIGFuZCBydW4gVGVzdFdlYktpdEFQSSBXZWJLaXQyIHVu
aXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg0NDQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oOiBEZWZpbmUgV0tOYXRpdmVFdmVudFB0
ciBhcworICAgICAgICBHZGtFdmVudCBmb3IgdGhlIEdUSysgcG9ydC4KKwogMjAxMi0wNC0xOSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gSWdub3JlIHJlc291cmNlcyB3aGlsZSByZXBsYWNpbmcgY29udGVudCBpbiBXZWJLaXQyIEdU
SysgQVBJCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggNDYyMmQyNC4uY2Y2MTI0OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA0LTIwICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBCdWlsZCBhbmQg
cnVuIFRlc3RXZWJLaXRBUEkgV2ViS2l0MiB1bml0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQ0NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tZ3RrLXRlc3RzOgorICAg
ICAgICAoVGVzdFJ1bm5lcik6IEFkZCBUZXN0V2ViS2l0QVBJL1dlYktpdDIgdG8gdGhlIGxpc3Qg
b2YgZGlyZWN0b3JpZXMKKyAgICAgICAgY29udGFpbmluZyB0ZXN0cy4KKyAgICAgICAgKFRlc3RS
dW5uZXIuX3NldHVwX3Rlc3RpbmdfZW52aXJvbm1lbnQpOiBTZXQgZW52aXJvbm1lbnQgdmFyaWFi
bGVzCisgICAgICAgIHJlcXVpcmVkIHRvIHJ1biBXZWJLaXQyIHRlc3RzLgorICAgICAgICAoVGVz
dFJ1bm5lci5fcnVuX3Rlc3RfZ29vZ2xlKTogVXNlIC0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZQor
ICAgICAgICBjb21tYW5kIGxpbmUgYXJndW1lbnQgdG8gbWFrZSBzdXJlIGZhaWxpbmcgdGVzdHMg
ZmluaXNoLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9KYXZhU2NyaXB0VGVzdC5jcHA6IFVzZQorICAgICAgICBKYXZhU2Ny
aXB0Q29yZS9KU0NvbnRleHRSZWYuaCBpbnN0ZWFkIG9mCisgICAgICAgIEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmggc2luY2UgaXQgaW5jbHVkZXMgSlNTdHJpbmdSZWZDRi5oCisgICAg
ICAgIHVuY29uZGl0aW9uYWxseS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2Vi
Vmlldy5oOiBEZWZpbmUgUGxhdGZvcm1XS1ZpZXcgYW5kCisgICAgICAgIFBsYXRmb3JtV2luZG93
IGZvciBHVEsuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0V2YWx1YXRl
SmF2YVNjcmlwdC5jcHA6IFJlbW92ZQorICAgICAgICB1bm5lZGVkIGhlYWRlciB0aGF0IGJyZWFr
cyB0aGUgYnVpbGQgb2YgR1RLIHBvcnQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1ByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA6IFVzZQorICAgICAgICBKYXZhU2NyaXB0
Q29yZS9KU0NvbnRleHRSZWYuaCBpbnN0ZWFkIG9mCisgICAgICAgIEphdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmggc2luY2UgaXQgaW5jbHVkZXMgSlNTdHJpbmdSZWZDRi5oCisgICAgICAg
IHVuY29uZGl0aW9uYWxseS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
V0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKTogQWRkIGV4
cGVjdGVkIHZhbHVlcyBmb3IgR1RLKyBwb3J0LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3Rr
L0luamVjdGVkQnVuZGxlQ29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkluamVjdGVkQnVuZGxlQ29udHJvbGxlcjo6cGxh
dGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVV0
aWxpdGllc0d0ay5jcHA6IEFkZGVkLgorICAgICAgICAoVXRpbCk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpjaGVja1Rlc3RGaW5pc2hlZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXApOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6Z2V0RW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOFN0
cmluZyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVJbmplY3RlZEJ1bmRs
ZVBhdGgpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3Vy
Y2UpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6VVJMRm9yTm9uRXhpc3RlbnRSZXNv
dXJjZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjppc0tleURvd24pOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHA6IEFkZGVkLgorICAg
ICAgICAoVGVzdFdlYktpdEFQSSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdl
YlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9y
bVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxh
dGZvcm1XZWJWaWV3OjpwYWdlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2Vi
Vmlldzo6cmVzaXplVG8pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZG9LZXlTdHJva2UpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVNwYWNlYmFy
S2V5UHJlc3MpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpzaW11
bGF0ZUFsdEtleVByZXNzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRvTW91c2VCdXR0b25F
dmVudCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRl
UmlnaHRDbGljayk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnNp
bXVsYXRlTW91c2VNb3ZlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9tYWluLmNwcDoK
KyAgICAgICAgKG1haW4pOgorCiAyMDEyLTA0LTE5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBbGxvdyB0byB1c2UgV2ViSW5zcGVj
dG9yIGluIEd0a0xhdW5jaGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tOYXRpdmVFdmVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
TmF0aXZlRXZlbnQuaAppbmRleCBlZTBiZDE3Li5mMGQzOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKQEAgLTQxLDYgKzQxLDkgQEAgc3Ry
dWN0IE5TRXZlbnQ7CiB0eXBlZGVmIE5TRXZlbnQgKldLTmF0aXZlRXZlbnRQdHI7CiAjZWxpZiBk
ZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikKIHR5cGVkZWYgY29uc3Qgc3RydWN0IHRh
Z01TRyogV0tOYXRpdmVFdmVudFB0cjsKKyNlbGlmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCit0
eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKK3R5cGVkZWYgY29uc3QgR2RrRXZlbnQq
IFdLTmF0aXZlRXZlbnRQdHI7CiAjZWxzZQogdHlwZWRlZiBjb25zdCB2b2lkKiBXS05hdGl2ZUV2
ZW50UHRyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMg
Yi9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMKaW5kZXggODk5NWEyMS4uMjBlYTMyZCAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMv
cnVuLWd0ay10ZXN0cwpAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBTa2lwcGVkVGVzdDoKIAogY2xh
c3MgVGVzdFJ1bm5lcjoKIAotICAgIFRFU1RfRElSUyA9IFsgInVuaXR0ZXN0cyIsICJXZWJLaXQy
QVBJVGVzdHMiLCAiVGVzdFdlYktpdEFQSS9XVEYiIF0KKyAgICBURVNUX0RJUlMgPSBbICJ1bml0
dGVzdHMiLCAiV2ViS2l0MkFQSVRlc3RzIiwgIlRlc3RXZWJLaXRBUEkvV1RGIiwgIlRlc3RXZWJL
aXRBUEkvV2ViS2l0MiIgXQogCiAgICAgU0tJUFBFRCA9IFsKICAgICAgICAgU2tpcHBlZFRlc3Qo
InVuaXR0ZXN0cy90ZXN0ZG93bmxvYWQiLApAQCAtNzEsNiArNzEsMTYgQEAgY2xhc3MgVGVzdFJ1
bm5lcjoKICAgICAgICAgICAgICAgICAgICAgIlRlc3QgaXMgZmxha3kgaW4gR1RLIExpbnV4IDMy
LWJpdCBSZWxlYXNlIGJvdCIsCiAgICAgICAgICAgICAgICAgICAgIDgyODY4LAogICAgICAgICAg
ICAgICAgICAgICBbIi93ZWJraXQyL1dlYktpdFdlYlZpZXcvcmVzb3VyY2VzIl0pLAorICAgICAg
ICBTa2lwcGVkVGVzdCgiVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3ROZXdGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXQiLAorICAgICAgICAgICAgICAgICAgICAiVGVzdCB0aW1lcyBvdXQiKSwK
KyAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0TmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzIiwKKyAgICAgICAgICAgICAgICAgICAgIlRl
c3QgdGltZXMgb3V0IiksCisgICAgICAgIFNraXBwZWRUZXN0KCJUZXN0V2ViS2l0QVBJL1dlYktp
dDIvVGVzdFdLQ29ubmVjdGlvblRlc3QiLAorICAgICAgICAgICAgICAgICAgICAiVGVzdCB0aW1l
cyBvdXQiKSwKKyAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0
UmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YSIsCisgICAgICAgICAgICAgICAg
ICAgICJTZXNzaW9uIFN0YXRlIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBHVEsrIHBvcnQiKSwKKyAg
ICAgICAgU2tpcHBlZFRlc3QoIlRlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0U3BhY2ViYXJTY3Jv
bGxpbmciLAorICAgICAgICAgICAgICAgICAgICAiVGVzdCBmYWlscyIpCiAgICAgXQogCiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMsIHRlc3RzPVtdKToKQEAgLTE4Nyw2ICsxOTcsOSBA
QCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICBzZWxmLl90ZXN0X2VudlsiRElTUExBWSJdID0g
c2VsZi5fb3B0aW9ucy5kaXNwbGF5CiAgICAgICAgIHNlbGYuX3Rlc3RfZW52WyJXRUJLSVRfSU5T
UEVDVE9SX1BBVEgiXSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oc2VsZi5fcHJvZ3Jh
bXNfcGF0aCwgJ3Jlc291cmNlcycsICdpbnNwZWN0b3InKSkKICAgICAgICAgc2VsZi5fdGVzdF9l
bnZbJ0dTRVRUSU5HU19CQUNLRU5EJ10gPSAnbWVtb3J5JworICAgICAgICBzZWxmLl90ZXN0X2Vu
dlsiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfUkVTT1VSQ0VTX1BBVEgiXSA9IG9zLnBhdGguam9p
bihzZWxmLl9nZXRfdG9wX2xldmVsX2RpcmVjdG9yeSgpLCAiVG9vbHMiLCAiVGVzdFdlYktpdEFQ
SSIsICJUZXN0cyIsICJXZWJLaXQyIikKKyAgICAgICAgc2VsZi5fdGVzdF9lbnZbIlRFU1RfV0VC
S0lUX0FQSV9XRUJLSVQyX0lOSkVDVEVEX0JVTkRMRV9QQVRIIl0gPSBvcy5wYXRoLmFic3BhdGgo
b3MucGF0aC5qb2luKHNlbGYuX2dldF9idWlsZF9kaXJlY3RvcnkoKSwgIkxpYnJhcmllcyIpKQor
ICAgICAgICBzZWxmLl90ZXN0X2VudlsiV0VCS0lUX0VYRUNfUEFUSCJdID0gc2VsZi5fcHJvZ3Jh
bXNfcGF0aAogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuX3h2ZmIgPSBzZWxmLl9j
cmVhdGVfcHJvY2VzcyhbIlh2ZmIiLCBzZWxmLl9vcHRpb25zLmRpc3BsYXksICItc2NyZWVuIiwg
IjAiLCAiODAweDYwMHgyNCIsICItbm9saXN0ZW4iLCAidGNwIl0sCkBAIC0yNDksNyArMjYyLDcg
QEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9jcmVhdGVfcHJv
Y2Vzcyh0ZXN0ZXJfY29tbWFuZCwgZW52PXNlbGYuX3Rlc3RfZW52KS53YWl0KCkKIAogICAgIGRl
ZiBfcnVuX3Rlc3RfZ29vZ2xlKHNlbGYsIHRlc3QpOgotICAgICAgICB0ZXN0ZXJfY29tbWFuZCA9
IFt0ZXN0XQorICAgICAgICB0ZXN0ZXJfY29tbWFuZCA9IFt0ZXN0LCAiLS1ndGVzdF90aHJvd19v
bl9mYWlsdXJlIl0KICAgICAgICAgc2tpcHBlZF90ZXN0c19jYXNlcyA9IHNlbGYuX3Rlc3RfY2Fz
ZXNfdG9fc2tpcCh0ZXN0KQogICAgICAgICBpZiBza2lwcGVkX3Rlc3RzX2Nhc2VzOgogICAgICAg
ICAgICAgdGVzdGVyX2NvbW1hbmQuYXBwZW5kKCItLWd0ZXN0X2ZpbHRlcj0tJXMiICUgIjoiLmpv
aW4oc2tpcHBlZF90ZXN0c19jYXNlcykpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L0dOVW1ha2VmaWxlLmFtIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQppbmRl
eCA2YjhjOWRkLi4xNzVjNmMzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0KQEAgLTEs
MyArMSwxMSBAQAorQlVJTFRfU09VUkNFUyArPSBcCisJZ2VuZXJhdGUtdGVzdHdlYmtpdGFwaS1m
b3J3YXJkaW5nLWhlYWRlcnMKKword2syX3Rlc3RzX3NvdXJjZXMgPSAkKHNoZWxsIGxzICQoc3Jj
ZGlyKS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvKi5jcHApCitnZW5lcmF0ZS10
ZXN0d2Via2l0YXBpLWZvcndhcmRpbmctaGVhZGVyczogJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVy
YXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCAkKHdrMl90ZXN0c19zb3VyY2VzKQorCSQoQU1fVl9H
RU4pJChQRVJMKSAkPCAkKHNyY2RpcikvVG9vbHMvVGVzdFdlYktpdEFQSSAkKEdFTlNPVVJDRVNf
V0VCS0lUMikvaW5jbHVkZSBndGsKKwkkKEFNX1ZfR0VOKSQoUEVSTCkgJDwgJChzcmNkaXIpL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkgJChHRU5TT1VSQ0VTX1dFQktJVDIpL2luY2x1ZGUgc291cAorCiBU
RVNUX1BST0dTICs9IFwKIAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0Q2hlY2tlZEFy
aXRobWV0aWNPcGVyYXRpb25zIFwKIAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0RnVu
Y3Rpb25hbCBcCkBAIC0xMCwxMiArMTgsNDcgQEAgVEVTVF9QUk9HUyArPSBcCiAJUHJvZ3JhbXMv
VGVzdFdlYktpdEFQSS9XVEYvVGVzdFZlY3RvciBcCiAJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9X
VEYvVGVzdFZlY3RvclJldmVyc2UKIAoraWYgRU5BQkxFX1dFQktJVDIKK1RFU1RfUFJPR1MgKz0g
XAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0Q29va2llTWFuYWdlciBcCisJ
UHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3REb2N1bWVudFN0YXJ0VXNlclNjcmlw
dEFsZXJ0Q3Jhc2ggXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0RG93bmxv
YWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktp
dDIvVGVzdEV2YWx1YXRlSmF2YVNjcmlwdCBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJL
aXQyL1Rlc3RGYWlsZWRMb2FkIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVz
dEZvcmNlUmVwYWludCBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RGcmFt
ZU1JTUVUeXBlSFRNTCBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RGcmFt
ZU1JTUVUeXBlUE5HIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEhpdFRl
c3RSZXN1bHROb2RlSGFuZGxlIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVz
dEluamVjdGVkQnVuZGxlQmFzaWMgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9U
ZXN0TG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMIFwKKwlQcm9ncmFt
cy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RD
YWxsYmFjayBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RNb3VzZU1vdmVB
ZnRlckNyYXNoIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdE5ld0ZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dCBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQy
L1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlscyBcCisJUHJvZ3JhbXMvVGVz
dFdlYktpdEFQSS9XZWJLaXQyL1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJ
bWFnZXMgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0TmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktp
dDIvVGVzdFBhZ2VMb2FkQmFzaWMgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9U
ZXN0UGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZSBcCisJUHJvZ3Jh
bXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RQYXJlbnRGcmFtZSBcCisJUHJvZ3JhbXMvVGVz
dFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RQcmV2ZW50RW1wdHlVc2VyQWdlbnQgXAorCVByb2dyYW1z
L1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0UHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0
b3J5Q2FsbGJhY2sgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0UmVzcG9u
c2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseSBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9X
ZWJLaXQyL1Rlc3RSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhIFwKKwlQcm9n
cmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJ
dGVtIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFNwYWNlYmFyU2Nyb2xs
aW5nIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFVzZXJNZXNzYWdlIFwK
KwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFdLQ29ubmVjdGlvbiBcCisJUHJv
Z3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RXS1ByZWZlcmVuY2VzIFwKKwlQcm9ncmFt
cy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFdLU3RyaW5nIFwKKwlQcm9ncmFtcy9UZXN0V2Vi
S2l0QVBJL1dlYktpdDIvVGVzdFdLU3RyaW5nSlNTdHJpbmcKK2VuZGlmCisKIG5vaW5zdF9QUk9H
UkFNUyArPSAkKFRFU1RfUFJPR1MpCiAKICMgVXNlIC1pc3lzdGVtIGdjYyBmbGFnIHNvIHRoYXQg
Z2NjIGNvbnNpZGVycyBndGVzdCBoZWFkZXJzIGFzIHN5c3RlbSBoZWFkZXJzLgogIyBXZSBuZWVk
IHRoaXMgdG8gYXZvaWQgYSBsb3Qgb2YgY29tcGlsZSB3YXJuaW5ncyBkdWUgdG8gLVd1bmRlZi4K
ICMgU2VlIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGV0ZXN0L2lzc3Vlcy9kZXRhaWw/
aWQ9MjU4Ci10ZXN0d2Via2l0YXBpX3Rlc3RzX2NwcGZsYWdzID0gXAordGVzdHdlYmtpdGFwaV93
dGZfdGVzdHNfY3BwZmxhZ3MgPSBcCiAJLWlzeXN0ZW0gJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUgXAogCS1JJChzcmNkaXIpL1Rvb2xzL1Rlc3RXZWJLaXRBUEkgXAog
CS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUgXApAQCAtMjMsNzIg
KzY2LDM0OCBAQCB0ZXN0d2Via2l0YXBpX3Rlc3RzX2NwcGZsYWdzID0gXAogCSQoZ2xvYmFsX2Nw
cGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykKIAotdGVzdHdlYmtpdGFwaV90
ZXN0c19sZGFkZCA9IFwKK3Rlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2xkYWRkID0gXAogCUxpYnJh
cmllcy9saWJndGVzdC5sYSBcCiAJTGlicmFyaWVzL2xpYmd0ZXN0X21haW4ubGEgXAogCWxpYldU
Ri5sYQogCi10ZXN0d2Via2l0YXBpX3Rlc3RzX2xkZmxhZ3MgPSBcCit0ZXN0d2Via2l0YXBpX3d0
Zl90ZXN0c19sZGZsYWdzID0gXAogCS1uby1pbnN0YWxsIFwKIAktbm8tZmFzdC1pbnN0YWxsCiAK
K3Rlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncyA9IFwKKwkkKHRlc3R3ZWJraXRh
cGlfd3RmX3Rlc3RzX2NwcGZsYWdzKSBcCisJJChDQUlST19DRkxBR1MpIFwKKwkkKEdUS19DRkxB
R1MpIFwKKwkkKExJQlNPVVBfQ0ZMQUdTKQorCit0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNf
bGRhZGQgPSBcCisJbGliamF2YXNjcmlwdGNvcmVndGstQFdFQktJVEdUS19BUElfTUFKT1JfVkVS
U0lPTkAuQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkAubGEgXAorCWxpYndlYmtpdDJndGst
QFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkAuQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lP
TkAubGEgXAorCUxpYnJhcmllcy9saWJndGVzdC5sYSBcCisJTGlicmFyaWVzL2xpYlRlc3RXZWJL
aXRBUElXZWJLaXQyVGVzdHMubGEgXAorCSQoQ0FJUk9fTElCUykgXAorCSQoR1RLX0xJQlMpIFwK
KwkkKEdMSUJfTElCUykgXAorCSQoTElCU09VUF9MSUJTKQorCit0ZXN0d2Via2l0YXBpX3dlYmtp
dDJfdGVzdHNfbGRmbGFncyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfbGRmbGFncykKKwor
aWYgRU5BQkxFX1dFQktJVDIKK25vaW5zdF9MVExJQlJBUklFUyArPSBcCisJTGlicmFyaWVzL2xp
YlRlc3RXZWJLaXRBUElXZWJLaXQyVGVzdHMubGEgXAorCUxpYnJhcmllcy9saWJUZXN0V2ViS2l0
QVBJSW5qZWN0ZWRCdW5kbGUubGEKK2VuZGlmCisKKyMgVGVzdFdlYktpdEFQSVdlYktpdDJUZXN0
cworTGlicmFyaWVzX2xpYlRlc3RXZWJLaXRBUElXZWJLaXQyVGVzdHNfbGFfU09VUkNFUyA9IFwK
KwlUb29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmNwcCBcCisJVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtV2ViVmlldy5oIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL0phdmFTY3JpcHRUZXN0LmNw
cCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9KYXZhU2NyaXB0VGVzdC5oIFwKKwlUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzQ29udHJvbGxlci5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHNDb250cm9sbGVyLmggXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtVXRpbGl0
aWVzR3RrLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJWaWV3R3Rr
LmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvbWFpbi5jcHAKKworTGlicmFyaWVzX2xp
YlRlc3RXZWJLaXRBUElXZWJLaXQyVGVzdHNfbGFfQ1BQRkxBR1MgPSBcCisJLWlzeXN0ZW0gJChz
cmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUgXAorCS1JJChzcmNkaXIpL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L2luY2x1ZGUgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvaW5j
bHVkZSBcCisJJChnbG9iYWxfY3BwZmxhZ3MpIFwKKwkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdz
KSBcCisJJChHVEtfQ0ZMQUdTKQorCisjIFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZQorTGli
cmFyaWVzX2xpYlRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZV9sYV9TT1VSQ0VTID0gXAorCVRv
b2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmNwcCBcCisJVG9vbHMv
VGVzdFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuaCBcCisJVG9vbHMvVGVzdFdl
YktpdEFQSS9JbmplY3RlZEJ1bmRsZU1haW4uY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL0lu
amVjdGVkQnVuZGxlVGVzdC5oIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0
aWVzLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oIFwKKwlU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRB
bGVydENyYXNoX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9IaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwIFwKKwlUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVj
dENhbGxiYWNrX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9Nb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRfQnVuZGxlLmNwcCBc
CisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dEZhaWxzX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfQnVuZGxlLmNw
cCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL1Jlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxl
LmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNr
Rm9yd2FyZExpc3RJdGVtX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9Vc2VyTWVzc2FnZV9CdW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvV0tDb25uZWN0aW9uX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvZ3RrL0luamVjdGVkQnVuZGxlQ29udHJvbGxlckd0ay5jcHAgXAorCVRvb2xzL1Rlc3RXZWJL
aXRBUEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcAorCitMaWJyYXJpZXNfbGliVGVzdFdl
YktpdEFQSUluamVjdGVkQnVuZGxlX2xhX0xERkxBR1MgPSBcCisJLXJwYXRoICR7c2hlbGwgcHdk
fS8kKHRvcF9idWlsZGRpcikvTGlicmFyaWVzLy5saWJzIFwKKwkkKG5vX3VuZGVmaW5lZCkgXAor
CS1hdm9pZC12ZXJzaW9uIFwKKwktbW9kdWxlCisKK0xpYnJhcmllc19saWJUZXN0V2ViS2l0QVBJ
SW5qZWN0ZWRCdW5kbGVfbGFfQ1BQRkxBR1MgPSBcCisJLWlzeXN0ZW0gJChzcmNkaXIpL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUgXAorCS1JJChzcmNkaXIpL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUgXAor
CS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL0luamVjdGVkQnVuZGxlIFwKKwktSSQo
dG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2luY2x1ZGUgXAorCSQoZ2xvYmFs
X2NwcGZsYWdzKSBcCisJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykgXAorCSQoR1RLX0NGTEFH
UykKKworTGlicmFyaWVzX2xpYlRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZV9sYV9DWFhGTEFH
UyA9ICQoZ2xvYmFsX2N4eGZsYWdzKQorTGlicmFyaWVzX2xpYlRlc3RXZWJLaXRBUElJbmplY3Rl
ZEJ1bmRsZV9sYV9DRkxBR1MgPSAkKGdsb2JhbF9jZmxhZ3MpCisKIFByb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV1RGX1Rlc3RDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnNfU09VUkNFUyA9IFwKIAlU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMu
Y3BwCi1Qcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0Q2hlY2tlZEFyaXRobWV0aWNPcGVy
YXRpb25zX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3Rlc3RzX2NwcGZsYWdzKQotUHJvZ3Jh
bXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9uc19MREFE
RCA9ICQodGVzdHdlYmtpdGFwaV90ZXN0c19sZGFkZCkKLVByb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V1RGX1Rlc3RDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnNfTERGTEFHUyA9ICQodGVzdHdlYmtp
dGFwaV90ZXN0c19sZGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdENoZWNr
ZWRBcml0aG1ldGljT3BlcmF0aW9uc19DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVz
dHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0Q2hlY2tlZEFyaXRo
bWV0aWNPcGVyYXRpb25zX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19sZGFkZCkK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlv
bnNfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfbGRmbGFncykKIAogUHJvZ3Jh
bXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdEZ1bmN0aW9uYWxfU09VUkNFUyA9IFwKIAlUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GdW5jdGlvbmFsLmNwcAotUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XVEZfVGVzdEZ1bmN0aW9uYWxfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfdGVzdHNf
Y3BwZmxhZ3MpCi1Qcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0RnVuY3Rpb25hbF9MREFE
RCA9ICQodGVzdHdlYmtpdGFwaV90ZXN0c19sZGFkZCkKLVByb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V1RGX1Rlc3RGdW5jdGlvbmFsX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfdGVzdHNfbGRmbGFn
cykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RGdW5jdGlvbmFsX0NQUEZMQUdTID0g
JCh0ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRB
UElfV1RGX1Rlc3RGdW5jdGlvbmFsX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19s
ZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RGdW5jdGlvbmFsX0xERkxBR1Mg
PSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2xkZmxhZ3MpCiAKIFByb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV1RGX1Rlc3RIYXNoTWFwX1NPVVJDRVMgPSBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSGFzaE1hcC5jcHAKLVByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RIYXNo
TWFwX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3Rlc3RzX2NwcGZsYWdzKQotUHJvZ3JhbXNf
VGVzdFdlYktpdEFQSV9XVEZfVGVzdEhhc2hNYXBfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfdGVz
dHNfbGRhZGQpCi1Qcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0SGFzaE1hcF9MREZMQUdT
ID0gJCh0ZXN0d2Via2l0YXBpX3Rlc3RzX2xkZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJ
X1dURl9UZXN0SGFzaE1hcF9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfY3Bw
ZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0SGFzaE1hcF9MREFERCA9ICQo
dGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dU
Rl9UZXN0SGFzaE1hcF9MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19sZGZsYWdz
KQogCiBQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0UmVkQmxhY2tUcmVlX1NPVVJDRVMg
PSBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVkQmxhY2tUcmVlLmNwcAotUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdFJlZEJsYWNrVHJlZV9DUFBGTEFHUyA9ICQodGVz
dHdlYmtpdGFwaV90ZXN0c19jcHBmbGFncykKLVByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rl
c3RSZWRCbGFja1RyZWVfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfdGVzdHNfbGRhZGQpCi1Qcm9n
cmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0UmVkQmxhY2tUcmVlX0xERkxBR1MgPSAkKHRlc3R3
ZWJraXRhcGlfdGVzdHNfbGRmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RS
ZWRCbGFja1RyZWVfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2NwcGZsYWdz
KQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdFJlZEJsYWNrVHJlZV9MREFERCA9ICQo
dGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dU
Rl9UZXN0UmVkQmxhY2tUcmVlX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2xk
ZmxhZ3MpCiAKIFByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RTdHJpbmdCdWlsZGVyX1NP
VVJDRVMgPSBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5j
cHAKLVByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RTdHJpbmdCdWlsZGVyX0NQUEZMQUdT
ID0gJCh0ZXN0d2Via2l0YXBpX3Rlc3RzX2NwcGZsYWdzKQotUHJvZ3JhbXNfVGVzdFdlYktpdEFQ
SV9XVEZfVGVzdFN0cmluZ0J1aWxkZXJfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfdGVzdHNfbGRh
ZGQpCi1Qcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0U3RyaW5nQnVpbGRlcl9MREZMQUdT
ID0gJCh0ZXN0d2Via2l0YXBpX3Rlc3RzX2xkZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJ
X1dURl9UZXN0U3RyaW5nQnVpbGRlcl9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVz
dHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0U3RyaW5nQnVpbGRl
cl9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0
V2ViS2l0QVBJX1dURl9UZXN0U3RyaW5nQnVpbGRlcl9MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBp
X3d0Zl90ZXN0c19sZGZsYWdzKQogCiBQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0U3Ry
aW5nT3BlcmF0b3JzX1NPVVJDRVMgPSBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nT3BlcmF0b3JzLmNwcAotUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdFN0cmlu
Z09wZXJhdG9yc19DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV90ZXN0c19jcHBmbGFncykKLVBy
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RTdHJpbmdPcGVyYXRvcnNfTERBREQgPSAkKHRl
c3R3ZWJraXRhcGlfdGVzdHNfbGRhZGQpCi1Qcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0
U3RyaW5nT3BlcmF0b3JzX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfdGVzdHNfbGRmbGFncykK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RTdHJpbmdPcGVyYXRvcnNfQ1BQRkxBR1Mg
PSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XVEZfVGVzdFN0cmluZ09wZXJhdG9yc19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93dGZf
dGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0U3RyaW5nT3BlcmF0
b3JzX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2xkZmxhZ3MpCiAKIFByb2dy
YW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RUZW1wb3JhcnlDaGFuZ2VfU09VUkNFUyA9IFwKIAlU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UZW1wb3JhcnlDaGFuZ2UuY3BwCi1Qcm9ncmFt
c19UZXN0V2ViS2l0QVBJX1dURl9UZXN0VGVtcG9yYXJ5Q2hhbmdlX0NQUEZMQUdTID0gJCh0ZXN0
d2Via2l0YXBpX3Rlc3RzX2NwcGZsYWdzKQotUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVz
dFRlbXBvcmFyeUNoYW5nZV9MREFERCA9ICQodGVzdHdlYmtpdGFwaV90ZXN0c19sZGFkZCkKLVBy
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RUZW1wb3JhcnlDaGFuZ2VfTERGTEFHUyA9ICQo
dGVzdHdlYmtpdGFwaV90ZXN0c19sZGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZf
VGVzdFRlbXBvcmFyeUNoYW5nZV9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdHNf
Y3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0VGVtcG9yYXJ5Q2hhbmdl
X0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RX
ZWJLaXRBUElfV1RGX1Rlc3RUZW1wb3JhcnlDaGFuZ2VfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFw
aV93dGZfdGVzdHNfbGRmbGFncykKIAogUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdFZl
Y3RvckJhc2ljX1NPVVJDRVMgPSBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVj
dG9yQmFzaWMuY3BwCi1Qcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0VmVjdG9yQmFzaWNf
Q1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfdGVzdHNfY3BwZmxhZ3MpCi1Qcm9ncmFtc19UZXN0
V2ViS2l0QVBJX1dURl9UZXN0VmVjdG9yQmFzaWNfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfdGVz
dHNfbGRhZGQpCi1Qcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0VmVjdG9yQmFzaWNfTERG
TEFHUyA9ICQodGVzdHdlYmtpdGFwaV90ZXN0c19sZGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XVEZfVGVzdFZlY3RvckJhc2ljX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3d0Zl90
ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RWZWN0b3JCYXNp
Y19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0
V2ViS2l0QVBJX1dURl9UZXN0VmVjdG9yQmFzaWNfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93
dGZfdGVzdHNfbGRmbGFncykKIAogUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdFZlY3Rv
cl9TT1VSQ0VTID0gXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAK
LVByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RWZWN0b3JfQ1BQRkxBR1MgPSAkKHRlc3R3
ZWJraXRhcGlfdGVzdHNfY3BwZmxhZ3MpCi1Qcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0
VmVjdG9yX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3Rlc3RzX2xkYWRkKQotUHJvZ3JhbXNfVGVz
dFdlYktpdEFQSV9XVEZfVGVzdFZlY3Rvcl9MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3Rlc3Rz
X2xkZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0VmVjdG9yX0NQUEZMQUdT
ID0gJCh0ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV1RGX1Rlc3RWZWN0b3JfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2xk
YWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdFZlY3Rvcl9MREZMQUdTID0gJCh0
ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19sZGZsYWdzKQogCiBQcm9ncmFtc19UZXN0V2ViS2l0QVBJ
X1dURl9UZXN0VmVjdG9yUmV2ZXJzZV9TT1VSQ0VTID0gXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1ZlY3RvclJldmVyc2UuY3BwCi1Qcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9U
ZXN0VmVjdG9yUmV2ZXJzZV9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV90ZXN0c19jcHBmbGFn
cykKLVByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RWZWN0b3JSZXZlcnNlX0xEQUREID0g
JCh0ZXN0d2Via2l0YXBpX3Rlc3RzX2xkYWRkKQotUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZf
VGVzdFZlY3RvclJldmVyc2VfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV90ZXN0c19sZGZsYWdz
KQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdFZlY3RvclJldmVyc2VfQ1BQRkxBR1Mg
PSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XVEZfVGVzdFZlY3RvclJldmVyc2VfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rl
c3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdFZlY3RvclJldmVyc2Vf
TERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfbGRmbGFncykKKworIyBXZWJLaXQy
IFRlc3RzCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdENvb2tpZU1hbmFnZXJf
U09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29va2llTWFu
YWdlci5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0Q29va2llTWFuYWdl
cl9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RDb29raWVNYW5hZ2VyX0xEQUREID0gJCh0
ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJ
X1dlYktpdDJfVGVzdENvb2tpZU1hbmFnZXJfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJr
aXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
RG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFz
aC5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RG9jdW1lbnRTdGFydFVz
ZXJTY3JpcHRBbGVydENyYXNoX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdERvY3VtZW50
U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQy
X3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3REb2N1bWVu
dFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJr
aXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
RG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL0Rvd25sb2FkRGVjaWRlRGVzdGluYXRpb25DcmFzaC5jcHAK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RG93bmxvYWREZWNpZGVEZXN0aW5h
dGlvbkNyYXNoX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxh
Z3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdERvd25sb2FkRGVjaWRlRGVz
dGluYXRpb25DcmFzaF9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRk
KQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3REb3dubG9hZERlY2lkZURlc3Rp
bmF0aW9uQ3Jhc2hfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxh
Z3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RXZhbHVhdGVKYXZhU2Ny
aXB0X1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0V2YWx1
YXRlSmF2YVNjcmlwdC5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RXZh
bHVhdGVKYXZhU2NyaXB0X0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNf
Y3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEV2YWx1YXRlSmF2
YVNjcmlwdF9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RFdmFsdWF0ZUphdmFTY3JpcHRfTERGTEFH
UyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rl
c3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RmFpbGVkTG9hZF9TT1VSQ0VTID0gXAorCVRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9GYWlsZWRMb2FkLmNwcAorUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3RGYWlsZWRMb2FkX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBp
X3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdEZhaWxlZExvYWRfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFk
ZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RmFpbGVkTG9hZF9MREZMQUdT
ID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVz
dFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RGb3JjZVJlcGFpbnRfU09VUkNFUyA9IFwKKwlUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRm9yY2VSZXBhaW50LmNwcAorUHJvZ3JhbXNfVGVz
dFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RGb3JjZVJlcGFpbnRfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJr
aXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0Rm9yY2VSZXBhaW50X0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZvcmNlUmVwYWlu
dF9MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RGcmFtZU1JTUVUeXBlSFRNTF9TT1VSQ0VT
ID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9GcmFtZU1JTUVUeXBlSFRN
TC5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1FVHlwZUhU
TUxfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1By
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1FVHlwZUhUTUxfTERBREQg
PSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1FVHlwZUhUTUxfTERGTEFHUyA9ICQodGVzdHdlYmtp
dGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0RnJhbWVNSU1FVHlwZVBOR19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9GcmFtZU1JTUVUeXBlUE5HLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XZWJLaXQyX1Rlc3RGcmFtZU1JTUVUeXBlUE5HX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdEZyYW1lTUlNRVR5cGVQTkdfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90
ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1F
VHlwZVBOR19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykK
KworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RIaXRUZXN0UmVzdWx0Tm9kZUhh
bmRsZV9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9IaXRU
ZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9U
ZXN0SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Vi
a2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90
ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0SGl0VGVzdFJl
c3VsdE5vZGVIYW5kbGVfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xk
ZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0SW5qZWN0ZWRCdW5k
bGVCYXNpY19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9J
bmplY3RlZEJ1bmRsZUJhc2ljLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rl
c3RJbmplY3RlZEJ1bmRsZUJhc2ljX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJf
dGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEluamVj
dGVkQnVuZGxlQmFzaWNfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFk
ZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0SW5qZWN0ZWRCdW5kbGVCYXNp
Y19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dp
dGhOb25EaXJlY3RvcnlVUkxfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcAor
UHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RMb2FkQWx0ZXJuYXRlSFRNTFN0cmlu
Z1dpdGhOb25EaXJlY3RvcnlVUkxfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90
ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TG9hZEFs
dGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMX0xEQUREID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTF9MREZMQUdTID0g
JCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3RMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tf
U09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTG9hZENhbmNl
bGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9X
ZWJLaXQyX1Rlc3RMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tfQ1BQRkxBR1Mg
PSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RX
ZWJLaXRBUElfV2ViS2l0Ml9UZXN0TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNr
X0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19U
ZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxs
YmFja19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKwor
UHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RNb3VzZU1vdmVBZnRlckNyYXNoX1NP
VVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL01vdXNlTW92ZUFm
dGVyQ3Jhc2guY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdE1vdXNlTW92
ZUFmdGVyQ3Jhc2hfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBm
bGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TW91c2VNb3ZlQWZ0ZXJD
cmFzaF9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3Jh
bXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RNb3VzZU1vdmVBZnRlckNyYXNoX0xERkxBR1Mg
PSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0
V2ViS2l0QVBJX1dlYktpdDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9TT1VS
Q0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXQuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFw
aV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRfTERBREQgPSAkKHRlc3R3ZWJraXRh
cGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9U
ZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0X0xERkxBR1MgPSAkKHRlc3R3ZWJraXRh
cGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZhaWxzX1NPVVJDRVMgPSBcCisJ
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZhaWxzLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlsc19DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFw
aV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlsc19MREFERCA9ICQodGVzdHdl
YmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlsc19MREZMQUdTID0gJCh0
ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNf
U09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQ
SV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfQ1BQ
RkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1z
X1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9ySW1hZ2VzX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQ
cm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckltYWdlc19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNf
bGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzLmNw
cAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGcmFtZXNfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0
c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtp
dDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBp
X3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3RQYWdlTG9hZEJhc2ljX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1BhZ2VMb2FkQmFzaWMuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdFBhZ2VMb2FkQmFzaWNfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90
ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UGFnZUxv
YWRCYXNpY19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQYWdlTG9hZEJhc2ljX0xERkxBR1MgPSAk
KHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2Vi
S2l0QVBJX1dlYktpdDJfVGVzdFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9y
RnJhbWVfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUGFn
ZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHAKK1Byb2dyYW1zX1Rl
c3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBh
Z2VGb3JGcmFtZV9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZs
YWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQYWdlTG9hZERpZENoYW5n
ZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtp
dDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFBhZ2VM
b2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWVfTERGTEFHUyA9ICQodGVzdHdl
YmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0UGFyZW50RnJhbWVfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvUGFyZW50RnJhbWUuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdFBhcmVudEZyYW1lX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJf
dGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFBhcmVu
dEZyYW1lX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9n
cmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFBhcmVudEZyYW1lX0xERkxBR1MgPSAkKHRl
c3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0
QVBJX1dlYktpdDJfVGVzdFByZXZlbnRFbXB0eVVzZXJBZ2VudF9TT1VSQ0VTID0gXAorCVRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCitQ
cm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFByZXZlbnRFbXB0eVVzZXJBZ2VudF9D
UFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3Jh
bXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcmV2ZW50RW1wdHlVc2VyQWdlbnRfTERBREQg
PSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0UHJldmVudEVtcHR5VXNlckFnZW50X0xERkxBR1MgPSAkKHRlc3R3
ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJ
X1dlYktpdDJfVGVzdFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrX1NP
VVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1ByaXZhdGVCcm93
c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQ
SV9XZWJLaXQyX1Rlc3RQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFja19D
UFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3Jh
bXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFja19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRk
KQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcml2YXRlQnJvd3NpbmdQdXNo
U3RhdGVOb0hpc3RvcnlDYWxsYmFja19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJf
dGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RSZXNw
b25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1Jlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHku
Y3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFJlc3BvbnNpdmVuZXNzVGlt
ZXJEb2VzbnRGaXJlRWFybHlfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0
c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UmVzcG9uc2l2
ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQy
X3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RSZXNwb25z
aXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Vi
a2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dFJlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGFfU09VUkNFUyA9IFwKKwlUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5p
bmdGb3JtRGF0YS5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UmVzdG9y
ZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YV9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFw
aV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3RSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhX0xEQUREID0gJCh0ZXN0
d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdFJlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGFfTERGTEFHUyA9
ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RX
ZWJLaXRBUElfV2ViS2l0Ml9UZXN0U2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1fU09VUkNF
UyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tG
b3J3YXJkTGlzdEl0ZW0uY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFNo
b3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dl
YmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dl
YmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFNo
b3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Vi
a2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dFNwYWNlYmFyU2Nyb2xsaW5nX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1NwYWNlYmFyU2Nyb2xsaW5nLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9X
ZWJLaXQyX1Rlc3RTcGFjZWJhclNjcm9sbGluZ19DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93
ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rl
c3RTcGFjZWJhclNjcm9sbGluZ19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3Rz
X2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RTcGFjZWJhclNjcm9s
bGluZ19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKwor
UHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RVc2VyTWVzc2FnZV9TT1VSQ0VTID0g
XAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZS5jcHAKK1By
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0VXNlck1lc3NhZ2VfQ1BQRkxBR1MgPSAk
KHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0VXNlck1lc3NhZ2VfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Vi
a2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0VXNl
ck1lc3NhZ2VfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3Mp
CisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tDb25uZWN0aW9uX1NPVVJD
RVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLQ29ubmVjdGlvbi5j
cHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tDb25uZWN0aW9uX0NQUEZM
QUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19U
ZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLQ29ubmVjdGlvbl9MREFERCA9ICQodGVzdHdlYmtp
dGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3RXS0Nvbm5lY3Rpb25fTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3Rz
X2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tQcmVmZXJl
bmNlc19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1By
ZWZlcmVuY2VzLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RXS1ByZWZl
cmVuY2VzX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3Mp
CitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLUHJlZmVyZW5jZXNfTERBREQg
PSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0V0tQcmVmZXJlbmNlc19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBp
X3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3RXS1N0cmluZ19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9XS1N0cmluZy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tT
dHJpbmdfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tTdHJpbmdfTERBREQgPSAkKHRl
c3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0V0tTdHJpbmdfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rl
c3RzX2xkZmxhZ3MpCiAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tTdHJp
bmdKU1N0cmluZ19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9XS1N0cmluZ0pTU3RyaW5nLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rl
c3RXS1N0cmluZ0pTU3RyaW5nX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLU3RyaW5n
SlNTdHJpbmdfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1By
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tTdHJpbmdKU1N0cmluZ19MREZMQUdT
ID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0phdmFTY3JpcHRU
ZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3QuY3BwCmluZGV4IDRm
MTA5YjYuLjg1YmU4OTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSmF2YVNjcmlw
dFRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3QuY3BwCkBA
IC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2luY2x1
ZGUgIlRlc3QuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5o
PgogI2luY2x1ZGUgPFdlYktpdDIvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IDAwNzIwZjQuLmNmMDEzMmUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtNDMsNiArNDMsOSBAQCB0eXBlZGVmIE5T
V2luZG93ICpQbGF0Zm9ybVdpbmRvdzsKICNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQo
X1dJTjMyKQogdHlwZWRlZiBXS1ZpZXdSZWYgUGxhdGZvcm1XS1ZpZXc7CiB0eXBlZGVmIEhXTkQg
UGxhdGZvcm1XaW5kb3c7CisjZWxpZiBQTEFURk9STShHVEspCit0eXBlZGVmIFdLVmlld1JlZiBQ
bGF0Zm9ybVdLVmlldzsKK3R5cGVkZWYgR3RrV2lkZ2V0ICpQbGF0Zm9ybVdpbmRvdzsKICNlbmRp
ZgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9FdmFsdWF0ZUphdmFTY3JpcHQuY3BwCmluZGV4IDk5Yjdm
ZjcuLjkwYWQwNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9FdmFsdWF0ZUphdmFTY3JpcHQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9FdmFsdWF0ZUphdmFTY3JpcHQuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVk
ZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNp
bmNsdWRlICJUZXN0LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
aD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCmluZGV4IDRj
NTIyNzguLmM1YWNiNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBA
CiAjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZp
ZXcuaCIKICNpbmNsdWRlICJUZXN0LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NvbnRleHRSZWYuaD4KICNp
bmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvV0tQcmVmZXJlbmNlcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggMmExODFkZC4uNWFmMDFlYiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLUHJlZmVyZW5jZXMuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNw
cApAQCAtNTcsNiArNTcsMTQgQEAgVEVTVChXZWJLaXQyLCBXS1ByZWZlcmVuY2VzRGVmYXVsdHMp
CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkQ3Vyc2l2ZUZvbnRGYW1pbHkgPSAiQXBw
bGUgQ2hhbmNlcnkiOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBleHBlY3RlZEZhbnRhc3lGb250
RmFtaWx5ID0gIlBhcHlydXMiOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBleHBlY3RlZFBpY3Rv
Z3JhcGhGb250RmFtaWx5ID0gIkFwcGxlIENvbG9yIEVtb2ppIjsKKyNlbGlmIFBMQVRGT1JNKEdU
SykKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRTdGFuZGFyZEZvbnRGYW1pbHkgPSAi
VGltZXMiOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBleHBlY3RlZEZpeGVkRm9udEZhbWlseSA9
ICJDb3VyaWVyIE5ldyI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkU2VyaWZGb250
RmFtaWx5ID0gIlRpbWVzIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRTYW5zU2Vy
aWZGb250RmFtaWx5ID0gIkhlbHZldGljYSI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVj
dGVkQ3Vyc2l2ZUZvbnRGYW1pbHkgPSAiQ29taWMgU2FucyBNUyI7CisgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGV4cGVjdGVkRmFudGFzeUZvbnRGYW1pbHkgPSAiSW1wYWN0IjsKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogZXhwZWN0ZWRQaWN0b2dyYXBoRm9udEZhbWlseSA9ICJUaW1lcyI7CiAjZW5k
aWYKIAogICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZSA9IFdLUHJlZmVyZW5jZXNDcmVh
dGUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL0luamVjdGVkQnVuZGxl
Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9JbmplY3RlZEJ1bmRs
ZUNvbnRyb2xsZXJHdGsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVk
NTUwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9JbmplY3Rl
ZEJ1bmRsZUNvbnRyb2xsZXJHdGsuY3BwCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlQ29udHJvbGxlci5oIgorCituYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRp
YWxpemUoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVV0aWxpdGllc0d0ay5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVV0aWxpdGllc0d0ay5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA5NTM1NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcApAQCAtMCwwICsxLDk2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5j
bHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
K25hbWVzcGFjZSBVdGlsIHsKKworc3RhdGljIGdib29sZWFuIGNoZWNrVGVzdEZpbmlzaGVkKGdw
b2ludGVyIHVzZXJEYXRhKQoreworICAgIGJvb2wqIGRvbmUgPSBzdGF0aWNfY2FzdDxib29sKj4o
dXNlckRhdGEpOworCisgICAgaWYgKCpkb25lKQorICAgICAgICBndGtfbWFpbl9xdWl0KCk7CisK
KyAgICByZXR1cm4gISpkb25lOworfQorCit2b2lkIHJ1bihib29sKiBkb25lKQoreworICAgIGdf
dGltZW91dF9hZGQoNTAwLCBjaGVja1Rlc3RGaW5pc2hlZCwgZG9uZSk7CisgICAgZ3RrX21haW4o
KTsKK30KKwordm9pZCBzbGVlcChkb3VibGUgc2Vjb25kcykKK3sKKyAgICBnX3VzbGVlcChzZWNv
bmRzICogMTAwMDAwMCk7Cit9CisKK3N0YXRpYyBjaGFyKiBnZXRFbnZpcm9ubWVudFZhcmlhYmxl
QXNVVEY4U3RyaW5nKGNvbnN0IGNoYXIqIHZhcmlhYmxlTmFtZSkKK3sKKyAgICBjb25zdCBjaGFy
KiB2YWx1ZSA9IGdfZ2V0ZW52KHZhcmlhYmxlTmFtZSk7CisgICAgaWYgKCF2YWx1ZSkgeworICAg
ICAgICBnX3ByaW50ZXJyKCIlcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBub3QgZm91bmRcbiIsIHZh
cmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIGdzaXplIGJ5dGVzV3Jp
dHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191dGY4KHZhbHVlLCAtMSwgMCwgJmJ5dGVz
V3JpdHRlbiwgMCk7Cit9CisKK1dLU3RyaW5nUmVmIGNyZWF0ZUluamVjdGVkQnVuZGxlUGF0aCgp
Cit7CisgICAgR093blB0cjxjaGFyPiBpbmplY3RlZEJ1bmRsZVBhdGgoZ2V0RW52aXJvbm1lbnRW
YXJpYWJsZUFzVVRGOFN0cmluZygiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfSU5KRUNURURfQlVO
RExFX1BBVEgiKSk7CisgICAgR093blB0cjxjaGFyPiBpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKGdf
YnVpbGRfZmlsZW5hbWUoaW5qZWN0ZWRCdW5kbGVQYXRoLmdldCgpLCAibGliVGVzdFdlYktpdEFQ
SUluamVjdGVkQnVuZGxlLmxhIiwgTlVMTCkpOworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZyhpbmplY3RlZEJ1bmRsZUZpbGVuYW1lLmdldCgpKTsKK30KKworV0tVUkxS
ZWYgY3JlYXRlVVJMRm9yUmVzb3VyY2UoY29uc3QgY2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIq
IGV4dGVuc2lvbikKK3sKKyAgICBHT3duUHRyPGNoYXI+IHRlc3RSZXNvdXJjZXNQYXRoKGdldEVu
dmlyb25tZW50VmFyaWFibGVBc1VURjhTdHJpbmcoIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX1JF
U09VUkNFU19QQVRIIikpOworICAgIEdPd25QdHI8Y2hhcj4gcmVzb3VyY2VCYXNlbmFtZShnX3N0
cmR1cF9wcmludGYoIiVzLiVzIiwgcmVzb3VyY2UsIGV4dGVuc2lvbikpOworICAgIEdPd25QdHI8
Y2hhcj4gcmVzb3VyY2VGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKHRlc3RSZXNvdXJjZXNQYXRo
LmdldCgpLCByZXNvdXJjZUJhc2VuYW1lLmdldCgpLCBOVUxMKSk7CisgICAgR1JlZlB0cjxHRmls
ZT4gcmVzb3VyY2VGaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgocmVzb3VyY2VG
aWxlbmFtZS5nZXQoKSkpOworICAgIEdPd25QdHI8Y2hhcj4gcmVzb3VyY2VVUkkoZ19maWxlX2dl
dF91cmkocmVzb3VyY2VGaWxlLmdldCgpKSk7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKHJlc291cmNlVVJJLmdldCgpKTsKK30KKworV0tVUkxSZWYgVVJMRm9yTm9uRXhp
c3RlbnRSZXNvdXJjZSgpCit7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJmaWxlOi8vL2RvZXMtbm90LWV4aXN0Lmh0bWwiKTsKK30KKworYm9vbCBpc0tleURvd24oV0tO
YXRpdmVFdmVudFB0ciBldmVudCkKK3sKKyAgICByZXR1cm4gZXZlbnQtPnR5cGUgPT0gR0RLX0tF
WV9QUkVTUzsKK30KKworfSAvLyBuYW1lc3BhY2UgVXRpbAorfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJW
aWV3R3RrLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFhZDY0NgotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAK
QEAgLTAsMCArMSwxNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmll
dy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9HT3duUHRyR3RrLmg+CisjaW5jbHVkZSA8Z3RrL2d0
ay5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRS
ZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQoreworICAgIG1fd2lu
ZG93ID0gZ3RrX3dpbmRvd19uZXcoR1RLX1dJTkRPV19UT1BMRVZFTCk7CisgICAgbV92aWV3ID0g
V0tWaWV3Q3JlYXRlKGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7CisgICAgZ3RrX2NvbnRhaW5l
cl9hZGQoR1RLX0NPTlRBSU5FUihtX3dpbmRvdyksIEdUS19XSURHRVQobV92aWV3KSk7CisgICAg
Z3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQobV92aWV3KSk7Cit9CisKK1BsYXRmb3JtV2ViVmll
dzo6flBsYXRmb3JtV2ViVmlldygpCit7CisgICAgZ3RrX3dpZGdldF9kZXN0cm95KG1fd2luZG93
KTsKK30KKworV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFdLVmlld0dldFBhZ2UobV92aWV3KTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6
OnJlc2l6ZVRvKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgZ3RrX3dp
bmRvd19yZXNpemUoR1RLX1dJTkRPVyhtX3dpbmRvdyksIHdpZHRoLCBoZWlnaHQpOworfQorCitz
dGF0aWMgdm9pZCBkb0tleVN0cm9rZShHdGtXaWRnZXQqIHZpZXdXaWRnZXQsIHVuc2lnbmVkIGlu
dCBrZXlWYWwpCit7CisgICAgR093blB0cjxHZGtFdmVudD4gZXZlbnQoZ2RrX2V2ZW50X25ldyhH
REtfS0VZX1BSRVNTKSk7CisgICAgZXZlbnQtPmtleS5rZXl2YWwgPSBrZXlWYWw7CisgICAgZXZl
bnQtPmtleS50aW1lID0gR0RLX0NVUlJFTlRfVElNRTsKKyAgICBldmVudC0+a2V5LnN0YXRlID0g
MDsKKyAgICBldmVudC0+a2V5LndpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3dpbmRvdyh2aWV3V2lk
Z2V0KTsKKyAgICBnX29iamVjdF9yZWYoZXZlbnQtPmtleS53aW5kb3cpOworICAgIGdka19ldmVu
dF9zZXRfZGV2aWNlKGV2ZW50LmdldCgpLCBnZGtfZGV2aWNlX21hbmFnZXJfZ2V0X2NsaWVudF9w
b2ludGVyKGdka19kaXNwbGF5X2dldF9kZXZpY2VfbWFuYWdlcihndGtfd2lkZ2V0X2dldF9kaXNw
bGF5KHZpZXdXaWRnZXQpKSkpOworCisgICAgLy8gV2hlbiBzeW50aGVzaXppbmcgYW4gZXZlbnQs
IGFuIGludmFsaWQgaGFyZHdhcmVfa2V5Y29kZSB2YWx1ZSBjYW4gY2F1c2UgaXQgdG8gYmUgYmFk
bHkgcHJvY2Vzc2VkIGJ5IEdUSysuCisgICAgR093blB0cjxHZGtLZXltYXBLZXk+IGtleXM7Cisg
ICAgaW50IGtleXNDb3VudDsKKyAgICBpZiAoZ2RrX2tleW1hcF9nZXRfZW50cmllc19mb3Jfa2V5
dmFsKGdka19rZXltYXBfZ2V0X2RlZmF1bHQoKSwga2V5VmFsLCAma2V5cy5vdXRQdHIoKSwgJmtl
eXNDb3VudCkpCisgICAgICAgIGV2ZW50LT5rZXkuaGFyZHdhcmVfa2V5Y29kZSA9IGtleXMuZ2V0
KClbMF0ua2V5Y29kZTsKKworICAgIGd0a19tYWluX2RvX2V2ZW50KGV2ZW50LmdldCgpKTsKKyAg
ICBldmVudC0+a2V5LnR5cGUgPSBHREtfS0VZX1JFTEVBU0U7CisgICAgZ3RrX21haW5fZG9fZXZl
bnQoZXZlbnQuZ2V0KCkpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFj
ZWJhcktleVByZXNzKCkKK3sKKyAgICBHdGtXaWRnZXQqIHZpZXdXaWRnZXQgPSBHVEtfV0lER0VU
KG1fdmlldyk7CisgICAgaWYgKCFndGtfd2lkZ2V0X2dldF9yZWFsaXplZCh2aWV3V2lkZ2V0KSkK
KyAgICAgICAgZ3RrX3dpZGdldF9zaG93KG1fd2luZG93KTsKKyAgICBkb0tleVN0cm9rZSh2aWV3
V2lkZ2V0LCBHREtfS0VZX0tQX1NwYWNlKTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNp
bXVsYXRlQWx0S2V5UHJlc3MoKQoreworICAgIEd0a1dpZGdldCogdmlld1dpZGdldCA9IEdUS19X
SURHRVQobV92aWV3KTsKKyAgICBpZiAoIWd0a193aWRnZXRfZ2V0X3JlYWxpemVkKHZpZXdXaWRn
ZXQpKQorICAgICAgICBndGtfd2lkZ2V0X3Nob3cobV93aW5kb3cpOworICAgIGRvS2V5U3Ryb2tl
KHZpZXdXaWRnZXQsIEdES19LRVlfQWx0X0wpOworfQorCitzdGF0aWMgdm9pZCBkb01vdXNlQnV0
dG9uRXZlbnQoR3RrV2lkZ2V0KiB2aWV3V2lkZ2V0LCBHZGtFdmVudFR5cGUgZXZlbnRUeXBlLCBp
bnQgeCwgaW50IHksIHVuc2lnbmVkIGludCBidXR0b24pCit7CisgICAgR093blB0cjxHZGtFdmVu
dD4gZXZlbnQoZ2RrX2V2ZW50X25ldyhldmVudFR5cGUpKTsKKyAgICBldmVudC0+YnV0dG9uLngg
PSB4OworICAgIGV2ZW50LT5idXR0b24ueSA9IHk7CisgICAgZXZlbnQtPmJ1dHRvbi5idXR0b24g
PSBidXR0b247CisgICAgZXZlbnQtPmJ1dHRvbi50aW1lID0gR0RLX0NVUlJFTlRfVElNRTsKKyAg
ICBldmVudC0+YnV0dG9uLmF4ZXMgPSAwOworICAgIGV2ZW50LT5idXR0b24uc3RhdGUgPSAwOwor
ICAgIGV2ZW50LT5idXR0b24ud2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KHZpZXdXaWRn
ZXQpOworICAgIGdfb2JqZWN0X3JlZihldmVudC0+YnV0dG9uLndpbmRvdyk7CisgICAgZXZlbnQt
PmJ1dHRvbi5kZXZpY2UgPSBnZGtfZGV2aWNlX21hbmFnZXJfZ2V0X2NsaWVudF9wb2ludGVyKGdk
a19kaXNwbGF5X2dldF9kZXZpY2VfbWFuYWdlcihndGtfd2lkZ2V0X2dldF9kaXNwbGF5KHZpZXdX
aWRnZXQpKSk7CisKKyAgICBpbnQgeFJvb3QsIHlSb290OworICAgIGdka193aW5kb3dfZ2V0X3Jv
b3RfY29vcmRzKGd0a193aWRnZXRfZ2V0X3dpbmRvdyh2aWV3V2lkZ2V0KSwgeCwgeSwgJnhSb290
LCAmeVJvb3QpOworICAgIGV2ZW50LT5idXR0b24ueF9yb290ID0geFJvb3Q7CisgICAgZXZlbnQt
PmJ1dHRvbi55X3Jvb3QgPSB5Um9vdDsKKyAgICBndGtfbWFpbl9kb19ldmVudChldmVudC5nZXQo
KSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVJpZ2h0Q2xpY2sodW5zaWdu
ZWQgeCwgdW5zaWduZWQgeSkKK3sKKyAgICBHdGtXaWRnZXQqIHZpZXdXaWRnZXQgPSBHVEtfV0lE
R0VUKG1fdmlldyk7CisgICAgaWYgKCFndGtfd2lkZ2V0X2dldF9yZWFsaXplZCh2aWV3V2lkZ2V0
KSkKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KG1fd2luZG93KTsKKyAgICBkb01vdXNlQnV0dG9u
RXZlbnQodmlld1dpZGdldCwgR0RLX0JVVFRPTl9QUkVTUywgeCwgeSwgMyk7CisgICAgZG9Nb3Vz
ZUJ1dHRvbkV2ZW50KHZpZXdXaWRnZXQsIEdES19CVVRUT05fUkVMRUFTRSwgeCwgeSwgMyk7Cit9
CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZU1vdXNlTW92ZSh1bnNpZ25lZCB4LCB1
bnNpZ25lZCB5KQoreworICAgIEdPd25QdHI8R2RrRXZlbnQ+IGV2ZW50KGdka19ldmVudF9uZXco
R0RLX01PVElPTl9OT1RJRlkpKTsKKyAgICBldmVudC0+bW90aW9uLnggPSB4OworICAgIGV2ZW50
LT5tb3Rpb24ueSA9IHk7CisgICAgZXZlbnQtPm1vdGlvbi50aW1lID0gR0RLX0NVUlJFTlRfVElN
RTsKKyAgICBldmVudC0+bW90aW9uLnN0YXRlID0gMDsKKyAgICBldmVudC0+bW90aW9uLmF4ZXMg
PSAwOworCisgICAgR3RrV2lkZ2V0KiB2aWV3V2lkZ2V0ID0gR1RLX1dJREdFVChtX3ZpZXcpOwor
ICAgIGlmICghZ3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQodmlld1dpZGdldCkpCisgICAgICAgIGd0
a193aWRnZXRfc2hvdyhtX3dpbmRvdyk7CisgICAgZXZlbnQtPm1vdGlvbi53aW5kb3cgPSBndGtf
d2lkZ2V0X2dldF93aW5kb3codmlld1dpZGdldCk7CisgICAgZ19vYmplY3RfcmVmKGV2ZW50LT5t
b3Rpb24ud2luZG93KTsKKyAgICBldmVudC0+bW90aW9uLmRldmljZSA9IGdka19kZXZpY2VfbWFu
YWdlcl9nZXRfY2xpZW50X3BvaW50ZXIoZ2RrX2Rpc3BsYXlfZ2V0X2RldmljZV9tYW5hZ2VyKGd0
a193aWRnZXRfZ2V0X2Rpc3BsYXkodmlld1dpZGdldCkpKTsKKworICAgIGludCB4Um9vdCwgeVJv
b3Q7CisgICAgZ2RrX3dpbmRvd19nZXRfcm9vdF9jb29yZHMoZ3RrX3dpZGdldF9nZXRfd2luZG93
KHZpZXdXaWRnZXQpLCB4LCB5LCAmeFJvb3QsICZ5Um9vdCk7CisgICAgZXZlbnQtPm1vdGlvbi54
X3Jvb3QgPSB4Um9vdDsKKyAgICBldmVudC0+bW90aW9uLnlfcm9vdCA9IHlSb290OworICAgIGd0
a19tYWluX2RvX2V2ZW50KGV2ZW50LmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvbWFpbi5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL2d0ay9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42YzZlNDRmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvbWFpbi5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VGVzdHNDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisKK2ludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBndGtfaW5pdCgmYXJnYywgJmFyZ3YpOworCisg
ICAgYm9vbCBwYXNzZWQgPSBUZXN0V2ViS2l0QVBJOjpUZXN0c0NvbnRyb2xsZXI6OnNoYXJlZCgp
LnJ1bihhcmdjLCBhcmd2KTsKKworICAgIHJldHVybiBwYXNzZWQgPyBFWElUX1NVQ0NFU1MgOiBF
WElUX0ZBSUxVUkU7Cit9Cg==
</data>
<flag name="review"
          id="143347"
          type_id="1"
          status="-"
          setter="pnormand"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138595</attachid>
            <date>2012-04-24 10:50:20 -0700</date>
            <delta_ts>2012-04-24 23:31:01 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk-test-wk-api-wk2-2.diff</filename>
            <type>text/plain</type>
            <size>44540</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3NjhiOGFjLi5lNjdjNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEJ1aWxkIGFuZCBydW4gVGVzdFdlYktpdEFQSSBXZWJLaXQyIHVu
aXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg0NDQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oOiBEZWZpbmUgV0tOYXRpdmVFdmVudFB0
ciBhcworICAgICAgICBHZGtFdmVudCBmb3IgdGhlIEdUSysgcG9ydC4KKwogMjAxMi0wNC0yNCAg
QWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAg
ICBbUXRdIFRhcC10byB6b29tIHNob3VsZCBuYXZpZ2F0ZSB3aGVuIGFwcHJvcGlhdGUKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5Zjc3YzRjLi5k
ZjhjMjRiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsNjAgQEAKIDIwMTItMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFtHVEtdIEJ1aWxkIGFuZCBydW4gVGVzdFdlYktp
dEFQSSBXZWJLaXQyIHVuaXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg0NDQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1ndGstdGVzdHM6CisgICAgICAgIChUZXN0UnVu
bmVyKTogQWRkIFRlc3RXZWJLaXRBUEkvV2ViS2l0MiB0byB0aGUgbGlzdCBvZiBkaXJlY3Rvcmll
cworICAgICAgICBjb250YWluaW5nIHRlc3RzLgorICAgICAgICAoVGVzdFJ1bm5lci5fc2V0dXBf
dGVzdGluZ19lbnZpcm9ubWVudCk6IFNldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKKyAgICAgICAg
cmVxdWlyZWQgdG8gcnVuIFdlYktpdDIgdGVzdHMuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9H
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0phdmFTY3JpcHRUZXN0LmNw
cDogVXNlCisgICAgICAgIEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oIGluc3RlYWQgb2YK
KyAgICAgICAgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaCBzaW5jZSBpdCBpbmNsdWRl
cyBKU1N0cmluZ1JlZkNGLmgKKyAgICAgICAgdW5jb25kaXRpb25hbGx5LgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3Lmg6IERlZmluZSBQbGF0Zm9ybVdLVmlldyBhbmQK
KyAgICAgICAgUGxhdGZvcm1XaW5kb3cgZm9yIEdUSy4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvRXZhbHVhdGVKYXZhU2NyaXB0LmNwcDogUmVtb3ZlCisgICAgICAgIHVu
bmVkZWQgaGVhZGVyIHRoYXQgYnJlYWtzIHRoZSBidWlsZCBvZiBHVEsgcG9ydC4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJldmVudEVtcHR5VXNlckFnZW50LmNwcDog
VXNlCisgICAgICAgIEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oIGluc3RlYWQgb2YKKyAg
ICAgICAgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaCBzaW5jZSBpdCBpbmNsdWRlcyBK
U1N0cmluZ1JlZkNGLmgKKyAgICAgICAgdW5jb25kaXRpb25hbGx5LgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOiBBZGQgZXhwZWN0ZWQgdmFsdWVzIGZvciBHVEsrIHBvcnQuCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9ndGsvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyR3RrLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SW5qZWN0
ZWRCdW5kbGVDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcDogQWRkZWQuCisgICAgICAgIChV
dGlsKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNoZWNrVGVzdEZpbmlzaGVkKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bik6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpVdGlsOjpzbGVlcCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpnZXRFbnZp
cm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0
aWw6OmNyZWF0ZUluamVjdGVkQnVuZGxlUGF0aCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpV
dGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGls
OjpVUkxGb3JOb25FeGlzdGVudFJlc291cmNlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0
aWw6OmlzS2V5RG93bik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJW
aWV3R3RrLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldyk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpkb0tleVN0cm9rZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdl
YlZpZXc6OnNpbXVsYXRlU3BhY2ViYXJLZXlQcmVzcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlQWx0S2V5UHJlc3MpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6ZG9Nb3VzZUJ1dHRvbkV2ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBs
YXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdodENsaWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVNb3VzZU1vdmUpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvZ3RrL21haW4uY3BwOgorICAgICAgICAobWFpbik6CisKKzIwMTItMDQtMjQgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtd
IEJ1aWxkIGFuZCBydW4gVGVzdFdlYktpdEFQSSB1bml0IHRlc3RzCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMyNQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAppbmRleCBlZTBiZDE3Li5mMGQzOWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgK
QEAgLTQxLDYgKzQxLDkgQEAgc3RydWN0IE5TRXZlbnQ7CiB0eXBlZGVmIE5TRXZlbnQgKldLTmF0
aXZlRXZlbnRQdHI7CiAjZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IHRhZ01TRyogV0tOYXRpdmVFdmVudFB0cjsKKyNlbGlmIGRlZmlu
ZWQoQlVJTERJTkdfR1RLX18pCit0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKK3R5
cGVkZWYgY29uc3QgR2RrRXZlbnQqIFdLTmF0aXZlRXZlbnRQdHI7CiAjZWxzZQogdHlwZWRlZiBj
b25zdCB2b2lkKiBXS05hdGl2ZUV2ZW50UHRyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3J1bi1ndGstdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMKaW5kZXgg
NWVmYTYzNy4uMjBlYTMyZCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3Rz
CisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cwpAQCAtNDQsNyArNDQsNyBAQCBjbGFz
cyBTa2lwcGVkVGVzdDoKIAogY2xhc3MgVGVzdFJ1bm5lcjoKIAotICAgIFRFU1RfRElSUyA9IFsg
InVuaXR0ZXN0cyIsICJXZWJLaXQyQVBJVGVzdHMiLCAiVGVzdFdlYktpdEFQSS9XVEYiIF0KKyAg
ICBURVNUX0RJUlMgPSBbICJ1bml0dGVzdHMiLCAiV2ViS2l0MkFQSVRlc3RzIiwgIlRlc3RXZWJL
aXRBUEkvV1RGIiwgIlRlc3RXZWJLaXRBUEkvV2ViS2l0MiIgXQogCiAgICAgU0tJUFBFRCA9IFsK
ICAgICAgICAgU2tpcHBlZFRlc3QoInVuaXR0ZXN0cy90ZXN0ZG93bmxvYWQiLApAQCAtNzEsNiAr
NzEsMTYgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgICAgICAgICAgICAgIlRlc3QgaXMg
Zmxha3kgaW4gR1RLIExpbnV4IDMyLWJpdCBSZWxlYXNlIGJvdCIsCiAgICAgICAgICAgICAgICAg
ICAgIDgyODY4LAogICAgICAgICAgICAgICAgICAgICBbIi93ZWJraXQyL1dlYktpdFdlYlZpZXcv
cmVzb3VyY2VzIl0pLAorICAgICAgICBTa2lwcGVkVGVzdCgiVGVzdFdlYktpdEFQSS9XZWJLaXQy
L1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQiLAorICAgICAgICAgICAgICAgICAg
ICAiVGVzdCB0aW1lcyBvdXQiKSwKKyAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RXZWJLaXRBUEkv
V2ViS2l0Mi9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzIiwKKyAg
ICAgICAgICAgICAgICAgICAgIlRlc3QgdGltZXMgb3V0IiksCisgICAgICAgIFNraXBwZWRUZXN0
KCJUZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFdLQ29ubmVjdGlvblRlc3QiLAorICAgICAgICAg
ICAgICAgICAgICAiVGVzdCB0aW1lcyBvdXQiKSwKKyAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RX
ZWJLaXRBUEkvV2ViS2l0Mi9UZXN0UmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0
YSIsCisgICAgICAgICAgICAgICAgICAgICJTZXNzaW9uIFN0YXRlIGlzIG5vdCBpbXBsZW1lbnRl
ZCBpbiBHVEsrIHBvcnQiKSwKKyAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RXZWJLaXRBUEkvV2Vi
S2l0Mi9UZXN0U3BhY2ViYXJTY3JvbGxpbmciLAorICAgICAgICAgICAgICAgICAgICAiVGVzdCBm
YWlscyIpCiAgICAgXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMsIHRlc3RzPVtd
KToKQEAgLTE4Nyw2ICsxOTcsOSBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICBzZWxmLl90
ZXN0X2VudlsiRElTUExBWSJdID0gc2VsZi5fb3B0aW9ucy5kaXNwbGF5CiAgICAgICAgIHNlbGYu
X3Rlc3RfZW52WyJXRUJLSVRfSU5TUEVDVE9SX1BBVEgiXSA9IG9zLnBhdGguYWJzcGF0aChvcy5w
YXRoLmpvaW4oc2VsZi5fcHJvZ3JhbXNfcGF0aCwgJ3Jlc291cmNlcycsICdpbnNwZWN0b3InKSkK
ICAgICAgICAgc2VsZi5fdGVzdF9lbnZbJ0dTRVRUSU5HU19CQUNLRU5EJ10gPSAnbWVtb3J5Jwor
ICAgICAgICBzZWxmLl90ZXN0X2VudlsiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfUkVTT1VSQ0VT
X1BBVEgiXSA9IG9zLnBhdGguam9pbihzZWxmLl9nZXRfdG9wX2xldmVsX2RpcmVjdG9yeSgpLCAi
VG9vbHMiLCAiVGVzdFdlYktpdEFQSSIsICJUZXN0cyIsICJXZWJLaXQyIikKKyAgICAgICAgc2Vs
Zi5fdGVzdF9lbnZbIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX0lOSkVDVEVEX0JVTkRMRV9QQVRI
Il0gPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHNlbGYuX2dldF9idWlsZF9kaXJlY3Rv
cnkoKSwgIkxpYnJhcmllcyIpKQorICAgICAgICBzZWxmLl90ZXN0X2VudlsiV0VCS0lUX0VYRUNf
UEFUSCJdID0gc2VsZi5fcHJvZ3JhbXNfcGF0aAogCiAgICAgICAgIHRyeToKICAgICAgICAgICAg
IHNlbGYuX3h2ZmIgPSBzZWxmLl9jcmVhdGVfcHJvY2VzcyhbIlh2ZmIiLCBzZWxmLl9vcHRpb25z
LmRpc3BsYXksICItc2NyZWVuIiwgIjAiLCAiODAweDYwMHgyNCIsICItbm9saXN0ZW4iLCAidGNw
Il0sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQppbmRleCBkYzc0YjYwLi5jNTRkZDM0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0KQEAgLTEsMyArMSwxMSBAQAorQlVJTFRfU09V
UkNFUyArPSBcCisJZ2VuZXJhdGUtdGVzdHdlYmtpdGFwaS1mb3J3YXJkaW5nLWhlYWRlcnMKKwor
d2syX3Rlc3RzX3NvdXJjZXMgPSAkKHNoZWxsIGxzICQoc3JjZGlyKS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvKi5jcHApCitnZW5lcmF0ZS10ZXN0d2Via2l0YXBpLWZvcndhcmRp
bmctaGVhZGVyczogJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVy
cy5wbCAkKHdrMl90ZXN0c19zb3VyY2VzKQorCSQoQU1fVl9HRU4pJChQRVJMKSAkPCAkKHNyY2Rp
cikvVG9vbHMvVGVzdFdlYktpdEFQSSAkKEdFTlNPVVJDRVNfV0VCS0lUMikvaW5jbHVkZSBndGsK
KwkkKEFNX1ZfR0VOKSQoUEVSTCkgJDwgJChzcmNkaXIpL1Rvb2xzL1Rlc3RXZWJLaXRBUEkgJChH
RU5TT1VSQ0VTX1dFQktJVDIpL2luY2x1ZGUgc291cAorCiBURVNUX1BST0dTICs9IFwKIAlQcm9n
cmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0Q2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zIFwK
IAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0RnVuY3Rpb25hbCBcCkBAIC0xMCw2ICsx
OCw0MSBAQCBURVNUX1BST0dTICs9IFwKIAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0
VmVjdG9yIFwKIAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0VmVjdG9yUmV2ZXJzZQog
CitpZiBFTkFCTEVfV0VCS0lUMgorVEVTVF9QUk9HUyArPSBcCisJUHJvZ3JhbXMvVGVzdFdlYktp
dEFQSS9XZWJLaXQyL1Rlc3RDb29raWVNYW5hZ2VyIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJ
L1dlYktpdDIvVGVzdERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaCBcCisJUHJvZ3Jh
bXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3REb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jh
c2ggXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0RXZhbHVhdGVKYXZhU2Ny
aXB0IFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEZhaWxlZExvYWQgXAor
CVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0Rm9yY2VSZXBhaW50IFwKKwlQcm9n
cmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEZyYW1lTUlNRVR5cGVIVE1MIFwKKwlQcm9n
cmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEZyYW1lTUlNRVR5cGVQTkcgXAorCVByb2dy
YW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUgXAor
CVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0SW5qZWN0ZWRCdW5kbGVCYXNpYyBc
CisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RMb2FkQWx0ZXJuYXRlSFRNTFN0
cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0
Mi9UZXN0TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrIFwKKwlQcm9ncmFtcy9U
ZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdE1vdXNlTW92ZUFmdGVyQ3Jhc2ggXAorCVByb2dyYW1z
L1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
IFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdE5ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZhaWxzIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVz
dE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlcyBcCisJUHJvZ3JhbXMvVGVz
dFdlYktpdEFQSS9XZWJLaXQyL1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFt
ZXMgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0UGFnZUxvYWRCYXNpYyBc
CisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RQYWdlTG9hZERpZENoYW5nZUxv
Y2F0aW9uV2l0aGluUGFnZUZvckZyYW1lIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktp
dDIvVGVzdFBhcmVudEZyYW1lIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVz
dFByZXZlbnRFbXB0eVVzZXJBZ2VudCBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQy
L1Rlc3RQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjayBcCisJUHJvZ3Jh
bXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250Rmly
ZUVhcmx5IFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFJlc3RvcmVTZXNz
aW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2Vi
S2l0Mi9UZXN0U2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0gXAorCVByb2dyYW1zL1Rlc3RX
ZWJLaXRBUEkvV2ViS2l0Mi9UZXN0U3BhY2ViYXJTY3JvbGxpbmcgXAorCVByb2dyYW1zL1Rlc3RX
ZWJLaXRBUEkvV2ViS2l0Mi9UZXN0VXNlck1lc3NhZ2UgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRB
UEkvV2ViS2l0Mi9UZXN0V0tDb25uZWN0aW9uIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dl
YktpdDIvVGVzdFdLUHJlZmVyZW5jZXMgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0
Mi9UZXN0V0tTdHJpbmcgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0V0tT
dHJpbmdKU1N0cmluZworZW5kaWYKKwogbm9pbnN0X1BST0dSQU1TICs9ICQoVEVTVF9QUk9HUykK
IAogIyBVc2UgLWlzeXN0ZW0gZ2NjIGZsYWcgc28gdGhhdCBnY2MgY29uc2lkZXJzIGd0ZXN0IGhl
YWRlcnMgYXMgc3lzdGVtIGhlYWRlcnMuCkBAIC0zMiw2ICs3NSw5NiBAQCB0ZXN0d2Via2l0YXBp
X3d0Zl90ZXN0c19sZGZsYWdzID0gXAogCS1uby1pbnN0YWxsIFwKIAktbm8tZmFzdC1pbnN0YWxs
CiAKK3Rlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncyA9IFwKKwkkKHRlc3R3ZWJr
aXRhcGlfd3RmX3Rlc3RzX2NwcGZsYWdzKSBcCisJJChDQUlST19DRkxBR1MpIFwKKwkkKEdUS19D
RkxBR1MpIFwKKwkkKExJQlNPVVBfQ0ZMQUdTKQorCit0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfbGRhZGQgPSBcCisJbGliamF2YXNjcmlwdGNvcmVndGstQFdFQktJVEdUS19BUElfTUFKT1Jf
VkVSU0lPTkAuQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkAubGEgXAorCWxpYndlYmtpdDJn
dGstQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkAuQFdFQktJVEdUS19BUElfTUlOT1JfVkVS
U0lPTkAubGEgXAorCUxpYnJhcmllcy9saWJndGVzdC5sYSBcCisJTGlicmFyaWVzL2xpYlRlc3RX
ZWJLaXRBUElXZWJLaXQyVGVzdHMubGEgXAorCSQoQ0FJUk9fTElCUykgXAorCSQoR1RLX0xJQlMp
IFwKKwkkKEdMSUJfTElCUykgXAorCSQoTElCU09VUF9MSUJTKQorCit0ZXN0d2Via2l0YXBpX3dl
YmtpdDJfdGVzdHNfbGRmbGFncyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfbGRmbGFncykK
KworaWYgRU5BQkxFX1dFQktJVDIKK25vaW5zdF9MVExJQlJBUklFUyArPSBcCisJTGlicmFyaWVz
L2xpYlRlc3RXZWJLaXRBUElXZWJLaXQyVGVzdHMubGEgXAorCUxpYnJhcmllcy9saWJUZXN0V2Vi
S2l0QVBJSW5qZWN0ZWRCdW5kbGUubGEKK2VuZGlmCisKKyMgVGVzdFdlYktpdEFQSVdlYktpdDJU
ZXN0cworTGlicmFyaWVzX2xpYlRlc3RXZWJLaXRBUElXZWJLaXQyVGVzdHNfbGFfU09VUkNFUyA9
IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmNwcCBcCisJVG9vbHMv
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJ
L1BsYXRmb3JtV2ViVmlldy5oIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL0phdmFTY3JpcHRUZXN0
LmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9KYXZhU2NyaXB0VGVzdC5oIFwKKwlUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzQ29udHJvbGxlci5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHNDb250cm9sbGVyLmggXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtVXRp
bGl0aWVzR3RrLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJWaWV3
R3RrLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvbWFpbi5jcHAKKworTGlicmFyaWVz
X2xpYlRlc3RXZWJLaXRBUElXZWJLaXQyVGVzdHNfbGFfQ1BQRkxBR1MgPSBcCisJLWlzeXN0ZW0g
JChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUgXAorCS1JJChzcmNkaXIp
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L2luY2x1ZGUgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
aW5jbHVkZSBcCisJJChnbG9iYWxfY3BwZmxhZ3MpIFwKKwkkKGphdmFzY3JpcHRjb3JlX2NwcGZs
YWdzKSBcCisJJChHVEtfQ0ZMQUdTKQorCisjIFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZQor
TGlicmFyaWVzX2xpYlRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZV9sYV9TT1VSQ0VTID0gXAor
CVRvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmNwcCBcCisJVG9v
bHMvVGVzdFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuaCBcCisJVG9vbHMvVGVz
dFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZU1haW4uY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJ
L0luamVjdGVkQnVuZGxlVGVzdC5oIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRp
bGl0aWVzLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oIFwK
KwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRG9jdW1lbnRTdGFydFVzZXJTY3Jp
cHRBbGVydENyYXNoX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9IaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwIFwKKwlU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRp
cmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9Nb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRfQnVuZGxlLmNw
cCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZhaWxzX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfQnVuZGxl
LmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBcCisJVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL1Jlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVu
ZGxlLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Nob3VsZEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZV9CdW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvV0tDb25uZWN0aW9uX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJL
aXRBUEkvZ3RrL0luamVjdGVkQnVuZGxlQ29udHJvbGxlckd0ay5jcHAgXAorCVRvb2xzL1Rlc3RX
ZWJLaXRBUEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcAorCitMaWJyYXJpZXNfbGliVGVz
dFdlYktpdEFQSUluamVjdGVkQnVuZGxlX2xhX0xERkxBR1MgPSBcCisJLXJwYXRoICR7c2hlbGwg
cHdkfS8kKHRvcF9idWlsZGRpcikvTGlicmFyaWVzLy5saWJzIFwKKwkkKG5vX3VuZGVmaW5lZCkg
XAorCS1hdm9pZC12ZXJzaW9uIFwKKwktbW9kdWxlCisKK0xpYnJhcmllc19saWJUZXN0V2ViS2l0
QVBJSW5qZWN0ZWRCdW5kbGVfbGFfQ1BQRkxBR1MgPSBcCisJLWlzeXN0ZW0gJChzcmNkaXIpL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUgXAorCS1JJChzcmNkaXIpL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUg
XAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL0luamVjdGVkQnVuZGxlIFwKKwkt
SSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2luY2x1ZGUgXAorCSQoZ2xv
YmFsX2NwcGZsYWdzKSBcCisJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykgXAorCSQoR1RLX0NG
TEFHUykKKworTGlicmFyaWVzX2xpYlRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZV9sYV9DWFhG
TEFHUyA9ICQoZ2xvYmFsX2N4eGZsYWdzKQorTGlicmFyaWVzX2xpYlRlc3RXZWJLaXRBUElJbmpl
Y3RlZEJ1bmRsZV9sYV9DRkxBR1MgPSAkKGdsb2JhbF9jZmxhZ3MpCisKIFByb2dyYW1zX1Rlc3RX
ZWJLaXRBUElfV1RGX1Rlc3RDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnNfU09VUkNFUyA9IFwK
IAlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlv
bnMuY3BwCiBQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0Q2hlY2tlZEFyaXRobWV0aWNP
cGVyYXRpb25zX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19jcHBmbGFncykK
QEAgLTkyLDMgKzIyNSwxODkgQEAgUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdFZlY3Rv
clJldmVyc2VfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3QKIFByb2dyYW1zX1Rl
c3RXZWJLaXRBUElfV1RGX1Rlc3RWZWN0b3JSZXZlcnNlX0xEQUREID0gJCh0ZXN0d2Via2l0YXBp
X3d0Zl90ZXN0c19sZGFkZCkKIFByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RWZWN0b3JS
ZXZlcnNlX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2xkZmxhZ3MpCiAKKyMg
V2ViS2l0MiBUZXN0cworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RDb29raWVN
YW5hZ2VyX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0Nv
b2tpZU1hbmFnZXIuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdENvb2tp
ZU1hbmFnZXJfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFn
cykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0Q29va2llTWFuYWdlcl9MREFE
RCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3RDb29raWVNYW5hZ2VyX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRh
cGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9TT1VSQ0VTID0gXAorCVRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFs
ZXJ0Q3Jhc2guY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdERvY3VtZW50
U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJr
aXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RE
b2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlf
d2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
RG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRh
cGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdERvd25sb2FkRGVjaWRlRGVzdGluYXRpb25DcmFzaF9TT1VSQ0VTID0gXAorCVRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Eb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jh
c2guY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdERvd25sb2FkRGVjaWRl
RGVzdGluYXRpb25DcmFzaF9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3Rz
X2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3REb3dubG9hZERl
Y2lkZURlc3RpbmF0aW9uQ3Jhc2hfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0
c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RG93bmxvYWREZWNp
ZGVEZXN0aW5hdGlvbkNyYXNoX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0
c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEV2YWx1YXRl
SmF2YVNjcmlwdF9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9FdmFsdWF0ZUphdmFTY3JpcHQuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdEV2YWx1YXRlSmF2YVNjcmlwdF9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQy
X3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RFdmFs
dWF0ZUphdmFTY3JpcHRfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFk
ZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RXZhbHVhdGVKYXZhU2NyaXB0
X0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9n
cmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZhaWxlZExvYWRfU09VUkNFUyA9IFwKKwlU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRmFpbGVkTG9hZC5jcHAKK1Byb2dyYW1z
X1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RmFpbGVkTG9hZF9DUFBGTEFHUyA9ICQodGVzdHdl
YmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9X
ZWJLaXQyX1Rlc3RGYWlsZWRMb2FkX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZhaWxlZExvYWRf
TERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dy
YW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0Rm9yY2VSZXBhaW50X1NPVVJDRVMgPSBcCisJ
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0ZvcmNlUmVwYWludC5jcHAKK1Byb2dy
YW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0Rm9yY2VSZXBhaW50X0NQUEZMQUdTID0gJCh0
ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0
QVBJX1dlYktpdDJfVGVzdEZvcmNlUmVwYWludF9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJr
aXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RGb3Jj
ZVJlcGFpbnRfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3Mp
CisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1FVHlwZUhUTUxf
U09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRnJhbWVNSU1F
VHlwZUhUTUwuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZyYW1lTUlN
RVR5cGVIVE1MX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxh
Z3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZyYW1lTUlNRVR5cGVIVE1M
X0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19U
ZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZyYW1lTUlNRVR5cGVIVE1MX0xERkxBR1MgPSAkKHRl
c3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0
QVBJX1dlYktpdDJfVGVzdEZyYW1lTUlNRVR5cGVQTkdfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRnJhbWVNSU1FVHlwZVBORy5jcHAKK1Byb2dyYW1zX1Rl
c3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1FVHlwZVBOR19DUFBGTEFHUyA9ICQodGVz
dHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQ
SV9XZWJLaXQyX1Rlc3RGcmFtZU1JTUVUeXBlUE5HX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dl
YmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZy
YW1lTUlNRVR5cGVQTkdfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xk
ZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0SGl0VGVzdFJlc3Vs
dE5vZGVIYW5kbGVfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dl
YmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEhp
dFRlc3RSZXN1bHROb2RlSGFuZGxlX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90
ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEluamVj
dGVkQnVuZGxlQmFzaWNfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0SW5qZWN0ZWRCdW5kbGVCYXNpY19DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93
ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rl
c3RJbmplY3RlZEJ1bmRsZUJhc2ljX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEluamVjdGVkQnVu
ZGxlQmFzaWNfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3Mp
CisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TG9hZEFsdGVybmF0ZUhUTUxT
dHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL0xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVS
TC5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TG9hZEFsdGVybmF0ZUhU
TUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dl
YmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTF9MREFERCA9ICQodGVz
dHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9X
ZWJLaXQyX1Rlc3RMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkxfTERG
TEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1z
X1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENh
bGxiYWNrX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0xv
YWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjay5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0NQ
UEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFt
c19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RD
YWxsYmFja19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGly
ZWN0Q2FsbGJhY2tfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxh
Z3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TW91c2VNb3ZlQWZ0ZXJD
cmFzaF9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Nb3Vz
ZU1vdmVBZnRlckNyYXNoLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RN
b3VzZU1vdmVBZnRlckNyYXNoX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdE1vdXNlTW92
ZUFmdGVyQ3Jhc2hfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TW91c2VNb3ZlQWZ0ZXJDcmFzaF9M
REZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3Jh
bXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTmV3Rmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0LmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRfQ1BQRkxBR1MgPSAkKHRlc3R3
ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0X0xEQUREID0gJCh0ZXN0
d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9MREZMQUdTID0gJCh0ZXN0
d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQ
SV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlsc19TT1VSQ0VT
ID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGYWlscy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9U
ZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfQ1BQRkxBR1MgPSAkKHRlc3R3
ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfTERBREQgPSAk
KHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRB
UElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfTERGTEFH
UyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rl
c3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
SW1hZ2VzX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05l
d0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlcy5jcHAKK1Byb2dyYW1zX1Rlc3RX
ZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1h
Z2VzX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQ
cm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckltYWdlc19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xk
YWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQy
X3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZy
YW1lcy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtp
dDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdE5l
d0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19MREFERCA9ICQodGVzdHdlYmtpdGFw
aV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rl
c3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfTERGTEFHUyA9ICQodGVzdHdl
YmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0UGFnZUxvYWRCYXNpY19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9QYWdlTG9hZEJhc2ljLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQ
SV9XZWJLaXQyX1Rlc3RQYWdlTG9hZEJhc2ljX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dl
YmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dFBhZ2VMb2FkQmFzaWNfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFk
ZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UGFnZUxvYWRCYXNpY19MREZM
QUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNf
VGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGlu
UGFnZUZvckZyYW1lX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1BhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwCitQcm9n
cmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25X
aXRoaW5QYWdlRm9yRnJhbWVfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0
c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UGFnZUxvYWRE
aWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZV9MREFERCA9ICQodGVzdHdlYmtpdGFw
aV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rl
c3RQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lX0xERkxBR1MgPSAk
KHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2Vi
S2l0QVBJX1dlYktpdDJfVGVzdFBhcmVudEZyYW1lX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1BhcmVudEZyYW1lLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XZWJLaXQyX1Rlc3RQYXJlbnRGcmFtZV9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93
ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rl
c3RQYXJlbnRGcmFtZV9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRk
KQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQYXJlbnRGcmFtZV9MREZMQUdT
ID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVz
dFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcmV2ZW50RW1wdHlVc2VyQWdlbnRfU09VUkNFUyA9IFwK
KwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJldmVudEVtcHR5VXNlckFnZW50
LmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcmV2ZW50RW1wdHlVc2Vy
QWdlbnRfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UHJldmVudEVtcHR5VXNlckFnZW50
X0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19U
ZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFByZXZlbnRFbXB0eVVzZXJBZ2VudF9MREZMQUdTID0g
JCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3RQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxs
YmFja19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Qcml2
YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKK1Byb2dyYW1zX1Rlc3RX
ZWJLaXRBUElfV2ViS2l0Ml9UZXN0UHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2Fs
bGJhY2tfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UHJpdmF0ZUJyb3dzaW5nUHVzaFN0
YXRlTm9IaXN0b3J5Q2FsbGJhY2tfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0
c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UHJpdmF0ZUJyb3dz
aW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2tfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93
ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9U
ZXN0UmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9TT1VSQ0VTID0gXAorCVRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9SZXNwb25zaXZlbmVzc1RpbWVyRG9lc250Rmly
ZUVhcmx5LmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RSZXNwb25zaXZl
bmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtp
dDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFJl
c3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlf
d2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
UmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9MREZMQUdTID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3RSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhX1NPVVJDRVMgPSBc
CisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Jlc3RvcmVTZXNzaW9uU3RhdGVD
b250YWluaW5nRm9ybURhdGEuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dFJlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGFfQ1BQRkxBR1MgPSAkKHRlc3R3
ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0UmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YV9MREFERCA9
ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XZWJLaXQyX1Rlc3RSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhX0xE
RkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFt
c19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
X1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Nob3VsZEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3RTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9DUFBGTEFHUyA9ICQodGVzdHdlYmtp
dGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3RTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9MREFERCA9ICQodGVzdHdlYmtp
dGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3RTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9MREZMQUdTID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3RTcGFjZWJhclNjcm9sbGluZ19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9TcGFjZWJhclNjcm9sbGluZy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0U3BhY2ViYXJTY3JvbGxpbmdfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJr
aXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0U3BhY2ViYXJTY3JvbGxpbmdfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0
Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0U3BhY2Vi
YXJTY3JvbGxpbmdfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxh
Z3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0VXNlck1lc3NhZ2VfU09V
UkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2Uu
Y3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFVzZXJNZXNzYWdlX0NQUEZM
QUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19U
ZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFVzZXJNZXNzYWdlX0xEQUREID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdFVzZXJNZXNzYWdlX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19s
ZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLQ29ubmVjdGlv
bl9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS0Nvbm5l
Y3Rpb24uY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLQ29ubmVjdGlv
bl9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RXS0Nvbm5lY3Rpb25fTERBREQgPSAkKHRl
c3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0V0tDb25uZWN0aW9uX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0
Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdL
UHJlZmVyZW5jZXNfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvV0tQcmVmZXJlbmNlcy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
V0tQcmVmZXJlbmNlc19DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2Nw
cGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RXS1ByZWZlcmVuY2Vz
X0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19U
ZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLUHJlZmVyZW5jZXNfTERGTEFHUyA9ICQodGVzdHdl
YmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0V0tTdHJpbmdfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvV0tTdHJpbmcuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdFdLU3RyaW5nX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3Bw
ZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLU3RyaW5nX0xEQURE
ID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2Vi
S2l0QVBJX1dlYktpdDJfVGVzdFdLU3RyaW5nX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Vi
a2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dFdLU3RyaW5nSlNTdHJpbmdfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvV0tTdHJpbmdKU1N0cmluZy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0V0tTdHJpbmdKU1N0cmluZ19DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJr
aXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RX
S1N0cmluZ0pTU3RyaW5nX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRh
ZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLU3RyaW5nSlNTdHJpbmdf
TERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0phdmFTY3JpcHRUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3QuY3BwCmluZGV4IDRmMTA5YjYuLjg1YmU4OTIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3QuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3QuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNp
bmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlRlc3QuaCIKLSNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ29udGV4dFJlZi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRy
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgogI2luY2x1ZGUgPFdlYktpdDIv
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmll
dy5oCmluZGV4IDAwNzIwZjQuLmNmMDEzMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdl
YlZpZXcuaApAQCAtNDMsNiArNDMsOSBAQCB0eXBlZGVmIE5TV2luZG93ICpQbGF0Zm9ybVdpbmRv
dzsKICNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKQogdHlwZWRlZiBXS1Zp
ZXdSZWYgUGxhdGZvcm1XS1ZpZXc7CiB0eXBlZGVmIEhXTkQgUGxhdGZvcm1XaW5kb3c7CisjZWxp
ZiBQTEFURk9STShHVEspCit0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdLVmlldzsKK3R5cGVk
ZWYgR3RrV2lkZ2V0ICpQbGF0Zm9ybVdpbmRvdzsKICNlbmRpZgogCiBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
RXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9FdmFsdWF0ZUphdmFTY3JpcHQuY3BwCmluZGV4IDk5YjdmZjcuLjkwYWQwNGYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9FdmFsdWF0ZUphdmFTY3JpcHQu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9FdmFsdWF0ZUphdmFT
Y3JpcHQuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbmNsdWRlICJUZXN0LmgiCi0jaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaD4KICNpbmNsdWRlIDxXZWJLaXQy
L1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJl
dmVudEVtcHR5VXNlckFnZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCmluZGV4IDRjNTIyNzguLmM1YWNiNjEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QcmV2ZW50RW1wdHlVc2Vy
QWdlbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QcmV2ZW50
RW1wdHlVc2VyQWdlbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbmNsdWRlICJUZXN0
LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaD4KKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0NvbnRleHRSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0
YWluUHRyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQcmVmZXJl
bmNlcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQcmVmZXJlbmNl
cy5jcHAKaW5kZXggMmExODFkZC4uNWFmMDFlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcApAQCAtNTcsNiArNTcsMTQgQEAg
VEVTVChXZWJLaXQyLCBXS1ByZWZlcmVuY2VzRGVmYXVsdHMpCiAgICAgc3RhdGljIGNvbnN0IGNo
YXIqIGV4cGVjdGVkQ3Vyc2l2ZUZvbnRGYW1pbHkgPSAiQXBwbGUgQ2hhbmNlcnkiOwogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBleHBlY3RlZEZhbnRhc3lGb250RmFtaWx5ID0gIlBhcHlydXMiOwog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBleHBlY3RlZFBpY3RvZ3JhcGhGb250RmFtaWx5ID0gIkFw
cGxlIENvbG9yIEVtb2ppIjsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciogZXhwZWN0ZWRTdGFuZGFyZEZvbnRGYW1pbHkgPSAiVGltZXMiOworICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBleHBlY3RlZEZpeGVkRm9udEZhbWlseSA9ICJDb3VyaWVyIE5ldyI7CisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkU2VyaWZGb250RmFtaWx5ID0gIlRpbWVzIjsKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRTYW5zU2VyaWZGb250RmFtaWx5ID0gIkhlbHZl
dGljYSI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkQ3Vyc2l2ZUZvbnRGYW1pbHkg
PSAiQ29taWMgU2FucyBNUyI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkRmFudGFz
eUZvbnRGYW1pbHkgPSAiSW1wYWN0IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRQ
aWN0b2dyYXBoRm9udEZhbWlseSA9ICJUaW1lcyI7CiAjZW5kaWYKIAogICAgIFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZSA9IFdLUHJlZmVyZW5jZXNDcmVhdGUoKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL0luamVjdGVkQnVuZGxlQ29udHJvbGxlckd0ay5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL2d0ay9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJHdGsuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkNTUwMDIKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJHdGsu
Y3BwCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVu
ZGxlQ29udHJvbGxlci5oIgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3ZvaWQgSW5q
ZWN0ZWRCdW5kbGVDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQorCit9IC8v
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2d0ay9QbGF0Zm9ybVV0aWxpdGllc0d0ay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9Q
bGF0Zm9ybVV0aWxpdGllc0d0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNDA5NTM1NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1Bs
YXRmb3JtVXRpbGl0aWVzR3RrLmNwcApAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK25hbWVzcGFjZSBVdGlsIHsKKwor
c3RhdGljIGdib29sZWFuIGNoZWNrVGVzdEZpbmlzaGVkKGdwb2ludGVyIHVzZXJEYXRhKQorewor
ICAgIGJvb2wqIGRvbmUgPSBzdGF0aWNfY2FzdDxib29sKj4odXNlckRhdGEpOworCisgICAgaWYg
KCpkb25lKQorICAgICAgICBndGtfbWFpbl9xdWl0KCk7CisKKyAgICByZXR1cm4gISpkb25lOwor
fQorCit2b2lkIHJ1bihib29sKiBkb25lKQoreworICAgIGdfdGltZW91dF9hZGQoNTAwLCBjaGVj
a1Rlc3RGaW5pc2hlZCwgZG9uZSk7CisgICAgZ3RrX21haW4oKTsKK30KKwordm9pZCBzbGVlcChk
b3VibGUgc2Vjb25kcykKK3sKKyAgICBnX3VzbGVlcChzZWNvbmRzICogMTAwMDAwMCk7Cit9CisK
K3N0YXRpYyBjaGFyKiBnZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKGNvbnN0IGNo
YXIqIHZhcmlhYmxlTmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZh
cmlhYmxlTmFtZSk7CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBnX3ByaW50ZXJyKCIlcyBl
bnZpcm9ubWVudCB2YXJpYWJsZSBub3QgZm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAg
IGV4aXQoMSk7CisgICAgfQorICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19m
aWxlbmFtZV90b191dGY4KHZhbHVlLCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK1dL
U3RyaW5nUmVmIGNyZWF0ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7CisgICAgR093blB0cjxjaGFy
PiBpbmplY3RlZEJ1bmRsZVBhdGgoZ2V0RW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOFN0cmluZygi
VEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfSU5KRUNURURfQlVORExFX1BBVEgiKSk7CisgICAgR093
blB0cjxjaGFyPiBpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoaW5qZWN0
ZWRCdW5kbGVQYXRoLmdldCgpLCAibGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlLmxhIiwg
TlVMTCkpOworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhpbmplY3Rl
ZEJ1bmRsZUZpbGVuYW1lLmdldCgpKTsKK30KKworV0tVUkxSZWYgY3JlYXRlVVJMRm9yUmVzb3Vy
Y2UoY29uc3QgY2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGV4dGVuc2lvbikKK3sKKyAgICBH
T3duUHRyPGNoYXI+IHRlc3RSZXNvdXJjZXNQYXRoKGdldEVudmlyb25tZW50VmFyaWFibGVBc1VU
RjhTdHJpbmcoIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX1JFU09VUkNFU19QQVRIIikpOworICAg
IEdPd25QdHI8Y2hhcj4gcmVzb3VyY2VCYXNlbmFtZShnX3N0cmR1cF9wcmludGYoIiVzLiVzIiwg
cmVzb3VyY2UsIGV4dGVuc2lvbikpOworICAgIEdPd25QdHI8Y2hhcj4gcmVzb3VyY2VGaWxlbmFt
ZShnX2J1aWxkX2ZpbGVuYW1lKHRlc3RSZXNvdXJjZXNQYXRoLmdldCgpLCByZXNvdXJjZUJhc2Vu
YW1lLmdldCgpLCBOVUxMKSk7CisgICAgR1JlZlB0cjxHRmlsZT4gcmVzb3VyY2VGaWxlID0gYWRv
cHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgocmVzb3VyY2VGaWxlbmFtZS5nZXQoKSkpOworICAg
IEdPd25QdHI8Y2hhcj4gcmVzb3VyY2VVUkkoZ19maWxlX2dldF91cmkocmVzb3VyY2VGaWxlLmdl
dCgpKSk7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHJlc291cmNlVVJJ
LmdldCgpKTsKK30KKworV0tVUkxSZWYgVVJMRm9yTm9uRXhpc3RlbnRSZXNvdXJjZSgpCit7Cisg
ICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJmaWxlOi8vL2RvZXMtbm90LWV4
aXN0Lmh0bWwiKTsKK30KKworYm9vbCBpc0tleURvd24oV0tOYXRpdmVFdmVudFB0ciBldmVudCkK
K3sKKyAgICByZXR1cm4gZXZlbnQtPnR5cGUgPT0gR0RLX0tFWV9QUkVTUzsKK30KKworfSAvLyBu
YW1lc3BhY2UgVXRpbAorfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMzFhZDY0NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKQEAgLTAsMCArMSwxNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorCisjaW5jbHVkZSA8V2Vi
Q29yZS9HT3duUHRyR3RrLmg+CisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dPd25QdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitQbGF0Zm9y
bVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdl
R3JvdXBSZWYgcGFnZUdyb3VwUmVmKQoreworICAgIG1fd2luZG93ID0gZ3RrX3dpbmRvd19uZXco
R1RLX1dJTkRPV19UT1BMRVZFTCk7CisgICAgbV92aWV3ID0gV0tWaWV3Q3JlYXRlKGNvbnRleHRS
ZWYsIHBhZ2VHcm91cFJlZik7CisgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUiht
X3dpbmRvdyksIEdUS19XSURHRVQobV92aWV3KSk7CisgICAgZ3RrX3dpZGdldF9zaG93KEdUS19X
SURHRVQobV92aWV3KSk7Cit9CisKK1BsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldygp
Cit7CisgICAgZ3RrX3dpZGdldF9kZXN0cm95KG1fd2luZG93KTsKK30KKworV0tQYWdlUmVmIFBs
YXRmb3JtV2ViVmlldzo6cGFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdLVmlld0dldFBhZ2Uo
bV92aWV3KTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2lnbmVkIHdp
ZHRoLCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgZ3RrX3dpbmRvd19yZXNpemUoR1RLX1dJTkRP
VyhtX3dpbmRvdyksIHdpZHRoLCBoZWlnaHQpOworfQorCitzdGF0aWMgdm9pZCBkb0tleVN0cm9r
ZShHdGtXaWRnZXQqIHZpZXdXaWRnZXQsIHVuc2lnbmVkIGludCBrZXlWYWwpCit7CisgICAgR093
blB0cjxHZGtFdmVudD4gZXZlbnQoZ2RrX2V2ZW50X25ldyhHREtfS0VZX1BSRVNTKSk7CisgICAg
ZXZlbnQtPmtleS5rZXl2YWwgPSBrZXlWYWw7CisgICAgZXZlbnQtPmtleS50aW1lID0gR0RLX0NV
UlJFTlRfVElNRTsKKyAgICBldmVudC0+a2V5LnN0YXRlID0gMDsKKyAgICBldmVudC0+a2V5Lndp
bmRvdyA9IGd0a193aWRnZXRfZ2V0X3dpbmRvdyh2aWV3V2lkZ2V0KTsKKyAgICBnX29iamVjdF9y
ZWYoZXZlbnQtPmtleS53aW5kb3cpOworICAgIGdka19ldmVudF9zZXRfZGV2aWNlKGV2ZW50Lmdl
dCgpLCBnZGtfZGV2aWNlX21hbmFnZXJfZ2V0X2NsaWVudF9wb2ludGVyKGdka19kaXNwbGF5X2dl
dF9kZXZpY2VfbWFuYWdlcihndGtfd2lkZ2V0X2dldF9kaXNwbGF5KHZpZXdXaWRnZXQpKSkpOwor
CisgICAgLy8gV2hlbiBzeW50aGVzaXppbmcgYW4gZXZlbnQsIGFuIGludmFsaWQgaGFyZHdhcmVf
a2V5Y29kZSB2YWx1ZSBjYW4gY2F1c2UgaXQgdG8gYmUgYmFkbHkgcHJvY2Vzc2VkIGJ5IEdUSysu
CisgICAgR093blB0cjxHZGtLZXltYXBLZXk+IGtleXM7CisgICAgaW50IGtleXNDb3VudDsKKyAg
ICBpZiAoZ2RrX2tleW1hcF9nZXRfZW50cmllc19mb3Jfa2V5dmFsKGdka19rZXltYXBfZ2V0X2Rl
ZmF1bHQoKSwga2V5VmFsLCAma2V5cy5vdXRQdHIoKSwgJmtleXNDb3VudCkpCisgICAgICAgIGV2
ZW50LT5rZXkuaGFyZHdhcmVfa2V5Y29kZSA9IGtleXMuZ2V0KClbMF0ua2V5Y29kZTsKKworICAg
IGd0a19tYWluX2RvX2V2ZW50KGV2ZW50LmdldCgpKTsKKyAgICBldmVudC0+a2V5LnR5cGUgPSBH
REtfS0VZX1JFTEVBU0U7CisgICAgZ3RrX21haW5fZG9fZXZlbnQoZXZlbnQuZ2V0KCkpOworfQor
Cit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKCkKK3sKKyAg
ICBHdGtXaWRnZXQqIHZpZXdXaWRnZXQgPSBHVEtfV0lER0VUKG1fdmlldyk7CisgICAgaWYgKCFn
dGtfd2lkZ2V0X2dldF9yZWFsaXplZCh2aWV3V2lkZ2V0KSkKKyAgICAgICAgZ3RrX3dpZGdldF9z
aG93KG1fd2luZG93KTsKKyAgICBkb0tleVN0cm9rZSh2aWV3V2lkZ2V0LCBHREtfS0VZX0tQX1Nw
YWNlKTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlQWx0S2V5UHJlc3MoKQor
eworICAgIEd0a1dpZGdldCogdmlld1dpZGdldCA9IEdUS19XSURHRVQobV92aWV3KTsKKyAgICBp
ZiAoIWd0a193aWRnZXRfZ2V0X3JlYWxpemVkKHZpZXdXaWRnZXQpKQorICAgICAgICBndGtfd2lk
Z2V0X3Nob3cobV93aW5kb3cpOworICAgIGRvS2V5U3Ryb2tlKHZpZXdXaWRnZXQsIEdES19LRVlf
QWx0X0wpOworfQorCitzdGF0aWMgdm9pZCBkb01vdXNlQnV0dG9uRXZlbnQoR3RrV2lkZ2V0KiB2
aWV3V2lkZ2V0LCBHZGtFdmVudFR5cGUgZXZlbnRUeXBlLCBpbnQgeCwgaW50IHksIHVuc2lnbmVk
IGludCBidXR0b24pCit7CisgICAgR093blB0cjxHZGtFdmVudD4gZXZlbnQoZ2RrX2V2ZW50X25l
dyhldmVudFR5cGUpKTsKKyAgICBldmVudC0+YnV0dG9uLnggPSB4OworICAgIGV2ZW50LT5idXR0
b24ueSA9IHk7CisgICAgZXZlbnQtPmJ1dHRvbi5idXR0b24gPSBidXR0b247CisgICAgZXZlbnQt
PmJ1dHRvbi50aW1lID0gR0RLX0NVUlJFTlRfVElNRTsKKyAgICBldmVudC0+YnV0dG9uLmF4ZXMg
PSAwOworICAgIGV2ZW50LT5idXR0b24uc3RhdGUgPSAwOworICAgIGV2ZW50LT5idXR0b24ud2lu
ZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KHZpZXdXaWRnZXQpOworICAgIGdfb2JqZWN0X3Jl
ZihldmVudC0+YnV0dG9uLndpbmRvdyk7CisgICAgZXZlbnQtPmJ1dHRvbi5kZXZpY2UgPSBnZGtf
ZGV2aWNlX21hbmFnZXJfZ2V0X2NsaWVudF9wb2ludGVyKGdka19kaXNwbGF5X2dldF9kZXZpY2Vf
bWFuYWdlcihndGtfd2lkZ2V0X2dldF9kaXNwbGF5KHZpZXdXaWRnZXQpKSk7CisKKyAgICBpbnQg
eFJvb3QsIHlSb290OworICAgIGdka193aW5kb3dfZ2V0X3Jvb3RfY29vcmRzKGd0a193aWRnZXRf
Z2V0X3dpbmRvdyh2aWV3V2lkZ2V0KSwgeCwgeSwgJnhSb290LCAmeVJvb3QpOworICAgIGV2ZW50
LT5idXR0b24ueF9yb290ID0geFJvb3Q7CisgICAgZXZlbnQtPmJ1dHRvbi55X3Jvb3QgPSB5Um9v
dDsKKyAgICBndGtfbWFpbl9kb19ldmVudChldmVudC5nZXQoKSk7Cit9CisKK3ZvaWQgUGxhdGZv
cm1XZWJWaWV3OjpzaW11bGF0ZVJpZ2h0Q2xpY2sodW5zaWduZWQgeCwgdW5zaWduZWQgeSkKK3sK
KyAgICBHdGtXaWRnZXQqIHZpZXdXaWRnZXQgPSBHVEtfV0lER0VUKG1fdmlldyk7CisgICAgaWYg
KCFndGtfd2lkZ2V0X2dldF9yZWFsaXplZCh2aWV3V2lkZ2V0KSkKKyAgICAgICAgZ3RrX3dpZGdl
dF9zaG93KG1fd2luZG93KTsKKyAgICBkb01vdXNlQnV0dG9uRXZlbnQodmlld1dpZGdldCwgR0RL
X0JVVFRPTl9QUkVTUywgeCwgeSwgMyk7CisgICAgZG9Nb3VzZUJ1dHRvbkV2ZW50KHZpZXdXaWRn
ZXQsIEdES19CVVRUT05fUkVMRUFTRSwgeCwgeSwgMyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJW
aWV3OjpzaW11bGF0ZU1vdXNlTW92ZSh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQoreworICAgIEdP
d25QdHI8R2RrRXZlbnQ+IGV2ZW50KGdka19ldmVudF9uZXcoR0RLX01PVElPTl9OT1RJRlkpKTsK
KyAgICBldmVudC0+bW90aW9uLnggPSB4OworICAgIGV2ZW50LT5tb3Rpb24ueSA9IHk7CisgICAg
ZXZlbnQtPm1vdGlvbi50aW1lID0gR0RLX0NVUlJFTlRfVElNRTsKKyAgICBldmVudC0+bW90aW9u
LnN0YXRlID0gMDsKKyAgICBldmVudC0+bW90aW9uLmF4ZXMgPSAwOworCisgICAgR3RrV2lkZ2V0
KiB2aWV3V2lkZ2V0ID0gR1RLX1dJREdFVChtX3ZpZXcpOworICAgIGlmICghZ3RrX3dpZGdldF9n
ZXRfcmVhbGl6ZWQodmlld1dpZGdldCkpCisgICAgICAgIGd0a193aWRnZXRfc2hvdyhtX3dpbmRv
dyk7CisgICAgZXZlbnQtPm1vdGlvbi53aW5kb3cgPSBndGtfd2lkZ2V0X2dldF93aW5kb3codmll
d1dpZGdldCk7CisgICAgZ19vYmplY3RfcmVmKGV2ZW50LT5tb3Rpb24ud2luZG93KTsKKyAgICBl
dmVudC0+bW90aW9uLmRldmljZSA9IGdka19kZXZpY2VfbWFuYWdlcl9nZXRfY2xpZW50X3BvaW50
ZXIoZ2RrX2Rpc3BsYXlfZ2V0X2RldmljZV9tYW5hZ2VyKGd0a193aWRnZXRfZ2V0X2Rpc3BsYXko
dmlld1dpZGdldCkpKTsKKworICAgIGludCB4Um9vdCwgeVJvb3Q7CisgICAgZ2RrX3dpbmRvd19n
ZXRfcm9vdF9jb29yZHMoZ3RrX3dpZGdldF9nZXRfd2luZG93KHZpZXdXaWRnZXQpLCB4LCB5LCAm
eFJvb3QsICZ5Um9vdCk7CisgICAgZXZlbnQtPm1vdGlvbi54X3Jvb3QgPSB4Um9vdDsKKyAgICBl
dmVudC0+bW90aW9uLnlfcm9vdCA9IHlSb290OworICAgIGd0a19tYWluX2RvX2V2ZW50KGV2ZW50
LmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvbWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0
ay9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjdmZWY2Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvbWFpbi5jcHAKQEAgLTAs
MCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdHNDb250cm9sbGVyLmgiCisK
KyNpbmNsdWRlIDxndGsvZ3RrLmg+CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikK
K3sKKyAgICBndGtfaW5pdCgmYXJnYywgJmFyZ3YpOworCisgICAgcmV0dXJuIFRlc3RXZWJLaXRB
UEk6OlRlc3RzQ29udHJvbGxlcjo6c2hhcmVkKCkucnVuKGFyZ2MsIGFyZ3YpID8gRVhJVF9TVUND
RVNTIDogRVhJVF9GQUlMVVJFOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138743</attachid>
            <date>2012-04-24 23:31:01 -0700</date>
            <delta_ts>2012-04-26 06:17:14 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>test-wk-api-wk2-3.diff</filename>
            <type>text/plain</type>
            <size>44564</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3NjhiOGFjLi5lNjdjNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEJ1aWxkIGFuZCBydW4gVGVzdFdlYktpdEFQSSBXZWJLaXQyIHVu
aXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg0NDQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oOiBEZWZpbmUgV0tOYXRpdmVFdmVudFB0
ciBhcworICAgICAgICBHZGtFdmVudCBmb3IgdGhlIEdUSysgcG9ydC4KKwogMjAxMi0wNC0yNCAg
QWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAg
ICBbUXRdIFRhcC10byB6b29tIHNob3VsZCBuYXZpZ2F0ZSB3aGVuIGFwcHJvcGlhdGUKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5Zjc3YzRjLi44
MGRlODc4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsNjAgQEAKIDIwMTItMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFtHVEtdIEJ1aWxkIGFuZCBydW4gVGVzdFdlYktp
dEFQSSBXZWJLaXQyIHVuaXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg0NDQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1ndGstdGVzdHM6CisgICAgICAgIChUZXN0UnVu
bmVyKTogQWRkIFRlc3RXZWJLaXRBUEkvV2ViS2l0MiB0byB0aGUgbGlzdCBvZiBkaXJlY3Rvcmll
cworICAgICAgICBjb250YWluaW5nIHRlc3RzLgorICAgICAgICAoVGVzdFJ1bm5lci5fc2V0dXBf
dGVzdGluZ19lbnZpcm9ubWVudCk6IFNldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKKyAgICAgICAg
cmVxdWlyZWQgdG8gcnVuIFdlYktpdDIgdGVzdHMuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9H
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0phdmFTY3JpcHRUZXN0LmNw
cDogVXNlCisgICAgICAgIEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oIGluc3RlYWQgb2YK
KyAgICAgICAgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaCBzaW5jZSBpdCBpbmNsdWRl
cyBKU1N0cmluZ1JlZkNGLmgKKyAgICAgICAgdW5jb25kaXRpb25hbGx5LgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3Lmg6IERlZmluZSBQbGF0Zm9ybVdLVmlldyBhbmQK
KyAgICAgICAgUGxhdGZvcm1XaW5kb3cgZm9yIEdUSy4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvRXZhbHVhdGVKYXZhU2NyaXB0LmNwcDogUmVtb3ZlCisgICAgICAgIHVu
bmVkZWQgaGVhZGVyIHRoYXQgYnJlYWtzIHRoZSBidWlsZCBvZiBHVEsgcG9ydC4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJldmVudEVtcHR5VXNlckFnZW50LmNwcDog
VXNlCisgICAgICAgIEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oIGluc3RlYWQgb2YKKyAg
ICAgICAgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaCBzaW5jZSBpdCBpbmNsdWRlcyBK
U1N0cmluZ1JlZkNGLmgKKyAgICAgICAgdW5jb25kaXRpb25hbGx5LgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOiBBZGQgZXhwZWN0ZWQgdmFsdWVzIGZvciBHVEsrIHBvcnQuCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9ndGsvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyR3RrLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SW5qZWN0
ZWRCdW5kbGVDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcDogQWRkZWQuCisgICAgICAgIChV
dGlsKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNoZWNrVGVzdEZpbmlzaGVkKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bik6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpVdGlsOjpzbGVlcCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpnZXRGaWxl
bmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlV0aWw6OmNyZWF0ZUluamVjdGVkQnVuZGxlUGF0aCk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpVUkxGb3JOb25FeGlzdGVudFJlc291cmNlKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlV0aWw6OmlzS2V5RG93bik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZv
cm1XZWJWaWV3R3RrLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldyk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpkb0tleVN0cm9rZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0
Zm9ybVdlYlZpZXc6OnNpbXVsYXRlU3BhY2ViYXJLZXlQcmVzcyk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlQWx0S2V5UHJlc3MpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6ZG9Nb3VzZUJ1dHRvbkV2ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdodENsaWNrKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVNb3VzZU1vdmUpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvZ3RrL21haW4uY3BwOgorICAgICAgICAobWFpbik6CisKKzIwMTItMDQt
MjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAg
IFtHVEtdIEJ1aWxkIGFuZCBydW4gVGVzdFdlYktpdEFQSSB1bml0IHRlc3RzCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMyNQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAppbmRleCBlZTBiZDE3Li5m
MGQzOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXRp
dmVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2
ZW50LmgKQEAgLTQxLDYgKzQxLDkgQEAgc3RydWN0IE5TRXZlbnQ7CiB0eXBlZGVmIE5TRXZlbnQg
KldLTmF0aXZlRXZlbnRQdHI7CiAjZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4z
MikKIHR5cGVkZWYgY29uc3Qgc3RydWN0IHRhZ01TRyogV0tOYXRpdmVFdmVudFB0cjsKKyNlbGlm
IGRlZmluZWQoQlVJTERJTkdfR1RLX18pCit0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVu
dDsKK3R5cGVkZWYgY29uc3QgR2RrRXZlbnQqIFdLTmF0aXZlRXZlbnRQdHI7CiAjZWxzZQogdHlw
ZWRlZiBjb25zdCB2b2lkKiBXS05hdGl2ZUV2ZW50UHRyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMK
aW5kZXggNWVmYTYzNy4uMjBlYTMyZCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3Rr
LXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cwpAQCAtNDQsNyArNDQsNyBA
QCBjbGFzcyBTa2lwcGVkVGVzdDoKIAogY2xhc3MgVGVzdFJ1bm5lcjoKIAotICAgIFRFU1RfRElS
UyA9IFsgInVuaXR0ZXN0cyIsICJXZWJLaXQyQVBJVGVzdHMiLCAiVGVzdFdlYktpdEFQSS9XVEYi
IF0KKyAgICBURVNUX0RJUlMgPSBbICJ1bml0dGVzdHMiLCAiV2ViS2l0MkFQSVRlc3RzIiwgIlRl
c3RXZWJLaXRBUEkvV1RGIiwgIlRlc3RXZWJLaXRBUEkvV2ViS2l0MiIgXQogCiAgICAgU0tJUFBF
RCA9IFsKICAgICAgICAgU2tpcHBlZFRlc3QoInVuaXR0ZXN0cy90ZXN0ZG93bmxvYWQiLApAQCAt
NzEsNiArNzEsMTYgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgICAgICAgICAgICAgIlRl
c3QgaXMgZmxha3kgaW4gR1RLIExpbnV4IDMyLWJpdCBSZWxlYXNlIGJvdCIsCiAgICAgICAgICAg
ICAgICAgICAgIDgyODY4LAogICAgICAgICAgICAgICAgICAgICBbIi93ZWJraXQyL1dlYktpdFdl
YlZpZXcvcmVzb3VyY2VzIl0pLAorICAgICAgICBTa2lwcGVkVGVzdCgiVGVzdFdlYktpdEFQSS9X
ZWJLaXQyL1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQiLAorICAgICAgICAgICAg
ICAgICAgICAiVGVzdCB0aW1lcyBvdXQiKSwKKyAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RXZWJL
aXRBUEkvV2ViS2l0Mi9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2Vz
IiwKKyAgICAgICAgICAgICAgICAgICAgIlRlc3QgdGltZXMgb3V0IiksCisgICAgICAgIFNraXBw
ZWRUZXN0KCJUZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFdLQ29ubmVjdGlvblRlc3QiLAorICAg
ICAgICAgICAgICAgICAgICAiVGVzdCB0aW1lcyBvdXQiKSwKKyAgICAgICAgU2tpcHBlZFRlc3Qo
IlRlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0UmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdG
b3JtRGF0YSIsCisgICAgICAgICAgICAgICAgICAgICJTZXNzaW9uIFN0YXRlIGlzIG5vdCBpbXBs
ZW1lbnRlZCBpbiBHVEsrIHBvcnQiKSwKKyAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RXZWJLaXRB
UEkvV2ViS2l0Mi9UZXN0U3BhY2ViYXJTY3JvbGxpbmciLAorICAgICAgICAgICAgICAgICAgICAi
VGVzdCBmYWlscyIpCiAgICAgXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMsIHRl
c3RzPVtdKToKQEAgLTE4Nyw2ICsxOTcsOSBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICBz
ZWxmLl90ZXN0X2VudlsiRElTUExBWSJdID0gc2VsZi5fb3B0aW9ucy5kaXNwbGF5CiAgICAgICAg
IHNlbGYuX3Rlc3RfZW52WyJXRUJLSVRfSU5TUEVDVE9SX1BBVEgiXSA9IG9zLnBhdGguYWJzcGF0
aChvcy5wYXRoLmpvaW4oc2VsZi5fcHJvZ3JhbXNfcGF0aCwgJ3Jlc291cmNlcycsICdpbnNwZWN0
b3InKSkKICAgICAgICAgc2VsZi5fdGVzdF9lbnZbJ0dTRVRUSU5HU19CQUNLRU5EJ10gPSAnbWVt
b3J5JworICAgICAgICBzZWxmLl90ZXN0X2VudlsiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfUkVT
T1VSQ0VTX1BBVEgiXSA9IG9zLnBhdGguam9pbihzZWxmLl9nZXRfdG9wX2xldmVsX2RpcmVjdG9y
eSgpLCAiVG9vbHMiLCAiVGVzdFdlYktpdEFQSSIsICJUZXN0cyIsICJXZWJLaXQyIikKKyAgICAg
ICAgc2VsZi5fdGVzdF9lbnZbIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX0lOSkVDVEVEX0JVTkRM
RV9QQVRIIl0gPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHNlbGYuX2dldF9idWlsZF9k
aXJlY3RvcnkoKSwgIkxpYnJhcmllcyIpKQorICAgICAgICBzZWxmLl90ZXN0X2VudlsiV0VCS0lU
X0VYRUNfUEFUSCJdID0gc2VsZi5fcHJvZ3JhbXNfcGF0aAogCiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIHNlbGYuX3h2ZmIgPSBzZWxmLl9jcmVhdGVfcHJvY2VzcyhbIlh2ZmIiLCBzZWxmLl9v
cHRpb25zLmRpc3BsYXksICItc2NyZWVuIiwgIjAiLCAiODAweDYwMHgyNCIsICItbm9saXN0ZW4i
LCAidGNwIl0sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFt
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQppbmRleCBkYzc0YjYwLi5jNTRk
ZDM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0KQEAgLTEsMyArMSwxMSBAQAorQlVJ
TFRfU09VUkNFUyArPSBcCisJZ2VuZXJhdGUtdGVzdHdlYmtpdGFwaS1mb3J3YXJkaW5nLWhlYWRl
cnMKKword2syX3Rlc3RzX3NvdXJjZXMgPSAkKHNoZWxsIGxzICQoc3JjZGlyKS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvKi5jcHApCitnZW5lcmF0ZS10ZXN0d2Via2l0YXBpLWZv
cndhcmRpbmctaGVhZGVyczogJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmct
aGVhZGVycy5wbCAkKHdrMl90ZXN0c19zb3VyY2VzKQorCSQoQU1fVl9HRU4pJChQRVJMKSAkPCAk
KHNyY2RpcikvVG9vbHMvVGVzdFdlYktpdEFQSSAkKEdFTlNPVVJDRVNfV0VCS0lUMikvaW5jbHVk
ZSBndGsKKwkkKEFNX1ZfR0VOKSQoUEVSTCkgJDwgJChzcmNkaXIpL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkgJChHRU5TT1VSQ0VTX1dFQktJVDIpL2luY2x1ZGUgc291cAorCiBURVNUX1BST0dTICs9IFwK
IAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0Q2hlY2tlZEFyaXRobWV0aWNPcGVyYXRp
b25zIFwKIAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0RnVuY3Rpb25hbCBcCkBAIC0x
MCw2ICsxOCw0MSBAQCBURVNUX1BST0dTICs9IFwKIAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dU
Ri9UZXN0VmVjdG9yIFwKIAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0VmVjdG9yUmV2
ZXJzZQogCitpZiBFTkFCTEVfV0VCS0lUMgorVEVTVF9QUk9HUyArPSBcCisJUHJvZ3JhbXMvVGVz
dFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RDb29raWVNYW5hZ2VyIFwKKwlQcm9ncmFtcy9UZXN0V2Vi
S2l0QVBJL1dlYktpdDIvVGVzdERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaCBcCisJ
UHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3REb3dubG9hZERlY2lkZURlc3RpbmF0
aW9uQ3Jhc2ggXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0RXZhbHVhdGVK
YXZhU2NyaXB0IFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEZhaWxlZExv
YWQgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0Rm9yY2VSZXBhaW50IFwK
KwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEZyYW1lTUlNRVR5cGVIVE1MIFwK
KwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEZyYW1lTUlNRVR5cGVQTkcgXAor
CVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0SGl0VGVzdFJlc3VsdE5vZGVIYW5k
bGUgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0SW5qZWN0ZWRCdW5kbGVC
YXNpYyBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RMb2FkQWx0ZXJuYXRl
SFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkv
V2ViS2l0Mi9UZXN0TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrIFwKKwlQcm9n
cmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdE1vdXNlTW92ZUFmdGVyQ3Jhc2ggXAorCVBy
b2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0IFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdE5ld0ZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZhaWxzIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktp
dDIvVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlcyBcCisJUHJvZ3Jh
bXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGcmFtZXMgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0UGFnZUxvYWRC
YXNpYyBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RQYWdlTG9hZERpZENo
YW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJ
L1dlYktpdDIvVGVzdFBhcmVudEZyYW1lIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktp
dDIvVGVzdFByZXZlbnRFbXB0eVVzZXJBZ2VudCBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9X
ZWJLaXQyL1Rlc3RQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjayBcCisJ
UHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RSZXNwb25zaXZlbmVzc1RpbWVyRG9l
c250RmlyZUVhcmx5IFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFJlc3Rv
cmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRB
UEkvV2ViS2l0Mi9UZXN0U2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0gXAorCVByb2dyYW1z
L1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0U3BhY2ViYXJTY3JvbGxpbmcgXAorCVByb2dyYW1z
L1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0VXNlck1lc3NhZ2UgXAorCVByb2dyYW1zL1Rlc3RX
ZWJLaXRBUEkvV2ViS2l0Mi9UZXN0V0tDb25uZWN0aW9uIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0
QVBJL1dlYktpdDIvVGVzdFdLUHJlZmVyZW5jZXMgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkv
V2ViS2l0Mi9UZXN0V0tTdHJpbmcgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9U
ZXN0V0tTdHJpbmdKU1N0cmluZworZW5kaWYKKwogbm9pbnN0X1BST0dSQU1TICs9ICQoVEVTVF9Q
Uk9HUykKIAogIyBVc2UgLWlzeXN0ZW0gZ2NjIGZsYWcgc28gdGhhdCBnY2MgY29uc2lkZXJzIGd0
ZXN0IGhlYWRlcnMgYXMgc3lzdGVtIGhlYWRlcnMuCkBAIC0zMiw2ICs3NSw5NiBAQCB0ZXN0d2Vi
a2l0YXBpX3d0Zl90ZXN0c19sZGZsYWdzID0gXAogCS1uby1pbnN0YWxsIFwKIAktbm8tZmFzdC1p
bnN0YWxsCiAKK3Rlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncyA9IFwKKwkkKHRl
c3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2NwcGZsYWdzKSBcCisJJChDQUlST19DRkxBR1MpIFwKKwkk
KEdUS19DRkxBR1MpIFwKKwkkKExJQlNPVVBfQ0ZMQUdTKQorCit0ZXN0d2Via2l0YXBpX3dlYmtp
dDJfdGVzdHNfbGRhZGQgPSBcCisJbGliamF2YXNjcmlwdGNvcmVndGstQFdFQktJVEdUS19BUElf
TUFKT1JfVkVSU0lPTkAuQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkAubGEgXAorCWxpYndl
YmtpdDJndGstQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkAuQFdFQktJVEdUS19BUElfTUlO
T1JfVkVSU0lPTkAubGEgXAorCUxpYnJhcmllcy9saWJndGVzdC5sYSBcCisJTGlicmFyaWVzL2xp
YlRlc3RXZWJLaXRBUElXZWJLaXQyVGVzdHMubGEgXAorCSQoQ0FJUk9fTElCUykgXAorCSQoR1RL
X0xJQlMpIFwKKwkkKEdMSUJfTElCUykgXAorCSQoTElCU09VUF9MSUJTKQorCit0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfbGRm
bGFncykKKworaWYgRU5BQkxFX1dFQktJVDIKK25vaW5zdF9MVExJQlJBUklFUyArPSBcCisJTGli
cmFyaWVzL2xpYlRlc3RXZWJLaXRBUElXZWJLaXQyVGVzdHMubGEgXAorCUxpYnJhcmllcy9saWJU
ZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGUubGEKK2VuZGlmCisKKyMgVGVzdFdlYktpdEFQSVdl
YktpdDJUZXN0cworTGlicmFyaWVzX2xpYlRlc3RXZWJLaXRBUElXZWJLaXQyVGVzdHNfbGFfU09V
UkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmNwcCBcCisJ
VG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oIFwKKwlUb29scy9UZXN0V2Vi
S2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL0phdmFTY3Jp
cHRUZXN0LmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9KYXZhU2NyaXB0VGVzdC5oIFwKKwlU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzQ29udHJvbGxlci5jcHAgXAorCVRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHNDb250cm9sbGVyLmggXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRm
b3JtVXRpbGl0aWVzR3RrLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1X
ZWJWaWV3R3RrLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvbWFpbi5jcHAKKworTGli
cmFyaWVzX2xpYlRlc3RXZWJLaXRBUElXZWJLaXQyVGVzdHNfbGFfQ1BQRkxBR1MgPSBcCisJLWlz
eXN0ZW0gJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUgXAorCS1JJChz
cmNkaXIpL1Rvb2xzL1Rlc3RXZWJLaXRBUEkgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvaW5jbHVkZSBcCisJJChnbG9iYWxfY3BwZmxhZ3MpIFwKKwkkKGphdmFzY3JpcHRjb3Jl
X2NwcGZsYWdzKSBcCisJJChHVEtfQ0ZMQUdTKQorCisjIFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1
bmRsZQorTGlicmFyaWVzX2xpYlRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZV9sYV9TT1VSQ0VT
ID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmNwcCBc
CisJVG9vbHMvVGVzdFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuaCBcCisJVG9v
bHMvVGVzdFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZU1haW4uY3BwIFwKKwlUb29scy9UZXN0V2Vi
S2l0QVBJL0luamVjdGVkQnVuZGxlVGVzdC5oIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1BsYXRm
b3JtVXRpbGl0aWVzLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGll
cy5oIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRG9jdW1lbnRTdGFydFVz
ZXJTY3JpcHRBbGVydENyYXNoX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9IaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIFwKKwlUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3Bw
IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2
ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9Nb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRfQnVu
ZGxlLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZhaWxzX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNf
QnVuZGxlLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBcCisJVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Jlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFy
bHlfQnVuZGxlLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Nob3Vs
ZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZV9CdW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tDb25uZWN0aW9uX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rl
c3RXZWJLaXRBUEkvZ3RrL0luamVjdGVkQnVuZGxlQ29udHJvbGxlckd0ay5jcHAgXAorCVRvb2xz
L1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcAorCitMaWJyYXJpZXNf
bGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlX2xhX0xERkxBR1MgPSBcCisJLXJwYXRoICR7
c2hlbGwgcHdkfS8kKHRvcF9idWlsZGRpcikvTGlicmFyaWVzLy5saWJzIFwKKwkkKG5vX3VuZGVm
aW5lZCkgXAorCS1hdm9pZC12ZXJzaW9uIFwKKwktbW9kdWxlCisKK0xpYnJhcmllc19saWJUZXN0
V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGVfbGFfQ1BQRkxBR1MgPSBcCisJLWlzeXN0ZW0gJChzcmNk
aXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUgXAorCS1JJChzcmNkaXIpL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL0luamVjdGVkQnVuZGxl
IFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2luY2x1ZGUgXAor
CSQoZ2xvYmFsX2NwcGZsYWdzKSBcCisJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykgXAorCSQo
R1RLX0NGTEFHUykKKworTGlicmFyaWVzX2xpYlRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZV9s
YV9DWFhGTEFHUyA9ICQoZ2xvYmFsX2N4eGZsYWdzKQorTGlicmFyaWVzX2xpYlRlc3RXZWJLaXRB
UElJbmplY3RlZEJ1bmRsZV9sYV9DRkxBR1MgPSAkKGdsb2JhbF9jZmxhZ3MpCisKIFByb2dyYW1z
X1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnNfU09VUkNF
UyA9IFwKIAlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRpY09w
ZXJhdGlvbnMuY3BwCiBQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9UZXN0Q2hlY2tlZEFyaXRo
bWV0aWNPcGVyYXRpb25zX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19jcHBm
bGFncykKQEAgLTkyLDMgKzIyNSwxODkgQEAgUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVz
dFZlY3RvclJldmVyc2VfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3QKIFByb2dy
YW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RWZWN0b3JSZXZlcnNlX0xEQUREID0gJCh0ZXN0d2Vi
a2l0YXBpX3d0Zl90ZXN0c19sZGFkZCkKIFByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RW
ZWN0b3JSZXZlcnNlX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2xkZmxhZ3Mp
CiAKKyMgV2ViS2l0MiBUZXN0cworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RD
b29raWVNYW5hZ2VyX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL0Nvb2tpZU1hbmFnZXIuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dENvb2tpZU1hbmFnZXJfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19j
cHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0Q29va2llTWFuYWdl
cl9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNf
VGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RDb29raWVNYW5hZ2VyX0xERkxBR1MgPSAkKHRlc3R3
ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJ
X1dlYktpdDJfVGVzdERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9TT1VSQ0VTID0g
XAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Eb2N1bWVudFN0YXJ0VXNlclNj
cmlwdEFsZXJ0Q3Jhc2guY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdERv
Y3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFw
aV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3REb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hfTERBREQgPSAkKHRlc3R3ZWJr
aXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0
Ml9UZXN0RG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoX0xERkxBR1MgPSAkKHRlc3R3
ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJ
X1dlYktpdDJfVGVzdERvd25sb2FkRGVjaWRlRGVzdGluYXRpb25DcmFzaF9TT1VSQ0VTID0gXAor
CVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Eb3dubG9hZERlY2lkZURlc3RpbmF0
aW9uQ3Jhc2guY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdERvd25sb2Fk
RGVjaWRlRGVzdGluYXRpb25DcmFzaF9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQy
X3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3REb3du
bG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jhc2hfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0
Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RG93bmxv
YWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0
Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEV2
YWx1YXRlSmF2YVNjcmlwdF9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9FdmFsdWF0ZUphdmFTY3JpcHQuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdEV2YWx1YXRlSmF2YVNjcmlwdF9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93
ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rl
c3RFdmFsdWF0ZUphdmFTY3JpcHRfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0
c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RXZhbHVhdGVKYXZh
U2NyaXB0X0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQor
CitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZhaWxlZExvYWRfU09VUkNFUyA9
IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRmFpbGVkTG9hZC5jcHAKK1By
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RmFpbGVkTG9hZF9DUFBGTEFHUyA9ICQo
dGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XZWJLaXQyX1Rlc3RGYWlsZWRMb2FkX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtp
dDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZhaWxl
ZExvYWRfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0Rm9yY2VSZXBhaW50X1NPVVJDRVMg
PSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0ZvcmNlUmVwYWludC5jcHAK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0Rm9yY2VSZXBhaW50X0NQUEZMQUdT
ID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0
V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZvcmNlUmVwYWludF9MREFERCA9ICQodGVzdHdlYmtpdGFw
aV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rl
c3RGb3JjZVJlcGFpbnRfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xk
ZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1FVHlw
ZUhUTUxfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRnJh
bWVNSU1FVHlwZUhUTUwuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZy
YW1lTUlNRVR5cGVIVE1MX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNf
Y3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZyYW1lTUlNRVR5
cGVIVE1MX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9n
cmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZyYW1lTUlNRVR5cGVIVE1MX0xERkxBR1Mg
PSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0
V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZyYW1lTUlNRVR5cGVQTkdfU09VUkNFUyA9IFwKKwlUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRnJhbWVNSU1FVHlwZVBORy5jcHAKK1Byb2dy
YW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1FVHlwZVBOR19DUFBGTEFHUyA9
ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3RGcmFtZU1JTUVUeXBlUE5HX0xEQUREID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdEZyYW1lTUlNRVR5cGVQTkdfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rl
c3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0SGl0VGVz
dFJlc3VsdE5vZGVIYW5kbGVfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0
QVBJX1dlYktpdDJfVGVzdEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0NQUEZMQUdTID0gJCh0ZXN0
d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJ
X1dlYktpdDJfVGVzdEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0xEQUREID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Vi
a2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dEluamVjdGVkQnVuZGxlQmFzaWNfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRB
UElfV2ViS2l0Ml9UZXN0SW5qZWN0ZWRCdW5kbGVCYXNpY19DUFBGTEFHUyA9ICQodGVzdHdlYmtp
dGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3RJbmplY3RlZEJ1bmRsZUJhc2ljX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtp
dDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdEluamVj
dGVkQnVuZGxlQmFzaWNfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xk
ZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TG9hZEFsdGVybmF0
ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL0xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVj
dG9yeVVSTC5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TG9hZEFsdGVy
bmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTF9MREFERCA9
ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XZWJLaXQyX1Rlc3RMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlV
UkxfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1By
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRp
cmVjdENhbGxiYWNrX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL0xvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjay5jcHAKK1Byb2dyYW1zX1Rl
c3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxi
YWNrX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQ
cm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdExvYWRDYW5jZWxlZE5vU2VydmVyUmVk
aXJlY3RDYWxsYmFja19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRk
KQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RMb2FkQ2FuY2VsZWROb1NlcnZl
clJlZGlyZWN0Q2FsbGJhY2tfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3Rz
X2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TW91c2VNb3Zl
QWZ0ZXJDcmFzaF9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9Nb3VzZU1vdmVBZnRlckNyYXNoLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3RNb3VzZU1vdmVBZnRlckNyYXNoX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtp
dDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdE1v
dXNlTW92ZUFmdGVyQ3Jhc2hfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19s
ZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TW91c2VNb3ZlQWZ0ZXJD
cmFzaF9MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKwor
UHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0LmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQ
SV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRfQ1BQRkxBR1MgPSAk
KHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0X0xEQUREID0g
JCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0
QVBJX1dlYktpdDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9MREZMQUdTID0g
JCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlsc19T
T1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlscy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfQ1BQRkxBR1MgPSAk
KHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfTERB
REQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RX
ZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNf
TERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dy
YW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9ySW1hZ2VzX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlcy5jcHAKK1Byb2dyYW1z
X1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9ySW1hZ2VzX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxh
Z3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvckltYWdlc19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rl
c3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93
ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9U
ZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX1NPVVJDRVMgPSBcCisJVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZyYW1lcy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBp
X3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19MREFERCA9ICQodGVzdHdl
YmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfTERGTEFHUyA9ICQo
dGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0UGFnZUxvYWRCYXNpY19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QYWdlTG9hZEJhc2ljLmNwcAorUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3RQYWdlTG9hZEJhc2ljX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdFBhZ2VMb2FkQmFzaWNfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0
c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UGFnZUxvYWRCYXNp
Y19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9u
V2l0aGluUGFnZUZvckZyYW1lX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1BhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3Bw
CitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFBhZ2VMb2FkRGlkQ2hhbmdlTG9j
YXRpb25XaXRoaW5QYWdlRm9yRnJhbWVfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0
Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UGFn
ZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZV9MREFERCA9ICQodGVzdHdl
YmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3RQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lX0xERkxB
R1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19U
ZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFBhcmVudEZyYW1lX1NPVVJDRVMgPSBcCisJVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1BhcmVudEZyYW1lLmNwcAorUHJvZ3JhbXNfVGVz
dFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQYXJlbnRGcmFtZV9DUFBGTEFHUyA9ICQodGVzdHdlYmtp
dGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3RQYXJlbnRGcmFtZV9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3Rz
X2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQYXJlbnRGcmFtZV9M
REZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3Jh
bXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcmV2ZW50RW1wdHlVc2VyQWdlbnRfU09VUkNF
UyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJldmVudEVtcHR5VXNl
ckFnZW50LmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcmV2ZW50RW1w
dHlVc2VyQWdlbnRfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBm
bGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UHJldmVudEVtcHR5VXNl
ckFnZW50X0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9n
cmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFByZXZlbnRFbXB0eVVzZXJBZ2VudF9MREZM
QUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNf
VGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3Rv
cnlDYWxsYmFja19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKK1Byb2dyYW1z
X1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0
b3J5Q2FsbGJhY2tfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBm
bGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UHJpdmF0ZUJyb3dzaW5n
UHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2tfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0
Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UHJpdmF0
ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2tfTERGTEFHUyA9ICQodGVzdHdlYmtp
dGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0UmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9TT1VSQ0VTID0gXAor
CVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9SZXNwb25zaXZlbmVzc1RpbWVyRG9l
c250RmlyZUVhcmx5LmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RSZXNw
b25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBp
X3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfTERBREQgPSAkKHRlc3R3ZWJr
aXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0
Ml9UZXN0UmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9MREZMQUdTID0gJCh0ZXN0
d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQ
SV9XZWJLaXQyX1Rlc3RSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhX1NPVVJD
RVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Jlc3RvcmVTZXNzaW9u
U3RhdGVDb250YWluaW5nRm9ybURhdGEuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdFJlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGFfQ1BQRkxBR1MgPSAk
KHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0UmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YV9M
REFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVz
dFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1E
YXRhX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQ
cm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFNob3VsZEdvVG9CYWNrRm9yd2FyZExp
c3RJdGVtX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1No
b3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9X
ZWJLaXQyX1Rlc3RTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9DUFBGTEFHUyA9ICQodGVz
dHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQ
SV9XZWJLaXQyX1Rlc3RTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9MREFERCA9ICQodGVz
dHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9X
ZWJLaXQyX1Rlc3RTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9MREZMQUdTID0gJCh0ZXN0
d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQ
SV9XZWJLaXQyX1Rlc3RTcGFjZWJhclNjcm9sbGluZ19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9TcGFjZWJhclNjcm9sbGluZy5jcHAKK1Byb2dyYW1zX1Rl
c3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0U3BhY2ViYXJTY3JvbGxpbmdfQ1BQRkxBR1MgPSAkKHRl
c3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRB
UElfV2ViS2l0Ml9UZXN0U3BhY2ViYXJTY3JvbGxpbmdfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlf
d2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
U3BhY2ViYXJTY3JvbGxpbmdfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3Rz
X2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0VXNlck1lc3Nh
Z2VfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1l
c3NhZ2UuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFVzZXJNZXNzYWdl
X0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9n
cmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFVzZXJNZXNzYWdlX0xEQUREID0gJCh0ZXN0
d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdFVzZXJNZXNzYWdlX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90
ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLQ29u
bmVjdGlvbl9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9X
S0Nvbm5lY3Rpb24uY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLQ29u
bmVjdGlvbl9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdz
KQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RXS0Nvbm5lY3Rpb25fTERBREQg
PSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0V0tDb25uZWN0aW9uX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlf
d2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdFdLUHJlZmVyZW5jZXNfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvV0tQcmVmZXJlbmNlcy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0
Ml9UZXN0V0tQcmVmZXJlbmNlc19DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rl
c3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RXS1ByZWZl
cmVuY2VzX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9n
cmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLUHJlZmVyZW5jZXNfTERGTEFHUyA9ICQo
dGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0V0tTdHJpbmdfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvV0tTdHJpbmcuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdFdLU3RyaW5nX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLU3RyaW5n
X0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19U
ZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLU3RyaW5nX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRh
cGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdFdLU3RyaW5nSlNTdHJpbmdfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvV0tTdHJpbmdKU1N0cmluZy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRB
UElfV2ViS2l0Ml9UZXN0V0tTdHJpbmdKU1N0cmluZ19DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFw
aV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3RXS1N0cmluZ0pTU3RyaW5nX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLU3RyaW5nSlNT
dHJpbmdfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0phdmFTY3JpcHRUZXN0LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3QuY3BwCmluZGV4IDRmMTA5YjYuLjg1YmU4OTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3QuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3QuY3BwCkBAIC0yOCw3ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlRlc3QuaCIKLSNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0
YWluUHRyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgogI2luY2x1ZGUgPFdl
YktpdDIvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3Jt
V2ViVmlldy5oCmluZGV4IDAwNzIwZjQuLmNmMDEzMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0
Zm9ybVdlYlZpZXcuaApAQCAtNDMsNiArNDMsOSBAQCB0eXBlZGVmIE5TV2luZG93ICpQbGF0Zm9y
bVdpbmRvdzsKICNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKQogdHlwZWRl
ZiBXS1ZpZXdSZWYgUGxhdGZvcm1XS1ZpZXc7CiB0eXBlZGVmIEhXTkQgUGxhdGZvcm1XaW5kb3c7
CisjZWxpZiBQTEFURk9STShHVEspCit0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdLVmlldzsK
K3R5cGVkZWYgR3RrV2lkZ2V0ICpQbGF0Zm9ybVdpbmRvdzsKICNlbmRpZgogCiBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9FdmFsdWF0ZUphdmFTY3JpcHQuY3BwCmluZGV4IDk5YjdmZjcuLjkwYWQwNGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9FdmFsdWF0ZUphdmFT
Y3JpcHQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9FdmFsdWF0
ZUphdmFTY3JpcHQuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1VdGls
aXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbmNsdWRlICJUZXN0Lmgi
Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaD4KICNpbmNsdWRlIDxX
ZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCmluZGV4IDRjNTIyNzguLmM1YWNiNjEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QcmV2ZW50RW1w
dHlVc2VyQWdlbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Q
cmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbmNsdWRl
ICJUZXN0LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NvbnRleHRSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQy
L1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQ
cmVmZXJlbmNlcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQcmVm
ZXJlbmNlcy5jcHAKaW5kZXggMmExODFkZC4uNWFmMDFlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcApAQCAtNTcsNiArNTcs
MTQgQEAgVEVTVChXZWJLaXQyLCBXS1ByZWZlcmVuY2VzRGVmYXVsdHMpCiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIGV4cGVjdGVkQ3Vyc2l2ZUZvbnRGYW1pbHkgPSAiQXBwbGUgQ2hhbmNlcnkiOwog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBleHBlY3RlZEZhbnRhc3lGb250RmFtaWx5ID0gIlBhcHly
dXMiOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBleHBlY3RlZFBpY3RvZ3JhcGhGb250RmFtaWx5
ID0gIkFwcGxlIENvbG9yIEVtb2ppIjsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogZXhwZWN0ZWRTdGFuZGFyZEZvbnRGYW1pbHkgPSAiVGltZXMiOworICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBleHBlY3RlZEZpeGVkRm9udEZhbWlseSA9ICJDb3VyaWVyIE5ldyI7
CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkU2VyaWZGb250RmFtaWx5ID0gIlRpbWVz
IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRTYW5zU2VyaWZGb250RmFtaWx5ID0g
IkhlbHZldGljYSI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkQ3Vyc2l2ZUZvbnRG
YW1pbHkgPSAiQ29taWMgU2FucyBNUyI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVk
RmFudGFzeUZvbnRGYW1pbHkgPSAiSW1wYWN0IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZXhw
ZWN0ZWRQaWN0b2dyYXBoRm9udEZhbWlseSA9ICJUaW1lcyI7CiAjZW5kaWYKIAogICAgIFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZSA9IFdLUHJlZmVyZW5jZXNDcmVhdGUoKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL0luamVjdGVkQnVuZGxlQ29udHJvbGxlckd0ay5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJHdGsu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkNTUwMDIKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9JbmplY3RlZEJ1bmRsZUNvbnRyb2xs
ZXJHdGsuY3BwCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlQ29udHJvbGxlci5oIgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3Zv
aWQgSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2d0ay9QbGF0Zm9ybVV0aWxpdGllc0d0ay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2d0ay9QbGF0Zm9ybVV0aWxpdGllc0d0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNWUzY2MyYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Z3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcApAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8Z3RrL2d0ay5o
PgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HUmVmUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK25hbWVzcGFjZSBVdGls
IHsKKworc3RhdGljIGdib29sZWFuIGNoZWNrVGVzdEZpbmlzaGVkKGdwb2ludGVyIHVzZXJEYXRh
KQoreworICAgIGJvb2wqIGRvbmUgPSBzdGF0aWNfY2FzdDxib29sKj4odXNlckRhdGEpOworCisg
ICAgaWYgKCpkb25lKQorICAgICAgICBndGtfbWFpbl9xdWl0KCk7CisKKyAgICByZXR1cm4gISpk
b25lOworfQorCit2b2lkIHJ1bihib29sKiBkb25lKQoreworICAgIGdfdGltZW91dF9hZGQoNTAw
LCBjaGVja1Rlc3RGaW5pc2hlZCwgZG9uZSk7CisgICAgZ3RrX21haW4oKTsKK30KKwordm9pZCBz
bGVlcChkb3VibGUgc2Vjb25kcykKK3sKKyAgICBnX3VzbGVlcChzZWNvbmRzICogMTAwMDAwMCk7
Cit9CisKK3N0YXRpYyBjaGFyKiBnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNV
VEY4KGNvbnN0IGNoYXIqIHZhcmlhYmxlTmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9
IGdfZ2V0ZW52KHZhcmlhYmxlTmFtZSk7CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBnX3By
aW50ZXJyKCIlcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBub3QgZm91bmRcbiIsIHZhcmlhYmxlTmFt
ZSk7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAg
ICByZXR1cm4gZ19maWxlbmFtZV90b191dGY4KHZhbHVlLCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwg
MCk7Cit9CisKK1dLU3RyaW5nUmVmIGNyZWF0ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7CisgICAg
R093blB0cjxjaGFyPiBpbmplY3RlZEJ1bmRsZVBhdGgoZ2V0RmlsZW5hbWVGcm9tRW52aXJvbm1l
bnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfSU5KRUNURURfQlVORExF
X1BBVEgiKSk7CisgICAgR093blB0cjxjaGFyPiBpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKGdfYnVp
bGRfZmlsZW5hbWUoaW5qZWN0ZWRCdW5kbGVQYXRoLmdldCgpLCAibGliVGVzdFdlYktpdEFQSUlu
amVjdGVkQnVuZGxlLmxhIiwgTlVMTCkpOworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZyhpbmplY3RlZEJ1bmRsZUZpbGVuYW1lLmdldCgpKTsKK30KKworV0tVUkxSZWYg
Y3JlYXRlVVJMRm9yUmVzb3VyY2UoY29uc3QgY2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGV4
dGVuc2lvbikKK3sKKyAgICBHT3duUHRyPGNoYXI+IHRlc3RSZXNvdXJjZXNQYXRoKGdldEZpbGVu
YW1lRnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQy
X1JFU09VUkNFU19QQVRIIikpOworICAgIEdPd25QdHI8Y2hhcj4gcmVzb3VyY2VCYXNlbmFtZShn
X3N0cmR1cF9wcmludGYoIiVzLiVzIiwgcmVzb3VyY2UsIGV4dGVuc2lvbikpOworICAgIEdPd25Q
dHI8Y2hhcj4gcmVzb3VyY2VGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKHRlc3RSZXNvdXJjZXNQ
YXRoLmdldCgpLCByZXNvdXJjZUJhc2VuYW1lLmdldCgpLCBOVUxMKSk7CisgICAgR1JlZlB0cjxH
RmlsZT4gcmVzb3VyY2VGaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgocmVzb3Vy
Y2VGaWxlbmFtZS5nZXQoKSkpOworICAgIEdPd25QdHI8Y2hhcj4gcmVzb3VyY2VVUkkoZ19maWxl
X2dldF91cmkocmVzb3VyY2VGaWxlLmdldCgpKSk7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKHJlc291cmNlVVJJLmdldCgpKTsKK30KKworV0tVUkxSZWYgVVJMRm9yTm9u
RXhpc3RlbnRSZXNvdXJjZSgpCit7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJmaWxlOi8vL2RvZXMtbm90LWV4aXN0Lmh0bWwiKTsKK30KKworYm9vbCBpc0tleURvd24o
V0tOYXRpdmVFdmVudFB0ciBldmVudCkKK3sKKyAgICByZXR1cm4gZXZlbnQtPnR5cGUgPT0gR0RL
X0tFWV9QUkVTUzsKK30KKworfSAvLyBuYW1lc3BhY2UgVXRpbAorfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1X
ZWJWaWV3R3RrLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0
ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFhZDY0NgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5j
cHAKQEAgLTAsMCArMSwxNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2Vi
Vmlldy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9HT3duUHRyR3RrLmg+CisjaW5jbHVkZSA8Z3Rr
L2d0ay5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KKworbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgeworCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRl
eHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQoreworICAgIG1f
d2luZG93ID0gZ3RrX3dpbmRvd19uZXcoR1RLX1dJTkRPV19UT1BMRVZFTCk7CisgICAgbV92aWV3
ID0gV0tWaWV3Q3JlYXRlKGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7CisgICAgZ3RrX2NvbnRh
aW5lcl9hZGQoR1RLX0NPTlRBSU5FUihtX3dpbmRvdyksIEdUS19XSURHRVQobV92aWV3KSk7Cisg
ICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQobV92aWV3KSk7Cit9CisKK1BsYXRmb3JtV2Vi
Vmlldzo6flBsYXRmb3JtV2ViVmlldygpCit7CisgICAgZ3RrX3dpZGdldF9kZXN0cm95KG1fd2lu
ZG93KTsKK30KKworV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdLVmlld0dldFBhZ2UobV92aWV3KTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZp
ZXc6OnJlc2l6ZVRvKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgZ3Rr
X3dpbmRvd19yZXNpemUoR1RLX1dJTkRPVyhtX3dpbmRvdyksIHdpZHRoLCBoZWlnaHQpOworfQor
CitzdGF0aWMgdm9pZCBkb0tleVN0cm9rZShHdGtXaWRnZXQqIHZpZXdXaWRnZXQsIHVuc2lnbmVk
IGludCBrZXlWYWwpCit7CisgICAgR093blB0cjxHZGtFdmVudD4gZXZlbnQoZ2RrX2V2ZW50X25l
dyhHREtfS0VZX1BSRVNTKSk7CisgICAgZXZlbnQtPmtleS5rZXl2YWwgPSBrZXlWYWw7CisgICAg
ZXZlbnQtPmtleS50aW1lID0gR0RLX0NVUlJFTlRfVElNRTsKKyAgICBldmVudC0+a2V5LnN0YXRl
ID0gMDsKKyAgICBldmVudC0+a2V5LndpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3dpbmRvdyh2aWV3
V2lkZ2V0KTsKKyAgICBnX29iamVjdF9yZWYoZXZlbnQtPmtleS53aW5kb3cpOworICAgIGdka19l
dmVudF9zZXRfZGV2aWNlKGV2ZW50LmdldCgpLCBnZGtfZGV2aWNlX21hbmFnZXJfZ2V0X2NsaWVu
dF9wb2ludGVyKGdka19kaXNwbGF5X2dldF9kZXZpY2VfbWFuYWdlcihndGtfd2lkZ2V0X2dldF9k
aXNwbGF5KHZpZXdXaWRnZXQpKSkpOworCisgICAgLy8gV2hlbiBzeW50aGVzaXppbmcgYW4gZXZl
bnQsIGFuIGludmFsaWQgaGFyZHdhcmVfa2V5Y29kZSB2YWx1ZSBjYW4gY2F1c2UgaXQgdG8gYmUg
YmFkbHkgcHJvY2Vzc2VkIGJ5IEdUSysuCisgICAgR093blB0cjxHZGtLZXltYXBLZXk+IGtleXM7
CisgICAgaW50IGtleXNDb3VudDsKKyAgICBpZiAoZ2RrX2tleW1hcF9nZXRfZW50cmllc19mb3Jf
a2V5dmFsKGdka19rZXltYXBfZ2V0X2RlZmF1bHQoKSwga2V5VmFsLCAma2V5cy5vdXRQdHIoKSwg
JmtleXNDb3VudCkpCisgICAgICAgIGV2ZW50LT5rZXkuaGFyZHdhcmVfa2V5Y29kZSA9IGtleXMu
Z2V0KClbMF0ua2V5Y29kZTsKKworICAgIGd0a19tYWluX2RvX2V2ZW50KGV2ZW50LmdldCgpKTsK
KyAgICBldmVudC0+a2V5LnR5cGUgPSBHREtfS0VZX1JFTEVBU0U7CisgICAgZ3RrX21haW5fZG9f
ZXZlbnQoZXZlbnQuZ2V0KCkpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVT
cGFjZWJhcktleVByZXNzKCkKK3sKKyAgICBHdGtXaWRnZXQqIHZpZXdXaWRnZXQgPSBHVEtfV0lE
R0VUKG1fdmlldyk7CisgICAgaWYgKCFndGtfd2lkZ2V0X2dldF9yZWFsaXplZCh2aWV3V2lkZ2V0
KSkKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KG1fd2luZG93KTsKKyAgICBkb0tleVN0cm9rZSh2
aWV3V2lkZ2V0LCBHREtfS0VZX0tQX1NwYWNlKTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6
OnNpbXVsYXRlQWx0S2V5UHJlc3MoKQoreworICAgIEd0a1dpZGdldCogdmlld1dpZGdldCA9IEdU
S19XSURHRVQobV92aWV3KTsKKyAgICBpZiAoIWd0a193aWRnZXRfZ2V0X3JlYWxpemVkKHZpZXdX
aWRnZXQpKQorICAgICAgICBndGtfd2lkZ2V0X3Nob3cobV93aW5kb3cpOworICAgIGRvS2V5U3Ry
b2tlKHZpZXdXaWRnZXQsIEdES19LRVlfQWx0X0wpOworfQorCitzdGF0aWMgdm9pZCBkb01vdXNl
QnV0dG9uRXZlbnQoR3RrV2lkZ2V0KiB2aWV3V2lkZ2V0LCBHZGtFdmVudFR5cGUgZXZlbnRUeXBl
LCBpbnQgeCwgaW50IHksIHVuc2lnbmVkIGludCBidXR0b24pCit7CisgICAgR093blB0cjxHZGtF
dmVudD4gZXZlbnQoZ2RrX2V2ZW50X25ldyhldmVudFR5cGUpKTsKKyAgICBldmVudC0+YnV0dG9u
LnggPSB4OworICAgIGV2ZW50LT5idXR0b24ueSA9IHk7CisgICAgZXZlbnQtPmJ1dHRvbi5idXR0
b24gPSBidXR0b247CisgICAgZXZlbnQtPmJ1dHRvbi50aW1lID0gR0RLX0NVUlJFTlRfVElNRTsK
KyAgICBldmVudC0+YnV0dG9uLmF4ZXMgPSAwOworICAgIGV2ZW50LT5idXR0b24uc3RhdGUgPSAw
OworICAgIGV2ZW50LT5idXR0b24ud2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KHZpZXdX
aWRnZXQpOworICAgIGdfb2JqZWN0X3JlZihldmVudC0+YnV0dG9uLndpbmRvdyk7CisgICAgZXZl
bnQtPmJ1dHRvbi5kZXZpY2UgPSBnZGtfZGV2aWNlX21hbmFnZXJfZ2V0X2NsaWVudF9wb2ludGVy
KGdka19kaXNwbGF5X2dldF9kZXZpY2VfbWFuYWdlcihndGtfd2lkZ2V0X2dldF9kaXNwbGF5KHZp
ZXdXaWRnZXQpKSk7CisKKyAgICBpbnQgeFJvb3QsIHlSb290OworICAgIGdka193aW5kb3dfZ2V0
X3Jvb3RfY29vcmRzKGd0a193aWRnZXRfZ2V0X3dpbmRvdyh2aWV3V2lkZ2V0KSwgeCwgeSwgJnhS
b290LCAmeVJvb3QpOworICAgIGV2ZW50LT5idXR0b24ueF9yb290ID0geFJvb3Q7CisgICAgZXZl
bnQtPmJ1dHRvbi55X3Jvb3QgPSB5Um9vdDsKKyAgICBndGtfbWFpbl9kb19ldmVudChldmVudC5n
ZXQoKSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVJpZ2h0Q2xpY2sodW5z
aWduZWQgeCwgdW5zaWduZWQgeSkKK3sKKyAgICBHdGtXaWRnZXQqIHZpZXdXaWRnZXQgPSBHVEtf
V0lER0VUKG1fdmlldyk7CisgICAgaWYgKCFndGtfd2lkZ2V0X2dldF9yZWFsaXplZCh2aWV3V2lk
Z2V0KSkKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KG1fd2luZG93KTsKKyAgICBkb01vdXNlQnV0
dG9uRXZlbnQodmlld1dpZGdldCwgR0RLX0JVVFRPTl9QUkVTUywgeCwgeSwgMyk7CisgICAgZG9N
b3VzZUJ1dHRvbkV2ZW50KHZpZXdXaWRnZXQsIEdES19CVVRUT05fUkVMRUFTRSwgeCwgeSwgMyk7
Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZU1vdXNlTW92ZSh1bnNpZ25lZCB4
LCB1bnNpZ25lZCB5KQoreworICAgIEdPd25QdHI8R2RrRXZlbnQ+IGV2ZW50KGdka19ldmVudF9u
ZXcoR0RLX01PVElPTl9OT1RJRlkpKTsKKyAgICBldmVudC0+bW90aW9uLnggPSB4OworICAgIGV2
ZW50LT5tb3Rpb24ueSA9IHk7CisgICAgZXZlbnQtPm1vdGlvbi50aW1lID0gR0RLX0NVUlJFTlRf
VElNRTsKKyAgICBldmVudC0+bW90aW9uLnN0YXRlID0gMDsKKyAgICBldmVudC0+bW90aW9uLmF4
ZXMgPSAwOworCisgICAgR3RrV2lkZ2V0KiB2aWV3V2lkZ2V0ID0gR1RLX1dJREdFVChtX3ZpZXcp
OworICAgIGlmICghZ3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQodmlld1dpZGdldCkpCisgICAgICAg
IGd0a193aWRnZXRfc2hvdyhtX3dpbmRvdyk7CisgICAgZXZlbnQtPm1vdGlvbi53aW5kb3cgPSBn
dGtfd2lkZ2V0X2dldF93aW5kb3codmlld1dpZGdldCk7CisgICAgZ19vYmplY3RfcmVmKGV2ZW50
LT5tb3Rpb24ud2luZG93KTsKKyAgICBldmVudC0+bW90aW9uLmRldmljZSA9IGdka19kZXZpY2Vf
bWFuYWdlcl9nZXRfY2xpZW50X3BvaW50ZXIoZ2RrX2Rpc3BsYXlfZ2V0X2RldmljZV9tYW5hZ2Vy
KGd0a193aWRnZXRfZ2V0X2Rpc3BsYXkodmlld1dpZGdldCkpKTsKKworICAgIGludCB4Um9vdCwg
eVJvb3Q7CisgICAgZ2RrX3dpbmRvd19nZXRfcm9vdF9jb29yZHMoZ3RrX3dpZGdldF9nZXRfd2lu
ZG93KHZpZXdXaWRnZXQpLCB4LCB5LCAmeFJvb3QsICZ5Um9vdCk7CisgICAgZXZlbnQtPm1vdGlv
bi54X3Jvb3QgPSB4Um9vdDsKKyAgICBldmVudC0+bW90aW9uLnlfcm9vdCA9IHlSb290OworICAg
IGd0a19tYWluX2RvX2V2ZW50KGV2ZW50LmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvbWFpbi5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4xYjdmZWY2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9ndGsvbWFpbi5jcHAKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVGVzdHNDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisKK2ludCBtYWlu
KGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBndGtfaW5pdCgmYXJnYywgJmFyZ3YpOwor
CisgICAgcmV0dXJuIFRlc3RXZWJLaXRBUEk6OlRlc3RzQ29udHJvbGxlcjo6c2hhcmVkKCkucnVu
KGFyZ2MsIGFyZ3YpID8gRVhJVF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138986</attachid>
            <date>2012-04-26 06:17:14 -0700</date>
            <delta_ts>2012-04-26 07:19:20 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk-api-tests-wk2-4.diff</filename>
            <type>text/plain</type>
            <size>47652</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZyBiL1NvdXJjZS9UaGlyZFBh
cnR5L0NoYW5nZUxvZwppbmRleCA2M2ExNGRhLi43MzQ5MDlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTItMDQtMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEJ1aWxkIGFuZCBydW4gVGVzdFdlYktpdEFQ
SSBXZWJLaXQyIHVuaXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg0NDQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBndGVzdC9HTlVtYWtlZmlsZS5hbTogRG8gbm90IGJ1aWxkIGxpYmd0ZXN0
bWFpbiBhbnltbW9yZSBzaW5jZQorICAgICAgICBhbGwgdGVzdHMgdXNlIG5vdyBhIGN1c3RvbSBt
YWluIHRvIG1ha2Ugc3VyZSBXVEYgdGhyZWFkcyBhcmUKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisK
IDIwMTItMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIEJ1aWxkIGFuZCBydW4gVGVzdFdlYktpdEFQSSB1bml0IHRlc3RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggYTgzNTlmMi4uODhhNjRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBA
CiAyMDEyLTA0LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAorICAgICAgICBbR1RLXSBCdWlsZCBhbmQgcnVuIFRlc3RXZWJLaXRBUEkgV2ViS2l0MiB1bml0
IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDQ0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaDogRGVmaW5lIFdLTmF0aXZlRXZlbnRQdHIg
YXMKKyAgICAgICAgR2RrRXZlbnQgZm9yIHRoZSBHVEsrIHBvcnQuCisKKzIwMTItMDQtMjYgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtd
W1dlYktpdDJdIEluaXRpYWwgd2luZG93ZWQgcGx1Z2lucyBpbXBsZW1lbnRhdGlvbgogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEwNjUKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGJkYjU0ODQuLjQx
NDk5NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsNSArMSw1OSBAQAogMjAxMi0wNC0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dUS10gQnVpbGQgYW5kIHJ1biBUZXN0V2ViS2l0
QVBJIFdlYktpdDIgdW5pdCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQ0NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLWd0ay10ZXN0czoKKyAgICAgICAgKFRlc3RSdW5u
ZXIpOiBBZGQgVGVzdFdlYktpdEFQSS9XZWJLaXQyIHRvIHRoZSBsaXN0IG9mIGRpcmVjdG9yaWVz
CisgICAgICAgIGNvbnRhaW5pbmcgdGVzdHMuIFVuc2tpcCBGdW5jdGlvbmFsVGVzdC5SZWZDb3Vu
dGVkU3RvcmFnZSwgc2luY2UKKyAgICAgICAgd2UgYXJlIG5vdyB1c2luZyBhIGN1c3RvbSBtYWlu
IHRoYXQgaW5pdGlhbGl6ZXMgV1RGIHRocmVhZGluZy4KKyAgICAgICAgKFRlc3RSdW5uZXIuX3Nl
dHVwX3Rlc3RpbmdfZW52aXJvbm1lbnQpOiBTZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAg
ICAgIHJlcXVpcmVkIHRvIHJ1biBXZWJLaXQyIHRlc3RzLgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvR05VbWFrZWZpbGUuYW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9KYXZhU2NyaXB0VGVz
dC5jcHA6IFVzZQorICAgICAgICBKYXZhU2NyaXB0Q29yZS9KU0NvbnRleHRSZWYuaCBpbnN0ZWFk
IG9mCisgICAgICAgIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmggc2luY2UgaXQgaW5j
bHVkZXMgSlNTdHJpbmdSZWZDRi5oCisgICAgICAgIHVuY29uZGl0aW9uYWxseS4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oOiBEZWZpbmUgUGxhdGZvcm1XS1ZpZXcg
YW5kCisgICAgICAgIFBsYXRmb3JtV2luZG93IGZvciBHVEsuCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL0V2YWx1YXRlSmF2YVNjcmlwdC5jcHA6IFJlbW92ZQorICAgICAg
ICB1bm5lZGVkIGhlYWRlciB0aGF0IGJyZWFrcyB0aGUgYnVpbGQgb2YgR1RLIHBvcnQuCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1ByZXZlbnRFbXB0eVVzZXJBZ2VudC5j
cHA6IFVzZQorICAgICAgICBKYXZhU2NyaXB0Q29yZS9KU0NvbnRleHRSZWYuaCBpbnN0ZWFkIG9m
CisgICAgICAgIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmggc2luY2UgaXQgaW5jbHVk
ZXMgSlNTdHJpbmdSZWZDRi5oCisgICAgICAgIHVuY29uZGl0aW9uYWxseS4KKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKTogQWRkIGV4cGVjdGVkIHZhbHVlcyBmb3IgR1RLKyBwb3J0Lgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL0luamVjdGVkQnVuZGxlQ29udHJvbGxlckd0ay5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Oklu
amVjdGVkQnVuZGxlQ29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVV0aWxpdGllc0d0ay5jcHA6IEFkZGVkLgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6Y2hlY2tUZXN0RmluaXNoZWQpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNs
ZWVwKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmdldEZpbGVuYW1lRnJvbUVudmly
b25tZW50VmFyaWFibGVBc1VURjgpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3Jl
YXRlSW5qZWN0ZWRCdW5kbGVQYXRoKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNy
ZWF0ZVVSTEZvclJlc291cmNlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OlVSTEZv
ck5vbkV4aXN0ZW50UmVzb3VyY2UpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6aXNL
ZXlEb3duKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxh
dGZvcm1XZWJWaWV3KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6
flBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZp
ZXc6OnBhZ2UpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpyZXNp
emVUbyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkb0tleVN0cm9rZSk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlU3BhY2ViYXJLZXlQcmVzcyk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlQWx0S2V5
UHJlc3MpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZG9Nb3VzZUJ1dHRvbkV2ZW50KToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdodENsaWNr
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVNb3Vz
ZU1vdmUpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL21haW4uY3BwOgorICAgICAgICAo
bWFpbik6CisKKzIwMTItMDQtMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCiAgICAgICAgIFtHVEtdIEFkZCBkb3dubG9hZHMgc3VwcG9ydCB0byBNaW5pQnJv
d3NlcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2
NjIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvR05VbWFrZWZpbGUuYW0g
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9HTlVtYWtlZmlsZS5hbQppbmRleCBkYmRhODU4Li5i
ZDljODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9HTlVtYWtlZmlsZS5h
bQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9HTlVtYWtlZmlsZS5hbQpAQCAtMSw3ICsx
LDYgQEAKIAogbm9pbnN0X0xUTElCUkFSSUVTICs9IFwKLQlMaWJyYXJpZXMvbGliZ3Rlc3QubGEg
XAotCUxpYnJhcmllcy9saWJndGVzdF9tYWluLmxhCisJTGlicmFyaWVzL2xpYmd0ZXN0LmxhCiAK
IExpYnJhcmllc19saWJndGVzdF9sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCBcCkBAIC00MSwyMyArNDAsNiBAQCBMaWJyYXJpZXNf
bGliZ3Rlc3RfbGFfQ1hYRkxBR1MgPSAtREdURVNUX0hBU19QVEhSRUFEPTEKIExpYnJhcmllc19s
aWJndGVzdF9sYV9MSUJBREQgPSBcCiAJLWxwdGhyZWFkCiAKLUxpYnJhcmllc19saWJndGVzdF9t
YWluX2xhX1NPVVJDRVMgPSBcCi0JU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0X21h
aW4uY2MKLQotTGlicmFyaWVzX2xpYmd0ZXN0X21haW5fbGFfQ1BQRkxBR1MgPSBcCi0JJChnbG9i
YWxfY3BwZmxhZ3MpIFwKLQkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKSBcCi0JLWlzeXN0ZW0g
JChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0IFwKLQktaXN5c3RlbSAkKHNyY2Rpcikv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZSBcCi0JLUkkKHNyY2RpcikvU291cmNlL1dU
RiBcCi0JLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QgXAotCS1JJChzcmNkaXIp
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUKLQotTGlicmFyaWVzX2xpYmd0ZXN0X21h
aW5fbGFfTElCQUREID0gXAotCS1scHRocmVhZAotCi1MaWJyYXJpZXNfbGliZ3Rlc3RfbWFpbl9s
YV9DWFhGTEFHUyA9IC1ER1RFU1RfSEFTX1BUSFJFQUQ9MQotCiAjIGd0ZXN0IHNvdXJjZSBmaWxl
cyB0aGF0IHdlIGRvbid0IGNvbXBpbGUgZGlyZWN0bHkuICBUaGV5IGFyZQogIyAjaW5jbHVkZWQg
YnkgZ3Rlc3QtYWxsLmNjLgogR1RFU1RfU1JDID0gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKaW5kZXggZWUwYmQxNy4uZjBkMzlmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oCkBAIC00MSw2
ICs0MSw5IEBAIHN0cnVjdCBOU0V2ZW50OwogdHlwZWRlZiBOU0V2ZW50ICpXS05hdGl2ZUV2ZW50
UHRyOwogI2VsaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCB0YWdNU0cqIFdLTmF0aXZlRXZlbnRQdHI7CisjZWxpZiBkZWZpbmVkKEJVSUxE
SU5HX0dUS19fKQordHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7Cit0eXBlZGVmIGNv
bnN0IEdka0V2ZW50KiBXS05hdGl2ZUV2ZW50UHRyOwogI2Vsc2UKIHR5cGVkZWYgY29uc3Qgdm9p
ZCogV0tOYXRpdmVFdmVudFB0cjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9y
dW4tZ3RrLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCmluZGV4IGNiYTQ4OWMu
LjIwZWEzMmQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cworKysgYi9U
b29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgU2tpcHBl
ZFRlc3Q6CiAKIGNsYXNzIFRlc3RSdW5uZXI6CiAKLSAgICBURVNUX0RJUlMgPSBbICJ1bml0dGVz
dHMiLCAiV2ViS2l0MkFQSVRlc3RzIiwgIlRlc3RXZWJLaXRBUEkvV1RGIiBdCisgICAgVEVTVF9E
SVJTID0gWyAidW5pdHRlc3RzIiwgIldlYktpdDJBUElUZXN0cyIsICJUZXN0V2ViS2l0QVBJL1dU
RiIsICJUZXN0V2ViS2l0QVBJL1dlYktpdDIiIF0KIAogICAgIFNLSVBQRUQgPSBbCiAgICAgICAg
IFNraXBwZWRUZXN0KCJ1bml0dGVzdHMvdGVzdGRvd25sb2FkIiwKQEAgLTcxLDEwICs3MSwxNiBA
QCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICAgICAgICAgICAgICAiVGVzdCBpcyBmbGFreSBp
biBHVEsgTGludXggMzItYml0IFJlbGVhc2UgYm90IiwKICAgICAgICAgICAgICAgICAgICAgODI4
NjgsCiAgICAgICAgICAgICAgICAgICAgIFsiL3dlYmtpdDIvV2ViS2l0V2ViVmlldy9yZXNvdXJj
ZXMiXSksCi0gICAgICAgIFNraXBwZWRUZXN0KCJUZXN0V2ViS2l0QVBJL1dURi9UZXN0RnVuY3Rp
b25hbCIsCi0gICAgICAgICAgICAgICAgICAgICJBc3NlcnRzIGluIERlYnVnIGJvdCIsCi0gICAg
ICAgICAgICAgICAgICAgIDg0ODY4LAotICAgICAgICAgICAgICAgICAgICBbIkZ1bmN0aW9uYWxU
ZXN0LlJlZkNvdW50ZWRTdG9yYWdlIl0pLAorICAgICAgICBTa2lwcGVkVGVzdCgiVGVzdFdlYktp
dEFQSS9XZWJLaXQyL1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQiLAorICAgICAg
ICAgICAgICAgICAgICAiVGVzdCB0aW1lcyBvdXQiKSwKKyAgICAgICAgU2tpcHBlZFRlc3QoIlRl
c3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
SW1hZ2VzIiwKKyAgICAgICAgICAgICAgICAgICAgIlRlc3QgdGltZXMgb3V0IiksCisgICAgICAg
IFNraXBwZWRUZXN0KCJUZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFdLQ29ubmVjdGlvblRlc3Qi
LAorICAgICAgICAgICAgICAgICAgICAiVGVzdCB0aW1lcyBvdXQiKSwKKyAgICAgICAgU2tpcHBl
ZFRlc3QoIlRlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0UmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRh
aW5pbmdGb3JtRGF0YSIsCisgICAgICAgICAgICAgICAgICAgICJTZXNzaW9uIFN0YXRlIGlzIG5v
dCBpbXBsZW1lbnRlZCBpbiBHVEsrIHBvcnQiKSwKKyAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RX
ZWJLaXRBUEkvV2ViS2l0Mi9UZXN0U3BhY2ViYXJTY3JvbGxpbmciLAorICAgICAgICAgICAgICAg
ICAgICAiVGVzdCBmYWlscyIpCiAgICAgXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlv
bnMsIHRlc3RzPVtdKToKQEAgLTE5MSw2ICsxOTcsOSBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAg
ICAgICBzZWxmLl90ZXN0X2VudlsiRElTUExBWSJdID0gc2VsZi5fb3B0aW9ucy5kaXNwbGF5CiAg
ICAgICAgIHNlbGYuX3Rlc3RfZW52WyJXRUJLSVRfSU5TUEVDVE9SX1BBVEgiXSA9IG9zLnBhdGgu
YWJzcGF0aChvcy5wYXRoLmpvaW4oc2VsZi5fcHJvZ3JhbXNfcGF0aCwgJ3Jlc291cmNlcycsICdp
bnNwZWN0b3InKSkKICAgICAgICAgc2VsZi5fdGVzdF9lbnZbJ0dTRVRUSU5HU19CQUNLRU5EJ10g
PSAnbWVtb3J5JworICAgICAgICBzZWxmLl90ZXN0X2VudlsiVEVTVF9XRUJLSVRfQVBJX1dFQktJ
VDJfUkVTT1VSQ0VTX1BBVEgiXSA9IG9zLnBhdGguam9pbihzZWxmLl9nZXRfdG9wX2xldmVsX2Rp
cmVjdG9yeSgpLCAiVG9vbHMiLCAiVGVzdFdlYktpdEFQSSIsICJUZXN0cyIsICJXZWJLaXQyIikK
KyAgICAgICAgc2VsZi5fdGVzdF9lbnZbIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX0lOSkVDVEVE
X0JVTkRMRV9QQVRIIl0gPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHNlbGYuX2dldF9i
dWlsZF9kaXJlY3RvcnkoKSwgIkxpYnJhcmllcyIpKQorICAgICAgICBzZWxmLl90ZXN0X2Vudlsi
V0VCS0lUX0VYRUNfUEFUSCJdID0gc2VsZi5fcHJvZ3JhbXNfcGF0aAogCiAgICAgICAgIHRyeToK
ICAgICAgICAgICAgIHNlbGYuX3h2ZmIgPSBzZWxmLl9jcmVhdGVfcHJvY2VzcyhbIlh2ZmIiLCBz
ZWxmLl9vcHRpb25zLmRpc3BsYXksICItc2NyZWVuIiwgIjAiLCAiODAweDYwMHgyNCIsICItbm9s
aXN0ZW4iLCAidGNwIl0sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2Vm
aWxlLmFtIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQppbmRleCBkYzc0YjYw
Li44MjI5MjE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0KQEAgLTEsMyArMSwxMSBA
QAorQlVJTFRfU09VUkNFUyArPSBcCisJZ2VuZXJhdGUtdGVzdHdlYmtpdGFwaS1mb3J3YXJkaW5n
LWhlYWRlcnMKKword2syX3Rlc3RzX3NvdXJjZXMgPSAkKHNoZWxsIGxzICQoc3JjZGlyKS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvKi5jcHApCitnZW5lcmF0ZS10ZXN0d2Via2l0
YXBpLWZvcndhcmRpbmctaGVhZGVyczogJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLWZvcndh
cmRpbmctaGVhZGVycy5wbCAkKHdrMl90ZXN0c19zb3VyY2VzKQorCSQoQU1fVl9HRU4pJChQRVJM
KSAkPCAkKHNyY2RpcikvVG9vbHMvVGVzdFdlYktpdEFQSSAkKEdFTlNPVVJDRVNfV0VCS0lUMikv
aW5jbHVkZSBndGsKKwkkKEFNX1ZfR0VOKSQoUEVSTCkgJDwgJChzcmNkaXIpL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkgJChHRU5TT1VSQ0VTX1dFQktJVDIpL2luY2x1ZGUgc291cAorCiBURVNUX1BST0dT
ICs9IFwKIAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0Q2hlY2tlZEFyaXRobWV0aWNP
cGVyYXRpb25zIFwKIAlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dURi9UZXN0RnVuY3Rpb25hbCBc
CkBAIC0xMCwxMSArMTgsNjMgQEAgVEVTVF9QUk9HUyArPSBcCiAJUHJvZ3JhbXMvVGVzdFdlYktp
dEFQSS9XVEYvVGVzdFZlY3RvciBcCiAJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XVEYvVGVzdFZl
Y3RvclJldmVyc2UKIAoraWYgRU5BQkxFX1dFQktJVDIKK1RFU1RfUFJPR1MgKz0gXAorCVByb2dy
YW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0Q29va2llTWFuYWdlciBcCisJUHJvZ3JhbXMv
VGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3REb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jh
c2ggXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0RG93bmxvYWREZWNpZGVE
ZXN0aW5hdGlvbkNyYXNoIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEV2
YWx1YXRlSmF2YVNjcmlwdCBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RG
YWlsZWRMb2FkIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEZvcmNlUmVw
YWludCBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RGcmFtZU1JTUVUeXBl
SFRNTCBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RGcmFtZU1JTUVUeXBl
UE5HIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEhpdFRlc3RSZXN1bHRO
b2RlSGFuZGxlIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdEluamVjdGVk
QnVuZGxlQmFzaWMgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0TG9hZEFs
dGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMIFwKKwlQcm9ncmFtcy9UZXN0V2Vi
S2l0QVBJL1dlYktpdDIvVGVzdExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjayBc
CisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RNb3VzZU1vdmVBZnRlckNyYXNo
IFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdE5ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dCBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rlc3ROZXdG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlscyBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQ
SS9XZWJLaXQyL1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXMgXAor
CVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0RnJhbWVzIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFBh
Z2VMb2FkQmFzaWMgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0UGFnZUxv
YWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZSBcCisJUHJvZ3JhbXMvVGVzdFdl
YktpdEFQSS9XZWJLaXQyL1Rlc3RQYXJlbnRGcmFtZSBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQ
SS9XZWJLaXQyL1Rlc3RQcmV2ZW50RW1wdHlVc2VyQWdlbnQgXAorCVByb2dyYW1zL1Rlc3RXZWJL
aXRBUEkvV2ViS2l0Mi9UZXN0UHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJh
Y2sgXAorCVByb2dyYW1zL1Rlc3RXZWJLaXRBUEkvV2ViS2l0Mi9UZXN0UmVzcG9uc2l2ZW5lc3NU
aW1lckRvZXNudEZpcmVFYXJseSBcCisJUHJvZ3JhbXMvVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rl
c3RSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhIFwKKwlQcm9ncmFtcy9UZXN0
V2ViS2l0QVBJL1dlYktpdDIvVGVzdFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtIFwKKwlQ
cm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFNwYWNlYmFyU2Nyb2xsaW5nIFwKKwlQ
cm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFVzZXJNZXNzYWdlIFwKKwlQcm9ncmFt
cy9UZXN0V2ViS2l0QVBJL1dlYktpdDIvVGVzdFdLQ29ubmVjdGlvbiBcCisJUHJvZ3JhbXMvVGVz
dFdlYktpdEFQSS9XZWJLaXQyL1Rlc3RXS1ByZWZlcmVuY2VzIFwKKwlQcm9ncmFtcy9UZXN0V2Vi
S2l0QVBJL1dlYktpdDIvVGVzdFdLU3RyaW5nIFwKKwlQcm9ncmFtcy9UZXN0V2ViS2l0QVBJL1dl
YktpdDIvVGVzdFdLU3RyaW5nSlNTdHJpbmcKK2VuZGlmCisKIG5vaW5zdF9QUk9HUkFNUyArPSAk
KFRFU1RfUFJPR1MpCiAKK25vaW5zdF9MVExJQlJBUklFUyArPSBcCisJTGlicmFyaWVzL2xpYlRl
c3RXZWJLaXRBUElNYWluLmxhCisKK0xpYnJhcmllc19saWJUZXN0V2ViS2l0QVBJTWFpbl9sYV9T
T1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHNDb250cm9sbGVyLmNwcCBcCisJ
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0c0NvbnRyb2xsZXIuaCBcCisJVG9vbHMvVGVzdFdlYktp
dEFQSS9ndGsvbWFpbi5jcHAKKwogIyBVc2UgLWlzeXN0ZW0gZ2NjIGZsYWcgc28gdGhhdCBnY2Mg
Y29uc2lkZXJzIGd0ZXN0IGhlYWRlcnMgYXMgc3lzdGVtIGhlYWRlcnMuCiAjIFdlIG5lZWQgdGhp
cyB0byBhdm9pZCBhIGxvdCBvZiBjb21waWxlIHdhcm5pbmdzIGR1ZSB0byAtV3VuZGVmLgogIyBT
ZWUgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2dvb2dsZXRlc3QvaXNzdWVzL2RldGFpbD9pZD0y
NTgKK0xpYnJhcmllc19saWJUZXN0V2ViS2l0QVBJTWFpbl9sYV9DUFBGTEFHUyA9IFwKKwktaXN5
c3RlbSAkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZSBcCisJLUkkKHNy
Y2RpcikvVG9vbHMvVGVzdFdlYktpdEFQSSBcCisJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZSBcCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9pbmNsdWRlIFwKKwkkKGdsb2JhbF9jcHBmbGFncykgXAorCSQoamF2YXNjcmlwdGNvcmVf
Y3BwZmxhZ3MpIFwKKwkkKEdMSUJfQ0ZMQUdTKQorCiB0ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19j
cHBmbGFncyA9IFwKIAktaXN5c3RlbSAkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZSBcCiAJLUkkKHNyY2RpcikvVG9vbHMvVGVzdFdlYktpdEFQSSBcCkBAIC0yNSwxMyAr
ODUsMTAxIEBAIHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2NwcGZsYWdzID0gXAogCiB0ZXN0d2Vi
a2l0YXBpX3d0Zl90ZXN0c19sZGFkZCA9IFwKIAlMaWJyYXJpZXMvbGliZ3Rlc3QubGEgXAotCUxp
YnJhcmllcy9saWJndGVzdF9tYWluLmxhIFwKKwlMaWJyYXJpZXMvbGliVGVzdFdlYktpdEFQSU1h
aW4ubGEgXAogCWxpYldURi5sYQogCiB0ZXN0d2Via2l0YXBpX3d0Zl90ZXN0c19sZGZsYWdzID0g
XAogCS1uby1pbnN0YWxsIFwKIAktbm8tZmFzdC1pbnN0YWxsCiAKK3Rlc3R3ZWJraXRhcGlfd2Vi
a2l0Ml90ZXN0c19jcHBmbGFncyA9IFwKKwkkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2NwcGZs
YWdzKSBcCisJJChDQUlST19DRkxBR1MpIFwKKwkkKEdUS19DRkxBR1MpIFwKKwkkKExJQlNPVVBf
Q0ZMQUdTKQorCit0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQgPSBcCisJbGliamF2
YXNjcmlwdGNvcmVndGstQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkAuQFdFQktJVEdUS19B
UElfTUlOT1JfVkVSU0lPTkAubGEgXAorCWxpYndlYmtpdDJndGstQFdFQktJVEdUS19BUElfTUFK
T1JfVkVSU0lPTkAuQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkAubGEgXAorCUxpYnJhcmll
cy9saWJndGVzdC5sYSBcCisJTGlicmFyaWVzL2xpYlRlc3RXZWJLaXRBUElNYWluLmxhIFwKKwlM
aWJyYXJpZXMvbGliVGVzdFdlYktpdEFQSVdlYktpdDJUZXN0cy5sYSBcCisJJChDQUlST19MSUJT
KSBcCisJJChHVEtfTElCUykgXAorCSQoR0xJQl9MSUJTKSBcCisJJChMSUJTT1VQX0xJQlMpCisK
K3Rlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzID0gJCh0ZXN0d2Via2l0YXBpX3d0
Zl90ZXN0c19sZGZsYWdzKQorCitpZiBFTkFCTEVfV0VCS0lUMgorbm9pbnN0X0xUTElCUkFSSUVT
ICs9IFwKKwlMaWJyYXJpZXMvbGliVGVzdFdlYktpdEFQSVdlYktpdDJUZXN0cy5sYSBcCisJTGli
cmFyaWVzL2xpYlRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZS5sYQorZW5kaWYKKworIyBUZXN0
V2ViS2l0QVBJV2ViS2l0MlRlc3RzCitMaWJyYXJpZXNfbGliVGVzdFdlYktpdEFQSVdlYktpdDJU
ZXN0c19sYV9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1VdGlsaXRp
ZXMuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmggXAorCVRv
b2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmggXAorCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvSmF2YVNjcmlwdFRlc3QuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL0phdmFTY3JpcHRU
ZXN0LmggXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNw
cCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAorCitM
aWJyYXJpZXNfbGliVGVzdFdlYktpdEFQSVdlYktpdDJUZXN0c19sYV9DUFBGTEFHUyA9IFwKKwkt
aXN5c3RlbSAkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZSBcCisJLUkk
KHNyY2RpcikvVG9vbHMvVGVzdFdlYktpdEFQSSBcCisJLUkkKHNyY2RpcikvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvaW5jbHVkZSBcCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9pbmNsdWRlIFwKKwkkKGdsb2JhbF9jcHBmbGFncykgXAorCSQoamF2YXNjcmlwdGNv
cmVfY3BwZmxhZ3MpIFwKKwkkKEdUS19DRkxBR1MpCisKKyMgVGVzdFdlYktpdEFQSUluamVjdGVk
QnVuZGxlCitMaWJyYXJpZXNfbGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlX2xhX1NPVVJD
RVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuY3Bw
IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlQ29udHJvbGxlci5oIFwKKwlU
b29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlTWFpbi5jcHAgXAorCVRvb2xzL1Rlc3RX
ZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGVUZXN0LmggXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvUGxh
dGZvcm1VdGlsaXRpZXMuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0
aWVzLmggXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Eb2N1bWVudFN0YXJ0
VXNlclNjcmlwdEFsZXJ0Q3Jhc2hfQnVuZGxlLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL0hpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgXAorCVRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9JbmplY3RlZEJ1bmRsZUJhc2ljX0J1bmRsZS5j
cHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Mb2FkQ2FuY2VsZWROb1Nl
cnZlclJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL01vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCBcCisJVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9C
dW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfQnVuZGxlLmNwcCBcCisJVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdl
c19CdW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTmV3Rmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QYXJlbnRGcmFtZV9CdW5kbGUuY3BwIFwKKwlUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVF
YXJseV9CdW5kbGUuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2hv
dWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1fQnVuZGxlLmNwcCBcCisJVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdlX0J1bmRsZS5jcHAgXAorCVRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS0Nvbm5lY3Rpb25fQnVuZGxlLmNwcCBcCisJVG9vbHMv
VGVzdFdlYktpdEFQSS9ndGsvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyR3RrLmNwcCBcCisJVG9v
bHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1VdGlsaXRpZXNHdGsuY3BwCisKK0xpYnJhcmll
c19saWJUZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGVfbGFfTERGTEFHUyA9IFwKKwktcnBhdGgg
JHtzaGVsbCBwd2R9LyQodG9wX2J1aWxkZGlyKS9MaWJyYXJpZXMvLmxpYnMgXAorCSQobm9fdW5k
ZWZpbmVkKSBcCisJLWF2b2lkLXZlcnNpb24gXAorCS1tb2R1bGUKKworTGlicmFyaWVzX2xpYlRl
c3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZV9sYV9DUFBGTEFHUyA9IFwKKwktaXN5c3RlbSAkKHNy
Y2RpcikvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZSBcCisJLUkkKHNyY2RpcikvVG9v
bHMvVGVzdFdlYktpdEFQSSBcCisJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZSBcCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvSW5qZWN0ZWRCdW5k
bGUgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvaW5jbHVkZSBc
CisJJChnbG9iYWxfY3BwZmxhZ3MpIFwKKwkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKSBcCisJ
JChHVEtfQ0ZMQUdTKQorCitMaWJyYXJpZXNfbGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxl
X2xhX0NYWEZMQUdTID0gJChnbG9iYWxfY3h4ZmxhZ3MpCitMaWJyYXJpZXNfbGliVGVzdFdlYktp
dEFQSUluamVjdGVkQnVuZGxlX2xhX0NGTEFHUyA9ICQoZ2xvYmFsX2NmbGFncykKKwogUHJvZ3Jh
bXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9uc19TT1VS
Q0VTID0gXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRBcml0aG1ldGlj
T3BlcmF0aW9ucy5jcHAKIFByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV1RGX1Rlc3RDaGVja2VkQXJp
dGhtZXRpY09wZXJhdGlvbnNfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd3RmX3Rlc3RzX2Nw
cGZsYWdzKQpAQCAtOTIsMyArMjQwLDE4OSBAQCBQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dURl9U
ZXN0VmVjdG9yUmV2ZXJzZV9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdAogUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVzdFZlY3RvclJldmVyc2VfTERBREQgPSAkKHRlc3R3
ZWJraXRhcGlfd3RmX3Rlc3RzX2xkYWRkKQogUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XVEZfVGVz
dFZlY3RvclJldmVyc2VfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93dGZfdGVzdHNfbGRmbGFn
cykKIAorIyBXZWJLaXQyIFRlc3RzCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVz
dENvb2tpZU1hbmFnZXJfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvQ29va2llTWFuYWdlci5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9U
ZXN0Q29va2llTWFuYWdlcl9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3Rz
X2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RDb29raWVNYW5h
Z2VyX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFt
c19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdENvb2tpZU1hbmFnZXJfTERGTEFHUyA9ICQodGVz
dHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRB
UElfV2ViS2l0Ml9UZXN0RG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoX1NPVVJDRVMg
PSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0RvY3VtZW50U3RhcnRVc2Vy
U2NyaXB0QWxlcnRDcmFzaC5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
RG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9MREFERCA9ICQodGVzdHdl
YmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3REb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hfTERGTEFHUyA9ICQodGVz
dHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRB
UElfV2ViS2l0Ml9UZXN0RG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoX1NPVVJDRVMgPSBc
CisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0Rvd25sb2FkRGVjaWRlRGVzdGlu
YXRpb25DcmFzaC5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RG93bmxv
YWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtp
dDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdERv
d25sb2FkRGVjaWRlRGVzdGluYXRpb25DcmFzaF9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJr
aXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3REb3du
bG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jhc2hfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJr
aXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
RXZhbHVhdGVKYXZhU2NyaXB0X1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL0V2YWx1YXRlSmF2YVNjcmlwdC5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0RXZhbHVhdGVKYXZhU2NyaXB0X0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBp
X3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdEV2YWx1YXRlSmF2YVNjcmlwdF9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rl
c3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RFdmFsdWF0ZUph
dmFTY3JpcHRfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3Mp
CisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RmFpbGVkTG9hZF9TT1VSQ0VT
ID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9GYWlsZWRMb2FkLmNwcAor
UHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RGYWlsZWRMb2FkX0NQUEZMQUdTID0g
JCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2Vi
S2l0QVBJX1dlYktpdDJfVGVzdEZhaWxlZExvYWRfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Vi
a2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RmFp
bGVkTG9hZF9MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykK
KworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RGb3JjZVJlcGFpbnRfU09VUkNF
UyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRm9yY2VSZXBhaW50LmNw
cAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RGb3JjZVJlcGFpbnRfQ1BQRkxB
R1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rl
c3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0Rm9yY2VSZXBhaW50X0xEQUREID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJf
VGVzdEZvcmNlUmVwYWludF9MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNf
bGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RGcmFtZU1JTUVU
eXBlSFRNTF9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9G
cmFtZU1JTUVUeXBlSFRNTC5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
RnJhbWVNSU1FVHlwZUhUTUxfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0
c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1F
VHlwZUhUTUxfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1By
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1FVHlwZUhUTUxfTERGTEFH
UyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rl
c3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0RnJhbWVNSU1FVHlwZVBOR19TT1VSQ0VTID0gXAorCVRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9GcmFtZU1JTUVUeXBlUE5HLmNwcAorUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RGcmFtZU1JTUVUeXBlUE5HX0NQUEZMQUdT
ID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0
V2ViS2l0QVBJX1dlYktpdDJfVGVzdEZyYW1lTUlNRVR5cGVQTkdfTERBREQgPSAkKHRlc3R3ZWJr
aXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0
Ml9UZXN0RnJhbWVNSU1FVHlwZVBOR19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJf
dGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RIaXRU
ZXN0UmVzdWx0Tm9kZUhhbmRsZV9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9IaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQ1BQRkxBR1MgPSAkKHRl
c3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRB
UElfV2ViS2l0Ml9UZXN0SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfTERBREQgPSAkKHRlc3R3ZWJr
aXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0
Ml9UZXN0SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93
ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9U
ZXN0SW5qZWN0ZWRCdW5kbGVCYXNpY19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9JbmplY3RlZEJ1bmRsZUJhc2ljLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XZWJLaXQyX1Rlc3RJbmplY3RlZEJ1bmRsZUJhc2ljX0NQUEZMQUdTID0gJCh0ZXN0d2Vi
a2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdEluamVjdGVkQnVuZGxlQmFzaWNfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Vi
a2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0SW5q
ZWN0ZWRCdW5kbGVCYXNpY19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNf
bGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RMb2FkQWx0ZXJu
YXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkxfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGly
ZWN0b3J5VVJMLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RMb2FkQWx0
ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkxfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJr
aXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0TG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMX0xEQURE
ID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2Vi
S2l0QVBJX1dlYktpdDJfVGVzdExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9y
eVVSTF9MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKwor
UHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RMb2FkQ2FuY2VsZWROb1NlcnZlclJl
ZGlyZWN0Q2FsbGJhY2tfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcAorUHJvZ3JhbXNf
VGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2Fs
bGJhY2tfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TG9hZENhbmNlbGVkTm9TZXJ2ZXJS
ZWRpcmVjdENhbGxiYWNrX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRh
ZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdExvYWRDYW5jZWxlZE5vU2Vy
dmVyUmVkaXJlY3RDYWxsYmFja19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RNb3VzZU1v
dmVBZnRlckNyYXNoX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL01vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Vi
a2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0
TW91c2VNb3ZlQWZ0ZXJDcmFzaF9MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3Rz
X2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RNb3VzZU1vdmVBZnRl
ckNyYXNoX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQor
CitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dF9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0
QVBJX1dlYktpdDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9DUFBGTEFHUyA9
ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRfTERBREQg
PSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJL
aXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0X0xERkxBR1Mg
PSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0
V2ViS2l0QVBJX1dlYktpdDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZhaWxz
X1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZhaWxzLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9X
ZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlsc19DUFBGTEFHUyA9
ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlsc19M
REFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVz
dFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWls
c19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJv
Z3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JJbWFnZXNfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcAorUHJvZ3Jh
bXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JJbWFnZXNfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBm
bGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0TmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJf
dGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdE5ld0ZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlc19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBp
X3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQy
X1Rlc3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfU09VUkNFUyA9IFwKKwlU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0RnJhbWVzLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3ROZXdG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRh
cGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0
Ml9UZXN0TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0xEQUREID0gJCh0ZXN0
d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19MREZMQUdTID0g
JCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3RQYWdlTG9hZEJhc2ljX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1BhZ2VMb2FkQmFzaWMuY3BwCitQcm9ncmFtc19UZXN0
V2ViS2l0QVBJX1dlYktpdDJfVGVzdFBhZ2VMb2FkQmFzaWNfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJr
aXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0UGFnZUxvYWRCYXNpY19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rl
c3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQYWdlTG9hZEJh
c2ljX0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQ
cm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRp
b25XaXRoaW5QYWdlRm9yRnJhbWVfU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZS5j
cHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UGFnZUxvYWREaWRDaGFuZ2VM
b2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZV9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJr
aXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQ
YWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lX0xEQUREID0gJCh0ZXN0
d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWVfTERG
TEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1z
X1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UGFyZW50RnJhbWVfU09VUkNFUyA9IFwKKwlUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUGFyZW50RnJhbWUuY3BwCitQcm9ncmFtc19U
ZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFBhcmVudEZyYW1lX0NQUEZMQUdTID0gJCh0ZXN0d2Vi
a2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dl
YktpdDJfVGVzdFBhcmVudEZyYW1lX0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFBhcmVudEZyYW1l
X0xERkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9n
cmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFByZXZlbnRFbXB0eVVzZXJBZ2VudF9TT1VS
Q0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QcmV2ZW50RW1wdHlV
c2VyQWdlbnQuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFByZXZlbnRF
bXB0eVVzZXJBZ2VudF9DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2Nw
cGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcmV2ZW50RW1wdHlV
c2VyQWdlbnRfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1By
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0UHJldmVudEVtcHR5VXNlckFnZW50X0xE
RkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFt
c19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlz
dG9yeUNhbGxiYWNrX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcAorUHJvZ3Jh
bXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFja19DUFBGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2Nw
cGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcml2YXRlQnJvd3Np
bmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFja19MREFERCA9ICQodGVzdHdlYmtpdGFwaV93ZWJr
aXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RQcml2
YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFja19MREZMQUdTID0gJCh0ZXN0d2Vi
a2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9X
ZWJLaXQyX1Rlc3RSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X1NPVVJDRVMgPSBc
CisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Jlc3BvbnNpdmVuZXNzVGltZXJE
b2VzbnRGaXJlRWFybHkuY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFJl
c3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRh
cGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0
Ml9UZXN0UmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9MREFERCA9ICQodGVzdHdl
YmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3RSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0xERkxBR1MgPSAkKHRl
c3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0
QVBJX1dlYktpdDJfVGVzdFJlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGFfU09V
UkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUmVzdG9yZVNlc3Np
b25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YS5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0UmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YV9DUFBGTEFHUyA9
ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3RSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRh
X0xEQUREID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19U
ZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFJlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9y
bURhdGFfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisK
K1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0U2hvdWxkR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW1fU09VUkNFUyA9IFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
U2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJ
X1dlYktpdDJfVGVzdFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0NQUEZMQUdTID0gJCh0
ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0
QVBJX1dlYktpdDJfVGVzdFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0xEQUREID0gJCh0
ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJ
X1dlYktpdDJfVGVzdFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0xERkxBR1MgPSAkKHRl
c3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCitQcm9ncmFtc19UZXN0V2ViS2l0
QVBJX1dlYktpdDJfVGVzdFNwYWNlYmFyU2Nyb2xsaW5nX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1NwYWNlYmFyU2Nyb2xsaW5nLmNwcAorUHJvZ3JhbXNf
VGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RTcGFjZWJhclNjcm9sbGluZ19DUFBGTEFHUyA9ICQo
dGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XZWJLaXQyX1Rlc3RTcGFjZWJhclNjcm9sbGluZ19MREFERCA9ICQodGVzdHdlYmtpdGFw
aV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rl
c3RTcGFjZWJhclNjcm9sbGluZ19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVz
dHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJLaXQyX1Rlc3RVc2VyTWVz
c2FnZV9TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2Vy
TWVzc2FnZS5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0VXNlck1lc3Nh
Z2VfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19jcHBmbGFncykKK1By
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0VXNlck1lc3NhZ2VfTERBREQgPSAkKHRl
c3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0VXNlck1lc3NhZ2VfTERGTEFHUyA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQy
X3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tD
b25uZWN0aW9uX1NPVVJDRVMgPSBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L1dLQ29ubmVjdGlvbi5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tD
b25uZWN0aW9uX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxh
Z3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLQ29ubmVjdGlvbl9MREFE
RCA9ICQodGVzdHdlYmtpdGFwaV93ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3RXS0Nvbm5lY3Rpb25fTERGTEFHUyA9ICQodGVzdHdlYmtpdGFw
aV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0
Ml9UZXN0V0tQcmVmZXJlbmNlc19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJL
aXQyX1Rlc3RXS1ByZWZlcmVuY2VzX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJf
dGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktpdDJfVGVzdFdLUHJl
ZmVyZW5jZXNfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1By
b2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tQcmVmZXJlbmNlc19MREZMQUdTID0g
JCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykKKworUHJvZ3JhbXNfVGVzdFdl
YktpdEFQSV9XZWJLaXQyX1Rlc3RXS1N0cmluZ19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1N0cmluZy5jcHAKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElf
V2ViS2l0Ml9UZXN0V0tTdHJpbmdfQ1BQRkxBR1MgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90
ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tTdHJp
bmdfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1z
X1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tTdHJpbmdfTERGTEFHUyA9ICQodGVzdHdlYmtp
dGFwaV93ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2Vi
S2l0Ml9UZXN0V0tTdHJpbmdKU1N0cmluZ19TT1VSQ0VTID0gXAorCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9XS1N0cmluZ0pTU3RyaW5nLmNwcAorUHJvZ3JhbXNfVGVzdFdlYktp
dEFQSV9XZWJLaXQyX1Rlc3RXS1N0cmluZ0pTU3RyaW5nX0NQUEZMQUdTID0gJCh0ZXN0d2Via2l0
YXBpX3dlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYktp
dDJfVGVzdFdLU3RyaW5nSlNTdHJpbmdfTERBREQgPSAkKHRlc3R3ZWJraXRhcGlfd2Via2l0Ml90
ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViS2l0Ml9UZXN0V0tTdHJpbmdK
U1N0cmluZ19MREZMQUdTID0gJCh0ZXN0d2Via2l0YXBpX3dlYmtpdDJfdGVzdHNfbGRmbGFncykK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3QuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9KYXZhU2NyaXB0VGVzdC5jcHAKaW5kZXggNGYxMDliNi4uODViZTg5
MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9KYXZhU2NyaXB0VGVzdC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9KYXZhU2NyaXB0VGVzdC5jcHAKQEAgLTI4LDcgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiVGVzdC5oIgot
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNDb250ZXh0UmVmLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNS
ZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8
V2ViS2l0Mi9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZv
cm1XZWJWaWV3LmgKaW5kZXggMDA3MjBmNC4uY2YwMTMyZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtV2ViVmlldy5oCkBAIC00Myw2ICs0Myw5IEBAIHR5cGVkZWYgTlNXaW5kb3cgKlBsYXRm
b3JtV2luZG93OwogI2VsaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCiB0eXBl
ZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdLVmlldzsKIHR5cGVkZWYgSFdORCBQbGF0Zm9ybVdpbmRv
dzsKKyNlbGlmIFBMQVRGT1JNKEdUSykKK3R5cGVkZWYgV0tWaWV3UmVmIFBsYXRmb3JtV0tWaWV3
OwordHlwZWRlZiBHdGtXaWRnZXQgKlBsYXRmb3JtV2luZG93OwogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9FdmFsdWF0ZUphdmFTY3JpcHQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL0V2YWx1YXRlSmF2YVNjcmlwdC5jcHAKaW5kZXggOTliN2ZmNy4uOTBhZDA0ZiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0V2YWx1YXRlSmF2
YVNjcmlwdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0V2YWx1
YXRlSmF2YVNjcmlwdC5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVV0
aWxpdGllcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUgIlRlc3Qu
aCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgogI2luY2x1ZGUg
PFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmg+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1ByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHAKaW5kZXggNGM1MjI3OC4uYzVhY2I2
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1ByZXZlbnRF
bXB0eVVzZXJBZ2VudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L1ByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1
ZGUgIlRlc3QuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oPgogI2luY2x1ZGUgPFdlYktp
dDIvV0tSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmg+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9X
S1ByZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1By
ZWZlcmVuY2VzLmNwcAppbmRleCAyYTE4MWRkLi41YWYwMWViIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC01Nyw2ICs1
NywxNCBAQCBURVNUKFdlYktpdDIsIFdLUHJlZmVyZW5jZXNEZWZhdWx0cykKICAgICBzdGF0aWMg
Y29uc3QgY2hhciogZXhwZWN0ZWRDdXJzaXZlRm9udEZhbWlseSA9ICJBcHBsZSBDaGFuY2VyeSI7
CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkRmFudGFzeUZvbnRGYW1pbHkgPSAiUGFw
eXJ1cyI7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkUGljdG9ncmFwaEZvbnRGYW1p
bHkgPSAiQXBwbGUgQ29sb3IgRW1vamkiOworI2VsaWYgUExBVEZPUk0oR1RLKQorICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBleHBlY3RlZFN0YW5kYXJkRm9udEZhbWlseSA9ICJUaW1lcyI7CisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkRml4ZWRGb250RmFtaWx5ID0gIkNvdXJpZXIgTmV3
IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRTZXJpZkZvbnRGYW1pbHkgPSAiVGlt
ZXMiOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBleHBlY3RlZFNhbnNTZXJpZkZvbnRGYW1pbHkg
PSAiSGVsdmV0aWNhIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRDdXJzaXZlRm9u
dEZhbWlseSA9ICJDb21pYyBTYW5zIE1TIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0
ZWRGYW50YXN5Rm9udEZhbWlseSA9ICJJbXBhY3QiOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBl
eHBlY3RlZFBpY3RvZ3JhcGhGb250RmFtaWx5ID0gIlRpbWVzIjsKICNlbmRpZgogCiAgICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlID0gV0tQcmVmZXJlbmNlc0NyZWF0ZSgpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyR3Rr
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL0luamVjdGVkQnVuZGxlQ29udHJvbGxlckd0
ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ1NTAwMgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL0luamVjdGVkQnVuZGxlQ29udHJv
bGxlckd0ay5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVDb250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwor
dm9pZCBJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvZ3RrL1BsYXRmb3JtVXRpbGl0aWVzR3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42ZmQwNWY1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvUGxhdGZvcm1VdGlsaXRpZXNHdGsuY3BwCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlIDxndGsvZ3Rr
Lmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dSZWZQdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworbmFtZXNwYWNlIFV0
aWwgeworCitzdGF0aWMgZ2Jvb2xlYW4gY2hlY2tUZXN0RmluaXNoZWQoZ3BvaW50ZXIgdXNlckRh
dGEpCit7CisgICAgYm9vbCogZG9uZSA9IHN0YXRpY19jYXN0PGJvb2wqPih1c2VyRGF0YSk7CisK
KyAgICBpZiAoKmRvbmUpCisgICAgICAgIGd0a19tYWluX3F1aXQoKTsKKworICAgIHJldHVybiAh
KmRvbmU7Cit9CisKK3ZvaWQgcnVuKGJvb2wqIGRvbmUpCit7CisgICAgZ19pZGxlX2FkZChjaGVj
a1Rlc3RGaW5pc2hlZCwgZG9uZSk7CisgICAgZ3RrX21haW4oKTsKK30KKwordm9pZCBzbGVlcChk
b3VibGUgc2Vjb25kcykKK3sKKyAgICBnX3VzbGVlcChzZWNvbmRzICogMTAwMDAwMCk7Cit9CisK
K3N0YXRpYyBjaGFyKiBnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KGNv
bnN0IGNoYXIqIHZhcmlhYmxlTmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0
ZW52KHZhcmlhYmxlTmFtZSk7CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBnX3ByaW50ZXJy
KCIlcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBub3QgZm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7Cisg
ICAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1
cm4gZ19maWxlbmFtZV90b191dGY4KHZhbHVlLCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9
CisKK1dLU3RyaW5nUmVmIGNyZWF0ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7CisgICAgR093blB0
cjxjaGFyPiBpbmplY3RlZEJ1bmRsZVBhdGgoZ2V0RmlsZW5hbWVGcm9tRW52aXJvbm1lbnRWYXJp
YWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfSU5KRUNURURfQlVORExFX1BBVEgi
KSk7CisgICAgR093blB0cjxjaGFyPiBpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKGdfYnVpbGRfZmls
ZW5hbWUoaW5qZWN0ZWRCdW5kbGVQYXRoLmdldCgpLCAibGliVGVzdFdlYktpdEFQSUluamVjdGVk
QnVuZGxlLmxhIiwgTlVMTCkpOworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZyhpbmplY3RlZEJ1bmRsZUZpbGVuYW1lLmdldCgpKTsKK30KKworV0tVUkxSZWYgY3JlYXRl
VVJMRm9yUmVzb3VyY2UoY29uc3QgY2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGV4dGVuc2lv
bikKK3sKKyAgICBHT3duUHRyPGNoYXI+IHRlc3RSZXNvdXJjZXNQYXRoKGdldEZpbGVuYW1lRnJv
bUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX1JFU09V
UkNFU19QQVRIIikpOworICAgIEdPd25QdHI8Y2hhcj4gcmVzb3VyY2VCYXNlbmFtZShnX3N0cmR1
cF9wcmludGYoIiVzLiVzIiwgcmVzb3VyY2UsIGV4dGVuc2lvbikpOworICAgIEdPd25QdHI8Y2hh
cj4gcmVzb3VyY2VGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKHRlc3RSZXNvdXJjZXNQYXRoLmdl
dCgpLCByZXNvdXJjZUJhc2VuYW1lLmdldCgpLCBOVUxMKSk7CisgICAgR1JlZlB0cjxHRmlsZT4g
cmVzb3VyY2VGaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgocmVzb3VyY2VGaWxl
bmFtZS5nZXQoKSkpOworICAgIEdPd25QdHI8Y2hhcj4gcmVzb3VyY2VVUkkoZ19maWxlX2dldF91
cmkocmVzb3VyY2VGaWxlLmdldCgpKSk7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKHJlc291cmNlVVJJLmdldCgpKTsKK30KKworV0tVUkxSZWYgVVJMRm9yTm9uRXhpc3Rl
bnRSZXNvdXJjZSgpCit7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJm
aWxlOi8vL2RvZXMtbm90LWV4aXN0Lmh0bWwiKTsKK30KKworYm9vbCBpc0tleURvd24oV0tOYXRp
dmVFdmVudFB0ciBldmVudCkKK3sKKyAgICByZXR1cm4gZXZlbnQtPnR5cGUgPT0gR0RLX0tFWV9Q
UkVTUzsKK30KKworfSAvLyBuYW1lc3BhY2UgVXRpbAorfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJWaWV3
R3RrLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkwMGJlNAotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKQEAg
LTAsMCArMSwxNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5o
IgorCisjaW5jbHVkZSA8V2ViQ29yZS9HT3duUHRyR3RrLmg+CisjaW5jbHVkZSA8Z3RrL2d0ay5o
PgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYg
Y29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQoreworICAgIGd0a19pbml0
KDAsIDApOworICAgIG1fd2luZG93ID0gZ3RrX3dpbmRvd19uZXcoR1RLX1dJTkRPV19UT1BMRVZF
TCk7CisgICAgbV92aWV3ID0gV0tWaWV3Q3JlYXRlKGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7
CisgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihtX3dpbmRvdyksIEdUS19XSURH
RVQobV92aWV3KSk7CisgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQobV92aWV3KSk7Cit9
CisKK1BsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldygpCit7CisgICAgZ3RrX3dpZGdl
dF9kZXN0cm95KG1fd2luZG93KTsKK30KKworV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFn
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdLVmlld0dldFBhZ2UobV92aWV3KTsKK30KKwordm9p
ZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWln
aHQpCit7CisgICAgZ3RrX3dpbmRvd19yZXNpemUoR1RLX1dJTkRPVyhtX3dpbmRvdyksIHdpZHRo
LCBoZWlnaHQpOworfQorCitzdGF0aWMgdm9pZCBkb0tleVN0cm9rZShHdGtXaWRnZXQqIHZpZXdX
aWRnZXQsIHVuc2lnbmVkIGludCBrZXlWYWwpCit7CisgICAgR093blB0cjxHZGtFdmVudD4gZXZl
bnQoZ2RrX2V2ZW50X25ldyhHREtfS0VZX1BSRVNTKSk7CisgICAgZXZlbnQtPmtleS5rZXl2YWwg
PSBrZXlWYWw7CisgICAgZXZlbnQtPmtleS50aW1lID0gR0RLX0NVUlJFTlRfVElNRTsKKyAgICBl
dmVudC0+a2V5LnN0YXRlID0gMDsKKyAgICBldmVudC0+a2V5LndpbmRvdyA9IGd0a193aWRnZXRf
Z2V0X3dpbmRvdyh2aWV3V2lkZ2V0KTsKKyAgICBnX29iamVjdF9yZWYoZXZlbnQtPmtleS53aW5k
b3cpOworICAgIGdka19ldmVudF9zZXRfZGV2aWNlKGV2ZW50LmdldCgpLCBnZGtfZGV2aWNlX21h
bmFnZXJfZ2V0X2NsaWVudF9wb2ludGVyKGdka19kaXNwbGF5X2dldF9kZXZpY2VfbWFuYWdlcihn
dGtfd2lkZ2V0X2dldF9kaXNwbGF5KHZpZXdXaWRnZXQpKSkpOworCisgICAgLy8gV2hlbiBzeW50
aGVzaXppbmcgYW4gZXZlbnQsIGFuIGludmFsaWQgaGFyZHdhcmVfa2V5Y29kZSB2YWx1ZSBjYW4g
Y2F1c2UgaXQgdG8gYmUgYmFkbHkgcHJvY2Vzc2VkIGJ5IEdUSysuCisgICAgR093blB0cjxHZGtL
ZXltYXBLZXk+IGtleXM7CisgICAgaW50IGtleXNDb3VudDsKKyAgICBpZiAoZ2RrX2tleW1hcF9n
ZXRfZW50cmllc19mb3Jfa2V5dmFsKGdka19rZXltYXBfZ2V0X2RlZmF1bHQoKSwga2V5VmFsLCAm
a2V5cy5vdXRQdHIoKSwgJmtleXNDb3VudCkpCisgICAgICAgIGV2ZW50LT5rZXkuaGFyZHdhcmVf
a2V5Y29kZSA9IGtleXMuZ2V0KClbMF0ua2V5Y29kZTsKKworICAgIGd0a19tYWluX2RvX2V2ZW50
KGV2ZW50LmdldCgpKTsKKyAgICBldmVudC0+a2V5LnR5cGUgPSBHREtfS0VZX1JFTEVBU0U7Cisg
ICAgZ3RrX21haW5fZG9fZXZlbnQoZXZlbnQuZ2V0KCkpOworfQorCit2b2lkIFBsYXRmb3JtV2Vi
Vmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKCkKK3sKKyAgICBHdGtXaWRnZXQqIHZpZXdX
aWRnZXQgPSBHVEtfV0lER0VUKG1fdmlldyk7CisgICAgaWYgKCFndGtfd2lkZ2V0X2dldF9yZWFs
aXplZCh2aWV3V2lkZ2V0KSkKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KG1fd2luZG93KTsKKyAg
ICBkb0tleVN0cm9rZSh2aWV3V2lkZ2V0LCBHREtfS0VZX0tQX1NwYWNlKTsKK30KKwordm9pZCBQ
bGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlQWx0S2V5UHJlc3MoKQoreworICAgIEd0a1dpZGdldCog
dmlld1dpZGdldCA9IEdUS19XSURHRVQobV92aWV3KTsKKyAgICBpZiAoIWd0a193aWRnZXRfZ2V0
X3JlYWxpemVkKHZpZXdXaWRnZXQpKQorICAgICAgICBndGtfd2lkZ2V0X3Nob3cobV93aW5kb3cp
OworICAgIGRvS2V5U3Ryb2tlKHZpZXdXaWRnZXQsIEdES19LRVlfQWx0X0wpOworfQorCitzdGF0
aWMgdm9pZCBkb01vdXNlQnV0dG9uRXZlbnQoR3RrV2lkZ2V0KiB2aWV3V2lkZ2V0LCBHZGtFdmVu
dFR5cGUgZXZlbnRUeXBlLCBpbnQgeCwgaW50IHksIHVuc2lnbmVkIGludCBidXR0b24pCit7Cisg
ICAgR093blB0cjxHZGtFdmVudD4gZXZlbnQoZ2RrX2V2ZW50X25ldyhldmVudFR5cGUpKTsKKyAg
ICBldmVudC0+YnV0dG9uLnggPSB4OworICAgIGV2ZW50LT5idXR0b24ueSA9IHk7CisgICAgZXZl
bnQtPmJ1dHRvbi5idXR0b24gPSBidXR0b247CisgICAgZXZlbnQtPmJ1dHRvbi50aW1lID0gR0RL
X0NVUlJFTlRfVElNRTsKKyAgICBldmVudC0+YnV0dG9uLmF4ZXMgPSAwOworICAgIGV2ZW50LT5i
dXR0b24uc3RhdGUgPSAwOworICAgIGV2ZW50LT5idXR0b24ud2luZG93ID0gZ3RrX3dpZGdldF9n
ZXRfd2luZG93KHZpZXdXaWRnZXQpOworICAgIGdfb2JqZWN0X3JlZihldmVudC0+YnV0dG9uLndp
bmRvdyk7CisgICAgZXZlbnQtPmJ1dHRvbi5kZXZpY2UgPSBnZGtfZGV2aWNlX21hbmFnZXJfZ2V0
X2NsaWVudF9wb2ludGVyKGdka19kaXNwbGF5X2dldF9kZXZpY2VfbWFuYWdlcihndGtfd2lkZ2V0
X2dldF9kaXNwbGF5KHZpZXdXaWRnZXQpKSk7CisKKyAgICBpbnQgeFJvb3QsIHlSb290OworICAg
IGdka193aW5kb3dfZ2V0X3Jvb3RfY29vcmRzKGd0a193aWRnZXRfZ2V0X3dpbmRvdyh2aWV3V2lk
Z2V0KSwgeCwgeSwgJnhSb290LCAmeVJvb3QpOworICAgIGV2ZW50LT5idXR0b24ueF9yb290ID0g
eFJvb3Q7CisgICAgZXZlbnQtPmJ1dHRvbi55X3Jvb3QgPSB5Um9vdDsKKyAgICBndGtfbWFpbl9k
b19ldmVudChldmVudC5nZXQoKSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0
ZVJpZ2h0Q2xpY2sodW5zaWduZWQgeCwgdW5zaWduZWQgeSkKK3sKKyAgICBHdGtXaWRnZXQqIHZp
ZXdXaWRnZXQgPSBHVEtfV0lER0VUKG1fdmlldyk7CisgICAgaWYgKCFndGtfd2lkZ2V0X2dldF9y
ZWFsaXplZCh2aWV3V2lkZ2V0KSkKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KG1fd2luZG93KTsK
KyAgICBkb01vdXNlQnV0dG9uRXZlbnQodmlld1dpZGdldCwgR0RLX0JVVFRPTl9QUkVTUywgeCwg
eSwgMyk7CisgICAgZG9Nb3VzZUJ1dHRvbkV2ZW50KHZpZXdXaWRnZXQsIEdES19CVVRUT05fUkVM
RUFTRSwgeCwgeSwgMyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZU1vdXNl
TW92ZSh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQoreworICAgIEdPd25QdHI8R2RrRXZlbnQ+IGV2
ZW50KGdka19ldmVudF9uZXcoR0RLX01PVElPTl9OT1RJRlkpKTsKKyAgICBldmVudC0+bW90aW9u
LnggPSB4OworICAgIGV2ZW50LT5tb3Rpb24ueSA9IHk7CisgICAgZXZlbnQtPm1vdGlvbi50aW1l
ID0gR0RLX0NVUlJFTlRfVElNRTsKKyAgICBldmVudC0+bW90aW9uLnN0YXRlID0gMDsKKyAgICBl
dmVudC0+bW90aW9uLmF4ZXMgPSAwOworCisgICAgR3RrV2lkZ2V0KiB2aWV3V2lkZ2V0ID0gR1RL
X1dJREdFVChtX3ZpZXcpOworICAgIGlmICghZ3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQodmlld1dp
ZGdldCkpCisgICAgICAgIGd0a193aWRnZXRfc2hvdyhtX3dpbmRvdyk7CisgICAgZXZlbnQtPm1v
dGlvbi53aW5kb3cgPSBndGtfd2lkZ2V0X2dldF93aW5kb3codmlld1dpZGdldCk7CisgICAgZ19v
YmplY3RfcmVmKGV2ZW50LT5tb3Rpb24ud2luZG93KTsKKyAgICBldmVudC0+bW90aW9uLmRldmlj
ZSA9IGdka19kZXZpY2VfbWFuYWdlcl9nZXRfY2xpZW50X3BvaW50ZXIoZ2RrX2Rpc3BsYXlfZ2V0
X2RldmljZV9tYW5hZ2VyKGd0a193aWRnZXRfZ2V0X2Rpc3BsYXkodmlld1dpZGdldCkpKTsKKwor
ICAgIGludCB4Um9vdCwgeVJvb3Q7CisgICAgZ2RrX3dpbmRvd19nZXRfcm9vdF9jb29yZHMoZ3Rr
X3dpZGdldF9nZXRfd2luZG93KHZpZXdXaWRnZXQpLCB4LCB5LCAmeFJvb3QsICZ5Um9vdCk7Cisg
ICAgZXZlbnQtPm1vdGlvbi54X3Jvb3QgPSB4Um9vdDsKKyAgICBldmVudC0+bW90aW9uLnlfcm9v
dCA9IHlSb290OworICAgIGd0a19tYWluX2RvX2V2ZW50KGV2ZW50LmdldCgpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvbWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9tYWluLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjA5OWNjCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvbWFpbi5jcHAKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVGVzdHNDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxnbGliLW9i
amVjdC5oPgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgZ190eXBl
X2luaXQoKTsKKworICAgIHJldHVybiBUZXN0V2ViS2l0QVBJOjpUZXN0c0NvbnRyb2xsZXI6OnNo
YXJlZCgpLnJ1bihhcmdjLCBhcmd2KSA/IEVYSVRfU1VDQ0VTUyA6IEVYSVRfRkFJTFVSRTsKK30K
</data>
<flag name="review"
          id="144508"
          type_id="1"
          status="+"
          setter="pnormand"
    />
          </attachment>
      

    </bug>

</bugzilla>